"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.35",
"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-09-09T13:30:04.797Z",
+ "time": "2021-09-09T13:56:35.409Z",
"url": "http://apidocjs.com",
"version": "0.24.0"
}
{
"name": "xCALLY Motion API",
- "version": "2.5.34",
+ "version": "2.5.35",
"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-09-09T13:30:04.797Z",
+ "time": "2021-09-09T13:56:35.409Z",
"url": "http://apidocjs.com",
"version": "0.24.0"
}
{
"name": "motion",
- "version": "2.5.34",
+ "version": "2.5.35",
"description": "xCALLY Motion is the new Realtime asynchronous solution for your multichannel contact center over Asterisk.",
"main": "server/app.js",
"engines": {
{
"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"
}
}
"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"
}
}
"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",
"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",
"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.d9944f4b.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.ebe41f3e.js"></script>
+ <script src="scripts/app.17add46f.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","$window",function(e,n,t,a){var i=t.getCurrentUser();return null===a.localStorage.getItem("motion.user:"+i.id)&&a.localStorage.setItem("motion.user:"+i.id,JSON.stringify({authenticationType:"google"})),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,s,r,l,d){var c;return{getToken:e,getCurrentUser:m,getPermissions:b,hasChildrenPermissions:function(e){return!!e&&_.some(e,function(e){return n(e)})},hasModulePermissions:function(i){return o(function(a,n){h()?a(!0):l.userProfileSection.get({userProfileId:c.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={};h()?(s.forEach(function(e){i[e]=!0}),a(i)):l.userProfileSection.get({userProfileId:c.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!!c&&c.role===e},hasPermission:n,hasResourcePermission:function(e,s){return o(function(a,i){return l.userProfileSection.get({userProfileId:c.userProfileId,sectionId:e}).$promise.then(function(e){var n=e.rows[0];if(n.autoAssociation)return a();var t=d.getActiveItem().node;return t.permissions&&!1===t.permissions.association?a():l.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 A().then(function(){_.includes(c.permissions,a)&&(t[a]=!0),e(t)}).catch(function(e){n(e)})})},hasSectionsPermissions:function(a){return o(function(e,n){var t={};if(!h())return A().then(function(){a.forEach(function(e){_.includes(c.permissions,e)&&(t[e]=!0)}),e(t)}).catch(function(e){n(e)});a.forEach(function(e){t[e]=!0}),e(t)})},isAgent:v,isAdmin:h,isLoggedIn:function(){return!!e()},isTelephone:function(){return"telephone"===c.role},isUser:f,login:function(e){return o(function(n,t){l.auth.local(e).$promise.then(function(e){return i.put("motion.token",e.token),l.user.get({id:e.id}).$promise}).then(function(e){(c=e).lastLoginAt=moment().format("YYYY-MM-DD HH:mm:ss"),E("LOCAL_LOGIN")}).then(function(){if(v()&&1===c.showWebBar&&c.hotdesk)return a.show({controller:"HotDeskDialogController",controllerAs:"vm",templateUrl:"app/auth/services/hotdesk/dialog.html",parent:angular.element(r.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 v()&&0!==c.showWebBar?u(e):h()||f()?p(!0):void 0}).then(function(e){c=_.assign(c,e),n()}).catch(function(e){t(e)})})},logout:function(t){return o(function(e,n){t?(g(),e()):o.resolve().then(function(){return v()&&0!==c.showWebBar?o(function(e,n){l.user.logout({id:c.id,device:"web"}).$promise.then(function(){e()}).catch(function(e){n(e)})}):h()||f()?p(!1):void 0}).then(function(){g(),e()}).catch(function(e){n(e)})})},parseCrudPermissions:function(e){return h()?{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:u,reloadPermissions:A,removeCookies:g,retrieveUser:function(){return o(function(n,t){l.user.whoami().$promise.then(function(n){return"user"===n.role?b(n.userProfileId).then(function(e){return n.permissions=e,n}):n}).then(function(e){n(c=e)}).catch(function(e){t(e)})})},setCurrentUser:function(e){c=_.merge(c,e)},getAuthenticationType:function(){var e=m(),n=s.localStorage.getItem("motion.user:"+e.id);if(n)return JSON.parse(n).authenticationType;return"NONE"},loginSSO:function(e){"google"!==e&&E("SSO_LOGIN");return"/api/auth/"+e}};function e(){return i.get("motion.token")}function m(){return c}function u(e){return o(function(n,t){l.user.login({id:c.id,device:"web",intrf:e}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}function p(a){return o(function(n,t){var e={online:a,lastLoginAt:a?moment().format("YYYY-MM-DD HH:mm:ss"):void 0};l.user.update({id:c.id},e).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}function g(){i.remove("motion.token"),c&&(s.localStorage.removeItem("motion.user:"+c.id),c=null)}function v(){return"agent"===c.role}function h(){return"admin"===c.role}function f(){return"user"===c.role}function n(e){return!!c&&_.includes(c.permissions,e)}function b(e){var a=[];return o(function(n,t){return e||n(a),l.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 A(){return o(function(n,t){b(c.userProfileId).then(function(e){c.permissions=e,n()}).catch(function(e){t(e)})})}function E(e){var n=m(),t={authenticationType:e};s.localStorage.setItem("motion.user:"+n.id,JSON.stringify(t))}}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"]}}]},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"]}}]},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"]}}]},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"]}}]},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"]}}]},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"]}}]},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"]}}]},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"):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("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,_.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"]}}]},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"]}}]},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"]}}]},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"]}}]},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"]}}]},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"]}}]},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").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=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,_.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,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,_.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"]}}]},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 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">\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 \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 == \'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" 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 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.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/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-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 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
-[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
+[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}@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: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}@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 _0x1261=['exports','VIRTUAL','getDataValue','action','STRING','contactManager','integration','motionbar','jscripty','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)]','browser[location(0=NewTab,1=NewWindow,2=MotionTab)],\x20contactManager[autoCreateField]','urlForward[timeout],\x20browser[windowWidth]','TEXT'];(function(_0x1a4cb2,_0x66908b){var _0x46e6d7=function(_0x58695d){while(--_0x58695d){_0x1a4cb2['push'](_0x1a4cb2['shift']());}};_0x46e6d7(++_0x66908b);}(_0x1261,0x144));var _0x1126=function(_0x4734d8,_0x479950){_0x4734d8=_0x4734d8-0x0;var _0x3b1120=_0x1261[_0x4734d8];return _0x3b1120;};'use strict';var Sequelize=require('sequelize');module[_0x1126('0x0')]={'name':{'type':Sequelize[_0x1126('0x1')],'get':function(_0x3f6969){return this[_0x1126('0x2')](_0x1126('0x3'));}},'action':{'type':Sequelize[_0x1126('0x4')],'allowNull':![],'validate':{'isIn':{'args':[[_0x1126('0x5'),_0x1126('0x6'),_0x1126('0x7'),_0x1126('0x8'),'urlForward','browser',_0x1126('0x9'),_0x1126('0xa')]],'msg':'Allowed\x20values:\x20contactManager,\x20integration,\x20motionbar,\x20jscripty,\x20urlForward,\x20browser,\x20bot,\x20script'}},'comment':_0x1126('0xb')},'data1':{'type':Sequelize[_0x1126('0x4')](0x1000),'comment':_0x1126('0xc')},'data2':{'type':Sequelize[_0x1126('0x4')](0x1000),'comment':_0x1126('0xd')},'data3':{'type':Sequelize['STRING'](0x1000),'comment':_0x1126('0xe')},'data4':{'type':Sequelize[_0x1126('0x4')](0x1000),'comments':_0x1126('0xf')},'data5':{'type':Sequelize['STRING'](0x1000),'comments':_0x1126('0x10')},'data6':{'type':Sequelize['STRING'],'comments':'urlForward[headers],\x20browser[wsindowHeight]'},'data7':{'type':Sequelize[_0x1126('0x11')],'comments':'urlForward[body]'}};
\ No newline at end of file
+var _0xdf55=['browser[location(0=NewTab,1=NewWindow,2=MotionTab)],\x20contactManager[autoCreateField]','urlForward[timeout],\x20browser[windowWidth]','urlForward[body]','sequelize','exports','getDataValue','STRING','contactManager','integration','jscripty','urlForward','browser','bot','script','Allowed\x20values:\x20contactManager,\x20integration,\x20motionbar,\x20jscripty,\x20urlForward,\x20browser,\x20bot,\x20script','contactManager[autoCreate(0=No,1=Yes)],\x20urlForward[URL],\x20script[type],\x20integration[AccountId],\x20motionbar[TemplateId,URL,WinAppPath],\x20browser[TemplateId,URL]'];(function(_0x19a72c,_0x2229cb){var _0x3c6199=function(_0x4293e9){while(--_0x4293e9){_0x19a72c['push'](_0x19a72c['shift']());}};_0x3c6199(++_0x2229cb);}(_0xdf55,0x83));var _0x5df5=function(_0x4d26f3,_0x3e1615){_0x4d26f3=_0x4d26f3-0x0;var _0x3accb7=_0xdf55[_0x4d26f3];return _0x3accb7;};'use strict';var Sequelize=require(_0x5df5('0x0'));module[_0x5df5('0x1')]={'name':{'type':Sequelize['VIRTUAL'],'get':function(_0x20db42){return this[_0x5df5('0x2')]('action');}},'action':{'type':Sequelize[_0x5df5('0x3')],'allowNull':![],'validate':{'isIn':{'args':[[_0x5df5('0x4'),_0x5df5('0x5'),'motionbar',_0x5df5('0x6'),_0x5df5('0x7'),_0x5df5('0x8'),_0x5df5('0x9'),_0x5df5('0xa')]],'msg':_0x5df5('0xb')}},'comment':_0x5df5('0xb')},'data1':{'type':Sequelize[_0x5df5('0x3')](0x1000),'comment':'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)]'},'data2':{'type':Sequelize[_0x5df5('0x3')](0x1000),'comment':_0x5df5('0xc')},'data3':{'type':Sequelize[_0x5df5('0x3')](0x1000),'comment':'contactManager[searchFields],\x20script[script],\x20integration[ConfigurationId],\x20motionbar[NULL,eventVariables(0=No,1=Yes),WinAppArguments],\x20browser[NULL,eventVariables(0=No,1=Yes)]'},'data4':{'type':Sequelize['STRING'](0x1000),'comments':_0x5df5('0xd')},'data5':{'type':Sequelize['STRING'](0x1000),'comments':_0x5df5('0xe')},'data6':{'type':Sequelize[_0x5df5('0x3')],'comments':'urlForward[headers],\x20browser[wsindowHeight]'},'data7':{'type':Sequelize['TEXT'],'comments':_0x5df5('0xf')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3600=['../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','apply','reject','save','update','then','destroy','error','name','body','Action','catch','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs'];(function(_0x285bbb,_0x245b83){var _0x2fe6ad=function(_0x6a8b4c){while(--_0x6a8b4c){_0x285bbb['push'](_0x285bbb['shift']());}};_0x2fe6ad(++_0x245b83);}(_0x3600,0x142));var _0x0360=function(_0x2c9ba4,_0xd990a5){_0x2c9ba4=_0x2c9ba4-0x0;var _0x12a083=_0x3600[_0x2c9ba4];return _0x12a083;};'use strict';var emlformat=require(_0x0360('0x0'));var rimraf=require(_0x0360('0x1'));var zipdir=require(_0x0360('0x2'));var jsonpatch=require(_0x0360('0x3'));var rp=require(_0x0360('0x4'));var moment=require(_0x0360('0x5'));var BPromise=require(_0x0360('0x6'));var Mustache=require('mustache');var util=require(_0x0360('0x7'));var path=require(_0x0360('0x8'));var sox=require(_0x0360('0x9'));var csv=require(_0x0360('0xa'));var ejs=require(_0x0360('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x0360('0xc'));var squel=require(_0x0360('0xd'));var crypto=require(_0x0360('0xe'));var jsforce=require(_0x0360('0xf'));var deskjs=require(_0x0360('0x10'));var toCsv=require('to-csv');var querystring=require(_0x0360('0x11'));var Papa=require('papaparse');var Redis=require(_0x0360('0x12'));var authService=require(_0x0360('0x13'));var qs=require(_0x0360('0x14'));var as=require(_0x0360('0x15'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x0360('0x16'))(_0x0360('0x17'));var utils=require(_0x0360('0x18'));var config=require(_0x0360('0x19'));var licenseUtil=require(_0x0360('0x1a'));var db=require(_0x0360('0x1b'))['db'];function respondWithStatusCode(_0x5e8c9d,_0x4bbd74){_0x4bbd74=_0x4bbd74||0xcc;return function(_0x4430d6){if(_0x4430d6){return _0x5e8c9d[_0x0360('0x1c')](_0x4bbd74);}return _0x5e8c9d[_0x0360('0x1d')](_0x4bbd74)[_0x0360('0x1e')]();};}function respondWithResult(_0x27c082,_0xd92a12){_0xd92a12=_0xd92a12||0xc8;return function(_0x698eb1){if(_0x698eb1){return _0x27c082[_0x0360('0x1d')](_0xd92a12)[_0x0360('0x1f')](_0x698eb1);}};}function respondWithFilteredResult(_0x3c6603,_0xfa6e4e){return function(_0xa37b80){if(_0xa37b80){var _0x44878c=typeof _0xfa6e4e[_0x0360('0x20')]===_0x0360('0x21')&&typeof _0xfa6e4e['limit']===_0x0360('0x21');var _0x14c004=_0xa37b80[_0x0360('0x22')];var _0x30cff5=_0x44878c?0x0:_0xfa6e4e[_0x0360('0x20')];var _0x51c4f9=_0x44878c?_0xa37b80[_0x0360('0x22')]:_0xfa6e4e[_0x0360('0x20')]+_0xfa6e4e[_0x0360('0x23')];var _0x3f4b0a;if(_0x51c4f9>=_0x14c004){_0x51c4f9=_0x14c004;_0x3f4b0a=0xc8;}else{_0x3f4b0a=0xce;}_0x3c6603['status'](_0x3f4b0a);return _0x3c6603[_0x0360('0x24')](_0x0360('0x25'),_0x30cff5+'-'+_0x51c4f9+'/'+_0x14c004)[_0x0360('0x1f')](_0xa37b80);}return null;};}function patchUpdates(_0x295702){return function(_0x4d8b0b){try{jsonpatch[_0x0360('0x26')](_0x4d8b0b,_0x295702,!![]);}catch(_0x598b84){return BPromise[_0x0360('0x27')](_0x598b84);}return _0x4d8b0b[_0x0360('0x28')]();};}function saveUpdates(_0x7d9b5d,_0x1d5ed8){return function(_0x1a2831){if(_0x1a2831){return _0x1a2831[_0x0360('0x29')](_0x7d9b5d)[_0x0360('0x2a')](function(_0x24bfaf){return _0x24bfaf;});}return null;};}function removeEntity(_0x25bc59,_0x39868e){return function(_0x4127bc){if(_0x4127bc){return _0x4127bc[_0x0360('0x2b')]()['then'](function(){_0x25bc59[_0x0360('0x1d')](0xcc)[_0x0360('0x1e')]();});}};}function handleEntityNotFound(_0x3cd121,_0x593522){return function(_0x20492b){if(!_0x20492b){_0x3cd121[_0x0360('0x1c')](0x194);}return _0x20492b;};}function handleError(_0x328153,_0x3a582f){_0x3a582f=_0x3a582f||0x1f4;return function(_0x1f7228){logger[_0x0360('0x2c')](_0x1f7228['stack']);if(_0x1f7228['name']){delete _0x1f7228[_0x0360('0x2d')];}_0x328153['status'](_0x3a582f)['send'](_0x1f7228);};}exports[_0x0360('0x29')]=function(_0x171a20,_0x5d14a1){if(_0x171a20[_0x0360('0x2e')]['id']){delete _0x171a20['body']['id'];}return db[_0x0360('0x2f')]['find']({'where':{'id':_0x171a20['params']['id']}})['then'](handleEntityNotFound(_0x5d14a1,null))[_0x0360('0x2a')](saveUpdates(_0x171a20[_0x0360('0x2e')],null))[_0x0360('0x2a')](respondWithResult(_0x5d14a1,null))[_0x0360('0x30')](handleError(_0x5d14a1,null));};exports['destroy']=function(_0x2b4c45,_0x178c2c){return db['Action']['find']({'where':{'id':_0x2b4c45['params']['id']}})[_0x0360('0x2a')](handleEntityNotFound(_0x178c2c,null))[_0x0360('0x2a')](removeEntity(_0x178c2c,null))[_0x0360('0x30')](handleError(_0x178c2c,null));};
\ No newline at end of file
+var _0x3fbb=['to-csv','papaparse','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','limit','undefined','count','set','json','apply','reject','save','update','then','error','stack','name','body','Action','find','params','catch','destroy','eml-format','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','ejs','fs-extra','lodash','crypto','jsforce'];(function(_0x5bcc01,_0x2b0458){var _0x2494b8=function(_0x54e23c){while(--_0x54e23c){_0x5bcc01['push'](_0x5bcc01['shift']());}};_0x2494b8(++_0x2b0458);}(_0x3fbb,0x7a));var _0xb3fb=function(_0x2d72b4,_0x47bd1a){_0x2d72b4=_0x2d72b4-0x0;var _0x2f604b=_0x3fbb[_0x2d72b4];return _0x2f604b;};'use strict';var emlformat=require(_0xb3fb('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xb3fb('0x1'));var jsonpatch=require(_0xb3fb('0x2'));var rp=require('request-promise');var moment=require(_0xb3fb('0x3'));var BPromise=require(_0xb3fb('0x4'));var Mustache=require(_0xb3fb('0x5'));var util=require(_0xb3fb('0x6'));var path=require(_0xb3fb('0x7'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0xb3fb('0x8'));var fs=require('fs');var fs_extra=require(_0xb3fb('0x9'));var _=require(_0xb3fb('0xa'));var squel=require('squel');var crypto=require(_0xb3fb('0xb'));var jsforce=require(_0xb3fb('0xc'));var deskjs=require('desk.js');var toCsv=require(_0xb3fb('0xd'));var querystring=require('querystring');var Papa=require(_0xb3fb('0xe'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0xb3fb('0xf'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xb3fb('0x10'))(_0xb3fb('0x11'));var utils=require(_0xb3fb('0x12'));var config=require(_0xb3fb('0x13'));var licenseUtil=require(_0xb3fb('0x14'));var db=require(_0xb3fb('0x15'))['db'];function respondWithStatusCode(_0x2884c4,_0x2f42d5){_0x2f42d5=_0x2f42d5||0xcc;return function(_0x1a03f4){if(_0x1a03f4){return _0x2884c4[_0xb3fb('0x16')](_0x2f42d5);}return _0x2884c4[_0xb3fb('0x17')](_0x2f42d5)[_0xb3fb('0x18')]();};}function respondWithResult(_0xf16540,_0x47da7e){_0x47da7e=_0x47da7e||0xc8;return function(_0xdeada){if(_0xdeada){return _0xf16540[_0xb3fb('0x17')](_0x47da7e)['json'](_0xdeada);}};}function respondWithFilteredResult(_0xb73ef4,_0x4f0650){return function(_0x3fc82b){if(_0x3fc82b){var _0x2857fc=typeof _0x4f0650[_0xb3fb('0x19')]==='undefined'&&typeof _0x4f0650[_0xb3fb('0x1a')]===_0xb3fb('0x1b');var _0x3f52d4=_0x3fc82b[_0xb3fb('0x1c')];var _0x52a48c=_0x2857fc?0x0:_0x4f0650[_0xb3fb('0x19')];var _0x283537=_0x2857fc?_0x3fc82b[_0xb3fb('0x1c')]:_0x4f0650['offset']+_0x4f0650[_0xb3fb('0x1a')];var _0x8bedf8;if(_0x283537>=_0x3f52d4){_0x283537=_0x3f52d4;_0x8bedf8=0xc8;}else{_0x8bedf8=0xce;}_0xb73ef4[_0xb3fb('0x17')](_0x8bedf8);return _0xb73ef4[_0xb3fb('0x1d')]('Content-Range',_0x52a48c+'-'+_0x283537+'/'+_0x3f52d4)[_0xb3fb('0x1e')](_0x3fc82b);}return null;};}function patchUpdates(_0x59e182){return function(_0x1c0302){try{jsonpatch[_0xb3fb('0x1f')](_0x1c0302,_0x59e182,!![]);}catch(_0x1b4293){return BPromise[_0xb3fb('0x20')](_0x1b4293);}return _0x1c0302[_0xb3fb('0x21')]();};}function saveUpdates(_0x363d27,_0x4025db){return function(_0x3ca1da){if(_0x3ca1da){return _0x3ca1da[_0xb3fb('0x22')](_0x363d27)['then'](function(_0x4ec131){return _0x4ec131;});}return null;};}function removeEntity(_0xc629ad,_0x348d7b){return function(_0x4d55b7){if(_0x4d55b7){return _0x4d55b7['destroy']()[_0xb3fb('0x23')](function(){_0xc629ad['status'](0xcc)[_0xb3fb('0x18')]();});}};}function handleEntityNotFound(_0x9f4a74,_0x51abb5){return function(_0x208571){if(!_0x208571){_0x9f4a74[_0xb3fb('0x16')](0x194);}return _0x208571;};}function handleError(_0x419209,_0x1302a6){_0x1302a6=_0x1302a6||0x1f4;return function(_0x2be7cc){logger[_0xb3fb('0x24')](_0x2be7cc[_0xb3fb('0x25')]);if(_0x2be7cc[_0xb3fb('0x26')]){delete _0x2be7cc[_0xb3fb('0x26')];}_0x419209[_0xb3fb('0x17')](_0x1302a6)['send'](_0x2be7cc);};}exports['update']=function(_0x494472,_0x2e18d5){if(_0x494472[_0xb3fb('0x27')]['id']){delete _0x494472['body']['id'];}return db[_0xb3fb('0x28')][_0xb3fb('0x29')]({'where':{'id':_0x494472[_0xb3fb('0x2a')]['id']}})[_0xb3fb('0x23')](handleEntityNotFound(_0x2e18d5,null))[_0xb3fb('0x23')](saveUpdates(_0x494472[_0xb3fb('0x27')],null))[_0xb3fb('0x23')](respondWithResult(_0x2e18d5,null))[_0xb3fb('0x2b')](handleError(_0x2e18d5,null));};exports[_0xb3fb('0x2c')]=function(_0x3ffdf7,_0x599434){return db[_0xb3fb('0x28')]['find']({'where':{'id':_0x3ffdf7[_0xb3fb('0x2a')]['id']}})['then'](handleEntityNotFound(_0x599434,null))[_0xb3fb('0x23')](removeEntity(_0x599434,null))[_0xb3fb('0x2b')](handleError(_0x599434,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xce2f=['api','moment','bluebird','request-promise','rimraf','./action.attributes','define','Action','tools_actions','util','../../config/logger'];(function(_0x15d18f,_0x126b0e){var _0xd12bf7=function(_0x19e661){while(--_0x19e661){_0x15d18f['push'](_0x15d18f['shift']());}};_0xd12bf7(++_0x126b0e);}(_0xce2f,0x18a));var _0xfce2=function(_0x18e758,_0x95eb76){_0x18e758=_0x18e758-0x0;var _0x15aa9f=_0xce2f[_0x18e758];return _0x15aa9f;};'use strict';var _=require('lodash');var util=require(_0xfce2('0x0'));var logger=require(_0xfce2('0x1'))(_0xfce2('0x2'));var moment=require(_0xfce2('0x3'));var BPromise=require(_0xfce2('0x4'));var rp=require(_0xfce2('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0xfce2('0x6'));var config=require('../../config/environment');var attributes=require(_0xfce2('0x7'));module['exports']=function(_0x22efae,_0xeffde2){return _0x22efae[_0xfce2('0x8')](_0xfce2('0x9'),attributes,{'tableName':_0xfce2('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x7292=['api','moment','bluebird','request-promise','rimraf','../../config/environment','./action.attributes','exports','define','Action','tools_actions','lodash','util','../../config/logger'];(function(_0x17f504,_0x36d1f8){var _0x4d8a4e=function(_0x92f02c){while(--_0x92f02c){_0x17f504['push'](_0x17f504['shift']());}};_0x4d8a4e(++_0x36d1f8);}(_0x7292,0x107));var _0x2729=function(_0x2c91e9,_0x2fb965){_0x2c91e9=_0x2c91e9-0x0;var _0x13f0ff=_0x7292[_0x2c91e9];return _0x13f0ff;};'use strict';var _=require(_0x2729('0x0'));var util=require(_0x2729('0x1'));var logger=require(_0x2729('0x2'))(_0x2729('0x3'));var moment=require(_0x2729('0x4'));var BPromise=require(_0x2729('0x5'));var rp=require(_0x2729('0x6'));var fs=require('fs');var path=require('path');var rimraf=require(_0x2729('0x7'));var config=require(_0x2729('0x8'));var attributes=require(_0x2729('0x9'));module[_0x2729('0xa')]=function(_0x26a3dc,_0x176a7c){return _0x26a3dc[_0x2729('0xb')](_0x2729('0xc'),attributes,{'tableName':_0x2729('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5fc3=['../../config/environment','jayson/promise','request','then','info','request\x20sent','debug','stringify','error','code','message','Action,\x20%s,\x20%s','result','catch','lodash','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','rpc'];(function(_0x5f3752,_0x4fcdcd){var _0x3572e5=function(_0x3d3b53){while(--_0x3d3b53){_0x5f3752['push'](_0x5f3752['shift']());}};_0x3572e5(++_0x4fcdcd);}(_0x5fc3,0xa8));var _0x35fc=function(_0x2df724,_0x411382){_0x2df724=_0x2df724-0x0;var _0x1b2504=_0x5fc3[_0x2df724];return _0x1b2504;};'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')]('Action,\x20%s,\x20%s',_0x508b32,_0x35fc('0xd'));logger[_0x35fc('0xe')]('Action,\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']('Action,\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);});});}
\ No newline at end of file
+var _0x814b=['info','Action,\x20%s,\x20%s','request\x20sent','debug','Action,\x20%s,\x20%s,\x20%s','error','code','message','result','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','request','then'];(function(_0x3e112d,_0x2bb132){var _0x531c31=function(_0x1954bc){while(--_0x1954bc){_0x3e112d['push'](_0x3e112d['shift']());}};_0x531c31(++_0x2bb132);}(_0x814b,0x1a2));var _0xb814=function(_0x225b4e,_0x179ee4){_0x225b4e=_0x225b4e-0x0;var _0x24237a=_0x814b[_0x225b4e];return _0x24237a;};'use strict';var _=require(_0xb814('0x0'));var util=require(_0xb814('0x1'));var moment=require(_0xb814('0x2'));var BPromise=require(_0xb814('0x3'));var rs=require(_0xb814('0x4'));var fs=require('fs');var Redis=require(_0xb814('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0xb814('0x6'));var logger=require(_0xb814('0x7'))(_0xb814('0x8'));var config=require(_0xb814('0x9'));var jayson=require(_0xb814('0xa'));var client=jayson[_0xb814('0xb')]['http']({'port':0x232a});function respondWithRpcPromise(_0x3b0829,_0x2e6272,_0x5c8539){return new BPromise(function(_0x271af9,_0x2913a6){return client[_0xb814('0xc')](_0x3b0829,_0x5c8539)[_0xb814('0xd')](function(_0x1fea33){logger[_0xb814('0xe')](_0xb814('0xf'),_0x2e6272,_0xb814('0x10'));logger[_0xb814('0x11')](_0xb814('0x12'),_0x2e6272,_0xb814('0x10'),JSON['stringify'](_0x1fea33));if(_0x1fea33[_0xb814('0x13')]){if(_0x1fea33['error'][_0xb814('0x14')]===0x1f4){logger[_0xb814('0x13')](_0xb814('0xf'),_0x2e6272,_0x1fea33[_0xb814('0x13')][_0xb814('0x15')]);return _0x2913a6(_0x1fea33[_0xb814('0x13')][_0xb814('0x15')]);}logger[_0xb814('0x13')](_0xb814('0xf'),_0x2e6272,_0x1fea33[_0xb814('0x13')][_0xb814('0x15')]);return _0x271af9(_0x1fea33[_0xb814('0x13')][_0xb814('0x15')]);}else{logger[_0xb814('0xe')](_0xb814('0xf'),_0x2e6272,_0xb814('0x10'));_0x271af9(_0x1fea33[_0xb814('0x16')][_0xb814('0x15')]);}})[_0xb814('0x17')](function(_0x21b73f){logger[_0xb814('0x13')]('Action,\x20%s,\x20%s',_0x2e6272,_0x21b73f);_0x2913a6(_0x21b73f);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbc88=['../../config/environment','./action.controller','put','update','delete','/:id','destroy','exports','multer','util','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service'];(function(_0x2070da,_0x45e586){var _0x4f9fe1=function(_0x5b6f2a){while(--_0x5b6f2a){_0x2070da['push'](_0x2070da['shift']());}};_0x4f9fe1(++_0x45e586);}(_0xbc88,0xda));var _0x8bc8=function(_0x1d018d,_0x5d74a1){_0x1d018d=_0x1d018d-0x0;var _0x56e8ca=_0xbc88[_0x1d018d];return _0x56e8ca;};'use strict';var multer=require(_0x8bc8('0x0'));var util=require(_0x8bc8('0x1'));var path=require('path');var timeout=require(_0x8bc8('0x2'));var express=require(_0x8bc8('0x3'));var router=express[_0x8bc8('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0x8bc8('0x5'));var interaction=require(_0x8bc8('0x6'));var config=require(_0x8bc8('0x7'));var controller=require(_0x8bc8('0x8'));router[_0x8bc8('0x9')]('/:id',auth['isAuthenticated'](),controller[_0x8bc8('0xa')]);router[_0x8bc8('0xb')](_0x8bc8('0xc'),auth['isAuthenticated'](),controller[_0x8bc8('0xd')]);module[_0x8bc8('0xe')]=router;
\ No newline at end of file
+var _0xc8b8=['put','/:id','delete','destroy','util','path','Router','fs-extra','../../config/environment'];(function(_0xe5d23d,_0x4970c3){var _0x1a6160=function(_0x4c55a0){while(--_0x4c55a0){_0xe5d23d['push'](_0xe5d23d['shift']());}};_0x1a6160(++_0x4970c3);}(_0xc8b8,0x190));var _0x8c8b=function(_0x18cac4,_0x57a4d5){_0x18cac4=_0x18cac4-0x0;var _0x2227c6=_0xc8b8[_0x18cac4];return _0x2227c6;};'use strict';var multer=require('multer');var util=require(_0x8c8b('0x0'));var path=require(_0x8c8b('0x1'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x8c8b('0x2')]();var fs_extra=require(_0x8c8b('0x3'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x8c8b('0x4'));var controller=require('./action.controller');router[_0x8c8b('0x5')](_0x8c8b('0x6'),auth['isAuthenticated'](),controller['update']);router[_0x8c8b('0x7')](_0x8c8b('0x6'),auth['isAuthenticated'](),controller[_0x8c8b('0x8')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x687b=['STRING','TEXT','sequelize','exports'];(function(_0x10a11d,_0xcc39a6){var _0x32ef43=function(_0x1acd37){while(--_0x1acd37){_0x10a11d['push'](_0x10a11d['shift']());}};_0x32ef43(++_0xcc39a6);}(_0x687b,0x14a));var _0xb687=function(_0x5ad0c6,_0x56ee17){_0x5ad0c6=_0x5ad0c6-0x0;var _0x167958=_0x687b[_0x5ad0c6];return _0x167958;};'use strict';var Sequelize=require(_0xb687('0x0'));module[_0xb687('0x1')]={'name':{'type':Sequelize[_0xb687('0x2')],'allowNull':![]},'description':{'type':Sequelize[_0xb687('0x2')]},'parent':{'type':Sequelize['STRING']},'table':{'type':Sequelize['STRING']},'conditions':{'type':Sequelize[_0xb687('0x3')]},'joins':{'type':Sequelize[_0xb687('0x3')]}};
\ No newline at end of file
+var _0xf494=['STRING','TEXT','sequelize','exports'];(function(_0x479b99,_0x1e5bec){var _0x1e7eb7=function(_0x52ac6c){while(--_0x52ac6c){_0x479b99['push'](_0x479b99['shift']());}};_0x1e7eb7(++_0x1e5bec);}(_0xf494,0x1c6));var _0x4f49=function(_0x248ab9,_0x154c39){_0x248ab9=_0x248ab9-0x0;var _0x92d559=_0xf494[_0x248ab9];return _0x92d559;};'use strict';var Sequelize=require(_0x4f49('0x0'));module[_0x4f49('0x1')]={'name':{'type':Sequelize[_0x4f49('0x2')],'allowNull':![]},'description':{'type':Sequelize['STRING']},'parent':{'type':Sequelize[_0x4f49('0x2')]},'table':{'type':Sequelize[_0x4f49('0x2')]},'conditions':{'type':Sequelize[_0x4f49('0x3')]},'joins':{'type':Sequelize[_0x4f49('0x3')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x943a=['UserProfileSection','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','preview','left_join','right_join','cross_join','SUM(%s)','COUNT(%s)','COUNT(DISTINCT\x20%s)','MAX(%s)','MIN(%s)','AVG(%s)','GROUP_CONCAT(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)','HOUR(%s)','includes','IS\x20NOT\x20NULL','IS\x20EMPTY','rules','operator','field','condition','value','getFields','Sequelize','ValidationErrorItem','Please\x20insert\x20at\x20least\x20one\x20field','AnalyticMetric','keyBy','from','table','MetricId','metric','function','replace','format','groupBy','orderBy','alias','joins','parse','type','parentKey','foreignTable','%s.%s\x20=\x20%s.%s','foreignKey','conditions','group','clone','debug','Limited\x20Query:','toString','sequelize','QueryTypes','SELECT','join','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','SEC_TO_TIME(%s)','DATE(%s)','ROUND(%s)','UNIX_TIMESTAMP(%s)','IS\x20NULL','IS\x20NOT\x20EMPTY','select','DESC','web','%s-%s.%s','generate','output','AnalyticExtractedReport','.calldate\x20BETWEEN\x20?\x20AND\x20?','startDate','.createdAt\x20BETWEEN\x20?\x20AND\x20?','info','Run\x20Query:','child_process','fork','../../components/export/','savename','countTable','COUNT(*)','run','runReport','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','dbH','sendStatus','status','end','json','offset','limit','undefined','count','apply','reject','save','destroy','then','get','CustomReports','error','stack','name','send','map','AnalyticCustomReport','rawAttributes','fieldName','key','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','filters','where','merge','VIRTUAL','filter','options','includeAll','include','findAll','rows','catch','params','find','create','body','user','Reports'];(function(_0x5106c1,_0x13233a){var _0x5bcaac=function(_0x18c12e){while(--_0x18c12e){_0x5106c1['push'](_0x5106c1['shift']());}};_0x5bcaac(++_0x13233a);}(_0x943a,0xfd));var _0xa943=function(_0x19340a,_0x49e22f){_0x19340a=_0x19340a-0x0;var _0x53dcd2=_0x943a[_0x19340a];return _0x53dcd2;};'use strict';var emlformat=require(_0xa943('0x0'));var rimraf=require(_0xa943('0x1'));var zipdir=require(_0xa943('0x2'));var jsonpatch=require(_0xa943('0x3'));var rp=require(_0xa943('0x4'));var moment=require(_0xa943('0x5'));var BPromise=require(_0xa943('0x6'));var Mustache=require(_0xa943('0x7'));var util=require(_0xa943('0x8'));var path=require(_0xa943('0x9'));var sox=require(_0xa943('0xa'));var csv=require(_0xa943('0xb'));var ejs=require(_0xa943('0xc'));var fs=require('fs');var fs_extra=require(_0xa943('0xd'));var _=require('lodash');var squel=require('squel');var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0xa943('0xe'));var toCsv=require(_0xa943('0xb'));var querystring=require(_0xa943('0xf'));var Papa=require(_0xa943('0x10'));var Redis=require(_0xa943('0x11'));var authService=require(_0xa943('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0xa943('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xa943('0x14'))(_0xa943('0x15'));var utils=require(_0xa943('0x16'));var config=require(_0xa943('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0xa943('0x18'))['db'];var dbH=require(_0xa943('0x18'))[_0xa943('0x19')];function respondWithStatusCode(_0x2d5d6d,_0x53f28e){_0x53f28e=_0x53f28e||0xcc;return function(_0x5216cb){if(_0x5216cb){return _0x2d5d6d[_0xa943('0x1a')](_0x53f28e);}return _0x2d5d6d[_0xa943('0x1b')](_0x53f28e)[_0xa943('0x1c')]();};}function respondWithResult(_0x5a83d2,_0x10622e){_0x10622e=_0x10622e||0xc8;return function(_0x56b54a){if(_0x56b54a){return _0x5a83d2[_0xa943('0x1b')](_0x10622e)[_0xa943('0x1d')](_0x56b54a);}};}function respondWithFilteredResult(_0x29932a,_0x5edde1){return function(_0x35ee9c){if(_0x35ee9c){var _0x58fc0c=typeof _0x5edde1[_0xa943('0x1e')]==='undefined'&&typeof _0x5edde1[_0xa943('0x1f')]===_0xa943('0x20');var _0x5e7137=_0x35ee9c[_0xa943('0x21')];var _0xea9274=_0x58fc0c?0x0:_0x5edde1[_0xa943('0x1e')];var _0x4fff3a=_0x58fc0c?_0x35ee9c['count']:_0x5edde1[_0xa943('0x1e')]+_0x5edde1[_0xa943('0x1f')];var _0x200b15;if(_0x4fff3a>=_0x5e7137){_0x4fff3a=_0x5e7137;_0x200b15=0xc8;}else{_0x200b15=0xce;}_0x29932a[_0xa943('0x1b')](_0x200b15);return _0x29932a['set']('Content-Range',_0xea9274+'-'+_0x4fff3a+'/'+_0x5e7137)[_0xa943('0x1d')](_0x35ee9c);}return null;};}function patchUpdates(_0xb3b6fe){return function(_0xcf2bee){try{jsonpatch[_0xa943('0x22')](_0xcf2bee,_0xb3b6fe,!![]);}catch(_0xc44a84){return BPromise[_0xa943('0x23')](_0xc44a84);}return _0xcf2bee[_0xa943('0x24')]();};}function saveUpdates(_0x346de0,_0x5e0f15){return function(_0x555ba7){if(_0x555ba7){return _0x555ba7['update'](_0x346de0)['then'](function(_0x31298a){return _0x31298a;});}return null;};}function removeEntity(_0x163909,_0x45dada){return function(_0x4525c2){if(_0x4525c2){return _0x4525c2[_0xa943('0x25')]()[_0xa943('0x26')](function(){var _0x2966b5=_0x4525c2[_0xa943('0x27')]({'plain':!![]});var _0x47248f=_0xa943('0x28');return db['UserProfileResource'][_0xa943('0x25')]({'where':{'type':_0x47248f,'resourceId':_0x2966b5['id']}})[_0xa943('0x26')](function(){return _0x4525c2;});})['then'](function(){_0x163909[_0xa943('0x1b')](0xcc)[_0xa943('0x1c')]();});}};}function handleEntityNotFound(_0x2b7989,_0x35a930){return function(_0x3b2636){if(!_0x3b2636){_0x2b7989['sendStatus'](0x194);}return _0x3b2636;};}function handleError(_0x19e952,_0x4a59a){_0x4a59a=_0x4a59a||0x1f4;return function(_0x4cf90d){logger[_0xa943('0x29')](_0x4cf90d[_0xa943('0x2a')]);if(_0x4cf90d[_0xa943('0x2b')]){delete _0x4cf90d[_0xa943('0x2b')];}_0x19e952[_0xa943('0x1b')](_0x4a59a)[_0xa943('0x2c')](_0x4cf90d);};}exports['index']=function(_0x1e8d40,_0x42c5ac){var _0x43e791={},_0x4de510={},_0x122bc6={'count':0x0,'rows':[]};var _0x14ed9e=_[_0xa943('0x2d')](db[_0xa943('0x2e')][_0xa943('0x2f')],function(_0xcfc9da){return{'name':_0xcfc9da[_0xa943('0x30')],'type':_0xcfc9da['type'][_0xa943('0x31')]};});_0x4de510[_0xa943('0x32')]=_[_0xa943('0x2d')](_0x14ed9e,'name');_0x4de510[_0xa943('0x33')]=_[_0xa943('0x34')](_0x1e8d40['query']);_0x4de510['filters']=_[_0xa943('0x35')](_0x4de510[_0xa943('0x32')],_0x4de510[_0xa943('0x33')]);_0x43e791[_0xa943('0x36')]=_['intersection'](_0x4de510[_0xa943('0x32')],qs[_0xa943('0x37')](_0x1e8d40[_0xa943('0x33')][_0xa943('0x37')]));_0x43e791[_0xa943('0x36')]=_0x43e791[_0xa943('0x36')][_0xa943('0x38')]?_0x43e791[_0xa943('0x36')]:_0x4de510[_0xa943('0x32')];if(!_0x1e8d40[_0xa943('0x33')][_0xa943('0x39')](_0xa943('0x3a'))){_0x43e791[_0xa943('0x1f')]=qs[_0xa943('0x1f')](_0x1e8d40['query'][_0xa943('0x1f')]);_0x43e791['offset']=qs[_0xa943('0x1e')](_0x1e8d40['query'][_0xa943('0x1e')]);}_0x43e791[_0xa943('0x3b')]=qs[_0xa943('0x3c')](_0x1e8d40[_0xa943('0x33')][_0xa943('0x3c')]);_0x43e791['where']=qs['filters'](_[_0xa943('0x3d')](_0x1e8d40[_0xa943('0x33')],_0x4de510[_0xa943('0x3e')]),_0x14ed9e);if(_0x1e8d40[_0xa943('0x33')]['filter']){_0x43e791[_0xa943('0x3f')]=_[_0xa943('0x40')](_0x43e791['where'],{'$or':_[_0xa943('0x2d')](_0x14ed9e,function(_0x587abe){if(_0x587abe['type']!==_0xa943('0x41')){var _0x702fab={};_0x702fab[_0x587abe['name']]={'$like':'%'+_0x1e8d40[_0xa943('0x33')][_0xa943('0x42')]+'%'};return _0x702fab;}})});}_0x43e791=_[_0xa943('0x40')]({},_0x43e791,_0x1e8d40[_0xa943('0x43')]);var _0x3081c4={'where':_0x43e791[_0xa943('0x3f')]};return db[_0xa943('0x2e')][_0xa943('0x21')](_0x3081c4)[_0xa943('0x26')](function(_0x4ffd3c){_0x122bc6['count']=_0x4ffd3c;if(_0x1e8d40[_0xa943('0x33')][_0xa943('0x44')]){_0x43e791[_0xa943('0x45')]=[{'all':!![]}];}return db[_0xa943('0x2e')][_0xa943('0x46')](_0x43e791);})[_0xa943('0x26')](function(_0x239772){_0x122bc6[_0xa943('0x47')]=_0x239772;return _0x122bc6;})['then'](respondWithFilteredResult(_0x42c5ac,_0x43e791))[_0xa943('0x48')](handleError(_0x42c5ac,null));};exports['show']=function(_0x12caf1,_0x1e38da){var _0x5d8400={'raw':![],'where':{'id':_0x12caf1[_0xa943('0x49')]['id']}},_0x16cc36={};_0x16cc36['model']=_['keys'](db[_0xa943('0x2e')][_0xa943('0x2f')]);_0x16cc36[_0xa943('0x33')]=_[_0xa943('0x34')](_0x12caf1[_0xa943('0x33')]);_0x16cc36[_0xa943('0x3e')]=_['intersection'](_0x16cc36[_0xa943('0x32')],_0x16cc36['query']);_0x5d8400['attributes']=_[_0xa943('0x35')](_0x16cc36[_0xa943('0x32')],qs[_0xa943('0x37')](_0x12caf1[_0xa943('0x33')]['fields']));_0x5d8400[_0xa943('0x36')]=_0x5d8400[_0xa943('0x36')][_0xa943('0x38')]?_0x5d8400[_0xa943('0x36')]:_0x16cc36[_0xa943('0x32')];if(_0x12caf1[_0xa943('0x33')][_0xa943('0x44')]){_0x5d8400[_0xa943('0x45')]=[{'all':!![]}];}_0x5d8400=_['merge']({},_0x5d8400,_0x12caf1[_0xa943('0x43')]);return db[_0xa943('0x2e')][_0xa943('0x4a')](_0x5d8400)[_0xa943('0x26')](handleEntityNotFound(_0x1e38da,null))[_0xa943('0x26')](respondWithResult(_0x1e38da,null))['catch'](handleError(_0x1e38da,null));};exports['create']=function(_0x52c946,_0x449a8e){return db[_0xa943('0x2e')][_0xa943('0x4b')](_0x52c946[_0xa943('0x4c')],{})[_0xa943('0x26')](function(_0x5a9963){var _0xdfab69=_0x52c946['user'][_0xa943('0x27')]({'plain':!![]});if(!_0xdfab69)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0xdfab69['role']===_0xa943('0x4d')){var _0x58b3d=_0x5a9963[_0xa943('0x27')]({'plain':!![]});var _0x4e5a18=_0xa943('0x4e');return db[_0xa943('0x4f')][_0xa943('0x4a')]({'where':{'name':_0x4e5a18,'userProfileId':_0xdfab69[_0xa943('0x50')]},'raw':!![]})['then'](function(_0x2204e3){if(_0x2204e3&&_0x2204e3[_0xa943('0x51')]===0x0){return db[_0xa943('0x52')]['create']({'name':_0x58b3d['name'],'resourceId':_0x58b3d['id'],'type':_0xa943('0x28'),'sectionId':_0x2204e3['id']},{})[_0xa943('0x26')](function(){return _0x5a9963;});}else{return _0x5a9963;}})[_0xa943('0x48')](function(_0x1cf5f6){logger['error'](_0xa943('0x53'),_0x1cf5f6);throw _0x1cf5f6;});}return _0x5a9963;})[_0xa943('0x26')](respondWithResult(_0x449a8e,0xc9))[_0xa943('0x48')](handleError(_0x449a8e,null));};exports[_0xa943('0x54')]=function(_0x2ece02,_0x250ff1){if(_0x2ece02[_0xa943('0x4c')]['id']){delete _0x2ece02[_0xa943('0x4c')]['id'];}return db['AnalyticCustomReport'][_0xa943('0x4a')]({'where':{'id':_0x2ece02[_0xa943('0x49')]['id']}})['then'](handleEntityNotFound(_0x250ff1,null))['then'](saveUpdates(_0x2ece02['body'],null))[_0xa943('0x26')](respondWithResult(_0x250ff1,null))['catch'](handleError(_0x250ff1,null));};exports[_0xa943('0x25')]=function(_0x2f630f,_0x5864f2){return db['AnalyticCustomReport'][_0xa943('0x4a')]({'where':{'id':_0x2f630f[_0xa943('0x49')]['id']}})[_0xa943('0x26')](handleEntityNotFound(_0x5864f2,null))[_0xa943('0x26')](removeEntity(_0x5864f2,null))[_0xa943('0x48')](handleError(_0x5864f2,null));};exports[_0xa943('0x55')]=function(_0x4e4318,_0x1bc645){var _0x55cccc=0xa;var _0x683606=['join',_0xa943('0x56'),_0xa943('0x57'),_0xa943('0x58')];var _0x1297e5={'SUM':_0xa943('0x59'),'COUNT':_0xa943('0x5a'),'COUNT DISTINCT':_0xa943('0x5b'),'MAX':_0xa943('0x5c'),'MIN':_0xa943('0x5d'),'AVG':_0xa943('0x5e'),'GROUP_CONCAT':_0xa943('0x5f'),'GROUP_CONCAT ASC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT DESC':_0xa943('0x60')};var _0xf54421={'SEC_TO_TIME':'SEC_TO_TIME(%s)','DATE':'DATE(%s)','HOUR':_0xa943('0x61'),'ROUND':'ROUND(%s)','UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x48372b=function(_0x269d16){return!_[_0xa943('0x62')](['IS\x20NULL',_0xa943('0x63'),_0xa943('0x64'),'IS\x20NOT\x20EMPTY'],_0x269d16);};var _0x33c0df=function(_0x4f2953){if(!_0x4f2953||!_0x4f2953['rules'][_0xa943('0x38')]){return'';}for(var _0x3ad1dc='(',_0x3a990f=0x0;_0x3a990f<_0x4f2953[_0xa943('0x65')]['length'];_0x3a990f+=0x1){_0x3a990f>0x0&&(_0x3ad1dc+='\x20'+_0x4f2953[_0xa943('0x66')]+'\x20');_0x3ad1dc+=_0x4f2953['rules'][_0x3a990f]['group']?_0x33c0df(_0x4f2953['rules'][_0x3a990f]['group']):_0x4f2953[_0xa943('0x65')][_0x3a990f][_0xa943('0x67')]+'\x20'+_0x4f2953[_0xa943('0x65')][_0x3a990f][_0xa943('0x68')]+(_0x48372b(_0x4f2953[_0xa943('0x65')][_0x3a990f]['condition'])?'\x20'+_0x4f2953[_0xa943('0x65')][_0x3a990f][_0xa943('0x69')]:'');}return _0x3ad1dc+')';};var _0x191b9b={'where':{'id':_0x4e4318['params']['id']}},_0x702724,_0xb1ce84,_0x42997c,_0x36b81c,_0x39a21d;_0x191b9b=_[_0xa943('0x40')]({},_0x191b9b,_0x4e4318[_0xa943('0x43')]);return db['AnalyticCustomReport']['find'](_0x191b9b)[_0xa943('0x26')](function(_0x33bb85){if(_0x33bb85){_0x702724=_0x33bb85;return _0x33bb85[_0xa943('0x6a')]();}return null;})['then'](function(_0x19e089){if(_0x19e089){if(!_0x19e089['length']){throw new db[(_0xa943('0x6b'))][(_0xa943('0x6c'))](_0xa943('0x6d'),0x193);}_0xb1ce84=_0x19e089;return db[_0xa943('0x6e')][_0xa943('0x46')]({'raw':!![]});}return null;})[_0xa943('0x26')](function(_0x12225b){if(_0x12225b){_0x42997c=_[_0xa943('0x6f')](_0x12225b,'id');var _0x525e70;var _0x1174a6=squel['select']();_0x1174a6[_0xa943('0x70')](_0x702724[_0xa943('0x71')]);for(var _0x391e95=0x0;_0x391e95<_0xb1ce84['length'];_0x391e95+=0x1){_0x525e70=_0xb1ce84[_0x391e95][_0xa943('0x72')]?_0x42997c[_0xb1ce84[_0x391e95][_0xa943('0x72')]][_0xa943('0x73')]:_0xb1ce84[_0x391e95]['field'];_0x525e70=_0xb1ce84[_0x391e95][_0xa943('0x74')]?_[_0xa943('0x75')](_0x1297e5[_0xb1ce84[_0x391e95][_0xa943('0x74')]],'%s',_0x525e70):_0x525e70;_0x525e70=_0xb1ce84[_0x391e95][_0xa943('0x76')]?_[_0xa943('0x75')](_0xf54421[_0xb1ce84[_0x391e95][_0xa943('0x76')]],'%s',_0x525e70):_0x525e70;if(_0xb1ce84[_0x391e95][_0xa943('0x77')]){_0x1174a6['group'](_0x525e70);}_0xb1ce84[_0x391e95][_0xa943('0x78')]&&_0x1174a6[_0xa943('0x3b')](_0x525e70,_0xb1ce84[_0x391e95]['orderBy']==='DESC'?![]:!![]);_0x1174a6[_0xa943('0x67')](_0x525e70,_0xb1ce84[_0x391e95][_0xa943('0x79')]||_0x525e70);}if(_0x702724[_0xa943('0x7a')]){_0x702724['joins']=JSON[_0xa943('0x7b')](_0x702724[_0xa943('0x7a')]);for(var _0x4b15b3=0x0;_0x4b15b3<_0x702724[_0xa943('0x7a')][_0xa943('0x38')];_0x4b15b3+=0x1){if(_0x702724[_0xa943('0x7a')][_0x4b15b3][_0xa943('0x7c')]&&_['includes'](_0x683606,_0x702724[_0xa943('0x7a')][_0x4b15b3]['type'])&&_0x702724[_0xa943('0x7a')][_0x4b15b3][_0xa943('0x7d')]&&_0x702724[_0xa943('0x7a')][_0x4b15b3]['foreignTable']&&_0x702724[_0xa943('0x7a')][_0x4b15b3]['foreignKey']){_0x1174a6[_0x702724[_0xa943('0x7a')][_0x4b15b3][_0xa943('0x7c')]](_0x702724[_0xa943('0x7a')][_0x4b15b3][_0xa943('0x7e')],null,util['format'](_0xa943('0x7f'),_0x702724['table'],_0x702724[_0xa943('0x7a')][_0x4b15b3][_0xa943('0x7d')],_0x702724[_0xa943('0x7a')][_0x4b15b3][_0xa943('0x7e')],_0x702724['joins'][_0x4b15b3][_0xa943('0x80')]));}}}if(_0x702724['conditions']){_0x702724['conditions']=JSON[_0xa943('0x7b')](_0x702724[_0xa943('0x81')]);_0x1174a6['where'](_0x33c0df(_0x702724[_0xa943('0x81')][_0xa943('0x82')]));}_0x39a21d=_0x1174a6[_0xa943('0x83')]();_0x1174a6['limit'](_0x55cccc);_0x1174a6['offset'](0x0);logger[_0xa943('0x84')](_0xa943('0x85'),_0x1174a6[_0xa943('0x86')]());return dbH[_0xa943('0x87')][_0xa943('0x33')](_0x1174a6['toString'](),{'type':dbH['sequelize'][_0xa943('0x88')][_0xa943('0x89')]});}})[_0xa943('0x26')](respondWithResult(_0x1bc645,null))['catch'](handleError(_0x1bc645,null));};function runReport(_0x7cc6ad,_0x327108,_0xdb020f){var _0x3c3446=_0x327108[_0xa943('0x2b')];var _0x576ad9=0xa;var _0x242834=[_0xa943('0x8a'),_0xa943('0x56'),_0xa943('0x57'),_0xa943('0x58')];var _0x36c0de={'SUM':_0xa943('0x59'),'COUNT':_0xa943('0x5a'),'COUNT DISTINCT':_0xa943('0x5b'),'MAX':_0xa943('0x5c'),'MIN':_0xa943('0x5d'),'AVG':_0xa943('0x5e'),'GROUP_CONCAT':_0xa943('0x5f'),'GROUP_CONCAT ASC':_0xa943('0x8b'),'GROUP_CONCAT DESC':_0xa943('0x60')};var _0x5d0252={'SEC_TO_TIME':_0xa943('0x8c'),'DATE':_0xa943('0x8d'),'HOUR':_0xa943('0x61'),'ROUND':_0xa943('0x8e'),'UNIX_TIMESTAMP':_0xa943('0x8f')};var _0x26d18d=function(_0x263b54){return!_['includes']([_0xa943('0x90'),_0xa943('0x63'),_0xa943('0x64'),_0xa943('0x91')],_0x263b54);};var _0x1ccaea=function(_0x298a5c){if(!_0x298a5c||!_0x298a5c['rules']['length']){return'';}for(var _0x371b8b='(',_0x1a5617=0x0;_0x1a5617<_0x298a5c['rules']['length'];_0x1a5617+=0x1){_0x1a5617>0x0&&(_0x371b8b+='\x20'+_0x298a5c[_0xa943('0x66')]+'\x20');_0x371b8b+=_0x298a5c[_0xa943('0x65')][_0x1a5617]['group']?_0x1ccaea(_0x298a5c[_0xa943('0x65')][_0x1a5617][_0xa943('0x82')]):_0x298a5c['rules'][_0x1a5617][_0xa943('0x67')]+'\x20'+_0x298a5c[_0xa943('0x65')][_0x1a5617][_0xa943('0x68')]+(_0x26d18d(_0x298a5c[_0xa943('0x65')][_0x1a5617][_0xa943('0x68')])?'\x20'+_0x298a5c[_0xa943('0x65')][_0x1a5617][_0xa943('0x69')]:'');}return _0x371b8b+')';};var _0x5ed66b={'where':{'id':_0x7cc6ad['id']}},_0xbd3fea,_0x3a019b,_0x5d4a1a,_0xfbbad3,_0x3864b3;_0x5ed66b=_['merge']({},_0x5ed66b,_0xdb020f);return db[_0xa943('0x2e')][_0xa943('0x4a')](_0x5ed66b)[_0xa943('0x26')](function(_0x2004e2){if(_0x2004e2){_0xbd3fea=_0x2004e2;return _0x2004e2[_0xa943('0x6a')]();}return null;})[_0xa943('0x26')](function(_0x299ee0){if(_0x299ee0){if(!_0x299ee0[_0xa943('0x38')]){throw new db['Sequelize']['ValidationErrorItem'](_0xa943('0x6d'),0x193);}_0x3a019b=_0x299ee0;return db['AnalyticMetric'][_0xa943('0x46')]({'raw':!![]});}return null;})[_0xa943('0x26')](function(_0x7c5038){if(_0x7c5038){_0x5d4a1a=_[_0xa943('0x6f')](_0x7c5038,'id');var _0x58d811;var _0x14fa5c=squel[_0xa943('0x92')]();_0x14fa5c[_0xa943('0x70')](_0xbd3fea[_0xa943('0x71')]);for(var _0x1f4f26=0x0;_0x1f4f26<_0x3a019b[_0xa943('0x38')];_0x1f4f26+=0x1){_0x58d811=_0x3a019b[_0x1f4f26][_0xa943('0x72')]?_0x5d4a1a[_0x3a019b[_0x1f4f26][_0xa943('0x72')]][_0xa943('0x73')]:_0x3a019b[_0x1f4f26][_0xa943('0x67')];_0x58d811=_0x3a019b[_0x1f4f26]['function']?_['replace'](_0x36c0de[_0x3a019b[_0x1f4f26][_0xa943('0x74')]],'%s',_0x58d811):_0x58d811;_0x58d811=_0x3a019b[_0x1f4f26][_0xa943('0x76')]?_[_0xa943('0x75')](_0x5d0252[_0x3a019b[_0x1f4f26][_0xa943('0x76')]],'%s',_0x58d811):_0x58d811;if(_0x3a019b[_0x1f4f26][_0xa943('0x77')]){_0x14fa5c['group'](_0x58d811);}_0x3a019b[_0x1f4f26]['orderBy']&&_0x14fa5c[_0xa943('0x3b')](_0x58d811,_0x3a019b[_0x1f4f26][_0xa943('0x78')]===_0xa943('0x93')?![]:!![]);_0x14fa5c[_0xa943('0x67')](_0x58d811,_0x3a019b[_0x1f4f26]['alias']||_0x58d811);}if(_0xbd3fea[_0xa943('0x7a')]){_0xbd3fea[_0xa943('0x7a')]=JSON[_0xa943('0x7b')](_0xbd3fea['joins']);for(var _0x2a8482=0x0;_0x2a8482<_0xbd3fea[_0xa943('0x7a')]['length'];_0x2a8482+=0x1){if(_0xbd3fea[_0xa943('0x7a')][_0x2a8482]['type']&&_[_0xa943('0x62')](_0x242834,_0xbd3fea[_0xa943('0x7a')][_0x2a8482][_0xa943('0x7c')])&&_0xbd3fea[_0xa943('0x7a')][_0x2a8482][_0xa943('0x7d')]&&_0xbd3fea[_0xa943('0x7a')][_0x2a8482]['foreignTable']&&_0xbd3fea['joins'][_0x2a8482]['foreignKey']){_0x14fa5c[_0xbd3fea[_0xa943('0x7a')][_0x2a8482][_0xa943('0x7c')]](_0xbd3fea[_0xa943('0x7a')][_0x2a8482][_0xa943('0x7e')],null,util[_0xa943('0x76')](_0xa943('0x7f'),_0xbd3fea[_0xa943('0x71')],_0xbd3fea[_0xa943('0x7a')][_0x2a8482][_0xa943('0x7d')],_0xbd3fea['joins'][_0x2a8482]['foreignTable'],_0xbd3fea[_0xa943('0x7a')][_0x2a8482]['foreignKey']));}}}if(_0xbd3fea[_0xa943('0x81')]){_0xbd3fea[_0xa943('0x81')]=JSON['parse'](_0xbd3fea['conditions']);_0x14fa5c[_0xa943('0x3f')](_0x1ccaea(_0xbd3fea[_0xa943('0x81')]['group']));}_0x3864b3=_0x14fa5c['clone']();_0x14fa5c[_0xa943('0x1f')](_0x576ad9);_0x14fa5c[_0xa943('0x1e')](0x0);return;}})[_0xa943('0x26')](function(){if(_0x327108['output']===_0xa943('0x94')){return null;}var _0x37f012=_[_0xa943('0x40')](_0x327108,{'name':_0x327108['fullPath']||_0x327108[_0xa943('0x2b')]||_0xbd3fea['name'],'basename':_0x3c3446,'savename':util[_0xa943('0x76')](_0xa943('0x95'),_0x327108[_0xa943('0x2b')]||_0xbd3fea['name'],require('randomstring')[_0xa943('0x96')](0x4),_0x327108[_0xa943('0x97')]||'csv'),'reportId':_0xbd3fea['id'],'reportType':'custom'});return db[_0xa943('0x98')][_0xa943('0x4b')](_0x37f012,{'raw':!![]});})[_0xa943('0x26')](function(_0x2a967f){if(_0xbd3fea[_0xa943('0x71')]==='cdr'){_0x3864b3[_0xa943('0x3f')](_0xbd3fea[_0xa943('0x71')]+_0xa943('0x99'),_0x327108[_0xa943('0x9a')],_0x327108['endDate']);}else{_0x3864b3[_0xa943('0x3f')](_0xbd3fea[_0xa943('0x71')]+_0xa943('0x9b'),_0x327108[_0xa943('0x9a')],_0x327108['endDate']);}if(_0x2a967f){logger[_0xa943('0x9c')](_0xa943('0x9d'),_0x3864b3[_0xa943('0x86')]());require(_0xa943('0x9e'))[_0xa943('0x9f')](path['join'](__dirname,_0xa943('0xa0'),_0x2a967f['output']),[_0x2a967f['id'],_0x3864b3['toString'](),path['join'](__dirname,'../../files/reports',_0x2a967f[_0xa943('0xa1')]),_0x3c3446]);return _0x2a967f;}else{var _0x22087d=squel[_0xa943('0x92')]();_0x22087d[_0xa943('0x70')]('('+_0x3864b3[_0xa943('0x86')]()+')',_0xa943('0xa2'));_0x22087d['field'](_0xa943('0xa3'),_0xa943('0x21'));_0x3864b3['limit'](_0x327108[_0xa943('0x1f')]||_0x576ad9);_0x3864b3['offset'](_0x327108[_0xa943('0x1e')]||0x0);return dbH[_0xa943('0x87')]['query'](_0x22087d[_0xa943('0x86')](),{'type':dbH[_0xa943('0x87')][_0xa943('0x88')][_0xa943('0x89')]})['then'](function(_0x3f09ec){if(!_0x3f09ec['length']){_0xfbbad3=0x0;}else{_0xfbbad3=_0x3f09ec[0x0]['count']||0x0;}return dbH[_0xa943('0x87')][_0xa943('0x33')](_0x3864b3[_0xa943('0x86')](),{'type':dbH[_0xa943('0x87')][_0xa943('0x88')][_0xa943('0x89')]});})['then'](function(_0x4566fd){return{'rows':_0x4566fd||[],'count':_0xfbbad3};});}});}exports[_0xa943('0xa4')]=function(_0x1a15f7,_0x400069){return runReport(_0x1a15f7[_0xa943('0x49')],_0x1a15f7[_0xa943('0x33')],_0x1a15f7['options'])[_0xa943('0x26')](respondWithResult(_0x400069,null))[_0xa943('0x48')](handleError(_0x400069,null));};exports[_0xa943('0xa5')]=runReport;exports[_0xa943('0x33')]=function(_0x4bfc9a,_0x239957){var _0x528b10=0xa;var _0x511f45=[_0xa943('0x8a'),_0xa943('0x56'),'right_join',_0xa943('0x58')];var _0x7b493b={'SUM':'SUM(%s)','COUNT':_0xa943('0x5a'),'COUNT DISTINCT':_0xa943('0x5b'),'MAX':_0xa943('0x5c'),'MIN':'MIN(%s)','AVG':'AVG(%s)','GROUP_CONCAT':'GROUP_CONCAT(%s)','GROUP_CONCAT ASC':_0xa943('0x8b'),'GROUP_CONCAT DESC':_0xa943('0x60')};var _0x1b496d={'SEC_TO_TIME':_0xa943('0x8c'),'DATE':_0xa943('0x8d'),'HOUR':_0xa943('0x61'),'ROUND':_0xa943('0x8e'),'UNIX_TIMESTAMP':_0xa943('0x8f')};var _0x3d3d3f=function(_0x3a56ac){return!_[_0xa943('0x62')]([_0xa943('0x90'),'IS\x20NOT\x20NULL',_0xa943('0x64'),_0xa943('0x91')],_0x3a56ac);};var _0x27a837=function(_0x5e9af2){if(!_0x5e9af2||!_0x5e9af2[_0xa943('0x65')][_0xa943('0x38')]){return'';}for(var _0x4d1cef='(',_0x144983=0x0;_0x144983<_0x5e9af2[_0xa943('0x65')][_0xa943('0x38')];_0x144983+=0x1){_0x144983>0x0&&(_0x4d1cef+='\x20'+_0x5e9af2[_0xa943('0x66')]+'\x20');_0x4d1cef+=_0x5e9af2[_0xa943('0x65')][_0x144983][_0xa943('0x82')]?_0x27a837(_0x5e9af2['rules'][_0x144983][_0xa943('0x82')]):_0x5e9af2['rules'][_0x144983][_0xa943('0x67')]+'\x20'+_0x5e9af2['rules'][_0x144983]['condition']+(_0x3d3d3f(_0x5e9af2[_0xa943('0x65')][_0x144983][_0xa943('0x68')])?'\x20'+_0x5e9af2['rules'][_0x144983][_0xa943('0x69')]:'');}return _0x4d1cef+')';};var _0x386822={'where':{'id':_0x4bfc9a['params']['id']}},_0x4e12f7,_0x918779,_0x311644,_0x2cd844,_0x241ae9;_0x386822=_['merge']({},_0x386822,_0x4bfc9a[_0xa943('0x43')]);return db[_0xa943('0x2e')][_0xa943('0x4a')](_0x386822)[_0xa943('0x26')](function(_0x3dc5e6){if(_0x3dc5e6){_0x4e12f7=_0x3dc5e6;return _0x3dc5e6[_0xa943('0x6a')]();}return null;})[_0xa943('0x26')](function(_0x5d93b5){if(_0x5d93b5){if(!_0x5d93b5[_0xa943('0x38')]){throw new db['Sequelize']['ValidationErrorItem'](_0xa943('0x6d'),0x193);}_0x918779=_0x5d93b5;return db[_0xa943('0x6e')][_0xa943('0x46')]({'raw':!![]});}return null;})[_0xa943('0x26')](function(_0x2b471a){if(_0x2b471a){_0x311644=_[_0xa943('0x6f')](_0x2b471a,'id');var _0x4ab2b2;var _0x5f09f6=squel[_0xa943('0x92')]();_0x5f09f6[_0xa943('0x70')](_0x4e12f7[_0xa943('0x71')]);for(var _0x4f1b1e=0x0;_0x4f1b1e<_0x918779[_0xa943('0x38')];_0x4f1b1e+=0x1){_0x4ab2b2=_0x918779[_0x4f1b1e][_0xa943('0x72')]?_0x311644[_0x918779[_0x4f1b1e][_0xa943('0x72')]]['metric']:_0x918779[_0x4f1b1e][_0xa943('0x67')];_0x4ab2b2=_0x918779[_0x4f1b1e][_0xa943('0x74')]?_[_0xa943('0x75')](_0x7b493b[_0x918779[_0x4f1b1e]['function']],'%s',_0x4ab2b2):_0x4ab2b2;_0x4ab2b2=_0x918779[_0x4f1b1e][_0xa943('0x76')]?_['replace'](_0x1b496d[_0x918779[_0x4f1b1e][_0xa943('0x76')]],'%s',_0x4ab2b2):_0x4ab2b2;if(_0x918779[_0x4f1b1e][_0xa943('0x77')]){_0x5f09f6['group'](_0x4ab2b2);}_0x918779[_0x4f1b1e]['orderBy']&&_0x5f09f6['order'](_0x4ab2b2,_0x918779[_0x4f1b1e][_0xa943('0x78')]===_0xa943('0x93')?![]:!![]);_0x5f09f6[_0xa943('0x67')](_0x4ab2b2,_0x918779[_0x4f1b1e][_0xa943('0x79')]||_0x4ab2b2);}if(_0x4e12f7[_0xa943('0x7a')]){_0x4e12f7[_0xa943('0x7a')]=JSON[_0xa943('0x7b')](_0x4e12f7[_0xa943('0x7a')]);for(var _0x4d5bfc=0x0;_0x4d5bfc<_0x4e12f7['joins'][_0xa943('0x38')];_0x4d5bfc+=0x1){if(_0x4e12f7['joins'][_0x4d5bfc][_0xa943('0x7c')]&&_[_0xa943('0x62')](_0x511f45,_0x4e12f7[_0xa943('0x7a')][_0x4d5bfc]['type'])&&_0x4e12f7[_0xa943('0x7a')][_0x4d5bfc][_0xa943('0x7d')]&&_0x4e12f7[_0xa943('0x7a')][_0x4d5bfc]['foreignTable']&&_0x4e12f7[_0xa943('0x7a')][_0x4d5bfc]['foreignKey']){_0x5f09f6[_0x4e12f7['joins'][_0x4d5bfc][_0xa943('0x7c')]](_0x4e12f7[_0xa943('0x7a')][_0x4d5bfc][_0xa943('0x7e')],null,util[_0xa943('0x76')](_0xa943('0x7f'),_0x4e12f7[_0xa943('0x71')],_0x4e12f7[_0xa943('0x7a')][_0x4d5bfc]['parentKey'],_0x4e12f7[_0xa943('0x7a')][_0x4d5bfc]['foreignTable'],_0x4e12f7[_0xa943('0x7a')][_0x4d5bfc][_0xa943('0x80')]));}}}if(_0x4e12f7[_0xa943('0x81')]){_0x4e12f7['conditions']=JSON['parse'](_0x4e12f7[_0xa943('0x81')]);_0x5f09f6[_0xa943('0x3f')](_0x27a837(_0x4e12f7['conditions'][_0xa943('0x82')]));}_0x241ae9=_0x5f09f6['clone']();_0x5f09f6[_0xa943('0x1f')](_0x528b10);_0x5f09f6[_0xa943('0x1e')](0x0);logger[_0xa943('0x84')](_0xa943('0x85'),_0x5f09f6[_0xa943('0x86')]());return dbH[_0xa943('0x87')]['query'](_0x5f09f6['toString'](),{'type':dbH['sequelize'][_0xa943('0x88')]['SELECT']});}})[_0xa943('0x26')](function(){return{'sql':_0x241ae9[_0xa943('0x86')]()};})[_0xa943('0x26')](respondWithResult(_0x239957,null))['catch'](handleError(_0x239957,null));};
\ No newline at end of file
+var _0xae14=['save','update','then','destroy','CustomReports','error','name','send','index','map','AnalyticCustomReport','key','model','query','keys','filters','intersection','attributes','fields','length','nolimit','order','sort','where','pick','filter','merge','type','VIRTUAL','options','includeAll','include','findAll','rows','catch','params','find','create','body','user','get','Reports','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','preview','join','left_join','cross_join','SUM(%s)','COUNT(%s)','MAX(%s)','MIN(%s)','AVG(%s)','GROUP_CONCAT(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)','SEC_TO_TIME(%s)','ROUND(%s)','includes','IS\x20NULL','IS\x20NOT\x20NULL','IS\x20EMPTY','IS\x20NOT\x20EMPTY','rules','operator','group','condition','value','getFields','Sequelize','ValidationErrorItem','keyBy','select','MetricId','metric','function','replace','groupBy','orderBy','DESC','field','alias','joins','parse','parentKey','foreignKey','foreignTable','table','conditions','clone','debug','Limited\x20Query:','toString','SELECT','right_join','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','DATE(%s)','UNIX_TIMESTAMP(%s)','AnalyticMetric','from','format','%s.%s\x20=\x20%s.%s','output','fullPath','%s-%s.%s','randomstring','csv','custom','AnalyticExtractedReport','cdr','.calldate\x20BETWEEN\x20?\x20AND\x20?','startDate','.createdAt\x20BETWEEN\x20?\x20AND\x20?','endDate','info','Run\x20Query:','child_process','fork','../../components/export/','../../files/reports','countTable','COUNT(*)','sequelize','QueryTypes','run','runReport','COUNT(DISTINCT\x20%s)','eml-format','rimraf','zip-dir','fast-json-patch','bluebird','path','sox','to-csv','ejs','fs-extra','lodash','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','dbH','sendStatus','end','status','offset','undefined','limit','count','set','reject'];(function(_0x36c5b0,_0x5001da){var _0xf19333=function(_0x1e880a){while(--_0x1e880a){_0x36c5b0['push'](_0x36c5b0['shift']());}};_0xf19333(++_0x5001da);}(_0xae14,0x1c2));var _0x4ae1=function(_0x191dff,_0xb60d16){_0x191dff=_0x191dff-0x0;var _0x410a43=_0xae14[_0x191dff];return _0x410a43;};'use strict';var emlformat=require(_0x4ae1('0x0'));var rimraf=require(_0x4ae1('0x1'));var zipdir=require(_0x4ae1('0x2'));var jsonpatch=require(_0x4ae1('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x4ae1('0x4'));var Mustache=require('mustache');var util=require('util');var path=require(_0x4ae1('0x5'));var sox=require(_0x4ae1('0x6'));var csv=require(_0x4ae1('0x7'));var ejs=require(_0x4ae1('0x8'));var fs=require('fs');var fs_extra=require(_0x4ae1('0x9'));var _=require(_0x4ae1('0xa'));var squel=require('squel');var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x4ae1('0xb'));var toCsv=require(_0x4ae1('0x7'));var querystring=require(_0x4ae1('0xc'));var Papa=require(_0x4ae1('0xd'));var Redis=require(_0x4ae1('0xe'));var authService=require(_0x4ae1('0xf'));var qs=require(_0x4ae1('0x10'));var as=require(_0x4ae1('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x4ae1('0x12'));var utils=require(_0x4ae1('0x13'));var config=require(_0x4ae1('0x14'));var licenseUtil=require(_0x4ae1('0x15'));var db=require(_0x4ae1('0x16'))['db'];var dbH=require(_0x4ae1('0x16'))[_0x4ae1('0x17')];function respondWithStatusCode(_0x39d502,_0x3fba58){_0x3fba58=_0x3fba58||0xcc;return function(_0x389523){if(_0x389523){return _0x39d502[_0x4ae1('0x18')](_0x3fba58);}return _0x39d502['status'](_0x3fba58)[_0x4ae1('0x19')]();};}function respondWithResult(_0x233571,_0x20c732){_0x20c732=_0x20c732||0xc8;return function(_0x336ac2){if(_0x336ac2){return _0x233571[_0x4ae1('0x1a')](_0x20c732)['json'](_0x336ac2);}};}function respondWithFilteredResult(_0x13a89d,_0x391b14){return function(_0x21df62){if(_0x21df62){var _0x15d0e2=typeof _0x391b14[_0x4ae1('0x1b')]===_0x4ae1('0x1c')&&typeof _0x391b14[_0x4ae1('0x1d')]==='undefined';var _0x45f499=_0x21df62[_0x4ae1('0x1e')];var _0x1e3b1a=_0x15d0e2?0x0:_0x391b14[_0x4ae1('0x1b')];var _0x35eb0f=_0x15d0e2?_0x21df62['count']:_0x391b14[_0x4ae1('0x1b')]+_0x391b14[_0x4ae1('0x1d')];var _0x22ad7a;if(_0x35eb0f>=_0x45f499){_0x35eb0f=_0x45f499;_0x22ad7a=0xc8;}else{_0x22ad7a=0xce;}_0x13a89d[_0x4ae1('0x1a')](_0x22ad7a);return _0x13a89d[_0x4ae1('0x1f')]('Content-Range',_0x1e3b1a+'-'+_0x35eb0f+'/'+_0x45f499)['json'](_0x21df62);}return null;};}function patchUpdates(_0x4f5ed8){return function(_0x573677){try{jsonpatch['apply'](_0x573677,_0x4f5ed8,!![]);}catch(_0x213bbb){return BPromise[_0x4ae1('0x20')](_0x213bbb);}return _0x573677[_0x4ae1('0x21')]();};}function saveUpdates(_0x5a982d,_0x27505d){return function(_0x33d06f){if(_0x33d06f){return _0x33d06f[_0x4ae1('0x22')](_0x5a982d)[_0x4ae1('0x23')](function(_0x4ab895){return _0x4ab895;});}return null;};}function removeEntity(_0x4532a0,_0x2da6ed){return function(_0x311665){if(_0x311665){return _0x311665[_0x4ae1('0x24')]()[_0x4ae1('0x23')](function(){var _0x3c6cc7=_0x311665['get']({'plain':!![]});var _0x5aecc5=_0x4ae1('0x25');return db['UserProfileResource'][_0x4ae1('0x24')]({'where':{'type':_0x5aecc5,'resourceId':_0x3c6cc7['id']}})[_0x4ae1('0x23')](function(){return _0x311665;});})[_0x4ae1('0x23')](function(){_0x4532a0[_0x4ae1('0x1a')](0xcc)[_0x4ae1('0x19')]();});}};}function handleEntityNotFound(_0x1f61c3,_0xe44e68){return function(_0x5b8db3){if(!_0x5b8db3){_0x1f61c3[_0x4ae1('0x18')](0x194);}return _0x5b8db3;};}function handleError(_0xf50b29,_0x1f06fb){_0x1f06fb=_0x1f06fb||0x1f4;return function(_0x174c29){logger[_0x4ae1('0x26')](_0x174c29['stack']);if(_0x174c29['name']){delete _0x174c29[_0x4ae1('0x27')];}_0xf50b29[_0x4ae1('0x1a')](_0x1f06fb)[_0x4ae1('0x28')](_0x174c29);};}exports[_0x4ae1('0x29')]=function(_0x4b8239,_0x18067c){var _0x81976b={},_0x52bf47={},_0x58a6e4={'count':0x0,'rows':[]};var _0x1af7d9=_[_0x4ae1('0x2a')](db[_0x4ae1('0x2b')]['rawAttributes'],function(_0x59a99e){return{'name':_0x59a99e['fieldName'],'type':_0x59a99e['type'][_0x4ae1('0x2c')]};});_0x52bf47[_0x4ae1('0x2d')]=_[_0x4ae1('0x2a')](_0x1af7d9,_0x4ae1('0x27'));_0x52bf47[_0x4ae1('0x2e')]=_[_0x4ae1('0x2f')](_0x4b8239[_0x4ae1('0x2e')]);_0x52bf47[_0x4ae1('0x30')]=_[_0x4ae1('0x31')](_0x52bf47['model'],_0x52bf47[_0x4ae1('0x2e')]);_0x81976b[_0x4ae1('0x32')]=_[_0x4ae1('0x31')](_0x52bf47[_0x4ae1('0x2d')],qs['fields'](_0x4b8239[_0x4ae1('0x2e')][_0x4ae1('0x33')]));_0x81976b[_0x4ae1('0x32')]=_0x81976b['attributes'][_0x4ae1('0x34')]?_0x81976b[_0x4ae1('0x32')]:_0x52bf47[_0x4ae1('0x2d')];if(!_0x4b8239[_0x4ae1('0x2e')]['hasOwnProperty'](_0x4ae1('0x35'))){_0x81976b[_0x4ae1('0x1d')]=qs[_0x4ae1('0x1d')](_0x4b8239['query']['limit']);_0x81976b[_0x4ae1('0x1b')]=qs['offset'](_0x4b8239['query']['offset']);}_0x81976b[_0x4ae1('0x36')]=qs[_0x4ae1('0x37')](_0x4b8239['query'][_0x4ae1('0x37')]);_0x81976b[_0x4ae1('0x38')]=qs[_0x4ae1('0x30')](_[_0x4ae1('0x39')](_0x4b8239[_0x4ae1('0x2e')],_0x52bf47[_0x4ae1('0x30')]),_0x1af7d9);if(_0x4b8239[_0x4ae1('0x2e')][_0x4ae1('0x3a')]){_0x81976b[_0x4ae1('0x38')]=_[_0x4ae1('0x3b')](_0x81976b[_0x4ae1('0x38')],{'$or':_[_0x4ae1('0x2a')](_0x1af7d9,function(_0x25bf65){if(_0x25bf65[_0x4ae1('0x3c')]!==_0x4ae1('0x3d')){var _0x3f4d10={};_0x3f4d10[_0x25bf65[_0x4ae1('0x27')]]={'$like':'%'+_0x4b8239[_0x4ae1('0x2e')][_0x4ae1('0x3a')]+'%'};return _0x3f4d10;}})});}_0x81976b=_[_0x4ae1('0x3b')]({},_0x81976b,_0x4b8239[_0x4ae1('0x3e')]);var _0x346333={'where':_0x81976b[_0x4ae1('0x38')]};return db['AnalyticCustomReport'][_0x4ae1('0x1e')](_0x346333)[_0x4ae1('0x23')](function(_0x12df10){_0x58a6e4['count']=_0x12df10;if(_0x4b8239['query'][_0x4ae1('0x3f')]){_0x81976b[_0x4ae1('0x40')]=[{'all':!![]}];}return db['AnalyticCustomReport'][_0x4ae1('0x41')](_0x81976b);})[_0x4ae1('0x23')](function(_0x3c6458){_0x58a6e4[_0x4ae1('0x42')]=_0x3c6458;return _0x58a6e4;})['then'](respondWithFilteredResult(_0x18067c,_0x81976b))[_0x4ae1('0x43')](handleError(_0x18067c,null));};exports['show']=function(_0x56a197,_0x5e6bb1){var _0x21223e={'raw':![],'where':{'id':_0x56a197[_0x4ae1('0x44')]['id']}},_0x2c9844={};_0x2c9844[_0x4ae1('0x2d')]=_['keys'](db[_0x4ae1('0x2b')]['rawAttributes']);_0x2c9844['query']=_[_0x4ae1('0x2f')](_0x56a197['query']);_0x2c9844['filters']=_[_0x4ae1('0x31')](_0x2c9844[_0x4ae1('0x2d')],_0x2c9844['query']);_0x21223e[_0x4ae1('0x32')]=_['intersection'](_0x2c9844[_0x4ae1('0x2d')],qs[_0x4ae1('0x33')](_0x56a197[_0x4ae1('0x2e')]['fields']));_0x21223e['attributes']=_0x21223e[_0x4ae1('0x32')]['length']?_0x21223e[_0x4ae1('0x32')]:_0x2c9844[_0x4ae1('0x2d')];if(_0x56a197[_0x4ae1('0x2e')][_0x4ae1('0x3f')]){_0x21223e[_0x4ae1('0x40')]=[{'all':!![]}];}_0x21223e=_[_0x4ae1('0x3b')]({},_0x21223e,_0x56a197[_0x4ae1('0x3e')]);return db[_0x4ae1('0x2b')][_0x4ae1('0x45')](_0x21223e)[_0x4ae1('0x23')](handleEntityNotFound(_0x5e6bb1,null))[_0x4ae1('0x23')](respondWithResult(_0x5e6bb1,null))[_0x4ae1('0x43')](handleError(_0x5e6bb1,null));};exports[_0x4ae1('0x46')]=function(_0x3dba93,_0xfea661){return db[_0x4ae1('0x2b')][_0x4ae1('0x46')](_0x3dba93[_0x4ae1('0x47')],{})['then'](function(_0x521512){var _0x33fe63=_0x3dba93[_0x4ae1('0x48')][_0x4ae1('0x49')]({'plain':!![]});if(!_0x33fe63)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x33fe63['role']==='user'){var _0xee46ae=_0x521512['get']({'plain':!![]});var _0x5e8f9f=_0x4ae1('0x4a');return db[_0x4ae1('0x4b')]['find']({'where':{'name':_0x5e8f9f,'userProfileId':_0x33fe63[_0x4ae1('0x4c')]},'raw':!![]})[_0x4ae1('0x23')](function(_0x539fc9){if(_0x539fc9&&_0x539fc9[_0x4ae1('0x4d')]===0x0){return db['UserProfileResource'][_0x4ae1('0x46')]({'name':_0xee46ae[_0x4ae1('0x27')],'resourceId':_0xee46ae['id'],'type':'CustomReports','sectionId':_0x539fc9['id']},{})[_0x4ae1('0x23')](function(){return _0x521512;});}else{return _0x521512;}})[_0x4ae1('0x43')](function(_0x5c7e8b){logger[_0x4ae1('0x26')](_0x4ae1('0x4e'),_0x5c7e8b);throw _0x5c7e8b;});}return _0x521512;})['then'](respondWithResult(_0xfea661,0xc9))[_0x4ae1('0x43')](handleError(_0xfea661,null));};exports[_0x4ae1('0x22')]=function(_0x3d1ad1,_0x550c3c){if(_0x3d1ad1[_0x4ae1('0x47')]['id']){delete _0x3d1ad1[_0x4ae1('0x47')]['id'];}return db[_0x4ae1('0x2b')][_0x4ae1('0x45')]({'where':{'id':_0x3d1ad1[_0x4ae1('0x44')]['id']}})[_0x4ae1('0x23')](handleEntityNotFound(_0x550c3c,null))[_0x4ae1('0x23')](saveUpdates(_0x3d1ad1[_0x4ae1('0x47')],null))[_0x4ae1('0x23')](respondWithResult(_0x550c3c,null))[_0x4ae1('0x43')](handleError(_0x550c3c,null));};exports['destroy']=function(_0x1f3530,_0x840663){return db['AnalyticCustomReport'][_0x4ae1('0x45')]({'where':{'id':_0x1f3530[_0x4ae1('0x44')]['id']}})[_0x4ae1('0x23')](handleEntityNotFound(_0x840663,null))[_0x4ae1('0x23')](removeEntity(_0x840663,null))[_0x4ae1('0x43')](handleError(_0x840663,null));};exports[_0x4ae1('0x4f')]=function(_0x3f2697,_0x17f617){var _0x593cd1=0xa;var _0x1607e6=[_0x4ae1('0x50'),_0x4ae1('0x51'),'right_join',_0x4ae1('0x52')];var _0x336af5={'SUM':_0x4ae1('0x53'),'COUNT':_0x4ae1('0x54'),'COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':_0x4ae1('0x55'),'MIN':_0x4ae1('0x56'),'AVG':_0x4ae1('0x57'),'GROUP_CONCAT':_0x4ae1('0x58'),'GROUP_CONCAT ASC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT DESC':_0x4ae1('0x59')};var _0x806136={'SEC_TO_TIME':_0x4ae1('0x5a'),'DATE':'DATE(%s)','HOUR':'HOUR(%s)','ROUND':_0x4ae1('0x5b'),'UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x499134=function(_0x2ac4c6){return!_[_0x4ae1('0x5c')]([_0x4ae1('0x5d'),_0x4ae1('0x5e'),_0x4ae1('0x5f'),_0x4ae1('0x60')],_0x2ac4c6);};var _0x445811=function(_0x571e65){if(!_0x571e65||!_0x571e65['rules'][_0x4ae1('0x34')]){return'';}for(var _0x49df2d='(',_0x5bb9d5=0x0;_0x5bb9d5<_0x571e65[_0x4ae1('0x61')][_0x4ae1('0x34')];_0x5bb9d5+=0x1){_0x5bb9d5>0x0&&(_0x49df2d+='\x20'+_0x571e65[_0x4ae1('0x62')]+'\x20');_0x49df2d+=_0x571e65['rules'][_0x5bb9d5]['group']?_0x445811(_0x571e65[_0x4ae1('0x61')][_0x5bb9d5][_0x4ae1('0x63')]):_0x571e65[_0x4ae1('0x61')][_0x5bb9d5]['field']+'\x20'+_0x571e65['rules'][_0x5bb9d5][_0x4ae1('0x64')]+(_0x499134(_0x571e65[_0x4ae1('0x61')][_0x5bb9d5][_0x4ae1('0x64')])?'\x20'+_0x571e65[_0x4ae1('0x61')][_0x5bb9d5][_0x4ae1('0x65')]:'');}return _0x49df2d+')';};var _0xe895c5={'where':{'id':_0x3f2697['params']['id']}},_0x3042a8,_0x25ce3d,_0x5f5ae1,_0x51dcdd,_0x4b0574;_0xe895c5=_['merge']({},_0xe895c5,_0x3f2697[_0x4ae1('0x3e')]);return db[_0x4ae1('0x2b')][_0x4ae1('0x45')](_0xe895c5)[_0x4ae1('0x23')](function(_0x53dcf2){if(_0x53dcf2){_0x3042a8=_0x53dcf2;return _0x53dcf2[_0x4ae1('0x66')]();}return null;})[_0x4ae1('0x23')](function(_0x52b2a9){if(_0x52b2a9){if(!_0x52b2a9['length']){throw new db[(_0x4ae1('0x67'))][(_0x4ae1('0x68'))]('Please\x20insert\x20at\x20least\x20one\x20field',0x193);}_0x25ce3d=_0x52b2a9;return db['AnalyticMetric'][_0x4ae1('0x41')]({'raw':!![]});}return null;})[_0x4ae1('0x23')](function(_0x3d31d2){if(_0x3d31d2){_0x5f5ae1=_[_0x4ae1('0x69')](_0x3d31d2,'id');var _0x71b77e;var _0x2a17ca=squel[_0x4ae1('0x6a')]();_0x2a17ca['from'](_0x3042a8['table']);for(var _0x5d545c=0x0;_0x5d545c<_0x25ce3d[_0x4ae1('0x34')];_0x5d545c+=0x1){_0x71b77e=_0x25ce3d[_0x5d545c]['MetricId']?_0x5f5ae1[_0x25ce3d[_0x5d545c][_0x4ae1('0x6b')]][_0x4ae1('0x6c')]:_0x25ce3d[_0x5d545c]['field'];_0x71b77e=_0x25ce3d[_0x5d545c][_0x4ae1('0x6d')]?_[_0x4ae1('0x6e')](_0x336af5[_0x25ce3d[_0x5d545c]['function']],'%s',_0x71b77e):_0x71b77e;_0x71b77e=_0x25ce3d[_0x5d545c]['format']?_[_0x4ae1('0x6e')](_0x806136[_0x25ce3d[_0x5d545c]['format']],'%s',_0x71b77e):_0x71b77e;if(_0x25ce3d[_0x5d545c][_0x4ae1('0x6f')]){_0x2a17ca['group'](_0x71b77e);}_0x25ce3d[_0x5d545c][_0x4ae1('0x70')]&&_0x2a17ca[_0x4ae1('0x36')](_0x71b77e,_0x25ce3d[_0x5d545c][_0x4ae1('0x70')]===_0x4ae1('0x71')?![]:!![]);_0x2a17ca[_0x4ae1('0x72')](_0x71b77e,_0x25ce3d[_0x5d545c][_0x4ae1('0x73')]||_0x71b77e);}if(_0x3042a8[_0x4ae1('0x74')]){_0x3042a8[_0x4ae1('0x74')]=JSON[_0x4ae1('0x75')](_0x3042a8['joins']);for(var _0x469a50=0x0;_0x469a50<_0x3042a8['joins'][_0x4ae1('0x34')];_0x469a50+=0x1){if(_0x3042a8[_0x4ae1('0x74')][_0x469a50][_0x4ae1('0x3c')]&&_['includes'](_0x1607e6,_0x3042a8['joins'][_0x469a50][_0x4ae1('0x3c')])&&_0x3042a8[_0x4ae1('0x74')][_0x469a50][_0x4ae1('0x76')]&&_0x3042a8[_0x4ae1('0x74')][_0x469a50]['foreignTable']&&_0x3042a8[_0x4ae1('0x74')][_0x469a50][_0x4ae1('0x77')]){_0x2a17ca[_0x3042a8[_0x4ae1('0x74')][_0x469a50][_0x4ae1('0x3c')]](_0x3042a8['joins'][_0x469a50][_0x4ae1('0x78')],null,util['format']('%s.%s\x20=\x20%s.%s',_0x3042a8[_0x4ae1('0x79')],_0x3042a8[_0x4ae1('0x74')][_0x469a50][_0x4ae1('0x76')],_0x3042a8[_0x4ae1('0x74')][_0x469a50][_0x4ae1('0x78')],_0x3042a8['joins'][_0x469a50][_0x4ae1('0x77')]));}}}if(_0x3042a8[_0x4ae1('0x7a')]){_0x3042a8[_0x4ae1('0x7a')]=JSON[_0x4ae1('0x75')](_0x3042a8[_0x4ae1('0x7a')]);_0x2a17ca['where'](_0x445811(_0x3042a8['conditions']['group']));}_0x4b0574=_0x2a17ca[_0x4ae1('0x7b')]();_0x2a17ca[_0x4ae1('0x1d')](_0x593cd1);_0x2a17ca[_0x4ae1('0x1b')](0x0);logger[_0x4ae1('0x7c')](_0x4ae1('0x7d'),_0x2a17ca[_0x4ae1('0x7e')]());return dbH['sequelize'][_0x4ae1('0x2e')](_0x2a17ca['toString'](),{'type':dbH['sequelize']['QueryTypes'][_0x4ae1('0x7f')]});}})[_0x4ae1('0x23')](respondWithResult(_0x17f617,null))[_0x4ae1('0x43')](handleError(_0x17f617,null));};function runReport(_0x36fa95,_0x175a83,_0x4ad32c){var _0x9601a6=_0x175a83[_0x4ae1('0x27')];var _0x3cfcf0=0xa;var _0x294a48=[_0x4ae1('0x50'),'left_join',_0x4ae1('0x80'),_0x4ae1('0x52')];var _0x36106b={'SUM':_0x4ae1('0x53'),'COUNT':'COUNT(%s)','COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':_0x4ae1('0x55'),'MIN':_0x4ae1('0x56'),'AVG':_0x4ae1('0x57'),'GROUP_CONCAT':_0x4ae1('0x58'),'GROUP_CONCAT ASC':_0x4ae1('0x81'),'GROUP_CONCAT DESC':_0x4ae1('0x59')};var _0x48c82b={'SEC_TO_TIME':'SEC_TO_TIME(%s)','DATE':_0x4ae1('0x82'),'HOUR':'HOUR(%s)','ROUND':_0x4ae1('0x5b'),'UNIX_TIMESTAMP':_0x4ae1('0x83')};var _0x400abe=function(_0x57f11f){return!_[_0x4ae1('0x5c')](['IS\x20NULL','IS\x20NOT\x20NULL',_0x4ae1('0x5f'),_0x4ae1('0x60')],_0x57f11f);};var _0x1528c5=function(_0x3975cb){if(!_0x3975cb||!_0x3975cb[_0x4ae1('0x61')][_0x4ae1('0x34')]){return'';}for(var _0x59575d='(',_0x577e8f=0x0;_0x577e8f<_0x3975cb[_0x4ae1('0x61')][_0x4ae1('0x34')];_0x577e8f+=0x1){_0x577e8f>0x0&&(_0x59575d+='\x20'+_0x3975cb[_0x4ae1('0x62')]+'\x20');_0x59575d+=_0x3975cb[_0x4ae1('0x61')][_0x577e8f][_0x4ae1('0x63')]?_0x1528c5(_0x3975cb[_0x4ae1('0x61')][_0x577e8f][_0x4ae1('0x63')]):_0x3975cb[_0x4ae1('0x61')][_0x577e8f][_0x4ae1('0x72')]+'\x20'+_0x3975cb[_0x4ae1('0x61')][_0x577e8f][_0x4ae1('0x64')]+(_0x400abe(_0x3975cb[_0x4ae1('0x61')][_0x577e8f]['condition'])?'\x20'+_0x3975cb[_0x4ae1('0x61')][_0x577e8f][_0x4ae1('0x65')]:'');}return _0x59575d+')';};var _0x1852bc={'where':{'id':_0x36fa95['id']}},_0xdd6e79,_0x30e47a,_0x2c5855,_0x30e8fb,_0x37d08a;_0x1852bc=_[_0x4ae1('0x3b')]({},_0x1852bc,_0x4ad32c);return db[_0x4ae1('0x2b')][_0x4ae1('0x45')](_0x1852bc)[_0x4ae1('0x23')](function(_0x568e47){if(_0x568e47){_0xdd6e79=_0x568e47;return _0x568e47[_0x4ae1('0x66')]();}return null;})['then'](function(_0x51fb98){if(_0x51fb98){if(!_0x51fb98['length']){throw new db[(_0x4ae1('0x67'))][(_0x4ae1('0x68'))]('Please\x20insert\x20at\x20least\x20one\x20field',0x193);}_0x30e47a=_0x51fb98;return db[_0x4ae1('0x84')][_0x4ae1('0x41')]({'raw':!![]});}return null;})[_0x4ae1('0x23')](function(_0xf6b69e){if(_0xf6b69e){_0x2c5855=_[_0x4ae1('0x69')](_0xf6b69e,'id');var _0x521dcd;var _0x4e50e7=squel['select']();_0x4e50e7[_0x4ae1('0x85')](_0xdd6e79[_0x4ae1('0x79')]);for(var _0x1b9cb8=0x0;_0x1b9cb8<_0x30e47a[_0x4ae1('0x34')];_0x1b9cb8+=0x1){_0x521dcd=_0x30e47a[_0x1b9cb8][_0x4ae1('0x6b')]?_0x2c5855[_0x30e47a[_0x1b9cb8][_0x4ae1('0x6b')]][_0x4ae1('0x6c')]:_0x30e47a[_0x1b9cb8][_0x4ae1('0x72')];_0x521dcd=_0x30e47a[_0x1b9cb8]['function']?_[_0x4ae1('0x6e')](_0x36106b[_0x30e47a[_0x1b9cb8][_0x4ae1('0x6d')]],'%s',_0x521dcd):_0x521dcd;_0x521dcd=_0x30e47a[_0x1b9cb8]['format']?_[_0x4ae1('0x6e')](_0x48c82b[_0x30e47a[_0x1b9cb8][_0x4ae1('0x86')]],'%s',_0x521dcd):_0x521dcd;if(_0x30e47a[_0x1b9cb8][_0x4ae1('0x6f')]){_0x4e50e7[_0x4ae1('0x63')](_0x521dcd);}_0x30e47a[_0x1b9cb8][_0x4ae1('0x70')]&&_0x4e50e7[_0x4ae1('0x36')](_0x521dcd,_0x30e47a[_0x1b9cb8][_0x4ae1('0x70')]===_0x4ae1('0x71')?![]:!![]);_0x4e50e7[_0x4ae1('0x72')](_0x521dcd,_0x30e47a[_0x1b9cb8][_0x4ae1('0x73')]||_0x521dcd);}if(_0xdd6e79[_0x4ae1('0x74')]){_0xdd6e79[_0x4ae1('0x74')]=JSON[_0x4ae1('0x75')](_0xdd6e79['joins']);for(var _0x3b07b3=0x0;_0x3b07b3<_0xdd6e79[_0x4ae1('0x74')][_0x4ae1('0x34')];_0x3b07b3+=0x1){if(_0xdd6e79['joins'][_0x3b07b3]['type']&&_[_0x4ae1('0x5c')](_0x294a48,_0xdd6e79[_0x4ae1('0x74')][_0x3b07b3][_0x4ae1('0x3c')])&&_0xdd6e79[_0x4ae1('0x74')][_0x3b07b3]['parentKey']&&_0xdd6e79['joins'][_0x3b07b3][_0x4ae1('0x78')]&&_0xdd6e79[_0x4ae1('0x74')][_0x3b07b3][_0x4ae1('0x77')]){_0x4e50e7[_0xdd6e79[_0x4ae1('0x74')][_0x3b07b3][_0x4ae1('0x3c')]](_0xdd6e79[_0x4ae1('0x74')][_0x3b07b3][_0x4ae1('0x78')],null,util[_0x4ae1('0x86')](_0x4ae1('0x87'),_0xdd6e79[_0x4ae1('0x79')],_0xdd6e79[_0x4ae1('0x74')][_0x3b07b3][_0x4ae1('0x76')],_0xdd6e79[_0x4ae1('0x74')][_0x3b07b3][_0x4ae1('0x78')],_0xdd6e79['joins'][_0x3b07b3][_0x4ae1('0x77')]));}}}if(_0xdd6e79[_0x4ae1('0x7a')]){_0xdd6e79[_0x4ae1('0x7a')]=JSON[_0x4ae1('0x75')](_0xdd6e79['conditions']);_0x4e50e7[_0x4ae1('0x38')](_0x1528c5(_0xdd6e79[_0x4ae1('0x7a')][_0x4ae1('0x63')]));}_0x37d08a=_0x4e50e7[_0x4ae1('0x7b')]();_0x4e50e7['limit'](_0x3cfcf0);_0x4e50e7['offset'](0x0);return;}})[_0x4ae1('0x23')](function(){if(_0x175a83[_0x4ae1('0x88')]==='web'){return null;}var _0x445ec3=_[_0x4ae1('0x3b')](_0x175a83,{'name':_0x175a83[_0x4ae1('0x89')]||_0x175a83[_0x4ae1('0x27')]||_0xdd6e79[_0x4ae1('0x27')],'basename':_0x9601a6,'savename':util[_0x4ae1('0x86')](_0x4ae1('0x8a'),_0x175a83[_0x4ae1('0x27')]||_0xdd6e79[_0x4ae1('0x27')],require(_0x4ae1('0x8b'))['generate'](0x4),_0x175a83[_0x4ae1('0x88')]||_0x4ae1('0x8c')),'reportId':_0xdd6e79['id'],'reportType':_0x4ae1('0x8d')});return db[_0x4ae1('0x8e')][_0x4ae1('0x46')](_0x445ec3,{'raw':!![]});})[_0x4ae1('0x23')](function(_0x4ce24d){if(_0xdd6e79[_0x4ae1('0x79')]===_0x4ae1('0x8f')){_0x37d08a[_0x4ae1('0x38')](_0xdd6e79[_0x4ae1('0x79')]+_0x4ae1('0x90'),_0x175a83[_0x4ae1('0x91')],_0x175a83['endDate']);}else{_0x37d08a['where'](_0xdd6e79[_0x4ae1('0x79')]+_0x4ae1('0x92'),_0x175a83[_0x4ae1('0x91')],_0x175a83[_0x4ae1('0x93')]);}if(_0x4ce24d){logger[_0x4ae1('0x94')](_0x4ae1('0x95'),_0x37d08a[_0x4ae1('0x7e')]());require(_0x4ae1('0x96'))[_0x4ae1('0x97')](path[_0x4ae1('0x50')](__dirname,_0x4ae1('0x98'),_0x4ce24d['output']),[_0x4ce24d['id'],_0x37d08a[_0x4ae1('0x7e')](),path[_0x4ae1('0x50')](__dirname,_0x4ae1('0x99'),_0x4ce24d['savename']),_0x9601a6]);return _0x4ce24d;}else{var _0x4cd371=squel[_0x4ae1('0x6a')]();_0x4cd371[_0x4ae1('0x85')]('('+_0x37d08a['toString']()+')',_0x4ae1('0x9a'));_0x4cd371['field'](_0x4ae1('0x9b'),_0x4ae1('0x1e'));_0x37d08a['limit'](_0x175a83['limit']||_0x3cfcf0);_0x37d08a[_0x4ae1('0x1b')](_0x175a83[_0x4ae1('0x1b')]||0x0);return dbH['sequelize'][_0x4ae1('0x2e')](_0x4cd371[_0x4ae1('0x7e')](),{'type':dbH[_0x4ae1('0x9c')][_0x4ae1('0x9d')][_0x4ae1('0x7f')]})['then'](function(_0x325a45){if(!_0x325a45[_0x4ae1('0x34')]){_0x30e8fb=0x0;}else{_0x30e8fb=_0x325a45[0x0][_0x4ae1('0x1e')]||0x0;}return dbH['sequelize']['query'](_0x37d08a[_0x4ae1('0x7e')](),{'type':dbH[_0x4ae1('0x9c')][_0x4ae1('0x9d')]['SELECT']});})[_0x4ae1('0x23')](function(_0x511818){return{'rows':_0x511818||[],'count':_0x30e8fb};});}});}exports[_0x4ae1('0x9e')]=function(_0x2eaa27,_0x46855f){return runReport(_0x2eaa27[_0x4ae1('0x44')],_0x2eaa27['query'],_0x2eaa27[_0x4ae1('0x3e')])['then'](respondWithResult(_0x46855f,null))[_0x4ae1('0x43')](handleError(_0x46855f,null));};exports[_0x4ae1('0x9f')]=runReport;exports[_0x4ae1('0x2e')]=function(_0x107284,_0x1d86d7){var _0x666934=0xa;var _0x565d0e=[_0x4ae1('0x50'),_0x4ae1('0x51'),_0x4ae1('0x80'),_0x4ae1('0x52')];var _0x277604={'SUM':_0x4ae1('0x53'),'COUNT':_0x4ae1('0x54'),'COUNT DISTINCT':_0x4ae1('0xa0'),'MAX':'MAX(%s)','MIN':_0x4ae1('0x56'),'AVG':_0x4ae1('0x57'),'GROUP_CONCAT':_0x4ae1('0x58'),'GROUP_CONCAT ASC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0x284275={'SEC_TO_TIME':_0x4ae1('0x5a'),'DATE':_0x4ae1('0x82'),'HOUR':'HOUR(%s)','ROUND':_0x4ae1('0x5b'),'UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x29174e=function(_0x20e7db){return!_[_0x4ae1('0x5c')]([_0x4ae1('0x5d'),_0x4ae1('0x5e'),_0x4ae1('0x5f'),_0x4ae1('0x60')],_0x20e7db);};var _0x1ea833=function(_0x3a8893){if(!_0x3a8893||!_0x3a8893[_0x4ae1('0x61')]['length']){return'';}for(var _0x3202ae='(',_0x3956e4=0x0;_0x3956e4<_0x3a8893[_0x4ae1('0x61')][_0x4ae1('0x34')];_0x3956e4+=0x1){_0x3956e4>0x0&&(_0x3202ae+='\x20'+_0x3a8893[_0x4ae1('0x62')]+'\x20');_0x3202ae+=_0x3a8893[_0x4ae1('0x61')][_0x3956e4][_0x4ae1('0x63')]?_0x1ea833(_0x3a8893[_0x4ae1('0x61')][_0x3956e4]['group']):_0x3a8893[_0x4ae1('0x61')][_0x3956e4][_0x4ae1('0x72')]+'\x20'+_0x3a8893[_0x4ae1('0x61')][_0x3956e4][_0x4ae1('0x64')]+(_0x29174e(_0x3a8893[_0x4ae1('0x61')][_0x3956e4][_0x4ae1('0x64')])?'\x20'+_0x3a8893[_0x4ae1('0x61')][_0x3956e4][_0x4ae1('0x65')]:'');}return _0x3202ae+')';};var _0x444ee9={'where':{'id':_0x107284[_0x4ae1('0x44')]['id']}},_0x49d027,_0x1b065d,_0x92faa1,_0x59a663,_0x347488;_0x444ee9=_[_0x4ae1('0x3b')]({},_0x444ee9,_0x107284[_0x4ae1('0x3e')]);return db[_0x4ae1('0x2b')][_0x4ae1('0x45')](_0x444ee9)[_0x4ae1('0x23')](function(_0x504d8c){if(_0x504d8c){_0x49d027=_0x504d8c;return _0x504d8c[_0x4ae1('0x66')]();}return null;})[_0x4ae1('0x23')](function(_0x1412ca){if(_0x1412ca){if(!_0x1412ca[_0x4ae1('0x34')]){throw new db[(_0x4ae1('0x67'))][(_0x4ae1('0x68'))]('Please\x20insert\x20at\x20least\x20one\x20field',0x193);}_0x1b065d=_0x1412ca;return db['AnalyticMetric'][_0x4ae1('0x41')]({'raw':!![]});}return null;})['then'](function(_0x256f7f){if(_0x256f7f){_0x92faa1=_[_0x4ae1('0x69')](_0x256f7f,'id');var _0x31d02e;var _0xf07b40=squel[_0x4ae1('0x6a')]();_0xf07b40['from'](_0x49d027['table']);for(var _0x164392=0x0;_0x164392<_0x1b065d[_0x4ae1('0x34')];_0x164392+=0x1){_0x31d02e=_0x1b065d[_0x164392][_0x4ae1('0x6b')]?_0x92faa1[_0x1b065d[_0x164392][_0x4ae1('0x6b')]]['metric']:_0x1b065d[_0x164392]['field'];_0x31d02e=_0x1b065d[_0x164392][_0x4ae1('0x6d')]?_[_0x4ae1('0x6e')](_0x277604[_0x1b065d[_0x164392][_0x4ae1('0x6d')]],'%s',_0x31d02e):_0x31d02e;_0x31d02e=_0x1b065d[_0x164392][_0x4ae1('0x86')]?_[_0x4ae1('0x6e')](_0x284275[_0x1b065d[_0x164392][_0x4ae1('0x86')]],'%s',_0x31d02e):_0x31d02e;if(_0x1b065d[_0x164392][_0x4ae1('0x6f')]){_0xf07b40[_0x4ae1('0x63')](_0x31d02e);}_0x1b065d[_0x164392][_0x4ae1('0x70')]&&_0xf07b40[_0x4ae1('0x36')](_0x31d02e,_0x1b065d[_0x164392][_0x4ae1('0x70')]===_0x4ae1('0x71')?![]:!![]);_0xf07b40[_0x4ae1('0x72')](_0x31d02e,_0x1b065d[_0x164392][_0x4ae1('0x73')]||_0x31d02e);}if(_0x49d027[_0x4ae1('0x74')]){_0x49d027['joins']=JSON[_0x4ae1('0x75')](_0x49d027[_0x4ae1('0x74')]);for(var _0x510691=0x0;_0x510691<_0x49d027[_0x4ae1('0x74')][_0x4ae1('0x34')];_0x510691+=0x1){if(_0x49d027[_0x4ae1('0x74')][_0x510691][_0x4ae1('0x3c')]&&_[_0x4ae1('0x5c')](_0x565d0e,_0x49d027[_0x4ae1('0x74')][_0x510691]['type'])&&_0x49d027[_0x4ae1('0x74')][_0x510691]['parentKey']&&_0x49d027[_0x4ae1('0x74')][_0x510691][_0x4ae1('0x78')]&&_0x49d027[_0x4ae1('0x74')][_0x510691]['foreignKey']){_0xf07b40[_0x49d027[_0x4ae1('0x74')][_0x510691][_0x4ae1('0x3c')]](_0x49d027[_0x4ae1('0x74')][_0x510691][_0x4ae1('0x78')],null,util[_0x4ae1('0x86')](_0x4ae1('0x87'),_0x49d027[_0x4ae1('0x79')],_0x49d027[_0x4ae1('0x74')][_0x510691][_0x4ae1('0x76')],_0x49d027['joins'][_0x510691][_0x4ae1('0x78')],_0x49d027[_0x4ae1('0x74')][_0x510691][_0x4ae1('0x77')]));}}}if(_0x49d027[_0x4ae1('0x7a')]){_0x49d027[_0x4ae1('0x7a')]=JSON['parse'](_0x49d027['conditions']);_0xf07b40['where'](_0x1ea833(_0x49d027[_0x4ae1('0x7a')][_0x4ae1('0x63')]));}_0x347488=_0xf07b40[_0x4ae1('0x7b')]();_0xf07b40[_0x4ae1('0x1d')](_0x666934);_0xf07b40[_0x4ae1('0x1b')](0x0);logger[_0x4ae1('0x7c')](_0x4ae1('0x7d'),_0xf07b40[_0x4ae1('0x7e')]());return dbH['sequelize'][_0x4ae1('0x2e')](_0xf07b40[_0x4ae1('0x7e')](),{'type':dbH[_0x4ae1('0x9c')]['QueryTypes']['SELECT']});}})[_0x4ae1('0x23')](function(){return{'sql':_0x347488[_0x4ae1('0x7e')]()};})[_0x4ae1('0x23')](respondWithResult(_0x1d86d7,null))[_0x4ae1('0x43')](handleError(_0x1d86d7,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf8e7=['AnalyticCustomReport','analytics_custom_reports','lodash','util','../../config/logger','api','moment','bluebird','path','./analyticCustomReport.attributes','define'];(function(_0x35cfd1,_0x543bee){var _0x417754=function(_0x39080c){while(--_0x39080c){_0x35cfd1['push'](_0x35cfd1['shift']());}};_0x417754(++_0x543bee);}(_0xf8e7,0x1af));var _0x7f8e=function(_0x356955,_0x5995b3){_0x356955=_0x356955-0x0;var _0x342a34=_0xf8e7[_0x356955];return _0x342a34;};'use strict';var _=require(_0x7f8e('0x0'));var util=require(_0x7f8e('0x1'));var logger=require(_0x7f8e('0x2'))(_0x7f8e('0x3'));var moment=require(_0x7f8e('0x4'));var BPromise=require(_0x7f8e('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x7f8e('0x6'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0x7f8e('0x7'));module['exports']=function(_0xea8ffd,_0x599959){return _0xea8ffd[_0x7f8e('0x8')](_0x7f8e('0x9'),attributes,{'tableName':_0x7f8e('0xa'),'paranoid':!![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x27b5=['path','rimraf','../../config/environment','./analyticCustomReport.attributes','exports','AnalyticCustomReport','analytics_custom_reports','util','../../config/logger','api','moment'];(function(_0x522639,_0x29b1f6){var _0x3ef6b1=function(_0x4c3120){while(--_0x4c3120){_0x522639['push'](_0x522639['shift']());}};_0x3ef6b1(++_0x29b1f6);}(_0x27b5,0x1bf));var _0x527b=function(_0x34b821,_0x504e55){_0x34b821=_0x34b821-0x0;var _0x5e00a0=_0x27b5[_0x34b821];return _0x5e00a0;};'use strict';var _=require('lodash');var util=require(_0x527b('0x0'));var logger=require(_0x527b('0x1'))(_0x527b('0x2'));var moment=require(_0x527b('0x3'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0x527b('0x4'));var rimraf=require(_0x527b('0x5'));var config=require(_0x527b('0x6'));var attributes=require(_0x527b('0x7'));module[_0x527b('0x8')]=function(_0x20e3a4,_0x53a88f){return _0x20e3a4['define'](_0x527b('0x9'),attributes,{'tableName':_0x527b('0xa'),'paranoid':!![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6f0e=['AnalyticCustomReport,\x20%s,\x20%s','message','lodash','util','randomstring','../../mysqldb','../../config/utils','rpc','jayson/promise','client','http','request','then','info','request\x20sent','debug','stringify','error','code'];(function(_0x4dbf36,_0x2c2de2){var _0x58ea73=function(_0x134655){while(--_0x134655){_0x4dbf36['push'](_0x4dbf36['shift']());}};_0x58ea73(++_0x2c2de2);}(_0x6f0e,0x87));var _0xe6f0=function(_0xc09226,_0x5d5b15){_0xc09226=_0xc09226-0x0;var _0x46aa0b=_0x6f0e[_0xc09226];return _0x46aa0b;};'use strict';var _=require(_0xe6f0('0x0'));var util=require(_0xe6f0('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0xe6f0('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xe6f0('0x3'))['db'];var utils=require(_0xe6f0('0x4'));var logger=require('../../config/logger')(_0xe6f0('0x5'));var config=require('../../config/environment');var jayson=require(_0xe6f0('0x6'));var client=jayson[_0xe6f0('0x7')][_0xe6f0('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x27c6b6,_0x199340,_0x400841){return new BPromise(function(_0x590f77,_0x67e823){return client[_0xe6f0('0x9')](_0x27c6b6,_0x400841)[_0xe6f0('0xa')](function(_0x18b9b5){logger[_0xe6f0('0xb')]('AnalyticCustomReport,\x20%s,\x20%s',_0x199340,_0xe6f0('0xc'));logger[_0xe6f0('0xd')]('AnalyticCustomReport,\x20%s,\x20%s,\x20%s',_0x199340,_0xe6f0('0xc'),JSON[_0xe6f0('0xe')](_0x18b9b5));if(_0x18b9b5[_0xe6f0('0xf')]){if(_0x18b9b5[_0xe6f0('0xf')][_0xe6f0('0x10')]===0x1f4){logger['error'](_0xe6f0('0x11'),_0x199340,_0x18b9b5['error'][_0xe6f0('0x12')]);return _0x67e823(_0x18b9b5[_0xe6f0('0xf')][_0xe6f0('0x12')]);}logger[_0xe6f0('0xf')](_0xe6f0('0x11'),_0x199340,_0x18b9b5[_0xe6f0('0xf')][_0xe6f0('0x12')]);return _0x590f77(_0x18b9b5[_0xe6f0('0xf')][_0xe6f0('0x12')]);}else{logger[_0xe6f0('0xb')](_0xe6f0('0x11'),_0x199340,'request\x20sent');_0x590f77(_0x18b9b5['result'][_0xe6f0('0x12')]);}})['catch'](function(_0x42a9ee){logger[_0xe6f0('0xf')]('AnalyticCustomReport,\x20%s,\x20%s',_0x199340,_0x42a9ee);_0x67e823(_0x42a9ee);});});}
\ No newline at end of file
+var _0x05ae=['../../config/environment','http','request','then','info','AnalyticCustomReport,\x20%s,\x20%s','request\x20sent','debug','AnalyticCustomReport,\x20%s,\x20%s,\x20%s','stringify','error','message','catch','lodash','util','moment','../../mysqldb','rpc'];(function(_0x449e8e,_0x5c715c){var _0x2b31c1=function(_0xdef781){while(--_0xdef781){_0x449e8e['push'](_0x449e8e['shift']());}};_0x2b31c1(++_0x5c715c);}(_0x05ae,0x8b));var _0xe05a=function(_0x24ade9,_0x4157f4){_0x24ade9=_0x24ade9-0x0;var _0x364b54=_0x05ae[_0x24ade9];return _0x364b54;};'use strict';var _=require(_0xe05a('0x0'));var util=require(_0xe05a('0x1'));var moment=require(_0xe05a('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0xe05a('0x3'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0xe05a('0x4'));var config=require(_0xe05a('0x5'));var jayson=require('jayson/promise');var client=jayson['client'][_0xe05a('0x6')]({'port':0x232a});function respondWithRpcPromise(_0x899b07,_0x493a5d,_0x2a4160){return new BPromise(function(_0x5301b4,_0x4bc7b2){return client[_0xe05a('0x7')](_0x899b07,_0x2a4160)[_0xe05a('0x8')](function(_0x223388){logger[_0xe05a('0x9')](_0xe05a('0xa'),_0x493a5d,_0xe05a('0xb'));logger[_0xe05a('0xc')](_0xe05a('0xd'),_0x493a5d,_0xe05a('0xb'),JSON[_0xe05a('0xe')](_0x223388));if(_0x223388['error']){if(_0x223388[_0xe05a('0xf')]['code']===0x1f4){logger[_0xe05a('0xf')](_0xe05a('0xa'),_0x493a5d,_0x223388['error'][_0xe05a('0x10')]);return _0x4bc7b2(_0x223388[_0xe05a('0xf')][_0xe05a('0x10')]);}logger[_0xe05a('0xf')](_0xe05a('0xa'),_0x493a5d,_0x223388[_0xe05a('0xf')]['message']);return _0x5301b4(_0x223388[_0xe05a('0xf')][_0xe05a('0x10')]);}else{logger[_0xe05a('0x9')](_0xe05a('0xa'),_0x493a5d,_0xe05a('0xb'));_0x5301b4(_0x223388['result'][_0xe05a('0x10')]);}})[_0xe05a('0x11')](function(_0xa08c3a){logger['error'](_0xe05a('0xa'),_0x493a5d,_0xa08c3a);_0x4bc7b2(_0xa08c3a);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xaa50=['Router','../../components/interaction/service','../../config/environment','./analyticCustomReport.controller','get','index','/:id','show','/:id/run','isAuthenticated','/:id/query','query','post','create','put','update','delete','destroy','exports','multer','util','path','express'];(function(_0x408d62,_0x39ace7){var _0x5b87a6=function(_0x640df4){while(--_0x640df4){_0x408d62['push'](_0x408d62['shift']());}};_0x5b87a6(++_0x39ace7);}(_0xaa50,0x1c8));var _0x0aa5=function(_0x301ad4,_0x3ccbaa){_0x301ad4=_0x301ad4-0x0;var _0x1dfbd7=_0xaa50[_0x301ad4];return _0x1dfbd7;};'use strict';var multer=require(_0x0aa5('0x0'));var util=require(_0x0aa5('0x1'));var path=require(_0x0aa5('0x2'));var timeout=require('connect-timeout');var express=require(_0x0aa5('0x3'));var router=express[_0x0aa5('0x4')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0x0aa5('0x5'));var config=require(_0x0aa5('0x6'));var controller=require(_0x0aa5('0x7'));router[_0x0aa5('0x8')]('/',auth['isAuthenticated'](),controller[_0x0aa5('0x9')]);router[_0x0aa5('0x8')](_0x0aa5('0xa'),auth['isAuthenticated'](),controller[_0x0aa5('0xb')]);router[_0x0aa5('0x8')]('/:id/preview',auth['isAuthenticated'](),controller['preview']);router[_0x0aa5('0x8')](_0x0aa5('0xc'),auth[_0x0aa5('0xd')](),controller['run']);router[_0x0aa5('0x8')](_0x0aa5('0xe'),auth['isAuthenticated'](),controller[_0x0aa5('0xf')]);router[_0x0aa5('0x10')]('/',auth[_0x0aa5('0xd')](),controller[_0x0aa5('0x11')]);router[_0x0aa5('0x12')](_0x0aa5('0xa'),auth[_0x0aa5('0xd')](),controller[_0x0aa5('0x13')]);router[_0x0aa5('0x14')]('/:id',auth[_0x0aa5('0xd')](),controller[_0x0aa5('0x15')]);module[_0x0aa5('0x16')]=router;
\ No newline at end of file
+var _0xc68a=['./analyticCustomReport.controller','get','isAuthenticated','/:id/preview','/:id/run','run','query','create','put','/:id','update','delete','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment'];(function(_0x4862f0,_0x51b808){var _0x30c6cb=function(_0x3fe9db){while(--_0x3fe9db){_0x4862f0['push'](_0x4862f0['shift']());}};_0x30c6cb(++_0x51b808);}(_0xc68a,0x1f0));var _0xac68=function(_0x9e575,_0x5894d4){_0x9e575=_0x9e575-0x0;var _0x522277=_0xc68a[_0x9e575];return _0x522277;};'use strict';var multer=require(_0xac68('0x0'));var util=require(_0xac68('0x1'));var path=require(_0xac68('0x2'));var timeout=require(_0xac68('0x3'));var express=require(_0xac68('0x4'));var router=express[_0xac68('0x5')]();var fs_extra=require(_0xac68('0x6'));var auth=require(_0xac68('0x7'));var interaction=require(_0xac68('0x8'));var config=require(_0xac68('0x9'));var controller=require(_0xac68('0xa'));router[_0xac68('0xb')]('/',auth['isAuthenticated'](),controller['index']);router[_0xac68('0xb')]('/:id',auth[_0xac68('0xc')](),controller['show']);router[_0xac68('0xb')](_0xac68('0xd'),auth[_0xac68('0xc')](),controller['preview']);router['get'](_0xac68('0xe'),auth[_0xac68('0xc')](),controller[_0xac68('0xf')]);router[_0xac68('0xb')]('/:id/query',auth[_0xac68('0xc')](),controller[_0xac68('0x10')]);router['post']('/',auth[_0xac68('0xc')](),controller[_0xac68('0x11')]);router[_0xac68('0x12')](_0xac68('0x13'),auth[_0xac68('0xc')](),controller[_0xac68('0x14')]);router[_0xac68('0x15')]('/:id',auth[_0xac68('0xc')](),controller['destroy']);module[_0xac68('0x16')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5fd1=['STRING','TEXT','sequelize'];(function(_0x2d4661,_0x2da65c){var _0x42ed1e=function(_0x263c50){while(--_0x263c50){_0x2d4661['push'](_0x2d4661['shift']());}};_0x42ed1e(++_0x2da65c);}(_0x5fd1,0x155));var _0x15fd=function(_0xe18f47,_0x3c8af0){_0xe18f47=_0xe18f47-0x0;var _0x475b8a=_0x5fd1[_0xe18f47];return _0x475b8a;};'use strict';var Sequelize=require(_0x15fd('0x0'));module['exports']={'name':{'type':Sequelize[_0x15fd('0x1')],'allowNull':![]},'description':{'type':Sequelize[_0x15fd('0x1')]},'parent':{'type':Sequelize[_0x15fd('0x1')]},'table':{'type':Sequelize['STRING']},'conditions':{'type':Sequelize['TEXT']},'joins':{'type':Sequelize[_0x15fd('0x2')]}};
\ No newline at end of file
+var _0x5fc3=['sequelize','exports','STRING','TEXT'];(function(_0x22f196,_0x63b81){var _0x3ed8a9=function(_0xb31473){while(--_0xb31473){_0x22f196['push'](_0x22f196['shift']());}};_0x3ed8a9(++_0x63b81);}(_0x5fc3,0xa8));var _0x35fc=function(_0x3b87f4,_0x112243){_0x3b87f4=_0x3b87f4-0x0;var _0x63d16e=_0x5fc3[_0x3b87f4];return _0x63d16e;};'use strict';var Sequelize=require(_0x35fc('0x0'));module[_0x35fc('0x1')]={'name':{'type':Sequelize['STRING'],'allowNull':![]},'description':{'type':Sequelize[_0x35fc('0x2')]},'parent':{'type':Sequelize[_0x35fc('0x2')]},'table':{'type':Sequelize[_0x35fc('0x2')]},'conditions':{'type':Sequelize[_0x35fc('0x3')]},'joins':{'type':Sequelize[_0x35fc('0x3')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1cb9=['runReport','left_join','SEC_TO_TIME(%s)','IS\x20NULL','clone','debug','eml-format','zip-dir','fast-json-patch','request-promise','moment','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','json','offset','limit','undefined','count','status','set','apply','reject','then','destroy','get','UserProfileResource','stack','name','send','map','AnalyticDefaultReport','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','fields','length','attributes','hasOwnProperty','sort','where','filter','merge','VIRTUAL','options','includeAll','include','findAll','show','params','find','catch','body','user','role','autoAssociation','create','DefaultReports','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','preview','join','right_join','cross_join','SUM(%s)','COUNT(DISTINCT\x20%s)','MAX(%s)','MIN(%s)','AVG(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)','DATE(%s)','ROUND(%s)','UNIX_TIMESTAMP(%s)','includes','IS\x20NOT\x20NULL','IS\x20EMPTY','IS\x20NOT\x20EMPTY','rules','operator','group','field','condition','getFields','Sequelize','ValidationErrorItem','Please\x20insert\x20at\x20least\x20one\x20field','AnalyticMetric','keyBy','select','from','table','MetricId','metric','function','replace','format','orderBy','order','DESC','joins','parentKey','foreignKey','foreignTable','%s.%s\x20=\x20%s.%s','conditions','parse','Limited\x20Query:','sequelize','toString','QueryTypes','SELECT','COUNT(%s)','GROUP_CONCAT(%s)','HOUR(%s)','value','groupBy','alias','output','fullPath','%s-%s.%s','randomstring','generate','csv','default','cdr','.calldate\x20BETWEEN\x20?\x20AND\x20?','startDate','endDate','.createdAt\x20BETWEEN\x20?\x20AND\x20?','info','Run\x20Query:','child_process','fork','../../components/export/','../../files/reports','savename','countTable','COUNT(*)'];(function(_0x4beba0,_0xc5a79b){var _0x104974=function(_0x486b40){while(--_0x486b40){_0x4beba0['push'](_0x4beba0['shift']());}};_0x104974(++_0xc5a79b);}(_0x1cb9,0x14e));var _0x91cb=function(_0x5396e0,_0x37783a){_0x5396e0=_0x5396e0-0x0;var _0x4b19ca=_0x1cb9[_0x5396e0];return _0x4b19ca;};'use strict';var emlformat=require(_0x91cb('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x91cb('0x1'));var jsonpatch=require(_0x91cb('0x2'));var rp=require(_0x91cb('0x3'));var moment=require(_0x91cb('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x91cb('0x5'));var util=require(_0x91cb('0x6'));var path=require('path');var sox=require(_0x91cb('0x7'));var csv=require(_0x91cb('0x8'));var ejs=require(_0x91cb('0x9'));var fs=require('fs');var fs_extra=require(_0x91cb('0xa'));var _=require(_0x91cb('0xb'));var squel=require(_0x91cb('0xc'));var crypto=require('crypto');var jsforce=require(_0x91cb('0xd'));var deskjs=require('desk.js');var toCsv=require(_0x91cb('0x8'));var querystring=require('querystring');var Papa=require(_0x91cb('0xe'));var Redis=require(_0x91cb('0xf'));var authService=require(_0x91cb('0x10'));var qs=require(_0x91cb('0x11'));var as=require(_0x91cb('0x12'));var hardwareService=require(_0x91cb('0x13'));var logger=require(_0x91cb('0x14'))(_0x91cb('0x15'));var utils=require(_0x91cb('0x16'));var config=require(_0x91cb('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0x91cb('0x18'))['db'];var dbH=require(_0x91cb('0x18'))['dbH'];function respondWithStatusCode(_0x20e6e0,_0x3ea707){_0x3ea707=_0x3ea707||0xcc;return function(_0x44f2e9){if(_0x44f2e9){return _0x20e6e0[_0x91cb('0x19')](_0x3ea707);}return _0x20e6e0['status'](_0x3ea707)['end']();};}function respondWithResult(_0x4aae25,_0x3d22b7){_0x3d22b7=_0x3d22b7||0xc8;return function(_0x585470){if(_0x585470){return _0x4aae25['status'](_0x3d22b7)[_0x91cb('0x1a')](_0x585470);}};}function respondWithFilteredResult(_0xc3629e,_0x347980){return function(_0x5ea796){if(_0x5ea796){var _0x238f11=typeof _0x347980[_0x91cb('0x1b')]==='undefined'&&typeof _0x347980[_0x91cb('0x1c')]===_0x91cb('0x1d');var _0x1cd34b=_0x5ea796[_0x91cb('0x1e')];var _0x5cc1c3=_0x238f11?0x0:_0x347980[_0x91cb('0x1b')];var _0x7dcf60=_0x238f11?_0x5ea796['count']:_0x347980[_0x91cb('0x1b')]+_0x347980['limit'];var _0x55042a;if(_0x7dcf60>=_0x1cd34b){_0x7dcf60=_0x1cd34b;_0x55042a=0xc8;}else{_0x55042a=0xce;}_0xc3629e[_0x91cb('0x1f')](_0x55042a);return _0xc3629e[_0x91cb('0x20')]('Content-Range',_0x5cc1c3+'-'+_0x7dcf60+'/'+_0x1cd34b)['json'](_0x5ea796);}return null;};}function patchUpdates(_0x5b385a){return function(_0x438162){try{jsonpatch[_0x91cb('0x21')](_0x438162,_0x5b385a,!![]);}catch(_0x20aff5){return BPromise[_0x91cb('0x22')](_0x20aff5);}return _0x438162['save']();};}function saveUpdates(_0x45c4b3,_0x43881c){return function(_0x1fa837){if(_0x1fa837){return _0x1fa837['update'](_0x45c4b3)[_0x91cb('0x23')](function(_0x1a7a54){return _0x1a7a54;});}return null;};}function removeEntity(_0x2447e7,_0x422d14){return function(_0x3ca500){if(_0x3ca500){return _0x3ca500[_0x91cb('0x24')]()[_0x91cb('0x23')](function(){var _0x423c4f=_0x3ca500[_0x91cb('0x25')]({'plain':!![]});var _0x4c8438='DefaultReports';return db[_0x91cb('0x26')]['destroy']({'where':{'type':_0x4c8438,'resourceId':_0x423c4f['id']}})[_0x91cb('0x23')](function(){return _0x3ca500;});})[_0x91cb('0x23')](function(){_0x2447e7[_0x91cb('0x1f')](0xcc)['end']();});}};}function handleEntityNotFound(_0x9b26a6,_0x4f5a7b){return function(_0x4572f6){if(!_0x4572f6){_0x9b26a6[_0x91cb('0x19')](0x194);}return _0x4572f6;};}function handleError(_0x3b3ee6,_0x2fb473){_0x2fb473=_0x2fb473||0x1f4;return function(_0x468908){logger['error'](_0x468908[_0x91cb('0x27')]);if(_0x468908['name']){delete _0x468908[_0x91cb('0x28')];}_0x3b3ee6[_0x91cb('0x1f')](_0x2fb473)[_0x91cb('0x29')](_0x468908);};}exports['index']=function(_0x775c25,_0x146e1f){var _0x25bbf9={},_0x361e4c={},_0xf296bc={'count':0x0,'rows':[]};var _0x3dab18=_[_0x91cb('0x2a')](db[_0x91cb('0x2b')][_0x91cb('0x2c')],function(_0x5e6ed3){return{'name':_0x5e6ed3[_0x91cb('0x2d')],'type':_0x5e6ed3[_0x91cb('0x2e')][_0x91cb('0x2f')]};});_0x361e4c[_0x91cb('0x30')]=_[_0x91cb('0x2a')](_0x3dab18,'name');_0x361e4c[_0x91cb('0x31')]=_[_0x91cb('0x32')](_0x775c25[_0x91cb('0x31')]);_0x361e4c[_0x91cb('0x33')]=_[_0x91cb('0x34')](_0x361e4c['model'],_0x361e4c[_0x91cb('0x31')]);_0x25bbf9['attributes']=_['intersection'](_0x361e4c['model'],qs[_0x91cb('0x35')](_0x775c25['query'][_0x91cb('0x35')]));_0x25bbf9['attributes']=_0x25bbf9['attributes'][_0x91cb('0x36')]?_0x25bbf9[_0x91cb('0x37')]:_0x361e4c[_0x91cb('0x30')];if(!_0x775c25[_0x91cb('0x31')][_0x91cb('0x38')]('nolimit')){_0x25bbf9[_0x91cb('0x1c')]=qs[_0x91cb('0x1c')](_0x775c25[_0x91cb('0x31')][_0x91cb('0x1c')]);_0x25bbf9['offset']=qs['offset'](_0x775c25[_0x91cb('0x31')][_0x91cb('0x1b')]);}_0x25bbf9['order']=qs[_0x91cb('0x39')](_0x775c25[_0x91cb('0x31')]['sort']);_0x25bbf9[_0x91cb('0x3a')]=qs[_0x91cb('0x33')](_['pick'](_0x775c25[_0x91cb('0x31')],_0x361e4c['filters']),_0x3dab18);if(_0x775c25[_0x91cb('0x31')][_0x91cb('0x3b')]){_0x25bbf9[_0x91cb('0x3a')]=_[_0x91cb('0x3c')](_0x25bbf9[_0x91cb('0x3a')],{'$or':_[_0x91cb('0x2a')](_0x3dab18,function(_0x5d0e37){if(_0x5d0e37[_0x91cb('0x2e')]!==_0x91cb('0x3d')){var _0x4e5b4b={};_0x4e5b4b[_0x5d0e37[_0x91cb('0x28')]]={'$like':'%'+_0x775c25['query'][_0x91cb('0x3b')]+'%'};return _0x4e5b4b;}})});}_0x25bbf9=_[_0x91cb('0x3c')]({},_0x25bbf9,_0x775c25[_0x91cb('0x3e')]);var _0x174794={'where':_0x25bbf9['where']};return db[_0x91cb('0x2b')][_0x91cb('0x1e')](_0x174794)[_0x91cb('0x23')](function(_0x37e777){_0xf296bc[_0x91cb('0x1e')]=_0x37e777;if(_0x775c25[_0x91cb('0x31')][_0x91cb('0x3f')]){_0x25bbf9[_0x91cb('0x40')]=[{'all':!![]}];}return db[_0x91cb('0x2b')][_0x91cb('0x41')](_0x25bbf9);})['then'](function(_0x16993f){_0xf296bc['rows']=_0x16993f;return _0xf296bc;})[_0x91cb('0x23')](respondWithFilteredResult(_0x146e1f,_0x25bbf9))['catch'](handleError(_0x146e1f,null));};exports[_0x91cb('0x42')]=function(_0x52e82c,_0x138f48){var _0x477131={'raw':!![],'where':{'id':_0x52e82c[_0x91cb('0x43')]['id']}},_0xba99ce={};_0xba99ce['model']=_[_0x91cb('0x32')](db[_0x91cb('0x2b')]['rawAttributes']);_0xba99ce[_0x91cb('0x31')]=_[_0x91cb('0x32')](_0x52e82c[_0x91cb('0x31')]);_0xba99ce[_0x91cb('0x33')]=_[_0x91cb('0x34')](_0xba99ce[_0x91cb('0x30')],_0xba99ce[_0x91cb('0x31')]);_0x477131[_0x91cb('0x37')]=_[_0x91cb('0x34')](_0xba99ce['model'],qs[_0x91cb('0x35')](_0x52e82c[_0x91cb('0x31')][_0x91cb('0x35')]));_0x477131[_0x91cb('0x37')]=_0x477131[_0x91cb('0x37')][_0x91cb('0x36')]?_0x477131[_0x91cb('0x37')]:_0xba99ce[_0x91cb('0x30')];if(_0x52e82c['query'][_0x91cb('0x3f')]){_0x477131[_0x91cb('0x40')]=[{'all':!![]}];}_0x477131=_[_0x91cb('0x3c')]({},_0x477131,_0x52e82c[_0x91cb('0x3e')]);return db['AnalyticDefaultReport'][_0x91cb('0x44')](_0x477131)[_0x91cb('0x23')](handleEntityNotFound(_0x138f48,null))['then'](respondWithResult(_0x138f48,null))[_0x91cb('0x45')](handleError(_0x138f48,null));};exports['create']=function(_0x2c419b,_0x4c0acd){return db['AnalyticDefaultReport']['create'](_0x2c419b[_0x91cb('0x46')],{})[_0x91cb('0x23')](function(_0x3d62c4){var _0x2f8384=_0x2c419b[_0x91cb('0x47')]['get']({'plain':!![]});if(!_0x2f8384)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x2f8384[_0x91cb('0x48')]===_0x91cb('0x47')){var _0x140994=_0x3d62c4[_0x91cb('0x25')]({'plain':!![]});var _0x57adff='Reports';return db['UserProfileSection'][_0x91cb('0x44')]({'where':{'name':_0x57adff,'userProfileId':_0x2f8384['userProfileId']},'raw':!![]})[_0x91cb('0x23')](function(_0x4aa670){if(_0x4aa670&&_0x4aa670[_0x91cb('0x49')]===0x0){return db[_0x91cb('0x26')][_0x91cb('0x4a')]({'name':_0x140994[_0x91cb('0x28')],'resourceId':_0x140994['id'],'type':_0x91cb('0x4b'),'sectionId':_0x4aa670['id']},{})[_0x91cb('0x23')](function(){return _0x3d62c4;});}else{return _0x3d62c4;}})[_0x91cb('0x45')](function(_0x30fd4e){logger[_0x91cb('0x4c')](_0x91cb('0x4d'),_0x30fd4e);throw _0x30fd4e;});}return _0x3d62c4;})[_0x91cb('0x23')](respondWithResult(_0x4c0acd,0xc9))['catch'](handleError(_0x4c0acd,null));};exports[_0x91cb('0x4e')]=function(_0x1fa45a,_0x4d7a34){if(_0x1fa45a[_0x91cb('0x46')]['id']){delete _0x1fa45a[_0x91cb('0x46')]['id'];}return db['AnalyticDefaultReport'][_0x91cb('0x44')]({'where':{'id':_0x1fa45a[_0x91cb('0x43')]['id']}})[_0x91cb('0x23')](handleEntityNotFound(_0x4d7a34,null))[_0x91cb('0x23')](saveUpdates(_0x1fa45a[_0x91cb('0x46')],null))[_0x91cb('0x23')](respondWithResult(_0x4d7a34,null))[_0x91cb('0x45')](handleError(_0x4d7a34,null));};exports[_0x91cb('0x24')]=function(_0x3320bd,_0x93ef52){return db[_0x91cb('0x2b')]['find']({'where':{'id':_0x3320bd[_0x91cb('0x43')]['id']}})['then'](handleEntityNotFound(_0x93ef52,null))[_0x91cb('0x23')](removeEntity(_0x93ef52,null))['catch'](handleError(_0x93ef52,null));};exports[_0x91cb('0x4f')]=function(_0x1b2fec,_0x1986d7){var _0x47a6cd=0xa;var _0xe49d42=[_0x91cb('0x50'),'left_join',_0x91cb('0x51'),_0x91cb('0x52')];var _0x365afd={'SUM':_0x91cb('0x53'),'COUNT':'COUNT(%s)','COUNT DISTINCT':_0x91cb('0x54'),'MAX':_0x91cb('0x55'),'MIN':_0x91cb('0x56'),'AVG':_0x91cb('0x57'),'GROUP_CONCAT':'GROUP_CONCAT(%s)','GROUP_CONCAT ASC':_0x91cb('0x58'),'GROUP_CONCAT DESC':_0x91cb('0x59')};var _0x5c2c01={'SEC_TO_TIME':'SEC_TO_TIME(%s)','DATE':_0x91cb('0x5a'),'HOUR':'HOUR(%s)','ROUND':_0x91cb('0x5b'),'UNIX_TIMESTAMP':_0x91cb('0x5c')};var _0x5ae0d2=function(_0x4f19c8){return!_[_0x91cb('0x5d')](['IS\x20NULL',_0x91cb('0x5e'),_0x91cb('0x5f'),_0x91cb('0x60')],_0x4f19c8);};var _0x551836=function(_0x22fea8){if(!_0x22fea8||!_0x22fea8['rules'][_0x91cb('0x36')]){return'';}for(var _0xe08233='(',_0xd7be15=0x0;_0xd7be15<_0x22fea8[_0x91cb('0x61')]['length'];_0xd7be15+=0x1){_0xd7be15>0x0&&(_0xe08233+='\x20'+_0x22fea8[_0x91cb('0x62')]+'\x20');_0xe08233+=_0x22fea8[_0x91cb('0x61')][_0xd7be15][_0x91cb('0x63')]?_0x551836(_0x22fea8[_0x91cb('0x61')][_0xd7be15][_0x91cb('0x63')]):_0x22fea8[_0x91cb('0x61')][_0xd7be15][_0x91cb('0x64')]+'\x20'+_0x22fea8[_0x91cb('0x61')][_0xd7be15][_0x91cb('0x65')]+(_0x5ae0d2(_0x22fea8[_0x91cb('0x61')][_0xd7be15][_0x91cb('0x65')])?'\x20'+_0x22fea8[_0x91cb('0x61')][_0xd7be15]['value']:'');}return _0xe08233+')';};var _0x2cf4d0={'where':{'id':_0x1b2fec[_0x91cb('0x43')]['id']}},_0x2e301a,_0x474682,_0x51ab8a,_0x21c890,_0xca33a2;_0x2cf4d0=_['merge']({},_0x2cf4d0,_0x1b2fec[_0x91cb('0x3e')]);return db['AnalyticDefaultReport'][_0x91cb('0x44')](_0x2cf4d0)[_0x91cb('0x23')](function(_0x80fcc6){if(_0x80fcc6){_0x2e301a=_0x80fcc6;return _0x80fcc6[_0x91cb('0x66')]();}return null;})['then'](function(_0x1c0b66){if(_0x1c0b66){if(!_0x1c0b66[_0x91cb('0x36')]){throw new db[(_0x91cb('0x67'))][(_0x91cb('0x68'))](_0x91cb('0x69'),0x193);}_0x474682=_0x1c0b66;return db[_0x91cb('0x6a')]['findAll']({'raw':!![]});}return null;})[_0x91cb('0x23')](function(_0x28bfe5){if(_0x28bfe5){_0x51ab8a=_[_0x91cb('0x6b')](_0x28bfe5,'id');var _0x1f0ba2;var _0x891569=squel[_0x91cb('0x6c')]();_0x891569[_0x91cb('0x6d')](_0x2e301a[_0x91cb('0x6e')]);for(var _0x43629b=0x0;_0x43629b<_0x474682[_0x91cb('0x36')];_0x43629b+=0x1){_0x1f0ba2=_0x474682[_0x43629b][_0x91cb('0x6f')]?_0x51ab8a[_0x474682[_0x43629b][_0x91cb('0x6f')]][_0x91cb('0x70')]:_0x474682[_0x43629b][_0x91cb('0x64')];_0x1f0ba2=_0x474682[_0x43629b][_0x91cb('0x71')]?_[_0x91cb('0x72')](_0x365afd[_0x474682[_0x43629b][_0x91cb('0x71')]],'%s',_0x1f0ba2):_0x1f0ba2;_0x1f0ba2=_0x474682[_0x43629b]['format']?_[_0x91cb('0x72')](_0x5c2c01[_0x474682[_0x43629b][_0x91cb('0x73')]],'%s',_0x1f0ba2):_0x1f0ba2;if(_0x474682[_0x43629b]['groupBy']){_0x891569[_0x91cb('0x63')](_0x1f0ba2);}_0x474682[_0x43629b][_0x91cb('0x74')]&&_0x891569[_0x91cb('0x75')](_0x1f0ba2,_0x474682[_0x43629b]['orderBy']===_0x91cb('0x76')?![]:!![]);_0x891569[_0x91cb('0x64')](_0x1f0ba2,_0x474682[_0x43629b]['alias']||_0x1f0ba2);}if(_0x2e301a['joins']){_0x2e301a[_0x91cb('0x77')]=JSON['parse'](_0x2e301a[_0x91cb('0x77')]);for(var _0x376f56=0x0;_0x376f56<_0x2e301a['joins'][_0x91cb('0x36')];_0x376f56+=0x1){if(_0x2e301a['joins'][_0x376f56][_0x91cb('0x2e')]&&_[_0x91cb('0x5d')](_0xe49d42,_0x2e301a['joins'][_0x376f56]['type'])&&_0x2e301a[_0x91cb('0x77')][_0x376f56][_0x91cb('0x78')]&&_0x2e301a[_0x91cb('0x77')][_0x376f56]['foreignTable']&&_0x2e301a[_0x91cb('0x77')][_0x376f56][_0x91cb('0x79')]){_0x891569[_0x2e301a[_0x91cb('0x77')][_0x376f56][_0x91cb('0x2e')]](_0x2e301a['joins'][_0x376f56][_0x91cb('0x7a')],null,util['format'](_0x91cb('0x7b'),_0x2e301a[_0x91cb('0x6e')],_0x2e301a[_0x91cb('0x77')][_0x376f56][_0x91cb('0x78')],_0x2e301a['joins'][_0x376f56]['foreignTable'],_0x2e301a[_0x91cb('0x77')][_0x376f56]['foreignKey']));}}}if(_0x2e301a[_0x91cb('0x7c')]){_0x2e301a[_0x91cb('0x7c')]=JSON[_0x91cb('0x7d')](_0x2e301a[_0x91cb('0x7c')]);_0x891569[_0x91cb('0x3a')](_0x551836(_0x2e301a[_0x91cb('0x7c')][_0x91cb('0x63')]));}_0xca33a2=_0x891569['clone']();_0x891569[_0x91cb('0x1c')](_0x47a6cd);_0x891569[_0x91cb('0x1b')](0x0);logger['debug'](_0x91cb('0x7e'),_0x891569['toString']());return dbH[_0x91cb('0x7f')][_0x91cb('0x31')](_0x891569[_0x91cb('0x80')](),{'type':dbH[_0x91cb('0x7f')][_0x91cb('0x81')][_0x91cb('0x82')]});}})[_0x91cb('0x23')](respondWithResult(_0x1986d7,null))[_0x91cb('0x45')](handleError(_0x1986d7,null));};function runReport(_0x23380a,_0x14cad8,_0x20a64f){var _0x11411d=_0x14cad8[_0x91cb('0x28')];var _0x14882d=0xa;var _0x22ba54=[_0x91cb('0x50'),'left_join',_0x91cb('0x51'),'cross_join'];var _0x1235c0={'SUM':_0x91cb('0x53'),'COUNT':_0x91cb('0x83'),'COUNT DISTINCT':_0x91cb('0x54'),'MAX':_0x91cb('0x55'),'MIN':_0x91cb('0x56'),'AVG':_0x91cb('0x57'),'GROUP_CONCAT':_0x91cb('0x84'),'GROUP_CONCAT ASC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT DESC':_0x91cb('0x59')};var _0xdee7f={'SEC_TO_TIME':'SEC_TO_TIME(%s)','DATE':'DATE(%s)','HOUR':_0x91cb('0x85'),'ROUND':'ROUND(%s)','UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x95f2de=function(_0x4d777a){return!_[_0x91cb('0x5d')](['IS\x20NULL',_0x91cb('0x5e'),_0x91cb('0x5f'),_0x91cb('0x60')],_0x4d777a);};var _0x443c01=function(_0x4e899c){if(!_0x4e899c||!_0x4e899c[_0x91cb('0x61')][_0x91cb('0x36')]){return'';}for(var _0x42d07b='(',_0x427afd=0x0;_0x427afd<_0x4e899c[_0x91cb('0x61')][_0x91cb('0x36')];_0x427afd+=0x1){_0x427afd>0x0&&(_0x42d07b+='\x20'+_0x4e899c[_0x91cb('0x62')]+'\x20');_0x42d07b+=_0x4e899c[_0x91cb('0x61')][_0x427afd][_0x91cb('0x63')]?_0x443c01(_0x4e899c[_0x91cb('0x61')][_0x427afd][_0x91cb('0x63')]):_0x4e899c[_0x91cb('0x61')][_0x427afd][_0x91cb('0x64')]+'\x20'+_0x4e899c[_0x91cb('0x61')][_0x427afd][_0x91cb('0x65')]+(_0x95f2de(_0x4e899c[_0x91cb('0x61')][_0x427afd][_0x91cb('0x65')])?'\x20'+_0x4e899c[_0x91cb('0x61')][_0x427afd][_0x91cb('0x86')]:'');}return _0x42d07b+')';};var _0x39b5bd={'where':{'id':_0x23380a['id']}},_0x315518,_0x3d944d,_0x43b96c,_0xe4d946,_0x32d426;_0x39b5bd=_['merge']({},_0x39b5bd,_0x20a64f);return db[_0x91cb('0x2b')][_0x91cb('0x44')](_0x39b5bd)[_0x91cb('0x23')](function(_0x1a654b){if(_0x1a654b){_0x315518=_0x1a654b;return _0x1a654b[_0x91cb('0x66')]();}return null;})[_0x91cb('0x23')](function(_0x404457){if(_0x404457){if(!_0x404457[_0x91cb('0x36')]){throw new db[(_0x91cb('0x67'))][(_0x91cb('0x68'))](_0x91cb('0x69'),0x193);}_0x3d944d=_0x404457;return db['AnalyticMetric'][_0x91cb('0x41')]({'raw':!![]});}return null;})['then'](function(_0x5689ea){if(_0x5689ea){_0x43b96c=_[_0x91cb('0x6b')](_0x5689ea,'id');var _0x265ffb;var _0x4f66f=squel[_0x91cb('0x6c')]();_0x4f66f[_0x91cb('0x6d')](_0x315518[_0x91cb('0x6e')]);for(var _0x210b46=0x0;_0x210b46<_0x3d944d[_0x91cb('0x36')];_0x210b46+=0x1){_0x265ffb=_0x3d944d[_0x210b46][_0x91cb('0x6f')]?_0x43b96c[_0x3d944d[_0x210b46][_0x91cb('0x6f')]]['metric']:_0x3d944d[_0x210b46][_0x91cb('0x64')];_0x265ffb=_0x3d944d[_0x210b46][_0x91cb('0x71')]?_['replace'](_0x1235c0[_0x3d944d[_0x210b46][_0x91cb('0x71')]],'%s',_0x265ffb):_0x265ffb;_0x265ffb=_0x3d944d[_0x210b46][_0x91cb('0x73')]?_['replace'](_0xdee7f[_0x3d944d[_0x210b46][_0x91cb('0x73')]],'%s',_0x265ffb):_0x265ffb;if(_0x3d944d[_0x210b46][_0x91cb('0x87')]){_0x4f66f[_0x91cb('0x63')](_0x265ffb);}_0x3d944d[_0x210b46][_0x91cb('0x74')]&&_0x4f66f[_0x91cb('0x75')](_0x265ffb,_0x3d944d[_0x210b46][_0x91cb('0x74')]===_0x91cb('0x76')?![]:!![]);_0x4f66f[_0x91cb('0x64')](_0x265ffb,_0x3d944d[_0x210b46][_0x91cb('0x88')]||_0x265ffb);}if(_0x315518[_0x91cb('0x77')]){_0x315518[_0x91cb('0x77')]=JSON[_0x91cb('0x7d')](_0x315518['joins']);for(var _0x5c0725=0x0;_0x5c0725<_0x315518[_0x91cb('0x77')][_0x91cb('0x36')];_0x5c0725+=0x1){if(_0x315518[_0x91cb('0x77')][_0x5c0725][_0x91cb('0x2e')]&&_[_0x91cb('0x5d')](_0x22ba54,_0x315518[_0x91cb('0x77')][_0x5c0725][_0x91cb('0x2e')])&&_0x315518['joins'][_0x5c0725][_0x91cb('0x78')]&&_0x315518['joins'][_0x5c0725][_0x91cb('0x7a')]&&_0x315518[_0x91cb('0x77')][_0x5c0725][_0x91cb('0x79')]){_0x4f66f[_0x315518[_0x91cb('0x77')][_0x5c0725][_0x91cb('0x2e')]](_0x315518['joins'][_0x5c0725][_0x91cb('0x7a')],null,util[_0x91cb('0x73')](_0x91cb('0x7b'),_0x315518[_0x91cb('0x6e')],_0x315518[_0x91cb('0x77')][_0x5c0725]['parentKey'],_0x315518[_0x91cb('0x77')][_0x5c0725][_0x91cb('0x7a')],_0x315518[_0x91cb('0x77')][_0x5c0725][_0x91cb('0x79')]));}}}if(_0x315518['conditions']){_0x315518['conditions']=JSON['parse'](_0x315518[_0x91cb('0x7c')]);_0x4f66f[_0x91cb('0x3a')](_0x443c01(_0x315518[_0x91cb('0x7c')][_0x91cb('0x63')]));}_0x32d426=_0x4f66f['clone']();_0x4f66f[_0x91cb('0x1c')](_0x14882d);_0x4f66f[_0x91cb('0x1b')](0x0);return;}})[_0x91cb('0x23')](function(){if(_0x14cad8[_0x91cb('0x89')]==='web'){return null;}var _0x4bf7c7=_[_0x91cb('0x3c')](_0x14cad8,{'name':_0x14cad8[_0x91cb('0x8a')]||_0x14cad8[_0x91cb('0x28')]||_0x315518[_0x91cb('0x28')],'basename':_0x11411d,'savename':util[_0x91cb('0x73')](_0x91cb('0x8b'),_0x14cad8[_0x91cb('0x28')]||_0x315518[_0x91cb('0x28')],require(_0x91cb('0x8c'))[_0x91cb('0x8d')](0x4),_0x14cad8[_0x91cb('0x89')]||_0x91cb('0x8e')),'reportId':_0x315518['id'],'reportType':_0x91cb('0x8f')});return db['AnalyticExtractedReport']['create'](_0x4bf7c7,{'raw':!![]});})[_0x91cb('0x23')](function(_0x48a910){if(_0x315518[_0x91cb('0x6e')]===_0x91cb('0x90')){_0x32d426[_0x91cb('0x3a')](_0x315518[_0x91cb('0x6e')]+_0x91cb('0x91'),_0x14cad8[_0x91cb('0x92')],_0x14cad8[_0x91cb('0x93')]);}else{_0x32d426[_0x91cb('0x3a')](_0x315518['table']+_0x91cb('0x94'),_0x14cad8[_0x91cb('0x92')],_0x14cad8[_0x91cb('0x93')]);}if(_0x48a910){logger[_0x91cb('0x95')](_0x91cb('0x96'),_0x32d426['toString']());require(_0x91cb('0x97'))[_0x91cb('0x98')](path[_0x91cb('0x50')](__dirname,_0x91cb('0x99'),_0x48a910[_0x91cb('0x89')]),[_0x48a910['id'],_0x32d426['toString'](),path[_0x91cb('0x50')](__dirname,_0x91cb('0x9a'),_0x48a910[_0x91cb('0x9b')]),_0x11411d]);return _0x48a910;}else{var _0x22b6d3=squel[_0x91cb('0x6c')]();_0x22b6d3[_0x91cb('0x6d')]('('+_0x32d426[_0x91cb('0x80')]()+')',_0x91cb('0x9c'));_0x22b6d3[_0x91cb('0x64')](_0x91cb('0x9d'),_0x91cb('0x1e'));_0x32d426[_0x91cb('0x1c')](_0x14cad8[_0x91cb('0x1c')]||_0x14882d);_0x32d426[_0x91cb('0x1b')](_0x14cad8[_0x91cb('0x1b')]||0x0);return dbH[_0x91cb('0x7f')][_0x91cb('0x31')](_0x22b6d3[_0x91cb('0x80')](),{'type':dbH[_0x91cb('0x7f')][_0x91cb('0x81')][_0x91cb('0x82')]})[_0x91cb('0x23')](function(_0x275c80){if(!_0x275c80[_0x91cb('0x36')]){_0xe4d946=0x0;}else{_0xe4d946=_0x275c80[0x0][_0x91cb('0x1e')]||0x0;}return dbH[_0x91cb('0x7f')]['query'](_0x32d426[_0x91cb('0x80')](),{'type':dbH[_0x91cb('0x7f')][_0x91cb('0x81')][_0x91cb('0x82')]});})[_0x91cb('0x23')](function(_0x5ca377){return{'rows':_0x5ca377||[],'count':_0xe4d946};});}});}exports['run']=function(_0x552490,_0x5174ac){return runReport(_0x552490['params'],_0x552490[_0x91cb('0x31')],_0x552490[_0x91cb('0x3e')])[_0x91cb('0x23')](respondWithResult(_0x5174ac,null))[_0x91cb('0x45')](handleError(_0x5174ac,null));};exports[_0x91cb('0x9e')]=runReport;exports[_0x91cb('0x31')]=function(_0x3462c5,_0x146346){var _0xe3d97f=0xa;var _0x3b93c3=['join',_0x91cb('0x9f'),_0x91cb('0x51'),'cross_join'];var _0x154e6a={'SUM':_0x91cb('0x53'),'COUNT':_0x91cb('0x83'),'COUNT DISTINCT':_0x91cb('0x54'),'MAX':_0x91cb('0x55'),'MIN':_0x91cb('0x56'),'AVG':_0x91cb('0x57'),'GROUP_CONCAT':'GROUP_CONCAT(%s)','GROUP_CONCAT ASC':_0x91cb('0x58'),'GROUP_CONCAT DESC':_0x91cb('0x59')};var _0x2a05af={'SEC_TO_TIME':_0x91cb('0xa0'),'DATE':_0x91cb('0x5a'),'HOUR':_0x91cb('0x85'),'ROUND':_0x91cb('0x5b'),'UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x34c1f2=function(_0x4d82b4){return!_[_0x91cb('0x5d')]([_0x91cb('0xa1'),_0x91cb('0x5e'),_0x91cb('0x5f'),_0x91cb('0x60')],_0x4d82b4);};var _0x432099=function(_0x344c95){if(!_0x344c95||!_0x344c95[_0x91cb('0x61')][_0x91cb('0x36')]){return'';}for(var _0x570cf0='(',_0xb3a6c4=0x0;_0xb3a6c4<_0x344c95[_0x91cb('0x61')][_0x91cb('0x36')];_0xb3a6c4+=0x1){_0xb3a6c4>0x0&&(_0x570cf0+='\x20'+_0x344c95[_0x91cb('0x62')]+'\x20');_0x570cf0+=_0x344c95[_0x91cb('0x61')][_0xb3a6c4][_0x91cb('0x63')]?_0x432099(_0x344c95[_0x91cb('0x61')][_0xb3a6c4][_0x91cb('0x63')]):_0x344c95[_0x91cb('0x61')][_0xb3a6c4][_0x91cb('0x64')]+'\x20'+_0x344c95[_0x91cb('0x61')][_0xb3a6c4][_0x91cb('0x65')]+(_0x34c1f2(_0x344c95[_0x91cb('0x61')][_0xb3a6c4]['condition'])?'\x20'+_0x344c95[_0x91cb('0x61')][_0xb3a6c4]['value']:'');}return _0x570cf0+')';};var _0x39ba62={'where':{'id':_0x3462c5[_0x91cb('0x43')]['id']}},_0x2ab5a3,_0x10a9f6,_0x43ad75,_0x1382ba,_0x12da14;_0x39ba62=_[_0x91cb('0x3c')]({},_0x39ba62,_0x3462c5['options']);return db[_0x91cb('0x2b')]['find'](_0x39ba62)[_0x91cb('0x23')](function(_0x2f7387){if(_0x2f7387){_0x2ab5a3=_0x2f7387;return _0x2f7387[_0x91cb('0x66')]();}return null;})['then'](function(_0x1f2ef8){if(_0x1f2ef8){if(!_0x1f2ef8[_0x91cb('0x36')]){throw new db[(_0x91cb('0x67'))]['ValidationErrorItem']('Please\x20insert\x20at\x20least\x20one\x20field',0x193);}_0x10a9f6=_0x1f2ef8;return db['AnalyticMetric'][_0x91cb('0x41')]({'raw':!![]});}return null;})[_0x91cb('0x23')](function(_0x3ac830){if(_0x3ac830){_0x43ad75=_['keyBy'](_0x3ac830,'id');var _0x469e62;var _0x1e9441=squel[_0x91cb('0x6c')]();_0x1e9441[_0x91cb('0x6d')](_0x2ab5a3[_0x91cb('0x6e')]);for(var _0x416390=0x0;_0x416390<_0x10a9f6[_0x91cb('0x36')];_0x416390+=0x1){_0x469e62=_0x10a9f6[_0x416390][_0x91cb('0x6f')]?_0x43ad75[_0x10a9f6[_0x416390]['MetricId']][_0x91cb('0x70')]:_0x10a9f6[_0x416390][_0x91cb('0x64')];_0x469e62=_0x10a9f6[_0x416390][_0x91cb('0x71')]?_[_0x91cb('0x72')](_0x154e6a[_0x10a9f6[_0x416390]['function']],'%s',_0x469e62):_0x469e62;_0x469e62=_0x10a9f6[_0x416390][_0x91cb('0x73')]?_['replace'](_0x2a05af[_0x10a9f6[_0x416390][_0x91cb('0x73')]],'%s',_0x469e62):_0x469e62;if(_0x10a9f6[_0x416390][_0x91cb('0x87')]){_0x1e9441[_0x91cb('0x63')](_0x469e62);}_0x10a9f6[_0x416390][_0x91cb('0x74')]&&_0x1e9441[_0x91cb('0x75')](_0x469e62,_0x10a9f6[_0x416390]['orderBy']===_0x91cb('0x76')?![]:!![]);_0x1e9441['field'](_0x469e62,_0x10a9f6[_0x416390]['alias']||_0x469e62);}if(_0x2ab5a3[_0x91cb('0x77')]){_0x2ab5a3[_0x91cb('0x77')]=JSON[_0x91cb('0x7d')](_0x2ab5a3[_0x91cb('0x77')]);for(var _0x286ed7=0x0;_0x286ed7<_0x2ab5a3[_0x91cb('0x77')][_0x91cb('0x36')];_0x286ed7+=0x1){if(_0x2ab5a3[_0x91cb('0x77')][_0x286ed7]['type']&&_[_0x91cb('0x5d')](_0x3b93c3,_0x2ab5a3[_0x91cb('0x77')][_0x286ed7][_0x91cb('0x2e')])&&_0x2ab5a3['joins'][_0x286ed7]['parentKey']&&_0x2ab5a3['joins'][_0x286ed7][_0x91cb('0x7a')]&&_0x2ab5a3[_0x91cb('0x77')][_0x286ed7][_0x91cb('0x79')]){_0x1e9441[_0x2ab5a3['joins'][_0x286ed7][_0x91cb('0x2e')]](_0x2ab5a3[_0x91cb('0x77')][_0x286ed7][_0x91cb('0x7a')],null,util[_0x91cb('0x73')]('%s.%s\x20=\x20%s.%s',_0x2ab5a3[_0x91cb('0x6e')],_0x2ab5a3[_0x91cb('0x77')][_0x286ed7][_0x91cb('0x78')],_0x2ab5a3[_0x91cb('0x77')][_0x286ed7][_0x91cb('0x7a')],_0x2ab5a3[_0x91cb('0x77')][_0x286ed7]['foreignKey']));}}}if(_0x2ab5a3[_0x91cb('0x7c')]){_0x2ab5a3[_0x91cb('0x7c')]=JSON[_0x91cb('0x7d')](_0x2ab5a3[_0x91cb('0x7c')]);_0x1e9441[_0x91cb('0x3a')](_0x432099(_0x2ab5a3['conditions'][_0x91cb('0x63')]));}_0x12da14=_0x1e9441[_0x91cb('0xa2')]();_0x1e9441[_0x91cb('0x1c')](_0xe3d97f);_0x1e9441[_0x91cb('0x1b')](0x0);logger[_0x91cb('0xa3')](_0x91cb('0x7e'),_0x1e9441['toString']());return dbH[_0x91cb('0x7f')][_0x91cb('0x31')](_0x1e9441[_0x91cb('0x80')](),{'type':dbH['sequelize'][_0x91cb('0x81')]['SELECT']});}})[_0x91cb('0x23')](function(){return{'sql':_0x12da14[_0x91cb('0x80')]()};})[_0x91cb('0x23')](respondWithResult(_0x146346,null))[_0x91cb('0x45')](handleError(_0x146346,null));};
\ No newline at end of file
+var _0xf494=['name','send','index','map','AnalyticDefaultReport','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','include','findAll','catch','show','includeAll','find','create','body','user','Reports','UserProfileSection','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','join','left_join','cross_join','COUNT(DISTINCT\x20%s)','MAX(%s)','MIN(%s)','AVG(%s)','GROUP_CONCAT(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)','SEC_TO_TIME(%s)','DATE(%s)','HOUR(%s)','UNIX_TIMESTAMP(%s)','includes','IS\x20NOT\x20NULL','IS\x20EMPTY','rules','group','field','value','Sequelize','ValidationErrorItem','Please\x20insert\x20at\x20least\x20one\x20field','AnalyticMetric','keyBy','select','from','table','MetricId','metric','function','replace','format','orderBy','DESC','alias','joins','parse','foreignTable','%s.%s\x20=\x20%s.%s','parentKey','foreignKey','conditions','debug','Limited\x20Query:','sequelize','toString','QueryTypes','right_join','SUM(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','ROUND(%s)','IS\x20NULL','operator','condition','getFields','groupBy','clone','output','fullPath','%s-%s.%s','generate','csv','default','AnalyticExtractedReport','cdr','.calldate\x20BETWEEN\x20?\x20AND\x20?','startDate','endDate','info','child_process','fork','../../components/export/','../../files/reports','savename','countTable','COUNT(*)','SELECT','run','runReport','IS\x20NOT\x20EMPTY','eml-format','rimraf','zip-dir','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','../../config/license/hardware','../../config/logger','../../config/utils','../../mysqldb','sendStatus','status','end','json','offset','limit','undefined','count','set','Content-Range','reject','save','update','then','destroy','get','DefaultReports','error','stack'];(function(_0x3a02b4,_0x21b00e){var _0x26b6d3=function(_0x78617c){while(--_0x78617c){_0x3a02b4['push'](_0x3a02b4['shift']());}};_0x26b6d3(++_0x21b00e);}(_0xf494,0x1c6));var _0x4f49=function(_0x2b5c20,_0x817657){_0x2b5c20=_0x2b5c20-0x0;var _0xbc7ba2=_0xf494[_0x2b5c20];return _0xbc7ba2;};'use strict';var emlformat=require(_0x4f49('0x0'));var rimraf=require(_0x4f49('0x1'));var zipdir=require(_0x4f49('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x4f49('0x3'));var moment=require(_0x4f49('0x4'));var BPromise=require(_0x4f49('0x5'));var Mustache=require(_0x4f49('0x6'));var util=require(_0x4f49('0x7'));var path=require(_0x4f49('0x8'));var sox=require(_0x4f49('0x9'));var csv=require(_0x4f49('0xa'));var ejs=require(_0x4f49('0xb'));var fs=require('fs');var fs_extra=require(_0x4f49('0xc'));var _=require(_0x4f49('0xd'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x4f49('0xe'));var deskjs=require(_0x4f49('0xf'));var toCsv=require(_0x4f49('0xa'));var querystring=require(_0x4f49('0x10'));var Papa=require(_0x4f49('0x11'));var Redis=require(_0x4f49('0x12'));var authService=require(_0x4f49('0x13'));var qs=require(_0x4f49('0x14'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x4f49('0x15'));var logger=require(_0x4f49('0x16'))('api');var utils=require(_0x4f49('0x17'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x4f49('0x18'))['db'];var dbH=require(_0x4f49('0x18'))['dbH'];function respondWithStatusCode(_0x1e1c37,_0x111a8b){_0x111a8b=_0x111a8b||0xcc;return function(_0x1b9145){if(_0x1b9145){return _0x1e1c37[_0x4f49('0x19')](_0x111a8b);}return _0x1e1c37[_0x4f49('0x1a')](_0x111a8b)[_0x4f49('0x1b')]();};}function respondWithResult(_0xfdb477,_0x5c373e){_0x5c373e=_0x5c373e||0xc8;return function(_0x515ace){if(_0x515ace){return _0xfdb477[_0x4f49('0x1a')](_0x5c373e)[_0x4f49('0x1c')](_0x515ace);}};}function respondWithFilteredResult(_0x5878f4,_0x5bdfaf){return function(_0x2f0a0d){if(_0x2f0a0d){var _0x2ecaaa=typeof _0x5bdfaf[_0x4f49('0x1d')]==='undefined'&&typeof _0x5bdfaf[_0x4f49('0x1e')]===_0x4f49('0x1f');var _0x4e85df=_0x2f0a0d['count'];var _0x5bb23b=_0x2ecaaa?0x0:_0x5bdfaf['offset'];var _0x47f1e8=_0x2ecaaa?_0x2f0a0d[_0x4f49('0x20')]:_0x5bdfaf[_0x4f49('0x1d')]+_0x5bdfaf[_0x4f49('0x1e')];var _0x407042;if(_0x47f1e8>=_0x4e85df){_0x47f1e8=_0x4e85df;_0x407042=0xc8;}else{_0x407042=0xce;}_0x5878f4['status'](_0x407042);return _0x5878f4[_0x4f49('0x21')](_0x4f49('0x22'),_0x5bb23b+'-'+_0x47f1e8+'/'+_0x4e85df)[_0x4f49('0x1c')](_0x2f0a0d);}return null;};}function patchUpdates(_0xaab5e7){return function(_0xea82f8){try{jsonpatch['apply'](_0xea82f8,_0xaab5e7,!![]);}catch(_0x3e7e28){return BPromise[_0x4f49('0x23')](_0x3e7e28);}return _0xea82f8[_0x4f49('0x24')]();};}function saveUpdates(_0x53b57d,_0x40755e){return function(_0x1d70a7){if(_0x1d70a7){return _0x1d70a7[_0x4f49('0x25')](_0x53b57d)[_0x4f49('0x26')](function(_0x9d30aa){return _0x9d30aa;});}return null;};}function removeEntity(_0x36187b,_0x559d98){return function(_0x4e9041){if(_0x4e9041){return _0x4e9041[_0x4f49('0x27')]()[_0x4f49('0x26')](function(){var _0x4fedbb=_0x4e9041[_0x4f49('0x28')]({'plain':!![]});var _0x2c1519=_0x4f49('0x29');return db['UserProfileResource'][_0x4f49('0x27')]({'where':{'type':_0x2c1519,'resourceId':_0x4fedbb['id']}})[_0x4f49('0x26')](function(){return _0x4e9041;});})[_0x4f49('0x26')](function(){_0x36187b[_0x4f49('0x1a')](0xcc)[_0x4f49('0x1b')]();});}};}function handleEntityNotFound(_0x122404,_0x4915af){return function(_0x50c571){if(!_0x50c571){_0x122404[_0x4f49('0x19')](0x194);}return _0x50c571;};}function handleError(_0x2c00ee,_0x605c91){_0x605c91=_0x605c91||0x1f4;return function(_0x560050){logger[_0x4f49('0x2a')](_0x560050[_0x4f49('0x2b')]);if(_0x560050[_0x4f49('0x2c')]){delete _0x560050['name'];}_0x2c00ee['status'](_0x605c91)[_0x4f49('0x2d')](_0x560050);};}exports[_0x4f49('0x2e')]=function(_0x7a6ea0,_0x5e7076){var _0x1eaac6={},_0x35aa33={},_0x173657={'count':0x0,'rows':[]};var _0x2ceda4=_[_0x4f49('0x2f')](db[_0x4f49('0x30')][_0x4f49('0x31')],function(_0x45ae19){return{'name':_0x45ae19[_0x4f49('0x32')],'type':_0x45ae19[_0x4f49('0x33')][_0x4f49('0x34')]};});_0x35aa33[_0x4f49('0x35')]=_[_0x4f49('0x2f')](_0x2ceda4,_0x4f49('0x2c'));_0x35aa33[_0x4f49('0x36')]=_[_0x4f49('0x37')](_0x7a6ea0[_0x4f49('0x36')]);_0x35aa33[_0x4f49('0x38')]=_[_0x4f49('0x39')](_0x35aa33['model'],_0x35aa33[_0x4f49('0x36')]);_0x1eaac6[_0x4f49('0x3a')]=_[_0x4f49('0x39')](_0x35aa33[_0x4f49('0x35')],qs[_0x4f49('0x3b')](_0x7a6ea0[_0x4f49('0x36')][_0x4f49('0x3b')]));_0x1eaac6[_0x4f49('0x3a')]=_0x1eaac6[_0x4f49('0x3a')][_0x4f49('0x3c')]?_0x1eaac6[_0x4f49('0x3a')]:_0x35aa33[_0x4f49('0x35')];if(!_0x7a6ea0[_0x4f49('0x36')]['hasOwnProperty'](_0x4f49('0x3d'))){_0x1eaac6[_0x4f49('0x1e')]=qs[_0x4f49('0x1e')](_0x7a6ea0[_0x4f49('0x36')][_0x4f49('0x1e')]);_0x1eaac6[_0x4f49('0x1d')]=qs[_0x4f49('0x1d')](_0x7a6ea0[_0x4f49('0x36')][_0x4f49('0x1d')]);}_0x1eaac6[_0x4f49('0x3e')]=qs[_0x4f49('0x3f')](_0x7a6ea0[_0x4f49('0x36')][_0x4f49('0x3f')]);_0x1eaac6[_0x4f49('0x40')]=qs['filters'](_[_0x4f49('0x41')](_0x7a6ea0[_0x4f49('0x36')],_0x35aa33['filters']),_0x2ceda4);if(_0x7a6ea0[_0x4f49('0x36')][_0x4f49('0x42')]){_0x1eaac6['where']=_[_0x4f49('0x43')](_0x1eaac6[_0x4f49('0x40')],{'$or':_[_0x4f49('0x2f')](_0x2ceda4,function(_0x200b1d){if(_0x200b1d[_0x4f49('0x33')]!==_0x4f49('0x44')){var _0x29e910={};_0x29e910[_0x200b1d['name']]={'$like':'%'+_0x7a6ea0['query']['filter']+'%'};return _0x29e910;}})});}_0x1eaac6=_[_0x4f49('0x43')]({},_0x1eaac6,_0x7a6ea0[_0x4f49('0x45')]);var _0x2e4355={'where':_0x1eaac6[_0x4f49('0x40')]};return db[_0x4f49('0x30')][_0x4f49('0x20')](_0x2e4355)[_0x4f49('0x26')](function(_0x23720a){_0x173657[_0x4f49('0x20')]=_0x23720a;if(_0x7a6ea0['query']['includeAll']){_0x1eaac6[_0x4f49('0x46')]=[{'all':!![]}];}return db[_0x4f49('0x30')][_0x4f49('0x47')](_0x1eaac6);})['then'](function(_0x2d6b56){_0x173657['rows']=_0x2d6b56;return _0x173657;})['then'](respondWithFilteredResult(_0x5e7076,_0x1eaac6))[_0x4f49('0x48')](handleError(_0x5e7076,null));};exports[_0x4f49('0x49')]=function(_0x40eadc,_0x497cb8){var _0x287781={'raw':!![],'where':{'id':_0x40eadc['params']['id']}},_0x11b4df={};_0x11b4df[_0x4f49('0x35')]=_['keys'](db[_0x4f49('0x30')][_0x4f49('0x31')]);_0x11b4df[_0x4f49('0x36')]=_['keys'](_0x40eadc[_0x4f49('0x36')]);_0x11b4df[_0x4f49('0x38')]=_[_0x4f49('0x39')](_0x11b4df[_0x4f49('0x35')],_0x11b4df[_0x4f49('0x36')]);_0x287781[_0x4f49('0x3a')]=_[_0x4f49('0x39')](_0x11b4df[_0x4f49('0x35')],qs[_0x4f49('0x3b')](_0x40eadc[_0x4f49('0x36')]['fields']));_0x287781[_0x4f49('0x3a')]=_0x287781[_0x4f49('0x3a')]['length']?_0x287781[_0x4f49('0x3a')]:_0x11b4df['model'];if(_0x40eadc[_0x4f49('0x36')][_0x4f49('0x4a')]){_0x287781[_0x4f49('0x46')]=[{'all':!![]}];}_0x287781=_[_0x4f49('0x43')]({},_0x287781,_0x40eadc['options']);return db[_0x4f49('0x30')][_0x4f49('0x4b')](_0x287781)[_0x4f49('0x26')](handleEntityNotFound(_0x497cb8,null))[_0x4f49('0x26')](respondWithResult(_0x497cb8,null))[_0x4f49('0x48')](handleError(_0x497cb8,null));};exports[_0x4f49('0x4c')]=function(_0x37fdb7,_0xd282c){return db[_0x4f49('0x30')][_0x4f49('0x4c')](_0x37fdb7[_0x4f49('0x4d')],{})[_0x4f49('0x26')](function(_0x148031){var _0x2104d0=_0x37fdb7[_0x4f49('0x4e')][_0x4f49('0x28')]({'plain':!![]});if(!_0x2104d0)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x2104d0['role']===_0x4f49('0x4e')){var _0x197670=_0x148031[_0x4f49('0x28')]({'plain':!![]});var _0xe46c90=_0x4f49('0x4f');return db[_0x4f49('0x50')][_0x4f49('0x4b')]({'where':{'name':_0xe46c90,'userProfileId':_0x2104d0['userProfileId']},'raw':!![]})[_0x4f49('0x26')](function(_0x4ff0a2){if(_0x4ff0a2&&_0x4ff0a2[_0x4f49('0x51')]===0x0){return db[_0x4f49('0x52')][_0x4f49('0x4c')]({'name':_0x197670[_0x4f49('0x2c')],'resourceId':_0x197670['id'],'type':'DefaultReports','sectionId':_0x4ff0a2['id']},{})[_0x4f49('0x26')](function(){return _0x148031;});}else{return _0x148031;}})['catch'](function(_0x52d18c){logger[_0x4f49('0x2a')](_0x4f49('0x53'),_0x52d18c);throw _0x52d18c;});}return _0x148031;})[_0x4f49('0x26')](respondWithResult(_0xd282c,0xc9))[_0x4f49('0x48')](handleError(_0xd282c,null));};exports['update']=function(_0x599c51,_0xd7f47b){if(_0x599c51[_0x4f49('0x4d')]['id']){delete _0x599c51['body']['id'];}return db[_0x4f49('0x30')]['find']({'where':{'id':_0x599c51['params']['id']}})[_0x4f49('0x26')](handleEntityNotFound(_0xd7f47b,null))['then'](saveUpdates(_0x599c51[_0x4f49('0x4d')],null))['then'](respondWithResult(_0xd7f47b,null))[_0x4f49('0x48')](handleError(_0xd7f47b,null));};exports[_0x4f49('0x27')]=function(_0x2472c9,_0x883408){return db[_0x4f49('0x30')][_0x4f49('0x4b')]({'where':{'id':_0x2472c9[_0x4f49('0x54')]['id']}})[_0x4f49('0x26')](handleEntityNotFound(_0x883408,null))['then'](removeEntity(_0x883408,null))[_0x4f49('0x48')](handleError(_0x883408,null));};exports['preview']=function(_0x213608,_0x1f640d){var _0xc4fc6b=0xa;var _0x467f12=[_0x4f49('0x55'),_0x4f49('0x56'),'right_join',_0x4f49('0x57')];var _0xd3689c={'SUM':'SUM(%s)','COUNT':'COUNT(%s)','COUNT DISTINCT':_0x4f49('0x58'),'MAX':_0x4f49('0x59'),'MIN':_0x4f49('0x5a'),'AVG':_0x4f49('0x5b'),'GROUP_CONCAT':_0x4f49('0x5c'),'GROUP_CONCAT ASC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT DESC':_0x4f49('0x5d')};var _0x564bf5={'SEC_TO_TIME':_0x4f49('0x5e'),'DATE':_0x4f49('0x5f'),'HOUR':_0x4f49('0x60'),'ROUND':'ROUND(%s)','UNIX_TIMESTAMP':_0x4f49('0x61')};var _0x21807e=function(_0x265988){return!_[_0x4f49('0x62')](['IS\x20NULL',_0x4f49('0x63'),_0x4f49('0x64'),'IS\x20NOT\x20EMPTY'],_0x265988);};var _0x293839=function(_0x17b15){if(!_0x17b15||!_0x17b15[_0x4f49('0x65')][_0x4f49('0x3c')]){return'';}for(var _0x28ea73='(',_0x1b80f2=0x0;_0x1b80f2<_0x17b15[_0x4f49('0x65')][_0x4f49('0x3c')];_0x1b80f2+=0x1){_0x1b80f2>0x0&&(_0x28ea73+='\x20'+_0x17b15['operator']+'\x20');_0x28ea73+=_0x17b15[_0x4f49('0x65')][_0x1b80f2][_0x4f49('0x66')]?_0x293839(_0x17b15[_0x4f49('0x65')][_0x1b80f2][_0x4f49('0x66')]):_0x17b15[_0x4f49('0x65')][_0x1b80f2][_0x4f49('0x67')]+'\x20'+_0x17b15[_0x4f49('0x65')][_0x1b80f2]['condition']+(_0x21807e(_0x17b15[_0x4f49('0x65')][_0x1b80f2]['condition'])?'\x20'+_0x17b15[_0x4f49('0x65')][_0x1b80f2][_0x4f49('0x68')]:'');}return _0x28ea73+')';};var _0x4714c7={'where':{'id':_0x213608[_0x4f49('0x54')]['id']}},_0xf29378,_0xc7743e,_0x3f2f3f,_0x61a565,_0x297698;_0x4714c7=_[_0x4f49('0x43')]({},_0x4714c7,_0x213608['options']);return db[_0x4f49('0x30')][_0x4f49('0x4b')](_0x4714c7)[_0x4f49('0x26')](function(_0x2cdaa4){if(_0x2cdaa4){_0xf29378=_0x2cdaa4;return _0x2cdaa4['getFields']();}return null;})['then'](function(_0x28e8ae){if(_0x28e8ae){if(!_0x28e8ae['length']){throw new db[(_0x4f49('0x69'))][(_0x4f49('0x6a'))](_0x4f49('0x6b'),0x193);}_0xc7743e=_0x28e8ae;return db[_0x4f49('0x6c')][_0x4f49('0x47')]({'raw':!![]});}return null;})[_0x4f49('0x26')](function(_0x179431){if(_0x179431){_0x3f2f3f=_[_0x4f49('0x6d')](_0x179431,'id');var _0x3823f0;var _0x3e9b47=squel[_0x4f49('0x6e')]();_0x3e9b47[_0x4f49('0x6f')](_0xf29378[_0x4f49('0x70')]);for(var _0xd53de8=0x0;_0xd53de8<_0xc7743e[_0x4f49('0x3c')];_0xd53de8+=0x1){_0x3823f0=_0xc7743e[_0xd53de8][_0x4f49('0x71')]?_0x3f2f3f[_0xc7743e[_0xd53de8][_0x4f49('0x71')]][_0x4f49('0x72')]:_0xc7743e[_0xd53de8][_0x4f49('0x67')];_0x3823f0=_0xc7743e[_0xd53de8][_0x4f49('0x73')]?_[_0x4f49('0x74')](_0xd3689c[_0xc7743e[_0xd53de8][_0x4f49('0x73')]],'%s',_0x3823f0):_0x3823f0;_0x3823f0=_0xc7743e[_0xd53de8][_0x4f49('0x75')]?_[_0x4f49('0x74')](_0x564bf5[_0xc7743e[_0xd53de8][_0x4f49('0x75')]],'%s',_0x3823f0):_0x3823f0;if(_0xc7743e[_0xd53de8]['groupBy']){_0x3e9b47[_0x4f49('0x66')](_0x3823f0);}_0xc7743e[_0xd53de8]['orderBy']&&_0x3e9b47[_0x4f49('0x3e')](_0x3823f0,_0xc7743e[_0xd53de8][_0x4f49('0x76')]===_0x4f49('0x77')?![]:!![]);_0x3e9b47[_0x4f49('0x67')](_0x3823f0,_0xc7743e[_0xd53de8][_0x4f49('0x78')]||_0x3823f0);}if(_0xf29378[_0x4f49('0x79')]){_0xf29378[_0x4f49('0x79')]=JSON[_0x4f49('0x7a')](_0xf29378[_0x4f49('0x79')]);for(var _0x541ac6=0x0;_0x541ac6<_0xf29378['joins'][_0x4f49('0x3c')];_0x541ac6+=0x1){if(_0xf29378['joins'][_0x541ac6][_0x4f49('0x33')]&&_[_0x4f49('0x62')](_0x467f12,_0xf29378[_0x4f49('0x79')][_0x541ac6][_0x4f49('0x33')])&&_0xf29378[_0x4f49('0x79')][_0x541ac6]['parentKey']&&_0xf29378['joins'][_0x541ac6][_0x4f49('0x7b')]&&_0xf29378[_0x4f49('0x79')][_0x541ac6]['foreignKey']){_0x3e9b47[_0xf29378[_0x4f49('0x79')][_0x541ac6][_0x4f49('0x33')]](_0xf29378['joins'][_0x541ac6][_0x4f49('0x7b')],null,util['format'](_0x4f49('0x7c'),_0xf29378[_0x4f49('0x70')],_0xf29378['joins'][_0x541ac6][_0x4f49('0x7d')],_0xf29378[_0x4f49('0x79')][_0x541ac6][_0x4f49('0x7b')],_0xf29378[_0x4f49('0x79')][_0x541ac6][_0x4f49('0x7e')]));}}}if(_0xf29378[_0x4f49('0x7f')]){_0xf29378['conditions']=JSON[_0x4f49('0x7a')](_0xf29378['conditions']);_0x3e9b47[_0x4f49('0x40')](_0x293839(_0xf29378['conditions'][_0x4f49('0x66')]));}_0x297698=_0x3e9b47['clone']();_0x3e9b47[_0x4f49('0x1e')](_0xc4fc6b);_0x3e9b47[_0x4f49('0x1d')](0x0);logger[_0x4f49('0x80')](_0x4f49('0x81'),_0x3e9b47['toString']());return dbH[_0x4f49('0x82')]['query'](_0x3e9b47[_0x4f49('0x83')](),{'type':dbH['sequelize'][_0x4f49('0x84')]['SELECT']});}})['then'](respondWithResult(_0x1f640d,null))[_0x4f49('0x48')](handleError(_0x1f640d,null));};function runReport(_0x20b2be,_0x16cb4d,_0x4c0e7a){var _0x289810=_0x16cb4d[_0x4f49('0x2c')];var _0x5c33c9=0xa;var _0x5d52ae=['join',_0x4f49('0x56'),_0x4f49('0x85'),_0x4f49('0x57')];var _0x87439={'SUM':_0x4f49('0x86'),'COUNT':'COUNT(%s)','COUNT DISTINCT':_0x4f49('0x58'),'MAX':_0x4f49('0x59'),'MIN':_0x4f49('0x5a'),'AVG':'AVG(%s)','GROUP_CONCAT':_0x4f49('0x5c'),'GROUP_CONCAT ASC':_0x4f49('0x87'),'GROUP_CONCAT DESC':_0x4f49('0x5d')};var _0x2902a1={'SEC_TO_TIME':'SEC_TO_TIME(%s)','DATE':_0x4f49('0x5f'),'HOUR':_0x4f49('0x60'),'ROUND':_0x4f49('0x88'),'UNIX_TIMESTAMP':_0x4f49('0x61')};var _0x389679=function(_0x5304c3){return!_[_0x4f49('0x62')]([_0x4f49('0x89'),'IS\x20NOT\x20NULL',_0x4f49('0x64'),'IS\x20NOT\x20EMPTY'],_0x5304c3);};var _0x351a33=function(_0x4d72a0){if(!_0x4d72a0||!_0x4d72a0[_0x4f49('0x65')][_0x4f49('0x3c')]){return'';}for(var _0x2ef19e='(',_0x6ad599=0x0;_0x6ad599<_0x4d72a0[_0x4f49('0x65')]['length'];_0x6ad599+=0x1){_0x6ad599>0x0&&(_0x2ef19e+='\x20'+_0x4d72a0[_0x4f49('0x8a')]+'\x20');_0x2ef19e+=_0x4d72a0[_0x4f49('0x65')][_0x6ad599][_0x4f49('0x66')]?_0x351a33(_0x4d72a0[_0x4f49('0x65')][_0x6ad599]['group']):_0x4d72a0[_0x4f49('0x65')][_0x6ad599]['field']+'\x20'+_0x4d72a0[_0x4f49('0x65')][_0x6ad599]['condition']+(_0x389679(_0x4d72a0[_0x4f49('0x65')][_0x6ad599][_0x4f49('0x8b')])?'\x20'+_0x4d72a0[_0x4f49('0x65')][_0x6ad599][_0x4f49('0x68')]:'');}return _0x2ef19e+')';};var _0x111e90={'where':{'id':_0x20b2be['id']}},_0xd253ed,_0x323a3a,_0xe0adc3,_0x3a26ff,_0x64f0ee;_0x111e90=_['merge']({},_0x111e90,_0x4c0e7a);return db[_0x4f49('0x30')][_0x4f49('0x4b')](_0x111e90)[_0x4f49('0x26')](function(_0x299849){if(_0x299849){_0xd253ed=_0x299849;return _0x299849[_0x4f49('0x8c')]();}return null;})[_0x4f49('0x26')](function(_0x55b28b){if(_0x55b28b){if(!_0x55b28b[_0x4f49('0x3c')]){throw new db[(_0x4f49('0x69'))][(_0x4f49('0x6a'))](_0x4f49('0x6b'),0x193);}_0x323a3a=_0x55b28b;return db['AnalyticMetric'][_0x4f49('0x47')]({'raw':!![]});}return null;})['then'](function(_0x3c4e88){if(_0x3c4e88){_0xe0adc3=_[_0x4f49('0x6d')](_0x3c4e88,'id');var _0x5c5d2;var _0xa880a2=squel['select']();_0xa880a2[_0x4f49('0x6f')](_0xd253ed[_0x4f49('0x70')]);for(var _0x11c0a0=0x0;_0x11c0a0<_0x323a3a[_0x4f49('0x3c')];_0x11c0a0+=0x1){_0x5c5d2=_0x323a3a[_0x11c0a0][_0x4f49('0x71')]?_0xe0adc3[_0x323a3a[_0x11c0a0][_0x4f49('0x71')]][_0x4f49('0x72')]:_0x323a3a[_0x11c0a0][_0x4f49('0x67')];_0x5c5d2=_0x323a3a[_0x11c0a0][_0x4f49('0x73')]?_[_0x4f49('0x74')](_0x87439[_0x323a3a[_0x11c0a0][_0x4f49('0x73')]],'%s',_0x5c5d2):_0x5c5d2;_0x5c5d2=_0x323a3a[_0x11c0a0][_0x4f49('0x75')]?_[_0x4f49('0x74')](_0x2902a1[_0x323a3a[_0x11c0a0][_0x4f49('0x75')]],'%s',_0x5c5d2):_0x5c5d2;if(_0x323a3a[_0x11c0a0][_0x4f49('0x8d')]){_0xa880a2[_0x4f49('0x66')](_0x5c5d2);}_0x323a3a[_0x11c0a0][_0x4f49('0x76')]&&_0xa880a2[_0x4f49('0x3e')](_0x5c5d2,_0x323a3a[_0x11c0a0]['orderBy']===_0x4f49('0x77')?![]:!![]);_0xa880a2[_0x4f49('0x67')](_0x5c5d2,_0x323a3a[_0x11c0a0][_0x4f49('0x78')]||_0x5c5d2);}if(_0xd253ed[_0x4f49('0x79')]){_0xd253ed['joins']=JSON[_0x4f49('0x7a')](_0xd253ed[_0x4f49('0x79')]);for(var _0x594460=0x0;_0x594460<_0xd253ed[_0x4f49('0x79')]['length'];_0x594460+=0x1){if(_0xd253ed[_0x4f49('0x79')][_0x594460][_0x4f49('0x33')]&&_[_0x4f49('0x62')](_0x5d52ae,_0xd253ed[_0x4f49('0x79')][_0x594460][_0x4f49('0x33')])&&_0xd253ed[_0x4f49('0x79')][_0x594460][_0x4f49('0x7d')]&&_0xd253ed[_0x4f49('0x79')][_0x594460][_0x4f49('0x7b')]&&_0xd253ed[_0x4f49('0x79')][_0x594460]['foreignKey']){_0xa880a2[_0xd253ed['joins'][_0x594460][_0x4f49('0x33')]](_0xd253ed['joins'][_0x594460][_0x4f49('0x7b')],null,util[_0x4f49('0x75')]('%s.%s\x20=\x20%s.%s',_0xd253ed['table'],_0xd253ed[_0x4f49('0x79')][_0x594460]['parentKey'],_0xd253ed[_0x4f49('0x79')][_0x594460][_0x4f49('0x7b')],_0xd253ed[_0x4f49('0x79')][_0x594460]['foreignKey']));}}}if(_0xd253ed[_0x4f49('0x7f')]){_0xd253ed['conditions']=JSON[_0x4f49('0x7a')](_0xd253ed[_0x4f49('0x7f')]);_0xa880a2[_0x4f49('0x40')](_0x351a33(_0xd253ed['conditions'][_0x4f49('0x66')]));}_0x64f0ee=_0xa880a2[_0x4f49('0x8e')]();_0xa880a2[_0x4f49('0x1e')](_0x5c33c9);_0xa880a2['offset'](0x0);return;}})['then'](function(){if(_0x16cb4d[_0x4f49('0x8f')]==='web'){return null;}var _0x2bc9df=_[_0x4f49('0x43')](_0x16cb4d,{'name':_0x16cb4d[_0x4f49('0x90')]||_0x16cb4d['name']||_0xd253ed[_0x4f49('0x2c')],'basename':_0x289810,'savename':util['format'](_0x4f49('0x91'),_0x16cb4d[_0x4f49('0x2c')]||_0xd253ed[_0x4f49('0x2c')],require('randomstring')[_0x4f49('0x92')](0x4),_0x16cb4d[_0x4f49('0x8f')]||_0x4f49('0x93')),'reportId':_0xd253ed['id'],'reportType':_0x4f49('0x94')});return db[_0x4f49('0x95')][_0x4f49('0x4c')](_0x2bc9df,{'raw':!![]});})['then'](function(_0x5b6ac7){if(_0xd253ed[_0x4f49('0x70')]===_0x4f49('0x96')){_0x64f0ee[_0x4f49('0x40')](_0xd253ed[_0x4f49('0x70')]+_0x4f49('0x97'),_0x16cb4d[_0x4f49('0x98')],_0x16cb4d[_0x4f49('0x99')]);}else{_0x64f0ee[_0x4f49('0x40')](_0xd253ed[_0x4f49('0x70')]+'.createdAt\x20BETWEEN\x20?\x20AND\x20?',_0x16cb4d[_0x4f49('0x98')],_0x16cb4d[_0x4f49('0x99')]);}if(_0x5b6ac7){logger[_0x4f49('0x9a')]('Run\x20Query:',_0x64f0ee[_0x4f49('0x83')]());require(_0x4f49('0x9b'))[_0x4f49('0x9c')](path['join'](__dirname,_0x4f49('0x9d'),_0x5b6ac7[_0x4f49('0x8f')]),[_0x5b6ac7['id'],_0x64f0ee[_0x4f49('0x83')](),path['join'](__dirname,_0x4f49('0x9e'),_0x5b6ac7[_0x4f49('0x9f')]),_0x289810]);return _0x5b6ac7;}else{var _0x5efb11=squel['select']();_0x5efb11[_0x4f49('0x6f')]('('+_0x64f0ee[_0x4f49('0x83')]()+')',_0x4f49('0xa0'));_0x5efb11[_0x4f49('0x67')](_0x4f49('0xa1'),_0x4f49('0x20'));_0x64f0ee['limit'](_0x16cb4d['limit']||_0x5c33c9);_0x64f0ee['offset'](_0x16cb4d[_0x4f49('0x1d')]||0x0);return dbH[_0x4f49('0x82')]['query'](_0x5efb11[_0x4f49('0x83')](),{'type':dbH[_0x4f49('0x82')][_0x4f49('0x84')]['SELECT']})['then'](function(_0x3633b5){if(!_0x3633b5['length']){_0x3a26ff=0x0;}else{_0x3a26ff=_0x3633b5[0x0][_0x4f49('0x20')]||0x0;}return dbH[_0x4f49('0x82')][_0x4f49('0x36')](_0x64f0ee[_0x4f49('0x83')](),{'type':dbH[_0x4f49('0x82')]['QueryTypes'][_0x4f49('0xa2')]});})[_0x4f49('0x26')](function(_0x45c938){return{'rows':_0x45c938||[],'count':_0x3a26ff};});}});}exports[_0x4f49('0xa3')]=function(_0x4a4d75,_0x93e85d){return runReport(_0x4a4d75[_0x4f49('0x54')],_0x4a4d75['query'],_0x4a4d75[_0x4f49('0x45')])[_0x4f49('0x26')](respondWithResult(_0x93e85d,null))[_0x4f49('0x48')](handleError(_0x93e85d,null));};exports[_0x4f49('0xa4')]=runReport;exports[_0x4f49('0x36')]=function(_0x40991b,_0x56290f){var _0x4994b6=0xa;var _0x1c7d87=[_0x4f49('0x55'),_0x4f49('0x56'),_0x4f49('0x85'),_0x4f49('0x57')];var _0x5cd00a={'SUM':_0x4f49('0x86'),'COUNT':'COUNT(%s)','COUNT DISTINCT':_0x4f49('0x58'),'MAX':'MAX(%s)','MIN':'MIN(%s)','AVG':_0x4f49('0x5b'),'GROUP_CONCAT':_0x4f49('0x5c'),'GROUP_CONCAT ASC':_0x4f49('0x87'),'GROUP_CONCAT DESC':_0x4f49('0x5d')};var _0xd876f1={'SEC_TO_TIME':_0x4f49('0x5e'),'DATE':_0x4f49('0x5f'),'HOUR':'HOUR(%s)','ROUND':_0x4f49('0x88'),'UNIX_TIMESTAMP':_0x4f49('0x61')};var _0x1ae2c9=function(_0x566634){return!_[_0x4f49('0x62')]([_0x4f49('0x89'),_0x4f49('0x63'),'IS\x20EMPTY',_0x4f49('0xa5')],_0x566634);};var _0x541dc2=function(_0x4061bf){if(!_0x4061bf||!_0x4061bf[_0x4f49('0x65')][_0x4f49('0x3c')]){return'';}for(var _0x1bc18d='(',_0x5e6103=0x0;_0x5e6103<_0x4061bf[_0x4f49('0x65')][_0x4f49('0x3c')];_0x5e6103+=0x1){_0x5e6103>0x0&&(_0x1bc18d+='\x20'+_0x4061bf[_0x4f49('0x8a')]+'\x20');_0x1bc18d+=_0x4061bf[_0x4f49('0x65')][_0x5e6103][_0x4f49('0x66')]?_0x541dc2(_0x4061bf[_0x4f49('0x65')][_0x5e6103][_0x4f49('0x66')]):_0x4061bf[_0x4f49('0x65')][_0x5e6103]['field']+'\x20'+_0x4061bf['rules'][_0x5e6103][_0x4f49('0x8b')]+(_0x1ae2c9(_0x4061bf[_0x4f49('0x65')][_0x5e6103][_0x4f49('0x8b')])?'\x20'+_0x4061bf[_0x4f49('0x65')][_0x5e6103][_0x4f49('0x68')]:'');}return _0x1bc18d+')';};var _0x29dbab={'where':{'id':_0x40991b[_0x4f49('0x54')]['id']}},_0x5f459b,_0x1d090f,_0x37d2f4,_0x5bcb36,_0x3f04fa;_0x29dbab=_[_0x4f49('0x43')]({},_0x29dbab,_0x40991b['options']);return db['AnalyticDefaultReport'][_0x4f49('0x4b')](_0x29dbab)[_0x4f49('0x26')](function(_0x200848){if(_0x200848){_0x5f459b=_0x200848;return _0x200848['getFields']();}return null;})[_0x4f49('0x26')](function(_0x48f4bc){if(_0x48f4bc){if(!_0x48f4bc[_0x4f49('0x3c')]){throw new db['Sequelize'][(_0x4f49('0x6a'))](_0x4f49('0x6b'),0x193);}_0x1d090f=_0x48f4bc;return db['AnalyticMetric'][_0x4f49('0x47')]({'raw':!![]});}return null;})[_0x4f49('0x26')](function(_0x513bc9){if(_0x513bc9){_0x37d2f4=_[_0x4f49('0x6d')](_0x513bc9,'id');var _0x47567c;var _0x5f1538=squel[_0x4f49('0x6e')]();_0x5f1538[_0x4f49('0x6f')](_0x5f459b[_0x4f49('0x70')]);for(var _0xd91e48=0x0;_0xd91e48<_0x1d090f[_0x4f49('0x3c')];_0xd91e48+=0x1){_0x47567c=_0x1d090f[_0xd91e48][_0x4f49('0x71')]?_0x37d2f4[_0x1d090f[_0xd91e48]['MetricId']][_0x4f49('0x72')]:_0x1d090f[_0xd91e48][_0x4f49('0x67')];_0x47567c=_0x1d090f[_0xd91e48][_0x4f49('0x73')]?_['replace'](_0x5cd00a[_0x1d090f[_0xd91e48][_0x4f49('0x73')]],'%s',_0x47567c):_0x47567c;_0x47567c=_0x1d090f[_0xd91e48][_0x4f49('0x75')]?_[_0x4f49('0x74')](_0xd876f1[_0x1d090f[_0xd91e48][_0x4f49('0x75')]],'%s',_0x47567c):_0x47567c;if(_0x1d090f[_0xd91e48][_0x4f49('0x8d')]){_0x5f1538[_0x4f49('0x66')](_0x47567c);}_0x1d090f[_0xd91e48][_0x4f49('0x76')]&&_0x5f1538['order'](_0x47567c,_0x1d090f[_0xd91e48][_0x4f49('0x76')]==='DESC'?![]:!![]);_0x5f1538['field'](_0x47567c,_0x1d090f[_0xd91e48][_0x4f49('0x78')]||_0x47567c);}if(_0x5f459b['joins']){_0x5f459b[_0x4f49('0x79')]=JSON[_0x4f49('0x7a')](_0x5f459b[_0x4f49('0x79')]);for(var _0x85eb3f=0x0;_0x85eb3f<_0x5f459b[_0x4f49('0x79')][_0x4f49('0x3c')];_0x85eb3f+=0x1){if(_0x5f459b['joins'][_0x85eb3f][_0x4f49('0x33')]&&_[_0x4f49('0x62')](_0x1c7d87,_0x5f459b[_0x4f49('0x79')][_0x85eb3f][_0x4f49('0x33')])&&_0x5f459b[_0x4f49('0x79')][_0x85eb3f][_0x4f49('0x7d')]&&_0x5f459b[_0x4f49('0x79')][_0x85eb3f]['foreignTable']&&_0x5f459b[_0x4f49('0x79')][_0x85eb3f][_0x4f49('0x7e')]){_0x5f1538[_0x5f459b[_0x4f49('0x79')][_0x85eb3f][_0x4f49('0x33')]](_0x5f459b[_0x4f49('0x79')][_0x85eb3f][_0x4f49('0x7b')],null,util[_0x4f49('0x75')](_0x4f49('0x7c'),_0x5f459b[_0x4f49('0x70')],_0x5f459b[_0x4f49('0x79')][_0x85eb3f][_0x4f49('0x7d')],_0x5f459b[_0x4f49('0x79')][_0x85eb3f]['foreignTable'],_0x5f459b[_0x4f49('0x79')][_0x85eb3f][_0x4f49('0x7e')]));}}}if(_0x5f459b['conditions']){_0x5f459b[_0x4f49('0x7f')]=JSON[_0x4f49('0x7a')](_0x5f459b[_0x4f49('0x7f')]);_0x5f1538[_0x4f49('0x40')](_0x541dc2(_0x5f459b[_0x4f49('0x7f')][_0x4f49('0x66')]));}_0x3f04fa=_0x5f1538['clone']();_0x5f1538['limit'](_0x4994b6);_0x5f1538['offset'](0x0);logger['debug'](_0x4f49('0x81'),_0x5f1538['toString']());return dbH[_0x4f49('0x82')][_0x4f49('0x36')](_0x5f1538[_0x4f49('0x83')](),{'type':dbH[_0x4f49('0x82')][_0x4f49('0x84')][_0x4f49('0xa2')]});}})['then'](function(){return{'sql':_0x3f04fa[_0x4f49('0x83')]()};})['then'](respondWithResult(_0x56290f,null))[_0x4f49('0x48')](handleError(_0x56290f,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1ba1=['../../config/logger','api','moment','bluebird','request-promise','path','rimraf','./analyticDefaultReport.attributes','exports','AnalyticDefaultReport','analytics_default_reports','lodash','util'];(function(_0x47d9a7,_0x4d527f){var _0x11fb1b=function(_0xc0b7){while(--_0xc0b7){_0x47d9a7['push'](_0x47d9a7['shift']());}};_0x11fb1b(++_0x4d527f);}(_0x1ba1,0x73));var _0x11ba=function(_0x5be0f7,_0x435f97){_0x5be0f7=_0x5be0f7-0x0;var _0x224e5c=_0x1ba1[_0x5be0f7];return _0x224e5c;};'use strict';var _=require(_0x11ba('0x0'));var util=require(_0x11ba('0x1'));var logger=require(_0x11ba('0x2'))(_0x11ba('0x3'));var moment=require(_0x11ba('0x4'));var BPromise=require(_0x11ba('0x5'));var rp=require(_0x11ba('0x6'));var fs=require('fs');var path=require(_0x11ba('0x7'));var rimraf=require(_0x11ba('0x8'));var config=require('../../config/environment');var attributes=require(_0x11ba('0x9'));module[_0x11ba('0xa')]=function(_0x4c5a3d,_0x5526b3){return _0x4c5a3d['define'](_0x11ba('0xb'),attributes,{'tableName':_0x11ba('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x18e6=['define','AnalyticDefaultReport','analytics_default_reports','lodash','util','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./analyticDefaultReport.attributes','exports'];(function(_0x39ef9c,_0x4a7c72){var _0x220aea=function(_0x1198f7){while(--_0x1198f7){_0x39ef9c['push'](_0x39ef9c['shift']());}};_0x220aea(++_0x4a7c72);}(_0x18e6,0x153));var _0x618e=function(_0x5daa95,_0x4e0923){_0x5daa95=_0x5daa95-0x0;var _0x4d0bf8=_0x18e6[_0x5daa95];return _0x4d0bf8;};'use strict';var _=require(_0x618e('0x0'));var util=require(_0x618e('0x1'));var logger=require('../../config/logger')(_0x618e('0x2'));var moment=require(_0x618e('0x3'));var BPromise=require(_0x618e('0x4'));var rp=require(_0x618e('0x5'));var fs=require('fs');var path=require(_0x618e('0x6'));var rimraf=require(_0x618e('0x7'));var config=require(_0x618e('0x8'));var attributes=require(_0x618e('0x9'));module[_0x618e('0xa')]=function(_0x47e3fe,_0x257f5c){return _0x47e3fe[_0x618e('0xb')](_0x618e('0xc'),attributes,{'tableName':_0x618e('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xca0a=['code','AnalyticDefaultReport,\x20%s,\x20%s','message','info','result','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','debug','request\x20sent','stringify','error'];(function(_0x2feffe,_0x104382){var _0x190bb3=function(_0x4522cf){while(--_0x4522cf){_0x2feffe['push'](_0x2feffe['shift']());}};_0x190bb3(++_0x104382);}(_0xca0a,0x18c));var _0xaca0=function(_0x1b828b,_0x344400){_0x1b828b=_0x1b828b-0x0;var _0x98da1a=_0xca0a[_0x1b828b];return _0x98da1a;};'use strict';var _=require('lodash');var util=require(_0xaca0('0x0'));var moment=require(_0xaca0('0x1'));var BPromise=require(_0xaca0('0x2'));var rs=require(_0xaca0('0x3'));var fs=require('fs');var Redis=require(_0xaca0('0x4'));var db=require(_0xaca0('0x5'))['db'];var utils=require(_0xaca0('0x6'));var logger=require(_0xaca0('0x7'))(_0xaca0('0x8'));var config=require(_0xaca0('0x9'));var jayson=require(_0xaca0('0xa'));var client=jayson[_0xaca0('0xb')][_0xaca0('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x48ee92,_0x196f09,_0x3230da){return new BPromise(function(_0x4337e0,_0x268c71){return client[_0xaca0('0xd')](_0x48ee92,_0x3230da)['then'](function(_0x40f1d1){logger['info']('AnalyticDefaultReport,\x20%s,\x20%s',_0x196f09,'request\x20sent');logger[_0xaca0('0xe')]('AnalyticDefaultReport,\x20%s,\x20%s,\x20%s',_0x196f09,_0xaca0('0xf'),JSON[_0xaca0('0x10')](_0x40f1d1));if(_0x40f1d1[_0xaca0('0x11')]){if(_0x40f1d1[_0xaca0('0x11')][_0xaca0('0x12')]===0x1f4){logger['error'](_0xaca0('0x13'),_0x196f09,_0x40f1d1[_0xaca0('0x11')][_0xaca0('0x14')]);return _0x268c71(_0x40f1d1[_0xaca0('0x11')][_0xaca0('0x14')]);}logger[_0xaca0('0x11')]('AnalyticDefaultReport,\x20%s,\x20%s',_0x196f09,_0x40f1d1[_0xaca0('0x11')][_0xaca0('0x14')]);return _0x4337e0(_0x40f1d1['error'][_0xaca0('0x14')]);}else{logger[_0xaca0('0x15')](_0xaca0('0x13'),_0x196f09,_0xaca0('0xf'));_0x4337e0(_0x40f1d1[_0xaca0('0x16')]['message']);}})['catch'](function(_0x2cec39){logger[_0xaca0('0x11')](_0xaca0('0x13'),_0x196f09,_0x2cec39);_0x268c71(_0x2cec39);});});}
\ No newline at end of file
+var _0x91d7=['request\x20sent','AnalyticDefaultReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','jayson/promise','http','request','then','AnalyticDefaultReport,\x20%s,\x20%s'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x91d7,0x1ec));var _0x791d=function(_0x1ab6b5,_0x3ec223){_0x1ab6b5=_0x1ab6b5-0x0;var _0x408046=_0x91d7[_0x1ab6b5];return _0x408046;};'use strict';var _=require(_0x791d('0x0'));var util=require(_0x791d('0x1'));var moment=require(_0x791d('0x2'));var BPromise=require(_0x791d('0x3'));var rs=require(_0x791d('0x4'));var fs=require('fs');var Redis=require(_0x791d('0x5'));var db=require(_0x791d('0x6'))['db'];var utils=require(_0x791d('0x7'));var logger=require(_0x791d('0x8'))('rpc');var config=require('../../config/environment');var jayson=require(_0x791d('0x9'));var client=jayson['client'][_0x791d('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x5373f4,_0xe16ea7,_0x2f443f){return new BPromise(function(_0x3b870f,_0x4cc251){return client[_0x791d('0xb')](_0x5373f4,_0x2f443f)[_0x791d('0xc')](function(_0x1cf22b){logger['info'](_0x791d('0xd'),_0xe16ea7,_0x791d('0xe'));logger['debug'](_0x791d('0xf'),_0xe16ea7,'request\x20sent',JSON[_0x791d('0x10')](_0x1cf22b));if(_0x1cf22b[_0x791d('0x11')]){if(_0x1cf22b['error'][_0x791d('0x12')]===0x1f4){logger['error']('AnalyticDefaultReport,\x20%s,\x20%s',_0xe16ea7,_0x1cf22b[_0x791d('0x11')]['message']);return _0x4cc251(_0x1cf22b[_0x791d('0x11')][_0x791d('0x13')]);}logger[_0x791d('0x11')](_0x791d('0xd'),_0xe16ea7,_0x1cf22b[_0x791d('0x11')][_0x791d('0x13')]);return _0x3b870f(_0x1cf22b[_0x791d('0x11')][_0x791d('0x13')]);}else{logger['info']('AnalyticDefaultReport,\x20%s,\x20%s',_0xe16ea7,_0x791d('0xe'));_0x3b870f(_0x1cf22b[_0x791d('0x14')]['message']);}})[_0x791d('0x15')](function(_0xbd317a){logger['error'](_0x791d('0xd'),_0xe16ea7,_0xbd317a);_0x4cc251(_0xbd317a);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6b4a=['isAuthenticated','get','/:id','show','preview','/:id/run','run','/:id/query','query','post','update','delete','multer','util','path','connect-timeout','express','fs-extra','../../components/auth/service','../../config/environment','./analyticDefaultReport.controller'];(function(_0x3d381e,_0x2419f6){var _0x172290=function(_0x3fcedd){while(--_0x3fcedd){_0x3d381e['push'](_0x3d381e['shift']());}};_0x172290(++_0x2419f6);}(_0x6b4a,0x147));var _0xa6b4=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0x6b4a[_0x14add3];return _0x4a174f;};'use strict';var multer=require(_0xa6b4('0x0'));var util=require(_0xa6b4('0x1'));var path=require(_0xa6b4('0x2'));var timeout=require(_0xa6b4('0x3'));var express=require(_0xa6b4('0x4'));var router=express['Router']();var fs_extra=require(_0xa6b4('0x5'));var auth=require(_0xa6b4('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0xa6b4('0x7'));var controller=require(_0xa6b4('0x8'));router['get']('/',auth[_0xa6b4('0x9')](),controller['index']);router[_0xa6b4('0xa')](_0xa6b4('0xb'),auth[_0xa6b4('0x9')](),controller[_0xa6b4('0xc')]);router['get']('/:id/preview',auth[_0xa6b4('0x9')](),controller[_0xa6b4('0xd')]);router[_0xa6b4('0xa')](_0xa6b4('0xe'),auth['isAuthenticated'](),controller[_0xa6b4('0xf')]);router[_0xa6b4('0xa')](_0xa6b4('0x10'),auth[_0xa6b4('0x9')](),controller[_0xa6b4('0x11')]);router[_0xa6b4('0x12')]('/',auth[_0xa6b4('0x9')](),controller['create']);router['put'](_0xa6b4('0xb'),auth[_0xa6b4('0x9')](),controller[_0xa6b4('0x13')]);router[_0xa6b4('0x14')](_0xa6b4('0xb'),auth[_0xa6b4('0x9')](),controller['destroy']);module['exports']=router;
\ No newline at end of file
+var _0x82b7=['../../components/interaction/service','../../config/environment','get','index','isAuthenticated','show','preview','/:id/run','/:id/query','query','post','create','put','/:id','destroy','exports','multer','util','path','express','Router','fs-extra'];(function(_0x9d8122,_0x5895d3){var _0x1d5cdc=function(_0x49ab8d){while(--_0x49ab8d){_0x9d8122['push'](_0x9d8122['shift']());}};_0x1d5cdc(++_0x5895d3);}(_0x82b7,0xec));var _0x782b=function(_0x15310f,_0x9d88b7){_0x15310f=_0x15310f-0x0;var _0xe68043=_0x82b7[_0x15310f];return _0xe68043;};'use strict';var multer=require(_0x782b('0x0'));var util=require(_0x782b('0x1'));var path=require(_0x782b('0x2'));var timeout=require('connect-timeout');var express=require(_0x782b('0x3'));var router=express[_0x782b('0x4')]();var fs_extra=require(_0x782b('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0x782b('0x6'));var config=require(_0x782b('0x7'));var controller=require('./analyticDefaultReport.controller');router[_0x782b('0x8')]('/',auth['isAuthenticated'](),controller[_0x782b('0x9')]);router['get']('/:id',auth[_0x782b('0xa')](),controller[_0x782b('0xb')]);router['get']('/:id/preview',auth[_0x782b('0xa')](),controller[_0x782b('0xc')]);router[_0x782b('0x8')](_0x782b('0xd'),auth['isAuthenticated'](),controller['run']);router[_0x782b('0x8')](_0x782b('0xe'),auth[_0x782b('0xa')](),controller[_0x782b('0xf')]);router[_0x782b('0x10')]('/',auth[_0x782b('0xa')](),controller[_0x782b('0x11')]);router[_0x782b('0x12')]('/:id',auth[_0x782b('0xa')](),controller['update']);router['delete'](_0x782b('0x13'),auth[_0x782b('0xa')](),controller[_0x782b('0x14')]);module[_0x782b('0x15')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5877=['scheduled','UNSIGNED','sequelize','moment','exports','STRING','ENUM','csv','pdf','xlsx','DATE','Loading','manual'];(function(_0x24ebf0,_0x148132){var _0x22557e=function(_0x176f37){while(--_0x176f37){_0x24ebf0['push'](_0x24ebf0['shift']());}};_0x22557e(++_0x148132);}(_0x5877,0x1d6));var _0x7587=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0x5877[_0x14add3];return _0x4a174f;};'use strict';var Sequelize=require(_0x7587('0x0'));var moment=require(_0x7587('0x1'));module[_0x7587('0x2')]={'name':{'type':Sequelize[_0x7587('0x3')],'allowNull':![]},'basename':{'type':Sequelize[_0x7587('0x3')],'allowNull':![]},'output':{'type':Sequelize[_0x7587('0x4')](_0x7587('0x5'),_0x7587('0x6'),_0x7587('0x7')),'allowNull':![],'defaultValue':_0x7587('0x5')},'savename':{'type':Sequelize['STRING'],'allowNull':![]},'startDate':{'type':Sequelize[_0x7587('0x8')]},'endDate':{'type':Sequelize['DATE']},'status':{'type':Sequelize[_0x7587('0x3')],'defaultValue':_0x7587('0x9')},'type':{'type':Sequelize[_0x7587('0x4')](_0x7587('0xa'),_0x7587('0xb')),'allowNull':![],'defaultValue':'manual'},'reportId':{'type':Sequelize['INTEGER'](0xb)[_0x7587('0xc')]},'reportType':{'type':Sequelize[_0x7587('0x3')]}};
\ No newline at end of file
+var _0x5148=['UNSIGNED','sequelize','moment','STRING','ENUM','csv','pdf','DATE','Loading','manual','scheduled','INTEGER'];(function(_0xf363f0,_0x3b5eeb){var _0x55a386=function(_0x548349){while(--_0x548349){_0xf363f0['push'](_0xf363f0['shift']());}};_0x55a386(++_0x3b5eeb);}(_0x5148,0x6d));var _0x8514=function(_0x3a6772,_0x6c05d0){_0x3a6772=_0x3a6772-0x0;var _0x21a255=_0x5148[_0x3a6772];return _0x21a255;};'use strict';var Sequelize=require(_0x8514('0x0'));var moment=require(_0x8514('0x1'));module['exports']={'name':{'type':Sequelize['STRING'],'allowNull':![]},'basename':{'type':Sequelize[_0x8514('0x2')],'allowNull':![]},'output':{'type':Sequelize[_0x8514('0x3')](_0x8514('0x4'),_0x8514('0x5'),'xlsx'),'allowNull':![],'defaultValue':'csv'},'savename':{'type':Sequelize[_0x8514('0x2')],'allowNull':![]},'startDate':{'type':Sequelize['DATE']},'endDate':{'type':Sequelize[_0x8514('0x6')]},'status':{'type':Sequelize[_0x8514('0x2')],'defaultValue':_0x8514('0x7')},'type':{'type':Sequelize[_0x8514('0x3')](_0x8514('0x8'),_0x8514('0x9')),'allowNull':![],'defaultValue':_0x8514('0x8')},'reportId':{'type':Sequelize[_0x8514('0xa')](0xb)[_0x8514('0xb')]},'reportType':{'type':Sequelize[_0x8514('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x88e1=['fields','length','hasOwnProperty','order','sort','where','filters','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','catch','show','params','keys','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','ExtractedReports','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','download','basename','savename','output','existsSync','join','server/files/reports','Sequelize','ValidationError','Report\x20not\x20found\x20or\x20empty','root','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/license/hardware','api','../../config/environment','../../mysqldb','end','json','offset','undefined','limit','count','update','then','get','UserProfileResource','destroy','status','sendStatus','error','stack','name','send','index','map','AnalyticExtractedReport','rawAttributes','fieldName','type','model','query','intersection','attributes'];(function(_0x21be3c,_0x1a999d){var _0x4df067=function(_0x4885a1){while(--_0x4885a1){_0x21be3c['push'](_0x21be3c['shift']());}};_0x4df067(++_0x1a999d);}(_0x88e1,0x87));var _0x188e=function(_0x30e004,_0x46f8c2){_0x30e004=_0x30e004-0x0;var _0x5ca247=_0x88e1[_0x30e004];return _0x5ca247;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x188e('0x0'));var jsonpatch=require(_0x188e('0x1'));var rp=require(_0x188e('0x2'));var moment=require(_0x188e('0x3'));var BPromise=require(_0x188e('0x4'));var Mustache=require(_0x188e('0x5'));var util=require(_0x188e('0x6'));var path=require(_0x188e('0x7'));var sox=require(_0x188e('0x8'));var csv=require(_0x188e('0x9'));var ejs=require(_0x188e('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x188e('0xb'));var squel=require(_0x188e('0xc'));var crypto=require(_0x188e('0xd'));var jsforce=require(_0x188e('0xe'));var deskjs=require(_0x188e('0xf'));var toCsv=require(_0x188e('0x9'));var querystring=require(_0x188e('0x10'));var Papa=require(_0x188e('0x11'));var Redis=require(_0x188e('0x12'));var authService=require(_0x188e('0x13'));var qs=require(_0x188e('0x14'));var as=require(_0x188e('0x15'));var hardwareService=require(_0x188e('0x16'));var logger=require('../../config/logger')(_0x188e('0x17'));var utils=require('../../config/utils');var config=require(_0x188e('0x18'));var licenseUtil=require('../../config/license/util');var db=require(_0x188e('0x19'))['db'];function respondWithStatusCode(_0x4aada,_0x30f569){_0x30f569=_0x30f569||0xcc;return function(_0xecf3a8){if(_0xecf3a8){return _0x4aada['sendStatus'](_0x30f569);}return _0x4aada['status'](_0x30f569)[_0x188e('0x1a')]();};}function respondWithResult(_0x54997e,_0x110b36){_0x110b36=_0x110b36||0xc8;return function(_0x55c619){if(_0x55c619){return _0x54997e['status'](_0x110b36)[_0x188e('0x1b')](_0x55c619);}};}function respondWithFilteredResult(_0x212c12,_0x3894d8){return function(_0x406356){if(_0x406356){var _0x32411a=typeof _0x3894d8[_0x188e('0x1c')]===_0x188e('0x1d')&&typeof _0x3894d8[_0x188e('0x1e')]===_0x188e('0x1d');var _0x3f645d=_0x406356[_0x188e('0x1f')];var _0x4352df=_0x32411a?0x0:_0x3894d8[_0x188e('0x1c')];var _0x4ef657=_0x32411a?_0x406356['count']:_0x3894d8[_0x188e('0x1c')]+_0x3894d8[_0x188e('0x1e')];var _0x29018d;if(_0x4ef657>=_0x3f645d){_0x4ef657=_0x3f645d;_0x29018d=0xc8;}else{_0x29018d=0xce;}_0x212c12['status'](_0x29018d);return _0x212c12['set']('Content-Range',_0x4352df+'-'+_0x4ef657+'/'+_0x3f645d)[_0x188e('0x1b')](_0x406356);}return null;};}function patchUpdates(_0x5be335){return function(_0x14a836){try{jsonpatch['apply'](_0x14a836,_0x5be335,!![]);}catch(_0x568609){return BPromise['reject'](_0x568609);}return _0x14a836['save']();};}function saveUpdates(_0x42d056,_0x251522){return function(_0x561dd1){if(_0x561dd1){return _0x561dd1[_0x188e('0x20')](_0x42d056)[_0x188e('0x21')](function(_0x21d02d){return _0x21d02d;});}return null;};}function removeEntity(_0x3d8a57,_0x57defa){return function(_0x1c9784){if(_0x1c9784){return _0x1c9784['destroy']()[_0x188e('0x21')](function(){var _0x1f6726=_0x1c9784[_0x188e('0x22')]({'plain':!![]});var _0x3f10a2='ExtractedReports';return db[_0x188e('0x23')][_0x188e('0x24')]({'where':{'type':_0x3f10a2,'resourceId':_0x1f6726['id']}})[_0x188e('0x21')](function(){return _0x1c9784;});})[_0x188e('0x21')](function(){_0x3d8a57[_0x188e('0x25')](0xcc)[_0x188e('0x1a')]();});}};}function handleEntityNotFound(_0x4f7bcb,_0x4cd8f3){return function(_0xb913b4){if(!_0xb913b4){_0x4f7bcb[_0x188e('0x26')](0x194);}return _0xb913b4;};}function handleError(_0x4afedb,_0x4cae54){_0x4cae54=_0x4cae54||0x1f4;return function(_0x52c22d){logger[_0x188e('0x27')](_0x52c22d[_0x188e('0x28')]);if(_0x52c22d[_0x188e('0x29')]){delete _0x52c22d[_0x188e('0x29')];}_0x4afedb[_0x188e('0x25')](_0x4cae54)[_0x188e('0x2a')](_0x52c22d);};}exports[_0x188e('0x2b')]=function(_0x1ae74f,_0x360472){var _0x38f720={},_0x265b3e={},_0x4c35f2={'count':0x0,'rows':[]};var _0x345ddc=_[_0x188e('0x2c')](db[_0x188e('0x2d')][_0x188e('0x2e')],function(_0x2b3ddf){return{'name':_0x2b3ddf[_0x188e('0x2f')],'type':_0x2b3ddf[_0x188e('0x30')]['key']};});_0x265b3e[_0x188e('0x31')]=_[_0x188e('0x2c')](_0x345ddc,'name');_0x265b3e[_0x188e('0x32')]=_['keys'](_0x1ae74f['query']);_0x265b3e['filters']=_[_0x188e('0x33')](_0x265b3e[_0x188e('0x31')],_0x265b3e['query']);_0x38f720[_0x188e('0x34')]=_[_0x188e('0x33')](_0x265b3e[_0x188e('0x31')],qs[_0x188e('0x35')](_0x1ae74f['query'][_0x188e('0x35')]));_0x38f720['attributes']=_0x38f720[_0x188e('0x34')][_0x188e('0x36')]?_0x38f720[_0x188e('0x34')]:_0x265b3e[_0x188e('0x31')];if(!_0x1ae74f[_0x188e('0x32')][_0x188e('0x37')]('nolimit')){_0x38f720['limit']=qs[_0x188e('0x1e')](_0x1ae74f[_0x188e('0x32')][_0x188e('0x1e')]);_0x38f720['offset']=qs['offset'](_0x1ae74f[_0x188e('0x32')]['offset']);}_0x38f720[_0x188e('0x38')]=qs[_0x188e('0x39')](_0x1ae74f['query'][_0x188e('0x39')]);_0x38f720[_0x188e('0x3a')]=qs[_0x188e('0x3b')](_[_0x188e('0x3c')](_0x1ae74f['query'],_0x265b3e['filters']),_0x345ddc);if(_0x1ae74f[_0x188e('0x32')][_0x188e('0x3d')]){_0x38f720[_0x188e('0x3a')]=_[_0x188e('0x3e')](_0x38f720['where'],{'$or':_[_0x188e('0x2c')](_0x345ddc,function(_0x443e30){if(_0x443e30['type']!==_0x188e('0x3f')){var _0x40c2ec={};_0x40c2ec[_0x443e30[_0x188e('0x29')]]={'$like':'%'+_0x1ae74f[_0x188e('0x32')][_0x188e('0x3d')]+'%'};return _0x40c2ec;}})});}_0x38f720=_[_0x188e('0x3e')]({},_0x38f720,_0x1ae74f[_0x188e('0x40')]);var _0x39c404={'where':_0x38f720['where']};return db[_0x188e('0x2d')][_0x188e('0x1f')](_0x39c404)['then'](function(_0x53e549){_0x4c35f2[_0x188e('0x1f')]=_0x53e549;if(_0x1ae74f['query'][_0x188e('0x41')]){_0x38f720[_0x188e('0x42')]=[{'all':!![]}];}return db[_0x188e('0x2d')][_0x188e('0x43')](_0x38f720);})[_0x188e('0x21')](function(_0x5bc2be){_0x4c35f2['rows']=_0x5bc2be;return _0x4c35f2;})[_0x188e('0x21')](respondWithFilteredResult(_0x360472,_0x38f720))[_0x188e('0x44')](handleError(_0x360472,null));};exports[_0x188e('0x45')]=function(_0x4cadaf,_0x3363fb){var _0xcc9838={'raw':!![],'where':{'id':_0x4cadaf[_0x188e('0x46')]['id']}},_0x26117b={};_0x26117b[_0x188e('0x31')]=_[_0x188e('0x47')](db[_0x188e('0x2d')][_0x188e('0x2e')]);_0x26117b[_0x188e('0x32')]=_['keys'](_0x4cadaf['query']);_0x26117b[_0x188e('0x3b')]=_['intersection'](_0x26117b[_0x188e('0x31')],_0x26117b[_0x188e('0x32')]);_0xcc9838['attributes']=_['intersection'](_0x26117b[_0x188e('0x31')],qs[_0x188e('0x35')](_0x4cadaf[_0x188e('0x32')]['fields']));_0xcc9838['attributes']=_0xcc9838[_0x188e('0x34')][_0x188e('0x36')]?_0xcc9838[_0x188e('0x34')]:_0x26117b[_0x188e('0x31')];if(_0x4cadaf[_0x188e('0x32')]['includeAll']){_0xcc9838[_0x188e('0x42')]=[{'all':!![]}];}_0xcc9838=_[_0x188e('0x3e')]({},_0xcc9838,_0x4cadaf[_0x188e('0x40')]);return db[_0x188e('0x2d')][_0x188e('0x48')](_0xcc9838)[_0x188e('0x21')](handleEntityNotFound(_0x3363fb,null))[_0x188e('0x21')](respondWithResult(_0x3363fb,null))[_0x188e('0x44')](handleError(_0x3363fb,null));};exports[_0x188e('0x49')]=function(_0x2d05a1,_0x28429f){return db[_0x188e('0x2d')][_0x188e('0x49')](_0x2d05a1[_0x188e('0x4a')],{})['then'](function(_0x382ecb){var _0x225a81=_0x2d05a1[_0x188e('0x4b')][_0x188e('0x22')]({'plain':!![]});if(!_0x225a81)throw new Error(_0x188e('0x4c'));if(_0x225a81['role']==='user'){var _0x21e552=_0x382ecb['get']({'plain':!![]});var _0x403890=_0x188e('0x4d');return db['UserProfileSection'][_0x188e('0x48')]({'where':{'name':_0x403890,'userProfileId':_0x225a81[_0x188e('0x4e')]},'raw':!![]})['then'](function(_0x25ff39){if(_0x25ff39&&_0x25ff39['autoAssociation']===0x0){return db[_0x188e('0x23')][_0x188e('0x49')]({'name':_0x21e552[_0x188e('0x29')],'resourceId':_0x21e552['id'],'type':_0x25ff39[_0x188e('0x29')],'sectionId':_0x25ff39['id']},{})[_0x188e('0x21')](function(){return _0x382ecb;});}else{return _0x382ecb;}})[_0x188e('0x44')](function(_0x2033a4){logger[_0x188e('0x27')](_0x188e('0x4f'),_0x2033a4);throw _0x2033a4;});}return _0x382ecb;})[_0x188e('0x21')](respondWithResult(_0x28429f,0xc9))[_0x188e('0x44')](handleError(_0x28429f,null));};exports[_0x188e('0x20')]=function(_0x59d90a,_0x26ca6d){if(_0x59d90a[_0x188e('0x4a')]['id']){delete _0x59d90a[_0x188e('0x4a')]['id'];}return db[_0x188e('0x2d')]['find']({'where':{'id':_0x59d90a[_0x188e('0x46')]['id']}})[_0x188e('0x21')](handleEntityNotFound(_0x26ca6d,null))['then'](saveUpdates(_0x59d90a[_0x188e('0x4a')],null))[_0x188e('0x21')](respondWithResult(_0x26ca6d,null))['catch'](handleError(_0x26ca6d,null));};exports[_0x188e('0x24')]=function(_0x4a42d2,_0x541b3a){return db[_0x188e('0x2d')][_0x188e('0x48')]({'where':{'id':_0x4a42d2[_0x188e('0x46')]['id']}})['then'](handleEntityNotFound(_0x541b3a,null))[_0x188e('0x21')](removeEntity(_0x541b3a,null))['catch'](handleError(_0x541b3a,null));};exports[_0x188e('0x50')]=function(_0x24600d,_0x3cced7,_0x19084d){return db[_0x188e('0x2d')][_0x188e('0x48')]({'where':{'id':_0x24600d['params']['id']},'attributes':[_0x188e('0x29'),_0x188e('0x51'),_0x188e('0x52'),_0x188e('0x53')],'raw':!![]})['then'](handleEntityNotFound(_0x3cced7,null))[_0x188e('0x21')](function(_0x22a0e1){if(_0x22a0e1){if(!fs[_0x188e('0x54')](path[_0x188e('0x55')](config['root'],_0x188e('0x56'),_0x22a0e1['savename']))){throw new db[(_0x188e('0x57'))][(_0x188e('0x58'))](_0x188e('0x59'));}if(_0x24600d['query']['exists']){return _0x3cced7[_0x188e('0x26')](0xc8);}return _0x3cced7[_0x188e('0x50')](path['join'](config[_0x188e('0x5a')],_0x188e('0x56'),_0x22a0e1[_0x188e('0x52')]),util[_0x188e('0x5b')](_0x188e('0x5c'),_0x22a0e1['basename']||_0x22a0e1[_0x188e('0x29')],_0x22a0e1[_0x188e('0x53')][_0x188e('0x5d')]()));}})[_0x188e('0x44')](handleError(_0x3cced7,null));};
\ No newline at end of file
+var _0xb0ae=['../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/license/util','sendStatus','status','end','offset','undefined','limit','set','json','apply','reject','save','destroy','UserProfileResource','then','error','stack','name','index','map','AnalyticExtractedReport','rawAttributes','fieldName','key','model','query','keys','filters','intersection','fields','attributes','length','nolimit','sort','pick','where','merge','type','VIRTUAL','options','count','includeAll','include','findAll','rows','params','find','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','ExtractedReports','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','catch','update','basename','savename','output','existsSync','join','root','server/files/reports','Sequelize','Report\x20not\x20found\x20or\x20empty','exists','download','%s.%s','toLowerCase','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','fs-extra','lodash','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service'];(function(_0x541e49,_0x1c10e8){var _0x48b9f6=function(_0x1b720b){while(--_0x1b720b){_0x541e49['push'](_0x541e49['shift']());}};_0x48b9f6(++_0x1c10e8);}(_0xb0ae,0xa9));var _0xeb0a=function(_0x101570,_0x182a71){_0x101570=_0x101570-0x0;var _0x4853f0=_0xb0ae[_0x101570];return _0x4853f0;};'use strict';var emlformat=require(_0xeb0a('0x0'));var rimraf=require(_0xeb0a('0x1'));var zipdir=require(_0xeb0a('0x2'));var jsonpatch=require(_0xeb0a('0x3'));var rp=require(_0xeb0a('0x4'));var moment=require(_0xeb0a('0x5'));var BPromise=require(_0xeb0a('0x6'));var Mustache=require(_0xeb0a('0x7'));var util=require('util');var path=require(_0xeb0a('0x8'));var sox=require(_0xeb0a('0x9'));var csv=require(_0xeb0a('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xeb0a('0xb'));var _=require(_0xeb0a('0xc'));var squel=require('squel');var crypto=require(_0xeb0a('0xd'));var jsforce=require(_0xeb0a('0xe'));var deskjs=require(_0xeb0a('0xf'));var toCsv=require(_0xeb0a('0xa'));var querystring=require(_0xeb0a('0x10'));var Papa=require('papaparse');var Redis=require(_0xeb0a('0x11'));var authService=require(_0xeb0a('0x12'));var qs=require(_0xeb0a('0x13'));var as=require(_0xeb0a('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xeb0a('0x15'))('api');var utils=require(_0xeb0a('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0xeb0a('0x17'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x15dceb,_0x3412d3){_0x3412d3=_0x3412d3||0xcc;return function(_0x325200){if(_0x325200){return _0x15dceb[_0xeb0a('0x18')](_0x3412d3);}return _0x15dceb[_0xeb0a('0x19')](_0x3412d3)[_0xeb0a('0x1a')]();};}function respondWithResult(_0x4ee5af,_0x4625d1){_0x4625d1=_0x4625d1||0xc8;return function(_0x5ad20a){if(_0x5ad20a){return _0x4ee5af['status'](_0x4625d1)['json'](_0x5ad20a);}};}function respondWithFilteredResult(_0x1e0959,_0x4c587d){return function(_0x4bb0a8){if(_0x4bb0a8){var _0x318695=typeof _0x4c587d[_0xeb0a('0x1b')]===_0xeb0a('0x1c')&&typeof _0x4c587d[_0xeb0a('0x1d')]===_0xeb0a('0x1c');var _0x1a5c8e=_0x4bb0a8['count'];var _0x29de16=_0x318695?0x0:_0x4c587d[_0xeb0a('0x1b')];var _0x422822=_0x318695?_0x4bb0a8['count']:_0x4c587d[_0xeb0a('0x1b')]+_0x4c587d['limit'];var _0xdc31ec;if(_0x422822>=_0x1a5c8e){_0x422822=_0x1a5c8e;_0xdc31ec=0xc8;}else{_0xdc31ec=0xce;}_0x1e0959['status'](_0xdc31ec);return _0x1e0959[_0xeb0a('0x1e')]('Content-Range',_0x29de16+'-'+_0x422822+'/'+_0x1a5c8e)[_0xeb0a('0x1f')](_0x4bb0a8);}return null;};}function patchUpdates(_0x3ded8b){return function(_0x1de64){try{jsonpatch[_0xeb0a('0x20')](_0x1de64,_0x3ded8b,!![]);}catch(_0x554523){return BPromise[_0xeb0a('0x21')](_0x554523);}return _0x1de64[_0xeb0a('0x22')]();};}function saveUpdates(_0xa9fbf,_0x328e21){return function(_0x2d42f5){if(_0x2d42f5){return _0x2d42f5['update'](_0xa9fbf)['then'](function(_0x1b9e2a){return _0x1b9e2a;});}return null;};}function removeEntity(_0x9873c,_0x4ba0b7){return function(_0x1b9b6a){if(_0x1b9b6a){return _0x1b9b6a[_0xeb0a('0x23')]()['then'](function(){var _0x31bfcc=_0x1b9b6a['get']({'plain':!![]});var _0x5c5ea5='ExtractedReports';return db[_0xeb0a('0x24')][_0xeb0a('0x23')]({'where':{'type':_0x5c5ea5,'resourceId':_0x31bfcc['id']}})[_0xeb0a('0x25')](function(){return _0x1b9b6a;});})[_0xeb0a('0x25')](function(){_0x9873c[_0xeb0a('0x19')](0xcc)[_0xeb0a('0x1a')]();});}};}function handleEntityNotFound(_0x484c99,_0xe8ec2b){return function(_0xc027a1){if(!_0xc027a1){_0x484c99[_0xeb0a('0x18')](0x194);}return _0xc027a1;};}function handleError(_0x2cfb07,_0xddb4b2){_0xddb4b2=_0xddb4b2||0x1f4;return function(_0x300569){logger[_0xeb0a('0x26')](_0x300569[_0xeb0a('0x27')]);if(_0x300569[_0xeb0a('0x28')]){delete _0x300569['name'];}_0x2cfb07[_0xeb0a('0x19')](_0xddb4b2)['send'](_0x300569);};}exports[_0xeb0a('0x29')]=function(_0x41f210,_0x477826){var _0x451753={},_0x4b5409={},_0x5d41c8={'count':0x0,'rows':[]};var _0x1ec2e0=_[_0xeb0a('0x2a')](db[_0xeb0a('0x2b')][_0xeb0a('0x2c')],function(_0x40b4d4){return{'name':_0x40b4d4[_0xeb0a('0x2d')],'type':_0x40b4d4['type'][_0xeb0a('0x2e')]};});_0x4b5409[_0xeb0a('0x2f')]=_[_0xeb0a('0x2a')](_0x1ec2e0,_0xeb0a('0x28'));_0x4b5409[_0xeb0a('0x30')]=_[_0xeb0a('0x31')](_0x41f210['query']);_0x4b5409[_0xeb0a('0x32')]=_[_0xeb0a('0x33')](_0x4b5409[_0xeb0a('0x2f')],_0x4b5409['query']);_0x451753['attributes']=_[_0xeb0a('0x33')](_0x4b5409['model'],qs[_0xeb0a('0x34')](_0x41f210[_0xeb0a('0x30')][_0xeb0a('0x34')]));_0x451753[_0xeb0a('0x35')]=_0x451753['attributes'][_0xeb0a('0x36')]?_0x451753['attributes']:_0x4b5409[_0xeb0a('0x2f')];if(!_0x41f210[_0xeb0a('0x30')]['hasOwnProperty'](_0xeb0a('0x37'))){_0x451753['limit']=qs[_0xeb0a('0x1d')](_0x41f210[_0xeb0a('0x30')][_0xeb0a('0x1d')]);_0x451753[_0xeb0a('0x1b')]=qs[_0xeb0a('0x1b')](_0x41f210[_0xeb0a('0x30')]['offset']);}_0x451753['order']=qs[_0xeb0a('0x38')](_0x41f210[_0xeb0a('0x30')][_0xeb0a('0x38')]);_0x451753['where']=qs[_0xeb0a('0x32')](_[_0xeb0a('0x39')](_0x41f210['query'],_0x4b5409[_0xeb0a('0x32')]),_0x1ec2e0);if(_0x41f210[_0xeb0a('0x30')]['filter']){_0x451753[_0xeb0a('0x3a')]=_[_0xeb0a('0x3b')](_0x451753[_0xeb0a('0x3a')],{'$or':_['map'](_0x1ec2e0,function(_0x4faf87){if(_0x4faf87[_0xeb0a('0x3c')]!==_0xeb0a('0x3d')){var _0x585c54={};_0x585c54[_0x4faf87['name']]={'$like':'%'+_0x41f210[_0xeb0a('0x30')]['filter']+'%'};return _0x585c54;}})});}_0x451753=_[_0xeb0a('0x3b')]({},_0x451753,_0x41f210[_0xeb0a('0x3e')]);var _0x3d807d={'where':_0x451753[_0xeb0a('0x3a')]};return db[_0xeb0a('0x2b')][_0xeb0a('0x3f')](_0x3d807d)[_0xeb0a('0x25')](function(_0x460c96){_0x5d41c8[_0xeb0a('0x3f')]=_0x460c96;if(_0x41f210[_0xeb0a('0x30')][_0xeb0a('0x40')]){_0x451753[_0xeb0a('0x41')]=[{'all':!![]}];}return db['AnalyticExtractedReport'][_0xeb0a('0x42')](_0x451753);})[_0xeb0a('0x25')](function(_0x5c564e){_0x5d41c8[_0xeb0a('0x43')]=_0x5c564e;return _0x5d41c8;})['then'](respondWithFilteredResult(_0x477826,_0x451753))['catch'](handleError(_0x477826,null));};exports['show']=function(_0x4a9123,_0x289e83){var _0x33f09e={'raw':!![],'where':{'id':_0x4a9123[_0xeb0a('0x44')]['id']}},_0x53b34b={};_0x53b34b[_0xeb0a('0x2f')]=_[_0xeb0a('0x31')](db[_0xeb0a('0x2b')][_0xeb0a('0x2c')]);_0x53b34b[_0xeb0a('0x30')]=_[_0xeb0a('0x31')](_0x4a9123[_0xeb0a('0x30')]);_0x53b34b[_0xeb0a('0x32')]=_[_0xeb0a('0x33')](_0x53b34b['model'],_0x53b34b[_0xeb0a('0x30')]);_0x33f09e['attributes']=_[_0xeb0a('0x33')](_0x53b34b[_0xeb0a('0x2f')],qs[_0xeb0a('0x34')](_0x4a9123['query'][_0xeb0a('0x34')]));_0x33f09e[_0xeb0a('0x35')]=_0x33f09e[_0xeb0a('0x35')][_0xeb0a('0x36')]?_0x33f09e['attributes']:_0x53b34b[_0xeb0a('0x2f')];if(_0x4a9123[_0xeb0a('0x30')][_0xeb0a('0x40')]){_0x33f09e[_0xeb0a('0x41')]=[{'all':!![]}];}_0x33f09e=_[_0xeb0a('0x3b')]({},_0x33f09e,_0x4a9123[_0xeb0a('0x3e')]);return db[_0xeb0a('0x2b')][_0xeb0a('0x45')](_0x33f09e)[_0xeb0a('0x25')](handleEntityNotFound(_0x289e83,null))[_0xeb0a('0x25')](respondWithResult(_0x289e83,null))['catch'](handleError(_0x289e83,null));};exports[_0xeb0a('0x46')]=function(_0x3f9245,_0x5c8012){return db[_0xeb0a('0x2b')][_0xeb0a('0x46')](_0x3f9245[_0xeb0a('0x47')],{})['then'](function(_0x2fc4d4){var _0x21bbe7=_0x3f9245[_0xeb0a('0x48')][_0xeb0a('0x49')]({'plain':!![]});if(!_0x21bbe7)throw new Error(_0xeb0a('0x4a'));if(_0x21bbe7[_0xeb0a('0x4b')]===_0xeb0a('0x48')){var _0x270975=_0x2fc4d4[_0xeb0a('0x49')]({'plain':!![]});var _0x32aa21=_0xeb0a('0x4c');return db['UserProfileSection'][_0xeb0a('0x45')]({'where':{'name':_0x32aa21,'userProfileId':_0x21bbe7['userProfileId']},'raw':!![]})[_0xeb0a('0x25')](function(_0x2bfeed){if(_0x2bfeed&&_0x2bfeed[_0xeb0a('0x4d')]===0x0){return db['UserProfileResource'][_0xeb0a('0x46')]({'name':_0x270975[_0xeb0a('0x28')],'resourceId':_0x270975['id'],'type':_0x2bfeed['name'],'sectionId':_0x2bfeed['id']},{})['then'](function(){return _0x2fc4d4;});}else{return _0x2fc4d4;}})['catch'](function(_0x209422){logger[_0xeb0a('0x26')](_0xeb0a('0x4e'),_0x209422);throw _0x209422;});}return _0x2fc4d4;})['then'](respondWithResult(_0x5c8012,0xc9))[_0xeb0a('0x4f')](handleError(_0x5c8012,null));};exports[_0xeb0a('0x50')]=function(_0x1ee4d0,_0x13b4aa){if(_0x1ee4d0['body']['id']){delete _0x1ee4d0[_0xeb0a('0x47')]['id'];}return db[_0xeb0a('0x2b')]['find']({'where':{'id':_0x1ee4d0[_0xeb0a('0x44')]['id']}})[_0xeb0a('0x25')](handleEntityNotFound(_0x13b4aa,null))['then'](saveUpdates(_0x1ee4d0[_0xeb0a('0x47')],null))[_0xeb0a('0x25')](respondWithResult(_0x13b4aa,null))[_0xeb0a('0x4f')](handleError(_0x13b4aa,null));};exports['destroy']=function(_0x14f37c,_0x386b78){return db[_0xeb0a('0x2b')][_0xeb0a('0x45')]({'where':{'id':_0x14f37c[_0xeb0a('0x44')]['id']}})[_0xeb0a('0x25')](handleEntityNotFound(_0x386b78,null))[_0xeb0a('0x25')](removeEntity(_0x386b78,null))[_0xeb0a('0x4f')](handleError(_0x386b78,null));};exports['download']=function(_0xc3c459,_0x78d9d5,_0x5b160b){return db[_0xeb0a('0x2b')][_0xeb0a('0x45')]({'where':{'id':_0xc3c459['params']['id']},'attributes':[_0xeb0a('0x28'),_0xeb0a('0x51'),_0xeb0a('0x52'),_0xeb0a('0x53')],'raw':!![]})[_0xeb0a('0x25')](handleEntityNotFound(_0x78d9d5,null))[_0xeb0a('0x25')](function(_0xd865e0){if(_0xd865e0){if(!fs[_0xeb0a('0x54')](path[_0xeb0a('0x55')](config[_0xeb0a('0x56')],_0xeb0a('0x57'),_0xd865e0[_0xeb0a('0x52')]))){throw new db[(_0xeb0a('0x58'))]['ValidationError'](_0xeb0a('0x59'));}if(_0xc3c459['query'][_0xeb0a('0x5a')]){return _0x78d9d5[_0xeb0a('0x18')](0xc8);}return _0x78d9d5[_0xeb0a('0x5b')](path['join'](config['root'],_0xeb0a('0x57'),_0xd865e0[_0xeb0a('0x52')]),util['format'](_0xeb0a('0x5c'),_0xd865e0[_0xeb0a('0x51')]||_0xd865e0[_0xeb0a('0x28')],_0xd865e0[_0xeb0a('0x53')][_0xeb0a('0x5d')]()));}})[_0xeb0a('0x4f')](handleError(_0x78d9d5,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x64fb=['./analyticExtractedReport.attributes','exports','analytics_extracted_reports','lodash','util','../../config/logger','moment','bluebird','rimraf','../../config/environment'];(function(_0x72933a,_0x421b27){var _0x1b7ab3=function(_0x37d850){while(--_0x37d850){_0x72933a['push'](_0x72933a['shift']());}};_0x1b7ab3(++_0x421b27);}(_0x64fb,0x1c5));var _0xb64f=function(_0x1e2d74,_0x516214){_0x1e2d74=_0x1e2d74-0x0;var _0x108017=_0x64fb[_0x1e2d74];return _0x108017;};'use strict';var _=require(_0xb64f('0x0'));var util=require(_0xb64f('0x1'));var logger=require(_0xb64f('0x2'))('api');var moment=require(_0xb64f('0x3'));var BPromise=require(_0xb64f('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0xb64f('0x5'));var config=require(_0xb64f('0x6'));var attributes=require(_0xb64f('0x7'));module[_0xb64f('0x8')]=function(_0x386872,_0x84a963){return _0x386872['define']('AnalyticExtractedReport',attributes,{'tableName':_0xb64f('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x18d7=['analytics_extracted_reports','lodash','util','../../config/logger','moment','bluebird','request-promise','path','rimraf','../../config/environment','./analyticExtractedReport.attributes','define'];(function(_0xcf2aa7,_0x3084c9){var _0x588447=function(_0x356fd4){while(--_0x356fd4){_0xcf2aa7['push'](_0xcf2aa7['shift']());}};_0x588447(++_0x3084c9);}(_0x18d7,0x1bd));var _0x718d=function(_0x1182bd,_0x52ebf2){_0x1182bd=_0x1182bd-0x0;var _0x5c868b=_0x18d7[_0x1182bd];return _0x5c868b;};'use strict';var _=require(_0x718d('0x0'));var util=require(_0x718d('0x1'));var logger=require(_0x718d('0x2'))('api');var moment=require(_0x718d('0x3'));var BPromise=require(_0x718d('0x4'));var rp=require(_0x718d('0x5'));var fs=require('fs');var path=require(_0x718d('0x6'));var rimraf=require(_0x718d('0x7'));var config=require(_0x718d('0x8'));var attributes=require(_0x718d('0x9'));module['exports']=function(_0x1e1c9b,_0x1b2f4b){return _0x1e1c9b[_0x718d('0xa')]('AnalyticExtractedReport',attributes,{'tableName':_0x718d('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5bc9=['AnalyticExtractedReport,\x20%s,\x20%s,\x20%s','request\x20sent','error','code','AnalyticExtractedReport,\x20%s,\x20%s','message','info','result','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','then','debug'];(function(_0x2e88f7,_0x184c9a){var _0xa1f957=function(_0x45c575){while(--_0x45c575){_0x2e88f7['push'](_0x2e88f7['shift']());}};_0xa1f957(++_0x184c9a);}(_0x5bc9,0x1ac));var _0x95bc=function(_0x10a5d7,_0x54ef7c){_0x10a5d7=_0x10a5d7-0x0;var _0x31578b=_0x5bc9[_0x10a5d7];return _0x31578b;};'use strict';var _=require('lodash');var util=require(_0x95bc('0x0'));var moment=require(_0x95bc('0x1'));var BPromise=require(_0x95bc('0x2'));var rs=require(_0x95bc('0x3'));var fs=require('fs');var Redis=require(_0x95bc('0x4'));var db=require(_0x95bc('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0x95bc('0x6'))(_0x95bc('0x7'));var config=require(_0x95bc('0x8'));var jayson=require(_0x95bc('0x9'));var client=jayson[_0x95bc('0xa')]['http']({'port':0x232a});function respondWithRpcPromise(_0x218819,_0x5a6b0d,_0x5c9bd4){return new BPromise(function(_0xd391f0,_0x39fda0){return client['request'](_0x218819,_0x5c9bd4)[_0x95bc('0xb')](function(_0x5e1f7e){logger['info']('AnalyticExtractedReport,\x20%s,\x20%s',_0x5a6b0d,'request\x20sent');logger[_0x95bc('0xc')](_0x95bc('0xd'),_0x5a6b0d,_0x95bc('0xe'),JSON['stringify'](_0x5e1f7e));if(_0x5e1f7e[_0x95bc('0xf')]){if(_0x5e1f7e[_0x95bc('0xf')][_0x95bc('0x10')]===0x1f4){logger[_0x95bc('0xf')](_0x95bc('0x11'),_0x5a6b0d,_0x5e1f7e[_0x95bc('0xf')][_0x95bc('0x12')]);return _0x39fda0(_0x5e1f7e[_0x95bc('0xf')][_0x95bc('0x12')]);}logger['error'](_0x95bc('0x11'),_0x5a6b0d,_0x5e1f7e[_0x95bc('0xf')][_0x95bc('0x12')]);return _0xd391f0(_0x5e1f7e[_0x95bc('0xf')][_0x95bc('0x12')]);}else{logger[_0x95bc('0x13')]('AnalyticExtractedReport,\x20%s,\x20%s',_0x5a6b0d,_0x95bc('0xe'));_0xd391f0(_0x5e1f7e[_0x95bc('0x14')][_0x95bc('0x12')]);}})['catch'](function(_0x36db43){logger[_0x95bc('0xf')]('AnalyticExtractedReport,\x20%s,\x20%s',_0x5a6b0d,_0x36db43);_0x39fda0(_0x36db43);});});}
\ No newline at end of file
+var _0x9e2a=['error','AnalyticExtractedReport,\x20%s,\x20%s','message','catch','lodash','ioredis','../../mysqldb','../../config/utils','../../config/logger','client','http','request','info','request\x20sent','debug','AnalyticExtractedReport,\x20%s,\x20%s,\x20%s','stringify'];(function(_0xdbe2de,_0x3bdc5a){var _0x2facd7=function(_0x50df58){while(--_0x50df58){_0xdbe2de['push'](_0xdbe2de['shift']());}};_0x2facd7(++_0x3bdc5a);}(_0x9e2a,0xe1));var _0xa9e2=function(_0x23c7f7,_0x55e521){_0x23c7f7=_0x23c7f7-0x0;var _0x542f1d=_0x9e2a[_0x23c7f7];return _0x542f1d;};'use strict';var _=require(_0xa9e2('0x0'));var util=require('util');var moment=require('moment');var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xa9e2('0x1'));var db=require(_0xa9e2('0x2'))['db'];var utils=require(_0xa9e2('0x3'));var logger=require(_0xa9e2('0x4'))('rpc');var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0xa9e2('0x5')][_0xa9e2('0x6')]({'port':0x232a});function respondWithRpcPromise(_0xde042e,_0x205f5c,_0x2d2bd1){return new BPromise(function(_0x30b222,_0x5c0af8){return client[_0xa9e2('0x7')](_0xde042e,_0x2d2bd1)['then'](function(_0x5e44d6){logger[_0xa9e2('0x8')]('AnalyticExtractedReport,\x20%s,\x20%s',_0x205f5c,_0xa9e2('0x9'));logger[_0xa9e2('0xa')](_0xa9e2('0xb'),_0x205f5c,'request\x20sent',JSON[_0xa9e2('0xc')](_0x5e44d6));if(_0x5e44d6[_0xa9e2('0xd')]){if(_0x5e44d6[_0xa9e2('0xd')]['code']===0x1f4){logger[_0xa9e2('0xd')](_0xa9e2('0xe'),_0x205f5c,_0x5e44d6[_0xa9e2('0xd')][_0xa9e2('0xf')]);return _0x5c0af8(_0x5e44d6[_0xa9e2('0xd')][_0xa9e2('0xf')]);}logger[_0xa9e2('0xd')](_0xa9e2('0xe'),_0x205f5c,_0x5e44d6[_0xa9e2('0xd')][_0xa9e2('0xf')]);return _0x30b222(_0x5e44d6['error'][_0xa9e2('0xf')]);}else{logger['info']('AnalyticExtractedReport,\x20%s,\x20%s',_0x205f5c,_0xa9e2('0x9'));_0x30b222(_0x5e44d6['result']['message']);}})[_0xa9e2('0x10')](function(_0x2deaed){logger[_0xa9e2('0xd')](_0xa9e2('0xe'),_0x205f5c,_0x2deaed);_0x5c0af8(_0x2deaed);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfcc0=['update','delete','destroy','exports','multer','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','show','/:id/download','download','post','/:id'];(function(_0xbd08b4,_0x4790ed){var _0x314f1e=function(_0x161589){while(--_0x161589){_0xbd08b4['push'](_0xbd08b4['shift']());}};_0x314f1e(++_0x4790ed);}(_0xfcc0,0x108));var _0x0fcc=function(_0x2113f8,_0x3c4c77){_0x2113f8=_0x2113f8-0x0;var _0x10a531=_0xfcc0[_0x2113f8];return _0x10a531;};'use strict';var multer=require(_0x0fcc('0x0'));var util=require('util');var path=require(_0x0fcc('0x1'));var timeout=require(_0x0fcc('0x2'));var express=require(_0x0fcc('0x3'));var router=express[_0x0fcc('0x4')]();var fs_extra=require(_0x0fcc('0x5'));var auth=require(_0x0fcc('0x6'));var interaction=require(_0x0fcc('0x7'));var config=require(_0x0fcc('0x8'));var controller=require('./analyticExtractedReport.controller');router[_0x0fcc('0x9')]('/',auth[_0x0fcc('0xa')](),controller['index']);router[_0x0fcc('0x9')]('/:id',auth[_0x0fcc('0xa')](),controller[_0x0fcc('0xb')]);router[_0x0fcc('0x9')](_0x0fcc('0xc'),auth[_0x0fcc('0xa')](),controller[_0x0fcc('0xd')]);router[_0x0fcc('0xe')]('/',auth[_0x0fcc('0xa')](),controller['create']);router['put'](_0x0fcc('0xf'),auth[_0x0fcc('0xa')](),controller[_0x0fcc('0x10')]);router[_0x0fcc('0x11')](_0x0fcc('0xf'),auth['isAuthenticated'](),controller[_0x0fcc('0x12')]);module[_0x0fcc('0x13')]=router;
\ No newline at end of file
+var _0x51fa=['post','create','put','exports','multer','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./analyticExtractedReport.controller','get','isAuthenticated','/:id','show','/:id/download','download'];(function(_0x28d18d,_0x55896b){var _0x470640=function(_0x57e78b){while(--_0x57e78b){_0x28d18d['push'](_0x28d18d['shift']());}};_0x470640(++_0x55896b);}(_0x51fa,0xd5));var _0xa51f=function(_0x3165f2,_0x3da47e){_0x3165f2=_0x3165f2-0x0;var _0x36dd73=_0x51fa[_0x3165f2];return _0x36dd73;};'use strict';var multer=require(_0xa51f('0x0'));var util=require('util');var path=require(_0xa51f('0x1'));var timeout=require(_0xa51f('0x2'));var express=require(_0xa51f('0x3'));var router=express[_0xa51f('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0xa51f('0x5'));var interaction=require(_0xa51f('0x6'));var config=require(_0xa51f('0x7'));var controller=require(_0xa51f('0x8'));router[_0xa51f('0x9')]('/',auth[_0xa51f('0xa')](),controller['index']);router[_0xa51f('0x9')](_0xa51f('0xb'),auth[_0xa51f('0xa')](),controller[_0xa51f('0xc')]);router[_0xa51f('0x9')](_0xa51f('0xd'),auth[_0xa51f('0xa')](),controller[_0xa51f('0xe')]);router[_0xa51f('0xf')]('/',auth['isAuthenticated'](),controller[_0xa51f('0x10')]);router[_0xa51f('0x11')](_0xa51f('0xb'),auth['isAuthenticated'](),controller['update']);router['delete'](_0xa51f('0xb'),auth['isAuthenticated'](),controller['destroy']);module[_0xa51f('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x031b=['TEXT','STRING','BOOLEAN','exports'];(function(_0x55e28f,_0x20cedb){var _0xee48e9=function(_0x1de3df){while(--_0x1de3df){_0x55e28f['push'](_0x55e28f['shift']());}};_0xee48e9(++_0x20cedb);}(_0x031b,0x1bb));var _0xb031=function(_0x4db6ef,_0x675d99){_0x4db6ef=_0x4db6ef-0x0;var _0x334f77=_0x031b[_0x4db6ef];return _0x334f77;};'use strict';var Sequelize=require('sequelize');module[_0xb031('0x0')]={'field':{'type':Sequelize[_0xb031('0x1')]},'alias':{'type':Sequelize[_0xb031('0x2')]},'function':{'type':Sequelize[_0xb031('0x2')]},'format':{'type':Sequelize[_0xb031('0x2')]},'groupBy':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'orderBy':{'type':Sequelize[_0xb031('0x2')]},'custom':{'type':Sequelize[_0xb031('0x3')],'defaultValue':![]}};
\ No newline at end of file
+var _0x007e=['TEXT','STRING','BOOLEAN','sequelize','exports'];(function(_0x1943d9,_0x245bb8){var _0x4b4f3f=function(_0x3bba90){while(--_0x3bba90){_0x1943d9['push'](_0x1943d9['shift']());}};_0x4b4f3f(++_0x245bb8);}(_0x007e,0xee));var _0xe007=function(_0x4472e0,_0x527816){_0x4472e0=_0x4472e0-0x0;var _0x20739f=_0x007e[_0x4472e0];return _0x20739f;};'use strict';var Sequelize=require(_0xe007('0x0'));module[_0xe007('0x1')]={'field':{'type':Sequelize[_0xe007('0x2')]},'alias':{'type':Sequelize[_0xe007('0x3')]},'function':{'type':Sequelize[_0xe007('0x3')]},'format':{'type':Sequelize[_0xe007('0x3')]},'groupBy':{'type':Sequelize[_0xe007('0x4')],'defaultValue':![]},'orderBy':{'type':Sequelize[_0xe007('0x3')]},'custom':{'type':Sequelize[_0xe007('0x4')],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x56e6=['merge','type','options','count','includeAll','include','findAll','rows','show','params','length','find','catch','create','bulkCreate','body','ids','addFields','AnalyticCustomReport','findOne','sequelize','CustomReportId','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','limit','set','Content-Range','apply','reject','update','then','destroy','error','stack','send','index','AnalyticFieldReport','rawAttributes','fieldName','model','map','name','keys','filters','intersection','query','fields','attributes','hasOwnProperty','nolimit','sort','where','pick','filter'];(function(_0x8854f2,_0x79542c){var _0x38505d=function(_0x5af02b){while(--_0x5af02b){_0x8854f2['push'](_0x8854f2['shift']());}};_0x38505d(++_0x79542c);}(_0x56e6,0x6b));var _0x656e=function(_0x14e4fd,_0x1f2655){_0x14e4fd=_0x14e4fd-0x0;var _0x5ca430=_0x56e6[_0x14e4fd];return _0x5ca430;};'use strict';var emlformat=require(_0x656e('0x0'));var rimraf=require(_0x656e('0x1'));var zipdir=require(_0x656e('0x2'));var jsonpatch=require(_0x656e('0x3'));var rp=require(_0x656e('0x4'));var moment=require(_0x656e('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x656e('0x6'));var util=require(_0x656e('0x7'));var path=require(_0x656e('0x8'));var sox=require(_0x656e('0x9'));var csv=require(_0x656e('0xa'));var ejs=require(_0x656e('0xb'));var fs=require('fs');var fs_extra=require(_0x656e('0xc'));var _=require('lodash');var squel=require(_0x656e('0xd'));var crypto=require(_0x656e('0xe'));var jsforce=require(_0x656e('0xf'));var deskjs=require(_0x656e('0x10'));var toCsv=require(_0x656e('0xa'));var querystring=require(_0x656e('0x11'));var Papa=require(_0x656e('0x12'));var Redis=require(_0x656e('0x13'));var authService=require(_0x656e('0x14'));var qs=require(_0x656e('0x15'));var as=require(_0x656e('0x16'));var hardwareService=require(_0x656e('0x17'));var logger=require(_0x656e('0x18'))(_0x656e('0x19'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x656e('0x1a'));var db=require(_0x656e('0x1b'))['db'];function respondWithStatusCode(_0x3cb3c8,_0x460aad){_0x460aad=_0x460aad||0xcc;return function(_0x581525){if(_0x581525){return _0x3cb3c8['sendStatus'](_0x460aad);}return _0x3cb3c8[_0x656e('0x1c')](_0x460aad)[_0x656e('0x1d')]();};}function respondWithResult(_0x53699e,_0x230249){_0x230249=_0x230249||0xc8;return function(_0x5059d9){if(_0x5059d9){return _0x53699e[_0x656e('0x1c')](_0x230249)[_0x656e('0x1e')](_0x5059d9);}};}function respondWithFilteredResult(_0x2a52f7,_0x1f839f){return function(_0x5a1fc3){if(_0x5a1fc3){var _0x3ab51b=typeof _0x1f839f[_0x656e('0x1f')]===_0x656e('0x20')&&typeof _0x1f839f[_0x656e('0x21')]===_0x656e('0x20');var _0x4fd12e=_0x5a1fc3['count'];var _0x526b83=_0x3ab51b?0x0:_0x1f839f[_0x656e('0x1f')];var _0x1b0fdd=_0x3ab51b?_0x5a1fc3['count']:_0x1f839f[_0x656e('0x1f')]+_0x1f839f['limit'];var _0x495f60;if(_0x1b0fdd>=_0x4fd12e){_0x1b0fdd=_0x4fd12e;_0x495f60=0xc8;}else{_0x495f60=0xce;}_0x2a52f7['status'](_0x495f60);return _0x2a52f7[_0x656e('0x22')](_0x656e('0x23'),_0x526b83+'-'+_0x1b0fdd+'/'+_0x4fd12e)[_0x656e('0x1e')](_0x5a1fc3);}return null;};}function patchUpdates(_0x141587){return function(_0x5532ee){try{jsonpatch[_0x656e('0x24')](_0x5532ee,_0x141587,!![]);}catch(_0x543338){return BPromise[_0x656e('0x25')](_0x543338);}return _0x5532ee['save']();};}function saveUpdates(_0x159e42,_0x1acca5){return function(_0x19ab77){if(_0x19ab77){return _0x19ab77[_0x656e('0x26')](_0x159e42)[_0x656e('0x27')](function(_0x38ea02){return _0x38ea02;});}return null;};}function removeEntity(_0x382a5f,_0x57ac6c){return function(_0x44551b){if(_0x44551b){return _0x44551b[_0x656e('0x28')]()['then'](function(){_0x382a5f['status'](0xcc)[_0x656e('0x1d')]();});}};}function handleEntityNotFound(_0x517021,_0x33fb09){return function(_0x5b492e){if(!_0x5b492e){_0x517021['sendStatus'](0x194);}return _0x5b492e;};}function handleError(_0xa834a5,_0x4e2a80){_0x4e2a80=_0x4e2a80||0x1f4;return function(_0x26870d){logger[_0x656e('0x29')](_0x26870d[_0x656e('0x2a')]);if(_0x26870d['name']){delete _0x26870d['name'];}_0xa834a5[_0x656e('0x1c')](_0x4e2a80)[_0x656e('0x2b')](_0x26870d);};}exports[_0x656e('0x2c')]=function(_0x469acf,_0xc2a01){var _0x264e88={},_0xfece84={},_0x58181e={'count':0x0,'rows':[]};var _0x84d034=_['map'](db[_0x656e('0x2d')][_0x656e('0x2e')],function(_0x58cf11){return{'name':_0x58cf11[_0x656e('0x2f')],'type':_0x58cf11['type']['key']};});_0xfece84[_0x656e('0x30')]=_[_0x656e('0x31')](_0x84d034,_0x656e('0x32'));_0xfece84['query']=_[_0x656e('0x33')](_0x469acf['query']);_0xfece84[_0x656e('0x34')]=_[_0x656e('0x35')](_0xfece84['model'],_0xfece84[_0x656e('0x36')]);_0x264e88['attributes']=_['intersection'](_0xfece84[_0x656e('0x30')],qs['fields'](_0x469acf[_0x656e('0x36')][_0x656e('0x37')]));_0x264e88[_0x656e('0x38')]=_0x264e88[_0x656e('0x38')]['length']?_0x264e88['attributes']:_0xfece84[_0x656e('0x30')];if(!_0x469acf['query'][_0x656e('0x39')](_0x656e('0x3a'))){_0x264e88[_0x656e('0x21')]=qs[_0x656e('0x21')](_0x469acf[_0x656e('0x36')][_0x656e('0x21')]);_0x264e88['offset']=qs['offset'](_0x469acf['query']['offset']);}_0x264e88['order']=qs[_0x656e('0x3b')](_0x469acf['query']['sort']);_0x264e88[_0x656e('0x3c')]=qs[_0x656e('0x34')](_[_0x656e('0x3d')](_0x469acf[_0x656e('0x36')],_0xfece84[_0x656e('0x34')]),_0x84d034);if(_0x469acf[_0x656e('0x36')][_0x656e('0x3e')]){_0x264e88[_0x656e('0x3c')]=_[_0x656e('0x3f')](_0x264e88[_0x656e('0x3c')],{'$or':_[_0x656e('0x31')](_0x84d034,function(_0x46306a){if(_0x46306a[_0x656e('0x40')]!=='VIRTUAL'){var _0x3c1a70={};_0x3c1a70[_0x46306a['name']]={'$like':'%'+_0x469acf['query'][_0x656e('0x3e')]+'%'};return _0x3c1a70;}})});}_0x264e88=_[_0x656e('0x3f')]({},_0x264e88,_0x469acf[_0x656e('0x41')]);var _0x5cd5e9={'where':_0x264e88['where']};return db['AnalyticFieldReport'][_0x656e('0x42')](_0x5cd5e9)[_0x656e('0x27')](function(_0x3e6266){_0x58181e[_0x656e('0x42')]=_0x3e6266;if(_0x469acf[_0x656e('0x36')][_0x656e('0x43')]){_0x264e88[_0x656e('0x44')]=[{'all':!![]}];}return db[_0x656e('0x2d')][_0x656e('0x45')](_0x264e88);})[_0x656e('0x27')](function(_0x3f81fa){_0x58181e[_0x656e('0x46')]=_0x3f81fa;return _0x58181e;})[_0x656e('0x27')](respondWithFilteredResult(_0xc2a01,_0x264e88))['catch'](handleError(_0xc2a01,null));};exports[_0x656e('0x47')]=function(_0x562482,_0x21af67){var _0x3f3d5e={'raw':![],'where':{'id':_0x562482[_0x656e('0x48')]['id']}},_0x4045c4={};_0x4045c4[_0x656e('0x30')]=_[_0x656e('0x33')](db[_0x656e('0x2d')][_0x656e('0x2e')]);_0x4045c4[_0x656e('0x36')]=_[_0x656e('0x33')](_0x562482['query']);_0x4045c4[_0x656e('0x34')]=_[_0x656e('0x35')](_0x4045c4[_0x656e('0x30')],_0x4045c4['query']);_0x3f3d5e['attributes']=_[_0x656e('0x35')](_0x4045c4[_0x656e('0x30')],qs[_0x656e('0x37')](_0x562482[_0x656e('0x36')]['fields']));_0x3f3d5e[_0x656e('0x38')]=_0x3f3d5e[_0x656e('0x38')][_0x656e('0x49')]?_0x3f3d5e[_0x656e('0x38')]:_0x4045c4[_0x656e('0x30')];if(_0x562482['query'][_0x656e('0x43')]){_0x3f3d5e[_0x656e('0x44')]=[{'all':!![]}];}_0x3f3d5e=_[_0x656e('0x3f')]({},_0x3f3d5e,_0x562482[_0x656e('0x41')]);return db[_0x656e('0x2d')][_0x656e('0x4a')](_0x3f3d5e)['then'](handleEntityNotFound(_0x21af67,null))[_0x656e('0x27')](respondWithResult(_0x21af67,null))[_0x656e('0x4b')](handleError(_0x21af67,null));};exports[_0x656e('0x4c')]=function(_0x904b8a,_0x5dbcfb){return db['AnalyticFieldReport'][_0x656e('0x4c')](_0x904b8a['body'],{})['then'](respondWithResult(_0x5dbcfb,0xc9))['catch'](handleError(_0x5dbcfb,null));};exports[_0x656e('0x4d')]=function(_0x2c648e,_0x59cb0f){return db['AnalyticFieldReport']['bulkCreate'](_0x2c648e['body'],{'raw':![],'individualHooks':!![]})[_0x656e('0x27')](respondWithResult(_0x59cb0f,0xc9))[_0x656e('0x4b')](handleError(_0x59cb0f,null));};exports['update']=function(_0x105922,_0x23c5de){if(_0x105922[_0x656e('0x4e')]['id']){delete _0x105922[_0x656e('0x4e')]['id'];}return db[_0x656e('0x2d')][_0x656e('0x4a')]({'where':{'id':_0x105922[_0x656e('0x48')]['id']}})[_0x656e('0x27')](handleEntityNotFound(_0x23c5de,null))[_0x656e('0x27')](saveUpdates(_0x105922[_0x656e('0x4e')],null))[_0x656e('0x27')](respondWithResult(_0x23c5de,null))['catch'](handleError(_0x23c5de,null));};exports['destroy']=function(_0x4f365c,_0x47e622){return db[_0x656e('0x2d')][_0x656e('0x4a')]({'where':{'id':_0x4f365c[_0x656e('0x48')]['id']}})['then'](handleEntityNotFound(_0x47e622,null))['then'](removeEntity(_0x47e622,null))[_0x656e('0x4b')](handleError(_0x47e622,null));};exports['bulkDestroy']=function(_0x460f64,_0x852dce){return db[_0x656e('0x2d')]['destroy']({'where':{'id':_0x460f64['query'][_0x656e('0x4f')]||[]},'raw':![],'individualHooks':!![]})[_0x656e('0x27')](respondWithResult(_0x852dce,0xcc))[_0x656e('0x4b')](handleError(_0x852dce,null));};exports[_0x656e('0x50')]=function(_0x26d54a,_0x4669d6,_0x449408){return db[_0x656e('0x51')][_0x656e('0x52')]({'where':{'id':_0x26d54a['params']['id']}})[_0x656e('0x27')](handleEntityNotFound(_0x4669d6,null))[_0x656e('0x27')](function(_0x5b3b0b){if(_0x5b3b0b){return db[_0x656e('0x53')]['transaction'](function(_0x4c23f8){return db[_0x656e('0x2d')][_0x656e('0x28')]({'where':{'CustomReportId':_0x26d54a[_0x656e('0x48')]['id']},'transaction':_0x4c23f8})['then'](function(_0x5992ec){var _0x31293c=_['map'](_0x26d54a['body'],function(_0x5e0e0d){delete _0x5e0e0d['id'];_0x5e0e0d[_0x656e('0x54')]=_0x26d54a[_0x656e('0x48')]['id'];return _0x5e0e0d;});return db['AnalyticFieldReport'][_0x656e('0x4d')](_0x31293c,{'transaction':_0x4c23f8});});})[_0x656e('0x27')](function(){return db[_0x656e('0x2d')][_0x656e('0x45')]({'where':{'CustomReportId':_0x26d54a[_0x656e('0x48')]['id']}});});}})['then'](respondWithResult(_0x4669d6,null))[_0x656e('0x4b')](handleError(_0x4669d6,null));};
\ No newline at end of file
+var _0x623b=['../../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','then','error','stack','name','index','map','rawAttributes','fieldName','type','key','query','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','filter','where','VIRTUAL','merge','options','AnalyticFieldReport','findAll','rows','catch','params','keys','includeAll','include','find','create','body','bulkCreate','update','destroy','ids','addFields','AnalyticCustomReport','findOne','sequelize','transaction','CustomReportId','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','desk.js','querystring','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch'];(function(_0x5a4c93,_0x283aa8){var _0x421ff4=function(_0x1afb30){while(--_0x1afb30){_0x5a4c93['push'](_0x5a4c93['shift']());}};_0x421ff4(++_0x283aa8);}(_0x623b,0x98));var _0xb623=function(_0x1da7b,_0x3ce5ec){_0x1da7b=_0x1da7b-0x0;var _0x4bf8e3=_0x623b[_0x1da7b];return _0x4bf8e3;};'use strict';var emlformat=require(_0xb623('0x0'));var rimraf=require(_0xb623('0x1'));var zipdir=require(_0xb623('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xb623('0x3'));var moment=require(_0xb623('0x4'));var BPromise=require(_0xb623('0x5'));var Mustache=require(_0xb623('0x6'));var util=require(_0xb623('0x7'));var path=require(_0xb623('0x8'));var sox=require(_0xb623('0x9'));var csv=require(_0xb623('0xa'));var ejs=require(_0xb623('0xb'));var fs=require('fs');var fs_extra=require(_0xb623('0xc'));var _=require(_0xb623('0xd'));var squel=require(_0xb623('0xe'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0xb623('0xf'));var toCsv=require(_0xb623('0xa'));var querystring=require(_0xb623('0x10'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0xb623('0x11'));var qs=require(_0xb623('0x12'));var as=require(_0xb623('0x13'));var hardwareService=require(_0xb623('0x14'));var logger=require(_0xb623('0x15'))(_0xb623('0x16'));var utils=require(_0xb623('0x17'));var config=require(_0xb623('0x18'));var licenseUtil=require(_0xb623('0x19'));var db=require(_0xb623('0x1a'))['db'];function respondWithStatusCode(_0x17f35d,_0x4253d4){_0x4253d4=_0x4253d4||0xcc;return function(_0x22c756){if(_0x22c756){return _0x17f35d[_0xb623('0x1b')](_0x4253d4);}return _0x17f35d[_0xb623('0x1c')](_0x4253d4)[_0xb623('0x1d')]();};}function respondWithResult(_0x2c3c9f,_0x407e4d){_0x407e4d=_0x407e4d||0xc8;return function(_0x1fdeb4){if(_0x1fdeb4){return _0x2c3c9f['status'](_0x407e4d)[_0xb623('0x1e')](_0x1fdeb4);}};}function respondWithFilteredResult(_0x50760b,_0x31c477){return function(_0x31b107){if(_0x31b107){var _0x6af2c1=typeof _0x31c477[_0xb623('0x1f')]===_0xb623('0x20')&&typeof _0x31c477[_0xb623('0x21')]===_0xb623('0x20');var _0xd6e9c5=_0x31b107[_0xb623('0x22')];var _0x48d990=_0x6af2c1?0x0:_0x31c477['offset'];var _0x1e23c3=_0x6af2c1?_0x31b107[_0xb623('0x22')]:_0x31c477['offset']+_0x31c477['limit'];var _0x5508eb;if(_0x1e23c3>=_0xd6e9c5){_0x1e23c3=_0xd6e9c5;_0x5508eb=0xc8;}else{_0x5508eb=0xce;}_0x50760b[_0xb623('0x1c')](_0x5508eb);return _0x50760b[_0xb623('0x23')](_0xb623('0x24'),_0x48d990+'-'+_0x1e23c3+'/'+_0xd6e9c5)[_0xb623('0x1e')](_0x31b107);}return null;};}function patchUpdates(_0x1d7f16){return function(_0x33eb72){try{jsonpatch[_0xb623('0x25')](_0x33eb72,_0x1d7f16,!![]);}catch(_0x3425c4){return BPromise['reject'](_0x3425c4);}return _0x33eb72['save']();};}function saveUpdates(_0x9f2d1f,_0x1d1531){return function(_0x48e51a){if(_0x48e51a){return _0x48e51a['update'](_0x9f2d1f)['then'](function(_0x23b5d9){return _0x23b5d9;});}return null;};}function removeEntity(_0x23bce5,_0x5ed945){return function(_0x3f2a8d){if(_0x3f2a8d){return _0x3f2a8d['destroy']()[_0xb623('0x26')](function(){_0x23bce5[_0xb623('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x3df50e,_0x4f2579){return function(_0x4f8873){if(!_0x4f8873){_0x3df50e[_0xb623('0x1b')](0x194);}return _0x4f8873;};}function handleError(_0x529782,_0x4ce3b7){_0x4ce3b7=_0x4ce3b7||0x1f4;return function(_0x442a61){logger[_0xb623('0x27')](_0x442a61[_0xb623('0x28')]);if(_0x442a61[_0xb623('0x29')]){delete _0x442a61[_0xb623('0x29')];}_0x529782['status'](_0x4ce3b7)['send'](_0x442a61);};}exports[_0xb623('0x2a')]=function(_0x252cff,_0x3a5fc3){var _0x311faf={},_0x32f547={},_0x5532e1={'count':0x0,'rows':[]};var _0x295f2f=_[_0xb623('0x2b')](db['AnalyticFieldReport'][_0xb623('0x2c')],function(_0x4e8ca3){return{'name':_0x4e8ca3[_0xb623('0x2d')],'type':_0x4e8ca3[_0xb623('0x2e')][_0xb623('0x2f')]};});_0x32f547['model']=_[_0xb623('0x2b')](_0x295f2f,'name');_0x32f547[_0xb623('0x30')]=_['keys'](_0x252cff[_0xb623('0x30')]);_0x32f547[_0xb623('0x31')]=_[_0xb623('0x32')](_0x32f547[_0xb623('0x33')],_0x32f547['query']);_0x311faf[_0xb623('0x34')]=_['intersection'](_0x32f547['model'],qs['fields'](_0x252cff[_0xb623('0x30')][_0xb623('0x35')]));_0x311faf[_0xb623('0x34')]=_0x311faf[_0xb623('0x34')][_0xb623('0x36')]?_0x311faf[_0xb623('0x34')]:_0x32f547[_0xb623('0x33')];if(!_0x252cff['query'][_0xb623('0x37')](_0xb623('0x38'))){_0x311faf[_0xb623('0x21')]=qs[_0xb623('0x21')](_0x252cff[_0xb623('0x30')][_0xb623('0x21')]);_0x311faf[_0xb623('0x1f')]=qs['offset'](_0x252cff['query'][_0xb623('0x1f')]);}_0x311faf[_0xb623('0x39')]=qs[_0xb623('0x3a')](_0x252cff['query'][_0xb623('0x3a')]);_0x311faf['where']=qs[_0xb623('0x31')](_[_0xb623('0x3b')](_0x252cff[_0xb623('0x30')],_0x32f547[_0xb623('0x31')]),_0x295f2f);if(_0x252cff[_0xb623('0x30')][_0xb623('0x3c')]){_0x311faf[_0xb623('0x3d')]=_['merge'](_0x311faf[_0xb623('0x3d')],{'$or':_[_0xb623('0x2b')](_0x295f2f,function(_0x242f37){if(_0x242f37['type']!==_0xb623('0x3e')){var _0x66391a={};_0x66391a[_0x242f37[_0xb623('0x29')]]={'$like':'%'+_0x252cff[_0xb623('0x30')][_0xb623('0x3c')]+'%'};return _0x66391a;}})});}_0x311faf=_[_0xb623('0x3f')]({},_0x311faf,_0x252cff[_0xb623('0x40')]);var _0x3950d0={'where':_0x311faf['where']};return db['AnalyticFieldReport']['count'](_0x3950d0)[_0xb623('0x26')](function(_0x4c7be3){_0x5532e1[_0xb623('0x22')]=_0x4c7be3;if(_0x252cff[_0xb623('0x30')]['includeAll']){_0x311faf['include']=[{'all':!![]}];}return db[_0xb623('0x41')][_0xb623('0x42')](_0x311faf);})[_0xb623('0x26')](function(_0x477125){_0x5532e1[_0xb623('0x43')]=_0x477125;return _0x5532e1;})[_0xb623('0x26')](respondWithFilteredResult(_0x3a5fc3,_0x311faf))[_0xb623('0x44')](handleError(_0x3a5fc3,null));};exports['show']=function(_0x1cf4a4,_0x224d05){var _0x4a6f6a={'raw':![],'where':{'id':_0x1cf4a4[_0xb623('0x45')]['id']}},_0x4f1216={};_0x4f1216[_0xb623('0x33')]=_[_0xb623('0x46')](db[_0xb623('0x41')]['rawAttributes']);_0x4f1216[_0xb623('0x30')]=_[_0xb623('0x46')](_0x1cf4a4[_0xb623('0x30')]);_0x4f1216[_0xb623('0x31')]=_['intersection'](_0x4f1216[_0xb623('0x33')],_0x4f1216[_0xb623('0x30')]);_0x4a6f6a[_0xb623('0x34')]=_[_0xb623('0x32')](_0x4f1216['model'],qs[_0xb623('0x35')](_0x1cf4a4['query'][_0xb623('0x35')]));_0x4a6f6a[_0xb623('0x34')]=_0x4a6f6a['attributes'][_0xb623('0x36')]?_0x4a6f6a[_0xb623('0x34')]:_0x4f1216['model'];if(_0x1cf4a4['query'][_0xb623('0x47')]){_0x4a6f6a[_0xb623('0x48')]=[{'all':!![]}];}_0x4a6f6a=_[_0xb623('0x3f')]({},_0x4a6f6a,_0x1cf4a4[_0xb623('0x40')]);return db['AnalyticFieldReport'][_0xb623('0x49')](_0x4a6f6a)['then'](handleEntityNotFound(_0x224d05,null))['then'](respondWithResult(_0x224d05,null))[_0xb623('0x44')](handleError(_0x224d05,null));};exports[_0xb623('0x4a')]=function(_0x27d4eb,_0x2dc4cb){return db[_0xb623('0x41')][_0xb623('0x4a')](_0x27d4eb[_0xb623('0x4b')],{})[_0xb623('0x26')](respondWithResult(_0x2dc4cb,0xc9))[_0xb623('0x44')](handleError(_0x2dc4cb,null));};exports['bulkCreate']=function(_0x387c80,_0x820471){return db[_0xb623('0x41')][_0xb623('0x4c')](_0x387c80[_0xb623('0x4b')],{'raw':![],'individualHooks':!![]})['then'](respondWithResult(_0x820471,0xc9))['catch'](handleError(_0x820471,null));};exports[_0xb623('0x4d')]=function(_0x49fcea,_0x40a957){if(_0x49fcea[_0xb623('0x4b')]['id']){delete _0x49fcea['body']['id'];}return db[_0xb623('0x41')][_0xb623('0x49')]({'where':{'id':_0x49fcea['params']['id']}})[_0xb623('0x26')](handleEntityNotFound(_0x40a957,null))[_0xb623('0x26')](saveUpdates(_0x49fcea[_0xb623('0x4b')],null))['then'](respondWithResult(_0x40a957,null))[_0xb623('0x44')](handleError(_0x40a957,null));};exports[_0xb623('0x4e')]=function(_0x30bd28,_0x341fda){return db[_0xb623('0x41')][_0xb623('0x49')]({'where':{'id':_0x30bd28[_0xb623('0x45')]['id']}})[_0xb623('0x26')](handleEntityNotFound(_0x341fda,null))['then'](removeEntity(_0x341fda,null))['catch'](handleError(_0x341fda,null));};exports['bulkDestroy']=function(_0x4d5ee3,_0x1a8b24){return db[_0xb623('0x41')][_0xb623('0x4e')]({'where':{'id':_0x4d5ee3[_0xb623('0x30')][_0xb623('0x4f')]||[]},'raw':![],'individualHooks':!![]})[_0xb623('0x26')](respondWithResult(_0x1a8b24,0xcc))[_0xb623('0x44')](handleError(_0x1a8b24,null));};exports[_0xb623('0x50')]=function(_0x2d7974,_0x4bd271,_0xb935ab){return db[_0xb623('0x51')][_0xb623('0x52')]({'where':{'id':_0x2d7974[_0xb623('0x45')]['id']}})[_0xb623('0x26')](handleEntityNotFound(_0x4bd271,null))[_0xb623('0x26')](function(_0x792873){if(_0x792873){return db[_0xb623('0x53')][_0xb623('0x54')](function(_0x56156d){return db['AnalyticFieldReport'][_0xb623('0x4e')]({'where':{'CustomReportId':_0x2d7974['params']['id']},'transaction':_0x56156d})[_0xb623('0x26')](function(_0x435209){var _0x4f716b=_['map'](_0x2d7974['body'],function(_0xf9bbfb){delete _0xf9bbfb['id'];_0xf9bbfb[_0xb623('0x55')]=_0x2d7974[_0xb623('0x45')]['id'];return _0xf9bbfb;});return db[_0xb623('0x41')][_0xb623('0x4c')](_0x4f716b,{'transaction':_0x56156d});});})[_0xb623('0x26')](function(){return db[_0xb623('0x41')][_0xb623('0x42')]({'where':{'CustomReportId':_0x2d7974[_0xb623('0x45')]['id']}});});}})[_0xb623('0x26')](respondWithResult(_0x4bd271,null))[_0xb623('0x44')](handleError(_0x4bd271,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x23a7=['analytics_report_fields','lodash','util','../../config/logger','api','moment','request-promise','path','rimraf','./analyticFieldReport.attributes','exports','define','AnalyticFieldReport'];(function(_0x217a46,_0x507c52){var _0x16640c=function(_0x4af5d1){while(--_0x4af5d1){_0x217a46['push'](_0x217a46['shift']());}};_0x16640c(++_0x507c52);}(_0x23a7,0x139));var _0x723a=function(_0xbca1b1,_0x33f0ce){_0xbca1b1=_0xbca1b1-0x0;var _0x4e1686=_0x23a7[_0xbca1b1];return _0x4e1686;};'use strict';var _=require(_0x723a('0x0'));var util=require(_0x723a('0x1'));var logger=require(_0x723a('0x2'))(_0x723a('0x3'));var moment=require(_0x723a('0x4'));var BPromise=require('bluebird');var rp=require(_0x723a('0x5'));var fs=require('fs');var path=require(_0x723a('0x6'));var rimraf=require(_0x723a('0x7'));var config=require('../../config/environment');var attributes=require(_0x723a('0x8'));module[_0x723a('0x9')]=function(_0xe0dab7,_0x1aa61a){return _0xe0dab7[_0x723a('0xa')](_0x723a('0xb'),attributes,{'tableName':_0x723a('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xa4d7=['util','../../config/logger','moment','bluebird','request-promise','path','rimraf','../../config/environment','exports','analytics_report_fields','lodash'];(function(_0xdd3c35,_0x3c4ccf){var _0x56b8e7=function(_0x225f08){while(--_0x225f08){_0xdd3c35['push'](_0xdd3c35['shift']());}};_0x56b8e7(++_0x3c4ccf);}(_0xa4d7,0xba));var _0x7a4d=function(_0x2d839a,_0x200210){_0x2d839a=_0x2d839a-0x0;var _0x508b4e=_0xa4d7[_0x2d839a];return _0x508b4e;};'use strict';var _=require(_0x7a4d('0x0'));var util=require(_0x7a4d('0x1'));var logger=require(_0x7a4d('0x2'))('api');var moment=require(_0x7a4d('0x3'));var BPromise=require(_0x7a4d('0x4'));var rp=require(_0x7a4d('0x5'));var fs=require('fs');var path=require(_0x7a4d('0x6'));var rimraf=require(_0x7a4d('0x7'));var config=require(_0x7a4d('0x8'));var attributes=require('./analyticFieldReport.attributes');module[_0x7a4d('0x9')]=function(_0x29f77b,_0x2daaff){return _0x29f77b['define']('AnalyticFieldReport',attributes,{'tableName':_0x7a4d('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xee85=['request\x20sent','AnalyticFieldReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','catch','lodash','util','moment','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','client','http','request','then','AnalyticFieldReport,\x20%s,\x20%s'];(function(_0x456177,_0x5007c6){var _0x3fb337=function(_0x27c92e){while(--_0x27c92e){_0x456177['push'](_0x456177['shift']());}};_0x3fb337(++_0x5007c6);}(_0xee85,0xb9));var _0x5ee8=function(_0x214a25,_0x15071d){_0x214a25=_0x214a25-0x0;var _0x405988=_0xee85[_0x214a25];return _0x405988;};'use strict';var _=require(_0x5ee8('0x0'));var util=require(_0x5ee8('0x1'));var moment=require(_0x5ee8('0x2'));var BPromise=require('bluebird');var rs=require(_0x5ee8('0x3'));var fs=require('fs');var Redis=require(_0x5ee8('0x4'));var db=require(_0x5ee8('0x5'))['db'];var utils=require(_0x5ee8('0x6'));var logger=require('../../config/logger')(_0x5ee8('0x7'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0x5ee8('0x8')][_0x5ee8('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x290470,_0xe22a64,_0x49bff8){return new BPromise(function(_0xb69f6b,_0x1205d7){return client[_0x5ee8('0xa')](_0x290470,_0x49bff8)[_0x5ee8('0xb')](function(_0x26e11a){logger['info'](_0x5ee8('0xc'),_0xe22a64,_0x5ee8('0xd'));logger['debug'](_0x5ee8('0xe'),_0xe22a64,'request\x20sent',JSON[_0x5ee8('0xf')](_0x26e11a));if(_0x26e11a['error']){if(_0x26e11a[_0x5ee8('0x10')][_0x5ee8('0x11')]===0x1f4){logger['error'](_0x5ee8('0xc'),_0xe22a64,_0x26e11a['error'][_0x5ee8('0x12')]);return _0x1205d7(_0x26e11a[_0x5ee8('0x10')][_0x5ee8('0x12')]);}logger[_0x5ee8('0x10')](_0x5ee8('0xc'),_0xe22a64,_0x26e11a[_0x5ee8('0x10')][_0x5ee8('0x12')]);return _0xb69f6b(_0x26e11a[_0x5ee8('0x10')][_0x5ee8('0x12')]);}else{logger[_0x5ee8('0x13')]('AnalyticFieldReport,\x20%s,\x20%s',_0xe22a64,_0x5ee8('0xd'));_0xb69f6b(_0x26e11a[_0x5ee8('0x14')][_0x5ee8('0x12')]);}})[_0x5ee8('0x15')](function(_0x10ad2e){logger[_0x5ee8('0x10')](_0x5ee8('0xc'),_0xe22a64,_0x10ad2e);_0x1205d7(_0x10ad2e);});});}
\ No newline at end of file
+var _0xbd49=['AnalyticFieldReport,\x20%s,\x20%s','message','info','result','catch','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','request\x20sent','debug','AnalyticFieldReport,\x20%s,\x20%s,\x20%s','stringify','error','code'];(function(_0x432682,_0x253044){var _0x463d05=function(_0xa73403){while(--_0xa73403){_0x432682['push'](_0x432682['shift']());}};_0x463d05(++_0x253044);}(_0xbd49,0x185));var _0x9bd4=function(_0x59255b,_0x2d0023){_0x59255b=_0x59255b-0x0;var _0x1339d9=_0xbd49[_0x59255b];return _0x1339d9;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0x9bd4('0x0'));var BPromise=require(_0x9bd4('0x1'));var rs=require(_0x9bd4('0x2'));var fs=require('fs');var Redis=require(_0x9bd4('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0x9bd4('0x4'));var logger=require(_0x9bd4('0x5'))(_0x9bd4('0x6'));var config=require(_0x9bd4('0x7'));var jayson=require(_0x9bd4('0x8'));var client=jayson[_0x9bd4('0x9')][_0x9bd4('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x4503a2,_0x3de050,_0x47f720){return new BPromise(function(_0x1342c8,_0x2d4a25){return client[_0x9bd4('0xb')](_0x4503a2,_0x47f720)[_0x9bd4('0xc')](function(_0x47252c){logger['info']('AnalyticFieldReport,\x20%s,\x20%s',_0x3de050,_0x9bd4('0xd'));logger[_0x9bd4('0xe')](_0x9bd4('0xf'),_0x3de050,'request\x20sent',JSON[_0x9bd4('0x10')](_0x47252c));if(_0x47252c[_0x9bd4('0x11')]){if(_0x47252c[_0x9bd4('0x11')][_0x9bd4('0x12')]===0x1f4){logger[_0x9bd4('0x11')](_0x9bd4('0x13'),_0x3de050,_0x47252c[_0x9bd4('0x11')][_0x9bd4('0x14')]);return _0x2d4a25(_0x47252c[_0x9bd4('0x11')]['message']);}logger['error'](_0x9bd4('0x13'),_0x3de050,_0x47252c[_0x9bd4('0x11')][_0x9bd4('0x14')]);return _0x1342c8(_0x47252c[_0x9bd4('0x11')][_0x9bd4('0x14')]);}else{logger[_0x9bd4('0x15')]('AnalyticFieldReport,\x20%s,\x20%s',_0x3de050,_0x9bd4('0xd'));_0x1342c8(_0x47252c[_0x9bd4('0x16')][_0x9bd4('0x14')]);}})[_0x9bd4('0x17')](function(_0x45084e){logger['error'](_0x9bd4('0x13'),_0x3de050,_0x45084e);_0x2d4a25(_0x45084e);});});}
\ 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(_0x423b6a,_0x3c4379){var _0x159cba=function(_0xddf335){while(--_0xddf335){_0x423b6a['push'](_0x423b6a['shift']());}};_0x159cba(++_0x3c4379);}(_0xa9e0,0x123));var _0x0a9e=function(_0x138f59,_0x1b53fb){_0x138f59=_0x138f59-0x0;var _0x3d114d=_0xa9e0[_0x138f59];return _0x3d114d;};'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(_0x533521,_0x35058f){var _0x36fccb=function(_0x28d417){while(--_0x28d417){_0x533521['push'](_0x533521['shift']());}};_0x36fccb(++_0x35058f);}(_0xa9e0,0x123));var _0x0a9e=function(_0x4dbaad,_0x730318){_0x4dbaad=_0x4dbaad-0x0;var _0x226c72=_0xa9e0[_0x4dbaad];return _0x226c72;};'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 _0xbefe=['exports','name','STRING','TEXT'];(function(_0x4a7d68,_0x1b6aa7){var _0x163f4b=function(_0x7dc84f){while(--_0x7dc84f){_0x4a7d68['push'](_0x4a7d68['shift']());}};_0x163f4b(++_0x1b6aa7);}(_0xbefe,0x168));var _0xebef=function(_0x138208,_0x140722){_0x138208=_0x138208-0x0;var _0x4f93b5=_0xbefe[_0x138208];return _0x4f93b5;};'use strict';var Sequelize=require('sequelize');module[_0xebef('0x0')]={'name':{'type':Sequelize['STRING'],'allowNull':![],'unique':_0xebef('0x1')},'table':{'type':Sequelize[_0xebef('0x2')]},'metric':{'type':Sequelize[_0xebef('0x3')]},'description':{'type':Sequelize[_0xebef('0x2')]}};
\ No newline at end of file
+var _0x0565=['name','TEXT','sequelize','exports','STRING'];(function(_0x29279c,_0x570176){var _0x279b1f=function(_0xd36d1f){while(--_0xd36d1f){_0x29279c['push'](_0x29279c['shift']());}};_0x279b1f(++_0x570176);}(_0x0565,0xf2));var _0x5056=function(_0x1ae5ab,_0xc5d441){_0x1ae5ab=_0x1ae5ab-0x0;var _0x1ce001=_0x0565[_0x1ae5ab];return _0x1ce001;};'use strict';var Sequelize=require(_0x5056('0x0'));module[_0x5056('0x1')]={'name':{'type':Sequelize[_0x5056('0x2')],'allowNull':![],'unique':_0x5056('0x3')},'table':{'type':Sequelize[_0x5056('0x2')]},'metric':{'type':Sequelize[_0x5056('0x4')]},'description':{'type':Sequelize[_0x5056('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8d0e=['then','get','Metrics','UserProfileResource','end','sendStatus','error','stack','name','send','AnalyticMetric','fieldName','type','key','model','query','keys','intersection','attributes','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','show','params','rawAttributes','fields','find','catch','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','body','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','json','undefined','limit','offset','count','set','apply','reject','save','update','destroy'];(function(_0x3d9565,_0x5db973){var _0x546f66=function(_0x137352){while(--_0x137352){_0x3d9565['push'](_0x3d9565['shift']());}};_0x546f66(++_0x5db973);}(_0x8d0e,0x1d7));var _0xe8d0=function(_0x1c5e92,_0x1054f7){_0x1c5e92=_0x1c5e92-0x0;var _0x3b4130=_0x8d0e[_0x1c5e92];return _0x3b4130;};'use strict';var emlformat=require(_0xe8d0('0x0'));var rimraf=require(_0xe8d0('0x1'));var zipdir=require(_0xe8d0('0x2'));var jsonpatch=require(_0xe8d0('0x3'));var rp=require(_0xe8d0('0x4'));var moment=require(_0xe8d0('0x5'));var BPromise=require(_0xe8d0('0x6'));var Mustache=require(_0xe8d0('0x7'));var util=require(_0xe8d0('0x8'));var path=require('path');var sox=require(_0xe8d0('0x9'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xe8d0('0xa'));var _=require(_0xe8d0('0xb'));var squel=require(_0xe8d0('0xc'));var crypto=require(_0xe8d0('0xd'));var jsforce=require(_0xe8d0('0xe'));var deskjs=require(_0xe8d0('0xf'));var toCsv=require(_0xe8d0('0x10'));var querystring=require(_0xe8d0('0x11'));var Papa=require('papaparse');var Redis=require(_0xe8d0('0x12'));var authService=require(_0xe8d0('0x13'));var qs=require(_0xe8d0('0x14'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0xe8d0('0x15'))(_0xe8d0('0x16'));var utils=require(_0xe8d0('0x17'));var config=require(_0xe8d0('0x18'));var licenseUtil=require(_0xe8d0('0x19'));var db=require(_0xe8d0('0x1a'))['db'];function respondWithStatusCode(_0x5934b2,_0x38fac0){_0x38fac0=_0x38fac0||0xcc;return function(_0x15b9e5){if(_0x15b9e5){return _0x5934b2['sendStatus'](_0x38fac0);}return _0x5934b2[_0xe8d0('0x1b')](_0x38fac0)['end']();};}function respondWithResult(_0x59b4b7,_0x90a1ea){_0x90a1ea=_0x90a1ea||0xc8;return function(_0x2aa906){if(_0x2aa906){return _0x59b4b7[_0xe8d0('0x1b')](_0x90a1ea)[_0xe8d0('0x1c')](_0x2aa906);}};}function respondWithFilteredResult(_0x15d3a1,_0x7151c6){return function(_0x52818a){if(_0x52818a){var _0x6ccffa=typeof _0x7151c6['offset']===_0xe8d0('0x1d')&&typeof _0x7151c6[_0xe8d0('0x1e')]===_0xe8d0('0x1d');var _0x4d1db4=_0x52818a['count'];var _0x47c67a=_0x6ccffa?0x0:_0x7151c6[_0xe8d0('0x1f')];var _0x384854=_0x6ccffa?_0x52818a[_0xe8d0('0x20')]:_0x7151c6[_0xe8d0('0x1f')]+_0x7151c6[_0xe8d0('0x1e')];var _0x588133;if(_0x384854>=_0x4d1db4){_0x384854=_0x4d1db4;_0x588133=0xc8;}else{_0x588133=0xce;}_0x15d3a1[_0xe8d0('0x1b')](_0x588133);return _0x15d3a1[_0xe8d0('0x21')]('Content-Range',_0x47c67a+'-'+_0x384854+'/'+_0x4d1db4)['json'](_0x52818a);}return null;};}function patchUpdates(_0x554402){return function(_0x384a60){try{jsonpatch[_0xe8d0('0x22')](_0x384a60,_0x554402,!![]);}catch(_0x25363b){return BPromise[_0xe8d0('0x23')](_0x25363b);}return _0x384a60[_0xe8d0('0x24')]();};}function saveUpdates(_0x23a945,_0x1bd25c){return function(_0x28a6b5){if(_0x28a6b5){return _0x28a6b5[_0xe8d0('0x25')](_0x23a945)['then'](function(_0xed8f2e){return _0xed8f2e;});}return null;};}function removeEntity(_0x9f747,_0x572c25){return function(_0x106614){if(_0x106614){return _0x106614[_0xe8d0('0x26')]()[_0xe8d0('0x27')](function(){var _0xd86c76=_0x106614[_0xe8d0('0x28')]({'plain':!![]});var _0x149dfd=_0xe8d0('0x29');return db[_0xe8d0('0x2a')][_0xe8d0('0x26')]({'where':{'type':_0x149dfd,'resourceId':_0xd86c76['id']}})[_0xe8d0('0x27')](function(){return _0x106614;});})[_0xe8d0('0x27')](function(){_0x9f747['status'](0xcc)[_0xe8d0('0x2b')]();});}};}function handleEntityNotFound(_0x26dd52,_0x10dec2){return function(_0x486f49){if(!_0x486f49){_0x26dd52[_0xe8d0('0x2c')](0x194);}return _0x486f49;};}function handleError(_0x343b08,_0x526240){_0x526240=_0x526240||0x1f4;return function(_0x1519e2){logger[_0xe8d0('0x2d')](_0x1519e2[_0xe8d0('0x2e')]);if(_0x1519e2[_0xe8d0('0x2f')]){delete _0x1519e2[_0xe8d0('0x2f')];}_0x343b08['status'](_0x526240)[_0xe8d0('0x30')](_0x1519e2);};}exports['index']=function(_0x5d3276,_0x50ad3c){var _0x547a2b={},_0x13cd4c={},_0x36ccec={'count':0x0,'rows':[]};var _0x5151fa=_['map'](db[_0xe8d0('0x31')]['rawAttributes'],function(_0x3b5d31){return{'name':_0x3b5d31[_0xe8d0('0x32')],'type':_0x3b5d31[_0xe8d0('0x33')][_0xe8d0('0x34')]};});_0x13cd4c[_0xe8d0('0x35')]=_['map'](_0x5151fa,_0xe8d0('0x2f'));_0x13cd4c[_0xe8d0('0x36')]=_[_0xe8d0('0x37')](_0x5d3276[_0xe8d0('0x36')]);_0x13cd4c['filters']=_[_0xe8d0('0x38')](_0x13cd4c[_0xe8d0('0x35')],_0x13cd4c['query']);_0x547a2b[_0xe8d0('0x39')]=_['intersection'](_0x13cd4c[_0xe8d0('0x35')],qs['fields'](_0x5d3276[_0xe8d0('0x36')]['fields']));_0x547a2b[_0xe8d0('0x39')]=_0x547a2b[_0xe8d0('0x39')][_0xe8d0('0x3a')]?_0x547a2b[_0xe8d0('0x39')]:_0x13cd4c['model'];if(!_0x5d3276[_0xe8d0('0x36')][_0xe8d0('0x3b')](_0xe8d0('0x3c'))){_0x547a2b['limit']=qs[_0xe8d0('0x1e')](_0x5d3276[_0xe8d0('0x36')][_0xe8d0('0x1e')]);_0x547a2b[_0xe8d0('0x1f')]=qs[_0xe8d0('0x1f')](_0x5d3276['query'][_0xe8d0('0x1f')]);}_0x547a2b[_0xe8d0('0x3d')]=qs[_0xe8d0('0x3e')](_0x5d3276[_0xe8d0('0x36')][_0xe8d0('0x3e')]);_0x547a2b[_0xe8d0('0x3f')]=qs[_0xe8d0('0x40')](_[_0xe8d0('0x41')](_0x5d3276['query'],_0x13cd4c['filters']),_0x5151fa);if(_0x5d3276[_0xe8d0('0x36')][_0xe8d0('0x42')]){_0x547a2b[_0xe8d0('0x3f')]=_[_0xe8d0('0x43')](_0x547a2b[_0xe8d0('0x3f')],{'$or':_['map'](_0x5151fa,function(_0x2e4362){if(_0x2e4362['type']!==_0xe8d0('0x44')){var _0x458294={};_0x458294[_0x2e4362[_0xe8d0('0x2f')]]={'$like':'%'+_0x5d3276['query'][_0xe8d0('0x42')]+'%'};return _0x458294;}})});}_0x547a2b=_[_0xe8d0('0x43')]({},_0x547a2b,_0x5d3276[_0xe8d0('0x45')]);var _0x230a90={'where':_0x547a2b[_0xe8d0('0x3f')]};return db['AnalyticMetric']['count'](_0x230a90)['then'](function(_0x4cf0da){_0x36ccec[_0xe8d0('0x20')]=_0x4cf0da;if(_0x5d3276['query'][_0xe8d0('0x46')]){_0x547a2b[_0xe8d0('0x47')]=[{'all':!![]}];}return db[_0xe8d0('0x31')][_0xe8d0('0x48')](_0x547a2b);})[_0xe8d0('0x27')](function(_0x1156da){_0x36ccec[_0xe8d0('0x49')]=_0x1156da;return _0x36ccec;})[_0xe8d0('0x27')](respondWithFilteredResult(_0x50ad3c,_0x547a2b))['catch'](handleError(_0x50ad3c,null));};exports[_0xe8d0('0x4a')]=function(_0x1da8b2,_0x4a3740){var _0x4bcdff={'raw':!![],'where':{'id':_0x1da8b2[_0xe8d0('0x4b')]['id']}},_0x3825a1={};_0x3825a1[_0xe8d0('0x35')]=_['keys'](db[_0xe8d0('0x31')][_0xe8d0('0x4c')]);_0x3825a1['query']=_[_0xe8d0('0x37')](_0x1da8b2[_0xe8d0('0x36')]);_0x3825a1['filters']=_[_0xe8d0('0x38')](_0x3825a1[_0xe8d0('0x35')],_0x3825a1[_0xe8d0('0x36')]);_0x4bcdff[_0xe8d0('0x39')]=_[_0xe8d0('0x38')](_0x3825a1[_0xe8d0('0x35')],qs[_0xe8d0('0x4d')](_0x1da8b2[_0xe8d0('0x36')]['fields']));_0x4bcdff[_0xe8d0('0x39')]=_0x4bcdff[_0xe8d0('0x39')][_0xe8d0('0x3a')]?_0x4bcdff[_0xe8d0('0x39')]:_0x3825a1[_0xe8d0('0x35')];if(_0x1da8b2[_0xe8d0('0x36')][_0xe8d0('0x46')]){_0x4bcdff[_0xe8d0('0x47')]=[{'all':!![]}];}_0x4bcdff=_[_0xe8d0('0x43')]({},_0x4bcdff,_0x1da8b2[_0xe8d0('0x45')]);return db[_0xe8d0('0x31')][_0xe8d0('0x4e')](_0x4bcdff)['then'](handleEntityNotFound(_0x4a3740,null))[_0xe8d0('0x27')](respondWithResult(_0x4a3740,null))[_0xe8d0('0x4f')](handleError(_0x4a3740,null));};exports[_0xe8d0('0x50')]=function(_0xad7d94,_0x34047c){return db[_0xe8d0('0x31')][_0xe8d0('0x50')](_0xad7d94['body'],{})[_0xe8d0('0x27')](function(_0x424764){var _0x151cf4=_0xad7d94[_0xe8d0('0x51')]['get']({'plain':!![]});if(!_0x151cf4)throw new Error(_0xe8d0('0x52'));if(_0x151cf4['role']===_0xe8d0('0x51')){var _0x382ae9=_0x424764[_0xe8d0('0x28')]({'plain':!![]});var _0x158d24=_0xe8d0('0x29');return db[_0xe8d0('0x53')][_0xe8d0('0x4e')]({'where':{'name':_0x158d24,'userProfileId':_0x151cf4['userProfileId']},'raw':!![]})[_0xe8d0('0x27')](function(_0x55f93d){if(_0x55f93d&&_0x55f93d['autoAssociation']===0x0){return db[_0xe8d0('0x2a')]['create']({'name':_0x382ae9[_0xe8d0('0x2f')],'resourceId':_0x382ae9['id'],'type':_0x55f93d['name'],'sectionId':_0x55f93d['id']},{})[_0xe8d0('0x27')](function(){return _0x424764;});}else{return _0x424764;}})[_0xe8d0('0x4f')](function(_0x13713c){logger[_0xe8d0('0x2d')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x13713c);throw _0x13713c;});}return _0x424764;})[_0xe8d0('0x27')](respondWithResult(_0x34047c,0xc9))[_0xe8d0('0x4f')](handleError(_0x34047c,null));};exports[_0xe8d0('0x25')]=function(_0x2e3f1d,_0x18cc14){if(_0x2e3f1d['body']['id']){delete _0x2e3f1d[_0xe8d0('0x54')]['id'];}return db[_0xe8d0('0x31')][_0xe8d0('0x4e')]({'where':{'id':_0x2e3f1d['params']['id']}})[_0xe8d0('0x27')](handleEntityNotFound(_0x18cc14,null))['then'](saveUpdates(_0x2e3f1d['body'],null))[_0xe8d0('0x27')](respondWithResult(_0x18cc14,null))[_0xe8d0('0x4f')](handleError(_0x18cc14,null));};exports['destroy']=function(_0xcb6ce2,_0x3a8074){return db['AnalyticMetric'][_0xe8d0('0x4e')]({'where':{'id':_0xcb6ce2[_0xe8d0('0x4b')]['id']}})[_0xe8d0('0x27')](handleEntityNotFound(_0x3a8074,null))[_0xe8d0('0x27')](removeEntity(_0x3a8074,null))['catch'](handleError(_0x3a8074,null));};
\ No newline at end of file
+var _0x425d=['VIRTUAL','filter','options','includeAll','include','findAll','rows','catch','show','params','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','eml-format','zip-dir','fast-json-patch','request-promise','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','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','json','offset','undefined','limit','count','set','Content-Range','reject','save','update','then','get','Metrics','UserProfileResource','destroy','error','stack','name','send','index','map','AnalyticMetric','rawAttributes','fieldName','type','key','model','query','keys','attributes','intersection','fields','length','nolimit','order','sort','filters','pick','where','merge'];(function(_0x4cc9ac,_0x19dcce){var _0x181ac6=function(_0x265d3b){while(--_0x265d3b){_0x4cc9ac['push'](_0x4cc9ac['shift']());}};_0x181ac6(++_0x19dcce);}(_0x425d,0x1e0));var _0xd425=function(_0x3d937c,_0x534e35){_0x3d937c=_0x3d937c-0x0;var _0x1976e8=_0x425d[_0x3d937c];return _0x1976e8;};'use strict';var emlformat=require(_0xd425('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xd425('0x1'));var jsonpatch=require(_0xd425('0x2'));var rp=require(_0xd425('0x3'));var moment=require(_0xd425('0x4'));var BPromise=require(_0xd425('0x5'));var Mustache=require(_0xd425('0x6'));var util=require(_0xd425('0x7'));var path=require('path');var sox=require(_0xd425('0x8'));var csv=require(_0xd425('0x9'));var ejs=require(_0xd425('0xa'));var fs=require('fs');var fs_extra=require(_0xd425('0xb'));var _=require(_0xd425('0xc'));var squel=require(_0xd425('0xd'));var crypto=require('crypto');var jsforce=require(_0xd425('0xe'));var deskjs=require(_0xd425('0xf'));var toCsv=require(_0xd425('0x9'));var querystring=require(_0xd425('0x10'));var Papa=require(_0xd425('0x11'));var Redis=require(_0xd425('0x12'));var authService=require(_0xd425('0x13'));var qs=require(_0xd425('0x14'));var as=require(_0xd425('0x15'));var hardwareService=require(_0xd425('0x16'));var logger=require(_0xd425('0x17'))(_0xd425('0x18'));var utils=require(_0xd425('0x19'));var config=require(_0xd425('0x1a'));var licenseUtil=require(_0xd425('0x1b'));var db=require(_0xd425('0x1c'))['db'];function respondWithStatusCode(_0x9bb611,_0x3cacf7){_0x3cacf7=_0x3cacf7||0xcc;return function(_0x3b5de8){if(_0x3b5de8){return _0x9bb611[_0xd425('0x1d')](_0x3cacf7);}return _0x9bb611['status'](_0x3cacf7)[_0xd425('0x1e')]();};}function respondWithResult(_0x17a498,_0x336dc3){_0x336dc3=_0x336dc3||0xc8;return function(_0x5d3d60){if(_0x5d3d60){return _0x17a498[_0xd425('0x1f')](_0x336dc3)[_0xd425('0x20')](_0x5d3d60);}};}function respondWithFilteredResult(_0x643fd2,_0x41f34d){return function(_0x1fc822){if(_0x1fc822){var _0x538a0a=typeof _0x41f34d[_0xd425('0x21')]===_0xd425('0x22')&&typeof _0x41f34d[_0xd425('0x23')]===_0xd425('0x22');var _0x5d6585=_0x1fc822[_0xd425('0x24')];var _0x434d97=_0x538a0a?0x0:_0x41f34d[_0xd425('0x21')];var _0x1155bc=_0x538a0a?_0x1fc822['count']:_0x41f34d['offset']+_0x41f34d['limit'];var _0x4b293a;if(_0x1155bc>=_0x5d6585){_0x1155bc=_0x5d6585;_0x4b293a=0xc8;}else{_0x4b293a=0xce;}_0x643fd2[_0xd425('0x1f')](_0x4b293a);return _0x643fd2[_0xd425('0x25')](_0xd425('0x26'),_0x434d97+'-'+_0x1155bc+'/'+_0x5d6585)['json'](_0x1fc822);}return null;};}function patchUpdates(_0x355af0){return function(_0x7e982e){try{jsonpatch['apply'](_0x7e982e,_0x355af0,!![]);}catch(_0x2e1ec4){return BPromise[_0xd425('0x27')](_0x2e1ec4);}return _0x7e982e[_0xd425('0x28')]();};}function saveUpdates(_0x1d3fc0,_0x3e93db){return function(_0xb240c4){if(_0xb240c4){return _0xb240c4[_0xd425('0x29')](_0x1d3fc0)[_0xd425('0x2a')](function(_0x314201){return _0x314201;});}return null;};}function removeEntity(_0x2b030b,_0x151ad9){return function(_0x40e84b){if(_0x40e84b){return _0x40e84b['destroy']()[_0xd425('0x2a')](function(){var _0x264b0e=_0x40e84b[_0xd425('0x2b')]({'plain':!![]});var _0x1908a5=_0xd425('0x2c');return db[_0xd425('0x2d')][_0xd425('0x2e')]({'where':{'type':_0x1908a5,'resourceId':_0x264b0e['id']}})['then'](function(){return _0x40e84b;});})[_0xd425('0x2a')](function(){_0x2b030b[_0xd425('0x1f')](0xcc)[_0xd425('0x1e')]();});}};}function handleEntityNotFound(_0x57c950,_0x27ef8a){return function(_0x3ad9bd){if(!_0x3ad9bd){_0x57c950[_0xd425('0x1d')](0x194);}return _0x3ad9bd;};}function handleError(_0x999fb9,_0x27d29a){_0x27d29a=_0x27d29a||0x1f4;return function(_0x185d7e){logger[_0xd425('0x2f')](_0x185d7e[_0xd425('0x30')]);if(_0x185d7e[_0xd425('0x31')]){delete _0x185d7e[_0xd425('0x31')];}_0x999fb9['status'](_0x27d29a)[_0xd425('0x32')](_0x185d7e);};}exports[_0xd425('0x33')]=function(_0x298602,_0x3695dd){var _0x3275b1={},_0x1abf33={},_0x47405f={'count':0x0,'rows':[]};var _0x40c392=_[_0xd425('0x34')](db[_0xd425('0x35')][_0xd425('0x36')],function(_0x5f3dab){return{'name':_0x5f3dab[_0xd425('0x37')],'type':_0x5f3dab[_0xd425('0x38')][_0xd425('0x39')]};});_0x1abf33[_0xd425('0x3a')]=_[_0xd425('0x34')](_0x40c392,'name');_0x1abf33[_0xd425('0x3b')]=_[_0xd425('0x3c')](_0x298602['query']);_0x1abf33['filters']=_['intersection'](_0x1abf33[_0xd425('0x3a')],_0x1abf33[_0xd425('0x3b')]);_0x3275b1[_0xd425('0x3d')]=_[_0xd425('0x3e')](_0x1abf33['model'],qs[_0xd425('0x3f')](_0x298602[_0xd425('0x3b')][_0xd425('0x3f')]));_0x3275b1[_0xd425('0x3d')]=_0x3275b1[_0xd425('0x3d')][_0xd425('0x40')]?_0x3275b1[_0xd425('0x3d')]:_0x1abf33['model'];if(!_0x298602[_0xd425('0x3b')]['hasOwnProperty'](_0xd425('0x41'))){_0x3275b1[_0xd425('0x23')]=qs[_0xd425('0x23')](_0x298602['query'][_0xd425('0x23')]);_0x3275b1[_0xd425('0x21')]=qs[_0xd425('0x21')](_0x298602[_0xd425('0x3b')]['offset']);}_0x3275b1[_0xd425('0x42')]=qs[_0xd425('0x43')](_0x298602['query']['sort']);_0x3275b1['where']=qs[_0xd425('0x44')](_[_0xd425('0x45')](_0x298602[_0xd425('0x3b')],_0x1abf33['filters']),_0x40c392);if(_0x298602['query']['filter']){_0x3275b1[_0xd425('0x46')]=_[_0xd425('0x47')](_0x3275b1[_0xd425('0x46')],{'$or':_[_0xd425('0x34')](_0x40c392,function(_0xa9fd7c){if(_0xa9fd7c[_0xd425('0x38')]!==_0xd425('0x48')){var _0x4b922f={};_0x4b922f[_0xa9fd7c[_0xd425('0x31')]]={'$like':'%'+_0x298602[_0xd425('0x3b')][_0xd425('0x49')]+'%'};return _0x4b922f;}})});}_0x3275b1=_['merge']({},_0x3275b1,_0x298602[_0xd425('0x4a')]);var _0x2dffc7={'where':_0x3275b1[_0xd425('0x46')]};return db['AnalyticMetric'][_0xd425('0x24')](_0x2dffc7)[_0xd425('0x2a')](function(_0x1c5ba6){_0x47405f[_0xd425('0x24')]=_0x1c5ba6;if(_0x298602['query'][_0xd425('0x4b')]){_0x3275b1[_0xd425('0x4c')]=[{'all':!![]}];}return db[_0xd425('0x35')][_0xd425('0x4d')](_0x3275b1);})[_0xd425('0x2a')](function(_0x2f6bf7){_0x47405f[_0xd425('0x4e')]=_0x2f6bf7;return _0x47405f;})['then'](respondWithFilteredResult(_0x3695dd,_0x3275b1))[_0xd425('0x4f')](handleError(_0x3695dd,null));};exports[_0xd425('0x50')]=function(_0x5b65fe,_0x1a44a8){var _0x491c51={'raw':!![],'where':{'id':_0x5b65fe[_0xd425('0x51')]['id']}},_0x5e12bf={};_0x5e12bf['model']=_[_0xd425('0x3c')](db['AnalyticMetric'][_0xd425('0x36')]);_0x5e12bf[_0xd425('0x3b')]=_[_0xd425('0x3c')](_0x5b65fe[_0xd425('0x3b')]);_0x5e12bf[_0xd425('0x44')]=_['intersection'](_0x5e12bf[_0xd425('0x3a')],_0x5e12bf['query']);_0x491c51[_0xd425('0x3d')]=_['intersection'](_0x5e12bf[_0xd425('0x3a')],qs[_0xd425('0x3f')](_0x5b65fe[_0xd425('0x3b')][_0xd425('0x3f')]));_0x491c51[_0xd425('0x3d')]=_0x491c51['attributes'][_0xd425('0x40')]?_0x491c51[_0xd425('0x3d')]:_0x5e12bf[_0xd425('0x3a')];if(_0x5b65fe[_0xd425('0x3b')][_0xd425('0x4b')]){_0x491c51['include']=[{'all':!![]}];}_0x491c51=_[_0xd425('0x47')]({},_0x491c51,_0x5b65fe[_0xd425('0x4a')]);return db[_0xd425('0x35')][_0xd425('0x52')](_0x491c51)[_0xd425('0x2a')](handleEntityNotFound(_0x1a44a8,null))[_0xd425('0x2a')](respondWithResult(_0x1a44a8,null))['catch'](handleError(_0x1a44a8,null));};exports[_0xd425('0x53')]=function(_0x128cb3,_0x5bfac6){return db[_0xd425('0x35')][_0xd425('0x53')](_0x128cb3[_0xd425('0x54')],{})[_0xd425('0x2a')](function(_0x5c0219){var _0x54f1d=_0x128cb3[_0xd425('0x55')][_0xd425('0x2b')]({'plain':!![]});if(!_0x54f1d)throw new Error(_0xd425('0x56'));if(_0x54f1d[_0xd425('0x57')]==='user'){var _0x4be6fa=_0x5c0219[_0xd425('0x2b')]({'plain':!![]});var _0x5496d8=_0xd425('0x2c');return db[_0xd425('0x58')]['find']({'where':{'name':_0x5496d8,'userProfileId':_0x54f1d[_0xd425('0x59')]},'raw':!![]})['then'](function(_0x48d5b8){if(_0x48d5b8&&_0x48d5b8[_0xd425('0x5a')]===0x0){return db[_0xd425('0x2d')][_0xd425('0x53')]({'name':_0x4be6fa[_0xd425('0x31')],'resourceId':_0x4be6fa['id'],'type':_0x48d5b8[_0xd425('0x31')],'sectionId':_0x48d5b8['id']},{})[_0xd425('0x2a')](function(){return _0x5c0219;});}else{return _0x5c0219;}})[_0xd425('0x4f')](function(_0x4118fe){logger['error'](_0xd425('0x5b'),_0x4118fe);throw _0x4118fe;});}return _0x5c0219;})[_0xd425('0x2a')](respondWithResult(_0x5bfac6,0xc9))[_0xd425('0x4f')](handleError(_0x5bfac6,null));};exports[_0xd425('0x29')]=function(_0x7b1080,_0x1c80c2){if(_0x7b1080[_0xd425('0x54')]['id']){delete _0x7b1080[_0xd425('0x54')]['id'];}return db['AnalyticMetric']['find']({'where':{'id':_0x7b1080['params']['id']}})[_0xd425('0x2a')](handleEntityNotFound(_0x1c80c2,null))[_0xd425('0x2a')](saveUpdates(_0x7b1080[_0xd425('0x54')],null))[_0xd425('0x2a')](respondWithResult(_0x1c80c2,null))['catch'](handleError(_0x1c80c2,null));};exports['destroy']=function(_0x499a60,_0x5e1294){return db[_0xd425('0x35')][_0xd425('0x52')]({'where':{'id':_0x499a60['params']['id']}})[_0xd425('0x2a')](handleEntityNotFound(_0x5e1294,null))[_0xd425('0x2a')](removeEntity(_0x5e1294,null))[_0xd425('0x4f')](handleError(_0x5e1294,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x908e=['request-promise','path','../../config/environment','define','AnalyticMetric','analytics_metrics','lodash','util','moment','bluebird'];(function(_0x2780c7,_0x1b43eb){var _0x3c9703=function(_0x4f4bac){while(--_0x4f4bac){_0x2780c7['push'](_0x2780c7['shift']());}};_0x3c9703(++_0x1b43eb);}(_0x908e,0x182));var _0xe908=function(_0x542185,_0x325852){_0x542185=_0x542185-0x0;var _0x2504b3=_0x908e[_0x542185];return _0x2504b3;};'use strict';var _=require(_0xe908('0x0'));var util=require(_0xe908('0x1'));var logger=require('../../config/logger')('api');var moment=require(_0xe908('0x2'));var BPromise=require(_0xe908('0x3'));var rp=require(_0xe908('0x4'));var fs=require('fs');var path=require(_0xe908('0x5'));var rimraf=require('rimraf');var config=require(_0xe908('0x6'));var attributes=require('./analyticMetric.attributes');module['exports']=function(_0x448267,_0x27b216){return _0x448267[_0xe908('0x7')](_0xe908('0x8'),attributes,{'tableName':_0xe908('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xedf2=['request-promise','rimraf','../../config/environment','analytics_metrics','util','../../config/logger','api','bluebird'];(function(_0x3dbb6b,_0x5d0de7){var _0xf309e7=function(_0x1ff2c6){while(--_0x1ff2c6){_0x3dbb6b['push'](_0x3dbb6b['shift']());}};_0xf309e7(++_0x5d0de7);}(_0xedf2,0x1ac));var _0x2edf=function(_0x3d1391,_0x30d049){_0x3d1391=_0x3d1391-0x0;var _0x2d6846=_0xedf2[_0x3d1391];return _0x2d6846;};'use strict';var _=require('lodash');var util=require(_0x2edf('0x0'));var logger=require(_0x2edf('0x1'))(_0x2edf('0x2'));var moment=require('moment');var BPromise=require(_0x2edf('0x3'));var rp=require(_0x2edf('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0x2edf('0x5'));var config=require(_0x2edf('0x6'));var attributes=require('./analyticMetric.attributes');module['exports']=function(_0x3cfc52,_0x3601aa){return _0x3cfc52['define']('AnalyticMetric',attributes,{'tableName':_0x2edf('0x7'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x682a=['../../config/environment','http','request','then','info','request\x20sent','AnalyticMetric,\x20%s,\x20%s,\x20%s','stringify','error','AnalyticMetric,\x20%s,\x20%s','message','result','catch','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc'];(function(_0x3df822,_0x299495){var _0x4e457d=function(_0x68a45f){while(--_0x68a45f){_0x3df822['push'](_0x3df822['shift']());}};_0x4e457d(++_0x299495);}(_0x682a,0xe9));var _0xa682=function(_0x55091d,_0x58429f){_0x55091d=_0x55091d-0x0;var _0x430cf5=_0x682a[_0x55091d];return _0x430cf5;};'use strict';var _=require('lodash');var util=require(_0xa682('0x0'));var moment=require(_0xa682('0x1'));var BPromise=require(_0xa682('0x2'));var rs=require(_0xa682('0x3'));var fs=require('fs');var Redis=require(_0xa682('0x4'));var db=require(_0xa682('0x5'))['db'];var utils=require(_0xa682('0x6'));var logger=require(_0xa682('0x7'))(_0xa682('0x8'));var config=require(_0xa682('0x9'));var jayson=require('jayson/promise');var client=jayson['client'][_0xa682('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x142dad,_0xc11ddc,_0x1e12c3){return new BPromise(function(_0x54d3ef,_0x206967){return client[_0xa682('0xb')](_0x142dad,_0x1e12c3)[_0xa682('0xc')](function(_0x492e00){logger[_0xa682('0xd')]('AnalyticMetric,\x20%s,\x20%s',_0xc11ddc,_0xa682('0xe'));logger['debug'](_0xa682('0xf'),_0xc11ddc,_0xa682('0xe'),JSON[_0xa682('0x10')](_0x492e00));if(_0x492e00[_0xa682('0x11')]){if(_0x492e00[_0xa682('0x11')]['code']===0x1f4){logger[_0xa682('0x11')](_0xa682('0x12'),_0xc11ddc,_0x492e00[_0xa682('0x11')]['message']);return _0x206967(_0x492e00[_0xa682('0x11')][_0xa682('0x13')]);}logger[_0xa682('0x11')]('AnalyticMetric,\x20%s,\x20%s',_0xc11ddc,_0x492e00[_0xa682('0x11')][_0xa682('0x13')]);return _0x54d3ef(_0x492e00['error'][_0xa682('0x13')]);}else{logger[_0xa682('0xd')](_0xa682('0x12'),_0xc11ddc,'request\x20sent');_0x54d3ef(_0x492e00[_0xa682('0x14')][_0xa682('0x13')]);}})[_0xa682('0x15')](function(_0x445805){logger[_0xa682('0x11')]('AnalyticMetric,\x20%s,\x20%s',_0xc11ddc,_0x445805);_0x206967(_0x445805);});});}
\ No newline at end of file
+var _0xed39=['AnalyticMetric,\x20%s,\x20%s','message','catch','util','bluebird','randomstring','../../config/utils','../../config/logger','rpc','jayson/promise','client','request','then','info','request\x20sent','debug','stringify','error','code'];(function(_0x31d849,_0x3db9bc){var _0x1c55b3=function(_0x3b8040){while(--_0x3b8040){_0x31d849['push'](_0x31d849['shift']());}};_0x1c55b3(++_0x3db9bc);}(_0xed39,0xfa));var _0x9ed3=function(_0x3677bd,_0x70d6e7){_0x3677bd=_0x3677bd-0x0;var _0x398c97=_0xed39[_0x3677bd];return _0x398c97;};'use strict';var _=require('lodash');var util=require(_0x9ed3('0x0'));var moment=require('moment');var BPromise=require(_0x9ed3('0x1'));var rs=require(_0x9ed3('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0x9ed3('0x3'));var logger=require(_0x9ed3('0x4'))(_0x9ed3('0x5'));var config=require('../../config/environment');var jayson=require(_0x9ed3('0x6'));var client=jayson[_0x9ed3('0x7')]['http']({'port':0x232a});function respondWithRpcPromise(_0x57a748,_0x37191a,_0x35e6b2){return new BPromise(function(_0x2fcb4c,_0x54c6b6){return client[_0x9ed3('0x8')](_0x57a748,_0x35e6b2)[_0x9ed3('0x9')](function(_0x300162){logger[_0x9ed3('0xa')]('AnalyticMetric,\x20%s,\x20%s',_0x37191a,_0x9ed3('0xb'));logger[_0x9ed3('0xc')]('AnalyticMetric,\x20%s,\x20%s,\x20%s',_0x37191a,_0x9ed3('0xb'),JSON[_0x9ed3('0xd')](_0x300162));if(_0x300162[_0x9ed3('0xe')]){if(_0x300162[_0x9ed3('0xe')][_0x9ed3('0xf')]===0x1f4){logger[_0x9ed3('0xe')](_0x9ed3('0x10'),_0x37191a,_0x300162[_0x9ed3('0xe')]['message']);return _0x54c6b6(_0x300162[_0x9ed3('0xe')][_0x9ed3('0x11')]);}logger[_0x9ed3('0xe')](_0x9ed3('0x10'),_0x37191a,_0x300162[_0x9ed3('0xe')][_0x9ed3('0x11')]);return _0x2fcb4c(_0x300162[_0x9ed3('0xe')]['message']);}else{logger[_0x9ed3('0xa')](_0x9ed3('0x10'),_0x37191a,'request\x20sent');_0x2fcb4c(_0x300162['result'][_0x9ed3('0x11')]);}})[_0x9ed3('0x12')](function(_0x2ee176){logger[_0x9ed3('0xe')]('AnalyticMetric,\x20%s,\x20%s',_0x37191a,_0x2ee176);_0x54c6b6(_0x2ee176);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf603=['isAuthenticated','show','post','create','put','update','delete','multer','util','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./analyticMetric.controller','get','/:id'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xf603,0x124));var _0x3f60=function(_0x543f11,_0x5b88f1){_0x543f11=_0x543f11-0x0;var _0x2e42c2=_0xf603[_0x543f11];return _0x2e42c2;};'use strict';var multer=require(_0x3f60('0x0'));var util=require(_0x3f60('0x1'));var path=require('path');var timeout=require(_0x3f60('0x2'));var express=require(_0x3f60('0x3'));var router=express[_0x3f60('0x4')]();var fs_extra=require(_0x3f60('0x5'));var auth=require(_0x3f60('0x6'));var interaction=require(_0x3f60('0x7'));var config=require(_0x3f60('0x8'));var controller=require(_0x3f60('0x9'));router[_0x3f60('0xa')]('/',auth['isAuthenticated'](),controller['index']);router['get'](_0x3f60('0xb'),auth[_0x3f60('0xc')](),controller[_0x3f60('0xd')]);router[_0x3f60('0xe')]('/',auth[_0x3f60('0xc')](),controller[_0x3f60('0xf')]);router[_0x3f60('0x10')](_0x3f60('0xb'),auth[_0x3f60('0xc')](),controller[_0x3f60('0x11')]);router[_0x3f60('0x12')](_0x3f60('0xb'),auth[_0x3f60('0xc')](),controller['destroy']);module['exports']=router;
\ No newline at end of file
+var _0x236d=['multer','util','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','get','isAuthenticated','index','show','post','create','put','update','delete','destroy','exports'];(function(_0x58ae97,_0x3027f4){var _0x5ac53b=function(_0x3c39e5){while(--_0x3c39e5){_0x58ae97['push'](_0x58ae97['shift']());}};_0x5ac53b(++_0x3027f4);}(_0x236d,0x7e));var _0xd236=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x236d[_0x3dd15e];return _0x231fd0;};'use strict';var multer=require(_0xd236('0x0'));var util=require(_0xd236('0x1'));var path=require('path');var timeout=require(_0xd236('0x2'));var express=require('express');var router=express[_0xd236('0x3')]();var fs_extra=require(_0xd236('0x4'));var auth=require(_0xd236('0x5'));var interaction=require(_0xd236('0x6'));var config=require('../../config/environment');var controller=require('./analyticMetric.controller');router[_0xd236('0x7')]('/',auth[_0xd236('0x8')](),controller[_0xd236('0x9')]);router[_0xd236('0x7')]('/:id',auth['isAuthenticated'](),controller[_0xd236('0xa')]);router[_0xd236('0xb')]('/',auth['isAuthenticated'](),controller[_0xd236('0xc')]);router[_0xd236('0xd')]('/:id',auth[_0xd236('0x8')](),controller[_0xd236('0xe')]);router[_0xd236('0xf')]('/:id',auth[_0xd236('0x8')](),controller[_0xd236('0x10')]);module[_0xd236('0x11')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xae0f=['TEXT'];(function(_0x2c507b,_0x343d21){var _0x346f0d=function(_0x26c941){while(--_0x26c941){_0x2c507b['push'](_0x2c507b['shift']());}};_0x346f0d(++_0x343d21);}(_0xae0f,0x65));var _0xfae0=function(_0x1718c4,_0x38c811){_0x1718c4=_0x1718c4-0x0;var _0x49f5eb=_0xae0f[_0x1718c4];return _0x49f5eb;};'use strict';var Sequelize=require('sequelize');module['exports']={'tree':{'type':Sequelize[_0xfae0('0x0')],'allowNull':![]}};
\ No newline at end of file
+var _0x90eb=['TEXT','sequelize','exports'];(function(_0x566ae8,_0x18afa5){var _0x1ed94d=function(_0x5d4eea){while(--_0x5d4eea){_0x566ae8['push'](_0x566ae8['shift']());}};_0x1ed94d(++_0x18afa5);}(_0x90eb,0x82));var _0xb90e=function(_0x49dca4,_0x35032f){_0x49dca4=_0x49dca4-0x0;var _0x3f5ce8=_0x90eb[_0x49dca4];return _0x3f5ce8;};'use strict';var Sequelize=require(_0xb90e('0x0'));module[_0xb90e('0x1')]={'tree':{'type':Sequelize[_0xb90e('0x2')],'allowNull':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xce4c=['update','destroy','eml-format','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','json','offset','undefined','limit','count','Content-Range','apply','reject','save','then','error','stack','name','send','index','map','AnalyticTreeReport','rawAttributes','fieldName','type','model','query','keys','filters','intersection','attributes','fields','length','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','catch','show','params','find','create','body'];(function(_0x15cef4,_0x448b97){var _0x384430=function(_0x38ebce){while(--_0x38ebce){_0x15cef4['push'](_0x15cef4['shift']());}};_0x384430(++_0x448b97);}(_0xce4c,0xec));var _0xcce4=function(_0x3a03be,_0x597b9a){_0x3a03be=_0x3a03be-0x0;var _0xd572b8=_0xce4c[_0x3a03be];return _0xd572b8;};'use strict';var emlformat=require(_0xcce4('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xcce4('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xcce4('0x2'));var moment=require(_0xcce4('0x3'));var BPromise=require(_0xcce4('0x4'));var Mustache=require(_0xcce4('0x5'));var util=require(_0xcce4('0x6'));var path=require(_0xcce4('0x7'));var sox=require(_0xcce4('0x8'));var csv=require(_0xcce4('0x9'));var ejs=require(_0xcce4('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xcce4('0xb'));var squel=require(_0xcce4('0xc'));var crypto=require(_0xcce4('0xd'));var jsforce=require(_0xcce4('0xe'));var deskjs=require(_0xcce4('0xf'));var toCsv=require(_0xcce4('0x9'));var querystring=require(_0xcce4('0x10'));var Papa=require(_0xcce4('0x11'));var Redis=require(_0xcce4('0x12'));var authService=require('../../components/auth/service');var qs=require(_0xcce4('0x13'));var as=require(_0xcce4('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xcce4('0x15'))(_0xcce4('0x16'));var utils=require(_0xcce4('0x17'));var config=require(_0xcce4('0x18'));var licenseUtil=require(_0xcce4('0x19'));var db=require(_0xcce4('0x1a'))['db'];function respondWithStatusCode(_0x1820d3,_0x349d8b){_0x349d8b=_0x349d8b||0xcc;return function(_0xdaed88){if(_0xdaed88){return _0x1820d3[_0xcce4('0x1b')](_0x349d8b);}return _0x1820d3['status'](_0x349d8b)[_0xcce4('0x1c')]();};}function respondWithResult(_0x1c5a27,_0x29ac6){_0x29ac6=_0x29ac6||0xc8;return function(_0x44c4a4){if(_0x44c4a4){return _0x1c5a27[_0xcce4('0x1d')](_0x29ac6)[_0xcce4('0x1e')](_0x44c4a4);}};}function respondWithFilteredResult(_0x125f91,_0x290460){return function(_0x103223){if(_0x103223){var _0xdba7e1=typeof _0x290460[_0xcce4('0x1f')]===_0xcce4('0x20')&&typeof _0x290460[_0xcce4('0x21')]==='undefined';var _0x52fb65=_0x103223[_0xcce4('0x22')];var _0x70830=_0xdba7e1?0x0:_0x290460[_0xcce4('0x1f')];var _0x55004f=_0xdba7e1?_0x103223[_0xcce4('0x22')]:_0x290460[_0xcce4('0x1f')]+_0x290460[_0xcce4('0x21')];var _0x5a4a7e;if(_0x55004f>=_0x52fb65){_0x55004f=_0x52fb65;_0x5a4a7e=0xc8;}else{_0x5a4a7e=0xce;}_0x125f91[_0xcce4('0x1d')](_0x5a4a7e);return _0x125f91['set'](_0xcce4('0x23'),_0x70830+'-'+_0x55004f+'/'+_0x52fb65)['json'](_0x103223);}return null;};}function patchUpdates(_0x41337c){return function(_0x2f3e42){try{jsonpatch[_0xcce4('0x24')](_0x2f3e42,_0x41337c,!![]);}catch(_0x1144bd){return BPromise[_0xcce4('0x25')](_0x1144bd);}return _0x2f3e42[_0xcce4('0x26')]();};}function saveUpdates(_0x186971,_0x527b4f){return function(_0xcd0b7){if(_0xcd0b7){return _0xcd0b7['update'](_0x186971)[_0xcce4('0x27')](function(_0x5c1b18){return _0x5c1b18;});}return null;};}function removeEntity(_0x47cbd8,_0x527d5c){return function(_0xdfc6cd){if(_0xdfc6cd){return _0xdfc6cd['destroy']()[_0xcce4('0x27')](function(){_0x47cbd8[_0xcce4('0x1d')](0xcc)['end']();});}};}function handleEntityNotFound(_0x464849,_0x5a26ae){return function(_0x582ff6){if(!_0x582ff6){_0x464849[_0xcce4('0x1b')](0x194);}return _0x582ff6;};}function handleError(_0x1320f0,_0x43e4b8){_0x43e4b8=_0x43e4b8||0x1f4;return function(_0x32d53f){logger[_0xcce4('0x28')](_0x32d53f[_0xcce4('0x29')]);if(_0x32d53f[_0xcce4('0x2a')]){delete _0x32d53f[_0xcce4('0x2a')];}_0x1320f0['status'](_0x43e4b8)[_0xcce4('0x2b')](_0x32d53f);};}exports[_0xcce4('0x2c')]=function(_0x5bc24a,_0x4d34f7){var _0x4d5e8c={},_0x3441a2={},_0x106fcc={'count':0x0,'rows':[]};var _0x508266=_[_0xcce4('0x2d')](db[_0xcce4('0x2e')][_0xcce4('0x2f')],function(_0x5e9143){return{'name':_0x5e9143[_0xcce4('0x30')],'type':_0x5e9143[_0xcce4('0x31')]['key']};});_0x3441a2[_0xcce4('0x32')]=_['map'](_0x508266,_0xcce4('0x2a'));_0x3441a2[_0xcce4('0x33')]=_[_0xcce4('0x34')](_0x5bc24a['query']);_0x3441a2[_0xcce4('0x35')]=_[_0xcce4('0x36')](_0x3441a2[_0xcce4('0x32')],_0x3441a2[_0xcce4('0x33')]);_0x4d5e8c[_0xcce4('0x37')]=_[_0xcce4('0x36')](_0x3441a2[_0xcce4('0x32')],qs['fields'](_0x5bc24a[_0xcce4('0x33')][_0xcce4('0x38')]));_0x4d5e8c[_0xcce4('0x37')]=_0x4d5e8c[_0xcce4('0x37')][_0xcce4('0x39')]?_0x4d5e8c['attributes']:_0x3441a2[_0xcce4('0x32')];if(!_0x5bc24a[_0xcce4('0x33')]['hasOwnProperty'](_0xcce4('0x3a'))){_0x4d5e8c[_0xcce4('0x21')]=qs[_0xcce4('0x21')](_0x5bc24a[_0xcce4('0x33')]['limit']);_0x4d5e8c[_0xcce4('0x1f')]=qs[_0xcce4('0x1f')](_0x5bc24a[_0xcce4('0x33')][_0xcce4('0x1f')]);}_0x4d5e8c[_0xcce4('0x3b')]=qs[_0xcce4('0x3c')](_0x5bc24a['query']['sort']);_0x4d5e8c[_0xcce4('0x3d')]=qs[_0xcce4('0x35')](_[_0xcce4('0x3e')](_0x5bc24a[_0xcce4('0x33')],_0x3441a2[_0xcce4('0x35')]),_0x508266);if(_0x5bc24a[_0xcce4('0x33')][_0xcce4('0x3f')]){_0x4d5e8c['where']=_[_0xcce4('0x40')](_0x4d5e8c[_0xcce4('0x3d')],{'$or':_[_0xcce4('0x2d')](_0x508266,function(_0x93027e){if(_0x93027e[_0xcce4('0x31')]!==_0xcce4('0x41')){var _0x3f347a={};_0x3f347a[_0x93027e[_0xcce4('0x2a')]]={'$like':'%'+_0x5bc24a['query'][_0xcce4('0x3f')]+'%'};return _0x3f347a;}})});}_0x4d5e8c=_['merge']({},_0x4d5e8c,_0x5bc24a[_0xcce4('0x42')]);var _0x9fe2a5={'where':_0x4d5e8c[_0xcce4('0x3d')]};return db[_0xcce4('0x2e')][_0xcce4('0x22')](_0x9fe2a5)[_0xcce4('0x27')](function(_0x3443d2){_0x106fcc[_0xcce4('0x22')]=_0x3443d2;if(_0x5bc24a['query'][_0xcce4('0x43')]){_0x4d5e8c[_0xcce4('0x44')]=[{'all':!![]}];}return db[_0xcce4('0x2e')][_0xcce4('0x45')](_0x4d5e8c);})[_0xcce4('0x27')](function(_0x28a4df){_0x106fcc['rows']=_0x28a4df;return _0x106fcc;})[_0xcce4('0x27')](respondWithFilteredResult(_0x4d34f7,_0x4d5e8c))[_0xcce4('0x46')](handleError(_0x4d34f7,null));};exports[_0xcce4('0x47')]=function(_0x3436c2,_0x44f6a8){var _0x379f13={'raw':!![],'where':{'id':_0x3436c2[_0xcce4('0x48')]['id']}},_0x485456={};_0x485456[_0xcce4('0x32')]=_['keys'](db[_0xcce4('0x2e')]['rawAttributes']);_0x485456[_0xcce4('0x33')]=_[_0xcce4('0x34')](_0x3436c2['query']);_0x485456['filters']=_[_0xcce4('0x36')](_0x485456[_0xcce4('0x32')],_0x485456['query']);_0x379f13['attributes']=_[_0xcce4('0x36')](_0x485456['model'],qs['fields'](_0x3436c2[_0xcce4('0x33')]['fields']));_0x379f13[_0xcce4('0x37')]=_0x379f13[_0xcce4('0x37')][_0xcce4('0x39')]?_0x379f13['attributes']:_0x485456['model'];if(_0x3436c2[_0xcce4('0x33')]['includeAll']){_0x379f13[_0xcce4('0x44')]=[{'all':!![]}];}_0x379f13=_['merge']({},_0x379f13,_0x3436c2['options']);return db[_0xcce4('0x2e')][_0xcce4('0x49')](_0x379f13)[_0xcce4('0x27')](handleEntityNotFound(_0x44f6a8,null))[_0xcce4('0x27')](respondWithResult(_0x44f6a8,null))[_0xcce4('0x46')](handleError(_0x44f6a8,null));};exports[_0xcce4('0x4a')]=function(_0x2e735d,_0x44f178){return db[_0xcce4('0x2e')][_0xcce4('0x4a')](_0x2e735d[_0xcce4('0x4b')],{})[_0xcce4('0x27')](respondWithResult(_0x44f178,0xc9))[_0xcce4('0x46')](handleError(_0x44f178,null));};exports[_0xcce4('0x4c')]=function(_0x5a4463,_0x129966){if(_0x5a4463[_0xcce4('0x4b')]['id']){delete _0x5a4463[_0xcce4('0x4b')]['id'];}return db['AnalyticTreeReport'][_0xcce4('0x49')]({'where':{'id':_0x5a4463['params']['id']}})['then'](handleEntityNotFound(_0x129966,null))['then'](saveUpdates(_0x5a4463[_0xcce4('0x4b')],null))[_0xcce4('0x27')](respondWithResult(_0x129966,null))[_0xcce4('0x46')](handleError(_0x129966,null));};exports[_0xcce4('0x4d')]=function(_0xd9a2a8,_0x42b2c5){return db[_0xcce4('0x2e')]['find']({'where':{'id':_0xd9a2a8[_0xcce4('0x48')]['id']}})['then'](handleEntityNotFound(_0x42b2c5,null))[_0xcce4('0x27')](removeEntity(_0x42b2c5,null))[_0xcce4('0x46')](handleError(_0x42b2c5,null));};
\ No newline at end of file
+var _0x19ab=['update','then','sendStatus','error','stack','name','send','map','fieldName','type','key','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','filters','pick','filter','merge','VIRTUAL','options','includeAll','AnalyticTreeReport','findAll','catch','rawAttributes','include','find','create','body','destroy','params','eml-format','moment','bluebird','mustache','util','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','status','end','json','offset','limit','undefined','count','set','Content-Range','apply','reject'];(function(_0x298ed3,_0x4ab5e1){var _0x5aad28=function(_0x168687){while(--_0x168687){_0x298ed3['push'](_0x298ed3['shift']());}};_0x5aad28(++_0x4ab5e1);}(_0x19ab,0xff));var _0xb19a=function(_0x1ee2c7,_0x13d59e){_0x1ee2c7=_0x1ee2c7-0x0;var _0x5b05dc=_0x19ab[_0x1ee2c7];return _0x5b05dc;};'use strict';var emlformat=require(_0xb19a('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0xb19a('0x1'));var BPromise=require(_0xb19a('0x2'));var Mustache=require(_0xb19a('0x3'));var util=require(_0xb19a('0x4'));var path=require('path');var sox=require('sox');var csv=require(_0xb19a('0x5'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xb19a('0x6'));var _=require(_0xb19a('0x7'));var squel=require(_0xb19a('0x8'));var crypto=require(_0xb19a('0x9'));var jsforce=require('jsforce');var deskjs=require(_0xb19a('0xa'));var toCsv=require('to-csv');var querystring=require(_0xb19a('0xb'));var Papa=require(_0xb19a('0xc'));var Redis=require(_0xb19a('0xd'));var authService=require('../../components/auth/service');var qs=require(_0xb19a('0xe'));var as=require(_0xb19a('0xf'));var hardwareService=require(_0xb19a('0x10'));var logger=require(_0xb19a('0x11'))(_0xb19a('0x12'));var utils=require(_0xb19a('0x13'));var config=require(_0xb19a('0x14'));var licenseUtil=require('../../config/license/util');var db=require(_0xb19a('0x15'))['db'];function respondWithStatusCode(_0x4b260c,_0x1f30bf){_0x1f30bf=_0x1f30bf||0xcc;return function(_0xe0a3a1){if(_0xe0a3a1){return _0x4b260c['sendStatus'](_0x1f30bf);}return _0x4b260c[_0xb19a('0x16')](_0x1f30bf)[_0xb19a('0x17')]();};}function respondWithResult(_0x5e5efd,_0x11ac00){_0x11ac00=_0x11ac00||0xc8;return function(_0x2d2f58){if(_0x2d2f58){return _0x5e5efd[_0xb19a('0x16')](_0x11ac00)[_0xb19a('0x18')](_0x2d2f58);}};}function respondWithFilteredResult(_0x111494,_0x49b130){return function(_0x3a4c3f){if(_0x3a4c3f){var _0x35d52c=typeof _0x49b130[_0xb19a('0x19')]==='undefined'&&typeof _0x49b130[_0xb19a('0x1a')]===_0xb19a('0x1b');var _0xf0b485=_0x3a4c3f[_0xb19a('0x1c')];var _0x4883b4=_0x35d52c?0x0:_0x49b130['offset'];var _0x2a9a5a=_0x35d52c?_0x3a4c3f['count']:_0x49b130['offset']+_0x49b130[_0xb19a('0x1a')];var _0x337ff4;if(_0x2a9a5a>=_0xf0b485){_0x2a9a5a=_0xf0b485;_0x337ff4=0xc8;}else{_0x337ff4=0xce;}_0x111494[_0xb19a('0x16')](_0x337ff4);return _0x111494[_0xb19a('0x1d')](_0xb19a('0x1e'),_0x4883b4+'-'+_0x2a9a5a+'/'+_0xf0b485)['json'](_0x3a4c3f);}return null;};}function patchUpdates(_0x3bca44){return function(_0x254bf5){try{jsonpatch[_0xb19a('0x1f')](_0x254bf5,_0x3bca44,!![]);}catch(_0x28b555){return BPromise[_0xb19a('0x20')](_0x28b555);}return _0x254bf5['save']();};}function saveUpdates(_0x3b9d96,_0x7bca73){return function(_0xb7cca6){if(_0xb7cca6){return _0xb7cca6[_0xb19a('0x21')](_0x3b9d96)[_0xb19a('0x22')](function(_0x2de4e7){return _0x2de4e7;});}return null;};}function removeEntity(_0x58f335,_0x539ff7){return function(_0x5be03c){if(_0x5be03c){return _0x5be03c['destroy']()[_0xb19a('0x22')](function(){_0x58f335['status'](0xcc)[_0xb19a('0x17')]();});}};}function handleEntityNotFound(_0x4bf687,_0xda2033){return function(_0x167b95){if(!_0x167b95){_0x4bf687[_0xb19a('0x23')](0x194);}return _0x167b95;};}function handleError(_0x266a6c,_0x89d18a){_0x89d18a=_0x89d18a||0x1f4;return function(_0x374fd1){logger[_0xb19a('0x24')](_0x374fd1[_0xb19a('0x25')]);if(_0x374fd1['name']){delete _0x374fd1[_0xb19a('0x26')];}_0x266a6c['status'](_0x89d18a)[_0xb19a('0x27')](_0x374fd1);};}exports['index']=function(_0x20dfbf,_0x140a10){var _0x4a0605={},_0x3d45fa={},_0xc6eef2={'count':0x0,'rows':[]};var _0x326cbc=_[_0xb19a('0x28')](db['AnalyticTreeReport']['rawAttributes'],function(_0x1c3316){return{'name':_0x1c3316[_0xb19a('0x29')],'type':_0x1c3316[_0xb19a('0x2a')][_0xb19a('0x2b')]};});_0x3d45fa[_0xb19a('0x2c')]=_[_0xb19a('0x28')](_0x326cbc,'name');_0x3d45fa[_0xb19a('0x2d')]=_[_0xb19a('0x2e')](_0x20dfbf['query']);_0x3d45fa['filters']=_[_0xb19a('0x2f')](_0x3d45fa[_0xb19a('0x2c')],_0x3d45fa[_0xb19a('0x2d')]);_0x4a0605[_0xb19a('0x30')]=_['intersection'](_0x3d45fa[_0xb19a('0x2c')],qs[_0xb19a('0x31')](_0x20dfbf[_0xb19a('0x2d')][_0xb19a('0x31')]));_0x4a0605[_0xb19a('0x30')]=_0x4a0605['attributes'][_0xb19a('0x32')]?_0x4a0605[_0xb19a('0x30')]:_0x3d45fa[_0xb19a('0x2c')];if(!_0x20dfbf[_0xb19a('0x2d')][_0xb19a('0x33')]('nolimit')){_0x4a0605['limit']=qs[_0xb19a('0x1a')](_0x20dfbf[_0xb19a('0x2d')][_0xb19a('0x1a')]);_0x4a0605[_0xb19a('0x19')]=qs[_0xb19a('0x19')](_0x20dfbf[_0xb19a('0x2d')][_0xb19a('0x19')]);}_0x4a0605[_0xb19a('0x34')]=qs[_0xb19a('0x35')](_0x20dfbf[_0xb19a('0x2d')][_0xb19a('0x35')]);_0x4a0605[_0xb19a('0x36')]=qs[_0xb19a('0x37')](_[_0xb19a('0x38')](_0x20dfbf['query'],_0x3d45fa[_0xb19a('0x37')]),_0x326cbc);if(_0x20dfbf[_0xb19a('0x2d')][_0xb19a('0x39')]){_0x4a0605[_0xb19a('0x36')]=_[_0xb19a('0x3a')](_0x4a0605['where'],{'$or':_['map'](_0x326cbc,function(_0x3f6c95){if(_0x3f6c95[_0xb19a('0x2a')]!==_0xb19a('0x3b')){var _0x5bc064={};_0x5bc064[_0x3f6c95[_0xb19a('0x26')]]={'$like':'%'+_0x20dfbf[_0xb19a('0x2d')][_0xb19a('0x39')]+'%'};return _0x5bc064;}})});}_0x4a0605=_['merge']({},_0x4a0605,_0x20dfbf[_0xb19a('0x3c')]);var _0x261a9a={'where':_0x4a0605['where']};return db['AnalyticTreeReport'][_0xb19a('0x1c')](_0x261a9a)[_0xb19a('0x22')](function(_0x3013e2){_0xc6eef2[_0xb19a('0x1c')]=_0x3013e2;if(_0x20dfbf[_0xb19a('0x2d')][_0xb19a('0x3d')]){_0x4a0605['include']=[{'all':!![]}];}return db[_0xb19a('0x3e')][_0xb19a('0x3f')](_0x4a0605);})[_0xb19a('0x22')](function(_0x480b7d){_0xc6eef2['rows']=_0x480b7d;return _0xc6eef2;})[_0xb19a('0x22')](respondWithFilteredResult(_0x140a10,_0x4a0605))[_0xb19a('0x40')](handleError(_0x140a10,null));};exports['show']=function(_0x4b9e6e,_0x83ceb8){var _0x535d8b={'raw':!![],'where':{'id':_0x4b9e6e['params']['id']}},_0x1671d2={};_0x1671d2[_0xb19a('0x2c')]=_[_0xb19a('0x2e')](db[_0xb19a('0x3e')][_0xb19a('0x41')]);_0x1671d2[_0xb19a('0x2d')]=_[_0xb19a('0x2e')](_0x4b9e6e[_0xb19a('0x2d')]);_0x1671d2['filters']=_['intersection'](_0x1671d2[_0xb19a('0x2c')],_0x1671d2['query']);_0x535d8b['attributes']=_[_0xb19a('0x2f')](_0x1671d2[_0xb19a('0x2c')],qs['fields'](_0x4b9e6e[_0xb19a('0x2d')][_0xb19a('0x31')]));_0x535d8b[_0xb19a('0x30')]=_0x535d8b[_0xb19a('0x30')][_0xb19a('0x32')]?_0x535d8b[_0xb19a('0x30')]:_0x1671d2[_0xb19a('0x2c')];if(_0x4b9e6e[_0xb19a('0x2d')][_0xb19a('0x3d')]){_0x535d8b[_0xb19a('0x42')]=[{'all':!![]}];}_0x535d8b=_[_0xb19a('0x3a')]({},_0x535d8b,_0x4b9e6e['options']);return db[_0xb19a('0x3e')][_0xb19a('0x43')](_0x535d8b)[_0xb19a('0x22')](handleEntityNotFound(_0x83ceb8,null))[_0xb19a('0x22')](respondWithResult(_0x83ceb8,null))['catch'](handleError(_0x83ceb8,null));};exports['create']=function(_0x512e41,_0x1ee551){return db[_0xb19a('0x3e')][_0xb19a('0x44')](_0x512e41[_0xb19a('0x45')],{})[_0xb19a('0x22')](respondWithResult(_0x1ee551,0xc9))[_0xb19a('0x40')](handleError(_0x1ee551,null));};exports[_0xb19a('0x21')]=function(_0x44c9fb,_0x87ba72){if(_0x44c9fb['body']['id']){delete _0x44c9fb[_0xb19a('0x45')]['id'];}return db[_0xb19a('0x3e')][_0xb19a('0x43')]({'where':{'id':_0x44c9fb['params']['id']}})[_0xb19a('0x22')](handleEntityNotFound(_0x87ba72,null))[_0xb19a('0x22')](saveUpdates(_0x44c9fb[_0xb19a('0x45')],null))[_0xb19a('0x22')](respondWithResult(_0x87ba72,null))[_0xb19a('0x40')](handleError(_0x87ba72,null));};exports[_0xb19a('0x46')]=function(_0xf2f643,_0x5a2a60){return db[_0xb19a('0x3e')]['find']({'where':{'id':_0xf2f643[_0xb19a('0x47')]['id']}})[_0xb19a('0x22')](handleEntityNotFound(_0x5a2a60,null))['then'](removeEntity(_0x5a2a60,null))[_0xb19a('0x40')](handleError(_0x5a2a60,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf51d=['rimraf','./analyticTreeReport.attributes','exports','define','lodash','../../config/logger','api','bluebird','request-promise','path'];(function(_0x3115fa,_0x1bf37e){var _0x3a5567=function(_0x18f739){while(--_0x18f739){_0x3115fa['push'](_0x3115fa['shift']());}};_0x3a5567(++_0x1bf37e);}(_0xf51d,0x144));var _0xdf51=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xf51d[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0xdf51('0x0'));var util=require('util');var logger=require(_0xdf51('0x1'))(_0xdf51('0x2'));var moment=require('moment');var BPromise=require(_0xdf51('0x3'));var rp=require(_0xdf51('0x4'));var fs=require('fs');var path=require(_0xdf51('0x5'));var rimraf=require(_0xdf51('0x6'));var config=require('../../config/environment');var attributes=require(_0xdf51('0x7'));module[_0xdf51('0x8')]=function(_0xe5f57e,_0x2ac955){return _0xe5f57e[_0xdf51('0x9')]('AnalyticTreeReport',attributes,{'tableName':'analytics_report_trees','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x58a4=['bluebird','request-promise','path','./analyticTreeReport.attributes','AnalyticTreeReport','lodash','util','../../config/logger'];(function(_0x119cc2,_0x501844){var _0xeb6120=function(_0xe4544b){while(--_0xe4544b){_0x119cc2['push'](_0x119cc2['shift']());}};_0xeb6120(++_0x501844);}(_0x58a4,0x1dd));var _0x458a=function(_0x1a1dd7,_0x9e586a){_0x1a1dd7=_0x1a1dd7-0x0;var _0x5e5ac6=_0x58a4[_0x1a1dd7];return _0x5e5ac6;};'use strict';var _=require(_0x458a('0x0'));var util=require(_0x458a('0x1'));var logger=require(_0x458a('0x2'))('api');var moment=require('moment');var BPromise=require(_0x458a('0x3'));var rp=require(_0x458a('0x4'));var fs=require('fs');var path=require(_0x458a('0x5'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0x458a('0x6'));module['exports']=function(_0x1a9461,_0x510200){return _0x1a9461['define'](_0x458a('0x7'),attributes,{'tableName':'analytics_report_trees','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1261=['then','info','AnalyticTreeReport,\x20%s,\x20%s','request\x20sent','AnalyticTreeReport,\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(_0xafc86c,_0x5b0978){var _0x27fb0d=function(_0x5bbf9f){while(--_0x5bbf9f){_0xafc86c['push'](_0xafc86c['shift']());}};_0x27fb0d(++_0x5b0978);}(_0x1261,0x144));var _0x1126=function(_0x14090e,_0x30c2f7){_0x14090e=_0x14090e-0x0;var _0x554da7=_0x1261[_0x14090e];return _0x554da7;};'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')]('AnalyticTreeReport,\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
+var _0x1261=['then','info','AnalyticTreeReport,\x20%s,\x20%s','request\x20sent','AnalyticTreeReport,\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(_0x3bbf0b,_0x4e16fe){var _0x38ab54=function(_0x60789){while(--_0x60789){_0x3bbf0b['push'](_0x3bbf0b['shift']());}};_0x38ab54(++_0x4e16fe);}(_0x1261,0x144));var _0x1126=function(_0xfbe06e,_0x2fb7ab){_0xfbe06e=_0xfbe06e-0x0;var _0x24e5b6=_0x1261[_0xfbe06e];return _0x24e5b6;};'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')]('AnalyticTreeReport,\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 _0x1937=['connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./analyticTreeReport.controller','get','isAuthenticated','index','/:id','show','post','create','put','update','destroy','exports','multer','util','path'];(function(_0x499e45,_0x5e70b0){var _0x3956c2=function(_0x42c585){while(--_0x42c585){_0x499e45['push'](_0x499e45['shift']());}};_0x3956c2(++_0x5e70b0);}(_0x1937,0x177));var _0x7193=function(_0x49cc00,_0x4c67e4){_0x49cc00=_0x49cc00-0x0;var _0x3289d2=_0x1937[_0x49cc00];return _0x3289d2;};'use strict';var multer=require(_0x7193('0x0'));var util=require(_0x7193('0x1'));var path=require(_0x7193('0x2'));var timeout=require(_0x7193('0x3'));var express=require(_0x7193('0x4'));var router=express[_0x7193('0x5')]();var fs_extra=require('fs-extra');var auth=require(_0x7193('0x6'));var interaction=require(_0x7193('0x7'));var config=require(_0x7193('0x8'));var controller=require(_0x7193('0x9'));router[_0x7193('0xa')]('/',auth[_0x7193('0xb')](),controller[_0x7193('0xc')]);router['get'](_0x7193('0xd'),auth['isAuthenticated'](),controller[_0x7193('0xe')]);router[_0x7193('0xf')]('/',auth['isAuthenticated'](),controller[_0x7193('0x10')]);router[_0x7193('0x11')](_0x7193('0xd'),auth['isAuthenticated'](),controller[_0x7193('0x12')]);router['delete']('/:id',auth[_0x7193('0xb')](),controller[_0x7193('0x13')]);module[_0x7193('0x14')]=router;
\ No newline at end of file
+var _0xeb25=['path','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get','index','/:id','isAuthenticated','post','create','put','update','delete','destroy','exports'];(function(_0x497a5b,_0x493724){var _0x3163d7=function(_0x31777e){while(--_0x31777e){_0x497a5b['push'](_0x497a5b['shift']());}};_0x3163d7(++_0x493724);}(_0xeb25,0x80));var _0x5eb2=function(_0x33feed,_0xbc8e19){_0x33feed=_0x33feed-0x0;var _0x105247=_0xeb25[_0x33feed];return _0x105247;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x5eb2('0x0'));var timeout=require('connect-timeout');var express=require('express');var router=express['Router']();var fs_extra=require(_0x5eb2('0x1'));var auth=require(_0x5eb2('0x2'));var interaction=require(_0x5eb2('0x3'));var config=require(_0x5eb2('0x4'));var controller=require('./analyticTreeReport.controller');router[_0x5eb2('0x5')]('/',auth['isAuthenticated'](),controller[_0x5eb2('0x6')]);router[_0x5eb2('0x5')](_0x5eb2('0x7'),auth[_0x5eb2('0x8')](),controller['show']);router[_0x5eb2('0x9')]('/',auth[_0x5eb2('0x8')](),controller[_0x5eb2('0xa')]);router[_0x5eb2('0xb')](_0x5eb2('0x7'),auth['isAuthenticated'](),controller[_0x5eb2('0xc')]);router[_0x5eb2('0xd')](_0x5eb2('0x7'),auth[_0x5eb2('0x8')](),controller[_0x5eb2('0xe')]);module[_0x5eb2('0xf')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x12fd=['STRING','sequelize','exports'];(function(_0x31d37c,_0x572b1f){var _0x25c904=function(_0x6358f0){while(--_0x6358f0){_0x31d37c['push'](_0x31d37c['shift']());}};_0x25c904(++_0x572b1f);}(_0x12fd,0x199));var _0xd12f=function(_0x412590,_0x40cf12){_0x412590=_0x412590-0x0;var _0x53e623=_0x12fd[_0x412590];return _0x53e623;};'use strict';var Sequelize=require(_0xd12f('0x0'));module[_0xd12f('0x1')]={'name':{'type':Sequelize[_0xd12f('0x2')]},'basename':{'type':Sequelize[_0xd12f('0x2')]},'type':{'type':Sequelize[_0xd12f('0x2')]}};
\ No newline at end of file
+var _0xfc1e=['STRING'];(function(_0x438434,_0x36f21f){var _0x3b97c9=function(_0x1ecb7b){while(--_0x1ecb7b){_0x438434['push'](_0x438434['shift']());}};_0x3b97c9(++_0x36f21f);}(_0xfc1e,0x1c9));var _0xefc1=function(_0x420f2a,_0x2cc58d){_0x420f2a=_0x420f2a-0x0;var _0x28f802=_0xfc1e[_0x420f2a];return _0x28f802;};'use strict';var Sequelize=require('sequelize');module['exports']={'name':{'type':Sequelize['STRING']},'basename':{'type':Sequelize[_0xefc1('0x0')]},'type':{'type':Sequelize[_0xefc1('0x0')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1534=['pick','filter','where','merge','options','includeAll','findAll','catch','show','include','clone','params','omit','updatedAt','body','createdAt','create','update','find','originalname','basename','file','mimetype','download','findOne','ChatOfflineMessageId','join','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','end','status','offset','undefined','limit','count','set','json','reject','save','destroy','then','error','stack','name','index','map','Attachment','rawAttributes','type','query','keys','filters','intersection','model','fields','attributes','hasOwnProperty','nolimit','order','sort'];(function(_0x49e5a3,_0x4faa14){var _0x5aefd3=function(_0x158d94){while(--_0x158d94){_0x49e5a3['push'](_0x49e5a3['shift']());}};_0x5aefd3(++_0x4faa14);}(_0x1534,0x11d));var _0x4153=function(_0x4cfd2d,_0x3f8923){_0x4cfd2d=_0x4cfd2d-0x0;var _0x1bd84=_0x1534[_0x4cfd2d];return _0x1bd84;};'use strict';var emlformat=require(_0x4153('0x0'));var rimraf=require(_0x4153('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x4153('0x2'));var rp=require(_0x4153('0x3'));var moment=require(_0x4153('0x4'));var BPromise=require(_0x4153('0x5'));var Mustache=require(_0x4153('0x6'));var util=require(_0x4153('0x7'));var path=require(_0x4153('0x8'));var sox=require(_0x4153('0x9'));var csv=require(_0x4153('0xa'));var ejs=require(_0x4153('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x4153('0xc'));var squel=require(_0x4153('0xd'));var crypto=require(_0x4153('0xe'));var jsforce=require(_0x4153('0xf'));var deskjs=require(_0x4153('0x10'));var toCsv=require(_0x4153('0xa'));var querystring=require(_0x4153('0x11'));var Papa=require(_0x4153('0x12'));var Redis=require('ioredis');var authService=require(_0x4153('0x13'));var qs=require(_0x4153('0x14'));var as=require(_0x4153('0x15'));var hardwareService=require(_0x4153('0x16'));var logger=require(_0x4153('0x17'))('api');var utils=require(_0x4153('0x18'));var config=require('../../config/environment');var licenseUtil=require(_0x4153('0x19'));var db=require(_0x4153('0x1a'))['db'];function respondWithStatusCode(_0x31ced4,_0x523e39){_0x523e39=_0x523e39||0xcc;return function(_0x4bd2be){if(_0x4bd2be){return _0x31ced4[_0x4153('0x1b')](_0x523e39);}return _0x31ced4['status'](_0x523e39)[_0x4153('0x1c')]();};}function respondWithResult(_0x2989ae,_0x14801c){_0x14801c=_0x14801c||0xc8;return function(_0x404b47){if(_0x404b47){return _0x2989ae[_0x4153('0x1d')](_0x14801c)['json'](_0x404b47);}};}function respondWithFilteredResult(_0x4cbfc4,_0x1ca641){return function(_0x2564d2){if(_0x2564d2){var _0x4174df=typeof _0x1ca641[_0x4153('0x1e')]===_0x4153('0x1f')&&typeof _0x1ca641[_0x4153('0x20')]===_0x4153('0x1f');var _0x3e2910=_0x2564d2[_0x4153('0x21')];var _0x256bf5=_0x4174df?0x0:_0x1ca641[_0x4153('0x1e')];var _0x288a0a=_0x4174df?_0x2564d2[_0x4153('0x21')]:_0x1ca641[_0x4153('0x1e')]+_0x1ca641[_0x4153('0x20')];var _0x2d1700;if(_0x288a0a>=_0x3e2910){_0x288a0a=_0x3e2910;_0x2d1700=0xc8;}else{_0x2d1700=0xce;}_0x4cbfc4[_0x4153('0x1d')](_0x2d1700);return _0x4cbfc4[_0x4153('0x22')]('Content-Range',_0x256bf5+'-'+_0x288a0a+'/'+_0x3e2910)[_0x4153('0x23')](_0x2564d2);}return null;};}function patchUpdates(_0x534be2){return function(_0x33774f){try{jsonpatch['apply'](_0x33774f,_0x534be2,!![]);}catch(_0x32e08d){return BPromise[_0x4153('0x24')](_0x32e08d);}return _0x33774f[_0x4153('0x25')]();};}function saveUpdates(_0x342344,_0x131bc4){return function(_0x48aaf7){if(_0x48aaf7){return _0x48aaf7['update'](_0x342344)['then'](function(_0x85574d){return _0x85574d;});}return null;};}function removeEntity(_0x5b73fc,_0x275538){return function(_0x384bee){if(_0x384bee){return _0x384bee[_0x4153('0x26')]()[_0x4153('0x27')](function(){_0x5b73fc[_0x4153('0x1d')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4fc947,_0xcf020f){return function(_0x53a1ca){if(!_0x53a1ca){_0x4fc947[_0x4153('0x1b')](0x194);}return _0x53a1ca;};}function handleError(_0x299043,_0xe4a4ee){_0xe4a4ee=_0xe4a4ee||0x1f4;return function(_0x3d8e22){logger[_0x4153('0x28')](_0x3d8e22[_0x4153('0x29')]);if(_0x3d8e22[_0x4153('0x2a')]){delete _0x3d8e22['name'];}_0x299043[_0x4153('0x1d')](_0xe4a4ee)['send'](_0x3d8e22);};}exports[_0x4153('0x2b')]=function(_0x33c353,_0x1a767a){var _0x4ea421={},_0x527b77={},_0x2413b={'count':0x0,'rows':[]};var _0x278e13=_[_0x4153('0x2c')](db[_0x4153('0x2d')][_0x4153('0x2e')],function(_0x38e15d){return{'name':_0x38e15d['fieldName'],'type':_0x38e15d[_0x4153('0x2f')]['key']};});_0x527b77['model']=_['map'](_0x278e13,_0x4153('0x2a'));_0x527b77[_0x4153('0x30')]=_[_0x4153('0x31')](_0x33c353[_0x4153('0x30')]);_0x527b77[_0x4153('0x32')]=_[_0x4153('0x33')](_0x527b77['model'],_0x527b77[_0x4153('0x30')]);_0x4ea421['attributes']=_[_0x4153('0x33')](_0x527b77[_0x4153('0x34')],qs[_0x4153('0x35')](_0x33c353[_0x4153('0x30')][_0x4153('0x35')]));_0x4ea421['attributes']=_0x4ea421[_0x4153('0x36')]['length']?_0x4ea421[_0x4153('0x36')]:_0x527b77[_0x4153('0x34')];if(!_0x33c353[_0x4153('0x30')][_0x4153('0x37')](_0x4153('0x38'))){_0x4ea421['limit']=qs[_0x4153('0x20')](_0x33c353['query'][_0x4153('0x20')]);_0x4ea421[_0x4153('0x1e')]=qs[_0x4153('0x1e')](_0x33c353[_0x4153('0x30')][_0x4153('0x1e')]);}_0x4ea421[_0x4153('0x39')]=qs[_0x4153('0x3a')](_0x33c353[_0x4153('0x30')][_0x4153('0x3a')]);_0x4ea421['where']=qs[_0x4153('0x32')](_[_0x4153('0x3b')](_0x33c353['query'],_0x527b77[_0x4153('0x32')]),_0x278e13);if(_0x33c353[_0x4153('0x30')][_0x4153('0x3c')]){_0x4ea421[_0x4153('0x3d')]=_[_0x4153('0x3e')](_0x4ea421[_0x4153('0x3d')],{'$or':_['map'](_0x278e13,function(_0x3e0ff2){if(_0x3e0ff2['type']!=='VIRTUAL'){var _0x1eec02={};_0x1eec02[_0x3e0ff2[_0x4153('0x2a')]]={'$like':'%'+_0x33c353['query'][_0x4153('0x3c')]+'%'};return _0x1eec02;}})});}_0x4ea421=_[_0x4153('0x3e')]({},_0x4ea421,_0x33c353[_0x4153('0x3f')]);var _0x18cba7={'where':_0x4ea421['where']};return db[_0x4153('0x2d')][_0x4153('0x21')](_0x18cba7)[_0x4153('0x27')](function(_0x4b8f9f){_0x2413b['count']=_0x4b8f9f;if(_0x33c353[_0x4153('0x30')][_0x4153('0x40')]){_0x4ea421['include']=[{'all':!![]}];}return db[_0x4153('0x2d')][_0x4153('0x41')](_0x4ea421);})[_0x4153('0x27')](function(_0x52a450){_0x2413b['rows']=_0x52a450;return _0x2413b;})[_0x4153('0x27')](respondWithFilteredResult(_0x1a767a,_0x4ea421))[_0x4153('0x42')](handleError(_0x1a767a,null));};exports[_0x4153('0x43')]=function(_0x425a66,_0x267405){var _0x494a68={'raw':!![],'where':{'id':_0x425a66['params']['id']}},_0x570384={};_0x570384[_0x4153('0x34')]=_['keys'](db[_0x4153('0x2d')][_0x4153('0x2e')]);_0x570384[_0x4153('0x30')]=_[_0x4153('0x31')](_0x425a66[_0x4153('0x30')]);_0x570384[_0x4153('0x32')]=_[_0x4153('0x33')](_0x570384['model'],_0x570384['query']);_0x494a68[_0x4153('0x36')]=_[_0x4153('0x33')](_0x570384['model'],qs[_0x4153('0x35')](_0x425a66[_0x4153('0x30')]['fields']));_0x494a68['attributes']=_0x494a68[_0x4153('0x36')]['length']?_0x494a68[_0x4153('0x36')]:_0x570384[_0x4153('0x34')];if(_0x425a66[_0x4153('0x30')][_0x4153('0x40')]){_0x494a68[_0x4153('0x44')]=[{'all':!![]}];}_0x494a68=_[_0x4153('0x3e')]({},_0x494a68,_0x425a66[_0x4153('0x3f')]);return db[_0x4153('0x2d')]['find'](_0x494a68)[_0x4153('0x27')](handleEntityNotFound(_0x267405,null))[_0x4153('0x27')](respondWithResult(_0x267405,null))[_0x4153('0x42')](handleError(_0x267405,null));};exports[_0x4153('0x45')]=function(_0x1fa2df,_0x4df0f7){var _0x2a5ab0={'where':{'id':_0x1fa2df[_0x4153('0x46')]['id']}},_0x302297={};_0x302297['model']=_['keys'](db[_0x4153('0x2d')]['rawAttributes']);_0x2a5ab0[_0x4153('0x36')]=_[_0x4153('0x33')](_0x302297[_0x4153('0x34')],qs[_0x4153('0x35')](_0x1fa2df[_0x4153('0x30')][_0x4153('0x35')]));_0x2a5ab0[_0x4153('0x36')]=_0x2a5ab0[_0x4153('0x36')]['length']?_0x2a5ab0['attributes']:_0x302297[_0x4153('0x34')];if(_0x1fa2df[_0x4153('0x30')][_0x4153('0x40')]){_0x2a5ab0[_0x4153('0x44')]=[{'all':!![]}];}_0x2a5ab0=_['merge']({},_0x2a5ab0,_0x1fa2df['options']);return db[_0x4153('0x2d')]['find'](_0x2a5ab0)[_0x4153('0x27')](handleEntityNotFound(_0x4df0f7,null))[_0x4153('0x27')](function(_0x586136){if(_0x586136){var _0x592965=_0x586136['get']({'plain':!![]});_0x592965=qs[_0x4153('0x47')](_0x592965,['id','createdAt',_0x4153('0x48')]);_0x1fa2df[_0x4153('0x49')]=_['omit'](_0x1fa2df[_0x4153('0x49')],['id',_0x4153('0x4a'),'updatedAt']);return db[_0x4153('0x2d')][_0x4153('0x4b')](_[_0x4153('0x3e')](_0x592965,_0x1fa2df[_0x4153('0x49')]),{'include':_0x1fa2df[_0x4153('0x30')][_0x4153('0x40')]?[{'all':!![]}]:undefined});}})[_0x4153('0x27')](respondWithResult(_0x4df0f7,0xc9))[_0x4153('0x42')](handleError(_0x4df0f7,null));};exports[_0x4153('0x4c')]=function(_0x8f15a9,_0x295e83){if(_0x8f15a9[_0x4153('0x49')]['id']){delete _0x8f15a9['body']['id'];}return db[_0x4153('0x2d')][_0x4153('0x4d')]({'where':{'id':_0x8f15a9[_0x4153('0x46')]['id']}})[_0x4153('0x27')](handleEntityNotFound(_0x295e83,null))['then'](saveUpdates(_0x8f15a9[_0x4153('0x49')],null))['then'](respondWithResult(_0x295e83,null))[_0x4153('0x42')](handleError(_0x295e83,null));};exports[_0x4153('0x26')]=function(_0x148780,_0x599bca){return db[_0x4153('0x2d')][_0x4153('0x4d')]({'where':{'id':_0x148780[_0x4153('0x46')]['id']}})[_0x4153('0x27')](handleEntityNotFound(_0x599bca,null))[_0x4153('0x27')](removeEntity(_0x599bca,null))[_0x4153('0x42')](handleError(_0x599bca,null));};exports['create']=function(_0x37ce16,_0x2195ab,_0x35da82){_0x37ce16[_0x4153('0x49')][_0x4153('0x2a')]=_0x37ce16['file'][_0x4153('0x4e')];_0x37ce16[_0x4153('0x49')][_0x4153('0x4f')]=_0x37ce16[_0x4153('0x50')]['filename'];_0x37ce16[_0x4153('0x49')]['type']=_0x37ce16[_0x4153('0x50')][_0x4153('0x51')];return db['Attachment'][_0x4153('0x4b')](_0x37ce16[_0x4153('0x49')])[_0x4153('0x27')](respondWithResult(_0x2195ab,0xc9))[_0x4153('0x42')](handleError(_0x2195ab,null));};exports[_0x4153('0x52')]=function(_0x3995b8,_0x4a4d0d,_0x303b44){return db[_0x4153('0x2d')][_0x4153('0x53')]({'where':{'id':_0x3995b8[_0x4153('0x46')]['id']},'raw':!![]})[_0x4153('0x27')](handleEntityNotFound(_0x4a4d0d,null))[_0x4153('0x27')](function(_0x871f2c){if(_0x871f2c){var _0x304d64=_0x871f2c[_0x4153('0x54')]!==null;var _0x3bf26e=path[_0x4153('0x55')](config['root'],'server/files/attachments/');if(_0x304d64){_0x3bf26e=path[_0x4153('0x55')](_0x3bf26e,'offline-chat/');}var _0x234e7d=path[_0x4153('0x55')](_0x3bf26e,_0x871f2c['basename']);return _0x4a4d0d[_0x4153('0x52')](_0x234e7d);}})['catch'](handleError(_0x4a4d0d,null));};
\ No newline at end of file
+var _0xf5e2=['get','updatedAt','omit','createdAt','create','body','destroy','file','basename','mimetype','download','findOne','ChatOfflineMessageId','join','root','server/files/attachments/','offline-chat/','eml-format','rimraf','zip-dir','moment','bluebird','mustache','path','sox','fs-extra','lodash','crypto','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','status','end','offset','undefined','limit','count','set','Content-Range','json','apply','reject','save','update','then','sendStatus','error','stack','name','send','Attachment','rawAttributes','fieldName','type','key','map','query','keys','intersection','fields','length','attributes','model','hasOwnProperty','nolimit','order','sort','filters','pick','filter','where','merge','VIRTUAL','options','includeAll','include','rows','params','find','catch','clone'];(function(_0x572438,_0x1b94fe){var _0xc6e9a7=function(_0x5b25a7){while(--_0x5b25a7){_0x572438['push'](_0x572438['shift']());}};_0xc6e9a7(++_0x1b94fe);}(_0xf5e2,0x1ce));var _0x2f5e=function(_0x39613b,_0x36f5b9){_0x39613b=_0x39613b-0x0;var _0x30f649=_0xf5e2[_0x39613b];return _0x30f649;};'use strict';var emlformat=require(_0x2f5e('0x0'));var rimraf=require(_0x2f5e('0x1'));var zipdir=require(_0x2f5e('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x2f5e('0x3'));var BPromise=require(_0x2f5e('0x4'));var Mustache=require(_0x2f5e('0x5'));var util=require('util');var path=require(_0x2f5e('0x6'));var sox=require(_0x2f5e('0x7'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x2f5e('0x8'));var _=require(_0x2f5e('0x9'));var squel=require('squel');var crypto=require(_0x2f5e('0xa'));var jsforce=require('jsforce');var deskjs=require(_0x2f5e('0xb'));var toCsv=require('to-csv');var querystring=require(_0x2f5e('0xc'));var Papa=require(_0x2f5e('0xd'));var Redis=require('ioredis');var authService=require(_0x2f5e('0xe'));var qs=require(_0x2f5e('0xf'));var as=require(_0x2f5e('0x10'));var hardwareService=require(_0x2f5e('0x11'));var logger=require(_0x2f5e('0x12'))(_0x2f5e('0x13'));var utils=require('../../config/utils');var config=require(_0x2f5e('0x14'));var licenseUtil=require(_0x2f5e('0x15'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x465dbe,_0x1e4f32){_0x1e4f32=_0x1e4f32||0xcc;return function(_0x470519){if(_0x470519){return _0x465dbe['sendStatus'](_0x1e4f32);}return _0x465dbe[_0x2f5e('0x16')](_0x1e4f32)[_0x2f5e('0x17')]();};}function respondWithResult(_0x3c43dd,_0x293eee){_0x293eee=_0x293eee||0xc8;return function(_0x526e6c){if(_0x526e6c){return _0x3c43dd[_0x2f5e('0x16')](_0x293eee)['json'](_0x526e6c);}};}function respondWithFilteredResult(_0xf68b3e,_0x2eba43){return function(_0x76b004){if(_0x76b004){var _0x36e4ed=typeof _0x2eba43[_0x2f5e('0x18')]===_0x2f5e('0x19')&&typeof _0x2eba43[_0x2f5e('0x1a')]===_0x2f5e('0x19');var _0x2f29c1=_0x76b004[_0x2f5e('0x1b')];var _0x5127f7=_0x36e4ed?0x0:_0x2eba43[_0x2f5e('0x18')];var _0x1239de=_0x36e4ed?_0x76b004[_0x2f5e('0x1b')]:_0x2eba43['offset']+_0x2eba43[_0x2f5e('0x1a')];var _0x2573d4;if(_0x1239de>=_0x2f29c1){_0x1239de=_0x2f29c1;_0x2573d4=0xc8;}else{_0x2573d4=0xce;}_0xf68b3e['status'](_0x2573d4);return _0xf68b3e[_0x2f5e('0x1c')](_0x2f5e('0x1d'),_0x5127f7+'-'+_0x1239de+'/'+_0x2f29c1)[_0x2f5e('0x1e')](_0x76b004);}return null;};}function patchUpdates(_0xcdb036){return function(_0x5c8356){try{jsonpatch[_0x2f5e('0x1f')](_0x5c8356,_0xcdb036,!![]);}catch(_0x5a3797){return BPromise[_0x2f5e('0x20')](_0x5a3797);}return _0x5c8356[_0x2f5e('0x21')]();};}function saveUpdates(_0x3d57c7,_0x5f038a){return function(_0x3d05c1){if(_0x3d05c1){return _0x3d05c1[_0x2f5e('0x22')](_0x3d57c7)['then'](function(_0x56ede7){return _0x56ede7;});}return null;};}function removeEntity(_0x58ab20,_0x52694e){return function(_0x1384b0){if(_0x1384b0){return _0x1384b0['destroy']()[_0x2f5e('0x23')](function(){_0x58ab20[_0x2f5e('0x16')](0xcc)[_0x2f5e('0x17')]();});}};}function handleEntityNotFound(_0x251c13,_0x19b8a1){return function(_0x210cc7){if(!_0x210cc7){_0x251c13[_0x2f5e('0x24')](0x194);}return _0x210cc7;};}function handleError(_0x5dffe4,_0x30fc21){_0x30fc21=_0x30fc21||0x1f4;return function(_0x2a1cb2){logger[_0x2f5e('0x25')](_0x2a1cb2[_0x2f5e('0x26')]);if(_0x2a1cb2[_0x2f5e('0x27')]){delete _0x2a1cb2[_0x2f5e('0x27')];}_0x5dffe4[_0x2f5e('0x16')](_0x30fc21)[_0x2f5e('0x28')](_0x2a1cb2);};}exports['index']=function(_0x312bb0,_0x45d0e8){var _0x240236={},_0x5d9b45={},_0x2014ca={'count':0x0,'rows':[]};var _0x1cb2cd=_['map'](db[_0x2f5e('0x29')][_0x2f5e('0x2a')],function(_0x3c8e18){return{'name':_0x3c8e18[_0x2f5e('0x2b')],'type':_0x3c8e18[_0x2f5e('0x2c')][_0x2f5e('0x2d')]};});_0x5d9b45['model']=_[_0x2f5e('0x2e')](_0x1cb2cd,_0x2f5e('0x27'));_0x5d9b45[_0x2f5e('0x2f')]=_[_0x2f5e('0x30')](_0x312bb0[_0x2f5e('0x2f')]);_0x5d9b45['filters']=_[_0x2f5e('0x31')](_0x5d9b45['model'],_0x5d9b45[_0x2f5e('0x2f')]);_0x240236['attributes']=_[_0x2f5e('0x31')](_0x5d9b45['model'],qs[_0x2f5e('0x32')](_0x312bb0[_0x2f5e('0x2f')][_0x2f5e('0x32')]));_0x240236['attributes']=_0x240236['attributes'][_0x2f5e('0x33')]?_0x240236[_0x2f5e('0x34')]:_0x5d9b45[_0x2f5e('0x35')];if(!_0x312bb0[_0x2f5e('0x2f')][_0x2f5e('0x36')](_0x2f5e('0x37'))){_0x240236[_0x2f5e('0x1a')]=qs[_0x2f5e('0x1a')](_0x312bb0[_0x2f5e('0x2f')][_0x2f5e('0x1a')]);_0x240236[_0x2f5e('0x18')]=qs[_0x2f5e('0x18')](_0x312bb0[_0x2f5e('0x2f')]['offset']);}_0x240236[_0x2f5e('0x38')]=qs['sort'](_0x312bb0[_0x2f5e('0x2f')][_0x2f5e('0x39')]);_0x240236['where']=qs[_0x2f5e('0x3a')](_[_0x2f5e('0x3b')](_0x312bb0[_0x2f5e('0x2f')],_0x5d9b45[_0x2f5e('0x3a')]),_0x1cb2cd);if(_0x312bb0[_0x2f5e('0x2f')][_0x2f5e('0x3c')]){_0x240236[_0x2f5e('0x3d')]=_[_0x2f5e('0x3e')](_0x240236[_0x2f5e('0x3d')],{'$or':_[_0x2f5e('0x2e')](_0x1cb2cd,function(_0x541e2b){if(_0x541e2b[_0x2f5e('0x2c')]!==_0x2f5e('0x3f')){var _0x204765={};_0x204765[_0x541e2b[_0x2f5e('0x27')]]={'$like':'%'+_0x312bb0['query']['filter']+'%'};return _0x204765;}})});}_0x240236=_['merge']({},_0x240236,_0x312bb0[_0x2f5e('0x40')]);var _0x493575={'where':_0x240236[_0x2f5e('0x3d')]};return db[_0x2f5e('0x29')]['count'](_0x493575)[_0x2f5e('0x23')](function(_0x5015f6){_0x2014ca[_0x2f5e('0x1b')]=_0x5015f6;if(_0x312bb0[_0x2f5e('0x2f')][_0x2f5e('0x41')]){_0x240236[_0x2f5e('0x42')]=[{'all':!![]}];}return db[_0x2f5e('0x29')]['findAll'](_0x240236);})[_0x2f5e('0x23')](function(_0x51716f){_0x2014ca[_0x2f5e('0x43')]=_0x51716f;return _0x2014ca;})[_0x2f5e('0x23')](respondWithFilteredResult(_0x45d0e8,_0x240236))['catch'](handleError(_0x45d0e8,null));};exports['show']=function(_0x457c53,_0x45f0ae){var _0x3f358f={'raw':!![],'where':{'id':_0x457c53[_0x2f5e('0x44')]['id']}},_0x20fd7d={};_0x20fd7d[_0x2f5e('0x35')]=_['keys'](db[_0x2f5e('0x29')][_0x2f5e('0x2a')]);_0x20fd7d['query']=_['keys'](_0x457c53[_0x2f5e('0x2f')]);_0x20fd7d[_0x2f5e('0x3a')]=_['intersection'](_0x20fd7d[_0x2f5e('0x35')],_0x20fd7d[_0x2f5e('0x2f')]);_0x3f358f[_0x2f5e('0x34')]=_[_0x2f5e('0x31')](_0x20fd7d[_0x2f5e('0x35')],qs['fields'](_0x457c53[_0x2f5e('0x2f')][_0x2f5e('0x32')]));_0x3f358f[_0x2f5e('0x34')]=_0x3f358f['attributes'][_0x2f5e('0x33')]?_0x3f358f[_0x2f5e('0x34')]:_0x20fd7d['model'];if(_0x457c53['query']['includeAll']){_0x3f358f[_0x2f5e('0x42')]=[{'all':!![]}];}_0x3f358f=_[_0x2f5e('0x3e')]({},_0x3f358f,_0x457c53[_0x2f5e('0x40')]);return db[_0x2f5e('0x29')][_0x2f5e('0x45')](_0x3f358f)[_0x2f5e('0x23')](handleEntityNotFound(_0x45f0ae,null))['then'](respondWithResult(_0x45f0ae,null))[_0x2f5e('0x46')](handleError(_0x45f0ae,null));};exports[_0x2f5e('0x47')]=function(_0x2a76e3,_0x473e54){var _0x1c387a={'where':{'id':_0x2a76e3[_0x2f5e('0x44')]['id']}},_0xec7755={};_0xec7755[_0x2f5e('0x35')]=_[_0x2f5e('0x30')](db[_0x2f5e('0x29')]['rawAttributes']);_0x1c387a[_0x2f5e('0x34')]=_[_0x2f5e('0x31')](_0xec7755[_0x2f5e('0x35')],qs[_0x2f5e('0x32')](_0x2a76e3[_0x2f5e('0x2f')][_0x2f5e('0x32')]));_0x1c387a['attributes']=_0x1c387a[_0x2f5e('0x34')]['length']?_0x1c387a[_0x2f5e('0x34')]:_0xec7755[_0x2f5e('0x35')];if(_0x2a76e3[_0x2f5e('0x2f')][_0x2f5e('0x41')]){_0x1c387a[_0x2f5e('0x42')]=[{'all':!![]}];}_0x1c387a=_[_0x2f5e('0x3e')]({},_0x1c387a,_0x2a76e3['options']);return db['Attachment']['find'](_0x1c387a)[_0x2f5e('0x23')](handleEntityNotFound(_0x473e54,null))[_0x2f5e('0x23')](function(_0x6bb8f2){if(_0x6bb8f2){var _0x37d437=_0x6bb8f2[_0x2f5e('0x48')]({'plain':!![]});_0x37d437=qs['omit'](_0x37d437,['id','createdAt',_0x2f5e('0x49')]);_0x2a76e3['body']=_[_0x2f5e('0x4a')](_0x2a76e3['body'],['id',_0x2f5e('0x4b'),_0x2f5e('0x49')]);return db[_0x2f5e('0x29')][_0x2f5e('0x4c')](_[_0x2f5e('0x3e')](_0x37d437,_0x2a76e3[_0x2f5e('0x4d')]),{'include':_0x2a76e3[_0x2f5e('0x2f')][_0x2f5e('0x41')]?[{'all':!![]}]:undefined});}})[_0x2f5e('0x23')](respondWithResult(_0x473e54,0xc9))[_0x2f5e('0x46')](handleError(_0x473e54,null));};exports[_0x2f5e('0x22')]=function(_0x22f037,_0x3457b0){if(_0x22f037[_0x2f5e('0x4d')]['id']){delete _0x22f037[_0x2f5e('0x4d')]['id'];}return db['Attachment'][_0x2f5e('0x45')]({'where':{'id':_0x22f037[_0x2f5e('0x44')]['id']}})[_0x2f5e('0x23')](handleEntityNotFound(_0x3457b0,null))['then'](saveUpdates(_0x22f037[_0x2f5e('0x4d')],null))[_0x2f5e('0x23')](respondWithResult(_0x3457b0,null))[_0x2f5e('0x46')](handleError(_0x3457b0,null));};exports[_0x2f5e('0x4e')]=function(_0x3f68a6,_0x4ea517){return db[_0x2f5e('0x29')][_0x2f5e('0x45')]({'where':{'id':_0x3f68a6[_0x2f5e('0x44')]['id']}})[_0x2f5e('0x23')](handleEntityNotFound(_0x4ea517,null))[_0x2f5e('0x23')](removeEntity(_0x4ea517,null))[_0x2f5e('0x46')](handleError(_0x4ea517,null));};exports[_0x2f5e('0x4c')]=function(_0x2ef04c,_0x13ed1b,_0x275503){_0x2ef04c[_0x2f5e('0x4d')][_0x2f5e('0x27')]=_0x2ef04c[_0x2f5e('0x4f')]['originalname'];_0x2ef04c[_0x2f5e('0x4d')][_0x2f5e('0x50')]=_0x2ef04c[_0x2f5e('0x4f')]['filename'];_0x2ef04c['body'][_0x2f5e('0x2c')]=_0x2ef04c[_0x2f5e('0x4f')][_0x2f5e('0x51')];return db[_0x2f5e('0x29')][_0x2f5e('0x4c')](_0x2ef04c[_0x2f5e('0x4d')])[_0x2f5e('0x23')](respondWithResult(_0x13ed1b,0xc9))['catch'](handleError(_0x13ed1b,null));};exports[_0x2f5e('0x52')]=function(_0x20a9f7,_0x35e347,_0x55f6a0){return db[_0x2f5e('0x29')][_0x2f5e('0x53')]({'where':{'id':_0x20a9f7[_0x2f5e('0x44')]['id']},'raw':!![]})[_0x2f5e('0x23')](handleEntityNotFound(_0x35e347,null))['then'](function(_0x5c6c95){if(_0x5c6c95){var _0x3da787=_0x5c6c95[_0x2f5e('0x54')]!==null;var _0x4fd5f4=path[_0x2f5e('0x55')](config[_0x2f5e('0x56')],_0x2f5e('0x57'));if(_0x3da787){_0x4fd5f4=path[_0x2f5e('0x55')](_0x4fd5f4,_0x2f5e('0x58'));}var _0x221c2b=path[_0x2f5e('0x55')](_0x4fd5f4,_0x5c6c95['basename']);return _0x35e347[_0x2f5e('0x52')](_0x221c2b);}})[_0x2f5e('0x46')](handleError(_0x35e347,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x29a0=['./attachment.attributes','exports','define','Attachment','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path'];(function(_0x16a728,_0x560422){var _0x4f3024=function(_0x1bfc13){while(--_0x1bfc13){_0x16a728['push'](_0x16a728['shift']());}};_0x4f3024(++_0x560422);}(_0x29a0,0x1c0));var _0x029a=function(_0x599490,_0x5a2815){_0x599490=_0x599490-0x0;var _0x1468d0=_0x29a0[_0x599490];return _0x1468d0;};'use strict';var _=require(_0x029a('0x0'));var util=require(_0x029a('0x1'));var logger=require(_0x029a('0x2'))(_0x029a('0x3'));var moment=require(_0x029a('0x4'));var BPromise=require(_0x029a('0x5'));var rp=require(_0x029a('0x6'));var fs=require('fs');var path=require(_0x029a('0x7'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0x029a('0x8'));module[_0x029a('0x9')]=function(_0x403012,_0xe305a2){return _0x403012[_0x029a('0xa')](_0x029a('0xb'),attributes,{'tableName':'attachments','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xe110=['bluebird','path','../../config/environment','./attachment.attributes','exports','Attachment','attachments','lodash','util','../../config/logger','api','moment'];(function(_0x4bfedd,_0xddfbf8){var _0x2e925c=function(_0x3937da){while(--_0x3937da){_0x4bfedd['push'](_0x4bfedd['shift']());}};_0x2e925c(++_0xddfbf8);}(_0xe110,0xeb));var _0x0e11=function(_0xc3aed2,_0x2a0bef){_0xc3aed2=_0xc3aed2-0x0;var _0x1e85eb=_0xe110[_0xc3aed2];return _0x1e85eb;};'use strict';var _=require(_0x0e11('0x0'));var util=require(_0x0e11('0x1'));var logger=require(_0x0e11('0x2'))(_0x0e11('0x3'));var moment=require(_0x0e11('0x4'));var BPromise=require(_0x0e11('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x0e11('0x6'));var rimraf=require('rimraf');var config=require(_0x0e11('0x7'));var attributes=require(_0x0e11('0x8'));module[_0x0e11('0x9')]=function(_0x45c9f9,_0x39cd81){return _0x45c9f9['define'](_0x0e11('0xa'),attributes,{'tableName':_0x0e11('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbf6e=['error','message','result','catch','CreateAttachment','Attachment','create','body','options','raw','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','request','then','info','Attachment,\x20%s,\x20%s','debug','Attachment,\x20%s,\x20%s,\x20%s','request\x20sent','stringify'];(function(_0x24e7de,_0x19250a){var _0x109bcc=function(_0x49a6c8){while(--_0x49a6c8){_0x24e7de['push'](_0x24e7de['shift']());}};_0x109bcc(++_0x19250a);}(_0xbf6e,0x149));var _0xebf6=function(_0xd7f44d,_0x3d6b8d){_0xd7f44d=_0xd7f44d-0x0;var _0x5856f7=_0xbf6e[_0xd7f44d];return _0x5856f7;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0xebf6('0x0'));var BPromise=require(_0xebf6('0x1'));var rs=require(_0xebf6('0x2'));var fs=require('fs');var Redis=require(_0xebf6('0x3'));var db=require(_0xebf6('0x4'))['db'];var utils=require(_0xebf6('0x5'));var logger=require(_0xebf6('0x6'))('rpc');var config=require(_0xebf6('0x7'));var jayson=require(_0xebf6('0x8'));var client=jayson[_0xebf6('0x9')][_0xebf6('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x143344,_0x1e02b3,_0x137e39){return new BPromise(function(_0x548e9e,_0x1d8035){return client[_0xebf6('0xb')](_0x143344,_0x137e39)[_0xebf6('0xc')](function(_0x591132){logger[_0xebf6('0xd')](_0xebf6('0xe'),_0x1e02b3,'request\x20sent');logger[_0xebf6('0xf')](_0xebf6('0x10'),_0x1e02b3,_0xebf6('0x11'),JSON[_0xebf6('0x12')](_0x591132));if(_0x591132[_0xebf6('0x13')]){if(_0x591132[_0xebf6('0x13')]['code']===0x1f4){logger[_0xebf6('0x13')](_0xebf6('0xe'),_0x1e02b3,_0x591132['error'][_0xebf6('0x14')]);return _0x1d8035(_0x591132[_0xebf6('0x13')][_0xebf6('0x14')]);}logger[_0xebf6('0x13')](_0xebf6('0xe'),_0x1e02b3,_0x591132['error']['message']);return _0x548e9e(_0x591132['error'][_0xebf6('0x14')]);}else{logger[_0xebf6('0xd')]('Attachment,\x20%s,\x20%s',_0x1e02b3,_0xebf6('0x11'));_0x548e9e(_0x591132[_0xebf6('0x15')][_0xebf6('0x14')]);}})[_0xebf6('0x16')](function(_0x3100ee){logger[_0xebf6('0x13')](_0xebf6('0xe'),_0x1e02b3,_0x3100ee);_0x1d8035(_0x3100ee);});});}exports[_0xebf6('0x17')]=function(_0x2d3984){var _0x308480=this;return new Promise(function(_0x55fa31,_0x496dea){return db[_0xebf6('0x18')][_0xebf6('0x19')](_0x2d3984[_0xebf6('0x1a')],{'raw':_0x2d3984[_0xebf6('0x1b')]?_0x2d3984[_0xebf6('0x1b')][_0xebf6('0x1c')]===undefined?!![]:![]:!![]})[_0xebf6('0xc')](function(_0x80f523){logger['info'](_0xebf6('0x17'),_0x2d3984);logger[_0xebf6('0xf')](_0xebf6('0x17'),_0x2d3984,JSON[_0xebf6('0x12')](_0x80f523));_0x55fa31(_0x80f523);})[_0xebf6('0x16')](function(_0x14c8ac){logger[_0xebf6('0x13')](_0xebf6('0x17'),_0x14c8ac[_0xebf6('0x14')],_0x2d3984);_0x496dea(_0x308480[_0xebf6('0x13')](0x1f4,_0x14c8ac[_0xebf6('0x14')]));});});};
\ No newline at end of file
+var _0xda65=['info','Attachment,\x20%s,\x20%s','request\x20sent','debug','Attachment,\x20%s,\x20%s,\x20%s','error','code','message','result','CreateAttachment','Attachment','create','body','options','raw','catch','lodash','util','moment','randomstring','ioredis','../../mysqldb','rpc','../../config/environment','jayson/promise','client','http','then'];(function(_0x5e6d1e,_0x3fc6d8){var _0x4dd63e=function(_0x3c1cba){while(--_0x3c1cba){_0x5e6d1e['push'](_0x5e6d1e['shift']());}};_0x4dd63e(++_0x3fc6d8);}(_0xda65,0x1d0));var _0x5da6=function(_0x37614a,_0x143eb7){_0x37614a=_0x37614a-0x0;var _0x40dbea=_0xda65[_0x37614a];return _0x40dbea;};'use strict';var _=require(_0x5da6('0x0'));var util=require(_0x5da6('0x1'));var moment=require(_0x5da6('0x2'));var BPromise=require('bluebird');var rs=require(_0x5da6('0x3'));var fs=require('fs');var Redis=require(_0x5da6('0x4'));var db=require(_0x5da6('0x5'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0x5da6('0x6'));var config=require(_0x5da6('0x7'));var jayson=require(_0x5da6('0x8'));var client=jayson[_0x5da6('0x9')][_0x5da6('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x51924c,_0x35aff9,_0x4a7040){return new BPromise(function(_0x55108e,_0x40722c){return client['request'](_0x51924c,_0x4a7040)[_0x5da6('0xb')](function(_0x20cb14){logger[_0x5da6('0xc')](_0x5da6('0xd'),_0x35aff9,_0x5da6('0xe'));logger[_0x5da6('0xf')](_0x5da6('0x10'),_0x35aff9,_0x5da6('0xe'),JSON['stringify'](_0x20cb14));if(_0x20cb14[_0x5da6('0x11')]){if(_0x20cb14[_0x5da6('0x11')][_0x5da6('0x12')]===0x1f4){logger[_0x5da6('0x11')](_0x5da6('0xd'),_0x35aff9,_0x20cb14[_0x5da6('0x11')][_0x5da6('0x13')]);return _0x40722c(_0x20cb14[_0x5da6('0x11')][_0x5da6('0x13')]);}logger['error'](_0x5da6('0xd'),_0x35aff9,_0x20cb14[_0x5da6('0x11')][_0x5da6('0x13')]);return _0x55108e(_0x20cb14[_0x5da6('0x11')][_0x5da6('0x13')]);}else{logger[_0x5da6('0xc')](_0x5da6('0xd'),_0x35aff9,_0x5da6('0xe'));_0x55108e(_0x20cb14[_0x5da6('0x14')][_0x5da6('0x13')]);}})['catch'](function(_0x5207e5){logger[_0x5da6('0x11')](_0x5da6('0xd'),_0x35aff9,_0x5207e5);_0x40722c(_0x5207e5);});});}exports[_0x5da6('0x15')]=function(_0x4c3b2d){var _0x4bc49a=this;return new Promise(function(_0x4b42e4,_0x394c63){return db[_0x5da6('0x16')][_0x5da6('0x17')](_0x4c3b2d[_0x5da6('0x18')],{'raw':_0x4c3b2d['options']?_0x4c3b2d[_0x5da6('0x19')][_0x5da6('0x1a')]===undefined?!![]:![]:!![]})[_0x5da6('0xb')](function(_0x24500d){logger[_0x5da6('0xc')](_0x5da6('0x15'),_0x4c3b2d);logger[_0x5da6('0xf')](_0x5da6('0x15'),_0x4c3b2d,JSON['stringify'](_0x24500d));_0x4b42e4(_0x24500d);})[_0x5da6('0x1b')](function(_0x5ad81b){logger[_0x5da6('0x11')](_0x5da6('0x15'),_0x5ad81b[_0x5da6('0x13')],_0x4c3b2d);_0x394c63(_0x4bc49a[_0x5da6('0x11')](0x1f4,_0x5ad81b[_0x5da6('0x13')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-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(_0x4974c4,_0x8a7b0f){var _0x33cba1=function(_0x5700bc){while(--_0x5700bc){_0x4974c4['push'](_0x4974c4['shift']());}};_0x33cba1(++_0x8a7b0f);}(_0x5f2f,0x73));var _0xf5f2=function(_0x45313f,_0x46caf4){_0x45313f=_0x45313f-0x0;var _0x402910=_0x5f2f[_0x45313f];return _0x402910;};'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
+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(_0x206b41,_0x4933ca){var _0x5714c3=function(_0x44d9f1){while(--_0x44d9f1){_0x206b41['push'](_0x206b41['shift']());}};_0x5714c3(++_0x4933ca);}(_0xb10b,0x12a));var _0xbb10=function(_0x34d6bd,_0x55b744){_0x34d6bd=_0x34d6bd-0x0;var _0x248396=_0xb10b[_0x34d6bd];return _0x248396;};'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
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3fce=['disabled','blocked','blockedAt','add','minutes','Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.','clearBlockUser','getLicense','catch','lodash','passport','passport-google-oauth20','Strategy','moment','../../mysqldb','../../config/environment','../../components/auth/service','signToken','../../config/utils','login','authenticate','google','profile','email','clientSecret','secret','findOne','blockDuration','then','User','find','map','emails','value','admin','agent'];(function(_0x561935,_0x5a6071){var _0x4f01b2=function(_0x45a82f){while(--_0x45a82f){_0x561935['push'](_0x561935['shift']());}};_0x4f01b2(++_0x5a6071);}(_0x3fce,0x195));var _0xe3fc=function(_0x9148ba,_0x2cb1b5){_0x9148ba=_0x9148ba-0x0;var _0x355e3b=_0x3fce[_0x9148ba];return _0x355e3b;};'use strict';var _=require(_0xe3fc('0x0'));var passport=require(_0xe3fc('0x1'));var GoogleStrategy=require(_0xe3fc('0x2'))[_0xe3fc('0x3')];var moment=require(_0xe3fc('0x4'));var db=require(_0xe3fc('0x5'))['db'];var config=require(_0xe3fc('0x6'));var signToken=require(_0xe3fc('0x7'))[_0xe3fc('0x8')];var utils=require(_0xe3fc('0x9'));exports[_0xe3fc('0xa')]=passport[_0xe3fc('0xb')](_0xe3fc('0xc'),{'failureRedirect':'/login','scope':[_0xe3fc('0xd'),_0xe3fc('0xe')],'session':![]});exports['callback']=passport[_0xe3fc('0xb')](_0xe3fc('0xc'),{'failureRedirect':'/login','session':![]});passport['use'](new GoogleStrategy({'clientID':config[_0xe3fc('0xc')]?config[_0xe3fc('0xc')]['clientID']:'id','clientSecret':config[_0xe3fc('0xc')]?config[_0xe3fc('0xc')][_0xe3fc('0xf')]:_0xe3fc('0x10'),'callbackURL':config['google']?config['google']['callbackURL']:''},function(_0x59ed88,_0x1d50b4,_0x1e406e,_0x362170){var _0xadbc07,_0xdd3fdd;return db['Setting'][_0xe3fc('0x11')]({'where':{'id':0x1},'attributes':['allowedLoginAttempts',_0xe3fc('0x12')],'raw':!![]})[_0xe3fc('0x13')](function(_0x53b183){_0xadbc07=_0x53b183;return db[_0xe3fc('0x14')][_0xe3fc('0x15')]({'where':{'email':_[_0xe3fc('0x16')](_0x1e406e[_0xe3fc('0x17')],_0xe3fc('0x18')),'role':{'$or':[_0xe3fc('0x19'),'user',_0xe3fc('0x1a')]}}});})[_0xe3fc('0x13')](function(_0x4b73b3){_0xdd3fdd=_0x4b73b3;if(_0xdd3fdd){if(_0xdd3fdd[_0xe3fc('0x1b')]){return _0x362170('Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.');}else if(_0xadbc07[_0xe3fc('0x12')]>0x0){if(_0xdd3fdd[_0xe3fc('0x1c')]){if(moment(_0xdd3fdd[_0xe3fc('0x1d')])[_0xe3fc('0x1e')](_0xadbc07['blockDuration'],_0xe3fc('0x1f'))>moment()){return _0x362170(_0xe3fc('0x20'));}else{return utils[_0xe3fc('0x21')](_0xdd3fdd,0x0,![],null)['then'](function(){return utils[_0xe3fc('0x22')](_0xdd3fdd);})[_0xe3fc('0x13')](function(){return _0x362170(null,_0xdd3fdd);});}}else{return utils[_0xe3fc('0x22')](_0xdd3fdd)[_0xe3fc('0x13')](function(){return _0x362170(null,_0xdd3fdd);});}}else{return utils[_0xe3fc('0x22')](_0xdd3fdd)[_0xe3fc('0x13')](function(){return _0x362170(null,_0xdd3fdd);});}}return _0x362170(_0xe3fc('0x20'));})[_0xe3fc('0x23')](function(_0x224e25){_0x362170(_0x224e25);});}));
\ No newline at end of file
+var _0x1ac4=['clientID','callbackURL','Setting','findOne','allowedLoginAttempts','blockDuration','User','find','emails','value','admin','user','agent','then','Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.','blocked','add','minutes','clearBlockUser','getLicense','catch','lodash','passport-google-oauth20','Strategy','moment','../../mysqldb','../../config/environment','signToken','login','authenticate','google','/login','email'];(function(_0x47b15f,_0x103e93){var _0x55bf25=function(_0x51fe7f){while(--_0x51fe7f){_0x47b15f['push'](_0x47b15f['shift']());}};_0x55bf25(++_0x103e93);}(_0x1ac4,0xfc));var _0x41ac=function(_0x3ced2b,_0x4621c6){_0x3ced2b=_0x3ced2b-0x0;var _0x588c2c=_0x1ac4[_0x3ced2b];return _0x588c2c;};'use strict';var _=require(_0x41ac('0x0'));var passport=require('passport');var GoogleStrategy=require(_0x41ac('0x1'))[_0x41ac('0x2')];var moment=require(_0x41ac('0x3'));var db=require(_0x41ac('0x4'))['db'];var config=require(_0x41ac('0x5'));var signToken=require('../../components/auth/service')[_0x41ac('0x6')];var utils=require('../../config/utils');exports[_0x41ac('0x7')]=passport[_0x41ac('0x8')](_0x41ac('0x9'),{'failureRedirect':_0x41ac('0xa'),'scope':['profile',_0x41ac('0xb')],'session':![]});exports['callback']=passport[_0x41ac('0x8')]('google',{'failureRedirect':'/login','session':![]});passport['use'](new GoogleStrategy({'clientID':config[_0x41ac('0x9')]?config[_0x41ac('0x9')][_0x41ac('0xc')]:'id','clientSecret':config['google']?config[_0x41ac('0x9')]['clientSecret']:'secret','callbackURL':config[_0x41ac('0x9')]?config[_0x41ac('0x9')][_0x41ac('0xd')]:''},function(_0x1d8df4,_0x5e174,_0x2e5ecb,_0x92b15d){var _0x64629d,_0x15225b;return db[_0x41ac('0xe')][_0x41ac('0xf')]({'where':{'id':0x1},'attributes':[_0x41ac('0x10'),_0x41ac('0x11')],'raw':!![]})['then'](function(_0x29f9a7){_0x64629d=_0x29f9a7;return db[_0x41ac('0x12')][_0x41ac('0x13')]({'where':{'email':_['map'](_0x2e5ecb[_0x41ac('0x14')],_0x41ac('0x15')),'role':{'$or':[_0x41ac('0x16'),_0x41ac('0x17'),_0x41ac('0x18')]}}});})[_0x41ac('0x19')](function(_0x3902b4){_0x15225b=_0x3902b4;if(_0x15225b){if(_0x15225b['disabled']){return _0x92b15d(_0x41ac('0x1a'));}else if(_0x64629d[_0x41ac('0x11')]>0x0){if(_0x15225b[_0x41ac('0x1b')]){if(moment(_0x15225b['blockedAt'])[_0x41ac('0x1c')](_0x64629d[_0x41ac('0x11')],_0x41ac('0x1d'))>moment()){return _0x92b15d(_0x41ac('0x1a'));}else{return utils[_0x41ac('0x1e')](_0x15225b,0x0,![],null)[_0x41ac('0x19')](function(){return utils['getLicense'](_0x15225b);})[_0x41ac('0x19')](function(){return _0x92b15d(null,_0x15225b);});}}else{return utils[_0x41ac('0x1f')](_0x15225b)[_0x41ac('0x19')](function(){return _0x92b15d(null,_0x15225b);});}}else{return utils[_0x41ac('0x1f')](_0x15225b)[_0x41ac('0x19')](function(){return _0x92b15d(null,_0x15225b);});}}return _0x92b15d('Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.');})[_0x41ac('0x20')](function(_0x2366a7){_0x92b15d(_0x2366a7);});}));
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x41b1=['get','/callback','callback','isMiddleware','setTokenCookie','exports','passport','Router','../user/user.controller.js'];(function(_0x2d0ba4,_0x1345d8){var _0x55ad6a=function(_0x712dc3){while(--_0x712dc3){_0x2d0ba4['push'](_0x2d0ba4['shift']());}};_0x55ad6a(++_0x1345d8);}(_0x41b1,0xd5));var _0x141b=function(_0x109946,_0x3494b7){_0x109946=_0x109946-0x0;var _0x4ed20b=_0x41b1[_0x109946];return _0x4ed20b;};'use strict';var express=require('express');var passport=require(_0x141b('0x0'));var router=express[_0x141b('0x1')]();var controller=require('./authGoogle.controller');var userController=require(_0x141b('0x2'));var authService=require('../../components/auth/service');router['get']('/',controller['login']);router[_0x141b('0x3')](_0x141b('0x4'),controller[_0x141b('0x5')],authService[_0x141b('0x6')],userController['login'],authService[_0x141b('0x7')]);module[_0x141b('0x8')]=router;
\ No newline at end of file
+var _0xb0c6=['get','login','/callback','callback','setTokenCookie','passport','./authGoogle.controller','../user/user.controller.js'];(function(_0x504df1,_0x289598){var _0x1063b5=function(_0x627abd){while(--_0x627abd){_0x504df1['push'](_0x504df1['shift']());}};_0x1063b5(++_0x289598);}(_0xb0c6,0x17d));var _0x6b0c=function(_0x724fd8,_0x1c5d54){_0x724fd8=_0x724fd8-0x0;var _0x346546=_0xb0c6[_0x724fd8];return _0x346546;};'use strict';var express=require('express');var passport=require(_0x6b0c('0x0'));var router=express['Router']();var controller=require(_0x6b0c('0x1'));var userController=require(_0x6b0c('0x2'));var authService=require('../../components/auth/service');router[_0x6b0c('0x3')]('/',controller[_0x6b0c('0x4')]);router[_0x6b0c('0x3')](_0x6b0c('0x5'),controller[_0x6b0c('0x6')],authService['isMiddleware'],userController[_0x6b0c('0x4')],authService[_0x6b0c('0x7')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfc9f=['secure','pass','merge','format','\x22%s\x22\x20<%s>','error','SendMail\x20error:\x20%s.\x20Please\x20contact\x20your\x20Administrator!','stringify','status','message','local','Something\x20went\x20wrong,\x20please\x20try\x20again.','role','signToken','json','online','forgot','body','Email\x20parameter\x20is\x20missing','trim','toLowerCase','This\x20email\x20is\x20not\x20registered.','The\x20user\x20is\x20disabled.\x20Please\x20contact\x20the\x20administrator.','The\x20user\x20is\x20blocked.\x20Please\x20contact\x20the\x20administrator.','resetPasswordToken','resetPasswordExpires','now','save','Please\x20click\x20on\x20the\x20following\x20link,\x20or\x20paste\x20this\x20into\x20your\x20browser\x20to\x20complete\x20the\x20process:\x0a\x0a','/reset/','If\x20you\x20did\x20not\x20request\x20this,\x20please\x20ignore\x20this\x20email\x20and\x20your\x20password\x20will\x20remain\x20unchanged.\x0a','reset','User','find','params','token','securePassword','enforcePasswordHistory','passwordHistoryLimit','validatePasswordPattern','previousPasswords','validatePasswordHistory','send','Password\x20reset!','use','passport','passport-local','Strategy','jayson/promise','randomstring','moment','../../mysqldb','../../config/utils','client','http','Setting','findOne','allowedLoginAttempts','then','name','password','salt','disabled','blocked','blockedAt','loginAttempts','admin','user','agent','authenticate','Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.','blockDuration','add','minutes','clearBlockUser','getLicense','catch','MailAccount','email','MailServerOut','Unable\x20to\x20find\x20a\x20configured\x20SMTP\x20service!','Smtp','service','host','port'];(function(_0x52e0ca,_0x1e02ac){var _0x17d696=function(_0x39f0a9){while(--_0x39f0a9){_0x52e0ca['push'](_0x52e0ca['shift']());}};_0x17d696(++_0x1e02ac);}(_0xfc9f,0x1d6));var _0xffc9=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xfc9f[_0x3dd15e];return _0x231fd0;};'use strict';var util=require('util');var passport=require(_0xffc9('0x0'));var LocalStrategy=require(_0xffc9('0x1'))[_0xffc9('0x2')];var jayson=require(_0xffc9('0x3'));var _=require('lodash');var rs=require(_0xffc9('0x4'));var moment=require(_0xffc9('0x5'));var db=require(_0xffc9('0x6'))['db'];var authService=require('../../components/auth/service');var utils=require(_0xffc9('0x7'));var client=jayson[_0xffc9('0x8')][_0xffc9('0x9')]({'port':0x232b});function localAuthenticate(_0x12ac8a,_0x23fa54,_0x40de9a,_0x17afe3){var _0x1be3eb,_0x51aab0;return db[_0xffc9('0xa')][_0xffc9('0xb')]({'where':{'id':0x1},'attributes':[_0xffc9('0xc'),'blockDuration'],'raw':!![]})[_0xffc9('0xd')](function(_0x25a2a3){_0x1be3eb=_0x25a2a3;return _0x12ac8a[_0xffc9('0xb')]({'attributes':['id',_0xffc9('0xe'),_0xffc9('0xf'),_0xffc9('0x10'),'role',_0xffc9('0x11'),_0xffc9('0x12'),_0xffc9('0x13'),_0xffc9('0x14')],'where':{'name':_0x23fa54,'role':{'$or':[_0xffc9('0x15'),_0xffc9('0x16'),_0xffc9('0x17')]}}});})[_0xffc9('0xd')](function(_0x462536){if(!_0x462536||_0x462536&&_0x462536['name']!==_0x23fa54){throw new Error('Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.');}else{_0x51aab0=_0x462536;return _0x51aab0;}})[_0xffc9('0xd')](function(){_0x51aab0[_0xffc9('0x18')](_0x40de9a,function(_0x5d4575,_0x3b66ca){var _0xcac422=_0x51aab0['loginAttempts']+0x1;if(_0x5d4575){return _0x17afe3(_0x5d4575);}else if(!_0x3b66ca){if(_0x51aab0['disabled']){return _0x17afe3(null,![],{'message':_0xffc9('0x19')});}else if(_0x1be3eb[_0xffc9('0xc')]>0x0){if(_0x51aab0['blocked']){if(_0x1be3eb[_0xffc9('0x1a')]>0x0){if(moment(_0x51aab0[_0xffc9('0x13')])[_0xffc9('0x1b')](_0x1be3eb['blockDuration'],_0xffc9('0x1c'))>moment()){return _0x17afe3(null,![],{'message':_0xffc9('0x19')});}else{return utils[_0xffc9('0x1d')](_0x51aab0,_0xcac422,![],null)[_0xffc9('0xd')](function(){return _0x17afe3(null,![],{'message':_0xffc9('0x19')});});}}else{return _0x17afe3(null,![],{'message':_0xffc9('0x19')});}}else{if(_0xcac422>=_0x1be3eb[_0xffc9('0xc')]){return utils[_0xffc9('0x1d')](_0x51aab0,0x0,!![],moment())[_0xffc9('0xd')](function(){return _0x17afe3(null,![],{'message':_0xffc9('0x19')});});}else{return utils[_0xffc9('0x1d')](_0x51aab0,_0xcac422,![],null)[_0xffc9('0xd')](function(){return _0x17afe3(null,![],{'message':_0xffc9('0x19')});});}}}else{return _0x17afe3(null,![],{'message':_0xffc9('0x19')});}}else{if(_0x51aab0[_0xffc9('0x11')]){return _0x17afe3(null,![],{'message':_0xffc9('0x19')});}else if(_0x1be3eb['allowedLoginAttempts']>0x0){if(_0x51aab0[_0xffc9('0x12')]){if(_0x1be3eb[_0xffc9('0x1a')]>0x0){if(moment(_0x51aab0['blockedAt'])['add'](_0x1be3eb[_0xffc9('0x1a')],_0xffc9('0x1c'))>moment()){return _0x17afe3(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});}else{return utils[_0xffc9('0x1d')](_0x51aab0,0x0,![],null)[_0xffc9('0xd')](function(){return utils['getLicense'](_0x51aab0);})['then'](function(){return _0x17afe3(null,_0x51aab0);});}}else{return _0x17afe3(null,![],{'message':_0xffc9('0x19')});}}else{return utils[_0xffc9('0x1d')](_0x51aab0,0x0,![],null)[_0xffc9('0xd')](function(){return utils[_0xffc9('0x1e')](_0x51aab0);})[_0xffc9('0xd')](function(){return _0x17afe3(null,_0x51aab0);})[_0xffc9('0x1f')](function(_0x178e44){return _0x17afe3(null,![],_0x178e44);});}}else{if(_0x51aab0['blocked']){return _0x17afe3(null,![],{'message':_0xffc9('0x19')});}else{return utils[_0xffc9('0x1e')](_0x51aab0)[_0xffc9('0xd')](function(){return _0x17afe3(null,_0x51aab0);});}}}});})['catch'](function(_0x2cb0ad){return _0x17afe3(null,![],_0x2cb0ad);});}function sendServiceMail(_0x58889d){return db[_0xffc9('0x20')]['find']({'where':{'service':!![]},'attributes':['id',_0xffc9('0xe'),_0xffc9('0x21')],'include':[{'model':db[_0xffc9('0x22')],'as':'Smtp'}]})[_0xffc9('0xd')](function(_0x848855){if(!_0x848855){throw new Error(_0xffc9('0x23'));}var _0x40402c={'tls':{'rejectUnauthorized':![]}};if(_0x848855[_0xffc9('0x24')]['service']){_0x40402c[_0xffc9('0x25')]=_0x848855[_0xffc9('0x24')]['service'];}else{_0x40402c['host']=_0x848855[_0xffc9('0x24')][_0xffc9('0x26')];_0x40402c[_0xffc9('0x27')]=_0x848855[_0xffc9('0x24')][_0xffc9('0x27')];_0x40402c['secure']=_0x848855[_0xffc9('0x24')][_0xffc9('0x28')];}if(_0x848855[_0xffc9('0x24')]['authentication']){_0x40402c['auth']={'user':_0x848855[_0xffc9('0x24')][_0xffc9('0x16')],'pass':_0x848855['Smtp'][_0xffc9('0x29')]};}var _0x4057ed={'account':_0x40402c,'message':_[_0xffc9('0x2a')]({'from':util[_0xffc9('0x2b')](_0xffc9('0x2c'),_0x848855[_0xffc9('0xe')],_0x848855[_0xffc9('0x21')]||_0x848855[_0xffc9('0x24')][_0xffc9('0x16')])},_0x58889d)};return client['request']('SendMail',_0x4057ed);})[_0xffc9('0xd')](function(_0x5e5939){if(_0x5e5939[_0xffc9('0x2d')]){throw new Error(util[_0xffc9('0x2b')](_0xffc9('0x2e'),_0x5e5939[_0xffc9('0x2d')]['message']||JSON[_0xffc9('0x2f')](_0x5e5939['error'])));}return!![];});}function handleError(_0x4487e0,_0x12c617,_0x4037c0){return _0x4487e0[_0xffc9('0x30')](_0x12c617||0x1f4)['send']({'message':_0x4037c0?_0x4037c0[_0xffc9('0x31')]||_0x4037c0:''});}exports['login']=function(_0xa5237b,_0x4fa1d6,_0x35085d){passport[_0xffc9('0x18')](_0xffc9('0x32'),function(_0x41555b,_0x1b1353,_0x231fe0){var _0x291585=_0x41555b||_0x231fe0;if(_0x291585){return handleError(_0x4fa1d6,0x191,_0x291585);}if(!_0x1b1353){return handleError(_0x4fa1d6,0x194,{'message':_0xffc9('0x33')});}else{var _0x537c88={'payload':{'id':_0x1b1353['id'],'role':_0x1b1353[_0xffc9('0x34')]},'options':{'expiresIn':0x15180}};return authService[_0xffc9('0x35')](_0x537c88)[_0xffc9('0xd')](function(_0x22ab05){_0x4fa1d6[_0xffc9('0x36')]({'id':_0x1b1353['id'],'token':_0x22ab05,'statusCall':'','isAlreadyLogged':_0x1b1353[_0xffc9('0x37')]});});}})(_0xa5237b,_0x4fa1d6,_0x35085d);};exports[_0xffc9('0x38')]=function(_0x28fa9f,_0x976cee,_0x2d3545){if(!_0x28fa9f[_0xffc9('0x39')][_0xffc9('0x21')]){return handleError(_0x976cee,0x1f4,{'message':_0xffc9('0x3a')});}var _0x43e907=rs['generate']();_0x28fa9f[_0xffc9('0x39')]['email']=_0x28fa9f[_0xffc9('0x39')][_0xffc9('0x21')][_0xffc9('0x3b')]()[_0xffc9('0x3c')]();var _0x2edd5a;return db[_0xffc9('0xa')][_0xffc9('0xb')]({'where':{'id':0x1},'attributes':[_0xffc9('0xc'),_0xffc9('0x1a')],'raw':!![]})[_0xffc9('0xd')](function(_0x13eb26){_0x2edd5a=_0x13eb26;return db['User']['find']({'where':{'email':_0x28fa9f[_0xffc9('0x39')][_0xffc9('0x21')]}});})[_0xffc9('0xd')](function(_0x3688f0){if(!_0x3688f0){throw new Error(_0xffc9('0x3d'));}if(_0x3688f0[_0xffc9('0x11')]){throw new Error(_0xffc9('0x3e'));}if(_0x3688f0[_0xffc9('0x12')]){if(moment(_0x3688f0[_0xffc9('0x13')])['add'](_0x2edd5a[_0xffc9('0x1a')],_0xffc9('0x1c'))>moment()){throw new Error(_0xffc9('0x3f'));}else{_0x3688f0[_0xffc9('0x12')]=![];_0x3688f0[_0xffc9('0x13')]=null;}}_0x3688f0[_0xffc9('0x40')]=_0x43e907;_0x3688f0[_0xffc9('0x41')]=Date[_0xffc9('0x42')]()+0x36ee80;return _0x3688f0[_0xffc9('0x43')]();})[_0xffc9('0xd')](function(){return sendServiceMail({'to':_0x28fa9f['body']['email'],'subject':'xCally\x20Motion\x20Password\x20Reset','text':'You\x20are\x20receiving\x20this\x20because\x20you\x20(or\x20someone\x20else)\x20have\x20requested\x20the\x20reset\x20of\x20the\x20password\x20for\x20your\x20account.\x0a\x0a'+_0xffc9('0x44')+'https://'+_0x28fa9f['headers'][_0xffc9('0x26')]+_0xffc9('0x45')+_0x43e907+'\x0a\x0a'+_0xffc9('0x46')});})['then'](function(){_0x976cee[_0xffc9('0x30')](0xc8)['send']({'message':'Reset\x20Email\x20sent!'});})[_0xffc9('0x1f')](function(_0x3d39b2){return handleError(_0x976cee,0x1f4,_0x3d39b2);});};exports[_0xffc9('0x47')]=function(_0xad98fa,_0x5dbdf2,_0xab36e9){return db[_0xffc9('0x48')][_0xffc9('0x49')]({'where':{'resetPasswordToken':_0xad98fa[_0xffc9('0x4a')][_0xffc9('0x4b')],'resetPasswordExpires':{'$gt':Date[_0xffc9('0x42')]()}}})[_0xffc9('0xd')](function(_0x429c1b){if(!_0x429c1b){throw new Error('Password\x20reset\x20token\x20is\x20invalid\x20or\x20has\x20expired.');}return db[_0xffc9('0xa')][_0xffc9('0xb')]({'attributes':['id',_0xffc9('0x4c'),_0xffc9('0x4d'),_0xffc9('0x4e')]})[_0xffc9('0xd')](function(_0x5b02d8){if(_0x5b02d8[_0xffc9('0x4c')])authService[_0xffc9('0x4f')](_0xad98fa[_0xffc9('0x39')][_0xffc9('0xf')]);if(!_0x5b02d8[_0xffc9('0x4d')]||!_0x429c1b[_0xffc9('0x50')])return _0x429c1b;authService[_0xffc9('0x51')](_0xad98fa[_0xffc9('0x39')][_0xffc9('0xf')],_0x429c1b[_0xffc9('0x50')],_0x5b02d8[_0xffc9('0x4e')]);return _0x429c1b;})[_0xffc9('0xd')](function(){_0x429c1b[_0xffc9('0xf')]=_0xad98fa[_0xffc9('0x39')][_0xffc9('0xf')];_0x429c1b['resetPasswordToken']=null;_0x429c1b[_0xffc9('0x41')]=null;return _0x429c1b[_0xffc9('0x43')]();});})[_0xffc9('0xd')](function(){_0x5dbdf2[_0xffc9('0x30')](0xc8)[_0xffc9('0x52')]({'message':_0xffc9('0x53')});})[_0xffc9('0x1f')](function(_0x3f2275){return handleError(_0x5dbdf2,0x1f4,_0x3f2275);});};passport[_0xffc9('0x54')](new LocalStrategy({'usernameField':_0xffc9('0xe'),'passwordField':'password'},function(_0x5c5834,_0x4638a3,_0x43e0e2){return localAuthenticate(db['User'],_0x5c5834,_0x4638a3,_0x43e0e2);}));
\ No newline at end of file
+var _0xab8f=['minutes','clearBlockUser','getLicense','catch','find','Smtp','Unable\x20to\x20find\x20a\x20configured\x20SMTP\x20service!','service','host','port','secure','authentication','auth','pass','format','\x22%s\x22\x20<%s>','email','error','message','stringify','send','login','local','signToken','body','Email\x20parameter\x20is\x20missing','generate','trim','toLowerCase','This\x20email\x20is\x20not\x20registered.','The\x20user\x20is\x20disabled.\x20Please\x20contact\x20the\x20administrator.','resetPasswordToken','resetPasswordExpires','save','xCally\x20Motion\x20Password\x20Reset','You\x20are\x20receiving\x20this\x20because\x20you\x20(or\x20someone\x20else)\x20have\x20requested\x20the\x20reset\x20of\x20the\x20password\x20for\x20your\x20account.\x0a\x0a','https://','headers','/reset/','If\x20you\x20did\x20not\x20request\x20this,\x20please\x20ignore\x20this\x20email\x20and\x20your\x20password\x20will\x20remain\x20unchanged.\x0a','status','reset','User','params','token','now','Setting','securePassword','passwordHistoryLimit','validatePasswordPattern','previousPasswords','validatePasswordHistory','Password\x20reset!','util','passport','passport-local','Strategy','jayson/promise','lodash','randomstring','moment','../../mysqldb','../../components/auth/service','../../config/utils','http','blockDuration','findOne','password','salt','role','disabled','blocked','loginAttempts','user','agent','then','name','Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.','authenticate','allowedLoginAttempts','blockedAt','add'];(function(_0xd6f170,_0x21738a){var _0x3e02aa=function(_0x57c310){while(--_0x57c310){_0xd6f170['push'](_0xd6f170['shift']());}};_0x3e02aa(++_0x21738a);}(_0xab8f,0x12b));var _0xfab8=function(_0x31820a,_0x58f932){_0x31820a=_0x31820a-0x0;var _0x398134=_0xab8f[_0x31820a];return _0x398134;};'use strict';var util=require(_0xfab8('0x0'));var passport=require(_0xfab8('0x1'));var LocalStrategy=require(_0xfab8('0x2'))[_0xfab8('0x3')];var jayson=require(_0xfab8('0x4'));var _=require(_0xfab8('0x5'));var rs=require(_0xfab8('0x6'));var moment=require(_0xfab8('0x7'));var db=require(_0xfab8('0x8'))['db'];var authService=require(_0xfab8('0x9'));var utils=require(_0xfab8('0xa'));var client=jayson['client'][_0xfab8('0xb')]({'port':0x232b});function localAuthenticate(_0x3279bb,_0x2ca3c7,_0x2da4ab,_0x378fb6){var _0x45ac0e,_0x2c1121;return db['Setting']['findOne']({'where':{'id':0x1},'attributes':['allowedLoginAttempts',_0xfab8('0xc')],'raw':!![]})['then'](function(_0xbfe125){_0x45ac0e=_0xbfe125;return _0x3279bb[_0xfab8('0xd')]({'attributes':['id','name',_0xfab8('0xe'),_0xfab8('0xf'),_0xfab8('0x10'),_0xfab8('0x11'),_0xfab8('0x12'),'blockedAt',_0xfab8('0x13')],'where':{'name':_0x2ca3c7,'role':{'$or':['admin',_0xfab8('0x14'),_0xfab8('0x15')]}}});})[_0xfab8('0x16')](function(_0x56b530){if(!_0x56b530||_0x56b530&&_0x56b530[_0xfab8('0x17')]!==_0x2ca3c7){throw new Error(_0xfab8('0x18'));}else{_0x2c1121=_0x56b530;return _0x2c1121;}})[_0xfab8('0x16')](function(){_0x2c1121[_0xfab8('0x19')](_0x2da4ab,function(_0x2f5156,_0x26d351){var _0x3b62c1=_0x2c1121[_0xfab8('0x13')]+0x1;if(_0x2f5156){return _0x378fb6(_0x2f5156);}else if(!_0x26d351){if(_0x2c1121[_0xfab8('0x11')]){return _0x378fb6(null,![],{'message':_0xfab8('0x18')});}else if(_0x45ac0e[_0xfab8('0x1a')]>0x0){if(_0x2c1121[_0xfab8('0x12')]){if(_0x45ac0e['blockDuration']>0x0){if(moment(_0x2c1121[_0xfab8('0x1b')])[_0xfab8('0x1c')](_0x45ac0e['blockDuration'],_0xfab8('0x1d'))>moment()){return _0x378fb6(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});}else{return utils[_0xfab8('0x1e')](_0x2c1121,_0x3b62c1,![],null)[_0xfab8('0x16')](function(){return _0x378fb6(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});});}}else{return _0x378fb6(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});}}else{if(_0x3b62c1>=_0x45ac0e[_0xfab8('0x1a')]){return utils['clearBlockUser'](_0x2c1121,0x0,!![],moment())[_0xfab8('0x16')](function(){return _0x378fb6(null,![],{'message':_0xfab8('0x18')});});}else{return utils[_0xfab8('0x1e')](_0x2c1121,_0x3b62c1,![],null)['then'](function(){return _0x378fb6(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});});}}}else{return _0x378fb6(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});}}else{if(_0x2c1121['disabled']){return _0x378fb6(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});}else if(_0x45ac0e[_0xfab8('0x1a')]>0x0){if(_0x2c1121['blocked']){if(_0x45ac0e[_0xfab8('0xc')]>0x0){if(moment(_0x2c1121[_0xfab8('0x1b')])[_0xfab8('0x1c')](_0x45ac0e[_0xfab8('0xc')],'minutes')>moment()){return _0x378fb6(null,![],{'message':_0xfab8('0x18')});}else{return utils[_0xfab8('0x1e')](_0x2c1121,0x0,![],null)['then'](function(){return utils[_0xfab8('0x1f')](_0x2c1121);})['then'](function(){return _0x378fb6(null,_0x2c1121);});}}else{return _0x378fb6(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});}}else{return utils[_0xfab8('0x1e')](_0x2c1121,0x0,![],null)[_0xfab8('0x16')](function(){return utils[_0xfab8('0x1f')](_0x2c1121);})[_0xfab8('0x16')](function(){return _0x378fb6(null,_0x2c1121);})[_0xfab8('0x20')](function(_0x575573){return _0x378fb6(null,![],_0x575573);});}}else{if(_0x2c1121[_0xfab8('0x12')]){return _0x378fb6(null,![],{'message':_0xfab8('0x18')});}else{return utils['getLicense'](_0x2c1121)[_0xfab8('0x16')](function(){return _0x378fb6(null,_0x2c1121);});}}}});})[_0xfab8('0x20')](function(_0x38d5b5){return _0x378fb6(null,![],_0x38d5b5);});}function sendServiceMail(_0x670180){return db['MailAccount'][_0xfab8('0x21')]({'where':{'service':!![]},'attributes':['id',_0xfab8('0x17'),'email'],'include':[{'model':db['MailServerOut'],'as':_0xfab8('0x22')}]})[_0xfab8('0x16')](function(_0x2d459c){if(!_0x2d459c){throw new Error(_0xfab8('0x23'));}var _0x8ed847={'tls':{'rejectUnauthorized':![]}};if(_0x2d459c[_0xfab8('0x22')][_0xfab8('0x24')]){_0x8ed847[_0xfab8('0x24')]=_0x2d459c['Smtp']['service'];}else{_0x8ed847[_0xfab8('0x25')]=_0x2d459c[_0xfab8('0x22')][_0xfab8('0x25')];_0x8ed847[_0xfab8('0x26')]=_0x2d459c['Smtp']['port'];_0x8ed847[_0xfab8('0x27')]=_0x2d459c[_0xfab8('0x22')][_0xfab8('0x27')];}if(_0x2d459c[_0xfab8('0x22')][_0xfab8('0x28')]){_0x8ed847[_0xfab8('0x29')]={'user':_0x2d459c[_0xfab8('0x22')][_0xfab8('0x14')],'pass':_0x2d459c['Smtp'][_0xfab8('0x2a')]};}var _0x385f32={'account':_0x8ed847,'message':_['merge']({'from':util[_0xfab8('0x2b')](_0xfab8('0x2c'),_0x2d459c[_0xfab8('0x17')],_0x2d459c[_0xfab8('0x2d')]||_0x2d459c[_0xfab8('0x22')][_0xfab8('0x14')])},_0x670180)};return client['request']('SendMail',_0x385f32);})[_0xfab8('0x16')](function(_0x4ab84b){if(_0x4ab84b[_0xfab8('0x2e')]){throw new Error(util[_0xfab8('0x2b')]('SendMail\x20error:\x20%s.\x20Please\x20contact\x20your\x20Administrator!',_0x4ab84b[_0xfab8('0x2e')][_0xfab8('0x2f')]||JSON[_0xfab8('0x30')](_0x4ab84b['error'])));}return!![];});}function handleError(_0xaefa22,_0x1852ab,_0x4a8522){return _0xaefa22['status'](_0x1852ab||0x1f4)[_0xfab8('0x31')]({'message':_0x4a8522?_0x4a8522[_0xfab8('0x2f')]||_0x4a8522:''});}exports[_0xfab8('0x32')]=function(_0x518dd3,_0x56c518,_0x2921a3){passport[_0xfab8('0x19')](_0xfab8('0x33'),function(_0x1c37f7,_0x8a4760,_0x3e4a8b){var _0x3f7d53=_0x1c37f7||_0x3e4a8b;if(_0x3f7d53){return handleError(_0x56c518,0x191,_0x3f7d53);}if(!_0x8a4760){return handleError(_0x56c518,0x194,{'message':'Something\x20went\x20wrong,\x20please\x20try\x20again.'});}else{var _0x2d746f={'payload':{'id':_0x8a4760['id'],'role':_0x8a4760[_0xfab8('0x10')]},'options':{'expiresIn':0x15180}};return authService[_0xfab8('0x34')](_0x2d746f)[_0xfab8('0x16')](function(_0x5f2545){_0x56c518['json']({'id':_0x8a4760['id'],'token':_0x5f2545,'statusCall':'','isAlreadyLogged':_0x8a4760['online']});});}})(_0x518dd3,_0x56c518,_0x2921a3);};exports['forgot']=function(_0x3ad38a,_0x52303b,_0x4d5301){if(!_0x3ad38a[_0xfab8('0x35')][_0xfab8('0x2d')]){return handleError(_0x52303b,0x1f4,{'message':_0xfab8('0x36')});}var _0x339855=rs[_0xfab8('0x37')]();_0x3ad38a[_0xfab8('0x35')]['email']=_0x3ad38a[_0xfab8('0x35')][_0xfab8('0x2d')][_0xfab8('0x38')]()[_0xfab8('0x39')]();var _0x402c1c;return db['Setting'][_0xfab8('0xd')]({'where':{'id':0x1},'attributes':['allowedLoginAttempts',_0xfab8('0xc')],'raw':!![]})[_0xfab8('0x16')](function(_0x23a071){_0x402c1c=_0x23a071;return db['User']['find']({'where':{'email':_0x3ad38a[_0xfab8('0x35')][_0xfab8('0x2d')]}});})[_0xfab8('0x16')](function(_0x3efa98){if(!_0x3efa98){throw new Error(_0xfab8('0x3a'));}if(_0x3efa98[_0xfab8('0x11')]){throw new Error(_0xfab8('0x3b'));}if(_0x3efa98['blocked']){if(moment(_0x3efa98[_0xfab8('0x1b')])[_0xfab8('0x1c')](_0x402c1c['blockDuration'],_0xfab8('0x1d'))>moment()){throw new Error('The\x20user\x20is\x20blocked.\x20Please\x20contact\x20the\x20administrator.');}else{_0x3efa98[_0xfab8('0x12')]=![];_0x3efa98['blockedAt']=null;}}_0x3efa98[_0xfab8('0x3c')]=_0x339855;_0x3efa98[_0xfab8('0x3d')]=Date['now']()+0x36ee80;return _0x3efa98[_0xfab8('0x3e')]();})[_0xfab8('0x16')](function(){return sendServiceMail({'to':_0x3ad38a[_0xfab8('0x35')][_0xfab8('0x2d')],'subject':_0xfab8('0x3f'),'text':_0xfab8('0x40')+'Please\x20click\x20on\x20the\x20following\x20link,\x20or\x20paste\x20this\x20into\x20your\x20browser\x20to\x20complete\x20the\x20process:\x0a\x0a'+_0xfab8('0x41')+_0x3ad38a[_0xfab8('0x42')][_0xfab8('0x25')]+_0xfab8('0x43')+_0x339855+'\x0a\x0a'+_0xfab8('0x44')});})['then'](function(){_0x52303b[_0xfab8('0x45')](0xc8)[_0xfab8('0x31')]({'message':'Reset\x20Email\x20sent!'});})['catch'](function(_0x88988f){return handleError(_0x52303b,0x1f4,_0x88988f);});};exports[_0xfab8('0x46')]=function(_0x3e36fb,_0x4f8f6c,_0xdf608c){return db[_0xfab8('0x47')]['find']({'where':{'resetPasswordToken':_0x3e36fb[_0xfab8('0x48')][_0xfab8('0x49')],'resetPasswordExpires':{'$gt':Date[_0xfab8('0x4a')]()}}})['then'](function(_0x4e3273){if(!_0x4e3273){throw new Error('Password\x20reset\x20token\x20is\x20invalid\x20or\x20has\x20expired.');}return db[_0xfab8('0x4b')][_0xfab8('0xd')]({'attributes':['id',_0xfab8('0x4c'),'enforcePasswordHistory',_0xfab8('0x4d')]})[_0xfab8('0x16')](function(_0x53d204){if(_0x53d204['securePassword'])authService[_0xfab8('0x4e')](_0x3e36fb['body'][_0xfab8('0xe')]);if(!_0x53d204['enforcePasswordHistory']||!_0x4e3273[_0xfab8('0x4f')])return _0x4e3273;authService[_0xfab8('0x50')](_0x3e36fb[_0xfab8('0x35')][_0xfab8('0xe')],_0x4e3273[_0xfab8('0x4f')],_0x53d204[_0xfab8('0x4d')]);return _0x4e3273;})[_0xfab8('0x16')](function(){_0x4e3273[_0xfab8('0xe')]=_0x3e36fb[_0xfab8('0x35')]['password'];_0x4e3273[_0xfab8('0x3c')]=null;_0x4e3273[_0xfab8('0x3d')]=null;return _0x4e3273['save']();});})['then'](function(){_0x4f8f6c[_0xfab8('0x45')](0xc8)[_0xfab8('0x31')]({'message':_0xfab8('0x51')});})[_0xfab8('0x20')](function(_0x43a6ae){return handleError(_0x4f8f6c,0x1f4,_0x43a6ae);});};passport['use'](new LocalStrategy({'usernameField':_0xfab8('0x17'),'passwordField':_0xfab8('0xe')},function(_0x3b25d0,_0x10a153,_0x2acaca){return localAuthenticate(db[_0xfab8('0x47')],_0x3b25d0,_0x10a153,_0x2acaca);}));
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5b55=['login','/reset/:token','reset','exports','express','Router','post'];(function(_0x522857,_0x1a54d6){var _0x4057f2=function(_0x8dcfd2){while(--_0x8dcfd2){_0x522857['push'](_0x522857['shift']());}};_0x4057f2(++_0x1a54d6);}(_0x5b55,0x1a1));var _0x55b5=function(_0x5e9aa2,_0xd197ca){_0x5e9aa2=_0x5e9aa2-0x0;var _0xc42277=_0x5b55[_0x5e9aa2];return _0xc42277;};'use strict';var express=require(_0x55b5('0x0'));var router=express[_0x55b5('0x1')]();var controller=require('./authLocal.controller');router[_0x55b5('0x2')]('/',controller[_0x55b5('0x3')]);router[_0x55b5('0x2')]('/forgot',controller['forgot']);router[_0x55b5('0x2')](_0x55b5('0x4'),controller[_0x55b5('0x5')]);module[_0x55b5('0x6')]=router;
\ No newline at end of file
+var _0x19db=['Router','./authLocal.controller','post','forgot','reset','express'];(function(_0x486bdf,_0x185ae8){var _0x2d455d=function(_0x6313c){while(--_0x6313c){_0x486bdf['push'](_0x486bdf['shift']());}};_0x2d455d(++_0x185ae8);}(_0x19db,0xbf));var _0xb19d=function(_0x2e04b6,_0xd8ff75){_0x2e04b6=_0x2e04b6-0x0;var _0x3ef5cc=_0x19db[_0x2e04b6];return _0x3ef5cc;};'use strict';var express=require(_0xb19d('0x0'));var router=express[_0xb19d('0x1')]();var controller=require(_0xb19d('0x2'));router['post']('/',controller['login']);router[_0xb19d('0x3')]('/forgot',controller[_0xb19d('0x4')]);router[_0xb19d('0x3')]('/reset/:token',controller[_0xb19d('0x5')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0e80=['STRING','BOOLEAN','INTEGER','sequelize','exports'];(function(_0x41fc01,_0x2602bf){var _0x462d60=function(_0x54d755){while(--_0x54d755){_0x41fc01['push'](_0x41fc01['shift']());}};_0x462d60(++_0x2602bf);}(_0x0e80,0xda));var _0x00e8=function(_0x5ef89e,_0x368d23){_0x5ef89e=_0x5ef89e-0x0;var _0x4399c1=_0x0e80[_0x5ef89e];return _0x4399c1;};'use strict';var Sequelize=require(_0x00e8('0x0'));module[_0x00e8('0x1')]={'name':{'type':Sequelize[_0x00e8('0x2')],'allowNull':![]},'channel':{'type':Sequelize[_0x00e8('0x2')]},'description':{'type':Sequelize[_0x00e8('0x2')]},'status':{'type':Sequelize[_0x00e8('0x3')],'defaultValue':![]},'timeout':{'type':Sequelize[_0x00e8('0x4')],'defaultValue':0xa}};
\ No newline at end of file
+var _0x7737=['exports','STRING','INTEGER','sequelize'];(function(_0x1cdb54,_0x1b053f){var _0x1568e4=function(_0x3763d7){while(--_0x3763d7){_0x1cdb54['push'](_0x1cdb54['shift']());}};_0x1568e4(++_0x1b053f);}(_0x7737,0x1e3));var _0x7773=function(_0x304976,_0x14432b){_0x304976=_0x304976-0x0;var _0xb73047=_0x7737[_0x304976];return _0xb73047;};'use strict';var Sequelize=require(_0x7773('0x0'));module[_0x7773('0x1')]={'name':{'type':Sequelize[_0x7773('0x2')],'allowNull':![]},'channel':{'type':Sequelize['STRING']},'description':{'type':Sequelize['STRING']},'status':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'timeout':{'type':Sequelize[_0x7773('0x3')],'defaultValue':0xa}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x225c=['filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','type','merge','options','Automation','includeAll','include','rows','catch','show','keys','create','body','find','params','addConditions','Condition','omit','ids','findOne','addActions','Action','getActions','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','ejs','fs-extra','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','undefined','limit','count','offset','set','Content-Range','reject','save','update','then','destroy','stack','name','send','map','rawAttributes','fieldName','key','query'];(function(_0x12d630,_0x150308){var _0x2bcf6d=function(_0x577e35){while(--_0x577e35){_0x12d630['push'](_0x12d630['shift']());}};_0x2bcf6d(++_0x150308);}(_0x225c,0x16b));var _0xc225=function(_0xa464c9,_0x7c86d8){_0xa464c9=_0xa464c9-0x0;var _0x3d73c4=_0x225c[_0xa464c9];return _0x3d73c4;};'use strict';var emlformat=require(_0xc225('0x0'));var rimraf=require(_0xc225('0x1'));var zipdir=require(_0xc225('0x2'));var jsonpatch=require(_0xc225('0x3'));var rp=require('request-promise');var moment=require(_0xc225('0x4'));var BPromise=require(_0xc225('0x5'));var Mustache=require(_0xc225('0x6'));var util=require(_0xc225('0x7'));var path=require(_0xc225('0x8'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0xc225('0x9'));var fs=require('fs');var fs_extra=require(_0xc225('0xa'));var _=require('lodash');var squel=require(_0xc225('0xb'));var crypto=require(_0xc225('0xc'));var jsforce=require(_0xc225('0xd'));var deskjs=require(_0xc225('0xe'));var toCsv=require(_0xc225('0xf'));var querystring=require(_0xc225('0x10'));var Papa=require(_0xc225('0x11'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0xc225('0x12'));var as=require(_0xc225('0x13'));var hardwareService=require(_0xc225('0x14'));var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require(_0xc225('0x15'));var licenseUtil=require(_0xc225('0x16'));var db=require(_0xc225('0x17'))['db'];function respondWithStatusCode(_0x393a29,_0x2bbb81){_0x2bbb81=_0x2bbb81||0xcc;return function(_0x2df9be){if(_0x2df9be){return _0x393a29[_0xc225('0x18')](_0x2bbb81);}return _0x393a29[_0xc225('0x19')](_0x2bbb81)[_0xc225('0x1a')]();};}function respondWithResult(_0x46453d,_0x13b743){_0x13b743=_0x13b743||0xc8;return function(_0x489e43){if(_0x489e43){return _0x46453d['status'](_0x13b743)[_0xc225('0x1b')](_0x489e43);}};}function respondWithFilteredResult(_0x2a79e3,_0x3d115b){return function(_0x40e3c4){if(_0x40e3c4){var _0x1bf30f=typeof _0x3d115b['offset']===_0xc225('0x1c')&&typeof _0x3d115b[_0xc225('0x1d')]===_0xc225('0x1c');var _0x5a29c7=_0x40e3c4[_0xc225('0x1e')];var _0x57f094=_0x1bf30f?0x0:_0x3d115b['offset'];var _0x2689fe=_0x1bf30f?_0x40e3c4[_0xc225('0x1e')]:_0x3d115b[_0xc225('0x1f')]+_0x3d115b[_0xc225('0x1d')];var _0x290fd8;if(_0x2689fe>=_0x5a29c7){_0x2689fe=_0x5a29c7;_0x290fd8=0xc8;}else{_0x290fd8=0xce;}_0x2a79e3['status'](_0x290fd8);return _0x2a79e3[_0xc225('0x20')](_0xc225('0x21'),_0x57f094+'-'+_0x2689fe+'/'+_0x5a29c7)[_0xc225('0x1b')](_0x40e3c4);}return null;};}function patchUpdates(_0x1551fa){return function(_0x3e38a2){try{jsonpatch['apply'](_0x3e38a2,_0x1551fa,!![]);}catch(_0xc7964b){return BPromise[_0xc225('0x22')](_0xc7964b);}return _0x3e38a2[_0xc225('0x23')]();};}function saveUpdates(_0x5913fb,_0x2a582d){return function(_0x4a6277){if(_0x4a6277){return _0x4a6277[_0xc225('0x24')](_0x5913fb)[_0xc225('0x25')](function(_0x112d40){return _0x112d40;});}return null;};}function removeEntity(_0x2136b0,_0x87f35b){return function(_0x4329e3){if(_0x4329e3){return _0x4329e3[_0xc225('0x26')]()['then'](function(){_0x2136b0[_0xc225('0x19')](0xcc)[_0xc225('0x1a')]();});}};}function handleEntityNotFound(_0x5e8c18,_0x4a51a4){return function(_0x43a9aa){if(!_0x43a9aa){_0x5e8c18[_0xc225('0x18')](0x194);}return _0x43a9aa;};}function handleError(_0xb7d7ce,_0x4a78f4){_0x4a78f4=_0x4a78f4||0x1f4;return function(_0x457c8f){logger['error'](_0x457c8f[_0xc225('0x27')]);if(_0x457c8f[_0xc225('0x28')]){delete _0x457c8f['name'];}_0xb7d7ce[_0xc225('0x19')](_0x4a78f4)[_0xc225('0x29')](_0x457c8f);};}exports['index']=function(_0x6d97bf,_0x10e9d6){var _0x29952e={},_0x20f7ff={},_0xe2717c={'count':0x0,'rows':[]};var _0x387132=_[_0xc225('0x2a')](db['Automation'][_0xc225('0x2b')],function(_0x23af84){return{'name':_0x23af84[_0xc225('0x2c')],'type':_0x23af84['type'][_0xc225('0x2d')]};});_0x20f7ff['model']=_[_0xc225('0x2a')](_0x387132,_0xc225('0x28'));_0x20f7ff['query']=_['keys'](_0x6d97bf[_0xc225('0x2e')]);_0x20f7ff[_0xc225('0x2f')]=_[_0xc225('0x30')](_0x20f7ff[_0xc225('0x31')],_0x20f7ff['query']);_0x29952e[_0xc225('0x32')]=_[_0xc225('0x30')](_0x20f7ff['model'],qs[_0xc225('0x33')](_0x6d97bf['query'][_0xc225('0x33')]));_0x29952e[_0xc225('0x32')]=_0x29952e['attributes'][_0xc225('0x34')]?_0x29952e[_0xc225('0x32')]:_0x20f7ff[_0xc225('0x31')];if(!_0x6d97bf[_0xc225('0x2e')][_0xc225('0x35')](_0xc225('0x36'))){_0x29952e[_0xc225('0x1d')]=qs[_0xc225('0x1d')](_0x6d97bf['query']['limit']);_0x29952e['offset']=qs[_0xc225('0x1f')](_0x6d97bf['query'][_0xc225('0x1f')]);}_0x29952e[_0xc225('0x37')]=qs['sort'](_0x6d97bf[_0xc225('0x2e')][_0xc225('0x38')]);_0x29952e[_0xc225('0x39')]=qs[_0xc225('0x2f')](_[_0xc225('0x3a')](_0x6d97bf[_0xc225('0x2e')],_0x20f7ff[_0xc225('0x2f')]),_0x387132);if(_0x6d97bf[_0xc225('0x2e')][_0xc225('0x3b')]){_0x29952e[_0xc225('0x39')]=_['merge'](_0x29952e[_0xc225('0x39')],{'$or':_[_0xc225('0x2a')](_0x387132,function(_0x1b214c){if(_0x1b214c[_0xc225('0x3c')]!=='VIRTUAL'){var _0x375354={};_0x375354[_0x1b214c[_0xc225('0x28')]]={'$like':'%'+_0x6d97bf['query'][_0xc225('0x3b')]+'%'};return _0x375354;}})});}_0x29952e=_[_0xc225('0x3d')]({},_0x29952e,_0x6d97bf[_0xc225('0x3e')]);var _0x410f63={'where':_0x29952e[_0xc225('0x39')]};return db[_0xc225('0x3f')][_0xc225('0x1e')](_0x410f63)[_0xc225('0x25')](function(_0x5c4bd2){_0xe2717c['count']=_0x5c4bd2;if(_0x6d97bf[_0xc225('0x2e')][_0xc225('0x40')]){_0x29952e[_0xc225('0x41')]=[{'all':!![]}];}return db[_0xc225('0x3f')]['findAll'](_0x29952e);})[_0xc225('0x25')](function(_0x4c42f3){_0xe2717c[_0xc225('0x42')]=_0x4c42f3;return _0xe2717c;})[_0xc225('0x25')](respondWithFilteredResult(_0x10e9d6,_0x29952e))[_0xc225('0x43')](handleError(_0x10e9d6,null));};exports[_0xc225('0x44')]=function(_0x11ffc0,_0x4ec3ca){var _0x25409f={'raw':![],'where':{'id':_0x11ffc0['params']['id']}},_0x5a04ea={};_0x5a04ea[_0xc225('0x31')]=_[_0xc225('0x45')](db[_0xc225('0x3f')]['rawAttributes']);_0x5a04ea['query']=_[_0xc225('0x45')](_0x11ffc0['query']);_0x5a04ea[_0xc225('0x2f')]=_[_0xc225('0x30')](_0x5a04ea[_0xc225('0x31')],_0x5a04ea['query']);_0x25409f[_0xc225('0x32')]=_['intersection'](_0x5a04ea['model'],qs[_0xc225('0x33')](_0x11ffc0[_0xc225('0x2e')][_0xc225('0x33')]));_0x25409f['attributes']=_0x25409f[_0xc225('0x32')][_0xc225('0x34')]?_0x25409f[_0xc225('0x32')]:_0x5a04ea['model'];if(_0x11ffc0['query'][_0xc225('0x40')]){_0x25409f['include']=[{'all':!![]}];}_0x25409f=_['merge']({},_0x25409f,_0x11ffc0[_0xc225('0x3e')]);return db['Automation']['find'](_0x25409f)[_0xc225('0x25')](handleEntityNotFound(_0x4ec3ca,null))[_0xc225('0x25')](respondWithResult(_0x4ec3ca,null))[_0xc225('0x43')](handleError(_0x4ec3ca,null));};exports[_0xc225('0x46')]=function(_0x5edca9,_0x2aa2bd){return db[_0xc225('0x3f')]['create'](_0x5edca9[_0xc225('0x47')],{})[_0xc225('0x25')](respondWithResult(_0x2aa2bd,0xc9))[_0xc225('0x43')](handleError(_0x2aa2bd,null));};exports[_0xc225('0x24')]=function(_0x5b5ab5,_0x4fb25e){if(_0x5b5ab5['body']['id']){delete _0x5b5ab5[_0xc225('0x47')]['id'];}return db['Automation'][_0xc225('0x48')]({'where':{'id':_0x5b5ab5[_0xc225('0x49')]['id']}})[_0xc225('0x25')](handleEntityNotFound(_0x4fb25e,null))[_0xc225('0x25')](saveUpdates(_0x5b5ab5[_0xc225('0x47')],null))[_0xc225('0x25')](respondWithResult(_0x4fb25e,null))[_0xc225('0x43')](handleError(_0x4fb25e,null));};exports[_0xc225('0x26')]=function(_0x389a29,_0x9bc836){return db[_0xc225('0x3f')][_0xc225('0x48')]({'where':{'id':_0x389a29[_0xc225('0x49')]['id']}})['then'](handleEntityNotFound(_0x9bc836,null))['then'](removeEntity(_0x9bc836,null))[_0xc225('0x43')](handleError(_0x9bc836,null));};exports[_0xc225('0x4a')]=function(_0x5c0e3c,_0x3494e8,_0x390d6e){return db[_0xc225('0x4b')][_0xc225('0x48')]({'where':{'id':_0x5c0e3c[_0xc225('0x49')]['id']}})[_0xc225('0x25')](handleEntityNotFound(_0x3494e8,null))[_0xc225('0x25')](function(_0x92510c){if(_0x92510c){return _0x92510c[_0xc225('0x4a')](_0x5c0e3c[_0xc225('0x47')]['ids'],_[_0xc225('0x4c')](_0x5c0e3c[_0xc225('0x47')],[_0xc225('0x4d'),'id'])||{});}})['then'](respondWithResult(_0x3494e8,null))['catch'](handleError(_0x3494e8,null));};exports['getConditions']=function(_0x5b4484,_0x2dd4d8,_0x2ca91d){var _0xd7a2b7={};var _0x2c21c1={};var _0x124191;var _0x3772ab;return db[_0xc225('0x3f')][_0xc225('0x4e')]({'where':{'id':_0x5b4484['params']['id']}})[_0xc225('0x25')](handleEntityNotFound(_0x2dd4d8,null))['then'](function(_0x580b0d){if(_0x580b0d){_0x124191=_0x580b0d;_0x2c21c1[_0xc225('0x31')]=_[_0xc225('0x45')](db[_0xc225('0x4b')]['rawAttributes']);_0x2c21c1['query']=_[_0xc225('0x45')](_0x5b4484[_0xc225('0x2e')]);_0x2c21c1[_0xc225('0x2f')]=_[_0xc225('0x30')](_0x2c21c1[_0xc225('0x31')],_0x2c21c1['query']);_0xd7a2b7[_0xc225('0x32')]=_[_0xc225('0x30')](_0x2c21c1[_0xc225('0x31')],qs['fields'](_0x5b4484[_0xc225('0x2e')][_0xc225('0x33')]));_0xd7a2b7[_0xc225('0x32')]=_0xd7a2b7[_0xc225('0x32')][_0xc225('0x34')]?_0xd7a2b7[_0xc225('0x32')]:_0x2c21c1['model'];_0xd7a2b7[_0xc225('0x37')]=qs['sort'](_0x5b4484['query'][_0xc225('0x38')]);_0xd7a2b7[_0xc225('0x39')]=qs[_0xc225('0x2f')](_['pick'](_0x5b4484[_0xc225('0x2e')],_0x2c21c1[_0xc225('0x2f')]));if(_0x5b4484[_0xc225('0x2e')][_0xc225('0x3b')]){_0xd7a2b7[_0xc225('0x39')]=_[_0xc225('0x3d')](_0xd7a2b7[_0xc225('0x39')],{'$or':_[_0xc225('0x2a')](_0xd7a2b7[_0xc225('0x32')],function(_0x21f6d1){var _0x5b650c={};_0x5b650c[_0x21f6d1]={'$like':'%'+_0x5b4484['query'][_0xc225('0x3b')]+'%'};return _0x5b650c;})});}_0xd7a2b7=_[_0xc225('0x3d')]({},_0xd7a2b7,_0x5b4484[_0xc225('0x3e')]);return _0x124191['getConditions'](_0xd7a2b7);}})[_0xc225('0x25')](function(_0x4ef044){if(_0x4ef044){_0x3772ab=_0x4ef044[_0xc225('0x34')];if(!_0x5b4484[_0xc225('0x2e')][_0xc225('0x35')](_0xc225('0x36'))){_0xd7a2b7[_0xc225('0x1d')]=qs['limit'](_0x5b4484[_0xc225('0x2e')][_0xc225('0x1d')]);_0xd7a2b7[_0xc225('0x1f')]=qs['offset'](_0x5b4484[_0xc225('0x2e')][_0xc225('0x1f')]);}return _0x124191['getConditions'](_0xd7a2b7);}})['then'](function(_0x218dc0){if(_0x218dc0){return _0x218dc0?{'count':_0x3772ab,'rows':_0x218dc0}:null;}})[_0xc225('0x25')](respondWithResult(_0x2dd4d8,null))[_0xc225('0x43')](handleError(_0x2dd4d8,null));};exports[_0xc225('0x4f')]=function(_0x4d1739,_0x47709e,_0x133b84){return db[_0xc225('0x50')]['find']({'where':{'id':_0x4d1739[_0xc225('0x49')]['id']}})['then'](handleEntityNotFound(_0x47709e,null))['then'](function(_0x50f13e){if(_0x50f13e){return _0x50f13e['addActions'](_0x4d1739[_0xc225('0x47')][_0xc225('0x4d')],_['omit'](_0x4d1739[_0xc225('0x47')],['ids','id'])||{});}})[_0xc225('0x25')](respondWithResult(_0x47709e,null))[_0xc225('0x43')](handleError(_0x47709e,null));};exports['getActions']=function(_0x40c224,_0x57a25b,_0x554abb){var _0x9e7763={};var _0x4aee11={};var _0x5377c7;var _0x42b81d;return db[_0xc225('0x3f')]['findOne']({'where':{'id':_0x40c224[_0xc225('0x49')]['id']}})[_0xc225('0x25')](handleEntityNotFound(_0x57a25b,null))[_0xc225('0x25')](function(_0x590e44){if(_0x590e44){_0x5377c7=_0x590e44;_0x4aee11[_0xc225('0x31')]=_[_0xc225('0x45')](db[_0xc225('0x50')][_0xc225('0x2b')]);_0x4aee11['query']=_[_0xc225('0x45')](_0x40c224[_0xc225('0x2e')]);_0x4aee11['filters']=_[_0xc225('0x30')](_0x4aee11[_0xc225('0x31')],_0x4aee11['query']);_0x9e7763[_0xc225('0x32')]=_[_0xc225('0x30')](_0x4aee11[_0xc225('0x31')],qs[_0xc225('0x33')](_0x40c224['query'][_0xc225('0x33')]));_0x9e7763['attributes']=_0x9e7763[_0xc225('0x32')][_0xc225('0x34')]?_0x9e7763[_0xc225('0x32')]:_0x4aee11[_0xc225('0x31')];_0x9e7763[_0xc225('0x37')]=qs['sort'](_0x40c224[_0xc225('0x2e')][_0xc225('0x38')]);_0x9e7763['where']=qs[_0xc225('0x2f')](_[_0xc225('0x3a')](_0x40c224[_0xc225('0x2e')],_0x4aee11[_0xc225('0x2f')]));if(_0x40c224[_0xc225('0x2e')][_0xc225('0x3b')]){_0x9e7763[_0xc225('0x39')]=_[_0xc225('0x3d')](_0x9e7763[_0xc225('0x39')],{'$or':_[_0xc225('0x2a')](_0x9e7763[_0xc225('0x32')],function(_0x5eaac5){var _0x399945={};_0x399945[_0x5eaac5]={'$like':'%'+_0x40c224[_0xc225('0x2e')][_0xc225('0x3b')]+'%'};return _0x399945;})});}_0x9e7763=_[_0xc225('0x3d')]({},_0x9e7763,_0x40c224[_0xc225('0x3e')]);return _0x5377c7[_0xc225('0x51')](_0x9e7763);}})['then'](function(_0x43bd56){if(_0x43bd56){_0x42b81d=_0x43bd56[_0xc225('0x34')];if(!_0x40c224[_0xc225('0x2e')][_0xc225('0x35')](_0xc225('0x36'))){_0x9e7763[_0xc225('0x1d')]=qs[_0xc225('0x1d')](_0x40c224[_0xc225('0x2e')][_0xc225('0x1d')]);_0x9e7763['offset']=qs['offset'](_0x40c224[_0xc225('0x2e')][_0xc225('0x1f')]);}return _0x5377c7[_0xc225('0x51')](_0x9e7763);}})[_0xc225('0x25')](function(_0x27910d){if(_0x27910d){return _0x27910d?{'count':_0x42b81d,'rows':_0x27910d}:null;}})['then'](respondWithResult(_0x57a25b,null))['catch'](handleError(_0x57a25b,null));};
\ No newline at end of file
+var _0x4a23=['sort','where','pick','filter','merge','VIRTUAL','options','findAll','rows','show','params','keys','rawAttributes','intersection','catch','create','body','update','find','Condition','ids','omit','getConditions','findOne','hasOwnProperty','nolimit','Action','addActions','getActions','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','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','undefined','limit','count','set','Content-Range','reject','save','then','destroy','stack','name','send','index','Automation','fieldName','type','key','map','query','filters','model','attributes','fields','length','order'];(function(_0xae7c2f,_0xf31e04){var _0x5d7001=function(_0x4eeadb){while(--_0x4eeadb){_0xae7c2f['push'](_0xae7c2f['shift']());}};_0x5d7001(++_0xf31e04);}(_0x4a23,0x1cb));var _0x34a2=function(_0x49da47,_0x2f98b7){_0x49da47=_0x49da47-0x0;var _0x58c2c4=_0x4a23[_0x49da47];return _0x58c2c4;};'use strict';var emlformat=require(_0x34a2('0x0'));var rimraf=require(_0x34a2('0x1'));var zipdir=require(_0x34a2('0x2'));var jsonpatch=require(_0x34a2('0x3'));var rp=require(_0x34a2('0x4'));var moment=require(_0x34a2('0x5'));var BPromise=require(_0x34a2('0x6'));var Mustache=require(_0x34a2('0x7'));var util=require(_0x34a2('0x8'));var path=require(_0x34a2('0x9'));var sox=require(_0x34a2('0xa'));var csv=require(_0x34a2('0xb'));var ejs=require(_0x34a2('0xc'));var fs=require('fs');var fs_extra=require(_0x34a2('0xd'));var _=require('lodash');var squel=require(_0x34a2('0xe'));var crypto=require(_0x34a2('0xf'));var jsforce=require(_0x34a2('0x10'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x34a2('0x11'));var Redis=require(_0x34a2('0x12'));var authService=require(_0x34a2('0x13'));var qs=require(_0x34a2('0x14'));var as=require(_0x34a2('0x15'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x34a2('0x16'))('api');var utils=require(_0x34a2('0x17'));var config=require(_0x34a2('0x18'));var licenseUtil=require(_0x34a2('0x19'));var db=require(_0x34a2('0x1a'))['db'];function respondWithStatusCode(_0x28dd1f,_0x16ec2f){_0x16ec2f=_0x16ec2f||0xcc;return function(_0x35276c){if(_0x35276c){return _0x28dd1f[_0x34a2('0x1b')](_0x16ec2f);}return _0x28dd1f[_0x34a2('0x1c')](_0x16ec2f)[_0x34a2('0x1d')]();};}function respondWithResult(_0x553f67,_0x13263e){_0x13263e=_0x13263e||0xc8;return function(_0x2a874e){if(_0x2a874e){return _0x553f67['status'](_0x13263e)[_0x34a2('0x1e')](_0x2a874e);}};}function respondWithFilteredResult(_0x1ba40f,_0x4aab00){return function(_0x45c71a){if(_0x45c71a){var _0x3d1a19=typeof _0x4aab00[_0x34a2('0x1f')]===_0x34a2('0x20')&&typeof _0x4aab00[_0x34a2('0x21')]===_0x34a2('0x20');var _0x406ded=_0x45c71a[_0x34a2('0x22')];var _0x4dcb14=_0x3d1a19?0x0:_0x4aab00[_0x34a2('0x1f')];var _0x3b5c38=_0x3d1a19?_0x45c71a['count']:_0x4aab00[_0x34a2('0x1f')]+_0x4aab00[_0x34a2('0x21')];var _0x526f9a;if(_0x3b5c38>=_0x406ded){_0x3b5c38=_0x406ded;_0x526f9a=0xc8;}else{_0x526f9a=0xce;}_0x1ba40f['status'](_0x526f9a);return _0x1ba40f[_0x34a2('0x23')](_0x34a2('0x24'),_0x4dcb14+'-'+_0x3b5c38+'/'+_0x406ded)[_0x34a2('0x1e')](_0x45c71a);}return null;};}function patchUpdates(_0x736d92){return function(_0x58ac5c){try{jsonpatch['apply'](_0x58ac5c,_0x736d92,!![]);}catch(_0x3874be){return BPromise[_0x34a2('0x25')](_0x3874be);}return _0x58ac5c[_0x34a2('0x26')]();};}function saveUpdates(_0x3e6bd1,_0x170df1){return function(_0x287c0b){if(_0x287c0b){return _0x287c0b['update'](_0x3e6bd1)[_0x34a2('0x27')](function(_0x4aae90){return _0x4aae90;});}return null;};}function removeEntity(_0x4466c0,_0x4a9aa3){return function(_0x4d2a97){if(_0x4d2a97){return _0x4d2a97[_0x34a2('0x28')]()[_0x34a2('0x27')](function(){_0x4466c0[_0x34a2('0x1c')](0xcc)[_0x34a2('0x1d')]();});}};}function handleEntityNotFound(_0x279050,_0x30732b){return function(_0x287e4c){if(!_0x287e4c){_0x279050[_0x34a2('0x1b')](0x194);}return _0x287e4c;};}function handleError(_0x4eac74,_0x3dd91c){_0x3dd91c=_0x3dd91c||0x1f4;return function(_0x40419b){logger['error'](_0x40419b[_0x34a2('0x29')]);if(_0x40419b[_0x34a2('0x2a')]){delete _0x40419b[_0x34a2('0x2a')];}_0x4eac74['status'](_0x3dd91c)[_0x34a2('0x2b')](_0x40419b);};}exports[_0x34a2('0x2c')]=function(_0x4efc51,_0x28fd89){var _0xa4f119={},_0x4b9dcd={},_0x2d0fe={'count':0x0,'rows':[]};var _0x35ce96=_['map'](db[_0x34a2('0x2d')]['rawAttributes'],function(_0x849b79){return{'name':_0x849b79[_0x34a2('0x2e')],'type':_0x849b79[_0x34a2('0x2f')][_0x34a2('0x30')]};});_0x4b9dcd['model']=_[_0x34a2('0x31')](_0x35ce96,'name');_0x4b9dcd[_0x34a2('0x32')]=_['keys'](_0x4efc51[_0x34a2('0x32')]);_0x4b9dcd[_0x34a2('0x33')]=_['intersection'](_0x4b9dcd[_0x34a2('0x34')],_0x4b9dcd['query']);_0xa4f119[_0x34a2('0x35')]=_['intersection'](_0x4b9dcd['model'],qs[_0x34a2('0x36')](_0x4efc51[_0x34a2('0x32')][_0x34a2('0x36')]));_0xa4f119[_0x34a2('0x35')]=_0xa4f119[_0x34a2('0x35')][_0x34a2('0x37')]?_0xa4f119[_0x34a2('0x35')]:_0x4b9dcd[_0x34a2('0x34')];if(!_0x4efc51[_0x34a2('0x32')]['hasOwnProperty']('nolimit')){_0xa4f119[_0x34a2('0x21')]=qs[_0x34a2('0x21')](_0x4efc51[_0x34a2('0x32')][_0x34a2('0x21')]);_0xa4f119[_0x34a2('0x1f')]=qs[_0x34a2('0x1f')](_0x4efc51['query'][_0x34a2('0x1f')]);}_0xa4f119[_0x34a2('0x38')]=qs['sort'](_0x4efc51[_0x34a2('0x32')][_0x34a2('0x39')]);_0xa4f119[_0x34a2('0x3a')]=qs['filters'](_[_0x34a2('0x3b')](_0x4efc51[_0x34a2('0x32')],_0x4b9dcd['filters']),_0x35ce96);if(_0x4efc51[_0x34a2('0x32')][_0x34a2('0x3c')]){_0xa4f119[_0x34a2('0x3a')]=_[_0x34a2('0x3d')](_0xa4f119['where'],{'$or':_[_0x34a2('0x31')](_0x35ce96,function(_0x3db131){if(_0x3db131[_0x34a2('0x2f')]!==_0x34a2('0x3e')){var _0x2be086={};_0x2be086[_0x3db131['name']]={'$like':'%'+_0x4efc51[_0x34a2('0x32')][_0x34a2('0x3c')]+'%'};return _0x2be086;}})});}_0xa4f119=_['merge']({},_0xa4f119,_0x4efc51[_0x34a2('0x3f')]);var _0x22657a={'where':_0xa4f119[_0x34a2('0x3a')]};return db['Automation'][_0x34a2('0x22')](_0x22657a)[_0x34a2('0x27')](function(_0x3dcab){_0x2d0fe[_0x34a2('0x22')]=_0x3dcab;if(_0x4efc51[_0x34a2('0x32')]['includeAll']){_0xa4f119['include']=[{'all':!![]}];}return db[_0x34a2('0x2d')][_0x34a2('0x40')](_0xa4f119);})[_0x34a2('0x27')](function(_0x1f10bb){_0x2d0fe[_0x34a2('0x41')]=_0x1f10bb;return _0x2d0fe;})['then'](respondWithFilteredResult(_0x28fd89,_0xa4f119))['catch'](handleError(_0x28fd89,null));};exports[_0x34a2('0x42')]=function(_0x59e24c,_0x5dae9f){var _0x17de6b={'raw':![],'where':{'id':_0x59e24c[_0x34a2('0x43')]['id']}},_0x549f93={};_0x549f93[_0x34a2('0x34')]=_[_0x34a2('0x44')](db['Automation'][_0x34a2('0x45')]);_0x549f93[_0x34a2('0x32')]=_[_0x34a2('0x44')](_0x59e24c[_0x34a2('0x32')]);_0x549f93[_0x34a2('0x33')]=_[_0x34a2('0x46')](_0x549f93[_0x34a2('0x34')],_0x549f93[_0x34a2('0x32')]);_0x17de6b[_0x34a2('0x35')]=_[_0x34a2('0x46')](_0x549f93[_0x34a2('0x34')],qs[_0x34a2('0x36')](_0x59e24c[_0x34a2('0x32')][_0x34a2('0x36')]));_0x17de6b[_0x34a2('0x35')]=_0x17de6b[_0x34a2('0x35')][_0x34a2('0x37')]?_0x17de6b[_0x34a2('0x35')]:_0x549f93[_0x34a2('0x34')];if(_0x59e24c[_0x34a2('0x32')]['includeAll']){_0x17de6b['include']=[{'all':!![]}];}_0x17de6b=_['merge']({},_0x17de6b,_0x59e24c[_0x34a2('0x3f')]);return db[_0x34a2('0x2d')]['find'](_0x17de6b)[_0x34a2('0x27')](handleEntityNotFound(_0x5dae9f,null))['then'](respondWithResult(_0x5dae9f,null))[_0x34a2('0x47')](handleError(_0x5dae9f,null));};exports[_0x34a2('0x48')]=function(_0x52b624,_0x45a50c){return db['Automation'][_0x34a2('0x48')](_0x52b624[_0x34a2('0x49')],{})['then'](respondWithResult(_0x45a50c,0xc9))['catch'](handleError(_0x45a50c,null));};exports[_0x34a2('0x4a')]=function(_0x2cd558,_0x763742){if(_0x2cd558[_0x34a2('0x49')]['id']){delete _0x2cd558[_0x34a2('0x49')]['id'];}return db['Automation'][_0x34a2('0x4b')]({'where':{'id':_0x2cd558[_0x34a2('0x43')]['id']}})[_0x34a2('0x27')](handleEntityNotFound(_0x763742,null))[_0x34a2('0x27')](saveUpdates(_0x2cd558['body'],null))[_0x34a2('0x27')](respondWithResult(_0x763742,null))[_0x34a2('0x47')](handleError(_0x763742,null));};exports[_0x34a2('0x28')]=function(_0x22624e,_0x44ce2e){return db[_0x34a2('0x2d')][_0x34a2('0x4b')]({'where':{'id':_0x22624e[_0x34a2('0x43')]['id']}})[_0x34a2('0x27')](handleEntityNotFound(_0x44ce2e,null))[_0x34a2('0x27')](removeEntity(_0x44ce2e,null))[_0x34a2('0x47')](handleError(_0x44ce2e,null));};exports['addConditions']=function(_0x1dba96,_0x37f252,_0x219ede){return db[_0x34a2('0x4c')]['find']({'where':{'id':_0x1dba96['params']['id']}})[_0x34a2('0x27')](handleEntityNotFound(_0x37f252,null))[_0x34a2('0x27')](function(_0x20f63e){if(_0x20f63e){return _0x20f63e['addConditions'](_0x1dba96[_0x34a2('0x49')][_0x34a2('0x4d')],_[_0x34a2('0x4e')](_0x1dba96['body'],[_0x34a2('0x4d'),'id'])||{});}})[_0x34a2('0x27')](respondWithResult(_0x37f252,null))[_0x34a2('0x47')](handleError(_0x37f252,null));};exports[_0x34a2('0x4f')]=function(_0x3143e2,_0x4f0b8c,_0x3bd6c9){var _0x17f4a2={};var _0x2861b8={};var _0x4d4ea9;var _0x3c59d5;return db['Automation'][_0x34a2('0x50')]({'where':{'id':_0x3143e2[_0x34a2('0x43')]['id']}})['then'](handleEntityNotFound(_0x4f0b8c,null))[_0x34a2('0x27')](function(_0x3a0a98){if(_0x3a0a98){_0x4d4ea9=_0x3a0a98;_0x2861b8[_0x34a2('0x34')]=_['keys'](db[_0x34a2('0x4c')][_0x34a2('0x45')]);_0x2861b8[_0x34a2('0x32')]=_[_0x34a2('0x44')](_0x3143e2[_0x34a2('0x32')]);_0x2861b8['filters']=_['intersection'](_0x2861b8['model'],_0x2861b8['query']);_0x17f4a2[_0x34a2('0x35')]=_[_0x34a2('0x46')](_0x2861b8['model'],qs['fields'](_0x3143e2[_0x34a2('0x32')][_0x34a2('0x36')]));_0x17f4a2[_0x34a2('0x35')]=_0x17f4a2[_0x34a2('0x35')]['length']?_0x17f4a2[_0x34a2('0x35')]:_0x2861b8[_0x34a2('0x34')];_0x17f4a2[_0x34a2('0x38')]=qs[_0x34a2('0x39')](_0x3143e2[_0x34a2('0x32')][_0x34a2('0x39')]);_0x17f4a2[_0x34a2('0x3a')]=qs[_0x34a2('0x33')](_[_0x34a2('0x3b')](_0x3143e2[_0x34a2('0x32')],_0x2861b8[_0x34a2('0x33')]));if(_0x3143e2[_0x34a2('0x32')][_0x34a2('0x3c')]){_0x17f4a2[_0x34a2('0x3a')]=_[_0x34a2('0x3d')](_0x17f4a2['where'],{'$or':_['map'](_0x17f4a2['attributes'],function(_0xcaa31a){var _0x57e0f4={};_0x57e0f4[_0xcaa31a]={'$like':'%'+_0x3143e2['query']['filter']+'%'};return _0x57e0f4;})});}_0x17f4a2=_[_0x34a2('0x3d')]({},_0x17f4a2,_0x3143e2[_0x34a2('0x3f')]);return _0x4d4ea9['getConditions'](_0x17f4a2);}})[_0x34a2('0x27')](function(_0x4bea71){if(_0x4bea71){_0x3c59d5=_0x4bea71[_0x34a2('0x37')];if(!_0x3143e2[_0x34a2('0x32')][_0x34a2('0x51')](_0x34a2('0x52'))){_0x17f4a2[_0x34a2('0x21')]=qs['limit'](_0x3143e2[_0x34a2('0x32')][_0x34a2('0x21')]);_0x17f4a2[_0x34a2('0x1f')]=qs[_0x34a2('0x1f')](_0x3143e2[_0x34a2('0x32')]['offset']);}return _0x4d4ea9[_0x34a2('0x4f')](_0x17f4a2);}})[_0x34a2('0x27')](function(_0x57ec3f){if(_0x57ec3f){return _0x57ec3f?{'count':_0x3c59d5,'rows':_0x57ec3f}:null;}})[_0x34a2('0x27')](respondWithResult(_0x4f0b8c,null))['catch'](handleError(_0x4f0b8c,null));};exports['addActions']=function(_0x55c995,_0xd0238b,_0x25b7af){return db[_0x34a2('0x53')][_0x34a2('0x4b')]({'where':{'id':_0x55c995[_0x34a2('0x43')]['id']}})['then'](handleEntityNotFound(_0xd0238b,null))[_0x34a2('0x27')](function(_0x39b72d){if(_0x39b72d){return _0x39b72d[_0x34a2('0x54')](_0x55c995[_0x34a2('0x49')][_0x34a2('0x4d')],_[_0x34a2('0x4e')](_0x55c995[_0x34a2('0x49')],[_0x34a2('0x4d'),'id'])||{});}})['then'](respondWithResult(_0xd0238b,null))[_0x34a2('0x47')](handleError(_0xd0238b,null));};exports[_0x34a2('0x55')]=function(_0x3273b1,_0x3f8eb9,_0x90f60e){var _0x5c9626={};var _0x107248={};var _0x5a56ef;var _0x38fe28;return db[_0x34a2('0x2d')]['findOne']({'where':{'id':_0x3273b1[_0x34a2('0x43')]['id']}})[_0x34a2('0x27')](handleEntityNotFound(_0x3f8eb9,null))[_0x34a2('0x27')](function(_0x3cf05d){if(_0x3cf05d){_0x5a56ef=_0x3cf05d;_0x107248['model']=_[_0x34a2('0x44')](db['Action'][_0x34a2('0x45')]);_0x107248[_0x34a2('0x32')]=_[_0x34a2('0x44')](_0x3273b1[_0x34a2('0x32')]);_0x107248[_0x34a2('0x33')]=_['intersection'](_0x107248[_0x34a2('0x34')],_0x107248['query']);_0x5c9626[_0x34a2('0x35')]=_['intersection'](_0x107248[_0x34a2('0x34')],qs['fields'](_0x3273b1[_0x34a2('0x32')]['fields']));_0x5c9626['attributes']=_0x5c9626[_0x34a2('0x35')][_0x34a2('0x37')]?_0x5c9626[_0x34a2('0x35')]:_0x107248[_0x34a2('0x34')];_0x5c9626[_0x34a2('0x38')]=qs[_0x34a2('0x39')](_0x3273b1[_0x34a2('0x32')][_0x34a2('0x39')]);_0x5c9626['where']=qs[_0x34a2('0x33')](_[_0x34a2('0x3b')](_0x3273b1[_0x34a2('0x32')],_0x107248['filters']));if(_0x3273b1[_0x34a2('0x32')][_0x34a2('0x3c')]){_0x5c9626[_0x34a2('0x3a')]=_['merge'](_0x5c9626[_0x34a2('0x3a')],{'$or':_[_0x34a2('0x31')](_0x5c9626[_0x34a2('0x35')],function(_0x5a80ed){var _0xd9f1be={};_0xd9f1be[_0x5a80ed]={'$like':'%'+_0x3273b1[_0x34a2('0x32')]['filter']+'%'};return _0xd9f1be;})});}_0x5c9626=_['merge']({},_0x5c9626,_0x3273b1[_0x34a2('0x3f')]);return _0x5a56ef[_0x34a2('0x55')](_0x5c9626);}})['then'](function(_0x33ccf7){if(_0x33ccf7){_0x38fe28=_0x33ccf7['length'];if(!_0x3273b1[_0x34a2('0x32')][_0x34a2('0x51')](_0x34a2('0x52'))){_0x5c9626[_0x34a2('0x21')]=qs[_0x34a2('0x21')](_0x3273b1[_0x34a2('0x32')][_0x34a2('0x21')]);_0x5c9626['offset']=qs['offset'](_0x3273b1[_0x34a2('0x32')][_0x34a2('0x1f')]);}return _0x5a56ef[_0x34a2('0x55')](_0x5c9626);}})['then'](function(_0x37374b){if(_0x37374b){return _0x37374b?{'count':_0x38fe28,'rows':_0x37374b}:null;}})[_0x34a2('0x27')](respondWithResult(_0x3f8eb9,null))[_0x34a2('0x47')](handleError(_0x3f8eb9,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc94c=['path','rimraf','../../config/environment','./automation.attributes','exports','define','Automation','tools_automations','lodash','util','bluebird'];(function(_0x350a85,_0x179380){var _0x2da083=function(_0x5b23fe){while(--_0x5b23fe){_0x350a85['push'](_0x350a85['shift']());}};_0x2da083(++_0x179380);}(_0xc94c,0xb8));var _0xcc94=function(_0x23f7ef,_0x2a806b){_0x23f7ef=_0x23f7ef-0x0;var _0x17d7a0=_0xc94c[_0x23f7ef];return _0x17d7a0;};'use strict';var _=require(_0xcc94('0x0'));var util=require(_0xcc94('0x1'));var logger=require('../../config/logger')('api');var moment=require('moment');var BPromise=require(_0xcc94('0x2'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xcc94('0x3'));var rimraf=require(_0xcc94('0x4'));var config=require(_0xcc94('0x5'));var attributes=require(_0xcc94('0x6'));module[_0xcc94('0x7')]=function(_0x7059ae,_0x9ff339){return _0x7059ae[_0xcc94('0x8')](_0xcc94('0x9'),attributes,{'tableName':_0xcc94('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x3c46=['path','rimraf','../../config/environment','define','Automation','tools_automations','lodash','util','../../config/logger','api','moment','bluebird','request-promise'];(function(_0x189a98,_0x5d5dd6){var _0x40239d=function(_0x122c1e){while(--_0x122c1e){_0x189a98['push'](_0x189a98['shift']());}};_0x40239d(++_0x5d5dd6);}(_0x3c46,0x1b3));var _0x63c4=function(_0x218d9e,_0xe7d998){_0x218d9e=_0x218d9e-0x0;var _0x31031d=_0x3c46[_0x218d9e];return _0x31031d;};'use strict';var _=require(_0x63c4('0x0'));var util=require(_0x63c4('0x1'));var logger=require(_0x63c4('0x2'))(_0x63c4('0x3'));var moment=require(_0x63c4('0x4'));var BPromise=require(_0x63c4('0x5'));var rp=require(_0x63c4('0x6'));var fs=require('fs');var path=require(_0x63c4('0x7'));var rimraf=require(_0x63c4('0x8'));var config=require(_0x63c4('0x9'));var attributes=require('./automation.attributes');module['exports']=function(_0x1dffd3,_0x1ef7d6){return _0x1dffd3[_0x63c4('0xa')](_0x63c4('0xb'),attributes,{'tableName':_0x63c4('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4808=['stringify','error','code','message','info','result','catch','lodash','util','moment','randomstring','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','http','request','then','Automation,\x20%s,\x20%s','request\x20sent','debug','Automation,\x20%s,\x20%s,\x20%s'];(function(_0x4709c0,_0x3396c7){var _0x13348b=function(_0x426235){while(--_0x426235){_0x4709c0['push'](_0x4709c0['shift']());}};_0x13348b(++_0x3396c7);}(_0x4808,0x160));var _0x8480=function(_0x3ab51d,_0x2fa01d){_0x3ab51d=_0x3ab51d-0x0;var _0x29a04e=_0x4808[_0x3ab51d];return _0x29a04e;};'use strict';var _=require(_0x8480('0x0'));var util=require(_0x8480('0x1'));var moment=require(_0x8480('0x2'));var BPromise=require('bluebird');var rs=require(_0x8480('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x8480('0x4'))['db'];var utils=require(_0x8480('0x5'));var logger=require(_0x8480('0x6'))('rpc');var config=require(_0x8480('0x7'));var jayson=require(_0x8480('0x8'));var client=jayson['client'][_0x8480('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x5060aa,_0x364f22,_0x4b9f45){return new BPromise(function(_0x3480e7,_0x2b1ffb){return client[_0x8480('0xa')](_0x5060aa,_0x4b9f45)[_0x8480('0xb')](function(_0x337d1e){logger['info'](_0x8480('0xc'),_0x364f22,_0x8480('0xd'));logger[_0x8480('0xe')](_0x8480('0xf'),_0x364f22,_0x8480('0xd'),JSON[_0x8480('0x10')](_0x337d1e));if(_0x337d1e[_0x8480('0x11')]){if(_0x337d1e[_0x8480('0x11')][_0x8480('0x12')]===0x1f4){logger[_0x8480('0x11')](_0x8480('0xc'),_0x364f22,_0x337d1e[_0x8480('0x11')][_0x8480('0x13')]);return _0x2b1ffb(_0x337d1e[_0x8480('0x11')][_0x8480('0x13')]);}logger[_0x8480('0x11')](_0x8480('0xc'),_0x364f22,_0x337d1e[_0x8480('0x11')][_0x8480('0x13')]);return _0x3480e7(_0x337d1e['error'][_0x8480('0x13')]);}else{logger[_0x8480('0x14')](_0x8480('0xc'),_0x364f22,'request\x20sent');_0x3480e7(_0x337d1e[_0x8480('0x15')][_0x8480('0x13')]);}})[_0x8480('0x16')](function(_0x35dd6a){logger[_0x8480('0x11')](_0x8480('0xc'),_0x364f22,_0x35dd6a);_0x2b1ffb(_0x35dd6a);});});}
\ No newline at end of file
+var _0x3423=['rpc','../../config/environment','jayson/promise','client','http','request','then','Automation,\x20%s,\x20%s','stringify','error','code','message','info','result','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger'];(function(_0x3947c9,_0x4d6c97){var _0x2e7871=function(_0x1236cc){while(--_0x1236cc){_0x3947c9['push'](_0x3947c9['shift']());}};_0x2e7871(++_0x4d6c97);}(_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']('Automation,\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);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9b1=['getActions','post','addConditions','/:id/actions','addActions','update','exports','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','get','isAuthenticated','index','/:id','show','/:id/conditions','getConditions'];(function(_0xcf2403,_0xe91921){var _0x20cd72=function(_0x43f93f){while(--_0x43f93f){_0xcf2403['push'](_0xcf2403['shift']());}};_0x20cd72(++_0xe91921);}(_0xa9b1,0x133));var _0x1a9b=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xa9b1[_0x3dd15e];return _0x231fd0;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x1a9b('0x0'));var timeout=require(_0x1a9b('0x1'));var express=require(_0x1a9b('0x2'));var router=express[_0x1a9b('0x3')]();var fs_extra=require(_0x1a9b('0x4'));var auth=require(_0x1a9b('0x5'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require('./automation.controller');router[_0x1a9b('0x6')]('/',auth[_0x1a9b('0x7')](),controller[_0x1a9b('0x8')]);router[_0x1a9b('0x6')](_0x1a9b('0x9'),auth[_0x1a9b('0x7')](),controller[_0x1a9b('0xa')]);router[_0x1a9b('0x6')](_0x1a9b('0xb'),auth[_0x1a9b('0x7')](),controller[_0x1a9b('0xc')]);router[_0x1a9b('0x6')]('/:id/actions',auth['isAuthenticated'](),controller[_0x1a9b('0xd')]);router[_0x1a9b('0xe')]('/',auth[_0x1a9b('0x7')](),controller['create']);router['post']('/:id/conditions',auth[_0x1a9b('0x7')](),controller[_0x1a9b('0xf')]);router[_0x1a9b('0xe')](_0x1a9b('0x10'),auth[_0x1a9b('0x7')](),controller[_0x1a9b('0x11')]);router['put'](_0x1a9b('0x9'),auth[_0x1a9b('0x7')](),controller[_0x1a9b('0x12')]);router['delete'](_0x1a9b('0x9'),auth[_0x1a9b('0x7')](),controller['destroy']);module[_0x1a9b('0x13')]=router;
\ No newline at end of file
+var _0x0d0b=['show','getConditions','getActions','post','create','/:id/conditions','addConditions','put','delete','destroy','exports','util','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./automation.controller','get','isAuthenticated','/:id'];(function(_0x1f7996,_0x299a14){var _0x584609=function(_0x14c34a){while(--_0x14c34a){_0x1f7996['push'](_0x1f7996['shift']());}};_0x584609(++_0x299a14);}(_0x0d0b,0x1ef));var _0xb0d0=function(_0x38037a,_0x196abc){_0x38037a=_0x38037a-0x0;var _0x1a1246=_0x0d0b[_0x38037a];return _0x1a1246;};'use strict';var multer=require('multer');var util=require(_0xb0d0('0x0'));var path=require('path');var timeout=require(_0xb0d0('0x1'));var express=require('express');var router=express[_0xb0d0('0x2')]();var fs_extra=require(_0xb0d0('0x3'));var auth=require(_0xb0d0('0x4'));var interaction=require(_0xb0d0('0x5'));var config=require(_0xb0d0('0x6'));var controller=require(_0xb0d0('0x7'));router[_0xb0d0('0x8')]('/',auth[_0xb0d0('0x9')](),controller['index']);router[_0xb0d0('0x8')](_0xb0d0('0xa'),auth[_0xb0d0('0x9')](),controller[_0xb0d0('0xb')]);router[_0xb0d0('0x8')]('/:id/conditions',auth['isAuthenticated'](),controller[_0xb0d0('0xc')]);router[_0xb0d0('0x8')]('/:id/actions',auth['isAuthenticated'](),controller[_0xb0d0('0xd')]);router[_0xb0d0('0xe')]('/',auth[_0xb0d0('0x9')](),controller[_0xb0d0('0xf')]);router[_0xb0d0('0xe')](_0xb0d0('0x10'),auth['isAuthenticated'](),controller[_0xb0d0('0x11')]);router[_0xb0d0('0xe')]('/:id/actions',auth[_0xb0d0('0x9')](),controller['addActions']);router[_0xb0d0('0x12')]('/:id',auth[_0xb0d0('0x9')](),controller['update']);router[_0xb0d0('0x13')](_0xb0d0('0xa'),auth['isAuthenticated'](),controller[_0xb0d0('0x14')]);module[_0xb0d0('0x15')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf10b=['#Machine\x20Retry\x20(min:1,\x20max:999)','Machine\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','AgentReject\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','sequelize','exports','STRING','name','ENUM','ivr','BOOLEAN','Max\x20200\x20calls.','INTEGER','UNSIGNED','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)','07:00-22:00,*,*,*','never','#AMD\x20Initial\x20Silence','#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','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)','#Abandoned\x20Retry\x20(min:1,\x20max:999)','Abandoned\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)'];(function(_0x596810,_0x9c6247){var _0x230cdf=function(_0x523a20){while(--_0x523a20){_0x596810['push'](_0x596810['shift']());}};_0x230cdf(++_0x9c6247);}(_0xf10b,0x18f));var _0xbf10=function(_0x32c4a7,_0x4c4a49){_0x32c4a7=_0x32c4a7-0x0;var _0x14ea53=_0xf10b[_0x32c4a7];return _0x14ea53;};'use strict';var Sequelize=require(_0xbf10('0x0'));module[_0xbf10('0x1')]={'name':{'type':Sequelize[_0xbf10('0x2')],'unique':_0xbf10('0x3'),'allowNull':![],'validate':{'is':/[A-Za-z0-9._\\+*!-]+/,'notEmpty':!![]}},'type':{'type':Sequelize[_0xbf10('0x4')]('ivr'),'allowNull':![],'defaultValue':_0xbf10('0x5')},'description':{'type':Sequelize['STRING']},'active':{'type':Sequelize[_0xbf10('0x6')],'defaultValue':0x0,'comment':'Active/Disactive\x20Campaign'},'limitCalls':{'type':Sequelize['INTEGER'](0x4)['UNSIGNED'],'defaultValue':0x1e,'validate':{'min':0x1,'max':0xc8},'comment':_0xbf10('0x7')},'dialOriginateCallerIdName':{'type':Sequelize[_0xbf10('0x2')]},'dialOriginateCallerIdNumber':{'type':Sequelize[_0xbf10('0x2')]},'dialOriginateTimeout':{'type':Sequelize[_0xbf10('0x8')](0x3)[_0xbf10('0x9')],'defaultValue':0x1e,'validate':{'min':0x1,'max':0x3e7},'comment':'Originate\x20Timeout\x20Seconds\x20(min:1,\x20max:999)'},'dialCongestionMaxRetry':{'type':Sequelize[_0xbf10('0x8')](0x3)[_0xbf10('0x9')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':'#Congestion\x20Retry\x20(min:1,\x20max:999)'},'dialCongestionRetryFrequency':{'type':Sequelize['INTEGER'](0x5)['UNSIGNED'],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0xbf10('0xa')},'dialBusyMaxRetry':{'type':Sequelize['INTEGER'](0x3)[_0xbf10('0x9')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0xbf10('0xb')},'dialBusyRetryFrequency':{'type':Sequelize[_0xbf10('0x8')](0x5)[_0xbf10('0x9')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':'Busy\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)'},'dialNoAnswerMaxRetry':{'type':Sequelize[_0xbf10('0x8')](0x3)[_0xbf10('0x9')],'defaultValue':0x3,'comment':_0xbf10('0xc')},'dialNoAnswerRetryFrequency':{'type':Sequelize[_0xbf10('0x8')](0x5)[_0xbf10('0x9')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0xbf10('0xd')},'dialGlobalMaxRetry':{'type':Sequelize[_0xbf10('0x8')](0x3)[_0xbf10('0x9')],'validate':{'min':0x1,'max':0x3e7},'defaultValue':0x4,'comment':_0xbf10('0xe')},'dialTimezone':{'type':Sequelize['STRING'],'defaultValue':null},'dialGlobalInterval':{'type':Sequelize[_0xbf10('0x2')],'defaultValue':_0xbf10('0xf')},'dialCheckDuplicateType':{'type':Sequelize[_0xbf10('0x4')]('always',_0xbf10('0x10'),'onlyIfOpen'),'defaultValue':'always'},'dialAMDActive':{'type':Sequelize[_0xbf10('0x6')],'defaultValue':0x0,'comment':'Active/Disactive\x20AMD'},'dialAMDInitialSilence':{'type':Sequelize['INTEGER'](0x9)[_0xbf10('0x9')],'defaultValue':0x9c4,'validate':{'min':0x0},'comment':_0xbf10('0x11')},'dialAMDGreeting':{'type':Sequelize[_0xbf10('0x8')](0x9)[_0xbf10('0x9')],'defaultValue':0x5dc,'validate':{'min':0x0},'comment':_0xbf10('0x12')},'dialAMDAfterGreetingSilence':{'type':Sequelize[_0xbf10('0x8')](0x9)[_0xbf10('0x9')],'defaultValue':0x320,'validate':{'min':0x0},'comment':_0xbf10('0x13')},'dialAMDTotalAnalysisTime':{'type':Sequelize[_0xbf10('0x8')](0x9)[_0xbf10('0x9')],'defaultValue':0x1388,'validate':{'min':0x0},'comment':_0xbf10('0x14')},'dialAMDMinWordLength':{'type':Sequelize[_0xbf10('0x8')](0x9)[_0xbf10('0x9')],'defaultValue':0x64,'validate':{'min':0x0},'comment':'#AMD\x20Min\x20Word\x20Length'},'dialAMDBetweenWordsSilence':{'type':Sequelize[_0xbf10('0x8')](0x9)[_0xbf10('0x9')],'defaultValue':0x32,'validate':{'min':0x0},'comment':_0xbf10('0x15')},'dialAMDMaximumNumberOfWords':{'type':Sequelize[_0xbf10('0x8')](0x9)[_0xbf10('0x9')],'defaultValue':0x3,'validate':{'min':0x0},'comment':_0xbf10('0x16')},'dialAMDSilenceThreshold':{'type':Sequelize[_0xbf10('0x8')](0x5)[_0xbf10('0x9')],'validate':{'min':0x0,'max':0x7fff},'defaultValue':0x100,'comment':_0xbf10('0x17')},'dialAMDMaximumWordLength':{'type':Sequelize[_0xbf10('0x8')](0x9)[_0xbf10('0x9')],'defaultValue':0x1388,'validate':{'min':0x0},'comment':_0xbf10('0x18')},'dialOrderByScheduledAt':{'type':Sequelize[_0xbf10('0x4')](_0xbf10('0x19'),'ASC'),'defaultValue':_0xbf10('0x19')},'dialPrefix':{'type':Sequelize[_0xbf10('0x2')],'defaultValue':null},'dialRandomLastDigitCallerIdNumber':{'type':Sequelize[_0xbf10('0x8')](0x3)[_0xbf10('0x9')],'validate':{'min':0x0,'max':0xf},'defaultValue':0x0,'comment':'Random\x20Last\x20Digit\x20(min:1,\x20max:15)'},'dialCutDigit':{'type':Sequelize['INTEGER'](0x3)[_0xbf10('0x9')],'validate':{'min':0x0,'max':0xf},'defaultValue':0x0,'comment':_0xbf10('0x1a')},'dialNoSuchNumberMaxRetry':{'type':Sequelize[_0xbf10('0x8')](0x3)[_0xbf10('0x9')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0xbf10('0x1b')},'dialNoSuchNumberRetryFrequency':{'type':Sequelize[_0xbf10('0x8')](0x5)[_0xbf10('0x9')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0xbf10('0x1c')},'dialDropMaxRetry':{'type':Sequelize[_0xbf10('0x8')](0x3)[_0xbf10('0x9')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0xbf10('0x1d')},'dialDropRetryFrequency':{'type':Sequelize['INTEGER'](0x5)[_0xbf10('0x9')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0xbf10('0x1e')},'dialAbandonedMaxRetry':{'type':Sequelize[_0xbf10('0x8')](0x3)['UNSIGNED'],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0xbf10('0x1f')},'dialAbandonedRetryFrequency':{'type':Sequelize['INTEGER'](0x5)[_0xbf10('0x9')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0xbf10('0x20')},'dialMachineMaxRetry':{'type':Sequelize[_0xbf10('0x8')](0x3)[_0xbf10('0x9')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0xbf10('0x21')},'dialMachineRetryFrequency':{'type':Sequelize[_0xbf10('0x8')](0x5)[_0xbf10('0x9')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0xbf10('0x22')},'dialAgentRejectMaxRetry':{'type':Sequelize[_0xbf10('0x8')](0x3)[_0xbf10('0x9')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':'#AgentReject\x20Retry\x20(min:1,\x20max:999)'},'dialAgentRejectRetryFrequency':{'type':Sequelize[_0xbf10('0x8')](0x5)[_0xbf10('0x9')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0xbf10('0x23')}};
\ No newline at end of file
+var _0x8066=['BOOLEAN','INTEGER','UNSIGNED','Max\x20200\x20calls.','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)','Busy\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#Global\x20Max\x20Retry\x20(min:1,\x20max:999)','07:00-22:00,*,*,*','always','never','onlyIfOpen','#AMD\x20Initial\x20Silence','#AMD\x20Greeting','#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','ASC','Random\x20Last\x20Digit\x20(min:1,\x20max:15)','#NoSuchNumber\x20Retry\x20(min:1,\x20max:999)','Drop\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#Abandoned\x20Retry\x20(min:1,\x20max:999)','#Machine\x20Retry\x20(min:1,\x20max:999)','Machine\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#AgentReject\x20Retry\x20(min:1,\x20max:999)','sequelize','exports','STRING','name','ENUM'];(function(_0x3e7b9c,_0x264b93){var _0x744b1=function(_0x1d7efa){while(--_0x1d7efa){_0x3e7b9c['push'](_0x3e7b9c['shift']());}};_0x744b1(++_0x264b93);}(_0x8066,0x192));var _0x6806=function(_0xfa634c,_0x414e0e){_0xfa634c=_0xfa634c-0x0;var _0x73e478=_0x8066[_0xfa634c];return _0x73e478;};'use strict';var Sequelize=require(_0x6806('0x0'));module[_0x6806('0x1')]={'name':{'type':Sequelize[_0x6806('0x2')],'unique':_0x6806('0x3'),'allowNull':![],'validate':{'is':/[A-Za-z0-9._\\+*!-]+/,'notEmpty':!![]}},'type':{'type':Sequelize[_0x6806('0x4')]('ivr'),'allowNull':![],'defaultValue':'ivr'},'description':{'type':Sequelize['STRING']},'active':{'type':Sequelize[_0x6806('0x5')],'defaultValue':0x0,'comment':'Active/Disactive\x20Campaign'},'limitCalls':{'type':Sequelize[_0x6806('0x6')](0x4)[_0x6806('0x7')],'defaultValue':0x1e,'validate':{'min':0x1,'max':0xc8},'comment':_0x6806('0x8')},'dialOriginateCallerIdName':{'type':Sequelize[_0x6806('0x2')]},'dialOriginateCallerIdNumber':{'type':Sequelize['STRING']},'dialOriginateTimeout':{'type':Sequelize['INTEGER'](0x3)[_0x6806('0x7')],'defaultValue':0x1e,'validate':{'min':0x1,'max':0x3e7},'comment':_0x6806('0x9')},'dialCongestionMaxRetry':{'type':Sequelize[_0x6806('0x6')](0x3)['UNSIGNED'],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x6806('0xa')},'dialCongestionRetryFrequency':{'type':Sequelize[_0x6806('0x6')](0x5)['UNSIGNED'],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x6806('0xb')},'dialBusyMaxRetry':{'type':Sequelize[_0x6806('0x6')](0x3)[_0x6806('0x7')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x6806('0xc')},'dialBusyRetryFrequency':{'type':Sequelize['INTEGER'](0x5)[_0x6806('0x7')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x6806('0xd')},'dialNoAnswerMaxRetry':{'type':Sequelize['INTEGER'](0x3)['UNSIGNED'],'defaultValue':0x3,'comment':'#NoAnswer\x20Retry\x20(min:1,\x20max:999)'},'dialNoAnswerRetryFrequency':{'type':Sequelize[_0x6806('0x6')](0x5)['UNSIGNED'],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':'NoAnswer\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)'},'dialGlobalMaxRetry':{'type':Sequelize[_0x6806('0x6')](0x3)[_0x6806('0x7')],'validate':{'min':0x1,'max':0x3e7},'defaultValue':0x4,'comment':_0x6806('0xe')},'dialTimezone':{'type':Sequelize[_0x6806('0x2')],'defaultValue':null},'dialGlobalInterval':{'type':Sequelize['STRING'],'defaultValue':_0x6806('0xf')},'dialCheckDuplicateType':{'type':Sequelize[_0x6806('0x4')](_0x6806('0x10'),_0x6806('0x11'),_0x6806('0x12')),'defaultValue':_0x6806('0x10')},'dialAMDActive':{'type':Sequelize[_0x6806('0x5')],'defaultValue':0x0,'comment':'Active/Disactive\x20AMD'},'dialAMDInitialSilence':{'type':Sequelize[_0x6806('0x6')](0x9)[_0x6806('0x7')],'defaultValue':0x9c4,'validate':{'min':0x0},'comment':_0x6806('0x13')},'dialAMDGreeting':{'type':Sequelize['INTEGER'](0x9)['UNSIGNED'],'defaultValue':0x5dc,'validate':{'min':0x0},'comment':_0x6806('0x14')},'dialAMDAfterGreetingSilence':{'type':Sequelize[_0x6806('0x6')](0x9)[_0x6806('0x7')],'defaultValue':0x320,'validate':{'min':0x0},'comment':_0x6806('0x15')},'dialAMDTotalAnalysisTime':{'type':Sequelize[_0x6806('0x6')](0x9)[_0x6806('0x7')],'defaultValue':0x1388,'validate':{'min':0x0},'comment':_0x6806('0x16')},'dialAMDMinWordLength':{'type':Sequelize[_0x6806('0x6')](0x9)['UNSIGNED'],'defaultValue':0x64,'validate':{'min':0x0},'comment':_0x6806('0x17')},'dialAMDBetweenWordsSilence':{'type':Sequelize[_0x6806('0x6')](0x9)[_0x6806('0x7')],'defaultValue':0x32,'validate':{'min':0x0},'comment':_0x6806('0x18')},'dialAMDMaximumNumberOfWords':{'type':Sequelize['INTEGER'](0x9)[_0x6806('0x7')],'defaultValue':0x3,'validate':{'min':0x0},'comment':_0x6806('0x19')},'dialAMDSilenceThreshold':{'type':Sequelize[_0x6806('0x6')](0x5)[_0x6806('0x7')],'validate':{'min':0x0,'max':0x7fff},'defaultValue':0x100,'comment':_0x6806('0x1a')},'dialAMDMaximumWordLength':{'type':Sequelize[_0x6806('0x6')](0x9)[_0x6806('0x7')],'defaultValue':0x1388,'validate':{'min':0x0},'comment':_0x6806('0x1b')},'dialOrderByScheduledAt':{'type':Sequelize[_0x6806('0x4')](_0x6806('0x1c'),_0x6806('0x1d')),'defaultValue':_0x6806('0x1c')},'dialPrefix':{'type':Sequelize[_0x6806('0x2')],'defaultValue':null},'dialRandomLastDigitCallerIdNumber':{'type':Sequelize[_0x6806('0x6')](0x3)[_0x6806('0x7')],'validate':{'min':0x0,'max':0xf},'defaultValue':0x0,'comment':_0x6806('0x1e')},'dialCutDigit':{'type':Sequelize['INTEGER'](0x3)[_0x6806('0x7')],'validate':{'min':0x0,'max':0xf},'defaultValue':0x0,'comment':'Cut\x20Digit\x20(min:1,\x20max:15)'},'dialNoSuchNumberMaxRetry':{'type':Sequelize[_0x6806('0x6')](0x3)[_0x6806('0x7')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x6806('0x1f')},'dialNoSuchNumberRetryFrequency':{'type':Sequelize[_0x6806('0x6')](0x5)[_0x6806('0x7')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':'NoSuchNumber\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)'},'dialDropMaxRetry':{'type':Sequelize['INTEGER'](0x3)['UNSIGNED'],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':'#Drop\x20Retry\x20(min:1,\x20max:999)'},'dialDropRetryFrequency':{'type':Sequelize[_0x6806('0x6')](0x5)[_0x6806('0x7')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x6806('0x20')},'dialAbandonedMaxRetry':{'type':Sequelize[_0x6806('0x6')](0x3)[_0x6806('0x7')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x6806('0x21')},'dialAbandonedRetryFrequency':{'type':Sequelize[_0x6806('0x6')](0x5)[_0x6806('0x7')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':'Abandoned\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)'},'dialMachineMaxRetry':{'type':Sequelize[_0x6806('0x6')](0x3)[_0x6806('0x7')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x6806('0x22')},'dialMachineRetryFrequency':{'type':Sequelize[_0x6806('0x6')](0x5)[_0x6806('0x7')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x6806('0x23')},'dialAgentRejectMaxRetry':{'type':Sequelize[_0x6806('0x6')](0x3)[_0x6806('0x7')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x6806('0x24')},'dialAgentRejectRetryFrequency':{'type':Sequelize[_0x6806('0x6')](0x5)[_0x6806('0x7')],'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 _0xb7f7=['deletedAt\x20IS\x20NULL','phone\x20NOT\x20IN\x20(?)','select','COALESCE(calleridnum,\x27\x27)','cm_hopper_final','CampaignId\x20=\x20?','phone\x20IS\x20NOT\x20NULL','COALESCE(phone,\x27\x27)','ListId\x20=\x20?','push','all','removeLists','getBlackLists','addBlackLists','cm_hopper_black','sequelize','removeBlackLists','eml-format','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','to-csv','ejs','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','end','status','offset','undefined','count','limit','set','Content-Range','json','apply','save','update','destroy','then','get','IvrCampaigns','UserProfileResource','error','stack','name','send','index','map','Campaign','rawAttributes','fieldName','type','key','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','filters','pick','filter','where','merge','includeAll','include','findAll','rows','show','params','options','find','catch','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','clone','createdAt','updatedAt','omit','userProfileId','getHoppers','findOne','CmHopper','CampaignId','getHopperHistories','CmHopperHistory','getHopperFinals','CmHopperFinal','getHopperBlacks','CmHopperBlack','getLists','CmList','addLists','ids','dialCheckDuplicateType','always','insert','into','cm_hopper','fromQuery','phone','scheduledAt','ContactId','ListId','field','CmListId','toString','NOW()','from','cm_contacts'];(function(_0x4bd67a,_0x4f9725){var _0x2be5fb=function(_0x33e132){while(--_0x33e132){_0x4bd67a['push'](_0x4bd67a['shift']());}};_0x2be5fb(++_0x4f9725);}(_0xb7f7,0x125));var _0x7b7f=function(_0x5d2409,_0x2d8079){_0x5d2409=_0x5d2409-0x0;var _0xedb388=_0xb7f7[_0x5d2409];return _0xedb388;};'use strict';var emlformat=require(_0x7b7f('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x7b7f('0x1'));var jsonpatch=require(_0x7b7f('0x2'));var rp=require('request-promise');var moment=require(_0x7b7f('0x3'));var BPromise=require(_0x7b7f('0x4'));var Mustache=require(_0x7b7f('0x5'));var util=require(_0x7b7f('0x6'));var path=require(_0x7b7f('0x7'));var sox=require('sox');var csv=require(_0x7b7f('0x8'));var ejs=require(_0x7b7f('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x7b7f('0xa'));var crypto=require(_0x7b7f('0xb'));var jsforce=require(_0x7b7f('0xc'));var deskjs=require(_0x7b7f('0xd'));var toCsv=require(_0x7b7f('0x8'));var querystring=require('querystring');var Papa=require(_0x7b7f('0xe'));var Redis=require(_0x7b7f('0xf'));var authService=require(_0x7b7f('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0x7b7f('0x11'));var hardwareService=require(_0x7b7f('0x12'));var logger=require(_0x7b7f('0x13'))(_0x7b7f('0x14'));var utils=require(_0x7b7f('0x15'));var config=require(_0x7b7f('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0x7b7f('0x17'))['db'];function respondWithStatusCode(_0x28f3a6,_0x5c7624){_0x5c7624=_0x5c7624||0xcc;return function(_0x3b4197){if(_0x3b4197){return _0x28f3a6[_0x7b7f('0x18')](_0x5c7624);}return _0x28f3a6['status'](_0x5c7624)[_0x7b7f('0x19')]();};}function respondWithResult(_0x464967,_0x406bf9){_0x406bf9=_0x406bf9||0xc8;return function(_0x3bd842){if(_0x3bd842){return _0x464967[_0x7b7f('0x1a')](_0x406bf9)['json'](_0x3bd842);}};}function respondWithFilteredResult(_0x2c5612,_0x17aa08){return function(_0x3ac98c){if(_0x3ac98c){var _0x579c65=typeof _0x17aa08[_0x7b7f('0x1b')]==='undefined'&&typeof _0x17aa08['limit']===_0x7b7f('0x1c');var _0x1c7d24=_0x3ac98c['count'];var _0x26ceef=_0x579c65?0x0:_0x17aa08['offset'];var _0x30b096=_0x579c65?_0x3ac98c[_0x7b7f('0x1d')]:_0x17aa08['offset']+_0x17aa08[_0x7b7f('0x1e')];var _0xba717;if(_0x30b096>=_0x1c7d24){_0x30b096=_0x1c7d24;_0xba717=0xc8;}else{_0xba717=0xce;}_0x2c5612['status'](_0xba717);return _0x2c5612[_0x7b7f('0x1f')](_0x7b7f('0x20'),_0x26ceef+'-'+_0x30b096+'/'+_0x1c7d24)[_0x7b7f('0x21')](_0x3ac98c);}return null;};}function patchUpdates(_0x11d096){return function(_0x3d23ae){try{jsonpatch[_0x7b7f('0x22')](_0x3d23ae,_0x11d096,!![]);}catch(_0x41d43b){return BPromise['reject'](_0x41d43b);}return _0x3d23ae[_0x7b7f('0x23')]();};}function saveUpdates(_0x472f7c,_0x394cae){return function(_0x171063){if(_0x171063){return _0x171063[_0x7b7f('0x24')](_0x472f7c)['then'](function(_0xe87279){return _0xe87279;});}return null;};}function removeEntity(_0x105f40,_0x2bc29a){return function(_0x285ff4){if(_0x285ff4){return _0x285ff4[_0x7b7f('0x25')]()[_0x7b7f('0x26')](function(){var _0x58a920=_0x285ff4[_0x7b7f('0x27')]({'plain':!![]});var _0x3a1936=_0x7b7f('0x28');return db[_0x7b7f('0x29')][_0x7b7f('0x25')]({'where':{'type':_0x3a1936,'resourceId':_0x58a920['id']}})[_0x7b7f('0x26')](function(){return _0x285ff4;});})[_0x7b7f('0x26')](function(){_0x105f40[_0x7b7f('0x1a')](0xcc)['end']();});}};}function handleEntityNotFound(_0x368bfc,_0x337398){return function(_0x5538c7){if(!_0x5538c7){_0x368bfc[_0x7b7f('0x18')](0x194);}return _0x5538c7;};}function handleError(_0xb63bce,_0x5e07b3){_0x5e07b3=_0x5e07b3||0x1f4;return function(_0x355d0b){logger[_0x7b7f('0x2a')](_0x355d0b[_0x7b7f('0x2b')]);if(_0x355d0b[_0x7b7f('0x2c')]){delete _0x355d0b[_0x7b7f('0x2c')];}_0xb63bce[_0x7b7f('0x1a')](_0x5e07b3)[_0x7b7f('0x2d')](_0x355d0b);};}exports[_0x7b7f('0x2e')]=function(_0x200eca,_0x3ec5e0){var _0x5892ce={},_0x1720d4={},_0x1bafd6={'count':0x0,'rows':[]};var _0x58a747=_[_0x7b7f('0x2f')](db[_0x7b7f('0x30')][_0x7b7f('0x31')],function(_0x53b93b){return{'name':_0x53b93b[_0x7b7f('0x32')],'type':_0x53b93b[_0x7b7f('0x33')][_0x7b7f('0x34')]};});_0x1720d4[_0x7b7f('0x35')]=_[_0x7b7f('0x2f')](_0x58a747,_0x7b7f('0x2c'));_0x1720d4[_0x7b7f('0x36')]=_[_0x7b7f('0x37')](_0x200eca[_0x7b7f('0x36')]);_0x1720d4['filters']=_[_0x7b7f('0x38')](_0x1720d4[_0x7b7f('0x35')],_0x1720d4['query']);_0x5892ce[_0x7b7f('0x39')]=_[_0x7b7f('0x38')](_0x1720d4[_0x7b7f('0x35')],qs['fields'](_0x200eca['query'][_0x7b7f('0x3a')]));_0x5892ce[_0x7b7f('0x39')]=_0x5892ce['attributes'][_0x7b7f('0x3b')]?_0x5892ce[_0x7b7f('0x39')]:_0x1720d4[_0x7b7f('0x35')];if(!_0x200eca['query'][_0x7b7f('0x3c')](_0x7b7f('0x3d'))){_0x5892ce['limit']=qs[_0x7b7f('0x1e')](_0x200eca[_0x7b7f('0x36')][_0x7b7f('0x1e')]);_0x5892ce[_0x7b7f('0x1b')]=qs[_0x7b7f('0x1b')](_0x200eca[_0x7b7f('0x36')][_0x7b7f('0x1b')]);}_0x5892ce[_0x7b7f('0x3e')]=qs[_0x7b7f('0x3f')](_0x200eca[_0x7b7f('0x36')][_0x7b7f('0x3f')]);_0x5892ce['where']=qs[_0x7b7f('0x40')](_[_0x7b7f('0x41')](_0x200eca['query'],_0x1720d4[_0x7b7f('0x40')]),_0x58a747);if(_0x200eca[_0x7b7f('0x36')][_0x7b7f('0x42')]){_0x5892ce[_0x7b7f('0x43')]=_[_0x7b7f('0x44')](_0x5892ce['where'],{'$or':_[_0x7b7f('0x2f')](_0x58a747,function(_0x5ea401){if(_0x5ea401[_0x7b7f('0x33')]!=='VIRTUAL'){var _0x3a4947={};_0x3a4947[_0x5ea401[_0x7b7f('0x2c')]]={'$like':'%'+_0x200eca['query'][_0x7b7f('0x42')]+'%'};return _0x3a4947;}})});}_0x5892ce=_['merge']({},_0x5892ce,_0x200eca['options']);var _0x148997={'where':_0x5892ce[_0x7b7f('0x43')]};return db[_0x7b7f('0x30')]['count'](_0x148997)['then'](function(_0x363f8a){_0x1bafd6[_0x7b7f('0x1d')]=_0x363f8a;if(_0x200eca[_0x7b7f('0x36')][_0x7b7f('0x45')]){_0x5892ce[_0x7b7f('0x46')]=[{'all':!![]}];}return db[_0x7b7f('0x30')][_0x7b7f('0x47')](_0x5892ce);})[_0x7b7f('0x26')](function(_0x67a00c){_0x1bafd6[_0x7b7f('0x48')]=_0x67a00c;return _0x1bafd6;})[_0x7b7f('0x26')](respondWithFilteredResult(_0x3ec5e0,_0x5892ce))['catch'](handleError(_0x3ec5e0,null));};exports[_0x7b7f('0x49')]=function(_0x534e65,_0x55ca11){var _0xd6863d={'raw':![],'where':{'id':_0x534e65[_0x7b7f('0x4a')]['id']}},_0x226b9b={};_0x226b9b[_0x7b7f('0x35')]=_[_0x7b7f('0x37')](db[_0x7b7f('0x30')][_0x7b7f('0x31')]);_0x226b9b[_0x7b7f('0x36')]=_['keys'](_0x534e65['query']);_0x226b9b['filters']=_['intersection'](_0x226b9b[_0x7b7f('0x35')],_0x226b9b[_0x7b7f('0x36')]);_0xd6863d[_0x7b7f('0x39')]=_[_0x7b7f('0x38')](_0x226b9b[_0x7b7f('0x35')],qs['fields'](_0x534e65[_0x7b7f('0x36')][_0x7b7f('0x3a')]));_0xd6863d[_0x7b7f('0x39')]=_0xd6863d['attributes'][_0x7b7f('0x3b')]?_0xd6863d[_0x7b7f('0x39')]:_0x226b9b[_0x7b7f('0x35')];if(_0x534e65['query']['includeAll']){_0xd6863d['include']=[{'all':!![]}];}_0xd6863d=_[_0x7b7f('0x44')]({},_0xd6863d,_0x534e65[_0x7b7f('0x4b')]);return db[_0x7b7f('0x30')][_0x7b7f('0x4c')](_0xd6863d)[_0x7b7f('0x26')](handleEntityNotFound(_0x55ca11,null))[_0x7b7f('0x26')](respondWithResult(_0x55ca11,null))[_0x7b7f('0x4d')](handleError(_0x55ca11,null));};exports[_0x7b7f('0x4e')]=function(_0x4b8dfe,_0x4e4afb){return db[_0x7b7f('0x30')][_0x7b7f('0x4e')](_0x4b8dfe[_0x7b7f('0x4f')],{})[_0x7b7f('0x26')](function(_0x5e586d){var _0x5331f7=_0x4b8dfe['user'][_0x7b7f('0x27')]({'plain':!![]});if(!_0x5331f7)throw new Error(_0x7b7f('0x50'));if(_0x5331f7[_0x7b7f('0x51')]===_0x7b7f('0x52')){var _0x336085=_0x5e586d[_0x7b7f('0x27')]({'plain':!![]});var _0x5b6295=_0x7b7f('0x28');return db[_0x7b7f('0x53')][_0x7b7f('0x4c')]({'where':{'name':_0x5b6295,'userProfileId':_0x5331f7['userProfileId']},'raw':!![]})[_0x7b7f('0x26')](function(_0x2548d6){if(_0x2548d6&&_0x2548d6[_0x7b7f('0x54')]===0x0){return db['UserProfileResource'][_0x7b7f('0x4e')]({'name':_0x336085[_0x7b7f('0x2c')],'resourceId':_0x336085['id'],'type':_0x2548d6['name'],'sectionId':_0x2548d6['id']},{})[_0x7b7f('0x26')](function(){return _0x5e586d;});}else{return _0x5e586d;}})['catch'](function(_0x3e99b3){logger[_0x7b7f('0x2a')](_0x7b7f('0x55'),_0x3e99b3);throw _0x3e99b3;});}return _0x5e586d;})['then'](respondWithResult(_0x4e4afb,0xc9))[_0x7b7f('0x4d')](handleError(_0x4e4afb,null));};exports[_0x7b7f('0x56')]=function(_0x4961ef,_0x4443fd){var _0x53443e={'where':{'id':_0x4961ef[_0x7b7f('0x4a')]['id']}},_0x5620e3={};_0x5620e3['model']=_[_0x7b7f('0x37')](db[_0x7b7f('0x30')][_0x7b7f('0x31')]);_0x53443e[_0x7b7f('0x39')]=_['intersection'](_0x5620e3['model'],qs[_0x7b7f('0x3a')](_0x4961ef[_0x7b7f('0x36')][_0x7b7f('0x3a')]));_0x53443e['attributes']=_0x53443e['attributes'][_0x7b7f('0x3b')]?_0x53443e[_0x7b7f('0x39')]:_0x5620e3[_0x7b7f('0x35')];if(_0x4961ef['query'][_0x7b7f('0x45')]){_0x53443e[_0x7b7f('0x46')]=[{'all':!![]}];}_0x53443e=_['merge']({},_0x53443e,_0x4961ef['options']);return db[_0x7b7f('0x30')][_0x7b7f('0x4c')](_0x53443e)[_0x7b7f('0x26')](handleEntityNotFound(_0x4443fd,null))['then'](function(_0x25e006){if(_0x25e006){var _0x279c73=_0x25e006[_0x7b7f('0x27')]({'plain':!![]});_0x279c73=qs['omit'](_0x279c73,['id',_0x7b7f('0x57'),_0x7b7f('0x58')]);_0x4961ef['body']=_[_0x7b7f('0x59')](_0x4961ef[_0x7b7f('0x4f')],['id',_0x7b7f('0x57'),_0x7b7f('0x58')]);return db[_0x7b7f('0x30')]['create'](_[_0x7b7f('0x44')](_0x279c73,_0x4961ef[_0x7b7f('0x4f')]),{'include':_0x4961ef[_0x7b7f('0x36')][_0x7b7f('0x45')]?[{'all':!![]}]:undefined})[_0x7b7f('0x26')](function(_0x4a1c18){var _0x1a5ba1=_0x4961ef[_0x7b7f('0x52')][_0x7b7f('0x27')]({'plain':!![]});if(!_0x1a5ba1)throw new Error(_0x7b7f('0x50'));if(_0x1a5ba1['role']==='user'){var _0x5e7368=_0x4a1c18[_0x7b7f('0x27')]({'plain':!![]});var _0xed98b1=_0x7b7f('0x28');return db[_0x7b7f('0x53')][_0x7b7f('0x4c')]({'where':{'name':_0xed98b1,'userProfileId':_0x1a5ba1[_0x7b7f('0x5a')]},'raw':!![]})['then'](function(_0x37f7bf){if(_0x37f7bf&&_0x37f7bf[_0x7b7f('0x54')]===0x0){return db['UserProfileResource'][_0x7b7f('0x4e')]({'name':_0x5e7368[_0x7b7f('0x2c')],'resourceId':_0x5e7368['id'],'type':_0x37f7bf[_0x7b7f('0x2c')],'sectionId':_0x37f7bf['id']},{})[_0x7b7f('0x26')](function(){return _0x4a1c18;});}else{return _0x4a1c18;}})[_0x7b7f('0x4d')](function(_0x32224a){logger[_0x7b7f('0x2a')](_0x7b7f('0x55'),_0x32224a);throw _0x32224a;});}return _0x4a1c18;});}})['then'](respondWithResult(_0x4443fd,0xc9))['catch'](handleError(_0x4443fd,null));};exports[_0x7b7f('0x24')]=function(_0x2de68a,_0x177861){if(_0x2de68a['body']['id']){delete _0x2de68a['body']['id'];}return db[_0x7b7f('0x30')][_0x7b7f('0x4c')]({'where':{'id':_0x2de68a[_0x7b7f('0x4a')]['id']}})['then'](handleEntityNotFound(_0x177861,null))['then'](saveUpdates(_0x2de68a[_0x7b7f('0x4f')],null))['then'](respondWithResult(_0x177861,null))['catch'](handleError(_0x177861,null));};exports['destroy']=function(_0x5e04ea,_0xfc69a8){return db[_0x7b7f('0x30')][_0x7b7f('0x4c')]({'where':{'id':_0x5e04ea['params']['id']}})['then'](handleEntityNotFound(_0xfc69a8,null))[_0x7b7f('0x26')](removeEntity(_0xfc69a8,null))[_0x7b7f('0x4d')](handleError(_0xfc69a8,null));};exports[_0x7b7f('0x5b')]=function(_0x36aece,_0x126d77,_0x37af3c){var _0x27dd0c={'raw':!![],'where':{}};var _0x433eda={};var _0x1690dd={'count':0x0,'rows':[]};return db['Campaign'][_0x7b7f('0x5c')]({'where':{'id':_0x36aece[_0x7b7f('0x4a')]['id']}})[_0x7b7f('0x26')](handleEntityNotFound(_0x126d77,null))[_0x7b7f('0x26')](function(_0x41117f){if(_0x41117f){_0x433eda[_0x7b7f('0x35')]=_[_0x7b7f('0x37')](db[_0x7b7f('0x5d')][_0x7b7f('0x31')]);_0x433eda['query']=_[_0x7b7f('0x37')](_0x36aece[_0x7b7f('0x36')]);_0x433eda['filters']=_[_0x7b7f('0x38')](_0x433eda[_0x7b7f('0x35')],_0x433eda['query']);_0x27dd0c[_0x7b7f('0x39')]=_[_0x7b7f('0x38')](_0x433eda[_0x7b7f('0x35')],qs[_0x7b7f('0x3a')](_0x36aece[_0x7b7f('0x36')]['fields']));_0x27dd0c[_0x7b7f('0x39')]=_0x27dd0c[_0x7b7f('0x39')][_0x7b7f('0x3b')]?_0x27dd0c['attributes']:_0x433eda[_0x7b7f('0x35')];if(!_0x36aece[_0x7b7f('0x36')]['hasOwnProperty'](_0x7b7f('0x3d'))){_0x27dd0c[_0x7b7f('0x1e')]=qs[_0x7b7f('0x1e')](_0x36aece[_0x7b7f('0x36')][_0x7b7f('0x1e')]);_0x27dd0c[_0x7b7f('0x1b')]=qs['offset'](_0x36aece[_0x7b7f('0x36')][_0x7b7f('0x1b')]);}_0x27dd0c[_0x7b7f('0x3e')]=qs[_0x7b7f('0x3f')](_0x36aece[_0x7b7f('0x36')][_0x7b7f('0x3f')]);_0x27dd0c['where']=qs[_0x7b7f('0x40')](_[_0x7b7f('0x41')](_0x36aece[_0x7b7f('0x36')],_0x433eda[_0x7b7f('0x40')]));_0x27dd0c[_0x7b7f('0x43')][_0x7b7f('0x5e')]=_0x41117f['id'];if(_0x36aece[_0x7b7f('0x36')]['filter']){_0x27dd0c[_0x7b7f('0x43')]=_[_0x7b7f('0x44')](_0x27dd0c['where'],{'$or':_[_0x7b7f('0x2f')](_0x27dd0c[_0x7b7f('0x39')],function(_0x381ee5){var _0x408bed={};_0x408bed[_0x381ee5]={'$like':'%'+_0x36aece[_0x7b7f('0x36')][_0x7b7f('0x42')]+'%'};return _0x408bed;})});}_0x27dd0c=_[_0x7b7f('0x44')]({},_0x27dd0c,_0x36aece['options']);return db[_0x7b7f('0x5d')][_0x7b7f('0x1d')]({'where':_0x27dd0c['where']})['then'](function(_0x525655){_0x1690dd[_0x7b7f('0x1d')]=_0x525655;if(_0x36aece[_0x7b7f('0x36')]['includeAll']){_0x27dd0c['include']=[{'all':!![]}];}return db[_0x7b7f('0x5d')][_0x7b7f('0x47')](_0x27dd0c);})[_0x7b7f('0x26')](function(_0x2eee4d){_0x1690dd[_0x7b7f('0x48')]=_0x2eee4d;return _0x1690dd;});}})['then'](respondWithFilteredResult(_0x126d77,_0x27dd0c))['catch'](handleError(_0x126d77,null));};exports[_0x7b7f('0x5f')]=function(_0x51b2a4,_0x5b0d06,_0x49e6d4){var _0xf8796b={'raw':!![],'where':{}};var _0x544155={};var _0x2af067={'count':0x0,'rows':[]};return db['Campaign']['findOne']({'where':{'id':_0x51b2a4[_0x7b7f('0x4a')]['id']}})[_0x7b7f('0x26')](handleEntityNotFound(_0x5b0d06,null))[_0x7b7f('0x26')](function(_0x45ed61){if(_0x45ed61){_0x544155[_0x7b7f('0x35')]=_[_0x7b7f('0x37')](db['CmHopperHistory'][_0x7b7f('0x31')]);_0x544155[_0x7b7f('0x36')]=_[_0x7b7f('0x37')](_0x51b2a4[_0x7b7f('0x36')]);_0x544155['filters']=_[_0x7b7f('0x38')](_0x544155[_0x7b7f('0x35')],_0x544155['query']);_0xf8796b[_0x7b7f('0x39')]=_['intersection'](_0x544155[_0x7b7f('0x35')],qs[_0x7b7f('0x3a')](_0x51b2a4[_0x7b7f('0x36')][_0x7b7f('0x3a')]));_0xf8796b[_0x7b7f('0x39')]=_0xf8796b[_0x7b7f('0x39')][_0x7b7f('0x3b')]?_0xf8796b[_0x7b7f('0x39')]:_0x544155[_0x7b7f('0x35')];if(!_0x51b2a4['query'][_0x7b7f('0x3c')](_0x7b7f('0x3d'))){_0xf8796b['limit']=qs[_0x7b7f('0x1e')](_0x51b2a4[_0x7b7f('0x36')][_0x7b7f('0x1e')]);_0xf8796b['offset']=qs[_0x7b7f('0x1b')](_0x51b2a4[_0x7b7f('0x36')][_0x7b7f('0x1b')]);}_0xf8796b[_0x7b7f('0x3e')]=qs[_0x7b7f('0x3f')](_0x51b2a4[_0x7b7f('0x36')][_0x7b7f('0x3f')]);_0xf8796b[_0x7b7f('0x43')]=qs[_0x7b7f('0x40')](_[_0x7b7f('0x41')](_0x51b2a4[_0x7b7f('0x36')],_0x544155[_0x7b7f('0x40')]));_0xf8796b['where'][_0x7b7f('0x5e')]=_0x45ed61['id'];if(_0x51b2a4[_0x7b7f('0x36')]['filter']){_0xf8796b[_0x7b7f('0x43')]=_[_0x7b7f('0x44')](_0xf8796b[_0x7b7f('0x43')],{'$or':_[_0x7b7f('0x2f')](_0xf8796b['attributes'],function(_0x12a189){var _0x1690af={};_0x1690af[_0x12a189]={'$like':'%'+_0x51b2a4[_0x7b7f('0x36')]['filter']+'%'};return _0x1690af;})});}_0xf8796b=_[_0x7b7f('0x44')]({},_0xf8796b,_0x51b2a4['options']);return db['CmHopperHistory']['count']({'where':_0xf8796b['where']})[_0x7b7f('0x26')](function(_0x45d6ba){_0x2af067[_0x7b7f('0x1d')]=_0x45d6ba;if(_0x51b2a4[_0x7b7f('0x36')][_0x7b7f('0x45')]){_0xf8796b['include']=[{'all':!![]}];}return db[_0x7b7f('0x60')][_0x7b7f('0x47')](_0xf8796b);})[_0x7b7f('0x26')](function(_0x351571){_0x2af067[_0x7b7f('0x48')]=_0x351571;return _0x2af067;});}})[_0x7b7f('0x26')](respondWithFilteredResult(_0x5b0d06,_0xf8796b))[_0x7b7f('0x4d')](handleError(_0x5b0d06,null));};exports[_0x7b7f('0x61')]=function(_0x111caa,_0x12a2db,_0x5d1b16){var _0x1a3a89={'raw':!![],'where':{}};var _0x30f0e5={};var _0x17cf20={'count':0x0,'rows':[]};return db['Campaign'][_0x7b7f('0x5c')]({'where':{'id':_0x111caa['params']['id']}})[_0x7b7f('0x26')](handleEntityNotFound(_0x12a2db,null))[_0x7b7f('0x26')](function(_0x1e27b3){if(_0x1e27b3){_0x30f0e5[_0x7b7f('0x35')]=_[_0x7b7f('0x37')](db[_0x7b7f('0x62')]['rawAttributes']);_0x30f0e5[_0x7b7f('0x36')]=_[_0x7b7f('0x37')](_0x111caa[_0x7b7f('0x36')]);_0x30f0e5[_0x7b7f('0x40')]=_[_0x7b7f('0x38')](_0x30f0e5[_0x7b7f('0x35')],_0x30f0e5[_0x7b7f('0x36')]);_0x1a3a89[_0x7b7f('0x39')]=_[_0x7b7f('0x38')](_0x30f0e5['model'],qs['fields'](_0x111caa[_0x7b7f('0x36')][_0x7b7f('0x3a')]));_0x1a3a89[_0x7b7f('0x39')]=_0x1a3a89[_0x7b7f('0x39')][_0x7b7f('0x3b')]?_0x1a3a89[_0x7b7f('0x39')]:_0x30f0e5[_0x7b7f('0x35')];if(!_0x111caa[_0x7b7f('0x36')][_0x7b7f('0x3c')](_0x7b7f('0x3d'))){_0x1a3a89['limit']=qs[_0x7b7f('0x1e')](_0x111caa[_0x7b7f('0x36')][_0x7b7f('0x1e')]);_0x1a3a89[_0x7b7f('0x1b')]=qs[_0x7b7f('0x1b')](_0x111caa[_0x7b7f('0x36')][_0x7b7f('0x1b')]);}_0x1a3a89['order']=qs[_0x7b7f('0x3f')](_0x111caa[_0x7b7f('0x36')][_0x7b7f('0x3f')]);_0x1a3a89[_0x7b7f('0x43')]=qs['filters'](_[_0x7b7f('0x41')](_0x111caa['query'],_0x30f0e5[_0x7b7f('0x40')]));_0x1a3a89[_0x7b7f('0x43')][_0x7b7f('0x5e')]=_0x1e27b3['id'];if(_0x111caa[_0x7b7f('0x36')][_0x7b7f('0x42')]){_0x1a3a89[_0x7b7f('0x43')]=_['merge'](_0x1a3a89['where'],{'$or':_[_0x7b7f('0x2f')](_0x1a3a89[_0x7b7f('0x39')],function(_0x52386b){var _0x44ff53={};_0x44ff53[_0x52386b]={'$like':'%'+_0x111caa[_0x7b7f('0x36')]['filter']+'%'};return _0x44ff53;})});}_0x1a3a89=_[_0x7b7f('0x44')]({},_0x1a3a89,_0x111caa[_0x7b7f('0x4b')]);return db[_0x7b7f('0x62')][_0x7b7f('0x1d')]({'where':_0x1a3a89[_0x7b7f('0x43')]})['then'](function(_0xac7023){_0x17cf20[_0x7b7f('0x1d')]=_0xac7023;if(_0x111caa['query'][_0x7b7f('0x45')]){_0x1a3a89['include']=[{'all':!![]}];}return db[_0x7b7f('0x62')]['findAll'](_0x1a3a89);})[_0x7b7f('0x26')](function(_0x1bb124){_0x17cf20[_0x7b7f('0x48')]=_0x1bb124;return _0x17cf20;});}})[_0x7b7f('0x26')](respondWithFilteredResult(_0x12a2db,_0x1a3a89))['catch'](handleError(_0x12a2db,null));};exports[_0x7b7f('0x63')]=function(_0x509449,_0x4f74af,_0x293c82){var _0x2a017a={'raw':!![],'where':{}};var _0x1ffeaf={};var _0x24b5d9={'count':0x0,'rows':[]};return db[_0x7b7f('0x30')]['findOne']({'where':{'id':_0x509449[_0x7b7f('0x4a')]['id']}})[_0x7b7f('0x26')](handleEntityNotFound(_0x4f74af,null))['then'](function(_0x1d904d){if(_0x1d904d){_0x1ffeaf[_0x7b7f('0x35')]=_[_0x7b7f('0x37')](db[_0x7b7f('0x64')]['rawAttributes']);_0x1ffeaf[_0x7b7f('0x36')]=_['keys'](_0x509449[_0x7b7f('0x36')]);_0x1ffeaf[_0x7b7f('0x40')]=_[_0x7b7f('0x38')](_0x1ffeaf['model'],_0x1ffeaf[_0x7b7f('0x36')]);_0x2a017a[_0x7b7f('0x39')]=_['intersection'](_0x1ffeaf[_0x7b7f('0x35')],qs['fields'](_0x509449[_0x7b7f('0x36')][_0x7b7f('0x3a')]));_0x2a017a[_0x7b7f('0x39')]=_0x2a017a['attributes']['length']?_0x2a017a[_0x7b7f('0x39')]:_0x1ffeaf[_0x7b7f('0x35')];if(!_0x509449[_0x7b7f('0x36')]['hasOwnProperty'](_0x7b7f('0x3d'))){_0x2a017a[_0x7b7f('0x1e')]=qs['limit'](_0x509449['query'][_0x7b7f('0x1e')]);_0x2a017a[_0x7b7f('0x1b')]=qs[_0x7b7f('0x1b')](_0x509449[_0x7b7f('0x36')]['offset']);}_0x2a017a[_0x7b7f('0x3e')]=qs[_0x7b7f('0x3f')](_0x509449['query'][_0x7b7f('0x3f')]);_0x2a017a[_0x7b7f('0x43')]=qs[_0x7b7f('0x40')](_[_0x7b7f('0x41')](_0x509449[_0x7b7f('0x36')],_0x1ffeaf[_0x7b7f('0x40')]));_0x2a017a[_0x7b7f('0x43')][_0x7b7f('0x5e')]=_0x1d904d['id'];if(_0x509449['query'][_0x7b7f('0x42')]){_0x2a017a[_0x7b7f('0x43')]=_[_0x7b7f('0x44')](_0x2a017a[_0x7b7f('0x43')],{'$or':_['map'](_0x2a017a['attributes'],function(_0x252cbf){var _0x26695a={};_0x26695a[_0x252cbf]={'$like':'%'+_0x509449['query'][_0x7b7f('0x42')]+'%'};return _0x26695a;})});}_0x2a017a=_[_0x7b7f('0x44')]({},_0x2a017a,_0x509449['options']);return db['CmHopperBlack']['count']({'where':_0x2a017a['where']})[_0x7b7f('0x26')](function(_0x6a8e80){_0x24b5d9['count']=_0x6a8e80;if(_0x509449[_0x7b7f('0x36')]['includeAll']){_0x2a017a['include']=[{'all':!![]}];}return db[_0x7b7f('0x64')]['findAll'](_0x2a017a);})[_0x7b7f('0x26')](function(_0x560cfa){_0x24b5d9['rows']=_0x560cfa;return _0x24b5d9;});}})[_0x7b7f('0x26')](respondWithFilteredResult(_0x4f74af,_0x2a017a))['catch'](handleError(_0x4f74af,null));};exports[_0x7b7f('0x65')]=function(_0xe78030,_0x206f1b,_0x5b1d58){var _0x49b8c2={};var _0x180afa={};var _0x178ce9;var _0x2d81ef;return db['Campaign'][_0x7b7f('0x5c')]({'where':{'id':_0xe78030[_0x7b7f('0x4a')]['id']}})[_0x7b7f('0x26')](handleEntityNotFound(_0x206f1b,null))['then'](function(_0x2eca05){if(_0x2eca05){_0x178ce9=_0x2eca05;_0x180afa[_0x7b7f('0x35')]=_[_0x7b7f('0x37')](db[_0x7b7f('0x66')]['rawAttributes']);_0x180afa[_0x7b7f('0x36')]=_[_0x7b7f('0x37')](_0xe78030[_0x7b7f('0x36')]);_0x180afa['filters']=_[_0x7b7f('0x38')](_0x180afa[_0x7b7f('0x35')],_0x180afa['query']);_0x49b8c2[_0x7b7f('0x39')]=_[_0x7b7f('0x38')](_0x180afa[_0x7b7f('0x35')],qs[_0x7b7f('0x3a')](_0xe78030[_0x7b7f('0x36')][_0x7b7f('0x3a')]));_0x49b8c2[_0x7b7f('0x39')]=_0x49b8c2[_0x7b7f('0x39')][_0x7b7f('0x3b')]?_0x49b8c2['attributes']:_0x180afa['model'];_0x49b8c2[_0x7b7f('0x3e')]=qs['sort'](_0xe78030[_0x7b7f('0x36')][_0x7b7f('0x3f')]);_0x49b8c2[_0x7b7f('0x43')]=qs[_0x7b7f('0x40')](_['pick'](_0xe78030['query'],_0x180afa[_0x7b7f('0x40')]));if(_0xe78030[_0x7b7f('0x36')][_0x7b7f('0x42')]){_0x49b8c2['where']=_[_0x7b7f('0x44')](_0x49b8c2[_0x7b7f('0x43')],{'$or':_[_0x7b7f('0x2f')](_0x49b8c2['attributes'],function(_0x9dd0a){var _0x4f534b={};_0x4f534b[_0x9dd0a]={'$like':'%'+_0xe78030['query'][_0x7b7f('0x42')]+'%'};return _0x4f534b;})});}_0x49b8c2=_['merge']({},_0x49b8c2,_0xe78030['options']);return _0x178ce9[_0x7b7f('0x65')](_0x49b8c2);}})['then'](function(_0x2521ad){if(_0x2521ad){_0x2d81ef=_0x2521ad['length'];if(!_0xe78030['query'][_0x7b7f('0x3c')]('nolimit')){_0x49b8c2['limit']=qs[_0x7b7f('0x1e')](_0xe78030[_0x7b7f('0x36')]['limit']);_0x49b8c2['offset']=qs['offset'](_0xe78030['query']['offset']);}return _0x178ce9[_0x7b7f('0x65')](_0x49b8c2);}})[_0x7b7f('0x26')](function(_0x3d3385){if(_0x3d3385){return _0x3d3385?{'count':_0x2d81ef,'rows':_0x3d3385}:null;}})[_0x7b7f('0x26')](respondWithResult(_0x206f1b,null))[_0x7b7f('0x4d')](handleError(_0x206f1b,null));};exports['addLists']=function(_0x34be0c,_0x2357a8,_0x479c37){var _0xa6fc57,_0x33cc85;return db[_0x7b7f('0x30')][_0x7b7f('0x4c')]({'where':{'id':_0x34be0c[_0x7b7f('0x4a')]['id']}})[_0x7b7f('0x26')](handleEntityNotFound(_0x2357a8,null))[_0x7b7f('0x26')](function(_0x32d9f6){if(_0x32d9f6){_0x33cc85=_0x32d9f6;return _0x32d9f6[_0x7b7f('0x67')](_0x34be0c['body'][_0x7b7f('0x68')],_['omit'](_0x34be0c[_0x7b7f('0x4f')],[_0x7b7f('0x68'),'id'])||{});}return null;})['spread'](function(_0x77fc20){var _0x1fda91;_0xa6fc57=_0x77fc20||[];var _0x11a4e7=[];if(_0x77fc20){for(var _0x595b55=0x0;_0x595b55<_0x77fc20[_0x7b7f('0x3b')];_0x595b55+=0x1){var _0x42b79f=_0x77fc20[_0x595b55][_0x7b7f('0x27')]({'plain':!![]});_0x33cc85[_0x7b7f('0x69')]=_0x34be0c['body'][_0x7b7f('0x69')]?_0x34be0c[_0x7b7f('0x4f')][_0x7b7f('0x69')]:_0x33cc85['dialCheckDuplicateType'];switch(_0x33cc85[_0x7b7f('0x69')]){case _0x7b7f('0x6a'):_0x1fda91=squel[_0x7b7f('0x6b')]()[_0x7b7f('0x6c')](_0x7b7f('0x6d'))[_0x7b7f('0x6e')]([_0x7b7f('0x6f'),_0x7b7f('0x70'),_0x7b7f('0x71'),_0x7b7f('0x72'),_0x7b7f('0x5e'),_0x7b7f('0x57'),_0x7b7f('0x58')],squel['select']()['field']('phone',_0x7b7f('0x6f'))[_0x7b7f('0x73')]('NOW()',_0x7b7f('0x70'))[_0x7b7f('0x73')]('id',_0x7b7f('0x71'))[_0x7b7f('0x73')](_0x42b79f[_0x7b7f('0x74')]['toString'](),_0x7b7f('0x72'))['field'](_0x34be0c[_0x7b7f('0x4a')]['id'][_0x7b7f('0x75')](),_0x7b7f('0x5e'))[_0x7b7f('0x73')](_0x7b7f('0x76'),'createdAt')[_0x7b7f('0x73')]('NOW()',_0x7b7f('0x58'))[_0x7b7f('0x77')](_0x7b7f('0x78'))[_0x7b7f('0x43')](_0x7b7f('0x79'))[_0x7b7f('0x43')]('ListId\x20=\x20?',_0x42b79f[_0x7b7f('0x74')][_0x7b7f('0x75')]())[_0x7b7f('0x43')]('phone\x20IS\x20NOT\x20NULL')[_0x7b7f('0x43')](_0x7b7f('0x7a'),squel[_0x7b7f('0x7b')]()[_0x7b7f('0x73')](_0x7b7f('0x7c'))[_0x7b7f('0x77')](_0x7b7f('0x7d'))[_0x7b7f('0x43')](_0x7b7f('0x7e'),_0x34be0c[_0x7b7f('0x4a')]['id'][_0x7b7f('0x75')]()))[_0x7b7f('0x43')](_0x7b7f('0x7a'),squel[_0x7b7f('0x7b')]()[_0x7b7f('0x73')]('COALESCE(phone,\x27\x27)')['from']('cm_hopper')[_0x7b7f('0x43')](_0x7b7f('0x7e'),_0x34be0c[_0x7b7f('0x4a')]['id'][_0x7b7f('0x75')]())))[_0x7b7f('0x75')]();break;case'onlyIfOpen':_0x1fda91=squel['insert']()[_0x7b7f('0x6c')](_0x7b7f('0x6d'))[_0x7b7f('0x6e')]([_0x7b7f('0x6f'),'scheduledAt','ContactId',_0x7b7f('0x72'),_0x7b7f('0x5e'),'createdAt','updatedAt'],squel[_0x7b7f('0x7b')]()[_0x7b7f('0x73')](_0x7b7f('0x6f'),'phone')[_0x7b7f('0x73')](_0x7b7f('0x76'),_0x7b7f('0x70'))[_0x7b7f('0x73')]('id',_0x7b7f('0x71'))[_0x7b7f('0x73')](_0x42b79f[_0x7b7f('0x74')][_0x7b7f('0x75')](),_0x7b7f('0x72'))[_0x7b7f('0x73')](_0x34be0c[_0x7b7f('0x4a')]['id'][_0x7b7f('0x75')](),_0x7b7f('0x5e'))[_0x7b7f('0x73')]('NOW()',_0x7b7f('0x57'))[_0x7b7f('0x73')](_0x7b7f('0x76'),_0x7b7f('0x58'))[_0x7b7f('0x77')](_0x7b7f('0x78'))[_0x7b7f('0x43')]('deletedAt\x20IS\x20NULL')['where']('ListId\x20=\x20?',_0x42b79f[_0x7b7f('0x74')][_0x7b7f('0x75')]())['where'](_0x7b7f('0x7f'))[_0x7b7f('0x43')](_0x7b7f('0x7a'),squel[_0x7b7f('0x7b')]()[_0x7b7f('0x73')](_0x7b7f('0x80'))[_0x7b7f('0x77')](_0x7b7f('0x6d'))[_0x7b7f('0x43')](_0x7b7f('0x7e'),_0x34be0c['params']['id'][_0x7b7f('0x75')]())))[_0x7b7f('0x75')]();break;default:_0x1fda91=squel[_0x7b7f('0x6b')]()[_0x7b7f('0x6c')](_0x7b7f('0x6d'))['fromQuery']([_0x7b7f('0x6f'),'scheduledAt',_0x7b7f('0x71'),_0x7b7f('0x72'),'CampaignId',_0x7b7f('0x57'),_0x7b7f('0x58')],squel['select']()[_0x7b7f('0x73')](_0x7b7f('0x6f'),_0x7b7f('0x6f'))[_0x7b7f('0x73')](_0x7b7f('0x76'),'scheduledAt')[_0x7b7f('0x73')]('id','ContactId')[_0x7b7f('0x73')](_0x42b79f[_0x7b7f('0x74')]['toString'](),'ListId')[_0x7b7f('0x73')](_0x34be0c[_0x7b7f('0x4a')]['id'][_0x7b7f('0x75')](),'CampaignId')[_0x7b7f('0x73')]('NOW()','createdAt')[_0x7b7f('0x73')](_0x7b7f('0x76'),_0x7b7f('0x58'))[_0x7b7f('0x77')](_0x7b7f('0x78'))['where'](_0x7b7f('0x79'))[_0x7b7f('0x43')](_0x7b7f('0x81'),_0x42b79f[_0x7b7f('0x74')][_0x7b7f('0x75')]())[_0x7b7f('0x43')]('phone\x20IS\x20NOT\x20NULL'))[_0x7b7f('0x75')]();}_0x11a4e7[_0x7b7f('0x82')](db['sequelize'][_0x7b7f('0x36')](_0x1fda91));}return BPromise[_0x7b7f('0x83')](_0x11a4e7);}})[_0x7b7f('0x26')](function(){return _0xa6fc57;})[_0x7b7f('0x26')](respondWithResult(_0x2357a8,null))['catch'](handleError(_0x2357a8,null));};exports[_0x7b7f('0x84')]=function(_0x49feea,_0x31c28c,_0x1a13f6){return db['Campaign'][_0x7b7f('0x4c')]({'where':{'id':_0x49feea[_0x7b7f('0x4a')]['id']}})[_0x7b7f('0x26')](handleEntityNotFound(_0x31c28c,null))[_0x7b7f('0x26')](function(_0x2e6503){if(_0x2e6503){return _0x2e6503[_0x7b7f('0x84')](_0x49feea[_0x7b7f('0x36')][_0x7b7f('0x68')]);}})['then'](function(_0x10dfd2){if(_0x10dfd2){return db[_0x7b7f('0x5d')]['destroy']({'where':{'ListId':_0x49feea[_0x7b7f('0x36')]['ids'],'CampaignId':_0x49feea[_0x7b7f('0x4a')]['id']}})[_0x7b7f('0x26')](function(){return _0x10dfd2;});}})[_0x7b7f('0x26')](respondWithStatusCode(_0x31c28c,null))[_0x7b7f('0x4d')](handleError(_0x31c28c,null));};exports['getBlackLists']=function(_0x276f47,_0x55f847,_0x504175){var _0x246892={};var _0x499098={};var _0xe73521;var _0x443532;return db[_0x7b7f('0x30')][_0x7b7f('0x5c')]({'where':{'id':_0x276f47['params']['id']}})[_0x7b7f('0x26')](handleEntityNotFound(_0x55f847,null))['then'](function(_0x2c022c){if(_0x2c022c){_0xe73521=_0x2c022c;_0x499098[_0x7b7f('0x35')]=_[_0x7b7f('0x37')](db[_0x7b7f('0x66')][_0x7b7f('0x31')]);_0x499098[_0x7b7f('0x36')]=_[_0x7b7f('0x37')](_0x276f47['query']);_0x499098[_0x7b7f('0x40')]=_['intersection'](_0x499098[_0x7b7f('0x35')],_0x499098[_0x7b7f('0x36')]);_0x246892[_0x7b7f('0x39')]=_[_0x7b7f('0x38')](_0x499098['model'],qs[_0x7b7f('0x3a')](_0x276f47[_0x7b7f('0x36')][_0x7b7f('0x3a')]));_0x246892[_0x7b7f('0x39')]=_0x246892['attributes'][_0x7b7f('0x3b')]?_0x246892[_0x7b7f('0x39')]:_0x499098[_0x7b7f('0x35')];_0x246892[_0x7b7f('0x3e')]=qs[_0x7b7f('0x3f')](_0x276f47[_0x7b7f('0x36')]['sort']);_0x246892[_0x7b7f('0x43')]=qs[_0x7b7f('0x40')](_['pick'](_0x276f47[_0x7b7f('0x36')],_0x499098[_0x7b7f('0x40')]));if(_0x276f47[_0x7b7f('0x36')][_0x7b7f('0x42')]){_0x246892[_0x7b7f('0x43')]=_[_0x7b7f('0x44')](_0x246892[_0x7b7f('0x43')],{'$or':_[_0x7b7f('0x2f')](_0x246892['attributes'],function(_0x31ad7e){var _0x4ccc29={};_0x4ccc29[_0x31ad7e]={'$like':'%'+_0x276f47['query']['filter']+'%'};return _0x4ccc29;})});}_0x246892=_[_0x7b7f('0x44')]({},_0x246892,_0x276f47['options']);return _0xe73521[_0x7b7f('0x85')](_0x246892);}})[_0x7b7f('0x26')](function(_0x3fd625){if(_0x3fd625){_0x443532=_0x3fd625[_0x7b7f('0x3b')];if(!_0x276f47[_0x7b7f('0x36')]['hasOwnProperty'](_0x7b7f('0x3d'))){_0x246892[_0x7b7f('0x1e')]=qs[_0x7b7f('0x1e')](_0x276f47['query'][_0x7b7f('0x1e')]);_0x246892[_0x7b7f('0x1b')]=qs[_0x7b7f('0x1b')](_0x276f47[_0x7b7f('0x36')][_0x7b7f('0x1b')]);}return _0xe73521[_0x7b7f('0x85')](_0x246892);}})['then'](function(_0x598e6e){if(_0x598e6e){return _0x598e6e?{'count':_0x443532,'rows':_0x598e6e}:null;}})[_0x7b7f('0x26')](respondWithResult(_0x55f847,null))[_0x7b7f('0x4d')](handleError(_0x55f847,null));};exports[_0x7b7f('0x86')]=function(_0x49e9a4,_0x20e139,_0x2112ea){var _0x357780,_0x81f18a;return db[_0x7b7f('0x30')][_0x7b7f('0x4c')]({'where':{'id':_0x49e9a4[_0x7b7f('0x4a')]['id']}})[_0x7b7f('0x26')](handleEntityNotFound(_0x20e139,null))[_0x7b7f('0x26')](function(_0xd7195c){if(_0xd7195c){_0x81f18a=_0xd7195c;return _0xd7195c[_0x7b7f('0x86')](_0x49e9a4[_0x7b7f('0x4f')][_0x7b7f('0x68')],_[_0x7b7f('0x59')](_0x49e9a4[_0x7b7f('0x4f')],[_0x7b7f('0x68'),'id'])||{});}return null;})['spread'](function(_0x360fdc){var _0x10986d;_0x357780=_0x360fdc||[];var _0x67a50d=[];if(_0x360fdc){for(var _0x7ad010=0x0;_0x7ad010<_0x360fdc[_0x7b7f('0x3b')];_0x7ad010+=0x1){var _0x131f58=_0x360fdc[_0x7ad010][_0x7b7f('0x27')]({'plain':!![]});_0x10986d=squel[_0x7b7f('0x6b')]()[_0x7b7f('0x6c')](_0x7b7f('0x87'))['fromQuery']([_0x7b7f('0x6f'),_0x7b7f('0x71'),_0x7b7f('0x72'),'CampaignId',_0x7b7f('0x57'),_0x7b7f('0x58')],squel[_0x7b7f('0x7b')]()['field'](_0x7b7f('0x6f'),_0x7b7f('0x6f'))[_0x7b7f('0x73')]('id',_0x7b7f('0x71'))[_0x7b7f('0x73')](_0x131f58[_0x7b7f('0x74')][_0x7b7f('0x75')](),_0x7b7f('0x72'))[_0x7b7f('0x73')](_0x49e9a4[_0x7b7f('0x4a')]['id'][_0x7b7f('0x75')](),_0x7b7f('0x5e'))[_0x7b7f('0x73')](_0x7b7f('0x76'),'createdAt')[_0x7b7f('0x73')](_0x7b7f('0x76'),_0x7b7f('0x58'))[_0x7b7f('0x77')](_0x7b7f('0x78'))[_0x7b7f('0x43')](_0x7b7f('0x79'))['where'](_0x7b7f('0x81'),_0x131f58[_0x7b7f('0x74')][_0x7b7f('0x75')]())[_0x7b7f('0x43')](_0x7b7f('0x7f')))[_0x7b7f('0x75')]();_0x67a50d[_0x7b7f('0x82')](db[_0x7b7f('0x88')][_0x7b7f('0x36')](_0x10986d));}return BPromise[_0x7b7f('0x83')](_0x67a50d);}})[_0x7b7f('0x26')](function(){return _0x357780;})['then'](respondWithResult(_0x20e139,null))[_0x7b7f('0x4d')](handleError(_0x20e139,null));};exports[_0x7b7f('0x89')]=function(_0x5e822c,_0x308f52,_0x1eb8e9){return db[_0x7b7f('0x30')][_0x7b7f('0x4c')]({'where':{'id':_0x5e822c[_0x7b7f('0x4a')]['id']}})[_0x7b7f('0x26')](handleEntityNotFound(_0x308f52,null))[_0x7b7f('0x26')](function(_0x9af1c){if(_0x9af1c){return _0x9af1c[_0x7b7f('0x89')](_0x5e822c['query']['ids']);}})[_0x7b7f('0x26')](function(_0x15d831){if(_0x15d831){return db[_0x7b7f('0x64')][_0x7b7f('0x25')]({'where':{'ListId':_0x5e822c[_0x7b7f('0x36')][_0x7b7f('0x68')],'CampaignId':_0x5e822c[_0x7b7f('0x4a')]['id']}})[_0x7b7f('0x26')](function(){return _0x15d831;});}})[_0x7b7f('0x26')](respondWithStatusCode(_0x308f52,null))[_0x7b7f('0x4d')](handleError(_0x308f52,null));};
\ No newline at end of file
+var _0x8207=['NOW()','createdAt','from','cm_contacts','ListId\x20=\x20?','CmListId','phone\x20NOT\x20IN\x20(?)','COALESCE(calleridnum,\x27\x27)','cm_hopper_final','CampaignId\x20=\x20?','COALESCE(phone,\x27\x27)','onlyIfOpen','insert','into','cm_hopper','deletedAt\x20IS\x20NULL','phone\x20IS\x20NOT\x20NULL','push','all','removeLists','getBlackLists','addBlackLists','spread','cm_hopper_black','removeBlackLists','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','papaparse','ioredis','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','end','json','undefined','limit','count','offset','Content-Range','apply','save','update','then','destroy','get','error','stack','name','send','map','Campaign','rawAttributes','fieldName','type','model','filters','intersection','query','attributes','fields','length','nolimit','sort','where','pick','filter','VIRTUAL','merge','options','includeAll','include','findAll','rows','catch','show','params','keys','create','body','user','IvrCampaigns','find','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','omit','updatedAt','role','UserProfileSection','userProfileId','autoAssociation','getHoppers','findOne','CmHopper','hasOwnProperty','order','CampaignId','CmHopperHistory','getHopperFinals','CmHopperFinal','getHopperBlacks','CmHopperBlack','getLists','CmList','addLists','ids','dialCheckDuplicateType','fromQuery','phone','scheduledAt','ContactId','ListId','select','field','toString'];(function(_0x52725d,_0x3fed1b){var _0x42b027=function(_0xc35024){while(--_0xc35024){_0x52725d['push'](_0x52725d['shift']());}};_0x42b027(++_0x3fed1b);}(_0x8207,0x9f));var _0x7820=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0x8207[_0x14add3];return _0x4a174f;};'use strict';var emlformat=require(_0x7820('0x0'));var rimraf=require(_0x7820('0x1'));var zipdir=require(_0x7820('0x2'));var jsonpatch=require(_0x7820('0x3'));var rp=require(_0x7820('0x4'));var moment=require(_0x7820('0x5'));var BPromise=require(_0x7820('0x6'));var Mustache=require(_0x7820('0x7'));var util=require('util');var path=require(_0x7820('0x8'));var sox=require(_0x7820('0x9'));var csv=require(_0x7820('0xa'));var ejs=require(_0x7820('0xb'));var fs=require('fs');var fs_extra=require(_0x7820('0xc'));var _=require(_0x7820('0xd'));var squel=require('squel');var crypto=require(_0x7820('0xe'));var jsforce=require(_0x7820('0xf'));var deskjs=require(_0x7820('0x10'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x7820('0x11'));var Redis=require(_0x7820('0x12'));var authService=require('../../components/auth/service');var qs=require(_0x7820('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x7820('0x14'));var logger=require(_0x7820('0x15'))('api');var utils=require(_0x7820('0x16'));var config=require(_0x7820('0x17'));var licenseUtil=require(_0x7820('0x18'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x43fddf,_0x585213){_0x585213=_0x585213||0xcc;return function(_0x577412){if(_0x577412){return _0x43fddf[_0x7820('0x19')](_0x585213);}return _0x43fddf[_0x7820('0x1a')](_0x585213)[_0x7820('0x1b')]();};}function respondWithResult(_0x3896c0,_0x14f55e){_0x14f55e=_0x14f55e||0xc8;return function(_0x3c56d1){if(_0x3c56d1){return _0x3896c0[_0x7820('0x1a')](_0x14f55e)[_0x7820('0x1c')](_0x3c56d1);}};}function respondWithFilteredResult(_0x15f934,_0x21d436){return function(_0x2a1eed){if(_0x2a1eed){var _0x4d5c46=typeof _0x21d436['offset']===_0x7820('0x1d')&&typeof _0x21d436[_0x7820('0x1e')]===_0x7820('0x1d');var _0x1ce9e5=_0x2a1eed['count'];var _0x1eb52c=_0x4d5c46?0x0:_0x21d436['offset'];var _0x35d7f2=_0x4d5c46?_0x2a1eed[_0x7820('0x1f')]:_0x21d436[_0x7820('0x20')]+_0x21d436[_0x7820('0x1e')];var _0x39360a;if(_0x35d7f2>=_0x1ce9e5){_0x35d7f2=_0x1ce9e5;_0x39360a=0xc8;}else{_0x39360a=0xce;}_0x15f934[_0x7820('0x1a')](_0x39360a);return _0x15f934['set'](_0x7820('0x21'),_0x1eb52c+'-'+_0x35d7f2+'/'+_0x1ce9e5)[_0x7820('0x1c')](_0x2a1eed);}return null;};}function patchUpdates(_0x3e1817){return function(_0x3a7db7){try{jsonpatch[_0x7820('0x22')](_0x3a7db7,_0x3e1817,!![]);}catch(_0x676c5b){return BPromise['reject'](_0x676c5b);}return _0x3a7db7[_0x7820('0x23')]();};}function saveUpdates(_0x1523ad,_0x2af63a){return function(_0x53f997){if(_0x53f997){return _0x53f997[_0x7820('0x24')](_0x1523ad)[_0x7820('0x25')](function(_0x51d4d5){return _0x51d4d5;});}return null;};}function removeEntity(_0x13322d,_0x2a6b94){return function(_0x35104e){if(_0x35104e){return _0x35104e[_0x7820('0x26')]()[_0x7820('0x25')](function(){var _0x6a7a83=_0x35104e[_0x7820('0x27')]({'plain':!![]});var _0x2ad345='IvrCampaigns';return db['UserProfileResource'][_0x7820('0x26')]({'where':{'type':_0x2ad345,'resourceId':_0x6a7a83['id']}})[_0x7820('0x25')](function(){return _0x35104e;});})[_0x7820('0x25')](function(){_0x13322d['status'](0xcc)[_0x7820('0x1b')]();});}};}function handleEntityNotFound(_0x5d8302,_0x4a37bb){return function(_0x4a6455){if(!_0x4a6455){_0x5d8302[_0x7820('0x19')](0x194);}return _0x4a6455;};}function handleError(_0x2e403c,_0x496914){_0x496914=_0x496914||0x1f4;return function(_0x2fe47f){logger[_0x7820('0x28')](_0x2fe47f[_0x7820('0x29')]);if(_0x2fe47f['name']){delete _0x2fe47f[_0x7820('0x2a')];}_0x2e403c['status'](_0x496914)[_0x7820('0x2b')](_0x2fe47f);};}exports['index']=function(_0x1888c3,_0x22a5bd){var _0x2e262a={},_0x1fbc77={},_0x57c217={'count':0x0,'rows':[]};var _0x68ca30=_[_0x7820('0x2c')](db[_0x7820('0x2d')][_0x7820('0x2e')],function(_0x1ed7b9){return{'name':_0x1ed7b9[_0x7820('0x2f')],'type':_0x1ed7b9[_0x7820('0x30')]['key']};});_0x1fbc77[_0x7820('0x31')]=_[_0x7820('0x2c')](_0x68ca30,_0x7820('0x2a'));_0x1fbc77['query']=_['keys'](_0x1888c3['query']);_0x1fbc77[_0x7820('0x32')]=_[_0x7820('0x33')](_0x1fbc77[_0x7820('0x31')],_0x1fbc77[_0x7820('0x34')]);_0x2e262a[_0x7820('0x35')]=_[_0x7820('0x33')](_0x1fbc77[_0x7820('0x31')],qs[_0x7820('0x36')](_0x1888c3[_0x7820('0x34')][_0x7820('0x36')]));_0x2e262a[_0x7820('0x35')]=_0x2e262a['attributes'][_0x7820('0x37')]?_0x2e262a['attributes']:_0x1fbc77[_0x7820('0x31')];if(!_0x1888c3[_0x7820('0x34')]['hasOwnProperty'](_0x7820('0x38'))){_0x2e262a[_0x7820('0x1e')]=qs['limit'](_0x1888c3[_0x7820('0x34')][_0x7820('0x1e')]);_0x2e262a['offset']=qs[_0x7820('0x20')](_0x1888c3[_0x7820('0x34')]['offset']);}_0x2e262a['order']=qs[_0x7820('0x39')](_0x1888c3[_0x7820('0x34')][_0x7820('0x39')]);_0x2e262a[_0x7820('0x3a')]=qs['filters'](_[_0x7820('0x3b')](_0x1888c3['query'],_0x1fbc77[_0x7820('0x32')]),_0x68ca30);if(_0x1888c3['query'][_0x7820('0x3c')]){_0x2e262a[_0x7820('0x3a')]=_['merge'](_0x2e262a[_0x7820('0x3a')],{'$or':_['map'](_0x68ca30,function(_0x3e3c38){if(_0x3e3c38[_0x7820('0x30')]!==_0x7820('0x3d')){var _0x2686b4={};_0x2686b4[_0x3e3c38['name']]={'$like':'%'+_0x1888c3['query']['filter']+'%'};return _0x2686b4;}})});}_0x2e262a=_[_0x7820('0x3e')]({},_0x2e262a,_0x1888c3[_0x7820('0x3f')]);var _0xd7a3be={'where':_0x2e262a['where']};return db[_0x7820('0x2d')][_0x7820('0x1f')](_0xd7a3be)[_0x7820('0x25')](function(_0x19a39e){_0x57c217[_0x7820('0x1f')]=_0x19a39e;if(_0x1888c3[_0x7820('0x34')][_0x7820('0x40')]){_0x2e262a[_0x7820('0x41')]=[{'all':!![]}];}return db[_0x7820('0x2d')][_0x7820('0x42')](_0x2e262a);})[_0x7820('0x25')](function(_0x6de3f4){_0x57c217[_0x7820('0x43')]=_0x6de3f4;return _0x57c217;})['then'](respondWithFilteredResult(_0x22a5bd,_0x2e262a))[_0x7820('0x44')](handleError(_0x22a5bd,null));};exports[_0x7820('0x45')]=function(_0x4e1f22,_0x5b3f78){var _0x32e3e4={'raw':![],'where':{'id':_0x4e1f22[_0x7820('0x46')]['id']}},_0x1e4432={};_0x1e4432[_0x7820('0x31')]=_[_0x7820('0x47')](db['Campaign'][_0x7820('0x2e')]);_0x1e4432['query']=_[_0x7820('0x47')](_0x4e1f22[_0x7820('0x34')]);_0x1e4432[_0x7820('0x32')]=_[_0x7820('0x33')](_0x1e4432[_0x7820('0x31')],_0x1e4432[_0x7820('0x34')]);_0x32e3e4[_0x7820('0x35')]=_[_0x7820('0x33')](_0x1e4432[_0x7820('0x31')],qs['fields'](_0x4e1f22['query'][_0x7820('0x36')]));_0x32e3e4[_0x7820('0x35')]=_0x32e3e4[_0x7820('0x35')][_0x7820('0x37')]?_0x32e3e4['attributes']:_0x1e4432['model'];if(_0x4e1f22[_0x7820('0x34')][_0x7820('0x40')]){_0x32e3e4[_0x7820('0x41')]=[{'all':!![]}];}_0x32e3e4=_[_0x7820('0x3e')]({},_0x32e3e4,_0x4e1f22['options']);return db['Campaign']['find'](_0x32e3e4)[_0x7820('0x25')](handleEntityNotFound(_0x5b3f78,null))[_0x7820('0x25')](respondWithResult(_0x5b3f78,null))[_0x7820('0x44')](handleError(_0x5b3f78,null));};exports[_0x7820('0x48')]=function(_0xd225c7,_0xddfcd){return db['Campaign'][_0x7820('0x48')](_0xd225c7[_0x7820('0x49')],{})[_0x7820('0x25')](function(_0x51e62e){var _0xcb01c=_0xd225c7[_0x7820('0x4a')][_0x7820('0x27')]({'plain':!![]});if(!_0xcb01c)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0xcb01c['role']===_0x7820('0x4a')){var _0x5ac51c=_0x51e62e[_0x7820('0x27')]({'plain':!![]});var _0x40532f=_0x7820('0x4b');return db['UserProfileSection'][_0x7820('0x4c')]({'where':{'name':_0x40532f,'userProfileId':_0xcb01c['userProfileId']},'raw':!![]})['then'](function(_0x1ffcf6){if(_0x1ffcf6&&_0x1ffcf6['autoAssociation']===0x0){return db[_0x7820('0x4d')][_0x7820('0x48')]({'name':_0x5ac51c[_0x7820('0x2a')],'resourceId':_0x5ac51c['id'],'type':_0x1ffcf6['name'],'sectionId':_0x1ffcf6['id']},{})[_0x7820('0x25')](function(){return _0x51e62e;});}else{return _0x51e62e;}})[_0x7820('0x44')](function(_0x2f0dca){logger['error'](_0x7820('0x4e'),_0x2f0dca);throw _0x2f0dca;});}return _0x51e62e;})[_0x7820('0x25')](respondWithResult(_0xddfcd,0xc9))[_0x7820('0x44')](handleError(_0xddfcd,null));};exports['clone']=function(_0x4255ca,_0x48f349){var _0x3864f2={'where':{'id':_0x4255ca[_0x7820('0x46')]['id']}},_0x277272={};_0x277272['model']=_[_0x7820('0x47')](db['Campaign']['rawAttributes']);_0x3864f2[_0x7820('0x35')]=_[_0x7820('0x33')](_0x277272[_0x7820('0x31')],qs[_0x7820('0x36')](_0x4255ca[_0x7820('0x34')]['fields']));_0x3864f2[_0x7820('0x35')]=_0x3864f2[_0x7820('0x35')][_0x7820('0x37')]?_0x3864f2['attributes']:_0x277272[_0x7820('0x31')];if(_0x4255ca[_0x7820('0x34')][_0x7820('0x40')]){_0x3864f2['include']=[{'all':!![]}];}_0x3864f2=_[_0x7820('0x3e')]({},_0x3864f2,_0x4255ca['options']);return db['Campaign'][_0x7820('0x4c')](_0x3864f2)[_0x7820('0x25')](handleEntityNotFound(_0x48f349,null))[_0x7820('0x25')](function(_0x546611){if(_0x546611){var _0x1184be=_0x546611[_0x7820('0x27')]({'plain':!![]});_0x1184be=qs[_0x7820('0x4f')](_0x1184be,['id','createdAt',_0x7820('0x50')]);_0x4255ca[_0x7820('0x49')]=_[_0x7820('0x4f')](_0x4255ca[_0x7820('0x49')],['id','createdAt',_0x7820('0x50')]);return db['Campaign'][_0x7820('0x48')](_['merge'](_0x1184be,_0x4255ca[_0x7820('0x49')]),{'include':_0x4255ca[_0x7820('0x34')][_0x7820('0x40')]?[{'all':!![]}]:undefined})[_0x7820('0x25')](function(_0x1ab8da){var _0x1754a8=_0x4255ca['user']['get']({'plain':!![]});if(!_0x1754a8)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x1754a8[_0x7820('0x51')]===_0x7820('0x4a')){var _0xea0793=_0x1ab8da[_0x7820('0x27')]({'plain':!![]});var _0x101f2a=_0x7820('0x4b');return db[_0x7820('0x52')][_0x7820('0x4c')]({'where':{'name':_0x101f2a,'userProfileId':_0x1754a8[_0x7820('0x53')]},'raw':!![]})[_0x7820('0x25')](function(_0x1f7a53){if(_0x1f7a53&&_0x1f7a53[_0x7820('0x54')]===0x0){return db[_0x7820('0x4d')][_0x7820('0x48')]({'name':_0xea0793[_0x7820('0x2a')],'resourceId':_0xea0793['id'],'type':_0x1f7a53[_0x7820('0x2a')],'sectionId':_0x1f7a53['id']},{})[_0x7820('0x25')](function(){return _0x1ab8da;});}else{return _0x1ab8da;}})['catch'](function(_0x295482){logger[_0x7820('0x28')](_0x7820('0x4e'),_0x295482);throw _0x295482;});}return _0x1ab8da;});}})[_0x7820('0x25')](respondWithResult(_0x48f349,0xc9))[_0x7820('0x44')](handleError(_0x48f349,null));};exports[_0x7820('0x24')]=function(_0x2417b3,_0xa7701f){if(_0x2417b3[_0x7820('0x49')]['id']){delete _0x2417b3[_0x7820('0x49')]['id'];}return db[_0x7820('0x2d')][_0x7820('0x4c')]({'where':{'id':_0x2417b3[_0x7820('0x46')]['id']}})['then'](handleEntityNotFound(_0xa7701f,null))[_0x7820('0x25')](saveUpdates(_0x2417b3['body'],null))[_0x7820('0x25')](respondWithResult(_0xa7701f,null))[_0x7820('0x44')](handleError(_0xa7701f,null));};exports[_0x7820('0x26')]=function(_0x547ce9,_0x58fb4e){return db['Campaign'][_0x7820('0x4c')]({'where':{'id':_0x547ce9[_0x7820('0x46')]['id']}})[_0x7820('0x25')](handleEntityNotFound(_0x58fb4e,null))['then'](removeEntity(_0x58fb4e,null))['catch'](handleError(_0x58fb4e,null));};exports[_0x7820('0x55')]=function(_0x378d1e,_0x4251e1,_0x27ddd6){var _0xf5a110={'raw':!![],'where':{}};var _0x46c41e={};var _0x2e672a={'count':0x0,'rows':[]};return db[_0x7820('0x2d')][_0x7820('0x56')]({'where':{'id':_0x378d1e['params']['id']}})[_0x7820('0x25')](handleEntityNotFound(_0x4251e1,null))[_0x7820('0x25')](function(_0x40cd9f){if(_0x40cd9f){_0x46c41e[_0x7820('0x31')]=_['keys'](db[_0x7820('0x57')][_0x7820('0x2e')]);_0x46c41e[_0x7820('0x34')]=_[_0x7820('0x47')](_0x378d1e[_0x7820('0x34')]);_0x46c41e[_0x7820('0x32')]=_[_0x7820('0x33')](_0x46c41e['model'],_0x46c41e[_0x7820('0x34')]);_0xf5a110[_0x7820('0x35')]=_['intersection'](_0x46c41e[_0x7820('0x31')],qs[_0x7820('0x36')](_0x378d1e[_0x7820('0x34')][_0x7820('0x36')]));_0xf5a110[_0x7820('0x35')]=_0xf5a110[_0x7820('0x35')][_0x7820('0x37')]?_0xf5a110[_0x7820('0x35')]:_0x46c41e['model'];if(!_0x378d1e[_0x7820('0x34')][_0x7820('0x58')](_0x7820('0x38'))){_0xf5a110[_0x7820('0x1e')]=qs[_0x7820('0x1e')](_0x378d1e['query']['limit']);_0xf5a110[_0x7820('0x20')]=qs[_0x7820('0x20')](_0x378d1e[_0x7820('0x34')]['offset']);}_0xf5a110[_0x7820('0x59')]=qs[_0x7820('0x39')](_0x378d1e[_0x7820('0x34')][_0x7820('0x39')]);_0xf5a110['where']=qs[_0x7820('0x32')](_[_0x7820('0x3b')](_0x378d1e[_0x7820('0x34')],_0x46c41e['filters']));_0xf5a110['where'][_0x7820('0x5a')]=_0x40cd9f['id'];if(_0x378d1e['query'][_0x7820('0x3c')]){_0xf5a110['where']=_[_0x7820('0x3e')](_0xf5a110[_0x7820('0x3a')],{'$or':_[_0x7820('0x2c')](_0xf5a110[_0x7820('0x35')],function(_0x48fc5e){var _0x193842={};_0x193842[_0x48fc5e]={'$like':'%'+_0x378d1e[_0x7820('0x34')][_0x7820('0x3c')]+'%'};return _0x193842;})});}_0xf5a110=_[_0x7820('0x3e')]({},_0xf5a110,_0x378d1e[_0x7820('0x3f')]);return db[_0x7820('0x57')]['count']({'where':_0xf5a110['where']})[_0x7820('0x25')](function(_0x2fc7b0){_0x2e672a[_0x7820('0x1f')]=_0x2fc7b0;if(_0x378d1e[_0x7820('0x34')][_0x7820('0x40')]){_0xf5a110[_0x7820('0x41')]=[{'all':!![]}];}return db[_0x7820('0x57')][_0x7820('0x42')](_0xf5a110);})['then'](function(_0x20c011){_0x2e672a[_0x7820('0x43')]=_0x20c011;return _0x2e672a;});}})['then'](respondWithFilteredResult(_0x4251e1,_0xf5a110))[_0x7820('0x44')](handleError(_0x4251e1,null));};exports['getHopperHistories']=function(_0x35b7a5,_0x566ccf,_0x32ad18){var _0x337673={'raw':!![],'where':{}};var _0x5d37fc={};var _0x56582a={'count':0x0,'rows':[]};return db['Campaign'][_0x7820('0x56')]({'where':{'id':_0x35b7a5[_0x7820('0x46')]['id']}})[_0x7820('0x25')](handleEntityNotFound(_0x566ccf,null))[_0x7820('0x25')](function(_0x59cd09){if(_0x59cd09){_0x5d37fc[_0x7820('0x31')]=_[_0x7820('0x47')](db[_0x7820('0x5b')]['rawAttributes']);_0x5d37fc['query']=_['keys'](_0x35b7a5[_0x7820('0x34')]);_0x5d37fc[_0x7820('0x32')]=_[_0x7820('0x33')](_0x5d37fc[_0x7820('0x31')],_0x5d37fc['query']);_0x337673[_0x7820('0x35')]=_[_0x7820('0x33')](_0x5d37fc['model'],qs['fields'](_0x35b7a5[_0x7820('0x34')][_0x7820('0x36')]));_0x337673[_0x7820('0x35')]=_0x337673[_0x7820('0x35')][_0x7820('0x37')]?_0x337673[_0x7820('0x35')]:_0x5d37fc[_0x7820('0x31')];if(!_0x35b7a5[_0x7820('0x34')][_0x7820('0x58')]('nolimit')){_0x337673['limit']=qs[_0x7820('0x1e')](_0x35b7a5[_0x7820('0x34')][_0x7820('0x1e')]);_0x337673['offset']=qs[_0x7820('0x20')](_0x35b7a5[_0x7820('0x34')]['offset']);}_0x337673[_0x7820('0x59')]=qs[_0x7820('0x39')](_0x35b7a5[_0x7820('0x34')]['sort']);_0x337673[_0x7820('0x3a')]=qs['filters'](_[_0x7820('0x3b')](_0x35b7a5[_0x7820('0x34')],_0x5d37fc[_0x7820('0x32')]));_0x337673['where']['CampaignId']=_0x59cd09['id'];if(_0x35b7a5[_0x7820('0x34')][_0x7820('0x3c')]){_0x337673['where']=_[_0x7820('0x3e')](_0x337673[_0x7820('0x3a')],{'$or':_['map'](_0x337673[_0x7820('0x35')],function(_0x30f116){var _0x387a52={};_0x387a52[_0x30f116]={'$like':'%'+_0x35b7a5[_0x7820('0x34')][_0x7820('0x3c')]+'%'};return _0x387a52;})});}_0x337673=_['merge']({},_0x337673,_0x35b7a5[_0x7820('0x3f')]);return db[_0x7820('0x5b')][_0x7820('0x1f')]({'where':_0x337673[_0x7820('0x3a')]})[_0x7820('0x25')](function(_0x17367b){_0x56582a[_0x7820('0x1f')]=_0x17367b;if(_0x35b7a5['query'][_0x7820('0x40')]){_0x337673[_0x7820('0x41')]=[{'all':!![]}];}return db[_0x7820('0x5b')]['findAll'](_0x337673);})[_0x7820('0x25')](function(_0x53fced){_0x56582a[_0x7820('0x43')]=_0x53fced;return _0x56582a;});}})[_0x7820('0x25')](respondWithFilteredResult(_0x566ccf,_0x337673))[_0x7820('0x44')](handleError(_0x566ccf,null));};exports[_0x7820('0x5c')]=function(_0x775eab,_0xf3ad2,_0x2a3f3b){var _0x30c680={'raw':!![],'where':{}};var _0x3b1340={};var _0x8fafaf={'count':0x0,'rows':[]};return db[_0x7820('0x2d')]['findOne']({'where':{'id':_0x775eab[_0x7820('0x46')]['id']}})[_0x7820('0x25')](handleEntityNotFound(_0xf3ad2,null))['then'](function(_0x38b0a5){if(_0x38b0a5){_0x3b1340[_0x7820('0x31')]=_[_0x7820('0x47')](db[_0x7820('0x5d')][_0x7820('0x2e')]);_0x3b1340[_0x7820('0x34')]=_[_0x7820('0x47')](_0x775eab[_0x7820('0x34')]);_0x3b1340[_0x7820('0x32')]=_['intersection'](_0x3b1340[_0x7820('0x31')],_0x3b1340[_0x7820('0x34')]);_0x30c680[_0x7820('0x35')]=_[_0x7820('0x33')](_0x3b1340[_0x7820('0x31')],qs[_0x7820('0x36')](_0x775eab[_0x7820('0x34')][_0x7820('0x36')]));_0x30c680[_0x7820('0x35')]=_0x30c680['attributes']['length']?_0x30c680['attributes']:_0x3b1340[_0x7820('0x31')];if(!_0x775eab['query'][_0x7820('0x58')](_0x7820('0x38'))){_0x30c680[_0x7820('0x1e')]=qs[_0x7820('0x1e')](_0x775eab['query'][_0x7820('0x1e')]);_0x30c680[_0x7820('0x20')]=qs[_0x7820('0x20')](_0x775eab[_0x7820('0x34')][_0x7820('0x20')]);}_0x30c680[_0x7820('0x59')]=qs[_0x7820('0x39')](_0x775eab[_0x7820('0x34')][_0x7820('0x39')]);_0x30c680['where']=qs[_0x7820('0x32')](_[_0x7820('0x3b')](_0x775eab[_0x7820('0x34')],_0x3b1340[_0x7820('0x32')]));_0x30c680[_0x7820('0x3a')][_0x7820('0x5a')]=_0x38b0a5['id'];if(_0x775eab['query'][_0x7820('0x3c')]){_0x30c680[_0x7820('0x3a')]=_['merge'](_0x30c680[_0x7820('0x3a')],{'$or':_[_0x7820('0x2c')](_0x30c680[_0x7820('0x35')],function(_0x2469d5){var _0x352419={};_0x352419[_0x2469d5]={'$like':'%'+_0x775eab['query'][_0x7820('0x3c')]+'%'};return _0x352419;})});}_0x30c680=_[_0x7820('0x3e')]({},_0x30c680,_0x775eab[_0x7820('0x3f')]);return db['CmHopperFinal'][_0x7820('0x1f')]({'where':_0x30c680[_0x7820('0x3a')]})['then'](function(_0x289443){_0x8fafaf[_0x7820('0x1f')]=_0x289443;if(_0x775eab[_0x7820('0x34')]['includeAll']){_0x30c680[_0x7820('0x41')]=[{'all':!![]}];}return db['CmHopperFinal'][_0x7820('0x42')](_0x30c680);})[_0x7820('0x25')](function(_0x512ec2){_0x8fafaf[_0x7820('0x43')]=_0x512ec2;return _0x8fafaf;});}})[_0x7820('0x25')](respondWithFilteredResult(_0xf3ad2,_0x30c680))['catch'](handleError(_0xf3ad2,null));};exports[_0x7820('0x5e')]=function(_0x135fd7,_0x1f750c,_0x18f135){var _0x48b789={'raw':!![],'where':{}};var _0x16c6a3={};var _0x5c68bd={'count':0x0,'rows':[]};return db[_0x7820('0x2d')][_0x7820('0x56')]({'where':{'id':_0x135fd7['params']['id']}})[_0x7820('0x25')](handleEntityNotFound(_0x1f750c,null))[_0x7820('0x25')](function(_0x484b05){if(_0x484b05){_0x16c6a3[_0x7820('0x31')]=_[_0x7820('0x47')](db['CmHopperBlack'][_0x7820('0x2e')]);_0x16c6a3[_0x7820('0x34')]=_[_0x7820('0x47')](_0x135fd7[_0x7820('0x34')]);_0x16c6a3[_0x7820('0x32')]=_[_0x7820('0x33')](_0x16c6a3[_0x7820('0x31')],_0x16c6a3[_0x7820('0x34')]);_0x48b789[_0x7820('0x35')]=_[_0x7820('0x33')](_0x16c6a3['model'],qs['fields'](_0x135fd7['query']['fields']));_0x48b789['attributes']=_0x48b789[_0x7820('0x35')][_0x7820('0x37')]?_0x48b789['attributes']:_0x16c6a3[_0x7820('0x31')];if(!_0x135fd7[_0x7820('0x34')][_0x7820('0x58')]('nolimit')){_0x48b789[_0x7820('0x1e')]=qs[_0x7820('0x1e')](_0x135fd7[_0x7820('0x34')][_0x7820('0x1e')]);_0x48b789[_0x7820('0x20')]=qs[_0x7820('0x20')](_0x135fd7['query'][_0x7820('0x20')]);}_0x48b789['order']=qs[_0x7820('0x39')](_0x135fd7['query']['sort']);_0x48b789[_0x7820('0x3a')]=qs[_0x7820('0x32')](_[_0x7820('0x3b')](_0x135fd7[_0x7820('0x34')],_0x16c6a3['filters']));_0x48b789['where']['CampaignId']=_0x484b05['id'];if(_0x135fd7[_0x7820('0x34')][_0x7820('0x3c')]){_0x48b789[_0x7820('0x3a')]=_[_0x7820('0x3e')](_0x48b789[_0x7820('0x3a')],{'$or':_[_0x7820('0x2c')](_0x48b789[_0x7820('0x35')],function(_0x4a853e){var _0x2e8a33={};_0x2e8a33[_0x4a853e]={'$like':'%'+_0x135fd7[_0x7820('0x34')][_0x7820('0x3c')]+'%'};return _0x2e8a33;})});}_0x48b789=_[_0x7820('0x3e')]({},_0x48b789,_0x135fd7[_0x7820('0x3f')]);return db[_0x7820('0x5f')][_0x7820('0x1f')]({'where':_0x48b789['where']})['then'](function(_0xc9183b){_0x5c68bd['count']=_0xc9183b;if(_0x135fd7[_0x7820('0x34')][_0x7820('0x40')]){_0x48b789[_0x7820('0x41')]=[{'all':!![]}];}return db[_0x7820('0x5f')][_0x7820('0x42')](_0x48b789);})[_0x7820('0x25')](function(_0x3c2b4b){_0x5c68bd['rows']=_0x3c2b4b;return _0x5c68bd;});}})[_0x7820('0x25')](respondWithFilteredResult(_0x1f750c,_0x48b789))[_0x7820('0x44')](handleError(_0x1f750c,null));};exports[_0x7820('0x60')]=function(_0x1ce453,_0x256914,_0x2d4021){var _0xb352aa={};var _0x5b0a4e={};var _0x17c457;var _0x175f2e;return db['Campaign'][_0x7820('0x56')]({'where':{'id':_0x1ce453[_0x7820('0x46')]['id']}})['then'](handleEntityNotFound(_0x256914,null))[_0x7820('0x25')](function(_0x4b13ff){if(_0x4b13ff){_0x17c457=_0x4b13ff;_0x5b0a4e[_0x7820('0x31')]=_['keys'](db[_0x7820('0x61')][_0x7820('0x2e')]);_0x5b0a4e[_0x7820('0x34')]=_[_0x7820('0x47')](_0x1ce453[_0x7820('0x34')]);_0x5b0a4e[_0x7820('0x32')]=_['intersection'](_0x5b0a4e['model'],_0x5b0a4e[_0x7820('0x34')]);_0xb352aa['attributes']=_['intersection'](_0x5b0a4e[_0x7820('0x31')],qs[_0x7820('0x36')](_0x1ce453[_0x7820('0x34')][_0x7820('0x36')]));_0xb352aa['attributes']=_0xb352aa['attributes'][_0x7820('0x37')]?_0xb352aa[_0x7820('0x35')]:_0x5b0a4e[_0x7820('0x31')];_0xb352aa[_0x7820('0x59')]=qs[_0x7820('0x39')](_0x1ce453[_0x7820('0x34')][_0x7820('0x39')]);_0xb352aa[_0x7820('0x3a')]=qs[_0x7820('0x32')](_[_0x7820('0x3b')](_0x1ce453['query'],_0x5b0a4e['filters']));if(_0x1ce453['query']['filter']){_0xb352aa[_0x7820('0x3a')]=_[_0x7820('0x3e')](_0xb352aa[_0x7820('0x3a')],{'$or':_[_0x7820('0x2c')](_0xb352aa[_0x7820('0x35')],function(_0x26bc72){var _0xaff09a={};_0xaff09a[_0x26bc72]={'$like':'%'+_0x1ce453[_0x7820('0x34')][_0x7820('0x3c')]+'%'};return _0xaff09a;})});}_0xb352aa=_[_0x7820('0x3e')]({},_0xb352aa,_0x1ce453[_0x7820('0x3f')]);return _0x17c457[_0x7820('0x60')](_0xb352aa);}})[_0x7820('0x25')](function(_0xcb8cea){if(_0xcb8cea){_0x175f2e=_0xcb8cea[_0x7820('0x37')];if(!_0x1ce453[_0x7820('0x34')][_0x7820('0x58')](_0x7820('0x38'))){_0xb352aa[_0x7820('0x1e')]=qs[_0x7820('0x1e')](_0x1ce453[_0x7820('0x34')][_0x7820('0x1e')]);_0xb352aa[_0x7820('0x20')]=qs['offset'](_0x1ce453[_0x7820('0x34')]['offset']);}return _0x17c457[_0x7820('0x60')](_0xb352aa);}})[_0x7820('0x25')](function(_0x2023e4){if(_0x2023e4){return _0x2023e4?{'count':_0x175f2e,'rows':_0x2023e4}:null;}})['then'](respondWithResult(_0x256914,null))[_0x7820('0x44')](handleError(_0x256914,null));};exports['addLists']=function(_0x2279ba,_0x205430,_0x5e6f27){var _0x3f0ac7,_0x5d0d18;return db[_0x7820('0x2d')]['find']({'where':{'id':_0x2279ba[_0x7820('0x46')]['id']}})[_0x7820('0x25')](handleEntityNotFound(_0x205430,null))[_0x7820('0x25')](function(_0x2dfef4){if(_0x2dfef4){_0x5d0d18=_0x2dfef4;return _0x2dfef4[_0x7820('0x62')](_0x2279ba[_0x7820('0x49')]['ids'],_[_0x7820('0x4f')](_0x2279ba[_0x7820('0x49')],[_0x7820('0x63'),'id'])||{});}return null;})['spread'](function(_0x4c96cc){var _0x567468;_0x3f0ac7=_0x4c96cc||[];var _0x47f324=[];if(_0x4c96cc){for(var _0x357d57=0x0;_0x357d57<_0x4c96cc[_0x7820('0x37')];_0x357d57+=0x1){var _0x3cc7bf=_0x4c96cc[_0x357d57][_0x7820('0x27')]({'plain':!![]});_0x5d0d18[_0x7820('0x64')]=_0x2279ba['body']['dialCheckDuplicateType']?_0x2279ba['body'][_0x7820('0x64')]:_0x5d0d18[_0x7820('0x64')];switch(_0x5d0d18['dialCheckDuplicateType']){case'always':_0x567468=squel['insert']()['into']('cm_hopper')[_0x7820('0x65')]([_0x7820('0x66'),_0x7820('0x67'),_0x7820('0x68'),_0x7820('0x69'),'CampaignId','createdAt',_0x7820('0x50')],squel[_0x7820('0x6a')]()[_0x7820('0x6b')]('phone',_0x7820('0x66'))[_0x7820('0x6b')]('NOW()',_0x7820('0x67'))[_0x7820('0x6b')]('id',_0x7820('0x68'))[_0x7820('0x6b')](_0x3cc7bf['CmListId'][_0x7820('0x6c')](),_0x7820('0x69'))[_0x7820('0x6b')](_0x2279ba[_0x7820('0x46')]['id'][_0x7820('0x6c')](),_0x7820('0x5a'))[_0x7820('0x6b')](_0x7820('0x6d'),_0x7820('0x6e'))[_0x7820('0x6b')](_0x7820('0x6d'),_0x7820('0x50'))[_0x7820('0x6f')](_0x7820('0x70'))[_0x7820('0x3a')]('deletedAt\x20IS\x20NULL')[_0x7820('0x3a')](_0x7820('0x71'),_0x3cc7bf[_0x7820('0x72')]['toString']())['where']('phone\x20IS\x20NOT\x20NULL')[_0x7820('0x3a')](_0x7820('0x73'),squel[_0x7820('0x6a')]()['field'](_0x7820('0x74'))[_0x7820('0x6f')](_0x7820('0x75'))[_0x7820('0x3a')](_0x7820('0x76'),_0x2279ba['params']['id']['toString']()))[_0x7820('0x3a')](_0x7820('0x73'),squel['select']()['field'](_0x7820('0x77'))[_0x7820('0x6f')]('cm_hopper')[_0x7820('0x3a')](_0x7820('0x76'),_0x2279ba['params']['id'][_0x7820('0x6c')]())))[_0x7820('0x6c')]();break;case _0x7820('0x78'):_0x567468=squel[_0x7820('0x79')]()[_0x7820('0x7a')](_0x7820('0x7b'))[_0x7820('0x65')](['phone','scheduledAt','ContactId',_0x7820('0x69'),_0x7820('0x5a'),_0x7820('0x6e'),_0x7820('0x50')],squel['select']()['field'](_0x7820('0x66'),'phone')[_0x7820('0x6b')](_0x7820('0x6d'),_0x7820('0x67'))[_0x7820('0x6b')]('id',_0x7820('0x68'))[_0x7820('0x6b')](_0x3cc7bf['CmListId']['toString'](),'ListId')[_0x7820('0x6b')](_0x2279ba[_0x7820('0x46')]['id'][_0x7820('0x6c')](),_0x7820('0x5a'))[_0x7820('0x6b')](_0x7820('0x6d'),_0x7820('0x6e'))[_0x7820('0x6b')]('NOW()','updatedAt')[_0x7820('0x6f')](_0x7820('0x70'))[_0x7820('0x3a')](_0x7820('0x7c'))[_0x7820('0x3a')](_0x7820('0x71'),_0x3cc7bf[_0x7820('0x72')][_0x7820('0x6c')]())[_0x7820('0x3a')](_0x7820('0x7d'))[_0x7820('0x3a')](_0x7820('0x73'),squel['select']()[_0x7820('0x6b')](_0x7820('0x77'))[_0x7820('0x6f')](_0x7820('0x7b'))[_0x7820('0x3a')](_0x7820('0x76'),_0x2279ba['params']['id'][_0x7820('0x6c')]())))['toString']();break;default:_0x567468=squel[_0x7820('0x79')]()[_0x7820('0x7a')](_0x7820('0x7b'))[_0x7820('0x65')](['phone',_0x7820('0x67'),_0x7820('0x68'),_0x7820('0x69'),_0x7820('0x5a'),'createdAt',_0x7820('0x50')],squel[_0x7820('0x6a')]()[_0x7820('0x6b')](_0x7820('0x66'),_0x7820('0x66'))[_0x7820('0x6b')](_0x7820('0x6d'),_0x7820('0x67'))[_0x7820('0x6b')]('id',_0x7820('0x68'))[_0x7820('0x6b')](_0x3cc7bf[_0x7820('0x72')][_0x7820('0x6c')](),_0x7820('0x69'))['field'](_0x2279ba[_0x7820('0x46')]['id'][_0x7820('0x6c')](),_0x7820('0x5a'))[_0x7820('0x6b')]('NOW()',_0x7820('0x6e'))['field'](_0x7820('0x6d'),'updatedAt')['from'](_0x7820('0x70'))[_0x7820('0x3a')](_0x7820('0x7c'))[_0x7820('0x3a')]('ListId\x20=\x20?',_0x3cc7bf[_0x7820('0x72')][_0x7820('0x6c')]())['where'](_0x7820('0x7d')))[_0x7820('0x6c')]();}_0x47f324[_0x7820('0x7e')](db['sequelize'][_0x7820('0x34')](_0x567468));}return BPromise[_0x7820('0x7f')](_0x47f324);}})['then'](function(){return _0x3f0ac7;})[_0x7820('0x25')](respondWithResult(_0x205430,null))['catch'](handleError(_0x205430,null));};exports[_0x7820('0x80')]=function(_0x54f1e3,_0x1ea17a,_0x25e3d3){return db['Campaign'][_0x7820('0x4c')]({'where':{'id':_0x54f1e3[_0x7820('0x46')]['id']}})[_0x7820('0x25')](handleEntityNotFound(_0x1ea17a,null))['then'](function(_0x1a4be6){if(_0x1a4be6){return _0x1a4be6[_0x7820('0x80')](_0x54f1e3[_0x7820('0x34')]['ids']);}})[_0x7820('0x25')](function(_0x2ab0ec){if(_0x2ab0ec){return db['CmHopper'][_0x7820('0x26')]({'where':{'ListId':_0x54f1e3[_0x7820('0x34')][_0x7820('0x63')],'CampaignId':_0x54f1e3[_0x7820('0x46')]['id']}})[_0x7820('0x25')](function(){return _0x2ab0ec;});}})[_0x7820('0x25')](respondWithStatusCode(_0x1ea17a,null))['catch'](handleError(_0x1ea17a,null));};exports['getBlackLists']=function(_0x11863b,_0x2a82a3,_0x1ddff2){var _0x22630f={};var _0x4f137a={};var _0x4ba1fe;var _0x4dbe56;return db['Campaign'][_0x7820('0x56')]({'where':{'id':_0x11863b[_0x7820('0x46')]['id']}})[_0x7820('0x25')](handleEntityNotFound(_0x2a82a3,null))['then'](function(_0x21ad7f){if(_0x21ad7f){_0x4ba1fe=_0x21ad7f;_0x4f137a[_0x7820('0x31')]=_[_0x7820('0x47')](db[_0x7820('0x61')][_0x7820('0x2e')]);_0x4f137a[_0x7820('0x34')]=_[_0x7820('0x47')](_0x11863b[_0x7820('0x34')]);_0x4f137a['filters']=_['intersection'](_0x4f137a[_0x7820('0x31')],_0x4f137a['query']);_0x22630f['attributes']=_[_0x7820('0x33')](_0x4f137a[_0x7820('0x31')],qs[_0x7820('0x36')](_0x11863b[_0x7820('0x34')][_0x7820('0x36')]));_0x22630f['attributes']=_0x22630f[_0x7820('0x35')][_0x7820('0x37')]?_0x22630f['attributes']:_0x4f137a['model'];_0x22630f[_0x7820('0x59')]=qs[_0x7820('0x39')](_0x11863b['query'][_0x7820('0x39')]);_0x22630f[_0x7820('0x3a')]=qs['filters'](_[_0x7820('0x3b')](_0x11863b[_0x7820('0x34')],_0x4f137a[_0x7820('0x32')]));if(_0x11863b[_0x7820('0x34')][_0x7820('0x3c')]){_0x22630f['where']=_[_0x7820('0x3e')](_0x22630f[_0x7820('0x3a')],{'$or':_[_0x7820('0x2c')](_0x22630f[_0x7820('0x35')],function(_0x2fd00d){var _0x526cef={};_0x526cef[_0x2fd00d]={'$like':'%'+_0x11863b['query']['filter']+'%'};return _0x526cef;})});}_0x22630f=_[_0x7820('0x3e')]({},_0x22630f,_0x11863b[_0x7820('0x3f')]);return _0x4ba1fe[_0x7820('0x81')](_0x22630f);}})['then'](function(_0x543e88){if(_0x543e88){_0x4dbe56=_0x543e88[_0x7820('0x37')];if(!_0x11863b[_0x7820('0x34')]['hasOwnProperty'](_0x7820('0x38'))){_0x22630f[_0x7820('0x1e')]=qs[_0x7820('0x1e')](_0x11863b[_0x7820('0x34')][_0x7820('0x1e')]);_0x22630f['offset']=qs[_0x7820('0x20')](_0x11863b[_0x7820('0x34')][_0x7820('0x20')]);}return _0x4ba1fe[_0x7820('0x81')](_0x22630f);}})[_0x7820('0x25')](function(_0x4099df){if(_0x4099df){return _0x4099df?{'count':_0x4dbe56,'rows':_0x4099df}:null;}})[_0x7820('0x25')](respondWithResult(_0x2a82a3,null))[_0x7820('0x44')](handleError(_0x2a82a3,null));};exports[_0x7820('0x82')]=function(_0x5e474f,_0x47f968,_0x4125cd){var _0x8f6f4a,_0x3b7561;return db[_0x7820('0x2d')][_0x7820('0x4c')]({'where':{'id':_0x5e474f['params']['id']}})['then'](handleEntityNotFound(_0x47f968,null))[_0x7820('0x25')](function(_0x3015bd){if(_0x3015bd){_0x3b7561=_0x3015bd;return _0x3015bd[_0x7820('0x82')](_0x5e474f[_0x7820('0x49')]['ids'],_[_0x7820('0x4f')](_0x5e474f[_0x7820('0x49')],[_0x7820('0x63'),'id'])||{});}return null;})[_0x7820('0x83')](function(_0x15bff4){var _0x1528d4;_0x8f6f4a=_0x15bff4||[];var _0x392c68=[];if(_0x15bff4){for(var _0x456734=0x0;_0x456734<_0x15bff4[_0x7820('0x37')];_0x456734+=0x1){var _0x4ec390=_0x15bff4[_0x456734][_0x7820('0x27')]({'plain':!![]});_0x1528d4=squel[_0x7820('0x79')]()[_0x7820('0x7a')](_0x7820('0x84'))[_0x7820('0x65')]([_0x7820('0x66'),_0x7820('0x68'),'ListId',_0x7820('0x5a'),_0x7820('0x6e'),_0x7820('0x50')],squel[_0x7820('0x6a')]()[_0x7820('0x6b')](_0x7820('0x66'),'phone')[_0x7820('0x6b')]('id',_0x7820('0x68'))['field'](_0x4ec390['CmListId'][_0x7820('0x6c')](),_0x7820('0x69'))[_0x7820('0x6b')](_0x5e474f[_0x7820('0x46')]['id'][_0x7820('0x6c')](),'CampaignId')[_0x7820('0x6b')]('NOW()','createdAt')['field']('NOW()',_0x7820('0x50'))[_0x7820('0x6f')](_0x7820('0x70'))[_0x7820('0x3a')](_0x7820('0x7c'))[_0x7820('0x3a')](_0x7820('0x71'),_0x4ec390[_0x7820('0x72')][_0x7820('0x6c')]())['where'](_0x7820('0x7d')))['toString']();_0x392c68[_0x7820('0x7e')](db['sequelize'][_0x7820('0x34')](_0x1528d4));}return BPromise['all'](_0x392c68);}})[_0x7820('0x25')](function(){return _0x8f6f4a;})[_0x7820('0x25')](respondWithResult(_0x47f968,null))[_0x7820('0x44')](handleError(_0x47f968,null));};exports[_0x7820('0x85')]=function(_0x47de62,_0x4a7b12,_0x5034d0){return db[_0x7820('0x2d')][_0x7820('0x4c')]({'where':{'id':_0x47de62[_0x7820('0x46')]['id']}})[_0x7820('0x25')](handleEntityNotFound(_0x4a7b12,null))[_0x7820('0x25')](function(_0x1d5172){if(_0x1d5172){return _0x1d5172['removeBlackLists'](_0x47de62[_0x7820('0x34')][_0x7820('0x63')]);}})[_0x7820('0x25')](function(_0x249d2b){if(_0x249d2b){return db[_0x7820('0x5f')][_0x7820('0x26')]({'where':{'ListId':_0x47de62[_0x7820('0x34')][_0x7820('0x63')],'CampaignId':_0x47de62[_0x7820('0x46')]['id']}})['then'](function(){return _0x249d2b;});}})['then'](respondWithStatusCode(_0x4a7b12,null))[_0x7820('0x44')](handleError(_0x4a7b12,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7a54=['../../config/logger','moment','bluebird','path','rimraf','../../config/environment','./campaign.attributes','exports','Campaign','campaigns','lodash','util'];(function(_0x2c7f80,_0x5da68e){var _0x413d06=function(_0x1aef9a){while(--_0x1aef9a){_0x2c7f80['push'](_0x2c7f80['shift']());}};_0x413d06(++_0x5da68e);}(_0x7a54,0x106));var _0x47a5=function(_0x4c8b56,_0xff4ac1){_0x4c8b56=_0x4c8b56-0x0;var _0x205655=_0x7a54[_0x4c8b56];return _0x205655;};'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
+var _0x7a54=['../../config/logger','moment','bluebird','path','rimraf','../../config/environment','./campaign.attributes','exports','Campaign','campaigns','lodash','util'];(function(_0x2245c7,_0x47951d){var _0x267daa=function(_0x21db85){while(--_0x21db85){_0x2245c7['push'](_0x2245c7['shift']());}};_0x267daa(++_0x47951d);}(_0x7a54,0x106));var _0x47a5=function(_0x2f7578,_0x12596c){_0x2f7578=_0x2f7578-0x0;var _0x4cd686=_0x7a54[_0x2f7578];return _0x4cd686;};'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(_0x213bba,_0x490ec2){var _0x32fcd5=function(_0x192cdb){while(--_0x192cdb){_0x213bba['push'](_0x213bba['shift']());}};_0x32fcd5(++_0x490ec2);}(_0x303a,0x1a0));var _0xa303=function(_0x1e5a59,_0x22d345){_0x1e5a59=_0x1e5a59-0x0;var _0x4ca834=_0x303a[_0x1e5a59];return _0x4ca834;};'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 _0x2504=['../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','request','then','info','request\x20sent','debug','error','code','Campaign,\x20%s,\x20%s','message','result','catch','GetCampaign','findAll','raw','options','where','attributes','limit','map','include','model','stringify','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb'];(function(_0x3bf83f,_0x181cac){var _0x22c4a9=function(_0xb3ff0d){while(--_0xb3ff0d){_0x3bf83f['push'](_0x3bf83f['shift']());}};_0x22c4a9(++_0x181cac);}(_0x2504,0xee));var _0x4250=function(_0x4b0af5,_0x2c563c){_0x4b0af5=_0x4b0af5-0x0;var _0x4f036a=_0x2504[_0x4b0af5];return _0x4f036a;};'use strict';var _=require(_0x4250('0x0'));var util=require(_0x4250('0x1'));var moment=require(_0x4250('0x2'));var BPromise=require(_0x4250('0x3'));var rs=require(_0x4250('0x4'));var fs=require('fs');var Redis=require(_0x4250('0x5'));var db=require(_0x4250('0x6'))['db'];var utils=require(_0x4250('0x7'));var logger=require(_0x4250('0x8'))(_0x4250('0x9'));var config=require(_0x4250('0xa'));var jayson=require(_0x4250('0xb'));var client=jayson['client'][_0x4250('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x4e177e,_0x5a5286,_0x370998){return new BPromise(function(_0x477312,_0x1a3b57){return client[_0x4250('0xd')](_0x4e177e,_0x370998)[_0x4250('0xe')](function(_0x51ea6f){logger[_0x4250('0xf')]('Campaign,\x20%s,\x20%s',_0x5a5286,_0x4250('0x10'));logger[_0x4250('0x11')]('Campaign,\x20%s,\x20%s,\x20%s',_0x5a5286,_0x4250('0x10'),JSON['stringify'](_0x51ea6f));if(_0x51ea6f['error']){if(_0x51ea6f[_0x4250('0x12')][_0x4250('0x13')]===0x1f4){logger[_0x4250('0x12')](_0x4250('0x14'),_0x5a5286,_0x51ea6f[_0x4250('0x12')]['message']);return _0x1a3b57(_0x51ea6f[_0x4250('0x12')][_0x4250('0x15')]);}logger[_0x4250('0x12')](_0x4250('0x14'),_0x5a5286,_0x51ea6f[_0x4250('0x12')][_0x4250('0x15')]);return _0x477312(_0x51ea6f['error'][_0x4250('0x15')]);}else{logger[_0x4250('0xf')](_0x4250('0x14'),_0x5a5286,_0x4250('0x10'));_0x477312(_0x51ea6f[_0x4250('0x16')][_0x4250('0x15')]);}})[_0x4250('0x17')](function(_0x4e70fc){logger[_0x4250('0x12')](_0x4250('0x14'),_0x5a5286,_0x4e70fc);_0x1a3b57(_0x4e70fc);});});}exports[_0x4250('0x18')]=function(_0x17a8a9){var _0x369010=this;return new Promise(function(_0x30e48c,_0x14d590){return db['Campaign'][_0x4250('0x19')]({'raw':_0x17a8a9['options']?_0x17a8a9['options'][_0x4250('0x1a')]===undefined?!![]:![]:!![],'where':_0x17a8a9[_0x4250('0x1b')]?_0x17a8a9[_0x4250('0x1b')][_0x4250('0x1c')]||null:null,'attributes':_0x17a8a9[_0x4250('0x1b')]?_0x17a8a9[_0x4250('0x1b')][_0x4250('0x1d')]||null:null,'limit':_0x17a8a9[_0x4250('0x1b')]?_0x17a8a9[_0x4250('0x1b')][_0x4250('0x1e')]||null:null,'include':_0x17a8a9[_0x4250('0x1b')]?_0x17a8a9[_0x4250('0x1b')]['include']?_[_0x4250('0x1f')](_0x17a8a9[_0x4250('0x1b')][_0x4250('0x20')],function(_0x523053){return{'model':db[_0x523053['model']],'as':_0x523053['as'],'attributes':_0x523053[_0x4250('0x1d')],'include':_0x523053[_0x4250('0x20')]?_[_0x4250('0x1f')](_0x523053[_0x4250('0x20')],function(_0x328ffb){return{'model':db[_0x328ffb['model']],'as':_0x328ffb['as'],'attributes':_0x328ffb[_0x4250('0x1d')],'include':_0x328ffb[_0x4250('0x20')]?_[_0x4250('0x1f')](_0x328ffb['include'],function(_0x5b155e){return{'model':db[_0x5b155e[_0x4250('0x21')]],'as':_0x5b155e['as'],'attributes':_0x5b155e['attributes']};}):[]};}):[]};}):[]:[]})[_0x4250('0xe')](function(_0x1c4fa5){logger[_0x4250('0xf')](_0x4250('0x18'),_0x17a8a9);logger[_0x4250('0x11')]('GetCampaign',_0x17a8a9,JSON[_0x4250('0x22')](_0x1c4fa5));_0x30e48c(_0x1c4fa5);})[_0x4250('0x17')](function(_0x48252b){logger[_0x4250('0x12')]('GetCampaign',_0x48252b[_0x4250('0x15')],_0x17a8a9);_0x14d590(_0x369010['error'](0x1f4,_0x48252b['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x217a=['get','/:id/hoppers','getHopperHistories','/:id/hopper_finals','getHopperBlacks','/:id/lists','getLists','/:id/blacklists','getBlackLists','post','create','/:id/clone','clone','put','update','delete','destroy','removeLists','removeBlackLists','exports','multer','util','path','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./campaign.controller','isAuthenticated','index','/:id','show'];(function(_0x456352,_0x1666e2){var _0xee32a1=function(_0x4d659e){while(--_0x4d659e){_0x456352['push'](_0x456352['shift']());}};_0xee32a1(++_0x1666e2);}(_0x217a,0x1ac));var _0xa217=function(_0x10d42f,_0x282a5f){_0x10d42f=_0x10d42f-0x0;var _0x2a9f0e=_0x217a[_0x10d42f];return _0x2a9f0e;};'use strict';var multer=require(_0xa217('0x0'));var util=require(_0xa217('0x1'));var path=require(_0xa217('0x2'));var timeout=require('connect-timeout');var express=require(_0xa217('0x3'));var router=express[_0xa217('0x4')]();var fs_extra=require(_0xa217('0x5'));var auth=require(_0xa217('0x6'));var interaction=require(_0xa217('0x7'));var config=require(_0xa217('0x8'));var controller=require(_0xa217('0x9'));router['get']('/',auth[_0xa217('0xa')](),controller[_0xa217('0xb')]);router['get'](_0xa217('0xc'),auth[_0xa217('0xa')](),controller[_0xa217('0xd')]);router[_0xa217('0xe')](_0xa217('0xf'),auth['isAuthenticated'](),controller['getHoppers']);router[_0xa217('0xe')]('/:id/hopper_histories',auth[_0xa217('0xa')](),controller[_0xa217('0x10')]);router[_0xa217('0xe')](_0xa217('0x11'),auth[_0xa217('0xa')](),controller['getHopperFinals']);router[_0xa217('0xe')]('/:id/hopper_black',auth[_0xa217('0xa')](),controller[_0xa217('0x12')]);router[_0xa217('0xe')](_0xa217('0x13'),auth[_0xa217('0xa')](),controller[_0xa217('0x14')]);router[_0xa217('0xe')](_0xa217('0x15'),auth['isAuthenticated'](),controller[_0xa217('0x16')]);router[_0xa217('0x17')]('/',auth['isAuthenticated'](),controller[_0xa217('0x18')]);router[_0xa217('0x17')](_0xa217('0x19'),auth[_0xa217('0xa')](),controller[_0xa217('0x1a')]);router[_0xa217('0x17')](_0xa217('0x13'),auth[_0xa217('0xa')](),controller['addLists']);router[_0xa217('0x17')]('/:id/blacklists',auth[_0xa217('0xa')](),controller['addBlackLists']);router[_0xa217('0x1b')]('/:id',auth[_0xa217('0xa')](),controller[_0xa217('0x1c')]);router[_0xa217('0x1d')](_0xa217('0xc'),auth[_0xa217('0xa')](),controller[_0xa217('0x1e')]);router['delete'](_0xa217('0x13'),auth[_0xa217('0xa')](),controller[_0xa217('0x1f')]);router[_0xa217('0x1d')](_0xa217('0x15'),auth['isAuthenticated'](),controller[_0xa217('0x20')]);module[_0xa217('0x21')]=router;
\ No newline at end of file
+var _0xfb09=['fs-extra','../../components/auth/service','../../config/environment','./campaign.controller','isAuthenticated','index','/:id','show','get','/:id/hoppers','/:id/hopper_histories','getHopperHistories','/:id/hopper_finals','getHopperFinals','/:id/hopper_black','/:id/lists','getBlackLists','post','create','clone','addLists','/:id/blacklists','addBlackLists','update','delete','destroy','removeLists','removeBlackLists','exports','multer','path','Router'];(function(_0x1c9ff2,_0x542d52){var _0x5840fd=function(_0x23f98f){while(--_0x23f98f){_0x1c9ff2['push'](_0x1c9ff2['shift']());}};_0x5840fd(++_0x542d52);}(_0xfb09,0x19d));var _0x9fb0=function(_0x7886be,_0x33d991){_0x7886be=_0x7886be-0x0;var _0x3d46d4=_0xfb09[_0x7886be];return _0x3d46d4;};'use strict';var multer=require(_0x9fb0('0x0'));var util=require('util');var path=require(_0x9fb0('0x1'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x9fb0('0x2')]();var fs_extra=require(_0x9fb0('0x3'));var auth=require(_0x9fb0('0x4'));var interaction=require('../../components/interaction/service');var config=require(_0x9fb0('0x5'));var controller=require(_0x9fb0('0x6'));router['get']('/',auth[_0x9fb0('0x7')](),controller[_0x9fb0('0x8')]);router['get'](_0x9fb0('0x9'),auth[_0x9fb0('0x7')](),controller[_0x9fb0('0xa')]);router[_0x9fb0('0xb')](_0x9fb0('0xc'),auth['isAuthenticated'](),controller['getHoppers']);router[_0x9fb0('0xb')](_0x9fb0('0xd'),auth['isAuthenticated'](),controller[_0x9fb0('0xe')]);router[_0x9fb0('0xb')](_0x9fb0('0xf'),auth[_0x9fb0('0x7')](),controller[_0x9fb0('0x10')]);router[_0x9fb0('0xb')](_0x9fb0('0x11'),auth[_0x9fb0('0x7')](),controller['getHopperBlacks']);router['get'](_0x9fb0('0x12'),auth[_0x9fb0('0x7')](),controller['getLists']);router['get']('/:id/blacklists',auth[_0x9fb0('0x7')](),controller[_0x9fb0('0x13')]);router[_0x9fb0('0x14')]('/',auth[_0x9fb0('0x7')](),controller[_0x9fb0('0x15')]);router[_0x9fb0('0x14')]('/:id/clone',auth[_0x9fb0('0x7')](),controller[_0x9fb0('0x16')]);router['post'](_0x9fb0('0x12'),auth[_0x9fb0('0x7')](),controller[_0x9fb0('0x17')]);router['post'](_0x9fb0('0x18'),auth[_0x9fb0('0x7')](),controller[_0x9fb0('0x19')]);router['put'](_0x9fb0('0x9'),auth[_0x9fb0('0x7')](),controller[_0x9fb0('0x1a')]);router[_0x9fb0('0x1b')](_0x9fb0('0x9'),auth[_0x9fb0('0x7')](),controller[_0x9fb0('0x1c')]);router[_0x9fb0('0x1b')](_0x9fb0('0x12'),auth[_0x9fb0('0x7')](),controller[_0x9fb0('0x1d')]);router['delete'](_0x9fb0('0x18'),auth['isAuthenticated'](),controller[_0x9fb0('0x1e')]);module[_0x9fb0('0x1f')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa352=['STRING','VIRTUAL','exports'];(function(_0xa5335b,_0x1ce8f8){var _0x33e68a=function(_0x28e3bc){while(--_0x28e3bc){_0xa5335b['push'](_0xa5335b['shift']());}};_0x33e68a(++_0x1ce8f8);}(_0xa352,0x179));var _0x2a35=function(_0x10dc60,_0x2fcce1){_0x10dc60=_0x10dc60-0x0;var _0x47dec5=_0xa352[_0x10dc60];return _0x47dec5;};'use strict';var Sequelize=require('sequelize');module[_0x2a35('0x0')]={'key':{'type':Sequelize['STRING'],'allowNull':![]},'value':{'type':Sequelize['TEXT'],'allowNull':![]},'description':{'type':Sequelize[_0x2a35('0x1')]},'name':{'type':Sequelize[_0x2a35('0x2')],'get':function(){return this['getDataValue']('key');}}};
\ No newline at end of file
+var _0x0fa9=['key','exports','TEXT','STRING','VIRTUAL','getDataValue'];(function(_0x45dbab,_0x553ce1){var _0x109d8d=function(_0x3fb4e2){while(--_0x3fb4e2){_0x45dbab['push'](_0x45dbab['shift']());}};_0x109d8d(++_0x553ce1);}(_0x0fa9,0x13f));var _0x90fa=function(_0x4ab819,_0x358f02){_0x4ab819=_0x4ab819-0x0;var _0x2ac0f6=_0x0fa9[_0x4ab819];return _0x2ac0f6;};'use strict';var Sequelize=require('sequelize');module[_0x90fa('0x0')]={'key':{'type':Sequelize['STRING'],'allowNull':![]},'value':{'type':Sequelize[_0x90fa('0x1')],'allowNull':![]},'description':{'type':Sequelize[_0x90fa('0x2')]},'name':{'type':Sequelize[_0x90fa('0x3')],'get':function(){return this[_0x90fa('0x4')](_0x90fa('0x5'));}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfe51=['offset','limit','set','json','apply','reject','update','then','get','UserProfileResource','destroy','stack','name','send','index','map','CannedAnswer','fieldName','model','query','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','filters','pick','filter','merge','options','includeAll','include','findAll','rows','catch','show','keys','rawAttributes','find','body','create','key','MailAccountId','SmsAccountId','OpenchannelAccountId','ChatWebsiteId','The\x20inserted\x20key\x20already\x20exists.','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','CannedAnswers','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','jsforce','desk.js','querystring','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','undefined','count'];(function(_0x3dea9d,_0x3a2929){var _0x302082=function(_0x4f850b){while(--_0x4f850b){_0x3dea9d['push'](_0x3dea9d['shift']());}};_0x302082(++_0x3a2929);}(_0xfe51,0x19a));var _0x1fe5=function(_0xae22d3,_0x1c013a){_0xae22d3=_0xae22d3-0x0;var _0x4dd119=_0xfe51[_0xae22d3];return _0x4dd119;};'use strict';var emlformat=require(_0x1fe5('0x0'));var rimraf=require(_0x1fe5('0x1'));var zipdir=require(_0x1fe5('0x2'));var jsonpatch=require(_0x1fe5('0x3'));var rp=require(_0x1fe5('0x4'));var moment=require(_0x1fe5('0x5'));var BPromise=require(_0x1fe5('0x6'));var Mustache=require(_0x1fe5('0x7'));var util=require(_0x1fe5('0x8'));var path=require(_0x1fe5('0x9'));var sox=require(_0x1fe5('0xa'));var csv=require(_0x1fe5('0xb'));var ejs=require(_0x1fe5('0xc'));var fs=require('fs');var fs_extra=require(_0x1fe5('0xd'));var _=require(_0x1fe5('0xe'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x1fe5('0xf'));var deskjs=require(_0x1fe5('0x10'));var toCsv=require(_0x1fe5('0xb'));var querystring=require(_0x1fe5('0x11'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x1fe5('0x12'));var qs=require(_0x1fe5('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x1fe5('0x14'));var logger=require('../../config/logger')('api');var utils=require(_0x1fe5('0x15'));var config=require(_0x1fe5('0x16'));var licenseUtil=require(_0x1fe5('0x17'));var db=require(_0x1fe5('0x18'))['db'];function respondWithStatusCode(_0x39e903,_0x45f5f5){_0x45f5f5=_0x45f5f5||0xcc;return function(_0x3b7b17){if(_0x3b7b17){return _0x39e903[_0x1fe5('0x19')](_0x45f5f5);}return _0x39e903[_0x1fe5('0x1a')](_0x45f5f5)[_0x1fe5('0x1b')]();};}function respondWithResult(_0x53b1d3,_0x38beb5){_0x38beb5=_0x38beb5||0xc8;return function(_0x42bc25){if(_0x42bc25){return _0x53b1d3['status'](_0x38beb5)['json'](_0x42bc25);}};}function respondWithFilteredResult(_0x1870bf,_0x9f1840){return function(_0x421e5d){if(_0x421e5d){var _0x1f2419=typeof _0x9f1840['offset']==='undefined'&&typeof _0x9f1840['limit']===_0x1fe5('0x1c');var _0x3607be=_0x421e5d[_0x1fe5('0x1d')];var _0x47d424=_0x1f2419?0x0:_0x9f1840['offset'];var _0x467afd=_0x1f2419?_0x421e5d[_0x1fe5('0x1d')]:_0x9f1840[_0x1fe5('0x1e')]+_0x9f1840[_0x1fe5('0x1f')];var _0x3f8829;if(_0x467afd>=_0x3607be){_0x467afd=_0x3607be;_0x3f8829=0xc8;}else{_0x3f8829=0xce;}_0x1870bf[_0x1fe5('0x1a')](_0x3f8829);return _0x1870bf[_0x1fe5('0x20')]('Content-Range',_0x47d424+'-'+_0x467afd+'/'+_0x3607be)[_0x1fe5('0x21')](_0x421e5d);}return null;};}function patchUpdates(_0x5edb61){return function(_0x2895ec){try{jsonpatch[_0x1fe5('0x22')](_0x2895ec,_0x5edb61,!![]);}catch(_0x29aa37){return BPromise[_0x1fe5('0x23')](_0x29aa37);}return _0x2895ec['save']();};}function saveUpdates(_0x1d58f3,_0x4b2c1e){return function(_0x2a6527){if(_0x2a6527){return _0x2a6527[_0x1fe5('0x24')](_0x1d58f3)[_0x1fe5('0x25')](function(_0x2978a9){return _0x2978a9;});}return null;};}function removeEntity(_0x3259b4,_0x28f3f3){return function(_0xca71e2){if(_0xca71e2){return _0xca71e2['destroy']()[_0x1fe5('0x25')](function(){var _0x46227f=_0xca71e2[_0x1fe5('0x26')]({'plain':!![]});var _0x21f2dc='CannedAnswers';return db[_0x1fe5('0x27')][_0x1fe5('0x28')]({'where':{'type':_0x21f2dc,'resourceId':_0x46227f['id']}})[_0x1fe5('0x25')](function(){return _0xca71e2;});})['then'](function(){_0x3259b4[_0x1fe5('0x1a')](0xcc)[_0x1fe5('0x1b')]();});}};}function handleEntityNotFound(_0x4461da,_0x19cc5c){return function(_0xccaf69){if(!_0xccaf69){_0x4461da[_0x1fe5('0x19')](0x194);}return _0xccaf69;};}function handleError(_0x35924c,_0x41e71d){_0x41e71d=_0x41e71d||0x1f4;return function(_0x1d2cea){logger['error'](_0x1d2cea[_0x1fe5('0x29')]);if(_0x1d2cea[_0x1fe5('0x2a')]){delete _0x1d2cea[_0x1fe5('0x2a')];}_0x35924c[_0x1fe5('0x1a')](_0x41e71d)[_0x1fe5('0x2b')](_0x1d2cea);};}exports[_0x1fe5('0x2c')]=function(_0x83cfe,_0x61b89f){var _0x4ad309={},_0x3109b1={},_0x75a005={'count':0x0,'rows':[]};var _0x435825=_[_0x1fe5('0x2d')](db[_0x1fe5('0x2e')]['rawAttributes'],function(_0x3c068d){return{'name':_0x3c068d[_0x1fe5('0x2f')],'type':_0x3c068d['type']['key']};});_0x3109b1[_0x1fe5('0x30')]=_[_0x1fe5('0x2d')](_0x435825,_0x1fe5('0x2a'));_0x3109b1[_0x1fe5('0x31')]=_['keys'](_0x83cfe[_0x1fe5('0x31')]);_0x3109b1['filters']=_[_0x1fe5('0x32')](_0x3109b1[_0x1fe5('0x30')],_0x3109b1[_0x1fe5('0x31')]);_0x4ad309[_0x1fe5('0x33')]=_['intersection'](_0x3109b1[_0x1fe5('0x30')],qs[_0x1fe5('0x34')](_0x83cfe[_0x1fe5('0x31')][_0x1fe5('0x34')]));_0x4ad309[_0x1fe5('0x33')]=_0x4ad309[_0x1fe5('0x33')][_0x1fe5('0x35')]?_0x4ad309[_0x1fe5('0x33')]:_0x3109b1[_0x1fe5('0x30')];if(!_0x83cfe[_0x1fe5('0x31')][_0x1fe5('0x36')](_0x1fe5('0x37'))){_0x4ad309['limit']=qs[_0x1fe5('0x1f')](_0x83cfe['query']['limit']);_0x4ad309[_0x1fe5('0x1e')]=qs[_0x1fe5('0x1e')](_0x83cfe[_0x1fe5('0x31')][_0x1fe5('0x1e')]);}_0x4ad309['order']=qs[_0x1fe5('0x38')](_0x83cfe[_0x1fe5('0x31')][_0x1fe5('0x38')]);_0x4ad309[_0x1fe5('0x39')]=qs[_0x1fe5('0x3a')](_[_0x1fe5('0x3b')](_0x83cfe[_0x1fe5('0x31')],_0x3109b1[_0x1fe5('0x3a')]),_0x435825);if(_0x83cfe[_0x1fe5('0x31')][_0x1fe5('0x3c')]){_0x4ad309[_0x1fe5('0x39')]=_['merge'](_0x4ad309['where'],{'$or':[{'key':{'$like':'%'+_0x83cfe['query'][_0x1fe5('0x3c')]+'%'}},{'value':{'$like':'%'+_0x83cfe[_0x1fe5('0x31')][_0x1fe5('0x3c')]+'%'}}]});}_0x4ad309=_[_0x1fe5('0x3d')]({},_0x4ad309,_0x83cfe[_0x1fe5('0x3e')]);var _0x4d2f56={'where':_0x4ad309['where']};return db[_0x1fe5('0x2e')][_0x1fe5('0x1d')](_0x4d2f56)['then'](function(_0x2c0696){_0x75a005[_0x1fe5('0x1d')]=_0x2c0696;if(_0x83cfe[_0x1fe5('0x31')][_0x1fe5('0x3f')]){_0x4ad309[_0x1fe5('0x40')]=[{'all':!![]}];}return db[_0x1fe5('0x2e')][_0x1fe5('0x41')](_0x4ad309);})['then'](function(_0x20c8ea){_0x75a005[_0x1fe5('0x42')]=_0x20c8ea;return _0x75a005;})[_0x1fe5('0x25')](respondWithFilteredResult(_0x61b89f,_0x4ad309))[_0x1fe5('0x43')](handleError(_0x61b89f,null));};exports[_0x1fe5('0x44')]=function(_0x295edc,_0x5b2c25){var _0x50fc70={'raw':!![],'where':{'id':_0x295edc['params']['id']}},_0x250b3e={};_0x250b3e[_0x1fe5('0x30')]=_[_0x1fe5('0x45')](db[_0x1fe5('0x2e')][_0x1fe5('0x46')]);_0x250b3e[_0x1fe5('0x31')]=_[_0x1fe5('0x45')](_0x295edc[_0x1fe5('0x31')]);_0x250b3e[_0x1fe5('0x3a')]=_['intersection'](_0x250b3e['model'],_0x250b3e[_0x1fe5('0x31')]);_0x50fc70[_0x1fe5('0x33')]=_[_0x1fe5('0x32')](_0x250b3e[_0x1fe5('0x30')],qs['fields'](_0x295edc[_0x1fe5('0x31')][_0x1fe5('0x34')]));_0x50fc70[_0x1fe5('0x33')]=_0x50fc70[_0x1fe5('0x33')][_0x1fe5('0x35')]?_0x50fc70['attributes']:_0x250b3e[_0x1fe5('0x30')];if(_0x295edc[_0x1fe5('0x31')][_0x1fe5('0x3f')]){_0x50fc70[_0x1fe5('0x40')]=[{'all':!![]}];}_0x50fc70=_[_0x1fe5('0x3d')]({},_0x50fc70,_0x295edc[_0x1fe5('0x3e')]);return db[_0x1fe5('0x2e')][_0x1fe5('0x47')](_0x50fc70)[_0x1fe5('0x25')](handleEntityNotFound(_0x5b2c25,null))[_0x1fe5('0x25')](respondWithResult(_0x5b2c25,null))['catch'](handleError(_0x5b2c25,null));};exports['update']=function(_0x110899,_0x47c522){if(_0x110899['body']['id']){delete _0x110899['body']['id'];}return db[_0x1fe5('0x2e')][_0x1fe5('0x47')]({'where':{'id':_0x110899['params']['id']}})[_0x1fe5('0x25')](handleEntityNotFound(_0x47c522,null))[_0x1fe5('0x25')](saveUpdates(_0x110899[_0x1fe5('0x48')],null))[_0x1fe5('0x25')](respondWithResult(_0x47c522,null))['catch'](handleError(_0x47c522,null));};exports['destroy']=function(_0x3c3026,_0x5ac391){return db[_0x1fe5('0x2e')]['find']({'where':{'id':_0x3c3026['params']['id']}})[_0x1fe5('0x25')](handleEntityNotFound(_0x5ac391,null))[_0x1fe5('0x25')](removeEntity(_0x5ac391,null))[_0x1fe5('0x43')](handleError(_0x5ac391,null));};exports[_0x1fe5('0x49')]=function(_0x2529fe,_0x3b008b){var _0x3759e9={'key':_0x2529fe['body'][_0x1fe5('0x4a')]};if(_0x2529fe[_0x1fe5('0x48')][_0x1fe5('0x4b')]){_0x3759e9[_0x1fe5('0x4b')]=_0x2529fe[_0x1fe5('0x48')][_0x1fe5('0x4b')];}else if(_0x2529fe['body'][_0x1fe5('0x4c')]){_0x3759e9['SmsAccountId']=_0x2529fe[_0x1fe5('0x48')]['SmsAccountId'];}else if(_0x2529fe[_0x1fe5('0x48')][_0x1fe5('0x4d')]){_0x3759e9[_0x1fe5('0x4d')]=_0x2529fe[_0x1fe5('0x48')][_0x1fe5('0x4d')];}else if(_0x2529fe['body'][_0x1fe5('0x4e')]){_0x3759e9[_0x1fe5('0x4e')]=_0x2529fe[_0x1fe5('0x48')]['ChatWebsiteId'];}return db[_0x1fe5('0x2e')][_0x1fe5('0x47')]({'where':_0x3759e9})[_0x1fe5('0x25')](function(_0x656b3f){if(_0x656b3f){throw new db['Sequelize']['ValidationError'](_0x1fe5('0x4f'));}return db['CannedAnswer']['create'](_0x2529fe[_0x1fe5('0x48')]);})[_0x1fe5('0x25')](function(_0x394a40){var _0x4c68de=_0x2529fe[_0x1fe5('0x50')]['get']({'plain':!![]});if(!_0x4c68de)throw new Error(_0x1fe5('0x51'));if(_0x4c68de[_0x1fe5('0x52')]===_0x1fe5('0x50')){var _0x4aa4a0=_0x394a40[_0x1fe5('0x26')]({'plain':!![]});return db[_0x1fe5('0x53')][_0x1fe5('0x47')]({'where':{'name':_0x1fe5('0x54'),'userProfileId':_0x4c68de[_0x1fe5('0x55')]},'raw':!![]})['then'](function(_0x4c7181){if(_0x4c7181&&_0x4c7181[_0x1fe5('0x56')]===0x0){return db[_0x1fe5('0x27')][_0x1fe5('0x49')]({'name':_0x4aa4a0[_0x1fe5('0x2a')],'resourceId':_0x4aa4a0['id'],'type':_0x4c7181['name'],'sectionId':_0x4c7181['id']},{})[_0x1fe5('0x25')](function(){return _0x394a40;});}else{return _0x394a40;}})[_0x1fe5('0x43')](function(_0x29ee4a){logger['error'](_0x1fe5('0x57'),_0x29ee4a);throw _0x29ee4a;});}return _0x394a40;})['then'](respondWithResult(_0x3b008b,0xc9))['catch'](handleError(_0x3b008b,null));};
\ No newline at end of file
+var _0x746a=['index','map','fieldName','key','query','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','options','CannedAnswer','count','includeAll','include','findAll','rows','catch','show','params','keys','find','body','MailAccountId','SmsAccountId','OpenchannelAccountId','ChatWebsiteId','ValidationError','The\x20inserted\x20key\x20already\x20exists.','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','userProfileId','autoAssociation','UserProfileResource','create','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','rimraf','fast-json-patch','moment','bluebird','mustache','util','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','sendStatus','status','end','offset','undefined','limit','Content-Range','apply','reject','save','then','get','CannedAnswers','destroy','stack','name','send'];(function(_0x7d25c8,_0x29fd0b){var _0x1eef84=function(_0x5e1910){while(--_0x5e1910){_0x7d25c8['push'](_0x7d25c8['shift']());}};_0x1eef84(++_0x29fd0b);}(_0x746a,0x83));var _0xa746=function(_0xe7125,_0x325cbc){_0xe7125=_0xe7125-0x0;var _0xc34c6b=_0x746a[_0xe7125];return _0xc34c6b;};'use strict';var emlformat=require(_0xa746('0x0'));var rimraf=require(_0xa746('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xa746('0x2'));var rp=require('request-promise');var moment=require(_0xa746('0x3'));var BPromise=require(_0xa746('0x4'));var Mustache=require(_0xa746('0x5'));var util=require(_0xa746('0x6'));var path=require('path');var sox=require('sox');var csv=require(_0xa746('0x7'));var ejs=require(_0xa746('0x8'));var fs=require('fs');var fs_extra=require(_0xa746('0x9'));var _=require('lodash');var squel=require(_0xa746('0xa'));var crypto=require(_0xa746('0xb'));var jsforce=require(_0xa746('0xc'));var deskjs=require(_0xa746('0xd'));var toCsv=require(_0xa746('0x7'));var querystring=require('querystring');var Papa=require(_0xa746('0xe'));var Redis=require(_0xa746('0xf'));var authService=require(_0xa746('0x10'));var qs=require(_0xa746('0x11'));var as=require(_0xa746('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xa746('0x13'))(_0xa746('0x14'));var utils=require(_0xa746('0x15'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x793dde,_0x673759){_0x673759=_0x673759||0xcc;return function(_0x190397){if(_0x190397){return _0x793dde[_0xa746('0x16')](_0x673759);}return _0x793dde[_0xa746('0x17')](_0x673759)[_0xa746('0x18')]();};}function respondWithResult(_0x3a12a8,_0x29fdac){_0x29fdac=_0x29fdac||0xc8;return function(_0x37f1eb){if(_0x37f1eb){return _0x3a12a8[_0xa746('0x17')](_0x29fdac)['json'](_0x37f1eb);}};}function respondWithFilteredResult(_0x5e0379,_0x1a2a15){return function(_0x584dd2){if(_0x584dd2){var _0x37b129=typeof _0x1a2a15[_0xa746('0x19')]===_0xa746('0x1a')&&typeof _0x1a2a15[_0xa746('0x1b')]===_0xa746('0x1a');var _0x35b514=_0x584dd2['count'];var _0x105310=_0x37b129?0x0:_0x1a2a15['offset'];var _0x85d768=_0x37b129?_0x584dd2['count']:_0x1a2a15[_0xa746('0x19')]+_0x1a2a15[_0xa746('0x1b')];var _0x288935;if(_0x85d768>=_0x35b514){_0x85d768=_0x35b514;_0x288935=0xc8;}else{_0x288935=0xce;}_0x5e0379[_0xa746('0x17')](_0x288935);return _0x5e0379['set'](_0xa746('0x1c'),_0x105310+'-'+_0x85d768+'/'+_0x35b514)['json'](_0x584dd2);}return null;};}function patchUpdates(_0x44f40e){return function(_0x2ba5f4){try{jsonpatch[_0xa746('0x1d')](_0x2ba5f4,_0x44f40e,!![]);}catch(_0x13094e){return BPromise[_0xa746('0x1e')](_0x13094e);}return _0x2ba5f4[_0xa746('0x1f')]();};}function saveUpdates(_0x5ecf53,_0x180db8){return function(_0x490486){if(_0x490486){return _0x490486['update'](_0x5ecf53)[_0xa746('0x20')](function(_0x1d67a9){return _0x1d67a9;});}return null;};}function removeEntity(_0x17e983,_0x1e8998){return function(_0x4083ff){if(_0x4083ff){return _0x4083ff['destroy']()[_0xa746('0x20')](function(){var _0x2076bf=_0x4083ff[_0xa746('0x21')]({'plain':!![]});var _0x2a865f=_0xa746('0x22');return db['UserProfileResource'][_0xa746('0x23')]({'where':{'type':_0x2a865f,'resourceId':_0x2076bf['id']}})[_0xa746('0x20')](function(){return _0x4083ff;});})[_0xa746('0x20')](function(){_0x17e983['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x481b2c,_0x55aa2e){return function(_0x5acdcd){if(!_0x5acdcd){_0x481b2c['sendStatus'](0x194);}return _0x5acdcd;};}function handleError(_0x249261,_0x525c41){_0x525c41=_0x525c41||0x1f4;return function(_0x480990){logger['error'](_0x480990[_0xa746('0x24')]);if(_0x480990[_0xa746('0x25')]){delete _0x480990[_0xa746('0x25')];}_0x249261[_0xa746('0x17')](_0x525c41)[_0xa746('0x26')](_0x480990);};}exports[_0xa746('0x27')]=function(_0x5d987b,_0x5d6ed1){var _0x44b95c={},_0x107865={},_0x5a3b8e={'count':0x0,'rows':[]};var _0x3a5ee1=_[_0xa746('0x28')](db['CannedAnswer']['rawAttributes'],function(_0x10fc1c){return{'name':_0x10fc1c[_0xa746('0x29')],'type':_0x10fc1c['type'][_0xa746('0x2a')]};});_0x107865['model']=_['map'](_0x3a5ee1,_0xa746('0x25'));_0x107865[_0xa746('0x2b')]=_['keys'](_0x5d987b[_0xa746('0x2b')]);_0x107865[_0xa746('0x2c')]=_[_0xa746('0x2d')](_0x107865[_0xa746('0x2e')],_0x107865[_0xa746('0x2b')]);_0x44b95c[_0xa746('0x2f')]=_[_0xa746('0x2d')](_0x107865[_0xa746('0x2e')],qs[_0xa746('0x30')](_0x5d987b[_0xa746('0x2b')][_0xa746('0x30')]));_0x44b95c[_0xa746('0x2f')]=_0x44b95c[_0xa746('0x2f')][_0xa746('0x31')]?_0x44b95c['attributes']:_0x107865[_0xa746('0x2e')];if(!_0x5d987b[_0xa746('0x2b')][_0xa746('0x32')](_0xa746('0x33'))){_0x44b95c['limit']=qs[_0xa746('0x1b')](_0x5d987b[_0xa746('0x2b')]['limit']);_0x44b95c[_0xa746('0x19')]=qs[_0xa746('0x19')](_0x5d987b[_0xa746('0x2b')]['offset']);}_0x44b95c['order']=qs['sort'](_0x5d987b[_0xa746('0x2b')][_0xa746('0x34')]);_0x44b95c[_0xa746('0x35')]=qs[_0xa746('0x2c')](_[_0xa746('0x36')](_0x5d987b['query'],_0x107865[_0xa746('0x2c')]),_0x3a5ee1);if(_0x5d987b[_0xa746('0x2b')][_0xa746('0x37')]){_0x44b95c[_0xa746('0x35')]=_[_0xa746('0x38')](_0x44b95c['where'],{'$or':[{'key':{'$like':'%'+_0x5d987b[_0xa746('0x2b')][_0xa746('0x37')]+'%'}},{'value':{'$like':'%'+_0x5d987b[_0xa746('0x2b')][_0xa746('0x37')]+'%'}}]});}_0x44b95c=_[_0xa746('0x38')]({},_0x44b95c,_0x5d987b[_0xa746('0x39')]);var _0x186ffd={'where':_0x44b95c[_0xa746('0x35')]};return db[_0xa746('0x3a')]['count'](_0x186ffd)[_0xa746('0x20')](function(_0x5be910){_0x5a3b8e[_0xa746('0x3b')]=_0x5be910;if(_0x5d987b[_0xa746('0x2b')][_0xa746('0x3c')]){_0x44b95c[_0xa746('0x3d')]=[{'all':!![]}];}return db['CannedAnswer'][_0xa746('0x3e')](_0x44b95c);})['then'](function(_0x26a666){_0x5a3b8e[_0xa746('0x3f')]=_0x26a666;return _0x5a3b8e;})['then'](respondWithFilteredResult(_0x5d6ed1,_0x44b95c))[_0xa746('0x40')](handleError(_0x5d6ed1,null));};exports[_0xa746('0x41')]=function(_0x451808,_0x4c24b2){var _0x2d7303={'raw':!![],'where':{'id':_0x451808[_0xa746('0x42')]['id']}},_0x2a8536={};_0x2a8536['model']=_[_0xa746('0x43')](db[_0xa746('0x3a')]['rawAttributes']);_0x2a8536[_0xa746('0x2b')]=_[_0xa746('0x43')](_0x451808[_0xa746('0x2b')]);_0x2a8536[_0xa746('0x2c')]=_[_0xa746('0x2d')](_0x2a8536[_0xa746('0x2e')],_0x2a8536[_0xa746('0x2b')]);_0x2d7303['attributes']=_[_0xa746('0x2d')](_0x2a8536[_0xa746('0x2e')],qs[_0xa746('0x30')](_0x451808[_0xa746('0x2b')][_0xa746('0x30')]));_0x2d7303['attributes']=_0x2d7303[_0xa746('0x2f')]['length']?_0x2d7303[_0xa746('0x2f')]:_0x2a8536[_0xa746('0x2e')];if(_0x451808[_0xa746('0x2b')][_0xa746('0x3c')]){_0x2d7303[_0xa746('0x3d')]=[{'all':!![]}];}_0x2d7303=_[_0xa746('0x38')]({},_0x2d7303,_0x451808['options']);return db[_0xa746('0x3a')][_0xa746('0x44')](_0x2d7303)[_0xa746('0x20')](handleEntityNotFound(_0x4c24b2,null))[_0xa746('0x20')](respondWithResult(_0x4c24b2,null))[_0xa746('0x40')](handleError(_0x4c24b2,null));};exports['update']=function(_0x5dfaaa,_0x16a368){if(_0x5dfaaa[_0xa746('0x45')]['id']){delete _0x5dfaaa[_0xa746('0x45')]['id'];}return db['CannedAnswer'][_0xa746('0x44')]({'where':{'id':_0x5dfaaa[_0xa746('0x42')]['id']}})[_0xa746('0x20')](handleEntityNotFound(_0x16a368,null))['then'](saveUpdates(_0x5dfaaa[_0xa746('0x45')],null))[_0xa746('0x20')](respondWithResult(_0x16a368,null))[_0xa746('0x40')](handleError(_0x16a368,null));};exports[_0xa746('0x23')]=function(_0x3215b3,_0x25879c){return db[_0xa746('0x3a')][_0xa746('0x44')]({'where':{'id':_0x3215b3[_0xa746('0x42')]['id']}})['then'](handleEntityNotFound(_0x25879c,null))['then'](removeEntity(_0x25879c,null))[_0xa746('0x40')](handleError(_0x25879c,null));};exports['create']=function(_0x49bfd6,_0x76d46){var _0x5d0ee8={'key':_0x49bfd6['body'][_0xa746('0x2a')]};if(_0x49bfd6[_0xa746('0x45')]['MailAccountId']){_0x5d0ee8['MailAccountId']=_0x49bfd6['body'][_0xa746('0x46')];}else if(_0x49bfd6[_0xa746('0x45')][_0xa746('0x47')]){_0x5d0ee8['SmsAccountId']=_0x49bfd6[_0xa746('0x45')][_0xa746('0x47')];}else if(_0x49bfd6['body'][_0xa746('0x48')]){_0x5d0ee8[_0xa746('0x48')]=_0x49bfd6['body']['OpenchannelAccountId'];}else if(_0x49bfd6[_0xa746('0x45')][_0xa746('0x49')]){_0x5d0ee8[_0xa746('0x49')]=_0x49bfd6['body'][_0xa746('0x49')];}return db[_0xa746('0x3a')][_0xa746('0x44')]({'where':_0x5d0ee8})['then'](function(_0x5f57fb){if(_0x5f57fb){throw new db['Sequelize'][(_0xa746('0x4a'))](_0xa746('0x4b'));}return db[_0xa746('0x3a')]['create'](_0x49bfd6[_0xa746('0x45')]);})[_0xa746('0x20')](function(_0x1de7e){var _0x33c75d=_0x49bfd6['user']['get']({'plain':!![]});if(!_0x33c75d)throw new Error(_0xa746('0x4c'));if(_0x33c75d[_0xa746('0x4d')]===_0xa746('0x4e')){var _0xd2e4c2=_0x1de7e['get']({'plain':!![]});return db['UserProfileSection'][_0xa746('0x44')]({'where':{'name':_0xa746('0x22'),'userProfileId':_0x33c75d[_0xa746('0x4f')]},'raw':!![]})[_0xa746('0x20')](function(_0xb7ec55){if(_0xb7ec55&&_0xb7ec55[_0xa746('0x50')]===0x0){return db[_0xa746('0x51')][_0xa746('0x52')]({'name':_0xd2e4c2[_0xa746('0x25')],'resourceId':_0xd2e4c2['id'],'type':_0xb7ec55[_0xa746('0x25')],'sectionId':_0xb7ec55['id']},{})['then'](function(){return _0x1de7e;});}else{return _0x1de7e;}})[_0xa746('0x40')](function(_0x5952ce){logger[_0xa746('0x53')](_0xa746('0x54'),_0x5952ce);throw _0x5952ce;});}return _0x1de7e;})[_0xa746('0x20')](respondWithResult(_0x76d46,0xc9))['catch'](handleError(_0x76d46,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3338=['../../config/logger','api','moment','request-promise','path','rimraf','../../config/environment','./cannedAnswer.attributes','define','CannedAnswer','tools_canned_answers','utf8mb4_unicode_ci','lodash','util'];(function(_0xd03431,_0xd3e66c){var _0x1d1e87=function(_0x184af9){while(--_0x184af9){_0xd03431['push'](_0xd03431['shift']());}};_0x1d1e87(++_0xd3e66c);}(_0x3338,0xfa));var _0x8333=function(_0x207abf,_0x33cf2e){_0x207abf=_0x207abf-0x0;var _0x481744=_0x3338[_0x207abf];return _0x481744;};'use strict';var _=require(_0x8333('0x0'));var util=require(_0x8333('0x1'));var logger=require(_0x8333('0x2'))(_0x8333('0x3'));var moment=require(_0x8333('0x4'));var BPromise=require('bluebird');var rp=require(_0x8333('0x5'));var fs=require('fs');var path=require(_0x8333('0x6'));var rimraf=require(_0x8333('0x7'));var config=require(_0x8333('0x8'));var attributes=require(_0x8333('0x9'));module['exports']=function(_0x457a66,_0x3450bf){return _0x457a66[_0x8333('0xa')](_0x8333('0xb'),attributes,{'tableName':_0x8333('0xc'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':'utf8mb4','collate':_0x8333('0xd')});};
\ No newline at end of file
+var _0x8b42=['path','rimraf','../../config/environment','exports','define','utf8mb4','utf8mb4_unicode_ci','lodash','moment','bluebird','request-promise'];(function(_0x18a79d,_0x57bd2c){var _0x4f8848=function(_0x28af80){while(--_0x28af80){_0x18a79d['push'](_0x18a79d['shift']());}};_0x4f8848(++_0x57bd2c);}(_0x8b42,0x15c));var _0x28b4=function(_0x484da8,_0x1408d3){_0x484da8=_0x484da8-0x0;var _0x4e53c2=_0x8b42[_0x484da8];return _0x4e53c2;};'use strict';var _=require(_0x28b4('0x0'));var util=require('util');var logger=require('../../config/logger')('api');var moment=require(_0x28b4('0x1'));var BPromise=require(_0x28b4('0x2'));var rp=require(_0x28b4('0x3'));var fs=require('fs');var path=require(_0x28b4('0x4'));var rimraf=require(_0x28b4('0x5'));var config=require(_0x28b4('0x6'));var attributes=require('./cannedAnswer.attributes');module[_0x28b4('0x7')]=function(_0x38e1d3,_0x165728){return _0x38e1d3[_0x28b4('0x8')]('CannedAnswer',attributes,{'tableName':'tools_canned_answers','paranoid':![],'indexes':[],'timestamps':!![],'charset':_0x28b4('0x9'),'collate':_0x28b4('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(_0x6b6911,_0x345168){var _0x37ca08=function(_0x44cb63){while(--_0x44cb63){_0x6b6911['push'](_0x6b6911['shift']());}};_0x37ca08(++_0x345168);}(_0xa9e0,0x123));var _0x0a9e=function(_0x46aff0,_0x122890){_0x46aff0=_0x46aff0-0x0;var _0x9d78cf=_0xa9e0[_0x46aff0];return _0x9d78cf;};'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(_0x20ef3e,_0x431416){var _0x5cd7e9=function(_0x3b8f58){while(--_0x3b8f58){_0x20ef3e['push'](_0x20ef3e['shift']());}};_0x5cd7e9(++_0x431416);}(_0xa9e0,0x123));var _0x0a9e=function(_0x2160a9,_0x3cbd9e){_0x2160a9=_0x2160a9-0x0;var _0xa88cf7=_0xa9e0[_0x2160a9];return _0xa88cf7;};'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 _0x41f9=['../../config/environment','get','index','isAuthenticated','show','post','put','/:id','update','destroy','exports','util','path','connect-timeout','express','fs-extra','../../components/auth/service'];(function(_0x17506d,_0x2aad5e){var _0x139e07=function(_0x558ddc){while(--_0x558ddc){_0x17506d['push'](_0x17506d['shift']());}};_0x139e07(++_0x2aad5e);}(_0x41f9,0x12c));var _0x941f=function(_0x4a747d,_0x3b747f){_0x4a747d=_0x4a747d-0x0;var _0x3a5b5c=_0x41f9[_0x4a747d];return _0x3a5b5c;};'use strict';var multer=require('multer');var util=require(_0x941f('0x0'));var path=require(_0x941f('0x1'));var timeout=require(_0x941f('0x2'));var express=require(_0x941f('0x3'));var router=express['Router']();var fs_extra=require(_0x941f('0x4'));var auth=require(_0x941f('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0x941f('0x6'));var controller=require('./cannedAnswer.controller');router[_0x941f('0x7')]('/',auth['isAuthenticated'](),controller[_0x941f('0x8')]);router[_0x941f('0x7')]('/:id',auth[_0x941f('0x9')](),controller[_0x941f('0xa')]);router[_0x941f('0xb')]('/',auth[_0x941f('0x9')](),controller['create']);router[_0x941f('0xc')](_0x941f('0xd'),auth[_0x941f('0x9')](),controller[_0x941f('0xe')]);router['delete'](_0x941f('0xd'),auth['isAuthenticated'](),controller[_0x941f('0xf')]);module[_0x941f('0x10')]=router;
\ No newline at end of file
+var _0x429f=['connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./cannedAnswer.controller','get','isAuthenticated','post','put','/:id','update','delete','destroy','exports','util','path'];(function(_0x31e973,_0x547147){var _0x2aa478=function(_0x9ffb){while(--_0x9ffb){_0x31e973['push'](_0x31e973['shift']());}};_0x2aa478(++_0x547147);}(_0x429f,0xe8));var _0xf429=function(_0x245545,_0x4983b3){_0x245545=_0x245545-0x0;var _0x106a5f=_0x429f[_0x245545];return _0x106a5f;};'use strict';var multer=require('multer');var util=require(_0xf429('0x0'));var path=require(_0xf429('0x1'));var timeout=require(_0xf429('0x2'));var express=require(_0xf429('0x3'));var router=express[_0xf429('0x4')]();var fs_extra=require(_0xf429('0x5'));var auth=require(_0xf429('0x6'));var interaction=require(_0xf429('0x7'));var config=require('../../config/environment');var controller=require(_0xf429('0x8'));router[_0xf429('0x9')]('/',auth['isAuthenticated'](),controller['index']);router['get']('/:id',auth[_0xf429('0xa')](),controller['show']);router[_0xf429('0xb')]('/',auth[_0xf429('0xa')](),controller['create']);router[_0xf429('0xc')](_0xf429('0xd'),auth[_0xf429('0xa')](),controller[_0xf429('0xe')]);router[_0xf429('0xf')]('/:id',auth[_0xf429('0xa')](),controller[_0xf429('0x10')]);module[_0xf429('0x11')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe1bf=['1970-01-01\x2000:00:01','STRING','INTEGER','exports'];(function(_0x68d16a,_0x24d5af){var _0x5d2ad5=function(_0x57e716){while(--_0x57e716){_0x68d16a['push'](_0x68d16a['shift']());}};_0x5d2ad5(++_0x24d5af);}(_0xe1bf,0x67));var _0xfe1b=function(_0x3a1e43,_0x302250){_0x3a1e43=_0x3a1e43-0x0;var _0x16537d=_0xe1bf[_0x3a1e43];return _0x16537d;};'use strict';var Sequelize=require('sequelize');module[_0xfe1b('0x0')]={'calldate':{'type':Sequelize['DATE'],'allowNull':![],'defaultValue':_0xfe1b('0x1')},'clid':{'type':Sequelize[_0xfe1b('0x2')]},'src':{'type':Sequelize[_0xfe1b('0x2')]},'dst':{'type':Sequelize[_0xfe1b('0x2')]},'dcontext':{'type':Sequelize['STRING']},'channel':{'type':Sequelize[_0xfe1b('0x2')]},'dstchannel':{'type':Sequelize[_0xfe1b('0x2')]},'lastapp':{'type':Sequelize[_0xfe1b('0x2')]},'lastdata':{'type':Sequelize[_0xfe1b('0x2')]},'duration':{'type':Sequelize['INTEGER'],'allowNull':![],'defaultValue':0x0},'billsec':{'type':Sequelize[_0xfe1b('0x3')],'allowNull':![],'defaultValue':0x0},'disposition':{'type':Sequelize[_0xfe1b('0x2')]},'amaflags':{'type':Sequelize[_0xfe1b('0x3')],'allowNull':![],'defaultValue':0x0},'accountcode':{'type':Sequelize['STRING']},'userfield':{'type':Sequelize[_0xfe1b('0x2')]},'uniqueid':{'type':Sequelize[_0xfe1b('0x2')]},'linkedid':{'type':Sequelize[_0xfe1b('0x2')]},'sequence':{'type':Sequelize[_0xfe1b('0x2')]},'peeraccount':{'type':Sequelize[_0xfe1b('0x2')]},'type':{'type':Sequelize['STRING']},'tag':{'type':Sequelize[_0xfe1b('0x2')]}};
\ No newline at end of file
+var _0xc961=['sequelize','exports','DATE','1970-01-01\x2000:00:01','STRING','INTEGER'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0xc961,0x17a));var _0x1c96=function(_0x4404ff,_0x13d7a9){_0x4404ff=_0x4404ff-0x0;var _0x5e7b19=_0xc961[_0x4404ff];return _0x5e7b19;};'use strict';var Sequelize=require(_0x1c96('0x0'));module[_0x1c96('0x1')]={'calldate':{'type':Sequelize[_0x1c96('0x2')],'allowNull':![],'defaultValue':_0x1c96('0x3')},'clid':{'type':Sequelize[_0x1c96('0x4')]},'src':{'type':Sequelize[_0x1c96('0x4')]},'dst':{'type':Sequelize['STRING']},'dcontext':{'type':Sequelize['STRING']},'channel':{'type':Sequelize['STRING']},'dstchannel':{'type':Sequelize[_0x1c96('0x4')]},'lastapp':{'type':Sequelize['STRING']},'lastdata':{'type':Sequelize[_0x1c96('0x4')]},'duration':{'type':Sequelize['INTEGER'],'allowNull':![],'defaultValue':0x0},'billsec':{'type':Sequelize[_0x1c96('0x5')],'allowNull':![],'defaultValue':0x0},'disposition':{'type':Sequelize[_0x1c96('0x4')]},'amaflags':{'type':Sequelize[_0x1c96('0x5')],'allowNull':![],'defaultValue':0x0},'accountcode':{'type':Sequelize[_0x1c96('0x4')]},'userfield':{'type':Sequelize[_0x1c96('0x4')]},'uniqueid':{'type':Sequelize[_0x1c96('0x4')]},'linkedid':{'type':Sequelize['STRING']},'sequence':{'type':Sequelize[_0x1c96('0x4')]},'peeraccount':{'type':Sequelize[_0x1c96('0x4')]},'type':{'type':Sequelize[_0x1c96('0x4')]},'tag':{'type':Sequelize[_0x1c96('0x4')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x106f=['path','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','json','offset','limit','undefined','count','status','set','Content-Range','apply','save','update','then','destroy','end','name','send','index','map','rawAttributes','fieldName','type','key','model','query','keys','intersection','attributes','fields','length','nolimit','sort','where','filters','pick','filter','merge','options','includeAll','include','Cdr','findAll','params','create','body','catch','find','describe','eml-format','rimraf','fast-json-patch','request-promise','bluebird','util'];(function(_0x5ac791,_0x504d37){var _0x9e3a19=function(_0x2d4821){while(--_0x2d4821){_0x5ac791['push'](_0x5ac791['shift']());}};_0x9e3a19(++_0x504d37);}(_0x106f,0x162));var _0xf106=function(_0x9dbef7,_0x5c151d){_0x9dbef7=_0x9dbef7-0x0;var _0x42d955=_0x106f[_0x9dbef7];return _0x42d955;};'use strict';var emlformat=require(_0xf106('0x0'));var rimraf=require(_0xf106('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xf106('0x2'));var rp=require(_0xf106('0x3'));var moment=require('moment');var BPromise=require(_0xf106('0x4'));var Mustache=require('mustache');var util=require(_0xf106('0x5'));var path=require(_0xf106('0x6'));var sox=require(_0xf106('0x7'));var csv=require(_0xf106('0x8'));var ejs=require(_0xf106('0x9'));var fs=require('fs');var fs_extra=require(_0xf106('0xa'));var _=require(_0xf106('0xb'));var squel=require('squel');var crypto=require(_0xf106('0xc'));var jsforce=require(_0xf106('0xd'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0xf106('0xe'));var qs=require(_0xf106('0xf'));var as=require(_0xf106('0x10'));var hardwareService=require(_0xf106('0x11'));var logger=require(_0xf106('0x12'))(_0xf106('0x13'));var utils=require(_0xf106('0x14'));var config=require(_0xf106('0x15'));var licenseUtil=require(_0xf106('0x16'));var db=require(_0xf106('0x17'))['db'];function respondWithStatusCode(_0x31eebf,_0x5e9da8){_0x5e9da8=_0x5e9da8||0xcc;return function(_0x2bd234){if(_0x2bd234){return _0x31eebf[_0xf106('0x18')](_0x5e9da8);}return _0x31eebf['status'](_0x5e9da8)['end']();};}function respondWithResult(_0x322351,_0x2cdbf6){_0x2cdbf6=_0x2cdbf6||0xc8;return function(_0x292a0d){if(_0x292a0d){return _0x322351['status'](_0x2cdbf6)[_0xf106('0x19')](_0x292a0d);}};}function respondWithFilteredResult(_0x26186f,_0xf05683){return function(_0x48bfdd){if(_0x48bfdd){var _0x1e17e6=typeof _0xf05683[_0xf106('0x1a')]==='undefined'&&typeof _0xf05683[_0xf106('0x1b')]===_0xf106('0x1c');var _0x62352=_0x48bfdd['count'];var _0x5d02c0=_0x1e17e6?0x0:_0xf05683[_0xf106('0x1a')];var _0x726d7c=_0x1e17e6?_0x48bfdd[_0xf106('0x1d')]:_0xf05683['offset']+_0xf05683[_0xf106('0x1b')];var _0x1a6816;if(_0x726d7c>=_0x62352){_0x726d7c=_0x62352;_0x1a6816=0xc8;}else{_0x1a6816=0xce;}_0x26186f[_0xf106('0x1e')](_0x1a6816);return _0x26186f[_0xf106('0x1f')](_0xf106('0x20'),_0x5d02c0+'-'+_0x726d7c+'/'+_0x62352)[_0xf106('0x19')](_0x48bfdd);}return null;};}function patchUpdates(_0x29ae70){return function(_0x232a54){try{jsonpatch[_0xf106('0x21')](_0x232a54,_0x29ae70,!![]);}catch(_0x4a9564){return BPromise['reject'](_0x4a9564);}return _0x232a54[_0xf106('0x22')]();};}function saveUpdates(_0x59abbc,_0x32ab30){return function(_0x3c729e){if(_0x3c729e){return _0x3c729e[_0xf106('0x23')](_0x59abbc)[_0xf106('0x24')](function(_0x450451){return _0x450451;});}return null;};}function removeEntity(_0x4f673f,_0x58febd){return function(_0x178890){if(_0x178890){return _0x178890[_0xf106('0x25')]()[_0xf106('0x24')](function(){_0x4f673f[_0xf106('0x1e')](0xcc)[_0xf106('0x26')]();});}};}function handleEntityNotFound(_0xf7de89,_0x9f99bb){return function(_0x118726){if(!_0x118726){_0xf7de89[_0xf106('0x18')](0x194);}return _0x118726;};}function handleError(_0x14b15e,_0x468fce){_0x468fce=_0x468fce||0x1f4;return function(_0x225c15){logger['error'](_0x225c15['stack']);if(_0x225c15['name']){delete _0x225c15[_0xf106('0x27')];}_0x14b15e[_0xf106('0x1e')](_0x468fce)[_0xf106('0x28')](_0x225c15);};}exports[_0xf106('0x29')]=function(_0x4265b3,_0x13b5d7){var _0x4f90d1={},_0x1394e8={},_0x269bff={'count':0x0,'rows':[]};var _0x1f8323=_[_0xf106('0x2a')](db['Cdr'][_0xf106('0x2b')],function(_0x444bde){return{'name':_0x444bde[_0xf106('0x2c')],'type':_0x444bde[_0xf106('0x2d')][_0xf106('0x2e')]};});_0x1394e8[_0xf106('0x2f')]=_['map'](_0x1f8323,_0xf106('0x27'));_0x1394e8[_0xf106('0x30')]=_[_0xf106('0x31')](_0x4265b3[_0xf106('0x30')]);_0x1394e8['filters']=_[_0xf106('0x32')](_0x1394e8[_0xf106('0x2f')],_0x1394e8['query']);_0x4f90d1[_0xf106('0x33')]=_[_0xf106('0x32')](_0x1394e8[_0xf106('0x2f')],qs[_0xf106('0x34')](_0x4265b3[_0xf106('0x30')][_0xf106('0x34')]));_0x4f90d1[_0xf106('0x33')]=_0x4f90d1[_0xf106('0x33')][_0xf106('0x35')]?_0x4f90d1[_0xf106('0x33')]:_0x1394e8[_0xf106('0x2f')];if(!_0x4265b3['query']['hasOwnProperty'](_0xf106('0x36'))){_0x4f90d1[_0xf106('0x1b')]=qs[_0xf106('0x1b')](_0x4265b3['query'][_0xf106('0x1b')]);_0x4f90d1[_0xf106('0x1a')]=qs[_0xf106('0x1a')](_0x4265b3[_0xf106('0x30')][_0xf106('0x1a')]);}_0x4f90d1['order']=qs[_0xf106('0x37')](_0x4265b3['query'][_0xf106('0x37')]);_0x4f90d1[_0xf106('0x38')]=qs[_0xf106('0x39')](_[_0xf106('0x3a')](_0x4265b3['query'],_0x1394e8[_0xf106('0x39')]),_0x1f8323);if(_0x4265b3[_0xf106('0x30')][_0xf106('0x3b')]){_0x4f90d1['where']=_['merge'](_0x4f90d1['where'],{'$or':_['map'](_0x1f8323,function(_0x58dba7){if(_0x58dba7[_0xf106('0x2d')]!=='VIRTUAL'){var _0x4beb79={};_0x4beb79[_0x58dba7[_0xf106('0x27')]]={'$like':'%'+_0x4265b3['query']['filter']+'%'};return _0x4beb79;}})});}_0x4f90d1=_[_0xf106('0x3c')]({},_0x4f90d1,_0x4265b3[_0xf106('0x3d')]);var _0x2d4c90={'where':_0x4f90d1[_0xf106('0x38')]};return db['Cdr'][_0xf106('0x1d')](_0x2d4c90)[_0xf106('0x24')](function(_0x583a72){_0x269bff[_0xf106('0x1d')]=_0x583a72;if(_0x4265b3[_0xf106('0x30')][_0xf106('0x3e')]){_0x4f90d1[_0xf106('0x3f')]=[{'all':!![]}];}return db[_0xf106('0x40')][_0xf106('0x41')](_0x4f90d1);})[_0xf106('0x24')](function(_0x57d61e){_0x269bff['rows']=_0x57d61e;return _0x269bff;})[_0xf106('0x24')](respondWithFilteredResult(_0x13b5d7,_0x4f90d1))['catch'](handleError(_0x13b5d7,null));};exports['show']=function(_0x37bb28,_0x390eee){var _0x5e6cb8={'raw':!![],'where':{'id':_0x37bb28[_0xf106('0x42')]['id']}},_0x47f4d3={};_0x47f4d3['model']=_[_0xf106('0x31')](db[_0xf106('0x40')][_0xf106('0x2b')]);_0x47f4d3[_0xf106('0x30')]=_[_0xf106('0x31')](_0x37bb28[_0xf106('0x30')]);_0x47f4d3[_0xf106('0x39')]=_[_0xf106('0x32')](_0x47f4d3[_0xf106('0x2f')],_0x47f4d3[_0xf106('0x30')]);_0x5e6cb8[_0xf106('0x33')]=_[_0xf106('0x32')](_0x47f4d3[_0xf106('0x2f')],qs[_0xf106('0x34')](_0x37bb28[_0xf106('0x30')][_0xf106('0x34')]));_0x5e6cb8[_0xf106('0x33')]=_0x5e6cb8[_0xf106('0x33')]['length']?_0x5e6cb8[_0xf106('0x33')]:_0x47f4d3[_0xf106('0x2f')];if(_0x37bb28[_0xf106('0x30')][_0xf106('0x3e')]){_0x5e6cb8[_0xf106('0x3f')]=[{'all':!![]}];}_0x5e6cb8=_['merge']({},_0x5e6cb8,_0x37bb28['options']);return db['Cdr']['find'](_0x5e6cb8)[_0xf106('0x24')](handleEntityNotFound(_0x390eee,null))['then'](respondWithResult(_0x390eee,null))['catch'](handleError(_0x390eee,null));};exports[_0xf106('0x43')]=function(_0x1a686d,_0xd50443){return db[_0xf106('0x40')]['create'](_0x1a686d[_0xf106('0x44')],{})[_0xf106('0x24')](respondWithResult(_0xd50443,0xc9))[_0xf106('0x45')](handleError(_0xd50443,null));};exports[_0xf106('0x23')]=function(_0x1bf065,_0x519192){if(_0x1bf065['body']['id']){delete _0x1bf065[_0xf106('0x44')]['id'];}return db[_0xf106('0x40')][_0xf106('0x46')]({'where':{'id':_0x1bf065['params']['id']}})[_0xf106('0x24')](handleEntityNotFound(_0x519192,null))[_0xf106('0x24')](saveUpdates(_0x1bf065[_0xf106('0x44')],null))[_0xf106('0x24')](respondWithResult(_0x519192,null))['catch'](handleError(_0x519192,null));};exports[_0xf106('0x25')]=function(_0x5b80a8,_0x50798d){return db[_0xf106('0x40')][_0xf106('0x46')]({'where':{'id':_0x5b80a8['params']['id']}})[_0xf106('0x24')](handleEntityNotFound(_0x50798d,null))[_0xf106('0x24')](removeEntity(_0x50798d,null))[_0xf106('0x45')](handleError(_0x50798d,null));};exports[_0xf106('0x47')]=function(_0x14375d,_0x391e3d){return db['Cdr']['describe']()[_0xf106('0x24')](respondWithResult(_0x391e3d,null))['catch'](handleError(_0x391e3d,null));};
\ No newline at end of file
+var _0xf873=['options','includeAll','include','findAll','rows','catch','show','params','rawAttributes','length','find','create','body','describe','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','fs-extra','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','../../mysqldb','status','end','json','undefined','limit','count','offset','set','Content-Range','reject','save','update','then','destroy','sendStatus','error','stack','name','send','index','map','Cdr','fieldName','type','key','query','keys','filters','intersection','model','fields','attributes','hasOwnProperty','nolimit','order','sort','pick','where','VIRTUAL','merge'];(function(_0x3d1c94,_0x34bae7){var _0x3ea756=function(_0x5ebed1){while(--_0x5ebed1){_0x3d1c94['push'](_0x3d1c94['shift']());}};_0x3ea756(++_0x34bae7);}(_0xf873,0xb2));var _0x3f87=function(_0x587b6c,_0x26da21){_0x587b6c=_0x587b6c-0x0;var _0xa54bbf=_0xf873[_0x587b6c];return _0xa54bbf;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x3f87('0x0'));var zipdir=require(_0x3f87('0x1'));var jsonpatch=require(_0x3f87('0x2'));var rp=require(_0x3f87('0x3'));var moment=require(_0x3f87('0x4'));var BPromise=require(_0x3f87('0x5'));var Mustache=require(_0x3f87('0x6'));var util=require(_0x3f87('0x7'));var path=require(_0x3f87('0x8'));var sox=require('sox');var csv=require(_0x3f87('0x9'));var ejs=require(_0x3f87('0xa'));var fs=require('fs');var fs_extra=require(_0x3f87('0xb'));var _=require('lodash');var squel=require(_0x3f87('0xc'));var crypto=require(_0x3f87('0xd'));var jsforce=require(_0x3f87('0xe'));var deskjs=require(_0x3f87('0xf'));var toCsv=require(_0x3f87('0x9'));var querystring=require(_0x3f87('0x10'));var Papa=require('papaparse');var Redis=require(_0x3f87('0x11'));var authService=require(_0x3f87('0x12'));var qs=require(_0x3f87('0x13'));var as=require(_0x3f87('0x14'));var hardwareService=require(_0x3f87('0x15'));var logger=require(_0x3f87('0x16'))(_0x3f87('0x17'));var utils=require(_0x3f87('0x18'));var config=require(_0x3f87('0x19'));var licenseUtil=require(_0x3f87('0x1a'));var db=require(_0x3f87('0x1b'))['db'];function respondWithStatusCode(_0x593e9,_0xfd5b65){_0xfd5b65=_0xfd5b65||0xcc;return function(_0x160861){if(_0x160861){return _0x593e9['sendStatus'](_0xfd5b65);}return _0x593e9[_0x3f87('0x1c')](_0xfd5b65)[_0x3f87('0x1d')]();};}function respondWithResult(_0x4ea5c1,_0x1cfba3){_0x1cfba3=_0x1cfba3||0xc8;return function(_0x14324f){if(_0x14324f){return _0x4ea5c1[_0x3f87('0x1c')](_0x1cfba3)[_0x3f87('0x1e')](_0x14324f);}};}function respondWithFilteredResult(_0x3f192a,_0x1c8fb0){return function(_0xd6df66){if(_0xd6df66){var _0x2ccf4d=typeof _0x1c8fb0['offset']===_0x3f87('0x1f')&&typeof _0x1c8fb0[_0x3f87('0x20')]===_0x3f87('0x1f');var _0x4e1df8=_0xd6df66[_0x3f87('0x21')];var _0x56d79e=_0x2ccf4d?0x0:_0x1c8fb0[_0x3f87('0x22')];var _0x13550c=_0x2ccf4d?_0xd6df66[_0x3f87('0x21')]:_0x1c8fb0[_0x3f87('0x22')]+_0x1c8fb0[_0x3f87('0x20')];var _0x4fe75c;if(_0x13550c>=_0x4e1df8){_0x13550c=_0x4e1df8;_0x4fe75c=0xc8;}else{_0x4fe75c=0xce;}_0x3f192a[_0x3f87('0x1c')](_0x4fe75c);return _0x3f192a[_0x3f87('0x23')](_0x3f87('0x24'),_0x56d79e+'-'+_0x13550c+'/'+_0x4e1df8)[_0x3f87('0x1e')](_0xd6df66);}return null;};}function patchUpdates(_0x57f7c5){return function(_0x4acd30){try{jsonpatch['apply'](_0x4acd30,_0x57f7c5,!![]);}catch(_0x73aba6){return BPromise[_0x3f87('0x25')](_0x73aba6);}return _0x4acd30[_0x3f87('0x26')]();};}function saveUpdates(_0x5ed5f1,_0x17e411){return function(_0xb01673){if(_0xb01673){return _0xb01673[_0x3f87('0x27')](_0x5ed5f1)[_0x3f87('0x28')](function(_0x15fad7){return _0x15fad7;});}return null;};}function removeEntity(_0x46d773,_0x30b061){return function(_0xea7dda){if(_0xea7dda){return _0xea7dda[_0x3f87('0x29')]()[_0x3f87('0x28')](function(){_0x46d773[_0x3f87('0x1c')](0xcc)[_0x3f87('0x1d')]();});}};}function handleEntityNotFound(_0x5ca13a,_0x3d03d7){return function(_0x9ed827){if(!_0x9ed827){_0x5ca13a[_0x3f87('0x2a')](0x194);}return _0x9ed827;};}function handleError(_0x5922e9,_0x49674f){_0x49674f=_0x49674f||0x1f4;return function(_0x41f9e9){logger[_0x3f87('0x2b')](_0x41f9e9[_0x3f87('0x2c')]);if(_0x41f9e9[_0x3f87('0x2d')]){delete _0x41f9e9[_0x3f87('0x2d')];}_0x5922e9[_0x3f87('0x1c')](_0x49674f)[_0x3f87('0x2e')](_0x41f9e9);};}exports[_0x3f87('0x2f')]=function(_0x113e40,_0x2e18cb){var _0x43576d={},_0x407828={},_0x439a7d={'count':0x0,'rows':[]};var _0x241d88=_[_0x3f87('0x30')](db[_0x3f87('0x31')]['rawAttributes'],function(_0x150dbb){return{'name':_0x150dbb[_0x3f87('0x32')],'type':_0x150dbb[_0x3f87('0x33')][_0x3f87('0x34')]};});_0x407828['model']=_['map'](_0x241d88,'name');_0x407828[_0x3f87('0x35')]=_[_0x3f87('0x36')](_0x113e40[_0x3f87('0x35')]);_0x407828[_0x3f87('0x37')]=_[_0x3f87('0x38')](_0x407828['model'],_0x407828[_0x3f87('0x35')]);_0x43576d['attributes']=_[_0x3f87('0x38')](_0x407828[_0x3f87('0x39')],qs[_0x3f87('0x3a')](_0x113e40[_0x3f87('0x35')][_0x3f87('0x3a')]));_0x43576d[_0x3f87('0x3b')]=_0x43576d[_0x3f87('0x3b')]['length']?_0x43576d['attributes']:_0x407828[_0x3f87('0x39')];if(!_0x113e40[_0x3f87('0x35')][_0x3f87('0x3c')](_0x3f87('0x3d'))){_0x43576d[_0x3f87('0x20')]=qs[_0x3f87('0x20')](_0x113e40[_0x3f87('0x35')]['limit']);_0x43576d[_0x3f87('0x22')]=qs['offset'](_0x113e40[_0x3f87('0x35')][_0x3f87('0x22')]);}_0x43576d[_0x3f87('0x3e')]=qs[_0x3f87('0x3f')](_0x113e40['query'][_0x3f87('0x3f')]);_0x43576d['where']=qs[_0x3f87('0x37')](_[_0x3f87('0x40')](_0x113e40[_0x3f87('0x35')],_0x407828[_0x3f87('0x37')]),_0x241d88);if(_0x113e40[_0x3f87('0x35')]['filter']){_0x43576d['where']=_['merge'](_0x43576d[_0x3f87('0x41')],{'$or':_[_0x3f87('0x30')](_0x241d88,function(_0x33c9f5){if(_0x33c9f5[_0x3f87('0x33')]!==_0x3f87('0x42')){var _0x18656a={};_0x18656a[_0x33c9f5['name']]={'$like':'%'+_0x113e40[_0x3f87('0x35')]['filter']+'%'};return _0x18656a;}})});}_0x43576d=_[_0x3f87('0x43')]({},_0x43576d,_0x113e40[_0x3f87('0x44')]);var _0x4cd683={'where':_0x43576d[_0x3f87('0x41')]};return db[_0x3f87('0x31')][_0x3f87('0x21')](_0x4cd683)['then'](function(_0x246976){_0x439a7d['count']=_0x246976;if(_0x113e40['query'][_0x3f87('0x45')]){_0x43576d[_0x3f87('0x46')]=[{'all':!![]}];}return db[_0x3f87('0x31')][_0x3f87('0x47')](_0x43576d);})[_0x3f87('0x28')](function(_0x4d9a67){_0x439a7d[_0x3f87('0x48')]=_0x4d9a67;return _0x439a7d;})[_0x3f87('0x28')](respondWithFilteredResult(_0x2e18cb,_0x43576d))[_0x3f87('0x49')](handleError(_0x2e18cb,null));};exports[_0x3f87('0x4a')]=function(_0x50ca7f,_0x13e99f){var _0x458c79={'raw':!![],'where':{'id':_0x50ca7f[_0x3f87('0x4b')]['id']}},_0x33b9ea={};_0x33b9ea[_0x3f87('0x39')]=_[_0x3f87('0x36')](db[_0x3f87('0x31')][_0x3f87('0x4c')]);_0x33b9ea['query']=_['keys'](_0x50ca7f[_0x3f87('0x35')]);_0x33b9ea[_0x3f87('0x37')]=_[_0x3f87('0x38')](_0x33b9ea[_0x3f87('0x39')],_0x33b9ea[_0x3f87('0x35')]);_0x458c79[_0x3f87('0x3b')]=_[_0x3f87('0x38')](_0x33b9ea[_0x3f87('0x39')],qs[_0x3f87('0x3a')](_0x50ca7f[_0x3f87('0x35')][_0x3f87('0x3a')]));_0x458c79['attributes']=_0x458c79[_0x3f87('0x3b')][_0x3f87('0x4d')]?_0x458c79[_0x3f87('0x3b')]:_0x33b9ea[_0x3f87('0x39')];if(_0x50ca7f[_0x3f87('0x35')][_0x3f87('0x45')]){_0x458c79[_0x3f87('0x46')]=[{'all':!![]}];}_0x458c79=_[_0x3f87('0x43')]({},_0x458c79,_0x50ca7f[_0x3f87('0x44')]);return db[_0x3f87('0x31')][_0x3f87('0x4e')](_0x458c79)['then'](handleEntityNotFound(_0x13e99f,null))[_0x3f87('0x28')](respondWithResult(_0x13e99f,null))[_0x3f87('0x49')](handleError(_0x13e99f,null));};exports[_0x3f87('0x4f')]=function(_0x4ec3e4,_0x19d928){return db[_0x3f87('0x31')][_0x3f87('0x4f')](_0x4ec3e4[_0x3f87('0x50')],{})[_0x3f87('0x28')](respondWithResult(_0x19d928,0xc9))[_0x3f87('0x49')](handleError(_0x19d928,null));};exports[_0x3f87('0x27')]=function(_0x5799eb,_0x163ebf){if(_0x5799eb[_0x3f87('0x50')]['id']){delete _0x5799eb[_0x3f87('0x50')]['id'];}return db[_0x3f87('0x31')][_0x3f87('0x4e')]({'where':{'id':_0x5799eb[_0x3f87('0x4b')]['id']}})[_0x3f87('0x28')](handleEntityNotFound(_0x163ebf,null))[_0x3f87('0x28')](saveUpdates(_0x5799eb[_0x3f87('0x50')],null))[_0x3f87('0x28')](respondWithResult(_0x163ebf,null))[_0x3f87('0x49')](handleError(_0x163ebf,null));};exports[_0x3f87('0x29')]=function(_0x53783f,_0x25c95f){return db['Cdr'][_0x3f87('0x4e')]({'where':{'id':_0x53783f[_0x3f87('0x4b')]['id']}})[_0x3f87('0x28')](handleEntityNotFound(_0x25c95f,null))[_0x3f87('0x28')](removeEntity(_0x25c95f,null))[_0x3f87('0x49')](handleError(_0x25c95f,null));};exports[_0x3f87('0x51')]=function(_0x560567,_0x46dee4){return db[_0x3f87('0x31')][_0x3f87('0x51')]()[_0x3f87('0x28')](respondWithResult(_0x46dee4,null))[_0x3f87('0x49')](handleError(_0x46dee4,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9957=['dst','src','uniqueid','lodash','util','../../config/logger','api','bluebird','request-promise','path','rimraf','./cdr.attributes','exports','define','Cdr','accountcode','calldate','disposition'];(function(_0x339780,_0x230e9d){var _0x282d7c=function(_0x5a5912){while(--_0x5a5912){_0x339780['push'](_0x339780['shift']());}};_0x282d7c(++_0x230e9d);}(_0x9957,0x93));var _0x7995=function(_0x1ac595,_0x5d2081){_0x1ac595=_0x1ac595-0x0;var _0x455fff=_0x9957[_0x1ac595];return _0x455fff;};'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
+var _0x9957=['dst','src','uniqueid','lodash','util','../../config/logger','api','bluebird','request-promise','path','rimraf','./cdr.attributes','exports','define','Cdr','accountcode','calldate','disposition'];(function(_0x599eda,_0x3ada76){var _0x48b36f=function(_0x43ab87){while(--_0x43ab87){_0x599eda['push'](_0x599eda['shift']());}};_0x48b36f(++_0x3ada76);}(_0x9957,0x93));var _0x7995=function(_0x618414,_0x1a7a60){_0x618414=_0x618414-0x0;var _0x21c19a=_0x9957[_0x618414];return _0x21c19a;};'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 _0x1bc8=['../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','then','info','Cdr,\x20%s,\x20%s','Cdr,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message','catch','util','moment','bluebird','ioredis'];(function(_0x23c13d,_0x2f3230){var _0x39c1e6=function(_0x461eeb){while(--_0x461eeb){_0x23c13d['push'](_0x23c13d['shift']());}};_0x39c1e6(++_0x2f3230);}(_0x1bc8,0xd8));var _0x81bc=function(_0x5b3b9b,_0x1c71b0){_0x5b3b9b=_0x5b3b9b-0x0;var _0x47c1d7=_0x1bc8[_0x5b3b9b];return _0x47c1d7;};'use strict';var _=require('lodash');var util=require(_0x81bc('0x0'));var moment=require(_0x81bc('0x1'));var BPromise=require(_0x81bc('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x81bc('0x3'));var db=require(_0x81bc('0x4'))['db'];var utils=require(_0x81bc('0x5'));var logger=require(_0x81bc('0x6'))(_0x81bc('0x7'));var config=require('../../config/environment');var jayson=require(_0x81bc('0x8'));var client=jayson[_0x81bc('0x9')][_0x81bc('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x5c6f53,_0x23c1fc,_0x5eebf8){return new BPromise(function(_0x4e6aa7,_0x232674){return client['request'](_0x5c6f53,_0x5eebf8)[_0x81bc('0xb')](function(_0x1bef65){logger[_0x81bc('0xc')](_0x81bc('0xd'),_0x23c1fc,'request\x20sent');logger['debug'](_0x81bc('0xe'),_0x23c1fc,_0x81bc('0xf'),JSON[_0x81bc('0x10')](_0x1bef65));if(_0x1bef65[_0x81bc('0x11')]){if(_0x1bef65['error']['code']===0x1f4){logger[_0x81bc('0x11')](_0x81bc('0xd'),_0x23c1fc,_0x1bef65['error']['message']);return _0x232674(_0x1bef65[_0x81bc('0x11')][_0x81bc('0x12')]);}logger['error'](_0x81bc('0xd'),_0x23c1fc,_0x1bef65[_0x81bc('0x11')][_0x81bc('0x12')]);return _0x4e6aa7(_0x1bef65[_0x81bc('0x11')][_0x81bc('0x12')]);}else{logger[_0x81bc('0xc')](_0x81bc('0xd'),_0x23c1fc,_0x81bc('0xf'));_0x4e6aa7(_0x1bef65['result']['message']);}})[_0x81bc('0x13')](function(_0xdbd1a8){logger[_0x81bc('0x11')](_0x81bc('0xd'),_0x23c1fc,_0xdbd1a8);_0x232674(_0xdbd1a8);});});}
\ No newline at end of file
+var _0xfd37=['../../config/environment','jayson/promise','client','http','request','info','Cdr,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','catch','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc'];(function(_0x2ba139,_0x125e2b){var _0x58532f=function(_0x33ed0b){while(--_0x33ed0b){_0x2ba139['push'](_0x2ba139['shift']());}};_0x58532f(++_0x125e2b);}(_0xfd37,0x18f));var _0x7fd3=function(_0x17f18b,_0x4c8885){_0x17f18b=_0x17f18b-0x0;var _0xad5e66=_0xfd37[_0x17f18b];return _0xad5e66;};'use strict';var _=require(_0x7fd3('0x0'));var util=require('util');var moment=require(_0x7fd3('0x1'));var BPromise=require(_0x7fd3('0x2'));var rs=require(_0x7fd3('0x3'));var fs=require('fs');var Redis=require(_0x7fd3('0x4'));var db=require(_0x7fd3('0x5'))['db'];var utils=require(_0x7fd3('0x6'));var logger=require(_0x7fd3('0x7'))(_0x7fd3('0x8'));var config=require(_0x7fd3('0x9'));var jayson=require(_0x7fd3('0xa'));var client=jayson[_0x7fd3('0xb')][_0x7fd3('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x2bbd64,_0x5e96ef,_0x23347b){return new BPromise(function(_0x336166,_0x1e9cb1){return client[_0x7fd3('0xd')](_0x2bbd64,_0x23347b)['then'](function(_0x318759){logger[_0x7fd3('0xe')](_0x7fd3('0xf'),_0x5e96ef,_0x7fd3('0x10'));logger[_0x7fd3('0x11')]('Cdr,\x20%s,\x20%s,\x20%s',_0x5e96ef,_0x7fd3('0x10'),JSON[_0x7fd3('0x12')](_0x318759));if(_0x318759['error']){if(_0x318759[_0x7fd3('0x13')][_0x7fd3('0x14')]===0x1f4){logger[_0x7fd3('0x13')](_0x7fd3('0xf'),_0x5e96ef,_0x318759[_0x7fd3('0x13')]['message']);return _0x1e9cb1(_0x318759['error'][_0x7fd3('0x15')]);}logger['error'](_0x7fd3('0xf'),_0x5e96ef,_0x318759['error'][_0x7fd3('0x15')]);return _0x336166(_0x318759[_0x7fd3('0x13')][_0x7fd3('0x15')]);}else{logger[_0x7fd3('0xe')]('Cdr,\x20%s,\x20%s',_0x5e96ef,_0x7fd3('0x10'));_0x336166(_0x318759[_0x7fd3('0x16')][_0x7fd3('0x15')]);}})[_0x7fd3('0x17')](function(_0x30599c){logger[_0x7fd3('0x13')](_0x7fd3('0xf'),_0x5e96ef,_0x30599c);_0x1e9cb1(_0x30599c);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd8b0=['destroy','exports','multer','util','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','isAuthenticated','index','get','describe','/:id','show','post','create','put','update'];(function(_0x4d579b,_0x2327f3){var _0x288145=function(_0x483108){while(--_0x483108){_0x4d579b['push'](_0x4d579b['shift']());}};_0x288145(++_0x2327f3);}(_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('./cdr.controller');router['get']('/',auth[_0x0d8b('0x7')](),controller[_0x0d8b('0x8')]);router[_0x0d8b('0x9')]('/describe',auth[_0x0d8b('0x7')](),controller[_0x0d8b('0xa')]);router['get'](_0x0d8b('0xb'),auth[_0x0d8b('0x7')](),controller[_0x0d8b('0xc')]);router[_0x0d8b('0xd')]('/',auth[_0x0d8b('0x7')](),controller[_0x0d8b('0xe')]);router[_0x0d8b('0xf')](_0x0d8b('0xb'),auth['isAuthenticated'](),controller[_0x0d8b('0x10')]);router['delete'](_0x0d8b('0xb'),auth[_0x0d8b('0x7')](),controller[_0x0d8b('0x11')]);module[_0x0d8b('0x12')]=router;
\ No newline at end of file
+var _0xd8b0=['destroy','exports','multer','util','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','isAuthenticated','index','get','describe','/:id','show','post','create','put','update'];(function(_0x1eaf9a,_0x4a10c3){var _0x1fbedb=function(_0x261b11){while(--_0x261b11){_0x1eaf9a['push'](_0x1eaf9a['shift']());}};_0x1fbedb(++_0x4a10c3);}(_0xd8b0,0xad));var _0x0d8b=function(_0xa464c9,_0x7c86d8){_0xa464c9=_0xa464c9-0x0;var _0x3d73c4=_0xd8b0[_0xa464c9];return _0x3d73c4;};'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('./cdr.controller');router['get']('/',auth[_0x0d8b('0x7')](),controller[_0x0d8b('0x8')]);router[_0x0d8b('0x9')]('/describe',auth[_0x0d8b('0x7')](),controller[_0x0d8b('0xa')]);router['get'](_0x0d8b('0xb'),auth[_0x0d8b('0x7')](),controller[_0x0d8b('0xc')]);router[_0x0d8b('0xd')]('/',auth[_0x0d8b('0x7')](),controller[_0x0d8b('0xe')]);router[_0x0d8b('0xf')](_0x0d8b('0xb'),auth['isAuthenticated'](),controller[_0x0d8b('0x10')]);router['delete'](_0x0d8b('0xb'),auth[_0x0d8b('0x7')](),controller[_0x0d8b('0x11')]);module[_0x0d8b('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x601e=['INTEGER','STRING','TEXT','*,*,*,*','sequelize','exports'];(function(_0x34530d,_0x433846){var _0x52c258=function(_0x187a62){while(--_0x187a62){_0x34530d['push'](_0x34530d['shift']());}};_0x52c258(++_0x433846);}(_0x601e,0x16c));var _0xe601=function(_0x175e89,_0x20835f){_0x175e89=_0x175e89-0x0;var _0x2ed996=_0x601e[_0x175e89];return _0x2ed996;};'use strict';var Sequelize=require(_0xe601('0x0'));module[_0xe601('0x1')]={'priority':{'type':Sequelize[_0xe601('0x2')],'allowNull':![]},'app':{'type':Sequelize[_0xe601('0x3')],'allowNull':![],'defaultValue':'noop'},'appdata':{'type':Sequelize[_0xe601('0x4')]()},'description':{'type':Sequelize[_0xe601('0x3')]},'interval':{'type':Sequelize['STRING'],'defaultValue':_0xe601('0x5')}};
\ No newline at end of file
+var _0xca45=['TEXT','STRING','*,*,*,*','sequelize','exports','INTEGER'];(function(_0x3e9ef2,_0x3def70){var _0x56c906=function(_0x4dd9dd){while(--_0x4dd9dd){_0x3e9ef2['push'](_0x3e9ef2['shift']());}};_0x56c906(++_0x3def70);}(_0xca45,0xd5));var _0x5ca4=function(_0x45043c,_0x1b378b){_0x45043c=_0x45043c-0x0;var _0x35d455=_0xca45[_0x45043c];return _0x35d455;};'use strict';var Sequelize=require(_0x5ca4('0x0'));module[_0x5ca4('0x1')]={'priority':{'type':Sequelize[_0x5ca4('0x2')],'allowNull':![]},'app':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':'noop'},'appdata':{'type':Sequelize[_0x5ca4('0x3')]()},'description':{'type':Sequelize[_0x5ca4('0x4')]},'interval':{'type':Sequelize['STRING'],'defaultValue':_0x5ca4('0x5')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfc03=['util','path','sox','to-csv','ejs','fs-extra','lodash','crypto','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','sendStatus','end','status','json','offset','undefined','count','limit','set','Content-Range','apply','reject','save','update','then','destroy','error','stack','name','send','show','params','model','keys','ChatApplication','query','filters','intersection','attributes','fields','length','includeAll','include','merge','options','catch','body','find','eml-format','zip-dir','fast-json-patch','moment','mustache'];(function(_0x215e65,_0x183f97){var _0xa85842=function(_0x43bf45){while(--_0x43bf45){_0x215e65['push'](_0x215e65['shift']());}};_0xa85842(++_0x183f97);}(_0xfc03,0x16f));var _0x3fc0=function(_0xda464c,_0x26e47d){_0xda464c=_0xda464c-0x0;var _0x19e222=_0xfc03[_0xda464c];return _0x19e222;};'use strict';var emlformat=require(_0x3fc0('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x3fc0('0x1'));var jsonpatch=require(_0x3fc0('0x2'));var rp=require('request-promise');var moment=require(_0x3fc0('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x3fc0('0x4'));var util=require(_0x3fc0('0x5'));var path=require(_0x3fc0('0x6'));var sox=require(_0x3fc0('0x7'));var csv=require(_0x3fc0('0x8'));var ejs=require(_0x3fc0('0x9'));var fs=require('fs');var fs_extra=require(_0x3fc0('0xa'));var _=require(_0x3fc0('0xb'));var squel=require('squel');var crypto=require(_0x3fc0('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x3fc0('0xd'));var toCsv=require(_0x3fc0('0x8'));var querystring=require(_0x3fc0('0xe'));var Papa=require(_0x3fc0('0xf'));var Redis=require('ioredis');var authService=require(_0x3fc0('0x10'));var qs=require(_0x3fc0('0x11'));var as=require(_0x3fc0('0x12'));var hardwareService=require(_0x3fc0('0x13'));var logger=require(_0x3fc0('0x14'))('api');var utils=require(_0x3fc0('0x15'));var config=require(_0x3fc0('0x16'));var licenseUtil=require(_0x3fc0('0x17'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x1011b7,_0x582e22){_0x582e22=_0x582e22||0xcc;return function(_0x3a4cc0){if(_0x3a4cc0){return _0x1011b7[_0x3fc0('0x18')](_0x582e22);}return _0x1011b7['status'](_0x582e22)[_0x3fc0('0x19')]();};}function respondWithResult(_0x422926,_0x392c46){_0x392c46=_0x392c46||0xc8;return function(_0x4eb69a){if(_0x4eb69a){return _0x422926[_0x3fc0('0x1a')](_0x392c46)[_0x3fc0('0x1b')](_0x4eb69a);}};}function respondWithFilteredResult(_0x367ce1,_0x27619a){return function(_0x562ecc){if(_0x562ecc){var _0x277dbf=typeof _0x27619a[_0x3fc0('0x1c')]===_0x3fc0('0x1d')&&typeof _0x27619a['limit']===_0x3fc0('0x1d');var _0x491446=_0x562ecc[_0x3fc0('0x1e')];var _0x3c5026=_0x277dbf?0x0:_0x27619a['offset'];var _0x3bb388=_0x277dbf?_0x562ecc[_0x3fc0('0x1e')]:_0x27619a[_0x3fc0('0x1c')]+_0x27619a[_0x3fc0('0x1f')];var _0x1bd575;if(_0x3bb388>=_0x491446){_0x3bb388=_0x491446;_0x1bd575=0xc8;}else{_0x1bd575=0xce;}_0x367ce1[_0x3fc0('0x1a')](_0x1bd575);return _0x367ce1[_0x3fc0('0x20')](_0x3fc0('0x21'),_0x3c5026+'-'+_0x3bb388+'/'+_0x491446)[_0x3fc0('0x1b')](_0x562ecc);}return null;};}function patchUpdates(_0x5c859e){return function(_0xf13744){try{jsonpatch[_0x3fc0('0x22')](_0xf13744,_0x5c859e,!![]);}catch(_0x34ffa7){return BPromise[_0x3fc0('0x23')](_0x34ffa7);}return _0xf13744[_0x3fc0('0x24')]();};}function saveUpdates(_0x448293,_0x47c770){return function(_0x477674){if(_0x477674){return _0x477674[_0x3fc0('0x25')](_0x448293)[_0x3fc0('0x26')](function(_0x28fc65){return _0x28fc65;});}return null;};}function removeEntity(_0x46c213,_0x303dd2){return function(_0x2f423e){if(_0x2f423e){return _0x2f423e[_0x3fc0('0x27')]()[_0x3fc0('0x26')](function(){_0x46c213[_0x3fc0('0x1a')](0xcc)[_0x3fc0('0x19')]();});}};}function handleEntityNotFound(_0x1abe10,_0x784765){return function(_0xba1a23){if(!_0xba1a23){_0x1abe10[_0x3fc0('0x18')](0x194);}return _0xba1a23;};}function handleError(_0xbec5b5,_0x4f5111){_0x4f5111=_0x4f5111||0x1f4;return function(_0x365c8e){logger[_0x3fc0('0x28')](_0x365c8e[_0x3fc0('0x29')]);if(_0x365c8e[_0x3fc0('0x2a')]){delete _0x365c8e['name'];}_0xbec5b5[_0x3fc0('0x1a')](_0x4f5111)[_0x3fc0('0x2b')](_0x365c8e);};}exports[_0x3fc0('0x2c')]=function(_0x2645b4,_0x559fcc){var _0x1e4d99={'raw':!![],'where':{'id':_0x2645b4[_0x3fc0('0x2d')]['id']}},_0x1a2261={};_0x1a2261[_0x3fc0('0x2e')]=_[_0x3fc0('0x2f')](db[_0x3fc0('0x30')]['rawAttributes']);_0x1a2261[_0x3fc0('0x31')]=_[_0x3fc0('0x2f')](_0x2645b4[_0x3fc0('0x31')]);_0x1a2261[_0x3fc0('0x32')]=_[_0x3fc0('0x33')](_0x1a2261[_0x3fc0('0x2e')],_0x1a2261[_0x3fc0('0x31')]);_0x1e4d99[_0x3fc0('0x34')]=_['intersection'](_0x1a2261['model'],qs[_0x3fc0('0x35')](_0x2645b4['query'][_0x3fc0('0x35')]));_0x1e4d99[_0x3fc0('0x34')]=_0x1e4d99[_0x3fc0('0x34')][_0x3fc0('0x36')]?_0x1e4d99[_0x3fc0('0x34')]:_0x1a2261['model'];if(_0x2645b4['query'][_0x3fc0('0x37')]){_0x1e4d99[_0x3fc0('0x38')]=[{'all':!![]}];}_0x1e4d99=_[_0x3fc0('0x39')]({},_0x1e4d99,_0x2645b4[_0x3fc0('0x3a')]);return db[_0x3fc0('0x30')]['find'](_0x1e4d99)[_0x3fc0('0x26')](handleEntityNotFound(_0x559fcc,null))[_0x3fc0('0x26')](respondWithResult(_0x559fcc,null))[_0x3fc0('0x3b')](handleError(_0x559fcc,null));};exports['update']=function(_0x1a39c1,_0x4279c0){if(_0x1a39c1[_0x3fc0('0x3c')]['id']){delete _0x1a39c1[_0x3fc0('0x3c')]['id'];}return db['ChatApplication'][_0x3fc0('0x3d')]({'where':{'id':_0x1a39c1[_0x3fc0('0x2d')]['id']}})['then'](handleEntityNotFound(_0x4279c0,null))[_0x3fc0('0x26')](saveUpdates(_0x1a39c1['body'],null))[_0x3fc0('0x26')](respondWithResult(_0x4279c0,null))[_0x3fc0('0x3b')](handleError(_0x4279c0,null));};exports[_0x3fc0('0x27')]=function(_0x2db02e,_0x302a02){return db[_0x3fc0('0x30')][_0x3fc0('0x3d')]({'where':{'id':_0x2db02e[_0x3fc0('0x2d')]['id']}})[_0x3fc0('0x26')](handleEntityNotFound(_0x302a02,null))[_0x3fc0('0x26')](removeEntity(_0x302a02,null))[_0x3fc0('0x3b')](handleError(_0x302a02,null));};
\ No newline at end of file
+var _0x8a9a=['jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','json','undefined','limit','offset','count','set','Content-Range','apply','reject','save','update','then','end','sendStatus','stack','name','send','show','params','model','keys','ChatApplication','rawAttributes','query','filters','intersection','attributes','fields','includeAll','include','merge','options','catch','body','destroy','find','zip-dir','fast-json-patch','request-promise','bluebird','mustache','sox','to-csv','ejs','fs-extra','lodash'];(function(_0x3e5086,_0x48f4a2){var _0xfeb102=function(_0x5a945f){while(--_0x5a945f){_0x3e5086['push'](_0x3e5086['shift']());}};_0xfeb102(++_0x48f4a2);}(_0x8a9a,0x193));var _0xa8a9=function(_0x160c73,_0x2ee678){_0x160c73=_0x160c73-0x0;var _0xd9302=_0x8a9a[_0x160c73];return _0xd9302;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0xa8a9('0x0'));var jsonpatch=require(_0xa8a9('0x1'));var rp=require(_0xa8a9('0x2'));var moment=require('moment');var BPromise=require(_0xa8a9('0x3'));var Mustache=require(_0xa8a9('0x4'));var util=require('util');var path=require('path');var sox=require(_0xa8a9('0x5'));var csv=require(_0xa8a9('0x6'));var ejs=require(_0xa8a9('0x7'));var fs=require('fs');var fs_extra=require(_0xa8a9('0x8'));var _=require(_0xa8a9('0x9'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0xa8a9('0xa'));var deskjs=require(_0xa8a9('0xb'));var toCsv=require(_0xa8a9('0x6'));var querystring=require(_0xa8a9('0xc'));var Papa=require(_0xa8a9('0xd'));var Redis=require(_0xa8a9('0xe'));var authService=require(_0xa8a9('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0xa8a9('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xa8a9('0x11'))('api');var utils=require(_0xa8a9('0x12'));var config=require(_0xa8a9('0x13'));var licenseUtil=require(_0xa8a9('0x14'));var db=require(_0xa8a9('0x15'))['db'];function respondWithStatusCode(_0x3e962a,_0x16d838){_0x16d838=_0x16d838||0xcc;return function(_0x53fbc5){if(_0x53fbc5){return _0x3e962a['sendStatus'](_0x16d838);}return _0x3e962a[_0xa8a9('0x16')](_0x16d838)['end']();};}function respondWithResult(_0x3bb559,_0x34bec9){_0x34bec9=_0x34bec9||0xc8;return function(_0x3a0e08){if(_0x3a0e08){return _0x3bb559[_0xa8a9('0x16')](_0x34bec9)[_0xa8a9('0x17')](_0x3a0e08);}};}function respondWithFilteredResult(_0x4c448c,_0x3593fa){return function(_0x5c2cde){if(_0x5c2cde){var _0x1c7d52=typeof _0x3593fa['offset']===_0xa8a9('0x18')&&typeof _0x3593fa[_0xa8a9('0x19')]==='undefined';var _0x25285c=_0x5c2cde['count'];var _0x2c4fe7=_0x1c7d52?0x0:_0x3593fa[_0xa8a9('0x1a')];var _0xce2084=_0x1c7d52?_0x5c2cde[_0xa8a9('0x1b')]:_0x3593fa['offset']+_0x3593fa['limit'];var _0x34b6d1;if(_0xce2084>=_0x25285c){_0xce2084=_0x25285c;_0x34b6d1=0xc8;}else{_0x34b6d1=0xce;}_0x4c448c['status'](_0x34b6d1);return _0x4c448c[_0xa8a9('0x1c')](_0xa8a9('0x1d'),_0x2c4fe7+'-'+_0xce2084+'/'+_0x25285c)[_0xa8a9('0x17')](_0x5c2cde);}return null;};}function patchUpdates(_0x39384c){return function(_0x126648){try{jsonpatch[_0xa8a9('0x1e')](_0x126648,_0x39384c,!![]);}catch(_0x20381c){return BPromise[_0xa8a9('0x1f')](_0x20381c);}return _0x126648[_0xa8a9('0x20')]();};}function saveUpdates(_0x390011,_0x1cc77a){return function(_0x2fd285){if(_0x2fd285){return _0x2fd285[_0xa8a9('0x21')](_0x390011)['then'](function(_0x481a29){return _0x481a29;});}return null;};}function removeEntity(_0x4343f4,_0xa4c41a){return function(_0x32e784){if(_0x32e784){return _0x32e784['destroy']()[_0xa8a9('0x22')](function(){_0x4343f4[_0xa8a9('0x16')](0xcc)[_0xa8a9('0x23')]();});}};}function handleEntityNotFound(_0x233fe1,_0x488791){return function(_0x20fb5a){if(!_0x20fb5a){_0x233fe1[_0xa8a9('0x24')](0x194);}return _0x20fb5a;};}function handleError(_0x2f7a56,_0x1aef34){_0x1aef34=_0x1aef34||0x1f4;return function(_0x5f0c62){logger['error'](_0x5f0c62[_0xa8a9('0x25')]);if(_0x5f0c62[_0xa8a9('0x26')]){delete _0x5f0c62[_0xa8a9('0x26')];}_0x2f7a56[_0xa8a9('0x16')](_0x1aef34)[_0xa8a9('0x27')](_0x5f0c62);};}exports[_0xa8a9('0x28')]=function(_0x2abeb7,_0x155527){var _0x4c87d4={'raw':!![],'where':{'id':_0x2abeb7[_0xa8a9('0x29')]['id']}},_0x45714a={};_0x45714a[_0xa8a9('0x2a')]=_[_0xa8a9('0x2b')](db[_0xa8a9('0x2c')][_0xa8a9('0x2d')]);_0x45714a[_0xa8a9('0x2e')]=_[_0xa8a9('0x2b')](_0x2abeb7[_0xa8a9('0x2e')]);_0x45714a[_0xa8a9('0x2f')]=_[_0xa8a9('0x30')](_0x45714a[_0xa8a9('0x2a')],_0x45714a[_0xa8a9('0x2e')]);_0x4c87d4[_0xa8a9('0x31')]=_[_0xa8a9('0x30')](_0x45714a[_0xa8a9('0x2a')],qs['fields'](_0x2abeb7[_0xa8a9('0x2e')][_0xa8a9('0x32')]));_0x4c87d4[_0xa8a9('0x31')]=_0x4c87d4[_0xa8a9('0x31')]['length']?_0x4c87d4[_0xa8a9('0x31')]:_0x45714a[_0xa8a9('0x2a')];if(_0x2abeb7['query'][_0xa8a9('0x33')]){_0x4c87d4[_0xa8a9('0x34')]=[{'all':!![]}];}_0x4c87d4=_[_0xa8a9('0x35')]({},_0x4c87d4,_0x2abeb7[_0xa8a9('0x36')]);return db[_0xa8a9('0x2c')]['find'](_0x4c87d4)[_0xa8a9('0x22')](handleEntityNotFound(_0x155527,null))[_0xa8a9('0x22')](respondWithResult(_0x155527,null))[_0xa8a9('0x37')](handleError(_0x155527,null));};exports[_0xa8a9('0x21')]=function(_0x2c09b2,_0x44524d){if(_0x2c09b2['body']['id']){delete _0x2c09b2[_0xa8a9('0x38')]['id'];}return db['ChatApplication']['find']({'where':{'id':_0x2c09b2['params']['id']}})['then'](handleEntityNotFound(_0x44524d,null))[_0xa8a9('0x22')](saveUpdates(_0x2c09b2['body'],null))[_0xa8a9('0x22')](respondWithResult(_0x44524d,null))['catch'](handleError(_0x44524d,null));};exports[_0xa8a9('0x39')]=function(_0x15801f,_0xbc61c0){return db[_0xa8a9('0x2c')][_0xa8a9('0x3a')]({'where':{'id':_0x15801f[_0xa8a9('0x29')]['id']}})[_0xa8a9('0x22')](handleEntityNotFound(_0xbc61c0,null))[_0xa8a9('0x22')](removeEntity(_0xbc61c0,null))['catch'](handleError(_0xbc61c0,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x96cf=['util','api','bluebird','path','./chatApplication.attributes','exports','define','ChatApplication','chat_applications','utf8mb4','lodash'];(function(_0x3b5e9d,_0x5970dc){var _0x44681d=function(_0x306697){while(--_0x306697){_0x3b5e9d['push'](_0x3b5e9d['shift']());}};_0x44681d(++_0x5970dc);}(_0x96cf,0xdb));var _0xf96c=function(_0x30d91e,_0x5c437d){_0x30d91e=_0x30d91e-0x0;var _0x3025ae=_0x96cf[_0x30d91e];return _0x3025ae;};'use strict';var _=require(_0xf96c('0x0'));var util=require(_0xf96c('0x1'));var logger=require('../../config/logger')(_0xf96c('0x2'));var moment=require('moment');var BPromise=require(_0xf96c('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xf96c('0x4'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0xf96c('0x5'));module[_0xf96c('0x6')]=function(_0x46dab3,_0x45eed7){return _0x46dab3[_0xf96c('0x7')](_0xf96c('0x8'),attributes,{'tableName':_0xf96c('0x9'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0xf96c('0xa'),'collate':'utf8mb4_unicode_ci'});};
\ No newline at end of file
+var _0x845b=['../../config/logger','moment','bluebird','request-promise','path','rimraf','./chatApplication.attributes','exports','define','ChatApplication','chat_applications','utf8mb4_unicode_ci','lodash','util'];(function(_0xa464c9,_0x7c86d8){var _0x3d73c4=function(_0x5c2056){while(--_0x5c2056){_0xa464c9['push'](_0xa464c9['shift']());}};_0x3d73c4(++_0x7c86d8);}(_0x845b,0x132));var _0xb845=function(_0x87827a,_0x14a142){_0x87827a=_0x87827a-0x0;var _0x467882=_0x845b[_0x87827a];return _0x467882;};'use strict';var _=require(_0xb845('0x0'));var util=require(_0xb845('0x1'));var logger=require(_0xb845('0x2'))('api');var moment=require(_0xb845('0x3'));var BPromise=require(_0xb845('0x4'));var rp=require(_0xb845('0x5'));var fs=require('fs');var path=require(_0xb845('0x6'));var rimraf=require(_0xb845('0x7'));var config=require('../../config/environment');var attributes=require(_0xb845('0x8'));module[_0xb845('0x9')]=function(_0x53773b,_0x3497dd){return _0x53773b[_0xb845('0xa')](_0xb845('0xb'),attributes,{'tableName':_0xb845('0xc'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':'utf8mb4','collate':_0xb845('0xd')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb505=['../../config/environment','client','http','request','then','info','ChatApplication,\x20%s,\x20%s','debug','ChatApplication,\x20%s,\x20%s,\x20%s','stringify','error','message','request\x20sent','result','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','rpc'];(function(_0x5b5605,_0x11ff7c){var _0x55a501=function(_0x2a7951){while(--_0x2a7951){_0x5b5605['push'](_0x5b5605['shift']());}};_0x55a501(++_0x11ff7c);}(_0xb505,0x1db));var _0x5b50=function(_0xda69ec,_0x36bc44){_0xda69ec=_0xda69ec-0x0;var _0x149ca1=_0xb505[_0xda69ec];return _0x149ca1;};'use strict';var _=require(_0x5b50('0x0'));var util=require(_0x5b50('0x1'));var moment=require(_0x5b50('0x2'));var BPromise=require(_0x5b50('0x3'));var rs=require(_0x5b50('0x4'));var fs=require('fs');var Redis=require(_0x5b50('0x5'));var db=require(_0x5b50('0x6'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0x5b50('0x7'));var config=require(_0x5b50('0x8'));var jayson=require('jayson/promise');var client=jayson[_0x5b50('0x9')][_0x5b50('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x36494f,_0xc230a1,_0x3e1046){return new BPromise(function(_0x326909,_0x4d1540){return client[_0x5b50('0xb')](_0x36494f,_0x3e1046)[_0x5b50('0xc')](function(_0x3fd3a6){logger[_0x5b50('0xd')](_0x5b50('0xe'),_0xc230a1,'request\x20sent');logger[_0x5b50('0xf')](_0x5b50('0x10'),_0xc230a1,'request\x20sent',JSON[_0x5b50('0x11')](_0x3fd3a6));if(_0x3fd3a6[_0x5b50('0x12')]){if(_0x3fd3a6['error']['code']===0x1f4){logger[_0x5b50('0x12')]('ChatApplication,\x20%s,\x20%s',_0xc230a1,_0x3fd3a6[_0x5b50('0x12')][_0x5b50('0x13')]);return _0x4d1540(_0x3fd3a6[_0x5b50('0x12')][_0x5b50('0x13')]);}logger[_0x5b50('0x12')]('ChatApplication,\x20%s,\x20%s',_0xc230a1,_0x3fd3a6[_0x5b50('0x12')][_0x5b50('0x13')]);return _0x326909(_0x3fd3a6['error'][_0x5b50('0x13')]);}else{logger[_0x5b50('0xd')](_0x5b50('0xe'),_0xc230a1,_0x5b50('0x14'));_0x326909(_0x3fd3a6[_0x5b50('0x15')][_0x5b50('0x13')]);}})[_0x5b50('0x16')](function(_0x359684){logger[_0x5b50('0x12')](_0x5b50('0xe'),_0xc230a1,_0x359684);_0x4d1540(_0x359684);});});}
\ No newline at end of file
+var _0x1313=['catch','lodash','moment','bluebird','ioredis','../../config/utils','../../config/logger','../../config/environment','client','http','request','then','info','ChatApplication,\x20%s,\x20%s','debug','ChatApplication,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result'];(function(_0x2baf95,_0xb916b6){var _0x285afb=function(_0x423699){while(--_0x423699){_0x2baf95['push'](_0x2baf95['shift']());}};_0x285afb(++_0xb916b6);}(_0x1313,0x85));var _0x3131=function(_0x4e439f,_0x42e013){_0x4e439f=_0x4e439f-0x0;var _0x4caaf4=_0x1313[_0x4e439f];return _0x4caaf4;};'use strict';var _=require(_0x3131('0x0'));var util=require('util');var moment=require(_0x3131('0x1'));var BPromise=require(_0x3131('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x3131('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0x3131('0x4'));var logger=require(_0x3131('0x5'))('rpc');var config=require(_0x3131('0x6'));var jayson=require('jayson/promise');var client=jayson[_0x3131('0x7')][_0x3131('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x4fd7c1,_0x23e220,_0x55fd6c){return new BPromise(function(_0x2abf71,_0x3ce767){return client[_0x3131('0x9')](_0x4fd7c1,_0x55fd6c)[_0x3131('0xa')](function(_0x251a02){logger[_0x3131('0xb')](_0x3131('0xc'),_0x23e220,'request\x20sent');logger[_0x3131('0xd')](_0x3131('0xe'),_0x23e220,_0x3131('0xf'),JSON[_0x3131('0x10')](_0x251a02));if(_0x251a02[_0x3131('0x11')]){if(_0x251a02[_0x3131('0x11')][_0x3131('0x12')]===0x1f4){logger['error'](_0x3131('0xc'),_0x23e220,_0x251a02['error']['message']);return _0x3ce767(_0x251a02['error']['message']);}logger['error'](_0x3131('0xc'),_0x23e220,_0x251a02[_0x3131('0x11')][_0x3131('0x13')]);return _0x2abf71(_0x251a02[_0x3131('0x11')][_0x3131('0x13')]);}else{logger['info'](_0x3131('0xc'),_0x23e220,_0x3131('0xf'));_0x2abf71(_0x251a02[_0x3131('0x14')][_0x3131('0x13')]);}})[_0x3131('0x15')](function(_0x4fe677){logger[_0x3131('0x11')](_0x3131('0xc'),_0x23e220,_0x4fe677);_0x3ce767(_0x4fe677);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc172=['./chatApplication.controller','/:id','isAuthenticated','put','update','delete','destroy','exports','multer','util','path','Router','fs-extra'];(function(_0x37989d,_0x5d4a40){var _0x2a0b0e=function(_0x1835b8){while(--_0x1835b8){_0x37989d['push'](_0x37989d['shift']());}};_0x2a0b0e(++_0x5d4a40);}(_0xc172,0x1b5));var _0x2c17=function(_0x4374d3,_0x20b7f5){_0x4374d3=_0x4374d3-0x0;var _0x5df469=_0xc172[_0x4374d3];return _0x5df469;};'use strict';var multer=require(_0x2c17('0x0'));var util=require(_0x2c17('0x1'));var path=require(_0x2c17('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x2c17('0x3')]();var fs_extra=require(_0x2c17('0x4'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0x2c17('0x5'));router['get'](_0x2c17('0x6'),auth[_0x2c17('0x7')](),controller['show']);router[_0x2c17('0x8')]('/:id',auth['isAuthenticated'](),controller[_0x2c17('0x9')]);router[_0x2c17('0xa')](_0x2c17('0x6'),auth[_0x2c17('0x7')](),controller[_0x2c17('0xb')]);module[_0x2c17('0xc')]=router;
\ No newline at end of file
+var _0x2396=['../../config/environment','./chatApplication.controller','get','/:id','show','put','isAuthenticated','delete','destroy','exports','multer','util','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service'];(function(_0x5979ad,_0x338c83){var _0x523ff9=function(_0x397f90){while(--_0x397f90){_0x5979ad['push'](_0x5979ad['shift']());}};_0x523ff9(++_0x338c83);}(_0x2396,0x88));var _0x6239=function(_0x3b2397,_0x4d52e8){_0x3b2397=_0x3b2397-0x0;var _0x4a81ea=_0x2396[_0x3b2397];return _0x4a81ea;};'use strict';var multer=require(_0x6239('0x0'));var util=require(_0x6239('0x1'));var path=require('path');var timeout=require(_0x6239('0x2'));var express=require(_0x6239('0x3'));var router=express[_0x6239('0x4')]();var fs_extra=require(_0x6239('0x5'));var auth=require(_0x6239('0x6'));var interaction=require(_0x6239('0x7'));var config=require(_0x6239('0x8'));var controller=require(_0x6239('0x9'));router[_0x6239('0xa')](_0x6239('0xb'),auth['isAuthenticated'](),controller[_0x6239('0xc')]);router[_0x6239('0xd')](_0x6239('0xb'),auth[_0x6239('0xe')](),controller['update']);router[_0x6239('0xf')](_0x6239('0xb'),auth['isAuthenticated'](),controller[_0x6239('0x10')]);module[_0x6239('0x11')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x65f9=['exports','STRING','sequelize'];(function(_0x1b1353,_0x1a2238){var _0x21735d=function(_0xfc5b49){while(--_0xfc5b49){_0x1b1353['push'](_0x1b1353['shift']());}};_0x21735d(++_0x1a2238);}(_0x65f9,0x19d));var _0x965f=function(_0x52ccfd,_0x210a23){_0x52ccfd=_0x52ccfd-0x0;var _0x4a014f=_0x65f9[_0x52ccfd];return _0x4a014f;};'use strict';var Sequelize=require(_0x965f('0x0'));module[_0x965f('0x1')]={'name':{'type':Sequelize[_0x965f('0x2')],'allowNull':![]},'description':{'type':Sequelize[_0x965f('0x2')]},'write':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]}};
\ No newline at end of file
+var _0xb9f4=['exports','STRING'];(function(_0x45b909,_0x41ef3e){var _0x447787=function(_0x5d27f6){while(--_0x5d27f6){_0x45b909['push'](_0x45b909['shift']());}};_0x447787(++_0x41ef3e);}(_0xb9f4,0xf4));var _0x4b9f=function(_0x127291,_0x410da1){_0x127291=_0x127291-0x0;var _0x207850=_0xb9f4[_0x127291];return _0x207850;};'use strict';var Sequelize=require('sequelize');module[_0x4b9f('0x0')]={'name':{'type':Sequelize['STRING'],'allowNull':![]},'description':{'type':Sequelize[_0x4b9f('0x1')]},'write':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd055=['merge','where','VIRTUAL','options','includeAll','include','findAll','catch','show','params','find','create','body','describe','getUnread','addMembers','ids','omit','getMembers','User','sort','removeMembers','addMessage','ChatGroupId','ChatInternalMessage','getMessages','findOne','$gte','split','format','YYYY-MM-DD\x20HH:mm:ss','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','util','path','sox','to-csv','ejs','fs-extra','lodash','crypto','desk.js','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','register','sendStatus','end','status','json','undefined','count','offset','limit','set','Content-Range','apply','reject','save','update','then','destroy','error','name','send','index','map','ChatGroup','rawAttributes','type','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','filters','pick','filter'];(function(_0x143d1a,_0x5a9951){var _0x26752c=function(_0x52e7ea){while(--_0x52e7ea){_0x143d1a['push'](_0x143d1a['shift']());}};_0x26752c(++_0x5a9951);}(_0xd055,0xdf));var _0x5d05=function(_0x573773,_0x36caa2){_0x573773=_0x573773-0x0;var _0x2b56af=_0xd055[_0x573773];return _0x2b56af;};'use strict';var emlformat=require(_0x5d05('0x0'));var rimraf=require(_0x5d05('0x1'));var zipdir=require(_0x5d05('0x2'));var jsonpatch=require(_0x5d05('0x3'));var rp=require(_0x5d05('0x4'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x5d05('0x5'));var path=require(_0x5d05('0x6'));var sox=require(_0x5d05('0x7'));var csv=require(_0x5d05('0x8'));var ejs=require(_0x5d05('0x9'));var fs=require('fs');var fs_extra=require(_0x5d05('0xa'));var _=require(_0x5d05('0xb'));var squel=require('squel');var crypto=require(_0x5d05('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x5d05('0xd'));var toCsv=require(_0x5d05('0x8'));var querystring=require(_0x5d05('0xe'));var Papa=require(_0x5d05('0xf'));var Redis=require(_0x5d05('0x10'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x5d05('0x11'));var hardwareService=require(_0x5d05('0x12'));var logger=require(_0x5d05('0x13'))('api');var utils=require(_0x5d05('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0x5d05('0x15'));var db=require(_0x5d05('0x16'))['db'];config[_0x5d05('0x17')]=_[_0x5d05('0x18')](config[_0x5d05('0x17')],{'host':_0x5d05('0x19'),'port':0x18eb});var socket=require(_0x5d05('0x1a'))(new Redis(config[_0x5d05('0x17')]));require('./chatGroup.socket')[_0x5d05('0x1b')](socket);function respondWithStatusCode(_0x5386db,_0x1e4cb6){_0x1e4cb6=_0x1e4cb6||0xcc;return function(_0x41a27d){if(_0x41a27d){return _0x5386db[_0x5d05('0x1c')](_0x1e4cb6);}return _0x5386db['status'](_0x1e4cb6)[_0x5d05('0x1d')]();};}function respondWithResult(_0x39f0c2,_0x3d1601){_0x3d1601=_0x3d1601||0xc8;return function(_0x220da0){if(_0x220da0){return _0x39f0c2[_0x5d05('0x1e')](_0x3d1601)[_0x5d05('0x1f')](_0x220da0);}};}function respondWithFilteredResult(_0x592b8c,_0x26989f){return function(_0x11b592){if(_0x11b592){var _0x4bd3d2=typeof _0x26989f['offset']===_0x5d05('0x20')&&typeof _0x26989f['limit']===_0x5d05('0x20');var _0x4731d2=_0x11b592[_0x5d05('0x21')];var _0x380a29=_0x4bd3d2?0x0:_0x26989f[_0x5d05('0x22')];var _0x597b06=_0x4bd3d2?_0x11b592['count']:_0x26989f['offset']+_0x26989f[_0x5d05('0x23')];var _0x2d62d7;if(_0x597b06>=_0x4731d2){_0x597b06=_0x4731d2;_0x2d62d7=0xc8;}else{_0x2d62d7=0xce;}_0x592b8c[_0x5d05('0x1e')](_0x2d62d7);return _0x592b8c[_0x5d05('0x24')](_0x5d05('0x25'),_0x380a29+'-'+_0x597b06+'/'+_0x4731d2)[_0x5d05('0x1f')](_0x11b592);}return null;};}function patchUpdates(_0xabb3ad){return function(_0x9df478){try{jsonpatch[_0x5d05('0x26')](_0x9df478,_0xabb3ad,!![]);}catch(_0x4b97dd){return BPromise[_0x5d05('0x27')](_0x4b97dd);}return _0x9df478[_0x5d05('0x28')]();};}function saveUpdates(_0x35fb27,_0x5d2800){return function(_0x408774){if(_0x408774){return _0x408774[_0x5d05('0x29')](_0x35fb27)[_0x5d05('0x2a')](function(_0x5ba1f8){return _0x5ba1f8;});}return null;};}function removeEntity(_0xe2ceb3,_0x5c72f0){return function(_0x1f088c){if(_0x1f088c){return _0x1f088c[_0x5d05('0x2b')]()[_0x5d05('0x2a')](function(){_0xe2ceb3[_0x5d05('0x1e')](0xcc)[_0x5d05('0x1d')]();});}};}function handleEntityNotFound(_0x193e43,_0x1addb2){return function(_0x33c00b){if(!_0x33c00b){_0x193e43[_0x5d05('0x1c')](0x194);}return _0x33c00b;};}function handleError(_0x1f123c,_0x23e924){_0x23e924=_0x23e924||0x1f4;return function(_0x1e7a53){logger[_0x5d05('0x2c')](_0x1e7a53['stack']);if(_0x1e7a53[_0x5d05('0x2d')]){delete _0x1e7a53[_0x5d05('0x2d')];}_0x1f123c[_0x5d05('0x1e')](_0x23e924)[_0x5d05('0x2e')](_0x1e7a53);};}exports[_0x5d05('0x2f')]=function(_0x173fc9,_0xc85470){var _0x4b33cd={},_0x2e0944={},_0x4188d8={'count':0x0,'rows':[]};var _0x745417=_[_0x5d05('0x30')](db[_0x5d05('0x31')][_0x5d05('0x32')],function(_0x11700c){return{'name':_0x11700c['fieldName'],'type':_0x11700c[_0x5d05('0x33')]['key']};});_0x2e0944[_0x5d05('0x34')]=_['map'](_0x745417,_0x5d05('0x2d'));_0x2e0944[_0x5d05('0x35')]=_[_0x5d05('0x36')](_0x173fc9[_0x5d05('0x35')]);_0x2e0944['filters']=_[_0x5d05('0x37')](_0x2e0944[_0x5d05('0x34')],_0x2e0944[_0x5d05('0x35')]);_0x4b33cd[_0x5d05('0x38')]=_[_0x5d05('0x37')](_0x2e0944[_0x5d05('0x34')],qs[_0x5d05('0x39')](_0x173fc9[_0x5d05('0x35')][_0x5d05('0x39')]));_0x4b33cd['attributes']=_0x4b33cd[_0x5d05('0x38')][_0x5d05('0x3a')]?_0x4b33cd[_0x5d05('0x38')]:_0x2e0944['model'];if(!_0x173fc9['query'][_0x5d05('0x3b')](_0x5d05('0x3c'))){_0x4b33cd[_0x5d05('0x23')]=qs[_0x5d05('0x23')](_0x173fc9[_0x5d05('0x35')][_0x5d05('0x23')]);_0x4b33cd[_0x5d05('0x22')]=qs[_0x5d05('0x22')](_0x173fc9['query'][_0x5d05('0x22')]);}_0x4b33cd[_0x5d05('0x3d')]=qs['sort'](_0x173fc9['query']['sort']);_0x4b33cd['where']=qs[_0x5d05('0x3e')](_[_0x5d05('0x3f')](_0x173fc9[_0x5d05('0x35')],_0x2e0944[_0x5d05('0x3e')]),_0x745417);if(_0x173fc9[_0x5d05('0x35')][_0x5d05('0x40')]){_0x4b33cd['where']=_[_0x5d05('0x41')](_0x4b33cd[_0x5d05('0x42')],{'$or':_[_0x5d05('0x30')](_0x745417,function(_0x58807f){if(_0x58807f['type']!==_0x5d05('0x43')){var _0x46b492={};_0x46b492[_0x58807f['name']]={'$like':'%'+_0x173fc9[_0x5d05('0x35')][_0x5d05('0x40')]+'%'};return _0x46b492;}})});}_0x4b33cd=_['merge']({},_0x4b33cd,_0x173fc9[_0x5d05('0x44')]);var _0x22f2dc={'where':_0x4b33cd[_0x5d05('0x42')]};return db[_0x5d05('0x31')][_0x5d05('0x21')](_0x22f2dc)[_0x5d05('0x2a')](function(_0x48d45b){_0x4188d8['count']=_0x48d45b;if(_0x173fc9['query'][_0x5d05('0x45')]){_0x4b33cd[_0x5d05('0x46')]=[{'all':!![]}];}return db[_0x5d05('0x31')][_0x5d05('0x47')](_0x4b33cd);})[_0x5d05('0x2a')](function(_0x2bc338){_0x4188d8['rows']=_0x2bc338;return _0x4188d8;})[_0x5d05('0x2a')](respondWithFilteredResult(_0xc85470,_0x4b33cd))[_0x5d05('0x48')](handleError(_0xc85470,null));};exports[_0x5d05('0x49')]=function(_0x54b59a,_0x2fe30f){var _0x2be1a5={'raw':!![],'where':{'id':_0x54b59a[_0x5d05('0x4a')]['id']}},_0x53ffe8={};_0x53ffe8['model']=_['keys'](db[_0x5d05('0x31')][_0x5d05('0x32')]);_0x53ffe8['query']=_[_0x5d05('0x36')](_0x54b59a[_0x5d05('0x35')]);_0x53ffe8[_0x5d05('0x3e')]=_[_0x5d05('0x37')](_0x53ffe8[_0x5d05('0x34')],_0x53ffe8['query']);_0x2be1a5['attributes']=_[_0x5d05('0x37')](_0x53ffe8['model'],qs[_0x5d05('0x39')](_0x54b59a[_0x5d05('0x35')]['fields']));_0x2be1a5[_0x5d05('0x38')]=_0x2be1a5[_0x5d05('0x38')][_0x5d05('0x3a')]?_0x2be1a5[_0x5d05('0x38')]:_0x53ffe8[_0x5d05('0x34')];if(_0x54b59a['query'][_0x5d05('0x45')]){_0x2be1a5['include']=[{'all':!![]}];}_0x2be1a5=_[_0x5d05('0x41')]({},_0x2be1a5,_0x54b59a[_0x5d05('0x44')]);return db[_0x5d05('0x31')][_0x5d05('0x4b')](_0x2be1a5)[_0x5d05('0x2a')](handleEntityNotFound(_0x2fe30f,null))[_0x5d05('0x2a')](respondWithResult(_0x2fe30f,null))[_0x5d05('0x48')](handleError(_0x2fe30f,null));};exports[_0x5d05('0x4c')]=function(_0x283a49,_0x16503d){return db[_0x5d05('0x31')][_0x5d05('0x4c')](_0x283a49[_0x5d05('0x4d')],{})['then'](respondWithResult(_0x16503d,0xc9))[_0x5d05('0x48')](handleError(_0x16503d,null));};exports[_0x5d05('0x29')]=function(_0x11c425,_0x2c8545){if(_0x11c425[_0x5d05('0x4d')]['id']){delete _0x11c425[_0x5d05('0x4d')]['id'];}return db[_0x5d05('0x31')]['find']({'where':{'id':_0x11c425[_0x5d05('0x4a')]['id']}})[_0x5d05('0x2a')](handleEntityNotFound(_0x2c8545,null))[_0x5d05('0x2a')](saveUpdates(_0x11c425[_0x5d05('0x4d')],null))[_0x5d05('0x2a')](respondWithResult(_0x2c8545,null))[_0x5d05('0x48')](handleError(_0x2c8545,null));};exports[_0x5d05('0x2b')]=function(_0x121cd2,_0x53c4c7){return db[_0x5d05('0x31')][_0x5d05('0x4b')]({'where':{'id':_0x121cd2[_0x5d05('0x4a')]['id']}})['then'](handleEntityNotFound(_0x53c4c7,null))[_0x5d05('0x2a')](removeEntity(_0x53c4c7,null))[_0x5d05('0x48')](handleError(_0x53c4c7,null));};exports[_0x5d05('0x4e')]=function(_0xdf3295,_0x1f0171){return db[_0x5d05('0x31')][_0x5d05('0x4e')]()[_0x5d05('0x2a')](respondWithResult(_0x1f0171,null))['catch'](handleError(_0x1f0171,null));};exports[_0x5d05('0x4f')]=function(_0xd8203a,_0x24c668,_0x425c4c){return db['ChatInternalMessage'][_0x5d05('0x21')]({'where':{'ChatGroupId':_0xd8203a[_0x5d05('0x4a')]['id'],'ToId':_0xd8203a['user']['id'],'read':![]}})[_0x5d05('0x2a')](function(_0x264bd3){return{'id':_['toInteger'](_0xd8203a[_0x5d05('0x4a')]['id']),'count':_0x264bd3};})['then'](respondWithResult(_0x24c668,null))[_0x5d05('0x48')](handleError(_0x24c668,null));};exports[_0x5d05('0x50')]=function(_0xd436be,_0x5f0772,_0x3288f6){return db[_0x5d05('0x31')]['find']({'where':{'id':_0xd436be['params']['id']}})['then'](handleEntityNotFound(_0x5f0772,null))[_0x5d05('0x2a')](function(_0x5e2ec6){if(_0x5e2ec6){return _0x5e2ec6[_0x5d05('0x50')](_0xd436be['body'][_0x5d05('0x51')],_[_0x5d05('0x52')](_0xd436be['body'],['ids','id'])||{});}})['then'](respondWithResult(_0x5f0772,null))['catch'](handleError(_0x5f0772,null));};exports[_0x5d05('0x53')]=function(_0x563237,_0x3276e7,_0xc8d7e1){var _0x32e9b2={};var _0x3233de={};var _0x584531;var _0x1d62af;return db[_0x5d05('0x31')]['findOne']({'where':{'id':_0x563237[_0x5d05('0x4a')]['id']}})[_0x5d05('0x2a')](handleEntityNotFound(_0x3276e7,null))[_0x5d05('0x2a')](function(_0x549a78){if(_0x549a78){_0x584531=_0x549a78;_0x3233de['model']=_['keys'](db[_0x5d05('0x54')][_0x5d05('0x32')]);_0x3233de['query']=_['keys'](_0x563237[_0x5d05('0x35')]);_0x3233de[_0x5d05('0x3e')]=_[_0x5d05('0x37')](_0x3233de[_0x5d05('0x34')],_0x3233de[_0x5d05('0x35')]);_0x32e9b2['attributes']=_[_0x5d05('0x37')](_0x3233de[_0x5d05('0x34')],qs['fields'](_0x563237[_0x5d05('0x35')][_0x5d05('0x39')]));_0x32e9b2[_0x5d05('0x38')]=_0x32e9b2[_0x5d05('0x38')][_0x5d05('0x3a')]?_0x32e9b2[_0x5d05('0x38')]:_0x3233de['model'];_0x32e9b2[_0x5d05('0x3d')]=qs[_0x5d05('0x55')](_0x563237[_0x5d05('0x35')][_0x5d05('0x55')]);_0x32e9b2[_0x5d05('0x42')]=qs['filters'](_[_0x5d05('0x3f')](_0x563237[_0x5d05('0x35')],_0x3233de[_0x5d05('0x3e')]));if(_0x563237[_0x5d05('0x35')]['filter']){_0x32e9b2[_0x5d05('0x42')]=_['merge'](_0x32e9b2[_0x5d05('0x42')],{'$or':_[_0x5d05('0x30')](_0x32e9b2[_0x5d05('0x38')],function(_0x54b45d){var _0x124695={};_0x124695[_0x54b45d]={'$like':'%'+_0x563237[_0x5d05('0x35')][_0x5d05('0x40')]+'%'};return _0x124695;})});}_0x32e9b2=_[_0x5d05('0x41')]({},_0x32e9b2,_0x563237[_0x5d05('0x44')]);return _0x584531['getMembers'](_0x32e9b2);}})[_0x5d05('0x2a')](function(_0x1d0b31){if(_0x1d0b31){_0x1d62af=_0x1d0b31['length'];if(!_0x563237[_0x5d05('0x35')][_0x5d05('0x3b')]('nolimit')){_0x32e9b2[_0x5d05('0x23')]=qs[_0x5d05('0x23')](_0x563237['query']['limit']);_0x32e9b2[_0x5d05('0x22')]=qs[_0x5d05('0x22')](_0x563237[_0x5d05('0x35')][_0x5d05('0x22')]);}return _0x584531[_0x5d05('0x53')](_0x32e9b2);}})[_0x5d05('0x2a')](function(_0x173d27){if(_0x173d27){return _0x173d27?{'count':_0x1d62af,'rows':_0x173d27}:null;}})['then'](respondWithResult(_0x3276e7,null))[_0x5d05('0x48')](handleError(_0x3276e7,null));};exports[_0x5d05('0x56')]=function(_0x143663,_0x12b842,_0x2926eb){return db[_0x5d05('0x31')]['find']({'where':{'id':_0x143663['params']['id']}})[_0x5d05('0x2a')](handleEntityNotFound(_0x12b842,null))[_0x5d05('0x2a')](function(_0x50e84a){if(_0x50e84a){return _0x50e84a[_0x5d05('0x56')](_0x143663['query'][_0x5d05('0x51')]);}})[_0x5d05('0x2a')](respondWithStatusCode(_0x12b842,null))[_0x5d05('0x48')](handleError(_0x12b842,null));};exports[_0x5d05('0x57')]=function(_0x3171bb,_0x1a0503,_0x4e0483){if(_0x3171bb[_0x5d05('0x4d')]['id']){delete _0x3171bb[_0x5d05('0x4d')]['id'];}return db[_0x5d05('0x31')][_0x5d05('0x4b')]({'where':{'id':_0x3171bb[_0x5d05('0x4a')]['id']}})[_0x5d05('0x2a')](handleEntityNotFound(_0x1a0503,null))[_0x5d05('0x2a')](function(_0x1ffb78){if(_0x1ffb78){_0x3171bb['body'][_0x5d05('0x58')]=_0x1ffb78['id'];return db[_0x5d05('0x59')][_0x5d05('0x4c')](_0x3171bb[_0x5d05('0x4d')]);}})[_0x5d05('0x2a')](respondWithResult(_0x1a0503,null))['catch'](handleError(_0x1a0503,null));};exports[_0x5d05('0x5a')]=function(_0x559025,_0x1c0621,_0x11a582){var _0x1c29f7={};var _0x46cf5c={};var _0x24d16b;var _0x4a6689;return db[_0x5d05('0x31')][_0x5d05('0x5b')]({'where':{'id':_0x559025['params']['id']}})[_0x5d05('0x2a')](handleEntityNotFound(_0x1c0621,null))['then'](function(_0x4023f6){if(_0x4023f6){_0x24d16b=_0x4023f6;_0x46cf5c[_0x5d05('0x34')]=_[_0x5d05('0x36')](db[_0x5d05('0x59')][_0x5d05('0x32')]);_0x46cf5c[_0x5d05('0x35')]=_[_0x5d05('0x36')](_0x559025[_0x5d05('0x35')]);_0x46cf5c[_0x5d05('0x3e')]=_[_0x5d05('0x37')](_0x46cf5c[_0x5d05('0x34')],_0x46cf5c[_0x5d05('0x35')]);_0x1c29f7[_0x5d05('0x38')]=_[_0x5d05('0x37')](_0x46cf5c[_0x5d05('0x34')],qs[_0x5d05('0x39')](_0x559025[_0x5d05('0x35')]['fields']));_0x1c29f7[_0x5d05('0x38')]=_0x1c29f7['attributes'][_0x5d05('0x3a')]?_0x1c29f7[_0x5d05('0x38')]:_0x46cf5c[_0x5d05('0x34')];_0x1c29f7[_0x5d05('0x3d')]=qs['sort'](_0x559025['query'][_0x5d05('0x55')]);_0x1c29f7[_0x5d05('0x42')]=qs[_0x5d05('0x3e')](_[_0x5d05('0x3f')](_0x559025[_0x5d05('0x35')],_0x46cf5c[_0x5d05('0x3e')]));if(_0x559025[_0x5d05('0x35')]['filter']){_0x1c29f7[_0x5d05('0x42')]=_['merge'](_0x1c29f7[_0x5d05('0x42')],{'$or':_[_0x5d05('0x30')](_0x1c29f7[_0x5d05('0x38')],function(_0x3622bf){var _0x18edfe={};_0x18edfe[_0x3622bf]={'$like':'%'+_0x559025[_0x5d05('0x35')][_0x5d05('0x40')]+'%'};return _0x18edfe;})});}if(_0x559025[_0x5d05('0x35')]['$gte']){var _0x327d52=_0x559025[_0x5d05('0x35')][_0x5d05('0x5c')][_0x5d05('0x5d')](',');var _0x40fc65={};_0x40fc65[_0x327d52[0x0]]={'$gte':moment(_0x327d52[0x1])[_0x5d05('0x5e')](_0x5d05('0x5f'))};_0x1c29f7[_0x5d05('0x42')]=_[_0x5d05('0x41')](_0x1c29f7[_0x5d05('0x42')],_0x40fc65);}_0x1c29f7=_[_0x5d05('0x41')]({},_0x1c29f7,_0x559025['options']);return _0x24d16b[_0x5d05('0x5a')](_0x1c29f7);}})[_0x5d05('0x2a')](function(_0x4067de){if(_0x4067de){_0x4a6689=_0x4067de[_0x5d05('0x3a')];if(!_0x559025[_0x5d05('0x35')]['hasOwnProperty']('nolimit')){_0x1c29f7['limit']=qs[_0x5d05('0x23')](_0x559025[_0x5d05('0x35')][_0x5d05('0x23')]);_0x1c29f7[_0x5d05('0x22')]=qs[_0x5d05('0x22')](_0x559025[_0x5d05('0x35')][_0x5d05('0x22')]);}return _0x24d16b[_0x5d05('0x5a')](_0x1c29f7);}})[_0x5d05('0x2a')](function(_0x551c24){if(_0x551c24){return _0x551c24?{'count':_0x4a6689,'rows':_0x551c24}:null;}})[_0x5d05('0x2a')](respondWithResult(_0x1c0621,null))[_0x5d05('0x48')](handleError(_0x1c0621,null));};
\ No newline at end of file
+var _0x6bdc=['name','send','index','map','ChatGroup','rawAttributes','fieldName','type','key','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filter','VIRTUAL','options','includeAll','include','findAll','rows','then','show','merge','find','catch','create','body','params','destroy','describe','getUnread','user','toInteger','addMembers','omit','ids','User','getMembers','removeMembers','addMessage','ChatGroupId','ChatInternalMessage','getMessages','findOne','pick','$gte','format','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','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','redis','defaults','localhost','socket.io-emitter','register','sendStatus','status','end','undefined','limit','count','offset','set','Content-Range','json','apply','reject','save','update','error'];(function(_0x228d4d,_0x458986){var _0x157b8f=function(_0x13a180){while(--_0x13a180){_0x228d4d['push'](_0x228d4d['shift']());}};_0x157b8f(++_0x458986);}(_0x6bdc,0x9f));var _0xc6bd=function(_0x53e381,_0x3edee0){_0x53e381=_0x53e381-0x0;var _0x12bd8d=_0x6bdc[_0x53e381];return _0x12bd8d;};'use strict';var emlformat=require(_0xc6bd('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xc6bd('0x1'));var jsonpatch=require(_0xc6bd('0x2'));var rp=require(_0xc6bd('0x3'));var moment=require(_0xc6bd('0x4'));var BPromise=require(_0xc6bd('0x5'));var Mustache=require(_0xc6bd('0x6'));var util=require(_0xc6bd('0x7'));var path=require(_0xc6bd('0x8'));var sox=require(_0xc6bd('0x9'));var csv=require(_0xc6bd('0xa'));var ejs=require(_0xc6bd('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xc6bd('0xc'));var squel=require('squel');var crypto=require(_0xc6bd('0xd'));var jsforce=require(_0xc6bd('0xe'));var deskjs=require(_0xc6bd('0xf'));var toCsv=require(_0xc6bd('0xa'));var querystring=require(_0xc6bd('0x10'));var Papa=require(_0xc6bd('0x11'));var Redis=require(_0xc6bd('0x12'));var authService=require(_0xc6bd('0x13'));var qs=require(_0xc6bd('0x14'));var as=require(_0xc6bd('0x15'));var hardwareService=require(_0xc6bd('0x16'));var logger=require(_0xc6bd('0x17'))('api');var utils=require(_0xc6bd('0x18'));var config=require(_0xc6bd('0x19'));var licenseUtil=require(_0xc6bd('0x1a'));var db=require('../../mysqldb')['db'];config[_0xc6bd('0x1b')]=_[_0xc6bd('0x1c')](config[_0xc6bd('0x1b')],{'host':_0xc6bd('0x1d'),'port':0x18eb});var socket=require(_0xc6bd('0x1e'))(new Redis(config[_0xc6bd('0x1b')]));require('./chatGroup.socket')[_0xc6bd('0x1f')](socket);function respondWithStatusCode(_0x22f5ef,_0x189200){_0x189200=_0x189200||0xcc;return function(_0x146e1d){if(_0x146e1d){return _0x22f5ef[_0xc6bd('0x20')](_0x189200);}return _0x22f5ef[_0xc6bd('0x21')](_0x189200)[_0xc6bd('0x22')]();};}function respondWithResult(_0xd32541,_0x37bfe0){_0x37bfe0=_0x37bfe0||0xc8;return function(_0xa1eaa5){if(_0xa1eaa5){return _0xd32541[_0xc6bd('0x21')](_0x37bfe0)['json'](_0xa1eaa5);}};}function respondWithFilteredResult(_0xe566b,_0x4fe59e){return function(_0x36d59c){if(_0x36d59c){var _0x3b36aa=typeof _0x4fe59e['offset']===_0xc6bd('0x23')&&typeof _0x4fe59e[_0xc6bd('0x24')]==='undefined';var _0x267fbe=_0x36d59c[_0xc6bd('0x25')];var _0x4359f4=_0x3b36aa?0x0:_0x4fe59e['offset'];var _0x1f23d5=_0x3b36aa?_0x36d59c[_0xc6bd('0x25')]:_0x4fe59e[_0xc6bd('0x26')]+_0x4fe59e[_0xc6bd('0x24')];var _0x1e5ccd;if(_0x1f23d5>=_0x267fbe){_0x1f23d5=_0x267fbe;_0x1e5ccd=0xc8;}else{_0x1e5ccd=0xce;}_0xe566b[_0xc6bd('0x21')](_0x1e5ccd);return _0xe566b[_0xc6bd('0x27')](_0xc6bd('0x28'),_0x4359f4+'-'+_0x1f23d5+'/'+_0x267fbe)[_0xc6bd('0x29')](_0x36d59c);}return null;};}function patchUpdates(_0x574033){return function(_0x40366f){try{jsonpatch[_0xc6bd('0x2a')](_0x40366f,_0x574033,!![]);}catch(_0x50ea86){return BPromise[_0xc6bd('0x2b')](_0x50ea86);}return _0x40366f[_0xc6bd('0x2c')]();};}function saveUpdates(_0x171b37,_0x281e9a){return function(_0x24a678){if(_0x24a678){return _0x24a678[_0xc6bd('0x2d')](_0x171b37)['then'](function(_0x31d5ae){return _0x31d5ae;});}return null;};}function removeEntity(_0x5a45bc,_0x47bc85){return function(_0x5ddacd){if(_0x5ddacd){return _0x5ddacd['destroy']()['then'](function(){_0x5a45bc[_0xc6bd('0x21')](0xcc)[_0xc6bd('0x22')]();});}};}function handleEntityNotFound(_0x4a6630,_0x199ccf){return function(_0x3b8da7){if(!_0x3b8da7){_0x4a6630['sendStatus'](0x194);}return _0x3b8da7;};}function handleError(_0x3b6586,_0x60eb54){_0x60eb54=_0x60eb54||0x1f4;return function(_0x382dff){logger[_0xc6bd('0x2e')](_0x382dff['stack']);if(_0x382dff[_0xc6bd('0x2f')]){delete _0x382dff[_0xc6bd('0x2f')];}_0x3b6586[_0xc6bd('0x21')](_0x60eb54)[_0xc6bd('0x30')](_0x382dff);};}exports[_0xc6bd('0x31')]=function(_0x3b8585,_0x36cde7){var _0xca3bf2={},_0x1f671a={},_0x59792c={'count':0x0,'rows':[]};var _0x3f1e90=_[_0xc6bd('0x32')](db[_0xc6bd('0x33')][_0xc6bd('0x34')],function(_0x1f13af){return{'name':_0x1f13af[_0xc6bd('0x35')],'type':_0x1f13af[_0xc6bd('0x36')][_0xc6bd('0x37')]};});_0x1f671a[_0xc6bd('0x38')]=_[_0xc6bd('0x32')](_0x3f1e90,_0xc6bd('0x2f'));_0x1f671a['query']=_[_0xc6bd('0x39')](_0x3b8585[_0xc6bd('0x3a')]);_0x1f671a[_0xc6bd('0x3b')]=_[_0xc6bd('0x3c')](_0x1f671a[_0xc6bd('0x38')],_0x1f671a[_0xc6bd('0x3a')]);_0xca3bf2[_0xc6bd('0x3d')]=_[_0xc6bd('0x3c')](_0x1f671a[_0xc6bd('0x38')],qs['fields'](_0x3b8585[_0xc6bd('0x3a')][_0xc6bd('0x3e')]));_0xca3bf2[_0xc6bd('0x3d')]=_0xca3bf2[_0xc6bd('0x3d')][_0xc6bd('0x3f')]?_0xca3bf2[_0xc6bd('0x3d')]:_0x1f671a[_0xc6bd('0x38')];if(!_0x3b8585[_0xc6bd('0x3a')][_0xc6bd('0x40')](_0xc6bd('0x41'))){_0xca3bf2[_0xc6bd('0x24')]=qs[_0xc6bd('0x24')](_0x3b8585['query'][_0xc6bd('0x24')]);_0xca3bf2[_0xc6bd('0x26')]=qs['offset'](_0x3b8585['query'][_0xc6bd('0x26')]);}_0xca3bf2[_0xc6bd('0x42')]=qs[_0xc6bd('0x43')](_0x3b8585[_0xc6bd('0x3a')]['sort']);_0xca3bf2[_0xc6bd('0x44')]=qs['filters'](_['pick'](_0x3b8585['query'],_0x1f671a[_0xc6bd('0x3b')]),_0x3f1e90);if(_0x3b8585[_0xc6bd('0x3a')][_0xc6bd('0x45')]){_0xca3bf2[_0xc6bd('0x44')]=_['merge'](_0xca3bf2[_0xc6bd('0x44')],{'$or':_[_0xc6bd('0x32')](_0x3f1e90,function(_0x4307bb){if(_0x4307bb[_0xc6bd('0x36')]!==_0xc6bd('0x46')){var _0x1b4e93={};_0x1b4e93[_0x4307bb[_0xc6bd('0x2f')]]={'$like':'%'+_0x3b8585[_0xc6bd('0x3a')][_0xc6bd('0x45')]+'%'};return _0x1b4e93;}})});}_0xca3bf2=_['merge']({},_0xca3bf2,_0x3b8585[_0xc6bd('0x47')]);var _0x282aad={'where':_0xca3bf2[_0xc6bd('0x44')]};return db['ChatGroup'][_0xc6bd('0x25')](_0x282aad)['then'](function(_0x41e4ec){_0x59792c[_0xc6bd('0x25')]=_0x41e4ec;if(_0x3b8585[_0xc6bd('0x3a')][_0xc6bd('0x48')]){_0xca3bf2[_0xc6bd('0x49')]=[{'all':!![]}];}return db[_0xc6bd('0x33')][_0xc6bd('0x4a')](_0xca3bf2);})['then'](function(_0x5eaf3c){_0x59792c[_0xc6bd('0x4b')]=_0x5eaf3c;return _0x59792c;})[_0xc6bd('0x4c')](respondWithFilteredResult(_0x36cde7,_0xca3bf2))['catch'](handleError(_0x36cde7,null));};exports[_0xc6bd('0x4d')]=function(_0x300c30,_0x6e334a){var _0x439154={'raw':!![],'where':{'id':_0x300c30['params']['id']}},_0x3c8d15={};_0x3c8d15[_0xc6bd('0x38')]=_['keys'](db[_0xc6bd('0x33')][_0xc6bd('0x34')]);_0x3c8d15['query']=_[_0xc6bd('0x39')](_0x300c30['query']);_0x3c8d15[_0xc6bd('0x3b')]=_[_0xc6bd('0x3c')](_0x3c8d15['model'],_0x3c8d15[_0xc6bd('0x3a')]);_0x439154['attributes']=_[_0xc6bd('0x3c')](_0x3c8d15[_0xc6bd('0x38')],qs[_0xc6bd('0x3e')](_0x300c30[_0xc6bd('0x3a')][_0xc6bd('0x3e')]));_0x439154[_0xc6bd('0x3d')]=_0x439154[_0xc6bd('0x3d')][_0xc6bd('0x3f')]?_0x439154[_0xc6bd('0x3d')]:_0x3c8d15[_0xc6bd('0x38')];if(_0x300c30[_0xc6bd('0x3a')][_0xc6bd('0x48')]){_0x439154[_0xc6bd('0x49')]=[{'all':!![]}];}_0x439154=_[_0xc6bd('0x4e')]({},_0x439154,_0x300c30[_0xc6bd('0x47')]);return db[_0xc6bd('0x33')][_0xc6bd('0x4f')](_0x439154)['then'](handleEntityNotFound(_0x6e334a,null))[_0xc6bd('0x4c')](respondWithResult(_0x6e334a,null))[_0xc6bd('0x50')](handleError(_0x6e334a,null));};exports['create']=function(_0x13b712,_0x16ea13){return db[_0xc6bd('0x33')][_0xc6bd('0x51')](_0x13b712['body'],{})[_0xc6bd('0x4c')](respondWithResult(_0x16ea13,0xc9))['catch'](handleError(_0x16ea13,null));};exports['update']=function(_0xa034d,_0x5cc581){if(_0xa034d[_0xc6bd('0x52')]['id']){delete _0xa034d[_0xc6bd('0x52')]['id'];}return db['ChatGroup'][_0xc6bd('0x4f')]({'where':{'id':_0xa034d[_0xc6bd('0x53')]['id']}})[_0xc6bd('0x4c')](handleEntityNotFound(_0x5cc581,null))['then'](saveUpdates(_0xa034d[_0xc6bd('0x52')],null))[_0xc6bd('0x4c')](respondWithResult(_0x5cc581,null))[_0xc6bd('0x50')](handleError(_0x5cc581,null));};exports[_0xc6bd('0x54')]=function(_0x104ea8,_0x388229){return db[_0xc6bd('0x33')][_0xc6bd('0x4f')]({'where':{'id':_0x104ea8[_0xc6bd('0x53')]['id']}})[_0xc6bd('0x4c')](handleEntityNotFound(_0x388229,null))[_0xc6bd('0x4c')](removeEntity(_0x388229,null))['catch'](handleError(_0x388229,null));};exports[_0xc6bd('0x55')]=function(_0x5a3ba4,_0x5b338e){return db[_0xc6bd('0x33')][_0xc6bd('0x55')]()[_0xc6bd('0x4c')](respondWithResult(_0x5b338e,null))[_0xc6bd('0x50')](handleError(_0x5b338e,null));};exports[_0xc6bd('0x56')]=function(_0x31bb11,_0x55cd96,_0x9a80fa){return db['ChatInternalMessage']['count']({'where':{'ChatGroupId':_0x31bb11['params']['id'],'ToId':_0x31bb11[_0xc6bd('0x57')]['id'],'read':![]}})[_0xc6bd('0x4c')](function(_0x21483a){return{'id':_[_0xc6bd('0x58')](_0x31bb11[_0xc6bd('0x53')]['id']),'count':_0x21483a};})[_0xc6bd('0x4c')](respondWithResult(_0x55cd96,null))[_0xc6bd('0x50')](handleError(_0x55cd96,null));};exports[_0xc6bd('0x59')]=function(_0x2d9ee9,_0xeca269,_0x401642){return db['ChatGroup'][_0xc6bd('0x4f')]({'where':{'id':_0x2d9ee9[_0xc6bd('0x53')]['id']}})[_0xc6bd('0x4c')](handleEntityNotFound(_0xeca269,null))[_0xc6bd('0x4c')](function(_0x4f422a){if(_0x4f422a){return _0x4f422a[_0xc6bd('0x59')](_0x2d9ee9[_0xc6bd('0x52')]['ids'],_[_0xc6bd('0x5a')](_0x2d9ee9['body'],[_0xc6bd('0x5b'),'id'])||{});}})['then'](respondWithResult(_0xeca269,null))['catch'](handleError(_0xeca269,null));};exports['getMembers']=function(_0x59fdf3,_0x10970d,_0x4a62d1){var _0x2df446={};var _0x36f39a={};var _0x502f1d;var _0x5c60f2;return db[_0xc6bd('0x33')]['findOne']({'where':{'id':_0x59fdf3[_0xc6bd('0x53')]['id']}})['then'](handleEntityNotFound(_0x10970d,null))[_0xc6bd('0x4c')](function(_0x3b28e7){if(_0x3b28e7){_0x502f1d=_0x3b28e7;_0x36f39a[_0xc6bd('0x38')]=_[_0xc6bd('0x39')](db[_0xc6bd('0x5c')][_0xc6bd('0x34')]);_0x36f39a[_0xc6bd('0x3a')]=_['keys'](_0x59fdf3[_0xc6bd('0x3a')]);_0x36f39a['filters']=_[_0xc6bd('0x3c')](_0x36f39a['model'],_0x36f39a[_0xc6bd('0x3a')]);_0x2df446['attributes']=_[_0xc6bd('0x3c')](_0x36f39a[_0xc6bd('0x38')],qs[_0xc6bd('0x3e')](_0x59fdf3['query'][_0xc6bd('0x3e')]));_0x2df446[_0xc6bd('0x3d')]=_0x2df446['attributes'][_0xc6bd('0x3f')]?_0x2df446[_0xc6bd('0x3d')]:_0x36f39a[_0xc6bd('0x38')];_0x2df446[_0xc6bd('0x42')]=qs[_0xc6bd('0x43')](_0x59fdf3[_0xc6bd('0x3a')][_0xc6bd('0x43')]);_0x2df446[_0xc6bd('0x44')]=qs[_0xc6bd('0x3b')](_['pick'](_0x59fdf3[_0xc6bd('0x3a')],_0x36f39a[_0xc6bd('0x3b')]));if(_0x59fdf3[_0xc6bd('0x3a')]['filter']){_0x2df446[_0xc6bd('0x44')]=_[_0xc6bd('0x4e')](_0x2df446[_0xc6bd('0x44')],{'$or':_[_0xc6bd('0x32')](_0x2df446[_0xc6bd('0x3d')],function(_0xc935a6){var _0x4d6fdb={};_0x4d6fdb[_0xc935a6]={'$like':'%'+_0x59fdf3['query'][_0xc6bd('0x45')]+'%'};return _0x4d6fdb;})});}_0x2df446=_[_0xc6bd('0x4e')]({},_0x2df446,_0x59fdf3['options']);return _0x502f1d[_0xc6bd('0x5d')](_0x2df446);}})['then'](function(_0x2496b5){if(_0x2496b5){_0x5c60f2=_0x2496b5[_0xc6bd('0x3f')];if(!_0x59fdf3[_0xc6bd('0x3a')]['hasOwnProperty']('nolimit')){_0x2df446['limit']=qs[_0xc6bd('0x24')](_0x59fdf3[_0xc6bd('0x3a')][_0xc6bd('0x24')]);_0x2df446[_0xc6bd('0x26')]=qs[_0xc6bd('0x26')](_0x59fdf3['query'][_0xc6bd('0x26')]);}return _0x502f1d[_0xc6bd('0x5d')](_0x2df446);}})[_0xc6bd('0x4c')](function(_0x4a5ee3){if(_0x4a5ee3){return _0x4a5ee3?{'count':_0x5c60f2,'rows':_0x4a5ee3}:null;}})['then'](respondWithResult(_0x10970d,null))[_0xc6bd('0x50')](handleError(_0x10970d,null));};exports['removeMembers']=function(_0x3c24ed,_0x4ebc5b,_0x3a82b4){return db[_0xc6bd('0x33')][_0xc6bd('0x4f')]({'where':{'id':_0x3c24ed[_0xc6bd('0x53')]['id']}})[_0xc6bd('0x4c')](handleEntityNotFound(_0x4ebc5b,null))[_0xc6bd('0x4c')](function(_0x3fcc4c){if(_0x3fcc4c){return _0x3fcc4c[_0xc6bd('0x5e')](_0x3c24ed[_0xc6bd('0x3a')][_0xc6bd('0x5b')]);}})[_0xc6bd('0x4c')](respondWithStatusCode(_0x4ebc5b,null))[_0xc6bd('0x50')](handleError(_0x4ebc5b,null));};exports[_0xc6bd('0x5f')]=function(_0xa16ba1,_0x4be110,_0x1057de){if(_0xa16ba1[_0xc6bd('0x52')]['id']){delete _0xa16ba1['body']['id'];}return db[_0xc6bd('0x33')][_0xc6bd('0x4f')]({'where':{'id':_0xa16ba1[_0xc6bd('0x53')]['id']}})[_0xc6bd('0x4c')](handleEntityNotFound(_0x4be110,null))['then'](function(_0x3a7dc1){if(_0x3a7dc1){_0xa16ba1[_0xc6bd('0x52')][_0xc6bd('0x60')]=_0x3a7dc1['id'];return db[_0xc6bd('0x61')][_0xc6bd('0x51')](_0xa16ba1['body']);}})[_0xc6bd('0x4c')](respondWithResult(_0x4be110,null))[_0xc6bd('0x50')](handleError(_0x4be110,null));};exports[_0xc6bd('0x62')]=function(_0x81604d,_0x327bab,_0x4a661c){var _0x330132={};var _0x222e14={};var _0x53fc5f;var _0x1f796c;return db[_0xc6bd('0x33')][_0xc6bd('0x63')]({'where':{'id':_0x81604d['params']['id']}})[_0xc6bd('0x4c')](handleEntityNotFound(_0x327bab,null))[_0xc6bd('0x4c')](function(_0x18a59a){if(_0x18a59a){_0x53fc5f=_0x18a59a;_0x222e14[_0xc6bd('0x38')]=_['keys'](db[_0xc6bd('0x61')][_0xc6bd('0x34')]);_0x222e14[_0xc6bd('0x3a')]=_['keys'](_0x81604d[_0xc6bd('0x3a')]);_0x222e14[_0xc6bd('0x3b')]=_[_0xc6bd('0x3c')](_0x222e14[_0xc6bd('0x38')],_0x222e14[_0xc6bd('0x3a')]);_0x330132[_0xc6bd('0x3d')]=_[_0xc6bd('0x3c')](_0x222e14['model'],qs[_0xc6bd('0x3e')](_0x81604d['query'][_0xc6bd('0x3e')]));_0x330132[_0xc6bd('0x3d')]=_0x330132[_0xc6bd('0x3d')]['length']?_0x330132[_0xc6bd('0x3d')]:_0x222e14[_0xc6bd('0x38')];_0x330132[_0xc6bd('0x42')]=qs[_0xc6bd('0x43')](_0x81604d[_0xc6bd('0x3a')][_0xc6bd('0x43')]);_0x330132[_0xc6bd('0x44')]=qs[_0xc6bd('0x3b')](_[_0xc6bd('0x64')](_0x81604d[_0xc6bd('0x3a')],_0x222e14[_0xc6bd('0x3b')]));if(_0x81604d['query'][_0xc6bd('0x45')]){_0x330132['where']=_[_0xc6bd('0x4e')](_0x330132[_0xc6bd('0x44')],{'$or':_[_0xc6bd('0x32')](_0x330132[_0xc6bd('0x3d')],function(_0x1304a1){var _0x2e5bd5={};_0x2e5bd5[_0x1304a1]={'$like':'%'+_0x81604d['query'][_0xc6bd('0x45')]+'%'};return _0x2e5bd5;})});}if(_0x81604d[_0xc6bd('0x3a')][_0xc6bd('0x65')]){var _0x167cf3=_0x81604d[_0xc6bd('0x3a')][_0xc6bd('0x65')]['split'](',');var _0x55c19b={};_0x55c19b[_0x167cf3[0x0]]={'$gte':moment(_0x167cf3[0x1])[_0xc6bd('0x66')]('YYYY-MM-DD\x20HH:mm:ss')};_0x330132[_0xc6bd('0x44')]=_[_0xc6bd('0x4e')](_0x330132['where'],_0x55c19b);}_0x330132=_[_0xc6bd('0x4e')]({},_0x330132,_0x81604d['options']);return _0x53fc5f[_0xc6bd('0x62')](_0x330132);}})['then'](function(_0x568b69){if(_0x568b69){_0x1f796c=_0x568b69[_0xc6bd('0x3f')];if(!_0x81604d[_0xc6bd('0x3a')][_0xc6bd('0x40')](_0xc6bd('0x41'))){_0x330132['limit']=qs[_0xc6bd('0x24')](_0x81604d['query']['limit']);_0x330132[_0xc6bd('0x26')]=qs[_0xc6bd('0x26')](_0x81604d[_0xc6bd('0x3a')]['offset']);}return _0x53fc5f[_0xc6bd('0x62')](_0x330132);}})['then'](function(_0x195e60){if(_0x195e60){return _0x195e60?{'count':_0x1f796c,'rows':_0x195e60}:null;}})['then'](respondWithResult(_0x327bab,null))['catch'](handleError(_0x327bab,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x55c3=['save','update','remove','emit','hasOwnProperty','hook','../../mysqldb','ChatGroup','setMaxListeners'];(function(_0x5930cd,_0x4d123d){var _0x1a23b3=function(_0x35de28){while(--_0x35de28){_0x5930cd['push'](_0x5930cd['shift']());}};_0x1a23b3(++_0x4d123d);}(_0x55c3,0x189));var _0x355c=function(_0x5ab1fa,_0x54b02d){_0x5ab1fa=_0x5ab1fa-0x0;var _0x14392d=_0x55c3[_0x5ab1fa];return _0x14392d;};'use strict';var EventEmitter=require('events');var ChatGroup=require(_0x355c('0x0'))['db'][_0x355c('0x1')];var ChatGroupEvents=new EventEmitter();ChatGroupEvents[_0x355c('0x2')](0x0);var events={'afterCreate':_0x355c('0x3'),'afterUpdate':_0x355c('0x4'),'afterDestroy':_0x355c('0x5')};function emitEvent(_0x1f5257){return function(_0x132c7a,_0x1655c1,_0x1c7a4f){ChatGroupEvents[_0x355c('0x6')](_0x1f5257+':'+_0x132c7a['id'],_0x132c7a);ChatGroupEvents[_0x355c('0x6')](_0x1f5257,_0x132c7a);_0x1c7a4f(null);};}for(var e in events){if(events[_0x355c('0x7')](e)){var event=events[e];ChatGroup[_0x355c('0x8')](e,emitEvent(event));}}module['exports']=ChatGroupEvents;
\ No newline at end of file
+var _0x5fd1=['events','save','remove','emit','hasOwnProperty','hook','exports'];(function(_0x40a0a0,_0x2e07dd){var _0x328af3=function(_0x276e63){while(--_0x276e63){_0x40a0a0['push'](_0x40a0a0['shift']());}};_0x328af3(++_0x2e07dd);}(_0x5fd1,0x18f));var _0x15fd=function(_0x4adbb0,_0x5f5a74){_0x4adbb0=_0x4adbb0-0x0;var _0x5e235c=_0x5fd1[_0x4adbb0];return _0x5e235c;};'use strict';var EventEmitter=require(_0x15fd('0x0'));var ChatGroup=require('../../mysqldb')['db']['ChatGroup'];var ChatGroupEvents=new EventEmitter();ChatGroupEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x15fd('0x1'),'afterUpdate':'update','afterDestroy':_0x15fd('0x2')};function emitEvent(_0x198715){return function(_0x317b6a,_0x1c7508,_0x19a356){ChatGroupEvents[_0x15fd('0x3')](_0x198715+':'+_0x317b6a['id'],_0x317b6a);ChatGroupEvents[_0x15fd('0x3')](_0x198715,_0x317b6a);_0x19a356(null);};}for(var e in events){if(events[_0x15fd('0x4')](e)){var event=events[e];ChatGroup[_0x15fd('0x5')](e,emitEvent(event));}}module[_0x15fd('0x6')]=ChatGroupEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x41c0=['path','../../config/environment','./chatGroup.attributes','exports','define','ChatGroup','lodash','util','../../config/logger','bluebird','request-promise'];(function(_0x44c0f0,_0x5d0a0d){var _0x28d220=function(_0x5f198f){while(--_0x5f198f){_0x44c0f0['push'](_0x44c0f0['shift']());}};_0x28d220(++_0x5d0a0d);}(_0x41c0,0xe2));var _0x041c=function(_0x18deef,_0x5b8774){_0x18deef=_0x18deef-0x0;var _0x3f4361=_0x41c0[_0x18deef];return _0x3f4361;};'use strict';var _=require(_0x041c('0x0'));var util=require(_0x041c('0x1'));var logger=require(_0x041c('0x2'))('api');var moment=require('moment');var BPromise=require(_0x041c('0x3'));var rp=require(_0x041c('0x4'));var fs=require('fs');var path=require(_0x041c('0x5'));var rimraf=require('rimraf');var config=require(_0x041c('0x6'));var attributes=require(_0x041c('0x7'));module[_0x041c('0x8')]=function(_0x5aff91,_0x148f62){return _0x5aff91[_0x041c('0x9')](_0x041c('0xa'),attributes,{'tableName':'chat_groups','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x98a8=['../../config/logger','api','moment','bluebird','request-promise','rimraf','./chatGroup.attributes','exports','define','ChatGroup','chat_groups','lodash','util'];(function(_0x26462c,_0xd20a35){var _0x509a42=function(_0x1b22c9){while(--_0x1b22c9){_0x26462c['push'](_0x26462c['shift']());}};_0x509a42(++_0xd20a35);}(_0x98a8,0xdb));var _0x898a=function(_0x44f60c,_0x51f8d9){_0x44f60c=_0x44f60c-0x0;var _0x329c0a=_0x98a8[_0x44f60c];return _0x329c0a;};'use strict';var _=require(_0x898a('0x0'));var util=require(_0x898a('0x1'));var logger=require(_0x898a('0x2'))(_0x898a('0x3'));var moment=require(_0x898a('0x4'));var BPromise=require(_0x898a('0x5'));var rp=require(_0x898a('0x6'));var fs=require('fs');var path=require('path');var rimraf=require(_0x898a('0x7'));var config=require('../../config/environment');var attributes=require(_0x898a('0x8'));module[_0x898a('0x9')]=function(_0x30ccec,_0x347200){return _0x30ccec[_0x898a('0xa')](_0x898a('0xb'),attributes,{'tableName':_0x898a('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xabcb=['http','redis','defaults','localhost','socket.io-emitter','./chatGroup.socket','request','then','ChatGroup,\x20%s,\x20%s','request\x20sent','debug','ChatGroup,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client'];(function(_0x4fd9cb,_0x138ff9){var _0x400725=function(_0x4302ae){while(--_0x4302ae){_0x4fd9cb['push'](_0x4fd9cb['shift']());}};_0x400725(++_0x138ff9);}(_0xabcb,0xf9));var _0xbabc=function(_0x2b98bc,_0x3ed19b){_0x2b98bc=_0x2b98bc-0x0;var _0x3b42d6=_0xabcb[_0x2b98bc];return _0x3b42d6;};'use strict';var _=require('lodash');var util=require(_0xbabc('0x0'));var moment=require(_0xbabc('0x1'));var BPromise=require(_0xbabc('0x2'));var rs=require(_0xbabc('0x3'));var fs=require('fs');var Redis=require(_0xbabc('0x4'));var db=require(_0xbabc('0x5'))['db'];var utils=require(_0xbabc('0x6'));var logger=require(_0xbabc('0x7'))(_0xbabc('0x8'));var config=require(_0xbabc('0x9'));var jayson=require(_0xbabc('0xa'));var client=jayson[_0xbabc('0xb')][_0xbabc('0xc')]({'port':0x232a});config[_0xbabc('0xd')]=_[_0xbabc('0xe')](config[_0xbabc('0xd')],{'host':_0xbabc('0xf'),'port':0x18eb});var socket=require(_0xbabc('0x10'))(new Redis(config[_0xbabc('0xd')]));require(_0xbabc('0x11'))['register'](socket);function respondWithRpcPromise(_0x290cb8,_0xf6ac41,_0xa4305c){return new BPromise(function(_0x4bd932,_0x3d5240){return client[_0xbabc('0x12')](_0x290cb8,_0xa4305c)[_0xbabc('0x13')](function(_0x41d379){logger['info'](_0xbabc('0x14'),_0xf6ac41,_0xbabc('0x15'));logger[_0xbabc('0x16')](_0xbabc('0x17'),_0xf6ac41,_0xbabc('0x15'),JSON[_0xbabc('0x18')](_0x41d379));if(_0x41d379[_0xbabc('0x19')]){if(_0x41d379['error'][_0xbabc('0x1a')]===0x1f4){logger[_0xbabc('0x19')](_0xbabc('0x14'),_0xf6ac41,_0x41d379['error'][_0xbabc('0x1b')]);return _0x3d5240(_0x41d379[_0xbabc('0x19')][_0xbabc('0x1b')]);}logger[_0xbabc('0x19')]('ChatGroup,\x20%s,\x20%s',_0xf6ac41,_0x41d379[_0xbabc('0x19')]['message']);return _0x4bd932(_0x41d379[_0xbabc('0x19')][_0xbabc('0x1b')]);}else{logger['info'](_0xbabc('0x14'),_0xf6ac41,'request\x20sent');_0x4bd932(_0x41d379[_0xbabc('0x1c')][_0xbabc('0x1b')]);}})['catch'](function(_0x9ea880){logger['error'](_0xbabc('0x14'),_0xf6ac41,_0x9ea880);_0x3d5240(_0x9ea880);});});}
\ No newline at end of file
+var _0xcebf=['then','ChatGroup,\x20%s,\x20%s','request\x20sent','ChatGroup,\x20%s,\x20%s,\x20%s','stringify','error','message','result','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','jayson/promise','client','redis','defaults','localhost','socket.io-emitter','register','request'];(function(_0x3c9405,_0x1fb579){var _0x186391=function(_0x2d818a){while(--_0x2d818a){_0x3c9405['push'](_0x3c9405['shift']());}};_0x186391(++_0x1fb579);}(_0xcebf,0x1a0));var _0xfceb=function(_0x5a4366,_0x15ec2a){_0x5a4366=_0x5a4366-0x0;var _0x58595f=_0xcebf[_0x5a4366];return _0x58595f;};'use strict';var _=require('lodash');var util=require(_0xfceb('0x0'));var moment=require(_0xfceb('0x1'));var BPromise=require(_0xfceb('0x2'));var rs=require(_0xfceb('0x3'));var fs=require('fs');var Redis=require(_0xfceb('0x4'));var db=require(_0xfceb('0x5'))['db'];var utils=require(_0xfceb('0x6'));var logger=require(_0xfceb('0x7'))('rpc');var config=require('../../config/environment');var jayson=require(_0xfceb('0x8'));var client=jayson[_0xfceb('0x9')]['http']({'port':0x232a});config[_0xfceb('0xa')]=_[_0xfceb('0xb')](config[_0xfceb('0xa')],{'host':_0xfceb('0xc'),'port':0x18eb});var socket=require(_0xfceb('0xd'))(new Redis(config[_0xfceb('0xa')]));require('./chatGroup.socket')[_0xfceb('0xe')](socket);function respondWithRpcPromise(_0x13a2f9,_0x8ab13,_0x57d241){return new BPromise(function(_0x387da0,_0x41b29a){return client[_0xfceb('0xf')](_0x13a2f9,_0x57d241)[_0xfceb('0x10')](function(_0x316ab4){logger['info'](_0xfceb('0x11'),_0x8ab13,_0xfceb('0x12'));logger['debug'](_0xfceb('0x13'),_0x8ab13,_0xfceb('0x12'),JSON[_0xfceb('0x14')](_0x316ab4));if(_0x316ab4[_0xfceb('0x15')]){if(_0x316ab4[_0xfceb('0x15')]['code']===0x1f4){logger[_0xfceb('0x15')]('ChatGroup,\x20%s,\x20%s',_0x8ab13,_0x316ab4['error'][_0xfceb('0x16')]);return _0x41b29a(_0x316ab4[_0xfceb('0x15')][_0xfceb('0x16')]);}logger[_0xfceb('0x15')](_0xfceb('0x11'),_0x8ab13,_0x316ab4[_0xfceb('0x15')][_0xfceb('0x16')]);return _0x387da0(_0x316ab4[_0xfceb('0x15')][_0xfceb('0x16')]);}else{logger['info'](_0xfceb('0x11'),_0x8ab13,_0xfceb('0x12'));_0x387da0(_0x316ab4[_0xfceb('0x17')][_0xfceb('0x16')]);}})['catch'](function(_0x5bcc5c){logger[_0xfceb('0x15')](_0xfceb('0x11'),_0x8ab13,_0x5bcc5c);_0x41b29a(_0x5bcc5c);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4382=['length','chatGroup:','./chatGroup.events','save','remove','update','emit','removeListener','register'];(function(_0xfcfc24,_0x48ca53){var _0x58f773=function(_0x263b5f){while(--_0x263b5f){_0xfcfc24['push'](_0xfcfc24['shift']());}};_0x58f773(++_0x48ca53);}(_0x4382,0x161));var _0x2438=function(_0x1fc51c,_0x1f7b3a){_0x1fc51c=_0x1fc51c-0x0;var _0x43136f=_0x4382[_0x1fc51c];return _0x43136f;};'use strict';var ChatGroupEvents=require(_0x2438('0x0'));var events=[_0x2438('0x1'),_0x2438('0x2'),_0x2438('0x3')];function createListener(_0x174fe0,_0x39e3f6){return function(_0x4af8ed){_0x39e3f6[_0x2438('0x4')](_0x174fe0,_0x4af8ed);};}function removeListener(_0x14d323,_0x2b5234){return function(){ChatGroupEvents[_0x2438('0x5')](_0x14d323,_0x2b5234);};}exports[_0x2438('0x6')]=function(_0x41efb9){for(var _0x4247fd=0x0,_0x401843=events[_0x2438('0x7')];_0x4247fd<_0x401843;_0x4247fd++){var _0x5c6751=events[_0x4247fd];var _0x5283ba=createListener(_0x2438('0x8')+_0x5c6751,_0x41efb9);ChatGroupEvents['on'](_0x5c6751,_0x5283ba);}};
\ No newline at end of file
+var _0xe801=['save','remove','removeListener','register','chatGroup:','./chatGroup.events'];(function(_0x990ac6,_0x45e320){var _0x32b200=function(_0x427738){while(--_0x427738){_0x990ac6['push'](_0x990ac6['shift']());}};_0x32b200(++_0x45e320);}(_0xe801,0x11f));var _0x1e80=function(_0x24178f,_0x1cabf4){_0x24178f=_0x24178f-0x0;var _0x2137fa=_0xe801[_0x24178f];return _0x2137fa;};'use strict';var ChatGroupEvents=require(_0x1e80('0x0'));var events=[_0x1e80('0x1'),_0x1e80('0x2'),'update'];function createListener(_0x5804d0,_0x6476da){return function(_0x56fd67){_0x6476da['emit'](_0x5804d0,_0x56fd67);};}function removeListener(_0x5bda64,_0x28502d){return function(){ChatGroupEvents[_0x1e80('0x3')](_0x5bda64,_0x28502d);};}exports[_0x1e80('0x4')]=function(_0x847494){for(var _0x3d507b=0x0,_0x59d12f=events['length'];_0x3d507b<_0x59d12f;_0x3d507b++){var _0x5d94ae=events[_0x3d507b];var _0x3e415a=createListener(_0x1e80('0x5')+_0x5d94ae,_0x847494);ChatGroupEvents['on'](_0x5d94ae,_0x3e415a);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5e4d=['create','post','/:id/members','addMembers','addMessage','put','update','delete','destroy','removeMembers','exports','util','path','../../components/auth/service','../../components/interaction/service','./chatGroup.controller','get','index','/describe','isAuthenticated','describe','/:id','show','/:id/unread','getUnread','getMembers','/:id/messages','getMessages'];(function(_0x27530d,_0x46480a){var _0x59e561=function(_0x395fe9){while(--_0x395fe9){_0x27530d['push'](_0x27530d['shift']());}};_0x59e561(++_0x46480a);}(_0x5e4d,0x7b));var _0xd5e4=function(_0x380a6b,_0x37cf38){_0x380a6b=_0x380a6b-0x0;var _0x5e8f20=_0x5e4d[_0x380a6b];return _0x5e8f20;};'use strict';var multer=require('multer');var util=require(_0xd5e4('0x0'));var path=require(_0xd5e4('0x1'));var timeout=require('connect-timeout');var express=require('express');var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0xd5e4('0x2'));var interaction=require(_0xd5e4('0x3'));var config=require('../../config/environment');var controller=require(_0xd5e4('0x4'));router[_0xd5e4('0x5')]('/',auth['isAuthenticated'](),controller[_0xd5e4('0x6')]);router[_0xd5e4('0x5')](_0xd5e4('0x7'),auth[_0xd5e4('0x8')](),controller[_0xd5e4('0x9')]);router[_0xd5e4('0x5')](_0xd5e4('0xa'),auth[_0xd5e4('0x8')](),controller[_0xd5e4('0xb')]);router[_0xd5e4('0x5')](_0xd5e4('0xc'),auth[_0xd5e4('0x8')](),controller[_0xd5e4('0xd')]);router[_0xd5e4('0x5')]('/:id/members',auth['isAuthenticated'](),controller[_0xd5e4('0xe')]);router[_0xd5e4('0x5')](_0xd5e4('0xf'),auth['isAuthenticated'](),controller[_0xd5e4('0x10')]);router['post']('/',auth[_0xd5e4('0x8')](),controller[_0xd5e4('0x11')]);router[_0xd5e4('0x12')](_0xd5e4('0x13'),auth['isAuthenticated'](),controller[_0xd5e4('0x14')]);router[_0xd5e4('0x12')](_0xd5e4('0xf'),auth[_0xd5e4('0x8')](),controller[_0xd5e4('0x15')]);router[_0xd5e4('0x16')](_0xd5e4('0xa'),auth[_0xd5e4('0x8')](),controller[_0xd5e4('0x17')]);router[_0xd5e4('0x18')](_0xd5e4('0xa'),auth[_0xd5e4('0x8')](),controller[_0xd5e4('0x19')]);router[_0xd5e4('0x18')](_0xd5e4('0x13'),auth['isAuthenticated'](),controller[_0xd5e4('0x1a')]);module[_0xd5e4('0x1b')]=router;
\ No newline at end of file
+var _0x628b=['show','/:id/unread','getUnread','/:id/members','getMembers','getMessages','post','/:id','update','delete','removeMembers','exports','multer','path','connect-timeout','express','Router','../../components/interaction/service','../../config/environment','./chatGroup.controller','get','isAuthenticated','index','describe'];(function(_0x288554,_0x364256){var _0x155fee=function(_0x4f7185){while(--_0x4f7185){_0x288554['push'](_0x288554['shift']());}};_0x155fee(++_0x364256);}(_0x628b,0x84));var _0xb628=function(_0xbdd759,_0x34ea54){_0xbdd759=_0xbdd759-0x0;var _0x43b28c=_0x628b[_0xbdd759];return _0x43b28c;};'use strict';var multer=require(_0xb628('0x0'));var util=require('util');var path=require(_0xb628('0x1'));var timeout=require(_0xb628('0x2'));var express=require(_0xb628('0x3'));var router=express[_0xb628('0x4')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0xb628('0x5'));var config=require(_0xb628('0x6'));var controller=require(_0xb628('0x7'));router[_0xb628('0x8')]('/',auth[_0xb628('0x9')](),controller[_0xb628('0xa')]);router[_0xb628('0x8')]('/describe',auth[_0xb628('0x9')](),controller[_0xb628('0xb')]);router['get']('/:id',auth[_0xb628('0x9')](),controller[_0xb628('0xc')]);router[_0xb628('0x8')](_0xb628('0xd'),auth[_0xb628('0x9')](),controller[_0xb628('0xe')]);router['get'](_0xb628('0xf'),auth[_0xb628('0x9')](),controller[_0xb628('0x10')]);router[_0xb628('0x8')]('/:id/messages',auth[_0xb628('0x9')](),controller[_0xb628('0x11')]);router[_0xb628('0x12')]('/',auth[_0xb628('0x9')](),controller['create']);router[_0xb628('0x12')](_0xb628('0xf'),auth[_0xb628('0x9')](),controller['addMembers']);router[_0xb628('0x12')]('/:id/messages',auth[_0xb628('0x9')](),controller['addMessage']);router['put'](_0xb628('0x13'),auth[_0xb628('0x9')](),controller[_0xb628('0x14')]);router[_0xb628('0x15')](_0xb628('0x13'),auth[_0xb628('0x9')](),controller['destroy']);router[_0xb628('0x15')](_0xb628('0xf'),auth['isAuthenticated'](),controller[_0xb628('0x16')]);module[_0xb628('0x17')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x69d3=['STRING','out','sequelize','exports','BOOLEAN','ENUM','star','TEXT','DATE'];(function(_0x122096,_0x60c295){var _0x3d1966=function(_0x3d569e){while(--_0x3d569e){_0x122096['push'](_0x122096['shift']());}};_0x3d1966(++_0x60c295);}(_0x69d3,0xda));var _0x369d=function(_0x579cf1,_0x25614c){_0x579cf1=_0x579cf1-0x0;var _0x11b4a5=_0x69d3[_0x579cf1];return _0x11b4a5;};'use strict';var Sequelize=require(_0x369d('0x0'));module[_0x369d('0x1')]={'closed':{'type':Sequelize[_0x369d('0x2')],'defaultValue':![]},'ratingValue':{'type':Sequelize['INTEGER']},'ratingType':{'type':Sequelize[_0x369d('0x3')](_0x369d('0x4'),'thumb'),'defaultValue':'star'},'ratingMessage':{'type':Sequelize[_0x369d('0x5')]},'pathTranscript':{'type':Sequelize['TEXT']},'mailTranscript':{'type':Sequelize['STRING'],'validate':{'isEmail':!![]}},'closedAt':{'type':Sequelize[_0x369d('0x6')]},'disposition':{'type':Sequelize[_0x369d('0x7')]},'secondDisposition':{'type':Sequelize[_0x369d('0x7')]},'thirdDisposition':{'type':Sequelize[_0x369d('0x7')]},'note':{'type':Sequelize[_0x369d('0x7')]},'browserName':{'type':Sequelize[_0x369d('0x7')]},'browserVersion':{'type':Sequelize[_0x369d('0x7')]},'osName':{'type':Sequelize[_0x369d('0x7')]},'osVersion':{'type':Sequelize[_0x369d('0x7')]},'deviceModel':{'type':Sequelize['STRING']},'deviceVendor':{'type':Sequelize['STRING']},'deviceType':{'type':Sequelize[_0x369d('0x7')]},'referer':{'type':Sequelize[_0x369d('0x5')]},'customerIp':{'type':Sequelize[_0x369d('0x7')]},'formData':{'type':Sequelize[_0x369d('0x5')]('long')},'read1stAt':{'type':Sequelize['DATE']},'lastMsgAt':{'type':Sequelize[_0x369d('0x6')]},'lastMsgDirection':{'type':Sequelize[_0x369d('0x3')]('in',_0x369d('0x8')),'defaultValue':'in','allowNull':![]},'closeReason':{'type':Sequelize[_0x369d('0x7')]},'customerPort':{'type':Sequelize[_0x369d('0x7')]},'vidaooSessionId':{'type':Sequelize[_0x369d('0x5')]},'autoreplyExecuted':{'type':Sequelize['BOOLEAN'],'defaultValue':![]}};
\ No newline at end of file
+var _0x01d3=['INTEGER','star','thumb','TEXT','STRING','DATE','long','ENUM','sequelize','exports','BOOLEAN'];(function(_0x31c8c6,_0x2262fe){var _0x1cf483=function(_0x1fb36c){while(--_0x1fb36c){_0x31c8c6['push'](_0x31c8c6['shift']());}};_0x1cf483(++_0x2262fe);}(_0x01d3,0xa2));var _0x301d=function(_0x4a1c00,_0x410a9e){_0x4a1c00=_0x4a1c00-0x0;var _0x387359=_0x01d3[_0x4a1c00];return _0x387359;};'use strict';var Sequelize=require(_0x301d('0x0'));module[_0x301d('0x1')]={'closed':{'type':Sequelize[_0x301d('0x2')],'defaultValue':![]},'ratingValue':{'type':Sequelize[_0x301d('0x3')]},'ratingType':{'type':Sequelize['ENUM'](_0x301d('0x4'),_0x301d('0x5')),'defaultValue':'star'},'ratingMessage':{'type':Sequelize[_0x301d('0x6')]},'pathTranscript':{'type':Sequelize[_0x301d('0x6')]},'mailTranscript':{'type':Sequelize[_0x301d('0x7')],'validate':{'isEmail':!![]}},'closedAt':{'type':Sequelize[_0x301d('0x8')]},'disposition':{'type':Sequelize['STRING']},'secondDisposition':{'type':Sequelize[_0x301d('0x7')]},'thirdDisposition':{'type':Sequelize[_0x301d('0x7')]},'note':{'type':Sequelize[_0x301d('0x7')]},'browserName':{'type':Sequelize[_0x301d('0x7')]},'browserVersion':{'type':Sequelize[_0x301d('0x7')]},'osName':{'type':Sequelize[_0x301d('0x7')]},'osVersion':{'type':Sequelize[_0x301d('0x7')]},'deviceModel':{'type':Sequelize[_0x301d('0x7')]},'deviceVendor':{'type':Sequelize[_0x301d('0x7')]},'deviceType':{'type':Sequelize[_0x301d('0x7')]},'referer':{'type':Sequelize['TEXT']},'customerIp':{'type':Sequelize[_0x301d('0x7')]},'formData':{'type':Sequelize[_0x301d('0x6')](_0x301d('0x9'))},'read1stAt':{'type':Sequelize['DATE']},'lastMsgAt':{'type':Sequelize[_0x301d('0x8')]},'lastMsgDirection':{'type':Sequelize[_0x301d('0xa')]('in','out'),'defaultValue':'in','allowNull':![]},'closeReason':{'type':Sequelize['STRING']},'customerPort':{'type':Sequelize['STRING']},'vidaooSessionId':{'type':Sequelize[_0x301d('0x6')]},'autoreplyExecuted':{'type':Sequelize[_0x301d('0x2')],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xef0f=['alias','fullname','agent_fullname','[%s]\x20%s:\x20%s\x0a','MM/DD/YYYY\x20HH:mm:ss','secret','appendFileSync','MailAccount','MailServerOut','Smtp','service','host','port','secure','auth','pass','sendMail','\x22%s\x22\x20<%s>','Mail\x20Transcript','mailTranscript','addMessage','ids','getMessages','YYYY-MM-DD\x20HH:mm:ss','findAll','hasOwnProperty','includeAgent','addTags','setTags','omit','emit','removeTags','download','unix','server','files','tmp','attachments','transcript-%d-%s.zip','firstName','lastName','direction','Account','mkdirSync','Chat','Owner','N.A.','browserName','osName','existsSync','pipe','createWriteStream','renderFile','views','downloadInteraction.ejs','transcript-','createPdfFromHTML','err','eml-format','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','querystring','papaparse','ioredis','../../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','redis','defaults','localhost','socket.io-emitter','./chatInteraction.socket','jayson/promise','http','then','info','ChatInteraction,\x20%s,\x20%s','request\x20sent','ChatInteraction,\x20%s,\x20%s,\x20%s','stringify','error','message','catch','sendStatus','status','json','offset','undefined','limit','set','Content-Range','save','update','destroy','end','stack','name','send','render','body','contact','interaction','account','Users','TagIds','Tags','split','forEach','push','index','ChatInteraction','rawAttributes','fieldName','key','model','query','filters','intersection','attributes','fields','nolimit','sort','where','pick','select','field','u.id','u.fullname','ui.ChatInteractionId','from','user_has_chat_interactions','left_join','users','chat_interactions','cm_contacts','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','a.id\x20=\x20i.ChatWebsiteId','chat_messages','me.ChatInteractionId\x20=\x20i.id','chat_interaction_has_tags','tools_tags','t.id\x20=\x20it.TagId','expr','search','parseSearch','length','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','c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?','ContactId','type','text','start','Tag','map','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','some','compact','isEmpty','i.ChatWebsiteId\x20IN\x20?','concat','createdAt','$gte','parse','$lte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','\x20=\x20?','read','`unreadMessages`\x20>\x200','tag','isArray','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','Sequelize','SELECT','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','order','DESC','t.id\x20IN\x20?','i.ChatWebsiteId\x20IS\x20NOT\x20NULL','user','role','agent','getChatWebsites','ChatWebsiteId','sequelize','toString','count','merge','a.key','Account.key','a.mandatoryDisposition','Account.mandatoryDisposition','contactName','Contact.firstName','Contact.lastName','c.phone','Contact.phone','Contact.mobile','c.fax','Contact.fax','o.internal','GROUP_CONCAT(DISTINCT\x20t.id)','ui.ChatInteractionId\x20IN\x20?','groupBy','ChatInteractionId','all','rows','params','keys','includeAll','include','options','create','describe','createVidaooSession','ChatWebsite','findOne','vidaooEscalation','vidaooTopic','vidaooMetadata','vidaooApiKey','email','isNull','vidaooNote','follow','metadata','ValidationError','join_url','out','ChatMessage','Unable\x20to\x20create\x20Vidaoo\x20session','updateAttributes','CmContact','abandon','abandonInteraction,\x20%s,\x20%s,\x20%s','Interaction\x20already\x20assigned','closed','disposition','attachmentUpload','originalname','basename','file','filename','mimetype','Unauthorized','Attachment','attachId','join','root','server/files/attachments/','offline-chat/','server/files/chat/upload/','format','now','Messages','%s%d','agentAlias','System','customer','Visitor','agentIdentifier','website_alias'];(function(_0x37ea50,_0x1c30e4){var _0x25d492=function(_0x374579){while(--_0x374579){_0x37ea50['push'](_0x37ea50['shift']());}};_0x25d492(++_0x1c30e4);}(_0xef0f,0x168));var _0xfef0=function(_0xc051b2,_0x3d6d9d){_0xc051b2=_0xc051b2-0x0;var _0x599dc2=_0xef0f[_0xc051b2];return _0x599dc2;};'use strict';var emlformat=require(_0xfef0('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xfef0('0x1'));var jsonpatch=require(_0xfef0('0x2'));var rp=require(_0xfef0('0x3'));var moment=require('moment');var BPromise=require(_0xfef0('0x4'));var Mustache=require(_0xfef0('0x5'));var util=require(_0xfef0('0x6'));var path=require('path');var sox=require(_0xfef0('0x7'));var csv=require(_0xfef0('0x8'));var ejs=require(_0xfef0('0x9'));var fs=require('fs');var fs_extra=require(_0xfef0('0xa'));var _=require(_0xfef0('0xb'));var squel=require(_0xfef0('0xc'));var crypto=require('crypto');var jsforce=require(_0xfef0('0xd'));var deskjs=require('desk.js');var toCsv=require(_0xfef0('0x8'));var querystring=require(_0xfef0('0xe'));var Papa=require(_0xfef0('0xf'));var Redis=require(_0xfef0('0x10'));var authService=require(_0xfef0('0x11'));var qs=require(_0xfef0('0x12'));var as=require(_0xfef0('0x13'));var pdf=require(_0xfef0('0x14'));var hardwareService=require(_0xfef0('0x15'));var logger=require(_0xfef0('0x16'))(_0xfef0('0x17'));var utils=require(_0xfef0('0x18'));var config=require(_0xfef0('0x19'));var licenseUtil=require(_0xfef0('0x1a'));var db=require('../../mysqldb')['db'];config[_0xfef0('0x1b')]=_[_0xfef0('0x1c')](config[_0xfef0('0x1b')],{'host':_0xfef0('0x1d'),'port':0x18eb});var socket=require(_0xfef0('0x1e'))(new Redis(config[_0xfef0('0x1b')]));require(_0xfef0('0x1f'))['register'](socket);var jayson=require(_0xfef0('0x20'));var client=jayson['client']['http']({'port':0x232b});var client9004=jayson['client'][_0xfef0('0x21')]({'port':0x232c});function respondWithRpcPromise(_0x284b6d,_0x3510a7,_0x1bce2f,_0x2a96d9){return new BPromise(function(_0x3f9a6c,_0x155833){var _0x2887e6=_0x2a96d9||client;return _0x2887e6['request'](_0x284b6d,_0x1bce2f)[_0xfef0('0x22')](function(_0x1642cd){logger[_0xfef0('0x23')](_0xfef0('0x24'),_0x3510a7,_0xfef0('0x25'));logger['debug'](_0xfef0('0x26'),_0x3510a7,'request\x20sent',JSON[_0xfef0('0x27')](_0x1642cd));if(_0x1642cd[_0xfef0('0x28')]){if(_0x1642cd[_0xfef0('0x28')]['code']===0x1f4){logger[_0xfef0('0x28')]('ChatInteraction,\x20%s,\x20%s',_0x3510a7,_0x1642cd[_0xfef0('0x28')][_0xfef0('0x29')]);return _0x155833(_0x1642cd['error']['message']);}logger['error'](_0xfef0('0x24'),_0x3510a7,_0x1642cd['error'][_0xfef0('0x29')]);return _0x3f9a6c(_0x1642cd[_0xfef0('0x28')][_0xfef0('0x29')]);}else{logger[_0xfef0('0x23')](_0xfef0('0x24'),_0x3510a7,_0xfef0('0x25'));_0x3f9a6c(_0x1642cd['result']['message']);}})[_0xfef0('0x2a')](function(_0x1ffaa4){logger[_0xfef0('0x28')](_0xfef0('0x24'),_0x3510a7,_0x1ffaa4);_0x155833(_0x1ffaa4);});});}function respondWithStatusCode(_0xab231c,_0xf60f2){_0xf60f2=_0xf60f2||0xcc;return function(_0x5df04f){if(_0x5df04f){return _0xab231c[_0xfef0('0x2b')](_0xf60f2);}return _0xab231c[_0xfef0('0x2c')](_0xf60f2)['end']();};}function respondWithResult(_0x1a6758,_0x394bad){_0x394bad=_0x394bad||0xc8;return function(_0xca0cce){if(_0xca0cce){return _0x1a6758[_0xfef0('0x2c')](_0x394bad)[_0xfef0('0x2d')](_0xca0cce);}};}function respondWithFilteredResult(_0x1ac4a3,_0x3e3c4c){return function(_0x3e026a){if(_0x3e026a){var _0x26cb9a=typeof _0x3e3c4c[_0xfef0('0x2e')]===_0xfef0('0x2f')&&typeof _0x3e3c4c[_0xfef0('0x30')]==='undefined';var _0x445625=_0x3e026a['count'];var _0x4eaf74=_0x26cb9a?0x0:_0x3e3c4c[_0xfef0('0x2e')];var _0x2ae54a=_0x26cb9a?_0x3e026a['count']:_0x3e3c4c['offset']+_0x3e3c4c['limit'];var _0x4f65cd;if(_0x2ae54a>=_0x445625){_0x2ae54a=_0x445625;_0x4f65cd=0xc8;}else{_0x4f65cd=0xce;}_0x1ac4a3['status'](_0x4f65cd);return _0x1ac4a3[_0xfef0('0x31')](_0xfef0('0x32'),_0x4eaf74+'-'+_0x2ae54a+'/'+_0x445625)[_0xfef0('0x2d')](_0x3e026a);}return null;};}function patchUpdates(_0x5cda6b){return function(_0x4d0778){try{jsonpatch['apply'](_0x4d0778,_0x5cda6b,!![]);}catch(_0x1f8110){return BPromise['reject'](_0x1f8110);}return _0x4d0778[_0xfef0('0x33')]();};}function saveUpdates(_0x3783f9,_0x1b9f39){return function(_0x4a2773){if(_0x4a2773){return _0x4a2773[_0xfef0('0x34')](_0x3783f9)['then'](function(_0x4234e4){return _0x4234e4;});}return null;};}function removeEntity(_0x1f21b7,_0x234d49){return function(_0xe5188e){if(_0xe5188e){return _0xe5188e[_0xfef0('0x35')]()[_0xfef0('0x22')](function(){_0x1f21b7[_0xfef0('0x2c')](0xcc)[_0xfef0('0x36')]();});}};}function handleEntityNotFound(_0x590e37,_0x24ea7c){return function(_0xea09ec){if(!_0xea09ec){_0x590e37[_0xfef0('0x2b')](0x194);}return _0xea09ec;};}function handleError(_0x36b2d1,_0xae697){_0xae697=_0xae697||0x1f4;return function(_0x262341){logger[_0xfef0('0x28')](_0x262341[_0xfef0('0x37')]);if(_0x262341[_0xfef0('0x38')]){delete _0x262341[_0xfef0('0x38')];}_0x36b2d1[_0xfef0('0x2c')](_0xae697)[_0xfef0('0x39')](_0x262341);};}function getMustacheRender(_0x366667,_0x4a8af4){return Mustache[_0xfef0('0x3a')](_0x366667,_['merge'](_0x4a8af4[_0xfef0('0x3b')],{'contact':_0x4a8af4[_0xfef0('0x3c')],'message':_0x4a8af4[_0xfef0('0x29')],'agent':_0x4a8af4['agent'],'interaction':_0x4a8af4[_0xfef0('0x3d')],'account':_0x4a8af4[_0xfef0('0x3e')]}))||'';}function getInteractionUsers(_0x3f2753,_0x5537c8){return new BPromise(function(_0x8613a0,_0x3abcc5){try{if(_0x5537c8[_0x3f2753['id']]){_0x3f2753[_0xfef0('0x3f')]=_['map'](_0x5537c8[_0x3f2753['id']],function(_0x3a6667){return{'id':_0x3a6667['id'],'fullname':_0x3a6667['fullname']};});}}catch(_0x49ed48){_0x3abcc5(_0x49ed48);}_0x8613a0(_0x3f2753);});}function getInteractionTags(_0xf30aff,_0x547a5d){return new BPromise(function(_0x5c3305,_0xbf6ddd){try{if(_0xf30aff[_0xfef0('0x40')]){_0xf30aff[_0xfef0('0x41')]=[];_0xf30aff[_0xfef0('0x40')][_0xfef0('0x42')](',')[_0xfef0('0x43')](function(_0x4dd8f8){_0xf30aff[_0xfef0('0x41')][_0xfef0('0x44')](_0x547a5d[_0x4dd8f8]);});}delete _0xf30aff['TagIds'];}catch(_0x54d5cb){_0xbf6ddd(_0x54d5cb);}_0x5c3305(_0xf30aff);});}function updateChatInteraction(_0x1d554e,_0x5dc824,_0x1fc518){return new BPromise(function(_0x22c940,_0x3c100c){return getInteractionUsers(_0x1d554e,_0x1fc518)[_0xfef0('0x22')](function(_0x199c57){return getInteractionTags(_0x199c57,_0x5dc824);})[_0xfef0('0x22')](function(_0x166a7b){_0x22c940(_0x166a7b);})[_0xfef0('0x2a')](function(_0x4e63f3){_0x3c100c(_0x4e63f3);});});}exports[_0xfef0('0x45')]=function(_0x50e372,_0x4b6da1){var _0x18c656={},_0x17d7f2={},_0x5bf416={'count':0x0,'rows':[]};var _0x2af79f=_['map'](db[_0xfef0('0x46')][_0xfef0('0x47')],function(_0x1f252e){return{'name':_0x1f252e[_0xfef0('0x48')],'type':_0x1f252e['type'][_0xfef0('0x49')]};});_0x17d7f2[_0xfef0('0x4a')]=_['map'](_0x2af79f,'name');_0x17d7f2[_0xfef0('0x4b')]=_['keys'](_0x50e372[_0xfef0('0x4b')]);_0x17d7f2[_0xfef0('0x4c')]=_[_0xfef0('0x4d')](_0x17d7f2[_0xfef0('0x4a')],_0x17d7f2[_0xfef0('0x4b')]);_0x18c656[_0xfef0('0x4e')]=_['intersection'](_0x17d7f2[_0xfef0('0x4a')],qs['fields'](_0x50e372['query'][_0xfef0('0x4f')]));_0x18c656[_0xfef0('0x4e')]=_0x18c656[_0xfef0('0x4e')]['length']?_0x18c656[_0xfef0('0x4e')]:_0x17d7f2['model'];if(!_0x50e372['query']['hasOwnProperty'](_0xfef0('0x50'))){_0x18c656[_0xfef0('0x30')]=qs[_0xfef0('0x30')](_0x50e372[_0xfef0('0x4b')][_0xfef0('0x30')]);_0x18c656[_0xfef0('0x2e')]=qs[_0xfef0('0x2e')](_0x50e372[_0xfef0('0x4b')][_0xfef0('0x2e')]);}_0x18c656['order']=qs['sort'](_0x50e372[_0xfef0('0x4b')][_0xfef0('0x51')]);_0x18c656[_0xfef0('0x52')]=qs[_0xfef0('0x4c')](_[_0xfef0('0x53')](_0x50e372[_0xfef0('0x4b')],_0x17d7f2[_0xfef0('0x4c')]),_0x2af79f);var _0x20b647=[];var _0x5e989f=squel[_0xfef0('0x54')]()[_0xfef0('0x55')]('id')[_0xfef0('0x55')](_0xfef0('0x38'))[_0xfef0('0x55')]('color')['from']('tools_tags');var _0x445f3f=squel[_0xfef0('0x54')]()[_0xfef0('0x55')](_0xfef0('0x56'))['field'](_0xfef0('0x57'))[_0xfef0('0x55')](_0xfef0('0x58'))[_0xfef0('0x59')](_0xfef0('0x5a'),'ui')[_0xfef0('0x5b')](_0xfef0('0x5c'),'u','u.id\x20=\x20ui.UserId');var _0x3458b0=squel[_0xfef0('0x54')]()['from'](_0xfef0('0x5d'),'i')['left_join'](_0xfef0('0x5e'),'c',_0xfef0('0x5f'))['left_join'](_0xfef0('0x5c'),'o','o.id\x20=\x20i.UserId')['left_join']('chat_websites','a',_0xfef0('0x60'))[_0xfef0('0x5b')](_0xfef0('0x61'),'me',_0xfef0('0x62'))[_0xfef0('0x5b')](_0xfef0('0x63'),'it','it.ChatInteractionId\x20=\x20i.id')[_0xfef0('0x5b')](_0xfef0('0x64'),'t',_0xfef0('0x65'));var _0x45abb3=squel[_0xfef0('0x66')]();var _0x58d95e=[];var _0x59d1b6=squel['expr']();var _0x135653;if(_0x50e372['query'][_0xfef0('0x67')]){_0x135653=as[_0xfef0('0x68')](_0x50e372[_0xfef0('0x4b')][_0xfef0('0x67')]);var _0xd0255c=_0x135653['sqlOperator'];for(var _0x2abdb7=0x0;_0x2abdb7<_0x135653['conditions'][_0xfef0('0x69')];_0x2abdb7++){var _0x4a1316=_0x135653['conditions'][_0x2abdb7];var _0x3a12c5='i';var _0x3c5640=_[_0xfef0('0x6a')](_0x2af79f,[_0xfef0('0x38'),_0x4a1316[_0xfef0('0x55')]]);if(!_0x3c5640){switch(_0x4a1316[_0xfef0('0x55')]){case _0xfef0('0x6b'):if(_0x4a1316[_0xfef0('0x6c')]==0x1){_0x3458b0[_0xfef0('0x6d')]('`'+_0x4a1316[_0xfef0('0x55')]+_0xfef0('0x6e'));}else{_0x3458b0[_0xfef0('0x6d')]('`'+_0x4a1316['field']+_0xfef0('0x6f'));}break;case _0xfef0('0x70'):if(_0x4a1316[_0xfef0('0x71')]===_0xfef0('0x72')){if(_0x4a1316[_0xfef0('0x6c')]['split']('\x20')[_0xfef0('0x69')]>0x1){_0x45abb3[_0xd0255c](_0xfef0('0x73'),qs[_0xfef0('0x74')](_0x4a1316[_0xfef0('0x6c')]),null);}else{var _0x176fc7='%'+_0x4a1316[_0xfef0('0x6c')]+'%';_0x45abb3[_0xd0255c](_0xfef0('0x75'),_0x176fc7,_0x176fc7,_0x176fc7);}}else{_0x3c5640=_[_0xfef0('0x6a')](_0x2af79f,[_0xfef0('0x38'),_0xfef0('0x76')]);_0x4a1316['field']=_0xfef0('0x76');_0x1d7caf=as['buildExpression'](_0x3a12c5,_0x3c5640[_0xfef0('0x77')],_0x4a1316);_0x45abb3[_0xd0255c](_0x1d7caf[_0xfef0('0x78')],_0x1d7caf['value'][_0xfef0('0x79')],_0x1d7caf[_0xfef0('0x6c')][_0xfef0('0x36')]);}break;case _0xfef0('0x7a'):var _0x1e0ad5=_0x4a1316['value'][_0xfef0('0x42')](',')[_0xfef0('0x7b')](function(_0x2ccb33){return Number(_0x2ccb33);});_0x1e0ad5['forEach'](function(_0x117b74){_0x59d1b6['or'](_0xfef0('0x7c'),'%,'+_0x117b74+',%');});_0x58d95e=_[_0xfef0('0x7d')](_0x58d95e,_0x1e0ad5);break;case _0xfef0('0x7e'):if(_0x4a1316[_0xfef0('0x71')]===_0xfef0('0x72')){_0x45abb3[_0xd0255c](_0xfef0('0x7f'),'%'+_0x4a1316['value']+'%',null);}else{_0x3c5640=_[_0xfef0('0x6a')](_0x2af79f,[_0xfef0('0x38'),_0xfef0('0x80')]);_0x4a1316[_0xfef0('0x55')]=_0xfef0('0x80');_0x1d7caf=as[_0xfef0('0x81')](_0x3a12c5,_0x3c5640['type'],_0x4a1316);_0x45abb3[_0xd0255c](_0x1d7caf[_0xfef0('0x78')],_0x1d7caf[_0xfef0('0x6c')][_0xfef0('0x79')],_0x1d7caf[_0xfef0('0x6c')]['end']);}break;case _0xfef0('0x3b'):_0x1d7caf=as[_0xfef0('0x81')]('me',null,_0x4a1316);_0x45abb3[_0xd0255c](_0x1d7caf['text'],_0x1d7caf[_0xfef0('0x6c')][_0xfef0('0x79')],_0x1d7caf[_0xfef0('0x6c')][_0xfef0('0x36')]);break;}}else{var _0x1d7caf=as['buildExpression'](_0x3a12c5,_0x3c5640['type'],_0x4a1316);_0x45abb3[_0xd0255c](_0x1d7caf['text'],_0x1d7caf[_0xfef0('0x6c')][_0xfef0('0x79')],_0x1d7caf[_0xfef0('0x6c')]['end']);}}}else{var _0x24229e=_(_0x50e372['query'])['keys']()['map'](function(_0x2a92de){return _[_0xfef0('0x82')](_0x2af79f,['name',_0x2a92de])?_0x2a92de:undefined;})[_0xfef0('0x83')]()[_0xfef0('0x6c')]();if(!_[_0xfef0('0x84')](_0x24229e)){_0x24229e['forEach'](function(_0x3f2b55){if(_0x3f2b55==='ChatWebsiteId'){_0x3458b0['where'](_0xfef0('0x85'),[][_0xfef0('0x86')](_0x50e372[_0xfef0('0x4b')][_0x3f2b55]));}else if(_0x3f2b55===_0xfef0('0x87')){var _0x4df63b=JSON['parse'](_0x50e372['query'][_0x3f2b55])[_0xfef0('0x88')];var _0x546455=JSON[_0xfef0('0x89')](_0x50e372[_0xfef0('0x4b')][_0x3f2b55])[_0xfef0('0x8a')];_0x3458b0[_0xfef0('0x52')](_0xfef0('0x8b'),_0x4df63b,_0x546455);}else{if(_0x50e372['query'][_0x3f2b55]===_0xfef0('0x8c')){_0x3458b0['where']('i.'+_0x3f2b55+'\x20IS\x20NULL');}else{_0x3458b0[_0xfef0('0x52')]('i.'+_0x3f2b55+_0xfef0('0x8d'),_0x50e372[_0xfef0('0x4b')][_0x3f2b55]);}}});}if(_0x50e372[_0xfef0('0x4b')]['read']){if(_0x50e372['query'][_0xfef0('0x8e')]==0x1){_0x3458b0[_0xfef0('0x6d')]('`unreadMessages`\x20=\x200');}else{_0x3458b0[_0xfef0('0x6d')](_0xfef0('0x8f'));}}if(_0x50e372[_0xfef0('0x4b')][_0xfef0('0x90')]){_0x58d95e=_[_0xfef0('0x91')](_0x50e372[_0xfef0('0x4b')][_0xfef0('0x90')])?_0x50e372[_0xfef0('0x4b')][_0xfef0('0x90')]:new Array(_0x50e372[_0xfef0('0x4b')][_0xfef0('0x90')]);_0x58d95e[_0xfef0('0x43')](function(_0x3c1136){_0x59d1b6['or'](_0xfef0('0x7c'),'%,'+_0x3c1136+',%');});}if(_0x50e372[_0xfef0('0x4b')][_0xfef0('0x92')]){var _0x1a61e4=_0x50e372['query'][_0xfef0('0x92')][_0xfef0('0x93')]('\x5c','\x5c\x5c')[_0xfef0('0x93')](/'/g,'\x27\x27');if(qs[_0xfef0('0x94')](_0x1a61e4)){_0x45abb3['or'](_0xfef0('0x95'),_0x1a61e4+'%');}else{_0x45abb3['or'](_0xfef0('0x96'),qs[_0xfef0('0x74')](_0x1a61e4))['or'](_0xfef0('0x97'),_0x1a61e4+'%');}}}_0x3458b0[_0xfef0('0x52')](_0x45abb3);_0x3458b0[_0xfef0('0x98')](_0xfef0('0x99'));var _0x17c350={'type':db[_0xfef0('0x9a')]['QueryTypes'][_0xfef0('0x9b')],'raw':!![]};var _0x56af65=_0x3458b0['clone']();_0x56af65[_0xfef0('0x55')](_0xfef0('0x99'));_0x56af65['field'](_0xfef0('0x9c'),'unreadMessages');if(_0x18c656['order']){_0x18c656[_0xfef0('0x9d')][_0xfef0('0x43')](function(_0x4ebcf){var _0x437cb2=_0x4ebcf[0x0]==='contactName'?_0x4ebcf[0x0]:'i.'+_0x4ebcf[0x0];_0x3458b0[_0xfef0('0x9d')](_0x437cb2,_0x4ebcf[0x1]===_0xfef0('0x9e')?![]:!![]);});}if(!_['isEmpty'](_0x58d95e)){_0x3458b0[_0xfef0('0x6d')](_0x59d1b6);_0x56af65[_0xfef0('0x52')](_0xfef0('0x9f'),_0x58d95e);}BPromise['resolve']()['then'](function(){if(!_0x135653){if(_0x50e372[_0xfef0('0x4b')]['ChatWebsiteId'])return;_0x56af65['where'](_0xfef0('0xa0'));_0x3458b0['where'](_0xfef0('0xa0'));return;}if(_0x50e372[_0xfef0('0xa1')][_0xfef0('0xa2')]!==_0xfef0('0xa3'))return;return _0x50e372[_0xfef0('0xa1')][_0xfef0('0xa4')]({'attributes':['id'],'raw':!![]})[_0xfef0('0x22')](function(_0x28cc77){if(_[_0xfef0('0x84')](_0x28cc77)){_0x56af65[_0xfef0('0x52')]('i.ChatWebsiteId\x20IS\x20NULL');_0x3458b0[_0xfef0('0x52')]('i.ChatWebsiteId\x20IS\x20NULL');}else{_0x56af65['where'](_0xfef0('0x85'),_['map'](_0x28cc77,'id'));_0x3458b0[_0xfef0('0x52')](_0xfef0('0x85'),_[_0xfef0('0x7b')](_0x28cc77,'id'));}});})[_0xfef0('0x22')](function(){if(_0x50e372[_0xfef0('0xa1')][_0xfef0('0xa2')]==='agent'&&!_0x135653&&!_0x50e372[_0xfef0('0x4b')][_0xfef0('0xa5')])return[];return db[_0xfef0('0xa6')][_0xfef0('0x4b')](_0x56af65[_0xfef0('0xa7')](),_0x17c350);})[_0xfef0('0x22')](function(_0x3cc27e){_0x5bf416[_0xfef0('0xa8')]=_0x3cc27e['length'];if(_0x5bf416[_0xfef0('0xa8')]===0x0)return[];return db[_0xfef0('0xa6')]['query'](_0x5e989f[_0xfef0('0xa7')](),_0x17c350)[_0xfef0('0x22')](function(_0x221b17){_0x20b647=_['keyBy'](_0x221b17,'id');_0x17c350=_[_0xfef0('0xa9')](_0x17c350,{'model':db['ChatInteraction'],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x50e372[_0xfef0('0x4b')][_0xfef0('0x4f')]){_0x18c656['attributes'][_0xfef0('0x43')](function(_0x51f79b){_0x3458b0[_0xfef0('0x55')]('i.'+_0x51f79b);});}else{_0x3458b0[_0xfef0('0x55')](_0xfef0('0x9c'),_0xfef0('0x6b'));_0x3458b0[_0xfef0('0x55')](_0xfef0('0xaa'),_0xfef0('0xab'));_0x3458b0[_0xfef0('0x55')](_0xfef0('0xac'),_0xfef0('0xad'));_0x3458b0[_0xfef0('0x55')]('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',_0xfef0('0xae'));_0x3458b0['field']('i.*');_0x3458b0[_0xfef0('0x55')]('c.firstName',_0xfef0('0xaf'));_0x3458b0['field']('c.lastName',_0xfef0('0xb0'));_0x3458b0['field']('c.email','Contact.email');_0x3458b0[_0xfef0('0x55')](_0xfef0('0xb1'),_0xfef0('0xb2'));_0x3458b0[_0xfef0('0x55')]('c.mobile',_0xfef0('0xb3'));_0x3458b0[_0xfef0('0x55')](_0xfef0('0xb4'),_0xfef0('0xb5'));_0x3458b0[_0xfef0('0x55')]('o.fullname','Owner.fullname');_0x3458b0[_0xfef0('0x55')](_0xfef0('0xb6'),'Owner.internal');_0x3458b0[_0xfef0('0x55')](_0xfef0('0xb7'),_0xfef0('0x40'));}if(_0x18c656[_0xfef0('0x30')])_0x3458b0[_0xfef0('0x30')](_0x18c656[_0xfef0('0x30')]);if(_0x18c656[_0xfef0('0x2e')])_0x3458b0[_0xfef0('0x2e')](_0x18c656['offset']);return db['sequelize'][_0xfef0('0x4b')](_0x3458b0[_0xfef0('0xa7')](),_0x17c350);})[_0xfef0('0x22')](function(_0x475eb7){if(_0x475eb7[_0xfef0('0x69')]>0x0)_0x445f3f[_0xfef0('0x52')](_0xfef0('0xb8'),_[_0xfef0('0x7b')](_0x475eb7,'id'));return db['sequelize']['query'](_0x445f3f[_0xfef0('0xa7')](),_0x17c350)[_0xfef0('0x22')](function(_0x374877){var _0xd780bb=_[_0xfef0('0xb9')](_0x374877,_0xfef0('0xba'));var _0x5ac2df=[];_0x475eb7[_0xfef0('0x43')](function(_0x1060c2){_0x5ac2df['push'](updateChatInteraction(_0x1060c2,_0x20b647,_0xd780bb));});return BPromise[_0xfef0('0xbb')](_0x5ac2df);});});})[_0xfef0('0x22')](function(_0x36873f){_0x5bf416[_0xfef0('0xbc')]=_0x36873f;return _0x5bf416;})[_0xfef0('0x22')](respondWithFilteredResult(_0x4b6da1,_0x18c656))[_0xfef0('0x2a')](handleError(_0x4b6da1,null));};exports['show']=function(_0x4dd6e8,_0x1084b9){var _0xd7c5b={'raw':![],'where':{'id':_0x4dd6e8[_0xfef0('0xbd')]['id']}},_0xd2c0be={};_0xd2c0be[_0xfef0('0x4a')]=_[_0xfef0('0xbe')](db['ChatInteraction'][_0xfef0('0x47')]);_0xd2c0be['query']=_[_0xfef0('0xbe')](_0x4dd6e8['query']);_0xd2c0be[_0xfef0('0x4c')]=_[_0xfef0('0x4d')](_0xd2c0be['model'],_0xd2c0be[_0xfef0('0x4b')]);_0xd7c5b[_0xfef0('0x4e')]=_[_0xfef0('0x4d')](_0xd2c0be['model'],qs['fields'](_0x4dd6e8['query'][_0xfef0('0x4f')]));_0xd7c5b['attributes']=_0xd7c5b[_0xfef0('0x4e')][_0xfef0('0x69')]?_0xd7c5b['attributes']:_0xd2c0be[_0xfef0('0x4a')];if(_0x4dd6e8['query'][_0xfef0('0xbf')]){_0xd7c5b[_0xfef0('0xc0')]=[{'all':!![]}];}_0xd7c5b=_[_0xfef0('0xa9')]({},_0xd7c5b,_0x4dd6e8[_0xfef0('0xc1')]);return db[_0xfef0('0x46')][_0xfef0('0x6a')](_0xd7c5b)[_0xfef0('0x22')](handleEntityNotFound(_0x1084b9,null))['then'](respondWithResult(_0x1084b9,null))[_0xfef0('0x2a')](handleError(_0x1084b9,null));};exports[_0xfef0('0xc2')]=function(_0x38f96f,_0x1bdf18){return db[_0xfef0('0x46')][_0xfef0('0xc2')](_0x38f96f[_0xfef0('0x3b')],{})[_0xfef0('0x22')](respondWithResult(_0x1bdf18,0xc9))[_0xfef0('0x2a')](handleError(_0x1bdf18,null));};exports[_0xfef0('0x34')]=function(_0x2a25cb,_0x34f1db){if(_0x2a25cb[_0xfef0('0x3b')]['id']){delete _0x2a25cb[_0xfef0('0x3b')]['id'];}return db['ChatInteraction'][_0xfef0('0x6a')]({'where':{'id':_0x2a25cb[_0xfef0('0xbd')]['id']}})[_0xfef0('0x22')](handleEntityNotFound(_0x34f1db,null))[_0xfef0('0x22')](saveUpdates(_0x2a25cb[_0xfef0('0x3b')],null))[_0xfef0('0x22')](respondWithResult(_0x34f1db,null))[_0xfef0('0x2a')](handleError(_0x34f1db,null));};exports[_0xfef0('0x35')]=function(_0x191072,_0x5b5a15){return db['ChatInteraction'][_0xfef0('0x6a')]({'where':{'id':_0x191072['params']['id']}})[_0xfef0('0x22')](handleEntityNotFound(_0x5b5a15,null))[_0xfef0('0x22')](removeEntity(_0x5b5a15,null))[_0xfef0('0x2a')](handleError(_0x5b5a15,null));};exports[_0xfef0('0xc3')]=function(_0xd9c290,_0x365938){return db[_0xfef0('0x46')][_0xfef0('0xc3')]()[_0xfef0('0x22')](respondWithResult(_0x365938,null))[_0xfef0('0x2a')](handleError(_0x365938,null));};exports[_0xfef0('0xc4')]=function(_0x4c6ddd,_0x17ac08){var _0x40afcb=_0x4c6ddd['params']['id'];var _0xaa5902;var _0x189964;var _0x524db7;return db[_0xfef0('0x46')]['findOne']({'where':{'id':_0x40afcb}})[_0xfef0('0x22')](function(_0x41aadf){_0xaa5902=_0x41aadf;return db[_0xfef0('0xc5')][_0xfef0('0xc6')]({'where':{'id':_0x41aadf[_0xfef0('0xa5')]},'attributes':['id','vidaooApiKey',_0xfef0('0xc7'),_0xfef0('0xc8'),'vidaooNote',_0xfef0('0xc9')],'raw':!![]});})['then'](function(_0x3a180e){if(_0x3a180e&&_0x3a180e[_0xfef0('0xca')]&&_0x3a180e[_0xfef0('0xc7')]){_0x189964=_0x3a180e;var _0x52fb8b={'interaction':{'id':_0x40afcb},'agent':{'id':_0x4c6ddd[_0xfef0('0xa1')]['id'],'name':_0x4c6ddd['user']['name'],'fullname':_0x4c6ddd[_0xfef0('0xa1')]['fullname'],'email':_0x4c6ddd[_0xfef0('0xa1')][_0xfef0('0xcb')]},'contact':_0x4c6ddd[_0xfef0('0x3b')][_0xfef0('0x3c')],'account':_0x4c6ddd[_0xfef0('0x3b')][_0xfef0('0x3e')]};var _0x7f9b61={'rejectUnauthorized':![],'method':'POST','url':'https://api-vidaoo.xcally.com/api/v1/meetings','headers':{'X-APIKEY':_0x3a180e[_0xfef0('0xca')]},'body':{'duration':null,'scheduledAt':null,'participants':[_0x4c6ddd['user'][_0xfef0('0xcb')]],'buttons':null,'topic':_0x189964[_0xfef0('0xc8')],'note':_[_0xfef0('0xcc')](_0x189964[_0xfef0('0xcd')])?null:getMustacheRender(_0x189964[_0xfef0('0xcd')],_0x52fb8b),'metadata':null},'redirect':_0xfef0('0xce'),'json':!![]};try{if(!_[_0xfef0('0xcc')](_0x189964[_0xfef0('0xc9')])){var _0x4a3b68=getMustacheRender(_0x189964['vidaooMetadata'],_0x52fb8b);var _0x3c5471=JSON[_0xfef0('0x89')](_0x4a3b68);_0x7f9b61[_0xfef0('0x3b')][_0xfef0('0xcf')]=_0x3c5471;}}catch(_0xdbd7f2){throw new db['Sequelize']['ValidationError']('Error\x20in\x20conversion\x20vidaooMetadata');}return rp(_0x7f9b61);}else{throw new db[(_0xfef0('0x9a'))][(_0xfef0('0xd0'))]('Error\x20in\x20Vidaoo\x20configuration');}})[_0xfef0('0x22')](function(_0x4f171b){_0x524db7=_0x4f171b;if(_0x524db7['id']){var _0x236523={'body':_0x524db7[_0xfef0('0xd1')],'ChatWebsiteId':_0x189964['id'],'ChatInteractionId':_0xaa5902['id'],'direction':_0xfef0('0xd2'),'UserId':_0x4c6ddd[_0xfef0('0xa1')]['id']};return db[_0xfef0('0xd3')][_0xfef0('0xc2')](_0x236523,{});}else{throw new db[(_0xfef0('0x9a'))][(_0xfef0('0xd0'))](_0xfef0('0xd4'));}})[_0xfef0('0x22')](function(){return _0xaa5902[_0xfef0('0xd5')]({'vidaooSessionId':_0x524db7['id']});})['then'](respondWithResult(_0x17ac08,null))[_0xfef0('0x2a')](handleError(_0x17ac08,null));};exports['customUpdate']=function(_0xf763b1,_0x1fc6a0){if(_0xf763b1[_0xfef0('0x3b')]['id']){delete _0xf763b1[_0xfef0('0x3b')]['id'];}return db[_0xfef0('0x46')][_0xfef0('0x6a')]({'where':{'id':_0xf763b1[_0xfef0('0xbd')]['id']},'include':[{'model':db[_0xfef0('0xd6')],'as':_0xfef0('0x70')}]})['then'](handleEntityNotFound(_0x1fc6a0,null))['then'](saveUpdates(_0xf763b1[_0xfef0('0x3b')],null))['then'](respondWithResult(_0x1fc6a0,null))[_0xfef0('0x2a')](handleError(_0x1fc6a0,null));};exports[_0xfef0('0xd7')]=function(_0x45049d,_0x238112,_0x3a7c93){if(_0x45049d['body']['id']){delete _0x45049d[_0xfef0('0x3b')]['id'];}return db['ChatInteraction'][_0xfef0('0x6a')]({'where':{'id':_0x45049d[_0xfef0('0xbd')]['id']}})['then'](function(_0x34bcc3){if(!_0x34bcc3){logger['error'](_0xfef0('0xd8'),'abandon',0x194,'entity\x20not\x20found');_0x238112[_0xfef0('0x2b')](0x194);}else{if(_0x34bcc3['UserId']){throw new db[(_0xfef0('0x9a'))][(_0xfef0('0xd0'))](_0xfef0('0xd9'));}}return _0x34bcc3;})['then'](function(_0x5c7b35){if(_0x5c7b35){return _0x5c7b35[_0xfef0('0x34')]({'closed':_0x45049d[_0xfef0('0x3b')][_0xfef0('0xda')],'disposition':_0x45049d[_0xfef0('0x3b')][_0xfef0('0xdb')]})[_0xfef0('0x22')](function(_0x3107e2){return _0x3107e2;});}})[_0xfef0('0x22')](function(_0x325d36){return respondWithRpcPromise('AbandonInteraction',_0xfef0('0xd7'),_0x45049d[_0xfef0('0x3b')],client9004);})[_0xfef0('0x22')](respondWithResult(_0x238112,null))[_0xfef0('0x2a')](handleError(_0x238112,null));};exports[_0xfef0('0xdc')]=function(_0xb1df6f,_0x42604b,_0x5969d2){_0xb1df6f[_0xfef0('0x3b')][_0xfef0('0x38')]=_0xb1df6f['file'][_0xfef0('0xdd')];_0xb1df6f[_0xfef0('0x3b')][_0xfef0('0xde')]=_0xb1df6f[_0xfef0('0xdf')][_0xfef0('0xe0')];_0xb1df6f['body'][_0xfef0('0x77')]=_0xb1df6f['file'][_0xfef0('0xe1')];return db['Attachment']['create'](_0xb1df6f['body'])[_0xfef0('0x22')](respondWithResult(_0x42604b,0xc9))['catch'](handleError(_0x42604b,null));};exports['attachmentDownload']=function(_0x25fed0,_0x43453b,_0x4da5b0){return db[_0xfef0('0x46')][_0xfef0('0xc6')]({'where':{'id':_0x25fed0[_0xfef0('0xbd')]['id']},'raw':!![]})['then'](handleEntityNotFound(_0x43453b,null))['then'](function(_0x39a2a7){if(_0x39a2a7){if(_0x39a2a7[_0xfef0('0xda')]){return _0x43453b[_0xfef0('0x2c')](0x193)[_0xfef0('0x2d')]({'status':0x193,'message':_0xfef0('0xe2')});}return db[_0xfef0('0xe3')][_0xfef0('0xc6')]({'where':{'id':_0x25fed0['query'][_0xfef0('0xe4')]},'raw':!![]})[_0xfef0('0x22')](handleEntityNotFound(_0x43453b,null));}})[_0xfef0('0x22')](function(_0x4544fe){if(_0x4544fe){var _0x5c0f32=_0x4544fe['ChatOfflineMessageId']!==null;var _0x461c91=path[_0xfef0('0xe5')](config[_0xfef0('0xe6')],_0xfef0('0xe7'));if(_0x5c0f32){_0x461c91=path[_0xfef0('0xe5')](_0x461c91,_0xfef0('0xe8'));}var _0xe24c2d=path['join'](_0x461c91,_0x4544fe['basename']);return _0x43453b['download'](_0xe24c2d);}})[_0xfef0('0x2a')](handleError(_0x43453b,null));};exports['close']=function(_0x38ac84,_0x4a1406){var _0x2daf2a=null;var _0x4f703e=null;var _0x20cf67=null;var _0x235122=null;if(_0x38ac84[_0xfef0('0x3b')]['id']){delete _0x38ac84[_0xfef0('0x3b')]['id'];}if(_0x38ac84[_0xfef0('0x3b')]['mailTranscript']){_0x235122=path[_0xfef0('0xe5')](config[_0xfef0('0xe6')],_0xfef0('0xe9'),util[_0xfef0('0xea')]('transcript-%s.txt',Date[_0xfef0('0xeb')]()));_0x38ac84['body']['pathTranscript']=_0x235122;}return db[_0xfef0('0x46')]['find']({'where':{'id':_0x38ac84['params']['id']},'include':[{'model':db[_0xfef0('0xd3')],'as':'Messages','include':[{'model':db[_0xfef0('0x7e')],'as':_0xfef0('0x7e')}]}]})[_0xfef0('0x22')](handleEntityNotFound(_0x4a1406,null))[_0xfef0('0x22')](saveUpdates(_0x38ac84[_0xfef0('0x3b')],null))[_0xfef0('0x22')](function(_0x4f6c50){if(_0x4f6c50){_0x2daf2a=_0x4f6c50;return db[_0xfef0('0xc5')][_0xfef0('0x6a')]({'where':{'id':_0x2daf2a[_0xfef0('0xa5')]}});}})['then'](function(_0x3ac462){if(_0x3ac462){_0x20cf67=_0x3ac462;return db['CmContact'][_0xfef0('0x6a')]({'where':{'id':_0x2daf2a[_0xfef0('0x76')]}});}})[_0xfef0('0x22')](function(_0x5ef687){if(_0x5ef687){_0x4f703e=_0x5ef687;if(_0x235122){var _0x906e55=null;for(var _0x4cec7d=0x1;_0x4cec7d<_0x2daf2a['Messages'][_0xfef0('0x69')];++_0x4cec7d){_0x906e55=_0x2daf2a[_0xfef0('0xec')][_0x4cec7d];var _0x58a4ef=_0x906e55[_0xfef0('0x80')]?util[_0xfef0('0xea')](_0xfef0('0xed'),_0x20cf67[_0xfef0('0xee')],_0x906e55['UserId']):_0xfef0('0xef');var _0x484cc3=_0x38ac84[_0xfef0('0x3b')][_0xfef0('0xf0')]||util[_0xfef0('0xea')](_0xfef0('0xed'),_0xfef0('0xf1'),_0x906e55[_0xfef0('0x76')]);switch(_0x20cf67[_0xfef0('0xf2')]){case _0xfef0('0xf3'):_0x58a4ef=_0x906e55[_0xfef0('0x80')]?util['format'](_0xfef0('0xed'),_0x20cf67[_0xfef0('0xee')],_0x906e55['UserId']):_0xfef0('0xef');break;case'agent_alias':_0x58a4ef=_0x906e55[_0xfef0('0x80')]?_0x906e55[_0xfef0('0x7e')][_0xfef0('0xf4')]||_0x906e55[_0xfef0('0x7e')][_0xfef0('0xf5')]:'System';break;case _0xfef0('0xf6'):_0x58a4ef=_0x906e55[_0xfef0('0x80')]?_0x906e55[_0xfef0('0x7e')]['fullname']:'System';break;default:_0x58a4ef=_0x906e55[_0xfef0('0x80')]?util[_0xfef0('0xea')](_0xfef0('0xed'),_0x20cf67[_0xfef0('0xee')],_0x906e55['UserId']):_0xfef0('0xef');}var _0x4b4986=util[_0xfef0('0xea')](_0xfef0('0xf7'),moment(_0x906e55[_0xfef0('0x87')])[_0xfef0('0xea')](_0xfef0('0xf8')),_0x906e55['direction']==='in'?_0x484cc3:_0x58a4ef,_0x906e55[_0xfef0('0x3b')]);if(!_0x906e55[_0xfef0('0xf9')]){fs[_0xfef0('0xfa')](_0x235122,_0x4b4986);}}return db[_0xfef0('0xfb')]['findOne']({'where':{'service':!![]},'include':[{'model':db[_0xfef0('0xfc')],'as':'Smtp','raw':!![]}]});}}})[_0xfef0('0x22')](function(_0x402c7d){if(_0x402c7d&&_0x402c7d[_0xfef0('0xfd')]&&_0x38ac84[_0xfef0('0x3b')]){var _0x5315eb={'tls':{'rejectUnauthorized':![]}};if(_0x402c7d['Smtp'][_0xfef0('0xfe')]){_0x5315eb[_0xfef0('0xfe')]=_0x402c7d[_0xfef0('0xfd')][_0xfef0('0xfe')];}else{_0x5315eb[_0xfef0('0xff')]=_0x402c7d[_0xfef0('0xfd')][_0xfef0('0xff')];_0x5315eb['port']=_0x402c7d['Smtp'][_0xfef0('0x100')];_0x5315eb[_0xfef0('0x101')]=_0x402c7d['Smtp'][_0xfef0('0x101')];}if(_0x402c7d['Smtp']['authentication']){_0x5315eb[_0xfef0('0x102')]={'user':_0x402c7d[_0xfef0('0xfd')][_0xfef0('0xa1')],'pass':_0x402c7d[_0xfef0('0xfd')][_0xfef0('0x103')]};}return respondWithRpcPromise('SendMail',_0xfef0('0x104'),{'account':_0x5315eb,'message':{'from':util[_0xfef0('0xea')](_0xfef0('0x105'),_0x402c7d[_0xfef0('0x38')],_0x402c7d['email']||_0x402c7d['Smtp']['user']),'to':_0x38ac84[_0xfef0('0x3b')]['mailTranscript'],'subject':_0xfef0('0x106'),'text':util['format']('Hi\x20%s,\x20attached\x20you\x20can\x20find\x20your\x20transcript\x20file.\x20\x0a\x0aRegards.\x20\x0a\x0a',_0x38ac84['body'][_0xfef0('0x107')]),'attachments':[{'path':_0x235122}]}})[_0xfef0('0x22')](function(){return _0x2daf2a;})['catch'](function(_0x411870){console['error'](_0x411870);});}else{return _0x2daf2a;}})[_0xfef0('0x22')](respondWithStatusCode(_0x4a1406,0xc8))[_0xfef0('0x2a')](handleError(_0x4a1406,null));};exports[_0xfef0('0x108')]=function(_0x9b2969,_0x1f842f,_0x36c978){return db[_0xfef0('0xd3')][_0xfef0('0x6a')]({'where':{'id':_0x9b2969[_0xfef0('0xbd')]['id']}})[_0xfef0('0x22')](handleEntityNotFound(_0x1f842f,null))['then'](function(_0x1d342a){if(_0x1d342a){return _0x1d342a[_0xfef0('0x108')](_0x9b2969['body'][_0xfef0('0x109')],_['omit'](_0x9b2969[_0xfef0('0x3b')],[_0xfef0('0x109'),'id'])||{});}})[_0xfef0('0x22')](respondWithResult(_0x1f842f,null))[_0xfef0('0x2a')](handleError(_0x1f842f,null));};exports[_0xfef0('0x10a')]=function(_0x422af1,_0xcb9eb8,_0x38e829){var _0x287403={'raw':![],'where':{}};var _0x2ebd8d={};var _0x115454={'count':0x0,'rows':[]};return db[_0xfef0('0x46')][_0xfef0('0xc6')]({'where':{'id':_0x422af1[_0xfef0('0xbd')]['id']}})['then'](handleEntityNotFound(_0xcb9eb8,null))[_0xfef0('0x22')](function(_0x5593de){if(_0x5593de){_0x2ebd8d['model']=_[_0xfef0('0xbe')](db['ChatMessage'][_0xfef0('0x47')]);_0x2ebd8d[_0xfef0('0x4b')]=_[_0xfef0('0xbe')](_0x422af1['query']);_0x2ebd8d[_0xfef0('0x4c')]=_[_0xfef0('0x4d')](_0x2ebd8d[_0xfef0('0x4a')],_0x2ebd8d[_0xfef0('0x4b')]);_0x287403[_0xfef0('0x4e')]=_[_0xfef0('0x4d')](_0x2ebd8d[_0xfef0('0x4a')],qs[_0xfef0('0x4f')](_0x422af1[_0xfef0('0x4b')][_0xfef0('0x4f')]));_0x287403[_0xfef0('0x4e')]=_0x287403[_0xfef0('0x4e')][_0xfef0('0x69')]?_0x287403[_0xfef0('0x4e')]:_0x2ebd8d['model'];if(!_0x422af1[_0xfef0('0x4b')]['hasOwnProperty'](_0xfef0('0x50'))){_0x287403['limit']=qs[_0xfef0('0x30')](_0x422af1[_0xfef0('0x4b')][_0xfef0('0x30')]);_0x287403[_0xfef0('0x2e')]=qs[_0xfef0('0x2e')](_0x422af1['query']['offset']);}_0x287403[_0xfef0('0x9d')]=qs[_0xfef0('0x51')](_0x422af1['query'][_0xfef0('0x51')]);_0x287403[_0xfef0('0x52')]=qs[_0xfef0('0x4c')](_[_0xfef0('0x53')](_0x422af1[_0xfef0('0x4b')],_0x2ebd8d[_0xfef0('0x4c')]));_0x287403[_0xfef0('0x52')][_0xfef0('0xba')]=_0x5593de['id'];if(_0x422af1['query'][_0xfef0('0x92')]){_0x287403[_0xfef0('0x52')]=_['merge'](_0x287403[_0xfef0('0x52')],{'$or':_['map'](_0x287403[_0xfef0('0x4e')],function(_0x41790c){var _0x189965={};_0x189965[_0x41790c]={'$like':'%'+_0x422af1[_0xfef0('0x4b')][_0xfef0('0x92')]+'%'};return _0x189965;})});}if(_0x422af1[_0xfef0('0x4b')][_0xfef0('0x88')]){var _0x5b1b34=_0x422af1[_0xfef0('0x4b')][_0xfef0('0x88')]['split'](',');var _0xfa83e1={};_0xfa83e1[_0x5b1b34[0x0]]={'$gte':moment(_0x5b1b34[0x1])[_0xfef0('0xea')](_0xfef0('0x10b'))};_0x287403['where']=_[_0xfef0('0xa9')](_0x287403[_0xfef0('0x52')],_0xfa83e1);}_0x287403=_[_0xfef0('0xa9')]({},_0x287403,_0x422af1[_0xfef0('0xc1')]);return db[_0xfef0('0xd3')][_0xfef0('0xa8')]({'where':_0x287403[_0xfef0('0x52')]})[_0xfef0('0x22')](function(_0x464d00){_0x115454[_0xfef0('0xa8')]=_0x464d00;if(_0x422af1['query'][_0xfef0('0xbf')]){_0x287403[_0xfef0('0xc0')]=[{'all':!![]}];}return db[_0xfef0('0xd3')][_0xfef0('0x10c')](_0x287403);})[_0xfef0('0x22')](function(_0x1b23f0){_0x115454['rows']=_0x1b23f0;return _0x115454;});}})['then'](respondWithFilteredResult(_0xcb9eb8,_0x287403))[_0xfef0('0x2a')](handleError(_0xcb9eb8,null));};exports['getMyMessages']=function(_0x30f7d5,_0x1a53fa,_0x14a37e){var _0x303128={'where':{}},_0x2b3263={},_0x43e758={'count':0x0,'rows':[]};return db['ChatInteraction'][_0xfef0('0xc6')]({'where':{'id':_0x30f7d5[_0xfef0('0xbd')]['id']}})[_0xfef0('0x22')](handleEntityNotFound(_0x1a53fa,null))[_0xfef0('0x22')](function(_0x273e8b){if(_0x273e8b){_0x2b3263[_0xfef0('0x4a')]=_[_0xfef0('0xbe')](db['ChatMessage'][_0xfef0('0x47')]);_0x2b3263[_0xfef0('0x4b')]=_[_0xfef0('0xbe')](_0x30f7d5[_0xfef0('0x4b')]);_0x2b3263[_0xfef0('0x4c')]=_[_0xfef0('0x4d')](_0x2b3263['model'],_0x2b3263['query']);_0x303128[_0xfef0('0x4e')]=_[_0xfef0('0x4d')](_0x2b3263[_0xfef0('0x4a')],qs[_0xfef0('0x4f')](_0x30f7d5[_0xfef0('0x4b')][_0xfef0('0x4f')]));_0x303128[_0xfef0('0x4e')]=_0x303128[_0xfef0('0x4e')][_0xfef0('0x69')]?_0x303128[_0xfef0('0x4e')]:_0x2b3263[_0xfef0('0x4a')];if(!_0x30f7d5['query'][_0xfef0('0x10d')](_0xfef0('0x50'))){_0x303128[_0xfef0('0x30')]=qs[_0xfef0('0x30')](_0x30f7d5[_0xfef0('0x4b')][_0xfef0('0x30')]);_0x303128['offset']=qs[_0xfef0('0x2e')](_0x30f7d5[_0xfef0('0x4b')][_0xfef0('0x2e')]);}_0x303128[_0xfef0('0x9d')]=qs['sort'](_0x30f7d5[_0xfef0('0x4b')][_0xfef0('0x51')]);_0x303128['where']=qs[_0xfef0('0x4c')](_[_0xfef0('0x53')](_0x30f7d5[_0xfef0('0x4b')],_0x2b3263[_0xfef0('0x4c')]));_0x303128[_0xfef0('0x52')][_0xfef0('0xba')]=_0x273e8b['id'];if(_0x30f7d5[_0xfef0('0x4b')][_0xfef0('0x92')]){_0x303128['where']=_[_0xfef0('0xa9')](_0x303128[_0xfef0('0x52')],{'$or':_['map'](_0x303128['attributes'],function(_0x3081e){var _0xd34b68={};_0xd34b68[_0x3081e]={'$like':'%'+_0x30f7d5[_0xfef0('0x4b')]['filter']+'%'};return _0xd34b68;})});}_0x303128[_0xfef0('0x52')][_0xfef0('0xf9')]=![];if(_0x30f7d5['query']['id']){_0x303128[_0xfef0('0x52')]['id']={'$gt':_0x30f7d5[_0xfef0('0x4b')]['id']};}_0x303128=_[_0xfef0('0xa9')]({},_0x303128,_0x30f7d5[_0xfef0('0xc1')]);return db[_0xfef0('0xd3')]['count']({'where':_0x303128[_0xfef0('0x52')]})['then'](function(_0x63bcae){_0x43e758['count']=_0x63bcae;_0x303128[_0xfef0('0xc0')]=[];if(_0x30f7d5[_0xfef0('0x4b')][_0xfef0('0x10e')]){_0x303128['include'][_0xfef0('0x44')]({'model':db[_0xfef0('0x7e')],'as':'User','attributes':['id','fullname',_0xfef0('0xf4')]});}if(_0x30f7d5[_0xfef0('0x4b')][_0xfef0('0xbf')]){_0x303128['include']=[{'all':!![]}];}return db[_0xfef0('0xd3')][_0xfef0('0x10c')](_0x303128);})['then'](function(_0x527d0d){_0x43e758[_0xfef0('0xbc')]=_0x527d0d;return _0x43e758;});}})[_0xfef0('0x22')](respondWithFilteredResult(_0x1a53fa,_0x303128))['catch'](handleError(_0x1a53fa,null));};exports[_0xfef0('0x10f')]=function(_0x3f68ed,_0x45a5e8,_0x33cecb){return db[_0xfef0('0x46')][_0xfef0('0x6a')]({'where':{'id':_0x3f68ed[_0xfef0('0xbd')]['id']}})[_0xfef0('0x22')](handleEntityNotFound(_0x45a5e8,null))[_0xfef0('0x22')](function(_0x53ce05){if(_0x53ce05){return _0x53ce05[_0xfef0('0x110')](_0x3f68ed[_0xfef0('0x3b')][_0xfef0('0x109')],_[_0xfef0('0x111')](_0x3f68ed[_0xfef0('0x3b')],[_0xfef0('0x109'),'id'])||{})['spread'](function(){return db[_0xfef0('0x7a')][_0xfef0('0x10c')]({'attributes':['id','name','color'],'where':{'id':_0x3f68ed[_0xfef0('0x3b')][_0xfef0('0x109')]}});})[_0xfef0('0x22')](function(_0x4697ee){socket[_0xfef0('0x112')]('chatInteractionTags:save',{'id':Number(_0x3f68ed[_0xfef0('0xbd')]['id']),'tags':_0x4697ee||[]});return{'id':Number(_0x3f68ed[_0xfef0('0xbd')]['id']),'tags':_0x4697ee||[]};});}})[_0xfef0('0x22')](respondWithResult(_0x45a5e8,null))['catch'](handleError(_0x45a5e8,null));};exports[_0xfef0('0x113')]=function(_0x2a229b,_0xcb6d50,_0x53ed7e){return db['ChatInteraction'][_0xfef0('0x6a')]({'where':{'id':_0x2a229b[_0xfef0('0xbd')]['id']}})[_0xfef0('0x22')](handleEntityNotFound(_0xcb6d50,null))['then'](function(_0x241763){if(_0x241763){return _0x241763[_0xfef0('0x113')](_0x2a229b['query'][_0xfef0('0x109')]);}})[_0xfef0('0x22')](respondWithStatusCode(_0xcb6d50,null))['catch'](handleError(_0xcb6d50,null));};exports[_0xfef0('0x114')]=function(_0x57e2d8,_0x3fdeae){var _0x30b0a9=moment()[_0xfef0('0x115')]()['toString']();var _0x416d36=path[_0xfef0('0xe5')](config['root'],_0xfef0('0x116'),_0xfef0('0x117'),_0xfef0('0x118'));var _0x50b3d7=path[_0xfef0('0xe5')](config[_0xfef0('0xe6')],_0xfef0('0x116'),_0xfef0('0x117'),_0xfef0('0x119'));var _0x2a9a1e=path[_0xfef0('0xe5')](_0x416d36,_0x30b0a9);var _0x584c9b=util[_0xfef0('0xea')](_0xfef0('0x11a'),_0x57e2d8[_0xfef0('0xbd')]['id'],_0x30b0a9);var _0x4f4c4e=path[_0xfef0('0xe5')](_0x416d36,_0x584c9b);var _0x1c6ab9=[];_0x1c6ab9[_0xfef0('0x44')]({'model':db[_0xfef0('0x7e')],'as':_0xfef0('0x7e'),'attributes':['id',_0xfef0('0xf5')],'raw':!![]});_0x1c6ab9['push']({'model':db[_0xfef0('0xd6')],'as':'Contact','attributes':['id',_0xfef0('0x11b'),_0xfef0('0x11c')],'raw':!![]});if(_0x57e2d8[_0xfef0('0x4b')][_0xfef0('0x119')]){_0x1c6ab9[_0xfef0('0x44')]({'model':db[_0xfef0('0xe3')],'as':'Attachment','raw':!![]});}var _0x937d8e=[{'model':db[_0xfef0('0xd3')],'as':_0xfef0('0xec'),'attributes':['id',_0xfef0('0x3b'),'createdAt',_0xfef0('0x11d'),_0xfef0('0xf9'),'read'],'include':_0x1c6ab9}];_0x937d8e['push']({'model':db[_0xfef0('0xc5')],'as':_0xfef0('0x11e'),'attributes':['id',_0xfef0('0x38')]});_0x937d8e[_0xfef0('0x44')]({'model':db['User'],'as':'Owner','attributes':['id',_0xfef0('0xf5')]});return db[_0xfef0('0x46')][_0xfef0('0x6a')]({'where':{'id':_0x57e2d8[_0xfef0('0xbd')]['id']},'include':_0x937d8e})[_0xfef0('0x22')](handleEntityNotFound(_0x3fdeae,null))['then'](function(_0x2978cc){if(_0x2978cc){var _0x81bcee=_0x2978cc['get']({'plain':!![]});fs[_0xfef0('0x11f')](_0x2a9a1e);var _0xc8d0ca={'channel':_0xfef0('0x120'),'account':_0x81bcee[_0xfef0('0x11e')][_0xfef0('0x38')],'agent':_0x81bcee[_0xfef0('0x121')]?_0x81bcee['Owner']['fullname']:_0xfef0('0x122'),'createdAt':moment(_0x81bcee[_0xfef0('0x87')])[_0xfef0('0xea')](_0xfef0('0x10b'))['toString'](),'closedAt':_0x81bcee['closed']?moment(_0x81bcee['closedAt'])[_0xfef0('0xea')](_0xfef0('0x10b'))[_0xfef0('0xa7')]():'','disposition':_0x81bcee[_0xfef0('0xdb')],'chatInfo':{'browser':_0x81bcee[_0xfef0('0x123')],'os':_0x81bcee[_0xfef0('0x124')],'referer':_0x81bcee['referer'],'customerIp':_0x81bcee['customerIp'],'customerPort':_0x81bcee['customerPort']?_0x81bcee['customerPort']:'N.A.'},'messages':_(_0x81bcee[_0xfef0('0xec')])['tail']()[_0xfef0('0x92')]({'secret':![]})[_0xfef0('0x7b')](function(_0x46ab62){if(_0x46ab62[_0xfef0('0xe3')]){var _0x3507a8=path['join'](_0x50b3d7,_0x46ab62[_0xfef0('0xe3')][_0xfef0('0xde')]);if(fs[_0xfef0('0x125')](_0x3507a8)){fs['createReadStream'](_0x3507a8)[_0xfef0('0x126')](fs[_0xfef0('0x127')](path[_0xfef0('0xe5')](_0x2a9a1e,_0x46ab62[_0xfef0('0xe3')][_0xfef0('0xde')])));}}return{'date':moment(_0x46ab62[_0xfef0('0x87')])[_0xfef0('0xea')](_0xfef0('0x10b'))[_0xfef0('0xa7')](),'sender':_0x46ab62[_0xfef0('0x11d')]===_0xfef0('0xd2')?_0x46ab62[_0xfef0('0x7e')]?_0x46ab62[_0xfef0('0x7e')][_0xfef0('0xf5')]:_0xfef0('0xef'):_0x46ab62[_0xfef0('0x70')][_0xfef0('0x11b')]+(_0x46ab62[_0xfef0('0x70')][_0xfef0('0x11c')]?'\x20'+_0x46ab62[_0xfef0('0x70')]['lastName']:''),'body':_0x46ab62['Attachment']?_0x46ab62['Attachment']['basename']:_0x46ab62[_0xfef0('0x3b')],'direction':_0x46ab62[_0xfef0('0x11d')]===_0xfef0('0xd2')?'A':'C','secret':_0x46ab62['secret'],'read':_0x46ab62[_0xfef0('0x8e')],'attachment':_0x46ab62[_0xfef0('0xe3')]};})[_0xfef0('0x6c')]()};return ejs[_0xfef0('0x128')](path['join'](config['root'],'server',_0xfef0('0x129'),_0xfef0('0x12a')),{'interaction':_0xc8d0ca})[_0xfef0('0x22')](function(_0x2b1f64){var _0x55ecff=path[_0xfef0('0xe5')](_0x2a9a1e,_0xfef0('0x12b')+_0x81bcee['id']+'-'+_0x30b0a9+'.pdf');var _0x409147={'path':_0x55ecff,'channel':_0xfef0('0x120'),'interactionId':_0x81bcee['id']};return pdf[_0xfef0('0x12c')](_0x2b1f64,_0x409147);})[_0xfef0('0x22')](function(){return new BPromise(function(_0x27856d,_0x44081d){zipdir(_0x2a9a1e,{'saveTo':_0x4f4c4e},function(_0x177c9b,_0x322672){if(_0x177c9b)return _0x44081d(_0x177c9b);return _0x27856d(_0x322672);});})[_0xfef0('0x22')](function(){return new BPromise(function(_0x102b4e,_0x2a206b){rimraf(_0x2a9a1e,function(_0x279f5b){if(_0x279f5b)_0x2a206b(_0x279f5b);return _0x102b4e();});});})[_0xfef0('0x22')](function(){return _0x3fdeae[_0xfef0('0x114')](_0x4f4c4e,_0x584c9b,function(_0x44603e){if(_0x44603e){console['log'](_0xfef0('0x12d'),_0x44603e);}else{fs['unlinkSync'](_0x4f4c4e);}});});});}else{return _0x3fdeae[_0xfef0('0x2b')](0xc8);}})['catch'](handleError(_0x3fdeae,null));};
\ No newline at end of file
+var _0x14a0=['t.id\x20IN\x20?','resolve','i.ChatWebsiteId\x20IS\x20NOT\x20NULL','user','getChatWebsites','i.ChatWebsiteId\x20IS\x20NULL','role','sequelize','toString','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','a.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','contactName','c.firstName','Contact.firstName','c.lastName','Contact.lastName','c.email','Contact.phone','c.fax','Contact.fax','o.fullname','Owner.fullname','o.internal','Owner.internal','ChatInteractionId','rows','show','params','intersection','includeAll','include','options','create','describe','findOne','ChatWebsite','vidaooApiKey','vidaooEscalation','vidaooTopic','vidaooNote','vidaooMetadata','email','POST','https://api-vidaoo.xcally.com/api/v1/meetings','isNull','follow','metadata','ValidationError','Error\x20in\x20Vidaoo\x20configuration','join_url','customUpdate','CmContact','Contact','abandon','closed','disposition','AbandonInteraction','file','originalname','basename','mimetype','Attachment','attachmentDownload','Unauthorized','attachId','join','root','server/files/attachments/','offline-chat/','download','server/files/chat/upload/','transcript-%s.txt','now','ChatMessage','Messages','format','agentAlias','System','customer','agentIdentifier','%s%d','agent_alias','alias','agent_fullname','createdAt','direction','secret','appendFileSync','MailAccount','MailServerOut','Smtp','service','host','port','secure','authentication','pass','SendMail','sendMail','\x22%s\x22\x20<%s>','mailTranscript','Mail\x20Transcript','Hi\x20%s,\x20attached\x20you\x20can\x20find\x20your\x20transcript\x20file.\x20\x0a\x0aRegards.\x20\x0a\x0a','addMessage','ids','getMessages','pick','$gte','YYYY-MM-DD\x20HH:mm:ss','findAll','getMyMessages','includeAgent','addTags','omit','spread','chatInteractionTags:save','removeTags','files','server','attachments','firstName','lastName','Account','get','Chat','Owner','N.A.','closedAt','osName','referer','customerPort','existsSync','createReadStream','pipe','out','views','transcript-','log','err','unlinkSync','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','sox','to-csv','ejs','squel','crypto','jsforce','querystring','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./chatInteraction.socket','register','client','http','request','then','info','ChatInteraction,\x20%s,\x20%s','request\x20sent','debug','ChatInteraction,\x20%s,\x20%s,\x20%s','error','code','message','result','catch','status','end','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','destroy','sendStatus','stack','name','send','merge','contact','agent','interaction','account','Users','map','fullname','Tags','TagIds','split','forEach','push','ChatInteraction','rawAttributes','type','key','model','query','filters','attributes','fields','hasOwnProperty','nolimit','order','sort','select','color','tools_tags','field','u.fullname','ui.ChatInteractionId','from','user_has_chat_interactions','left_join','users','u.id\x20=\x20ui.UserId','chat_interactions','cm_contacts','chat_websites','a.id\x20=\x20i.ChatWebsiteId','me.ChatInteractionId\x20=\x20i.id','chat_interaction_has_tags','t.id\x20=\x20it.TagId','expr','search','parseSearch','sqlOperator','conditions','find','unreadMessages','value','having','length','getFullTextValue','ContactId','buildExpression','text','start','union','User','operator','$substring','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','UserId','body','keys','some','isEmpty','ChatWebsiteId','where','i.ChatWebsiteId\x20IN\x20?','parse','$lte','null','\x20IS\x20NULL','\x20=\x20?','read','`unreadMessages`\x20=\x200','`unreadMessages`\x20>\x200','tag','isArray','filter','replace','CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?','group','i.id','Sequelize','QueryTypes','clone','DESC'];(function(_0x8a217e,_0x450bfc){var _0x3fc350=function(_0x55ed99){while(--_0x55ed99){_0x8a217e['push'](_0x8a217e['shift']());}};_0x3fc350(++_0x450bfc);}(_0x14a0,0x8e));var _0x014a=function(_0x46e44f,_0x483584){_0x46e44f=_0x46e44f-0x0;var _0x267af1=_0x14a0[_0x46e44f];return _0x267af1;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x014a('0x0'));var zipdir=require(_0x014a('0x1'));var jsonpatch=require(_0x014a('0x2'));var rp=require(_0x014a('0x3'));var moment=require(_0x014a('0x4'));var BPromise=require(_0x014a('0x5'));var Mustache=require(_0x014a('0x6'));var util=require('util');var path=require('path');var sox=require(_0x014a('0x7'));var csv=require(_0x014a('0x8'));var ejs=require(_0x014a('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x014a('0xa'));var crypto=require(_0x014a('0xb'));var jsforce=require(_0x014a('0xc'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x014a('0xd'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x014a('0xe'));var pdf=require('../../components/export/pdf');var hardwareService=require(_0x014a('0xf'));var logger=require(_0x014a('0x10'))('api');var utils=require(_0x014a('0x11'));var config=require(_0x014a('0x12'));var licenseUtil=require(_0x014a('0x13'));var db=require(_0x014a('0x14'))['db'];config[_0x014a('0x15')]=_[_0x014a('0x16')](config[_0x014a('0x15')],{'host':_0x014a('0x17'),'port':0x18eb});var socket=require(_0x014a('0x18'))(new Redis(config[_0x014a('0x15')]));require(_0x014a('0x19'))[_0x014a('0x1a')](socket);var jayson=require('jayson/promise');var client=jayson[_0x014a('0x1b')][_0x014a('0x1c')]({'port':0x232b});var client9004=jayson['client'][_0x014a('0x1c')]({'port':0x232c});function respondWithRpcPromise(_0x128c46,_0x59a4ea,_0x16e6fc,_0x17e4be){return new BPromise(function(_0x20f148,_0x12da95){var _0x2c26ac=_0x17e4be||client;return _0x2c26ac[_0x014a('0x1d')](_0x128c46,_0x16e6fc)[_0x014a('0x1e')](function(_0x263b07){logger[_0x014a('0x1f')](_0x014a('0x20'),_0x59a4ea,_0x014a('0x21'));logger[_0x014a('0x22')](_0x014a('0x23'),_0x59a4ea,_0x014a('0x21'),JSON['stringify'](_0x263b07));if(_0x263b07[_0x014a('0x24')]){if(_0x263b07[_0x014a('0x24')][_0x014a('0x25')]===0x1f4){logger[_0x014a('0x24')](_0x014a('0x20'),_0x59a4ea,_0x263b07[_0x014a('0x24')][_0x014a('0x26')]);return _0x12da95(_0x263b07[_0x014a('0x24')][_0x014a('0x26')]);}logger['error'](_0x014a('0x20'),_0x59a4ea,_0x263b07['error'][_0x014a('0x26')]);return _0x20f148(_0x263b07[_0x014a('0x24')][_0x014a('0x26')]);}else{logger[_0x014a('0x1f')](_0x014a('0x20'),_0x59a4ea,_0x014a('0x21'));_0x20f148(_0x263b07[_0x014a('0x27')][_0x014a('0x26')]);}})[_0x014a('0x28')](function(_0x4c2627){logger[_0x014a('0x24')]('ChatInteraction,\x20%s,\x20%s',_0x59a4ea,_0x4c2627);_0x12da95(_0x4c2627);});});}function respondWithStatusCode(_0x39a432,_0x28701e){_0x28701e=_0x28701e||0xcc;return function(_0x4f1c44){if(_0x4f1c44){return _0x39a432['sendStatus'](_0x28701e);}return _0x39a432[_0x014a('0x29')](_0x28701e)[_0x014a('0x2a')]();};}function respondWithResult(_0x143346,_0x5ed71b){_0x5ed71b=_0x5ed71b||0xc8;return function(_0x183f19){if(_0x183f19){return _0x143346[_0x014a('0x29')](_0x5ed71b)['json'](_0x183f19);}};}function respondWithFilteredResult(_0x31dc95,_0x2560a6){return function(_0x496040){if(_0x496040){var _0x4f9c1c=typeof _0x2560a6[_0x014a('0x2b')]===_0x014a('0x2c')&&typeof _0x2560a6[_0x014a('0x2d')]===_0x014a('0x2c');var _0x4ea00c=_0x496040[_0x014a('0x2e')];var _0x147e7e=_0x4f9c1c?0x0:_0x2560a6[_0x014a('0x2b')];var _0x402d3b=_0x4f9c1c?_0x496040[_0x014a('0x2e')]:_0x2560a6[_0x014a('0x2b')]+_0x2560a6[_0x014a('0x2d')];var _0x1dae8e;if(_0x402d3b>=_0x4ea00c){_0x402d3b=_0x4ea00c;_0x1dae8e=0xc8;}else{_0x1dae8e=0xce;}_0x31dc95[_0x014a('0x29')](_0x1dae8e);return _0x31dc95[_0x014a('0x2f')](_0x014a('0x30'),_0x147e7e+'-'+_0x402d3b+'/'+_0x4ea00c)['json'](_0x496040);}return null;};}function patchUpdates(_0x105d4a){return function(_0x41ead8){try{jsonpatch[_0x014a('0x31')](_0x41ead8,_0x105d4a,!![]);}catch(_0x457883){return BPromise[_0x014a('0x32')](_0x457883);}return _0x41ead8[_0x014a('0x33')]();};}function saveUpdates(_0x211d18,_0x4dd025){return function(_0x116a24){if(_0x116a24){return _0x116a24[_0x014a('0x34')](_0x211d18)['then'](function(_0x415f83){return _0x415f83;});}return null;};}function removeEntity(_0x12de94,_0x40738f){return function(_0x467032){if(_0x467032){return _0x467032[_0x014a('0x35')]()[_0x014a('0x1e')](function(){_0x12de94[_0x014a('0x29')](0xcc)[_0x014a('0x2a')]();});}};}function handleEntityNotFound(_0x5e37e4,_0x19cee1){return function(_0x1dfe6e){if(!_0x1dfe6e){_0x5e37e4[_0x014a('0x36')](0x194);}return _0x1dfe6e;};}function handleError(_0x1f31c8,_0x5127f3){_0x5127f3=_0x5127f3||0x1f4;return function(_0x427c7a){logger[_0x014a('0x24')](_0x427c7a[_0x014a('0x37')]);if(_0x427c7a[_0x014a('0x38')]){delete _0x427c7a[_0x014a('0x38')];}_0x1f31c8[_0x014a('0x29')](_0x5127f3)[_0x014a('0x39')](_0x427c7a);};}function getMustacheRender(_0x36187b,_0x1ec350){return Mustache['render'](_0x36187b,_[_0x014a('0x3a')](_0x1ec350['body'],{'contact':_0x1ec350[_0x014a('0x3b')],'message':_0x1ec350[_0x014a('0x26')],'agent':_0x1ec350[_0x014a('0x3c')],'interaction':_0x1ec350[_0x014a('0x3d')],'account':_0x1ec350[_0x014a('0x3e')]}))||'';}function getInteractionUsers(_0x55126d,_0x1c6f6f){return new BPromise(function(_0x3f4a61,_0x51dca8){try{if(_0x1c6f6f[_0x55126d['id']]){_0x55126d[_0x014a('0x3f')]=_[_0x014a('0x40')](_0x1c6f6f[_0x55126d['id']],function(_0x3e5ecf){return{'id':_0x3e5ecf['id'],'fullname':_0x3e5ecf[_0x014a('0x41')]};});}}catch(_0x3788d6){_0x51dca8(_0x3788d6);}_0x3f4a61(_0x55126d);});}function getInteractionTags(_0x313eb8,_0x17b1b6){return new BPromise(function(_0x764fbe,_0x2beddc){try{if(_0x313eb8['TagIds']){_0x313eb8[_0x014a('0x42')]=[];_0x313eb8[_0x014a('0x43')][_0x014a('0x44')](',')[_0x014a('0x45')](function(_0x5f1a91){_0x313eb8[_0x014a('0x42')][_0x014a('0x46')](_0x17b1b6[_0x5f1a91]);});}delete _0x313eb8[_0x014a('0x43')];}catch(_0x1355dd){_0x2beddc(_0x1355dd);}_0x764fbe(_0x313eb8);});}function updateChatInteraction(_0x1dc647,_0x430a56,_0x5f2969){return new BPromise(function(_0x361866,_0x2830e1){return getInteractionUsers(_0x1dc647,_0x5f2969)['then'](function(_0xc086b3){return getInteractionTags(_0xc086b3,_0x430a56);})[_0x014a('0x1e')](function(_0x2c45f1){_0x361866(_0x2c45f1);})['catch'](function(_0x5bcf8){_0x2830e1(_0x5bcf8);});});}exports['index']=function(_0x5ab5e8,_0x67b30f){var _0x29c9ca={},_0x5aa496={},_0x1557ad={'count':0x0,'rows':[]};var _0x11c0d5=_[_0x014a('0x40')](db[_0x014a('0x47')][_0x014a('0x48')],function(_0xbaf8c6){return{'name':_0xbaf8c6['fieldName'],'type':_0xbaf8c6[_0x014a('0x49')][_0x014a('0x4a')]};});_0x5aa496[_0x014a('0x4b')]=_['map'](_0x11c0d5,'name');_0x5aa496[_0x014a('0x4c')]=_['keys'](_0x5ab5e8['query']);_0x5aa496[_0x014a('0x4d')]=_['intersection'](_0x5aa496[_0x014a('0x4b')],_0x5aa496[_0x014a('0x4c')]);_0x29c9ca[_0x014a('0x4e')]=_['intersection'](_0x5aa496[_0x014a('0x4b')],qs[_0x014a('0x4f')](_0x5ab5e8[_0x014a('0x4c')][_0x014a('0x4f')]));_0x29c9ca[_0x014a('0x4e')]=_0x29c9ca[_0x014a('0x4e')]['length']?_0x29c9ca[_0x014a('0x4e')]:_0x5aa496[_0x014a('0x4b')];if(!_0x5ab5e8['query'][_0x014a('0x50')](_0x014a('0x51'))){_0x29c9ca[_0x014a('0x2d')]=qs[_0x014a('0x2d')](_0x5ab5e8[_0x014a('0x4c')][_0x014a('0x2d')]);_0x29c9ca[_0x014a('0x2b')]=qs[_0x014a('0x2b')](_0x5ab5e8['query'][_0x014a('0x2b')]);}_0x29c9ca[_0x014a('0x52')]=qs[_0x014a('0x53')](_0x5ab5e8[_0x014a('0x4c')][_0x014a('0x53')]);_0x29c9ca['where']=qs[_0x014a('0x4d')](_['pick'](_0x5ab5e8[_0x014a('0x4c')],_0x5aa496[_0x014a('0x4d')]),_0x11c0d5);var _0x40e02b=[];var _0x479dc0=squel[_0x014a('0x54')]()['field']('id')['field']('name')['field'](_0x014a('0x55'))['from'](_0x014a('0x56'));var _0x5b5318=squel['select']()[_0x014a('0x57')]('u.id')[_0x014a('0x57')](_0x014a('0x58'))[_0x014a('0x57')](_0x014a('0x59'))[_0x014a('0x5a')](_0x014a('0x5b'),'ui')[_0x014a('0x5c')](_0x014a('0x5d'),'u',_0x014a('0x5e'));var _0x3fc9ab=squel['select']()['from'](_0x014a('0x5f'),'i')[_0x014a('0x5c')](_0x014a('0x60'),'c','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL')['left_join'](_0x014a('0x5d'),'o','o.id\x20=\x20i.UserId')[_0x014a('0x5c')](_0x014a('0x61'),'a',_0x014a('0x62'))[_0x014a('0x5c')]('chat_messages','me',_0x014a('0x63'))[_0x014a('0x5c')](_0x014a('0x64'),'it','it.ChatInteractionId\x20=\x20i.id')[_0x014a('0x5c')]('tools_tags','t',_0x014a('0x65'));var _0x47074f=squel[_0x014a('0x66')]();var _0x24d433=[];var _0xd0334a=squel[_0x014a('0x66')]();var _0x4e9260;if(_0x5ab5e8[_0x014a('0x4c')][_0x014a('0x67')]){_0x4e9260=as[_0x014a('0x68')](_0x5ab5e8['query'][_0x014a('0x67')]);var _0x17f9d7=_0x4e9260[_0x014a('0x69')];for(var _0xa4fd8d=0x0;_0xa4fd8d<_0x4e9260[_0x014a('0x6a')]['length'];_0xa4fd8d++){var _0x8ac9cd=_0x4e9260[_0x014a('0x6a')][_0xa4fd8d];var _0x63c341='i';var _0x37a7b8=_[_0x014a('0x6b')](_0x11c0d5,[_0x014a('0x38'),_0x8ac9cd[_0x014a('0x57')]]);if(!_0x37a7b8){switch(_0x8ac9cd[_0x014a('0x57')]){case _0x014a('0x6c'):if(_0x8ac9cd[_0x014a('0x6d')]==0x1){_0x3fc9ab[_0x014a('0x6e')]('`'+_0x8ac9cd[_0x014a('0x57')]+'`\x20=\x200');}else{_0x3fc9ab[_0x014a('0x6e')]('`'+_0x8ac9cd['field']+'`\x20>\x200');}break;case'Contact':if(_0x8ac9cd['operator']==='$substring'){if(_0x8ac9cd[_0x014a('0x6d')][_0x014a('0x44')]('\x20')[_0x014a('0x6f')]>0x1){_0x47074f[_0x17f9d7]('MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs[_0x014a('0x70')](_0x8ac9cd[_0x014a('0x6d')]),null);}else{var _0x3071c8='%'+_0x8ac9cd[_0x014a('0x6d')]+'%';_0x47074f[_0x17f9d7]('c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?',_0x3071c8,_0x3071c8,_0x3071c8);}}else{_0x37a7b8=_['find'](_0x11c0d5,[_0x014a('0x38'),_0x014a('0x71')]);_0x8ac9cd[_0x014a('0x57')]=_0x014a('0x71');_0x58e087=as[_0x014a('0x72')](_0x63c341,_0x37a7b8[_0x014a('0x49')],_0x8ac9cd);_0x47074f[_0x17f9d7](_0x58e087[_0x014a('0x73')],_0x58e087[_0x014a('0x6d')][_0x014a('0x74')],_0x58e087[_0x014a('0x6d')][_0x014a('0x2a')]);}break;case'Tag':var _0x2d87e3=_0x8ac9cd[_0x014a('0x6d')]['split'](',')[_0x014a('0x40')](function(_0x3e39c9){return Number(_0x3e39c9);});_0x2d87e3['forEach'](function(_0x14f2e2){_0xd0334a['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x14f2e2+',%');});_0x24d433=_[_0x014a('0x75')](_0x24d433,_0x2d87e3);break;case _0x014a('0x76'):if(_0x8ac9cd[_0x014a('0x77')]===_0x014a('0x78')){_0x47074f[_0x17f9d7](_0x014a('0x79'),'%'+_0x8ac9cd['value']+'%',null);}else{_0x37a7b8=_[_0x014a('0x6b')](_0x11c0d5,[_0x014a('0x38'),_0x014a('0x7a')]);_0x8ac9cd[_0x014a('0x57')]=_0x014a('0x7a');_0x58e087=as['buildExpression'](_0x63c341,_0x37a7b8[_0x014a('0x49')],_0x8ac9cd);_0x47074f[_0x17f9d7](_0x58e087[_0x014a('0x73')],_0x58e087[_0x014a('0x6d')]['start'],_0x58e087[_0x014a('0x6d')]['end']);}break;case _0x014a('0x7b'):_0x58e087=as[_0x014a('0x72')]('me',null,_0x8ac9cd);_0x47074f[_0x17f9d7](_0x58e087[_0x014a('0x73')],_0x58e087[_0x014a('0x6d')][_0x014a('0x74')],_0x58e087[_0x014a('0x6d')][_0x014a('0x2a')]);break;}}else{var _0x58e087=as['buildExpression'](_0x63c341,_0x37a7b8[_0x014a('0x49')],_0x8ac9cd);_0x47074f[_0x17f9d7](_0x58e087['text'],_0x58e087[_0x014a('0x6d')]['start'],_0x58e087[_0x014a('0x6d')][_0x014a('0x2a')]);}}}else{var _0x55bca3=_(_0x5ab5e8['query'])[_0x014a('0x7c')]()[_0x014a('0x40')](function(_0x5f391d){return _[_0x014a('0x7d')](_0x11c0d5,[_0x014a('0x38'),_0x5f391d])?_0x5f391d:undefined;})['compact']()['value']();if(!_[_0x014a('0x7e')](_0x55bca3)){_0x55bca3[_0x014a('0x45')](function(_0x1ee130){if(_0x1ee130===_0x014a('0x7f')){_0x3fc9ab[_0x014a('0x80')](_0x014a('0x81'),[]['concat'](_0x5ab5e8[_0x014a('0x4c')][_0x1ee130]));}else if(_0x1ee130==='createdAt'){var _0x5a8351=JSON[_0x014a('0x82')](_0x5ab5e8[_0x014a('0x4c')][_0x1ee130])['$gte'];var _0x27e363=JSON[_0x014a('0x82')](_0x5ab5e8[_0x014a('0x4c')][_0x1ee130])[_0x014a('0x83')];_0x3fc9ab[_0x014a('0x80')]('i.createdAt\x20BETWEEN\x20?\x20AND\x20?',_0x5a8351,_0x27e363);}else{if(_0x5ab5e8[_0x014a('0x4c')][_0x1ee130]===_0x014a('0x84')){_0x3fc9ab[_0x014a('0x80')]('i.'+_0x1ee130+_0x014a('0x85'));}else{_0x3fc9ab['where']('i.'+_0x1ee130+_0x014a('0x86'),_0x5ab5e8['query'][_0x1ee130]);}}});}if(_0x5ab5e8[_0x014a('0x4c')][_0x014a('0x87')]){if(_0x5ab5e8[_0x014a('0x4c')][_0x014a('0x87')]==0x1){_0x3fc9ab[_0x014a('0x6e')](_0x014a('0x88'));}else{_0x3fc9ab['having'](_0x014a('0x89'));}}if(_0x5ab5e8[_0x014a('0x4c')][_0x014a('0x8a')]){_0x24d433=_[_0x014a('0x8b')](_0x5ab5e8[_0x014a('0x4c')][_0x014a('0x8a')])?_0x5ab5e8[_0x014a('0x4c')][_0x014a('0x8a')]:new Array(_0x5ab5e8['query'][_0x014a('0x8a')]);_0x24d433[_0x014a('0x45')](function(_0x3c2a39){_0xd0334a['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x3c2a39+',%');});}if(_0x5ab5e8[_0x014a('0x4c')][_0x014a('0x8c')]){var _0x1cdfa5=_0x5ab5e8[_0x014a('0x4c')][_0x014a('0x8c')][_0x014a('0x8d')]('\x5c','\x5c\x5c')[_0x014a('0x8d')](/'/g,'\x27\x27');if(qs['isNumeric'](_0x1cdfa5)){_0x47074f['or']('i.id\x20LIKE\x20?',_0x1cdfa5+'%');}else{_0x47074f['or']('MATCH\x20(me.body)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs['getFullTextValue'](_0x1cdfa5))['or'](_0x014a('0x8e'),_0x1cdfa5+'%');}}}_0x3fc9ab[_0x014a('0x80')](_0x47074f);_0x3fc9ab[_0x014a('0x8f')](_0x014a('0x90'));var _0xe1b5ed={'type':db[_0x014a('0x91')][_0x014a('0x92')]['SELECT'],'raw':!![]};var _0x24ffb0=_0x3fc9ab[_0x014a('0x93')]();_0x24ffb0[_0x014a('0x57')](_0x014a('0x90'));_0x24ffb0['field']('SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)',_0x014a('0x6c'));if(_0x29c9ca[_0x014a('0x52')]){_0x29c9ca['order']['forEach'](function(_0x9aa04b){var _0x5bcaf9=_0x9aa04b[0x0]==='contactName'?_0x9aa04b[0x0]:'i.'+_0x9aa04b[0x0];_0x3fc9ab[_0x014a('0x52')](_0x5bcaf9,_0x9aa04b[0x1]===_0x014a('0x94')?![]:!![]);});}if(!_['isEmpty'](_0x24d433)){_0x3fc9ab[_0x014a('0x6e')](_0xd0334a);_0x24ffb0[_0x014a('0x80')](_0x014a('0x95'),_0x24d433);}BPromise[_0x014a('0x96')]()[_0x014a('0x1e')](function(){if(!_0x4e9260){if(_0x5ab5e8[_0x014a('0x4c')][_0x014a('0x7f')])return;_0x24ffb0[_0x014a('0x80')]('i.ChatWebsiteId\x20IS\x20NOT\x20NULL');_0x3fc9ab['where'](_0x014a('0x97'));return;}if(_0x5ab5e8['user']['role']!=='agent')return;return _0x5ab5e8[_0x014a('0x98')][_0x014a('0x99')]({'attributes':['id'],'raw':!![]})[_0x014a('0x1e')](function(_0x55408f){if(_[_0x014a('0x7e')](_0x55408f)){_0x24ffb0[_0x014a('0x80')](_0x014a('0x9a'));_0x3fc9ab[_0x014a('0x80')]('i.ChatWebsiteId\x20IS\x20NULL');}else{_0x24ffb0[_0x014a('0x80')](_0x014a('0x81'),_[_0x014a('0x40')](_0x55408f,'id'));_0x3fc9ab['where'](_0x014a('0x81'),_[_0x014a('0x40')](_0x55408f,'id'));}});})['then'](function(){if(_0x5ab5e8[_0x014a('0x98')][_0x014a('0x9b')]===_0x014a('0x3c')&&!_0x4e9260&&!_0x5ab5e8['query'][_0x014a('0x7f')])return[];return db[_0x014a('0x9c')]['query'](_0x24ffb0[_0x014a('0x9d')](),_0xe1b5ed);})[_0x014a('0x1e')](function(_0x317df3){_0x1557ad[_0x014a('0x2e')]=_0x317df3[_0x014a('0x6f')];if(_0x1557ad[_0x014a('0x2e')]===0x0)return[];return db[_0x014a('0x9c')][_0x014a('0x4c')](_0x479dc0['toString'](),_0xe1b5ed)[_0x014a('0x1e')](function(_0x1806d0){_0x40e02b=_['keyBy'](_0x1806d0,'id');_0xe1b5ed=_['merge'](_0xe1b5ed,{'model':db[_0x014a('0x47')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x5ab5e8[_0x014a('0x4c')]['fields']){_0x29c9ca[_0x014a('0x4e')][_0x014a('0x45')](function(_0x216b27){_0x3fc9ab['field']('i.'+_0x216b27);});}else{_0x3fc9ab[_0x014a('0x57')](_0x014a('0x9e'),'unreadMessages');_0x3fc9ab['field'](_0x014a('0x9f'),'Account.key');_0x3fc9ab[_0x014a('0x57')]('a.mandatoryDisposition',_0x014a('0xa0'));_0x3fc9ab[_0x014a('0x57')](_0x014a('0xa1'),_0x014a('0xa2'));_0x3fc9ab[_0x014a('0x57')]('i.*');_0x3fc9ab[_0x014a('0x57')](_0x014a('0xa3'),_0x014a('0xa4'));_0x3fc9ab[_0x014a('0x57')](_0x014a('0xa5'),_0x014a('0xa6'));_0x3fc9ab[_0x014a('0x57')](_0x014a('0xa7'),'Contact.email');_0x3fc9ab[_0x014a('0x57')]('c.phone',_0x014a('0xa8'));_0x3fc9ab['field']('c.mobile','Contact.mobile');_0x3fc9ab['field'](_0x014a('0xa9'),_0x014a('0xaa'));_0x3fc9ab[_0x014a('0x57')](_0x014a('0xab'),_0x014a('0xac'));_0x3fc9ab[_0x014a('0x57')](_0x014a('0xad'),_0x014a('0xae'));_0x3fc9ab['field']('GROUP_CONCAT(DISTINCT\x20t.id)',_0x014a('0x43'));}if(_0x29c9ca[_0x014a('0x2d')])_0x3fc9ab[_0x014a('0x2d')](_0x29c9ca[_0x014a('0x2d')]);if(_0x29c9ca[_0x014a('0x2b')])_0x3fc9ab[_0x014a('0x2b')](_0x29c9ca[_0x014a('0x2b')]);return db[_0x014a('0x9c')]['query'](_0x3fc9ab[_0x014a('0x9d')](),_0xe1b5ed);})[_0x014a('0x1e')](function(_0x3a2752){if(_0x3a2752[_0x014a('0x6f')]>0x0)_0x5b5318[_0x014a('0x80')]('ui.ChatInteractionId\x20IN\x20?',_[_0x014a('0x40')](_0x3a2752,'id'));return db[_0x014a('0x9c')][_0x014a('0x4c')](_0x5b5318[_0x014a('0x9d')](),_0xe1b5ed)[_0x014a('0x1e')](function(_0x567357){var _0x3036e4=_['groupBy'](_0x567357,_0x014a('0xaf'));var _0x5a83ab=[];_0x3a2752['forEach'](function(_0x1667c8){_0x5a83ab[_0x014a('0x46')](updateChatInteraction(_0x1667c8,_0x40e02b,_0x3036e4));});return BPromise['all'](_0x5a83ab);});});})[_0x014a('0x1e')](function(_0x3199b9){_0x1557ad[_0x014a('0xb0')]=_0x3199b9;return _0x1557ad;})['then'](respondWithFilteredResult(_0x67b30f,_0x29c9ca))[_0x014a('0x28')](handleError(_0x67b30f,null));};exports[_0x014a('0xb1')]=function(_0x2feb8a,_0x336bcf){var _0x2f7969={'raw':![],'where':{'id':_0x2feb8a[_0x014a('0xb2')]['id']}},_0x263212={};_0x263212[_0x014a('0x4b')]=_[_0x014a('0x7c')](db['ChatInteraction']['rawAttributes']);_0x263212[_0x014a('0x4c')]=_[_0x014a('0x7c')](_0x2feb8a[_0x014a('0x4c')]);_0x263212['filters']=_[_0x014a('0xb3')](_0x263212[_0x014a('0x4b')],_0x263212[_0x014a('0x4c')]);_0x2f7969[_0x014a('0x4e')]=_[_0x014a('0xb3')](_0x263212[_0x014a('0x4b')],qs['fields'](_0x2feb8a[_0x014a('0x4c')][_0x014a('0x4f')]));_0x2f7969[_0x014a('0x4e')]=_0x2f7969[_0x014a('0x4e')]['length']?_0x2f7969[_0x014a('0x4e')]:_0x263212[_0x014a('0x4b')];if(_0x2feb8a[_0x014a('0x4c')][_0x014a('0xb4')]){_0x2f7969[_0x014a('0xb5')]=[{'all':!![]}];}_0x2f7969=_['merge']({},_0x2f7969,_0x2feb8a[_0x014a('0xb6')]);return db['ChatInteraction']['find'](_0x2f7969)[_0x014a('0x1e')](handleEntityNotFound(_0x336bcf,null))[_0x014a('0x1e')](respondWithResult(_0x336bcf,null))[_0x014a('0x28')](handleError(_0x336bcf,null));};exports[_0x014a('0xb7')]=function(_0x3646b8,_0x243fd9){return db[_0x014a('0x47')][_0x014a('0xb7')](_0x3646b8[_0x014a('0x7b')],{})[_0x014a('0x1e')](respondWithResult(_0x243fd9,0xc9))[_0x014a('0x28')](handleError(_0x243fd9,null));};exports[_0x014a('0x34')]=function(_0x383bd8,_0x175c12){if(_0x383bd8[_0x014a('0x7b')]['id']){delete _0x383bd8[_0x014a('0x7b')]['id'];}return db['ChatInteraction'][_0x014a('0x6b')]({'where':{'id':_0x383bd8[_0x014a('0xb2')]['id']}})[_0x014a('0x1e')](handleEntityNotFound(_0x175c12,null))['then'](saveUpdates(_0x383bd8[_0x014a('0x7b')],null))[_0x014a('0x1e')](respondWithResult(_0x175c12,null))[_0x014a('0x28')](handleError(_0x175c12,null));};exports[_0x014a('0x35')]=function(_0x116631,_0xbfd7f8){return db[_0x014a('0x47')][_0x014a('0x6b')]({'where':{'id':_0x116631[_0x014a('0xb2')]['id']}})['then'](handleEntityNotFound(_0xbfd7f8,null))[_0x014a('0x1e')](removeEntity(_0xbfd7f8,null))[_0x014a('0x28')](handleError(_0xbfd7f8,null));};exports[_0x014a('0xb8')]=function(_0x11aab3,_0x4f91f1){return db[_0x014a('0x47')]['describe']()['then'](respondWithResult(_0x4f91f1,null))[_0x014a('0x28')](handleError(_0x4f91f1,null));};exports['createVidaooSession']=function(_0x2de457,_0x2ca658){var _0x4ee77b=_0x2de457[_0x014a('0xb2')]['id'];var _0x4e75e4;var _0x172210;var _0x8cc35d;return db['ChatInteraction'][_0x014a('0xb9')]({'where':{'id':_0x4ee77b}})[_0x014a('0x1e')](function(_0x50a129){_0x4e75e4=_0x50a129;return db[_0x014a('0xba')][_0x014a('0xb9')]({'where':{'id':_0x50a129[_0x014a('0x7f')]},'attributes':['id',_0x014a('0xbb'),_0x014a('0xbc'),_0x014a('0xbd'),_0x014a('0xbe'),_0x014a('0xbf')],'raw':!![]});})[_0x014a('0x1e')](function(_0x38df6c){if(_0x38df6c&&_0x38df6c[_0x014a('0xbb')]&&_0x38df6c[_0x014a('0xbc')]){_0x172210=_0x38df6c;var _0x4e0c1a={'interaction':{'id':_0x4ee77b},'agent':{'id':_0x2de457[_0x014a('0x98')]['id'],'name':_0x2de457[_0x014a('0x98')][_0x014a('0x38')],'fullname':_0x2de457[_0x014a('0x98')][_0x014a('0x41')],'email':_0x2de457[_0x014a('0x98')][_0x014a('0xc0')]},'contact':_0x2de457[_0x014a('0x7b')]['contact'],'account':_0x2de457[_0x014a('0x7b')][_0x014a('0x3e')]};var _0x2b3dc0={'rejectUnauthorized':![],'method':_0x014a('0xc1'),'url':_0x014a('0xc2'),'headers':{'X-APIKEY':_0x38df6c[_0x014a('0xbb')]},'body':{'duration':null,'scheduledAt':null,'participants':[_0x2de457['user'][_0x014a('0xc0')]],'buttons':null,'topic':_0x172210[_0x014a('0xbd')],'note':_[_0x014a('0xc3')](_0x172210['vidaooNote'])?null:getMustacheRender(_0x172210['vidaooNote'],_0x4e0c1a),'metadata':null},'redirect':_0x014a('0xc4'),'json':!![]};try{if(!_[_0x014a('0xc3')](_0x172210[_0x014a('0xbf')])){var _0x31e65e=getMustacheRender(_0x172210[_0x014a('0xbf')],_0x4e0c1a);var _0x537353=JSON[_0x014a('0x82')](_0x31e65e);_0x2b3dc0[_0x014a('0x7b')][_0x014a('0xc5')]=_0x537353;}}catch(_0x5dd7a5){throw new db[(_0x014a('0x91'))][(_0x014a('0xc6'))]('Error\x20in\x20conversion\x20vidaooMetadata');}return rp(_0x2b3dc0);}else{throw new db[(_0x014a('0x91'))]['ValidationError'](_0x014a('0xc7'));}})['then'](function(_0x57d852){_0x8cc35d=_0x57d852;if(_0x8cc35d['id']){var _0x581c3a={'body':_0x8cc35d[_0x014a('0xc8')],'ChatWebsiteId':_0x172210['id'],'ChatInteractionId':_0x4e75e4['id'],'direction':'out','UserId':_0x2de457[_0x014a('0x98')]['id']};return db['ChatMessage'][_0x014a('0xb7')](_0x581c3a,{});}else{throw new db[(_0x014a('0x91'))][(_0x014a('0xc6'))]('Unable\x20to\x20create\x20Vidaoo\x20session');}})[_0x014a('0x1e')](function(){return _0x4e75e4['updateAttributes']({'vidaooSessionId':_0x8cc35d['id']});})[_0x014a('0x1e')](respondWithResult(_0x2ca658,null))[_0x014a('0x28')](handleError(_0x2ca658,null));};exports[_0x014a('0xc9')]=function(_0x533371,_0x57b53b){if(_0x533371[_0x014a('0x7b')]['id']){delete _0x533371[_0x014a('0x7b')]['id'];}return db[_0x014a('0x47')][_0x014a('0x6b')]({'where':{'id':_0x533371[_0x014a('0xb2')]['id']},'include':[{'model':db[_0x014a('0xca')],'as':_0x014a('0xcb')}]})[_0x014a('0x1e')](handleEntityNotFound(_0x57b53b,null))[_0x014a('0x1e')](saveUpdates(_0x533371[_0x014a('0x7b')],null))[_0x014a('0x1e')](respondWithResult(_0x57b53b,null))[_0x014a('0x28')](handleError(_0x57b53b,null));};exports[_0x014a('0xcc')]=function(_0x4adbd2,_0x55a4bb,_0x38807c){if(_0x4adbd2[_0x014a('0x7b')]['id']){delete _0x4adbd2['body']['id'];}return db[_0x014a('0x47')][_0x014a('0x6b')]({'where':{'id':_0x4adbd2['params']['id']}})['then'](function(_0xf01aa6){if(!_0xf01aa6){logger[_0x014a('0x24')]('abandonInteraction,\x20%s,\x20%s,\x20%s',_0x014a('0xcc'),0x194,'entity\x20not\x20found');_0x55a4bb[_0x014a('0x36')](0x194);}else{if(_0xf01aa6[_0x014a('0x7a')]){throw new db[(_0x014a('0x91'))][(_0x014a('0xc6'))]('Interaction\x20already\x20assigned');}}return _0xf01aa6;})['then'](function(_0x5db9d1){if(_0x5db9d1){return _0x5db9d1['update']({'closed':_0x4adbd2[_0x014a('0x7b')][_0x014a('0xcd')],'disposition':_0x4adbd2[_0x014a('0x7b')][_0x014a('0xce')]})[_0x014a('0x1e')](function(_0x3e19c0){return _0x3e19c0;});}})[_0x014a('0x1e')](function(_0x3546e7){return respondWithRpcPromise(_0x014a('0xcf'),_0x014a('0xcc'),_0x4adbd2[_0x014a('0x7b')],client9004);})['then'](respondWithResult(_0x55a4bb,null))['catch'](handleError(_0x55a4bb,null));};exports['attachmentUpload']=function(_0x190839,_0x28f011,_0x4da4a1){_0x190839[_0x014a('0x7b')][_0x014a('0x38')]=_0x190839[_0x014a('0xd0')][_0x014a('0xd1')];_0x190839['body'][_0x014a('0xd2')]=_0x190839[_0x014a('0xd0')]['filename'];_0x190839[_0x014a('0x7b')][_0x014a('0x49')]=_0x190839['file'][_0x014a('0xd3')];return db[_0x014a('0xd4')][_0x014a('0xb7')](_0x190839[_0x014a('0x7b')])[_0x014a('0x1e')](respondWithResult(_0x28f011,0xc9))[_0x014a('0x28')](handleError(_0x28f011,null));};exports[_0x014a('0xd5')]=function(_0xd50ab0,_0x4cee0b,_0x129deb){return db[_0x014a('0x47')][_0x014a('0xb9')]({'where':{'id':_0xd50ab0[_0x014a('0xb2')]['id']},'raw':!![]})[_0x014a('0x1e')](handleEntityNotFound(_0x4cee0b,null))[_0x014a('0x1e')](function(_0x2573bd){if(_0x2573bd){if(_0x2573bd[_0x014a('0xcd')]){return _0x4cee0b[_0x014a('0x29')](0x193)['json']({'status':0x193,'message':_0x014a('0xd6')});}return db['Attachment'][_0x014a('0xb9')]({'where':{'id':_0xd50ab0[_0x014a('0x4c')][_0x014a('0xd7')]},'raw':!![]})['then'](handleEntityNotFound(_0x4cee0b,null));}})['then'](function(_0x293ee3){if(_0x293ee3){var _0x4ce807=_0x293ee3['ChatOfflineMessageId']!==null;var _0x5c002b=path[_0x014a('0xd8')](config[_0x014a('0xd9')],_0x014a('0xda'));if(_0x4ce807){_0x5c002b=path['join'](_0x5c002b,_0x014a('0xdb'));}var _0x19a2ed=path['join'](_0x5c002b,_0x293ee3[_0x014a('0xd2')]);return _0x4cee0b[_0x014a('0xdc')](_0x19a2ed);}})[_0x014a('0x28')](handleError(_0x4cee0b,null));};exports['close']=function(_0x5b82f2,_0x2b622f){var _0x24e9d7=null;var _0x344adb=null;var _0x1441ed=null;var _0x34b528=null;if(_0x5b82f2[_0x014a('0x7b')]['id']){delete _0x5b82f2['body']['id'];}if(_0x5b82f2['body']['mailTranscript']){_0x34b528=path[_0x014a('0xd8')](config[_0x014a('0xd9')],_0x014a('0xdd'),util['format'](_0x014a('0xde'),Date[_0x014a('0xdf')]()));_0x5b82f2[_0x014a('0x7b')]['pathTranscript']=_0x34b528;}return db[_0x014a('0x47')][_0x014a('0x6b')]({'where':{'id':_0x5b82f2[_0x014a('0xb2')]['id']},'include':[{'model':db[_0x014a('0xe0')],'as':'Messages','include':[{'model':db[_0x014a('0x76')],'as':'User'}]}]})[_0x014a('0x1e')](handleEntityNotFound(_0x2b622f,null))[_0x014a('0x1e')](saveUpdates(_0x5b82f2[_0x014a('0x7b')],null))['then'](function(_0xdd63f){if(_0xdd63f){_0x24e9d7=_0xdd63f;return db[_0x014a('0xba')][_0x014a('0x6b')]({'where':{'id':_0x24e9d7[_0x014a('0x7f')]}});}})[_0x014a('0x1e')](function(_0x49a1eb){if(_0x49a1eb){_0x1441ed=_0x49a1eb;return db[_0x014a('0xca')][_0x014a('0x6b')]({'where':{'id':_0x24e9d7[_0x014a('0x71')]}});}})[_0x014a('0x1e')](function(_0x2432ac){if(_0x2432ac){_0x344adb=_0x2432ac;if(_0x34b528){var _0xb91589=null;for(var _0x53260c=0x1;_0x53260c<_0x24e9d7[_0x014a('0xe1')][_0x014a('0x6f')];++_0x53260c){_0xb91589=_0x24e9d7['Messages'][_0x53260c];var _0x1b5b25=_0xb91589['UserId']?util[_0x014a('0xe2')]('%s%d',_0x1441ed[_0x014a('0xe3')],_0xb91589[_0x014a('0x7a')]):_0x014a('0xe4');var _0x10b3c5=_0x5b82f2[_0x014a('0x7b')][_0x014a('0xe5')]||util[_0x014a('0xe2')]('%s%d','Visitor',_0xb91589[_0x014a('0x71')]);switch(_0x1441ed[_0x014a('0xe6')]){case'website_alias':_0x1b5b25=_0xb91589[_0x014a('0x7a')]?util[_0x014a('0xe2')](_0x014a('0xe7'),_0x1441ed[_0x014a('0xe3')],_0xb91589[_0x014a('0x7a')]):'System';break;case _0x014a('0xe8'):_0x1b5b25=_0xb91589[_0x014a('0x7a')]?_0xb91589[_0x014a('0x76')][_0x014a('0xe9')]||_0xb91589['User'][_0x014a('0x41')]:'System';break;case _0x014a('0xea'):_0x1b5b25=_0xb91589[_0x014a('0x7a')]?_0xb91589[_0x014a('0x76')][_0x014a('0x41')]:_0x014a('0xe4');break;default:_0x1b5b25=_0xb91589[_0x014a('0x7a')]?util[_0x014a('0xe2')]('%s%d',_0x1441ed[_0x014a('0xe3')],_0xb91589[_0x014a('0x7a')]):_0x014a('0xe4');}var _0x343b5e=util['format']('[%s]\x20%s:\x20%s\x0a',moment(_0xb91589[_0x014a('0xeb')])[_0x014a('0xe2')]('MM/DD/YYYY\x20HH:mm:ss'),_0xb91589[_0x014a('0xec')]==='in'?_0x10b3c5:_0x1b5b25,_0xb91589[_0x014a('0x7b')]);if(!_0xb91589[_0x014a('0xed')]){fs[_0x014a('0xee')](_0x34b528,_0x343b5e);}}return db[_0x014a('0xef')][_0x014a('0xb9')]({'where':{'service':!![]},'include':[{'model':db[_0x014a('0xf0')],'as':_0x014a('0xf1'),'raw':!![]}]});}}})[_0x014a('0x1e')](function(_0x4ad0c6){if(_0x4ad0c6&&_0x4ad0c6[_0x014a('0xf1')]&&_0x5b82f2['body']){var _0x5f8d5b={'tls':{'rejectUnauthorized':![]}};if(_0x4ad0c6[_0x014a('0xf1')]['service']){_0x5f8d5b[_0x014a('0xf2')]=_0x4ad0c6[_0x014a('0xf1')][_0x014a('0xf2')];}else{_0x5f8d5b[_0x014a('0xf3')]=_0x4ad0c6[_0x014a('0xf1')]['host'];_0x5f8d5b[_0x014a('0xf4')]=_0x4ad0c6[_0x014a('0xf1')][_0x014a('0xf4')];_0x5f8d5b[_0x014a('0xf5')]=_0x4ad0c6[_0x014a('0xf1')][_0x014a('0xf5')];}if(_0x4ad0c6[_0x014a('0xf1')][_0x014a('0xf6')]){_0x5f8d5b['auth']={'user':_0x4ad0c6[_0x014a('0xf1')]['user'],'pass':_0x4ad0c6[_0x014a('0xf1')][_0x014a('0xf7')]};}return respondWithRpcPromise(_0x014a('0xf8'),_0x014a('0xf9'),{'account':_0x5f8d5b,'message':{'from':util[_0x014a('0xe2')](_0x014a('0xfa'),_0x4ad0c6['name'],_0x4ad0c6[_0x014a('0xc0')]||_0x4ad0c6['Smtp'][_0x014a('0x98')]),'to':_0x5b82f2[_0x014a('0x7b')][_0x014a('0xfb')],'subject':_0x014a('0xfc'),'text':util[_0x014a('0xe2')](_0x014a('0xfd'),_0x5b82f2[_0x014a('0x7b')][_0x014a('0xfb')]),'attachments':[{'path':_0x34b528}]}})['then'](function(){return _0x24e9d7;})['catch'](function(_0xac886c){console[_0x014a('0x24')](_0xac886c);});}else{return _0x24e9d7;}})[_0x014a('0x1e')](respondWithStatusCode(_0x2b622f,0xc8))[_0x014a('0x28')](handleError(_0x2b622f,null));};exports[_0x014a('0xfe')]=function(_0x30aa7b,_0x451579,_0x3858a1){return db[_0x014a('0xe0')][_0x014a('0x6b')]({'where':{'id':_0x30aa7b[_0x014a('0xb2')]['id']}})[_0x014a('0x1e')](handleEntityNotFound(_0x451579,null))[_0x014a('0x1e')](function(_0x57bd30){if(_0x57bd30){return _0x57bd30[_0x014a('0xfe')](_0x30aa7b[_0x014a('0x7b')][_0x014a('0xff')],_['omit'](_0x30aa7b[_0x014a('0x7b')],[_0x014a('0xff'),'id'])||{});}})[_0x014a('0x1e')](respondWithResult(_0x451579,null))[_0x014a('0x28')](handleError(_0x451579,null));};exports[_0x014a('0x100')]=function(_0x36c94d,_0x44cb05,_0x30a903){var _0x3bb1f={'raw':![],'where':{}};var _0x4775a4={};var _0x13ec10={'count':0x0,'rows':[]};return db[_0x014a('0x47')]['findOne']({'where':{'id':_0x36c94d['params']['id']}})[_0x014a('0x1e')](handleEntityNotFound(_0x44cb05,null))[_0x014a('0x1e')](function(_0x4a361b){if(_0x4a361b){_0x4775a4[_0x014a('0x4b')]=_[_0x014a('0x7c')](db[_0x014a('0xe0')][_0x014a('0x48')]);_0x4775a4[_0x014a('0x4c')]=_[_0x014a('0x7c')](_0x36c94d[_0x014a('0x4c')]);_0x4775a4[_0x014a('0x4d')]=_['intersection'](_0x4775a4[_0x014a('0x4b')],_0x4775a4[_0x014a('0x4c')]);_0x3bb1f[_0x014a('0x4e')]=_[_0x014a('0xb3')](_0x4775a4['model'],qs[_0x014a('0x4f')](_0x36c94d[_0x014a('0x4c')][_0x014a('0x4f')]));_0x3bb1f['attributes']=_0x3bb1f[_0x014a('0x4e')][_0x014a('0x6f')]?_0x3bb1f['attributes']:_0x4775a4[_0x014a('0x4b')];if(!_0x36c94d[_0x014a('0x4c')][_0x014a('0x50')]('nolimit')){_0x3bb1f[_0x014a('0x2d')]=qs[_0x014a('0x2d')](_0x36c94d[_0x014a('0x4c')]['limit']);_0x3bb1f[_0x014a('0x2b')]=qs['offset'](_0x36c94d[_0x014a('0x4c')]['offset']);}_0x3bb1f[_0x014a('0x52')]=qs[_0x014a('0x53')](_0x36c94d['query'][_0x014a('0x53')]);_0x3bb1f['where']=qs[_0x014a('0x4d')](_[_0x014a('0x101')](_0x36c94d[_0x014a('0x4c')],_0x4775a4[_0x014a('0x4d')]));_0x3bb1f[_0x014a('0x80')]['ChatInteractionId']=_0x4a361b['id'];if(_0x36c94d[_0x014a('0x4c')][_0x014a('0x8c')]){_0x3bb1f[_0x014a('0x80')]=_['merge'](_0x3bb1f[_0x014a('0x80')],{'$or':_[_0x014a('0x40')](_0x3bb1f['attributes'],function(_0x565da5){var _0x309858={};_0x309858[_0x565da5]={'$like':'%'+_0x36c94d[_0x014a('0x4c')]['filter']+'%'};return _0x309858;})});}if(_0x36c94d[_0x014a('0x4c')]['$gte']){var _0x56bfaf=_0x36c94d[_0x014a('0x4c')][_0x014a('0x102')]['split'](',');var _0x5f14e4={};_0x5f14e4[_0x56bfaf[0x0]]={'$gte':moment(_0x56bfaf[0x1])['format'](_0x014a('0x103'))};_0x3bb1f[_0x014a('0x80')]=_[_0x014a('0x3a')](_0x3bb1f['where'],_0x5f14e4);}_0x3bb1f=_['merge']({},_0x3bb1f,_0x36c94d[_0x014a('0xb6')]);return db['ChatMessage'][_0x014a('0x2e')]({'where':_0x3bb1f[_0x014a('0x80')]})['then'](function(_0x4acfe9){_0x13ec10[_0x014a('0x2e')]=_0x4acfe9;if(_0x36c94d[_0x014a('0x4c')]['includeAll']){_0x3bb1f[_0x014a('0xb5')]=[{'all':!![]}];}return db['ChatMessage'][_0x014a('0x104')](_0x3bb1f);})['then'](function(_0x8c21a7){_0x13ec10[_0x014a('0xb0')]=_0x8c21a7;return _0x13ec10;});}})[_0x014a('0x1e')](respondWithFilteredResult(_0x44cb05,_0x3bb1f))[_0x014a('0x28')](handleError(_0x44cb05,null));};exports[_0x014a('0x105')]=function(_0x260f79,_0x68de07,_0x4126a3){var _0x4f1f23={'where':{}},_0x1ef9b0={},_0x11d0e9={'count':0x0,'rows':[]};return db[_0x014a('0x47')][_0x014a('0xb9')]({'where':{'id':_0x260f79[_0x014a('0xb2')]['id']}})[_0x014a('0x1e')](handleEntityNotFound(_0x68de07,null))[_0x014a('0x1e')](function(_0x4f7960){if(_0x4f7960){_0x1ef9b0['model']=_[_0x014a('0x7c')](db[_0x014a('0xe0')][_0x014a('0x48')]);_0x1ef9b0[_0x014a('0x4c')]=_[_0x014a('0x7c')](_0x260f79[_0x014a('0x4c')]);_0x1ef9b0[_0x014a('0x4d')]=_[_0x014a('0xb3')](_0x1ef9b0[_0x014a('0x4b')],_0x1ef9b0[_0x014a('0x4c')]);_0x4f1f23[_0x014a('0x4e')]=_['intersection'](_0x1ef9b0[_0x014a('0x4b')],qs[_0x014a('0x4f')](_0x260f79[_0x014a('0x4c')][_0x014a('0x4f')]));_0x4f1f23[_0x014a('0x4e')]=_0x4f1f23[_0x014a('0x4e')][_0x014a('0x6f')]?_0x4f1f23['attributes']:_0x1ef9b0['model'];if(!_0x260f79[_0x014a('0x4c')][_0x014a('0x50')](_0x014a('0x51'))){_0x4f1f23[_0x014a('0x2d')]=qs[_0x014a('0x2d')](_0x260f79['query'][_0x014a('0x2d')]);_0x4f1f23[_0x014a('0x2b')]=qs['offset'](_0x260f79[_0x014a('0x4c')][_0x014a('0x2b')]);}_0x4f1f23[_0x014a('0x52')]=qs['sort'](_0x260f79[_0x014a('0x4c')][_0x014a('0x53')]);_0x4f1f23[_0x014a('0x80')]=qs['filters'](_[_0x014a('0x101')](_0x260f79[_0x014a('0x4c')],_0x1ef9b0['filters']));_0x4f1f23[_0x014a('0x80')][_0x014a('0xaf')]=_0x4f7960['id'];if(_0x260f79[_0x014a('0x4c')]['filter']){_0x4f1f23[_0x014a('0x80')]=_['merge'](_0x4f1f23['where'],{'$or':_['map'](_0x4f1f23['attributes'],function(_0xf3e4fb){var _0x126084={};_0x126084[_0xf3e4fb]={'$like':'%'+_0x260f79[_0x014a('0x4c')][_0x014a('0x8c')]+'%'};return _0x126084;})});}_0x4f1f23[_0x014a('0x80')][_0x014a('0xed')]=![];if(_0x260f79[_0x014a('0x4c')]['id']){_0x4f1f23['where']['id']={'$gt':_0x260f79[_0x014a('0x4c')]['id']};}_0x4f1f23=_['merge']({},_0x4f1f23,_0x260f79[_0x014a('0xb6')]);return db[_0x014a('0xe0')][_0x014a('0x2e')]({'where':_0x4f1f23['where']})[_0x014a('0x1e')](function(_0x58421d){_0x11d0e9['count']=_0x58421d;_0x4f1f23[_0x014a('0xb5')]=[];if(_0x260f79[_0x014a('0x4c')][_0x014a('0x106')]){_0x4f1f23['include']['push']({'model':db[_0x014a('0x76')],'as':_0x014a('0x76'),'attributes':['id',_0x014a('0x41'),_0x014a('0xe9')]});}if(_0x260f79[_0x014a('0x4c')][_0x014a('0xb4')]){_0x4f1f23['include']=[{'all':!![]}];}return db['ChatMessage']['findAll'](_0x4f1f23);})[_0x014a('0x1e')](function(_0x40a47f){_0x11d0e9[_0x014a('0xb0')]=_0x40a47f;return _0x11d0e9;});}})['then'](respondWithFilteredResult(_0x68de07,_0x4f1f23))[_0x014a('0x28')](handleError(_0x68de07,null));};exports[_0x014a('0x107')]=function(_0x8a099,_0x81208d,_0x320be9){return db[_0x014a('0x47')][_0x014a('0x6b')]({'where':{'id':_0x8a099[_0x014a('0xb2')]['id']}})['then'](handleEntityNotFound(_0x81208d,null))[_0x014a('0x1e')](function(_0x46a2c5){if(_0x46a2c5){return _0x46a2c5['setTags'](_0x8a099[_0x014a('0x7b')][_0x014a('0xff')],_[_0x014a('0x108')](_0x8a099['body'],[_0x014a('0xff'),'id'])||{})[_0x014a('0x109')](function(){return db['Tag'][_0x014a('0x104')]({'attributes':['id','name',_0x014a('0x55')],'where':{'id':_0x8a099[_0x014a('0x7b')][_0x014a('0xff')]}});})[_0x014a('0x1e')](function(_0x4f56a9){socket['emit'](_0x014a('0x10a'),{'id':Number(_0x8a099[_0x014a('0xb2')]['id']),'tags':_0x4f56a9||[]});return{'id':Number(_0x8a099[_0x014a('0xb2')]['id']),'tags':_0x4f56a9||[]};});}})[_0x014a('0x1e')](respondWithResult(_0x81208d,null))[_0x014a('0x28')](handleError(_0x81208d,null));};exports[_0x014a('0x10b')]=function(_0x32ba5d,_0x120047,_0x570898){return db['ChatInteraction']['find']({'where':{'id':_0x32ba5d[_0x014a('0xb2')]['id']}})[_0x014a('0x1e')](handleEntityNotFound(_0x120047,null))[_0x014a('0x1e')](function(_0x47cd44){if(_0x47cd44){return _0x47cd44[_0x014a('0x10b')](_0x32ba5d[_0x014a('0x4c')][_0x014a('0xff')]);}})['then'](respondWithStatusCode(_0x120047,null))[_0x014a('0x28')](handleError(_0x120047,null));};exports['download']=function(_0x546af7,_0x4c492f){var _0x331ba9=moment()['unix']()[_0x014a('0x9d')]();var _0x3e7923=path['join'](config[_0x014a('0xd9')],'server',_0x014a('0x10c'),'tmp');var _0x387e49=path[_0x014a('0xd8')](config[_0x014a('0xd9')],_0x014a('0x10d'),_0x014a('0x10c'),_0x014a('0x10e'));var _0x1c5606=path['join'](_0x3e7923,_0x331ba9);var _0x4b4336=util[_0x014a('0xe2')]('transcript-%d-%s.zip',_0x546af7[_0x014a('0xb2')]['id'],_0x331ba9);var _0x1b3f4d=path[_0x014a('0xd8')](_0x3e7923,_0x4b4336);var _0x5f58bd=[];_0x5f58bd[_0x014a('0x46')]({'model':db[_0x014a('0x76')],'as':'User','attributes':['id',_0x014a('0x41')],'raw':!![]});_0x5f58bd[_0x014a('0x46')]({'model':db[_0x014a('0xca')],'as':_0x014a('0xcb'),'attributes':['id',_0x014a('0x10f'),_0x014a('0x110')],'raw':!![]});if(_0x546af7[_0x014a('0x4c')]['attachments']){_0x5f58bd[_0x014a('0x46')]({'model':db[_0x014a('0xd4')],'as':'Attachment','raw':!![]});}var _0x5104b1=[{'model':db[_0x014a('0xe0')],'as':_0x014a('0xe1'),'attributes':['id',_0x014a('0x7b'),_0x014a('0xeb'),'direction',_0x014a('0xed'),_0x014a('0x87')],'include':_0x5f58bd}];_0x5104b1[_0x014a('0x46')]({'model':db[_0x014a('0xba')],'as':_0x014a('0x111'),'attributes':['id',_0x014a('0x38')]});_0x5104b1['push']({'model':db['User'],'as':'Owner','attributes':['id',_0x014a('0x41')]});return db['ChatInteraction'][_0x014a('0x6b')]({'where':{'id':_0x546af7[_0x014a('0xb2')]['id']},'include':_0x5104b1})[_0x014a('0x1e')](handleEntityNotFound(_0x4c492f,null))['then'](function(_0x501d05){if(_0x501d05){var _0x48c669=_0x501d05[_0x014a('0x112')]({'plain':!![]});fs['mkdirSync'](_0x1c5606);var _0x5d4bae={'channel':_0x014a('0x113'),'account':_0x48c669[_0x014a('0x111')][_0x014a('0x38')],'agent':_0x48c669[_0x014a('0x114')]?_0x48c669[_0x014a('0x114')][_0x014a('0x41')]:_0x014a('0x115'),'createdAt':moment(_0x48c669[_0x014a('0xeb')])['format']('YYYY-MM-DD\x20HH:mm:ss')['toString'](),'closedAt':_0x48c669['closed']?moment(_0x48c669[_0x014a('0x116')])[_0x014a('0xe2')](_0x014a('0x103'))[_0x014a('0x9d')]():'','disposition':_0x48c669[_0x014a('0xce')],'chatInfo':{'browser':_0x48c669['browserName'],'os':_0x48c669[_0x014a('0x117')],'referer':_0x48c669[_0x014a('0x118')],'customerIp':_0x48c669['customerIp'],'customerPort':_0x48c669[_0x014a('0x119')]?_0x48c669[_0x014a('0x119')]:_0x014a('0x115')},'messages':_(_0x48c669[_0x014a('0xe1')])['tail']()[_0x014a('0x8c')]({'secret':![]})[_0x014a('0x40')](function(_0x5afb91){if(_0x5afb91[_0x014a('0xd4')]){var _0x172440=path[_0x014a('0xd8')](_0x387e49,_0x5afb91[_0x014a('0xd4')][_0x014a('0xd2')]);if(fs[_0x014a('0x11a')](_0x172440)){fs[_0x014a('0x11b')](_0x172440)[_0x014a('0x11c')](fs['createWriteStream'](path[_0x014a('0xd8')](_0x1c5606,_0x5afb91[_0x014a('0xd4')][_0x014a('0xd2')])));}}return{'date':moment(_0x5afb91['createdAt'])['format'](_0x014a('0x103'))[_0x014a('0x9d')](),'sender':_0x5afb91[_0x014a('0xec')]==='out'?_0x5afb91[_0x014a('0x76')]?_0x5afb91[_0x014a('0x76')][_0x014a('0x41')]:_0x014a('0xe4'):_0x5afb91[_0x014a('0xcb')][_0x014a('0x10f')]+(_0x5afb91[_0x014a('0xcb')][_0x014a('0x110')]?'\x20'+_0x5afb91[_0x014a('0xcb')][_0x014a('0x110')]:''),'body':_0x5afb91[_0x014a('0xd4')]?_0x5afb91[_0x014a('0xd4')][_0x014a('0xd2')]:_0x5afb91[_0x014a('0x7b')],'direction':_0x5afb91[_0x014a('0xec')]===_0x014a('0x11d')?'A':'C','secret':_0x5afb91[_0x014a('0xed')],'read':_0x5afb91['read'],'attachment':_0x5afb91[_0x014a('0xd4')]};})[_0x014a('0x6d')]()};return ejs['renderFile'](path['join'](config['root'],_0x014a('0x10d'),_0x014a('0x11e'),'downloadInteraction.ejs'),{'interaction':_0x5d4bae})['then'](function(_0x374e3d){var _0x2d9178=path['join'](_0x1c5606,_0x014a('0x11f')+_0x48c669['id']+'-'+_0x331ba9+'.pdf');var _0x30c604={'path':_0x2d9178,'channel':'Chat','interactionId':_0x48c669['id']};return pdf['createPdfFromHTML'](_0x374e3d,_0x30c604);})[_0x014a('0x1e')](function(){return new BPromise(function(_0x321a17,_0x2f20e7){zipdir(_0x1c5606,{'saveTo':_0x1b3f4d},function(_0x18edd1,_0xcad1af){if(_0x18edd1)return _0x2f20e7(_0x18edd1);return _0x321a17(_0xcad1af);});})['then'](function(){return new BPromise(function(_0x42cd23,_0x82d77b){rimraf(_0x1c5606,function(_0x48bcec){if(_0x48bcec)_0x82d77b(_0x48bcec);return _0x42cd23();});});})[_0x014a('0x1e')](function(){return _0x4c492f[_0x014a('0xdc')](_0x1b3f4d,_0x4b4336,function(_0x1d8179){if(_0x1d8179){console[_0x014a('0x120')](_0x014a('0x121'),_0x1d8179);}else{fs[_0x014a('0x122')](_0x1b3f4d);}});});});}else{return _0x4c492f[_0x014a('0x36')](0xc8);}})['catch'](handleError(_0x4c492f,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb944=['exports','events','../../mysqldb','ChatInteraction','ChatMessage','setMaxListeners','save','update','remove','getUsers','then','setDataValue','Users','findAll','length','emit','catch','hook'];(function(_0x5e8d90,_0x425150){var _0x581d8b=function(_0x4651cb){while(--_0x4651cb){_0x5e8d90['push'](_0x5e8d90['shift']());}};_0x581d8b(++_0x425150);}(_0xb944,0x145));var _0x4b94=function(_0x3473a6,_0x3bbf1d){_0x3473a6=_0x3473a6-0x0;var _0x587786=_0xb944[_0x3473a6];return _0x587786;};'use strict';var EventEmitter=require(_0x4b94('0x0'));var ChatInteraction=require(_0x4b94('0x1'))['db'][_0x4b94('0x2')];var ChatMessage=require(_0x4b94('0x1'))['db'][_0x4b94('0x3')];var ChatInteractionEvents=new EventEmitter();ChatInteractionEvents[_0x4b94('0x4')](0x0);var events={'afterCreate':_0x4b94('0x5'),'afterUpdate':_0x4b94('0x6'),'afterDestroy':_0x4b94('0x7')};function emitEvent(_0x4d99e6){return function(_0x276d30,_0x401022,_0x2a9c94){_0x276d30[_0x4b94('0x8')]({'attributes':['id'],'raw':!![]})[_0x4b94('0x9')](function(_0x33e844){_0x276d30[_0x4b94('0xa')](_0x4b94('0xb'),_0x33e844['map'](function(_0x23adbc){return{'id':_0x23adbc['id']};}));return ChatMessage[_0x4b94('0xc')]({'where':{'ChatInteractionId':_0x276d30['id'],'direction':'in','read':![]},'raw':!![]});})[_0x4b94('0x9')](function(_0x55b518){_0x276d30['setDataValue']('unreadMessages',_0x55b518[_0x4b94('0xd')]);ChatInteractionEvents['emit'](_0x4d99e6+':'+_0x276d30['id'],_0x276d30);ChatInteractionEvents[_0x4b94('0xe')](_0x4d99e6,_0x276d30);_0x2a9c94(null);})[_0x4b94('0xf')](_0x2a9c94(null));};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];ChatInteraction[_0x4b94('0x10')](e,emitEvent(event));}}module[_0x4b94('0x11')]=ChatInteractionEvents;
\ No newline at end of file
+var _0xbbd8=['then','emit','catch','hasOwnProperty','hook','exports','../../mysqldb','setMaxListeners','save','update','remove','getUsers','setDataValue','Users','map'];(function(_0x468e53,_0x51bb65){var _0x54dfb5=function(_0x172712){while(--_0x172712){_0x468e53['push'](_0x468e53['shift']());}};_0x54dfb5(++_0x51bb65);}(_0xbbd8,0xd8));var _0x8bbd=function(_0x1a57cb,_0x5ec459){_0x1a57cb=_0x1a57cb-0x0;var _0x4d59c8=_0xbbd8[_0x1a57cb];return _0x4d59c8;};'use strict';var EventEmitter=require('events');var ChatInteraction=require(_0x8bbd('0x0'))['db']['ChatInteraction'];var ChatMessage=require('../../mysqldb')['db']['ChatMessage'];var ChatInteractionEvents=new EventEmitter();ChatInteractionEvents[_0x8bbd('0x1')](0x0);var events={'afterCreate':_0x8bbd('0x2'),'afterUpdate':_0x8bbd('0x3'),'afterDestroy':_0x8bbd('0x4')};function emitEvent(_0x38458d){return function(_0x1dde21,_0x5d83d8,_0x501e26){_0x1dde21[_0x8bbd('0x5')]({'attributes':['id'],'raw':!![]})['then'](function(_0x5e0ed7){_0x1dde21[_0x8bbd('0x6')](_0x8bbd('0x7'),_0x5e0ed7[_0x8bbd('0x8')](function(_0x1e9112){return{'id':_0x1e9112['id']};}));return ChatMessage['findAll']({'where':{'ChatInteractionId':_0x1dde21['id'],'direction':'in','read':![]},'raw':!![]});})[_0x8bbd('0x9')](function(_0x5a6015){_0x1dde21[_0x8bbd('0x6')]('unreadMessages',_0x5a6015['length']);ChatInteractionEvents[_0x8bbd('0xa')](_0x38458d+':'+_0x1dde21['id'],_0x1dde21);ChatInteractionEvents[_0x8bbd('0xa')](_0x38458d,_0x1dde21);_0x501e26(null);})[_0x8bbd('0xb')](_0x501e26(null));};}for(var e in events){if(events[_0x8bbd('0xc')](e)){var event=events[e];ChatInteraction[_0x8bbd('0xd')](e,emitEvent(event));}}module[_0x8bbd('0xe')]=ChatInteractionEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7cfd=['chat_interactions','changed','closed','closedAt','format','utf8mb4','utf8mb4_unicode_ci','lodash','util','../../config/logger','api','moment','bluebird','path','rimraf','../../config/environment','./chatInteraction.attributes','exports','ChatInteraction'];(function(_0x37c8ef,_0x334449){var _0x5eaee9=function(_0x4b1b98){while(--_0x4b1b98){_0x37c8ef['push'](_0x37c8ef['shift']());}};_0x5eaee9(++_0x334449);}(_0x7cfd,0x183));var _0xd7cf=function(_0x30a9e1,_0xfc8996){_0x30a9e1=_0x30a9e1-0x0;var _0x2dfc12=_0x7cfd[_0x30a9e1];return _0x2dfc12;};'use strict';var _=require(_0xd7cf('0x0'));var util=require(_0xd7cf('0x1'));var logger=require(_0xd7cf('0x2'))(_0xd7cf('0x3'));var moment=require(_0xd7cf('0x4'));var BPromise=require(_0xd7cf('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xd7cf('0x6'));var rimraf=require(_0xd7cf('0x7'));var config=require(_0xd7cf('0x8'));var attributes=require(_0xd7cf('0x9'));module[_0xd7cf('0xa')]=function(_0x340148,_0x4f8433){return _0x340148['define'](_0xd7cf('0xb'),attributes,{'tableName':_0xd7cf('0xc'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeUpdate':function(_0x3764c8,_0x49ec41,_0xa6aa36){if(_0x3764c8[_0xd7cf('0xd')](_0xd7cf('0xe'))){_0x3764c8[_0xd7cf('0xf')]=moment()[_0xd7cf('0x10')]('YYYY-MM-DD\x20HH:mm:ss');}_0xa6aa36(null,_0x3764c8);}},'charset':_0xd7cf('0x11'),'collate':_0xd7cf('0x12')});};
\ No newline at end of file
+var _0x3325=['path','rimraf','exports','define','ChatInteraction','changed','closed','closedAt','format','YYYY-MM-DD\x20HH:mm:ss','utf8mb4','utf8mb4_unicode_ci','lodash','util','../../config/logger','bluebird','request-promise'];(function(_0x1e3c16,_0x372caa){var _0x47a0c9=function(_0x47f81d){while(--_0x47f81d){_0x1e3c16['push'](_0x1e3c16['shift']());}};_0x47a0c9(++_0x372caa);}(_0x3325,0xfa));var _0x5332=function(_0x65efc5,_0x5d978c){_0x65efc5=_0x65efc5-0x0;var _0x4c387a=_0x3325[_0x65efc5];return _0x4c387a;};'use strict';var _=require(_0x5332('0x0'));var util=require(_0x5332('0x1'));var logger=require(_0x5332('0x2'))('api');var moment=require('moment');var BPromise=require(_0x5332('0x3'));var rp=require(_0x5332('0x4'));var fs=require('fs');var path=require(_0x5332('0x5'));var rimraf=require(_0x5332('0x6'));var config=require('../../config/environment');var attributes=require('./chatInteraction.attributes');module[_0x5332('0x7')]=function(_0x205133,_0x5d83b0){return _0x205133[_0x5332('0x8')](_0x5332('0x9'),attributes,{'tableName':'chat_interactions','paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeUpdate':function(_0x477695,_0x45dd28,_0x12776b){if(_0x477695[_0x5332('0xa')](_0x5332('0xb'))){_0x477695[_0x5332('0xc')]=moment()[_0x5332('0xd')](_0x5332('0xe'));}_0x12776b(null,_0x477695);}},'charset':_0x5332('0xf'),'collate':_0x5332('0x10')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x87a2=['register','then','info','debug','ChatInteraction,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','ChatInteraction,\x20%s,\x20%s','message','result','catch','UpdateChatInteraction','body','options','raw','where','attributes','limit','AddTagsToChatInteraction','ChatInteraction','addTags','ids','spread','AddTags','lodash','util','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','jayson/promise','client','http','redis','defaults','socket.io-emitter','./chatInteraction.socket'];(function(_0x6f041d,_0x4029b4){var _0x4609b8=function(_0x1d9505){while(--_0x1d9505){_0x6f041d['push'](_0x6f041d['shift']());}};_0x4609b8(++_0x4029b4);}(_0x87a2,0x109));var _0x287a=function(_0x18d5d7,_0x19074b){_0x18d5d7=_0x18d5d7-0x0;var _0x30a9ea=_0x87a2[_0x18d5d7];return _0x30a9ea;};'use strict';var _=require(_0x287a('0x0'));var util=require(_0x287a('0x1'));var moment=require(_0x287a('0x2'));var BPromise=require(_0x287a('0x3'));var rs=require(_0x287a('0x4'));var fs=require('fs');var Redis=require(_0x287a('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0x287a('0x6'));var logger=require(_0x287a('0x7'))('rpc');var config=require('../../config/environment');var jayson=require(_0x287a('0x8'));var client=jayson[_0x287a('0x9')][_0x287a('0xa')]({'port':0x232a});config[_0x287a('0xb')]=_[_0x287a('0xc')](config[_0x287a('0xb')],{'host':'localhost','port':0x18eb});var socket=require(_0x287a('0xd'))(new Redis(config[_0x287a('0xb')]));require(_0x287a('0xe'))[_0x287a('0xf')](socket);function respondWithRpcPromise(_0x13853a,_0x17ee1a,_0x2563f4){return new BPromise(function(_0x187ef3,_0x43e17c){return client['request'](_0x13853a,_0x2563f4)[_0x287a('0x10')](function(_0x12eb9f){logger[_0x287a('0x11')]('ChatInteraction,\x20%s,\x20%s',_0x17ee1a,'request\x20sent');logger[_0x287a('0x12')](_0x287a('0x13'),_0x17ee1a,_0x287a('0x14'),JSON[_0x287a('0x15')](_0x12eb9f));if(_0x12eb9f[_0x287a('0x16')]){if(_0x12eb9f[_0x287a('0x16')]['code']===0x1f4){logger['error'](_0x287a('0x17'),_0x17ee1a,_0x12eb9f['error'][_0x287a('0x18')]);return _0x43e17c(_0x12eb9f['error'][_0x287a('0x18')]);}logger[_0x287a('0x16')]('ChatInteraction,\x20%s,\x20%s',_0x17ee1a,_0x12eb9f[_0x287a('0x16')][_0x287a('0x18')]);return _0x187ef3(_0x12eb9f['error'][_0x287a('0x18')]);}else{logger[_0x287a('0x11')]('ChatInteraction,\x20%s,\x20%s',_0x17ee1a,'request\x20sent');_0x187ef3(_0x12eb9f[_0x287a('0x19')][_0x287a('0x18')]);}})[_0x287a('0x1a')](function(_0x42d2a9){logger[_0x287a('0x16')](_0x287a('0x17'),_0x17ee1a,_0x42d2a9);_0x43e17c(_0x42d2a9);});});}exports[_0x287a('0x1b')]=function(_0x3aa620){var _0x4d63ab=this;return new Promise(function(_0x5db15f,_0xf1cd86){return db['ChatInteraction']['update'](_0x3aa620[_0x287a('0x1c')],{'raw':_0x3aa620[_0x287a('0x1d')]?_0x3aa620[_0x287a('0x1d')][_0x287a('0x1e')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x3aa620[_0x287a('0x1d')]?_0x3aa620['options'][_0x287a('0x1f')]||null:null,'attributes':_0x3aa620['options']?_0x3aa620[_0x287a('0x1d')][_0x287a('0x20')]||null:null,'limit':_0x3aa620[_0x287a('0x1d')]?_0x3aa620['options'][_0x287a('0x21')]||null:null})['then'](function(_0x5671df){logger['info'](_0x287a('0x1b'),_0x3aa620);logger['debug'](_0x287a('0x1b'),_0x3aa620,JSON[_0x287a('0x15')](_0x5671df));_0x5db15f(_0x5671df);})[_0x287a('0x1a')](function(_0x10e507){logger[_0x287a('0x16')](_0x287a('0x1b'),_0x10e507[_0x287a('0x18')],_0x3aa620);_0xf1cd86(_0x4d63ab['error'](0x1f4,_0x10e507[_0x287a('0x18')]));});});};exports[_0x287a('0x22')]=function(_0x5ec5a5){return new Promise(function(_0x17ebf8,_0x38fc44){return db[_0x287a('0x23')]['find']({'where':_0x5ec5a5[_0x287a('0x1d')]?_0x5ec5a5['options'][_0x287a('0x1f')]||null:null})[_0x287a('0x10')](function(_0x3563fd){if(_0x3563fd){return _0x3563fd[_0x287a('0x24')](_0x5ec5a5[_0x287a('0x1c')][_0x287a('0x25')],_['omit'](_0x5ec5a5[_0x287a('0x1c')],['ids','id'])||{});}})[_0x287a('0x26')](function(_0xe1647c){logger['info'](_0x287a('0x27'),_0x5ec5a5);logger['debug']('AddTags',_0x5ec5a5,JSON[_0x287a('0x15')](_0xe1647c));_0x17ebf8(_0xe1647c);})[_0x287a('0x1a')](function(_0x23ce53){logger['error']('AddTags',_0x23ce53[_0x287a('0x18')],_0x5ec5a5);_0x38fc44(_this['error'](0x1f4,_0x23ce53[_0x287a('0x18')]));});});};
\ No newline at end of file
+var _0x3135=['../../config/environment','http','defaults','redis','localhost','./chatInteraction.socket','register','request','info','ChatInteraction,\x20%s,\x20%s','request\x20sent','debug','ChatInteraction,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','UpdateChatInteraction','ChatInteraction','update','body','options','where','attributes','limit','then','find','ids','omit','AddTags','lodash','util','moment','bluebird','randomstring','ioredis','../../config/logger','rpc'];(function(_0x31ddef,_0x2a48ee){var _0x3c80ce=function(_0x17f1a1){while(--_0x17f1a1){_0x31ddef['push'](_0x31ddef['shift']());}};_0x3c80ce(++_0x2a48ee);}(_0x3135,0x1d8));var _0x5313=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0x3135[_0x14add3];return _0x4a174f;};'use strict';var _=require(_0x5313('0x0'));var util=require(_0x5313('0x1'));var moment=require(_0x5313('0x2'));var BPromise=require(_0x5313('0x3'));var rs=require(_0x5313('0x4'));var fs=require('fs');var Redis=require(_0x5313('0x5'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0x5313('0x6'))(_0x5313('0x7'));var config=require(_0x5313('0x8'));var jayson=require('jayson/promise');var client=jayson['client'][_0x5313('0x9')]({'port':0x232a});config['redis']=_[_0x5313('0xa')](config[_0x5313('0xb')],{'host':_0x5313('0xc'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x5313('0xb')]));require(_0x5313('0xd'))[_0x5313('0xe')](socket);function respondWithRpcPromise(_0x15800b,_0x443238,_0x5713fa){return new BPromise(function(_0x4fba73,_0x51c511){return client[_0x5313('0xf')](_0x15800b,_0x5713fa)['then'](function(_0x37a2df){logger[_0x5313('0x10')](_0x5313('0x11'),_0x443238,_0x5313('0x12'));logger[_0x5313('0x13')](_0x5313('0x14'),_0x443238,_0x5313('0x12'),JSON[_0x5313('0x15')](_0x37a2df));if(_0x37a2df[_0x5313('0x16')]){if(_0x37a2df[_0x5313('0x16')][_0x5313('0x17')]===0x1f4){logger[_0x5313('0x16')](_0x5313('0x11'),_0x443238,_0x37a2df[_0x5313('0x16')][_0x5313('0x18')]);return _0x51c511(_0x37a2df['error'][_0x5313('0x18')]);}logger[_0x5313('0x16')](_0x5313('0x11'),_0x443238,_0x37a2df['error'][_0x5313('0x18')]);return _0x4fba73(_0x37a2df['error']['message']);}else{logger[_0x5313('0x10')](_0x5313('0x11'),_0x443238,_0x5313('0x12'));_0x4fba73(_0x37a2df[_0x5313('0x19')][_0x5313('0x18')]);}})[_0x5313('0x1a')](function(_0x599d45){logger['error'](_0x5313('0x11'),_0x443238,_0x599d45);_0x51c511(_0x599d45);});});}exports[_0x5313('0x1b')]=function(_0x35ca46){var _0x363cc1=this;return new Promise(function(_0x2d9059,_0x22e4f4){return db[_0x5313('0x1c')][_0x5313('0x1d')](_0x35ca46[_0x5313('0x1e')],{'raw':_0x35ca46[_0x5313('0x1f')]?_0x35ca46[_0x5313('0x1f')]['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x35ca46[_0x5313('0x1f')]?_0x35ca46[_0x5313('0x1f')][_0x5313('0x20')]||null:null,'attributes':_0x35ca46[_0x5313('0x1f')]?_0x35ca46[_0x5313('0x1f')][_0x5313('0x21')]||null:null,'limit':_0x35ca46[_0x5313('0x1f')]?_0x35ca46['options'][_0x5313('0x22')]||null:null})[_0x5313('0x23')](function(_0x25682f){logger[_0x5313('0x10')](_0x5313('0x1b'),_0x35ca46);logger[_0x5313('0x13')](_0x5313('0x1b'),_0x35ca46,JSON[_0x5313('0x15')](_0x25682f));_0x2d9059(_0x25682f);})['catch'](function(_0x3f7d75){logger[_0x5313('0x16')](_0x5313('0x1b'),_0x3f7d75[_0x5313('0x18')],_0x35ca46);_0x22e4f4(_0x363cc1[_0x5313('0x16')](0x1f4,_0x3f7d75[_0x5313('0x18')]));});});};exports['AddTagsToChatInteraction']=function(_0x1f157b){return new Promise(function(_0x178602,_0x2e5cc0){return db[_0x5313('0x1c')][_0x5313('0x24')]({'where':_0x1f157b[_0x5313('0x1f')]?_0x1f157b[_0x5313('0x1f')][_0x5313('0x20')]||null:null})['then'](function(_0x4007ee){if(_0x4007ee){return _0x4007ee['addTags'](_0x1f157b[_0x5313('0x1e')][_0x5313('0x25')],_[_0x5313('0x26')](_0x1f157b[_0x5313('0x1e')],[_0x5313('0x25'),'id'])||{});}})['spread'](function(_0x582003){logger[_0x5313('0x10')](_0x5313('0x27'),_0x1f157b);logger[_0x5313('0x13')](_0x5313('0x27'),_0x1f157b,JSON['stringify'](_0x582003));_0x178602(_0x582003);})[_0x5313('0x1a')](function(_0x5bd60b){logger[_0x5313('0x16')](_0x5313('0x27'),_0x5bd60b['message'],_0x1f157b);_0x2e5cc0(_this['error'](0x1f4,_0x5bd60b[_0x5313('0x18')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa7eb=['./chatInteraction.events','save','remove','removeListener','length','chatInteraction:'];(function(_0x45b21d,_0x138eda){var _0x1d79c9=function(_0x19680c){while(--_0x19680c){_0x45b21d['push'](_0x45b21d['shift']());}};_0x1d79c9(++_0x138eda);}(_0xa7eb,0x1b6));var _0xba7e=function(_0x4631e8,_0x5afa53){_0x4631e8=_0x4631e8-0x0;var _0x5bce30=_0xa7eb[_0x4631e8];return _0x5bce30;};'use strict';var ChatInteractionEvents=require(_0xba7e('0x0'));var events=[_0xba7e('0x1'),_0xba7e('0x2'),'update'];function createListener(_0xfc094d,_0x260a12){return function(_0x3957c5){_0x260a12['emit'](_0xfc094d,_0x3957c5);};}function removeListener(_0x24cf5d,_0x338436){return function(){ChatInteractionEvents[_0xba7e('0x3')](_0x24cf5d,_0x338436);};}exports['register']=function(_0x1c7ed0){for(var _0x58f192=0x0,_0x244db9=events[_0xba7e('0x4')];_0x58f192<_0x244db9;_0x58f192++){var _0x1072fa=events[_0x58f192];var _0x4d9ce3=createListener(_0xba7e('0x5')+_0x1072fa,_0x1c7ed0);ChatInteractionEvents['on'](_0x1072fa,_0x4d9ce3);}};
\ No newline at end of file
+var _0xb430=['remove','update','emit','length','chatInteraction:','save'];(function(_0x471692,_0x3f836){var _0x4b8657=function(_0x5143f2){while(--_0x5143f2){_0x471692['push'](_0x471692['shift']());}};_0x4b8657(++_0x3f836);}(_0xb430,0xf5));var _0x0b43=function(_0x5b644e,_0x2e5e07){_0x5b644e=_0x5b644e-0x0;var _0x49c6bf=_0xb430[_0x5b644e];return _0x49c6bf;};'use strict';var ChatInteractionEvents=require('./chatInteraction.events');var events=[_0x0b43('0x0'),_0x0b43('0x1'),_0x0b43('0x2')];function createListener(_0xc001bd,_0x2ff7c6){return function(_0x238ab2){_0x2ff7c6[_0x0b43('0x3')](_0xc001bd,_0x238ab2);};}function removeListener(_0x4d1eaf,_0x139fe3){return function(){ChatInteractionEvents['removeListener'](_0x4d1eaf,_0x139fe3);};}exports['register']=function(_0x57242e){for(var _0x52d49b=0x0,_0x54fc02=events[_0x0b43('0x4')];_0x52d49b<_0x54fc02;_0x52d49b++){var _0x2b5203=events[_0x52d49b];var _0x277888=createListener(_0x0b43('0x5')+_0x2b5203,_0x57242e);ChatInteractionEvents['on'](_0x2b5203,_0x277888);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa784=['./chatInteraction.controller','get','isAuthenticated','index','describe','/:id','show','/:id/attachment_download','attachmentDownload','/:id/messages','/:id/my_messages','isChatInteractionAuthorized','getMyMessages','post','create','/:id/vidaoo','createVidaooSession','diskStorage','join','root','server/files/attachments/','format','now','originalname','replace','/:id/attachment_upload','single','attachmentUpload','addMessage','tracked','chatinteraction:addtags','addTags','put','chat','chatinteraction:update','/:id/custom_update','customUpdate','/:id/abandon','abandon','delete','chatinteraction:destroy','destroy','/:id/tags','removeTags','exports','multer','util','path','Router','fs-extra','../../components/interaction/service','../../config/environment'];(function(_0x1b7ea6,_0x195a62){var _0x4fcea6=function(_0x29ace1){while(--_0x29ace1){_0x1b7ea6['push'](_0x1b7ea6['shift']());}};_0x4fcea6(++_0x195a62);}(_0xa784,0x131));var _0x4a78=function(_0x52e428,_0x5c88d7){_0x52e428=_0x52e428-0x0;var _0x1ccf6c=_0xa784[_0x52e428];return _0x1ccf6c;};'use strict';var multer=require(_0x4a78('0x0'));var util=require(_0x4a78('0x1'));var path=require(_0x4a78('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x4a78('0x3')]();var fs_extra=require(_0x4a78('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0x4a78('0x5'));var config=require(_0x4a78('0x6'));var controller=require(_0x4a78('0x7'));router[_0x4a78('0x8')]('/',auth[_0x4a78('0x9')](),controller[_0x4a78('0xa')]);router['get']('/describe',auth['isAuthenticated'](),controller[_0x4a78('0xb')]);router[_0x4a78('0x8')](_0x4a78('0xc'),auth['isChatInteractionAuthorized'](),controller[_0x4a78('0xd')]);router[_0x4a78('0x8')](_0x4a78('0xe'),auth['isChatInteractionAuthorized'](),controller[_0x4a78('0xf')]);router[_0x4a78('0x8')](_0x4a78('0x10'),auth[_0x4a78('0x9')](),controller['getMessages']);router[_0x4a78('0x8')](_0x4a78('0x11'),auth[_0x4a78('0x12')](),controller[_0x4a78('0x13')]);router[_0x4a78('0x8')]('/:id/download',auth[_0x4a78('0x9')](),controller['download']);router[_0x4a78('0x14')]('/',auth[_0x4a78('0x9')](),controller[_0x4a78('0x15')]);router[_0x4a78('0x14')](_0x4a78('0x16'),auth[_0x4a78('0x9')](),controller[_0x4a78('0x17')]);var upload=multer({'storage':multer[_0x4a78('0x18')]({'destination':function(_0x354eea,_0x155a46,_0x341e96){_0x341e96(null,path[_0x4a78('0x19')](config[_0x4a78('0x1a')],_0x4a78('0x1b')));},'filename':function(_0x1fc9af,_0x3fd72e,_0x28a698){_0x28a698(null,util[_0x4a78('0x1c')]('%s-%s',Date[_0x4a78('0x1d')](),_0x3fd72e[_0x4a78('0x1e')][_0x4a78('0x1f')](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-')));}})});router['post'](_0x4a78('0x20'),upload[_0x4a78('0x21')]('file'),controller[_0x4a78('0x22')]);router['post'](_0x4a78('0x10'),auth[_0x4a78('0x12')](),controller[_0x4a78('0x23')]);router[_0x4a78('0x14')]('/:id/tags',auth[_0x4a78('0x9')](),interaction[_0x4a78('0x24')]('chat',_0x4a78('0x25')),controller[_0x4a78('0x26')]);router[_0x4a78('0x27')](_0x4a78('0xc'),auth[_0x4a78('0x9')](),interaction['tracked'](_0x4a78('0x28'),_0x4a78('0x29')),controller['update']);router['put'](_0x4a78('0x2a'),controller[_0x4a78('0x2b')]);router[_0x4a78('0x27')](_0x4a78('0x2c'),auth[_0x4a78('0x12')](),controller[_0x4a78('0x2d')]);router[_0x4a78('0x27')]('/:id/close',controller['close']);router[_0x4a78('0x2e')](_0x4a78('0xc'),auth[_0x4a78('0x9')](),interaction[_0x4a78('0x24')]('chat',_0x4a78('0x2f')),controller[_0x4a78('0x30')]);router[_0x4a78('0x2e')](_0x4a78('0x31'),auth[_0x4a78('0x9')](),controller[_0x4a78('0x32')]);module[_0x4a78('0x33')]=router;
\ No newline at end of file
+var _0x569b=['/:id/close','delete','destroy','removeTags','util','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./chatInteraction.controller','isAuthenticated','get','/describe','describe','/:id','isChatInteractionAuthorized','show','/:id/attachment_download','attachmentDownload','/:id/messages','/:id/my_messages','getMyMessages','/:id/download','download','create','post','/:id/vidaoo','createVidaooSession','diskStorage','root','server/files/attachments/','format','%s-%s','now','/:id/attachment_upload','single','attachmentUpload','/:id/tags','chat','addTags','chatinteraction:update','put','/:id/custom_update','customUpdate','/:id/abandon'];(function(_0x52096b,_0x20bab4){var _0x2b1cc7=function(_0x3f7021){while(--_0x3f7021){_0x52096b['push'](_0x52096b['shift']());}};_0x2b1cc7(++_0x20bab4);}(_0x569b,0x154));var _0xb569=function(_0x39096d,_0x51f8a0){_0x39096d=_0x39096d-0x0;var _0x13da4f=_0x569b[_0x39096d];return _0x13da4f;};'use strict';var multer=require('multer');var util=require(_0xb569('0x0'));var path=require(_0xb569('0x1'));var timeout=require(_0xb569('0x2'));var express=require('express');var router=express[_0xb569('0x3')]();var fs_extra=require(_0xb569('0x4'));var auth=require(_0xb569('0x5'));var interaction=require(_0xb569('0x6'));var config=require(_0xb569('0x7'));var controller=require(_0xb569('0x8'));router['get']('/',auth[_0xb569('0x9')](),controller['index']);router[_0xb569('0xa')](_0xb569('0xb'),auth[_0xb569('0x9')](),controller[_0xb569('0xc')]);router[_0xb569('0xa')](_0xb569('0xd'),auth[_0xb569('0xe')](),controller[_0xb569('0xf')]);router[_0xb569('0xa')](_0xb569('0x10'),auth['isChatInteractionAuthorized'](),controller[_0xb569('0x11')]);router[_0xb569('0xa')](_0xb569('0x12'),auth[_0xb569('0x9')](),controller['getMessages']);router['get'](_0xb569('0x13'),auth['isChatInteractionAuthorized'](),controller[_0xb569('0x14')]);router[_0xb569('0xa')](_0xb569('0x15'),auth['isAuthenticated'](),controller[_0xb569('0x16')]);router['post']('/',auth[_0xb569('0x9')](),controller[_0xb569('0x17')]);router[_0xb569('0x18')](_0xb569('0x19'),auth[_0xb569('0x9')](),controller[_0xb569('0x1a')]);var upload=multer({'storage':multer[_0xb569('0x1b')]({'destination':function(_0x5a35ce,_0x8c83ae,_0x3ac277){_0x3ac277(null,path['join'](config[_0xb569('0x1c')],_0xb569('0x1d')));},'filename':function(_0x2b9c1f,_0xdf4b70,_0x1efdd6){_0x1efdd6(null,util[_0xb569('0x1e')](_0xb569('0x1f'),Date[_0xb569('0x20')](),_0xdf4b70['originalname']['replace'](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-')));}})});router[_0xb569('0x18')](_0xb569('0x21'),upload[_0xb569('0x22')]('file'),controller[_0xb569('0x23')]);router[_0xb569('0x18')](_0xb569('0x12'),auth['isChatInteractionAuthorized'](),controller['addMessage']);router['post'](_0xb569('0x24'),auth[_0xb569('0x9')](),interaction['tracked'](_0xb569('0x25'),'chatinteraction:addtags'),controller[_0xb569('0x26')]);router['put'](_0xb569('0xd'),auth[_0xb569('0x9')](),interaction['tracked'](_0xb569('0x25'),_0xb569('0x27')),controller['update']);router[_0xb569('0x28')](_0xb569('0x29'),controller[_0xb569('0x2a')]);router[_0xb569('0x28')](_0xb569('0x2b'),auth['isChatInteractionAuthorized'](),controller['abandon']);router[_0xb569('0x28')](_0xb569('0x2c'),controller['close']);router[_0xb569('0x2d')](_0xb569('0xd'),auth[_0xb569('0x9')](),interaction['tracked']('chat','chatinteraction:destroy'),controller[_0xb569('0x2e')]);router[_0xb569('0x2d')](_0xb569('0x24'),auth[_0xb569('0x9')](),controller[_0xb569('0x2f')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5033=['TEXT','medium','INTEGER','sequelize','exports'];(function(_0x14c2b2,_0x15e4da){var _0x1132da=function(_0x6ed58a){while(--_0x6ed58a){_0x14c2b2['push'](_0x14c2b2['shift']());}};_0x1132da(++_0x15e4da);}(_0x5033,0x102));var _0x3503=function(_0x28a338,_0x8ea5a0){_0x28a338=_0x28a338-0x0;var _0x344632=_0x5033[_0x28a338];return _0x344632;};'use strict';var Sequelize=require(_0x3503('0x0'));module[_0x3503('0x1')]={'body':{'type':Sequelize[_0x3503('0x2')](_0x3503('0x3')),'allowNull':![]},'read':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'ChatInternalMessageId':{'type':Sequelize[_0x3503('0x4')]}};
\ No newline at end of file
+var _0x8a4e=['sequelize','exports','medium','BOOLEAN','INTEGER'];(function(_0x5b644e,_0x2e5e07){var _0x49c6bf=function(_0x3032d9){while(--_0x3032d9){_0x5b644e['push'](_0x5b644e['shift']());}};_0x49c6bf(++_0x2e5e07);}(_0x8a4e,0x1c7));var _0xe8a4=function(_0x46a38b,_0x16ffb5){_0x46a38b=_0x46a38b-0x0;var _0x346e75=_0x8a4e[_0x46a38b];return _0x346e75;};'use strict';var Sequelize=require(_0xe8a4('0x0'));module[_0xe8a4('0x1')]={'body':{'type':Sequelize['TEXT'](_0xe8a4('0x2')),'allowNull':![]},'read':{'type':Sequelize[_0xe8a4('0x3')],'defaultValue':![]},'ChatInternalMessageId':{'type':Sequelize[_0xe8a4('0x4')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe1a2=['get','lastMessageAt','createdAt','YYYY-MM-DD\x20HH:mm:ss','lastMessage','getUsers','User','agent','admin','fullname','role','userpic','internal','online','lastLoginAt','showWebBar','-online','VoiceQueue','VoiceQueues','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','UserProfileResource','resourceId','push','FromId','read','eml-format','rimraf','zip-dir','fast-json-patch','bluebird','mustache','util','to-csv','fs-extra','lodash','crypto','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./chatInternalMessage.socket','register','sendStatus','status','json','offset','limit','count','apply','save','update','then','destroy','error','stack','name','send','index','fieldName','key','model','map','query','filters','intersection','fields','attributes','length','hasOwnProperty','order','sort','where','pick','merge','type','VIRTUAL','filter','options','includeAll','include','findAll','rows','catch','show','keys','ChatInternalMessage','rawAttributes','body','find','params','describe'];(function(_0x239a9,_0x4e772b){var _0x270da5=function(_0x23cff4){while(--_0x23cff4){_0x239a9['push'](_0x239a9['shift']());}};_0x270da5(++_0x4e772b);}(_0xe1a2,0x154));var _0x2e1a=function(_0xdd82b4,_0x5cd8b8){_0xdd82b4=_0xdd82b4-0x0;var _0x549bb2=_0xe1a2[_0xdd82b4];return _0x549bb2;};'use strict';var emlformat=require(_0x2e1a('0x0'));var rimraf=require(_0x2e1a('0x1'));var zipdir=require(_0x2e1a('0x2'));var jsonpatch=require(_0x2e1a('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x2e1a('0x4'));var Mustache=require(_0x2e1a('0x5'));var util=require(_0x2e1a('0x6'));var path=require('path');var sox=require('sox');var csv=require(_0x2e1a('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x2e1a('0x8'));var _=require(_0x2e1a('0x9'));var squel=require('squel');var crypto=require(_0x2e1a('0xa'));var jsforce=require('jsforce');var deskjs=require(_0x2e1a('0xb'));var toCsv=require(_0x2e1a('0x7'));var querystring=require(_0x2e1a('0xc'));var Papa=require(_0x2e1a('0xd'));var Redis=require(_0x2e1a('0xe'));var authService=require('../../components/auth/service');var qs=require(_0x2e1a('0xf'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x2e1a('0x10'))(_0x2e1a('0x11'));var utils=require('../../config/utils');var config=require(_0x2e1a('0x12'));var licenseUtil=require(_0x2e1a('0x13'));var db=require(_0x2e1a('0x14'))['db'];config[_0x2e1a('0x15')]=_[_0x2e1a('0x16')](config['redis'],{'host':_0x2e1a('0x17'),'port':0x18eb});var socket=require(_0x2e1a('0x18'))(new Redis(config[_0x2e1a('0x15')]));require(_0x2e1a('0x19'))[_0x2e1a('0x1a')](socket);function respondWithStatusCode(_0x1e2c22,_0x28e7c3){_0x28e7c3=_0x28e7c3||0xcc;return function(_0x28b510){if(_0x28b510){return _0x1e2c22[_0x2e1a('0x1b')](_0x28e7c3);}return _0x1e2c22[_0x2e1a('0x1c')](_0x28e7c3)['end']();};}function respondWithResult(_0x22b928,_0x4742d0){_0x4742d0=_0x4742d0||0xc8;return function(_0x322381){if(_0x322381){return _0x22b928[_0x2e1a('0x1c')](_0x4742d0)[_0x2e1a('0x1d')](_0x322381);}};}function respondWithFilteredResult(_0x29b169,_0x339047){return function(_0x4b497f){if(_0x4b497f){var _0x4dc236=typeof _0x339047[_0x2e1a('0x1e')]==='undefined'&&typeof _0x339047[_0x2e1a('0x1f')]==='undefined';var _0x596006=_0x4b497f[_0x2e1a('0x20')];var _0x261ecd=_0x4dc236?0x0:_0x339047['offset'];var _0x31509d=_0x4dc236?_0x4b497f[_0x2e1a('0x20')]:_0x339047['offset']+_0x339047[_0x2e1a('0x1f')];var _0x1f3f9b;if(_0x31509d>=_0x596006){_0x31509d=_0x596006;_0x1f3f9b=0xc8;}else{_0x1f3f9b=0xce;}_0x29b169['status'](_0x1f3f9b);return _0x29b169['set']('Content-Range',_0x261ecd+'-'+_0x31509d+'/'+_0x596006)['json'](_0x4b497f);}return null;};}function patchUpdates(_0x53aa26){return function(_0x28890b){try{jsonpatch[_0x2e1a('0x21')](_0x28890b,_0x53aa26,!![]);}catch(_0x39d19b){return BPromise['reject'](_0x39d19b);}return _0x28890b[_0x2e1a('0x22')]();};}function saveUpdates(_0x17f746,_0x3f24d6){return function(_0x1fa61c){if(_0x1fa61c){return _0x1fa61c[_0x2e1a('0x23')](_0x17f746)[_0x2e1a('0x24')](function(_0x28eaf0){return _0x28eaf0;});}return null;};}function removeEntity(_0x31a73d,_0x4e16ca){return function(_0x373217){if(_0x373217){return _0x373217[_0x2e1a('0x25')]()['then'](function(){_0x31a73d[_0x2e1a('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x3833bf,_0x83746){return function(_0x140f96){if(!_0x140f96){_0x3833bf[_0x2e1a('0x1b')](0x194);}return _0x140f96;};}function handleError(_0xab8850,_0x5a1b10){_0x5a1b10=_0x5a1b10||0x1f4;return function(_0x3adbb2){logger[_0x2e1a('0x26')](_0x3adbb2[_0x2e1a('0x27')]);if(_0x3adbb2['name']){delete _0x3adbb2[_0x2e1a('0x28')];}_0xab8850[_0x2e1a('0x1c')](_0x5a1b10)[_0x2e1a('0x29')](_0x3adbb2);};}exports[_0x2e1a('0x2a')]=function(_0x4292fb,_0x1bfbdb){var _0x273a55={},_0x446b75={},_0x5b8718={'count':0x0,'rows':[]};var _0x4ae993=_['map'](db['ChatInternalMessage']['rawAttributes'],function(_0x4643f3){return{'name':_0x4643f3[_0x2e1a('0x2b')],'type':_0x4643f3['type'][_0x2e1a('0x2c')]};});_0x446b75[_0x2e1a('0x2d')]=_[_0x2e1a('0x2e')](_0x4ae993,_0x2e1a('0x28'));_0x446b75[_0x2e1a('0x2f')]=_['keys'](_0x4292fb[_0x2e1a('0x2f')]);_0x446b75[_0x2e1a('0x30')]=_[_0x2e1a('0x31')](_0x446b75[_0x2e1a('0x2d')],_0x446b75[_0x2e1a('0x2f')]);_0x273a55['attributes']=_['intersection'](_0x446b75[_0x2e1a('0x2d')],qs[_0x2e1a('0x32')](_0x4292fb[_0x2e1a('0x2f')][_0x2e1a('0x32')]));_0x273a55['attributes']=_0x273a55[_0x2e1a('0x33')][_0x2e1a('0x34')]?_0x273a55['attributes']:_0x446b75[_0x2e1a('0x2d')];if(!_0x4292fb['query'][_0x2e1a('0x35')]('nolimit')){_0x273a55[_0x2e1a('0x1f')]=qs[_0x2e1a('0x1f')](_0x4292fb[_0x2e1a('0x2f')][_0x2e1a('0x1f')]);_0x273a55[_0x2e1a('0x1e')]=qs[_0x2e1a('0x1e')](_0x4292fb['query'][_0x2e1a('0x1e')]);}_0x273a55[_0x2e1a('0x36')]=qs[_0x2e1a('0x37')](_0x4292fb['query'][_0x2e1a('0x37')]);_0x273a55[_0x2e1a('0x38')]=qs[_0x2e1a('0x30')](_[_0x2e1a('0x39')](_0x4292fb[_0x2e1a('0x2f')],_0x446b75['filters']),_0x4ae993);if(_0x4292fb['query']['filter']){_0x273a55[_0x2e1a('0x38')]=_[_0x2e1a('0x3a')](_0x273a55[_0x2e1a('0x38')],{'$or':_[_0x2e1a('0x2e')](_0x4ae993,function(_0x2dd0dc){if(_0x2dd0dc[_0x2e1a('0x3b')]!==_0x2e1a('0x3c')){var _0x30b3a5={};_0x30b3a5[_0x2dd0dc['name']]={'$like':'%'+_0x4292fb[_0x2e1a('0x2f')][_0x2e1a('0x3d')]+'%'};return _0x30b3a5;}})});}_0x273a55=_['merge']({},_0x273a55,_0x4292fb[_0x2e1a('0x3e')]);var _0x33dade={'where':_0x273a55[_0x2e1a('0x38')]};return db['ChatInternalMessage'][_0x2e1a('0x20')](_0x33dade)[_0x2e1a('0x24')](function(_0x581ff5){_0x5b8718[_0x2e1a('0x20')]=_0x581ff5;if(_0x4292fb[_0x2e1a('0x2f')][_0x2e1a('0x3f')]){_0x273a55[_0x2e1a('0x40')]=[{'all':!![]}];}return db['ChatInternalMessage'][_0x2e1a('0x41')](_0x273a55);})[_0x2e1a('0x24')](function(_0x2750cd){_0x5b8718[_0x2e1a('0x42')]=_0x2750cd;return _0x5b8718;})[_0x2e1a('0x24')](respondWithFilteredResult(_0x1bfbdb,_0x273a55))[_0x2e1a('0x43')](handleError(_0x1bfbdb,null));};exports[_0x2e1a('0x44')]=function(_0x5809ec,_0x5d375f){var _0x1907e5={'raw':!![],'where':{'id':_0x5809ec['params']['id']}},_0x5232fa={};_0x5232fa['model']=_[_0x2e1a('0x45')](db[_0x2e1a('0x46')][_0x2e1a('0x47')]);_0x5232fa[_0x2e1a('0x2f')]=_[_0x2e1a('0x45')](_0x5809ec[_0x2e1a('0x2f')]);_0x5232fa['filters']=_[_0x2e1a('0x31')](_0x5232fa[_0x2e1a('0x2d')],_0x5232fa[_0x2e1a('0x2f')]);_0x1907e5[_0x2e1a('0x33')]=_[_0x2e1a('0x31')](_0x5232fa[_0x2e1a('0x2d')],qs['fields'](_0x5809ec['query'][_0x2e1a('0x32')]));_0x1907e5['attributes']=_0x1907e5['attributes'][_0x2e1a('0x34')]?_0x1907e5[_0x2e1a('0x33')]:_0x5232fa[_0x2e1a('0x2d')];if(_0x5809ec[_0x2e1a('0x2f')][_0x2e1a('0x3f')]){_0x1907e5['include']=[{'all':!![]}];}_0x1907e5=_[_0x2e1a('0x3a')]({},_0x1907e5,_0x5809ec[_0x2e1a('0x3e')]);return db[_0x2e1a('0x46')]['find'](_0x1907e5)['then'](handleEntityNotFound(_0x5d375f,null))[_0x2e1a('0x24')](respondWithResult(_0x5d375f,null))[_0x2e1a('0x43')](handleError(_0x5d375f,null));};exports['create']=function(_0x57583b,_0x100ce7){return db[_0x2e1a('0x46')]['create'](_0x57583b['body'],{})[_0x2e1a('0x24')](respondWithResult(_0x100ce7,0xc9))[_0x2e1a('0x43')](handleError(_0x100ce7,null));};exports[_0x2e1a('0x23')]=function(_0x2f12c3,_0x58987c){if(_0x2f12c3[_0x2e1a('0x48')]['id']){delete _0x2f12c3[_0x2e1a('0x48')]['id'];}return db[_0x2e1a('0x46')][_0x2e1a('0x49')]({'where':{'id':_0x2f12c3[_0x2e1a('0x4a')]['id']}})[_0x2e1a('0x24')](handleEntityNotFound(_0x58987c,null))['then'](saveUpdates(_0x2f12c3[_0x2e1a('0x48')],null))[_0x2e1a('0x24')](respondWithResult(_0x58987c,null))['catch'](handleError(_0x58987c,null));};exports[_0x2e1a('0x25')]=function(_0x28c6a6,_0x559aea){return db[_0x2e1a('0x46')]['find']({'where':{'id':_0x28c6a6[_0x2e1a('0x4a')]['id']}})[_0x2e1a('0x24')](handleEntityNotFound(_0x559aea,null))['then'](removeEntity(_0x559aea,null))['catch'](handleError(_0x559aea,null));};exports[_0x2e1a('0x4b')]=function(_0x6c0257,_0x160664){return db[_0x2e1a('0x46')]['describe']()[_0x2e1a('0x24')](respondWithResult(_0x160664,null))['catch'](handleError(_0x160664,null));};function wrapUser(_0x106c71){return function(_0x1f4065){var _0x4cf726=_0x106c71[_0x2e1a('0x4c')]({'plain':!![]});_0x4cf726['messages']=[];if(_0x1f4065){_0x4cf726[_0x2e1a('0x4d')]=_0x1f4065[_0x2e1a('0x4e')];_0x4cf726['lastMessage']=_0x1f4065;}else{_0x4cf726[_0x2e1a('0x4d')]=moment(0x0)['format'](_0x2e1a('0x4f'));_0x4cf726[_0x2e1a('0x50')]={};}return _0x4cf726;};}exports[_0x2e1a('0x51')]=function(_0x5adb56,_0x10b649,_0x3c1036){var _0x4f198e=[];return db[_0x2e1a('0x52')][_0x2e1a('0x41')]({'where':{'role':[_0x2e1a('0x53'),_0x2e1a('0x54'),'user']},'attributes':['id',_0x2e1a('0x55'),_0x2e1a('0x28'),_0x2e1a('0x56'),_0x2e1a('0x57'),_0x2e1a('0x58'),_0x2e1a('0x59'),_0x2e1a('0x5a'),'allowmessenger',_0x2e1a('0x5b')],'order':qs[_0x2e1a('0x37')](_0x2e1a('0x5c')),'include':[{'model':db[_0x2e1a('0x5d')],'as':_0x2e1a('0x5e'),'attributes':['id',_0x2e1a('0x28'),_0x2e1a('0x3b')],'through':{'attributes':[]}}]})[_0x2e1a('0x24')](function(_0x49c62c){if(_0x49c62c){var _0x12cfa2=_0x5adb56[_0x2e1a('0x5f')]['get']({'plain':!![]});if(!_0x12cfa2)throw new Error(_0x2e1a('0x60'));if(_0x12cfa2[_0x2e1a('0x56')]===_0x2e1a('0x5f')){return db[_0x2e1a('0x61')]['find']({'where':{'name':'Agents','userProfileId':_0x12cfa2[_0x2e1a('0x62')]},'raw':!![]})[_0x2e1a('0x24')](function(_0xd2f560){if(_0xd2f560){if(_0xd2f560['autoAssociation']===0x0){return db[_0x2e1a('0x63')][_0x2e1a('0x41')]({'where':{'sectionId':_0xd2f560['id']},'raw':!![]})['then'](function(_0x22d5bb){var _0xb8ebde=[];if(_['isEmpty'](_0x22d5bb)){_0xb8ebde=_[_0x2e1a('0x3d')](_0x49c62c,function(_0x30169d){if(_0x30169d[_0x2e1a('0x56')]!==_0x2e1a('0x53')){return _0x30169d;}});return _0xb8ebde;}else{for(var _0x401e85=0x0;_0x401e85<_0x49c62c[_0x2e1a('0x34')];_0x401e85++){var _0xabb0e6=_0x49c62c[_0x401e85];if(_0xabb0e6['role']===_0x2e1a('0x53')){var _0x13e1ea=_[_0x2e1a('0x49')](_0x22d5bb,function(_0x22eaf2){return _0x22eaf2[_0x2e1a('0x64')]===_0xabb0e6['id'];});if(_0x13e1ea)_0xb8ebde[_0x2e1a('0x65')](_0xabb0e6);}else{_0xb8ebde['push'](_0xabb0e6);}}return _0xb8ebde;}});}else{return _0x49c62c;}}else{var _0x38fd23=_[_0x2e1a('0x3d')](_0x49c62c,function(_0x5ae2a7){if(_0x5ae2a7[_0x2e1a('0x56')]!==_0x2e1a('0x53')){return _0x5ae2a7;}});return _0x38fd23;}});}else{return _0x49c62c;}}})['then'](function(_0x1af302){var _0x4c9791=[];if(_0x1af302){_0x4f198e=_0x1af302;for(var _0x1de1ae=0x0;_0x1de1ae<_0x1af302[_0x2e1a('0x34')];_0x1de1ae+=0x1){_0x4f198e[_0x1de1ae]['messages']=[];_0x4c9791[_0x2e1a('0x65')](db[_0x2e1a('0x46')]['find']({'where':{'FromId':[_0x5adb56[_0x2e1a('0x5f')]['id'],_0x1af302[_0x1de1ae]['id']],'ToId':[_0x5adb56[_0x2e1a('0x5f')]['id'],_0x1af302[_0x1de1ae]['id']],'ChatGroupId':null},'attributes':['id',_0x2e1a('0x4e'),_0x2e1a('0x66'),'ToId',_0x2e1a('0x67'),'body'],'order':qs[_0x2e1a('0x37')]('-createdAt'),'limit':0x1,'offset':0x0,'raw':!![]})[_0x2e1a('0x24')](wrapUser(_0x1af302[_0x1de1ae])));}return BPromise['all'](_0x4c9791);}return[];})[_0x2e1a('0x24')](function(_0x418ba0){return{'rows':_0x418ba0,'count':_0x418ba0[_0x2e1a('0x34')]};})[_0x2e1a('0x24')](respondWithResult(_0x10b649,null))[_0x2e1a('0x43')](handleError(_0x10b649,null));};
\ No newline at end of file
+var _0xf320=['name','send','map','ChatInternalMessage','rawAttributes','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','type','VIRTUAL','filter','options','includeAll','include','findAll','rows','catch','find','create','body','destroy','params','describe','get','messages','lastMessageAt','format','YYYY-MM-DD\x20HH:mm:ss','lastMessage','User','agent','admin','fullname','role','internal','lastLoginAt','showWebBar','VoiceQueues','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','Agents','userProfileId','autoAssociation','UserProfileResource','isEmpty','createdAt','FromId','ToId','read','-createdAt','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','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','defaults','localhost','redis','./chatInternalMessage.socket','sendStatus','status','json','offset','undefined','count','limit','Content-Range','apply','reject','update','then','end','stack'];(function(_0x371424,_0x308ca4){var _0x33ea74=function(_0x49da3e){while(--_0x49da3e){_0x371424['push'](_0x371424['shift']());}};_0x33ea74(++_0x308ca4);}(_0xf320,0x1f3));var _0x0f32=function(_0x5bcb11,_0x5b5d84){_0x5bcb11=_0x5bcb11-0x0;var _0x3daa19=_0xf320[_0x5bcb11];return _0x3daa19;};'use strict';var emlformat=require(_0x0f32('0x0'));var rimraf=require(_0x0f32('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x0f32('0x2'));var rp=require(_0x0f32('0x3'));var moment=require(_0x0f32('0x4'));var BPromise=require(_0x0f32('0x5'));var Mustache=require(_0x0f32('0x6'));var util=require(_0x0f32('0x7'));var path=require(_0x0f32('0x8'));var sox=require(_0x0f32('0x9'));var csv=require(_0x0f32('0xa'));var ejs=require(_0x0f32('0xb'));var fs=require('fs');var fs_extra=require(_0x0f32('0xc'));var _=require(_0x0f32('0xd'));var squel=require(_0x0f32('0xe'));var crypto=require('crypto');var jsforce=require(_0x0f32('0xf'));var deskjs=require(_0x0f32('0x10'));var toCsv=require(_0x0f32('0xa'));var querystring=require(_0x0f32('0x11'));var Papa=require(_0x0f32('0x12'));var Redis=require('ioredis');var authService=require(_0x0f32('0x13'));var qs=require(_0x0f32('0x14'));var as=require(_0x0f32('0x15'));var hardwareService=require(_0x0f32('0x16'));var logger=require(_0x0f32('0x17'))(_0x0f32('0x18'));var utils=require(_0x0f32('0x19'));var config=require(_0x0f32('0x1a'));var licenseUtil=require(_0x0f32('0x1b'));var db=require('../../mysqldb')['db'];config['redis']=_[_0x0f32('0x1c')](config['redis'],{'host':_0x0f32('0x1d'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x0f32('0x1e')]));require(_0x0f32('0x1f'))['register'](socket);function respondWithStatusCode(_0xfbb297,_0x206da2){_0x206da2=_0x206da2||0xcc;return function(_0x175a1c){if(_0x175a1c){return _0xfbb297[_0x0f32('0x20')](_0x206da2);}return _0xfbb297[_0x0f32('0x21')](_0x206da2)['end']();};}function respondWithResult(_0x9db57,_0x446286){_0x446286=_0x446286||0xc8;return function(_0x24c3c2){if(_0x24c3c2){return _0x9db57[_0x0f32('0x21')](_0x446286)[_0x0f32('0x22')](_0x24c3c2);}};}function respondWithFilteredResult(_0x7d6f2f,_0x268acc){return function(_0x416786){if(_0x416786){var _0x1d34e4=typeof _0x268acc[_0x0f32('0x23')]===_0x0f32('0x24')&&typeof _0x268acc['limit']===_0x0f32('0x24');var _0x329616=_0x416786[_0x0f32('0x25')];var _0x97df0d=_0x1d34e4?0x0:_0x268acc['offset'];var _0x2d7f30=_0x1d34e4?_0x416786[_0x0f32('0x25')]:_0x268acc[_0x0f32('0x23')]+_0x268acc[_0x0f32('0x26')];var _0x10df1f;if(_0x2d7f30>=_0x329616){_0x2d7f30=_0x329616;_0x10df1f=0xc8;}else{_0x10df1f=0xce;}_0x7d6f2f[_0x0f32('0x21')](_0x10df1f);return _0x7d6f2f['set'](_0x0f32('0x27'),_0x97df0d+'-'+_0x2d7f30+'/'+_0x329616)[_0x0f32('0x22')](_0x416786);}return null;};}function patchUpdates(_0x8e8678){return function(_0x3a253c){try{jsonpatch[_0x0f32('0x28')](_0x3a253c,_0x8e8678,!![]);}catch(_0x5d3219){return BPromise[_0x0f32('0x29')](_0x5d3219);}return _0x3a253c['save']();};}function saveUpdates(_0x22c4bc,_0x36f31f){return function(_0x19fd1c){if(_0x19fd1c){return _0x19fd1c[_0x0f32('0x2a')](_0x22c4bc)[_0x0f32('0x2b')](function(_0x210e95){return _0x210e95;});}return null;};}function removeEntity(_0xa1f90a,_0x2845e0){return function(_0xc7fbed){if(_0xc7fbed){return _0xc7fbed['destroy']()['then'](function(){_0xa1f90a[_0x0f32('0x21')](0xcc)[_0x0f32('0x2c')]();});}};}function handleEntityNotFound(_0x25cf4f,_0x3fbc8c){return function(_0x15c5c6){if(!_0x15c5c6){_0x25cf4f[_0x0f32('0x20')](0x194);}return _0x15c5c6;};}function handleError(_0x26ae03,_0x22e9cf){_0x22e9cf=_0x22e9cf||0x1f4;return function(_0x52a50d){logger['error'](_0x52a50d[_0x0f32('0x2d')]);if(_0x52a50d[_0x0f32('0x2e')]){delete _0x52a50d[_0x0f32('0x2e')];}_0x26ae03[_0x0f32('0x21')](_0x22e9cf)[_0x0f32('0x2f')](_0x52a50d);};}exports['index']=function(_0x4b18ae,_0x470eb7){var _0xb7b25d={},_0x118fbc={},_0x26e968={'count':0x0,'rows':[]};var _0x431b6c=_[_0x0f32('0x30')](db[_0x0f32('0x31')][_0x0f32('0x32')],function(_0x23a0fc){return{'name':_0x23a0fc['fieldName'],'type':_0x23a0fc['type']['key']};});_0x118fbc[_0x0f32('0x33')]=_[_0x0f32('0x30')](_0x431b6c,_0x0f32('0x2e'));_0x118fbc[_0x0f32('0x34')]=_[_0x0f32('0x35')](_0x4b18ae['query']);_0x118fbc[_0x0f32('0x36')]=_[_0x0f32('0x37')](_0x118fbc[_0x0f32('0x33')],_0x118fbc[_0x0f32('0x34')]);_0xb7b25d[_0x0f32('0x38')]=_[_0x0f32('0x37')](_0x118fbc[_0x0f32('0x33')],qs[_0x0f32('0x39')](_0x4b18ae['query']['fields']));_0xb7b25d[_0x0f32('0x38')]=_0xb7b25d['attributes'][_0x0f32('0x3a')]?_0xb7b25d['attributes']:_0x118fbc['model'];if(!_0x4b18ae[_0x0f32('0x34')][_0x0f32('0x3b')](_0x0f32('0x3c'))){_0xb7b25d[_0x0f32('0x26')]=qs[_0x0f32('0x26')](_0x4b18ae[_0x0f32('0x34')][_0x0f32('0x26')]);_0xb7b25d[_0x0f32('0x23')]=qs[_0x0f32('0x23')](_0x4b18ae[_0x0f32('0x34')][_0x0f32('0x23')]);}_0xb7b25d[_0x0f32('0x3d')]=qs[_0x0f32('0x3e')](_0x4b18ae[_0x0f32('0x34')][_0x0f32('0x3e')]);_0xb7b25d[_0x0f32('0x3f')]=qs[_0x0f32('0x36')](_[_0x0f32('0x40')](_0x4b18ae[_0x0f32('0x34')],_0x118fbc[_0x0f32('0x36')]),_0x431b6c);if(_0x4b18ae['query']['filter']){_0xb7b25d['where']=_[_0x0f32('0x41')](_0xb7b25d[_0x0f32('0x3f')],{'$or':_[_0x0f32('0x30')](_0x431b6c,function(_0x13b57f){if(_0x13b57f[_0x0f32('0x42')]!==_0x0f32('0x43')){var _0x28a97f={};_0x28a97f[_0x13b57f[_0x0f32('0x2e')]]={'$like':'%'+_0x4b18ae['query'][_0x0f32('0x44')]+'%'};return _0x28a97f;}})});}_0xb7b25d=_[_0x0f32('0x41')]({},_0xb7b25d,_0x4b18ae[_0x0f32('0x45')]);var _0x5f50a1={'where':_0xb7b25d[_0x0f32('0x3f')]};return db[_0x0f32('0x31')]['count'](_0x5f50a1)['then'](function(_0x548352){_0x26e968[_0x0f32('0x25')]=_0x548352;if(_0x4b18ae['query'][_0x0f32('0x46')]){_0xb7b25d[_0x0f32('0x47')]=[{'all':!![]}];}return db[_0x0f32('0x31')][_0x0f32('0x48')](_0xb7b25d);})[_0x0f32('0x2b')](function(_0x56a76c){_0x26e968[_0x0f32('0x49')]=_0x56a76c;return _0x26e968;})[_0x0f32('0x2b')](respondWithFilteredResult(_0x470eb7,_0xb7b25d))[_0x0f32('0x4a')](handleError(_0x470eb7,null));};exports['show']=function(_0x9100a2,_0x271e19){var _0x4be92a={'raw':!![],'where':{'id':_0x9100a2['params']['id']}},_0xca1fc1={};_0xca1fc1[_0x0f32('0x33')]=_[_0x0f32('0x35')](db[_0x0f32('0x31')][_0x0f32('0x32')]);_0xca1fc1[_0x0f32('0x34')]=_[_0x0f32('0x35')](_0x9100a2['query']);_0xca1fc1['filters']=_[_0x0f32('0x37')](_0xca1fc1[_0x0f32('0x33')],_0xca1fc1[_0x0f32('0x34')]);_0x4be92a[_0x0f32('0x38')]=_[_0x0f32('0x37')](_0xca1fc1[_0x0f32('0x33')],qs['fields'](_0x9100a2[_0x0f32('0x34')]['fields']));_0x4be92a[_0x0f32('0x38')]=_0x4be92a['attributes'][_0x0f32('0x3a')]?_0x4be92a[_0x0f32('0x38')]:_0xca1fc1['model'];if(_0x9100a2['query'][_0x0f32('0x46')]){_0x4be92a[_0x0f32('0x47')]=[{'all':!![]}];}_0x4be92a=_['merge']({},_0x4be92a,_0x9100a2['options']);return db[_0x0f32('0x31')][_0x0f32('0x4b')](_0x4be92a)[_0x0f32('0x2b')](handleEntityNotFound(_0x271e19,null))[_0x0f32('0x2b')](respondWithResult(_0x271e19,null))[_0x0f32('0x4a')](handleError(_0x271e19,null));};exports['create']=function(_0x49ab21,_0x4a564b){return db[_0x0f32('0x31')][_0x0f32('0x4c')](_0x49ab21['body'],{})['then'](respondWithResult(_0x4a564b,0xc9))[_0x0f32('0x4a')](handleError(_0x4a564b,null));};exports[_0x0f32('0x2a')]=function(_0x43e984,_0x2d1851){if(_0x43e984[_0x0f32('0x4d')]['id']){delete _0x43e984[_0x0f32('0x4d')]['id'];}return db[_0x0f32('0x31')][_0x0f32('0x4b')]({'where':{'id':_0x43e984['params']['id']}})[_0x0f32('0x2b')](handleEntityNotFound(_0x2d1851,null))['then'](saveUpdates(_0x43e984[_0x0f32('0x4d')],null))[_0x0f32('0x2b')](respondWithResult(_0x2d1851,null))[_0x0f32('0x4a')](handleError(_0x2d1851,null));};exports[_0x0f32('0x4e')]=function(_0x5ad02a,_0x37f079){return db['ChatInternalMessage'][_0x0f32('0x4b')]({'where':{'id':_0x5ad02a[_0x0f32('0x4f')]['id']}})[_0x0f32('0x2b')](handleEntityNotFound(_0x37f079,null))[_0x0f32('0x2b')](removeEntity(_0x37f079,null))[_0x0f32('0x4a')](handleError(_0x37f079,null));};exports[_0x0f32('0x50')]=function(_0x20f6d3,_0x263a0c){return db[_0x0f32('0x31')][_0x0f32('0x50')]()[_0x0f32('0x2b')](respondWithResult(_0x263a0c,null))[_0x0f32('0x4a')](handleError(_0x263a0c,null));};function wrapUser(_0x2212c8){return function(_0x39356b){var _0x4960dd=_0x2212c8[_0x0f32('0x51')]({'plain':!![]});_0x4960dd[_0x0f32('0x52')]=[];if(_0x39356b){_0x4960dd[_0x0f32('0x53')]=_0x39356b['createdAt'];_0x4960dd['lastMessage']=_0x39356b;}else{_0x4960dd['lastMessageAt']=moment(0x0)[_0x0f32('0x54')](_0x0f32('0x55'));_0x4960dd[_0x0f32('0x56')]={};}return _0x4960dd;};}exports['getUsers']=function(_0xbe1c4e,_0x4737a2,_0x408705){var _0xc86230=[];return db[_0x0f32('0x57')][_0x0f32('0x48')]({'where':{'role':[_0x0f32('0x58'),_0x0f32('0x59'),'user']},'attributes':['id',_0x0f32('0x5a'),_0x0f32('0x2e'),_0x0f32('0x5b'),'userpic',_0x0f32('0x5c'),'online',_0x0f32('0x5d'),'allowmessenger',_0x0f32('0x5e')],'order':qs[_0x0f32('0x3e')]('-online'),'include':[{'model':db['VoiceQueue'],'as':_0x0f32('0x5f'),'attributes':['id','name',_0x0f32('0x42')],'through':{'attributes':[]}}]})[_0x0f32('0x2b')](function(_0x4ac633){if(_0x4ac633){var _0x2c0d5b=_0xbe1c4e[_0x0f32('0x60')]['get']({'plain':!![]});if(!_0x2c0d5b)throw new Error(_0x0f32('0x61'));if(_0x2c0d5b[_0x0f32('0x5b')]==='user'){return db[_0x0f32('0x62')][_0x0f32('0x4b')]({'where':{'name':_0x0f32('0x63'),'userProfileId':_0x2c0d5b[_0x0f32('0x64')]},'raw':!![]})[_0x0f32('0x2b')](function(_0x4556e9){if(_0x4556e9){if(_0x4556e9[_0x0f32('0x65')]===0x0){return db[_0x0f32('0x66')][_0x0f32('0x48')]({'where':{'sectionId':_0x4556e9['id']},'raw':!![]})['then'](function(_0x3b9b28){var _0x554efc=[];if(_[_0x0f32('0x67')](_0x3b9b28)){_0x554efc=_[_0x0f32('0x44')](_0x4ac633,function(_0x41638c){if(_0x41638c[_0x0f32('0x5b')]!==_0x0f32('0x58')){return _0x41638c;}});return _0x554efc;}else{for(var _0xe34a95=0x0;_0xe34a95<_0x4ac633['length'];_0xe34a95++){var _0x992d1c=_0x4ac633[_0xe34a95];if(_0x992d1c[_0x0f32('0x5b')]===_0x0f32('0x58')){var _0x363c90=_[_0x0f32('0x4b')](_0x3b9b28,function(_0x2b9dd8){return _0x2b9dd8['resourceId']===_0x992d1c['id'];});if(_0x363c90)_0x554efc['push'](_0x992d1c);}else{_0x554efc['push'](_0x992d1c);}}return _0x554efc;}});}else{return _0x4ac633;}}else{var _0x4aa18c=_[_0x0f32('0x44')](_0x4ac633,function(_0x1c1d8d){if(_0x1c1d8d['role']!==_0x0f32('0x58')){return _0x1c1d8d;}});return _0x4aa18c;}});}else{return _0x4ac633;}}})[_0x0f32('0x2b')](function(_0x14e453){var _0x4ff630=[];if(_0x14e453){_0xc86230=_0x14e453;for(var _0x1da239=0x0;_0x1da239<_0x14e453[_0x0f32('0x3a')];_0x1da239+=0x1){_0xc86230[_0x1da239][_0x0f32('0x52')]=[];_0x4ff630['push'](db['ChatInternalMessage']['find']({'where':{'FromId':[_0xbe1c4e[_0x0f32('0x60')]['id'],_0x14e453[_0x1da239]['id']],'ToId':[_0xbe1c4e[_0x0f32('0x60')]['id'],_0x14e453[_0x1da239]['id']],'ChatGroupId':null},'attributes':['id',_0x0f32('0x68'),_0x0f32('0x69'),_0x0f32('0x6a'),_0x0f32('0x6b'),_0x0f32('0x4d')],'order':qs[_0x0f32('0x3e')](_0x0f32('0x6c')),'limit':0x1,'offset':0x0,'raw':!![]})[_0x0f32('0x2b')](wrapUser(_0x14e453[_0x1da239])));}return BPromise['all'](_0x4ff630);}return[];})[_0x0f32('0x2b')](function(_0x1b322e){return{'rows':_0x1b322e,'count':_0x1b322e[_0x0f32('0x3a')]};})[_0x0f32('0x2b')](respondWithResult(_0x4737a2,null))['catch'](handleError(_0x4737a2,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb79a=['hook','exports','events','../../mysqldb','setMaxListeners','save','update','remove','emit'];(function(_0x1dbf53,_0x5c2da0){var _0x1d264b=function(_0x5bfcd2){while(--_0x5bfcd2){_0x1dbf53['push'](_0x1dbf53['shift']());}};_0x1d264b(++_0x5c2da0);}(_0xb79a,0x18e));var _0xab79=function(_0x2641f9,_0x26715f){_0x2641f9=_0x2641f9-0x0;var _0x585741=_0xb79a[_0x2641f9];return _0x585741;};'use strict';var EventEmitter=require(_0xab79('0x0'));var ChatInternalMessage=require(_0xab79('0x1'))['db']['ChatInternalMessage'];var ChatInternalMessageEvents=new EventEmitter();ChatInternalMessageEvents[_0xab79('0x2')](0x0);var events={'afterCreate':_0xab79('0x3'),'afterUpdate':_0xab79('0x4'),'afterDestroy':_0xab79('0x5')};function emitEvent(_0x3756b0){return function(_0x40fa8a,_0x55116,_0x1ad70b){ChatInternalMessageEvents['emit'](_0x3756b0+':'+_0x40fa8a['id'],_0x40fa8a);ChatInternalMessageEvents[_0xab79('0x6')](_0x3756b0,_0x40fa8a);_0x1ad70b(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];ChatInternalMessage[_0xab79('0x7')](e,emitEvent(event));}}module[_0xab79('0x8')]=ChatInternalMessageEvents;
\ No newline at end of file
+var _0xd7bd=['emit','hook','events','setMaxListeners','save','update','remove'];(function(_0x38d6a0,_0x209aa3){var _0x38eed8=function(_0xb597c4){while(--_0xb597c4){_0x38d6a0['push'](_0x38d6a0['shift']());}};_0x38eed8(++_0x209aa3);}(_0xd7bd,0xe9));var _0xdd7b=function(_0x2d4661,_0x2da65c){_0x2d4661=_0x2d4661-0x0;var _0x42ed1e=_0xd7bd[_0x2d4661];return _0x42ed1e;};'use strict';var EventEmitter=require(_0xdd7b('0x0'));var ChatInternalMessage=require('../../mysqldb')['db']['ChatInternalMessage'];var ChatInternalMessageEvents=new EventEmitter();ChatInternalMessageEvents[_0xdd7b('0x1')](0x0);var events={'afterCreate':_0xdd7b('0x2'),'afterUpdate':_0xdd7b('0x3'),'afterDestroy':_0xdd7b('0x4')};function emitEvent(_0xe25334){return function(_0x2dafca,_0x264a9b,_0x2395a1){ChatInternalMessageEvents[_0xdd7b('0x5')](_0xe25334+':'+_0x2dafca['id'],_0x2dafca);ChatInternalMessageEvents[_0xdd7b('0x5')](_0xe25334,_0x2dafca);_0x2395a1(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];ChatInternalMessage[_0xdd7b('0x6')](e,emitEvent(event));}}module['exports']=ChatInternalMessageEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x04ed=['./chatInternalMessage.attributes','exports','ChatInternalMessage','chat_internal_messages','utf8mb4_unicode_ci','lodash','util','../../config/logger','api','request-promise','path','rimraf'];(function(_0x4c82af,_0x5ca362){var _0x260354=function(_0x31749a){while(--_0x31749a){_0x4c82af['push'](_0x4c82af['shift']());}};_0x260354(++_0x5ca362);}(_0x04ed,0x1e5));var _0xd04e=function(_0x31ade7,_0x4a2dab){_0x31ade7=_0x31ade7-0x0;var _0x1b20ad=_0x04ed[_0x31ade7];return _0x1b20ad;};'use strict';var _=require(_0xd04e('0x0'));var util=require(_0xd04e('0x1'));var logger=require(_0xd04e('0x2'))(_0xd04e('0x3'));var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0xd04e('0x4'));var fs=require('fs');var path=require(_0xd04e('0x5'));var rimraf=require(_0xd04e('0x6'));var config=require('../../config/environment');var attributes=require(_0xd04e('0x7'));module[_0xd04e('0x8')]=function(_0x5ddb76,_0x15f436){return _0x5ddb76['define'](_0xd04e('0x9'),attributes,{'tableName':_0xd04e('0xa'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':'utf8mb4','collate':_0xd04e('0xb')});};
\ No newline at end of file
+var _0x0bf2=['bluebird','request-promise','path','rimraf','./chatInternalMessage.attributes','define','ChatInternalMessage','chat_internal_messages','utf8mb4','lodash','util'];(function(_0x15f3c0,_0x165a64){var _0x1adfe0=function(_0x212cfc){while(--_0x212cfc){_0x15f3c0['push'](_0x15f3c0['shift']());}};_0x1adfe0(++_0x165a64);}(_0x0bf2,0xe5));var _0x20bf=function(_0x21e748,_0x1d3040){_0x21e748=_0x21e748-0x0;var _0x53891c=_0x0bf2[_0x21e748];return _0x53891c;};'use strict';var _=require(_0x20bf('0x0'));var util=require(_0x20bf('0x1'));var logger=require('../../config/logger')('api');var moment=require('moment');var BPromise=require(_0x20bf('0x2'));var rp=require(_0x20bf('0x3'));var fs=require('fs');var path=require(_0x20bf('0x4'));var rimraf=require(_0x20bf('0x5'));var config=require('../../config/environment');var attributes=require(_0x20bf('0x6'));module['exports']=function(_0x2822b4,_0x2ef6f9){return _0x2822b4[_0x20bf('0x7')](_0x20bf('0x8'),attributes,{'tableName':_0x20bf('0x9'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0x20bf('0xa'),'collate':'utf8mb4_unicode_ci'});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7604=['../../config/logger','../../config/environment','jayson/promise','http','redis','localhost','socket.io-emitter','./chatInternalMessage.socket','register','request','then','info','ChatInternalMessage,\x20%s,\x20%s','request\x20sent','debug','ChatInternalMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','message','catch','lodash','util','moment','bluebird','../../mysqldb','../../config/utils'];(function(_0x35f81c,_0x233491){var _0x4db454=function(_0x49b982){while(--_0x49b982){_0x35f81c['push'](_0x35f81c['shift']());}};_0x4db454(++_0x233491);}(_0x7604,0xd2));var _0x4760=function(_0x2c91e9,_0x2fb965){_0x2c91e9=_0x2c91e9-0x0;var _0x13f0ff=_0x7604[_0x2c91e9];return _0x13f0ff;};'use strict';var _=require(_0x4760('0x0'));var util=require(_0x4760('0x1'));var moment=require(_0x4760('0x2'));var BPromise=require(_0x4760('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0x4760('0x4'))['db'];var utils=require(_0x4760('0x5'));var logger=require(_0x4760('0x6'))('rpc');var config=require(_0x4760('0x7'));var jayson=require(_0x4760('0x8'));var client=jayson['client'][_0x4760('0x9')]({'port':0x232a});config[_0x4760('0xa')]=_['defaults'](config[_0x4760('0xa')],{'host':_0x4760('0xb'),'port':0x18eb});var socket=require(_0x4760('0xc'))(new Redis(config[_0x4760('0xa')]));require(_0x4760('0xd'))[_0x4760('0xe')](socket);function respondWithRpcPromise(_0x5f2c9d,_0x3a3000,_0x4d8860){return new BPromise(function(_0x30810b,_0x13a434){return client[_0x4760('0xf')](_0x5f2c9d,_0x4d8860)[_0x4760('0x10')](function(_0x1e55d3){logger[_0x4760('0x11')](_0x4760('0x12'),_0x3a3000,_0x4760('0x13'));logger[_0x4760('0x14')](_0x4760('0x15'),_0x3a3000,'request\x20sent',JSON[_0x4760('0x16')](_0x1e55d3));if(_0x1e55d3[_0x4760('0x17')]){if(_0x1e55d3[_0x4760('0x17')][_0x4760('0x18')]===0x1f4){logger[_0x4760('0x17')](_0x4760('0x12'),_0x3a3000,_0x1e55d3[_0x4760('0x17')][_0x4760('0x19')]);return _0x13a434(_0x1e55d3[_0x4760('0x17')]['message']);}logger[_0x4760('0x17')]('ChatInternalMessage,\x20%s,\x20%s',_0x3a3000,_0x1e55d3['error'][_0x4760('0x19')]);return _0x30810b(_0x1e55d3[_0x4760('0x17')][_0x4760('0x19')]);}else{logger[_0x4760('0x11')](_0x4760('0x12'),_0x3a3000,'request\x20sent');_0x30810b(_0x1e55d3['result']['message']);}})[_0x4760('0x1a')](function(_0x277dbd){logger[_0x4760('0x17')](_0x4760('0x12'),_0x3a3000,_0x277dbd);_0x13a434(_0x277dbd);});});}
\ No newline at end of file
+var _0xadb2=['./chatInternalMessage.socket','register','request','ChatInternalMessage,\x20%s,\x20%s','request\x20sent','debug','ChatInternalMessage,\x20%s,\x20%s,\x20%s','stringify','error','message','info','catch','util','moment','bluebird','randomstring','../../mysqldb','rpc','../../config/environment','client','http','redis','defaults'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0xadb2,0xf2));var _0x2adb=function(_0x33b73a,_0xbf4843){_0x33b73a=_0x33b73a-0x0;var _0x1dfea3=_0xadb2[_0x33b73a];return _0x1dfea3;};'use strict';var _=require('lodash');var util=require(_0x2adb('0x0'));var moment=require(_0x2adb('0x1'));var BPromise=require(_0x2adb('0x2'));var rs=require(_0x2adb('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x2adb('0x4'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0x2adb('0x5'));var config=require(_0x2adb('0x6'));var jayson=require('jayson/promise');var client=jayson[_0x2adb('0x7')][_0x2adb('0x8')]({'port':0x232a});config[_0x2adb('0x9')]=_[_0x2adb('0xa')](config[_0x2adb('0x9')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x2adb('0x9')]));require(_0x2adb('0xb'))[_0x2adb('0xc')](socket);function respondWithRpcPromise(_0x4f5ea0,_0x3102b1,_0x533200){return new BPromise(function(_0x1444fa,_0x174d24){return client[_0x2adb('0xd')](_0x4f5ea0,_0x533200)['then'](function(_0x5c5cd0){logger['info'](_0x2adb('0xe'),_0x3102b1,_0x2adb('0xf'));logger[_0x2adb('0x10')](_0x2adb('0x11'),_0x3102b1,_0x2adb('0xf'),JSON[_0x2adb('0x12')](_0x5c5cd0));if(_0x5c5cd0[_0x2adb('0x13')]){if(_0x5c5cd0[_0x2adb('0x13')]['code']===0x1f4){logger[_0x2adb('0x13')]('ChatInternalMessage,\x20%s,\x20%s',_0x3102b1,_0x5c5cd0['error'][_0x2adb('0x14')]);return _0x174d24(_0x5c5cd0[_0x2adb('0x13')]['message']);}logger[_0x2adb('0x13')](_0x2adb('0xe'),_0x3102b1,_0x5c5cd0['error'][_0x2adb('0x14')]);return _0x1444fa(_0x5c5cd0[_0x2adb('0x13')][_0x2adb('0x14')]);}else{logger[_0x2adb('0x15')](_0x2adb('0xe'),_0x3102b1,_0x2adb('0xf'));_0x1444fa(_0x5c5cd0['result'][_0x2adb('0x14')]);}})[_0x2adb('0x16')](function(_0x423cfb){logger[_0x2adb('0x13')](_0x2adb('0xe'),_0x3102b1,_0x423cfb);_0x174d24(_0x423cfb);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x52e2=['length','./chatInternalMessage.events','save','remove','update','emit','removeListener'];(function(_0x40cbfd,_0x2fcd10){var _0xf6c9fa=function(_0x28997c){while(--_0x28997c){_0x40cbfd['push'](_0x40cbfd['shift']());}};_0xf6c9fa(++_0x2fcd10);}(_0x52e2,0x127));var _0x252e=function(_0x179a0c,_0x2ca073){_0x179a0c=_0x179a0c-0x0;var _0x1c8b9a=_0x52e2[_0x179a0c];return _0x1c8b9a;};'use strict';var ChatInternalMessageEvents=require(_0x252e('0x0'));var events=[_0x252e('0x1'),_0x252e('0x2'),_0x252e('0x3')];function createListener(_0x5417a8,_0x639e74){return function(_0x825625){_0x639e74[_0x252e('0x4')](_0x5417a8,_0x825625);};}function removeListener(_0x37a44b,_0x33fe3c){return function(){ChatInternalMessageEvents[_0x252e('0x5')](_0x37a44b,_0x33fe3c);};}exports['register']=function(_0x4fe9c9){for(var _0x58f9a8=0x0,_0x35ffa4=events[_0x252e('0x6')];_0x58f9a8<_0x35ffa4;_0x58f9a8++){var _0x2f5afa=events[_0x58f9a8];var _0x4dddbf=createListener('chatInternalMessage:'+_0x2f5afa,_0x4fe9c9);ChatInternalMessageEvents['on'](_0x2f5afa,_0x4dddbf);}};
\ No newline at end of file
+var _0xfcd8=['./chatInternalMessage.events','save','remove','update','removeListener','register','length','chatInternalMessage:'];(function(_0x525d9e,_0x4b3695){var _0x518a40=function(_0x8fa07f){while(--_0x8fa07f){_0x525d9e['push'](_0x525d9e['shift']());}};_0x518a40(++_0x4b3695);}(_0xfcd8,0xa0));var _0x8fcd=function(_0x60ebd9,_0x32e879){_0x60ebd9=_0x60ebd9-0x0;var _0x9e643=_0xfcd8[_0x60ebd9];return _0x9e643;};'use strict';var ChatInternalMessageEvents=require(_0x8fcd('0x0'));var events=[_0x8fcd('0x1'),_0x8fcd('0x2'),_0x8fcd('0x3')];function createListener(_0x5d4315,_0x348a1a){return function(_0x53eea1){_0x348a1a['emit'](_0x5d4315,_0x53eea1);};}function removeListener(_0x1a7048,_0x41b6ce){return function(){ChatInternalMessageEvents[_0x8fcd('0x4')](_0x1a7048,_0x41b6ce);};}exports[_0x8fcd('0x5')]=function(_0x5b683b){for(var _0xe0af00=0x0,_0x4e1b11=events[_0x8fcd('0x6')];_0xe0af00<_0x4e1b11;_0xe0af00++){var _0x352f21=events[_0xe0af00];var _0x34e7f6=createListener(_0x8fcd('0x7')+_0x352f21,_0x5b683b);ChatInternalMessageEvents['on'](_0x352f21,_0x34e7f6);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcb52=['get','isAuthenticated','index','/describe','describe','getUsers','/:id','show','post','create','update','delete','destroy','exports','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service'];(function(_0x1e4360,_0x930b9b){var _0x31e6b4=function(_0x49dd8e){while(--_0x49dd8e){_0x1e4360['push'](_0x1e4360['shift']());}};_0x31e6b4(++_0x930b9b);}(_0xcb52,0xc2));var _0x2cb5=function(_0x5a1d22,_0x57fcd2){_0x5a1d22=_0x5a1d22-0x0;var _0x53baea=_0xcb52[_0x5a1d22];return _0x53baea;};'use strict';var multer=require('multer');var util=require('util');var path=require('path');var timeout=require(_0x2cb5('0x0'));var express=require(_0x2cb5('0x1'));var router=express[_0x2cb5('0x2')]();var fs_extra=require(_0x2cb5('0x3'));var auth=require(_0x2cb5('0x4'));var interaction=require(_0x2cb5('0x5'));var config=require('../../config/environment');var controller=require('./chatInternalMessage.controller');router[_0x2cb5('0x6')]('/',auth[_0x2cb5('0x7')](),controller[_0x2cb5('0x8')]);router[_0x2cb5('0x6')](_0x2cb5('0x9'),auth[_0x2cb5('0x7')](),controller[_0x2cb5('0xa')]);router['get']('/users',auth[_0x2cb5('0x7')](),controller[_0x2cb5('0xb')]);router[_0x2cb5('0x6')](_0x2cb5('0xc'),auth[_0x2cb5('0x7')](),controller[_0x2cb5('0xd')]);router[_0x2cb5('0xe')]('/',auth[_0x2cb5('0x7')](),controller[_0x2cb5('0xf')]);router['put'](_0x2cb5('0xc'),controller[_0x2cb5('0x10')]);router[_0x2cb5('0x11')](_0x2cb5('0xc'),auth[_0x2cb5('0x7')](),controller[_0x2cb5('0x12')]);module[_0x2cb5('0x13')]=router;
\ No newline at end of file
+var _0x5a98=['/describe','describe','/users','create','put','/:id','delete','destroy','exports','multer','util','path','express','Router','../../components/auth/service','../../components/interaction/service','./chatInternalMessage.controller','get','isAuthenticated','index'];(function(_0x37ed0e,_0x3dc4ab){var _0x4fc06f=function(_0x2c65d2){while(--_0x2c65d2){_0x37ed0e['push'](_0x37ed0e['shift']());}};_0x4fc06f(++_0x3dc4ab);}(_0x5a98,0xe5));var _0x85a9=function(_0x364e28,_0x147349){_0x364e28=_0x364e28-0x0;var _0x1c32e3=_0x5a98[_0x364e28];return _0x1c32e3;};'use strict';var multer=require(_0x85a9('0x0'));var util=require(_0x85a9('0x1'));var path=require(_0x85a9('0x2'));var timeout=require('connect-timeout');var express=require(_0x85a9('0x3'));var router=express[_0x85a9('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0x85a9('0x5'));var interaction=require(_0x85a9('0x6'));var config=require('../../config/environment');var controller=require(_0x85a9('0x7'));router[_0x85a9('0x8')]('/',auth[_0x85a9('0x9')](),controller[_0x85a9('0xa')]);router['get'](_0x85a9('0xb'),auth[_0x85a9('0x9')](),controller[_0x85a9('0xc')]);router[_0x85a9('0x8')](_0x85a9('0xd'),auth['isAuthenticated'](),controller['getUsers']);router[_0x85a9('0x8')]('/:id',auth[_0x85a9('0x9')](),controller['show']);router['post']('/',auth[_0x85a9('0x9')](),controller[_0x85a9('0xe')]);router[_0x85a9('0xf')](_0x85a9('0x10'),controller['update']);router[_0x85a9('0x11')](_0x85a9('0x10'),auth[_0x85a9('0x9')](),controller[_0x85a9('0x12')]);module[_0x85a9('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6599=['out','DATE','exports','TEXT','medium','BOOLEAN'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x6599,0xb0));var _0x9659=function(_0x2c7618,_0x26be9c){_0x2c7618=_0x2c7618-0x0;var _0x5ce3f0=_0x6599[_0x2c7618];return _0x5ce3f0;};'use strict';var Sequelize=require('sequelize');module[_0x9659('0x0')]={'body':{'type':Sequelize[_0x9659('0x1')](_0x9659('0x2')),'allowNull':![]},'read':{'type':Sequelize[_0x9659('0x3')],'defaultValue':![]},'secret':{'type':Sequelize[_0x9659('0x3')],'defaultValue':![]},'direction':{'type':Sequelize['ENUM']('in',_0x9659('0x4')),'defaultValue':'out','allowNull':![]},'readAt':{'type':Sequelize[_0x9659('0x5')]},'providerName':{'type':Sequelize['STRING']},'providerResponse':{'type':Sequelize[_0x9659('0x1')]}};
\ No newline at end of file
+var _0x1cc3=['out','DATE','STRING','TEXT','sequelize','exports','medium','BOOLEAN','ENUM'];(function(_0x21595e,_0x554025){var _0x13a181=function(_0x4e1603){while(--_0x4e1603){_0x21595e['push'](_0x21595e['shift']());}};_0x13a181(++_0x554025);}(_0x1cc3,0x11b));var _0x31cc=function(_0x178e48,_0x3c9509){_0x178e48=_0x178e48-0x0;var _0x440d7e=_0x1cc3[_0x178e48];return _0x440d7e;};'use strict';var Sequelize=require(_0x31cc('0x0'));module[_0x31cc('0x1')]={'body':{'type':Sequelize['TEXT'](_0x31cc('0x2')),'allowNull':![]},'read':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'secret':{'type':Sequelize[_0x31cc('0x3')],'defaultValue':![]},'direction':{'type':Sequelize[_0x31cc('0x4')]('in',_0x31cc('0x5')),'defaultValue':'out','allowNull':![]},'readAt':{'type':Sequelize[_0x31cc('0x6')]},'providerName':{'type':Sequelize[_0x31cc('0x7')]},'providerResponse':{'type':Sequelize[_0x31cc('0x8')]}};
\ 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(_0xe96a6e,_0x1556f4){var _0x3d87dc=function(_0x5ca6a3){while(--_0x5ca6a3){_0xe96a6e['push'](_0xe96a6e['shift']());}};_0x3d87dc(++_0x1556f4);}(_0xa9e0,0x123));var _0x0a9e=function(_0x3635ce,_0x33a6f9){_0x3635ce=_0x3635ce-0x0;var _0x97ecd0=_0xa9e0[_0x3635ce];return _0x97ecd0;};'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 _0xb499=['nolimit','order','sort','pick','filter','where','merge','type','options','findAll','rows','show','params','keys','includeAll','include','find','create','body','describe','chat-interactions','chat','readAt','YYYY-MM-DD\x20HH:mm:ss','UserId','user','get','ChatInteraction','ChatInteractionId','isNil','read1stAt','format','interaction','role','null','acceptMessage','ContactId','sequelize','Sequelize','QueryTypes','SELECT','agent','email','internal','manual','interface','SIP/%s','motionChannel','channel','event','accept','EventManager','acceptmessage','parse','formData','reject','[CHATMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','RejectMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','contact','fullname','rejectmessage','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','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','api','../../config/utils','../../config/environment','../../config/license/util','redis','localhost','socket.io-emitter','./chatMessage.socket','register','jayson/promise','client','http','request','then','info','ChatMessage,\x20%s,\x20%s','request\x20sent','debug','ChatMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','sendStatus','status','json','offset','undefined','limit','count','set','apply','save','update','destroy','end','stack','send','map','ChatMessage','rawAttributes','fieldName','key','model','name','query','filters','intersection','attributes','fields','length','hasOwnProperty'];(function(_0xef8146,_0x459c34){var _0x5a6cb0=function(_0x2f84ec){while(--_0x2f84ec){_0xef8146['push'](_0xef8146['shift']());}};_0x5a6cb0(++_0x459c34);}(_0xb499,0x1e5));var _0x9b49=function(_0x28049b,_0x38bd6c){_0x28049b=_0x28049b-0x0;var _0x51ae58=_0xb499[_0x28049b];return _0x51ae58;};'use strict';var emlformat=require(_0x9b49('0x0'));var rimraf=require(_0x9b49('0x1'));var zipdir=require(_0x9b49('0x2'));var jsonpatch=require(_0x9b49('0x3'));var rp=require(_0x9b49('0x4'));var moment=require(_0x9b49('0x5'));var BPromise=require(_0x9b49('0x6'));var Mustache=require(_0x9b49('0x7'));var util=require(_0x9b49('0x8'));var path=require(_0x9b49('0x9'));var sox=require('sox');var csv=require(_0x9b49('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x9b49('0xb'));var _=require(_0x9b49('0xc'));var squel=require(_0x9b49('0xd'));var crypto=require(_0x9b49('0xe'));var jsforce=require(_0x9b49('0xf'));var deskjs=require(_0x9b49('0x10'));var toCsv=require('to-csv');var querystring=require(_0x9b49('0x11'));var Papa=require(_0x9b49('0x12'));var Redis=require(_0x9b49('0x13'));var authService=require(_0x9b49('0x14'));var qs=require(_0x9b49('0x15'));var as=require(_0x9b49('0x16'));var hardwareService=require(_0x9b49('0x17'));var logger=require(_0x9b49('0x18'))(_0x9b49('0x19'));var utils=require(_0x9b49('0x1a'));var config=require(_0x9b49('0x1b'));var licenseUtil=require(_0x9b49('0x1c'));var db=require('../../mysqldb')['db'];config[_0x9b49('0x1d')]=_['defaults'](config['redis'],{'host':_0x9b49('0x1e'),'port':0x18eb});var socket=require(_0x9b49('0x1f'))(new Redis(config[_0x9b49('0x1d')]));require(_0x9b49('0x20'))[_0x9b49('0x21')](socket);var jayson=require(_0x9b49('0x22'));var client=jayson[_0x9b49('0x23')][_0x9b49('0x24')]({'port':0x232c});var client9002=jayson['client'][_0x9b49('0x24')]({'port':0x232a});function respondWithRpcPromise(_0xeca52a,_0x2b0516,_0x12788b,_0x366fe4){return new BPromise(function(_0x3597bb,_0x1761b1){var _0x4e782f=_0x366fe4||client;return _0x4e782f[_0x9b49('0x25')](_0xeca52a,_0x12788b)[_0x9b49('0x26')](function(_0xe9b82a){logger[_0x9b49('0x27')](_0x9b49('0x28'),_0x2b0516,_0x9b49('0x29'));logger[_0x9b49('0x2a')](_0x9b49('0x2b'),_0x2b0516,'request\x20sent',JSON[_0x9b49('0x2c')](_0xe9b82a));if(_0xe9b82a[_0x9b49('0x2d')]){if(_0xe9b82a[_0x9b49('0x2d')][_0x9b49('0x2e')]===0x1f4){logger[_0x9b49('0x2d')](_0x9b49('0x28'),_0x2b0516,_0xe9b82a[_0x9b49('0x2d')][_0x9b49('0x2f')]);return _0x1761b1(_0xe9b82a[_0x9b49('0x2d')][_0x9b49('0x2f')]);}logger[_0x9b49('0x2d')](_0x9b49('0x28'),_0x2b0516,_0xe9b82a[_0x9b49('0x2d')][_0x9b49('0x2f')]);return _0x3597bb(_0xe9b82a[_0x9b49('0x2d')][_0x9b49('0x2f')]);}else{logger['info'](_0x9b49('0x28'),_0x2b0516,_0x9b49('0x29'));_0x3597bb(_0xe9b82a[_0x9b49('0x30')]['message']);}})[_0x9b49('0x31')](function(_0x260910){logger[_0x9b49('0x2d')](_0x9b49('0x28'),_0x2b0516,_0x260910);_0x1761b1(_0x260910);});});}function respondWithStatusCode(_0x16eb6f,_0x733113){_0x733113=_0x733113||0xcc;return function(_0x43e04f){if(_0x43e04f){return _0x16eb6f[_0x9b49('0x32')](_0x733113);}return _0x16eb6f[_0x9b49('0x33')](_0x733113)['end']();};}function respondWithResult(_0x26c8b2,_0x5c23ef){_0x5c23ef=_0x5c23ef||0xc8;return function(_0x366de9){if(_0x366de9){return _0x26c8b2[_0x9b49('0x33')](_0x5c23ef)[_0x9b49('0x34')](_0x366de9);}};}function respondWithFilteredResult(_0x55bef0,_0x5e231f){return function(_0x53f360){if(_0x53f360){var _0xdd52eb=typeof _0x5e231f[_0x9b49('0x35')]===_0x9b49('0x36')&&typeof _0x5e231f[_0x9b49('0x37')]===_0x9b49('0x36');var _0x19707e=_0x53f360[_0x9b49('0x38')];var _0x400fce=_0xdd52eb?0x0:_0x5e231f['offset'];var _0x288283=_0xdd52eb?_0x53f360[_0x9b49('0x38')]:_0x5e231f[_0x9b49('0x35')]+_0x5e231f[_0x9b49('0x37')];var _0x829980;if(_0x288283>=_0x19707e){_0x288283=_0x19707e;_0x829980=0xc8;}else{_0x829980=0xce;}_0x55bef0[_0x9b49('0x33')](_0x829980);return _0x55bef0[_0x9b49('0x39')]('Content-Range',_0x400fce+'-'+_0x288283+'/'+_0x19707e)['json'](_0x53f360);}return null;};}function patchUpdates(_0x31b230){return function(_0x2c9537){try{jsonpatch[_0x9b49('0x3a')](_0x2c9537,_0x31b230,!![]);}catch(_0xa48969){return BPromise['reject'](_0xa48969);}return _0x2c9537[_0x9b49('0x3b')]();};}function saveUpdates(_0x2994b2,_0x1e0c90){return function(_0x497a99){if(_0x497a99){return _0x497a99[_0x9b49('0x3c')](_0x2994b2)[_0x9b49('0x26')](function(_0x488520){return _0x488520;});}return null;};}function removeEntity(_0x226044,_0x56b4ff){return function(_0x5a1dcf){if(_0x5a1dcf){return _0x5a1dcf[_0x9b49('0x3d')]()[_0x9b49('0x26')](function(){_0x226044['status'](0xcc)[_0x9b49('0x3e')]();});}};}function handleEntityNotFound(_0x5ab6c0,_0x182bc4){return function(_0x22e5fd){if(!_0x22e5fd){_0x5ab6c0[_0x9b49('0x32')](0x194);}return _0x22e5fd;};}function handleError(_0x5ddb14,_0x516a4b){_0x516a4b=_0x516a4b||0x1f4;return function(_0x30ccfa){logger['error'](_0x30ccfa[_0x9b49('0x3f')]);if(_0x30ccfa['name']){delete _0x30ccfa['name'];}_0x5ddb14[_0x9b49('0x33')](_0x516a4b)[_0x9b49('0x40')](_0x30ccfa);};}exports['index']=function(_0x1d59d6,_0x2b9014){var _0x3c5fc4={},_0x57709b={},_0x472842={'count':0x0,'rows':[]};var _0x3de9d9=_[_0x9b49('0x41')](db[_0x9b49('0x42')][_0x9b49('0x43')],function(_0x1be13d){return{'name':_0x1be13d[_0x9b49('0x44')],'type':_0x1be13d['type'][_0x9b49('0x45')]};});_0x57709b[_0x9b49('0x46')]=_[_0x9b49('0x41')](_0x3de9d9,_0x9b49('0x47'));_0x57709b[_0x9b49('0x48')]=_['keys'](_0x1d59d6[_0x9b49('0x48')]);_0x57709b[_0x9b49('0x49')]=_[_0x9b49('0x4a')](_0x57709b['model'],_0x57709b[_0x9b49('0x48')]);_0x3c5fc4[_0x9b49('0x4b')]=_['intersection'](_0x57709b[_0x9b49('0x46')],qs[_0x9b49('0x4c')](_0x1d59d6[_0x9b49('0x48')]['fields']));_0x3c5fc4['attributes']=_0x3c5fc4['attributes'][_0x9b49('0x4d')]?_0x3c5fc4['attributes']:_0x57709b[_0x9b49('0x46')];if(!_0x1d59d6[_0x9b49('0x48')][_0x9b49('0x4e')](_0x9b49('0x4f'))){_0x3c5fc4[_0x9b49('0x37')]=qs[_0x9b49('0x37')](_0x1d59d6['query'][_0x9b49('0x37')]);_0x3c5fc4['offset']=qs[_0x9b49('0x35')](_0x1d59d6[_0x9b49('0x48')][_0x9b49('0x35')]);}_0x3c5fc4[_0x9b49('0x50')]=qs[_0x9b49('0x51')](_0x1d59d6[_0x9b49('0x48')][_0x9b49('0x51')]);_0x3c5fc4['where']=qs['filters'](_[_0x9b49('0x52')](_0x1d59d6['query'],_0x57709b[_0x9b49('0x49')]),_0x3de9d9);if(_0x1d59d6[_0x9b49('0x48')][_0x9b49('0x53')]){_0x3c5fc4[_0x9b49('0x54')]=_[_0x9b49('0x55')](_0x3c5fc4['where'],{'$or':_['map'](_0x3de9d9,function(_0x4cf358){if(_0x4cf358[_0x9b49('0x56')]!=='VIRTUAL'){var _0x383064={};_0x383064[_0x4cf358[_0x9b49('0x47')]]={'$like':'%'+_0x1d59d6[_0x9b49('0x48')]['filter']+'%'};return _0x383064;}})});}_0x3c5fc4=_[_0x9b49('0x55')]({},_0x3c5fc4,_0x1d59d6[_0x9b49('0x57')]);var _0xe3725={'where':_0x3c5fc4['where']};return db[_0x9b49('0x42')][_0x9b49('0x38')](_0xe3725)['then'](function(_0x944f45){_0x472842['count']=_0x944f45;if(_0x1d59d6[_0x9b49('0x48')]['includeAll']){_0x3c5fc4['include']=[{'all':!![]}];}return db[_0x9b49('0x42')][_0x9b49('0x58')](_0x3c5fc4);})[_0x9b49('0x26')](function(_0x30118f){_0x472842[_0x9b49('0x59')]=_0x30118f;return _0x472842;})[_0x9b49('0x26')](respondWithFilteredResult(_0x2b9014,_0x3c5fc4))[_0x9b49('0x31')](handleError(_0x2b9014,null));};exports[_0x9b49('0x5a')]=function(_0x54fcb2,_0x36d7ad){var _0x43ec63={'raw':!![],'where':{'id':_0x54fcb2[_0x9b49('0x5b')]['id']}},_0x31bf09={};_0x31bf09[_0x9b49('0x46')]=_[_0x9b49('0x5c')](db['ChatMessage']['rawAttributes']);_0x31bf09[_0x9b49('0x48')]=_[_0x9b49('0x5c')](_0x54fcb2['query']);_0x31bf09[_0x9b49('0x49')]=_[_0x9b49('0x4a')](_0x31bf09['model'],_0x31bf09['query']);_0x43ec63[_0x9b49('0x4b')]=_[_0x9b49('0x4a')](_0x31bf09[_0x9b49('0x46')],qs['fields'](_0x54fcb2['query'][_0x9b49('0x4c')]));_0x43ec63[_0x9b49('0x4b')]=_0x43ec63[_0x9b49('0x4b')][_0x9b49('0x4d')]?_0x43ec63[_0x9b49('0x4b')]:_0x31bf09[_0x9b49('0x46')];if(_0x54fcb2[_0x9b49('0x48')][_0x9b49('0x5d')]){_0x43ec63[_0x9b49('0x5e')]=[{'all':!![]}];}_0x43ec63=_[_0x9b49('0x55')]({},_0x43ec63,_0x54fcb2['options']);return db[_0x9b49('0x42')][_0x9b49('0x5f')](_0x43ec63)[_0x9b49('0x26')](handleEntityNotFound(_0x36d7ad,null))[_0x9b49('0x26')](respondWithResult(_0x36d7ad,null))[_0x9b49('0x31')](handleError(_0x36d7ad,null));};exports[_0x9b49('0x60')]=function(_0x1fd441,_0x16faa3){return db[_0x9b49('0x42')][_0x9b49('0x60')](_0x1fd441[_0x9b49('0x61')],{})[_0x9b49('0x26')](respondWithResult(_0x16faa3,0xc9))['catch'](handleError(_0x16faa3,null));};exports[_0x9b49('0x3c')]=function(_0x163514,_0x2b3f89){if(_0x163514[_0x9b49('0x61')]['id']){delete _0x163514[_0x9b49('0x61')]['id'];}return db['ChatMessage'][_0x9b49('0x5f')]({'where':{'id':_0x163514['params']['id']}})[_0x9b49('0x26')](handleEntityNotFound(_0x2b3f89,null))[_0x9b49('0x26')](saveUpdates(_0x163514[_0x9b49('0x61')],null))[_0x9b49('0x26')](respondWithResult(_0x2b3f89,null))[_0x9b49('0x31')](handleError(_0x2b3f89,null));};exports[_0x9b49('0x3d')]=function(_0xc93639,_0x50ee27){return db[_0x9b49('0x42')][_0x9b49('0x5f')]({'where':{'id':_0xc93639[_0x9b49('0x5b')]['id']}})[_0x9b49('0x26')](handleEntityNotFound(_0x50ee27,null))[_0x9b49('0x26')](removeEntity(_0x50ee27,null))[_0x9b49('0x31')](handleError(_0x50ee27,null));};exports[_0x9b49('0x62')]=function(_0x4fb60f,_0x26229a){return db[_0x9b49('0x42')][_0x9b49('0x62')]()[_0x9b49('0x26')](respondWithResult(_0x26229a,null))['catch'](handleError(_0x26229a,null));};var interaction_log=require('../../config/logger')(_0x9b49('0x63'));exports['accept']=function(_0x5497e3,_0x3631a0,_0xb6202a){var _0x194801={'agent':{},'channel':_0x9b49('0x64')};if(_0x5497e3[_0x9b49('0x61')]['id']){delete _0x5497e3['body']['id'];}_0x5497e3[_0x9b49('0x61')]['read']=!![];_0x5497e3[_0x9b49('0x61')][_0x9b49('0x65')]=moment()['format'](_0x9b49('0x66'));_0x5497e3[_0x9b49('0x61')][_0x9b49('0x67')]=_0x5497e3[_0x9b49('0x61')][_0x9b49('0x67')]||_0x5497e3[_0x9b49('0x68')]['id'];_0x194801['agent']['id']=_0x5497e3[_0x9b49('0x61')]['UserId'];return db[_0x9b49('0x42')]['find']({'where':{'id':_0x5497e3[_0x9b49('0x5b')]['id'],'UserId':null}})[_0x9b49('0x26')](handleEntityNotFound(_0x3631a0,null))[_0x9b49('0x26')](saveUpdates(_0x5497e3[_0x9b49('0x61')],null))[_0x9b49('0x26')](function(_0x49ba02){if(_0x49ba02){_0x194801[_0x9b49('0x2f')]=_0x49ba02[_0x9b49('0x69')]({'plain':!![]});return db[_0x9b49('0x6a')][_0x9b49('0x5f')]({'where':{'id':_0x49ba02[_0x9b49('0x6b')]}});}return null;})['then'](handleEntityNotFound(_0x3631a0,null))[_0x9b49('0x26')](function(_0x2461ba){if(_0x2461ba){return _0x2461ba[_0x9b49('0x3c')]({'UserId':_0x5497e3[_0x9b49('0x61')][_0x9b49('0x67')],'read1stAt':_[_0x9b49('0x6c')](_0x2461ba[_0x9b49('0x6d')])?moment()[_0x9b49('0x6e')](_0x9b49('0x66')):undefined});}return null;})[_0x9b49('0x26')](function(_0x139d6e){if(_0x139d6e){_0x194801[_0x9b49('0x6f')]=_0x139d6e['get']({'plain':!![]});interaction_log[_0x9b49('0x27')]('[CHATMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x5497e3['user']['id'],_0x5497e3[_0x9b49('0x68')][_0x9b49('0x47')],_0x5497e3[_0x9b49('0x68')][_0x9b49('0x70')],_0x194801[_0x9b49('0x6f')]['id'],_0x5497e3['body']?JSON[_0x9b49('0x2c')](_0x5497e3[_0x9b49('0x61')]):_0x9b49('0x71'));return respondWithRpcPromise('AcceptMessage',_0x9b49('0x72'),_0x194801);}return null;})[_0x9b49('0x26')](function(_0x1c4861){var _0x3be98f='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x1c4861['message'][_0x9b49('0x73')];return db[_0x9b49('0x74')][_0x9b49('0x48')](_0x3be98f,{'type':db[_0x9b49('0x75')][_0x9b49('0x76')][_0x9b49('0x77')],'raw':!![]})[_0x9b49('0x26')](function(_0x932e25){return _0x932e25;});})['then'](function(_0x51c851){if(_0x51c851){_0x194801[_0x9b49('0x2f')]['contact']=_0x51c851[0x0];if(!_0x5497e3[_0x9b49('0x61')][_0x9b49('0x67')])return;return db['User'][_0x9b49('0x5f')]({'where':{'id':_0x5497e3['body'][_0x9b49('0x67')],'role':_0x9b49('0x78')},'attributes':['id','name','fullname',_0x9b49('0x79'),_0x9b49('0x7a')],'raw':!![]});}return null;})['then'](function(_0x31aa76){if(!_0x31aa76)return null;_0x194801[_0x9b49('0x2f')][_0x9b49('0x78')]=_0x31aa76;return _0x194801;})['then'](function(_0x18b7fd){if(_0x18b7fd){if(_0x5497e3[_0x9b49('0x61')][_0x9b49('0x7b')]){_0x194801[_0x9b49('0x2f')][_0x9b49('0x7c')]=util['format'](_0x9b49('0x7d'),_0x5497e3[_0x9b49('0x68')][_0x9b49('0x47')]);_0x194801[_0x9b49('0x2f')]['channel']=_0x194801['channel'];_0x194801[_0x9b49('0x2f')][_0x9b49('0x7e')]=_0x194801[_0x9b49('0x7f')];_0x194801[_0x9b49('0x2f')][_0x9b49('0x80')]=_0x9b49('0x81');return respondWithRpcPromise('EventManager',_0x9b49('0x82'),{'event':_0x9b49('0x83'),'message':_[_0x9b49('0x55')](_0x194801[_0x9b49('0x2f')],JSON[_0x9b49('0x84')](_0x194801['interaction'][_0x9b49('0x85')]))},client9002)['then'](function(){return _0x194801;});}return _0x194801;}return null;})['then'](respondWithResult(_0x3631a0,null))[_0x9b49('0x31')](handleError(_0x3631a0,null));};var interaction_log=require(_0x9b49('0x18'))('chat-interactions');exports[_0x9b49('0x86')]=function(_0x210607,_0x3cc069,_0x180cf3){var _0x2df3ce={'agent':{},'channel':_0x9b49('0x64')};if(_0x210607[_0x9b49('0x61')]['id']){delete _0x210607[_0x9b49('0x61')]['id'];}_0x210607[_0x9b49('0x61')][_0x9b49('0x67')]=_0x210607[_0x9b49('0x61')][_0x9b49('0x67')]||_0x210607['user']['id'];_0x2df3ce[_0x9b49('0x78')]['id']=_0x210607['body'][_0x9b49('0x67')];return db[_0x9b49('0x42')][_0x9b49('0x5f')]({'where':{'id':_0x210607[_0x9b49('0x5b')]['id'],'UserId':null}})['then'](handleEntityNotFound(_0x3cc069,null))[_0x9b49('0x26')](function(_0x3f3ea3){if(_0x3f3ea3){_0x2df3ce['message']=_0x3f3ea3[_0x9b49('0x69')]({'plain':!![]});return db['ChatInteraction'][_0x9b49('0x5f')]({'where':{'id':_0x3f3ea3[_0x9b49('0x6b')]}});}return null;})[_0x9b49('0x26')](handleEntityNotFound(_0x3cc069,null))[_0x9b49('0x26')](function(_0xe676dc){if(_0xe676dc){_0x2df3ce[_0x9b49('0x6f')]=_0xe676dc[_0x9b49('0x69')]({'plain':!![]});interaction_log['info'](_0x9b49('0x87'),_0x210607['user']['id'],_0x210607[_0x9b49('0x68')]['name'],_0x210607[_0x9b49('0x68')]['role'],_0x2df3ce['interaction']['id'],_0x210607[_0x9b49('0x61')]?JSON['stringify'](_0x210607[_0x9b49('0x61')]):'null');return respondWithRpcPromise(_0x9b49('0x88'),'rejectMessage',_0x2df3ce);}return null;})[_0x9b49('0x26')](function(_0x27e376){var _0x31cadd=_0x9b49('0x89')+_0x27e376[_0x9b49('0x2f')][_0x9b49('0x73')];return db['sequelize']['query'](_0x31cadd,{'type':db['Sequelize'][_0x9b49('0x76')]['SELECT'],'raw':!![]})[_0x9b49('0x26')](function(_0x4a206b){return _0x4a206b;});})[_0x9b49('0x26')](function(_0x210fc7){if(_0x210fc7){_0x2df3ce[_0x9b49('0x2f')][_0x9b49('0x8a')]=_0x210fc7[0x0];if(!_0x210607[_0x9b49('0x61')][_0x9b49('0x67')])return;return db['User'][_0x9b49('0x5f')]({'where':{'id':_0x210607[_0x9b49('0x61')][_0x9b49('0x67')],'role':'agent'},'attributes':['id',_0x9b49('0x47'),_0x9b49('0x8b'),_0x9b49('0x79'),'internal'],'raw':!![]});}return null;})[_0x9b49('0x26')](function(_0x33ed5a){if(!_0x33ed5a)return null;_0x2df3ce['message'][_0x9b49('0x78')]=_0x33ed5a;return _0x2df3ce;})[_0x9b49('0x26')](function(_0x1f1f58){if(_0x1f1f58){_0x1f1f58[_0x9b49('0x2f')]['interface']=util[_0x9b49('0x6e')](_0x9b49('0x7d'),_0x210607['user'][_0x9b49('0x47')]);_0x1f1f58[_0x9b49('0x2f')][_0x9b49('0x7f')]=_0x2df3ce[_0x9b49('0x7f')];_0x1f1f58[_0x9b49('0x2f')][_0x9b49('0x7e')]=_0x2df3ce['channel'];_0x1f1f58['message'][_0x9b49('0x80')]='reject';respondWithRpcPromise(_0x9b49('0x82'),_0x9b49('0x82'),{'event':_0x9b49('0x8c'),'message':_[_0x9b49('0x55')](_0x2df3ce[_0x9b49('0x2f')],JSON[_0x9b49('0x84')](_0x2df3ce[_0x9b49('0x6f')][_0x9b49('0x85')]))},client9002);return _0x2df3ce;}return null;})[_0x9b49('0x26')](respondWithResult(_0x3cc069,null))[_0x9b49('0x31')](handleError(_0x3cc069,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x55cb=['hasOwnProperty','hook','events','../../mysqldb','ChatMessage','setMaxListeners','remove','emit'];(function(_0x306106,_0x7dc50d){var _0x4d6083=function(_0x2a5b5a){while(--_0x2a5b5a){_0x306106['push'](_0x306106['shift']());}};_0x4d6083(++_0x7dc50d);}(_0x55cb,0x122));var _0xb55c=function(_0x3b594b,_0x5835c3){_0x3b594b=_0x3b594b-0x0;var _0x1ea5f8=_0x55cb[_0x3b594b];return _0x1ea5f8;};'use strict';var EventEmitter=require(_0xb55c('0x0'));var ChatMessage=require(_0xb55c('0x1'))['db'][_0xb55c('0x2')];var ChatMessageEvents=new EventEmitter();ChatMessageEvents[_0xb55c('0x3')](0x0);var events={'afterCreate':'save','afterUpdate':'update','afterDestroy':_0xb55c('0x4')};function emitEvent(_0x4ae184){return function(_0x5391bc,_0x4fce5b,_0x57f550){ChatMessageEvents[_0xb55c('0x5')](_0x4ae184+':'+_0x5391bc['id'],_0x5391bc);ChatMessageEvents[_0xb55c('0x5')](_0x4ae184,_0x5391bc);_0x57f550(null);};}for(var e in events){if(events[_0xb55c('0x6')](e)){var event=events[e];ChatMessage[_0xb55c('0x7')](e,emitEvent(event));}}module['exports']=ChatMessageEvents;
\ No newline at end of file
+var _0xeefb=['events','../../mysqldb','ChatMessage','save','update','remove','emit','hook','exports'];(function(_0x669b35,_0x4d8403){var _0x34b763=function(_0x2f38e8){while(--_0x2f38e8){_0x669b35['push'](_0x669b35['shift']());}};_0x34b763(++_0x4d8403);}(_0xeefb,0x171));var _0xbeef=function(_0x25e7cb,_0x3579b7){_0x25e7cb=_0x25e7cb-0x0;var _0x375d92=_0xeefb[_0x25e7cb];return _0x375d92;};'use strict';var EventEmitter=require(_0xbeef('0x0'));var ChatMessage=require(_0xbeef('0x1'))['db'][_0xbeef('0x2')];var ChatMessageEvents=new EventEmitter();ChatMessageEvents['setMaxListeners'](0x0);var events={'afterCreate':_0xbeef('0x3'),'afterUpdate':_0xbeef('0x4'),'afterDestroy':_0xbeef('0x5')};function emitEvent(_0x3c5ed5){return function(_0x1dbce1,_0x3ffc59,_0x3562e6){ChatMessageEvents[_0xbeef('0x6')](_0x3c5ed5+':'+_0x1dbce1['id'],_0x1dbce1);ChatMessageEvents[_0xbeef('0x6')](_0x3c5ed5,_0x1dbce1);_0x3562e6(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];ChatMessage[_0xbeef('0x7')](e,emitEvent(event));}}module[_0xbeef('0x8')]=ChatMessageEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x75f0=['models','direction','toLowerCase','out','secret','isNil','UserId','ChatInteraction','findOne','ChatInteractionId','then','update','createdAt','utf8mb4_unicode_ci','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','./chatMessage.attributes','exports','ChatMessage','fti_chat_messages','body'];(function(_0x218994,_0x2cf487){var _0x3f350b=function(_0x2e2065){while(--_0x2e2065){_0x218994['push'](_0x218994['shift']());}};_0x3f350b(++_0x2cf487);}(_0x75f0,0x196));var _0x075f=function(_0x56a134,_0x43dd53){_0x56a134=_0x56a134-0x0;var _0x59d056=_0x75f0[_0x56a134];return _0x59d056;};'use strict';var _=require(_0x075f('0x0'));var util=require(_0x075f('0x1'));var logger=require(_0x075f('0x2'))(_0x075f('0x3'));var moment=require(_0x075f('0x4'));var BPromise=require(_0x075f('0x5'));var rp=require(_0x075f('0x6'));var fs=require('fs');var path=require(_0x075f('0x7'));var rimraf=require(_0x075f('0x8'));var config=require('../../config/environment');var attributes=require(_0x075f('0x9'));module[_0x075f('0xa')]=function(_0x1270b4,_0x590f0e){return _0x1270b4['define'](_0x075f('0xb'),attributes,{'tableName':'chat_messages','paranoid':![],'indexes':[{'name':_0x075f('0xc'),'fields':[_0x075f('0xd')],'type':'FULLTEXT'}],'timestamps':!![],'hooks':{'afterCreate':function(_0x21018c,_0x22c214,_0x272ec1){var _0x137445=_0x1270b4[_0x075f('0xe')];var _0x599f6b=_0x21018c['get']({'plain':!![]});if(_0x599f6b[_0x075f('0xf')][_0x075f('0x10')]()==='in'||_0x599f6b[_0x075f('0xf')][_0x075f('0x10')]()===_0x075f('0x11')&&!_0x599f6b[_0x075f('0x12')]&&!_[_0x075f('0x13')](_0x599f6b[_0x075f('0x14')])){_0x137445[_0x075f('0x15')][_0x075f('0x16')]({'where':{'id':_0x599f6b[_0x075f('0x17')]}})[_0x075f('0x18')](function(_0x255fe7){if(_0x255fe7){_0x255fe7[_0x075f('0x19')]({'lastMsgAt':_0x599f6b[_0x075f('0x1a')],'lastMsgDirection':_0x599f6b[_0x075f('0xf')][_0x075f('0x10')]()});}})['catch'](function(_0x3a9807){console['error'](_0x3a9807);});}_0x272ec1();}},'charset':'utf8mb4','collate':_0x075f('0x1b')});};
\ No newline at end of file
+var _0x335f=['chat_messages','fti_chat_messages','body','FULLTEXT','get','toLowerCase','direction','out','isNil','UserId','ChatInteraction','findOne','then','update','createdAt','catch','error','utf8mb4','utf8mb4_unicode_ci','lodash','util','../../config/logger','api','bluebird','path','rimraf','../../config/environment','./chatMessage.attributes','exports'];(function(_0x19950b,_0x53d0d7){var _0x3c6b41=function(_0x3924ad){while(--_0x3924ad){_0x19950b['push'](_0x19950b['shift']());}};_0x3c6b41(++_0x53d0d7);}(_0x335f,0xfb));var _0xf335=function(_0x1e9267,_0x1c47bc){_0x1e9267=_0x1e9267-0x0;var _0x170684=_0x335f[_0x1e9267];return _0x170684;};'use strict';var _=require(_0xf335('0x0'));var util=require(_0xf335('0x1'));var logger=require(_0xf335('0x2'))(_0xf335('0x3'));var moment=require('moment');var BPromise=require(_0xf335('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xf335('0x5'));var rimraf=require(_0xf335('0x6'));var config=require(_0xf335('0x7'));var attributes=require(_0xf335('0x8'));module[_0xf335('0x9')]=function(_0x386c51,_0x2621fe){return _0x386c51['define']('ChatMessage',attributes,{'tableName':_0xf335('0xa'),'paranoid':![],'indexes':[{'name':_0xf335('0xb'),'fields':[_0xf335('0xc')],'type':_0xf335('0xd')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x1e802a,_0x8d63a4,_0x3e349b){var _0x2b1976=_0x386c51['models'];var _0x7387a5=_0x1e802a[_0xf335('0xe')]({'plain':!![]});if(_0x7387a5['direction'][_0xf335('0xf')]()==='in'||_0x7387a5[_0xf335('0x10')][_0xf335('0xf')]()===_0xf335('0x11')&&!_0x7387a5['secret']&&!_[_0xf335('0x12')](_0x7387a5[_0xf335('0x13')])){_0x2b1976[_0xf335('0x14')][_0xf335('0x15')]({'where':{'id':_0x7387a5['ChatInteractionId']}})[_0xf335('0x16')](function(_0x638399){if(_0x638399){_0x638399[_0xf335('0x17')]({'lastMsgAt':_0x7387a5[_0xf335('0x18')],'lastMsgDirection':_0x7387a5[_0xf335('0x10')][_0xf335('0xf')]()});}})[_0xf335('0x19')](function(_0x36b0f0){console[_0xf335('0x1a')](_0x36b0f0);});}_0x3e349b();}},'charset':_0xf335('0x1b'),'collate':_0xf335('0x1c')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xad99=['raw','util','moment','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','client','redis','defaults','socket.io-emitter','request','then','info','request\x20sent','debug','stringify','error','ChatMessage,\x20%s,\x20%s','message','result','catch','CreateChatMessage','ChatMessage','create','body','options'];(function(_0x12fe24,_0x4061cd){var _0x309501=function(_0x2c91d8){while(--_0x2c91d8){_0x12fe24['push'](_0x12fe24['shift']());}};_0x309501(++_0x4061cd);}(_0xad99,0xa9));var _0x9ad9=function(_0x20dc4e,_0x51ba7d){_0x20dc4e=_0x20dc4e-0x0;var _0x4a3739=_0xad99[_0x20dc4e];return _0x4a3739;};'use strict';var _=require('lodash');var util=require(_0x9ad9('0x0'));var moment=require(_0x9ad9('0x1'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x9ad9('0x2'));var db=require(_0x9ad9('0x3'))['db'];var utils=require(_0x9ad9('0x4'));var logger=require(_0x9ad9('0x5'))('rpc');var config=require(_0x9ad9('0x6'));var jayson=require('jayson/promise');var client=jayson[_0x9ad9('0x7')]['http']({'port':0x232a});config[_0x9ad9('0x8')]=_[_0x9ad9('0x9')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0x9ad9('0xa'))(new Redis(config['redis']));require('./chatMessage.socket')['register'](socket);function respondWithRpcPromise(_0x5a55a0,_0x583089,_0x45bd71){return new BPromise(function(_0xedd936,_0x2ffb1c){return client[_0x9ad9('0xb')](_0x5a55a0,_0x45bd71)[_0x9ad9('0xc')](function(_0x1b21ed){logger[_0x9ad9('0xd')]('ChatMessage,\x20%s,\x20%s',_0x583089,_0x9ad9('0xe'));logger[_0x9ad9('0xf')]('ChatMessage,\x20%s,\x20%s,\x20%s',_0x583089,_0x9ad9('0xe'),JSON[_0x9ad9('0x10')](_0x1b21ed));if(_0x1b21ed[_0x9ad9('0x11')]){if(_0x1b21ed[_0x9ad9('0x11')]['code']===0x1f4){logger[_0x9ad9('0x11')](_0x9ad9('0x12'),_0x583089,_0x1b21ed[_0x9ad9('0x11')][_0x9ad9('0x13')]);return _0x2ffb1c(_0x1b21ed[_0x9ad9('0x11')]['message']);}logger[_0x9ad9('0x11')](_0x9ad9('0x12'),_0x583089,_0x1b21ed[_0x9ad9('0x11')]['message']);return _0xedd936(_0x1b21ed[_0x9ad9('0x11')][_0x9ad9('0x13')]);}else{logger[_0x9ad9('0xd')](_0x9ad9('0x12'),_0x583089,_0x9ad9('0xe'));_0xedd936(_0x1b21ed[_0x9ad9('0x14')][_0x9ad9('0x13')]);}})[_0x9ad9('0x15')](function(_0x490e27){logger[_0x9ad9('0x11')](_0x9ad9('0x12'),_0x583089,_0x490e27);_0x2ffb1c(_0x490e27);});});}exports[_0x9ad9('0x16')]=function(_0x5daf17){var _0x3f5070=this;return new Promise(function(_0x5190b2,_0x1238f1){return db[_0x9ad9('0x17')][_0x9ad9('0x18')](_0x5daf17[_0x9ad9('0x19')],{'raw':_0x5daf17[_0x9ad9('0x1a')]?_0x5daf17[_0x9ad9('0x1a')][_0x9ad9('0x1b')]===undefined?!![]:![]:!![]})[_0x9ad9('0xc')](function(_0x35677a){logger[_0x9ad9('0xd')](_0x9ad9('0x16'),_0x5daf17);logger[_0x9ad9('0xf')]('CreateChatMessage',_0x5daf17,JSON['stringify'](_0x35677a));_0x5190b2(_0x35677a);})[_0x9ad9('0x15')](function(_0xd5fd68){logger[_0x9ad9('0x11')](_0x9ad9('0x16'),_0xd5fd68[_0x9ad9('0x13')],_0x5daf17);_0x1238f1(_0x3f5070['error'](0x1f4,_0xd5fd68[_0x9ad9('0x13')]));});});};
\ No newline at end of file
+var _0x8980=['CreateChatMessage','create','body','options','lodash','bluebird','randomstring','../../mysqldb','../../config/logger','../../config/environment','jayson/promise','client','http','redis','defaults','socket.io-emitter','./chatMessage.socket','request','then','info','ChatMessage,\x20%s,\x20%s','debug','ChatMessage,\x20%s,\x20%s,\x20%s','stringify','error','message','request\x20sent','result','catch'];(function(_0x18b569,_0x233be1){var _0x5c8671=function(_0xbf83d9){while(--_0xbf83d9){_0x18b569['push'](_0x18b569['shift']());}};_0x5c8671(++_0x233be1);}(_0x8980,0x143));var _0x0898=function(_0x3e7555,_0x442ce2){_0x3e7555=_0x3e7555-0x0;var _0x3719e9=_0x8980[_0x3e7555];return _0x3719e9;};'use strict';var _=require(_0x0898('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0x0898('0x1'));var rs=require(_0x0898('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x0898('0x3'))['db'];var utils=require('../../config/utils');var logger=require(_0x0898('0x4'))('rpc');var config=require(_0x0898('0x5'));var jayson=require(_0x0898('0x6'));var client=jayson[_0x0898('0x7')][_0x0898('0x8')]({'port':0x232a});config[_0x0898('0x9')]=_[_0x0898('0xa')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0x0898('0xb'))(new Redis(config[_0x0898('0x9')]));require(_0x0898('0xc'))['register'](socket);function respondWithRpcPromise(_0x106220,_0x5430e2,_0x50b971){return new BPromise(function(_0x2b8e07,_0x1cecb8){return client[_0x0898('0xd')](_0x106220,_0x50b971)[_0x0898('0xe')](function(_0x18b29d){logger[_0x0898('0xf')](_0x0898('0x10'),_0x5430e2,'request\x20sent');logger[_0x0898('0x11')](_0x0898('0x12'),_0x5430e2,'request\x20sent',JSON[_0x0898('0x13')](_0x18b29d));if(_0x18b29d['error']){if(_0x18b29d[_0x0898('0x14')]['code']===0x1f4){logger['error'](_0x0898('0x10'),_0x5430e2,_0x18b29d[_0x0898('0x14')][_0x0898('0x15')]);return _0x1cecb8(_0x18b29d['error'][_0x0898('0x15')]);}logger['error'](_0x0898('0x10'),_0x5430e2,_0x18b29d[_0x0898('0x14')][_0x0898('0x15')]);return _0x2b8e07(_0x18b29d['error'][_0x0898('0x15')]);}else{logger[_0x0898('0xf')](_0x0898('0x10'),_0x5430e2,_0x0898('0x16'));_0x2b8e07(_0x18b29d[_0x0898('0x17')][_0x0898('0x15')]);}})[_0x0898('0x18')](function(_0x597193){logger[_0x0898('0x14')](_0x0898('0x10'),_0x5430e2,_0x597193);_0x1cecb8(_0x597193);});});}exports[_0x0898('0x19')]=function(_0x37f038){var _0x290fde=this;return new Promise(function(_0x391bd9,_0x1b26dd){return db['ChatMessage'][_0x0898('0x1a')](_0x37f038[_0x0898('0x1b')],{'raw':_0x37f038['options']?_0x37f038[_0x0898('0x1c')]['raw']===undefined?!![]:![]:!![]})['then'](function(_0x4bd79e){logger[_0x0898('0xf')](_0x0898('0x19'),_0x37f038);logger['debug'](_0x0898('0x19'),_0x37f038,JSON[_0x0898('0x13')](_0x4bd79e));_0x391bd9(_0x4bd79e);})[_0x0898('0x18')](function(_0x25db53){logger['error'](_0x0898('0x19'),_0x25db53[_0x0898('0x15')],_0x37f038);_0x1b26dd(_0x290fde['error'](0x1f4,_0x25db53[_0x0898('0x15')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xda19=['removeListener','register','length','save','remove'];(function(_0x5b27da,_0x4a6532){var _0x3254f4=function(_0x4194c6){while(--_0x4194c6){_0x5b27da['push'](_0x5b27da['shift']());}};_0x3254f4(++_0x4a6532);}(_0xda19,0xd5));var _0x9da1=function(_0x1f7efc,_0x410073){_0x1f7efc=_0x1f7efc-0x0;var _0x2aecf5=_0xda19[_0x1f7efc];return _0x2aecf5;};'use strict';var ChatMessageEvents=require('./chatMessage.events');var events=[_0x9da1('0x0'),_0x9da1('0x1'),'update'];function createListener(_0x175479,_0x503770){return function(_0x435076){_0x503770['emit'](_0x175479,_0x435076);};}function removeListener(_0x2a77c7,_0xef6f5a){return function(){ChatMessageEvents[_0x9da1('0x2')](_0x2a77c7,_0xef6f5a);};}exports[_0x9da1('0x3')]=function(_0x156faf){for(var _0x2dcbc6=0x0,_0x23e4f7=events[_0x9da1('0x4')];_0x2dcbc6<_0x23e4f7;_0x2dcbc6++){var _0x1c24e6=events[_0x2dcbc6];var _0x5e2d18=createListener('chatMessage:'+_0x1c24e6,_0x156faf);ChatMessageEvents['on'](_0x1c24e6,_0x5e2d18);}};
\ No newline at end of file
+var _0x5075=['chatMessage:','./chatMessage.events','save','remove','update','removeListener'];(function(_0x3e99cb,_0x1d2fe0){var _0x1bc729=function(_0x40006f){while(--_0x40006f){_0x3e99cb['push'](_0x3e99cb['shift']());}};_0x1bc729(++_0x1d2fe0);}(_0x5075,0x73));var _0x5507=function(_0x13211b,_0x3050c2){_0x13211b=_0x13211b-0x0;var _0x4adb44=_0x5075[_0x13211b];return _0x4adb44;};'use strict';var ChatMessageEvents=require(_0x5507('0x0'));var events=[_0x5507('0x1'),_0x5507('0x2'),_0x5507('0x3')];function createListener(_0x3ec62f,_0x2b444e){return function(_0x1facf6){_0x2b444e['emit'](_0x3ec62f,_0x1facf6);};}function removeListener(_0x3e96ee,_0x19a7ab){return function(){ChatMessageEvents[_0x5507('0x4')](_0x3e96ee,_0x19a7ab);};}exports['register']=function(_0x5b6d7f){for(var _0x2cd9ee=0x0,_0x773559=events['length'];_0x2cd9ee<_0x773559;_0x2cd9ee++){var _0x42c232=events[_0x2cd9ee];var _0x7cc84c=createListener(_0x5507('0x5')+_0x42c232,_0x5b6d7f);ChatMessageEvents['on'](_0x42c232,_0x7cc84c);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc8ae=['reject','delete','destroy','exports','multer','util','path','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./chatMessage.controller','index','/describe','describe','/:id','isAuthenticated','show','tracked','chat','create','put','/:id/accept','/:id/reject'];(function(_0x294cf1,_0x5d6a40){var _0x334402=function(_0x5b07f0){while(--_0x5b07f0){_0x294cf1['push'](_0x294cf1['shift']());}};_0x334402(++_0x5d6a40);}(_0xc8ae,0x86));var _0xec8a=function(_0x50cc88,_0x129329){_0x50cc88=_0x50cc88-0x0;var _0x4c46fa=_0xc8ae[_0x50cc88];return _0x4c46fa;};'use strict';var multer=require(_0xec8a('0x0'));var util=require(_0xec8a('0x1'));var path=require(_0xec8a('0x2'));var timeout=require('connect-timeout');var express=require(_0xec8a('0x3'));var router=express[_0xec8a('0x4')]();var fs_extra=require(_0xec8a('0x5'));var auth=require(_0xec8a('0x6'));var interaction=require(_0xec8a('0x7'));var config=require(_0xec8a('0x8'));var controller=require(_0xec8a('0x9'));router['get']('/',auth['isAuthenticated'](),controller[_0xec8a('0xa')]);router['get'](_0xec8a('0xb'),auth['isAuthenticated'](),controller[_0xec8a('0xc')]);router['get'](_0xec8a('0xd'),auth[_0xec8a('0xe')](),controller[_0xec8a('0xf')]);router['post']('/',auth[_0xec8a('0xe')](),interaction[_0xec8a('0x10')](_0xec8a('0x11'),'chatmessage:create'),controller[_0xec8a('0x12')]);router[_0xec8a('0x13')](_0xec8a('0xd'),controller['update']);router[_0xec8a('0x13')](_0xec8a('0x14'),auth['isAuthenticated'](),controller['accept']);router['put'](_0xec8a('0x15'),auth['isAuthenticated'](),controller[_0xec8a('0x16')]);router[_0xec8a('0x17')](_0xec8a('0xd'),auth['isAuthenticated'](),controller[_0xec8a('0x18')]);module[_0xec8a('0x19')]=router;
\ No newline at end of file
+var _0xf33b=['destroy','exports','util','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../config/environment','./chatMessage.controller','index','/describe','isAuthenticated','describe','get','/:id','show','post','chat','create','put','update','/:id/accept','reject','delete'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xf33b,0x12e));var _0xbf33=function(_0x254b22,_0x27159f){_0x254b22=_0x254b22-0x0;var _0x1279db=_0xf33b[_0x254b22];return _0x1279db;};'use strict';var multer=require('multer');var util=require(_0xbf33('0x0'));var path=require(_0xbf33('0x1'));var timeout=require(_0xbf33('0x2'));var express=require('express');var router=express[_0xbf33('0x3')]();var fs_extra=require(_0xbf33('0x4'));var auth=require(_0xbf33('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0xbf33('0x6'));var controller=require(_0xbf33('0x7'));router['get']('/',auth['isAuthenticated'](),controller[_0xbf33('0x8')]);router['get'](_0xbf33('0x9'),auth[_0xbf33('0xa')](),controller[_0xbf33('0xb')]);router[_0xbf33('0xc')](_0xbf33('0xd'),auth[_0xbf33('0xa')](),controller[_0xbf33('0xe')]);router[_0xbf33('0xf')]('/',auth['isAuthenticated'](),interaction['tracked'](_0xbf33('0x10'),'chatmessage:create'),controller[_0xbf33('0x11')]);router[_0xbf33('0x12')](_0xbf33('0xd'),controller[_0xbf33('0x13')]);router[_0xbf33('0x12')](_0xbf33('0x14'),auth[_0xbf33('0xa')](),controller['accept']);router[_0xbf33('0x12')]('/:id/reject',auth['isAuthenticated'](),controller[_0xbf33('0x15')]);router[_0xbf33('0x16')](_0xbf33('0xd'),auth[_0xbf33('0xa')](),controller[_0xbf33('0x17')]);module[_0xbf33('0x18')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xba26=['medium','TEXT'];(function(_0x59cc2f,_0x40ad99){var _0x136c14=function(_0x423385){while(--_0x423385){_0x59cc2f['push'](_0x59cc2f['shift']());}};_0x136c14(++_0x40ad99);}(_0xba26,0x1c9));var _0x6ba2=function(_0x203c05,_0x584521){_0x203c05=_0x203c05-0x0;var _0x43a504=_0xba26[_0x203c05];return _0x43a504;};'use strict';var Sequelize=require('sequelize');module['exports']={'body':{'type':Sequelize[_0x6ba2('0x0')](_0x6ba2('0x1')),'allowNull':![]}};
\ No newline at end of file
+var _0xd9b4=['sequelize','exports','TEXT','medium'];(function(_0x3df223,_0x1740fc){var _0x562d11=function(_0x343009){while(--_0x343009){_0x3df223['push'](_0x3df223['shift']());}};_0x562d11(++_0x1740fc);}(_0xd9b4,0x1bc));var _0x4d9b=function(_0x351be1,_0x20d3f0){_0x351be1=_0x351be1-0x0;var _0x15392d=_0xd9b4[_0x351be1];return _0x15392d;};'use strict';var Sequelize=require(_0x4d9b('0x0'));module[_0x4d9b('0x1')]={'body':{'type':Sequelize[_0x4d9b('0x2')](_0x4d9b('0x3')),'allowNull':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-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(_0x4ecfcf,_0x75570c){var _0x17e4bd=function(_0x5bc830){while(--_0x5bc830){_0x4ecfcf['push'](_0x4ecfcf['shift']());}};_0x17e4bd(++_0x75570c);}(_0x9957,0x93));var _0x7995=function(_0x6131cd,_0x4c26a1){_0x6131cd=_0x6131cd-0x0;var _0x47e916=_0x9957[_0x6131cd];return _0x47e916;};'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
+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(_0x34bf97,_0xc60f9d){var _0x292719=function(_0x31354e){while(--_0x31354e){_0x34bf97['push'](_0x34bf97['shift']());}};_0x292719(++_0xc60f9d);}(_0x7a54,0x106));var _0x47a5=function(_0x50804f,_0x51248c){_0x50804f=_0x50804f-0x0;var _0xca6080=_0x7a54[_0x50804f];return _0xca6080;};'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
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1eb5=['define','chat_offline_messages','utf8mb4','lodash','util','../../config/logger','api','moment','bluebird','request-promise','rimraf','../../config/environment','./chatOfflineMessage.attributes','exports'];(function(_0x1216ca,_0x3c104e){var _0x3ba001=function(_0x473886){while(--_0x473886){_0x1216ca['push'](_0x1216ca['shift']());}};_0x3ba001(++_0x3c104e);}(_0x1eb5,0x161));var _0x51eb=function(_0x1102fb,_0xe7afb7){_0x1102fb=_0x1102fb-0x0;var _0x29547a=_0x1eb5[_0x1102fb];return _0x29547a;};'use strict';var _=require(_0x51eb('0x0'));var util=require(_0x51eb('0x1'));var logger=require(_0x51eb('0x2'))(_0x51eb('0x3'));var moment=require(_0x51eb('0x4'));var BPromise=require(_0x51eb('0x5'));var rp=require(_0x51eb('0x6'));var fs=require('fs');var path=require('path');var rimraf=require(_0x51eb('0x7'));var config=require(_0x51eb('0x8'));var attributes=require(_0x51eb('0x9'));module[_0x51eb('0xa')]=function(_0x107fdb,_0xd21f63){return _0x107fdb[_0x51eb('0xb')]('ChatOfflineMessage',attributes,{'tableName':_0x51eb('0xc'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0x51eb('0xd'),'collate':'utf8mb4_unicode_ci'});};
\ No newline at end of file
+var _0x6300=['../../config/environment','./chatOfflineMessage.attributes','chat_offline_messages','utf8mb4_unicode_ci','lodash','util','api','moment','bluebird','request-promise','path','rimraf'];(function(_0x43a6cd,_0x503d1a){var _0x5acb36=function(_0x2dd95e){while(--_0x2dd95e){_0x43a6cd['push'](_0x43a6cd['shift']());}};_0x5acb36(++_0x503d1a);}(_0x6300,0x184));var _0x0630=function(_0x2cf505,_0x190d2e){_0x2cf505=_0x2cf505-0x0;var _0x24dab1=_0x6300[_0x2cf505];return _0x24dab1;};'use strict';var _=require(_0x0630('0x0'));var util=require(_0x0630('0x1'));var logger=require('../../config/logger')(_0x0630('0x2'));var moment=require(_0x0630('0x3'));var BPromise=require(_0x0630('0x4'));var rp=require(_0x0630('0x5'));var fs=require('fs');var path=require(_0x0630('0x6'));var rimraf=require(_0x0630('0x7'));var config=require(_0x0630('0x8'));var attributes=require(_0x0630('0x9'));module['exports']=function(_0x405b75,_0x2fdaa4){return _0x405b75['define']('ChatOfflineMessage',attributes,{'tableName':_0x0630('0xa'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':'utf8mb4','collate':_0x0630('0xb')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x18ae=['../../config/environment','jayson/promise','client','http','request','then','info','ChatOfflineMessage,\x20%s,\x20%s','debug','ChatOfflineMessage,\x20%s,\x20%s,\x20%s','request\x20sent','error','code','message','result','catch','lodash','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc'];(function(_0x27e6f8,_0x222163){var _0x20b286=function(_0x4fe4a8){while(--_0x4fe4a8){_0x27e6f8['push'](_0x27e6f8['shift']());}};_0x20b286(++_0x222163);}(_0x18ae,0x1c5));var _0xe18a=function(_0x514260,_0x1891e1){_0x514260=_0x514260-0x0;var _0x4ac81b=_0x18ae[_0x514260];return _0x4ac81b;};'use strict';var _=require(_0xe18a('0x0'));var util=require('util');var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0xe18a('0x1'));var fs=require('fs');var Redis=require(_0xe18a('0x2'));var db=require(_0xe18a('0x3'))['db'];var utils=require(_0xe18a('0x4'));var logger=require(_0xe18a('0x5'))(_0xe18a('0x6'));var config=require(_0xe18a('0x7'));var jayson=require(_0xe18a('0x8'));var client=jayson[_0xe18a('0x9')][_0xe18a('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x2e33bc,_0x3f1ece,_0x57be40){return new BPromise(function(_0x5cbc3c,_0x20bb02){return client[_0xe18a('0xb')](_0x2e33bc,_0x57be40)[_0xe18a('0xc')](function(_0x3be998){logger[_0xe18a('0xd')](_0xe18a('0xe'),_0x3f1ece,'request\x20sent');logger[_0xe18a('0xf')](_0xe18a('0x10'),_0x3f1ece,_0xe18a('0x11'),JSON['stringify'](_0x3be998));if(_0x3be998[_0xe18a('0x12')]){if(_0x3be998[_0xe18a('0x12')][_0xe18a('0x13')]===0x1f4){logger[_0xe18a('0x12')](_0xe18a('0xe'),_0x3f1ece,_0x3be998[_0xe18a('0x12')][_0xe18a('0x14')]);return _0x20bb02(_0x3be998[_0xe18a('0x12')][_0xe18a('0x14')]);}logger[_0xe18a('0x12')](_0xe18a('0xe'),_0x3f1ece,_0x3be998[_0xe18a('0x12')][_0xe18a('0x14')]);return _0x5cbc3c(_0x3be998['error']['message']);}else{logger[_0xe18a('0xd')](_0xe18a('0xe'),_0x3f1ece,_0xe18a('0x11'));_0x5cbc3c(_0x3be998[_0xe18a('0x15')][_0xe18a('0x14')]);}})[_0xe18a('0x16')](function(_0x9ac766){logger[_0xe18a('0x12')](_0xe18a('0xe'),_0x3f1ece,_0x9ac766);_0x20bb02(_0x9ac766);});});}
\ No newline at end of file
+var _0xbb07=['lodash','util','moment','bluebird','randomstring','ioredis','../../config/utils','rpc','../../config/environment','http','then','info','ChatOfflineMessage,\x20%s,\x20%s','request\x20sent','debug','stringify','error','message','result','catch'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xbb07,0xf0));var _0x7bb0=function(_0x476137,_0x1ccb32){_0x476137=_0x476137-0x0;var _0x5acaf8=_0xbb07[_0x476137];return _0x5acaf8;};'use strict';var _=require(_0x7bb0('0x0'));var util=require(_0x7bb0('0x1'));var moment=require(_0x7bb0('0x2'));var BPromise=require(_0x7bb0('0x3'));var rs=require(_0x7bb0('0x4'));var fs=require('fs');var Redis=require(_0x7bb0('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0x7bb0('0x6'));var logger=require('../../config/logger')(_0x7bb0('0x7'));var config=require(_0x7bb0('0x8'));var jayson=require('jayson/promise');var client=jayson['client'][_0x7bb0('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x29bda7,_0x2c6a6a,_0x24328b){return new BPromise(function(_0x4a43b5,_0x12b09f){return client['request'](_0x29bda7,_0x24328b)[_0x7bb0('0xa')](function(_0x4dd7a4){logger[_0x7bb0('0xb')](_0x7bb0('0xc'),_0x2c6a6a,_0x7bb0('0xd'));logger[_0x7bb0('0xe')]('ChatOfflineMessage,\x20%s,\x20%s,\x20%s',_0x2c6a6a,_0x7bb0('0xd'),JSON[_0x7bb0('0xf')](_0x4dd7a4));if(_0x4dd7a4[_0x7bb0('0x10')]){if(_0x4dd7a4[_0x7bb0('0x10')]['code']===0x1f4){logger[_0x7bb0('0x10')](_0x7bb0('0xc'),_0x2c6a6a,_0x4dd7a4[_0x7bb0('0x10')][_0x7bb0('0x11')]);return _0x12b09f(_0x4dd7a4[_0x7bb0('0x10')][_0x7bb0('0x11')]);}logger[_0x7bb0('0x10')](_0x7bb0('0xc'),_0x2c6a6a,_0x4dd7a4['error']['message']);return _0x4a43b5(_0x4dd7a4['error'][_0x7bb0('0x11')]);}else{logger[_0x7bb0('0xb')]('ChatOfflineMessage,\x20%s,\x20%s',_0x2c6a6a,_0x7bb0('0xd'));_0x4a43b5(_0x4dd7a4[_0x7bb0('0x12')][_0x7bb0('0x11')]);}})[_0x7bb0('0x13')](function(_0x615fb3){logger[_0x7bb0('0x10')](_0x7bb0('0xc'),_0x2c6a6a,_0x615fb3);_0x12b09f(_0x615fb3);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd7cd=['../../config/environment','./chatOfflineMessage.controller','get','index','/describe','isAuthenticated','describe','/:id','show','post','create','update','delete','destroy','exports','multer','util','path','express','fs-extra'];(function(_0x2555d0,_0x4150a6){var _0x3bb486=function(_0x1eb89f){while(--_0x1eb89f){_0x2555d0['push'](_0x2555d0['shift']());}};_0x3bb486(++_0x4150a6);}(_0xd7cd,0x18b));var _0xdd7c=function(_0x457169,_0x1cdb9a){_0x457169=_0x457169-0x0;var _0x36ea37=_0xd7cd[_0x457169];return _0x36ea37;};'use strict';var multer=require(_0xdd7c('0x0'));var util=require(_0xdd7c('0x1'));var path=require(_0xdd7c('0x2'));var timeout=require('connect-timeout');var express=require(_0xdd7c('0x3'));var router=express['Router']();var fs_extra=require(_0xdd7c('0x4'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0xdd7c('0x5'));var controller=require(_0xdd7c('0x6'));router[_0xdd7c('0x7')]('/',auth['isAuthenticated'](),controller[_0xdd7c('0x8')]);router[_0xdd7c('0x7')](_0xdd7c('0x9'),auth[_0xdd7c('0xa')](),controller[_0xdd7c('0xb')]);router['get'](_0xdd7c('0xc'),auth[_0xdd7c('0xa')](),controller[_0xdd7c('0xd')]);router[_0xdd7c('0xe')]('/',auth['isAuthenticated'](),controller[_0xdd7c('0xf')]);router['put']('/:id',auth[_0xdd7c('0xa')](),controller[_0xdd7c('0x10')]);router[_0xdd7c('0x11')](_0xdd7c('0xc'),auth[_0xdd7c('0xa')](),controller[_0xdd7c('0x12')]);module[_0xdd7c('0x13')]=router;
\ No newline at end of file
+var _0x01d2=['update','delete','destroy','exports','multer','util','connect-timeout','express','Router','../../components/interaction/service','../../config/environment','./chatOfflineMessage.controller','isAuthenticated','index','get','/describe','describe','/:id','show','post','create','put'];(function(_0x68e096,_0x323112){var _0x54f060=function(_0x56df2a){while(--_0x56df2a){_0x68e096['push'](_0x68e096['shift']());}};_0x54f060(++_0x323112);}(_0x01d2,0x72));var _0x201d=function(_0x91641d,_0x1cec7d){_0x91641d=_0x91641d-0x0;var _0x28d741=_0x01d2[_0x91641d];return _0x28d741;};'use strict';var multer=require(_0x201d('0x0'));var util=require(_0x201d('0x1'));var path=require('path');var timeout=require(_0x201d('0x2'));var express=require(_0x201d('0x3'));var router=express[_0x201d('0x4')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0x201d('0x5'));var config=require(_0x201d('0x6'));var controller=require(_0x201d('0x7'));router['get']('/',auth[_0x201d('0x8')](),controller[_0x201d('0x9')]);router[_0x201d('0xa')](_0x201d('0xb'),auth[_0x201d('0x8')](),controller[_0x201d('0xc')]);router['get'](_0x201d('0xd'),auth[_0x201d('0x8')](),controller[_0x201d('0xe')]);router[_0x201d('0xf')]('/',auth[_0x201d('0x8')](),controller[_0x201d('0x10')]);router[_0x201d('0x11')](_0x201d('0xd'),auth[_0x201d('0x8')](),controller[_0x201d('0x12')]);router[_0x201d('0x13')](_0x201d('0xd'),auth[_0x201d('0x8')](),controller[_0x201d('0x14')]);module[_0x201d('0x15')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x510f=['timeout','mouseOver','STRING','INTEGER','exports','ENUM'];(function(_0x322e05,_0x38c7ea){var _0x4129df=function(_0x51c169){while(--_0x51c169){_0x322e05['push'](_0x322e05['shift']());}};_0x4129df(++_0x38c7ea);}(_0x510f,0x130));var _0xf510=function(_0x37c22c,_0x28a70d){_0x37c22c=_0x37c22c-0x0;var _0x119d79=_0x510f[_0x37c22c];return _0x119d79;};'use strict';var Sequelize=require('sequelize');module[_0xf510('0x0')]={'name':{'type':Sequelize['STRING'],'allowNull':![]},'type':{'type':Sequelize[_0xf510('0x1')]('mouseOver',_0xf510('0x2')),'defaultValue':_0xf510('0x3')},'selector':{'type':Sequelize[_0xf510('0x4')]},'timeout':{'type':Sequelize[_0xf510('0x5')]}};
\ No newline at end of file
+var _0x4437=['INTEGER','sequelize','exports','STRING','timeout'];(function(_0x1f7c93,_0x1143e0){var _0x1be7e9=function(_0x5252a6){while(--_0x5252a6){_0x1f7c93['push'](_0x1f7c93['shift']());}};_0x1be7e9(++_0x1143e0);}(_0x4437,0x1d7));var _0x7443=function(_0x4d4b0e,_0x522326){_0x4d4b0e=_0x4d4b0e-0x0;var _0x5324a2=_0x4437[_0x4d4b0e];return _0x5324a2;};'use strict';var Sequelize=require(_0x7443('0x0'));module[_0x7443('0x1')]={'name':{'type':Sequelize[_0x7443('0x2')],'allowNull':![]},'type':{'type':Sequelize['ENUM']('mouseOver',_0x7443('0x3')),'defaultValue':'mouseOver'},'selector':{'type':Sequelize[_0x7443('0x2')]},'timeout':{'type':Sequelize[_0x7443('0x4')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xea44=['includeAll','include','options','catch','create','body','find','params','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','limit','count','set','Content-Range','apply','reject','update','then','destroy','error','name','send','model','keys','ChatProactiveAction','rawAttributes','query','filters','intersection','attributes','fields'];(function(_0x1f52b5,_0x2433a6){var _0x16b2ff=function(_0x43a3df){while(--_0x43a3df){_0x1f52b5['push'](_0x1f52b5['shift']());}};_0x16b2ff(++_0x2433a6);}(_0xea44,0x1a5));var _0x4ea4=function(_0x90200f,_0x295ca6){_0x90200f=_0x90200f-0x0;var _0x4db1cb=_0xea44[_0x90200f];return _0x4db1cb;};'use strict';var emlformat=require(_0x4ea4('0x0'));var rimraf=require(_0x4ea4('0x1'));var zipdir=require(_0x4ea4('0x2'));var jsonpatch=require(_0x4ea4('0x3'));var rp=require('request-promise');var moment=require(_0x4ea4('0x4'));var BPromise=require(_0x4ea4('0x5'));var Mustache=require('mustache');var util=require(_0x4ea4('0x6'));var path=require(_0x4ea4('0x7'));var sox=require(_0x4ea4('0x8'));var csv=require(_0x4ea4('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x4ea4('0xa'));var _=require(_0x4ea4('0xb'));var squel=require(_0x4ea4('0xc'));var crypto=require(_0x4ea4('0xd'));var jsforce=require(_0x4ea4('0xe'));var deskjs=require(_0x4ea4('0xf'));var toCsv=require(_0x4ea4('0x9'));var querystring=require(_0x4ea4('0x10'));var Papa=require(_0x4ea4('0x11'));var Redis=require('ioredis');var authService=require(_0x4ea4('0x12'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x4ea4('0x13'));var logger=require('../../config/logger')(_0x4ea4('0x14'));var utils=require(_0x4ea4('0x15'));var config=require(_0x4ea4('0x16'));var licenseUtil=require(_0x4ea4('0x17'));var db=require(_0x4ea4('0x18'))['db'];function respondWithStatusCode(_0x2851c9,_0x9c409a){_0x9c409a=_0x9c409a||0xcc;return function(_0x32e31a){if(_0x32e31a){return _0x2851c9[_0x4ea4('0x19')](_0x9c409a);}return _0x2851c9[_0x4ea4('0x1a')](_0x9c409a)[_0x4ea4('0x1b')]();};}function respondWithResult(_0x2c2b98,_0x3bf5b0){_0x3bf5b0=_0x3bf5b0||0xc8;return function(_0x20568d){if(_0x20568d){return _0x2c2b98['status'](_0x3bf5b0)[_0x4ea4('0x1c')](_0x20568d);}};}function respondWithFilteredResult(_0x27d49b,_0x29fd45){return function(_0xdfbad8){if(_0xdfbad8){var _0xbaa351=typeof _0x29fd45[_0x4ea4('0x1d')]==='undefined'&&typeof _0x29fd45[_0x4ea4('0x1e')]==='undefined';var _0x5cd504=_0xdfbad8[_0x4ea4('0x1f')];var _0x177db1=_0xbaa351?0x0:_0x29fd45['offset'];var _0x124dc1=_0xbaa351?_0xdfbad8[_0x4ea4('0x1f')]:_0x29fd45['offset']+_0x29fd45[_0x4ea4('0x1e')];var _0x27f993;if(_0x124dc1>=_0x5cd504){_0x124dc1=_0x5cd504;_0x27f993=0xc8;}else{_0x27f993=0xce;}_0x27d49b[_0x4ea4('0x1a')](_0x27f993);return _0x27d49b[_0x4ea4('0x20')](_0x4ea4('0x21'),_0x177db1+'-'+_0x124dc1+'/'+_0x5cd504)[_0x4ea4('0x1c')](_0xdfbad8);}return null;};}function patchUpdates(_0x221e99){return function(_0x4934ed){try{jsonpatch[_0x4ea4('0x22')](_0x4934ed,_0x221e99,!![]);}catch(_0x53b6d9){return BPromise[_0x4ea4('0x23')](_0x53b6d9);}return _0x4934ed['save']();};}function saveUpdates(_0x236e6b,_0x373eb6){return function(_0x559ab9){if(_0x559ab9){return _0x559ab9[_0x4ea4('0x24')](_0x236e6b)[_0x4ea4('0x25')](function(_0x5a9091){return _0x5a9091;});}return null;};}function removeEntity(_0x49f32b,_0x3c19a4){return function(_0x447e78){if(_0x447e78){return _0x447e78[_0x4ea4('0x26')]()[_0x4ea4('0x25')](function(){_0x49f32b['status'](0xcc)[_0x4ea4('0x1b')]();});}};}function handleEntityNotFound(_0xdeae1,_0x5b086a){return function(_0x3f3e57){if(!_0x3f3e57){_0xdeae1[_0x4ea4('0x19')](0x194);}return _0x3f3e57;};}function handleError(_0x33d1e4,_0x347506){_0x347506=_0x347506||0x1f4;return function(_0x1ed218){logger[_0x4ea4('0x27')](_0x1ed218['stack']);if(_0x1ed218['name']){delete _0x1ed218[_0x4ea4('0x28')];}_0x33d1e4[_0x4ea4('0x1a')](_0x347506)[_0x4ea4('0x29')](_0x1ed218);};}exports['show']=function(_0x3cb206,_0x11b197){var _0x197d99={'raw':!![],'where':{'id':_0x3cb206['params']['id']}},_0xfb2c7f={};_0xfb2c7f[_0x4ea4('0x2a')]=_[_0x4ea4('0x2b')](db[_0x4ea4('0x2c')][_0x4ea4('0x2d')]);_0xfb2c7f[_0x4ea4('0x2e')]=_[_0x4ea4('0x2b')](_0x3cb206['query']);_0xfb2c7f[_0x4ea4('0x2f')]=_[_0x4ea4('0x30')](_0xfb2c7f[_0x4ea4('0x2a')],_0xfb2c7f[_0x4ea4('0x2e')]);_0x197d99[_0x4ea4('0x31')]=_[_0x4ea4('0x30')](_0xfb2c7f[_0x4ea4('0x2a')],qs[_0x4ea4('0x32')](_0x3cb206[_0x4ea4('0x2e')][_0x4ea4('0x32')]));_0x197d99[_0x4ea4('0x31')]=_0x197d99[_0x4ea4('0x31')]['length']?_0x197d99[_0x4ea4('0x31')]:_0xfb2c7f[_0x4ea4('0x2a')];if(_0x3cb206[_0x4ea4('0x2e')][_0x4ea4('0x33')]){_0x197d99[_0x4ea4('0x34')]=[{'all':!![]}];}_0x197d99=_['merge']({},_0x197d99,_0x3cb206[_0x4ea4('0x35')]);return db['ChatProactiveAction']['find'](_0x197d99)[_0x4ea4('0x25')](handleEntityNotFound(_0x11b197,null))[_0x4ea4('0x25')](respondWithResult(_0x11b197,null))[_0x4ea4('0x36')](handleError(_0x11b197,null));};exports['create']=function(_0x12e131,_0x41aeea){return db[_0x4ea4('0x2c')][_0x4ea4('0x37')](_0x12e131[_0x4ea4('0x38')],{})[_0x4ea4('0x25')](respondWithResult(_0x41aeea,0xc9))[_0x4ea4('0x36')](handleError(_0x41aeea,null));};exports[_0x4ea4('0x24')]=function(_0x1ccc34,_0x230478){if(_0x1ccc34[_0x4ea4('0x38')]['id']){delete _0x1ccc34[_0x4ea4('0x38')]['id'];}return db[_0x4ea4('0x2c')][_0x4ea4('0x39')]({'where':{'id':_0x1ccc34[_0x4ea4('0x3a')]['id']}})[_0x4ea4('0x25')](handleEntityNotFound(_0x230478,null))[_0x4ea4('0x25')](saveUpdates(_0x1ccc34['body'],null))[_0x4ea4('0x25')](respondWithResult(_0x230478,null))['catch'](handleError(_0x230478,null));};exports[_0x4ea4('0x26')]=function(_0x5a23fa,_0x3f7527){return db[_0x4ea4('0x2c')]['find']({'where':{'id':_0x5a23fa[_0x4ea4('0x3a')]['id']}})[_0x4ea4('0x25')](handleEntityNotFound(_0x3f7527,null))[_0x4ea4('0x25')](removeEntity(_0x3f7527,null))['catch'](handleError(_0x3f7527,null));};
\ No newline at end of file
+var _0x3561=['show','params','keys','rawAttributes','query','filters','model','attributes','intersection','fields','length','includeAll','include','merge','options','find','catch','create','ChatProactiveAction','body','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','papaparse','ioredis','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','apply','reject','save','update','destroy','then','error','stack','name'];(function(_0x4266b4,_0x4859ad){var _0x1442aa=function(_0x21f8c1){while(--_0x21f8c1){_0x4266b4['push'](_0x4266b4['shift']());}};_0x1442aa(++_0x4859ad);}(_0x3561,0x94));var _0x1356=function(_0x28e9ef,_0x9f51d9){_0x28e9ef=_0x28e9ef-0x0;var _0x3b8a1a=_0x3561[_0x28e9ef];return _0x3b8a1a;};'use strict';var emlformat=require(_0x1356('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x1356('0x1'));var jsonpatch=require(_0x1356('0x2'));var rp=require(_0x1356('0x3'));var moment=require(_0x1356('0x4'));var BPromise=require(_0x1356('0x5'));var Mustache=require(_0x1356('0x6'));var util=require(_0x1356('0x7'));var path=require(_0x1356('0x8'));var sox=require(_0x1356('0x9'));var csv=require(_0x1356('0xa'));var ejs=require(_0x1356('0xb'));var fs=require('fs');var fs_extra=require(_0x1356('0xc'));var _=require(_0x1356('0xd'));var squel=require('squel');var crypto=require(_0x1356('0xe'));var jsforce=require(_0x1356('0xf'));var deskjs=require(_0x1356('0x10'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x1356('0x11'));var Redis=require(_0x1356('0x12'));var authService=require('../../components/auth/service');var qs=require(_0x1356('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x1356('0x14'));var logger=require(_0x1356('0x15'))('api');var utils=require(_0x1356('0x16'));var config=require(_0x1356('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0x1356('0x18'))['db'];function respondWithStatusCode(_0x457d18,_0x466604){_0x466604=_0x466604||0xcc;return function(_0x31e769){if(_0x31e769){return _0x457d18[_0x1356('0x19')](_0x466604);}return _0x457d18[_0x1356('0x1a')](_0x466604)[_0x1356('0x1b')]();};}function respondWithResult(_0x3c8b32,_0x365fb0){_0x365fb0=_0x365fb0||0xc8;return function(_0x324102){if(_0x324102){return _0x3c8b32[_0x1356('0x1a')](_0x365fb0)[_0x1356('0x1c')](_0x324102);}};}function respondWithFilteredResult(_0x58975b,_0x47a952){return function(_0x593f6d){if(_0x593f6d){var _0x61991a=typeof _0x47a952[_0x1356('0x1d')]===_0x1356('0x1e')&&typeof _0x47a952['limit']===_0x1356('0x1e');var _0x3645c0=_0x593f6d[_0x1356('0x1f')];var _0x2256e2=_0x61991a?0x0:_0x47a952[_0x1356('0x1d')];var _0x36655c=_0x61991a?_0x593f6d[_0x1356('0x1f')]:_0x47a952[_0x1356('0x1d')]+_0x47a952[_0x1356('0x20')];var _0x370a91;if(_0x36655c>=_0x3645c0){_0x36655c=_0x3645c0;_0x370a91=0xc8;}else{_0x370a91=0xce;}_0x58975b[_0x1356('0x1a')](_0x370a91);return _0x58975b[_0x1356('0x21')](_0x1356('0x22'),_0x2256e2+'-'+_0x36655c+'/'+_0x3645c0)['json'](_0x593f6d);}return null;};}function patchUpdates(_0x368fea){return function(_0x5b958c){try{jsonpatch[_0x1356('0x23')](_0x5b958c,_0x368fea,!![]);}catch(_0x57b864){return BPromise[_0x1356('0x24')](_0x57b864);}return _0x5b958c[_0x1356('0x25')]();};}function saveUpdates(_0x2f1581,_0x377fe7){return function(_0x10d756){if(_0x10d756){return _0x10d756[_0x1356('0x26')](_0x2f1581)['then'](function(_0x89a76d){return _0x89a76d;});}return null;};}function removeEntity(_0x2c26be,_0x53eca1){return function(_0xf0a5e9){if(_0xf0a5e9){return _0xf0a5e9[_0x1356('0x27')]()[_0x1356('0x28')](function(){_0x2c26be['status'](0xcc)[_0x1356('0x1b')]();});}};}function handleEntityNotFound(_0x2a6170,_0x3f5c7f){return function(_0x231e6f){if(!_0x231e6f){_0x2a6170['sendStatus'](0x194);}return _0x231e6f;};}function handleError(_0x4ce322,_0x42d609){_0x42d609=_0x42d609||0x1f4;return function(_0x50a4b6){logger[_0x1356('0x29')](_0x50a4b6[_0x1356('0x2a')]);if(_0x50a4b6[_0x1356('0x2b')]){delete _0x50a4b6[_0x1356('0x2b')];}_0x4ce322[_0x1356('0x1a')](_0x42d609)['send'](_0x50a4b6);};}exports[_0x1356('0x2c')]=function(_0x29ede4,_0x31752a){var _0x261710={'raw':!![],'where':{'id':_0x29ede4[_0x1356('0x2d')]['id']}},_0x3a479f={};_0x3a479f['model']=_[_0x1356('0x2e')](db['ChatProactiveAction'][_0x1356('0x2f')]);_0x3a479f['query']=_['keys'](_0x29ede4[_0x1356('0x30')]);_0x3a479f[_0x1356('0x31')]=_['intersection'](_0x3a479f[_0x1356('0x32')],_0x3a479f[_0x1356('0x30')]);_0x261710[_0x1356('0x33')]=_[_0x1356('0x34')](_0x3a479f[_0x1356('0x32')],qs[_0x1356('0x35')](_0x29ede4[_0x1356('0x30')]['fields']));_0x261710[_0x1356('0x33')]=_0x261710[_0x1356('0x33')][_0x1356('0x36')]?_0x261710[_0x1356('0x33')]:_0x3a479f['model'];if(_0x29ede4[_0x1356('0x30')][_0x1356('0x37')]){_0x261710[_0x1356('0x38')]=[{'all':!![]}];}_0x261710=_[_0x1356('0x39')]({},_0x261710,_0x29ede4[_0x1356('0x3a')]);return db['ChatProactiveAction'][_0x1356('0x3b')](_0x261710)['then'](handleEntityNotFound(_0x31752a,null))[_0x1356('0x28')](respondWithResult(_0x31752a,null))[_0x1356('0x3c')](handleError(_0x31752a,null));};exports[_0x1356('0x3d')]=function(_0x2acf0d,_0x39e321){return db[_0x1356('0x3e')][_0x1356('0x3d')](_0x2acf0d['body'],{})[_0x1356('0x28')](respondWithResult(_0x39e321,0xc9))[_0x1356('0x3c')](handleError(_0x39e321,null));};exports[_0x1356('0x26')]=function(_0x2d23ed,_0x57c1ff){if(_0x2d23ed[_0x1356('0x3f')]['id']){delete _0x2d23ed['body']['id'];}return db[_0x1356('0x3e')]['find']({'where':{'id':_0x2d23ed[_0x1356('0x2d')]['id']}})[_0x1356('0x28')](handleEntityNotFound(_0x57c1ff,null))['then'](saveUpdates(_0x2d23ed[_0x1356('0x3f')],null))['then'](respondWithResult(_0x57c1ff,null))[_0x1356('0x3c')](handleError(_0x57c1ff,null));};exports[_0x1356('0x27')]=function(_0x28919e,_0x433e70){return db['ChatProactiveAction'][_0x1356('0x3b')]({'where':{'id':_0x28919e['params']['id']}})[_0x1356('0x28')](handleEntityNotFound(_0x433e70,null))[_0x1356('0x28')](removeEntity(_0x433e70,null))[_0x1356('0x3c')](handleError(_0x433e70,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x158b=['../../config/environment','./chatProactiveAction.attributes','define','ChatProactiveAction','chat_proactive_actions','lodash','../../config/logger','api','moment','bluebird','request-promise','path','rimraf'];(function(_0x16051a,_0x5e4326){var _0x35d20d=function(_0x52b02e){while(--_0x52b02e){_0x16051a['push'](_0x16051a['shift']());}};_0x35d20d(++_0x5e4326);}(_0x158b,0x1e6));var _0xb158=function(_0x3841ab,_0x3627ec){_0x3841ab=_0x3841ab-0x0;var _0x27fb7c=_0x158b[_0x3841ab];return _0x27fb7c;};'use strict';var _=require(_0xb158('0x0'));var util=require('util');var logger=require(_0xb158('0x1'))(_0xb158('0x2'));var moment=require(_0xb158('0x3'));var BPromise=require(_0xb158('0x4'));var rp=require(_0xb158('0x5'));var fs=require('fs');var path=require(_0xb158('0x6'));var rimraf=require(_0xb158('0x7'));var config=require(_0xb158('0x8'));var attributes=require(_0xb158('0x9'));module['exports']=function(_0x1b46bc,_0x4a8fde){return _0x1b46bc[_0xb158('0xa')](_0xb158('0xb'),attributes,{'tableName':_0xb158('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x4396=['moment','request-promise','path','rimraf','../../config/environment','./chatProactiveAction.attributes','define','ChatProactiveAction','chat_proactive_actions','lodash','util','../../config/logger','api'];(function(_0x167cc1,_0x56ef5a){var _0x10bc4b=function(_0xd6a255){while(--_0xd6a255){_0x167cc1['push'](_0x167cc1['shift']());}};_0x10bc4b(++_0x56ef5a);}(_0x4396,0xb2));var _0x6439=function(_0x1f8f97,_0x1c8de4){_0x1f8f97=_0x1f8f97-0x0;var _0x59871e=_0x4396[_0x1f8f97];return _0x59871e;};'use strict';var _=require(_0x6439('0x0'));var util=require(_0x6439('0x1'));var logger=require(_0x6439('0x2'))(_0x6439('0x3'));var moment=require(_0x6439('0x4'));var BPromise=require('bluebird');var rp=require(_0x6439('0x5'));var fs=require('fs');var path=require(_0x6439('0x6'));var rimraf=require(_0x6439('0x7'));var config=require(_0x6439('0x8'));var attributes=require(_0x6439('0x9'));module['exports']=function(_0x4b9bb7,_0x8de3f4){return _0x4b9bb7[_0x6439('0xa')](_0x6439('0xb'),attributes,{'tableName':_0x6439('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x55ec=['jayson/promise','client','http','request\x20sent','debug','ChatProactiveAction,\x20%s,\x20%s,\x20%s','stringify','error','code','message','ChatProactiveAction,\x20%s,\x20%s','info','result','catch','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment'];(function(_0x3e8790,_0x59764e){var _0x214f19=function(_0x2f9b37){while(--_0x2f9b37){_0x3e8790['push'](_0x3e8790['shift']());}};_0x214f19(++_0x59764e);}(_0x55ec,0x1be));var _0xc55e=function(_0x359bbe,_0x5b7fcc){_0x359bbe=_0x359bbe-0x0;var _0x1b3353=_0x55ec[_0x359bbe];return _0x1b3353;};'use strict';var _=require(_0xc55e('0x0'));var util=require(_0xc55e('0x1'));var moment=require(_0xc55e('0x2'));var BPromise=require(_0xc55e('0x3'));var rs=require(_0xc55e('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xc55e('0x5'))['db'];var utils=require(_0xc55e('0x6'));var logger=require(_0xc55e('0x7'))(_0xc55e('0x8'));var config=require(_0xc55e('0x9'));var jayson=require(_0xc55e('0xa'));var client=jayson[_0xc55e('0xb')][_0xc55e('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x133b97,_0x4a2310,_0x5de654){return new BPromise(function(_0x343dec,_0x12c53d){return client['request'](_0x133b97,_0x5de654)['then'](function(_0x4e6358){logger['info']('ChatProactiveAction,\x20%s,\x20%s',_0x4a2310,_0xc55e('0xd'));logger[_0xc55e('0xe')](_0xc55e('0xf'),_0x4a2310,_0xc55e('0xd'),JSON[_0xc55e('0x10')](_0x4e6358));if(_0x4e6358[_0xc55e('0x11')]){if(_0x4e6358[_0xc55e('0x11')][_0xc55e('0x12')]===0x1f4){logger[_0xc55e('0x11')]('ChatProactiveAction,\x20%s,\x20%s',_0x4a2310,_0x4e6358['error']['message']);return _0x12c53d(_0x4e6358[_0xc55e('0x11')][_0xc55e('0x13')]);}logger[_0xc55e('0x11')](_0xc55e('0x14'),_0x4a2310,_0x4e6358[_0xc55e('0x11')][_0xc55e('0x13')]);return _0x343dec(_0x4e6358[_0xc55e('0x11')][_0xc55e('0x13')]);}else{logger[_0xc55e('0x15')](_0xc55e('0x14'),_0x4a2310,_0xc55e('0xd'));_0x343dec(_0x4e6358[_0xc55e('0x16')]['message']);}})[_0xc55e('0x17')](function(_0x1d0364){logger[_0xc55e('0x11')](_0xc55e('0x14'),_0x4a2310,_0x1d0364);_0x12c53d(_0x1d0364);});});}
\ No newline at end of file
+var _0xa778=['lodash','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','request','info','ChatProactiveAction,\x20%s,\x20%s','request\x20sent','debug','ChatProactiveAction,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch'];(function(_0x485b5a,_0x2b289b){var _0xd2b34d=function(_0x34dcbd){while(--_0x34dcbd){_0x485b5a['push'](_0x485b5a['shift']());}};_0xd2b34d(++_0x2b289b);}(_0xa778,0x18c));var _0x8a77=function(_0x2e66a,_0x4b1658){_0x2e66a=_0x2e66a-0x0;var _0x3162d8=_0xa778[_0x2e66a];return _0x3162d8;};'use strict';var _=require(_0x8a77('0x0'));var util=require('util');var moment=require(_0x8a77('0x1'));var BPromise=require(_0x8a77('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x8a77('0x3'));var db=require(_0x8a77('0x4'))['db'];var utils=require(_0x8a77('0x5'));var logger=require(_0x8a77('0x6'))('rpc');var config=require(_0x8a77('0x7'));var jayson=require(_0x8a77('0x8'));var client=jayson[_0x8a77('0x9')][_0x8a77('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x412620,_0x1c0a42,_0x4e2859){return new BPromise(function(_0x17e503,_0x11d36d){return client[_0x8a77('0xb')](_0x412620,_0x4e2859)['then'](function(_0x56a6b6){logger[_0x8a77('0xc')](_0x8a77('0xd'),_0x1c0a42,_0x8a77('0xe'));logger[_0x8a77('0xf')](_0x8a77('0x10'),_0x1c0a42,_0x8a77('0xe'),JSON[_0x8a77('0x11')](_0x56a6b6));if(_0x56a6b6[_0x8a77('0x12')]){if(_0x56a6b6[_0x8a77('0x12')]['code']===0x1f4){logger[_0x8a77('0x12')](_0x8a77('0xd'),_0x1c0a42,_0x56a6b6['error'][_0x8a77('0x13')]);return _0x11d36d(_0x56a6b6['error'][_0x8a77('0x13')]);}logger[_0x8a77('0x12')](_0x8a77('0xd'),_0x1c0a42,_0x56a6b6['error'][_0x8a77('0x13')]);return _0x17e503(_0x56a6b6[_0x8a77('0x12')][_0x8a77('0x13')]);}else{logger[_0x8a77('0xc')]('ChatProactiveAction,\x20%s,\x20%s',_0x1c0a42,_0x8a77('0xe'));_0x17e503(_0x56a6b6[_0x8a77('0x14')][_0x8a77('0x13')]);}})[_0x8a77('0x15')](function(_0x544335){logger[_0x8a77('0x12')]('ChatProactiveAction,\x20%s,\x20%s',_0x1c0a42,_0x544335);_0x11d36d(_0x544335);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5d17=['create','put','/:id','delete','destroy','exports','multer','util','express','Router','fs-extra','../../components/interaction/service','../../config/environment','./chatProactiveAction.controller','get','isAuthenticated','show','post'];(function(_0x1daeee,_0x1cc59b){var _0x56a21a=function(_0xbcce40){while(--_0xbcce40){_0x1daeee['push'](_0x1daeee['shift']());}};_0x56a21a(++_0x1cc59b);}(_0x5d17,0x114));var _0x75d1=function(_0x255b94,_0x352b45){_0x255b94=_0x255b94-0x0;var _0xc5806b=_0x5d17[_0x255b94];return _0xc5806b;};'use strict';var multer=require(_0x75d1('0x0'));var util=require(_0x75d1('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require(_0x75d1('0x2'));var router=express[_0x75d1('0x3')]();var fs_extra=require(_0x75d1('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0x75d1('0x5'));var config=require(_0x75d1('0x6'));var controller=require(_0x75d1('0x7'));router[_0x75d1('0x8')]('/:id',auth[_0x75d1('0x9')](),controller[_0x75d1('0xa')]);router[_0x75d1('0xb')]('/',auth[_0x75d1('0x9')](),controller[_0x75d1('0xc')]);router[_0x75d1('0xd')](_0x75d1('0xe'),auth['isAuthenticated'](),controller['update']);router[_0x75d1('0xf')]('/:id',auth['isAuthenticated'](),controller[_0x75d1('0x10')]);module[_0x75d1('0x11')]=router;
\ No newline at end of file
+var _0xed1f=['../../components/interaction/service','../../config/environment','./chatProactiveAction.controller','get','/:id','isAuthenticated','show','post','create','delete','destroy','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service'];(function(_0x570e59,_0x27236e){var _0x235f4c=function(_0x4b0129){while(--_0x4b0129){_0x570e59['push'](_0x570e59['shift']());}};_0x235f4c(++_0x27236e);}(_0xed1f,0x6a));var _0xfed1=function(_0x2adbeb,_0x5581be){_0x2adbeb=_0x2adbeb-0x0;var _0x5e18a6=_0xed1f[_0x2adbeb];return _0x5e18a6;};'use strict';var multer=require(_0xfed1('0x0'));var util=require(_0xfed1('0x1'));var path=require(_0xfed1('0x2'));var timeout=require(_0xfed1('0x3'));var express=require(_0xfed1('0x4'));var router=express[_0xfed1('0x5')]();var fs_extra=require(_0xfed1('0x6'));var auth=require(_0xfed1('0x7'));var interaction=require(_0xfed1('0x8'));var config=require(_0xfed1('0x9'));var controller=require(_0xfed1('0xa'));router[_0xfed1('0xb')](_0xfed1('0xc'),auth[_0xfed1('0xd')](),controller[_0xfed1('0xe')]);router[_0xfed1('0xf')]('/',auth[_0xfed1('0xd')](),controller[_0xfed1('0x10')]);router['put'](_0xfed1('0xc'),auth[_0xfed1('0xd')](),controller['update']);router[_0xfed1('0x11')](_0xfed1('0xc'),auth['isAuthenticated'](),controller[_0xfed1('0x12')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1669=['STRING','INTEGER','ENUM','rrmemory','beepall','roundrobin','exports'];(function(_0x5588e5,_0x567a37){var _0x12c271=function(_0x187ca8){while(--_0x187ca8){_0x5588e5['push'](_0x5588e5['shift']());}};_0x12c271(++_0x567a37);}(_0x1669,0x15d));var _0x9166=function(_0x302099,_0xe61dca){_0x302099=_0x302099-0x0;var _0x24a042=_0x1669[_0x302099];return _0x24a042;};'use strict';var Sequelize=require('sequelize');module[_0x9166('0x0')]={'name':{'type':Sequelize[_0x9166('0x1')],'unique':'name','allowNull':![],'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'description':{'type':Sequelize[_0x9166('0x1')]},'timeout':{'type':Sequelize[_0x9166('0x2')],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize[_0x9166('0x3')](_0x9166('0x4'),_0x9166('0x5'),_0x9166('0x6'))}};
\ No newline at end of file
+var _0x3573=['beepall','roundrobin','STRING','name','INTEGER','rrmemory'];(function(_0x23b511,_0x536900){var _0x54b80e=function(_0x5586d1){while(--_0x5586d1){_0x23b511['push'](_0x23b511['shift']());}};_0x54b80e(++_0x536900);}(_0x3573,0x1dc));var _0x3357=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x3573[_0x3dd15e];return _0x231fd0;};'use strict';var Sequelize=require('sequelize');module['exports']={'name':{'type':Sequelize[_0x3357('0x0')],'unique':_0x3357('0x1'),'allowNull':![],'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'description':{'type':Sequelize[_0x3357('0x0')]},'timeout':{'type':Sequelize[_0x3357('0x2')],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize['ENUM'](_0x3357('0x3'),_0x3357('0x4'),_0x3357('0x5'))}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x46ff=['from','team_has_chat_queues','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','ChatQueueId\x20=\x20?','clone','push','sequelize','toString','every','includes','all','union','compact','value','isEmpty','removeAgents','forEach','userChatQueue:remove','addAgents','omit','spread','isArray','getAgents','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','fs-extra','lodash','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../config/utils','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./chatQueue.socket','register','jayson/promise','http','info','request\x20sent','debug','stringify','error','ChatQueue,\x20%s,\x20%s','message','catch','sendStatus','status','end','json','offset','undefined','limit','count','set','apply','reject','save','destroy','then','ChatQueues','UserProfileResource','stack','send','index','rawAttributes','key','model','map','name','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','filter','where','type','VIRTUAL','merge','options','ChatQueue','includeAll','include','findAll','rows','params','find','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','describe','getMembers','UserChatQueue','pick','ChatQueueId','User','UserId','agent','updatedAt','createdAt','format','%s/%s','Team','getTeams','addTeams','ids','Agents','online','interface','flatMap','each','findOrCreate','emit','userChatQueue:save','removeTeams','select','field','tq.TeamId'];(function(_0x474a1d,_0x3a4069){var _0x335e2d=function(_0x4f118e){while(--_0x4f118e){_0x474a1d['push'](_0x474a1d['shift']());}};_0x335e2d(++_0x3a4069);}(_0x46ff,0x140));var _0xf46f=function(_0x341d4b,_0x3444e4){_0x341d4b=_0x341d4b-0x0;var _0x16e347=_0x46ff[_0x341d4b];return _0x16e347;};'use strict';var emlformat=require(_0xf46f('0x0'));var rimraf=require(_0xf46f('0x1'));var zipdir=require(_0xf46f('0x2'));var jsonpatch=require(_0xf46f('0x3'));var rp=require(_0xf46f('0x4'));var moment=require(_0xf46f('0x5'));var BPromise=require(_0xf46f('0x6'));var Mustache=require(_0xf46f('0x7'));var util=require(_0xf46f('0x8'));var path=require(_0xf46f('0x9'));var sox=require('sox');var csv=require(_0xf46f('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xf46f('0xb'));var _=require(_0xf46f('0xc'));var squel=require('squel');var crypto=require(_0xf46f('0xd'));var jsforce=require(_0xf46f('0xe'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0xf46f('0xf'));var Papa=require(_0xf46f('0x10'));var Redis=require(_0xf46f('0x11'));var authService=require(_0xf46f('0x12'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')('api');var utils=require(_0xf46f('0x13'));var config=require('../../config/environment');var licenseUtil=require(_0xf46f('0x14'));var db=require(_0xf46f('0x15'))['db'];config[_0xf46f('0x16')]=_[_0xf46f('0x17')](config['redis'],{'host':_0xf46f('0x18'),'port':0x18eb});var socket=require(_0xf46f('0x19'))(new Redis(config[_0xf46f('0x16')]));require(_0xf46f('0x1a'))[_0xf46f('0x1b')](socket);var jayson=require(_0xf46f('0x1c'));var client=jayson['client'][_0xf46f('0x1d')]({'port':0x232a});function respondWithRpcPromise(_0x256938,_0x21d2f3,_0x10e472,_0x1c2fda){return new BPromise(function(_0x94eebd,_0x4ca9f6){var _0x32c48b=_0x1c2fda||client;return _0x32c48b['request'](_0x256938,_0x10e472)['then'](function(_0x15bef4){logger[_0xf46f('0x1e')]('ChatQueue,\x20%s,\x20%s',_0x21d2f3,_0xf46f('0x1f'));logger[_0xf46f('0x20')]('ChatQueue,\x20%s,\x20%s,\x20%s',_0x21d2f3,'request\x20sent',JSON[_0xf46f('0x21')](_0x15bef4));if(_0x15bef4[_0xf46f('0x22')]){if(_0x15bef4[_0xf46f('0x22')]['code']===0x1f4){logger['error'](_0xf46f('0x23'),_0x21d2f3,_0x15bef4[_0xf46f('0x22')][_0xf46f('0x24')]);return _0x4ca9f6(_0x15bef4[_0xf46f('0x22')][_0xf46f('0x24')]);}logger[_0xf46f('0x22')]('ChatQueue,\x20%s,\x20%s',_0x21d2f3,_0x15bef4['error'][_0xf46f('0x24')]);return _0x94eebd(_0x15bef4[_0xf46f('0x22')]['message']);}else{logger[_0xf46f('0x1e')]('ChatQueue,\x20%s,\x20%s',_0x21d2f3,_0xf46f('0x1f'));_0x94eebd(_0x15bef4['result']['message']);}})[_0xf46f('0x25')](function(_0xfef8f6){logger[_0xf46f('0x22')](_0xf46f('0x23'),_0x21d2f3,_0xfef8f6);_0x4ca9f6(_0xfef8f6);});});}function respondWithStatusCode(_0x4ee823,_0x51eba9){_0x51eba9=_0x51eba9||0xcc;return function(_0x134379){if(_0x134379){return _0x4ee823[_0xf46f('0x26')](_0x51eba9);}return _0x4ee823[_0xf46f('0x27')](_0x51eba9)[_0xf46f('0x28')]();};}function respondWithResult(_0x1082ab,_0x257666){_0x257666=_0x257666||0xc8;return function(_0x3558c3){if(_0x3558c3){return _0x1082ab[_0xf46f('0x27')](_0x257666)[_0xf46f('0x29')](_0x3558c3);}};}function respondWithFilteredResult(_0x212dbb,_0x1f120c){return function(_0x84b65d){if(_0x84b65d){var _0x31f39f=typeof _0x1f120c[_0xf46f('0x2a')]===_0xf46f('0x2b')&&typeof _0x1f120c[_0xf46f('0x2c')]==='undefined';var _0x366e76=_0x84b65d[_0xf46f('0x2d')];var _0x246faf=_0x31f39f?0x0:_0x1f120c[_0xf46f('0x2a')];var _0x53910f=_0x31f39f?_0x84b65d[_0xf46f('0x2d')]:_0x1f120c[_0xf46f('0x2a')]+_0x1f120c[_0xf46f('0x2c')];var _0x347cf0;if(_0x53910f>=_0x366e76){_0x53910f=_0x366e76;_0x347cf0=0xc8;}else{_0x347cf0=0xce;}_0x212dbb[_0xf46f('0x27')](_0x347cf0);return _0x212dbb[_0xf46f('0x2e')]('Content-Range',_0x246faf+'-'+_0x53910f+'/'+_0x366e76)[_0xf46f('0x29')](_0x84b65d);}return null;};}function patchUpdates(_0x1f4aa6){return function(_0x401901){try{jsonpatch[_0xf46f('0x2f')](_0x401901,_0x1f4aa6,!![]);}catch(_0x6ec82b){return BPromise[_0xf46f('0x30')](_0x6ec82b);}return _0x401901[_0xf46f('0x31')]();};}function saveUpdates(_0x450a55,_0x1f11ee){return function(_0x42f86c){if(_0x42f86c){return _0x42f86c['update'](_0x450a55)['then'](function(_0x5d44c2){return _0x5d44c2;});}return null;};}function removeEntity(_0x3eb368,_0x4724ee){return function(_0x770b2f){if(_0x770b2f){return _0x770b2f[_0xf46f('0x32')]()[_0xf46f('0x33')](function(){var _0x42df31=_0x770b2f['get']({'plain':!![]});var _0x1a7be0=_0xf46f('0x34');return db[_0xf46f('0x35')][_0xf46f('0x32')]({'where':{'type':_0x1a7be0,'resourceId':_0x42df31['id']}})['then'](function(){return _0x770b2f;});})['then'](function(){_0x3eb368['status'](0xcc)[_0xf46f('0x28')]();});}};}function handleEntityNotFound(_0xb98a68,_0x68c0c4){return function(_0x426515){if(!_0x426515){_0xb98a68[_0xf46f('0x26')](0x194);}return _0x426515;};}function handleError(_0x500ddf,_0x3efe95){_0x3efe95=_0x3efe95||0x1f4;return function(_0x266e9f){logger[_0xf46f('0x22')](_0x266e9f[_0xf46f('0x36')]);if(_0x266e9f['name']){delete _0x266e9f['name'];}_0x500ddf[_0xf46f('0x27')](_0x3efe95)[_0xf46f('0x37')](_0x266e9f);};}exports[_0xf46f('0x38')]=function(_0x27794f,_0x3890dd){var _0x8b04b4={},_0x58c06e={},_0x1db695={'count':0x0,'rows':[]};var _0x43b592=_['map'](db['ChatQueue'][_0xf46f('0x39')],function(_0x514b9c){return{'name':_0x514b9c['fieldName'],'type':_0x514b9c['type'][_0xf46f('0x3a')]};});_0x58c06e[_0xf46f('0x3b')]=_[_0xf46f('0x3c')](_0x43b592,_0xf46f('0x3d'));_0x58c06e[_0xf46f('0x3e')]=_[_0xf46f('0x3f')](_0x27794f[_0xf46f('0x3e')]);_0x58c06e[_0xf46f('0x40')]=_[_0xf46f('0x41')](_0x58c06e['model'],_0x58c06e['query']);_0x8b04b4['attributes']=_[_0xf46f('0x41')](_0x58c06e[_0xf46f('0x3b')],qs[_0xf46f('0x42')](_0x27794f[_0xf46f('0x3e')][_0xf46f('0x42')]));_0x8b04b4[_0xf46f('0x43')]=_0x8b04b4[_0xf46f('0x43')][_0xf46f('0x44')]?_0x8b04b4[_0xf46f('0x43')]:_0x58c06e['model'];if(!_0x27794f[_0xf46f('0x3e')][_0xf46f('0x45')](_0xf46f('0x46'))){_0x8b04b4['limit']=qs['limit'](_0x27794f[_0xf46f('0x3e')][_0xf46f('0x2c')]);_0x8b04b4[_0xf46f('0x2a')]=qs['offset'](_0x27794f[_0xf46f('0x3e')][_0xf46f('0x2a')]);}_0x8b04b4[_0xf46f('0x47')]=qs[_0xf46f('0x48')](_0x27794f[_0xf46f('0x3e')][_0xf46f('0x48')]);_0x8b04b4['where']=qs[_0xf46f('0x40')](_['pick'](_0x27794f['query'],_0x58c06e[_0xf46f('0x40')]),_0x43b592);if(_0x27794f['query'][_0xf46f('0x49')]){_0x8b04b4[_0xf46f('0x4a')]=_['merge'](_0x8b04b4[_0xf46f('0x4a')],{'$or':_[_0xf46f('0x3c')](_0x43b592,function(_0x1a071f){if(_0x1a071f[_0xf46f('0x4b')]!==_0xf46f('0x4c')){var _0x100a21={};_0x100a21[_0x1a071f['name']]={'$like':'%'+_0x27794f[_0xf46f('0x3e')][_0xf46f('0x49')]+'%'};return _0x100a21;}})});}_0x8b04b4=_[_0xf46f('0x4d')]({},_0x8b04b4,_0x27794f[_0xf46f('0x4e')]);var _0x359084={'where':_0x8b04b4[_0xf46f('0x4a')]};return db[_0xf46f('0x4f')][_0xf46f('0x2d')](_0x359084)['then'](function(_0x35a669){_0x1db695[_0xf46f('0x2d')]=_0x35a669;if(_0x27794f[_0xf46f('0x3e')][_0xf46f('0x50')]){_0x8b04b4[_0xf46f('0x51')]=[{'all':!![]}];}return db['ChatQueue'][_0xf46f('0x52')](_0x8b04b4);})[_0xf46f('0x33')](function(_0x91e6a6){_0x1db695[_0xf46f('0x53')]=_0x91e6a6;return _0x1db695;})[_0xf46f('0x33')](respondWithFilteredResult(_0x3890dd,_0x8b04b4))[_0xf46f('0x25')](handleError(_0x3890dd,null));};exports['show']=function(_0x528bf8,_0x39c342){var _0x1c1140={'raw':!![],'where':{'id':_0x528bf8[_0xf46f('0x54')]['id']}},_0x253514={};_0x253514['model']=_[_0xf46f('0x3f')](db[_0xf46f('0x4f')]['rawAttributes']);_0x253514[_0xf46f('0x3e')]=_[_0xf46f('0x3f')](_0x528bf8[_0xf46f('0x3e')]);_0x253514[_0xf46f('0x40')]=_['intersection'](_0x253514[_0xf46f('0x3b')],_0x253514[_0xf46f('0x3e')]);_0x1c1140[_0xf46f('0x43')]=_[_0xf46f('0x41')](_0x253514[_0xf46f('0x3b')],qs[_0xf46f('0x42')](_0x528bf8[_0xf46f('0x3e')][_0xf46f('0x42')]));_0x1c1140[_0xf46f('0x43')]=_0x1c1140[_0xf46f('0x43')][_0xf46f('0x44')]?_0x1c1140[_0xf46f('0x43')]:_0x253514[_0xf46f('0x3b')];if(_0x528bf8[_0xf46f('0x3e')][_0xf46f('0x50')]){_0x1c1140[_0xf46f('0x51')]=[{'all':!![]}];}_0x1c1140=_[_0xf46f('0x4d')]({},_0x1c1140,_0x528bf8[_0xf46f('0x4e')]);return db[_0xf46f('0x4f')][_0xf46f('0x55')](_0x1c1140)[_0xf46f('0x33')](handleEntityNotFound(_0x39c342,null))[_0xf46f('0x33')](respondWithResult(_0x39c342,null))['catch'](handleError(_0x39c342,null));};exports[_0xf46f('0x56')]=function(_0x531b9c,_0x354873){return db[_0xf46f('0x4f')][_0xf46f('0x56')](_0x531b9c[_0xf46f('0x57')],{})[_0xf46f('0x33')](function(_0x1dd2db){var _0x3572b6=_0x531b9c[_0xf46f('0x58')][_0xf46f('0x59')]({'plain':!![]});if(!_0x3572b6)throw new Error(_0xf46f('0x5a'));if(_0x3572b6[_0xf46f('0x5b')]===_0xf46f('0x58')){var _0x24c2a3=_0x1dd2db['get']({'plain':!![]});var _0x2c3628=_0xf46f('0x34');return db[_0xf46f('0x5c')][_0xf46f('0x55')]({'where':{'name':_0x2c3628,'userProfileId':_0x3572b6['userProfileId']},'raw':!![]})['then'](function(_0x544ec5){if(_0x544ec5&&_0x544ec5[_0xf46f('0x5d')]===0x0){return db[_0xf46f('0x35')][_0xf46f('0x56')]({'name':_0x24c2a3['name'],'resourceId':_0x24c2a3['id'],'type':_0x544ec5[_0xf46f('0x3d')],'sectionId':_0x544ec5['id']},{})[_0xf46f('0x33')](function(){return _0x1dd2db;});}else{return _0x1dd2db;}})['catch'](function(_0x2b008b){logger[_0xf46f('0x22')](_0xf46f('0x5e'),_0x2b008b);throw _0x2b008b;});}return _0x1dd2db;})['then'](respondWithResult(_0x354873,0xc9))[_0xf46f('0x25')](handleError(_0x354873,null));};exports[_0xf46f('0x5f')]=function(_0x1cf845,_0x18fcb4){if(_0x1cf845[_0xf46f('0x57')]['id']){delete _0x1cf845[_0xf46f('0x57')]['id'];}return db[_0xf46f('0x4f')][_0xf46f('0x55')]({'where':{'id':_0x1cf845[_0xf46f('0x54')]['id']}})[_0xf46f('0x33')](handleEntityNotFound(_0x18fcb4,null))[_0xf46f('0x33')](saveUpdates(_0x1cf845[_0xf46f('0x57')],null))['then'](respondWithResult(_0x18fcb4,null))[_0xf46f('0x25')](handleError(_0x18fcb4,null));};exports[_0xf46f('0x32')]=function(_0x1c89ed,_0x152733){return db[_0xf46f('0x4f')][_0xf46f('0x55')]({'where':{'id':_0x1c89ed['params']['id']}})[_0xf46f('0x33')](handleEntityNotFound(_0x152733,null))[_0xf46f('0x33')](removeEntity(_0x152733,null))['catch'](handleError(_0x152733,null));};exports[_0xf46f('0x60')]=function(_0x37b0b3,_0x7d96e3){return db['ChatQueue'][_0xf46f('0x60')]()['then'](respondWithResult(_0x7d96e3,null))[_0xf46f('0x25')](handleError(_0x7d96e3,null));};exports[_0xf46f('0x61')]=function(_0x5c0985,_0x5273a4,_0xe7e0ef){var _0x57c45c={'raw':!![],'where':{}},_0x197992={},_0xcdd64c;return db[_0xf46f('0x4f')]['findOne']({'where':{'id':_0x5c0985[_0xf46f('0x54')]['id']}})[_0xf46f('0x33')](handleEntityNotFound(_0x5273a4,null))[_0xf46f('0x33')](function(_0x5bc7b5){if(_0x5bc7b5){_0xcdd64c=_0x5bc7b5[_0xf46f('0x59')]({'plain':!![]});_0x197992['model']=_[_0xf46f('0x3f')](db[_0xf46f('0x62')][_0xf46f('0x39')]);_0x197992[_0xf46f('0x3e')]=_['keys'](_0x5c0985['query']);_0x197992[_0xf46f('0x40')]=_[_0xf46f('0x41')](_0x197992[_0xf46f('0x3b')],_0x197992[_0xf46f('0x3e')]);_0x57c45c[_0xf46f('0x43')]=_['intersection'](_0x197992[_0xf46f('0x3b')],qs[_0xf46f('0x42')](_0x5c0985['query'][_0xf46f('0x42')]));_0x57c45c[_0xf46f('0x43')]=_0x57c45c[_0xf46f('0x43')]['length']?_0x57c45c['attributes']:_0x197992[_0xf46f('0x3b')];if(!_0x5c0985['query']['hasOwnProperty']('nolimit')){_0x57c45c['limit']=qs[_0xf46f('0x2c')](_0x5c0985['query'][_0xf46f('0x2c')]);_0x57c45c[_0xf46f('0x2a')]=qs[_0xf46f('0x2a')](_0x5c0985[_0xf46f('0x3e')][_0xf46f('0x2a')]);}_0x57c45c[_0xf46f('0x47')]=qs[_0xf46f('0x48')](_0x5c0985[_0xf46f('0x3e')][_0xf46f('0x48')]);_0x57c45c[_0xf46f('0x4a')]=qs[_0xf46f('0x40')](_[_0xf46f('0x63')](_0x5c0985[_0xf46f('0x3e')],_0x197992[_0xf46f('0x40')]));_0x57c45c[_0xf46f('0x4a')][_0xf46f('0x64')]=_0x5bc7b5['id'];if(_0x5c0985[_0xf46f('0x3e')][_0xf46f('0x49')]){_0x57c45c[_0xf46f('0x4a')]=_['merge'](_0x57c45c[_0xf46f('0x4a')],{'$or':_[_0xf46f('0x3c')](_0x57c45c[_0xf46f('0x43')],function(_0x2f607d){var _0x153feb={};_0x153feb[_0x2f607d]={'$like':'%'+_0x5c0985[_0xf46f('0x3e')][_0xf46f('0x49')]+'%'};return _0x153feb;})});}_0x57c45c=_['merge']({},_0x57c45c,_0x5c0985[_0xf46f('0x4e')]);return db['UserChatQueue']['findAll'](_0x57c45c);}})['then'](function(_0x194ca9){if(_0x194ca9){return db[_0xf46f('0x65')]['findAndCountAll']({'where':{'id':_[_0xf46f('0x3c')](_0x194ca9,_0xf46f('0x66')),'role':_0xf46f('0x67')},'attributes':['id',_0xf46f('0x3d'),'chatPause',_0xf46f('0x68'),_0xf46f('0x69')]});}})[_0xf46f('0x33')](function(_0x3387e7){if(_0x3387e7){return{'count':_0x3387e7['count'],'rows':_[_0xf46f('0x3c')](_0x3387e7[_0xf46f('0x53')],function(_0x2518d4){return{'membername':_0x2518d4[_0xf46f('0x3d')],'UserId':_0x2518d4['id'],'queue_name':_0xcdd64c[_0xf46f('0x3d')],'ChatQueueId':_0xcdd64c['id'],'interface':util[_0xf46f('0x6a')](_0xf46f('0x6b'),'SIP',_0x2518d4[_0xf46f('0x3d')]),'penalty':0x0,'paused':_0x2518d4['chatPause'],'createdAt':_0x2518d4[_0xf46f('0x69')],'updatedAt':_0x2518d4[_0xf46f('0x68')]};})};}else{return{'count':0x0,'rows':[]};}})[_0xf46f('0x33')](respondWithFilteredResult(_0x5273a4,_0x57c45c))['catch'](handleError(_0x5273a4,null));};exports['getTeams']=function(_0x39ca8e,_0xaa342e,_0x41496a){var _0x4b93d9={};var _0x57efee={};var _0xc05d43;var _0x582a6f;return db[_0xf46f('0x4f')]['findOne']({'where':{'id':_0x39ca8e[_0xf46f('0x54')]['id']}})[_0xf46f('0x33')](handleEntityNotFound(_0xaa342e,null))[_0xf46f('0x33')](function(_0x5b1641){if(_0x5b1641){_0xc05d43=_0x5b1641;_0x57efee[_0xf46f('0x3b')]=_['keys'](db[_0xf46f('0x6c')][_0xf46f('0x39')]);_0x57efee[_0xf46f('0x3e')]=_[_0xf46f('0x3f')](_0x39ca8e[_0xf46f('0x3e')]);_0x57efee[_0xf46f('0x40')]=_[_0xf46f('0x41')](_0x57efee[_0xf46f('0x3b')],_0x57efee[_0xf46f('0x3e')]);_0x4b93d9[_0xf46f('0x43')]=_[_0xf46f('0x41')](_0x57efee[_0xf46f('0x3b')],qs[_0xf46f('0x42')](_0x39ca8e[_0xf46f('0x3e')][_0xf46f('0x42')]));_0x4b93d9['attributes']=_0x4b93d9[_0xf46f('0x43')]['length']?_0x4b93d9['attributes']:_0x57efee[_0xf46f('0x3b')];_0x4b93d9[_0xf46f('0x47')]=qs[_0xf46f('0x48')](_0x39ca8e['query'][_0xf46f('0x48')]);_0x4b93d9[_0xf46f('0x4a')]=qs[_0xf46f('0x40')](_['pick'](_0x39ca8e[_0xf46f('0x3e')],_0x57efee[_0xf46f('0x40')]));if(_0x39ca8e[_0xf46f('0x3e')][_0xf46f('0x49')]){_0x4b93d9[_0xf46f('0x4a')]=_[_0xf46f('0x4d')](_0x4b93d9[_0xf46f('0x4a')],{'$or':_[_0xf46f('0x3c')](_0x4b93d9[_0xf46f('0x43')],function(_0x301dfa){var _0x4db549={};_0x4db549[_0x301dfa]={'$like':'%'+_0x39ca8e[_0xf46f('0x3e')][_0xf46f('0x49')]+'%'};return _0x4db549;})});}_0x4b93d9=_[_0xf46f('0x4d')]({},_0x4b93d9,_0x39ca8e[_0xf46f('0x4e')]);return _0xc05d43[_0xf46f('0x6d')](_0x4b93d9);}})['then'](function(_0x34960a){if(_0x34960a){_0x582a6f=_0x34960a['length'];if(!_0x39ca8e[_0xf46f('0x3e')][_0xf46f('0x45')](_0xf46f('0x46'))){_0x4b93d9[_0xf46f('0x2c')]=qs[_0xf46f('0x2c')](_0x39ca8e[_0xf46f('0x3e')][_0xf46f('0x2c')]);_0x4b93d9[_0xf46f('0x2a')]=qs[_0xf46f('0x2a')](_0x39ca8e[_0xf46f('0x3e')][_0xf46f('0x2a')]);}return _0xc05d43[_0xf46f('0x6d')](_0x4b93d9);}})[_0xf46f('0x33')](function(_0xd2512b){if(_0xd2512b){return _0xd2512b?{'count':_0x582a6f,'rows':_0xd2512b}:null;}})['then'](respondWithResult(_0xaa342e,null))[_0xf46f('0x25')](handleError(_0xaa342e,null));};exports[_0xf46f('0x6e')]=function(_0x4f0fad,_0x54abaa,_0x22bbf7){var _0x5a1a44=_0x4f0fad[_0xf46f('0x57')][_0xf46f('0x6f')];return db[_0xf46f('0x6c')][_0xf46f('0x52')]({'where':{'id':_0x5a1a44},'attributes':['id'],'include':[{'model':db[_0xf46f('0x65')],'as':_0xf46f('0x70'),'attributes':['id','name',_0xf46f('0x71'),'voicePause',_0xf46f('0x72')],'raw':!![]}]})[_0xf46f('0x33')](function(_0x16233b){if(_0x16233b){var _0x6f90ea=_[_0xf46f('0x73')](_0x16233b,function(_0x1fa8e7){var _0x59c577=_0x1fa8e7[_0xf46f('0x59')]({'plain':!![]});return _0x59c577[_0xf46f('0x70')];});return db[_0xf46f('0x4f')][_0xf46f('0x55')]({'where':{'id':_0x4f0fad[_0xf46f('0x54')]['id']}})[_0xf46f('0x33')](function(_0x5b9920){return db['sequelize']['transaction'](function(_0x294044){return _0x5b9920[_0xf46f('0x6e')](_0x5a1a44,{'transaction':_0x294044})[_0xf46f('0x33')](function(){return BPromise[_0xf46f('0x74')](_0x6f90ea,function(_0x583404){return db[_0xf46f('0x62')][_0xf46f('0x75')]({'where':{'UserId':_0x583404['id'],'ChatQueueId':_0x4f0fad['params']['id']},'transaction':_0x294044});});})[_0xf46f('0x33')](function(){_0x6f90ea['forEach'](function(_0x2f7557){socket[_0xf46f('0x76')](_0xf46f('0x77'),{'UserId':_0x2f7557['id'],'ChatQueueId':_0x5b9920['id']});});});});});}})[_0xf46f('0x33')](respondWithStatusCode(_0x54abaa,null))[_0xf46f('0x25')](handleError(_0x54abaa,null));};exports[_0xf46f('0x78')]=function(_0xe4335a,_0x25ed05,_0x481930){return db[_0xf46f('0x6c')][_0xf46f('0x52')]({'where':{'id':_0xe4335a['query'][_0xf46f('0x6f')]},'attributes':['id'],'include':[{'model':db[_0xf46f('0x65')],'as':_0xf46f('0x70'),'attributes':['id'],'raw':!![]}]})[_0xf46f('0x33')](handleEntityNotFound(_0x25ed05,null))[_0xf46f('0x33')](function(_0x3f4322){var _0x2a5979=_[_0xf46f('0x3c')](_0x3f4322,'id');var _0x46db5c=[];var _0x2af47a=[];var _0xea6e5d=squel[_0xf46f('0x79')]();_0xea6e5d[_0xf46f('0x7a')](_0xf46f('0x7b'))[_0xf46f('0x7c')](_0xf46f('0x7d'),'tq')['join'](_0xf46f('0x7e'),'ut',_0xf46f('0x7f'))[_0xf46f('0x4a')](_0xf46f('0x80'),_0xe4335a[_0xf46f('0x54')]['id']);for(var _0x36b7a9=0x0;_0x36b7a9<_0x3f4322[_0xf46f('0x44')];_0x36b7a9+=0x1){let _0x4e3147=_0x3f4322[_0x36b7a9];for(var _0x57a6d8=0x0;_0x57a6d8<_0x4e3147[_0xf46f('0x70')][_0xf46f('0x44')];_0x57a6d8+=0x1){let _0x1f2bc3=_0x4e3147[_0xf46f('0x70')][_0x57a6d8];var _0x77f107=_0xea6e5d[_0xf46f('0x81')]();_0x77f107['where']('ut.UserId\x20=\x20?',_0x1f2bc3['id']);_0x2af47a[_0xf46f('0x82')](db[_0xf46f('0x83')]['query'](_0x77f107[_0xf46f('0x84')](),{'type':db[_0xf46f('0x83')]['QueryTypes']['SELECT']})[_0xf46f('0x33')](function(_0x58262d){if(_0x58262d['length']===0x1){return _0x1f2bc3['id'];}else{var _0x287a6d=_[_0xf46f('0x85')](_['map'](_0x58262d,'TeamId'),function(_0x59e3af){return _[_0xf46f('0x86')](_0x2a5979,_0x59e3af);});if(_0x287a6d){return _0x1f2bc3['id'];}}}));}}return BPromise[_0xf46f('0x87')](_0x2af47a)[_0xf46f('0x33')](function(_0x158560){_0x46db5c=_(_0x46db5c)[_0xf46f('0x88')](_0x158560)[_0xf46f('0x89')]()[_0xf46f('0x8a')]();return db['ChatQueue']['find']({'where':{'id':_0xe4335a[_0xf46f('0x54')]['id']}})[_0xf46f('0x33')](function(_0x3a2a21){return db[_0xf46f('0x83')]['transaction'](function(_0x5c427b){return _0x3a2a21[_0xf46f('0x78')](_0xe4335a[_0xf46f('0x3e')]['ids'],{'transaction':_0x5c427b})[_0xf46f('0x33')](function(){if(!_[_0xf46f('0x8b')](_0x46db5c)){return _0x3a2a21[_0xf46f('0x8c')](_0x46db5c,{'transaction':_0x5c427b});}})[_0xf46f('0x33')](function(){_0x46db5c[_0xf46f('0x8d')](function(_0x555353){socket[_0xf46f('0x76')](_0xf46f('0x8e'),{'UserId':_0x555353,'ChatQueueId':_0x3a2a21['id']});});});});});});})[_0xf46f('0x33')](respondWithStatusCode(_0x25ed05,null))[_0xf46f('0x25')](handleError(_0x25ed05,null));};exports[_0xf46f('0x8f')]=function(_0x365757,_0x4b83a8,_0x30dcc2){return db[_0xf46f('0x4f')][_0xf46f('0x55')]({'where':{'id':_0x365757['params']['id']}})['then'](handleEntityNotFound(_0x4b83a8,null))[_0xf46f('0x33')](function(_0x5f3084){if(_0x5f3084){return _0x5f3084['addAgents'](_0x365757[_0xf46f('0x57')][_0xf46f('0x6f')],_[_0xf46f('0x90')](_0x365757[_0xf46f('0x57')],['ids','id'])||{})[_0xf46f('0x91')](function(_0x31e6ad){for(var _0x4eb6c3=0x0;_0x4eb6c3<_0x365757[_0xf46f('0x57')][_0xf46f('0x6f')][_0xf46f('0x44')];_0x4eb6c3+=0x1){socket['emit'](_0xf46f('0x77'),{'UserId':Number(_0x365757[_0xf46f('0x57')][_0xf46f('0x6f')][_0x4eb6c3]),'ChatQueueId':Number(_0x365757[_0xf46f('0x54')]['id'])});}return _0x31e6ad;});}})[_0xf46f('0x33')](respondWithResult(_0x4b83a8,null))[_0xf46f('0x25')](handleError(_0x4b83a8,null));};exports['removeAgents']=function(_0x40e42e,_0x59a76b,_0x40450d){return db[_0xf46f('0x4f')][_0xf46f('0x55')]({'where':{'id':_0x40e42e[_0xf46f('0x54')]['id']}})['then'](handleEntityNotFound(_0x59a76b,null))[_0xf46f('0x33')](function(_0x3bfd70){if(_0x3bfd70){return _0x3bfd70[_0xf46f('0x8c')](_0x40e42e[_0xf46f('0x3e')][_0xf46f('0x6f')])[_0xf46f('0x33')](function(){if(_[_0xf46f('0x92')](_0x40e42e[_0xf46f('0x3e')][_0xf46f('0x6f')])){for(var _0x1e92e7=0x0;_0x1e92e7<_0x40e42e['query'][_0xf46f('0x6f')][_0xf46f('0x44')];_0x1e92e7+=0x1){socket[_0xf46f('0x76')](_0xf46f('0x8e'),{'UserId':Number(_0x40e42e[_0xf46f('0x3e')][_0xf46f('0x6f')][_0x1e92e7]),'ChatQueueId':Number(_0x40e42e['params']['id'])});}}else{socket[_0xf46f('0x76')]('userChatQueue:remove',{'UserId':Number(_0x40e42e['query']['ids']),'ChatQueueId':Number(_0x40e42e['params']['id'])});}});}})[_0xf46f('0x33')](respondWithStatusCode(_0x59a76b,null))[_0xf46f('0x25')](handleError(_0x59a76b,null));};exports['getAgents']=function(_0x331870,_0x1d2a1f,_0x1684f2){var _0x46e54b={};var _0x4cec73={};var _0x4ed91f;var _0x19b1a3;return db['ChatQueue']['findOne']({'where':{'id':_0x331870['params']['id']}})['then'](handleEntityNotFound(_0x1d2a1f,null))[_0xf46f('0x33')](function(_0x2f5d19){if(_0x2f5d19){_0x4ed91f=_0x2f5d19;_0x4cec73['model']=_['keys'](db[_0xf46f('0x65')][_0xf46f('0x39')]);_0x4cec73[_0xf46f('0x3e')]=_[_0xf46f('0x3f')](_0x331870[_0xf46f('0x3e')]);_0x4cec73['filters']=_[_0xf46f('0x41')](_0x4cec73[_0xf46f('0x3b')],_0x4cec73[_0xf46f('0x3e')]);_0x46e54b[_0xf46f('0x43')]=_[_0xf46f('0x41')](_0x4cec73[_0xf46f('0x3b')],qs[_0xf46f('0x42')](_0x331870[_0xf46f('0x3e')]['fields']));_0x46e54b['attributes']=_0x46e54b[_0xf46f('0x43')][_0xf46f('0x44')]?_0x46e54b[_0xf46f('0x43')]:_0x4cec73['model'];_0x46e54b[_0xf46f('0x47')]=qs[_0xf46f('0x48')](_0x331870[_0xf46f('0x3e')][_0xf46f('0x48')]);_0x46e54b[_0xf46f('0x4a')]=qs[_0xf46f('0x40')](_[_0xf46f('0x63')](_0x331870[_0xf46f('0x3e')],_0x4cec73[_0xf46f('0x40')]));if(_0x331870[_0xf46f('0x3e')]['filter']){_0x46e54b['where']=_[_0xf46f('0x4d')](_0x46e54b['where'],{'$or':_[_0xf46f('0x3c')](_0x46e54b['attributes'],function(_0x40a688){var _0x508e7e={};_0x508e7e[_0x40a688]={'$like':'%'+_0x331870['query'][_0xf46f('0x49')]+'%'};return _0x508e7e;})});}_0x46e54b=_[_0xf46f('0x4d')]({},_0x46e54b,_0x331870[_0xf46f('0x4e')]);return _0x4ed91f[_0xf46f('0x93')](_0x46e54b);}})['then'](function(_0x3ed65f){if(_0x3ed65f){_0x19b1a3=_0x3ed65f['length'];if(!_0x331870[_0xf46f('0x3e')][_0xf46f('0x45')](_0xf46f('0x46'))){_0x46e54b['limit']=qs[_0xf46f('0x2c')](_0x331870['query'][_0xf46f('0x2c')]);_0x46e54b[_0xf46f('0x2a')]=qs[_0xf46f('0x2a')](_0x331870[_0xf46f('0x3e')][_0xf46f('0x2a')]);}return _0x4ed91f['getAgents'](_0x46e54b);}})[_0xf46f('0x33')](function(_0x4f695d){if(_0x4f695d){return _0x4f695d?{'count':_0x19b1a3,'rows':_0x4f695d}:null;}})[_0xf46f('0x33')](respondWithResult(_0x1d2a1f,null))[_0xf46f('0x25')](handleError(_0x1d2a1f,null));};
\ No newline at end of file
+var _0x1e82=['ejs','fs-extra','lodash','squel','jsforce','desk.js','to-csv','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','defaults','redis','localhost','register','jayson/promise','client','request','then','ChatQueue,\x20%s,\x20%s','ChatQueue,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','info','result','catch','sendStatus','end','status','offset','undefined','limit','count','set','reject','save','update','get','ChatQueues','destroy','stack','name','send','index','map','rawAttributes','fieldName','type','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','filters','filter','where','merge','VIRTUAL','ChatQueue','findAll','show','params','includeAll','include','options','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','find','userProfileId','autoAssociation','UserProfileResource','describe','getMembers','findOne','UserChatQueue','pick','User','findAndCountAll','agent','chatPause','updatedAt','createdAt','rows','format','getTeams','addTeams','online','voicePause','interface','flatMap','transaction','each','findOrCreate','emit','userChatQueue:save','removeTeams','Team','ids','Agents','select','field','from','team_has_chat_queues','user_has_teams','ChatQueueId\x20=\x20?','clone','ut.UserId\x20=\x20?','push','sequelize','toString','QueryTypes','SELECT','every','TeamId','includes','all','value','removeAgents','addAgents','omit','spread','isArray','userChatQueue:remove','getAgents','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','sox'];(function(_0x3ab51d,_0x2fa01d){var _0x29a04e=function(_0x7807b0){while(--_0x7807b0){_0x3ab51d['push'](_0x3ab51d['shift']());}};_0x29a04e(++_0x2fa01d);}(_0x1e82,0x8b));var _0x21e8=function(_0x14999b,_0x4452db){_0x14999b=_0x14999b-0x0;var _0x18b214=_0x1e82[_0x14999b];return _0x18b214;};'use strict';var emlformat=require(_0x21e8('0x0'));var rimraf=require(_0x21e8('0x1'));var zipdir=require(_0x21e8('0x2'));var jsonpatch=require(_0x21e8('0x3'));var rp=require(_0x21e8('0x4'));var moment=require(_0x21e8('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x21e8('0x6'));var util=require(_0x21e8('0x7'));var path=require('path');var sox=require(_0x21e8('0x8'));var csv=require('to-csv');var ejs=require(_0x21e8('0x9'));var fs=require('fs');var fs_extra=require(_0x21e8('0xa'));var _=require(_0x21e8('0xb'));var squel=require(_0x21e8('0xc'));var crypto=require('crypto');var jsforce=require(_0x21e8('0xd'));var deskjs=require(_0x21e8('0xe'));var toCsv=require(_0x21e8('0xf'));var querystring=require('querystring');var Papa=require(_0x21e8('0x10'));var Redis=require(_0x21e8('0x11'));var authService=require(_0x21e8('0x12'));var qs=require(_0x21e8('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x21e8('0x14'))('api');var utils=require(_0x21e8('0x15'));var config=require(_0x21e8('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0x21e8('0x17'))['db'];config['redis']=_[_0x21e8('0x18')](config[_0x21e8('0x19')],{'host':_0x21e8('0x1a'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x21e8('0x19')]));require('./chatQueue.socket')[_0x21e8('0x1b')](socket);var jayson=require(_0x21e8('0x1c'));var client=jayson[_0x21e8('0x1d')]['http']({'port':0x232a});function respondWithRpcPromise(_0x4ee658,_0xdd4891,_0x363856,_0x2b6ad6){return new BPromise(function(_0x18915a,_0x1697d4){var _0x13da4f=_0x2b6ad6||client;return _0x13da4f[_0x21e8('0x1e')](_0x4ee658,_0x363856)[_0x21e8('0x1f')](function(_0x1a8a5a){logger['info'](_0x21e8('0x20'),_0xdd4891,'request\x20sent');logger['debug'](_0x21e8('0x21'),_0xdd4891,_0x21e8('0x22'),JSON[_0x21e8('0x23')](_0x1a8a5a));if(_0x1a8a5a[_0x21e8('0x24')]){if(_0x1a8a5a['error'][_0x21e8('0x25')]===0x1f4){logger[_0x21e8('0x24')](_0x21e8('0x20'),_0xdd4891,_0x1a8a5a[_0x21e8('0x24')][_0x21e8('0x26')]);return _0x1697d4(_0x1a8a5a[_0x21e8('0x24')][_0x21e8('0x26')]);}logger[_0x21e8('0x24')]('ChatQueue,\x20%s,\x20%s',_0xdd4891,_0x1a8a5a[_0x21e8('0x24')][_0x21e8('0x26')]);return _0x18915a(_0x1a8a5a['error'][_0x21e8('0x26')]);}else{logger[_0x21e8('0x27')](_0x21e8('0x20'),_0xdd4891,_0x21e8('0x22'));_0x18915a(_0x1a8a5a[_0x21e8('0x28')][_0x21e8('0x26')]);}})[_0x21e8('0x29')](function(_0x3ed4c3){logger['error'](_0x21e8('0x20'),_0xdd4891,_0x3ed4c3);_0x1697d4(_0x3ed4c3);});});}function respondWithStatusCode(_0x5964ab,_0x232351){_0x232351=_0x232351||0xcc;return function(_0x364dad){if(_0x364dad){return _0x5964ab[_0x21e8('0x2a')](_0x232351);}return _0x5964ab['status'](_0x232351)[_0x21e8('0x2b')]();};}function respondWithResult(_0x526e32,_0x537902){_0x537902=_0x537902||0xc8;return function(_0x1876da){if(_0x1876da){return _0x526e32[_0x21e8('0x2c')](_0x537902)['json'](_0x1876da);}};}function respondWithFilteredResult(_0x1f6796,_0x2312a5){return function(_0x364cd8){if(_0x364cd8){var _0x5e79c5=typeof _0x2312a5[_0x21e8('0x2d')]===_0x21e8('0x2e')&&typeof _0x2312a5[_0x21e8('0x2f')]===_0x21e8('0x2e');var _0x1c58e2=_0x364cd8[_0x21e8('0x30')];var _0x2116f2=_0x5e79c5?0x0:_0x2312a5[_0x21e8('0x2d')];var _0x20d095=_0x5e79c5?_0x364cd8[_0x21e8('0x30')]:_0x2312a5[_0x21e8('0x2d')]+_0x2312a5[_0x21e8('0x2f')];var _0x484f5b;if(_0x20d095>=_0x1c58e2){_0x20d095=_0x1c58e2;_0x484f5b=0xc8;}else{_0x484f5b=0xce;}_0x1f6796[_0x21e8('0x2c')](_0x484f5b);return _0x1f6796[_0x21e8('0x31')]('Content-Range',_0x2116f2+'-'+_0x20d095+'/'+_0x1c58e2)['json'](_0x364cd8);}return null;};}function patchUpdates(_0x51e253){return function(_0x9f1117){try{jsonpatch['apply'](_0x9f1117,_0x51e253,!![]);}catch(_0x45be6f){return BPromise[_0x21e8('0x32')](_0x45be6f);}return _0x9f1117[_0x21e8('0x33')]();};}function saveUpdates(_0x8a1d94,_0x4d73cd){return function(_0x5b5291){if(_0x5b5291){return _0x5b5291[_0x21e8('0x34')](_0x8a1d94)['then'](function(_0x2c20ec){return _0x2c20ec;});}return null;};}function removeEntity(_0x1cf161,_0x25d51e){return function(_0x3e5508){if(_0x3e5508){return _0x3e5508['destroy']()[_0x21e8('0x1f')](function(){var _0x2acb3b=_0x3e5508[_0x21e8('0x35')]({'plain':!![]});var _0x31cb59=_0x21e8('0x36');return db['UserProfileResource'][_0x21e8('0x37')]({'where':{'type':_0x31cb59,'resourceId':_0x2acb3b['id']}})[_0x21e8('0x1f')](function(){return _0x3e5508;});})[_0x21e8('0x1f')](function(){_0x1cf161[_0x21e8('0x2c')](0xcc)[_0x21e8('0x2b')]();});}};}function handleEntityNotFound(_0x6d322,_0x1abde0){return function(_0x12c410){if(!_0x12c410){_0x6d322[_0x21e8('0x2a')](0x194);}return _0x12c410;};}function handleError(_0x2b2d14,_0xacef9e){_0xacef9e=_0xacef9e||0x1f4;return function(_0x242f9a){logger[_0x21e8('0x24')](_0x242f9a[_0x21e8('0x38')]);if(_0x242f9a[_0x21e8('0x39')]){delete _0x242f9a['name'];}_0x2b2d14[_0x21e8('0x2c')](_0xacef9e)[_0x21e8('0x3a')](_0x242f9a);};}exports[_0x21e8('0x3b')]=function(_0x465ed2,_0xce2ac8){var _0x741034={},_0x3d86c2={},_0x3ebf0b={'count':0x0,'rows':[]};var _0x801fcc=_[_0x21e8('0x3c')](db['ChatQueue'][_0x21e8('0x3d')],function(_0x4f893c){return{'name':_0x4f893c[_0x21e8('0x3e')],'type':_0x4f893c[_0x21e8('0x3f')]['key']};});_0x3d86c2[_0x21e8('0x40')]=_[_0x21e8('0x3c')](_0x801fcc,_0x21e8('0x39'));_0x3d86c2[_0x21e8('0x41')]=_[_0x21e8('0x42')](_0x465ed2['query']);_0x3d86c2['filters']=_[_0x21e8('0x43')](_0x3d86c2[_0x21e8('0x40')],_0x3d86c2[_0x21e8('0x41')]);_0x741034[_0x21e8('0x44')]=_[_0x21e8('0x43')](_0x3d86c2[_0x21e8('0x40')],qs[_0x21e8('0x45')](_0x465ed2['query'][_0x21e8('0x45')]));_0x741034['attributes']=_0x741034[_0x21e8('0x44')][_0x21e8('0x46')]?_0x741034[_0x21e8('0x44')]:_0x3d86c2[_0x21e8('0x40')];if(!_0x465ed2[_0x21e8('0x41')][_0x21e8('0x47')](_0x21e8('0x48'))){_0x741034[_0x21e8('0x2f')]=qs[_0x21e8('0x2f')](_0x465ed2[_0x21e8('0x41')]['limit']);_0x741034[_0x21e8('0x2d')]=qs[_0x21e8('0x2d')](_0x465ed2[_0x21e8('0x41')]['offset']);}_0x741034[_0x21e8('0x49')]=qs[_0x21e8('0x4a')](_0x465ed2[_0x21e8('0x41')]['sort']);_0x741034['where']=qs[_0x21e8('0x4b')](_['pick'](_0x465ed2['query'],_0x3d86c2['filters']),_0x801fcc);if(_0x465ed2[_0x21e8('0x41')][_0x21e8('0x4c')]){_0x741034[_0x21e8('0x4d')]=_[_0x21e8('0x4e')](_0x741034[_0x21e8('0x4d')],{'$or':_[_0x21e8('0x3c')](_0x801fcc,function(_0x3063eb){if(_0x3063eb[_0x21e8('0x3f')]!==_0x21e8('0x4f')){var _0x5c3e12={};_0x5c3e12[_0x3063eb[_0x21e8('0x39')]]={'$like':'%'+_0x465ed2[_0x21e8('0x41')][_0x21e8('0x4c')]+'%'};return _0x5c3e12;}})});}_0x741034=_[_0x21e8('0x4e')]({},_0x741034,_0x465ed2['options']);var _0x11bf53={'where':_0x741034['where']};return db[_0x21e8('0x50')][_0x21e8('0x30')](_0x11bf53)['then'](function(_0xd1ab19){_0x3ebf0b[_0x21e8('0x30')]=_0xd1ab19;if(_0x465ed2[_0x21e8('0x41')]['includeAll']){_0x741034['include']=[{'all':!![]}];}return db[_0x21e8('0x50')][_0x21e8('0x51')](_0x741034);})[_0x21e8('0x1f')](function(_0x37546f){_0x3ebf0b['rows']=_0x37546f;return _0x3ebf0b;})['then'](respondWithFilteredResult(_0xce2ac8,_0x741034))['catch'](handleError(_0xce2ac8,null));};exports[_0x21e8('0x52')]=function(_0x3f41a5,_0x4d7da4){var _0x1e1aa4={'raw':!![],'where':{'id':_0x3f41a5[_0x21e8('0x53')]['id']}},_0x21ad49={};_0x21ad49[_0x21e8('0x40')]=_[_0x21e8('0x42')](db[_0x21e8('0x50')]['rawAttributes']);_0x21ad49[_0x21e8('0x41')]=_[_0x21e8('0x42')](_0x3f41a5[_0x21e8('0x41')]);_0x21ad49[_0x21e8('0x4b')]=_['intersection'](_0x21ad49['model'],_0x21ad49[_0x21e8('0x41')]);_0x1e1aa4['attributes']=_[_0x21e8('0x43')](_0x21ad49[_0x21e8('0x40')],qs[_0x21e8('0x45')](_0x3f41a5[_0x21e8('0x41')][_0x21e8('0x45')]));_0x1e1aa4[_0x21e8('0x44')]=_0x1e1aa4['attributes']['length']?_0x1e1aa4['attributes']:_0x21ad49['model'];if(_0x3f41a5[_0x21e8('0x41')][_0x21e8('0x54')]){_0x1e1aa4[_0x21e8('0x55')]=[{'all':!![]}];}_0x1e1aa4=_[_0x21e8('0x4e')]({},_0x1e1aa4,_0x3f41a5[_0x21e8('0x56')]);return db['ChatQueue']['find'](_0x1e1aa4)[_0x21e8('0x1f')](handleEntityNotFound(_0x4d7da4,null))[_0x21e8('0x1f')](respondWithResult(_0x4d7da4,null))[_0x21e8('0x29')](handleError(_0x4d7da4,null));};exports[_0x21e8('0x57')]=function(_0x47acbc,_0x11ff1f){return db[_0x21e8('0x50')][_0x21e8('0x57')](_0x47acbc[_0x21e8('0x58')],{})[_0x21e8('0x1f')](function(_0x10dbe0){var _0x5c4f55=_0x47acbc[_0x21e8('0x59')][_0x21e8('0x35')]({'plain':!![]});if(!_0x5c4f55)throw new Error(_0x21e8('0x5a'));if(_0x5c4f55['role']===_0x21e8('0x59')){var _0x43942c=_0x10dbe0['get']({'plain':!![]});var _0x30ec73='ChatQueues';return db['UserProfileSection'][_0x21e8('0x5b')]({'where':{'name':_0x30ec73,'userProfileId':_0x5c4f55[_0x21e8('0x5c')]},'raw':!![]})[_0x21e8('0x1f')](function(_0x352ce8){if(_0x352ce8&&_0x352ce8[_0x21e8('0x5d')]===0x0){return db[_0x21e8('0x5e')][_0x21e8('0x57')]({'name':_0x43942c[_0x21e8('0x39')],'resourceId':_0x43942c['id'],'type':_0x352ce8[_0x21e8('0x39')],'sectionId':_0x352ce8['id']},{})[_0x21e8('0x1f')](function(){return _0x10dbe0;});}else{return _0x10dbe0;}})['catch'](function(_0x17a376){logger[_0x21e8('0x24')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x17a376);throw _0x17a376;});}return _0x10dbe0;})['then'](respondWithResult(_0x11ff1f,0xc9))[_0x21e8('0x29')](handleError(_0x11ff1f,null));};exports[_0x21e8('0x34')]=function(_0xc7690f,_0x33e490){if(_0xc7690f[_0x21e8('0x58')]['id']){delete _0xc7690f[_0x21e8('0x58')]['id'];}return db[_0x21e8('0x50')][_0x21e8('0x5b')]({'where':{'id':_0xc7690f['params']['id']}})[_0x21e8('0x1f')](handleEntityNotFound(_0x33e490,null))[_0x21e8('0x1f')](saveUpdates(_0xc7690f[_0x21e8('0x58')],null))[_0x21e8('0x1f')](respondWithResult(_0x33e490,null))[_0x21e8('0x29')](handleError(_0x33e490,null));};exports[_0x21e8('0x37')]=function(_0xe5dd78,_0x484c37){return db[_0x21e8('0x50')][_0x21e8('0x5b')]({'where':{'id':_0xe5dd78[_0x21e8('0x53')]['id']}})[_0x21e8('0x1f')](handleEntityNotFound(_0x484c37,null))['then'](removeEntity(_0x484c37,null))['catch'](handleError(_0x484c37,null));};exports[_0x21e8('0x5f')]=function(_0x1ca3d6,_0x152cad){return db[_0x21e8('0x50')][_0x21e8('0x5f')]()[_0x21e8('0x1f')](respondWithResult(_0x152cad,null))[_0x21e8('0x29')](handleError(_0x152cad,null));};exports[_0x21e8('0x60')]=function(_0x5d471c,_0xf517dd,_0x2cc4f0){var _0x519095={'raw':!![],'where':{}},_0x43bd2f={},_0x24c3ab;return db['ChatQueue'][_0x21e8('0x61')]({'where':{'id':_0x5d471c[_0x21e8('0x53')]['id']}})[_0x21e8('0x1f')](handleEntityNotFound(_0xf517dd,null))[_0x21e8('0x1f')](function(_0x21e861){if(_0x21e861){_0x24c3ab=_0x21e861[_0x21e8('0x35')]({'plain':!![]});_0x43bd2f[_0x21e8('0x40')]=_[_0x21e8('0x42')](db[_0x21e8('0x62')][_0x21e8('0x3d')]);_0x43bd2f[_0x21e8('0x41')]=_[_0x21e8('0x42')](_0x5d471c[_0x21e8('0x41')]);_0x43bd2f[_0x21e8('0x4b')]=_['intersection'](_0x43bd2f[_0x21e8('0x40')],_0x43bd2f[_0x21e8('0x41')]);_0x519095['attributes']=_[_0x21e8('0x43')](_0x43bd2f[_0x21e8('0x40')],qs['fields'](_0x5d471c[_0x21e8('0x41')][_0x21e8('0x45')]));_0x519095[_0x21e8('0x44')]=_0x519095['attributes'][_0x21e8('0x46')]?_0x519095[_0x21e8('0x44')]:_0x43bd2f[_0x21e8('0x40')];if(!_0x5d471c[_0x21e8('0x41')]['hasOwnProperty'](_0x21e8('0x48'))){_0x519095[_0x21e8('0x2f')]=qs[_0x21e8('0x2f')](_0x5d471c['query'][_0x21e8('0x2f')]);_0x519095[_0x21e8('0x2d')]=qs[_0x21e8('0x2d')](_0x5d471c[_0x21e8('0x41')][_0x21e8('0x2d')]);}_0x519095['order']=qs[_0x21e8('0x4a')](_0x5d471c[_0x21e8('0x41')]['sort']);_0x519095['where']=qs[_0x21e8('0x4b')](_[_0x21e8('0x63')](_0x5d471c[_0x21e8('0x41')],_0x43bd2f[_0x21e8('0x4b')]));_0x519095[_0x21e8('0x4d')]['ChatQueueId']=_0x21e861['id'];if(_0x5d471c[_0x21e8('0x41')][_0x21e8('0x4c')]){_0x519095['where']=_[_0x21e8('0x4e')](_0x519095[_0x21e8('0x4d')],{'$or':_[_0x21e8('0x3c')](_0x519095[_0x21e8('0x44')],function(_0x4f5b8d){var _0x1dcfe3={};_0x1dcfe3[_0x4f5b8d]={'$like':'%'+_0x5d471c[_0x21e8('0x41')][_0x21e8('0x4c')]+'%'};return _0x1dcfe3;})});}_0x519095=_[_0x21e8('0x4e')]({},_0x519095,_0x5d471c[_0x21e8('0x56')]);return db['UserChatQueue']['findAll'](_0x519095);}})[_0x21e8('0x1f')](function(_0x2559ea){if(_0x2559ea){return db[_0x21e8('0x64')][_0x21e8('0x65')]({'where':{'id':_['map'](_0x2559ea,'UserId'),'role':_0x21e8('0x66')},'attributes':['id',_0x21e8('0x39'),_0x21e8('0x67'),_0x21e8('0x68'),_0x21e8('0x69')]});}})[_0x21e8('0x1f')](function(_0x50d9be){if(_0x50d9be){return{'count':_0x50d9be['count'],'rows':_[_0x21e8('0x3c')](_0x50d9be[_0x21e8('0x6a')],function(_0x399e3e){return{'membername':_0x399e3e[_0x21e8('0x39')],'UserId':_0x399e3e['id'],'queue_name':_0x24c3ab[_0x21e8('0x39')],'ChatQueueId':_0x24c3ab['id'],'interface':util[_0x21e8('0x6b')]('%s/%s','SIP',_0x399e3e[_0x21e8('0x39')]),'penalty':0x0,'paused':_0x399e3e[_0x21e8('0x67')],'createdAt':_0x399e3e[_0x21e8('0x69')],'updatedAt':_0x399e3e[_0x21e8('0x68')]};})};}else{return{'count':0x0,'rows':[]};}})[_0x21e8('0x1f')](respondWithFilteredResult(_0xf517dd,_0x519095))[_0x21e8('0x29')](handleError(_0xf517dd,null));};exports[_0x21e8('0x6c')]=function(_0x2b8398,_0x4b51ed,_0x1144ae){var _0x4fe360={};var _0x319e04={};var _0x416527;var _0x2ce26f;return db[_0x21e8('0x50')][_0x21e8('0x61')]({'where':{'id':_0x2b8398[_0x21e8('0x53')]['id']}})[_0x21e8('0x1f')](handleEntityNotFound(_0x4b51ed,null))['then'](function(_0x2251ca){if(_0x2251ca){_0x416527=_0x2251ca;_0x319e04[_0x21e8('0x40')]=_['keys'](db['Team'][_0x21e8('0x3d')]);_0x319e04[_0x21e8('0x41')]=_[_0x21e8('0x42')](_0x2b8398['query']);_0x319e04[_0x21e8('0x4b')]=_[_0x21e8('0x43')](_0x319e04['model'],_0x319e04[_0x21e8('0x41')]);_0x4fe360[_0x21e8('0x44')]=_[_0x21e8('0x43')](_0x319e04['model'],qs[_0x21e8('0x45')](_0x2b8398[_0x21e8('0x41')]['fields']));_0x4fe360[_0x21e8('0x44')]=_0x4fe360[_0x21e8('0x44')][_0x21e8('0x46')]?_0x4fe360['attributes']:_0x319e04[_0x21e8('0x40')];_0x4fe360['order']=qs['sort'](_0x2b8398[_0x21e8('0x41')][_0x21e8('0x4a')]);_0x4fe360['where']=qs[_0x21e8('0x4b')](_['pick'](_0x2b8398['query'],_0x319e04[_0x21e8('0x4b')]));if(_0x2b8398['query'][_0x21e8('0x4c')]){_0x4fe360[_0x21e8('0x4d')]=_['merge'](_0x4fe360[_0x21e8('0x4d')],{'$or':_[_0x21e8('0x3c')](_0x4fe360['attributes'],function(_0x3710af){var _0x56c80f={};_0x56c80f[_0x3710af]={'$like':'%'+_0x2b8398[_0x21e8('0x41')][_0x21e8('0x4c')]+'%'};return _0x56c80f;})});}_0x4fe360=_[_0x21e8('0x4e')]({},_0x4fe360,_0x2b8398[_0x21e8('0x56')]);return _0x416527['getTeams'](_0x4fe360);}})[_0x21e8('0x1f')](function(_0x41d81f){if(_0x41d81f){_0x2ce26f=_0x41d81f['length'];if(!_0x2b8398['query'][_0x21e8('0x47')]('nolimit')){_0x4fe360[_0x21e8('0x2f')]=qs[_0x21e8('0x2f')](_0x2b8398[_0x21e8('0x41')][_0x21e8('0x2f')]);_0x4fe360[_0x21e8('0x2d')]=qs[_0x21e8('0x2d')](_0x2b8398[_0x21e8('0x41')][_0x21e8('0x2d')]);}return _0x416527['getTeams'](_0x4fe360);}})[_0x21e8('0x1f')](function(_0x1f0838){if(_0x1f0838){return _0x1f0838?{'count':_0x2ce26f,'rows':_0x1f0838}:null;}})[_0x21e8('0x1f')](respondWithResult(_0x4b51ed,null))[_0x21e8('0x29')](handleError(_0x4b51ed,null));};exports[_0x21e8('0x6d')]=function(_0x4eb54e,_0xa9701,_0x37c6d1){var _0x14ab9=_0x4eb54e['body']['ids'];return db['Team'][_0x21e8('0x51')]({'where':{'id':_0x14ab9},'attributes':['id'],'include':[{'model':db[_0x21e8('0x64')],'as':'Agents','attributes':['id',_0x21e8('0x39'),_0x21e8('0x6e'),_0x21e8('0x6f'),_0x21e8('0x70')],'raw':!![]}]})['then'](function(_0x524bd6){if(_0x524bd6){var _0x2a8d57=_[_0x21e8('0x71')](_0x524bd6,function(_0x2eb5d0){var _0x3cae74=_0x2eb5d0['get']({'plain':!![]});return _0x3cae74['Agents'];});return db[_0x21e8('0x50')][_0x21e8('0x5b')]({'where':{'id':_0x4eb54e[_0x21e8('0x53')]['id']}})['then'](function(_0x4ebd7e){return db['sequelize'][_0x21e8('0x72')](function(_0x2fac3a){return _0x4ebd7e[_0x21e8('0x6d')](_0x14ab9,{'transaction':_0x2fac3a})[_0x21e8('0x1f')](function(){return BPromise[_0x21e8('0x73')](_0x2a8d57,function(_0x37d57a){return db[_0x21e8('0x62')][_0x21e8('0x74')]({'where':{'UserId':_0x37d57a['id'],'ChatQueueId':_0x4eb54e[_0x21e8('0x53')]['id']},'transaction':_0x2fac3a});});})[_0x21e8('0x1f')](function(){_0x2a8d57['forEach'](function(_0x1f5c23){socket[_0x21e8('0x75')](_0x21e8('0x76'),{'UserId':_0x1f5c23['id'],'ChatQueueId':_0x4ebd7e['id']});});});});});}})[_0x21e8('0x1f')](respondWithStatusCode(_0xa9701,null))[_0x21e8('0x29')](handleError(_0xa9701,null));};exports[_0x21e8('0x77')]=function(_0x585e8c,_0x10418e,_0x8781dd){return db[_0x21e8('0x78')][_0x21e8('0x51')]({'where':{'id':_0x585e8c['query'][_0x21e8('0x79')]},'attributes':['id'],'include':[{'model':db[_0x21e8('0x64')],'as':_0x21e8('0x7a'),'attributes':['id'],'raw':!![]}]})[_0x21e8('0x1f')](handleEntityNotFound(_0x10418e,null))['then'](function(_0x45729b){var _0xc34205=_['map'](_0x45729b,'id');var _0x595d1e=[];var _0x215ba1=[];var _0x58314f=squel[_0x21e8('0x7b')]();_0x58314f[_0x21e8('0x7c')]('tq.TeamId')[_0x21e8('0x7d')](_0x21e8('0x7e'),'tq')['join'](_0x21e8('0x7f'),'ut','ut.TeamId\x20=\x20tq.TeamId')[_0x21e8('0x4d')](_0x21e8('0x80'),_0x585e8c[_0x21e8('0x53')]['id']);for(var _0x51c8dc=0x0;_0x51c8dc<_0x45729b[_0x21e8('0x46')];_0x51c8dc+=0x1){let _0x109595=_0x45729b[_0x51c8dc];for(var _0x26557b=0x0;_0x26557b<_0x109595['Agents'][_0x21e8('0x46')];_0x26557b+=0x1){let _0x568563=_0x109595[_0x21e8('0x7a')][_0x26557b];var _0x1a0864=_0x58314f[_0x21e8('0x81')]();_0x1a0864['where'](_0x21e8('0x82'),_0x568563['id']);_0x215ba1[_0x21e8('0x83')](db[_0x21e8('0x84')]['query'](_0x1a0864[_0x21e8('0x85')](),{'type':db['sequelize'][_0x21e8('0x86')][_0x21e8('0x87')]})['then'](function(_0x1dbe07){if(_0x1dbe07['length']===0x1){return _0x568563['id'];}else{var _0x4b3ac7=_[_0x21e8('0x88')](_[_0x21e8('0x3c')](_0x1dbe07,_0x21e8('0x89')),function(_0x4328ce){return _[_0x21e8('0x8a')](_0xc34205,_0x4328ce);});if(_0x4b3ac7){return _0x568563['id'];}}}));}}return BPromise[_0x21e8('0x8b')](_0x215ba1)[_0x21e8('0x1f')](function(_0x596975){_0x595d1e=_(_0x595d1e)['union'](_0x596975)['compact']()[_0x21e8('0x8c')]();return db[_0x21e8('0x50')]['find']({'where':{'id':_0x585e8c[_0x21e8('0x53')]['id']}})['then'](function(_0x2f89bb){return db[_0x21e8('0x84')][_0x21e8('0x72')](function(_0x9e9ad2){return _0x2f89bb[_0x21e8('0x77')](_0x585e8c[_0x21e8('0x41')][_0x21e8('0x79')],{'transaction':_0x9e9ad2})[_0x21e8('0x1f')](function(){if(!_['isEmpty'](_0x595d1e)){return _0x2f89bb[_0x21e8('0x8d')](_0x595d1e,{'transaction':_0x9e9ad2});}})[_0x21e8('0x1f')](function(){_0x595d1e['forEach'](function(_0xed2062){socket[_0x21e8('0x75')]('userChatQueue:remove',{'UserId':_0xed2062,'ChatQueueId':_0x2f89bb['id']});});});});});});})[_0x21e8('0x1f')](respondWithStatusCode(_0x10418e,null))[_0x21e8('0x29')](handleError(_0x10418e,null));};exports['addAgents']=function(_0x63e7cd,_0xb36261,_0x243461){return db[_0x21e8('0x50')][_0x21e8('0x5b')]({'where':{'id':_0x63e7cd[_0x21e8('0x53')]['id']}})[_0x21e8('0x1f')](handleEntityNotFound(_0xb36261,null))[_0x21e8('0x1f')](function(_0x52d9bd){if(_0x52d9bd){return _0x52d9bd[_0x21e8('0x8e')](_0x63e7cd[_0x21e8('0x58')][_0x21e8('0x79')],_[_0x21e8('0x8f')](_0x63e7cd['body'],[_0x21e8('0x79'),'id'])||{})[_0x21e8('0x90')](function(_0x3afd16){for(var _0x5bee1f=0x0;_0x5bee1f<_0x63e7cd[_0x21e8('0x58')]['ids'][_0x21e8('0x46')];_0x5bee1f+=0x1){socket['emit'](_0x21e8('0x76'),{'UserId':Number(_0x63e7cd[_0x21e8('0x58')][_0x21e8('0x79')][_0x5bee1f]),'ChatQueueId':Number(_0x63e7cd['params']['id'])});}return _0x3afd16;});}})[_0x21e8('0x1f')](respondWithResult(_0xb36261,null))['catch'](handleError(_0xb36261,null));};exports[_0x21e8('0x8d')]=function(_0x38accb,_0x26fa5,_0x325a0d){return db[_0x21e8('0x50')][_0x21e8('0x5b')]({'where':{'id':_0x38accb[_0x21e8('0x53')]['id']}})['then'](handleEntityNotFound(_0x26fa5,null))[_0x21e8('0x1f')](function(_0x242e04){if(_0x242e04){return _0x242e04[_0x21e8('0x8d')](_0x38accb[_0x21e8('0x41')]['ids'])['then'](function(){if(_[_0x21e8('0x91')](_0x38accb[_0x21e8('0x41')][_0x21e8('0x79')])){for(var _0x498699=0x0;_0x498699<_0x38accb[_0x21e8('0x41')][_0x21e8('0x79')]['length'];_0x498699+=0x1){socket[_0x21e8('0x75')](_0x21e8('0x92'),{'UserId':Number(_0x38accb[_0x21e8('0x41')]['ids'][_0x498699]),'ChatQueueId':Number(_0x38accb['params']['id'])});}}else{socket['emit'](_0x21e8('0x92'),{'UserId':Number(_0x38accb[_0x21e8('0x41')]['ids']),'ChatQueueId':Number(_0x38accb['params']['id'])});}});}})['then'](respondWithStatusCode(_0x26fa5,null))[_0x21e8('0x29')](handleError(_0x26fa5,null));};exports[_0x21e8('0x93')]=function(_0x24e3f1,_0x582120,_0x5bd68f){var _0x2c499e={};var _0x3f44d0={};var _0x48eb3e;var _0x497e66;return db[_0x21e8('0x50')][_0x21e8('0x61')]({'where':{'id':_0x24e3f1['params']['id']}})[_0x21e8('0x1f')](handleEntityNotFound(_0x582120,null))[_0x21e8('0x1f')](function(_0x12cf3d){if(_0x12cf3d){_0x48eb3e=_0x12cf3d;_0x3f44d0[_0x21e8('0x40')]=_[_0x21e8('0x42')](db[_0x21e8('0x64')]['rawAttributes']);_0x3f44d0[_0x21e8('0x41')]=_[_0x21e8('0x42')](_0x24e3f1[_0x21e8('0x41')]);_0x3f44d0[_0x21e8('0x4b')]=_[_0x21e8('0x43')](_0x3f44d0[_0x21e8('0x40')],_0x3f44d0[_0x21e8('0x41')]);_0x2c499e[_0x21e8('0x44')]=_[_0x21e8('0x43')](_0x3f44d0[_0x21e8('0x40')],qs[_0x21e8('0x45')](_0x24e3f1[_0x21e8('0x41')][_0x21e8('0x45')]));_0x2c499e[_0x21e8('0x44')]=_0x2c499e[_0x21e8('0x44')][_0x21e8('0x46')]?_0x2c499e['attributes']:_0x3f44d0['model'];_0x2c499e['order']=qs[_0x21e8('0x4a')](_0x24e3f1['query'][_0x21e8('0x4a')]);_0x2c499e['where']=qs['filters'](_[_0x21e8('0x63')](_0x24e3f1['query'],_0x3f44d0[_0x21e8('0x4b')]));if(_0x24e3f1['query'][_0x21e8('0x4c')]){_0x2c499e[_0x21e8('0x4d')]=_[_0x21e8('0x4e')](_0x2c499e[_0x21e8('0x4d')],{'$or':_[_0x21e8('0x3c')](_0x2c499e[_0x21e8('0x44')],function(_0x1b5028){var _0x1bc2e8={};_0x1bc2e8[_0x1b5028]={'$like':'%'+_0x24e3f1[_0x21e8('0x41')][_0x21e8('0x4c')]+'%'};return _0x1bc2e8;})});}_0x2c499e=_[_0x21e8('0x4e')]({},_0x2c499e,_0x24e3f1[_0x21e8('0x56')]);return _0x48eb3e['getAgents'](_0x2c499e);}})[_0x21e8('0x1f')](function(_0x2f75f7){if(_0x2f75f7){_0x497e66=_0x2f75f7[_0x21e8('0x46')];if(!_0x24e3f1[_0x21e8('0x41')][_0x21e8('0x47')](_0x21e8('0x48'))){_0x2c499e[_0x21e8('0x2f')]=qs[_0x21e8('0x2f')](_0x24e3f1[_0x21e8('0x41')][_0x21e8('0x2f')]);_0x2c499e[_0x21e8('0x2d')]=qs['offset'](_0x24e3f1[_0x21e8('0x41')][_0x21e8('0x2d')]);}return _0x48eb3e[_0x21e8('0x93')](_0x2c499e);}})[_0x21e8('0x1f')](function(_0x519cb3){if(_0x519cb3){return _0x519cb3?{'count':_0x497e66,'rows':_0x519cb3}:null;}})[_0x21e8('0x1f')](respondWithResult(_0x582120,null))[_0x21e8('0x29')](handleError(_0x582120,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe94b=['emit','hasOwnProperty','hook','save','update','remove'];(function(_0x17f321,_0xd6ba56){var _0xf1144e=function(_0x1170f5){while(--_0x1170f5){_0x17f321['push'](_0x17f321['shift']());}};_0xf1144e(++_0xd6ba56);}(_0xe94b,0x7b));var _0xbe94=function(_0x479f75,_0x400ef8){_0x479f75=_0x479f75-0x0;var _0x2514f3=_0xe94b[_0x479f75];return _0x2514f3;};'use strict';var EventEmitter=require('events');var ChatQueue=require('../../mysqldb')['db']['ChatQueue'];var ChatQueueEvents=new EventEmitter();ChatQueueEvents['setMaxListeners'](0x0);var events={'afterCreate':_0xbe94('0x0'),'afterUpdate':_0xbe94('0x1'),'afterDestroy':_0xbe94('0x2')};function emitEvent(_0x664dd){return function(_0x3703f4,_0x5da1f0,_0x37efc3){ChatQueueEvents[_0xbe94('0x3')](_0x664dd+':'+_0x3703f4['id'],_0x3703f4);ChatQueueEvents[_0xbe94('0x3')](_0x664dd,_0x3703f4);_0x37efc3(null);};}for(var e in events){if(events[_0xbe94('0x4')](e)){var event=events[e];ChatQueue[_0xbe94('0x5')](e,emitEvent(event));}}module['exports']=ChatQueueEvents;
\ No newline at end of file
+var _0x149c=['exports','events','ChatQueue','setMaxListeners','save','remove','emit'];(function(_0x3d9968,_0x29313b){var _0x378540=function(_0x345840){while(--_0x345840){_0x3d9968['push'](_0x3d9968['shift']());}};_0x378540(++_0x29313b);}(_0x149c,0x143));var _0xc149=function(_0x4d61ea,_0x5ccab6){_0x4d61ea=_0x4d61ea-0x0;var _0x5bdd37=_0x149c[_0x4d61ea];return _0x5bdd37;};'use strict';var EventEmitter=require(_0xc149('0x0'));var ChatQueue=require('../../mysqldb')['db'][_0xc149('0x1')];var ChatQueueEvents=new EventEmitter();ChatQueueEvents[_0xc149('0x2')](0x0);var events={'afterCreate':_0xc149('0x3'),'afterUpdate':'update','afterDestroy':_0xc149('0x4')};function emitEvent(_0x27b283){return function(_0x19a7cb,_0x298415,_0x166647){ChatQueueEvents[_0xc149('0x5')](_0x27b283+':'+_0x19a7cb['id'],_0x19a7cb);ChatQueueEvents[_0xc149('0x5')](_0x27b283,_0x19a7cb);_0x166647(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];ChatQueue['hook'](e,emitEvent(event));}}module[_0xc149('0x6')]=ChatQueueEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2f8d=['define','ChatQueue','chat_queues','lodash','api','request-promise','path','rimraf','./chatQueue.attributes','exports'];(function(_0xe908aa,_0x534dc6){var _0x5b0b4d=function(_0x143bfd){while(--_0x143bfd){_0xe908aa['push'](_0xe908aa['shift']());}};_0x5b0b4d(++_0x534dc6);}(_0x2f8d,0x1ed));var _0xd2f8=function(_0x110c3d,_0x12ee06){_0x110c3d=_0x110c3d-0x0;var _0x226d67=_0x2f8d[_0x110c3d];return _0x226d67;};'use strict';var _=require(_0xd2f8('0x0'));var util=require('util');var logger=require('../../config/logger')(_0xd2f8('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0xd2f8('0x2'));var fs=require('fs');var path=require(_0xd2f8('0x3'));var rimraf=require(_0xd2f8('0x4'));var config=require('../../config/environment');var attributes=require(_0xd2f8('0x5'));module[_0xd2f8('0x6')]=function(_0x5dfeef,_0x3fe00c){return _0x5dfeef[_0xd2f8('0x7')](_0xd2f8('0x8'),attributes,{'tableName':_0xd2f8('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x82c5=['../../config/logger','api','bluebird','path','rimraf','../../config/environment','ChatQueue','chat_queues'];(function(_0x378406,_0x519e8e){var _0x1f1a53=function(_0x381ea1){while(--_0x381ea1){_0x378406['push'](_0x378406['shift']());}};_0x1f1a53(++_0x519e8e);}(_0x82c5,0x130));var _0x582c=function(_0x12b210,_0x43f2a0){_0x12b210=_0x12b210-0x0;var _0x58d0f9=_0x82c5[_0x12b210];return _0x58d0f9;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x582c('0x0'))(_0x582c('0x1'));var moment=require('moment');var BPromise=require(_0x582c('0x2'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x582c('0x3'));var rimraf=require(_0x582c('0x4'));var config=require(_0x582c('0x5'));var attributes=require('./chatQueue.attributes');module['exports']=function(_0x27ab51,_0x5b25be){return _0x27ab51['define'](_0x582c('0x6'),attributes,{'tableName':_0x582c('0x7'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfbe2=['info','ChatQueue,\x20%s,\x20%s','request\x20sent','debug','ChatQueue,\x20%s,\x20%s,\x20%s','error','code','message','result','catch','findAll','options','where','attributes','include','map','model','GetChatQueue','stringify','ShowChatQueue','ChatQueue','find','raw','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','request','then'];(function(_0x4fbffe,_0x4c69d1){var _0x2bbd73=function(_0x6078b4){while(--_0x6078b4){_0x4fbffe['push'](_0x4fbffe['shift']());}};_0x2bbd73(++_0x4c69d1);}(_0xfbe2,0x1da));var _0x2fbe=function(_0x470d8e,_0x27ef71){_0x470d8e=_0x470d8e-0x0;var _0x2c2f67=_0xfbe2[_0x470d8e];return _0x2c2f67;};'use strict';var _=require(_0x2fbe('0x0'));var util=require(_0x2fbe('0x1'));var moment=require(_0x2fbe('0x2'));var BPromise=require(_0x2fbe('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x2fbe('0x4'));var db=require(_0x2fbe('0x5'))['db'];var utils=require(_0x2fbe('0x6'));var logger=require('../../config/logger')(_0x2fbe('0x7'));var config=require(_0x2fbe('0x8'));var jayson=require(_0x2fbe('0x9'));var client=jayson[_0x2fbe('0xa')][_0x2fbe('0xb')]({'port':0x232a});config[_0x2fbe('0xc')]=_[_0x2fbe('0xd')](config[_0x2fbe('0xc')],{'host':_0x2fbe('0xe'),'port':0x18eb});var socket=require(_0x2fbe('0xf'))(new Redis(config[_0x2fbe('0xc')]));require('./chatQueue.socket')['register'](socket);function respondWithRpcPromise(_0x9231df,_0x16f526,_0x454fd1){return new BPromise(function(_0x1310dc,_0x2ebe86){return client[_0x2fbe('0x10')](_0x9231df,_0x454fd1)[_0x2fbe('0x11')](function(_0xf63b50){logger[_0x2fbe('0x12')](_0x2fbe('0x13'),_0x16f526,_0x2fbe('0x14'));logger[_0x2fbe('0x15')](_0x2fbe('0x16'),_0x16f526,_0x2fbe('0x14'),JSON['stringify'](_0xf63b50));if(_0xf63b50[_0x2fbe('0x17')]){if(_0xf63b50[_0x2fbe('0x17')][_0x2fbe('0x18')]===0x1f4){logger[_0x2fbe('0x17')](_0x2fbe('0x13'),_0x16f526,_0xf63b50[_0x2fbe('0x17')]['message']);return _0x2ebe86(_0xf63b50[_0x2fbe('0x17')][_0x2fbe('0x19')]);}logger['error'](_0x2fbe('0x13'),_0x16f526,_0xf63b50['error']['message']);return _0x1310dc(_0xf63b50[_0x2fbe('0x17')][_0x2fbe('0x19')]);}else{logger[_0x2fbe('0x12')](_0x2fbe('0x13'),_0x16f526,_0x2fbe('0x14'));_0x1310dc(_0xf63b50[_0x2fbe('0x1a')][_0x2fbe('0x19')]);}})[_0x2fbe('0x1b')](function(_0xab5354){logger[_0x2fbe('0x17')](_0x2fbe('0x13'),_0x16f526,_0xab5354);_0x2ebe86(_0xab5354);});});}exports['GetChatQueue']=function(_0x1085ad){var _0x7e89bd=this;return new Promise(function(_0x1ce00c,_0x4f5b93){return db['ChatQueue'][_0x2fbe('0x1c')]({'raw':_0x1085ad[_0x2fbe('0x1d')]?_0x1085ad[_0x2fbe('0x1d')]['raw']===undefined?!![]:![]:!![],'where':_0x1085ad[_0x2fbe('0x1d')]?_0x1085ad[_0x2fbe('0x1d')][_0x2fbe('0x1e')]||null:null,'attributes':_0x1085ad['options']?_0x1085ad[_0x2fbe('0x1d')][_0x2fbe('0x1f')]||null:null,'limit':_0x1085ad['options']?_0x1085ad[_0x2fbe('0x1d')]['limit']||null:null,'include':_0x1085ad[_0x2fbe('0x1d')]?_0x1085ad[_0x2fbe('0x1d')][_0x2fbe('0x20')]?_[_0x2fbe('0x21')](_0x1085ad['options']['include'],function(_0x81e1fc){return{'model':db[_0x81e1fc[_0x2fbe('0x22')]],'as':_0x81e1fc['as'],'attributes':_0x81e1fc[_0x2fbe('0x1f')],'include':_0x81e1fc[_0x2fbe('0x20')]?_[_0x2fbe('0x21')](_0x81e1fc['include'],function(_0x49231f){return{'model':db[_0x49231f[_0x2fbe('0x22')]],'as':_0x49231f['as'],'attributes':_0x49231f[_0x2fbe('0x1f')],'include':_0x49231f[_0x2fbe('0x20')]?_[_0x2fbe('0x21')](_0x49231f['include'],function(_0x2c954d){return{'model':db[_0x2c954d['model']],'as':_0x2c954d['as'],'attributes':_0x2c954d[_0x2fbe('0x1f')]};}):[]};}):[]};}):[]:[]})[_0x2fbe('0x11')](function(_0x37732d){logger[_0x2fbe('0x12')](_0x2fbe('0x23'),_0x1085ad);logger[_0x2fbe('0x15')](_0x2fbe('0x23'),_0x1085ad,JSON[_0x2fbe('0x24')](_0x37732d));_0x1ce00c(_0x37732d);})[_0x2fbe('0x1b')](function(_0xef4fd){logger[_0x2fbe('0x17')](_0x2fbe('0x23'),_0xef4fd['message'],_0x1085ad);_0x4f5b93(_0x7e89bd[_0x2fbe('0x17')](0x1f4,_0xef4fd[_0x2fbe('0x19')]));});});};exports[_0x2fbe('0x25')]=function(_0x5b82dc){var _0x55126f=this;return new Promise(function(_0x3ce825,_0x5016fb){return db[_0x2fbe('0x26')][_0x2fbe('0x27')]({'raw':_0x5b82dc[_0x2fbe('0x1d')]?_0x5b82dc[_0x2fbe('0x1d')][_0x2fbe('0x28')]===undefined?!![]:![]:!![],'where':_0x5b82dc['options']?_0x5b82dc[_0x2fbe('0x1d')][_0x2fbe('0x1e')]||null:null,'attributes':_0x5b82dc['options']?_0x5b82dc['options']['attributes']||null:null,'include':_0x5b82dc[_0x2fbe('0x1d')]?_0x5b82dc[_0x2fbe('0x1d')]['include']?_['map'](_0x5b82dc['options']['include'],function(_0x3f8b2f){return{'model':db[_0x3f8b2f[_0x2fbe('0x22')]],'as':_0x3f8b2f['as'],'attributes':_0x3f8b2f[_0x2fbe('0x1f')],'include':_0x3f8b2f[_0x2fbe('0x20')]?_[_0x2fbe('0x21')](_0x3f8b2f[_0x2fbe('0x20')],function(_0x476479){return{'model':db[_0x476479[_0x2fbe('0x22')]],'as':_0x476479['as'],'attributes':_0x476479[_0x2fbe('0x1f')],'include':_0x476479['include']?_[_0x2fbe('0x21')](_0x476479[_0x2fbe('0x20')],function(_0x2ba98e){return{'model':db[_0x2ba98e[_0x2fbe('0x22')]],'as':_0x2ba98e['as'],'attributes':_0x2ba98e[_0x2fbe('0x1f')]};}):[]};}):[]};}):[]:[]})[_0x2fbe('0x11')](function(_0x301b78){logger[_0x2fbe('0x12')]('ShowChatQueue',_0x5b82dc);logger[_0x2fbe('0x15')]('ShowChatQueue',_0x5b82dc,JSON[_0x2fbe('0x24')](_0x301b78));_0x3ce825(_0x301b78);})[_0x2fbe('0x1b')](function(_0xbf91d8){logger[_0x2fbe('0x17')](_0x2fbe('0x25'),_0xbf91d8['message'],_0x5b82dc);_0x5016fb(_0x55126f[_0x2fbe('0x17')](0x1f4,_0xbf91d8[_0x2fbe('0x19')]));});});};
\ No newline at end of file
+var _0xfff0=['find','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','client','http','redis','socket.io-emitter','./chatQueue.socket','register','request','then','info','ChatQueue,\x20%s,\x20%s','request\x20sent','debug','error','code','message','result','catch','findAll','options','raw','where','attributes','limit','include','map','model','GetChatQueue','stringify','ShowChatQueue','ChatQueue'];(function(_0x5b644e,_0x2e5e07){var _0x49c6bf=function(_0x3032d9){while(--_0x3032d9){_0x5b644e['push'](_0x5b644e['shift']());}};_0x49c6bf(++_0x2e5e07);}(_0xfff0,0x139));var _0x0fff=function(_0x1ce4f6,_0x4352dd){_0x1ce4f6=_0x1ce4f6-0x0;var _0x50bd8c=_0xfff0[_0x1ce4f6];return _0x50bd8c;};'use strict';var _=require('lodash');var util=require(_0x0fff('0x0'));var moment=require(_0x0fff('0x1'));var BPromise=require(_0x0fff('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x0fff('0x3'));var db=require(_0x0fff('0x4'))['db'];var utils=require(_0x0fff('0x5'));var logger=require('../../config/logger')(_0x0fff('0x6'));var config=require(_0x0fff('0x7'));var jayson=require('jayson/promise');var client=jayson[_0x0fff('0x8')][_0x0fff('0x9')]({'port':0x232a});config[_0x0fff('0xa')]=_['defaults'](config[_0x0fff('0xa')],{'host':'localhost','port':0x18eb});var socket=require(_0x0fff('0xb'))(new Redis(config['redis']));require(_0x0fff('0xc'))[_0x0fff('0xd')](socket);function respondWithRpcPromise(_0x4cc3f3,_0x227d28,_0x377b2f){return new BPromise(function(_0x1de923,_0x289e01){return client[_0x0fff('0xe')](_0x4cc3f3,_0x377b2f)[_0x0fff('0xf')](function(_0x363c0d){logger[_0x0fff('0x10')](_0x0fff('0x11'),_0x227d28,_0x0fff('0x12'));logger[_0x0fff('0x13')]('ChatQueue,\x20%s,\x20%s,\x20%s',_0x227d28,_0x0fff('0x12'),JSON['stringify'](_0x363c0d));if(_0x363c0d[_0x0fff('0x14')]){if(_0x363c0d[_0x0fff('0x14')][_0x0fff('0x15')]===0x1f4){logger[_0x0fff('0x14')]('ChatQueue,\x20%s,\x20%s',_0x227d28,_0x363c0d['error'][_0x0fff('0x16')]);return _0x289e01(_0x363c0d['error']['message']);}logger['error'](_0x0fff('0x11'),_0x227d28,_0x363c0d[_0x0fff('0x14')]['message']);return _0x1de923(_0x363c0d[_0x0fff('0x14')][_0x0fff('0x16')]);}else{logger['info']('ChatQueue,\x20%s,\x20%s',_0x227d28,'request\x20sent');_0x1de923(_0x363c0d[_0x0fff('0x17')][_0x0fff('0x16')]);}})[_0x0fff('0x18')](function(_0x3762dc){logger[_0x0fff('0x14')](_0x0fff('0x11'),_0x227d28,_0x3762dc);_0x289e01(_0x3762dc);});});}exports['GetChatQueue']=function(_0x44a54a){var _0x136520=this;return new Promise(function(_0x48e6f9,_0x49d211){return db['ChatQueue'][_0x0fff('0x19')]({'raw':_0x44a54a[_0x0fff('0x1a')]?_0x44a54a[_0x0fff('0x1a')][_0x0fff('0x1b')]===undefined?!![]:![]:!![],'where':_0x44a54a['options']?_0x44a54a[_0x0fff('0x1a')][_0x0fff('0x1c')]||null:null,'attributes':_0x44a54a[_0x0fff('0x1a')]?_0x44a54a[_0x0fff('0x1a')][_0x0fff('0x1d')]||null:null,'limit':_0x44a54a[_0x0fff('0x1a')]?_0x44a54a['options'][_0x0fff('0x1e')]||null:null,'include':_0x44a54a[_0x0fff('0x1a')]?_0x44a54a[_0x0fff('0x1a')][_0x0fff('0x1f')]?_[_0x0fff('0x20')](_0x44a54a[_0x0fff('0x1a')]['include'],function(_0x2c9725){return{'model':db[_0x2c9725[_0x0fff('0x21')]],'as':_0x2c9725['as'],'attributes':_0x2c9725[_0x0fff('0x1d')],'include':_0x2c9725[_0x0fff('0x1f')]?_[_0x0fff('0x20')](_0x2c9725[_0x0fff('0x1f')],function(_0x27bd76){return{'model':db[_0x27bd76[_0x0fff('0x21')]],'as':_0x27bd76['as'],'attributes':_0x27bd76[_0x0fff('0x1d')],'include':_0x27bd76[_0x0fff('0x1f')]?_[_0x0fff('0x20')](_0x27bd76[_0x0fff('0x1f')],function(_0x495734){return{'model':db[_0x495734[_0x0fff('0x21')]],'as':_0x495734['as'],'attributes':_0x495734[_0x0fff('0x1d')]};}):[]};}):[]};}):[]:[]})[_0x0fff('0xf')](function(_0x42441e){logger[_0x0fff('0x10')](_0x0fff('0x22'),_0x44a54a);logger['debug'](_0x0fff('0x22'),_0x44a54a,JSON[_0x0fff('0x23')](_0x42441e));_0x48e6f9(_0x42441e);})[_0x0fff('0x18')](function(_0x48f1d1){logger[_0x0fff('0x14')](_0x0fff('0x22'),_0x48f1d1['message'],_0x44a54a);_0x49d211(_0x136520[_0x0fff('0x14')](0x1f4,_0x48f1d1[_0x0fff('0x16')]));});});};exports[_0x0fff('0x24')]=function(_0x15ae24){var _0x25ab2a=this;return new Promise(function(_0x263e9e,_0x1da352){return db[_0x0fff('0x25')][_0x0fff('0x26')]({'raw':_0x15ae24[_0x0fff('0x1a')]?_0x15ae24['options'][_0x0fff('0x1b')]===undefined?!![]:![]:!![],'where':_0x15ae24[_0x0fff('0x1a')]?_0x15ae24[_0x0fff('0x1a')][_0x0fff('0x1c')]||null:null,'attributes':_0x15ae24[_0x0fff('0x1a')]?_0x15ae24['options']['attributes']||null:null,'include':_0x15ae24[_0x0fff('0x1a')]?_0x15ae24[_0x0fff('0x1a')][_0x0fff('0x1f')]?_[_0x0fff('0x20')](_0x15ae24['options'][_0x0fff('0x1f')],function(_0x2f5616){return{'model':db[_0x2f5616[_0x0fff('0x21')]],'as':_0x2f5616['as'],'attributes':_0x2f5616[_0x0fff('0x1d')],'include':_0x2f5616['include']?_[_0x0fff('0x20')](_0x2f5616[_0x0fff('0x1f')],function(_0x721f48){return{'model':db[_0x721f48[_0x0fff('0x21')]],'as':_0x721f48['as'],'attributes':_0x721f48[_0x0fff('0x1d')],'include':_0x721f48[_0x0fff('0x1f')]?_[_0x0fff('0x20')](_0x721f48[_0x0fff('0x1f')],function(_0x304fc2){return{'model':db[_0x304fc2[_0x0fff('0x21')]],'as':_0x304fc2['as'],'attributes':_0x304fc2[_0x0fff('0x1d')]};}):[]};}):[]};}):[]:[]})[_0x0fff('0xf')](function(_0x53a026){logger[_0x0fff('0x10')](_0x0fff('0x24'),_0x15ae24);logger[_0x0fff('0x13')](_0x0fff('0x24'),_0x15ae24,JSON[_0x0fff('0x23')](_0x53a026));_0x263e9e(_0x53a026);})[_0x0fff('0x18')](function(_0x4bf286){logger[_0x0fff('0x14')](_0x0fff('0x24'),_0x4bf286[_0x0fff('0x16')],_0x15ae24);_0x1da352(_0x25ab2a[_0x0fff('0x14')](0x1f4,_0x4bf286[_0x0fff('0x16')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x72b1=['register','length','./chatQueue.events','remove','update','emit','removeListener'];(function(_0x5c351c,_0x2046d8){var _0x26f3b3=function(_0x47ac18){while(--_0x47ac18){_0x5c351c['push'](_0x5c351c['shift']());}};_0x26f3b3(++_0x2046d8);}(_0x72b1,0x16e));var _0x172b=function(_0x55a447,_0xfeb9ae){_0x55a447=_0x55a447-0x0;var _0x53e31d=_0x72b1[_0x55a447];return _0x53e31d;};'use strict';var ChatQueueEvents=require(_0x172b('0x0'));var events=['save',_0x172b('0x1'),_0x172b('0x2')];function createListener(_0x42b795,_0x18fd16){return function(_0x23bc7a){_0x18fd16[_0x172b('0x3')](_0x42b795,_0x23bc7a);};}function removeListener(_0x2c1d6e,_0x558038){return function(){ChatQueueEvents[_0x172b('0x4')](_0x2c1d6e,_0x558038);};}exports[_0x172b('0x5')]=function(_0x475fd6){for(var _0x222624=0x0,_0x571994=events[_0x172b('0x6')];_0x222624<_0x571994;_0x222624++){var _0x517363=events[_0x222624];var _0x1f98e9=createListener('chatQueue:'+_0x517363,_0x475fd6);ChatQueueEvents['on'](_0x517363,_0x1f98e9);}};
\ No newline at end of file
+var _0xbd50=['length','./chatQueue.events','save','remove','emit'];(function(_0x3f63b5,_0x461236){var _0x577d84=function(_0x2d6eba){while(--_0x2d6eba){_0x3f63b5['push'](_0x3f63b5['shift']());}};_0x577d84(++_0x461236);}(_0xbd50,0x196));var _0x0bd5=function(_0x1721b7,_0x5b457e){_0x1721b7=_0x1721b7-0x0;var _0x2f1ffe=_0xbd50[_0x1721b7];return _0x2f1ffe;};'use strict';var ChatQueueEvents=require(_0x0bd5('0x0'));var events=[_0x0bd5('0x1'),_0x0bd5('0x2'),'update'];function createListener(_0x44fcb9,_0x167372){return function(_0x37acba){_0x167372[_0x0bd5('0x3')](_0x44fcb9,_0x37acba);};}function removeListener(_0x15620d,_0x4c17ee){return function(){ChatQueueEvents['removeListener'](_0x15620d,_0x4c17ee);};}exports['register']=function(_0x376024){for(var _0x2ef1d0=0x0,_0xcc6cfa=events[_0x0bd5('0x4')];_0x2ef1d0<_0xcc6cfa;_0x2ef1d0++){var _0x1b99f3=events[_0x2ef1d0];var _0x5ebe64=createListener('chatQueue:'+_0x1b99f3,_0x376024);ChatQueueEvents['on'](_0x1b99f3,_0x5ebe64);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-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(_0x59ee6f,_0x450239){var _0x4c0979=function(_0x565e92){while(--_0x565e92){_0x59ee6f['push'](_0x59ee6f['shift']());}};_0x4c0979(++_0x450239);}(_0x3e74,0x175));var _0x43e7=function(_0x3aa90e,_0x2669b3){_0x3aa90e=_0x3aa90e-0x0;var _0x1d345b=_0x3e74[_0x3aa90e];return _0x1d345b;};'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
+var _0x008c=['../../config/environment','./chatQueue.controller','get','isAuthenticated','index','show','/:id/teams','getTeams','/:id/users','getAgents','post','addTeams','addAgents','update','delete','/:id','removeTeams','multer','util','path','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service'];(function(_0x13de1f,_0x28c2ca){var _0x17b572=function(_0x589475){while(--_0x589475){_0x13de1f['push'](_0x13de1f['shift']());}};_0x17b572(++_0x28c2ca);}(_0x008c,0x188));var _0xc008=function(_0x157c81,_0x2c0224){_0x157c81=_0x157c81-0x0;var _0x1bfb12=_0x008c[_0x157c81];return _0x1bfb12;};'use strict';var multer=require(_0xc008('0x0'));var util=require(_0xc008('0x1'));var path=require(_0xc008('0x2'));var timeout=require(_0xc008('0x3'));var express=require(_0xc008('0x4'));var router=express['Router']();var fs_extra=require(_0xc008('0x5'));var auth=require(_0xc008('0x6'));var interaction=require(_0xc008('0x7'));var config=require(_0xc008('0x8'));var controller=require(_0xc008('0x9'));router[_0xc008('0xa')]('/',auth[_0xc008('0xb')](),controller[_0xc008('0xc')]);router[_0xc008('0xa')]('/describe',auth[_0xc008('0xb')](),controller['describe']);router[_0xc008('0xa')]('/:id',auth['isAuthenticated'](),controller[_0xc008('0xd')]);router[_0xc008('0xa')]('/:id/members',auth['isAuthenticated'](),controller['getMembers']);router[_0xc008('0xa')](_0xc008('0xe'),auth['isAuthenticated'](),controller[_0xc008('0xf')]);router[_0xc008('0xa')](_0xc008('0x10'),auth[_0xc008('0xb')](),controller[_0xc008('0x11')]);router[_0xc008('0x12')]('/',auth[_0xc008('0xb')](),controller['create']);router['post'](_0xc008('0xe'),auth['isAuthenticated'](),controller[_0xc008('0x13')]);router[_0xc008('0x12')](_0xc008('0x10'),auth[_0xc008('0xb')](),controller[_0xc008('0x14')]);router['put']('/:id',auth['isAuthenticated'](),controller[_0xc008('0x15')]);router[_0xc008('0x16')](_0xc008('0x17'),auth[_0xc008('0xb')](),controller['destroy']);router['delete']('/:id/teams',auth['isAuthenticated'](),controller[_0xc008('0x18')]);router[_0xc008('0x16')]('/:id/users',auth[_0xc008('0xb')](),controller['removeAgents']);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe2f5=['STRING','DATE','moment','sequelize','exports'];(function(_0x54a9e3,_0x4a3813){var _0x247cce=function(_0x50aa49){while(--_0x50aa49){_0x54a9e3['push'](_0x54a9e3['shift']());}};_0x247cce(++_0x4a3813);}(_0xe2f5,0x1ba));var _0x5e2f=function(_0x577baa,_0x44f3b6){_0x577baa=_0x577baa-0x0;var _0x34be2d=_0xe2f5[_0x577baa];return _0x34be2d;};'use strict';var moment=require(_0x5e2f('0x0'));var Sequelize=require(_0x5e2f('0x1'));module[_0x5e2f('0x2')]={'uniqueid':{'type':Sequelize['STRING'],'allowNull':![]},'from':{'type':Sequelize[_0x5e2f('0x3')]},'joinAt':{'type':Sequelize[_0x5e2f('0x4')]},'leaveAt':{'type':Sequelize['DATE']},'acceptAt':{'type':Sequelize['DATE']},'exitAt':{'type':Sequelize['DATE']},'reason':{'type':Sequelize[_0x5e2f('0x3')]}};
\ No newline at end of file
+var _0xd1e5=['moment','exports','STRING','DATE'];(function(_0xc87d08,_0x59c9be){var _0x30a714=function(_0x437c0d){while(--_0x437c0d){_0xc87d08['push'](_0xc87d08['shift']());}};_0x30a714(++_0x59c9be);}(_0xd1e5,0xb4));var _0x5d1e=function(_0x5aebeb,_0x4e2e2b){_0x5aebeb=_0x5aebeb-0x0;var _0x48bc8b=_0xd1e5[_0x5aebeb];return _0x48bc8b;};'use strict';var moment=require(_0x5d1e('0x0'));var Sequelize=require('sequelize');module[_0x5d1e('0x1')]={'uniqueid':{'type':Sequelize[_0x5d1e('0x2')],'allowNull':![]},'from':{'type':Sequelize[_0x5d1e('0x2')]},'joinAt':{'type':Sequelize[_0x5d1e('0x3')]},'leaveAt':{'type':Sequelize[_0x5d1e('0x3')]},'acceptAt':{'type':Sequelize[_0x5d1e('0x3')]},'exitAt':{'type':Sequelize[_0x5d1e('0x3')]},'reason':{'type':Sequelize[_0x5d1e('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x806d=['fieldName','type','query','keys','filters','intersection','model','attributes','fields','length','nolimit','order','sort','where','merge','VIRTUAL','filter','options','rows','catch','params','find','create','body','describe','eml-format','rimraf','zip-dir','bluebird','mustache','path','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','Content-Range','apply','save','update','destroy','then','error','stack','name','send','index','map','ChatQueueReport','rawAttributes'];(function(_0x1120f8,_0x1659c6){var _0x337b42=function(_0x4241a7){while(--_0x4241a7){_0x1120f8['push'](_0x1120f8['shift']());}};_0x337b42(++_0x1659c6);}(_0x806d,0x131));var _0xd806=function(_0x4bbd62,_0x4c5987){_0x4bbd62=_0x4bbd62-0x0;var _0x2ac551=_0x806d[_0x4bbd62];return _0x2ac551;};'use strict';var emlformat=require(_0xd806('0x0'));var rimraf=require(_0xd806('0x1'));var zipdir=require(_0xd806('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0xd806('0x3'));var Mustache=require(_0xd806('0x4'));var util=require('util');var path=require(_0xd806('0x5'));var sox=require('sox');var csv=require(_0xd806('0x6'));var ejs=require(_0xd806('0x7'));var fs=require('fs');var fs_extra=require(_0xd806('0x8'));var _=require(_0xd806('0x9'));var squel=require(_0xd806('0xa'));var crypto=require(_0xd806('0xb'));var jsforce=require(_0xd806('0xc'));var deskjs=require('desk.js');var toCsv=require(_0xd806('0x6'));var querystring=require(_0xd806('0xd'));var Papa=require(_0xd806('0xe'));var Redis=require(_0xd806('0xf'));var authService=require('../../components/auth/service');var qs=require(_0xd806('0x10'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xd806('0x11'));var logger=require(_0xd806('0x12'))('api');var utils=require(_0xd806('0x13'));var config=require(_0xd806('0x14'));var licenseUtil=require(_0xd806('0x15'));var db=require(_0xd806('0x16'))['db'];function respondWithStatusCode(_0x451cba,_0x394569){_0x394569=_0x394569||0xcc;return function(_0x1c751c){if(_0x1c751c){return _0x451cba[_0xd806('0x17')](_0x394569);}return _0x451cba[_0xd806('0x18')](_0x394569)[_0xd806('0x19')]();};}function respondWithResult(_0x32f405,_0x47ef3b){_0x47ef3b=_0x47ef3b||0xc8;return function(_0x17d8bc){if(_0x17d8bc){return _0x32f405[_0xd806('0x18')](_0x47ef3b)[_0xd806('0x1a')](_0x17d8bc);}};}function respondWithFilteredResult(_0x4a2139,_0x7a8ed1){return function(_0x5a4ae4){if(_0x5a4ae4){var _0x33127f=typeof _0x7a8ed1[_0xd806('0x1b')]===_0xd806('0x1c')&&typeof _0x7a8ed1[_0xd806('0x1d')]===_0xd806('0x1c');var _0x1e7f7f=_0x5a4ae4[_0xd806('0x1e')];var _0x332eec=_0x33127f?0x0:_0x7a8ed1[_0xd806('0x1b')];var _0x5bd7a1=_0x33127f?_0x5a4ae4[_0xd806('0x1e')]:_0x7a8ed1[_0xd806('0x1b')]+_0x7a8ed1[_0xd806('0x1d')];var _0x5a3781;if(_0x5bd7a1>=_0x1e7f7f){_0x5bd7a1=_0x1e7f7f;_0x5a3781=0xc8;}else{_0x5a3781=0xce;}_0x4a2139[_0xd806('0x18')](_0x5a3781);return _0x4a2139['set'](_0xd806('0x1f'),_0x332eec+'-'+_0x5bd7a1+'/'+_0x1e7f7f)[_0xd806('0x1a')](_0x5a4ae4);}return null;};}function patchUpdates(_0x222a12){return function(_0x469f01){try{jsonpatch[_0xd806('0x20')](_0x469f01,_0x222a12,!![]);}catch(_0x58c632){return BPromise['reject'](_0x58c632);}return _0x469f01[_0xd806('0x21')]();};}function saveUpdates(_0x3680c1,_0x76392f){return function(_0x95450b){if(_0x95450b){return _0x95450b[_0xd806('0x22')](_0x3680c1)['then'](function(_0x500f9d){return _0x500f9d;});}return null;};}function removeEntity(_0x2a173b,_0x1335c9){return function(_0x17aa45){if(_0x17aa45){return _0x17aa45[_0xd806('0x23')]()[_0xd806('0x24')](function(){_0x2a173b['status'](0xcc)[_0xd806('0x19')]();});}};}function handleEntityNotFound(_0xf8df1e,_0x53782d){return function(_0x479744){if(!_0x479744){_0xf8df1e[_0xd806('0x17')](0x194);}return _0x479744;};}function handleError(_0x5acda8,_0x26bf96){_0x26bf96=_0x26bf96||0x1f4;return function(_0xe9664e){logger[_0xd806('0x25')](_0xe9664e[_0xd806('0x26')]);if(_0xe9664e[_0xd806('0x27')]){delete _0xe9664e['name'];}_0x5acda8['status'](_0x26bf96)[_0xd806('0x28')](_0xe9664e);};}exports[_0xd806('0x29')]=function(_0x10db6c,_0x4a7c5f){var _0x2b6b4d={},_0x25a2f0={},_0x358ae2={'count':0x0,'rows':[]};var _0x524893=_[_0xd806('0x2a')](db[_0xd806('0x2b')][_0xd806('0x2c')],function(_0x441e1d){return{'name':_0x441e1d[_0xd806('0x2d')],'type':_0x441e1d[_0xd806('0x2e')]['key']};});_0x25a2f0['model']=_['map'](_0x524893,'name');_0x25a2f0[_0xd806('0x2f')]=_[_0xd806('0x30')](_0x10db6c[_0xd806('0x2f')]);_0x25a2f0[_0xd806('0x31')]=_[_0xd806('0x32')](_0x25a2f0[_0xd806('0x33')],_0x25a2f0[_0xd806('0x2f')]);_0x2b6b4d[_0xd806('0x34')]=_[_0xd806('0x32')](_0x25a2f0['model'],qs[_0xd806('0x35')](_0x10db6c[_0xd806('0x2f')][_0xd806('0x35')]));_0x2b6b4d[_0xd806('0x34')]=_0x2b6b4d['attributes'][_0xd806('0x36')]?_0x2b6b4d['attributes']:_0x25a2f0[_0xd806('0x33')];if(!_0x10db6c['query']['hasOwnProperty'](_0xd806('0x37'))){_0x2b6b4d[_0xd806('0x1d')]=qs['limit'](_0x10db6c[_0xd806('0x2f')][_0xd806('0x1d')]);_0x2b6b4d['offset']=qs[_0xd806('0x1b')](_0x10db6c[_0xd806('0x2f')]['offset']);}_0x2b6b4d[_0xd806('0x38')]=qs[_0xd806('0x39')](_0x10db6c['query']['sort']);_0x2b6b4d[_0xd806('0x3a')]=qs[_0xd806('0x31')](_['pick'](_0x10db6c[_0xd806('0x2f')],_0x25a2f0[_0xd806('0x31')]),_0x524893);if(_0x10db6c['query']['filter']){_0x2b6b4d['where']=_[_0xd806('0x3b')](_0x2b6b4d[_0xd806('0x3a')],{'$or':_[_0xd806('0x2a')](_0x524893,function(_0x3e69f6){if(_0x3e69f6[_0xd806('0x2e')]!==_0xd806('0x3c')){var _0x370644={};_0x370644[_0x3e69f6[_0xd806('0x27')]]={'$like':'%'+_0x10db6c[_0xd806('0x2f')][_0xd806('0x3d')]+'%'};return _0x370644;}})});}_0x2b6b4d=_['merge']({},_0x2b6b4d,_0x10db6c[_0xd806('0x3e')]);var _0x5c1cbf={'where':_0x2b6b4d[_0xd806('0x3a')]};return db[_0xd806('0x2b')]['count'](_0x5c1cbf)[_0xd806('0x24')](function(_0x54ab4a){_0x358ae2[_0xd806('0x1e')]=_0x54ab4a;if(_0x10db6c['query']['includeAll']){_0x2b6b4d['include']=[{'all':!![]}];}return db[_0xd806('0x2b')]['findAll'](_0x2b6b4d);})[_0xd806('0x24')](function(_0x11a915){_0x358ae2[_0xd806('0x3f')]=_0x11a915;return _0x358ae2;})[_0xd806('0x24')](respondWithFilteredResult(_0x4a7c5f,_0x2b6b4d))[_0xd806('0x40')](handleError(_0x4a7c5f,null));};exports['show']=function(_0x4e7904,_0x3f8ab5){var _0x5a97ae={'raw':!![],'where':{'id':_0x4e7904[_0xd806('0x41')]['id']}},_0x1c4191={};_0x1c4191[_0xd806('0x33')]=_['keys'](db[_0xd806('0x2b')]['rawAttributes']);_0x1c4191[_0xd806('0x2f')]=_[_0xd806('0x30')](_0x4e7904[_0xd806('0x2f')]);_0x1c4191[_0xd806('0x31')]=_['intersection'](_0x1c4191[_0xd806('0x33')],_0x1c4191[_0xd806('0x2f')]);_0x5a97ae[_0xd806('0x34')]=_['intersection'](_0x1c4191[_0xd806('0x33')],qs['fields'](_0x4e7904[_0xd806('0x2f')][_0xd806('0x35')]));_0x5a97ae[_0xd806('0x34')]=_0x5a97ae[_0xd806('0x34')]['length']?_0x5a97ae['attributes']:_0x1c4191[_0xd806('0x33')];if(_0x4e7904[_0xd806('0x2f')]['includeAll']){_0x5a97ae['include']=[{'all':!![]}];}_0x5a97ae=_[_0xd806('0x3b')]({},_0x5a97ae,_0x4e7904[_0xd806('0x3e')]);return db[_0xd806('0x2b')][_0xd806('0x42')](_0x5a97ae)[_0xd806('0x24')](handleEntityNotFound(_0x3f8ab5,null))['then'](respondWithResult(_0x3f8ab5,null))['catch'](handleError(_0x3f8ab5,null));};exports[_0xd806('0x43')]=function(_0x5058ba,_0x5555da){return db[_0xd806('0x2b')][_0xd806('0x43')](_0x5058ba[_0xd806('0x44')],{})['then'](respondWithResult(_0x5555da,0xc9))[_0xd806('0x40')](handleError(_0x5555da,null));};exports['update']=function(_0x45a75c,_0x1e5da1){if(_0x45a75c[_0xd806('0x44')]['id']){delete _0x45a75c[_0xd806('0x44')]['id'];}return db[_0xd806('0x2b')]['find']({'where':{'id':_0x45a75c['params']['id']}})['then'](handleEntityNotFound(_0x1e5da1,null))[_0xd806('0x24')](saveUpdates(_0x45a75c[_0xd806('0x44')],null))['then'](respondWithResult(_0x1e5da1,null))['catch'](handleError(_0x1e5da1,null));};exports[_0xd806('0x23')]=function(_0x34166a,_0x527dcb){return db[_0xd806('0x2b')]['find']({'where':{'id':_0x34166a[_0xd806('0x41')]['id']}})[_0xd806('0x24')](handleEntityNotFound(_0x527dcb,null))['then'](removeEntity(_0x527dcb,null))[_0xd806('0x40')](handleError(_0x527dcb,null));};exports['describe']=function(_0x453f41,_0x48201f){return db[_0xd806('0x2b')][_0xd806('0x45')]()['then'](respondWithResult(_0x48201f,null))['catch'](handleError(_0x48201f,null));};
\ No newline at end of file
+var _0xf61e=['where','filter','VIRTUAL','merge','options','includeAll','include','findAll','catch','show','find','create','update','body','params','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','fs-extra','lodash','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','../../mysqldb','sendStatus','end','json','offset','undefined','count','limit','set','Content-Range','apply','destroy','then','status','error','stack','name','send','index','map','ChatQueueReport','rawAttributes','key','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','order'];(function(_0xe77e2d,_0x35a8f6){var _0x2c256e=function(_0x37fcb0){while(--_0x37fcb0){_0xe77e2d['push'](_0xe77e2d['shift']());}};_0x2c256e(++_0x35a8f6);}(_0xf61e,0x191));var _0xef61=function(_0x2bd4ab,_0x96f02f){_0x2bd4ab=_0x2bd4ab-0x0;var _0x2a071f=_0xf61e[_0x2bd4ab];return _0x2a071f;};'use strict';var emlformat=require(_0xef61('0x0'));var rimraf=require(_0xef61('0x1'));var zipdir=require(_0xef61('0x2'));var jsonpatch=require(_0xef61('0x3'));var rp=require(_0xef61('0x4'));var moment=require(_0xef61('0x5'));var BPromise=require(_0xef61('0x6'));var Mustache=require(_0xef61('0x7'));var util=require(_0xef61('0x8'));var path=require(_0xef61('0x9'));var sox=require(_0xef61('0xa'));var csv=require(_0xef61('0xb'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xef61('0xc'));var _=require(_0xef61('0xd'));var squel=require('squel');var crypto=require(_0xef61('0xe'));var jsforce=require(_0xef61('0xf'));var deskjs=require(_0xef61('0x10'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xef61('0x11'));var Redis=require(_0xef61('0x12'));var authService=require(_0xef61('0x13'));var qs=require(_0xef61('0x14'));var as=require(_0xef61('0x15'));var hardwareService=require(_0xef61('0x16'));var logger=require(_0xef61('0x17'))(_0xef61('0x18'));var utils=require(_0xef61('0x19'));var config=require(_0xef61('0x1a'));var licenseUtil=require(_0xef61('0x1b'));var db=require(_0xef61('0x1c'))['db'];function respondWithStatusCode(_0x114e1f,_0x318f1c){_0x318f1c=_0x318f1c||0xcc;return function(_0x5de159){if(_0x5de159){return _0x114e1f[_0xef61('0x1d')](_0x318f1c);}return _0x114e1f['status'](_0x318f1c)[_0xef61('0x1e')]();};}function respondWithResult(_0x1db2a9,_0x370ee0){_0x370ee0=_0x370ee0||0xc8;return function(_0x76ef9b){if(_0x76ef9b){return _0x1db2a9['status'](_0x370ee0)[_0xef61('0x1f')](_0x76ef9b);}};}function respondWithFilteredResult(_0x435beb,_0x1224c2){return function(_0x78ff22){if(_0x78ff22){var _0x588a61=typeof _0x1224c2[_0xef61('0x20')]===_0xef61('0x21')&&typeof _0x1224c2['limit']===_0xef61('0x21');var _0x408541=_0x78ff22[_0xef61('0x22')];var _0x22dc1b=_0x588a61?0x0:_0x1224c2[_0xef61('0x20')];var _0x28315a=_0x588a61?_0x78ff22[_0xef61('0x22')]:_0x1224c2['offset']+_0x1224c2[_0xef61('0x23')];var _0x2c8dad;if(_0x28315a>=_0x408541){_0x28315a=_0x408541;_0x2c8dad=0xc8;}else{_0x2c8dad=0xce;}_0x435beb['status'](_0x2c8dad);return _0x435beb[_0xef61('0x24')](_0xef61('0x25'),_0x22dc1b+'-'+_0x28315a+'/'+_0x408541)[_0xef61('0x1f')](_0x78ff22);}return null;};}function patchUpdates(_0x26cf42){return function(_0xb0d7a4){try{jsonpatch[_0xef61('0x26')](_0xb0d7a4,_0x26cf42,!![]);}catch(_0x92ea33){return BPromise['reject'](_0x92ea33);}return _0xb0d7a4['save']();};}function saveUpdates(_0x3d31c1,_0x58bd7d){return function(_0x389d6d){if(_0x389d6d){return _0x389d6d['update'](_0x3d31c1)['then'](function(_0x2f0569){return _0x2f0569;});}return null;};}function removeEntity(_0x5ce99d,_0x53181b){return function(_0xfbee94){if(_0xfbee94){return _0xfbee94[_0xef61('0x27')]()[_0xef61('0x28')](function(){_0x5ce99d[_0xef61('0x29')](0xcc)['end']();});}};}function handleEntityNotFound(_0x16b144,_0x4e738f){return function(_0x2a6832){if(!_0x2a6832){_0x16b144[_0xef61('0x1d')](0x194);}return _0x2a6832;};}function handleError(_0x2419a9,_0xf4c7c9){_0xf4c7c9=_0xf4c7c9||0x1f4;return function(_0x2155f1){logger[_0xef61('0x2a')](_0x2155f1[_0xef61('0x2b')]);if(_0x2155f1[_0xef61('0x2c')]){delete _0x2155f1[_0xef61('0x2c')];}_0x2419a9[_0xef61('0x29')](_0xf4c7c9)[_0xef61('0x2d')](_0x2155f1);};}exports[_0xef61('0x2e')]=function(_0xeb9a62,_0x63edd4){var _0x1f3572={},_0x85978={},_0x39c15e={'count':0x0,'rows':[]};var _0x393ea9=_[_0xef61('0x2f')](db[_0xef61('0x30')][_0xef61('0x31')],function(_0x53fa3b){return{'name':_0x53fa3b['fieldName'],'type':_0x53fa3b['type'][_0xef61('0x32')]};});_0x85978[_0xef61('0x33')]=_[_0xef61('0x2f')](_0x393ea9,'name');_0x85978[_0xef61('0x34')]=_[_0xef61('0x35')](_0xeb9a62['query']);_0x85978[_0xef61('0x36')]=_['intersection'](_0x85978['model'],_0x85978[_0xef61('0x34')]);_0x1f3572['attributes']=_[_0xef61('0x37')](_0x85978['model'],qs[_0xef61('0x38')](_0xeb9a62[_0xef61('0x34')][_0xef61('0x38')]));_0x1f3572[_0xef61('0x39')]=_0x1f3572[_0xef61('0x39')][_0xef61('0x3a')]?_0x1f3572[_0xef61('0x39')]:_0x85978[_0xef61('0x33')];if(!_0xeb9a62[_0xef61('0x34')][_0xef61('0x3b')]('nolimit')){_0x1f3572[_0xef61('0x23')]=qs[_0xef61('0x23')](_0xeb9a62[_0xef61('0x34')][_0xef61('0x23')]);_0x1f3572[_0xef61('0x20')]=qs['offset'](_0xeb9a62[_0xef61('0x34')][_0xef61('0x20')]);}_0x1f3572[_0xef61('0x3c')]=qs['sort'](_0xeb9a62['query']['sort']);_0x1f3572[_0xef61('0x3d')]=qs['filters'](_['pick'](_0xeb9a62['query'],_0x85978[_0xef61('0x36')]),_0x393ea9);if(_0xeb9a62[_0xef61('0x34')][_0xef61('0x3e')]){_0x1f3572['where']=_['merge'](_0x1f3572['where'],{'$or':_[_0xef61('0x2f')](_0x393ea9,function(_0x32ad44){if(_0x32ad44['type']!==_0xef61('0x3f')){var _0x12f442={};_0x12f442[_0x32ad44[_0xef61('0x2c')]]={'$like':'%'+_0xeb9a62[_0xef61('0x34')]['filter']+'%'};return _0x12f442;}})});}_0x1f3572=_[_0xef61('0x40')]({},_0x1f3572,_0xeb9a62[_0xef61('0x41')]);var _0x3103d4={'where':_0x1f3572[_0xef61('0x3d')]};return db['ChatQueueReport']['count'](_0x3103d4)[_0xef61('0x28')](function(_0x462972){_0x39c15e[_0xef61('0x22')]=_0x462972;if(_0xeb9a62['query'][_0xef61('0x42')]){_0x1f3572[_0xef61('0x43')]=[{'all':!![]}];}return db[_0xef61('0x30')][_0xef61('0x44')](_0x1f3572);})['then'](function(_0x545597){_0x39c15e['rows']=_0x545597;return _0x39c15e;})[_0xef61('0x28')](respondWithFilteredResult(_0x63edd4,_0x1f3572))[_0xef61('0x45')](handleError(_0x63edd4,null));};exports[_0xef61('0x46')]=function(_0xe40d,_0x3f81a1){var _0x272143={'raw':!![],'where':{'id':_0xe40d['params']['id']}},_0xc9b467={};_0xc9b467[_0xef61('0x33')]=_[_0xef61('0x35')](db[_0xef61('0x30')][_0xef61('0x31')]);_0xc9b467['query']=_[_0xef61('0x35')](_0xe40d[_0xef61('0x34')]);_0xc9b467[_0xef61('0x36')]=_[_0xef61('0x37')](_0xc9b467[_0xef61('0x33')],_0xc9b467[_0xef61('0x34')]);_0x272143['attributes']=_[_0xef61('0x37')](_0xc9b467[_0xef61('0x33')],qs[_0xef61('0x38')](_0xe40d['query'][_0xef61('0x38')]));_0x272143[_0xef61('0x39')]=_0x272143[_0xef61('0x39')][_0xef61('0x3a')]?_0x272143[_0xef61('0x39')]:_0xc9b467[_0xef61('0x33')];if(_0xe40d['query'][_0xef61('0x42')]){_0x272143[_0xef61('0x43')]=[{'all':!![]}];}_0x272143=_['merge']({},_0x272143,_0xe40d[_0xef61('0x41')]);return db[_0xef61('0x30')][_0xef61('0x47')](_0x272143)[_0xef61('0x28')](handleEntityNotFound(_0x3f81a1,null))['then'](respondWithResult(_0x3f81a1,null))[_0xef61('0x45')](handleError(_0x3f81a1,null));};exports[_0xef61('0x48')]=function(_0x5e614b,_0x47b09d){return db[_0xef61('0x30')][_0xef61('0x48')](_0x5e614b['body'],{})[_0xef61('0x28')](respondWithResult(_0x47b09d,0xc9))[_0xef61('0x45')](handleError(_0x47b09d,null));};exports[_0xef61('0x49')]=function(_0x2904e0,_0x13bb20){if(_0x2904e0[_0xef61('0x4a')]['id']){delete _0x2904e0[_0xef61('0x4a')]['id'];}return db['ChatQueueReport'][_0xef61('0x47')]({'where':{'id':_0x2904e0['params']['id']}})[_0xef61('0x28')](handleEntityNotFound(_0x13bb20,null))[_0xef61('0x28')](saveUpdates(_0x2904e0[_0xef61('0x4a')],null))[_0xef61('0x28')](respondWithResult(_0x13bb20,null))[_0xef61('0x45')](handleError(_0x13bb20,null));};exports[_0xef61('0x27')]=function(_0x3e23eb,_0x1565c7){return db[_0xef61('0x30')]['find']({'where':{'id':_0x3e23eb[_0xef61('0x4b')]['id']}})[_0xef61('0x28')](handleEntityNotFound(_0x1565c7,null))['then'](removeEntity(_0x1565c7,null))['catch'](handleError(_0x1565c7,null));};exports[_0xef61('0x4c')]=function(_0x1ce127,_0x504389){return db[_0xef61('0x30')]['describe']()[_0xef61('0x28')](respondWithResult(_0x504389,null))[_0xef61('0x45')](handleError(_0x504389,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd8b0=['define','report_chat_queue','uniqueid','lodash','util','bluebird','request-promise','path','rimraf','../../config/environment'];(function(_0x557a71,_0x72a6d6){var _0x140c2f=function(_0x457a83){while(--_0x457a83){_0x557a71['push'](_0x557a71['shift']());}};_0x140c2f(++_0x72a6d6);}(_0xd8b0,0xad));var _0x0d8b=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xd8b0[_0x20a584];return _0x4b41a8;};'use strict';var _=require(_0x0d8b('0x0'));var util=require(_0x0d8b('0x1'));var logger=require('../../config/logger')('api');var moment=require('moment');var BPromise=require(_0x0d8b('0x2'));var rp=require(_0x0d8b('0x3'));var fs=require('fs');var path=require(_0x0d8b('0x4'));var rimraf=require(_0x0d8b('0x5'));var config=require(_0x0d8b('0x6'));var attributes=require('./chatQueueReport.attributes');module['exports']=function(_0x3f8b6f,_0x227c63){return _0x3f8b6f[_0x0d8b('0x7')]('ChatQueueReport',attributes,{'tableName':_0x0d8b('0x8'),'paranoid':![],'indexes':[{'name':_0x0d8b('0x9'),'fields':['uniqueid']}],'timestamps':!![]});};
\ No newline at end of file
+var _0xb7e7=['../../config/logger','moment','request-promise','rimraf','../../config/environment','./chatQueueReport.attributes','define','ChatQueueReport','uniqueid','lodash'];(function(_0x384016,_0x4fd305){var _0x4bcb6f=function(_0x212aed){while(--_0x212aed){_0x384016['push'](_0x384016['shift']());}};_0x4bcb6f(++_0x4fd305);}(_0xb7e7,0x121));var _0x7b7e=function(_0x2ec461,_0x5f588a){_0x2ec461=_0x2ec461-0x0;var _0x28603d=_0xb7e7[_0x2ec461];return _0x28603d;};'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 _0xa02f=['then','ChatQueueReport,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','info','result','catch','create','body','options','raw','CreateChatQueueReport','UpdateChatQueueReport','ChatQueueReport','update','limit','util','moment','bluebird','randomstring','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','request'];(function(_0x2d63c5,_0x6f2640){var _0x6dc30=function(_0x3cdc83){while(--_0x3cdc83){_0x2d63c5['push'](_0x2d63c5['shift']());}};_0x6dc30(++_0x6f2640);}(_0xa02f,0xce));var _0xfa02=function(_0x299cf3,_0x4a3d04){_0x299cf3=_0x299cf3-0x0;var _0x53932a=_0xa02f[_0x299cf3];return _0x53932a;};'use strict';var _=require('lodash');var util=require(_0xfa02('0x0'));var moment=require(_0xfa02('0x1'));var BPromise=require(_0xfa02('0x2'));var rs=require(_0xfa02('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xfa02('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0xfa02('0x5'))(_0xfa02('0x6'));var config=require(_0xfa02('0x7'));var jayson=require(_0xfa02('0x8'));var client=jayson[_0xfa02('0x9')]['http']({'port':0x232a});function respondWithRpcPromise(_0x31d4ca,_0x2a234b,_0x442a34){return new BPromise(function(_0x3fbd13,_0x53536f){return client[_0xfa02('0xa')](_0x31d4ca,_0x442a34)[_0xfa02('0xb')](function(_0x16150a){logger['info'](_0xfa02('0xc'),_0x2a234b,_0xfa02('0xd'));logger[_0xfa02('0xe')]('ChatQueueReport,\x20%s,\x20%s,\x20%s',_0x2a234b,_0xfa02('0xd'),JSON[_0xfa02('0xf')](_0x16150a));if(_0x16150a[_0xfa02('0x10')]){if(_0x16150a[_0xfa02('0x10')][_0xfa02('0x11')]===0x1f4){logger[_0xfa02('0x10')](_0xfa02('0xc'),_0x2a234b,_0x16150a[_0xfa02('0x10')][_0xfa02('0x12')]);return _0x53536f(_0x16150a[_0xfa02('0x10')][_0xfa02('0x12')]);}logger[_0xfa02('0x10')](_0xfa02('0xc'),_0x2a234b,_0x16150a[_0xfa02('0x10')][_0xfa02('0x12')]);return _0x3fbd13(_0x16150a[_0xfa02('0x10')][_0xfa02('0x12')]);}else{logger[_0xfa02('0x13')](_0xfa02('0xc'),_0x2a234b,_0xfa02('0xd'));_0x3fbd13(_0x16150a[_0xfa02('0x14')][_0xfa02('0x12')]);}})[_0xfa02('0x15')](function(_0x269322){logger[_0xfa02('0x10')](_0xfa02('0xc'),_0x2a234b,_0x269322);_0x53536f(_0x269322);});});}exports['CreateChatQueueReport']=function(_0x349d1f){var _0x5dcd55=this;return new Promise(function(_0xb13ecf,_0x93dec7){return db['ChatQueueReport'][_0xfa02('0x16')](_0x349d1f[_0xfa02('0x17')],{'raw':_0x349d1f[_0xfa02('0x18')]?_0x349d1f[_0xfa02('0x18')][_0xfa02('0x19')]===undefined?!![]:![]:!![]})[_0xfa02('0xb')](function(_0xd4fc76){logger[_0xfa02('0x13')](_0xfa02('0x1a'),_0x349d1f);logger['debug'](_0xfa02('0x1a'),_0x349d1f,JSON['stringify'](_0xd4fc76));_0xb13ecf(_0xd4fc76);})['catch'](function(_0x1a13b6){logger[_0xfa02('0x10')](_0xfa02('0x1a'),_0x1a13b6[_0xfa02('0x12')],_0x349d1f);_0x93dec7(_0x5dcd55[_0xfa02('0x10')](0x1f4,_0x1a13b6[_0xfa02('0x12')]));});});};exports[_0xfa02('0x1b')]=function(_0x514ee1){var _0x32e7f8=this;return new Promise(function(_0x1db6ae,_0x288ead){return db[_0xfa02('0x1c')][_0xfa02('0x1d')](_0x514ee1[_0xfa02('0x17')],{'raw':_0x514ee1[_0xfa02('0x18')]?_0x514ee1[_0xfa02('0x18')][_0xfa02('0x19')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x514ee1[_0xfa02('0x18')]?_0x514ee1['options']['where']||null:null,'attributes':_0x514ee1[_0xfa02('0x18')]?_0x514ee1[_0xfa02('0x18')]['attributes']||null:null,'limit':_0x514ee1[_0xfa02('0x18')]?_0x514ee1[_0xfa02('0x18')][_0xfa02('0x1e')]||null:null})[_0xfa02('0xb')](function(_0x402ecd){logger[_0xfa02('0x13')](_0xfa02('0x1b'),_0x514ee1);logger[_0xfa02('0xe')](_0xfa02('0x1b'),_0x514ee1,JSON[_0xfa02('0xf')](_0x402ecd));_0x1db6ae(_0x402ecd);})[_0xfa02('0x15')](function(_0x43a2fb){logger[_0xfa02('0x10')](_0xfa02('0x1b'),_0x43a2fb['message'],_0x514ee1);_0x288ead(_0x32e7f8[_0xfa02('0x10')](0x1f4,_0x43a2fb[_0xfa02('0x12')]));});});};
\ No newline at end of file
+var _0x7ca6=['options','raw','stringify','ChatQueueReport','update','attributes','limit','UpdateChatQueueReport','lodash','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','http','then','info','ChatQueueReport,\x20%s,\x20%s','debug','request\x20sent','error','code','message','result','catch','CreateChatQueueReport','create','body'];(function(_0x147523,_0x25c13b){var _0x419b1a=function(_0x4fdf20){while(--_0x4fdf20){_0x147523['push'](_0x147523['shift']());}};_0x419b1a(++_0x25c13b);}(_0x7ca6,0x1d9));var _0x67ca=function(_0x15d4b1,_0x3e9c77){_0x15d4b1=_0x15d4b1-0x0;var _0x21ed7a=_0x7ca6[_0x15d4b1];return _0x21ed7a;};'use strict';var _=require(_0x67ca('0x0'));var util=require('util');var moment=require(_0x67ca('0x1'));var BPromise=require(_0x67ca('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x67ca('0x3'));var db=require(_0x67ca('0x4'))['db'];var utils=require(_0x67ca('0x5'));var logger=require(_0x67ca('0x6'))('rpc');var config=require(_0x67ca('0x7'));var jayson=require(_0x67ca('0x8'));var client=jayson['client'][_0x67ca('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x399561,_0x179bb4,_0x52fce1){return new BPromise(function(_0x5617d1,_0x403219){return client['request'](_0x399561,_0x52fce1)[_0x67ca('0xa')](function(_0x56941e){logger[_0x67ca('0xb')](_0x67ca('0xc'),_0x179bb4,'request\x20sent');logger[_0x67ca('0xd')]('ChatQueueReport,\x20%s,\x20%s,\x20%s',_0x179bb4,_0x67ca('0xe'),JSON['stringify'](_0x56941e));if(_0x56941e[_0x67ca('0xf')]){if(_0x56941e[_0x67ca('0xf')][_0x67ca('0x10')]===0x1f4){logger[_0x67ca('0xf')](_0x67ca('0xc'),_0x179bb4,_0x56941e[_0x67ca('0xf')][_0x67ca('0x11')]);return _0x403219(_0x56941e['error'][_0x67ca('0x11')]);}logger[_0x67ca('0xf')](_0x67ca('0xc'),_0x179bb4,_0x56941e[_0x67ca('0xf')][_0x67ca('0x11')]);return _0x5617d1(_0x56941e['error'][_0x67ca('0x11')]);}else{logger['info'](_0x67ca('0xc'),_0x179bb4,_0x67ca('0xe'));_0x5617d1(_0x56941e[_0x67ca('0x12')][_0x67ca('0x11')]);}})[_0x67ca('0x13')](function(_0x382487){logger[_0x67ca('0xf')](_0x67ca('0xc'),_0x179bb4,_0x382487);_0x403219(_0x382487);});});}exports[_0x67ca('0x14')]=function(_0x1280c5){var _0x1d16d3=this;return new Promise(function(_0x24f9eb,_0x2ba3f6){return db['ChatQueueReport'][_0x67ca('0x15')](_0x1280c5[_0x67ca('0x16')],{'raw':_0x1280c5[_0x67ca('0x17')]?_0x1280c5[_0x67ca('0x17')][_0x67ca('0x18')]===undefined?!![]:![]:!![]})[_0x67ca('0xa')](function(_0x386769){logger[_0x67ca('0xb')](_0x67ca('0x14'),_0x1280c5);logger['debug'](_0x67ca('0x14'),_0x1280c5,JSON[_0x67ca('0x19')](_0x386769));_0x24f9eb(_0x386769);})[_0x67ca('0x13')](function(_0x49be11){logger[_0x67ca('0xf')](_0x67ca('0x14'),_0x49be11[_0x67ca('0x11')],_0x1280c5);_0x2ba3f6(_0x1d16d3[_0x67ca('0xf')](0x1f4,_0x49be11['message']));});});};exports['UpdateChatQueueReport']=function(_0xae0ec9){var _0x3a4aed=this;return new Promise(function(_0x35b3a2,_0x5ee42c){return db[_0x67ca('0x1a')][_0x67ca('0x1b')](_0xae0ec9[_0x67ca('0x16')],{'raw':_0xae0ec9[_0x67ca('0x17')]?_0xae0ec9[_0x67ca('0x17')][_0x67ca('0x18')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0xae0ec9['options']?_0xae0ec9['options']['where']||null:null,'attributes':_0xae0ec9[_0x67ca('0x17')]?_0xae0ec9[_0x67ca('0x17')][_0x67ca('0x1c')]||null:null,'limit':_0xae0ec9[_0x67ca('0x17')]?_0xae0ec9[_0x67ca('0x17')][_0x67ca('0x1d')]||null:null})[_0x67ca('0xa')](function(_0x396310){logger[_0x67ca('0xb')](_0x67ca('0x1e'),_0xae0ec9);logger[_0x67ca('0xd')](_0x67ca('0x1e'),_0xae0ec9,JSON[_0x67ca('0x19')](_0x396310));_0x35b3a2(_0x396310);})['catch'](function(_0x1427bb){logger['error'](_0x67ca('0x1e'),_0x1427bb[_0x67ca('0x11')],_0xae0ec9);_0x5ee42c(_0x3a4aed[_0x67ca('0xf')](0x1f4,_0x1427bb[_0x67ca('0x11')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb5f9=['isAuthenticated','index','/describe','describe','/:id','show','create','update','delete','destroy','multer','path','connect-timeout','express','Router','fs-extra','../../components/interaction/service','../../config/environment','./chatQueueReport.controller','get'];(function(_0x4b5813,_0x5769de){var _0x423465=function(_0x18071f){while(--_0x18071f){_0x4b5813['push'](_0x4b5813['shift']());}};_0x423465(++_0x5769de);}(_0xb5f9,0x10e));var _0x9b5f=function(_0x125e7c,_0x2832a4){_0x125e7c=_0x125e7c-0x0;var _0x11039a=_0xb5f9[_0x125e7c];return _0x11039a;};'use strict';var multer=require(_0x9b5f('0x0'));var util=require('util');var path=require(_0x9b5f('0x1'));var timeout=require(_0x9b5f('0x2'));var express=require(_0x9b5f('0x3'));var router=express[_0x9b5f('0x4')]();var fs_extra=require(_0x9b5f('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0x9b5f('0x6'));var config=require(_0x9b5f('0x7'));var controller=require(_0x9b5f('0x8'));router[_0x9b5f('0x9')]('/',auth[_0x9b5f('0xa')](),controller[_0x9b5f('0xb')]);router[_0x9b5f('0x9')](_0x9b5f('0xc'),auth['isAuthenticated'](),controller[_0x9b5f('0xd')]);router[_0x9b5f('0x9')](_0x9b5f('0xe'),auth[_0x9b5f('0xa')](),controller[_0x9b5f('0xf')]);router['post']('/',auth['isAuthenticated'](),controller[_0x9b5f('0x10')]);router['put'](_0x9b5f('0xe'),auth[_0x9b5f('0xa')](),controller[_0x9b5f('0x11')]);router[_0x9b5f('0x12')]('/:id',auth[_0x9b5f('0xa')](),controller[_0x9b5f('0x13')]);module['exports']=router;
\ No newline at end of file
+var _0x1fe8=['/:id','show','put','update','delete','destroy','express','Router','fs-extra','../../components/interaction/service','./chatQueueReport.controller','index','get','/describe','isAuthenticated'];(function(_0xae7c2f,_0xf31e04){var _0x5d7001=function(_0x4eeadb){while(--_0x4eeadb){_0xae7c2f['push'](_0xae7c2f['shift']());}};_0x5d7001(++_0xf31e04);}(_0x1fe8,0x114));var _0x81fe=function(_0x4f9b18,_0x2cb5ca){_0x4f9b18=_0x4f9b18-0x0;var _0x29f20c=_0x1fe8[_0x4f9b18];return _0x29f20c;};'use strict';var multer=require('multer');var util=require('util');var path=require('path');var timeout=require('connect-timeout');var express=require(_0x81fe('0x0'));var router=express[_0x81fe('0x1')]();var fs_extra=require(_0x81fe('0x2'));var auth=require('../../components/auth/service');var interaction=require(_0x81fe('0x3'));var config=require('../../config/environment');var controller=require(_0x81fe('0x4'));router['get']('/',auth['isAuthenticated'](),controller[_0x81fe('0x5')]);router[_0x81fe('0x6')](_0x81fe('0x7'),auth[_0x81fe('0x8')](),controller['describe']);router['get'](_0x81fe('0x9'),auth[_0x81fe('0x8')](),controller[_0x81fe('0xa')]);router['post']('/',auth[_0x81fe('0x8')](),controller['create']);router[_0x81fe('0xb')](_0x81fe('0x9'),auth[_0x81fe('0x8')](),controller[_0x81fe('0xc')]);router[_0x81fe('0xd')](_0x81fe('0x9'),auth[_0x81fe('0x8')](),controller[_0x81fe('0xe')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x54ef=['agent','queue','DATE','NOW','moment','sequelize','exports','ENUM','account'];(function(_0x4b87ef,_0x1aa1ab){var _0x287e5e=function(_0x66f401){while(--_0x66f401){_0x4b87ef['push'](_0x4b87ef['shift']());}};_0x287e5e(++_0x1aa1ab);}(_0x54ef,0x112));var _0xf54e=function(_0x31d903,_0x224db6){_0x31d903=_0x31d903-0x0;var _0xa77070=_0x54ef[_0x31d903];return _0xa77070;};'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
+var _0x9bde=['NOW','sequelize','STRING','account','agent','queue','DATE'];(function(_0x23e7c1,_0x35110c){var _0x1add43=function(_0x238918){while(--_0x238918){_0x23e7c1['push'](_0x23e7c1['shift']());}};_0x1add43(++_0x35110c);}(_0x9bde,0xe1));var _0xe9bd=function(_0xd31f56,_0x2e8d9b){_0xd31f56=_0xd31f56-0x0;var _0x2a04f9=_0x9bde[_0xd31f56];return _0x2a04f9;};'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 _0xfd03=['merge','filter','includeAll','findAll','rows','show','params','rawAttributes','keys','length','include','options','catch','create','body','find','eml-format','rimraf','request-promise','moment','bluebird','util','path','to-csv','fs-extra','crypto','papaparse','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','status','end','json','offset','undefined','limit','count','set','apply','save','update','destroy','then','error','stack','name','index','map','ChatTransferReport','fieldName','type','key','model','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','where'];(function(_0x471448,_0x1c0e9e){var _0x38190b=function(_0x41dd2f){while(--_0x41dd2f){_0x471448['push'](_0x471448['shift']());}};_0x38190b(++_0x1c0e9e);}(_0xfd03,0xd0));var _0x3fd0=function(_0x283127,_0x54d4d5){_0x283127=_0x283127-0x0;var _0x43da5d=_0xfd03[_0x283127];return _0x43da5d;};'use strict';var emlformat=require(_0x3fd0('0x0'));var rimraf=require(_0x3fd0('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x3fd0('0x2'));var moment=require(_0x3fd0('0x3'));var BPromise=require(_0x3fd0('0x4'));var Mustache=require('mustache');var util=require(_0x3fd0('0x5'));var path=require(_0x3fd0('0x6'));var sox=require('sox');var csv=require(_0x3fd0('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x3fd0('0x8'));var _=require('lodash');var squel=require('squel');var crypto=require(_0x3fd0('0x9'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x3fd0('0x7'));var querystring=require('querystring');var Papa=require(_0x3fd0('0xa'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x3fd0('0xb'));var hardwareService=require(_0x3fd0('0xc'));var logger=require('../../config/logger')(_0x3fd0('0xd'));var utils=require(_0x3fd0('0xe'));var config=require(_0x3fd0('0xf'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x7a587a,_0x2db84a){_0x2db84a=_0x2db84a||0xcc;return function(_0x1c3f5d){if(_0x1c3f5d){return _0x7a587a['sendStatus'](_0x2db84a);}return _0x7a587a[_0x3fd0('0x10')](_0x2db84a)[_0x3fd0('0x11')]();};}function respondWithResult(_0x4f4cd6,_0x24793e){_0x24793e=_0x24793e||0xc8;return function(_0x42dfcd){if(_0x42dfcd){return _0x4f4cd6[_0x3fd0('0x10')](_0x24793e)[_0x3fd0('0x12')](_0x42dfcd);}};}function respondWithFilteredResult(_0x3cb72d,_0x38c193){return function(_0x5b0fa2){if(_0x5b0fa2){var _0x3aa2c4=typeof _0x38c193[_0x3fd0('0x13')]===_0x3fd0('0x14')&&typeof _0x38c193[_0x3fd0('0x15')]===_0x3fd0('0x14');var _0x57ecea=_0x5b0fa2[_0x3fd0('0x16')];var _0x4e59bd=_0x3aa2c4?0x0:_0x38c193['offset'];var _0x471ce0=_0x3aa2c4?_0x5b0fa2[_0x3fd0('0x16')]:_0x38c193[_0x3fd0('0x13')]+_0x38c193['limit'];var _0x4df488;if(_0x471ce0>=_0x57ecea){_0x471ce0=_0x57ecea;_0x4df488=0xc8;}else{_0x4df488=0xce;}_0x3cb72d[_0x3fd0('0x10')](_0x4df488);return _0x3cb72d[_0x3fd0('0x17')]('Content-Range',_0x4e59bd+'-'+_0x471ce0+'/'+_0x57ecea)[_0x3fd0('0x12')](_0x5b0fa2);}return null;};}function patchUpdates(_0x593712){return function(_0x4efba4){try{jsonpatch[_0x3fd0('0x18')](_0x4efba4,_0x593712,!![]);}catch(_0xd7651e){return BPromise['reject'](_0xd7651e);}return _0x4efba4[_0x3fd0('0x19')]();};}function saveUpdates(_0x154ea1,_0x1f05a2){return function(_0x40b867){if(_0x40b867){return _0x40b867[_0x3fd0('0x1a')](_0x154ea1)['then'](function(_0x272ee5){return _0x272ee5;});}return null;};}function removeEntity(_0x1d19a5,_0x574bb3){return function(_0x2d8429){if(_0x2d8429){return _0x2d8429[_0x3fd0('0x1b')]()[_0x3fd0('0x1c')](function(){_0x1d19a5[_0x3fd0('0x10')](0xcc)[_0x3fd0('0x11')]();});}};}function handleEntityNotFound(_0x400f7e,_0x500068){return function(_0x41173d){if(!_0x41173d){_0x400f7e['sendStatus'](0x194);}return _0x41173d;};}function handleError(_0x1f6465,_0x5d3b58){_0x5d3b58=_0x5d3b58||0x1f4;return function(_0x5b3ad9){logger[_0x3fd0('0x1d')](_0x5b3ad9[_0x3fd0('0x1e')]);if(_0x5b3ad9[_0x3fd0('0x1f')]){delete _0x5b3ad9[_0x3fd0('0x1f')];}_0x1f6465[_0x3fd0('0x10')](_0x5d3b58)['send'](_0x5b3ad9);};}exports[_0x3fd0('0x20')]=function(_0x1a0c34,_0x3c0547){var _0x1d740d={},_0x3a61fd={},_0x1f2e6b={'count':0x0,'rows':[]};var _0x59f1cd=_[_0x3fd0('0x21')](db[_0x3fd0('0x22')]['rawAttributes'],function(_0xcd0b81){return{'name':_0xcd0b81[_0x3fd0('0x23')],'type':_0xcd0b81[_0x3fd0('0x24')][_0x3fd0('0x25')]};});_0x3a61fd[_0x3fd0('0x26')]=_[_0x3fd0('0x21')](_0x59f1cd,_0x3fd0('0x1f'));_0x3a61fd['query']=_['keys'](_0x1a0c34[_0x3fd0('0x27')]);_0x3a61fd[_0x3fd0('0x28')]=_[_0x3fd0('0x29')](_0x3a61fd[_0x3fd0('0x26')],_0x3a61fd[_0x3fd0('0x27')]);_0x1d740d[_0x3fd0('0x2a')]=_['intersection'](_0x3a61fd['model'],qs[_0x3fd0('0x2b')](_0x1a0c34[_0x3fd0('0x27')]['fields']));_0x1d740d[_0x3fd0('0x2a')]=_0x1d740d[_0x3fd0('0x2a')]['length']?_0x1d740d['attributes']:_0x3a61fd[_0x3fd0('0x26')];if(!_0x1a0c34[_0x3fd0('0x27')][_0x3fd0('0x2c')](_0x3fd0('0x2d'))){_0x1d740d[_0x3fd0('0x15')]=qs[_0x3fd0('0x15')](_0x1a0c34[_0x3fd0('0x27')][_0x3fd0('0x15')]);_0x1d740d['offset']=qs[_0x3fd0('0x13')](_0x1a0c34['query'][_0x3fd0('0x13')]);}_0x1d740d[_0x3fd0('0x2e')]=qs['sort'](_0x1a0c34['query']['sort']);_0x1d740d['where']=qs[_0x3fd0('0x28')](_['pick'](_0x1a0c34[_0x3fd0('0x27')],_0x3a61fd[_0x3fd0('0x28')]),_0x59f1cd);if(_0x1a0c34['query']['filter']){_0x1d740d[_0x3fd0('0x2f')]=_[_0x3fd0('0x30')](_0x1d740d[_0x3fd0('0x2f')],{'$or':_['map'](_0x59f1cd,function(_0x59f07d){if(_0x59f07d[_0x3fd0('0x24')]!=='VIRTUAL'){var _0x585d8a={};_0x585d8a[_0x59f07d[_0x3fd0('0x1f')]]={'$like':'%'+_0x1a0c34[_0x3fd0('0x27')][_0x3fd0('0x31')]+'%'};return _0x585d8a;}})});}_0x1d740d=_['merge']({},_0x1d740d,_0x1a0c34['options']);var _0x3af46f={'where':_0x1d740d[_0x3fd0('0x2f')]};return db[_0x3fd0('0x22')][_0x3fd0('0x16')](_0x3af46f)[_0x3fd0('0x1c')](function(_0x3b5096){_0x1f2e6b[_0x3fd0('0x16')]=_0x3b5096;if(_0x1a0c34['query'][_0x3fd0('0x32')]){_0x1d740d['include']=[{'all':!![]}];}return db['ChatTransferReport'][_0x3fd0('0x33')](_0x1d740d);})['then'](function(_0x1a00a4){_0x1f2e6b[_0x3fd0('0x34')]=_0x1a00a4;return _0x1f2e6b;})['then'](respondWithFilteredResult(_0x3c0547,_0x1d740d))['catch'](handleError(_0x3c0547,null));};exports[_0x3fd0('0x35')]=function(_0x41d7b7,_0x2f906d){var _0x24feb2={'raw':!![],'where':{'id':_0x41d7b7[_0x3fd0('0x36')]['id']}},_0x70f05={};_0x70f05[_0x3fd0('0x26')]=_['keys'](db[_0x3fd0('0x22')][_0x3fd0('0x37')]);_0x70f05[_0x3fd0('0x27')]=_[_0x3fd0('0x38')](_0x41d7b7[_0x3fd0('0x27')]);_0x70f05['filters']=_[_0x3fd0('0x29')](_0x70f05[_0x3fd0('0x26')],_0x70f05[_0x3fd0('0x27')]);_0x24feb2['attributes']=_[_0x3fd0('0x29')](_0x70f05[_0x3fd0('0x26')],qs[_0x3fd0('0x2b')](_0x41d7b7[_0x3fd0('0x27')][_0x3fd0('0x2b')]));_0x24feb2[_0x3fd0('0x2a')]=_0x24feb2[_0x3fd0('0x2a')][_0x3fd0('0x39')]?_0x24feb2[_0x3fd0('0x2a')]:_0x70f05[_0x3fd0('0x26')];if(_0x41d7b7[_0x3fd0('0x27')][_0x3fd0('0x32')]){_0x24feb2[_0x3fd0('0x3a')]=[{'all':!![]}];}_0x24feb2=_[_0x3fd0('0x30')]({},_0x24feb2,_0x41d7b7[_0x3fd0('0x3b')]);return db[_0x3fd0('0x22')]['find'](_0x24feb2)[_0x3fd0('0x1c')](handleEntityNotFound(_0x2f906d,null))[_0x3fd0('0x1c')](respondWithResult(_0x2f906d,null))[_0x3fd0('0x3c')](handleError(_0x2f906d,null));};exports[_0x3fd0('0x3d')]=function(_0x451eac,_0x31513e){return db[_0x3fd0('0x22')][_0x3fd0('0x3d')](_0x451eac[_0x3fd0('0x3e')],{})['then'](respondWithResult(_0x31513e,0xc9))['catch'](handleError(_0x31513e,null));};exports[_0x3fd0('0x1a')]=function(_0x1d7da4,_0x34706e){if(_0x1d7da4['body']['id']){delete _0x1d7da4[_0x3fd0('0x3e')]['id'];}return db[_0x3fd0('0x22')][_0x3fd0('0x3f')]({'where':{'id':_0x1d7da4[_0x3fd0('0x36')]['id']}})['then'](handleEntityNotFound(_0x34706e,null))[_0x3fd0('0x1c')](saveUpdates(_0x1d7da4[_0x3fd0('0x3e')],null))[_0x3fd0('0x1c')](respondWithResult(_0x34706e,null))[_0x3fd0('0x3c')](handleError(_0x34706e,null));};exports[_0x3fd0('0x1b')]=function(_0x2b8902,_0x4de717){return db[_0x3fd0('0x22')][_0x3fd0('0x3f')]({'where':{'id':_0x2b8902['params']['id']}})[_0x3fd0('0x1c')](handleEntityNotFound(_0x4de717,null))['then'](removeEntity(_0x4de717,null))[_0x3fd0('0x3c')](handleError(_0x4de717,null));};exports['describe']=function(_0x3b8360,_0x114dc2){return db[_0x3fd0('0x22')]['describe']()['then'](respondWithResult(_0x114dc2,null))[_0x3fd0('0x3c')](handleError(_0x114dc2,null));};
\ No newline at end of file
+var _0x3546=['offset','undefined','limit','count','Content-Range','apply','reject','save','update','then','destroy','end','sendStatus','error','stack','name','send','index','map','ChatTransferReport','rawAttributes','fieldName','type','key','model','query','keys','intersection','attributes','fields','hasOwnProperty','nolimit','order','where','pick','filters','filter','merge','VIRTUAL','options','include','findAll','rows','show','params','length','includeAll','find','create','catch','body','describe','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','status','json'];(function(_0xda669d,_0x34dbb4){var _0x3d390a=function(_0x3d23b5){while(--_0x3d23b5){_0xda669d['push'](_0xda669d['shift']());}};_0x3d390a(++_0x34dbb4);}(_0x3546,0x82));var _0x6354=function(_0x4a5494,_0x3ad336){_0x4a5494=_0x4a5494-0x0;var _0x57cbb5=_0x3546[_0x4a5494];return _0x57cbb5;};'use strict';var emlformat=require(_0x6354('0x0'));var rimraf=require(_0x6354('0x1'));var zipdir=require(_0x6354('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x6354('0x3'));var moment=require(_0x6354('0x4'));var BPromise=require(_0x6354('0x5'));var Mustache=require(_0x6354('0x6'));var util=require('util');var path=require(_0x6354('0x7'));var sox=require(_0x6354('0x8'));var csv=require(_0x6354('0x9'));var ejs=require(_0x6354('0xa'));var fs=require('fs');var fs_extra=require(_0x6354('0xb'));var _=require(_0x6354('0xc'));var squel=require(_0x6354('0xd'));var crypto=require('crypto');var jsforce=require(_0x6354('0xe'));var deskjs=require(_0x6354('0xf'));var toCsv=require(_0x6354('0x9'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x6354('0x10'));var qs=require(_0x6354('0x11'));var as=require(_0x6354('0x12'));var hardwareService=require(_0x6354('0x13'));var logger=require(_0x6354('0x14'))(_0x6354('0x15'));var utils=require('../../config/utils');var config=require(_0x6354('0x16'));var licenseUtil=require(_0x6354('0x17'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x2d2054,_0x26d305){_0x26d305=_0x26d305||0xcc;return function(_0x47943d){if(_0x47943d){return _0x2d2054['sendStatus'](_0x26d305);}return _0x2d2054[_0x6354('0x18')](_0x26d305)['end']();};}function respondWithResult(_0x5cc157,_0x6d4138){_0x6d4138=_0x6d4138||0xc8;return function(_0x1f6219){if(_0x1f6219){return _0x5cc157[_0x6354('0x18')](_0x6d4138)[_0x6354('0x19')](_0x1f6219);}};}function respondWithFilteredResult(_0x491993,_0x270577){return function(_0x408169){if(_0x408169){var _0x20cea2=typeof _0x270577[_0x6354('0x1a')]===_0x6354('0x1b')&&typeof _0x270577[_0x6354('0x1c')]==='undefined';var _0x22638d=_0x408169[_0x6354('0x1d')];var _0x44f78a=_0x20cea2?0x0:_0x270577[_0x6354('0x1a')];var _0x357c16=_0x20cea2?_0x408169['count']:_0x270577[_0x6354('0x1a')]+_0x270577[_0x6354('0x1c')];var _0x439751;if(_0x357c16>=_0x22638d){_0x357c16=_0x22638d;_0x439751=0xc8;}else{_0x439751=0xce;}_0x491993[_0x6354('0x18')](_0x439751);return _0x491993['set'](_0x6354('0x1e'),_0x44f78a+'-'+_0x357c16+'/'+_0x22638d)['json'](_0x408169);}return null;};}function patchUpdates(_0x1ef662){return function(_0x2150c7){try{jsonpatch[_0x6354('0x1f')](_0x2150c7,_0x1ef662,!![]);}catch(_0x5ee58c){return BPromise[_0x6354('0x20')](_0x5ee58c);}return _0x2150c7[_0x6354('0x21')]();};}function saveUpdates(_0x5b416d,_0x2f4ee9){return function(_0x12c192){if(_0x12c192){return _0x12c192[_0x6354('0x22')](_0x5b416d)[_0x6354('0x23')](function(_0x3c2ce1){return _0x3c2ce1;});}return null;};}function removeEntity(_0x468f24,_0x2b85d1){return function(_0x72c930){if(_0x72c930){return _0x72c930[_0x6354('0x24')]()[_0x6354('0x23')](function(){_0x468f24[_0x6354('0x18')](0xcc)[_0x6354('0x25')]();});}};}function handleEntityNotFound(_0x187018,_0x40d4bd){return function(_0x3a57be){if(!_0x3a57be){_0x187018[_0x6354('0x26')](0x194);}return _0x3a57be;};}function handleError(_0x3c0d59,_0x3676ea){_0x3676ea=_0x3676ea||0x1f4;return function(_0x3e4a71){logger[_0x6354('0x27')](_0x3e4a71[_0x6354('0x28')]);if(_0x3e4a71[_0x6354('0x29')]){delete _0x3e4a71[_0x6354('0x29')];}_0x3c0d59[_0x6354('0x18')](_0x3676ea)[_0x6354('0x2a')](_0x3e4a71);};}exports[_0x6354('0x2b')]=function(_0x3fb534,_0x53d5de){var _0x1a6166={},_0x55ea97={},_0x35d514={'count':0x0,'rows':[]};var _0x2c55b6=_[_0x6354('0x2c')](db[_0x6354('0x2d')][_0x6354('0x2e')],function(_0x4bd728){return{'name':_0x4bd728[_0x6354('0x2f')],'type':_0x4bd728[_0x6354('0x30')][_0x6354('0x31')]};});_0x55ea97[_0x6354('0x32')]=_[_0x6354('0x2c')](_0x2c55b6,_0x6354('0x29'));_0x55ea97[_0x6354('0x33')]=_[_0x6354('0x34')](_0x3fb534[_0x6354('0x33')]);_0x55ea97['filters']=_[_0x6354('0x35')](_0x55ea97['model'],_0x55ea97[_0x6354('0x33')]);_0x1a6166[_0x6354('0x36')]=_[_0x6354('0x35')](_0x55ea97[_0x6354('0x32')],qs['fields'](_0x3fb534[_0x6354('0x33')][_0x6354('0x37')]));_0x1a6166['attributes']=_0x1a6166[_0x6354('0x36')]['length']?_0x1a6166[_0x6354('0x36')]:_0x55ea97[_0x6354('0x32')];if(!_0x3fb534[_0x6354('0x33')][_0x6354('0x38')](_0x6354('0x39'))){_0x1a6166[_0x6354('0x1c')]=qs[_0x6354('0x1c')](_0x3fb534[_0x6354('0x33')][_0x6354('0x1c')]);_0x1a6166[_0x6354('0x1a')]=qs[_0x6354('0x1a')](_0x3fb534['query']['offset']);}_0x1a6166[_0x6354('0x3a')]=qs['sort'](_0x3fb534['query']['sort']);_0x1a6166[_0x6354('0x3b')]=qs['filters'](_[_0x6354('0x3c')](_0x3fb534[_0x6354('0x33')],_0x55ea97[_0x6354('0x3d')]),_0x2c55b6);if(_0x3fb534[_0x6354('0x33')][_0x6354('0x3e')]){_0x1a6166[_0x6354('0x3b')]=_[_0x6354('0x3f')](_0x1a6166[_0x6354('0x3b')],{'$or':_['map'](_0x2c55b6,function(_0x166da2){if(_0x166da2[_0x6354('0x30')]!==_0x6354('0x40')){var _0xcbb6aa={};_0xcbb6aa[_0x166da2['name']]={'$like':'%'+_0x3fb534[_0x6354('0x33')][_0x6354('0x3e')]+'%'};return _0xcbb6aa;}})});}_0x1a6166=_[_0x6354('0x3f')]({},_0x1a6166,_0x3fb534[_0x6354('0x41')]);var _0x5c411e={'where':_0x1a6166['where']};return db[_0x6354('0x2d')]['count'](_0x5c411e)[_0x6354('0x23')](function(_0x4c1a0b){_0x35d514[_0x6354('0x1d')]=_0x4c1a0b;if(_0x3fb534[_0x6354('0x33')]['includeAll']){_0x1a6166[_0x6354('0x42')]=[{'all':!![]}];}return db[_0x6354('0x2d')][_0x6354('0x43')](_0x1a6166);})[_0x6354('0x23')](function(_0x238c4f){_0x35d514[_0x6354('0x44')]=_0x238c4f;return _0x35d514;})['then'](respondWithFilteredResult(_0x53d5de,_0x1a6166))['catch'](handleError(_0x53d5de,null));};exports[_0x6354('0x45')]=function(_0x2b84de,_0x4dd8b7){var _0x4068bb={'raw':!![],'where':{'id':_0x2b84de[_0x6354('0x46')]['id']}},_0x3c8c10={};_0x3c8c10[_0x6354('0x32')]=_[_0x6354('0x34')](db[_0x6354('0x2d')][_0x6354('0x2e')]);_0x3c8c10[_0x6354('0x33')]=_['keys'](_0x2b84de[_0x6354('0x33')]);_0x3c8c10[_0x6354('0x3d')]=_[_0x6354('0x35')](_0x3c8c10['model'],_0x3c8c10[_0x6354('0x33')]);_0x4068bb[_0x6354('0x36')]=_[_0x6354('0x35')](_0x3c8c10[_0x6354('0x32')],qs[_0x6354('0x37')](_0x2b84de['query'][_0x6354('0x37')]));_0x4068bb[_0x6354('0x36')]=_0x4068bb[_0x6354('0x36')][_0x6354('0x47')]?_0x4068bb[_0x6354('0x36')]:_0x3c8c10['model'];if(_0x2b84de[_0x6354('0x33')][_0x6354('0x48')]){_0x4068bb[_0x6354('0x42')]=[{'all':!![]}];}_0x4068bb=_[_0x6354('0x3f')]({},_0x4068bb,_0x2b84de[_0x6354('0x41')]);return db['ChatTransferReport'][_0x6354('0x49')](_0x4068bb)['then'](handleEntityNotFound(_0x4dd8b7,null))[_0x6354('0x23')](respondWithResult(_0x4dd8b7,null))['catch'](handleError(_0x4dd8b7,null));};exports['create']=function(_0x55dcc5,_0x2c3c8e){return db['ChatTransferReport'][_0x6354('0x4a')](_0x55dcc5['body'],{})[_0x6354('0x23')](respondWithResult(_0x2c3c8e,0xc9))[_0x6354('0x4b')](handleError(_0x2c3c8e,null));};exports['update']=function(_0x569092,_0x2bc90c){if(_0x569092[_0x6354('0x4c')]['id']){delete _0x569092[_0x6354('0x4c')]['id'];}return db[_0x6354('0x2d')][_0x6354('0x49')]({'where':{'id':_0x569092[_0x6354('0x46')]['id']}})['then'](handleEntityNotFound(_0x2bc90c,null))[_0x6354('0x23')](saveUpdates(_0x569092['body'],null))[_0x6354('0x23')](respondWithResult(_0x2bc90c,null))['catch'](handleError(_0x2bc90c,null));};exports[_0x6354('0x24')]=function(_0x6d3fa,_0x58cb98){return db[_0x6354('0x2d')][_0x6354('0x49')]({'where':{'id':_0x6d3fa[_0x6354('0x46')]['id']}})['then'](handleEntityNotFound(_0x58cb98,null))[_0x6354('0x23')](removeEntity(_0x58cb98,null))[_0x6354('0x4b')](handleError(_0x58cb98,null));};exports[_0x6354('0x4d')]=function(_0xe49d28,_0x5c100a){return db[_0x6354('0x2d')]['describe']()[_0x6354('0x23')](respondWithResult(_0x5c100a,null))[_0x6354('0x4b')](handleError(_0x5c100a,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9cd7=['uniqueid','lodash','util','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','define','ChatTransferReport','report_chat_transfer'];(function(_0x501510,_0x61caa9){var _0x1e6ee5=function(_0x32845b){while(--_0x32845b){_0x501510['push'](_0x501510['shift']());}};_0x1e6ee5(++_0x61caa9);}(_0x9cd7,0x83));var _0x79cd=function(_0x46df63,_0x5cbc34){_0x46df63=_0x46df63-0x0;var _0x236616=_0x9cd7[_0x46df63];return _0x236616;};'use strict';var _=require(_0x79cd('0x0'));var util=require(_0x79cd('0x1'));var logger=require('../../config/logger')(_0x79cd('0x2'));var moment=require(_0x79cd('0x3'));var BPromise=require(_0x79cd('0x4'));var rp=require(_0x79cd('0x5'));var fs=require('fs');var path=require(_0x79cd('0x6'));var rimraf=require(_0x79cd('0x7'));var config=require(_0x79cd('0x8'));var attributes=require('./chatTransferReport.attributes');module['exports']=function(_0x59c717,_0x2e36ea){return _0x59c717[_0x79cd('0x9')](_0x79cd('0xa'),attributes,{'tableName':_0x79cd('0xb'),'paranoid':![],'indexes':[{'name':'uniqueid','fields':[_0x79cd('0xc')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0xd717=['../../config/logger','moment','bluebird','rimraf','./chatTransferReport.attributes','exports','define','ChatTransferReport','report_chat_transfer','uniqueid'];(function(_0x5254f3,_0x245f9d){var _0x44cce8=function(_0x4177dc){while(--_0x4177dc){_0x5254f3['push'](_0x5254f3['shift']());}};_0x44cce8(++_0x245f9d);}(_0xd717,0x1b8));var _0x7d71=function(_0x3ce10c,_0x501b8d){_0x3ce10c=_0x3ce10c-0x0;var _0x1113dc=_0xd717[_0x3ce10c];return _0x1113dc;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x7d71('0x0'))('api');var moment=require(_0x7d71('0x1'));var BPromise=require(_0x7d71('0x2'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0x7d71('0x3'));var config=require('../../config/environment');var attributes=require(_0x7d71('0x4'));module[_0x7d71('0x5')]=function(_0x3a2961,_0x4c3cf6){return _0x3a2961[_0x7d71('0x6')](_0x7d71('0x7'),attributes,{'tableName':_0x7d71('0x8'),'paranoid':![],'indexes':[{'name':_0x7d71('0x9'),'fields':[_0x7d71('0x9')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x064c=['request','then','ChatTransferReport,\x20%s,\x20%s','request\x20sent','ChatTransferReport,\x20%s,\x20%s,\x20%s','error','code','message','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','http'];(function(_0x18c50c,_0x14230b){var _0x4a8711=function(_0x3f027d){while(--_0x3f027d){_0x18c50c['push'](_0x18c50c['shift']());}};_0x4a8711(++_0x14230b);}(_0x064c,0x143));var _0xc064=function(_0x4996d5,_0x123daf){_0x4996d5=_0x4996d5-0x0;var _0x4793f9=_0x064c[_0x4996d5];return _0x4793f9;};'use strict';var _=require(_0xc064('0x0'));var util=require(_0xc064('0x1'));var moment=require(_0xc064('0x2'));var BPromise=require(_0xc064('0x3'));var rs=require(_0xc064('0x4'));var fs=require('fs');var Redis=require(_0xc064('0x5'));var db=require(_0xc064('0x6'))['db'];var utils=require('../../config/utils');var logger=require(_0xc064('0x7'))(_0xc064('0x8'));var config=require(_0xc064('0x9'));var jayson=require(_0xc064('0xa'));var client=jayson[_0xc064('0xb')][_0xc064('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x591e60,_0xa80c0f,_0x3a1104){return new BPromise(function(_0xbeebbc,_0x2a53b9){return client[_0xc064('0xd')](_0x591e60,_0x3a1104)[_0xc064('0xe')](function(_0x2f5550){logger['info'](_0xc064('0xf'),_0xa80c0f,_0xc064('0x10'));logger['debug'](_0xc064('0x11'),_0xa80c0f,_0xc064('0x10'),JSON['stringify'](_0x2f5550));if(_0x2f5550[_0xc064('0x12')]){if(_0x2f5550[_0xc064('0x12')][_0xc064('0x13')]===0x1f4){logger[_0xc064('0x12')]('ChatTransferReport,\x20%s,\x20%s',_0xa80c0f,_0x2f5550[_0xc064('0x12')][_0xc064('0x14')]);return _0x2a53b9(_0x2f5550[_0xc064('0x12')]['message']);}logger['error'](_0xc064('0xf'),_0xa80c0f,_0x2f5550[_0xc064('0x12')]['message']);return _0xbeebbc(_0x2f5550['error'][_0xc064('0x14')]);}else{logger['info'](_0xc064('0xf'),_0xa80c0f,_0xc064('0x10'));_0xbeebbc(_0x2f5550['result']['message']);}})['catch'](function(_0xc73660){logger[_0xc064('0x12')](_0xc064('0xf'),_0xa80c0f,_0xc73660);_0x2a53b9(_0xc73660);});});}
\ No newline at end of file
+var _0x9b43=['then','info','ChatTransferReport,\x20%s,\x20%s','request\x20sent','ChatTransferReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','lodash','util','moment','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','request'];(function(_0x2e99c9,_0x15c067){var _0x4b4b54=function(_0x3c1d9a){while(--_0x3c1d9a){_0x2e99c9['push'](_0x2e99c9['shift']());}};_0x4b4b54(++_0x15c067);}(_0x9b43,0x199));var _0x39b4=function(_0x4d92fa,_0x5d1fbd){_0x4d92fa=_0x4d92fa-0x0;var _0x3748c2=_0x9b43[_0x4d92fa];return _0x3748c2;};'use strict';var _=require(_0x39b4('0x0'));var util=require(_0x39b4('0x1'));var moment=require(_0x39b4('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0x39b4('0x3'))['db'];var utils=require(_0x39b4('0x4'));var logger=require(_0x39b4('0x5'))(_0x39b4('0x6'));var config=require(_0x39b4('0x7'));var jayson=require('jayson/promise');var client=jayson[_0x39b4('0x8')][_0x39b4('0x9')]({'port':0x232a});function respondWithRpcPromise(_0xdcf375,_0x37259d,_0x1bef9d){return new BPromise(function(_0x345cbe,_0x41d7ec){return client[_0x39b4('0xa')](_0xdcf375,_0x1bef9d)[_0x39b4('0xb')](function(_0x596408){logger[_0x39b4('0xc')](_0x39b4('0xd'),_0x37259d,_0x39b4('0xe'));logger['debug'](_0x39b4('0xf'),_0x37259d,_0x39b4('0xe'),JSON[_0x39b4('0x10')](_0x596408));if(_0x596408[_0x39b4('0x11')]){if(_0x596408[_0x39b4('0x11')][_0x39b4('0x12')]===0x1f4){logger[_0x39b4('0x11')](_0x39b4('0xd'),_0x37259d,_0x596408[_0x39b4('0x11')][_0x39b4('0x13')]);return _0x41d7ec(_0x596408['error']['message']);}logger[_0x39b4('0x11')](_0x39b4('0xd'),_0x37259d,_0x596408[_0x39b4('0x11')][_0x39b4('0x13')]);return _0x345cbe(_0x596408['error'][_0x39b4('0x13')]);}else{logger[_0x39b4('0xc')]('ChatTransferReport,\x20%s,\x20%s',_0x37259d,_0x39b4('0xe'));_0x345cbe(_0x596408[_0x39b4('0x14')][_0x39b4('0x13')]);}})['catch'](function(_0x37a758){logger[_0x39b4('0x11')](_0x39b4('0xd'),_0x37259d,_0x37a758);_0x41d7ec(_0x37a758);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0487=['exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../config/environment','./chatTransferReport.controller','get','index','/describe','isAuthenticated','show','post','create','update','/:id','destroy'];(function(_0x3fd726,_0x3f7032){var _0x51930c=function(_0x3d02cb){while(--_0x3d02cb){_0x3fd726['push'](_0x3fd726['shift']());}};_0x51930c(++_0x3f7032);}(_0x0487,0x166));var _0x7048=function(_0x754ab4,_0x56daa7){_0x754ab4=_0x754ab4-0x0;var _0x34079a=_0x0487[_0x754ab4];return _0x34079a;};'use strict';var multer=require(_0x7048('0x0'));var util=require(_0x7048('0x1'));var path=require(_0x7048('0x2'));var timeout=require(_0x7048('0x3'));var express=require(_0x7048('0x4'));var router=express[_0x7048('0x5')]();var fs_extra=require(_0x7048('0x6'));var auth=require(_0x7048('0x7'));var interaction=require('../../components/interaction/service');var config=require(_0x7048('0x8'));var controller=require(_0x7048('0x9'));router[_0x7048('0xa')]('/',auth['isAuthenticated'](),controller[_0x7048('0xb')]);router[_0x7048('0xa')](_0x7048('0xc'),auth['isAuthenticated'](),controller['describe']);router[_0x7048('0xa')]('/:id',auth[_0x7048('0xd')](),controller[_0x7048('0xe')]);router[_0x7048('0xf')]('/',auth[_0x7048('0xd')](),controller[_0x7048('0x10')]);router['put']('/:id',auth['isAuthenticated'](),controller[_0x7048('0x11')]);router['delete'](_0x7048('0x12'),auth[_0x7048('0xd')](),controller[_0x7048('0x13')]);module[_0x7048('0x14')]=router;
\ No newline at end of file
+var _0xd2d0=['multer','util','path','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./chatTransferReport.controller','index','/describe','isAuthenticated','describe','get','show','create','put','/:id','update','destroy'];(function(_0x242ad6,_0x20d5e2){var _0x5c7bf9=function(_0x402fb3){while(--_0x402fb3){_0x242ad6['push'](_0x242ad6['shift']());}};_0x5c7bf9(++_0x20d5e2);}(_0xd2d0,0x111));var _0x0d2d=function(_0x167cc1,_0x56ef5a){_0x167cc1=_0x167cc1-0x0;var _0x10bc4b=_0xd2d0[_0x167cc1];return _0x10bc4b;};'use strict';var multer=require(_0x0d2d('0x0'));var util=require(_0x0d2d('0x1'));var path=require(_0x0d2d('0x2'));var timeout=require(_0x0d2d('0x3'));var express=require(_0x0d2d('0x4'));var router=express['Router']();var fs_extra=require(_0x0d2d('0x5'));var auth=require(_0x0d2d('0x6'));var interaction=require(_0x0d2d('0x7'));var config=require(_0x0d2d('0x8'));var controller=require(_0x0d2d('0x9'));router['get']('/',auth['isAuthenticated'](),controller[_0x0d2d('0xa')]);router['get'](_0x0d2d('0xb'),auth[_0x0d2d('0xc')](),controller[_0x0d2d('0xd')]);router[_0x0d2d('0xe')]('/:id',auth[_0x0d2d('0xc')](),controller[_0x0d2d('0xf')]);router['post']('/',auth['isAuthenticated'](),controller[_0x0d2d('0x10')]);router[_0x0d2d('0x11')](_0x0d2d('0x12'),auth[_0x0d2d('0xc')](),controller[_0x0d2d('0x13')]);router['delete'](_0x0d2d('0x12'),auth[_0x0d2d('0xc')](),controller[_0x0d2d('0x14')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8bdf=['Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}','website_alias','alternate','#fafafa','System','Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled','Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','mandatoryDispositionPauseId','mandatoryDisposition','Meeting\x20generated\x20for\x20interaction\x20#{{interaction.id}}\x20by\x20{{agent.name}}','sequelize','randomstring','exports','STRING','address','email','#011F6A','INTEGER','BOOLEAN','ENUM','squared','rounded','We\x20are\x20here!','Chat','Send','Powered\x20by\x20xCALLY','TEXT','Form\x20submission\x20error','Note','Type\x20a\x20message','Thanks\x20you\x20for\x20your\x20time!','Skip','Feedback','star','thumb','stringify','input','name','text','getDataValue','onlineForm','parse','setDataValue','textarea','Comments','Leave\x20your\x20comments','offlineForm','generate','All\x20of\x20our\x20agents\x20are\x20busy\x20at\x20this\x20time.\x20Your\x20chat\x20is\x20very\x20important\x20to\x20us.','New\x20offline\x20message\x20from\x20websiteName','You\x20received\x20a\x20new\x20offline\x20message\x20from\x20websiteName.\x20Here\x20you\x20can\x20find\x20the\x20details\x20of\x20the\x20request:','Your\x20request\x20has\x20not\x20been\x20processed.'];(function(_0x31622e,_0x2e9003){var _0x289ee9=function(_0x3ad6cb){while(--_0x3ad6cb){_0x31622e['push'](_0x31622e['shift']());}};_0x289ee9(++_0x2e9003);}(_0x8bdf,0xda));var _0xf8bd=function(_0x3947c9,_0x4d6c97){_0x3947c9=_0x3947c9-0x0;var _0x2e7871=_0x8bdf[_0x3947c9];return _0x2e7871;};'use strict';var Sequelize=require(_0xf8bd('0x0'));var rs=require(_0xf8bd('0x1'));module[_0xf8bd('0x2')]={'name':{'type':Sequelize[_0xf8bd('0x3')],'allowNull':![]},'address':{'type':Sequelize[_0xf8bd('0x3')],'allowNull':![],'unique':_0xf8bd('0x4')},'description':{'type':Sequelize['STRING']},'mapKey':{'type':Sequelize[_0xf8bd('0x3')],'defaultValue':_0xf8bd('0x5')},'mapKeyOffline':{'type':Sequelize['STRING'],'defaultValue':'email'},'key':{'type':Sequelize[_0xf8bd('0x3')],'allowNull':![]},'agentAlias':{'type':Sequelize['STRING'],'defaultValue':'Agent'},'customerAlias':{'type':Sequelize[_0xf8bd('0x3')],'defaultValue':'Me'},'color':{'type':Sequelize[_0xf8bd('0x3')],'allowNull':![],'defaultValue':_0xf8bd('0x6'),'validate':{'notEmpty':!![]}},'color_button':{'type':Sequelize[_0xf8bd('0x3')],'allowNull':![],'defaultValue':_0xf8bd('0x6'),'validate':{'notEmpty':!![]}},'textColor':{'type':Sequelize[_0xf8bd('0x3')],'allowNull':![],'defaultValue':'#ffffff','validate':{'notEmpty':!![]}},'fontSize':{'type':Sequelize[_0xf8bd('0x7')],'defaultValue':0xf},'remote':{'type':Sequelize[_0xf8bd('0x3')]},'animation':{'type':Sequelize[_0xf8bd('0x8')],'defaultValue':!![]},'header_shape':{'type':Sequelize[_0xf8bd('0x9')]('rounded',_0xf8bd('0xa')),'defaultValue':_0xf8bd('0xb')},'header_online':{'type':Sequelize[_0xf8bd('0x3')],'defaultValue':_0xf8bd('0xc')},'start_chat_button':{'type':Sequelize[_0xf8bd('0x3')],'defaultValue':_0xf8bd('0xd')},'offline_chat_button':{'type':Sequelize[_0xf8bd('0x3')],'defaultValue':_0xf8bd('0xe')},'header_offline':{'type':Sequelize[_0xf8bd('0x3')],'defaultValue':'Contact\x20us'},'download_transcript':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'timeout':{'type':Sequelize[_0xf8bd('0x7')],'defaultValue':0x0},'whiteLabel':{'type':Sequelize[_0xf8bd('0x3')],'defaultValue':_0xf8bd('0xf')},'defaultWhiteLabel':{'type':Sequelize[_0xf8bd('0x8')],'defaultValue':!![]},'sitepic':{'type':Sequelize[_0xf8bd('0x10')]},'closingQuestion':{'type':Sequelize[_0xf8bd('0x3')],'defaultValue':'Do\x20you\x20want\x20to\x20close\x20the\x20interaction?'},'formSubmitSuccessMessage':{'type':Sequelize[_0xf8bd('0x3')],'defaultValue':'Form\x20properly\x20submitted'},'formSubmitFailureMessage':{'type':Sequelize[_0xf8bd('0x3')],'defaultValue':_0xf8bd('0x11')},'noteTitle':{'type':Sequelize[_0xf8bd('0x3')],'defaultValue':_0xf8bd('0x12')},'placeholderMessage':{'type':Sequelize[_0xf8bd('0x3')],'defaultValue':_0xf8bd('0x13')},'closingMessage':{'type':Sequelize['STRING'],'defaultValue':_0xf8bd('0x14')},'closingMessageButton':{'type':Sequelize['STRING'],'defaultValue':'Send'},'skipMessageButton':{'type':Sequelize[_0xf8bd('0x3')],'defaultValue':_0xf8bd('0x15')},'conditionAgreement':{'type':Sequelize[_0xf8bd('0x8')],'defaultValue':![]},'enableRating':{'type':Sequelize[_0xf8bd('0x8')],'defaultValue':![]},'enableFeedback':{'type':Sequelize[_0xf8bd('0x8')],'defaultValue':![]},'enableSendButton':{'type':Sequelize[_0xf8bd('0x8')],'defaultValue':![]},'feedbackTitle':{'type':Sequelize['STRING'],'defaultValue':_0xf8bd('0x16')},'ratingType':{'type':Sequelize['ENUM'](_0xf8bd('0x17'),_0xf8bd('0x18')),'defaultValue':_0xf8bd('0x17')},'ratingStarsNumber':{'type':Sequelize[_0xf8bd('0x7')],'defaultValue':0x5},'onlineForm':{'type':Sequelize[_0xf8bd('0x10')],'defaultValue':function(){return JSON[_0xf8bd('0x19')]({'items':[{'type':_0xf8bd('0x1a'),'variable':null,'config':{'placeholder':_0xf8bd('0x1b'),'type':_0xf8bd('0x1c'),'required':!![]},'props':{'title':'name','helpText':''}},{'type':_0xf8bd('0x1a'),'props':{'title':_0xf8bd('0x5'),'helpText':''},'config':{'required':!![],'placeholder':'email','type':_0xf8bd('0x5')},'variable':null}],'fromKey':0x1});},'get':function(){return this[_0xf8bd('0x1d')](_0xf8bd('0x1e'))?JSON[_0xf8bd('0x1f')](this[_0xf8bd('0x1d')]('onlineForm')):{};},'set':function(_0x14a49d){return this[_0xf8bd('0x20')]('onlineForm',JSON[_0xf8bd('0x19')](_0x14a49d));}},'offlineForm':{'type':Sequelize['TEXT'],'defaultValue':function(){return JSON[_0xf8bd('0x19')]({'items':[{'type':_0xf8bd('0x1a'),'props':{'title':_0xf8bd('0x5'),'helpText':''},'config':{'required':!![],'placeholder':'email','type':_0xf8bd('0x5')},'variable':null},{'type':_0xf8bd('0x21'),'config':{'placeholder':_0xf8bd('0x22')},'props':{'title':_0xf8bd('0x22'),'helpText':_0xf8bd('0x23')}}],'fromKey':0x0});},'get':function(){return this[_0xf8bd('0x1d')](_0xf8bd('0x24'))?JSON[_0xf8bd('0x1f')](this[_0xf8bd('0x1d')]('offlineForm')):{};},'set':function(_0x1c18fb){return this[_0xf8bd('0x20')]('offlineForm',JSON[_0xf8bd('0x19')](_0x1c18fb));}},'token':{'type':Sequelize[_0xf8bd('0x3')],'defaultValue':function(){return rs[_0xf8bd('0x25')]();}},'autoclose':{'type':Sequelize[_0xf8bd('0x8')],'defaultValue':!![]},'enableCustomerWriting':{'type':Sequelize[_0xf8bd('0x8')],'defaultValue':![]},'forwardTranscript':{'type':Sequelize[_0xf8bd('0x8')],'defaultValue':![]},'forwardTranscriptMessage':{'type':Sequelize[_0xf8bd('0x3')]},'forwardOffline':{'type':Sequelize[_0xf8bd('0x8')],'defaultValue':![]},'forwardOfflineAddress':{'type':Sequelize[_0xf8bd('0x3')]},'waitingTitle':{'type':Sequelize[_0xf8bd('0x3')],'defaultValue':_0xf8bd('0x26')},'waitingMessage':{'type':Sequelize[_0xf8bd('0x3')],'defaultValue':'Please\x20hold\x20and\x20we\x20will\x20answer\x20your\x20request\x20as\x20soon\x20as\x20possible.'},'offlineMessageSubject':{'type':Sequelize[_0xf8bd('0x3')],'defaultValue':_0xf8bd('0x27')},'offlineMessageBody':{'type':Sequelize[_0xf8bd('0x3')],'defaultValue':_0xf8bd('0x28')},'enableUnmanagedNote':{'type':Sequelize[_0xf8bd('0x8')],'defaultValue':!![]},'unmanagedMessage':{'type':Sequelize[_0xf8bd('0x3')],'defaultValue':_0xf8bd('0x29')},'skipUnmanaged':{'type':Sequelize['STRING'],'defaultValue':_0xf8bd('0x15')},'sendUnmanaged':{'type':Sequelize[_0xf8bd('0x3')],'defaultValue':_0xf8bd('0xe')},'enableCustomerAttachment':{'type':Sequelize[_0xf8bd('0x8')],'defaultValue':![]},'enableCustomerCheckmarks':{'type':Sequelize[_0xf8bd('0x8')],'defaultValue':![]},'agentAvatar':{'type':Sequelize[_0xf8bd('0x10')]},'showAgentAvatar':{'type':Sequelize[_0xf8bd('0x8')],'defaultValue':![]},'timezone':{'type':Sequelize['STRING']},'notificationTemplate':{'type':Sequelize[_0xf8bd('0x10')],'defaultValue':function(){return _0xf8bd('0x2a');}},'notificationSound':{'type':Sequelize[_0xf8bd('0x8')],'defaultValue':!![]},'notificationShake':{'type':Sequelize[_0xf8bd('0x8')],'defaultValue':![]},'hideWhenOffline':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'agentIdentifier':{'type':Sequelize[_0xf8bd('0x3')],'defaultValue':_0xf8bd('0x2b')},'waitForTheAssignedAgent':{'type':Sequelize[_0xf8bd('0x7')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'alignment':{'type':Sequelize[_0xf8bd('0x3')],'defaultValue':'bottom_right'},'verticalAlignment':{'type':Sequelize['INTEGER'],'defaultValue':0x1e},'messagesAlignment':{'type':Sequelize[_0xf8bd('0x3')],'defaultValue':_0xf8bd('0x2c')},'defaultTitle':{'type':Sequelize[_0xf8bd('0x3')]},'customerAvatar':{'type':Sequelize[_0xf8bd('0x10')]},'showCustomerAvatar':{'type':Sequelize[_0xf8bd('0x8')],'defaultValue':![]},'messageFontSize':{'type':Sequelize['INTEGER'],'defaultValue':0xc},'backgroundColor':{'type':Sequelize[_0xf8bd('0x3')],'allowNull':![],'defaultValue':_0xf8bd('0x2d'),'validate':{'notEmpty':!![]}},'queueTransfer':{'type':Sequelize[_0xf8bd('0x8')],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize[_0xf8bd('0x8')],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize[_0xf8bd('0x7')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'systemAlias':{'type':Sequelize[_0xf8bd('0x3')],'defaultValue':_0xf8bd('0x2e')},'systemAvatar':{'type':Sequelize['TEXT']},'mandatoryDispositionPauseId':{'type':Sequelize[_0xf8bd('0x7')],'comment':_0xf8bd('0x2f')},'mandatoryDisposition':{'type':Sequelize[_0xf8bd('0x8')],'defaultValue':![],'comment':_0xf8bd('0x30'),'set':function(_0x3dde1f){if(!_0x3dde1f)this[_0xf8bd('0x20')](_0xf8bd('0x31'),null);this[_0xf8bd('0x20')](_0xf8bd('0x32'),_0x3dde1f);}},'vidaooEscalation':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'vidaooApiKey':{'type':Sequelize[_0xf8bd('0x3')]},'vidaooTopic':{'type':Sequelize[_0xf8bd('0x3')],'allowNull':![],'defaultValue':'Generated\x20by\x20XCALLY\x20Motion'},'vidaooNote':{'type':Sequelize[_0xf8bd('0x3')],'defaultValue':function(){return _0xf8bd('0x33');}},'vidaooMetadata':{'type':Sequelize[_0xf8bd('0x10')],'defaultValue':null},'openNewInteraction':{'type':Sequelize[_0xf8bd('0x8')],'defaultValue':![],'allowNull':!![]},'subjectOffline':{'type':Sequelize['TEXT']}};
\ No newline at end of file
+var _0x7204=['randomstring','exports','STRING','address','email','Agent','#011F6A','#ffffff','BOOLEAN','ENUM','rounded','squared','We\x20are\x20here!','Chat','Send','Contact\x20us','INTEGER','Powered\x20by\x20xCALLY','Do\x20you\x20want\x20to\x20close\x20the\x20interaction?','Form\x20properly\x20submitted','Form\x20submission\x20error','Note','Type\x20a\x20message','Thanks\x20you\x20for\x20your\x20time!','Skip','thumb','star','TEXT','stringify','input','name','getDataValue','onlineForm','setDataValue','Comments','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:','Your\x20request\x20has\x20not\x20been\x20processed.','website_alias','bottom_right','#fafafa','Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','mandatoryDispositionPauseId','Generated\x20by\x20XCALLY\x20Motion','Meeting\x20generated\x20for\x20interaction\x20#{{interaction.id}}\x20by\x20{{agent.name}}','sequelize'];(function(_0x1969a7,_0x5a133a){var _0x3d665f=function(_0x39c64b){while(--_0x39c64b){_0x1969a7['push'](_0x1969a7['shift']());}};_0x3d665f(++_0x5a133a);}(_0x7204,0xfe));var _0x4720=function(_0x4a9fb1,_0x273043){_0x4a9fb1=_0x4a9fb1-0x0;var _0x348672=_0x7204[_0x4a9fb1];return _0x348672;};'use strict';var Sequelize=require(_0x4720('0x0'));var rs=require(_0x4720('0x1'));module[_0x4720('0x2')]={'name':{'type':Sequelize['STRING'],'allowNull':![]},'address':{'type':Sequelize[_0x4720('0x3')],'allowNull':![],'unique':_0x4720('0x4')},'description':{'type':Sequelize[_0x4720('0x3')]},'mapKey':{'type':Sequelize['STRING'],'defaultValue':_0x4720('0x5')},'mapKeyOffline':{'type':Sequelize[_0x4720('0x3')],'defaultValue':_0x4720('0x5')},'key':{'type':Sequelize[_0x4720('0x3')],'allowNull':![]},'agentAlias':{'type':Sequelize[_0x4720('0x3')],'defaultValue':_0x4720('0x6')},'customerAlias':{'type':Sequelize[_0x4720('0x3')],'defaultValue':'Me'},'color':{'type':Sequelize[_0x4720('0x3')],'allowNull':![],'defaultValue':_0x4720('0x7'),'validate':{'notEmpty':!![]}},'color_button':{'type':Sequelize[_0x4720('0x3')],'allowNull':![],'defaultValue':'#011F6A','validate':{'notEmpty':!![]}},'textColor':{'type':Sequelize[_0x4720('0x3')],'allowNull':![],'defaultValue':_0x4720('0x8'),'validate':{'notEmpty':!![]}},'fontSize':{'type':Sequelize['INTEGER'],'defaultValue':0xf},'remote':{'type':Sequelize[_0x4720('0x3')]},'animation':{'type':Sequelize[_0x4720('0x9')],'defaultValue':!![]},'header_shape':{'type':Sequelize[_0x4720('0xa')](_0x4720('0xb'),_0x4720('0xc')),'defaultValue':_0x4720('0xb')},'header_online':{'type':Sequelize[_0x4720('0x3')],'defaultValue':_0x4720('0xd')},'start_chat_button':{'type':Sequelize[_0x4720('0x3')],'defaultValue':_0x4720('0xe')},'offline_chat_button':{'type':Sequelize[_0x4720('0x3')],'defaultValue':_0x4720('0xf')},'header_offline':{'type':Sequelize[_0x4720('0x3')],'defaultValue':_0x4720('0x10')},'download_transcript':{'type':Sequelize[_0x4720('0x9')],'defaultValue':!![]},'timeout':{'type':Sequelize[_0x4720('0x11')],'defaultValue':0x0},'whiteLabel':{'type':Sequelize[_0x4720('0x3')],'defaultValue':_0x4720('0x12')},'defaultWhiteLabel':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'sitepic':{'type':Sequelize['TEXT']},'closingQuestion':{'type':Sequelize['STRING'],'defaultValue':_0x4720('0x13')},'formSubmitSuccessMessage':{'type':Sequelize[_0x4720('0x3')],'defaultValue':_0x4720('0x14')},'formSubmitFailureMessage':{'type':Sequelize[_0x4720('0x3')],'defaultValue':_0x4720('0x15')},'noteTitle':{'type':Sequelize[_0x4720('0x3')],'defaultValue':_0x4720('0x16')},'placeholderMessage':{'type':Sequelize[_0x4720('0x3')],'defaultValue':_0x4720('0x17')},'closingMessage':{'type':Sequelize[_0x4720('0x3')],'defaultValue':_0x4720('0x18')},'closingMessageButton':{'type':Sequelize[_0x4720('0x3')],'defaultValue':'Send'},'skipMessageButton':{'type':Sequelize['STRING'],'defaultValue':_0x4720('0x19')},'conditionAgreement':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'enableRating':{'type':Sequelize[_0x4720('0x9')],'defaultValue':![]},'enableFeedback':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'enableSendButton':{'type':Sequelize[_0x4720('0x9')],'defaultValue':![]},'feedbackTitle':{'type':Sequelize[_0x4720('0x3')],'defaultValue':'Feedback'},'ratingType':{'type':Sequelize[_0x4720('0xa')]('star',_0x4720('0x1a')),'defaultValue':_0x4720('0x1b')},'ratingStarsNumber':{'type':Sequelize[_0x4720('0x11')],'defaultValue':0x5},'onlineForm':{'type':Sequelize[_0x4720('0x1c')],'defaultValue':function(){return JSON[_0x4720('0x1d')]({'items':[{'type':_0x4720('0x1e'),'variable':null,'config':{'placeholder':_0x4720('0x1f'),'type':'text','required':!![]},'props':{'title':'name','helpText':''}},{'type':_0x4720('0x1e'),'props':{'title':'email','helpText':''},'config':{'required':!![],'placeholder':_0x4720('0x5'),'type':_0x4720('0x5')},'variable':null}],'fromKey':0x1});},'get':function(){return this[_0x4720('0x20')](_0x4720('0x21'))?JSON['parse'](this[_0x4720('0x20')](_0x4720('0x21'))):{};},'set':function(_0x5338b9){return this[_0x4720('0x22')](_0x4720('0x21'),JSON[_0x4720('0x1d')](_0x5338b9));}},'offlineForm':{'type':Sequelize['TEXT'],'defaultValue':function(){return JSON['stringify']({'items':[{'type':'input','props':{'title':_0x4720('0x5'),'helpText':''},'config':{'required':!![],'placeholder':_0x4720('0x5'),'type':_0x4720('0x5')},'variable':null},{'type':'textarea','config':{'placeholder':_0x4720('0x23')},'props':{'title':_0x4720('0x23'),'helpText':'Leave\x20your\x20comments'}}],'fromKey':0x0});},'get':function(){return this[_0x4720('0x20')](_0x4720('0x24'))?JSON[_0x4720('0x25')](this[_0x4720('0x20')](_0x4720('0x24'))):{};},'set':function(_0x3a4224){return this[_0x4720('0x22')](_0x4720('0x24'),JSON[_0x4720('0x1d')](_0x3a4224));}},'token':{'type':Sequelize[_0x4720('0x3')],'defaultValue':function(){return rs[_0x4720('0x26')]();}},'autoclose':{'type':Sequelize[_0x4720('0x9')],'defaultValue':!![]},'enableCustomerWriting':{'type':Sequelize[_0x4720('0x9')],'defaultValue':![]},'forwardTranscript':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'forwardTranscriptMessage':{'type':Sequelize[_0x4720('0x3')]},'forwardOffline':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'forwardOfflineAddress':{'type':Sequelize[_0x4720('0x3')]},'waitingTitle':{'type':Sequelize[_0x4720('0x3')],'defaultValue':_0x4720('0x27')},'waitingMessage':{'type':Sequelize['STRING'],'defaultValue':_0x4720('0x28')},'offlineMessageSubject':{'type':Sequelize[_0x4720('0x3')],'defaultValue':_0x4720('0x29')},'offlineMessageBody':{'type':Sequelize[_0x4720('0x3')],'defaultValue':_0x4720('0x2a')},'enableUnmanagedNote':{'type':Sequelize[_0x4720('0x9')],'defaultValue':!![]},'unmanagedMessage':{'type':Sequelize[_0x4720('0x3')],'defaultValue':_0x4720('0x2b')},'skipUnmanaged':{'type':Sequelize[_0x4720('0x3')],'defaultValue':_0x4720('0x19')},'sendUnmanaged':{'type':Sequelize[_0x4720('0x3')],'defaultValue':_0x4720('0xf')},'enableCustomerAttachment':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'enableCustomerCheckmarks':{'type':Sequelize[_0x4720('0x9')],'defaultValue':![]},'agentAvatar':{'type':Sequelize[_0x4720('0x1c')]},'showAgentAvatar':{'type':Sequelize[_0x4720('0x9')],'defaultValue':![]},'timezone':{'type':Sequelize[_0x4720('0x3')]},'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[_0x4720('0x9')],'defaultValue':!![]},'notificationShake':{'type':Sequelize[_0x4720('0x9')],'defaultValue':![]},'hideWhenOffline':{'type':Sequelize[_0x4720('0x9')],'defaultValue':![]},'agentIdentifier':{'type':Sequelize[_0x4720('0x3')],'defaultValue':_0x4720('0x2c')},'waitForTheAssignedAgent':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'alignment':{'type':Sequelize[_0x4720('0x3')],'defaultValue':_0x4720('0x2d')},'verticalAlignment':{'type':Sequelize['INTEGER'],'defaultValue':0x1e},'messagesAlignment':{'type':Sequelize[_0x4720('0x3')],'defaultValue':'alternate'},'defaultTitle':{'type':Sequelize[_0x4720('0x3')]},'customerAvatar':{'type':Sequelize[_0x4720('0x1c')]},'showCustomerAvatar':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'messageFontSize':{'type':Sequelize[_0x4720('0x11')],'defaultValue':0xc},'backgroundColor':{'type':Sequelize[_0x4720('0x3')],'allowNull':![],'defaultValue':_0x4720('0x2e'),'validate':{'notEmpty':!![]}},'queueTransfer':{'type':Sequelize[_0x4720('0x9')],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize[_0x4720('0x9')],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize[_0x4720('0x11')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'systemAlias':{'type':Sequelize[_0x4720('0x3')],'defaultValue':'System'},'systemAvatar':{'type':Sequelize['TEXT']},'mandatoryDispositionPauseId':{'type':Sequelize[_0x4720('0x11')],'comment':'Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled'},'mandatoryDisposition':{'type':Sequelize[_0x4720('0x9')],'defaultValue':![],'comment':_0x4720('0x2f'),'set':function(_0xcf51cf){if(!_0xcf51cf)this[_0x4720('0x22')](_0x4720('0x30'),null);this[_0x4720('0x22')]('mandatoryDisposition',_0xcf51cf);}},'vidaooEscalation':{'type':Sequelize[_0x4720('0x9')],'defaultValue':![]},'vidaooApiKey':{'type':Sequelize['STRING']},'vidaooTopic':{'type':Sequelize[_0x4720('0x3')],'allowNull':![],'defaultValue':_0x4720('0x31')},'vidaooNote':{'type':Sequelize[_0x4720('0x3')],'defaultValue':function(){return _0x4720('0x32');}},'vidaooMetadata':{'type':Sequelize[_0x4720('0x1c')],'defaultValue':null},'openNewInteraction':{'type':Sequelize[_0x4720('0x9')],'defaultValue':![],'allowNull':!![]},'subjectOffline':{'type':Sequelize[_0x4720('0x1c')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x84b1=['getAgents','eml-format','rimraf','zip-dir','fast-json-patch','moment','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','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','socket.io-emitter','register','jayson/promise','client','http','request','then','request\x20sent','ChatWebsite,\x20%s,\x20%s,\x20%s','error','code','message','ChatWebsite,\x20%s,\x20%s','info','result','catch','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','destroy','get','ChatWebsites','stack','name','index','Pause','mandatoryDispositionPause','map','ChatWebsite','rawAttributes','fieldName','type','key','model','query','keys','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','filter','options','includeAll','include','show','params','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','find','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','describe','addDisposition','Disposition','getDispositions','findOne','ChatWebsiteId','findAll','rows','removeDispositions','addAnswer','CannedAnswer','removeAnswers','addLogo','sitepic','filename','addAvatar','agentAvatar','addCustomerAvatar','customerAvatar','getLogo','root','server/files/images/logos/default_logo.svg','isNil','existsSync','join','server/files/images/logos/','download','getAvatar','server/files/images/avatars/default_avatar.png','server/files/images/avatars/','getCustomerAvatar','server/files/images/avatars/customer_avatar.png','showCustomerAvatar','getSystemAvatar','server/files/images/avatars/system_avatar.png','systemAvatar','user-agent-parser','headers','user-agent','chat','CmContact','Sequelize','ValidationError','difference','updatedAt','createdAt','CompanyId','ListId','from','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','CmList','List','DESC','ChatApplication','Applications','list','applications','orderBy','priority','asc','account','customerIp','cf-connecting-ip','first','x-forwarded-for','split','firstName','lastName','x-real-port','referer','browser','version','format','unknown','%s\x20%s','device','vendor','%s\x20%s\x20%s','stringify','threadId','ChatInteraction','externalUrl','ContactId','interaction','spread','contact','messageId','created','autoclose','push','close','unmanaged','ChatMessage','AttachmentId','UserId','unshift','waitForTheAssignedAgent','forcedOwnership','Start','startRouting','EventManager','notify','offline','files','no\x20available\x20attributes','send','mapKeyOffline','mapKeyOffline\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','MailAccount','findOrCreate','readFileSync','server/files/templates/chatOfflineMessage.ejs','toPairs','offlineMessageBody','ChatOfflineMessage','originalname','mimetype','server','basename','openNewInteraction','sequelize','MailServerOut','Smtp','forwardOffline','service','host','port','secure','auth','pass','SendMail','sendMail','\x22%s\x22\x20<%s>','email','forwardOfflineAddress','offlineMessageSubject','mapValues','subjectOffline','NotifyMailAccount','notifyMail','attachments','offline-chat','Could\x20not\x20remove\x20attachment\x20file','addInteraction','omit','ids','Contact','User','Owner','fullname','internal','Tag','Tags','color','tag','Command','timezone','iftime\x20%s,%s','interval','iftime\x20%s','indexOf','ONLINE','OFFLINE','No\x20timezone','[%s][INTERVAL][%s]\x20%s\x20%s\x20(%s)','inspect','getSnippet','Interval','Intervals','getProactiveActions','virtual','custom','increment','chatLicenseExceeded','all','some','server/files/chat/iframe.ejs','remote','x-real-ip','remoteAddress','replace','render','verticalAlignment','textColor','backgroundColor','addApplications','bulkCreate','findAndCountAll','getApplications','chatProactiveAction','ChatProactiveAction','getFields','online','false','offlineForm','onlineForm','items','fromKey','getOfflineMessages','Attachment','addAgents','emit','userChatWebsite:save','removeAgents','isArray','userChatWebsite:remove'];(function(_0x596c5f,_0xaf75aa){var _0xe02cdc=function(_0x1ee0e6){while(--_0x1ee0e6){_0x596c5f['push'](_0x596c5f['shift']());}};_0xe02cdc(++_0xaf75aa);}(_0x84b1,0x13c));var _0x184b=function(_0x4ab2b3,_0x358dcb){_0x4ab2b3=_0x4ab2b3-0x0;var _0x47f9af=_0x84b1[_0x4ab2b3];return _0x47f9af;};'use strict';var emlformat=require(_0x184b('0x0'));var rimraf=require(_0x184b('0x1'));var zipdir=require(_0x184b('0x2'));var jsonpatch=require(_0x184b('0x3'));var rp=require('request-promise');var moment=require(_0x184b('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x184b('0x5'));var util=require(_0x184b('0x6'));var path=require(_0x184b('0x7'));var sox=require(_0x184b('0x8'));var csv=require(_0x184b('0x9'));var ejs=require(_0x184b('0xa'));var fs=require('fs');var fs_extra=require(_0x184b('0xb'));var _=require(_0x184b('0xc'));var squel=require(_0x184b('0xd'));var crypto=require('crypto');var jsforce=require(_0x184b('0xe'));var deskjs=require('desk.js');var toCsv=require(_0x184b('0x9'));var querystring=require(_0x184b('0xf'));var Papa=require(_0x184b('0x10'));var Redis=require(_0x184b('0x11'));var authService=require(_0x184b('0x12'));var qs=require(_0x184b('0x13'));var as=require(_0x184b('0x14'));var hardwareService=require(_0x184b('0x15'));var logger=require('../../config/logger')(_0x184b('0x16'));var utils=require(_0x184b('0x17'));var config=require(_0x184b('0x18'));var licenseUtil=require(_0x184b('0x19'));var db=require(_0x184b('0x1a'))['db'];config[_0x184b('0x1b')]=_[_0x184b('0x1c')](config[_0x184b('0x1b')],{'host':'localhost','port':0x18eb});var socket=require(_0x184b('0x1d'))(new Redis(config[_0x184b('0x1b')]));require('./chatWebsite.socket')[_0x184b('0x1e')](socket);var jayson=require(_0x184b('0x1f'));var client=jayson[_0x184b('0x20')]['http']({'port':0x232c});var client9002=jayson[_0x184b('0x20')]['http']({'port':0x232a});var client9003=jayson[_0x184b('0x20')][_0x184b('0x21')]({'port':0x232b});var client9001=jayson['client'][_0x184b('0x21')]({'port':0x2329});function respondWithRpcPromise(_0x384a8a,_0x47b80c,_0x34a6fa,_0x401855){return new BPromise(function(_0x3edb8c,_0x56327a){var _0x2d54bc=_0x401855||client;return _0x2d54bc[_0x184b('0x22')](_0x384a8a,_0x34a6fa)[_0x184b('0x23')](function(_0x5301b9){logger['info']('ChatWebsite,\x20%s,\x20%s',_0x47b80c,_0x184b('0x24'));logger['debug'](_0x184b('0x25'),_0x47b80c,_0x184b('0x24'),JSON['stringify'](_0x5301b9));if(_0x5301b9['error']){if(_0x5301b9[_0x184b('0x26')][_0x184b('0x27')]===0x1f4){logger['error']('ChatWebsite,\x20%s,\x20%s',_0x47b80c,_0x5301b9[_0x184b('0x26')][_0x184b('0x28')]);return _0x56327a(_0x5301b9['error'][_0x184b('0x28')]);}logger[_0x184b('0x26')](_0x184b('0x29'),_0x47b80c,_0x5301b9[_0x184b('0x26')][_0x184b('0x28')]);return _0x3edb8c(_0x5301b9['error'][_0x184b('0x28')]);}else{logger[_0x184b('0x2a')]('ChatWebsite,\x20%s,\x20%s',_0x47b80c,_0x184b('0x24'));_0x3edb8c(_0x5301b9[_0x184b('0x2b')][_0x184b('0x28')]);}})[_0x184b('0x2c')](function(_0x1e9465){logger[_0x184b('0x26')]('ChatWebsite,\x20%s,\x20%s',_0x47b80c,_0x1e9465);_0x56327a(_0x1e9465);});});}function respondWithStatusCode(_0x563ef9,_0x40f37a){_0x40f37a=_0x40f37a||0xcc;return function(_0x4433fb){if(_0x4433fb){return _0x563ef9['sendStatus'](_0x40f37a);}return _0x563ef9[_0x184b('0x2d')](_0x40f37a)[_0x184b('0x2e')]();};}function respondWithResult(_0xce5886,_0x3aab66){_0x3aab66=_0x3aab66||0xc8;return function(_0x2bbb64){if(_0x2bbb64){return _0xce5886['status'](_0x3aab66)[_0x184b('0x2f')](_0x2bbb64);}};}function respondWithFilteredResult(_0x155cf4,_0xce8fbd){return function(_0xc23d0d){if(_0xc23d0d){var _0x204517=typeof _0xce8fbd[_0x184b('0x30')]===_0x184b('0x31')&&typeof _0xce8fbd[_0x184b('0x32')]===_0x184b('0x31');var _0x124d51=_0xc23d0d[_0x184b('0x33')];var _0x4038e0=_0x204517?0x0:_0xce8fbd[_0x184b('0x30')];var _0x5a91d1=_0x204517?_0xc23d0d['count']:_0xce8fbd[_0x184b('0x30')]+_0xce8fbd[_0x184b('0x32')];var _0x2e5e58;if(_0x5a91d1>=_0x124d51){_0x5a91d1=_0x124d51;_0x2e5e58=0xc8;}else{_0x2e5e58=0xce;}_0x155cf4['status'](_0x2e5e58);return _0x155cf4[_0x184b('0x34')](_0x184b('0x35'),_0x4038e0+'-'+_0x5a91d1+'/'+_0x124d51)['json'](_0xc23d0d);}return null;};}function patchUpdates(_0x15eee7){return function(_0x27e45c){try{jsonpatch[_0x184b('0x36')](_0x27e45c,_0x15eee7,!![]);}catch(_0x352c8a){return BPromise[_0x184b('0x37')](_0x352c8a);}return _0x27e45c[_0x184b('0x38')]();};}function saveUpdates(_0x4496b2,_0x7ba815){return function(_0x263dfc){if(_0x263dfc){return _0x263dfc[_0x184b('0x39')](_0x4496b2)[_0x184b('0x23')](function(_0x2b6306){return _0x2b6306;});}return null;};}function removeEntity(_0xe7558b,_0x96adc0){return function(_0x35d4a6){if(_0x35d4a6){return _0x35d4a6[_0x184b('0x3a')]()[_0x184b('0x23')](function(){var _0xa103fb=_0x35d4a6[_0x184b('0x3b')]({'plain':!![]});var _0x3be739=_0x184b('0x3c');return db['UserProfileResource']['destroy']({'where':{'type':_0x3be739,'resourceId':_0xa103fb['id']}})[_0x184b('0x23')](function(){return _0x35d4a6;});})[_0x184b('0x23')](function(){_0xe7558b[_0x184b('0x2d')](0xcc)[_0x184b('0x2e')]();});}};}function handleEntityNotFound(_0x11eada,_0x34cee6){return function(_0x2b8adb){if(!_0x2b8adb){_0x11eada['sendStatus'](0x194);}return _0x2b8adb;};}function handleError(_0x1a4e9b,_0x30a3bd){_0x30a3bd=_0x30a3bd||0x1f4;return function(_0x4372d9){logger[_0x184b('0x26')](_0x4372d9[_0x184b('0x3d')]);if(_0x4372d9['name']){delete _0x4372d9[_0x184b('0x3e')];}_0x1a4e9b[_0x184b('0x2d')](_0x30a3bd)['send'](_0x4372d9);};}exports[_0x184b('0x3f')]=function(_0x31f264,_0x360b96){var _0x449f88={'include':[{'model':db[_0x184b('0x40')],'as':_0x184b('0x41')}]},_0x525e6f={},_0x33b3db={'count':0x0,'rows':[]};var _0x434e6e=_[_0x184b('0x42')](db[_0x184b('0x43')][_0x184b('0x44')],function(_0x11bb4e){return{'name':_0x11bb4e[_0x184b('0x45')],'type':_0x11bb4e[_0x184b('0x46')][_0x184b('0x47')]};});_0x525e6f[_0x184b('0x48')]=_[_0x184b('0x42')](_0x434e6e,_0x184b('0x3e'));_0x525e6f[_0x184b('0x49')]=_[_0x184b('0x4a')](_0x31f264[_0x184b('0x49')]);_0x525e6f[_0x184b('0x4b')]=_['intersection'](_0x525e6f[_0x184b('0x48')],_0x525e6f['query']);_0x449f88[_0x184b('0x4c')]=_[_0x184b('0x4d')](_0x525e6f[_0x184b('0x48')],qs[_0x184b('0x4e')](_0x31f264[_0x184b('0x49')][_0x184b('0x4e')]));_0x449f88['attributes']=_0x449f88[_0x184b('0x4c')][_0x184b('0x4f')]?_0x449f88['attributes']:_0x525e6f[_0x184b('0x48')];if(!_0x31f264[_0x184b('0x49')][_0x184b('0x50')](_0x184b('0x51'))){_0x449f88[_0x184b('0x32')]=qs['limit'](_0x31f264[_0x184b('0x49')][_0x184b('0x32')]);_0x449f88[_0x184b('0x30')]=qs[_0x184b('0x30')](_0x31f264[_0x184b('0x49')][_0x184b('0x30')]);}_0x449f88[_0x184b('0x52')]=qs[_0x184b('0x53')](_0x31f264['query'][_0x184b('0x53')]);_0x449f88[_0x184b('0x54')]=qs[_0x184b('0x4b')](_[_0x184b('0x55')](_0x31f264['query'],_0x525e6f[_0x184b('0x4b')]),_0x434e6e);if(_0x31f264[_0x184b('0x49')]['filter']){_0x449f88['where']=_[_0x184b('0x56')](_0x449f88[_0x184b('0x54')],{'$or':_[_0x184b('0x42')](_0x434e6e,function(_0x174f93){if(_0x174f93['type']!=='VIRTUAL'){var _0x2eded4={};_0x2eded4[_0x174f93[_0x184b('0x3e')]]={'$like':'%'+_0x31f264['query'][_0x184b('0x57')]+'%'};return _0x2eded4;}})});}_0x449f88=_[_0x184b('0x56')]({},_0x449f88,_0x31f264[_0x184b('0x58')]);var _0x1d66e2={'where':_0x449f88[_0x184b('0x54')]};return db[_0x184b('0x43')][_0x184b('0x33')](_0x1d66e2)['then'](function(_0x2f5b1a){_0x33b3db[_0x184b('0x33')]=_0x2f5b1a;if(_0x31f264[_0x184b('0x49')][_0x184b('0x59')]){_0x449f88[_0x184b('0x5a')]=[{'all':!![]}];}return db[_0x184b('0x43')]['findAll'](_0x449f88);})[_0x184b('0x23')](function(_0xc01a5a){_0x33b3db['rows']=_0xc01a5a;return _0x33b3db;})[_0x184b('0x23')](respondWithFilteredResult(_0x360b96,_0x449f88))['catch'](handleError(_0x360b96,null));};exports[_0x184b('0x5b')]=function(_0x55c52d,_0x50502b){var _0x288642={'raw':![],'where':{'id':_0x55c52d[_0x184b('0x5c')]['id']},'include':[{'model':db['Pause'],'as':_0x184b('0x41')}]},_0x59af7f={};_0x59af7f[_0x184b('0x48')]=_[_0x184b('0x4a')](db[_0x184b('0x43')][_0x184b('0x44')]);_0x59af7f[_0x184b('0x49')]=_[_0x184b('0x4a')](_0x55c52d[_0x184b('0x49')]);_0x59af7f[_0x184b('0x4b')]=_[_0x184b('0x4d')](_0x59af7f['model'],_0x59af7f[_0x184b('0x49')]);_0x288642['attributes']=_['intersection'](_0x59af7f['model'],qs[_0x184b('0x4e')](_0x55c52d[_0x184b('0x49')][_0x184b('0x4e')]));_0x288642[_0x184b('0x4c')]=_0x288642[_0x184b('0x4c')]['length']?_0x288642[_0x184b('0x4c')]:_0x59af7f['model'];if(_0x55c52d[_0x184b('0x49')]['includeAll']){_0x288642[_0x184b('0x5a')]=[{'all':!![]}];}_0x288642=_['merge']({},_0x288642,_0x55c52d[_0x184b('0x58')]);return db[_0x184b('0x43')]['find'](_0x288642)['then'](handleEntityNotFound(_0x50502b,null))['then'](respondWithResult(_0x50502b,null))[_0x184b('0x2c')](handleError(_0x50502b,null));};exports[_0x184b('0x5d')]=function(_0x489cb9,_0x3e3ddd){return db['ChatWebsite'][_0x184b('0x5d')](_0x489cb9[_0x184b('0x5e')],{})[_0x184b('0x23')](function(_0x598799){var _0x59f065=_0x489cb9[_0x184b('0x5f')][_0x184b('0x3b')]({'plain':!![]});if(!_0x59f065)throw new Error(_0x184b('0x60'));if(_0x59f065[_0x184b('0x61')]==='user'){var _0x425d77=_0x598799[_0x184b('0x3b')]({'plain':!![]});var _0x5e1d8a=_0x184b('0x3c');return db[_0x184b('0x62')][_0x184b('0x63')]({'where':{'name':_0x5e1d8a,'userProfileId':_0x59f065[_0x184b('0x64')]},'raw':!![]})['then'](function(_0x393f4d){if(_0x393f4d&&_0x393f4d[_0x184b('0x65')]===0x0){return db[_0x184b('0x66')][_0x184b('0x5d')]({'name':_0x425d77[_0x184b('0x3e')],'resourceId':_0x425d77['id'],'type':_0x393f4d[_0x184b('0x3e')],'sectionId':_0x393f4d['id']},{})['then'](function(){return _0x598799;});}else{return _0x598799;}})['catch'](function(_0x1b2a07){logger[_0x184b('0x26')](_0x184b('0x67'),_0x1b2a07);throw _0x1b2a07;});}return _0x598799;})[_0x184b('0x23')](respondWithResult(_0x3e3ddd,0xc9))[_0x184b('0x2c')](handleError(_0x3e3ddd,null));};exports['update']=function(_0x192047,_0x2a5965){if(_0x192047[_0x184b('0x5e')]['id']){delete _0x192047[_0x184b('0x5e')]['id'];}return db[_0x184b('0x43')][_0x184b('0x63')]({'where':{'id':_0x192047[_0x184b('0x5c')]['id']},'include':[{'model':db[_0x184b('0x40')],'as':'mandatoryDispositionPause'}]})[_0x184b('0x23')](handleEntityNotFound(_0x2a5965,null))['then'](saveUpdates(_0x192047[_0x184b('0x5e')],null))[_0x184b('0x23')](respondWithResult(_0x2a5965,null))['catch'](handleError(_0x2a5965,null));};exports['destroy']=function(_0x56b38b,_0x423c02){return db[_0x184b('0x43')][_0x184b('0x63')]({'where':{'id':_0x56b38b['params']['id']}})[_0x184b('0x23')](handleEntityNotFound(_0x423c02,null))[_0x184b('0x23')](removeEntity(_0x423c02,null))[_0x184b('0x2c')](handleError(_0x423c02,null));};exports[_0x184b('0x68')]=function(_0x48995e,_0x501cba){return db[_0x184b('0x43')][_0x184b('0x68')]()['then'](respondWithResult(_0x501cba,null))['catch'](handleError(_0x501cba,null));};exports[_0x184b('0x69')]=function(_0x44def8,_0x38e873,_0x57ffc7){if(_0x44def8['body']['id']){delete _0x44def8[_0x184b('0x5e')]['id'];}return db[_0x184b('0x43')][_0x184b('0x63')]({'where':{'id':_0x44def8[_0x184b('0x5c')]['id']}})[_0x184b('0x23')](handleEntityNotFound(_0x38e873,null))[_0x184b('0x23')](function(_0x19758f){if(_0x19758f){_0x44def8[_0x184b('0x5e')]['ChatWebsiteId']=_0x19758f['id'];return db[_0x184b('0x6a')][_0x184b('0x5d')](_0x44def8[_0x184b('0x5e')]);}})[_0x184b('0x23')](respondWithResult(_0x38e873,null))[_0x184b('0x2c')](handleError(_0x38e873,null));};exports[_0x184b('0x6b')]=function(_0x2c7234,_0xe2f2c6,_0x3a048b){var _0x2b40b2={'raw':![],'where':{}};var _0x179ae2={};var _0xcf1ba9={'count':0x0,'rows':[]};return db[_0x184b('0x43')][_0x184b('0x6c')]({'where':{'id':_0x2c7234[_0x184b('0x5c')]['id']}})[_0x184b('0x23')](handleEntityNotFound(_0xe2f2c6,null))[_0x184b('0x23')](function(_0x3fdde4){if(_0x3fdde4){_0x179ae2['model']=_['keys'](db[_0x184b('0x6a')][_0x184b('0x44')]);_0x179ae2[_0x184b('0x49')]=_[_0x184b('0x4a')](_0x2c7234[_0x184b('0x49')]);_0x179ae2[_0x184b('0x4b')]=_['intersection'](_0x179ae2[_0x184b('0x48')],_0x179ae2[_0x184b('0x49')]);_0x2b40b2[_0x184b('0x4c')]=_[_0x184b('0x4d')](_0x179ae2[_0x184b('0x48')],qs['fields'](_0x2c7234[_0x184b('0x49')]['fields']));_0x2b40b2[_0x184b('0x4c')]=_0x2b40b2['attributes'][_0x184b('0x4f')]?_0x2b40b2[_0x184b('0x4c')]:_0x179ae2[_0x184b('0x48')];if(!_0x2c7234[_0x184b('0x49')][_0x184b('0x50')](_0x184b('0x51'))){_0x2b40b2['limit']=qs[_0x184b('0x32')](_0x2c7234[_0x184b('0x49')]['limit']);_0x2b40b2[_0x184b('0x30')]=qs[_0x184b('0x30')](_0x2c7234[_0x184b('0x49')][_0x184b('0x30')]);}_0x2b40b2[_0x184b('0x52')]=qs[_0x184b('0x53')](_0x2c7234[_0x184b('0x49')][_0x184b('0x53')]);_0x2b40b2[_0x184b('0x54')]=qs['filters'](_[_0x184b('0x55')](_0x2c7234[_0x184b('0x49')],_0x179ae2[_0x184b('0x4b')]));_0x2b40b2[_0x184b('0x54')][_0x184b('0x6d')]=_0x3fdde4['id'];if(_0x2c7234[_0x184b('0x49')][_0x184b('0x57')]){_0x2b40b2[_0x184b('0x54')]=_[_0x184b('0x56')](_0x2b40b2[_0x184b('0x54')],{'$or':_[_0x184b('0x42')](_0x2b40b2['attributes'],function(_0x263500){var _0x5fd0aa={};_0x5fd0aa[_0x263500]={'$like':'%'+_0x2c7234[_0x184b('0x49')][_0x184b('0x57')]+'%'};return _0x5fd0aa;})});}_0x2b40b2=_[_0x184b('0x56')]({},_0x2b40b2,_0x2c7234[_0x184b('0x58')]);return db[_0x184b('0x6a')][_0x184b('0x33')]({'where':_0x2b40b2[_0x184b('0x54')]})[_0x184b('0x23')](function(_0x434205){_0xcf1ba9[_0x184b('0x33')]=_0x434205;if(_0x2c7234['query'][_0x184b('0x59')]){_0x2b40b2[_0x184b('0x5a')]=[{'all':!![]}];}return db[_0x184b('0x6a')][_0x184b('0x6e')](_0x2b40b2);})['then'](function(_0xa9111e){_0xcf1ba9[_0x184b('0x6f')]=_0xa9111e;return _0xcf1ba9;});}})[_0x184b('0x23')](respondWithFilteredResult(_0xe2f2c6,_0x2b40b2))[_0x184b('0x2c')](handleError(_0xe2f2c6,null));};exports[_0x184b('0x70')]=function(_0x5884ae,_0x12ed5e,_0x55b183){return db[_0x184b('0x43')][_0x184b('0x63')]({'where':{'id':_0x5884ae[_0x184b('0x5c')]['id']}})[_0x184b('0x23')](handleEntityNotFound(_0x12ed5e,null))['then'](function(_0x36e9d5){if(_0x36e9d5){return _0x36e9d5[_0x184b('0x70')](_0x5884ae[_0x184b('0x49')]['ids']);}})[_0x184b('0x23')](respondWithStatusCode(_0x12ed5e,null))[_0x184b('0x2c')](handleError(_0x12ed5e,null));};exports[_0x184b('0x71')]=function(_0x44d9e6,_0x30ec65,_0x3d272c){if(_0x44d9e6[_0x184b('0x5e')]['id']){delete _0x44d9e6['body']['id'];}return db[_0x184b('0x43')][_0x184b('0x63')]({'where':{'id':_0x44d9e6[_0x184b('0x5c')]['id']}})['then'](handleEntityNotFound(_0x30ec65,null))[_0x184b('0x23')](function(_0x103adb){if(_0x103adb){_0x44d9e6['body'][_0x184b('0x6d')]=_0x103adb['id'];return db[_0x184b('0x72')]['create'](_0x44d9e6[_0x184b('0x5e')]);}})[_0x184b('0x23')](respondWithResult(_0x30ec65,null))[_0x184b('0x2c')](handleError(_0x30ec65,null));};exports['getAnswers']=function(_0x10e0e9,_0x5019c0,_0x17a0ab){var _0x4801f9={'raw':![],'where':{}};var _0x9cc272={};var _0x4c6ba4={'count':0x0,'rows':[]};return db[_0x184b('0x43')][_0x184b('0x6c')]({'where':{'id':_0x10e0e9[_0x184b('0x5c')]['id']}})[_0x184b('0x23')](handleEntityNotFound(_0x5019c0,null))['then'](function(_0x5d686c){if(_0x5d686c){_0x9cc272['model']=_[_0x184b('0x4a')](db[_0x184b('0x72')][_0x184b('0x44')]);_0x9cc272[_0x184b('0x49')]=_['keys'](_0x10e0e9[_0x184b('0x49')]);_0x9cc272[_0x184b('0x4b')]=_['intersection'](_0x9cc272[_0x184b('0x48')],_0x9cc272[_0x184b('0x49')]);_0x4801f9[_0x184b('0x4c')]=_['intersection'](_0x9cc272[_0x184b('0x48')],qs['fields'](_0x10e0e9['query'][_0x184b('0x4e')]));_0x4801f9['attributes']=_0x4801f9['attributes'][_0x184b('0x4f')]?_0x4801f9['attributes']:_0x9cc272[_0x184b('0x48')];if(!_0x10e0e9['query'][_0x184b('0x50')]('nolimit')){_0x4801f9[_0x184b('0x32')]=qs['limit'](_0x10e0e9['query']['limit']);_0x4801f9['offset']=qs['offset'](_0x10e0e9[_0x184b('0x49')]['offset']);}_0x4801f9[_0x184b('0x52')]=qs['sort'](_0x10e0e9[_0x184b('0x49')][_0x184b('0x53')]);_0x4801f9[_0x184b('0x54')]=qs[_0x184b('0x4b')](_[_0x184b('0x55')](_0x10e0e9[_0x184b('0x49')],_0x9cc272[_0x184b('0x4b')]));_0x4801f9['where'][_0x184b('0x6d')]=_0x5d686c['id'];if(_0x10e0e9[_0x184b('0x49')]['filter']){_0x4801f9[_0x184b('0x54')]=_['merge'](_0x4801f9[_0x184b('0x54')],{'$or':_[_0x184b('0x42')](_0x4801f9[_0x184b('0x4c')],function(_0xc43dd7){var _0x7943f8={};_0x7943f8[_0xc43dd7]={'$like':'%'+_0x10e0e9[_0x184b('0x49')]['filter']+'%'};return _0x7943f8;})});}_0x4801f9=_[_0x184b('0x56')]({},_0x4801f9,_0x10e0e9['options']);return db['CannedAnswer'][_0x184b('0x33')]({'where':_0x4801f9[_0x184b('0x54')]})[_0x184b('0x23')](function(_0x24d2d1){_0x4c6ba4[_0x184b('0x33')]=_0x24d2d1;if(_0x10e0e9[_0x184b('0x49')]['includeAll']){_0x4801f9[_0x184b('0x5a')]=[{'all':!![]}];}return db[_0x184b('0x72')][_0x184b('0x6e')](_0x4801f9);})[_0x184b('0x23')](function(_0x266817){_0x4c6ba4[_0x184b('0x6f')]=_0x266817;return _0x4c6ba4;});}})['then'](respondWithFilteredResult(_0x5019c0,_0x4801f9))[_0x184b('0x2c')](handleError(_0x5019c0,null));};exports['removeAnswers']=function(_0x30a487,_0x340c8f,_0x25e18e){return db['ChatWebsite']['find']({'where':{'id':_0x30a487[_0x184b('0x5c')]['id']}})['then'](handleEntityNotFound(_0x340c8f,null))[_0x184b('0x23')](function(_0x2709c9){if(_0x2709c9){return _0x2709c9[_0x184b('0x73')](_0x30a487[_0x184b('0x49')]['ids']);}})[_0x184b('0x23')](respondWithStatusCode(_0x340c8f,null))['catch'](handleError(_0x340c8f,null));};exports[_0x184b('0x74')]=function(_0x4027b4,_0x32eb4f,_0x9ad3a1){_0x4027b4[_0x184b('0x5e')][_0x184b('0x75')]=_0x4027b4['file'][_0x184b('0x76')];return db[_0x184b('0x43')][_0x184b('0x63')]({'where':{'id':_0x4027b4[_0x184b('0x5c')]['id']}})[_0x184b('0x23')](handleEntityNotFound(_0x32eb4f,null))[_0x184b('0x23')](saveUpdates(_0x4027b4[_0x184b('0x5e')],null))['then'](respondWithResult(_0x32eb4f,null))[_0x184b('0x2c')](handleError(_0x32eb4f,null));};exports[_0x184b('0x77')]=function(_0x5806,_0x501a41,_0x48d1f6){_0x5806[_0x184b('0x5e')][_0x184b('0x78')]=_0x5806['file']['filename'];return db[_0x184b('0x43')][_0x184b('0x63')]({'where':{'id':_0x5806['params']['id']}})[_0x184b('0x23')](handleEntityNotFound(_0x501a41,null))[_0x184b('0x23')](saveUpdates(_0x5806['body'],null))['then'](respondWithResult(_0x501a41,null))[_0x184b('0x2c')](handleError(_0x501a41,null));};exports[_0x184b('0x79')]=function(_0x22960e,_0x1b6d77,_0x5da4d1){_0x22960e['body'][_0x184b('0x7a')]=_0x22960e['file'][_0x184b('0x76')];return db[_0x184b('0x43')]['find']({'where':{'id':_0x22960e[_0x184b('0x5c')]['id']}})[_0x184b('0x23')](handleEntityNotFound(_0x1b6d77,null))[_0x184b('0x23')](saveUpdates(_0x22960e[_0x184b('0x5e')],null))[_0x184b('0x23')](respondWithResult(_0x1b6d77,null))[_0x184b('0x2c')](handleError(_0x1b6d77,null));};exports['addSystemAvatar']=function(_0x429e40,_0x185323,_0x3cf15b){_0x429e40['body']['systemAvatar']=_0x429e40['file'][_0x184b('0x76')];return db[_0x184b('0x43')][_0x184b('0x63')]({'where':{'id':_0x429e40[_0x184b('0x5c')]['id']}})[_0x184b('0x23')](handleEntityNotFound(_0x185323,null))['then'](saveUpdates(_0x429e40[_0x184b('0x5e')],null))[_0x184b('0x23')](respondWithResult(_0x185323,null))['catch'](handleError(_0x185323,null));};exports[_0x184b('0x7b')]=function(_0x2744e4,_0x51de92,_0x2aaaf7){var _0x352c88=path['join'](config[_0x184b('0x7c')],_0x184b('0x7d'));var _0xfb5075={'where':{'id':_0x2744e4['params']['id']},'attributes':['id','sitepic'],'raw':!![]};var _0x4d4916=![];return require('../../config/license/util')['getLicense']()['then'](function(_0x5d4865){if(_0x5d4865){_0x4d4916=_0x5d4865['custom'];}})['then'](function(){return db[_0x184b('0x43')]['find'](_0xfb5075);})[_0x184b('0x23')](handleEntityNotFound(_0x51de92,null))[_0x184b('0x23')](function(_0x2b271a){if(_0x2b271a){if(!_[_0x184b('0x7e')](_0x2b271a[_0x184b('0x75')])){if(fs[_0x184b('0x7f')](path[_0x184b('0x80')](config[_0x184b('0x7c')],_0x184b('0x81'),_0x2b271a[_0x184b('0x75')]))&&_0x4d4916){_0x352c88=path[_0x184b('0x80')](config['root'],_0x184b('0x81'),_0x2b271a['sitepic']);}}return _0x51de92[_0x184b('0x82')](_0x352c88);}})[_0x184b('0x2c')](handleError(_0x51de92,null));};exports[_0x184b('0x83')]=function(_0x3b0925,_0x221031,_0x3e1b2a){var _0x2aad24=path[_0x184b('0x80')](config['root'],_0x184b('0x84'));var _0x56d1e5={'where':{'id':_0x3b0925[_0x184b('0x5c')]['id']},'attributes':['id','agentAvatar'],'raw':!![]};return db[_0x184b('0x43')][_0x184b('0x63')](_0x56d1e5)['then'](handleEntityNotFound(_0x221031,null))[_0x184b('0x23')](function(_0x226f26){if(_0x226f26){if(!_['isNil'](_0x226f26[_0x184b('0x78')])){if(fs[_0x184b('0x7f')](path[_0x184b('0x80')](config[_0x184b('0x7c')],_0x184b('0x85'),_0x226f26[_0x184b('0x78')]))){_0x2aad24=path['join'](config[_0x184b('0x7c')],_0x184b('0x85'),_0x226f26[_0x184b('0x78')]);}}return _0x221031[_0x184b('0x82')](_0x2aad24);}})[_0x184b('0x2c')](handleError(_0x221031,null));};exports[_0x184b('0x86')]=function(_0x5cae88,_0x1d2a2c,_0x3913a7){var _0x39ae8b=path['join'](config['root'],_0x184b('0x87'));var _0x2e6484={'where':{'id':_0x5cae88['params']['id']},'attributes':['id','customerAvatar',_0x184b('0x88')],'raw':!![]};return db['ChatWebsite']['find'](_0x2e6484)[_0x184b('0x23')](handleEntityNotFound(_0x1d2a2c,null))[_0x184b('0x23')](function(_0x2f804d){if(_0x2f804d){if(!_[_0x184b('0x7e')](_0x2f804d['customerAvatar'])){if(fs[_0x184b('0x7f')](path[_0x184b('0x80')](config[_0x184b('0x7c')],_0x184b('0x85'),_0x2f804d['customerAvatar']))&&_0x2f804d[_0x184b('0x88')]){_0x39ae8b=path[_0x184b('0x80')](config[_0x184b('0x7c')],_0x184b('0x85'),_0x2f804d[_0x184b('0x7a')]);}}return _0x1d2a2c[_0x184b('0x82')](_0x39ae8b);}})['catch'](handleError(_0x1d2a2c,null));};exports[_0x184b('0x89')]=function(_0x46c970,_0x36774b,_0x154757){var _0x136a1d=path[_0x184b('0x80')](config[_0x184b('0x7c')],_0x184b('0x8a'));var _0x5db8ee={'where':{'id':_0x46c970['params']['id']},'attributes':['id','systemAvatar'],'raw':!![]};return db[_0x184b('0x43')][_0x184b('0x63')](_0x5db8ee)[_0x184b('0x23')](handleEntityNotFound(_0x36774b,null))[_0x184b('0x23')](function(_0x1795fe){if(_0x1795fe){if(!_[_0x184b('0x7e')](_0x1795fe[_0x184b('0x8b')])){if(fs[_0x184b('0x7f')](path['join'](config[_0x184b('0x7c')],_0x184b('0x85'),_0x1795fe[_0x184b('0x8b')]))){_0x136a1d=path['join'](config[_0x184b('0x7c')],_0x184b('0x85'),_0x1795fe[_0x184b('0x8b')]);}}return _0x36774b[_0x184b('0x82')](_0x136a1d);}})[_0x184b('0x2c')](handleError(_0x36774b,null));};exports['notify']=function(_0x586b58,_0x20bb48,_0x5131cc){var _0x4c73d0=require(_0x184b('0x8c'));var _0x5b950c=new _0x4c73d0();var _0x4eb1dd=_0x5b950c['setUA'](_0x586b58[_0x184b('0x8d')][_0x184b('0x8e')])['getResult']();var _0x4c832a={'body':_0x586b58[_0x184b('0x5e')],'channel':_0x184b('0x8f')};var _0x12b5d4=[];var _0x161b1c=[];var _0x4fe2cb={};var _0xfb9545=![];return db[_0x184b('0x90')][_0x184b('0x68')]()['then'](function(_0x2933f0){if(!_0x2933f0){throw new db[(_0x184b('0x91'))][(_0x184b('0x92'))]('no\x20available\x20attributes');}_0x12b5d4=_[_0x184b('0x93')](_[_0x184b('0x4a')](_0x2933f0),['createdAt',_0x184b('0x94')]);_0x161b1c=_['difference'](_['keys'](_0x2933f0),[_0x184b('0x95'),_0x184b('0x94'),_0x184b('0x96'),_0x184b('0x97')]);if(_0x586b58[_0x184b('0x5e')]['id']){delete _0x586b58[_0x184b('0x5e')]['id'];}if(_['isNil'](_0x586b58[_0x184b('0x5e')][_0x184b('0x98')])){throw new db[(_0x184b('0x91'))][(_0x184b('0x92'))](_0x184b('0x99'));}if(_[_0x184b('0x7e')](_0x586b58[_0x184b('0x5e')][_0x184b('0x5e')])||_0x586b58[_0x184b('0x5e')][_0x184b('0x5e')]===''){throw new db[(_0x184b('0x91'))]['ValidationError'](_0x184b('0x9a'));}if(_[_0x184b('0x7e')](_0x586b58[_0x184b('0x5e')][_0x184b('0x9b')])){throw new db[(_0x184b('0x91'))][(_0x184b('0x92'))](_0x184b('0x9c')+_0x161b1c);}if(!_['includes'](_0x161b1c,_0x586b58[_0x184b('0x5e')][_0x184b('0x9b')])){throw new db['Sequelize']['ValidationError'](_0x184b('0x9d')+_0x161b1c);}_0x4fe2cb[_0x586b58[_0x184b('0x5e')][_0x184b('0x9b')]]=_0x586b58[_0x184b('0x5e')][_0x184b('0x98')];})['then'](function(){return db[_0x184b('0x43')]['find']({'where':{'id':_0x586b58[_0x184b('0x5c')]['id']},'include':[{'model':db[_0x184b('0x9e')],'as':_0x184b('0x9f'),'include':[{'model':db[_0x184b('0x90')],'as':'Contacts','where':_0x4fe2cb,'limit':0x1,'order':[[_0x184b('0x94'),_0x184b('0xa0')]]}]},{'model':db[_0x184b('0xa1')],'as':_0x184b('0xa2')}]});})['then'](handleEntityNotFound(_0x20bb48,null))['then'](function(_0x233561){if(_0x233561&&_0x233561[_0x184b('0x9f')]){_0x4c832a['account']=_0x233561;_0x4c832a['applications']=_0x233561[_0x184b('0xa2')];_0x4c832a[_0x184b('0xa3')]=_0x233561[_0x184b('0x9f')];_0x4c832a[_0x184b('0xa4')]=_[_0x184b('0xa5')](_0x4c832a[_0x184b('0xa4')],[_0x184b('0xa6')],[_0x184b('0xa7')]);if(_0x4c832a[_0x184b('0xa8')][_0x184b('0xa2')]){delete _0x4c832a[_0x184b('0xa8')]['Applications'];}if(_0x4c832a[_0x184b('0xa8')][_0x184b('0x9f')]&&_0x4c832a[_0x184b('0xa8')]['List']['Contacts'][_0x184b('0x4f')]){return _0x4c832a[_0x184b('0xa8')][_0x184b('0x9f')]['Contacts'][0x0];}var _0x50606e=_['defaults'](_0x586b58[_0x184b('0x5e')],{'firstName':_0x586b58[_0x184b('0x5e')][_0x184b('0x98')],'ListId':_0x233561[_0x184b('0x97')]});_0x50606e[_0x586b58[_0x184b('0x5e')][_0x184b('0x9b')]]=_0x586b58['body'][_0x184b('0x98')];return db[_0x184b('0x90')][_0x184b('0x5d')](_0x50606e,{'fields':_0x12b5d4,'raw':!![]});}})['then'](handleEntityNotFound(_0x20bb48,null))[_0x184b('0x23')](function(_0x218534){_0x4c832a['contact']=_0x218534;var _0x13db91=_0x586b58[_0x184b('0x5e')][_0x184b('0xa9')];if(_0x586b58[_0x184b('0x8d')][_0x184b('0xaa')]){_0x13db91=_0x586b58[_0x184b('0x8d')][_0x184b('0xaa')];}else if(_0x586b58[_0x184b('0x8d')]['x-forwarded-for']){_0x13db91=_[_0x184b('0xab')](_0x586b58[_0x184b('0x8d')][_0x184b('0xac')][_0x184b('0xad')](','));}if(_0x218534){var _0x134f01={'ContactId':_0x218534['id'],'ChatWebsiteId':_0x586b58[_0x184b('0x5c')]['id'],'from':(_0x218534[_0x184b('0xae')]||'')+'\x20'+(_0x218534[_0x184b('0xaf')]||''),'customerIp':_0x13db91,'customerPort':_0x586b58['headers'][_0x184b('0xb0')]?_0x586b58[_0x184b('0x8d')][_0x184b('0xb0')]:null,'referer':_0x586b58[_0x184b('0x5e')][_0x184b('0xb1')],'browserName':_0x4eb1dd[_0x184b('0xb2')][_0x184b('0x3e')]&&_0x4eb1dd['browser'][_0x184b('0xb3')]?util[_0x184b('0xb4')]('%s\x20%s',_0x4eb1dd[_0x184b('0xb2')][_0x184b('0x3e')],_0x4eb1dd[_0x184b('0xb2')][_0x184b('0xb3')]):_0x184b('0xb5'),'browserVersion':_0x4eb1dd[_0x184b('0xb2')][_0x184b('0xb3')]||_0x184b('0xb5'),'osName':util['format'](_0x184b('0xb6'),_0x4eb1dd['os'][_0x184b('0x3e')],_0x4eb1dd['os'][_0x184b('0xb3')]),'osVersion':_0x4eb1dd['os']['version'],'deviceModel':_0x4eb1dd[_0x184b('0xb7')][_0x184b('0x48')]&&_0x4eb1dd['device'][_0x184b('0xb8')]?util['format'](_0x184b('0xb9'),_0x4eb1dd['device'][_0x184b('0x48')],_0x4eb1dd[_0x184b('0xb7')][_0x184b('0xb8')],_0x4eb1dd[_0x184b('0xb7')][_0x184b('0x46')]):null,'deviceVendor':_0x4eb1dd[_0x184b('0xb7')][_0x184b('0xb8')],'deviceType':_0x4eb1dd['device'][_0x184b('0x46')],'formData':JSON[_0x184b('0xba')](_0x586b58[_0x184b('0x5e')])};var _0x3ffafc={'ChatWebsiteId':_0x586b58[_0x184b('0x5c')]['id'],'closed':![]};if(_0x586b58['body'][_0x184b('0xbb')]){_0x3ffafc['threadId']=_0x586b58[_0x184b('0x5e')][_0x184b('0xbb')];return db[_0x184b('0xbc')][_0x184b('0x63')]({'where':_0x3ffafc})['then'](function(_0x3a4309){if(_0x3a4309){return[_0x3a4309,![]];}_0x134f01[_0x184b('0xbb')]=_0x586b58[_0x184b('0x5e')][_0x184b('0xbb')];_0x134f01[_0x184b('0xbd')]=_0x586b58[_0x184b('0x5e')]['externalUrl'];return db[_0x184b('0xbc')][_0x184b('0x5d')](_0x134f01)['then'](function(_0x87318f){return[_0x87318f,!![]];});});}_0x3ffafc[_0x184b('0xbe')]=_0x218534['id'];if(_0x586b58[_0x184b('0x5e')][_0x184b('0xbf')]&&_0x586b58['body'][_0x184b('0xbf')]['id']){_0x3ffafc['id']=_0x586b58[_0x184b('0x5e')]['interaction']['id'];return db['ChatInteraction'][_0x184b('0x63')]({'where':_0x3ffafc})['then'](function(_0x59e55b){if(_0x59e55b){return[_0x59e55b,![]];}return db[_0x184b('0xbc')][_0x184b('0x5d')](_0x134f01)[_0x184b('0x23')](function(_0x28f387){return[_0x28f387,!![]];});});}return db[_0x184b('0xbc')][_0x184b('0x5d')](_0x134f01)[_0x184b('0x23')](function(_0x23214a){return[_0x23214a,!![]];});}})[_0x184b('0xc0')](function(_0x447e56,_0x208415){if(_0x447e56){_0xfb9545=_0x208415;if(!_0x208415){var _0x2f8ac3={'from':(_0x4c832a[_0x184b('0xc1')][_0x184b('0xae')]||'')+'\x20'+(_0x4c832a[_0x184b('0xc1')][_0x184b('0xaf')]||'')};if(_0x586b58[_0x184b('0x5e')][_0x184b('0xbb')]&&_0x586b58[_0x184b('0x5e')]['messageId']&&_0x586b58[_0x184b('0x5e')][_0x184b('0xbb')]!=_0x586b58[_0x184b('0x5e')][_0x184b('0xc2')]){_0x2f8ac3[_0x184b('0xbb')]=_0x586b58[_0x184b('0x5e')]['messageId'];}return _0x447e56['update'](_0x2f8ac3);}else{return _0x447e56;}}})[_0x184b('0x23')](function(_0x1af1d2){_0x4c832a[_0x184b('0xbf')]=_0x1af1d2[_0x184b('0x3b')]({'plain':!![]});_0x4c832a[_0x184b('0xbf')]['created']=_0xfb9545;if(_0x4c832a[_0x184b('0xbf')][_0x184b('0xc3')]){if(_0x4c832a['account'][_0x184b('0xc4')]){_0x4c832a['applications'][_0x184b('0xc5')]({'id':0x0,'priority':_0x4c832a[_0x184b('0xa4')][_0x184b('0x4f')]+0x1,'app':_0x184b('0xc6'),'appdata':_0x184b('0xc7'),'interval':'*,*,*,*'});}}return db[_0x184b('0xc8')][_0x184b('0x5d')]({'body':_0x586b58[_0x184b('0x5e')][_0x184b('0x5e')],'ChatWebsiteId':_0x586b58[_0x184b('0x5c')]['id'],'ChatInteractionId':_0x1af1d2['id'],'direction':'in','ContactId':_0x4c832a['contact']['id'],'AttachmentId':_0x586b58[_0x184b('0x5e')][_0x184b('0xc9')]});})[_0x184b('0x23')](function(_0x1994f4){_0x4c832a[_0x184b('0x28')]=_0x1994f4;if(_0x4c832a[_0x184b('0xbf')][_0x184b('0xca')]){return db['User']['find']({'attributes':['id',_0x184b('0x3e')],'where':{'id':_0x4c832a[_0x184b('0xbf')][_0x184b('0xca')]}})[_0x184b('0x23')](function(_0x54e35e){if(_0x54e35e){_0x4c832a[_0x184b('0xa4')][_0x184b('0xcb')]({'id':0x0,'priority':0x0,'app':'agent','appdata':_0x54e35e[_0x184b('0x3e')]+','+(_0x4c832a['account'][_0x184b('0xcc')]||0xa),'interval':'*,*,*,*'});_0x4c832a[_0x184b('0xcd')]=!![];}return respondWithRpcPromise(_0x184b('0xce'),_0x184b('0xcf'),_0x4c832a);});}return respondWithRpcPromise('Start',_0x184b('0xcf'),_0x4c832a);})[_0x184b('0x23')](function(_0x33c85d){respondWithRpcPromise(_0x184b('0xd0'),_0x184b('0xd0'),{'event':_0x184b('0xd1'),'message':_0x33c85d},client9002);return _0x33c85d;})[_0x184b('0x23')](respondWithResult(_0x20bb48,null))['catch'](handleError(_0x20bb48,null));};exports[_0x184b('0xd2')]=function(_0x26ff2e,_0x56c1b1,_0x2636ba){var _0x7c5f80,_0x509849,_0xd8f384;var _0x4dad4c=[];var _0xa8faf4=[];var _0xd96560={};var _0x38d382=_0x26ff2e[_0x184b('0xd3')]||[];var _0x52dff3=[];var _0x2ae556;return db[_0x184b('0x90')][_0x184b('0x68')]()['then'](function(_0x2c0958){if(!_0x2c0958){throw new db[(_0x184b('0x91'))]['ValidationError'](_0x184b('0xd4'));}_0xa8faf4=_['difference'](_[_0x184b('0x4a')](_0x2c0958),[_0x184b('0x95'),_0x184b('0x94')]);_0x4dad4c=_[_0x184b('0x93')](_['keys'](_0x2c0958),[_0x184b('0x95'),_0x184b('0x94'),_0x184b('0x96'),_0x184b('0x97')]);if(_0x26ff2e[_0x184b('0x5e')]['id']){delete _0x26ff2e[_0x184b('0x5e')]['id'];}if(_[_0x184b('0x7e')](_0x26ff2e['body'][_0x184b('0x98')])){throw _0x56c1b1['status'](0x1f4)[_0x184b('0xd5')](new db[(_0x184b('0x91'))]['ValidationError'](_0x184b('0x99')));}if(_[_0x184b('0x7e')](_0x26ff2e[_0x184b('0x5e')][_0x184b('0x5e')])||_0x26ff2e[_0x184b('0x5e')][_0x184b('0x5e')]===''){throw _0x56c1b1['status'](0x1f4)['send'](new db[(_0x184b('0x91'))][(_0x184b('0x92'))]('body\x20is\x20mandatory\x20and\x20not\x20empty'));}if(_[_0x184b('0x7e')](_0x26ff2e['body'][_0x184b('0xd6')])){throw _0x56c1b1['status'](0x1f4)['send'](new db['Sequelize']['ValidationError'](_0x184b('0xd7')+_0x4dad4c));}if(!_['includes'](_0x4dad4c,_0x26ff2e[_0x184b('0x5e')][_0x184b('0xd6')])){throw _0x56c1b1[_0x184b('0x2d')](0x1f4)['send'](new db[(_0x184b('0x91'))][(_0x184b('0x92'))]('mapKeyOffline\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x4dad4c));}_0xd96560[_0x26ff2e[_0x184b('0x5e')][_0x184b('0xd6')]]=_0x26ff2e['body'][_0x184b('0x98')];})['then'](function(){return db['ChatWebsite'][_0x184b('0x63')]({'where':{'id':_0x26ff2e['params']['id']},'include':[{'model':db[_0x184b('0x9e')],'as':_0x184b('0x9f')},{'model':db['MailAccount'],'as':_0x184b('0xd8')}]});})[_0x184b('0x23')](handleEntityNotFound(_0x56c1b1,null))[_0x184b('0x23')](function(_0x4b1cce){if(_0x4b1cce&&_0x4b1cce[_0x184b('0x9f')]){_0x509849=_0x4b1cce;var _0x5ac357=_[_0x184b('0x1c')](_0x26ff2e[_0x184b('0x5e')],{'firstName':_0x26ff2e[_0x184b('0x5e')][_0x184b('0x98')],'phone':_0x26ff2e['body'][_0x184b('0x98')],'ListId':_0x4b1cce[_0x184b('0x97')]});_0x5ac357[_0x26ff2e['body'][_0x184b('0xd6')]]=_0x26ff2e['body'][_0x184b('0x98')];return db[_0x184b('0x90')][_0x184b('0xd9')]({'where':_0xd96560,'defaults':_0x5ac357});}})[_0x184b('0xc0')](function(_0x129a6d){if(_0x129a6d){_0xd8f384=_0x129a6d;var _0x521a4f=fs[_0x184b('0xda')](path[_0x184b('0x80')](config[_0x184b('0x7c')],_0x184b('0xdb')),'utf8');var _0x1caada=ejs['render'](_0x521a4f,{'body':_[_0x184b('0xdc')](_0x26ff2e[_0x184b('0x5e')][_0x184b('0x5e')]),'bodyTitle':_0x509849[_0x184b('0xdd')]});return db[_0x184b('0xde')]['create']({'body':_0x1caada,'ContactId':_0x129a6d['id'],'ChatWebsiteId':_0x509849['id']});}})[_0x184b('0x23')](function(_0x56e41e){_0x2ae556=_0x56e41e;if(_0x38d382[_0x184b('0x4f')]){var _0x2d8a9c=_0x38d382[_0x184b('0x42')](function(_0x1851d0){return{'name':_0x1851d0[_0x184b('0xdf')],'basename':_0x1851d0[_0x184b('0x76')],'type':_0x1851d0[_0x184b('0xe0')],'ChatOfflineMessageId':_0x56e41e['id']};});_0x52dff3=_0x2d8a9c[_0x184b('0x42')](_0x391787=>{var _0x43f02b={'filename':_0x391787['name'],'path':path[_0x184b('0x80')](config[_0x184b('0x7c')],_0x184b('0xe1'),_0x184b('0xd3'),'attachments','offline-chat',_0x391787[_0x184b('0xe2')])};return _0x43f02b;});if(!_0x509849[_0x184b('0xe3')]){return db[_0x184b('0xe4')]['transaction'](function(_0x5b9737){return db['Attachment']['bulkCreate'](_0x2d8a9c,{'transaction':_0x5b9737});});}}})[_0x184b('0x23')](function(){if(_0x2ae556){_0x7c5f80=_0x2ae556;return db[_0x184b('0xd8')][_0x184b('0x6c')]({'where':{'active':!![]},'include':[{'model':db[_0x184b('0xe5')],'as':_0x184b('0xe6'),'raw':!![]}]});}})[_0x184b('0x23')](function(_0x152d48){if(_0x152d48&&_0x152d48['Smtp']&&_0x509849[_0x184b('0xe7')]&&_0x509849['forwardOfflineAddress']){var _0x17db1b={'tls':{'rejectUnauthorized':![]}};if(_0x152d48[_0x184b('0xe6')][_0x184b('0xe8')]){_0x17db1b[_0x184b('0xe8')]=_0x152d48[_0x184b('0xe6')]['service'];}else{_0x17db1b[_0x184b('0xe9')]=_0x152d48['Smtp'][_0x184b('0xe9')];_0x17db1b[_0x184b('0xea')]=_0x152d48[_0x184b('0xe6')]['port'];_0x17db1b[_0x184b('0xeb')]=_0x152d48[_0x184b('0xe6')][_0x184b('0xeb')];}if(_0x152d48['Smtp']['authentication']){_0x17db1b[_0x184b('0xec')]={'user':_0x152d48[_0x184b('0xe6')][_0x184b('0x5f')],'pass':_0x152d48[_0x184b('0xe6')][_0x184b('0xed')]};}return respondWithRpcPromise(_0x184b('0xee'),_0x184b('0xef'),{'account':_0x17db1b,'message':{'from':util[_0x184b('0xb4')](_0x184b('0xf0'),_0x152d48['name'],_0x152d48[_0x184b('0xf1')]||_0x152d48[_0x184b('0xe6')]['user']),'to':_0x509849[_0x184b('0xf2')],'subject':_0x509849[_0x184b('0xf3')],'html':_0x7c5f80['body'],'attachments':_0x52dff3}},client9003)['then'](function(){return _0x7c5f80;})['catch'](function(_0xe5f756){console[_0x184b('0x26')](_0xe5f756);});}})[_0x184b('0x23')](function(){if(_0x509849&&_0x509849[_0x184b('0xe3')]&&_0x509849['MailAccountId']){var _0x138eec=[];if(_0x38d382[_0x184b('0x4f')]){_0x138eec=_0x38d382['map'](function(_0x257485){return{'name':_0x257485['originalname'],'basename':_0x257485[_0x184b('0x76')],'type':_0x257485[_0x184b('0xe0')],'ChatOfflineMessageId':_0x2ae556['id']};});}var _0x2202c5;if(!_[_0x184b('0x7e')](_0x509849['subjectOffline'])){var _0x273454=_['map'](_0x26ff2e['body'],function(_0x222a20){return _0x222a20;});var _0x48318c=_['toPairsIn'](_0x273454)[0x0];var _0x5b6c36=_[_0x184b('0xf4')](_0x48318c,function(_0x5a67db){return _0x5a67db;});_0x2202c5=_0x5b6c36[0x1][_0x509849[_0x184b('0xf5')]];}var _0x452bd2={'from':_0xd8f384[_0x184b('0xf1')],'firstName':_0xd8f384[_0x184b('0xae')],'lastName':_0xd8f384[_0x184b('0xaf')],'mapKey':_0x184b('0xf1'),'message':{'from':_0xd8f384['email'],'to':_0x509849[_0x184b('0xd8')][_0x184b('0xf1')],'cc':'','subject':_[_0x184b('0x7e')](_0x2202c5)?_0x509849[_0x184b('0xf3')]:_0x2202c5,'messageId':'','sentAt':new Date(),'attach':_0x138eec[_0x184b('0x4f')],'attachments':_0x138eec,'originChannel':'Chat','ChatWebsiteId':_0x509849['id'],'ChatOfflineMessageId':_0x7c5f80['id'],'originTo':_0x509849[_0x184b('0xd8')][_0x184b('0xf1')]},'body':_0x7c5f80['body']};var _0x2ce353={'account':{'id':_0x509849['MailAccountId']},'body':_0x452bd2,'log':_0x184b('0xf6')};return respondWithRpcPromise('NotifyMailAccount',_0x184b('0xf7'),_0x2ce353,client9001)[_0x184b('0x23')](function(){return _0x7c5f80;})[_0x184b('0x2c')](function(_0x53b67e){console[_0x184b('0x26')](_0x53b67e);});}return;})['then'](function(){if(_0x7c5f80){return _0x7c5f80;}})[_0x184b('0x23')](respondWithResult(_0x56c1b1,null))['catch'](function(_0x72dc4){console[_0x184b('0x26')](_0x184b('0x2c'),_0x72dc4);for(var _0x309b5e of _0x38d382){var _0x18aaab=path['join'](config[_0x184b('0x7c')],_0x184b('0xe1'),_0x184b('0xd3'),_0x184b('0xf8'),_0x184b('0xf9'),_0x309b5e[_0x184b('0x76')]);fs_extra['remove'](_0x18aaab)[_0x184b('0x2c')](function(_0x203d2f){console[_0x184b('0x26')](_0x184b('0xfa'),_0x18aaab,_0x203d2f);});}});};exports[_0x184b('0xfb')]=function(_0x120261,_0x456e34,_0x38fdc2){return db[_0x184b('0xbc')][_0x184b('0x63')]({'where':{'id':_0x120261[_0x184b('0x5c')]['id']}})[_0x184b('0x23')](handleEntityNotFound(_0x456e34,null))[_0x184b('0x23')](function(_0x311d96){if(_0x311d96){return _0x311d96[_0x184b('0xfb')](_0x120261['body']['ids'],_[_0x184b('0xfc')](_0x120261[_0x184b('0x5e')],[_0x184b('0xfd'),'id'])||{});}})[_0x184b('0x23')](respondWithResult(_0x456e34,null))[_0x184b('0x2c')](handleError(_0x456e34,null));};exports['getInteractions']=function(_0x3b08e2,_0x2b66fb,_0x4b0db6){var _0x54935b={'raw':![],'where':{}};var _0x7ee232={};var _0x2a13a9={'count':0x0,'rows':[]};return db['ChatWebsite'][_0x184b('0x6c')]({'where':{'id':_0x3b08e2[_0x184b('0x5c')]['id']}})['then'](handleEntityNotFound(_0x2b66fb,null))['then'](function(_0x25fb9f){if(_0x25fb9f){_0x7ee232['model']=_[_0x184b('0x4a')](db[_0x184b('0xbc')][_0x184b('0x44')]);_0x7ee232[_0x184b('0x49')]=_['keys'](_0x3b08e2[_0x184b('0x49')]);_0x7ee232['filters']=_[_0x184b('0x4d')](_0x7ee232[_0x184b('0x48')],_0x7ee232['query']);_0x54935b[_0x184b('0x4c')]=_['intersection'](_0x7ee232['model'],qs[_0x184b('0x4e')](_0x3b08e2['query'][_0x184b('0x4e')]));_0x54935b[_0x184b('0x4c')]=_0x54935b['attributes']['length']?_0x54935b['attributes']:_0x7ee232[_0x184b('0x48')];if(!_0x3b08e2[_0x184b('0x49')][_0x184b('0x50')](_0x184b('0x51'))){_0x54935b[_0x184b('0x32')]=qs['limit'](_0x3b08e2[_0x184b('0x49')][_0x184b('0x32')]);_0x54935b[_0x184b('0x30')]=qs['offset'](_0x3b08e2['query']['offset']);}_0x54935b[_0x184b('0x52')]=qs['sort'](_0x3b08e2[_0x184b('0x49')][_0x184b('0x53')]);_0x54935b[_0x184b('0x54')]=qs['filters'](_[_0x184b('0x55')](_0x3b08e2[_0x184b('0x49')],_0x7ee232[_0x184b('0x4b')]));_0x54935b['where'][_0x184b('0x6d')]=_0x25fb9f['id'];if(_0x3b08e2[_0x184b('0x49')]['filter']){_0x54935b['where']=_[_0x184b('0x56')](_0x54935b['where'],{'$or':_['map'](_0x54935b[_0x184b('0x4c')],function(_0x1f4b6d){var _0x3eec61={};_0x3eec61[_0x1f4b6d]={'$like':'%'+_0x3b08e2[_0x184b('0x49')][_0x184b('0x57')]+'%'};return _0x3eec61;})});}_0x54935b=_[_0x184b('0x56')]({},_0x54935b,_0x3b08e2[_0x184b('0x58')]);return db[_0x184b('0xbc')]['count']({'where':_0x54935b[_0x184b('0x54')]})[_0x184b('0x23')](function(_0x30516a){_0x2a13a9[_0x184b('0x33')]=_0x30516a;if(_0x3b08e2[_0x184b('0x49')][_0x184b('0x59')]){_0x54935b[_0x184b('0x5a')]=[{'model':db[_0x184b('0x90')],'as':_0x184b('0xfe'),'required':![]},{'model':db[_0x184b('0xff')],'as':_0x184b('0x100'),'attributes':[_0x184b('0x3e'),_0x184b('0x101'),_0x184b('0x102')],'required':![]},{'model':db[_0x184b('0x103')],'as':_0x184b('0x104'),'attributes':['id',_0x184b('0x3e'),_0x184b('0x105')],'where':_0x3b08e2['query'][_0x184b('0x106')]?{'id':_0x3b08e2[_0x184b('0x49')][_0x184b('0x106')]}:undefined,'required':_0x3b08e2['query'][_0x184b('0x106')]?!![]:![]}];}return db[_0x184b('0xbc')][_0x184b('0x6e')](_0x54935b);})['then'](function(_0x514ea1){_0x2a13a9[_0x184b('0x6f')]=_0x514ea1;return _0x2a13a9;});}})[_0x184b('0x23')](respondWithFilteredResult(_0x2b66fb,_0x54935b))[_0x184b('0x2c')](handleError(_0x2b66fb,null));};function iftimePromise(_0x20b864,_0x23a423){return respondWithRpcPromise(_0x184b('0x107'),'getSnippet',{'command':_0x23a423[_0x184b('0x108')]?util[_0x184b('0xb4')](_0x184b('0x109'),_0x20b864[_0x184b('0x10a')],_0x23a423[_0x184b('0x108')]):util['format'](_0x184b('0x10b'),_0x20b864['interval'])},client9002)[_0x184b('0x23')](function(_0x7d7a3d){var _0x34e1ea=_0x7d7a3d&&_0x7d7a3d[_0x184b('0x10c')]('true')>=0x0?!![]:![];logger['info']('[%s][INTERVAL][%s]\x20%s\x20%s\x20(%s)',_0x23a423['id'],_0x20b864['id'],_0x20b864[_0x184b('0x10a')],_0x34e1ea?_0x184b('0x10d'):_0x184b('0x10e'),_0x23a423[_0x184b('0x108')]?_0x23a423[_0x184b('0x108')]:_0x184b('0x10f'));return _0x34e1ea;})['catch'](function(_0x536b01){logger['error'](_0x184b('0x110'),_0x23a423['id'],_0x20b864['id'],_0x20b864[_0x184b('0x10a')],util[_0x184b('0x111')](_0x536b01,{'showHidden':![],'depth':null}),_0x23a423[_0x184b('0x108')]?_0x23a423[_0x184b('0x108')]:_0x184b('0x10f'));return![];});}exports[_0x184b('0x112')]=function(_0x2ff836,_0x3eb936,_0x4b8ea6){var _0x486c24=0x0;var _0x7b162a=0x0;var _0x334edb=![];var _0x349990;var _0x319ec0;return db[_0x184b('0x43')]['find']({'where':{'id':_0x2ff836[_0x184b('0x5c')]['id']},'include':[{'model':db[_0x184b('0x113')],'as':_0x184b('0x113'),'include':[{'model':db[_0x184b('0x113')],'as':_0x184b('0x114'),'attributes':['id','interval'],'raw':!![]}]}]})[_0x184b('0x23')](handleEntityNotFound(_0x3eb936,null))[_0x184b('0x23')](function(_0x19cbc6){if(_0x19cbc6){_0x349990=_0x19cbc6;return _0x19cbc6[_0x184b('0x115')]({'raw':!![]});}})[_0x184b('0x23')](function(_0x5188ab){if(_0x349990){if(_0x5188ab){_0x319ec0=_0x5188ab;}}return require(_0x184b('0x19'))['getLicense']();})[_0x184b('0x23')](function(_0x54cb27){if(_0x54cb27){_0x7b162a=_0x54cb27[_0x184b('0x116')];_0x334edb=_0x54cb27[_0x184b('0x117')];}})[_0x184b('0x23')](function(){return db['ChatInteraction'][_0x184b('0x33')]({'where':{'closed':![]}});})[_0x184b('0x23')](function(_0x406203){_0x486c24=_0x406203;if(_0x7b162a&&_0x406203>_0x7b162a){return db['License'][_0x184b('0x6c')]({'where':{'id':0x1}})[_0x184b('0x23')](function(_0x205386){if(_0x205386){_0x205386[_0x184b('0x118')](_0x184b('0x119'));}});}})[_0x184b('0x23')](function(){if(_0x349990[_0x184b('0x113')]&&_0x349990[_0x184b('0x113')][_0x184b('0x114')]){var _0x5dc6cc=[];for(var _0xb87781=0x0;_0xb87781<_0x349990['Interval']['Intervals']['length'];_0xb87781++){var _0x53f87c=_0x349990[_0x184b('0x113')]['Intervals'][_0xb87781][_0x184b('0x3b')]({'plain':!![]});_0x5dc6cc[_0x184b('0xc5')](iftimePromise(_0x53f87c,_0x349990));}return BPromise[_0x184b('0x11a')](_0x5dc6cc)[_0x184b('0x23')](function(_0x252bb4){return _[_0x184b('0x11b')](_0x252bb4);});}else{return!![];}})['then'](function(_0x56c450){var _0x5a35d0=fs[_0x184b('0xda')](path[_0x184b('0x80')](config[_0x184b('0x7c')],_0x184b('0x11c')),'utf8');var _0x4e4f45={'remote':_0x349990[_0x184b('0x11d')],'query':querystring[_0x184b('0xba')](_[_0x184b('0x56')](_0x349990[_0x184b('0x3b')]({'plain':!![]}),{'customerIp':_0x2ff836[_0x184b('0x8d')][_0x184b('0xac')]||_0x2ff836[_0x184b('0x8d')][_0x184b('0x11e')]||_0x2ff836['connection'][_0x184b('0x11f')]||_0x2ff836['ip'],'referer':_0x2ff836[_0x184b('0x8d')][_0x184b('0xb1')],'openedInteractions':_0x486c24,'maxInteractions':_0x7b162a,'virtual':_0x334edb[_0x184b('0x116')],'online':_0x56c450,'custom':_0x334edb}))[_0x184b('0x120')](/'/g,'\x5c\x27')};_0x3eb936[_0x184b('0xd5')](ejs[_0x184b('0x121')](Mustache[_0x184b('0x121')](_0x5a35d0,_0x4e4f45),{'proactiveActions':_0x319ec0,'alignment':_0x349990['alignment'],'verticalAlignment':_0x349990[_0x184b('0x122')],'div_color':_0x349990[_0x184b('0x105')],'text_color':_0x349990[_0x184b('0x123')],'button_color':_0x349990['color_button'],'background_color':_0x349990[_0x184b('0x124')]}));})['catch'](handleError(_0x3eb936,null));};exports[_0x184b('0x125')]=function(_0x5acf5c,_0x444afe,_0x49f547){return db['ChatWebsite'][_0x184b('0x6c')]({'where':{'id':_0x5acf5c[_0x184b('0x5c')]['id']}})['then'](handleEntityNotFound(_0x444afe,null))[_0x184b('0x23')](function(_0xd7ae3f){if(_0xd7ae3f){return db[_0x184b('0xe4')]['transaction'](function(_0x59a99a){return db['ChatApplication']['destroy']({'where':{'ChatWebsiteId':_0x5acf5c[_0x184b('0x5c')]['id']},'transaction':_0x59a99a})['then'](function(_0x3ad516){var _0x1a6d22=_[_0x184b('0x42')](_0x5acf5c[_0x184b('0x5e')],function(_0x28068b){_0x28068b['ChatWebsiteId']=_0x5acf5c[_0x184b('0x5c')]['id'];return _0x28068b;});return db[_0x184b('0xa1')][_0x184b('0x126')](_0x1a6d22,{'transaction':_0x59a99a});});})['then'](function(){return db[_0x184b('0xa1')][_0x184b('0x127')]({'where':{'ChatWebsiteId':_0x5acf5c[_0x184b('0x5c')]['id']},'order':_0x184b('0xa6')});});}})[_0x184b('0x23')](respondWithResult(_0x444afe,null))['catch'](handleError(_0x444afe,null));};exports[_0x184b('0x128')]=function(_0x5afee7,_0x7f0ee8,_0x2f0702){var _0x560f25={};var _0x3c29e7={};var _0x3da5dc;var _0xe5482a;return db[_0x184b('0x43')][_0x184b('0x6c')]({'where':{'id':_0x5afee7[_0x184b('0x5c')]['id']}})[_0x184b('0x23')](handleEntityNotFound(_0x7f0ee8,null))[_0x184b('0x23')](function(_0x4204cc){if(_0x4204cc){_0x3da5dc=_0x4204cc;_0x3c29e7[_0x184b('0x48')]=_[_0x184b('0x4a')](db[_0x184b('0xa1')][_0x184b('0x44')]);_0x3c29e7[_0x184b('0x49')]=_[_0x184b('0x4a')](_0x5afee7[_0x184b('0x49')]);_0x3c29e7[_0x184b('0x4b')]=_[_0x184b('0x4d')](_0x3c29e7[_0x184b('0x48')],_0x3c29e7[_0x184b('0x49')]);_0x560f25['attributes']=_[_0x184b('0x4d')](_0x3c29e7[_0x184b('0x48')],qs[_0x184b('0x4e')](_0x5afee7[_0x184b('0x49')]['fields']));_0x560f25[_0x184b('0x4c')]=_0x560f25[_0x184b('0x4c')][_0x184b('0x4f')]?_0x560f25[_0x184b('0x4c')]:_0x3c29e7[_0x184b('0x48')];_0x560f25[_0x184b('0x52')]=qs[_0x184b('0x53')](_0x5afee7['query'][_0x184b('0x53')]);_0x560f25[_0x184b('0x54')]=qs['filters'](_[_0x184b('0x55')](_0x5afee7[_0x184b('0x49')],_0x3c29e7['filters']));if(_0x5afee7[_0x184b('0x49')][_0x184b('0x57')]){_0x560f25[_0x184b('0x54')]=_['merge'](_0x560f25['where'],{'$or':_[_0x184b('0x42')](_0x560f25['attributes'],function(_0x3d6cde){var _0x478ab9={};_0x478ab9[_0x3d6cde]={'$like':'%'+_0x5afee7[_0x184b('0x49')][_0x184b('0x57')]+'%'};return _0x478ab9;})});}_0x560f25=_[_0x184b('0x56')]({},_0x560f25,_0x5afee7[_0x184b('0x58')]);return _0x3da5dc['getApplications'](_0x560f25);}})[_0x184b('0x23')](function(_0x3a496a){if(_0x3a496a){_0xe5482a=_0x3a496a[_0x184b('0x4f')];if(!_0x5afee7['query']['hasOwnProperty'](_0x184b('0x51'))){_0x560f25[_0x184b('0x32')]=qs['limit'](_0x5afee7['query']['limit']);_0x560f25[_0x184b('0x30')]=qs['offset'](_0x5afee7[_0x184b('0x49')][_0x184b('0x30')]);}return _0x3da5dc['getApplications'](_0x560f25);}})['then'](function(_0x51cba4){if(_0x51cba4){return _0x51cba4?{'count':_0xe5482a,'rows':_0x51cba4}:null;}})[_0x184b('0x23')](respondWithResult(_0x7f0ee8,null))[_0x184b('0x2c')](handleError(_0x7f0ee8,null));};exports['addProactiveActions']=function(_0x3d6a4f,_0x4c282a,_0x4d0666){return db[_0x184b('0x129')][_0x184b('0x63')]({'where':{'id':_0x3d6a4f[_0x184b('0x5c')]['id']}})[_0x184b('0x23')](handleEntityNotFound(_0x4c282a,null))[_0x184b('0x23')](function(_0x2138e9){if(_0x2138e9){return _0x2138e9['addProactiveActions'](_0x3d6a4f[_0x184b('0x5e')]['ids'],_[_0x184b('0xfc')](_0x3d6a4f['body'],[_0x184b('0xfd'),'id'])||{});}})[_0x184b('0x23')](respondWithResult(_0x4c282a,null))[_0x184b('0x2c')](handleError(_0x4c282a,null));};exports['getProactiveActions']=function(_0xa0cf81,_0x3eb792,_0x17d424){var _0x473f7f={};var _0x4ccff9={};var _0xdf5a56;var _0x2a9330;return db[_0x184b('0x43')][_0x184b('0x6c')]({'where':{'id':_0xa0cf81[_0x184b('0x5c')]['id']}})[_0x184b('0x23')](handleEntityNotFound(_0x3eb792,null))[_0x184b('0x23')](function(_0x5727cc){if(_0x5727cc){_0xdf5a56=_0x5727cc;_0x4ccff9['model']=_[_0x184b('0x4a')](db[_0x184b('0x12a')][_0x184b('0x44')]);_0x4ccff9[_0x184b('0x49')]=_[_0x184b('0x4a')](_0xa0cf81[_0x184b('0x49')]);_0x4ccff9['filters']=_['intersection'](_0x4ccff9['model'],_0x4ccff9[_0x184b('0x49')]);_0x473f7f[_0x184b('0x4c')]=_[_0x184b('0x4d')](_0x4ccff9[_0x184b('0x48')],qs[_0x184b('0x4e')](_0xa0cf81['query'][_0x184b('0x4e')]));_0x473f7f[_0x184b('0x4c')]=_0x473f7f[_0x184b('0x4c')][_0x184b('0x4f')]?_0x473f7f[_0x184b('0x4c')]:_0x4ccff9['model'];_0x473f7f['order']=qs[_0x184b('0x53')](_0xa0cf81['query'][_0x184b('0x53')]);_0x473f7f[_0x184b('0x54')]=qs['filters'](_[_0x184b('0x55')](_0xa0cf81['query'],_0x4ccff9[_0x184b('0x4b')]));if(_0xa0cf81['query'][_0x184b('0x57')]){_0x473f7f[_0x184b('0x54')]=_[_0x184b('0x56')](_0x473f7f[_0x184b('0x54')],{'$or':_['map'](_0x473f7f['attributes'],function(_0x103cb8){var _0x48a87e={};_0x48a87e[_0x103cb8]={'$like':'%'+_0xa0cf81[_0x184b('0x49')][_0x184b('0x57')]+'%'};return _0x48a87e;})});}_0x473f7f=_['merge']({},_0x473f7f,_0xa0cf81[_0x184b('0x58')]);return _0xdf5a56['getProactiveActions'](_0x473f7f);}})[_0x184b('0x23')](function(_0x7784b0){if(_0x7784b0){_0x2a9330=_0x7784b0[_0x184b('0x4f')];if(!_0xa0cf81[_0x184b('0x49')]['hasOwnProperty'](_0x184b('0x51'))){_0x473f7f[_0x184b('0x32')]=qs[_0x184b('0x32')](_0xa0cf81[_0x184b('0x49')][_0x184b('0x32')]);_0x473f7f[_0x184b('0x30')]=qs[_0x184b('0x30')](_0xa0cf81[_0x184b('0x49')][_0x184b('0x30')]);}return _0xdf5a56[_0x184b('0x115')](_0x473f7f);}})[_0x184b('0x23')](function(_0x4436d8){if(_0x4436d8){return _0x4436d8?{'count':_0x2a9330,'rows':_0x4436d8}:null;}})[_0x184b('0x23')](respondWithResult(_0x3eb792,null))[_0x184b('0x2c')](handleError(_0x3eb792,null));};exports[_0x184b('0x12b')]=function(_0x224d61,_0x3f9ff2,_0x509d60){var _0x141838=_0x224d61[_0x184b('0x49')][_0x184b('0x12c')]===_0x184b('0x12d')?_0x184b('0x12e'):_0x184b('0x12f');return db[_0x184b('0x43')][_0x184b('0x63')]({'attributes':['id',_0x141838],'where':{'id':_0x224d61[_0x184b('0x5c')]['id']}})[_0x184b('0x23')](handleEntityNotFound(_0x3f9ff2,null))[_0x184b('0x23')](function(_0x469d4d){if(_0x469d4d){var _0x55944b=_0x469d4d[_0x141838];var _0x2664be=_0x55944b&&_0x55944b[_0x184b('0x130')]?_0x55944b[_0x184b('0x130')]:[];_0x3f9ff2[_0x184b('0xd5')]({'fromKey':_['isNil'](_0x55944b['fromKey'])?undefined:_0x55944b[_0x184b('0x131')],'count':_0x2664be[_0x184b('0x4f')],'rows':_0x2664be});}})['catch'](handleError(_0x3f9ff2,null));};exports[_0x184b('0x132')]=function(_0x243fd3,_0x3cade0,_0x25d486){var _0x452b69={'raw':![],'where':{}};var _0x44af6a={};var _0x1ce843={'count':0x0,'rows':[]};return db[_0x184b('0x43')][_0x184b('0x6c')]({'where':{'id':_0x243fd3['params']['id']}})[_0x184b('0x23')](handleEntityNotFound(_0x3cade0,null))[_0x184b('0x23')](function(_0x468ed4){if(_0x468ed4){_0x44af6a['model']=_[_0x184b('0x4a')](db[_0x184b('0xde')]['rawAttributes']);_0x44af6a[_0x184b('0x49')]=_[_0x184b('0x4a')](_0x243fd3[_0x184b('0x49')]);_0x44af6a['filters']=_['intersection'](_0x44af6a[_0x184b('0x48')],_0x44af6a['query']);_0x452b69[_0x184b('0x4c')]=_['intersection'](_0x44af6a[_0x184b('0x48')],qs[_0x184b('0x4e')](_0x243fd3[_0x184b('0x49')]['fields']));_0x452b69[_0x184b('0x4c')]=_0x452b69[_0x184b('0x4c')]['length']?_0x452b69[_0x184b('0x4c')]:_0x44af6a[_0x184b('0x48')];if(!_0x243fd3[_0x184b('0x49')]['hasOwnProperty']('nolimit')){_0x452b69[_0x184b('0x32')]=qs[_0x184b('0x32')](_0x243fd3[_0x184b('0x49')][_0x184b('0x32')]);_0x452b69[_0x184b('0x30')]=qs[_0x184b('0x30')](_0x243fd3[_0x184b('0x49')][_0x184b('0x30')]);}_0x452b69[_0x184b('0x52')]=qs[_0x184b('0x53')](_0x243fd3[_0x184b('0x49')][_0x184b('0x53')]);_0x452b69[_0x184b('0x54')]=qs[_0x184b('0x4b')](_[_0x184b('0x55')](_0x243fd3[_0x184b('0x49')],_0x44af6a[_0x184b('0x4b')]));_0x452b69[_0x184b('0x54')][_0x184b('0x6d')]=_0x468ed4['id'];if(_0x243fd3[_0x184b('0x49')][_0x184b('0x57')]){_0x452b69[_0x184b('0x54')]=_[_0x184b('0x56')](_0x452b69[_0x184b('0x54')],{'$or':_[_0x184b('0x42')](_0x452b69[_0x184b('0x4c')],function(_0x546be3){var _0x1042b3={};_0x1042b3[_0x546be3]={'$like':'%'+_0x243fd3['query'][_0x184b('0x57')]+'%'};return _0x1042b3;})});}_0x452b69=_['merge']({},_0x452b69,_0x243fd3[_0x184b('0x58')]);return db[_0x184b('0xde')]['count']({'where':_0x452b69[_0x184b('0x54')]})[_0x184b('0x23')](function(_0x2e60a9){_0x1ce843[_0x184b('0x33')]=_0x2e60a9;if(_0x243fd3[_0x184b('0x49')][_0x184b('0x59')]){_0x452b69[_0x184b('0x5a')]=[{'all':!![]}];}else{_0x452b69['include']=[{'model':db[_0x184b('0x90')],'as':'Contact','required':![]},{'model':db[_0x184b('0x133')],'as':'Attachments','required':![]}];}return db[_0x184b('0xde')][_0x184b('0x6e')](_0x452b69);})[_0x184b('0x23')](function(_0x25851c){_0x1ce843[_0x184b('0x6f')]=_0x25851c;return _0x1ce843;});}})[_0x184b('0x23')](respondWithFilteredResult(_0x3cade0,_0x452b69))['catch'](handleError(_0x3cade0,null));};exports[_0x184b('0x134')]=function(_0x5dfbc8,_0x1649a6,_0x16cba0){return db[_0x184b('0x43')][_0x184b('0x63')]({'where':{'id':_0x5dfbc8[_0x184b('0x5c')]['id']}})[_0x184b('0x23')](handleEntityNotFound(_0x1649a6,null))[_0x184b('0x23')](function(_0x572dbd){if(_0x572dbd){return _0x572dbd['addAgents'](_0x5dfbc8[_0x184b('0x5e')][_0x184b('0xfd')],_[_0x184b('0xfc')](_0x5dfbc8['body'],[_0x184b('0xfd'),'id'])||{})[_0x184b('0xc0')](function(_0x84ef01){for(var _0x5af7ab=0x0;_0x5af7ab<_0x5dfbc8[_0x184b('0x5e')][_0x184b('0xfd')][_0x184b('0x4f')];_0x5af7ab+=0x1){socket[_0x184b('0x135')](_0x184b('0x136'),{'UserId':Number(_0x5dfbc8[_0x184b('0x5e')]['ids'][_0x5af7ab]),'ChatWebsiteId':Number(_0x5dfbc8['params']['id'])});}return _0x84ef01;});}})[_0x184b('0x23')](respondWithResult(_0x1649a6,null))[_0x184b('0x2c')](handleError(_0x1649a6,null));};exports['removeAgents']=function(_0x2d1970,_0x2f8be7,_0x402e30){return db[_0x184b('0x43')][_0x184b('0x63')]({'where':{'id':_0x2d1970['params']['id']}})[_0x184b('0x23')](handleEntityNotFound(_0x2f8be7,null))[_0x184b('0x23')](function(_0xaddfd3){if(_0xaddfd3){return _0xaddfd3[_0x184b('0x137')](_0x2d1970[_0x184b('0x49')][_0x184b('0xfd')])[_0x184b('0x23')](function(){if(_[_0x184b('0x138')](_0x2d1970[_0x184b('0x49')]['ids'])){for(var _0x252052=0x0;_0x252052<_0x2d1970[_0x184b('0x49')]['ids'][_0x184b('0x4f')];_0x252052+=0x1){socket['emit'](_0x184b('0x139'),{'UserId':Number(_0x2d1970[_0x184b('0x49')]['ids'][_0x252052]),'ChatWebsiteId':Number(_0x2d1970[_0x184b('0x5c')]['id'])});}}else{socket[_0x184b('0x135')]('userChatWebsite:remove',{'UserId':Number(_0x2d1970['query'][_0x184b('0xfd')]),'ChatWebsiteId':Number(_0x2d1970['params']['id'])});}});}})[_0x184b('0x23')](respondWithStatusCode(_0x2f8be7,null))[_0x184b('0x2c')](handleError(_0x2f8be7,null));};exports[_0x184b('0x13a')]=function(_0x5783a8,_0x14aba8,_0x1a9517){var _0x460dbc={};var _0x7560dd={};var _0x1f970a;var _0x20c6e7;return db[_0x184b('0x43')]['findOne']({'where':{'id':_0x5783a8['params']['id']}})[_0x184b('0x23')](handleEntityNotFound(_0x14aba8,null))[_0x184b('0x23')](function(_0x1e298d){if(_0x1e298d){_0x1f970a=_0x1e298d;_0x7560dd[_0x184b('0x48')]=_['keys'](db['User'][_0x184b('0x44')]);_0x7560dd[_0x184b('0x49')]=_[_0x184b('0x4a')](_0x5783a8[_0x184b('0x49')]);_0x7560dd[_0x184b('0x4b')]=_[_0x184b('0x4d')](_0x7560dd[_0x184b('0x48')],_0x7560dd['query']);_0x460dbc[_0x184b('0x4c')]=_['intersection'](_0x7560dd['model'],qs[_0x184b('0x4e')](_0x5783a8[_0x184b('0x49')]['fields']));_0x460dbc[_0x184b('0x4c')]=_0x460dbc['attributes'][_0x184b('0x4f')]?_0x460dbc[_0x184b('0x4c')]:_0x7560dd['model'];_0x460dbc[_0x184b('0x52')]=qs[_0x184b('0x53')](_0x5783a8['query'][_0x184b('0x53')]);_0x460dbc[_0x184b('0x54')]=qs['filters'](_['pick'](_0x5783a8[_0x184b('0x49')],_0x7560dd[_0x184b('0x4b')]));if(_0x5783a8[_0x184b('0x49')][_0x184b('0x57')]){_0x460dbc[_0x184b('0x54')]=_[_0x184b('0x56')](_0x460dbc[_0x184b('0x54')],{'$or':_['map'](_0x460dbc['attributes'],function(_0x29fc04){var _0x394508={};_0x394508[_0x29fc04]={'$like':'%'+_0x5783a8[_0x184b('0x49')][_0x184b('0x57')]+'%'};return _0x394508;})});}_0x460dbc=_[_0x184b('0x56')]({},_0x460dbc,_0x5783a8[_0x184b('0x58')]);return _0x1f970a[_0x184b('0x13a')](_0x460dbc);}})['then'](function(_0x50db3d){if(_0x50db3d){_0x20c6e7=_0x50db3d[_0x184b('0x4f')];if(!_0x5783a8[_0x184b('0x49')][_0x184b('0x50')](_0x184b('0x51'))){_0x460dbc['limit']=qs['limit'](_0x5783a8['query'][_0x184b('0x32')]);_0x460dbc['offset']=qs[_0x184b('0x30')](_0x5783a8[_0x184b('0x49')][_0x184b('0x30')]);}return _0x1f970a[_0x184b('0x13a')](_0x460dbc);}})[_0x184b('0x23')](function(_0x472016){if(_0x472016){return _0x472016?{'count':_0x20c6e7,'rows':_0x472016}:null;}})['then'](respondWithResult(_0x14aba8,null))[_0x184b('0x2c')](handleError(_0x14aba8,null));};
\ No newline at end of file
+var _0x8ff4=['Sequelize','ValidationError','difference','updatedAt','createdAt','CompanyId','ListId','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','includes','from','Contacts','DESC','ChatApplication','applications','list','List','orderBy','priority','asc','account','Applications','contact','cf-connecting-ip','x-forwarded-for','first','split','firstName','lastName','version','format','%s\x20%s','browser','device','%s\x20%s\x20%s','vendor','threadId','ChatInteraction','externalUrl','ContactId','interaction','spread','messageId','created','push','close','unmanaged','AttachmentId','UserId','unshift','agent','waitForTheAssignedAgent','*,*,*,*','forcedOwnership','Start','startRouting','EventManager','offline','no\x20available\x20attributes','mapKeyOffline','CmList','MailAccount','utf8','toPairs','offlineMessageBody','ChatOfflineMessage','originalname','files','attachments','offline-chat','openNewInteraction','sequelize','transaction','Attachment','bulkCreate','MailServerOut','Smtp','forwardOffline','forwardOfflineAddress','service','host','port','secure','authentication','SendMail','sendMail','\x22%s\x22\x20<%s>','email','offlineMessageSubject','MailAccountId','mimetype','mapValues','subjectOffline','Chat','NotifyMailAccount','notifyMail','remove','Could\x20not\x20remove\x20attachment\x20file','addInteraction','omit','Contact','internal','Tag','Tags','tag','getSnippet','timezone','iftime\x20%s,%s','iftime\x20%s','indexOf','true','[%s][INTERVAL][%s]\x20%s\x20%s\x20(%s)','interval','ONLINE','OFFLINE','inspect','No\x20timezone','Interval','Intervals','getProactiveActions','virtual','License','increment','chatLicenseExceeded','all','some','server/files/chat/iframe.ejs','remote','x-real-ip','connection','referer','replace','render','alignment','color','textColor','backgroundColor','addApplications','findAndCountAll','getApplications','chatProactiveAction','addProactiveActions','ChatProactiveAction','getFields','online','false','onlineForm','items','fromKey','Attachments','addAgents','emit','userChatWebsite:save','removeAgents','isArray','userChatWebsite:remove','getAgents','rimraf','zip-dir','moment','bluebird','mustache','path','sox','to-csv','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','defaults','redis','localhost','socket.io-emitter','./chatWebsite.socket','jayson/promise','client','http','request','then','info','request\x20sent','debug','stringify','error','code','ChatWebsite,\x20%s,\x20%s','message','status','end','undefined','limit','count','offset','set','Content-Range','json','apply','save','update','destroy','ChatWebsites','sendStatus','stack','name','send','index','mandatoryDispositionPause','map','ChatWebsite','rawAttributes','fieldName','type','key','model','query','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','filters','filter','where','VIRTUAL','merge','includeAll','include','findAll','catch','show','params','keys','options','find','body','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','create','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','Pause','describe','addDisposition','Disposition','getDispositions','order','pick','ChatWebsiteId','rows','removeDispositions','ids','addAnswer','CannedAnswer','getAnswers','findOne','removeAnswers','sitepic','file','filename','addAvatar','agentAvatar','customerAvatar','addSystemAvatar','systemAvatar','getLogo','join','root','server/files/images/logos/default_logo.svg','getLicense','custom','isNil','existsSync','download','server/files/images/avatars/','server/files/images/avatars/customer_avatar.png','showCustomerAvatar','getSystemAvatar','server/files/images/avatars/system_avatar.png','notify','user-agent-parser','setUA','headers','getResult','chat','CmContact'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x8ff4,0x9e));var _0x48ff=function(_0x40a73a,_0x4d3623){_0x40a73a=_0x40a73a-0x0;var _0x46e6cb=_0x8ff4[_0x40a73a];return _0x46e6cb;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x48ff('0x0'));var zipdir=require(_0x48ff('0x1'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x48ff('0x2'));var BPromise=require(_0x48ff('0x3'));var Mustache=require(_0x48ff('0x4'));var util=require('util');var path=require(_0x48ff('0x5'));var sox=require(_0x48ff('0x6'));var csv=require(_0x48ff('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x48ff('0x8'));var squel=require(_0x48ff('0x9'));var crypto=require(_0x48ff('0xa'));var jsforce=require(_0x48ff('0xb'));var deskjs=require(_0x48ff('0xc'));var toCsv=require(_0x48ff('0x7'));var querystring=require('querystring');var Papa=require(_0x48ff('0xd'));var Redis=require(_0x48ff('0xe'));var authService=require(_0x48ff('0xf'));var qs=require(_0x48ff('0x10'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x48ff('0x11'))(_0x48ff('0x12'));var utils=require(_0x48ff('0x13'));var config=require(_0x48ff('0x14'));var licenseUtil=require(_0x48ff('0x15'));var db=require(_0x48ff('0x16'))['db'];config['redis']=_[_0x48ff('0x17')](config[_0x48ff('0x18')],{'host':_0x48ff('0x19'),'port':0x18eb});var socket=require(_0x48ff('0x1a'))(new Redis(config['redis']));require(_0x48ff('0x1b'))['register'](socket);var jayson=require(_0x48ff('0x1c'));var client=jayson[_0x48ff('0x1d')][_0x48ff('0x1e')]({'port':0x232c});var client9002=jayson[_0x48ff('0x1d')][_0x48ff('0x1e')]({'port':0x232a});var client9003=jayson[_0x48ff('0x1d')][_0x48ff('0x1e')]({'port':0x232b});var client9001=jayson['client']['http']({'port':0x2329});function respondWithRpcPromise(_0x1b9280,_0x1c5384,_0x46fb10,_0x1909de){return new BPromise(function(_0x36b131,_0x392a28){var _0x509f1c=_0x1909de||client;return _0x509f1c[_0x48ff('0x1f')](_0x1b9280,_0x46fb10)[_0x48ff('0x20')](function(_0x2a20ab){logger[_0x48ff('0x21')]('ChatWebsite,\x20%s,\x20%s',_0x1c5384,_0x48ff('0x22'));logger[_0x48ff('0x23')]('ChatWebsite,\x20%s,\x20%s,\x20%s',_0x1c5384,_0x48ff('0x22'),JSON[_0x48ff('0x24')](_0x2a20ab));if(_0x2a20ab[_0x48ff('0x25')]){if(_0x2a20ab[_0x48ff('0x25')][_0x48ff('0x26')]===0x1f4){logger[_0x48ff('0x25')](_0x48ff('0x27'),_0x1c5384,_0x2a20ab[_0x48ff('0x25')][_0x48ff('0x28')]);return _0x392a28(_0x2a20ab['error'][_0x48ff('0x28')]);}logger['error']('ChatWebsite,\x20%s,\x20%s',_0x1c5384,_0x2a20ab[_0x48ff('0x25')]['message']);return _0x36b131(_0x2a20ab['error'][_0x48ff('0x28')]);}else{logger[_0x48ff('0x21')]('ChatWebsite,\x20%s,\x20%s',_0x1c5384,_0x48ff('0x22'));_0x36b131(_0x2a20ab['result'][_0x48ff('0x28')]);}})['catch'](function(_0x57fdae){logger['error'](_0x48ff('0x27'),_0x1c5384,_0x57fdae);_0x392a28(_0x57fdae);});});}function respondWithStatusCode(_0x43c546,_0x4f7c3f){_0x4f7c3f=_0x4f7c3f||0xcc;return function(_0x2988dd){if(_0x2988dd){return _0x43c546['sendStatus'](_0x4f7c3f);}return _0x43c546[_0x48ff('0x29')](_0x4f7c3f)[_0x48ff('0x2a')]();};}function respondWithResult(_0x186ab3,_0xf46539){_0xf46539=_0xf46539||0xc8;return function(_0x3e865f){if(_0x3e865f){return _0x186ab3['status'](_0xf46539)['json'](_0x3e865f);}};}function respondWithFilteredResult(_0x3806d8,_0x11e2bb){return function(_0x2c54d3){if(_0x2c54d3){var _0x33c0e3=typeof _0x11e2bb['offset']===_0x48ff('0x2b')&&typeof _0x11e2bb[_0x48ff('0x2c')]===_0x48ff('0x2b');var _0x126d3b=_0x2c54d3[_0x48ff('0x2d')];var _0x1a9083=_0x33c0e3?0x0:_0x11e2bb['offset'];var _0x56beb6=_0x33c0e3?_0x2c54d3[_0x48ff('0x2d')]:_0x11e2bb[_0x48ff('0x2e')]+_0x11e2bb[_0x48ff('0x2c')];var _0x1b4973;if(_0x56beb6>=_0x126d3b){_0x56beb6=_0x126d3b;_0x1b4973=0xc8;}else{_0x1b4973=0xce;}_0x3806d8[_0x48ff('0x29')](_0x1b4973);return _0x3806d8[_0x48ff('0x2f')](_0x48ff('0x30'),_0x1a9083+'-'+_0x56beb6+'/'+_0x126d3b)[_0x48ff('0x31')](_0x2c54d3);}return null;};}function patchUpdates(_0x335ff6){return function(_0x20d136){try{jsonpatch[_0x48ff('0x32')](_0x20d136,_0x335ff6,!![]);}catch(_0x64f5ac){return BPromise['reject'](_0x64f5ac);}return _0x20d136[_0x48ff('0x33')]();};}function saveUpdates(_0x516809,_0x1fe252){return function(_0x1b2d93){if(_0x1b2d93){return _0x1b2d93[_0x48ff('0x34')](_0x516809)[_0x48ff('0x20')](function(_0x4ac683){return _0x4ac683;});}return null;};}function removeEntity(_0x5a404c,_0x18b65b){return function(_0x510071){if(_0x510071){return _0x510071[_0x48ff('0x35')]()[_0x48ff('0x20')](function(){var _0x508598=_0x510071['get']({'plain':!![]});var _0x4fa787=_0x48ff('0x36');return db['UserProfileResource'][_0x48ff('0x35')]({'where':{'type':_0x4fa787,'resourceId':_0x508598['id']}})['then'](function(){return _0x510071;});})['then'](function(){_0x5a404c[_0x48ff('0x29')](0xcc)['end']();});}};}function handleEntityNotFound(_0x431a89,_0x3435ef){return function(_0x2b2df7){if(!_0x2b2df7){_0x431a89[_0x48ff('0x37')](0x194);}return _0x2b2df7;};}function handleError(_0x575547,_0x3d7390){_0x3d7390=_0x3d7390||0x1f4;return function(_0x18fd2c){logger[_0x48ff('0x25')](_0x18fd2c[_0x48ff('0x38')]);if(_0x18fd2c['name']){delete _0x18fd2c[_0x48ff('0x39')];}_0x575547[_0x48ff('0x29')](_0x3d7390)[_0x48ff('0x3a')](_0x18fd2c);};}exports[_0x48ff('0x3b')]=function(_0x5506ad,_0x1bfb66){var _0x329131={'include':[{'model':db['Pause'],'as':_0x48ff('0x3c')}]},_0x58cb98={},_0x3ee010={'count':0x0,'rows':[]};var _0x4c4bfb=_[_0x48ff('0x3d')](db[_0x48ff('0x3e')][_0x48ff('0x3f')],function(_0x14812c){return{'name':_0x14812c[_0x48ff('0x40')],'type':_0x14812c[_0x48ff('0x41')][_0x48ff('0x42')]};});_0x58cb98[_0x48ff('0x43')]=_[_0x48ff('0x3d')](_0x4c4bfb,_0x48ff('0x39'));_0x58cb98['query']=_['keys'](_0x5506ad[_0x48ff('0x44')]);_0x58cb98['filters']=_[_0x48ff('0x45')](_0x58cb98[_0x48ff('0x43')],_0x58cb98[_0x48ff('0x44')]);_0x329131[_0x48ff('0x46')]=_['intersection'](_0x58cb98[_0x48ff('0x43')],qs[_0x48ff('0x47')](_0x5506ad[_0x48ff('0x44')][_0x48ff('0x47')]));_0x329131[_0x48ff('0x46')]=_0x329131['attributes'][_0x48ff('0x48')]?_0x329131[_0x48ff('0x46')]:_0x58cb98[_0x48ff('0x43')];if(!_0x5506ad[_0x48ff('0x44')][_0x48ff('0x49')](_0x48ff('0x4a'))){_0x329131[_0x48ff('0x2c')]=qs['limit'](_0x5506ad[_0x48ff('0x44')]['limit']);_0x329131[_0x48ff('0x2e')]=qs[_0x48ff('0x2e')](_0x5506ad[_0x48ff('0x44')][_0x48ff('0x2e')]);}_0x329131['order']=qs['sort'](_0x5506ad[_0x48ff('0x44')][_0x48ff('0x4b')]);_0x329131['where']=qs[_0x48ff('0x4c')](_['pick'](_0x5506ad['query'],_0x58cb98[_0x48ff('0x4c')]),_0x4c4bfb);if(_0x5506ad['query'][_0x48ff('0x4d')]){_0x329131['where']=_['merge'](_0x329131[_0x48ff('0x4e')],{'$or':_[_0x48ff('0x3d')](_0x4c4bfb,function(_0x1eeb27){if(_0x1eeb27['type']!==_0x48ff('0x4f')){var _0x451ee8={};_0x451ee8[_0x1eeb27[_0x48ff('0x39')]]={'$like':'%'+_0x5506ad[_0x48ff('0x44')]['filter']+'%'};return _0x451ee8;}})});}_0x329131=_[_0x48ff('0x50')]({},_0x329131,_0x5506ad['options']);var _0x143679={'where':_0x329131[_0x48ff('0x4e')]};return db[_0x48ff('0x3e')][_0x48ff('0x2d')](_0x143679)[_0x48ff('0x20')](function(_0x3a236b){_0x3ee010[_0x48ff('0x2d')]=_0x3a236b;if(_0x5506ad['query'][_0x48ff('0x51')]){_0x329131[_0x48ff('0x52')]=[{'all':!![]}];}return db['ChatWebsite'][_0x48ff('0x53')](_0x329131);})[_0x48ff('0x20')](function(_0x3b767d){_0x3ee010['rows']=_0x3b767d;return _0x3ee010;})[_0x48ff('0x20')](respondWithFilteredResult(_0x1bfb66,_0x329131))[_0x48ff('0x54')](handleError(_0x1bfb66,null));};exports[_0x48ff('0x55')]=function(_0x29cd14,_0x48eff9){var _0x4baa79={'raw':![],'where':{'id':_0x29cd14[_0x48ff('0x56')]['id']},'include':[{'model':db['Pause'],'as':_0x48ff('0x3c')}]},_0x580ea0={};_0x580ea0['model']=_[_0x48ff('0x57')](db[_0x48ff('0x3e')]['rawAttributes']);_0x580ea0[_0x48ff('0x44')]=_[_0x48ff('0x57')](_0x29cd14['query']);_0x580ea0[_0x48ff('0x4c')]=_[_0x48ff('0x45')](_0x580ea0['model'],_0x580ea0[_0x48ff('0x44')]);_0x4baa79[_0x48ff('0x46')]=_[_0x48ff('0x45')](_0x580ea0[_0x48ff('0x43')],qs[_0x48ff('0x47')](_0x29cd14['query'][_0x48ff('0x47')]));_0x4baa79[_0x48ff('0x46')]=_0x4baa79[_0x48ff('0x46')]['length']?_0x4baa79['attributes']:_0x580ea0[_0x48ff('0x43')];if(_0x29cd14[_0x48ff('0x44')][_0x48ff('0x51')]){_0x4baa79[_0x48ff('0x52')]=[{'all':!![]}];}_0x4baa79=_[_0x48ff('0x50')]({},_0x4baa79,_0x29cd14[_0x48ff('0x58')]);return db[_0x48ff('0x3e')][_0x48ff('0x59')](_0x4baa79)[_0x48ff('0x20')](handleEntityNotFound(_0x48eff9,null))[_0x48ff('0x20')](respondWithResult(_0x48eff9,null))[_0x48ff('0x54')](handleError(_0x48eff9,null));};exports['create']=function(_0x3c8cff,_0x1142aa){return db['ChatWebsite']['create'](_0x3c8cff[_0x48ff('0x5a')],{})['then'](function(_0x526cd4){var _0x2b28a8=_0x3c8cff['user'][_0x48ff('0x5b')]({'plain':!![]});if(!_0x2b28a8)throw new Error(_0x48ff('0x5c'));if(_0x2b28a8['role']===_0x48ff('0x5d')){var _0x1bc11f=_0x526cd4['get']({'plain':!![]});var _0x38849d='ChatWebsites';return db[_0x48ff('0x5e')][_0x48ff('0x59')]({'where':{'name':_0x38849d,'userProfileId':_0x2b28a8[_0x48ff('0x5f')]},'raw':!![]})['then'](function(_0x222704){if(_0x222704&&_0x222704[_0x48ff('0x60')]===0x0){return db[_0x48ff('0x61')][_0x48ff('0x62')]({'name':_0x1bc11f[_0x48ff('0x39')],'resourceId':_0x1bc11f['id'],'type':_0x222704[_0x48ff('0x39')],'sectionId':_0x222704['id']},{})[_0x48ff('0x20')](function(){return _0x526cd4;});}else{return _0x526cd4;}})[_0x48ff('0x54')](function(_0x5b7fb5){logger['error'](_0x48ff('0x63'),_0x5b7fb5);throw _0x5b7fb5;});}return _0x526cd4;})[_0x48ff('0x20')](respondWithResult(_0x1142aa,0xc9))[_0x48ff('0x54')](handleError(_0x1142aa,null));};exports[_0x48ff('0x34')]=function(_0x52081b,_0x2f8653){if(_0x52081b[_0x48ff('0x5a')]['id']){delete _0x52081b[_0x48ff('0x5a')]['id'];}return db[_0x48ff('0x3e')]['find']({'where':{'id':_0x52081b[_0x48ff('0x56')]['id']},'include':[{'model':db[_0x48ff('0x64')],'as':_0x48ff('0x3c')}]})[_0x48ff('0x20')](handleEntityNotFound(_0x2f8653,null))['then'](saveUpdates(_0x52081b[_0x48ff('0x5a')],null))['then'](respondWithResult(_0x2f8653,null))[_0x48ff('0x54')](handleError(_0x2f8653,null));};exports[_0x48ff('0x35')]=function(_0x2bbef9,_0xe5594c){return db[_0x48ff('0x3e')]['find']({'where':{'id':_0x2bbef9[_0x48ff('0x56')]['id']}})[_0x48ff('0x20')](handleEntityNotFound(_0xe5594c,null))[_0x48ff('0x20')](removeEntity(_0xe5594c,null))[_0x48ff('0x54')](handleError(_0xe5594c,null));};exports[_0x48ff('0x65')]=function(_0x59cbf3,_0xd4fc67){return db['ChatWebsite'][_0x48ff('0x65')]()[_0x48ff('0x20')](respondWithResult(_0xd4fc67,null))[_0x48ff('0x54')](handleError(_0xd4fc67,null));};exports[_0x48ff('0x66')]=function(_0x4a5ef5,_0x3cffb2,_0x3dfed5){if(_0x4a5ef5['body']['id']){delete _0x4a5ef5['body']['id'];}return db['ChatWebsite'][_0x48ff('0x59')]({'where':{'id':_0x4a5ef5['params']['id']}})[_0x48ff('0x20')](handleEntityNotFound(_0x3cffb2,null))['then'](function(_0x4f0939){if(_0x4f0939){_0x4a5ef5[_0x48ff('0x5a')]['ChatWebsiteId']=_0x4f0939['id'];return db[_0x48ff('0x67')][_0x48ff('0x62')](_0x4a5ef5[_0x48ff('0x5a')]);}})[_0x48ff('0x20')](respondWithResult(_0x3cffb2,null))['catch'](handleError(_0x3cffb2,null));};exports[_0x48ff('0x68')]=function(_0xfbf3e8,_0x59843c,_0x56fbb1){var _0x4fe278={'raw':![],'where':{}};var _0x243998={};var _0x46cea4={'count':0x0,'rows':[]};return db[_0x48ff('0x3e')]['findOne']({'where':{'id':_0xfbf3e8[_0x48ff('0x56')]['id']}})[_0x48ff('0x20')](handleEntityNotFound(_0x59843c,null))[_0x48ff('0x20')](function(_0x1b93f1){if(_0x1b93f1){_0x243998[_0x48ff('0x43')]=_[_0x48ff('0x57')](db[_0x48ff('0x67')][_0x48ff('0x3f')]);_0x243998['query']=_[_0x48ff('0x57')](_0xfbf3e8[_0x48ff('0x44')]);_0x243998[_0x48ff('0x4c')]=_[_0x48ff('0x45')](_0x243998[_0x48ff('0x43')],_0x243998[_0x48ff('0x44')]);_0x4fe278[_0x48ff('0x46')]=_[_0x48ff('0x45')](_0x243998[_0x48ff('0x43')],qs[_0x48ff('0x47')](_0xfbf3e8['query'][_0x48ff('0x47')]));_0x4fe278[_0x48ff('0x46')]=_0x4fe278[_0x48ff('0x46')]['length']?_0x4fe278['attributes']:_0x243998[_0x48ff('0x43')];if(!_0xfbf3e8[_0x48ff('0x44')][_0x48ff('0x49')]('nolimit')){_0x4fe278[_0x48ff('0x2c')]=qs['limit'](_0xfbf3e8[_0x48ff('0x44')][_0x48ff('0x2c')]);_0x4fe278[_0x48ff('0x2e')]=qs['offset'](_0xfbf3e8[_0x48ff('0x44')][_0x48ff('0x2e')]);}_0x4fe278[_0x48ff('0x69')]=qs['sort'](_0xfbf3e8[_0x48ff('0x44')][_0x48ff('0x4b')]);_0x4fe278[_0x48ff('0x4e')]=qs['filters'](_[_0x48ff('0x6a')](_0xfbf3e8[_0x48ff('0x44')],_0x243998[_0x48ff('0x4c')]));_0x4fe278[_0x48ff('0x4e')][_0x48ff('0x6b')]=_0x1b93f1['id'];if(_0xfbf3e8[_0x48ff('0x44')][_0x48ff('0x4d')]){_0x4fe278[_0x48ff('0x4e')]=_[_0x48ff('0x50')](_0x4fe278['where'],{'$or':_['map'](_0x4fe278['attributes'],function(_0x405741){var _0x3a0264={};_0x3a0264[_0x405741]={'$like':'%'+_0xfbf3e8[_0x48ff('0x44')][_0x48ff('0x4d')]+'%'};return _0x3a0264;})});}_0x4fe278=_['merge']({},_0x4fe278,_0xfbf3e8[_0x48ff('0x58')]);return db[_0x48ff('0x67')][_0x48ff('0x2d')]({'where':_0x4fe278[_0x48ff('0x4e')]})[_0x48ff('0x20')](function(_0x2a2c2c){_0x46cea4['count']=_0x2a2c2c;if(_0xfbf3e8[_0x48ff('0x44')][_0x48ff('0x51')]){_0x4fe278[_0x48ff('0x52')]=[{'all':!![]}];}return db[_0x48ff('0x67')][_0x48ff('0x53')](_0x4fe278);})[_0x48ff('0x20')](function(_0x169257){_0x46cea4[_0x48ff('0x6c')]=_0x169257;return _0x46cea4;});}})[_0x48ff('0x20')](respondWithFilteredResult(_0x59843c,_0x4fe278))[_0x48ff('0x54')](handleError(_0x59843c,null));};exports[_0x48ff('0x6d')]=function(_0x1eef49,_0x3a001c,_0x5dae1d){return db[_0x48ff('0x3e')][_0x48ff('0x59')]({'where':{'id':_0x1eef49[_0x48ff('0x56')]['id']}})[_0x48ff('0x20')](handleEntityNotFound(_0x3a001c,null))[_0x48ff('0x20')](function(_0x2e574b){if(_0x2e574b){return _0x2e574b[_0x48ff('0x6d')](_0x1eef49[_0x48ff('0x44')][_0x48ff('0x6e')]);}})[_0x48ff('0x20')](respondWithStatusCode(_0x3a001c,null))['catch'](handleError(_0x3a001c,null));};exports[_0x48ff('0x6f')]=function(_0x3848e1,_0x2201d0,_0x100638){if(_0x3848e1[_0x48ff('0x5a')]['id']){delete _0x3848e1['body']['id'];}return db[_0x48ff('0x3e')][_0x48ff('0x59')]({'where':{'id':_0x3848e1[_0x48ff('0x56')]['id']}})[_0x48ff('0x20')](handleEntityNotFound(_0x2201d0,null))[_0x48ff('0x20')](function(_0x1755a7){if(_0x1755a7){_0x3848e1['body'][_0x48ff('0x6b')]=_0x1755a7['id'];return db[_0x48ff('0x70')]['create'](_0x3848e1[_0x48ff('0x5a')]);}})[_0x48ff('0x20')](respondWithResult(_0x2201d0,null))[_0x48ff('0x54')](handleError(_0x2201d0,null));};exports[_0x48ff('0x71')]=function(_0x426522,_0x2e61b9,_0x4eb1ef){var _0x4c0883={'raw':![],'where':{}};var _0x13834e={};var _0x47a986={'count':0x0,'rows':[]};return db['ChatWebsite'][_0x48ff('0x72')]({'where':{'id':_0x426522[_0x48ff('0x56')]['id']}})[_0x48ff('0x20')](handleEntityNotFound(_0x2e61b9,null))[_0x48ff('0x20')](function(_0x34335d){if(_0x34335d){_0x13834e[_0x48ff('0x43')]=_[_0x48ff('0x57')](db['CannedAnswer'][_0x48ff('0x3f')]);_0x13834e[_0x48ff('0x44')]=_['keys'](_0x426522[_0x48ff('0x44')]);_0x13834e[_0x48ff('0x4c')]=_[_0x48ff('0x45')](_0x13834e[_0x48ff('0x43')],_0x13834e['query']);_0x4c0883['attributes']=_[_0x48ff('0x45')](_0x13834e['model'],qs['fields'](_0x426522['query']['fields']));_0x4c0883['attributes']=_0x4c0883[_0x48ff('0x46')]['length']?_0x4c0883['attributes']:_0x13834e[_0x48ff('0x43')];if(!_0x426522[_0x48ff('0x44')][_0x48ff('0x49')](_0x48ff('0x4a'))){_0x4c0883[_0x48ff('0x2c')]=qs[_0x48ff('0x2c')](_0x426522[_0x48ff('0x44')][_0x48ff('0x2c')]);_0x4c0883[_0x48ff('0x2e')]=qs['offset'](_0x426522['query']['offset']);}_0x4c0883[_0x48ff('0x69')]=qs[_0x48ff('0x4b')](_0x426522[_0x48ff('0x44')][_0x48ff('0x4b')]);_0x4c0883['where']=qs[_0x48ff('0x4c')](_[_0x48ff('0x6a')](_0x426522[_0x48ff('0x44')],_0x13834e[_0x48ff('0x4c')]));_0x4c0883['where'][_0x48ff('0x6b')]=_0x34335d['id'];if(_0x426522[_0x48ff('0x44')]['filter']){_0x4c0883[_0x48ff('0x4e')]=_[_0x48ff('0x50')](_0x4c0883[_0x48ff('0x4e')],{'$or':_[_0x48ff('0x3d')](_0x4c0883[_0x48ff('0x46')],function(_0x39eb22){var _0x467baa={};_0x467baa[_0x39eb22]={'$like':'%'+_0x426522[_0x48ff('0x44')][_0x48ff('0x4d')]+'%'};return _0x467baa;})});}_0x4c0883=_[_0x48ff('0x50')]({},_0x4c0883,_0x426522[_0x48ff('0x58')]);return db[_0x48ff('0x70')][_0x48ff('0x2d')]({'where':_0x4c0883['where']})['then'](function(_0x22cf08){_0x47a986['count']=_0x22cf08;if(_0x426522[_0x48ff('0x44')][_0x48ff('0x51')]){_0x4c0883[_0x48ff('0x52')]=[{'all':!![]}];}return db[_0x48ff('0x70')][_0x48ff('0x53')](_0x4c0883);})['then'](function(_0x163cc0){_0x47a986[_0x48ff('0x6c')]=_0x163cc0;return _0x47a986;});}})['then'](respondWithFilteredResult(_0x2e61b9,_0x4c0883))[_0x48ff('0x54')](handleError(_0x2e61b9,null));};exports[_0x48ff('0x73')]=function(_0x15de43,_0x579504,_0x2fc42d){return db['ChatWebsite'][_0x48ff('0x59')]({'where':{'id':_0x15de43[_0x48ff('0x56')]['id']}})[_0x48ff('0x20')](handleEntityNotFound(_0x579504,null))['then'](function(_0x166798){if(_0x166798){return _0x166798[_0x48ff('0x73')](_0x15de43[_0x48ff('0x44')][_0x48ff('0x6e')]);}})[_0x48ff('0x20')](respondWithStatusCode(_0x579504,null))[_0x48ff('0x54')](handleError(_0x579504,null));};exports['addLogo']=function(_0x7afef1,_0x243438,_0x1a1be5){_0x7afef1[_0x48ff('0x5a')][_0x48ff('0x74')]=_0x7afef1[_0x48ff('0x75')][_0x48ff('0x76')];return db[_0x48ff('0x3e')][_0x48ff('0x59')]({'where':{'id':_0x7afef1[_0x48ff('0x56')]['id']}})[_0x48ff('0x20')](handleEntityNotFound(_0x243438,null))['then'](saveUpdates(_0x7afef1[_0x48ff('0x5a')],null))['then'](respondWithResult(_0x243438,null))[_0x48ff('0x54')](handleError(_0x243438,null));};exports[_0x48ff('0x77')]=function(_0x7bbc96,_0x45e7f2,_0x5d2d29){_0x7bbc96[_0x48ff('0x5a')][_0x48ff('0x78')]=_0x7bbc96['file'][_0x48ff('0x76')];return db[_0x48ff('0x3e')][_0x48ff('0x59')]({'where':{'id':_0x7bbc96[_0x48ff('0x56')]['id']}})[_0x48ff('0x20')](handleEntityNotFound(_0x45e7f2,null))[_0x48ff('0x20')](saveUpdates(_0x7bbc96['body'],null))[_0x48ff('0x20')](respondWithResult(_0x45e7f2,null))['catch'](handleError(_0x45e7f2,null));};exports['addCustomerAvatar']=function(_0x527566,_0x2ea43e,_0x409807){_0x527566['body'][_0x48ff('0x79')]=_0x527566[_0x48ff('0x75')][_0x48ff('0x76')];return db['ChatWebsite'][_0x48ff('0x59')]({'where':{'id':_0x527566[_0x48ff('0x56')]['id']}})[_0x48ff('0x20')](handleEntityNotFound(_0x2ea43e,null))[_0x48ff('0x20')](saveUpdates(_0x527566['body'],null))[_0x48ff('0x20')](respondWithResult(_0x2ea43e,null))[_0x48ff('0x54')](handleError(_0x2ea43e,null));};exports[_0x48ff('0x7a')]=function(_0x21e393,_0x12aba9,_0x5a77a1){_0x21e393['body'][_0x48ff('0x7b')]=_0x21e393['file'][_0x48ff('0x76')];return db[_0x48ff('0x3e')][_0x48ff('0x59')]({'where':{'id':_0x21e393['params']['id']}})['then'](handleEntityNotFound(_0x12aba9,null))['then'](saveUpdates(_0x21e393[_0x48ff('0x5a')],null))[_0x48ff('0x20')](respondWithResult(_0x12aba9,null))[_0x48ff('0x54')](handleError(_0x12aba9,null));};exports[_0x48ff('0x7c')]=function(_0x1f945b,_0x55ea12,_0x418ddc){var _0x2c48b7=path[_0x48ff('0x7d')](config[_0x48ff('0x7e')],_0x48ff('0x7f'));var _0x35acc8={'where':{'id':_0x1f945b['params']['id']},'attributes':['id','sitepic'],'raw':!![]};var _0x150d9a=![];return require('../../config/license/util')[_0x48ff('0x80')]()[_0x48ff('0x20')](function(_0x42c9d0){if(_0x42c9d0){_0x150d9a=_0x42c9d0[_0x48ff('0x81')];}})[_0x48ff('0x20')](function(){return db[_0x48ff('0x3e')]['find'](_0x35acc8);})[_0x48ff('0x20')](handleEntityNotFound(_0x55ea12,null))[_0x48ff('0x20')](function(_0x2205f7){if(_0x2205f7){if(!_[_0x48ff('0x82')](_0x2205f7[_0x48ff('0x74')])){if(fs[_0x48ff('0x83')](path['join'](config[_0x48ff('0x7e')],'server/files/images/logos/',_0x2205f7[_0x48ff('0x74')]))&&_0x150d9a){_0x2c48b7=path[_0x48ff('0x7d')](config[_0x48ff('0x7e')],'server/files/images/logos/',_0x2205f7['sitepic']);}}return _0x55ea12[_0x48ff('0x84')](_0x2c48b7);}})[_0x48ff('0x54')](handleError(_0x55ea12,null));};exports['getAvatar']=function(_0x4ceca2,_0x418375,_0x10bc1a){var _0x1f222f=path[_0x48ff('0x7d')](config[_0x48ff('0x7e')],'server/files/images/avatars/default_avatar.png');var _0x188bb4={'where':{'id':_0x4ceca2[_0x48ff('0x56')]['id']},'attributes':['id',_0x48ff('0x78')],'raw':!![]};return db[_0x48ff('0x3e')]['find'](_0x188bb4)['then'](handleEntityNotFound(_0x418375,null))[_0x48ff('0x20')](function(_0x452053){if(_0x452053){if(!_['isNil'](_0x452053['agentAvatar'])){if(fs[_0x48ff('0x83')](path[_0x48ff('0x7d')](config[_0x48ff('0x7e')],_0x48ff('0x85'),_0x452053[_0x48ff('0x78')]))){_0x1f222f=path[_0x48ff('0x7d')](config[_0x48ff('0x7e')],'server/files/images/avatars/',_0x452053[_0x48ff('0x78')]);}}return _0x418375['download'](_0x1f222f);}})[_0x48ff('0x54')](handleError(_0x418375,null));};exports['getCustomerAvatar']=function(_0x812514,_0x54e8a5,_0xa0e6d6){var _0x1c9295=path[_0x48ff('0x7d')](config[_0x48ff('0x7e')],_0x48ff('0x86'));var _0x386dee={'where':{'id':_0x812514[_0x48ff('0x56')]['id']},'attributes':['id',_0x48ff('0x79'),_0x48ff('0x87')],'raw':!![]};return db[_0x48ff('0x3e')]['find'](_0x386dee)[_0x48ff('0x20')](handleEntityNotFound(_0x54e8a5,null))[_0x48ff('0x20')](function(_0x16c44f){if(_0x16c44f){if(!_[_0x48ff('0x82')](_0x16c44f[_0x48ff('0x79')])){if(fs['existsSync'](path[_0x48ff('0x7d')](config[_0x48ff('0x7e')],'server/files/images/avatars/',_0x16c44f[_0x48ff('0x79')]))&&_0x16c44f[_0x48ff('0x87')]){_0x1c9295=path[_0x48ff('0x7d')](config[_0x48ff('0x7e')],'server/files/images/avatars/',_0x16c44f[_0x48ff('0x79')]);}}return _0x54e8a5[_0x48ff('0x84')](_0x1c9295);}})[_0x48ff('0x54')](handleError(_0x54e8a5,null));};exports[_0x48ff('0x88')]=function(_0x134043,_0x2cc939,_0x351de1){var _0x1c3385=path[_0x48ff('0x7d')](config['root'],_0x48ff('0x89'));var _0xa9782a={'where':{'id':_0x134043[_0x48ff('0x56')]['id']},'attributes':['id','systemAvatar'],'raw':!![]};return db['ChatWebsite']['find'](_0xa9782a)[_0x48ff('0x20')](handleEntityNotFound(_0x2cc939,null))[_0x48ff('0x20')](function(_0x48aa50){if(_0x48aa50){if(!_['isNil'](_0x48aa50[_0x48ff('0x7b')])){if(fs[_0x48ff('0x83')](path['join'](config[_0x48ff('0x7e')],'server/files/images/avatars/',_0x48aa50[_0x48ff('0x7b')]))){_0x1c3385=path['join'](config[_0x48ff('0x7e')],_0x48ff('0x85'),_0x48aa50['systemAvatar']);}}return _0x2cc939[_0x48ff('0x84')](_0x1c3385);}})['catch'](handleError(_0x2cc939,null));};exports[_0x48ff('0x8a')]=function(_0x1dfe30,_0x153a19,_0x443d2b){var _0x396975=require(_0x48ff('0x8b'));var _0x2ab612=new _0x396975();var _0x4cfd01=_0x2ab612[_0x48ff('0x8c')](_0x1dfe30[_0x48ff('0x8d')]['user-agent'])[_0x48ff('0x8e')]();var _0xa11ef7={'body':_0x1dfe30[_0x48ff('0x5a')],'channel':_0x48ff('0x8f')};var _0x519d70=[];var _0x4138c3=[];var _0x52c65c={};var _0x19d9e8=![];return db[_0x48ff('0x90')][_0x48ff('0x65')]()[_0x48ff('0x20')](function(_0xb2e82e){if(!_0xb2e82e){throw new db[(_0x48ff('0x91'))][(_0x48ff('0x92'))]('no\x20available\x20attributes');}_0x519d70=_[_0x48ff('0x93')](_['keys'](_0xb2e82e),['createdAt',_0x48ff('0x94')]);_0x4138c3=_['difference'](_['keys'](_0xb2e82e),[_0x48ff('0x95'),_0x48ff('0x94'),_0x48ff('0x96'),_0x48ff('0x97')]);if(_0x1dfe30[_0x48ff('0x5a')]['id']){delete _0x1dfe30[_0x48ff('0x5a')]['id'];}if(_[_0x48ff('0x82')](_0x1dfe30['body']['from'])){throw new db[(_0x48ff('0x91'))][(_0x48ff('0x92'))](_0x48ff('0x98'));}if(_[_0x48ff('0x82')](_0x1dfe30[_0x48ff('0x5a')][_0x48ff('0x5a')])||_0x1dfe30[_0x48ff('0x5a')][_0x48ff('0x5a')]===''){throw new db['Sequelize'][(_0x48ff('0x92'))](_0x48ff('0x99'));}if(_['isNil'](_0x1dfe30[_0x48ff('0x5a')][_0x48ff('0x9a')])){throw new db[(_0x48ff('0x91'))][(_0x48ff('0x92'))]('mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x4138c3);}if(!_[_0x48ff('0x9b')](_0x4138c3,_0x1dfe30['body']['mapKey'])){throw new db[(_0x48ff('0x91'))]['ValidationError']('mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x4138c3);}_0x52c65c[_0x1dfe30['body'][_0x48ff('0x9a')]]=_0x1dfe30['body'][_0x48ff('0x9c')];})[_0x48ff('0x20')](function(){return db[_0x48ff('0x3e')]['find']({'where':{'id':_0x1dfe30[_0x48ff('0x56')]['id']},'include':[{'model':db['CmList'],'as':'List','include':[{'model':db[_0x48ff('0x90')],'as':_0x48ff('0x9d'),'where':_0x52c65c,'limit':0x1,'order':[[_0x48ff('0x94'),_0x48ff('0x9e')]]}]},{'model':db[_0x48ff('0x9f')],'as':'Applications'}]});})['then'](handleEntityNotFound(_0x153a19,null))[_0x48ff('0x20')](function(_0x2ae388){if(_0x2ae388&&_0x2ae388['List']){_0xa11ef7['account']=_0x2ae388;_0xa11ef7[_0x48ff('0xa0')]=_0x2ae388['Applications'];_0xa11ef7[_0x48ff('0xa1')]=_0x2ae388[_0x48ff('0xa2')];_0xa11ef7[_0x48ff('0xa0')]=_[_0x48ff('0xa3')](_0xa11ef7[_0x48ff('0xa0')],[_0x48ff('0xa4')],[_0x48ff('0xa5')]);if(_0xa11ef7[_0x48ff('0xa6')]['Applications']){delete _0xa11ef7['account'][_0x48ff('0xa7')];}if(_0xa11ef7[_0x48ff('0xa6')][_0x48ff('0xa2')]&&_0xa11ef7[_0x48ff('0xa6')]['List'][_0x48ff('0x9d')][_0x48ff('0x48')]){return _0xa11ef7[_0x48ff('0xa6')][_0x48ff('0xa2')][_0x48ff('0x9d')][0x0];}var _0x2e423b=_[_0x48ff('0x17')](_0x1dfe30['body'],{'firstName':_0x1dfe30[_0x48ff('0x5a')][_0x48ff('0x9c')],'ListId':_0x2ae388[_0x48ff('0x97')]});_0x2e423b[_0x1dfe30[_0x48ff('0x5a')]['mapKey']]=_0x1dfe30[_0x48ff('0x5a')][_0x48ff('0x9c')];return db[_0x48ff('0x90')][_0x48ff('0x62')](_0x2e423b,{'fields':_0x519d70,'raw':!![]});}})[_0x48ff('0x20')](handleEntityNotFound(_0x153a19,null))[_0x48ff('0x20')](function(_0x4893e4){_0xa11ef7[_0x48ff('0xa8')]=_0x4893e4;var _0x51a681=_0x1dfe30[_0x48ff('0x5a')]['customerIp'];if(_0x1dfe30['headers'][_0x48ff('0xa9')]){_0x51a681=_0x1dfe30[_0x48ff('0x8d')][_0x48ff('0xa9')];}else if(_0x1dfe30['headers'][_0x48ff('0xaa')]){_0x51a681=_[_0x48ff('0xab')](_0x1dfe30['headers'][_0x48ff('0xaa')][_0x48ff('0xac')](','));}if(_0x4893e4){var _0x383d2d={'ContactId':_0x4893e4['id'],'ChatWebsiteId':_0x1dfe30[_0x48ff('0x56')]['id'],'from':(_0x4893e4[_0x48ff('0xad')]||'')+'\x20'+(_0x4893e4[_0x48ff('0xae')]||''),'customerIp':_0x51a681,'customerPort':_0x1dfe30[_0x48ff('0x8d')]['x-real-port']?_0x1dfe30[_0x48ff('0x8d')]['x-real-port']:null,'referer':_0x1dfe30[_0x48ff('0x5a')]['referer'],'browserName':_0x4cfd01['browser'][_0x48ff('0x39')]&&_0x4cfd01['browser'][_0x48ff('0xaf')]?util[_0x48ff('0xb0')](_0x48ff('0xb1'),_0x4cfd01[_0x48ff('0xb2')][_0x48ff('0x39')],_0x4cfd01[_0x48ff('0xb2')][_0x48ff('0xaf')]):'unknown','browserVersion':_0x4cfd01[_0x48ff('0xb2')][_0x48ff('0xaf')]||'unknown','osName':util[_0x48ff('0xb0')](_0x48ff('0xb1'),_0x4cfd01['os'][_0x48ff('0x39')],_0x4cfd01['os'][_0x48ff('0xaf')]),'osVersion':_0x4cfd01['os'][_0x48ff('0xaf')],'deviceModel':_0x4cfd01['device']['model']&&_0x4cfd01[_0x48ff('0xb3')]['vendor']?util[_0x48ff('0xb0')](_0x48ff('0xb4'),_0x4cfd01[_0x48ff('0xb3')][_0x48ff('0x43')],_0x4cfd01[_0x48ff('0xb3')][_0x48ff('0xb5')],_0x4cfd01[_0x48ff('0xb3')][_0x48ff('0x41')]):null,'deviceVendor':_0x4cfd01[_0x48ff('0xb3')]['vendor'],'deviceType':_0x4cfd01['device']['type'],'formData':JSON[_0x48ff('0x24')](_0x1dfe30['body'])};var _0x4fc8b2={'ChatWebsiteId':_0x1dfe30[_0x48ff('0x56')]['id'],'closed':![]};if(_0x1dfe30[_0x48ff('0x5a')][_0x48ff('0xb6')]){_0x4fc8b2[_0x48ff('0xb6')]=_0x1dfe30[_0x48ff('0x5a')]['threadId'];return db[_0x48ff('0xb7')]['find']({'where':_0x4fc8b2})[_0x48ff('0x20')](function(_0x55a43d){if(_0x55a43d){return[_0x55a43d,![]];}_0x383d2d[_0x48ff('0xb6')]=_0x1dfe30[_0x48ff('0x5a')][_0x48ff('0xb6')];_0x383d2d['externalUrl']=_0x1dfe30[_0x48ff('0x5a')][_0x48ff('0xb8')];return db[_0x48ff('0xb7')]['create'](_0x383d2d)['then'](function(_0x312d6e){return[_0x312d6e,!![]];});});}_0x4fc8b2[_0x48ff('0xb9')]=_0x4893e4['id'];if(_0x1dfe30[_0x48ff('0x5a')][_0x48ff('0xba')]&&_0x1dfe30['body'][_0x48ff('0xba')]['id']){_0x4fc8b2['id']=_0x1dfe30[_0x48ff('0x5a')][_0x48ff('0xba')]['id'];return db[_0x48ff('0xb7')][_0x48ff('0x59')]({'where':_0x4fc8b2})[_0x48ff('0x20')](function(_0x4fb877){if(_0x4fb877){return[_0x4fb877,![]];}return db[_0x48ff('0xb7')]['create'](_0x383d2d)[_0x48ff('0x20')](function(_0xc6bc3e){return[_0xc6bc3e,!![]];});});}return db[_0x48ff('0xb7')][_0x48ff('0x62')](_0x383d2d)['then'](function(_0x48bd99){return[_0x48bd99,!![]];});}})[_0x48ff('0xbb')](function(_0x1c78fe,_0x196b9a){if(_0x1c78fe){_0x19d9e8=_0x196b9a;if(!_0x196b9a){var _0x115154={'from':(_0xa11ef7[_0x48ff('0xa8')][_0x48ff('0xad')]||'')+'\x20'+(_0xa11ef7[_0x48ff('0xa8')][_0x48ff('0xae')]||'')};if(_0x1dfe30[_0x48ff('0x5a')][_0x48ff('0xb6')]&&_0x1dfe30['body'][_0x48ff('0xbc')]&&_0x1dfe30[_0x48ff('0x5a')]['threadId']!=_0x1dfe30[_0x48ff('0x5a')][_0x48ff('0xbc')]){_0x115154[_0x48ff('0xb6')]=_0x1dfe30[_0x48ff('0x5a')][_0x48ff('0xbc')];}return _0x1c78fe[_0x48ff('0x34')](_0x115154);}else{return _0x1c78fe;}}})[_0x48ff('0x20')](function(_0x53c572){_0xa11ef7[_0x48ff('0xba')]=_0x53c572[_0x48ff('0x5b')]({'plain':!![]});_0xa11ef7[_0x48ff('0xba')][_0x48ff('0xbd')]=_0x19d9e8;if(_0xa11ef7['interaction'][_0x48ff('0xbd')]){if(_0xa11ef7[_0x48ff('0xa6')]['autoclose']){_0xa11ef7[_0x48ff('0xa0')][_0x48ff('0xbe')]({'id':0x0,'priority':_0xa11ef7['applications'][_0x48ff('0x48')]+0x1,'app':_0x48ff('0xbf'),'appdata':_0x48ff('0xc0'),'interval':'*,*,*,*'});}}return db['ChatMessage'][_0x48ff('0x62')]({'body':_0x1dfe30[_0x48ff('0x5a')][_0x48ff('0x5a')],'ChatWebsiteId':_0x1dfe30[_0x48ff('0x56')]['id'],'ChatInteractionId':_0x53c572['id'],'direction':'in','ContactId':_0xa11ef7[_0x48ff('0xa8')]['id'],'AttachmentId':_0x1dfe30['body'][_0x48ff('0xc1')]});})['then'](function(_0x5caff9){_0xa11ef7[_0x48ff('0x28')]=_0x5caff9;if(_0xa11ef7['interaction'][_0x48ff('0xc2')]){return db['User'][_0x48ff('0x59')]({'attributes':['id',_0x48ff('0x39')],'where':{'id':_0xa11ef7[_0x48ff('0xba')][_0x48ff('0xc2')]}})[_0x48ff('0x20')](function(_0x5440dd){if(_0x5440dd){_0xa11ef7[_0x48ff('0xa0')][_0x48ff('0xc3')]({'id':0x0,'priority':0x0,'app':_0x48ff('0xc4'),'appdata':_0x5440dd[_0x48ff('0x39')]+','+(_0xa11ef7[_0x48ff('0xa6')][_0x48ff('0xc5')]||0xa),'interval':_0x48ff('0xc6')});_0xa11ef7[_0x48ff('0xc7')]=!![];}return respondWithRpcPromise(_0x48ff('0xc8'),_0x48ff('0xc9'),_0xa11ef7);});}return respondWithRpcPromise(_0x48ff('0xc8'),'startRouting',_0xa11ef7);})[_0x48ff('0x20')](function(_0xfb9234){respondWithRpcPromise(_0x48ff('0xca'),'EventManager',{'event':_0x48ff('0x8a'),'message':_0xfb9234},client9002);return _0xfb9234;})[_0x48ff('0x20')](respondWithResult(_0x153a19,null))[_0x48ff('0x54')](handleError(_0x153a19,null));};exports[_0x48ff('0xcb')]=function(_0x37b726,_0x38775e,_0x2c876a){var _0x3ef94,_0xfac8f7,_0x46e75a;var _0x5d337d=[];var _0x21c5f1=[];var _0x20b402={};var _0x2f948f=_0x37b726['files']||[];var _0x54b63f=[];var _0x27f66d;return db[_0x48ff('0x90')]['describe']()[_0x48ff('0x20')](function(_0x2acf82){if(!_0x2acf82){throw new db[(_0x48ff('0x91'))][(_0x48ff('0x92'))](_0x48ff('0xcc'));}_0x21c5f1=_['difference'](_[_0x48ff('0x57')](_0x2acf82),[_0x48ff('0x95'),_0x48ff('0x94')]);_0x5d337d=_[_0x48ff('0x93')](_[_0x48ff('0x57')](_0x2acf82),['createdAt',_0x48ff('0x94'),_0x48ff('0x96'),_0x48ff('0x97')]);if(_0x37b726[_0x48ff('0x5a')]['id']){delete _0x37b726[_0x48ff('0x5a')]['id'];}if(_[_0x48ff('0x82')](_0x37b726[_0x48ff('0x5a')][_0x48ff('0x9c')])){throw _0x38775e[_0x48ff('0x29')](0x1f4)[_0x48ff('0x3a')](new db[(_0x48ff('0x91'))]['ValidationError'](_0x48ff('0x98')));}if(_[_0x48ff('0x82')](_0x37b726[_0x48ff('0x5a')][_0x48ff('0x5a')])||_0x37b726[_0x48ff('0x5a')][_0x48ff('0x5a')]===''){throw _0x38775e[_0x48ff('0x29')](0x1f4)[_0x48ff('0x3a')](new db[(_0x48ff('0x91'))]['ValidationError']('body\x20is\x20mandatory\x20and\x20not\x20empty'));}if(_[_0x48ff('0x82')](_0x37b726[_0x48ff('0x5a')]['mapKeyOffline'])){throw _0x38775e['status'](0x1f4)['send'](new db['Sequelize'][(_0x48ff('0x92'))]('mapKeyOffline\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x5d337d));}if(!_[_0x48ff('0x9b')](_0x5d337d,_0x37b726[_0x48ff('0x5a')]['mapKeyOffline'])){throw _0x38775e[_0x48ff('0x29')](0x1f4)['send'](new db[(_0x48ff('0x91'))]['ValidationError']('mapKeyOffline\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x5d337d));}_0x20b402[_0x37b726['body'][_0x48ff('0xcd')]]=_0x37b726[_0x48ff('0x5a')]['from'];})[_0x48ff('0x20')](function(){return db[_0x48ff('0x3e')][_0x48ff('0x59')]({'where':{'id':_0x37b726[_0x48ff('0x56')]['id']},'include':[{'model':db[_0x48ff('0xce')],'as':'List'},{'model':db[_0x48ff('0xcf')],'as':_0x48ff('0xcf')}]});})[_0x48ff('0x20')](handleEntityNotFound(_0x38775e,null))[_0x48ff('0x20')](function(_0x44a201){if(_0x44a201&&_0x44a201[_0x48ff('0xa2')]){_0xfac8f7=_0x44a201;var _0x2308d8=_[_0x48ff('0x17')](_0x37b726[_0x48ff('0x5a')],{'firstName':_0x37b726[_0x48ff('0x5a')][_0x48ff('0x9c')],'phone':_0x37b726[_0x48ff('0x5a')][_0x48ff('0x9c')],'ListId':_0x44a201[_0x48ff('0x97')]});_0x2308d8[_0x37b726[_0x48ff('0x5a')][_0x48ff('0xcd')]]=_0x37b726[_0x48ff('0x5a')][_0x48ff('0x9c')];return db['CmContact']['findOrCreate']({'where':_0x20b402,'defaults':_0x2308d8});}})[_0x48ff('0xbb')](function(_0x185982){if(_0x185982){_0x46e75a=_0x185982;var _0x35a27f=fs['readFileSync'](path[_0x48ff('0x7d')](config['root'],'server/files/templates/chatOfflineMessage.ejs'),_0x48ff('0xd0'));var _0x4cc188=ejs['render'](_0x35a27f,{'body':_[_0x48ff('0xd1')](_0x37b726[_0x48ff('0x5a')]['body']),'bodyTitle':_0xfac8f7[_0x48ff('0xd2')]});return db[_0x48ff('0xd3')][_0x48ff('0x62')]({'body':_0x4cc188,'ContactId':_0x185982['id'],'ChatWebsiteId':_0xfac8f7['id']});}})[_0x48ff('0x20')](function(_0x415f21){_0x27f66d=_0x415f21;if(_0x2f948f[_0x48ff('0x48')]){var _0x321763=_0x2f948f[_0x48ff('0x3d')](function(_0x3b1b95){return{'name':_0x3b1b95[_0x48ff('0xd4')],'basename':_0x3b1b95[_0x48ff('0x76')],'type':_0x3b1b95['mimetype'],'ChatOfflineMessageId':_0x415f21['id']};});_0x54b63f=_0x321763[_0x48ff('0x3d')](_0x38c331=>{var _0x46c751={'filename':_0x38c331[_0x48ff('0x39')],'path':path[_0x48ff('0x7d')](config[_0x48ff('0x7e')],'server',_0x48ff('0xd5'),_0x48ff('0xd6'),_0x48ff('0xd7'),_0x38c331['basename'])};return _0x46c751;});if(!_0xfac8f7[_0x48ff('0xd8')]){return db[_0x48ff('0xd9')][_0x48ff('0xda')](function(_0x277dea){return db[_0x48ff('0xdb')][_0x48ff('0xdc')](_0x321763,{'transaction':_0x277dea});});}}})[_0x48ff('0x20')](function(){if(_0x27f66d){_0x3ef94=_0x27f66d;return db['MailAccount'][_0x48ff('0x72')]({'where':{'active':!![]},'include':[{'model':db[_0x48ff('0xdd')],'as':_0x48ff('0xde'),'raw':!![]}]});}})[_0x48ff('0x20')](function(_0x126afc){if(_0x126afc&&_0x126afc[_0x48ff('0xde')]&&_0xfac8f7[_0x48ff('0xdf')]&&_0xfac8f7[_0x48ff('0xe0')]){var _0x302da3={'tls':{'rejectUnauthorized':![]}};if(_0x126afc[_0x48ff('0xde')][_0x48ff('0xe1')]){_0x302da3[_0x48ff('0xe1')]=_0x126afc[_0x48ff('0xde')][_0x48ff('0xe1')];}else{_0x302da3[_0x48ff('0xe2')]=_0x126afc[_0x48ff('0xde')][_0x48ff('0xe2')];_0x302da3[_0x48ff('0xe3')]=_0x126afc[_0x48ff('0xde')][_0x48ff('0xe3')];_0x302da3[_0x48ff('0xe4')]=_0x126afc['Smtp'][_0x48ff('0xe4')];}if(_0x126afc[_0x48ff('0xde')][_0x48ff('0xe5')]){_0x302da3['auth']={'user':_0x126afc[_0x48ff('0xde')][_0x48ff('0x5d')],'pass':_0x126afc[_0x48ff('0xde')]['pass']};}return respondWithRpcPromise(_0x48ff('0xe6'),_0x48ff('0xe7'),{'account':_0x302da3,'message':{'from':util[_0x48ff('0xb0')](_0x48ff('0xe8'),_0x126afc[_0x48ff('0x39')],_0x126afc[_0x48ff('0xe9')]||_0x126afc[_0x48ff('0xde')][_0x48ff('0x5d')]),'to':_0xfac8f7[_0x48ff('0xe0')],'subject':_0xfac8f7[_0x48ff('0xea')],'html':_0x3ef94['body'],'attachments':_0x54b63f}},client9003)[_0x48ff('0x20')](function(){return _0x3ef94;})[_0x48ff('0x54')](function(_0x5b0a21){console[_0x48ff('0x25')](_0x5b0a21);});}})['then'](function(){if(_0xfac8f7&&_0xfac8f7['openNewInteraction']&&_0xfac8f7[_0x48ff('0xeb')]){var _0x424897=[];if(_0x2f948f[_0x48ff('0x48')]){_0x424897=_0x2f948f[_0x48ff('0x3d')](function(_0x4bcfa0){return{'name':_0x4bcfa0[_0x48ff('0xd4')],'basename':_0x4bcfa0['filename'],'type':_0x4bcfa0[_0x48ff('0xec')],'ChatOfflineMessageId':_0x27f66d['id']};});}var _0x485666;if(!_[_0x48ff('0x82')](_0xfac8f7['subjectOffline'])){var _0x2027c2=_[_0x48ff('0x3d')](_0x37b726[_0x48ff('0x5a')],function(_0x3167e5){return _0x3167e5;});var _0x371d76=_['toPairsIn'](_0x2027c2)[0x0];var _0x135e01=_[_0x48ff('0xed')](_0x371d76,function(_0xafa3b){return _0xafa3b;});_0x485666=_0x135e01[0x1][_0xfac8f7[_0x48ff('0xee')]];}var _0xe52cd3={'from':_0x46e75a[_0x48ff('0xe9')],'firstName':_0x46e75a[_0x48ff('0xad')],'lastName':_0x46e75a['lastName'],'mapKey':_0x48ff('0xe9'),'message':{'from':_0x46e75a[_0x48ff('0xe9')],'to':_0xfac8f7[_0x48ff('0xcf')][_0x48ff('0xe9')],'cc':'','subject':_['isNil'](_0x485666)?_0xfac8f7['offlineMessageSubject']:_0x485666,'messageId':'','sentAt':new Date(),'attach':_0x424897[_0x48ff('0x48')],'attachments':_0x424897,'originChannel':_0x48ff('0xef'),'ChatWebsiteId':_0xfac8f7['id'],'ChatOfflineMessageId':_0x3ef94['id'],'originTo':_0xfac8f7['MailAccount'][_0x48ff('0xe9')]},'body':_0x3ef94[_0x48ff('0x5a')]};var _0x4a9355={'account':{'id':_0xfac8f7[_0x48ff('0xeb')]},'body':_0xe52cd3,'log':'NotifyMailAccount'};return respondWithRpcPromise(_0x48ff('0xf0'),_0x48ff('0xf1'),_0x4a9355,client9001)[_0x48ff('0x20')](function(){return _0x3ef94;})[_0x48ff('0x54')](function(_0x2482b6){console[_0x48ff('0x25')](_0x2482b6);});}return;})[_0x48ff('0x20')](function(){if(_0x3ef94){return _0x3ef94;}})[_0x48ff('0x20')](respondWithResult(_0x38775e,null))[_0x48ff('0x54')](function(_0xf5e603){console['error'](_0x48ff('0x54'),_0xf5e603);for(var _0x215471 of _0x2f948f){var _0x129d81=path[_0x48ff('0x7d')](config[_0x48ff('0x7e')],'server',_0x48ff('0xd5'),'attachments',_0x48ff('0xd7'),_0x215471['filename']);fs_extra[_0x48ff('0xf2')](_0x129d81)['catch'](function(_0x207a2b){console['error'](_0x48ff('0xf3'),_0x129d81,_0x207a2b);});}});};exports[_0x48ff('0xf4')]=function(_0x40abda,_0x49112b,_0x4088aa){return db[_0x48ff('0xb7')]['find']({'where':{'id':_0x40abda['params']['id']}})['then'](handleEntityNotFound(_0x49112b,null))[_0x48ff('0x20')](function(_0x36d36a){if(_0x36d36a){return _0x36d36a[_0x48ff('0xf4')](_0x40abda[_0x48ff('0x5a')][_0x48ff('0x6e')],_[_0x48ff('0xf5')](_0x40abda[_0x48ff('0x5a')],[_0x48ff('0x6e'),'id'])||{});}})[_0x48ff('0x20')](respondWithResult(_0x49112b,null))[_0x48ff('0x54')](handleError(_0x49112b,null));};exports['getInteractions']=function(_0x15c6c3,_0x331e91,_0x295cfa){var _0x2b2c16={'raw':![],'where':{}};var _0x4fe01a={};var _0x1f9680={'count':0x0,'rows':[]};return db['ChatWebsite']['findOne']({'where':{'id':_0x15c6c3[_0x48ff('0x56')]['id']}})[_0x48ff('0x20')](handleEntityNotFound(_0x331e91,null))[_0x48ff('0x20')](function(_0x199e51){if(_0x199e51){_0x4fe01a[_0x48ff('0x43')]=_['keys'](db[_0x48ff('0xb7')][_0x48ff('0x3f')]);_0x4fe01a[_0x48ff('0x44')]=_[_0x48ff('0x57')](_0x15c6c3[_0x48ff('0x44')]);_0x4fe01a[_0x48ff('0x4c')]=_[_0x48ff('0x45')](_0x4fe01a[_0x48ff('0x43')],_0x4fe01a['query']);_0x2b2c16[_0x48ff('0x46')]=_[_0x48ff('0x45')](_0x4fe01a['model'],qs[_0x48ff('0x47')](_0x15c6c3['query'][_0x48ff('0x47')]));_0x2b2c16[_0x48ff('0x46')]=_0x2b2c16[_0x48ff('0x46')][_0x48ff('0x48')]?_0x2b2c16[_0x48ff('0x46')]:_0x4fe01a['model'];if(!_0x15c6c3['query'][_0x48ff('0x49')](_0x48ff('0x4a'))){_0x2b2c16[_0x48ff('0x2c')]=qs['limit'](_0x15c6c3[_0x48ff('0x44')][_0x48ff('0x2c')]);_0x2b2c16[_0x48ff('0x2e')]=qs[_0x48ff('0x2e')](_0x15c6c3[_0x48ff('0x44')]['offset']);}_0x2b2c16[_0x48ff('0x69')]=qs['sort'](_0x15c6c3[_0x48ff('0x44')]['sort']);_0x2b2c16[_0x48ff('0x4e')]=qs[_0x48ff('0x4c')](_[_0x48ff('0x6a')](_0x15c6c3[_0x48ff('0x44')],_0x4fe01a[_0x48ff('0x4c')]));_0x2b2c16[_0x48ff('0x4e')][_0x48ff('0x6b')]=_0x199e51['id'];if(_0x15c6c3[_0x48ff('0x44')][_0x48ff('0x4d')]){_0x2b2c16['where']=_['merge'](_0x2b2c16[_0x48ff('0x4e')],{'$or':_[_0x48ff('0x3d')](_0x2b2c16[_0x48ff('0x46')],function(_0x37c531){var _0x59fae9={};_0x59fae9[_0x37c531]={'$like':'%'+_0x15c6c3[_0x48ff('0x44')][_0x48ff('0x4d')]+'%'};return _0x59fae9;})});}_0x2b2c16=_[_0x48ff('0x50')]({},_0x2b2c16,_0x15c6c3[_0x48ff('0x58')]);return db[_0x48ff('0xb7')]['count']({'where':_0x2b2c16[_0x48ff('0x4e')]})['then'](function(_0x34b86b){_0x1f9680[_0x48ff('0x2d')]=_0x34b86b;if(_0x15c6c3['query'][_0x48ff('0x51')]){_0x2b2c16[_0x48ff('0x52')]=[{'model':db[_0x48ff('0x90')],'as':_0x48ff('0xf6'),'required':![]},{'model':db['User'],'as':'Owner','attributes':[_0x48ff('0x39'),'fullname',_0x48ff('0xf7')],'required':![]},{'model':db[_0x48ff('0xf8')],'as':_0x48ff('0xf9'),'attributes':['id','name','color'],'where':_0x15c6c3[_0x48ff('0x44')][_0x48ff('0xfa')]?{'id':_0x15c6c3[_0x48ff('0x44')][_0x48ff('0xfa')]}:undefined,'required':_0x15c6c3['query']['tag']?!![]:![]}];}return db[_0x48ff('0xb7')][_0x48ff('0x53')](_0x2b2c16);})[_0x48ff('0x20')](function(_0x28fefc){_0x1f9680[_0x48ff('0x6c')]=_0x28fefc;return _0x1f9680;});}})['then'](respondWithFilteredResult(_0x331e91,_0x2b2c16))[_0x48ff('0x54')](handleError(_0x331e91,null));};function iftimePromise(_0x1bba02,_0x4506a9){return respondWithRpcPromise('Command',_0x48ff('0xfb'),{'command':_0x4506a9[_0x48ff('0xfc')]?util[_0x48ff('0xb0')](_0x48ff('0xfd'),_0x1bba02['interval'],_0x4506a9[_0x48ff('0xfc')]):util[_0x48ff('0xb0')](_0x48ff('0xfe'),_0x1bba02['interval'])},client9002)[_0x48ff('0x20')](function(_0x583eb3){var _0x5dbf3d=_0x583eb3&&_0x583eb3[_0x48ff('0xff')](_0x48ff('0x100'))>=0x0?!![]:![];logger[_0x48ff('0x21')](_0x48ff('0x101'),_0x4506a9['id'],_0x1bba02['id'],_0x1bba02[_0x48ff('0x102')],_0x5dbf3d?_0x48ff('0x103'):_0x48ff('0x104'),_0x4506a9[_0x48ff('0xfc')]?_0x4506a9[_0x48ff('0xfc')]:'No\x20timezone');return _0x5dbf3d;})[_0x48ff('0x54')](function(_0x3ff282){logger[_0x48ff('0x25')](_0x48ff('0x101'),_0x4506a9['id'],_0x1bba02['id'],_0x1bba02[_0x48ff('0x102')],util[_0x48ff('0x105')](_0x3ff282,{'showHidden':![],'depth':null}),_0x4506a9[_0x48ff('0xfc')]?_0x4506a9['timezone']:_0x48ff('0x106'));return![];});}exports['getSnippet']=function(_0x129814,_0x517e09,_0x384444){var _0x519143=0x0;var _0x2a851b=0x0;var _0x30e5f7=![];var _0x21f996;var _0x12ceae;return db[_0x48ff('0x3e')][_0x48ff('0x59')]({'where':{'id':_0x129814[_0x48ff('0x56')]['id']},'include':[{'model':db[_0x48ff('0x107')],'as':'Interval','include':[{'model':db[_0x48ff('0x107')],'as':_0x48ff('0x108'),'attributes':['id',_0x48ff('0x102')],'raw':!![]}]}]})[_0x48ff('0x20')](handleEntityNotFound(_0x517e09,null))[_0x48ff('0x20')](function(_0x260542){if(_0x260542){_0x21f996=_0x260542;return _0x260542[_0x48ff('0x109')]({'raw':!![]});}})[_0x48ff('0x20')](function(_0x28fdb0){if(_0x21f996){if(_0x28fdb0){_0x12ceae=_0x28fdb0;}}return require(_0x48ff('0x15'))[_0x48ff('0x80')]();})['then'](function(_0x487a20){if(_0x487a20){_0x2a851b=_0x487a20[_0x48ff('0x10a')];_0x30e5f7=_0x487a20[_0x48ff('0x81')];}})[_0x48ff('0x20')](function(){return db[_0x48ff('0xb7')][_0x48ff('0x2d')]({'where':{'closed':![]}});})[_0x48ff('0x20')](function(_0x3f6a21){_0x519143=_0x3f6a21;if(_0x2a851b&&_0x3f6a21>_0x2a851b){return db[_0x48ff('0x10b')]['findOne']({'where':{'id':0x1}})[_0x48ff('0x20')](function(_0x5a0e1c){if(_0x5a0e1c){_0x5a0e1c[_0x48ff('0x10c')](_0x48ff('0x10d'));}});}})[_0x48ff('0x20')](function(){if(_0x21f996['Interval']&&_0x21f996[_0x48ff('0x107')][_0x48ff('0x108')]){var _0x3ba41b=[];for(var _0x58b2d0=0x0;_0x58b2d0<_0x21f996['Interval'][_0x48ff('0x108')][_0x48ff('0x48')];_0x58b2d0++){var _0x2b73b5=_0x21f996[_0x48ff('0x107')]['Intervals'][_0x58b2d0]['get']({'plain':!![]});_0x3ba41b[_0x48ff('0xbe')](iftimePromise(_0x2b73b5,_0x21f996));}return BPromise[_0x48ff('0x10e')](_0x3ba41b)[_0x48ff('0x20')](function(_0x436a48){return _[_0x48ff('0x10f')](_0x436a48);});}else{return!![];}})['then'](function(_0x3f3fd8){var _0x32c106=fs['readFileSync'](path['join'](config[_0x48ff('0x7e')],_0x48ff('0x110')),_0x48ff('0xd0'));var _0x34e216={'remote':_0x21f996[_0x48ff('0x111')],'query':querystring[_0x48ff('0x24')](_['merge'](_0x21f996[_0x48ff('0x5b')]({'plain':!![]}),{'customerIp':_0x129814['headers'][_0x48ff('0xaa')]||_0x129814[_0x48ff('0x8d')][_0x48ff('0x112')]||_0x129814[_0x48ff('0x113')]['remoteAddress']||_0x129814['ip'],'referer':_0x129814[_0x48ff('0x8d')][_0x48ff('0x114')],'openedInteractions':_0x519143,'maxInteractions':_0x2a851b,'virtual':_0x30e5f7[_0x48ff('0x10a')],'online':_0x3f3fd8,'custom':_0x30e5f7}))[_0x48ff('0x115')](/'/g,'\x5c\x27')};_0x517e09[_0x48ff('0x3a')](ejs[_0x48ff('0x116')](Mustache[_0x48ff('0x116')](_0x32c106,_0x34e216),{'proactiveActions':_0x12ceae,'alignment':_0x21f996[_0x48ff('0x117')],'verticalAlignment':_0x21f996['verticalAlignment'],'div_color':_0x21f996[_0x48ff('0x118')],'text_color':_0x21f996[_0x48ff('0x119')],'button_color':_0x21f996['color_button'],'background_color':_0x21f996[_0x48ff('0x11a')]}));})[_0x48ff('0x54')](handleError(_0x517e09,null));};exports[_0x48ff('0x11b')]=function(_0x4d11aa,_0x2b256e,_0x5f278f){return db[_0x48ff('0x3e')][_0x48ff('0x72')]({'where':{'id':_0x4d11aa[_0x48ff('0x56')]['id']}})[_0x48ff('0x20')](handleEntityNotFound(_0x2b256e,null))[_0x48ff('0x20')](function(_0x34b52a){if(_0x34b52a){return db[_0x48ff('0xd9')][_0x48ff('0xda')](function(_0x110f56){return db[_0x48ff('0x9f')]['destroy']({'where':{'ChatWebsiteId':_0x4d11aa[_0x48ff('0x56')]['id']},'transaction':_0x110f56})[_0x48ff('0x20')](function(_0x308215){var _0x1d5f2a=_['map'](_0x4d11aa[_0x48ff('0x5a')],function(_0x3c690f){_0x3c690f[_0x48ff('0x6b')]=_0x4d11aa['params']['id'];return _0x3c690f;});return db['ChatApplication']['bulkCreate'](_0x1d5f2a,{'transaction':_0x110f56});});})[_0x48ff('0x20')](function(){return db[_0x48ff('0x9f')][_0x48ff('0x11c')]({'where':{'ChatWebsiteId':_0x4d11aa['params']['id']},'order':'priority'});});}})[_0x48ff('0x20')](respondWithResult(_0x2b256e,null))[_0x48ff('0x54')](handleError(_0x2b256e,null));};exports['getApplications']=function(_0x29df39,_0x790df6,_0x4407cc){var _0x2aa85b={};var _0x304421={};var _0x4362ef;var _0x15b11f;return db[_0x48ff('0x3e')][_0x48ff('0x72')]({'where':{'id':_0x29df39[_0x48ff('0x56')]['id']}})[_0x48ff('0x20')](handleEntityNotFound(_0x790df6,null))[_0x48ff('0x20')](function(_0x124457){if(_0x124457){_0x4362ef=_0x124457;_0x304421['model']=_[_0x48ff('0x57')](db[_0x48ff('0x9f')][_0x48ff('0x3f')]);_0x304421[_0x48ff('0x44')]=_[_0x48ff('0x57')](_0x29df39[_0x48ff('0x44')]);_0x304421['filters']=_[_0x48ff('0x45')](_0x304421[_0x48ff('0x43')],_0x304421[_0x48ff('0x44')]);_0x2aa85b[_0x48ff('0x46')]=_[_0x48ff('0x45')](_0x304421[_0x48ff('0x43')],qs[_0x48ff('0x47')](_0x29df39[_0x48ff('0x44')][_0x48ff('0x47')]));_0x2aa85b[_0x48ff('0x46')]=_0x2aa85b[_0x48ff('0x46')]['length']?_0x2aa85b['attributes']:_0x304421[_0x48ff('0x43')];_0x2aa85b['order']=qs[_0x48ff('0x4b')](_0x29df39['query'][_0x48ff('0x4b')]);_0x2aa85b[_0x48ff('0x4e')]=qs[_0x48ff('0x4c')](_[_0x48ff('0x6a')](_0x29df39['query'],_0x304421['filters']));if(_0x29df39['query'][_0x48ff('0x4d')]){_0x2aa85b['where']=_['merge'](_0x2aa85b[_0x48ff('0x4e')],{'$or':_[_0x48ff('0x3d')](_0x2aa85b[_0x48ff('0x46')],function(_0x2236b6){var _0x2185c8={};_0x2185c8[_0x2236b6]={'$like':'%'+_0x29df39[_0x48ff('0x44')][_0x48ff('0x4d')]+'%'};return _0x2185c8;})});}_0x2aa85b=_[_0x48ff('0x50')]({},_0x2aa85b,_0x29df39[_0x48ff('0x58')]);return _0x4362ef[_0x48ff('0x11d')](_0x2aa85b);}})['then'](function(_0x1c652d){if(_0x1c652d){_0x15b11f=_0x1c652d['length'];if(!_0x29df39[_0x48ff('0x44')][_0x48ff('0x49')]('nolimit')){_0x2aa85b[_0x48ff('0x2c')]=qs[_0x48ff('0x2c')](_0x29df39['query'][_0x48ff('0x2c')]);_0x2aa85b[_0x48ff('0x2e')]=qs[_0x48ff('0x2e')](_0x29df39[_0x48ff('0x44')][_0x48ff('0x2e')]);}return _0x4362ef[_0x48ff('0x11d')](_0x2aa85b);}})['then'](function(_0xa1430e){if(_0xa1430e){return _0xa1430e?{'count':_0x15b11f,'rows':_0xa1430e}:null;}})[_0x48ff('0x20')](respondWithResult(_0x790df6,null))[_0x48ff('0x54')](handleError(_0x790df6,null));};exports['addProactiveActions']=function(_0x3ea54f,_0x367287,_0x5e67ed){return db[_0x48ff('0x11e')]['find']({'where':{'id':_0x3ea54f[_0x48ff('0x56')]['id']}})[_0x48ff('0x20')](handleEntityNotFound(_0x367287,null))['then'](function(_0x3bd513){if(_0x3bd513){return _0x3bd513[_0x48ff('0x11f')](_0x3ea54f[_0x48ff('0x5a')][_0x48ff('0x6e')],_[_0x48ff('0xf5')](_0x3ea54f[_0x48ff('0x5a')],[_0x48ff('0x6e'),'id'])||{});}})['then'](respondWithResult(_0x367287,null))[_0x48ff('0x54')](handleError(_0x367287,null));};exports[_0x48ff('0x109')]=function(_0x2a3a11,_0x3c4c1d,_0xcb261d){var _0x3418d2={};var _0xc49d4e={};var _0x1b4245;var _0x11732b;return db[_0x48ff('0x3e')][_0x48ff('0x72')]({'where':{'id':_0x2a3a11[_0x48ff('0x56')]['id']}})[_0x48ff('0x20')](handleEntityNotFound(_0x3c4c1d,null))[_0x48ff('0x20')](function(_0xf6ba79){if(_0xf6ba79){_0x1b4245=_0xf6ba79;_0xc49d4e[_0x48ff('0x43')]=_[_0x48ff('0x57')](db[_0x48ff('0x120')]['rawAttributes']);_0xc49d4e[_0x48ff('0x44')]=_[_0x48ff('0x57')](_0x2a3a11['query']);_0xc49d4e[_0x48ff('0x4c')]=_[_0x48ff('0x45')](_0xc49d4e[_0x48ff('0x43')],_0xc49d4e['query']);_0x3418d2[_0x48ff('0x46')]=_[_0x48ff('0x45')](_0xc49d4e[_0x48ff('0x43')],qs[_0x48ff('0x47')](_0x2a3a11[_0x48ff('0x44')]['fields']));_0x3418d2['attributes']=_0x3418d2[_0x48ff('0x46')][_0x48ff('0x48')]?_0x3418d2[_0x48ff('0x46')]:_0xc49d4e[_0x48ff('0x43')];_0x3418d2['order']=qs['sort'](_0x2a3a11[_0x48ff('0x44')]['sort']);_0x3418d2['where']=qs[_0x48ff('0x4c')](_[_0x48ff('0x6a')](_0x2a3a11['query'],_0xc49d4e[_0x48ff('0x4c')]));if(_0x2a3a11[_0x48ff('0x44')][_0x48ff('0x4d')]){_0x3418d2[_0x48ff('0x4e')]=_[_0x48ff('0x50')](_0x3418d2[_0x48ff('0x4e')],{'$or':_[_0x48ff('0x3d')](_0x3418d2[_0x48ff('0x46')],function(_0x512ff2){var _0x42d617={};_0x42d617[_0x512ff2]={'$like':'%'+_0x2a3a11[_0x48ff('0x44')][_0x48ff('0x4d')]+'%'};return _0x42d617;})});}_0x3418d2=_[_0x48ff('0x50')]({},_0x3418d2,_0x2a3a11[_0x48ff('0x58')]);return _0x1b4245[_0x48ff('0x109')](_0x3418d2);}})[_0x48ff('0x20')](function(_0x2794a0){if(_0x2794a0){_0x11732b=_0x2794a0[_0x48ff('0x48')];if(!_0x2a3a11[_0x48ff('0x44')][_0x48ff('0x49')](_0x48ff('0x4a'))){_0x3418d2[_0x48ff('0x2c')]=qs['limit'](_0x2a3a11[_0x48ff('0x44')]['limit']);_0x3418d2[_0x48ff('0x2e')]=qs['offset'](_0x2a3a11[_0x48ff('0x44')][_0x48ff('0x2e')]);}return _0x1b4245[_0x48ff('0x109')](_0x3418d2);}})[_0x48ff('0x20')](function(_0x497099){if(_0x497099){return _0x497099?{'count':_0x11732b,'rows':_0x497099}:null;}})['then'](respondWithResult(_0x3c4c1d,null))[_0x48ff('0x54')](handleError(_0x3c4c1d,null));};exports[_0x48ff('0x121')]=function(_0x5d2e3a,_0x4903c7,_0x1abbf9){var _0x4cd47c=_0x5d2e3a[_0x48ff('0x44')][_0x48ff('0x122')]===_0x48ff('0x123')?'offlineForm':_0x48ff('0x124');return db[_0x48ff('0x3e')][_0x48ff('0x59')]({'attributes':['id',_0x4cd47c],'where':{'id':_0x5d2e3a[_0x48ff('0x56')]['id']}})[_0x48ff('0x20')](handleEntityNotFound(_0x4903c7,null))[_0x48ff('0x20')](function(_0x5b222a){if(_0x5b222a){var _0x1cd3ff=_0x5b222a[_0x4cd47c];var _0x2c93d7=_0x1cd3ff&&_0x1cd3ff[_0x48ff('0x125')]?_0x1cd3ff[_0x48ff('0x125')]:[];_0x4903c7['send']({'fromKey':_['isNil'](_0x1cd3ff[_0x48ff('0x126')])?undefined:_0x1cd3ff['fromKey'],'count':_0x2c93d7['length'],'rows':_0x2c93d7});}})[_0x48ff('0x54')](handleError(_0x4903c7,null));};exports['getOfflineMessages']=function(_0x37aed0,_0x37eec1,_0x1ebcfa){var _0x6bdd26={'raw':![],'where':{}};var _0x1e0b4f={};var _0xdab8d7={'count':0x0,'rows':[]};return db[_0x48ff('0x3e')][_0x48ff('0x72')]({'where':{'id':_0x37aed0[_0x48ff('0x56')]['id']}})[_0x48ff('0x20')](handleEntityNotFound(_0x37eec1,null))[_0x48ff('0x20')](function(_0x92dc58){if(_0x92dc58){_0x1e0b4f['model']=_[_0x48ff('0x57')](db[_0x48ff('0xd3')]['rawAttributes']);_0x1e0b4f['query']=_[_0x48ff('0x57')](_0x37aed0[_0x48ff('0x44')]);_0x1e0b4f['filters']=_['intersection'](_0x1e0b4f[_0x48ff('0x43')],_0x1e0b4f['query']);_0x6bdd26[_0x48ff('0x46')]=_[_0x48ff('0x45')](_0x1e0b4f['model'],qs[_0x48ff('0x47')](_0x37aed0[_0x48ff('0x44')][_0x48ff('0x47')]));_0x6bdd26[_0x48ff('0x46')]=_0x6bdd26[_0x48ff('0x46')][_0x48ff('0x48')]?_0x6bdd26[_0x48ff('0x46')]:_0x1e0b4f['model'];if(!_0x37aed0[_0x48ff('0x44')][_0x48ff('0x49')](_0x48ff('0x4a'))){_0x6bdd26[_0x48ff('0x2c')]=qs[_0x48ff('0x2c')](_0x37aed0[_0x48ff('0x44')][_0x48ff('0x2c')]);_0x6bdd26['offset']=qs['offset'](_0x37aed0[_0x48ff('0x44')][_0x48ff('0x2e')]);}_0x6bdd26[_0x48ff('0x69')]=qs['sort'](_0x37aed0[_0x48ff('0x44')][_0x48ff('0x4b')]);_0x6bdd26[_0x48ff('0x4e')]=qs['filters'](_[_0x48ff('0x6a')](_0x37aed0[_0x48ff('0x44')],_0x1e0b4f['filters']));_0x6bdd26[_0x48ff('0x4e')]['ChatWebsiteId']=_0x92dc58['id'];if(_0x37aed0['query'][_0x48ff('0x4d')]){_0x6bdd26[_0x48ff('0x4e')]=_[_0x48ff('0x50')](_0x6bdd26['where'],{'$or':_['map'](_0x6bdd26[_0x48ff('0x46')],function(_0x59ce7b){var _0x34a126={};_0x34a126[_0x59ce7b]={'$like':'%'+_0x37aed0[_0x48ff('0x44')]['filter']+'%'};return _0x34a126;})});}_0x6bdd26=_[_0x48ff('0x50')]({},_0x6bdd26,_0x37aed0[_0x48ff('0x58')]);return db[_0x48ff('0xd3')][_0x48ff('0x2d')]({'where':_0x6bdd26[_0x48ff('0x4e')]})[_0x48ff('0x20')](function(_0x3cfb32){_0xdab8d7[_0x48ff('0x2d')]=_0x3cfb32;if(_0x37aed0[_0x48ff('0x44')][_0x48ff('0x51')]){_0x6bdd26[_0x48ff('0x52')]=[{'all':!![]}];}else{_0x6bdd26[_0x48ff('0x52')]=[{'model':db[_0x48ff('0x90')],'as':_0x48ff('0xf6'),'required':![]},{'model':db['Attachment'],'as':_0x48ff('0x127'),'required':![]}];}return db[_0x48ff('0xd3')]['findAll'](_0x6bdd26);})[_0x48ff('0x20')](function(_0x27be06){_0xdab8d7[_0x48ff('0x6c')]=_0x27be06;return _0xdab8d7;});}})[_0x48ff('0x20')](respondWithFilteredResult(_0x37eec1,_0x6bdd26))[_0x48ff('0x54')](handleError(_0x37eec1,null));};exports[_0x48ff('0x128')]=function(_0x422369,_0x328e9f,_0x3a1e7c){return db['ChatWebsite']['find']({'where':{'id':_0x422369[_0x48ff('0x56')]['id']}})[_0x48ff('0x20')](handleEntityNotFound(_0x328e9f,null))['then'](function(_0x4dcf4c){if(_0x4dcf4c){return _0x4dcf4c['addAgents'](_0x422369[_0x48ff('0x5a')][_0x48ff('0x6e')],_[_0x48ff('0xf5')](_0x422369['body'],[_0x48ff('0x6e'),'id'])||{})['spread'](function(_0x2b0ac1){for(var _0x572804=0x0;_0x572804<_0x422369[_0x48ff('0x5a')][_0x48ff('0x6e')][_0x48ff('0x48')];_0x572804+=0x1){socket[_0x48ff('0x129')](_0x48ff('0x12a'),{'UserId':Number(_0x422369[_0x48ff('0x5a')][_0x48ff('0x6e')][_0x572804]),'ChatWebsiteId':Number(_0x422369[_0x48ff('0x56')]['id'])});}return _0x2b0ac1;});}})[_0x48ff('0x20')](respondWithResult(_0x328e9f,null))[_0x48ff('0x54')](handleError(_0x328e9f,null));};exports[_0x48ff('0x12b')]=function(_0xded482,_0x36d245,_0x438726){return db['ChatWebsite'][_0x48ff('0x59')]({'where':{'id':_0xded482['params']['id']}})[_0x48ff('0x20')](handleEntityNotFound(_0x36d245,null))[_0x48ff('0x20')](function(_0x1c13f2){if(_0x1c13f2){return _0x1c13f2[_0x48ff('0x12b')](_0xded482['query'][_0x48ff('0x6e')])[_0x48ff('0x20')](function(){if(_[_0x48ff('0x12c')](_0xded482['query'][_0x48ff('0x6e')])){for(var _0xb0f1e5=0x0;_0xb0f1e5<_0xded482['query'][_0x48ff('0x6e')][_0x48ff('0x48')];_0xb0f1e5+=0x1){socket['emit']('userChatWebsite:remove',{'UserId':Number(_0xded482['query']['ids'][_0xb0f1e5]),'ChatWebsiteId':Number(_0xded482['params']['id'])});}}else{socket[_0x48ff('0x129')](_0x48ff('0x12d'),{'UserId':Number(_0xded482['query']['ids']),'ChatWebsiteId':Number(_0xded482[_0x48ff('0x56')]['id'])});}});}})[_0x48ff('0x20')](respondWithStatusCode(_0x36d245,null))[_0x48ff('0x54')](handleError(_0x36d245,null));};exports[_0x48ff('0x12e')]=function(_0xa77e66,_0x5c954b,_0x53ed86){var _0x471e2c={};var _0x254699={};var _0x5011ac;var _0x5b6275;return db[_0x48ff('0x3e')][_0x48ff('0x72')]({'where':{'id':_0xa77e66['params']['id']}})[_0x48ff('0x20')](handleEntityNotFound(_0x5c954b,null))['then'](function(_0x885e80){if(_0x885e80){_0x5011ac=_0x885e80;_0x254699[_0x48ff('0x43')]=_[_0x48ff('0x57')](db['User'][_0x48ff('0x3f')]);_0x254699[_0x48ff('0x44')]=_[_0x48ff('0x57')](_0xa77e66[_0x48ff('0x44')]);_0x254699['filters']=_[_0x48ff('0x45')](_0x254699['model'],_0x254699['query']);_0x471e2c[_0x48ff('0x46')]=_[_0x48ff('0x45')](_0x254699[_0x48ff('0x43')],qs['fields'](_0xa77e66['query']['fields']));_0x471e2c[_0x48ff('0x46')]=_0x471e2c[_0x48ff('0x46')][_0x48ff('0x48')]?_0x471e2c[_0x48ff('0x46')]:_0x254699[_0x48ff('0x43')];_0x471e2c[_0x48ff('0x69')]=qs[_0x48ff('0x4b')](_0xa77e66[_0x48ff('0x44')][_0x48ff('0x4b')]);_0x471e2c[_0x48ff('0x4e')]=qs[_0x48ff('0x4c')](_[_0x48ff('0x6a')](_0xa77e66[_0x48ff('0x44')],_0x254699['filters']));if(_0xa77e66[_0x48ff('0x44')][_0x48ff('0x4d')]){_0x471e2c[_0x48ff('0x4e')]=_[_0x48ff('0x50')](_0x471e2c[_0x48ff('0x4e')],{'$or':_[_0x48ff('0x3d')](_0x471e2c[_0x48ff('0x46')],function(_0x505dd7){var _0x1aa262={};_0x1aa262[_0x505dd7]={'$like':'%'+_0xa77e66['query']['filter']+'%'};return _0x1aa262;})});}_0x471e2c=_[_0x48ff('0x50')]({},_0x471e2c,_0xa77e66[_0x48ff('0x58')]);return _0x5011ac[_0x48ff('0x12e')](_0x471e2c);}})[_0x48ff('0x20')](function(_0x441c10){if(_0x441c10){_0x5b6275=_0x441c10['length'];if(!_0xa77e66['query'][_0x48ff('0x49')]('nolimit')){_0x471e2c[_0x48ff('0x2c')]=qs[_0x48ff('0x2c')](_0xa77e66['query'][_0x48ff('0x2c')]);_0x471e2c[_0x48ff('0x2e')]=qs[_0x48ff('0x2e')](_0xa77e66['query'][_0x48ff('0x2e')]);}return _0x5011ac[_0x48ff('0x12e')](_0x471e2c);}})[_0x48ff('0x20')](function(_0x5cbcd0){if(_0x5cbcd0){return _0x5cbcd0?{'count':_0x5b6275,'rows':_0x5cbcd0}:null;}})[_0x48ff('0x20')](respondWithResult(_0x5c954b,null))[_0x48ff('0x54')](handleError(_0x5c954b,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4f99=['../../mysqldb','setMaxListeners','save','update','emit','hasOwnProperty','hook','events'];(function(_0x1cb6b2,_0x21052a){var _0x5492ad=function(_0x5a533c){while(--_0x5a533c){_0x1cb6b2['push'](_0x1cb6b2['shift']());}};_0x5492ad(++_0x21052a);}(_0x4f99,0x157));var _0x94f9=function(_0x5cde93,_0x188648){_0x5cde93=_0x5cde93-0x0;var _0x1ba673=_0x4f99[_0x5cde93];return _0x1ba673;};'use strict';var EventEmitter=require(_0x94f9('0x0'));var ChatWebsite=require(_0x94f9('0x1'))['db']['ChatWebsite'];var ChatWebsiteEvents=new EventEmitter();ChatWebsiteEvents[_0x94f9('0x2')](0x0);var events={'afterCreate':_0x94f9('0x3'),'afterUpdate':_0x94f9('0x4'),'afterDestroy':'remove'};function emitEvent(_0x15ff7c){return function(_0x879bc2,_0x560634,_0x1b4831){ChatWebsiteEvents[_0x94f9('0x5')](_0x15ff7c+':'+_0x879bc2['id'],_0x879bc2);ChatWebsiteEvents[_0x94f9('0x5')](_0x15ff7c,_0x879bc2);_0x1b4831(null);};}for(var e in events){if(events[_0x94f9('0x6')](e)){var event=events[e];ChatWebsite[_0x94f9('0x7')](e,emitEvent(event));}}module['exports']=ChatWebsiteEvents;
\ No newline at end of file
+var _0xdf70=['ChatWebsite','save','update','emit','hasOwnProperty','hook','events','../../mysqldb'];(function(_0x5d624d,_0xde7b4){var _0x110fb0=function(_0x208776){while(--_0x208776){_0x5d624d['push'](_0x5d624d['shift']());}};_0x110fb0(++_0xde7b4);}(_0xdf70,0x86));var _0x0df7=function(_0x5058e5,_0x8fa819){_0x5058e5=_0x5058e5-0x0;var _0xd16bd=_0xdf70[_0x5058e5];return _0xd16bd;};'use strict';var EventEmitter=require(_0x0df7('0x0'));var ChatWebsite=require(_0x0df7('0x1'))['db'][_0x0df7('0x2')];var ChatWebsiteEvents=new EventEmitter();ChatWebsiteEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x0df7('0x3'),'afterUpdate':_0x0df7('0x4'),'afterDestroy':'remove'};function emitEvent(_0x2b074b){return function(_0x4ae128,_0x278b96,_0x2f3c43){ChatWebsiteEvents['emit'](_0x2b074b+':'+_0x4ae128['id'],_0x4ae128);ChatWebsiteEvents[_0x0df7('0x5')](_0x2b074b,_0x4ae128);_0x2f3c43(null);};}for(var e in events){if(events[_0x0df7('0x6')](e)){var event=events[e];ChatWebsite[_0x0df7('0x7')](e,emitEvent(event));}}module['exports']=ChatWebsiteEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x87c2=['api','moment','bluebird','path','rimraf','../../config/environment','./chatWebsite.attributes','exports','define','ChatWebsite','chat_websites','lodash','util','../../config/logger'];(function(_0x616290,_0x280b7f){var _0x453879=function(_0x27bda7){while(--_0x27bda7){_0x616290['push'](_0x616290['shift']());}};_0x453879(++_0x280b7f);}(_0x87c2,0x123));var _0x287c=function(_0x232dd2,_0x3f8611){_0x232dd2=_0x232dd2-0x0;var _0x2991d4=_0x87c2[_0x232dd2];return _0x2991d4;};'use strict';var _=require(_0x287c('0x0'));var util=require(_0x287c('0x1'));var logger=require(_0x287c('0x2'))(_0x287c('0x3'));var moment=require(_0x287c('0x4'));var BPromise=require(_0x287c('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x287c('0x6'));var rimraf=require(_0x287c('0x7'));var config=require(_0x287c('0x8'));var attributes=require(_0x287c('0x9'));module[_0x287c('0xa')]=function(_0x2f0c11,_0x14fe7d){return _0x2f0c11[_0x287c('0xb')](_0x287c('0xc'),attributes,{'tableName':_0x287c('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x6aa2=['rimraf','../../config/environment','./chatWebsite.attributes','exports','define','ChatWebsite','lodash','util','api','moment','request-promise'];(function(_0x18fb16,_0x45edbc){var _0x147b0d=function(_0x5b1b00){while(--_0x5b1b00){_0x18fb16['push'](_0x18fb16['shift']());}};_0x147b0d(++_0x45edbc);}(_0x6aa2,0xe2));var _0x26aa=function(_0x4b6804,_0x301b24){_0x4b6804=_0x4b6804-0x0;var _0x11b4f1=_0x6aa2[_0x4b6804];return _0x11b4f1;};'use strict';var _=require(_0x26aa('0x0'));var util=require(_0x26aa('0x1'));var logger=require('../../config/logger')(_0x26aa('0x2'));var moment=require(_0x26aa('0x3'));var BPromise=require('bluebird');var rp=require(_0x26aa('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0x26aa('0x5'));var config=require(_0x26aa('0x6'));var attributes=require(_0x26aa('0x7'));module[_0x26aa('0x8')]=function(_0x17f377,_0x2094a7){return _0x17f377[_0x26aa('0x9')](_0x26aa('0xa'),attributes,{'tableName':'chat_websites','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1a5d=['stringify','error','code','message','result','catch','util','moment','bluebird','ioredis','../../mysqldb','rpc','../../config/environment','client','http','redis','defaults','localhost','socket.io-emitter','./chatWebsite.socket','register','ChatWebsite,\x20%s,\x20%s','request\x20sent','debug'];(function(_0xbca1b1,_0x33f0ce){var _0x4e1686=function(_0x58a80c){while(--_0x58a80c){_0xbca1b1['push'](_0xbca1b1['shift']());}};_0x4e1686(++_0x33f0ce);}(_0x1a5d,0xc6));var _0xd1a5=function(_0x1d1475,_0x56303){_0x1d1475=_0x1d1475-0x0;var _0x11c3a2=_0x1a5d[_0x1d1475];return _0x11c3a2;};'use strict';var _=require('lodash');var util=require(_0xd1a5('0x0'));var moment=require(_0xd1a5('0x1'));var BPromise=require(_0xd1a5('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xd1a5('0x3'));var db=require(_0xd1a5('0x4'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0xd1a5('0x5'));var config=require(_0xd1a5('0x6'));var jayson=require('jayson/promise');var client=jayson[_0xd1a5('0x7')][_0xd1a5('0x8')]({'port':0x232a});config[_0xd1a5('0x9')]=_[_0xd1a5('0xa')](config[_0xd1a5('0x9')],{'host':_0xd1a5('0xb'),'port':0x18eb});var socket=require(_0xd1a5('0xc'))(new Redis(config['redis']));require(_0xd1a5('0xd'))[_0xd1a5('0xe')](socket);function respondWithRpcPromise(_0x2c05ac,_0x2deefe,_0xa9b4b2){return new BPromise(function(_0xdc562a,_0x85f247){return client['request'](_0x2c05ac,_0xa9b4b2)['then'](function(_0x405c19){logger['info'](_0xd1a5('0xf'),_0x2deefe,_0xd1a5('0x10'));logger[_0xd1a5('0x11')]('ChatWebsite,\x20%s,\x20%s,\x20%s',_0x2deefe,_0xd1a5('0x10'),JSON[_0xd1a5('0x12')](_0x405c19));if(_0x405c19['error']){if(_0x405c19[_0xd1a5('0x13')][_0xd1a5('0x14')]===0x1f4){logger[_0xd1a5('0x13')](_0xd1a5('0xf'),_0x2deefe,_0x405c19['error'][_0xd1a5('0x15')]);return _0x85f247(_0x405c19[_0xd1a5('0x13')]['message']);}logger[_0xd1a5('0x13')](_0xd1a5('0xf'),_0x2deefe,_0x405c19[_0xd1a5('0x13')][_0xd1a5('0x15')]);return _0xdc562a(_0x405c19[_0xd1a5('0x13')][_0xd1a5('0x15')]);}else{logger['info'](_0xd1a5('0xf'),_0x2deefe,_0xd1a5('0x10'));_0xdc562a(_0x405c19[_0xd1a5('0x16')]['message']);}})[_0xd1a5('0x17')](function(_0x48d1fc){logger[_0xd1a5('0x13')](_0xd1a5('0xf'),_0x2deefe,_0x48d1fc);_0x85f247(_0x48d1fc);});});}
\ No newline at end of file
+var _0xebff=['ioredis','../../config/utils','rpc','jayson/promise','client','http','defaults','redis','socket.io-emitter','./chatWebsite.socket','request','info','ChatWebsite,\x20%s,\x20%s','request\x20sent','debug','ChatWebsite,\x20%s,\x20%s,\x20%s','stringify','error','message','catch','util','randomstring'];(function(_0x2cacef,_0xba1573){var _0x289ba6=function(_0x4ac8b9){while(--_0x4ac8b9){_0x2cacef['push'](_0x2cacef['shift']());}};_0x289ba6(++_0xba1573);}(_0xebff,0x106));var _0xfebf=function(_0x1deb03,_0xd05ad8){_0x1deb03=_0x1deb03-0x0;var _0x189fe7=_0xebff[_0x1deb03];return _0x189fe7;};'use strict';var _=require('lodash');var util=require(_0xfebf('0x0'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0xfebf('0x1'));var fs=require('fs');var Redis=require(_0xfebf('0x2'));var db=require('../../mysqldb')['db'];var utils=require(_0xfebf('0x3'));var logger=require('../../config/logger')(_0xfebf('0x4'));var config=require('../../config/environment');var jayson=require(_0xfebf('0x5'));var client=jayson[_0xfebf('0x6')][_0xfebf('0x7')]({'port':0x232a});config['redis']=_[_0xfebf('0x8')](config[_0xfebf('0x9')],{'host':'localhost','port':0x18eb});var socket=require(_0xfebf('0xa'))(new Redis(config[_0xfebf('0x9')]));require(_0xfebf('0xb'))['register'](socket);function respondWithRpcPromise(_0x4e58c1,_0x5b38e9,_0x20bcf4){return new BPromise(function(_0x57f856,_0x136e31){return client[_0xfebf('0xc')](_0x4e58c1,_0x20bcf4)['then'](function(_0x2692a1){logger[_0xfebf('0xd')](_0xfebf('0xe'),_0x5b38e9,_0xfebf('0xf'));logger[_0xfebf('0x10')](_0xfebf('0x11'),_0x5b38e9,_0xfebf('0xf'),JSON[_0xfebf('0x12')](_0x2692a1));if(_0x2692a1[_0xfebf('0x13')]){if(_0x2692a1['error']['code']===0x1f4){logger[_0xfebf('0x13')](_0xfebf('0xe'),_0x5b38e9,_0x2692a1[_0xfebf('0x13')][_0xfebf('0x14')]);return _0x136e31(_0x2692a1[_0xfebf('0x13')][_0xfebf('0x14')]);}logger[_0xfebf('0x13')](_0xfebf('0xe'),_0x5b38e9,_0x2692a1[_0xfebf('0x13')][_0xfebf('0x14')]);return _0x57f856(_0x2692a1['error'][_0xfebf('0x14')]);}else{logger[_0xfebf('0xd')]('ChatWebsite,\x20%s,\x20%s',_0x5b38e9,_0xfebf('0xf'));_0x57f856(_0x2692a1['result']['message']);}})[_0xfebf('0x15')](function(_0x19dd8f){logger['error'](_0xfebf('0xe'),_0x5b38e9,_0x19dd8f);_0x136e31(_0x19dd8f);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x04de=['update','emit','removeListener','register','length','chatWebsite:','save','remove'];(function(_0x37232a,_0x583b07){var _0x386512=function(_0x35ba72){while(--_0x35ba72){_0x37232a['push'](_0x37232a['shift']());}};_0x386512(++_0x583b07);}(_0x04de,0x17e));var _0xe04d=function(_0x2bc24e,_0x5db71a){_0x2bc24e=_0x2bc24e-0x0;var _0x2d3596=_0x04de[_0x2bc24e];return _0x2d3596;};'use strict';var ChatWebsiteEvents=require('./chatWebsite.events');var events=[_0xe04d('0x0'),_0xe04d('0x1'),_0xe04d('0x2')];function createListener(_0x57592f,_0x111ec1){return function(_0x49944d){_0x111ec1[_0xe04d('0x3')](_0x57592f,_0x49944d);};}function removeListener(_0x6ba9b6,_0x55384a){return function(){ChatWebsiteEvents[_0xe04d('0x4')](_0x6ba9b6,_0x55384a);};}exports[_0xe04d('0x5')]=function(_0x2727ee){for(var _0xa0fafb=0x0,_0x34597c=events[_0xe04d('0x6')];_0xa0fafb<_0x34597c;_0xa0fafb++){var _0x278de4=events[_0xa0fafb];var _0x2cc372=createListener(_0xe04d('0x7')+_0x278de4,_0x2727ee);ChatWebsiteEvents['on'](_0x278de4,_0x2cc372);}};
\ No newline at end of file
+var _0x20f6=['save','remove','update','emit','removeListener','register','length','chatWebsite:','./chatWebsite.events'];(function(_0x4a2b1a,_0x37a497){var _0x590745=function(_0x3fcd4f){while(--_0x3fcd4f){_0x4a2b1a['push'](_0x4a2b1a['shift']());}};_0x590745(++_0x37a497);}(_0x20f6,0x1dc));var _0x620f=function(_0x209c93,_0x267b0d){_0x209c93=_0x209c93-0x0;var _0x28d7c1=_0x20f6[_0x209c93];return _0x28d7c1;};'use strict';var ChatWebsiteEvents=require(_0x620f('0x0'));var events=[_0x620f('0x1'),_0x620f('0x2'),_0x620f('0x3')];function createListener(_0x2dba9b,_0x51390c){return function(_0x21ef76){_0x51390c[_0x620f('0x4')](_0x2dba9b,_0x21ef76);};}function removeListener(_0x41e250,_0x4c55d4){return function(){ChatWebsiteEvents[_0x620f('0x5')](_0x41e250,_0x4c55d4);};}exports[_0x620f('0x6')]=function(_0x7cc296){for(var _0x4e737d=0x0,_0x362d7f=events[_0x620f('0x7')];_0x4e737d<_0x362d7f;_0x4e737d++){var _0x3e586b=events[_0x4e737d];var _0x4b8f54=createListener(_0x620f('0x8')+_0x3e586b,_0x7cc296);ChatWebsiteEvents['on'](_0x3e586b,_0x4b8f54);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x69bb=['addAnswer','diskStorage','join','root','server/files/images/logos/','format','now','originalname','single','file','server/files/images/avatars/','%s-%s','addCustomerAvatar','/:id/system_avatar','addSystemAvatar','/:id/notify','server/files','attachments','offline-chat','replace','/:id/offline','any','offline','/:id/interactions','addAgents','put','/:id','update','destroy','delete','/:id/dispositions','removeDispositions','removeAgents','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../config/environment','./chatWebsite.controller','get','isAuthenticated','index','/describe','describe','show','getDispositions','/:id/canned_answers','getAnswers','/:id/logo','getLogo','/:id/avatar','getAvatar','/:id/customer_avatar','getCustomerAvatar','getSystemAvatar','getInteractions','/:id/snippet','getSnippet','/:id/applications','getApplications','/:id/proactive_actions','getProactiveActions','/:id/fields','getFields','/:id/offline_messages','getOfflineMessages','/:id/users','getAgents','post','create','addDisposition'];(function(_0xa0122c,_0xea5ec7){var _0x17134a=function(_0x176d64){while(--_0x176d64){_0xa0122c['push'](_0xa0122c['shift']());}};_0x17134a(++_0xea5ec7);}(_0x69bb,0x1e4));var _0xb69b=function(_0x101232,_0x431ea6){_0x101232=_0x101232-0x0;var _0x4f4b62=_0x69bb[_0x101232];return _0x4f4b62;};'use strict';var multer=require(_0xb69b('0x0'));var util=require(_0xb69b('0x1'));var path=require(_0xb69b('0x2'));var timeout=require(_0xb69b('0x3'));var express=require(_0xb69b('0x4'));var router=express[_0xb69b('0x5')]();var fs_extra=require(_0xb69b('0x6'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0xb69b('0x7'));var controller=require(_0xb69b('0x8'));router[_0xb69b('0x9')]('/',auth[_0xb69b('0xa')](),controller[_0xb69b('0xb')]);router[_0xb69b('0x9')](_0xb69b('0xc'),auth[_0xb69b('0xa')](),controller[_0xb69b('0xd')]);router[_0xb69b('0x9')]('/:id',auth['isAuthenticated'](),controller[_0xb69b('0xe')]);router[_0xb69b('0x9')]('/:id/dispositions',auth[_0xb69b('0xa')](),controller[_0xb69b('0xf')]);router[_0xb69b('0x9')](_0xb69b('0x10'),auth[_0xb69b('0xa')](),controller[_0xb69b('0x11')]);router['get'](_0xb69b('0x12'),controller[_0xb69b('0x13')]);router[_0xb69b('0x9')](_0xb69b('0x14'),controller[_0xb69b('0x15')]);router['get'](_0xb69b('0x16'),controller[_0xb69b('0x17')]);router['get']('/:id/system_avatar',controller[_0xb69b('0x18')]);router[_0xb69b('0x9')]('/:id/interactions',auth['isAuthenticated'](),controller[_0xb69b('0x19')]);router[_0xb69b('0x9')](_0xb69b('0x1a'),controller[_0xb69b('0x1b')]);router[_0xb69b('0x9')](_0xb69b('0x1c'),auth[_0xb69b('0xa')](),controller[_0xb69b('0x1d')]);router[_0xb69b('0x9')](_0xb69b('0x1e'),auth[_0xb69b('0xa')](),controller[_0xb69b('0x1f')]);router[_0xb69b('0x9')](_0xb69b('0x20'),controller[_0xb69b('0x21')]);router['get'](_0xb69b('0x22'),auth[_0xb69b('0xa')](),controller[_0xb69b('0x23')]);router[_0xb69b('0x9')](_0xb69b('0x24'),auth[_0xb69b('0xa')](),controller[_0xb69b('0x25')]);router[_0xb69b('0x26')]('/',auth[_0xb69b('0xa')](),controller[_0xb69b('0x27')]);router[_0xb69b('0x26')]('/:id/dispositions',auth[_0xb69b('0xa')](),controller[_0xb69b('0x28')]);router[_0xb69b('0x26')](_0xb69b('0x10'),auth[_0xb69b('0xa')](),controller[_0xb69b('0x29')]);var upload=multer({'storage':multer[_0xb69b('0x2a')]({'destination':function(_0x234d45,_0x2c2987,_0x207071){_0x207071(null,path[_0xb69b('0x2b')](config[_0xb69b('0x2c')],_0xb69b('0x2d')));},'filename':function(_0x2717d3,_0x267eb1,_0x19255a){_0x19255a(null,util[_0xb69b('0x2e')]('%s-%s',Date[_0xb69b('0x2f')](),_0x267eb1[_0xb69b('0x30')]));}})});router['post'](_0xb69b('0x12'),upload[_0xb69b('0x31')](_0xb69b('0x32')),controller['addLogo']);var upload=multer({'storage':multer[_0xb69b('0x2a')]({'destination':function(_0x179e6c,_0x5695c9,_0x37a051){_0x37a051(null,path[_0xb69b('0x2b')](config['root'],_0xb69b('0x33')));},'filename':function(_0x3c6c0a,_0x3f4bec,_0x138f1e){_0x138f1e(null,util[_0xb69b('0x2e')]('%s-%s',Date['now'](),_0x3f4bec[_0xb69b('0x30')]));}})});router[_0xb69b('0x26')](_0xb69b('0x14'),upload[_0xb69b('0x31')](_0xb69b('0x32')),controller['addAvatar']);var upload=multer({'storage':multer[_0xb69b('0x2a')]({'destination':function(_0x45e12c,_0x406042,_0x3201c1){_0x3201c1(null,path['join'](config[_0xb69b('0x2c')],_0xb69b('0x33')));},'filename':function(_0x393a8e,_0x1f3257,_0xe23937){_0xe23937(null,util[_0xb69b('0x2e')](_0xb69b('0x34'),Date[_0xb69b('0x2f')](),_0x1f3257[_0xb69b('0x30')]));}})});router['post'](_0xb69b('0x16'),upload['single'](_0xb69b('0x32')),controller[_0xb69b('0x35')]);var upload=multer({'storage':multer[_0xb69b('0x2a')]({'destination':function(_0x38b68e,_0x1f385e,_0x59dfe1){_0x59dfe1(null,path[_0xb69b('0x2b')](config[_0xb69b('0x2c')],_0xb69b('0x33')));},'filename':function(_0x741583,_0x44147b,_0x4dedf1){_0x4dedf1(null,util['format'](_0xb69b('0x34'),Date[_0xb69b('0x2f')](),_0x44147b[_0xb69b('0x30')]));}})});router[_0xb69b('0x26')](_0xb69b('0x36'),upload[_0xb69b('0x31')](_0xb69b('0x32')),controller[_0xb69b('0x37')]);router[_0xb69b('0x26')](_0xb69b('0x38'),controller['notify']);const offlineUploadMulter=multer({'storage':multer['diskStorage']({'destination':function(_0x46fe5d,_0x429c47,_0x547636){const _0x45e172=path['join'](config['root'],_0xb69b('0x39'),_0xb69b('0x3a'),_0xb69b('0x3b'));fs_extra['ensureDir'](_0x45e172,function(){_0x547636(null,_0x45e172);});},'filename':function(_0x4594e6,_0x4c63e1,_0x2a7117){const _0x42d775=_0x4c63e1[_0xb69b('0x30')]['replace'](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-');const _0x1120ce=path['extname'](_0x42d775);const _0x842b74=Date[_0xb69b('0x2f')]()+'-'+_0x42d775[_0xb69b('0x3c')](_0x1120ce,'')+_0x1120ce;_0x2a7117(null,_0x842b74);}})});router[_0xb69b('0x26')](_0xb69b('0x3d'),offlineUploadMulter[_0xb69b('0x3e')](),controller[_0xb69b('0x3f')]);router[_0xb69b('0x26')](_0xb69b('0x40'),auth[_0xb69b('0xa')](),controller['addInteraction']);router[_0xb69b('0x26')]('/:id/applications',auth['isAuthenticated'](),controller['addApplications']);router[_0xb69b('0x26')](_0xb69b('0x1e'),auth['isAuthenticated'](),controller['addProactiveActions']);router[_0xb69b('0x26')](_0xb69b('0x24'),auth['isAuthenticated'](),controller[_0xb69b('0x41')]);router[_0xb69b('0x42')](_0xb69b('0x43'),auth[_0xb69b('0xa')](),controller[_0xb69b('0x44')]);router['delete'](_0xb69b('0x43'),auth[_0xb69b('0xa')](),controller[_0xb69b('0x45')]);router[_0xb69b('0x46')](_0xb69b('0x47'),auth[_0xb69b('0xa')](),controller[_0xb69b('0x48')]);router['delete'](_0xb69b('0x10'),auth[_0xb69b('0xa')](),controller['removeAnswers']);router['delete'](_0xb69b('0x24'),auth['isAuthenticated'](),controller[_0xb69b('0x49')]);module[_0xb69b('0x4a')]=router;
\ No newline at end of file
+var _0x2edd=['multer','util','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./chatWebsite.controller','get','isAuthenticated','/describe','describe','/:id','show','getDispositions','/:id/canned_answers','/:id/logo','getLogo','/:id/avatar','getAvatar','getCustomerAvatar','getSystemAvatar','/:id/snippet','getSnippet','/:id/applications','getApplications','/:id/proactive_actions','getProactiveActions','getFields','/:id/offline_messages','getOfflineMessages','/:id/users','getAgents','create','post','addDisposition','addAnswer','diskStorage','join','root','format','originalname','file','addLogo','server/files/images/avatars/','%s-%s','now','single','addAvatar','/:id/customer_avatar','addCustomerAvatar','/:id/system_avatar','addSystemAvatar','/:id/notify','server/files','attachments','replace','extname','/:id/offline','any','offline','addInteraction','addProactiveActions','addAgents','put','delete','/:id/dispositions','removeAnswers','removeAgents','exports'];(function(_0x36a0d7,_0x245936){var _0x47362a=function(_0xd84f24){while(--_0xd84f24){_0x36a0d7['push'](_0x36a0d7['shift']());}};_0x47362a(++_0x245936);}(_0x2edd,0x168));var _0xd2ed=function(_0x36fd04,_0x49279d){_0x36fd04=_0x36fd04-0x0;var _0x3d1934=_0x2edd[_0x36fd04];return _0x3d1934;};'use strict';var multer=require(_0xd2ed('0x0'));var util=require(_0xd2ed('0x1'));var path=require(_0xd2ed('0x2'));var timeout=require(_0xd2ed('0x3'));var express=require(_0xd2ed('0x4'));var router=express[_0xd2ed('0x5')]();var fs_extra=require('fs-extra');var auth=require(_0xd2ed('0x6'));var interaction=require(_0xd2ed('0x7'));var config=require(_0xd2ed('0x8'));var controller=require(_0xd2ed('0x9'));router[_0xd2ed('0xa')]('/',auth[_0xd2ed('0xb')](),controller['index']);router[_0xd2ed('0xa')](_0xd2ed('0xc'),auth[_0xd2ed('0xb')](),controller[_0xd2ed('0xd')]);router[_0xd2ed('0xa')](_0xd2ed('0xe'),auth[_0xd2ed('0xb')](),controller[_0xd2ed('0xf')]);router[_0xd2ed('0xa')]('/:id/dispositions',auth[_0xd2ed('0xb')](),controller[_0xd2ed('0x10')]);router[_0xd2ed('0xa')](_0xd2ed('0x11'),auth['isAuthenticated'](),controller['getAnswers']);router[_0xd2ed('0xa')](_0xd2ed('0x12'),controller[_0xd2ed('0x13')]);router[_0xd2ed('0xa')](_0xd2ed('0x14'),controller[_0xd2ed('0x15')]);router[_0xd2ed('0xa')]('/:id/customer_avatar',controller[_0xd2ed('0x16')]);router[_0xd2ed('0xa')]('/:id/system_avatar',controller[_0xd2ed('0x17')]);router[_0xd2ed('0xa')]('/:id/interactions',auth['isAuthenticated'](),controller['getInteractions']);router['get'](_0xd2ed('0x18'),controller[_0xd2ed('0x19')]);router[_0xd2ed('0xa')](_0xd2ed('0x1a'),auth[_0xd2ed('0xb')](),controller[_0xd2ed('0x1b')]);router[_0xd2ed('0xa')](_0xd2ed('0x1c'),auth[_0xd2ed('0xb')](),controller[_0xd2ed('0x1d')]);router[_0xd2ed('0xa')]('/:id/fields',controller[_0xd2ed('0x1e')]);router[_0xd2ed('0xa')](_0xd2ed('0x1f'),auth['isAuthenticated'](),controller[_0xd2ed('0x20')]);router[_0xd2ed('0xa')](_0xd2ed('0x21'),auth['isAuthenticated'](),controller[_0xd2ed('0x22')]);router['post']('/',auth[_0xd2ed('0xb')](),controller[_0xd2ed('0x23')]);router[_0xd2ed('0x24')]('/:id/dispositions',auth[_0xd2ed('0xb')](),controller[_0xd2ed('0x25')]);router['post'](_0xd2ed('0x11'),auth['isAuthenticated'](),controller[_0xd2ed('0x26')]);var upload=multer({'storage':multer[_0xd2ed('0x27')]({'destination':function(_0x42da45,_0x47d0cb,_0x577aa0){_0x577aa0(null,path[_0xd2ed('0x28')](config[_0xd2ed('0x29')],'server/files/images/logos/'));},'filename':function(_0x2b1b76,_0x13503d,_0x29ee9f){_0x29ee9f(null,util[_0xd2ed('0x2a')]('%s-%s',Date['now'](),_0x13503d[_0xd2ed('0x2b')]));}})});router[_0xd2ed('0x24')](_0xd2ed('0x12'),upload['single'](_0xd2ed('0x2c')),controller[_0xd2ed('0x2d')]);var upload=multer({'storage':multer[_0xd2ed('0x27')]({'destination':function(_0x161833,_0xa1bf87,_0x439988){_0x439988(null,path[_0xd2ed('0x28')](config[_0xd2ed('0x29')],_0xd2ed('0x2e')));},'filename':function(_0x43736d,_0x10ed86,_0x231890){_0x231890(null,util[_0xd2ed('0x2a')](_0xd2ed('0x2f'),Date[_0xd2ed('0x30')](),_0x10ed86[_0xd2ed('0x2b')]));}})});router[_0xd2ed('0x24')]('/:id/avatar',upload[_0xd2ed('0x31')](_0xd2ed('0x2c')),controller[_0xd2ed('0x32')]);var upload=multer({'storage':multer[_0xd2ed('0x27')]({'destination':function(_0x254dc3,_0x4270dc,_0x1c3e46){_0x1c3e46(null,path[_0xd2ed('0x28')](config['root'],'server/files/images/avatars/'));},'filename':function(_0x5dc74a,_0x4ba816,_0xbced63){_0xbced63(null,util[_0xd2ed('0x2a')](_0xd2ed('0x2f'),Date[_0xd2ed('0x30')](),_0x4ba816['originalname']));}})});router[_0xd2ed('0x24')](_0xd2ed('0x33'),upload['single'](_0xd2ed('0x2c')),controller[_0xd2ed('0x34')]);var upload=multer({'storage':multer[_0xd2ed('0x27')]({'destination':function(_0xffab05,_0x4be195,_0x1dfa65){_0x1dfa65(null,path['join'](config['root'],_0xd2ed('0x2e')));},'filename':function(_0x2e748f,_0x32c1f0,_0x340d48){_0x340d48(null,util[_0xd2ed('0x2a')](_0xd2ed('0x2f'),Date[_0xd2ed('0x30')](),_0x32c1f0[_0xd2ed('0x2b')]));}})});router['post'](_0xd2ed('0x35'),upload['single'](_0xd2ed('0x2c')),controller[_0xd2ed('0x36')]);router[_0xd2ed('0x24')](_0xd2ed('0x37'),controller['notify']);const offlineUploadMulter=multer({'storage':multer['diskStorage']({'destination':function(_0x47d1ce,_0x33f333,_0x27d2c1){const _0x384136=path[_0xd2ed('0x28')](config[_0xd2ed('0x29')],_0xd2ed('0x38'),_0xd2ed('0x39'),'offline-chat');fs_extra['ensureDir'](_0x384136,function(){_0x27d2c1(null,_0x384136);});},'filename':function(_0x4e0fff,_0x5c33d9,_0x38dd45){const _0x589c23=_0x5c33d9[_0xd2ed('0x2b')][_0xd2ed('0x3a')](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-');const _0x3859bf=path[_0xd2ed('0x3b')](_0x589c23);const _0x2c2ff4=Date[_0xd2ed('0x30')]()+'-'+_0x589c23[_0xd2ed('0x3a')](_0x3859bf,'')+_0x3859bf;_0x38dd45(null,_0x2c2ff4);}})});router[_0xd2ed('0x24')](_0xd2ed('0x3c'),offlineUploadMulter[_0xd2ed('0x3d')](),controller[_0xd2ed('0x3e')]);router['post']('/:id/interactions',auth[_0xd2ed('0xb')](),controller[_0xd2ed('0x3f')]);router[_0xd2ed('0x24')]('/:id/applications',auth[_0xd2ed('0xb')](),controller['addApplications']);router['post'](_0xd2ed('0x1c'),auth[_0xd2ed('0xb')](),controller[_0xd2ed('0x40')]);router[_0xd2ed('0x24')](_0xd2ed('0x21'),auth[_0xd2ed('0xb')](),controller[_0xd2ed('0x41')]);router[_0xd2ed('0x42')](_0xd2ed('0xe'),auth['isAuthenticated'](),controller['update']);router[_0xd2ed('0x43')](_0xd2ed('0xe'),auth[_0xd2ed('0xb')](),controller['destroy']);router[_0xd2ed('0x43')](_0xd2ed('0x44'),auth[_0xd2ed('0xb')](),controller['removeDispositions']);router[_0xd2ed('0x43')]('/:id/canned_answers',auth[_0xd2ed('0xb')](),controller[_0xd2ed('0x45')]);router['delete']('/:id/users',auth['isAuthenticated'](),controller[_0xd2ed('0x46')]);module[_0xd2ed('0x47')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa23f=['exports','AmazonAWS','Google','STRING','sequelize'];(function(_0x5f09ce,_0x46f0e3){var _0x1347ce=function(_0x131a4c){while(--_0x131a4c){_0x5f09ce['push'](_0x5f09ce['shift']());}};_0x1347ce(++_0x46f0e3);}(_0xa23f,0x7c));var _0xfa23=function(_0x21bad0,_0x831bf8){_0x21bad0=_0x21bad0-0x0;var _0x3eef28=_0xa23f[_0x21bad0];return _0x3eef28;};'use strict';var Sequelize=require(_0xfa23('0x0'));module[_0xfa23('0x1')]={'name':{'type':Sequelize['STRING'],'allowNull':![],'validate':{'notEmpty':!![]}},'service':{'type':Sequelize['ENUM'](_0xfa23('0x2'),_0xfa23('0x3')),'allowNull':![],'validate':{'notEmpty':!![]}},'data1':{'type':Sequelize[_0xfa23('0x4')]},'data2':{'type':Sequelize[_0xfa23('0x4')]}};
\ No newline at end of file
+var _0x29b1=['ENUM','AmazonAWS','Google','STRING'];(function(_0x4d31c0,_0x4bf043){var _0x52439b=function(_0x1b54df){while(--_0x1b54df){_0x4d31c0['push'](_0x4d31c0['shift']());}};_0x52439b(++_0x4bf043);}(_0x29b1,0x13b));var _0x129b=function(_0x17d9e3,_0x1f969c){_0x17d9e3=_0x17d9e3-0x0;var _0x14192d=_0x29b1[_0x17d9e3];return _0x14192d;};'use strict';var Sequelize=require('sequelize');module['exports']={'name':{'type':Sequelize[_0x129b('0x0')],'allowNull':![],'validate':{'notEmpty':!![]}},'service':{'type':Sequelize[_0x129b('0x1')](_0x129b('0x2'),_0x129b('0x3')),'allowNull':![],'validate':{'notEmpty':!![]}},'data1':{'type':Sequelize[_0x129b('0x0')]},'data2':{'type':Sequelize[_0x129b('0x0')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdb28=['error','stack','name','send','index','CloudProvider','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','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'];(function(_0x4c8459,_0x47be65){var _0x51c75f=function(_0x4af830){while(--_0x4af830){_0x4c8459['push'](_0x4c8459['shift']());}};_0x51c75f(++_0x47be65);}(_0xdb28,0x106));var _0x8db2=function(_0x4a61e4,_0x2f0051){_0x4a61e4=_0x4a61e4-0x0;var _0x16de19=_0xdb28[_0x4a61e4];return _0x16de19;};'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));};
\ 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(_0x293055,_0x10e0b1){var _0x19c83a=function(_0x2b3027){while(--_0x2b3027){_0x293055['push'](_0x293055['shift']());}};_0x19c83a(++_0x10e0b1);}(_0x0b0e,0x187));var _0xe0b0=function(_0x4c440b,_0x3ea627){_0x4c440b=_0x4c440b-0x0;var _0x2d48cf=_0x0b0e[_0x4c440b];return _0x2d48cf;};'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 _0x062d=['rimraf','../../config/environment','./cloudProvider.attributes','exports','define','CloudProvider','cloud_providers','lodash','util','api','request-promise','path'];(function(_0x43b1b3,_0x5b2a1c){var _0x517af2=function(_0x5b02a5){while(--_0x5b02a5){_0x43b1b3['push'](_0x43b1b3['shift']());}};_0x517af2(++_0x5b2a1c);}(_0x062d,0x193));var _0xd062=function(_0x358c86,_0x38a8a2){_0x358c86=_0x358c86-0x0;var _0x52edc5=_0x062d[_0x358c86];return _0x52edc5;};'use strict';var _=require(_0xd062('0x0'));var util=require(_0xd062('0x1'));var logger=require('../../config/logger')(_0xd062('0x2'));var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0xd062('0x3'));var fs=require('fs');var path=require(_0xd062('0x4'));var rimraf=require(_0xd062('0x5'));var config=require(_0xd062('0x6'));var attributes=require(_0xd062('0x7'));module[_0xd062('0x8')]=function(_0x45622a,_0x3c8deb){return _0x45622a[_0xd062('0x9')](_0xd062('0xa'),attributes,{'tableName':_0xd062('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xb876=['define','CloudProvider','lodash','util','moment','bluebird','path','rimraf','exports'];(function(_0x26462c,_0xd20a35){var _0x509a42=function(_0x1b22c9){while(--_0x1b22c9){_0x26462c['push'](_0x26462c['shift']());}};_0x509a42(++_0xd20a35);}(_0xb876,0xf5));var _0x6b87=function(_0x21584b,_0x65089b){_0x21584b=_0x21584b-0x0;var _0x359575=_0xb876[_0x21584b];return _0x359575;};'use strict';var _=require(_0x6b87('0x0'));var util=require(_0x6b87('0x1'));var logger=require('../../config/logger')('api');var moment=require(_0x6b87('0x2'));var BPromise=require(_0x6b87('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x6b87('0x4'));var rimraf=require(_0x6b87('0x5'));var config=require('../../config/environment');var attributes=require('./cloudProvider.attributes');module[_0x6b87('0x6')]=function(_0x334a13,_0xa53120){return _0x334a13[_0x6b87('0x7')](_0x6b87('0x8'),attributes,{'tableName':'cloud_providers','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x65c9=['then','info','request\x20sent','debug','CloudProvider,\x20%s,\x20%s,\x20%s','stringify','error','code','CloudProvider,\x20%s,\x20%s','message','result','lodash','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request'];(function(_0x2134b7,_0x1eb5e2){var _0x6c5914=function(_0x1da201){while(--_0x1da201){_0x2134b7['push'](_0x2134b7['shift']());}};_0x6c5914(++_0x1eb5e2);}(_0x65c9,0x182));var _0x965c=function(_0x22e1c5,_0x3c5670){_0x22e1c5=_0x22e1c5-0x0;var _0x288269=_0x65c9[_0x22e1c5];return _0x288269;};'use strict';var _=require(_0x965c('0x0'));var util=require(_0x965c('0x1'));var moment=require('moment');var BPromise=require(_0x965c('0x2'));var rs=require(_0x965c('0x3'));var fs=require('fs');var Redis=require(_0x965c('0x4'));var db=require(_0x965c('0x5'))['db'];var utils=require(_0x965c('0x6'));var logger=require(_0x965c('0x7'))(_0x965c('0x8'));var config=require(_0x965c('0x9'));var jayson=require(_0x965c('0xa'));var client=jayson[_0x965c('0xb')][_0x965c('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x849260,_0x5ec702,_0xd19e57){return new BPromise(function(_0x263652,_0x41d248){return client[_0x965c('0xd')](_0x849260,_0xd19e57)[_0x965c('0xe')](function(_0x26d859){logger[_0x965c('0xf')]('CloudProvider,\x20%s,\x20%s',_0x5ec702,_0x965c('0x10'));logger[_0x965c('0x11')](_0x965c('0x12'),_0x5ec702,_0x965c('0x10'),JSON[_0x965c('0x13')](_0x26d859));if(_0x26d859[_0x965c('0x14')]){if(_0x26d859[_0x965c('0x14')][_0x965c('0x15')]===0x1f4){logger[_0x965c('0x14')](_0x965c('0x16'),_0x5ec702,_0x26d859[_0x965c('0x14')][_0x965c('0x17')]);return _0x41d248(_0x26d859[_0x965c('0x14')][_0x965c('0x17')]);}logger['error'](_0x965c('0x16'),_0x5ec702,_0x26d859[_0x965c('0x14')][_0x965c('0x17')]);return _0x263652(_0x26d859['error'][_0x965c('0x17')]);}else{logger[_0x965c('0xf')](_0x965c('0x16'),_0x5ec702,'request\x20sent');_0x263652(_0x26d859[_0x965c('0x18')]['message']);}})['catch'](function(_0x542499){logger[_0x965c('0x14')](_0x965c('0x16'),_0x5ec702,_0x542499);_0x41d248(_0x542499);});});}
\ No newline at end of file
+var _0xa908=['http','then','info','request\x20sent','debug','CloudProvider,\x20%s,\x20%s,\x20%s','stringify','error','CloudProvider,\x20%s,\x20%s','message','result','lodash','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise'];(function(_0x4e9628,_0x250573){var _0x27bc8c=function(_0xb3b7ae){while(--_0xb3b7ae){_0x4e9628['push'](_0x4e9628['shift']());}};_0x27bc8c(++_0x250573);}(_0xa908,0x1c3));var _0x8a90=function(_0x44532f,_0x2dac86){_0x44532f=_0x44532f-0x0;var _0x11e878=_0xa908[_0x44532f];return _0x11e878;};'use strict';var _=require(_0x8a90('0x0'));var util=require('util');var moment=require(_0x8a90('0x1'));var BPromise=require('bluebird');var rs=require(_0x8a90('0x2'));var fs=require('fs');var Redis=require(_0x8a90('0x3'));var db=require(_0x8a90('0x4'))['db'];var utils=require(_0x8a90('0x5'));var logger=require(_0x8a90('0x6'))('rpc');var config=require(_0x8a90('0x7'));var jayson=require(_0x8a90('0x8'));var client=jayson['client'][_0x8a90('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x1dc8f9,_0x12d376,_0x3faf88){return new BPromise(function(_0x20f8bf,_0x200f95){return client['request'](_0x1dc8f9,_0x3faf88)[_0x8a90('0xa')](function(_0x485401){logger[_0x8a90('0xb')]('CloudProvider,\x20%s,\x20%s',_0x12d376,_0x8a90('0xc'));logger[_0x8a90('0xd')](_0x8a90('0xe'),_0x12d376,_0x8a90('0xc'),JSON[_0x8a90('0xf')](_0x485401));if(_0x485401[_0x8a90('0x10')]){if(_0x485401[_0x8a90('0x10')]['code']===0x1f4){logger['error'](_0x8a90('0x11'),_0x12d376,_0x485401[_0x8a90('0x10')][_0x8a90('0x12')]);return _0x200f95(_0x485401['error'][_0x8a90('0x12')]);}logger[_0x8a90('0x10')](_0x8a90('0x11'),_0x12d376,_0x485401['error'][_0x8a90('0x12')]);return _0x20f8bf(_0x485401[_0x8a90('0x10')]['message']);}else{logger[_0x8a90('0xb')](_0x8a90('0x11'),_0x12d376,_0x8a90('0xc'));_0x20f8bf(_0x485401[_0x8a90('0x13')]['message']);}})['catch'](function(_0x14db82){logger[_0x8a90('0x10')](_0x8a90('0x11'),_0x12d376,_0x14db82);_0x200f95(_0x14db82);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xaa7c=['path','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./cloudProvider.controller','get','index','/:id','isAuthenticated','show','create','put','update','delete','destroy','multer','util'];(function(_0x585219,_0x23ba0b){var _0x32c6fe=function(_0x463370){while(--_0x463370){_0x585219['push'](_0x585219['shift']());}};_0x32c6fe(++_0x23ba0b);}(_0xaa7c,0x18e));var _0xcaa7=function(_0x2fb789,_0x48d8fa){_0x2fb789=_0x2fb789-0x0;var _0x583d43=_0xaa7c[_0x2fb789];return _0x583d43;};'use strict';var multer=require(_0xcaa7('0x0'));var util=require(_0xcaa7('0x1'));var path=require(_0xcaa7('0x2'));var timeout=require(_0xcaa7('0x3'));var express=require(_0xcaa7('0x4'));var router=express['Router']();var fs_extra=require(_0xcaa7('0x5'));var auth=require(_0xcaa7('0x6'));var interaction=require(_0xcaa7('0x7'));var config=require(_0xcaa7('0x8'));var controller=require(_0xcaa7('0x9'));router[_0xcaa7('0xa')]('/',auth['isAuthenticated'](),controller[_0xcaa7('0xb')]);router['get'](_0xcaa7('0xc'),auth[_0xcaa7('0xd')](),controller[_0xcaa7('0xe')]);router['post']('/',auth[_0xcaa7('0xd')](),controller[_0xcaa7('0xf')]);router[_0xcaa7('0x10')](_0xcaa7('0xc'),auth[_0xcaa7('0xd')](),controller[_0xcaa7('0x11')]);router[_0xcaa7('0x12')]('/:id',auth[_0xcaa7('0xd')](),controller[_0xcaa7('0x13')]);module['exports']=router;
\ No newline at end of file
+var _0x9dfc=['fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./cloudProvider.controller','get','isAuthenticated','index','/:id','show','post','put','update','exports','multer','express','Router'];(function(_0x59ee6f,_0x450239){var _0x4c0979=function(_0x565e92){while(--_0x565e92){_0x59ee6f['push'](_0x59ee6f['shift']());}};_0x4c0979(++_0x450239);}(_0x9dfc,0x140));var _0xc9df=function(_0xb647a3,_0x434cb2){_0xb647a3=_0xb647a3-0x0;var _0x16799a=_0x9dfc[_0xb647a3];return _0x16799a;};'use strict';var multer=require(_0xc9df('0x0'));var util=require('util');var path=require('path');var timeout=require('connect-timeout');var express=require(_0xc9df('0x1'));var router=express[_0xc9df('0x2')]();var fs_extra=require(_0xc9df('0x3'));var auth=require(_0xc9df('0x4'));var interaction=require(_0xc9df('0x5'));var config=require(_0xc9df('0x6'));var controller=require(_0xc9df('0x7'));router[_0xc9df('0x8')]('/',auth[_0xc9df('0x9')](),controller[_0xc9df('0xa')]);router['get'](_0xc9df('0xb'),auth[_0xc9df('0x9')](),controller[_0xc9df('0xc')]);router[_0xc9df('0xd')]('/',auth[_0xc9df('0x9')](),controller['create']);router[_0xc9df('0xe')]('/:id',auth[_0xc9df('0x9')](),controller[_0xc9df('0xf')]);router['delete'](_0xc9df('0xb'),auth[_0xc9df('0x9')](),controller['destroy']);module[_0xc9df('0x10')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8a78=['exports','STRING','name','sequelize'];(function(_0x306c71,_0x4d1ab0){var _0x2628da=function(_0x304bc1){while(--_0x304bc1){_0x306c71['push'](_0x306c71['shift']());}};_0x2628da(++_0x4d1ab0);}(_0x8a78,0x1e7));var _0x88a7=function(_0x2d486b,_0x5f213c){_0x2d486b=_0x2d486b-0x0;var _0x4291d1=_0x8a78[_0x2d486b];return _0x4291d1;};'use strict';var Sequelize=require(_0x88a7('0x0'));module[_0x88a7('0x1')]={'name':{'type':Sequelize[_0x88a7('0x2')],'unique':_0x88a7('0x3'),'allowNull':![],'validate':{'notEmpty':!![]}},'vat':{'type':Sequelize[_0x88a7('0x2')]},'companyId':{'type':Sequelize['STRING']},'website':{'type':Sequelize[_0x88a7('0x2')]},'phone':{'type':Sequelize[_0x88a7('0x2')]},'fax':{'type':Sequelize[_0x88a7('0x2')]},'type':{'type':Sequelize['STRING']},'street':{'type':Sequelize[_0x88a7('0x2')]},'postalCode':{'type':Sequelize['STRING']},'city':{'type':Sequelize[_0x88a7('0x2')]},'country':{'type':Sequelize[_0x88a7('0x2')]},'email':{'type':Sequelize['STRING'],'validate':{'isEmail':!![]}},'emailDomain':{'type':Sequelize[_0x88a7('0x2')]},'sStreet':{'type':Sequelize[_0x88a7('0x2')]},'sPostalCode':{'type':Sequelize['STRING']},'sCity':{'type':Sequelize['STRING']},'sCountry':{'type':Sequelize[_0x88a7('0x2')]},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0xe096=['sequelize','exports','STRING','name'];(function(_0x2b58f8,_0x14f865){var _0x2af05b=function(_0x2c2bf3){while(--_0x2c2bf3){_0x2b58f8['push'](_0x2b58f8['shift']());}};_0x2af05b(++_0x14f865);}(_0xe096,0x13c));var _0x6e09=function(_0x4ee881,_0x10ddc8){_0x4ee881=_0x4ee881-0x0;var _0x305f48=_0xe096[_0x4ee881];return _0x305f48;};'use strict';var Sequelize=require(_0x6e09('0x0'));module[_0x6e09('0x1')]={'name':{'type':Sequelize[_0x6e09('0x2')],'unique':_0x6e09('0x3'),'allowNull':![],'validate':{'notEmpty':!![]}},'vat':{'type':Sequelize[_0x6e09('0x2')]},'companyId':{'type':Sequelize[_0x6e09('0x2')]},'website':{'type':Sequelize[_0x6e09('0x2')]},'phone':{'type':Sequelize[_0x6e09('0x2')]},'fax':{'type':Sequelize[_0x6e09('0x2')]},'type':{'type':Sequelize[_0x6e09('0x2')]},'street':{'type':Sequelize[_0x6e09('0x2')]},'postalCode':{'type':Sequelize['STRING']},'city':{'type':Sequelize['STRING']},'country':{'type':Sequelize['STRING']},'email':{'type':Sequelize[_0x6e09('0x2')],'validate':{'isEmail':!![]}},'emailDomain':{'type':Sequelize['STRING']},'sStreet':{'type':Sequelize[_0x6e09('0x2')]},'sPostalCode':{'type':Sequelize[_0x6e09('0x2')]},'sCity':{'type':Sequelize['STRING']},'sCountry':{'type':Sequelize['STRING']},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb8c7=['find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','body','addContacts','CmContact','ids','getContacts','rawAttributes','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','status','json','offset','limit','count','set','apply','reject','save','destroy','then','get','Companies','UserProfileResource','sendStatus','stack','name','send','describe','model','keys','filters','intersection','query','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','map','options','CmCompany','includeAll','include','rows','catch','show','params','merge'];(function(_0x507718,_0x1270bf){var _0x4afea0=function(_0x8a98a8){while(--_0x8a98a8){_0x507718['push'](_0x507718['shift']());}};_0x4afea0(++_0x1270bf);}(_0xb8c7,0x1c3));var _0x7b8c=function(_0x57c15b,_0x2ad736){_0x57c15b=_0x57c15b-0x0;var _0x55e006=_0xb8c7[_0x57c15b];return _0x55e006;};'use strict';var emlformat=require(_0x7b8c('0x0'));var rimraf=require(_0x7b8c('0x1'));var zipdir=require(_0x7b8c('0x2'));var jsonpatch=require(_0x7b8c('0x3'));var rp=require(_0x7b8c('0x4'));var moment=require(_0x7b8c('0x5'));var BPromise=require(_0x7b8c('0x6'));var Mustache=require(_0x7b8c('0x7'));var util=require(_0x7b8c('0x8'));var path=require(_0x7b8c('0x9'));var sox=require(_0x7b8c('0xa'));var csv=require(_0x7b8c('0xb'));var ejs=require(_0x7b8c('0xc'));var fs=require('fs');var fs_extra=require(_0x7b8c('0xd'));var _=require('lodash');var squel=require(_0x7b8c('0xe'));var crypto=require(_0x7b8c('0xf'));var jsforce=require(_0x7b8c('0x10'));var deskjs=require(_0x7b8c('0x11'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x7b8c('0x12'));var qs=require(_0x7b8c('0x13'));var as=require(_0x7b8c('0x14'));var hardwareService=require(_0x7b8c('0x15'));var logger=require(_0x7b8c('0x16'))(_0x7b8c('0x17'));var utils=require(_0x7b8c('0x18'));var config=require('../../config/environment');var licenseUtil=require(_0x7b8c('0x19'));var db=require(_0x7b8c('0x1a'))['db'];function respondWithStatusCode(_0x1b330b,_0x12150b){_0x12150b=_0x12150b||0xcc;return function(_0x4b1673){if(_0x4b1673){return _0x1b330b['sendStatus'](_0x12150b);}return _0x1b330b['status'](_0x12150b)['end']();};}function respondWithResult(_0x49e933,_0x4177f8){_0x4177f8=_0x4177f8||0xc8;return function(_0x459343){if(_0x459343){return _0x49e933[_0x7b8c('0x1b')](_0x4177f8)[_0x7b8c('0x1c')](_0x459343);}};}function respondWithFilteredResult(_0x4a270d,_0x3143cc){return function(_0x202990){if(_0x202990){var _0x26ce7f=typeof _0x3143cc[_0x7b8c('0x1d')]==='undefined'&&typeof _0x3143cc[_0x7b8c('0x1e')]==='undefined';var _0x218b5b=_0x202990[_0x7b8c('0x1f')];var _0x19281a=_0x26ce7f?0x0:_0x3143cc['offset'];var _0x4519b9=_0x26ce7f?_0x202990[_0x7b8c('0x1f')]:_0x3143cc['offset']+_0x3143cc[_0x7b8c('0x1e')];var _0x33472e;if(_0x4519b9>=_0x218b5b){_0x4519b9=_0x218b5b;_0x33472e=0xc8;}else{_0x33472e=0xce;}_0x4a270d['status'](_0x33472e);return _0x4a270d[_0x7b8c('0x20')]('Content-Range',_0x19281a+'-'+_0x4519b9+'/'+_0x218b5b)[_0x7b8c('0x1c')](_0x202990);}return null;};}function patchUpdates(_0x79a5a){return function(_0x110adc){try{jsonpatch[_0x7b8c('0x21')](_0x110adc,_0x79a5a,!![]);}catch(_0x2aea7a){return BPromise[_0x7b8c('0x22')](_0x2aea7a);}return _0x110adc[_0x7b8c('0x23')]();};}function saveUpdates(_0x128ca8,_0x527650){return function(_0x3cdd06){if(_0x3cdd06){return _0x3cdd06['update'](_0x128ca8)['then'](function(_0x2ed2fd){return _0x2ed2fd;});}return null;};}function removeEntity(_0x66569a,_0x1e396a){return function(_0x3d3eef){if(_0x3d3eef){return _0x3d3eef[_0x7b8c('0x24')]()[_0x7b8c('0x25')](function(){var _0x4737c0=_0x3d3eef[_0x7b8c('0x26')]({'plain':!![]});var _0x53b74a=_0x7b8c('0x27');return db[_0x7b8c('0x28')][_0x7b8c('0x24')]({'where':{'type':_0x53b74a,'resourceId':_0x4737c0['id']}})[_0x7b8c('0x25')](function(){return _0x3d3eef;});})[_0x7b8c('0x25')](function(){_0x66569a[_0x7b8c('0x1b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x3e739d,_0x2f3587){return function(_0x22f7b3){if(!_0x22f7b3){_0x3e739d[_0x7b8c('0x29')](0x194);}return _0x22f7b3;};}function handleError(_0x27d34a,_0x19c44d){_0x19c44d=_0x19c44d||0x1f4;return function(_0x22562b){logger['error'](_0x22562b[_0x7b8c('0x2a')]);if(_0x22562b[_0x7b8c('0x2b')]){delete _0x22562b[_0x7b8c('0x2b')];}_0x27d34a[_0x7b8c('0x1b')](_0x19c44d)[_0x7b8c('0x2c')](_0x22562b);};}exports['index']=function(_0x14668c,_0x35394b){var _0x222897={},_0x2590c3={},_0x42aa27={'count':0x0,'rows':[]};return db['CmCompany'][_0x7b8c('0x2d')]()[_0x7b8c('0x25')](function(_0x4d9927){_0x2590c3[_0x7b8c('0x2e')]=_['keys'](_0x4d9927);_0x2590c3['query']=_[_0x7b8c('0x2f')](_0x14668c['query']);_0x2590c3[_0x7b8c('0x30')]=_[_0x7b8c('0x31')](_0x2590c3[_0x7b8c('0x2e')],_0x2590c3[_0x7b8c('0x32')]);_0x222897[_0x7b8c('0x33')]=_[_0x7b8c('0x31')](_0x2590c3[_0x7b8c('0x2e')],qs[_0x7b8c('0x34')](_0x14668c['query'][_0x7b8c('0x34')]));_0x222897[_0x7b8c('0x33')]=_0x222897[_0x7b8c('0x33')][_0x7b8c('0x35')]?_0x222897[_0x7b8c('0x33')]:_0x2590c3['model'];if(!_0x14668c['query'][_0x7b8c('0x36')](_0x7b8c('0x37'))){_0x222897['limit']=qs['limit'](_0x14668c['query'][_0x7b8c('0x1e')]);_0x222897[_0x7b8c('0x1d')]=qs[_0x7b8c('0x1d')](_0x14668c[_0x7b8c('0x32')][_0x7b8c('0x1d')]);}_0x222897[_0x7b8c('0x38')]=qs[_0x7b8c('0x39')](_0x14668c[_0x7b8c('0x32')][_0x7b8c('0x39')]);_0x222897[_0x7b8c('0x3a')]=qs[_0x7b8c('0x30')](_[_0x7b8c('0x3b')](_0x14668c['query'],_0x2590c3[_0x7b8c('0x30')]),_0x4d9927);if(_0x14668c[_0x7b8c('0x32')][_0x7b8c('0x3c')]){_0x222897[_0x7b8c('0x3a')]=_['merge'](_0x222897[_0x7b8c('0x3a')],{'$or':_[_0x7b8c('0x3d')](_0x222897[_0x7b8c('0x33')],function(_0x216026){var _0xda917c={};_0xda917c[_0x216026]={'$like':'%'+_0x14668c['query']['filter']+'%'};return _0xda917c;})});}_0x222897=_['merge']({},_0x222897,_0x14668c[_0x7b8c('0x3e')]);var _0x4aac1f={'where':_0x222897[_0x7b8c('0x3a')]};return db[_0x7b8c('0x3f')][_0x7b8c('0x1f')](_0x4aac1f)[_0x7b8c('0x25')](function(_0x3107c5){_0x42aa27[_0x7b8c('0x1f')]=_0x3107c5;if(_0x14668c[_0x7b8c('0x32')][_0x7b8c('0x40')]){_0x222897[_0x7b8c('0x41')]=[{'all':!![]}];}return db[_0x7b8c('0x3f')]['findAll'](_0x222897);})[_0x7b8c('0x25')](function(_0x3fb686){_0x42aa27[_0x7b8c('0x42')]=_0x3fb686;return _0x42aa27;})[_0x7b8c('0x25')](respondWithFilteredResult(_0x35394b,_0x222897))[_0x7b8c('0x43')](handleError(_0x35394b,null));})[_0x7b8c('0x43')](handleError(_0x35394b,null));};exports[_0x7b8c('0x44')]=function(_0x2bc8ed,_0x541072){var _0x107ae7={'raw':![],'where':{'id':_0x2bc8ed[_0x7b8c('0x45')]['id']}},_0x172cc4={};_0x172cc4[_0x7b8c('0x2e')]=_[_0x7b8c('0x2f')](db['CmCompany']['rawAttributes']);_0x172cc4[_0x7b8c('0x32')]=_[_0x7b8c('0x2f')](_0x2bc8ed['query']);_0x172cc4['filters']=_[_0x7b8c('0x31')](_0x172cc4[_0x7b8c('0x2e')],_0x172cc4['query']);_0x107ae7[_0x7b8c('0x33')]=_[_0x7b8c('0x31')](_0x172cc4[_0x7b8c('0x2e')],qs[_0x7b8c('0x34')](_0x2bc8ed[_0x7b8c('0x32')][_0x7b8c('0x34')]));_0x107ae7['attributes']=_0x107ae7['attributes'][_0x7b8c('0x35')]?_0x107ae7[_0x7b8c('0x33')]:_0x172cc4[_0x7b8c('0x2e')];if(_0x2bc8ed[_0x7b8c('0x32')][_0x7b8c('0x40')]){_0x107ae7['include']=[{'all':!![]}];}_0x107ae7=_[_0x7b8c('0x46')]({},_0x107ae7,_0x2bc8ed[_0x7b8c('0x3e')]);return db[_0x7b8c('0x3f')][_0x7b8c('0x47')](_0x107ae7)[_0x7b8c('0x25')](handleEntityNotFound(_0x541072,null))[_0x7b8c('0x25')](respondWithResult(_0x541072,null))[_0x7b8c('0x43')](handleError(_0x541072,null));};exports['create']=function(_0x378aaf,_0x224d17){return db[_0x7b8c('0x3f')][_0x7b8c('0x48')](_0x378aaf['body'],{})['then'](function(_0x20f9f1){var _0x52f04b=_0x378aaf[_0x7b8c('0x49')]['get']({'plain':!![]});if(!_0x52f04b)throw new Error(_0x7b8c('0x4a'));if(_0x52f04b['role']===_0x7b8c('0x49')){var _0x2f8469=_0x20f9f1['get']({'plain':!![]});var _0x2f9d15=_0x7b8c('0x27');return db[_0x7b8c('0x4b')][_0x7b8c('0x47')]({'where':{'name':_0x2f9d15,'userProfileId':_0x52f04b[_0x7b8c('0x4c')]},'raw':!![]})[_0x7b8c('0x25')](function(_0x2b014d){if(_0x2b014d&&_0x2b014d[_0x7b8c('0x4d')]===0x0){return db[_0x7b8c('0x28')][_0x7b8c('0x48')]({'name':_0x2f8469['name'],'resourceId':_0x2f8469['id'],'type':_0x2b014d[_0x7b8c('0x2b')],'sectionId':_0x2b014d['id']},{})[_0x7b8c('0x25')](function(){return _0x20f9f1;});}else{return _0x20f9f1;}})[_0x7b8c('0x43')](function(_0x471ea0){logger[_0x7b8c('0x4e')](_0x7b8c('0x4f'),_0x471ea0);throw _0x471ea0;});}return _0x20f9f1;})[_0x7b8c('0x25')](respondWithResult(_0x224d17,0xc9))[_0x7b8c('0x43')](handleError(_0x224d17,null));};exports[_0x7b8c('0x50')]=function(_0x1bf9ec,_0x181b7b){if(_0x1bf9ec[_0x7b8c('0x51')]['id']){delete _0x1bf9ec[_0x7b8c('0x51')]['id'];}return db[_0x7b8c('0x3f')][_0x7b8c('0x47')]({'where':{'id':_0x1bf9ec[_0x7b8c('0x45')]['id']}})[_0x7b8c('0x25')](handleEntityNotFound(_0x181b7b,null))[_0x7b8c('0x25')](saveUpdates(_0x1bf9ec[_0x7b8c('0x51')],null))[_0x7b8c('0x25')](respondWithResult(_0x181b7b,null))[_0x7b8c('0x43')](handleError(_0x181b7b,null));};exports[_0x7b8c('0x24')]=function(_0x1ddde7,_0xdff24e){return db[_0x7b8c('0x3f')][_0x7b8c('0x47')]({'where':{'id':_0x1ddde7[_0x7b8c('0x45')]['id']}})[_0x7b8c('0x25')](handleEntityNotFound(_0xdff24e,null))[_0x7b8c('0x25')](removeEntity(_0xdff24e,null))[_0x7b8c('0x43')](handleError(_0xdff24e,null));};exports['describe']=function(_0x28d7d8,_0x490762){return db['CmCompany'][_0x7b8c('0x2d')]()[_0x7b8c('0x25')](respondWithResult(_0x490762,null))['catch'](handleError(_0x490762,null));};exports[_0x7b8c('0x52')]=function(_0xf44e2b,_0x47465d,_0x22230a){return db[_0x7b8c('0x53')][_0x7b8c('0x47')]({'where':{'id':_0xf44e2b[_0x7b8c('0x45')]['id']}})[_0x7b8c('0x25')](handleEntityNotFound(_0x47465d,null))[_0x7b8c('0x25')](function(_0x38f129){if(_0x38f129){return _0x38f129[_0x7b8c('0x52')](_0xf44e2b['body'][_0x7b8c('0x54')],_['omit'](_0xf44e2b[_0x7b8c('0x51')],[_0x7b8c('0x54'),'id'])||{});}})[_0x7b8c('0x25')](respondWithResult(_0x47465d,null))['catch'](handleError(_0x47465d,null));};exports[_0x7b8c('0x55')]=function(_0x555e03,_0x10159f,_0x39970a){var _0x31467e={};var _0x334b0c={};var _0x53541a;var _0x139cf9;return db['CmCompany']['findOne']({'where':{'id':_0x555e03[_0x7b8c('0x45')]['id']}})['then'](handleEntityNotFound(_0x10159f,null))[_0x7b8c('0x25')](function(_0x1e3f64){if(_0x1e3f64){_0x53541a=_0x1e3f64;_0x334b0c[_0x7b8c('0x2e')]=_[_0x7b8c('0x2f')](db['CmContact'][_0x7b8c('0x56')]);_0x334b0c[_0x7b8c('0x32')]=_[_0x7b8c('0x2f')](_0x555e03['query']);_0x334b0c['filters']=_['intersection'](_0x334b0c['model'],_0x334b0c[_0x7b8c('0x32')]);_0x31467e[_0x7b8c('0x33')]=_[_0x7b8c('0x31')](_0x334b0c[_0x7b8c('0x2e')],qs[_0x7b8c('0x34')](_0x555e03[_0x7b8c('0x32')][_0x7b8c('0x34')]));_0x31467e[_0x7b8c('0x33')]=_0x31467e[_0x7b8c('0x33')][_0x7b8c('0x35')]?_0x31467e[_0x7b8c('0x33')]:_0x334b0c['model'];_0x31467e['order']=qs[_0x7b8c('0x39')](_0x555e03[_0x7b8c('0x32')][_0x7b8c('0x39')]);_0x31467e[_0x7b8c('0x3a')]=qs[_0x7b8c('0x30')](_[_0x7b8c('0x3b')](_0x555e03[_0x7b8c('0x32')],_0x334b0c[_0x7b8c('0x30')]));if(_0x555e03[_0x7b8c('0x32')][_0x7b8c('0x3c')]){_0x31467e[_0x7b8c('0x3a')]=_[_0x7b8c('0x46')](_0x31467e[_0x7b8c('0x3a')],{'$or':_['map'](_0x31467e[_0x7b8c('0x33')],function(_0x5c944d){var _0xdd7a12={};_0xdd7a12[_0x5c944d]={'$like':'%'+_0x555e03[_0x7b8c('0x32')][_0x7b8c('0x3c')]+'%'};return _0xdd7a12;})});}_0x31467e=_[_0x7b8c('0x46')]({},_0x31467e,_0x555e03[_0x7b8c('0x3e')]);return _0x53541a['getContacts'](_0x31467e);}})[_0x7b8c('0x25')](function(_0x5c8208){if(_0x5c8208){_0x139cf9=_0x5c8208[_0x7b8c('0x35')];if(!_0x555e03[_0x7b8c('0x32')]['hasOwnProperty']('nolimit')){_0x31467e[_0x7b8c('0x1e')]=qs[_0x7b8c('0x1e')](_0x555e03[_0x7b8c('0x32')]['limit']);_0x31467e[_0x7b8c('0x1d')]=qs[_0x7b8c('0x1d')](_0x555e03['query'][_0x7b8c('0x1d')]);}return _0x53541a[_0x7b8c('0x55')](_0x31467e);}})[_0x7b8c('0x25')](function(_0x54be61){if(_0x54be61){return _0x54be61?{'count':_0x139cf9,'rows':_0x54be61}:null;}})[_0x7b8c('0x25')](respondWithResult(_0x10159f,null))[_0x7b8c('0x43')](handleError(_0x10159f,null));};
\ No newline at end of file
+var _0x7497=['status','offset','undefined','limit','count','set','json','reject','save','update','then','destroy','get','Companies','UserProfileResource','error','name','send','CmCompany','describe','model','keys','query','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','filter','options','includeAll','include','rows','catch','show','params','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','addContacts','CmContact','ids','omit','findOne','rawAttributes','map','getContacts','eml-format','rimraf','zip-dir','moment','bluebird','mustache','util','path','sox','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/license/util','sendStatus','end'];(function(_0x5793c3,_0x4ee694){var _0xc08138=function(_0x49f430){while(--_0x49f430){_0x5793c3['push'](_0x5793c3['shift']());}};_0xc08138(++_0x4ee694);}(_0x7497,0x13c));var _0x7749=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x7497[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require(_0x7749('0x0'));var rimraf=require(_0x7749('0x1'));var zipdir=require(_0x7749('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x7749('0x3'));var BPromise=require(_0x7749('0x4'));var Mustache=require(_0x7749('0x5'));var util=require(_0x7749('0x6'));var path=require(_0x7749('0x7'));var sox=require(_0x7749('0x8'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x7749('0x9'));var _=require(_0x7749('0xa'));var squel=require(_0x7749('0xb'));var crypto=require(_0x7749('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x7749('0xd'));var toCsv=require(_0x7749('0xe'));var querystring=require(_0x7749('0xf'));var Papa=require(_0x7749('0x10'));var Redis=require(_0x7749('0x11'));var authService=require(_0x7749('0x12'));var qs=require(_0x7749('0x13'));var as=require(_0x7749('0x14'));var hardwareService=require(_0x7749('0x15'));var logger=require(_0x7749('0x16'))(_0x7749('0x17'));var utils=require(_0x7749('0x18'));var config=require('../../config/environment');var licenseUtil=require(_0x7749('0x19'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x531c14,_0x55d0d5){_0x55d0d5=_0x55d0d5||0xcc;return function(_0x4becd7){if(_0x4becd7){return _0x531c14[_0x7749('0x1a')](_0x55d0d5);}return _0x531c14['status'](_0x55d0d5)[_0x7749('0x1b')]();};}function respondWithResult(_0x21437d,_0x1eae72){_0x1eae72=_0x1eae72||0xc8;return function(_0x27eff0){if(_0x27eff0){return _0x21437d[_0x7749('0x1c')](_0x1eae72)['json'](_0x27eff0);}};}function respondWithFilteredResult(_0x429527,_0x5da738){return function(_0x1d51de){if(_0x1d51de){var _0x216760=typeof _0x5da738[_0x7749('0x1d')]===_0x7749('0x1e')&&typeof _0x5da738[_0x7749('0x1f')]==='undefined';var _0x53ad41=_0x1d51de[_0x7749('0x20')];var _0x5da40d=_0x216760?0x0:_0x5da738[_0x7749('0x1d')];var _0x2910a3=_0x216760?_0x1d51de[_0x7749('0x20')]:_0x5da738[_0x7749('0x1d')]+_0x5da738[_0x7749('0x1f')];var _0x29f056;if(_0x2910a3>=_0x53ad41){_0x2910a3=_0x53ad41;_0x29f056=0xc8;}else{_0x29f056=0xce;}_0x429527[_0x7749('0x1c')](_0x29f056);return _0x429527[_0x7749('0x21')]('Content-Range',_0x5da40d+'-'+_0x2910a3+'/'+_0x53ad41)[_0x7749('0x22')](_0x1d51de);}return null;};}function patchUpdates(_0x39778c){return function(_0x18dfeb){try{jsonpatch['apply'](_0x18dfeb,_0x39778c,!![]);}catch(_0x4d7cd4){return BPromise[_0x7749('0x23')](_0x4d7cd4);}return _0x18dfeb[_0x7749('0x24')]();};}function saveUpdates(_0x5bad4b,_0x54ca85){return function(_0x35431b){if(_0x35431b){return _0x35431b[_0x7749('0x25')](_0x5bad4b)[_0x7749('0x26')](function(_0x46f5e7){return _0x46f5e7;});}return null;};}function removeEntity(_0x151a03,_0x47118a){return function(_0x572cee){if(_0x572cee){return _0x572cee[_0x7749('0x27')]()[_0x7749('0x26')](function(){var _0x490318=_0x572cee[_0x7749('0x28')]({'plain':!![]});var _0x44da42=_0x7749('0x29');return db[_0x7749('0x2a')]['destroy']({'where':{'type':_0x44da42,'resourceId':_0x490318['id']}})[_0x7749('0x26')](function(){return _0x572cee;});})['then'](function(){_0x151a03[_0x7749('0x1c')](0xcc)[_0x7749('0x1b')]();});}};}function handleEntityNotFound(_0x2dfdbd,_0x4b234e){return function(_0x4a29b1){if(!_0x4a29b1){_0x2dfdbd[_0x7749('0x1a')](0x194);}return _0x4a29b1;};}function handleError(_0x1d317f,_0x4036e1){_0x4036e1=_0x4036e1||0x1f4;return function(_0x2bb015){logger[_0x7749('0x2b')](_0x2bb015['stack']);if(_0x2bb015[_0x7749('0x2c')]){delete _0x2bb015['name'];}_0x1d317f[_0x7749('0x1c')](_0x4036e1)[_0x7749('0x2d')](_0x2bb015);};}exports['index']=function(_0xd68ed9,_0x47fec7){var _0x2607f9={},_0xf22f8c={},_0x34e8a3={'count':0x0,'rows':[]};return db[_0x7749('0x2e')][_0x7749('0x2f')]()[_0x7749('0x26')](function(_0x1aac4e){_0xf22f8c[_0x7749('0x30')]=_[_0x7749('0x31')](_0x1aac4e);_0xf22f8c[_0x7749('0x32')]=_['keys'](_0xd68ed9[_0x7749('0x32')]);_0xf22f8c[_0x7749('0x33')]=_[_0x7749('0x34')](_0xf22f8c[_0x7749('0x30')],_0xf22f8c[_0x7749('0x32')]);_0x2607f9['attributes']=_[_0x7749('0x34')](_0xf22f8c[_0x7749('0x30')],qs[_0x7749('0x35')](_0xd68ed9[_0x7749('0x32')]['fields']));_0x2607f9[_0x7749('0x36')]=_0x2607f9[_0x7749('0x36')][_0x7749('0x37')]?_0x2607f9[_0x7749('0x36')]:_0xf22f8c[_0x7749('0x30')];if(!_0xd68ed9[_0x7749('0x32')][_0x7749('0x38')](_0x7749('0x39'))){_0x2607f9[_0x7749('0x1f')]=qs[_0x7749('0x1f')](_0xd68ed9['query'][_0x7749('0x1f')]);_0x2607f9['offset']=qs[_0x7749('0x1d')](_0xd68ed9['query'][_0x7749('0x1d')]);}_0x2607f9[_0x7749('0x3a')]=qs['sort'](_0xd68ed9[_0x7749('0x32')][_0x7749('0x3b')]);_0x2607f9[_0x7749('0x3c')]=qs[_0x7749('0x33')](_[_0x7749('0x3d')](_0xd68ed9['query'],_0xf22f8c[_0x7749('0x33')]),_0x1aac4e);if(_0xd68ed9[_0x7749('0x32')]['filter']){_0x2607f9[_0x7749('0x3c')]=_[_0x7749('0x3e')](_0x2607f9[_0x7749('0x3c')],{'$or':_['map'](_0x2607f9['attributes'],function(_0x76a3c0){var _0x467260={};_0x467260[_0x76a3c0]={'$like':'%'+_0xd68ed9[_0x7749('0x32')][_0x7749('0x3f')]+'%'};return _0x467260;})});}_0x2607f9=_[_0x7749('0x3e')]({},_0x2607f9,_0xd68ed9[_0x7749('0x40')]);var _0x4c5077={'where':_0x2607f9[_0x7749('0x3c')]};return db['CmCompany']['count'](_0x4c5077)[_0x7749('0x26')](function(_0x2e8b06){_0x34e8a3['count']=_0x2e8b06;if(_0xd68ed9[_0x7749('0x32')][_0x7749('0x41')]){_0x2607f9[_0x7749('0x42')]=[{'all':!![]}];}return db[_0x7749('0x2e')]['findAll'](_0x2607f9);})[_0x7749('0x26')](function(_0x50fbf6){_0x34e8a3[_0x7749('0x43')]=_0x50fbf6;return _0x34e8a3;})[_0x7749('0x26')](respondWithFilteredResult(_0x47fec7,_0x2607f9))['catch'](handleError(_0x47fec7,null));})[_0x7749('0x44')](handleError(_0x47fec7,null));};exports[_0x7749('0x45')]=function(_0x417ecb,_0x422e5f){var _0x3e67ec={'raw':![],'where':{'id':_0x417ecb[_0x7749('0x46')]['id']}},_0x2c7114={};_0x2c7114[_0x7749('0x30')]=_[_0x7749('0x31')](db[_0x7749('0x2e')]['rawAttributes']);_0x2c7114[_0x7749('0x32')]=_['keys'](_0x417ecb[_0x7749('0x32')]);_0x2c7114[_0x7749('0x33')]=_[_0x7749('0x34')](_0x2c7114[_0x7749('0x30')],_0x2c7114[_0x7749('0x32')]);_0x3e67ec['attributes']=_[_0x7749('0x34')](_0x2c7114[_0x7749('0x30')],qs[_0x7749('0x35')](_0x417ecb['query'][_0x7749('0x35')]));_0x3e67ec[_0x7749('0x36')]=_0x3e67ec['attributes'][_0x7749('0x37')]?_0x3e67ec['attributes']:_0x2c7114[_0x7749('0x30')];if(_0x417ecb[_0x7749('0x32')][_0x7749('0x41')]){_0x3e67ec['include']=[{'all':!![]}];}_0x3e67ec=_[_0x7749('0x3e')]({},_0x3e67ec,_0x417ecb[_0x7749('0x40')]);return db['CmCompany'][_0x7749('0x47')](_0x3e67ec)['then'](handleEntityNotFound(_0x422e5f,null))['then'](respondWithResult(_0x422e5f,null))['catch'](handleError(_0x422e5f,null));};exports[_0x7749('0x48')]=function(_0x3a358e,_0x1ecbbd){return db[_0x7749('0x2e')][_0x7749('0x48')](_0x3a358e[_0x7749('0x49')],{})[_0x7749('0x26')](function(_0x4ba928){var _0x33d39=_0x3a358e[_0x7749('0x4a')][_0x7749('0x28')]({'plain':!![]});if(!_0x33d39)throw new Error(_0x7749('0x4b'));if(_0x33d39['role']===_0x7749('0x4a')){var _0x31da30=_0x4ba928['get']({'plain':!![]});var _0x34d448='Companies';return db[_0x7749('0x4c')][_0x7749('0x47')]({'where':{'name':_0x34d448,'userProfileId':_0x33d39['userProfileId']},'raw':!![]})[_0x7749('0x26')](function(_0x6db8b6){if(_0x6db8b6&&_0x6db8b6['autoAssociation']===0x0){return db[_0x7749('0x2a')]['create']({'name':_0x31da30[_0x7749('0x2c')],'resourceId':_0x31da30['id'],'type':_0x6db8b6['name'],'sectionId':_0x6db8b6['id']},{})['then'](function(){return _0x4ba928;});}else{return _0x4ba928;}})[_0x7749('0x44')](function(_0x2a84e5){logger[_0x7749('0x2b')](_0x7749('0x4d'),_0x2a84e5);throw _0x2a84e5;});}return _0x4ba928;})['then'](respondWithResult(_0x1ecbbd,0xc9))[_0x7749('0x44')](handleError(_0x1ecbbd,null));};exports['update']=function(_0x574f5e,_0x54dab6){if(_0x574f5e[_0x7749('0x49')]['id']){delete _0x574f5e[_0x7749('0x49')]['id'];}return db['CmCompany'][_0x7749('0x47')]({'where':{'id':_0x574f5e[_0x7749('0x46')]['id']}})['then'](handleEntityNotFound(_0x54dab6,null))[_0x7749('0x26')](saveUpdates(_0x574f5e[_0x7749('0x49')],null))[_0x7749('0x26')](respondWithResult(_0x54dab6,null))[_0x7749('0x44')](handleError(_0x54dab6,null));};exports[_0x7749('0x27')]=function(_0x5371be,_0x1afcee){return db['CmCompany']['find']({'where':{'id':_0x5371be['params']['id']}})['then'](handleEntityNotFound(_0x1afcee,null))['then'](removeEntity(_0x1afcee,null))[_0x7749('0x44')](handleError(_0x1afcee,null));};exports[_0x7749('0x2f')]=function(_0x3aa333,_0x3da8ae){return db[_0x7749('0x2e')][_0x7749('0x2f')]()['then'](respondWithResult(_0x3da8ae,null))[_0x7749('0x44')](handleError(_0x3da8ae,null));};exports[_0x7749('0x4e')]=function(_0x60f290,_0x4d333c,_0x217442){return db[_0x7749('0x4f')][_0x7749('0x47')]({'where':{'id':_0x60f290[_0x7749('0x46')]['id']}})[_0x7749('0x26')](handleEntityNotFound(_0x4d333c,null))[_0x7749('0x26')](function(_0x99c2c6){if(_0x99c2c6){return _0x99c2c6[_0x7749('0x4e')](_0x60f290[_0x7749('0x49')][_0x7749('0x50')],_[_0x7749('0x51')](_0x60f290[_0x7749('0x49')],[_0x7749('0x50'),'id'])||{});}})[_0x7749('0x26')](respondWithResult(_0x4d333c,null))['catch'](handleError(_0x4d333c,null));};exports['getContacts']=function(_0x5aa012,_0x2022bd,_0x4646a1){var _0x1cd0f2={};var _0x35063e={};var _0x3f262;var _0x5eebc1;return db['CmCompany'][_0x7749('0x52')]({'where':{'id':_0x5aa012[_0x7749('0x46')]['id']}})['then'](handleEntityNotFound(_0x2022bd,null))['then'](function(_0x15e4b9){if(_0x15e4b9){_0x3f262=_0x15e4b9;_0x35063e[_0x7749('0x30')]=_[_0x7749('0x31')](db[_0x7749('0x4f')][_0x7749('0x53')]);_0x35063e[_0x7749('0x32')]=_[_0x7749('0x31')](_0x5aa012[_0x7749('0x32')]);_0x35063e[_0x7749('0x33')]=_['intersection'](_0x35063e['model'],_0x35063e[_0x7749('0x32')]);_0x1cd0f2[_0x7749('0x36')]=_[_0x7749('0x34')](_0x35063e[_0x7749('0x30')],qs[_0x7749('0x35')](_0x5aa012['query']['fields']));_0x1cd0f2[_0x7749('0x36')]=_0x1cd0f2[_0x7749('0x36')][_0x7749('0x37')]?_0x1cd0f2[_0x7749('0x36')]:_0x35063e['model'];_0x1cd0f2['order']=qs[_0x7749('0x3b')](_0x5aa012[_0x7749('0x32')][_0x7749('0x3b')]);_0x1cd0f2[_0x7749('0x3c')]=qs[_0x7749('0x33')](_[_0x7749('0x3d')](_0x5aa012[_0x7749('0x32')],_0x35063e[_0x7749('0x33')]));if(_0x5aa012[_0x7749('0x32')][_0x7749('0x3f')]){_0x1cd0f2[_0x7749('0x3c')]=_[_0x7749('0x3e')](_0x1cd0f2[_0x7749('0x3c')],{'$or':_[_0x7749('0x54')](_0x1cd0f2[_0x7749('0x36')],function(_0x34e3d8){var _0x5f1fdf={};_0x5f1fdf[_0x34e3d8]={'$like':'%'+_0x5aa012['query'][_0x7749('0x3f')]+'%'};return _0x5f1fdf;})});}_0x1cd0f2=_['merge']({},_0x1cd0f2,_0x5aa012['options']);return _0x3f262[_0x7749('0x55')](_0x1cd0f2);}})[_0x7749('0x26')](function(_0x4a7ce3){if(_0x4a7ce3){_0x5eebc1=_0x4a7ce3[_0x7749('0x37')];if(!_0x5aa012[_0x7749('0x32')][_0x7749('0x38')]('nolimit')){_0x1cd0f2[_0x7749('0x1f')]=qs[_0x7749('0x1f')](_0x5aa012[_0x7749('0x32')][_0x7749('0x1f')]);_0x1cd0f2[_0x7749('0x1d')]=qs['offset'](_0x5aa012[_0x7749('0x32')][_0x7749('0x1d')]);}return _0x3f262[_0x7749('0x55')](_0x1cd0f2);}})[_0x7749('0x26')](function(_0x1d7587){if(_0x1d7587){return _0x1d7587?{'count':_0x5eebc1,'rows':_0x1d7587}:null;}})[_0x7749('0x26')](respondWithResult(_0x2022bd,null))['catch'](handleError(_0x2022bd,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbd8a=['util','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./cmCompany.attributes','exports','define','lodash'];(function(_0x1f5fd2,_0x2e0ebf){var _0x3e120b=function(_0x4076d8){while(--_0x4076d8){_0x1f5fd2['push'](_0x1f5fd2['shift']());}};_0x3e120b(++_0x2e0ebf);}(_0xbd8a,0x1a3));var _0xabd8=function(_0x1f3c56,_0x598757){_0x1f3c56=_0x1f3c56-0x0;var _0x569524=_0xbd8a[_0x1f3c56];return _0x569524;};'use strict';var _=require(_0xabd8('0x0'));var util=require(_0xabd8('0x1'));var logger=require('../../config/logger')(_0xabd8('0x2'));var moment=require(_0xabd8('0x3'));var BPromise=require(_0xabd8('0x4'));var rp=require(_0xabd8('0x5'));var fs=require('fs');var path=require(_0xabd8('0x6'));var rimraf=require(_0xabd8('0x7'));var config=require(_0xabd8('0x8'));var attributes=require(_0xabd8('0x9'));module[_0xabd8('0xa')]=function(_0x1ee06d,_0xae2560){return _0x1ee06d[_0xabd8('0xb')]('CmCompany',attributes,{'tableName':'cm_companies','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x0845=['../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./cmCompany.attributes','exports','CmCompany','cm_companies','lodash','util'];(function(_0x15bbad,_0x1b3eab){var _0x30f94f=function(_0xd4f078){while(--_0xd4f078){_0x15bbad['push'](_0x15bbad['shift']());}};_0x30f94f(++_0x1b3eab);}(_0x0845,0xa6));var _0x5084=function(_0x9abb24,_0x9317d6){_0x9abb24=_0x9abb24-0x0;var _0x1ada3d=_0x0845[_0x9abb24];return _0x1ada3d;};'use strict';var _=require(_0x5084('0x0'));var util=require(_0x5084('0x1'));var logger=require(_0x5084('0x2'))(_0x5084('0x3'));var moment=require(_0x5084('0x4'));var BPromise=require(_0x5084('0x5'));var rp=require(_0x5084('0x6'));var fs=require('fs');var path=require(_0x5084('0x7'));var rimraf=require(_0x5084('0x8'));var config=require(_0x5084('0x9'));var attributes=require(_0x5084('0xa'));module[_0x5084('0xb')]=function(_0x56cf08,_0x3a128d){return _0x56cf08['define'](_0x5084('0xc'),attributes,{'tableName':_0x5084('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x073c=['ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','CmCompany,\x20%s,\x20%s','request\x20sent','CmCompany,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','bluebird','randomstring'];(function(_0x3ba50b,_0x1eecaf){var _0x47725b=function(_0x1f276f){while(--_0x1f276f){_0x3ba50b['push'](_0x3ba50b['shift']());}};_0x47725b(++_0x1eecaf);}(_0x073c,0x1b6));var _0xc073=function(_0x128747,_0x313998){_0x128747=_0x128747-0x0;var _0x5e4001=_0x073c[_0x128747];return _0x5e4001;};'use strict';var _=require('lodash');var util=require('util');var moment=require('moment');var BPromise=require(_0xc073('0x0'));var rs=require(_0xc073('0x1'));var fs=require('fs');var Redis=require(_0xc073('0x2'));var db=require('../../mysqldb')['db'];var utils=require(_0xc073('0x3'));var logger=require(_0xc073('0x4'))(_0xc073('0x5'));var config=require(_0xc073('0x6'));var jayson=require(_0xc073('0x7'));var client=jayson[_0xc073('0x8')][_0xc073('0x9')]({'port':0x232a});function respondWithRpcPromise(_0xf24cde,_0x247e3c,_0x373c45){return new BPromise(function(_0x3a0bbe,_0x40e739){return client[_0xc073('0xa')](_0xf24cde,_0x373c45)[_0xc073('0xb')](function(_0x574626){logger[_0xc073('0xc')](_0xc073('0xd'),_0x247e3c,_0xc073('0xe'));logger['debug'](_0xc073('0xf'),_0x247e3c,_0xc073('0xe'),JSON[_0xc073('0x10')](_0x574626));if(_0x574626[_0xc073('0x11')]){if(_0x574626[_0xc073('0x11')][_0xc073('0x12')]===0x1f4){logger[_0xc073('0x11')](_0xc073('0xd'),_0x247e3c,_0x574626[_0xc073('0x11')]['message']);return _0x40e739(_0x574626['error']['message']);}logger['error'](_0xc073('0xd'),_0x247e3c,_0x574626[_0xc073('0x11')]['message']);return _0x3a0bbe(_0x574626[_0xc073('0x11')][_0xc073('0x13')]);}else{logger[_0xc073('0xc')](_0xc073('0xd'),_0x247e3c,_0xc073('0xe'));_0x3a0bbe(_0x574626[_0xc073('0x14')]['message']);}})[_0xc073('0x15')](function(_0x2d4f41){logger[_0xc073('0x11')](_0xc073('0xd'),_0x247e3c,_0x2d4f41);_0x40e739(_0x2d4f41);});});}
\ No newline at end of file
+var _0x8a50=['request\x20sent','CmCompany,\x20%s,\x20%s,\x20%s','error','message','catch','lodash','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','client','http','then','info','CmCompany,\x20%s,\x20%s'];(function(_0x3846d,_0x4a8858){var _0x10a88f=function(_0x8ec1a7){while(--_0x8ec1a7){_0x3846d['push'](_0x3846d['shift']());}};_0x10a88f(++_0x4a8858);}(_0x8a50,0x71));var _0x08a5=function(_0x3cbedc,_0xb8c71d){_0x3cbedc=_0x3cbedc-0x0;var _0xa55359=_0x8a50[_0x3cbedc];return _0xa55359;};'use strict';var _=require(_0x08a5('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0x08a5('0x1'));var rs=require(_0x08a5('0x2'));var fs=require('fs');var Redis=require(_0x08a5('0x3'));var db=require(_0x08a5('0x4'))['db'];var utils=require(_0x08a5('0x5'));var logger=require(_0x08a5('0x6'))('rpc');var config=require(_0x08a5('0x7'));var jayson=require('jayson/promise');var client=jayson[_0x08a5('0x8')][_0x08a5('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x20b914,_0x11e06c,_0x1fddb1){return new BPromise(function(_0x542d04,_0x4e61df){return client['request'](_0x20b914,_0x1fddb1)[_0x08a5('0xa')](function(_0x10157d){logger[_0x08a5('0xb')](_0x08a5('0xc'),_0x11e06c,_0x08a5('0xd'));logger['debug'](_0x08a5('0xe'),_0x11e06c,_0x08a5('0xd'),JSON['stringify'](_0x10157d));if(_0x10157d[_0x08a5('0xf')]){if(_0x10157d[_0x08a5('0xf')]['code']===0x1f4){logger[_0x08a5('0xf')]('CmCompany,\x20%s,\x20%s',_0x11e06c,_0x10157d[_0x08a5('0xf')][_0x08a5('0x10')]);return _0x4e61df(_0x10157d[_0x08a5('0xf')][_0x08a5('0x10')]);}logger[_0x08a5('0xf')](_0x08a5('0xc'),_0x11e06c,_0x10157d[_0x08a5('0xf')][_0x08a5('0x10')]);return _0x542d04(_0x10157d[_0x08a5('0xf')][_0x08a5('0x10')]);}else{logger[_0x08a5('0xb')](_0x08a5('0xc'),_0x11e06c,_0x08a5('0xd'));_0x542d04(_0x10157d['result'][_0x08a5('0x10')]);}})[_0x08a5('0x11')](function(_0x3d133b){logger[_0x08a5('0xf')](_0x08a5('0xc'),_0x11e06c,_0x3d133b);_0x4e61df(_0x3d133b);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8436=['../../components/interaction/service','../../config/environment','./cmCompany.controller','index','get','/describe','describe','isAuthenticated','show','/:id/contacts','post','create','addContacts','/:id','delete','destroy','exports','multer','util','connect-timeout','express','Router'];(function(_0x40bc7e,_0x2e4594){var _0x2f3ffa=function(_0x33940f){while(--_0x33940f){_0x40bc7e['push'](_0x40bc7e['shift']());}};_0x2f3ffa(++_0x2e4594);}(_0x8436,0xd7));var _0x6843=function(_0x4f724b,_0x490eee){_0x4f724b=_0x4f724b-0x0;var _0x4619a2=_0x8436[_0x4f724b];return _0x4619a2;};'use strict';var multer=require(_0x6843('0x0'));var util=require(_0x6843('0x1'));var path=require('path');var timeout=require(_0x6843('0x2'));var express=require(_0x6843('0x3'));var router=express[_0x6843('0x4')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0x6843('0x5'));var config=require(_0x6843('0x6'));var controller=require(_0x6843('0x7'));router['get']('/',auth['isAuthenticated'](),controller[_0x6843('0x8')]);router[_0x6843('0x9')](_0x6843('0xa'),auth['isAuthenticated'](),controller[_0x6843('0xb')]);router[_0x6843('0x9')]('/:id',auth[_0x6843('0xc')](),controller[_0x6843('0xd')]);router['get'](_0x6843('0xe'),auth[_0x6843('0xc')](),controller['getContacts']);router[_0x6843('0xf')]('/',auth[_0x6843('0xc')](),controller[_0x6843('0x10')]);router[_0x6843('0xf')](_0x6843('0xe'),auth[_0x6843('0xc')](),controller[_0x6843('0x11')]);router['put'](_0x6843('0x12'),auth[_0x6843('0xc')](),controller['update']);router[_0x6843('0x13')](_0x6843('0x12'),auth[_0x6843('0xc')](),controller[_0x6843('0x14')]);module[_0x6843('0x15')]=router;
\ No newline at end of file
+var _0xc460=['post','create','addContacts','delete','destroy','exports','multer','util','path','connect-timeout','express','../../components/auth/service','../../components/interaction/service','../../config/environment','./cmCompany.controller','get','isAuthenticated','index','/describe','/:id','/:id/contacts'];(function(_0x53db75,_0x4a6167){var _0x741df7=function(_0x1c40d4){while(--_0x1c40d4){_0x53db75['push'](_0x53db75['shift']());}};_0x741df7(++_0x4a6167);}(_0xc460,0xed));var _0x0c46=function(_0x42d73e,_0x42c65e){_0x42d73e=_0x42d73e-0x0;var _0x225809=_0xc460[_0x42d73e];return _0x225809;};'use strict';var multer=require(_0x0c46('0x0'));var util=require(_0x0c46('0x1'));var path=require(_0x0c46('0x2'));var timeout=require(_0x0c46('0x3'));var express=require(_0x0c46('0x4'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0x0c46('0x5'));var interaction=require(_0x0c46('0x6'));var config=require(_0x0c46('0x7'));var controller=require(_0x0c46('0x8'));router[_0x0c46('0x9')]('/',auth[_0x0c46('0xa')](),controller[_0x0c46('0xb')]);router[_0x0c46('0x9')](_0x0c46('0xc'),auth[_0x0c46('0xa')](),controller['describe']);router['get'](_0x0c46('0xd'),auth[_0x0c46('0xa')](),controller['show']);router[_0x0c46('0x9')](_0x0c46('0xe'),auth['isAuthenticated'](),controller['getContacts']);router[_0x0c46('0xf')]('/',auth[_0x0c46('0xa')](),controller[_0x0c46('0x10')]);router[_0x0c46('0xf')](_0x0c46('0xe'),auth[_0x0c46('0xa')](),controller[_0x0c46('0x11')]);router['put']('/:id',auth[_0x0c46('0xa')](),controller['update']);router[_0x0c46('0x12')](_0x0c46('0xd'),auth[_0x0c46('0xa')](),controller[_0x0c46('0x13')]);module[_0x0c46('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x12c9=['TEXT','INTEGER','UNSIGNED','DATE','NOW','lodash','sequelize','exports','STRING'];(function(_0x48b2b2,_0x1e91e5){var _0x71d611=function(_0x42b4b2){while(--_0x42b4b2){_0x48b2b2['push'](_0x48b2b2['shift']());}};_0x71d611(++_0x1e91e5);}(_0x12c9,0x95));var _0x912c=function(_0x2f60d4,_0x51ac18){_0x2f60d4=_0x2f60d4-0x0;var _0x19f3f8=_0x12c9[_0x2f60d4];return _0x19f3f8;};'use strict';var _=require(_0x912c('0x0'));var Sequelize=require(_0x912c('0x1'));module[_0x912c('0x2')]={'firstName':{'type':Sequelize['STRING'],'allowNull':![]},'lastName':{'type':Sequelize[_0x912c('0x3')]},'street':{'type':Sequelize[_0x912c('0x3')]},'postalCode':{'type':Sequelize[_0x912c('0x3')]},'city':{'type':Sequelize[_0x912c('0x3')]},'country':{'type':Sequelize[_0x912c('0x3')]},'dateOfBirth':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0x912c('0x4')]},'phone':{'type':Sequelize[_0x912c('0x3')]},'mobile':{'type':Sequelize['STRING']},'fax':{'type':Sequelize[_0x912c('0x3')]},'email':{'type':Sequelize[_0x912c('0x3')]},'url':{'type':Sequelize[_0x912c('0x3')]},'facebook':{'type':Sequelize[_0x912c('0x3')]},'fb_data':{'type':Sequelize[_0x912c('0x3')]},'twitter':{'type':Sequelize['STRING']},'skype':{'type':Sequelize[_0x912c('0x3')]},'teams':{'type':Sequelize[_0x912c('0x3')]},'viber':{'type':Sequelize['STRING']},'line':{'type':Sequelize[_0x912c('0x3')]},'wechat':{'type':Sequelize['STRING']},'telegram':{'type':Sequelize['STRING']},'UserId':{'type':Sequelize[_0x912c('0x5')]},'priority':{'type':Sequelize['INTEGER'](0x2)[_0x912c('0x6')],'defaultValue':0x2,'validate':{'min':0x0,'max':0x4}},'scheduledat':{'type':Sequelize[_0x912c('0x7')],'defaultValue':Sequelize[_0x912c('0x8')]}};
\ No newline at end of file
+var _0x4082=['NOW','lodash','exports','STRING','TEXT','INTEGER','UNSIGNED','DATE'];(function(_0x1cd1e0,_0x5b655c){var _0x362cb0=function(_0x54a60a){while(--_0x54a60a){_0x1cd1e0['push'](_0x1cd1e0['shift']());}};_0x362cb0(++_0x5b655c);}(_0x4082,0x181));var _0x2408=function(_0x202c61,_0x3673e0){_0x202c61=_0x202c61-0x0;var _0x540691=_0x4082[_0x202c61];return _0x540691;};'use strict';var _=require(_0x2408('0x0'));var Sequelize=require('sequelize');module[_0x2408('0x1')]={'firstName':{'type':Sequelize[_0x2408('0x2')],'allowNull':![]},'lastName':{'type':Sequelize[_0x2408('0x2')]},'street':{'type':Sequelize['STRING']},'postalCode':{'type':Sequelize[_0x2408('0x2')]},'city':{'type':Sequelize['STRING']},'country':{'type':Sequelize[_0x2408('0x2')]},'dateOfBirth':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0x2408('0x3')]},'phone':{'type':Sequelize['STRING']},'mobile':{'type':Sequelize['STRING']},'fax':{'type':Sequelize[_0x2408('0x2')]},'email':{'type':Sequelize['STRING']},'url':{'type':Sequelize[_0x2408('0x2')]},'facebook':{'type':Sequelize[_0x2408('0x2')]},'fb_data':{'type':Sequelize['STRING']},'twitter':{'type':Sequelize[_0x2408('0x2')]},'skype':{'type':Sequelize['STRING']},'teams':{'type':Sequelize[_0x2408('0x2')]},'viber':{'type':Sequelize['STRING']},'line':{'type':Sequelize[_0x2408('0x2')]},'wechat':{'type':Sequelize[_0x2408('0x2')]},'telegram':{'type':Sequelize[_0x2408('0x2')]},'UserId':{'type':Sequelize['INTEGER']},'priority':{'type':Sequelize[_0x2408('0x4')](0x2)[_0x2408('0x5')],'defaultValue':0x2,'validate':{'min':0x0,'max':0x4}},'scheduledat':{'type':Sequelize[_0x2408('0x6')],'defaultValue':Sequelize[_0x2408('0x7')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x747d=['concat','where','\x20=\x20?','tag','isArray','replace','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','getFullTextValue','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?','group','c.id','Sequelize','QueryTypes','clone','having','t.id\x20IN\x20?','resolve','user','role','agent','some','User','getLists','c.ListId\x20IS\x20NULL','c.ListId\x20IN\x20?','sequelize','toString','c.firstName','c.lastName','c.mobile','c.fax','c.email','c.ListId','c.deletedAt','c.CompanyId','GROUP_CONCAT(DISTINCT\x20t.id)','TagIds','Tags','rows','catch','params','describe','startsWith','columnName','displayName','findAll','alias','custom','values','merge','body','get','tags','join','info','[CmContact][merge]\x20to\x20%s\x20from\x20%s','CmHopper','[CmContact][merge][destroy][CmHopper],\x20%s','CmHopperBlack','[CmContact][merge][destroy][CmHopperBlack],\x20%s','create','ChatInteraction','update','ChatOfflineMessage','MailInteraction','MailMessage','SmsInteraction','FaxInteraction','OpenchannelMessage','CmHopperFinal','ReportAgentPreview','VoiceCallReport','ChatQueueReport','FaxQueueReport','JscriptySessionReport','WhatsappInteraction','WhatsappQueueReport','bulkCreate','each','duplicates','$or','findOrCreate','spread','show','$and','omit','format','cf_%d','pickBy','table','setFields','id\x20=\x20?','toParam','phone','getTags','rawAttributes','options','setTags','getHoppers','ContactId','includeAll','include','getHopperHistories','CmHopperHistory','uploadCsv','No\x20ListId\x20specified','binding_keys','No\x20association\x20keys\x20specified!','binding_values','No\x20association\x20values\x20specified!','socket_timestamp','Incorrect\x20binding\x20parameters\x20passed!','zipObject','firstName','No\x20firstName\x20column\x20specified','server/files/tmp','filename','chmodSync','0777','fork','../../components/import/cm/csv','CompanyId','File\x20uploaded\x20correctly!','pid','upload','parse','file','meta','import','binding','No\x20phone\x20column\x20specified','Unable\x20to\x20synchronize\x20socket,\x20no\x20timestamp\x20passed','../../components/import/cm/csv2','stringify','start\x20child\x20process\x20correctly!','exit','error\x20child\x20process','getJourney','mail','whatsapp','voice','-createdAt','channel','includes','Invalid\x20channel','toLowerCase','range','isValid','Invalid\x20date\x20for\x20range\x20from\x20filter','Invalid\x20date\x20for\x20range\x20to\x20filter','source','starttime','endtime','duration','note','createdAt','userDisposition','userSecondDisposition','UserId','fullname','findAndCountAll','startCase','chat','Website','closedAt','disposition','thirdDisposition','Account','Owner','Tag','DESC','customerIp','customerPort','osName','ratingMessage','ratingValue','substatus','openchannel','externalUrl','threadId','Interaction','flatten','reverse','slice','eml-format','rimraf','fast-json-patch','request-promise','bluebird','mustache','sox','to-csv','ejs','fs-extra','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../config/license/hardware','../../config/environment','../../config/license/util','../../mysqldb','defaults','redis','localhost','./cmContact.socket','register','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','reject','save','then','destroy','error','name','send','CmContact','keys','length','cf_','push','CmCustomField','findOne','trimStart','all','fieldType','type','model','query','filters','intersection','attributes','fields','nolimit','order','sort','pick','select','field','color','from','tools_tags','cm_contacts','cm_user_has_contacts','uc.CmContactId\x20=\x20c.id','left_join','cm_contact_has_tags','ct.CmContactId\x20=\x20c.id','t.id\x20=\x20ct.TagId','search','parseSearch','sqlOperator','conditions','find','split','map','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','union','and','uc.UserId\x20=\x20?','value','dateOfBirth','datetime','castTo','DATE','buildExpression','text','hasOwnProperty','filter','isNil','Contact','isEmpty','forEach','ListId'];(function(_0x3071ab,_0x574a59){var _0x2f458c=function(_0x1eb9c7){while(--_0x1eb9c7){_0x3071ab['push'](_0x3071ab['shift']());}};_0x2f458c(++_0x574a59);}(_0x747d,0x1e2));var _0xd747=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x747d[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require(_0xd747('0x0'));var rimraf=require(_0xd747('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xd747('0x2'));var rp=require(_0xd747('0x3'));var moment=require('moment');var BPromise=require(_0xd747('0x4'));var Mustache=require(_0xd747('0x5'));var util=require('util');var path=require('path');var sox=require(_0xd747('0x6'));var csv=require(_0xd747('0x7'));var ejs=require(_0xd747('0x8'));var fs=require('fs');var fs_extra=require(_0xd747('0x9'));var _=require('lodash');var squel=require('squel');var crypto=require(_0xd747('0xa'));var jsforce=require(_0xd747('0xb'));var deskjs=require('desk.js');var toCsv=require(_0xd747('0x7'));var querystring=require(_0xd747('0xc'));var Papa=require(_0xd747('0xd'));var Redis=require(_0xd747('0xe'));var authService=require(_0xd747('0xf'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xd747('0x10'));var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require(_0xd747('0x11'));var licenseUtil=require(_0xd747('0x12'));var db=require(_0xd747('0x13'))['db'];config['redis']=_[_0xd747('0x14')](config[_0xd747('0x15')],{'host':_0xd747('0x16'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0xd747('0x17'))[_0xd747('0x18')](socket);function respondWithStatusCode(_0x2bef54,_0x5062d0){_0x5062d0=_0x5062d0||0xcc;return function(_0x536a37){if(_0x536a37){return _0x2bef54[_0xd747('0x19')](_0x5062d0);}return _0x2bef54[_0xd747('0x1a')](_0x5062d0)[_0xd747('0x1b')]();};}function respondWithResult(_0x232d39,_0x563f19){_0x563f19=_0x563f19||0xc8;return function(_0x539996){if(_0x539996){return _0x232d39[_0xd747('0x1a')](_0x563f19)[_0xd747('0x1c')](_0x539996);}};}function respondWithFilteredResult(_0x597de5,_0xeadbb8){return function(_0x12e8cb){if(_0x12e8cb){var _0x2c8584=typeof _0xeadbb8[_0xd747('0x1d')]===_0xd747('0x1e')&&typeof _0xeadbb8[_0xd747('0x1f')]===_0xd747('0x1e');var _0x542538=_0x12e8cb[_0xd747('0x20')];var _0x23e849=_0x2c8584?0x0:_0xeadbb8[_0xd747('0x1d')];var _0x58cf28=_0x2c8584?_0x12e8cb['count']:_0xeadbb8[_0xd747('0x1d')]+_0xeadbb8['limit'];var _0x33d029;if(_0x58cf28>=_0x542538){_0x58cf28=_0x542538;_0x33d029=0xc8;}else{_0x33d029=0xce;}_0x597de5[_0xd747('0x1a')](_0x33d029);return _0x597de5[_0xd747('0x21')](_0xd747('0x22'),_0x23e849+'-'+_0x58cf28+'/'+_0x542538)['json'](_0x12e8cb);}return null;};}function patchUpdates(_0x51bd3b){return function(_0x2c5bbe){try{jsonpatch['apply'](_0x2c5bbe,_0x51bd3b,!![]);}catch(_0x1b9653){return BPromise[_0xd747('0x23')](_0x1b9653);}return _0x2c5bbe[_0xd747('0x24')]();};}function saveUpdates(_0x3bfbfb,_0x5b967b){return function(_0x185a47){if(_0x185a47){return _0x185a47['update'](_0x3bfbfb)[_0xd747('0x25')](function(_0x263204){return _0x263204;});}return null;};}function removeEntity(_0x3a9b87,_0x542115){return function(_0xba8a45){if(_0xba8a45){return _0xba8a45[_0xd747('0x26')]()[_0xd747('0x25')](function(){_0x3a9b87[_0xd747('0x1a')](0xcc)['end']();});}};}function handleEntityNotFound(_0x439a0f,_0x353c8a){return function(_0x437ddb){if(!_0x437ddb){_0x439a0f[_0xd747('0x19')](0x194);}return _0x437ddb;};}function handleError(_0x5f3780,_0x487fac){_0x487fac=_0x487fac||0x1f4;return function(_0x3ac645){logger[_0xd747('0x27')](_0x3ac645['stack']);if(_0x3ac645[_0xd747('0x28')]){delete _0x3ac645['name'];}_0x5f3780[_0xd747('0x1a')](_0x487fac)[_0xd747('0x29')](_0x3ac645);};}exports['index']=function(_0x461056,_0x201b11){var _0x5d9791={},_0x5b1f72={},_0x351ce9={'count':0x0,'rows':[]};return db[_0xd747('0x2a')]['describe']()['then'](function(_0x1daac2){var _0x2d2b8c=[];for(var _0x3f7db2=0x0;_0x3f7db2<Object[_0xd747('0x2b')](_0x1daac2)[_0xd747('0x2c')];_0x3f7db2++){var _0x59c677=Object[_0xd747('0x2b')](_0x1daac2)[_0x3f7db2];if(_['startsWith'](_0x59c677,_0xd747('0x2d'))){_0x2d2b8c[_0xd747('0x2e')](db[_0xd747('0x2f')][_0xd747('0x30')]({'where':{'id':_[_0xd747('0x31')](_0x59c677,_0xd747('0x2d'))},'raw':!![]}));}}return BPromise[_0xd747('0x32')](_0x2d2b8c)[_0xd747('0x25')](function(_0x425918){for(var _0x461c46=0x0;_0x461c46<_0x425918['length'];_0x461c46++){if(_0x425918[_0x461c46]){var _0x3c20aa=_0xd747('0x2d')+_0x425918[_0x461c46]['id'];var _0x2cb521=_0x1daac2[_0x3c20aa];_0x2cb521[_0xd747('0x33')]=_0x425918[_0x461c46][_0xd747('0x34')];}}return _0x1daac2;});})[_0xd747('0x25')](function(_0x5cceaa){_0x5b1f72[_0xd747('0x35')]=_['keys'](_0x5cceaa);_0x5b1f72['query']=_['keys'](_0x461056[_0xd747('0x36')]);_0x5b1f72[_0xd747('0x37')]=_[_0xd747('0x38')](_0x5b1f72[_0xd747('0x35')],_0x5b1f72['query']);_0x5d9791[_0xd747('0x39')]=_[_0xd747('0x38')](_0x5b1f72[_0xd747('0x35')],qs[_0xd747('0x3a')](_0x461056[_0xd747('0x36')][_0xd747('0x3a')]));_0x5d9791[_0xd747('0x39')]=_0x5d9791[_0xd747('0x39')][_0xd747('0x2c')]?_0x5d9791[_0xd747('0x39')]:_0x5b1f72[_0xd747('0x35')];if(!_0x461056[_0xd747('0x36')]['hasOwnProperty'](_0xd747('0x3b'))){_0x5d9791[_0xd747('0x1f')]=qs['limit'](_0x461056['query'][_0xd747('0x1f')]);_0x5d9791[_0xd747('0x1d')]=qs[_0xd747('0x1d')](_0x461056['query'][_0xd747('0x1d')]);}_0x5d9791[_0xd747('0x3c')]=qs['sort'](_0x461056[_0xd747('0x36')][_0xd747('0x3d')]);_0x5d9791['where']=qs[_0xd747('0x37')](_[_0xd747('0x3e')](_0x461056[_0xd747('0x36')],_0x5b1f72[_0xd747('0x37')]),_0x5cceaa);var _0x282126=[];var _0x18415a=squel[_0xd747('0x3f')]()[_0xd747('0x40')]('id')[_0xd747('0x40')]('name')[_0xd747('0x40')](_0xd747('0x41'))[_0xd747('0x42')](_0xd747('0x43'));var _0x2dcd3e=squel[_0xd747('0x3f')]()[_0xd747('0x42')](_0xd747('0x44'),'c')['left_join'](_0xd747('0x45'),'uc',_0xd747('0x46'))[_0xd747('0x47')](_0xd747('0x48'),'ct',_0xd747('0x49'))[_0xd747('0x47')]('tools_tags','t',_0xd747('0x4a'))['where']('c.deletedAt\x20IS\x20NULL');var _0x3a27f4=squel['expr']();var _0x2433a5=[];var _0x413b29=squel['expr']();var _0x4bfcbe;if(_0x461056[_0xd747('0x36')][_0xd747('0x4b')]){_0x4bfcbe=as[_0xd747('0x4c')](_0x461056[_0xd747('0x36')][_0xd747('0x4b')]);var _0x145fbf=_0x4bfcbe[_0xd747('0x4d')];for(var _0x2bce19=0x0;_0x2bce19<_0x4bfcbe[_0xd747('0x4e')][_0xd747('0x2c')];_0x2bce19++){var _0xd86b4d=_0x4bfcbe[_0xd747('0x4e')][_0x2bce19];var _0x238697='c';var _0xab754c=_(_0x5cceaa)[_0xd747('0x2b')]()[_0xd747('0x4f')](function(_0x37d02d){return _0x37d02d===_0xd86b4d[_0xd747('0x40')];});if(_0xab754c)_0xab754c=_0x5cceaa[_0xd86b4d[_0xd747('0x40')]];if(!_0xab754c){if(_0xd86b4d[_0xd747('0x40')]==='Tag'){var _0x5c024a=_0xd86b4d['value'][_0xd747('0x50')](',')[_0xd747('0x51')](function(_0x12b9c8){return Number(_0x12b9c8);});_0x5c024a['forEach'](function(_0x44af84){_0x413b29['or'](_0xd747('0x52'),'%,'+_0x44af84+',%');});_0x2433a5=_[_0xd747('0x53')](_0x2433a5,_0x5c024a);}else if(_0xd86b4d[_0xd747('0x40')]==='User'){_0x3a27f4[_0xd747('0x54')](_0xd747('0x55'),_0xd86b4d[_0xd747('0x56')]);}}else{if(_0xd86b4d[_0xd747('0x40')]===_0xd747('0x57')||_0xab754c[_0xd747('0x33')]===_0xd747('0x58'))_0xd86b4d[_0xd747('0x59')]=_0xd747('0x5a');var _0x5266e5=as[_0xd747('0x5b')](_0x238697,_0xab754c[_0xd747('0x34')],_0xd86b4d);_0x3a27f4[_0x145fbf](_0x5266e5[_0xd747('0x5c')],_0x5266e5['value']['start'],_0x5266e5[_0xd747('0x56')][_0xd747('0x1b')]);}}}else{var _0x9cf9c=_(Object['keys'](_0x461056[_0xd747('0x36')]))[_0xd747('0x51')](function(_0x71d940){return _0x5cceaa[_0xd747('0x5d')](_0x71d940)?_0x71d940:undefined;})[_0xd747('0x5e')](function(_0x5ce38d){return!_[_0xd747('0x5f')](_0x5ce38d);})['value']();if(_0x461056[_0xd747('0x36')]['Contact'])_0x9cf9c[_0xd747('0x2e')](_0xd747('0x60'));if(!_[_0xd747('0x61')](_0x9cf9c)){_0x9cf9c[_0xd747('0x62')](function(_0x2c7700){if(_0x2c7700===_0xd747('0x63')){_0x2dcd3e['where']('c.ListId\x20IN\x20?',[][_0xd747('0x64')](_0x461056[_0xd747('0x36')][_0x2c7700]));}else if(_0x2c7700==='Contact'){var _0x5193fc='%'+_0x461056['query'][_0x2c7700]+'%';_0x2dcd3e[_0xd747('0x65')]('CONCAT_WS(\x27\x20\x27,\x20c.firstName,\x20c.lastName,\x20c.email)\x20LIKE\x20?',_0x5193fc);}else{_0x2dcd3e[_0xd747('0x65')]('c.'+_0x2c7700+_0xd747('0x66'),_0x461056['query'][_0x2c7700]);}});}if(_0x461056[_0xd747('0x36')][_0xd747('0x67')]){_0x2433a5=_[_0xd747('0x68')](_0x461056[_0xd747('0x36')][_0xd747('0x67')])?_0x461056[_0xd747('0x36')][_0xd747('0x67')]:new Array(_0x461056[_0xd747('0x36')]['tag']);_0x2433a5[_0xd747('0x62')](function(_0x584f31){_0x413b29['or'](_0xd747('0x52'),'%,'+_0x584f31+',%');});}if(_0x461056['query'][_0xd747('0x5e')]){var _0x9239b2=_0x461056[_0xd747('0x36')][_0xd747('0x5e')][_0xd747('0x69')]('\x5c','\x5c\x5c')['replace'](/'/g,'\x27\x27');if(_0x9239b2['split']('\x20')[_0xd747('0x2c')]>0x1){_0x3a27f4['or'](_0xd747('0x6a'),qs[_0xd747('0x6b')](_0x9239b2),null);}else{if(qs[_0xd747('0x6c')](_0x9239b2)){_0x3a27f4['or']('c.id\x20LIKE\x20?',_0x9239b2+'%');_0x3a27f4['or'](_0xd747('0x6d'),_0x9239b2+'%');_0x3a27f4['or'](_0xd747('0x6e'),_0x9239b2+'%');_0x3a27f4['or'](_0xd747('0x6f'),_0x9239b2+'%');}else if(qs[_0xd747('0x70')](_0x9239b2)){_0x3a27f4['or'](_0xd747('0x71'),_0x9239b2+'%');}else{_0x3a27f4['or'](_0xd747('0x72'),'%'+_0x9239b2+'%');_0x3a27f4['or'](_0xd747('0x73'),'%'+_0x9239b2+'%');_0x3a27f4['or'](_0xd747('0x71'),'%'+_0x9239b2+'%');}}}}_0x2dcd3e[_0xd747('0x65')](_0x3a27f4);_0x2dcd3e[_0xd747('0x74')](_0xd747('0x75'));var _0x1e3987={'type':db[_0xd747('0x76')][_0xd747('0x77')]['SELECT'],'raw':!![]};var _0x1aadc5=_0x2dcd3e[_0xd747('0x78')]()[_0xd747('0x40')](_0xd747('0x75'));if(_0x5d9791[_0xd747('0x3c')]){_0x5d9791[_0xd747('0x3c')][_0xd747('0x62')](function(_0x4b86ed){_0x2dcd3e[_0xd747('0x3c')]('c.'+_0x4b86ed[0x0],_0x4b86ed[0x1]==='DESC'?![]:!![]);});}if(!_[_0xd747('0x61')](_0x2433a5)){_0x2dcd3e[_0xd747('0x79')](_0x413b29);_0x1aadc5['where'](_0xd747('0x7a'),_0x2433a5);}BPromise[_0xd747('0x7b')]()[_0xd747('0x25')](function(){if(!_0x4bfcbe)return;if(_0x461056[_0xd747('0x7c')][_0xd747('0x7d')]!==_0xd747('0x7e'))return;if(!_[_0xd747('0x7f')](_0x4bfcbe['conditions'],[_0xd747('0x40'),_0xd747('0x80')])){return _0x461056['user'][_0xd747('0x81')]({'attributes':['id'],'raw':!![]})[_0xd747('0x25')](function(_0x486bd0){if(_['isEmpty'](_0x486bd0)){_0x1aadc5[_0xd747('0x65')](_0xd747('0x82'));_0x2dcd3e[_0xd747('0x65')]('c.ListId\x20IS\x20NULL');}else{_0x1aadc5[_0xd747('0x65')](_0xd747('0x83'),_['map'](_0x486bd0,'id'));_0x2dcd3e[_0xd747('0x65')](_0xd747('0x83'),_[_0xd747('0x51')](_0x486bd0,'id'));}});}})[_0xd747('0x25')](function(){if(_0x461056[_0xd747('0x7c')]['role']===_0xd747('0x7e')&&!_0x4bfcbe&&!_0x461056[_0xd747('0x36')][_0xd747('0x63')])return[];return db[_0xd747('0x84')]['query'](_0x1aadc5[_0xd747('0x85')](),_0x1e3987);})[_0xd747('0x25')](function(_0x2cf22b){_0x351ce9['count']=_0x2cf22b[_0xd747('0x2c')];if(_0x351ce9[_0xd747('0x20')]===0x0)return[];return db[_0xd747('0x84')][_0xd747('0x36')](_0x18415a[_0xd747('0x85')](),_0x1e3987)[_0xd747('0x25')](function(_0x475427){_0x282126=_['keyBy'](_0x475427,'id');_0x1e3987=_['merge'](_0x1e3987,{'model':db[_0xd747('0x2a')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x461056[_0xd747('0x36')][_0xd747('0x3a')]){_0x5d9791[_0xd747('0x39')][_0xd747('0x62')](function(_0x19137f){_0x2dcd3e[_0xd747('0x40')]('c.'+_0x19137f);});}else{_0x2dcd3e[_0xd747('0x40')](_0xd747('0x75'));_0x2dcd3e[_0xd747('0x40')](_0xd747('0x86'));_0x2dcd3e[_0xd747('0x40')](_0xd747('0x87'));_0x2dcd3e[_0xd747('0x40')]('c.phone');_0x2dcd3e[_0xd747('0x40')](_0xd747('0x88'));_0x2dcd3e[_0xd747('0x40')](_0xd747('0x89'));_0x2dcd3e[_0xd747('0x40')](_0xd747('0x8a'));_0x2dcd3e[_0xd747('0x40')](_0xd747('0x8b'));_0x2dcd3e[_0xd747('0x40')]('c.createdAt');_0x2dcd3e[_0xd747('0x40')](_0xd747('0x8c'));_0x2dcd3e[_0xd747('0x40')](_0xd747('0x8d'));_0x2dcd3e[_0xd747('0x40')](_0xd747('0x8e'),_0xd747('0x8f'));}if(_0x5d9791[_0xd747('0x1f')])_0x2dcd3e['limit'](_0x5d9791[_0xd747('0x1f')]);if(_0x5d9791['offset'])_0x2dcd3e['offset'](_0x5d9791[_0xd747('0x1d')]);return db[_0xd747('0x84')][_0xd747('0x36')](_0x2dcd3e[_0xd747('0x85')](),_0x1e3987);});})[_0xd747('0x25')](function(_0x38e4ca){_0x38e4ca['forEach'](function(_0x3c9c6d){if(_0x3c9c6d['TagIds']){_0x3c9c6d['Tags']=[];_0x3c9c6d['TagIds'][_0xd747('0x50')](',')[_0xd747('0x62')](function(_0x2551d0){_0x3c9c6d[_0xd747('0x90')]['push'](_0x282126[_0x2551d0]);});}delete _0x3c9c6d[_0xd747('0x8f')];});_0x351ce9[_0xd747('0x91')]=_0x38e4ca;return _0x351ce9;})[_0xd747('0x25')](respondWithFilteredResult(_0x201b11,_0x5d9791));})[_0xd747('0x92')](handleError(_0x201b11,null));};exports[_0xd747('0x26')]=function(_0x2772d5,_0x29672c){return db[_0xd747('0x2a')][_0xd747('0x4f')]({'where':{'id':_0x2772d5[_0xd747('0x93')]['id']}})[_0xd747('0x25')](handleEntityNotFound(_0x29672c,null))[_0xd747('0x25')](removeEntity(_0x29672c,null))[_0xd747('0x92')](handleError(_0x29672c,null));};exports[_0xd747('0x94')]=function(_0xa7d6d5,_0x787569){return db['CmContact'][_0xd747('0x94')]()[_0xd747('0x25')](function(_0x56c8eb){delete _0x56c8eb['tags'];for(var _0x589b7f=0x0;_0x589b7f<Object['keys'](_0x56c8eb)[_0xd747('0x2c')];_0x589b7f++){var _0x52efad=Object[_0xd747('0x2b')](_0x56c8eb)[_0x589b7f];if(!_[_0xd747('0x95')](_0x52efad,_0xd747('0x2d'))){_0x56c8eb[_0x52efad][_0xd747('0x96')]=_0x52efad;_0x56c8eb[_0x52efad][_0xd747('0x97')]=_0x52efad;}}return _0x56c8eb;})[_0xd747('0x25')](function(_0x4629f2){var _0x415092={'where':{'$or':[{'ListId':_0xa7d6d5[_0xd747('0x36')]['id']},{'ListId':null}]},'raw':!![]};return db[_0xd747('0x2f')][_0xd747('0x98')](_0x415092)[_0xd747('0x25')](function(_0x2ec04f){for(var _0x35b0eb=0x0;_0x35b0eb<_0x2ec04f[_0xd747('0x2c')];_0x35b0eb++){var _0x49ca9e=_0xd747('0x2d')+_0x2ec04f[_0x35b0eb]['id'];_0x4629f2[_0x49ca9e]['columnName']=_0x49ca9e;_0x4629f2[_0x49ca9e]['displayName']=_0x2ec04f[_0x35b0eb][_0xd747('0x99')];_0x4629f2[_0x49ca9e][_0xd747('0x9a')]={'type':_0x2ec04f[_0x35b0eb]['type'],'values':_0x2ec04f[_0x35b0eb][_0xd747('0x9b')]};}Object[_0xd747('0x2b')](_0x4629f2)[_0xd747('0x62')](function(_0x1f53c3){if(!_0x4629f2[_0x1f53c3][_0xd747('0x5d')](_0xd747('0x96'))){delete _0x4629f2[_0x1f53c3];}});return _0x4629f2;});})[_0xd747('0x25')](respondWithResult(_0x787569,null))[_0xd747('0x92')](handleError(_0x787569,null));};exports[_0xd747('0x9c')]=function(_0x147f21,_0x542748){var _0x5893c1;var _0x4daa0a;var _0x129ea4;if(_0x147f21[_0xd747('0x9d')]['id']){delete _0x147f21[_0xd747('0x9d')]['id'];}return db['CmContact'][_0xd747('0x98')]({'where':{'id':[_0x147f21[_0xd747('0x9d')]['to'],_0x147f21[_0xd747('0x9d')][_0xd747('0x42')]]}})[_0xd747('0x25')](function(_0x1dddeb){if(_0x1dddeb){if(_0x1dddeb[_0xd747('0x2c')]!==0x2){return null;}_0x1dddeb[0x0]=_0x1dddeb[0x0]['get']({'plain':!![]});_0x1dddeb[0x1]=_0x1dddeb[0x1][_0xd747('0x9e')]({'plain':!![]});delete _0x1dddeb[0x0]['id'];delete _0x1dddeb[0x1]['id'];return _['mergeWith'](_0x1dddeb[0x0],_0x1dddeb[0x1],function(_0x277bbf,_0x43b0ff){if(Array['isArray'](_0x43b0ff)&&!_0x43b0ff[_0xd747('0x2c')]){return _0x277bbf;}else if(!_0x43b0ff){return _0x277bbf;}});}})[_0xd747('0x25')](handleEntityNotFound(_0x542748,null))['then'](function(_0x1ff061){if(_0x1ff061){if(_0x1ff061[_0xd747('0x9f')]&&_[_0xd747('0x68')](_0x1ff061['tags'])){_0x1ff061[_0xd747('0x9f')]=_0x1ff061[_0xd747('0x9f')][_0xd747('0xa0')]();}logger[_0xd747('0xa1')](_0xd747('0xa2'),_0x147f21['body']['to'],_0x147f21[_0xd747('0x9d')][_0xd747('0x42')]);return db[_0xd747('0xa3')][_0xd747('0x26')]({'where':{'ContactId':[_0x147f21[_0xd747('0x9d')]['to'],_0x147f21[_0xd747('0x9d')][_0xd747('0x42')]]}})[_0xd747('0x25')](function(_0x14a27a){logger[_0xd747('0xa1')](_0xd747('0xa4'),_0x14a27a);return db[_0xd747('0xa5')][_0xd747('0x26')]({'where':{'ContactId':[_0x147f21[_0xd747('0x9d')]['to'],_0x147f21[_0xd747('0x9d')][_0xd747('0x42')]]}})[_0xd747('0x25')](function(_0x3f0eb7){logger[_0xd747('0xa1')](_0xd747('0xa6'),_0x3f0eb7);return db[_0xd747('0x2a')][_0xd747('0xa7')](_0x1ff061);});});}})[_0xd747('0x25')](function(_0x5eb7d9){if(_0x5eb7d9){_0x5893c1=_0x5eb7d9;_0x4daa0a={'ContactId':_0x5893c1['id']};_0x129ea4={'where':{'ContactId':[_0x147f21[_0xd747('0x9d')]['to'],_0x147f21[_0xd747('0x9d')][_0xd747('0x42')]]}};return db[_0xd747('0xa8')][_0xd747('0xa9')](_0x4daa0a,_0x129ea4);}})[_0xd747('0x25')](function(){if(_0x5893c1){return db['ChatMessage']['update'](_0x4daa0a,_0x129ea4);}})['then'](function(){if(_0x5893c1){return db[_0xd747('0xaa')][_0xd747('0xa9')](_0x4daa0a,_0x129ea4);}})['then'](function(){if(_0x5893c1){return db[_0xd747('0xab')][_0xd747('0xa9')](_0x4daa0a,_0x129ea4);}})[_0xd747('0x25')](function(){if(_0x5893c1){return db[_0xd747('0xac')]['update'](_0x4daa0a,_0x129ea4);}})[_0xd747('0x25')](function(){if(_0x5893c1){return db[_0xd747('0xab')]['update'](_0x4daa0a,_0x129ea4);}})['then'](function(){if(_0x5893c1){return db['MailMessage'][_0xd747('0xa9')](_0x4daa0a,_0x129ea4);}})[_0xd747('0x25')](function(){if(_0x5893c1){return db[_0xd747('0xad')][_0xd747('0xa9')](_0x4daa0a,_0x129ea4);}})[_0xd747('0x25')](function(){if(_0x5893c1){return db['SmsMessage']['update'](_0x4daa0a,_0x129ea4);}})[_0xd747('0x25')](function(){if(_0x5893c1){return db[_0xd747('0xae')][_0xd747('0xa9')](_0x4daa0a,_0x129ea4);}})[_0xd747('0x25')](function(){if(_0x5893c1){return db['FaxMessage'][_0xd747('0xa9')](_0x4daa0a,_0x129ea4);}})[_0xd747('0x25')](function(){if(_0x5893c1){return db['OpenchannelInteraction']['update'](_0x4daa0a,_0x129ea4);}})[_0xd747('0x25')](function(){if(_0x5893c1){return db[_0xd747('0xaf')][_0xd747('0xa9')](_0x4daa0a,_0x129ea4);}})[_0xd747('0x25')](function(){if(_0x5893c1){return db[_0xd747('0xb0')][_0xd747('0xa9')](_0x4daa0a,_0x129ea4);}})[_0xd747('0x25')](function(){if(_0x5893c1){return db['CmHopperHistory'][_0xd747('0xa9')](_0x4daa0a,_0x129ea4);}})[_0xd747('0x25')](function(){if(_0x5893c1){return db[_0xd747('0xb1')]['update'](_0x4daa0a,_0x129ea4);}})[_0xd747('0x25')](function(){if(_0x5893c1){return db[_0xd747('0xb2')][_0xd747('0xa9')](_0x4daa0a,_0x129ea4);}})[_0xd747('0x25')](function(){if(_0x5893c1){return db[_0xd747('0xb3')][_0xd747('0xa9')](_0x4daa0a,_0x129ea4);}})[_0xd747('0x25')](function(){if(_0x5893c1){return db[_0xd747('0xb4')][_0xd747('0xa9')](_0x4daa0a,_0x129ea4);}})[_0xd747('0x25')](function(){if(_0x5893c1){return db['MailQueueReport']['update'](_0x4daa0a,_0x129ea4);}})['then'](function(){if(_0x5893c1){return db['OpenchannelQueueReport'][_0xd747('0xa9')](_0x4daa0a,_0x129ea4);}})[_0xd747('0x25')](function(){if(_0x5893c1){return db['SmsQueueReport'][_0xd747('0xa9')](_0x4daa0a,_0x129ea4);}})['then'](function(){if(_0x5893c1){return db[_0xd747('0xb5')]['update'](_0x4daa0a,_0x129ea4);}})[_0xd747('0x25')](function(){if(_0x5893c1){return db[_0xd747('0xb6')][_0xd747('0xa9')](_0x4daa0a,_0x129ea4);}})[_0xd747('0x25')](function(){if(_0x5893c1){return db['WhatsappMessage'][_0xd747('0xa9')](_0x4daa0a,_0x129ea4);}})[_0xd747('0x25')](function(){if(_0x5893c1){return db[_0xd747('0xb7')][_0xd747('0xa9')](_0x4daa0a,_0x129ea4);}})[_0xd747('0x25')](function(){if(_0x5893c1){return db[_0xd747('0x2a')][_0xd747('0x26')]({'where':{'id':[_0x147f21[_0xd747('0x9d')]['to'],_0x147f21['body'][_0xd747('0x42')]]}});}})['then'](function(){if(_0x5893c1){return _0x5893c1;}})[_0xd747('0x25')](respondWithResult(_0x542748,null))[_0xd747('0x92')](handleError(_0x542748,null));};exports[_0xd747('0xa7')]=function(_0x395782,_0x17d850){return db[_0xd747('0x2a')][_0xd747('0x94')]()[_0xd747('0x25')](function(_0x14fce0){if(_0x395782[_0xd747('0x9d')]['tags']&&_[_0xd747('0x68')](_0x395782['body'][_0xd747('0x9f')])){if(_0x395782[_0xd747('0x9d')][_0xd747('0x9f')]['length']){_0x395782[_0xd747('0x9d')][_0xd747('0x9f')]=_0x395782[_0xd747('0x9d')]['tags'][_0xd747('0xa0')](';')+';';}else{_0x395782[_0xd747('0x9d')][_0xd747('0x9f')]=null;}}else{_0x395782[_0xd747('0x9d')][_0xd747('0x9f')]=null;}return db[_0xd747('0x2a')][_0xd747('0xa7')](_0x395782[_0xd747('0x9d')],{'fields':_['keys'](_0x14fce0),'raw':!![]});})[_0xd747('0x25')](respondWithResult(_0x17d850,0xc9))[_0xd747('0x92')](handleError(_0x17d850,null));};exports[_0xd747('0xb8')]=function(_0x24a708,_0x5463f8){var _0x32a49f=[];var _0x2b3711=0x0;var _0x448815=0x0;var _0x3b0d03=0x0;return db[_0xd747('0x2a')]['describe']()['then'](function(_0x4d065d){return BPromise[_0xd747('0xb9')](_0x24a708[_0xd747('0x9d')],function(_0x495b85){var _0x1fa9e6={'where':{'$or':[]},'defaults':_0x495b85,'fields':_['keys'](_0x4d065d),'raw':!![]};if(_0x495b85['duplicates']){for(var _0x5532c1=0x0;_0x5532c1<_0x495b85[_0xd747('0xba')]['length'];_0x5532c1++){var _0x2be07f={};_0x2be07f[_0x495b85[_0xd747('0xba')][_0x5532c1]]=_0x495b85[_0x495b85['duplicates'][_0x5532c1]];_0x1fa9e6[_0xd747('0x65')][_0xd747('0xbb')][_0xd747('0x2e')](_0x2be07f);}_0x1fa9e6['where'][_0xd747('0x63')]=_0x495b85[_0xd747('0x63')];}return db[_0xd747('0x2a')][_0xd747('0xbc')](_0x1fa9e6)[_0xd747('0xbd')](function(_0x35ba32,_0x14dbbc){if(_0x14dbbc){_0x2b3711++;}else{_0x3b0d03++;}})[_0xd747('0x92')](function(_0x6817d){console[_0xd747('0x27')](_0x6817d);_0x448815++;});});})['then'](function(_0x469eaf){if(_0x469eaf){return{'success':_0x2b3711,'failure':_0x448815,'duplicates':_0x3b0d03};}})[_0xd747('0x25')](respondWithResult(_0x5463f8,0xc9))['catch'](handleError(_0x5463f8,null));};exports[_0xd747('0xbe')]=function(_0x5682fa,_0x59f52f,_0x58626c){var _0x2d28a0;return db[_0xd747('0x2a')][_0xd747('0x94')]()['then'](function(_0x39cc3a){return db['CmContact']['find']({'where':{'id':_0x5682fa[_0xd747('0x93')]['id']},'include':[{'model':db['Tag'],'as':_0xd747('0x90'),'attributes':['id',_0xd747('0x28'),_0xd747('0x41')],'required':_0x5682fa['query'][_0xd747('0x67')]?!![]:![]}],'attributes':_[_0xd747('0x2b')](_0x39cc3a)});})[_0xd747('0x25')](function(_0x4bf418){_0x2d28a0=_0x4bf418[_0xd747('0x9e')]({'plain':!![]});var _0x3752f2={'where':{'$and':[{'ListId':{'$ne':null}}]}};if(_0x4bf418&&_0x4bf418[_0xd747('0x63')]){if(_0x4bf418['ListId']){_0x3752f2[_0xd747('0x65')][_0xd747('0xbf')][_0xd747('0x2e')]({'ListId':{'$ne':_0x4bf418['ListId']}});}}return db[_0xd747('0x2f')][_0xd747('0x98')](_0x3752f2);})[_0xd747('0x25')](function(_0x2d66fa){return _[_0xd747('0xc0')](_0x2d28a0,_[_0xd747('0x51')](_0x2d66fa,function(_0x3804c6){return util[_0xd747('0xc1')](_0xd747('0xc2'),_0x3804c6['id']);}));})[_0xd747('0x25')](handleEntityNotFound(_0x59f52f,null))[_0xd747('0x25')](respondWithResult(_0x59f52f,null))['catch'](handleError(_0x59f52f,null));};exports[_0xd747('0xa9')]=function(_0x4a0243,_0xd7794a){var _0x33d315;if(_0x4a0243[_0xd747('0x9d')]['id']){delete _0x4a0243[_0xd747('0x9d')]['id'];}return db[_0xd747('0x2a')]['find']({'where':{'id':_0x4a0243[_0xd747('0x93')]['id']}})[_0xd747('0x25')](handleEntityNotFound(_0xd7794a,null))[_0xd747('0x25')](saveUpdates(_0x4a0243['body'],null))['then'](function(_0x43309a){_0x33d315=_0x43309a;var _0x5e8e5f={'where':{'$and':[{'ListId':{'$ne':null}}]}};if(_0x43309a&&_0x43309a['ListId']){if(_0x43309a[_0xd747('0x63')]){_0x5e8e5f[_0xd747('0x65')][_0xd747('0xbf')][_0xd747('0x2e')]({'ListId':{'$ne':_0x43309a['ListId']}});}}return db['CmCustomField'][_0xd747('0x98')](_0x5e8e5f);})['then'](function(_0x1b33ed){if(_0x1b33ed){return _[_0xd747('0xc0')](_[_0xd747('0xc3')](_0x4a0243[_0xd747('0x9d')],function(_0x196f5f,_0x2623ae){return _[_0xd747('0x95')](_0x2623ae,_0xd747('0x2d'));}),_['map'](_0x1b33ed,function(_0x16a808){return util[_0xd747('0xc1')]('cf_%d',_0x16a808['id']);}));}})['then'](function(_0x5cb47d){if(_0x5cb47d&&!_[_0xd747('0x61')](_0x5cb47d)){var _0x561e5d=squel[_0xd747('0xa9')]()[_0xd747('0xc4')](_0xd747('0x44'))[_0xd747('0xc5')](_0x5cb47d)[_0xd747('0x65')](_0xd747('0xc6'),_0x4a0243[_0xd747('0x93')]['id'])[_0xd747('0xc7')]();return db[_0xd747('0x84')]['query'](_0x561e5d['text'],{'replacements':_0x561e5d[_0xd747('0x9b')]});}})['then'](function(){if(_0x4a0243[_0xd747('0x9d')][_0xd747('0xc8')]&&_0x33d315){return db[_0xd747('0xa3')][_0xd747('0xa9')]({'phone':_0x4a0243[_0xd747('0x9d')][_0xd747('0xc8')]},{'where':{'ContactId':_0x33d315['id']}});}})[_0xd747('0x25')](function(){return _0x33d315;})[_0xd747('0x25')](respondWithResult(_0xd7794a,null))[_0xd747('0x92')](handleError(_0xd7794a,null));};exports[_0xd747('0xc9')]=function(_0x2df05c,_0x1b8467,_0x3ee218){var _0x218226={};var _0x146a1b={};var _0x227fff;var _0x280fd7;return db[_0xd747('0x2a')][_0xd747('0x30')]({'where':{'id':_0x2df05c['params']['id']}})['then'](handleEntityNotFound(_0x1b8467,null))[_0xd747('0x25')](function(_0x51843a){if(_0x51843a){_0x227fff=_0x51843a;_0x146a1b[_0xd747('0x35')]=_['keys'](db['Tag'][_0xd747('0xca')]);_0x146a1b['query']=_[_0xd747('0x2b')](_0x2df05c['query']);_0x146a1b[_0xd747('0x37')]=_['intersection'](_0x146a1b[_0xd747('0x35')],_0x146a1b[_0xd747('0x36')]);_0x218226['attributes']=_[_0xd747('0x38')](_0x146a1b[_0xd747('0x35')],qs['fields'](_0x2df05c['query'][_0xd747('0x3a')]));_0x218226[_0xd747('0x39')]=_0x218226['attributes'][_0xd747('0x2c')]?_0x218226[_0xd747('0x39')]:_0x146a1b['model'];_0x218226['order']=qs[_0xd747('0x3d')](_0x2df05c[_0xd747('0x36')][_0xd747('0x3d')]);_0x218226['where']=qs[_0xd747('0x37')](_[_0xd747('0x3e')](_0x2df05c[_0xd747('0x36')],_0x146a1b['filters']));if(_0x2df05c[_0xd747('0x36')][_0xd747('0x5e')]){_0x218226['where']=_[_0xd747('0x9c')](_0x218226[_0xd747('0x65')],{'$or':_['map'](_0x218226['attributes'],function(_0x1c5f12){var _0x34130e={};_0x34130e[_0x1c5f12]={'$like':'%'+_0x2df05c[_0xd747('0x36')][_0xd747('0x5e')]+'%'};return _0x34130e;})});}_0x218226=_[_0xd747('0x9c')]({},_0x218226,_0x2df05c[_0xd747('0xcb')]);return _0x227fff[_0xd747('0xc9')](_0x218226);}})[_0xd747('0x25')](function(_0x1c465b){if(_0x1c465b){_0x280fd7=_0x1c465b[_0xd747('0x2c')];if(!_0x2df05c[_0xd747('0x36')]['hasOwnProperty']('nolimit')){_0x218226['limit']=qs[_0xd747('0x1f')](_0x2df05c['query']['limit']);_0x218226['offset']=qs[_0xd747('0x1d')](_0x2df05c[_0xd747('0x36')][_0xd747('0x1d')]);}return _0x227fff['getTags'](_0x218226);}})['then'](function(_0x18d305){if(_0x18d305){return _0x18d305?{'count':_0x280fd7,'rows':_0x18d305}:null;}})[_0xd747('0x25')](respondWithResult(_0x1b8467,null))[_0xd747('0x92')](handleError(_0x1b8467,null));};exports[_0xd747('0xcc')]=function(_0x44e8fd,_0x53783c,_0x134090){if(_0x44e8fd[_0xd747('0x9d')]['id']){delete _0x44e8fd[_0xd747('0x9d')]['id'];}return db[_0xd747('0x2a')][_0xd747('0x30')]({'where':{'id':_0x44e8fd['params']['id']}})['then'](handleEntityNotFound(_0x53783c,null))[_0xd747('0x25')](function(_0x3fa36c){if(_0x3fa36c){return _0x3fa36c['setTags'](_0x44e8fd[_0xd747('0x9d')]['ids']||[]);}return null;})[_0xd747('0x25')](respondWithResult(_0x53783c,null))['catch'](handleError(_0x53783c,null));};exports[_0xd747('0xcd')]=function(_0x1adf34,_0x3ce0a7,_0x45f05c){var _0x183b5a={'raw':![],'where':{}};var _0x3a363b={};var _0x55babf={'count':0x0,'rows':[]};return db[_0xd747('0x2a')]['findOne']({'where':{'id':_0x1adf34[_0xd747('0x93')]['id']}})[_0xd747('0x25')](handleEntityNotFound(_0x3ce0a7,null))['then'](function(_0x3b8e3d){if(_0x3b8e3d){_0x3a363b[_0xd747('0x35')]=_[_0xd747('0x2b')](db[_0xd747('0xa3')][_0xd747('0xca')]);_0x3a363b[_0xd747('0x36')]=_[_0xd747('0x2b')](_0x1adf34[_0xd747('0x36')]);_0x3a363b[_0xd747('0x37')]=_[_0xd747('0x38')](_0x3a363b[_0xd747('0x35')],_0x3a363b[_0xd747('0x36')]);_0x183b5a['attributes']=_[_0xd747('0x38')](_0x3a363b[_0xd747('0x35')],qs[_0xd747('0x3a')](_0x1adf34[_0xd747('0x36')][_0xd747('0x3a')]));_0x183b5a[_0xd747('0x39')]=_0x183b5a[_0xd747('0x39')][_0xd747('0x2c')]?_0x183b5a[_0xd747('0x39')]:_0x3a363b[_0xd747('0x35')];if(!_0x1adf34[_0xd747('0x36')][_0xd747('0x5d')](_0xd747('0x3b'))){_0x183b5a[_0xd747('0x1f')]=qs['limit'](_0x1adf34['query'][_0xd747('0x1f')]);_0x183b5a[_0xd747('0x1d')]=qs[_0xd747('0x1d')](_0x1adf34[_0xd747('0x36')][_0xd747('0x1d')]);}_0x183b5a[_0xd747('0x3c')]=qs[_0xd747('0x3d')](_0x1adf34[_0xd747('0x36')]['sort']);_0x183b5a[_0xd747('0x65')]=qs['filters'](_[_0xd747('0x3e')](_0x1adf34[_0xd747('0x36')],_0x3a363b[_0xd747('0x37')]));_0x183b5a[_0xd747('0x65')][_0xd747('0xce')]=_0x3b8e3d['id'];if(_0x1adf34[_0xd747('0x36')][_0xd747('0x5e')]){_0x183b5a[_0xd747('0x65')]=_[_0xd747('0x9c')](_0x183b5a['where'],{'$or':_[_0xd747('0x51')](_0x183b5a[_0xd747('0x39')],function(_0x5a2e6a){var _0x42e8bc={};_0x42e8bc[_0x5a2e6a]={'$like':'%'+_0x1adf34['query']['filter']+'%'};return _0x42e8bc;})});}_0x183b5a=_[_0xd747('0x9c')]({},_0x183b5a,_0x1adf34['options']);return db['CmHopper']['count']({'where':_0x183b5a['where']})['then'](function(_0x53a5ae){_0x55babf['count']=_0x53a5ae;if(_0x1adf34['query'][_0xd747('0xcf')]){_0x183b5a[_0xd747('0xd0')]=[{'all':!![]}];}return db[_0xd747('0xa3')][_0xd747('0x98')](_0x183b5a);})['then'](function(_0x102698){_0x55babf[_0xd747('0x91')]=_0x102698;return _0x55babf;});}})[_0xd747('0x25')](respondWithFilteredResult(_0x3ce0a7,_0x183b5a))[_0xd747('0x92')](handleError(_0x3ce0a7,null));};exports[_0xd747('0xd1')]=function(_0x50bab9,_0x462c2d,_0xe248f1){var _0x432da3={'raw':!![],'where':{}};var _0x2b070e={};var _0x25fdfe={'count':0x0,'rows':[]};return db['CmContact'][_0xd747('0x30')]({'where':{'id':_0x50bab9[_0xd747('0x93')]['id']}})[_0xd747('0x25')](handleEntityNotFound(_0x462c2d,null))[_0xd747('0x25')](function(_0x4aee32){if(_0x4aee32){_0x2b070e[_0xd747('0x35')]=_[_0xd747('0x2b')](db[_0xd747('0xd2')][_0xd747('0xca')]);_0x2b070e['query']=_[_0xd747('0x2b')](_0x50bab9[_0xd747('0x36')]);_0x2b070e[_0xd747('0x37')]=_[_0xd747('0x38')](_0x2b070e[_0xd747('0x35')],_0x2b070e[_0xd747('0x36')]);_0x432da3[_0xd747('0x39')]=_[_0xd747('0x38')](_0x2b070e[_0xd747('0x35')],qs[_0xd747('0x3a')](_0x50bab9['query'][_0xd747('0x3a')]));_0x432da3[_0xd747('0x39')]=_0x432da3[_0xd747('0x39')][_0xd747('0x2c')]?_0x432da3[_0xd747('0x39')]:_0x2b070e[_0xd747('0x35')];if(!_0x50bab9[_0xd747('0x36')][_0xd747('0x5d')](_0xd747('0x3b'))){_0x432da3[_0xd747('0x1f')]=qs[_0xd747('0x1f')](_0x50bab9[_0xd747('0x36')][_0xd747('0x1f')]);_0x432da3[_0xd747('0x1d')]=qs['offset'](_0x50bab9['query'][_0xd747('0x1d')]);}_0x432da3[_0xd747('0x3c')]=qs[_0xd747('0x3d')](_0x50bab9['query']['sort']);_0x432da3[_0xd747('0x65')]=qs[_0xd747('0x37')](_[_0xd747('0x3e')](_0x50bab9[_0xd747('0x36')],_0x2b070e['filters']));_0x432da3[_0xd747('0x65')][_0xd747('0xce')]=_0x4aee32['id'];if(_0x50bab9[_0xd747('0x36')]['filter']){_0x432da3[_0xd747('0x65')]=_[_0xd747('0x9c')](_0x432da3[_0xd747('0x65')],{'$or':_[_0xd747('0x51')](_0x432da3[_0xd747('0x39')],function(_0x547dd2){var _0x38f760={};_0x38f760[_0x547dd2]={'$like':'%'+_0x50bab9[_0xd747('0x36')][_0xd747('0x5e')]+'%'};return _0x38f760;})});}_0x432da3=_['merge']({},_0x432da3,_0x50bab9['options']);return db[_0xd747('0xd2')]['count']({'where':_0x432da3[_0xd747('0x65')]})[_0xd747('0x25')](function(_0x4ef485){_0x25fdfe[_0xd747('0x20')]=_0x4ef485;if(_0x50bab9['query'][_0xd747('0xcf')]){_0x432da3[_0xd747('0xd0')]=[{'all':!![]}];}return db['CmHopperHistory']['findAll'](_0x432da3);})['then'](function(_0x285e9e){_0x25fdfe['rows']=_0x285e9e;return _0x25fdfe;});}})['then'](respondWithFilteredResult(_0x462c2d,_0x432da3))['catch'](handleError(_0x462c2d,null));};exports['getHopperFinals']=function(_0x3c1514,_0x5a1adb,_0x22cd01){var _0x3f5f91={'raw':!![],'where':{}};var _0x14c2d8={};var _0x38a418={'count':0x0,'rows':[]};return db[_0xd747('0x2a')][_0xd747('0x30')]({'where':{'id':_0x3c1514['params']['id']}})[_0xd747('0x25')](handleEntityNotFound(_0x5a1adb,null))[_0xd747('0x25')](function(_0x1b307a){if(_0x1b307a){_0x14c2d8['model']=_[_0xd747('0x2b')](db[_0xd747('0xb0')][_0xd747('0xca')]);_0x14c2d8['query']=_[_0xd747('0x2b')](_0x3c1514[_0xd747('0x36')]);_0x14c2d8[_0xd747('0x37')]=_[_0xd747('0x38')](_0x14c2d8[_0xd747('0x35')],_0x14c2d8['query']);_0x3f5f91[_0xd747('0x39')]=_['intersection'](_0x14c2d8[_0xd747('0x35')],qs[_0xd747('0x3a')](_0x3c1514[_0xd747('0x36')]['fields']));_0x3f5f91['attributes']=_0x3f5f91['attributes'][_0xd747('0x2c')]?_0x3f5f91['attributes']:_0x14c2d8[_0xd747('0x35')];if(!_0x3c1514[_0xd747('0x36')][_0xd747('0x5d')](_0xd747('0x3b'))){_0x3f5f91[_0xd747('0x1f')]=qs[_0xd747('0x1f')](_0x3c1514[_0xd747('0x36')]['limit']);_0x3f5f91[_0xd747('0x1d')]=qs['offset'](_0x3c1514['query']['offset']);}_0x3f5f91['order']=qs[_0xd747('0x3d')](_0x3c1514[_0xd747('0x36')][_0xd747('0x3d')]);_0x3f5f91[_0xd747('0x65')]=qs[_0xd747('0x37')](_[_0xd747('0x3e')](_0x3c1514[_0xd747('0x36')],_0x14c2d8[_0xd747('0x37')]));_0x3f5f91[_0xd747('0x65')]['ContactId']=_0x1b307a['id'];if(_0x3c1514[_0xd747('0x36')][_0xd747('0x5e')]){_0x3f5f91[_0xd747('0x65')]=_['merge'](_0x3f5f91[_0xd747('0x65')],{'$or':_['map'](_0x3f5f91['attributes'],function(_0x2b2243){var _0x3c94fd={};_0x3c94fd[_0x2b2243]={'$like':'%'+_0x3c1514[_0xd747('0x36')][_0xd747('0x5e')]+'%'};return _0x3c94fd;})});}_0x3f5f91=_[_0xd747('0x9c')]({},_0x3f5f91,_0x3c1514['options']);return db['CmHopperFinal'][_0xd747('0x20')]({'where':_0x3f5f91[_0xd747('0x65')]})[_0xd747('0x25')](function(_0x2e35bb){_0x38a418[_0xd747('0x20')]=_0x2e35bb;if(_0x3c1514[_0xd747('0x36')][_0xd747('0xcf')]){_0x3f5f91[_0xd747('0xd0')]=[{'all':!![]}];}return db[_0xd747('0xb0')][_0xd747('0x98')](_0x3f5f91);})[_0xd747('0x25')](function(_0x5be8c0){_0x38a418[_0xd747('0x91')]=_0x5be8c0;return _0x38a418;});}})[_0xd747('0x25')](respondWithFilteredResult(_0x5a1adb,_0x3f5f91))['catch'](handleError(_0x5a1adb,null));};exports['getJscriptySessions']=function(_0x4f3d84,_0xa4fca7,_0x35447b){var _0x4fc01a={'raw':!![],'where':{}};var _0x1bb8a8={};var _0x276f1f={'count':0x0,'rows':[]};return db[_0xd747('0x2a')][_0xd747('0x30')]({'where':{'id':_0x4f3d84[_0xd747('0x93')]['id']}})['then'](handleEntityNotFound(_0xa4fca7,null))[_0xd747('0x25')](function(_0x5939d6){if(_0x5939d6){_0x1bb8a8[_0xd747('0x35')]=_[_0xd747('0x2b')](db['JscriptySessionReport'][_0xd747('0xca')]);_0x1bb8a8['query']=_[_0xd747('0x2b')](_0x4f3d84[_0xd747('0x36')]);_0x1bb8a8['filters']=_[_0xd747('0x38')](_0x1bb8a8[_0xd747('0x35')],_0x1bb8a8['query']);_0x4fc01a[_0xd747('0x39')]=_[_0xd747('0x38')](_0x1bb8a8[_0xd747('0x35')],qs[_0xd747('0x3a')](_0x4f3d84[_0xd747('0x36')]['fields']));_0x4fc01a[_0xd747('0x39')]=_0x4fc01a[_0xd747('0x39')][_0xd747('0x2c')]?_0x4fc01a[_0xd747('0x39')]:_0x1bb8a8['model'];if(!_0x4f3d84[_0xd747('0x36')][_0xd747('0x5d')](_0xd747('0x3b'))){_0x4fc01a[_0xd747('0x1f')]=qs[_0xd747('0x1f')](_0x4f3d84[_0xd747('0x36')][_0xd747('0x1f')]);_0x4fc01a[_0xd747('0x1d')]=qs['offset'](_0x4f3d84['query'][_0xd747('0x1d')]);}_0x4fc01a[_0xd747('0x3c')]=qs[_0xd747('0x3d')](_0x4f3d84['query'][_0xd747('0x3d')]);_0x4fc01a[_0xd747('0x65')]=qs[_0xd747('0x37')](_[_0xd747('0x3e')](_0x4f3d84['query'],_0x1bb8a8[_0xd747('0x37')]));_0x4fc01a['where']['ContactId']=_0x5939d6['id'];if(_0x4f3d84[_0xd747('0x36')][_0xd747('0x5e')]){_0x4fc01a['where']=_[_0xd747('0x9c')](_0x4fc01a[_0xd747('0x65')],{'$or':_[_0xd747('0x51')](_0x4fc01a['attributes'],function(_0x2f15c2){var _0x52b067={};_0x52b067[_0x2f15c2]={'$like':'%'+_0x4f3d84[_0xd747('0x36')][_0xd747('0x5e')]+'%'};return _0x52b067;})});}_0x4fc01a=_[_0xd747('0x9c')]({},_0x4fc01a,_0x4f3d84[_0xd747('0xcb')]);return db[_0xd747('0xb5')]['count']({'where':_0x4fc01a[_0xd747('0x65')]})[_0xd747('0x25')](function(_0x42e364){_0x276f1f[_0xd747('0x20')]=_0x42e364;if(_0x4f3d84[_0xd747('0x36')]['includeAll']){_0x4fc01a[_0xd747('0xd0')]=[{'all':!![]}];}return db[_0xd747('0xb5')][_0xd747('0x98')](_0x4fc01a);})['then'](function(_0x1250d7){_0x276f1f['rows']=_0x1250d7;return _0x276f1f;});}})['then'](respondWithFilteredResult(_0xa4fca7,_0x4fc01a))['catch'](handleError(_0xa4fca7,null));};exports[_0xd747('0xd3')]=function(_0x5194f2,_0x2c0039,_0x4f9663){try{if(!_0x5194f2[_0xd747('0x9d')]['ListId']){throw new Error(_0xd747('0xd4'));}if(!_0x5194f2[_0xd747('0x9d')][_0xd747('0xd5')]){throw new Error(_0xd747('0xd6'));}if(!_0x5194f2[_0xd747('0x9d')][_0xd747('0xd7')]){throw new Error(_0xd747('0xd8'));}if(!_0x5194f2[_0xd747('0x9d')][_0xd747('0xd9')]){throw new Error('Unable\x20to\x20synchronize\x20socket,\x20no\x20timestamp\x20passed');}var _0x3cdccd=_0x5194f2['body'][_0xd747('0xd5')][_0xd747('0x50')](',');var _0x4215c7=_0x5194f2[_0xd747('0x9d')][_0xd747('0xd7')][_0xd747('0x50')](',');if(!_0x3cdccd['length']||!_0x4215c7['length']||_0x3cdccd['length']!==_0x4215c7[_0xd747('0x2c')]){throw new Error(_0xd747('0xda'));}_0x5194f2[_0xd747('0x9d')][_0xd747('0x3a')]=_[_0xd747('0xdb')](_0x3cdccd,_0x4215c7);if(!_0x5194f2['body'][_0xd747('0x3a')][_0xd747('0xc8')]){throw new Error('No\x20phone\x20column\x20specified');}if(!_0x5194f2[_0xd747('0x9d')][_0xd747('0x3a')][_0xd747('0xdc')]){throw new Error(_0xd747('0xdd'));}var _0x10b568=path[_0xd747('0xa0')](config['root'],_0xd747('0xde'),_0x5194f2['file'][_0xd747('0xdf')]);fs[_0xd747('0xe0')](_0x10b568,parseInt(_0xd747('0xe1'),0x8));var _0x299c01=require('child_process')[_0xd747('0xe2')](path[_0xd747('0xa0')](__dirname,_0xd747('0xe3')),[_0x10b568,_0x5194f2[_0xd747('0x9d')][_0xd747('0xd5')],_0x5194f2[_0xd747('0x9d')][_0xd747('0xd7')],_0x5194f2['body'][_0xd747('0x63')],_0x5194f2[_0xd747('0x9d')][_0xd747('0xe4')],_0x5194f2[_0xd747('0x9d')]['duplicates'],_0x5194f2[_0xd747('0x9d')][_0xd747('0xd9')]]);return _0x2c0039[_0xd747('0x1a')](0xc8)[_0xd747('0x1c')]({'message':_0xd747('0xe5'),'pid':_0x299c01[_0xd747('0xe6')]});}catch(_0x1e1f66){return _0x2c0039[_0xd747('0x1a')](0x1f4)[_0xd747('0x29')](_0x1e1f66);}};exports[_0xd747('0xe7')]=function(_0x17305,_0x13acd1,_0x431508){var _0x37a2a1=fs['createReadStream'](_0x17305['file']['path']);Papa[_0xd747('0xe8')](_0x37a2a1,{'header':!![],'skipEmptyLines':!![],'preview':0x1,'complete':function(_0x300e0b){return _0x13acd1[_0xd747('0x1a')](0xc8)['json']({'file':_0x17305[_0xd747('0xe9')],'fields':_0x300e0b[_0xd747('0xea')][_0xd747('0x3a')]});}});};exports[_0xd747('0xeb')]=function(_0x152a4f,_0x53606b,_0x52e7fe){return db[_0xd747('0x80')][_0xd747('0x98')]({'raw':!![],'attributes':['id'],'where':{'role':_0xd747('0x7e')}})[_0xd747('0x25')](function(_0x1847c1){var _0x581100=![];if(!_0x152a4f[_0xd747('0x9d')][_0xd747('0x63')]){throw new Error(_0xd747('0xd4'));}if(!_0x152a4f[_0xd747('0x9d')][_0xd747('0xec')][_0xd747('0xc8')]){throw new Error(_0xd747('0xed'));}if(!_0x152a4f['body'][_0xd747('0xec')][_0xd747('0xdc')]){throw new Error(_0xd747('0xdd'));}if(!_0x152a4f[_0xd747('0x9d')][_0xd747('0xd9')]){throw new Error(_0xd747('0xee'));}var _0x20695e=require('child_process')[_0xd747('0xe2')](path[_0xd747('0xa0')](__dirname,_0xd747('0xef')),[_0x152a4f[_0xd747('0x93')]['id'],JSON[_0xd747('0xf0')](_0x152a4f['body']),JSON[_0xd747('0xf0')](_0x1847c1)]);_0x20695e['on']('message',function(_0xdf3e3b){_0x581100=!![];return _0x53606b[_0xd747('0x1a')](0xc8)['json']({'message':_0xd747('0xf1'),'pid':_0x20695e['pid']});});_0x20695e['on'](_0xd747('0xf2'),function(_0x579565){if(_0x579565&&!_0x581100){return _0x53606b[_0xd747('0x1a')](0x1f4)['json']({'message':_0xd747('0xf3'),'pid':_0x20695e['pid']});}});})[_0xd747('0x92')](handleError(_0x53606b,null));};exports[_0xd747('0xf4')]=function(_0x316166,_0x5a51ef){var _0x3d33be=[_0xd747('0xf5'),'chat','sms','openchannel','fax',_0xd747('0xf6'),_0xd747('0xf7')];var _0x1142e5={'offset':0x0,'order':qs[_0xd747('0x3d')](_0xd747('0xf8'))},_0x12d1aa={'count':0x0,'rows':[]};Promise[_0xd747('0x7b')]()[_0xd747('0x25')](function(){if(_0x316166[_0xd747('0x36')][_0xd747('0xf9')]){if(!_[_0xd747('0xfa')](_0x3d33be,_0x316166['query'][_0xd747('0xf9')]['toLowerCase']())){throw new Error(_0xd747('0xfb'));}_0x3d33be=[_0x316166[_0xd747('0x36')]['channel'][_0xd747('0xfc')]()];}if(_0x316166[_0xd747('0x36')][_0xd747('0xfd')]){try{var _0x53079c=JSON['parse'](_0x316166[_0xd747('0x36')][_0xd747('0xfd')]);if(!moment(_0x53079c[_0xd747('0x42')])[_0xd747('0xfe')]()){throw new Error(_0xd747('0xff'));}if(!moment(_0x53079c['to'])[_0xd747('0xfe')]()){throw new Error(_0xd747('0x100'));}}catch(_0x23fbcd){throw new Error('Invalid\x20createdAt\x20filter');}}if(!_0x316166[_0xd747('0x36')][_0xd747('0x5d')]('nolimit')){_0x1142e5['limit']=qs[_0xd747('0x1f')](_0x316166[_0xd747('0x36')][_0xd747('0x1f')]||0xa);_0x1142e5['offset']=qs[_0xd747('0x1d')](_0x316166['query'][_0xd747('0x1d')]);}var _0x4a56a1=_0x3d33be[_0xd747('0x51')](function(_0xaca6b1){if(_0xaca6b1==='voice'){var _0x449526={'attributes':['id','uniqueid','type',_0xd747('0x101'),'destination','callerid',_0xd747('0x102'),_0xd747('0x103'),_0xd747('0x104'),_0xd747('0x105'),_0xd747('0x106'),_0xd747('0x107'),_0xd747('0x108'),'userThirdDisposition',_0xd747('0x109')],'where':{'ContactId':_0x316166[_0xd747('0x93')]['id']},'include':[{'model':db['User'],'as':'User','attributes':['id',_0xd747('0x28'),_0xd747('0x10a'),_0xd747('0x99')]}],'order':[[_0xd747('0x106'),'DESC']]};if(_0x316166[_0xd747('0x36')][_0xd747('0xfd')]){_0x449526[_0xd747('0x65')]['createdAt']={'$gte':_0x53079c[_0xd747('0x42')],'$lte':_0x53079c['to']};}return db[_0xd747('0xb2')][_0xd747('0x10b')](_0x449526)[_0xd747('0x25')](function(_0x293cfc){_0x12d1aa['count']+=_0x293cfc[_0xd747('0x20')];return _[_0xd747('0x51')](_0x293cfc['rows'],function(_0x2f4af2){var _0x1bf592=_0x2f4af2[_0xd747('0x9e')]({'plain':!![]});_0x1bf592[_0xd747('0xf9')]=_0xaca6b1;if(_0x1bf592[_0xd747('0x80')]){_0x1bf592[_0xd747('0x80')]={'id':_0x1bf592['User']['id'],'name':_0x1bf592[_0xd747('0x80')][_0xd747('0x28')],'fullname':_0x1bf592[_0xd747('0x80')][_0xd747('0x10a')],'alias':_0x1bf592[_0xd747('0x80')][_0xd747('0x99')]};}return _0x1bf592;});});}else{var _0x3d3988=_[_0xd747('0x10c')](_0xaca6b1)+(_0xaca6b1===_0xd747('0x10d')?_0xd747('0x10e'):'Account');var _0x27089d={'attributes':['id','closed',_0xd747('0x10f'),'createdAt','note',_0xd747('0x110'),'secondDisposition',_0xd747('0x111'),_0xd747('0x109'),_0x3d3988+'Id'],'where':{'ContactId':_0x316166[_0xd747('0x93')]['id']},'include':[{'model':db[_0x3d3988],'as':_0xd747('0x112'),'attributes':['id',_0xd747('0x28'),'key']},{'model':db[_0xd747('0x80')],'as':_0xd747('0x113'),'attributes':['id',_0xd747('0x28'),'fullname']},{'model':db[_0xd747('0x114')],'as':_0xd747('0x90'),'attributes':['id',_0xd747('0x28'),_0xd747('0x41')],'through':{'attributes':[]}}],'order':[['createdAt',_0xd747('0x115')]]};if(_0x316166[_0xd747('0x36')][_0xd747('0xfd')]){_0x27089d[_0xd747('0x65')][_0xd747('0x106')]={'$gte':_0x53079c[_0xd747('0x42')],'$lte':_0x53079c['to']};}switch(_0xaca6b1){case _0xd747('0x10d'):_0x27089d[_0xd747('0x39')]['push']('browserName',_0xd747('0x116'),_0xd747('0x117'),'deviceModel',_0xd747('0x118'),_0xd747('0x119'),'ratingType',_0xd747('0x11a'),'referer');break;case _0xd747('0xf5'):_0x27089d[_0xd747('0x39')][_0xd747('0x2e')]('subject',_0xd747('0x11b'));break;case _0xd747('0x11c'):_0x27089d[_0xd747('0x39')][_0xd747('0x2e')](_0xd747('0x11d'),_0xd747('0x11e'));break;}return db[_['startCase'](_0xaca6b1)+_0xd747('0x11f')][_0xd747('0x10b')](_0x27089d)['then'](function(_0x50f938){_0x12d1aa['count']+=_0x50f938[_0xd747('0x20')];return _['map'](_0x50f938[_0xd747('0x91')],function(_0x89bd37){var _0x1e2ad3=_0x89bd37[_0xd747('0x9e')]({'plain':!![]});_0x1e2ad3[_0xd747('0xf9')]=_0xaca6b1;if(_0x1e2ad3[_0xd747('0x113')]){_0x1e2ad3['Owner']={'id':_0x1e2ad3[_0xd747('0x113')]['id'],'name':_0x1e2ad3['Owner'][_0xd747('0x28')],'fullname':_0x1e2ad3[_0xd747('0x113')][_0xd747('0x10a')]};}return _0x1e2ad3;});});}});return Promise['all'](_0x4a56a1);})[_0xd747('0x25')](function(_0x4b493d){return _(_0x4b493d)[_0xd747('0x120')]()['sortBy'](_0xd747('0x106'))[_0xd747('0x121')]()[_0xd747('0x56')]();})[_0xd747('0x25')](function(_0x37b557){_0x12d1aa[_0xd747('0x91')]=_0x1142e5[_0xd747('0x1f')]?_0x37b557[_0xd747('0x122')](_0x1142e5[_0xd747('0x1d')],_0x1142e5[_0xd747('0x1d')]+_0x1142e5[_0xd747('0x1f')]):_0x37b557;return _0x12d1aa;})['then'](respondWithFilteredResult(_0x5a51ef,_0x1142e5))[_0xd747('0x92')](handleError(_0x5a51ef,null));};
\ No newline at end of file
+var _0x646b=['isEmpty','c.ListId\x20IN\x20?','\x20=\x20?','tag','isArray','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','replace','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','isNumeric','c.id\x20LIKE\x20?','c.phone\x20LIKE\x20?','c.email\x20LIKE\x20?','c.lastName\x20LIKE\x20?','group','Sequelize','SELECT','clone','c.id','DESC','having','t.id\x20IN\x20?','resolve','user','role','some','getLists','c.ListId\x20IS\x20NULL','ListId','toString','sequelize','c.firstName','c.lastName','c.mobile','c.fax','c.ListId','c.deletedAt','GROUP_CONCAT(DISTINCT\x20t.id)','TagIds','Tags','rows','params','catch','describe','columnName','displayName','findAll','alias','merge','body','get','mergeWith','tags','join','[CmContact][merge]\x20to\x20%s\x20from\x20%s','CmHopper','info','ChatInteraction','update','ChatMessage','ChatOfflineMessage','MailInteraction','MailMessage','SmsInteraction','SmsMessage','FaxInteraction','FaxMessage','OpenchannelInteraction','OpenchannelMessage','CmHopperFinal','CmHopperHistory','ReportAgentPreview','ChatQueueReport','OpenchannelQueueReport','SmsQueueReport','JscriptySessionReport','WhatsappMessage','bulkCreate','each','duplicates','$or','spread','show','Tag','$and','omit','format','cf_%d','pickBy','table','setFields','id\x20=\x20?','toParam','values','phone','getTags','rawAttributes','options','setTags','getHoppers','ContactId','includeAll','getHopperHistories','include','binding_keys','binding_values','No\x20association\x20values\x20specified!','socket_timestamp','Unable\x20to\x20synchronize\x20socket,\x20no\x20timestamp\x20passed','zipObject','No\x20phone\x20column\x20specified','firstName','No\x20firstName\x20column\x20specified','root','server/files/tmp','file','filename','chmodSync','0777','child_process','fork','../../components/import/cm/csv','File\x20uploaded\x20correctly!','upload','createReadStream','path','parse','meta','import','agent','No\x20ListId\x20specified','binding','../../components/import/cm/csv2','stringify','message','pid','mail','chat','openchannel','fax','whatsapp','voice','-createdAt','channel','includes','toLowerCase','range','isValid','Invalid\x20date\x20for\x20range\x20from\x20filter','Invalid\x20date\x20for\x20range\x20to\x20filter','Invalid\x20createdAt\x20filter','uniqueid','source','destination','callerid','note','createdAt','userSecondDisposition','userThirdDisposition','fullname','findAndCountAll','startCase','Website','closed','closedAt','disposition','secondDisposition','thirdDisposition','UserId','Account','key','browserName','customerPort','deviceModel','osName','ratingType','ratingValue','referer','subject','externalUrl','threadId','Interaction','Owner','sortBy','reverse','slice','rimraf','zip-dir','fast-json-patch','request-promise','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../config/license/util','redis','defaults','socket.io-emitter','./cmContact.socket','register','sendStatus','status','end','json','limit','undefined','count','offset','Content-Range','reject','save','then','destroy','error','stack','name','send','index','CmContact','keys','startsWith','cf_','push','CmCustomField','findOne','trimStart','all','fieldType','model','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','select','field','color','from','tools_tags','cm_contacts','left_join','cm_user_has_contacts','uc.CmContactId\x20=\x20c.id','cm_contact_has_tags','t.id\x20=\x20ct.TagId','c.deletedAt\x20IS\x20NULL','expr','search','parseSearch','sqlOperator','conditions','length','find','value','split','map','forEach','User','and','castTo','DATE','buildExpression','type','text','filter','Contact'];(function(_0x34388d,_0x23fb3b){var _0x19a38a=function(_0x1adda0){while(--_0x1adda0){_0x34388d['push'](_0x34388d['shift']());}};_0x19a38a(++_0x23fb3b);}(_0x646b,0xb9));var _0xb646=function(_0x4a519e,_0x5be3c4){_0x4a519e=_0x4a519e-0x0;var _0x1c7154=_0x646b[_0x4a519e];return _0x1c7154;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xb646('0x0'));var zipdir=require(_0xb646('0x1'));var jsonpatch=require(_0xb646('0x2'));var rp=require(_0xb646('0x3'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require('mustache');var util=require('util');var path=require('path');var sox=require(_0xb646('0x4'));var csv=require(_0xb646('0x5'));var ejs=require(_0xb646('0x6'));var fs=require('fs');var fs_extra=require(_0xb646('0x7'));var _=require(_0xb646('0x8'));var squel=require(_0xb646('0x9'));var crypto=require('crypto');var jsforce=require(_0xb646('0xa'));var deskjs=require('desk.js');var toCsv=require(_0xb646('0x5'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0xb646('0xb'));var authService=require(_0xb646('0xc'));var qs=require(_0xb646('0xd'));var as=require(_0xb646('0xe'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xb646('0xf'));var utils=require(_0xb646('0x10'));var config=require(_0xb646('0x11'));var licenseUtil=require(_0xb646('0x12'));var db=require('../../mysqldb')['db'];config[_0xb646('0x13')]=_[_0xb646('0x14')](config[_0xb646('0x13')],{'host':'localhost','port':0x18eb});var socket=require(_0xb646('0x15'))(new Redis(config['redis']));require(_0xb646('0x16'))[_0xb646('0x17')](socket);function respondWithStatusCode(_0x555034,_0x5410cb){_0x5410cb=_0x5410cb||0xcc;return function(_0x382364){if(_0x382364){return _0x555034[_0xb646('0x18')](_0x5410cb);}return _0x555034[_0xb646('0x19')](_0x5410cb)[_0xb646('0x1a')]();};}function respondWithResult(_0x48d72d,_0x564d1e){_0x564d1e=_0x564d1e||0xc8;return function(_0x58118e){if(_0x58118e){return _0x48d72d['status'](_0x564d1e)[_0xb646('0x1b')](_0x58118e);}};}function respondWithFilteredResult(_0x12b4a8,_0x4a102d){return function(_0x5d0e0e){if(_0x5d0e0e){var _0x1de8a4=typeof _0x4a102d['offset']==='undefined'&&typeof _0x4a102d[_0xb646('0x1c')]===_0xb646('0x1d');var _0xc01945=_0x5d0e0e[_0xb646('0x1e')];var _0x153372=_0x1de8a4?0x0:_0x4a102d[_0xb646('0x1f')];var _0x5bc405=_0x1de8a4?_0x5d0e0e[_0xb646('0x1e')]:_0x4a102d['offset']+_0x4a102d[_0xb646('0x1c')];var _0xc83fe7;if(_0x5bc405>=_0xc01945){_0x5bc405=_0xc01945;_0xc83fe7=0xc8;}else{_0xc83fe7=0xce;}_0x12b4a8[_0xb646('0x19')](_0xc83fe7);return _0x12b4a8['set'](_0xb646('0x20'),_0x153372+'-'+_0x5bc405+'/'+_0xc01945)['json'](_0x5d0e0e);}return null;};}function patchUpdates(_0x5f3761){return function(_0x156bf5){try{jsonpatch['apply'](_0x156bf5,_0x5f3761,!![]);}catch(_0x54994f){return BPromise[_0xb646('0x21')](_0x54994f);}return _0x156bf5[_0xb646('0x22')]();};}function saveUpdates(_0x267408,_0x1c1a51){return function(_0x442d37){if(_0x442d37){return _0x442d37['update'](_0x267408)[_0xb646('0x23')](function(_0xf7f9ce){return _0xf7f9ce;});}return null;};}function removeEntity(_0x2509f4,_0xff0831){return function(_0x2fe7c6){if(_0x2fe7c6){return _0x2fe7c6[_0xb646('0x24')]()['then'](function(){_0x2509f4['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x4989ae,_0x42f783){return function(_0x2e76df){if(!_0x2e76df){_0x4989ae['sendStatus'](0x194);}return _0x2e76df;};}function handleError(_0xbcc31a,_0x178884){_0x178884=_0x178884||0x1f4;return function(_0x11e278){logger[_0xb646('0x25')](_0x11e278[_0xb646('0x26')]);if(_0x11e278[_0xb646('0x27')]){delete _0x11e278['name'];}_0xbcc31a[_0xb646('0x19')](_0x178884)[_0xb646('0x28')](_0x11e278);};}exports[_0xb646('0x29')]=function(_0x3a31fa,_0x530b66){var _0x304036={},_0x2fdb15={},_0x4d668c={'count':0x0,'rows':[]};return db[_0xb646('0x2a')]['describe']()[_0xb646('0x23')](function(_0x4845f2){var _0x4de9fb=[];for(var _0x4b04b6=0x0;_0x4b04b6<Object[_0xb646('0x2b')](_0x4845f2)['length'];_0x4b04b6++){var _0x10f8fd=Object[_0xb646('0x2b')](_0x4845f2)[_0x4b04b6];if(_[_0xb646('0x2c')](_0x10f8fd,_0xb646('0x2d'))){_0x4de9fb[_0xb646('0x2e')](db[_0xb646('0x2f')][_0xb646('0x30')]({'where':{'id':_[_0xb646('0x31')](_0x10f8fd,_0xb646('0x2d'))},'raw':!![]}));}}return BPromise[_0xb646('0x32')](_0x4de9fb)['then'](function(_0x2a5d83){for(var _0x3f0c9b=0x0;_0x3f0c9b<_0x2a5d83['length'];_0x3f0c9b++){if(_0x2a5d83[_0x3f0c9b]){var _0x464469=_0xb646('0x2d')+_0x2a5d83[_0x3f0c9b]['id'];var _0x47934e=_0x4845f2[_0x464469];_0x47934e[_0xb646('0x33')]=_0x2a5d83[_0x3f0c9b]['type'];}}return _0x4845f2;});})[_0xb646('0x23')](function(_0x5d3b96){_0x2fdb15[_0xb646('0x34')]=_[_0xb646('0x2b')](_0x5d3b96);_0x2fdb15[_0xb646('0x35')]=_['keys'](_0x3a31fa['query']);_0x2fdb15[_0xb646('0x36')]=_[_0xb646('0x37')](_0x2fdb15['model'],_0x2fdb15[_0xb646('0x35')]);_0x304036[_0xb646('0x38')]=_[_0xb646('0x37')](_0x2fdb15[_0xb646('0x34')],qs['fields'](_0x3a31fa[_0xb646('0x35')][_0xb646('0x39')]));_0x304036[_0xb646('0x38')]=_0x304036[_0xb646('0x38')]['length']?_0x304036[_0xb646('0x38')]:_0x2fdb15['model'];if(!_0x3a31fa[_0xb646('0x35')][_0xb646('0x3a')](_0xb646('0x3b'))){_0x304036['limit']=qs[_0xb646('0x1c')](_0x3a31fa['query'][_0xb646('0x1c')]);_0x304036[_0xb646('0x1f')]=qs[_0xb646('0x1f')](_0x3a31fa['query'][_0xb646('0x1f')]);}_0x304036[_0xb646('0x3c')]=qs['sort'](_0x3a31fa[_0xb646('0x35')][_0xb646('0x3d')]);_0x304036[_0xb646('0x3e')]=qs[_0xb646('0x36')](_[_0xb646('0x3f')](_0x3a31fa['query'],_0x2fdb15[_0xb646('0x36')]),_0x5d3b96);var _0x58905b=[];var _0x157e29=squel[_0xb646('0x40')]()[_0xb646('0x41')]('id')['field']('name')['field'](_0xb646('0x42'))[_0xb646('0x43')](_0xb646('0x44'));var _0x22345a=squel[_0xb646('0x40')]()[_0xb646('0x43')](_0xb646('0x45'),'c')[_0xb646('0x46')](_0xb646('0x47'),'uc',_0xb646('0x48'))[_0xb646('0x46')](_0xb646('0x49'),'ct','ct.CmContactId\x20=\x20c.id')[_0xb646('0x46')](_0xb646('0x44'),'t',_0xb646('0x4a'))[_0xb646('0x3e')](_0xb646('0x4b'));var _0x4f3df1=squel['expr']();var _0x7f1305=[];var _0x130d37=squel[_0xb646('0x4c')]();var _0x5c0b8c;if(_0x3a31fa[_0xb646('0x35')][_0xb646('0x4d')]){_0x5c0b8c=as[_0xb646('0x4e')](_0x3a31fa[_0xb646('0x35')][_0xb646('0x4d')]);var _0x171b7a=_0x5c0b8c[_0xb646('0x4f')];for(var _0x19c0dc=0x0;_0x19c0dc<_0x5c0b8c[_0xb646('0x50')][_0xb646('0x51')];_0x19c0dc++){var _0x1ecca0=_0x5c0b8c[_0xb646('0x50')][_0x19c0dc];var _0xe635a8='c';var _0x201802=_(_0x5d3b96)['keys']()[_0xb646('0x52')](function(_0x13aeab){return _0x13aeab===_0x1ecca0['field'];});if(_0x201802)_0x201802=_0x5d3b96[_0x1ecca0['field']];if(!_0x201802){if(_0x1ecca0[_0xb646('0x41')]==='Tag'){var _0x413ce9=_0x1ecca0[_0xb646('0x53')][_0xb646('0x54')](',')[_0xb646('0x55')](function(_0x110b75){return Number(_0x110b75);});_0x413ce9[_0xb646('0x56')](function(_0x533dcb){_0x130d37['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x533dcb+',%');});_0x7f1305=_['union'](_0x7f1305,_0x413ce9);}else if(_0x1ecca0['field']===_0xb646('0x57')){_0x4f3df1[_0xb646('0x58')]('uc.UserId\x20=\x20?',_0x1ecca0['value']);}}else{if(_0x1ecca0[_0xb646('0x41')]==='dateOfBirth'||_0x201802[_0xb646('0x33')]==='datetime')_0x1ecca0[_0xb646('0x59')]=_0xb646('0x5a');var _0x25d825=as[_0xb646('0x5b')](_0xe635a8,_0x201802[_0xb646('0x5c')],_0x1ecca0);_0x4f3df1[_0x171b7a](_0x25d825[_0xb646('0x5d')],_0x25d825['value']['start'],_0x25d825[_0xb646('0x53')]['end']);}}}else{var _0x50d9f7=_(Object[_0xb646('0x2b')](_0x3a31fa[_0xb646('0x35')]))['map'](function(_0xfdc425){return _0x5d3b96[_0xb646('0x3a')](_0xfdc425)?_0xfdc425:undefined;})[_0xb646('0x5e')](function(_0x5ea3d9){return!_['isNil'](_0x5ea3d9);})[_0xb646('0x53')]();if(_0x3a31fa[_0xb646('0x35')]['Contact'])_0x50d9f7[_0xb646('0x2e')](_0xb646('0x5f'));if(!_[_0xb646('0x60')](_0x50d9f7)){_0x50d9f7['forEach'](function(_0x437226){if(_0x437226==='ListId'){_0x22345a[_0xb646('0x3e')](_0xb646('0x61'),[]['concat'](_0x3a31fa['query'][_0x437226]));}else if(_0x437226===_0xb646('0x5f')){var _0x2e4eef='%'+_0x3a31fa['query'][_0x437226]+'%';_0x22345a[_0xb646('0x3e')]('CONCAT_WS(\x27\x20\x27,\x20c.firstName,\x20c.lastName,\x20c.email)\x20LIKE\x20?',_0x2e4eef);}else{_0x22345a[_0xb646('0x3e')]('c.'+_0x437226+_0xb646('0x62'),_0x3a31fa[_0xb646('0x35')][_0x437226]);}});}if(_0x3a31fa[_0xb646('0x35')][_0xb646('0x63')]){_0x7f1305=_[_0xb646('0x64')](_0x3a31fa['query'][_0xb646('0x63')])?_0x3a31fa[_0xb646('0x35')][_0xb646('0x63')]:new Array(_0x3a31fa[_0xb646('0x35')][_0xb646('0x63')]);_0x7f1305[_0xb646('0x56')](function(_0x2bbdc0){_0x130d37['or'](_0xb646('0x65'),'%,'+_0x2bbdc0+',%');});}if(_0x3a31fa[_0xb646('0x35')][_0xb646('0x5e')]){var _0x3018d2=_0x3a31fa[_0xb646('0x35')][_0xb646('0x5e')]['replace']('\x5c','\x5c\x5c')[_0xb646('0x66')](/'/g,'\x27\x27');if(_0x3018d2[_0xb646('0x54')]('\x20')[_0xb646('0x51')]>0x1){_0x4f3df1['or'](_0xb646('0x67'),qs['getFullTextValue'](_0x3018d2),null);}else{if(qs[_0xb646('0x68')](_0x3018d2)){_0x4f3df1['or'](_0xb646('0x69'),_0x3018d2+'%');_0x4f3df1['or'](_0xb646('0x6a'),_0x3018d2+'%');_0x4f3df1['or']('c.mobile\x20LIKE\x20?',_0x3018d2+'%');_0x4f3df1['or']('c.fax\x20LIKE\x20?',_0x3018d2+'%');}else if(qs['isEmail'](_0x3018d2)){_0x4f3df1['or'](_0xb646('0x6b'),_0x3018d2+'%');}else{_0x4f3df1['or']('c.firstName\x20LIKE\x20?','%'+_0x3018d2+'%');_0x4f3df1['or'](_0xb646('0x6c'),'%'+_0x3018d2+'%');_0x4f3df1['or'](_0xb646('0x6b'),'%'+_0x3018d2+'%');}}}}_0x22345a['where'](_0x4f3df1);_0x22345a[_0xb646('0x6d')]('c.id');var _0x4c88c5={'type':db[_0xb646('0x6e')]['QueryTypes'][_0xb646('0x6f')],'raw':!![]};var _0x5a55d1=_0x22345a[_0xb646('0x70')]()['field'](_0xb646('0x71'));if(_0x304036[_0xb646('0x3c')]){_0x304036[_0xb646('0x3c')][_0xb646('0x56')](function(_0x558733){_0x22345a[_0xb646('0x3c')]('c.'+_0x558733[0x0],_0x558733[0x1]===_0xb646('0x72')?![]:!![]);});}if(!_[_0xb646('0x60')](_0x7f1305)){_0x22345a[_0xb646('0x73')](_0x130d37);_0x5a55d1['where'](_0xb646('0x74'),_0x7f1305);}BPromise[_0xb646('0x75')]()[_0xb646('0x23')](function(){if(!_0x5c0b8c)return;if(_0x3a31fa[_0xb646('0x76')][_0xb646('0x77')]!=='agent')return;if(!_[_0xb646('0x78')](_0x5c0b8c[_0xb646('0x50')],['field',_0xb646('0x57')])){return _0x3a31fa['user'][_0xb646('0x79')]({'attributes':['id'],'raw':!![]})[_0xb646('0x23')](function(_0x38b599){if(_['isEmpty'](_0x38b599)){_0x5a55d1[_0xb646('0x3e')](_0xb646('0x7a'));_0x22345a[_0xb646('0x3e')]('c.ListId\x20IS\x20NULL');}else{_0x5a55d1[_0xb646('0x3e')](_0xb646('0x61'),_['map'](_0x38b599,'id'));_0x22345a['where'](_0xb646('0x61'),_[_0xb646('0x55')](_0x38b599,'id'));}});}})[_0xb646('0x23')](function(){if(_0x3a31fa[_0xb646('0x76')]['role']==='agent'&&!_0x5c0b8c&&!_0x3a31fa['query'][_0xb646('0x7b')])return[];return db['sequelize']['query'](_0x5a55d1[_0xb646('0x7c')](),_0x4c88c5);})[_0xb646('0x23')](function(_0x387b5b){_0x4d668c[_0xb646('0x1e')]=_0x387b5b[_0xb646('0x51')];if(_0x4d668c[_0xb646('0x1e')]===0x0)return[];return db[_0xb646('0x7d')]['query'](_0x157e29[_0xb646('0x7c')](),_0x4c88c5)[_0xb646('0x23')](function(_0x5a34dd){_0x58905b=_['keyBy'](_0x5a34dd,'id');_0x4c88c5=_['merge'](_0x4c88c5,{'model':db[_0xb646('0x2a')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x3a31fa[_0xb646('0x35')][_0xb646('0x39')]){_0x304036['attributes']['forEach'](function(_0x5410ab){_0x22345a[_0xb646('0x41')]('c.'+_0x5410ab);});}else{_0x22345a[_0xb646('0x41')](_0xb646('0x71'));_0x22345a[_0xb646('0x41')](_0xb646('0x7e'));_0x22345a[_0xb646('0x41')](_0xb646('0x7f'));_0x22345a[_0xb646('0x41')]('c.phone');_0x22345a['field'](_0xb646('0x80'));_0x22345a['field'](_0xb646('0x81'));_0x22345a['field']('c.email');_0x22345a[_0xb646('0x41')](_0xb646('0x82'));_0x22345a[_0xb646('0x41')]('c.createdAt');_0x22345a[_0xb646('0x41')](_0xb646('0x83'));_0x22345a['field']('c.CompanyId');_0x22345a[_0xb646('0x41')](_0xb646('0x84'),'TagIds');}if(_0x304036[_0xb646('0x1c')])_0x22345a[_0xb646('0x1c')](_0x304036['limit']);if(_0x304036['offset'])_0x22345a[_0xb646('0x1f')](_0x304036[_0xb646('0x1f')]);return db[_0xb646('0x7d')][_0xb646('0x35')](_0x22345a[_0xb646('0x7c')](),_0x4c88c5);});})['then'](function(_0x3abd0a){_0x3abd0a[_0xb646('0x56')](function(_0x3bb536){if(_0x3bb536[_0xb646('0x85')]){_0x3bb536[_0xb646('0x86')]=[];_0x3bb536[_0xb646('0x85')][_0xb646('0x54')](',')[_0xb646('0x56')](function(_0xc5f97){_0x3bb536[_0xb646('0x86')]['push'](_0x58905b[_0xc5f97]);});}delete _0x3bb536[_0xb646('0x85')];});_0x4d668c[_0xb646('0x87')]=_0x3abd0a;return _0x4d668c;})[_0xb646('0x23')](respondWithFilteredResult(_0x530b66,_0x304036));})['catch'](handleError(_0x530b66,null));};exports[_0xb646('0x24')]=function(_0xdf434e,_0xec2063){return db[_0xb646('0x2a')][_0xb646('0x52')]({'where':{'id':_0xdf434e[_0xb646('0x88')]['id']}})[_0xb646('0x23')](handleEntityNotFound(_0xec2063,null))[_0xb646('0x23')](removeEntity(_0xec2063,null))[_0xb646('0x89')](handleError(_0xec2063,null));};exports[_0xb646('0x8a')]=function(_0x1e19ff,_0x483223){return db[_0xb646('0x2a')][_0xb646('0x8a')]()[_0xb646('0x23')](function(_0x4d9568){delete _0x4d9568['tags'];for(var _0xc7e5ac=0x0;_0xc7e5ac<Object[_0xb646('0x2b')](_0x4d9568)[_0xb646('0x51')];_0xc7e5ac++){var _0xee201e=Object['keys'](_0x4d9568)[_0xc7e5ac];if(!_[_0xb646('0x2c')](_0xee201e,_0xb646('0x2d'))){_0x4d9568[_0xee201e][_0xb646('0x8b')]=_0xee201e;_0x4d9568[_0xee201e][_0xb646('0x8c')]=_0xee201e;}}return _0x4d9568;})[_0xb646('0x23')](function(_0x56d4ac){var _0x30fd67={'where':{'$or':[{'ListId':_0x1e19ff[_0xb646('0x35')]['id']},{'ListId':null}]},'raw':!![]};return db[_0xb646('0x2f')][_0xb646('0x8d')](_0x30fd67)[_0xb646('0x23')](function(_0x358db6){for(var _0x580f15=0x0;_0x580f15<_0x358db6[_0xb646('0x51')];_0x580f15++){var _0x43be38=_0xb646('0x2d')+_0x358db6[_0x580f15]['id'];_0x56d4ac[_0x43be38][_0xb646('0x8b')]=_0x43be38;_0x56d4ac[_0x43be38][_0xb646('0x8c')]=_0x358db6[_0x580f15][_0xb646('0x8e')];_0x56d4ac[_0x43be38]['custom']={'type':_0x358db6[_0x580f15][_0xb646('0x5c')],'values':_0x358db6[_0x580f15]['values']};}Object[_0xb646('0x2b')](_0x56d4ac)[_0xb646('0x56')](function(_0x52ff9c){if(!_0x56d4ac[_0x52ff9c]['hasOwnProperty'](_0xb646('0x8b'))){delete _0x56d4ac[_0x52ff9c];}});return _0x56d4ac;});})[_0xb646('0x23')](respondWithResult(_0x483223,null))['catch'](handleError(_0x483223,null));};exports[_0xb646('0x8f')]=function(_0x14c1a5,_0xffabbb){var _0x291b76;var _0x59885c;var _0x11d670;if(_0x14c1a5[_0xb646('0x90')]['id']){delete _0x14c1a5['body']['id'];}return db['CmContact'][_0xb646('0x8d')]({'where':{'id':[_0x14c1a5[_0xb646('0x90')]['to'],_0x14c1a5[_0xb646('0x90')][_0xb646('0x43')]]}})['then'](function(_0x289872){if(_0x289872){if(_0x289872[_0xb646('0x51')]!==0x2){return null;}_0x289872[0x0]=_0x289872[0x0][_0xb646('0x91')]({'plain':!![]});_0x289872[0x1]=_0x289872[0x1]['get']({'plain':!![]});delete _0x289872[0x0]['id'];delete _0x289872[0x1]['id'];return _[_0xb646('0x92')](_0x289872[0x0],_0x289872[0x1],function(_0x206e4b,_0x43ce34){if(Array[_0xb646('0x64')](_0x43ce34)&&!_0x43ce34[_0xb646('0x51')]){return _0x206e4b;}else if(!_0x43ce34){return _0x206e4b;}});}})[_0xb646('0x23')](handleEntityNotFound(_0xffabbb,null))[_0xb646('0x23')](function(_0x2e083a){if(_0x2e083a){if(_0x2e083a[_0xb646('0x93')]&&_['isArray'](_0x2e083a[_0xb646('0x93')])){_0x2e083a[_0xb646('0x93')]=_0x2e083a[_0xb646('0x93')][_0xb646('0x94')]();}logger['info'](_0xb646('0x95'),_0x14c1a5[_0xb646('0x90')]['to'],_0x14c1a5[_0xb646('0x90')][_0xb646('0x43')]);return db[_0xb646('0x96')]['destroy']({'where':{'ContactId':[_0x14c1a5[_0xb646('0x90')]['to'],_0x14c1a5[_0xb646('0x90')][_0xb646('0x43')]]}})[_0xb646('0x23')](function(_0x1336b8){logger['info']('[CmContact][merge][destroy][CmHopper],\x20%s',_0x1336b8);return db['CmHopperBlack'][_0xb646('0x24')]({'where':{'ContactId':[_0x14c1a5['body']['to'],_0x14c1a5[_0xb646('0x90')][_0xb646('0x43')]]}})[_0xb646('0x23')](function(_0x39dd86){logger[_0xb646('0x97')]('[CmContact][merge][destroy][CmHopperBlack],\x20%s',_0x39dd86);return db[_0xb646('0x2a')]['create'](_0x2e083a);});});}})[_0xb646('0x23')](function(_0x121329){if(_0x121329){_0x291b76=_0x121329;_0x59885c={'ContactId':_0x291b76['id']};_0x11d670={'where':{'ContactId':[_0x14c1a5[_0xb646('0x90')]['to'],_0x14c1a5[_0xb646('0x90')][_0xb646('0x43')]]}};return db[_0xb646('0x98')][_0xb646('0x99')](_0x59885c,_0x11d670);}})[_0xb646('0x23')](function(){if(_0x291b76){return db[_0xb646('0x9a')]['update'](_0x59885c,_0x11d670);}})['then'](function(){if(_0x291b76){return db[_0xb646('0x9b')][_0xb646('0x99')](_0x59885c,_0x11d670);}})[_0xb646('0x23')](function(){if(_0x291b76){return db[_0xb646('0x9c')][_0xb646('0x99')](_0x59885c,_0x11d670);}})[_0xb646('0x23')](function(){if(_0x291b76){return db[_0xb646('0x9d')][_0xb646('0x99')](_0x59885c,_0x11d670);}})[_0xb646('0x23')](function(){if(_0x291b76){return db[_0xb646('0x9c')][_0xb646('0x99')](_0x59885c,_0x11d670);}})[_0xb646('0x23')](function(){if(_0x291b76){return db[_0xb646('0x9d')][_0xb646('0x99')](_0x59885c,_0x11d670);}})[_0xb646('0x23')](function(){if(_0x291b76){return db[_0xb646('0x9e')]['update'](_0x59885c,_0x11d670);}})[_0xb646('0x23')](function(){if(_0x291b76){return db[_0xb646('0x9f')]['update'](_0x59885c,_0x11d670);}})[_0xb646('0x23')](function(){if(_0x291b76){return db[_0xb646('0xa0')][_0xb646('0x99')](_0x59885c,_0x11d670);}})[_0xb646('0x23')](function(){if(_0x291b76){return db[_0xb646('0xa1')]['update'](_0x59885c,_0x11d670);}})[_0xb646('0x23')](function(){if(_0x291b76){return db[_0xb646('0xa2')][_0xb646('0x99')](_0x59885c,_0x11d670);}})['then'](function(){if(_0x291b76){return db[_0xb646('0xa3')][_0xb646('0x99')](_0x59885c,_0x11d670);}})[_0xb646('0x23')](function(){if(_0x291b76){return db[_0xb646('0xa4')][_0xb646('0x99')](_0x59885c,_0x11d670);}})[_0xb646('0x23')](function(){if(_0x291b76){return db[_0xb646('0xa5')][_0xb646('0x99')](_0x59885c,_0x11d670);}})[_0xb646('0x23')](function(){if(_0x291b76){return db[_0xb646('0xa6')][_0xb646('0x99')](_0x59885c,_0x11d670);}})[_0xb646('0x23')](function(){if(_0x291b76){return db['VoiceCallReport'][_0xb646('0x99')](_0x59885c,_0x11d670);}})['then'](function(){if(_0x291b76){return db[_0xb646('0xa7')][_0xb646('0x99')](_0x59885c,_0x11d670);}})[_0xb646('0x23')](function(){if(_0x291b76){return db['FaxQueueReport']['update'](_0x59885c,_0x11d670);}})['then'](function(){if(_0x291b76){return db['MailQueueReport'][_0xb646('0x99')](_0x59885c,_0x11d670);}})[_0xb646('0x23')](function(){if(_0x291b76){return db[_0xb646('0xa8')][_0xb646('0x99')](_0x59885c,_0x11d670);}})[_0xb646('0x23')](function(){if(_0x291b76){return db[_0xb646('0xa9')][_0xb646('0x99')](_0x59885c,_0x11d670);}})[_0xb646('0x23')](function(){if(_0x291b76){return db[_0xb646('0xaa')][_0xb646('0x99')](_0x59885c,_0x11d670);}})['then'](function(){if(_0x291b76){return db['WhatsappInteraction'][_0xb646('0x99')](_0x59885c,_0x11d670);}})['then'](function(){if(_0x291b76){return db[_0xb646('0xab')][_0xb646('0x99')](_0x59885c,_0x11d670);}})['then'](function(){if(_0x291b76){return db['WhatsappQueueReport'][_0xb646('0x99')](_0x59885c,_0x11d670);}})['then'](function(){if(_0x291b76){return db[_0xb646('0x2a')][_0xb646('0x24')]({'where':{'id':[_0x14c1a5[_0xb646('0x90')]['to'],_0x14c1a5['body']['from']]}});}})['then'](function(){if(_0x291b76){return _0x291b76;}})[_0xb646('0x23')](respondWithResult(_0xffabbb,null))[_0xb646('0x89')](handleError(_0xffabbb,null));};exports['create']=function(_0x3fcffe,_0x53ef5d){return db['CmContact'][_0xb646('0x8a')]()[_0xb646('0x23')](function(_0x2577b4){if(_0x3fcffe[_0xb646('0x90')][_0xb646('0x93')]&&_[_0xb646('0x64')](_0x3fcffe[_0xb646('0x90')][_0xb646('0x93')])){if(_0x3fcffe[_0xb646('0x90')]['tags'][_0xb646('0x51')]){_0x3fcffe[_0xb646('0x90')][_0xb646('0x93')]=_0x3fcffe[_0xb646('0x90')]['tags']['join'](';')+';';}else{_0x3fcffe['body'][_0xb646('0x93')]=null;}}else{_0x3fcffe['body'][_0xb646('0x93')]=null;}return db['CmContact']['create'](_0x3fcffe[_0xb646('0x90')],{'fields':_[_0xb646('0x2b')](_0x2577b4),'raw':!![]});})['then'](respondWithResult(_0x53ef5d,0xc9))[_0xb646('0x89')](handleError(_0x53ef5d,null));};exports[_0xb646('0xac')]=function(_0x11a356,_0x2ed95a){var _0x65d405=[];var _0x1a9b6a=0x0;var _0x161216=0x0;var _0x24abad=0x0;return db['CmContact']['describe']()[_0xb646('0x23')](function(_0x50728b){return BPromise[_0xb646('0xad')](_0x11a356['body'],function(_0x2f0db2){var _0x5a41ef={'where':{'$or':[]},'defaults':_0x2f0db2,'fields':_[_0xb646('0x2b')](_0x50728b),'raw':!![]};if(_0x2f0db2[_0xb646('0xae')]){for(var _0x55fbc2=0x0;_0x55fbc2<_0x2f0db2[_0xb646('0xae')]['length'];_0x55fbc2++){var _0x46eec3={};_0x46eec3[_0x2f0db2[_0xb646('0xae')][_0x55fbc2]]=_0x2f0db2[_0x2f0db2['duplicates'][_0x55fbc2]];_0x5a41ef['where'][_0xb646('0xaf')][_0xb646('0x2e')](_0x46eec3);}_0x5a41ef[_0xb646('0x3e')][_0xb646('0x7b')]=_0x2f0db2[_0xb646('0x7b')];}return db[_0xb646('0x2a')]['findOrCreate'](_0x5a41ef)[_0xb646('0xb0')](function(_0xb74e9c,_0x307841){if(_0x307841){_0x1a9b6a++;}else{_0x24abad++;}})[_0xb646('0x89')](function(_0x13f952){console['error'](_0x13f952);_0x161216++;});});})[_0xb646('0x23')](function(_0x4999e5){if(_0x4999e5){return{'success':_0x1a9b6a,'failure':_0x161216,'duplicates':_0x24abad};}})['then'](respondWithResult(_0x2ed95a,0xc9))[_0xb646('0x89')](handleError(_0x2ed95a,null));};exports[_0xb646('0xb1')]=function(_0x54c4cd,_0x24faf7,_0x34eee8){var _0x2ca81a;return db[_0xb646('0x2a')][_0xb646('0x8a')]()[_0xb646('0x23')](function(_0x30af60){return db[_0xb646('0x2a')][_0xb646('0x52')]({'where':{'id':_0x54c4cd[_0xb646('0x88')]['id']},'include':[{'model':db[_0xb646('0xb2')],'as':_0xb646('0x86'),'attributes':['id',_0xb646('0x27'),_0xb646('0x42')],'required':_0x54c4cd[_0xb646('0x35')][_0xb646('0x63')]?!![]:![]}],'attributes':_[_0xb646('0x2b')](_0x30af60)});})['then'](function(_0x1fc2c2){_0x2ca81a=_0x1fc2c2[_0xb646('0x91')]({'plain':!![]});var _0x16a0bf={'where':{'$and':[{'ListId':{'$ne':null}}]}};if(_0x1fc2c2&&_0x1fc2c2[_0xb646('0x7b')]){if(_0x1fc2c2[_0xb646('0x7b')]){_0x16a0bf['where'][_0xb646('0xb3')]['push']({'ListId':{'$ne':_0x1fc2c2['ListId']}});}}return db[_0xb646('0x2f')][_0xb646('0x8d')](_0x16a0bf);})['then'](function(_0xd883eb){return _[_0xb646('0xb4')](_0x2ca81a,_[_0xb646('0x55')](_0xd883eb,function(_0x34484f){return util[_0xb646('0xb5')](_0xb646('0xb6'),_0x34484f['id']);}));})[_0xb646('0x23')](handleEntityNotFound(_0x24faf7,null))['then'](respondWithResult(_0x24faf7,null))[_0xb646('0x89')](handleError(_0x24faf7,null));};exports['update']=function(_0x4a6ae6,_0x52e3a3){var _0x5a4af4;if(_0x4a6ae6[_0xb646('0x90')]['id']){delete _0x4a6ae6[_0xb646('0x90')]['id'];}return db['CmContact']['find']({'where':{'id':_0x4a6ae6[_0xb646('0x88')]['id']}})['then'](handleEntityNotFound(_0x52e3a3,null))[_0xb646('0x23')](saveUpdates(_0x4a6ae6[_0xb646('0x90')],null))[_0xb646('0x23')](function(_0x495daa){_0x5a4af4=_0x495daa;var _0x2acfbb={'where':{'$and':[{'ListId':{'$ne':null}}]}};if(_0x495daa&&_0x495daa[_0xb646('0x7b')]){if(_0x495daa[_0xb646('0x7b')]){_0x2acfbb[_0xb646('0x3e')]['$and'][_0xb646('0x2e')]({'ListId':{'$ne':_0x495daa[_0xb646('0x7b')]}});}}return db[_0xb646('0x2f')][_0xb646('0x8d')](_0x2acfbb);})['then'](function(_0x4d638b){if(_0x4d638b){return _['omit'](_[_0xb646('0xb7')](_0x4a6ae6[_0xb646('0x90')],function(_0x1fbfb0,_0xf49075){return _[_0xb646('0x2c')](_0xf49075,'cf_');}),_[_0xb646('0x55')](_0x4d638b,function(_0x2cc1b5){return util[_0xb646('0xb5')]('cf_%d',_0x2cc1b5['id']);}));}})['then'](function(_0x18b8bd){if(_0x18b8bd&&!_[_0xb646('0x60')](_0x18b8bd)){var _0x298e6f=squel[_0xb646('0x99')]()[_0xb646('0xb8')](_0xb646('0x45'))[_0xb646('0xb9')](_0x18b8bd)[_0xb646('0x3e')](_0xb646('0xba'),_0x4a6ae6[_0xb646('0x88')]['id'])[_0xb646('0xbb')]();return db['sequelize'][_0xb646('0x35')](_0x298e6f['text'],{'replacements':_0x298e6f[_0xb646('0xbc')]});}})[_0xb646('0x23')](function(){if(_0x4a6ae6[_0xb646('0x90')]['phone']&&_0x5a4af4){return db[_0xb646('0x96')][_0xb646('0x99')]({'phone':_0x4a6ae6['body'][_0xb646('0xbd')]},{'where':{'ContactId':_0x5a4af4['id']}});}})['then'](function(){return _0x5a4af4;})[_0xb646('0x23')](respondWithResult(_0x52e3a3,null))[_0xb646('0x89')](handleError(_0x52e3a3,null));};exports[_0xb646('0xbe')]=function(_0x1784c2,_0x2639df,_0x452a1f){var _0xd27d32={};var _0x171055={};var _0x5c0897;var _0x4e0c50;return db['CmContact'][_0xb646('0x30')]({'where':{'id':_0x1784c2[_0xb646('0x88')]['id']}})['then'](handleEntityNotFound(_0x2639df,null))[_0xb646('0x23')](function(_0x1e1cf3){if(_0x1e1cf3){_0x5c0897=_0x1e1cf3;_0x171055[_0xb646('0x34')]=_[_0xb646('0x2b')](db[_0xb646('0xb2')][_0xb646('0xbf')]);_0x171055[_0xb646('0x35')]=_[_0xb646('0x2b')](_0x1784c2[_0xb646('0x35')]);_0x171055['filters']=_[_0xb646('0x37')](_0x171055['model'],_0x171055[_0xb646('0x35')]);_0xd27d32[_0xb646('0x38')]=_['intersection'](_0x171055[_0xb646('0x34')],qs[_0xb646('0x39')](_0x1784c2[_0xb646('0x35')][_0xb646('0x39')]));_0xd27d32['attributes']=_0xd27d32[_0xb646('0x38')][_0xb646('0x51')]?_0xd27d32[_0xb646('0x38')]:_0x171055['model'];_0xd27d32[_0xb646('0x3c')]=qs['sort'](_0x1784c2[_0xb646('0x35')]['sort']);_0xd27d32[_0xb646('0x3e')]=qs[_0xb646('0x36')](_[_0xb646('0x3f')](_0x1784c2[_0xb646('0x35')],_0x171055[_0xb646('0x36')]));if(_0x1784c2[_0xb646('0x35')][_0xb646('0x5e')]){_0xd27d32[_0xb646('0x3e')]=_[_0xb646('0x8f')](_0xd27d32['where'],{'$or':_['map'](_0xd27d32[_0xb646('0x38')],function(_0x552770){var _0x420632={};_0x420632[_0x552770]={'$like':'%'+_0x1784c2[_0xb646('0x35')][_0xb646('0x5e')]+'%'};return _0x420632;})});}_0xd27d32=_[_0xb646('0x8f')]({},_0xd27d32,_0x1784c2[_0xb646('0xc0')]);return _0x5c0897[_0xb646('0xbe')](_0xd27d32);}})[_0xb646('0x23')](function(_0x2625d3){if(_0x2625d3){_0x4e0c50=_0x2625d3[_0xb646('0x51')];if(!_0x1784c2['query'][_0xb646('0x3a')](_0xb646('0x3b'))){_0xd27d32['limit']=qs['limit'](_0x1784c2[_0xb646('0x35')]['limit']);_0xd27d32[_0xb646('0x1f')]=qs[_0xb646('0x1f')](_0x1784c2['query'][_0xb646('0x1f')]);}return _0x5c0897[_0xb646('0xbe')](_0xd27d32);}})['then'](function(_0x36420b){if(_0x36420b){return _0x36420b?{'count':_0x4e0c50,'rows':_0x36420b}:null;}})[_0xb646('0x23')](respondWithResult(_0x2639df,null))['catch'](handleError(_0x2639df,null));};exports['setTags']=function(_0x3e686f,_0x1ffcae,_0x5ed01b){if(_0x3e686f[_0xb646('0x90')]['id']){delete _0x3e686f['body']['id'];}return db[_0xb646('0x2a')][_0xb646('0x30')]({'where':{'id':_0x3e686f[_0xb646('0x88')]['id']}})['then'](handleEntityNotFound(_0x1ffcae,null))[_0xb646('0x23')](function(_0x1fe052){if(_0x1fe052){return _0x1fe052[_0xb646('0xc1')](_0x3e686f[_0xb646('0x90')]['ids']||[]);}return null;})[_0xb646('0x23')](respondWithResult(_0x1ffcae,null))[_0xb646('0x89')](handleError(_0x1ffcae,null));};exports[_0xb646('0xc2')]=function(_0x156d62,_0x533ffc,_0x379fbf){var _0xf109a1={'raw':![],'where':{}};var _0x44c31a={};var _0x5a3d7a={'count':0x0,'rows':[]};return db[_0xb646('0x2a')]['findOne']({'where':{'id':_0x156d62[_0xb646('0x88')]['id']}})['then'](handleEntityNotFound(_0x533ffc,null))[_0xb646('0x23')](function(_0x21efcd){if(_0x21efcd){_0x44c31a[_0xb646('0x34')]=_[_0xb646('0x2b')](db[_0xb646('0x96')]['rawAttributes']);_0x44c31a[_0xb646('0x35')]=_['keys'](_0x156d62[_0xb646('0x35')]);_0x44c31a['filters']=_[_0xb646('0x37')](_0x44c31a[_0xb646('0x34')],_0x44c31a[_0xb646('0x35')]);_0xf109a1[_0xb646('0x38')]=_[_0xb646('0x37')](_0x44c31a[_0xb646('0x34')],qs[_0xb646('0x39')](_0x156d62[_0xb646('0x35')]['fields']));_0xf109a1[_0xb646('0x38')]=_0xf109a1[_0xb646('0x38')][_0xb646('0x51')]?_0xf109a1[_0xb646('0x38')]:_0x44c31a['model'];if(!_0x156d62[_0xb646('0x35')][_0xb646('0x3a')](_0xb646('0x3b'))){_0xf109a1[_0xb646('0x1c')]=qs[_0xb646('0x1c')](_0x156d62[_0xb646('0x35')][_0xb646('0x1c')]);_0xf109a1['offset']=qs['offset'](_0x156d62[_0xb646('0x35')][_0xb646('0x1f')]);}_0xf109a1[_0xb646('0x3c')]=qs[_0xb646('0x3d')](_0x156d62['query'][_0xb646('0x3d')]);_0xf109a1[_0xb646('0x3e')]=qs['filters'](_[_0xb646('0x3f')](_0x156d62[_0xb646('0x35')],_0x44c31a[_0xb646('0x36')]));_0xf109a1['where'][_0xb646('0xc3')]=_0x21efcd['id'];if(_0x156d62[_0xb646('0x35')][_0xb646('0x5e')]){_0xf109a1[_0xb646('0x3e')]=_[_0xb646('0x8f')](_0xf109a1[_0xb646('0x3e')],{'$or':_[_0xb646('0x55')](_0xf109a1[_0xb646('0x38')],function(_0x42863d){var _0xb362af={};_0xb362af[_0x42863d]={'$like':'%'+_0x156d62[_0xb646('0x35')]['filter']+'%'};return _0xb362af;})});}_0xf109a1=_[_0xb646('0x8f')]({},_0xf109a1,_0x156d62['options']);return db['CmHopper'][_0xb646('0x1e')]({'where':_0xf109a1[_0xb646('0x3e')]})[_0xb646('0x23')](function(_0x4ae581){_0x5a3d7a[_0xb646('0x1e')]=_0x4ae581;if(_0x156d62[_0xb646('0x35')][_0xb646('0xc4')]){_0xf109a1['include']=[{'all':!![]}];}return db[_0xb646('0x96')][_0xb646('0x8d')](_0xf109a1);})[_0xb646('0x23')](function(_0x1ac583){_0x5a3d7a[_0xb646('0x87')]=_0x1ac583;return _0x5a3d7a;});}})['then'](respondWithFilteredResult(_0x533ffc,_0xf109a1))['catch'](handleError(_0x533ffc,null));};exports[_0xb646('0xc5')]=function(_0x287040,_0x3ca149,_0x42e0a6){var _0x4e8401={'raw':!![],'where':{}};var _0x3970ee={};var _0x3d35b6={'count':0x0,'rows':[]};return db[_0xb646('0x2a')][_0xb646('0x30')]({'where':{'id':_0x287040[_0xb646('0x88')]['id']}})[_0xb646('0x23')](handleEntityNotFound(_0x3ca149,null))[_0xb646('0x23')](function(_0x386e7b){if(_0x386e7b){_0x3970ee['model']=_[_0xb646('0x2b')](db[_0xb646('0xa5')][_0xb646('0xbf')]);_0x3970ee[_0xb646('0x35')]=_[_0xb646('0x2b')](_0x287040['query']);_0x3970ee[_0xb646('0x36')]=_[_0xb646('0x37')](_0x3970ee[_0xb646('0x34')],_0x3970ee['query']);_0x4e8401[_0xb646('0x38')]=_[_0xb646('0x37')](_0x3970ee[_0xb646('0x34')],qs[_0xb646('0x39')](_0x287040['query']['fields']));_0x4e8401[_0xb646('0x38')]=_0x4e8401[_0xb646('0x38')][_0xb646('0x51')]?_0x4e8401[_0xb646('0x38')]:_0x3970ee['model'];if(!_0x287040['query'][_0xb646('0x3a')](_0xb646('0x3b'))){_0x4e8401[_0xb646('0x1c')]=qs[_0xb646('0x1c')](_0x287040[_0xb646('0x35')][_0xb646('0x1c')]);_0x4e8401[_0xb646('0x1f')]=qs[_0xb646('0x1f')](_0x287040[_0xb646('0x35')][_0xb646('0x1f')]);}_0x4e8401[_0xb646('0x3c')]=qs[_0xb646('0x3d')](_0x287040[_0xb646('0x35')]['sort']);_0x4e8401['where']=qs[_0xb646('0x36')](_[_0xb646('0x3f')](_0x287040[_0xb646('0x35')],_0x3970ee['filters']));_0x4e8401['where'][_0xb646('0xc3')]=_0x386e7b['id'];if(_0x287040[_0xb646('0x35')][_0xb646('0x5e')]){_0x4e8401[_0xb646('0x3e')]=_[_0xb646('0x8f')](_0x4e8401[_0xb646('0x3e')],{'$or':_[_0xb646('0x55')](_0x4e8401[_0xb646('0x38')],function(_0x5b681b){var _0x34015b={};_0x34015b[_0x5b681b]={'$like':'%'+_0x287040[_0xb646('0x35')][_0xb646('0x5e')]+'%'};return _0x34015b;})});}_0x4e8401=_[_0xb646('0x8f')]({},_0x4e8401,_0x287040[_0xb646('0xc0')]);return db[_0xb646('0xa5')]['count']({'where':_0x4e8401[_0xb646('0x3e')]})[_0xb646('0x23')](function(_0x572cd1){_0x3d35b6[_0xb646('0x1e')]=_0x572cd1;if(_0x287040[_0xb646('0x35')]['includeAll']){_0x4e8401[_0xb646('0xc6')]=[{'all':!![]}];}return db[_0xb646('0xa5')][_0xb646('0x8d')](_0x4e8401);})['then'](function(_0x30f688){_0x3d35b6['rows']=_0x30f688;return _0x3d35b6;});}})[_0xb646('0x23')](respondWithFilteredResult(_0x3ca149,_0x4e8401))[_0xb646('0x89')](handleError(_0x3ca149,null));};exports['getHopperFinals']=function(_0x903869,_0x4334c3,_0x8d9686){var _0x23e3e8={'raw':!![],'where':{}};var _0x44827e={};var _0x2e3d75={'count':0x0,'rows':[]};return db['CmContact'][_0xb646('0x30')]({'where':{'id':_0x903869[_0xb646('0x88')]['id']}})[_0xb646('0x23')](handleEntityNotFound(_0x4334c3,null))['then'](function(_0x4136b7){if(_0x4136b7){_0x44827e[_0xb646('0x34')]=_[_0xb646('0x2b')](db['CmHopperFinal'][_0xb646('0xbf')]);_0x44827e[_0xb646('0x35')]=_['keys'](_0x903869[_0xb646('0x35')]);_0x44827e[_0xb646('0x36')]=_[_0xb646('0x37')](_0x44827e[_0xb646('0x34')],_0x44827e[_0xb646('0x35')]);_0x23e3e8[_0xb646('0x38')]=_[_0xb646('0x37')](_0x44827e[_0xb646('0x34')],qs[_0xb646('0x39')](_0x903869[_0xb646('0x35')][_0xb646('0x39')]));_0x23e3e8['attributes']=_0x23e3e8[_0xb646('0x38')][_0xb646('0x51')]?_0x23e3e8[_0xb646('0x38')]:_0x44827e['model'];if(!_0x903869[_0xb646('0x35')][_0xb646('0x3a')](_0xb646('0x3b'))){_0x23e3e8[_0xb646('0x1c')]=qs[_0xb646('0x1c')](_0x903869['query']['limit']);_0x23e3e8[_0xb646('0x1f')]=qs[_0xb646('0x1f')](_0x903869[_0xb646('0x35')][_0xb646('0x1f')]);}_0x23e3e8['order']=qs[_0xb646('0x3d')](_0x903869['query'][_0xb646('0x3d')]);_0x23e3e8[_0xb646('0x3e')]=qs[_0xb646('0x36')](_[_0xb646('0x3f')](_0x903869[_0xb646('0x35')],_0x44827e[_0xb646('0x36')]));_0x23e3e8[_0xb646('0x3e')][_0xb646('0xc3')]=_0x4136b7['id'];if(_0x903869[_0xb646('0x35')]['filter']){_0x23e3e8[_0xb646('0x3e')]=_[_0xb646('0x8f')](_0x23e3e8[_0xb646('0x3e')],{'$or':_[_0xb646('0x55')](_0x23e3e8['attributes'],function(_0x4ee687){var _0x480429={};_0x480429[_0x4ee687]={'$like':'%'+_0x903869['query'][_0xb646('0x5e')]+'%'};return _0x480429;})});}_0x23e3e8=_[_0xb646('0x8f')]({},_0x23e3e8,_0x903869[_0xb646('0xc0')]);return db[_0xb646('0xa4')][_0xb646('0x1e')]({'where':_0x23e3e8[_0xb646('0x3e')]})[_0xb646('0x23')](function(_0xf544da){_0x2e3d75['count']=_0xf544da;if(_0x903869['query'][_0xb646('0xc4')]){_0x23e3e8[_0xb646('0xc6')]=[{'all':!![]}];}return db[_0xb646('0xa4')][_0xb646('0x8d')](_0x23e3e8);})[_0xb646('0x23')](function(_0x56e93f){_0x2e3d75[_0xb646('0x87')]=_0x56e93f;return _0x2e3d75;});}})['then'](respondWithFilteredResult(_0x4334c3,_0x23e3e8))[_0xb646('0x89')](handleError(_0x4334c3,null));};exports['getJscriptySessions']=function(_0xf737d8,_0x5d9049,_0x2273e9){var _0x2cc5c3={'raw':!![],'where':{}};var _0x296643={};var _0xe417f6={'count':0x0,'rows':[]};return db[_0xb646('0x2a')]['findOne']({'where':{'id':_0xf737d8[_0xb646('0x88')]['id']}})[_0xb646('0x23')](handleEntityNotFound(_0x5d9049,null))[_0xb646('0x23')](function(_0x21b3fa){if(_0x21b3fa){_0x296643['model']=_['keys'](db[_0xb646('0xaa')]['rawAttributes']);_0x296643[_0xb646('0x35')]=_[_0xb646('0x2b')](_0xf737d8[_0xb646('0x35')]);_0x296643[_0xb646('0x36')]=_[_0xb646('0x37')](_0x296643['model'],_0x296643[_0xb646('0x35')]);_0x2cc5c3[_0xb646('0x38')]=_[_0xb646('0x37')](_0x296643[_0xb646('0x34')],qs[_0xb646('0x39')](_0xf737d8[_0xb646('0x35')]['fields']));_0x2cc5c3[_0xb646('0x38')]=_0x2cc5c3[_0xb646('0x38')]['length']?_0x2cc5c3['attributes']:_0x296643[_0xb646('0x34')];if(!_0xf737d8[_0xb646('0x35')][_0xb646('0x3a')](_0xb646('0x3b'))){_0x2cc5c3[_0xb646('0x1c')]=qs['limit'](_0xf737d8[_0xb646('0x35')][_0xb646('0x1c')]);_0x2cc5c3[_0xb646('0x1f')]=qs[_0xb646('0x1f')](_0xf737d8[_0xb646('0x35')][_0xb646('0x1f')]);}_0x2cc5c3[_0xb646('0x3c')]=qs[_0xb646('0x3d')](_0xf737d8[_0xb646('0x35')][_0xb646('0x3d')]);_0x2cc5c3['where']=qs[_0xb646('0x36')](_[_0xb646('0x3f')](_0xf737d8['query'],_0x296643[_0xb646('0x36')]));_0x2cc5c3[_0xb646('0x3e')]['ContactId']=_0x21b3fa['id'];if(_0xf737d8['query'][_0xb646('0x5e')]){_0x2cc5c3[_0xb646('0x3e')]=_[_0xb646('0x8f')](_0x2cc5c3[_0xb646('0x3e')],{'$or':_[_0xb646('0x55')](_0x2cc5c3[_0xb646('0x38')],function(_0x343486){var _0x3509d3={};_0x3509d3[_0x343486]={'$like':'%'+_0xf737d8[_0xb646('0x35')][_0xb646('0x5e')]+'%'};return _0x3509d3;})});}_0x2cc5c3=_['merge']({},_0x2cc5c3,_0xf737d8['options']);return db[_0xb646('0xaa')][_0xb646('0x1e')]({'where':_0x2cc5c3[_0xb646('0x3e')]})['then'](function(_0x3bf0bd){_0xe417f6[_0xb646('0x1e')]=_0x3bf0bd;if(_0xf737d8[_0xb646('0x35')][_0xb646('0xc4')]){_0x2cc5c3[_0xb646('0xc6')]=[{'all':!![]}];}return db[_0xb646('0xaa')][_0xb646('0x8d')](_0x2cc5c3);})['then'](function(_0x4c5115){_0xe417f6[_0xb646('0x87')]=_0x4c5115;return _0xe417f6;});}})[_0xb646('0x23')](respondWithFilteredResult(_0x5d9049,_0x2cc5c3))[_0xb646('0x89')](handleError(_0x5d9049,null));};exports['uploadCsv']=function(_0x2425d7,_0x2916e4,_0x381e53){try{if(!_0x2425d7[_0xb646('0x90')][_0xb646('0x7b')]){throw new Error('No\x20ListId\x20specified');}if(!_0x2425d7[_0xb646('0x90')][_0xb646('0xc7')]){throw new Error('No\x20association\x20keys\x20specified!');}if(!_0x2425d7[_0xb646('0x90')][_0xb646('0xc8')]){throw new Error(_0xb646('0xc9'));}if(!_0x2425d7['body'][_0xb646('0xca')]){throw new Error(_0xb646('0xcb'));}var _0x34486f=_0x2425d7['body'][_0xb646('0xc7')][_0xb646('0x54')](',');var _0x1b651d=_0x2425d7[_0xb646('0x90')]['binding_values'][_0xb646('0x54')](',');if(!_0x34486f[_0xb646('0x51')]||!_0x1b651d[_0xb646('0x51')]||_0x34486f[_0xb646('0x51')]!==_0x1b651d[_0xb646('0x51')]){throw new Error('Incorrect\x20binding\x20parameters\x20passed!');}_0x2425d7[_0xb646('0x90')][_0xb646('0x39')]=_[_0xb646('0xcc')](_0x34486f,_0x1b651d);if(!_0x2425d7[_0xb646('0x90')]['fields'][_0xb646('0xbd')]){throw new Error(_0xb646('0xcd'));}if(!_0x2425d7[_0xb646('0x90')]['fields'][_0xb646('0xce')]){throw new Error(_0xb646('0xcf'));}var _0x19dabe=path[_0xb646('0x94')](config[_0xb646('0xd0')],_0xb646('0xd1'),_0x2425d7[_0xb646('0xd2')][_0xb646('0xd3')]);fs[_0xb646('0xd4')](_0x19dabe,parseInt(_0xb646('0xd5'),0x8));var _0x2e8b63=require(_0xb646('0xd6'))[_0xb646('0xd7')](path[_0xb646('0x94')](__dirname,_0xb646('0xd8')),[_0x19dabe,_0x2425d7[_0xb646('0x90')]['binding_keys'],_0x2425d7[_0xb646('0x90')]['binding_values'],_0x2425d7[_0xb646('0x90')][_0xb646('0x7b')],_0x2425d7['body']['CompanyId'],_0x2425d7[_0xb646('0x90')][_0xb646('0xae')],_0x2425d7['body'][_0xb646('0xca')]]);return _0x2916e4[_0xb646('0x19')](0xc8)[_0xb646('0x1b')]({'message':_0xb646('0xd9'),'pid':_0x2e8b63['pid']});}catch(_0x56c338){return _0x2916e4['status'](0x1f4)[_0xb646('0x28')](_0x56c338);}};exports[_0xb646('0xda')]=function(_0xe0f948,_0x571fd3,_0x49f502){var _0x12a6f0=fs[_0xb646('0xdb')](_0xe0f948['file'][_0xb646('0xdc')]);Papa[_0xb646('0xdd')](_0x12a6f0,{'header':!![],'skipEmptyLines':!![],'preview':0x1,'complete':function(_0x11614b){return _0x571fd3[_0xb646('0x19')](0xc8)[_0xb646('0x1b')]({'file':_0xe0f948[_0xb646('0xd2')],'fields':_0x11614b[_0xb646('0xde')]['fields']});}});};exports[_0xb646('0xdf')]=function(_0x5e314e,_0x3ce57a,_0x2b0f9d){return db[_0xb646('0x57')]['findAll']({'raw':!![],'attributes':['id'],'where':{'role':_0xb646('0xe0')}})['then'](function(_0x1945f7){var _0x4facd1=![];if(!_0x5e314e['body'][_0xb646('0x7b')]){throw new Error(_0xb646('0xe1'));}if(!_0x5e314e['body'][_0xb646('0xe2')][_0xb646('0xbd')]){throw new Error('No\x20phone\x20column\x20specified');}if(!_0x5e314e['body'][_0xb646('0xe2')][_0xb646('0xce')]){throw new Error(_0xb646('0xcf'));}if(!_0x5e314e[_0xb646('0x90')]['socket_timestamp']){throw new Error(_0xb646('0xcb'));}var _0x4a0496=require(_0xb646('0xd6'))['fork'](path['join'](__dirname,_0xb646('0xe3')),[_0x5e314e[_0xb646('0x88')]['id'],JSON[_0xb646('0xe4')](_0x5e314e['body']),JSON[_0xb646('0xe4')](_0x1945f7)]);_0x4a0496['on'](_0xb646('0xe5'),function(_0xb3a3a0){_0x4facd1=!![];return _0x3ce57a[_0xb646('0x19')](0xc8)['json']({'message':'start\x20child\x20process\x20correctly!','pid':_0x4a0496[_0xb646('0xe6')]});});_0x4a0496['on']('exit',function(_0x136110){if(_0x136110&&!_0x4facd1){return _0x3ce57a[_0xb646('0x19')](0x1f4)[_0xb646('0x1b')]({'message':'error\x20child\x20process','pid':_0x4a0496[_0xb646('0xe6')]});}});})[_0xb646('0x89')](handleError(_0x3ce57a,null));};exports['getJourney']=function(_0xdcc0c1,_0x10ccb0){var _0x10bd43=[_0xb646('0xe7'),_0xb646('0xe8'),'sms',_0xb646('0xe9'),_0xb646('0xea'),_0xb646('0xeb'),_0xb646('0xec')];var _0x34fa56={'offset':0x0,'order':qs['sort'](_0xb646('0xed'))},_0x4d052e={'count':0x0,'rows':[]};Promise['resolve']()[_0xb646('0x23')](function(){if(_0xdcc0c1[_0xb646('0x35')][_0xb646('0xee')]){if(!_[_0xb646('0xef')](_0x10bd43,_0xdcc0c1[_0xb646('0x35')][_0xb646('0xee')]['toLowerCase']())){throw new Error('Invalid\x20channel');}_0x10bd43=[_0xdcc0c1[_0xb646('0x35')][_0xb646('0xee')][_0xb646('0xf0')]()];}if(_0xdcc0c1[_0xb646('0x35')][_0xb646('0xf1')]){try{var _0x3434b2=JSON[_0xb646('0xdd')](_0xdcc0c1[_0xb646('0x35')]['range']);if(!moment(_0x3434b2[_0xb646('0x43')])[_0xb646('0xf2')]()){throw new Error(_0xb646('0xf3'));}if(!moment(_0x3434b2['to'])[_0xb646('0xf2')]()){throw new Error(_0xb646('0xf4'));}}catch(_0x222e8d){throw new Error(_0xb646('0xf5'));}}if(!_0xdcc0c1[_0xb646('0x35')][_0xb646('0x3a')](_0xb646('0x3b'))){_0x34fa56['limit']=qs[_0xb646('0x1c')](_0xdcc0c1['query'][_0xb646('0x1c')]||0xa);_0x34fa56[_0xb646('0x1f')]=qs[_0xb646('0x1f')](_0xdcc0c1[_0xb646('0x35')]['offset']);}var _0x1ef9ef=_0x10bd43['map'](function(_0x499f5f){if(_0x499f5f===_0xb646('0xec')){var _0x32f380={'attributes':['id',_0xb646('0xf6'),_0xb646('0x5c'),_0xb646('0xf7'),_0xb646('0xf8'),_0xb646('0xf9'),'starttime','endtime','duration',_0xb646('0xfa'),_0xb646('0xfb'),'userDisposition',_0xb646('0xfc'),_0xb646('0xfd'),'UserId'],'where':{'ContactId':_0xdcc0c1[_0xb646('0x88')]['id']},'include':[{'model':db['User'],'as':_0xb646('0x57'),'attributes':['id','name',_0xb646('0xfe'),_0xb646('0x8e')]}],'order':[['createdAt','DESC']]};if(_0xdcc0c1[_0xb646('0x35')]['range']){_0x32f380[_0xb646('0x3e')][_0xb646('0xfb')]={'$gte':_0x3434b2[_0xb646('0x43')],'$lte':_0x3434b2['to']};}return db['VoiceCallReport'][_0xb646('0xff')](_0x32f380)[_0xb646('0x23')](function(_0x1624bc){_0x4d052e[_0xb646('0x1e')]+=_0x1624bc['count'];return _['map'](_0x1624bc[_0xb646('0x87')],function(_0x5c34eb){var _0x2ba838=_0x5c34eb[_0xb646('0x91')]({'plain':!![]});_0x2ba838[_0xb646('0xee')]=_0x499f5f;if(_0x2ba838[_0xb646('0x57')]){_0x2ba838['User']={'id':_0x2ba838[_0xb646('0x57')]['id'],'name':_0x2ba838[_0xb646('0x57')][_0xb646('0x27')],'fullname':_0x2ba838['User'][_0xb646('0xfe')],'alias':_0x2ba838[_0xb646('0x57')]['alias']};}return _0x2ba838;});});}else{var _0x3b256c=_[_0xb646('0x100')](_0x499f5f)+(_0x499f5f===_0xb646('0xe8')?_0xb646('0x101'):'Account');var _0x32ed83={'attributes':['id',_0xb646('0x102'),_0xb646('0x103'),_0xb646('0xfb'),'note',_0xb646('0x104'),_0xb646('0x105'),_0xb646('0x106'),_0xb646('0x107'),_0x3b256c+'Id'],'where':{'ContactId':_0xdcc0c1[_0xb646('0x88')]['id']},'include':[{'model':db[_0x3b256c],'as':_0xb646('0x108'),'attributes':['id',_0xb646('0x27'),_0xb646('0x109')]},{'model':db['User'],'as':'Owner','attributes':['id',_0xb646('0x27'),_0xb646('0xfe')]},{'model':db['Tag'],'as':_0xb646('0x86'),'attributes':['id',_0xb646('0x27'),_0xb646('0x42')],'through':{'attributes':[]}}],'order':[[_0xb646('0xfb'),_0xb646('0x72')]]};if(_0xdcc0c1[_0xb646('0x35')][_0xb646('0xf1')]){_0x32ed83[_0xb646('0x3e')][_0xb646('0xfb')]={'$gte':_0x3434b2['from'],'$lte':_0x3434b2['to']};}switch(_0x499f5f){case _0xb646('0xe8'):_0x32ed83[_0xb646('0x38')][_0xb646('0x2e')](_0xb646('0x10a'),'customerIp',_0xb646('0x10b'),_0xb646('0x10c'),_0xb646('0x10d'),'ratingMessage',_0xb646('0x10e'),_0xb646('0x10f'),_0xb646('0x110'));break;case _0xb646('0xe7'):_0x32ed83[_0xb646('0x38')][_0xb646('0x2e')](_0xb646('0x111'),'substatus');break;case _0xb646('0xe9'):_0x32ed83[_0xb646('0x38')][_0xb646('0x2e')](_0xb646('0x112'),_0xb646('0x113'));break;}return db[_['startCase'](_0x499f5f)+_0xb646('0x114')][_0xb646('0xff')](_0x32ed83)[_0xb646('0x23')](function(_0x34dd70){_0x4d052e[_0xb646('0x1e')]+=_0x34dd70['count'];return _[_0xb646('0x55')](_0x34dd70['rows'],function(_0x161a61){var _0x55c820=_0x161a61[_0xb646('0x91')]({'plain':!![]});_0x55c820['channel']=_0x499f5f;if(_0x55c820[_0xb646('0x115')]){_0x55c820[_0xb646('0x115')]={'id':_0x55c820[_0xb646('0x115')]['id'],'name':_0x55c820[_0xb646('0x115')]['name'],'fullname':_0x55c820[_0xb646('0x115')]['fullname']};}return _0x55c820;});});}});return Promise[_0xb646('0x32')](_0x1ef9ef);})[_0xb646('0x23')](function(_0x4eef57){return _(_0x4eef57)['flatten']()[_0xb646('0x116')](_0xb646('0xfb'))[_0xb646('0x117')]()[_0xb646('0x53')]();})['then'](function(_0x2cc7a8){_0x4d052e['rows']=_0x34fa56[_0xb646('0x1c')]?_0x2cc7a8[_0xb646('0x118')](_0x34fa56['offset'],_0x34fa56[_0xb646('0x1f')]+_0x34fa56[_0xb646('0x1c')]):_0x2cc7a8;return _0x4d052e;})['then'](respondWithFilteredResult(_0x10ccb0,_0x34fa56))[_0xb646('0x89')](handleError(_0x10ccb0,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb8ac=['update','emit','hasOwnProperty','hook','exports','events','../../mysqldb','CmContact','setMaxListeners','save'];(function(_0x2843da,_0x47a8ff){var _0x13147b=function(_0x4611a9){while(--_0x4611a9){_0x2843da['push'](_0x2843da['shift']());}};_0x13147b(++_0x47a8ff);}(_0xb8ac,0x1b3));var _0xcb8a=function(_0x4f672e,_0x2edc7d){_0x4f672e=_0x4f672e-0x0;var _0x5934fc=_0xb8ac[_0x4f672e];return _0x5934fc;};'use strict';var EventEmitter=require(_0xcb8a('0x0'));var CmContact=require(_0xcb8a('0x1'))['db'][_0xcb8a('0x2')];var CmContactEvents=new EventEmitter();CmContactEvents[_0xcb8a('0x3')](0x0);var events={'afterCreate':_0xcb8a('0x4'),'afterUpdate':_0xcb8a('0x5'),'afterDestroy':'remove'};function emitEvent(_0x174510){return function(_0x442aa2,_0x2ec32c,_0x25d2e4){CmContactEvents['emit'](_0x174510+':'+_0x442aa2['id'],_0x442aa2);CmContactEvents[_0xcb8a('0x6')](_0x174510,_0x442aa2);_0x25d2e4(null);};}for(var e in events){if(events[_0xcb8a('0x7')](e)){var event=events[e];CmContact[_0xcb8a('0x8')](e,emitEvent(event));}}module[_0xcb8a('0x9')]=CmContactEvents;
\ No newline at end of file
+var _0x9c65=['emit','hasOwnProperty','exports','../../mysqldb','CmContact','save','remove'];(function(_0x3fc5cd,_0x5cbf7b){var _0x3691bd=function(_0x271fa5){while(--_0x271fa5){_0x3fc5cd['push'](_0x3fc5cd['shift']());}};_0x3691bd(++_0x5cbf7b);}(_0x9c65,0x192));var _0x59c6=function(_0x1991be,_0x5a7438){_0x1991be=_0x1991be-0x0;var _0x2524c8=_0x9c65[_0x1991be];return _0x2524c8;};'use strict';var EventEmitter=require('events');var CmContact=require(_0x59c6('0x0'))['db'][_0x59c6('0x1')];var CmContactEvents=new EventEmitter();CmContactEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x59c6('0x2'),'afterUpdate':'update','afterDestroy':_0x59c6('0x3')};function emitEvent(_0x4d44f5){return function(_0x5d6f06,_0x57cc62,_0x10c4af){CmContactEvents[_0x59c6('0x4')](_0x4d44f5+':'+_0x5d6f06['id'],_0x5d6f06);CmContactEvents['emit'](_0x4d44f5,_0x5d6f06);_0x10c4af(null);};}for(var e in events){if(events[_0x59c6('0x5')](e)){var event=events[e];CmContact['hook'](e,emitEvent(event));}}module[_0x59c6('0x6')]=CmContactEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x64a3=['create','scheduledat','format','YYYY-MM-DD\x20HH:mm:ss','callbackUniqueid','CmHopperFinal','findOne','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20VoiceQueue\x20','ListId','priority','catch','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20Campaign\x20','\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','CmList','length','always','cmContact,\x20%s,\x20%s','message','Campaign','dialCheckDuplicateType','Lists','onlyIfOpen','BlackLists','CmHopperBlack','List\x20not\x20found','destroy','push','all','info','[CmContact][afterDestroy][Succesfull]','[CmContact][afterDestroy][Error]','lodash','util','../../config/logger','moment','request-promise','path','../../config/environment','exports','CmContact','cm_contacts','phone','fti_cm_contacts','firstName','lastName','mobile','email','FULLTEXT','utf8mb4_unicode_ci','models','get','error','cmContact','afterCreate','inspect','then','isNil','cmContact,\x20afterCreate\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20VoiceQueue\x20','CmHopper'];(function(_0x5a5de0,_0x50c532){var _0x5361e5=function(_0x233958){while(--_0x233958){_0x5a5de0['push'](_0x5a5de0['shift']());}};_0x5361e5(++_0x50c532);}(_0x64a3,0xe7));var _0x364a=function(_0x597d3f,_0x140478){_0x597d3f=_0x597d3f-0x0;var _0x4030e3=_0x64a3[_0x597d3f];return _0x4030e3;};'use strict';var _=require(_0x364a('0x0'));var util=require(_0x364a('0x1'));var logger=require(_0x364a('0x2'))('api');var moment=require(_0x364a('0x3'));var BPromise=require('bluebird');var rp=require(_0x364a('0x4'));var fs=require('fs');var path=require(_0x364a('0x5'));var rimraf=require('rimraf');var config=require(_0x364a('0x6'));var attributes=require('./cmContact.attributes');module[_0x364a('0x7')]=function(_0x3cfdf5,_0x2d6f88){return _0x3cfdf5['define'](_0x364a('0x8'),attributes,{'tableName':_0x364a('0x9'),'paranoid':!![],'indexes':[{'name':'phone','fields':[_0x364a('0xa')]},{'name':_0x364a('0xb'),'fields':[_0x364a('0xc'),_0x364a('0xd'),_0x364a('0xa'),_0x364a('0xe'),'fax',_0x364a('0xf')],'type':_0x364a('0x10')}],'timestamps':!![],'charset':'utf8mb4','collate':_0x364a('0x11'),'hooks':{'afterCreate':function(_0x598908,_0x26a93a,_0x36cd3f){var _0x1c1252=_0x3cfdf5[_0x364a('0x12')];var _0x2541c3=_0x598908[_0x364a('0x13')]({'plain':!![]});function _0x4ffbc6(){return function(_0x4db00b){logger[_0x364a('0x14')](_0x364a('0x15'),_0x364a('0x16'),util[_0x364a('0x17')](_0x4db00b,{'showHidden':![],'depth':null}));};}var _0xf14b1d=function(_0x407ba0){return new BPromise(function(_0x209aa0,_0x1b110c){_0x1c1252['CmHopper']['findOne']({'where':{'phone':_0x2541c3[_0x364a('0xa')],'VoiceQueueId':_0x407ba0['id']}})[_0x364a('0x18')](function(_0x5ec3cc){if(!_[_0x364a('0x19')](_0x5ec3cc)){throw new Error(_0x364a('0x1a')+_0x2541c3[_0x364a('0xa')]+_0x364a('0x1b')+_0x407ba0['id']);}return _0x1c1252[_0x364a('0x1c')][_0x364a('0x1d')]({'phone':_0x2541c3[_0x364a('0xa')],'ContactId':_0x2541c3['id'],'ListId':_0x2541c3['ListId'],'priority':_0x2541c3['priority']?_0x2541c3['priority']:0x2,'scheduledat':_0x2541c3[_0x364a('0x1e')]?_0x2541c3[_0x364a('0x1e')]:moment()[_0x364a('0x1f')](_0x364a('0x20')),'callback':_0x2541c3['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x2541c3[_0x364a('0x21')]?_0x2541c3[_0x364a('0x21')]:undefined,'callbackat':_0x2541c3[_0x364a('0x21')]?moment()['format'](_0x364a('0x20')):undefined,'VoiceQueueId':_0x407ba0['id']});})['catch'](function(_0x107831){_0x1b110c(_0x107831);});});};var _0x29d783=function(_0x570720){return new BPromise(function(_0x5980e1,_0x375346){_0x1c1252[_0x364a('0x1c')]['findOne']({'where':{'phone':_0x2541c3[_0x364a('0xa')],'VoiceQueueId':_0x570720['id']}})[_0x364a('0x18')](function(_0x23e7b4){if(!_['isNil'](_0x23e7b4)){throw new Error(_0x364a('0x1a')+_0x2541c3[_0x364a('0xa')]+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopper\x20VoiceQueue\x20'+_0x570720['id']);}return _0x1c1252[_0x364a('0x22')][_0x364a('0x23')]({'where':{'calleridnum':_0x2541c3[_0x364a('0xa')],'VoiceQueueId':_0x570720['id']}});})[_0x364a('0x18')](function(_0x7cabcf){if(!_[_0x364a('0x19')](_0x7cabcf)){throw new Error('cmContact,\x20afterCreate,\x20'+_0x2541c3['phone']+_0x364a('0x24')+_0x570720['id']);}return _0x1c1252[_0x364a('0x1c')][_0x364a('0x1d')]({'phone':_0x2541c3[_0x364a('0xa')],'ContactId':_0x2541c3['id'],'ListId':_0x2541c3[_0x364a('0x25')],'priority':_0x2541c3[_0x364a('0x26')]?_0x2541c3[_0x364a('0x26')]:0x2,'scheduledat':_0x2541c3[_0x364a('0x1e')]?_0x2541c3[_0x364a('0x1e')]:moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'callback':_0x2541c3[_0x364a('0x21')]?!![]:![],'callbackuniqueid':_0x2541c3[_0x364a('0x21')]?_0x2541c3[_0x364a('0x21')]:undefined,'callbackat':_0x2541c3['callbackUniqueid']?moment()[_0x364a('0x1f')](_0x364a('0x20')):undefined,'VoiceQueueId':_0x570720['id']});})[_0x364a('0x27')](function(_0x322207){_0x375346(_0x322207);});});};function _0x5a55fe(){return function(_0x4e3977){logger[_0x364a('0x14')](_0x364a('0x15'),_0x364a('0x16'),util[_0x364a('0x17')](_0x4e3977,{'showHidden':![],'depth':null}));};}var _0x38b354=function(_0x31b53c){return new BPromise(function(_0x1c762f,_0x42e7f0){_0x1c1252[_0x364a('0x1c')][_0x364a('0x23')]({'where':{'phone':_0x2541c3[_0x364a('0xa')],'CampaignId':_0x31b53c['id']}})['then'](function(_0x3aad88){if(!_[_0x364a('0x19')](_0x3aad88)){throw new Error(_0x364a('0x1a')+_0x2541c3['phone']+_0x364a('0x28')+_0x31b53c['id']);}return _0x1c1252['CmHopper'][_0x364a('0x1d')]({'phone':_0x2541c3[_0x364a('0xa')],'ContactId':_0x2541c3['id'],'ListId':_0x2541c3['ListId'],'priority':_0x2541c3[_0x364a('0x26')]?_0x2541c3[_0x364a('0x26')]:0x2,'scheduledat':_0x2541c3[_0x364a('0x1e')]?_0x2541c3['scheduledat']:moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'callback':_0x2541c3[_0x364a('0x21')]?!![]:![],'callbackuniqueid':_0x2541c3[_0x364a('0x21')]?_0x2541c3['callbackUniqueid']:undefined,'callbackat':_0x2541c3[_0x364a('0x21')]?moment()[_0x364a('0x1f')](_0x364a('0x20')):undefined,'CampaignId':_0x31b53c['id']});})[_0x364a('0x27')](function(_0x10622b){_0x42e7f0(_0x10622b);});});};var _0x23303b=function(_0x1eefe0){return new BPromise(function(_0x512d91,_0x339267){_0x1c1252['CmHopper']['findOne']({'where':{'phone':_0x2541c3[_0x364a('0xa')],'CampaignId':_0x1eefe0['id']}})['then'](function(_0x1afb89){if(!_['isNil'](_0x1afb89)){throw new Error(_0x364a('0x1a')+_0x2541c3[_0x364a('0xa')]+_0x364a('0x29')+_0x1eefe0['id']);}return _0x1c1252[_0x364a('0x22')][_0x364a('0x23')]({'where':{'calleridnum':_0x2541c3[_0x364a('0xa')],'CampaignId':_0x1eefe0['id']}});})[_0x364a('0x18')](function(_0x3f7ea0){if(!_['isNil'](_0x3f7ea0)){throw new Error(_0x364a('0x2a')+_0x2541c3[_0x364a('0xa')]+_0x364a('0x2b')+_0x1eefe0['id']);}return _0x1c1252[_0x364a('0x1c')][_0x364a('0x1d')]({'phone':_0x2541c3[_0x364a('0xa')],'ContactId':_0x2541c3['id'],'ListId':_0x2541c3['ListId'],'priority':_0x2541c3[_0x364a('0x26')]?_0x2541c3[_0x364a('0x26')]:0x2,'scheduledat':_0x2541c3[_0x364a('0x1e')]?_0x2541c3['scheduledat']:moment()['format'](_0x364a('0x20')),'callback':_0x2541c3[_0x364a('0x21')]?!![]:![],'callbackuniqueid':_0x2541c3[_0x364a('0x21')]?_0x2541c3[_0x364a('0x21')]:undefined,'callbackat':_0x2541c3[_0x364a('0x21')]?moment()[_0x364a('0x1f')](_0x364a('0x20')):undefined,'CampaignId':_0x1eefe0['id']});})[_0x364a('0x27')](function(_0x2e08be){_0x339267(_0x2e08be);});});};if(_0x2541c3[_0x364a('0x25')]){_0x1c1252[_0x364a('0x2c')][_0x364a('0x2d')]({'where':{'type':_0x364a('0x2e')},'attributes':['id','dialCheckDuplicateType'],'include':[{'model':_0x1c1252[_0x364a('0x2f')],'as':'Lists','where':{'id':_0x2541c3[_0x364a('0x25')]}}]})[_0x364a('0x18')](function(_0x2159ba){if(_0x2159ba){var _0x856b4e=[];for(var _0x1a8630=0x0,_0x1a2977;_0x1a8630<_0x2159ba[_0x364a('0x30')];_0x1a8630+=0x1){_0x1a2977=_0x2159ba[_0x1a8630]['get']({'plain':!![]});switch(_0x1a2977['dialCheckDuplicateType']){case _0x364a('0x31'):_0x29d783(_0x1a2977)[_0x364a('0x27')](_0x4ffbc6());break;case'onlyIfOpen':_0xf14b1d(_0x1a2977)[_0x364a('0x27')](_0x4ffbc6());break;default:_0x1c1252['CmHopper'][_0x364a('0x1d')]({'phone':_0x2541c3[_0x364a('0xa')],'ContactId':_0x2541c3['id'],'ListId':_0x2541c3[_0x364a('0x25')],'scheduledat':_0x2541c3[_0x364a('0x1e')]?_0x2541c3[_0x364a('0x1e')]:moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'priority':_0x2541c3[_0x364a('0x26')]?_0x2541c3['priority']:0x2,'callback':_0x2541c3[_0x364a('0x21')]?!![]:![],'callbackuniqueid':_0x2541c3[_0x364a('0x21')]?_0x2541c3[_0x364a('0x21')]:undefined,'callbackat':_0x2541c3[_0x364a('0x21')]?moment()['format']('YYYY-MM-DD\x20HH:mm:ss'):undefined,'VoiceQueueId':_0x1a2977['id']})[_0x364a('0x27')](_0x4ffbc6());}}}})[_0x364a('0x18')](function(){return _0x1c1252[_0x364a('0x2c')]['findAll']({'where':{'type':_0x364a('0x2e')},'attributes':['id'],'include':[{'model':_0x1c1252[_0x364a('0x2f')],'as':'BlackLists','where':{'id':_0x2541c3[_0x364a('0x25')]}}]})[_0x364a('0x18')](function(_0x1f455d){if(_0x1f455d){var _0x2a3cf3=[];for(var _0x4af40b=0x0,_0x325a36;_0x4af40b<_0x1f455d[_0x364a('0x30')];_0x4af40b+=0x1){_0x325a36=_0x1f455d[_0x4af40b][_0x364a('0x13')]({'plain':!![]});_0x1c1252['CmHopperBlack'][_0x364a('0x1d')]({'phone':_0x2541c3[_0x364a('0xa')],'ContactId':_0x2541c3['id'],'ListId':_0x2541c3['ListId'],'VoiceQueueId':_0x325a36['id']})[_0x364a('0x27')](function(_0x41f55c){logger[_0x364a('0x14')](_0x364a('0x32'),_0x364a('0x16'),_0x41f55c[_0x364a('0x33')]);});}}});})[_0x364a('0x18')](function(){return _0x1c1252[_0x364a('0x34')][_0x364a('0x2d')]({'attributes':['id',_0x364a('0x35')],'include':[{'model':_0x1c1252[_0x364a('0x2f')],'as':_0x364a('0x36'),'where':{'id':_0x2541c3[_0x364a('0x25')]}}]})[_0x364a('0x18')](function(_0x34df26){if(_0x34df26){var _0x204726=[];for(var _0xff2ae8=0x0,_0x166922;_0xff2ae8<_0x34df26[_0x364a('0x30')];_0xff2ae8+=0x1){_0x166922=_0x34df26[_0xff2ae8]['get']({'plain':!![]});switch(_0x166922['dialCheckDuplicateType']){case _0x364a('0x31'):_0x23303b(_0x166922)[_0x364a('0x27')](_0x5a55fe());break;case _0x364a('0x37'):_0x38b354(_0x166922)[_0x364a('0x27')](_0x5a55fe());break;default:_0x1c1252[_0x364a('0x1c')][_0x364a('0x1d')]({'phone':_0x2541c3[_0x364a('0xa')],'ContactId':_0x2541c3['id'],'ListId':_0x2541c3[_0x364a('0x25')],'scheduledat':_0x2541c3['scheduledat']?_0x2541c3[_0x364a('0x1e')]:moment()[_0x364a('0x1f')](_0x364a('0x20')),'priority':_0x2541c3[_0x364a('0x26')]?_0x2541c3[_0x364a('0x26')]:0x2,'callback':_0x2541c3['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x2541c3[_0x364a('0x21')]?_0x2541c3['callbackUniqueid']:undefined,'callbackat':_0x2541c3[_0x364a('0x21')]?moment()[_0x364a('0x1f')]('YYYY-MM-DD\x20HH:mm:ss'):undefined,'CampaignId':_0x166922['id']})[_0x364a('0x27')](_0x5a55fe());}}}});})['then'](function(){return _0x1c1252[_0x364a('0x34')]['findAll']({'attributes':['id'],'include':[{'model':_0x1c1252['CmList'],'as':_0x364a('0x38'),'where':{'id':_0x2541c3['ListId']}}]})[_0x364a('0x18')](function(_0x32d9a0){if(_0x32d9a0){var _0x5b0ec0=[];for(var _0x500d01=0x0,_0x50b25e;_0x500d01<_0x32d9a0[_0x364a('0x30')];_0x500d01+=0x1){_0x50b25e=_0x32d9a0[_0x500d01][_0x364a('0x13')]({'plain':!![]});_0x1c1252[_0x364a('0x39')][_0x364a('0x1d')]({'phone':_0x2541c3[_0x364a('0xa')],'ContactId':_0x2541c3['id'],'ListId':_0x2541c3[_0x364a('0x25')],'CampaignId':_0x50b25e['id']})[_0x364a('0x27')](function(_0x5b732e){logger[_0x364a('0x14')]('cmContact,\x20%s,\x20%s',_0x364a('0x16'),_0x5b732e[_0x364a('0x33')]);});}}});})[_0x364a('0x18')](function(){_0x36cd3f();})['catch'](function(_0x187f52){logger[_0x364a('0x14')](_0x364a('0x32'),_0x364a('0x16'),_0x187f52[_0x364a('0x33')]);_0x36cd3f(_0x187f52);});}else{_0x36cd3f(new Error(_0x364a('0x3a')));}},'afterDestroy':function(_0x1326d6,_0x4c8c08,_0x2c9ba7){var _0x42277c=_0x3cfdf5[_0x364a('0x12')];var _0x4ff284=_0x1326d6[_0x364a('0x13')]({'plain':!![]});return _0x42277c[_0x364a('0x1c')]['findAll']({'raw':!![],'where':{'ListId':_0x4ff284[_0x364a('0x25')],'ContactId':_0x4ff284['id']}})[_0x364a('0x18')](function(_0x1e92d8){if(!_['isEmpty'](_0x1e92d8)){var _0x42aea4=[];for(var _0x2ab7b4=0x0;_0x2ab7b4<_0x1e92d8[_0x364a('0x30')];_0x2ab7b4+=0x1){var _0x102ec7=_0x42277c[_0x364a('0x1c')][_0x364a('0x3b')]({'where':{'ListId':_0x1e92d8[_0x2ab7b4][_0x364a('0x25')],'ContactId':_0x1e92d8[_0x2ab7b4]['ContactId'],'VoiceQueueId':_0x1e92d8[_0x2ab7b4]['VoiceQueueId'],'CampaignId':_0x1e92d8[_0x2ab7b4]['CampaignId']}});_0x42aea4[_0x364a('0x3c')](_0x102ec7);}return BPromise[_0x364a('0x3d')](_0x42aea4);}})[_0x364a('0x18')](function(_0x53733f){logger[_0x364a('0x3e')](_0x364a('0x3f'),util[_0x364a('0x17')](_0x53733f,{'showHidden':![],'depth':null}));_0x2c9ba7();})['catch'](function(_0x204414){logger[_0x364a('0x14')](_0x364a('0x40'),util[_0x364a('0x17')](_0x204414,{'showHidden':![],'depth':null}));_0x2c9ba7(_0x204414);});}}});};
\ No newline at end of file
+var _0x93cf=['cm_contacts','phone','fti_cm_contacts','firstName','lastName','mobile','fax','email','FULLTEXT','models','get','cmContact','inspect','CmHopper','then','isNil','create','ListId','scheduledat','format','YYYY-MM-DD\x20HH:mm:ss','callbackUniqueid','catch','findOne','cmContact,\x20afterCreate\x20','CmHopperFinal','cmContact,\x20afterCreate,\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20VoiceQueue\x20','priority','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20Campaign\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopper\x20Campaign\x20','VoiceQueue','findAll','outbound','dialCheckDuplicateType','CmList','length','always','onlyIfOpen','BlackLists','CmHopperBlack','error','afterCreate','message','Campaign','cmContact,\x20%s,\x20%s','List\x20not\x20found','isEmpty','ContactId','CampaignId','push','all','info','[CmContact][afterDestroy][Succesfull]','[CmContact][afterDestroy][Error]','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','exports','define','CmContact'];(function(_0x4e9d3c,_0x1f4b98){var _0x2d0825=function(_0x384676){while(--_0x384676){_0x4e9d3c['push'](_0x4e9d3c['shift']());}};_0x2d0825(++_0x1f4b98);}(_0x93cf,0x181));var _0xf93c=function(_0x4e9628,_0x250573){_0x4e9628=_0x4e9628-0x0;var _0x27bc8c=_0x93cf[_0x4e9628];return _0x27bc8c;};'use strict';var _=require(_0xf93c('0x0'));var util=require(_0xf93c('0x1'));var logger=require(_0xf93c('0x2'))(_0xf93c('0x3'));var moment=require(_0xf93c('0x4'));var BPromise=require(_0xf93c('0x5'));var rp=require(_0xf93c('0x6'));var fs=require('fs');var path=require(_0xf93c('0x7'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require('./cmContact.attributes');module[_0xf93c('0x8')]=function(_0x238e3d,_0xf4c6fa){return _0x238e3d[_0xf93c('0x9')](_0xf93c('0xa'),attributes,{'tableName':_0xf93c('0xb'),'paranoid':!![],'indexes':[{'name':_0xf93c('0xc'),'fields':[_0xf93c('0xc')]},{'name':_0xf93c('0xd'),'fields':[_0xf93c('0xe'),_0xf93c('0xf'),_0xf93c('0xc'),_0xf93c('0x10'),_0xf93c('0x11'),_0xf93c('0x12')],'type':_0xf93c('0x13')}],'timestamps':!![],'charset':'utf8mb4','collate':'utf8mb4_unicode_ci','hooks':{'afterCreate':function(_0x448a87,_0x438efd,_0x503c2d){var _0x28769f=_0x238e3d[_0xf93c('0x14')];var _0x259a23=_0x448a87[_0xf93c('0x15')]({'plain':!![]});function _0x467d5e(){return function(_0x43c7a4){logger['error'](_0xf93c('0x16'),'afterCreate',util[_0xf93c('0x17')](_0x43c7a4,{'showHidden':![],'depth':null}));};}var _0x431982=function(_0x30e4d8){return new BPromise(function(_0x272e8b,_0x45fcd4){_0x28769f[_0xf93c('0x18')]['findOne']({'where':{'phone':_0x259a23[_0xf93c('0xc')],'VoiceQueueId':_0x30e4d8['id']}})[_0xf93c('0x19')](function(_0xe3aa12){if(!_[_0xf93c('0x1a')](_0xe3aa12)){throw new Error('cmContact,\x20afterCreate\x20'+_0x259a23[_0xf93c('0xc')]+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20VoiceQueue\x20'+_0x30e4d8['id']);}return _0x28769f[_0xf93c('0x18')][_0xf93c('0x1b')]({'phone':_0x259a23[_0xf93c('0xc')],'ContactId':_0x259a23['id'],'ListId':_0x259a23[_0xf93c('0x1c')],'priority':_0x259a23['priority']?_0x259a23['priority']:0x2,'scheduledat':_0x259a23[_0xf93c('0x1d')]?_0x259a23[_0xf93c('0x1d')]:moment()[_0xf93c('0x1e')](_0xf93c('0x1f')),'callback':_0x259a23[_0xf93c('0x20')]?!![]:![],'callbackuniqueid':_0x259a23['callbackUniqueid']?_0x259a23['callbackUniqueid']:undefined,'callbackat':_0x259a23[_0xf93c('0x20')]?moment()['format'](_0xf93c('0x1f')):undefined,'VoiceQueueId':_0x30e4d8['id']});})[_0xf93c('0x21')](function(_0x27ce99){_0x45fcd4(_0x27ce99);});});};var _0x311356=function(_0x320c8e){return new BPromise(function(_0x290b5b,_0x5893d9){_0x28769f[_0xf93c('0x18')][_0xf93c('0x22')]({'where':{'phone':_0x259a23[_0xf93c('0xc')],'VoiceQueueId':_0x320c8e['id']}})['then'](function(_0x5b24b6){if(!_[_0xf93c('0x1a')](_0x5b24b6)){throw new Error(_0xf93c('0x23')+_0x259a23[_0xf93c('0xc')]+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopper\x20VoiceQueue\x20'+_0x320c8e['id']);}return _0x28769f[_0xf93c('0x24')][_0xf93c('0x22')]({'where':{'calleridnum':_0x259a23[_0xf93c('0xc')],'VoiceQueueId':_0x320c8e['id']}});})[_0xf93c('0x19')](function(_0x45b639){if(!_[_0xf93c('0x1a')](_0x45b639)){throw new Error(_0xf93c('0x25')+_0x259a23[_0xf93c('0xc')]+_0xf93c('0x26')+_0x320c8e['id']);}return _0x28769f[_0xf93c('0x18')][_0xf93c('0x1b')]({'phone':_0x259a23[_0xf93c('0xc')],'ContactId':_0x259a23['id'],'ListId':_0x259a23[_0xf93c('0x1c')],'priority':_0x259a23['priority']?_0x259a23[_0xf93c('0x27')]:0x2,'scheduledat':_0x259a23[_0xf93c('0x1d')]?_0x259a23[_0xf93c('0x1d')]:moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'callback':_0x259a23[_0xf93c('0x20')]?!![]:![],'callbackuniqueid':_0x259a23[_0xf93c('0x20')]?_0x259a23[_0xf93c('0x20')]:undefined,'callbackat':_0x259a23[_0xf93c('0x20')]?moment()['format'](_0xf93c('0x1f')):undefined,'VoiceQueueId':_0x320c8e['id']});})[_0xf93c('0x21')](function(_0x3ae4db){_0x5893d9(_0x3ae4db);});});};function _0x3e1661(){return function(_0x20f4f2){logger['error'](_0xf93c('0x16'),'afterCreate',util[_0xf93c('0x17')](_0x20f4f2,{'showHidden':![],'depth':null}));};}var _0x288e94=function(_0x16cc6e){return new BPromise(function(_0x4ad1b1,_0x3881d0){_0x28769f[_0xf93c('0x18')]['findOne']({'where':{'phone':_0x259a23[_0xf93c('0xc')],'CampaignId':_0x16cc6e['id']}})['then'](function(_0x7157c2){if(!_[_0xf93c('0x1a')](_0x7157c2)){throw new Error(_0xf93c('0x23')+_0x259a23[_0xf93c('0xc')]+_0xf93c('0x28')+_0x16cc6e['id']);}return _0x28769f['CmHopper'][_0xf93c('0x1b')]({'phone':_0x259a23['phone'],'ContactId':_0x259a23['id'],'ListId':_0x259a23[_0xf93c('0x1c')],'priority':_0x259a23[_0xf93c('0x27')]?_0x259a23[_0xf93c('0x27')]:0x2,'scheduledat':_0x259a23[_0xf93c('0x1d')]?_0x259a23[_0xf93c('0x1d')]:moment()[_0xf93c('0x1e')](_0xf93c('0x1f')),'callback':_0x259a23[_0xf93c('0x20')]?!![]:![],'callbackuniqueid':_0x259a23[_0xf93c('0x20')]?_0x259a23['callbackUniqueid']:undefined,'callbackat':_0x259a23[_0xf93c('0x20')]?moment()[_0xf93c('0x1e')](_0xf93c('0x1f')):undefined,'CampaignId':_0x16cc6e['id']});})['catch'](function(_0x38dc30){_0x3881d0(_0x38dc30);});});};var _0x58ae5a=function(_0x5bc6ba){return new BPromise(function(_0x4adb02,_0x3ef125){_0x28769f[_0xf93c('0x18')]['findOne']({'where':{'phone':_0x259a23[_0xf93c('0xc')],'CampaignId':_0x5bc6ba['id']}})[_0xf93c('0x19')](function(_0x393280){if(!_[_0xf93c('0x1a')](_0x393280)){throw new Error(_0xf93c('0x23')+_0x259a23[_0xf93c('0xc')]+_0xf93c('0x29')+_0x5bc6ba['id']);}return _0x28769f['CmHopperFinal'][_0xf93c('0x22')]({'where':{'calleridnum':_0x259a23[_0xf93c('0xc')],'CampaignId':_0x5bc6ba['id']}});})['then'](function(_0x550570){if(!_[_0xf93c('0x1a')](_0x550570)){throw new Error(_0xf93c('0x25')+_0x259a23[_0xf93c('0xc')]+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20Campaign\x20'+_0x5bc6ba['id']);}return _0x28769f['CmHopper'][_0xf93c('0x1b')]({'phone':_0x259a23[_0xf93c('0xc')],'ContactId':_0x259a23['id'],'ListId':_0x259a23[_0xf93c('0x1c')],'priority':_0x259a23[_0xf93c('0x27')]?_0x259a23[_0xf93c('0x27')]:0x2,'scheduledat':_0x259a23[_0xf93c('0x1d')]?_0x259a23['scheduledat']:moment()['format'](_0xf93c('0x1f')),'callback':_0x259a23['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x259a23[_0xf93c('0x20')]?_0x259a23[_0xf93c('0x20')]:undefined,'callbackat':_0x259a23[_0xf93c('0x20')]?moment()[_0xf93c('0x1e')](_0xf93c('0x1f')):undefined,'CampaignId':_0x5bc6ba['id']});})['catch'](function(_0x1b7bcf){_0x3ef125(_0x1b7bcf);});});};if(_0x259a23[_0xf93c('0x1c')]){_0x28769f[_0xf93c('0x2a')][_0xf93c('0x2b')]({'where':{'type':_0xf93c('0x2c')},'attributes':['id',_0xf93c('0x2d')],'include':[{'model':_0x28769f[_0xf93c('0x2e')],'as':'Lists','where':{'id':_0x259a23['ListId']}}]})['then'](function(_0x315c24){if(_0x315c24){var _0x565894=[];for(var _0x3559c1=0x0,_0xbfae5c;_0x3559c1<_0x315c24[_0xf93c('0x2f')];_0x3559c1+=0x1){_0xbfae5c=_0x315c24[_0x3559c1]['get']({'plain':!![]});switch(_0xbfae5c['dialCheckDuplicateType']){case _0xf93c('0x30'):_0x311356(_0xbfae5c)[_0xf93c('0x21')](_0x467d5e());break;case _0xf93c('0x31'):_0x431982(_0xbfae5c)['catch'](_0x467d5e());break;default:_0x28769f[_0xf93c('0x18')]['create']({'phone':_0x259a23[_0xf93c('0xc')],'ContactId':_0x259a23['id'],'ListId':_0x259a23[_0xf93c('0x1c')],'scheduledat':_0x259a23[_0xf93c('0x1d')]?_0x259a23[_0xf93c('0x1d')]:moment()['format'](_0xf93c('0x1f')),'priority':_0x259a23[_0xf93c('0x27')]?_0x259a23[_0xf93c('0x27')]:0x2,'callback':_0x259a23[_0xf93c('0x20')]?!![]:![],'callbackuniqueid':_0x259a23[_0xf93c('0x20')]?_0x259a23[_0xf93c('0x20')]:undefined,'callbackat':_0x259a23[_0xf93c('0x20')]?moment()[_0xf93c('0x1e')](_0xf93c('0x1f')):undefined,'VoiceQueueId':_0xbfae5c['id']})[_0xf93c('0x21')](_0x467d5e());}}}})[_0xf93c('0x19')](function(){return _0x28769f[_0xf93c('0x2a')]['findAll']({'where':{'type':'outbound'},'attributes':['id'],'include':[{'model':_0x28769f[_0xf93c('0x2e')],'as':_0xf93c('0x32'),'where':{'id':_0x259a23[_0xf93c('0x1c')]}}]})[_0xf93c('0x19')](function(_0x1977e7){if(_0x1977e7){var _0x3ea45a=[];for(var _0x570e6c=0x0,_0x638f79;_0x570e6c<_0x1977e7[_0xf93c('0x2f')];_0x570e6c+=0x1){_0x638f79=_0x1977e7[_0x570e6c][_0xf93c('0x15')]({'plain':!![]});_0x28769f[_0xf93c('0x33')][_0xf93c('0x1b')]({'phone':_0x259a23[_0xf93c('0xc')],'ContactId':_0x259a23['id'],'ListId':_0x259a23[_0xf93c('0x1c')],'VoiceQueueId':_0x638f79['id']})['catch'](function(_0x223f6a){logger[_0xf93c('0x34')]('cmContact,\x20%s,\x20%s',_0xf93c('0x35'),_0x223f6a[_0xf93c('0x36')]);});}}});})['then'](function(){return _0x28769f[_0xf93c('0x37')][_0xf93c('0x2b')]({'attributes':['id',_0xf93c('0x2d')],'include':[{'model':_0x28769f['CmList'],'as':'Lists','where':{'id':_0x259a23[_0xf93c('0x1c')]}}]})[_0xf93c('0x19')](function(_0x598d5c){if(_0x598d5c){var _0x3d8195=[];for(var _0x532f18=0x0,_0xc6393e;_0x532f18<_0x598d5c[_0xf93c('0x2f')];_0x532f18+=0x1){_0xc6393e=_0x598d5c[_0x532f18][_0xf93c('0x15')]({'plain':!![]});switch(_0xc6393e[_0xf93c('0x2d')]){case _0xf93c('0x30'):_0x58ae5a(_0xc6393e)[_0xf93c('0x21')](_0x3e1661());break;case _0xf93c('0x31'):_0x288e94(_0xc6393e)[_0xf93c('0x21')](_0x3e1661());break;default:_0x28769f['CmHopper']['create']({'phone':_0x259a23['phone'],'ContactId':_0x259a23['id'],'ListId':_0x259a23[_0xf93c('0x1c')],'scheduledat':_0x259a23['scheduledat']?_0x259a23[_0xf93c('0x1d')]:moment()[_0xf93c('0x1e')](_0xf93c('0x1f')),'priority':_0x259a23[_0xf93c('0x27')]?_0x259a23[_0xf93c('0x27')]:0x2,'callback':_0x259a23[_0xf93c('0x20')]?!![]:![],'callbackuniqueid':_0x259a23['callbackUniqueid']?_0x259a23[_0xf93c('0x20')]:undefined,'callbackat':_0x259a23['callbackUniqueid']?moment()[_0xf93c('0x1e')](_0xf93c('0x1f')):undefined,'CampaignId':_0xc6393e['id']})['catch'](_0x3e1661());}}}});})['then'](function(){return _0x28769f['Campaign']['findAll']({'attributes':['id'],'include':[{'model':_0x28769f['CmList'],'as':_0xf93c('0x32'),'where':{'id':_0x259a23[_0xf93c('0x1c')]}}]})[_0xf93c('0x19')](function(_0x27cd3c){if(_0x27cd3c){var _0x5ef9c0=[];for(var _0x512de9=0x0,_0x14775b;_0x512de9<_0x27cd3c[_0xf93c('0x2f')];_0x512de9+=0x1){_0x14775b=_0x27cd3c[_0x512de9]['get']({'plain':!![]});_0x28769f[_0xf93c('0x33')]['create']({'phone':_0x259a23[_0xf93c('0xc')],'ContactId':_0x259a23['id'],'ListId':_0x259a23['ListId'],'CampaignId':_0x14775b['id']})[_0xf93c('0x21')](function(_0x5e327c){logger[_0xf93c('0x34')](_0xf93c('0x38'),_0xf93c('0x35'),_0x5e327c[_0xf93c('0x36')]);});}}});})['then'](function(){_0x503c2d();})[_0xf93c('0x21')](function(_0x273309){logger[_0xf93c('0x34')](_0xf93c('0x38'),_0xf93c('0x35'),_0x273309[_0xf93c('0x36')]);_0x503c2d(_0x273309);});}else{_0x503c2d(new Error(_0xf93c('0x39')));}},'afterDestroy':function(_0xaed348,_0x1edf20,_0x458a56){var _0x55b9a9=_0x238e3d['models'];var _0x3c0956=_0xaed348[_0xf93c('0x15')]({'plain':!![]});return _0x55b9a9['CmHopper'][_0xf93c('0x2b')]({'raw':!![],'where':{'ListId':_0x3c0956[_0xf93c('0x1c')],'ContactId':_0x3c0956['id']}})[_0xf93c('0x19')](function(_0x520d91){if(!_[_0xf93c('0x3a')](_0x520d91)){var _0xd0af85=[];for(var _0x22ac64=0x0;_0x22ac64<_0x520d91[_0xf93c('0x2f')];_0x22ac64+=0x1){var _0xc6d2b=_0x55b9a9['CmHopper']['destroy']({'where':{'ListId':_0x520d91[_0x22ac64][_0xf93c('0x1c')],'ContactId':_0x520d91[_0x22ac64][_0xf93c('0x3b')],'VoiceQueueId':_0x520d91[_0x22ac64]['VoiceQueueId'],'CampaignId':_0x520d91[_0x22ac64][_0xf93c('0x3c')]}});_0xd0af85[_0xf93c('0x3d')](_0xc6d2b);}return BPromise[_0xf93c('0x3e')](_0xd0af85);}})[_0xf93c('0x19')](function(_0x3179f4){logger[_0xf93c('0x3f')](_0xf93c('0x40'),util[_0xf93c('0x17')](_0x3179f4,{'showHidden':![],'depth':null}));_0x458a56();})[_0xf93c('0x21')](function(_0x33e532){logger[_0xf93c('0x34')](_0xf93c('0x41'),util[_0xf93c('0x17')](_0x33e532,{'showHidden':![],'depth':null}));_0x458a56(_0x33e532);});}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa107=['cm_contacts','where','id\x20=\x20?','toString','sequelize','query','CreateCmContact','util','moment','bluebird','squel','../../mysqldb','../../config/utils','rpc','client','http','redis','register','request','then','info','CmContact,\x20%s,\x20%s','debug','CmContact,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message','catch','GetCmContact','CmContact','findAll','options','attributes','map','include','model','create','body','raw','length','keys','startsWith','cf_','update','table'];(function(_0xea0206,_0x2e8eaf){var _0x25579c=function(_0x540022){while(--_0x540022){_0xea0206['push'](_0xea0206['shift']());}};_0x25579c(++_0x2e8eaf);}(_0xa107,0xed));var _0x7a10=function(_0x3c487b,_0x44c5e2){_0x3c487b=_0x3c487b-0x0;var _0x1d65f6=_0xa107[_0x3c487b];return _0x1d65f6;};'use strict';var _=require('lodash');var util=require(_0x7a10('0x0'));var moment=require(_0x7a10('0x1'));var BPromise=require(_0x7a10('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var squel=require(_0x7a10('0x3'));var db=require(_0x7a10('0x4'))['db'];var utils=require(_0x7a10('0x5'));var logger=require('../../config/logger')(_0x7a10('0x6'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0x7a10('0x7')][_0x7a10('0x8')]({'port':0x232a});config[_0x7a10('0x9')]=_['defaults'](config[_0x7a10('0x9')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x7a10('0x9')]));require('./cmContact.socket')[_0x7a10('0xa')](socket);function respondWithRpcPromise(_0x463dc7,_0x2aa2ab,_0x1f6abf){return new BPromise(function(_0x4e9ef9,_0x1c95f7){return client[_0x7a10('0xb')](_0x463dc7,_0x1f6abf)[_0x7a10('0xc')](function(_0x51ad72){logger[_0x7a10('0xd')](_0x7a10('0xe'),_0x2aa2ab,'request\x20sent');logger[_0x7a10('0xf')](_0x7a10('0x10'),_0x2aa2ab,_0x7a10('0x11'),JSON[_0x7a10('0x12')](_0x51ad72));if(_0x51ad72[_0x7a10('0x13')]){if(_0x51ad72['error']['code']===0x1f4){logger['error'](_0x7a10('0xe'),_0x2aa2ab,_0x51ad72[_0x7a10('0x13')][_0x7a10('0x14')]);return _0x1c95f7(_0x51ad72[_0x7a10('0x13')][_0x7a10('0x14')]);}logger[_0x7a10('0x13')](_0x7a10('0xe'),_0x2aa2ab,_0x51ad72[_0x7a10('0x13')][_0x7a10('0x14')]);return _0x4e9ef9(_0x51ad72[_0x7a10('0x13')][_0x7a10('0x14')]);}else{logger[_0x7a10('0xd')](_0x7a10('0xe'),_0x2aa2ab,_0x7a10('0x11'));_0x4e9ef9(_0x51ad72['result']['message']);}})[_0x7a10('0x15')](function(_0x28d421){logger[_0x7a10('0x13')](_0x7a10('0xe'),_0x2aa2ab,_0x28d421);_0x1c95f7(_0x28d421);});});}exports[_0x7a10('0x16')]=function(_0xd6cf90){var _0x304fa8=this;return new Promise(function(_0x3bc0de,_0x3a1265){return db[_0x7a10('0x17')][_0x7a10('0x18')]({'raw':_0xd6cf90[_0x7a10('0x19')]?_0xd6cf90['options']['raw']===undefined?!![]:![]:!![],'where':_0xd6cf90[_0x7a10('0x19')]?_0xd6cf90[_0x7a10('0x19')]['where']||null:null,'attributes':_0xd6cf90[_0x7a10('0x19')]?_0xd6cf90[_0x7a10('0x19')][_0x7a10('0x1a')]||null:null,'limit':_0xd6cf90[_0x7a10('0x19')]?_0xd6cf90['options']['limit']||null:null,'include':_0xd6cf90['options']?_0xd6cf90[_0x7a10('0x19')]['include']?_[_0x7a10('0x1b')](_0xd6cf90[_0x7a10('0x19')][_0x7a10('0x1c')],function(_0x3a794c){return{'model':db[_0x3a794c[_0x7a10('0x1d')]],'as':_0x3a794c['as'],'attributes':_0x3a794c[_0x7a10('0x1a')],'include':_0x3a794c[_0x7a10('0x1c')]?_[_0x7a10('0x1b')](_0x3a794c[_0x7a10('0x1c')],function(_0x1d0660){return{'model':db[_0x1d0660['model']],'as':_0x1d0660['as'],'attributes':_0x1d0660[_0x7a10('0x1a')],'include':_0x1d0660[_0x7a10('0x1c')]?_['map'](_0x1d0660[_0x7a10('0x1c')],function(_0x4cc6c1){return{'model':db[_0x4cc6c1[_0x7a10('0x1d')]],'as':_0x4cc6c1['as'],'attributes':_0x4cc6c1[_0x7a10('0x1a')]};}):[]};}):[]};}):[]:[]})[_0x7a10('0xc')](function(_0x54eb1e){logger[_0x7a10('0xd')](_0x7a10('0x16'),_0xd6cf90);logger[_0x7a10('0xf')]('GetCmContact',_0xd6cf90,JSON[_0x7a10('0x12')](_0x54eb1e));_0x3bc0de(_0x54eb1e);})[_0x7a10('0x15')](function(_0x2e5be7){logger[_0x7a10('0x13')](_0x7a10('0x16'),_0x2e5be7[_0x7a10('0x14')],_0xd6cf90);_0x3a1265(_0x304fa8[_0x7a10('0x13')](0x1f4,_0x2e5be7[_0x7a10('0x14')]));});});};exports['CreateCmContact']=function(_0x3d6614){var _0x5c5df5=this;return new Promise(function(_0x4e1b5d,_0x656c83){return db[_0x7a10('0x17')][_0x7a10('0x1e')](_0x3d6614[_0x7a10('0x1f')],{'raw':_0x3d6614[_0x7a10('0x19')]?_0x3d6614['options'][_0x7a10('0x20')]===undefined?!![]:![]:!![]})['then'](function(_0x1debb7){var _0x8a5f92;for(var _0x5ce4fd=0x0;_0x5ce4fd<Object['keys'](_0x3d6614[_0x7a10('0x1f')])[_0x7a10('0x21')];_0x5ce4fd++){var _0x291184=Object[_0x7a10('0x22')](_0x3d6614[_0x7a10('0x1f')])[_0x5ce4fd];if(_0x291184[_0x7a10('0x23')](_0x7a10('0x24'))){_0x8a5f92=squel[_0x7a10('0x25')]()[_0x7a10('0x26')](_0x7a10('0x27'))['set'](_0x291184,_0x3d6614[_0x7a10('0x1f')][_0x291184])[_0x7a10('0x28')](_0x7a10('0x29'),_0x1debb7['id'])[_0x7a10('0x2a')]();break;}}if(!_0x8a5f92)return _0x1debb7;return db[_0x7a10('0x2b')][_0x7a10('0x2c')](_0x8a5f92)[_0x7a10('0xc')](function(){return _0x1debb7;});})[_0x7a10('0xc')](function(_0x488cb2){logger[_0x7a10('0xd')](_0x7a10('0x2d'),_0x3d6614);logger[_0x7a10('0xf')](_0x7a10('0x2d'),_0x3d6614,JSON[_0x7a10('0x12')](_0x488cb2));_0x4e1b5d(_0x488cb2);})['catch'](function(_0x289235){logger['error']('CreateCmContact',_0x289235[_0x7a10('0x14')],_0x3d6614);_0x656c83(_0x5c5df5[_0x7a10('0x13')](0x1f4,_0x289235[_0x7a10('0x14')]));});});};
\ No newline at end of file
+var _0xdc5e=['startsWith','cf_','table','set','id\x20=\x20?','toString','sequelize','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','redis','defaults','localhost','socket.io-emitter','./cmContact.socket','register','then','info','CmContact,\x20%s,\x20%s','request\x20sent','debug','CmContact,\x20%s,\x20%s,\x20%s','stringify','error','code','message','GetCmContact','CmContact','findAll','options','raw','where','attributes','include','map','model','catch','CreateCmContact','body','keys','length'];(function(_0xc1599d,_0x550fb0){var _0x2ecdd7=function(_0x37741c){while(--_0x37741c){_0xc1599d['push'](_0xc1599d['shift']());}};_0x2ecdd7(++_0x550fb0);}(_0xdc5e,0x133));var _0xedc5=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0xdc5e[_0x321bb2];return _0x9c12ed;};'use strict';var _=require(_0xedc5('0x0'));var util=require(_0xedc5('0x1'));var moment=require(_0xedc5('0x2'));var BPromise=require(_0xedc5('0x3'));var rs=require(_0xedc5('0x4'));var fs=require('fs');var Redis=require(_0xedc5('0x5'));var squel=require('squel');var db=require(_0xedc5('0x6'))['db'];var utils=require(_0xedc5('0x7'));var logger=require(_0xedc5('0x8'))(_0xedc5('0x9'));var config=require(_0xedc5('0xa'));var jayson=require('jayson/promise');var client=jayson[_0xedc5('0xb')]['http']({'port':0x232a});config[_0xedc5('0xc')]=_[_0xedc5('0xd')](config[_0xedc5('0xc')],{'host':_0xedc5('0xe'),'port':0x18eb});var socket=require(_0xedc5('0xf'))(new Redis(config[_0xedc5('0xc')]));require(_0xedc5('0x10'))[_0xedc5('0x11')](socket);function respondWithRpcPromise(_0x586d4c,_0x573d7f,_0x4d2079){return new BPromise(function(_0x2a8fd6,_0xfaa1b4){return client['request'](_0x586d4c,_0x4d2079)[_0xedc5('0x12')](function(_0x2cfb2f){logger[_0xedc5('0x13')](_0xedc5('0x14'),_0x573d7f,_0xedc5('0x15'));logger[_0xedc5('0x16')](_0xedc5('0x17'),_0x573d7f,_0xedc5('0x15'),JSON[_0xedc5('0x18')](_0x2cfb2f));if(_0x2cfb2f[_0xedc5('0x19')]){if(_0x2cfb2f['error'][_0xedc5('0x1a')]===0x1f4){logger[_0xedc5('0x19')](_0xedc5('0x14'),_0x573d7f,_0x2cfb2f[_0xedc5('0x19')][_0xedc5('0x1b')]);return _0xfaa1b4(_0x2cfb2f['error'][_0xedc5('0x1b')]);}logger[_0xedc5('0x19')]('CmContact,\x20%s,\x20%s',_0x573d7f,_0x2cfb2f[_0xedc5('0x19')]['message']);return _0x2a8fd6(_0x2cfb2f['error'][_0xedc5('0x1b')]);}else{logger[_0xedc5('0x13')](_0xedc5('0x14'),_0x573d7f,'request\x20sent');_0x2a8fd6(_0x2cfb2f['result']['message']);}})['catch'](function(_0x5b1dfb){logger[_0xedc5('0x19')](_0xedc5('0x14'),_0x573d7f,_0x5b1dfb);_0xfaa1b4(_0x5b1dfb);});});}exports[_0xedc5('0x1c')]=function(_0x3977b7){var _0x43a4eb=this;return new Promise(function(_0x334487,_0xdc461a){return db[_0xedc5('0x1d')][_0xedc5('0x1e')]({'raw':_0x3977b7[_0xedc5('0x1f')]?_0x3977b7[_0xedc5('0x1f')][_0xedc5('0x20')]===undefined?!![]:![]:!![],'where':_0x3977b7[_0xedc5('0x1f')]?_0x3977b7[_0xedc5('0x1f')][_0xedc5('0x21')]||null:null,'attributes':_0x3977b7[_0xedc5('0x1f')]?_0x3977b7[_0xedc5('0x1f')][_0xedc5('0x22')]||null:null,'limit':_0x3977b7['options']?_0x3977b7[_0xedc5('0x1f')]['limit']||null:null,'include':_0x3977b7[_0xedc5('0x1f')]?_0x3977b7[_0xedc5('0x1f')][_0xedc5('0x23')]?_[_0xedc5('0x24')](_0x3977b7[_0xedc5('0x1f')][_0xedc5('0x23')],function(_0x3174e4){return{'model':db[_0x3174e4['model']],'as':_0x3174e4['as'],'attributes':_0x3174e4[_0xedc5('0x22')],'include':_0x3174e4[_0xedc5('0x23')]?_[_0xedc5('0x24')](_0x3174e4['include'],function(_0x13e0dc){return{'model':db[_0x13e0dc[_0xedc5('0x25')]],'as':_0x13e0dc['as'],'attributes':_0x13e0dc[_0xedc5('0x22')],'include':_0x13e0dc[_0xedc5('0x23')]?_['map'](_0x13e0dc['include'],function(_0x26c74d){return{'model':db[_0x26c74d[_0xedc5('0x25')]],'as':_0x26c74d['as'],'attributes':_0x26c74d[_0xedc5('0x22')]};}):[]};}):[]};}):[]:[]})[_0xedc5('0x12')](function(_0x3f8794){logger[_0xedc5('0x13')](_0xedc5('0x1c'),_0x3977b7);logger[_0xedc5('0x16')]('GetCmContact',_0x3977b7,JSON['stringify'](_0x3f8794));_0x334487(_0x3f8794);})[_0xedc5('0x26')](function(_0x32a846){logger['error'](_0xedc5('0x1c'),_0x32a846[_0xedc5('0x1b')],_0x3977b7);_0xdc461a(_0x43a4eb[_0xedc5('0x19')](0x1f4,_0x32a846['message']));});});};exports[_0xedc5('0x27')]=function(_0x1b2d98){var _0x2177b0=this;return new Promise(function(_0x4af052,_0x2ca6a1){return db[_0xedc5('0x1d')]['create'](_0x1b2d98[_0xedc5('0x28')],{'raw':_0x1b2d98[_0xedc5('0x1f')]?_0x1b2d98[_0xedc5('0x1f')][_0xedc5('0x20')]===undefined?!![]:![]:!![]})['then'](function(_0xe959b5){var _0x12d281;for(var _0x46bd53=0x0;_0x46bd53<Object[_0xedc5('0x29')](_0x1b2d98[_0xedc5('0x28')])[_0xedc5('0x2a')];_0x46bd53++){var _0x1ae320=Object[_0xedc5('0x29')](_0x1b2d98[_0xedc5('0x28')])[_0x46bd53];if(_0x1ae320[_0xedc5('0x2b')](_0xedc5('0x2c'))){_0x12d281=squel['update']()[_0xedc5('0x2d')]('cm_contacts')[_0xedc5('0x2e')](_0x1ae320,_0x1b2d98[_0xedc5('0x28')][_0x1ae320])['where'](_0xedc5('0x2f'),_0xe959b5['id'])[_0xedc5('0x30')]();break;}}if(!_0x12d281)return _0xe959b5;return db[_0xedc5('0x31')]['query'](_0x12d281)['then'](function(){return _0xe959b5;});})[_0xedc5('0x12')](function(_0x121c53){logger[_0xedc5('0x13')](_0xedc5('0x27'),_0x1b2d98);logger[_0xedc5('0x16')](_0xedc5('0x27'),_0x1b2d98,JSON['stringify'](_0x121c53));_0x4af052(_0x121c53);})[_0xedc5('0x26')](function(_0x5c2dd1){logger['error']('CreateCmContact',_0x5c2dd1['message'],_0x1b2d98);_0x2ca6a1(_0x2177b0[_0xedc5('0x19')](0x1f4,_0x5c2dd1['message']));});});};
\ 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(_0x42cae2,_0x284ef8){var _0x5f256f=function(_0x41abc8){while(--_0x41abc8){_0x42cae2['push'](_0x42cae2['shift']());}};_0x5f256f(++_0x284ef8);}(_0xa9e0,0x123));var _0x0a9e=function(_0x36dfbd,_0x5bfe2d){_0x36dfbd=_0x36dfbd-0x0;var _0x4ecad9=_0xa9e0[_0x36dfbd];return _0x4ecad9;};'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(_0x57b54c,_0x54ce0d){var _0x59cc19=function(_0xa33bc6){while(--_0xa33bc6){_0x57b54c['push'](_0x57b54c['shift']());}};_0x59cc19(++_0x54ce0d);}(_0xa9e0,0x123));var _0x0a9e=function(_0x5b78e8,_0x55096b){_0x5b78e8=_0x5b78e8-0x0;var _0xf2c321=_0xa9e0[_0x5b78e8];return _0xf2c321;};'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 _0xbb97=['diskStorage','server/files/tmp','basename','upload','/upload/:id','update','delete','exports','multer','util','express','fs-extra','../../components/interaction/service','./cmContact.controller','isAuthenticated','index','/describe','get','/:id','/:id/tags','/:id/hoppers','getHoppers','/:id/hopper_histories','getHopperHistories','/:id/hopper_finals','getHopperFinals','/:id/jscripty_sessions','getJscriptySessions','/:id/journey','getJourney','post','/merge','create','/create_many','join','root','originalname','replace','format','%s-%s%s','extname','now','/csv','single','file'];(function(_0x4e2d2d,_0x4b69b5){var _0x30ad9f=function(_0x4ddfd2){while(--_0x4ddfd2){_0x4e2d2d['push'](_0x4e2d2d['shift']());}};_0x30ad9f(++_0x4b69b5);}(_0xbb97,0x1ca));var _0x7bb9=function(_0x3d62e8,_0x4dfbc8){_0x3d62e8=_0x3d62e8-0x0;var _0x1e6df0=_0xbb97[_0x3d62e8];return _0x1e6df0;};'use strict';var multer=require(_0x7bb9('0x0'));var util=require(_0x7bb9('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require(_0x7bb9('0x2'));var router=express['Router']();var fs_extra=require(_0x7bb9('0x3'));var auth=require('../../components/auth/service');var interaction=require(_0x7bb9('0x4'));var config=require('../../config/environment');var controller=require(_0x7bb9('0x5'));router['get']('/',auth[_0x7bb9('0x6')](),controller[_0x7bb9('0x7')]);router['get'](_0x7bb9('0x8'),auth[_0x7bb9('0x6')](),controller['describe']);router[_0x7bb9('0x9')](_0x7bb9('0xa'),auth[_0x7bb9('0x6')](),controller['show']);router[_0x7bb9('0x9')](_0x7bb9('0xb'),auth['isAuthenticated'](),controller['getTags']);router[_0x7bb9('0x9')](_0x7bb9('0xc'),auth[_0x7bb9('0x6')](),controller[_0x7bb9('0xd')]);router[_0x7bb9('0x9')](_0x7bb9('0xe'),auth[_0x7bb9('0x6')](),controller[_0x7bb9('0xf')]);router[_0x7bb9('0x9')](_0x7bb9('0x10'),auth['isAuthenticated'](),controller[_0x7bb9('0x11')]);router[_0x7bb9('0x9')](_0x7bb9('0x12'),auth[_0x7bb9('0x6')](),controller[_0x7bb9('0x13')]);router['get'](_0x7bb9('0x14'),auth['isAuthenticated'](),controller[_0x7bb9('0x15')]);router[_0x7bb9('0x16')](_0x7bb9('0x17'),auth[_0x7bb9('0x6')](),controller['merge']);router[_0x7bb9('0x16')]('/',auth['isAuthenticated'](),controller[_0x7bb9('0x18')]);router[_0x7bb9('0x16')](_0x7bb9('0x19'),auth[_0x7bb9('0x6')](),controller['bulkCreate']);router[_0x7bb9('0x16')](_0x7bb9('0xb'),auth[_0x7bb9('0x6')](),controller['setTags']);var upload=multer({'storage':multer['diskStorage']({'destination':function(_0x36bed6,_0x52c14d,_0x4eccec){_0x4eccec(null,path[_0x7bb9('0x1a')](config[_0x7bb9('0x1b')],'server/files/tmp'));},'filename':function(_0x4eb494,_0x300c5e,_0x4d95b0){_0x300c5e[_0x7bb9('0x1c')]=_0x300c5e[_0x7bb9('0x1c')][_0x7bb9('0x1d')](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-');_0x4d95b0(null,util[_0x7bb9('0x1e')](_0x7bb9('0x1f'),path['basename'](_0x300c5e[_0x7bb9('0x1c')],path[_0x7bb9('0x20')](_0x300c5e[_0x7bb9('0x1c')])),Date[_0x7bb9('0x21')](),path[_0x7bb9('0x20')](_0x300c5e['originalname'])));}})});router[_0x7bb9('0x16')](_0x7bb9('0x22'),upload[_0x7bb9('0x23')](_0x7bb9('0x24')),controller['uploadCsv']);var upload=multer({'storage':multer[_0x7bb9('0x25')]({'destination':function(_0x1c669a,_0xfa85a5,_0x114d73){_0x114d73(null,path[_0x7bb9('0x1a')](config['root'],_0x7bb9('0x26')));},'filename':function(_0x34d1b7,_0x4eb7fa,_0x2ebdaa){_0x4eb7fa[_0x7bb9('0x1c')]=_0x4eb7fa[_0x7bb9('0x1c')][_0x7bb9('0x1d')](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-');_0x2ebdaa(null,util[_0x7bb9('0x1e')](_0x7bb9('0x1f'),path[_0x7bb9('0x27')](_0x4eb7fa[_0x7bb9('0x1c')],path[_0x7bb9('0x20')](_0x4eb7fa['originalname'])),Date[_0x7bb9('0x21')](),path['extname'](_0x4eb7fa[_0x7bb9('0x1c')])));}})});router[_0x7bb9('0x16')]('/upload',upload[_0x7bb9('0x23')](_0x7bb9('0x24')),controller[_0x7bb9('0x28')]);router[_0x7bb9('0x16')](_0x7bb9('0x29'),auth[_0x7bb9('0x6')](),controller['import']);router['put'](_0x7bb9('0xa'),auth['isAuthenticated'](),controller[_0x7bb9('0x2a')]);router[_0x7bb9('0x2b')](_0x7bb9('0xa'),auth[_0x7bb9('0x6')](),controller['destroy']);module[_0x7bb9('0x2c')]=router;
\ No newline at end of file
+var _0x625c=['getHopperHistories','/:id/hopper_finals','getHopperFinals','/:id/jscripty_sessions','getJscriptySessions','/:id/journey','getJourney','post','/merge','/create_many','bulkCreate','setTags','root','server/files/tmp','format','basename','originalname','now','/csv','single','file','uploadCsv','replace','%s-%s%s','extname','upload','import','update','delete','destroy','exports','path','express','fs-extra','../../components/auth/service','../../config/environment','./cmContact.controller','get','index','/describe','/:id','isAuthenticated','show','/:id/tags'];(function(_0x324fe8,_0x1ccb46){var _0x4a1cd9=function(_0x506af2){while(--_0x506af2){_0x324fe8['push'](_0x324fe8['shift']());}};_0x4a1cd9(++_0x1ccb46);}(_0x625c,0x77));var _0xc625=function(_0x5c9df3,_0x3d9301){_0x5c9df3=_0x5c9df3-0x0;var _0x4493b9=_0x625c[_0x5c9df3];return _0x4493b9;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0xc625('0x0'));var timeout=require('connect-timeout');var express=require(_0xc625('0x1'));var router=express['Router']();var fs_extra=require(_0xc625('0x2'));var auth=require(_0xc625('0x3'));var interaction=require('../../components/interaction/service');var config=require(_0xc625('0x4'));var controller=require(_0xc625('0x5'));router[_0xc625('0x6')]('/',auth['isAuthenticated'](),controller[_0xc625('0x7')]);router[_0xc625('0x6')](_0xc625('0x8'),auth['isAuthenticated'](),controller['describe']);router['get'](_0xc625('0x9'),auth[_0xc625('0xa')](),controller[_0xc625('0xb')]);router[_0xc625('0x6')](_0xc625('0xc'),auth[_0xc625('0xa')](),controller['getTags']);router[_0xc625('0x6')]('/:id/hoppers',auth[_0xc625('0xa')](),controller['getHoppers']);router[_0xc625('0x6')]('/:id/hopper_histories',auth[_0xc625('0xa')](),controller[_0xc625('0xd')]);router[_0xc625('0x6')](_0xc625('0xe'),auth[_0xc625('0xa')](),controller[_0xc625('0xf')]);router['get'](_0xc625('0x10'),auth[_0xc625('0xa')](),controller[_0xc625('0x11')]);router[_0xc625('0x6')](_0xc625('0x12'),auth[_0xc625('0xa')](),controller[_0xc625('0x13')]);router[_0xc625('0x14')](_0xc625('0x15'),auth['isAuthenticated'](),controller['merge']);router[_0xc625('0x14')]('/',auth[_0xc625('0xa')](),controller['create']);router[_0xc625('0x14')](_0xc625('0x16'),auth[_0xc625('0xa')](),controller[_0xc625('0x17')]);router[_0xc625('0x14')]('/:id/tags',auth[_0xc625('0xa')](),controller[_0xc625('0x18')]);var upload=multer({'storage':multer['diskStorage']({'destination':function(_0x4fbca4,_0x20ac71,_0x499c9e){_0x499c9e(null,path['join'](config[_0xc625('0x19')],_0xc625('0x1a')));},'filename':function(_0x2a69e3,_0x48c5e9,_0x17b1b5){_0x48c5e9['originalname']=_0x48c5e9['originalname']['replace'](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-');_0x17b1b5(null,util[_0xc625('0x1b')]('%s-%s%s',path[_0xc625('0x1c')](_0x48c5e9[_0xc625('0x1d')],path['extname'](_0x48c5e9['originalname'])),Date[_0xc625('0x1e')](),path['extname'](_0x48c5e9[_0xc625('0x1d')])));}})});router[_0xc625('0x14')](_0xc625('0x1f'),upload[_0xc625('0x20')](_0xc625('0x21')),controller[_0xc625('0x22')]);var upload=multer({'storage':multer['diskStorage']({'destination':function(_0x4b86c3,_0x9aa71a,_0x3790ff){_0x3790ff(null,path['join'](config[_0xc625('0x19')],_0xc625('0x1a')));},'filename':function(_0x728c9f,_0x3e8b2c,_0xd4c9be){_0x3e8b2c[_0xc625('0x1d')]=_0x3e8b2c['originalname'][_0xc625('0x23')](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-');_0xd4c9be(null,util[_0xc625('0x1b')](_0xc625('0x24'),path[_0xc625('0x1c')](_0x3e8b2c['originalname'],path[_0xc625('0x25')](_0x3e8b2c[_0xc625('0x1d')])),Date[_0xc625('0x1e')](),path['extname'](_0x3e8b2c[_0xc625('0x1d')])));}})});router[_0xc625('0x14')]('/upload',upload['single'](_0xc625('0x21')),controller[_0xc625('0x26')]);router[_0xc625('0x14')]('/upload/:id',auth['isAuthenticated'](),controller[_0xc625('0x27')]);router['put'](_0xc625('0x9'),auth[_0xc625('0xa')](),controller[_0xc625('0x28')]);router[_0xc625('0x29')]('/:id',auth['isAuthenticated'](),controller[_0xc625('0x2a')]);module[_0xc625('0x2b')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3b24=['voice','sequelize','lodash','exports','getDataValue','alias','STRING','setDataValue','name','TEXT','long','select','parse','values','isArray','BOOLEAN','ENUM'];(function(_0xf26d40,_0x2f4f46){var _0x50b68c=function(_0x10aa58){while(--_0x10aa58){_0xf26d40['push'](_0xf26d40['shift']());}};_0x50b68c(++_0x2f4f46);}(_0x3b24,0x133));var _0x43b2=function(_0x3469b3,_0x5b4487){_0x3469b3=_0x3469b3-0x0;var _0x5b02bd=_0x3b24[_0x3469b3];return _0x5b02bd;};'use strict';var Sequelize=require(_0x43b2('0x0'));var _=require(_0x43b2('0x1'));module[_0x43b2('0x2')]={'name':{'type':Sequelize['VIRTUAL'],'get':function(_0x4f4b63){return this[_0x43b2('0x3')](_0x43b2('0x4'));}},'alias':{'type':Sequelize[_0x43b2('0x5')],'allowNull':![],'set':function(_0x5c6336){this[_0x43b2('0x6')](_0x43b2('0x4'),_0x5c6336?_0x5c6336:this[_0x43b2('0x3')](_0x43b2('0x7')));}},'type':{'type':Sequelize['STRING'],'allowNull':![]},'values':{'type':Sequelize[_0x43b2('0x8')](_0x43b2('0x9')),'get':function(){if(this[_0x43b2('0x3')]('type')===_0x43b2('0xa')){return JSON[_0x43b2('0xb')](this[_0x43b2('0x3')](_0x43b2('0xc')));}else{return this['getDataValue'](_0x43b2('0xc'));}},'set':function(_0x43fbbc){if(Array[_0x43b2('0xd')](_0x43fbbc)){this[_0x43b2('0x6')](_0x43b2('0xc'),JSON['stringify'](_0x43fbbc));}else{this[_0x43b2('0x6')]('values',_0x43fbbc);}}},'required':{'type':Sequelize[_0x43b2('0xe')],'defaultValue':![]},'clickToAction':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'actionType':{'type':Sequelize[_0x43b2('0xf')](_0x43b2('0x10'))}};
\ No newline at end of file
+var _0x0751=['isArray','stringify','BOOLEAN','ENUM','voice','sequelize','exports','getDataValue','STRING','setDataValue','name','long','type','parse','values'];(function(_0x1c34e7,_0x33f9a8){var _0x378cb1=function(_0x10b5e3){while(--_0x10b5e3){_0x1c34e7['push'](_0x1c34e7['shift']());}};_0x378cb1(++_0x33f9a8);}(_0x0751,0x15e));var _0x1075=function(_0x522a2e,_0x2574a1){_0x522a2e=_0x522a2e-0x0;var _0x31a8bf=_0x0751[_0x522a2e];return _0x31a8bf;};'use strict';var Sequelize=require(_0x1075('0x0'));var _=require('lodash');module[_0x1075('0x1')]={'name':{'type':Sequelize['VIRTUAL'],'get':function(_0x3957a6){return this[_0x1075('0x2')]('alias');}},'alias':{'type':Sequelize[_0x1075('0x3')],'allowNull':![],'set':function(_0x150dd4){this[_0x1075('0x4')]('alias',_0x150dd4?_0x150dd4:this['getDataValue'](_0x1075('0x5')));}},'type':{'type':Sequelize[_0x1075('0x3')],'allowNull':![]},'values':{'type':Sequelize['TEXT'](_0x1075('0x6')),'get':function(){if(this[_0x1075('0x2')](_0x1075('0x7'))==='select'){return JSON[_0x1075('0x8')](this[_0x1075('0x2')](_0x1075('0x9')));}else{return this['getDataValue'](_0x1075('0x9'));}},'set':function(_0x149f98){if(Array[_0x1075('0xa')](_0x149f98)){this[_0x1075('0x4')](_0x1075('0x9'),JSON[_0x1075('0xb')](_0x149f98));}else{this[_0x1075('0x4')](_0x1075('0x9'),_0x149f98);}}},'required':{'type':Sequelize[_0x1075('0xc')],'defaultValue':![]},'clickToAction':{'type':Sequelize[_0x1075('0xc')],'defaultValue':![]},'actionType':{'type':Sequelize[_0x1075('0xd')](_0x1075('0xe'))}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc459=['destroy','error','name','map','CmCustomField','key','model','differenceBy','query','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','type','VIRTUAL','options','count','findAll','rows','show','params','keys','include','find','catch','body','create','Sequelize','TEXT','number','BOOLEAN','defaultValue','queryInterface','addColumn','cm_contacts','format','cf_%d','eml-format','rimraf','fast-json-patch','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../mysqldb','sendStatus','status','end','undefined','limit','offset','set','Content-Range','json','apply','reject','save','update','then'];(function(_0x35dd34,_0x4ffc8c){var _0x1589ea=function(_0x35612b){while(--_0x35612b){_0x35dd34['push'](_0x35dd34['shift']());}};_0x1589ea(++_0x4ffc8c);}(_0xc459,0xd2));var _0x9c45=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0xc459[_0x14add3];return _0x4a174f;};'use strict';var emlformat=require(_0x9c45('0x0'));var rimraf=require(_0x9c45('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x9c45('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x9c45('0x3'));var Mustache=require(_0x9c45('0x4'));var util=require(_0x9c45('0x5'));var path=require(_0x9c45('0x6'));var sox=require(_0x9c45('0x7'));var csv=require(_0x9c45('0x8'));var ejs=require(_0x9c45('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x9c45('0xa'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x9c45('0xb'));var deskjs=require(_0x9c45('0xc'));var toCsv=require(_0x9c45('0x8'));var querystring=require(_0x9c45('0xd'));var Papa=require(_0x9c45('0xe'));var Redis=require(_0x9c45('0xf'));var authService=require(_0x9c45('0x10'));var qs=require(_0x9c45('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x9c45('0x12'))(_0x9c45('0x13'));var utils=require(_0x9c45('0x14'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x9c45('0x15'))['db'];function respondWithStatusCode(_0x3e11d4,_0x15a50f){_0x15a50f=_0x15a50f||0xcc;return function(_0x46256b){if(_0x46256b){return _0x3e11d4[_0x9c45('0x16')](_0x15a50f);}return _0x3e11d4[_0x9c45('0x17')](_0x15a50f)[_0x9c45('0x18')]();};}function respondWithResult(_0x347b43,_0x4ad579){_0x4ad579=_0x4ad579||0xc8;return function(_0xe67cef){if(_0xe67cef){return _0x347b43[_0x9c45('0x17')](_0x4ad579)['json'](_0xe67cef);}};}function respondWithFilteredResult(_0x5a280a,_0x138855){return function(_0x24c1f8){if(_0x24c1f8){var _0x386243=typeof _0x138855['offset']===_0x9c45('0x19')&&typeof _0x138855[_0x9c45('0x1a')]===_0x9c45('0x19');var _0x3884a4=_0x24c1f8['count'];var _0x39193f=_0x386243?0x0:_0x138855['offset'];var _0x5ced0b=_0x386243?_0x24c1f8['count']:_0x138855[_0x9c45('0x1b')]+_0x138855['limit'];var _0x2b7ce5;if(_0x5ced0b>=_0x3884a4){_0x5ced0b=_0x3884a4;_0x2b7ce5=0xc8;}else{_0x2b7ce5=0xce;}_0x5a280a[_0x9c45('0x17')](_0x2b7ce5);return _0x5a280a[_0x9c45('0x1c')](_0x9c45('0x1d'),_0x39193f+'-'+_0x5ced0b+'/'+_0x3884a4)[_0x9c45('0x1e')](_0x24c1f8);}return null;};}function patchUpdates(_0x522634){return function(_0x45fb55){try{jsonpatch[_0x9c45('0x1f')](_0x45fb55,_0x522634,!![]);}catch(_0x2447ef){return BPromise[_0x9c45('0x20')](_0x2447ef);}return _0x45fb55[_0x9c45('0x21')]();};}function saveUpdates(_0x8bfaeb,_0x27ad6a){return function(_0x55b161){if(_0x55b161){return _0x55b161[_0x9c45('0x22')](_0x8bfaeb)[_0x9c45('0x23')](function(_0x4501b8){return _0x4501b8;});}return null;};}function removeEntity(_0x3be9b1,_0x2c352c){return function(_0x564142){if(_0x564142){return _0x564142[_0x9c45('0x24')]()[_0x9c45('0x23')](function(){_0x3be9b1[_0x9c45('0x17')](0xcc)[_0x9c45('0x18')]();});}};}function handleEntityNotFound(_0x58e6fd,_0x149dba){return function(_0xe6c2d5){if(!_0xe6c2d5){_0x58e6fd[_0x9c45('0x16')](0x194);}return _0xe6c2d5;};}function handleError(_0x56e5f3,_0x54b31d){_0x54b31d=_0x54b31d||0x1f4;return function(_0x38b012){logger[_0x9c45('0x25')](_0x38b012['stack']);if(_0x38b012[_0x9c45('0x26')]){delete _0x38b012[_0x9c45('0x26')];}_0x56e5f3[_0x9c45('0x17')](_0x54b31d)['send'](_0x38b012);};}exports['index']=function(_0x35246d,_0x59245f){var _0x3af30b={},_0x493aa0={},_0x2da1a2={'count':0x0,'rows':[]};var _0x5bee0e=_[_0x9c45('0x27')](db[_0x9c45('0x28')]['rawAttributes'],function(_0x3f5515){return{'name':_0x3f5515['fieldName'],'type':_0x3f5515['type'][_0x9c45('0x29')]};});_0x493aa0[_0x9c45('0x2a')]=_[_0x9c45('0x2b')](_[_0x9c45('0x27')](_0x5bee0e,_0x9c45('0x26')),[_0x9c45('0x26')]);_0x493aa0['query']=_['keys'](_0x35246d[_0x9c45('0x2c')]);_0x493aa0[_0x9c45('0x2d')]=_['intersection'](_0x493aa0[_0x9c45('0x2a')],_0x493aa0[_0x9c45('0x2c')]);_0x3af30b[_0x9c45('0x2e')]=_[_0x9c45('0x2f')](_0x493aa0[_0x9c45('0x2a')],qs[_0x9c45('0x30')](_0x35246d[_0x9c45('0x2c')][_0x9c45('0x30')]));_0x3af30b[_0x9c45('0x2e')]=_0x3af30b[_0x9c45('0x2e')][_0x9c45('0x31')]?_0x3af30b[_0x9c45('0x2e')]:_0x493aa0[_0x9c45('0x2a')];if(!_0x35246d[_0x9c45('0x2c')][_0x9c45('0x32')](_0x9c45('0x33'))){_0x3af30b[_0x9c45('0x1a')]=qs[_0x9c45('0x1a')](_0x35246d[_0x9c45('0x2c')][_0x9c45('0x1a')]);_0x3af30b[_0x9c45('0x1b')]=qs['offset'](_0x35246d[_0x9c45('0x2c')][_0x9c45('0x1b')]);}_0x3af30b[_0x9c45('0x34')]=qs['sort'](_0x35246d['query'][_0x9c45('0x35')]);_0x3af30b[_0x9c45('0x36')]=qs[_0x9c45('0x2d')](_[_0x9c45('0x37')](_0x35246d[_0x9c45('0x2c')],_0x493aa0[_0x9c45('0x2d')]),_0x5bee0e);if(_0x35246d[_0x9c45('0x2c')][_0x9c45('0x38')]){_0x3af30b[_0x9c45('0x36')]=_[_0x9c45('0x39')](_0x3af30b[_0x9c45('0x36')],{'$or':_[_0x9c45('0x27')](_0x5bee0e,function(_0x5e5792){if(_0x5e5792[_0x9c45('0x3a')]!==_0x9c45('0x3b')){var _0x26cbb6={};_0x26cbb6[_0x5e5792['name']]={'$like':'%'+_0x35246d[_0x9c45('0x2c')][_0x9c45('0x38')]+'%'};return _0x26cbb6;}})});}_0x3af30b=_[_0x9c45('0x39')]({},_0x3af30b,_0x35246d[_0x9c45('0x3c')]);var _0x9d44a3={'where':_0x3af30b[_0x9c45('0x36')]};return db[_0x9c45('0x28')]['count'](_0x9d44a3)[_0x9c45('0x23')](function(_0x40c1b2){_0x2da1a2[_0x9c45('0x3d')]=_0x40c1b2;if(_0x35246d[_0x9c45('0x2c')]['includeAll']){_0x3af30b['include']=[{'all':!![]}];}return db['CmCustomField'][_0x9c45('0x3e')](_0x3af30b);})['then'](function(_0x1c8833){_0x2da1a2[_0x9c45('0x3f')]=_0x1c8833;return _0x2da1a2;})[_0x9c45('0x23')](respondWithFilteredResult(_0x59245f,_0x3af30b))['catch'](handleError(_0x59245f,null));};exports[_0x9c45('0x40')]=function(_0x48493d,_0x33273f){var _0x4c88bc={'raw':!![],'where':{'id':_0x48493d[_0x9c45('0x41')]['id']}},_0x2abdc4={};_0x2abdc4[_0x9c45('0x2a')]=_['keys'](db[_0x9c45('0x28')]['rawAttributes']);_0x2abdc4[_0x9c45('0x2c')]=_[_0x9c45('0x42')](_0x48493d[_0x9c45('0x2c')]);_0x2abdc4[_0x9c45('0x2d')]=_['intersection'](_0x2abdc4[_0x9c45('0x2a')],_0x2abdc4['query']);_0x4c88bc[_0x9c45('0x2e')]=_[_0x9c45('0x2f')](_0x2abdc4[_0x9c45('0x2a')],qs[_0x9c45('0x30')](_0x48493d[_0x9c45('0x2c')][_0x9c45('0x30')]));_0x4c88bc[_0x9c45('0x2e')]=_0x4c88bc['attributes'][_0x9c45('0x31')]?_0x4c88bc[_0x9c45('0x2e')]:_0x2abdc4[_0x9c45('0x2a')];if(_0x48493d['query']['includeAll']){_0x4c88bc[_0x9c45('0x43')]=[{'all':!![]}];}_0x4c88bc=_['merge']({},_0x4c88bc,_0x48493d[_0x9c45('0x3c')]);return db[_0x9c45('0x28')][_0x9c45('0x44')](_0x4c88bc)[_0x9c45('0x23')](handleEntityNotFound(_0x33273f,null))['then'](respondWithResult(_0x33273f,null))[_0x9c45('0x45')](handleError(_0x33273f,null));};exports[_0x9c45('0x22')]=function(_0x316981,_0x5b9f1b){if(_0x316981[_0x9c45('0x46')]['id']){delete _0x316981[_0x9c45('0x46')]['id'];}return db[_0x9c45('0x28')][_0x9c45('0x44')]({'where':{'id':_0x316981[_0x9c45('0x41')]['id']}})[_0x9c45('0x23')](handleEntityNotFound(_0x5b9f1b,null))[_0x9c45('0x23')](saveUpdates(_0x316981[_0x9c45('0x46')],null))['then'](respondWithResult(_0x5b9f1b,null))[_0x9c45('0x45')](handleError(_0x5b9f1b,null));};exports[_0x9c45('0x24')]=function(_0x4cdf79,_0x432bd7){return db[_0x9c45('0x28')]['find']({'where':{'id':_0x4cdf79[_0x9c45('0x41')]['id']}})[_0x9c45('0x23')](handleEntityNotFound(_0x432bd7,null))[_0x9c45('0x23')](removeEntity(_0x432bd7,null))['catch'](handleError(_0x432bd7,null));};exports[_0x9c45('0x47')]=function(_0x4e2db9,_0xde0da2){var _0x465533;return db['sequelize']['transaction'](function(_0x2dfa09){return db['CmCustomField']['create'](_0x4e2db9[_0x9c45('0x46')],{'transaction':_0x2dfa09})[_0x9c45('0x23')](function(_0x23c737){_0x465533=_0x23c737;var _0x53b08c={'type':db[_0x9c45('0x48')][_0x9c45('0x49')],'transaction':_0x2dfa09};switch(_0x4e2db9[_0x9c45('0x46')][_0x9c45('0x3a')]){case'text':_0x53b08c['type']=db[_0x9c45('0x48')]['TEXT'];break;case _0x9c45('0x4a'):_0x53b08c[_0x9c45('0x3a')]=db[_0x9c45('0x48')]['INTEGER'];break;case'switch':_0x53b08c['type']=db[_0x9c45('0x48')][_0x9c45('0x4b')];_0x53b08c[_0x9c45('0x4c')]=![];break;default:}return db['sequelize'][_0x9c45('0x4d')][_0x9c45('0x4e')](_0x9c45('0x4f'),util[_0x9c45('0x50')](_0x9c45('0x51'),_0x465533['id']),_0x53b08c);})[_0x9c45('0x23')](function(){return _0x465533;});})[_0x9c45('0x23')](respondWithResult(_0xde0da2,0xc9))[_0x9c45('0x45')](handleError(_0xde0da2,null));};
\ No newline at end of file
+var _0x3c43=['create','sequelize','transaction','Sequelize','text','TEXT','INTEGER','BOOLEAN','defaultValue','queryInterface','addColumn','format','cf_%d','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','to-csv','ejs','fs-extra','lodash','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils','../../mysqldb','sendStatus','status','end','json','undefined','count','offset','limit','set','apply','save','then','destroy','name','send','index','CmCustomField','rawAttributes','fieldName','key','map','query','keys','filters','intersection','model','attributes','fields','length','nolimit','sort','where','filter','merge','type','VIRTUAL','options','includeAll','include','rows','show','params','find','catch','update','body'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0x3c43,0xb1));var _0x33c4=function(_0x53f4de,_0x2a0930){_0x53f4de=_0x53f4de-0x0;var _0x3016f8=_0x3c43[_0x53f4de];return _0x3016f8;};'use strict';var emlformat=require(_0x33c4('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x33c4('0x1'));var jsonpatch=require(_0x33c4('0x2'));var rp=require(_0x33c4('0x3'));var moment=require(_0x33c4('0x4'));var BPromise=require(_0x33c4('0x5'));var Mustache=require('mustache');var util=require(_0x33c4('0x6'));var path=require(_0x33c4('0x7'));var sox=require('sox');var csv=require(_0x33c4('0x8'));var ejs=require(_0x33c4('0x9'));var fs=require('fs');var fs_extra=require(_0x33c4('0xa'));var _=require(_0x33c4('0xb'));var squel=require('squel');var crypto=require(_0x33c4('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x33c4('0xd'));var toCsv=require(_0x33c4('0x8'));var querystring=require(_0x33c4('0xe'));var Papa=require(_0x33c4('0xf'));var Redis=require(_0x33c4('0x10'));var authService=require(_0x33c4('0x11'));var qs=require(_0x33c4('0x12'));var as=require(_0x33c4('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x33c4('0x14'));var utils=require(_0x33c4('0x15'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x33c4('0x16'))['db'];function respondWithStatusCode(_0x4933c7,_0x902069){_0x902069=_0x902069||0xcc;return function(_0x5a71eb){if(_0x5a71eb){return _0x4933c7[_0x33c4('0x17')](_0x902069);}return _0x4933c7[_0x33c4('0x18')](_0x902069)[_0x33c4('0x19')]();};}function respondWithResult(_0x5470f4,_0x24f96c){_0x24f96c=_0x24f96c||0xc8;return function(_0x46593a){if(_0x46593a){return _0x5470f4[_0x33c4('0x18')](_0x24f96c)[_0x33c4('0x1a')](_0x46593a);}};}function respondWithFilteredResult(_0x48d7a6,_0x1cfec8){return function(_0x303d5d){if(_0x303d5d){var _0x3d9d6a=typeof _0x1cfec8['offset']==='undefined'&&typeof _0x1cfec8['limit']===_0x33c4('0x1b');var _0x15e2ff=_0x303d5d[_0x33c4('0x1c')];var _0x2d0638=_0x3d9d6a?0x0:_0x1cfec8['offset'];var _0x157573=_0x3d9d6a?_0x303d5d[_0x33c4('0x1c')]:_0x1cfec8[_0x33c4('0x1d')]+_0x1cfec8[_0x33c4('0x1e')];var _0x541db5;if(_0x157573>=_0x15e2ff){_0x157573=_0x15e2ff;_0x541db5=0xc8;}else{_0x541db5=0xce;}_0x48d7a6[_0x33c4('0x18')](_0x541db5);return _0x48d7a6[_0x33c4('0x1f')]('Content-Range',_0x2d0638+'-'+_0x157573+'/'+_0x15e2ff)['json'](_0x303d5d);}return null;};}function patchUpdates(_0x396b43){return function(_0x3dd907){try{jsonpatch[_0x33c4('0x20')](_0x3dd907,_0x396b43,!![]);}catch(_0x128de8){return BPromise['reject'](_0x128de8);}return _0x3dd907[_0x33c4('0x21')]();};}function saveUpdates(_0x1d81b7,_0xb46029){return function(_0x111db8){if(_0x111db8){return _0x111db8['update'](_0x1d81b7)[_0x33c4('0x22')](function(_0xf54cba){return _0xf54cba;});}return null;};}function removeEntity(_0x591413,_0x195b85){return function(_0x525108){if(_0x525108){return _0x525108[_0x33c4('0x23')]()[_0x33c4('0x22')](function(){_0x591413[_0x33c4('0x18')](0xcc)['end']();});}};}function handleEntityNotFound(_0x321597,_0x4a67c5){return function(_0x5e3084){if(!_0x5e3084){_0x321597[_0x33c4('0x17')](0x194);}return _0x5e3084;};}function handleError(_0x167d79,_0x156239){_0x156239=_0x156239||0x1f4;return function(_0x329faf){logger['error'](_0x329faf['stack']);if(_0x329faf[_0x33c4('0x24')]){delete _0x329faf[_0x33c4('0x24')];}_0x167d79['status'](_0x156239)[_0x33c4('0x25')](_0x329faf);};}exports[_0x33c4('0x26')]=function(_0x1aaf54,_0x513b7){var _0x1e5957={},_0x487469={},_0x15b18d={'count':0x0,'rows':[]};var _0x1645f8=_['map'](db[_0x33c4('0x27')][_0x33c4('0x28')],function(_0x35d833){return{'name':_0x35d833[_0x33c4('0x29')],'type':_0x35d833['type'][_0x33c4('0x2a')]};});_0x487469['model']=_['differenceBy'](_[_0x33c4('0x2b')](_0x1645f8,_0x33c4('0x24')),[_0x33c4('0x24')]);_0x487469[_0x33c4('0x2c')]=_[_0x33c4('0x2d')](_0x1aaf54[_0x33c4('0x2c')]);_0x487469[_0x33c4('0x2e')]=_[_0x33c4('0x2f')](_0x487469[_0x33c4('0x30')],_0x487469[_0x33c4('0x2c')]);_0x1e5957[_0x33c4('0x31')]=_[_0x33c4('0x2f')](_0x487469['model'],qs[_0x33c4('0x32')](_0x1aaf54[_0x33c4('0x2c')][_0x33c4('0x32')]));_0x1e5957['attributes']=_0x1e5957[_0x33c4('0x31')][_0x33c4('0x33')]?_0x1e5957[_0x33c4('0x31')]:_0x487469[_0x33c4('0x30')];if(!_0x1aaf54[_0x33c4('0x2c')]['hasOwnProperty'](_0x33c4('0x34'))){_0x1e5957[_0x33c4('0x1e')]=qs[_0x33c4('0x1e')](_0x1aaf54['query'][_0x33c4('0x1e')]);_0x1e5957[_0x33c4('0x1d')]=qs['offset'](_0x1aaf54[_0x33c4('0x2c')]['offset']);}_0x1e5957['order']=qs[_0x33c4('0x35')](_0x1aaf54[_0x33c4('0x2c')][_0x33c4('0x35')]);_0x1e5957[_0x33c4('0x36')]=qs[_0x33c4('0x2e')](_['pick'](_0x1aaf54[_0x33c4('0x2c')],_0x487469[_0x33c4('0x2e')]),_0x1645f8);if(_0x1aaf54[_0x33c4('0x2c')][_0x33c4('0x37')]){_0x1e5957['where']=_[_0x33c4('0x38')](_0x1e5957[_0x33c4('0x36')],{'$or':_[_0x33c4('0x2b')](_0x1645f8,function(_0x2d0e0b){if(_0x2d0e0b[_0x33c4('0x39')]!==_0x33c4('0x3a')){var _0xec28bb={};_0xec28bb[_0x2d0e0b[_0x33c4('0x24')]]={'$like':'%'+_0x1aaf54['query']['filter']+'%'};return _0xec28bb;}})});}_0x1e5957=_[_0x33c4('0x38')]({},_0x1e5957,_0x1aaf54[_0x33c4('0x3b')]);var _0x3839aa={'where':_0x1e5957[_0x33c4('0x36')]};return db['CmCustomField'][_0x33c4('0x1c')](_0x3839aa)['then'](function(_0x782c45){_0x15b18d[_0x33c4('0x1c')]=_0x782c45;if(_0x1aaf54['query'][_0x33c4('0x3c')]){_0x1e5957[_0x33c4('0x3d')]=[{'all':!![]}];}return db['CmCustomField']['findAll'](_0x1e5957);})[_0x33c4('0x22')](function(_0x5534d6){_0x15b18d[_0x33c4('0x3e')]=_0x5534d6;return _0x15b18d;})['then'](respondWithFilteredResult(_0x513b7,_0x1e5957))['catch'](handleError(_0x513b7,null));};exports[_0x33c4('0x3f')]=function(_0x477bfe,_0x1cd40a){var _0x2083c0={'raw':!![],'where':{'id':_0x477bfe[_0x33c4('0x40')]['id']}},_0x13b0ce={};_0x13b0ce[_0x33c4('0x30')]=_[_0x33c4('0x2d')](db['CmCustomField'][_0x33c4('0x28')]);_0x13b0ce[_0x33c4('0x2c')]=_[_0x33c4('0x2d')](_0x477bfe[_0x33c4('0x2c')]);_0x13b0ce['filters']=_[_0x33c4('0x2f')](_0x13b0ce[_0x33c4('0x30')],_0x13b0ce[_0x33c4('0x2c')]);_0x2083c0['attributes']=_['intersection'](_0x13b0ce['model'],qs[_0x33c4('0x32')](_0x477bfe[_0x33c4('0x2c')]['fields']));_0x2083c0[_0x33c4('0x31')]=_0x2083c0[_0x33c4('0x31')][_0x33c4('0x33')]?_0x2083c0['attributes']:_0x13b0ce[_0x33c4('0x30')];if(_0x477bfe[_0x33c4('0x2c')][_0x33c4('0x3c')]){_0x2083c0[_0x33c4('0x3d')]=[{'all':!![]}];}_0x2083c0=_[_0x33c4('0x38')]({},_0x2083c0,_0x477bfe['options']);return db['CmCustomField'][_0x33c4('0x41')](_0x2083c0)[_0x33c4('0x22')](handleEntityNotFound(_0x1cd40a,null))[_0x33c4('0x22')](respondWithResult(_0x1cd40a,null))[_0x33c4('0x42')](handleError(_0x1cd40a,null));};exports[_0x33c4('0x43')]=function(_0x295ae6,_0x2cb961){if(_0x295ae6[_0x33c4('0x44')]['id']){delete _0x295ae6['body']['id'];}return db['CmCustomField']['find']({'where':{'id':_0x295ae6[_0x33c4('0x40')]['id']}})[_0x33c4('0x22')](handleEntityNotFound(_0x2cb961,null))['then'](saveUpdates(_0x295ae6[_0x33c4('0x44')],null))[_0x33c4('0x22')](respondWithResult(_0x2cb961,null))[_0x33c4('0x42')](handleError(_0x2cb961,null));};exports[_0x33c4('0x23')]=function(_0x10bae7,_0x746d0){return db[_0x33c4('0x27')]['find']({'where':{'id':_0x10bae7[_0x33c4('0x40')]['id']}})['then'](handleEntityNotFound(_0x746d0,null))[_0x33c4('0x22')](removeEntity(_0x746d0,null))[_0x33c4('0x42')](handleError(_0x746d0,null));};exports[_0x33c4('0x45')]=function(_0x1f41c4,_0x152fa5){var _0x1ff542;return db[_0x33c4('0x46')][_0x33c4('0x47')](function(_0x56897f){return db[_0x33c4('0x27')][_0x33c4('0x45')](_0x1f41c4[_0x33c4('0x44')],{'transaction':_0x56897f})['then'](function(_0x1c66ed){_0x1ff542=_0x1c66ed;var _0x352123={'type':db[_0x33c4('0x48')]['TEXT'],'transaction':_0x56897f};switch(_0x1f41c4[_0x33c4('0x44')][_0x33c4('0x39')]){case _0x33c4('0x49'):_0x352123[_0x33c4('0x39')]=db[_0x33c4('0x48')][_0x33c4('0x4a')];break;case'number':_0x352123[_0x33c4('0x39')]=db['Sequelize'][_0x33c4('0x4b')];break;case'switch':_0x352123[_0x33c4('0x39')]=db[_0x33c4('0x48')][_0x33c4('0x4c')];_0x352123[_0x33c4('0x4d')]=![];break;default:}return db[_0x33c4('0x46')][_0x33c4('0x4e')][_0x33c4('0x4f')]('cm_contacts',util[_0x33c4('0x50')](_0x33c4('0x51'),_0x1ff542['id']),_0x352123);})[_0x33c4('0x22')](function(){return _0x1ff542;});})[_0x33c4('0x22')](respondWithResult(_0x152fa5,0xc9))[_0x33c4('0x42')](handleError(_0x152fa5,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5293=['bluebird','request-promise','path','rimraf','../../config/environment','exports','define','CmCustomField','cm_custom_fields','util','moment'];(function(_0xffb079,_0x2d5dc0){var _0x4ed0ee=function(_0x1d445f){while(--_0x1d445f){_0xffb079['push'](_0xffb079['shift']());}};_0x4ed0ee(++_0x2d5dc0);}(_0x5293,0x6c));var _0x3529=function(_0xbe200f,_0x4b50eb){_0xbe200f=_0xbe200f-0x0;var _0x192597=_0x5293[_0xbe200f];return _0x192597;};'use strict';var _=require('lodash');var util=require(_0x3529('0x0'));var logger=require('../../config/logger')('api');var moment=require(_0x3529('0x1'));var BPromise=require(_0x3529('0x2'));var rp=require(_0x3529('0x3'));var fs=require('fs');var path=require(_0x3529('0x4'));var rimraf=require(_0x3529('0x5'));var config=require(_0x3529('0x6'));var attributes=require('./cmCustomField.attributes');module[_0x3529('0x7')]=function(_0x3bfca1,_0x58dfed){return _0x3bfca1[_0x3529('0x8')](_0x3529('0x9'),attributes,{'tableName':_0x3529('0xa'),'paranoid':!![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x0ec1=['cm_custom_fields','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','../../config/environment','./cmCustomField.attributes','CmCustomField'];(function(_0x33a528,_0x216f14){var _0x168145=function(_0x169aac){while(--_0x169aac){_0x33a528['push'](_0x33a528['shift']());}};_0x168145(++_0x216f14);}(_0x0ec1,0xb5));var _0x10ec=function(_0x2479fc,_0xbbb4a){_0x2479fc=_0x2479fc-0x0;var _0x8e1d=_0x0ec1[_0x2479fc];return _0x8e1d;};'use strict';var _=require(_0x10ec('0x0'));var util=require(_0x10ec('0x1'));var logger=require(_0x10ec('0x2'))(_0x10ec('0x3'));var moment=require(_0x10ec('0x4'));var BPromise=require(_0x10ec('0x5'));var rp=require(_0x10ec('0x6'));var fs=require('fs');var path=require(_0x10ec('0x7'));var rimraf=require('rimraf');var config=require(_0x10ec('0x8'));var attributes=require(_0x10ec('0x9'));module['exports']=function(_0x5f327a,_0x2a555b){return _0x5f327a['define'](_0x10ec('0xa'),attributes,{'tableName':_0x10ec('0xb'),'paranoid':!![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1137=['CmCustomField,\x20%s,\x20%s','request\x20sent','debug','CmCustomField,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','util','moment','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','request','then','info'];(function(_0x122ef9,_0x451d2a){var _0x42fba0=function(_0x17c9d3){while(--_0x17c9d3){_0x122ef9['push'](_0x122ef9['shift']());}};_0x42fba0(++_0x451d2a);}(_0x1137,0x1d6));var _0x7113=function(_0x211087,_0x354fdd){_0x211087=_0x211087-0x0;var _0x2a581f=_0x1137[_0x211087];return _0x2a581f;};'use strict';var _=require('lodash');var util=require(_0x7113('0x0'));var moment=require(_0x7113('0x1'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x7113('0x2'));var db=require(_0x7113('0x3'))['db'];var utils=require('../../config/utils');var logger=require(_0x7113('0x4'))(_0x7113('0x5'));var config=require(_0x7113('0x6'));var jayson=require('jayson/promise');var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x522c0b,_0x5afd9a,_0x499656){return new BPromise(function(_0x47d9da,_0x31165e){return client[_0x7113('0x7')](_0x522c0b,_0x499656)[_0x7113('0x8')](function(_0x448b09){logger[_0x7113('0x9')](_0x7113('0xa'),_0x5afd9a,_0x7113('0xb'));logger[_0x7113('0xc')](_0x7113('0xd'),_0x5afd9a,'request\x20sent',JSON[_0x7113('0xe')](_0x448b09));if(_0x448b09[_0x7113('0xf')]){if(_0x448b09[_0x7113('0xf')][_0x7113('0x10')]===0x1f4){logger['error'](_0x7113('0xa'),_0x5afd9a,_0x448b09[_0x7113('0xf')][_0x7113('0x11')]);return _0x31165e(_0x448b09['error'][_0x7113('0x11')]);}logger['error'](_0x7113('0xa'),_0x5afd9a,_0x448b09[_0x7113('0xf')][_0x7113('0x11')]);return _0x47d9da(_0x448b09[_0x7113('0xf')][_0x7113('0x11')]);}else{logger[_0x7113('0x9')](_0x7113('0xa'),_0x5afd9a,_0x7113('0xb'));_0x47d9da(_0x448b09[_0x7113('0x12')][_0x7113('0x11')]);}})[_0x7113('0x13')](function(_0x1f606f){logger[_0x7113('0xf')](_0x7113('0xa'),_0x5afd9a,_0x1f606f);_0x31165e(_0x1f606f);});});}
\ No newline at end of file
+var _0x1a76=['lodash','util','randomstring','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','http','request','then','CmCustomField,\x20%s,\x20%s','request\x20sent','debug','CmCustomField,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','catch'];(function(_0x5eee46,_0x1bc4e0){var _0x93390c=function(_0x3492b7){while(--_0x3492b7){_0x5eee46['push'](_0x5eee46['shift']());}};_0x93390c(++_0x1bc4e0);}(_0x1a76,0x1ce));var _0x61a7=function(_0x353abb,_0x194c80){_0x353abb=_0x353abb-0x0;var _0x43c9c5=_0x1a76[_0x353abb];return _0x43c9c5;};'use strict';var _=require(_0x61a7('0x0'));var util=require(_0x61a7('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0x61a7('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x61a7('0x3'))['db'];var utils=require(_0x61a7('0x4'));var logger=require('../../config/logger')(_0x61a7('0x5'));var config=require(_0x61a7('0x6'));var jayson=require(_0x61a7('0x7'));var client=jayson['client'][_0x61a7('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x162317,_0x5dda6f,_0x2e298e){return new BPromise(function(_0x58e981,_0x5466dd){return client[_0x61a7('0x9')](_0x162317,_0x2e298e)[_0x61a7('0xa')](function(_0x1b53e9){logger['info'](_0x61a7('0xb'),_0x5dda6f,_0x61a7('0xc'));logger[_0x61a7('0xd')](_0x61a7('0xe'),_0x5dda6f,_0x61a7('0xc'),JSON[_0x61a7('0xf')](_0x1b53e9));if(_0x1b53e9[_0x61a7('0x10')]){if(_0x1b53e9['error'][_0x61a7('0x11')]===0x1f4){logger[_0x61a7('0x10')]('CmCustomField,\x20%s,\x20%s',_0x5dda6f,_0x1b53e9[_0x61a7('0x10')][_0x61a7('0x12')]);return _0x5466dd(_0x1b53e9['error'][_0x61a7('0x12')]);}logger[_0x61a7('0x10')](_0x61a7('0xb'),_0x5dda6f,_0x1b53e9[_0x61a7('0x10')]['message']);return _0x58e981(_0x1b53e9[_0x61a7('0x10')][_0x61a7('0x12')]);}else{logger[_0x61a7('0x13')](_0x61a7('0xb'),_0x5dda6f,_0x61a7('0xc'));_0x58e981(_0x1b53e9[_0x61a7('0x14')][_0x61a7('0x12')]);}})[_0x61a7('0x15')](function(_0x2894fd){logger[_0x61a7('0x10')](_0x61a7('0xb'),_0x5dda6f,_0x2894fd);_0x5466dd(_0x2894fd);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfde9=['../../components/auth/service','../../config/environment','./cmCustomField.controller','get','isAuthenticated','index','/:id','show','post','create','put','destroy','multer','util','path','connect-timeout','express','fs-extra'];(function(_0x6148ee,_0x4d2fca){var _0x5afc74=function(_0x351621){while(--_0x351621){_0x6148ee['push'](_0x6148ee['shift']());}};_0x5afc74(++_0x4d2fca);}(_0xfde9,0x66));var _0x9fde=function(_0x31e29a,_0x349c9b){_0x31e29a=_0x31e29a-0x0;var _0x32d892=_0xfde9[_0x31e29a];return _0x32d892;};'use strict';var multer=require(_0x9fde('0x0'));var util=require(_0x9fde('0x1'));var path=require(_0x9fde('0x2'));var timeout=require(_0x9fde('0x3'));var express=require(_0x9fde('0x4'));var router=express['Router']();var fs_extra=require(_0x9fde('0x5'));var auth=require(_0x9fde('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0x9fde('0x7'));var controller=require(_0x9fde('0x8'));router[_0x9fde('0x9')]('/',auth[_0x9fde('0xa')](),controller[_0x9fde('0xb')]);router[_0x9fde('0x9')](_0x9fde('0xc'),auth[_0x9fde('0xa')](),controller[_0x9fde('0xd')]);router[_0x9fde('0xe')]('/',auth[_0x9fde('0xa')](),controller[_0x9fde('0xf')]);router[_0x9fde('0x10')](_0x9fde('0xc'),auth['isAuthenticated'](),controller['update']);router['delete'](_0x9fde('0xc'),auth[_0x9fde('0xa')](),controller[_0x9fde('0x11')]);module['exports']=router;
\ No newline at end of file
+var _0x10af=['express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','/:id','show','post','create','update','exports','multer','path','connect-timeout'];(function(_0x4ba7b1,_0x3b59f2){var _0xe173e=function(_0x175d1f){while(--_0x175d1f){_0x4ba7b1['push'](_0x4ba7b1['shift']());}};_0xe173e(++_0x3b59f2);}(_0x10af,0xfc));var _0xf10a=function(_0x138adb,_0x193fee){_0x138adb=_0x138adb-0x0;var _0x1b27f2=_0x10af[_0x138adb];return _0x1b27f2;};'use strict';var multer=require(_0xf10a('0x0'));var util=require('util');var path=require(_0xf10a('0x1'));var timeout=require(_0xf10a('0x2'));var express=require(_0xf10a('0x3'));var router=express[_0xf10a('0x4')]();var fs_extra=require(_0xf10a('0x5'));var auth=require(_0xf10a('0x6'));var interaction=require(_0xf10a('0x7'));var config=require(_0xf10a('0x8'));var controller=require('./cmCustomField.controller');router[_0xf10a('0x9')]('/',auth[_0xf10a('0xa')](),controller['index']);router['get'](_0xf10a('0xb'),auth[_0xf10a('0xa')](),controller[_0xf10a('0xc')]);router[_0xf10a('0xd')]('/',auth['isAuthenticated'](),controller[_0xf10a('0xe')]);router['put'](_0xf10a('0xb'),auth['isAuthenticated'](),controller[_0xf10a('0xf')]);router['delete']('/:id',auth[_0xf10a('0xa')](),controller['destroy']);module[_0xf10a('0x10')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd7c9=['STRING','BOOLEAN','format','YYYY-MM-DD\x20HH:mm:ss','INTEGER','DATE','UNSIGNED','contactListQueue','sequelize','exports'];(function(_0x361604,_0xbada32){var _0x51550a=function(_0x1d0dd5){while(--_0x1d0dd5){_0x361604['push'](_0x361604['shift']());}};_0x51550a(++_0xbada32);}(_0xd7c9,0xee));var _0x9d7c=function(_0x273517,_0x50b234){_0x273517=_0x273517-0x0;var _0x2c6334=_0xd7c9[_0x273517];return _0x2c6334;};'use strict';var moment=require('moment');var Sequelize=require(_0x9d7c('0x0'));module[_0x9d7c('0x1')]={'phone':{'type':Sequelize[_0x9d7c('0x2')],'allowNull':![]},'active':{'type':Sequelize[_0x9d7c('0x3')],'defaultValue':![]},'scheduledat':{'type':Sequelize['DATE'],'defaultValue':moment()[_0x9d7c('0x4')](_0x9d7c('0x5'))},'countbusyretry':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'countcongestionretry':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'countnoanswerretry':{'type':Sequelize[_0x9d7c('0x6')],'defaultValue':0x0},'callback':{'type':Sequelize[_0x9d7c('0x3')],'defaultValue':![]},'callbackuniqueid':{'type':Sequelize['STRING'],'defaultValue':null},'callbackat':{'type':Sequelize[_0x9d7c('0x7')]},'priority':{'type':Sequelize['INTEGER'](0x2)[_0x9d7c('0x8')],'defaultValue':0x2,'validate':{'min':0x0,'max':0x4}},'recallme':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'ContactId':{'type':Sequelize[_0x9d7c('0x6')],'unique':_0x9d7c('0x9')},'ListId':{'type':Sequelize[_0x9d7c('0x6')],'unique':'contactListQueue'},'UserId':{'type':Sequelize[_0x9d7c('0x6')]},'VoiceQueueId':{'type':Sequelize[_0x9d7c('0x6')],'unique':_0x9d7c('0x9')},'CampaignId':{'type':Sequelize[_0x9d7c('0x6')]},'countnosuchnumberretry':{'type':Sequelize[_0x9d7c('0x6')],'defaultValue':0x0},'countdropretry':{'type':Sequelize[_0x9d7c('0x6')],'defaultValue':0x0},'countabandonedretry':{'type':Sequelize[_0x9d7c('0x6')],'defaultValue':0x0},'countmachineretry':{'type':Sequelize[_0x9d7c('0x6')],'defaultValue':0x0},'countagentrejectretry':{'type':Sequelize[_0x9d7c('0x6')],'defaultValue':0x0}};
\ No newline at end of file
+var _0xd6f3=['contactListQueue','sequelize','exports','STRING','DATE','format','YYYY-MM-DD\x20HH:mm:ss','INTEGER','BOOLEAN','UNSIGNED'];(function(_0x3bf83f,_0x181cac){var _0x22c4a9=function(_0xb3ff0d){while(--_0xb3ff0d){_0x3bf83f['push'](_0x3bf83f['shift']());}};_0x22c4a9(++_0x181cac);}(_0xd6f3,0xc9));var _0x3d6f=function(_0x1bbb95,_0x3db6a4){_0x1bbb95=_0x1bbb95-0x0;var _0x587c83=_0xd6f3[_0x1bbb95];return _0x587c83;};'use strict';var moment=require('moment');var Sequelize=require(_0x3d6f('0x0'));module[_0x3d6f('0x1')]={'phone':{'type':Sequelize[_0x3d6f('0x2')],'allowNull':![]},'active':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'scheduledat':{'type':Sequelize[_0x3d6f('0x3')],'defaultValue':moment()[_0x3d6f('0x4')](_0x3d6f('0x5'))},'countbusyretry':{'type':Sequelize[_0x3d6f('0x6')],'defaultValue':0x0},'countcongestionretry':{'type':Sequelize[_0x3d6f('0x6')],'defaultValue':0x0},'countnoanswerretry':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'callback':{'type':Sequelize[_0x3d6f('0x7')],'defaultValue':![]},'callbackuniqueid':{'type':Sequelize['STRING'],'defaultValue':null},'callbackat':{'type':Sequelize[_0x3d6f('0x3')]},'priority':{'type':Sequelize[_0x3d6f('0x6')](0x2)[_0x3d6f('0x8')],'defaultValue':0x2,'validate':{'min':0x0,'max':0x4}},'recallme':{'type':Sequelize[_0x3d6f('0x7')],'defaultValue':![]},'ContactId':{'type':Sequelize['INTEGER'],'unique':_0x3d6f('0x9')},'ListId':{'type':Sequelize[_0x3d6f('0x6')],'unique':_0x3d6f('0x9')},'UserId':{'type':Sequelize[_0x3d6f('0x6')]},'VoiceQueueId':{'type':Sequelize[_0x3d6f('0x6')],'unique':'contactListQueue'},'CampaignId':{'type':Sequelize[_0x3d6f('0x6')]},'countnosuchnumberretry':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'countdropretry':{'type':Sequelize[_0x3d6f('0x6')],'defaultValue':0x0},'countabandonedretry':{'type':Sequelize[_0x3d6f('0x6')],'defaultValue':0x0},'countmachineretry':{'type':Sequelize[_0x3d6f('0x6')],'defaultValue':0x0},'countagentrejectretry':{'type':Sequelize['INTEGER'],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfde0=['preview','dialOrderByScheduledAt','sequelize','transaction','direction','prev','hopperIds','ASC','scheduledAt','DESC','literal','COALESCE(CmHopper.UserId,\x200)\x20ASC','isEmpty','priority','COALESCE(CmHopper.UserId,\x200)\x20DESC','scheduledat','LOCK','UPDATE','Contact','CmList','List','dialActive','getOpenContacts','isNumber','entity\x20not\x20found','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','path','sox','fs-extra','lodash','squel','jsforce','desk.js','to-csv','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','apply','save','update','then','error','stack','send','index','map','CmHopper','rawAttributes','fieldName','type','model','name','query','filters','concat','$and','$gt','$gte','$lte','$ne','$eq','$not','$between','$in','$like','$notLike','$notILike','$overlap','$contains','$contained','$any','attributes','intersection','fields','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','options','includeAll','rows','catch','show','params','keys','find','create','body','describe','destroy','CampaignId','VoiceQueueId','VoiceQueue','omit','dataValues','createdAt','deleted','campaign','membername','user','UserId','deletedat','format','YYYY-MM-DD\x20HH:mm:ss','calleridnum','phone','campaigntype','queue','ivr','CmContact','ContactId','firstName','lastName','isNil','calleridname','finally','CmHopperFinal','getPreview','getVoiceQueues','outbound'];(function(_0x207ede,_0x5dc99e){var _0x2ad796=function(_0x51fb5f){while(--_0x51fb5f){_0x207ede['push'](_0x207ede['shift']());}};_0x2ad796(++_0x5dc99e);}(_0xfde0,0x13d));var _0x0fde=function(_0x1a819c,_0x5d162f){_0x1a819c=_0x1a819c-0x0;var _0x3edb49=_0xfde0[_0x1a819c];return _0x3edb49;};'use strict';var emlformat=require(_0x0fde('0x0'));var rimraf=require(_0x0fde('0x1'));var zipdir=require(_0x0fde('0x2'));var jsonpatch=require(_0x0fde('0x3'));var rp=require(_0x0fde('0x4'));var moment=require('moment');var BPromise=require(_0x0fde('0x5'));var Mustache=require(_0x0fde('0x6'));var util=require('util');var path=require(_0x0fde('0x7'));var sox=require(_0x0fde('0x8'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x0fde('0x9'));var _=require(_0x0fde('0xa'));var squel=require(_0x0fde('0xb'));var crypto=require('crypto');var jsforce=require(_0x0fde('0xc'));var deskjs=require(_0x0fde('0xd'));var toCsv=require(_0x0fde('0xe'));var querystring=require('querystring');var Papa=require(_0x0fde('0xf'));var Redis=require(_0x0fde('0x10'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x0fde('0x11'));var hardwareService=require(_0x0fde('0x12'));var logger=require(_0x0fde('0x13'))(_0x0fde('0x14'));var utils=require(_0x0fde('0x15'));var config=require(_0x0fde('0x16'));var licenseUtil=require(_0x0fde('0x17'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x32cd63,_0x1a8411){_0x1a8411=_0x1a8411||0xcc;return function(_0x1443c2){if(_0x1443c2){return _0x32cd63[_0x0fde('0x18')](_0x1a8411);}return _0x32cd63[_0x0fde('0x19')](_0x1a8411)[_0x0fde('0x1a')]();};}function respondWithResult(_0x4869da,_0x5c98e1){_0x5c98e1=_0x5c98e1||0xc8;return function(_0x5ee700){if(_0x5ee700){return _0x4869da['status'](_0x5c98e1)[_0x0fde('0x1b')](_0x5ee700);}};}function respondWithFilteredResult(_0x1c74ac,_0x4ab8ee){return function(_0x6bd008){if(_0x6bd008){var _0x2119c1=typeof _0x4ab8ee[_0x0fde('0x1c')]==='undefined'&&typeof _0x4ab8ee['limit']===_0x0fde('0x1d');var _0x23eb9a=_0x6bd008[_0x0fde('0x1e')];var _0x559502=_0x2119c1?0x0:_0x4ab8ee['offset'];var _0x35a5af=_0x2119c1?_0x6bd008[_0x0fde('0x1e')]:_0x4ab8ee[_0x0fde('0x1c')]+_0x4ab8ee[_0x0fde('0x1f')];var _0x3cbe8c;if(_0x35a5af>=_0x23eb9a){_0x35a5af=_0x23eb9a;_0x3cbe8c=0xc8;}else{_0x3cbe8c=0xce;}_0x1c74ac['status'](_0x3cbe8c);return _0x1c74ac[_0x0fde('0x20')](_0x0fde('0x21'),_0x559502+'-'+_0x35a5af+'/'+_0x23eb9a)['json'](_0x6bd008);}return null;};}function patchUpdates(_0x5d162a){return function(_0x4bdbb3){try{jsonpatch[_0x0fde('0x22')](_0x4bdbb3,_0x5d162a,!![]);}catch(_0x13d519){return BPromise['reject'](_0x13d519);}return _0x4bdbb3[_0x0fde('0x23')]();};}function saveUpdates(_0x278260,_0xa36bc9){return function(_0xe35992){if(_0xe35992){return _0xe35992[_0x0fde('0x24')](_0x278260)[_0x0fde('0x25')](function(_0x55add3){return _0x55add3;});}return null;};}function removeEntity(_0x348a80,_0x2567a5){return function(_0x243654){if(_0x243654){return _0x243654['destroy']()[_0x0fde('0x25')](function(){_0x348a80[_0x0fde('0x19')](0xcc)[_0x0fde('0x1a')]();});}};}function handleEntityNotFound(_0x1013e0,_0x57bab5){return function(_0x3ea9d3){if(!_0x3ea9d3){_0x1013e0[_0x0fde('0x18')](0x194);}return _0x3ea9d3;};}function handleError(_0x58c45e,_0x438dd6){_0x438dd6=_0x438dd6||0x1f4;return function(_0xf72b4e){logger[_0x0fde('0x26')](_0xf72b4e[_0x0fde('0x27')]);if(_0xf72b4e['name']){delete _0xf72b4e['name'];}_0x58c45e[_0x0fde('0x19')](_0x438dd6)[_0x0fde('0x28')](_0xf72b4e);};}exports[_0x0fde('0x29')]=function(_0x4738c5,_0x491e05){var _0x49b357={},_0x4ab711={},_0x5209bd={'count':0x0,'rows':[]};var _0x208ef0=_[_0x0fde('0x2a')](db[_0x0fde('0x2b')][_0x0fde('0x2c')],function(_0x45ff13){return{'name':_0x45ff13[_0x0fde('0x2d')],'type':_0x45ff13[_0x0fde('0x2e')]['key']};});_0x4ab711[_0x0fde('0x2f')]=_['map'](_0x208ef0,_0x0fde('0x30'));_0x4ab711[_0x0fde('0x31')]=_['keys'](_0x4738c5[_0x0fde('0x31')]);_0x4ab711[_0x0fde('0x32')]=_['intersection'](_0x4ab711['model'],_0x4ab711[_0x0fde('0x31')]);_0x4ab711[_0x0fde('0x32')]=_[_0x0fde('0x33')](_0x4ab711['filters'],[_0x0fde('0x34'),'$or',_0x0fde('0x35'),_0x0fde('0x36'),'$lt',_0x0fde('0x37'),_0x0fde('0x38'),_0x0fde('0x39'),_0x0fde('0x3a'),_0x0fde('0x3b'),'$notBetween',_0x0fde('0x3c'),'$notIn',_0x0fde('0x3d'),_0x0fde('0x3e'),'$iLike',_0x0fde('0x3f'),_0x0fde('0x3d'),_0x0fde('0x40'),_0x0fde('0x41'),_0x0fde('0x42'),_0x0fde('0x43')]);_0x49b357[_0x0fde('0x44')]=_[_0x0fde('0x45')](_0x4ab711[_0x0fde('0x2f')],qs[_0x0fde('0x46')](_0x4738c5[_0x0fde('0x31')]['fields']));_0x49b357['attributes']=_0x49b357[_0x0fde('0x44')][_0x0fde('0x47')]?_0x49b357[_0x0fde('0x44')]:_0x4ab711[_0x0fde('0x2f')];if(!_0x4738c5[_0x0fde('0x31')][_0x0fde('0x48')](_0x0fde('0x49'))){_0x49b357[_0x0fde('0x1f')]=qs['limit'](_0x4738c5[_0x0fde('0x31')]['limit']);_0x49b357[_0x0fde('0x1c')]=qs[_0x0fde('0x1c')](_0x4738c5[_0x0fde('0x31')][_0x0fde('0x1c')]);}_0x49b357['order']=qs[_0x0fde('0x4a')](_0x4738c5['query']['sort']);_0x49b357[_0x0fde('0x4b')]=qs[_0x0fde('0x32')](_[_0x0fde('0x4c')](_0x4738c5['query'],_0x4ab711[_0x0fde('0x32')]),_0x208ef0);if(_0x4738c5[_0x0fde('0x31')][_0x0fde('0x4d')]){_0x49b357[_0x0fde('0x4b')]=_[_0x0fde('0x4e')](_0x49b357['where'],{'$or':_[_0x0fde('0x2a')](_0x208ef0,function(_0x272ecf){if(_0x272ecf['type']!=='VIRTUAL'){var _0x4ccd7e={};_0x4ccd7e[_0x272ecf[_0x0fde('0x30')]]={'$like':'%'+_0x4738c5['query'][_0x0fde('0x4d')]+'%'};return _0x4ccd7e;}})});}_0x49b357=_[_0x0fde('0x4e')]({},_0x49b357,_0x4738c5[_0x0fde('0x4f')]);var _0x2ed342={'where':_0x49b357['where']};return db['CmHopper'][_0x0fde('0x1e')](_0x2ed342)[_0x0fde('0x25')](function(_0x1c83ed){_0x5209bd[_0x0fde('0x1e')]=_0x1c83ed;if(_0x4738c5[_0x0fde('0x31')][_0x0fde('0x50')]){_0x49b357['include']=[{'all':!![]}];}return db[_0x0fde('0x2b')]['findAll'](_0x49b357);})[_0x0fde('0x25')](function(_0x1e2369){_0x5209bd[_0x0fde('0x51')]=_0x1e2369;return _0x5209bd;})[_0x0fde('0x25')](respondWithFilteredResult(_0x491e05,_0x49b357))[_0x0fde('0x52')](handleError(_0x491e05,null));};exports[_0x0fde('0x53')]=function(_0x213c87,_0x12315d){var _0x3b5aa1={'raw':!![],'where':{'id':_0x213c87[_0x0fde('0x54')]['id']}},_0xdf24d1={};_0xdf24d1['model']=_[_0x0fde('0x55')](db[_0x0fde('0x2b')][_0x0fde('0x2c')]);_0xdf24d1[_0x0fde('0x31')]=_['keys'](_0x213c87[_0x0fde('0x31')]);_0xdf24d1[_0x0fde('0x32')]=_['intersection'](_0xdf24d1[_0x0fde('0x2f')],_0xdf24d1[_0x0fde('0x31')]);_0x3b5aa1['attributes']=_[_0x0fde('0x45')](_0xdf24d1[_0x0fde('0x2f')],qs[_0x0fde('0x46')](_0x213c87['query'][_0x0fde('0x46')]));_0x3b5aa1[_0x0fde('0x44')]=_0x3b5aa1[_0x0fde('0x44')]['length']?_0x3b5aa1[_0x0fde('0x44')]:_0xdf24d1[_0x0fde('0x2f')];if(_0x213c87[_0x0fde('0x31')][_0x0fde('0x50')]){_0x3b5aa1['include']=[{'all':!![]}];}_0x3b5aa1=_[_0x0fde('0x4e')]({},_0x3b5aa1,_0x213c87[_0x0fde('0x4f')]);return db['CmHopper'][_0x0fde('0x56')](_0x3b5aa1)[_0x0fde('0x25')](handleEntityNotFound(_0x12315d,null))[_0x0fde('0x25')](respondWithResult(_0x12315d,null))[_0x0fde('0x52')](handleError(_0x12315d,null));};exports[_0x0fde('0x57')]=function(_0x5572c9,_0x23a061){return db[_0x0fde('0x2b')][_0x0fde('0x57')](_0x5572c9[_0x0fde('0x58')],{})[_0x0fde('0x25')](respondWithResult(_0x23a061,0xc9))[_0x0fde('0x52')](handleError(_0x23a061,null));};exports[_0x0fde('0x24')]=function(_0x4548e0,_0x161291){if(_0x4548e0[_0x0fde('0x58')]['id']){delete _0x4548e0[_0x0fde('0x58')]['id'];}return db[_0x0fde('0x2b')]['find']({'where':{'id':_0x4548e0[_0x0fde('0x54')]['id']}})[_0x0fde('0x25')](handleEntityNotFound(_0x161291,null))[_0x0fde('0x25')](saveUpdates(_0x4548e0[_0x0fde('0x58')],null))[_0x0fde('0x25')](respondWithResult(_0x161291,null))['catch'](handleError(_0x161291,null));};exports[_0x0fde('0x59')]=function(_0x84f586,_0xe640){return db[_0x0fde('0x2b')][_0x0fde('0x59')]()[_0x0fde('0x25')](respondWithResult(_0xe640,null))['catch'](handleError(_0xe640,null));};exports[_0x0fde('0x5a')]=function(_0x20b621,_0x5ae7bd){var _0x2e80ec;return db[_0x0fde('0x2b')]['find']({'where':{'id':_0x20b621['params']['id']}})[_0x0fde('0x25')](handleEntityNotFound(_0x5ae7bd,null))[_0x0fde('0x25')](function(_0x24a19d){if(_0x24a19d){return _0x24a19d[_0x0fde('0x5a')]()[_0x0fde('0x25')](function(_0x151068){return _0x151068;});}})[_0x0fde('0x25')](function(_0x59ab56){_0x2e80ec=_0x59ab56;if(_0x59ab56){if(_0x59ab56['VoiceQueueId']||_0x59ab56[_0x0fde('0x5b')]){return db[_0x59ab56[_0x0fde('0x5c')]?_0x0fde('0x5d'):'Campaign']['find']({'where':{'id':_0x59ab56[_0x0fde('0x5c')]?_0x59ab56[_0x0fde('0x5c')]:_0x59ab56[_0x0fde('0x5b')]},'attributes':['id',_0x0fde('0x30')],'raw':!![]});}}})[_0x0fde('0x25')](function(_0x40ed46){var _0x4a0e32={};if(_0x40ed46){_[_0x0fde('0x4e')](_0x4a0e32,_[_0x0fde('0x5e')](_0x2e80ec[_0x0fde('0x5f')],[_0x0fde('0x60'),'updatedAt','id']));_0x4a0e32['state']=0x15;_0x4a0e32['statedesc']=_0x0fde('0x61');_0x4a0e32[_0x0fde('0x62')]=_0x40ed46['name'];_0x4a0e32[_0x0fde('0x63')]=_0x20b621[_0x0fde('0x64')][_0x0fde('0x30')];_0x4a0e32[_0x0fde('0x65')]=_0x20b621[_0x0fde('0x64')]['id'];_0x4a0e32[_0x0fde('0x61')]=!![];_0x4a0e32[_0x0fde('0x66')]=moment()[_0x0fde('0x67')](_0x0fde('0x68'));_0x4a0e32[_0x0fde('0x69')]=_0x2e80ec[_0x0fde('0x6a')];_0x4a0e32[_0x0fde('0x6b')]=_0x2e80ec[_0x0fde('0x5c')]?_0x0fde('0x6c'):_0x0fde('0x6d');return db[_0x0fde('0x6e')][_0x0fde('0x56')]({'where':{'id':_0x4a0e32[_0x0fde('0x6f')]},'attributes':[_0x0fde('0x70'),_0x0fde('0x71')]})[_0x0fde('0x25')](function(_0x233801){if(!_['isNil'](_0x5ae7bd)&&!_['isNil'](_0x233801[_0x0fde('0x70')])){_0x4a0e32['calleridname']=_0x233801[_0x0fde('0x70')];if(!_[_0x0fde('0x72')](_0x233801[_0x0fde('0x71')])){_0x4a0e32[_0x0fde('0x73')]+='\x20'+_0x233801[_0x0fde('0x71')];}}})[_0x0fde('0x74')](function(){return db[_0x0fde('0x75')][_0x0fde('0x57')](_0x4a0e32);});}})[_0x0fde('0x25')](function(){return _0x5ae7bd[_0x0fde('0x19')](0xcc)[_0x0fde('0x1a')]();})[_0x0fde('0x52')](handleError(_0x5ae7bd,null));};exports[_0x0fde('0x76')]=function(_0x55313e,_0xe96686,_0x50944c){var _0xdaf0af=[];return db[_0x0fde('0x6e')][_0x0fde('0x59')]()[_0x0fde('0x25')](function(_0x36ef1e){_0xdaf0af=_[_0x0fde('0x55')](_0x36ef1e);return _0x55313e[_0x0fde('0x64')][_0x0fde('0x77')]({'where':{'type':_0x0fde('0x78'),'dialActive':!![],'dialMethod':_0x0fde('0x79')},'attributes':['id',_0x0fde('0x7a')],'raw':!![]});})[_0x0fde('0x25')](function(_0x1fdcf5){if(_0x1fdcf5&&_0x1fdcf5[_0x0fde('0x47')]){return db[_0x0fde('0x7b')][_0x0fde('0x7c')](function(_0x560ab){var _0x12b7d0={'active':![],'recallme':![],'scheduledAt':{'$lte':moment()[_0x0fde('0x67')](_0x0fde('0x68'))},'VoiceQueueId':{'$in':_[_0x0fde('0x2a')](_0x1fdcf5,'id')},'$or':[{'UserId':null},{'UserId':_0x55313e[_0x0fde('0x64')]['id']}]};var _0x240a03=[];if(_0x55313e[_0x0fde('0x58')][_0x0fde('0x7d')]&&_0x55313e[_0x0fde('0x58')][_0x0fde('0x7d')]===_0x0fde('0x7e')){if(!_['isEmpty'](_0x55313e[_0x0fde('0x58')]['hopperIds'])){_0x12b7d0['id']={'$in':_0x55313e['body'][_0x0fde('0x7f')]};}_0x240a03=[['priority',_0x0fde('0x80')],[_0x0fde('0x81'),_0x1fdcf5[0x0][_0x0fde('0x7a')]===_0x0fde('0x80')?_0x0fde('0x82'):'ASC'],db[_0x0fde('0x7b')][_0x0fde('0x83')](_0x0fde('0x84')),['id',_0x0fde('0x82')]];}else{if(!_[_0x0fde('0x85')](_0x55313e[_0x0fde('0x58')][_0x0fde('0x7f')])){_0x12b7d0['id']={'$notIn':_0x55313e['body'][_0x0fde('0x7f')]};}_0x240a03=[[_0x0fde('0x86'),'DESC'],[_0x0fde('0x81'),_0x1fdcf5[0x0][_0x0fde('0x7a')]],db[_0x0fde('0x7b')][_0x0fde('0x83')](_0x0fde('0x87')),['id','ASC']];}return db[_0x0fde('0x2b')]['findOne']({'attributes':['id',_0x0fde('0x88')],'where':_0x12b7d0,'order':_0x240a03,'transaction':_0x560ab,'lock':_0x560ab[_0x0fde('0x89')][_0x0fde('0x8a')],'include':[{'model':db[_0x0fde('0x6e')],'as':_0x0fde('0x8b'),'attributes':_0xdaf0af,'include':[{'model':db['CmCompany'],'as':'Company','attributes':['id','name']}]},{'model':db[_0x0fde('0x8c')],'as':_0x0fde('0x8d'),'attributes':['id',_0x0fde('0x30')]},{'model':db[_0x0fde('0x5d')],'as':'Queue','attributes':['id',_0x0fde('0x30'),_0x0fde('0x8e')]}]})[_0x0fde('0x25')](function(_0x25f7ec){if(_0x25f7ec){return _0x25f7ec['update']({'UserId':_0x55313e[_0x0fde('0x64')]['id']},{'transaction':_0x560ab});}});});}})['then'](handleEntityNotFound(_0xe96686,null))[_0x0fde('0x25')](respondWithResult(_0xe96686,null))['catch'](handleError(_0xe96686,null));};exports[_0x0fde('0x8f')]=function(_0x1a6680,_0x4935a5,_0x5a0f2e){return _0x1a6680['user'][_0x0fde('0x77')]({'where':{'type':_0x0fde('0x78'),'dialActive':!![],'dialMethod':_0x0fde('0x79')},'attributes':['id'],'raw':!![]})[_0x0fde('0x25')](function(_0x10f2a0){if(_0x10f2a0&&_0x10f2a0['length']){return db[_0x0fde('0x2b')][_0x0fde('0x1e')]({'where':{'active':![],'recallme':![],'scheduledAt':{'$lte':moment()[_0x0fde('0x67')]('YYYY-MM-DD\x20HH:mm:ss')},'VoiceQueueId':{'$in':_[_0x0fde('0x2a')](_0x10f2a0,'id')},'$or':[{'UserId':null},{'UserId':_0x1a6680['user']['id']}]}});}return 0x0;})[_0x0fde('0x25')](function(_0x37f718){if(!_[_0x0fde('0x72')](_0x37f718)&&_[_0x0fde('0x90')](_0x37f718)){return _0x4935a5[_0x0fde('0x19')](0xc8)[_0x0fde('0x1b')]({'contacts':_0x37f718});}else{logger[_0x0fde('0x26')]('CmHopper,\x20%s,\x20%s,\x20%s',_0x0fde('0x8f'),0x194,_0x0fde('0x91'));_0x4935a5[_0x0fde('0x18')](0x194);}})[_0x0fde('0x52')](handleError(_0x4935a5,null));};
\ No newline at end of file
+var _0xfea9=['Content-Range','apply','reject','save','then','destroy','end','stack','index','map','CmHopper','fieldName','type','key','model','name','keys','query','filters','intersection','$and','$gt','$gte','$lt','$lte','$ne','$eq','$not','$between','$notBetween','$in','$notIn','$like','$notLike','$iLike','$notILike','$overlap','$contains','$any','attributes','fields','length','hasOwnProperty','order','sort','where','filter','merge','options','includeAll','include','findAll','rows','catch','params','rawAttributes','create','body','update','find','describe','VoiceQueueId','CampaignId','VoiceQueue','Campaign','dataValues','createdAt','updatedAt','statedesc','deleted','campaign','membername','UserId','deletedat','YYYY-MM-DD\x20HH:mm:ss','calleridnum','phone','queue','ivr','CmContact','ContactId','firstName','isNil','calleridname','lastName','finally','CmHopperFinal','getPreview','user','getVoiceQueues','outbound','preview','dialOrderByScheduledAt','transaction','format','direction','prev','isEmpty','hopperIds','priority','scheduledAt','ASC','sequelize','COALESCE(CmHopper.UserId,\x200)\x20ASC','COALESCE(CmHopper.UserId,\x200)\x20DESC','findOne','scheduledat','UPDATE','Contact','CmCompany','Company','CmList','List','Queue','getOpenContacts','isNumber','CmHopper,\x20%s,\x20%s,\x20%s','entity\x20not\x20found','eml-format','rimraf','fast-json-patch','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','squel','jsforce','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../mysqldb','sendStatus','status','json','undefined','limit','count','offset','set'];(function(_0x51df9b,_0x2601ca){var _0x491ef4=function(_0x55f8d2){while(--_0x55f8d2){_0x51df9b['push'](_0x51df9b['shift']());}};_0x491ef4(++_0x2601ca);}(_0xfea9,0x10a));var _0x9fea=function(_0x1036da,_0x2a16ec){_0x1036da=_0x1036da-0x0;var _0x27e697=_0xfea9[_0x1036da];return _0x27e697;};'use strict';var emlformat=require(_0x9fea('0x0'));var rimraf=require(_0x9fea('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x9fea('0x2'));var rp=require('request-promise');var moment=require(_0x9fea('0x3'));var BPromise=require(_0x9fea('0x4'));var Mustache=require('mustache');var util=require(_0x9fea('0x5'));var path=require(_0x9fea('0x6'));var sox=require(_0x9fea('0x7'));var csv=require(_0x9fea('0x8'));var ejs=require(_0x9fea('0x9'));var fs=require('fs');var fs_extra=require(_0x9fea('0xa'));var _=require('lodash');var squel=require(_0x9fea('0xb'));var crypto=require('crypto');var jsforce=require(_0x9fea('0xc'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x9fea('0xd'));var Papa=require(_0x9fea('0xe'));var Redis=require('ioredis');var authService=require(_0x9fea('0xf'));var qs=require(_0x9fea('0x10'));var as=require(_0x9fea('0x11'));var hardwareService=require(_0x9fea('0x12'));var logger=require('../../config/logger')(_0x9fea('0x13'));var utils=require(_0x9fea('0x14'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x9fea('0x15'))['db'];function respondWithStatusCode(_0x43c6e3,_0x3780b8){_0x3780b8=_0x3780b8||0xcc;return function(_0x36c3bc){if(_0x36c3bc){return _0x43c6e3[_0x9fea('0x16')](_0x3780b8);}return _0x43c6e3[_0x9fea('0x17')](_0x3780b8)['end']();};}function respondWithResult(_0x40c517,_0x151fe9){_0x151fe9=_0x151fe9||0xc8;return function(_0x32a7e0){if(_0x32a7e0){return _0x40c517['status'](_0x151fe9)[_0x9fea('0x18')](_0x32a7e0);}};}function respondWithFilteredResult(_0x46200f,_0x32221b){return function(_0x2fe239){if(_0x2fe239){var _0x1d3b9d=typeof _0x32221b['offset']===_0x9fea('0x19')&&typeof _0x32221b[_0x9fea('0x1a')]===_0x9fea('0x19');var _0x43b6a6=_0x2fe239[_0x9fea('0x1b')];var _0x10a82d=_0x1d3b9d?0x0:_0x32221b[_0x9fea('0x1c')];var _0x2cc7ff=_0x1d3b9d?_0x2fe239[_0x9fea('0x1b')]:_0x32221b[_0x9fea('0x1c')]+_0x32221b[_0x9fea('0x1a')];var _0x4e5a51;if(_0x2cc7ff>=_0x43b6a6){_0x2cc7ff=_0x43b6a6;_0x4e5a51=0xc8;}else{_0x4e5a51=0xce;}_0x46200f[_0x9fea('0x17')](_0x4e5a51);return _0x46200f[_0x9fea('0x1d')](_0x9fea('0x1e'),_0x10a82d+'-'+_0x2cc7ff+'/'+_0x43b6a6)[_0x9fea('0x18')](_0x2fe239);}return null;};}function patchUpdates(_0xf49a9b){return function(_0x360cd9){try{jsonpatch[_0x9fea('0x1f')](_0x360cd9,_0xf49a9b,!![]);}catch(_0x398f6d){return BPromise[_0x9fea('0x20')](_0x398f6d);}return _0x360cd9[_0x9fea('0x21')]();};}function saveUpdates(_0x3c30d6,_0x1f1e29){return function(_0x3ea95e){if(_0x3ea95e){return _0x3ea95e['update'](_0x3c30d6)[_0x9fea('0x22')](function(_0x69b015){return _0x69b015;});}return null;};}function removeEntity(_0x4808bb,_0x1150ab){return function(_0x5a0637){if(_0x5a0637){return _0x5a0637[_0x9fea('0x23')]()['then'](function(){_0x4808bb[_0x9fea('0x17')](0xcc)[_0x9fea('0x24')]();});}};}function handleEntityNotFound(_0x53fb9d,_0x2aa126){return function(_0xa57d2c){if(!_0xa57d2c){_0x53fb9d[_0x9fea('0x16')](0x194);}return _0xa57d2c;};}function handleError(_0x521530,_0x1f6f23){_0x1f6f23=_0x1f6f23||0x1f4;return function(_0x2c3b14){logger['error'](_0x2c3b14[_0x9fea('0x25')]);if(_0x2c3b14['name']){delete _0x2c3b14['name'];}_0x521530[_0x9fea('0x17')](_0x1f6f23)['send'](_0x2c3b14);};}exports[_0x9fea('0x26')]=function(_0x3bc2c4,_0x25132a){var _0x3b1c27={},_0x4f10e8={},_0x3cf4e5={'count':0x0,'rows':[]};var _0x5290da=_[_0x9fea('0x27')](db[_0x9fea('0x28')]['rawAttributes'],function(_0x518234){return{'name':_0x518234[_0x9fea('0x29')],'type':_0x518234[_0x9fea('0x2a')][_0x9fea('0x2b')]};});_0x4f10e8[_0x9fea('0x2c')]=_['map'](_0x5290da,_0x9fea('0x2d'));_0x4f10e8['query']=_[_0x9fea('0x2e')](_0x3bc2c4[_0x9fea('0x2f')]);_0x4f10e8[_0x9fea('0x30')]=_[_0x9fea('0x31')](_0x4f10e8['model'],_0x4f10e8[_0x9fea('0x2f')]);_0x4f10e8[_0x9fea('0x30')]=_['concat'](_0x4f10e8[_0x9fea('0x30')],[_0x9fea('0x32'),'$or',_0x9fea('0x33'),_0x9fea('0x34'),_0x9fea('0x35'),_0x9fea('0x36'),_0x9fea('0x37'),_0x9fea('0x38'),_0x9fea('0x39'),_0x9fea('0x3a'),_0x9fea('0x3b'),_0x9fea('0x3c'),_0x9fea('0x3d'),_0x9fea('0x3e'),_0x9fea('0x3f'),_0x9fea('0x40'),_0x9fea('0x41'),_0x9fea('0x3e'),_0x9fea('0x42'),_0x9fea('0x43'),'$contained',_0x9fea('0x44')]);_0x3b1c27[_0x9fea('0x45')]=_[_0x9fea('0x31')](_0x4f10e8[_0x9fea('0x2c')],qs['fields'](_0x3bc2c4[_0x9fea('0x2f')][_0x9fea('0x46')]));_0x3b1c27['attributes']=_0x3b1c27[_0x9fea('0x45')][_0x9fea('0x47')]?_0x3b1c27[_0x9fea('0x45')]:_0x4f10e8[_0x9fea('0x2c')];if(!_0x3bc2c4['query'][_0x9fea('0x48')]('nolimit')){_0x3b1c27[_0x9fea('0x1a')]=qs[_0x9fea('0x1a')](_0x3bc2c4[_0x9fea('0x2f')][_0x9fea('0x1a')]);_0x3b1c27['offset']=qs[_0x9fea('0x1c')](_0x3bc2c4['query']['offset']);}_0x3b1c27[_0x9fea('0x49')]=qs[_0x9fea('0x4a')](_0x3bc2c4['query']['sort']);_0x3b1c27[_0x9fea('0x4b')]=qs['filters'](_['pick'](_0x3bc2c4['query'],_0x4f10e8[_0x9fea('0x30')]),_0x5290da);if(_0x3bc2c4[_0x9fea('0x2f')][_0x9fea('0x4c')]){_0x3b1c27['where']=_['merge'](_0x3b1c27[_0x9fea('0x4b')],{'$or':_['map'](_0x5290da,function(_0xb19829){if(_0xb19829[_0x9fea('0x2a')]!=='VIRTUAL'){var _0x8ffd75={};_0x8ffd75[_0xb19829[_0x9fea('0x2d')]]={'$like':'%'+_0x3bc2c4[_0x9fea('0x2f')][_0x9fea('0x4c')]+'%'};return _0x8ffd75;}})});}_0x3b1c27=_[_0x9fea('0x4d')]({},_0x3b1c27,_0x3bc2c4[_0x9fea('0x4e')]);var _0x1ec783={'where':_0x3b1c27[_0x9fea('0x4b')]};return db[_0x9fea('0x28')][_0x9fea('0x1b')](_0x1ec783)[_0x9fea('0x22')](function(_0x259b2a){_0x3cf4e5['count']=_0x259b2a;if(_0x3bc2c4[_0x9fea('0x2f')][_0x9fea('0x4f')]){_0x3b1c27[_0x9fea('0x50')]=[{'all':!![]}];}return db[_0x9fea('0x28')][_0x9fea('0x51')](_0x3b1c27);})[_0x9fea('0x22')](function(_0x2e8b44){_0x3cf4e5[_0x9fea('0x52')]=_0x2e8b44;return _0x3cf4e5;})[_0x9fea('0x22')](respondWithFilteredResult(_0x25132a,_0x3b1c27))[_0x9fea('0x53')](handleError(_0x25132a,null));};exports['show']=function(_0x4fab63,_0x227599){var _0x2dbdbb={'raw':!![],'where':{'id':_0x4fab63[_0x9fea('0x54')]['id']}},_0x3f96a4={};_0x3f96a4[_0x9fea('0x2c')]=_[_0x9fea('0x2e')](db[_0x9fea('0x28')][_0x9fea('0x55')]);_0x3f96a4[_0x9fea('0x2f')]=_[_0x9fea('0x2e')](_0x4fab63[_0x9fea('0x2f')]);_0x3f96a4[_0x9fea('0x30')]=_[_0x9fea('0x31')](_0x3f96a4['model'],_0x3f96a4['query']);_0x2dbdbb[_0x9fea('0x45')]=_[_0x9fea('0x31')](_0x3f96a4[_0x9fea('0x2c')],qs['fields'](_0x4fab63[_0x9fea('0x2f')]['fields']));_0x2dbdbb[_0x9fea('0x45')]=_0x2dbdbb['attributes']['length']?_0x2dbdbb[_0x9fea('0x45')]:_0x3f96a4['model'];if(_0x4fab63['query'][_0x9fea('0x4f')]){_0x2dbdbb[_0x9fea('0x50')]=[{'all':!![]}];}_0x2dbdbb=_[_0x9fea('0x4d')]({},_0x2dbdbb,_0x4fab63[_0x9fea('0x4e')]);return db[_0x9fea('0x28')]['find'](_0x2dbdbb)[_0x9fea('0x22')](handleEntityNotFound(_0x227599,null))[_0x9fea('0x22')](respondWithResult(_0x227599,null))[_0x9fea('0x53')](handleError(_0x227599,null));};exports[_0x9fea('0x56')]=function(_0x108b66,_0x152c92){return db[_0x9fea('0x28')][_0x9fea('0x56')](_0x108b66[_0x9fea('0x57')],{})[_0x9fea('0x22')](respondWithResult(_0x152c92,0xc9))['catch'](handleError(_0x152c92,null));};exports[_0x9fea('0x58')]=function(_0x41cb80,_0x5c4535){if(_0x41cb80[_0x9fea('0x57')]['id']){delete _0x41cb80[_0x9fea('0x57')]['id'];}return db[_0x9fea('0x28')][_0x9fea('0x59')]({'where':{'id':_0x41cb80[_0x9fea('0x54')]['id']}})['then'](handleEntityNotFound(_0x5c4535,null))[_0x9fea('0x22')](saveUpdates(_0x41cb80[_0x9fea('0x57')],null))[_0x9fea('0x22')](respondWithResult(_0x5c4535,null))['catch'](handleError(_0x5c4535,null));};exports[_0x9fea('0x5a')]=function(_0x4e8b1a,_0x1a9287){return db[_0x9fea('0x28')][_0x9fea('0x5a')]()['then'](respondWithResult(_0x1a9287,null))['catch'](handleError(_0x1a9287,null));};exports[_0x9fea('0x23')]=function(_0x3579cd,_0x82820e){var _0x31275b;return db[_0x9fea('0x28')][_0x9fea('0x59')]({'where':{'id':_0x3579cd[_0x9fea('0x54')]['id']}})[_0x9fea('0x22')](handleEntityNotFound(_0x82820e,null))['then'](function(_0x3ac567){if(_0x3ac567){return _0x3ac567['destroy']()[_0x9fea('0x22')](function(_0x766c36){return _0x766c36;});}})[_0x9fea('0x22')](function(_0x39ac15){_0x31275b=_0x39ac15;if(_0x39ac15){if(_0x39ac15[_0x9fea('0x5b')]||_0x39ac15[_0x9fea('0x5c')]){return db[_0x39ac15[_0x9fea('0x5b')]?_0x9fea('0x5d'):_0x9fea('0x5e')]['find']({'where':{'id':_0x39ac15[_0x9fea('0x5b')]?_0x39ac15[_0x9fea('0x5b')]:_0x39ac15[_0x9fea('0x5c')]},'attributes':['id',_0x9fea('0x2d')],'raw':!![]});}}})['then'](function(_0xd49dc){var _0x3cbc92={};if(_0xd49dc){_['merge'](_0x3cbc92,_['omit'](_0x31275b[_0x9fea('0x5f')],[_0x9fea('0x60'),_0x9fea('0x61'),'id']));_0x3cbc92['state']=0x15;_0x3cbc92[_0x9fea('0x62')]=_0x9fea('0x63');_0x3cbc92[_0x9fea('0x64')]=_0xd49dc[_0x9fea('0x2d')];_0x3cbc92[_0x9fea('0x65')]=_0x3579cd['user'][_0x9fea('0x2d')];_0x3cbc92[_0x9fea('0x66')]=_0x3579cd['user']['id'];_0x3cbc92['deleted']=!![];_0x3cbc92[_0x9fea('0x67')]=moment()['format'](_0x9fea('0x68'));_0x3cbc92[_0x9fea('0x69')]=_0x31275b[_0x9fea('0x6a')];_0x3cbc92['campaigntype']=_0x31275b[_0x9fea('0x5b')]?_0x9fea('0x6b'):_0x9fea('0x6c');return db[_0x9fea('0x6d')][_0x9fea('0x59')]({'where':{'id':_0x3cbc92[_0x9fea('0x6e')]},'attributes':[_0x9fea('0x6f'),'lastName']})['then'](function(_0x2a9ac4){if(!_[_0x9fea('0x70')](_0x82820e)&&!_['isNil'](_0x2a9ac4['firstName'])){_0x3cbc92['calleridname']=_0x2a9ac4['firstName'];if(!_[_0x9fea('0x70')](_0x2a9ac4['lastName'])){_0x3cbc92[_0x9fea('0x71')]+='\x20'+_0x2a9ac4[_0x9fea('0x72')];}}})[_0x9fea('0x73')](function(){return db[_0x9fea('0x74')][_0x9fea('0x56')](_0x3cbc92);});}})[_0x9fea('0x22')](function(){return _0x82820e['status'](0xcc)[_0x9fea('0x24')]();})[_0x9fea('0x53')](handleError(_0x82820e,null));};exports[_0x9fea('0x75')]=function(_0x587866,_0x4f7f3e,_0xf24d73){var _0x2f726a=[];return db[_0x9fea('0x6d')][_0x9fea('0x5a')]()['then'](function(_0x40f507){_0x2f726a=_['keys'](_0x40f507);return _0x587866[_0x9fea('0x76')][_0x9fea('0x77')]({'where':{'type':_0x9fea('0x78'),'dialActive':!![],'dialMethod':_0x9fea('0x79')},'attributes':['id',_0x9fea('0x7a')],'raw':!![]});})[_0x9fea('0x22')](function(_0x2bcb67){if(_0x2bcb67&&_0x2bcb67['length']){return db['sequelize'][_0x9fea('0x7b')](function(_0x4b9cff){var _0x537013={'active':![],'recallme':![],'scheduledAt':{'$lte':moment()[_0x9fea('0x7c')]('YYYY-MM-DD\x20HH:mm:ss')},'VoiceQueueId':{'$in':_[_0x9fea('0x27')](_0x2bcb67,'id')},'$or':[{'UserId':null},{'UserId':_0x587866[_0x9fea('0x76')]['id']}]};var _0x2a1a05=[];if(_0x587866[_0x9fea('0x57')][_0x9fea('0x7d')]&&_0x587866['body']['direction']===_0x9fea('0x7e')){if(!_[_0x9fea('0x7f')](_0x587866[_0x9fea('0x57')][_0x9fea('0x80')])){_0x537013['id']={'$in':_0x587866[_0x9fea('0x57')]['hopperIds']};}_0x2a1a05=[[_0x9fea('0x81'),'ASC'],[_0x9fea('0x82'),_0x2bcb67[0x0][_0x9fea('0x7a')]===_0x9fea('0x83')?'DESC':_0x9fea('0x83')],db[_0x9fea('0x84')]['literal'](_0x9fea('0x85')),['id','DESC']];}else{if(!_['isEmpty'](_0x587866[_0x9fea('0x57')][_0x9fea('0x80')])){_0x537013['id']={'$notIn':_0x587866[_0x9fea('0x57')][_0x9fea('0x80')]};}_0x2a1a05=[[_0x9fea('0x81'),'DESC'],[_0x9fea('0x82'),_0x2bcb67[0x0][_0x9fea('0x7a')]],db[_0x9fea('0x84')]['literal'](_0x9fea('0x86')),['id','ASC']];}return db[_0x9fea('0x28')][_0x9fea('0x87')]({'attributes':['id',_0x9fea('0x88')],'where':_0x537013,'order':_0x2a1a05,'transaction':_0x4b9cff,'lock':_0x4b9cff['LOCK'][_0x9fea('0x89')],'include':[{'model':db[_0x9fea('0x6d')],'as':_0x9fea('0x8a'),'attributes':_0x2f726a,'include':[{'model':db[_0x9fea('0x8b')],'as':_0x9fea('0x8c'),'attributes':['id',_0x9fea('0x2d')]}]},{'model':db[_0x9fea('0x8d')],'as':_0x9fea('0x8e'),'attributes':['id',_0x9fea('0x2d')]},{'model':db[_0x9fea('0x5d')],'as':_0x9fea('0x8f'),'attributes':['id','name','dialActive']}]})[_0x9fea('0x22')](function(_0x3c1cbe){if(_0x3c1cbe){return _0x3c1cbe[_0x9fea('0x58')]({'UserId':_0x587866[_0x9fea('0x76')]['id']},{'transaction':_0x4b9cff});}});});}})[_0x9fea('0x22')](handleEntityNotFound(_0x4f7f3e,null))[_0x9fea('0x22')](respondWithResult(_0x4f7f3e,null))[_0x9fea('0x53')](handleError(_0x4f7f3e,null));};exports[_0x9fea('0x90')]=function(_0x47c36c,_0x55466a,_0x150795){return _0x47c36c[_0x9fea('0x76')][_0x9fea('0x77')]({'where':{'type':'outbound','dialActive':!![],'dialMethod':_0x9fea('0x79')},'attributes':['id'],'raw':!![]})['then'](function(_0x226e07){if(_0x226e07&&_0x226e07[_0x9fea('0x47')]){return db['CmHopper'][_0x9fea('0x1b')]({'where':{'active':![],'recallme':![],'scheduledAt':{'$lte':moment()['format'](_0x9fea('0x68'))},'VoiceQueueId':{'$in':_[_0x9fea('0x27')](_0x226e07,'id')},'$or':[{'UserId':null},{'UserId':_0x47c36c['user']['id']}]}});}return 0x0;})[_0x9fea('0x22')](function(_0x15744c){if(!_[_0x9fea('0x70')](_0x15744c)&&_[_0x9fea('0x91')](_0x15744c)){return _0x55466a[_0x9fea('0x17')](0xc8)['json']({'contacts':_0x15744c});}else{logger['error'](_0x9fea('0x92'),_0x9fea('0x90'),0x194,_0x9fea('0x93'));_0x55466a['sendStatus'](0x194);}})[_0x9fea('0x53')](handleError(_0x55466a,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xeff8=['lodash','util','api','moment','bluebird','path','rimraf','../../config/environment','./cmHopper.attributes','define','CmHopper','scheduledat','phone'];(function(_0x9fecd5,_0x21eae1){var _0x113c29=function(_0x914506){while(--_0x914506){_0x9fecd5['push'](_0x9fecd5['shift']());}};_0x113c29(++_0x21eae1);}(_0xeff8,0x186));var _0x8eff=function(_0x1780f8,_0x11ba93){_0x1780f8=_0x1780f8-0x0;var _0x33a410=_0xeff8[_0x1780f8];return _0x33a410;};'use strict';var _=require(_0x8eff('0x0'));var util=require(_0x8eff('0x1'));var logger=require('../../config/logger')(_0x8eff('0x2'));var moment=require(_0x8eff('0x3'));var BPromise=require(_0x8eff('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x8eff('0x5'));var rimraf=require(_0x8eff('0x6'));var config=require(_0x8eff('0x7'));var attributes=require(_0x8eff('0x8'));module['exports']=function(_0x469641,_0xb54063){return _0x469641[_0x8eff('0x9')](_0x8eff('0xa'),attributes,{'tableName':'cm_hopper','paranoid':![],'indexes':[{'name':_0x8eff('0xb'),'fields':[_0x8eff('0xb')]},{'name':_0x8eff('0xc'),'fields':[_0x8eff('0xc')]},{'name':'priority','fields':['priority']}],'timestamps':!![]});};
\ No newline at end of file
+var _0x1623=['scheduledat','phone','priority','lodash','api','moment','bluebird','request-promise','path','./cmHopper.attributes','CmHopper','cm_hopper'];(function(_0x48e694,_0x1afb91){var _0x22d91c=function(_0x501313){while(--_0x501313){_0x48e694['push'](_0x48e694['shift']());}};_0x22d91c(++_0x1afb91);}(_0x1623,0xab));var _0x3162=function(_0x51ca54,_0x2d7b6e){_0x51ca54=_0x51ca54-0x0;var _0x136123=_0x1623[_0x51ca54];return _0x136123;};'use strict';var _=require(_0x3162('0x0'));var util=require('util');var logger=require('../../config/logger')(_0x3162('0x1'));var moment=require(_0x3162('0x2'));var BPromise=require(_0x3162('0x3'));var rp=require(_0x3162('0x4'));var fs=require('fs');var path=require(_0x3162('0x5'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0x3162('0x6'));module['exports']=function(_0x1b55f2,_0x428de6){return _0x1b55f2['define'](_0x3162('0x7'),attributes,{'tableName':_0x3162('0x8'),'paranoid':![],'indexes':[{'name':_0x3162('0x9'),'fields':[_0x3162('0x9')]},{'name':_0x3162('0xa'),'fields':[_0x3162('0xa')]},{'name':_0x3162('0xb'),'fields':[_0x3162('0xb')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x995b=['GetCmHopper','ShowCmHopper','CmHopper','find','CreateCmHopper','UpdateCmHopper','update','body','limit','destroy','DestroyCmHopper','CmContact','describe','transaction','findAll','order','LOCK','UPDATE','Contact','keys','Agent','name','UserId','push','includes','all','GetContactDialer','CmHopperFinal','create','MoveContactManagedDialer','CountReScheduled','sequelize','literal','format','\x22%s\x22','YYYY-MM-DD\x20HH:mm:ss','contactsRescheduled','GetContactRecallMe','GetCmHopperPreview','lodash','util','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','http','request','then','info','CmHopper,\x20%s,\x20%s','debug','request\x20sent','stringify','error','code','message','result','catch','options','raw','where','include','model','attributes','map'];(function(_0x50f112,_0xd38e53){var _0x4ecf28=function(_0x62b75){while(--_0x62b75){_0x50f112['push'](_0x50f112['shift']());}};_0x4ecf28(++_0xd38e53);}(_0x995b,0x69));var _0xb995=function(_0x5b8fe7,_0x130794){_0x5b8fe7=_0x5b8fe7-0x0;var _0xecab53=_0x995b[_0x5b8fe7];return _0xecab53;};'use strict';var _=require(_0xb995('0x0'));var util=require(_0xb995('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xb995('0x2'));var db=require(_0xb995('0x3'))['db'];var utils=require('../../config/utils');var logger=require(_0xb995('0x4'))(_0xb995('0x5'));var config=require(_0xb995('0x6'));var jayson=require('jayson/promise');var client=jayson['client'][_0xb995('0x7')]({'port':0x232a});function respondWithRpcPromise(_0x475adc,_0x13904c,_0x5b46db){return new BPromise(function(_0x292cfe,_0x2f9bd2){return client[_0xb995('0x8')](_0x475adc,_0x5b46db)[_0xb995('0x9')](function(_0x16b99e){logger[_0xb995('0xa')](_0xb995('0xb'),_0x13904c,'request\x20sent');logger[_0xb995('0xc')]('CmHopper,\x20%s,\x20%s,\x20%s',_0x13904c,_0xb995('0xd'),JSON[_0xb995('0xe')](_0x16b99e));if(_0x16b99e[_0xb995('0xf')]){if(_0x16b99e['error'][_0xb995('0x10')]===0x1f4){logger['error'](_0xb995('0xb'),_0x13904c,_0x16b99e[_0xb995('0xf')][_0xb995('0x11')]);return _0x2f9bd2(_0x16b99e['error'][_0xb995('0x11')]);}logger[_0xb995('0xf')]('CmHopper,\x20%s,\x20%s',_0x13904c,_0x16b99e['error']['message']);return _0x292cfe(_0x16b99e['error']['message']);}else{logger[_0xb995('0xa')]('CmHopper,\x20%s,\x20%s',_0x13904c,_0xb995('0xd'));_0x292cfe(_0x16b99e[_0xb995('0x12')][_0xb995('0x11')]);}})[_0xb995('0x13')](function(_0x499957){logger[_0xb995('0xf')]('CmHopper,\x20%s,\x20%s',_0x13904c,_0x499957);_0x2f9bd2(_0x499957);});});}exports['GetCmHopper']=function(_0x1c4a31){var _0x233dfa=this;return new Promise(function(_0x5221ca,_0x4f9703){return db['CmHopper']['findAll']({'raw':_0x1c4a31[_0xb995('0x14')]?_0x1c4a31[_0xb995('0x14')][_0xb995('0x15')]===undefined?!![]:![]:!![],'where':_0x1c4a31[_0xb995('0x14')]?_0x1c4a31[_0xb995('0x14')][_0xb995('0x16')]||null:null,'attributes':_0x1c4a31[_0xb995('0x14')]?_0x1c4a31[_0xb995('0x14')]['attributes']||null:null,'limit':_0x1c4a31['options']?_0x1c4a31[_0xb995('0x14')]['limit']||null:null,'include':_0x1c4a31[_0xb995('0x14')]?_0x1c4a31[_0xb995('0x14')][_0xb995('0x17')]?_['map'](_0x1c4a31['options'][_0xb995('0x17')],function(_0x461e97){return{'model':db[_0x461e97[_0xb995('0x18')]],'as':_0x461e97['as'],'attributes':_0x461e97[_0xb995('0x19')],'include':_0x461e97[_0xb995('0x17')]?_[_0xb995('0x1a')](_0x461e97['include'],function(_0xd7b9a){return{'model':db[_0xd7b9a['model']],'as':_0xd7b9a['as'],'attributes':_0xd7b9a[_0xb995('0x19')],'include':_0xd7b9a[_0xb995('0x17')]?_[_0xb995('0x1a')](_0xd7b9a[_0xb995('0x17')],function(_0x4ad72c){return{'model':db[_0x4ad72c[_0xb995('0x18')]],'as':_0x4ad72c['as'],'attributes':_0x4ad72c['attributes']};}):[]};}):[]};}):[]:[]})[_0xb995('0x9')](function(_0x511a63){logger[_0xb995('0xa')](_0xb995('0x1b'),_0x1c4a31);logger[_0xb995('0xc')](_0xb995('0x1b'),_0x1c4a31,JSON[_0xb995('0xe')](_0x511a63));_0x5221ca(_0x511a63);})[_0xb995('0x13')](function(_0x5ec595){logger[_0xb995('0xf')](_0xb995('0x1b'),_0x5ec595[_0xb995('0x11')],_0x1c4a31);_0x4f9703(_0x233dfa[_0xb995('0xf')](0x1f4,_0x5ec595[_0xb995('0x11')]));});});};exports[_0xb995('0x1c')]=function(_0x3ff291){var _0x26cd80=this;return new Promise(function(_0x553ead,_0x10053f){return db[_0xb995('0x1d')][_0xb995('0x1e')]({'raw':_0x3ff291[_0xb995('0x14')]?_0x3ff291[_0xb995('0x14')][_0xb995('0x15')]===undefined?!![]:![]:!![],'where':_0x3ff291['options']?_0x3ff291[_0xb995('0x14')][_0xb995('0x16')]||null:null,'attributes':_0x3ff291[_0xb995('0x14')]?_0x3ff291[_0xb995('0x14')]['attributes']||null:null,'include':_0x3ff291['options']?_0x3ff291[_0xb995('0x14')][_0xb995('0x17')]?_['map'](_0x3ff291[_0xb995('0x14')]['include'],function(_0x264dbc){return{'model':db[_0x264dbc[_0xb995('0x18')]],'as':_0x264dbc['as'],'attributes':_0x264dbc[_0xb995('0x19')],'include':_0x264dbc[_0xb995('0x17')]?_[_0xb995('0x1a')](_0x264dbc[_0xb995('0x17')],function(_0x2aef36){return{'model':db[_0x2aef36[_0xb995('0x18')]],'as':_0x2aef36['as'],'attributes':_0x2aef36[_0xb995('0x19')],'include':_0x2aef36[_0xb995('0x17')]?_[_0xb995('0x1a')](_0x2aef36[_0xb995('0x17')],function(_0x36c0a1){return{'model':db[_0x36c0a1['model']],'as':_0x36c0a1['as'],'attributes':_0x36c0a1[_0xb995('0x19')]};}):[]};}):[]};}):[]:[]})[_0xb995('0x9')](function(_0x30c95d){logger[_0xb995('0xa')]('ShowCmHopper',_0x3ff291);logger[_0xb995('0xc')]('ShowCmHopper',_0x3ff291,JSON[_0xb995('0xe')](_0x30c95d));_0x553ead(_0x30c95d);})[_0xb995('0x13')](function(_0x288656){logger[_0xb995('0xf')](_0xb995('0x1c'),_0x288656[_0xb995('0x11')],_0x3ff291);_0x10053f(_0x26cd80[_0xb995('0xf')](0x1f4,_0x288656['message']));});});};exports[_0xb995('0x1f')]=function(_0x1156db){var _0x2cea25=this;return new Promise(function(_0x1f65d2,_0x102a4e){return db[_0xb995('0x1d')]['create'](_0x1156db['body'],{'raw':_0x1156db['options']?_0x1156db['options'][_0xb995('0x15')]===undefined?!![]:![]:!![]})[_0xb995('0x9')](function(_0x5802bc){logger[_0xb995('0xa')](_0xb995('0x1f'),_0x1156db);logger['debug'](_0xb995('0x1f'),_0x1156db,JSON[_0xb995('0xe')](_0x5802bc));_0x1f65d2(_0x5802bc);})['catch'](function(_0x3d2176){logger[_0xb995('0xf')]('CreateCmHopper',_0x3d2176[_0xb995('0x11')],_0x1156db);_0x102a4e(_0x2cea25[_0xb995('0xf')](0x1f4,_0x3d2176[_0xb995('0x11')]));});});};exports[_0xb995('0x20')]=function(_0x5f2eb7){var _0x505af8=this;return new Promise(function(_0x9abc3f,_0x20ed7a){return db['CmHopper'][_0xb995('0x21')](_0x5f2eb7[_0xb995('0x22')],{'raw':_0x5f2eb7['options']?_0x5f2eb7[_0xb995('0x14')][_0xb995('0x15')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x5f2eb7[_0xb995('0x14')]?_0x5f2eb7['options'][_0xb995('0x16')]||null:null,'attributes':_0x5f2eb7[_0xb995('0x14')]?_0x5f2eb7['options']['attributes']||null:null,'limit':_0x5f2eb7[_0xb995('0x14')]?_0x5f2eb7[_0xb995('0x14')][_0xb995('0x23')]||null:null})[_0xb995('0x9')](function(_0x177f30){logger[_0xb995('0xa')]('UpdateCmHopper',_0x5f2eb7);logger[_0xb995('0xc')]('UpdateCmHopper',_0x5f2eb7,JSON[_0xb995('0xe')](_0x177f30));_0x9abc3f(_0x177f30);})[_0xb995('0x13')](function(_0x4ec0b5){logger['error'](_0xb995('0x20'),_0x4ec0b5['message'],_0x5f2eb7);_0x20ed7a(_0x505af8[_0xb995('0xf')](0x1f4,_0x4ec0b5[_0xb995('0x11')]));});});};exports['DestroyCmHopper']=function(_0x5094c7){var _0x4585e2=this;return new Promise(function(_0x5c789d,_0x37a89c){return db[_0xb995('0x1d')][_0xb995('0x24')]({'where':_0x5094c7['options']?_0x5094c7[_0xb995('0x14')][_0xb995('0x16')]||null:null})[_0xb995('0x9')](function(_0x7e3acb){logger[_0xb995('0xa')](_0xb995('0x25'),_0x5094c7);logger[_0xb995('0xc')](_0xb995('0x25'),_0x5094c7,JSON['stringify'](_0x7e3acb));_0x5c789d(_0x7e3acb);})[_0xb995('0x13')](function(_0x5a866d){logger['error'](_0xb995('0x25'),_0x5a866d[_0xb995('0x11')],_0x5094c7);_0x37a89c(_0x4585e2[_0xb995('0xf')](0x1f4,_0x5a866d[_0xb995('0x11')]));});});};exports['GetContactDialer']=function(_0x3060be){var _0x295f67=this;return new Promise(function(_0x13f243,_0x58d488){return db[_0xb995('0x26')][_0xb995('0x27')]()[_0xb995('0x9')](function(_0x17c7b0){return db['sequelize'][_0xb995('0x28')](function(_0x446f35){return db[_0xb995('0x1d')][_0xb995('0x29')]({'where':_0x3060be[_0xb995('0x14')]?_0x3060be[_0xb995('0x14')][_0xb995('0x16')]||null:null,'attributes':_0x3060be[_0xb995('0x14')]?_0x3060be['options'][_0xb995('0x19')]||null:null,'limit':_0x3060be[_0xb995('0x14')]?_0x3060be[_0xb995('0x14')][_0xb995('0x23')]||null:null,'order':_0x3060be['options']?_0x3060be['options'][_0xb995('0x2a')]||null:null,'transaction':_0x446f35,'lock':_0x446f35[_0xb995('0x2b')][_0xb995('0x2c')],'include':[{'model':db[_0xb995('0x26')],'as':_0xb995('0x2d'),'attributes':_[_0xb995('0x2e')](_0x17c7b0)},{'model':db['User'],'as':_0xb995('0x2f'),'attributes':['id',_0xb995('0x30'),'voicePause']}]})['then'](function(_0x3d7198){var _0xcb9ab1=[];var _0x5707da=[];for(var _0x4ec928=0x0;_0x4ec928<_0x3d7198['length'];_0x4ec928+=0x1){var _0x43d6c5=_0x3d7198[_0x4ec928][_0xb995('0x31')];if(_0x43d6c5===null){_0xcb9ab1[_0xb995('0x32')](_0x3d7198[_0x4ec928][_0xb995('0x21')](_0x3060be[_0xb995('0x22')],{'transaction':_0x446f35}));}else if(!_0x5707da[_0xb995('0x33')](_0x43d6c5)){_0x5707da[_0xb995('0x32')](_0x43d6c5);_0xcb9ab1['push'](_0x3d7198[_0x4ec928][_0xb995('0x21')](_0x3060be[_0xb995('0x22')],{'transaction':_0x446f35}));}}return BPromise[_0xb995('0x34')](_0xcb9ab1);});})[_0xb995('0x9')](function(_0x44c6db){logger[_0xb995('0xa')](_0xb995('0x35'),_0x3060be);logger[_0xb995('0xc')](_0xb995('0x35'),_0x3060be,JSON[_0xb995('0xe')](_0x44c6db));_0x13f243(_0x44c6db);})['catch'](function(_0x2328e7){logger[_0xb995('0xf')]('GetContactDialer',_0x2328e7['message'],_0x3060be);_0x58d488(_0x295f67[_0xb995('0xf')](0x1f4,_0x2328e7[_0xb995('0x11')]));});});});};exports['MoveContactManagedDialer']=function(_0x19c465){var _0x2c0670=this;return new Promise(function(_0x3d510e,_0x1108b1){return db['sequelize'][_0xb995('0x28')](function(_0x2d827f){return db[_0xb995('0x36')][_0xb995('0x37')](_0x19c465[_0xb995('0x22')],{'raw':_0x19c465[_0xb995('0x14')]?_0x19c465['options'][_0xb995('0x15')]===undefined?!![]:![]:!![],'transaction':_0x2d827f})[_0xb995('0x9')](function(){return db['CmHopper']['destroy']({'where':_0x19c465[_0xb995('0x14')]?_0x19c465[_0xb995('0x14')][_0xb995('0x16')]||null:null,'transaction':_0x2d827f});});})[_0xb995('0x9')](function(_0x5bdf76){logger[_0xb995('0xa')](_0xb995('0x38'),_0x19c465);logger['debug'](_0xb995('0x38'),_0x19c465,JSON['stringify'](_0x5bdf76));_0x3d510e(_0x5bdf76);})['catch'](function(_0x5eef63){logger[_0xb995('0xf')](_0xb995('0x38'),_0x5eef63[_0xb995('0x11')],_0x19c465);_0x1108b1(_0x2c0670['error'](0x1f4,_0x5eef63['message']));});});};exports[_0xb995('0x39')]=function(_0x521e89){var _0x26b1d3=this;return new Promise(function(_0x570dc9,_0x6cf4cc){return db[_0xb995('0x1d')][_0xb995('0x29')]({'raw':_0x521e89[_0xb995('0x14')]?_0x521e89[_0xb995('0x14')][_0xb995('0x15')]===undefined?!![]:![]:!![],'where':_0x521e89['options']?_0x521e89['options'][_0xb995('0x16')]||null:null,'attributes':[[db[_0xb995('0x3a')]['fn']('COUNT',db[_0xb995('0x3a')]['fn']('IF',db[_0xb995('0x3a')][_0xb995('0x3b')]('`scheduledat`\x20>=\x20'+util[_0xb995('0x3c')](_0xb995('0x3d'),moment()[_0xb995('0x3c')](_0xb995('0x3e')))+'\x20,\x201,\x20null'))),_0xb995('0x3f')]]})[_0xb995('0x9')](function(_0x19fc6a){logger[_0xb995('0xa')](_0xb995('0x39'),_0x521e89);logger['debug'](_0xb995('0x39'),_0x521e89,JSON[_0xb995('0xe')](_0x19fc6a));_0x570dc9(_0x19fc6a);})[_0xb995('0x13')](function(_0x1be483){logger[_0xb995('0xf')](_0xb995('0x39'),_0x1be483['message'],_0x521e89);_0x6cf4cc(_0x26b1d3[_0xb995('0xf')](0x1f4,_0x1be483[_0xb995('0x11')]));});});};exports[_0xb995('0x40')]=function(_0x2da0d5){var _0x1dd9aa=this;return new Promise(function(_0x19ad60,_0x1eab07){return db['CmContact']['describe']()[_0xb995('0x9')](function(_0x3d809e){return db[_0xb995('0x3a')]['transaction'](function(_0x5696a3){return db[_0xb995('0x1d')][_0xb995('0x29')]({'where':_0x2da0d5[_0xb995('0x14')]?_0x2da0d5[_0xb995('0x14')][_0xb995('0x16')]||null:null,'attributes':_0x2da0d5[_0xb995('0x14')]?_0x2da0d5[_0xb995('0x14')]['attributes']||null:null,'limit':0x1,'order':_0x2da0d5[_0xb995('0x14')]?_0x2da0d5[_0xb995('0x14')]['order']||null:null,'group':db['CmHopper'][_0xb995('0x31')],'transaction':_0x5696a3,'lock':_0x5696a3['LOCK'][_0xb995('0x2c')],'include':_0x2da0d5['options']?_0x2da0d5['options'][_0xb995('0x17')]?_[_0xb995('0x1a')](_0x2da0d5[_0xb995('0x14')]['include'],function(_0x4cd232){return{'model':db[_0x4cd232['model']],'as':_0x4cd232['as'],'attributes':_0x4cd232['attributes'],'include':_0x4cd232[_0xb995('0x17')]?_['map'](_0x4cd232['include'],function(_0x216c67){return{'model':db[_0x216c67[_0xb995('0x18')]],'as':_0x216c67['as'],'attributes':_0x216c67[_0xb995('0x19')],'include':_0x216c67[_0xb995('0x17')]?_[_0xb995('0x1a')](_0x216c67[_0xb995('0x17')],function(_0x336834){return{'model':db[_0x336834['model']],'as':_0x336834['as'],'attributes':_0x336834['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x23d47b){var _0x1ae36e=[];for(var _0x536fbd=0x0;_0x536fbd<_0x23d47b['length'];_0x536fbd+=0x1){_0x1ae36e['push'](_0x23d47b[_0x536fbd][_0xb995('0x21')](_0x2da0d5[_0xb995('0x22')],{'transaction':_0x5696a3}));}return BPromise[_0xb995('0x34')](_0x1ae36e);});})[_0xb995('0x9')](function(_0x167569){logger['info'](_0xb995('0x40'),_0x2da0d5);logger[_0xb995('0xc')]('GetContactRecallMe',_0x2da0d5,JSON[_0xb995('0xe')](_0x167569));_0x19ad60(_0x167569);})[_0xb995('0x13')](function(_0x27cd24){logger['error']('GetContactRecallMe',_0x27cd24[_0xb995('0x11')],_0x2da0d5);_0x1eab07(_0x1dd9aa[_0xb995('0xf')](0x1f4,_0x27cd24[_0xb995('0x11')]));});});});};exports[_0xb995('0x41')]=function(_0x105ad9){var _0x23856c=this;return new Promise(function(_0x2ab39d,_0x56f51e){db[_0xb995('0x26')][_0xb995('0x27')]()[_0xb995('0x9')](function(_0x24d2d5){return db[_0xb995('0x1d')][_0xb995('0x29')]({'raw':_0x105ad9[_0xb995('0x14')]?_0x105ad9[_0xb995('0x14')]['raw']===undefined?!![]:![]:!![],'where':_0x105ad9[_0xb995('0x14')]?_0x105ad9[_0xb995('0x14')][_0xb995('0x16')]||null:null,'attributes':_0x105ad9['options']?_0x105ad9[_0xb995('0x14')][_0xb995('0x19')]||null:null,'limit':_0x105ad9[_0xb995('0x14')]?_0x105ad9['options']['limit']||null:null,'include':_0x105ad9['options']?_0x105ad9[_0xb995('0x14')][_0xb995('0x17')]?_['map'](_0x105ad9[_0xb995('0x14')][_0xb995('0x17')],function(_0x2039c7){return{'model':db[_0x2039c7[_0xb995('0x18')]],'as':_0x2039c7['as'],'attributes':_0x2039c7['as']===_0xb995('0x2d')?_[_0xb995('0x2e')](_0x24d2d5):_0x2039c7[_0xb995('0x19')],'include':_0x2039c7['include']?_[_0xb995('0x1a')](_0x2039c7[_0xb995('0x17')],function(_0x21ff8e){return{'model':db[_0x21ff8e[_0xb995('0x18')]],'as':_0x21ff8e['as'],'attributes':_0x21ff8e[_0xb995('0x19')],'include':_0x21ff8e[_0xb995('0x17')]?_[_0xb995('0x1a')](_0x21ff8e[_0xb995('0x17')],function(_0x5e9dfd){return{'model':db[_0x5e9dfd[_0xb995('0x18')]],'as':_0x5e9dfd['as'],'attributes':_0x5e9dfd['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0xac015f){logger[_0xb995('0xa')]('GetCmHopper',_0x105ad9);logger[_0xb995('0xc')](_0xb995('0x1b'),_0x105ad9,JSON['stringify'](_0xac015f));_0x2ab39d(_0xac015f);})['catch'](function(_0x5e2bf0){logger['error'](_0xb995('0x1b'),_0x5e2bf0[_0xb995('0x11')],_0x105ad9);_0x56f51e(_0x23856c[_0xb995('0xf')](0x1f4,_0x5e2bf0['message']));});});});};
\ No newline at end of file
+var _0xbe76=['catch','findAll','options','raw','where','attributes','limit','include','map','model','debug','GetCmHopper','find','ShowCmHopper','CreateCmHopper','CmHopper','create','body','UpdateCmHopper','update','DestroyCmHopper','GetContactDialer','CmContact','sequelize','transaction','order','UPDATE','Contact','keys','User','Agent','length','UserId','push','includes','all','MoveContactManagedDialer','CmHopperFinal','CountReScheduled','COUNT','`scheduledat`\x20>=\x20','format','\x22%s\x22','YYYY-MM-DD\x20HH:mm:ss','\x20,\x201,\x20null','GetContactRecallMe','describe','LOCK','GetCmHopperPreview','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','request','then','info','CmHopper,\x20%s,\x20%s','request\x20sent','CmHopper,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result'];(function(_0x46e5b7,_0x4c06a0){var _0x3ba240=function(_0x58d5c9){while(--_0x58d5c9){_0x46e5b7['push'](_0x46e5b7['shift']());}};_0x3ba240(++_0x4c06a0);}(_0xbe76,0x1e7));var _0x6be7=function(_0x9a7ea6,_0x1807a2){_0x9a7ea6=_0x9a7ea6-0x0;var _0x1c2040=_0xbe76[_0x9a7ea6];return _0x1c2040;};'use strict';var _=require(_0x6be7('0x0'));var util=require(_0x6be7('0x1'));var moment=require(_0x6be7('0x2'));var BPromise=require(_0x6be7('0x3'));var rs=require(_0x6be7('0x4'));var fs=require('fs');var Redis=require(_0x6be7('0x5'));var db=require(_0x6be7('0x6'))['db'];var utils=require(_0x6be7('0x7'));var logger=require(_0x6be7('0x8'))('rpc');var config=require(_0x6be7('0x9'));var jayson=require(_0x6be7('0xa'));var client=jayson[_0x6be7('0xb')][_0x6be7('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x566044,_0x5eb7bd,_0x1d1b91){return new BPromise(function(_0xf5233a,_0xdfba46){return client[_0x6be7('0xd')](_0x566044,_0x1d1b91)[_0x6be7('0xe')](function(_0x54748e){logger[_0x6be7('0xf')](_0x6be7('0x10'),_0x5eb7bd,_0x6be7('0x11'));logger['debug'](_0x6be7('0x12'),_0x5eb7bd,'request\x20sent',JSON[_0x6be7('0x13')](_0x54748e));if(_0x54748e[_0x6be7('0x14')]){if(_0x54748e[_0x6be7('0x14')][_0x6be7('0x15')]===0x1f4){logger['error'](_0x6be7('0x10'),_0x5eb7bd,_0x54748e['error'][_0x6be7('0x16')]);return _0xdfba46(_0x54748e['error']['message']);}logger[_0x6be7('0x14')]('CmHopper,\x20%s,\x20%s',_0x5eb7bd,_0x54748e[_0x6be7('0x14')][_0x6be7('0x16')]);return _0xf5233a(_0x54748e['error'][_0x6be7('0x16')]);}else{logger[_0x6be7('0xf')]('CmHopper,\x20%s,\x20%s',_0x5eb7bd,_0x6be7('0x11'));_0xf5233a(_0x54748e[_0x6be7('0x17')][_0x6be7('0x16')]);}})[_0x6be7('0x18')](function(_0x3a6d7e){logger['error'](_0x6be7('0x10'),_0x5eb7bd,_0x3a6d7e);_0xdfba46(_0x3a6d7e);});});}exports['GetCmHopper']=function(_0x3caf04){var _0x2f739d=this;return new Promise(function(_0x101148,_0x3fb9d9){return db['CmHopper'][_0x6be7('0x19')]({'raw':_0x3caf04[_0x6be7('0x1a')]?_0x3caf04[_0x6be7('0x1a')][_0x6be7('0x1b')]===undefined?!![]:![]:!![],'where':_0x3caf04['options']?_0x3caf04[_0x6be7('0x1a')][_0x6be7('0x1c')]||null:null,'attributes':_0x3caf04[_0x6be7('0x1a')]?_0x3caf04[_0x6be7('0x1a')][_0x6be7('0x1d')]||null:null,'limit':_0x3caf04[_0x6be7('0x1a')]?_0x3caf04[_0x6be7('0x1a')][_0x6be7('0x1e')]||null:null,'include':_0x3caf04[_0x6be7('0x1a')]?_0x3caf04['options'][_0x6be7('0x1f')]?_[_0x6be7('0x20')](_0x3caf04['options']['include'],function(_0x5be2a6){return{'model':db[_0x5be2a6[_0x6be7('0x21')]],'as':_0x5be2a6['as'],'attributes':_0x5be2a6[_0x6be7('0x1d')],'include':_0x5be2a6[_0x6be7('0x1f')]?_[_0x6be7('0x20')](_0x5be2a6['include'],function(_0x34affb){return{'model':db[_0x34affb[_0x6be7('0x21')]],'as':_0x34affb['as'],'attributes':_0x34affb[_0x6be7('0x1d')],'include':_0x34affb[_0x6be7('0x1f')]?_[_0x6be7('0x20')](_0x34affb['include'],function(_0x45bb2b){return{'model':db[_0x45bb2b[_0x6be7('0x21')]],'as':_0x45bb2b['as'],'attributes':_0x45bb2b[_0x6be7('0x1d')]};}):[]};}):[]};}):[]:[]})[_0x6be7('0xe')](function(_0x3a7a23){logger[_0x6be7('0xf')]('GetCmHopper',_0x3caf04);logger[_0x6be7('0x22')]('GetCmHopper',_0x3caf04,JSON['stringify'](_0x3a7a23));_0x101148(_0x3a7a23);})['catch'](function(_0x58d57f){logger['error'](_0x6be7('0x23'),_0x58d57f[_0x6be7('0x16')],_0x3caf04);_0x3fb9d9(_0x2f739d['error'](0x1f4,_0x58d57f[_0x6be7('0x16')]));});});};exports['ShowCmHopper']=function(_0x5042db){var _0x206de9=this;return new Promise(function(_0x3b2886,_0x295a69){return db['CmHopper'][_0x6be7('0x24')]({'raw':_0x5042db[_0x6be7('0x1a')]?_0x5042db[_0x6be7('0x1a')]['raw']===undefined?!![]:![]:!![],'where':_0x5042db[_0x6be7('0x1a')]?_0x5042db[_0x6be7('0x1a')][_0x6be7('0x1c')]||null:null,'attributes':_0x5042db[_0x6be7('0x1a')]?_0x5042db[_0x6be7('0x1a')][_0x6be7('0x1d')]||null:null,'include':_0x5042db[_0x6be7('0x1a')]?_0x5042db[_0x6be7('0x1a')]['include']?_[_0x6be7('0x20')](_0x5042db['options'][_0x6be7('0x1f')],function(_0x183a97){return{'model':db[_0x183a97[_0x6be7('0x21')]],'as':_0x183a97['as'],'attributes':_0x183a97['attributes'],'include':_0x183a97[_0x6be7('0x1f')]?_[_0x6be7('0x20')](_0x183a97[_0x6be7('0x1f')],function(_0x1533ad){return{'model':db[_0x1533ad[_0x6be7('0x21')]],'as':_0x1533ad['as'],'attributes':_0x1533ad['attributes'],'include':_0x1533ad[_0x6be7('0x1f')]?_[_0x6be7('0x20')](_0x1533ad[_0x6be7('0x1f')],function(_0x27a173){return{'model':db[_0x27a173[_0x6be7('0x21')]],'as':_0x27a173['as'],'attributes':_0x27a173['attributes']};}):[]};}):[]};}):[]:[]})[_0x6be7('0xe')](function(_0x916a7d){logger['info'](_0x6be7('0x25'),_0x5042db);logger[_0x6be7('0x22')]('ShowCmHopper',_0x5042db,JSON[_0x6be7('0x13')](_0x916a7d));_0x3b2886(_0x916a7d);})[_0x6be7('0x18')](function(_0x1477f5){logger[_0x6be7('0x14')]('ShowCmHopper',_0x1477f5[_0x6be7('0x16')],_0x5042db);_0x295a69(_0x206de9[_0x6be7('0x14')](0x1f4,_0x1477f5[_0x6be7('0x16')]));});});};exports[_0x6be7('0x26')]=function(_0xafaa07){var _0x3e7915=this;return new Promise(function(_0x3d8a89,_0x4a84d0){return db[_0x6be7('0x27')][_0x6be7('0x28')](_0xafaa07[_0x6be7('0x29')],{'raw':_0xafaa07[_0x6be7('0x1a')]?_0xafaa07['options'][_0x6be7('0x1b')]===undefined?!![]:![]:!![]})[_0x6be7('0xe')](function(_0xd17dea){logger['info']('CreateCmHopper',_0xafaa07);logger[_0x6be7('0x22')](_0x6be7('0x26'),_0xafaa07,JSON[_0x6be7('0x13')](_0xd17dea));_0x3d8a89(_0xd17dea);})['catch'](function(_0x53dc3a){logger[_0x6be7('0x14')]('CreateCmHopper',_0x53dc3a['message'],_0xafaa07);_0x4a84d0(_0x3e7915[_0x6be7('0x14')](0x1f4,_0x53dc3a[_0x6be7('0x16')]));});});};exports[_0x6be7('0x2a')]=function(_0x424106){var _0x1748bd=this;return new Promise(function(_0x2587c8,_0x1b6e05){return db[_0x6be7('0x27')][_0x6be7('0x2b')](_0x424106[_0x6be7('0x29')],{'raw':_0x424106[_0x6be7('0x1a')]?_0x424106['options'][_0x6be7('0x1b')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x424106[_0x6be7('0x1a')]?_0x424106[_0x6be7('0x1a')]['where']||null:null,'attributes':_0x424106[_0x6be7('0x1a')]?_0x424106[_0x6be7('0x1a')][_0x6be7('0x1d')]||null:null,'limit':_0x424106['options']?_0x424106['options'][_0x6be7('0x1e')]||null:null})[_0x6be7('0xe')](function(_0x586543){logger['info'](_0x6be7('0x2a'),_0x424106);logger[_0x6be7('0x22')]('UpdateCmHopper',_0x424106,JSON[_0x6be7('0x13')](_0x586543));_0x2587c8(_0x586543);})[_0x6be7('0x18')](function(_0x4a1e05){logger[_0x6be7('0x14')](_0x6be7('0x2a'),_0x4a1e05[_0x6be7('0x16')],_0x424106);_0x1b6e05(_0x1748bd[_0x6be7('0x14')](0x1f4,_0x4a1e05[_0x6be7('0x16')]));});});};exports[_0x6be7('0x2c')]=function(_0x15c9af){var _0x48a707=this;return new Promise(function(_0x5e0513,_0x2c061f){return db[_0x6be7('0x27')]['destroy']({'where':_0x15c9af[_0x6be7('0x1a')]?_0x15c9af['options'][_0x6be7('0x1c')]||null:null})[_0x6be7('0xe')](function(_0xf00f15){logger[_0x6be7('0xf')](_0x6be7('0x2c'),_0x15c9af);logger['debug'](_0x6be7('0x2c'),_0x15c9af,JSON[_0x6be7('0x13')](_0xf00f15));_0x5e0513(_0xf00f15);})['catch'](function(_0x33c51b){logger[_0x6be7('0x14')](_0x6be7('0x2c'),_0x33c51b['message'],_0x15c9af);_0x2c061f(_0x48a707[_0x6be7('0x14')](0x1f4,_0x33c51b[_0x6be7('0x16')]));});});};exports[_0x6be7('0x2d')]=function(_0x4a31e9){var _0x189ebb=this;return new Promise(function(_0x49897b,_0x524d7a){return db[_0x6be7('0x2e')]['describe']()[_0x6be7('0xe')](function(_0x22b89a){return db[_0x6be7('0x2f')][_0x6be7('0x30')](function(_0x49af84){return db[_0x6be7('0x27')][_0x6be7('0x19')]({'where':_0x4a31e9[_0x6be7('0x1a')]?_0x4a31e9['options'][_0x6be7('0x1c')]||null:null,'attributes':_0x4a31e9[_0x6be7('0x1a')]?_0x4a31e9['options'][_0x6be7('0x1d')]||null:null,'limit':_0x4a31e9['options']?_0x4a31e9[_0x6be7('0x1a')][_0x6be7('0x1e')]||null:null,'order':_0x4a31e9['options']?_0x4a31e9[_0x6be7('0x1a')][_0x6be7('0x31')]||null:null,'transaction':_0x49af84,'lock':_0x49af84['LOCK'][_0x6be7('0x32')],'include':[{'model':db['CmContact'],'as':_0x6be7('0x33'),'attributes':_[_0x6be7('0x34')](_0x22b89a)},{'model':db[_0x6be7('0x35')],'as':_0x6be7('0x36'),'attributes':['id','name','voicePause']}]})[_0x6be7('0xe')](function(_0x1467fc){var _0x198a64=[];var _0x148d77=[];for(var _0x13a09c=0x0;_0x13a09c<_0x1467fc[_0x6be7('0x37')];_0x13a09c+=0x1){var _0xb11d5=_0x1467fc[_0x13a09c][_0x6be7('0x38')];if(_0xb11d5===null){_0x198a64[_0x6be7('0x39')](_0x1467fc[_0x13a09c][_0x6be7('0x2b')](_0x4a31e9[_0x6be7('0x29')],{'transaction':_0x49af84}));}else if(!_0x148d77[_0x6be7('0x3a')](_0xb11d5)){_0x148d77[_0x6be7('0x39')](_0xb11d5);_0x198a64[_0x6be7('0x39')](_0x1467fc[_0x13a09c][_0x6be7('0x2b')](_0x4a31e9[_0x6be7('0x29')],{'transaction':_0x49af84}));}}return BPromise[_0x6be7('0x3b')](_0x198a64);});})[_0x6be7('0xe')](function(_0x4daf09){logger['info']('GetContactDialer',_0x4a31e9);logger[_0x6be7('0x22')](_0x6be7('0x2d'),_0x4a31e9,JSON[_0x6be7('0x13')](_0x4daf09));_0x49897b(_0x4daf09);})[_0x6be7('0x18')](function(_0x38b769){logger[_0x6be7('0x14')](_0x6be7('0x2d'),_0x38b769[_0x6be7('0x16')],_0x4a31e9);_0x524d7a(_0x189ebb[_0x6be7('0x14')](0x1f4,_0x38b769[_0x6be7('0x16')]));});});});};exports[_0x6be7('0x3c')]=function(_0x30ad7b){var _0x1499c0=this;return new Promise(function(_0x490c53,_0x5c6680){return db[_0x6be7('0x2f')][_0x6be7('0x30')](function(_0xc88613){return db[_0x6be7('0x3d')][_0x6be7('0x28')](_0x30ad7b['body'],{'raw':_0x30ad7b['options']?_0x30ad7b['options']['raw']===undefined?!![]:![]:!![],'transaction':_0xc88613})[_0x6be7('0xe')](function(){return db[_0x6be7('0x27')]['destroy']({'where':_0x30ad7b[_0x6be7('0x1a')]?_0x30ad7b[_0x6be7('0x1a')][_0x6be7('0x1c')]||null:null,'transaction':_0xc88613});});})[_0x6be7('0xe')](function(_0x28681c){logger[_0x6be7('0xf')](_0x6be7('0x3c'),_0x30ad7b);logger[_0x6be7('0x22')](_0x6be7('0x3c'),_0x30ad7b,JSON[_0x6be7('0x13')](_0x28681c));_0x490c53(_0x28681c);})[_0x6be7('0x18')](function(_0x559f6c){logger[_0x6be7('0x14')](_0x6be7('0x3c'),_0x559f6c[_0x6be7('0x16')],_0x30ad7b);_0x5c6680(_0x1499c0[_0x6be7('0x14')](0x1f4,_0x559f6c[_0x6be7('0x16')]));});});};exports[_0x6be7('0x3e')]=function(_0x6a3890){var _0x251dd5=this;return new Promise(function(_0x3c07dc,_0x51971b){return db[_0x6be7('0x27')][_0x6be7('0x19')]({'raw':_0x6a3890[_0x6be7('0x1a')]?_0x6a3890[_0x6be7('0x1a')][_0x6be7('0x1b')]===undefined?!![]:![]:!![],'where':_0x6a3890[_0x6be7('0x1a')]?_0x6a3890[_0x6be7('0x1a')]['where']||null:null,'attributes':[[db['sequelize']['fn'](_0x6be7('0x3f'),db[_0x6be7('0x2f')]['fn']('IF',db[_0x6be7('0x2f')]['literal'](_0x6be7('0x40')+util[_0x6be7('0x41')](_0x6be7('0x42'),moment()[_0x6be7('0x41')](_0x6be7('0x43')))+_0x6be7('0x44')))),'contactsRescheduled']]})[_0x6be7('0xe')](function(_0x4b37e4){logger['info']('CountReScheduled',_0x6a3890);logger[_0x6be7('0x22')]('CountReScheduled',_0x6a3890,JSON[_0x6be7('0x13')](_0x4b37e4));_0x3c07dc(_0x4b37e4);})['catch'](function(_0x492426){logger[_0x6be7('0x14')](_0x6be7('0x3e'),_0x492426[_0x6be7('0x16')],_0x6a3890);_0x51971b(_0x251dd5[_0x6be7('0x14')](0x1f4,_0x492426[_0x6be7('0x16')]));});});};exports[_0x6be7('0x45')]=function(_0x2dade1){var _0x1c93f0=this;return new Promise(function(_0x5b9cdd,_0x5cbf27){return db['CmContact'][_0x6be7('0x46')]()['then'](function(_0x4031a3){return db['sequelize'][_0x6be7('0x30')](function(_0x188dca){return db[_0x6be7('0x27')][_0x6be7('0x19')]({'where':_0x2dade1[_0x6be7('0x1a')]?_0x2dade1[_0x6be7('0x1a')][_0x6be7('0x1c')]||null:null,'attributes':_0x2dade1[_0x6be7('0x1a')]?_0x2dade1[_0x6be7('0x1a')][_0x6be7('0x1d')]||null:null,'limit':0x1,'order':_0x2dade1['options']?_0x2dade1[_0x6be7('0x1a')][_0x6be7('0x31')]||null:null,'group':db['CmHopper']['UserId'],'transaction':_0x188dca,'lock':_0x188dca[_0x6be7('0x47')][_0x6be7('0x32')],'include':_0x2dade1[_0x6be7('0x1a')]?_0x2dade1[_0x6be7('0x1a')][_0x6be7('0x1f')]?_[_0x6be7('0x20')](_0x2dade1[_0x6be7('0x1a')][_0x6be7('0x1f')],function(_0x3a333e){return{'model':db[_0x3a333e[_0x6be7('0x21')]],'as':_0x3a333e['as'],'attributes':_0x3a333e[_0x6be7('0x1d')],'include':_0x3a333e['include']?_[_0x6be7('0x20')](_0x3a333e['include'],function(_0x21f848){return{'model':db[_0x21f848['model']],'as':_0x21f848['as'],'attributes':_0x21f848[_0x6be7('0x1d')],'include':_0x21f848[_0x6be7('0x1f')]?_[_0x6be7('0x20')](_0x21f848[_0x6be7('0x1f')],function(_0x32edc1){return{'model':db[_0x32edc1[_0x6be7('0x21')]],'as':_0x32edc1['as'],'attributes':_0x32edc1['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x2e0da2){var _0x1ba04d=[];for(var _0x533db1=0x0;_0x533db1<_0x2e0da2[_0x6be7('0x37')];_0x533db1+=0x1){_0x1ba04d['push'](_0x2e0da2[_0x533db1][_0x6be7('0x2b')](_0x2dade1[_0x6be7('0x29')],{'transaction':_0x188dca}));}return BPromise[_0x6be7('0x3b')](_0x1ba04d);});})[_0x6be7('0xe')](function(_0x2b690c){logger[_0x6be7('0xf')]('GetContactRecallMe',_0x2dade1);logger[_0x6be7('0x22')](_0x6be7('0x45'),_0x2dade1,JSON[_0x6be7('0x13')](_0x2b690c));_0x5b9cdd(_0x2b690c);})[_0x6be7('0x18')](function(_0x356867){logger['error']('GetContactRecallMe',_0x356867[_0x6be7('0x16')],_0x2dade1);_0x5cbf27(_0x1c93f0[_0x6be7('0x14')](0x1f4,_0x356867[_0x6be7('0x16')]));});});});};exports[_0x6be7('0x48')]=function(_0x31312e){var _0x40b117=this;return new Promise(function(_0x20ca60,_0x4d79ff){db['CmContact']['describe']()[_0x6be7('0xe')](function(_0x12a4db){return db[_0x6be7('0x27')]['findAll']({'raw':_0x31312e[_0x6be7('0x1a')]?_0x31312e[_0x6be7('0x1a')][_0x6be7('0x1b')]===undefined?!![]:![]:!![],'where':_0x31312e['options']?_0x31312e[_0x6be7('0x1a')][_0x6be7('0x1c')]||null:null,'attributes':_0x31312e[_0x6be7('0x1a')]?_0x31312e[_0x6be7('0x1a')][_0x6be7('0x1d')]||null:null,'limit':_0x31312e[_0x6be7('0x1a')]?_0x31312e[_0x6be7('0x1a')][_0x6be7('0x1e')]||null:null,'include':_0x31312e[_0x6be7('0x1a')]?_0x31312e['options'][_0x6be7('0x1f')]?_[_0x6be7('0x20')](_0x31312e[_0x6be7('0x1a')]['include'],function(_0x552a9){return{'model':db[_0x552a9[_0x6be7('0x21')]],'as':_0x552a9['as'],'attributes':_0x552a9['as']===_0x6be7('0x33')?_['keys'](_0x12a4db):_0x552a9[_0x6be7('0x1d')],'include':_0x552a9[_0x6be7('0x1f')]?_[_0x6be7('0x20')](_0x552a9[_0x6be7('0x1f')],function(_0x223ef5){return{'model':db[_0x223ef5['model']],'as':_0x223ef5['as'],'attributes':_0x223ef5['attributes'],'include':_0x223ef5[_0x6be7('0x1f')]?_['map'](_0x223ef5[_0x6be7('0x1f')],function(_0x469fc7){return{'model':db[_0x469fc7[_0x6be7('0x21')]],'as':_0x469fc7['as'],'attributes':_0x469fc7[_0x6be7('0x1d')]};}):[]};}):[]};}):[]:[]})[_0x6be7('0xe')](function(_0x1e8dc4){logger[_0x6be7('0xf')]('GetCmHopper',_0x31312e);logger[_0x6be7('0x22')]('GetCmHopper',_0x31312e,JSON[_0x6be7('0x13')](_0x1e8dc4));_0x20ca60(_0x1e8dc4);})[_0x6be7('0x18')](function(_0xa228e9){logger[_0x6be7('0x14')](_0x6be7('0x23'),_0xa228e9[_0x6be7('0x16')],_0x31312e);_0x4d79ff(_0x40b117[_0x6be7('0x14')](0x1f4,_0xa228e9[_0x6be7('0x16')]));});});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf25e=['getOpenContacts','/:id','show','post','/preview','getPreview','put','update','delete','exports','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./cmHopper.controller','isAuthenticated','index','get','/describe','describe','/opencontacts'];(function(_0x25b0b8,_0x5e641e){var _0x1bd5e7=function(_0x318462){while(--_0x318462){_0x25b0b8['push'](_0x25b0b8['shift']());}};_0x1bd5e7(++_0x5e641e);}(_0xf25e,0x190));var _0xef25=function(_0x424f18,_0x5baf71){_0x424f18=_0x424f18-0x0;var _0x372dad=_0xf25e[_0x424f18];return _0x372dad;};'use strict';var multer=require('multer');var util=require(_0xef25('0x0'));var path=require(_0xef25('0x1'));var timeout=require(_0xef25('0x2'));var express=require(_0xef25('0x3'));var router=express[_0xef25('0x4')]();var fs_extra=require(_0xef25('0x5'));var auth=require(_0xef25('0x6'));var interaction=require(_0xef25('0x7'));var config=require(_0xef25('0x8'));var controller=require(_0xef25('0x9'));router['get']('/',auth[_0xef25('0xa')](),controller[_0xef25('0xb')]);router[_0xef25('0xc')](_0xef25('0xd'),auth['isAuthenticated'](),controller[_0xef25('0xe')]);router[_0xef25('0xc')](_0xef25('0xf'),auth[_0xef25('0xa')](),controller[_0xef25('0x10')]);router[_0xef25('0xc')](_0xef25('0x11'),auth['isAuthenticated'](),controller[_0xef25('0x12')]);router[_0xef25('0x13')]('/',auth[_0xef25('0xa')](),controller['create']);router[_0xef25('0x13')](_0xef25('0x14'),auth['isAuthenticated'](),controller[_0xef25('0x15')]);router[_0xef25('0x16')](_0xef25('0x11'),auth[_0xef25('0xa')](),controller[_0xef25('0x17')]);router[_0xef25('0x18')]('/:id',auth[_0xef25('0xa')](),controller['destroy']);module[_0xef25('0x19')]=router;
\ No newline at end of file
+var _0x3eae=['isAuthenticated','index','/describe','/opencontacts','getOpenContacts','/:id','show','create','post','update','delete','destroy','multer','util','path','connect-timeout','Router','fs-extra','get'];(function(_0x2c0b1d,_0x8c3063){var _0x56b7a3=function(_0x1e278b){while(--_0x1e278b){_0x2c0b1d['push'](_0x2c0b1d['shift']());}};_0x56b7a3(++_0x8c3063);}(_0x3eae,0x162));var _0xe3ea=function(_0x40220a,_0x22feb1){_0x40220a=_0x40220a-0x0;var _0x3903cc=_0x3eae[_0x40220a];return _0x3903cc;};'use strict';var multer=require(_0xe3ea('0x0'));var util=require(_0xe3ea('0x1'));var path=require(_0xe3ea('0x2'));var timeout=require(_0xe3ea('0x3'));var express=require('express');var router=express[_0xe3ea('0x4')]();var fs_extra=require(_0xe3ea('0x5'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require('./cmHopper.controller');router[_0xe3ea('0x6')]('/',auth[_0xe3ea('0x7')](),controller[_0xe3ea('0x8')]);router[_0xe3ea('0x6')](_0xe3ea('0x9'),auth[_0xe3ea('0x7')](),controller['describe']);router[_0xe3ea('0x6')](_0xe3ea('0xa'),auth[_0xe3ea('0x7')](),controller[_0xe3ea('0xb')]);router[_0xe3ea('0x6')](_0xe3ea('0xc'),auth[_0xe3ea('0x7')](),controller[_0xe3ea('0xd')]);router['post']('/',auth[_0xe3ea('0x7')](),controller[_0xe3ea('0xe')]);router[_0xe3ea('0xf')]('/preview',auth['isAuthenticated'](),controller['getPreview']);router['put'](_0xe3ea('0xc'),auth[_0xe3ea('0x7')](),controller[_0xe3ea('0x10')]);router[_0xe3ea('0x11')](_0xe3ea('0xc'),auth[_0xe3ea('0x7')](),controller[_0xe3ea('0x12')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6e0e=['moment','sequelize','exports','STRING','INTEGER','contactListQueue'];(function(_0x40263e,_0x10971c){var _0x5beb30=function(_0x2d1a76){while(--_0x2d1a76){_0x40263e['push'](_0x40263e['shift']());}};_0x5beb30(++_0x10971c);}(_0x6e0e,0x90));var _0xe6e0=function(_0x3de81c,_0x28c541){_0x3de81c=_0x3de81c-0x0;var _0x231571=_0x6e0e[_0x3de81c];return _0x231571;};'use strict';var moment=require(_0xe6e0('0x0'));var Sequelize=require(_0xe6e0('0x1'));module[_0xe6e0('0x2')]={'phone':{'type':Sequelize[_0xe6e0('0x3')],'allowNull':![]},'ContactId':{'type':Sequelize[_0xe6e0('0x4')],'unique':'contactListQueue'},'ListId':{'type':Sequelize[_0xe6e0('0x4')],'unique':_0xe6e0('0x5')},'VoiceQueueId':{'type':Sequelize[_0xe6e0('0x4')],'unique':_0xe6e0('0x5')}};
\ No newline at end of file
+var _0xd0a4=['moment','sequelize','exports','STRING','INTEGER','contactListQueue'];(function(_0x3b594b,_0x5835c3){var _0x1ea5f8=function(_0x191b3e){while(--_0x191b3e){_0x3b594b['push'](_0x3b594b['shift']());}};_0x1ea5f8(++_0x5835c3);}(_0xd0a4,0x13e));var _0x4d0a=function(_0x3bf83f,_0x181cac){_0x3bf83f=_0x3bf83f-0x0;var _0x22c4a9=_0xd0a4[_0x3bf83f];return _0x22c4a9;};'use strict';var moment=require(_0x4d0a('0x0'));var Sequelize=require(_0x4d0a('0x1'));module[_0x4d0a('0x2')]={'phone':{'type':Sequelize[_0x4d0a('0x3')],'allowNull':![]},'ContactId':{'type':Sequelize[_0x4d0a('0x4')],'unique':_0x4d0a('0x5')},'ListId':{'type':Sequelize[_0x4d0a('0x4')],'unique':'contactListQueue'},'VoiceQueueId':{'type':Sequelize[_0x4d0a('0x4')],'unique':_0x4d0a('0x5')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa5cb=['query','keys','filters','intersection','fields','attributes','length','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','include','findAll','rows','catch','show','params','includeAll','find','body','destroy','describe','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/environment','../../config/license/util','sendStatus','end','status','json','offset','limit','undefined','count','Content-Range','apply','save','update','then','name','send','index','map','CmHopperBlack','rawAttributes','fieldName','type','key','model'];(function(_0x16bd75,_0x1bfee5){var _0x5cfd29=function(_0x26e727){while(--_0x26e727){_0x16bd75['push'](_0x16bd75['shift']());}};_0x5cfd29(++_0x1bfee5);}(_0xa5cb,0xfc));var _0xba5c=function(_0x33a159,_0x284a95){_0x33a159=_0x33a159-0x0;var _0x2ff298=_0xa5cb[_0x33a159];return _0x2ff298;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xba5c('0x0'));var zipdir=require(_0xba5c('0x1'));var jsonpatch=require(_0xba5c('0x2'));var rp=require(_0xba5c('0x3'));var moment=require(_0xba5c('0x4'));var BPromise=require(_0xba5c('0x5'));var Mustache=require(_0xba5c('0x6'));var util=require(_0xba5c('0x7'));var path=require(_0xba5c('0x8'));var sox=require(_0xba5c('0x9'));var csv=require(_0xba5c('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xba5c('0xb'));var _=require(_0xba5c('0xc'));var squel=require(_0xba5c('0xd'));var crypto=require(_0xba5c('0xe'));var jsforce=require(_0xba5c('0xf'));var deskjs=require(_0xba5c('0x10'));var toCsv=require('to-csv');var querystring=require(_0xba5c('0x11'));var Papa=require('papaparse');var Redis=require(_0xba5c('0x12'));var authService=require(_0xba5c('0x13'));var qs=require('../../components/parsers/qs');var as=require(_0xba5c('0x14'));var hardwareService=require(_0xba5c('0x15'));var logger=require('../../config/logger')('api');var utils=require(_0xba5c('0x16'));var config=require(_0xba5c('0x17'));var licenseUtil=require(_0xba5c('0x18'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x197779,_0x2ef9cb){_0x2ef9cb=_0x2ef9cb||0xcc;return function(_0x834f80){if(_0x834f80){return _0x197779[_0xba5c('0x19')](_0x2ef9cb);}return _0x197779['status'](_0x2ef9cb)[_0xba5c('0x1a')]();};}function respondWithResult(_0x1851e2,_0x2e9ab2){_0x2e9ab2=_0x2e9ab2||0xc8;return function(_0x587d28){if(_0x587d28){return _0x1851e2[_0xba5c('0x1b')](_0x2e9ab2)[_0xba5c('0x1c')](_0x587d28);}};}function respondWithFilteredResult(_0x13342a,_0x55aea2){return function(_0x4fff0f){if(_0x4fff0f){var _0x2fea84=typeof _0x55aea2[_0xba5c('0x1d')]==='undefined'&&typeof _0x55aea2[_0xba5c('0x1e')]===_0xba5c('0x1f');var _0x3d6405=_0x4fff0f[_0xba5c('0x20')];var _0x2db40b=_0x2fea84?0x0:_0x55aea2[_0xba5c('0x1d')];var _0x2fee17=_0x2fea84?_0x4fff0f[_0xba5c('0x20')]:_0x55aea2[_0xba5c('0x1d')]+_0x55aea2['limit'];var _0x4ff92f;if(_0x2fee17>=_0x3d6405){_0x2fee17=_0x3d6405;_0x4ff92f=0xc8;}else{_0x4ff92f=0xce;}_0x13342a[_0xba5c('0x1b')](_0x4ff92f);return _0x13342a['set'](_0xba5c('0x21'),_0x2db40b+'-'+_0x2fee17+'/'+_0x3d6405)[_0xba5c('0x1c')](_0x4fff0f);}return null;};}function patchUpdates(_0x180dad){return function(_0x3b49a7){try{jsonpatch[_0xba5c('0x22')](_0x3b49a7,_0x180dad,!![]);}catch(_0x2418d6){return BPromise['reject'](_0x2418d6);}return _0x3b49a7[_0xba5c('0x23')]();};}function saveUpdates(_0xbdab6a,_0x49630a){return function(_0x21dd80){if(_0x21dd80){return _0x21dd80[_0xba5c('0x24')](_0xbdab6a)[_0xba5c('0x25')](function(_0x588226){return _0x588226;});}return null;};}function removeEntity(_0x586081,_0xb1fdc3){return function(_0x3ae737){if(_0x3ae737){return _0x3ae737['destroy']()[_0xba5c('0x25')](function(){_0x586081[_0xba5c('0x1b')](0xcc)[_0xba5c('0x1a')]();});}};}function handleEntityNotFound(_0x18debf,_0x5cb10e){return function(_0x208ed4){if(!_0x208ed4){_0x18debf[_0xba5c('0x19')](0x194);}return _0x208ed4;};}function handleError(_0xcac694,_0x5b1df7){_0x5b1df7=_0x5b1df7||0x1f4;return function(_0x1ee269){logger['error'](_0x1ee269['stack']);if(_0x1ee269[_0xba5c('0x26')]){delete _0x1ee269[_0xba5c('0x26')];}_0xcac694[_0xba5c('0x1b')](_0x5b1df7)[_0xba5c('0x27')](_0x1ee269);};}exports[_0xba5c('0x28')]=function(_0x8d39fe,_0x13be37){var _0x291430={},_0x11d2db={},_0x3c9a1e={'count':0x0,'rows':[]};var _0x1f6a51=_[_0xba5c('0x29')](db[_0xba5c('0x2a')][_0xba5c('0x2b')],function(_0x149d98){return{'name':_0x149d98[_0xba5c('0x2c')],'type':_0x149d98[_0xba5c('0x2d')][_0xba5c('0x2e')]};});_0x11d2db[_0xba5c('0x2f')]=_[_0xba5c('0x29')](_0x1f6a51,'name');_0x11d2db[_0xba5c('0x30')]=_[_0xba5c('0x31')](_0x8d39fe[_0xba5c('0x30')]);_0x11d2db[_0xba5c('0x32')]=_[_0xba5c('0x33')](_0x11d2db['model'],_0x11d2db[_0xba5c('0x30')]);_0x291430['attributes']=_[_0xba5c('0x33')](_0x11d2db['model'],qs[_0xba5c('0x34')](_0x8d39fe[_0xba5c('0x30')]['fields']));_0x291430[_0xba5c('0x35')]=_0x291430['attributes'][_0xba5c('0x36')]?_0x291430[_0xba5c('0x35')]:_0x11d2db['model'];if(!_0x8d39fe[_0xba5c('0x30')]['hasOwnProperty'](_0xba5c('0x37'))){_0x291430[_0xba5c('0x1e')]=qs[_0xba5c('0x1e')](_0x8d39fe[_0xba5c('0x30')][_0xba5c('0x1e')]);_0x291430['offset']=qs['offset'](_0x8d39fe[_0xba5c('0x30')][_0xba5c('0x1d')]);}_0x291430[_0xba5c('0x38')]=qs['sort'](_0x8d39fe['query'][_0xba5c('0x39')]);_0x291430[_0xba5c('0x3a')]=qs[_0xba5c('0x32')](_[_0xba5c('0x3b')](_0x8d39fe['query'],_0x11d2db[_0xba5c('0x32')]),_0x1f6a51);if(_0x8d39fe['query'][_0xba5c('0x3c')]){_0x291430[_0xba5c('0x3a')]=_[_0xba5c('0x3d')](_0x291430[_0xba5c('0x3a')],{'$or':_[_0xba5c('0x29')](_0x1f6a51,function(_0x39c3c4){if(_0x39c3c4[_0xba5c('0x2d')]!==_0xba5c('0x3e')){var _0x2eb4a0={};_0x2eb4a0[_0x39c3c4['name']]={'$like':'%'+_0x8d39fe[_0xba5c('0x30')][_0xba5c('0x3c')]+'%'};return _0x2eb4a0;}})});}_0x291430=_[_0xba5c('0x3d')]({},_0x291430,_0x8d39fe[_0xba5c('0x3f')]);var _0x3131ec={'where':_0x291430[_0xba5c('0x3a')]};return db[_0xba5c('0x2a')][_0xba5c('0x20')](_0x3131ec)[_0xba5c('0x25')](function(_0x5f18f0){_0x3c9a1e[_0xba5c('0x20')]=_0x5f18f0;if(_0x8d39fe['query']['includeAll']){_0x291430[_0xba5c('0x40')]=[{'all':!![]}];}return db[_0xba5c('0x2a')][_0xba5c('0x41')](_0x291430);})[_0xba5c('0x25')](function(_0x34d5c3){_0x3c9a1e[_0xba5c('0x42')]=_0x34d5c3;return _0x3c9a1e;})['then'](respondWithFilteredResult(_0x13be37,_0x291430))[_0xba5c('0x43')](handleError(_0x13be37,null));};exports[_0xba5c('0x44')]=function(_0xc40ab8,_0x5a04d8){var _0x407df7={'raw':!![],'where':{'id':_0xc40ab8[_0xba5c('0x45')]['id']}},_0x2084a5={};_0x2084a5[_0xba5c('0x2f')]=_[_0xba5c('0x31')](db['CmHopperBlack']['rawAttributes']);_0x2084a5[_0xba5c('0x30')]=_[_0xba5c('0x31')](_0xc40ab8['query']);_0x2084a5['filters']=_['intersection'](_0x2084a5[_0xba5c('0x2f')],_0x2084a5[_0xba5c('0x30')]);_0x407df7[_0xba5c('0x35')]=_['intersection'](_0x2084a5[_0xba5c('0x2f')],qs['fields'](_0xc40ab8[_0xba5c('0x30')][_0xba5c('0x34')]));_0x407df7[_0xba5c('0x35')]=_0x407df7[_0xba5c('0x35')][_0xba5c('0x36')]?_0x407df7[_0xba5c('0x35')]:_0x2084a5[_0xba5c('0x2f')];if(_0xc40ab8[_0xba5c('0x30')][_0xba5c('0x46')]){_0x407df7['include']=[{'all':!![]}];}_0x407df7=_[_0xba5c('0x3d')]({},_0x407df7,_0xc40ab8['options']);return db['CmHopperBlack'][_0xba5c('0x47')](_0x407df7)[_0xba5c('0x25')](handleEntityNotFound(_0x5a04d8,null))[_0xba5c('0x25')](respondWithResult(_0x5a04d8,null))[_0xba5c('0x43')](handleError(_0x5a04d8,null));};exports['update']=function(_0x40a464,_0x2d1e5c){if(_0x40a464[_0xba5c('0x48')]['id']){delete _0x40a464['body']['id'];}return db[_0xba5c('0x2a')][_0xba5c('0x47')]({'where':{'id':_0x40a464[_0xba5c('0x45')]['id']}})[_0xba5c('0x25')](handleEntityNotFound(_0x2d1e5c,null))['then'](saveUpdates(_0x40a464[_0xba5c('0x48')],null))[_0xba5c('0x25')](respondWithResult(_0x2d1e5c,null))['catch'](handleError(_0x2d1e5c,null));};exports[_0xba5c('0x49')]=function(_0x37ef53,_0x7383b9){return db[_0xba5c('0x2a')]['find']({'where':{'id':_0x37ef53['params']['id']}})[_0xba5c('0x25')](handleEntityNotFound(_0x7383b9,null))[_0xba5c('0x25')](removeEntity(_0x7383b9,null))['catch'](handleError(_0x7383b9,null));};exports['describe']=function(_0x4f70fb,_0x2257bf){return db['CmHopperBlack'][_0xba5c('0x4a')]()['then'](respondWithResult(_0x2257bf,null))['catch'](handleError(_0x2257bf,null));};
\ No newline at end of file
+var _0x5848=['describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','offset','undefined','limit','count','json','apply','reject','save','update','then','destroy','error','stack','send','index','rawAttributes','fieldName','key','model','map','name','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','merge','type','VIRTUAL','filter','options','CmHopperBlack','includeAll','catch','params','body','find'];(function(_0x45bde5,_0x53a679){var _0x59a384=function(_0x557840){while(--_0x557840){_0x45bde5['push'](_0x45bde5['shift']());}};_0x59a384(++_0x53a679);}(_0x5848,0x17d));var _0x8584=function(_0x554a49,_0x4992c8){_0x554a49=_0x554a49-0x0;var _0x15c9cd=_0x5848[_0x554a49];return _0x15c9cd;};'use strict';var emlformat=require(_0x8584('0x0'));var rimraf=require(_0x8584('0x1'));var zipdir=require(_0x8584('0x2'));var jsonpatch=require(_0x8584('0x3'));var rp=require(_0x8584('0x4'));var moment=require(_0x8584('0x5'));var BPromise=require(_0x8584('0x6'));var Mustache=require('mustache');var util=require(_0x8584('0x7'));var path=require(_0x8584('0x8'));var sox=require(_0x8584('0x9'));var csv=require(_0x8584('0xa'));var ejs=require(_0x8584('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x8584('0xc'));var squel=require(_0x8584('0xd'));var crypto=require(_0x8584('0xe'));var jsforce=require(_0x8584('0xf'));var deskjs=require(_0x8584('0x10'));var toCsv=require(_0x8584('0xa'));var querystring=require('querystring');var Papa=require(_0x8584('0x11'));var Redis=require(_0x8584('0x12'));var authService=require(_0x8584('0x13'));var qs=require(_0x8584('0x14'));var as=require(_0x8584('0x15'));var hardwareService=require(_0x8584('0x16'));var logger=require(_0x8584('0x17'))(_0x8584('0x18'));var utils=require('../../config/utils');var config=require(_0x8584('0x19'));var licenseUtil=require(_0x8584('0x1a'));var db=require(_0x8584('0x1b'))['db'];function respondWithStatusCode(_0x3bf9b3,_0x1b737a){_0x1b737a=_0x1b737a||0xcc;return function(_0x45c7a4){if(_0x45c7a4){return _0x3bf9b3[_0x8584('0x1c')](_0x1b737a);}return _0x3bf9b3['status'](_0x1b737a)[_0x8584('0x1d')]();};}function respondWithResult(_0x4f34f4,_0x1da349){_0x1da349=_0x1da349||0xc8;return function(_0x77e78){if(_0x77e78){return _0x4f34f4[_0x8584('0x1e')](_0x1da349)['json'](_0x77e78);}};}function respondWithFilteredResult(_0x27b67c,_0x3a7297){return function(_0x5cf504){if(_0x5cf504){var _0x53353d=typeof _0x3a7297[_0x8584('0x1f')]===_0x8584('0x20')&&typeof _0x3a7297[_0x8584('0x21')]===_0x8584('0x20');var _0x42c821=_0x5cf504['count'];var _0x1970ed=_0x53353d?0x0:_0x3a7297[_0x8584('0x1f')];var _0x3c5d00=_0x53353d?_0x5cf504[_0x8584('0x22')]:_0x3a7297['offset']+_0x3a7297[_0x8584('0x21')];var _0x181d96;if(_0x3c5d00>=_0x42c821){_0x3c5d00=_0x42c821;_0x181d96=0xc8;}else{_0x181d96=0xce;}_0x27b67c[_0x8584('0x1e')](_0x181d96);return _0x27b67c['set']('Content-Range',_0x1970ed+'-'+_0x3c5d00+'/'+_0x42c821)[_0x8584('0x23')](_0x5cf504);}return null;};}function patchUpdates(_0x4ebc7f){return function(_0x3e1cee){try{jsonpatch[_0x8584('0x24')](_0x3e1cee,_0x4ebc7f,!![]);}catch(_0x57ed06){return BPromise[_0x8584('0x25')](_0x57ed06);}return _0x3e1cee[_0x8584('0x26')]();};}function saveUpdates(_0x16ee36,_0x3b6f6d){return function(_0x1557d0){if(_0x1557d0){return _0x1557d0[_0x8584('0x27')](_0x16ee36)[_0x8584('0x28')](function(_0x30ff66){return _0x30ff66;});}return null;};}function removeEntity(_0x4e9f32,_0x22f4cb){return function(_0x5626df){if(_0x5626df){return _0x5626df[_0x8584('0x29')]()[_0x8584('0x28')](function(){_0x4e9f32[_0x8584('0x1e')](0xcc)[_0x8584('0x1d')]();});}};}function handleEntityNotFound(_0x5cc468,_0x3e8e84){return function(_0x10c00b){if(!_0x10c00b){_0x5cc468[_0x8584('0x1c')](0x194);}return _0x10c00b;};}function handleError(_0x491cf6,_0x16c29d){_0x16c29d=_0x16c29d||0x1f4;return function(_0x101b49){logger[_0x8584('0x2a')](_0x101b49[_0x8584('0x2b')]);if(_0x101b49['name']){delete _0x101b49['name'];}_0x491cf6[_0x8584('0x1e')](_0x16c29d)[_0x8584('0x2c')](_0x101b49);};}exports[_0x8584('0x2d')]=function(_0x1e4533,_0x3c769f){var _0x4e9cdb={},_0x1c9c9d={},_0x3636d5={'count':0x0,'rows':[]};var _0x30fe22=_['map'](db['CmHopperBlack'][_0x8584('0x2e')],function(_0xa39525){return{'name':_0xa39525[_0x8584('0x2f')],'type':_0xa39525['type'][_0x8584('0x30')]};});_0x1c9c9d[_0x8584('0x31')]=_[_0x8584('0x32')](_0x30fe22,_0x8584('0x33'));_0x1c9c9d[_0x8584('0x34')]=_[_0x8584('0x35')](_0x1e4533['query']);_0x1c9c9d[_0x8584('0x36')]=_[_0x8584('0x37')](_0x1c9c9d['model'],_0x1c9c9d[_0x8584('0x34')]);_0x4e9cdb[_0x8584('0x38')]=_[_0x8584('0x37')](_0x1c9c9d[_0x8584('0x31')],qs[_0x8584('0x39')](_0x1e4533['query'][_0x8584('0x39')]));_0x4e9cdb[_0x8584('0x38')]=_0x4e9cdb[_0x8584('0x38')][_0x8584('0x3a')]?_0x4e9cdb['attributes']:_0x1c9c9d[_0x8584('0x31')];if(!_0x1e4533[_0x8584('0x34')][_0x8584('0x3b')](_0x8584('0x3c'))){_0x4e9cdb[_0x8584('0x21')]=qs[_0x8584('0x21')](_0x1e4533[_0x8584('0x34')]['limit']);_0x4e9cdb['offset']=qs['offset'](_0x1e4533[_0x8584('0x34')][_0x8584('0x1f')]);}_0x4e9cdb['order']=qs[_0x8584('0x3d')](_0x1e4533[_0x8584('0x34')][_0x8584('0x3d')]);_0x4e9cdb[_0x8584('0x3e')]=qs[_0x8584('0x36')](_[_0x8584('0x3f')](_0x1e4533[_0x8584('0x34')],_0x1c9c9d['filters']),_0x30fe22);if(_0x1e4533[_0x8584('0x34')]['filter']){_0x4e9cdb[_0x8584('0x3e')]=_[_0x8584('0x40')](_0x4e9cdb[_0x8584('0x3e')],{'$or':_[_0x8584('0x32')](_0x30fe22,function(_0x4db1eb){if(_0x4db1eb[_0x8584('0x41')]!==_0x8584('0x42')){var _0x43550e={};_0x43550e[_0x4db1eb[_0x8584('0x33')]]={'$like':'%'+_0x1e4533[_0x8584('0x34')][_0x8584('0x43')]+'%'};return _0x43550e;}})});}_0x4e9cdb=_[_0x8584('0x40')]({},_0x4e9cdb,_0x1e4533[_0x8584('0x44')]);var _0x30af7c={'where':_0x4e9cdb['where']};return db[_0x8584('0x45')][_0x8584('0x22')](_0x30af7c)[_0x8584('0x28')](function(_0x5be197){_0x3636d5[_0x8584('0x22')]=_0x5be197;if(_0x1e4533['query'][_0x8584('0x46')]){_0x4e9cdb['include']=[{'all':!![]}];}return db[_0x8584('0x45')]['findAll'](_0x4e9cdb);})[_0x8584('0x28')](function(_0x1ddf09){_0x3636d5['rows']=_0x1ddf09;return _0x3636d5;})[_0x8584('0x28')](respondWithFilteredResult(_0x3c769f,_0x4e9cdb))[_0x8584('0x47')](handleError(_0x3c769f,null));};exports['show']=function(_0x571f72,_0x9056ca){var _0x192821={'raw':!![],'where':{'id':_0x571f72[_0x8584('0x48')]['id']}},_0x1d81e8={};_0x1d81e8[_0x8584('0x31')]=_[_0x8584('0x35')](db['CmHopperBlack'][_0x8584('0x2e')]);_0x1d81e8[_0x8584('0x34')]=_[_0x8584('0x35')](_0x571f72['query']);_0x1d81e8[_0x8584('0x36')]=_['intersection'](_0x1d81e8['model'],_0x1d81e8[_0x8584('0x34')]);_0x192821['attributes']=_[_0x8584('0x37')](_0x1d81e8['model'],qs[_0x8584('0x39')](_0x571f72[_0x8584('0x34')]['fields']));_0x192821[_0x8584('0x38')]=_0x192821[_0x8584('0x38')][_0x8584('0x3a')]?_0x192821[_0x8584('0x38')]:_0x1d81e8['model'];if(_0x571f72[_0x8584('0x34')][_0x8584('0x46')]){_0x192821['include']=[{'all':!![]}];}_0x192821=_[_0x8584('0x40')]({},_0x192821,_0x571f72[_0x8584('0x44')]);return db[_0x8584('0x45')]['find'](_0x192821)['then'](handleEntityNotFound(_0x9056ca,null))[_0x8584('0x28')](respondWithResult(_0x9056ca,null))['catch'](handleError(_0x9056ca,null));};exports[_0x8584('0x27')]=function(_0x629375,_0x3869cd){if(_0x629375[_0x8584('0x49')]['id']){delete _0x629375[_0x8584('0x49')]['id'];}return db[_0x8584('0x45')][_0x8584('0x4a')]({'where':{'id':_0x629375[_0x8584('0x48')]['id']}})[_0x8584('0x28')](handleEntityNotFound(_0x3869cd,null))[_0x8584('0x28')](saveUpdates(_0x629375['body'],null))[_0x8584('0x28')](respondWithResult(_0x3869cd,null))['catch'](handleError(_0x3869cd,null));};exports[_0x8584('0x29')]=function(_0x4e8b06,_0x1756bf){return db[_0x8584('0x45')]['find']({'where':{'id':_0x4e8b06[_0x8584('0x48')]['id']}})['then'](handleEntityNotFound(_0x1756bf,null))[_0x8584('0x28')](removeEntity(_0x1756bf,null))[_0x8584('0x47')](handleError(_0x1756bf,null));};exports[_0x8584('0x4b')]=function(_0x5d9af9,_0x4c47d1){return db['CmHopperBlack'][_0x8584('0x4b')]()['then'](respondWithResult(_0x4c47d1,null))[_0x8584('0x47')](handleError(_0x4c47d1,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc414=['../../config/logger','api','moment','path','rimraf','../../config/environment','./cmHopperBlack.attributes','exports','define','CmHopperBlack','cm_hopper_black','util'];(function(_0x294051,_0x11b0ee){var _0x18bf95=function(_0x275f53){while(--_0x275f53){_0x294051['push'](_0x294051['shift']());}};_0x18bf95(++_0x11b0ee);}(_0xc414,0x1d3));var _0x4c41=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xc414[_0x3dd15e];return _0x231fd0;};'use strict';var _=require('lodash');var util=require(_0x4c41('0x0'));var logger=require(_0x4c41('0x1'))(_0x4c41('0x2'));var moment=require(_0x4c41('0x3'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0x4c41('0x4'));var rimraf=require(_0x4c41('0x5'));var config=require(_0x4c41('0x6'));var attributes=require(_0x4c41('0x7'));module[_0x4c41('0x8')]=function(_0x5af163,_0x231e4b){return _0x5af163[_0x4c41('0x9')](_0x4c41('0xa'),attributes,{'tableName':_0x4c41('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xb5c3=['lodash','api','bluebird','request-promise','rimraf','../../config/environment','./cmHopperBlack.attributes','define','CmHopperBlack'];(function(_0x18e7e5,_0x5ad463){var _0x30c78a=function(_0x473e33){while(--_0x473e33){_0x18e7e5['push'](_0x18e7e5['shift']());}};_0x30c78a(++_0x5ad463);}(_0xb5c3,0x18c));var _0x3b5c=function(_0x4183e4,_0x374014){_0x4183e4=_0x4183e4-0x0;var _0xf9dc02=_0xb5c3[_0x4183e4];return _0xf9dc02;};'use strict';var _=require(_0x3b5c('0x0'));var util=require('util');var logger=require('../../config/logger')(_0x3b5c('0x1'));var moment=require('moment');var BPromise=require(_0x3b5c('0x2'));var rp=require(_0x3b5c('0x3'));var fs=require('fs');var path=require('path');var rimraf=require(_0x3b5c('0x4'));var config=require(_0x3b5c('0x5'));var attributes=require(_0x3b5c('0x6'));module['exports']=function(_0x120fc7,_0x38e691){return _0x120fc7[_0x3b5c('0x7')](_0x3b5c('0x8'),attributes,{'tableName':'cm_hopper_black','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x054e=['error','code','CmHopperBlack,\x20%s,\x20%s','message','info','catch','CmHopperBlack','findAll','options','raw','where','attributes','limit','include','model','map','GetCmHopperBlack','stringify','body','UpdateCmHopperBlack','DestroyCmHopperBlack','destroy','debug','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','then','CmHopperBlack,\x20%s,\x20%s,\x20%s','request\x20sent'];(function(_0xf244e0,_0x20556c){var _0xe94095=function(_0x409d0a){while(--_0x409d0a){_0xf244e0['push'](_0xf244e0['shift']());}};_0xe94095(++_0x20556c);}(_0x054e,0x19d));var _0xe054=function(_0x2b49bc,_0x47b636){_0x2b49bc=_0x2b49bc-0x0;var _0x43cc65=_0x054e[_0x2b49bc];return _0x43cc65;};'use strict';var _=require(_0xe054('0x0'));var util=require(_0xe054('0x1'));var moment=require(_0xe054('0x2'));var BPromise=require(_0xe054('0x3'));var rs=require(_0xe054('0x4'));var fs=require('fs');var Redis=require(_0xe054('0x5'));var db=require(_0xe054('0x6'))['db'];var utils=require(_0xe054('0x7'));var logger=require(_0xe054('0x8'))(_0xe054('0x9'));var config=require(_0xe054('0xa'));var jayson=require('jayson/promise');var client=jayson[_0xe054('0xb')][_0xe054('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x411e45,_0x189988,_0xc4175c){return new BPromise(function(_0x58421c,_0x411e40){return client['request'](_0x411e45,_0xc4175c)[_0xe054('0xd')](function(_0x1581f6){logger['info']('CmHopperBlack,\x20%s,\x20%s',_0x189988,'request\x20sent');logger['debug'](_0xe054('0xe'),_0x189988,_0xe054('0xf'),JSON['stringify'](_0x1581f6));if(_0x1581f6[_0xe054('0x10')]){if(_0x1581f6[_0xe054('0x10')][_0xe054('0x11')]===0x1f4){logger[_0xe054('0x10')](_0xe054('0x12'),_0x189988,_0x1581f6[_0xe054('0x10')][_0xe054('0x13')]);return _0x411e40(_0x1581f6['error'][_0xe054('0x13')]);}logger['error'](_0xe054('0x12'),_0x189988,_0x1581f6[_0xe054('0x10')]['message']);return _0x58421c(_0x1581f6[_0xe054('0x10')][_0xe054('0x13')]);}else{logger[_0xe054('0x14')]('CmHopperBlack,\x20%s,\x20%s',_0x189988,_0xe054('0xf'));_0x58421c(_0x1581f6['result'][_0xe054('0x13')]);}})[_0xe054('0x15')](function(_0x37b3ec){logger[_0xe054('0x10')]('CmHopperBlack,\x20%s,\x20%s',_0x189988,_0x37b3ec);_0x411e40(_0x37b3ec);});});}exports['GetCmHopperBlack']=function(_0x16fab6){var _0x437923=this;return new Promise(function(_0x2549b8,_0x564e71){return db[_0xe054('0x16')][_0xe054('0x17')]({'raw':_0x16fab6['options']?_0x16fab6[_0xe054('0x18')][_0xe054('0x19')]===undefined?!![]:![]:!![],'where':_0x16fab6[_0xe054('0x18')]?_0x16fab6['options'][_0xe054('0x1a')]||null:null,'attributes':_0x16fab6[_0xe054('0x18')]?_0x16fab6[_0xe054('0x18')][_0xe054('0x1b')]||null:null,'limit':_0x16fab6[_0xe054('0x18')]?_0x16fab6['options'][_0xe054('0x1c')]||null:null,'include':_0x16fab6[_0xe054('0x18')]?_0x16fab6[_0xe054('0x18')][_0xe054('0x1d')]?_['map'](_0x16fab6['options'][_0xe054('0x1d')],function(_0x49b126){return{'model':db[_0x49b126[_0xe054('0x1e')]],'as':_0x49b126['as'],'attributes':_0x49b126['attributes'],'include':_0x49b126[_0xe054('0x1d')]?_[_0xe054('0x1f')](_0x49b126[_0xe054('0x1d')],function(_0x799dbc){return{'model':db[_0x799dbc['model']],'as':_0x799dbc['as'],'attributes':_0x799dbc['attributes'],'include':_0x799dbc[_0xe054('0x1d')]?_[_0xe054('0x1f')](_0x799dbc['include'],function(_0x46010){return{'model':db[_0x46010[_0xe054('0x1e')]],'as':_0x46010['as'],'attributes':_0x46010[_0xe054('0x1b')]};}):[]};}):[]};}):[]:[]})[_0xe054('0xd')](function(_0x25cbd9){logger['info'](_0xe054('0x20'),_0x16fab6);logger['debug'](_0xe054('0x20'),_0x16fab6,JSON[_0xe054('0x21')](_0x25cbd9));_0x2549b8(_0x25cbd9);})[_0xe054('0x15')](function(_0x21dc59){logger[_0xe054('0x10')]('GetCmHopperBlack',_0x21dc59[_0xe054('0x13')],_0x16fab6);_0x564e71(_0x437923[_0xe054('0x10')](0x1f4,_0x21dc59[_0xe054('0x13')]));});});};exports['UpdateCmHopperBlack']=function(_0x5503de){var _0x2dcbcc=this;return new Promise(function(_0x5a93bb,_0x405226){return db[_0xe054('0x16')]['update'](_0x5503de[_0xe054('0x22')],{'raw':_0x5503de[_0xe054('0x18')]?_0x5503de[_0xe054('0x18')][_0xe054('0x19')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x5503de[_0xe054('0x18')]?_0x5503de[_0xe054('0x18')][_0xe054('0x1a')]||null:null,'attributes':_0x5503de['options']?_0x5503de[_0xe054('0x18')]['attributes']||null:null,'limit':_0x5503de['options']?_0x5503de[_0xe054('0x18')]['limit']||null:null})[_0xe054('0xd')](function(_0x5e8c01){logger[_0xe054('0x14')]('UpdateCmHopperBlack',_0x5503de);logger['debug'](_0xe054('0x23'),_0x5503de,JSON[_0xe054('0x21')](_0x5e8c01));_0x5a93bb(_0x5e8c01);})[_0xe054('0x15')](function(_0xfa07b5){logger['error'](_0xe054('0x23'),_0xfa07b5[_0xe054('0x13')],_0x5503de);_0x405226(_0x2dcbcc[_0xe054('0x10')](0x1f4,_0xfa07b5['message']));});});};exports[_0xe054('0x24')]=function(_0x2bcfe4){var _0x4299d3=this;return new Promise(function(_0x3ae49d,_0x84b32e){return db['CmHopperBlack'][_0xe054('0x25')]({'where':_0x2bcfe4[_0xe054('0x18')]?_0x2bcfe4[_0xe054('0x18')]['where']||null:null})[_0xe054('0xd')](function(_0x10cea4){logger['info'](_0xe054('0x24'),_0x2bcfe4);logger[_0xe054('0x26')](_0xe054('0x24'),_0x2bcfe4,JSON[_0xe054('0x21')](_0x10cea4));_0x3ae49d(_0x10cea4);})['catch'](function(_0x51a825){logger[_0xe054('0x10')](_0xe054('0x24'),_0x51a825[_0xe054('0x13')],_0x2bcfe4);_0x84b32e(_0x4299d3[_0xe054('0x10')](0x1f4,_0x51a825[_0xe054('0x13')]));});});};
\ No newline at end of file
+var _0xf824=['http','then','request\x20sent','stringify','error','CmHopperBlack,\x20%s,\x20%s','message','info','result','catch','GetCmHopperBlack','CmHopperBlack','options','raw','where','attributes','include','model','debug','UpdateCmHopperBlack','update','body','limit','DestroyCmHopperBlack','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise'];(function(_0x5be019,_0x22c181){var _0x2a2c3c=function(_0x3df125){while(--_0x3df125){_0x5be019['push'](_0x5be019['shift']());}};_0x2a2c3c(++_0x22c181);}(_0xf824,0x16c));var _0x4f82=function(_0x5a91d9,_0x47cedb){_0x5a91d9=_0x5a91d9-0x0;var _0x5275e2=_0xf824[_0x5a91d9];return _0x5275e2;};'use strict';var _=require(_0x4f82('0x0'));var util=require(_0x4f82('0x1'));var moment=require(_0x4f82('0x2'));var BPromise=require(_0x4f82('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x4f82('0x4'));var db=require(_0x4f82('0x5'))['db'];var utils=require(_0x4f82('0x6'));var logger=require(_0x4f82('0x7'))(_0x4f82('0x8'));var config=require('../../config/environment');var jayson=require(_0x4f82('0x9'));var client=jayson['client'][_0x4f82('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x3de0b6,_0x845e80,_0x59cbc7){return new BPromise(function(_0x16257c,_0x4f7b77){return client['request'](_0x3de0b6,_0x59cbc7)[_0x4f82('0xb')](function(_0xb50ff5){logger['info']('CmHopperBlack,\x20%s,\x20%s',_0x845e80,_0x4f82('0xc'));logger['debug']('CmHopperBlack,\x20%s,\x20%s,\x20%s',_0x845e80,_0x4f82('0xc'),JSON[_0x4f82('0xd')](_0xb50ff5));if(_0xb50ff5[_0x4f82('0xe')]){if(_0xb50ff5[_0x4f82('0xe')]['code']===0x1f4){logger[_0x4f82('0xe')](_0x4f82('0xf'),_0x845e80,_0xb50ff5[_0x4f82('0xe')][_0x4f82('0x10')]);return _0x4f7b77(_0xb50ff5[_0x4f82('0xe')][_0x4f82('0x10')]);}logger[_0x4f82('0xe')](_0x4f82('0xf'),_0x845e80,_0xb50ff5[_0x4f82('0xe')][_0x4f82('0x10')]);return _0x16257c(_0xb50ff5[_0x4f82('0xe')][_0x4f82('0x10')]);}else{logger[_0x4f82('0x11')](_0x4f82('0xf'),_0x845e80,_0x4f82('0xc'));_0x16257c(_0xb50ff5[_0x4f82('0x12')]['message']);}})[_0x4f82('0x13')](function(_0x31df81){logger['error'](_0x4f82('0xf'),_0x845e80,_0x31df81);_0x4f7b77(_0x31df81);});});}exports[_0x4f82('0x14')]=function(_0x4c2cda){var _0x1eb8d3=this;return new Promise(function(_0x5a65a6,_0x5d0a28){return db[_0x4f82('0x15')]['findAll']({'raw':_0x4c2cda[_0x4f82('0x16')]?_0x4c2cda[_0x4f82('0x16')][_0x4f82('0x17')]===undefined?!![]:![]:!![],'where':_0x4c2cda['options']?_0x4c2cda[_0x4f82('0x16')][_0x4f82('0x18')]||null:null,'attributes':_0x4c2cda[_0x4f82('0x16')]?_0x4c2cda[_0x4f82('0x16')][_0x4f82('0x19')]||null:null,'limit':_0x4c2cda['options']?_0x4c2cda[_0x4f82('0x16')]['limit']||null:null,'include':_0x4c2cda[_0x4f82('0x16')]?_0x4c2cda[_0x4f82('0x16')][_0x4f82('0x1a')]?_['map'](_0x4c2cda[_0x4f82('0x16')]['include'],function(_0x4e52a7){return{'model':db[_0x4e52a7[_0x4f82('0x1b')]],'as':_0x4e52a7['as'],'attributes':_0x4e52a7[_0x4f82('0x19')],'include':_0x4e52a7[_0x4f82('0x1a')]?_['map'](_0x4e52a7[_0x4f82('0x1a')],function(_0x126d1e){return{'model':db[_0x126d1e[_0x4f82('0x1b')]],'as':_0x126d1e['as'],'attributes':_0x126d1e[_0x4f82('0x19')],'include':_0x126d1e[_0x4f82('0x1a')]?_['map'](_0x126d1e['include'],function(_0x4c20df){return{'model':db[_0x4c20df[_0x4f82('0x1b')]],'as':_0x4c20df['as'],'attributes':_0x4c20df['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x91fdf9){logger[_0x4f82('0x11')](_0x4f82('0x14'),_0x4c2cda);logger[_0x4f82('0x1c')](_0x4f82('0x14'),_0x4c2cda,JSON[_0x4f82('0xd')](_0x91fdf9));_0x5a65a6(_0x91fdf9);})[_0x4f82('0x13')](function(_0x3068dc){logger[_0x4f82('0xe')](_0x4f82('0x14'),_0x3068dc[_0x4f82('0x10')],_0x4c2cda);_0x5d0a28(_0x1eb8d3[_0x4f82('0xe')](0x1f4,_0x3068dc['message']));});});};exports[_0x4f82('0x1d')]=function(_0x32df5a){var _0x2b9487=this;return new Promise(function(_0x1ebbcc,_0xece3fb){return db[_0x4f82('0x15')][_0x4f82('0x1e')](_0x32df5a[_0x4f82('0x1f')],{'raw':_0x32df5a[_0x4f82('0x16')]?_0x32df5a['options'][_0x4f82('0x17')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x32df5a[_0x4f82('0x16')]?_0x32df5a[_0x4f82('0x16')]['where']||null:null,'attributes':_0x32df5a[_0x4f82('0x16')]?_0x32df5a[_0x4f82('0x16')]['attributes']||null:null,'limit':_0x32df5a['options']?_0x32df5a[_0x4f82('0x16')][_0x4f82('0x20')]||null:null})[_0x4f82('0xb')](function(_0x2bd5ec){logger['info'](_0x4f82('0x1d'),_0x32df5a);logger[_0x4f82('0x1c')]('UpdateCmHopperBlack',_0x32df5a,JSON[_0x4f82('0xd')](_0x2bd5ec));_0x1ebbcc(_0x2bd5ec);})[_0x4f82('0x13')](function(_0xcf0bb6){logger[_0x4f82('0xe')]('UpdateCmHopperBlack',_0xcf0bb6[_0x4f82('0x10')],_0x32df5a);_0xece3fb(_0x2b9487['error'](0x1f4,_0xcf0bb6['message']));});});};exports[_0x4f82('0x21')]=function(_0xabfbdf){var _0x510376=this;return new Promise(function(_0x2ccfb4,_0x48b0c3){return db[_0x4f82('0x15')]['destroy']({'where':_0xabfbdf[_0x4f82('0x16')]?_0xabfbdf[_0x4f82('0x16')][_0x4f82('0x18')]||null:null})[_0x4f82('0xb')](function(_0x1b2752){logger['info'](_0x4f82('0x21'),_0xabfbdf);logger['debug'](_0x4f82('0x21'),_0xabfbdf,JSON[_0x4f82('0xd')](_0x1b2752));_0x2ccfb4(_0x1b2752);})[_0x4f82('0x13')](function(_0x50aa98){logger[_0x4f82('0xe')]('DestroyCmHopperBlack',_0x50aa98['message'],_0xabfbdf);_0x48b0c3(_0x510376[_0x4f82('0xe')](0x1f4,_0x50aa98['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa46e=['connect-timeout','express','Router','../../components/auth/service','../../config/environment','get','index','isAuthenticated','describe','/:id','update','destroy','multer','util'];(function(_0x3c601b,_0x4e839f){var _0x24f02f=function(_0x6a5086){while(--_0x6a5086){_0x3c601b['push'](_0x3c601b['shift']());}};_0x24f02f(++_0x4e839f);}(_0xa46e,0x8a));var _0xea46=function(_0x452968,_0x31e391){_0x452968=_0x452968-0x0;var _0xb6f9ae=_0xa46e[_0x452968];return _0xb6f9ae;};'use strict';var multer=require(_0xea46('0x0'));var util=require(_0xea46('0x1'));var path=require('path');var timeout=require(_0xea46('0x2'));var express=require(_0xea46('0x3'));var router=express[_0xea46('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0xea46('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0xea46('0x6'));var controller=require('./cmHopperBlack.controller');router[_0xea46('0x7')]('/',auth['isAuthenticated'](),controller[_0xea46('0x8')]);router[_0xea46('0x7')]('/describe',auth[_0xea46('0x9')](),controller[_0xea46('0xa')]);router[_0xea46('0x7')](_0xea46('0xb'),auth[_0xea46('0x9')](),controller['show']);router['put']('/:id',auth[_0xea46('0x9')](),controller[_0xea46('0xc')]);router['delete'](_0xea46('0xb'),auth[_0xea46('0x9')](),controller[_0xea46('0xd')]);module['exports']=router;
\ No newline at end of file
+var _0x524e=['../../config/environment','./cmHopperBlack.controller','get','index','/describe','describe','/:id','isAuthenticated','show','put','update','delete','destroy','exports','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service'];(function(_0x1bfe14,_0xd4d4f4){var _0x44daae=function(_0x2baaa8){while(--_0x2baaa8){_0x1bfe14['push'](_0x1bfe14['shift']());}};_0x44daae(++_0xd4d4f4);}(_0x524e,0x15e));var _0xe524=function(_0x597447,_0x58beb0){_0x597447=_0x597447-0x0;var _0x51efc0=_0x524e[_0x597447];return _0x51efc0;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0xe524('0x0'));var timeout=require(_0xe524('0x1'));var express=require(_0xe524('0x2'));var router=express[_0xe524('0x3')]();var fs_extra=require(_0xe524('0x4'));var auth=require(_0xe524('0x5'));var interaction=require(_0xe524('0x6'));var config=require(_0xe524('0x7'));var controller=require(_0xe524('0x8'));router[_0xe524('0x9')]('/',auth['isAuthenticated'](),controller[_0xe524('0xa')]);router[_0xe524('0x9')](_0xe524('0xb'),auth['isAuthenticated'](),controller[_0xe524('0xc')]);router[_0xe524('0x9')](_0xe524('0xd'),auth[_0xe524('0xe')](),controller[_0xe524('0xf')]);router[_0xe524('0x10')](_0xe524('0xd'),auth[_0xe524('0xe')](),controller[_0xe524('0x11')]);router[_0xe524('0x12')](_0xe524('0xd'),auth[_0xe524('0xe')](),controller[_0xe524('0x13')]);module[_0xe524('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3202=['BOOLEAN','sequelize','moment','DATE','INTEGER','STRING','endtime','setDataValue','followuptime','diff'];(function(_0x3ff962,_0x4a01c4){var _0x2df87a=function(_0x1cf776){while(--_0x1cf776){_0x3ff962['push'](_0x3ff962['shift']());}};_0x2df87a(++_0x4a01c4);}(_0x3202,0x191));var _0x2320=function(_0x36ee3f,_0x4d1d2e){_0x36ee3f=_0x36ee3f-0x0;var _0x45cf02=_0x3202[_0x36ee3f];return _0x45cf02;};'use strict';var Sequelize=require(_0x2320('0x0'));var moment=require(_0x2320('0x1'));module['exports']={'state':{'type':Sequelize['INTEGER'](0x2)},'statedesc':{'type':Sequelize['STRING']},'scheduledat':{'type':Sequelize[_0x2320('0x2')]},'countbusyretry':{'type':Sequelize[_0x2320('0x3')],'defaultValue':0x0},'countcongestionretry':{'type':Sequelize[_0x2320('0x3')],'defaultValue':0x0},'countnoanswerretry':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'countglobal':{'type':Sequelize[_0x2320('0x3')],'defaultValue':0x0},'uniqueid':{'type':Sequelize[_0x2320('0x4')]},'originatecalleridnum':{'type':Sequelize['STRING']},'originatecalleridname':{'type':Sequelize[_0x2320('0x4')]},'calleridnum':{'type':Sequelize[_0x2320('0x4')]},'calleridname':{'type':Sequelize[_0x2320('0x4')]},'starttime':{'type':Sequelize[_0x2320('0x2')]},'responsetime':{'type':Sequelize[_0x2320('0x2')]},'answertime':{'type':Sequelize[_0x2320('0x2')]},'droptime':{'type':Sequelize['DATE']},'endtime':{'type':Sequelize['DATE']},'ringtime':{'type':Sequelize[_0x2320('0x3')],'defaultValue':0x0},'holdtime':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'talktime':{'type':Sequelize[_0x2320('0x3')],'defaultValue':0x0},'followuptime':{'type':Sequelize[_0x2320('0x3')],'defaultValue':0x0},'dropreason':{'type':Sequelize[_0x2320('0x4')]},'campaign':{'type':Sequelize[_0x2320('0x4')]},'campaigntype':{'type':Sequelize['STRING']},'membername':{'type':Sequelize['STRING']},'reason':{'type':Sequelize[_0x2320('0x4')]},'disposition':{'type':Sequelize['STRING']},'secondDisposition':{'type':Sequelize[_0x2320('0x4')]},'thirdDisposition':{'type':Sequelize[_0x2320('0x4')]},'dispositionat':{'type':Sequelize[_0x2320('0x2')],'set':function(_0x5ce301){var _0x1afb34=this['getDataValue'](_0x2320('0x5'));if(_0x1afb34&&_0x5ce301){this[_0x2320('0x6')](_0x2320('0x7'),moment(_0x5ce301)[_0x2320('0x8')](moment(_0x1afb34),'seconds'));}return this['setDataValue']('dispositionat',_0x5ce301);}},'amd':{'type':Sequelize[_0x2320('0x9')],'defaultValue':![]},'fax':{'type':Sequelize[_0x2320('0x9')],'defaultValue':![]},'blacklist':{'type':Sequelize[_0x2320('0x9')],'defaultValue':![]},'rescheduled':{'type':Sequelize[_0x2320('0x9')],'defaultValue':![]},'rescheduledat':{'type':Sequelize[_0x2320('0x2')]},'callback':{'type':Sequelize[_0x2320('0x9')],'defaultValue':![]},'callbackuniqueid':{'type':Sequelize[_0x2320('0x4')],'defaultValue':null},'callbackat':{'type':Sequelize['DATE']},'deleted':{'type':Sequelize['STRING'],'defaultValue':null},'deletedat':{'type':Sequelize[_0x2320('0x2')]},'recallme':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'agiafterat':{'type':Sequelize[_0x2320('0x2')]},'countnosuchnumberretry':{'type':Sequelize[_0x2320('0x3')],'defaultValue':0x0},'countdropretry':{'type':Sequelize[_0x2320('0x3')],'defaultValue':0x0},'countabandonedretry':{'type':Sequelize[_0x2320('0x3')],'defaultValue':0x0},'countmachineretry':{'type':Sequelize[_0x2320('0x3')],'defaultValue':0x0},'countagentrejectretry':{'type':Sequelize[_0x2320('0x3')],'defaultValue':0x0}};
\ No newline at end of file
+var _0xa7c1=['INTEGER','DATE','getDataValue','endtime','setDataValue','followuptime','seconds','dispositionat','BOOLEAN','sequelize','moment','exports','STRING'];(function(_0x40f203,_0x472e3c){var _0x52db7a=function(_0x34e01c){while(--_0x34e01c){_0x40f203['push'](_0x40f203['shift']());}};_0x52db7a(++_0x472e3c);}(_0xa7c1,0xe6));var _0x1a7c=function(_0x3070dc,_0x40cf11){_0x3070dc=_0x3070dc-0x0;var _0x431489=_0xa7c1[_0x3070dc];return _0x431489;};'use strict';var Sequelize=require(_0x1a7c('0x0'));var moment=require(_0x1a7c('0x1'));module[_0x1a7c('0x2')]={'state':{'type':Sequelize['INTEGER'](0x2)},'statedesc':{'type':Sequelize[_0x1a7c('0x3')]},'scheduledat':{'type':Sequelize['DATE']},'countbusyretry':{'type':Sequelize[_0x1a7c('0x4')],'defaultValue':0x0},'countcongestionretry':{'type':Sequelize[_0x1a7c('0x4')],'defaultValue':0x0},'countnoanswerretry':{'type':Sequelize[_0x1a7c('0x4')],'defaultValue':0x0},'countglobal':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'uniqueid':{'type':Sequelize[_0x1a7c('0x3')]},'originatecalleridnum':{'type':Sequelize[_0x1a7c('0x3')]},'originatecalleridname':{'type':Sequelize[_0x1a7c('0x3')]},'calleridnum':{'type':Sequelize[_0x1a7c('0x3')]},'calleridname':{'type':Sequelize[_0x1a7c('0x3')]},'starttime':{'type':Sequelize[_0x1a7c('0x5')]},'responsetime':{'type':Sequelize[_0x1a7c('0x5')]},'answertime':{'type':Sequelize[_0x1a7c('0x5')]},'droptime':{'type':Sequelize[_0x1a7c('0x5')]},'endtime':{'type':Sequelize[_0x1a7c('0x5')]},'ringtime':{'type':Sequelize[_0x1a7c('0x4')],'defaultValue':0x0},'holdtime':{'type':Sequelize[_0x1a7c('0x4')],'defaultValue':0x0},'talktime':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'followuptime':{'type':Sequelize[_0x1a7c('0x4')],'defaultValue':0x0},'dropreason':{'type':Sequelize[_0x1a7c('0x3')]},'campaign':{'type':Sequelize[_0x1a7c('0x3')]},'campaigntype':{'type':Sequelize[_0x1a7c('0x3')]},'membername':{'type':Sequelize[_0x1a7c('0x3')]},'reason':{'type':Sequelize[_0x1a7c('0x3')]},'disposition':{'type':Sequelize[_0x1a7c('0x3')]},'secondDisposition':{'type':Sequelize[_0x1a7c('0x3')]},'thirdDisposition':{'type':Sequelize['STRING']},'dispositionat':{'type':Sequelize[_0x1a7c('0x5')],'set':function(_0x2fcb93){var _0x1ba267=this[_0x1a7c('0x6')](_0x1a7c('0x7'));if(_0x1ba267&&_0x2fcb93){this[_0x1a7c('0x8')](_0x1a7c('0x9'),moment(_0x2fcb93)['diff'](moment(_0x1ba267),_0x1a7c('0xa')));}return this['setDataValue'](_0x1a7c('0xb'),_0x2fcb93);}},'amd':{'type':Sequelize[_0x1a7c('0xc')],'defaultValue':![]},'fax':{'type':Sequelize[_0x1a7c('0xc')],'defaultValue':![]},'blacklist':{'type':Sequelize[_0x1a7c('0xc')],'defaultValue':![]},'rescheduled':{'type':Sequelize[_0x1a7c('0xc')],'defaultValue':![]},'rescheduledat':{'type':Sequelize[_0x1a7c('0x5')]},'callback':{'type':Sequelize[_0x1a7c('0xc')],'defaultValue':![]},'callbackuniqueid':{'type':Sequelize['STRING'],'defaultValue':null},'callbackat':{'type':Sequelize['DATE']},'deleted':{'type':Sequelize[_0x1a7c('0x3')],'defaultValue':null},'deletedat':{'type':Sequelize[_0x1a7c('0x5')]},'recallme':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'agiafterat':{'type':Sequelize['DATE']},'countnosuchnumberretry':{'type':Sequelize[_0x1a7c('0x4')],'defaultValue':0x0},'countdropretry':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'countabandonedretry':{'type':Sequelize[_0x1a7c('0x4')],'defaultValue':0x0},'countmachineretry':{'type':Sequelize[_0x1a7c('0x4')],'defaultValue':0x0},'countagentrejectretry':{'type':Sequelize[_0x1a7c('0x4')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x524e=['destroy','name','send','index','map','rawAttributes','key','model','keys','filters','intersection','attributes','fields','query','hasOwnProperty','sort','where','pick','filter','merge','VIRTUAL','options','CmHopperFinal','then','includeAll','include','findAll','rows','catch','show','length','find','describe','body','uniqueid','params','sequelize','COUNT','`state`\x20=\x200,\x201,\x20null','noSuchContacts','literal','`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=\x2022,\x201,\x20null','countContactsIvrCampaignHopperFinal','`state`\x20=\x2011\x20,\x201,\x20null','abandonedContacts','reCallContacts','`state`\x20=\x2019,\x201,\x20null','answeringMachine','moveContactsQueueCampaignHopperFinal','insert','into','cm_hopper','fromQuery','phone','scheduledAt','ListId','VoiceQueueId','createdAt','select','field','NOW()','ANY_VALUE(ContactId)','ANY_VALUE(ListId)','ANY_VALUE(VoiceQueueId)','updatedAt','from','cm_hopper_final','toString','state','calleridnum\x20IS\x20NOT\x20NULL','calleridnum\x20NOT\x20IN\x20(?)','VoiceQueueId\x20=\x20?','group','Campaign','ContactId','ANY_VALUE(calleridnum)','CampaignId','CampaignId\x20=\x20?','state\x20=\x20?','calleridnum','CmHopper','findOne','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','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','end','json','offset','limit','count','set','apply','reject','save','update'];(function(_0x1b6186,_0x1ec7f2){var _0x186121=function(_0x1748a8){while(--_0x1748a8){_0x1b6186['push'](_0x1b6186['shift']());}};_0x186121(++_0x1ec7f2);}(_0x524e,0x15e));var _0xe524=function(_0x42b944,_0x3fa915){_0x42b944=_0x42b944-0x0;var _0x2086f6=_0x524e[_0x42b944];return _0x2086f6;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0xe524('0x0'));var jsonpatch=require(_0xe524('0x1'));var rp=require(_0xe524('0x2'));var moment=require(_0xe524('0x3'));var BPromise=require(_0xe524('0x4'));var Mustache=require(_0xe524('0x5'));var util=require(_0xe524('0x6'));var path=require(_0xe524('0x7'));var sox=require(_0xe524('0x8'));var csv=require(_0xe524('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xe524('0xa'));var _=require(_0xe524('0xb'));var squel=require(_0xe524('0xc'));var crypto=require('crypto');var jsforce=require(_0xe524('0xd'));var deskjs=require(_0xe524('0xe'));var toCsv=require(_0xe524('0x9'));var querystring=require(_0xe524('0xf'));var Papa=require(_0xe524('0x10'));var Redis=require(_0xe524('0x11'));var authService=require(_0xe524('0x12'));var qs=require(_0xe524('0x13'));var as=require(_0xe524('0x14'));var hardwareService=require(_0xe524('0x15'));var logger=require(_0xe524('0x16'))(_0xe524('0x17'));var utils=require(_0xe524('0x18'));var config=require(_0xe524('0x19'));var licenseUtil=require(_0xe524('0x1a'));var db=require(_0xe524('0x1b'))['db'];function respondWithStatusCode(_0x5077c1,_0x4b0f51){_0x4b0f51=_0x4b0f51||0xcc;return function(_0xfdc2a5){if(_0xfdc2a5){return _0x5077c1[_0xe524('0x1c')](_0x4b0f51);}return _0x5077c1[_0xe524('0x1d')](_0x4b0f51)[_0xe524('0x1e')]();};}function respondWithResult(_0x20a852,_0x57c1b6){_0x57c1b6=_0x57c1b6||0xc8;return function(_0x12ff75){if(_0x12ff75){return _0x20a852['status'](_0x57c1b6)[_0xe524('0x1f')](_0x12ff75);}};}function respondWithFilteredResult(_0x1b0af6,_0x48165e){return function(_0x569660){if(_0x569660){var _0x488fce=typeof _0x48165e[_0xe524('0x20')]==='undefined'&&typeof _0x48165e[_0xe524('0x21')]==='undefined';var _0x5c8736=_0x569660['count'];var _0x3a4027=_0x488fce?0x0:_0x48165e['offset'];var _0x11b2a1=_0x488fce?_0x569660[_0xe524('0x22')]:_0x48165e[_0xe524('0x20')]+_0x48165e[_0xe524('0x21')];var _0x5d7b17;if(_0x11b2a1>=_0x5c8736){_0x11b2a1=_0x5c8736;_0x5d7b17=0xc8;}else{_0x5d7b17=0xce;}_0x1b0af6[_0xe524('0x1d')](_0x5d7b17);return _0x1b0af6[_0xe524('0x23')]('Content-Range',_0x3a4027+'-'+_0x11b2a1+'/'+_0x5c8736)[_0xe524('0x1f')](_0x569660);}return null;};}function patchUpdates(_0x309f85){return function(_0x43a4f9){try{jsonpatch[_0xe524('0x24')](_0x43a4f9,_0x309f85,!![]);}catch(_0x1c4194){return BPromise[_0xe524('0x25')](_0x1c4194);}return _0x43a4f9[_0xe524('0x26')]();};}function saveUpdates(_0x375219,_0x7dfe97){return function(_0x5c4d21){if(_0x5c4d21){return _0x5c4d21[_0xe524('0x27')](_0x375219)['then'](function(_0x577d1f){return _0x577d1f;});}return null;};}function removeEntity(_0x2d2f83,_0x23df5e){return function(_0x1ad106){if(_0x1ad106){return _0x1ad106[_0xe524('0x28')]()['then'](function(){_0x2d2f83[_0xe524('0x1d')](0xcc)['end']();});}};}function handleEntityNotFound(_0x17e245,_0xcf5db){return function(_0xd62772){if(!_0xd62772){_0x17e245[_0xe524('0x1c')](0x194);}return _0xd62772;};}function handleError(_0x4102d9,_0xfd5965){_0xfd5965=_0xfd5965||0x1f4;return function(_0x2141db){logger['error'](_0x2141db['stack']);if(_0x2141db[_0xe524('0x29')]){delete _0x2141db[_0xe524('0x29')];}_0x4102d9[_0xe524('0x1d')](_0xfd5965)[_0xe524('0x2a')](_0x2141db);};}exports[_0xe524('0x2b')]=function(_0x5405e4,_0x52f140){var _0x4b1ff={},_0x25e7a7={},_0x3aedd9={'count':0x0,'rows':[]};var _0x8070e4=_[_0xe524('0x2c')](db['CmHopperFinal'][_0xe524('0x2d')],function(_0x9a7e98){return{'name':_0x9a7e98['fieldName'],'type':_0x9a7e98['type'][_0xe524('0x2e')]};});_0x25e7a7[_0xe524('0x2f')]=_['map'](_0x8070e4,_0xe524('0x29'));_0x25e7a7['query']=_[_0xe524('0x30')](_0x5405e4['query']);_0x25e7a7[_0xe524('0x31')]=_[_0xe524('0x32')](_0x25e7a7[_0xe524('0x2f')],_0x25e7a7['query']);_0x4b1ff[_0xe524('0x33')]=_['intersection'](_0x25e7a7[_0xe524('0x2f')],qs[_0xe524('0x34')](_0x5405e4[_0xe524('0x35')]['fields']));_0x4b1ff[_0xe524('0x33')]=_0x4b1ff[_0xe524('0x33')]['length']?_0x4b1ff[_0xe524('0x33')]:_0x25e7a7[_0xe524('0x2f')];if(!_0x5405e4[_0xe524('0x35')][_0xe524('0x36')]('nolimit')){_0x4b1ff[_0xe524('0x21')]=qs[_0xe524('0x21')](_0x5405e4[_0xe524('0x35')][_0xe524('0x21')]);_0x4b1ff[_0xe524('0x20')]=qs[_0xe524('0x20')](_0x5405e4[_0xe524('0x35')][_0xe524('0x20')]);}_0x4b1ff['order']=qs[_0xe524('0x37')](_0x5405e4['query'][_0xe524('0x37')]);_0x4b1ff[_0xe524('0x38')]=qs['filters'](_[_0xe524('0x39')](_0x5405e4['query'],_0x25e7a7[_0xe524('0x31')]),_0x8070e4);if(_0x5405e4[_0xe524('0x35')][_0xe524('0x3a')]){_0x4b1ff[_0xe524('0x38')]=_[_0xe524('0x3b')](_0x4b1ff[_0xe524('0x38')],{'$or':_[_0xe524('0x2c')](_0x8070e4,function(_0x13762c){if(_0x13762c['type']!==_0xe524('0x3c')){var _0x940c05={};_0x940c05[_0x13762c[_0xe524('0x29')]]={'$like':'%'+_0x5405e4[_0xe524('0x35')][_0xe524('0x3a')]+'%'};return _0x940c05;}})});}_0x4b1ff=_[_0xe524('0x3b')]({},_0x4b1ff,_0x5405e4[_0xe524('0x3d')]);var _0x158d45={'where':_0x4b1ff['where']};return db[_0xe524('0x3e')][_0xe524('0x22')](_0x158d45)[_0xe524('0x3f')](function(_0x59781b){_0x3aedd9[_0xe524('0x22')]=_0x59781b;if(_0x5405e4['query'][_0xe524('0x40')]){_0x4b1ff[_0xe524('0x41')]=[{'all':!![]}];}return db[_0xe524('0x3e')][_0xe524('0x42')](_0x4b1ff);})[_0xe524('0x3f')](function(_0x4746cd){_0x3aedd9[_0xe524('0x43')]=_0x4746cd;return _0x3aedd9;})['then'](respondWithFilteredResult(_0x52f140,_0x4b1ff))[_0xe524('0x44')](handleError(_0x52f140,null));};exports[_0xe524('0x45')]=function(_0x13c54c,_0x376505){var _0x438962={'raw':!![],'where':{'id':_0x13c54c['params']['id']}},_0x1ae283={};_0x1ae283[_0xe524('0x2f')]=_[_0xe524('0x30')](db[_0xe524('0x3e')]['rawAttributes']);_0x1ae283[_0xe524('0x35')]=_['keys'](_0x13c54c['query']);_0x1ae283[_0xe524('0x31')]=_[_0xe524('0x32')](_0x1ae283['model'],_0x1ae283[_0xe524('0x35')]);_0x438962[_0xe524('0x33')]=_[_0xe524('0x32')](_0x1ae283[_0xe524('0x2f')],qs['fields'](_0x13c54c['query'][_0xe524('0x34')]));_0x438962[_0xe524('0x33')]=_0x438962['attributes'][_0xe524('0x46')]?_0x438962['attributes']:_0x1ae283[_0xe524('0x2f')];if(_0x13c54c[_0xe524('0x35')][_0xe524('0x40')]){_0x438962[_0xe524('0x41')]=[{'all':!![]}];}_0x438962=_[_0xe524('0x3b')]({},_0x438962,_0x13c54c[_0xe524('0x3d')]);return db[_0xe524('0x3e')][_0xe524('0x47')](_0x438962)[_0xe524('0x3f')](handleEntityNotFound(_0x376505,null))[_0xe524('0x3f')](respondWithResult(_0x376505,null))[_0xe524('0x44')](handleError(_0x376505,null));};exports[_0xe524('0x48')]=function(_0x3d7ab7,_0x33b1c8){return db[_0xe524('0x3e')]['describe']()[_0xe524('0x3f')](respondWithResult(_0x33b1c8,null))['catch'](handleError(_0x33b1c8,null));};exports['update']=function(_0x24f313,_0x59fe6b){if(_0x24f313[_0xe524('0x49')][_0xe524('0x4a')]){delete _0x24f313['body'][_0xe524('0x4a')];}return db['CmHopperFinal']['find']({'where':{'uniqueid':_0x24f313[_0xe524('0x4b')]['id']}})[_0xe524('0x3f')](handleEntityNotFound(_0x59fe6b,null))[_0xe524('0x3f')](saveUpdates(_0x24f313['body'],null))['then'](respondWithResult(_0x59fe6b,null))['catch'](handleError(_0x59fe6b,null));};exports['countContactsQueueCampaignHopperFinal']=function(_0x4f7a64,_0x5477ca,_0x45f504){return db[_0xe524('0x3e')]['findAll']({'raw':![],'where':{'VoiceQueueId':_0x4f7a64[_0xe524('0x4b')]['id']},'attributes':[[db[_0xe524('0x4c')]['fn'](_0xe524('0x4d'),db[_0xe524('0x4c')]['fn']('IF',db[_0xe524('0x4c')]['literal'](_0xe524('0x4e')))),_0xe524('0x4f')],[db[_0xe524('0x4c')]['fn']('COUNT',db[_0xe524('0x4c')]['fn']('IF',db['sequelize'][_0xe524('0x50')](_0xe524('0x51')))),_0xe524('0x52')],[db[_0xe524('0x4c')]['fn'](_0xe524('0x4d'),db[_0xe524('0x4c')]['fn']('IF',db[_0xe524('0x4c')][_0xe524('0x50')](_0xe524('0x53')))),_0xe524('0x54')],[db[_0xe524('0x4c')]['fn'](_0xe524('0x4d'),db['sequelize']['fn']('IF',db['sequelize']['literal'](_0xe524('0x55')))),_0xe524('0x56')],[db[_0xe524('0x4c')]['fn'](_0xe524('0x4d'),db[_0xe524('0x4c')]['fn']('IF',db[_0xe524('0x4c')][_0xe524('0x50')](_0xe524('0x57')))),_0xe524('0x58')],[db[_0xe524('0x4c')]['fn'](_0xe524('0x4d'),db['sequelize']['fn']('IF',db[_0xe524('0x4c')][_0xe524('0x50')]('`state`\x20=\x2011\x20,\x201,\x20null'))),'abandonedContacts'],[db['sequelize']['fn']('COUNT',db[_0xe524('0x4c')]['fn']('IF',db[_0xe524('0x4c')][_0xe524('0x50')](_0xe524('0x59')))),'reCallContacts'],[db[_0xe524('0x4c')]['fn'](_0xe524('0x4d'),db[_0xe524('0x4c')]['fn']('IF',db[_0xe524('0x4c')]['literal']('`state`\x20=\x2019,\x201,\x20null'))),'answeringMachine']]})[_0xe524('0x3f')](handleEntityNotFound(_0x5477ca,null))['then'](respondWithResult(_0x5477ca,null))[_0xe524('0x44')](handleError(_0x5477ca,null));};exports[_0xe524('0x5a')]=function(_0x3f4201,_0x287ab8,_0x2b2a0e){return db['CmHopperFinal']['findAll']({'raw':![],'where':{'CampaignId':_0x3f4201[_0xe524('0x4b')]['id']},'attributes':[[db[_0xe524('0x4c')]['fn'](_0xe524('0x4d'),db[_0xe524('0x4c')]['fn']('IF',db[_0xe524('0x4c')][_0xe524('0x50')]('`state`\x20=\x200,\x201,\x20null'))),_0xe524('0x4f')],[db[_0xe524('0x4c')]['fn'](_0xe524('0x4d'),db['sequelize']['fn']('IF',db[_0xe524('0x4c')][_0xe524('0x50')](_0xe524('0x51')))),'noAnswerContacts'],[db['sequelize']['fn'](_0xe524('0x4d'),db[_0xe524('0x4c')]['fn']('IF',db[_0xe524('0x4c')][_0xe524('0x50')](_0xe524('0x53')))),'busyContacts'],[db[_0xe524('0x4c')]['fn'](_0xe524('0x4d'),db[_0xe524('0x4c')]['fn']('IF',db[_0xe524('0x4c')][_0xe524('0x50')](_0xe524('0x55')))),_0xe524('0x56')],[db[_0xe524('0x4c')]['fn'](_0xe524('0x4d'),db[_0xe524('0x4c')]['fn']('IF',db[_0xe524('0x4c')]['literal'](_0xe524('0x57')))),_0xe524('0x58')],[db[_0xe524('0x4c')]['fn'](_0xe524('0x4d'),db[_0xe524('0x4c')]['fn']('IF',db['sequelize'][_0xe524('0x50')](_0xe524('0x5b')))),_0xe524('0x5c')],[db[_0xe524('0x4c')]['fn'](_0xe524('0x4d'),db[_0xe524('0x4c')]['fn']('IF',db[_0xe524('0x4c')]['literal'](_0xe524('0x59')))),_0xe524('0x5d')],[db[_0xe524('0x4c')]['fn'](_0xe524('0x4d'),db['sequelize']['fn']('IF',db[_0xe524('0x4c')]['literal'](_0xe524('0x5e')))),_0xe524('0x5f')]]})[_0xe524('0x3f')](handleEntityNotFound(_0x287ab8,null))['then'](respondWithResult(_0x287ab8,null))[_0xe524('0x44')](handleError(_0x287ab8,null));};exports[_0xe524('0x60')]=function(_0x43d125,_0x13905f,_0x4514d4){return db['VoiceQueue'][_0xe524('0x47')]({'where':{'id':_0x43d125[_0xe524('0x4b')]['id']}})[_0xe524('0x3f')](handleEntityNotFound(_0x13905f,null))[_0xe524('0x3f')](function(_0x109da1){var _0x57b6bb;if(_0x109da1){_0x57b6bb=squel[_0xe524('0x61')]()[_0xe524('0x62')](_0xe524('0x63'))[_0xe524('0x64')]([_0xe524('0x65'),_0xe524('0x66'),'ContactId',_0xe524('0x67'),_0xe524('0x68'),_0xe524('0x69'),'updatedAt'],squel[_0xe524('0x6a')]()[_0xe524('0x6b')]('ANY_VALUE(calleridnum)',_0xe524('0x65'))[_0xe524('0x6b')](_0xe524('0x6c'),_0xe524('0x66'))[_0xe524('0x6b')](_0xe524('0x6d'),'ContactId')[_0xe524('0x6b')](_0xe524('0x6e'),_0xe524('0x67'))[_0xe524('0x6b')](_0xe524('0x6f'),_0xe524('0x68'))[_0xe524('0x6b')](_0xe524('0x6c'),_0xe524('0x69'))[_0xe524('0x6b')](_0xe524('0x6c'),_0xe524('0x70'))[_0xe524('0x71')](_0xe524('0x72'))[_0xe524('0x38')]('VoiceQueueId\x20=\x20?',_0x43d125[_0xe524('0x4b')]['id'][_0xe524('0x73')]())[_0xe524('0x38')]('state\x20=\x20?',_0x43d125[_0xe524('0x49')][_0xe524('0x74')]['toString']())['where'](_0xe524('0x75'))['where'](_0xe524('0x76'),squel['select']()[_0xe524('0x6b')](_0xe524('0x65'))[_0xe524('0x71')](_0xe524('0x63'))['where']('VoiceQueueId\x20=\x20?',_0x43d125[_0xe524('0x4b')]['id'][_0xe524('0x73')]()))['where'](_0xe524('0x76'),squel[_0xe524('0x6a')]()[_0xe524('0x6b')]('calleridnum')[_0xe524('0x71')](_0xe524('0x72'))[_0xe524('0x38')](_0xe524('0x77'),_0x43d125[_0xe524('0x4b')]['id'][_0xe524('0x73')]())['where']('state\x20=\x204'))[_0xe524('0x78')]('ContactId'))[_0xe524('0x73')]();return db[_0xe524('0x4c')][_0xe524('0x35')](_0x57b6bb);}return[];})['then'](respondWithResult(_0x13905f,null))[_0xe524('0x44')](handleError(_0x13905f,null));};exports['moveContactsIvrCampaignHopperFinal']=function(_0x1681c5,_0x41e693,_0xfc62e5){return db[_0xe524('0x79')][_0xe524('0x47')]({'where':{'id':_0x1681c5[_0xe524('0x4b')]['id']}})['then'](handleEntityNotFound(_0x41e693,null))[_0xe524('0x3f')](function(_0x35d0f4){var _0xa8334;if(_0x35d0f4){_0xa8334=squel['insert']()[_0xe524('0x62')](_0xe524('0x63'))['fromQuery']([_0xe524('0x65'),_0xe524('0x66'),_0xe524('0x7a'),_0xe524('0x67'),'CampaignId',_0xe524('0x69'),_0xe524('0x70')],squel[_0xe524('0x6a')]()['field'](_0xe524('0x7b'),'phone')[_0xe524('0x6b')](_0xe524('0x6c'),_0xe524('0x66'))['field'](_0xe524('0x6d'),_0xe524('0x7a'))[_0xe524('0x6b')]('ANY_VALUE(ListId)','ListId')[_0xe524('0x6b')]('ANY_VALUE(CampaignId)',_0xe524('0x7c'))['field'](_0xe524('0x6c'),_0xe524('0x69'))['field'](_0xe524('0x6c'),_0xe524('0x70'))['from']('cm_hopper_final')[_0xe524('0x38')](_0xe524('0x7d'),_0x1681c5[_0xe524('0x4b')]['id']['toString']())[_0xe524('0x38')](_0xe524('0x7e'),_0x1681c5[_0xe524('0x49')][_0xe524('0x74')][_0xe524('0x73')]())[_0xe524('0x38')]('calleridnum\x20IS\x20NOT\x20NULL')[_0xe524('0x38')](_0xe524('0x76'),squel['select']()['field'](_0xe524('0x65'))[_0xe524('0x71')](_0xe524('0x63'))[_0xe524('0x38')]('CampaignId\x20=\x20?',_0x1681c5[_0xe524('0x4b')]['id'][_0xe524('0x73')]()))['where']('calleridnum\x20NOT\x20IN\x20(?)',squel[_0xe524('0x6a')]()[_0xe524('0x6b')](_0xe524('0x7f'))[_0xe524('0x71')](_0xe524('0x72'))[_0xe524('0x38')]('CampaignId\x20=\x20?',_0x1681c5['params']['id'][_0xe524('0x73')]())[_0xe524('0x38')]('state\x20=\x204'))['group'](_0xe524('0x7a')))[_0xe524('0x73')]();return db[_0xe524('0x4c')][_0xe524('0x35')](_0xa8334);}return[];})[_0xe524('0x3f')](respondWithResult(_0x41e693,null))[_0xe524('0x44')](handleError(_0x41e693,null));};exports['checkContactHopper']=function(_0x555801,_0x3e8668,_0x390093){return db[_0xe524('0x80')][_0xe524('0x81')]({'where':{'VoiceQueueId':_0x555801[_0xe524('0x49')][_0xe524('0x68')],'CampaignId':_0x555801[_0xe524('0x49')][_0xe524('0x7c')],'ContactId':_0x555801['body'][_0xe524('0x7a')]}})[_0xe524('0x3f')](handleEntityNotFound(_0x3e8668,null))[_0xe524('0x3f')](function(_0x5242b7){if(_0x5242b7){return _0x5242b7;}return null;})['then'](respondWithResult(_0x3e8668,null))[_0xe524('0x44')](handleError(_0x3e8668,null));};
\ No newline at end of file
+var _0x71ab=['json','offset','undefined','limit','count','set','reject','update','then','destroy','error','stack','name','send','index','map','type','key','query','keys','filters','model','attributes','intersection','fields','length','hasOwnProperty','sort','where','pick','filter','merge','options','includeAll','include','CmHopperFinal','findAll','rows','catch','show','params','rawAttributes','find','describe','body','uniqueid','countContactsQueueCampaignHopperFinal','sequelize','COUNT','`state`\x20=\x200,\x201,\x20null','noSuchContacts','literal','`state`\x20=\x205,\x201,\x20null','busyContacts','`state`\x20=\x208,\x201,\x20null','congestionContacts','`state`\x20=\x2010\x20,\x201,\x20null','`state`\x20=\x2011\x20,\x201,\x20null','abandonedContacts','`state`\x20=\x2022,\x201,\x20null','reCallContacts','`state`\x20=\x2019,\x201,\x20null','answeringMachine','`state`\x20=\x203,\x201,\x20null','dropContacts','VoiceQueue','into','cm_hopper','fromQuery','scheduledAt','ContactId','ListId','createdAt','updatedAt','select','field','ANY_VALUE(calleridnum)','phone','NOW()','ANY_VALUE(ContactId)','ANY_VALUE(ListId)','VoiceQueueId','from','VoiceQueueId\x20=\x20?','toString','state\x20=\x20?','calleridnum\x20NOT\x20IN\x20(?)','cm_hopper_final','state\x20=\x204','group','moveContactsIvrCampaignHopperFinal','Campaign','insert','CampaignId','state','CampaignId\x20=\x20?','calleridnum','checkContactHopper','CmHopper','findOne','rimraf','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/environment','../../mysqldb','sendStatus','status','end'];(function(_0x302750,_0x1a9462){var _0x330c1c=function(_0x172fe5){while(--_0x172fe5){_0x302750['push'](_0x302750['shift']());}};_0x330c1c(++_0x1a9462);}(_0x71ab,0x64));var _0xb71a=function(_0x502c7d,_0x2f1285){_0x502c7d=_0x502c7d-0x0;var _0x30b7ed=_0x71ab[_0x502c7d];return _0x30b7ed;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xb71a('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0xb71a('0x1'));var rp=require('request-promise');var moment=require(_0xb71a('0x2'));var BPromise=require(_0xb71a('0x3'));var Mustache=require(_0xb71a('0x4'));var util=require(_0xb71a('0x5'));var path=require(_0xb71a('0x6'));var sox=require(_0xb71a('0x7'));var csv=require(_0xb71a('0x8'));var ejs=require(_0xb71a('0x9'));var fs=require('fs');var fs_extra=require(_0xb71a('0xa'));var _=require(_0xb71a('0xb'));var squel=require(_0xb71a('0xc'));var crypto=require(_0xb71a('0xd'));var jsforce=require(_0xb71a('0xe'));var deskjs=require(_0xb71a('0xf'));var toCsv=require(_0xb71a('0x8'));var querystring=require(_0xb71a('0x10'));var Papa=require(_0xb71a('0x11'));var Redis=require(_0xb71a('0x12'));var authService=require('../../components/auth/service');var qs=require(_0xb71a('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xb71a('0x14'));var logger=require(_0xb71a('0x15'))(_0xb71a('0x16'));var utils=require('../../config/utils');var config=require(_0xb71a('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0xb71a('0x18'))['db'];function respondWithStatusCode(_0x50030d,_0x50b43b){_0x50b43b=_0x50b43b||0xcc;return function(_0x3346a5){if(_0x3346a5){return _0x50030d[_0xb71a('0x19')](_0x50b43b);}return _0x50030d[_0xb71a('0x1a')](_0x50b43b)[_0xb71a('0x1b')]();};}function respondWithResult(_0x483d77,_0x47ee48){_0x47ee48=_0x47ee48||0xc8;return function(_0x5364e3){if(_0x5364e3){return _0x483d77[_0xb71a('0x1a')](_0x47ee48)[_0xb71a('0x1c')](_0x5364e3);}};}function respondWithFilteredResult(_0x15252a,_0x42fc55){return function(_0x3cd0f0){if(_0x3cd0f0){var _0x1e9363=typeof _0x42fc55[_0xb71a('0x1d')]===_0xb71a('0x1e')&&typeof _0x42fc55[_0xb71a('0x1f')]==='undefined';var _0x1ca65e=_0x3cd0f0[_0xb71a('0x20')];var _0x374c8c=_0x1e9363?0x0:_0x42fc55[_0xb71a('0x1d')];var _0x2bdb61=_0x1e9363?_0x3cd0f0[_0xb71a('0x20')]:_0x42fc55[_0xb71a('0x1d')]+_0x42fc55[_0xb71a('0x1f')];var _0x20bdfe;if(_0x2bdb61>=_0x1ca65e){_0x2bdb61=_0x1ca65e;_0x20bdfe=0xc8;}else{_0x20bdfe=0xce;}_0x15252a[_0xb71a('0x1a')](_0x20bdfe);return _0x15252a[_0xb71a('0x21')]('Content-Range',_0x374c8c+'-'+_0x2bdb61+'/'+_0x1ca65e)['json'](_0x3cd0f0);}return null;};}function patchUpdates(_0x1358f2){return function(_0x578fe4){try{jsonpatch['apply'](_0x578fe4,_0x1358f2,!![]);}catch(_0x4d8871){return BPromise[_0xb71a('0x22')](_0x4d8871);}return _0x578fe4['save']();};}function saveUpdates(_0x76d6dc,_0x4227c7){return function(_0x3ac77b){if(_0x3ac77b){return _0x3ac77b[_0xb71a('0x23')](_0x76d6dc)[_0xb71a('0x24')](function(_0x14b2a1){return _0x14b2a1;});}return null;};}function removeEntity(_0x2f4fac,_0x14aac7){return function(_0x5f3f19){if(_0x5f3f19){return _0x5f3f19[_0xb71a('0x25')]()[_0xb71a('0x24')](function(){_0x2f4fac[_0xb71a('0x1a')](0xcc)[_0xb71a('0x1b')]();});}};}function handleEntityNotFound(_0x3401f7,_0x1a010d){return function(_0x20ed75){if(!_0x20ed75){_0x3401f7[_0xb71a('0x19')](0x194);}return _0x20ed75;};}function handleError(_0x31085b,_0x2a847a){_0x2a847a=_0x2a847a||0x1f4;return function(_0x45b849){logger[_0xb71a('0x26')](_0x45b849[_0xb71a('0x27')]);if(_0x45b849['name']){delete _0x45b849[_0xb71a('0x28')];}_0x31085b[_0xb71a('0x1a')](_0x2a847a)[_0xb71a('0x29')](_0x45b849);};}exports[_0xb71a('0x2a')]=function(_0x2fbd73,_0x38178c){var _0x44826e={},_0x25364c={},_0x42c086={'count':0x0,'rows':[]};var _0x421fcf=_[_0xb71a('0x2b')](db['CmHopperFinal']['rawAttributes'],function(_0x3112d3){return{'name':_0x3112d3['fieldName'],'type':_0x3112d3[_0xb71a('0x2c')][_0xb71a('0x2d')]};});_0x25364c['model']=_[_0xb71a('0x2b')](_0x421fcf,_0xb71a('0x28'));_0x25364c[_0xb71a('0x2e')]=_[_0xb71a('0x2f')](_0x2fbd73[_0xb71a('0x2e')]);_0x25364c[_0xb71a('0x30')]=_['intersection'](_0x25364c[_0xb71a('0x31')],_0x25364c[_0xb71a('0x2e')]);_0x44826e[_0xb71a('0x32')]=_[_0xb71a('0x33')](_0x25364c['model'],qs[_0xb71a('0x34')](_0x2fbd73[_0xb71a('0x2e')][_0xb71a('0x34')]));_0x44826e[_0xb71a('0x32')]=_0x44826e[_0xb71a('0x32')][_0xb71a('0x35')]?_0x44826e[_0xb71a('0x32')]:_0x25364c[_0xb71a('0x31')];if(!_0x2fbd73[_0xb71a('0x2e')][_0xb71a('0x36')]('nolimit')){_0x44826e['limit']=qs[_0xb71a('0x1f')](_0x2fbd73[_0xb71a('0x2e')][_0xb71a('0x1f')]);_0x44826e[_0xb71a('0x1d')]=qs[_0xb71a('0x1d')](_0x2fbd73[_0xb71a('0x2e')][_0xb71a('0x1d')]);}_0x44826e['order']=qs[_0xb71a('0x37')](_0x2fbd73['query'][_0xb71a('0x37')]);_0x44826e[_0xb71a('0x38')]=qs[_0xb71a('0x30')](_[_0xb71a('0x39')](_0x2fbd73['query'],_0x25364c[_0xb71a('0x30')]),_0x421fcf);if(_0x2fbd73[_0xb71a('0x2e')][_0xb71a('0x3a')]){_0x44826e[_0xb71a('0x38')]=_[_0xb71a('0x3b')](_0x44826e[_0xb71a('0x38')],{'$or':_[_0xb71a('0x2b')](_0x421fcf,function(_0x2756b9){if(_0x2756b9[_0xb71a('0x2c')]!=='VIRTUAL'){var _0x24a3af={};_0x24a3af[_0x2756b9['name']]={'$like':'%'+_0x2fbd73[_0xb71a('0x2e')][_0xb71a('0x3a')]+'%'};return _0x24a3af;}})});}_0x44826e=_[_0xb71a('0x3b')]({},_0x44826e,_0x2fbd73[_0xb71a('0x3c')]);var _0xce7b8a={'where':_0x44826e[_0xb71a('0x38')]};return db['CmHopperFinal']['count'](_0xce7b8a)['then'](function(_0x35fea9){_0x42c086['count']=_0x35fea9;if(_0x2fbd73[_0xb71a('0x2e')][_0xb71a('0x3d')]){_0x44826e[_0xb71a('0x3e')]=[{'all':!![]}];}return db[_0xb71a('0x3f')][_0xb71a('0x40')](_0x44826e);})[_0xb71a('0x24')](function(_0x59530a){_0x42c086[_0xb71a('0x41')]=_0x59530a;return _0x42c086;})[_0xb71a('0x24')](respondWithFilteredResult(_0x38178c,_0x44826e))[_0xb71a('0x42')](handleError(_0x38178c,null));};exports[_0xb71a('0x43')]=function(_0x7d305,_0x2f08d2){var _0x55cbca={'raw':!![],'where':{'id':_0x7d305[_0xb71a('0x44')]['id']}},_0x2afff3={};_0x2afff3[_0xb71a('0x31')]=_[_0xb71a('0x2f')](db[_0xb71a('0x3f')][_0xb71a('0x45')]);_0x2afff3[_0xb71a('0x2e')]=_['keys'](_0x7d305['query']);_0x2afff3[_0xb71a('0x30')]=_[_0xb71a('0x33')](_0x2afff3[_0xb71a('0x31')],_0x2afff3[_0xb71a('0x2e')]);_0x55cbca['attributes']=_[_0xb71a('0x33')](_0x2afff3['model'],qs[_0xb71a('0x34')](_0x7d305[_0xb71a('0x2e')]['fields']));_0x55cbca[_0xb71a('0x32')]=_0x55cbca[_0xb71a('0x32')][_0xb71a('0x35')]?_0x55cbca[_0xb71a('0x32')]:_0x2afff3['model'];if(_0x7d305[_0xb71a('0x2e')][_0xb71a('0x3d')]){_0x55cbca[_0xb71a('0x3e')]=[{'all':!![]}];}_0x55cbca=_['merge']({},_0x55cbca,_0x7d305[_0xb71a('0x3c')]);return db[_0xb71a('0x3f')][_0xb71a('0x46')](_0x55cbca)['then'](handleEntityNotFound(_0x2f08d2,null))[_0xb71a('0x24')](respondWithResult(_0x2f08d2,null))[_0xb71a('0x42')](handleError(_0x2f08d2,null));};exports[_0xb71a('0x47')]=function(_0x1f29b7,_0x365bed){return db['CmHopperFinal'][_0xb71a('0x47')]()[_0xb71a('0x24')](respondWithResult(_0x365bed,null))[_0xb71a('0x42')](handleError(_0x365bed,null));};exports[_0xb71a('0x23')]=function(_0x489c1f,_0x48fbde){if(_0x489c1f[_0xb71a('0x48')][_0xb71a('0x49')]){delete _0x489c1f[_0xb71a('0x48')][_0xb71a('0x49')];}return db[_0xb71a('0x3f')][_0xb71a('0x46')]({'where':{'uniqueid':_0x489c1f[_0xb71a('0x44')]['id']}})[_0xb71a('0x24')](handleEntityNotFound(_0x48fbde,null))[_0xb71a('0x24')](saveUpdates(_0x489c1f[_0xb71a('0x48')],null))['then'](respondWithResult(_0x48fbde,null))[_0xb71a('0x42')](handleError(_0x48fbde,null));};exports[_0xb71a('0x4a')]=function(_0x500196,_0x1c0536,_0x58116c){return db[_0xb71a('0x3f')][_0xb71a('0x40')]({'raw':![],'where':{'VoiceQueueId':_0x500196[_0xb71a('0x44')]['id']},'attributes':[[db[_0xb71a('0x4b')]['fn'](_0xb71a('0x4c'),db['sequelize']['fn']('IF',db[_0xb71a('0x4b')]['literal'](_0xb71a('0x4d')))),_0xb71a('0x4e')],[db['sequelize']['fn']('COUNT',db[_0xb71a('0x4b')]['fn']('IF',db[_0xb71a('0x4b')]['literal']('`state`\x20=\x203,\x201,\x20null'))),'noAnswerContacts'],[db[_0xb71a('0x4b')]['fn']('COUNT',db['sequelize']['fn']('IF',db[_0xb71a('0x4b')][_0xb71a('0x4f')](_0xb71a('0x50')))),_0xb71a('0x51')],[db['sequelize']['fn'](_0xb71a('0x4c'),db[_0xb71a('0x4b')]['fn']('IF',db[_0xb71a('0x4b')]['literal'](_0xb71a('0x52')))),_0xb71a('0x53')],[db['sequelize']['fn'](_0xb71a('0x4c'),db[_0xb71a('0x4b')]['fn']('IF',db[_0xb71a('0x4b')]['literal'](_0xb71a('0x54')))),'dropContacts'],[db[_0xb71a('0x4b')]['fn'](_0xb71a('0x4c'),db['sequelize']['fn']('IF',db[_0xb71a('0x4b')][_0xb71a('0x4f')](_0xb71a('0x55')))),_0xb71a('0x56')],[db[_0xb71a('0x4b')]['fn'](_0xb71a('0x4c'),db[_0xb71a('0x4b')]['fn']('IF',db['sequelize']['literal'](_0xb71a('0x57')))),_0xb71a('0x58')],[db[_0xb71a('0x4b')]['fn'](_0xb71a('0x4c'),db[_0xb71a('0x4b')]['fn']('IF',db['sequelize']['literal'](_0xb71a('0x59')))),_0xb71a('0x5a')]]})['then'](handleEntityNotFound(_0x1c0536,null))[_0xb71a('0x24')](respondWithResult(_0x1c0536,null))[_0xb71a('0x42')](handleError(_0x1c0536,null));};exports['countContactsIvrCampaignHopperFinal']=function(_0x181a9f,_0xe55672,_0x38de3a){return db[_0xb71a('0x3f')]['findAll']({'raw':![],'where':{'CampaignId':_0x181a9f[_0xb71a('0x44')]['id']},'attributes':[[db[_0xb71a('0x4b')]['fn']('COUNT',db[_0xb71a('0x4b')]['fn']('IF',db[_0xb71a('0x4b')][_0xb71a('0x4f')](_0xb71a('0x4d')))),_0xb71a('0x4e')],[db[_0xb71a('0x4b')]['fn'](_0xb71a('0x4c'),db[_0xb71a('0x4b')]['fn']('IF',db['sequelize'][_0xb71a('0x4f')](_0xb71a('0x5b')))),'noAnswerContacts'],[db[_0xb71a('0x4b')]['fn'](_0xb71a('0x4c'),db['sequelize']['fn']('IF',db[_0xb71a('0x4b')][_0xb71a('0x4f')](_0xb71a('0x50')))),_0xb71a('0x51')],[db[_0xb71a('0x4b')]['fn'](_0xb71a('0x4c'),db['sequelize']['fn']('IF',db['sequelize'][_0xb71a('0x4f')](_0xb71a('0x52')))),_0xb71a('0x53')],[db['sequelize']['fn'](_0xb71a('0x4c'),db['sequelize']['fn']('IF',db[_0xb71a('0x4b')]['literal']('`state`\x20=\x2010\x20,\x201,\x20null'))),_0xb71a('0x5c')],[db[_0xb71a('0x4b')]['fn'](_0xb71a('0x4c'),db[_0xb71a('0x4b')]['fn']('IF',db[_0xb71a('0x4b')]['literal'](_0xb71a('0x55')))),'abandonedContacts'],[db[_0xb71a('0x4b')]['fn'](_0xb71a('0x4c'),db[_0xb71a('0x4b')]['fn']('IF',db['sequelize']['literal'](_0xb71a('0x57')))),_0xb71a('0x58')],[db[_0xb71a('0x4b')]['fn'](_0xb71a('0x4c'),db[_0xb71a('0x4b')]['fn']('IF',db['sequelize'][_0xb71a('0x4f')](_0xb71a('0x59')))),_0xb71a('0x5a')]]})[_0xb71a('0x24')](handleEntityNotFound(_0xe55672,null))[_0xb71a('0x24')](respondWithResult(_0xe55672,null))['catch'](handleError(_0xe55672,null));};exports['moveContactsQueueCampaignHopperFinal']=function(_0x15b8be,_0x2dd470,_0x38a8a1){return db[_0xb71a('0x5d')][_0xb71a('0x46')]({'where':{'id':_0x15b8be[_0xb71a('0x44')]['id']}})[_0xb71a('0x24')](handleEntityNotFound(_0x2dd470,null))['then'](function(_0x45f4b2){var _0x27c15e;if(_0x45f4b2){_0x27c15e=squel['insert']()[_0xb71a('0x5e')](_0xb71a('0x5f'))[_0xb71a('0x60')](['phone',_0xb71a('0x61'),_0xb71a('0x62'),_0xb71a('0x63'),'VoiceQueueId',_0xb71a('0x64'),_0xb71a('0x65')],squel[_0xb71a('0x66')]()[_0xb71a('0x67')](_0xb71a('0x68'),_0xb71a('0x69'))[_0xb71a('0x67')](_0xb71a('0x6a'),'scheduledAt')[_0xb71a('0x67')](_0xb71a('0x6b'),_0xb71a('0x62'))[_0xb71a('0x67')](_0xb71a('0x6c'),_0xb71a('0x63'))[_0xb71a('0x67')]('ANY_VALUE(VoiceQueueId)',_0xb71a('0x6d'))['field'](_0xb71a('0x6a'),_0xb71a('0x64'))['field'](_0xb71a('0x6a'),'updatedAt')[_0xb71a('0x6e')]('cm_hopper_final')[_0xb71a('0x38')](_0xb71a('0x6f'),_0x15b8be[_0xb71a('0x44')]['id'][_0xb71a('0x70')]())['where'](_0xb71a('0x71'),_0x15b8be[_0xb71a('0x48')]['state'][_0xb71a('0x70')]())['where']('calleridnum\x20IS\x20NOT\x20NULL')['where']('calleridnum\x20NOT\x20IN\x20(?)',squel[_0xb71a('0x66')]()[_0xb71a('0x67')](_0xb71a('0x69'))['from'](_0xb71a('0x5f'))[_0xb71a('0x38')]('VoiceQueueId\x20=\x20?',_0x15b8be[_0xb71a('0x44')]['id'][_0xb71a('0x70')]()))[_0xb71a('0x38')](_0xb71a('0x72'),squel[_0xb71a('0x66')]()[_0xb71a('0x67')]('calleridnum')[_0xb71a('0x6e')](_0xb71a('0x73'))[_0xb71a('0x38')](_0xb71a('0x6f'),_0x15b8be[_0xb71a('0x44')]['id'][_0xb71a('0x70')]())['where'](_0xb71a('0x74')))[_0xb71a('0x75')]('ContactId'))[_0xb71a('0x70')]();return db[_0xb71a('0x4b')][_0xb71a('0x2e')](_0x27c15e);}return[];})['then'](respondWithResult(_0x2dd470,null))[_0xb71a('0x42')](handleError(_0x2dd470,null));};exports[_0xb71a('0x76')]=function(_0x28bc74,_0x575a0a,_0x1a658e){return db[_0xb71a('0x77')]['find']({'where':{'id':_0x28bc74[_0xb71a('0x44')]['id']}})[_0xb71a('0x24')](handleEntityNotFound(_0x575a0a,null))[_0xb71a('0x24')](function(_0x21b9b5){var _0x4abfd6;if(_0x21b9b5){_0x4abfd6=squel[_0xb71a('0x78')]()[_0xb71a('0x5e')](_0xb71a('0x5f'))[_0xb71a('0x60')](['phone',_0xb71a('0x61'),_0xb71a('0x62'),'ListId',_0xb71a('0x79'),_0xb71a('0x64'),'updatedAt'],squel[_0xb71a('0x66')]()[_0xb71a('0x67')](_0xb71a('0x68'),'phone')[_0xb71a('0x67')](_0xb71a('0x6a'),_0xb71a('0x61'))[_0xb71a('0x67')](_0xb71a('0x6b'),_0xb71a('0x62'))[_0xb71a('0x67')](_0xb71a('0x6c'),_0xb71a('0x63'))['field']('ANY_VALUE(CampaignId)',_0xb71a('0x79'))[_0xb71a('0x67')](_0xb71a('0x6a'),_0xb71a('0x64'))[_0xb71a('0x67')](_0xb71a('0x6a'),'updatedAt')[_0xb71a('0x6e')]('cm_hopper_final')[_0xb71a('0x38')]('CampaignId\x20=\x20?',_0x28bc74[_0xb71a('0x44')]['id'][_0xb71a('0x70')]())['where'](_0xb71a('0x71'),_0x28bc74[_0xb71a('0x48')][_0xb71a('0x7a')][_0xb71a('0x70')]())[_0xb71a('0x38')]('calleridnum\x20IS\x20NOT\x20NULL')[_0xb71a('0x38')](_0xb71a('0x72'),squel['select']()[_0xb71a('0x67')](_0xb71a('0x69'))['from'](_0xb71a('0x5f'))[_0xb71a('0x38')](_0xb71a('0x7b'),_0x28bc74['params']['id'][_0xb71a('0x70')]()))[_0xb71a('0x38')](_0xb71a('0x72'),squel['select']()[_0xb71a('0x67')](_0xb71a('0x7c'))[_0xb71a('0x6e')](_0xb71a('0x73'))[_0xb71a('0x38')]('CampaignId\x20=\x20?',_0x28bc74[_0xb71a('0x44')]['id']['toString']())[_0xb71a('0x38')](_0xb71a('0x74')))[_0xb71a('0x75')]('ContactId'))['toString']();return db[_0xb71a('0x4b')][_0xb71a('0x2e')](_0x4abfd6);}return[];})[_0xb71a('0x24')](respondWithResult(_0x575a0a,null))[_0xb71a('0x42')](handleError(_0x575a0a,null));};exports[_0xb71a('0x7d')]=function(_0x18dfb3,_0x38ffc1,_0x442ec0){return db[_0xb71a('0x7e')][_0xb71a('0x7f')]({'where':{'VoiceQueueId':_0x18dfb3[_0xb71a('0x48')][_0xb71a('0x6d')],'CampaignId':_0x18dfb3[_0xb71a('0x48')][_0xb71a('0x79')],'ContactId':_0x18dfb3[_0xb71a('0x48')]['ContactId']}})[_0xb71a('0x24')](handleEntityNotFound(_0x38ffc1,null))[_0xb71a('0x24')](function(_0x243c90){if(_0x243c90){return _0x243c90;}return null;})['then'](respondWithResult(_0x38ffc1,null))['catch'](handleError(_0x38ffc1,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x666d=['CmHopperFinal','cm_hopper_final','calleridnum','uniqueid','lodash','../../config/logger','api','request-promise','rimraf','../../config/environment','exports','define'];(function(_0x3b59ed,_0x281a70){var _0x5cf829=function(_0xca820){while(--_0xca820){_0x3b59ed['push'](_0x3b59ed['shift']());}};_0x5cf829(++_0x281a70);}(_0x666d,0xf4));var _0xd666=function(_0x4b2436,_0x452299){_0x4b2436=_0x4b2436-0x0;var _0x4f5ab2=_0x666d[_0x4b2436];return _0x4f5ab2;};'use strict';var _=require(_0xd666('0x0'));var util=require('util');var logger=require(_0xd666('0x1'))(_0xd666('0x2'));var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0xd666('0x3'));var fs=require('fs');var path=require('path');var rimraf=require(_0xd666('0x4'));var config=require(_0xd666('0x5'));var attributes=require('./cmHopperFinal.attributes');module[_0xd666('0x6')]=function(_0x15a2c6,_0x178ef0){return _0x15a2c6[_0xd666('0x7')](_0xd666('0x8'),attributes,{'tableName':_0xd666('0x9'),'paranoid':![],'indexes':[{'name':'calleridnum','fields':[_0xd666('0xa')]},{'name':_0xd666('0xb'),'fields':[_0xd666('0xb')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0xb78e=['define','CmHopperFinal','cm_hopper_final','calleridnum','uniqueid','../../config/logger','bluebird','rimraf','../../config/environment'];(function(_0x436f79,_0x1fc473){var _0x31ca4a=function(_0x35a7b1){while(--_0x35a7b1){_0x436f79['push'](_0x436f79['shift']());}};_0x31ca4a(++_0x1fc473);}(_0xb78e,0x1eb));var _0xeb78=function(_0xebe6e2,_0x2f84d7){_0xebe6e2=_0xebe6e2-0x0;var _0x3e35cb=_0xb78e[_0xebe6e2];return _0x3e35cb;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0xeb78('0x0'))('api');var moment=require('moment');var BPromise=require(_0xeb78('0x1'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0xeb78('0x2'));var config=require(_0xeb78('0x3'));var attributes=require('./cmHopperFinal.attributes');module['exports']=function(_0x25c29c,_0x7a2a1c){return _0x25c29c[_0xeb78('0x4')](_0xeb78('0x5'),attributes,{'tableName':_0xeb78('0x6'),'paranoid':![],'indexes':[{'name':'calleridnum','fields':[_0xeb78('0x7')]},{'name':_0xeb78('0x8'),'fields':[_0xeb78('0x8')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7a54=['../../config/environment','jayson/promise','http','info','CmHopperFinal,\x20%s,\x20%s','debug','stringify','error','code','message','request\x20sent','result','catch','CmHopperFinal','create','body','options','raw','CreateCmHopperFinal','lodash','util','moment','randomstring','ioredis','../../config/utils','../../config/logger','rpc'];(function(_0x8749c0,_0x59fd6e){var _0x233ad7=function(_0x4bbec8){while(--_0x4bbec8){_0x8749c0['push'](_0x8749c0['shift']());}};_0x233ad7(++_0x59fd6e);}(_0x7a54,0x106));var _0x47a5=function(_0x67046,_0x27b44c){_0x67046=_0x67046-0x0;var _0xfe391e=_0x7a54[_0x67046];return _0xfe391e;};'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')]('CmHopperFinal,\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['CreateCmHopperFinal']=function(_0x5247fd){var _0x423a81=this;return new Promise(function(_0xaf70a6,_0x2ce454){return db[_0x47a5('0x15')][_0x47a5('0x16')](_0x5247fd[_0x47a5('0x17')],{'raw':_0x5247fd[_0x47a5('0x18')]?_0x5247fd[_0x47a5('0x18')][_0x47a5('0x19')]===undefined?!![]:![]:!![]})['then'](function(_0x1570bc){logger[_0x47a5('0xb')]('CreateCmHopperFinal',_0x5247fd);logger[_0x47a5('0xd')](_0x47a5('0x1a'),_0x5247fd,JSON[_0x47a5('0xe')](_0x1570bc));_0xaf70a6(_0x1570bc);})['catch'](function(_0xb8ae6c){logger[_0x47a5('0xf')](_0x47a5('0x1a'),_0xb8ae6c[_0x47a5('0x11')],_0x5247fd);_0x2ce454(_0x423a81['error'](0x1f4,_0xb8ae6c[_0x47a5('0x11')]));});});};
\ No newline at end of file
+var _0x7a54=['../../config/environment','jayson/promise','http','info','CmHopperFinal,\x20%s,\x20%s','debug','stringify','error','code','message','request\x20sent','result','catch','CmHopperFinal','create','body','options','raw','CreateCmHopperFinal','lodash','util','moment','randomstring','ioredis','../../config/utils','../../config/logger','rpc'];(function(_0x3c08d5,_0xf0a8b9){var _0x1aa376=function(_0x4a19bd){while(--_0x4a19bd){_0x3c08d5['push'](_0x3c08d5['shift']());}};_0x1aa376(++_0xf0a8b9);}(_0x7a54,0x106));var _0x47a5=function(_0xba5d7e,_0x2f96eb){_0xba5d7e=_0xba5d7e-0x0;var _0x5d99a6=_0x7a54[_0xba5d7e];return _0x5d99a6;};'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')]('CmHopperFinal,\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['CreateCmHopperFinal']=function(_0x5247fd){var _0x423a81=this;return new Promise(function(_0xaf70a6,_0x2ce454){return db[_0x47a5('0x15')][_0x47a5('0x16')](_0x5247fd[_0x47a5('0x17')],{'raw':_0x5247fd[_0x47a5('0x18')]?_0x5247fd[_0x47a5('0x18')][_0x47a5('0x19')]===undefined?!![]:![]:!![]})['then'](function(_0x1570bc){logger[_0x47a5('0xb')]('CreateCmHopperFinal',_0x5247fd);logger[_0x47a5('0xd')](_0x47a5('0x1a'),_0x5247fd,JSON[_0x47a5('0xe')](_0x1570bc));_0xaf70a6(_0x1570bc);})['catch'](function(_0xb8ae6c){logger[_0x47a5('0xf')](_0x47a5('0x1a'),_0xb8ae6c[_0x47a5('0x11')],_0x5247fd);_0x2ce454(_0x423a81['error'](0x1f4,_0xb8ae6c[_0x47a5('0x11')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf5a6=['isAuthenticated','show','/voice/queue/countAttributes/:id','countContactsQueueCampaignHopperFinal','/campaign/countAttributes/:id','countContactsIvrCampaignHopperFinal','post','/voice/queue/moveContacts/:id','moveContactsQueueCampaignHopperFinal','/voice/campaign/moveContacts/:id','moveContactsIvrCampaignHopperFinal','/checkContactHopper','put','update','exports','multer','util','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../config/environment','./cmHopperFinal.controller','get','/describe','describe','/:id'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0xf5a6,0x7f));var _0x6f5a=function(_0x111f4c,_0x100a67){_0x111f4c=_0x111f4c-0x0;var _0x168d71=_0xf5a6[_0x111f4c];return _0x168d71;};'use strict';var multer=require(_0x6f5a('0x0'));var util=require(_0x6f5a('0x1'));var path=require('path');var timeout=require(_0x6f5a('0x2'));var express=require(_0x6f5a('0x3'));var router=express[_0x6f5a('0x4')]();var fs_extra=require(_0x6f5a('0x5'));var auth=require(_0x6f5a('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0x6f5a('0x7'));var controller=require(_0x6f5a('0x8'));router[_0x6f5a('0x9')]('/',auth['isAuthenticated'](),controller['index']);router['get'](_0x6f5a('0xa'),auth['isAuthenticated'](),controller[_0x6f5a('0xb')]);router['get'](_0x6f5a('0xc'),auth[_0x6f5a('0xd')](),controller[_0x6f5a('0xe')]);router['get'](_0x6f5a('0xf'),auth['isAuthenticated'](),controller[_0x6f5a('0x10')]);router[_0x6f5a('0x9')](_0x6f5a('0x11'),auth[_0x6f5a('0xd')](),controller[_0x6f5a('0x12')]);router[_0x6f5a('0x13')](_0x6f5a('0x14'),auth[_0x6f5a('0xd')](),controller[_0x6f5a('0x15')]);router[_0x6f5a('0x13')](_0x6f5a('0x16'),auth['isAuthenticated'](),controller[_0x6f5a('0x17')]);router['post'](_0x6f5a('0x18'),auth[_0x6f5a('0xd')](),controller['checkContactHopper']);router[_0x6f5a('0x19')]('/:id',auth[_0x6f5a('0xd')](),controller[_0x6f5a('0x1a')]);module[_0x6f5a('0x1b')]=router;
\ No newline at end of file
+var _0x0189=['path','connect-timeout','express','../../components/auth/service','../../components/interaction/service','./cmHopperFinal.controller','get','index','/describe','isAuthenticated','describe','/:id','show','/voice/queue/countAttributes/:id','countContactsQueueCampaignHopperFinal','/campaign/countAttributes/:id','countContactsIvrCampaignHopperFinal','/voice/queue/moveContacts/:id','moveContactsQueueCampaignHopperFinal','post','/voice/campaign/moveContacts/:id','moveContactsIvrCampaignHopperFinal','/checkContactHopper','update','exports','multer','util'];(function(_0x5158fc,_0x44a74b){var _0x239bc3=function(_0x1f9482){while(--_0x1f9482){_0x5158fc['push'](_0x5158fc['shift']());}};_0x239bc3(++_0x44a74b);}(_0x0189,0x178));var _0x9018=function(_0x56a5d7,_0x3dff3b){_0x56a5d7=_0x56a5d7-0x0;var _0x538274=_0x0189[_0x56a5d7];return _0x538274;};'use strict';var multer=require(_0x9018('0x0'));var util=require(_0x9018('0x1'));var path=require(_0x9018('0x2'));var timeout=require(_0x9018('0x3'));var express=require(_0x9018('0x4'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0x9018('0x5'));var interaction=require(_0x9018('0x6'));var config=require('../../config/environment');var controller=require(_0x9018('0x7'));router[_0x9018('0x8')]('/',auth['isAuthenticated'](),controller[_0x9018('0x9')]);router[_0x9018('0x8')](_0x9018('0xa'),auth[_0x9018('0xb')](),controller[_0x9018('0xc')]);router[_0x9018('0x8')](_0x9018('0xd'),auth[_0x9018('0xb')](),controller[_0x9018('0xe')]);router['get'](_0x9018('0xf'),auth[_0x9018('0xb')](),controller[_0x9018('0x10')]);router[_0x9018('0x8')](_0x9018('0x11'),auth[_0x9018('0xb')](),controller[_0x9018('0x12')]);router['post'](_0x9018('0x13'),auth['isAuthenticated'](),controller[_0x9018('0x14')]);router[_0x9018('0x15')](_0x9018('0x16'),auth[_0x9018('0xb')](),controller[_0x9018('0x17')]);router['post'](_0x9018('0x18'),auth[_0x9018('0xb')](),controller['checkContactHopper']);router['put'](_0x9018('0xd'),auth[_0x9018('0xb')](),controller[_0x9018('0x19')]);module[_0x9018('0x1a')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3ad8=['sequelize','INTEGER','STRING','DATE','BOOLEAN'];(function(_0x1beef3,_0x57c4b8){var _0x5af964=function(_0x36f463){while(--_0x36f463){_0x1beef3['push'](_0x1beef3['shift']());}};_0x5af964(++_0x57c4b8);}(_0x3ad8,0x19f));var _0x83ad=function(_0x3e754f,_0x6a8c6b){_0x3e754f=_0x3e754f-0x0;var _0x25e429=_0x3ad8[_0x3e754f];return _0x25e429;};'use strict';var Sequelize=require(_0x83ad('0x0'));module['exports']={'state':{'type':Sequelize[_0x83ad('0x1')](0x2)},'statedesc':{'type':Sequelize[_0x83ad('0x2')]},'scheduledat':{'type':Sequelize[_0x83ad('0x3')]},'countbusyretry':{'type':Sequelize[_0x83ad('0x1')],'defaultValue':0x0},'countcongestionretry':{'type':Sequelize[_0x83ad('0x1')],'defaultValue':0x0},'countnoanswerretry':{'type':Sequelize[_0x83ad('0x1')],'defaultValue':0x0},'countglobal':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'uniqueid':{'type':Sequelize[_0x83ad('0x2')]},'originatecalleridnum':{'type':Sequelize['STRING']},'originatecalleridname':{'type':Sequelize['STRING']},'calleridnum':{'type':Sequelize[_0x83ad('0x2')]},'calleridname':{'type':Sequelize['STRING']},'starttime':{'type':Sequelize[_0x83ad('0x3')]},'responsetime':{'type':Sequelize[_0x83ad('0x3')]},'answertime':{'type':Sequelize['DATE']},'droptime':{'type':Sequelize[_0x83ad('0x3')]},'endtime':{'type':Sequelize['DATE']},'ringtime':{'type':Sequelize[_0x83ad('0x1')],'defaultValue':0x0},'holdtime':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'talktime':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'followuptime':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'dropreason':{'type':Sequelize[_0x83ad('0x2')]},'campaign':{'type':Sequelize[_0x83ad('0x2')]},'campaigntype':{'type':Sequelize[_0x83ad('0x2')]},'membername':{'type':Sequelize[_0x83ad('0x2')]},'reason':{'type':Sequelize[_0x83ad('0x2')]},'amd':{'type':Sequelize[_0x83ad('0x4')],'defaultValue':![]},'fax':{'type':Sequelize[_0x83ad('0x4')],'defaultValue':![]},'callback':{'type':Sequelize[_0x83ad('0x4')],'defaultValue':![]},'callbackuniqueid':{'type':Sequelize[_0x83ad('0x2')],'defaultValue':null},'callbackat':{'type':Sequelize[_0x83ad('0x3')]},'recallme':{'type':Sequelize[_0x83ad('0x4')],'defaultValue':![]},'editedat':{'type':Sequelize['DATE']},'edited':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'countnosuchnumberretry':{'type':Sequelize[_0x83ad('0x1')],'defaultValue':0x0},'countdropretry':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'countabandonedretry':{'type':Sequelize[_0x83ad('0x1')],'defaultValue':0x0},'countmachineretry':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'countagentrejectretry':{'type':Sequelize[_0x83ad('0x1')],'defaultValue':0x0}};
\ No newline at end of file
+var _0xe7e0=['DATE','INTEGER','BOOLEAN','sequelize','exports','STRING'];(function(_0x4d7675,_0x3b96e9){var _0x958bb8=function(_0xd371b){while(--_0xd371b){_0x4d7675['push'](_0x4d7675['shift']());}};_0x958bb8(++_0x3b96e9);}(_0xe7e0,0x8d));var _0x0e7e=function(_0x2d3de4,_0x48b437){_0x2d3de4=_0x2d3de4-0x0;var _0x38035c=_0xe7e0[_0x2d3de4];return _0x38035c;};'use strict';var Sequelize=require(_0x0e7e('0x0'));module[_0x0e7e('0x1')]={'state':{'type':Sequelize['INTEGER'](0x2)},'statedesc':{'type':Sequelize[_0x0e7e('0x2')]},'scheduledat':{'type':Sequelize[_0x0e7e('0x3')]},'countbusyretry':{'type':Sequelize[_0x0e7e('0x4')],'defaultValue':0x0},'countcongestionretry':{'type':Sequelize[_0x0e7e('0x4')],'defaultValue':0x0},'countnoanswerretry':{'type':Sequelize[_0x0e7e('0x4')],'defaultValue':0x0},'countglobal':{'type':Sequelize[_0x0e7e('0x4')],'defaultValue':0x0},'uniqueid':{'type':Sequelize[_0x0e7e('0x2')]},'originatecalleridnum':{'type':Sequelize['STRING']},'originatecalleridname':{'type':Sequelize['STRING']},'calleridnum':{'type':Sequelize[_0x0e7e('0x2')]},'calleridname':{'type':Sequelize['STRING']},'starttime':{'type':Sequelize[_0x0e7e('0x3')]},'responsetime':{'type':Sequelize[_0x0e7e('0x3')]},'answertime':{'type':Sequelize[_0x0e7e('0x3')]},'droptime':{'type':Sequelize[_0x0e7e('0x3')]},'endtime':{'type':Sequelize[_0x0e7e('0x3')]},'ringtime':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'holdtime':{'type':Sequelize[_0x0e7e('0x4')],'defaultValue':0x0},'talktime':{'type':Sequelize[_0x0e7e('0x4')],'defaultValue':0x0},'followuptime':{'type':Sequelize[_0x0e7e('0x4')],'defaultValue':0x0},'dropreason':{'type':Sequelize[_0x0e7e('0x2')]},'campaign':{'type':Sequelize[_0x0e7e('0x2')]},'campaigntype':{'type':Sequelize[_0x0e7e('0x2')]},'membername':{'type':Sequelize['STRING']},'reason':{'type':Sequelize['STRING']},'amd':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'fax':{'type':Sequelize[_0x0e7e('0x5')],'defaultValue':![]},'callback':{'type':Sequelize[_0x0e7e('0x5')],'defaultValue':![]},'callbackuniqueid':{'type':Sequelize['STRING'],'defaultValue':null},'callbackat':{'type':Sequelize[_0x0e7e('0x3')]},'recallme':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'editedat':{'type':Sequelize['DATE']},'edited':{'type':Sequelize[_0x0e7e('0x5')],'defaultValue':![]},'countnosuchnumberretry':{'type':Sequelize[_0x0e7e('0x4')],'defaultValue':0x0},'countdropretry':{'type':Sequelize[_0x0e7e('0x4')],'defaultValue':0x0},'countabandonedretry':{'type':Sequelize[_0x0e7e('0x4')],'defaultValue':0x0},'countmachineretry':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'countagentrejectretry':{'type':Sequelize[_0x0e7e('0x4')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1a4e=['rimraf','request-promise','moment','bluebird','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','end','status','offset','limit','undefined','count','Content-Range','json','apply','reject','save','update','then','destroy','sendStatus','error','name','index','map','CmHopperHistory','rawAttributes','type','key','model','query','intersection','fields','attributes','order','sort','where','filters','pick','filter','merge','options','includeAll','findAll','show','params','keys','length','include','find','catch','create','body','describe','uniqueid','eml-format'];(function(_0x8edf6f,_0x3361a1){var _0x1ec411=function(_0x12498e){while(--_0x12498e){_0x8edf6f['push'](_0x8edf6f['shift']());}};_0x1ec411(++_0x3361a1);}(_0x1a4e,0x16c));var _0xe1a4=function(_0x4a2fde,_0x190c2f){_0x4a2fde=_0x4a2fde-0x0;var _0x52ab47=_0x1a4e[_0x4a2fde];return _0x52ab47;};'use strict';var emlformat=require(_0xe1a4('0x0'));var rimraf=require(_0xe1a4('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0xe1a4('0x2'));var moment=require(_0xe1a4('0x3'));var BPromise=require(_0xe1a4('0x4'));var Mustache=require('mustache');var util=require('util');var path=require(_0xe1a4('0x5'));var sox=require(_0xe1a4('0x6'));var csv=require(_0xe1a4('0x7'));var ejs=require(_0xe1a4('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xe1a4('0x9'));var squel=require(_0xe1a4('0xa'));var crypto=require(_0xe1a4('0xb'));var jsforce=require(_0xe1a4('0xc'));var deskjs=require(_0xe1a4('0xd'));var toCsv=require('to-csv');var querystring=require(_0xe1a4('0xe'));var Papa=require(_0xe1a4('0xf'));var Redis=require('ioredis');var authService=require(_0xe1a4('0x10'));var qs=require(_0xe1a4('0x11'));var as=require(_0xe1a4('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xe1a4('0x13'));var utils=require(_0xe1a4('0x14'));var config=require(_0xe1a4('0x15'));var licenseUtil=require(_0xe1a4('0x16'));var db=require(_0xe1a4('0x17'))['db'];function respondWithStatusCode(_0x595e77,_0x2ee5fb){_0x2ee5fb=_0x2ee5fb||0xcc;return function(_0x556446){if(_0x556446){return _0x595e77['sendStatus'](_0x2ee5fb);}return _0x595e77['status'](_0x2ee5fb)[_0xe1a4('0x18')]();};}function respondWithResult(_0x19f701,_0x7488a0){_0x7488a0=_0x7488a0||0xc8;return function(_0x39d664){if(_0x39d664){return _0x19f701[_0xe1a4('0x19')](_0x7488a0)['json'](_0x39d664);}};}function respondWithFilteredResult(_0x476b6f,_0x5dd3e7){return function(_0x51d81e){if(_0x51d81e){var _0x3f0aa9=typeof _0x5dd3e7[_0xe1a4('0x1a')]==='undefined'&&typeof _0x5dd3e7[_0xe1a4('0x1b')]===_0xe1a4('0x1c');var _0x50c34f=_0x51d81e[_0xe1a4('0x1d')];var _0x333eb6=_0x3f0aa9?0x0:_0x5dd3e7[_0xe1a4('0x1a')];var _0x5b352b=_0x3f0aa9?_0x51d81e[_0xe1a4('0x1d')]:_0x5dd3e7[_0xe1a4('0x1a')]+_0x5dd3e7['limit'];var _0x484481;if(_0x5b352b>=_0x50c34f){_0x5b352b=_0x50c34f;_0x484481=0xc8;}else{_0x484481=0xce;}_0x476b6f[_0xe1a4('0x19')](_0x484481);return _0x476b6f['set'](_0xe1a4('0x1e'),_0x333eb6+'-'+_0x5b352b+'/'+_0x50c34f)[_0xe1a4('0x1f')](_0x51d81e);}return null;};}function patchUpdates(_0x5161d6){return function(_0x13a602){try{jsonpatch[_0xe1a4('0x20')](_0x13a602,_0x5161d6,!![]);}catch(_0x298c82){return BPromise[_0xe1a4('0x21')](_0x298c82);}return _0x13a602[_0xe1a4('0x22')]();};}function saveUpdates(_0x3d530e,_0x567a54){return function(_0x5d78ca){if(_0x5d78ca){return _0x5d78ca[_0xe1a4('0x23')](_0x3d530e)[_0xe1a4('0x24')](function(_0x51f081){return _0x51f081;});}return null;};}function removeEntity(_0x492673,_0x25de85){return function(_0x357ca3){if(_0x357ca3){return _0x357ca3[_0xe1a4('0x25')]()[_0xe1a4('0x24')](function(){_0x492673[_0xe1a4('0x19')](0xcc)[_0xe1a4('0x18')]();});}};}function handleEntityNotFound(_0x24efc1,_0x633589){return function(_0x557253){if(!_0x557253){_0x24efc1[_0xe1a4('0x26')](0x194);}return _0x557253;};}function handleError(_0xd7c87e,_0x1fdc4b){_0x1fdc4b=_0x1fdc4b||0x1f4;return function(_0xf14749){logger[_0xe1a4('0x27')](_0xf14749['stack']);if(_0xf14749['name']){delete _0xf14749[_0xe1a4('0x28')];}_0xd7c87e[_0xe1a4('0x19')](_0x1fdc4b)['send'](_0xf14749);};}exports[_0xe1a4('0x29')]=function(_0x588927,_0x33211e){var _0x4f78cc={},_0x502f60={},_0x16d5ea={'count':0x0,'rows':[]};var _0x2892c5=_[_0xe1a4('0x2a')](db[_0xe1a4('0x2b')][_0xe1a4('0x2c')],function(_0xf3e842){return{'name':_0xf3e842['fieldName'],'type':_0xf3e842[_0xe1a4('0x2d')][_0xe1a4('0x2e')]};});_0x502f60[_0xe1a4('0x2f')]=_[_0xe1a4('0x2a')](_0x2892c5,_0xe1a4('0x28'));_0x502f60[_0xe1a4('0x30')]=_['keys'](_0x588927[_0xe1a4('0x30')]);_0x502f60['filters']=_[_0xe1a4('0x31')](_0x502f60[_0xe1a4('0x2f')],_0x502f60[_0xe1a4('0x30')]);_0x4f78cc['attributes']=_[_0xe1a4('0x31')](_0x502f60[_0xe1a4('0x2f')],qs[_0xe1a4('0x32')](_0x588927[_0xe1a4('0x30')]['fields']));_0x4f78cc['attributes']=_0x4f78cc[_0xe1a4('0x33')]['length']?_0x4f78cc[_0xe1a4('0x33')]:_0x502f60[_0xe1a4('0x2f')];if(!_0x588927['query']['hasOwnProperty']('nolimit')){_0x4f78cc['limit']=qs[_0xe1a4('0x1b')](_0x588927[_0xe1a4('0x30')][_0xe1a4('0x1b')]);_0x4f78cc['offset']=qs[_0xe1a4('0x1a')](_0x588927[_0xe1a4('0x30')][_0xe1a4('0x1a')]);}_0x4f78cc[_0xe1a4('0x34')]=qs[_0xe1a4('0x35')](_0x588927[_0xe1a4('0x30')][_0xe1a4('0x35')]);_0x4f78cc[_0xe1a4('0x36')]=qs[_0xe1a4('0x37')](_[_0xe1a4('0x38')](_0x588927['query'],_0x502f60['filters']),_0x2892c5);if(_0x588927[_0xe1a4('0x30')][_0xe1a4('0x39')]){_0x4f78cc[_0xe1a4('0x36')]=_[_0xe1a4('0x3a')](_0x4f78cc[_0xe1a4('0x36')],{'$or':_[_0xe1a4('0x2a')](_0x2892c5,function(_0x175733){if(_0x175733[_0xe1a4('0x2d')]!=='VIRTUAL'){var _0x1597f0={};_0x1597f0[_0x175733[_0xe1a4('0x28')]]={'$like':'%'+_0x588927[_0xe1a4('0x30')][_0xe1a4('0x39')]+'%'};return _0x1597f0;}})});}_0x4f78cc=_[_0xe1a4('0x3a')]({},_0x4f78cc,_0x588927[_0xe1a4('0x3b')]);var _0x4cc768={'where':_0x4f78cc[_0xe1a4('0x36')]};return db['CmHopperHistory'][_0xe1a4('0x1d')](_0x4cc768)[_0xe1a4('0x24')](function(_0xa98c06){_0x16d5ea[_0xe1a4('0x1d')]=_0xa98c06;if(_0x588927[_0xe1a4('0x30')][_0xe1a4('0x3c')]){_0x4f78cc['include']=[{'all':!![]}];}return db[_0xe1a4('0x2b')][_0xe1a4('0x3d')](_0x4f78cc);})[_0xe1a4('0x24')](function(_0x19be2e){_0x16d5ea['rows']=_0x19be2e;return _0x16d5ea;})[_0xe1a4('0x24')](respondWithFilteredResult(_0x33211e,_0x4f78cc))['catch'](handleError(_0x33211e,null));};exports[_0xe1a4('0x3e')]=function(_0x31a8a0,_0xc31a8f){var _0x539e42={'raw':!![],'where':{'id':_0x31a8a0[_0xe1a4('0x3f')]['id']}},_0x1533cb={};_0x1533cb[_0xe1a4('0x2f')]=_[_0xe1a4('0x40')](db['CmHopperHistory']['rawAttributes']);_0x1533cb['query']=_[_0xe1a4('0x40')](_0x31a8a0[_0xe1a4('0x30')]);_0x1533cb[_0xe1a4('0x37')]=_[_0xe1a4('0x31')](_0x1533cb[_0xe1a4('0x2f')],_0x1533cb[_0xe1a4('0x30')]);_0x539e42[_0xe1a4('0x33')]=_[_0xe1a4('0x31')](_0x1533cb[_0xe1a4('0x2f')],qs['fields'](_0x31a8a0[_0xe1a4('0x30')][_0xe1a4('0x32')]));_0x539e42['attributes']=_0x539e42[_0xe1a4('0x33')][_0xe1a4('0x41')]?_0x539e42[_0xe1a4('0x33')]:_0x1533cb['model'];if(_0x31a8a0['query'][_0xe1a4('0x3c')]){_0x539e42[_0xe1a4('0x42')]=[{'all':!![]}];}_0x539e42=_[_0xe1a4('0x3a')]({},_0x539e42,_0x31a8a0[_0xe1a4('0x3b')]);return db[_0xe1a4('0x2b')][_0xe1a4('0x43')](_0x539e42)[_0xe1a4('0x24')](handleEntityNotFound(_0xc31a8f,null))[_0xe1a4('0x24')](respondWithResult(_0xc31a8f,null))[_0xe1a4('0x44')](handleError(_0xc31a8f,null));};exports[_0xe1a4('0x45')]=function(_0x72550a,_0x546d5a){return db[_0xe1a4('0x2b')][_0xe1a4('0x45')](_0x72550a[_0xe1a4('0x46')],{})[_0xe1a4('0x24')](respondWithResult(_0x546d5a,0xc9))['catch'](handleError(_0x546d5a,null));};exports[_0xe1a4('0x47')]=function(_0x126999,_0x1050be){return db[_0xe1a4('0x2b')]['describe']()['then'](respondWithResult(_0x1050be,null))['catch'](handleError(_0x1050be,null));};exports[_0xe1a4('0x23')]=function(_0x1c021c,_0x19cbd2){if(_0x1c021c[_0xe1a4('0x46')]['uniqueid']){delete _0x1c021c['body'][_0xe1a4('0x48')];}return db[_0xe1a4('0x2b')][_0xe1a4('0x43')]({'where':{'uniqueid':_0x1c021c[_0xe1a4('0x3f')]['id']}})['then'](handleEntityNotFound(_0x19cbd2,null))[_0xe1a4('0x24')](saveUpdates(_0x1c021c[_0xe1a4('0x46')],null))[_0xe1a4('0x24')](respondWithResult(_0x19cbd2,null))[_0xe1a4('0x44')](handleError(_0x19cbd2,null));};
\ No newline at end of file
+var _0x3c0b=['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','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','apply','reject','save','update','destroy','then','error','stack','name','send','index','map','CmHopperHistory','fieldName','key','model','query','keys','filters','intersection','attributes','length','hasOwnProperty','nolimit','where','pick','filter','merge','type','VIRTUAL','options','rows','catch','show','params','rawAttributes','fields','include','find','create','body','describe','uniqueid','eml-format','rimraf','fast-json-patch','request-promise'];(function(_0xdec931,_0x554dc7){var _0x62031f=function(_0x3329d1){while(--_0x3329d1){_0xdec931['push'](_0xdec931['shift']());}};_0x62031f(++_0x554dc7);}(_0x3c0b,0x13c));var _0xb3c0=function(_0x4cbac5,_0x2b7642){_0x4cbac5=_0x4cbac5-0x0;var _0x19ade7=_0x3c0b[_0x4cbac5];return _0x19ade7;};'use strict';var emlformat=require(_0xb3c0('0x0'));var rimraf=require(_0xb3c0('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xb3c0('0x2'));var rp=require(_0xb3c0('0x3'));var moment=require('moment');var BPromise=require(_0xb3c0('0x4'));var Mustache=require(_0xb3c0('0x5'));var util=require(_0xb3c0('0x6'));var path=require(_0xb3c0('0x7'));var sox=require(_0xb3c0('0x8'));var csv=require(_0xb3c0('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xb3c0('0xa'));var _=require(_0xb3c0('0xb'));var squel=require(_0xb3c0('0xc'));var crypto=require(_0xb3c0('0xd'));var jsforce=require(_0xb3c0('0xe'));var deskjs=require(_0xb3c0('0xf'));var toCsv=require(_0xb3c0('0x9'));var querystring=require(_0xb3c0('0x10'));var Papa=require(_0xb3c0('0x11'));var Redis=require(_0xb3c0('0x12'));var authService=require(_0xb3c0('0x13'));var qs=require(_0xb3c0('0x14'));var as=require(_0xb3c0('0x15'));var hardwareService=require(_0xb3c0('0x16'));var logger=require(_0xb3c0('0x17'))('api');var utils=require(_0xb3c0('0x18'));var config=require(_0xb3c0('0x19'));var licenseUtil=require(_0xb3c0('0x1a'));var db=require(_0xb3c0('0x1b'))['db'];function respondWithStatusCode(_0x376608,_0x2d1d89){_0x2d1d89=_0x2d1d89||0xcc;return function(_0x1887e6){if(_0x1887e6){return _0x376608[_0xb3c0('0x1c')](_0x2d1d89);}return _0x376608[_0xb3c0('0x1d')](_0x2d1d89)[_0xb3c0('0x1e')]();};}function respondWithResult(_0x2c199b,_0x371b34){_0x371b34=_0x371b34||0xc8;return function(_0x31de97){if(_0x31de97){return _0x2c199b[_0xb3c0('0x1d')](_0x371b34)[_0xb3c0('0x1f')](_0x31de97);}};}function respondWithFilteredResult(_0x92e5b0,_0x55aa53){return function(_0x162148){if(_0x162148){var _0x4fbd50=typeof _0x55aa53[_0xb3c0('0x20')]===_0xb3c0('0x21')&&typeof _0x55aa53[_0xb3c0('0x22')]===_0xb3c0('0x21');var _0x1f07ef=_0x162148[_0xb3c0('0x23')];var _0x1f5f2b=_0x4fbd50?0x0:_0x55aa53[_0xb3c0('0x20')];var _0x45b176=_0x4fbd50?_0x162148[_0xb3c0('0x23')]:_0x55aa53[_0xb3c0('0x20')]+_0x55aa53[_0xb3c0('0x22')];var _0x39c8ec;if(_0x45b176>=_0x1f07ef){_0x45b176=_0x1f07ef;_0x39c8ec=0xc8;}else{_0x39c8ec=0xce;}_0x92e5b0[_0xb3c0('0x1d')](_0x39c8ec);return _0x92e5b0[_0xb3c0('0x24')]('Content-Range',_0x1f5f2b+'-'+_0x45b176+'/'+_0x1f07ef)[_0xb3c0('0x1f')](_0x162148);}return null;};}function patchUpdates(_0x108618){return function(_0x280ea7){try{jsonpatch[_0xb3c0('0x25')](_0x280ea7,_0x108618,!![]);}catch(_0x2d35ba){return BPromise[_0xb3c0('0x26')](_0x2d35ba);}return _0x280ea7[_0xb3c0('0x27')]();};}function saveUpdates(_0x211f3f,_0x343d44){return function(_0x2ea7c3){if(_0x2ea7c3){return _0x2ea7c3[_0xb3c0('0x28')](_0x211f3f)['then'](function(_0x1e10c1){return _0x1e10c1;});}return null;};}function removeEntity(_0x17b335,_0x1d6356){return function(_0x53e122){if(_0x53e122){return _0x53e122[_0xb3c0('0x29')]()[_0xb3c0('0x2a')](function(){_0x17b335[_0xb3c0('0x1d')](0xcc)[_0xb3c0('0x1e')]();});}};}function handleEntityNotFound(_0x5d177d,_0x62db4f){return function(_0x5f6c68){if(!_0x5f6c68){_0x5d177d[_0xb3c0('0x1c')](0x194);}return _0x5f6c68;};}function handleError(_0x270688,_0x2a6bc8){_0x2a6bc8=_0x2a6bc8||0x1f4;return function(_0x1474c1){logger[_0xb3c0('0x2b')](_0x1474c1[_0xb3c0('0x2c')]);if(_0x1474c1[_0xb3c0('0x2d')]){delete _0x1474c1[_0xb3c0('0x2d')];}_0x270688[_0xb3c0('0x1d')](_0x2a6bc8)[_0xb3c0('0x2e')](_0x1474c1);};}exports[_0xb3c0('0x2f')]=function(_0x41d94e,_0x3ead76){var _0x1ac2dc={},_0x3dc1b4={},_0x4fc9fa={'count':0x0,'rows':[]};var _0x45cbda=_[_0xb3c0('0x30')](db[_0xb3c0('0x31')]['rawAttributes'],function(_0x2eeeca){return{'name':_0x2eeeca[_0xb3c0('0x32')],'type':_0x2eeeca['type'][_0xb3c0('0x33')]};});_0x3dc1b4[_0xb3c0('0x34')]=_[_0xb3c0('0x30')](_0x45cbda,_0xb3c0('0x2d'));_0x3dc1b4[_0xb3c0('0x35')]=_[_0xb3c0('0x36')](_0x41d94e['query']);_0x3dc1b4[_0xb3c0('0x37')]=_[_0xb3c0('0x38')](_0x3dc1b4[_0xb3c0('0x34')],_0x3dc1b4[_0xb3c0('0x35')]);_0x1ac2dc[_0xb3c0('0x39')]=_[_0xb3c0('0x38')](_0x3dc1b4[_0xb3c0('0x34')],qs['fields'](_0x41d94e[_0xb3c0('0x35')]['fields']));_0x1ac2dc[_0xb3c0('0x39')]=_0x1ac2dc['attributes'][_0xb3c0('0x3a')]?_0x1ac2dc[_0xb3c0('0x39')]:_0x3dc1b4[_0xb3c0('0x34')];if(!_0x41d94e[_0xb3c0('0x35')][_0xb3c0('0x3b')](_0xb3c0('0x3c'))){_0x1ac2dc['limit']=qs[_0xb3c0('0x22')](_0x41d94e[_0xb3c0('0x35')]['limit']);_0x1ac2dc[_0xb3c0('0x20')]=qs[_0xb3c0('0x20')](_0x41d94e[_0xb3c0('0x35')][_0xb3c0('0x20')]);}_0x1ac2dc['order']=qs['sort'](_0x41d94e['query']['sort']);_0x1ac2dc[_0xb3c0('0x3d')]=qs[_0xb3c0('0x37')](_[_0xb3c0('0x3e')](_0x41d94e['query'],_0x3dc1b4[_0xb3c0('0x37')]),_0x45cbda);if(_0x41d94e['query'][_0xb3c0('0x3f')]){_0x1ac2dc[_0xb3c0('0x3d')]=_[_0xb3c0('0x40')](_0x1ac2dc['where'],{'$or':_[_0xb3c0('0x30')](_0x45cbda,function(_0x47445e){if(_0x47445e[_0xb3c0('0x41')]!==_0xb3c0('0x42')){var _0x104f9c={};_0x104f9c[_0x47445e[_0xb3c0('0x2d')]]={'$like':'%'+_0x41d94e[_0xb3c0('0x35')]['filter']+'%'};return _0x104f9c;}})});}_0x1ac2dc=_[_0xb3c0('0x40')]({},_0x1ac2dc,_0x41d94e[_0xb3c0('0x43')]);var _0x1af342={'where':_0x1ac2dc[_0xb3c0('0x3d')]};return db[_0xb3c0('0x31')]['count'](_0x1af342)[_0xb3c0('0x2a')](function(_0x34d1ee){_0x4fc9fa[_0xb3c0('0x23')]=_0x34d1ee;if(_0x41d94e[_0xb3c0('0x35')]['includeAll']){_0x1ac2dc['include']=[{'all':!![]}];}return db[_0xb3c0('0x31')]['findAll'](_0x1ac2dc);})[_0xb3c0('0x2a')](function(_0x46a575){_0x4fc9fa[_0xb3c0('0x44')]=_0x46a575;return _0x4fc9fa;})[_0xb3c0('0x2a')](respondWithFilteredResult(_0x3ead76,_0x1ac2dc))[_0xb3c0('0x45')](handleError(_0x3ead76,null));};exports[_0xb3c0('0x46')]=function(_0x1d6376,_0x113bab){var _0x15aa95={'raw':!![],'where':{'id':_0x1d6376[_0xb3c0('0x47')]['id']}},_0x1d13fe={};_0x1d13fe[_0xb3c0('0x34')]=_[_0xb3c0('0x36')](db['CmHopperHistory'][_0xb3c0('0x48')]);_0x1d13fe[_0xb3c0('0x35')]=_[_0xb3c0('0x36')](_0x1d6376['query']);_0x1d13fe[_0xb3c0('0x37')]=_['intersection'](_0x1d13fe[_0xb3c0('0x34')],_0x1d13fe[_0xb3c0('0x35')]);_0x15aa95[_0xb3c0('0x39')]=_['intersection'](_0x1d13fe[_0xb3c0('0x34')],qs[_0xb3c0('0x49')](_0x1d6376[_0xb3c0('0x35')]['fields']));_0x15aa95[_0xb3c0('0x39')]=_0x15aa95[_0xb3c0('0x39')][_0xb3c0('0x3a')]?_0x15aa95['attributes']:_0x1d13fe[_0xb3c0('0x34')];if(_0x1d6376[_0xb3c0('0x35')]['includeAll']){_0x15aa95[_0xb3c0('0x4a')]=[{'all':!![]}];}_0x15aa95=_[_0xb3c0('0x40')]({},_0x15aa95,_0x1d6376['options']);return db[_0xb3c0('0x31')][_0xb3c0('0x4b')](_0x15aa95)[_0xb3c0('0x2a')](handleEntityNotFound(_0x113bab,null))[_0xb3c0('0x2a')](respondWithResult(_0x113bab,null))[_0xb3c0('0x45')](handleError(_0x113bab,null));};exports[_0xb3c0('0x4c')]=function(_0x153b4b,_0x5e1138){return db[_0xb3c0('0x31')][_0xb3c0('0x4c')](_0x153b4b[_0xb3c0('0x4d')],{})[_0xb3c0('0x2a')](respondWithResult(_0x5e1138,0xc9))['catch'](handleError(_0x5e1138,null));};exports['describe']=function(_0xd83354,_0x46e09c){return db['CmHopperHistory'][_0xb3c0('0x4e')]()[_0xb3c0('0x2a')](respondWithResult(_0x46e09c,null))[_0xb3c0('0x45')](handleError(_0x46e09c,null));};exports[_0xb3c0('0x28')]=function(_0x57f529,_0x355f72){if(_0x57f529['body']['uniqueid']){delete _0x57f529[_0xb3c0('0x4d')][_0xb3c0('0x4f')];}return db[_0xb3c0('0x31')]['find']({'where':{'uniqueid':_0x57f529[_0xb3c0('0x47')]['id']}})['then'](handleEntityNotFound(_0x355f72,null))[_0xb3c0('0x2a')](saveUpdates(_0x57f529['body'],null))[_0xb3c0('0x2a')](respondWithResult(_0x355f72,null))[_0xb3c0('0x45')](handleError(_0x355f72,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd3c8=['rimraf','../../config/environment','exports','define','CmHopperHistory','cm_hopper_history','endtime','uniqueid','lodash','util','../../config/logger','api','moment','request-promise','path'];(function(_0x4932a6,_0x530e29){var _0x3b45b9=function(_0x1d1eb7){while(--_0x1d1eb7){_0x4932a6['push'](_0x4932a6['shift']());}};_0x3b45b9(++_0x530e29);}(_0xd3c8,0x161));var _0x8d3c=function(_0x4ef4e7,_0x42e7e9){_0x4ef4e7=_0x4ef4e7-0x0;var _0x3a7c7c=_0xd3c8[_0x4ef4e7];return _0x3a7c7c;};'use strict';var _=require(_0x8d3c('0x0'));var util=require(_0x8d3c('0x1'));var logger=require(_0x8d3c('0x2'))(_0x8d3c('0x3'));var moment=require(_0x8d3c('0x4'));var BPromise=require('bluebird');var rp=require(_0x8d3c('0x5'));var fs=require('fs');var path=require(_0x8d3c('0x6'));var rimraf=require(_0x8d3c('0x7'));var config=require(_0x8d3c('0x8'));var attributes=require('./cmHopperHistory.attributes');module[_0x8d3c('0x9')]=function(_0x2642d1,_0x103825){return _0x2642d1[_0x8d3c('0xa')](_0x8d3c('0xb'),attributes,{'tableName':_0x8d3c('0xc'),'paranoid':![],'indexes':[{'name':_0x8d3c('0xd'),'fields':[_0x8d3c('0xd')]},{'name':_0x8d3c('0xe'),'fields':[_0x8d3c('0xe')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x5b12=['../../config/logger','moment','request-promise','path','../../config/environment','CmHopperHistory','cm_hopper_history','endtime','uniqueid','lodash','util'];(function(_0x55c00d,_0x520cb6){var _0x254a8f=function(_0x2b3378){while(--_0x2b3378){_0x55c00d['push'](_0x55c00d['shift']());}};_0x254a8f(++_0x520cb6);}(_0x5b12,0xa3));var _0x25b1=function(_0x31def1,_0x8606d){_0x31def1=_0x31def1-0x0;var _0x1f96fd=_0x5b12[_0x31def1];return _0x1f96fd;};'use strict';var _=require(_0x25b1('0x0'));var util=require(_0x25b1('0x1'));var logger=require(_0x25b1('0x2'))('api');var moment=require(_0x25b1('0x3'));var BPromise=require('bluebird');var rp=require(_0x25b1('0x4'));var fs=require('fs');var path=require(_0x25b1('0x5'));var rimraf=require('rimraf');var config=require(_0x25b1('0x6'));var attributes=require('./cmHopperHistory.attributes');module['exports']=function(_0x35d90b,_0x5523c9){return _0x35d90b['define'](_0x25b1('0x7'),attributes,{'tableName':_0x25b1('0x8'),'paranoid':![],'indexes':[{'name':_0x25b1('0x9'),'fields':[_0x25b1('0x9')]},{'name':_0x25b1('0xa'),'fields':[_0x25b1('0xa')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0d77=['GetCampaignHopperHistory','name','ivrAnswerCallsDay','lodash','util','moment','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','jayson/promise','client','http','request','CmHopperHistory,\x20%s,\x20%s','request\x20sent','debug','stringify','code','error','message','CreateCmHopperHistory','create','options','then','info','catch','AvgHandleTime','CmHopperHistory','findAll','raw','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','`state`\x20=\x204,\x20`holdtime`,\x20null','predictiveIntervalAvgHoldtime','`state`\x20=\x204,\x20`talktime`,\x20null','predictiveIntervalAvgTalktime','GetVoiceQueueHopperHistory','campaign','`state`\x20=\x200,\x201,\x20null','outboundNoAnswerCallsDay','outboundAnswerCallsDay','`state`\x20=\x205,\x201,\x20null','outboundBusyCallsDay','`state`\x20=\x208,\x201,\x20null','outboundCongestionCallsDay','`state`\x20=\x2010\x20,\x201,\x20null','outboundDropCallsDayTimeout','outboundUnknownCallsDay','`state`\x20=\x2013,\x201,\x20null','outboundBlacklistCallsDay','outboundOriginateFailureCallsDay','outboundRejectCallsDay','`state`\x20=\x2016,\x201,\x20null','`state`\x20=\x2020,\x201,\x20null','outboundReCallsDay'];(function(_0x2cec26,_0x560407){var _0x2bfb84=function(_0x3d0e2e){while(--_0x3d0e2e){_0x2cec26['push'](_0x2cec26['shift']());}};_0x2bfb84(++_0x560407);}(_0x0d77,0x8b));var _0x70d7=function(_0xad6709,_0xdc729b){_0xad6709=_0xad6709-0x0;var _0x5220e7=_0x0d77[_0xad6709];return _0x5220e7;};'use strict';var _=require(_0x70d7('0x0'));var util=require(_0x70d7('0x1'));var moment=require(_0x70d7('0x2'));var BPromise=require('bluebird');var rs=require(_0x70d7('0x3'));var fs=require('fs');var Redis=require(_0x70d7('0x4'));var db=require(_0x70d7('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0x70d7('0x6'))(_0x70d7('0x7'));var config=require('../../config/environment');var jayson=require(_0x70d7('0x8'));var client=jayson[_0x70d7('0x9')][_0x70d7('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x13cebf,_0x10aa59,_0x5684b9){return new BPromise(function(_0x1a8026,_0x5a82ed){return client[_0x70d7('0xb')](_0x13cebf,_0x5684b9)['then'](function(_0x95172){logger['info'](_0x70d7('0xc'),_0x10aa59,_0x70d7('0xd'));logger[_0x70d7('0xe')]('CmHopperHistory,\x20%s,\x20%s,\x20%s',_0x10aa59,_0x70d7('0xd'),JSON[_0x70d7('0xf')](_0x95172));if(_0x95172['error']){if(_0x95172['error'][_0x70d7('0x10')]===0x1f4){logger[_0x70d7('0x11')](_0x70d7('0xc'),_0x10aa59,_0x95172[_0x70d7('0x11')][_0x70d7('0x12')]);return _0x5a82ed(_0x95172[_0x70d7('0x11')][_0x70d7('0x12')]);}logger[_0x70d7('0x11')](_0x70d7('0xc'),_0x10aa59,_0x95172[_0x70d7('0x11')]['message']);return _0x1a8026(_0x95172[_0x70d7('0x11')][_0x70d7('0x12')]);}else{logger['info'](_0x70d7('0xc'),_0x10aa59,_0x70d7('0xd'));_0x1a8026(_0x95172['result']['message']);}})['catch'](function(_0x2c9956){logger[_0x70d7('0x11')](_0x70d7('0xc'),_0x10aa59,_0x2c9956);_0x5a82ed(_0x2c9956);});});}exports[_0x70d7('0x13')]=function(_0x90afee){var _0x3e2c9a=this;return new Promise(function(_0x1048f8,_0x39412e){return db['CmHopperHistory'][_0x70d7('0x14')](_0x90afee['body'],{'raw':_0x90afee[_0x70d7('0x15')]?_0x90afee[_0x70d7('0x15')]['raw']===undefined?!![]:![]:!![]})[_0x70d7('0x16')](function(_0x5f338d){logger[_0x70d7('0x17')]('CreateCmHopperHistory',_0x90afee);logger[_0x70d7('0xe')](_0x70d7('0x13'),_0x90afee,JSON[_0x70d7('0xf')](_0x5f338d));_0x1048f8(_0x5f338d);})[_0x70d7('0x18')](function(_0x334aac){logger[_0x70d7('0x11')](_0x70d7('0x13'),_0x334aac[_0x70d7('0x12')],_0x90afee);_0x39412e(_0x3e2c9a['error'](0x1f4,_0x334aac['message']));});});};exports[_0x70d7('0x19')]=function(_0x43dabc){var _0x258c35=this;return new Promise(function(_0x44b3ec,_0x49969c){return db[_0x70d7('0x1a')][_0x70d7('0x1b')]({'raw':_0x43dabc['options']?_0x43dabc['options'][_0x70d7('0x1c')]===undefined?!![]:![]:!![],'where':_0x43dabc[_0x70d7('0x15')]?_0x43dabc[_0x70d7('0x15')][_0x70d7('0x1d')]||null:null,'attributes':[[db[_0x70d7('0x1e')]['fn'](_0x70d7('0x1f'),db[_0x70d7('0x1e')][_0x70d7('0x20')]('id')),_0x70d7('0x21')],[db['sequelize']['fn'](_0x70d7('0x1f'),db['sequelize']['fn']('IF',db['sequelize'][_0x70d7('0x22')](_0x70d7('0x23')))),_0x70d7('0x24')],[db[_0x70d7('0x1e')]['fn'](_0x70d7('0x1f'),db[_0x70d7('0x1e')]['fn']('IF',db[_0x70d7('0x1e')][_0x70d7('0x22')](_0x70d7('0x25')))),_0x70d7('0x26')],[db[_0x70d7('0x1e')]['fn'](_0x70d7('0x1f'),db[_0x70d7('0x1e')]['fn']('IF',db[_0x70d7('0x1e')]['literal'](_0x70d7('0x27')))),_0x70d7('0x28')],[db[_0x70d7('0x1e')]['fn'](_0x70d7('0x29'),db[_0x70d7('0x1e')]['fn']('IF',db[_0x70d7('0x1e')]['literal'](_0x70d7('0x2a')))),_0x70d7('0x2b')],[db[_0x70d7('0x1e')]['fn'](_0x70d7('0x29'),db[_0x70d7('0x1e')]['fn']('IF',db[_0x70d7('0x1e')][_0x70d7('0x22')](_0x70d7('0x2c')))),_0x70d7('0x2d')]]})[_0x70d7('0x16')](function(_0x56c59b){logger[_0x70d7('0x17')](_0x70d7('0x19'),_0x43dabc);logger[_0x70d7('0xe')](_0x70d7('0x19'),_0x43dabc,JSON[_0x70d7('0xf')](_0x56c59b));_0x44b3ec(_0x56c59b);})[_0x70d7('0x18')](function(_0xfa591c){logger[_0x70d7('0x11')](_0x70d7('0x19'),_0xfa591c[_0x70d7('0x12')],_0x43dabc);_0x49969c(_0x258c35[_0x70d7('0x11')](0x1f4,_0xfa591c[_0x70d7('0x12')]));});});};exports[_0x70d7('0x2e')]=function(_0x237e26){var _0x19bd2b=this;return new Promise(function(_0x41a70b,_0x39442d){return db[_0x70d7('0x1a')][_0x70d7('0x1b')]({'raw':_0x237e26[_0x70d7('0x15')]?_0x237e26[_0x70d7('0x15')][_0x70d7('0x1c')]===undefined?!![]:![]:!![],'where':_0x237e26[_0x70d7('0x15')]?_0x237e26[_0x70d7('0x15')][_0x70d7('0x1d')]||null:null,'attributes':[[_0x70d7('0x2f'),'name'],[db[_0x70d7('0x1e')]['fn'](_0x70d7('0x1f'),db[_0x70d7('0x1e')]['fn']('IF',db[_0x70d7('0x1e')]['literal'](_0x70d7('0x30')))),'outboundNoSuchCallsDay'],[db['sequelize']['fn'](_0x70d7('0x1f'),db['sequelize']['fn']('IF',db[_0x70d7('0x1e')][_0x70d7('0x22')]('`state`\x20=\x203,\x201,\x20null'))),_0x70d7('0x31')],[db['sequelize']['fn'](_0x70d7('0x1f'),db['sequelize']['fn']('IF',db[_0x70d7('0x1e')]['literal'](_0x70d7('0x23')))),_0x70d7('0x32')],[db[_0x70d7('0x1e')]['fn'](_0x70d7('0x1f'),db[_0x70d7('0x1e')]['fn']('IF',db['sequelize'][_0x70d7('0x22')](_0x70d7('0x33')))),_0x70d7('0x34')],[db[_0x70d7('0x1e')]['fn']('COUNT',db[_0x70d7('0x1e')]['fn']('IF',db['sequelize'][_0x70d7('0x22')](_0x70d7('0x35')))),_0x70d7('0x36')],[db[_0x70d7('0x1e')]['fn'](_0x70d7('0x1f'),db[_0x70d7('0x1e')]['fn']('IF',db[_0x70d7('0x1e')]['literal'](_0x70d7('0x37')))),_0x70d7('0x38')],[db[_0x70d7('0x1e')]['fn'](_0x70d7('0x1f'),db[_0x70d7('0x1e')]['fn']('IF',db[_0x70d7('0x1e')][_0x70d7('0x22')]('`state`\x20=\x2011\x20,\x201,\x20null'))),'outboundDropCallsDayCallersExit'],[db[_0x70d7('0x1e')]['fn'](_0x70d7('0x1f'),db[_0x70d7('0x1e')]['fn']('IF',db[_0x70d7('0x1e')][_0x70d7('0x22')]('`state`\x20=\x2012,\x201,\x20null'))),_0x70d7('0x39')],[db[_0x70d7('0x1e')]['fn'](_0x70d7('0x1f'),db['sequelize']['fn']('IF',db['sequelize']['literal'](_0x70d7('0x3a')))),_0x70d7('0x3b')],[db[_0x70d7('0x1e')]['fn'](_0x70d7('0x1f'),db[_0x70d7('0x1e')]['fn']('IF',db[_0x70d7('0x1e')]['literal']('`state`\x20=\x2014,\x201,\x20null'))),_0x70d7('0x3c')],[db['sequelize']['fn']('COUNT',db[_0x70d7('0x1e')]['fn']('IF',db[_0x70d7('0x1e')][_0x70d7('0x22')]('`state`\x20=\x2018,\x201,\x20null'))),_0x70d7('0x3d')],[db[_0x70d7('0x1e')]['fn'](_0x70d7('0x1f'),db[_0x70d7('0x1e')]['fn']('IF',db['sequelize'][_0x70d7('0x22')](_0x70d7('0x3e')))),'outboundAnswerAgiCallsDay'],[db[_0x70d7('0x1e')]['fn'](_0x70d7('0x1f'),db[_0x70d7('0x1e')]['fn']('IF',db['sequelize']['literal'](_0x70d7('0x3f')))),_0x70d7('0x3d')],[db[_0x70d7('0x1e')]['fn'](_0x70d7('0x1f'),db[_0x70d7('0x1e')]['fn']('IF',db[_0x70d7('0x1e')]['literal']('`state`\x20=\x2022\x20or\x20`state`\x20=\x2023,\x201,\x20null'))),_0x70d7('0x40')]],'group':['campaign']})['then'](function(_0x385d95){logger[_0x70d7('0x17')]('GetVoiceQueueHopperHistory',_0x237e26);logger[_0x70d7('0xe')](_0x70d7('0x2e'),_0x237e26,JSON[_0x70d7('0xf')](_0x385d95));_0x41a70b(_0x385d95);})[_0x70d7('0x18')](function(_0x4d48c8){logger['error'](_0x70d7('0x2e'),_0x4d48c8['message'],_0x237e26);_0x39442d(_0x19bd2b['error'](0x1f4,_0x4d48c8['message']));});});};exports[_0x70d7('0x41')]=function(_0x41305c){var _0x21db92=this;return new Promise(function(_0x27d16e,_0x3701a2){return db[_0x70d7('0x1a')][_0x70d7('0x1b')]({'raw':_0x41305c[_0x70d7('0x15')]?_0x41305c[_0x70d7('0x15')]['raw']===undefined?!![]:![]:!![],'where':_0x41305c[_0x70d7('0x15')]?_0x41305c[_0x70d7('0x15')][_0x70d7('0x1d')]||null:null,'attributes':[[_0x70d7('0x2f'),_0x70d7('0x42')],[db[_0x70d7('0x1e')]['fn'](_0x70d7('0x1f'),db[_0x70d7('0x1e')][_0x70d7('0x20')]('id')),'ivrTotalCallsDays'],[db[_0x70d7('0x1e')]['fn']('COUNT',db[_0x70d7('0x1e')]['fn']('IF',db[_0x70d7('0x1e')][_0x70d7('0x22')]('`state`\x20=\x204,\x201,\x20null'))),_0x70d7('0x43')]],'group':[_0x70d7('0x2f')]})[_0x70d7('0x16')](function(_0x130c79){logger['info'](_0x70d7('0x41'),_0x41305c);logger['debug']('GetCampaignHopperHistory',_0x41305c,JSON[_0x70d7('0xf')](_0x130c79));_0x27d16e(_0x130c79);})[_0x70d7('0x18')](function(_0x143d84){logger[_0x70d7('0x11')](_0x70d7('0x41'),_0x143d84['message'],_0x41305c);_0x3701a2(_0x21db92['error'](0x1f4,_0x143d84[_0x70d7('0x12')]));});});};
\ No newline at end of file
+var _0x3645=['stringify','error','code','message','result','catch','create','body','options','raw','debug','CreateCmHopperHistory','AvgHandleTime','CmHopperHistory','where','sequelize','COUNT','literal','`state`\x20=\x204,\x201,\x20null','predictiveIntervalAnsweredCalls','`state`\x20=\x2010,\x201,\x20null','predictiveIntervalDroppedCallsTimeout','`state`\x20=\x2011,\x201,\x20null','predictiveIntervalDroppedCallsCallersExit','AVG','`state`\x20=\x204,\x20`holdtime`,\x20null','predictiveIntervalAvgHoldtime','predictiveIntervalAvgTalktime','GetVoiceQueueHopperHistory','findAll','name','`state`\x20=\x200,\x201,\x20null','outboundNoSuchCallsDay','`state`\x20=\x203,\x201,\x20null','outboundNoAnswerCallsDay','`state`\x20=\x205,\x201,\x20null','outboundBusyCallsDay','outboundCongestionCallsDay','`state`\x20=\x2010\x20,\x201,\x20null','`state`\x20=\x2011\x20,\x201,\x20null','`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=\x2020,\x201,\x20null','outboundReCallsDay','campaign','GetCampaignHopperHistory','col','lodash','moment','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','client','http','request','then','info','CmHopperHistory,\x20%s,\x20%s','request\x20sent','CmHopperHistory,\x20%s,\x20%s,\x20%s'];(function(_0x5398db,_0xd69970){var _0x7aeb65=function(_0x2536d4){while(--_0x2536d4){_0x5398db['push'](_0x5398db['shift']());}};_0x7aeb65(++_0xd69970);}(_0x3645,0x157));var _0x5364=function(_0x59ee6f,_0x450239){_0x59ee6f=_0x59ee6f-0x0;var _0x4c0979=_0x3645[_0x59ee6f];return _0x4c0979;};'use strict';var _=require(_0x5364('0x0'));var util=require('util');var moment=require(_0x5364('0x1'));var BPromise=require('bluebird');var rs=require(_0x5364('0x2'));var fs=require('fs');var Redis=require(_0x5364('0x3'));var db=require(_0x5364('0x4'))['db'];var utils=require(_0x5364('0x5'));var logger=require('../../config/logger')(_0x5364('0x6'));var config=require(_0x5364('0x7'));var jayson=require(_0x5364('0x8'));var client=jayson[_0x5364('0x9')][_0x5364('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x57bcdb,_0x3b3160,_0x56839d){return new BPromise(function(_0x5e13a3,_0x11e4f2){return client[_0x5364('0xb')](_0x57bcdb,_0x56839d)[_0x5364('0xc')](function(_0x12c9f7){logger[_0x5364('0xd')](_0x5364('0xe'),_0x3b3160,_0x5364('0xf'));logger['debug'](_0x5364('0x10'),_0x3b3160,_0x5364('0xf'),JSON[_0x5364('0x11')](_0x12c9f7));if(_0x12c9f7[_0x5364('0x12')]){if(_0x12c9f7['error'][_0x5364('0x13')]===0x1f4){logger[_0x5364('0x12')](_0x5364('0xe'),_0x3b3160,_0x12c9f7[_0x5364('0x12')][_0x5364('0x14')]);return _0x11e4f2(_0x12c9f7['error']['message']);}logger[_0x5364('0x12')]('CmHopperHistory,\x20%s,\x20%s',_0x3b3160,_0x12c9f7[_0x5364('0x12')][_0x5364('0x14')]);return _0x5e13a3(_0x12c9f7[_0x5364('0x12')]['message']);}else{logger['info']('CmHopperHistory,\x20%s,\x20%s',_0x3b3160,_0x5364('0xf'));_0x5e13a3(_0x12c9f7[_0x5364('0x15')][_0x5364('0x14')]);}})[_0x5364('0x16')](function(_0x2bd4c2){logger[_0x5364('0x12')]('CmHopperHistory,\x20%s,\x20%s',_0x3b3160,_0x2bd4c2);_0x11e4f2(_0x2bd4c2);});});}exports['CreateCmHopperHistory']=function(_0x48441b){var _0xf2a4d=this;return new Promise(function(_0x4cbf28,_0x1ea646){return db['CmHopperHistory'][_0x5364('0x17')](_0x48441b[_0x5364('0x18')],{'raw':_0x48441b[_0x5364('0x19')]?_0x48441b[_0x5364('0x19')][_0x5364('0x1a')]===undefined?!![]:![]:!![]})[_0x5364('0xc')](function(_0x4bf78a){logger[_0x5364('0xd')]('CreateCmHopperHistory',_0x48441b);logger[_0x5364('0x1b')](_0x5364('0x1c'),_0x48441b,JSON[_0x5364('0x11')](_0x4bf78a));_0x4cbf28(_0x4bf78a);})[_0x5364('0x16')](function(_0x554372){logger[_0x5364('0x12')]('CreateCmHopperHistory',_0x554372[_0x5364('0x14')],_0x48441b);_0x1ea646(_0xf2a4d[_0x5364('0x12')](0x1f4,_0x554372[_0x5364('0x14')]));});});};exports[_0x5364('0x1d')]=function(_0x261a26){var _0xbcf5e=this;return new Promise(function(_0x2fca4f,_0x18047e){return db[_0x5364('0x1e')]['findAll']({'raw':_0x261a26[_0x5364('0x19')]?_0x261a26[_0x5364('0x19')][_0x5364('0x1a')]===undefined?!![]:![]:!![],'where':_0x261a26['options']?_0x261a26[_0x5364('0x19')][_0x5364('0x1f')]||null:null,'attributes':[[db[_0x5364('0x20')]['fn'](_0x5364('0x21'),db[_0x5364('0x20')]['col']('id')),'predictiveIntervalTotalCalls'],[db[_0x5364('0x20')]['fn'](_0x5364('0x21'),db[_0x5364('0x20')]['fn']('IF',db['sequelize'][_0x5364('0x22')](_0x5364('0x23')))),_0x5364('0x24')],[db['sequelize']['fn'](_0x5364('0x21'),db['sequelize']['fn']('IF',db[_0x5364('0x20')]['literal'](_0x5364('0x25')))),_0x5364('0x26')],[db[_0x5364('0x20')]['fn']('COUNT',db['sequelize']['fn']('IF',db[_0x5364('0x20')][_0x5364('0x22')](_0x5364('0x27')))),_0x5364('0x28')],[db[_0x5364('0x20')]['fn'](_0x5364('0x29'),db[_0x5364('0x20')]['fn']('IF',db[_0x5364('0x20')]['literal'](_0x5364('0x2a')))),_0x5364('0x2b')],[db[_0x5364('0x20')]['fn'](_0x5364('0x29'),db[_0x5364('0x20')]['fn']('IF',db[_0x5364('0x20')][_0x5364('0x22')]('`state`\x20=\x204,\x20`talktime`,\x20null'))),_0x5364('0x2c')]]})[_0x5364('0xc')](function(_0x458b85){logger['info'](_0x5364('0x1d'),_0x261a26);logger[_0x5364('0x1b')](_0x5364('0x1d'),_0x261a26,JSON[_0x5364('0x11')](_0x458b85));_0x2fca4f(_0x458b85);})[_0x5364('0x16')](function(_0x364b24){logger['error'](_0x5364('0x1d'),_0x364b24[_0x5364('0x14')],_0x261a26);_0x18047e(_0xbcf5e[_0x5364('0x12')](0x1f4,_0x364b24['message']));});});};exports[_0x5364('0x2d')]=function(_0x3eb3c6){var _0x1f8d89=this;return new Promise(function(_0x367989,_0x44fc4e){return db[_0x5364('0x1e')][_0x5364('0x2e')]({'raw':_0x3eb3c6['options']?_0x3eb3c6[_0x5364('0x19')]['raw']===undefined?!![]:![]:!![],'where':_0x3eb3c6[_0x5364('0x19')]?_0x3eb3c6[_0x5364('0x19')][_0x5364('0x1f')]||null:null,'attributes':[['campaign',_0x5364('0x2f')],[db[_0x5364('0x20')]['fn'](_0x5364('0x21'),db[_0x5364('0x20')]['fn']('IF',db[_0x5364('0x20')][_0x5364('0x22')](_0x5364('0x30')))),_0x5364('0x31')],[db['sequelize']['fn'](_0x5364('0x21'),db['sequelize']['fn']('IF',db[_0x5364('0x20')][_0x5364('0x22')](_0x5364('0x32')))),_0x5364('0x33')],[db[_0x5364('0x20')]['fn'](_0x5364('0x21'),db[_0x5364('0x20')]['fn']('IF',db[_0x5364('0x20')][_0x5364('0x22')](_0x5364('0x23')))),'outboundAnswerCallsDay'],[db['sequelize']['fn'](_0x5364('0x21'),db[_0x5364('0x20')]['fn']('IF',db[_0x5364('0x20')][_0x5364('0x22')](_0x5364('0x34')))),_0x5364('0x35')],[db[_0x5364('0x20')]['fn'](_0x5364('0x21'),db[_0x5364('0x20')]['fn']('IF',db[_0x5364('0x20')][_0x5364('0x22')]('`state`\x20=\x208,\x201,\x20null'))),_0x5364('0x36')],[db[_0x5364('0x20')]['fn'](_0x5364('0x21'),db[_0x5364('0x20')]['fn']('IF',db['sequelize'][_0x5364('0x22')](_0x5364('0x37')))),'outboundDropCallsDayTimeout'],[db[_0x5364('0x20')]['fn'](_0x5364('0x21'),db[_0x5364('0x20')]['fn']('IF',db[_0x5364('0x20')][_0x5364('0x22')](_0x5364('0x38')))),'outboundDropCallsDayCallersExit'],[db[_0x5364('0x20')]['fn'](_0x5364('0x21'),db[_0x5364('0x20')]['fn']('IF',db[_0x5364('0x20')][_0x5364('0x22')](_0x5364('0x39')))),_0x5364('0x3a')],[db[_0x5364('0x20')]['fn'](_0x5364('0x21'),db[_0x5364('0x20')]['fn']('IF',db[_0x5364('0x20')]['literal'](_0x5364('0x3b')))),_0x5364('0x3c')],[db[_0x5364('0x20')]['fn'](_0x5364('0x21'),db[_0x5364('0x20')]['fn']('IF',db[_0x5364('0x20')][_0x5364('0x22')](_0x5364('0x3d')))),_0x5364('0x3e')],[db['sequelize']['fn']('COUNT',db[_0x5364('0x20')]['fn']('IF',db['sequelize']['literal'](_0x5364('0x3f')))),_0x5364('0x40')],[db[_0x5364('0x20')]['fn'](_0x5364('0x21'),db[_0x5364('0x20')]['fn']('IF',db[_0x5364('0x20')][_0x5364('0x22')](_0x5364('0x41')))),_0x5364('0x42')],[db[_0x5364('0x20')]['fn'](_0x5364('0x21'),db[_0x5364('0x20')]['fn']('IF',db[_0x5364('0x20')][_0x5364('0x22')](_0x5364('0x43')))),_0x5364('0x40')],[db[_0x5364('0x20')]['fn']('COUNT',db[_0x5364('0x20')]['fn']('IF',db[_0x5364('0x20')][_0x5364('0x22')]('`state`\x20=\x2022\x20or\x20`state`\x20=\x2023,\x201,\x20null'))),_0x5364('0x44')]],'group':[_0x5364('0x45')]})[_0x5364('0xc')](function(_0x2b739e){logger['info'](_0x5364('0x2d'),_0x3eb3c6);logger[_0x5364('0x1b')](_0x5364('0x2d'),_0x3eb3c6,JSON[_0x5364('0x11')](_0x2b739e));_0x367989(_0x2b739e);})[_0x5364('0x16')](function(_0x608ba8){logger[_0x5364('0x12')](_0x5364('0x2d'),_0x608ba8[_0x5364('0x14')],_0x3eb3c6);_0x44fc4e(_0x1f8d89['error'](0x1f4,_0x608ba8[_0x5364('0x14')]));});});};exports[_0x5364('0x46')]=function(_0x33bbb4){var _0x59fe06=this;return new Promise(function(_0x268a2d,_0x181ce9){return db[_0x5364('0x1e')][_0x5364('0x2e')]({'raw':_0x33bbb4[_0x5364('0x19')]?_0x33bbb4[_0x5364('0x19')][_0x5364('0x1a')]===undefined?!![]:![]:!![],'where':_0x33bbb4[_0x5364('0x19')]?_0x33bbb4['options'][_0x5364('0x1f')]||null:null,'attributes':[[_0x5364('0x45'),_0x5364('0x2f')],[db[_0x5364('0x20')]['fn'](_0x5364('0x21'),db[_0x5364('0x20')][_0x5364('0x47')]('id')),'ivrTotalCallsDays'],[db['sequelize']['fn'](_0x5364('0x21'),db[_0x5364('0x20')]['fn']('IF',db[_0x5364('0x20')][_0x5364('0x22')](_0x5364('0x23')))),'ivrAnswerCallsDay']],'group':[_0x5364('0x45')]})[_0x5364('0xc')](function(_0x863805){logger[_0x5364('0xd')](_0x5364('0x46'),_0x33bbb4);logger[_0x5364('0x1b')](_0x5364('0x46'),_0x33bbb4,JSON[_0x5364('0x11')](_0x863805));_0x268a2d(_0x863805);})[_0x5364('0x16')](function(_0x55e4b8){logger[_0x5364('0x12')](_0x5364('0x46'),_0x55e4b8[_0x5364('0x14')],_0x33bbb4);_0x181ce9(_0x59fe06[_0x5364('0x12')](0x1f4,_0x55e4b8[_0x5364('0x14')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9561=['../../components/interaction/service','../../config/environment','./cmHopperHistory.controller','get','index','/describe','describe','/:id','isAuthenticated','show','post','create','put','update','exports','multer','util','path','connect-timeout','express','../../components/auth/service'];(function(_0x37bd37,_0x4daac3){var _0x255f78=function(_0x265f28){while(--_0x265f28){_0x37bd37['push'](_0x37bd37['shift']());}};_0x255f78(++_0x4daac3);}(_0x9561,0xf6));var _0x1956=function(_0x4470b9,_0x1d8578){_0x4470b9=_0x4470b9-0x0;var _0x14f405=_0x9561[_0x4470b9];return _0x14f405;};'use strict';var multer=require(_0x1956('0x0'));var util=require(_0x1956('0x1'));var path=require(_0x1956('0x2'));var timeout=require(_0x1956('0x3'));var express=require(_0x1956('0x4'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0x1956('0x5'));var interaction=require(_0x1956('0x6'));var config=require(_0x1956('0x7'));var controller=require(_0x1956('0x8'));router[_0x1956('0x9')]('/',auth['isAuthenticated'](),controller[_0x1956('0xa')]);router['get'](_0x1956('0xb'),auth['isAuthenticated'](),controller[_0x1956('0xc')]);router[_0x1956('0x9')](_0x1956('0xd'),auth[_0x1956('0xe')](),controller[_0x1956('0xf')]);router[_0x1956('0x10')]('/',auth['isAuthenticated'](),controller[_0x1956('0x11')]);router[_0x1956('0x12')]('/:id',auth[_0x1956('0xe')](),controller[_0x1956('0x13')]);module[_0x1956('0x14')]=router;
\ No newline at end of file
+var _0xf915=['util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../config/environment','./cmHopperHistory.controller','get','describe','/:id','isAuthenticated','show','create','put','update','exports','multer'];(function(_0x49e547,_0x1fbae7){var _0x595da0=function(_0x323c55){while(--_0x323c55){_0x49e547['push'](_0x49e547['shift']());}};_0x595da0(++_0x1fbae7);}(_0xf915,0x142));var _0x5f91=function(_0x4565bf,_0x5ad9d6){_0x4565bf=_0x4565bf-0x0;var _0x5610ba=_0xf915[_0x4565bf];return _0x5610ba;};'use strict';var multer=require(_0x5f91('0x0'));var util=require(_0x5f91('0x1'));var path=require(_0x5f91('0x2'));var timeout=require(_0x5f91('0x3'));var express=require(_0x5f91('0x4'));var router=express[_0x5f91('0x5')]();var fs_extra=require(_0x5f91('0x6'));var auth=require(_0x5f91('0x7'));var interaction=require('../../components/interaction/service');var config=require(_0x5f91('0x8'));var controller=require(_0x5f91('0x9'));router['get']('/',auth['isAuthenticated'](),controller['index']);router[_0x5f91('0xa')]('/describe',auth['isAuthenticated'](),controller[_0x5f91('0xb')]);router['get'](_0x5f91('0xc'),auth[_0x5f91('0xd')](),controller[_0x5f91('0xe')]);router['post']('/',auth['isAuthenticated'](),controller[_0x5f91('0xf')]);router[_0x5f91('0x10')](_0x5f91('0xc'),auth[_0x5f91('0xd')](),controller[_0x5f91('0x11')]);module[_0x5f91('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x956a=['STRING','name','exports'];(function(_0x1b0597,_0xeffacc){var _0x2b6a2a=function(_0x4da070){while(--_0x4da070){_0x1b0597['push'](_0x1b0597['shift']());}};_0x2b6a2a(++_0xeffacc);}(_0x956a,0xb6));var _0xa956=function(_0x3947c9,_0x4d6c97){_0x3947c9=_0x3947c9-0x0;var _0x2e7871=_0x956a[_0x3947c9];return _0x2e7871;};'use strict';var Sequelize=require('sequelize');module[_0xa956('0x0')]={'name':{'type':Sequelize[_0xa956('0x1')],'unique':_0xa956('0x2'),'allowNull':![],'validate':{'notEmpty':!![]}},'description':{'type':Sequelize[_0xa956('0x1')]},'dialPrefix':{'type':Sequelize[_0xa956('0x1')]}};
\ No newline at end of file
+var _0xbdfd=['sequelize','name','STRING'];(function(_0x68c979,_0x431cff){var _0x4f0001=function(_0xa7595d){while(--_0xa7595d){_0x68c979['push'](_0x68c979['shift']());}};_0x4f0001(++_0x431cff);}(_0xbdfd,0x135));var _0xdbdf=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0xbdfd[_0x321bb2];return _0x9c12ed;};'use strict';var Sequelize=require(_0xdbdf('0x0'));module['exports']={'name':{'type':Sequelize['STRING'],'unique':_0xdbdf('0x1'),'allowNull':![],'validate':{'notEmpty':!![]}},'description':{'type':Sequelize[_0xdbdf('0x2')]},'dialPrefix':{'type':Sequelize[_0xdbdf('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd84a=['../../mysqldb','redis','defaults','localhost','socket.io-emitter','register','sendStatus','status','end','offset','undefined','count','limit','set','Content-Range','json','apply','reject','save','update','destroy','then','get','Lists','UserProfileResource','error','stack','name','map','fieldName','type','key','query','filters','intersection','model','attributes','fields','length','nolimit','order','sort','where','pick','filter','merge','options','CmList','includeAll','include','rows','catch','show','params','keys','rawAttributes','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','describe','addDisposition','ListId','getDispositions','findOne','Disposition','hasOwnProperty','findAll','removeDispositions','ids','CmContact','tags','isArray','join','push','each','success','dataValues','Malformed\x20request\x20syntax','getContacts','CmCustomField','CustomFields','concat','format','raw','getContactsCsv','isEmpty','writeFileSync','/tmp/list_%d_%s.csv','setHeader','Content-disposition','attachment;\x20filename=','list_%d_%s.csv','sequelize','transaction','addCustomFields','Sequelize','TEXT','text','switch','BOOLEAN','queryInterface','addColumn','cm_contacts','cf_%s','findAndCountAll','addAgents','spread','emit','userCmList:save','removeAgents','userCmList:remove','getAgents','User','eml-format','zip-dir','bluebird','mustache','util','path','to-csv','ejs','fs-extra','lodash','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/license/util'];(function(_0x2dd843,_0x2cb2be){var _0x3148b7=function(_0x2454a4){while(--_0x2454a4){_0x2dd843['push'](_0x2dd843['shift']());}};_0x3148b7(++_0x2cb2be);}(_0xd84a,0x103));var _0xad84=function(_0x718f5e,_0x27455d){_0x718f5e=_0x718f5e-0x0;var _0x2b4efe=_0xd84a[_0x718f5e];return _0x2b4efe;};'use strict';var emlformat=require(_0xad84('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xad84('0x1'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0xad84('0x2'));var Mustache=require(_0xad84('0x3'));var util=require(_0xad84('0x4'));var path=require(_0xad84('0x5'));var sox=require('sox');var csv=require(_0xad84('0x6'));var ejs=require(_0xad84('0x7'));var fs=require('fs');var fs_extra=require(_0xad84('0x8'));var _=require(_0xad84('0x9'));var squel=require('squel');var crypto=require(_0xad84('0xa'));var jsforce=require(_0xad84('0xb'));var deskjs=require('desk.js');var toCsv=require(_0xad84('0x6'));var querystring=require(_0xad84('0xc'));var Papa=require(_0xad84('0xd'));var Redis=require(_0xad84('0xe'));var authService=require(_0xad84('0xf'));var qs=require(_0xad84('0x10'));var as=require(_0xad84('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xad84('0x12'))(_0xad84('0x13'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0xad84('0x14'));var db=require(_0xad84('0x15'))['db'];config[_0xad84('0x16')]=_[_0xad84('0x17')](config[_0xad84('0x16')],{'host':_0xad84('0x18'),'port':0x18eb});var socket=require(_0xad84('0x19'))(new Redis(config['redis']));require('./cmList.socket')[_0xad84('0x1a')](socket);function respondWithStatusCode(_0x4a7e12,_0xffe997){_0xffe997=_0xffe997||0xcc;return function(_0x136e78){if(_0x136e78){return _0x4a7e12[_0xad84('0x1b')](_0xffe997);}return _0x4a7e12[_0xad84('0x1c')](_0xffe997)[_0xad84('0x1d')]();};}function respondWithResult(_0x3575b6,_0x5b68bd){_0x5b68bd=_0x5b68bd||0xc8;return function(_0x5b896f){if(_0x5b896f){return _0x3575b6[_0xad84('0x1c')](_0x5b68bd)['json'](_0x5b896f);}};}function respondWithFilteredResult(_0x366322,_0x4710de){return function(_0x1773be){if(_0x1773be){var _0x11a810=typeof _0x4710de[_0xad84('0x1e')]===_0xad84('0x1f')&&typeof _0x4710de['limit']===_0xad84('0x1f');var _0x21693a=_0x1773be[_0xad84('0x20')];var _0x21bb35=_0x11a810?0x0:_0x4710de[_0xad84('0x1e')];var _0x6ac7b6=_0x11a810?_0x1773be['count']:_0x4710de[_0xad84('0x1e')]+_0x4710de[_0xad84('0x21')];var _0x554c1a;if(_0x6ac7b6>=_0x21693a){_0x6ac7b6=_0x21693a;_0x554c1a=0xc8;}else{_0x554c1a=0xce;}_0x366322[_0xad84('0x1c')](_0x554c1a);return _0x366322[_0xad84('0x22')](_0xad84('0x23'),_0x21bb35+'-'+_0x6ac7b6+'/'+_0x21693a)[_0xad84('0x24')](_0x1773be);}return null;};}function patchUpdates(_0x3120e9){return function(_0xe187de){try{jsonpatch[_0xad84('0x25')](_0xe187de,_0x3120e9,!![]);}catch(_0x3e7e8b){return BPromise[_0xad84('0x26')](_0x3e7e8b);}return _0xe187de[_0xad84('0x27')]();};}function saveUpdates(_0x40c000,_0x54e537){return function(_0x4daa16){if(_0x4daa16){return _0x4daa16[_0xad84('0x28')](_0x40c000)['then'](function(_0x349191){return _0x349191;});}return null;};}function removeEntity(_0x368b3e,_0x2aece7){return function(_0xa4de71){if(_0xa4de71){return _0xa4de71[_0xad84('0x29')]()[_0xad84('0x2a')](function(){var _0x4b0a6c=_0xa4de71[_0xad84('0x2b')]({'plain':!![]});var _0x2e99c8=_0xad84('0x2c');return db[_0xad84('0x2d')][_0xad84('0x29')]({'where':{'type':_0x2e99c8,'resourceId':_0x4b0a6c['id']}})[_0xad84('0x2a')](function(){return _0xa4de71;});})['then'](function(){_0x368b3e[_0xad84('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x66a67d,_0x1103a0){return function(_0x18e346){if(!_0x18e346){_0x66a67d[_0xad84('0x1b')](0x194);}return _0x18e346;};}function handleError(_0x3d6d62,_0x1cdab4){_0x1cdab4=_0x1cdab4||0x1f4;return function(_0x4b3ff5){logger[_0xad84('0x2e')](_0x4b3ff5[_0xad84('0x2f')]);if(_0x4b3ff5[_0xad84('0x30')]){delete _0x4b3ff5['name'];}_0x3d6d62[_0xad84('0x1c')](_0x1cdab4)['send'](_0x4b3ff5);};}exports['index']=function(_0x564b89,_0x2ea874){var _0x2fc1ce={},_0x6e87f0={},_0x4eb3d9={'count':0x0,'rows':[]};var _0x51b5dc=_[_0xad84('0x31')](db['CmList']['rawAttributes'],function(_0x392b45){return{'name':_0x392b45[_0xad84('0x32')],'type':_0x392b45[_0xad84('0x33')][_0xad84('0x34')]};});_0x6e87f0['model']=_[_0xad84('0x31')](_0x51b5dc,_0xad84('0x30'));_0x6e87f0[_0xad84('0x35')]=_['keys'](_0x564b89['query']);_0x6e87f0[_0xad84('0x36')]=_[_0xad84('0x37')](_0x6e87f0[_0xad84('0x38')],_0x6e87f0[_0xad84('0x35')]);_0x2fc1ce[_0xad84('0x39')]=_['intersection'](_0x6e87f0['model'],qs[_0xad84('0x3a')](_0x564b89['query'][_0xad84('0x3a')]));_0x2fc1ce['attributes']=_0x2fc1ce[_0xad84('0x39')][_0xad84('0x3b')]?_0x2fc1ce[_0xad84('0x39')]:_0x6e87f0[_0xad84('0x38')];if(!_0x564b89[_0xad84('0x35')]['hasOwnProperty'](_0xad84('0x3c'))){_0x2fc1ce[_0xad84('0x21')]=qs[_0xad84('0x21')](_0x564b89[_0xad84('0x35')][_0xad84('0x21')]);_0x2fc1ce[_0xad84('0x1e')]=qs['offset'](_0x564b89[_0xad84('0x35')][_0xad84('0x1e')]);}_0x2fc1ce[_0xad84('0x3d')]=qs[_0xad84('0x3e')](_0x564b89[_0xad84('0x35')]['sort']);_0x2fc1ce[_0xad84('0x3f')]=qs[_0xad84('0x36')](_[_0xad84('0x40')](_0x564b89[_0xad84('0x35')],_0x6e87f0['filters']),_0x51b5dc);if(_0x564b89['query'][_0xad84('0x41')]){_0x2fc1ce[_0xad84('0x3f')]=_[_0xad84('0x42')](_0x2fc1ce[_0xad84('0x3f')],{'$or':_['map'](_0x51b5dc,function(_0x2dcb47){if(_0x2dcb47['type']!=='VIRTUAL'){var _0x31eddc={};_0x31eddc[_0x2dcb47[_0xad84('0x30')]]={'$like':'%'+_0x564b89[_0xad84('0x35')][_0xad84('0x41')]+'%'};return _0x31eddc;}})});}_0x2fc1ce=_[_0xad84('0x42')]({},_0x2fc1ce,_0x564b89[_0xad84('0x43')]);var _0x21993a={'where':_0x2fc1ce[_0xad84('0x3f')]};return db[_0xad84('0x44')]['count'](_0x21993a)[_0xad84('0x2a')](function(_0x493c6f){_0x4eb3d9[_0xad84('0x20')]=_0x493c6f;if(_0x564b89[_0xad84('0x35')][_0xad84('0x45')]){_0x2fc1ce[_0xad84('0x46')]=[{'all':!![]}];}return db[_0xad84('0x44')]['findAll'](_0x2fc1ce);})[_0xad84('0x2a')](function(_0x1ff15c){_0x4eb3d9[_0xad84('0x47')]=_0x1ff15c;return _0x4eb3d9;})[_0xad84('0x2a')](respondWithFilteredResult(_0x2ea874,_0x2fc1ce))[_0xad84('0x48')](handleError(_0x2ea874,null));};exports[_0xad84('0x49')]=function(_0x176ca8,_0x14b53){var _0x531362={'raw':![],'where':{'id':_0x176ca8[_0xad84('0x4a')]['id']}},_0x2768db={};_0x2768db[_0xad84('0x38')]=_[_0xad84('0x4b')](db[_0xad84('0x44')][_0xad84('0x4c')]);_0x2768db[_0xad84('0x35')]=_[_0xad84('0x4b')](_0x176ca8[_0xad84('0x35')]);_0x2768db[_0xad84('0x36')]=_[_0xad84('0x37')](_0x2768db['model'],_0x2768db[_0xad84('0x35')]);_0x531362[_0xad84('0x39')]=_[_0xad84('0x37')](_0x2768db['model'],qs['fields'](_0x176ca8[_0xad84('0x35')][_0xad84('0x3a')]));_0x531362[_0xad84('0x39')]=_0x531362[_0xad84('0x39')][_0xad84('0x3b')]?_0x531362[_0xad84('0x39')]:_0x2768db['model'];if(_0x176ca8[_0xad84('0x35')][_0xad84('0x45')]){_0x531362[_0xad84('0x46')]=[{'all':!![]}];}_0x531362=_['merge']({},_0x531362,_0x176ca8[_0xad84('0x43')]);return db['CmList'][_0xad84('0x4d')](_0x531362)[_0xad84('0x2a')](handleEntityNotFound(_0x14b53,null))[_0xad84('0x2a')](respondWithResult(_0x14b53,null))[_0xad84('0x48')](handleError(_0x14b53,null));};exports[_0xad84('0x4e')]=function(_0x250c21,_0x58de37){return db['CmList'][_0xad84('0x4e')](_0x250c21[_0xad84('0x4f')],{})['then'](function(_0x2ac37d){var _0x32d9d8=_0x250c21[_0xad84('0x50')]['get']({'plain':!![]});if(!_0x32d9d8)throw new Error(_0xad84('0x51'));if(_0x32d9d8[_0xad84('0x52')]===_0xad84('0x50')){var _0xc818c3=_0x2ac37d['get']({'plain':!![]});var _0x3ab63f=_0xad84('0x2c');return db[_0xad84('0x53')][_0xad84('0x4d')]({'where':{'name':_0x3ab63f,'userProfileId':_0x32d9d8['userProfileId']},'raw':!![]})[_0xad84('0x2a')](function(_0x10ff13){if(_0x10ff13&&_0x10ff13[_0xad84('0x54')]===0x0){return db[_0xad84('0x2d')][_0xad84('0x4e')]({'name':_0xc818c3[_0xad84('0x30')],'resourceId':_0xc818c3['id'],'type':_0x10ff13[_0xad84('0x30')],'sectionId':_0x10ff13['id']},{})[_0xad84('0x2a')](function(){return _0x2ac37d;});}else{return _0x2ac37d;}})['catch'](function(_0x5c1641){logger[_0xad84('0x2e')](_0xad84('0x55'),_0x5c1641);throw _0x5c1641;});}return _0x2ac37d;})[_0xad84('0x2a')](respondWithResult(_0x58de37,0xc9))['catch'](handleError(_0x58de37,null));};exports[_0xad84('0x28')]=function(_0x19840f,_0x215eea){if(_0x19840f['body']['id']){delete _0x19840f[_0xad84('0x4f')]['id'];}return db['CmList'][_0xad84('0x4d')]({'where':{'id':_0x19840f[_0xad84('0x4a')]['id']}})['then'](handleEntityNotFound(_0x215eea,null))[_0xad84('0x2a')](saveUpdates(_0x19840f[_0xad84('0x4f')],null))[_0xad84('0x2a')](respondWithResult(_0x215eea,null))['catch'](handleError(_0x215eea,null));};exports['destroy']=function(_0x26c0b3,_0x1063e1){return db[_0xad84('0x44')][_0xad84('0x4d')]({'where':{'id':_0x26c0b3[_0xad84('0x4a')]['id']}})[_0xad84('0x2a')](handleEntityNotFound(_0x1063e1,null))['then'](removeEntity(_0x1063e1,null))[_0xad84('0x48')](handleError(_0x1063e1,null));};exports['describe']=function(_0x951ef4,_0x879ded){return db[_0xad84('0x44')][_0xad84('0x56')]()['then'](respondWithResult(_0x879ded,null))['catch'](handleError(_0x879ded,null));};exports[_0xad84('0x57')]=function(_0x1d3f8d,_0x1ae35e,_0xd5b57b){if(_0x1d3f8d[_0xad84('0x4f')]['id']){delete _0x1d3f8d['body']['id'];}return db[_0xad84('0x44')]['find']({'where':{'id':_0x1d3f8d[_0xad84('0x4a')]['id']}})[_0xad84('0x2a')](handleEntityNotFound(_0x1ae35e,null))[_0xad84('0x2a')](function(_0x7a5411){if(_0x7a5411){_0x1d3f8d[_0xad84('0x4f')][_0xad84('0x58')]=_0x7a5411['id'];return db['Disposition'][_0xad84('0x4e')](_0x1d3f8d['body']);}})[_0xad84('0x2a')](respondWithResult(_0x1ae35e,null))[_0xad84('0x48')](handleError(_0x1ae35e,null));};exports[_0xad84('0x59')]=function(_0x5e4627,_0xf67f1d,_0x1378c0){var _0x134284={'raw':![],'where':{}};var _0x359571={};var _0x143e44={'count':0x0,'rows':[]};return db[_0xad84('0x44')][_0xad84('0x5a')]({'where':{'id':_0x5e4627[_0xad84('0x4a')]['id']}})[_0xad84('0x2a')](handleEntityNotFound(_0xf67f1d,null))['then'](function(_0xeb69e){if(_0xeb69e){_0x359571[_0xad84('0x38')]=_[_0xad84('0x4b')](db[_0xad84('0x5b')][_0xad84('0x4c')]);_0x359571[_0xad84('0x35')]=_['keys'](_0x5e4627['query']);_0x359571[_0xad84('0x36')]=_[_0xad84('0x37')](_0x359571[_0xad84('0x38')],_0x359571[_0xad84('0x35')]);_0x134284['attributes']=_['intersection'](_0x359571[_0xad84('0x38')],qs['fields'](_0x5e4627[_0xad84('0x35')][_0xad84('0x3a')]));_0x134284['attributes']=_0x134284[_0xad84('0x39')][_0xad84('0x3b')]?_0x134284['attributes']:_0x359571[_0xad84('0x38')];if(!_0x5e4627[_0xad84('0x35')][_0xad84('0x5c')]('nolimit')){_0x134284[_0xad84('0x21')]=qs['limit'](_0x5e4627[_0xad84('0x35')][_0xad84('0x21')]);_0x134284[_0xad84('0x1e')]=qs['offset'](_0x5e4627[_0xad84('0x35')][_0xad84('0x1e')]);}_0x134284['order']=qs[_0xad84('0x3e')](_0x5e4627[_0xad84('0x35')][_0xad84('0x3e')]);_0x134284[_0xad84('0x3f')]=qs[_0xad84('0x36')](_['pick'](_0x5e4627[_0xad84('0x35')],_0x359571['filters']));_0x134284['where']['ListId']=_0xeb69e['id'];if(_0x5e4627['query'][_0xad84('0x41')]){_0x134284['where']=_[_0xad84('0x42')](_0x134284[_0xad84('0x3f')],{'$or':_['map'](_0x134284['attributes'],function(_0x11359c){var _0x14ddb6={};_0x14ddb6[_0x11359c]={'$like':'%'+_0x5e4627[_0xad84('0x35')]['filter']+'%'};return _0x14ddb6;})});}_0x134284=_[_0xad84('0x42')]({},_0x134284,_0x5e4627[_0xad84('0x43')]);return db[_0xad84('0x5b')]['count']({'where':_0x134284[_0xad84('0x3f')]})[_0xad84('0x2a')](function(_0x50c9a6){_0x143e44['count']=_0x50c9a6;if(_0x5e4627[_0xad84('0x35')][_0xad84('0x45')]){_0x134284['include']=[{'all':!![]}];}return db[_0xad84('0x5b')][_0xad84('0x5d')](_0x134284);})[_0xad84('0x2a')](function(_0x4718a0){_0x143e44[_0xad84('0x47')]=_0x4718a0;return _0x143e44;});}})[_0xad84('0x2a')](respondWithFilteredResult(_0xf67f1d,_0x134284))[_0xad84('0x48')](handleError(_0xf67f1d,null));};exports[_0xad84('0x5e')]=function(_0x497e1b,_0x385cfa,_0x1f1c25){return db['CmList'][_0xad84('0x4d')]({'where':{'id':_0x497e1b['params']['id']}})[_0xad84('0x2a')](handleEntityNotFound(_0x385cfa,null))[_0xad84('0x2a')](function(_0x326a4a){if(_0x326a4a){return _0x326a4a[_0xad84('0x5e')](_0x497e1b[_0xad84('0x35')][_0xad84('0x5f')]);}})[_0xad84('0x2a')](respondWithStatusCode(_0x385cfa,null))[_0xad84('0x48')](handleError(_0x385cfa,null));};exports['addContacts']=function(_0x28570b,_0x55fefd,_0x4222aa){return db[_0xad84('0x44')][_0xad84('0x4d')]({'where':{'id':_0x28570b[_0xad84('0x4a')]['id']}})['then'](handleEntityNotFound(_0x55fefd,null))['then'](function(_0x154d48){if(_0x154d48){var _0x6b3147=[];var _0x127393={'success':[],'errors':[]};return db[_0xad84('0x60')]['describe']()[_0xad84('0x2a')](function(_0x483638){if(_0x28570b[_0xad84('0x4f')][_0xad84('0x61')]&&_[_0xad84('0x62')](_0x28570b[_0xad84('0x4f')][_0xad84('0x61')])){if(_0x28570b['body'][_0xad84('0x61')][_0xad84('0x3b')]){_0x28570b['body'][_0xad84('0x61')]=_0x28570b['body'][_0xad84('0x61')][_0xad84('0x63')](';')+';';}else{_0x28570b[_0xad84('0x4f')][_0xad84('0x61')]=null;}}else{_0x28570b['body'][_0xad84('0x61')]=null;}if(_0x28570b[_0xad84('0x4f')]&&_[_0xad84('0x62')](_0x28570b['body'])){for(var _0x14a6e9=0x0;_0x14a6e9<_0x28570b[_0xad84('0x4f')][_0xad84('0x3b')];_0x14a6e9+=0x1){_0x28570b[_0xad84('0x4f')][_0x14a6e9][_0xad84('0x58')]=_0x28570b[_0xad84('0x4a')]['id'];_0x6b3147[_0xad84('0x64')](_0x28570b[_0xad84('0x4f')][_0x14a6e9]);}return BPromise[_0xad84('0x65')](_0x6b3147,function(_0x37a1e6){return db[_0xad84('0x60')][_0xad84('0x4e')](_['omit'](_0x37a1e6,[_0xad84('0x5f'),'id'])||{},{'fields':_[_0xad84('0x4b')](_0x483638),'raw':!![]})[_0xad84('0x2a')](function(_0x3adef5){_0x127393[_0xad84('0x66')][_0xad84('0x64')](_0x3adef5[_0xad84('0x67')]);})[_0xad84('0x48')](function(_0x53a09f){_0x127393['errors'][_0xad84('0x64')]({'data':_0x37a1e6,'error':_0x53a09f['message']});});})['then'](function(_0x1d76bb){return _0x127393;})['catch'](function(_0x3776c7){return _0x3776c7;});}else{_0x55fefd['status'](0x190)[_0xad84('0x24')]({'message':_0xad84('0x68')});}});}})[_0xad84('0x2a')](respondWithResult(_0x55fefd,null))[_0xad84('0x48')](handleError(_0x55fefd,null));};exports[_0xad84('0x69')]=function(_0x520a6a,_0x440343,_0x31afc9){var _0x30c1ab;return db[_0xad84('0x44')][_0xad84('0x4d')]({'where':{'id':_0x520a6a['params']['id']},'include':[{'model':db[_0xad84('0x6a')],'as':_0xad84('0x6b')}]})[_0xad84('0x2a')](handleEntityNotFound(_0x440343,null))['then'](function(_0x532bff){if(_0x532bff){_0x30c1ab=_0x532bff;return db[_0xad84('0x60')][_0xad84('0x4c')];}})[_0xad84('0x2a')](function(_0x267138){if(_0x267138){var _0x3d3331={};var _0x2a30a7={};_0x2a30a7[_0xad84('0x38')]=_[_0xad84('0x6c')](_[_0xad84('0x4b')](_0x267138),_['map'](_0x30c1ab[_0xad84('0x6b')],function(_0x1d4dbd){return util[_0xad84('0x6d')]('cf_%d',_0x1d4dbd['id']);}));_0x2a30a7[_0xad84('0x35')]=_[_0xad84('0x4b')](_0x520a6a[_0xad84('0x35')]);_0x2a30a7[_0xad84('0x36')]=_[_0xad84('0x37')](_0x2a30a7[_0xad84('0x38')],_0x2a30a7['query']);_0x3d3331[_0xad84('0x39')]=_[_0xad84('0x37')](_0x2a30a7[_0xad84('0x38')],qs[_0xad84('0x3a')](_0x520a6a[_0xad84('0x35')][_0xad84('0x3a')]));_0x3d3331['attributes']=_0x3d3331['attributes'][_0xad84('0x3b')]?_0x3d3331[_0xad84('0x39')]:_0x2a30a7['model'];if(!_0x520a6a['query'][_0xad84('0x5c')]('nolimit')){_0x3d3331['limit']=qs[_0xad84('0x21')](_0x520a6a[_0xad84('0x35')][_0xad84('0x21')]);_0x3d3331[_0xad84('0x1e')]=qs[_0xad84('0x1e')](_0x520a6a[_0xad84('0x35')]['offset']);}_0x3d3331['order']=qs[_0xad84('0x3e')](_0x520a6a['query'][_0xad84('0x3e')]);_0x3d3331['where']=qs[_0xad84('0x36')](_[_0xad84('0x40')](_0x520a6a['query'],_0x2a30a7[_0xad84('0x36')]));_0x3d3331[_0xad84('0x6e')]=!![];if(_0x520a6a[_0xad84('0x35')][_0xad84('0x41')]){_0x3d3331[_0xad84('0x3f')]=_[_0xad84('0x42')](_0x3d3331[_0xad84('0x3f')],{'$or':_['map'](_0x3d3331['attributes'],function(_0x40c324){var _0x51ac87={};_0x51ac87[_0x40c324]={'$like':'%'+_0x520a6a[_0xad84('0x35')]['filter']+'%'};return _0x51ac87;})});}_0x3d3331=_['merge']({},_0x3d3331,_0x520a6a['options']);return _0x30c1ab['getContacts'](_0x3d3331);}})[_0xad84('0x2a')](respondWithResult(_0x440343,null))[_0xad84('0x48')](handleError(_0x440343,null));};exports[_0xad84('0x6f')]=function(_0x33aba5,_0xdd391,_0x163e8a){var _0x21e385;return db[_0xad84('0x44')][_0xad84('0x4d')]({'where':{'id':_0x33aba5[_0xad84('0x4a')]['id']},'include':[{'model':db[_0xad84('0x6a')],'as':_0xad84('0x6b')}]})[_0xad84('0x2a')](handleEntityNotFound(_0xdd391,null))['then'](function(_0x3728b0){if(_0x3728b0){_0x21e385=_0x3728b0;return db[_0xad84('0x60')]['rawAttributes'];}})['then'](function(_0x1ae089){if(_0x1ae089){var _0x150120={};var _0xfdd781={};_0xfdd781[_0xad84('0x38')]=_[_0xad84('0x6c')](_['keys'](_0x1ae089),_[_0xad84('0x31')](_0x21e385[_0xad84('0x6b')],function(_0x4298ab){return util[_0xad84('0x6d')]('cf_%d',_0x4298ab['id']);}));_0xfdd781['query']=_[_0xad84('0x4b')](_0x33aba5[_0xad84('0x35')]);_0xfdd781['filters']=_[_0xad84('0x37')](_0xfdd781[_0xad84('0x38')],_0xfdd781[_0xad84('0x35')]);_0x150120[_0xad84('0x39')]=_[_0xad84('0x37')](_0xfdd781[_0xad84('0x38')],qs[_0xad84('0x3a')](_0x33aba5['query'][_0xad84('0x3a')]));_0x150120[_0xad84('0x39')]=_0x150120['attributes']['length']?_0x150120[_0xad84('0x39')]:_0xfdd781[_0xad84('0x38')];if(!_0x33aba5[_0xad84('0x35')]['hasOwnProperty'](_0xad84('0x3c'))){_0x150120['limit']=qs[_0xad84('0x21')](_0x33aba5[_0xad84('0x35')][_0xad84('0x21')]);_0x150120['offset']=qs[_0xad84('0x1e')](_0x33aba5[_0xad84('0x35')][_0xad84('0x1e')]);}_0x150120[_0xad84('0x3d')]=qs[_0xad84('0x3e')](_0x33aba5[_0xad84('0x35')][_0xad84('0x3e')]);_0x150120['where']=qs['filters'](_[_0xad84('0x40')](_0x33aba5['query'],_0xfdd781[_0xad84('0x36')]));_0x150120[_0xad84('0x6e')]=!![];if(_0x33aba5[_0xad84('0x35')][_0xad84('0x41')]){_0x150120[_0xad84('0x3f')]=_[_0xad84('0x42')](_0x150120[_0xad84('0x3f')],{'$or':_[_0xad84('0x31')](_0x150120['attributes'],function(_0x1aa5b8){var _0x383284={};_0x383284[_0x1aa5b8]={'$like':'%'+_0x33aba5[_0xad84('0x35')][_0xad84('0x41')]+'%'};return _0x383284;})});}_0x150120=_[_0xad84('0x42')]({},_0x150120,_0x33aba5[_0xad84('0x43')]);return _0x21e385[_0xad84('0x69')](_0x150120);}})[_0xad84('0x2a')](function(_0x544dc7){if(!_[_0xad84('0x70')](_0x544dc7)){var _0x3d05da=toCsv(_0x544dc7);var _0x2ba508=Date['now']();fs[_0xad84('0x71')](util[_0xad84('0x6d')](_0xad84('0x72'),_0x21e385['id'],_0x2ba508),_0x3d05da);_0xdd391[_0xad84('0x73')](_0xad84('0x74'),_0xad84('0x75')+util[_0xad84('0x6d')](_0xad84('0x76'),_0x21e385['id'],_0x2ba508));_0xdd391[_0xad84('0x73')]('Content-type','text/csv');return _0xdd391['download'](util[_0xad84('0x6d')](_0xad84('0x72'),_0x21e385['id'],_0x2ba508));}else{return _0xdd391[_0xad84('0x1b')](0xcc);}})[_0xad84('0x48')](handleError(_0xdd391,null));};exports['addCustomField']=function(_0x110e08,_0x107a21,_0x3a43e1){var _0x31e57f;delete _0x110e08[_0xad84('0x4f')]['id'];return db[_0xad84('0x44')][_0xad84('0x5a')]({'where':{'id':_0x110e08[_0xad84('0x4a')]['id']}})[_0xad84('0x2a')](handleEntityNotFound(_0x107a21,null))[_0xad84('0x2a')](function(_0x25700b){if(_0x25700b){return db[_0xad84('0x77')][_0xad84('0x78')](function(_0x396da4){return db[_0xad84('0x6a')][_0xad84('0x4e')](_0x110e08[_0xad84('0x4f')],{'transaction':_0x396da4})[_0xad84('0x2a')](function(_0x4ed2fe){_0x31e57f=_0x4ed2fe;return _0x25700b[_0xad84('0x79')](_0x4ed2fe,{'transaction':_0x396da4});})[_0xad84('0x2a')](function(){var _0x4a3675={'type':db[_0xad84('0x7a')][_0xad84('0x7b')],'transaction':_0x396da4};switch(_0x110e08[_0xad84('0x4f')][_0xad84('0x33')]){case _0xad84('0x7c'):_0x4a3675[_0xad84('0x33')]=db[_0xad84('0x7a')][_0xad84('0x7b')];break;case'number':_0x4a3675[_0xad84('0x33')]=db[_0xad84('0x7a')]['INTEGER'];break;case _0xad84('0x7d'):_0x4a3675[_0xad84('0x33')]=db['Sequelize'][_0xad84('0x7e')];_0x4a3675['defaultValue']=![];break;default:}return db[_0xad84('0x77')][_0xad84('0x7f')][_0xad84('0x80')](_0xad84('0x81'),util['format'](_0xad84('0x82'),_0x31e57f['id']),_0x4a3675);})[_0xad84('0x2a')](function(){return _0x31e57f;});});}})[_0xad84('0x2a')](respondWithResult(_0x107a21,null))[_0xad84('0x48')](handleError(_0x107a21,null));};exports['getCustomFields']=function(_0x3e9ffb,_0x3f6b07,_0x4a5f8e){var _0x5d1913={};var _0x3b9f37={};var _0x4a5bbb;var _0x2cec2f;return db[_0xad84('0x44')][_0xad84('0x5a')]({'where':{'id':_0x3e9ffb[_0xad84('0x4a')]['id']}})[_0xad84('0x2a')](handleEntityNotFound(_0x3f6b07,null))[_0xad84('0x2a')](function(_0x9f2998){if(_0x9f2998){_0x4a5bbb=_0x9f2998;_0x3b9f37['model']=_[_0xad84('0x4b')](db[_0xad84('0x6a')][_0xad84('0x4c')]);_0x3b9f37[_0xad84('0x35')]=_[_0xad84('0x4b')](_0x3e9ffb['query']);_0x3b9f37['filters']=_[_0xad84('0x37')](_0x3b9f37[_0xad84('0x38')],_0x3b9f37[_0xad84('0x35')]);_0x5d1913['attributes']=_['intersection'](_0x3b9f37[_0xad84('0x38')],qs[_0xad84('0x3a')](_0x3e9ffb[_0xad84('0x35')][_0xad84('0x3a')]));_0x5d1913[_0xad84('0x39')]=_0x5d1913[_0xad84('0x39')][_0xad84('0x3b')]?_0x5d1913[_0xad84('0x39')]:_0x3b9f37[_0xad84('0x38')];_0x5d1913[_0xad84('0x3d')]=qs[_0xad84('0x3e')](_0x3e9ffb['query']['sort']);_0x5d1913[_0xad84('0x3f')]=qs[_0xad84('0x36')](_[_0xad84('0x40')](_0x3e9ffb[_0xad84('0x35')],_0x3b9f37[_0xad84('0x36')]));_0x5d1913[_0xad84('0x3f')]=_['merge'](_0x5d1913['where'],{'$or':[{'ListId':_0x9f2998['id']},{'ListId':null}]});if(_0x3e9ffb[_0xad84('0x35')][_0xad84('0x41')]){_0x5d1913[_0xad84('0x3f')]=_[_0xad84('0x42')](_0x5d1913[_0xad84('0x3f')],{'$or':_['map'](_0x5d1913['attributes'],function(_0x2274c5){var _0x116236={};_0x116236[_0x2274c5]={'$like':'%'+_0x3e9ffb[_0xad84('0x35')][_0xad84('0x41')]+'%'};return _0x116236;})});}_0x5d1913=_[_0xad84('0x42')]({},_0x5d1913,_0x3e9ffb[_0xad84('0x43')]);return db[_0xad84('0x6a')][_0xad84('0x83')](_0x5d1913);}})[_0xad84('0x2a')](respondWithResult(_0x3f6b07,null))[_0xad84('0x48')](handleError(_0x3f6b07,null));};exports[_0xad84('0x84')]=function(_0x202c62,_0x3ec8ca,_0x41dc83){return db['CmList'][_0xad84('0x4d')]({'where':{'id':_0x202c62[_0xad84('0x4a')]['id']}})['then'](handleEntityNotFound(_0x3ec8ca,null))['then'](function(_0x1b23c8){if(_0x1b23c8){return _0x1b23c8['addAgents'](_0x202c62['body'][_0xad84('0x5f')],_['omit'](_0x202c62[_0xad84('0x4f')],[_0xad84('0x5f'),'id'])||{})[_0xad84('0x85')](function(_0x1ad71b){for(var _0x19fd80=0x0;_0x19fd80<_0x202c62[_0xad84('0x4f')][_0xad84('0x5f')]['length'];_0x19fd80+=0x1){socket[_0xad84('0x86')](_0xad84('0x87'),{'UserId':Number(_0x202c62[_0xad84('0x4f')][_0xad84('0x5f')][_0x19fd80]),'CmListId':Number(_0x202c62['params']['id'])});}return _0x1ad71b;});}})[_0xad84('0x2a')](respondWithResult(_0x3ec8ca,null))['catch'](handleError(_0x3ec8ca,null));};exports['removeAgents']=function(_0x1f2abd,_0x1e99bd,_0xbdcad){return db[_0xad84('0x44')][_0xad84('0x4d')]({'where':{'id':_0x1f2abd[_0xad84('0x4a')]['id']}})[_0xad84('0x2a')](handleEntityNotFound(_0x1e99bd,null))[_0xad84('0x2a')](function(_0x29f011){if(_0x29f011){return _0x29f011[_0xad84('0x88')](_0x1f2abd[_0xad84('0x35')][_0xad84('0x5f')])[_0xad84('0x2a')](function(){if(_[_0xad84('0x62')](_0x1f2abd[_0xad84('0x35')][_0xad84('0x5f')])){for(var _0x56be00=0x0;_0x56be00<_0x1f2abd[_0xad84('0x35')][_0xad84('0x5f')][_0xad84('0x3b')];_0x56be00+=0x1){socket[_0xad84('0x86')](_0xad84('0x89'),{'UserId':Number(_0x1f2abd['query']['ids'][_0x56be00]),'CmListId':Number(_0x1f2abd[_0xad84('0x4a')]['id'])});}}else{socket[_0xad84('0x86')]('userCmList:remove',{'UserId':Number(_0x1f2abd[_0xad84('0x35')][_0xad84('0x5f')]),'CmListId':Number(_0x1f2abd[_0xad84('0x4a')]['id'])});}});}})[_0xad84('0x2a')](respondWithStatusCode(_0x1e99bd,null))['catch'](handleError(_0x1e99bd,null));};exports[_0xad84('0x8a')]=function(_0x556586,_0x2439f3,_0xc34725){var _0x39bde6={};var _0x570a09={};var _0x45c92a;var _0xb77873;return db[_0xad84('0x44')][_0xad84('0x5a')]({'where':{'id':_0x556586[_0xad84('0x4a')]['id']}})[_0xad84('0x2a')](handleEntityNotFound(_0x2439f3,null))[_0xad84('0x2a')](function(_0x3d14d9){if(_0x3d14d9){_0x45c92a=_0x3d14d9;_0x570a09[_0xad84('0x38')]=_[_0xad84('0x4b')](db[_0xad84('0x8b')][_0xad84('0x4c')]);_0x570a09['query']=_['keys'](_0x556586[_0xad84('0x35')]);_0x570a09[_0xad84('0x36')]=_['intersection'](_0x570a09[_0xad84('0x38')],_0x570a09[_0xad84('0x35')]);_0x39bde6['attributes']=_[_0xad84('0x37')](_0x570a09[_0xad84('0x38')],qs['fields'](_0x556586[_0xad84('0x35')][_0xad84('0x3a')]));_0x39bde6[_0xad84('0x39')]=_0x39bde6[_0xad84('0x39')][_0xad84('0x3b')]?_0x39bde6['attributes']:_0x570a09[_0xad84('0x38')];_0x39bde6[_0xad84('0x3d')]=qs[_0xad84('0x3e')](_0x556586[_0xad84('0x35')][_0xad84('0x3e')]);_0x39bde6['where']=qs['filters'](_[_0xad84('0x40')](_0x556586[_0xad84('0x35')],_0x570a09['filters']));if(_0x556586[_0xad84('0x35')][_0xad84('0x41')]){_0x39bde6[_0xad84('0x3f')]=_[_0xad84('0x42')](_0x39bde6[_0xad84('0x3f')],{'$or':_['map'](_0x39bde6[_0xad84('0x39')],function(_0x4c2850){var _0x11da78={};_0x11da78[_0x4c2850]={'$like':'%'+_0x556586['query']['filter']+'%'};return _0x11da78;})});}_0x39bde6=_['merge']({},_0x39bde6,_0x556586[_0xad84('0x43')]);return _0x45c92a['getAgents'](_0x39bde6);}})[_0xad84('0x2a')](function(_0x555dfd){if(_0x555dfd){_0xb77873=_0x555dfd[_0xad84('0x3b')];if(!_0x556586[_0xad84('0x35')]['hasOwnProperty']('nolimit')){_0x39bde6[_0xad84('0x21')]=qs[_0xad84('0x21')](_0x556586[_0xad84('0x35')][_0xad84('0x21')]);_0x39bde6[_0xad84('0x1e')]=qs[_0xad84('0x1e')](_0x556586[_0xad84('0x35')][_0xad84('0x1e')]);}return _0x45c92a[_0xad84('0x8a')](_0x39bde6);}})[_0xad84('0x2a')](function(_0x375297){if(_0x375297){return _0x375297?{'count':_0xb77873,'rows':_0x375297}:null;}})[_0xad84('0x2a')](respondWithResult(_0x2439f3,null))['catch'](handleError(_0x2439f3,null));};
\ No newline at end of file
+var _0x955e=['autoAssociation','describe','addDisposition','ListId','getDispositions','Disposition','options','removeDispositions','addContacts','CmContact','isArray','tags','join','push','each','ids','success','dataValues','errors','message','getContacts','CmCustomField','CustomFields','concat','format','cf_%d','raw','isEmpty','now','writeFileSync','/tmp/list_%d_%s.csv','attachment;\x20filename=','setHeader','Content-type','text/csv','download','sequelize','transaction','TEXT','text','Sequelize','INTEGER','BOOLEAN','queryInterface','addColumn','cm_contacts','findOne','addAgents','omit','spread','emit','removeAgents','userCmList:remove','getAgents','eml-format','rimraf','moment','bluebird','mustache','util','path','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','socket.io-emitter','./cmList.socket','register','sendStatus','end','status','offset','undefined','limit','count','set','json','apply','save','then','get','destroy','error','name','map','CmList','rawAttributes','fieldName','key','query','keys','filters','intersection','model','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','merge','type','VIRTUAL','filter','includeAll','include','findAll','rows','catch','params','length','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Lists','UserProfileSection'];(function(_0x362bc6,_0x58be02){var _0x20c601=function(_0x4b3571){while(--_0x4b3571){_0x362bc6['push'](_0x362bc6['shift']());}};_0x20c601(++_0x58be02);}(_0x955e,0x148));var _0xe955=function(_0x4c0622,_0x5dacaf){_0x4c0622=_0x4c0622-0x0;var _0x1799d8=_0x955e[_0x4c0622];return _0x1799d8;};'use strict';var emlformat=require(_0xe955('0x0'));var rimraf=require(_0xe955('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0xe955('0x2'));var BPromise=require(_0xe955('0x3'));var Mustache=require(_0xe955('0x4'));var util=require(_0xe955('0x5'));var path=require(_0xe955('0x6'));var sox=require('sox');var csv=require(_0xe955('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xe955('0x8'));var _=require(_0xe955('0x9'));var squel=require(_0xe955('0xa'));var crypto=require(_0xe955('0xb'));var jsforce=require(_0xe955('0xc'));var deskjs=require(_0xe955('0xd'));var toCsv=require(_0xe955('0x7'));var querystring=require(_0xe955('0xe'));var Papa=require('papaparse');var Redis=require(_0xe955('0xf'));var authService=require(_0xe955('0x10'));var qs=require(_0xe955('0x11'));var as=require(_0xe955('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xe955('0x13'))(_0xe955('0x14'));var utils=require(_0xe955('0x15'));var config=require(_0xe955('0x16'));var licenseUtil=require(_0xe955('0x17'));var db=require(_0xe955('0x18'))['db'];config[_0xe955('0x19')]=_[_0xe955('0x1a')](config[_0xe955('0x19')],{'host':'localhost','port':0x18eb});var socket=require(_0xe955('0x1b'))(new Redis(config[_0xe955('0x19')]));require(_0xe955('0x1c'))[_0xe955('0x1d')](socket);function respondWithStatusCode(_0xbd077b,_0x4a786a){_0x4a786a=_0x4a786a||0xcc;return function(_0x1d83a7){if(_0x1d83a7){return _0xbd077b[_0xe955('0x1e')](_0x4a786a);}return _0xbd077b['status'](_0x4a786a)[_0xe955('0x1f')]();};}function respondWithResult(_0x45b666,_0x4af265){_0x4af265=_0x4af265||0xc8;return function(_0x515448){if(_0x515448){return _0x45b666[_0xe955('0x20')](_0x4af265)['json'](_0x515448);}};}function respondWithFilteredResult(_0x4ecfcc,_0x22899d){return function(_0x5f1b3d){if(_0x5f1b3d){var _0x3da4cf=typeof _0x22899d[_0xe955('0x21')]===_0xe955('0x22')&&typeof _0x22899d[_0xe955('0x23')]==='undefined';var _0x538139=_0x5f1b3d[_0xe955('0x24')];var _0x27b757=_0x3da4cf?0x0:_0x22899d['offset'];var _0x588396=_0x3da4cf?_0x5f1b3d[_0xe955('0x24')]:_0x22899d[_0xe955('0x21')]+_0x22899d[_0xe955('0x23')];var _0x12c27c;if(_0x588396>=_0x538139){_0x588396=_0x538139;_0x12c27c=0xc8;}else{_0x12c27c=0xce;}_0x4ecfcc[_0xe955('0x20')](_0x12c27c);return _0x4ecfcc[_0xe955('0x25')]('Content-Range',_0x27b757+'-'+_0x588396+'/'+_0x538139)[_0xe955('0x26')](_0x5f1b3d);}return null;};}function patchUpdates(_0xaea4a6){return function(_0x167dc5){try{jsonpatch[_0xe955('0x27')](_0x167dc5,_0xaea4a6,!![]);}catch(_0x15a0ef){return BPromise['reject'](_0x15a0ef);}return _0x167dc5[_0xe955('0x28')]();};}function saveUpdates(_0x417e24,_0x47b48c){return function(_0x11f8d6){if(_0x11f8d6){return _0x11f8d6['update'](_0x417e24)[_0xe955('0x29')](function(_0x1d2d1b){return _0x1d2d1b;});}return null;};}function removeEntity(_0x4f4a4e,_0x1210d0){return function(_0x54634a){if(_0x54634a){return _0x54634a['destroy']()[_0xe955('0x29')](function(){var _0x3e34af=_0x54634a[_0xe955('0x2a')]({'plain':!![]});var _0x13c05='Lists';return db['UserProfileResource'][_0xe955('0x2b')]({'where':{'type':_0x13c05,'resourceId':_0x3e34af['id']}})[_0xe955('0x29')](function(){return _0x54634a;});})[_0xe955('0x29')](function(){_0x4f4a4e[_0xe955('0x20')](0xcc)[_0xe955('0x1f')]();});}};}function handleEntityNotFound(_0x19bf1e,_0x30fbab){return function(_0x1eea37){if(!_0x1eea37){_0x19bf1e['sendStatus'](0x194);}return _0x1eea37;};}function handleError(_0x58e56b,_0x10ec30){_0x10ec30=_0x10ec30||0x1f4;return function(_0x5c12c9){logger[_0xe955('0x2c')](_0x5c12c9['stack']);if(_0x5c12c9[_0xe955('0x2d')]){delete _0x5c12c9['name'];}_0x58e56b['status'](_0x10ec30)['send'](_0x5c12c9);};}exports['index']=function(_0x5c7e72,_0x398f63){var _0x40a00d={},_0x5af799={},_0x323003={'count':0x0,'rows':[]};var _0x7ffa02=_[_0xe955('0x2e')](db[_0xe955('0x2f')][_0xe955('0x30')],function(_0x242089){return{'name':_0x242089[_0xe955('0x31')],'type':_0x242089['type'][_0xe955('0x32')]};});_0x5af799['model']=_['map'](_0x7ffa02,_0xe955('0x2d'));_0x5af799[_0xe955('0x33')]=_[_0xe955('0x34')](_0x5c7e72[_0xe955('0x33')]);_0x5af799[_0xe955('0x35')]=_[_0xe955('0x36')](_0x5af799[_0xe955('0x37')],_0x5af799[_0xe955('0x33')]);_0x40a00d[_0xe955('0x38')]=_['intersection'](_0x5af799['model'],qs[_0xe955('0x39')](_0x5c7e72['query'][_0xe955('0x39')]));_0x40a00d[_0xe955('0x38')]=_0x40a00d['attributes']['length']?_0x40a00d[_0xe955('0x38')]:_0x5af799[_0xe955('0x37')];if(!_0x5c7e72[_0xe955('0x33')][_0xe955('0x3a')](_0xe955('0x3b'))){_0x40a00d[_0xe955('0x23')]=qs[_0xe955('0x23')](_0x5c7e72[_0xe955('0x33')]['limit']);_0x40a00d['offset']=qs[_0xe955('0x21')](_0x5c7e72[_0xe955('0x33')][_0xe955('0x21')]);}_0x40a00d[_0xe955('0x3c')]=qs[_0xe955('0x3d')](_0x5c7e72[_0xe955('0x33')]['sort']);_0x40a00d[_0xe955('0x3e')]=qs['filters'](_[_0xe955('0x3f')](_0x5c7e72[_0xe955('0x33')],_0x5af799['filters']),_0x7ffa02);if(_0x5c7e72[_0xe955('0x33')]['filter']){_0x40a00d['where']=_[_0xe955('0x40')](_0x40a00d[_0xe955('0x3e')],{'$or':_['map'](_0x7ffa02,function(_0x1fd9ef){if(_0x1fd9ef[_0xe955('0x41')]!==_0xe955('0x42')){var _0x48425d={};_0x48425d[_0x1fd9ef[_0xe955('0x2d')]]={'$like':'%'+_0x5c7e72[_0xe955('0x33')][_0xe955('0x43')]+'%'};return _0x48425d;}})});}_0x40a00d=_[_0xe955('0x40')]({},_0x40a00d,_0x5c7e72['options']);var _0x36336e={'where':_0x40a00d[_0xe955('0x3e')]};return db[_0xe955('0x2f')][_0xe955('0x24')](_0x36336e)[_0xe955('0x29')](function(_0x27dd53){_0x323003['count']=_0x27dd53;if(_0x5c7e72[_0xe955('0x33')][_0xe955('0x44')]){_0x40a00d[_0xe955('0x45')]=[{'all':!![]}];}return db[_0xe955('0x2f')][_0xe955('0x46')](_0x40a00d);})[_0xe955('0x29')](function(_0x2673c3){_0x323003[_0xe955('0x47')]=_0x2673c3;return _0x323003;})[_0xe955('0x29')](respondWithFilteredResult(_0x398f63,_0x40a00d))[_0xe955('0x48')](handleError(_0x398f63,null));};exports['show']=function(_0x1164a1,_0xad2931){var _0x118ff5={'raw':![],'where':{'id':_0x1164a1[_0xe955('0x49')]['id']}},_0x297a15={};_0x297a15['model']=_[_0xe955('0x34')](db[_0xe955('0x2f')][_0xe955('0x30')]);_0x297a15['query']=_[_0xe955('0x34')](_0x1164a1[_0xe955('0x33')]);_0x297a15[_0xe955('0x35')]=_[_0xe955('0x36')](_0x297a15[_0xe955('0x37')],_0x297a15['query']);_0x118ff5[_0xe955('0x38')]=_['intersection'](_0x297a15[_0xe955('0x37')],qs[_0xe955('0x39')](_0x1164a1[_0xe955('0x33')][_0xe955('0x39')]));_0x118ff5['attributes']=_0x118ff5[_0xe955('0x38')][_0xe955('0x4a')]?_0x118ff5[_0xe955('0x38')]:_0x297a15[_0xe955('0x37')];if(_0x1164a1[_0xe955('0x33')][_0xe955('0x44')]){_0x118ff5[_0xe955('0x45')]=[{'all':!![]}];}_0x118ff5=_['merge']({},_0x118ff5,_0x1164a1['options']);return db[_0xe955('0x2f')][_0xe955('0x4b')](_0x118ff5)['then'](handleEntityNotFound(_0xad2931,null))[_0xe955('0x29')](respondWithResult(_0xad2931,null))[_0xe955('0x48')](handleError(_0xad2931,null));};exports[_0xe955('0x4c')]=function(_0xdec4e9,_0x42f98e){return db[_0xe955('0x2f')][_0xe955('0x4c')](_0xdec4e9[_0xe955('0x4d')],{})[_0xe955('0x29')](function(_0xc8aada){var _0x30dd4e=_0xdec4e9[_0xe955('0x4e')][_0xe955('0x2a')]({'plain':!![]});if(!_0x30dd4e)throw new Error(_0xe955('0x4f'));if(_0x30dd4e[_0xe955('0x50')]===_0xe955('0x4e')){var _0x492629=_0xc8aada[_0xe955('0x2a')]({'plain':!![]});var _0x422a53=_0xe955('0x51');return db[_0xe955('0x52')][_0xe955('0x4b')]({'where':{'name':_0x422a53,'userProfileId':_0x30dd4e['userProfileId']},'raw':!![]})[_0xe955('0x29')](function(_0x20f188){if(_0x20f188&&_0x20f188[_0xe955('0x53')]===0x0){return db['UserProfileResource'][_0xe955('0x4c')]({'name':_0x492629[_0xe955('0x2d')],'resourceId':_0x492629['id'],'type':_0x20f188[_0xe955('0x2d')],'sectionId':_0x20f188['id']},{})['then'](function(){return _0xc8aada;});}else{return _0xc8aada;}})['catch'](function(_0x4a235a){logger[_0xe955('0x2c')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x4a235a);throw _0x4a235a;});}return _0xc8aada;})[_0xe955('0x29')](respondWithResult(_0x42f98e,0xc9))[_0xe955('0x48')](handleError(_0x42f98e,null));};exports['update']=function(_0x58c2d4,_0x323b30){if(_0x58c2d4['body']['id']){delete _0x58c2d4[_0xe955('0x4d')]['id'];}return db['CmList'][_0xe955('0x4b')]({'where':{'id':_0x58c2d4[_0xe955('0x49')]['id']}})[_0xe955('0x29')](handleEntityNotFound(_0x323b30,null))[_0xe955('0x29')](saveUpdates(_0x58c2d4['body'],null))[_0xe955('0x29')](respondWithResult(_0x323b30,null))[_0xe955('0x48')](handleError(_0x323b30,null));};exports[_0xe955('0x2b')]=function(_0x2069a7,_0x32c01b){return db['CmList']['find']({'where':{'id':_0x2069a7[_0xe955('0x49')]['id']}})['then'](handleEntityNotFound(_0x32c01b,null))[_0xe955('0x29')](removeEntity(_0x32c01b,null))[_0xe955('0x48')](handleError(_0x32c01b,null));};exports[_0xe955('0x54')]=function(_0x15c94a,_0x5c575b){return db[_0xe955('0x2f')][_0xe955('0x54')]()[_0xe955('0x29')](respondWithResult(_0x5c575b,null))['catch'](handleError(_0x5c575b,null));};exports[_0xe955('0x55')]=function(_0x51e7a5,_0x51011f,_0x1d8cc6){if(_0x51e7a5[_0xe955('0x4d')]['id']){delete _0x51e7a5[_0xe955('0x4d')]['id'];}return db['CmList'][_0xe955('0x4b')]({'where':{'id':_0x51e7a5[_0xe955('0x49')]['id']}})[_0xe955('0x29')](handleEntityNotFound(_0x51011f,null))['then'](function(_0x4941d4){if(_0x4941d4){_0x51e7a5[_0xe955('0x4d')][_0xe955('0x56')]=_0x4941d4['id'];return db['Disposition']['create'](_0x51e7a5['body']);}})[_0xe955('0x29')](respondWithResult(_0x51011f,null))[_0xe955('0x48')](handleError(_0x51011f,null));};exports[_0xe955('0x57')]=function(_0x24aa67,_0x5d3830,_0x58923b){var _0x367f7f={'raw':![],'where':{}};var _0x17d5f7={};var _0x43faf6={'count':0x0,'rows':[]};return db['CmList']['findOne']({'where':{'id':_0x24aa67['params']['id']}})[_0xe955('0x29')](handleEntityNotFound(_0x5d3830,null))['then'](function(_0x12f187){if(_0x12f187){_0x17d5f7[_0xe955('0x37')]=_[_0xe955('0x34')](db[_0xe955('0x58')][_0xe955('0x30')]);_0x17d5f7[_0xe955('0x33')]=_[_0xe955('0x34')](_0x24aa67['query']);_0x17d5f7['filters']=_[_0xe955('0x36')](_0x17d5f7[_0xe955('0x37')],_0x17d5f7['query']);_0x367f7f[_0xe955('0x38')]=_[_0xe955('0x36')](_0x17d5f7[_0xe955('0x37')],qs[_0xe955('0x39')](_0x24aa67['query']['fields']));_0x367f7f[_0xe955('0x38')]=_0x367f7f[_0xe955('0x38')]['length']?_0x367f7f[_0xe955('0x38')]:_0x17d5f7['model'];if(!_0x24aa67[_0xe955('0x33')][_0xe955('0x3a')](_0xe955('0x3b'))){_0x367f7f[_0xe955('0x23')]=qs[_0xe955('0x23')](_0x24aa67[_0xe955('0x33')][_0xe955('0x23')]);_0x367f7f[_0xe955('0x21')]=qs[_0xe955('0x21')](_0x24aa67['query'][_0xe955('0x21')]);}_0x367f7f['order']=qs[_0xe955('0x3d')](_0x24aa67[_0xe955('0x33')][_0xe955('0x3d')]);_0x367f7f[_0xe955('0x3e')]=qs[_0xe955('0x35')](_['pick'](_0x24aa67[_0xe955('0x33')],_0x17d5f7['filters']));_0x367f7f['where']['ListId']=_0x12f187['id'];if(_0x24aa67[_0xe955('0x33')][_0xe955('0x43')]){_0x367f7f['where']=_[_0xe955('0x40')](_0x367f7f['where'],{'$or':_['map'](_0x367f7f[_0xe955('0x38')],function(_0xb34a3e){var _0x1dae84={};_0x1dae84[_0xb34a3e]={'$like':'%'+_0x24aa67[_0xe955('0x33')][_0xe955('0x43')]+'%'};return _0x1dae84;})});}_0x367f7f=_[_0xe955('0x40')]({},_0x367f7f,_0x24aa67[_0xe955('0x59')]);return db[_0xe955('0x58')][_0xe955('0x24')]({'where':_0x367f7f[_0xe955('0x3e')]})[_0xe955('0x29')](function(_0x210731){_0x43faf6[_0xe955('0x24')]=_0x210731;if(_0x24aa67[_0xe955('0x33')][_0xe955('0x44')]){_0x367f7f[_0xe955('0x45')]=[{'all':!![]}];}return db[_0xe955('0x58')][_0xe955('0x46')](_0x367f7f);})[_0xe955('0x29')](function(_0x2e2a58){_0x43faf6['rows']=_0x2e2a58;return _0x43faf6;});}})[_0xe955('0x29')](respondWithFilteredResult(_0x5d3830,_0x367f7f))[_0xe955('0x48')](handleError(_0x5d3830,null));};exports['removeDispositions']=function(_0x6069a4,_0xb00be1,_0x36c674){return db['CmList'][_0xe955('0x4b')]({'where':{'id':_0x6069a4[_0xe955('0x49')]['id']}})['then'](handleEntityNotFound(_0xb00be1,null))[_0xe955('0x29')](function(_0x503cd6){if(_0x503cd6){return _0x503cd6[_0xe955('0x5a')](_0x6069a4[_0xe955('0x33')]['ids']);}})[_0xe955('0x29')](respondWithStatusCode(_0xb00be1,null))[_0xe955('0x48')](handleError(_0xb00be1,null));};exports[_0xe955('0x5b')]=function(_0x2d2105,_0x343ca3,_0x1c1ef1){return db['CmList'][_0xe955('0x4b')]({'where':{'id':_0x2d2105[_0xe955('0x49')]['id']}})[_0xe955('0x29')](handleEntityNotFound(_0x343ca3,null))[_0xe955('0x29')](function(_0x2618e3){if(_0x2618e3){var _0x3f0b4c=[];var _0x12c8ec={'success':[],'errors':[]};return db[_0xe955('0x5c')][_0xe955('0x54')]()[_0xe955('0x29')](function(_0x188cf6){if(_0x2d2105['body']['tags']&&_[_0xe955('0x5d')](_0x2d2105['body']['tags'])){if(_0x2d2105['body'][_0xe955('0x5e')][_0xe955('0x4a')]){_0x2d2105[_0xe955('0x4d')][_0xe955('0x5e')]=_0x2d2105[_0xe955('0x4d')][_0xe955('0x5e')][_0xe955('0x5f')](';')+';';}else{_0x2d2105[_0xe955('0x4d')][_0xe955('0x5e')]=null;}}else{_0x2d2105[_0xe955('0x4d')][_0xe955('0x5e')]=null;}if(_0x2d2105[_0xe955('0x4d')]&&_['isArray'](_0x2d2105['body'])){for(var _0xd4608b=0x0;_0xd4608b<_0x2d2105[_0xe955('0x4d')]['length'];_0xd4608b+=0x1){_0x2d2105[_0xe955('0x4d')][_0xd4608b]['ListId']=_0x2d2105[_0xe955('0x49')]['id'];_0x3f0b4c[_0xe955('0x60')](_0x2d2105[_0xe955('0x4d')][_0xd4608b]);}return BPromise[_0xe955('0x61')](_0x3f0b4c,function(_0x288214){return db[_0xe955('0x5c')][_0xe955('0x4c')](_['omit'](_0x288214,[_0xe955('0x62'),'id'])||{},{'fields':_[_0xe955('0x34')](_0x188cf6),'raw':!![]})[_0xe955('0x29')](function(_0x3e64a3){_0x12c8ec[_0xe955('0x63')][_0xe955('0x60')](_0x3e64a3[_0xe955('0x64')]);})[_0xe955('0x48')](function(_0x53f697){_0x12c8ec[_0xe955('0x65')]['push']({'data':_0x288214,'error':_0x53f697[_0xe955('0x66')]});});})[_0xe955('0x29')](function(_0x5c486b){return _0x12c8ec;})['catch'](function(_0x534b68){return _0x534b68;});}else{_0x343ca3[_0xe955('0x20')](0x190)['json']({'message':'Malformed\x20request\x20syntax'});}});}})['then'](respondWithResult(_0x343ca3,null))['catch'](handleError(_0x343ca3,null));};exports[_0xe955('0x67')]=function(_0x5cd656,_0x1e9234,_0x789876){var _0x2462af;return db['CmList'][_0xe955('0x4b')]({'where':{'id':_0x5cd656[_0xe955('0x49')]['id']},'include':[{'model':db[_0xe955('0x68')],'as':_0xe955('0x69')}]})['then'](handleEntityNotFound(_0x1e9234,null))[_0xe955('0x29')](function(_0x4ccd73){if(_0x4ccd73){_0x2462af=_0x4ccd73;return db['CmContact'][_0xe955('0x30')];}})['then'](function(_0x1d00b2){if(_0x1d00b2){var _0x265ff3={};var _0x588da9={};_0x588da9[_0xe955('0x37')]=_[_0xe955('0x6a')](_[_0xe955('0x34')](_0x1d00b2),_['map'](_0x2462af[_0xe955('0x69')],function(_0x1921cb){return util[_0xe955('0x6b')](_0xe955('0x6c'),_0x1921cb['id']);}));_0x588da9['query']=_[_0xe955('0x34')](_0x5cd656['query']);_0x588da9[_0xe955('0x35')]=_[_0xe955('0x36')](_0x588da9[_0xe955('0x37')],_0x588da9['query']);_0x265ff3[_0xe955('0x38')]=_['intersection'](_0x588da9[_0xe955('0x37')],qs[_0xe955('0x39')](_0x5cd656['query']['fields']));_0x265ff3[_0xe955('0x38')]=_0x265ff3['attributes']['length']?_0x265ff3[_0xe955('0x38')]:_0x588da9['model'];if(!_0x5cd656[_0xe955('0x33')][_0xe955('0x3a')]('nolimit')){_0x265ff3[_0xe955('0x23')]=qs[_0xe955('0x23')](_0x5cd656[_0xe955('0x33')][_0xe955('0x23')]);_0x265ff3[_0xe955('0x21')]=qs[_0xe955('0x21')](_0x5cd656['query']['offset']);}_0x265ff3[_0xe955('0x3c')]=qs['sort'](_0x5cd656[_0xe955('0x33')][_0xe955('0x3d')]);_0x265ff3[_0xe955('0x3e')]=qs[_0xe955('0x35')](_[_0xe955('0x3f')](_0x5cd656[_0xe955('0x33')],_0x588da9[_0xe955('0x35')]));_0x265ff3[_0xe955('0x6d')]=!![];if(_0x5cd656[_0xe955('0x33')][_0xe955('0x43')]){_0x265ff3[_0xe955('0x3e')]=_['merge'](_0x265ff3['where'],{'$or':_[_0xe955('0x2e')](_0x265ff3[_0xe955('0x38')],function(_0x2ce583){var _0x5436de={};_0x5436de[_0x2ce583]={'$like':'%'+_0x5cd656[_0xe955('0x33')][_0xe955('0x43')]+'%'};return _0x5436de;})});}_0x265ff3=_['merge']({},_0x265ff3,_0x5cd656[_0xe955('0x59')]);return _0x2462af[_0xe955('0x67')](_0x265ff3);}})['then'](respondWithResult(_0x1e9234,null))['catch'](handleError(_0x1e9234,null));};exports['getContactsCsv']=function(_0x499196,_0x2cf3ae,_0x5333f4){var _0x3e1867;return db[_0xe955('0x2f')][_0xe955('0x4b')]({'where':{'id':_0x499196[_0xe955('0x49')]['id']},'include':[{'model':db[_0xe955('0x68')],'as':_0xe955('0x69')}]})[_0xe955('0x29')](handleEntityNotFound(_0x2cf3ae,null))[_0xe955('0x29')](function(_0x11b687){if(_0x11b687){_0x3e1867=_0x11b687;return db[_0xe955('0x5c')]['rawAttributes'];}})[_0xe955('0x29')](function(_0x6f7013){if(_0x6f7013){var _0x7bfaf2={};var _0x412570={};_0x412570[_0xe955('0x37')]=_[_0xe955('0x6a')](_[_0xe955('0x34')](_0x6f7013),_['map'](_0x3e1867[_0xe955('0x69')],function(_0x1f0dd4){return util[_0xe955('0x6b')](_0xe955('0x6c'),_0x1f0dd4['id']);}));_0x412570[_0xe955('0x33')]=_[_0xe955('0x34')](_0x499196['query']);_0x412570[_0xe955('0x35')]=_[_0xe955('0x36')](_0x412570[_0xe955('0x37')],_0x412570[_0xe955('0x33')]);_0x7bfaf2[_0xe955('0x38')]=_['intersection'](_0x412570[_0xe955('0x37')],qs[_0xe955('0x39')](_0x499196[_0xe955('0x33')][_0xe955('0x39')]));_0x7bfaf2[_0xe955('0x38')]=_0x7bfaf2['attributes'][_0xe955('0x4a')]?_0x7bfaf2[_0xe955('0x38')]:_0x412570[_0xe955('0x37')];if(!_0x499196['query']['hasOwnProperty'](_0xe955('0x3b'))){_0x7bfaf2['limit']=qs[_0xe955('0x23')](_0x499196[_0xe955('0x33')][_0xe955('0x23')]);_0x7bfaf2[_0xe955('0x21')]=qs[_0xe955('0x21')](_0x499196['query'][_0xe955('0x21')]);}_0x7bfaf2[_0xe955('0x3c')]=qs['sort'](_0x499196[_0xe955('0x33')][_0xe955('0x3d')]);_0x7bfaf2[_0xe955('0x3e')]=qs[_0xe955('0x35')](_[_0xe955('0x3f')](_0x499196['query'],_0x412570[_0xe955('0x35')]));_0x7bfaf2[_0xe955('0x6d')]=!![];if(_0x499196[_0xe955('0x33')]['filter']){_0x7bfaf2[_0xe955('0x3e')]=_[_0xe955('0x40')](_0x7bfaf2[_0xe955('0x3e')],{'$or':_[_0xe955('0x2e')](_0x7bfaf2[_0xe955('0x38')],function(_0xa62c35){var _0x2dd4ef={};_0x2dd4ef[_0xa62c35]={'$like':'%'+_0x499196[_0xe955('0x33')][_0xe955('0x43')]+'%'};return _0x2dd4ef;})});}_0x7bfaf2=_[_0xe955('0x40')]({},_0x7bfaf2,_0x499196[_0xe955('0x59')]);return _0x3e1867['getContacts'](_0x7bfaf2);}})['then'](function(_0x4c1352){if(!_[_0xe955('0x6e')](_0x4c1352)){var _0x2f8247=toCsv(_0x4c1352);var _0x22d5ec=Date[_0xe955('0x6f')]();fs[_0xe955('0x70')](util[_0xe955('0x6b')](_0xe955('0x71'),_0x3e1867['id'],_0x22d5ec),_0x2f8247);_0x2cf3ae['setHeader']('Content-disposition',_0xe955('0x72')+util[_0xe955('0x6b')]('list_%d_%s.csv',_0x3e1867['id'],_0x22d5ec));_0x2cf3ae[_0xe955('0x73')](_0xe955('0x74'),_0xe955('0x75'));return _0x2cf3ae[_0xe955('0x76')](util[_0xe955('0x6b')](_0xe955('0x71'),_0x3e1867['id'],_0x22d5ec));}else{return _0x2cf3ae['sendStatus'](0xcc);}})[_0xe955('0x48')](handleError(_0x2cf3ae,null));};exports['addCustomField']=function(_0x269e47,_0xb0e5d9,_0x2a6366){var _0x1cdc97;delete _0x269e47[_0xe955('0x4d')]['id'];return db[_0xe955('0x2f')]['findOne']({'where':{'id':_0x269e47[_0xe955('0x49')]['id']}})[_0xe955('0x29')](handleEntityNotFound(_0xb0e5d9,null))[_0xe955('0x29')](function(_0x141ee5){if(_0x141ee5){return db[_0xe955('0x77')][_0xe955('0x78')](function(_0xec4592){return db['CmCustomField'][_0xe955('0x4c')](_0x269e47[_0xe955('0x4d')],{'transaction':_0xec4592})[_0xe955('0x29')](function(_0x435a6e){_0x1cdc97=_0x435a6e;return _0x141ee5['addCustomFields'](_0x435a6e,{'transaction':_0xec4592});})[_0xe955('0x29')](function(){var _0x6d9339={'type':db['Sequelize'][_0xe955('0x79')],'transaction':_0xec4592};switch(_0x269e47[_0xe955('0x4d')][_0xe955('0x41')]){case _0xe955('0x7a'):_0x6d9339[_0xe955('0x41')]=db[_0xe955('0x7b')][_0xe955('0x79')];break;case'number':_0x6d9339[_0xe955('0x41')]=db['Sequelize'][_0xe955('0x7c')];break;case'switch':_0x6d9339[_0xe955('0x41')]=db[_0xe955('0x7b')][_0xe955('0x7d')];_0x6d9339['defaultValue']=![];break;default:}return db[_0xe955('0x77')][_0xe955('0x7e')][_0xe955('0x7f')](_0xe955('0x80'),util['format']('cf_%s',_0x1cdc97['id']),_0x6d9339);})[_0xe955('0x29')](function(){return _0x1cdc97;});});}})[_0xe955('0x29')](respondWithResult(_0xb0e5d9,null))[_0xe955('0x48')](handleError(_0xb0e5d9,null));};exports['getCustomFields']=function(_0x46c829,_0xbae5bf,_0x12231e){var _0x4bca20={};var _0x523554={};var _0x1e6e75;var _0x32026b;return db[_0xe955('0x2f')][_0xe955('0x81')]({'where':{'id':_0x46c829[_0xe955('0x49')]['id']}})['then'](handleEntityNotFound(_0xbae5bf,null))['then'](function(_0x4e0496){if(_0x4e0496){_0x1e6e75=_0x4e0496;_0x523554[_0xe955('0x37')]=_[_0xe955('0x34')](db['CmCustomField'][_0xe955('0x30')]);_0x523554[_0xe955('0x33')]=_[_0xe955('0x34')](_0x46c829[_0xe955('0x33')]);_0x523554['filters']=_['intersection'](_0x523554['model'],_0x523554['query']);_0x4bca20[_0xe955('0x38')]=_[_0xe955('0x36')](_0x523554[_0xe955('0x37')],qs['fields'](_0x46c829[_0xe955('0x33')]['fields']));_0x4bca20[_0xe955('0x38')]=_0x4bca20[_0xe955('0x38')]['length']?_0x4bca20['attributes']:_0x523554['model'];_0x4bca20[_0xe955('0x3c')]=qs[_0xe955('0x3d')](_0x46c829['query']['sort']);_0x4bca20[_0xe955('0x3e')]=qs['filters'](_[_0xe955('0x3f')](_0x46c829[_0xe955('0x33')],_0x523554[_0xe955('0x35')]));_0x4bca20['where']=_[_0xe955('0x40')](_0x4bca20['where'],{'$or':[{'ListId':_0x4e0496['id']},{'ListId':null}]});if(_0x46c829[_0xe955('0x33')][_0xe955('0x43')]){_0x4bca20[_0xe955('0x3e')]=_['merge'](_0x4bca20[_0xe955('0x3e')],{'$or':_[_0xe955('0x2e')](_0x4bca20[_0xe955('0x38')],function(_0x1716d2){var _0x2205e3={};_0x2205e3[_0x1716d2]={'$like':'%'+_0x46c829[_0xe955('0x33')]['filter']+'%'};return _0x2205e3;})});}_0x4bca20=_[_0xe955('0x40')]({},_0x4bca20,_0x46c829[_0xe955('0x59')]);return db[_0xe955('0x68')]['findAndCountAll'](_0x4bca20);}})[_0xe955('0x29')](respondWithResult(_0xbae5bf,null))[_0xe955('0x48')](handleError(_0xbae5bf,null));};exports['addAgents']=function(_0x51fe50,_0x25d26c,_0x559be7){return db[_0xe955('0x2f')]['find']({'where':{'id':_0x51fe50[_0xe955('0x49')]['id']}})[_0xe955('0x29')](handleEntityNotFound(_0x25d26c,null))['then'](function(_0x3111e9){if(_0x3111e9){return _0x3111e9[_0xe955('0x82')](_0x51fe50[_0xe955('0x4d')]['ids'],_[_0xe955('0x83')](_0x51fe50['body'],[_0xe955('0x62'),'id'])||{})[_0xe955('0x84')](function(_0x9f99c4){for(var _0x3aedcc=0x0;_0x3aedcc<_0x51fe50[_0xe955('0x4d')][_0xe955('0x62')][_0xe955('0x4a')];_0x3aedcc+=0x1){socket[_0xe955('0x85')]('userCmList:save',{'UserId':Number(_0x51fe50['body'][_0xe955('0x62')][_0x3aedcc]),'CmListId':Number(_0x51fe50[_0xe955('0x49')]['id'])});}return _0x9f99c4;});}})['then'](respondWithResult(_0x25d26c,null))[_0xe955('0x48')](handleError(_0x25d26c,null));};exports[_0xe955('0x86')]=function(_0x4cb0c0,_0x190b15,_0x45aa5a){return db['CmList'][_0xe955('0x4b')]({'where':{'id':_0x4cb0c0[_0xe955('0x49')]['id']}})[_0xe955('0x29')](handleEntityNotFound(_0x190b15,null))['then'](function(_0x525aa4){if(_0x525aa4){return _0x525aa4['removeAgents'](_0x4cb0c0['query'][_0xe955('0x62')])[_0xe955('0x29')](function(){if(_['isArray'](_0x4cb0c0[_0xe955('0x33')][_0xe955('0x62')])){for(var _0x194b0d=0x0;_0x194b0d<_0x4cb0c0['query']['ids'][_0xe955('0x4a')];_0x194b0d+=0x1){socket[_0xe955('0x85')](_0xe955('0x87'),{'UserId':Number(_0x4cb0c0[_0xe955('0x33')][_0xe955('0x62')][_0x194b0d]),'CmListId':Number(_0x4cb0c0[_0xe955('0x49')]['id'])});}}else{socket[_0xe955('0x85')](_0xe955('0x87'),{'UserId':Number(_0x4cb0c0[_0xe955('0x33')]['ids']),'CmListId':Number(_0x4cb0c0[_0xe955('0x49')]['id'])});}});}})[_0xe955('0x29')](respondWithStatusCode(_0x190b15,null))[_0xe955('0x48')](handleError(_0x190b15,null));};exports['getAgents']=function(_0x57e99c,_0x8efeae,_0x3fad27){var _0x57d9de={};var _0x20ece3={};var _0x1421a9;var _0x56911f;return db[_0xe955('0x2f')][_0xe955('0x81')]({'where':{'id':_0x57e99c[_0xe955('0x49')]['id']}})['then'](handleEntityNotFound(_0x8efeae,null))[_0xe955('0x29')](function(_0x14e9ac){if(_0x14e9ac){_0x1421a9=_0x14e9ac;_0x20ece3[_0xe955('0x37')]=_['keys'](db['User'][_0xe955('0x30')]);_0x20ece3['query']=_[_0xe955('0x34')](_0x57e99c[_0xe955('0x33')]);_0x20ece3[_0xe955('0x35')]=_['intersection'](_0x20ece3[_0xe955('0x37')],_0x20ece3['query']);_0x57d9de[_0xe955('0x38')]=_['intersection'](_0x20ece3[_0xe955('0x37')],qs[_0xe955('0x39')](_0x57e99c[_0xe955('0x33')][_0xe955('0x39')]));_0x57d9de[_0xe955('0x38')]=_0x57d9de[_0xe955('0x38')]['length']?_0x57d9de[_0xe955('0x38')]:_0x20ece3['model'];_0x57d9de[_0xe955('0x3c')]=qs[_0xe955('0x3d')](_0x57e99c[_0xe955('0x33')][_0xe955('0x3d')]);_0x57d9de[_0xe955('0x3e')]=qs[_0xe955('0x35')](_[_0xe955('0x3f')](_0x57e99c[_0xe955('0x33')],_0x20ece3[_0xe955('0x35')]));if(_0x57e99c[_0xe955('0x33')]['filter']){_0x57d9de[_0xe955('0x3e')]=_[_0xe955('0x40')](_0x57d9de[_0xe955('0x3e')],{'$or':_[_0xe955('0x2e')](_0x57d9de['attributes'],function(_0x477deb){var _0x820c3e={};_0x820c3e[_0x477deb]={'$like':'%'+_0x57e99c[_0xe955('0x33')][_0xe955('0x43')]+'%'};return _0x820c3e;})});}_0x57d9de=_[_0xe955('0x40')]({},_0x57d9de,_0x57e99c[_0xe955('0x59')]);return _0x1421a9[_0xe955('0x88')](_0x57d9de);}})[_0xe955('0x29')](function(_0x20bd5f){if(_0x20bd5f){_0x56911f=_0x20bd5f['length'];if(!_0x57e99c[_0xe955('0x33')][_0xe955('0x3a')](_0xe955('0x3b'))){_0x57d9de[_0xe955('0x23')]=qs[_0xe955('0x23')](_0x57e99c[_0xe955('0x33')][_0xe955('0x23')]);_0x57d9de['offset']=qs['offset'](_0x57e99c['query'][_0xe955('0x21')]);}return _0x1421a9[_0xe955('0x88')](_0x57d9de);}})['then'](function(_0x4d5e17){if(_0x4d5e17){return _0x4d5e17?{'count':_0x56911f,'rows':_0x4d5e17}:null;}})['then'](respondWithResult(_0x8efeae,null))[_0xe955('0x48')](handleError(_0x8efeae,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5fc3=['events','../../mysqldb','setMaxListeners','save','update','remove','emit','hook'];(function(_0x1ddedd,_0x485606){var _0xa3e1ac=function(_0x580444){while(--_0x580444){_0x1ddedd['push'](_0x1ddedd['shift']());}};_0xa3e1ac(++_0x485606);}(_0x5fc3,0xa8));var _0x35fc=function(_0xdea41a,_0x552987){_0xdea41a=_0xdea41a-0x0;var _0x15d0d8=_0x5fc3[_0xdea41a];return _0x15d0d8;};'use strict';var EventEmitter=require(_0x35fc('0x0'));var CmList=require(_0x35fc('0x1'))['db']['CmList'];var CmListEvents=new EventEmitter();CmListEvents[_0x35fc('0x2')](0x0);var events={'afterCreate':_0x35fc('0x3'),'afterUpdate':_0x35fc('0x4'),'afterDestroy':_0x35fc('0x5')};function emitEvent(_0xb4f9ce){return function(_0x5e75e6,_0x2d1404,_0x1d5fec){CmListEvents[_0x35fc('0x6')](_0xb4f9ce+':'+_0x5e75e6['id'],_0x5e75e6);CmListEvents['emit'](_0xb4f9ce,_0x5e75e6);_0x1d5fec(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];CmList[_0x35fc('0x7')](e,emitEvent(event));}}module['exports']=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(_0x3cfba1,_0x4783af){_0x3cfba1=_0x3cfba1-0x0;var _0x4a9526=_0x3e74[_0x3cfba1];return _0x4a9526;};'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 _0xac4a=['lodash','util','../../config/logger','api','moment','bluebird','rimraf','../../config/environment','./cmList.attributes','define','cm_lists'];(function(_0x586131,_0x44d39e){var _0x5a9f19=function(_0x58901e){while(--_0x58901e){_0x586131['push'](_0x586131['shift']());}};_0x5a9f19(++_0x44d39e);}(_0xac4a,0x13f));var _0xaac4=function(_0x56a01e,_0x34fdbd){_0x56a01e=_0x56a01e-0x0;var _0x14e339=_0xac4a[_0x56a01e];return _0x14e339;};'use strict';var _=require(_0xaac4('0x0'));var util=require(_0xaac4('0x1'));var logger=require(_0xaac4('0x2'))(_0xaac4('0x3'));var moment=require(_0xaac4('0x4'));var BPromise=require(_0xaac4('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0xaac4('0x6'));var config=require(_0xaac4('0x7'));var attributes=require(_0xaac4('0x8'));module['exports']=function(_0x1283a5,_0x53d03a){return _0x1283a5[_0xaac4('0x9')]('CmList',attributes,{'tableName':_0xaac4('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(_0x4789a4,_0x5b9016){var _0x2f2a51=function(_0x1de0c1){while(--_0x1de0c1){_0x4789a4['push'](_0x4789a4['shift']());}};_0x2f2a51(++_0x5b9016);}(_0xe5b5,0x12b));var _0x5e5b=function(_0x3afe18,_0x26922c){_0x3afe18=_0x3afe18-0x0;var _0x19ed1f=_0xe5b5[_0x3afe18];return _0x19ed1f;};'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 _0xc7a4=['error','code','message','result','lodash','util','randomstring','../../config/utils','rpc','../../config/environment','jayson/promise','client','http','redis','localhost','register','request','then','info','CmList,\x20%s,\x20%s','request\x20sent','debug','CmList,\x20%s,\x20%s,\x20%s','stringify'];(function(_0x15dea0,_0x6066a3){var _0x2d077e=function(_0x233565){while(--_0x233565){_0x15dea0['push'](_0x15dea0['shift']());}};_0x2d077e(++_0x6066a3);}(_0xc7a4,0x13c));var _0x4c7a=function(_0x7bdc64,_0x6af4d4){_0x7bdc64=_0x7bdc64-0x0;var _0x545ab5=_0xc7a4[_0x7bdc64];return _0x545ab5;};'use strict';var _=require(_0x4c7a('0x0'));var util=require(_0x4c7a('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0x4c7a('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0x4c7a('0x3'));var logger=require('../../config/logger')(_0x4c7a('0x4'));var config=require(_0x4c7a('0x5'));var jayson=require(_0x4c7a('0x6'));var client=jayson[_0x4c7a('0x7')][_0x4c7a('0x8')]({'port':0x232a});config['redis']=_['defaults'](config[_0x4c7a('0x9')],{'host':_0x4c7a('0xa'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x4c7a('0x9')]));require('./cmList.socket')[_0x4c7a('0xb')](socket);function respondWithRpcPromise(_0x51066c,_0x1eb23f,_0x41c5ba){return new BPromise(function(_0x2fe9e0,_0x1e3b02){return client[_0x4c7a('0xc')](_0x51066c,_0x41c5ba)[_0x4c7a('0xd')](function(_0x44fb6d){logger[_0x4c7a('0xe')](_0x4c7a('0xf'),_0x1eb23f,_0x4c7a('0x10'));logger[_0x4c7a('0x11')](_0x4c7a('0x12'),_0x1eb23f,_0x4c7a('0x10'),JSON[_0x4c7a('0x13')](_0x44fb6d));if(_0x44fb6d['error']){if(_0x44fb6d[_0x4c7a('0x14')][_0x4c7a('0x15')]===0x1f4){logger[_0x4c7a('0x14')](_0x4c7a('0xf'),_0x1eb23f,_0x44fb6d['error'][_0x4c7a('0x16')]);return _0x1e3b02(_0x44fb6d[_0x4c7a('0x14')][_0x4c7a('0x16')]);}logger['error'](_0x4c7a('0xf'),_0x1eb23f,_0x44fb6d[_0x4c7a('0x14')]['message']);return _0x2fe9e0(_0x44fb6d[_0x4c7a('0x14')]['message']);}else{logger[_0x4c7a('0xe')]('CmList,\x20%s,\x20%s',_0x1eb23f,_0x4c7a('0x10'));_0x2fe9e0(_0x44fb6d[_0x4c7a('0x17')][_0x4c7a('0x16')]);}})['catch'](function(_0x572b26){logger['error'](_0x4c7a('0xf'),_0x1eb23f,_0x572b26);_0x1e3b02(_0x572b26);});});}
\ No newline at end of file
+var _0xb10b=['defaults','redis','localhost','socket.io-emitter','./cmList.socket','request','then','info','CmList,\x20%s,\x20%s','debug','request\x20sent','stringify','error','code','message','lodash','moment','bluebird','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment'];(function(_0xe6f4ef,_0x4e34cc){var _0x4f3447=function(_0x1538ff){while(--_0x1538ff){_0xe6f4ef['push'](_0xe6f4ef['shift']());}};_0x4f3447(++_0x4e34cc);}(_0xb10b,0x99));var _0xbb10=function(_0xac0de1,_0x12d3d9){_0xac0de1=_0xac0de1-0x0;var _0x1c1995=_0xb10b[_0xac0de1];return _0x1c1995;};'use strict';var _=require(_0xbb10('0x0'));var util=require('util');var moment=require(_0xbb10('0x1'));var BPromise=require(_0xbb10('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0xbb10('0x3'))['db'];var utils=require(_0xbb10('0x4'));var logger=require(_0xbb10('0x5'))(_0xbb10('0x6'));var config=require(_0xbb10('0x7'));var jayson=require('jayson/promise');var client=jayson['client']['http']({'port':0x232a});config['redis']=_[_0xbb10('0x8')](config[_0xbb10('0x9')],{'host':_0xbb10('0xa'),'port':0x18eb});var socket=require(_0xbb10('0xb'))(new Redis(config[_0xbb10('0x9')]));require(_0xbb10('0xc'))['register'](socket);function respondWithRpcPromise(_0x2e32b8,_0x58c439,_0x310236){return new BPromise(function(_0x355330,_0x53fb60){return client[_0xbb10('0xd')](_0x2e32b8,_0x310236)[_0xbb10('0xe')](function(_0x15ac01){logger[_0xbb10('0xf')](_0xbb10('0x10'),_0x58c439,'request\x20sent');logger[_0xbb10('0x11')]('CmList,\x20%s,\x20%s,\x20%s',_0x58c439,_0xbb10('0x12'),JSON[_0xbb10('0x13')](_0x15ac01));if(_0x15ac01[_0xbb10('0x14')]){if(_0x15ac01[_0xbb10('0x14')][_0xbb10('0x15')]===0x1f4){logger['error'](_0xbb10('0x10'),_0x58c439,_0x15ac01[_0xbb10('0x14')][_0xbb10('0x16')]);return _0x53fb60(_0x15ac01[_0xbb10('0x14')][_0xbb10('0x16')]);}logger[_0xbb10('0x14')]('CmList,\x20%s,\x20%s',_0x58c439,_0x15ac01['error'][_0xbb10('0x16')]);return _0x355330(_0x15ac01[_0xbb10('0x14')][_0xbb10('0x16')]);}else{logger[_0xbb10('0xf')](_0xbb10('0x10'),_0x58c439,_0xbb10('0x12'));_0x355330(_0x15ac01['result'][_0xbb10('0x16')]);}})['catch'](function(_0x4e341c){logger[_0xbb10('0x14')](_0xbb10('0x10'),_0x58c439,_0x4e341c);_0x53fb60(_0x4e341c);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2d66=['./cmList.events','save','remove','update','emit','removeListener','length','cmList:'];(function(_0x7b37d2,_0x2439a5){var _0x2bdcb7=function(_0x5f01b7){while(--_0x5f01b7){_0x7b37d2['push'](_0x7b37d2['shift']());}};_0x2bdcb7(++_0x2439a5);}(_0x2d66,0xd8));var _0x62d6=function(_0x5234a6,_0x314a5d){_0x5234a6=_0x5234a6-0x0;var _0x1f8955=_0x2d66[_0x5234a6];return _0x1f8955;};'use strict';var CmListEvents=require(_0x62d6('0x0'));var events=[_0x62d6('0x1'),_0x62d6('0x2'),_0x62d6('0x3')];function createListener(_0x1a69e4,_0x11d732){return function(_0x4041bd){_0x11d732[_0x62d6('0x4')](_0x1a69e4,_0x4041bd);};}function removeListener(_0x13a4ca,_0x40a658){return function(){CmListEvents[_0x62d6('0x5')](_0x13a4ca,_0x40a658);};}exports['register']=function(_0x5f67c6){for(var _0x2a8f56=0x0,_0x9a8260=events[_0x62d6('0x6')];_0x2a8f56<_0x9a8260;_0x2a8f56++){var _0x575f72=events[_0x2a8f56];var _0x5d3da8=createListener(_0x62d6('0x7')+_0x575f72,_0x5f67c6);CmListEvents['on'](_0x575f72,_0x5d3da8);}};
\ No newline at end of file
+var _0x6940=['remove','update','emit','removeListener','register','length','./cmList.events','save'];(function(_0x142f81,_0x59512a){var _0xa6ea15=function(_0x18c941){while(--_0x18c941){_0x142f81['push'](_0x142f81['shift']());}};_0xa6ea15(++_0x59512a);}(_0x6940,0xbe));var _0x0694=function(_0x58c2ba,_0xfc42e5){_0x58c2ba=_0x58c2ba-0x0;var _0x291696=_0x6940[_0x58c2ba];return _0x291696;};'use strict';var CmListEvents=require(_0x0694('0x0'));var events=[_0x0694('0x1'),_0x0694('0x2'),_0x0694('0x3')];function createListener(_0x18230b,_0x40d131){return function(_0x27e7e4){_0x40d131[_0x0694('0x4')](_0x18230b,_0x27e7e4);};}function removeListener(_0x47fcf5,_0x1716fa){return function(){CmListEvents[_0x0694('0x5')](_0x47fcf5,_0x1716fa);};}exports[_0x0694('0x6')]=function(_0x26d29c){for(var _0x4d5a2a=0x0,_0x207621=events[_0x0694('0x7')];_0x4d5a2a<_0x207621;_0x4d5a2a++){var _0x29a26f=events[_0x4d5a2a];var _0x2f18e4=createListener('cmList:'+_0x29a26f,_0x26d29c);CmListEvents['on'](_0x29a26f,_0x2f18e4);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf8a3=['getContacts','/:id/contacts/csv','getContactsCsv','getCustomFields','post','create','/:id/dispositions','addDisposition','/:id/contacts','addContacts','/:id/fields','addCustomField','/:id/users','addAgents','put','/:id','update','delete','destroy','removeDispositions','removeAgents','exports','multer','util','path','express','fs-extra','../../components/auth/service','./cmList.controller','index','get','/describe','describe','isAuthenticated','show'];(function(_0x2b0fa4,_0x548d11){var _0x4c8e66=function(_0x28b3dd){while(--_0x28b3dd){_0x2b0fa4['push'](_0x2b0fa4['shift']());}};_0x4c8e66(++_0x548d11);}(_0xf8a3,0x174));var _0x3f8a=function(_0x339f3a,_0x330d41){_0x339f3a=_0x339f3a-0x0;var _0x5f1f48=_0xf8a3[_0x339f3a];return _0x5f1f48;};'use strict';var multer=require(_0x3f8a('0x0'));var util=require(_0x3f8a('0x1'));var path=require(_0x3f8a('0x2'));var timeout=require('connect-timeout');var express=require(_0x3f8a('0x3'));var router=express['Router']();var fs_extra=require(_0x3f8a('0x4'));var auth=require(_0x3f8a('0x5'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0x3f8a('0x6'));router['get']('/',auth['isAuthenticated'](),controller[_0x3f8a('0x7')]);router[_0x3f8a('0x8')](_0x3f8a('0x9'),auth['isAuthenticated'](),controller[_0x3f8a('0xa')]);router['get']('/:id',auth[_0x3f8a('0xb')](),controller[_0x3f8a('0xc')]);router['get']('/:id/dispositions',auth[_0x3f8a('0xb')](),controller['getDispositions']);router[_0x3f8a('0x8')]('/:id/contacts',auth[_0x3f8a('0xb')](),controller[_0x3f8a('0xd')]);router[_0x3f8a('0x8')](_0x3f8a('0xe'),auth[_0x3f8a('0xb')](),controller[_0x3f8a('0xf')]);router['get']('/:id/fields',auth[_0x3f8a('0xb')](),controller[_0x3f8a('0x10')]);router[_0x3f8a('0x8')]('/:id/users',auth[_0x3f8a('0xb')](),controller['getAgents']);router[_0x3f8a('0x11')]('/',auth[_0x3f8a('0xb')](),controller[_0x3f8a('0x12')]);router['post'](_0x3f8a('0x13'),auth[_0x3f8a('0xb')](),controller[_0x3f8a('0x14')]);router[_0x3f8a('0x11')](_0x3f8a('0x15'),auth[_0x3f8a('0xb')](),controller[_0x3f8a('0x16')]);router['post'](_0x3f8a('0x17'),auth['isAuthenticated'](),controller[_0x3f8a('0x18')]);router[_0x3f8a('0x11')](_0x3f8a('0x19'),auth[_0x3f8a('0xb')](),controller[_0x3f8a('0x1a')]);router[_0x3f8a('0x1b')](_0x3f8a('0x1c'),auth[_0x3f8a('0xb')](),controller[_0x3f8a('0x1d')]);router[_0x3f8a('0x1e')](_0x3f8a('0x1c'),auth[_0x3f8a('0xb')](),controller[_0x3f8a('0x1f')]);router[_0x3f8a('0x1e')]('/:id/dispositions',auth[_0x3f8a('0xb')](),controller[_0x3f8a('0x20')]);router['delete'](_0x3f8a('0x19'),auth[_0x3f8a('0xb')](),controller[_0x3f8a('0x21')]);module[_0x3f8a('0x22')]=router;
\ No newline at end of file
+var _0xc960=['multer','util','path','connect-timeout','Router','fs-extra','../../components/interaction/service','./cmList.controller','isAuthenticated','index','get','/describe','/:id','show','getDispositions','/:id/contacts','getContacts','/:id/contacts/csv','getAgents','post','create','/:id/dispositions','addDisposition','addContacts','addCustomField','/:id/users','addAgents','put','update','delete','destroy','removeDispositions','removeAgents','exports'];(function(_0x3e7804,_0x121853){var _0x56efda=function(_0x1996f3){while(--_0x1996f3){_0x3e7804['push'](_0x3e7804['shift']());}};_0x56efda(++_0x121853);}(_0xc960,0xcc));var _0x0c96=function(_0x5be0c0,_0x1c18a2){_0x5be0c0=_0x5be0c0-0x0;var _0x190029=_0xc960[_0x5be0c0];return _0x190029;};'use strict';var multer=require(_0x0c96('0x0'));var util=require(_0x0c96('0x1'));var path=require(_0x0c96('0x2'));var timeout=require(_0x0c96('0x3'));var express=require('express');var router=express[_0x0c96('0x4')]();var fs_extra=require(_0x0c96('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0x0c96('0x6'));var config=require('../../config/environment');var controller=require(_0x0c96('0x7'));router['get']('/',auth[_0x0c96('0x8')](),controller[_0x0c96('0x9')]);router[_0x0c96('0xa')](_0x0c96('0xb'),auth[_0x0c96('0x8')](),controller['describe']);router[_0x0c96('0xa')](_0x0c96('0xc'),auth[_0x0c96('0x8')](),controller[_0x0c96('0xd')]);router[_0x0c96('0xa')]('/:id/dispositions',auth[_0x0c96('0x8')](),controller[_0x0c96('0xe')]);router[_0x0c96('0xa')](_0x0c96('0xf'),auth['isAuthenticated'](),controller[_0x0c96('0x10')]);router[_0x0c96('0xa')](_0x0c96('0x11'),auth['isAuthenticated'](),controller['getContactsCsv']);router[_0x0c96('0xa')]('/:id/fields',auth[_0x0c96('0x8')](),controller['getCustomFields']);router['get']('/:id/users',auth['isAuthenticated'](),controller[_0x0c96('0x12')]);router[_0x0c96('0x13')]('/',auth[_0x0c96('0x8')](),controller[_0x0c96('0x14')]);router[_0x0c96('0x13')](_0x0c96('0x15'),auth['isAuthenticated'](),controller[_0x0c96('0x16')]);router['post'](_0x0c96('0xf'),auth['isAuthenticated'](),controller[_0x0c96('0x17')]);router['post']('/:id/fields',auth[_0x0c96('0x8')](),controller[_0x0c96('0x18')]);router[_0x0c96('0x13')](_0x0c96('0x19'),auth['isAuthenticated'](),controller[_0x0c96('0x1a')]);router[_0x0c96('0x1b')]('/:id',auth[_0x0c96('0x8')](),controller[_0x0c96('0x1c')]);router[_0x0c96('0x1d')]('/:id',auth['isAuthenticated'](),controller[_0x0c96('0x1e')]);router['delete']('/:id/dispositions',auth['isAuthenticated'](),controller[_0x0c96('0x1f')]);router[_0x0c96('0x1d')]('/:id/users',auth['isAuthenticated'](),controller[_0x0c96('0x20')]);module[_0x0c96('0x21')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdbcb=['STRING','sequelize','VIRTUAL','getDataValue'];(function(_0xb8dd3b,_0x11ed69){var _0x3c7d92=function(_0x5abb80){while(--_0x5abb80){_0xb8dd3b['push'](_0xb8dd3b['shift']());}};_0x3c7d92(++_0x11ed69);}(_0xdbcb,0x171));var _0xbdbc=function(_0x3727d3,_0x48ee26){_0x3727d3=_0x3727d3-0x0;var _0x400020=_0xdbcb[_0x3727d3];return _0x400020;};'use strict';var Sequelize=require(_0xbdbc('0x0'));module['exports']={'name':{'type':Sequelize[_0xbdbc('0x1')],'get':function(_0x4c70bf){return this[_0xbdbc('0x2')]('field');}},'field':{'type':Sequelize[_0xbdbc('0x3')],'allowNull':![]},'operator':{'type':Sequelize['STRING'],'allowNull':![]},'value':{'type':Sequelize[_0xbdbc('0x3')],'allowNull':![]}};
\ No newline at end of file
+var _0xce11=['field','STRING','sequelize','exports'];(function(_0x3e872f,_0x3c33ee){var _0x2921cd=function(_0x80f259){while(--_0x80f259){_0x3e872f['push'](_0x3e872f['shift']());}};_0x2921cd(++_0x3c33ee);}(_0xce11,0xce));var _0x1ce1=function(_0x186ab9,_0x293a45){_0x186ab9=_0x186ab9-0x0;var _0x4edb25=_0xce11[_0x186ab9];return _0x4edb25;};'use strict';var Sequelize=require(_0x1ce1('0x0'));module[_0x1ce1('0x1')]={'name':{'type':Sequelize['VIRTUAL'],'get':function(_0x4e08e2){return this['getDataValue'](_0x1ce1('0x2'));}},'field':{'type':Sequelize['STRING'],'allowNull':![]},'operator':{'type':Sequelize[_0x1ce1('0x3')],'allowNull':![]},'value':{'type':Sequelize[_0x1ce1('0x3')],'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(_0xab9321,_0x1e77e6){var _0x5608a6=function(_0x4607c1){while(--_0x4607c1){_0xab9321['push'](_0xab9321['shift']());}};_0x5608a6(++_0x1e77e6);}(_0x7a54,0x106));var _0x47a5=function(_0x17d6db,_0x2bc84d){_0x17d6db=_0x17d6db-0x0;var _0x423898=_0x7a54[_0x17d6db];return _0x423898;};'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 _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(_0x2e60d9,_0x18d07d){var _0x2791d7=function(_0x341bf0){while(--_0x341bf0){_0x2e60d9['push'](_0x2e60d9['shift']());}};_0x2791d7(++_0x18d07d);}(_0x7a54,0x106));var _0x47a5=function(_0x31527f,_0x10a127){_0x31527f=_0x31527f-0x0;var _0x47f2af=_0x7a54[_0x31527f];return _0x47f2af;};'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
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x59de=['define','lodash','util','../../config/logger','moment','bluebird','request-promise','rimraf','../../config/environment','./condition.attributes','exports'];(function(_0x26615e,_0x23b1f9){var _0x55424c=function(_0x5c63d7){while(--_0x5c63d7){_0x26615e['push'](_0x26615e['shift']());}};_0x55424c(++_0x23b1f9);}(_0x59de,0x1ae));var _0xe59d=function(_0x67f30a,_0x2e62de){_0x67f30a=_0x67f30a-0x0;var _0x59b41e=_0x59de[_0x67f30a];return _0x59b41e;};'use strict';var _=require(_0xe59d('0x0'));var util=require(_0xe59d('0x1'));var logger=require(_0xe59d('0x2'))('api');var moment=require(_0xe59d('0x3'));var BPromise=require(_0xe59d('0x4'));var rp=require(_0xe59d('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0xe59d('0x6'));var config=require(_0xe59d('0x7'));var attributes=require(_0xe59d('0x8'));module[_0xe59d('0x9')]=function(_0x48b0f4,_0x73ae01){return _0x48b0f4[_0xe59d('0xa')]('Condition',attributes,{'tableName':'tools_conditions','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xd32c=['tools_conditions','util','../../config/logger','api','moment','path','rimraf','../../config/environment','./condition.attributes','exports','Condition'];(function(_0x57a489,_0x189abc){var _0x1988a7=function(_0x2e9e03){while(--_0x2e9e03){_0x57a489['push'](_0x57a489['shift']());}};_0x1988a7(++_0x189abc);}(_0xd32c,0x198));var _0xcd32=function(_0x20f288,_0x42b564){_0x20f288=_0x20f288-0x0;var _0x800caf=_0xd32c[_0x20f288];return _0x800caf;};'use strict';var _=require('lodash');var util=require(_0xcd32('0x0'));var logger=require(_0xcd32('0x1'))(_0xcd32('0x2'));var moment=require(_0xcd32('0x3'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0xcd32('0x4'));var rimraf=require(_0xcd32('0x5'));var config=require(_0xcd32('0x6'));var attributes=require(_0xcd32('0x7'));module[_0xcd32('0x8')]=function(_0x491f5e,_0x524c5f){return _0x491f5e['define'](_0xcd32('0x9'),attributes,{'tableName':_0xcd32('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x44a2=['util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','request','then','info','Condition,\x20%s,\x20%s','request\x20sent','debug','Condition,\x20%s,\x20%s,\x20%s','stringify','error','code','message','catch','lodash'];(function(_0x4f9b18,_0x2cb5ca){var _0x29f20c=function(_0x268b3d){while(--_0x268b3d){_0x4f9b18['push'](_0x4f9b18['shift']());}};_0x29f20c(++_0x2cb5ca);}(_0x44a2,0x7c));var _0x244a=function(_0x25dc44,_0x1596e4){_0x25dc44=_0x25dc44-0x0;var _0x3b5b11=_0x44a2[_0x25dc44];return _0x3b5b11;};'use strict';var _=require(_0x244a('0x0'));var util=require(_0x244a('0x1'));var moment=require(_0x244a('0x2'));var BPromise=require(_0x244a('0x3'));var rs=require(_0x244a('0x4'));var fs=require('fs');var Redis=require(_0x244a('0x5'));var db=require(_0x244a('0x6'))['db'];var utils=require(_0x244a('0x7'));var logger=require(_0x244a('0x8'))(_0x244a('0x9'));var config=require(_0x244a('0xa'));var jayson=require(_0x244a('0xb'));var client=jayson['client'][_0x244a('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x517288,_0x5365de,_0x57a3c7){return new BPromise(function(_0xc6f8c0,_0x3394c2){return client[_0x244a('0xd')](_0x517288,_0x57a3c7)[_0x244a('0xe')](function(_0x50326e){logger[_0x244a('0xf')](_0x244a('0x10'),_0x5365de,_0x244a('0x11'));logger[_0x244a('0x12')](_0x244a('0x13'),_0x5365de,_0x244a('0x11'),JSON[_0x244a('0x14')](_0x50326e));if(_0x50326e[_0x244a('0x15')]){if(_0x50326e[_0x244a('0x15')][_0x244a('0x16')]===0x1f4){logger[_0x244a('0x15')](_0x244a('0x10'),_0x5365de,_0x50326e[_0x244a('0x15')][_0x244a('0x17')]);return _0x3394c2(_0x50326e[_0x244a('0x15')]['message']);}logger['error'](_0x244a('0x10'),_0x5365de,_0x50326e[_0x244a('0x15')]['message']);return _0xc6f8c0(_0x50326e[_0x244a('0x15')][_0x244a('0x17')]);}else{logger[_0x244a('0xf')](_0x244a('0x10'),_0x5365de,'request\x20sent');_0xc6f8c0(_0x50326e['result'][_0x244a('0x17')]);}})[_0x244a('0x18')](function(_0x321911){logger[_0x244a('0x15')](_0x244a('0x10'),_0x5365de,_0x321911);_0x3394c2(_0x321911);});});}
\ No newline at end of file
+var _0xc2b3=['request\x20sent','debug','Condition,\x20%s,\x20%s,\x20%s','stringify','error','code','message','Condition,\x20%s,\x20%s','result','lodash','util','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','info'];(function(_0x5a776b,_0x46f785){var _0xbbef59=function(_0x38313e){while(--_0x38313e){_0x5a776b['push'](_0x5a776b['shift']());}};_0xbbef59(++_0x46f785);}(_0xc2b3,0x13d));var _0x3c2b=function(_0x3e2e06,_0x512839){_0x3e2e06=_0x3e2e06-0x0;var _0x3e8bd4=_0xc2b3[_0x3e2e06];return _0x3e8bd4;};'use strict';var _=require(_0x3c2b('0x0'));var util=require(_0x3c2b('0x1'));var moment=require('moment');var BPromise=require(_0x3c2b('0x2'));var rs=require(_0x3c2b('0x3'));var fs=require('fs');var Redis=require(_0x3c2b('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x3c2b('0x5'));var logger=require(_0x3c2b('0x6'))(_0x3c2b('0x7'));var config=require(_0x3c2b('0x8'));var jayson=require(_0x3c2b('0x9'));var client=jayson[_0x3c2b('0xa')][_0x3c2b('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x4b111b,_0x191e24,_0x150e12){return new BPromise(function(_0x570d56,_0x5bbdec){return client['request'](_0x4b111b,_0x150e12)['then'](function(_0x590eba){logger[_0x3c2b('0xc')]('Condition,\x20%s,\x20%s',_0x191e24,_0x3c2b('0xd'));logger[_0x3c2b('0xe')](_0x3c2b('0xf'),_0x191e24,'request\x20sent',JSON[_0x3c2b('0x10')](_0x590eba));if(_0x590eba['error']){if(_0x590eba[_0x3c2b('0x11')][_0x3c2b('0x12')]===0x1f4){logger['error']('Condition,\x20%s,\x20%s',_0x191e24,_0x590eba[_0x3c2b('0x11')][_0x3c2b('0x13')]);return _0x5bbdec(_0x590eba[_0x3c2b('0x11')][_0x3c2b('0x13')]);}logger[_0x3c2b('0x11')](_0x3c2b('0x14'),_0x191e24,_0x590eba['error'][_0x3c2b('0x13')]);return _0x570d56(_0x590eba[_0x3c2b('0x11')][_0x3c2b('0x13')]);}else{logger[_0x3c2b('0xc')](_0x3c2b('0x14'),_0x191e24,_0x3c2b('0xd'));_0x570d56(_0x590eba[_0x3c2b('0x15')][_0x3c2b('0x13')]);}})['catch'](function(_0x5d92e8){logger[_0x3c2b('0x11')](_0x3c2b('0x14'),_0x191e24,_0x5d92e8);_0x5bbdec(_0x5d92e8);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfaf6=['fs-extra','../../components/interaction/service','../../config/environment','./condition.controller','put','/:id','isAuthenticated','delete','destroy','exports','util','path','connect-timeout','express','Router'];(function(_0x460bbf,_0x3d6053){var _0x1a65c1=function(_0x10d5f6){while(--_0x10d5f6){_0x460bbf['push'](_0x460bbf['shift']());}};_0x1a65c1(++_0x3d6053);}(_0xfaf6,0xcd));var _0x6faf=function(_0x3c812e,_0x3fcc9d){_0x3c812e=_0x3c812e-0x0;var _0x4150d9=_0xfaf6[_0x3c812e];return _0x4150d9;};'use strict';var multer=require('multer');var util=require(_0x6faf('0x0'));var path=require(_0x6faf('0x1'));var timeout=require(_0x6faf('0x2'));var express=require(_0x6faf('0x3'));var router=express[_0x6faf('0x4')]();var fs_extra=require(_0x6faf('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0x6faf('0x6'));var config=require(_0x6faf('0x7'));var controller=require(_0x6faf('0x8'));router[_0x6faf('0x9')](_0x6faf('0xa'),auth[_0x6faf('0xb')](),controller['update']);router[_0x6faf('0xc')](_0x6faf('0xa'),auth[_0x6faf('0xb')](),controller[_0x6faf('0xd')]);module[_0x6faf('0xe')]=router;
\ No newline at end of file
+var _0x2afb=['express','Router','../../components/auth/service','../../config/environment','./condition.controller','put','/:id','isAuthenticated','update','destroy','exports','util','connect-timeout'];(function(_0x5a311f,_0x4c40f4){var _0x33a63d=function(_0x87c58a){while(--_0x87c58a){_0x5a311f['push'](_0x5a311f['shift']());}};_0x33a63d(++_0x4c40f4);}(_0x2afb,0x8d));var _0xb2af=function(_0x40220a,_0x22feb1){_0x40220a=_0x40220a-0x0;var _0x3903cc=_0x2afb[_0x40220a];return _0x3903cc;};'use strict';var multer=require('multer');var util=require(_0xb2af('0x0'));var path=require('path');var timeout=require(_0xb2af('0x1'));var express=require(_0xb2af('0x2'));var router=express[_0xb2af('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0xb2af('0x4'));var interaction=require('../../components/interaction/service');var config=require(_0xb2af('0x5'));var controller=require(_0xb2af('0x6'));router[_0xb2af('0x7')](_0xb2af('0x8'),auth[_0xb2af('0x9')](),controller[_0xb2af('0xa')]);router['delete'](_0xb2af('0x8'),auth['isAuthenticated'](),controller[_0xb2af('0xb')]);module[_0xb2af('0xc')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x757a=['exports','STRING'];(function(_0x5c834e,_0x1e599a){var _0x42ca9b=function(_0x5d3166){while(--_0x5d3166){_0x5c834e['push'](_0x5c834e['shift']());}};_0x42ca9b(++_0x1e599a);}(_0x757a,0xde));var _0xa757=function(_0x237d29,_0x3aacbe){_0x237d29=_0x237d29-0x0;var _0x12b118=_0x757a[_0x237d29];return _0x12b118;};'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
+var _0x2032=['name','exports','STRING'];(function(_0x45584f,_0x17bba3){var _0x3a26bb=function(_0x34ea96){while(--_0x34ea96){_0x45584f['push'](_0x45584f['shift']());}};_0x3a26bb(++_0x17bba3);}(_0x2032,0xd9));var _0x2203=function(_0x51e856,_0x15d261){_0x51e856=_0x51e856-0x0;var _0x469bd9=_0x2032[_0x51e856];return _0x469bd9;};'use strict';var Sequelize=require('sequelize');module[_0x2203('0x0')]={'name':{'type':Sequelize[_0x2203('0x1')],'allowNull':![],'unique':_0x2203('0x2')},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7ece=['then','destroy','CustomDashboards','error','name','send','index','map','rawAttributes','type','model','keys','query','filters','intersection','attributes','fields','nolimit','order','where','pick','filter','merge','VIRTUAL','options','includeAll','include','Dashboard','findAll','catch','show','params','find','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','get','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','clone','length','omit','createdAt','updatedAt','UserProfileResource','iframe','attrUrl','attrs','value','https://','attrPath','attrHourFormat','HH:mm:ss','attrTimezone','attrMetric','total','attrVoiceQueues','attrFontSize','multibar-chart','attrSerie1','attrSerie2','attrSerie3','web-report','attrReport','reportType','attrRefresh','widgetAttributes:\x20%s','stringify','addItem','DashboardItem','findOne','sort','hasOwnProperty','getItems','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','sendStatus','status','end','undefined','limit','count','offset','set','apply','reject','save','update'];(function(_0x11d08e,_0x1cd670){var _0x19c8cb=function(_0xbc63bc){while(--_0xbc63bc){_0x11d08e['push'](_0x11d08e['shift']());}};_0x19c8cb(++_0x1cd670);}(_0x7ece,0xc8));var _0xe7ec=function(_0x2d2c16,_0x4e88b6){_0x2d2c16=_0x2d2c16-0x0;var _0x53f2fb=_0x7ece[_0x2d2c16];return _0x53f2fb;};'use strict';var emlformat=require(_0xe7ec('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xe7ec('0x1'));var jsonpatch=require(_0xe7ec('0x2'));var rp=require(_0xe7ec('0x3'));var moment=require(_0xe7ec('0x4'));var BPromise=require(_0xe7ec('0x5'));var Mustache=require(_0xe7ec('0x6'));var util=require('util');var path=require(_0xe7ec('0x7'));var sox=require(_0xe7ec('0x8'));var csv=require(_0xe7ec('0x9'));var ejs=require(_0xe7ec('0xa'));var fs=require('fs');var fs_extra=require(_0xe7ec('0xb'));var _=require(_0xe7ec('0xc'));var squel=require(_0xe7ec('0xd'));var crypto=require(_0xe7ec('0xe'));var jsforce=require(_0xe7ec('0xf'));var deskjs=require(_0xe7ec('0x10'));var toCsv=require('to-csv');var querystring=require(_0xe7ec('0x11'));var Papa=require(_0xe7ec('0x12'));var Redis=require('ioredis');var authService=require(_0xe7ec('0x13'));var qs=require(_0xe7ec('0x14'));var as=require(_0xe7ec('0x15'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xe7ec('0x16'))(_0xe7ec('0x17'));var utils=require(_0xe7ec('0x18'));var config=require(_0xe7ec('0x19'));var licenseUtil=require(_0xe7ec('0x1a'));var db=require(_0xe7ec('0x1b'))['db'];config[_0xe7ec('0x1c')]=_[_0xe7ec('0x1d')](config['redis'],{'host':_0xe7ec('0x1e'),'port':0x18eb});var socket=require(_0xe7ec('0x1f'))(new Redis(config['redis']));require('./dashboard.socket')['register'](socket);function respondWithStatusCode(_0x44def8,_0x34636a){_0x34636a=_0x34636a||0xcc;return function(_0x3d1be0){if(_0x3d1be0){return _0x44def8[_0xe7ec('0x20')](_0x34636a);}return _0x44def8[_0xe7ec('0x21')](_0x34636a)[_0xe7ec('0x22')]();};}function respondWithResult(_0x2c94f7,_0x27ef91){_0x27ef91=_0x27ef91||0xc8;return function(_0x5c6678){if(_0x5c6678){return _0x2c94f7[_0xe7ec('0x21')](_0x27ef91)['json'](_0x5c6678);}};}function respondWithFilteredResult(_0x257542,_0x13d6ba){return function(_0x3b21d1){if(_0x3b21d1){var _0x1d1bb3=typeof _0x13d6ba['offset']===_0xe7ec('0x23')&&typeof _0x13d6ba[_0xe7ec('0x24')]===_0xe7ec('0x23');var _0x58173e=_0x3b21d1[_0xe7ec('0x25')];var _0x326462=_0x1d1bb3?0x0:_0x13d6ba[_0xe7ec('0x26')];var _0x4c91bc=_0x1d1bb3?_0x3b21d1['count']:_0x13d6ba['offset']+_0x13d6ba['limit'];var _0x1752b2;if(_0x4c91bc>=_0x58173e){_0x4c91bc=_0x58173e;_0x1752b2=0xc8;}else{_0x1752b2=0xce;}_0x257542[_0xe7ec('0x21')](_0x1752b2);return _0x257542[_0xe7ec('0x27')]('Content-Range',_0x326462+'-'+_0x4c91bc+'/'+_0x58173e)['json'](_0x3b21d1);}return null;};}function patchUpdates(_0xad1735){return function(_0x49c1d6){try{jsonpatch[_0xe7ec('0x28')](_0x49c1d6,_0xad1735,!![]);}catch(_0x3caafd){return BPromise[_0xe7ec('0x29')](_0x3caafd);}return _0x49c1d6[_0xe7ec('0x2a')]();};}function saveUpdates(_0x33d0cc,_0x40b6cb){return function(_0x34e65e){if(_0x34e65e){return _0x34e65e[_0xe7ec('0x2b')](_0x33d0cc)[_0xe7ec('0x2c')](function(_0x487c93){return _0x487c93;});}return null;};}function removeEntity(_0x24f822,_0xf263ad){return function(_0x5a3269){if(_0x5a3269){return _0x5a3269[_0xe7ec('0x2d')]()[_0xe7ec('0x2c')](function(){var _0x5125eb=_0x5a3269['get']({'plain':!![]});var _0x51f2cb=_0xe7ec('0x2e');return db['UserProfileResource'][_0xe7ec('0x2d')]({'where':{'type':_0x51f2cb,'resourceId':_0x5125eb['id']}})['then'](function(){return _0x5a3269;});})[_0xe7ec('0x2c')](function(){_0x24f822[_0xe7ec('0x21')](0xcc)[_0xe7ec('0x22')]();});}};}function handleEntityNotFound(_0x2727db,_0x5b979c){return function(_0x18b150){if(!_0x18b150){_0x2727db['sendStatus'](0x194);}return _0x18b150;};}function handleError(_0x38a2e4,_0xcc74d4){_0xcc74d4=_0xcc74d4||0x1f4;return function(_0x3db85a){logger[_0xe7ec('0x2f')](_0x3db85a['stack']);if(_0x3db85a['name']){delete _0x3db85a[_0xe7ec('0x30')];}_0x38a2e4['status'](_0xcc74d4)[_0xe7ec('0x31')](_0x3db85a);};}exports[_0xe7ec('0x32')]=function(_0x340466,_0x3359e9){var _0x5e4bca={},_0x31ac4b={},_0x4815ec={'count':0x0,'rows':[]};var _0x823f6c=_[_0xe7ec('0x33')](db['Dashboard'][_0xe7ec('0x34')],function(_0x117bbd){return{'name':_0x117bbd['fieldName'],'type':_0x117bbd[_0xe7ec('0x35')]['key']};});_0x31ac4b[_0xe7ec('0x36')]=_[_0xe7ec('0x33')](_0x823f6c,_0xe7ec('0x30'));_0x31ac4b['query']=_[_0xe7ec('0x37')](_0x340466[_0xe7ec('0x38')]);_0x31ac4b[_0xe7ec('0x39')]=_[_0xe7ec('0x3a')](_0x31ac4b[_0xe7ec('0x36')],_0x31ac4b[_0xe7ec('0x38')]);_0x5e4bca[_0xe7ec('0x3b')]=_[_0xe7ec('0x3a')](_0x31ac4b[_0xe7ec('0x36')],qs[_0xe7ec('0x3c')](_0x340466[_0xe7ec('0x38')]['fields']));_0x5e4bca[_0xe7ec('0x3b')]=_0x5e4bca['attributes']['length']?_0x5e4bca[_0xe7ec('0x3b')]:_0x31ac4b['model'];if(!_0x340466[_0xe7ec('0x38')]['hasOwnProperty'](_0xe7ec('0x3d'))){_0x5e4bca[_0xe7ec('0x24')]=qs['limit'](_0x340466[_0xe7ec('0x38')]['limit']);_0x5e4bca[_0xe7ec('0x26')]=qs[_0xe7ec('0x26')](_0x340466['query'][_0xe7ec('0x26')]);}_0x5e4bca[_0xe7ec('0x3e')]=qs['sort'](_0x340466['query']['sort']);_0x5e4bca[_0xe7ec('0x3f')]=qs[_0xe7ec('0x39')](_[_0xe7ec('0x40')](_0x340466[_0xe7ec('0x38')],_0x31ac4b['filters']),_0x823f6c);if(_0x340466[_0xe7ec('0x38')][_0xe7ec('0x41')]){_0x5e4bca['where']=_[_0xe7ec('0x42')](_0x5e4bca[_0xe7ec('0x3f')],{'$or':_[_0xe7ec('0x33')](_0x823f6c,function(_0x238438){if(_0x238438[_0xe7ec('0x35')]!==_0xe7ec('0x43')){var _0x2b169={};_0x2b169[_0x238438[_0xe7ec('0x30')]]={'$like':'%'+_0x340466[_0xe7ec('0x38')]['filter']+'%'};return _0x2b169;}})});}_0x5e4bca=_[_0xe7ec('0x42')]({},_0x5e4bca,_0x340466[_0xe7ec('0x44')]);var _0x2c9de4={'where':_0x5e4bca['where']};return db['Dashboard']['count'](_0x2c9de4)[_0xe7ec('0x2c')](function(_0x3f9552){_0x4815ec[_0xe7ec('0x25')]=_0x3f9552;if(_0x340466[_0xe7ec('0x38')][_0xe7ec('0x45')]){_0x5e4bca[_0xe7ec('0x46')]=[{'all':!![]}];}return db[_0xe7ec('0x47')][_0xe7ec('0x48')](_0x5e4bca);})[_0xe7ec('0x2c')](function(_0x217eb7){_0x4815ec['rows']=_0x217eb7;return _0x4815ec;})[_0xe7ec('0x2c')](respondWithFilteredResult(_0x3359e9,_0x5e4bca))[_0xe7ec('0x49')](handleError(_0x3359e9,null));};exports[_0xe7ec('0x4a')]=function(_0x173ed4,_0x3be1a3){var _0x494157={'raw':![],'where':{'id':_0x173ed4[_0xe7ec('0x4b')]['id']}},_0x4d8aa7={};_0x4d8aa7['model']=_[_0xe7ec('0x37')](db[_0xe7ec('0x47')][_0xe7ec('0x34')]);_0x4d8aa7[_0xe7ec('0x38')]=_['keys'](_0x173ed4['query']);_0x4d8aa7[_0xe7ec('0x39')]=_['intersection'](_0x4d8aa7[_0xe7ec('0x36')],_0x4d8aa7['query']);_0x494157[_0xe7ec('0x3b')]=_[_0xe7ec('0x3a')](_0x4d8aa7[_0xe7ec('0x36')],qs[_0xe7ec('0x3c')](_0x173ed4[_0xe7ec('0x38')][_0xe7ec('0x3c')]));_0x494157['attributes']=_0x494157['attributes']['length']?_0x494157['attributes']:_0x4d8aa7[_0xe7ec('0x36')];if(_0x173ed4[_0xe7ec('0x38')][_0xe7ec('0x45')]){_0x494157['include']=[{'all':!![]}];}_0x494157=_[_0xe7ec('0x42')]({},_0x494157,_0x173ed4[_0xe7ec('0x44')]);return db['Dashboard'][_0xe7ec('0x4c')](_0x494157)[_0xe7ec('0x2c')](handleEntityNotFound(_0x3be1a3,null))[_0xe7ec('0x2c')](respondWithResult(_0x3be1a3,null))[_0xe7ec('0x49')](handleError(_0x3be1a3,null));};exports[_0xe7ec('0x4d')]=function(_0x598269,_0x1793a4){return db[_0xe7ec('0x47')][_0xe7ec('0x4d')](_0x598269[_0xe7ec('0x4e')],{})['then'](function(_0x5332d2){var _0x411ded=_0x598269['user']['get']({'plain':!![]});if(!_0x411ded)throw new Error(_0xe7ec('0x4f'));if(_0x411ded[_0xe7ec('0x50')]===_0xe7ec('0x51')){var _0x36188e=_0x5332d2[_0xe7ec('0x52')]({'plain':!![]});var _0x5d341f='CustomDashboards';return db[_0xe7ec('0x53')][_0xe7ec('0x4c')]({'where':{'name':_0x5d341f,'userProfileId':_0x411ded[_0xe7ec('0x54')]},'raw':!![]})[_0xe7ec('0x2c')](function(_0x24c4fa){if(_0x24c4fa&&_0x24c4fa[_0xe7ec('0x55')]===0x0){return db['UserProfileResource'][_0xe7ec('0x4d')]({'name':_0x36188e['name'],'resourceId':_0x36188e['id'],'type':_0x24c4fa['name'],'sectionId':_0x24c4fa['id']},{})[_0xe7ec('0x2c')](function(){return _0x5332d2;});}else{return _0x5332d2;}})[_0xe7ec('0x49')](function(_0x57f688){logger['error'](_0xe7ec('0x56'),_0x57f688);throw _0x57f688;});}return _0x5332d2;})['then'](respondWithResult(_0x1793a4,0xc9))[_0xe7ec('0x49')](handleError(_0x1793a4,null));};exports[_0xe7ec('0x57')]=function(_0x55581c,_0x300367){var _0x1d0d57={'where':{'id':_0x55581c[_0xe7ec('0x4b')]['id']}},_0x29628f={};_0x29628f['model']=_[_0xe7ec('0x37')](db['Dashboard'][_0xe7ec('0x34')]);_0x1d0d57[_0xe7ec('0x3b')]=_[_0xe7ec('0x3a')](_0x29628f['model'],qs['fields'](_0x55581c[_0xe7ec('0x38')]['fields']));_0x1d0d57['attributes']=_0x1d0d57[_0xe7ec('0x3b')][_0xe7ec('0x58')]?_0x1d0d57['attributes']:_0x29628f['model'];if(_0x55581c[_0xe7ec('0x38')][_0xe7ec('0x45')]){_0x1d0d57[_0xe7ec('0x46')]=[{'all':!![]}];}_0x1d0d57=_[_0xe7ec('0x42')]({},_0x1d0d57,_0x55581c['options']);return db[_0xe7ec('0x47')][_0xe7ec('0x4c')](_0x1d0d57)['then'](handleEntityNotFound(_0x300367,null))[_0xe7ec('0x2c')](function(_0x520747){if(_0x520747){var _0x2cbe33=_0x520747[_0xe7ec('0x52')]({'plain':!![]});_0x2cbe33=qs[_0xe7ec('0x59')](_0x2cbe33,['id',_0xe7ec('0x5a'),_0xe7ec('0x5b')]);_0x55581c['body']=_[_0xe7ec('0x59')](_0x55581c[_0xe7ec('0x4e')],['id',_0xe7ec('0x5a'),_0xe7ec('0x5b')]);return db[_0xe7ec('0x47')][_0xe7ec('0x4d')](_[_0xe7ec('0x42')](_0x2cbe33,_0x55581c[_0xe7ec('0x4e')]),{'include':_0x55581c['query'][_0xe7ec('0x45')]?[{'all':!![]}]:undefined})[_0xe7ec('0x2c')](function(_0x242e32){var _0x188790=_0x55581c[_0xe7ec('0x51')][_0xe7ec('0x52')]({'plain':!![]});if(!_0x188790)throw new Error(_0xe7ec('0x4f'));if(_0x188790['role']==='user'){var _0x362c96=_0x242e32[_0xe7ec('0x52')]({'plain':!![]});var _0x10e014='CustomDashboards';return db[_0xe7ec('0x53')][_0xe7ec('0x4c')]({'where':{'name':_0x10e014,'userProfileId':_0x188790[_0xe7ec('0x54')]},'raw':!![]})[_0xe7ec('0x2c')](function(_0x453037){if(_0x453037&&_0x453037[_0xe7ec('0x55')]===0x0){return db[_0xe7ec('0x5c')][_0xe7ec('0x4d')]({'name':_0x362c96[_0xe7ec('0x30')],'resourceId':_0x362c96['id'],'type':_0x453037[_0xe7ec('0x30')],'sectionId':_0x453037['id']},{})['then'](function(){return _0x242e32;});}else{return _0x242e32;}})[_0xe7ec('0x49')](function(_0x4f1983){logger[_0xe7ec('0x2f')](_0xe7ec('0x56'),_0x4f1983);throw _0x4f1983;});}return _0x242e32;});}})[_0xe7ec('0x2c')](respondWithResult(_0x300367,0xc9))[_0xe7ec('0x49')](handleError(_0x300367,null));};exports[_0xe7ec('0x2b')]=function(_0x383c6b,_0x4964f6){if(_0x383c6b[_0xe7ec('0x4e')]['id']){delete _0x383c6b[_0xe7ec('0x4e')]['id'];}return db[_0xe7ec('0x47')][_0xe7ec('0x4c')]({'where':{'id':_0x383c6b['params']['id']}})[_0xe7ec('0x2c')](handleEntityNotFound(_0x4964f6,null))[_0xe7ec('0x2c')](saveUpdates(_0x383c6b['body'],null))[_0xe7ec('0x2c')](respondWithResult(_0x4964f6,null))[_0xe7ec('0x49')](handleError(_0x4964f6,null));};exports[_0xe7ec('0x2d')]=function(_0x2c0f67,_0x5a165e){return db[_0xe7ec('0x47')]['find']({'where':{'id':_0x2c0f67['params']['id']}})[_0xe7ec('0x2c')](handleEntityNotFound(_0x5a165e,null))[_0xe7ec('0x2c')](removeEntity(_0x5a165e,null))[_0xe7ec('0x49')](handleError(_0x5a165e,null));};function widgetAttributes(_0x1ab6a0){try{switch(_0x1ab6a0[_0xe7ec('0x35')]){case _0xe7ec('0x5d'):return[{'name':_0xe7ec('0x5e'),'value':_0x1ab6a0[_0xe7ec('0x5e')]||(_0x1ab6a0[_0xe7ec('0x5f')]&&_0x1ab6a0['attrs'][0x0]?_0x1ab6a0[_0xe7ec('0x5f')][0x0][_0xe7ec('0x60')]:undefined)||_0xe7ec('0x61')}];case'custom':return[{'name':_0xe7ec('0x62'),'value':_0x1ab6a0[_0xe7ec('0x62')]||(_0x1ab6a0[_0xe7ec('0x5f')]&&_0x1ab6a0[_0xe7ec('0x5f')][0x0]?_0x1ab6a0[_0xe7ec('0x5f')][0x0][_0xe7ec('0x60')]:undefined)||''}];case'clock':return[{'name':_0xe7ec('0x63'),'value':_0x1ab6a0['attrHourFormat']||(_0x1ab6a0[_0xe7ec('0x5f')]&&_0x1ab6a0[_0xe7ec('0x5f')][0x0]?_0x1ab6a0[_0xe7ec('0x5f')][0x0][_0xe7ec('0x60')]:undefined)||_0xe7ec('0x64')},{'name':_0xe7ec('0x65'),'value':_0x1ab6a0[_0xe7ec('0x65')]||(_0x1ab6a0['attrs']&&_0x1ab6a0[_0xe7ec('0x5f')][0x1]?_0x1ab6a0[_0xe7ec('0x5f')][0x1][_0xe7ec('0x60')]:undefined)||'0.00'},{'name':'attrFontSize','value':_0x1ab6a0['attrFontSize']||(_0x1ab6a0[_0xe7ec('0x5f')]&&_0x1ab6a0['attrs'][0x2]?_0x1ab6a0[_0xe7ec('0x5f')][0x2][_0xe7ec('0x60')]:undefined)||0xc}];case'counter':return[{'name':_0xe7ec('0x66'),'value':_0x1ab6a0[_0xe7ec('0x66')]||(_0x1ab6a0[_0xe7ec('0x5f')]&&_0x1ab6a0['attrs'][0x0]?_0x1ab6a0[_0xe7ec('0x5f')][0x0][_0xe7ec('0x60')]:undefined)||_0xe7ec('0x67')},{'name':'attrVoiceQueues','value':_0x1ab6a0[_0xe7ec('0x68')]||(_0x1ab6a0[_0xe7ec('0x5f')]&&_0x1ab6a0[_0xe7ec('0x5f')][0x1]?_0x1ab6a0['attrs'][0x1][_0xe7ec('0x60')]:undefined)||[]},{'name':_0xe7ec('0x69'),'value':_0x1ab6a0['attrFontSize']||(_0x1ab6a0[_0xe7ec('0x5f')]&&_0x1ab6a0[_0xe7ec('0x5f')][0x2]?_0x1ab6a0[_0xe7ec('0x5f')][0x2][_0xe7ec('0x60')]:undefined)||0x14}];case _0xe7ec('0x6a'):case'pie-chart':return[{'name':_0xe7ec('0x6b'),'value':_0x1ab6a0[_0xe7ec('0x6b')]||(_0x1ab6a0[_0xe7ec('0x5f')]&&_0x1ab6a0['attrs'][0x0]?_0x1ab6a0[_0xe7ec('0x5f')][0x0][_0xe7ec('0x60')]:undefined)||_0xe7ec('0x67')},{'name':_0xe7ec('0x6c'),'value':_0x1ab6a0[_0xe7ec('0x6c')]||(_0x1ab6a0[_0xe7ec('0x5f')]&&_0x1ab6a0[_0xe7ec('0x5f')][0x1]?_0x1ab6a0[_0xe7ec('0x5f')][0x1][_0xe7ec('0x60')]:undefined)||null},{'name':_0xe7ec('0x6d'),'value':_0x1ab6a0['attrSerie3']||(_0x1ab6a0[_0xe7ec('0x5f')]&&_0x1ab6a0[_0xe7ec('0x5f')][0x2]?_0x1ab6a0[_0xe7ec('0x5f')][0x2][_0xe7ec('0x60')]:undefined)||null},{'name':'attrVoiceQueues','value':_0x1ab6a0[_0xe7ec('0x68')]||(_0x1ab6a0['attrs']&&_0x1ab6a0[_0xe7ec('0x5f')][0x3]?_0x1ab6a0[_0xe7ec('0x5f')][0x3][_0xe7ec('0x60')]:undefined)||[]}];case _0xe7ec('0x6e'):return[{'name':_0xe7ec('0x6f'),'type':_0x1ab6a0[_0xe7ec('0x70')]||(_0x1ab6a0[_0xe7ec('0x5f')]&&_0x1ab6a0[_0xe7ec('0x5f')][0x0]?_0x1ab6a0[_0xe7ec('0x5f')][0x0]['type']:undefined)||null,'value':_0x1ab6a0[_0xe7ec('0x6f')]||(_0x1ab6a0['attrs']&&_0x1ab6a0[_0xe7ec('0x5f')][0x0]?_0x1ab6a0[_0xe7ec('0x5f')][0x0]['value']:undefined)||null},{'name':_0xe7ec('0x71'),'value':_0x1ab6a0[_0xe7ec('0x71')]||(_0x1ab6a0[_0xe7ec('0x5f')]&&_0x1ab6a0[_0xe7ec('0x5f')][0x1]?_0x1ab6a0['attrs'][0x1]['value']:undefined)||0x0}];default:return[];}}catch(_0x4eedff){logger[_0xe7ec('0x2f')](_0xe7ec('0x72'),JSON[_0xe7ec('0x73')](_0x4eedff));return[];}}exports[_0xe7ec('0x74')]=function(_0x42fa04,_0x3bbfba,_0x857951){if(_0x42fa04['body']['id']){delete _0x42fa04['body']['id'];}return db[_0xe7ec('0x47')][_0xe7ec('0x4c')]({'where':{'id':_0x42fa04[_0xe7ec('0x4b')]['id']}})[_0xe7ec('0x2c')](handleEntityNotFound(_0x3bbfba,null))[_0xe7ec('0x2c')](function(_0x41c1da){if(_0x41c1da){_0x42fa04[_0xe7ec('0x4e')]['DashboardId']=_0x41c1da['id'];_0x42fa04[_0xe7ec('0x4e')][_0xe7ec('0x5f')]=widgetAttributes(_0x42fa04['body']);return db[_0xe7ec('0x75')]['create'](_0x42fa04[_0xe7ec('0x4e')]);}})['then'](respondWithResult(_0x3bbfba,null))[_0xe7ec('0x49')](handleError(_0x3bbfba,null));};exports['getItems']=function(_0x37232b,_0xca15f7,_0x5e695e){var _0x3dafdd={};var _0x4c6313={};var _0x593326;var _0x519be9;return db[_0xe7ec('0x47')][_0xe7ec('0x76')]({'where':{'id':_0x37232b[_0xe7ec('0x4b')]['id']}})[_0xe7ec('0x2c')](handleEntityNotFound(_0xca15f7,null))[_0xe7ec('0x2c')](function(_0x2dc646){if(_0x2dc646){_0x593326=_0x2dc646;_0x4c6313[_0xe7ec('0x36')]=_['keys'](db[_0xe7ec('0x75')][_0xe7ec('0x34')]);_0x4c6313[_0xe7ec('0x38')]=_[_0xe7ec('0x37')](_0x37232b[_0xe7ec('0x38')]);_0x4c6313[_0xe7ec('0x39')]=_[_0xe7ec('0x3a')](_0x4c6313[_0xe7ec('0x36')],_0x4c6313['query']);_0x3dafdd['attributes']=_[_0xe7ec('0x3a')](_0x4c6313['model'],qs[_0xe7ec('0x3c')](_0x37232b[_0xe7ec('0x38')][_0xe7ec('0x3c')]));_0x3dafdd['attributes']=_0x3dafdd[_0xe7ec('0x3b')][_0xe7ec('0x58')]?_0x3dafdd[_0xe7ec('0x3b')]:_0x4c6313[_0xe7ec('0x36')];_0x3dafdd[_0xe7ec('0x3e')]=qs[_0xe7ec('0x77')](_0x37232b['query'][_0xe7ec('0x77')]);_0x3dafdd['where']=qs['filters'](_[_0xe7ec('0x40')](_0x37232b[_0xe7ec('0x38')],_0x4c6313[_0xe7ec('0x39')]));if(_0x37232b[_0xe7ec('0x38')]['filter']){_0x3dafdd[_0xe7ec('0x3f')]=_['merge'](_0x3dafdd['where'],{'$or':_[_0xe7ec('0x33')](_0x3dafdd[_0xe7ec('0x3b')],function(_0x329fb2){var _0x408ddb={};_0x408ddb[_0x329fb2]={'$like':'%'+_0x37232b[_0xe7ec('0x38')][_0xe7ec('0x41')]+'%'};return _0x408ddb;})});}_0x3dafdd=_[_0xe7ec('0x42')]({},_0x3dafdd,_0x37232b[_0xe7ec('0x44')]);return _0x593326['getItems'](_0x3dafdd);}})[_0xe7ec('0x2c')](function(_0x1c3b47){if(_0x1c3b47){_0x519be9=_0x1c3b47[_0xe7ec('0x58')];if(!_0x37232b[_0xe7ec('0x38')][_0xe7ec('0x78')](_0xe7ec('0x3d'))){_0x3dafdd[_0xe7ec('0x24')]=qs[_0xe7ec('0x24')](_0x37232b[_0xe7ec('0x38')][_0xe7ec('0x24')]);_0x3dafdd[_0xe7ec('0x26')]=qs[_0xe7ec('0x26')](_0x37232b[_0xe7ec('0x38')][_0xe7ec('0x26')]);}return _0x593326[_0xe7ec('0x79')](_0x3dafdd);}})[_0xe7ec('0x2c')](function(_0x5ec6a8){if(_0x5ec6a8){return _0x5ec6a8?{'count':_0x519be9,'rows':_0x5ec6a8}:null;}})[_0xe7ec('0x2c')](respondWithResult(_0xca15f7,null))['catch'](handleError(_0xca15f7,null));};
\ No newline at end of file
+var _0x8e6b=['limit','count','Content-Range','apply','reject','save','update','destroy','get','CustomDashboards','UserProfileResource','then','end','error','stack','name','send','map','rawAttributes','type','key','model','query','intersection','attributes','fields','length','nolimit','order','sort','where','filters','pick','filter','merge','VIRTUAL','options','Dashboard','includeAll','include','findAll','catch','show','params','keys','find','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','clone','createdAt','updatedAt','omit','role','UserProfileSection','attrUrl','attrs','value','https://','custom','attrPath','clock','HH:mm:ss','attrTimezone','0.00','attrFontSize','counter','attrMetric','total','attrVoiceQueues','multibar-chart','pie-chart','attrSerie1','attrSerie2','attrSerie3','web-report','attrReport','attrRefresh','widgetAttributes:\x20%s','stringify','addItem','DashboardId','DashboardItem','getItems','findOne','hasOwnProperty','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','util','sox','to-csv','ejs','lodash','squel','crypto','jsforce','querystring','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','redis','sendStatus','status','json','offset','undefined'];(function(_0x1b9a3e,_0x3e5bdb){var _0x5bb1c4=function(_0x4ead36){while(--_0x4ead36){_0x1b9a3e['push'](_0x1b9a3e['shift']());}};_0x5bb1c4(++_0x3e5bdb);}(_0x8e6b,0x1bc));var _0xb8e6=function(_0x462b57,_0x55d698){_0x462b57=_0x462b57-0x0;var _0x48d4d9=_0x8e6b[_0x462b57];return _0x48d4d9;};'use strict';var emlformat=require(_0xb8e6('0x0'));var rimraf=require(_0xb8e6('0x1'));var zipdir=require(_0xb8e6('0x2'));var jsonpatch=require(_0xb8e6('0x3'));var rp=require(_0xb8e6('0x4'));var moment=require(_0xb8e6('0x5'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xb8e6('0x6'));var path=require('path');var sox=require(_0xb8e6('0x7'));var csv=require(_0xb8e6('0x8'));var ejs=require(_0xb8e6('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xb8e6('0xa'));var squel=require(_0xb8e6('0xb'));var crypto=require(_0xb8e6('0xc'));var jsforce=require(_0xb8e6('0xd'));var deskjs=require('desk.js');var toCsv=require(_0xb8e6('0x8'));var querystring=require(_0xb8e6('0xe'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0xb8e6('0xf'));var as=require(_0xb8e6('0x10'));var hardwareService=require(_0xb8e6('0x11'));var logger=require(_0xb8e6('0x12'))(_0xb8e6('0x13'));var utils=require('../../config/utils');var config=require(_0xb8e6('0x14'));var licenseUtil=require(_0xb8e6('0x15'));var db=require('../../mysqldb')['db'];config[_0xb8e6('0x16')]=_['defaults'](config['redis'],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xb8e6('0x16')]));require('./dashboard.socket')['register'](socket);function respondWithStatusCode(_0xc79dce,_0x5e4fdb){_0x5e4fdb=_0x5e4fdb||0xcc;return function(_0x11d1a0){if(_0x11d1a0){return _0xc79dce[_0xb8e6('0x17')](_0x5e4fdb);}return _0xc79dce[_0xb8e6('0x18')](_0x5e4fdb)['end']();};}function respondWithResult(_0x487b42,_0x288cba){_0x288cba=_0x288cba||0xc8;return function(_0x537ba2){if(_0x537ba2){return _0x487b42[_0xb8e6('0x18')](_0x288cba)[_0xb8e6('0x19')](_0x537ba2);}};}function respondWithFilteredResult(_0x480a45,_0x5bab40){return function(_0x3f72d4){if(_0x3f72d4){var _0x9c2870=typeof _0x5bab40[_0xb8e6('0x1a')]===_0xb8e6('0x1b')&&typeof _0x5bab40[_0xb8e6('0x1c')]==='undefined';var _0x5f366b=_0x3f72d4[_0xb8e6('0x1d')];var _0x541e17=_0x9c2870?0x0:_0x5bab40[_0xb8e6('0x1a')];var _0x1d77e2=_0x9c2870?_0x3f72d4['count']:_0x5bab40[_0xb8e6('0x1a')]+_0x5bab40['limit'];var _0x37bb0b;if(_0x1d77e2>=_0x5f366b){_0x1d77e2=_0x5f366b;_0x37bb0b=0xc8;}else{_0x37bb0b=0xce;}_0x480a45[_0xb8e6('0x18')](_0x37bb0b);return _0x480a45['set'](_0xb8e6('0x1e'),_0x541e17+'-'+_0x1d77e2+'/'+_0x5f366b)[_0xb8e6('0x19')](_0x3f72d4);}return null;};}function patchUpdates(_0x4c9bfc){return function(_0x1e6035){try{jsonpatch[_0xb8e6('0x1f')](_0x1e6035,_0x4c9bfc,!![]);}catch(_0x48808c){return BPromise[_0xb8e6('0x20')](_0x48808c);}return _0x1e6035[_0xb8e6('0x21')]();};}function saveUpdates(_0x5ddc77,_0x26a7ed){return function(_0x173907){if(_0x173907){return _0x173907[_0xb8e6('0x22')](_0x5ddc77)['then'](function(_0x551299){return _0x551299;});}return null;};}function removeEntity(_0x19ad62,_0x3eaa3e){return function(_0x7a4ef8){if(_0x7a4ef8){return _0x7a4ef8[_0xb8e6('0x23')]()['then'](function(){var _0xff6b18=_0x7a4ef8[_0xb8e6('0x24')]({'plain':!![]});var _0x1ed3da=_0xb8e6('0x25');return db[_0xb8e6('0x26')][_0xb8e6('0x23')]({'where':{'type':_0x1ed3da,'resourceId':_0xff6b18['id']}})[_0xb8e6('0x27')](function(){return _0x7a4ef8;});})['then'](function(){_0x19ad62[_0xb8e6('0x18')](0xcc)[_0xb8e6('0x28')]();});}};}function handleEntityNotFound(_0x1b91d0,_0x3e0f9a){return function(_0x16ab47){if(!_0x16ab47){_0x1b91d0['sendStatus'](0x194);}return _0x16ab47;};}function handleError(_0x49b550,_0x34276c){_0x34276c=_0x34276c||0x1f4;return function(_0x24b049){logger[_0xb8e6('0x29')](_0x24b049[_0xb8e6('0x2a')]);if(_0x24b049[_0xb8e6('0x2b')]){delete _0x24b049[_0xb8e6('0x2b')];}_0x49b550[_0xb8e6('0x18')](_0x34276c)[_0xb8e6('0x2c')](_0x24b049);};}exports['index']=function(_0x120d0c,_0x13bc4f){var _0x5d1ecf={},_0x136588={},_0x551363={'count':0x0,'rows':[]};var _0x1bfac7=_[_0xb8e6('0x2d')](db['Dashboard'][_0xb8e6('0x2e')],function(_0xe172b9){return{'name':_0xe172b9['fieldName'],'type':_0xe172b9[_0xb8e6('0x2f')][_0xb8e6('0x30')]};});_0x136588[_0xb8e6('0x31')]=_[_0xb8e6('0x2d')](_0x1bfac7,_0xb8e6('0x2b'));_0x136588[_0xb8e6('0x32')]=_['keys'](_0x120d0c[_0xb8e6('0x32')]);_0x136588['filters']=_[_0xb8e6('0x33')](_0x136588['model'],_0x136588['query']);_0x5d1ecf[_0xb8e6('0x34')]=_[_0xb8e6('0x33')](_0x136588[_0xb8e6('0x31')],qs['fields'](_0x120d0c['query'][_0xb8e6('0x35')]));_0x5d1ecf[_0xb8e6('0x34')]=_0x5d1ecf[_0xb8e6('0x34')][_0xb8e6('0x36')]?_0x5d1ecf[_0xb8e6('0x34')]:_0x136588['model'];if(!_0x120d0c[_0xb8e6('0x32')]['hasOwnProperty'](_0xb8e6('0x37'))){_0x5d1ecf[_0xb8e6('0x1c')]=qs['limit'](_0x120d0c[_0xb8e6('0x32')][_0xb8e6('0x1c')]);_0x5d1ecf[_0xb8e6('0x1a')]=qs[_0xb8e6('0x1a')](_0x120d0c[_0xb8e6('0x32')][_0xb8e6('0x1a')]);}_0x5d1ecf[_0xb8e6('0x38')]=qs['sort'](_0x120d0c[_0xb8e6('0x32')][_0xb8e6('0x39')]);_0x5d1ecf[_0xb8e6('0x3a')]=qs[_0xb8e6('0x3b')](_[_0xb8e6('0x3c')](_0x120d0c['query'],_0x136588['filters']),_0x1bfac7);if(_0x120d0c[_0xb8e6('0x32')][_0xb8e6('0x3d')]){_0x5d1ecf['where']=_[_0xb8e6('0x3e')](_0x5d1ecf[_0xb8e6('0x3a')],{'$or':_[_0xb8e6('0x2d')](_0x1bfac7,function(_0x422d0a){if(_0x422d0a['type']!==_0xb8e6('0x3f')){var _0x53bfe5={};_0x53bfe5[_0x422d0a['name']]={'$like':'%'+_0x120d0c['query']['filter']+'%'};return _0x53bfe5;}})});}_0x5d1ecf=_[_0xb8e6('0x3e')]({},_0x5d1ecf,_0x120d0c[_0xb8e6('0x40')]);var _0x34a346={'where':_0x5d1ecf[_0xb8e6('0x3a')]};return db[_0xb8e6('0x41')][_0xb8e6('0x1d')](_0x34a346)[_0xb8e6('0x27')](function(_0x484846){_0x551363[_0xb8e6('0x1d')]=_0x484846;if(_0x120d0c['query'][_0xb8e6('0x42')]){_0x5d1ecf[_0xb8e6('0x43')]=[{'all':!![]}];}return db[_0xb8e6('0x41')][_0xb8e6('0x44')](_0x5d1ecf);})[_0xb8e6('0x27')](function(_0x2e89aa){_0x551363['rows']=_0x2e89aa;return _0x551363;})[_0xb8e6('0x27')](respondWithFilteredResult(_0x13bc4f,_0x5d1ecf))[_0xb8e6('0x45')](handleError(_0x13bc4f,null));};exports[_0xb8e6('0x46')]=function(_0x4bb0b3,_0x2ef377){var _0x16ab9f={'raw':![],'where':{'id':_0x4bb0b3[_0xb8e6('0x47')]['id']}},_0x1a6abb={};_0x1a6abb[_0xb8e6('0x31')]=_[_0xb8e6('0x48')](db['Dashboard'][_0xb8e6('0x2e')]);_0x1a6abb[_0xb8e6('0x32')]=_[_0xb8e6('0x48')](_0x4bb0b3[_0xb8e6('0x32')]);_0x1a6abb[_0xb8e6('0x3b')]=_['intersection'](_0x1a6abb[_0xb8e6('0x31')],_0x1a6abb[_0xb8e6('0x32')]);_0x16ab9f['attributes']=_[_0xb8e6('0x33')](_0x1a6abb[_0xb8e6('0x31')],qs[_0xb8e6('0x35')](_0x4bb0b3[_0xb8e6('0x32')][_0xb8e6('0x35')]));_0x16ab9f[_0xb8e6('0x34')]=_0x16ab9f['attributes']['length']?_0x16ab9f['attributes']:_0x1a6abb['model'];if(_0x4bb0b3[_0xb8e6('0x32')][_0xb8e6('0x42')]){_0x16ab9f[_0xb8e6('0x43')]=[{'all':!![]}];}_0x16ab9f=_[_0xb8e6('0x3e')]({},_0x16ab9f,_0x4bb0b3[_0xb8e6('0x40')]);return db['Dashboard'][_0xb8e6('0x49')](_0x16ab9f)[_0xb8e6('0x27')](handleEntityNotFound(_0x2ef377,null))['then'](respondWithResult(_0x2ef377,null))[_0xb8e6('0x45')](handleError(_0x2ef377,null));};exports[_0xb8e6('0x4a')]=function(_0x589c86,_0x5c091d){return db[_0xb8e6('0x41')][_0xb8e6('0x4a')](_0x589c86[_0xb8e6('0x4b')],{})['then'](function(_0x199958){var _0x48fa6f=_0x589c86['user']['get']({'plain':!![]});if(!_0x48fa6f)throw new Error(_0xb8e6('0x4c'));if(_0x48fa6f['role']===_0xb8e6('0x4d')){var _0x342dee=_0x199958['get']({'plain':!![]});var _0x7384c9=_0xb8e6('0x25');return db['UserProfileSection'][_0xb8e6('0x49')]({'where':{'name':_0x7384c9,'userProfileId':_0x48fa6f[_0xb8e6('0x4e')]},'raw':!![]})[_0xb8e6('0x27')](function(_0xeded4a){if(_0xeded4a&&_0xeded4a[_0xb8e6('0x4f')]===0x0){return db[_0xb8e6('0x26')][_0xb8e6('0x4a')]({'name':_0x342dee[_0xb8e6('0x2b')],'resourceId':_0x342dee['id'],'type':_0xeded4a[_0xb8e6('0x2b')],'sectionId':_0xeded4a['id']},{})[_0xb8e6('0x27')](function(){return _0x199958;});}else{return _0x199958;}})[_0xb8e6('0x45')](function(_0x145c39){logger[_0xb8e6('0x29')](_0xb8e6('0x50'),_0x145c39);throw _0x145c39;});}return _0x199958;})['then'](respondWithResult(_0x5c091d,0xc9))['catch'](handleError(_0x5c091d,null));};exports[_0xb8e6('0x51')]=function(_0x3ad619,_0x44aa9f){var _0x2d7e37={'where':{'id':_0x3ad619['params']['id']}},_0xd27d2e={};_0xd27d2e[_0xb8e6('0x31')]=_[_0xb8e6('0x48')](db[_0xb8e6('0x41')][_0xb8e6('0x2e')]);_0x2d7e37[_0xb8e6('0x34')]=_[_0xb8e6('0x33')](_0xd27d2e[_0xb8e6('0x31')],qs['fields'](_0x3ad619['query']['fields']));_0x2d7e37['attributes']=_0x2d7e37[_0xb8e6('0x34')][_0xb8e6('0x36')]?_0x2d7e37[_0xb8e6('0x34')]:_0xd27d2e['model'];if(_0x3ad619[_0xb8e6('0x32')]['includeAll']){_0x2d7e37[_0xb8e6('0x43')]=[{'all':!![]}];}_0x2d7e37=_[_0xb8e6('0x3e')]({},_0x2d7e37,_0x3ad619[_0xb8e6('0x40')]);return db[_0xb8e6('0x41')][_0xb8e6('0x49')](_0x2d7e37)[_0xb8e6('0x27')](handleEntityNotFound(_0x44aa9f,null))[_0xb8e6('0x27')](function(_0x5bc59f){if(_0x5bc59f){var _0x3ff11d=_0x5bc59f[_0xb8e6('0x24')]({'plain':!![]});_0x3ff11d=qs['omit'](_0x3ff11d,['id',_0xb8e6('0x52'),_0xb8e6('0x53')]);_0x3ad619[_0xb8e6('0x4b')]=_[_0xb8e6('0x54')](_0x3ad619['body'],['id',_0xb8e6('0x52'),_0xb8e6('0x53')]);return db['Dashboard'][_0xb8e6('0x4a')](_['merge'](_0x3ff11d,_0x3ad619[_0xb8e6('0x4b')]),{'include':_0x3ad619['query'][_0xb8e6('0x42')]?[{'all':!![]}]:undefined})['then'](function(_0x42ee0c){var _0xd2bff2=_0x3ad619[_0xb8e6('0x4d')][_0xb8e6('0x24')]({'plain':!![]});if(!_0xd2bff2)throw new Error(_0xb8e6('0x4c'));if(_0xd2bff2[_0xb8e6('0x55')]==='user'){var _0x5dc2f1=_0x42ee0c[_0xb8e6('0x24')]({'plain':!![]});var _0x5584b2=_0xb8e6('0x25');return db[_0xb8e6('0x56')][_0xb8e6('0x49')]({'where':{'name':_0x5584b2,'userProfileId':_0xd2bff2[_0xb8e6('0x4e')]},'raw':!![]})[_0xb8e6('0x27')](function(_0x1b160d){if(_0x1b160d&&_0x1b160d['autoAssociation']===0x0){return db['UserProfileResource'][_0xb8e6('0x4a')]({'name':_0x5dc2f1['name'],'resourceId':_0x5dc2f1['id'],'type':_0x1b160d[_0xb8e6('0x2b')],'sectionId':_0x1b160d['id']},{})['then'](function(){return _0x42ee0c;});}else{return _0x42ee0c;}})[_0xb8e6('0x45')](function(_0x43e983){logger[_0xb8e6('0x29')](_0xb8e6('0x50'),_0x43e983);throw _0x43e983;});}return _0x42ee0c;});}})['then'](respondWithResult(_0x44aa9f,0xc9))['catch'](handleError(_0x44aa9f,null));};exports['update']=function(_0x4d4df5,_0x773369){if(_0x4d4df5[_0xb8e6('0x4b')]['id']){delete _0x4d4df5[_0xb8e6('0x4b')]['id'];}return db['Dashboard']['find']({'where':{'id':_0x4d4df5[_0xb8e6('0x47')]['id']}})['then'](handleEntityNotFound(_0x773369,null))[_0xb8e6('0x27')](saveUpdates(_0x4d4df5[_0xb8e6('0x4b')],null))[_0xb8e6('0x27')](respondWithResult(_0x773369,null))[_0xb8e6('0x45')](handleError(_0x773369,null));};exports['destroy']=function(_0x5d7941,_0x439adb){return db[_0xb8e6('0x41')][_0xb8e6('0x49')]({'where':{'id':_0x5d7941['params']['id']}})[_0xb8e6('0x27')](handleEntityNotFound(_0x439adb,null))[_0xb8e6('0x27')](removeEntity(_0x439adb,null))['catch'](handleError(_0x439adb,null));};function widgetAttributes(_0x1ce6e8){try{switch(_0x1ce6e8['type']){case'iframe':return[{'name':_0xb8e6('0x57'),'value':_0x1ce6e8[_0xb8e6('0x57')]||(_0x1ce6e8[_0xb8e6('0x58')]&&_0x1ce6e8[_0xb8e6('0x58')][0x0]?_0x1ce6e8['attrs'][0x0][_0xb8e6('0x59')]:undefined)||_0xb8e6('0x5a')}];case _0xb8e6('0x5b'):return[{'name':_0xb8e6('0x5c'),'value':_0x1ce6e8[_0xb8e6('0x5c')]||(_0x1ce6e8[_0xb8e6('0x58')]&&_0x1ce6e8[_0xb8e6('0x58')][0x0]?_0x1ce6e8[_0xb8e6('0x58')][0x0][_0xb8e6('0x59')]:undefined)||''}];case _0xb8e6('0x5d'):return[{'name':'attrHourFormat','value':_0x1ce6e8['attrHourFormat']||(_0x1ce6e8['attrs']&&_0x1ce6e8[_0xb8e6('0x58')][0x0]?_0x1ce6e8[_0xb8e6('0x58')][0x0][_0xb8e6('0x59')]:undefined)||_0xb8e6('0x5e')},{'name':_0xb8e6('0x5f'),'value':_0x1ce6e8[_0xb8e6('0x5f')]||(_0x1ce6e8[_0xb8e6('0x58')]&&_0x1ce6e8['attrs'][0x1]?_0x1ce6e8['attrs'][0x1][_0xb8e6('0x59')]:undefined)||_0xb8e6('0x60')},{'name':_0xb8e6('0x61'),'value':_0x1ce6e8[_0xb8e6('0x61')]||(_0x1ce6e8['attrs']&&_0x1ce6e8[_0xb8e6('0x58')][0x2]?_0x1ce6e8[_0xb8e6('0x58')][0x2][_0xb8e6('0x59')]:undefined)||0xc}];case _0xb8e6('0x62'):return[{'name':_0xb8e6('0x63'),'value':_0x1ce6e8['attrMetric']||(_0x1ce6e8['attrs']&&_0x1ce6e8[_0xb8e6('0x58')][0x0]?_0x1ce6e8['attrs'][0x0][_0xb8e6('0x59')]:undefined)||_0xb8e6('0x64')},{'name':_0xb8e6('0x65'),'value':_0x1ce6e8[_0xb8e6('0x65')]||(_0x1ce6e8[_0xb8e6('0x58')]&&_0x1ce6e8[_0xb8e6('0x58')][0x1]?_0x1ce6e8[_0xb8e6('0x58')][0x1][_0xb8e6('0x59')]:undefined)||[]},{'name':_0xb8e6('0x61'),'value':_0x1ce6e8[_0xb8e6('0x61')]||(_0x1ce6e8[_0xb8e6('0x58')]&&_0x1ce6e8[_0xb8e6('0x58')][0x2]?_0x1ce6e8['attrs'][0x2][_0xb8e6('0x59')]:undefined)||0x14}];case _0xb8e6('0x66'):case _0xb8e6('0x67'):return[{'name':_0xb8e6('0x68'),'value':_0x1ce6e8['attrSerie1']||(_0x1ce6e8[_0xb8e6('0x58')]&&_0x1ce6e8['attrs'][0x0]?_0x1ce6e8[_0xb8e6('0x58')][0x0]['value']:undefined)||_0xb8e6('0x64')},{'name':_0xb8e6('0x69'),'value':_0x1ce6e8[_0xb8e6('0x69')]||(_0x1ce6e8[_0xb8e6('0x58')]&&_0x1ce6e8[_0xb8e6('0x58')][0x1]?_0x1ce6e8[_0xb8e6('0x58')][0x1]['value']:undefined)||null},{'name':_0xb8e6('0x6a'),'value':_0x1ce6e8[_0xb8e6('0x6a')]||(_0x1ce6e8[_0xb8e6('0x58')]&&_0x1ce6e8[_0xb8e6('0x58')][0x2]?_0x1ce6e8[_0xb8e6('0x58')][0x2][_0xb8e6('0x59')]:undefined)||null},{'name':_0xb8e6('0x65'),'value':_0x1ce6e8[_0xb8e6('0x65')]||(_0x1ce6e8[_0xb8e6('0x58')]&&_0x1ce6e8['attrs'][0x3]?_0x1ce6e8[_0xb8e6('0x58')][0x3][_0xb8e6('0x59')]:undefined)||[]}];case _0xb8e6('0x6b'):return[{'name':'attrReport','type':_0x1ce6e8['reportType']||(_0x1ce6e8[_0xb8e6('0x58')]&&_0x1ce6e8['attrs'][0x0]?_0x1ce6e8[_0xb8e6('0x58')][0x0]['type']:undefined)||null,'value':_0x1ce6e8[_0xb8e6('0x6c')]||(_0x1ce6e8[_0xb8e6('0x58')]&&_0x1ce6e8[_0xb8e6('0x58')][0x0]?_0x1ce6e8['attrs'][0x0][_0xb8e6('0x59')]:undefined)||null},{'name':_0xb8e6('0x6d'),'value':_0x1ce6e8[_0xb8e6('0x6d')]||(_0x1ce6e8[_0xb8e6('0x58')]&&_0x1ce6e8['attrs'][0x1]?_0x1ce6e8['attrs'][0x1][_0xb8e6('0x59')]:undefined)||0x0}];default:return[];}}catch(_0x22eba6){logger[_0xb8e6('0x29')](_0xb8e6('0x6e'),JSON[_0xb8e6('0x6f')](_0x22eba6));return[];}}exports[_0xb8e6('0x70')]=function(_0x4f3800,_0x397541,_0x226d4c){if(_0x4f3800[_0xb8e6('0x4b')]['id']){delete _0x4f3800[_0xb8e6('0x4b')]['id'];}return db[_0xb8e6('0x41')]['find']({'where':{'id':_0x4f3800[_0xb8e6('0x47')]['id']}})[_0xb8e6('0x27')](handleEntityNotFound(_0x397541,null))[_0xb8e6('0x27')](function(_0x3e539d){if(_0x3e539d){_0x4f3800[_0xb8e6('0x4b')][_0xb8e6('0x71')]=_0x3e539d['id'];_0x4f3800[_0xb8e6('0x4b')]['attrs']=widgetAttributes(_0x4f3800['body']);return db[_0xb8e6('0x72')][_0xb8e6('0x4a')](_0x4f3800['body']);}})['then'](respondWithResult(_0x397541,null))[_0xb8e6('0x45')](handleError(_0x397541,null));};exports[_0xb8e6('0x73')]=function(_0x39256e,_0x3dee1d,_0x465eb3){var _0x183061={};var _0x3f8415={};var _0x4a1efa;var _0x1cbe8c;return db['Dashboard'][_0xb8e6('0x74')]({'where':{'id':_0x39256e['params']['id']}})[_0xb8e6('0x27')](handleEntityNotFound(_0x3dee1d,null))[_0xb8e6('0x27')](function(_0x25230a){if(_0x25230a){_0x4a1efa=_0x25230a;_0x3f8415[_0xb8e6('0x31')]=_[_0xb8e6('0x48')](db[_0xb8e6('0x72')][_0xb8e6('0x2e')]);_0x3f8415[_0xb8e6('0x32')]=_[_0xb8e6('0x48')](_0x39256e[_0xb8e6('0x32')]);_0x3f8415[_0xb8e6('0x3b')]=_[_0xb8e6('0x33')](_0x3f8415[_0xb8e6('0x31')],_0x3f8415[_0xb8e6('0x32')]);_0x183061[_0xb8e6('0x34')]=_[_0xb8e6('0x33')](_0x3f8415[_0xb8e6('0x31')],qs[_0xb8e6('0x35')](_0x39256e['query'][_0xb8e6('0x35')]));_0x183061[_0xb8e6('0x34')]=_0x183061[_0xb8e6('0x34')][_0xb8e6('0x36')]?_0x183061[_0xb8e6('0x34')]:_0x3f8415['model'];_0x183061[_0xb8e6('0x38')]=qs[_0xb8e6('0x39')](_0x39256e['query'][_0xb8e6('0x39')]);_0x183061['where']=qs[_0xb8e6('0x3b')](_['pick'](_0x39256e['query'],_0x3f8415['filters']));if(_0x39256e[_0xb8e6('0x32')]['filter']){_0x183061[_0xb8e6('0x3a')]=_[_0xb8e6('0x3e')](_0x183061[_0xb8e6('0x3a')],{'$or':_[_0xb8e6('0x2d')](_0x183061['attributes'],function(_0x3a30a2){var _0x4ba09f={};_0x4ba09f[_0x3a30a2]={'$like':'%'+_0x39256e[_0xb8e6('0x32')]['filter']+'%'};return _0x4ba09f;})});}_0x183061=_[_0xb8e6('0x3e')]({},_0x183061,_0x39256e[_0xb8e6('0x40')]);return _0x4a1efa['getItems'](_0x183061);}})[_0xb8e6('0x27')](function(_0x5b6aed){if(_0x5b6aed){_0x1cbe8c=_0x5b6aed[_0xb8e6('0x36')];if(!_0x39256e['query'][_0xb8e6('0x75')](_0xb8e6('0x37'))){_0x183061[_0xb8e6('0x1c')]=qs[_0xb8e6('0x1c')](_0x39256e[_0xb8e6('0x32')][_0xb8e6('0x1c')]);_0x183061['offset']=qs['offset'](_0x39256e[_0xb8e6('0x32')]['offset']);}return _0x4a1efa[_0xb8e6('0x73')](_0x183061);}})['then'](function(_0x446eee){if(_0x446eee){return _0x446eee?{'count':_0x1cbe8c,'rows':_0x446eee}:null;}})[_0xb8e6('0x27')](respondWithResult(_0x3dee1d,null))[_0xb8e6('0x45')](handleError(_0x3dee1d,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9cfc=['events','../../mysqldb','Dashboard','setMaxListeners','update','remove','emit','hasOwnProperty','exports'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x9cfc,0x1b0));var _0xc9cf=function(_0x18fcc0,_0x5ddd80){_0x18fcc0=_0x18fcc0-0x0;var _0x4f47f7=_0x9cfc[_0x18fcc0];return _0x4f47f7;};'use strict';var EventEmitter=require(_0xc9cf('0x0'));var Dashboard=require(_0xc9cf('0x1'))['db'][_0xc9cf('0x2')];var DashboardEvents=new EventEmitter();DashboardEvents[_0xc9cf('0x3')](0x0);var events={'afterCreate':'save','afterUpdate':_0xc9cf('0x4'),'afterDestroy':_0xc9cf('0x5')};function emitEvent(_0x3d2cc8){return function(_0x47fc27,_0x593cb2,_0x3d9d6e){DashboardEvents['emit'](_0x3d2cc8+':'+_0x47fc27['id'],_0x47fc27);DashboardEvents[_0xc9cf('0x6')](_0x3d2cc8,_0x47fc27);_0x3d9d6e(null);};}for(var e in events){if(events[_0xc9cf('0x7')](e)){var event=events[e];Dashboard['hook'](e,emitEvent(event));}}module[_0xc9cf('0x8')]=DashboardEvents;
\ No newline at end of file
+var _0x6a90=['exports','../../mysqldb','Dashboard','setMaxListeners','save','update','remove','emit','hasOwnProperty'];(function(_0x54702c,_0x1db83b){var _0xd604f5=function(_0xaf0230){while(--_0xaf0230){_0x54702c['push'](_0x54702c['shift']());}};_0xd604f5(++_0x1db83b);}(_0x6a90,0x14e));var _0x06a9=function(_0x5a2698,_0x1bcee6){_0x5a2698=_0x5a2698-0x0;var _0x318c23=_0x6a90[_0x5a2698];return _0x318c23;};'use strict';var EventEmitter=require('events');var Dashboard=require(_0x06a9('0x0'))['db'][_0x06a9('0x1')];var DashboardEvents=new EventEmitter();DashboardEvents[_0x06a9('0x2')](0x0);var events={'afterCreate':_0x06a9('0x3'),'afterUpdate':_0x06a9('0x4'),'afterDestroy':_0x06a9('0x5')};function emitEvent(_0x3be896){return function(_0x25b67e,_0x5b7e3e,_0x57a49f){DashboardEvents[_0x06a9('0x6')](_0x3be896+':'+_0x25b67e['id'],_0x25b67e);DashboardEvents[_0x06a9('0x6')](_0x3be896,_0x25b67e);_0x57a49f(null);};}for(var e in events){if(events[_0x06a9('0x7')](e)){var event=events[e];Dashboard['hook'](e,emitEvent(event));}}module[_0x06a9('0x8')]=DashboardEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x55bf=['exports','Dashboard','dashboards','lodash','util','../../config/logger','moment','bluebird','request-promise','../../config/environment','./dashboard.attributes'];(function(_0x5a60ce,_0x48f080){var _0x393e5e=function(_0x1c58fc){while(--_0x1c58fc){_0x5a60ce['push'](_0x5a60ce['shift']());}};_0x393e5e(++_0x48f080);}(_0x55bf,0xc9));var _0xf55b=function(_0x386c1a,_0x53556e){_0x386c1a=_0x386c1a-0x0;var _0x14b183=_0x55bf[_0x386c1a];return _0x14b183;};'use strict';var _=require(_0xf55b('0x0'));var util=require(_0xf55b('0x1'));var logger=require(_0xf55b('0x2'))('api');var moment=require(_0xf55b('0x3'));var BPromise=require(_0xf55b('0x4'));var rp=require(_0xf55b('0x5'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0xf55b('0x6'));var attributes=require(_0xf55b('0x7'));module[_0xf55b('0x8')]=function(_0x17a11c,_0xf739de){return _0x17a11c['define'](_0xf55b('0x9'),attributes,{'tableName':_0xf55b('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x8daa=['lodash','util','../../config/logger','api','bluebird','path','rimraf','../../config/environment','./dashboard.attributes','exports','define','Dashboard','dashboards'];(function(_0x5b644e,_0x2e5e07){var _0x49c6bf=function(_0x3032d9){while(--_0x3032d9){_0x5b644e['push'](_0x5b644e['shift']());}};_0x49c6bf(++_0x2e5e07);}(_0x8daa,0x179));var _0xa8da=function(_0xda6ad1,_0x5f09e3){_0xda6ad1=_0xda6ad1-0x0;var _0xedc3a5=_0x8daa[_0xda6ad1];return _0xedc3a5;};'use strict';var _=require(_0xa8da('0x0'));var util=require(_0xa8da('0x1'));var logger=require(_0xa8da('0x2'))(_0xa8da('0x3'));var moment=require('moment');var BPromise=require(_0xa8da('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xa8da('0x5'));var rimraf=require(_0xa8da('0x6'));var config=require(_0xa8da('0x7'));var attributes=require(_0xa8da('0x8'));module[_0xa8da('0x9')]=function(_0x56ca78,_0x37e5b4){return _0x56ca78[_0xa8da('0xa')](_0xa8da('0xb'),attributes,{'tableName':_0xa8da('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf641=['Dashboard,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','catch','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','jayson/promise','http','redis','localhost','socket.io-emitter','./dashboard.socket','register','then','Dashboard,\x20%s,\x20%s','request\x20sent'];(function(_0x3edb9,_0x3ec7c8){var _0x9a9eb=function(_0x537b23){while(--_0x537b23){_0x3edb9['push'](_0x3edb9['shift']());}};_0x9a9eb(++_0x3ec7c8);}(_0xf641,0x1b1));var _0x1f64=function(_0x441318,_0x1c6f5c){_0x441318=_0x441318-0x0;var _0x3f6839=_0xf641[_0x441318];return _0x3f6839;};'use strict';var _=require('lodash');var util=require(_0x1f64('0x0'));var moment=require(_0x1f64('0x1'));var BPromise=require(_0x1f64('0x2'));var rs=require(_0x1f64('0x3'));var fs=require('fs');var Redis=require(_0x1f64('0x4'));var db=require(_0x1f64('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0x1f64('0x6'))('rpc');var config=require('../../config/environment');var jayson=require(_0x1f64('0x7'));var client=jayson['client'][_0x1f64('0x8')]({'port':0x232a});config['redis']=_['defaults'](config[_0x1f64('0x9')],{'host':_0x1f64('0xa'),'port':0x18eb});var socket=require(_0x1f64('0xb'))(new Redis(config[_0x1f64('0x9')]));require(_0x1f64('0xc'))[_0x1f64('0xd')](socket);function respondWithRpcPromise(_0x3dd983,_0x2c35ba,_0x5a23be){return new BPromise(function(_0x16fe7f,_0x57c844){return client['request'](_0x3dd983,_0x5a23be)[_0x1f64('0xe')](function(_0x4398ee){logger['info'](_0x1f64('0xf'),_0x2c35ba,_0x1f64('0x10'));logger['debug'](_0x1f64('0x11'),_0x2c35ba,_0x1f64('0x10'),JSON[_0x1f64('0x12')](_0x4398ee));if(_0x4398ee['error']){if(_0x4398ee[_0x1f64('0x13')][_0x1f64('0x14')]===0x1f4){logger['error']('Dashboard,\x20%s,\x20%s',_0x2c35ba,_0x4398ee[_0x1f64('0x13')][_0x1f64('0x15')]);return _0x57c844(_0x4398ee['error']['message']);}logger[_0x1f64('0x13')](_0x1f64('0xf'),_0x2c35ba,_0x4398ee[_0x1f64('0x13')][_0x1f64('0x15')]);return _0x16fe7f(_0x4398ee['error'][_0x1f64('0x15')]);}else{logger[_0x1f64('0x16')]('Dashboard,\x20%s,\x20%s',_0x2c35ba,_0x1f64('0x10'));_0x16fe7f(_0x4398ee[_0x1f64('0x17')][_0x1f64('0x15')]);}})[_0x1f64('0x18')](function(_0x25c477){logger[_0x1f64('0x13')]('Dashboard,\x20%s,\x20%s',_0x2c35ba,_0x25c477);_0x57c844(_0x25c477);});});}
\ No newline at end of file
+var _0x6974=['code','message','result','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','redis','defaults','./dashboard.socket','register','request','info','Dashboard,\x20%s,\x20%s','request\x20sent','debug','Dashboard,\x20%s,\x20%s,\x20%s','error'];(function(_0xe458b,_0x57c865){var _0x232b01=function(_0x2323d7){while(--_0x2323d7){_0xe458b['push'](_0xe458b['shift']());}};_0x232b01(++_0x57c865);}(_0x6974,0x1bd));var _0x4697=function(_0x1c3555,_0x4c8ff6){_0x1c3555=_0x1c3555-0x0;var _0x494eb6=_0x6974[_0x1c3555];return _0x494eb6;};'use strict';var _=require(_0x4697('0x0'));var util=require(_0x4697('0x1'));var moment=require(_0x4697('0x2'));var BPromise=require(_0x4697('0x3'));var rs=require(_0x4697('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x4697('0x5'))['db'];var utils=require(_0x4697('0x6'));var logger=require(_0x4697('0x7'))(_0x4697('0x8'));var config=require(_0x4697('0x9'));var jayson=require('jayson/promise');var client=jayson[_0x4697('0xa')][_0x4697('0xb')]({'port':0x232a});config[_0x4697('0xc')]=_[_0x4697('0xd')](config[_0x4697('0xc')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x4697('0xc')]));require(_0x4697('0xe'))[_0x4697('0xf')](socket);function respondWithRpcPromise(_0x2762bd,_0x2d3390,_0x2c0a28){return new BPromise(function(_0x152b78,_0xaba5e6){return client[_0x4697('0x10')](_0x2762bd,_0x2c0a28)['then'](function(_0x592501){logger[_0x4697('0x11')](_0x4697('0x12'),_0x2d3390,_0x4697('0x13'));logger[_0x4697('0x14')](_0x4697('0x15'),_0x2d3390,_0x4697('0x13'),JSON['stringify'](_0x592501));if(_0x592501['error']){if(_0x592501[_0x4697('0x16')][_0x4697('0x17')]===0x1f4){logger[_0x4697('0x16')]('Dashboard,\x20%s,\x20%s',_0x2d3390,_0x592501[_0x4697('0x16')][_0x4697('0x18')]);return _0xaba5e6(_0x592501[_0x4697('0x16')][_0x4697('0x18')]);}logger[_0x4697('0x16')](_0x4697('0x12'),_0x2d3390,_0x592501[_0x4697('0x16')]['message']);return _0x152b78(_0x592501[_0x4697('0x16')][_0x4697('0x18')]);}else{logger['info']('Dashboard,\x20%s,\x20%s',_0x2d3390,_0x4697('0x13'));_0x152b78(_0x592501[_0x4697('0x19')][_0x4697('0x18')]);}})['catch'](function(_0x1bd91f){logger['error'](_0x4697('0x12'),_0x2d3390,_0x1bd91f);_0xaba5e6(_0x1bd91f);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x75f9=['emit','register','length','dashboard:','./dashboard.events','remove'];(function(_0x5b8151,_0x3620d6){var _0x234c43=function(_0x2145da){while(--_0x2145da){_0x5b8151['push'](_0x5b8151['shift']());}};_0x234c43(++_0x3620d6);}(_0x75f9,0xa6));var _0x975f=function(_0x40a825,_0x3bac79){_0x40a825=_0x40a825-0x0;var _0x273a54=_0x75f9[_0x40a825];return _0x273a54;};'use strict';var DashboardEvents=require(_0x975f('0x0'));var events=['save',_0x975f('0x1'),'update'];function createListener(_0x4f6b64,_0x412b25){return function(_0x3457ab){_0x412b25[_0x975f('0x2')](_0x4f6b64,_0x3457ab);};}function removeListener(_0x277b48,_0x565906){return function(){DashboardEvents['removeListener'](_0x277b48,_0x565906);};}exports[_0x975f('0x3')]=function(_0x16660d){for(var _0x59b158=0x0,_0x4a6110=events[_0x975f('0x4')];_0x59b158<_0x4a6110;_0x59b158++){var _0x359519=events[_0x59b158];var _0x5082d2=createListener(_0x975f('0x5')+_0x359519,_0x16660d);DashboardEvents['on'](_0x359519,_0x5082d2);}};
\ No newline at end of file
+var _0x0bc7=['./dashboard.events','save','remove','emit','removeListener','dashboard:'];(function(_0x22daf5,_0xa21b1){var _0x21478b=function(_0x348580){while(--_0x348580){_0x22daf5['push'](_0x22daf5['shift']());}};_0x21478b(++_0xa21b1);}(_0x0bc7,0x1e0));var _0x70bc=function(_0x1a5aa4,_0x5a27b1){_0x1a5aa4=_0x1a5aa4-0x0;var _0x42fe14=_0x0bc7[_0x1a5aa4];return _0x42fe14;};'use strict';var DashboardEvents=require(_0x70bc('0x0'));var events=[_0x70bc('0x1'),_0x70bc('0x2'),'update'];function createListener(_0x135fe9,_0x787efe){return function(_0x3b7c29){_0x787efe[_0x70bc('0x3')](_0x135fe9,_0x3b7c29);};}function removeListener(_0x523a77,_0x2248c6){return function(){DashboardEvents[_0x70bc('0x4')](_0x523a77,_0x2248c6);};}exports['register']=function(_0x1c7ae1){for(var _0x2d4f1a=0x0,_0x3880b6=events['length'];_0x2d4f1a<_0x3880b6;_0x2d4f1a++){var _0x1681a7=events[_0x2d4f1a];var _0x11f6e1=createListener(_0x70bc('0x5')+_0x1681a7,_0x1c7ae1);DashboardEvents['on'](_0x1681a7,_0x11f6e1);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xaadf=['clone','addItem','put','update','delete','destroy','exports','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./dashboard.controller','get','isAuthenticated','index','/:id','show','/:id/items','getItems','create','post','/:id/clone'];(function(_0x4aa4e6,_0x278c45){var _0x322588=function(_0x19279d){while(--_0x19279d){_0x4aa4e6['push'](_0x4aa4e6['shift']());}};_0x322588(++_0x278c45);}(_0xaadf,0x6f));var _0xfaad=function(_0x4e676e,_0x2a7c6d){_0x4e676e=_0x4e676e-0x0;var _0x336a3c=_0xaadf[_0x4e676e];return _0x336a3c;};'use strict';var multer=require('multer');var util=require(_0xfaad('0x0'));var path=require(_0xfaad('0x1'));var timeout=require(_0xfaad('0x2'));var express=require(_0xfaad('0x3'));var router=express[_0xfaad('0x4')]();var fs_extra=require(_0xfaad('0x5'));var auth=require(_0xfaad('0x6'));var interaction=require(_0xfaad('0x7'));var config=require('../../config/environment');var controller=require(_0xfaad('0x8'));router[_0xfaad('0x9')]('/',auth[_0xfaad('0xa')](),controller[_0xfaad('0xb')]);router['get'](_0xfaad('0xc'),auth[_0xfaad('0xa')](),controller[_0xfaad('0xd')]);router['get'](_0xfaad('0xe'),auth['isAuthenticated'](),controller[_0xfaad('0xf')]);router['post']('/',auth[_0xfaad('0xa')](),controller[_0xfaad('0x10')]);router[_0xfaad('0x11')](_0xfaad('0x12'),auth[_0xfaad('0xa')](),controller[_0xfaad('0x13')]);router[_0xfaad('0x11')]('/:id/items',auth['isAuthenticated'](),controller[_0xfaad('0x14')]);router[_0xfaad('0x15')]('/:id',auth[_0xfaad('0xa')](),controller[_0xfaad('0x16')]);router[_0xfaad('0x17')]('/:id',auth['isAuthenticated'](),controller[_0xfaad('0x18')]);module[_0xfaad('0x19')]=router;
\ No newline at end of file
+var _0x98aa=['Router','../../components/interaction/service','../../config/environment','get','index','/:id','isAuthenticated','show','/:id/items','post','create','/:id/clone','put','update','delete','exports','multer','path','connect-timeout','express'];(function(_0x35a968,_0x393756){var _0x5cc393=function(_0xaecec8){while(--_0xaecec8){_0x35a968['push'](_0x35a968['shift']());}};_0x5cc393(++_0x393756);}(_0x98aa,0x18c));var _0xa98a=function(_0x426dd2,_0x4b0012){_0x426dd2=_0x426dd2-0x0;var _0x4bc76c=_0x98aa[_0x426dd2];return _0x4bc76c;};'use strict';var multer=require(_0xa98a('0x0'));var util=require('util');var path=require(_0xa98a('0x1'));var timeout=require(_0xa98a('0x2'));var express=require(_0xa98a('0x3'));var router=express[_0xa98a('0x4')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0xa98a('0x5'));var config=require(_0xa98a('0x6'));var controller=require('./dashboard.controller');router[_0xa98a('0x7')]('/',auth['isAuthenticated'](),controller[_0xa98a('0x8')]);router['get'](_0xa98a('0x9'),auth[_0xa98a('0xa')](),controller[_0xa98a('0xb')]);router[_0xa98a('0x7')](_0xa98a('0xc'),auth[_0xa98a('0xa')](),controller['getItems']);router[_0xa98a('0xd')]('/',auth[_0xa98a('0xa')](),controller[_0xa98a('0xe')]);router['post'](_0xa98a('0xf'),auth[_0xa98a('0xa')](),controller['clone']);router[_0xa98a('0xd')](_0xa98a('0xc'),auth['isAuthenticated'](),controller['addItem']);router[_0xa98a('0x10')](_0xa98a('0x9'),auth[_0xa98a('0xa')](),controller[_0xa98a('0x11')]);router[_0xa98a('0x12')](_0xa98a('0x9'),auth[_0xa98a('0xa')](),controller['destroy']);module[_0xa98a('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7c09=['getDataValue','attrs','stringify','setDataValue','INTEGER','#2196f3','squel','lodash','STRING','TEXT','long','parse'];(function(_0xdbc659,_0x4afd6c){var _0x2caf5a=function(_0x48765d){while(--_0x48765d){_0xdbc659['push'](_0xdbc659['shift']());}};_0x2caf5a(++_0x4afd6c);}(_0x7c09,0x102));var _0x97c0=function(_0x54c786,_0x355bf5){_0x54c786=_0x54c786-0x0;var _0x68f43a=_0x7c09[_0x54c786];return _0x68f43a;};'use strict';var Sequelize=require('sequelize');var squel=require(_0x97c0('0x0'));var _=require(_0x97c0('0x1'));module['exports']={'title':{'type':Sequelize[_0x97c0('0x2')],'allowNull':![]},'type':{'type':Sequelize[_0x97c0('0x2')](0x14),'allowNull':![],'validate':{'len':[0x1,0x14]}},'attrs':{'type':Sequelize[_0x97c0('0x3')](_0x97c0('0x4')),'get':function(){try{return JSON[_0x97c0('0x5')](this[_0x97c0('0x6')](_0x97c0('0x7')));}catch(_0x4a7788){return[];}},'set':function(_0x4b2f81){try{this['setDataValue'](_0x97c0('0x7'),JSON[_0x97c0('0x8')](_0x4b2f81));}catch(_0x2c19fa){this[_0x97c0('0x9')](_0x97c0('0x7'),JSON['stringify']([]));}}},'sizeX':{'type':Sequelize[_0x97c0('0xa')],'allowNull':![],'defaultValue':0x1},'sizeY':{'type':Sequelize['INTEGER'],'allowNull':![],'defaultValue':0x1},'row':{'type':Sequelize[_0x97c0('0xa')]},'col':{'type':Sequelize[_0x97c0('0xa')]},'background':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':'#ffffff','validate':{'notEmpty':!![]}},'foreground':{'type':Sequelize[_0x97c0('0x2')],'allowNull':![],'defaultValue':_0x97c0('0xb'),'validate':{'notEmpty':!![]}},'link':{'type':Sequelize[_0x97c0('0x2')]},'titleFontSize':{'type':Sequelize[_0x97c0('0xa')],'defaultValue':0xc}};
\ No newline at end of file
+var _0xeda8=['TEXT','long','parse','getDataValue','attrs','setDataValue','stringify','#ffffff','sequelize','squel','exports','STRING'];(function(_0x43740c,_0x242f6c){var _0x17ef27=function(_0x5fba8){while(--_0x5fba8){_0x43740c['push'](_0x43740c['shift']());}};_0x17ef27(++_0x242f6c);}(_0xeda8,0x104));var _0x8eda=function(_0x3e3f2f,_0x1d4482){_0x3e3f2f=_0x3e3f2f-0x0;var _0xb8cfc6=_0xeda8[_0x3e3f2f];return _0xb8cfc6;};'use strict';var Sequelize=require(_0x8eda('0x0'));var squel=require(_0x8eda('0x1'));var _=require('lodash');module[_0x8eda('0x2')]={'title':{'type':Sequelize[_0x8eda('0x3')],'allowNull':![]},'type':{'type':Sequelize[_0x8eda('0x3')](0x14),'allowNull':![],'validate':{'len':[0x1,0x14]}},'attrs':{'type':Sequelize[_0x8eda('0x4')](_0x8eda('0x5')),'get':function(){try{return JSON[_0x8eda('0x6')](this[_0x8eda('0x7')](_0x8eda('0x8')));}catch(_0x22dee9){return[];}},'set':function(_0x1f3556){try{this[_0x8eda('0x9')](_0x8eda('0x8'),JSON['stringify'](_0x1f3556));}catch(_0x28b721){this[_0x8eda('0x9')](_0x8eda('0x8'),JSON[_0x8eda('0xa')]([]));}}},'sizeX':{'type':Sequelize['INTEGER'],'allowNull':![],'defaultValue':0x1},'sizeY':{'type':Sequelize['INTEGER'],'allowNull':![],'defaultValue':0x1},'row':{'type':Sequelize['INTEGER']},'col':{'type':Sequelize['INTEGER']},'background':{'type':Sequelize[_0x8eda('0x3')],'allowNull':![],'defaultValue':_0x8eda('0xb'),'validate':{'notEmpty':!![]}},'foreground':{'type':Sequelize[_0x8eda('0x3')],'allowNull':![],'defaultValue':'#2196f3','validate':{'notEmpty':!![]}},'link':{'type':Sequelize[_0x8eda('0x3')]},'titleFontSize':{'type':Sequelize['INTEGER'],'defaultValue':0xc}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb1e4=['https://','custom','attrPath','clock','attrHourFormat','HH:mm:ss','attrTimezone','0.00','attrMetric','total','attrVoiceQueues','attrFontSize','multibar-chart','pie-chart','attrSerie1','attrSerie2','attrSerie3','web-report','attrReport','reportType','attrRefresh','widgetAttributes:\x20%s','stringify','create','body','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','defaults','localhost','./dashboardItem.socket','register','status','end','offset','undefined','limit','count','Content-Range','json','apply','reject','save','update','then','destroy','sendStatus','error','stack','name','params','keys','DashboardItem','rawAttributes','query','filters','intersection','model','attributes','length','includeAll','include','merge','options','find','catch','type','iframe','attrUrl','attrs','value'];(function(_0x57492a,_0x359f52){var _0x1a958c=function(_0x5e9bed){while(--_0x5e9bed){_0x57492a['push'](_0x57492a['shift']());}};_0x1a958c(++_0x359f52);}(_0xb1e4,0x1d6));var _0x4b1e=function(_0x3da7dc,_0x20b42e){_0x3da7dc=_0x3da7dc-0x0;var _0xb38932=_0xb1e4[_0x3da7dc];return _0xb38932;};'use strict';var emlformat=require(_0x4b1e('0x0'));var rimraf=require(_0x4b1e('0x1'));var zipdir=require(_0x4b1e('0x2'));var jsonpatch=require(_0x4b1e('0x3'));var rp=require(_0x4b1e('0x4'));var moment=require(_0x4b1e('0x5'));var BPromise=require(_0x4b1e('0x6'));var Mustache=require('mustache');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(_0x4b1e('0x7'));var _=require(_0x4b1e('0x8'));var squel=require(_0x4b1e('0x9'));var crypto=require(_0x4b1e('0xa'));var jsforce=require(_0x4b1e('0xb'));var deskjs=require(_0x4b1e('0xc'));var toCsv=require(_0x4b1e('0xd'));var querystring=require(_0x4b1e('0xe'));var Papa=require(_0x4b1e('0xf'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x4b1e('0x10'));var hardwareService=require(_0x4b1e('0x11'));var logger=require(_0x4b1e('0x12'))('api');var utils=require(_0x4b1e('0x13'));var config=require('../../config/environment');var licenseUtil=require(_0x4b1e('0x14'));var db=require('../../mysqldb')['db'];config['redis']=_[_0x4b1e('0x15')](config['redis'],{'host':_0x4b1e('0x16'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0x4b1e('0x17'))[_0x4b1e('0x18')](socket);function respondWithStatusCode(_0x16a7b0,_0x399da1){_0x399da1=_0x399da1||0xcc;return function(_0x3aa29f){if(_0x3aa29f){return _0x16a7b0['sendStatus'](_0x399da1);}return _0x16a7b0[_0x4b1e('0x19')](_0x399da1)[_0x4b1e('0x1a')]();};}function respondWithResult(_0x507b3c,_0x162c32){_0x162c32=_0x162c32||0xc8;return function(_0x2233bd){if(_0x2233bd){return _0x507b3c[_0x4b1e('0x19')](_0x162c32)['json'](_0x2233bd);}};}function respondWithFilteredResult(_0x1e1899,_0x351a9e){return function(_0x34992c){if(_0x34992c){var _0x50cd51=typeof _0x351a9e[_0x4b1e('0x1b')]===_0x4b1e('0x1c')&&typeof _0x351a9e[_0x4b1e('0x1d')]===_0x4b1e('0x1c');var _0x249094=_0x34992c[_0x4b1e('0x1e')];var _0x289707=_0x50cd51?0x0:_0x351a9e['offset'];var _0x4a3f37=_0x50cd51?_0x34992c[_0x4b1e('0x1e')]:_0x351a9e[_0x4b1e('0x1b')]+_0x351a9e['limit'];var _0xe92f37;if(_0x4a3f37>=_0x249094){_0x4a3f37=_0x249094;_0xe92f37=0xc8;}else{_0xe92f37=0xce;}_0x1e1899['status'](_0xe92f37);return _0x1e1899['set'](_0x4b1e('0x1f'),_0x289707+'-'+_0x4a3f37+'/'+_0x249094)[_0x4b1e('0x20')](_0x34992c);}return null;};}function patchUpdates(_0x2fbe52){return function(_0xbca2a7){try{jsonpatch[_0x4b1e('0x21')](_0xbca2a7,_0x2fbe52,!![]);}catch(_0x197ad7){return BPromise[_0x4b1e('0x22')](_0x197ad7);}return _0xbca2a7[_0x4b1e('0x23')]();};}function saveUpdates(_0x1393a4,_0x2fd175){return function(_0x59a074){if(_0x59a074){return _0x59a074[_0x4b1e('0x24')](_0x1393a4)[_0x4b1e('0x25')](function(_0x4fc7b6){return _0x4fc7b6;});}return null;};}function removeEntity(_0x34d611,_0x2b5bfa){return function(_0x467381){if(_0x467381){return _0x467381[_0x4b1e('0x26')]()[_0x4b1e('0x25')](function(){_0x34d611['status'](0xcc)[_0x4b1e('0x1a')]();});}};}function handleEntityNotFound(_0x36c97b,_0x49fc3e){return function(_0x540810){if(!_0x540810){_0x36c97b[_0x4b1e('0x27')](0x194);}return _0x540810;};}function handleError(_0xcb891a,_0x124653){_0x124653=_0x124653||0x1f4;return function(_0x42e194){logger[_0x4b1e('0x28')](_0x42e194[_0x4b1e('0x29')]);if(_0x42e194[_0x4b1e('0x2a')]){delete _0x42e194[_0x4b1e('0x2a')];}_0xcb891a[_0x4b1e('0x19')](_0x124653)['send'](_0x42e194);};}exports['show']=function(_0x2a749f,_0x53d7c8){var _0xcc9d64={'raw':![],'where':{'id':_0x2a749f[_0x4b1e('0x2b')]['id']}},_0x3d1ba6={};_0x3d1ba6['model']=_[_0x4b1e('0x2c')](db[_0x4b1e('0x2d')][_0x4b1e('0x2e')]);_0x3d1ba6[_0x4b1e('0x2f')]=_[_0x4b1e('0x2c')](_0x2a749f[_0x4b1e('0x2f')]);_0x3d1ba6[_0x4b1e('0x30')]=_[_0x4b1e('0x31')](_0x3d1ba6[_0x4b1e('0x32')],_0x3d1ba6[_0x4b1e('0x2f')]);_0xcc9d64[_0x4b1e('0x33')]=_[_0x4b1e('0x31')](_0x3d1ba6[_0x4b1e('0x32')],qs['fields'](_0x2a749f[_0x4b1e('0x2f')]['fields']));_0xcc9d64[_0x4b1e('0x33')]=_0xcc9d64[_0x4b1e('0x33')][_0x4b1e('0x34')]?_0xcc9d64[_0x4b1e('0x33')]:_0x3d1ba6[_0x4b1e('0x32')];if(_0x2a749f[_0x4b1e('0x2f')][_0x4b1e('0x35')]){_0xcc9d64[_0x4b1e('0x36')]=[{'all':!![]}];}_0xcc9d64=_[_0x4b1e('0x37')]({},_0xcc9d64,_0x2a749f[_0x4b1e('0x38')]);return db[_0x4b1e('0x2d')][_0x4b1e('0x39')](_0xcc9d64)[_0x4b1e('0x25')](handleEntityNotFound(_0x53d7c8,null))[_0x4b1e('0x25')](respondWithResult(_0x53d7c8,null))['catch'](handleError(_0x53d7c8,null));};exports[_0x4b1e('0x26')]=function(_0x44afb8,_0xabb2bc){return db[_0x4b1e('0x2d')][_0x4b1e('0x39')]({'where':{'id':_0x44afb8['params']['id']}})[_0x4b1e('0x25')](handleEntityNotFound(_0xabb2bc,null))[_0x4b1e('0x25')](removeEntity(_0xabb2bc,null))[_0x4b1e('0x3a')](handleError(_0xabb2bc,null));};function widgetAttributes(_0x2ee6a2){try{switch(_0x2ee6a2[_0x4b1e('0x3b')]){case _0x4b1e('0x3c'):return[{'name':'attrUrl','value':_0x2ee6a2[_0x4b1e('0x3d')]||(_0x2ee6a2[_0x4b1e('0x3e')]&&_0x2ee6a2['attrs'][0x0]?_0x2ee6a2[_0x4b1e('0x3e')][0x0][_0x4b1e('0x3f')]:undefined)||_0x4b1e('0x40')}];case _0x4b1e('0x41'):return[{'name':_0x4b1e('0x42'),'value':_0x2ee6a2[_0x4b1e('0x42')]||(_0x2ee6a2[_0x4b1e('0x3e')]&&_0x2ee6a2[_0x4b1e('0x3e')][0x0]?_0x2ee6a2['attrs'][0x0]['value']:undefined)||''}];case _0x4b1e('0x43'):return[{'name':_0x4b1e('0x44'),'value':_0x2ee6a2['attrHourFormat']||(_0x2ee6a2[_0x4b1e('0x3e')]&&_0x2ee6a2[_0x4b1e('0x3e')][0x0]?_0x2ee6a2[_0x4b1e('0x3e')][0x0]['value']:undefined)||_0x4b1e('0x45')},{'name':_0x4b1e('0x46'),'value':_0x2ee6a2[_0x4b1e('0x46')]||(_0x2ee6a2[_0x4b1e('0x3e')]&&_0x2ee6a2[_0x4b1e('0x3e')][0x1]?_0x2ee6a2[_0x4b1e('0x3e')][0x1][_0x4b1e('0x3f')]:undefined)||_0x4b1e('0x47')},{'name':'attrFontSize','value':_0x2ee6a2['attrFontSize']||(_0x2ee6a2['attrs']&&_0x2ee6a2[_0x4b1e('0x3e')][0x2]?_0x2ee6a2[_0x4b1e('0x3e')][0x2][_0x4b1e('0x3f')]:undefined)||0xc}];case'counter':return[{'name':_0x4b1e('0x48'),'value':_0x2ee6a2['attrMetric']||(_0x2ee6a2[_0x4b1e('0x3e')]&&_0x2ee6a2[_0x4b1e('0x3e')][0x0]?_0x2ee6a2[_0x4b1e('0x3e')][0x0][_0x4b1e('0x3f')]:undefined)||_0x4b1e('0x49')},{'name':_0x4b1e('0x4a'),'value':_0x2ee6a2[_0x4b1e('0x4a')]||(_0x2ee6a2[_0x4b1e('0x3e')]&&_0x2ee6a2['attrs'][0x1]?_0x2ee6a2['attrs'][0x1][_0x4b1e('0x3f')]:undefined)||[]},{'name':_0x4b1e('0x4b'),'value':_0x2ee6a2[_0x4b1e('0x4b')]||(_0x2ee6a2[_0x4b1e('0x3e')]&&_0x2ee6a2[_0x4b1e('0x3e')][0x2]?_0x2ee6a2[_0x4b1e('0x3e')][0x2][_0x4b1e('0x3f')]:undefined)||0x14}];case _0x4b1e('0x4c'):case _0x4b1e('0x4d'):return[{'name':_0x4b1e('0x4e'),'value':_0x2ee6a2[_0x4b1e('0x4e')]||(_0x2ee6a2[_0x4b1e('0x3e')]&&_0x2ee6a2[_0x4b1e('0x3e')][0x0]?_0x2ee6a2[_0x4b1e('0x3e')][0x0]['value']:undefined)||'total'},{'name':_0x4b1e('0x4f'),'value':_0x2ee6a2['attrSerie2']||(_0x2ee6a2[_0x4b1e('0x3e')]&&_0x2ee6a2[_0x4b1e('0x3e')][0x1]?_0x2ee6a2['attrs'][0x1][_0x4b1e('0x3f')]:undefined)||null},{'name':_0x4b1e('0x50'),'value':_0x2ee6a2[_0x4b1e('0x50')]||(_0x2ee6a2[_0x4b1e('0x3e')]&&_0x2ee6a2[_0x4b1e('0x3e')][0x2]?_0x2ee6a2['attrs'][0x2][_0x4b1e('0x3f')]:undefined)||null},{'name':_0x4b1e('0x4a'),'value':_0x2ee6a2[_0x4b1e('0x4a')]||(_0x2ee6a2['attrs']&&_0x2ee6a2[_0x4b1e('0x3e')][0x3]?_0x2ee6a2[_0x4b1e('0x3e')][0x3][_0x4b1e('0x3f')]:undefined)||[]}];case _0x4b1e('0x51'):return[{'name':_0x4b1e('0x52'),'type':_0x2ee6a2[_0x4b1e('0x53')]||(_0x2ee6a2[_0x4b1e('0x3e')]&&_0x2ee6a2[_0x4b1e('0x3e')][0x0]?_0x2ee6a2[_0x4b1e('0x3e')][0x0][_0x4b1e('0x3b')]:undefined)||null,'value':_0x2ee6a2[_0x4b1e('0x52')]||(_0x2ee6a2['attrs']&&_0x2ee6a2['attrs'][0x0]?_0x2ee6a2[_0x4b1e('0x3e')][0x0][_0x4b1e('0x3f')]:undefined)||null},{'name':_0x4b1e('0x54'),'value':_0x2ee6a2[_0x4b1e('0x54')]||(_0x2ee6a2['attrs']&&_0x2ee6a2[_0x4b1e('0x3e')][0x1]?_0x2ee6a2['attrs'][0x1][_0x4b1e('0x3f')]:undefined)||0x0}];default:return[];}}catch(_0x5c0caf){logger[_0x4b1e('0x28')](_0x4b1e('0x55'),JSON[_0x4b1e('0x56')](_0x5c0caf));return[];}}exports[_0x4b1e('0x57')]=function(_0x5a8be4,_0x2d8e45){if(_0x5a8be4[_0x4b1e('0x58')]){_0x5a8be4[_0x4b1e('0x58')][_0x4b1e('0x3e')]=widgetAttributes(_0x5a8be4[_0x4b1e('0x58')]);}return db['DashboardItem']['create'](_0x5a8be4[_0x4b1e('0x58')],{})[_0x4b1e('0x25')](respondWithResult(_0x2d8e45,0xc9))['catch'](handleError(_0x2d8e45,null));};exports[_0x4b1e('0x24')]=function(_0x30f1ab,_0x1906c5){if(_0x30f1ab[_0x4b1e('0x58')]['id']){delete _0x30f1ab[_0x4b1e('0x58')]['id'];}_0x30f1ab[_0x4b1e('0x58')]['attrs']=widgetAttributes(_0x30f1ab[_0x4b1e('0x58')]);return db[_0x4b1e('0x2d')][_0x4b1e('0x39')]({'where':{'id':_0x30f1ab[_0x4b1e('0x2b')]['id']}})['then'](handleEntityNotFound(_0x1906c5,null))[_0x4b1e('0x25')](saveUpdates(_0x30f1ab[_0x4b1e('0x58')],null))[_0x4b1e('0x25')](respondWithResult(_0x1906c5,null))[_0x4b1e('0x3a')](handleError(_0x1906c5,null));};
\ No newline at end of file
+var _0xfa38=['jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/license/hardware','api','../../config/utils','../../config/license/util','defaults','redis','localhost','socket.io-emitter','sendStatus','status','end','json','offset','undefined','count','set','Content-Range','update','then','error','name','send','show','params','keys','DashboardItem','rawAttributes','query','filters','intersection','model','fields','attributes','includeAll','include','merge','options','catch','destroy','type','iframe','attrUrl','attrs','value','https://','custom','attrPath','clock','attrTimezone','attrFontSize','counter','attrVoiceQueues','multibar-chart','pie-chart','attrSerie1','attrSerie2','web-report','attrReport','reportType','attrRefresh','create','body','find','eml-format','rimraf','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','squel'];(function(_0x4c8a54,_0xcf8bea){var _0xfe324b=function(_0x3d835f){while(--_0x3d835f){_0x4c8a54['push'](_0x4c8a54['shift']());}};_0xfe324b(++_0xcf8bea);}(_0xfa38,0x97));var _0x8fa3=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xfa38[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require(_0x8fa3('0x0'));var rimraf=require(_0x8fa3('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x8fa3('0x2'));var moment=require(_0x8fa3('0x3'));var BPromise=require(_0x8fa3('0x4'));var Mustache=require(_0x8fa3('0x5'));var util=require('util');var path=require(_0x8fa3('0x6'));var sox=require(_0x8fa3('0x7'));var csv=require(_0x8fa3('0x8'));var ejs=require(_0x8fa3('0x9'));var fs=require('fs');var fs_extra=require(_0x8fa3('0xa'));var _=require(_0x8fa3('0xb'));var squel=require(_0x8fa3('0xc'));var crypto=require('crypto');var jsforce=require(_0x8fa3('0xd'));var deskjs=require(_0x8fa3('0xe'));var toCsv=require(_0x8fa3('0x8'));var querystring=require(_0x8fa3('0xf'));var Papa=require(_0x8fa3('0x10'));var Redis=require(_0x8fa3('0x11'));var authService=require('../../components/auth/service');var qs=require(_0x8fa3('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x8fa3('0x13'));var logger=require('../../config/logger')(_0x8fa3('0x14'));var utils=require(_0x8fa3('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0x8fa3('0x16'));var db=require('../../mysqldb')['db'];config['redis']=_[_0x8fa3('0x17')](config[_0x8fa3('0x18')],{'host':_0x8fa3('0x19'),'port':0x18eb});var socket=require(_0x8fa3('0x1a'))(new Redis(config[_0x8fa3('0x18')]));require('./dashboardItem.socket')['register'](socket);function respondWithStatusCode(_0x1a5db0,_0x39e528){_0x39e528=_0x39e528||0xcc;return function(_0x43c8d3){if(_0x43c8d3){return _0x1a5db0[_0x8fa3('0x1b')](_0x39e528);}return _0x1a5db0[_0x8fa3('0x1c')](_0x39e528)[_0x8fa3('0x1d')]();};}function respondWithResult(_0x3cae50,_0x1d438d){_0x1d438d=_0x1d438d||0xc8;return function(_0x16e97e){if(_0x16e97e){return _0x3cae50['status'](_0x1d438d)[_0x8fa3('0x1e')](_0x16e97e);}};}function respondWithFilteredResult(_0x2b8b92,_0x44340c){return function(_0x7027e4){if(_0x7027e4){var _0x406eee=typeof _0x44340c[_0x8fa3('0x1f')]==='undefined'&&typeof _0x44340c['limit']===_0x8fa3('0x20');var _0x47347e=_0x7027e4[_0x8fa3('0x21')];var _0x256f5a=_0x406eee?0x0:_0x44340c[_0x8fa3('0x1f')];var _0x19c024=_0x406eee?_0x7027e4['count']:_0x44340c['offset']+_0x44340c['limit'];var _0x518501;if(_0x19c024>=_0x47347e){_0x19c024=_0x47347e;_0x518501=0xc8;}else{_0x518501=0xce;}_0x2b8b92['status'](_0x518501);return _0x2b8b92[_0x8fa3('0x22')](_0x8fa3('0x23'),_0x256f5a+'-'+_0x19c024+'/'+_0x47347e)[_0x8fa3('0x1e')](_0x7027e4);}return null;};}function patchUpdates(_0x4494b9){return function(_0x2b5122){try{jsonpatch['apply'](_0x2b5122,_0x4494b9,!![]);}catch(_0x3009ff){return BPromise['reject'](_0x3009ff);}return _0x2b5122['save']();};}function saveUpdates(_0x139383,_0x5a43a8){return function(_0x23b266){if(_0x23b266){return _0x23b266[_0x8fa3('0x24')](_0x139383)[_0x8fa3('0x25')](function(_0xa652ab){return _0xa652ab;});}return null;};}function removeEntity(_0x28b8ef,_0x27b95c){return function(_0x51788e){if(_0x51788e){return _0x51788e['destroy']()['then'](function(){_0x28b8ef[_0x8fa3('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4e1a5e,_0x424d09){return function(_0x1902ba){if(!_0x1902ba){_0x4e1a5e[_0x8fa3('0x1b')](0x194);}return _0x1902ba;};}function handleError(_0x1768a1,_0x23c684){_0x23c684=_0x23c684||0x1f4;return function(_0x34762b){logger[_0x8fa3('0x26')](_0x34762b['stack']);if(_0x34762b[_0x8fa3('0x27')]){delete _0x34762b[_0x8fa3('0x27')];}_0x1768a1[_0x8fa3('0x1c')](_0x23c684)[_0x8fa3('0x28')](_0x34762b);};}exports[_0x8fa3('0x29')]=function(_0x506cee,_0x42dd6e){var _0x4b1a5d={'raw':![],'where':{'id':_0x506cee[_0x8fa3('0x2a')]['id']}},_0x5e4017={};_0x5e4017['model']=_[_0x8fa3('0x2b')](db[_0x8fa3('0x2c')][_0x8fa3('0x2d')]);_0x5e4017[_0x8fa3('0x2e')]=_[_0x8fa3('0x2b')](_0x506cee[_0x8fa3('0x2e')]);_0x5e4017[_0x8fa3('0x2f')]=_[_0x8fa3('0x30')](_0x5e4017[_0x8fa3('0x31')],_0x5e4017[_0x8fa3('0x2e')]);_0x4b1a5d['attributes']=_[_0x8fa3('0x30')](_0x5e4017[_0x8fa3('0x31')],qs[_0x8fa3('0x32')](_0x506cee[_0x8fa3('0x2e')][_0x8fa3('0x32')]));_0x4b1a5d[_0x8fa3('0x33')]=_0x4b1a5d[_0x8fa3('0x33')]['length']?_0x4b1a5d['attributes']:_0x5e4017[_0x8fa3('0x31')];if(_0x506cee[_0x8fa3('0x2e')][_0x8fa3('0x34')]){_0x4b1a5d[_0x8fa3('0x35')]=[{'all':!![]}];}_0x4b1a5d=_[_0x8fa3('0x36')]({},_0x4b1a5d,_0x506cee[_0x8fa3('0x37')]);return db[_0x8fa3('0x2c')]['find'](_0x4b1a5d)['then'](handleEntityNotFound(_0x42dd6e,null))['then'](respondWithResult(_0x42dd6e,null))[_0x8fa3('0x38')](handleError(_0x42dd6e,null));};exports[_0x8fa3('0x39')]=function(_0x5bc17a,_0x54e525){return db['DashboardItem']['find']({'where':{'id':_0x5bc17a[_0x8fa3('0x2a')]['id']}})[_0x8fa3('0x25')](handleEntityNotFound(_0x54e525,null))[_0x8fa3('0x25')](removeEntity(_0x54e525,null))[_0x8fa3('0x38')](handleError(_0x54e525,null));};function widgetAttributes(_0x1296a0){try{switch(_0x1296a0[_0x8fa3('0x3a')]){case _0x8fa3('0x3b'):return[{'name':_0x8fa3('0x3c'),'value':_0x1296a0[_0x8fa3('0x3c')]||(_0x1296a0[_0x8fa3('0x3d')]&&_0x1296a0[_0x8fa3('0x3d')][0x0]?_0x1296a0[_0x8fa3('0x3d')][0x0][_0x8fa3('0x3e')]:undefined)||_0x8fa3('0x3f')}];case _0x8fa3('0x40'):return[{'name':'attrPath','value':_0x1296a0[_0x8fa3('0x41')]||(_0x1296a0['attrs']&&_0x1296a0[_0x8fa3('0x3d')][0x0]?_0x1296a0[_0x8fa3('0x3d')][0x0][_0x8fa3('0x3e')]:undefined)||''}];case _0x8fa3('0x42'):return[{'name':'attrHourFormat','value':_0x1296a0['attrHourFormat']||(_0x1296a0[_0x8fa3('0x3d')]&&_0x1296a0[_0x8fa3('0x3d')][0x0]?_0x1296a0[_0x8fa3('0x3d')][0x0]['value']:undefined)||'HH:mm:ss'},{'name':_0x8fa3('0x43'),'value':_0x1296a0[_0x8fa3('0x43')]||(_0x1296a0[_0x8fa3('0x3d')]&&_0x1296a0[_0x8fa3('0x3d')][0x1]?_0x1296a0[_0x8fa3('0x3d')][0x1]['value']:undefined)||'0.00'},{'name':_0x8fa3('0x44'),'value':_0x1296a0[_0x8fa3('0x44')]||(_0x1296a0[_0x8fa3('0x3d')]&&_0x1296a0['attrs'][0x2]?_0x1296a0['attrs'][0x2][_0x8fa3('0x3e')]:undefined)||0xc}];case _0x8fa3('0x45'):return[{'name':'attrMetric','value':_0x1296a0['attrMetric']||(_0x1296a0[_0x8fa3('0x3d')]&&_0x1296a0[_0x8fa3('0x3d')][0x0]?_0x1296a0[_0x8fa3('0x3d')][0x0][_0x8fa3('0x3e')]:undefined)||'total'},{'name':_0x8fa3('0x46'),'value':_0x1296a0['attrVoiceQueues']||(_0x1296a0[_0x8fa3('0x3d')]&&_0x1296a0[_0x8fa3('0x3d')][0x1]?_0x1296a0[_0x8fa3('0x3d')][0x1][_0x8fa3('0x3e')]:undefined)||[]},{'name':_0x8fa3('0x44'),'value':_0x1296a0[_0x8fa3('0x44')]||(_0x1296a0[_0x8fa3('0x3d')]&&_0x1296a0[_0x8fa3('0x3d')][0x2]?_0x1296a0[_0x8fa3('0x3d')][0x2][_0x8fa3('0x3e')]:undefined)||0x14}];case _0x8fa3('0x47'):case _0x8fa3('0x48'):return[{'name':_0x8fa3('0x49'),'value':_0x1296a0[_0x8fa3('0x49')]||(_0x1296a0[_0x8fa3('0x3d')]&&_0x1296a0['attrs'][0x0]?_0x1296a0['attrs'][0x0][_0x8fa3('0x3e')]:undefined)||'total'},{'name':'attrSerie2','value':_0x1296a0[_0x8fa3('0x4a')]||(_0x1296a0[_0x8fa3('0x3d')]&&_0x1296a0[_0x8fa3('0x3d')][0x1]?_0x1296a0[_0x8fa3('0x3d')][0x1][_0x8fa3('0x3e')]:undefined)||null},{'name':'attrSerie3','value':_0x1296a0['attrSerie3']||(_0x1296a0[_0x8fa3('0x3d')]&&_0x1296a0['attrs'][0x2]?_0x1296a0[_0x8fa3('0x3d')][0x2][_0x8fa3('0x3e')]:undefined)||null},{'name':'attrVoiceQueues','value':_0x1296a0['attrVoiceQueues']||(_0x1296a0[_0x8fa3('0x3d')]&&_0x1296a0[_0x8fa3('0x3d')][0x3]?_0x1296a0[_0x8fa3('0x3d')][0x3][_0x8fa3('0x3e')]:undefined)||[]}];case _0x8fa3('0x4b'):return[{'name':_0x8fa3('0x4c'),'type':_0x1296a0[_0x8fa3('0x4d')]||(_0x1296a0['attrs']&&_0x1296a0['attrs'][0x0]?_0x1296a0['attrs'][0x0]['type']:undefined)||null,'value':_0x1296a0['attrReport']||(_0x1296a0['attrs']&&_0x1296a0['attrs'][0x0]?_0x1296a0['attrs'][0x0]['value']:undefined)||null},{'name':_0x8fa3('0x4e'),'value':_0x1296a0['attrRefresh']||(_0x1296a0['attrs']&&_0x1296a0[_0x8fa3('0x3d')][0x1]?_0x1296a0['attrs'][0x1]['value']:undefined)||0x0}];default:return[];}}catch(_0x434b53){logger[_0x8fa3('0x26')]('widgetAttributes:\x20%s',JSON['stringify'](_0x434b53));return[];}}exports[_0x8fa3('0x4f')]=function(_0x32b9e7,_0x3b40c8){if(_0x32b9e7[_0x8fa3('0x50')]){_0x32b9e7[_0x8fa3('0x50')]['attrs']=widgetAttributes(_0x32b9e7[_0x8fa3('0x50')]);}return db[_0x8fa3('0x2c')]['create'](_0x32b9e7[_0x8fa3('0x50')],{})['then'](respondWithResult(_0x3b40c8,0xc9))[_0x8fa3('0x38')](handleError(_0x3b40c8,null));};exports['update']=function(_0x20cef,_0x5164fb){if(_0x20cef[_0x8fa3('0x50')]['id']){delete _0x20cef['body']['id'];}_0x20cef['body']['attrs']=widgetAttributes(_0x20cef[_0x8fa3('0x50')]);return db['DashboardItem'][_0x8fa3('0x51')]({'where':{'id':_0x20cef[_0x8fa3('0x2a')]['id']}})[_0x8fa3('0x25')](handleEntityNotFound(_0x5164fb,null))[_0x8fa3('0x25')](saveUpdates(_0x20cef[_0x8fa3('0x50')],null))[_0x8fa3('0x25')](respondWithResult(_0x5164fb,null))[_0x8fa3('0x38')](handleError(_0x5164fb,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xace0=['update','emit','hasOwnProperty','hook','events','DashboardItem','save'];(function(_0x504bcf,_0x4052fe){var _0x4557b0=function(_0x3d7146){while(--_0x3d7146){_0x504bcf['push'](_0x504bcf['shift']());}};_0x4557b0(++_0x4052fe);}(_0xace0,0x193));var _0x0ace=function(_0x7404bb,_0x3249a1){_0x7404bb=_0x7404bb-0x0;var _0x2d9af1=_0xace0[_0x7404bb];return _0x2d9af1;};'use strict';var EventEmitter=require(_0x0ace('0x0'));var DashboardItem=require('../../mysqldb')['db'][_0x0ace('0x1')];var DashboardItemEvents=new EventEmitter();DashboardItemEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x0ace('0x2'),'afterUpdate':_0x0ace('0x3'),'afterDestroy':'remove'};function emitEvent(_0x4ac35b){return function(_0x473929,_0x484d31,_0x303507){DashboardItemEvents[_0x0ace('0x4')](_0x4ac35b+':'+_0x473929['id'],_0x473929);DashboardItemEvents[_0x0ace('0x4')](_0x4ac35b,_0x473929);_0x303507(null);};}for(var e in events){if(events[_0x0ace('0x5')](e)){var event=events[e];DashboardItem[_0x0ace('0x6')](e,emitEvent(event));}}module['exports']=DashboardItemEvents;
\ No newline at end of file
+var _0x1d84=['hook','exports','../../mysqldb','DashboardItem','setMaxListeners','update','remove','emit','hasOwnProperty'];(function(_0x3f9097,_0x4c5cec){var _0x531f31=function(_0x3e993b){while(--_0x3e993b){_0x3f9097['push'](_0x3f9097['shift']());}};_0x531f31(++_0x4c5cec);}(_0x1d84,0x173));var _0x41d8=function(_0x2dadb9,_0x42cfe6){_0x2dadb9=_0x2dadb9-0x0;var _0x2f0097=_0x1d84[_0x2dadb9];return _0x2f0097;};'use strict';var EventEmitter=require('events');var DashboardItem=require(_0x41d8('0x0'))['db'][_0x41d8('0x1')];var DashboardItemEvents=new EventEmitter();DashboardItemEvents[_0x41d8('0x2')](0x0);var events={'afterCreate':'save','afterUpdate':_0x41d8('0x3'),'afterDestroy':_0x41d8('0x4')};function emitEvent(_0x50f51d){return function(_0x249093,_0x11ceef,_0x3ff15f){DashboardItemEvents[_0x41d8('0x5')](_0x50f51d+':'+_0x249093['id'],_0x249093);DashboardItemEvents[_0x41d8('0x5')](_0x50f51d,_0x249093);_0x3ff15f(null);};}for(var e in events){if(events[_0x41d8('0x6')](e)){var event=events[e];DashboardItem[_0x41d8('0x7')](e,emitEvent(event));}}module[_0x41d8('0x8')]=DashboardItemEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9751=['../../config/environment','./dashboardItem.attributes','define','DashboardItem','dashboard_items','lodash','util','api','moment','request-promise'];(function(_0x3b68ca,_0x27363c){var _0x454c29=function(_0x256e28){while(--_0x256e28){_0x3b68ca['push'](_0x3b68ca['shift']());}};_0x454c29(++_0x27363c);}(_0x9751,0x145));var _0x1975=function(_0x33ddea,_0x222f65){_0x33ddea=_0x33ddea-0x0;var _0x5e2f59=_0x9751[_0x33ddea];return _0x5e2f59;};'use strict';var _=require(_0x1975('0x0'));var util=require(_0x1975('0x1'));var logger=require('../../config/logger')(_0x1975('0x2'));var moment=require(_0x1975('0x3'));var BPromise=require('bluebird');var rp=require(_0x1975('0x4'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0x1975('0x5'));var attributes=require(_0x1975('0x6'));module['exports']=function(_0x58150d,_0x38e297){return _0x58150d[_0x1975('0x7')](_0x1975('0x8'),attributes,{'tableName':_0x1975('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x60e6=['DashboardItem','dashboard_items','lodash','util','moment','bluebird','request-promise','path','rimraf','../../config/environment','./dashboardItem.attributes','exports','define'];(function(_0x12f688,_0x585c25){var _0x59c3de=function(_0x4ac301){while(--_0x4ac301){_0x12f688['push'](_0x12f688['shift']());}};_0x59c3de(++_0x585c25);}(_0x60e6,0xd2));var _0x660e=function(_0x136619,_0x31c9b2){_0x136619=_0x136619-0x0;var _0x38c4a5=_0x60e6[_0x136619];return _0x38c4a5;};'use strict';var _=require(_0x660e('0x0'));var util=require(_0x660e('0x1'));var logger=require('../../config/logger')('api');var moment=require(_0x660e('0x2'));var BPromise=require(_0x660e('0x3'));var rp=require(_0x660e('0x4'));var fs=require('fs');var path=require(_0x660e('0x5'));var rimraf=require(_0x660e('0x6'));var config=require(_0x660e('0x7'));var attributes=require(_0x660e('0x8'));module[_0x660e('0x9')]=function(_0x9da18d,_0x4b393f){return _0x9da18d[_0x660e('0xa')](_0x660e('0xb'),attributes,{'tableName':_0x660e('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3c9f=['../../config/environment','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','./dashboardItem.socket','register','request','then','info','DashboardItem,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','lodash','util','moment','../../mysqldb','../../config/utils','../../config/logger'];(function(_0x54906e,_0x252c59){var _0xbf55c9=function(_0x39ec70){while(--_0x39ec70){_0x54906e['push'](_0x54906e['shift']());}};_0xbf55c9(++_0x252c59);}(_0x3c9f,0x9c));var _0xf3c9=function(_0x4f6543,_0x35b8a4){_0x4f6543=_0x4f6543-0x0;var _0x2af3cd=_0x3c9f[_0x4f6543];return _0x2af3cd;};'use strict';var _=require(_0xf3c9('0x0'));var util=require(_0xf3c9('0x1'));var moment=require(_0xf3c9('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0xf3c9('0x3'))['db'];var utils=require(_0xf3c9('0x4'));var logger=require(_0xf3c9('0x5'))('rpc');var config=require(_0xf3c9('0x6'));var jayson=require(_0xf3c9('0x7'));var client=jayson[_0xf3c9('0x8')][_0xf3c9('0x9')]({'port':0x232a});config[_0xf3c9('0xa')]=_[_0xf3c9('0xb')](config[_0xf3c9('0xa')],{'host':_0xf3c9('0xc'),'port':0x18eb});var socket=require(_0xf3c9('0xd'))(new Redis(config['redis']));require(_0xf3c9('0xe'))[_0xf3c9('0xf')](socket);function respondWithRpcPromise(_0x57e45b,_0x1b80ee,_0x5ac406){return new BPromise(function(_0x7b8df1,_0x1e75fd){return client[_0xf3c9('0x10')](_0x57e45b,_0x5ac406)[_0xf3c9('0x11')](function(_0x5613b8){logger[_0xf3c9('0x12')](_0xf3c9('0x13'),_0x1b80ee,_0xf3c9('0x14'));logger['debug']('DashboardItem,\x20%s,\x20%s,\x20%s',_0x1b80ee,'request\x20sent',JSON[_0xf3c9('0x15')](_0x5613b8));if(_0x5613b8[_0xf3c9('0x16')]){if(_0x5613b8[_0xf3c9('0x16')][_0xf3c9('0x17')]===0x1f4){logger['error']('DashboardItem,\x20%s,\x20%s',_0x1b80ee,_0x5613b8['error']['message']);return _0x1e75fd(_0x5613b8['error'][_0xf3c9('0x18')]);}logger[_0xf3c9('0x16')](_0xf3c9('0x13'),_0x1b80ee,_0x5613b8[_0xf3c9('0x16')][_0xf3c9('0x18')]);return _0x7b8df1(_0x5613b8[_0xf3c9('0x16')]['message']);}else{logger[_0xf3c9('0x12')](_0xf3c9('0x13'),_0x1b80ee,_0xf3c9('0x14'));_0x7b8df1(_0x5613b8[_0xf3c9('0x19')][_0xf3c9('0x18')]);}})[_0xf3c9('0x1a')](function(_0x598275){logger['error']('DashboardItem,\x20%s,\x20%s',_0x1b80ee,_0x598275);_0x1e75fd(_0x598275);});});}
\ No newline at end of file
+var _0x2607=['register','request','info','request\x20sent','debug','DashboardItem,\x20%s,\x20%s,\x20%s','stringify','error','code','DashboardItem,\x20%s,\x20%s','message','result','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','client','http','redis','defaults','./dashboardItem.socket'];(function(_0xd95342,_0xb75bf6){var _0x54d694=function(_0x1190c1){while(--_0x1190c1){_0xd95342['push'](_0xd95342['shift']());}};_0x54d694(++_0xb75bf6);}(_0x2607,0x151));var _0x7260=function(_0x51674a,_0x77ccff){_0x51674a=_0x51674a-0x0;var _0x13fca6=_0x2607[_0x51674a];return _0x13fca6;};'use strict';var _=require(_0x7260('0x0'));var util=require(_0x7260('0x1'));var moment=require(_0x7260('0x2'));var BPromise=require(_0x7260('0x3'));var rs=require(_0x7260('0x4'));var fs=require('fs');var Redis=require(_0x7260('0x5'));var db=require(_0x7260('0x6'))['db'];var utils=require('../../config/utils');var logger=require(_0x7260('0x7'))(_0x7260('0x8'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0x7260('0x9')][_0x7260('0xa')]({'port':0x232a});config[_0x7260('0xb')]=_[_0x7260('0xc')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x7260('0xb')]));require(_0x7260('0xd'))[_0x7260('0xe')](socket);function respondWithRpcPromise(_0x50ac4a,_0x111852,_0xcbcc18){return new BPromise(function(_0x4f26c8,_0x48fcac){return client[_0x7260('0xf')](_0x50ac4a,_0xcbcc18)['then'](function(_0x81a763){logger[_0x7260('0x10')]('DashboardItem,\x20%s,\x20%s',_0x111852,_0x7260('0x11'));logger[_0x7260('0x12')](_0x7260('0x13'),_0x111852,_0x7260('0x11'),JSON[_0x7260('0x14')](_0x81a763));if(_0x81a763[_0x7260('0x15')]){if(_0x81a763[_0x7260('0x15')][_0x7260('0x16')]===0x1f4){logger[_0x7260('0x15')](_0x7260('0x17'),_0x111852,_0x81a763[_0x7260('0x15')]['message']);return _0x48fcac(_0x81a763[_0x7260('0x15')][_0x7260('0x18')]);}logger[_0x7260('0x15')]('DashboardItem,\x20%s,\x20%s',_0x111852,_0x81a763[_0x7260('0x15')]['message']);return _0x4f26c8(_0x81a763['error']['message']);}else{logger['info'](_0x7260('0x17'),_0x111852,'request\x20sent');_0x4f26c8(_0x81a763[_0x7260('0x19')][_0x7260('0x18')]);}})[_0x7260('0x1a')](function(_0x596b4d){logger[_0x7260('0x15')]('DashboardItem,\x20%s,\x20%s',_0x111852,_0x596b4d);_0x48fcac(_0x596b4d);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x80c9=['length','dashboardItem:','./dashboardItem.events','save','remove','update','emit','removeListener'];(function(_0x4744b1,_0x1f53ed){var _0xa1e07=function(_0x3a1e89){while(--_0x3a1e89){_0x4744b1['push'](_0x4744b1['shift']());}};_0xa1e07(++_0x1f53ed);}(_0x80c9,0x16a));var _0x980c=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0x80c9[_0x14add3];return _0x4a174f;};'use strict';var DashboardItemEvents=require(_0x980c('0x0'));var events=[_0x980c('0x1'),_0x980c('0x2'),_0x980c('0x3')];function createListener(_0x302938,_0x55fad8){return function(_0x305e66){_0x55fad8[_0x980c('0x4')](_0x302938,_0x305e66);};}function removeListener(_0x27a832,_0x228077){return function(){DashboardItemEvents[_0x980c('0x5')](_0x27a832,_0x228077);};}exports['register']=function(_0x449695){for(var _0x2e12f3=0x0,_0x3371fb=events[_0x980c('0x6')];_0x2e12f3<_0x3371fb;_0x2e12f3++){var _0x5cd6b0=events[_0x2e12f3];var _0x1da6ca=createListener(_0x980c('0x7')+_0x5cd6b0,_0x449695);DashboardItemEvents['on'](_0x5cd6b0,_0x1da6ca);}};
\ No newline at end of file
+var _0x95d2=['removeListener','register','length','dashboardItem:','./dashboardItem.events','remove','update','emit'];(function(_0x2aa503,_0x3cb762){var _0x481b2f=function(_0x113f50){while(--_0x113f50){_0x2aa503['push'](_0x2aa503['shift']());}};_0x481b2f(++_0x3cb762);}(_0x95d2,0x6c));var _0x295d=function(_0x46698a,_0x8de1e4){_0x46698a=_0x46698a-0x0;var _0x356db0=_0x95d2[_0x46698a];return _0x356db0;};'use strict';var DashboardItemEvents=require(_0x295d('0x0'));var events=['save',_0x295d('0x1'),_0x295d('0x2')];function createListener(_0x1d8005,_0x51fede){return function(_0x30dff4){_0x51fede[_0x295d('0x3')](_0x1d8005,_0x30dff4);};}function removeListener(_0x1a4245,_0x16e4c9){return function(){DashboardItemEvents[_0x295d('0x4')](_0x1a4245,_0x16e4c9);};}exports[_0x295d('0x5')]=function(_0x4ccac4){for(var _0xb69456=0x0,_0x19e270=events[_0x295d('0x6')];_0xb69456<_0x19e270;_0xb69456++){var _0x42a5c6=events[_0xb69456];var _0x35a40d=createListener(_0x295d('0x7')+_0x42a5c6,_0x4ccac4);DashboardItemEvents['on'](_0x42a5c6,_0x35a40d);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfb67=['multer','util','path','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./dashboardItem.controller','get','/:id','show','post','isAuthenticated','create','put','update','exports'];(function(_0x3ab51d,_0x2fa01d){var _0x29a04e=function(_0x7807b0){while(--_0x7807b0){_0x3ab51d['push'](_0x3ab51d['shift']());}};_0x29a04e(++_0x2fa01d);}(_0xfb67,0x7e));var _0x7fb6=function(_0x2ded01,_0x612407){_0x2ded01=_0x2ded01-0x0;var _0x55213f=_0xfb67[_0x2ded01];return _0x55213f;};'use strict';var multer=require(_0x7fb6('0x0'));var util=require(_0x7fb6('0x1'));var path=require(_0x7fb6('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x7fb6('0x3')]();var fs_extra=require(_0x7fb6('0x4'));var auth=require(_0x7fb6('0x5'));var interaction=require(_0x7fb6('0x6'));var config=require(_0x7fb6('0x7'));var controller=require(_0x7fb6('0x8'));router[_0x7fb6('0x9')](_0x7fb6('0xa'),auth['isAuthenticated'](),controller[_0x7fb6('0xb')]);router[_0x7fb6('0xc')]('/',auth[_0x7fb6('0xd')](),controller[_0x7fb6('0xe')]);router[_0x7fb6('0xf')](_0x7fb6('0xa'),auth['isAuthenticated'](),controller[_0x7fb6('0x10')]);router['delete'](_0x7fb6('0xa'),auth[_0x7fb6('0xd')](),controller['destroy']);module[_0x7fb6('0x11')]=router;
\ No newline at end of file
+var _0xded5=['post','isAuthenticated','create','put','/:id','update','destroy','multer','util','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','show'];(function(_0x57b54c,_0x54ce0d){var _0x59cc19=function(_0xa33bc6){while(--_0xa33bc6){_0x57b54c['push'](_0x57b54c['shift']());}};_0x59cc19(++_0x54ce0d);}(_0xded5,0x17d));var _0x5ded=function(_0x2d7e54,_0xd91b9c){_0x2d7e54=_0x2d7e54-0x0;var _0x389c86=_0xded5[_0x2d7e54];return _0x389c86;};'use strict';var multer=require(_0x5ded('0x0'));var util=require(_0x5ded('0x1'));var path=require(_0x5ded('0x2'));var timeout=require(_0x5ded('0x3'));var express=require('express');var router=express[_0x5ded('0x4')]();var fs_extra=require(_0x5ded('0x5'));var auth=require(_0x5ded('0x6'));var interaction=require(_0x5ded('0x7'));var config=require(_0x5ded('0x8'));var controller=require('./dashboardItem.controller');router['get']('/:id',auth['isAuthenticated'](),controller[_0x5ded('0x9')]);router[_0x5ded('0xa')]('/',auth[_0x5ded('0xb')](),controller[_0x5ded('0xc')]);router[_0x5ded('0xd')](_0x5ded('0xe'),auth[_0x5ded('0xb')](),controller[_0x5ded('0xf')]);router['delete'](_0x5ded('0xe'),auth[_0x5ded('0xb')](),controller[_0x5ded('0x10')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x844b=['exports','STRING','ENUM','third','first','sequelize'];(function(_0x26b6e8,_0x1bdeb2){var _0x3cf603=function(_0x777f35){while(--_0x777f35){_0x26b6e8['push'](_0x26b6e8['shift']());}};_0x3cf603(++_0x1bdeb2);}(_0x844b,0xf5));var _0xb844=function(_0x45161c,_0x5494fc){_0x45161c=_0x45161c-0x0;var _0x186581=_0x844b[_0x45161c];return _0x186581;};'use strict';var Sequelize=require(_0xb844('0x0'));module[_0xb844('0x1')]={'name':{'type':Sequelize[_0xb844('0x2')],'allowNull':![]},'level':{'type':Sequelize[_0xb844('0x3')]('first','second',_0xb844('0x4')),'allowNull':![],'defaultValue':_0xb844('0x5')},'description':{'type':Sequelize[_0xb844('0x2')]}};
\ No newline at end of file
+var _0x857a=['second','third','sequelize','STRING','ENUM','first'];(function(_0x4bd633,_0x9cfc2f){var _0x11a18d=function(_0x5fc3b2){while(--_0x5fc3b2){_0x4bd633['push'](_0x4bd633['shift']());}};_0x11a18d(++_0x9cfc2f);}(_0x857a,0x110));var _0xa857=function(_0x568d79,_0x344656){_0x568d79=_0x568d79-0x0;var _0x5613ea=_0x857a[_0x568d79];return _0x5613ea;};'use strict';var Sequelize=require(_0xa857('0x0'));module['exports']={'name':{'type':Sequelize[_0xa857('0x1')],'allowNull':![]},'level':{'type':Sequelize[_0xa857('0x2')](_0xa857('0x3'),_0xa857('0x4'),_0xa857('0x5')),'allowNull':![],'defaultValue':_0xa857('0x3')},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3336=['request-promise','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/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','update','then','destroy','Dispositions','UserProfileResource','end','error','name','send','index','map','Disposition','rawAttributes','fieldName','type','key','query','filters','intersection','attributes','fields','length','model','nolimit','order','sort','where','pick','VIRTUAL','filter','merge','includeAll','include','rows','show','params','keys','options','find','catch','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','fast-json-patch'];(function(_0x403c8b,_0x335be3){var _0x215799=function(_0x1eaed8){while(--_0x1eaed8){_0x403c8b['push'](_0x403c8b['shift']());}};_0x215799(++_0x335be3);}(_0x3336,0x106));var _0x6333=function(_0x20aae1,_0x51efd4){_0x20aae1=_0x20aae1-0x0;var _0x510601=_0x3336[_0x20aae1];return _0x510601;};'use strict';var emlformat=require(_0x6333('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x6333('0x1'));var rp=require(_0x6333('0x2'));var moment=require(_0x6333('0x3'));var BPromise=require(_0x6333('0x4'));var Mustache=require(_0x6333('0x5'));var util=require(_0x6333('0x6'));var path=require('path');var sox=require(_0x6333('0x7'));var csv=require(_0x6333('0x8'));var ejs=require(_0x6333('0x9'));var fs=require('fs');var fs_extra=require(_0x6333('0xa'));var _=require(_0x6333('0xb'));var squel=require(_0x6333('0xc'));var crypto=require(_0x6333('0xd'));var jsforce=require(_0x6333('0xe'));var deskjs=require(_0x6333('0xf'));var toCsv=require('to-csv');var querystring=require(_0x6333('0x10'));var Papa=require(_0x6333('0x11'));var Redis=require(_0x6333('0x12'));var authService=require(_0x6333('0x13'));var qs=require(_0x6333('0x14'));var as=require(_0x6333('0x15'));var hardwareService=require(_0x6333('0x16'));var logger=require(_0x6333('0x17'))(_0x6333('0x18'));var utils=require('../../config/utils');var config=require(_0x6333('0x19'));var licenseUtil=require(_0x6333('0x1a'));var db=require(_0x6333('0x1b'))['db'];function respondWithStatusCode(_0x314587,_0x2415b7){_0x2415b7=_0x2415b7||0xcc;return function(_0x4a28a2){if(_0x4a28a2){return _0x314587[_0x6333('0x1c')](_0x2415b7);}return _0x314587[_0x6333('0x1d')](_0x2415b7)['end']();};}function respondWithResult(_0x6adac5,_0x59ccf8){_0x59ccf8=_0x59ccf8||0xc8;return function(_0x455642){if(_0x455642){return _0x6adac5[_0x6333('0x1d')](_0x59ccf8)[_0x6333('0x1e')](_0x455642);}};}function respondWithFilteredResult(_0x16022c,_0x28ea54){return function(_0x364399){if(_0x364399){var _0x20b91b=typeof _0x28ea54[_0x6333('0x1f')]===_0x6333('0x20')&&typeof _0x28ea54[_0x6333('0x21')]===_0x6333('0x20');var _0x3ecce3=_0x364399[_0x6333('0x22')];var _0x20047e=_0x20b91b?0x0:_0x28ea54['offset'];var _0x5dea7=_0x20b91b?_0x364399[_0x6333('0x22')]:_0x28ea54[_0x6333('0x1f')]+_0x28ea54[_0x6333('0x21')];var _0x1a4da9;if(_0x5dea7>=_0x3ecce3){_0x5dea7=_0x3ecce3;_0x1a4da9=0xc8;}else{_0x1a4da9=0xce;}_0x16022c['status'](_0x1a4da9);return _0x16022c[_0x6333('0x23')](_0x6333('0x24'),_0x20047e+'-'+_0x5dea7+'/'+_0x3ecce3)[_0x6333('0x1e')](_0x364399);}return null;};}function patchUpdates(_0x4fe288){return function(_0x150e04){try{jsonpatch[_0x6333('0x25')](_0x150e04,_0x4fe288,!![]);}catch(_0x328a82){return BPromise['reject'](_0x328a82);}return _0x150e04['save']();};}function saveUpdates(_0x11c95a,_0x465cfa){return function(_0x598be9){if(_0x598be9){return _0x598be9[_0x6333('0x26')](_0x11c95a)[_0x6333('0x27')](function(_0x4de486){return _0x4de486;});}return null;};}function removeEntity(_0x2188e3,_0x3f73c2){return function(_0x1f9162){if(_0x1f9162){return _0x1f9162[_0x6333('0x28')]()[_0x6333('0x27')](function(){var _0x3d04a5=_0x1f9162['get']({'plain':!![]});var _0x3310a9=_0x6333('0x29');return db[_0x6333('0x2a')][_0x6333('0x28')]({'where':{'type':_0x3310a9,'resourceId':_0x3d04a5['id']}})[_0x6333('0x27')](function(){return _0x1f9162;});})[_0x6333('0x27')](function(){_0x2188e3[_0x6333('0x1d')](0xcc)[_0x6333('0x2b')]();});}};}function handleEntityNotFound(_0x4e6766,_0x2f1164){return function(_0x328a06){if(!_0x328a06){_0x4e6766[_0x6333('0x1c')](0x194);}return _0x328a06;};}function handleError(_0x16fb18,_0x522ff2){_0x522ff2=_0x522ff2||0x1f4;return function(_0x45778e){logger[_0x6333('0x2c')](_0x45778e['stack']);if(_0x45778e[_0x6333('0x2d')]){delete _0x45778e[_0x6333('0x2d')];}_0x16fb18[_0x6333('0x1d')](_0x522ff2)[_0x6333('0x2e')](_0x45778e);};}exports[_0x6333('0x2f')]=function(_0x3a2372,_0x2f0ae2){var _0x14ac84={},_0x83969={},_0x1a842b={'count':0x0,'rows':[]};var _0x3bdc15=_[_0x6333('0x30')](db[_0x6333('0x31')][_0x6333('0x32')],function(_0x3bf58b){return{'name':_0x3bf58b[_0x6333('0x33')],'type':_0x3bf58b[_0x6333('0x34')][_0x6333('0x35')]};});_0x83969['model']=_[_0x6333('0x30')](_0x3bdc15,'name');_0x83969['query']=_['keys'](_0x3a2372[_0x6333('0x36')]);_0x83969[_0x6333('0x37')]=_[_0x6333('0x38')](_0x83969['model'],_0x83969[_0x6333('0x36')]);_0x14ac84[_0x6333('0x39')]=_[_0x6333('0x38')](_0x83969['model'],qs[_0x6333('0x3a')](_0x3a2372[_0x6333('0x36')][_0x6333('0x3a')]));_0x14ac84['attributes']=_0x14ac84[_0x6333('0x39')][_0x6333('0x3b')]?_0x14ac84[_0x6333('0x39')]:_0x83969[_0x6333('0x3c')];if(!_0x3a2372[_0x6333('0x36')]['hasOwnProperty'](_0x6333('0x3d'))){_0x14ac84[_0x6333('0x21')]=qs[_0x6333('0x21')](_0x3a2372[_0x6333('0x36')]['limit']);_0x14ac84[_0x6333('0x1f')]=qs[_0x6333('0x1f')](_0x3a2372['query'][_0x6333('0x1f')]);}_0x14ac84[_0x6333('0x3e')]=qs['sort'](_0x3a2372[_0x6333('0x36')][_0x6333('0x3f')]);_0x14ac84[_0x6333('0x40')]=qs['filters'](_[_0x6333('0x41')](_0x3a2372[_0x6333('0x36')],_0x83969[_0x6333('0x37')]),_0x3bdc15);if(_0x3a2372[_0x6333('0x36')]['filter']){_0x14ac84['where']=_['merge'](_0x14ac84[_0x6333('0x40')],{'$or':_[_0x6333('0x30')](_0x3bdc15,function(_0x2f833c){if(_0x2f833c[_0x6333('0x34')]!==_0x6333('0x42')){var _0x1d3a24={};_0x1d3a24[_0x2f833c['name']]={'$like':'%'+_0x3a2372[_0x6333('0x36')][_0x6333('0x43')]+'%'};return _0x1d3a24;}})});}_0x14ac84=_[_0x6333('0x44')]({},_0x14ac84,_0x3a2372['options']);var _0x58a3d3={'where':_0x14ac84['where']};return db[_0x6333('0x31')][_0x6333('0x22')](_0x58a3d3)[_0x6333('0x27')](function(_0x56901d){_0x1a842b[_0x6333('0x22')]=_0x56901d;if(_0x3a2372[_0x6333('0x36')][_0x6333('0x45')]){_0x14ac84[_0x6333('0x46')]=[{'all':!![]}];}return db[_0x6333('0x31')]['findAll'](_0x14ac84);})['then'](function(_0x181ea8){_0x1a842b[_0x6333('0x47')]=_0x181ea8;return _0x1a842b;})[_0x6333('0x27')](respondWithFilteredResult(_0x2f0ae2,_0x14ac84))['catch'](handleError(_0x2f0ae2,null));};exports[_0x6333('0x48')]=function(_0x4f4336,_0x92dbb6){var _0x404c05={'raw':!![],'where':{'id':_0x4f4336[_0x6333('0x49')]['id']}},_0x527feb={};_0x527feb[_0x6333('0x3c')]=_[_0x6333('0x4a')](db[_0x6333('0x31')][_0x6333('0x32')]);_0x527feb[_0x6333('0x36')]=_[_0x6333('0x4a')](_0x4f4336[_0x6333('0x36')]);_0x527feb[_0x6333('0x37')]=_['intersection'](_0x527feb[_0x6333('0x3c')],_0x527feb['query']);_0x404c05['attributes']=_[_0x6333('0x38')](_0x527feb[_0x6333('0x3c')],qs['fields'](_0x4f4336['query'][_0x6333('0x3a')]));_0x404c05[_0x6333('0x39')]=_0x404c05[_0x6333('0x39')][_0x6333('0x3b')]?_0x404c05[_0x6333('0x39')]:_0x527feb[_0x6333('0x3c')];if(_0x4f4336[_0x6333('0x36')][_0x6333('0x45')]){_0x404c05[_0x6333('0x46')]=[{'all':!![]}];}_0x404c05=_[_0x6333('0x44')]({},_0x404c05,_0x4f4336[_0x6333('0x4b')]);return db[_0x6333('0x31')][_0x6333('0x4c')](_0x404c05)[_0x6333('0x27')](handleEntityNotFound(_0x92dbb6,null))[_0x6333('0x27')](respondWithResult(_0x92dbb6,null))[_0x6333('0x4d')](handleError(_0x92dbb6,null));};exports[_0x6333('0x4e')]=function(_0x3aff67,_0x48fcad){return db[_0x6333('0x31')][_0x6333('0x4e')](_0x3aff67[_0x6333('0x4f')],{})[_0x6333('0x27')](function(_0x2f456b){var _0x2f434e=_0x3aff67[_0x6333('0x50')][_0x6333('0x51')]({'plain':!![]});if(!_0x2f434e)throw new Error(_0x6333('0x52'));if(_0x2f434e[_0x6333('0x53')]===_0x6333('0x50')){var _0x8e61d5=_0x2f456b['get']({'plain':!![]});var _0xfbc1b2='Dispositions';return db[_0x6333('0x54')][_0x6333('0x4c')]({'where':{'name':_0xfbc1b2,'userProfileId':_0x2f434e[_0x6333('0x55')]},'raw':!![]})['then'](function(_0x56d9c1){if(_0x56d9c1&&_0x56d9c1[_0x6333('0x56')]===0x0){return db[_0x6333('0x2a')][_0x6333('0x4e')]({'name':_0x8e61d5[_0x6333('0x2d')],'resourceId':_0x8e61d5['id'],'type':_0x56d9c1['name'],'sectionId':_0x56d9c1['id']},{})['then'](function(){return _0x2f456b;});}else{return _0x2f456b;}})[_0x6333('0x4d')](function(_0x155b35){logger[_0x6333('0x2c')](_0x6333('0x57'),_0x155b35);throw _0x155b35;});}return _0x2f456b;})[_0x6333('0x27')](respondWithResult(_0x48fcad,0xc9))['catch'](handleError(_0x48fcad,null));};exports[_0x6333('0x26')]=function(_0x2b4a44,_0x4f28d8){if(_0x2b4a44[_0x6333('0x4f')]['id']){delete _0x2b4a44[_0x6333('0x4f')]['id'];}return db[_0x6333('0x31')][_0x6333('0x4c')]({'where':{'id':_0x2b4a44[_0x6333('0x49')]['id']}})[_0x6333('0x27')](handleEntityNotFound(_0x4f28d8,null))['then'](saveUpdates(_0x2b4a44[_0x6333('0x4f')],null))['then'](respondWithResult(_0x4f28d8,null))['catch'](handleError(_0x4f28d8,null));};exports[_0x6333('0x28')]=function(_0x24fd60,_0x428de3){return db['Disposition'][_0x6333('0x4c')]({'where':{'id':_0x24fd60[_0x6333('0x49')]['id']}})[_0x6333('0x27')](handleEntityNotFound(_0x428de3,null))['then'](removeEntity(_0x428de3,null))['catch'](handleError(_0x428de3,null));};
\ No newline at end of file
+var _0x3974=['options','includeAll','include','findAll','rows','catch','show','params','keys','rawAttributes','length','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','get','UserProfileSection','userProfileId','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','rimraf','zip-dir','moment','bluebird','mustache','util','path','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','json','undefined','limit','count','offset','set','Content-Range','apply','update','then','destroy','Dispositions','UserProfileResource','stack','name','index','Disposition','type','key','model','map','query','filters','attributes','intersection','fields','hasOwnProperty','order','sort','pick','filter','where','VIRTUAL','merge'];(function(_0x2a4703,_0xb075bc){var _0x2c68af=function(_0x4ff004){while(--_0x4ff004){_0x2a4703['push'](_0x2a4703['shift']());}};_0x2c68af(++_0xb075bc);}(_0x3974,0xbc));var _0x4397=function(_0x353bc5,_0x41e229){_0x353bc5=_0x353bc5-0x0;var _0x166fef=_0x3974[_0x353bc5];return _0x166fef;};'use strict';var emlformat=require(_0x4397('0x0'));var rimraf=require(_0x4397('0x1'));var zipdir=require(_0x4397('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x4397('0x3'));var BPromise=require(_0x4397('0x4'));var Mustache=require(_0x4397('0x5'));var util=require(_0x4397('0x6'));var path=require(_0x4397('0x7'));var sox=require('sox');var csv=require(_0x4397('0x8'));var ejs=require(_0x4397('0x9'));var fs=require('fs');var fs_extra=require(_0x4397('0xa'));var _=require(_0x4397('0xb'));var squel=require('squel');var crypto=require(_0x4397('0xc'));var jsforce=require(_0x4397('0xd'));var deskjs=require(_0x4397('0xe'));var toCsv=require(_0x4397('0x8'));var querystring=require('querystring');var Papa=require(_0x4397('0xf'));var Redis=require(_0x4397('0x10'));var authService=require(_0x4397('0x11'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x4397('0x12'));var logger=require(_0x4397('0x13'))(_0x4397('0x14'));var utils=require('../../config/utils');var config=require(_0x4397('0x15'));var licenseUtil=require(_0x4397('0x16'));var db=require(_0x4397('0x17'))['db'];function respondWithStatusCode(_0x50b80d,_0x1354f5){_0x1354f5=_0x1354f5||0xcc;return function(_0x35f6ba){if(_0x35f6ba){return _0x50b80d[_0x4397('0x18')](_0x1354f5);}return _0x50b80d['status'](_0x1354f5)[_0x4397('0x19')]();};}function respondWithResult(_0x541bf0,_0x3b7b4a){_0x3b7b4a=_0x3b7b4a||0xc8;return function(_0x5f5899){if(_0x5f5899){return _0x541bf0[_0x4397('0x1a')](_0x3b7b4a)[_0x4397('0x1b')](_0x5f5899);}};}function respondWithFilteredResult(_0x3b6dfa,_0x1aa61f){return function(_0x172ce2){if(_0x172ce2){var _0x423224=typeof _0x1aa61f['offset']===_0x4397('0x1c')&&typeof _0x1aa61f[_0x4397('0x1d')]===_0x4397('0x1c');var _0x27c307=_0x172ce2[_0x4397('0x1e')];var _0xdd7dab=_0x423224?0x0:_0x1aa61f[_0x4397('0x1f')];var _0x24d400=_0x423224?_0x172ce2[_0x4397('0x1e')]:_0x1aa61f['offset']+_0x1aa61f['limit'];var _0xff27cd;if(_0x24d400>=_0x27c307){_0x24d400=_0x27c307;_0xff27cd=0xc8;}else{_0xff27cd=0xce;}_0x3b6dfa[_0x4397('0x1a')](_0xff27cd);return _0x3b6dfa[_0x4397('0x20')](_0x4397('0x21'),_0xdd7dab+'-'+_0x24d400+'/'+_0x27c307)['json'](_0x172ce2);}return null;};}function patchUpdates(_0x523002){return function(_0x64406d){try{jsonpatch[_0x4397('0x22')](_0x64406d,_0x523002,!![]);}catch(_0x52bf64){return BPromise['reject'](_0x52bf64);}return _0x64406d['save']();};}function saveUpdates(_0x2cc426,_0x5b33e9){return function(_0x4f60f1){if(_0x4f60f1){return _0x4f60f1[_0x4397('0x23')](_0x2cc426)[_0x4397('0x24')](function(_0x53d6d3){return _0x53d6d3;});}return null;};}function removeEntity(_0x2797d2,_0x4d6de6){return function(_0x2655f1){if(_0x2655f1){return _0x2655f1[_0x4397('0x25')]()['then'](function(){var _0x514472=_0x2655f1['get']({'plain':!![]});var _0x3fe57d=_0x4397('0x26');return db[_0x4397('0x27')][_0x4397('0x25')]({'where':{'type':_0x3fe57d,'resourceId':_0x514472['id']}})[_0x4397('0x24')](function(){return _0x2655f1;});})[_0x4397('0x24')](function(){_0x2797d2[_0x4397('0x1a')](0xcc)[_0x4397('0x19')]();});}};}function handleEntityNotFound(_0x47161d,_0x1c224b){return function(_0x411522){if(!_0x411522){_0x47161d[_0x4397('0x18')](0x194);}return _0x411522;};}function handleError(_0x73cad0,_0xc76066){_0xc76066=_0xc76066||0x1f4;return function(_0x550b0d){logger['error'](_0x550b0d[_0x4397('0x28')]);if(_0x550b0d['name']){delete _0x550b0d[_0x4397('0x29')];}_0x73cad0[_0x4397('0x1a')](_0xc76066)['send'](_0x550b0d);};}exports[_0x4397('0x2a')]=function(_0x4477fa,_0x3492f4){var _0x5c159f={},_0x132d2e={},_0x268263={'count':0x0,'rows':[]};var _0x4302a5=_['map'](db[_0x4397('0x2b')]['rawAttributes'],function(_0x234025){return{'name':_0x234025['fieldName'],'type':_0x234025[_0x4397('0x2c')][_0x4397('0x2d')]};});_0x132d2e[_0x4397('0x2e')]=_[_0x4397('0x2f')](_0x4302a5,_0x4397('0x29'));_0x132d2e[_0x4397('0x30')]=_['keys'](_0x4477fa[_0x4397('0x30')]);_0x132d2e[_0x4397('0x31')]=_['intersection'](_0x132d2e['model'],_0x132d2e['query']);_0x5c159f[_0x4397('0x32')]=_[_0x4397('0x33')](_0x132d2e[_0x4397('0x2e')],qs[_0x4397('0x34')](_0x4477fa[_0x4397('0x30')][_0x4397('0x34')]));_0x5c159f[_0x4397('0x32')]=_0x5c159f['attributes']['length']?_0x5c159f[_0x4397('0x32')]:_0x132d2e[_0x4397('0x2e')];if(!_0x4477fa[_0x4397('0x30')][_0x4397('0x35')]('nolimit')){_0x5c159f[_0x4397('0x1d')]=qs[_0x4397('0x1d')](_0x4477fa[_0x4397('0x30')][_0x4397('0x1d')]);_0x5c159f['offset']=qs[_0x4397('0x1f')](_0x4477fa[_0x4397('0x30')]['offset']);}_0x5c159f[_0x4397('0x36')]=qs[_0x4397('0x37')](_0x4477fa[_0x4397('0x30')]['sort']);_0x5c159f['where']=qs[_0x4397('0x31')](_[_0x4397('0x38')](_0x4477fa[_0x4397('0x30')],_0x132d2e[_0x4397('0x31')]),_0x4302a5);if(_0x4477fa[_0x4397('0x30')][_0x4397('0x39')]){_0x5c159f['where']=_['merge'](_0x5c159f[_0x4397('0x3a')],{'$or':_['map'](_0x4302a5,function(_0x40aad7){if(_0x40aad7[_0x4397('0x2c')]!==_0x4397('0x3b')){var _0x3d89da={};_0x3d89da[_0x40aad7[_0x4397('0x29')]]={'$like':'%'+_0x4477fa[_0x4397('0x30')]['filter']+'%'};return _0x3d89da;}})});}_0x5c159f=_[_0x4397('0x3c')]({},_0x5c159f,_0x4477fa[_0x4397('0x3d')]);var _0x52cc0a={'where':_0x5c159f[_0x4397('0x3a')]};return db[_0x4397('0x2b')][_0x4397('0x1e')](_0x52cc0a)['then'](function(_0x5aa05a){_0x268263[_0x4397('0x1e')]=_0x5aa05a;if(_0x4477fa['query'][_0x4397('0x3e')]){_0x5c159f[_0x4397('0x3f')]=[{'all':!![]}];}return db[_0x4397('0x2b')][_0x4397('0x40')](_0x5c159f);})['then'](function(_0x102da9){_0x268263[_0x4397('0x41')]=_0x102da9;return _0x268263;})[_0x4397('0x24')](respondWithFilteredResult(_0x3492f4,_0x5c159f))[_0x4397('0x42')](handleError(_0x3492f4,null));};exports[_0x4397('0x43')]=function(_0x3bcd6c,_0x5aeb63){var _0x138120={'raw':!![],'where':{'id':_0x3bcd6c[_0x4397('0x44')]['id']}},_0x17b97a={};_0x17b97a['model']=_[_0x4397('0x45')](db[_0x4397('0x2b')][_0x4397('0x46')]);_0x17b97a[_0x4397('0x30')]=_[_0x4397('0x45')](_0x3bcd6c[_0x4397('0x30')]);_0x17b97a[_0x4397('0x31')]=_['intersection'](_0x17b97a[_0x4397('0x2e')],_0x17b97a[_0x4397('0x30')]);_0x138120[_0x4397('0x32')]=_['intersection'](_0x17b97a[_0x4397('0x2e')],qs[_0x4397('0x34')](_0x3bcd6c[_0x4397('0x30')][_0x4397('0x34')]));_0x138120[_0x4397('0x32')]=_0x138120[_0x4397('0x32')][_0x4397('0x47')]?_0x138120[_0x4397('0x32')]:_0x17b97a[_0x4397('0x2e')];if(_0x3bcd6c[_0x4397('0x30')]['includeAll']){_0x138120['include']=[{'all':!![]}];}_0x138120=_[_0x4397('0x3c')]({},_0x138120,_0x3bcd6c[_0x4397('0x3d')]);return db[_0x4397('0x2b')][_0x4397('0x48')](_0x138120)[_0x4397('0x24')](handleEntityNotFound(_0x5aeb63,null))[_0x4397('0x24')](respondWithResult(_0x5aeb63,null))['catch'](handleError(_0x5aeb63,null));};exports[_0x4397('0x49')]=function(_0x2dc479,_0x5d095a){return db['Disposition'][_0x4397('0x49')](_0x2dc479[_0x4397('0x4a')],{})[_0x4397('0x24')](function(_0x4a4d19){var _0x20f4be=_0x2dc479[_0x4397('0x4b')]['get']({'plain':!![]});if(!_0x20f4be)throw new Error(_0x4397('0x4c'));if(_0x20f4be['role']===_0x4397('0x4b')){var _0x4ad473=_0x4a4d19[_0x4397('0x4d')]({'plain':!![]});var _0x139f3c=_0x4397('0x26');return db[_0x4397('0x4e')][_0x4397('0x48')]({'where':{'name':_0x139f3c,'userProfileId':_0x20f4be[_0x4397('0x4f')]},'raw':!![]})['then'](function(_0x40e6e9){if(_0x40e6e9&&_0x40e6e9[_0x4397('0x50')]===0x0){return db[_0x4397('0x27')][_0x4397('0x49')]({'name':_0x4ad473[_0x4397('0x29')],'resourceId':_0x4ad473['id'],'type':_0x40e6e9['name'],'sectionId':_0x40e6e9['id']},{})[_0x4397('0x24')](function(){return _0x4a4d19;});}else{return _0x4a4d19;}})[_0x4397('0x42')](function(_0x4034b5){logger[_0x4397('0x51')](_0x4397('0x52'),_0x4034b5);throw _0x4034b5;});}return _0x4a4d19;})[_0x4397('0x24')](respondWithResult(_0x5d095a,0xc9))[_0x4397('0x42')](handleError(_0x5d095a,null));};exports['update']=function(_0x4f5eff,_0x237d3c){if(_0x4f5eff[_0x4397('0x4a')]['id']){delete _0x4f5eff[_0x4397('0x4a')]['id'];}return db[_0x4397('0x2b')][_0x4397('0x48')]({'where':{'id':_0x4f5eff[_0x4397('0x44')]['id']}})[_0x4397('0x24')](handleEntityNotFound(_0x237d3c,null))[_0x4397('0x24')](saveUpdates(_0x4f5eff[_0x4397('0x4a')],null))['then'](respondWithResult(_0x237d3c,null))['catch'](handleError(_0x237d3c,null));};exports['destroy']=function(_0xa391b4,_0xe3e3){return db[_0x4397('0x2b')][_0x4397('0x48')]({'where':{'id':_0xa391b4[_0x4397('0x44')]['id']}})[_0x4397('0x24')](handleEntityNotFound(_0xe3e3,null))['then'](removeEntity(_0xe3e3,null))[_0x4397('0x42')](handleError(_0xe3e3,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x657c=['rimraf','../../config/environment','./disposition.attributes','exports','define','Disposition','name_voice','name','name_chat','name_mail','MailAccountId','name_sms','SmsAccountId','name_fax','FaxAccountId','name_openchannel','OpenchannelAccountId','name_whatsapp','WhatsappAccountId','lodash','util','../../config/logger','moment','bluebird','request-promise','path'];(function(_0x4470c0,_0x5b9cd1){var _0x2c079a=function(_0x1a91c5){while(--_0x1a91c5){_0x4470c0['push'](_0x4470c0['shift']());}};_0x2c079a(++_0x5b9cd1);}(_0x657c,0x14b));var _0xc657=function(_0x5890ed,_0x5eec7c){_0x5890ed=_0x5890ed-0x0;var _0x49ef9b=_0x657c[_0x5890ed];return _0x49ef9b;};'use strict';var _=require(_0xc657('0x0'));var util=require(_0xc657('0x1'));var logger=require(_0xc657('0x2'))('api');var moment=require(_0xc657('0x3'));var BPromise=require(_0xc657('0x4'));var rp=require(_0xc657('0x5'));var fs=require('fs');var path=require(_0xc657('0x6'));var rimraf=require(_0xc657('0x7'));var config=require(_0xc657('0x8'));var attributes=require(_0xc657('0x9'));module[_0xc657('0xa')]=function(_0x299c9b,_0x4c4694){return _0x299c9b[_0xc657('0xb')](_0xc657('0xc'),attributes,{'tableName':'tools_dispositions','paranoid':![],'indexes':[{'unique':!![],'name':_0xc657('0xd'),'fields':[_0xc657('0xe'),'ListId']},{'unique':!![],'name':_0xc657('0xf'),'fields':['name','ChatWebsiteId']},{'unique':!![],'name':_0xc657('0x10'),'fields':[_0xc657('0xe'),_0xc657('0x11')]},{'unique':!![],'name':_0xc657('0x12'),'fields':['name',_0xc657('0x13')]},{'unique':!![],'name':_0xc657('0x14'),'fields':[_0xc657('0xe'),_0xc657('0x15')]},{'unique':!![],'name':_0xc657('0x16'),'fields':[_0xc657('0xe'),_0xc657('0x17')]},{'unique':!![],'name':_0xc657('0x18'),'fields':[_0xc657('0xe'),_0xc657('0x19')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x380a=['name_openchannel','OpenchannelAccountId','WhatsappAccountId','lodash','util','api','moment','bluebird','request-promise','rimraf','./disposition.attributes','define','tools_dispositions','name','ListId','name_chat','name_mail','name_sms','SmsAccountId','name_fax'];(function(_0x2d7f0e,_0x3e6fbd){var _0x110b07=function(_0x557b00){while(--_0x557b00){_0x2d7f0e['push'](_0x2d7f0e['shift']());}};_0x110b07(++_0x3e6fbd);}(_0x380a,0x1e3));var _0xa380=function(_0x3be82c,_0x3307d7){_0x3be82c=_0x3be82c-0x0;var _0x40d25a=_0x380a[_0x3be82c];return _0x40d25a;};'use strict';var _=require(_0xa380('0x0'));var util=require(_0xa380('0x1'));var logger=require('../../config/logger')(_0xa380('0x2'));var moment=require(_0xa380('0x3'));var BPromise=require(_0xa380('0x4'));var rp=require(_0xa380('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0xa380('0x6'));var config=require('../../config/environment');var attributes=require(_0xa380('0x7'));module['exports']=function(_0x13232e,_0xeaff5b){return _0x13232e[_0xa380('0x8')]('Disposition',attributes,{'tableName':_0xa380('0x9'),'paranoid':![],'indexes':[{'unique':!![],'name':'name_voice','fields':[_0xa380('0xa'),_0xa380('0xb')]},{'unique':!![],'name':_0xa380('0xc'),'fields':[_0xa380('0xa'),'ChatWebsiteId']},{'unique':!![],'name':_0xa380('0xd'),'fields':[_0xa380('0xa'),'MailAccountId']},{'unique':!![],'name':_0xa380('0xe'),'fields':['name',_0xa380('0xf')]},{'unique':!![],'name':_0xa380('0x10'),'fields':[_0xa380('0xa'),'FaxAccountId']},{'unique':!![],'name':_0xa380('0x11'),'fields':['name',_0xa380('0x12')]},{'unique':!![],'name':'name_whatsapp','fields':[_0xa380('0xa'),_0xa380('0x13')]}],'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(_0x5d7ab9,_0x2d1c12){var _0x3533a3=function(_0x1b9be7){while(--_0x1b9be7){_0x5d7ab9['push'](_0x5d7ab9['shift']());}};_0x3533a3(++_0x2d1c12);}(_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 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(_0xcf3411,_0x521aa4){var _0x4aa25b=function(_0x3d4a53){while(--_0x3d4a53){_0xcf3411['push'](_0xcf3411['shift']());}};_0x4aa25b(++_0x521aa4);}(_0xa9e0,0x123));var _0x0a9e=function(_0x5c351c,_0x2046d8){_0x5c351c=_0x5c351c-0x0;var _0x26f3b3=_0xa9e0[_0x5c351c];return _0x26f3b3;};'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 _0x5e04=['multer','util','connect-timeout','express','Router','fs-extra','../../components/interaction/service','../../config/environment','get','/:id','isAuthenticated','show','post','create','put','update','delete','destroy','exports'];(function(_0x1bfbd2,_0xf68eaf){var _0x5af854=function(_0x2e49ab){while(--_0x2e49ab){_0x1bfbd2['push'](_0x1bfbd2['shift']());}};_0x5af854(++_0xf68eaf);}(_0x5e04,0x130));var _0x45e0=function(_0x95ad05,_0x3cadb6){_0x95ad05=_0x95ad05-0x0;var _0x2d79f4=_0x5e04[_0x95ad05];return _0x2d79f4;};'use strict';var multer=require(_0x45e0('0x0'));var util=require(_0x45e0('0x1'));var path=require('path');var timeout=require(_0x45e0('0x2'));var express=require(_0x45e0('0x3'));var router=express[_0x45e0('0x4')]();var fs_extra=require(_0x45e0('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0x45e0('0x6'));var config=require(_0x45e0('0x7'));var controller=require('./disposition.controller');router[_0x45e0('0x8')]('/',auth['isAuthenticated'](),controller['index']);router['get'](_0x45e0('0x9'),auth[_0x45e0('0xa')](),controller[_0x45e0('0xb')]);router[_0x45e0('0xc')]('/',auth['isAuthenticated'](),controller[_0x45e0('0xd')]);router[_0x45e0('0xe')](_0x45e0('0x9'),auth[_0x45e0('0xa')](),controller[_0x45e0('0xf')]);router[_0x45e0('0x10')](_0x45e0('0x9'),auth[_0x45e0('0xa')](),controller[_0x45e0('0x11')]);module[_0x45e0('0x12')]=router;
\ No newline at end of file
+var _0xc704=['destroy','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./disposition.controller','get','isAuthenticated','/:id','show','post','put'];(function(_0x2a5600,_0x224c77){var _0x47c175=function(_0xb082fd){while(--_0xb082fd){_0x2a5600['push'](_0x2a5600['shift']());}};_0x47c175(++_0x224c77);}(_0xc704,0x1ca));var _0x4c70=function(_0x2b7753,_0x2e3844){_0x2b7753=_0x2b7753-0x0;var _0x5ae659=_0xc704[_0x2b7753];return _0x5ae659;};'use strict';var multer=require(_0x4c70('0x0'));var util=require(_0x4c70('0x1'));var path=require(_0x4c70('0x2'));var timeout=require(_0x4c70('0x3'));var express=require(_0x4c70('0x4'));var router=express[_0x4c70('0x5')]();var fs_extra=require(_0x4c70('0x6'));var auth=require(_0x4c70('0x7'));var interaction=require(_0x4c70('0x8'));var config=require(_0x4c70('0x9'));var controller=require(_0x4c70('0xa'));router[_0x4c70('0xb')]('/',auth[_0x4c70('0xc')](),controller['index']);router[_0x4c70('0xb')](_0x4c70('0xd'),auth[_0x4c70('0xc')](),controller[_0x4c70('0xe')]);router[_0x4c70('0xf')]('/',auth[_0x4c70('0xc')](),controller['create']);router[_0x4c70('0x10')](_0x4c70('0xd'),auth[_0x4c70('0xc')](),controller['update']);router['delete']('/:id',auth[_0x4c70('0xc')](),controller[_0x4c70('0x11')]);module[_0x4c70('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0019=['sequelize','exports','STRING','yes','xCALLY\x20Motion\x20Fax','localstationid','ENUM','2400','4800','7200','9600','14400','INTEGER','IAX','SIP','TEXT','Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}','BOOLEAN','Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','setDataValue','mandatoryDispositionPauseId','mandatoryDisposition'];(function(_0x300915,_0x320ae4){var _0x5887ed=function(_0x211c35){while(--_0x211c35){_0x300915['push'](_0x300915['shift']());}};_0x5887ed(++_0x320ae4);}(_0x0019,0x11e));var _0x9001=function(_0x507403,_0x3f954d){_0x507403=_0x507403-0x0;var _0x1327c=_0x0019[_0x507403];return _0x1327c;};'use strict';var Sequelize=require(_0x9001('0x0'));module[_0x9001('0x1')]={'name':{'type':Sequelize[_0x9001('0x2')],'allowNull':![],'validate':{'notEmpty':!![]}},'description':{'type':Sequelize[_0x9001('0x2')]},'ecm':{'type':Sequelize['ENUM'](_0x9001('0x3'),'no'),'defaultValue':_0x9001('0x3')},'headerinfo':{'type':Sequelize[_0x9001('0x2')],'defaultValue':_0x9001('0x4')},'localstationid':{'type':Sequelize[_0x9001('0x2')],'unique':_0x9001('0x5')},'minrate':{'type':Sequelize[_0x9001('0x6')](_0x9001('0x7'),_0x9001('0x8'),_0x9001('0x9'),_0x9001('0xa'),'12000',_0x9001('0xb')),'defaultValue':_0x9001('0x8')},'maxrate':{'type':Sequelize[_0x9001('0x6')](_0x9001('0x7'),_0x9001('0x8'),'7200','9600','12000','14400'),'defaultValue':_0x9001('0xb')},'modem':{'type':Sequelize['STRING'],'defaultValue':'v17,v27,v29'},'gateway':{'type':Sequelize[_0x9001('0x2')],'defaultValue':'no','validate':{'is':/^(?:yes|no|[0-9]+)$/}},'faxdetect':{'type':Sequelize[_0x9001('0x2')],'defaultValue':'no','validate':{'is':/^(?:yes|no|t38|cng|[0-9]+)$/}},'t38timeout':{'type':Sequelize[_0x9001('0xc')],'defaultValue':0x1388,'validate':{'min':0x3e8}},'tech':{'type':Sequelize[_0x9001('0x6')]('SIP',_0x9001('0xd'),'DADHI','KHOMP'),'defaultValue':_0x9001('0xe')},'key':{'type':Sequelize[_0x9001('0x2')],'allowNull':![]},'notificationTemplate':{'type':Sequelize[_0x9001('0xf')],'defaultValue':function(){return _0x9001('0x10');}},'notificationSound':{'type':Sequelize[_0x9001('0x11')],'defaultValue':!![]},'notificationShake':{'type':Sequelize[_0x9001('0x11')],'defaultValue':![]},'waitForTheAssignedAgent':{'type':Sequelize[_0x9001('0xc')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'queueTransfer':{'type':Sequelize[_0x9001('0x11')],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize[_0x9001('0xc')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'mandatoryDispositionPauseId':{'type':Sequelize[_0x9001('0xc')],'allowNull':!![],'defaultValue':null,'comment':'Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled'},'mandatoryDisposition':{'type':Sequelize['BOOLEAN'],'defaultValue':![],'comment':_0x9001('0x12'),'set':function(_0x497925){if(!_0x497925)this[_0x9001('0x13')](_0x9001('0x14'),null);this[_0x9001('0x13')](_0x9001('0x15'),_0x497925);}}};
\ No newline at end of file
+var _0xb551=['14400','INTEGER','SIP','IAX','KHOMP','TEXT','Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}','BOOLEAN','Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','setDataValue','mandatoryDispositionPauseId','mandatoryDisposition','sequelize','ENUM','yes','STRING','localstationid','2400','4800','9600','12000'];(function(_0x2bc036,_0xf3d63a){var _0x571442=function(_0x3d67dd){while(--_0x3d67dd){_0x2bc036['push'](_0x2bc036['shift']());}};_0x571442(++_0xf3d63a);}(_0xb551,0x171));var _0x1b55=function(_0x7c79d1,_0x398097){_0x7c79d1=_0x7c79d1-0x0;var _0x1392d7=_0xb551[_0x7c79d1];return _0x1392d7;};'use strict';var Sequelize=require(_0x1b55('0x0'));module['exports']={'name':{'type':Sequelize['STRING'],'allowNull':![],'validate':{'notEmpty':!![]}},'description':{'type':Sequelize['STRING']},'ecm':{'type':Sequelize[_0x1b55('0x1')](_0x1b55('0x2'),'no'),'defaultValue':'yes'},'headerinfo':{'type':Sequelize[_0x1b55('0x3')],'defaultValue':'xCALLY\x20Motion\x20Fax'},'localstationid':{'type':Sequelize[_0x1b55('0x3')],'unique':_0x1b55('0x4')},'minrate':{'type':Sequelize['ENUM'](_0x1b55('0x5'),_0x1b55('0x6'),'7200',_0x1b55('0x7'),_0x1b55('0x8'),'14400'),'defaultValue':_0x1b55('0x6')},'maxrate':{'type':Sequelize[_0x1b55('0x1')]('2400','4800','7200',_0x1b55('0x7'),_0x1b55('0x8'),_0x1b55('0x9')),'defaultValue':'14400'},'modem':{'type':Sequelize[_0x1b55('0x3')],'defaultValue':'v17,v27,v29'},'gateway':{'type':Sequelize['STRING'],'defaultValue':'no','validate':{'is':/^(?:yes|no|[0-9]+)$/}},'faxdetect':{'type':Sequelize[_0x1b55('0x3')],'defaultValue':'no','validate':{'is':/^(?:yes|no|t38|cng|[0-9]+)$/}},'t38timeout':{'type':Sequelize[_0x1b55('0xa')],'defaultValue':0x1388,'validate':{'min':0x3e8}},'tech':{'type':Sequelize[_0x1b55('0x1')](_0x1b55('0xb'),_0x1b55('0xc'),'DADHI',_0x1b55('0xd')),'defaultValue':_0x1b55('0xb')},'key':{'type':Sequelize[_0x1b55('0x3')],'allowNull':![]},'notificationTemplate':{'type':Sequelize[_0x1b55('0xe')],'defaultValue':function(){return _0x1b55('0xf');}},'notificationSound':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'notificationShake':{'type':Sequelize[_0x1b55('0x10')],'defaultValue':![]},'waitForTheAssignedAgent':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'queueTransfer':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize[_0x1b55('0x10')],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize[_0x1b55('0xa')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'mandatoryDispositionPauseId':{'type':Sequelize[_0x1b55('0xa')],'allowNull':!![],'defaultValue':null,'comment':'Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled'},'mandatoryDisposition':{'type':Sequelize[_0x1b55('0x10')],'defaultValue':![],'comment':_0x1b55('0x11'),'set':function(_0x101708){if(!_0x101708)this[_0x1b55('0x12')](_0x1b55('0x13'),null);this[_0x1b55('0x12')](_0x1b55('0x14'),_0x101708);}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x084d=['create','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','params','describe','addDisposition','FaxAccountId','Disposition','getDispositions','findOne','removeDispositions','ids','addAnswer','CannedAnswer','getAnswers','removeAnswers','addInteraction','FaxInteraction','omit','getInteractions','CmContact','User','Owner','fullname','internal','Tag','Tags','color','sequelize','transaction','FaxApplication','bulkCreate','findAndCountAll','priority','getApplications','from-voip-provider','exten','localstationid','Fax\x20Extension','appdata','push','Answer','CDR(type)=inbound-fax','ecm','gateway','headerinfo','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','VoiceExtension','updateAccountApplications','tech','createdAt','updatedAt','ListId','findById','getMessages','$gte','split','format','FaxMessage','CmList','Contacts','DESC','attachments','join','root','CheckAfterSend','isNil','from','\x22%s\x22\x20<%s>','fax','List','Send\x20Fax\x20failed','out','filename','Messages','spread','ContactId','dataValues','SendFax','SendFaxRpc,\x20%s','info','addAgents','emit','userFaxAccount:save','removeAgents','isArray','userFaxAccount:remove','getAgents','eml-format','rimraf','zip-dir','request-promise','bluebird','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../mysqldb','localhost','socket.io-emitter','redis','./faxAccount.socket','jayson/promise','http','client','then','FaxAccount,\x20%s,\x20%s','request\x20sent','debug','FaxAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','reject','save','update','destroy','FaxAccounts','UserProfileResource','stack','name','index','Pause','map','FaxAccount','rawAttributes','fieldName','type','key','model','query','keys','filters','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','filter','where','merge','VIRTUAL','includeAll','findAll','rows','show','mandatoryDispositionPause','intersection','include','options','find','catch'];(function(_0x467075,_0x4f5d84){var _0x1a285e=function(_0x2eb357){while(--_0x2eb357){_0x467075['push'](_0x467075['shift']());}};_0x1a285e(++_0x4f5d84);}(_0x084d,0x1da));var _0xd084=function(_0x2e88dc,_0x25fa14){_0x2e88dc=_0x2e88dc-0x0;var _0x1efd14=_0x084d[_0x2e88dc];return _0x1efd14;};'use strict';var emlformat=require(_0xd084('0x0'));var rimraf=require(_0xd084('0x1'));var zipdir=require(_0xd084('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xd084('0x3'));var moment=require('moment');var BPromise=require(_0xd084('0x4'));var Mustache=require('mustache');var util=require(_0xd084('0x5'));var path=require(_0xd084('0x6'));var sox=require(_0xd084('0x7'));var csv=require(_0xd084('0x8'));var ejs=require(_0xd084('0x9'));var fs=require('fs');var fs_extra=require(_0xd084('0xa'));var _=require(_0xd084('0xb'));var squel=require(_0xd084('0xc'));var crypto=require('crypto');var jsforce=require(_0xd084('0xd'));var deskjs=require(_0xd084('0xe'));var toCsv=require(_0xd084('0x8'));var querystring=require(_0xd084('0xf'));var Papa=require('papaparse');var Redis=require(_0xd084('0x10'));var authService=require(_0xd084('0x11'));var qs=require(_0xd084('0x12'));var as=require(_0xd084('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xd084('0x14'))('api');var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0xd084('0x15'))['db'];config['redis']=_['defaults'](config['redis'],{'host':_0xd084('0x16'),'port':0x18eb});var socket=require(_0xd084('0x17'))(new Redis(config[_0xd084('0x18')]));require(_0xd084('0x19'))['register'](socket);var jayson=require(_0xd084('0x1a'));var client=jayson['client'][_0xd084('0x1b')]({'port':0x232c});var client9002=jayson[_0xd084('0x1c')][_0xd084('0x1b')]({'port':0x232a});function respondWithRpcPromise(_0x1f13f3,_0x5557e4,_0x3615b9,_0x5552d9){return new BPromise(function(_0x38d9d1,_0x43cc87){var _0x360906=_0x5552d9||client;return _0x360906['request'](_0x1f13f3,_0x3615b9)[_0xd084('0x1d')](function(_0x11c12a){logger['info'](_0xd084('0x1e'),_0x5557e4,_0xd084('0x1f'));logger[_0xd084('0x20')](_0xd084('0x21'),_0x5557e4,_0xd084('0x1f'),JSON[_0xd084('0x22')](_0x11c12a));if(_0x11c12a[_0xd084('0x23')]){if(_0x11c12a[_0xd084('0x23')][_0xd084('0x24')]===0x1f4){logger[_0xd084('0x23')]('FaxAccount,\x20%s,\x20%s',_0x5557e4,_0x11c12a[_0xd084('0x23')][_0xd084('0x25')]);return _0x43cc87(_0x11c12a[_0xd084('0x23')][_0xd084('0x25')]);}logger[_0xd084('0x23')](_0xd084('0x1e'),_0x5557e4,_0x11c12a[_0xd084('0x23')][_0xd084('0x25')]);return _0x38d9d1(_0x11c12a[_0xd084('0x23')]['message']);}else{logger['info'](_0xd084('0x1e'),_0x5557e4,_0xd084('0x1f'));_0x38d9d1(_0x11c12a['result']['message']);}})['catch'](function(_0x55f1ff){logger[_0xd084('0x23')](_0xd084('0x1e'),_0x5557e4,_0x55f1ff);_0x43cc87(_0x55f1ff);});});}function respondWithStatusCode(_0x26657a,_0x19e99d){_0x19e99d=_0x19e99d||0xcc;return function(_0x460676){if(_0x460676){return _0x26657a[_0xd084('0x26')](_0x19e99d);}return _0x26657a[_0xd084('0x27')](_0x19e99d)[_0xd084('0x28')]();};}function respondWithResult(_0xdc5c29,_0x5772a0){_0x5772a0=_0x5772a0||0xc8;return function(_0x3b915a){if(_0x3b915a){return _0xdc5c29[_0xd084('0x27')](_0x5772a0)[_0xd084('0x29')](_0x3b915a);}};}function respondWithFilteredResult(_0x2c3727,_0x13ca18){return function(_0x9b0fb){if(_0x9b0fb){var _0x5aaf0f=typeof _0x13ca18[_0xd084('0x2a')]===_0xd084('0x2b')&&typeof _0x13ca18[_0xd084('0x2c')]===_0xd084('0x2b');var _0x1dfbba=_0x9b0fb[_0xd084('0x2d')];var _0x1f4d8e=_0x5aaf0f?0x0:_0x13ca18[_0xd084('0x2a')];var _0x5d1d6a=_0x5aaf0f?_0x9b0fb['count']:_0x13ca18[_0xd084('0x2a')]+_0x13ca18[_0xd084('0x2c')];var _0x262f8a;if(_0x5d1d6a>=_0x1dfbba){_0x5d1d6a=_0x1dfbba;_0x262f8a=0xc8;}else{_0x262f8a=0xce;}_0x2c3727[_0xd084('0x27')](_0x262f8a);return _0x2c3727[_0xd084('0x2e')](_0xd084('0x2f'),_0x1f4d8e+'-'+_0x5d1d6a+'/'+_0x1dfbba)[_0xd084('0x29')](_0x9b0fb);}return null;};}function patchUpdates(_0x30ec44){return function(_0x38cdc7){try{jsonpatch['apply'](_0x38cdc7,_0x30ec44,!![]);}catch(_0x18401b){return BPromise[_0xd084('0x30')](_0x18401b);}return _0x38cdc7[_0xd084('0x31')]();};}function saveUpdates(_0x4adf13,_0x3b73e9){return function(_0x18dac5){if(_0x18dac5){return _0x18dac5[_0xd084('0x32')](_0x4adf13)['then'](function(_0x515fb){return _0x515fb;});}return null;};}function removeEntity(_0x2f9f81,_0x3b38fd){return function(_0x1554f6){if(_0x1554f6){return _0x1554f6[_0xd084('0x33')]()[_0xd084('0x1d')](function(){var _0x4acf86=_0x1554f6['get']({'plain':!![]});var _0x3c6658=_0xd084('0x34');return db[_0xd084('0x35')][_0xd084('0x33')]({'where':{'type':_0x3c6658,'resourceId':_0x4acf86['id']}})[_0xd084('0x1d')](function(){return _0x1554f6;});})[_0xd084('0x1d')](function(){_0x2f9f81['status'](0xcc)[_0xd084('0x28')]();});}};}function handleEntityNotFound(_0x27b635,_0x541555){return function(_0x22ba67){if(!_0x22ba67){_0x27b635['sendStatus'](0x194);}return _0x22ba67;};}function handleError(_0x5b770a,_0x42eccb){_0x42eccb=_0x42eccb||0x1f4;return function(_0x1da9dc){logger['error'](_0x1da9dc[_0xd084('0x36')]);if(_0x1da9dc[_0xd084('0x37')]){delete _0x1da9dc['name'];}_0x5b770a['status'](_0x42eccb)['send'](_0x1da9dc);};}exports[_0xd084('0x38')]=function(_0x2fb94e,_0x1c8669){var _0xfb159f={'include':[{'model':db[_0xd084('0x39')],'as':'mandatoryDispositionPause'}]},_0x1aa2f4={},_0x44d59c={'count':0x0,'rows':[]};var _0x2ab020=_[_0xd084('0x3a')](db[_0xd084('0x3b')][_0xd084('0x3c')],function(_0x3eb82a){return{'name':_0x3eb82a[_0xd084('0x3d')],'type':_0x3eb82a[_0xd084('0x3e')][_0xd084('0x3f')]};});_0x1aa2f4[_0xd084('0x40')]=_['map'](_0x2ab020,'name');_0x1aa2f4[_0xd084('0x41')]=_[_0xd084('0x42')](_0x2fb94e[_0xd084('0x41')]);_0x1aa2f4[_0xd084('0x43')]=_['intersection'](_0x1aa2f4[_0xd084('0x40')],_0x1aa2f4[_0xd084('0x41')]);_0xfb159f[_0xd084('0x44')]=_['intersection'](_0x1aa2f4[_0xd084('0x40')],qs[_0xd084('0x45')](_0x2fb94e['query'][_0xd084('0x45')]));_0xfb159f[_0xd084('0x44')]=_0xfb159f[_0xd084('0x44')][_0xd084('0x46')]?_0xfb159f['attributes']:_0x1aa2f4['model'];if(!_0x2fb94e[_0xd084('0x41')][_0xd084('0x47')](_0xd084('0x48'))){_0xfb159f['limit']=qs[_0xd084('0x2c')](_0x2fb94e['query']['limit']);_0xfb159f[_0xd084('0x2a')]=qs[_0xd084('0x2a')](_0x2fb94e[_0xd084('0x41')][_0xd084('0x2a')]);}_0xfb159f[_0xd084('0x49')]=qs[_0xd084('0x4a')](_0x2fb94e['query'][_0xd084('0x4a')]);_0xfb159f['where']=qs[_0xd084('0x43')](_[_0xd084('0x4b')](_0x2fb94e['query'],_0x1aa2f4[_0xd084('0x43')]),_0x2ab020);if(_0x2fb94e[_0xd084('0x41')][_0xd084('0x4c')]){_0xfb159f[_0xd084('0x4d')]=_[_0xd084('0x4e')](_0xfb159f[_0xd084('0x4d')],{'$or':_[_0xd084('0x3a')](_0x2ab020,function(_0x11c54c){if(_0x11c54c[_0xd084('0x3e')]!==_0xd084('0x4f')){var _0x17aa29={};_0x17aa29[_0x11c54c['name']]={'$like':'%'+_0x2fb94e[_0xd084('0x41')][_0xd084('0x4c')]+'%'};return _0x17aa29;}})});}_0xfb159f=_[_0xd084('0x4e')]({},_0xfb159f,_0x2fb94e['options']);var _0xa42fa7={'where':_0xfb159f[_0xd084('0x4d')]};return db[_0xd084('0x3b')]['count'](_0xa42fa7)[_0xd084('0x1d')](function(_0x3ae540){_0x44d59c[_0xd084('0x2d')]=_0x3ae540;if(_0x2fb94e['query'][_0xd084('0x50')]){_0xfb159f['include']=[{'all':!![]}];}return db[_0xd084('0x3b')][_0xd084('0x51')](_0xfb159f);})[_0xd084('0x1d')](function(_0x512895){_0x44d59c[_0xd084('0x52')]=_0x512895;return _0x44d59c;})[_0xd084('0x1d')](respondWithFilteredResult(_0x1c8669,_0xfb159f))['catch'](handleError(_0x1c8669,null));};exports[_0xd084('0x53')]=function(_0xca10d2,_0x34c9fc){var _0x189605={'raw':![],'where':{'id':_0xca10d2['params']['id']},'include':[{'model':db[_0xd084('0x39')],'as':_0xd084('0x54')}]},_0x1866ed={};_0x1866ed[_0xd084('0x40')]=_[_0xd084('0x42')](db[_0xd084('0x3b')][_0xd084('0x3c')]);_0x1866ed[_0xd084('0x41')]=_[_0xd084('0x42')](_0xca10d2['query']);_0x1866ed[_0xd084('0x43')]=_[_0xd084('0x55')](_0x1866ed['model'],_0x1866ed[_0xd084('0x41')]);_0x189605[_0xd084('0x44')]=_[_0xd084('0x55')](_0x1866ed[_0xd084('0x40')],qs['fields'](_0xca10d2[_0xd084('0x41')][_0xd084('0x45')]));_0x189605['attributes']=_0x189605[_0xd084('0x44')][_0xd084('0x46')]?_0x189605[_0xd084('0x44')]:_0x1866ed[_0xd084('0x40')];if(_0xca10d2[_0xd084('0x41')][_0xd084('0x50')]){_0x189605[_0xd084('0x56')]=[{'all':!![]}];}_0x189605=_['merge']({},_0x189605,_0xca10d2[_0xd084('0x57')]);return db['FaxAccount'][_0xd084('0x58')](_0x189605)[_0xd084('0x1d')](handleEntityNotFound(_0x34c9fc,null))[_0xd084('0x1d')](respondWithResult(_0x34c9fc,null))[_0xd084('0x59')](handleError(_0x34c9fc,null));};exports[_0xd084('0x5a')]=function(_0x50e4b2,_0x2bf0b5){return db[_0xd084('0x3b')]['create'](_0x50e4b2['body'],{})[_0xd084('0x1d')](function(_0x5e82b7){var _0x82404d=_0x50e4b2[_0xd084('0x5b')][_0xd084('0x5c')]({'plain':!![]});if(!_0x82404d)throw new Error(_0xd084('0x5d'));if(_0x82404d['role']===_0xd084('0x5b')){var _0x490cc8=_0x5e82b7[_0xd084('0x5c')]({'plain':!![]});var _0x437e34=_0xd084('0x34');return db[_0xd084('0x5e')][_0xd084('0x58')]({'where':{'name':_0x437e34,'userProfileId':_0x82404d['userProfileId']},'raw':!![]})[_0xd084('0x1d')](function(_0x47782a){if(_0x47782a&&_0x47782a[_0xd084('0x5f')]===0x0){return db[_0xd084('0x35')][_0xd084('0x5a')]({'name':_0x490cc8[_0xd084('0x37')],'resourceId':_0x490cc8['id'],'type':_0x47782a[_0xd084('0x37')],'sectionId':_0x47782a['id']},{})[_0xd084('0x1d')](function(){return _0x5e82b7;});}else{return _0x5e82b7;}})[_0xd084('0x59')](function(_0x58af2f){logger['error'](_0xd084('0x60'),_0x58af2f);throw _0x58af2f;});}return _0x5e82b7;})['then'](respondWithResult(_0x2bf0b5,0xc9))[_0xd084('0x59')](handleError(_0x2bf0b5,null));};exports[_0xd084('0x32')]=function(_0x2fafb5,_0xe8f91c){if(_0x2fafb5[_0xd084('0x61')]['id']){delete _0x2fafb5[_0xd084('0x61')]['id'];}return db[_0xd084('0x3b')]['find']({'where':{'id':_0x2fafb5[_0xd084('0x62')]['id']},'include':[{'model':db[_0xd084('0x39')],'as':_0xd084('0x54')}]})['then'](handleEntityNotFound(_0xe8f91c,null))['then'](saveUpdates(_0x2fafb5[_0xd084('0x61')],null))[_0xd084('0x1d')](respondWithResult(_0xe8f91c,null))['catch'](handleError(_0xe8f91c,null));};exports['destroy']=function(_0x9b28a1,_0x335d38){return db[_0xd084('0x3b')][_0xd084('0x58')]({'where':{'id':_0x9b28a1[_0xd084('0x62')]['id']}})['then'](handleEntityNotFound(_0x335d38,null))[_0xd084('0x1d')](removeEntity(_0x335d38,null))[_0xd084('0x59')](handleError(_0x335d38,null));};exports['describe']=function(_0x42ea4c,_0x2c5192){return db['FaxAccount'][_0xd084('0x63')]()[_0xd084('0x1d')](respondWithResult(_0x2c5192,null))['catch'](handleError(_0x2c5192,null));};exports[_0xd084('0x64')]=function(_0x4a2b3b,_0x27e3f7,_0x13318f){if(_0x4a2b3b[_0xd084('0x61')]['id']){delete _0x4a2b3b[_0xd084('0x61')]['id'];}return db['FaxAccount'][_0xd084('0x58')]({'where':{'id':_0x4a2b3b['params']['id']}})[_0xd084('0x1d')](handleEntityNotFound(_0x27e3f7,null))['then'](function(_0x3e7a18){if(_0x3e7a18){_0x4a2b3b['body'][_0xd084('0x65')]=_0x3e7a18['id'];return db[_0xd084('0x66')][_0xd084('0x5a')](_0x4a2b3b[_0xd084('0x61')]);}})['then'](respondWithResult(_0x27e3f7,null))[_0xd084('0x59')](handleError(_0x27e3f7,null));};exports[_0xd084('0x67')]=function(_0x4cbe27,_0xa7f624,_0x386f0e){var _0x335283={'raw':![],'where':{}};var _0x358911={};var _0x3b2592={'count':0x0,'rows':[]};return db['FaxAccount'][_0xd084('0x68')]({'where':{'id':_0x4cbe27[_0xd084('0x62')]['id']}})[_0xd084('0x1d')](handleEntityNotFound(_0xa7f624,null))[_0xd084('0x1d')](function(_0x522a9b){if(_0x522a9b){_0x358911['model']=_[_0xd084('0x42')](db[_0xd084('0x66')][_0xd084('0x3c')]);_0x358911[_0xd084('0x41')]=_[_0xd084('0x42')](_0x4cbe27['query']);_0x358911[_0xd084('0x43')]=_[_0xd084('0x55')](_0x358911[_0xd084('0x40')],_0x358911[_0xd084('0x41')]);_0x335283[_0xd084('0x44')]=_[_0xd084('0x55')](_0x358911[_0xd084('0x40')],qs[_0xd084('0x45')](_0x4cbe27[_0xd084('0x41')]['fields']));_0x335283['attributes']=_0x335283['attributes'][_0xd084('0x46')]?_0x335283['attributes']:_0x358911['model'];if(!_0x4cbe27['query']['hasOwnProperty'](_0xd084('0x48'))){_0x335283[_0xd084('0x2c')]=qs['limit'](_0x4cbe27[_0xd084('0x41')][_0xd084('0x2c')]);_0x335283['offset']=qs[_0xd084('0x2a')](_0x4cbe27[_0xd084('0x41')][_0xd084('0x2a')]);}_0x335283[_0xd084('0x49')]=qs[_0xd084('0x4a')](_0x4cbe27[_0xd084('0x41')][_0xd084('0x4a')]);_0x335283['where']=qs[_0xd084('0x43')](_[_0xd084('0x4b')](_0x4cbe27[_0xd084('0x41')],_0x358911[_0xd084('0x43')]));_0x335283[_0xd084('0x4d')][_0xd084('0x65')]=_0x522a9b['id'];if(_0x4cbe27[_0xd084('0x41')][_0xd084('0x4c')]){_0x335283[_0xd084('0x4d')]=_['merge'](_0x335283[_0xd084('0x4d')],{'$or':_[_0xd084('0x3a')](_0x335283[_0xd084('0x44')],function(_0xe1a342){var _0x5da87d={};_0x5da87d[_0xe1a342]={'$like':'%'+_0x4cbe27[_0xd084('0x41')]['filter']+'%'};return _0x5da87d;})});}_0x335283=_['merge']({},_0x335283,_0x4cbe27[_0xd084('0x57')]);return db[_0xd084('0x66')][_0xd084('0x2d')]({'where':_0x335283[_0xd084('0x4d')]})[_0xd084('0x1d')](function(_0x1113b9){_0x3b2592[_0xd084('0x2d')]=_0x1113b9;if(_0x4cbe27[_0xd084('0x41')]['includeAll']){_0x335283[_0xd084('0x56')]=[{'all':!![]}];}return db[_0xd084('0x66')][_0xd084('0x51')](_0x335283);})[_0xd084('0x1d')](function(_0x2c2c85){_0x3b2592['rows']=_0x2c2c85;return _0x3b2592;});}})['then'](respondWithFilteredResult(_0xa7f624,_0x335283))[_0xd084('0x59')](handleError(_0xa7f624,null));};exports['removeDispositions']=function(_0x24d448,_0x2c7425,_0x37f4ba){return db[_0xd084('0x3b')]['find']({'where':{'id':_0x24d448['params']['id']}})[_0xd084('0x1d')](handleEntityNotFound(_0x2c7425,null))[_0xd084('0x1d')](function(_0x1efabd){if(_0x1efabd){return _0x1efabd[_0xd084('0x69')](_0x24d448['query'][_0xd084('0x6a')]);}})[_0xd084('0x1d')](respondWithStatusCode(_0x2c7425,null))['catch'](handleError(_0x2c7425,null));};exports[_0xd084('0x6b')]=function(_0x1fb019,_0x379e45,_0x5cc58c){if(_0x1fb019[_0xd084('0x61')]['id']){delete _0x1fb019[_0xd084('0x61')]['id'];}return db[_0xd084('0x3b')][_0xd084('0x58')]({'where':{'id':_0x1fb019[_0xd084('0x62')]['id']}})[_0xd084('0x1d')](handleEntityNotFound(_0x379e45,null))[_0xd084('0x1d')](function(_0x17f86b){if(_0x17f86b){_0x1fb019[_0xd084('0x61')][_0xd084('0x65')]=_0x17f86b['id'];return db[_0xd084('0x6c')][_0xd084('0x5a')](_0x1fb019['body']);}})[_0xd084('0x1d')](respondWithResult(_0x379e45,null))[_0xd084('0x59')](handleError(_0x379e45,null));};exports[_0xd084('0x6d')]=function(_0x19ddf4,_0x56606b,_0x5a715e){var _0x345de5={'raw':![],'where':{}};var _0x30b035={};var _0x51cf88={'count':0x0,'rows':[]};return db[_0xd084('0x3b')][_0xd084('0x68')]({'where':{'id':_0x19ddf4['params']['id']}})[_0xd084('0x1d')](handleEntityNotFound(_0x56606b,null))[_0xd084('0x1d')](function(_0x37903d){if(_0x37903d){_0x30b035['model']=_['keys'](db[_0xd084('0x6c')][_0xd084('0x3c')]);_0x30b035['query']=_[_0xd084('0x42')](_0x19ddf4[_0xd084('0x41')]);_0x30b035[_0xd084('0x43')]=_[_0xd084('0x55')](_0x30b035[_0xd084('0x40')],_0x30b035[_0xd084('0x41')]);_0x345de5[_0xd084('0x44')]=_['intersection'](_0x30b035[_0xd084('0x40')],qs[_0xd084('0x45')](_0x19ddf4['query'][_0xd084('0x45')]));_0x345de5[_0xd084('0x44')]=_0x345de5['attributes'][_0xd084('0x46')]?_0x345de5[_0xd084('0x44')]:_0x30b035['model'];if(!_0x19ddf4[_0xd084('0x41')][_0xd084('0x47')](_0xd084('0x48'))){_0x345de5[_0xd084('0x2c')]=qs[_0xd084('0x2c')](_0x19ddf4[_0xd084('0x41')]['limit']);_0x345de5[_0xd084('0x2a')]=qs[_0xd084('0x2a')](_0x19ddf4['query'][_0xd084('0x2a')]);}_0x345de5[_0xd084('0x49')]=qs[_0xd084('0x4a')](_0x19ddf4[_0xd084('0x41')][_0xd084('0x4a')]);_0x345de5[_0xd084('0x4d')]=qs['filters'](_[_0xd084('0x4b')](_0x19ddf4['query'],_0x30b035['filters']));_0x345de5[_0xd084('0x4d')][_0xd084('0x65')]=_0x37903d['id'];if(_0x19ddf4[_0xd084('0x41')][_0xd084('0x4c')]){_0x345de5[_0xd084('0x4d')]=_[_0xd084('0x4e')](_0x345de5[_0xd084('0x4d')],{'$or':_['map'](_0x345de5[_0xd084('0x44')],function(_0x52433a){var _0x43a368={};_0x43a368[_0x52433a]={'$like':'%'+_0x19ddf4[_0xd084('0x41')][_0xd084('0x4c')]+'%'};return _0x43a368;})});}_0x345de5=_[_0xd084('0x4e')]({},_0x345de5,_0x19ddf4['options']);return db[_0xd084('0x6c')][_0xd084('0x2d')]({'where':_0x345de5['where']})[_0xd084('0x1d')](function(_0x2fe30c){_0x51cf88['count']=_0x2fe30c;if(_0x19ddf4['query']['includeAll']){_0x345de5['include']=[{'all':!![]}];}return db[_0xd084('0x6c')]['findAll'](_0x345de5);})[_0xd084('0x1d')](function(_0x222fdb){_0x51cf88[_0xd084('0x52')]=_0x222fdb;return _0x51cf88;});}})[_0xd084('0x1d')](respondWithFilteredResult(_0x56606b,_0x345de5))[_0xd084('0x59')](handleError(_0x56606b,null));};exports[_0xd084('0x6e')]=function(_0x1a41d7,_0x26abd0,_0xfd915f){return db[_0xd084('0x3b')]['find']({'where':{'id':_0x1a41d7['params']['id']}})[_0xd084('0x1d')](handleEntityNotFound(_0x26abd0,null))['then'](function(_0x5ce0f6){if(_0x5ce0f6){return _0x5ce0f6[_0xd084('0x6e')](_0x1a41d7[_0xd084('0x41')][_0xd084('0x6a')]);}})[_0xd084('0x1d')](respondWithStatusCode(_0x26abd0,null))[_0xd084('0x59')](handleError(_0x26abd0,null));};exports[_0xd084('0x6f')]=function(_0x273f43,_0x2bcd98,_0x349f8b){return db[_0xd084('0x70')]['find']({'where':{'id':_0x273f43[_0xd084('0x62')]['id']}})[_0xd084('0x1d')](handleEntityNotFound(_0x2bcd98,null))[_0xd084('0x1d')](function(_0x520ad3){if(_0x520ad3){return _0x520ad3['addInteraction'](_0x273f43[_0xd084('0x61')][_0xd084('0x6a')],_[_0xd084('0x71')](_0x273f43['body'],['ids','id'])||{});}})[_0xd084('0x1d')](respondWithResult(_0x2bcd98,null))['catch'](handleError(_0x2bcd98,null));};exports[_0xd084('0x72')]=function(_0x294a4e,_0x437a,_0x4623ab){var _0x5ae96a={'raw':![],'where':{}};var _0x129952={};var _0x4f85e3={'count':0x0,'rows':[]};return db['FaxAccount'][_0xd084('0x68')]({'where':{'id':_0x294a4e[_0xd084('0x62')]['id']}})[_0xd084('0x1d')](handleEntityNotFound(_0x437a,null))[_0xd084('0x1d')](function(_0x3eead1){if(_0x3eead1){_0x129952[_0xd084('0x40')]=_[_0xd084('0x42')](db[_0xd084('0x70')][_0xd084('0x3c')]);_0x129952[_0xd084('0x41')]=_[_0xd084('0x42')](_0x294a4e[_0xd084('0x41')]);_0x129952['filters']=_['intersection'](_0x129952[_0xd084('0x40')],_0x129952[_0xd084('0x41')]);_0x5ae96a[_0xd084('0x44')]=_[_0xd084('0x55')](_0x129952[_0xd084('0x40')],qs[_0xd084('0x45')](_0x294a4e[_0xd084('0x41')][_0xd084('0x45')]));_0x5ae96a[_0xd084('0x44')]=_0x5ae96a['attributes']['length']?_0x5ae96a['attributes']:_0x129952[_0xd084('0x40')];if(!_0x294a4e['query']['hasOwnProperty'](_0xd084('0x48'))){_0x5ae96a[_0xd084('0x2c')]=qs[_0xd084('0x2c')](_0x294a4e[_0xd084('0x41')]['limit']);_0x5ae96a[_0xd084('0x2a')]=qs[_0xd084('0x2a')](_0x294a4e[_0xd084('0x41')][_0xd084('0x2a')]);}_0x5ae96a[_0xd084('0x49')]=qs[_0xd084('0x4a')](_0x294a4e[_0xd084('0x41')]['sort']);_0x5ae96a[_0xd084('0x4d')]=qs['filters'](_[_0xd084('0x4b')](_0x294a4e[_0xd084('0x41')],_0x129952[_0xd084('0x43')]));_0x5ae96a[_0xd084('0x4d')][_0xd084('0x65')]=_0x3eead1['id'];if(_0x294a4e[_0xd084('0x41')]['filter']){_0x5ae96a[_0xd084('0x4d')]=_[_0xd084('0x4e')](_0x5ae96a[_0xd084('0x4d')],{'$or':_[_0xd084('0x3a')](_0x5ae96a[_0xd084('0x44')],function(_0x301c10){var _0x551f2b={};_0x551f2b[_0x301c10]={'$like':'%'+_0x294a4e[_0xd084('0x41')][_0xd084('0x4c')]+'%'};return _0x551f2b;})});}_0x5ae96a=_['merge']({},_0x5ae96a,_0x294a4e[_0xd084('0x57')]);return db[_0xd084('0x70')][_0xd084('0x2d')]({'where':_0x5ae96a[_0xd084('0x4d')]})[_0xd084('0x1d')](function(_0x373e99){_0x4f85e3['count']=_0x373e99;if(_0x294a4e[_0xd084('0x41')]['includeAll']){_0x5ae96a['include']=[{'model':db[_0xd084('0x73')],'as':'Contact','required':![]},{'model':db[_0xd084('0x74')],'as':_0xd084('0x75'),'attributes':[_0xd084('0x37'),_0xd084('0x76'),_0xd084('0x77')],'required':![]},{'model':db[_0xd084('0x78')],'as':_0xd084('0x79'),'attributes':['id',_0xd084('0x37'),_0xd084('0x7a')],'where':_0x294a4e[_0xd084('0x41')]['tag']?{'id':_0x294a4e[_0xd084('0x41')]['tag']}:undefined,'required':_0x294a4e[_0xd084('0x41')]['tag']?!![]:![]}];}return db[_0xd084('0x70')][_0xd084('0x51')](_0x5ae96a);})[_0xd084('0x1d')](function(_0x3fb3ce){_0x4f85e3[_0xd084('0x52')]=_0x3fb3ce;return _0x4f85e3;});}})[_0xd084('0x1d')](respondWithFilteredResult(_0x437a,_0x5ae96a))['catch'](handleError(_0x437a,null));};exports['addApplications']=function(_0x2005b3,_0x4c31c9,_0x3fd5b7){return db[_0xd084('0x3b')][_0xd084('0x68')]({'where':{'id':_0x2005b3[_0xd084('0x62')]['id']}})[_0xd084('0x1d')](handleEntityNotFound(_0x4c31c9,null))[_0xd084('0x1d')](function(_0x4ccd73){if(_0x4ccd73){return db[_0xd084('0x7b')][_0xd084('0x7c')](function(_0x2c0b78){return db[_0xd084('0x7d')][_0xd084('0x33')]({'where':{'FaxAccountId':_0x2005b3['params']['id']},'transaction':_0x2c0b78})[_0xd084('0x1d')](function(_0x27ebfa){var _0x27b1f3=_['map'](_0x2005b3[_0xd084('0x61')],function(_0x2dd6fc){_0x2dd6fc[_0xd084('0x65')]=_0x2005b3[_0xd084('0x62')]['id'];return _0x2dd6fc;});return db[_0xd084('0x7d')][_0xd084('0x7e')](_0x27b1f3,{'transaction':_0x2c0b78});});})[_0xd084('0x1d')](function(){return db['FaxApplication'][_0xd084('0x7f')]({'where':{'FaxAccountId':_0x2005b3[_0xd084('0x62')]['id']},'order':_0xd084('0x80')});});}})['then'](respondWithResult(_0x4c31c9,null))[_0xd084('0x59')](handleError(_0x4c31c9,null));};exports[_0xd084('0x81')]=function(_0x5353b2,_0x19fea1,_0x4144b8){var _0x3aa46f={};var _0x45c2d9={};var _0x44cbb1;var _0x2c7dac;return db[_0xd084('0x3b')][_0xd084('0x68')]({'where':{'id':_0x5353b2['params']['id']}})['then'](handleEntityNotFound(_0x19fea1,null))[_0xd084('0x1d')](function(_0x56ae0f){if(_0x56ae0f){_0x44cbb1=_0x56ae0f;_0x45c2d9[_0xd084('0x40')]=_[_0xd084('0x42')](db[_0xd084('0x7d')][_0xd084('0x3c')]);_0x45c2d9[_0xd084('0x41')]=_[_0xd084('0x42')](_0x5353b2[_0xd084('0x41')]);_0x45c2d9[_0xd084('0x43')]=_['intersection'](_0x45c2d9['model'],_0x45c2d9[_0xd084('0x41')]);_0x3aa46f[_0xd084('0x44')]=_[_0xd084('0x55')](_0x45c2d9['model'],qs['fields'](_0x5353b2[_0xd084('0x41')]['fields']));_0x3aa46f['attributes']=_0x3aa46f[_0xd084('0x44')][_0xd084('0x46')]?_0x3aa46f[_0xd084('0x44')]:_0x45c2d9['model'];_0x3aa46f[_0xd084('0x49')]=qs[_0xd084('0x4a')](_0x5353b2['query'][_0xd084('0x4a')]);_0x3aa46f[_0xd084('0x4d')]=qs[_0xd084('0x43')](_[_0xd084('0x4b')](_0x5353b2['query'],_0x45c2d9[_0xd084('0x43')]));if(_0x5353b2['query'][_0xd084('0x4c')]){_0x3aa46f[_0xd084('0x4d')]=_[_0xd084('0x4e')](_0x3aa46f[_0xd084('0x4d')],{'$or':_['map'](_0x3aa46f[_0xd084('0x44')],function(_0x4f25e2){var _0x45b84b={};_0x45b84b[_0x4f25e2]={'$like':'%'+_0x5353b2['query'][_0xd084('0x4c')]+'%'};return _0x45b84b;})});}_0x3aa46f=_['merge']({},_0x3aa46f,_0x5353b2[_0xd084('0x57')]);return _0x44cbb1[_0xd084('0x81')](_0x3aa46f);}})[_0xd084('0x1d')](function(_0x59ad38){if(_0x59ad38){_0x2c7dac=_0x59ad38[_0xd084('0x46')];if(!_0x5353b2[_0xd084('0x41')][_0xd084('0x47')](_0xd084('0x48'))){_0x3aa46f[_0xd084('0x2c')]=qs[_0xd084('0x2c')](_0x5353b2['query'][_0xd084('0x2c')]);_0x3aa46f['offset']=qs[_0xd084('0x2a')](_0x5353b2[_0xd084('0x41')][_0xd084('0x2a')]);}return _0x44cbb1[_0xd084('0x81')](_0x3aa46f);}})[_0xd084('0x1d')](function(_0x3d22dc){if(_0x3d22dc){return _0x3d22dc?{'count':_0x2c7dac,'rows':_0x3d22dc}:null;}})[_0xd084('0x1d')](respondWithResult(_0x19fea1,null))['catch'](handleError(_0x19fea1,null));};function Extension(_0x54caa1,_0x7daf78,_0x26ad1b,_0x2505b4){this['context']=_0xd084('0x82');this[_0xd084('0x83')]=_0x54caa1[_0xd084('0x84')];this['app']=_0x2505b4;this['type']='system';this['description']=_0xd084('0x85');this[_0xd084('0x65')]=_0x54caa1['id'];this[_0xd084('0x80')]=_0x7daf78;this[_0xd084('0x86')]=_0x26ad1b;}function createExtensionsReciveFax(_0x44366c){var _0x53a81b=0x1;var _0x5def00=[];_0x5def00[_0xd084('0x87')](new Extension(_0x44366c,_0x53a81b,'',_0xd084('0x88')));_0x53a81b+=0x1;_0x5def00['push'](new Extension(_0x44366c,_0x53a81b,_0xd084('0x89'),'Set'));_0x53a81b+=0x1;for(var _0x5ba169 in _0x44366c){if(_0x44366c['hasOwnProperty'](_0x5ba169)&&(_0x5ba169===_0xd084('0x8a')||_0x5ba169===_0xd084('0x84')||_0x5ba169===_0xd084('0x8b')||_0x5ba169==='faxdetect'||_0x5ba169===_0xd084('0x8c')||_0x5ba169==='maxrate'||_0x5ba169==='minrate'||_0x5ba169===_0xd084('0x8d')||_0x5ba169==='t38timeout')){_0x5def00[_0xd084('0x87')](new Extension(_0x44366c,_0x53a81b,_0xd084('0x8e')+_0x5ba169+')='+_0x44366c[_0x5ba169],_0xd084('0x8f')));_0x53a81b+=0x1;}}_0x5def00['push'](new Extension(_0x44366c,_0x53a81b,'6',_0xd084('0x90')));_0x53a81b+=0x1;_0x5def00['push'](new Extension(_0x44366c,_0x53a81b,_0xd084('0x91'),_0xd084('0x92')));_0x53a81b=0x0;return _0x5def00;}exports['addAccountApplications']=function(_0x3ef597,_0x550f36,_0x21cdf6){var _0x354d97;return db[_0xd084('0x7b')][_0xd084('0x7c')](function(_0x5c93d8){return db[_0xd084('0x3b')][_0xd084('0x5a')](_0x3ef597[_0xd084('0x61')],{'transaction':_0x5c93d8})[_0xd084('0x1d')](function(_0x21ae5a){_0x354d97=_0x21ae5a[_0xd084('0x5c')]({'plain':!![]});return db[_0xd084('0x93')][_0xd084('0x7e')](createExtensionsReciveFax(_0x354d97),{'transaction':_0x5c93d8});});})[_0xd084('0x1d')](function(){return _0x354d97;})[_0xd084('0x1d')](respondWithResult(_0x550f36,null))[_0xd084('0x59')](handleError(_0x550f36,null));};exports[_0xd084('0x94')]=function(_0x2d5a26,_0x54cc39,_0x16ad1a){var _0x1c771a;return db[_0xd084('0x7b')][_0xd084('0x7c')](function(_0x1070db){return db[_0xd084('0x3b')][_0xd084('0x32')](_0x2d5a26[_0xd084('0x61')],{'where':{'id':_0x2d5a26[_0xd084('0x61')]['id']},'transaction':_0x1070db})['then'](function(_0x91f8e){return db[_0xd084('0x93')][_0xd084('0x33')]({'where':{'FaxAccountId':_0x2d5a26['body']['id']},'transaction':_0x1070db})[_0xd084('0x1d')](function(_0x31d6b7){return db[_0xd084('0x93')][_0xd084('0x7e')](createExtensionsReciveFax(_[_0xd084('0x71')](_0x2d5a26[_0xd084('0x61')],[_0xd084('0x95'),_0xd084('0x3f'),_0xd084('0x96'),_0xd084('0x97'),'TrunkId',_0xd084('0x98')])),{'transaction':_0x1070db});});});})[_0xd084('0x1d')](function(){return db['FaxAccount'][_0xd084('0x99')](_0x2d5a26[_0xd084('0x61')]['id']);})[_0xd084('0x1d')](respondWithResult(_0x54cc39,null))[_0xd084('0x59')](handleError(_0x54cc39,null));};exports[_0xd084('0x9a')]=function(_0x13697d,_0x25fc67,_0xece744){var _0x56546a={'raw':!![],'where':{}};var _0x2428a0={};var _0xbf6a5a={'count':0x0,'rows':[]};return db[_0xd084('0x3b')][_0xd084('0x68')]({'where':{'id':_0x13697d[_0xd084('0x62')]['id']}})['then'](handleEntityNotFound(_0x25fc67,null))['then'](function(_0x12af34){if(_0x12af34){_0x2428a0['model']=_[_0xd084('0x42')](db['FaxMessage'][_0xd084('0x3c')]);_0x2428a0[_0xd084('0x41')]=_[_0xd084('0x42')](_0x13697d['query']);_0x2428a0[_0xd084('0x43')]=_[_0xd084('0x55')](_0x2428a0[_0xd084('0x40')],_0x2428a0[_0xd084('0x41')]);_0x56546a[_0xd084('0x44')]=_['intersection'](_0x2428a0[_0xd084('0x40')],qs[_0xd084('0x45')](_0x13697d[_0xd084('0x41')][_0xd084('0x45')]));_0x56546a[_0xd084('0x44')]=_0x56546a[_0xd084('0x44')][_0xd084('0x46')]?_0x56546a[_0xd084('0x44')]:_0x2428a0[_0xd084('0x40')];if(!_0x13697d[_0xd084('0x41')][_0xd084('0x47')](_0xd084('0x48'))){_0x56546a[_0xd084('0x2c')]=qs['limit'](_0x13697d[_0xd084('0x41')][_0xd084('0x2c')]);_0x56546a[_0xd084('0x2a')]=qs['offset'](_0x13697d[_0xd084('0x41')][_0xd084('0x2a')]);}_0x56546a[_0xd084('0x49')]=qs[_0xd084('0x4a')](_0x13697d[_0xd084('0x41')][_0xd084('0x4a')]);_0x56546a[_0xd084('0x4d')]=qs[_0xd084('0x43')](_[_0xd084('0x4b')](_0x13697d[_0xd084('0x41')],_0x2428a0[_0xd084('0x43')]));_0x56546a[_0xd084('0x4d')]['FaxAccountId']=_0x12af34['id'];if(_0x13697d['query'][_0xd084('0x4c')]){_0x56546a[_0xd084('0x4d')]=_[_0xd084('0x4e')](_0x56546a['where'],{'$or':_['map'](_0x56546a[_0xd084('0x44')],function(_0x4c8454){var _0x460b6f={};_0x460b6f[_0x4c8454]={'$like':'%'+_0x13697d[_0xd084('0x41')][_0xd084('0x4c')]+'%'};return _0x460b6f;})});}if(_0x13697d[_0xd084('0x41')]['$gte']){var _0x33baaa=_0x13697d[_0xd084('0x41')][_0xd084('0x9b')][_0xd084('0x9c')](',');var _0x4419c8={};_0x4419c8[_0x33baaa[0x0]]={'$gte':moment(_0x33baaa[0x1])[_0xd084('0x9d')]('YYYY-MM-DD\x20HH:mm:ss')};_0x56546a[_0xd084('0x4d')]=_[_0xd084('0x4e')](_0x56546a[_0xd084('0x4d')],_0x4419c8);}_0x56546a=_[_0xd084('0x4e')]({},_0x56546a,_0x13697d[_0xd084('0x57')]);return db[_0xd084('0x9e')][_0xd084('0x2d')]({'where':_0x56546a['where']})[_0xd084('0x1d')](function(_0xe762a3){_0xbf6a5a['count']=_0xe762a3;if(_0x13697d[_0xd084('0x41')][_0xd084('0x50')]){_0x56546a[_0xd084('0x56')]=[{'all':!![]}];}return db[_0xd084('0x9e')][_0xd084('0x51')](_0x56546a);})[_0xd084('0x1d')](function(_0x25aea5){_0xbf6a5a[_0xd084('0x52')]=_0x25aea5;return _0xbf6a5a;});}})[_0xd084('0x1d')](respondWithFilteredResult(_0x25fc67,_0x56546a))[_0xd084('0x59')](handleError(_0x25fc67,null));};exports['send']=function(_0xf6245,_0x2c3e50,_0x15dec4){var _0x12253b,_0x4aae3d={},_0x227e3c;if(_0xf6245[_0xd084('0x61')]['to']){_0x227e3c=_0xf6245[_0xd084('0x61')]['to'][0x0];}return db[_0xd084('0x3b')]['find']({'where':{'id':_0xf6245[_0xd084('0x62')]['id']},'include':[{'model':db[_0xd084('0x9f')],'as':'List','include':[{'model':db[_0xd084('0x73')],'as':_0xd084('0xa0'),'where':{'fax':_0x227e3c},'limit':0x1,'order':[['updatedAt',_0xd084('0xa1')]]}]}]})[_0xd084('0x1d')](handleEntityNotFound(_0x2c3e50,null))['then'](function(_0x4e8b79){_0x12253b=_0x4e8b79;if(_0xf6245['body'][_0xd084('0xa2')]&&_0xf6245[_0xd084('0x61')]['attachments'][_0xd084('0x46')]){for(var _0x273f70=0x0;_0x273f70<_0xf6245[_0xd084('0x61')][_0xd084('0xa2')][_0xd084('0x46')];_0x273f70+=0x1){_0xf6245[_0xd084('0x61')][_0xd084('0xa2')][_0x273f70]={'filename':_0xf6245[_0xd084('0x61')]['attachments'][_0x273f70][_0xd084('0x37')],'id':_0xf6245[_0xd084('0x61')][_0xd084('0xa2')][_0x273f70]['id'],'path':path[_0xd084('0xa3')](config[_0xd084('0xa4')],'server/files/attachments',_0xf6245['body']['attachments'][_0x273f70]['basename'])};}}return respondWithRpcPromise('CheckAfterSend',_0xd084('0xa5'),{'FaxAccountId':_[_0xd084('0xa6')](_0xf6245[_0xd084('0x62')]['id'])?undefined:_0xf6245['params']['id'],'path':_[_0xd084('0xa6')](_0xf6245[_0xd084('0x61')][_0xd084('0xa2')][0x0][_0xd084('0x6')])?undefined:_0xf6245[_0xd084('0x61')][_0xd084('0xa2')][0x0][_0xd084('0x6')],'fax':_[_0xd084('0xa6')](_0xf6245[_0xd084('0x61')]['to'][0x0])?undefined:_0xf6245[_0xd084('0x61')]['to'][0x0]},client9002);})[_0xd084('0x1d')](function(){if(_0x12253b){if(_[_0xd084('0xa6')](_0xf6245[_0xd084('0x61')][_0xd084('0xa7')])){_0xf6245['body'][_0xd084('0xa7')]=util[_0xd084('0x9d')](_0xd084('0xa8'),_0x12253b['name'],_0x12253b[_0xd084('0xa9')]);}if(_0x12253b[_0xd084('0xaa')]){if(_0x12253b[_0xd084('0xaa')][_0xd084('0xa0')][_0xd084('0x46')]){return _0x12253b[_0xd084('0xaa')][_0xd084('0xa0')][0x0];}else{return db['CmContact'][_0xd084('0x5a')](_['defaults'](_0xf6245[_0xd084('0x61')],{'firstName':_0xf6245['body']['to'][0x0],'phone':_0xf6245[_0xd084('0x61')]['to'][0x0],'fax':_0xf6245[_0xd084('0x61')]['to'][0x0],'ListId':_0x12253b['ListId']}));}}else{throw new Error('List\x20not\x20found');}}else{throw new Error(_0xd084('0xab'));}})['then'](function(_0xc82d5f){if(_0xc82d5f){return db[_0xd084('0x70')][_0xd084('0x58')]({'where':{'ContactId':_0xc82d5f['id'],'closed':![],'FaxAccountId':_0x12253b['id']}})[_0xd084('0x1d')](function(_0xdab24e){if(_0xdab24e){return[_0xdab24e,![]];}return db[_0xd084('0x70')][_0xd084('0x5a')]({'UserId':_0xf6245[_0xd084('0x5b')]['id'],'ContactId':_0xc82d5f['id'],'FaxAccountId':_0x12253b['id'],'fax':_0xf6245['body']['to'][0x0],'firstMsgDirection':_0xd084('0xac'),'Messages':[_[_0xd084('0x4e')](_0xf6245['body'],{'read':![],'body':_0xf6245[_0xd084('0x61')][_0xd084('0xa2')][0x0][_0xd084('0xad')],'FaxAccountId':_0x12253b['id'],'UserId':_0xf6245[_0xd084('0x5b')]['id'],'ContactId':_0xc82d5f['id'],'AttachmentId':_0xf6245[_0xd084('0x61')][_0xd084('0xa2')][0x0]['id']})]},{'include':[{'model':db[_0xd084('0x9e')],'as':_0xd084('0xae')}]})[_0xd084('0x1d')](function(_0x37ad6b){return[_0x37ad6b,!![]];});});}else{throw new Error('Contact\x20not\x20found');}})[_0xd084('0xaf')](function(_0x3495e8,_0x2ae148){if(_0x2ae148){return _0x3495e8;}return db[_0xd084('0x9e')]['create']({'direction':'out','read':![],'body':_0xf6245[_0xd084('0x61')][_0xd084('0xa2')][0x0][_0xd084('0xad')],'FaxAccountId':_0x12253b['id'],'FaxInteractionId':_0x3495e8['id'],'UserId':_0xf6245['user']['id'],'ContactId':_0x3495e8[_0xd084('0xb0')],'AttachmentId':_0xf6245[_0xd084('0x61')][_0xd084('0xa2')][0x0]['id']})[_0xd084('0x1d')](function(_0x544396){_0x3495e8[_0xd084('0xb1')][_0xd084('0xae')]=[];_0x3495e8['dataValues'][_0xd084('0xae')][_0xd084('0x87')](_0x544396[_0xd084('0xb1')]);return _0x3495e8;});})['then'](function(_0x237c7a){respondWithRpcPromise(_0xd084('0xb2'),_0xd084('0xb2'),{'FaxAccountId':_[_0xd084('0xa6')](_0xf6245[_0xd084('0x62')]['id'])?undefined:_0xf6245['params']['id'],'path':_[_0xd084('0xa6')](_0xf6245[_0xd084('0x61')][_0xd084('0xa2')][0x0][_0xd084('0x6')])?undefined:_0xf6245[_0xd084('0x61')][_0xd084('0xa2')][0x0]['path'],'fax':_[_0xd084('0xa6')](_0xf6245['body']['to'][0x0])?undefined:_0xf6245[_0xd084('0x61')]['to'][0x0],'AttachmentId':_0xf6245['body']['attachments'][0x0]['id']},client9002)[_0xd084('0x1d')](function(_0xc7c828){logger['info'](_0xd084('0xb3'),_0xc7c828);})[_0xd084('0x59')](function(_0x4930e9){logger[_0xd084('0xb4')](_0xd084('0xb3'),_0x4930e9);});return _0x237c7a;})['then'](respondWithResult(_0x2c3e50,null))[_0xd084('0x59')](handleError(_0x2c3e50,null));};exports[_0xd084('0xb5')]=function(_0x1c2a58,_0x267a6c,_0x138bf8){return db[_0xd084('0x3b')]['find']({'where':{'id':_0x1c2a58['params']['id']}})[_0xd084('0x1d')](handleEntityNotFound(_0x267a6c,null))[_0xd084('0x1d')](function(_0x107545){if(_0x107545){return _0x107545['addAgents'](_0x1c2a58[_0xd084('0x61')][_0xd084('0x6a')],_[_0xd084('0x71')](_0x1c2a58['body'],[_0xd084('0x6a'),'id'])||{})[_0xd084('0xaf')](function(_0x1de528){for(var _0x2ea12e=0x0;_0x2ea12e<_0x1c2a58[_0xd084('0x61')][_0xd084('0x6a')][_0xd084('0x46')];_0x2ea12e+=0x1){socket[_0xd084('0xb6')](_0xd084('0xb7'),{'UserId':Number(_0x1c2a58[_0xd084('0x61')][_0xd084('0x6a')][_0x2ea12e]),'FaxAccountId':Number(_0x1c2a58[_0xd084('0x62')]['id'])});}return _0x1de528;});}})['then'](respondWithResult(_0x267a6c,null))['catch'](handleError(_0x267a6c,null));};exports['removeAgents']=function(_0x345eee,_0xb2040b,_0x32b29c){return db[_0xd084('0x3b')]['find']({'where':{'id':_0x345eee[_0xd084('0x62')]['id']}})[_0xd084('0x1d')](handleEntityNotFound(_0xb2040b,null))['then'](function(_0x3ce0b6){if(_0x3ce0b6){return _0x3ce0b6[_0xd084('0xb8')](_0x345eee[_0xd084('0x41')][_0xd084('0x6a')])[_0xd084('0x1d')](function(){if(_[_0xd084('0xb9')](_0x345eee[_0xd084('0x41')][_0xd084('0x6a')])){for(var _0x17f48e=0x0;_0x17f48e<_0x345eee[_0xd084('0x41')][_0xd084('0x6a')][_0xd084('0x46')];_0x17f48e+=0x1){socket[_0xd084('0xb6')](_0xd084('0xba'),{'UserId':Number(_0x345eee[_0xd084('0x41')]['ids'][_0x17f48e]),'FaxAccountId':Number(_0x345eee['params']['id'])});}}else{socket[_0xd084('0xb6')](_0xd084('0xba'),{'UserId':Number(_0x345eee['query']['ids']),'FaxAccountId':Number(_0x345eee[_0xd084('0x62')]['id'])});}});}})[_0xd084('0x1d')](respondWithStatusCode(_0xb2040b,null))[_0xd084('0x59')](handleError(_0xb2040b,null));};exports[_0xd084('0xbb')]=function(_0x86bdfc,_0x3af317,_0x5e49f8){var _0x3cfe75={};var _0x292f42={};var _0x1a14cf;var _0x1ba2c6;return db[_0xd084('0x3b')]['findOne']({'where':{'id':_0x86bdfc[_0xd084('0x62')]['id']}})['then'](handleEntityNotFound(_0x3af317,null))['then'](function(_0x1968ac){if(_0x1968ac){_0x1a14cf=_0x1968ac;_0x292f42[_0xd084('0x40')]=_[_0xd084('0x42')](db[_0xd084('0x74')][_0xd084('0x3c')]);_0x292f42['query']=_[_0xd084('0x42')](_0x86bdfc[_0xd084('0x41')]);_0x292f42[_0xd084('0x43')]=_[_0xd084('0x55')](_0x292f42[_0xd084('0x40')],_0x292f42[_0xd084('0x41')]);_0x3cfe75[_0xd084('0x44')]=_[_0xd084('0x55')](_0x292f42[_0xd084('0x40')],qs[_0xd084('0x45')](_0x86bdfc[_0xd084('0x41')][_0xd084('0x45')]));_0x3cfe75[_0xd084('0x44')]=_0x3cfe75[_0xd084('0x44')][_0xd084('0x46')]?_0x3cfe75[_0xd084('0x44')]:_0x292f42[_0xd084('0x40')];_0x3cfe75['order']=qs['sort'](_0x86bdfc['query'][_0xd084('0x4a')]);_0x3cfe75[_0xd084('0x4d')]=qs[_0xd084('0x43')](_['pick'](_0x86bdfc[_0xd084('0x41')],_0x292f42[_0xd084('0x43')]));if(_0x86bdfc[_0xd084('0x41')][_0xd084('0x4c')]){_0x3cfe75['where']=_[_0xd084('0x4e')](_0x3cfe75[_0xd084('0x4d')],{'$or':_[_0xd084('0x3a')](_0x3cfe75[_0xd084('0x44')],function(_0x130d98){var _0x275a84={};_0x275a84[_0x130d98]={'$like':'%'+_0x86bdfc[_0xd084('0x41')][_0xd084('0x4c')]+'%'};return _0x275a84;})});}_0x3cfe75=_[_0xd084('0x4e')]({},_0x3cfe75,_0x86bdfc[_0xd084('0x57')]);return _0x1a14cf[_0xd084('0xbb')](_0x3cfe75);}})[_0xd084('0x1d')](function(_0x4589bb){if(_0x4589bb){_0x1ba2c6=_0x4589bb[_0xd084('0x46')];if(!_0x86bdfc[_0xd084('0x41')]['hasOwnProperty'](_0xd084('0x48'))){_0x3cfe75[_0xd084('0x2c')]=qs['limit'](_0x86bdfc[_0xd084('0x41')]['limit']);_0x3cfe75[_0xd084('0x2a')]=qs['offset'](_0x86bdfc['query'][_0xd084('0x2a')]);}return _0x1a14cf[_0xd084('0xbb')](_0x3cfe75);}})[_0xd084('0x1d')](function(_0x438a41){if(_0x438a41){return _0x438a41?{'count':_0x1ba2c6,'rows':_0x438a41}:null;}})[_0xd084('0x1d')](respondWithResult(_0x3af317,null))[_0xd084('0x59')](handleError(_0x3af317,null));};
\ No newline at end of file
+var _0xa656=['find','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','userProfileId','autoAssociation','create','describe','FaxAccountId','Disposition','getDispositions','findOne','removeDispositions','ids','addAnswer','CannedAnswer','getAnswers','options','removeAnswers','addInteraction','FaxInteraction','omit','CmContact','User','fullname','Tag','Tags','color','tag','addApplications','sequelize','transaction','FaxApplication','bulkCreate','findAndCountAll','priority','getApplications','context','exten','localstationid','app','system','description','Fax\x20Extension','appdata','push','Answer','CDR(type)=inbound-fax','Set','ecm','faxdetect','headerinfo','maxrate','minrate','modem','FAXOPT(','Wait','ReceiveFax','addAccountApplications','VoiceExtension','updateAccountApplications','tech','key','createdAt','TrunkId','ListId','getMessages','FaxMessage','$gte','split','format','YYYY-MM-DD\x20HH:mm:ss','CmList','List','Contacts','updatedAt','DESC','attachments','root','server/files/attachments','basename','CheckAfterSend','isNil','from','\x22%s\x22\x20<%s>','fax','List\x20not\x20found','out','filename','Messages','Contact\x20not\x20found','spread','dataValues','SendFax','SendFaxRpc,\x20%s','addAgents','emit','userFaxAccount:save','removeAgents','isArray','userFaxAccount:remove','getAgents','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','lodash','squel','crypto','jsforce','desk.js','papaparse','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','./faxAccount.socket','register','http','client','request','info','FaxAccount,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','catch','sendStatus','end','status','json','offset','limit','undefined','count','set','Content-Range','apply','reject','save','update','destroy','get','FaxAccounts','UserProfileResource','then','stack','name','send','Pause','mandatoryDispositionPause','FaxAccount','fieldName','type','model','map','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','VIRTUAL','filter','includeAll','include','findAll','rows','show','params','rawAttributes'];(function(_0x40a045,_0x516f0e){var _0x1a687c=function(_0x48c9fe){while(--_0x48c9fe){_0x40a045['push'](_0x40a045['shift']());}};_0x1a687c(++_0x516f0e);}(_0xa656,0x1f1));var _0x6a65=function(_0x5b1f97,_0x1c4dd0){_0x5b1f97=_0x5b1f97-0x0;var _0x1eb8d9=_0xa656[_0x5b1f97];return _0x1eb8d9;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x6a65('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x6a65('0x1'));var rp=require(_0x6a65('0x2'));var moment=require(_0x6a65('0x3'));var BPromise=require(_0x6a65('0x4'));var Mustache=require(_0x6a65('0x5'));var util=require(_0x6a65('0x6'));var path=require(_0x6a65('0x7'));var sox=require(_0x6a65('0x8'));var csv=require(_0x6a65('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x6a65('0xa'));var squel=require(_0x6a65('0xb'));var crypto=require(_0x6a65('0xc'));var jsforce=require(_0x6a65('0xd'));var deskjs=require(_0x6a65('0xe'));var toCsv=require(_0x6a65('0x9'));var querystring=require('querystring');var Papa=require(_0x6a65('0xf'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x6a65('0x10'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x6a65('0x11'));var logger=require(_0x6a65('0x12'))(_0x6a65('0x13'));var utils=require(_0x6a65('0x14'));var config=require(_0x6a65('0x15'));var licenseUtil=require(_0x6a65('0x16'));var db=require(_0x6a65('0x17'))['db'];config[_0x6a65('0x18')]=_[_0x6a65('0x19')](config[_0x6a65('0x18')],{'host':_0x6a65('0x1a'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x6a65('0x18')]));require(_0x6a65('0x1b'))[_0x6a65('0x1c')](socket);var jayson=require('jayson/promise');var client=jayson['client'][_0x6a65('0x1d')]({'port':0x232c});var client9002=jayson[_0x6a65('0x1e')][_0x6a65('0x1d')]({'port':0x232a});function respondWithRpcPromise(_0x4aac48,_0xa52494,_0x1af5b3,_0x5b79db){return new BPromise(function(_0x50b1de,_0x590db4){var _0x130981=_0x5b79db||client;return _0x130981[_0x6a65('0x1f')](_0x4aac48,_0x1af5b3)['then'](function(_0x180141){logger[_0x6a65('0x20')](_0x6a65('0x21'),_0xa52494,_0x6a65('0x22'));logger[_0x6a65('0x23')]('FaxAccount,\x20%s,\x20%s,\x20%s',_0xa52494,'request\x20sent',JSON[_0x6a65('0x24')](_0x180141));if(_0x180141[_0x6a65('0x25')]){if(_0x180141[_0x6a65('0x25')][_0x6a65('0x26')]===0x1f4){logger['error']('FaxAccount,\x20%s,\x20%s',_0xa52494,_0x180141['error']['message']);return _0x590db4(_0x180141[_0x6a65('0x25')][_0x6a65('0x27')]);}logger[_0x6a65('0x25')](_0x6a65('0x21'),_0xa52494,_0x180141[_0x6a65('0x25')][_0x6a65('0x27')]);return _0x50b1de(_0x180141[_0x6a65('0x25')][_0x6a65('0x27')]);}else{logger[_0x6a65('0x20')](_0x6a65('0x21'),_0xa52494,'request\x20sent');_0x50b1de(_0x180141[_0x6a65('0x28')][_0x6a65('0x27')]);}})[_0x6a65('0x29')](function(_0x11e04a){logger[_0x6a65('0x25')](_0x6a65('0x21'),_0xa52494,_0x11e04a);_0x590db4(_0x11e04a);});});}function respondWithStatusCode(_0x50833b,_0x4394c2){_0x4394c2=_0x4394c2||0xcc;return function(_0x1c9638){if(_0x1c9638){return _0x50833b[_0x6a65('0x2a')](_0x4394c2);}return _0x50833b['status'](_0x4394c2)[_0x6a65('0x2b')]();};}function respondWithResult(_0x27dcf3,_0x426f03){_0x426f03=_0x426f03||0xc8;return function(_0x5d05df){if(_0x5d05df){return _0x27dcf3[_0x6a65('0x2c')](_0x426f03)[_0x6a65('0x2d')](_0x5d05df);}};}function respondWithFilteredResult(_0x3f9184,_0x262c9a){return function(_0x11b5c9){if(_0x11b5c9){var _0x16d3bc=typeof _0x262c9a[_0x6a65('0x2e')]==='undefined'&&typeof _0x262c9a[_0x6a65('0x2f')]===_0x6a65('0x30');var _0x187d5e=_0x11b5c9[_0x6a65('0x31')];var _0x575b5d=_0x16d3bc?0x0:_0x262c9a[_0x6a65('0x2e')];var _0x3eff49=_0x16d3bc?_0x11b5c9[_0x6a65('0x31')]:_0x262c9a[_0x6a65('0x2e')]+_0x262c9a['limit'];var _0x3711cc;if(_0x3eff49>=_0x187d5e){_0x3eff49=_0x187d5e;_0x3711cc=0xc8;}else{_0x3711cc=0xce;}_0x3f9184[_0x6a65('0x2c')](_0x3711cc);return _0x3f9184[_0x6a65('0x32')](_0x6a65('0x33'),_0x575b5d+'-'+_0x3eff49+'/'+_0x187d5e)[_0x6a65('0x2d')](_0x11b5c9);}return null;};}function patchUpdates(_0x55a087){return function(_0x5b5a46){try{jsonpatch[_0x6a65('0x34')](_0x5b5a46,_0x55a087,!![]);}catch(_0x406d49){return BPromise[_0x6a65('0x35')](_0x406d49);}return _0x5b5a46[_0x6a65('0x36')]();};}function saveUpdates(_0x76c74,_0x3063c0){return function(_0x36b1c8){if(_0x36b1c8){return _0x36b1c8[_0x6a65('0x37')](_0x76c74)['then'](function(_0x38c3b6){return _0x38c3b6;});}return null;};}function removeEntity(_0x4c82a4,_0x46af65){return function(_0x424574){if(_0x424574){return _0x424574[_0x6a65('0x38')]()['then'](function(){var _0x473dbf=_0x424574[_0x6a65('0x39')]({'plain':!![]});var _0x1b8fbb=_0x6a65('0x3a');return db[_0x6a65('0x3b')][_0x6a65('0x38')]({'where':{'type':_0x1b8fbb,'resourceId':_0x473dbf['id']}})[_0x6a65('0x3c')](function(){return _0x424574;});})[_0x6a65('0x3c')](function(){_0x4c82a4[_0x6a65('0x2c')](0xcc)[_0x6a65('0x2b')]();});}};}function handleEntityNotFound(_0x24f847,_0x26f636){return function(_0x1f174a){if(!_0x1f174a){_0x24f847[_0x6a65('0x2a')](0x194);}return _0x1f174a;};}function handleError(_0x494548,_0x18760d){_0x18760d=_0x18760d||0x1f4;return function(_0x232946){logger[_0x6a65('0x25')](_0x232946[_0x6a65('0x3d')]);if(_0x232946['name']){delete _0x232946[_0x6a65('0x3e')];}_0x494548[_0x6a65('0x2c')](_0x18760d)[_0x6a65('0x3f')](_0x232946);};}exports['index']=function(_0x283389,_0x36f101){var _0x3b59c9={'include':[{'model':db[_0x6a65('0x40')],'as':_0x6a65('0x41')}]},_0x6dd2f1={},_0x42dfec={'count':0x0,'rows':[]};var _0x4dc8ce=_['map'](db[_0x6a65('0x42')]['rawAttributes'],function(_0x2493df){return{'name':_0x2493df[_0x6a65('0x43')],'type':_0x2493df[_0x6a65('0x44')]['key']};});_0x6dd2f1[_0x6a65('0x45')]=_[_0x6a65('0x46')](_0x4dc8ce,_0x6a65('0x3e'));_0x6dd2f1[_0x6a65('0x47')]=_[_0x6a65('0x48')](_0x283389[_0x6a65('0x47')]);_0x6dd2f1[_0x6a65('0x49')]=_[_0x6a65('0x4a')](_0x6dd2f1['model'],_0x6dd2f1[_0x6a65('0x47')]);_0x3b59c9[_0x6a65('0x4b')]=_[_0x6a65('0x4a')](_0x6dd2f1[_0x6a65('0x45')],qs[_0x6a65('0x4c')](_0x283389['query'][_0x6a65('0x4c')]));_0x3b59c9[_0x6a65('0x4b')]=_0x3b59c9[_0x6a65('0x4b')][_0x6a65('0x4d')]?_0x3b59c9['attributes']:_0x6dd2f1[_0x6a65('0x45')];if(!_0x283389[_0x6a65('0x47')][_0x6a65('0x4e')](_0x6a65('0x4f'))){_0x3b59c9[_0x6a65('0x2f')]=qs['limit'](_0x283389['query'][_0x6a65('0x2f')]);_0x3b59c9[_0x6a65('0x2e')]=qs['offset'](_0x283389[_0x6a65('0x47')][_0x6a65('0x2e')]);}_0x3b59c9[_0x6a65('0x50')]=qs[_0x6a65('0x51')](_0x283389[_0x6a65('0x47')]['sort']);_0x3b59c9[_0x6a65('0x52')]=qs[_0x6a65('0x49')](_[_0x6a65('0x53')](_0x283389[_0x6a65('0x47')],_0x6dd2f1['filters']),_0x4dc8ce);if(_0x283389['query']['filter']){_0x3b59c9[_0x6a65('0x52')]=_[_0x6a65('0x54')](_0x3b59c9[_0x6a65('0x52')],{'$or':_[_0x6a65('0x46')](_0x4dc8ce,function(_0x1ef9cc){if(_0x1ef9cc[_0x6a65('0x44')]!==_0x6a65('0x55')){var _0xa7f071={};_0xa7f071[_0x1ef9cc[_0x6a65('0x3e')]]={'$like':'%'+_0x283389[_0x6a65('0x47')][_0x6a65('0x56')]+'%'};return _0xa7f071;}})});}_0x3b59c9=_[_0x6a65('0x54')]({},_0x3b59c9,_0x283389['options']);var _0x565e79={'where':_0x3b59c9[_0x6a65('0x52')]};return db['FaxAccount']['count'](_0x565e79)['then'](function(_0xcabecd){_0x42dfec['count']=_0xcabecd;if(_0x283389[_0x6a65('0x47')][_0x6a65('0x57')]){_0x3b59c9[_0x6a65('0x58')]=[{'all':!![]}];}return db[_0x6a65('0x42')][_0x6a65('0x59')](_0x3b59c9);})[_0x6a65('0x3c')](function(_0x4fcd4d){_0x42dfec[_0x6a65('0x5a')]=_0x4fcd4d;return _0x42dfec;})[_0x6a65('0x3c')](respondWithFilteredResult(_0x36f101,_0x3b59c9))[_0x6a65('0x29')](handleError(_0x36f101,null));};exports[_0x6a65('0x5b')]=function(_0x16efcd,_0x1a85a5){var _0x264298={'raw':![],'where':{'id':_0x16efcd[_0x6a65('0x5c')]['id']},'include':[{'model':db[_0x6a65('0x40')],'as':_0x6a65('0x41')}]},_0x464253={};_0x464253[_0x6a65('0x45')]=_[_0x6a65('0x48')](db['FaxAccount'][_0x6a65('0x5d')]);_0x464253[_0x6a65('0x47')]=_[_0x6a65('0x48')](_0x16efcd[_0x6a65('0x47')]);_0x464253[_0x6a65('0x49')]=_[_0x6a65('0x4a')](_0x464253[_0x6a65('0x45')],_0x464253[_0x6a65('0x47')]);_0x264298[_0x6a65('0x4b')]=_[_0x6a65('0x4a')](_0x464253[_0x6a65('0x45')],qs[_0x6a65('0x4c')](_0x16efcd[_0x6a65('0x47')][_0x6a65('0x4c')]));_0x264298[_0x6a65('0x4b')]=_0x264298[_0x6a65('0x4b')]['length']?_0x264298[_0x6a65('0x4b')]:_0x464253['model'];if(_0x16efcd[_0x6a65('0x47')]['includeAll']){_0x264298['include']=[{'all':!![]}];}_0x264298=_[_0x6a65('0x54')]({},_0x264298,_0x16efcd['options']);return db[_0x6a65('0x42')][_0x6a65('0x5e')](_0x264298)[_0x6a65('0x3c')](handleEntityNotFound(_0x1a85a5,null))[_0x6a65('0x3c')](respondWithResult(_0x1a85a5,null))['catch'](handleError(_0x1a85a5,null));};exports['create']=function(_0x3d473f,_0x513ba9){return db['FaxAccount']['create'](_0x3d473f[_0x6a65('0x5f')],{})['then'](function(_0x1fd87b){var _0x2a9bdd=_0x3d473f[_0x6a65('0x60')]['get']({'plain':!![]});if(!_0x2a9bdd)throw new Error(_0x6a65('0x61'));if(_0x2a9bdd[_0x6a65('0x62')]===_0x6a65('0x60')){var _0x435ed5=_0x1fd87b['get']({'plain':!![]});var _0x17f959=_0x6a65('0x3a');return db['UserProfileSection'][_0x6a65('0x5e')]({'where':{'name':_0x17f959,'userProfileId':_0x2a9bdd[_0x6a65('0x63')]},'raw':!![]})['then'](function(_0x2fdea6){if(_0x2fdea6&&_0x2fdea6[_0x6a65('0x64')]===0x0){return db[_0x6a65('0x3b')][_0x6a65('0x65')]({'name':_0x435ed5[_0x6a65('0x3e')],'resourceId':_0x435ed5['id'],'type':_0x2fdea6[_0x6a65('0x3e')],'sectionId':_0x2fdea6['id']},{})['then'](function(){return _0x1fd87b;});}else{return _0x1fd87b;}})[_0x6a65('0x29')](function(_0x9eb383){logger[_0x6a65('0x25')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x9eb383);throw _0x9eb383;});}return _0x1fd87b;})[_0x6a65('0x3c')](respondWithResult(_0x513ba9,0xc9))[_0x6a65('0x29')](handleError(_0x513ba9,null));};exports[_0x6a65('0x37')]=function(_0x5b908d,_0x4f8a8f){if(_0x5b908d['body']['id']){delete _0x5b908d[_0x6a65('0x5f')]['id'];}return db[_0x6a65('0x42')][_0x6a65('0x5e')]({'where':{'id':_0x5b908d[_0x6a65('0x5c')]['id']},'include':[{'model':db[_0x6a65('0x40')],'as':_0x6a65('0x41')}]})['then'](handleEntityNotFound(_0x4f8a8f,null))[_0x6a65('0x3c')](saveUpdates(_0x5b908d[_0x6a65('0x5f')],null))[_0x6a65('0x3c')](respondWithResult(_0x4f8a8f,null))[_0x6a65('0x29')](handleError(_0x4f8a8f,null));};exports[_0x6a65('0x38')]=function(_0xbb360e,_0x332102){return db[_0x6a65('0x42')][_0x6a65('0x5e')]({'where':{'id':_0xbb360e[_0x6a65('0x5c')]['id']}})[_0x6a65('0x3c')](handleEntityNotFound(_0x332102,null))[_0x6a65('0x3c')](removeEntity(_0x332102,null))[_0x6a65('0x29')](handleError(_0x332102,null));};exports['describe']=function(_0x18ec16,_0x4d7551){return db[_0x6a65('0x42')][_0x6a65('0x66')]()[_0x6a65('0x3c')](respondWithResult(_0x4d7551,null))[_0x6a65('0x29')](handleError(_0x4d7551,null));};exports['addDisposition']=function(_0x4a4ce0,_0x3ad3ee,_0x4b73e9){if(_0x4a4ce0['body']['id']){delete _0x4a4ce0['body']['id'];}return db['FaxAccount']['find']({'where':{'id':_0x4a4ce0[_0x6a65('0x5c')]['id']}})[_0x6a65('0x3c')](handleEntityNotFound(_0x3ad3ee,null))[_0x6a65('0x3c')](function(_0x4cab31){if(_0x4cab31){_0x4a4ce0[_0x6a65('0x5f')][_0x6a65('0x67')]=_0x4cab31['id'];return db[_0x6a65('0x68')][_0x6a65('0x65')](_0x4a4ce0[_0x6a65('0x5f')]);}})[_0x6a65('0x3c')](respondWithResult(_0x3ad3ee,null))[_0x6a65('0x29')](handleError(_0x3ad3ee,null));};exports[_0x6a65('0x69')]=function(_0x40eb63,_0xcd0ffa,_0x264275){var _0x46376f={'raw':![],'where':{}};var _0x4f13b9={};var _0x4ae453={'count':0x0,'rows':[]};return db[_0x6a65('0x42')][_0x6a65('0x6a')]({'where':{'id':_0x40eb63[_0x6a65('0x5c')]['id']}})[_0x6a65('0x3c')](handleEntityNotFound(_0xcd0ffa,null))[_0x6a65('0x3c')](function(_0x755e50){if(_0x755e50){_0x4f13b9['model']=_['keys'](db[_0x6a65('0x68')][_0x6a65('0x5d')]);_0x4f13b9[_0x6a65('0x47')]=_[_0x6a65('0x48')](_0x40eb63[_0x6a65('0x47')]);_0x4f13b9[_0x6a65('0x49')]=_[_0x6a65('0x4a')](_0x4f13b9[_0x6a65('0x45')],_0x4f13b9[_0x6a65('0x47')]);_0x46376f['attributes']=_[_0x6a65('0x4a')](_0x4f13b9[_0x6a65('0x45')],qs[_0x6a65('0x4c')](_0x40eb63[_0x6a65('0x47')][_0x6a65('0x4c')]));_0x46376f['attributes']=_0x46376f[_0x6a65('0x4b')]['length']?_0x46376f['attributes']:_0x4f13b9[_0x6a65('0x45')];if(!_0x40eb63[_0x6a65('0x47')][_0x6a65('0x4e')](_0x6a65('0x4f'))){_0x46376f['limit']=qs[_0x6a65('0x2f')](_0x40eb63[_0x6a65('0x47')]['limit']);_0x46376f[_0x6a65('0x2e')]=qs[_0x6a65('0x2e')](_0x40eb63['query'][_0x6a65('0x2e')]);}_0x46376f[_0x6a65('0x50')]=qs[_0x6a65('0x51')](_0x40eb63[_0x6a65('0x47')][_0x6a65('0x51')]);_0x46376f[_0x6a65('0x52')]=qs[_0x6a65('0x49')](_['pick'](_0x40eb63[_0x6a65('0x47')],_0x4f13b9['filters']));_0x46376f['where']['FaxAccountId']=_0x755e50['id'];if(_0x40eb63[_0x6a65('0x47')][_0x6a65('0x56')]){_0x46376f[_0x6a65('0x52')]=_[_0x6a65('0x54')](_0x46376f[_0x6a65('0x52')],{'$or':_[_0x6a65('0x46')](_0x46376f[_0x6a65('0x4b')],function(_0x19a4ef){var _0x1e2469={};_0x1e2469[_0x19a4ef]={'$like':'%'+_0x40eb63[_0x6a65('0x47')]['filter']+'%'};return _0x1e2469;})});}_0x46376f=_[_0x6a65('0x54')]({},_0x46376f,_0x40eb63['options']);return db['Disposition'][_0x6a65('0x31')]({'where':_0x46376f[_0x6a65('0x52')]})['then'](function(_0xb069c2){_0x4ae453['count']=_0xb069c2;if(_0x40eb63['query'][_0x6a65('0x57')]){_0x46376f[_0x6a65('0x58')]=[{'all':!![]}];}return db[_0x6a65('0x68')][_0x6a65('0x59')](_0x46376f);})[_0x6a65('0x3c')](function(_0x174a08){_0x4ae453[_0x6a65('0x5a')]=_0x174a08;return _0x4ae453;});}})[_0x6a65('0x3c')](respondWithFilteredResult(_0xcd0ffa,_0x46376f))[_0x6a65('0x29')](handleError(_0xcd0ffa,null));};exports[_0x6a65('0x6b')]=function(_0x5f383d,_0x5a3700,_0xc296a5){return db[_0x6a65('0x42')]['find']({'where':{'id':_0x5f383d[_0x6a65('0x5c')]['id']}})['then'](handleEntityNotFound(_0x5a3700,null))['then'](function(_0x54bef2){if(_0x54bef2){return _0x54bef2[_0x6a65('0x6b')](_0x5f383d['query'][_0x6a65('0x6c')]);}})[_0x6a65('0x3c')](respondWithStatusCode(_0x5a3700,null))['catch'](handleError(_0x5a3700,null));};exports[_0x6a65('0x6d')]=function(_0x41146d,_0x51fb14,_0x2fca67){if(_0x41146d[_0x6a65('0x5f')]['id']){delete _0x41146d[_0x6a65('0x5f')]['id'];}return db[_0x6a65('0x42')][_0x6a65('0x5e')]({'where':{'id':_0x41146d['params']['id']}})['then'](handleEntityNotFound(_0x51fb14,null))[_0x6a65('0x3c')](function(_0x455678){if(_0x455678){_0x41146d['body'][_0x6a65('0x67')]=_0x455678['id'];return db[_0x6a65('0x6e')][_0x6a65('0x65')](_0x41146d[_0x6a65('0x5f')]);}})['then'](respondWithResult(_0x51fb14,null))[_0x6a65('0x29')](handleError(_0x51fb14,null));};exports[_0x6a65('0x6f')]=function(_0x234c2e,_0x3a2751,_0x486210){var _0xa2971d={'raw':![],'where':{}};var _0x424901={};var _0x2170a6={'count':0x0,'rows':[]};return db[_0x6a65('0x42')][_0x6a65('0x6a')]({'where':{'id':_0x234c2e[_0x6a65('0x5c')]['id']}})[_0x6a65('0x3c')](handleEntityNotFound(_0x3a2751,null))[_0x6a65('0x3c')](function(_0x33eed7){if(_0x33eed7){_0x424901[_0x6a65('0x45')]=_[_0x6a65('0x48')](db[_0x6a65('0x6e')][_0x6a65('0x5d')]);_0x424901[_0x6a65('0x47')]=_['keys'](_0x234c2e[_0x6a65('0x47')]);_0x424901[_0x6a65('0x49')]=_['intersection'](_0x424901[_0x6a65('0x45')],_0x424901[_0x6a65('0x47')]);_0xa2971d['attributes']=_[_0x6a65('0x4a')](_0x424901['model'],qs['fields'](_0x234c2e[_0x6a65('0x47')][_0x6a65('0x4c')]));_0xa2971d[_0x6a65('0x4b')]=_0xa2971d[_0x6a65('0x4b')][_0x6a65('0x4d')]?_0xa2971d[_0x6a65('0x4b')]:_0x424901[_0x6a65('0x45')];if(!_0x234c2e[_0x6a65('0x47')][_0x6a65('0x4e')](_0x6a65('0x4f'))){_0xa2971d['limit']=qs['limit'](_0x234c2e['query'][_0x6a65('0x2f')]);_0xa2971d[_0x6a65('0x2e')]=qs[_0x6a65('0x2e')](_0x234c2e[_0x6a65('0x47')][_0x6a65('0x2e')]);}_0xa2971d['order']=qs[_0x6a65('0x51')](_0x234c2e[_0x6a65('0x47')]['sort']);_0xa2971d[_0x6a65('0x52')]=qs['filters'](_[_0x6a65('0x53')](_0x234c2e[_0x6a65('0x47')],_0x424901['filters']));_0xa2971d[_0x6a65('0x52')]['FaxAccountId']=_0x33eed7['id'];if(_0x234c2e[_0x6a65('0x47')][_0x6a65('0x56')]){_0xa2971d['where']=_[_0x6a65('0x54')](_0xa2971d[_0x6a65('0x52')],{'$or':_['map'](_0xa2971d['attributes'],function(_0x12f7fd){var _0x195d45={};_0x195d45[_0x12f7fd]={'$like':'%'+_0x234c2e['query'][_0x6a65('0x56')]+'%'};return _0x195d45;})});}_0xa2971d=_[_0x6a65('0x54')]({},_0xa2971d,_0x234c2e[_0x6a65('0x70')]);return db[_0x6a65('0x6e')][_0x6a65('0x31')]({'where':_0xa2971d['where']})['then'](function(_0x556e65){_0x2170a6[_0x6a65('0x31')]=_0x556e65;if(_0x234c2e[_0x6a65('0x47')][_0x6a65('0x57')]){_0xa2971d[_0x6a65('0x58')]=[{'all':!![]}];}return db[_0x6a65('0x6e')][_0x6a65('0x59')](_0xa2971d);})['then'](function(_0x38ec78){_0x2170a6[_0x6a65('0x5a')]=_0x38ec78;return _0x2170a6;});}})[_0x6a65('0x3c')](respondWithFilteredResult(_0x3a2751,_0xa2971d))[_0x6a65('0x29')](handleError(_0x3a2751,null));};exports[_0x6a65('0x71')]=function(_0x2b9345,_0x2a1bbd,_0x40ac14){return db[_0x6a65('0x42')]['find']({'where':{'id':_0x2b9345[_0x6a65('0x5c')]['id']}})[_0x6a65('0x3c')](handleEntityNotFound(_0x2a1bbd,null))['then'](function(_0xbbae09){if(_0xbbae09){return _0xbbae09[_0x6a65('0x71')](_0x2b9345[_0x6a65('0x47')][_0x6a65('0x6c')]);}})[_0x6a65('0x3c')](respondWithStatusCode(_0x2a1bbd,null))[_0x6a65('0x29')](handleError(_0x2a1bbd,null));};exports[_0x6a65('0x72')]=function(_0x1eb47d,_0x1065c9,_0xe79225){return db[_0x6a65('0x73')][_0x6a65('0x5e')]({'where':{'id':_0x1eb47d[_0x6a65('0x5c')]['id']}})[_0x6a65('0x3c')](handleEntityNotFound(_0x1065c9,null))[_0x6a65('0x3c')](function(_0xa75e09){if(_0xa75e09){return _0xa75e09[_0x6a65('0x72')](_0x1eb47d[_0x6a65('0x5f')][_0x6a65('0x6c')],_[_0x6a65('0x74')](_0x1eb47d[_0x6a65('0x5f')],[_0x6a65('0x6c'),'id'])||{});}})[_0x6a65('0x3c')](respondWithResult(_0x1065c9,null))[_0x6a65('0x29')](handleError(_0x1065c9,null));};exports['getInteractions']=function(_0x5f3080,_0x3ad69d,_0x48d082){var _0x10e581={'raw':![],'where':{}};var _0x4d638b={};var _0x212c27={'count':0x0,'rows':[]};return db['FaxAccount'][_0x6a65('0x6a')]({'where':{'id':_0x5f3080['params']['id']}})[_0x6a65('0x3c')](handleEntityNotFound(_0x3ad69d,null))[_0x6a65('0x3c')](function(_0x123140){if(_0x123140){_0x4d638b[_0x6a65('0x45')]=_['keys'](db['FaxInteraction'][_0x6a65('0x5d')]);_0x4d638b[_0x6a65('0x47')]=_[_0x6a65('0x48')](_0x5f3080[_0x6a65('0x47')]);_0x4d638b[_0x6a65('0x49')]=_[_0x6a65('0x4a')](_0x4d638b[_0x6a65('0x45')],_0x4d638b['query']);_0x10e581[_0x6a65('0x4b')]=_['intersection'](_0x4d638b[_0x6a65('0x45')],qs[_0x6a65('0x4c')](_0x5f3080[_0x6a65('0x47')][_0x6a65('0x4c')]));_0x10e581[_0x6a65('0x4b')]=_0x10e581['attributes']['length']?_0x10e581['attributes']:_0x4d638b[_0x6a65('0x45')];if(!_0x5f3080['query'][_0x6a65('0x4e')](_0x6a65('0x4f'))){_0x10e581['limit']=qs['limit'](_0x5f3080['query']['limit']);_0x10e581[_0x6a65('0x2e')]=qs['offset'](_0x5f3080[_0x6a65('0x47')][_0x6a65('0x2e')]);}_0x10e581[_0x6a65('0x50')]=qs[_0x6a65('0x51')](_0x5f3080[_0x6a65('0x47')][_0x6a65('0x51')]);_0x10e581['where']=qs[_0x6a65('0x49')](_[_0x6a65('0x53')](_0x5f3080[_0x6a65('0x47')],_0x4d638b[_0x6a65('0x49')]));_0x10e581[_0x6a65('0x52')][_0x6a65('0x67')]=_0x123140['id'];if(_0x5f3080[_0x6a65('0x47')][_0x6a65('0x56')]){_0x10e581[_0x6a65('0x52')]=_[_0x6a65('0x54')](_0x10e581['where'],{'$or':_[_0x6a65('0x46')](_0x10e581[_0x6a65('0x4b')],function(_0x49f9f2){var _0x19ff09={};_0x19ff09[_0x49f9f2]={'$like':'%'+_0x5f3080[_0x6a65('0x47')][_0x6a65('0x56')]+'%'};return _0x19ff09;})});}_0x10e581=_['merge']({},_0x10e581,_0x5f3080[_0x6a65('0x70')]);return db[_0x6a65('0x73')][_0x6a65('0x31')]({'where':_0x10e581['where']})['then'](function(_0x41ad47){_0x212c27[_0x6a65('0x31')]=_0x41ad47;if(_0x5f3080[_0x6a65('0x47')][_0x6a65('0x57')]){_0x10e581[_0x6a65('0x58')]=[{'model':db[_0x6a65('0x75')],'as':'Contact','required':![]},{'model':db[_0x6a65('0x76')],'as':'Owner','attributes':['name',_0x6a65('0x77'),'internal'],'required':![]},{'model':db[_0x6a65('0x78')],'as':_0x6a65('0x79'),'attributes':['id',_0x6a65('0x3e'),_0x6a65('0x7a')],'where':_0x5f3080[_0x6a65('0x47')][_0x6a65('0x7b')]?{'id':_0x5f3080[_0x6a65('0x47')][_0x6a65('0x7b')]}:undefined,'required':_0x5f3080[_0x6a65('0x47')]['tag']?!![]:![]}];}return db[_0x6a65('0x73')][_0x6a65('0x59')](_0x10e581);})[_0x6a65('0x3c')](function(_0x5aa2bb){_0x212c27[_0x6a65('0x5a')]=_0x5aa2bb;return _0x212c27;});}})[_0x6a65('0x3c')](respondWithFilteredResult(_0x3ad69d,_0x10e581))['catch'](handleError(_0x3ad69d,null));};exports[_0x6a65('0x7c')]=function(_0x30a934,_0x2e6119,_0x1124d5){return db[_0x6a65('0x42')][_0x6a65('0x6a')]({'where':{'id':_0x30a934[_0x6a65('0x5c')]['id']}})[_0x6a65('0x3c')](handleEntityNotFound(_0x2e6119,null))[_0x6a65('0x3c')](function(_0x1b9a08){if(_0x1b9a08){return db[_0x6a65('0x7d')][_0x6a65('0x7e')](function(_0xc7f4f4){return db[_0x6a65('0x7f')]['destroy']({'where':{'FaxAccountId':_0x30a934[_0x6a65('0x5c')]['id']},'transaction':_0xc7f4f4})[_0x6a65('0x3c')](function(_0x4affb3){var _0xc3e2a1=_[_0x6a65('0x46')](_0x30a934[_0x6a65('0x5f')],function(_0x526633){_0x526633[_0x6a65('0x67')]=_0x30a934[_0x6a65('0x5c')]['id'];return _0x526633;});return db[_0x6a65('0x7f')][_0x6a65('0x80')](_0xc3e2a1,{'transaction':_0xc7f4f4});});})[_0x6a65('0x3c')](function(){return db[_0x6a65('0x7f')][_0x6a65('0x81')]({'where':{'FaxAccountId':_0x30a934['params']['id']},'order':_0x6a65('0x82')});});}})[_0x6a65('0x3c')](respondWithResult(_0x2e6119,null))['catch'](handleError(_0x2e6119,null));};exports[_0x6a65('0x83')]=function(_0x4f5cf5,_0x1b4033,_0x26d739){var _0x24665e={};var _0x5eccd6={};var _0x357ae1;var _0x1b3db4;return db['FaxAccount'][_0x6a65('0x6a')]({'where':{'id':_0x4f5cf5[_0x6a65('0x5c')]['id']}})[_0x6a65('0x3c')](handleEntityNotFound(_0x1b4033,null))['then'](function(_0x50e267){if(_0x50e267){_0x357ae1=_0x50e267;_0x5eccd6[_0x6a65('0x45')]=_[_0x6a65('0x48')](db[_0x6a65('0x7f')]['rawAttributes']);_0x5eccd6[_0x6a65('0x47')]=_[_0x6a65('0x48')](_0x4f5cf5[_0x6a65('0x47')]);_0x5eccd6[_0x6a65('0x49')]=_[_0x6a65('0x4a')](_0x5eccd6[_0x6a65('0x45')],_0x5eccd6[_0x6a65('0x47')]);_0x24665e[_0x6a65('0x4b')]=_[_0x6a65('0x4a')](_0x5eccd6[_0x6a65('0x45')],qs[_0x6a65('0x4c')](_0x4f5cf5[_0x6a65('0x47')][_0x6a65('0x4c')]));_0x24665e[_0x6a65('0x4b')]=_0x24665e[_0x6a65('0x4b')][_0x6a65('0x4d')]?_0x24665e[_0x6a65('0x4b')]:_0x5eccd6[_0x6a65('0x45')];_0x24665e['order']=qs['sort'](_0x4f5cf5[_0x6a65('0x47')][_0x6a65('0x51')]);_0x24665e['where']=qs[_0x6a65('0x49')](_[_0x6a65('0x53')](_0x4f5cf5['query'],_0x5eccd6[_0x6a65('0x49')]));if(_0x4f5cf5['query'][_0x6a65('0x56')]){_0x24665e[_0x6a65('0x52')]=_['merge'](_0x24665e[_0x6a65('0x52')],{'$or':_['map'](_0x24665e[_0x6a65('0x4b')],function(_0x4e882b){var _0x563e83={};_0x563e83[_0x4e882b]={'$like':'%'+_0x4f5cf5[_0x6a65('0x47')]['filter']+'%'};return _0x563e83;})});}_0x24665e=_['merge']({},_0x24665e,_0x4f5cf5[_0x6a65('0x70')]);return _0x357ae1[_0x6a65('0x83')](_0x24665e);}})['then'](function(_0x5c0269){if(_0x5c0269){_0x1b3db4=_0x5c0269['length'];if(!_0x4f5cf5['query'][_0x6a65('0x4e')](_0x6a65('0x4f'))){_0x24665e['limit']=qs['limit'](_0x4f5cf5['query'][_0x6a65('0x2f')]);_0x24665e[_0x6a65('0x2e')]=qs[_0x6a65('0x2e')](_0x4f5cf5['query']['offset']);}return _0x357ae1[_0x6a65('0x83')](_0x24665e);}})['then'](function(_0x212551){if(_0x212551){return _0x212551?{'count':_0x1b3db4,'rows':_0x212551}:null;}})[_0x6a65('0x3c')](respondWithResult(_0x1b4033,null))[_0x6a65('0x29')](handleError(_0x1b4033,null));};function Extension(_0x1df055,_0x316c9d,_0x5bbe9e,_0x1c02cf){this[_0x6a65('0x84')]='from-voip-provider';this[_0x6a65('0x85')]=_0x1df055[_0x6a65('0x86')];this[_0x6a65('0x87')]=_0x1c02cf;this[_0x6a65('0x44')]=_0x6a65('0x88');this[_0x6a65('0x89')]=_0x6a65('0x8a');this['FaxAccountId']=_0x1df055['id'];this[_0x6a65('0x82')]=_0x316c9d;this[_0x6a65('0x8b')]=_0x5bbe9e;}function createExtensionsReciveFax(_0x35061c){var _0x13f14e=0x1;var _0x54723c=[];_0x54723c[_0x6a65('0x8c')](new Extension(_0x35061c,_0x13f14e,'',_0x6a65('0x8d')));_0x13f14e+=0x1;_0x54723c['push'](new Extension(_0x35061c,_0x13f14e,_0x6a65('0x8e'),_0x6a65('0x8f')));_0x13f14e+=0x1;for(var _0x236d18 in _0x35061c){if(_0x35061c[_0x6a65('0x4e')](_0x236d18)&&(_0x236d18===_0x6a65('0x90')||_0x236d18==='localstationid'||_0x236d18==='gateway'||_0x236d18===_0x6a65('0x91')||_0x236d18===_0x6a65('0x92')||_0x236d18===_0x6a65('0x93')||_0x236d18===_0x6a65('0x94')||_0x236d18===_0x6a65('0x95')||_0x236d18==='t38timeout')){_0x54723c[_0x6a65('0x8c')](new Extension(_0x35061c,_0x13f14e,_0x6a65('0x96')+_0x236d18+')='+_0x35061c[_0x236d18],'Set'));_0x13f14e+=0x1;}}_0x54723c['push'](new Extension(_0x35061c,_0x13f14e,'6',_0x6a65('0x97')));_0x13f14e+=0x1;_0x54723c[_0x6a65('0x8c')](new Extension(_0x35061c,_0x13f14e,'/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',_0x6a65('0x98')));_0x13f14e=0x0;return _0x54723c;}exports[_0x6a65('0x99')]=function(_0x4a35ed,_0x55145d,_0x9a5b8f){var _0x77e25a;return db[_0x6a65('0x7d')]['transaction'](function(_0x4ea405){return db[_0x6a65('0x42')][_0x6a65('0x65')](_0x4a35ed[_0x6a65('0x5f')],{'transaction':_0x4ea405})[_0x6a65('0x3c')](function(_0xdd636){_0x77e25a=_0xdd636[_0x6a65('0x39')]({'plain':!![]});return db[_0x6a65('0x9a')][_0x6a65('0x80')](createExtensionsReciveFax(_0x77e25a),{'transaction':_0x4ea405});});})['then'](function(){return _0x77e25a;})[_0x6a65('0x3c')](respondWithResult(_0x55145d,null))[_0x6a65('0x29')](handleError(_0x55145d,null));};exports[_0x6a65('0x9b')]=function(_0x114b8a,_0x2e2c91,_0x8fb6b4){var _0x5618b3;return db[_0x6a65('0x7d')][_0x6a65('0x7e')](function(_0x4ad68e){return db[_0x6a65('0x42')][_0x6a65('0x37')](_0x114b8a[_0x6a65('0x5f')],{'where':{'id':_0x114b8a['body']['id']},'transaction':_0x4ad68e})[_0x6a65('0x3c')](function(_0x3b1d0a){return db[_0x6a65('0x9a')]['destroy']({'where':{'FaxAccountId':_0x114b8a['body']['id']},'transaction':_0x4ad68e})[_0x6a65('0x3c')](function(_0x599035){return db[_0x6a65('0x9a')][_0x6a65('0x80')](createExtensionsReciveFax(_[_0x6a65('0x74')](_0x114b8a[_0x6a65('0x5f')],[_0x6a65('0x9c'),_0x6a65('0x9d'),_0x6a65('0x9e'),'updatedAt',_0x6a65('0x9f'),_0x6a65('0xa0')])),{'transaction':_0x4ad68e});});});})['then'](function(){return db[_0x6a65('0x42')]['findById'](_0x114b8a['body']['id']);})['then'](respondWithResult(_0x2e2c91,null))['catch'](handleError(_0x2e2c91,null));};exports[_0x6a65('0xa1')]=function(_0x533e97,_0x4b12f3,_0x3c7a70){var _0x3d12ba={'raw':!![],'where':{}};var _0x559ad0={};var _0x1767d9={'count':0x0,'rows':[]};return db[_0x6a65('0x42')]['findOne']({'where':{'id':_0x533e97[_0x6a65('0x5c')]['id']}})[_0x6a65('0x3c')](handleEntityNotFound(_0x4b12f3,null))[_0x6a65('0x3c')](function(_0x55f62c){if(_0x55f62c){_0x559ad0['model']=_[_0x6a65('0x48')](db[_0x6a65('0xa2')]['rawAttributes']);_0x559ad0[_0x6a65('0x47')]=_['keys'](_0x533e97['query']);_0x559ad0[_0x6a65('0x49')]=_[_0x6a65('0x4a')](_0x559ad0['model'],_0x559ad0[_0x6a65('0x47')]);_0x3d12ba[_0x6a65('0x4b')]=_[_0x6a65('0x4a')](_0x559ad0['model'],qs['fields'](_0x533e97[_0x6a65('0x47')][_0x6a65('0x4c')]));_0x3d12ba[_0x6a65('0x4b')]=_0x3d12ba['attributes'][_0x6a65('0x4d')]?_0x3d12ba[_0x6a65('0x4b')]:_0x559ad0[_0x6a65('0x45')];if(!_0x533e97['query'][_0x6a65('0x4e')](_0x6a65('0x4f'))){_0x3d12ba[_0x6a65('0x2f')]=qs[_0x6a65('0x2f')](_0x533e97['query'][_0x6a65('0x2f')]);_0x3d12ba[_0x6a65('0x2e')]=qs['offset'](_0x533e97['query'][_0x6a65('0x2e')]);}_0x3d12ba[_0x6a65('0x50')]=qs[_0x6a65('0x51')](_0x533e97[_0x6a65('0x47')][_0x6a65('0x51')]);_0x3d12ba[_0x6a65('0x52')]=qs[_0x6a65('0x49')](_[_0x6a65('0x53')](_0x533e97[_0x6a65('0x47')],_0x559ad0['filters']));_0x3d12ba['where'][_0x6a65('0x67')]=_0x55f62c['id'];if(_0x533e97[_0x6a65('0x47')][_0x6a65('0x56')]){_0x3d12ba[_0x6a65('0x52')]=_['merge'](_0x3d12ba[_0x6a65('0x52')],{'$or':_[_0x6a65('0x46')](_0x3d12ba[_0x6a65('0x4b')],function(_0x3fd3c8){var _0x5a78e9={};_0x5a78e9[_0x3fd3c8]={'$like':'%'+_0x533e97[_0x6a65('0x47')][_0x6a65('0x56')]+'%'};return _0x5a78e9;})});}if(_0x533e97[_0x6a65('0x47')]['$gte']){var _0x11041e=_0x533e97[_0x6a65('0x47')][_0x6a65('0xa3')][_0x6a65('0xa4')](',');var _0x28bc24={};_0x28bc24[_0x11041e[0x0]]={'$gte':moment(_0x11041e[0x1])[_0x6a65('0xa5')](_0x6a65('0xa6'))};_0x3d12ba[_0x6a65('0x52')]=_[_0x6a65('0x54')](_0x3d12ba[_0x6a65('0x52')],_0x28bc24);}_0x3d12ba=_[_0x6a65('0x54')]({},_0x3d12ba,_0x533e97[_0x6a65('0x70')]);return db[_0x6a65('0xa2')][_0x6a65('0x31')]({'where':_0x3d12ba[_0x6a65('0x52')]})['then'](function(_0x2c964c){_0x1767d9[_0x6a65('0x31')]=_0x2c964c;if(_0x533e97[_0x6a65('0x47')]['includeAll']){_0x3d12ba[_0x6a65('0x58')]=[{'all':!![]}];}return db[_0x6a65('0xa2')]['findAll'](_0x3d12ba);})['then'](function(_0x14d6a0){_0x1767d9[_0x6a65('0x5a')]=_0x14d6a0;return _0x1767d9;});}})[_0x6a65('0x3c')](respondWithFilteredResult(_0x4b12f3,_0x3d12ba))[_0x6a65('0x29')](handleError(_0x4b12f3,null));};exports[_0x6a65('0x3f')]=function(_0x340ee3,_0x355c80,_0x2d780c){var _0x153a79,_0x480471={},_0x13a629;if(_0x340ee3[_0x6a65('0x5f')]['to']){_0x13a629=_0x340ee3[_0x6a65('0x5f')]['to'][0x0];}return db[_0x6a65('0x42')][_0x6a65('0x5e')]({'where':{'id':_0x340ee3[_0x6a65('0x5c')]['id']},'include':[{'model':db[_0x6a65('0xa7')],'as':_0x6a65('0xa8'),'include':[{'model':db[_0x6a65('0x75')],'as':_0x6a65('0xa9'),'where':{'fax':_0x13a629},'limit':0x1,'order':[[_0x6a65('0xaa'),_0x6a65('0xab')]]}]}]})[_0x6a65('0x3c')](handleEntityNotFound(_0x355c80,null))[_0x6a65('0x3c')](function(_0x449089){_0x153a79=_0x449089;if(_0x340ee3[_0x6a65('0x5f')][_0x6a65('0xac')]&&_0x340ee3[_0x6a65('0x5f')]['attachments'][_0x6a65('0x4d')]){for(var _0xedfed8=0x0;_0xedfed8<_0x340ee3[_0x6a65('0x5f')][_0x6a65('0xac')]['length'];_0xedfed8+=0x1){_0x340ee3['body'][_0x6a65('0xac')][_0xedfed8]={'filename':_0x340ee3[_0x6a65('0x5f')][_0x6a65('0xac')][_0xedfed8][_0x6a65('0x3e')],'id':_0x340ee3[_0x6a65('0x5f')]['attachments'][_0xedfed8]['id'],'path':path['join'](config[_0x6a65('0xad')],_0x6a65('0xae'),_0x340ee3[_0x6a65('0x5f')][_0x6a65('0xac')][_0xedfed8][_0x6a65('0xaf')])};}}return respondWithRpcPromise(_0x6a65('0xb0'),_0x6a65('0xb0'),{'FaxAccountId':_[_0x6a65('0xb1')](_0x340ee3[_0x6a65('0x5c')]['id'])?undefined:_0x340ee3[_0x6a65('0x5c')]['id'],'path':_[_0x6a65('0xb1')](_0x340ee3[_0x6a65('0x5f')][_0x6a65('0xac')][0x0][_0x6a65('0x7')])?undefined:_0x340ee3[_0x6a65('0x5f')]['attachments'][0x0][_0x6a65('0x7')],'fax':_[_0x6a65('0xb1')](_0x340ee3[_0x6a65('0x5f')]['to'][0x0])?undefined:_0x340ee3[_0x6a65('0x5f')]['to'][0x0]},client9002);})[_0x6a65('0x3c')](function(){if(_0x153a79){if(_[_0x6a65('0xb1')](_0x340ee3['body'][_0x6a65('0xb2')])){_0x340ee3[_0x6a65('0x5f')][_0x6a65('0xb2')]=util['format'](_0x6a65('0xb3'),_0x153a79[_0x6a65('0x3e')],_0x153a79[_0x6a65('0xb4')]);}if(_0x153a79[_0x6a65('0xa8')]){if(_0x153a79[_0x6a65('0xa8')][_0x6a65('0xa9')][_0x6a65('0x4d')]){return _0x153a79[_0x6a65('0xa8')][_0x6a65('0xa9')][0x0];}else{return db['CmContact'][_0x6a65('0x65')](_['defaults'](_0x340ee3['body'],{'firstName':_0x340ee3[_0x6a65('0x5f')]['to'][0x0],'phone':_0x340ee3[_0x6a65('0x5f')]['to'][0x0],'fax':_0x340ee3[_0x6a65('0x5f')]['to'][0x0],'ListId':_0x153a79['ListId']}));}}else{throw new Error(_0x6a65('0xb5'));}}else{throw new Error('Send\x20Fax\x20failed');}})[_0x6a65('0x3c')](function(_0x3ce1ba){if(_0x3ce1ba){return db[_0x6a65('0x73')][_0x6a65('0x5e')]({'where':{'ContactId':_0x3ce1ba['id'],'closed':![],'FaxAccountId':_0x153a79['id']}})['then'](function(_0x3426de){if(_0x3426de){return[_0x3426de,![]];}return db[_0x6a65('0x73')]['create']({'UserId':_0x340ee3[_0x6a65('0x60')]['id'],'ContactId':_0x3ce1ba['id'],'FaxAccountId':_0x153a79['id'],'fax':_0x340ee3[_0x6a65('0x5f')]['to'][0x0],'firstMsgDirection':_0x6a65('0xb6'),'Messages':[_['merge'](_0x340ee3[_0x6a65('0x5f')],{'read':![],'body':_0x340ee3[_0x6a65('0x5f')][_0x6a65('0xac')][0x0][_0x6a65('0xb7')],'FaxAccountId':_0x153a79['id'],'UserId':_0x340ee3[_0x6a65('0x60')]['id'],'ContactId':_0x3ce1ba['id'],'AttachmentId':_0x340ee3[_0x6a65('0x5f')]['attachments'][0x0]['id']})]},{'include':[{'model':db[_0x6a65('0xa2')],'as':_0x6a65('0xb8')}]})[_0x6a65('0x3c')](function(_0xe3f18b){return[_0xe3f18b,!![]];});});}else{throw new Error(_0x6a65('0xb9'));}})[_0x6a65('0xba')](function(_0x1f9472,_0x2fc1fe){if(_0x2fc1fe){return _0x1f9472;}return db[_0x6a65('0xa2')][_0x6a65('0x65')]({'direction':_0x6a65('0xb6'),'read':![],'body':_0x340ee3[_0x6a65('0x5f')][_0x6a65('0xac')][0x0][_0x6a65('0xb7')],'FaxAccountId':_0x153a79['id'],'FaxInteractionId':_0x1f9472['id'],'UserId':_0x340ee3[_0x6a65('0x60')]['id'],'ContactId':_0x1f9472['ContactId'],'AttachmentId':_0x340ee3[_0x6a65('0x5f')]['attachments'][0x0]['id']})[_0x6a65('0x3c')](function(_0xbbe799){_0x1f9472['dataValues'][_0x6a65('0xb8')]=[];_0x1f9472[_0x6a65('0xbb')]['Messages']['push'](_0xbbe799[_0x6a65('0xbb')]);return _0x1f9472;});})[_0x6a65('0x3c')](function(_0x20caca){respondWithRpcPromise('SendFax',_0x6a65('0xbc'),{'FaxAccountId':_[_0x6a65('0xb1')](_0x340ee3['params']['id'])?undefined:_0x340ee3[_0x6a65('0x5c')]['id'],'path':_[_0x6a65('0xb1')](_0x340ee3[_0x6a65('0x5f')][_0x6a65('0xac')][0x0][_0x6a65('0x7')])?undefined:_0x340ee3['body'][_0x6a65('0xac')][0x0][_0x6a65('0x7')],'fax':_['isNil'](_0x340ee3['body']['to'][0x0])?undefined:_0x340ee3['body']['to'][0x0],'AttachmentId':_0x340ee3[_0x6a65('0x5f')][_0x6a65('0xac')][0x0]['id']},client9002)[_0x6a65('0x3c')](function(_0x5f3930){logger['info'](_0x6a65('0xbd'),_0x5f3930);})['catch'](function(_0x35fcaa){logger[_0x6a65('0x20')](_0x6a65('0xbd'),_0x35fcaa);});return _0x20caca;})['then'](respondWithResult(_0x355c80,null))[_0x6a65('0x29')](handleError(_0x355c80,null));};exports[_0x6a65('0xbe')]=function(_0x4e71d1,_0x32d3ca,_0x38d8f8){return db['FaxAccount']['find']({'where':{'id':_0x4e71d1[_0x6a65('0x5c')]['id']}})['then'](handleEntityNotFound(_0x32d3ca,null))[_0x6a65('0x3c')](function(_0x22fde9){if(_0x22fde9){return _0x22fde9[_0x6a65('0xbe')](_0x4e71d1['body'][_0x6a65('0x6c')],_[_0x6a65('0x74')](_0x4e71d1['body'],['ids','id'])||{})[_0x6a65('0xba')](function(_0x27ace9){for(var _0x4d61f0=0x0;_0x4d61f0<_0x4e71d1[_0x6a65('0x5f')]['ids'][_0x6a65('0x4d')];_0x4d61f0+=0x1){socket[_0x6a65('0xbf')](_0x6a65('0xc0'),{'UserId':Number(_0x4e71d1[_0x6a65('0x5f')][_0x6a65('0x6c')][_0x4d61f0]),'FaxAccountId':Number(_0x4e71d1['params']['id'])});}return _0x27ace9;});}})['then'](respondWithResult(_0x32d3ca,null))[_0x6a65('0x29')](handleError(_0x32d3ca,null));};exports[_0x6a65('0xc1')]=function(_0x28d843,_0x501f86,_0x45c6a2){return db[_0x6a65('0x42')][_0x6a65('0x5e')]({'where':{'id':_0x28d843[_0x6a65('0x5c')]['id']}})[_0x6a65('0x3c')](handleEntityNotFound(_0x501f86,null))[_0x6a65('0x3c')](function(_0x26da1c){if(_0x26da1c){return _0x26da1c[_0x6a65('0xc1')](_0x28d843[_0x6a65('0x47')][_0x6a65('0x6c')])['then'](function(){if(_[_0x6a65('0xc2')](_0x28d843['query'][_0x6a65('0x6c')])){for(var _0x306773=0x0;_0x306773<_0x28d843[_0x6a65('0x47')][_0x6a65('0x6c')][_0x6a65('0x4d')];_0x306773+=0x1){socket['emit'](_0x6a65('0xc3'),{'UserId':Number(_0x28d843[_0x6a65('0x47')][_0x6a65('0x6c')][_0x306773]),'FaxAccountId':Number(_0x28d843[_0x6a65('0x5c')]['id'])});}}else{socket[_0x6a65('0xbf')]('userFaxAccount:remove',{'UserId':Number(_0x28d843['query']['ids']),'FaxAccountId':Number(_0x28d843[_0x6a65('0x5c')]['id'])});}});}})['then'](respondWithStatusCode(_0x501f86,null))[_0x6a65('0x29')](handleError(_0x501f86,null));};exports[_0x6a65('0xc4')]=function(_0x41d71d,_0x2ed6b5,_0x2509b4){var _0x1920c1={};var _0x308431={};var _0x1a152e;var _0x49d291;return db['FaxAccount'][_0x6a65('0x6a')]({'where':{'id':_0x41d71d[_0x6a65('0x5c')]['id']}})[_0x6a65('0x3c')](handleEntityNotFound(_0x2ed6b5,null))['then'](function(_0x3e87a9){if(_0x3e87a9){_0x1a152e=_0x3e87a9;_0x308431[_0x6a65('0x45')]=_[_0x6a65('0x48')](db[_0x6a65('0x76')]['rawAttributes']);_0x308431[_0x6a65('0x47')]=_[_0x6a65('0x48')](_0x41d71d[_0x6a65('0x47')]);_0x308431[_0x6a65('0x49')]=_['intersection'](_0x308431['model'],_0x308431[_0x6a65('0x47')]);_0x1920c1[_0x6a65('0x4b')]=_[_0x6a65('0x4a')](_0x308431['model'],qs['fields'](_0x41d71d['query']['fields']));_0x1920c1['attributes']=_0x1920c1[_0x6a65('0x4b')][_0x6a65('0x4d')]?_0x1920c1[_0x6a65('0x4b')]:_0x308431[_0x6a65('0x45')];_0x1920c1['order']=qs['sort'](_0x41d71d[_0x6a65('0x47')][_0x6a65('0x51')]);_0x1920c1[_0x6a65('0x52')]=qs[_0x6a65('0x49')](_[_0x6a65('0x53')](_0x41d71d['query'],_0x308431['filters']));if(_0x41d71d['query'][_0x6a65('0x56')]){_0x1920c1[_0x6a65('0x52')]=_[_0x6a65('0x54')](_0x1920c1[_0x6a65('0x52')],{'$or':_[_0x6a65('0x46')](_0x1920c1[_0x6a65('0x4b')],function(_0x589947){var _0x36fec3={};_0x36fec3[_0x589947]={'$like':'%'+_0x41d71d[_0x6a65('0x47')][_0x6a65('0x56')]+'%'};return _0x36fec3;})});}_0x1920c1=_[_0x6a65('0x54')]({},_0x1920c1,_0x41d71d[_0x6a65('0x70')]);return _0x1a152e['getAgents'](_0x1920c1);}})[_0x6a65('0x3c')](function(_0x3a5e28){if(_0x3a5e28){_0x49d291=_0x3a5e28['length'];if(!_0x41d71d[_0x6a65('0x47')][_0x6a65('0x4e')]('nolimit')){_0x1920c1[_0x6a65('0x2f')]=qs[_0x6a65('0x2f')](_0x41d71d[_0x6a65('0x47')][_0x6a65('0x2f')]);_0x1920c1[_0x6a65('0x2e')]=qs['offset'](_0x41d71d[_0x6a65('0x47')][_0x6a65('0x2e')]);}return _0x1a152e[_0x6a65('0xc4')](_0x1920c1);}})[_0x6a65('0x3c')](function(_0x2a890d){if(_0x2a890d){return _0x2a890d?{'count':_0x49d291,'rows':_0x2a890d}:null;}})[_0x6a65('0x3c')](respondWithResult(_0x2ed6b5,null))[_0x6a65('0x29')](handleError(_0x2ed6b5,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xab29=['hasOwnProperty','events','../../mysqldb','FaxAccount','emit'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xab29,0x196));var _0x9ab2=function(_0x4f8324,_0x47ee7f){_0x4f8324=_0x4f8324-0x0;var _0x2268af=_0xab29[_0x4f8324];return _0x2268af;};'use strict';var EventEmitter=require(_0x9ab2('0x0'));var FaxAccount=require(_0x9ab2('0x1'))['db'][_0x9ab2('0x2')];var FaxAccountEvents=new EventEmitter();FaxAccountEvents['setMaxListeners'](0x0);var events={'afterCreate':'save','afterUpdate':'update','afterDestroy':'remove'};function emitEvent(_0x6cb626){return function(_0x498ff4,_0x3fda05,_0x428f65){FaxAccountEvents['emit'](_0x6cb626+':'+_0x498ff4['id'],_0x498ff4);FaxAccountEvents[_0x9ab2('0x3')](_0x6cb626,_0x498ff4);_0x428f65(null);};}for(var e in events){if(events[_0x9ab2('0x4')](e)){var event=events[e];FaxAccount['hook'](e,emitEvent(event));}}module['exports']=FaxAccountEvents;
\ No newline at end of file
+var _0x7e08=['hook','FaxAccount','setMaxListeners','update','remove','emit','hasOwnProperty'];(function(_0x3daa52,_0x81f0cf){var _0x1eb443=function(_0x55a8d9){while(--_0x55a8d9){_0x3daa52['push'](_0x3daa52['shift']());}};_0x1eb443(++_0x81f0cf);}(_0x7e08,0xcc));var _0x87e0=function(_0x26b163,_0x4f6bd3){_0x26b163=_0x26b163-0x0;var _0x44150b=_0x7e08[_0x26b163];return _0x44150b;};'use strict';var EventEmitter=require('events');var FaxAccount=require('../../mysqldb')['db'][_0x87e0('0x0')];var FaxAccountEvents=new EventEmitter();FaxAccountEvents[_0x87e0('0x1')](0x0);var events={'afterCreate':'save','afterUpdate':_0x87e0('0x2'),'afterDestroy':_0x87e0('0x3')};function emitEvent(_0x83872a){return function(_0x107416,_0x429927,_0x5848d0){FaxAccountEvents[_0x87e0('0x4')](_0x83872a+':'+_0x107416['id'],_0x107416);FaxAccountEvents[_0x87e0('0x4')](_0x83872a,_0x107416);_0x5848d0(null);};}for(var e in events){if(events[_0x87e0('0x5')](e)){var event=events[e];FaxAccount[_0x87e0('0x6')](e,emitEvent(event));}}module['exports']=FaxAccountEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe392=['../../config/logger','api','bluebird','request-promise','path','rimraf','../../config/environment','./faxAccount.attributes','define','FaxAccount','fax_accounts','util'];(function(_0x1e05a3,_0x236f7f){var _0x5ca032=function(_0x1def02){while(--_0x1def02){_0x1e05a3['push'](_0x1e05a3['shift']());}};_0x5ca032(++_0x236f7f);}(_0xe392,0x83));var _0x2e39=function(_0x1f130e,_0x8414f3){_0x1f130e=_0x1f130e-0x0;var _0x3296f7=_0xe392[_0x1f130e];return _0x3296f7;};'use strict';var _=require('lodash');var util=require(_0x2e39('0x0'));var logger=require(_0x2e39('0x1'))(_0x2e39('0x2'));var moment=require('moment');var BPromise=require(_0x2e39('0x3'));var rp=require(_0x2e39('0x4'));var fs=require('fs');var path=require(_0x2e39('0x5'));var rimraf=require(_0x2e39('0x6'));var config=require(_0x2e39('0x7'));var attributes=require(_0x2e39('0x8'));module['exports']=function(_0x39e617,_0x51156a){return _0x39e617[_0x2e39('0x9')](_0x2e39('0xa'),attributes,{'tableName':_0x2e39('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x22b7=['../../config/environment','./faxAccount.attributes','exports','define','FaxAccount','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path'];(function(_0x333b20,_0x392160){var _0x5e0b0a=function(_0x2a68df){while(--_0x2a68df){_0x333b20['push'](_0x333b20['shift']());}};_0x5e0b0a(++_0x392160);}(_0x22b7,0x1bf));var _0x722b=function(_0x4a6cb7,_0x48a3d5){_0x4a6cb7=_0x4a6cb7-0x0;var _0x3cc689=_0x22b7[_0x4a6cb7];return _0x3cc689;};'use strict';var _=require(_0x722b('0x0'));var util=require(_0x722b('0x1'));var logger=require(_0x722b('0x2'))(_0x722b('0x3'));var moment=require(_0x722b('0x4'));var BPromise=require(_0x722b('0x5'));var rp=require(_0x722b('0x6'));var fs=require('fs');var path=require(_0x722b('0x7'));var rimraf=require('rimraf');var config=require(_0x722b('0x8'));var attributes=require(_0x722b('0x9'));module[_0x722b('0xa')]=function(_0x368838,_0x532932){return _0x368838[_0x722b('0xb')](_0x722b('0xc'),attributes,{'tableName':'fax_accounts','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x32f5=['mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','from','account','CmList','List','CmContact','Contacts','DESC','FaxApplication','Applications','get','applications','orderBy','priority','asc','contact','find','FaxInteraction','create','Contact\x20not\x20found','spread','push','length','created','interaction','AttachmentId','UserId','User','name','unshift','agent','waitForTheAssignedAgent','*,*,*,*','Start','startRouting','lodash','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','./faxAccount.socket','register','request','then','info','request\x20sent','FaxAccount,\x20%s,\x20%s,\x20%s','stringify','error','message','FaxAccount,\x20%s,\x20%s','result','catch','GetFaxAccount','FaxAccount','findAll','options','where','attributes','limit','include','map','model','debug','NotifyFaxAccount','body','fax','Sequelize','ValidationError','difference','keys','updatedAt','createdAt','CompanyId','ListId','isNil','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey'];(function(_0x5f2fa0,_0x3c57e3){var _0x4ad140=function(_0x144a84){while(--_0x144a84){_0x5f2fa0['push'](_0x5f2fa0['shift']());}};_0x4ad140(++_0x3c57e3);}(_0x32f5,0xd6));var _0x532f=function(_0x3f97de,_0x51f8b4){_0x3f97de=_0x3f97de-0x0;var _0x31873b=_0x32f5[_0x3f97de];return _0x31873b;};'use strict';var _=require(_0x532f('0x0'));var util=require('util');var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0x532f('0x1'));var fs=require('fs');var Redis=require(_0x532f('0x2'));var db=require(_0x532f('0x3'))['db'];var utils=require(_0x532f('0x4'));var logger=require('../../config/logger')(_0x532f('0x5'));var config=require(_0x532f('0x6'));var jayson=require(_0x532f('0x7'));var client=jayson[_0x532f('0x8')][_0x532f('0x9')]({'port':0x232c});config[_0x532f('0xa')]=_[_0x532f('0xb')](config['redis'],{'host':_0x532f('0xc'),'port':0x18eb});var socket=require(_0x532f('0xd'))(new Redis(config[_0x532f('0xa')]));require(_0x532f('0xe'))[_0x532f('0xf')](socket);function respondWithRpcPromise(_0x50db05,_0x345db0,_0x48f69e){return new BPromise(function(_0x30a69e,_0x303e25){return client[_0x532f('0x10')](_0x50db05,_0x48f69e)[_0x532f('0x11')](function(_0x483e23){logger[_0x532f('0x12')]('FaxAccount,\x20%s,\x20%s',_0x345db0,_0x532f('0x13'));logger['debug'](_0x532f('0x14'),_0x345db0,_0x532f('0x13'),JSON[_0x532f('0x15')](_0x483e23));if(_0x483e23[_0x532f('0x16')]){if(_0x483e23[_0x532f('0x16')]['code']===0x1f4){logger[_0x532f('0x16')]('FaxAccount,\x20%s,\x20%s',_0x345db0,_0x483e23[_0x532f('0x16')][_0x532f('0x17')]);return _0x303e25(_0x483e23['error']['message']);}logger['error'](_0x532f('0x18'),_0x345db0,_0x483e23['error']['message']);return _0x30a69e(_0x483e23[_0x532f('0x16')][_0x532f('0x17')]);}else{logger['info'](_0x532f('0x18'),_0x345db0,'request\x20sent');_0x30a69e(_0x483e23[_0x532f('0x19')][_0x532f('0x17')]);}})[_0x532f('0x1a')](function(_0x313696){logger[_0x532f('0x16')](_0x532f('0x18'),_0x345db0,_0x313696);_0x303e25(_0x313696);});});}exports[_0x532f('0x1b')]=function(_0x1b8a9c){var _0x239147=this;return new Promise(function(_0x3496a7,_0x5547f9){return db[_0x532f('0x1c')][_0x532f('0x1d')]({'raw':_0x1b8a9c[_0x532f('0x1e')]?_0x1b8a9c[_0x532f('0x1e')]['raw']===undefined?!![]:![]:!![],'where':_0x1b8a9c[_0x532f('0x1e')]?_0x1b8a9c[_0x532f('0x1e')][_0x532f('0x1f')]||null:null,'attributes':_0x1b8a9c['options']?_0x1b8a9c['options'][_0x532f('0x20')]||null:null,'limit':_0x1b8a9c['options']?_0x1b8a9c[_0x532f('0x1e')][_0x532f('0x21')]||null:null,'include':_0x1b8a9c[_0x532f('0x1e')]?_0x1b8a9c[_0x532f('0x1e')][_0x532f('0x22')]?_[_0x532f('0x23')](_0x1b8a9c[_0x532f('0x1e')][_0x532f('0x22')],function(_0x1a3b9d){return{'model':db[_0x1a3b9d['model']],'as':_0x1a3b9d['as'],'attributes':_0x1a3b9d[_0x532f('0x20')],'include':_0x1a3b9d[_0x532f('0x22')]?_[_0x532f('0x23')](_0x1a3b9d[_0x532f('0x22')],function(_0x2db69d){return{'model':db[_0x2db69d['model']],'as':_0x2db69d['as'],'attributes':_0x2db69d[_0x532f('0x20')],'include':_0x2db69d[_0x532f('0x22')]?_[_0x532f('0x23')](_0x2db69d['include'],function(_0x51775b){return{'model':db[_0x51775b[_0x532f('0x24')]],'as':_0x51775b['as'],'attributes':_0x51775b[_0x532f('0x20')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x4c4b78){logger[_0x532f('0x12')]('GetFaxAccount',_0x1b8a9c);logger[_0x532f('0x25')](_0x532f('0x1b'),_0x1b8a9c,JSON[_0x532f('0x15')](_0x4c4b78));_0x3496a7(_0x4c4b78);})[_0x532f('0x1a')](function(_0x38f95a){logger[_0x532f('0x16')](_0x532f('0x1b'),_0x38f95a['message'],_0x1b8a9c);_0x5547f9(_0x239147['error'](0x1f4,_0x38f95a[_0x532f('0x17')]));});});};exports[_0x532f('0x26')]=function(_0x5b8bca,_0x25b628,_0x1fa063){var _0x2ad496=this;return new Promise(function(_0x1c44a7,_0x5ece2e){var _0x26c061={'body':_0x5b8bca[_0x532f('0x27')],'channel':_0x532f('0x28')};var _0x31de8d=[];var _0x35b299=[];var _0x12071e={};return db['CmContact']['describe']()['then'](function(_0x3325ba){if(!_0x3325ba){throw new db[(_0x532f('0x29'))][(_0x532f('0x2a'))]('no\x20available\x20attributes');}_0x31de8d=_[_0x532f('0x2b')](_[_0x532f('0x2c')](_0x3325ba),['createdAt',_0x532f('0x2d')]);_0x35b299=_[_0x532f('0x2b')](_[_0x532f('0x2c')](_0x3325ba),[_0x532f('0x2e'),_0x532f('0x2d'),_0x532f('0x2f'),_0x532f('0x30')]);if(_0x5b8bca[_0x532f('0x27')]['id']){delete _0x5b8bca[_0x532f('0x27')]['id'];}if(_[_0x532f('0x31')](_0x5b8bca[_0x532f('0x27')]['from'])){throw new db[(_0x532f('0x29'))][(_0x532f('0x2a'))](_0x532f('0x32'));}if(_[_0x532f('0x31')](_0x5b8bca[_0x532f('0x27')][_0x532f('0x27')])||_0x5b8bca['body'][_0x532f('0x27')]===''){throw new db['Sequelize'][(_0x532f('0x2a'))](_0x532f('0x33'));}if(_[_0x532f('0x31')](_0x5b8bca[_0x532f('0x27')][_0x532f('0x34')])){throw new db[(_0x532f('0x29'))][(_0x532f('0x2a'))](_0x532f('0x35')+_0x35b299);}if(!_[_0x532f('0x36')](_0x35b299,_0x5b8bca['body']['mapKey'])){throw new db['Sequelize'][(_0x532f('0x2a'))]('mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x35b299);}_0x12071e[_0x5b8bca[_0x532f('0x27')][_0x532f('0x34')]]=_0x5b8bca['body'][_0x532f('0x37')];})['then'](function(){return db['FaxAccount']['find']({'where':{'id':_0x5b8bca[_0x532f('0x38')]['id']},'include':[{'model':db[_0x532f('0x39')],'as':_0x532f('0x3a'),'include':[{'model':db[_0x532f('0x3b')],'as':_0x532f('0x3c'),'where':_0x12071e,'limit':0x1,'order':[[_0x532f('0x2d'),_0x532f('0x3d')]]}]},{'model':db[_0x532f('0x3e')],'as':_0x532f('0x3f')}]});})[_0x532f('0x11')](function(_0xb9d573){if(_0xb9d573&&_0xb9d573['List']){var _0x5a0292=_0xb9d573[_0x532f('0x40')]({'plain':!![]});_0x26c061['account']=_0x5a0292;_0x26c061[_0x532f('0x41')]=_0x5a0292[_0x532f('0x3f')];_0x26c061['list']=_0x5a0292[_0x532f('0x3a')];_0x26c061[_0x532f('0x41')]=_[_0x532f('0x42')](_0x26c061[_0x532f('0x41')],[_0x532f('0x43')],[_0x532f('0x44')]);if(_0x26c061[_0x532f('0x38')][_0x532f('0x3f')]){delete _0x26c061[_0x532f('0x38')]['Applications'];}if(_0x26c061[_0x532f('0x38')][_0x532f('0x3a')]&&_0x26c061['account'][_0x532f('0x3a')][_0x532f('0x3c')]['length']){return _0x26c061[_0x532f('0x38')][_0x532f('0x3a')][_0x532f('0x3c')][0x0];}var _0x86d8f5=_[_0x532f('0xb')](_0x5b8bca[_0x532f('0x27')],{'firstName':_0x5b8bca[_0x532f('0x27')][_0x532f('0x37')],'ListId':_0x5a0292[_0x532f('0x30')]});_0x86d8f5[_0x5b8bca[_0x532f('0x27')][_0x532f('0x34')]]=_0x5b8bca['body'][_0x532f('0x37')];return db[_0x532f('0x3b')]['create'](_0x86d8f5,{'fields':_0x31de8d,'raw':!![]});}})[_0x532f('0x11')](function(_0x320f3f){_0x26c061[_0x532f('0x45')]=_0x320f3f;if(_0x320f3f){var _0x58fd10={'ContactId':_0x320f3f['id'],'FaxAccountId':_0x5b8bca[_0x532f('0x38')]['id'],'fax':_0x320f3f[_0x532f('0x28')]};return db['FaxInteraction'][_0x532f('0x46')]({'where':{'ContactId':_0x320f3f['id'],'closed':![],'FaxAccountId':_0x5b8bca[_0x532f('0x38')]['id']}})[_0x532f('0x11')](function(_0x1316a8){if(_0x1316a8){return[_0x1316a8,![]];}return db[_0x532f('0x47')][_0x532f('0x48')](_0x58fd10)[_0x532f('0x11')](function(_0x3018ee){return[_0x3018ee,!![]];});});}else{throw new Error(_0x532f('0x49'));}})[_0x532f('0x4a')](function(_0x4885f2,_0xc21646){var _0x521c6e=_0x4885f2[_0x532f('0x40')]({'plain':!![]});if(_0xc21646){if(_0x26c061[_0x532f('0x38')]['autoclose']){_0x26c061[_0x532f('0x41')][_0x532f('0x4b')]({'id':0x0,'priority':_0x26c061[_0x532f('0x41')][_0x532f('0x4c')]+0x1,'app':'close','appdata':'unmanaged','interval':'*,*,*,*'});}_0x521c6e[_0x532f('0x4d')]=!![];}else{_0x521c6e[_0x532f('0x4d')]=![];}_0x26c061[_0x532f('0x4e')]=_0x521c6e;return db['FaxMessage'][_0x532f('0x48')]({'body':_0x5b8bca['body'][_0x532f('0x27')],'FaxAccountId':_0x5b8bca[_0x532f('0x38')]['id'],'FaxInteractionId':_0x4885f2['id'],'direction':'in','ContactId':_0x4885f2['ContactId'],'AttachmentId':_0x5b8bca[_0x532f('0x27')][_0x532f('0x4f')]});})[_0x532f('0x11')](function(_0x3bd7c5){_0x26c061['message']=_0x3bd7c5;if(_0x26c061[_0x532f('0x4e')][_0x532f('0x50')]){return db[_0x532f('0x51')][_0x532f('0x46')]({'attributes':['id',_0x532f('0x52')],'where':{'id':_0x26c061[_0x532f('0x4e')][_0x532f('0x50')]}})[_0x532f('0x11')](function(_0x5e3579){if(_0x5e3579){_0x26c061[_0x532f('0x41')][_0x532f('0x53')]({'id':0x0,'priority':0x0,'app':_0x532f('0x54'),'appdata':_0x5e3579[_0x532f('0x52')]+','+(_0x26c061[_0x532f('0x38')][_0x532f('0x55')]||0xa),'interval':_0x532f('0x56')});}return respondWithRpcPromise(_0x532f('0x57'),_0x532f('0x58'),_0x26c061);});}return respondWithRpcPromise(_0x532f('0x57'),'startRouting',_0x26c061);})[_0x532f('0x11')](function(_0x4f9121){_0x1c44a7(_0x4f9121);})[_0x532f('0x1a')](function(_0x4912ec){_0x5ece2e(_0x2ad496[_0x532f('0x16')](0x1f4,_0x4912ec['message']));});});};
\ No newline at end of file
+var _0xac9f=['../../config/logger','rpc','../../config/environment','jayson/promise','client','http','defaults','redis','register','then','info','FaxAccount,\x20%s,\x20%s','debug','FaxAccount,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','GetFaxAccount','FaxAccount','findAll','options','raw','where','attributes','include','map','model','body','fax','CmContact','describe','ValidationError','no\x20available\x20attributes','difference','createdAt','updatedAt','keys','CompanyId','isNil','from','Sequelize','from\x20is\x20mandatory','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','mapKey','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','find','CmList','List','Contacts','DESC','FaxApplication','get','account','applications','list','orderBy','asc','Applications','length','ListId','contact','FaxInteraction','create','Contact\x20not\x20found','autoclose','push','close','created','interaction','FaxMessage','ContactId','AttachmentId','UserId','unshift','agent','name','waitForTheAssignedAgent','*,*,*,*','Start','startRouting','lodash','util','moment','bluebird','ioredis','../../mysqldb'];(function(_0x4789b3,_0x4f98e1){var _0x27b5c1=function(_0x1c1056){while(--_0x1c1056){_0x4789b3['push'](_0x4789b3['shift']());}};_0x27b5c1(++_0x4f98e1);}(_0xac9f,0x1c1));var _0xfac9=function(_0x7a259b,_0x426017){_0x7a259b=_0x7a259b-0x0;var _0xeb04d3=_0xac9f[_0x7a259b];return _0xeb04d3;};'use strict';var _=require(_0xfac9('0x0'));var util=require(_0xfac9('0x1'));var moment=require(_0xfac9('0x2'));var BPromise=require(_0xfac9('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xfac9('0x4'));var db=require(_0xfac9('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0xfac9('0x6'))(_0xfac9('0x7'));var config=require(_0xfac9('0x8'));var jayson=require(_0xfac9('0x9'));var client=jayson[_0xfac9('0xa')][_0xfac9('0xb')]({'port':0x232c});config['redis']=_[_0xfac9('0xc')](config[_0xfac9('0xd')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xfac9('0xd')]));require('./faxAccount.socket')[_0xfac9('0xe')](socket);function respondWithRpcPromise(_0xa54d41,_0x48607d,_0x2b0d6a){return new BPromise(function(_0x208f24,_0x52e0a5){return client['request'](_0xa54d41,_0x2b0d6a)[_0xfac9('0xf')](function(_0x44ece6){logger[_0xfac9('0x10')](_0xfac9('0x11'),_0x48607d,'request\x20sent');logger[_0xfac9('0x12')](_0xfac9('0x13'),_0x48607d,_0xfac9('0x14'),JSON[_0xfac9('0x15')](_0x44ece6));if(_0x44ece6[_0xfac9('0x16')]){if(_0x44ece6[_0xfac9('0x16')][_0xfac9('0x17')]===0x1f4){logger[_0xfac9('0x16')]('FaxAccount,\x20%s,\x20%s',_0x48607d,_0x44ece6['error']['message']);return _0x52e0a5(_0x44ece6[_0xfac9('0x16')][_0xfac9('0x18')]);}logger[_0xfac9('0x16')](_0xfac9('0x11'),_0x48607d,_0x44ece6[_0xfac9('0x16')][_0xfac9('0x18')]);return _0x208f24(_0x44ece6[_0xfac9('0x16')][_0xfac9('0x18')]);}else{logger[_0xfac9('0x10')]('FaxAccount,\x20%s,\x20%s',_0x48607d,_0xfac9('0x14'));_0x208f24(_0x44ece6[_0xfac9('0x19')]['message']);}})[_0xfac9('0x1a')](function(_0x4e81dd){logger[_0xfac9('0x16')]('FaxAccount,\x20%s,\x20%s',_0x48607d,_0x4e81dd);_0x52e0a5(_0x4e81dd);});});}exports[_0xfac9('0x1b')]=function(_0x43364d){var _0x52aa32=this;return new Promise(function(_0x8f50d6,_0x5a0d67){return db[_0xfac9('0x1c')][_0xfac9('0x1d')]({'raw':_0x43364d[_0xfac9('0x1e')]?_0x43364d[_0xfac9('0x1e')][_0xfac9('0x1f')]===undefined?!![]:![]:!![],'where':_0x43364d['options']?_0x43364d[_0xfac9('0x1e')][_0xfac9('0x20')]||null:null,'attributes':_0x43364d[_0xfac9('0x1e')]?_0x43364d[_0xfac9('0x1e')][_0xfac9('0x21')]||null:null,'limit':_0x43364d[_0xfac9('0x1e')]?_0x43364d[_0xfac9('0x1e')]['limit']||null:null,'include':_0x43364d[_0xfac9('0x1e')]?_0x43364d['options'][_0xfac9('0x22')]?_[_0xfac9('0x23')](_0x43364d[_0xfac9('0x1e')]['include'],function(_0x5c45b6){return{'model':db[_0x5c45b6[_0xfac9('0x24')]],'as':_0x5c45b6['as'],'attributes':_0x5c45b6[_0xfac9('0x21')],'include':_0x5c45b6[_0xfac9('0x22')]?_[_0xfac9('0x23')](_0x5c45b6['include'],function(_0x1ba844){return{'model':db[_0x1ba844['model']],'as':_0x1ba844['as'],'attributes':_0x1ba844[_0xfac9('0x21')],'include':_0x1ba844['include']?_[_0xfac9('0x23')](_0x1ba844['include'],function(_0x3b2d19){return{'model':db[_0x3b2d19[_0xfac9('0x24')]],'as':_0x3b2d19['as'],'attributes':_0x3b2d19[_0xfac9('0x21')]};}):[]};}):[]};}):[]:[]})[_0xfac9('0xf')](function(_0x1a8c2c){logger[_0xfac9('0x10')](_0xfac9('0x1b'),_0x43364d);logger[_0xfac9('0x12')](_0xfac9('0x1b'),_0x43364d,JSON[_0xfac9('0x15')](_0x1a8c2c));_0x8f50d6(_0x1a8c2c);})['catch'](function(_0x4e0a2d){logger[_0xfac9('0x16')](_0xfac9('0x1b'),_0x4e0a2d['message'],_0x43364d);_0x5a0d67(_0x52aa32['error'](0x1f4,_0x4e0a2d[_0xfac9('0x18')]));});});};exports['NotifyFaxAccount']=function(_0x458301,_0x238ca3,_0x34b8a0){var _0x51a0dd=this;return new Promise(function(_0x4588ba,_0x35842b){var _0x139c44={'body':_0x458301[_0xfac9('0x25')],'channel':_0xfac9('0x26')};var _0x1ef087=[];var _0x9bffd3=[];var _0x2da4fb={};return db[_0xfac9('0x27')][_0xfac9('0x28')]()[_0xfac9('0xf')](function(_0x1e312d){if(!_0x1e312d){throw new db['Sequelize'][(_0xfac9('0x29'))](_0xfac9('0x2a'));}_0x1ef087=_[_0xfac9('0x2b')](_['keys'](_0x1e312d),[_0xfac9('0x2c'),_0xfac9('0x2d')]);_0x9bffd3=_[_0xfac9('0x2b')](_[_0xfac9('0x2e')](_0x1e312d),[_0xfac9('0x2c'),'updatedAt',_0xfac9('0x2f'),'ListId']);if(_0x458301[_0xfac9('0x25')]['id']){delete _0x458301[_0xfac9('0x25')]['id'];}if(_[_0xfac9('0x30')](_0x458301[_0xfac9('0x25')][_0xfac9('0x31')])){throw new db[(_0xfac9('0x32'))][(_0xfac9('0x29'))](_0xfac9('0x33'));}if(_['isNil'](_0x458301[_0xfac9('0x25')][_0xfac9('0x25')])||_0x458301[_0xfac9('0x25')][_0xfac9('0x25')]===''){throw new db['Sequelize'][(_0xfac9('0x29'))]('body\x20is\x20mandatory\x20and\x20not\x20empty');}if(_['isNil'](_0x458301[_0xfac9('0x25')]['mapKey'])){throw new db[(_0xfac9('0x32'))][(_0xfac9('0x29'))](_0xfac9('0x34')+_0x9bffd3);}if(!_[_0xfac9('0x35')](_0x9bffd3,_0x458301[_0xfac9('0x25')][_0xfac9('0x36')])){throw new db['Sequelize'][(_0xfac9('0x29'))](_0xfac9('0x37')+_0x9bffd3);}_0x2da4fb[_0x458301['body'][_0xfac9('0x36')]]=_0x458301['body'][_0xfac9('0x31')];})[_0xfac9('0xf')](function(){return db[_0xfac9('0x1c')][_0xfac9('0x38')]({'where':{'id':_0x458301['account']['id']},'include':[{'model':db[_0xfac9('0x39')],'as':_0xfac9('0x3a'),'include':[{'model':db[_0xfac9('0x27')],'as':_0xfac9('0x3b'),'where':_0x2da4fb,'limit':0x1,'order':[['updatedAt',_0xfac9('0x3c')]]}]},{'model':db[_0xfac9('0x3d')],'as':'Applications'}]});})['then'](function(_0xdd96be){if(_0xdd96be&&_0xdd96be[_0xfac9('0x3a')]){var _0x28ef96=_0xdd96be[_0xfac9('0x3e')]({'plain':!![]});_0x139c44[_0xfac9('0x3f')]=_0x28ef96;_0x139c44[_0xfac9('0x40')]=_0x28ef96['Applications'];_0x139c44[_0xfac9('0x41')]=_0x28ef96['List'];_0x139c44['applications']=_[_0xfac9('0x42')](_0x139c44[_0xfac9('0x40')],['priority'],[_0xfac9('0x43')]);if(_0x139c44['account'][_0xfac9('0x44')]){delete _0x139c44[_0xfac9('0x3f')][_0xfac9('0x44')];}if(_0x139c44[_0xfac9('0x3f')][_0xfac9('0x3a')]&&_0x139c44[_0xfac9('0x3f')]['List'][_0xfac9('0x3b')][_0xfac9('0x45')]){return _0x139c44[_0xfac9('0x3f')][_0xfac9('0x3a')][_0xfac9('0x3b')][0x0];}var _0x3e3d16=_[_0xfac9('0xc')](_0x458301[_0xfac9('0x25')],{'firstName':_0x458301[_0xfac9('0x25')]['from'],'ListId':_0x28ef96[_0xfac9('0x46')]});_0x3e3d16[_0x458301[_0xfac9('0x25')][_0xfac9('0x36')]]=_0x458301[_0xfac9('0x25')][_0xfac9('0x31')];return db['CmContact']['create'](_0x3e3d16,{'fields':_0x1ef087,'raw':!![]});}})[_0xfac9('0xf')](function(_0x9fd72f){_0x139c44[_0xfac9('0x47')]=_0x9fd72f;if(_0x9fd72f){var _0x286118={'ContactId':_0x9fd72f['id'],'FaxAccountId':_0x458301[_0xfac9('0x3f')]['id'],'fax':_0x9fd72f[_0xfac9('0x26')]};return db[_0xfac9('0x48')][_0xfac9('0x38')]({'where':{'ContactId':_0x9fd72f['id'],'closed':![],'FaxAccountId':_0x458301['account']['id']}})['then'](function(_0x1cf3f7){if(_0x1cf3f7){return[_0x1cf3f7,![]];}return db[_0xfac9('0x48')][_0xfac9('0x49')](_0x286118)[_0xfac9('0xf')](function(_0x381b70){return[_0x381b70,!![]];});});}else{throw new Error(_0xfac9('0x4a'));}})['spread'](function(_0x25c356,_0x5dbe83){var _0x1d65b6=_0x25c356[_0xfac9('0x3e')]({'plain':!![]});if(_0x5dbe83){if(_0x139c44[_0xfac9('0x3f')][_0xfac9('0x4b')]){_0x139c44[_0xfac9('0x40')][_0xfac9('0x4c')]({'id':0x0,'priority':_0x139c44[_0xfac9('0x40')][_0xfac9('0x45')]+0x1,'app':_0xfac9('0x4d'),'appdata':'unmanaged','interval':'*,*,*,*'});}_0x1d65b6[_0xfac9('0x4e')]=!![];}else{_0x1d65b6[_0xfac9('0x4e')]=![];}_0x139c44[_0xfac9('0x4f')]=_0x1d65b6;return db[_0xfac9('0x50')][_0xfac9('0x49')]({'body':_0x458301[_0xfac9('0x25')]['body'],'FaxAccountId':_0x458301[_0xfac9('0x3f')]['id'],'FaxInteractionId':_0x25c356['id'],'direction':'in','ContactId':_0x25c356[_0xfac9('0x51')],'AttachmentId':_0x458301[_0xfac9('0x25')][_0xfac9('0x52')]});})[_0xfac9('0xf')](function(_0x40e285){_0x139c44['message']=_0x40e285;if(_0x139c44['interaction'][_0xfac9('0x53')]){return db['User'][_0xfac9('0x38')]({'attributes':['id','name'],'where':{'id':_0x139c44['interaction'][_0xfac9('0x53')]}})[_0xfac9('0xf')](function(_0x286ab3){if(_0x286ab3){_0x139c44[_0xfac9('0x40')][_0xfac9('0x54')]({'id':0x0,'priority':0x0,'app':_0xfac9('0x55'),'appdata':_0x286ab3[_0xfac9('0x56')]+','+(_0x139c44[_0xfac9('0x3f')][_0xfac9('0x57')]||0xa),'interval':_0xfac9('0x58')});}return respondWithRpcPromise('Start','startRouting',_0x139c44);});}return respondWithRpcPromise(_0xfac9('0x59'),_0xfac9('0x5a'),_0x139c44);})[_0xfac9('0xf')](function(_0x5cad13){_0x4588ba(_0x5cad13);})[_0xfac9('0x1a')](function(_0x5048ee){_0x35842b(_0x51a0dd[_0xfac9('0x16')](0x1f4,_0x5048ee[_0xfac9('0x18')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc511=['save','emit','removeListener','register','length','faxAccount:','./faxAccount.events'];(function(_0x2641f9,_0x26715f){var _0x585741=function(_0x2d1462){while(--_0x2d1462){_0x2641f9['push'](_0x2641f9['shift']());}};_0x585741(++_0x26715f);}(_0xc511,0xbc));var _0x1c51=function(_0x422be2,_0x1c439e){_0x422be2=_0x422be2-0x0;var _0x1b820e=_0xc511[_0x422be2];return _0x1b820e;};'use strict';var FaxAccountEvents=require(_0x1c51('0x0'));var events=[_0x1c51('0x1'),'remove','update'];function createListener(_0x2d1974,_0x5cb927){return function(_0x46ed5b){_0x5cb927[_0x1c51('0x2')](_0x2d1974,_0x46ed5b);};}function removeListener(_0x20974a,_0x4b6d52){return function(){FaxAccountEvents[_0x1c51('0x3')](_0x20974a,_0x4b6d52);};}exports[_0x1c51('0x4')]=function(_0x14af36){for(var _0x46f6f7=0x0,_0x2e1b27=events[_0x1c51('0x5')];_0x46f6f7<_0x2e1b27;_0x46f6f7++){var _0x5ba0f6=events[_0x46f6f7];var _0x88bf0d=createListener(_0x1c51('0x6')+_0x5ba0f6,_0x14af36);FaxAccountEvents['on'](_0x5ba0f6,_0x88bf0d);}};
\ No newline at end of file
+var _0x002d=['faxAccount:','./faxAccount.events','save','update','emit','register','length'];(function(_0x1c3d05,_0x37cae4){var _0x4270c1=function(_0x396d5d){while(--_0x396d5d){_0x1c3d05['push'](_0x1c3d05['shift']());}};_0x4270c1(++_0x37cae4);}(_0x002d,0xbe));var _0xd002=function(_0x3fbebb,_0x3404ed){_0x3fbebb=_0x3fbebb-0x0;var _0x19c683=_0x002d[_0x3fbebb];return _0x19c683;};'use strict';var FaxAccountEvents=require(_0xd002('0x0'));var events=[_0xd002('0x1'),'remove',_0xd002('0x2')];function createListener(_0x2e2e58,_0x51f0ea){return function(_0x22f75a){_0x51f0ea[_0xd002('0x3')](_0x2e2e58,_0x22f75a);};}function removeListener(_0x3d5aa3,_0x18a9f8){return function(){FaxAccountEvents['removeListener'](_0x3d5aa3,_0x18a9f8);};}exports[_0xd002('0x4')]=function(_0x25a4c1){for(var _0x208673=0x0,_0x1e0bc9=events[_0xd002('0x5')];_0x208673<_0x1e0bc9;_0x208673++){var _0x3a75b9=events[_0x208673];var _0x403c1c=createListener(_0xd002('0x6')+_0x3a75b9,_0x25a4c1);FaxAccountEvents['on'](_0x3a75b9,_0x403c1c);}};
\ 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(_0x47643e,_0x337374){var _0x2aa5db=function(_0x5dcbf2){while(--_0x5dcbf2){_0x47643e['push'](_0x47643e['shift']());}};_0x2aa5db(++_0x337374);}(_0xa9e0,0x123));var _0x0a9e=function(_0x54d4fe,_0x55e869){_0x54d4fe=_0x54d4fe-0x0;var _0x1ab5bb=_0xa9e0[_0x54d4fe];return _0x1ab5bb;};'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(_0x5e281c,_0x575467){var _0x1254ac=function(_0x266d57){while(--_0x266d57){_0x5e281c['push'](_0x5e281c['shift']());}};_0x1254ac(++_0x575467);}(_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['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 _0x7375=['*,*,*,*','sequelize','exports','INTEGER','STRING','TEXT'];(function(_0x1a8ff0,_0x20788d){var _0x3588bf=function(_0x3b5499){while(--_0x3b5499){_0x1a8ff0['push'](_0x1a8ff0['shift']());}};_0x3588bf(++_0x20788d);}(_0x7375,0x103));var _0x5737=function(_0x1c81a2,_0x5c6191){_0x1c81a2=_0x1c81a2-0x0;var _0x55ae82=_0x7375[_0x1c81a2];return _0x55ae82;};'use strict';var Sequelize=require(_0x5737('0x0'));module[_0x5737('0x1')]={'priority':{'type':Sequelize[_0x5737('0x2')],'allowNull':![]},'app':{'type':Sequelize[_0x5737('0x3')],'allowNull':![],'defaultValue':'noop'},'appdata':{'type':Sequelize[_0x5737('0x4')]()},'description':{'type':Sequelize[_0x5737('0x3')]},'interval':{'type':Sequelize[_0x5737('0x3')],'defaultValue':_0x5737('0x5')}};
\ No newline at end of file
+var _0x063c=['STRING','noop','*,*,*,*','sequelize','exports'];(function(_0x4b369d,_0x265eb8){var _0x571a98=function(_0x56341a){while(--_0x56341a){_0x4b369d['push'](_0x4b369d['shift']());}};_0x571a98(++_0x265eb8);}(_0x063c,0x1c5));var _0xc063=function(_0x2fec76,_0xc7193b){_0x2fec76=_0x2fec76-0x0;var _0x2f5b11=_0x063c[_0x2fec76];return _0x2f5b11;};'use strict';var Sequelize=require(_0xc063('0x0'));module[_0xc063('0x1')]={'priority':{'type':Sequelize['INTEGER'],'allowNull':![]},'app':{'type':Sequelize[_0xc063('0x2')],'allowNull':![],'defaultValue':_0xc063('0x3')},'appdata':{'type':Sequelize['TEXT']()},'description':{'type':Sequelize[_0xc063('0x2')]},'interval':{'type':Sequelize[_0xc063('0x2')],'defaultValue':_0xc063('0x4')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8565=['create','body','find','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','to-csv','ejs','lodash','squel','jsforce','desk.js','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','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','destroy','error','stack','name','index','map','FaxApplication','fieldName','type','key','model','keys','query','filters','intersection','attributes','fields','length','nolimit','order','sort','where','pick','filter','merge','options','includeAll','include','findAll','rows','catch','show','params','rawAttributes'];(function(_0x48dfc7,_0x28410f){var _0x553cbf=function(_0x56f3f7){while(--_0x56f3f7){_0x48dfc7['push'](_0x48dfc7['shift']());}};_0x553cbf(++_0x28410f);}(_0x8565,0x1d7));var _0x5856=function(_0x32544d,_0x5dbdf2){_0x32544d=_0x32544d-0x0;var _0x1aa4b2=_0x8565[_0x32544d];return _0x1aa4b2;};'use strict';var emlformat=require(_0x5856('0x0'));var rimraf=require(_0x5856('0x1'));var zipdir=require(_0x5856('0x2'));var jsonpatch=require(_0x5856('0x3'));var rp=require(_0x5856('0x4'));var moment=require(_0x5856('0x5'));var BPromise=require(_0x5856('0x6'));var Mustache=require(_0x5856('0x7'));var util=require(_0x5856('0x8'));var path=require('path');var sox=require('sox');var csv=require(_0x5856('0x9'));var ejs=require(_0x5856('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x5856('0xb'));var squel=require(_0x5856('0xc'));var crypto=require('crypto');var jsforce=require(_0x5856('0xd'));var deskjs=require(_0x5856('0xe'));var toCsv=require(_0x5856('0x9'));var querystring=require('querystring');var Papa=require(_0x5856('0xf'));var Redis=require(_0x5856('0x10'));var authService=require(_0x5856('0x11'));var qs=require(_0x5856('0x12'));var as=require(_0x5856('0x13'));var hardwareService=require(_0x5856('0x14'));var logger=require(_0x5856('0x15'))(_0x5856('0x16'));var utils=require('../../config/utils');var config=require(_0x5856('0x17'));var licenseUtil=require(_0x5856('0x18'));var db=require(_0x5856('0x19'))['db'];function respondWithStatusCode(_0x18ca5,_0x45b3be){_0x45b3be=_0x45b3be||0xcc;return function(_0x2eb516){if(_0x2eb516){return _0x18ca5[_0x5856('0x1a')](_0x45b3be);}return _0x18ca5[_0x5856('0x1b')](_0x45b3be)[_0x5856('0x1c')]();};}function respondWithResult(_0x5429d3,_0x23b25b){_0x23b25b=_0x23b25b||0xc8;return function(_0x2e84e1){if(_0x2e84e1){return _0x5429d3[_0x5856('0x1b')](_0x23b25b)[_0x5856('0x1d')](_0x2e84e1);}};}function respondWithFilteredResult(_0x2662d3,_0x2d6308){return function(_0x2f418b){if(_0x2f418b){var _0x2ec9b9=typeof _0x2d6308[_0x5856('0x1e')]===_0x5856('0x1f')&&typeof _0x2d6308[_0x5856('0x20')]===_0x5856('0x1f');var _0x535361=_0x2f418b[_0x5856('0x21')];var _0x4edc90=_0x2ec9b9?0x0:_0x2d6308[_0x5856('0x1e')];var _0x11a463=_0x2ec9b9?_0x2f418b[_0x5856('0x21')]:_0x2d6308['offset']+_0x2d6308['limit'];var _0x5400b3;if(_0x11a463>=_0x535361){_0x11a463=_0x535361;_0x5400b3=0xc8;}else{_0x5400b3=0xce;}_0x2662d3['status'](_0x5400b3);return _0x2662d3[_0x5856('0x22')](_0x5856('0x23'),_0x4edc90+'-'+_0x11a463+'/'+_0x535361)[_0x5856('0x1d')](_0x2f418b);}return null;};}function patchUpdates(_0x16ce2f){return function(_0x2b1e2d){try{jsonpatch[_0x5856('0x24')](_0x2b1e2d,_0x16ce2f,!![]);}catch(_0x505e80){return BPromise[_0x5856('0x25')](_0x505e80);}return _0x2b1e2d[_0x5856('0x26')]();};}function saveUpdates(_0x1faff4,_0x5b38eb){return function(_0x785265){if(_0x785265){return _0x785265[_0x5856('0x27')](_0x1faff4)[_0x5856('0x28')](function(_0x300a63){return _0x300a63;});}return null;};}function removeEntity(_0x2fdda5,_0x2f5a6e){return function(_0x28ba6b){if(_0x28ba6b){return _0x28ba6b[_0x5856('0x29')]()[_0x5856('0x28')](function(){_0x2fdda5[_0x5856('0x1b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x35a329,_0x3d23b9){return function(_0x1874af){if(!_0x1874af){_0x35a329['sendStatus'](0x194);}return _0x1874af;};}function handleError(_0x5e60a4,_0x5734ef){_0x5734ef=_0x5734ef||0x1f4;return function(_0x4be29a){logger[_0x5856('0x2a')](_0x4be29a[_0x5856('0x2b')]);if(_0x4be29a[_0x5856('0x2c')]){delete _0x4be29a[_0x5856('0x2c')];}_0x5e60a4[_0x5856('0x1b')](_0x5734ef)['send'](_0x4be29a);};}exports[_0x5856('0x2d')]=function(_0x48390b,_0x7fe22b){var _0x51d96b={},_0x432a38={},_0x2cc8ca={'count':0x0,'rows':[]};var _0x3b2f59=_[_0x5856('0x2e')](db[_0x5856('0x2f')]['rawAttributes'],function(_0x34fcce){return{'name':_0x34fcce[_0x5856('0x30')],'type':_0x34fcce[_0x5856('0x31')][_0x5856('0x32')]};});_0x432a38[_0x5856('0x33')]=_[_0x5856('0x2e')](_0x3b2f59,_0x5856('0x2c'));_0x432a38['query']=_[_0x5856('0x34')](_0x48390b[_0x5856('0x35')]);_0x432a38[_0x5856('0x36')]=_[_0x5856('0x37')](_0x432a38[_0x5856('0x33')],_0x432a38[_0x5856('0x35')]);_0x51d96b[_0x5856('0x38')]=_[_0x5856('0x37')](_0x432a38[_0x5856('0x33')],qs[_0x5856('0x39')](_0x48390b[_0x5856('0x35')][_0x5856('0x39')]));_0x51d96b['attributes']=_0x51d96b[_0x5856('0x38')][_0x5856('0x3a')]?_0x51d96b[_0x5856('0x38')]:_0x432a38[_0x5856('0x33')];if(!_0x48390b[_0x5856('0x35')]['hasOwnProperty'](_0x5856('0x3b'))){_0x51d96b[_0x5856('0x20')]=qs['limit'](_0x48390b['query'][_0x5856('0x20')]);_0x51d96b['offset']=qs['offset'](_0x48390b['query'][_0x5856('0x1e')]);}_0x51d96b[_0x5856('0x3c')]=qs[_0x5856('0x3d')](_0x48390b[_0x5856('0x35')][_0x5856('0x3d')]);_0x51d96b[_0x5856('0x3e')]=qs[_0x5856('0x36')](_[_0x5856('0x3f')](_0x48390b[_0x5856('0x35')],_0x432a38[_0x5856('0x36')]),_0x3b2f59);if(_0x48390b[_0x5856('0x35')][_0x5856('0x40')]){_0x51d96b[_0x5856('0x3e')]=_[_0x5856('0x41')](_0x51d96b[_0x5856('0x3e')],{'$or':_[_0x5856('0x2e')](_0x3b2f59,function(_0x596e48){if(_0x596e48[_0x5856('0x31')]!=='VIRTUAL'){var _0x3a7eee={};_0x3a7eee[_0x596e48[_0x5856('0x2c')]]={'$like':'%'+_0x48390b[_0x5856('0x35')]['filter']+'%'};return _0x3a7eee;}})});}_0x51d96b=_[_0x5856('0x41')]({},_0x51d96b,_0x48390b[_0x5856('0x42')]);var _0x46c0ef={'where':_0x51d96b[_0x5856('0x3e')]};return db[_0x5856('0x2f')][_0x5856('0x21')](_0x46c0ef)[_0x5856('0x28')](function(_0x499ce8){_0x2cc8ca[_0x5856('0x21')]=_0x499ce8;if(_0x48390b[_0x5856('0x35')][_0x5856('0x43')]){_0x51d96b[_0x5856('0x44')]=[{'all':!![]}];}return db[_0x5856('0x2f')][_0x5856('0x45')](_0x51d96b);})[_0x5856('0x28')](function(_0x3f943a){_0x2cc8ca[_0x5856('0x46')]=_0x3f943a;return _0x2cc8ca;})[_0x5856('0x28')](respondWithFilteredResult(_0x7fe22b,_0x51d96b))[_0x5856('0x47')](handleError(_0x7fe22b,null));};exports[_0x5856('0x48')]=function(_0x4f342b,_0x1202c6){var _0x119140={'raw':!![],'where':{'id':_0x4f342b[_0x5856('0x49')]['id']}},_0x1826f1={};_0x1826f1[_0x5856('0x33')]=_['keys'](db[_0x5856('0x2f')][_0x5856('0x4a')]);_0x1826f1[_0x5856('0x35')]=_[_0x5856('0x34')](_0x4f342b[_0x5856('0x35')]);_0x1826f1[_0x5856('0x36')]=_[_0x5856('0x37')](_0x1826f1[_0x5856('0x33')],_0x1826f1[_0x5856('0x35')]);_0x119140[_0x5856('0x38')]=_[_0x5856('0x37')](_0x1826f1[_0x5856('0x33')],qs[_0x5856('0x39')](_0x4f342b[_0x5856('0x35')][_0x5856('0x39')]));_0x119140[_0x5856('0x38')]=_0x119140[_0x5856('0x38')]['length']?_0x119140['attributes']:_0x1826f1[_0x5856('0x33')];if(_0x4f342b[_0x5856('0x35')][_0x5856('0x43')]){_0x119140['include']=[{'all':!![]}];}_0x119140=_[_0x5856('0x41')]({},_0x119140,_0x4f342b['options']);return db['FaxApplication']['find'](_0x119140)['then'](handleEntityNotFound(_0x1202c6,null))['then'](respondWithResult(_0x1202c6,null))['catch'](handleError(_0x1202c6,null));};exports[_0x5856('0x4b')]=function(_0x290399,_0x2972b7){return db[_0x5856('0x2f')]['create'](_0x290399[_0x5856('0x4c')],{})[_0x5856('0x28')](respondWithResult(_0x2972b7,0xc9))[_0x5856('0x47')](handleError(_0x2972b7,null));};exports[_0x5856('0x27')]=function(_0x5518c6,_0x143c88){if(_0x5518c6[_0x5856('0x4c')]['id']){delete _0x5518c6['body']['id'];}return db[_0x5856('0x2f')][_0x5856('0x4d')]({'where':{'id':_0x5518c6[_0x5856('0x49')]['id']}})[_0x5856('0x28')](handleEntityNotFound(_0x143c88,null))['then'](saveUpdates(_0x5518c6['body'],null))[_0x5856('0x28')](respondWithResult(_0x143c88,null))[_0x5856('0x47')](handleError(_0x143c88,null));};exports[_0x5856('0x29')]=function(_0x5e1ab8,_0x401276){return db[_0x5856('0x2f')][_0x5856('0x4d')]({'where':{'id':_0x5e1ab8[_0x5856('0x49')]['id']}})['then'](handleEntityNotFound(_0x401276,null))[_0x5856('0x28')](removeEntity(_0x401276,null))[_0x5856('0x47')](handleError(_0x401276,null));};
\ No newline at end of file
+var _0x3660=['then','name','index','map','FaxApplication','rawAttributes','fieldName','type','key','model','query','keys','filters','attributes','fields','hasOwnProperty','nolimit','sort','where','pick','filter','merge','VIRTUAL','options','rows','params','intersection','length','includeAll','include','create','body','catch','find','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','ejs','fs-extra','lodash','squel','jsforce','desk.js','to-csv','querystring','../../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','offset','undefined','limit','count','set','json','apply','reject','update','destroy'];(function(_0x5f124d,_0x5b5ff1){var _0x201e8b=function(_0x131bb0){while(--_0x131bb0){_0x5f124d['push'](_0x5f124d['shift']());}};_0x201e8b(++_0x5b5ff1);}(_0x3660,0x6e));var _0x0366=function(_0x50f347,_0x4505bc){_0x50f347=_0x50f347-0x0;var _0x310d58=_0x3660[_0x50f347];return _0x310d58;};'use strict';var emlformat=require(_0x0366('0x0'));var rimraf=require(_0x0366('0x1'));var zipdir=require(_0x0366('0x2'));var jsonpatch=require(_0x0366('0x3'));var rp=require(_0x0366('0x4'));var moment=require(_0x0366('0x5'));var BPromise=require(_0x0366('0x6'));var Mustache=require(_0x0366('0x7'));var util=require(_0x0366('0x8'));var path=require(_0x0366('0x9'));var sox=require(_0x0366('0xa'));var csv=require('to-csv');var ejs=require(_0x0366('0xb'));var fs=require('fs');var fs_extra=require(_0x0366('0xc'));var _=require(_0x0366('0xd'));var squel=require(_0x0366('0xe'));var crypto=require('crypto');var jsforce=require(_0x0366('0xf'));var deskjs=require(_0x0366('0x10'));var toCsv=require(_0x0366('0x11'));var querystring=require(_0x0366('0x12'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x0366('0x13'));var qs=require(_0x0366('0x14'));var as=require(_0x0366('0x15'));var hardwareService=require(_0x0366('0x16'));var logger=require(_0x0366('0x17'))(_0x0366('0x18'));var utils=require(_0x0366('0x19'));var config=require(_0x0366('0x1a'));var licenseUtil=require(_0x0366('0x1b'));var db=require(_0x0366('0x1c'))['db'];function respondWithStatusCode(_0x4ccafc,_0x37d83b){_0x37d83b=_0x37d83b||0xcc;return function(_0x335e13){if(_0x335e13){return _0x4ccafc[_0x0366('0x1d')](_0x37d83b);}return _0x4ccafc[_0x0366('0x1e')](_0x37d83b)[_0x0366('0x1f')]();};}function respondWithResult(_0x1459f8,_0x156db1){_0x156db1=_0x156db1||0xc8;return function(_0x4fe483){if(_0x4fe483){return _0x1459f8['status'](_0x156db1)['json'](_0x4fe483);}};}function respondWithFilteredResult(_0x1ee959,_0x3ef0c1){return function(_0x150b0b){if(_0x150b0b){var _0x5302e9=typeof _0x3ef0c1[_0x0366('0x20')]===_0x0366('0x21')&&typeof _0x3ef0c1[_0x0366('0x22')]==='undefined';var _0x3d1b04=_0x150b0b[_0x0366('0x23')];var _0x151a0a=_0x5302e9?0x0:_0x3ef0c1['offset'];var _0x5ef4f3=_0x5302e9?_0x150b0b[_0x0366('0x23')]:_0x3ef0c1[_0x0366('0x20')]+_0x3ef0c1[_0x0366('0x22')];var _0x16ba05;if(_0x5ef4f3>=_0x3d1b04){_0x5ef4f3=_0x3d1b04;_0x16ba05=0xc8;}else{_0x16ba05=0xce;}_0x1ee959[_0x0366('0x1e')](_0x16ba05);return _0x1ee959[_0x0366('0x24')]('Content-Range',_0x151a0a+'-'+_0x5ef4f3+'/'+_0x3d1b04)[_0x0366('0x25')](_0x150b0b);}return null;};}function patchUpdates(_0x216255){return function(_0x20b5cf){try{jsonpatch[_0x0366('0x26')](_0x20b5cf,_0x216255,!![]);}catch(_0x2e2541){return BPromise[_0x0366('0x27')](_0x2e2541);}return _0x20b5cf['save']();};}function saveUpdates(_0x3df841,_0x4241b1){return function(_0x2b09f9){if(_0x2b09f9){return _0x2b09f9[_0x0366('0x28')](_0x3df841)['then'](function(_0x5ce55c){return _0x5ce55c;});}return null;};}function removeEntity(_0x2d83c6,_0x8309f8){return function(_0x1512a0){if(_0x1512a0){return _0x1512a0[_0x0366('0x29')]()[_0x0366('0x2a')](function(){_0x2d83c6['status'](0xcc)[_0x0366('0x1f')]();});}};}function handleEntityNotFound(_0x334413,_0x555cfa){return function(_0xa20385){if(!_0xa20385){_0x334413[_0x0366('0x1d')](0x194);}return _0xa20385;};}function handleError(_0x432475,_0x4924c6){_0x4924c6=_0x4924c6||0x1f4;return function(_0x375d2f){logger['error'](_0x375d2f['stack']);if(_0x375d2f[_0x0366('0x2b')]){delete _0x375d2f[_0x0366('0x2b')];}_0x432475['status'](_0x4924c6)['send'](_0x375d2f);};}exports[_0x0366('0x2c')]=function(_0x569d74,_0x4379b1){var _0x1617b1={},_0x4f8959={},_0x4b1827={'count':0x0,'rows':[]};var _0x271788=_[_0x0366('0x2d')](db[_0x0366('0x2e')][_0x0366('0x2f')],function(_0x27ec87){return{'name':_0x27ec87[_0x0366('0x30')],'type':_0x27ec87[_0x0366('0x31')][_0x0366('0x32')]};});_0x4f8959[_0x0366('0x33')]=_['map'](_0x271788,_0x0366('0x2b'));_0x4f8959[_0x0366('0x34')]=_[_0x0366('0x35')](_0x569d74[_0x0366('0x34')]);_0x4f8959[_0x0366('0x36')]=_['intersection'](_0x4f8959[_0x0366('0x33')],_0x4f8959[_0x0366('0x34')]);_0x1617b1[_0x0366('0x37')]=_['intersection'](_0x4f8959['model'],qs[_0x0366('0x38')](_0x569d74['query']['fields']));_0x1617b1[_0x0366('0x37')]=_0x1617b1[_0x0366('0x37')]['length']?_0x1617b1[_0x0366('0x37')]:_0x4f8959[_0x0366('0x33')];if(!_0x569d74[_0x0366('0x34')][_0x0366('0x39')](_0x0366('0x3a'))){_0x1617b1['limit']=qs[_0x0366('0x22')](_0x569d74['query'][_0x0366('0x22')]);_0x1617b1[_0x0366('0x20')]=qs[_0x0366('0x20')](_0x569d74[_0x0366('0x34')][_0x0366('0x20')]);}_0x1617b1['order']=qs[_0x0366('0x3b')](_0x569d74['query'][_0x0366('0x3b')]);_0x1617b1[_0x0366('0x3c')]=qs['filters'](_[_0x0366('0x3d')](_0x569d74[_0x0366('0x34')],_0x4f8959[_0x0366('0x36')]),_0x271788);if(_0x569d74['query'][_0x0366('0x3e')]){_0x1617b1['where']=_[_0x0366('0x3f')](_0x1617b1[_0x0366('0x3c')],{'$or':_[_0x0366('0x2d')](_0x271788,function(_0x558383){if(_0x558383['type']!==_0x0366('0x40')){var _0x1484af={};_0x1484af[_0x558383[_0x0366('0x2b')]]={'$like':'%'+_0x569d74['query'][_0x0366('0x3e')]+'%'};return _0x1484af;}})});}_0x1617b1=_['merge']({},_0x1617b1,_0x569d74[_0x0366('0x41')]);var _0x4c08b9={'where':_0x1617b1[_0x0366('0x3c')]};return db[_0x0366('0x2e')][_0x0366('0x23')](_0x4c08b9)[_0x0366('0x2a')](function(_0x3936ce){_0x4b1827[_0x0366('0x23')]=_0x3936ce;if(_0x569d74[_0x0366('0x34')]['includeAll']){_0x1617b1['include']=[{'all':!![]}];}return db[_0x0366('0x2e')]['findAll'](_0x1617b1);})[_0x0366('0x2a')](function(_0xa1225c){_0x4b1827[_0x0366('0x42')]=_0xa1225c;return _0x4b1827;})[_0x0366('0x2a')](respondWithFilteredResult(_0x4379b1,_0x1617b1))['catch'](handleError(_0x4379b1,null));};exports['show']=function(_0x551ee0,_0x53dc08){var _0x588a9e={'raw':!![],'where':{'id':_0x551ee0[_0x0366('0x43')]['id']}},_0x3095e6={};_0x3095e6['model']=_[_0x0366('0x35')](db['FaxApplication']['rawAttributes']);_0x3095e6[_0x0366('0x34')]=_[_0x0366('0x35')](_0x551ee0[_0x0366('0x34')]);_0x3095e6['filters']=_[_0x0366('0x44')](_0x3095e6[_0x0366('0x33')],_0x3095e6[_0x0366('0x34')]);_0x588a9e['attributes']=_[_0x0366('0x44')](_0x3095e6[_0x0366('0x33')],qs[_0x0366('0x38')](_0x551ee0[_0x0366('0x34')]['fields']));_0x588a9e['attributes']=_0x588a9e[_0x0366('0x37')][_0x0366('0x45')]?_0x588a9e['attributes']:_0x3095e6['model'];if(_0x551ee0[_0x0366('0x34')][_0x0366('0x46')]){_0x588a9e[_0x0366('0x47')]=[{'all':!![]}];}_0x588a9e=_[_0x0366('0x3f')]({},_0x588a9e,_0x551ee0[_0x0366('0x41')]);return db['FaxApplication']['find'](_0x588a9e)[_0x0366('0x2a')](handleEntityNotFound(_0x53dc08,null))[_0x0366('0x2a')](respondWithResult(_0x53dc08,null))['catch'](handleError(_0x53dc08,null));};exports[_0x0366('0x48')]=function(_0x3f472,_0x4fa98c){return db[_0x0366('0x2e')][_0x0366('0x48')](_0x3f472[_0x0366('0x49')],{})[_0x0366('0x2a')](respondWithResult(_0x4fa98c,0xc9))[_0x0366('0x4a')](handleError(_0x4fa98c,null));};exports[_0x0366('0x28')]=function(_0x5464a3,_0x5563f9){if(_0x5464a3[_0x0366('0x49')]['id']){delete _0x5464a3['body']['id'];}return db[_0x0366('0x2e')]['find']({'where':{'id':_0x5464a3[_0x0366('0x43')]['id']}})[_0x0366('0x2a')](handleEntityNotFound(_0x5563f9,null))['then'](saveUpdates(_0x5464a3['body'],null))[_0x0366('0x2a')](respondWithResult(_0x5563f9,null))[_0x0366('0x4a')](handleError(_0x5563f9,null));};exports[_0x0366('0x29')]=function(_0x1a0da9,_0x39d6c6){return db[_0x0366('0x2e')][_0x0366('0x4b')]({'where':{'id':_0x1a0da9['params']['id']}})[_0x0366('0x2a')](handleEntityNotFound(_0x39d6c6,null))['then'](removeEntity(_0x39d6c6,null))[_0x0366('0x4a')](handleError(_0x39d6c6,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb515=['../../config/environment','./faxApplication.attributes','fax_applications','utf8mb4_unicode_ci','lodash','util','moment','path','rimraf'];(function(_0x2b4411,_0x2625ed){var _0x8e41ef=function(_0x2aa8c1){while(--_0x2aa8c1){_0x2b4411['push'](_0x2b4411['shift']());}};_0x8e41ef(++_0x2625ed);}(_0xb515,0xf7));var _0x5b51=function(_0x55969b,_0x1ebe62){_0x55969b=_0x55969b-0x0;var _0x3d7fc1=_0xb515[_0x55969b];return _0x3d7fc1;};'use strict';var _=require(_0x5b51('0x0'));var util=require(_0x5b51('0x1'));var logger=require('../../config/logger')('api');var moment=require(_0x5b51('0x2'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0x5b51('0x3'));var rimraf=require(_0x5b51('0x4'));var config=require(_0x5b51('0x5'));var attributes=require(_0x5b51('0x6'));module['exports']=function(_0x300bde,_0x1c44bc){return _0x300bde['define']('FaxApplication',attributes,{'tableName':_0x5b51('0x7'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':'utf8mb4','collate':_0x5b51('0x8')});};
\ No newline at end of file
+var _0xbd00=['FaxApplication','fax_applications','utf8mb4','lodash','util','../../config/logger','api','bluebird','request-promise','rimraf','exports','define'];(function(_0x35739e,_0xf3e4c5){var _0x3bafff=function(_0x24d817){while(--_0x24d817){_0x35739e['push'](_0x35739e['shift']());}};_0x3bafff(++_0xf3e4c5);}(_0xbd00,0x13b));var _0x0bd0=function(_0x4f6f04,_0x59c6ba){_0x4f6f04=_0x4f6f04-0x0;var _0x606b2c=_0xbd00[_0x4f6f04];return _0x606b2c;};'use strict';var _=require(_0x0bd0('0x0'));var util=require(_0x0bd0('0x1'));var logger=require(_0x0bd0('0x2'))(_0x0bd0('0x3'));var moment=require('moment');var BPromise=require(_0x0bd0('0x4'));var rp=require(_0x0bd0('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0x0bd0('0x6'));var config=require('../../config/environment');var attributes=require('./faxApplication.attributes');module[_0x0bd0('0x7')]=function(_0x451220,_0x18fc63){return _0x451220[_0x0bd0('0x8')](_0x0bd0('0x9'),attributes,{'tableName':_0x0bd0('0xa'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0x0bd0('0xb'),'collate':'utf8mb4_unicode_ci'});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd3a0=['http','request','then','FaxApplication,\x20%s,\x20%s','request\x20sent','debug','FaxApplication,\x20%s,\x20%s,\x20%s','stringify','error','message','info','catch','UpdateFaxApplication','update','body','options','raw','attributes','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','client'];(function(_0x2b8cb3,_0xc00c24){var _0xaa7e55=function(_0x803e73){while(--_0x803e73){_0x2b8cb3['push'](_0x2b8cb3['shift']());}};_0xaa7e55(++_0xc00c24);}(_0xd3a0,0x1c5));var _0x0d3a=function(_0x1a5516,_0x10f9ad){_0x1a5516=_0x1a5516-0x0;var _0x159697=_0xd3a0[_0x1a5516];return _0x159697;};'use strict';var _=require(_0x0d3a('0x0'));var util=require(_0x0d3a('0x1'));var moment=require(_0x0d3a('0x2'));var BPromise=require(_0x0d3a('0x3'));var rs=require(_0x0d3a('0x4'));var fs=require('fs');var Redis=require(_0x0d3a('0x5'));var db=require(_0x0d3a('0x6'))['db'];var utils=require(_0x0d3a('0x7'));var logger=require(_0x0d3a('0x8'))(_0x0d3a('0x9'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0x0d3a('0xa')][_0x0d3a('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x331d77,_0x9c538,_0x2fa63d){return new BPromise(function(_0x2ac4bd,_0xc1b1ef){return client[_0x0d3a('0xc')](_0x331d77,_0x2fa63d)[_0x0d3a('0xd')](function(_0x363959){logger['info'](_0x0d3a('0xe'),_0x9c538,_0x0d3a('0xf'));logger[_0x0d3a('0x10')](_0x0d3a('0x11'),_0x9c538,_0x0d3a('0xf'),JSON[_0x0d3a('0x12')](_0x363959));if(_0x363959[_0x0d3a('0x13')]){if(_0x363959[_0x0d3a('0x13')]['code']===0x1f4){logger[_0x0d3a('0x13')](_0x0d3a('0xe'),_0x9c538,_0x363959['error']['message']);return _0xc1b1ef(_0x363959[_0x0d3a('0x13')]['message']);}logger[_0x0d3a('0x13')](_0x0d3a('0xe'),_0x9c538,_0x363959[_0x0d3a('0x13')][_0x0d3a('0x14')]);return _0x2ac4bd(_0x363959[_0x0d3a('0x13')]['message']);}else{logger[_0x0d3a('0x15')](_0x0d3a('0xe'),_0x9c538,_0x0d3a('0xf'));_0x2ac4bd(_0x363959['result'][_0x0d3a('0x14')]);}})[_0x0d3a('0x16')](function(_0x4be2d8){logger[_0x0d3a('0x13')](_0x0d3a('0xe'),_0x9c538,_0x4be2d8);_0xc1b1ef(_0x4be2d8);});});}exports[_0x0d3a('0x17')]=function(_0x3876b7){var _0x387e0a=this;return new Promise(function(_0x2080fb,_0x24d69e){return db['FaxApplication'][_0x0d3a('0x18')](_0x3876b7[_0x0d3a('0x19')],{'raw':_0x3876b7[_0x0d3a('0x1a')]?_0x3876b7[_0x0d3a('0x1a')][_0x0d3a('0x1b')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x3876b7[_0x0d3a('0x1a')]?_0x3876b7[_0x0d3a('0x1a')]['where']||null:null,'attributes':_0x3876b7[_0x0d3a('0x1a')]?_0x3876b7[_0x0d3a('0x1a')][_0x0d3a('0x1c')]||null:null,'limit':_0x3876b7['options']?_0x3876b7[_0x0d3a('0x1a')]['limit']||null:null})[_0x0d3a('0xd')](function(_0xfb8879){logger[_0x0d3a('0x15')](_0x0d3a('0x17'),_0x3876b7);logger['debug'](_0x0d3a('0x17'),_0x3876b7,JSON[_0x0d3a('0x12')](_0xfb8879));_0x2080fb(_0xfb8879);})[_0x0d3a('0x16')](function(_0x8666e4){logger[_0x0d3a('0x13')](_0x0d3a('0x17'),_0x8666e4[_0x0d3a('0x14')],_0x3876b7);_0x24d69e(_0x387e0a[_0x0d3a('0x13')](0x1f4,_0x8666e4[_0x0d3a('0x14')]));});});};
\ No newline at end of file
+var _0xcfab=['lodash','moment','randomstring','../../mysqldb','rpc','../../config/environment','jayson/promise','http','request','then','info','request\x20sent','debug','FaxApplication,\x20%s,\x20%s,\x20%s','stringify','error','code','message','FaxApplication,\x20%s,\x20%s','result','catch','FaxApplication','update','body','options','raw','where','attributes','limit','UpdateFaxApplication'];(function(_0x5c365f,_0x3b40ed){var _0x295e1b=function(_0x226683){while(--_0x226683){_0x5c365f['push'](_0x5c365f['shift']());}};_0x295e1b(++_0x3b40ed);}(_0xcfab,0x1e0));var _0xbcfa=function(_0x3e900b,_0x288f7f){_0x3e900b=_0x3e900b-0x0;var _0x46ec02=_0xcfab[_0x3e900b];return _0x46ec02;};'use strict';var _=require(_0xbcfa('0x0'));var util=require('util');var moment=require(_0xbcfa('0x1'));var BPromise=require('bluebird');var rs=require(_0xbcfa('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xbcfa('0x3'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0xbcfa('0x4'));var config=require(_0xbcfa('0x5'));var jayson=require(_0xbcfa('0x6'));var client=jayson['client'][_0xbcfa('0x7')]({'port':0x232a});function respondWithRpcPromise(_0x12b146,_0x61f7d8,_0x36bb2b){return new BPromise(function(_0x59e63b,_0x49bcdd){return client[_0xbcfa('0x8')](_0x12b146,_0x36bb2b)[_0xbcfa('0x9')](function(_0x5d57b1){logger[_0xbcfa('0xa')]('FaxApplication,\x20%s,\x20%s',_0x61f7d8,_0xbcfa('0xb'));logger[_0xbcfa('0xc')](_0xbcfa('0xd'),_0x61f7d8,'request\x20sent',JSON[_0xbcfa('0xe')](_0x5d57b1));if(_0x5d57b1[_0xbcfa('0xf')]){if(_0x5d57b1['error'][_0xbcfa('0x10')]===0x1f4){logger[_0xbcfa('0xf')]('FaxApplication,\x20%s,\x20%s',_0x61f7d8,_0x5d57b1[_0xbcfa('0xf')]['message']);return _0x49bcdd(_0x5d57b1[_0xbcfa('0xf')][_0xbcfa('0x11')]);}logger[_0xbcfa('0xf')](_0xbcfa('0x12'),_0x61f7d8,_0x5d57b1[_0xbcfa('0xf')][_0xbcfa('0x11')]);return _0x59e63b(_0x5d57b1[_0xbcfa('0xf')][_0xbcfa('0x11')]);}else{logger['info'](_0xbcfa('0x12'),_0x61f7d8,'request\x20sent');_0x59e63b(_0x5d57b1[_0xbcfa('0x13')]['message']);}})[_0xbcfa('0x14')](function(_0x380fb9){logger[_0xbcfa('0xf')](_0xbcfa('0x12'),_0x61f7d8,_0x380fb9);_0x49bcdd(_0x380fb9);});});}exports['UpdateFaxApplication']=function(_0x4643ae){var _0x41d084=this;return new Promise(function(_0x326625,_0x30fa40){return db[_0xbcfa('0x15')][_0xbcfa('0x16')](_0x4643ae[_0xbcfa('0x17')],{'raw':_0x4643ae['options']?_0x4643ae[_0xbcfa('0x18')][_0xbcfa('0x19')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x4643ae[_0xbcfa('0x18')]?_0x4643ae[_0xbcfa('0x18')][_0xbcfa('0x1a')]||null:null,'attributes':_0x4643ae[_0xbcfa('0x18')]?_0x4643ae['options'][_0xbcfa('0x1b')]||null:null,'limit':_0x4643ae[_0xbcfa('0x18')]?_0x4643ae[_0xbcfa('0x18')][_0xbcfa('0x1c')]||null:null})[_0xbcfa('0x9')](function(_0x56f326){logger[_0xbcfa('0xa')](_0xbcfa('0x1d'),_0x4643ae);logger['debug']('UpdateFaxApplication',_0x4643ae,JSON['stringify'](_0x56f326));_0x326625(_0x56f326);})[_0xbcfa('0x14')](function(_0x3b6057){logger[_0xbcfa('0xf')](_0xbcfa('0x1d'),_0x3b6057['message'],_0x4643ae);_0x30fa40(_0x41d084[_0xbcfa('0xf')](0x1f4,_0x3b6057[_0xbcfa('0x11')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1775=['../../config/environment','./faxApplication.controller','get','isAuthenticated','index','/:id','show','post','create','put','delete','destroy','exports','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service'];(function(_0x3d7635,_0x4fd394){var _0x4c0b6c=function(_0x18f071){while(--_0x18f071){_0x3d7635['push'](_0x3d7635['shift']());}};_0x4c0b6c(++_0x4fd394);}(_0x1775,0x1db));var _0x5177=function(_0x502c7d,_0x2f1285){_0x502c7d=_0x502c7d-0x0;var _0x30b7ed=_0x1775[_0x502c7d];return _0x30b7ed;};'use strict';var multer=require('multer');var util=require(_0x5177('0x0'));var path=require(_0x5177('0x1'));var timeout=require(_0x5177('0x2'));var express=require(_0x5177('0x3'));var router=express[_0x5177('0x4')]();var fs_extra=require(_0x5177('0x5'));var auth=require(_0x5177('0x6'));var interaction=require(_0x5177('0x7'));var config=require(_0x5177('0x8'));var controller=require(_0x5177('0x9'));router[_0x5177('0xa')]('/',auth[_0x5177('0xb')](),controller[_0x5177('0xc')]);router[_0x5177('0xa')](_0x5177('0xd'),auth[_0x5177('0xb')](),controller[_0x5177('0xe')]);router[_0x5177('0xf')]('/',auth[_0x5177('0xb')](),controller[_0x5177('0x10')]);router[_0x5177('0x11')](_0x5177('0xd'),auth['isAuthenticated'](),controller['update']);router[_0x5177('0x12')](_0x5177('0xd'),auth[_0x5177('0xb')](),controller[_0x5177('0x13')]);module[_0x5177('0x14')]=router;
\ No newline at end of file
+var _0x1eba=['express','../../components/auth/service','../../components/interaction/service','../../config/environment','./faxApplication.controller','get','isAuthenticated','index','/:id','show','post','create','update','destroy','exports','multer','util','path','connect-timeout'];(function(_0x140d2f,_0x2ad576){var _0x1a04c6=function(_0x4f742b){while(--_0x4f742b){_0x140d2f['push'](_0x140d2f['shift']());}};_0x1a04c6(++_0x2ad576);}(_0x1eba,0x1d7));var _0xa1eb=function(_0x4e6ae6,_0x49dba6){_0x4e6ae6=_0x4e6ae6-0x0;var _0x23c108=_0x1eba[_0x4e6ae6];return _0x23c108;};'use strict';var multer=require(_0xa1eb('0x0'));var util=require(_0xa1eb('0x1'));var path=require(_0xa1eb('0x2'));var timeout=require(_0xa1eb('0x3'));var express=require(_0xa1eb('0x4'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0xa1eb('0x5'));var interaction=require(_0xa1eb('0x6'));var config=require(_0xa1eb('0x7'));var controller=require(_0xa1eb('0x8'));router[_0xa1eb('0x9')]('/',auth[_0xa1eb('0xa')](),controller[_0xa1eb('0xb')]);router[_0xa1eb('0x9')](_0xa1eb('0xc'),auth[_0xa1eb('0xa')](),controller[_0xa1eb('0xd')]);router[_0xa1eb('0xe')]('/',auth['isAuthenticated'](),controller[_0xa1eb('0xf')]);router['put'](_0xa1eb('0xc'),auth['isAuthenticated'](),controller[_0xa1eb('0x10')]);router['delete'](_0xa1eb('0xc'),auth['isAuthenticated'](),controller[_0xa1eb('0x11')]);module[_0xa1eb('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x62ea=['STRING','ENUM','out','sequelize','exports','BOOLEAN','DATE'];(function(_0x5ad051,_0x254acd){var _0xcbd9e4=function(_0x73041){while(--_0x73041){_0x5ad051['push'](_0x5ad051['shift']());}};_0xcbd9e4(++_0x254acd);}(_0x62ea,0xea));var _0xa62e=function(_0x25d2fa,_0x1d35c6){_0x25d2fa=_0x25d2fa-0x0;var _0x42d4aa=_0x62ea[_0x25d2fa];return _0x42d4aa;};'use strict';var Sequelize=require(_0xa62e('0x0'));module[_0xa62e('0x1')]={'closed':{'type':Sequelize[_0xa62e('0x2')],'defaultValue':![]},'closedAt':{'type':Sequelize[_0xa62e('0x3')]},'disposition':{'type':Sequelize[_0xa62e('0x4')]},'secondDisposition':{'type':Sequelize[_0xa62e('0x4')]},'thirdDisposition':{'type':Sequelize[_0xa62e('0x4')]},'note':{'type':Sequelize['STRING']},'read1stAt':{'type':Sequelize[_0xa62e('0x3')]},'fax':{'type':Sequelize[_0xa62e('0x4')]},'firstMsgDirection':{'type':Sequelize[_0xa62e('0x5')]('in',_0xa62e('0x6')),'defaultValue':'in','allowNull':![]},'lastMsgAt':{'type':Sequelize[_0xa62e('0x3')]},'lastMsgDirection':{'type':Sequelize[_0xa62e('0x5')]('in',_0xa62e('0x6')),'defaultValue':'in','allowNull':![]}};
\ No newline at end of file
+var _0xbb11=['BOOLEAN','DATE','STRING','out','ENUM','sequelize','exports'];(function(_0x4ebaab,_0x2a8c15){var _0x4cbfdb=function(_0x3e6804){while(--_0x3e6804){_0x4ebaab['push'](_0x4ebaab['shift']());}};_0x4cbfdb(++_0x2a8c15);}(_0xbb11,0x1d3));var _0x1bb1=function(_0x30498f,_0x4d3464){_0x30498f=_0x30498f-0x0;var _0x6fb8b6=_0xbb11[_0x30498f];return _0x6fb8b6;};'use strict';var Sequelize=require(_0x1bb1('0x0'));module[_0x1bb1('0x1')]={'closed':{'type':Sequelize[_0x1bb1('0x2')],'defaultValue':![]},'closedAt':{'type':Sequelize[_0x1bb1('0x3')]},'disposition':{'type':Sequelize[_0x1bb1('0x4')]},'secondDisposition':{'type':Sequelize[_0x1bb1('0x4')]},'thirdDisposition':{'type':Sequelize[_0x1bb1('0x4')]},'note':{'type':Sequelize[_0x1bb1('0x4')]},'read1stAt':{'type':Sequelize['DATE']},'fax':{'type':Sequelize['STRING']},'firstMsgDirection':{'type':Sequelize['ENUM']('in',_0x1bb1('0x5')),'defaultValue':'in','allowNull':![]},'lastMsgAt':{'type':Sequelize[_0x1bb1('0x3')]},'lastMsgDirection':{'type':Sequelize[_0x1bb1('0x6')]('in',_0x1bb1('0x5')),'defaultValue':'in','allowNull':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc3fc=['value','having','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','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','i.FaxAccountId\x20IN\x20?','concat','parse','$gte','$lte','\x20=\x20?','read','`unreadMessages`\x20=\x200','`unreadMessages`\x20>\x200','tag','isArray','filter','replace','isNumeric','i.id\x20LIKE\x20?','i.fax\x20LIKE\x20?','CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?','group','i.id','QueryTypes','SELECT','clone','unreadMessages','contactName','DESC','isEmpty','t.id\x20IN\x20?','FaxAccountId','i.FaxAccountId\x20IS\x20NOT\x20NULL','user','role','getFaxAccounts','i.FaxAccountId\x20IS\x20NULL','agent','sequelize','toString','keyBy','merge','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','a.key','Account.key','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','i.*','c.firstName','Contact.firstName','c.lastName','Contact.lastName','c.email','Contact.email','c.phone','Contact.fax','o.fullname','o.internal','Owner.internal','GROUP_CONCAT(DISTINCT\x20t.id)','all','rows','show','params','keys','includeAll','include','create','update','describe','addMessage','ids','omit','getMessages','findOne','FaxMessage','pick','FaxInteractionId','YYYY-MM-DD\x20HH:mm:ss','options','findAll','addTags','setTags','spread','color','emit','faxInteractionTags:save','download','unix','join','root','files','tmp','server','attachments','transcript-%d-%s.zip','Attachment','Messages','get','mkdirSync','existsSync','pipe','createWriteStream','basename','resolve','err','unlinkSync','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','to-csv','fs-extra','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/license/util','../../mysqldb','defaults','redis','./faxInteraction.socket','register','sendStatus','status','end','undefined','count','offset','limit','set','Content-Range','json','apply','save','then','stack','name','Users','map','fullname','TagIds','Tags','split','forEach','push','catch','index','FaxInteraction','rawAttributes','fieldName','type','model','query','filters','intersection','attributes','fields','length','nolimit','order','sort','where','select','field','from','tools_tags','u.fullname','ui.FaxInteractionId','user_has_fax_interactions','left_join','users','u.id\x20=\x20ui.UserId','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','fax_accounts','fax_messages','me.FaxInteractionId\x20=\x20i.id','fax_interaction_has_tags','it.FaxInteractionId\x20=\x20i.id','expr','search','parseSearch','sqlOperator','conditions','find'];(function(_0x210e9f,_0x6d4cab){var _0x50f275=function(_0x346654){while(--_0x346654){_0x210e9f['push'](_0x210e9f['shift']());}};_0x50f275(++_0x6d4cab);}(_0xc3fc,0x7d));var _0xcc3f=function(_0x2908bb,_0x2ad0b1){_0x2908bb=_0x2908bb-0x0;var _0x8a029=_0xc3fc[_0x2908bb];return _0x8a029;};'use strict';var emlformat=require(_0xcc3f('0x0'));var rimraf=require(_0xcc3f('0x1'));var zipdir=require(_0xcc3f('0x2'));var jsonpatch=require(_0xcc3f('0x3'));var rp=require(_0xcc3f('0x4'));var moment=require(_0xcc3f('0x5'));var BPromise=require(_0xcc3f('0x6'));var Mustache=require('mustache');var util=require(_0xcc3f('0x7'));var path=require(_0xcc3f('0x8'));var sox=require('sox');var csv=require(_0xcc3f('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xcc3f('0xa'));var _=require('lodash');var squel=require(_0xcc3f('0xb'));var crypto=require(_0xcc3f('0xc'));var jsforce=require(_0xcc3f('0xd'));var deskjs=require('desk.js');var toCsv=require(_0xcc3f('0x9'));var querystring=require(_0xcc3f('0xe'));var Papa=require(_0xcc3f('0xf'));var Redis=require(_0xcc3f('0x10'));var authService=require(_0xcc3f('0x11'));var qs=require(_0xcc3f('0x12'));var as=require(_0xcc3f('0x13'));var hardwareService=require(_0xcc3f('0x14'));var logger=require('../../config/logger')(_0xcc3f('0x15'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0xcc3f('0x16'));var db=require(_0xcc3f('0x17'))['db'];config['redis']=_[_0xcc3f('0x18')](config[_0xcc3f('0x19')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xcc3f('0x19')]));require(_0xcc3f('0x1a'))[_0xcc3f('0x1b')](socket);function respondWithStatusCode(_0x14fe74,_0x2a4b4f){_0x2a4b4f=_0x2a4b4f||0xcc;return function(_0x4aaf3d){if(_0x4aaf3d){return _0x14fe74[_0xcc3f('0x1c')](_0x2a4b4f);}return _0x14fe74[_0xcc3f('0x1d')](_0x2a4b4f)[_0xcc3f('0x1e')]();};}function respondWithResult(_0x23c0dd,_0x20b77c){_0x20b77c=_0x20b77c||0xc8;return function(_0x9abfa8){if(_0x9abfa8){return _0x23c0dd[_0xcc3f('0x1d')](_0x20b77c)['json'](_0x9abfa8);}};}function respondWithFilteredResult(_0x232e3c,_0x31850f){return function(_0x33727c){if(_0x33727c){var _0x2b6a21=typeof _0x31850f['offset']==='undefined'&&typeof _0x31850f['limit']===_0xcc3f('0x1f');var _0x191e3e=_0x33727c[_0xcc3f('0x20')];var _0x2e21c0=_0x2b6a21?0x0:_0x31850f[_0xcc3f('0x21')];var _0x8d63a6=_0x2b6a21?_0x33727c[_0xcc3f('0x20')]:_0x31850f['offset']+_0x31850f[_0xcc3f('0x22')];var _0x1faa10;if(_0x8d63a6>=_0x191e3e){_0x8d63a6=_0x191e3e;_0x1faa10=0xc8;}else{_0x1faa10=0xce;}_0x232e3c[_0xcc3f('0x1d')](_0x1faa10);return _0x232e3c[_0xcc3f('0x23')](_0xcc3f('0x24'),_0x2e21c0+'-'+_0x8d63a6+'/'+_0x191e3e)[_0xcc3f('0x25')](_0x33727c);}return null;};}function patchUpdates(_0x237c8f){return function(_0x1f6b83){try{jsonpatch[_0xcc3f('0x26')](_0x1f6b83,_0x237c8f,!![]);}catch(_0x12735c){return BPromise['reject'](_0x12735c);}return _0x1f6b83[_0xcc3f('0x27')]();};}function saveUpdates(_0x515392,_0x30425c){return function(_0x2112d6){if(_0x2112d6){return _0x2112d6['update'](_0x515392)[_0xcc3f('0x28')](function(_0xbd01f4){return _0xbd01f4;});}return null;};}function removeEntity(_0x29a83e,_0x4c04c5){return function(_0x52d531){if(_0x52d531){return _0x52d531['destroy']()['then'](function(){_0x29a83e['status'](0xcc)[_0xcc3f('0x1e')]();});}};}function handleEntityNotFound(_0x59415a,_0x254235){return function(_0x263964){if(!_0x263964){_0x59415a[_0xcc3f('0x1c')](0x194);}return _0x263964;};}function handleError(_0xb0876f,_0x441548){_0x441548=_0x441548||0x1f4;return function(_0x1266f3){logger['error'](_0x1266f3[_0xcc3f('0x29')]);if(_0x1266f3[_0xcc3f('0x2a')]){delete _0x1266f3[_0xcc3f('0x2a')];}_0xb0876f[_0xcc3f('0x1d')](_0x441548)['send'](_0x1266f3);};}function getInteractionUsers(_0x22dbe7,_0x32935e){return new BPromise(function(_0x4994d8,_0x50a558){try{if(_0x32935e[_0x22dbe7['id']]){_0x22dbe7[_0xcc3f('0x2b')]=_[_0xcc3f('0x2c')](_0x32935e[_0x22dbe7['id']],function(_0x4eb6ed){return{'id':_0x4eb6ed['id'],'fullname':_0x4eb6ed[_0xcc3f('0x2d')]};});}}catch(_0x21aaf8){_0x50a558(_0x21aaf8);}_0x4994d8(_0x22dbe7);});}function getInteractionTags(_0x503e9b,_0x5bbcff){return new BPromise(function(_0xb859a9,_0x1febd6){try{if(_0x503e9b[_0xcc3f('0x2e')]){_0x503e9b[_0xcc3f('0x2f')]=[];_0x503e9b[_0xcc3f('0x2e')][_0xcc3f('0x30')](',')[_0xcc3f('0x31')](function(_0x251037){_0x503e9b[_0xcc3f('0x2f')][_0xcc3f('0x32')](_0x5bbcff[_0x251037]);});}delete _0x503e9b['TagIds'];}catch(_0x51aa2d){_0x1febd6(_0x51aa2d);}_0xb859a9(_0x503e9b);});}function updateFaxInteraction(_0x15e009,_0x531e91,_0x133d3a){return new BPromise(function(_0x3c11fd,_0x26eec4){return getInteractionUsers(_0x15e009,_0x133d3a)['then'](function(_0x5944d0){return getInteractionTags(_0x5944d0,_0x531e91);})[_0xcc3f('0x28')](function(_0x2ca6a5){_0x3c11fd(_0x2ca6a5);})[_0xcc3f('0x33')](function(_0x5a56e2){_0x26eec4(_0x5a56e2);});});}exports[_0xcc3f('0x34')]=function(_0x5abdb8,_0xbb59cf){var _0x17e975={},_0x3f4bd1={},_0xead1aa={'count':0x0,'rows':[]};var _0x4743d9=_['map'](db[_0xcc3f('0x35')][_0xcc3f('0x36')],function(_0xdca6ff){return{'name':_0xdca6ff[_0xcc3f('0x37')],'type':_0xdca6ff[_0xcc3f('0x38')]['key']};});_0x3f4bd1[_0xcc3f('0x39')]=_[_0xcc3f('0x2c')](_0x4743d9,_0xcc3f('0x2a'));_0x3f4bd1[_0xcc3f('0x3a')]=_['keys'](_0x5abdb8['query']);_0x3f4bd1[_0xcc3f('0x3b')]=_[_0xcc3f('0x3c')](_0x3f4bd1['model'],_0x3f4bd1['query']);_0x17e975[_0xcc3f('0x3d')]=_[_0xcc3f('0x3c')](_0x3f4bd1[_0xcc3f('0x39')],qs[_0xcc3f('0x3e')](_0x5abdb8[_0xcc3f('0x3a')]['fields']));_0x17e975['attributes']=_0x17e975[_0xcc3f('0x3d')][_0xcc3f('0x3f')]?_0x17e975[_0xcc3f('0x3d')]:_0x3f4bd1[_0xcc3f('0x39')];if(!_0x5abdb8[_0xcc3f('0x3a')]['hasOwnProperty'](_0xcc3f('0x40'))){_0x17e975['limit']=qs[_0xcc3f('0x22')](_0x5abdb8[_0xcc3f('0x3a')][_0xcc3f('0x22')]);_0x17e975['offset']=qs[_0xcc3f('0x21')](_0x5abdb8[_0xcc3f('0x3a')][_0xcc3f('0x21')]);}_0x17e975[_0xcc3f('0x41')]=qs[_0xcc3f('0x42')](_0x5abdb8[_0xcc3f('0x3a')][_0xcc3f('0x42')]);_0x17e975[_0xcc3f('0x43')]=qs['filters'](_['pick'](_0x5abdb8['query'],_0x3f4bd1[_0xcc3f('0x3b')]),_0x4743d9);var _0x39be4c=[];var _0x30d2ae=squel[_0xcc3f('0x44')]()[_0xcc3f('0x45')]('id')[_0xcc3f('0x45')](_0xcc3f('0x2a'))[_0xcc3f('0x45')]('color')[_0xcc3f('0x46')](_0xcc3f('0x47'));var _0x3805bd=squel[_0xcc3f('0x44')]()[_0xcc3f('0x45')]('u.id')[_0xcc3f('0x45')](_0xcc3f('0x48'))['field'](_0xcc3f('0x49'))[_0xcc3f('0x46')](_0xcc3f('0x4a'),'ui')[_0xcc3f('0x4b')](_0xcc3f('0x4c'),'u',_0xcc3f('0x4d'));var _0x2e260d=squel[_0xcc3f('0x44')]()[_0xcc3f('0x46')]('fax_interactions','i')[_0xcc3f('0x4b')]('cm_contacts','c',_0xcc3f('0x4e'))['left_join']('users','o','o.id\x20=\x20i.UserId')[_0xcc3f('0x4b')](_0xcc3f('0x4f'),'a','a.id\x20=\x20i.FaxAccountId')[_0xcc3f('0x4b')](_0xcc3f('0x50'),'me',_0xcc3f('0x51'))[_0xcc3f('0x4b')](_0xcc3f('0x52'),'it',_0xcc3f('0x53'))[_0xcc3f('0x4b')](_0xcc3f('0x47'),'t','t.id\x20=\x20it.TagId');var _0x58d7e4=squel[_0xcc3f('0x54')]();var _0x36b5f5=[];var _0x29e772=squel['expr']();var _0x29f9a7;if(_0x5abdb8['query'][_0xcc3f('0x55')]){_0x29f9a7=as[_0xcc3f('0x56')](_0x5abdb8[_0xcc3f('0x3a')]['search']);var _0x10e765=_0x29f9a7[_0xcc3f('0x57')];for(var _0x4bae9d=0x0;_0x4bae9d<_0x29f9a7[_0xcc3f('0x58')][_0xcc3f('0x3f')];_0x4bae9d++){var _0x4926e7=_0x29f9a7['conditions'][_0x4bae9d];var _0x9dc6e5='i';var _0x3c4fdf=_[_0xcc3f('0x59')](_0x4743d9,[_0xcc3f('0x2a'),_0x4926e7[_0xcc3f('0x45')]]);if(!_0x3c4fdf){switch(_0x4926e7['field']){case'unreadMessages':if(_0x4926e7[_0xcc3f('0x5a')]==0x1){_0x2e260d[_0xcc3f('0x5b')]('`'+_0x4926e7[_0xcc3f('0x45')]+'`\x20=\x200');}else{_0x2e260d[_0xcc3f('0x5b')]('`'+_0x4926e7['field']+'`\x20>\x200');}break;case _0xcc3f('0x5c'):if(_0x4926e7[_0xcc3f('0x5d')]===_0xcc3f('0x5e')){if(_0x4926e7[_0xcc3f('0x5a')][_0xcc3f('0x30')]('\x20')[_0xcc3f('0x3f')]>0x1){_0x58d7e4[_0x10e765](_0xcc3f('0x5f'),qs[_0xcc3f('0x60')](_0x4926e7[_0xcc3f('0x5a')]),null);}else{var _0x43d8fc='%'+_0x4926e7['value']+'%';_0x58d7e4[_0x10e765](_0xcc3f('0x61'),_0x43d8fc,_0x43d8fc,_0x43d8fc);}}else{_0x3c4fdf=_['find'](_0x4743d9,['name',_0xcc3f('0x62')]);_0x4926e7[_0xcc3f('0x45')]=_0xcc3f('0x62');_0x17e21e=as[_0xcc3f('0x63')](_0x9dc6e5,_0x3c4fdf[_0xcc3f('0x38')],_0x4926e7);_0x58d7e4[_0x10e765](_0x17e21e[_0xcc3f('0x64')],_0x17e21e[_0xcc3f('0x5a')][_0xcc3f('0x65')],_0x17e21e[_0xcc3f('0x5a')][_0xcc3f('0x1e')]);}break;case _0xcc3f('0x66'):var _0x25dc72=_0x4926e7[_0xcc3f('0x5a')][_0xcc3f('0x30')](',')[_0xcc3f('0x2c')](function(_0x10a399){return Number(_0x10a399);});_0x25dc72['forEach'](function(_0x55ee2b){_0x29e772['or'](_0xcc3f('0x67'),'%,'+_0x55ee2b+',%');});_0x36b5f5=_[_0xcc3f('0x68')](_0x36b5f5,_0x25dc72);break;case _0xcc3f('0x69'):if(_0x4926e7[_0xcc3f('0x5d')]==='$substring'){_0x58d7e4[_0x10e765](_0xcc3f('0x6a'),'%'+_0x4926e7[_0xcc3f('0x5a')]+'%',null);}else{_0x3c4fdf=_['find'](_0x4743d9,[_0xcc3f('0x2a'),_0xcc3f('0x6b')]);_0x4926e7[_0xcc3f('0x45')]='UserId';_0x17e21e=as[_0xcc3f('0x63')](_0x9dc6e5,_0x3c4fdf[_0xcc3f('0x38')],_0x4926e7);_0x58d7e4[_0x10e765](_0x17e21e[_0xcc3f('0x64')],_0x17e21e['value'][_0xcc3f('0x65')],_0x17e21e[_0xcc3f('0x5a')][_0xcc3f('0x1e')]);}break;case _0xcc3f('0x6c'):_0x17e21e=as['buildExpression']('me',null,_0x4926e7);_0x58d7e4[_0x10e765](_0x17e21e[_0xcc3f('0x64')],_0x17e21e['value'][_0xcc3f('0x65')],_0x17e21e[_0xcc3f('0x5a')][_0xcc3f('0x1e')]);break;}}else{var _0x17e21e=as[_0xcc3f('0x63')](_0x9dc6e5,_0x3c4fdf['type'],_0x4926e7);_0x58d7e4[_0x10e765](_0x17e21e['text'],_0x17e21e[_0xcc3f('0x5a')][_0xcc3f('0x65')],_0x17e21e['value'][_0xcc3f('0x1e')]);}}}else{var _0x5ca203=_(_0x5abdb8[_0xcc3f('0x3a')])['keys']()[_0xcc3f('0x2c')](function(_0x45fd65){return _[_0xcc3f('0x6d')](_0x4743d9,[_0xcc3f('0x2a'),_0x45fd65])?_0x45fd65:undefined;})[_0xcc3f('0x6e')]()[_0xcc3f('0x5a')]();if(!_['isEmpty'](_0x5ca203)){_0x5ca203[_0xcc3f('0x31')](function(_0x43973d){if(_0x43973d==='FaxAccountId'){_0x2e260d[_0xcc3f('0x43')](_0xcc3f('0x6f'),[][_0xcc3f('0x70')](_0x5abdb8[_0xcc3f('0x3a')][_0x43973d]));}else if(_0x43973d==='createdAt'){var _0x4da897=JSON[_0xcc3f('0x71')](_0x5abdb8['query'][_0x43973d])[_0xcc3f('0x72')];var _0x1f4844=JSON[_0xcc3f('0x71')](_0x5abdb8[_0xcc3f('0x3a')][_0x43973d])[_0xcc3f('0x73')];_0x2e260d['where']('i.createdAt\x20BETWEEN\x20?\x20AND\x20?',_0x4da897,_0x1f4844);}else{if(_0x5abdb8[_0xcc3f('0x3a')][_0x43973d]==='null'){_0x2e260d['where']('i.'+_0x43973d+'\x20IS\x20NULL');}else{_0x2e260d['where']('i.'+_0x43973d+_0xcc3f('0x74'),_0x5abdb8[_0xcc3f('0x3a')][_0x43973d]);}}});}if(_0x5abdb8[_0xcc3f('0x3a')][_0xcc3f('0x75')]){if(_0x5abdb8[_0xcc3f('0x3a')]['read']==0x1){_0x2e260d[_0xcc3f('0x5b')](_0xcc3f('0x76'));}else{_0x2e260d[_0xcc3f('0x5b')](_0xcc3f('0x77'));}}if(_0x5abdb8[_0xcc3f('0x3a')][_0xcc3f('0x78')]){_0x36b5f5=_[_0xcc3f('0x79')](_0x5abdb8[_0xcc3f('0x3a')][_0xcc3f('0x78')])?_0x5abdb8[_0xcc3f('0x3a')][_0xcc3f('0x78')]:new Array(_0x5abdb8['query']['tag']);_0x36b5f5[_0xcc3f('0x31')](function(_0x175b55){_0x29e772['or'](_0xcc3f('0x67'),'%,'+_0x175b55+',%');});}if(_0x5abdb8[_0xcc3f('0x3a')][_0xcc3f('0x7a')]){var _0x352a04=_0x5abdb8[_0xcc3f('0x3a')][_0xcc3f('0x7a')][_0xcc3f('0x7b')]('\x5c','\x5c\x5c')[_0xcc3f('0x7b')](/'/g,'\x27\x27');if(qs[_0xcc3f('0x7c')](_0x352a04)){_0x58d7e4['or'](_0xcc3f('0x7d'),_0x352a04+'%')['or'](_0xcc3f('0x7e'),_0x352a04+'%');}_0x58d7e4['or'](_0xcc3f('0x7f'),_0x352a04+'%');}}_0x2e260d[_0xcc3f('0x43')](_0x58d7e4);_0x2e260d[_0xcc3f('0x80')](_0xcc3f('0x81'));var _0x38560d={'type':db['Sequelize'][_0xcc3f('0x82')][_0xcc3f('0x83')],'raw':!![]};var _0x1d40ba=_0x2e260d[_0xcc3f('0x84')]();_0x1d40ba[_0xcc3f('0x45')](_0xcc3f('0x81'));_0x1d40ba[_0xcc3f('0x45')]('SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)',_0xcc3f('0x85'));if(_0x17e975[_0xcc3f('0x41')]){_0x17e975[_0xcc3f('0x41')][_0xcc3f('0x31')](function(_0x32acb3){var _0x238350=_0x32acb3[0x0]===_0xcc3f('0x86')?_0x32acb3[0x0]:'i.'+_0x32acb3[0x0];_0x2e260d[_0xcc3f('0x41')](_0x238350,_0x32acb3[0x1]===_0xcc3f('0x87')?![]:!![]);});}if(!_[_0xcc3f('0x88')](_0x36b5f5)){_0x2e260d[_0xcc3f('0x5b')](_0x29e772);_0x1d40ba[_0xcc3f('0x43')](_0xcc3f('0x89'),_0x36b5f5);}BPromise['resolve']()[_0xcc3f('0x28')](function(){if(!_0x29f9a7){if(_0x5abdb8[_0xcc3f('0x3a')][_0xcc3f('0x8a')])return;_0x1d40ba[_0xcc3f('0x43')]('i.FaxAccountId\x20IS\x20NOT\x20NULL');_0x2e260d[_0xcc3f('0x43')](_0xcc3f('0x8b'));return;}if(_0x5abdb8[_0xcc3f('0x8c')][_0xcc3f('0x8d')]!=='agent')return;return _0x5abdb8['user'][_0xcc3f('0x8e')]({'attributes':['id'],'raw':!![]})['then'](function(_0x5702af){if(_[_0xcc3f('0x88')](_0x5702af)){_0x1d40ba['where'](_0xcc3f('0x8f'));_0x2e260d['where']('i.FaxAccountId\x20IS\x20NULL');}else{_0x1d40ba[_0xcc3f('0x43')](_0xcc3f('0x6f'),_[_0xcc3f('0x2c')](_0x5702af,'id'));_0x2e260d[_0xcc3f('0x43')](_0xcc3f('0x6f'),_[_0xcc3f('0x2c')](_0x5702af,'id'));}});})[_0xcc3f('0x28')](function(){if(_0x5abdb8[_0xcc3f('0x8c')]['role']===_0xcc3f('0x90')&&!_0x29f9a7&&!_0x5abdb8[_0xcc3f('0x3a')][_0xcc3f('0x8a')])return[];return db[_0xcc3f('0x91')][_0xcc3f('0x3a')](_0x1d40ba['toString'](),_0x38560d);})[_0xcc3f('0x28')](function(_0x321f6c){_0xead1aa[_0xcc3f('0x20')]=_0x321f6c[_0xcc3f('0x3f')];if(_0xead1aa[_0xcc3f('0x20')]===0x0)return[];return db[_0xcc3f('0x91')][_0xcc3f('0x3a')](_0x30d2ae[_0xcc3f('0x92')](),_0x38560d)['then'](function(_0x3eff0e){_0x39be4c=_[_0xcc3f('0x93')](_0x3eff0e,'id');_0x38560d=_[_0xcc3f('0x94')](_0x38560d,{'model':db[_0xcc3f('0x35')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x5abdb8['query'][_0xcc3f('0x3e')]){_0x17e975[_0xcc3f('0x3d')][_0xcc3f('0x31')](function(_0x306d15){_0x2e260d[_0xcc3f('0x45')]('i.'+_0x306d15);});}else{_0x2e260d[_0xcc3f('0x45')](_0xcc3f('0x95'),'unreadMessages');_0x2e260d[_0xcc3f('0x45')](_0xcc3f('0x96'),_0xcc3f('0x97'));_0x2e260d[_0xcc3f('0x45')](_0xcc3f('0x98'),_0xcc3f('0x99'));_0x2e260d[_0xcc3f('0x45')](_0xcc3f('0x9a'),_0xcc3f('0x86'));_0x2e260d[_0xcc3f('0x45')](_0xcc3f('0x9b'));_0x2e260d[_0xcc3f('0x45')](_0xcc3f('0x9c'),_0xcc3f('0x9d'));_0x2e260d[_0xcc3f('0x45')](_0xcc3f('0x9e'),_0xcc3f('0x9f'));_0x2e260d[_0xcc3f('0x45')](_0xcc3f('0xa0'),_0xcc3f('0xa1'));_0x2e260d[_0xcc3f('0x45')](_0xcc3f('0xa2'),'Contact.phone');_0x2e260d[_0xcc3f('0x45')]('c.mobile','Contact.mobile');_0x2e260d['field']('c.fax',_0xcc3f('0xa3'));_0x2e260d['field'](_0xcc3f('0xa4'),'Owner.fullname');_0x2e260d[_0xcc3f('0x45')](_0xcc3f('0xa5'),_0xcc3f('0xa6'));_0x2e260d[_0xcc3f('0x45')](_0xcc3f('0xa7'),_0xcc3f('0x2e'));}if(_0x17e975['limit'])_0x2e260d['limit'](_0x17e975[_0xcc3f('0x22')]);if(_0x17e975[_0xcc3f('0x21')])_0x2e260d['offset'](_0x17e975[_0xcc3f('0x21')]);return db[_0xcc3f('0x91')][_0xcc3f('0x3a')](_0x2e260d['toString'](),_0x38560d);})['then'](function(_0x2ac7cf){if(_0x2ac7cf[_0xcc3f('0x3f')]>0x0)_0x3805bd[_0xcc3f('0x43')]('ui.FaxInteractionId\x20IN\x20?',_[_0xcc3f('0x2c')](_0x2ac7cf,'id'));return db[_0xcc3f('0x91')][_0xcc3f('0x3a')](_0x3805bd[_0xcc3f('0x92')](),_0x38560d)['then'](function(_0x1a8dc3){var _0x3183ef=_['groupBy'](_0x1a8dc3,'FaxInteractionId');var _0xbad142=[];_0x2ac7cf[_0xcc3f('0x31')](function(_0x34bedc){_0xbad142[_0xcc3f('0x32')](updateFaxInteraction(_0x34bedc,_0x39be4c,_0x3183ef));});return BPromise[_0xcc3f('0xa8')](_0xbad142);});});})[_0xcc3f('0x28')](function(_0x14cf54){_0xead1aa[_0xcc3f('0xa9')]=_0x14cf54;return _0xead1aa;})[_0xcc3f('0x28')](respondWithFilteredResult(_0xbb59cf,_0x17e975))[_0xcc3f('0x33')](handleError(_0xbb59cf,null));};exports[_0xcc3f('0xaa')]=function(_0x41ffd0,_0x1f368e){var _0x55f904={'raw':![],'where':{'id':_0x41ffd0[_0xcc3f('0xab')]['id']}},_0x2099fd={};_0x2099fd[_0xcc3f('0x39')]=_[_0xcc3f('0xac')](db[_0xcc3f('0x35')]['rawAttributes']);_0x2099fd[_0xcc3f('0x3a')]=_[_0xcc3f('0xac')](_0x41ffd0[_0xcc3f('0x3a')]);_0x2099fd['filters']=_[_0xcc3f('0x3c')](_0x2099fd[_0xcc3f('0x39')],_0x2099fd[_0xcc3f('0x3a')]);_0x55f904[_0xcc3f('0x3d')]=_[_0xcc3f('0x3c')](_0x2099fd['model'],qs['fields'](_0x41ffd0[_0xcc3f('0x3a')][_0xcc3f('0x3e')]));_0x55f904[_0xcc3f('0x3d')]=_0x55f904[_0xcc3f('0x3d')][_0xcc3f('0x3f')]?_0x55f904[_0xcc3f('0x3d')]:_0x2099fd['model'];if(_0x41ffd0[_0xcc3f('0x3a')][_0xcc3f('0xad')]){_0x55f904[_0xcc3f('0xae')]=[{'all':!![]}];}_0x55f904=_[_0xcc3f('0x94')]({},_0x55f904,_0x41ffd0['options']);return db[_0xcc3f('0x35')][_0xcc3f('0x59')](_0x55f904)[_0xcc3f('0x28')](handleEntityNotFound(_0x1f368e,null))[_0xcc3f('0x28')](respondWithResult(_0x1f368e,null))['catch'](handleError(_0x1f368e,null));};exports[_0xcc3f('0xaf')]=function(_0x17b96d,_0x469076){return db[_0xcc3f('0x35')]['create'](_0x17b96d['body'],{})[_0xcc3f('0x28')](respondWithResult(_0x469076,0xc9))['catch'](handleError(_0x469076,null));};exports[_0xcc3f('0xb0')]=function(_0x259532,_0x1152fc){if(_0x259532[_0xcc3f('0x6c')]['id']){delete _0x259532[_0xcc3f('0x6c')]['id'];}return db['FaxInteraction'][_0xcc3f('0x59')]({'where':{'id':_0x259532[_0xcc3f('0xab')]['id']}})['then'](handleEntityNotFound(_0x1152fc,null))[_0xcc3f('0x28')](saveUpdates(_0x259532[_0xcc3f('0x6c')],null))[_0xcc3f('0x28')](respondWithResult(_0x1152fc,null))[_0xcc3f('0x33')](handleError(_0x1152fc,null));};exports['destroy']=function(_0x4fe3fc,_0x4de7c0){return db[_0xcc3f('0x35')][_0xcc3f('0x59')]({'where':{'id':_0x4fe3fc[_0xcc3f('0xab')]['id']}})['then'](handleEntityNotFound(_0x4de7c0,null))[_0xcc3f('0x28')](removeEntity(_0x4de7c0,null))[_0xcc3f('0x33')](handleError(_0x4de7c0,null));};exports[_0xcc3f('0xb1')]=function(_0x150ede,_0x150726){return db[_0xcc3f('0x35')]['describe']()[_0xcc3f('0x28')](respondWithResult(_0x150726,null))['catch'](handleError(_0x150726,null));};exports[_0xcc3f('0xb2')]=function(_0x2a964c,_0xdbc0b7,_0x4d442a){return db['FaxMessage'][_0xcc3f('0x59')]({'where':{'id':_0x2a964c['params']['id']}})[_0xcc3f('0x28')](handleEntityNotFound(_0xdbc0b7,null))[_0xcc3f('0x28')](function(_0x5df910){if(_0x5df910){return _0x5df910[_0xcc3f('0xb2')](_0x2a964c[_0xcc3f('0x6c')][_0xcc3f('0xb3')],_[_0xcc3f('0xb4')](_0x2a964c['body'],[_0xcc3f('0xb3'),'id'])||{});}})[_0xcc3f('0x28')](respondWithResult(_0xdbc0b7,null))[_0xcc3f('0x33')](handleError(_0xdbc0b7,null));};exports[_0xcc3f('0xb5')]=function(_0x45694e,_0x3bad9e,_0x3d31d0){var _0xa5b95c={'raw':![],'where':{}};var _0x35e69b={};var _0x571b4d={'count':0x0,'rows':[]};return db[_0xcc3f('0x35')][_0xcc3f('0xb6')]({'where':{'id':_0x45694e[_0xcc3f('0xab')]['id']}})[_0xcc3f('0x28')](handleEntityNotFound(_0x3bad9e,null))[_0xcc3f('0x28')](function(_0xda0332){if(_0xda0332){_0x35e69b[_0xcc3f('0x39')]=_['keys'](db[_0xcc3f('0xb7')][_0xcc3f('0x36')]);_0x35e69b[_0xcc3f('0x3a')]=_['keys'](_0x45694e[_0xcc3f('0x3a')]);_0x35e69b[_0xcc3f('0x3b')]=_[_0xcc3f('0x3c')](_0x35e69b['model'],_0x35e69b[_0xcc3f('0x3a')]);_0xa5b95c['attributes']=_['intersection'](_0x35e69b['model'],qs['fields'](_0x45694e[_0xcc3f('0x3a')]['fields']));_0xa5b95c['attributes']=_0xa5b95c[_0xcc3f('0x3d')][_0xcc3f('0x3f')]?_0xa5b95c[_0xcc3f('0x3d')]:_0x35e69b[_0xcc3f('0x39')];if(!_0x45694e[_0xcc3f('0x3a')]['hasOwnProperty'](_0xcc3f('0x40'))){_0xa5b95c[_0xcc3f('0x22')]=qs[_0xcc3f('0x22')](_0x45694e[_0xcc3f('0x3a')][_0xcc3f('0x22')]);_0xa5b95c['offset']=qs[_0xcc3f('0x21')](_0x45694e[_0xcc3f('0x3a')]['offset']);}_0xa5b95c[_0xcc3f('0x41')]=qs[_0xcc3f('0x42')](_0x45694e['query'][_0xcc3f('0x42')]);_0xa5b95c['where']=qs[_0xcc3f('0x3b')](_[_0xcc3f('0xb8')](_0x45694e[_0xcc3f('0x3a')],_0x35e69b[_0xcc3f('0x3b')]));_0xa5b95c[_0xcc3f('0x43')][_0xcc3f('0xb9')]=_0xda0332['id'];if(_0x45694e[_0xcc3f('0x3a')][_0xcc3f('0x7a')]){_0xa5b95c[_0xcc3f('0x43')]=_[_0xcc3f('0x94')](_0xa5b95c['where'],{'$or':_[_0xcc3f('0x2c')](_0xa5b95c['attributes'],function(_0x177e63){var _0x56a567={};_0x56a567[_0x177e63]={'$like':'%'+_0x45694e['query'][_0xcc3f('0x7a')]+'%'};return _0x56a567;})});}if(_0x45694e[_0xcc3f('0x3a')]['$gte']){var _0x4429c3=_0x45694e['query'][_0xcc3f('0x72')][_0xcc3f('0x30')](',');var _0x3a1416={};_0x3a1416[_0x4429c3[0x0]]={'$gte':moment(_0x4429c3[0x1])['format'](_0xcc3f('0xba'))};_0xa5b95c['where']=_[_0xcc3f('0x94')](_0xa5b95c['where'],_0x3a1416);}_0xa5b95c=_[_0xcc3f('0x94')]({},_0xa5b95c,_0x45694e[_0xcc3f('0xbb')]);return db[_0xcc3f('0xb7')][_0xcc3f('0x20')]({'where':_0xa5b95c['where']})['then'](function(_0x182b06){_0x571b4d[_0xcc3f('0x20')]=_0x182b06;if(_0x45694e[_0xcc3f('0x3a')][_0xcc3f('0xad')]){_0xa5b95c[_0xcc3f('0xae')]=[{'all':!![]}];}return db[_0xcc3f('0xb7')][_0xcc3f('0xbc')](_0xa5b95c);})[_0xcc3f('0x28')](function(_0x2729c9){_0x571b4d['rows']=_0x2729c9;return _0x571b4d;});}})[_0xcc3f('0x28')](respondWithFilteredResult(_0x3bad9e,_0xa5b95c))[_0xcc3f('0x33')](handleError(_0x3bad9e,null));};exports[_0xcc3f('0xbd')]=function(_0x5926e2,_0x1dc8e0,_0x124e46){return db[_0xcc3f('0x35')]['find']({'where':{'id':_0x5926e2[_0xcc3f('0xab')]['id']}})['then'](handleEntityNotFound(_0x1dc8e0,null))[_0xcc3f('0x28')](function(_0x951e36){if(_0x951e36){return _0x951e36[_0xcc3f('0xbe')](_0x5926e2[_0xcc3f('0x6c')]['ids'],_[_0xcc3f('0xb4')](_0x5926e2['body'],[_0xcc3f('0xb3'),'id'])||{})[_0xcc3f('0xbf')](function(){return db[_0xcc3f('0x66')][_0xcc3f('0xbc')]({'attributes':['id','name',_0xcc3f('0xc0')],'where':{'id':_0x5926e2[_0xcc3f('0x6c')][_0xcc3f('0xb3')]}});})['then'](function(_0xfc7b53){socket[_0xcc3f('0xc1')](_0xcc3f('0xc2'),{'id':Number(_0x5926e2[_0xcc3f('0xab')]['id']),'tags':_0xfc7b53||[]});return{'id':Number(_0x5926e2[_0xcc3f('0xab')]['id']),'tags':_0xfc7b53||[]};});}})[_0xcc3f('0x28')](respondWithResult(_0x1dc8e0,null))[_0xcc3f('0x33')](handleError(_0x1dc8e0,null));};exports['removeTags']=function(_0x1bdf45,_0x43ba82,_0x15e518){return db[_0xcc3f('0x35')]['find']({'where':{'id':_0x1bdf45[_0xcc3f('0xab')]['id']}})['then'](handleEntityNotFound(_0x43ba82,null))['then'](function(_0xb16ab0){if(_0xb16ab0){return _0xb16ab0['removeTags'](_0x1bdf45[_0xcc3f('0x3a')][_0xcc3f('0xb3')]);}})['then'](respondWithStatusCode(_0x43ba82,null))[_0xcc3f('0x33')](handleError(_0x43ba82,null));};exports[_0xcc3f('0xc3')]=function(_0x17fb3b,_0x56d98d){var _0x39705a=moment()[_0xcc3f('0xc4')]()['toString']();var _0x4c2c9f=path[_0xcc3f('0xc5')](config[_0xcc3f('0xc6')],'server',_0xcc3f('0xc7'),_0xcc3f('0xc8'));var _0x1dc08c=path[_0xcc3f('0xc5')](config[_0xcc3f('0xc6')],_0xcc3f('0xc9'),_0xcc3f('0xc7'),_0xcc3f('0xca'));var _0x4cb81b=path[_0xcc3f('0xc5')](_0x4c2c9f,_0x39705a);var _0x5bac5a=util['format'](_0xcc3f('0xcb'),_0x17fb3b[_0xcc3f('0xab')]['id'],_0x39705a);var _0x4a684e=path['join'](_0x4c2c9f,_0x5bac5a);var _0x51a177=[];_0x51a177[_0xcc3f('0x32')]({'model':db[_0xcc3f('0xcc')],'as':_0xcc3f('0xcc'),'raw':!![]});var _0xb08d04=[{'model':db[_0xcc3f('0xb7')],'as':_0xcc3f('0xcd'),'attributes':['id','body','createdAt'],'include':_0x51a177}];return db[_0xcc3f('0x35')][_0xcc3f('0x59')]({'where':{'id':_0x17fb3b[_0xcc3f('0xab')]['id']},'include':_0xb08d04})[_0xcc3f('0x28')](handleEntityNotFound(_0x56d98d,null))[_0xcc3f('0x28')](function(_0x41f9ea){if(_0x41f9ea&&_0x41f9ea[_0xcc3f('0xcd')]){var _0x2b5450=_0x41f9ea[_0xcc3f('0xce')]({'plain':!![]});fs[_0xcc3f('0xcf')](_0x4cb81b);for(var _0x3e45e6=0x0;_0x3e45e6<_0x2b5450[_0xcc3f('0xcd')][_0xcc3f('0x3f')];_0x3e45e6++){var _0x46d613=_0x2b5450[_0xcc3f('0xcd')][_0x3e45e6][_0xcc3f('0xcc')];if(_0x46d613){var _0x4e13c0=path[_0xcc3f('0xc5')](_0x1dc08c,_0x46d613['basename']);if(fs[_0xcc3f('0xd0')](_0x4e13c0)){fs['createReadStream'](_0x4e13c0)[_0xcc3f('0xd1')](fs[_0xcc3f('0xd2')](path[_0xcc3f('0xc5')](_0x4cb81b,_0x46d613[_0xcc3f('0xd3')])));}}}return BPromise[_0xcc3f('0xd4')]()['then'](function(){return new BPromise(function(_0x418e63,_0x5afa9e){zipdir(_0x4cb81b,{'saveTo':_0x4a684e},function(_0x33861e,_0x5dee42){if(_0x33861e)return _0x5afa9e(_0x33861e);return _0x418e63(_0x5dee42);});})[_0xcc3f('0x28')](function(){return new BPromise(function(_0xfb339d,_0x599a4c){rimraf(_0x4cb81b,function(_0x3e9943){if(_0x3e9943)_0x599a4c(_0x3e9943);return _0xfb339d();});});})['then'](function(){return _0x56d98d[_0xcc3f('0xc3')](_0x4a684e,_0x5bac5a,function(_0x39239a){if(_0x39239a){console['log'](_0xcc3f('0xd5'),_0x39239a);}else{fs[_0xcc3f('0xd6')](_0x4a684e);}});});});}else{return _0x56d98d[_0xcc3f('0x1c')](0xc8);}})[_0xcc3f('0x33')](handleError(_0x56d98d,null));};
\ No newline at end of file
+var _0x858f=['start','body','some','compact','isEmpty','FaxAccountId','where','i.FaxAccountId\x20IN\x20?','concat','createdAt','parse','$gte','$lte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','read','`unreadMessages`\x20=\x200','`unreadMessages`\x20>\x200','tag','isArray','filter','replace','isNumeric','i.id\x20LIKE\x20?','i.fax\x20LIKE\x20?','group','QueryTypes','clone','i.id','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','contactName','DESC','t.id\x20IN\x20?','i.FaxAccountId\x20IS\x20NOT\x20NULL','agent','user','getFaxAccounts','i.FaxAccountId\x20IS\x20NULL','role','sequelize','toString','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','Contact.firstName','c.lastName','Contact.lastName','c.email','Contact.email','c.phone','c.mobile','Contact.mobile','Contact.fax','Owner.fullname','o.internal','ui.FaxInteractionId\x20IN\x20?','groupBy','FaxInteractionId','all','rows','show','params','rawAttributes','includeAll','include','create','describe','addMessage','ids','omit','getMessages','FaxMessage','format','options','findAll','addTags','setTags','spread','color','emit','removeTags','unix','join','root','server','files','tmp','transcript-%d-%s.zip','Attachment','Messages','mkdirSync','basename','existsSync','createReadStream','pipe','createWriteStream','resolve','download','log','err','unlinkSync','eml-format','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','ejs','lodash','crypto','jsforce','desk.js','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./faxInteraction.socket','register','sendStatus','status','end','json','offset','undefined','limit','count','apply','update','then','destroy','error','stack','name','Users','map','fullname','TagIds','forEach','Tags','push','catch','index','FaxInteraction','fieldName','type','key','query','keys','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','filters','pick','select','field','u.id','u.fullname','from','left_join','users','cm_contacts','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','o.id\x20=\x20i.UserId','fax_accounts','a.id\x20=\x20i.FaxAccountId','fax_messages','me.FaxInteractionId\x20=\x20i.id','fax_interaction_has_tags','it.FaxInteractionId\x20=\x20i.id','tools_tags','t.id\x20=\x20it.TagId','expr','search','parseSearch','find','unreadMessages','value','having','`\x20=\x200','`\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','c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?','ContactId','buildExpression','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'];(function(_0x2c1a5f,_0x49f5f1){var _0x23cf80=function(_0x42c999){while(--_0x42c999){_0x2c1a5f['push'](_0x2c1a5f['shift']());}};_0x23cf80(++_0x49f5f1);}(_0x858f,0x143));var _0xf858=function(_0x59b2a1,_0x1f631f){_0x59b2a1=_0x59b2a1-0x0;var _0x4908d1=_0x858f[_0x59b2a1];return _0x4908d1;};'use strict';var emlformat=require(_0xf858('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xf858('0x1'));var jsonpatch=require(_0xf858('0x2'));var rp=require(_0xf858('0x3'));var moment=require(_0xf858('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xf858('0x5'));var util=require(_0xf858('0x6'));var path=require(_0xf858('0x7'));var sox=require(_0xf858('0x8'));var csv=require(_0xf858('0x9'));var ejs=require(_0xf858('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xf858('0xb'));var squel=require('squel');var crypto=require(_0xf858('0xc'));var jsforce=require(_0xf858('0xd'));var deskjs=require(_0xf858('0xe'));var toCsv=require(_0xf858('0x9'));var querystring=require('querystring');var Papa=require(_0xf858('0xf'));var Redis=require('ioredis');var authService=require(_0xf858('0x10'));var qs=require(_0xf858('0x11'));var as=require(_0xf858('0x12'));var hardwareService=require(_0xf858('0x13'));var logger=require(_0xf858('0x14'))(_0xf858('0x15'));var utils=require('../../config/utils');var config=require(_0xf858('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0xf858('0x17'))['db'];config[_0xf858('0x18')]=_[_0xf858('0x19')](config[_0xf858('0x18')],{'host':_0xf858('0x1a'),'port':0x18eb});var socket=require(_0xf858('0x1b'))(new Redis(config[_0xf858('0x18')]));require(_0xf858('0x1c'))[_0xf858('0x1d')](socket);function respondWithStatusCode(_0x3ee858,_0x513a36){_0x513a36=_0x513a36||0xcc;return function(_0xfdab8c){if(_0xfdab8c){return _0x3ee858[_0xf858('0x1e')](_0x513a36);}return _0x3ee858[_0xf858('0x1f')](_0x513a36)[_0xf858('0x20')]();};}function respondWithResult(_0x274b06,_0x26d3a2){_0x26d3a2=_0x26d3a2||0xc8;return function(_0x54e8b4){if(_0x54e8b4){return _0x274b06[_0xf858('0x1f')](_0x26d3a2)[_0xf858('0x21')](_0x54e8b4);}};}function respondWithFilteredResult(_0x19949d,_0x501c83){return function(_0x30235c){if(_0x30235c){var _0x5af1ed=typeof _0x501c83[_0xf858('0x22')]===_0xf858('0x23')&&typeof _0x501c83[_0xf858('0x24')]===_0xf858('0x23');var _0x4a7b5e=_0x30235c[_0xf858('0x25')];var _0x2d5392=_0x5af1ed?0x0:_0x501c83['offset'];var _0x2ef566=_0x5af1ed?_0x30235c[_0xf858('0x25')]:_0x501c83['offset']+_0x501c83[_0xf858('0x24')];var _0x5efd16;if(_0x2ef566>=_0x4a7b5e){_0x2ef566=_0x4a7b5e;_0x5efd16=0xc8;}else{_0x5efd16=0xce;}_0x19949d[_0xf858('0x1f')](_0x5efd16);return _0x19949d['set']('Content-Range',_0x2d5392+'-'+_0x2ef566+'/'+_0x4a7b5e)[_0xf858('0x21')](_0x30235c);}return null;};}function patchUpdates(_0x41eaef){return function(_0x33adff){try{jsonpatch[_0xf858('0x26')](_0x33adff,_0x41eaef,!![]);}catch(_0x351200){return BPromise['reject'](_0x351200);}return _0x33adff['save']();};}function saveUpdates(_0x22688e,_0x3bb0c0){return function(_0x5a53d2){if(_0x5a53d2){return _0x5a53d2[_0xf858('0x27')](_0x22688e)[_0xf858('0x28')](function(_0x4b18ce){return _0x4b18ce;});}return null;};}function removeEntity(_0x51fa80,_0x1857d7){return function(_0x2afcd0){if(_0x2afcd0){return _0x2afcd0[_0xf858('0x29')]()[_0xf858('0x28')](function(){_0x51fa80[_0xf858('0x1f')](0xcc)['end']();});}};}function handleEntityNotFound(_0xe0aacd,_0x5bc60f){return function(_0xd96e9d){if(!_0xd96e9d){_0xe0aacd['sendStatus'](0x194);}return _0xd96e9d;};}function handleError(_0x1d410e,_0x464800){_0x464800=_0x464800||0x1f4;return function(_0x1131f0){logger[_0xf858('0x2a')](_0x1131f0[_0xf858('0x2b')]);if(_0x1131f0[_0xf858('0x2c')]){delete _0x1131f0[_0xf858('0x2c')];}_0x1d410e[_0xf858('0x1f')](_0x464800)['send'](_0x1131f0);};}function getInteractionUsers(_0x3f0b7f,_0x126518){return new BPromise(function(_0x26359d,_0x13cc01){try{if(_0x126518[_0x3f0b7f['id']]){_0x3f0b7f[_0xf858('0x2d')]=_[_0xf858('0x2e')](_0x126518[_0x3f0b7f['id']],function(_0x3cb7c6){return{'id':_0x3cb7c6['id'],'fullname':_0x3cb7c6[_0xf858('0x2f')]};});}}catch(_0x2c9db8){_0x13cc01(_0x2c9db8);}_0x26359d(_0x3f0b7f);});}function getInteractionTags(_0x81fda5,_0xd541c9){return new BPromise(function(_0x56be17,_0x4928f9){try{if(_0x81fda5[_0xf858('0x30')]){_0x81fda5['Tags']=[];_0x81fda5['TagIds']['split'](',')[_0xf858('0x31')](function(_0x1df9a1){_0x81fda5[_0xf858('0x32')][_0xf858('0x33')](_0xd541c9[_0x1df9a1]);});}delete _0x81fda5[_0xf858('0x30')];}catch(_0x3ccdeb){_0x4928f9(_0x3ccdeb);}_0x56be17(_0x81fda5);});}function updateFaxInteraction(_0x559764,_0x30c603,_0xdd6559){return new BPromise(function(_0x16cd7c,_0x10ad28){return getInteractionUsers(_0x559764,_0xdd6559)[_0xf858('0x28')](function(_0x5222ab){return getInteractionTags(_0x5222ab,_0x30c603);})[_0xf858('0x28')](function(_0x14edf3){_0x16cd7c(_0x14edf3);})[_0xf858('0x34')](function(_0x5475e6){_0x10ad28(_0x5475e6);});});}exports[_0xf858('0x35')]=function(_0xd05b71,_0x4f05f6){var _0x1462e0={},_0x2e56a2={},_0xc60a88={'count':0x0,'rows':[]};var _0x2ca36c=_[_0xf858('0x2e')](db[_0xf858('0x36')]['rawAttributes'],function(_0x4b5b9f){return{'name':_0x4b5b9f[_0xf858('0x37')],'type':_0x4b5b9f[_0xf858('0x38')][_0xf858('0x39')]};});_0x2e56a2['model']=_[_0xf858('0x2e')](_0x2ca36c,_0xf858('0x2c'));_0x2e56a2[_0xf858('0x3a')]=_[_0xf858('0x3b')](_0xd05b71[_0xf858('0x3a')]);_0x2e56a2['filters']=_[_0xf858('0x3c')](_0x2e56a2[_0xf858('0x3d')],_0x2e56a2['query']);_0x1462e0[_0xf858('0x3e')]=_['intersection'](_0x2e56a2[_0xf858('0x3d')],qs[_0xf858('0x3f')](_0xd05b71[_0xf858('0x3a')][_0xf858('0x3f')]));_0x1462e0['attributes']=_0x1462e0[_0xf858('0x3e')][_0xf858('0x40')]?_0x1462e0['attributes']:_0x2e56a2[_0xf858('0x3d')];if(!_0xd05b71[_0xf858('0x3a')][_0xf858('0x41')](_0xf858('0x42'))){_0x1462e0['limit']=qs[_0xf858('0x24')](_0xd05b71[_0xf858('0x3a')][_0xf858('0x24')]);_0x1462e0[_0xf858('0x22')]=qs[_0xf858('0x22')](_0xd05b71[_0xf858('0x3a')]['offset']);}_0x1462e0[_0xf858('0x43')]=qs[_0xf858('0x44')](_0xd05b71[_0xf858('0x3a')][_0xf858('0x44')]);_0x1462e0['where']=qs[_0xf858('0x45')](_[_0xf858('0x46')](_0xd05b71[_0xf858('0x3a')],_0x2e56a2[_0xf858('0x45')]),_0x2ca36c);var _0x4d43f9=[];var _0x3000a1=squel[_0xf858('0x47')]()[_0xf858('0x48')]('id')[_0xf858('0x48')](_0xf858('0x2c'))[_0xf858('0x48')]('color')['from']('tools_tags');var _0x590258=squel[_0xf858('0x47')]()[_0xf858('0x48')](_0xf858('0x49'))[_0xf858('0x48')](_0xf858('0x4a'))[_0xf858('0x48')]('ui.FaxInteractionId')[_0xf858('0x4b')]('user_has_fax_interactions','ui')[_0xf858('0x4c')](_0xf858('0x4d'),'u','u.id\x20=\x20ui.UserId');var _0x20c1c2=squel[_0xf858('0x47')]()[_0xf858('0x4b')]('fax_interactions','i')[_0xf858('0x4c')](_0xf858('0x4e'),'c',_0xf858('0x4f'))[_0xf858('0x4c')](_0xf858('0x4d'),'o',_0xf858('0x50'))[_0xf858('0x4c')](_0xf858('0x51'),'a',_0xf858('0x52'))[_0xf858('0x4c')](_0xf858('0x53'),'me',_0xf858('0x54'))[_0xf858('0x4c')](_0xf858('0x55'),'it',_0xf858('0x56'))[_0xf858('0x4c')](_0xf858('0x57'),'t',_0xf858('0x58'));var _0x2ba553=squel['expr']();var _0x160e31=[];var _0x427611=squel[_0xf858('0x59')]();var _0x131cf8;if(_0xd05b71[_0xf858('0x3a')][_0xf858('0x5a')]){_0x131cf8=as[_0xf858('0x5b')](_0xd05b71[_0xf858('0x3a')][_0xf858('0x5a')]);var _0x3794aa=_0x131cf8['sqlOperator'];for(var _0x433fdc=0x0;_0x433fdc<_0x131cf8['conditions'][_0xf858('0x40')];_0x433fdc++){var _0x270063=_0x131cf8['conditions'][_0x433fdc];var _0x1d8a57='i';var _0x416b1c=_[_0xf858('0x5c')](_0x2ca36c,['name',_0x270063[_0xf858('0x48')]]);if(!_0x416b1c){switch(_0x270063['field']){case _0xf858('0x5d'):if(_0x270063[_0xf858('0x5e')]==0x1){_0x20c1c2[_0xf858('0x5f')]('`'+_0x270063[_0xf858('0x48')]+_0xf858('0x60'));}else{_0x20c1c2[_0xf858('0x5f')]('`'+_0x270063[_0xf858('0x48')]+_0xf858('0x61'));}break;case _0xf858('0x62'):if(_0x270063[_0xf858('0x63')]===_0xf858('0x64')){if(_0x270063[_0xf858('0x5e')][_0xf858('0x65')]('\x20')[_0xf858('0x40')]>0x1){_0x2ba553[_0x3794aa](_0xf858('0x66'),qs[_0xf858('0x67')](_0x270063['value']),null);}else{var _0x1ce11d='%'+_0x270063[_0xf858('0x5e')]+'%';_0x2ba553[_0x3794aa](_0xf858('0x68'),_0x1ce11d,_0x1ce11d,_0x1ce11d);}}else{_0x416b1c=_[_0xf858('0x5c')](_0x2ca36c,[_0xf858('0x2c'),_0xf858('0x69')]);_0x270063[_0xf858('0x48')]=_0xf858('0x69');_0x189807=as[_0xf858('0x6a')](_0x1d8a57,_0x416b1c[_0xf858('0x38')],_0x270063);_0x2ba553[_0x3794aa](_0x189807[_0xf858('0x6b')],_0x189807[_0xf858('0x5e')]['start'],_0x189807[_0xf858('0x5e')][_0xf858('0x20')]);}break;case _0xf858('0x6c'):var _0x2853d6=_0x270063[_0xf858('0x5e')]['split'](',')[_0xf858('0x2e')](function(_0xe14452){return Number(_0xe14452);});_0x2853d6[_0xf858('0x31')](function(_0x200b4f){_0x427611['or'](_0xf858('0x6d'),'%,'+_0x200b4f+',%');});_0x160e31=_[_0xf858('0x6e')](_0x160e31,_0x2853d6);break;case'User':if(_0x270063['operator']===_0xf858('0x64')){_0x2ba553[_0x3794aa](_0xf858('0x6f'),'%'+_0x270063[_0xf858('0x5e')]+'%',null);}else{_0x416b1c=_[_0xf858('0x5c')](_0x2ca36c,[_0xf858('0x2c'),'UserId']);_0x270063[_0xf858('0x48')]=_0xf858('0x70');_0x189807=as[_0xf858('0x6a')](_0x1d8a57,_0x416b1c[_0xf858('0x38')],_0x270063);_0x2ba553[_0x3794aa](_0x189807[_0xf858('0x6b')],_0x189807[_0xf858('0x5e')][_0xf858('0x71')],_0x189807[_0xf858('0x5e')][_0xf858('0x20')]);}break;case _0xf858('0x72'):_0x189807=as[_0xf858('0x6a')]('me',null,_0x270063);_0x2ba553[_0x3794aa](_0x189807[_0xf858('0x6b')],_0x189807['value'][_0xf858('0x71')],_0x189807[_0xf858('0x5e')]['end']);break;}}else{var _0x189807=as[_0xf858('0x6a')](_0x1d8a57,_0x416b1c[_0xf858('0x38')],_0x270063);_0x2ba553[_0x3794aa](_0x189807[_0xf858('0x6b')],_0x189807[_0xf858('0x5e')]['start'],_0x189807[_0xf858('0x5e')]['end']);}}}else{var _0x2dccfc=_(_0xd05b71[_0xf858('0x3a')])[_0xf858('0x3b')]()[_0xf858('0x2e')](function(_0x1478e2){return _[_0xf858('0x73')](_0x2ca36c,['name',_0x1478e2])?_0x1478e2:undefined;})[_0xf858('0x74')]()[_0xf858('0x5e')]();if(!_[_0xf858('0x75')](_0x2dccfc)){_0x2dccfc['forEach'](function(_0x55adb0){if(_0x55adb0===_0xf858('0x76')){_0x20c1c2[_0xf858('0x77')](_0xf858('0x78'),[][_0xf858('0x79')](_0xd05b71[_0xf858('0x3a')][_0x55adb0]));}else if(_0x55adb0===_0xf858('0x7a')){var _0x34267a=JSON[_0xf858('0x7b')](_0xd05b71['query'][_0x55adb0])[_0xf858('0x7c')];var _0x173f5a=JSON[_0xf858('0x7b')](_0xd05b71[_0xf858('0x3a')][_0x55adb0])[_0xf858('0x7d')];_0x20c1c2[_0xf858('0x77')](_0xf858('0x7e'),_0x34267a,_0x173f5a);}else{if(_0xd05b71[_0xf858('0x3a')][_0x55adb0]===_0xf858('0x7f')){_0x20c1c2[_0xf858('0x77')]('i.'+_0x55adb0+'\x20IS\x20NULL');}else{_0x20c1c2[_0xf858('0x77')]('i.'+_0x55adb0+'\x20=\x20?',_0xd05b71['query'][_0x55adb0]);}}});}if(_0xd05b71[_0xf858('0x3a')]['read']){if(_0xd05b71[_0xf858('0x3a')][_0xf858('0x80')]==0x1){_0x20c1c2[_0xf858('0x5f')](_0xf858('0x81'));}else{_0x20c1c2['having'](_0xf858('0x82'));}}if(_0xd05b71[_0xf858('0x3a')][_0xf858('0x83')]){_0x160e31=_[_0xf858('0x84')](_0xd05b71[_0xf858('0x3a')][_0xf858('0x83')])?_0xd05b71[_0xf858('0x3a')][_0xf858('0x83')]:new Array(_0xd05b71[_0xf858('0x3a')]['tag']);_0x160e31[_0xf858('0x31')](function(_0x9a4267){_0x427611['or'](_0xf858('0x6d'),'%,'+_0x9a4267+',%');});}if(_0xd05b71[_0xf858('0x3a')]['filter']){var _0x335a26=_0xd05b71[_0xf858('0x3a')][_0xf858('0x85')]['replace']('\x5c','\x5c\x5c')[_0xf858('0x86')](/'/g,'\x27\x27');if(qs[_0xf858('0x87')](_0x335a26)){_0x2ba553['or'](_0xf858('0x88'),_0x335a26+'%')['or'](_0xf858('0x89'),_0x335a26+'%');}_0x2ba553['or']('CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?',_0x335a26+'%');}}_0x20c1c2[_0xf858('0x77')](_0x2ba553);_0x20c1c2[_0xf858('0x8a')]('i.id');var _0x4deab9={'type':db['Sequelize'][_0xf858('0x8b')]['SELECT'],'raw':!![]};var _0x3b53a5=_0x20c1c2[_0xf858('0x8c')]();_0x3b53a5[_0xf858('0x48')](_0xf858('0x8d'));_0x3b53a5[_0xf858('0x48')](_0xf858('0x8e'),_0xf858('0x5d'));if(_0x1462e0[_0xf858('0x43')]){_0x1462e0['order'][_0xf858('0x31')](function(_0x11d1f4){var _0x357acb=_0x11d1f4[0x0]===_0xf858('0x8f')?_0x11d1f4[0x0]:'i.'+_0x11d1f4[0x0];_0x20c1c2[_0xf858('0x43')](_0x357acb,_0x11d1f4[0x1]===_0xf858('0x90')?![]:!![]);});}if(!_[_0xf858('0x75')](_0x160e31)){_0x20c1c2[_0xf858('0x5f')](_0x427611);_0x3b53a5['where'](_0xf858('0x91'),_0x160e31);}BPromise['resolve']()[_0xf858('0x28')](function(){if(!_0x131cf8){if(_0xd05b71[_0xf858('0x3a')][_0xf858('0x76')])return;_0x3b53a5[_0xf858('0x77')](_0xf858('0x92'));_0x20c1c2[_0xf858('0x77')](_0xf858('0x92'));return;}if(_0xd05b71['user']['role']!==_0xf858('0x93'))return;return _0xd05b71[_0xf858('0x94')][_0xf858('0x95')]({'attributes':['id'],'raw':!![]})[_0xf858('0x28')](function(_0x246d07){if(_[_0xf858('0x75')](_0x246d07)){_0x3b53a5[_0xf858('0x77')](_0xf858('0x96'));_0x20c1c2['where'](_0xf858('0x96'));}else{_0x3b53a5[_0xf858('0x77')](_0xf858('0x78'),_['map'](_0x246d07,'id'));_0x20c1c2[_0xf858('0x77')](_0xf858('0x78'),_[_0xf858('0x2e')](_0x246d07,'id'));}});})['then'](function(){if(_0xd05b71[_0xf858('0x94')][_0xf858('0x97')]===_0xf858('0x93')&&!_0x131cf8&&!_0xd05b71[_0xf858('0x3a')]['FaxAccountId'])return[];return db[_0xf858('0x98')][_0xf858('0x3a')](_0x3b53a5[_0xf858('0x99')](),_0x4deab9);})[_0xf858('0x28')](function(_0x58693f){_0xc60a88[_0xf858('0x25')]=_0x58693f[_0xf858('0x40')];if(_0xc60a88[_0xf858('0x25')]===0x0)return[];return db[_0xf858('0x98')][_0xf858('0x3a')](_0x3000a1[_0xf858('0x99')](),_0x4deab9)[_0xf858('0x28')](function(_0x4c27ed){_0x4d43f9=_['keyBy'](_0x4c27ed,'id');_0x4deab9=_[_0xf858('0x9a')](_0x4deab9,{'model':db[_0xf858('0x36')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0xd05b71[_0xf858('0x3a')][_0xf858('0x3f')]){_0x1462e0[_0xf858('0x3e')][_0xf858('0x31')](function(_0x569604){_0x20c1c2[_0xf858('0x48')]('i.'+_0x569604);});}else{_0x20c1c2[_0xf858('0x48')](_0xf858('0x8e'),_0xf858('0x5d'));_0x20c1c2['field'](_0xf858('0x9b'),_0xf858('0x9c'));_0x20c1c2[_0xf858('0x48')]('a.mandatoryDisposition',_0xf858('0x9d'));_0x20c1c2[_0xf858('0x48')](_0xf858('0x9e'),'contactName');_0x20c1c2[_0xf858('0x48')](_0xf858('0x9f'));_0x20c1c2[_0xf858('0x48')](_0xf858('0xa0'),_0xf858('0xa1'));_0x20c1c2['field'](_0xf858('0xa2'),_0xf858('0xa3'));_0x20c1c2[_0xf858('0x48')](_0xf858('0xa4'),_0xf858('0xa5'));_0x20c1c2[_0xf858('0x48')](_0xf858('0xa6'),'Contact.phone');_0x20c1c2[_0xf858('0x48')](_0xf858('0xa7'),_0xf858('0xa8'));_0x20c1c2[_0xf858('0x48')]('c.fax',_0xf858('0xa9'));_0x20c1c2[_0xf858('0x48')]('o.fullname',_0xf858('0xaa'));_0x20c1c2[_0xf858('0x48')](_0xf858('0xab'),'Owner.internal');_0x20c1c2[_0xf858('0x48')]('GROUP_CONCAT(DISTINCT\x20t.id)','TagIds');}if(_0x1462e0[_0xf858('0x24')])_0x20c1c2[_0xf858('0x24')](_0x1462e0['limit']);if(_0x1462e0[_0xf858('0x22')])_0x20c1c2[_0xf858('0x22')](_0x1462e0[_0xf858('0x22')]);return db[_0xf858('0x98')]['query'](_0x20c1c2[_0xf858('0x99')](),_0x4deab9);})[_0xf858('0x28')](function(_0x4cfb30){if(_0x4cfb30[_0xf858('0x40')]>0x0)_0x590258[_0xf858('0x77')](_0xf858('0xac'),_[_0xf858('0x2e')](_0x4cfb30,'id'));return db['sequelize'][_0xf858('0x3a')](_0x590258[_0xf858('0x99')](),_0x4deab9)[_0xf858('0x28')](function(_0x494085){var _0x1834b6=_[_0xf858('0xad')](_0x494085,_0xf858('0xae'));var _0xaf832a=[];_0x4cfb30[_0xf858('0x31')](function(_0x32a3f7){_0xaf832a[_0xf858('0x33')](updateFaxInteraction(_0x32a3f7,_0x4d43f9,_0x1834b6));});return BPromise[_0xf858('0xaf')](_0xaf832a);});});})[_0xf858('0x28')](function(_0x547b94){_0xc60a88[_0xf858('0xb0')]=_0x547b94;return _0xc60a88;})[_0xf858('0x28')](respondWithFilteredResult(_0x4f05f6,_0x1462e0))[_0xf858('0x34')](handleError(_0x4f05f6,null));};exports[_0xf858('0xb1')]=function(_0x214009,_0x57158e){var _0x4a935e={'raw':![],'where':{'id':_0x214009[_0xf858('0xb2')]['id']}},_0x57ee2a={};_0x57ee2a[_0xf858('0x3d')]=_[_0xf858('0x3b')](db['FaxInteraction'][_0xf858('0xb3')]);_0x57ee2a[_0xf858('0x3a')]=_['keys'](_0x214009[_0xf858('0x3a')]);_0x57ee2a[_0xf858('0x45')]=_[_0xf858('0x3c')](_0x57ee2a[_0xf858('0x3d')],_0x57ee2a[_0xf858('0x3a')]);_0x4a935e[_0xf858('0x3e')]=_[_0xf858('0x3c')](_0x57ee2a[_0xf858('0x3d')],qs[_0xf858('0x3f')](_0x214009[_0xf858('0x3a')][_0xf858('0x3f')]));_0x4a935e[_0xf858('0x3e')]=_0x4a935e[_0xf858('0x3e')][_0xf858('0x40')]?_0x4a935e[_0xf858('0x3e')]:_0x57ee2a[_0xf858('0x3d')];if(_0x214009[_0xf858('0x3a')][_0xf858('0xb4')]){_0x4a935e[_0xf858('0xb5')]=[{'all':!![]}];}_0x4a935e=_['merge']({},_0x4a935e,_0x214009['options']);return db[_0xf858('0x36')]['find'](_0x4a935e)[_0xf858('0x28')](handleEntityNotFound(_0x57158e,null))[_0xf858('0x28')](respondWithResult(_0x57158e,null))[_0xf858('0x34')](handleError(_0x57158e,null));};exports[_0xf858('0xb6')]=function(_0x44998c,_0x3f8cb1){return db[_0xf858('0x36')]['create'](_0x44998c[_0xf858('0x72')],{})[_0xf858('0x28')](respondWithResult(_0x3f8cb1,0xc9))['catch'](handleError(_0x3f8cb1,null));};exports[_0xf858('0x27')]=function(_0x30f5fc,_0x24d25d){if(_0x30f5fc['body']['id']){delete _0x30f5fc[_0xf858('0x72')]['id'];}return db[_0xf858('0x36')][_0xf858('0x5c')]({'where':{'id':_0x30f5fc[_0xf858('0xb2')]['id']}})['then'](handleEntityNotFound(_0x24d25d,null))['then'](saveUpdates(_0x30f5fc[_0xf858('0x72')],null))[_0xf858('0x28')](respondWithResult(_0x24d25d,null))[_0xf858('0x34')](handleError(_0x24d25d,null));};exports['destroy']=function(_0xe7574e,_0x5587b1){return db['FaxInteraction'][_0xf858('0x5c')]({'where':{'id':_0xe7574e[_0xf858('0xb2')]['id']}})[_0xf858('0x28')](handleEntityNotFound(_0x5587b1,null))[_0xf858('0x28')](removeEntity(_0x5587b1,null))[_0xf858('0x34')](handleError(_0x5587b1,null));};exports['describe']=function(_0x14eba5,_0x501a3a){return db[_0xf858('0x36')][_0xf858('0xb7')]()[_0xf858('0x28')](respondWithResult(_0x501a3a,null))[_0xf858('0x34')](handleError(_0x501a3a,null));};exports[_0xf858('0xb8')]=function(_0x4c215a,_0x5ef6c0,_0x3eb9b4){return db['FaxMessage'][_0xf858('0x5c')]({'where':{'id':_0x4c215a[_0xf858('0xb2')]['id']}})[_0xf858('0x28')](handleEntityNotFound(_0x5ef6c0,null))['then'](function(_0x5d4274){if(_0x5d4274){return _0x5d4274[_0xf858('0xb8')](_0x4c215a[_0xf858('0x72')][_0xf858('0xb9')],_[_0xf858('0xba')](_0x4c215a['body'],[_0xf858('0xb9'),'id'])||{});}})['then'](respondWithResult(_0x5ef6c0,null))['catch'](handleError(_0x5ef6c0,null));};exports[_0xf858('0xbb')]=function(_0x1190b5,_0x3ee527,_0x3a8bbf){var _0x2eb0a9={'raw':![],'where':{}};var _0x8ae484={};var _0x252561={'count':0x0,'rows':[]};return db['FaxInteraction']['findOne']({'where':{'id':_0x1190b5['params']['id']}})[_0xf858('0x28')](handleEntityNotFound(_0x3ee527,null))[_0xf858('0x28')](function(_0x24903e){if(_0x24903e){_0x8ae484[_0xf858('0x3d')]=_[_0xf858('0x3b')](db[_0xf858('0xbc')]['rawAttributes']);_0x8ae484[_0xf858('0x3a')]=_[_0xf858('0x3b')](_0x1190b5[_0xf858('0x3a')]);_0x8ae484[_0xf858('0x45')]=_[_0xf858('0x3c')](_0x8ae484[_0xf858('0x3d')],_0x8ae484[_0xf858('0x3a')]);_0x2eb0a9[_0xf858('0x3e')]=_[_0xf858('0x3c')](_0x8ae484['model'],qs[_0xf858('0x3f')](_0x1190b5[_0xf858('0x3a')][_0xf858('0x3f')]));_0x2eb0a9[_0xf858('0x3e')]=_0x2eb0a9[_0xf858('0x3e')]['length']?_0x2eb0a9[_0xf858('0x3e')]:_0x8ae484[_0xf858('0x3d')];if(!_0x1190b5[_0xf858('0x3a')][_0xf858('0x41')](_0xf858('0x42'))){_0x2eb0a9[_0xf858('0x24')]=qs[_0xf858('0x24')](_0x1190b5[_0xf858('0x3a')][_0xf858('0x24')]);_0x2eb0a9[_0xf858('0x22')]=qs[_0xf858('0x22')](_0x1190b5[_0xf858('0x3a')][_0xf858('0x22')]);}_0x2eb0a9['order']=qs['sort'](_0x1190b5[_0xf858('0x3a')][_0xf858('0x44')]);_0x2eb0a9[_0xf858('0x77')]=qs[_0xf858('0x45')](_[_0xf858('0x46')](_0x1190b5[_0xf858('0x3a')],_0x8ae484[_0xf858('0x45')]));_0x2eb0a9[_0xf858('0x77')]['FaxInteractionId']=_0x24903e['id'];if(_0x1190b5[_0xf858('0x3a')]['filter']){_0x2eb0a9[_0xf858('0x77')]=_['merge'](_0x2eb0a9['where'],{'$or':_[_0xf858('0x2e')](_0x2eb0a9[_0xf858('0x3e')],function(_0x284ed9){var _0xae747c={};_0xae747c[_0x284ed9]={'$like':'%'+_0x1190b5['query'][_0xf858('0x85')]+'%'};return _0xae747c;})});}if(_0x1190b5[_0xf858('0x3a')][_0xf858('0x7c')]){var _0x3e6287=_0x1190b5[_0xf858('0x3a')][_0xf858('0x7c')][_0xf858('0x65')](',');var _0x42adc0={};_0x42adc0[_0x3e6287[0x0]]={'$gte':moment(_0x3e6287[0x1])[_0xf858('0xbd')]('YYYY-MM-DD\x20HH:mm:ss')};_0x2eb0a9[_0xf858('0x77')]=_[_0xf858('0x9a')](_0x2eb0a9[_0xf858('0x77')],_0x42adc0);}_0x2eb0a9=_[_0xf858('0x9a')]({},_0x2eb0a9,_0x1190b5[_0xf858('0xbe')]);return db[_0xf858('0xbc')][_0xf858('0x25')]({'where':_0x2eb0a9[_0xf858('0x77')]})[_0xf858('0x28')](function(_0x4bd10c){_0x252561[_0xf858('0x25')]=_0x4bd10c;if(_0x1190b5['query'][_0xf858('0xb4')]){_0x2eb0a9[_0xf858('0xb5')]=[{'all':!![]}];}return db[_0xf858('0xbc')][_0xf858('0xbf')](_0x2eb0a9);})[_0xf858('0x28')](function(_0x1aa3a9){_0x252561[_0xf858('0xb0')]=_0x1aa3a9;return _0x252561;});}})[_0xf858('0x28')](respondWithFilteredResult(_0x3ee527,_0x2eb0a9))[_0xf858('0x34')](handleError(_0x3ee527,null));};exports[_0xf858('0xc0')]=function(_0x5896f1,_0x31a9d0,_0x330fed){return db[_0xf858('0x36')][_0xf858('0x5c')]({'where':{'id':_0x5896f1[_0xf858('0xb2')]['id']}})['then'](handleEntityNotFound(_0x31a9d0,null))['then'](function(_0x4321df){if(_0x4321df){return _0x4321df[_0xf858('0xc1')](_0x5896f1[_0xf858('0x72')][_0xf858('0xb9')],_[_0xf858('0xba')](_0x5896f1[_0xf858('0x72')],['ids','id'])||{})[_0xf858('0xc2')](function(){return db[_0xf858('0x6c')][_0xf858('0xbf')]({'attributes':['id',_0xf858('0x2c'),_0xf858('0xc3')],'where':{'id':_0x5896f1[_0xf858('0x72')][_0xf858('0xb9')]}});})['then'](function(_0x398ed1){socket[_0xf858('0xc4')]('faxInteractionTags:save',{'id':Number(_0x5896f1[_0xf858('0xb2')]['id']),'tags':_0x398ed1||[]});return{'id':Number(_0x5896f1['params']['id']),'tags':_0x398ed1||[]};});}})['then'](respondWithResult(_0x31a9d0,null))[_0xf858('0x34')](handleError(_0x31a9d0,null));};exports[_0xf858('0xc5')]=function(_0x3e84e5,_0x5d8f94,_0x51ca97){return db[_0xf858('0x36')][_0xf858('0x5c')]({'where':{'id':_0x3e84e5[_0xf858('0xb2')]['id']}})[_0xf858('0x28')](handleEntityNotFound(_0x5d8f94,null))[_0xf858('0x28')](function(_0x48c8f8){if(_0x48c8f8){return _0x48c8f8[_0xf858('0xc5')](_0x3e84e5[_0xf858('0x3a')][_0xf858('0xb9')]);}})[_0xf858('0x28')](respondWithStatusCode(_0x5d8f94,null))[_0xf858('0x34')](handleError(_0x5d8f94,null));};exports['download']=function(_0xe2dd8e,_0x382bd7){var _0xf6475c=moment()[_0xf858('0xc6')]()['toString']();var _0x3b0ece=path[_0xf858('0xc7')](config[_0xf858('0xc8')],_0xf858('0xc9'),_0xf858('0xca'),_0xf858('0xcb'));var _0x10b418=path[_0xf858('0xc7')](config[_0xf858('0xc8')],_0xf858('0xc9'),_0xf858('0xca'),'attachments');var _0xc35358=path['join'](_0x3b0ece,_0xf6475c);var _0x1c67d0=util[_0xf858('0xbd')](_0xf858('0xcc'),_0xe2dd8e[_0xf858('0xb2')]['id'],_0xf6475c);var _0x56e51b=path[_0xf858('0xc7')](_0x3b0ece,_0x1c67d0);var _0x33bd6d=[];_0x33bd6d['push']({'model':db[_0xf858('0xcd')],'as':_0xf858('0xcd'),'raw':!![]});var _0x1c1082=[{'model':db['FaxMessage'],'as':_0xf858('0xce'),'attributes':['id','body',_0xf858('0x7a')],'include':_0x33bd6d}];return db['FaxInteraction'][_0xf858('0x5c')]({'where':{'id':_0xe2dd8e[_0xf858('0xb2')]['id']},'include':_0x1c1082})[_0xf858('0x28')](handleEntityNotFound(_0x382bd7,null))['then'](function(_0x1d0473){if(_0x1d0473&&_0x1d0473['Messages']){var _0x37963e=_0x1d0473['get']({'plain':!![]});fs[_0xf858('0xcf')](_0xc35358);for(var _0x514978=0x0;_0x514978<_0x37963e[_0xf858('0xce')][_0xf858('0x40')];_0x514978++){var _0x44f58c=_0x37963e[_0xf858('0xce')][_0x514978][_0xf858('0xcd')];if(_0x44f58c){var _0x1c4827=path[_0xf858('0xc7')](_0x10b418,_0x44f58c[_0xf858('0xd0')]);if(fs[_0xf858('0xd1')](_0x1c4827)){fs[_0xf858('0xd2')](_0x1c4827)[_0xf858('0xd3')](fs[_0xf858('0xd4')](path['join'](_0xc35358,_0x44f58c[_0xf858('0xd0')])));}}}return BPromise[_0xf858('0xd5')]()[_0xf858('0x28')](function(){return new BPromise(function(_0x2da672,_0x1515f5){zipdir(_0xc35358,{'saveTo':_0x56e51b},function(_0x5e77ae,_0x5e1316){if(_0x5e77ae)return _0x1515f5(_0x5e77ae);return _0x2da672(_0x5e1316);});})[_0xf858('0x28')](function(){return new BPromise(function(_0x19650c,_0x280e26){rimraf(_0xc35358,function(_0x4e8270){if(_0x4e8270)_0x280e26(_0x4e8270);return _0x19650c();});});})[_0xf858('0x28')](function(){return _0x382bd7[_0xf858('0xd6')](_0x56e51b,_0x1c67d0,function(_0x286139){if(_0x286139){console[_0xf858('0xd7')](_0xf858('0xd8'),_0x286139);}else{fs[_0xf858('0xd9')](_0x56e51b);}});});});}else{return _0x382bd7[_0xf858('0x1e')](0xc8);}})[_0xf858('0x34')](handleError(_0x382bd7,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5d45=['emit','catch','hasOwnProperty','hook','exports','events','../../mysqldb','FaxMessage','setMaxListeners','save','remove','setDataValue','Users','map','findAll','length'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x5d45,0x1e5));var _0x55d4=function(_0x1c9539,_0x2698a7){_0x1c9539=_0x1c9539-0x0;var _0x5889ce=_0x5d45[_0x1c9539];return _0x5889ce;};'use strict';var EventEmitter=require(_0x55d4('0x0'));var FaxInteraction=require(_0x55d4('0x1'))['db']['FaxInteraction'];var FaxMessage=require(_0x55d4('0x1'))['db'][_0x55d4('0x2')];var FaxInteractionEvents=new EventEmitter();FaxInteractionEvents[_0x55d4('0x3')](0x0);var events={'afterCreate':_0x55d4('0x4'),'afterUpdate':'update','afterDestroy':_0x55d4('0x5')};function emitEvent(_0x46a114){return function(_0x57642a,_0x323a03,_0x5e9e83){_0x57642a['getUsers']({'attributes':['id'],'raw':!![]})['then'](function(_0x22d07c){_0x57642a[_0x55d4('0x6')](_0x55d4('0x7'),_0x22d07c[_0x55d4('0x8')](function(_0x47c912){return{'id':_0x47c912['id']};}));return FaxMessage[_0x55d4('0x9')]({'where':{'FaxInteractionId':_0x57642a['id'],'direction':'in','read':![]},'raw':!![]});})['then'](function(_0x36a0c8){_0x57642a['setDataValue']('unreadMessages',_0x36a0c8[_0x55d4('0xa')]);FaxInteractionEvents[_0x55d4('0xb')](_0x46a114+':'+_0x57642a['id'],_0x57642a);FaxInteractionEvents['emit'](_0x46a114,_0x57642a);_0x5e9e83(null);})[_0x55d4('0xc')](_0x5e9e83(null));};}for(var e in events){if(events[_0x55d4('0xd')](e)){var event=events[e];FaxInteraction[_0x55d4('0xe')](e,emitEvent(event));}}module[_0x55d4('0xf')]=FaxInteractionEvents;
\ No newline at end of file
+var _0x4472=['../../mysqldb','FaxInteraction','setMaxListeners','save','update','remove','then','setDataValue','map','findAll','length','emit','catch','hook','exports'];(function(_0x585273,_0x26d928){var _0x61a468=function(_0x226fbc){while(--_0x226fbc){_0x585273['push'](_0x585273['shift']());}};_0x61a468(++_0x26d928);}(_0x4472,0x168));var _0x2447=function(_0x49ff7d,_0x7acdb1){_0x49ff7d=_0x49ff7d-0x0;var _0x319496=_0x4472[_0x49ff7d];return _0x319496;};'use strict';var EventEmitter=require('events');var FaxInteraction=require(_0x2447('0x0'))['db'][_0x2447('0x1')];var FaxMessage=require(_0x2447('0x0'))['db']['FaxMessage'];var FaxInteractionEvents=new EventEmitter();FaxInteractionEvents[_0x2447('0x2')](0x0);var events={'afterCreate':_0x2447('0x3'),'afterUpdate':_0x2447('0x4'),'afterDestroy':_0x2447('0x5')};function emitEvent(_0x27c8ef){return function(_0x54a166,_0x578603,_0x1662e0){_0x54a166['getUsers']({'attributes':['id'],'raw':!![]})[_0x2447('0x6')](function(_0x191f66){_0x54a166[_0x2447('0x7')]('Users',_0x191f66[_0x2447('0x8')](function(_0x2ee6cb){return{'id':_0x2ee6cb['id']};}));return FaxMessage[_0x2447('0x9')]({'where':{'FaxInteractionId':_0x54a166['id'],'direction':'in','read':![]},'raw':!![]});})[_0x2447('0x6')](function(_0xf83e74){_0x54a166['setDataValue']('unreadMessages',_0xf83e74[_0x2447('0xa')]);FaxInteractionEvents['emit'](_0x27c8ef+':'+_0x54a166['id'],_0x54a166);FaxInteractionEvents[_0x2447('0xb')](_0x27c8ef,_0x54a166);_0x1662e0(null);})[_0x2447('0xc')](_0x1662e0(null));};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];FaxInteraction[_0x2447('0xd')](e,emitEvent(event));}}module[_0x2447('0xe')]=FaxInteractionEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x195f=['rimraf','../../config/environment','./faxInteraction.attributes','exports','define','changed','closed','closedAt','format','lodash','util','api','moment','request-promise'];(function(_0x14c4b4,_0x53eaa5){var _0x29287a=function(_0x3f0a57){while(--_0x3f0a57){_0x14c4b4['push'](_0x14c4b4['shift']());}};_0x29287a(++_0x53eaa5);}(_0x195f,0x113));var _0xf195=function(_0xb47dc0,_0x407032){_0xb47dc0=_0xb47dc0-0x0;var _0x57f0b0=_0x195f[_0xb47dc0];return _0x57f0b0;};'use strict';var _=require(_0xf195('0x0'));var util=require(_0xf195('0x1'));var logger=require('../../config/logger')(_0xf195('0x2'));var moment=require(_0xf195('0x3'));var BPromise=require('bluebird');var rp=require(_0xf195('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0xf195('0x5'));var config=require(_0xf195('0x6'));var attributes=require(_0xf195('0x7'));module[_0xf195('0x8')]=function(_0x2c45fd,_0x7aeadd){return _0x2c45fd[_0xf195('0x9')]('FaxInteraction',attributes,{'tableName':'fax_interactions','paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeUpdate':function(_0x327cc3,_0x15d465,_0xf9ea7){if(_0x327cc3[_0xf195('0xa')](_0xf195('0xb'))){_0x327cc3[_0xf195('0xc')]=moment()[_0xf195('0xd')]('YYYY-MM-DD\x20HH:mm:ss');}_0xf9ea7(null,_0x327cc3);}}});};
\ No newline at end of file
+var _0x8ec1=['closed','closedAt','format','YYYY-MM-DD\x20HH:mm:ss','lodash','../../config/logger','api','moment','request-promise','path','rimraf','exports','fax_interactions'];(function(_0x124668,_0x44d4ed){var _0x1ab72e=function(_0x57843c){while(--_0x57843c){_0x124668['push'](_0x124668['shift']());}};_0x1ab72e(++_0x44d4ed);}(_0x8ec1,0xad));var _0x18ec=function(_0x5db657,_0x2f40b3){_0x5db657=_0x5db657-0x0;var _0x2d6e70=_0x8ec1[_0x5db657];return _0x2d6e70;};'use strict';var _=require(_0x18ec('0x0'));var util=require('util');var logger=require(_0x18ec('0x1'))(_0x18ec('0x2'));var moment=require(_0x18ec('0x3'));var BPromise=require('bluebird');var rp=require(_0x18ec('0x4'));var fs=require('fs');var path=require(_0x18ec('0x5'));var rimraf=require(_0x18ec('0x6'));var config=require('../../config/environment');var attributes=require('./faxInteraction.attributes');module[_0x18ec('0x7')]=function(_0x9f0e6d,_0x1ff5c5){return _0x9f0e6d['define']('FaxInteraction',attributes,{'tableName':_0x18ec('0x8'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeUpdate':function(_0x4692bc,_0xa3e490,_0x4b3815){if(_0x4692bc['changed'](_0x18ec('0x9'))){_0x4692bc[_0x18ec('0xa')]=moment()[_0x18ec('0xb')](_0x18ec('0xc'));}_0x4b3815(null,_0x4692bc);}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x126c=['info','FaxInteraction,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','catch','UpdateFaxInteraction','FaxInteraction','update','options','raw','limit','debug','AddTagsToFaxInteraction','find','where','then','addTags','body','ids','omit','spread','AddTags','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','redis','defaults','localhost','socket.io-emitter','./faxInteraction.socket','register','request'];(function(_0x1576c4,_0x2c726b){var _0x53dc9e=function(_0xb293e7){while(--_0xb293e7){_0x1576c4['push'](_0x1576c4['shift']());}};_0x53dc9e(++_0x2c726b);}(_0x126c,0xf0));var _0xc126=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x126c[_0x3dd15e];return _0x231fd0;};'use strict';var _=require('lodash');var util=require(_0xc126('0x0'));var moment=require(_0xc126('0x1'));var BPromise=require(_0xc126('0x2'));var rs=require(_0xc126('0x3'));var fs=require('fs');var Redis=require(_0xc126('0x4'));var db=require(_0xc126('0x5'))['db'];var utils=require(_0xc126('0x6'));var logger=require(_0xc126('0x7'))(_0xc126('0x8'));var config=require(_0xc126('0x9'));var jayson=require(_0xc126('0xa'));var client=jayson['client']['http']({'port':0x232a});config[_0xc126('0xb')]=_[_0xc126('0xc')](config['redis'],{'host':_0xc126('0xd'),'port':0x18eb});var socket=require(_0xc126('0xe'))(new Redis(config['redis']));require(_0xc126('0xf'))[_0xc126('0x10')](socket);function respondWithRpcPromise(_0x47195a,_0x246fed,_0x4f8573){return new BPromise(function(_0x28f449,_0x200eda){return client[_0xc126('0x11')](_0x47195a,_0x4f8573)['then'](function(_0x268589){logger[_0xc126('0x12')](_0xc126('0x13'),_0x246fed,'request\x20sent');logger['debug']('FaxInteraction,\x20%s,\x20%s,\x20%s',_0x246fed,_0xc126('0x14'),JSON[_0xc126('0x15')](_0x268589));if(_0x268589[_0xc126('0x16')]){if(_0x268589[_0xc126('0x16')][_0xc126('0x17')]===0x1f4){logger[_0xc126('0x16')]('FaxInteraction,\x20%s,\x20%s',_0x246fed,_0x268589[_0xc126('0x16')][_0xc126('0x18')]);return _0x200eda(_0x268589[_0xc126('0x16')][_0xc126('0x18')]);}logger[_0xc126('0x16')](_0xc126('0x13'),_0x246fed,_0x268589[_0xc126('0x16')][_0xc126('0x18')]);return _0x28f449(_0x268589['error'][_0xc126('0x18')]);}else{logger[_0xc126('0x12')]('FaxInteraction,\x20%s,\x20%s',_0x246fed,'request\x20sent');_0x28f449(_0x268589['result'][_0xc126('0x18')]);}})[_0xc126('0x19')](function(_0x44c54c){logger[_0xc126('0x16')]('FaxInteraction,\x20%s,\x20%s',_0x246fed,_0x44c54c);_0x200eda(_0x44c54c);});});}exports[_0xc126('0x1a')]=function(_0x2b4594){var _0x39d53e=this;return new Promise(function(_0x3203d0,_0x159c91){return db[_0xc126('0x1b')][_0xc126('0x1c')](_0x2b4594['body'],{'raw':_0x2b4594[_0xc126('0x1d')]?_0x2b4594['options'][_0xc126('0x1e')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x2b4594[_0xc126('0x1d')]?_0x2b4594[_0xc126('0x1d')]['where']||null:null,'attributes':_0x2b4594[_0xc126('0x1d')]?_0x2b4594[_0xc126('0x1d')]['attributes']||null:null,'limit':_0x2b4594[_0xc126('0x1d')]?_0x2b4594[_0xc126('0x1d')][_0xc126('0x1f')]||null:null})['then'](function(_0x3c9d07){logger[_0xc126('0x12')](_0xc126('0x1a'),_0x2b4594);logger[_0xc126('0x20')]('UpdateFaxInteraction',_0x2b4594,JSON['stringify'](_0x3c9d07));_0x3203d0(_0x3c9d07);})[_0xc126('0x19')](function(_0x18d480){logger[_0xc126('0x16')](_0xc126('0x1a'),_0x18d480['message'],_0x2b4594);_0x159c91(_0x39d53e[_0xc126('0x16')](0x1f4,_0x18d480[_0xc126('0x18')]));});});};exports[_0xc126('0x21')]=function(_0x3a7071){return new Promise(function(_0x3cefe5,_0x404ab1){return db['FaxInteraction'][_0xc126('0x22')]({'where':_0x3a7071[_0xc126('0x1d')]?_0x3a7071['options'][_0xc126('0x23')]||null:null})[_0xc126('0x24')](function(_0x5cb98a){if(_0x5cb98a){return _0x5cb98a[_0xc126('0x25')](_0x3a7071[_0xc126('0x26')][_0xc126('0x27')],_[_0xc126('0x28')](_0x3a7071[_0xc126('0x26')],['ids','id'])||{});}})[_0xc126('0x29')](function(_0x11d702){logger[_0xc126('0x12')](_0xc126('0x2a'),_0x3a7071);logger[_0xc126('0x20')](_0xc126('0x2a'),_0x3a7071,JSON[_0xc126('0x15')](_0x11d702));_0x3cefe5(_0x11d702);})[_0xc126('0x19')](function(_0x328872){logger[_0xc126('0x16')](_0xc126('0x2a'),_0x328872[_0xc126('0x18')],_0x3a7071);_0x404ab1(_this[_0xc126('0x16')](0x1f4,_0x328872['message']));});});};
\ No newline at end of file
+var _0xc0db=['body','ids','omit','spread','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','request','then','info','request\x20sent','debug','error','code','FaxInteraction,\x20%s,\x20%s','message','result','catch','FaxInteraction','update','options','raw','where','attributes','limit','UpdateFaxInteraction','addTags'];(function(_0x2f888d,_0x597d3c){var _0x40f285=function(_0x225c27){while(--_0x225c27){_0x2f888d['push'](_0x2f888d['shift']());}};_0x40f285(++_0x597d3c);}(_0xc0db,0x194));var _0xbc0d=function(_0x18b3cd,_0x493b8a){_0x18b3cd=_0x18b3cd-0x0;var _0x390932=_0xc0db[_0x18b3cd];return _0x390932;};'use strict';var _=require(_0xbc0d('0x0'));var util=require(_0xbc0d('0x1'));var moment=require(_0xbc0d('0x2'));var BPromise=require(_0xbc0d('0x3'));var rs=require(_0xbc0d('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xbc0d('0x5'))['db'];var utils=require(_0xbc0d('0x6'));var logger=require(_0xbc0d('0x7'))(_0xbc0d('0x8'));var config=require(_0xbc0d('0x9'));var jayson=require(_0xbc0d('0xa'));var client=jayson[_0xbc0d('0xb')][_0xbc0d('0xc')]({'port':0x232a});config[_0xbc0d('0xd')]=_[_0xbc0d('0xe')](config[_0xbc0d('0xd')],{'host':_0xbc0d('0xf'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xbc0d('0xd')]));require('./faxInteraction.socket')['register'](socket);function respondWithRpcPromise(_0x5e33e5,_0x252599,_0x522352){return new BPromise(function(_0x514e61,_0x24561a){return client[_0xbc0d('0x10')](_0x5e33e5,_0x522352)[_0xbc0d('0x11')](function(_0xd24591){logger[_0xbc0d('0x12')]('FaxInteraction,\x20%s,\x20%s',_0x252599,_0xbc0d('0x13'));logger[_0xbc0d('0x14')]('FaxInteraction,\x20%s,\x20%s,\x20%s',_0x252599,_0xbc0d('0x13'),JSON['stringify'](_0xd24591));if(_0xd24591[_0xbc0d('0x15')]){if(_0xd24591[_0xbc0d('0x15')][_0xbc0d('0x16')]===0x1f4){logger[_0xbc0d('0x15')](_0xbc0d('0x17'),_0x252599,_0xd24591['error'][_0xbc0d('0x18')]);return _0x24561a(_0xd24591['error'][_0xbc0d('0x18')]);}logger[_0xbc0d('0x15')](_0xbc0d('0x17'),_0x252599,_0xd24591['error'][_0xbc0d('0x18')]);return _0x514e61(_0xd24591['error'][_0xbc0d('0x18')]);}else{logger['info']('FaxInteraction,\x20%s,\x20%s',_0x252599,_0xbc0d('0x13'));_0x514e61(_0xd24591[_0xbc0d('0x19')][_0xbc0d('0x18')]);}})[_0xbc0d('0x1a')](function(_0x128e0a){logger[_0xbc0d('0x15')](_0xbc0d('0x17'),_0x252599,_0x128e0a);_0x24561a(_0x128e0a);});});}exports['UpdateFaxInteraction']=function(_0x4b1714){var _0xce2d82=this;return new Promise(function(_0x1afb7f,_0x3a34a5){return db[_0xbc0d('0x1b')][_0xbc0d('0x1c')](_0x4b1714['body'],{'raw':_0x4b1714[_0xbc0d('0x1d')]?_0x4b1714[_0xbc0d('0x1d')][_0xbc0d('0x1e')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x4b1714[_0xbc0d('0x1d')]?_0x4b1714[_0xbc0d('0x1d')][_0xbc0d('0x1f')]||null:null,'attributes':_0x4b1714[_0xbc0d('0x1d')]?_0x4b1714['options'][_0xbc0d('0x20')]||null:null,'limit':_0x4b1714['options']?_0x4b1714[_0xbc0d('0x1d')][_0xbc0d('0x21')]||null:null})[_0xbc0d('0x11')](function(_0x142e64){logger['info'](_0xbc0d('0x22'),_0x4b1714);logger[_0xbc0d('0x14')](_0xbc0d('0x22'),_0x4b1714,JSON['stringify'](_0x142e64));_0x1afb7f(_0x142e64);})[_0xbc0d('0x1a')](function(_0x50cbe7){logger[_0xbc0d('0x15')](_0xbc0d('0x22'),_0x50cbe7[_0xbc0d('0x18')],_0x4b1714);_0x3a34a5(_0xce2d82[_0xbc0d('0x15')](0x1f4,_0x50cbe7[_0xbc0d('0x18')]));});});};exports['AddTagsToFaxInteraction']=function(_0x41bbb6){return new Promise(function(_0x1960a,_0xcd06a1){return db['FaxInteraction']['find']({'where':_0x41bbb6[_0xbc0d('0x1d')]?_0x41bbb6[_0xbc0d('0x1d')]['where']||null:null})[_0xbc0d('0x11')](function(_0x47d686){if(_0x47d686){return _0x47d686[_0xbc0d('0x23')](_0x41bbb6[_0xbc0d('0x24')][_0xbc0d('0x25')],_[_0xbc0d('0x26')](_0x41bbb6[_0xbc0d('0x24')],[_0xbc0d('0x25'),'id'])||{});}})[_0xbc0d('0x27')](function(_0x3a1d11){logger[_0xbc0d('0x12')]('AddTags',_0x41bbb6);logger[_0xbc0d('0x14')]('AddTags',_0x41bbb6,JSON['stringify'](_0x3a1d11));_0x1960a(_0x3a1d11);})[_0xbc0d('0x1a')](function(_0x58ca69){logger[_0xbc0d('0x15')]('AddTags',_0x58ca69[_0xbc0d('0x18')],_0x41bbb6);_0xcd06a1(_this[_0xbc0d('0x15')](0x1f4,_0x58ca69[_0xbc0d('0x18')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0682=['./faxInteraction.events','save','remove','update','register'];(function(_0x19dc0d,_0x23650a){var _0xed20a=function(_0x9feba9){while(--_0x9feba9){_0x19dc0d['push'](_0x19dc0d['shift']());}};_0xed20a(++_0x23650a);}(_0x0682,0x1c7));var _0x2068=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x0682[_0x321bb2];return _0x9c12ed;};'use strict';var FaxInteractionEvents=require(_0x2068('0x0'));var events=[_0x2068('0x1'),_0x2068('0x2'),_0x2068('0x3')];function createListener(_0x2c0e18,_0x491e3a){return function(_0x64513d){_0x491e3a['emit'](_0x2c0e18,_0x64513d);};}function removeListener(_0x18bc05,_0x4d954c){return function(){FaxInteractionEvents['removeListener'](_0x18bc05,_0x4d954c);};}exports[_0x2068('0x4')]=function(_0x4104f7){for(var _0x594cd7=0x0,_0x47d056=events['length'];_0x594cd7<_0x47d056;_0x594cd7++){var _0x4becf3=events[_0x594cd7];var _0x5d1f8a=createListener('faxInteraction:'+_0x4becf3,_0x4104f7);FaxInteractionEvents['on'](_0x4becf3,_0x5d1f8a);}};
\ No newline at end of file
+var _0x81cd=['removeListener','save','remove','emit'];(function(_0x1caf67,_0x55282c){var _0x50800b=function(_0x20d04d){while(--_0x20d04d){_0x1caf67['push'](_0x1caf67['shift']());}};_0x50800b(++_0x55282c);}(_0x81cd,0xe5));var _0xd81c=function(_0x2224c0,_0x312098){_0x2224c0=_0x2224c0-0x0;var _0x5d18f1=_0x81cd[_0x2224c0];return _0x5d18f1;};'use strict';var FaxInteractionEvents=require('./faxInteraction.events');var events=[_0xd81c('0x0'),_0xd81c('0x1'),'update'];function createListener(_0x2c4a7e,_0x3a8a1f){return function(_0x113631){_0x3a8a1f[_0xd81c('0x2')](_0x2c4a7e,_0x113631);};}function removeListener(_0x11b7a1,_0xed7a44){return function(){FaxInteractionEvents[_0xd81c('0x3')](_0x11b7a1,_0xed7a44);};}exports['register']=function(_0x8567cf){for(var _0x3ec63e=0x0,_0x4601c6=events['length'];_0x3ec63e<_0x4601c6;_0x3ec63e++){var _0x2c1dc2=events[_0x3ec63e];var _0x27b473=createListener('faxInteraction:'+_0x2c1dc2,_0x8567cf);FaxInteractionEvents['on'](_0x2c1dc2,_0x27b473);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x73a6=['exports','util','connect-timeout','express','Router','../../components/auth/service','./faxInteraction.controller','get','index','/describe','/:id','isAuthenticated','show','/:id/messages','/:id/download','download','post','create','tracked','faxinteraction:addtags','addTags','fax','faxinteraction:update','update','delete','faxinteraction:destroy','/:id/tags','removeTags'];(function(_0x381553,_0x267e8c){var _0x3fd83c=function(_0x5d86df){while(--_0x5d86df){_0x381553['push'](_0x381553['shift']());}};_0x3fd83c(++_0x267e8c);}(_0x73a6,0x1dd));var _0x673a=function(_0xffb590,_0x2bffa4){_0xffb590=_0xffb590-0x0;var _0x329bc4=_0x73a6[_0xffb590];return _0x329bc4;};'use strict';var multer=require('multer');var util=require(_0x673a('0x0'));var path=require('path');var timeout=require(_0x673a('0x1'));var express=require(_0x673a('0x2'));var router=express[_0x673a('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x673a('0x4'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0x673a('0x5'));router[_0x673a('0x6')]('/',auth['isAuthenticated'](),controller[_0x673a('0x7')]);router['get'](_0x673a('0x8'),auth['isAuthenticated'](),controller['describe']);router['get'](_0x673a('0x9'),auth[_0x673a('0xa')](),controller[_0x673a('0xb')]);router[_0x673a('0x6')](_0x673a('0xc'),auth[_0x673a('0xa')](),controller['getMessages']);router['get'](_0x673a('0xd'),auth['isAuthenticated'](),controller[_0x673a('0xe')]);router[_0x673a('0xf')]('/',auth[_0x673a('0xa')](),controller[_0x673a('0x10')]);router[_0x673a('0xf')](_0x673a('0xc'),auth[_0x673a('0xa')](),controller['addMessage']);router['post']('/:id/tags',auth[_0x673a('0xa')](),interaction[_0x673a('0x11')]('fax',_0x673a('0x12')),controller[_0x673a('0x13')]);router['put'](_0x673a('0x9'),auth[_0x673a('0xa')](),interaction[_0x673a('0x11')](_0x673a('0x14'),_0x673a('0x15')),controller[_0x673a('0x16')]);router[_0x673a('0x17')](_0x673a('0x9'),auth[_0x673a('0xa')](),interaction[_0x673a('0x11')](_0x673a('0x14'),_0x673a('0x18')),controller['destroy']);router[_0x673a('0x17')](_0x673a('0x19'),auth[_0x673a('0xa')](),controller[_0x673a('0x1a')]);module[_0x673a('0x1b')]=router;
\ No newline at end of file
+var _0x5643=['util','path','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./faxInteraction.controller','isAuthenticated','index','get','/describe','show','download','post','create','/:id/messages','addMessage','tracked','fax','faxinteraction:addtags','put','faxinteraction:update','update','/:id','/:id/tags','removeTags','exports','multer'];(function(_0x36b61e,_0x646316){var _0x540ab2=function(_0x5265ec){while(--_0x5265ec){_0x36b61e['push'](_0x36b61e['shift']());}};_0x540ab2(++_0x646316);}(_0x5643,0x1a3));var _0x3564=function(_0x1957ba,_0x5b1cef){_0x1957ba=_0x1957ba-0x0;var _0x2a66f0=_0x5643[_0x1957ba];return _0x2a66f0;};'use strict';var multer=require(_0x3564('0x0'));var util=require(_0x3564('0x1'));var path=require(_0x3564('0x2'));var timeout=require('connect-timeout');var express=require(_0x3564('0x3'));var router=express[_0x3564('0x4')]();var fs_extra=require(_0x3564('0x5'));var auth=require(_0x3564('0x6'));var interaction=require(_0x3564('0x7'));var config=require(_0x3564('0x8'));var controller=require(_0x3564('0x9'));router['get']('/',auth[_0x3564('0xa')](),controller[_0x3564('0xb')]);router[_0x3564('0xc')](_0x3564('0xd'),auth[_0x3564('0xa')](),controller['describe']);router[_0x3564('0xc')]('/:id',auth[_0x3564('0xa')](),controller[_0x3564('0xe')]);router[_0x3564('0xc')]('/:id/messages',auth[_0x3564('0xa')](),controller['getMessages']);router[_0x3564('0xc')]('/:id/download',auth[_0x3564('0xa')](),controller[_0x3564('0xf')]);router[_0x3564('0x10')]('/',auth['isAuthenticated'](),controller[_0x3564('0x11')]);router[_0x3564('0x10')](_0x3564('0x12'),auth[_0x3564('0xa')](),controller[_0x3564('0x13')]);router['post']('/:id/tags',auth[_0x3564('0xa')](),interaction[_0x3564('0x14')](_0x3564('0x15'),_0x3564('0x16')),controller['addTags']);router[_0x3564('0x17')]('/:id',auth['isAuthenticated'](),interaction[_0x3564('0x14')](_0x3564('0x15'),_0x3564('0x18')),controller[_0x3564('0x19')]);router['delete'](_0x3564('0x1a'),auth['isAuthenticated'](),interaction['tracked']('fax','faxinteraction:destroy'),controller['destroy']);router['delete'](_0x3564('0x1b'),auth['isAuthenticated'](),controller[_0x3564('0x1c')]);module[_0x3564('0x1d')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xca8d=['out','DATE','sequelize','exports','TEXT','medium','BOOLEAN','ENUM'];(function(_0x53ed59,_0x4beb34){var _0x5834ca=function(_0x5f51f0){while(--_0x5f51f0){_0x53ed59['push'](_0x53ed59['shift']());}};_0x5834ca(++_0x4beb34);}(_0xca8d,0x172));var _0xdca8=function(_0x55cf47,_0x3d037b){_0x55cf47=_0x55cf47-0x0;var _0x42bf2b=_0xca8d[_0x55cf47];return _0x42bf2b;};'use strict';var Sequelize=require(_0xdca8('0x0'));module[_0xdca8('0x1')]={'body':{'type':Sequelize[_0xdca8('0x2')](_0xdca8('0x3')),'allowNull':![]},'read':{'type':Sequelize[_0xdca8('0x4')],'defaultValue':![]},'direction':{'type':Sequelize[_0xdca8('0x5')]('in',_0xdca8('0x6')),'defaultValue':_0xdca8('0x6'),'allowNull':![]},'failMessage':{'type':Sequelize[_0xdca8('0x2')],'defaultValue':null},'readAt':{'type':Sequelize[_0xdca8('0x7')]}};
\ No newline at end of file
+var _0xecd5=['ENUM','out','exports','TEXT','medium'];(function(_0x56dc71,_0x1515a4){var _0x1d57ae=function(_0x19f1ff){while(--_0x19f1ff){_0x56dc71['push'](_0x56dc71['shift']());}};_0x1d57ae(++_0x1515a4);}(_0xecd5,0x110));var _0x5ecd=function(_0x491eda,_0x37a5ac){_0x491eda=_0x491eda-0x0;var _0x2d42b8=_0xecd5[_0x491eda];return _0x2d42b8;};'use strict';var Sequelize=require('sequelize');module[_0x5ecd('0x0')]={'body':{'type':Sequelize[_0x5ecd('0x1')](_0x5ecd('0x2')),'allowNull':![]},'read':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'direction':{'type':Sequelize[_0x5ecd('0x3')]('in',_0x5ecd('0x4')),'defaultValue':_0x5ecd('0x4'),'allowNull':![]},'failMessage':{'type':Sequelize[_0x5ecd('0x1')],'defaultValue':null},'readAt':{'type':Sequelize['DATE']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5e89=['merge','options','includeAll','include','findAll','rows','params','rawAttributes','keys','find','body','catch','describe','fax-interactions','fax','read','format','YYYY-MM-DD\x20HH:mm:ss','UserId','user','FaxInteraction','read1stAt','interaction','null','acceptMessage','ContactId','sequelize','Sequelize','QueryTypes','SELECT','User','agent','fullname','internal','manual','interface','channel','event','accept','EventManager','acceptmessage','FaxInteractionId','get','[FAXMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','stringify','RejectMessage','rejectMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','contact','email','SIP/%s','create','findOne','isNil','Attachment','SendFax','/var/opt/motion2/server/files/attachments/%s','basename','AttachmentId','join','root','server','files','attachments','download','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','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','redis','localhost','socket.io-emitter','./faxMessage.socket','jayson/promise','client','http','request','then','info','FaxMessage,\x20%s,\x20%s','request\x20sent','debug','FaxMessage,\x20%s,\x20%s,\x20%s','code','error','message','result','sendStatus','status','end','json','offset','limit','undefined','count','set','apply','reject','save','update','destroy','stack','name','index','map','FaxMessage','fieldName','type','query','filters','intersection','model','attributes','fields','length','nolimit','order','sort','where','pick','filter'];(function(_0x4ad225,_0x34ded2){var _0x1f5e27=function(_0x288d12){while(--_0x288d12){_0x4ad225['push'](_0x4ad225['shift']());}};_0x1f5e27(++_0x34ded2);}(_0x5e89,0x162));var _0x95e8=function(_0x491a7f,_0x28bb80){_0x491a7f=_0x491a7f-0x0;var _0x3d8f44=_0x5e89[_0x491a7f];return _0x3d8f44;};'use strict';var emlformat=require(_0x95e8('0x0'));var rimraf=require(_0x95e8('0x1'));var zipdir=require(_0x95e8('0x2'));var jsonpatch=require(_0x95e8('0x3'));var rp=require(_0x95e8('0x4'));var moment=require(_0x95e8('0x5'));var BPromise=require(_0x95e8('0x6'));var Mustache=require(_0x95e8('0x7'));var util=require(_0x95e8('0x8'));var path=require(_0x95e8('0x9'));var sox=require(_0x95e8('0xa'));var csv=require(_0x95e8('0xb'));var ejs=require(_0x95e8('0xc'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x95e8('0xd'));var squel=require(_0x95e8('0xe'));var crypto=require('crypto');var jsforce=require(_0x95e8('0xf'));var deskjs=require(_0x95e8('0x10'));var toCsv=require('to-csv');var querystring=require(_0x95e8('0x11'));var Papa=require(_0x95e8('0x12'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x95e8('0x13'));var as=require(_0x95e8('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x95e8('0x15'))(_0x95e8('0x16'));var utils=require(_0x95e8('0x17'));var config=require('../../config/environment');var licenseUtil=require(_0x95e8('0x18'));var db=require(_0x95e8('0x19'))['db'];config['redis']=_['defaults'](config[_0x95e8('0x1a')],{'host':_0x95e8('0x1b'),'port':0x18eb});var socket=require(_0x95e8('0x1c'))(new Redis(config[_0x95e8('0x1a')]));require(_0x95e8('0x1d'))['register'](socket);var jayson=require(_0x95e8('0x1e'));var client=jayson[_0x95e8('0x1f')][_0x95e8('0x20')]({'port':0x232c});var client9002=jayson[_0x95e8('0x1f')][_0x95e8('0x20')]({'port':0x232a});function respondWithRpcPromise(_0x2795bd,_0x279090,_0x517bf5,_0x372f21){return new BPromise(function(_0x50a218,_0x56c8c7){var _0x168db1=_0x372f21||client;return _0x168db1[_0x95e8('0x21')](_0x2795bd,_0x517bf5)[_0x95e8('0x22')](function(_0x5aca4a){logger[_0x95e8('0x23')](_0x95e8('0x24'),_0x279090,_0x95e8('0x25'));logger[_0x95e8('0x26')](_0x95e8('0x27'),_0x279090,_0x95e8('0x25'),JSON['stringify'](_0x5aca4a));if(_0x5aca4a['error']){if(_0x5aca4a['error'][_0x95e8('0x28')]===0x1f4){logger['error'](_0x95e8('0x24'),_0x279090,_0x5aca4a[_0x95e8('0x29')][_0x95e8('0x2a')]);return _0x56c8c7(_0x5aca4a['error']['message']);}logger[_0x95e8('0x29')](_0x95e8('0x24'),_0x279090,_0x5aca4a[_0x95e8('0x29')]['message']);return _0x50a218(_0x5aca4a[_0x95e8('0x29')][_0x95e8('0x2a')]);}else{logger[_0x95e8('0x23')]('FaxMessage,\x20%s,\x20%s',_0x279090,'request\x20sent');_0x50a218(_0x5aca4a[_0x95e8('0x2b')][_0x95e8('0x2a')]);}})['catch'](function(_0xc3dc50){logger[_0x95e8('0x29')](_0x95e8('0x24'),_0x279090,_0xc3dc50);_0x56c8c7(_0xc3dc50);});});}function respondWithStatusCode(_0x487a68,_0x3fbc4a){_0x3fbc4a=_0x3fbc4a||0xcc;return function(_0x2ef9c5){if(_0x2ef9c5){return _0x487a68[_0x95e8('0x2c')](_0x3fbc4a);}return _0x487a68[_0x95e8('0x2d')](_0x3fbc4a)[_0x95e8('0x2e')]();};}function respondWithResult(_0x347ac5,_0x2504ed){_0x2504ed=_0x2504ed||0xc8;return function(_0x23de3b){if(_0x23de3b){return _0x347ac5[_0x95e8('0x2d')](_0x2504ed)[_0x95e8('0x2f')](_0x23de3b);}};}function respondWithFilteredResult(_0x486de8,_0x37298b){return function(_0x24b853){if(_0x24b853){var _0x420a80=typeof _0x37298b[_0x95e8('0x30')]==='undefined'&&typeof _0x37298b[_0x95e8('0x31')]===_0x95e8('0x32');var _0x501735=_0x24b853[_0x95e8('0x33')];var _0x3a9110=_0x420a80?0x0:_0x37298b[_0x95e8('0x30')];var _0x3a3c3e=_0x420a80?_0x24b853[_0x95e8('0x33')]:_0x37298b[_0x95e8('0x30')]+_0x37298b[_0x95e8('0x31')];var _0xb78dd0;if(_0x3a3c3e>=_0x501735){_0x3a3c3e=_0x501735;_0xb78dd0=0xc8;}else{_0xb78dd0=0xce;}_0x486de8[_0x95e8('0x2d')](_0xb78dd0);return _0x486de8[_0x95e8('0x34')]('Content-Range',_0x3a9110+'-'+_0x3a3c3e+'/'+_0x501735)['json'](_0x24b853);}return null;};}function patchUpdates(_0x544d00){return function(_0x3c95bf){try{jsonpatch[_0x95e8('0x35')](_0x3c95bf,_0x544d00,!![]);}catch(_0x708bf4){return BPromise[_0x95e8('0x36')](_0x708bf4);}return _0x3c95bf[_0x95e8('0x37')]();};}function saveUpdates(_0x169722,_0x1045ae){return function(_0x39f77f){if(_0x39f77f){return _0x39f77f[_0x95e8('0x38')](_0x169722)['then'](function(_0x30a96d){return _0x30a96d;});}return null;};}function removeEntity(_0xb3df31,_0x400c27){return function(_0x596060){if(_0x596060){return _0x596060[_0x95e8('0x39')]()[_0x95e8('0x22')](function(){_0xb3df31[_0x95e8('0x2d')](0xcc)[_0x95e8('0x2e')]();});}};}function handleEntityNotFound(_0x5ac671,_0x512896){return function(_0x1eaf9e){if(!_0x1eaf9e){_0x5ac671[_0x95e8('0x2c')](0x194);}return _0x1eaf9e;};}function handleError(_0x32570c,_0x455c21){_0x455c21=_0x455c21||0x1f4;return function(_0x5c0748){logger['error'](_0x5c0748[_0x95e8('0x3a')]);if(_0x5c0748[_0x95e8('0x3b')]){delete _0x5c0748['name'];}_0x32570c['status'](_0x455c21)['send'](_0x5c0748);};}exports[_0x95e8('0x3c')]=function(_0x377f38,_0x21a2d8){var _0x31776f={},_0x59f36c={},_0x93dab5={'count':0x0,'rows':[]};var _0x1568b8=_[_0x95e8('0x3d')](db[_0x95e8('0x3e')]['rawAttributes'],function(_0x5ce782){return{'name':_0x5ce782[_0x95e8('0x3f')],'type':_0x5ce782[_0x95e8('0x40')]['key']};});_0x59f36c['model']=_['map'](_0x1568b8,_0x95e8('0x3b'));_0x59f36c[_0x95e8('0x41')]=_['keys'](_0x377f38['query']);_0x59f36c[_0x95e8('0x42')]=_[_0x95e8('0x43')](_0x59f36c[_0x95e8('0x44')],_0x59f36c[_0x95e8('0x41')]);_0x31776f[_0x95e8('0x45')]=_[_0x95e8('0x43')](_0x59f36c[_0x95e8('0x44')],qs[_0x95e8('0x46')](_0x377f38[_0x95e8('0x41')][_0x95e8('0x46')]));_0x31776f[_0x95e8('0x45')]=_0x31776f[_0x95e8('0x45')][_0x95e8('0x47')]?_0x31776f[_0x95e8('0x45')]:_0x59f36c[_0x95e8('0x44')];if(!_0x377f38[_0x95e8('0x41')]['hasOwnProperty'](_0x95e8('0x48'))){_0x31776f[_0x95e8('0x31')]=qs[_0x95e8('0x31')](_0x377f38[_0x95e8('0x41')][_0x95e8('0x31')]);_0x31776f[_0x95e8('0x30')]=qs[_0x95e8('0x30')](_0x377f38[_0x95e8('0x41')]['offset']);}_0x31776f[_0x95e8('0x49')]=qs[_0x95e8('0x4a')](_0x377f38[_0x95e8('0x41')][_0x95e8('0x4a')]);_0x31776f[_0x95e8('0x4b')]=qs['filters'](_[_0x95e8('0x4c')](_0x377f38[_0x95e8('0x41')],_0x59f36c[_0x95e8('0x42')]),_0x1568b8);if(_0x377f38[_0x95e8('0x41')][_0x95e8('0x4d')]){_0x31776f[_0x95e8('0x4b')]=_[_0x95e8('0x4e')](_0x31776f['where'],{'$or':_[_0x95e8('0x3d')](_0x1568b8,function(_0x45d4e7){if(_0x45d4e7[_0x95e8('0x40')]!=='VIRTUAL'){var _0x11cd50={};_0x11cd50[_0x45d4e7['name']]={'$like':'%'+_0x377f38[_0x95e8('0x41')]['filter']+'%'};return _0x11cd50;}})});}_0x31776f=_[_0x95e8('0x4e')]({},_0x31776f,_0x377f38[_0x95e8('0x4f')]);var _0x5eb302={'where':_0x31776f[_0x95e8('0x4b')]};return db['FaxMessage']['count'](_0x5eb302)['then'](function(_0x52f191){_0x93dab5[_0x95e8('0x33')]=_0x52f191;if(_0x377f38[_0x95e8('0x41')][_0x95e8('0x50')]){_0x31776f[_0x95e8('0x51')]=[{'all':!![]}];}return db[_0x95e8('0x3e')][_0x95e8('0x52')](_0x31776f);})[_0x95e8('0x22')](function(_0x2640ed){_0x93dab5[_0x95e8('0x53')]=_0x2640ed;return _0x93dab5;})[_0x95e8('0x22')](respondWithFilteredResult(_0x21a2d8,_0x31776f))['catch'](handleError(_0x21a2d8,null));};exports['show']=function(_0x196c43,_0x5e5f09){var _0x35d4b9={'raw':!![],'where':{'id':_0x196c43[_0x95e8('0x54')]['id']}},_0x23aa79={};_0x23aa79[_0x95e8('0x44')]=_['keys'](db[_0x95e8('0x3e')][_0x95e8('0x55')]);_0x23aa79['query']=_[_0x95e8('0x56')](_0x196c43[_0x95e8('0x41')]);_0x23aa79['filters']=_[_0x95e8('0x43')](_0x23aa79[_0x95e8('0x44')],_0x23aa79[_0x95e8('0x41')]);_0x35d4b9[_0x95e8('0x45')]=_[_0x95e8('0x43')](_0x23aa79[_0x95e8('0x44')],qs[_0x95e8('0x46')](_0x196c43[_0x95e8('0x41')][_0x95e8('0x46')]));_0x35d4b9[_0x95e8('0x45')]=_0x35d4b9[_0x95e8('0x45')][_0x95e8('0x47')]?_0x35d4b9[_0x95e8('0x45')]:_0x23aa79[_0x95e8('0x44')];if(_0x196c43[_0x95e8('0x41')][_0x95e8('0x50')]){_0x35d4b9[_0x95e8('0x51')]=[{'all':!![]}];}_0x35d4b9=_['merge']({},_0x35d4b9,_0x196c43['options']);return db['FaxMessage']['find'](_0x35d4b9)['then'](handleEntityNotFound(_0x5e5f09,null))[_0x95e8('0x22')](respondWithResult(_0x5e5f09,null))['catch'](handleError(_0x5e5f09,null));};exports['update']=function(_0x15b92c,_0xb5bf81){if(_0x15b92c['body']['id']){delete _0x15b92c['body']['id'];}return db['FaxMessage'][_0x95e8('0x57')]({'where':{'id':_0x15b92c['params']['id']}})[_0x95e8('0x22')](handleEntityNotFound(_0xb5bf81,null))['then'](saveUpdates(_0x15b92c[_0x95e8('0x58')],null))[_0x95e8('0x22')](respondWithResult(_0xb5bf81,null))[_0x95e8('0x59')](handleError(_0xb5bf81,null));};exports['destroy']=function(_0xa83b27,_0x1d0023){return db[_0x95e8('0x3e')][_0x95e8('0x57')]({'where':{'id':_0xa83b27['params']['id']}})[_0x95e8('0x22')](handleEntityNotFound(_0x1d0023,null))[_0x95e8('0x22')](removeEntity(_0x1d0023,null))[_0x95e8('0x59')](handleError(_0x1d0023,null));};exports['describe']=function(_0x59e4f4,_0x4093b5){return db[_0x95e8('0x3e')][_0x95e8('0x5a')]()[_0x95e8('0x22')](respondWithResult(_0x4093b5,null))[_0x95e8('0x59')](handleError(_0x4093b5,null));};var interaction_log=require(_0x95e8('0x15'))(_0x95e8('0x5b'));exports['accept']=function(_0x1899e5,_0x1ed408,_0x572077){var _0x2a9650={'agent':{},'channel':_0x95e8('0x5c')};if(_0x1899e5[_0x95e8('0x58')]['id']){delete _0x1899e5[_0x95e8('0x58')]['id'];}_0x1899e5[_0x95e8('0x58')][_0x95e8('0x5d')]=!![];_0x1899e5[_0x95e8('0x58')]['readAt']=moment()[_0x95e8('0x5e')](_0x95e8('0x5f'));_0x1899e5['body']['UserId']=_0x1899e5[_0x95e8('0x58')][_0x95e8('0x60')]||_0x1899e5[_0x95e8('0x61')]['id'];_0x2a9650['agent']['id']=_0x1899e5[_0x95e8('0x58')][_0x95e8('0x60')];return db['FaxMessage'][_0x95e8('0x57')]({'where':{'id':_0x1899e5[_0x95e8('0x54')]['id'],'UserId':null}})[_0x95e8('0x22')](handleEntityNotFound(_0x1ed408,null))[_0x95e8('0x22')](saveUpdates(_0x1899e5[_0x95e8('0x58')],null))[_0x95e8('0x22')](function(_0x1f021f){if(_0x1f021f){_0x2a9650[_0x95e8('0x2a')]=_0x1f021f['get']({'plain':!![]});return db[_0x95e8('0x62')]['find']({'where':{'id':_0x1f021f['FaxInteractionId']}});}return null;})[_0x95e8('0x22')](handleEntityNotFound(_0x1ed408,null))[_0x95e8('0x22')](function(_0x47b293){if(_0x47b293){return _0x47b293[_0x95e8('0x38')]({'UserId':_0x1899e5[_0x95e8('0x58')]['UserId'],'read1stAt':_['isNil'](_0x47b293[_0x95e8('0x63')])?moment()[_0x95e8('0x5e')]('YYYY-MM-DD\x20HH:mm:ss'):undefined});}return null;})[_0x95e8('0x22')](function(_0x34d1d4){if(_0x34d1d4){_0x2a9650[_0x95e8('0x64')]=_0x34d1d4['get']({'plain':!![]});interaction_log[_0x95e8('0x23')]('[FAXMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x1899e5[_0x95e8('0x61')]['id'],_0x1899e5['user'][_0x95e8('0x3b')],_0x1899e5[_0x95e8('0x61')]['role'],_0x2a9650['interaction']['id'],_0x1899e5['body']?JSON['stringify'](_0x1899e5[_0x95e8('0x58')]):_0x95e8('0x65'));return respondWithRpcPromise('AcceptMessage',_0x95e8('0x66'),_0x2a9650);}return null;})[_0x95e8('0x22')](function(_0x42cde6){var _0x586f6f='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x42cde6[_0x95e8('0x2a')][_0x95e8('0x67')];return db[_0x95e8('0x68')][_0x95e8('0x41')](_0x586f6f,{'type':db[_0x95e8('0x69')][_0x95e8('0x6a')][_0x95e8('0x6b')],'raw':!![]})['then'](function(_0x416a07){return _0x416a07;});})[_0x95e8('0x22')](function(_0x42c1ce){if(_0x42c1ce){_0x2a9650['message']['contact']=_0x42c1ce[0x0];if(!_0x1899e5[_0x95e8('0x58')]['UserId'])return;return db[_0x95e8('0x6c')][_0x95e8('0x57')]({'where':{'id':_0x1899e5[_0x95e8('0x58')][_0x95e8('0x60')],'role':_0x95e8('0x6d')},'attributes':['id','name',_0x95e8('0x6e'),'email',_0x95e8('0x6f')],'raw':!![]});}return null;})[_0x95e8('0x22')](function(_0x5d3cbc){if(!_0x5d3cbc)return null;_0x2a9650[_0x95e8('0x2a')][_0x95e8('0x6d')]=_0x5d3cbc;return _0x2a9650;})[_0x95e8('0x22')](function(_0x248254){if(_0x248254){if(_0x1899e5[_0x95e8('0x58')][_0x95e8('0x70')]){_0x2a9650[_0x95e8('0x2a')][_0x95e8('0x71')]=util[_0x95e8('0x5e')]('SIP/%s',_0x1899e5[_0x95e8('0x61')][_0x95e8('0x3b')]);_0x2a9650[_0x95e8('0x2a')][_0x95e8('0x72')]=_0x2a9650[_0x95e8('0x72')];_0x2a9650[_0x95e8('0x2a')][_0x95e8('0x73')]=_0x95e8('0x74');return respondWithRpcPromise(_0x95e8('0x75'),_0x95e8('0x75'),{'event':_0x95e8('0x76'),'message':_0x2a9650[_0x95e8('0x2a')]},client9002)[_0x95e8('0x22')](function(){return _0x2a9650;});}return _0x2a9650;}return null;})[_0x95e8('0x22')](respondWithResult(_0x1ed408,null))['catch'](handleError(_0x1ed408,null));};var interaction_log=require('../../config/logger')('fax-interactions');exports[_0x95e8('0x36')]=function(_0x541b6b,_0x29ae70,_0x9756ba){var _0x4435b8={'agent':{},'channel':_0x95e8('0x5c')};if(_0x541b6b[_0x95e8('0x58')]['id']){delete _0x541b6b[_0x95e8('0x58')]['id'];}_0x541b6b[_0x95e8('0x58')][_0x95e8('0x60')]=_0x541b6b[_0x95e8('0x58')][_0x95e8('0x60')]||_0x541b6b['user']['id'];_0x4435b8[_0x95e8('0x6d')]['id']=_0x541b6b[_0x95e8('0x58')][_0x95e8('0x60')];return db[_0x95e8('0x3e')][_0x95e8('0x57')]({'where':{'id':_0x541b6b[_0x95e8('0x54')]['id'],'UserId':null}})['then'](handleEntityNotFound(_0x29ae70,null))[_0x95e8('0x22')](function(_0x3c6bee){if(_0x3c6bee){_0x4435b8[_0x95e8('0x2a')]=_0x3c6bee['get']({'plain':!![]});return db['FaxInteraction'][_0x95e8('0x57')]({'where':{'id':_0x3c6bee[_0x95e8('0x77')]}});}return null;})[_0x95e8('0x22')](handleEntityNotFound(_0x29ae70,null))[_0x95e8('0x22')](function(_0x1ba5ee){if(_0x1ba5ee){_0x4435b8[_0x95e8('0x64')]=_0x1ba5ee[_0x95e8('0x78')]({'plain':!![]});interaction_log[_0x95e8('0x23')](_0x95e8('0x79'),_0x541b6b['user']['id'],_0x541b6b['user'][_0x95e8('0x3b')],_0x541b6b[_0x95e8('0x61')][_0x95e8('0x7a')],_0x4435b8[_0x95e8('0x64')]['id'],_0x541b6b['body']?JSON[_0x95e8('0x7b')](_0x541b6b[_0x95e8('0x58')]):_0x95e8('0x65'));return respondWithRpcPromise(_0x95e8('0x7c'),_0x95e8('0x7d'),_0x4435b8);}return null;})[_0x95e8('0x22')](function(_0x52b8e8){var _0x1dd848=_0x95e8('0x7e')+_0x52b8e8[_0x95e8('0x2a')]['ContactId'];return db[_0x95e8('0x68')][_0x95e8('0x41')](_0x1dd848,{'type':db[_0x95e8('0x69')][_0x95e8('0x6a')][_0x95e8('0x6b')],'raw':!![]})[_0x95e8('0x22')](function(_0x819135){return _0x819135;});})[_0x95e8('0x22')](function(_0x58dbe5){if(_0x58dbe5){_0x4435b8['message'][_0x95e8('0x7f')]=_0x58dbe5[0x0];if(!_0x541b6b[_0x95e8('0x58')][_0x95e8('0x60')])return;return db[_0x95e8('0x6c')][_0x95e8('0x57')]({'where':{'id':_0x541b6b['body'][_0x95e8('0x60')],'role':_0x95e8('0x6d')},'attributes':['id',_0x95e8('0x3b'),_0x95e8('0x6e'),_0x95e8('0x80'),'internal'],'raw':!![]});}return null;})['then'](function(_0x3b128e){if(!_0x3b128e)return null;_0x4435b8[_0x95e8('0x2a')][_0x95e8('0x6d')]=_0x3b128e;return _0x4435b8;})[_0x95e8('0x22')](function(_0x33a0a1){if(_0x33a0a1){_0x33a0a1[_0x95e8('0x2a')][_0x95e8('0x71')]=util['format'](_0x95e8('0x81'),_0x541b6b[_0x95e8('0x61')][_0x95e8('0x3b')]);_0x33a0a1[_0x95e8('0x2a')][_0x95e8('0x72')]=_0x4435b8[_0x95e8('0x72')];_0x33a0a1[_0x95e8('0x2a')][_0x95e8('0x73')]=_0x95e8('0x36');respondWithRpcPromise(_0x95e8('0x75'),_0x95e8('0x75'),{'event':'rejectmessage','message':_0x33a0a1[_0x95e8('0x2a')]},client9002);return _0x4435b8;}return null;})[_0x95e8('0x22')](respondWithResult(_0x29ae70,null))[_0x95e8('0x59')](handleError(_0x29ae70,null));};exports[_0x95e8('0x82')]=function(_0xb40ffa,_0x5e7c72){var _0x51c45f;return db['FaxMessage'][_0x95e8('0x82')](_0xb40ffa[_0x95e8('0x58')],{})[_0x95e8('0x22')](function(_0x461e9f){_0x51c45f=_0x461e9f;return db['CmContact'][_0x95e8('0x83')]({'where':{'id':_0x51c45f['ContactId']}});})[_0x95e8('0x22')](function(_0x41fea2){if(_[_0x95e8('0x84')](_0x41fea2)){return;}else{_0x51c45f[_0x95e8('0x5c')]=_0x41fea2[_0x95e8('0x5c')];return db[_0x95e8('0x85')][_0x95e8('0x83')]({'where':{'id':_0x51c45f['AttachmentId']}});}})[_0x95e8('0x22')](function(_0x1a84f9){return respondWithRpcPromise(_0x95e8('0x86'),_0x95e8('0x86'),{'FaxAccountId':_[_0x95e8('0x84')](_0xb40ffa[_0x95e8('0x58')])?undefined:_0xb40ffa['body']['FaxAccountId'],'path':_[_0x95e8('0x84')](_0x1a84f9)?undefined:util[_0x95e8('0x5e')](_0x95e8('0x87'),_0x1a84f9[_0x95e8('0x88')]),'fax':_[_0x95e8('0x84')](_0x51c45f[_0x95e8('0x5c')])?undefined:_0x51c45f[_0x95e8('0x5c')],'AttachmentId':_0x51c45f[_0x95e8('0x89')]},client9002);})[_0x95e8('0x22')](respondWithResult(_0x5e7c72,0xc9))[_0x95e8('0x59')](handleError(_0x5e7c72,null));};exports['download']=function(_0x218e33,_0x4922b){var _0x23d168=path[_0x95e8('0x8a')](config[_0x95e8('0x8b')],_0x95e8('0x8c'),_0x95e8('0x8d'),_0x95e8('0x8e'));return db[_0x95e8('0x3e')][_0x95e8('0x57')]({'where':{'id':_0x218e33[_0x95e8('0x54')]['id']},'include':[{'model':db[_0x95e8('0x85')],'as':_0x95e8('0x85')}]})['then'](handleEntityNotFound(_0x4922b,null))[_0x95e8('0x22')](function(_0x4fc1d3){if(_0x4fc1d3){return _0x4922b[_0x95e8('0x8f')](path[_0x95e8('0x8a')](_0x23d168,_0x4fc1d3[_0x95e8('0x85')][_0x95e8('0x88')]));}})[_0x95e8('0x59')](handleError(_0x4922b,null));};
\ No newline at end of file
+var _0x050e=['result','catch','sendStatus','end','json','offset','limit','undefined','count','status','set','Content-Range','apply','save','name','index','map','fieldName','type','model','keys','query','filters','intersection','attributes','length','nolimit','sort','filter','where','merge','options','FaxMessage','include','findAll','show','params','rawAttributes','fields','includeAll','find','update','body','destroy','describe','fax-interactions','accept','fax','read','readAt','format','YYYY-MM-DD\x20HH:mm:ss','user','agent','UserId','get','FaxInteraction','FaxInteractionId','isNil','read1stAt','interaction','[FAXMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','stringify','null','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','ContactId','sequelize','Sequelize','SELECT','User','internal','interface','SIP/%s','channel','motionChannel','EventManager','acceptmessage','reject','[FAXMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','RejectMessage','rejectMessage','QueryTypes','fullname','email','create','CmContact','findOne','AttachmentId','SendFax','FaxAccountId','basename','download','join','root','server','files','attachments','Attachment','eml-format','zip-dir','fast-json-patch','request-promise','mustache','util','to-csv','ejs','fs-extra','squel','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','redis','defaults','localhost','./faxMessage.socket','register','http','then','info','FaxMessage,\x20%s,\x20%s','request\x20sent','error','code','message'];(function(_0x149319,_0x4182b5){var _0x4637c9=function(_0x2ff6ce){while(--_0x2ff6ce){_0x149319['push'](_0x149319['shift']());}};_0x4637c9(++_0x4182b5);}(_0x050e,0x1ef));var _0xe050=function(_0x39ddae,_0x50089d){_0x39ddae=_0x39ddae-0x0;var _0x44cac8=_0x050e[_0x39ddae];return _0x44cac8;};'use strict';var emlformat=require(_0xe050('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xe050('0x1'));var jsonpatch=require(_0xe050('0x2'));var rp=require(_0xe050('0x3'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0xe050('0x4'));var util=require(_0xe050('0x5'));var path=require('path');var sox=require('sox');var csv=require(_0xe050('0x6'));var ejs=require(_0xe050('0x7'));var fs=require('fs');var fs_extra=require(_0xe050('0x8'));var _=require('lodash');var squel=require(_0xe050('0x9'));var crypto=require('crypto');var jsforce=require(_0xe050('0xa'));var deskjs=require(_0xe050('0xb'));var toCsv=require(_0xe050('0x6'));var querystring=require(_0xe050('0xc'));var Papa=require('papaparse');var Redis=require(_0xe050('0xd'));var authService=require(_0xe050('0xe'));var qs=require(_0xe050('0xf'));var as=require(_0xe050('0x10'));var hardwareService=require(_0xe050('0x11'));var logger=require(_0xe050('0x12'))('api');var utils=require(_0xe050('0x13'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];config[_0xe050('0x14')]=_[_0xe050('0x15')](config['redis'],{'host':_0xe050('0x16'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xe050('0x14')]));require(_0xe050('0x17'))[_0xe050('0x18')](socket);var jayson=require('jayson/promise');var client=jayson['client'][_0xe050('0x19')]({'port':0x232c});var client9002=jayson['client'][_0xe050('0x19')]({'port':0x232a});function respondWithRpcPromise(_0x2026fd,_0x172058,_0x4b0cf3,_0x14e4e4){return new BPromise(function(_0x1c3001,_0x594c7e){var _0x273763=_0x14e4e4||client;return _0x273763['request'](_0x2026fd,_0x4b0cf3)[_0xe050('0x1a')](function(_0x59411c){logger[_0xe050('0x1b')](_0xe050('0x1c'),_0x172058,_0xe050('0x1d'));logger['debug']('FaxMessage,\x20%s,\x20%s,\x20%s',_0x172058,_0xe050('0x1d'),JSON['stringify'](_0x59411c));if(_0x59411c[_0xe050('0x1e')]){if(_0x59411c[_0xe050('0x1e')][_0xe050('0x1f')]===0x1f4){logger[_0xe050('0x1e')](_0xe050('0x1c'),_0x172058,_0x59411c[_0xe050('0x1e')][_0xe050('0x20')]);return _0x594c7e(_0x59411c[_0xe050('0x1e')]['message']);}logger[_0xe050('0x1e')](_0xe050('0x1c'),_0x172058,_0x59411c[_0xe050('0x1e')][_0xe050('0x20')]);return _0x1c3001(_0x59411c['error'][_0xe050('0x20')]);}else{logger[_0xe050('0x1b')](_0xe050('0x1c'),_0x172058,_0xe050('0x1d'));_0x1c3001(_0x59411c[_0xe050('0x21')][_0xe050('0x20')]);}})[_0xe050('0x22')](function(_0x576109){logger['error'](_0xe050('0x1c'),_0x172058,_0x576109);_0x594c7e(_0x576109);});});}function respondWithStatusCode(_0x373110,_0x2ac24e){_0x2ac24e=_0x2ac24e||0xcc;return function(_0x4bd39a){if(_0x4bd39a){return _0x373110[_0xe050('0x23')](_0x2ac24e);}return _0x373110['status'](_0x2ac24e)[_0xe050('0x24')]();};}function respondWithResult(_0x4d3723,_0x347038){_0x347038=_0x347038||0xc8;return function(_0x1d2663){if(_0x1d2663){return _0x4d3723['status'](_0x347038)[_0xe050('0x25')](_0x1d2663);}};}function respondWithFilteredResult(_0x4d89d6,_0x5948ec){return function(_0x58a82c){if(_0x58a82c){var _0x336a2e=typeof _0x5948ec[_0xe050('0x26')]==='undefined'&&typeof _0x5948ec[_0xe050('0x27')]===_0xe050('0x28');var _0x479933=_0x58a82c[_0xe050('0x29')];var _0x48926c=_0x336a2e?0x0:_0x5948ec['offset'];var _0x36c5b8=_0x336a2e?_0x58a82c[_0xe050('0x29')]:_0x5948ec['offset']+_0x5948ec[_0xe050('0x27')];var _0x31ddc2;if(_0x36c5b8>=_0x479933){_0x36c5b8=_0x479933;_0x31ddc2=0xc8;}else{_0x31ddc2=0xce;}_0x4d89d6[_0xe050('0x2a')](_0x31ddc2);return _0x4d89d6[_0xe050('0x2b')](_0xe050('0x2c'),_0x48926c+'-'+_0x36c5b8+'/'+_0x479933)[_0xe050('0x25')](_0x58a82c);}return null;};}function patchUpdates(_0xf734e4){return function(_0x1b7ad7){try{jsonpatch[_0xe050('0x2d')](_0x1b7ad7,_0xf734e4,!![]);}catch(_0x2b584f){return BPromise['reject'](_0x2b584f);}return _0x1b7ad7[_0xe050('0x2e')]();};}function saveUpdates(_0x31f321,_0x25daf7){return function(_0x4b4e21){if(_0x4b4e21){return _0x4b4e21['update'](_0x31f321)['then'](function(_0x1c7dd3){return _0x1c7dd3;});}return null;};}function removeEntity(_0xc7595b,_0x94d1c7){return function(_0x4c83fb){if(_0x4c83fb){return _0x4c83fb['destroy']()[_0xe050('0x1a')](function(){_0xc7595b[_0xe050('0x2a')](0xcc)['end']();});}};}function handleEntityNotFound(_0x2baa9c,_0x31063a){return function(_0x38a150){if(!_0x38a150){_0x2baa9c[_0xe050('0x23')](0x194);}return _0x38a150;};}function handleError(_0x149d84,_0x19c192){_0x19c192=_0x19c192||0x1f4;return function(_0xa2ba77){logger[_0xe050('0x1e')](_0xa2ba77['stack']);if(_0xa2ba77[_0xe050('0x2f')]){delete _0xa2ba77[_0xe050('0x2f')];}_0x149d84['status'](_0x19c192)['send'](_0xa2ba77);};}exports[_0xe050('0x30')]=function(_0x3a7839,_0x1db0f9){var _0x2090d2={},_0x40de7f={},_0x3c0265={'count':0x0,'rows':[]};var _0x44520=_[_0xe050('0x31')](db['FaxMessage']['rawAttributes'],function(_0x20ee07){return{'name':_0x20ee07[_0xe050('0x32')],'type':_0x20ee07[_0xe050('0x33')]['key']};});_0x40de7f[_0xe050('0x34')]=_['map'](_0x44520,_0xe050('0x2f'));_0x40de7f['query']=_[_0xe050('0x35')](_0x3a7839[_0xe050('0x36')]);_0x40de7f[_0xe050('0x37')]=_[_0xe050('0x38')](_0x40de7f[_0xe050('0x34')],_0x40de7f[_0xe050('0x36')]);_0x2090d2[_0xe050('0x39')]=_[_0xe050('0x38')](_0x40de7f['model'],qs['fields'](_0x3a7839[_0xe050('0x36')]['fields']));_0x2090d2[_0xe050('0x39')]=_0x2090d2['attributes'][_0xe050('0x3a')]?_0x2090d2[_0xe050('0x39')]:_0x40de7f[_0xe050('0x34')];if(!_0x3a7839[_0xe050('0x36')]['hasOwnProperty'](_0xe050('0x3b'))){_0x2090d2['limit']=qs[_0xe050('0x27')](_0x3a7839['query']['limit']);_0x2090d2[_0xe050('0x26')]=qs['offset'](_0x3a7839['query']['offset']);}_0x2090d2['order']=qs[_0xe050('0x3c')](_0x3a7839[_0xe050('0x36')][_0xe050('0x3c')]);_0x2090d2['where']=qs[_0xe050('0x37')](_['pick'](_0x3a7839[_0xe050('0x36')],_0x40de7f['filters']),_0x44520);if(_0x3a7839['query'][_0xe050('0x3d')]){_0x2090d2[_0xe050('0x3e')]=_[_0xe050('0x3f')](_0x2090d2[_0xe050('0x3e')],{'$or':_[_0xe050('0x31')](_0x44520,function(_0x4e29e4){if(_0x4e29e4[_0xe050('0x33')]!=='VIRTUAL'){var _0xa2b3c2={};_0xa2b3c2[_0x4e29e4[_0xe050('0x2f')]]={'$like':'%'+_0x3a7839[_0xe050('0x36')][_0xe050('0x3d')]+'%'};return _0xa2b3c2;}})});}_0x2090d2=_[_0xe050('0x3f')]({},_0x2090d2,_0x3a7839[_0xe050('0x40')]);var _0x2de751={'where':_0x2090d2[_0xe050('0x3e')]};return db[_0xe050('0x41')]['count'](_0x2de751)['then'](function(_0x41edb7){_0x3c0265[_0xe050('0x29')]=_0x41edb7;if(_0x3a7839[_0xe050('0x36')]['includeAll']){_0x2090d2[_0xe050('0x42')]=[{'all':!![]}];}return db[_0xe050('0x41')][_0xe050('0x43')](_0x2090d2);})[_0xe050('0x1a')](function(_0x3a58ec){_0x3c0265['rows']=_0x3a58ec;return _0x3c0265;})[_0xe050('0x1a')](respondWithFilteredResult(_0x1db0f9,_0x2090d2))['catch'](handleError(_0x1db0f9,null));};exports[_0xe050('0x44')]=function(_0x582850,_0x1fda47){var _0x535e09={'raw':!![],'where':{'id':_0x582850[_0xe050('0x45')]['id']}},_0x5246b3={};_0x5246b3[_0xe050('0x34')]=_[_0xe050('0x35')](db[_0xe050('0x41')][_0xe050('0x46')]);_0x5246b3[_0xe050('0x36')]=_[_0xe050('0x35')](_0x582850['query']);_0x5246b3[_0xe050('0x37')]=_[_0xe050('0x38')](_0x5246b3[_0xe050('0x34')],_0x5246b3[_0xe050('0x36')]);_0x535e09[_0xe050('0x39')]=_[_0xe050('0x38')](_0x5246b3[_0xe050('0x34')],qs[_0xe050('0x47')](_0x582850[_0xe050('0x36')][_0xe050('0x47')]));_0x535e09[_0xe050('0x39')]=_0x535e09[_0xe050('0x39')]['length']?_0x535e09[_0xe050('0x39')]:_0x5246b3[_0xe050('0x34')];if(_0x582850[_0xe050('0x36')][_0xe050('0x48')]){_0x535e09[_0xe050('0x42')]=[{'all':!![]}];}_0x535e09=_[_0xe050('0x3f')]({},_0x535e09,_0x582850[_0xe050('0x40')]);return db[_0xe050('0x41')][_0xe050('0x49')](_0x535e09)[_0xe050('0x1a')](handleEntityNotFound(_0x1fda47,null))[_0xe050('0x1a')](respondWithResult(_0x1fda47,null))['catch'](handleError(_0x1fda47,null));};exports[_0xe050('0x4a')]=function(_0x4212d9,_0xde3c8b){if(_0x4212d9['body']['id']){delete _0x4212d9['body']['id'];}return db[_0xe050('0x41')][_0xe050('0x49')]({'where':{'id':_0x4212d9[_0xe050('0x45')]['id']}})[_0xe050('0x1a')](handleEntityNotFound(_0xde3c8b,null))[_0xe050('0x1a')](saveUpdates(_0x4212d9[_0xe050('0x4b')],null))[_0xe050('0x1a')](respondWithResult(_0xde3c8b,null))[_0xe050('0x22')](handleError(_0xde3c8b,null));};exports[_0xe050('0x4c')]=function(_0x24cdbd,_0x1a06ea){return db[_0xe050('0x41')][_0xe050('0x49')]({'where':{'id':_0x24cdbd[_0xe050('0x45')]['id']}})['then'](handleEntityNotFound(_0x1a06ea,null))[_0xe050('0x1a')](removeEntity(_0x1a06ea,null))[_0xe050('0x22')](handleError(_0x1a06ea,null));};exports['describe']=function(_0x594083,_0x3c3a48){return db[_0xe050('0x41')][_0xe050('0x4d')]()[_0xe050('0x1a')](respondWithResult(_0x3c3a48,null))[_0xe050('0x22')](handleError(_0x3c3a48,null));};var interaction_log=require(_0xe050('0x12'))(_0xe050('0x4e'));exports[_0xe050('0x4f')]=function(_0x3a7737,_0x3102e7,_0x272a46){var _0x176a61={'agent':{},'channel':_0xe050('0x50')};if(_0x3a7737['body']['id']){delete _0x3a7737['body']['id'];}_0x3a7737[_0xe050('0x4b')][_0xe050('0x51')]=!![];_0x3a7737[_0xe050('0x4b')][_0xe050('0x52')]=moment()[_0xe050('0x53')](_0xe050('0x54'));_0x3a7737[_0xe050('0x4b')]['UserId']=_0x3a7737[_0xe050('0x4b')]['UserId']||_0x3a7737[_0xe050('0x55')]['id'];_0x176a61[_0xe050('0x56')]['id']=_0x3a7737[_0xe050('0x4b')][_0xe050('0x57')];return db['FaxMessage'][_0xe050('0x49')]({'where':{'id':_0x3a7737['params']['id'],'UserId':null}})[_0xe050('0x1a')](handleEntityNotFound(_0x3102e7,null))[_0xe050('0x1a')](saveUpdates(_0x3a7737['body'],null))[_0xe050('0x1a')](function(_0x3a55a2){if(_0x3a55a2){_0x176a61[_0xe050('0x20')]=_0x3a55a2[_0xe050('0x58')]({'plain':!![]});return db[_0xe050('0x59')][_0xe050('0x49')]({'where':{'id':_0x3a55a2[_0xe050('0x5a')]}});}return null;})['then'](handleEntityNotFound(_0x3102e7,null))['then'](function(_0x30f3de){if(_0x30f3de){return _0x30f3de[_0xe050('0x4a')]({'UserId':_0x3a7737[_0xe050('0x4b')]['UserId'],'read1stAt':_[_0xe050('0x5b')](_0x30f3de[_0xe050('0x5c')])?moment()[_0xe050('0x53')](_0xe050('0x54')):undefined});}return null;})[_0xe050('0x1a')](function(_0x2500a7){if(_0x2500a7){_0x176a61[_0xe050('0x5d')]=_0x2500a7[_0xe050('0x58')]({'plain':!![]});interaction_log[_0xe050('0x1b')](_0xe050('0x5e'),_0x3a7737[_0xe050('0x55')]['id'],_0x3a7737[_0xe050('0x55')][_0xe050('0x2f')],_0x3a7737[_0xe050('0x55')][_0xe050('0x5f')],_0x176a61['interaction']['id'],_0x3a7737[_0xe050('0x4b')]?JSON[_0xe050('0x60')](_0x3a7737['body']):_0xe050('0x61'));return respondWithRpcPromise('AcceptMessage','acceptMessage',_0x176a61);}return null;})[_0xe050('0x1a')](function(_0x4bc2e5){var _0x369093=_0xe050('0x62')+_0x4bc2e5[_0xe050('0x20')][_0xe050('0x63')];return db[_0xe050('0x64')]['query'](_0x369093,{'type':db[_0xe050('0x65')]['QueryTypes'][_0xe050('0x66')],'raw':!![]})[_0xe050('0x1a')](function(_0x36fff0){return _0x36fff0;});})['then'](function(_0x36e302){if(_0x36e302){_0x176a61[_0xe050('0x20')]['contact']=_0x36e302[0x0];if(!_0x3a7737[_0xe050('0x4b')]['UserId'])return;return db[_0xe050('0x67')]['find']({'where':{'id':_0x3a7737[_0xe050('0x4b')][_0xe050('0x57')],'role':_0xe050('0x56')},'attributes':['id','name','fullname','email',_0xe050('0x68')],'raw':!![]});}return null;})[_0xe050('0x1a')](function(_0xecf15e){if(!_0xecf15e)return null;_0x176a61[_0xe050('0x20')][_0xe050('0x56')]=_0xecf15e;return _0x176a61;})[_0xe050('0x1a')](function(_0x532e9b){if(_0x532e9b){if(_0x3a7737['body']['manual']){_0x176a61[_0xe050('0x20')][_0xe050('0x69')]=util['format'](_0xe050('0x6a'),_0x3a7737[_0xe050('0x55')]['name']);_0x176a61[_0xe050('0x20')][_0xe050('0x6b')]=_0x176a61[_0xe050('0x6b')];_0x176a61[_0xe050('0x20')][_0xe050('0x6c')]=_0x176a61['channel'];_0x176a61[_0xe050('0x20')]['event']=_0xe050('0x4f');return respondWithRpcPromise('EventManager',_0xe050('0x6d'),{'event':_0xe050('0x6e'),'message':_0x176a61[_0xe050('0x20')]},client9002)[_0xe050('0x1a')](function(){return _0x176a61;});}return _0x176a61;}return null;})[_0xe050('0x1a')](respondWithResult(_0x3102e7,null))[_0xe050('0x22')](handleError(_0x3102e7,null));};var interaction_log=require(_0xe050('0x12'))('fax-interactions');exports[_0xe050('0x6f')]=function(_0x3a2b1e,_0x3a6e15,_0x4cbf2a){var _0x180255={'agent':{},'channel':'fax'};if(_0x3a2b1e[_0xe050('0x4b')]['id']){delete _0x3a2b1e[_0xe050('0x4b')]['id'];}_0x3a2b1e[_0xe050('0x4b')]['UserId']=_0x3a2b1e[_0xe050('0x4b')][_0xe050('0x57')]||_0x3a2b1e[_0xe050('0x55')]['id'];_0x180255['agent']['id']=_0x3a2b1e[_0xe050('0x4b')][_0xe050('0x57')];return db[_0xe050('0x41')]['find']({'where':{'id':_0x3a2b1e[_0xe050('0x45')]['id'],'UserId':null}})[_0xe050('0x1a')](handleEntityNotFound(_0x3a6e15,null))[_0xe050('0x1a')](function(_0x5f4104){if(_0x5f4104){_0x180255['message']=_0x5f4104['get']({'plain':!![]});return db[_0xe050('0x59')][_0xe050('0x49')]({'where':{'id':_0x5f4104[_0xe050('0x5a')]}});}return null;})[_0xe050('0x1a')](handleEntityNotFound(_0x3a6e15,null))[_0xe050('0x1a')](function(_0x5d2d22){if(_0x5d2d22){_0x180255[_0xe050('0x5d')]=_0x5d2d22[_0xe050('0x58')]({'plain':!![]});interaction_log['info'](_0xe050('0x70'),_0x3a2b1e['user']['id'],_0x3a2b1e[_0xe050('0x55')]['name'],_0x3a2b1e[_0xe050('0x55')]['role'],_0x180255[_0xe050('0x5d')]['id'],_0x3a2b1e[_0xe050('0x4b')]?JSON[_0xe050('0x60')](_0x3a2b1e['body']):_0xe050('0x61'));return respondWithRpcPromise(_0xe050('0x71'),_0xe050('0x72'),_0x180255);}return null;})[_0xe050('0x1a')](function(_0x435250){var _0xd76e91=_0xe050('0x62')+_0x435250['message']['ContactId'];return db[_0xe050('0x64')]['query'](_0xd76e91,{'type':db[_0xe050('0x65')][_0xe050('0x73')][_0xe050('0x66')],'raw':!![]})['then'](function(_0xb0fdb0){return _0xb0fdb0;});})[_0xe050('0x1a')](function(_0x1d8a7f){if(_0x1d8a7f){_0x180255[_0xe050('0x20')]['contact']=_0x1d8a7f[0x0];if(!_0x3a2b1e[_0xe050('0x4b')][_0xe050('0x57')])return;return db[_0xe050('0x67')][_0xe050('0x49')]({'where':{'id':_0x3a2b1e[_0xe050('0x4b')][_0xe050('0x57')],'role':'agent'},'attributes':['id',_0xe050('0x2f'),_0xe050('0x74'),_0xe050('0x75'),_0xe050('0x68')],'raw':!![]});}return null;})[_0xe050('0x1a')](function(_0x442eb0){if(!_0x442eb0)return null;_0x180255[_0xe050('0x20')][_0xe050('0x56')]=_0x442eb0;return _0x180255;})[_0xe050('0x1a')](function(_0x23ccea){if(_0x23ccea){_0x23ccea['message'][_0xe050('0x69')]=util[_0xe050('0x53')]('SIP/%s',_0x3a2b1e[_0xe050('0x55')][_0xe050('0x2f')]);_0x23ccea[_0xe050('0x20')][_0xe050('0x6b')]=_0x180255[_0xe050('0x6b')];_0x23ccea[_0xe050('0x20')][_0xe050('0x6c')]=_0x180255['channel'];_0x23ccea[_0xe050('0x20')]['event']=_0xe050('0x6f');respondWithRpcPromise(_0xe050('0x6d'),_0xe050('0x6d'),{'event':'rejectmessage','message':_0x23ccea['message']},client9002);return _0x180255;}return null;})[_0xe050('0x1a')](respondWithResult(_0x3a6e15,null))[_0xe050('0x22')](handleError(_0x3a6e15,null));};exports[_0xe050('0x76')]=function(_0x533fb6,_0x58f695){var _0x34129e;return db[_0xe050('0x41')]['create'](_0x533fb6[_0xe050('0x4b')],{})['then'](function(_0x342d27){_0x34129e=_0x342d27;return db[_0xe050('0x77')][_0xe050('0x78')]({'where':{'id':_0x34129e[_0xe050('0x63')]}});})[_0xe050('0x1a')](function(_0x51a923){if(_[_0xe050('0x5b')](_0x51a923)){return;}else{_0x34129e['fax']=_0x51a923[_0xe050('0x50')];return db['Attachment']['findOne']({'where':{'id':_0x34129e[_0xe050('0x79')]}});}})[_0xe050('0x1a')](function(_0x36ee8f){return respondWithRpcPromise('SendFax',_0xe050('0x7a'),{'FaxAccountId':_[_0xe050('0x5b')](_0x533fb6[_0xe050('0x4b')])?undefined:_0x533fb6['body'][_0xe050('0x7b')],'path':_['isNil'](_0x36ee8f)?undefined:util['format']('/var/opt/motion2/server/files/attachments/%s',_0x36ee8f[_0xe050('0x7c')]),'fax':_['isNil'](_0x34129e[_0xe050('0x50')])?undefined:_0x34129e[_0xe050('0x50')],'AttachmentId':_0x34129e['AttachmentId']},client9002);})[_0xe050('0x1a')](respondWithResult(_0x58f695,0xc9))[_0xe050('0x22')](handleError(_0x58f695,null));};exports[_0xe050('0x7d')]=function(_0x7a4355,_0x2633bb){var _0x3a5a0d=path[_0xe050('0x7e')](config[_0xe050('0x7f')],_0xe050('0x80'),_0xe050('0x81'),_0xe050('0x82'));return db[_0xe050('0x41')][_0xe050('0x49')]({'where':{'id':_0x7a4355['params']['id']},'include':[{'model':db[_0xe050('0x83')],'as':_0xe050('0x83')}]})[_0xe050('0x1a')](handleEntityNotFound(_0x2633bb,null))[_0xe050('0x1a')](function(_0x3c6659){if(_0x3c6659){return _0x2633bb[_0xe050('0x7d')](path['join'](_0x3a5a0d,_0x3c6659[_0xe050('0x83')][_0xe050('0x7c')]));}})[_0xe050('0x22')](handleError(_0x2633bb,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x853e=['../../mysqldb','setMaxListeners','update','emit','hasOwnProperty','hook','exports'];(function(_0x5578a9,_0x140319){var _0x3b8a26=function(_0x2b9c09){while(--_0x2b9c09){_0x5578a9['push'](_0x5578a9['shift']());}};_0x3b8a26(++_0x140319);}(_0x853e,0x1ea));var _0xe853=function(_0x4d0716,_0x304140){_0x4d0716=_0x4d0716-0x0;var _0x500f66=_0x853e[_0x4d0716];return _0x500f66;};'use strict';var EventEmitter=require('events');var FaxMessage=require(_0xe853('0x0'))['db']['FaxMessage'];var FaxMessageEvents=new EventEmitter();FaxMessageEvents[_0xe853('0x1')](0x0);var events={'afterCreate':'save','afterUpdate':_0xe853('0x2'),'afterDestroy':'remove'};function emitEvent(_0xf7b6da){return function(_0xbc2b15,_0x46c559,_0x44705d){FaxMessageEvents[_0xe853('0x3')](_0xf7b6da+':'+_0xbc2b15['id'],_0xbc2b15);FaxMessageEvents['emit'](_0xf7b6da,_0xbc2b15);_0x44705d(null);};}for(var e in events){if(events[_0xe853('0x4')](e)){var event=events[e];FaxMessage[_0xe853('0x5')](e,emitEvent(event));}}module[_0xe853('0x6')]=FaxMessageEvents;
\ No newline at end of file
+var _0xdbfa=['hook','exports','setMaxListeners','update','remove','emit'];(function(_0x5163c,_0x5f4ad9){var _0x5a1d84=function(_0x4d1f6f){while(--_0x4d1f6f){_0x5163c['push'](_0x5163c['shift']());}};_0x5a1d84(++_0x5f4ad9);}(_0xdbfa,0x128));var _0xadbf=function(_0xe4edc4,_0x12d04e){_0xe4edc4=_0xe4edc4-0x0;var _0x317a13=_0xdbfa[_0xe4edc4];return _0x317a13;};'use strict';var EventEmitter=require('events');var FaxMessage=require('../../mysqldb')['db']['FaxMessage'];var FaxMessageEvents=new EventEmitter();FaxMessageEvents[_0xadbf('0x0')](0x0);var events={'afterCreate':'save','afterUpdate':_0xadbf('0x1'),'afterDestroy':_0xadbf('0x2')};function emitEvent(_0x4d8c15){return function(_0x825f51,_0x34e95a,_0x2958a4){FaxMessageEvents[_0xadbf('0x3')](_0x4d8c15+':'+_0x825f51['id'],_0x825f51);FaxMessageEvents[_0xadbf('0x3')](_0x4d8c15,_0x825f51);_0x2958a4(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];FaxMessage[_0xadbf('0x4')](e,emitEvent(event));}}module[_0xadbf('0x5')]=FaxMessageEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x64ef=['FaxInteraction','then','update','createdAt','error','utf8mb4','utf8mb4_unicode_ci','util','../../config/logger','moment','request-promise','path','rimraf','./faxMessage.attributes','exports','define','FaxMessage','fax_messages','fti_fax_messages','FULLTEXT','models','get','direction','toLowerCase','secret','isNil','UserId'];(function(_0x59f02c,_0xdf391a){var _0x19f54c=function(_0x384d1c){while(--_0x384d1c){_0x59f02c['push'](_0x59f02c['shift']());}};_0x19f54c(++_0xdf391a);}(_0x64ef,0xc4));var _0xf64e=function(_0x50d3fa,_0x5f47dc){_0x50d3fa=_0x50d3fa-0x0;var _0x3f6983=_0x64ef[_0x50d3fa];return _0x3f6983;};'use strict';var _=require('lodash');var util=require(_0xf64e('0x0'));var logger=require(_0xf64e('0x1'))('api');var moment=require(_0xf64e('0x2'));var BPromise=require('bluebird');var rp=require(_0xf64e('0x3'));var fs=require('fs');var path=require(_0xf64e('0x4'));var rimraf=require(_0xf64e('0x5'));var config=require('../../config/environment');var attributes=require(_0xf64e('0x6'));module[_0xf64e('0x7')]=function(_0x1e49c8,_0x15a802){return _0x1e49c8[_0xf64e('0x8')](_0xf64e('0x9'),attributes,{'tableName':_0xf64e('0xa'),'paranoid':![],'indexes':[{'name':_0xf64e('0xb'),'fields':['body'],'type':_0xf64e('0xc')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x2422d8,_0x311713,_0x370f9f){var _0xd55373=_0x1e49c8[_0xf64e('0xd')];var _0x2c2aad=_0x2422d8[_0xf64e('0xe')]({'plain':!![]});if(_0x2c2aad[_0xf64e('0xf')][_0xf64e('0x10')]()==='in'||_0x2c2aad[_0xf64e('0xf')][_0xf64e('0x10')]()==='out'&&!_0x2c2aad[_0xf64e('0x11')]&&!_[_0xf64e('0x12')](_0x2c2aad[_0xf64e('0x13')])){_0xd55373[_0xf64e('0x14')]['findOne']({'where':{'id':_0x2c2aad['FaxInteractionId']}})[_0xf64e('0x15')](function(_0x409aec){if(_0x409aec){_0x409aec[_0xf64e('0x16')]({'lastMsgAt':_0x2c2aad[_0xf64e('0x17')],'lastMsgDirection':_0x2c2aad[_0xf64e('0xf')][_0xf64e('0x10')]()});}})['catch'](function(_0x2cceaf){console[_0xf64e('0x18')](_0x2cceaf);});}_0x370f9f();}},'charset':_0xf64e('0x19'),'collate':_0xf64e('0x1a')});};
\ No newline at end of file
+var _0x5a86=['error','utf8mb4_unicode_ci','util','moment','bluebird','request-promise','path','../../config/environment','./faxMessage.attributes','FaxMessage','fax_messages','fti_fax_messages','FULLTEXT','models','get','direction','toLowerCase','out','secret','FaxInteractionId','then','update','catch'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0x5a86,0x116));var _0x65a8=function(_0x8ce25e,_0x507b3a){_0x8ce25e=_0x8ce25e-0x0;var _0x48b1a7=_0x5a86[_0x8ce25e];return _0x48b1a7;};'use strict';var _=require('lodash');var util=require(_0x65a8('0x0'));var logger=require('../../config/logger')('api');var moment=require(_0x65a8('0x1'));var BPromise=require(_0x65a8('0x2'));var rp=require(_0x65a8('0x3'));var fs=require('fs');var path=require(_0x65a8('0x4'));var rimraf=require('rimraf');var config=require(_0x65a8('0x5'));var attributes=require(_0x65a8('0x6'));module['exports']=function(_0x47da67,_0x2aca23){return _0x47da67['define'](_0x65a8('0x7'),attributes,{'tableName':_0x65a8('0x8'),'paranoid':![],'indexes':[{'name':_0x65a8('0x9'),'fields':['body'],'type':_0x65a8('0xa')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x223056,_0x49ae3c,_0x1f4f46){var _0x45310d=_0x47da67[_0x65a8('0xb')];var _0x3c8d50=_0x223056[_0x65a8('0xc')]({'plain':!![]});if(_0x3c8d50[_0x65a8('0xd')][_0x65a8('0xe')]()==='in'||_0x3c8d50['direction'][_0x65a8('0xe')]()===_0x65a8('0xf')&&!_0x3c8d50[_0x65a8('0x10')]&&!_['isNil'](_0x3c8d50['UserId'])){_0x45310d['FaxInteraction']['findOne']({'where':{'id':_0x3c8d50[_0x65a8('0x11')]}})[_0x65a8('0x12')](function(_0x3cb633){if(_0x3cb633){_0x3cb633[_0x65a8('0x13')]({'lastMsgAt':_0x3c8d50['createdAt'],'lastMsgDirection':_0x3c8d50['direction'][_0x65a8('0xe')]()});}})[_0x65a8('0x14')](function(_0x429c32){console[_0x65a8('0x15')](_0x429c32);});}_0x1f4f46();}},'charset':'utf8mb4','collate':_0x65a8('0x16')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x00bb=['redis','defaults','localhost','socket.io-emitter','then','request\x20sent','debug','FaxMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','FaxMessage,\x20%s,\x20%s','CreateFaxMessage','FaxMessage','create','body','options','raw','catch','update','attributes','UpdateFaxMessage','lodash','util','moment','randomstring','../../mysqldb','../../config/utils','rpc','../../config/environment'];(function(_0x541e74,_0x220a6e){var _0x4f16ce=function(_0x39b23f){while(--_0x39b23f){_0x541e74['push'](_0x541e74['shift']());}};_0x4f16ce(++_0x220a6e);}(_0x00bb,0x1d8));var _0xb00b=function(_0x501510,_0x61caa9){_0x501510=_0x501510-0x0;var _0x1e6ee5=_0x00bb[_0x501510];return _0x1e6ee5;};'use strict';var _=require(_0xb00b('0x0'));var util=require(_0xb00b('0x1'));var moment=require(_0xb00b('0x2'));var BPromise=require('bluebird');var rs=require(_0xb00b('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xb00b('0x4'))['db'];var utils=require(_0xb00b('0x5'));var logger=require('../../config/logger')(_0xb00b('0x6'));var config=require(_0xb00b('0x7'));var jayson=require('jayson/promise');var client=jayson['client']['http']({'port':0x232a});config[_0xb00b('0x8')]=_[_0xb00b('0x9')](config[_0xb00b('0x8')],{'host':_0xb00b('0xa'),'port':0x18eb});var socket=require(_0xb00b('0xb'))(new Redis(config[_0xb00b('0x8')]));require('./faxMessage.socket')['register'](socket);function respondWithRpcPromise(_0x5154d9,_0x1e9b7b,_0x5851d4){return new BPromise(function(_0x46a25c,_0x28d3cc){return client['request'](_0x5154d9,_0x5851d4)[_0xb00b('0xc')](function(_0x5a63ed){logger['info']('FaxMessage,\x20%s,\x20%s',_0x1e9b7b,_0xb00b('0xd'));logger[_0xb00b('0xe')](_0xb00b('0xf'),_0x1e9b7b,_0xb00b('0xd'),JSON[_0xb00b('0x10')](_0x5a63ed));if(_0x5a63ed[_0xb00b('0x11')]){if(_0x5a63ed['error'][_0xb00b('0x12')]===0x1f4){logger[_0xb00b('0x11')]('FaxMessage,\x20%s,\x20%s',_0x1e9b7b,_0x5a63ed[_0xb00b('0x11')][_0xb00b('0x13')]);return _0x28d3cc(_0x5a63ed['error']['message']);}logger[_0xb00b('0x11')]('FaxMessage,\x20%s,\x20%s',_0x1e9b7b,_0x5a63ed['error'][_0xb00b('0x13')]);return _0x46a25c(_0x5a63ed[_0xb00b('0x11')][_0xb00b('0x13')]);}else{logger[_0xb00b('0x14')]('FaxMessage,\x20%s,\x20%s',_0x1e9b7b,_0xb00b('0xd'));_0x46a25c(_0x5a63ed['result'][_0xb00b('0x13')]);}})['catch'](function(_0x25d7a0){logger['error'](_0xb00b('0x15'),_0x1e9b7b,_0x25d7a0);_0x28d3cc(_0x25d7a0);});});}exports[_0xb00b('0x16')]=function(_0x53ee68){var _0x55770c=this;return new Promise(function(_0x2b0da1,_0x4a334b){return db[_0xb00b('0x17')][_0xb00b('0x18')](_0x53ee68[_0xb00b('0x19')],{'raw':_0x53ee68[_0xb00b('0x1a')]?_0x53ee68['options'][_0xb00b('0x1b')]===undefined?!![]:![]:!![]})['then'](function(_0x25a973){logger[_0xb00b('0x14')]('CreateFaxMessage',_0x53ee68);logger[_0xb00b('0xe')](_0xb00b('0x16'),_0x53ee68,JSON['stringify'](_0x25a973));_0x2b0da1(_0x25a973);})[_0xb00b('0x1c')](function(_0x1f04d3){logger['error'](_0xb00b('0x16'),_0x1f04d3[_0xb00b('0x13')],_0x53ee68);_0x4a334b(_0x55770c[_0xb00b('0x11')](0x1f4,_0x1f04d3[_0xb00b('0x13')]));});});};exports['UpdateFaxMessage']=function(_0x50be6c){var _0x3785e9=this;return new Promise(function(_0x490380,_0x550587){return db['FaxMessage'][_0xb00b('0x1d')](_0x50be6c[_0xb00b('0x19')],{'raw':_0x50be6c[_0xb00b('0x1a')]?_0x50be6c[_0xb00b('0x1a')][_0xb00b('0x1b')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x50be6c[_0xb00b('0x1a')]?_0x50be6c[_0xb00b('0x1a')]['where']||null:null,'attributes':_0x50be6c[_0xb00b('0x1a')]?_0x50be6c['options'][_0xb00b('0x1e')]||null:null,'limit':_0x50be6c[_0xb00b('0x1a')]?_0x50be6c[_0xb00b('0x1a')]['limit']||null:null})[_0xb00b('0xc')](function(_0x280ed3){logger[_0xb00b('0x14')](_0xb00b('0x1f'),_0x50be6c);logger[_0xb00b('0xe')](_0xb00b('0x1f'),_0x50be6c,JSON[_0xb00b('0x10')](_0x280ed3));_0x490380(_0x280ed3);})[_0xb00b('0x1c')](function(_0x149c1a){logger['error'](_0xb00b('0x1f'),_0x149c1a[_0xb00b('0x13')],_0x50be6c);_0x550587(_0x3785e9['error'](0x1f4,_0x149c1a[_0xb00b('0x13')]));});});};
\ No newline at end of file
+var _0x17ba=['CreateFaxMessage','FaxMessage','create','options','raw','info','UpdateFaxMessage','update','where','attributes','limit','lodash','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','./faxMessage.socket','register','request','then','FaxMessage,\x20%s,\x20%s','request\x20sent','debug','stringify','error','message','result','catch'];(function(_0x5e13df,_0x43fd3b){var _0x2cb25d=function(_0x562856){while(--_0x562856){_0x5e13df['push'](_0x5e13df['shift']());}};_0x2cb25d(++_0x43fd3b);}(_0x17ba,0xab));var _0xa17b=function(_0x434480,_0x229d69){_0x434480=_0x434480-0x0;var _0x2a41d7=_0x17ba[_0x434480];return _0x2a41d7;};'use strict';var _=require(_0xa17b('0x0'));var util=require(_0xa17b('0x1'));var moment=require('moment');var BPromise=require(_0xa17b('0x2'));var rs=require(_0xa17b('0x3'));var fs=require('fs');var Redis=require(_0xa17b('0x4'));var db=require(_0xa17b('0x5'))['db'];var utils=require(_0xa17b('0x6'));var logger=require(_0xa17b('0x7'))(_0xa17b('0x8'));var config=require(_0xa17b('0x9'));var jayson=require(_0xa17b('0xa'));var client=jayson[_0xa17b('0xb')][_0xa17b('0xc')]({'port':0x232a});config[_0xa17b('0xd')]=_[_0xa17b('0xe')](config[_0xa17b('0xd')],{'host':_0xa17b('0xf'),'port':0x18eb});var socket=require(_0xa17b('0x10'))(new Redis(config[_0xa17b('0xd')]));require(_0xa17b('0x11'))[_0xa17b('0x12')](socket);function respondWithRpcPromise(_0x578799,_0x2556c4,_0x38b8f1){return new BPromise(function(_0x322dc0,_0x1e799a){return client[_0xa17b('0x13')](_0x578799,_0x38b8f1)[_0xa17b('0x14')](function(_0xc5ef2e){logger['info'](_0xa17b('0x15'),_0x2556c4,_0xa17b('0x16'));logger[_0xa17b('0x17')]('FaxMessage,\x20%s,\x20%s,\x20%s',_0x2556c4,_0xa17b('0x16'),JSON[_0xa17b('0x18')](_0xc5ef2e));if(_0xc5ef2e[_0xa17b('0x19')]){if(_0xc5ef2e[_0xa17b('0x19')]['code']===0x1f4){logger[_0xa17b('0x19')]('FaxMessage,\x20%s,\x20%s',_0x2556c4,_0xc5ef2e[_0xa17b('0x19')][_0xa17b('0x1a')]);return _0x1e799a(_0xc5ef2e['error'][_0xa17b('0x1a')]);}logger[_0xa17b('0x19')](_0xa17b('0x15'),_0x2556c4,_0xc5ef2e[_0xa17b('0x19')]['message']);return _0x322dc0(_0xc5ef2e[_0xa17b('0x19')]['message']);}else{logger['info']('FaxMessage,\x20%s,\x20%s',_0x2556c4,_0xa17b('0x16'));_0x322dc0(_0xc5ef2e[_0xa17b('0x1b')]['message']);}})[_0xa17b('0x1c')](function(_0x166d44){logger[_0xa17b('0x19')](_0xa17b('0x15'),_0x2556c4,_0x166d44);_0x1e799a(_0x166d44);});});}exports[_0xa17b('0x1d')]=function(_0x1ecaa2){var _0x24afc2=this;return new Promise(function(_0x584a0a,_0x610c2b){return db[_0xa17b('0x1e')][_0xa17b('0x1f')](_0x1ecaa2['body'],{'raw':_0x1ecaa2[_0xa17b('0x20')]?_0x1ecaa2[_0xa17b('0x20')][_0xa17b('0x21')]===undefined?!![]:![]:!![]})[_0xa17b('0x14')](function(_0x3c7ec2){logger[_0xa17b('0x22')]('CreateFaxMessage',_0x1ecaa2);logger[_0xa17b('0x17')]('CreateFaxMessage',_0x1ecaa2,JSON[_0xa17b('0x18')](_0x3c7ec2));_0x584a0a(_0x3c7ec2);})[_0xa17b('0x1c')](function(_0x4ba608){logger['error'](_0xa17b('0x1d'),_0x4ba608[_0xa17b('0x1a')],_0x1ecaa2);_0x610c2b(_0x24afc2[_0xa17b('0x19')](0x1f4,_0x4ba608[_0xa17b('0x1a')]));});});};exports[_0xa17b('0x23')]=function(_0x3a64f5){var _0x4cd38e=this;return new Promise(function(_0x47aff8,_0x5c98fe){return db['FaxMessage'][_0xa17b('0x24')](_0x3a64f5['body'],{'raw':_0x3a64f5[_0xa17b('0x20')]?_0x3a64f5['options'][_0xa17b('0x21')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x3a64f5[_0xa17b('0x20')]?_0x3a64f5[_0xa17b('0x20')][_0xa17b('0x25')]||null:null,'attributes':_0x3a64f5[_0xa17b('0x20')]?_0x3a64f5[_0xa17b('0x20')][_0xa17b('0x26')]||null:null,'limit':_0x3a64f5[_0xa17b('0x20')]?_0x3a64f5[_0xa17b('0x20')][_0xa17b('0x27')]||null:null})[_0xa17b('0x14')](function(_0x573585){logger['info']('UpdateFaxMessage',_0x3a64f5);logger[_0xa17b('0x17')](_0xa17b('0x23'),_0x3a64f5,JSON[_0xa17b('0x18')](_0x573585));_0x47aff8(_0x573585);})[_0xa17b('0x1c')](function(_0x16dd1f){logger[_0xa17b('0x19')](_0xa17b('0x23'),_0x16dd1f[_0xa17b('0x1a')],_0x3a64f5);_0x5c98fe(_0x4cd38e['error'](0x1f4,_0x16dd1f[_0xa17b('0x1a')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe318=['removeListener','length','faxMessage:','./faxMessage.events','remove','emit'];(function(_0x4dc5d4,_0x84a1fc){var _0x373d54=function(_0x51bc12){while(--_0x51bc12){_0x4dc5d4['push'](_0x4dc5d4['shift']());}};_0x373d54(++_0x84a1fc);}(_0xe318,0xc9));var _0x8e31=function(_0x2b5de0,_0x668f64){_0x2b5de0=_0x2b5de0-0x0;var _0x458266=_0xe318[_0x2b5de0];return _0x458266;};'use strict';var FaxMessageEvents=require(_0x8e31('0x0'));var events=['save',_0x8e31('0x1'),'update'];function createListener(_0x3e6482,_0x4b86d9){return function(_0x219ed9){_0x4b86d9[_0x8e31('0x2')](_0x3e6482,_0x219ed9);};}function removeListener(_0x4161cb,_0x5f3c46){return function(){FaxMessageEvents[_0x8e31('0x3')](_0x4161cb,_0x5f3c46);};}exports['register']=function(_0x3cc3f4){for(var _0x2e1b89=0x0,_0x2afffe=events[_0x8e31('0x4')];_0x2e1b89<_0x2afffe;_0x2e1b89++){var _0x53d5c0=events[_0x2e1b89];var _0x7fe346=createListener(_0x8e31('0x5')+_0x53d5c0,_0x3cc3f4);FaxMessageEvents['on'](_0x53d5c0,_0x7fe346);}};
\ No newline at end of file
+var _0xdba9=['update','emit','register','length','faxMessage:','./faxMessage.events','save'];(function(_0x2d7494,_0x3fa5d6){var _0x84517a=function(_0x1221e7){while(--_0x1221e7){_0x2d7494['push'](_0x2d7494['shift']());}};_0x84517a(++_0x3fa5d6);}(_0xdba9,0x1da));var _0x9dba=function(_0x483ab9,_0x419148){_0x483ab9=_0x483ab9-0x0;var _0x35043b=_0xdba9[_0x483ab9];return _0x35043b;};'use strict';var FaxMessageEvents=require(_0x9dba('0x0'));var events=[_0x9dba('0x1'),'remove',_0x9dba('0x2')];function createListener(_0x1ba5c7,_0x1fbad9){return function(_0x44cfe0){_0x1fbad9[_0x9dba('0x3')](_0x1ba5c7,_0x44cfe0);};}function removeListener(_0x1a5fdb,_0x4513e0){return function(){FaxMessageEvents['removeListener'](_0x1a5fdb,_0x4513e0);};}exports[_0x9dba('0x4')]=function(_0x37f46a){for(var _0x2f5938=0x0,_0x172b0e=events[_0x9dba('0x5')];_0x2f5938<_0x172b0e;_0x2f5938++){var _0x2d9158=events[_0x2f5938];var _0xed4bf3=createListener(_0x9dba('0x6')+_0x2d9158,_0x37f46a);FaxMessageEvents['on'](_0x2d9158,_0xed4bf3);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x22fb=['destroy','exports','path','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./faxMessage.controller','get','isAuthenticated','index','/describe','describe','/:id','show','/:id/download','download','post','create','update','put','/:id/accept','accept','delete'];(function(_0x1d3577,_0x17a32e){var _0x277d9a=function(_0x4b4144){while(--_0x4b4144){_0x1d3577['push'](_0x1d3577['shift']());}};_0x277d9a(++_0x17a32e);}(_0x22fb,0x192));var _0xb22f=function(_0x9eaf50,_0x2ed1c6){_0x9eaf50=_0x9eaf50-0x0;var _0x3964a1=_0x22fb[_0x9eaf50];return _0x3964a1;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0xb22f('0x0'));var timeout=require('connect-timeout');var express=require(_0xb22f('0x1'));var router=express[_0xb22f('0x2')]();var fs_extra=require(_0xb22f('0x3'));var auth=require(_0xb22f('0x4'));var interaction=require(_0xb22f('0x5'));var config=require('../../config/environment');var controller=require(_0xb22f('0x6'));router[_0xb22f('0x7')]('/',auth[_0xb22f('0x8')](),controller[_0xb22f('0x9')]);router[_0xb22f('0x7')](_0xb22f('0xa'),auth['isAuthenticated'](),controller[_0xb22f('0xb')]);router[_0xb22f('0x7')](_0xb22f('0xc'),auth[_0xb22f('0x8')](),controller[_0xb22f('0xd')]);router[_0xb22f('0x7')](_0xb22f('0xe'),auth[_0xb22f('0x8')](),controller[_0xb22f('0xf')]);router[_0xb22f('0x10')]('/',auth[_0xb22f('0x8')](),interaction['tracked']('fax','faxmessage:create'),controller[_0xb22f('0x11')]);router['put']('/:id',auth['isAuthenticated'](),controller[_0xb22f('0x12')]);router[_0xb22f('0x13')](_0xb22f('0x14'),auth[_0xb22f('0x8')](),controller[_0xb22f('0x15')]);router[_0xb22f('0x13')]('/:id/reject',auth[_0xb22f('0x8')](),controller['reject']);router[_0xb22f('0x16')]('/:id',auth[_0xb22f('0x8')](),controller[_0xb22f('0x17')]);module[_0xb22f('0x18')]=router;
\ No newline at end of file
+var _0xee5b=['update','/:id/accept','accept','delete','destroy','exports','multer','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','get','isAuthenticated','index','show','/:id/download','download','post','tracked','fax','faxmessage:create','create','put','/:id'];(function(_0x5e6d13,_0x237f25){var _0x692d59=function(_0x4e4a24){while(--_0x4e4a24){_0x5e6d13['push'](_0x5e6d13['shift']());}};_0x692d59(++_0x237f25);}(_0xee5b,0x1f4));var _0xbee5=function(_0x5e9549,_0x487d45){_0x5e9549=_0x5e9549-0x0;var _0x4b9612=_0xee5b[_0x5e9549];return _0x4b9612;};'use strict';var multer=require(_0xbee5('0x0'));var util=require('util');var path=require(_0xbee5('0x1'));var timeout=require(_0xbee5('0x2'));var express=require('express');var router=express[_0xbee5('0x3')]();var fs_extra=require(_0xbee5('0x4'));var auth=require(_0xbee5('0x5'));var interaction=require(_0xbee5('0x6'));var config=require('../../config/environment');var controller=require('./faxMessage.controller');router[_0xbee5('0x7')]('/',auth[_0xbee5('0x8')](),controller[_0xbee5('0x9')]);router[_0xbee5('0x7')]('/describe',auth['isAuthenticated'](),controller['describe']);router['get']('/:id',auth[_0xbee5('0x8')](),controller[_0xbee5('0xa')]);router[_0xbee5('0x7')](_0xbee5('0xb'),auth['isAuthenticated'](),controller[_0xbee5('0xc')]);router[_0xbee5('0xd')]('/',auth[_0xbee5('0x8')](),interaction[_0xbee5('0xe')](_0xbee5('0xf'),_0xbee5('0x10')),controller[_0xbee5('0x11')]);router[_0xbee5('0x12')](_0xbee5('0x13'),auth['isAuthenticated'](),controller[_0xbee5('0x14')]);router['put'](_0xbee5('0x15'),auth[_0xbee5('0x8')](),controller[_0xbee5('0x16')]);router['put']('/:id/reject',auth[_0xbee5('0x8')](),controller['reject']);router[_0xbee5('0x17')]('/:id',auth[_0xbee5('0x8')](),controller[_0xbee5('0x18')]);module[_0xbee5('0x19')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x13aa=['exports','STRING','ENUM','rrmemory','beepall','INTEGER','sequelize'];(function(_0x3b380d,_0x4bf247){var _0x54502b=function(_0x35d207){while(--_0x35d207){_0x3b380d['push'](_0x3b380d['shift']());}};_0x54502b(++_0x4bf247);}(_0x13aa,0x1f0));var _0xa13a=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x13aa[_0x3dd15e];return _0x231fd0;};'use strict';var Sequelize=require(_0xa13a('0x0'));module[_0xa13a('0x1')]={'name':{'type':Sequelize[_0xa13a('0x2')],'unique':'name','allowNull':![],'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'description':{'type':Sequelize['STRING']},'timeout':{'type':Sequelize['INTEGER'],'allowNull':![],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize[_0xa13a('0x3')](_0xa13a('0x4'),_0xa13a('0x5'),'roundrobin'),'allowNull':![]},'lastAgent':{'type':Sequelize[_0xa13a('0x6')],'defaultValue':0x0}};
\ No newline at end of file
+var _0xdb83=['STRING','INTEGER','ENUM','beepall','roundrobin','sequelize'];(function(_0x39eb78,_0x56da9f){var _0x45ba21=function(_0x2b36cf){while(--_0x2b36cf){_0x39eb78['push'](_0x39eb78['shift']());}};_0x45ba21(++_0x56da9f);}(_0xdb83,0xc5));var _0x3db8=function(_0x3cd415,_0x260f17){_0x3cd415=_0x3cd415-0x0;var _0x38fdea=_0xdb83[_0x3cd415];return _0x38fdea;};'use strict';var Sequelize=require(_0x3db8('0x0'));module['exports']={'name':{'type':Sequelize[_0x3db8('0x1')],'unique':'name','allowNull':![],'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'description':{'type':Sequelize[_0x3db8('0x1')]},'timeout':{'type':Sequelize[_0x3db8('0x2')],'allowNull':![],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize[_0x3db8('0x3')]('rrmemory',_0x3db8('0x4'),_0x3db8('0x5')),'allowNull':![]},'lastAgent':{'type':Sequelize[_0x3db8('0x2')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1cdb=['format','%s/%s','getTeams','addTeams','ids','Team','online','voicePause','interface','flatMap','sequelize','findOrCreate','emit','userFaxQueue:save','Agents','select','field','from','team_has_fax_queues','join','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','clone','push','toString','QueryTypes','every','TeamId','includes','all','union','compact','value','transaction','removeTeams','isEmpty','forEach','addAgents','omit','spread','removeAgents','userFaxQueue:remove','getAgents','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','sox','fs-extra','lodash','squel','jsforce','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','socket.io-emitter','./faxQueue.socket','register','sendStatus','status','end','offset','limit','undefined','count','set','Content-Range','json','apply','reject','save','update','then','destroy','get','FaxQueues','UserProfileResource','error','name','send','map','FaxQueue','rawAttributes','fieldName','type','model','query','keys','attributes','intersection','fields','length','hasOwnProperty','nolimit','sort','pick','filters','where','VIRTUAL','filter','options','includeAll','include','findAll','rows','catch','show','params','merge','find','create','body','user','role','UserProfileSection','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','describe','getMembers','findOne','UserFaxQueue','order','FaxQueueId','User','findAndCountAll','UserId','faxPause','updatedAt','createdAt'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x1cdb,0xb9));var _0xb1cd=function(_0x2f3247,_0x5ab20e){_0x2f3247=_0x2f3247-0x0;var _0x3af2c0=_0x1cdb[_0x2f3247];return _0x3af2c0;};'use strict';var emlformat=require(_0xb1cd('0x0'));var rimraf=require(_0xb1cd('0x1'));var zipdir=require(_0xb1cd('0x2'));var jsonpatch=require(_0xb1cd('0x3'));var rp=require(_0xb1cd('0x4'));var moment=require('moment');var BPromise=require(_0xb1cd('0x5'));var Mustache=require(_0xb1cd('0x6'));var util=require(_0xb1cd('0x7'));var path=require('path');var sox=require(_0xb1cd('0x8'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xb1cd('0x9'));var _=require(_0xb1cd('0xa'));var squel=require(_0xb1cd('0xb'));var crypto=require('crypto');var jsforce=require(_0xb1cd('0xc'));var deskjs=require('desk.js');var toCsv=require(_0xb1cd('0xd'));var querystring=require(_0xb1cd('0xe'));var Papa=require(_0xb1cd('0xf'));var Redis=require(_0xb1cd('0x10'));var authService=require(_0xb1cd('0x11'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xb1cd('0x12'));var logger=require(_0xb1cd('0x13'))('api');var utils=require('../../config/utils');var config=require(_0xb1cd('0x14'));var licenseUtil=require(_0xb1cd('0x15'));var db=require(_0xb1cd('0x16'))['db'];config[_0xb1cd('0x17')]=_['defaults'](config[_0xb1cd('0x17')],{'host':_0xb1cd('0x18'),'port':0x18eb});var socket=require(_0xb1cd('0x19'))(new Redis(config[_0xb1cd('0x17')]));require(_0xb1cd('0x1a'))[_0xb1cd('0x1b')](socket);function respondWithStatusCode(_0x420362,_0x14e325){_0x14e325=_0x14e325||0xcc;return function(_0x25d246){if(_0x25d246){return _0x420362[_0xb1cd('0x1c')](_0x14e325);}return _0x420362[_0xb1cd('0x1d')](_0x14e325)[_0xb1cd('0x1e')]();};}function respondWithResult(_0x11925e,_0x4c2cbf){_0x4c2cbf=_0x4c2cbf||0xc8;return function(_0x11c59c){if(_0x11c59c){return _0x11925e['status'](_0x4c2cbf)['json'](_0x11c59c);}};}function respondWithFilteredResult(_0x5424fd,_0x37c927){return function(_0x500480){if(_0x500480){var _0x51e57c=typeof _0x37c927[_0xb1cd('0x1f')]==='undefined'&&typeof _0x37c927[_0xb1cd('0x20')]===_0xb1cd('0x21');var _0x5cc6b4=_0x500480[_0xb1cd('0x22')];var _0x1d85d9=_0x51e57c?0x0:_0x37c927[_0xb1cd('0x1f')];var _0x31cf43=_0x51e57c?_0x500480[_0xb1cd('0x22')]:_0x37c927[_0xb1cd('0x1f')]+_0x37c927[_0xb1cd('0x20')];var _0xbb8b58;if(_0x31cf43>=_0x5cc6b4){_0x31cf43=_0x5cc6b4;_0xbb8b58=0xc8;}else{_0xbb8b58=0xce;}_0x5424fd[_0xb1cd('0x1d')](_0xbb8b58);return _0x5424fd[_0xb1cd('0x23')](_0xb1cd('0x24'),_0x1d85d9+'-'+_0x31cf43+'/'+_0x5cc6b4)[_0xb1cd('0x25')](_0x500480);}return null;};}function patchUpdates(_0x36745c){return function(_0x250efa){try{jsonpatch[_0xb1cd('0x26')](_0x250efa,_0x36745c,!![]);}catch(_0x9f3325){return BPromise[_0xb1cd('0x27')](_0x9f3325);}return _0x250efa[_0xb1cd('0x28')]();};}function saveUpdates(_0x52cc3d,_0x2a140a){return function(_0x5987e6){if(_0x5987e6){return _0x5987e6[_0xb1cd('0x29')](_0x52cc3d)[_0xb1cd('0x2a')](function(_0x52834d){return _0x52834d;});}return null;};}function removeEntity(_0x36386b,_0x547196){return function(_0x4caa85){if(_0x4caa85){return _0x4caa85[_0xb1cd('0x2b')]()[_0xb1cd('0x2a')](function(){var _0x217336=_0x4caa85[_0xb1cd('0x2c')]({'plain':!![]});var _0x893e02=_0xb1cd('0x2d');return db[_0xb1cd('0x2e')]['destroy']({'where':{'type':_0x893e02,'resourceId':_0x217336['id']}})['then'](function(){return _0x4caa85;});})[_0xb1cd('0x2a')](function(){_0x36386b[_0xb1cd('0x1d')](0xcc)[_0xb1cd('0x1e')]();});}};}function handleEntityNotFound(_0x293de3,_0x5838a5){return function(_0x24a085){if(!_0x24a085){_0x293de3[_0xb1cd('0x1c')](0x194);}return _0x24a085;};}function handleError(_0x3478d4,_0x58189d){_0x58189d=_0x58189d||0x1f4;return function(_0x5106a4){logger[_0xb1cd('0x2f')](_0x5106a4['stack']);if(_0x5106a4[_0xb1cd('0x30')]){delete _0x5106a4[_0xb1cd('0x30')];}_0x3478d4['status'](_0x58189d)[_0xb1cd('0x31')](_0x5106a4);};}exports['index']=function(_0x423061,_0x5376cd){var _0x10124e={},_0xf22e1b={},_0x52c4cd={'count':0x0,'rows':[]};var _0x44dd38=_[_0xb1cd('0x32')](db[_0xb1cd('0x33')][_0xb1cd('0x34')],function(_0x34deae){return{'name':_0x34deae[_0xb1cd('0x35')],'type':_0x34deae[_0xb1cd('0x36')]['key']};});_0xf22e1b[_0xb1cd('0x37')]=_[_0xb1cd('0x32')](_0x44dd38,'name');_0xf22e1b[_0xb1cd('0x38')]=_[_0xb1cd('0x39')](_0x423061['query']);_0xf22e1b['filters']=_['intersection'](_0xf22e1b[_0xb1cd('0x37')],_0xf22e1b['query']);_0x10124e[_0xb1cd('0x3a')]=_[_0xb1cd('0x3b')](_0xf22e1b[_0xb1cd('0x37')],qs[_0xb1cd('0x3c')](_0x423061[_0xb1cd('0x38')][_0xb1cd('0x3c')]));_0x10124e[_0xb1cd('0x3a')]=_0x10124e[_0xb1cd('0x3a')][_0xb1cd('0x3d')]?_0x10124e['attributes']:_0xf22e1b[_0xb1cd('0x37')];if(!_0x423061[_0xb1cd('0x38')][_0xb1cd('0x3e')](_0xb1cd('0x3f'))){_0x10124e['limit']=qs[_0xb1cd('0x20')](_0x423061[_0xb1cd('0x38')]['limit']);_0x10124e[_0xb1cd('0x1f')]=qs[_0xb1cd('0x1f')](_0x423061['query'][_0xb1cd('0x1f')]);}_0x10124e['order']=qs[_0xb1cd('0x40')](_0x423061[_0xb1cd('0x38')][_0xb1cd('0x40')]);_0x10124e['where']=qs['filters'](_[_0xb1cd('0x41')](_0x423061['query'],_0xf22e1b[_0xb1cd('0x42')]),_0x44dd38);if(_0x423061[_0xb1cd('0x38')]['filter']){_0x10124e[_0xb1cd('0x43')]=_['merge'](_0x10124e[_0xb1cd('0x43')],{'$or':_[_0xb1cd('0x32')](_0x44dd38,function(_0x4bcc11){if(_0x4bcc11[_0xb1cd('0x36')]!==_0xb1cd('0x44')){var _0x2cc525={};_0x2cc525[_0x4bcc11[_0xb1cd('0x30')]]={'$like':'%'+_0x423061['query'][_0xb1cd('0x45')]+'%'};return _0x2cc525;}})});}_0x10124e=_['merge']({},_0x10124e,_0x423061[_0xb1cd('0x46')]);var _0x6d1be6={'where':_0x10124e[_0xb1cd('0x43')]};return db[_0xb1cd('0x33')][_0xb1cd('0x22')](_0x6d1be6)[_0xb1cd('0x2a')](function(_0x137829){_0x52c4cd[_0xb1cd('0x22')]=_0x137829;if(_0x423061[_0xb1cd('0x38')][_0xb1cd('0x47')]){_0x10124e[_0xb1cd('0x48')]=[{'all':!![]}];}return db[_0xb1cd('0x33')][_0xb1cd('0x49')](_0x10124e);})[_0xb1cd('0x2a')](function(_0xe5cc76){_0x52c4cd[_0xb1cd('0x4a')]=_0xe5cc76;return _0x52c4cd;})[_0xb1cd('0x2a')](respondWithFilteredResult(_0x5376cd,_0x10124e))[_0xb1cd('0x4b')](handleError(_0x5376cd,null));};exports[_0xb1cd('0x4c')]=function(_0x1f6a34,_0x1d3875){var _0x1d8ac7={'raw':!![],'where':{'id':_0x1f6a34[_0xb1cd('0x4d')]['id']}},_0x857983={};_0x857983[_0xb1cd('0x37')]=_[_0xb1cd('0x39')](db['FaxQueue'][_0xb1cd('0x34')]);_0x857983[_0xb1cd('0x38')]=_['keys'](_0x1f6a34['query']);_0x857983[_0xb1cd('0x42')]=_[_0xb1cd('0x3b')](_0x857983['model'],_0x857983['query']);_0x1d8ac7[_0xb1cd('0x3a')]=_['intersection'](_0x857983[_0xb1cd('0x37')],qs['fields'](_0x1f6a34['query'][_0xb1cd('0x3c')]));_0x1d8ac7[_0xb1cd('0x3a')]=_0x1d8ac7[_0xb1cd('0x3a')][_0xb1cd('0x3d')]?_0x1d8ac7[_0xb1cd('0x3a')]:_0x857983[_0xb1cd('0x37')];if(_0x1f6a34['query']['includeAll']){_0x1d8ac7[_0xb1cd('0x48')]=[{'all':!![]}];}_0x1d8ac7=_[_0xb1cd('0x4e')]({},_0x1d8ac7,_0x1f6a34[_0xb1cd('0x46')]);return db[_0xb1cd('0x33')][_0xb1cd('0x4f')](_0x1d8ac7)['then'](handleEntityNotFound(_0x1d3875,null))['then'](respondWithResult(_0x1d3875,null))['catch'](handleError(_0x1d3875,null));};exports[_0xb1cd('0x50')]=function(_0x38ae93,_0x43ff3a){return db[_0xb1cd('0x33')][_0xb1cd('0x50')](_0x38ae93[_0xb1cd('0x51')],{})['then'](function(_0x3e5986){var _0x5b3695=_0x38ae93[_0xb1cd('0x52')]['get']({'plain':!![]});if(!_0x5b3695)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x5b3695[_0xb1cd('0x53')]===_0xb1cd('0x52')){var _0x233d03=_0x3e5986[_0xb1cd('0x2c')]({'plain':!![]});var _0xb7b03b=_0xb1cd('0x2d');return db[_0xb1cd('0x54')][_0xb1cd('0x4f')]({'where':{'name':_0xb7b03b,'userProfileId':_0x5b3695[_0xb1cd('0x55')]},'raw':!![]})[_0xb1cd('0x2a')](function(_0x222e57){if(_0x222e57&&_0x222e57['autoAssociation']===0x0){return db['UserProfileResource'][_0xb1cd('0x50')]({'name':_0x233d03[_0xb1cd('0x30')],'resourceId':_0x233d03['id'],'type':_0x222e57['name'],'sectionId':_0x222e57['id']},{})['then'](function(){return _0x3e5986;});}else{return _0x3e5986;}})[_0xb1cd('0x4b')](function(_0x3c558b){logger[_0xb1cd('0x2f')](_0xb1cd('0x56'),_0x3c558b);throw _0x3c558b;});}return _0x3e5986;})['then'](respondWithResult(_0x43ff3a,0xc9))[_0xb1cd('0x4b')](handleError(_0x43ff3a,null));};exports['update']=function(_0x3c8992,_0x3b6556){if(_0x3c8992[_0xb1cd('0x51')]['id']){delete _0x3c8992[_0xb1cd('0x51')]['id'];}return db['FaxQueue'][_0xb1cd('0x4f')]({'where':{'id':_0x3c8992[_0xb1cd('0x4d')]['id']}})['then'](handleEntityNotFound(_0x3b6556,null))[_0xb1cd('0x2a')](saveUpdates(_0x3c8992[_0xb1cd('0x51')],null))[_0xb1cd('0x2a')](respondWithResult(_0x3b6556,null))[_0xb1cd('0x4b')](handleError(_0x3b6556,null));};exports[_0xb1cd('0x2b')]=function(_0x1a57c0,_0x33df23){return db[_0xb1cd('0x33')][_0xb1cd('0x4f')]({'where':{'id':_0x1a57c0[_0xb1cd('0x4d')]['id']}})['then'](handleEntityNotFound(_0x33df23,null))[_0xb1cd('0x2a')](removeEntity(_0x33df23,null))[_0xb1cd('0x4b')](handleError(_0x33df23,null));};exports[_0xb1cd('0x57')]=function(_0x3386dc,_0x2b6007){return db[_0xb1cd('0x33')]['describe']()[_0xb1cd('0x2a')](respondWithResult(_0x2b6007,null))['catch'](handleError(_0x2b6007,null));};exports[_0xb1cd('0x58')]=function(_0x59ff48,_0x192598,_0x37ecd9){var _0x49981b={'raw':!![],'where':{}},_0x170acd={},_0x302b4d;return db[_0xb1cd('0x33')][_0xb1cd('0x59')]({'where':{'id':_0x59ff48['params']['id']}})[_0xb1cd('0x2a')](handleEntityNotFound(_0x192598,null))['then'](function(_0x64e067){if(_0x64e067){_0x302b4d=_0x64e067[_0xb1cd('0x2c')]({'plain':!![]});_0x170acd[_0xb1cd('0x37')]=_[_0xb1cd('0x39')](db[_0xb1cd('0x5a')][_0xb1cd('0x34')]);_0x170acd[_0xb1cd('0x38')]=_['keys'](_0x59ff48['query']);_0x170acd[_0xb1cd('0x42')]=_[_0xb1cd('0x3b')](_0x170acd['model'],_0x170acd[_0xb1cd('0x38')]);_0x49981b[_0xb1cd('0x3a')]=_['intersection'](_0x170acd[_0xb1cd('0x37')],qs[_0xb1cd('0x3c')](_0x59ff48['query']['fields']));_0x49981b[_0xb1cd('0x3a')]=_0x49981b['attributes'][_0xb1cd('0x3d')]?_0x49981b[_0xb1cd('0x3a')]:_0x170acd[_0xb1cd('0x37')];if(!_0x59ff48['query'][_0xb1cd('0x3e')](_0xb1cd('0x3f'))){_0x49981b['limit']=qs[_0xb1cd('0x20')](_0x59ff48[_0xb1cd('0x38')][_0xb1cd('0x20')]);_0x49981b[_0xb1cd('0x1f')]=qs[_0xb1cd('0x1f')](_0x59ff48[_0xb1cd('0x38')][_0xb1cd('0x1f')]);}_0x49981b[_0xb1cd('0x5b')]=qs['sort'](_0x59ff48[_0xb1cd('0x38')][_0xb1cd('0x40')]);_0x49981b['where']=qs[_0xb1cd('0x42')](_[_0xb1cd('0x41')](_0x59ff48[_0xb1cd('0x38')],_0x170acd[_0xb1cd('0x42')]));_0x49981b[_0xb1cd('0x43')][_0xb1cd('0x5c')]=_0x64e067['id'];if(_0x59ff48[_0xb1cd('0x38')][_0xb1cd('0x45')]){_0x49981b[_0xb1cd('0x43')]=_[_0xb1cd('0x4e')](_0x49981b[_0xb1cd('0x43')],{'$or':_['map'](_0x49981b[_0xb1cd('0x3a')],function(_0x1e8a4e){var _0x1e3733={};_0x1e3733[_0x1e8a4e]={'$like':'%'+_0x59ff48[_0xb1cd('0x38')][_0xb1cd('0x45')]+'%'};return _0x1e3733;})});}_0x49981b=_[_0xb1cd('0x4e')]({},_0x49981b,_0x59ff48[_0xb1cd('0x46')]);return db[_0xb1cd('0x5a')]['findAll'](_0x49981b);}})['then'](function(_0x390a35){if(_0x390a35){return db[_0xb1cd('0x5d')][_0xb1cd('0x5e')]({'where':{'id':_[_0xb1cd('0x32')](_0x390a35,_0xb1cd('0x5f')),'role':'agent'},'attributes':['id',_0xb1cd('0x30'),_0xb1cd('0x60'),_0xb1cd('0x61'),_0xb1cd('0x62')]});}})['then'](function(_0x1849b3){if(_0x1849b3){return{'count':_0x1849b3[_0xb1cd('0x22')],'rows':_['map'](_0x1849b3[_0xb1cd('0x4a')],function(_0x33a6d6){return{'membername':_0x33a6d6[_0xb1cd('0x30')],'UserId':_0x33a6d6['id'],'queue_name':_0x302b4d[_0xb1cd('0x30')],'FaxQueueId':_0x302b4d['id'],'interface':util[_0xb1cd('0x63')](_0xb1cd('0x64'),'SIP',_0x33a6d6[_0xb1cd('0x30')]),'penalty':0x0,'paused':_0x33a6d6['faxPause'],'createdAt':_0x33a6d6['createdAt'],'updatedAt':_0x33a6d6[_0xb1cd('0x61')]};})};}else{return{'count':0x0,'rows':[]};}})['then'](respondWithFilteredResult(_0x192598,_0x49981b))[_0xb1cd('0x4b')](handleError(_0x192598,null));};exports['getTeams']=function(_0xa263ea,_0x2558ec,_0x473e54){var _0x3b039e={};var _0x2f5697={};var _0x15afc4;var _0x3f2196;return db[_0xb1cd('0x33')][_0xb1cd('0x59')]({'where':{'id':_0xa263ea[_0xb1cd('0x4d')]['id']}})['then'](handleEntityNotFound(_0x2558ec,null))[_0xb1cd('0x2a')](function(_0x279168){if(_0x279168){_0x15afc4=_0x279168;_0x2f5697['model']=_[_0xb1cd('0x39')](db['Team'][_0xb1cd('0x34')]);_0x2f5697['query']=_[_0xb1cd('0x39')](_0xa263ea[_0xb1cd('0x38')]);_0x2f5697[_0xb1cd('0x42')]=_[_0xb1cd('0x3b')](_0x2f5697['model'],_0x2f5697[_0xb1cd('0x38')]);_0x3b039e[_0xb1cd('0x3a')]=_['intersection'](_0x2f5697[_0xb1cd('0x37')],qs[_0xb1cd('0x3c')](_0xa263ea[_0xb1cd('0x38')][_0xb1cd('0x3c')]));_0x3b039e[_0xb1cd('0x3a')]=_0x3b039e['attributes']['length']?_0x3b039e[_0xb1cd('0x3a')]:_0x2f5697[_0xb1cd('0x37')];_0x3b039e[_0xb1cd('0x5b')]=qs['sort'](_0xa263ea[_0xb1cd('0x38')]['sort']);_0x3b039e[_0xb1cd('0x43')]=qs[_0xb1cd('0x42')](_[_0xb1cd('0x41')](_0xa263ea[_0xb1cd('0x38')],_0x2f5697['filters']));if(_0xa263ea[_0xb1cd('0x38')][_0xb1cd('0x45')]){_0x3b039e[_0xb1cd('0x43')]=_['merge'](_0x3b039e[_0xb1cd('0x43')],{'$or':_[_0xb1cd('0x32')](_0x3b039e[_0xb1cd('0x3a')],function(_0x22e9cb){var _0x573651={};_0x573651[_0x22e9cb]={'$like':'%'+_0xa263ea[_0xb1cd('0x38')][_0xb1cd('0x45')]+'%'};return _0x573651;})});}_0x3b039e=_['merge']({},_0x3b039e,_0xa263ea[_0xb1cd('0x46')]);return _0x15afc4[_0xb1cd('0x65')](_0x3b039e);}})[_0xb1cd('0x2a')](function(_0x444722){if(_0x444722){_0x3f2196=_0x444722['length'];if(!_0xa263ea[_0xb1cd('0x38')]['hasOwnProperty'](_0xb1cd('0x3f'))){_0x3b039e[_0xb1cd('0x20')]=qs[_0xb1cd('0x20')](_0xa263ea[_0xb1cd('0x38')][_0xb1cd('0x20')]);_0x3b039e['offset']=qs[_0xb1cd('0x1f')](_0xa263ea['query'][_0xb1cd('0x1f')]);}return _0x15afc4[_0xb1cd('0x65')](_0x3b039e);}})[_0xb1cd('0x2a')](function(_0x18a486){if(_0x18a486){return _0x18a486?{'count':_0x3f2196,'rows':_0x18a486}:null;}})[_0xb1cd('0x2a')](respondWithResult(_0x2558ec,null))[_0xb1cd('0x4b')](handleError(_0x2558ec,null));};exports[_0xb1cd('0x66')]=function(_0x582e58,_0x1acf3d,_0x69d775){var _0x5149c6=_0x582e58[_0xb1cd('0x51')][_0xb1cd('0x67')];return db[_0xb1cd('0x68')][_0xb1cd('0x49')]({'where':{'id':_0x5149c6},'attributes':['id'],'include':[{'model':db[_0xb1cd('0x5d')],'as':'Agents','attributes':['id',_0xb1cd('0x30'),_0xb1cd('0x69'),_0xb1cd('0x6a'),_0xb1cd('0x6b')],'raw':!![]}]})['then'](function(_0x2f95ef){if(_0x2f95ef){var _0x1430a3=_[_0xb1cd('0x6c')](_0x2f95ef,function(_0x5c62bb){var _0x344dbd=_0x5c62bb[_0xb1cd('0x2c')]({'plain':!![]});return _0x344dbd['Agents'];});return db[_0xb1cd('0x33')][_0xb1cd('0x4f')]({'where':{'id':_0x582e58[_0xb1cd('0x4d')]['id']}})[_0xb1cd('0x2a')](function(_0x57e6dc){return db[_0xb1cd('0x6d')]['transaction'](function(_0x873e23){return _0x57e6dc[_0xb1cd('0x66')](_0x5149c6,{'transaction':_0x873e23})[_0xb1cd('0x2a')](function(){return BPromise['each'](_0x1430a3,function(_0x308579){return db[_0xb1cd('0x5a')][_0xb1cd('0x6e')]({'where':{'UserId':_0x308579['id'],'FaxQueueId':_0x582e58['params']['id']},'transaction':_0x873e23});});})[_0xb1cd('0x2a')](function(){_0x1430a3['forEach'](function(_0x503cc1){socket[_0xb1cd('0x6f')](_0xb1cd('0x70'),{'UserId':_0x503cc1['id'],'FaxQueueId':_0x57e6dc['id']});});});});});}})[_0xb1cd('0x2a')](respondWithStatusCode(_0x1acf3d,null))[_0xb1cd('0x4b')](handleError(_0x1acf3d,null));};exports['removeTeams']=function(_0x52fb8a,_0x405293,_0x3b40a4){return db[_0xb1cd('0x68')][_0xb1cd('0x49')]({'where':{'id':_0x52fb8a[_0xb1cd('0x38')][_0xb1cd('0x67')]},'attributes':['id'],'include':[{'model':db['User'],'as':_0xb1cd('0x71'),'attributes':['id'],'raw':!![]}]})['then'](handleEntityNotFound(_0x405293,null))[_0xb1cd('0x2a')](function(_0x453640){var _0x4ce432=_[_0xb1cd('0x32')](_0x453640,'id');var _0x1a0fb7=[];var _0x5e0bbe=[];var _0x4c4420=squel[_0xb1cd('0x72')]();_0x4c4420[_0xb1cd('0x73')]('tq.TeamId')[_0xb1cd('0x74')](_0xb1cd('0x75'),'tq')[_0xb1cd('0x76')](_0xb1cd('0x77'),'ut',_0xb1cd('0x78'))[_0xb1cd('0x43')]('FaxQueueId\x20=\x20?',_0x52fb8a[_0xb1cd('0x4d')]['id']);for(var _0x217c79=0x0;_0x217c79<_0x453640[_0xb1cd('0x3d')];_0x217c79+=0x1){let _0x50a108=_0x453640[_0x217c79];for(var _0x3fe577=0x0;_0x3fe577<_0x50a108[_0xb1cd('0x71')]['length'];_0x3fe577+=0x1){let _0x476df7=_0x50a108[_0xb1cd('0x71')][_0x3fe577];var _0x39ccf4=_0x4c4420[_0xb1cd('0x79')]();_0x39ccf4['where']('ut.UserId\x20=\x20?',_0x476df7['id']);_0x5e0bbe[_0xb1cd('0x7a')](db[_0xb1cd('0x6d')][_0xb1cd('0x38')](_0x39ccf4[_0xb1cd('0x7b')](),{'type':db[_0xb1cd('0x6d')][_0xb1cd('0x7c')]['SELECT']})['then'](function(_0x542ed3){if(_0x542ed3[_0xb1cd('0x3d')]===0x1){return _0x476df7['id'];}else{var _0x2ab840=_[_0xb1cd('0x7d')](_[_0xb1cd('0x32')](_0x542ed3,_0xb1cd('0x7e')),function(_0x455213){return _[_0xb1cd('0x7f')](_0x4ce432,_0x455213);});if(_0x2ab840){return _0x476df7['id'];}}}));}}return BPromise[_0xb1cd('0x80')](_0x5e0bbe)['then'](function(_0x1dd18c){_0x1a0fb7=_(_0x1a0fb7)[_0xb1cd('0x81')](_0x1dd18c)[_0xb1cd('0x82')]()[_0xb1cd('0x83')]();return db[_0xb1cd('0x33')][_0xb1cd('0x4f')]({'where':{'id':_0x52fb8a[_0xb1cd('0x4d')]['id']}})[_0xb1cd('0x2a')](function(_0x17ed5f){return db[_0xb1cd('0x6d')][_0xb1cd('0x84')](function(_0xafd7d){return _0x17ed5f[_0xb1cd('0x85')](_0x52fb8a[_0xb1cd('0x38')][_0xb1cd('0x67')],{'transaction':_0xafd7d})[_0xb1cd('0x2a')](function(){if(!_[_0xb1cd('0x86')](_0x1a0fb7)){return _0x17ed5f['removeAgents'](_0x1a0fb7,{'transaction':_0xafd7d});}})[_0xb1cd('0x2a')](function(){_0x1a0fb7[_0xb1cd('0x87')](function(_0x3b71ea){socket[_0xb1cd('0x6f')]('userFaxQueue:remove',{'UserId':_0x3b71ea,'FaxQueueId':_0x17ed5f['id']});});});});});});})[_0xb1cd('0x2a')](respondWithStatusCode(_0x405293,null))[_0xb1cd('0x4b')](handleError(_0x405293,null));};exports['addAgents']=function(_0x129140,_0x2fc2b5,_0x4029ff){return db[_0xb1cd('0x33')][_0xb1cd('0x4f')]({'where':{'id':_0x129140[_0xb1cd('0x4d')]['id']}})[_0xb1cd('0x2a')](handleEntityNotFound(_0x2fc2b5,null))['then'](function(_0x79d970){if(_0x79d970){return _0x79d970[_0xb1cd('0x88')](_0x129140[_0xb1cd('0x51')][_0xb1cd('0x67')],_[_0xb1cd('0x89')](_0x129140[_0xb1cd('0x51')],['ids','id'])||{})[_0xb1cd('0x8a')](function(_0x4cbe7f){for(var _0x5bc6a5=0x0;_0x5bc6a5<_0x129140[_0xb1cd('0x51')][_0xb1cd('0x67')][_0xb1cd('0x3d')];_0x5bc6a5+=0x1){socket[_0xb1cd('0x6f')]('userFaxQueue:save',{'UserId':Number(_0x129140[_0xb1cd('0x51')]['ids'][_0x5bc6a5]),'FaxQueueId':Number(_0x129140[_0xb1cd('0x4d')]['id'])});}return _0x4cbe7f;});}})['then'](respondWithResult(_0x2fc2b5,null))[_0xb1cd('0x4b')](handleError(_0x2fc2b5,null));};exports[_0xb1cd('0x8b')]=function(_0xc9ab39,_0x2a4439,_0x4ae3c2){return db[_0xb1cd('0x33')][_0xb1cd('0x4f')]({'where':{'id':_0xc9ab39[_0xb1cd('0x4d')]['id']}})['then'](handleEntityNotFound(_0x2a4439,null))[_0xb1cd('0x2a')](function(_0x41a2a1){if(_0x41a2a1){return _0x41a2a1[_0xb1cd('0x8b')](_0xc9ab39[_0xb1cd('0x38')][_0xb1cd('0x67')])[_0xb1cd('0x2a')](function(){if(_['isArray'](_0xc9ab39[_0xb1cd('0x38')][_0xb1cd('0x67')])){for(var _0x2eae00=0x0;_0x2eae00<_0xc9ab39[_0xb1cd('0x38')][_0xb1cd('0x67')][_0xb1cd('0x3d')];_0x2eae00+=0x1){socket['emit'](_0xb1cd('0x8c'),{'UserId':Number(_0xc9ab39[_0xb1cd('0x38')][_0xb1cd('0x67')][_0x2eae00]),'FaxQueueId':Number(_0xc9ab39[_0xb1cd('0x4d')]['id'])});}}else{socket['emit'](_0xb1cd('0x8c'),{'UserId':Number(_0xc9ab39['query']['ids']),'FaxQueueId':Number(_0xc9ab39[_0xb1cd('0x4d')]['id'])});}});}})[_0xb1cd('0x2a')](respondWithStatusCode(_0x2a4439,null))[_0xb1cd('0x4b')](handleError(_0x2a4439,null));};exports[_0xb1cd('0x8d')]=function(_0x368722,_0x5a2d8f,_0x18a7d5){var _0x1da99d={};var _0x693181={};var _0x4530eb;var _0x474dac;return db[_0xb1cd('0x33')][_0xb1cd('0x59')]({'where':{'id':_0x368722['params']['id']}})[_0xb1cd('0x2a')](handleEntityNotFound(_0x5a2d8f,null))[_0xb1cd('0x2a')](function(_0x4a7dfa){if(_0x4a7dfa){_0x4530eb=_0x4a7dfa;_0x693181['model']=_['keys'](db[_0xb1cd('0x5d')][_0xb1cd('0x34')]);_0x693181[_0xb1cd('0x38')]=_['keys'](_0x368722['query']);_0x693181[_0xb1cd('0x42')]=_[_0xb1cd('0x3b')](_0x693181[_0xb1cd('0x37')],_0x693181[_0xb1cd('0x38')]);_0x1da99d['attributes']=_['intersection'](_0x693181[_0xb1cd('0x37')],qs['fields'](_0x368722[_0xb1cd('0x38')]['fields']));_0x1da99d['attributes']=_0x1da99d[_0xb1cd('0x3a')][_0xb1cd('0x3d')]?_0x1da99d[_0xb1cd('0x3a')]:_0x693181[_0xb1cd('0x37')];_0x1da99d[_0xb1cd('0x5b')]=qs[_0xb1cd('0x40')](_0x368722[_0xb1cd('0x38')][_0xb1cd('0x40')]);_0x1da99d[_0xb1cd('0x43')]=qs[_0xb1cd('0x42')](_[_0xb1cd('0x41')](_0x368722[_0xb1cd('0x38')],_0x693181[_0xb1cd('0x42')]));if(_0x368722[_0xb1cd('0x38')][_0xb1cd('0x45')]){_0x1da99d[_0xb1cd('0x43')]=_[_0xb1cd('0x4e')](_0x1da99d[_0xb1cd('0x43')],{'$or':_[_0xb1cd('0x32')](_0x1da99d[_0xb1cd('0x3a')],function(_0x13a679){var _0x266da6={};_0x266da6[_0x13a679]={'$like':'%'+_0x368722[_0xb1cd('0x38')][_0xb1cd('0x45')]+'%'};return _0x266da6;})});}_0x1da99d=_['merge']({},_0x1da99d,_0x368722['options']);return _0x4530eb[_0xb1cd('0x8d')](_0x1da99d);}})[_0xb1cd('0x2a')](function(_0x549ec6){if(_0x549ec6){_0x474dac=_0x549ec6[_0xb1cd('0x3d')];if(!_0x368722[_0xb1cd('0x38')][_0xb1cd('0x3e')](_0xb1cd('0x3f'))){_0x1da99d[_0xb1cd('0x20')]=qs[_0xb1cd('0x20')](_0x368722['query'][_0xb1cd('0x20')]);_0x1da99d[_0xb1cd('0x1f')]=qs[_0xb1cd('0x1f')](_0x368722[_0xb1cd('0x38')][_0xb1cd('0x1f')]);}return _0x4530eb[_0xb1cd('0x8d')](_0x1da99d);}})['then'](function(_0x2a8696){if(_0x2a8696){return _0x2a8696?{'count':_0x474dac,'rows':_0x2a8696}:null;}})[_0xb1cd('0x2a')](respondWithResult(_0x5a2d8f,null))[_0xb1cd('0x4b')](handleError(_0x5a2d8f,null));};
\ No newline at end of file
+var _0x508e=['../../config/license/util','../../mysqldb','redis','defaults','socket.io-emitter','./faxQueue.socket','register','sendStatus','status','end','offset','undefined','count','limit','set','Content-Range','json','save','update','then','destroy','get','FaxQueues','UserProfileResource','error','name','index','map','FaxQueue','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','nolimit','order','sort','where','filter','merge','VIRTUAL','options','includeAll','include','findAll','catch','params','length','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','findOne','UserFaxQueue','hasOwnProperty','pick','FaxQueueId','findAndCountAll','UserId','agent','faxPause','updatedAt','createdAt','rows','format','SIP','Team','getTeams','addTeams','ids','User','Agents','voicePause','flatMap','sequelize','each','findOrCreate','forEach','emit','userFaxQueue:save','removeTeams','select','field','from','team_has_fax_queues','join','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','FaxQueueId\x20=\x20?','clone','ut.UserId\x20=\x20?','toString','QueryTypes','SELECT','every','includes','all','union','compact','value','transaction','isEmpty','removeAgents','userFaxQueue:remove','addAgents','omit','spread','isArray','getAgents','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment'];(function(_0xa464c9,_0x7c86d8){var _0x3d73c4=function(_0x5c2056){while(--_0x5c2056){_0xa464c9['push'](_0xa464c9['shift']());}};_0x3d73c4(++_0x7c86d8);}(_0x508e,0x10f));var _0xe508=function(_0x466a71,_0x3ca9bc){_0x466a71=_0x466a71-0x0;var _0x1119b8=_0x508e[_0x466a71];return _0x1119b8;};'use strict';var emlformat=require(_0xe508('0x0'));var rimraf=require(_0xe508('0x1'));var zipdir=require(_0xe508('0x2'));var jsonpatch=require(_0xe508('0x3'));var rp=require('request-promise');var moment=require(_0xe508('0x4'));var BPromise=require(_0xe508('0x5'));var Mustache=require(_0xe508('0x6'));var util=require(_0xe508('0x7'));var path=require(_0xe508('0x8'));var sox=require(_0xe508('0x9'));var csv=require(_0xe508('0xa'));var ejs=require(_0xe508('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xe508('0xc'));var squel=require(_0xe508('0xd'));var crypto=require(_0xe508('0xe'));var jsforce=require('jsforce');var deskjs=require(_0xe508('0xf'));var toCsv=require(_0xe508('0xa'));var querystring=require(_0xe508('0x10'));var Papa=require(_0xe508('0x11'));var Redis=require(_0xe508('0x12'));var authService=require(_0xe508('0x13'));var qs=require('../../components/parsers/qs');var as=require(_0xe508('0x14'));var hardwareService=require(_0xe508('0x15'));var logger=require(_0xe508('0x16'))(_0xe508('0x17'));var utils=require('../../config/utils');var config=require(_0xe508('0x18'));var licenseUtil=require(_0xe508('0x19'));var db=require(_0xe508('0x1a'))['db'];config[_0xe508('0x1b')]=_[_0xe508('0x1c')](config[_0xe508('0x1b')],{'host':'localhost','port':0x18eb});var socket=require(_0xe508('0x1d'))(new Redis(config[_0xe508('0x1b')]));require(_0xe508('0x1e'))[_0xe508('0x1f')](socket);function respondWithStatusCode(_0x42ed7d,_0x416c18){_0x416c18=_0x416c18||0xcc;return function(_0x6f7384){if(_0x6f7384){return _0x42ed7d[_0xe508('0x20')](_0x416c18);}return _0x42ed7d[_0xe508('0x21')](_0x416c18)[_0xe508('0x22')]();};}function respondWithResult(_0x43d4ad,_0x5e5622){_0x5e5622=_0x5e5622||0xc8;return function(_0x4d9993){if(_0x4d9993){return _0x43d4ad['status'](_0x5e5622)['json'](_0x4d9993);}};}function respondWithFilteredResult(_0x5d3c80,_0x5528dd){return function(_0x14d982){if(_0x14d982){var _0x34910c=typeof _0x5528dd[_0xe508('0x23')]===_0xe508('0x24')&&typeof _0x5528dd['limit']===_0xe508('0x24');var _0x577182=_0x14d982['count'];var _0x272a1b=_0x34910c?0x0:_0x5528dd[_0xe508('0x23')];var _0x441f95=_0x34910c?_0x14d982[_0xe508('0x25')]:_0x5528dd[_0xe508('0x23')]+_0x5528dd[_0xe508('0x26')];var _0x3f8201;if(_0x441f95>=_0x577182){_0x441f95=_0x577182;_0x3f8201=0xc8;}else{_0x3f8201=0xce;}_0x5d3c80[_0xe508('0x21')](_0x3f8201);return _0x5d3c80[_0xe508('0x27')](_0xe508('0x28'),_0x272a1b+'-'+_0x441f95+'/'+_0x577182)[_0xe508('0x29')](_0x14d982);}return null;};}function patchUpdates(_0x77fd6d){return function(_0x5373ae){try{jsonpatch['apply'](_0x5373ae,_0x77fd6d,!![]);}catch(_0x503b93){return BPromise['reject'](_0x503b93);}return _0x5373ae[_0xe508('0x2a')]();};}function saveUpdates(_0x41e6ee,_0x360be4){return function(_0x11dbad){if(_0x11dbad){return _0x11dbad[_0xe508('0x2b')](_0x41e6ee)[_0xe508('0x2c')](function(_0x2eb0a5){return _0x2eb0a5;});}return null;};}function removeEntity(_0x1fefac,_0x5124e2){return function(_0x594b87){if(_0x594b87){return _0x594b87[_0xe508('0x2d')]()[_0xe508('0x2c')](function(){var _0x50674b=_0x594b87[_0xe508('0x2e')]({'plain':!![]});var _0x30952b=_0xe508('0x2f');return db[_0xe508('0x30')][_0xe508('0x2d')]({'where':{'type':_0x30952b,'resourceId':_0x50674b['id']}})['then'](function(){return _0x594b87;});})[_0xe508('0x2c')](function(){_0x1fefac['status'](0xcc)[_0xe508('0x22')]();});}};}function handleEntityNotFound(_0x4f48b0,_0x2b6b68){return function(_0x2839fa){if(!_0x2839fa){_0x4f48b0[_0xe508('0x20')](0x194);}return _0x2839fa;};}function handleError(_0x16c581,_0x5ce5ba){_0x5ce5ba=_0x5ce5ba||0x1f4;return function(_0x4a9355){logger[_0xe508('0x31')](_0x4a9355['stack']);if(_0x4a9355['name']){delete _0x4a9355[_0xe508('0x32')];}_0x16c581[_0xe508('0x21')](_0x5ce5ba)['send'](_0x4a9355);};}exports[_0xe508('0x33')]=function(_0x132130,_0x34e596){var _0x272181={},_0x25c35e={},_0x63da36={'count':0x0,'rows':[]};var _0x158933=_[_0xe508('0x34')](db[_0xe508('0x35')][_0xe508('0x36')],function(_0xcdfceb){return{'name':_0xcdfceb[_0xe508('0x37')],'type':_0xcdfceb[_0xe508('0x38')][_0xe508('0x39')]};});_0x25c35e[_0xe508('0x3a')]=_['map'](_0x158933,_0xe508('0x32'));_0x25c35e[_0xe508('0x3b')]=_[_0xe508('0x3c')](_0x132130[_0xe508('0x3b')]);_0x25c35e[_0xe508('0x3d')]=_[_0xe508('0x3e')](_0x25c35e[_0xe508('0x3a')],_0x25c35e[_0xe508('0x3b')]);_0x272181[_0xe508('0x3f')]=_['intersection'](_0x25c35e['model'],qs[_0xe508('0x40')](_0x132130[_0xe508('0x3b')][_0xe508('0x40')]));_0x272181[_0xe508('0x3f')]=_0x272181[_0xe508('0x3f')]['length']?_0x272181[_0xe508('0x3f')]:_0x25c35e[_0xe508('0x3a')];if(!_0x132130['query']['hasOwnProperty'](_0xe508('0x41'))){_0x272181[_0xe508('0x26')]=qs['limit'](_0x132130[_0xe508('0x3b')][_0xe508('0x26')]);_0x272181[_0xe508('0x23')]=qs[_0xe508('0x23')](_0x132130[_0xe508('0x3b')][_0xe508('0x23')]);}_0x272181[_0xe508('0x42')]=qs['sort'](_0x132130[_0xe508('0x3b')][_0xe508('0x43')]);_0x272181[_0xe508('0x44')]=qs[_0xe508('0x3d')](_['pick'](_0x132130[_0xe508('0x3b')],_0x25c35e['filters']),_0x158933);if(_0x132130[_0xe508('0x3b')][_0xe508('0x45')]){_0x272181['where']=_[_0xe508('0x46')](_0x272181[_0xe508('0x44')],{'$or':_[_0xe508('0x34')](_0x158933,function(_0x17702f){if(_0x17702f[_0xe508('0x38')]!==_0xe508('0x47')){var _0x196ea3={};_0x196ea3[_0x17702f[_0xe508('0x32')]]={'$like':'%'+_0x132130[_0xe508('0x3b')][_0xe508('0x45')]+'%'};return _0x196ea3;}})});}_0x272181=_['merge']({},_0x272181,_0x132130[_0xe508('0x48')]);var _0x3312fa={'where':_0x272181[_0xe508('0x44')]};return db[_0xe508('0x35')][_0xe508('0x25')](_0x3312fa)['then'](function(_0x53ebba){_0x63da36['count']=_0x53ebba;if(_0x132130[_0xe508('0x3b')][_0xe508('0x49')]){_0x272181[_0xe508('0x4a')]=[{'all':!![]}];}return db[_0xe508('0x35')][_0xe508('0x4b')](_0x272181);})[_0xe508('0x2c')](function(_0x4cc71e){_0x63da36['rows']=_0x4cc71e;return _0x63da36;})[_0xe508('0x2c')](respondWithFilteredResult(_0x34e596,_0x272181))[_0xe508('0x4c')](handleError(_0x34e596,null));};exports['show']=function(_0x4967f1,_0x390d9d){var _0x879623={'raw':!![],'where':{'id':_0x4967f1[_0xe508('0x4d')]['id']}},_0xc6389c={};_0xc6389c[_0xe508('0x3a')]=_[_0xe508('0x3c')](db[_0xe508('0x35')][_0xe508('0x36')]);_0xc6389c['query']=_['keys'](_0x4967f1[_0xe508('0x3b')]);_0xc6389c['filters']=_[_0xe508('0x3e')](_0xc6389c[_0xe508('0x3a')],_0xc6389c[_0xe508('0x3b')]);_0x879623[_0xe508('0x3f')]=_[_0xe508('0x3e')](_0xc6389c[_0xe508('0x3a')],qs['fields'](_0x4967f1['query'][_0xe508('0x40')]));_0x879623[_0xe508('0x3f')]=_0x879623[_0xe508('0x3f')][_0xe508('0x4e')]?_0x879623['attributes']:_0xc6389c[_0xe508('0x3a')];if(_0x4967f1[_0xe508('0x3b')]['includeAll']){_0x879623[_0xe508('0x4a')]=[{'all':!![]}];}_0x879623=_['merge']({},_0x879623,_0x4967f1[_0xe508('0x48')]);return db[_0xe508('0x35')][_0xe508('0x4f')](_0x879623)[_0xe508('0x2c')](handleEntityNotFound(_0x390d9d,null))[_0xe508('0x2c')](respondWithResult(_0x390d9d,null))[_0xe508('0x4c')](handleError(_0x390d9d,null));};exports[_0xe508('0x50')]=function(_0x389978,_0x135284){return db[_0xe508('0x35')]['create'](_0x389978[_0xe508('0x51')],{})[_0xe508('0x2c')](function(_0x354364){var _0x25e7ad=_0x389978[_0xe508('0x52')][_0xe508('0x2e')]({'plain':!![]});if(!_0x25e7ad)throw new Error(_0xe508('0x53'));if(_0x25e7ad[_0xe508('0x54')]===_0xe508('0x52')){var _0x5500de=_0x354364[_0xe508('0x2e')]({'plain':!![]});var _0x1cd5b8=_0xe508('0x2f');return db[_0xe508('0x55')][_0xe508('0x4f')]({'where':{'name':_0x1cd5b8,'userProfileId':_0x25e7ad[_0xe508('0x56')]},'raw':!![]})[_0xe508('0x2c')](function(_0xed64db){if(_0xed64db&&_0xed64db[_0xe508('0x57')]===0x0){return db[_0xe508('0x30')]['create']({'name':_0x5500de[_0xe508('0x32')],'resourceId':_0x5500de['id'],'type':_0xed64db['name'],'sectionId':_0xed64db['id']},{})['then'](function(){return _0x354364;});}else{return _0x354364;}})[_0xe508('0x4c')](function(_0x3be725){logger[_0xe508('0x31')](_0xe508('0x58'),_0x3be725);throw _0x3be725;});}return _0x354364;})[_0xe508('0x2c')](respondWithResult(_0x135284,0xc9))[_0xe508('0x4c')](handleError(_0x135284,null));};exports[_0xe508('0x2b')]=function(_0x20feb7,_0x272f01){if(_0x20feb7[_0xe508('0x51')]['id']){delete _0x20feb7[_0xe508('0x51')]['id'];}return db[_0xe508('0x35')][_0xe508('0x4f')]({'where':{'id':_0x20feb7['params']['id']}})[_0xe508('0x2c')](handleEntityNotFound(_0x272f01,null))['then'](saveUpdates(_0x20feb7['body'],null))['then'](respondWithResult(_0x272f01,null))['catch'](handleError(_0x272f01,null));};exports[_0xe508('0x2d')]=function(_0x42a7a7,_0xe6218a){return db[_0xe508('0x35')][_0xe508('0x4f')]({'where':{'id':_0x42a7a7[_0xe508('0x4d')]['id']}})['then'](handleEntityNotFound(_0xe6218a,null))[_0xe508('0x2c')](removeEntity(_0xe6218a,null))[_0xe508('0x4c')](handleError(_0xe6218a,null));};exports['describe']=function(_0x1e44a3,_0x3828e9){return db[_0xe508('0x35')][_0xe508('0x59')]()[_0xe508('0x2c')](respondWithResult(_0x3828e9,null))[_0xe508('0x4c')](handleError(_0x3828e9,null));};exports[_0xe508('0x5a')]=function(_0x41d76a,_0xf013c,_0x4b3ff0){var _0x5f5421={'raw':!![],'where':{}},_0x4fd535={},_0x5f448f;return db[_0xe508('0x35')][_0xe508('0x5b')]({'where':{'id':_0x41d76a[_0xe508('0x4d')]['id']}})[_0xe508('0x2c')](handleEntityNotFound(_0xf013c,null))['then'](function(_0x17ac38){if(_0x17ac38){_0x5f448f=_0x17ac38[_0xe508('0x2e')]({'plain':!![]});_0x4fd535['model']=_[_0xe508('0x3c')](db[_0xe508('0x5c')][_0xe508('0x36')]);_0x4fd535[_0xe508('0x3b')]=_[_0xe508('0x3c')](_0x41d76a[_0xe508('0x3b')]);_0x4fd535['filters']=_[_0xe508('0x3e')](_0x4fd535[_0xe508('0x3a')],_0x4fd535[_0xe508('0x3b')]);_0x5f5421[_0xe508('0x3f')]=_[_0xe508('0x3e')](_0x4fd535[_0xe508('0x3a')],qs[_0xe508('0x40')](_0x41d76a['query']['fields']));_0x5f5421[_0xe508('0x3f')]=_0x5f5421[_0xe508('0x3f')][_0xe508('0x4e')]?_0x5f5421['attributes']:_0x4fd535[_0xe508('0x3a')];if(!_0x41d76a[_0xe508('0x3b')][_0xe508('0x5d')](_0xe508('0x41'))){_0x5f5421[_0xe508('0x26')]=qs['limit'](_0x41d76a[_0xe508('0x3b')][_0xe508('0x26')]);_0x5f5421[_0xe508('0x23')]=qs[_0xe508('0x23')](_0x41d76a['query'][_0xe508('0x23')]);}_0x5f5421[_0xe508('0x42')]=qs[_0xe508('0x43')](_0x41d76a['query'][_0xe508('0x43')]);_0x5f5421['where']=qs[_0xe508('0x3d')](_[_0xe508('0x5e')](_0x41d76a[_0xe508('0x3b')],_0x4fd535['filters']));_0x5f5421[_0xe508('0x44')][_0xe508('0x5f')]=_0x17ac38['id'];if(_0x41d76a['query'][_0xe508('0x45')]){_0x5f5421[_0xe508('0x44')]=_['merge'](_0x5f5421[_0xe508('0x44')],{'$or':_[_0xe508('0x34')](_0x5f5421[_0xe508('0x3f')],function(_0x18ddea){var _0x50a91e={};_0x50a91e[_0x18ddea]={'$like':'%'+_0x41d76a['query'][_0xe508('0x45')]+'%'};return _0x50a91e;})});}_0x5f5421=_[_0xe508('0x46')]({},_0x5f5421,_0x41d76a[_0xe508('0x48')]);return db[_0xe508('0x5c')][_0xe508('0x4b')](_0x5f5421);}})['then'](function(_0x1ad4fc){if(_0x1ad4fc){return db['User'][_0xe508('0x60')]({'where':{'id':_[_0xe508('0x34')](_0x1ad4fc,_0xe508('0x61')),'role':_0xe508('0x62')},'attributes':['id',_0xe508('0x32'),_0xe508('0x63'),_0xe508('0x64'),_0xe508('0x65')]});}})[_0xe508('0x2c')](function(_0x4e93f3){if(_0x4e93f3){return{'count':_0x4e93f3[_0xe508('0x25')],'rows':_[_0xe508('0x34')](_0x4e93f3[_0xe508('0x66')],function(_0x4cfa91){return{'membername':_0x4cfa91['name'],'UserId':_0x4cfa91['id'],'queue_name':_0x5f448f[_0xe508('0x32')],'FaxQueueId':_0x5f448f['id'],'interface':util[_0xe508('0x67')]('%s/%s',_0xe508('0x68'),_0x4cfa91[_0xe508('0x32')]),'penalty':0x0,'paused':_0x4cfa91[_0xe508('0x63')],'createdAt':_0x4cfa91[_0xe508('0x65')],'updatedAt':_0x4cfa91['updatedAt']};})};}else{return{'count':0x0,'rows':[]};}})['then'](respondWithFilteredResult(_0xf013c,_0x5f5421))[_0xe508('0x4c')](handleError(_0xf013c,null));};exports['getTeams']=function(_0x289426,_0x415ca3,_0x2bdbfd){var _0x5269a3={};var _0x54de5d={};var _0x54347f;var _0x1cd369;return db['FaxQueue']['findOne']({'where':{'id':_0x289426['params']['id']}})[_0xe508('0x2c')](handleEntityNotFound(_0x415ca3,null))['then'](function(_0x5dc22b){if(_0x5dc22b){_0x54347f=_0x5dc22b;_0x54de5d[_0xe508('0x3a')]=_[_0xe508('0x3c')](db[_0xe508('0x69')][_0xe508('0x36')]);_0x54de5d[_0xe508('0x3b')]=_[_0xe508('0x3c')](_0x289426[_0xe508('0x3b')]);_0x54de5d[_0xe508('0x3d')]=_[_0xe508('0x3e')](_0x54de5d[_0xe508('0x3a')],_0x54de5d[_0xe508('0x3b')]);_0x5269a3[_0xe508('0x3f')]=_['intersection'](_0x54de5d[_0xe508('0x3a')],qs['fields'](_0x289426[_0xe508('0x3b')][_0xe508('0x40')]));_0x5269a3['attributes']=_0x5269a3[_0xe508('0x3f')][_0xe508('0x4e')]?_0x5269a3[_0xe508('0x3f')]:_0x54de5d[_0xe508('0x3a')];_0x5269a3[_0xe508('0x42')]=qs[_0xe508('0x43')](_0x289426[_0xe508('0x3b')][_0xe508('0x43')]);_0x5269a3['where']=qs[_0xe508('0x3d')](_[_0xe508('0x5e')](_0x289426[_0xe508('0x3b')],_0x54de5d[_0xe508('0x3d')]));if(_0x289426[_0xe508('0x3b')][_0xe508('0x45')]){_0x5269a3[_0xe508('0x44')]=_['merge'](_0x5269a3[_0xe508('0x44')],{'$or':_[_0xe508('0x34')](_0x5269a3[_0xe508('0x3f')],function(_0x30c102){var _0x5cba8a={};_0x5cba8a[_0x30c102]={'$like':'%'+_0x289426[_0xe508('0x3b')]['filter']+'%'};return _0x5cba8a;})});}_0x5269a3=_[_0xe508('0x46')]({},_0x5269a3,_0x289426['options']);return _0x54347f[_0xe508('0x6a')](_0x5269a3);}})[_0xe508('0x2c')](function(_0x402091){if(_0x402091){_0x1cd369=_0x402091[_0xe508('0x4e')];if(!_0x289426[_0xe508('0x3b')][_0xe508('0x5d')](_0xe508('0x41'))){_0x5269a3[_0xe508('0x26')]=qs[_0xe508('0x26')](_0x289426[_0xe508('0x3b')][_0xe508('0x26')]);_0x5269a3[_0xe508('0x23')]=qs[_0xe508('0x23')](_0x289426['query'][_0xe508('0x23')]);}return _0x54347f[_0xe508('0x6a')](_0x5269a3);}})[_0xe508('0x2c')](function(_0x5ab57b){if(_0x5ab57b){return _0x5ab57b?{'count':_0x1cd369,'rows':_0x5ab57b}:null;}})[_0xe508('0x2c')](respondWithResult(_0x415ca3,null))[_0xe508('0x4c')](handleError(_0x415ca3,null));};exports[_0xe508('0x6b')]=function(_0x4171b5,_0x3bbac3,_0x37b1a5){var _0xdec83c=_0x4171b5['body'][_0xe508('0x6c')];return db[_0xe508('0x69')][_0xe508('0x4b')]({'where':{'id':_0xdec83c},'attributes':['id'],'include':[{'model':db[_0xe508('0x6d')],'as':_0xe508('0x6e'),'attributes':['id',_0xe508('0x32'),'online',_0xe508('0x6f'),'interface'],'raw':!![]}]})['then'](function(_0x5c48e5){if(_0x5c48e5){var _0x162c44=_[_0xe508('0x70')](_0x5c48e5,function(_0x3295f2){var _0x1ccb1d=_0x3295f2[_0xe508('0x2e')]({'plain':!![]});return _0x1ccb1d[_0xe508('0x6e')];});return db['FaxQueue'][_0xe508('0x4f')]({'where':{'id':_0x4171b5[_0xe508('0x4d')]['id']}})[_0xe508('0x2c')](function(_0x2582b2){return db[_0xe508('0x71')]['transaction'](function(_0x88ea81){return _0x2582b2[_0xe508('0x6b')](_0xdec83c,{'transaction':_0x88ea81})[_0xe508('0x2c')](function(){return BPromise[_0xe508('0x72')](_0x162c44,function(_0x579e64){return db[_0xe508('0x5c')][_0xe508('0x73')]({'where':{'UserId':_0x579e64['id'],'FaxQueueId':_0x4171b5[_0xe508('0x4d')]['id']},'transaction':_0x88ea81});});})['then'](function(){_0x162c44[_0xe508('0x74')](function(_0x2b37df){socket[_0xe508('0x75')](_0xe508('0x76'),{'UserId':_0x2b37df['id'],'FaxQueueId':_0x2582b2['id']});});});});});}})[_0xe508('0x2c')](respondWithStatusCode(_0x3bbac3,null))[_0xe508('0x4c')](handleError(_0x3bbac3,null));};exports[_0xe508('0x77')]=function(_0x39b260,_0x580122,_0x330f1b){return db[_0xe508('0x69')][_0xe508('0x4b')]({'where':{'id':_0x39b260[_0xe508('0x3b')]['ids']},'attributes':['id'],'include':[{'model':db[_0xe508('0x6d')],'as':_0xe508('0x6e'),'attributes':['id'],'raw':!![]}]})[_0xe508('0x2c')](handleEntityNotFound(_0x580122,null))[_0xe508('0x2c')](function(_0x1f9f83){var _0x19321a=_[_0xe508('0x34')](_0x1f9f83,'id');var _0x2b1fae=[];var _0x48a1e2=[];var _0x504837=squel[_0xe508('0x78')]();_0x504837[_0xe508('0x79')]('tq.TeamId')[_0xe508('0x7a')](_0xe508('0x7b'),'tq')[_0xe508('0x7c')](_0xe508('0x7d'),'ut',_0xe508('0x7e'))[_0xe508('0x44')](_0xe508('0x7f'),_0x39b260[_0xe508('0x4d')]['id']);for(var _0x244603=0x0;_0x244603<_0x1f9f83[_0xe508('0x4e')];_0x244603+=0x1){let _0x8cb2fa=_0x1f9f83[_0x244603];for(var _0x47dd23=0x0;_0x47dd23<_0x8cb2fa[_0xe508('0x6e')][_0xe508('0x4e')];_0x47dd23+=0x1){let _0x2d21e5=_0x8cb2fa[_0xe508('0x6e')][_0x47dd23];var _0x8f69a2=_0x504837[_0xe508('0x80')]();_0x8f69a2[_0xe508('0x44')](_0xe508('0x81'),_0x2d21e5['id']);_0x48a1e2['push'](db[_0xe508('0x71')][_0xe508('0x3b')](_0x8f69a2[_0xe508('0x82')](),{'type':db[_0xe508('0x71')][_0xe508('0x83')][_0xe508('0x84')]})['then'](function(_0x447734){if(_0x447734[_0xe508('0x4e')]===0x1){return _0x2d21e5['id'];}else{var _0x22941b=_[_0xe508('0x85')](_[_0xe508('0x34')](_0x447734,'TeamId'),function(_0x3d7f6a){return _[_0xe508('0x86')](_0x19321a,_0x3d7f6a);});if(_0x22941b){return _0x2d21e5['id'];}}}));}}return BPromise[_0xe508('0x87')](_0x48a1e2)[_0xe508('0x2c')](function(_0x106b08){_0x2b1fae=_(_0x2b1fae)[_0xe508('0x88')](_0x106b08)[_0xe508('0x89')]()[_0xe508('0x8a')]();return db[_0xe508('0x35')]['find']({'where':{'id':_0x39b260[_0xe508('0x4d')]['id']}})[_0xe508('0x2c')](function(_0x1b9350){return db[_0xe508('0x71')][_0xe508('0x8b')](function(_0x438ff8){return _0x1b9350[_0xe508('0x77')](_0x39b260[_0xe508('0x3b')][_0xe508('0x6c')],{'transaction':_0x438ff8})[_0xe508('0x2c')](function(){if(!_[_0xe508('0x8c')](_0x2b1fae)){return _0x1b9350[_0xe508('0x8d')](_0x2b1fae,{'transaction':_0x438ff8});}})[_0xe508('0x2c')](function(){_0x2b1fae[_0xe508('0x74')](function(_0x11c83a){socket['emit'](_0xe508('0x8e'),{'UserId':_0x11c83a,'FaxQueueId':_0x1b9350['id']});});});});});});})[_0xe508('0x2c')](respondWithStatusCode(_0x580122,null))[_0xe508('0x4c')](handleError(_0x580122,null));};exports[_0xe508('0x8f')]=function(_0x3289f0,_0x58b63e,_0x585469){return db[_0xe508('0x35')][_0xe508('0x4f')]({'where':{'id':_0x3289f0[_0xe508('0x4d')]['id']}})[_0xe508('0x2c')](handleEntityNotFound(_0x58b63e,null))['then'](function(_0x2b375c){if(_0x2b375c){return _0x2b375c['addAgents'](_0x3289f0[_0xe508('0x51')][_0xe508('0x6c')],_[_0xe508('0x90')](_0x3289f0[_0xe508('0x51')],[_0xe508('0x6c'),'id'])||{})[_0xe508('0x91')](function(_0x3c6b27){for(var _0x525d0c=0x0;_0x525d0c<_0x3289f0[_0xe508('0x51')][_0xe508('0x6c')][_0xe508('0x4e')];_0x525d0c+=0x1){socket[_0xe508('0x75')](_0xe508('0x76'),{'UserId':Number(_0x3289f0[_0xe508('0x51')][_0xe508('0x6c')][_0x525d0c]),'FaxQueueId':Number(_0x3289f0[_0xe508('0x4d')]['id'])});}return _0x3c6b27;});}})[_0xe508('0x2c')](respondWithResult(_0x58b63e,null))[_0xe508('0x4c')](handleError(_0x58b63e,null));};exports[_0xe508('0x8d')]=function(_0xf63916,_0x12d1ba,_0x384e9d){return db[_0xe508('0x35')][_0xe508('0x4f')]({'where':{'id':_0xf63916[_0xe508('0x4d')]['id']}})[_0xe508('0x2c')](handleEntityNotFound(_0x12d1ba,null))[_0xe508('0x2c')](function(_0x40bdaf){if(_0x40bdaf){return _0x40bdaf['removeAgents'](_0xf63916[_0xe508('0x3b')][_0xe508('0x6c')])[_0xe508('0x2c')](function(){if(_[_0xe508('0x92')](_0xf63916['query']['ids'])){for(var _0x519d77=0x0;_0x519d77<_0xf63916[_0xe508('0x3b')][_0xe508('0x6c')][_0xe508('0x4e')];_0x519d77+=0x1){socket[_0xe508('0x75')](_0xe508('0x8e'),{'UserId':Number(_0xf63916[_0xe508('0x3b')]['ids'][_0x519d77]),'FaxQueueId':Number(_0xf63916[_0xe508('0x4d')]['id'])});}}else{socket[_0xe508('0x75')](_0xe508('0x8e'),{'UserId':Number(_0xf63916[_0xe508('0x3b')]['ids']),'FaxQueueId':Number(_0xf63916[_0xe508('0x4d')]['id'])});}});}})[_0xe508('0x2c')](respondWithStatusCode(_0x12d1ba,null))[_0xe508('0x4c')](handleError(_0x12d1ba,null));};exports[_0xe508('0x93')]=function(_0x43f729,_0x380a32,_0x374520){var _0x13e9df={};var _0x21c950={};var _0x212734;var _0x3e14a6;return db[_0xe508('0x35')][_0xe508('0x5b')]({'where':{'id':_0x43f729['params']['id']}})[_0xe508('0x2c')](handleEntityNotFound(_0x380a32,null))[_0xe508('0x2c')](function(_0x5ec8b1){if(_0x5ec8b1){_0x212734=_0x5ec8b1;_0x21c950['model']=_[_0xe508('0x3c')](db[_0xe508('0x6d')][_0xe508('0x36')]);_0x21c950['query']=_[_0xe508('0x3c')](_0x43f729['query']);_0x21c950[_0xe508('0x3d')]=_[_0xe508('0x3e')](_0x21c950[_0xe508('0x3a')],_0x21c950[_0xe508('0x3b')]);_0x13e9df[_0xe508('0x3f')]=_[_0xe508('0x3e')](_0x21c950['model'],qs[_0xe508('0x40')](_0x43f729[_0xe508('0x3b')]['fields']));_0x13e9df[_0xe508('0x3f')]=_0x13e9df[_0xe508('0x3f')][_0xe508('0x4e')]?_0x13e9df[_0xe508('0x3f')]:_0x21c950[_0xe508('0x3a')];_0x13e9df['order']=qs[_0xe508('0x43')](_0x43f729[_0xe508('0x3b')][_0xe508('0x43')]);_0x13e9df[_0xe508('0x44')]=qs[_0xe508('0x3d')](_[_0xe508('0x5e')](_0x43f729[_0xe508('0x3b')],_0x21c950['filters']));if(_0x43f729['query'][_0xe508('0x45')]){_0x13e9df[_0xe508('0x44')]=_['merge'](_0x13e9df[_0xe508('0x44')],{'$or':_[_0xe508('0x34')](_0x13e9df[_0xe508('0x3f')],function(_0x56ffbb){var _0x31aeab={};_0x31aeab[_0x56ffbb]={'$like':'%'+_0x43f729[_0xe508('0x3b')][_0xe508('0x45')]+'%'};return _0x31aeab;})});}_0x13e9df=_[_0xe508('0x46')]({},_0x13e9df,_0x43f729[_0xe508('0x48')]);return _0x212734[_0xe508('0x93')](_0x13e9df);}})[_0xe508('0x2c')](function(_0x208e5b){if(_0x208e5b){_0x3e14a6=_0x208e5b[_0xe508('0x4e')];if(!_0x43f729['query'][_0xe508('0x5d')](_0xe508('0x41'))){_0x13e9df['limit']=qs[_0xe508('0x26')](_0x43f729[_0xe508('0x3b')][_0xe508('0x26')]);_0x13e9df['offset']=qs[_0xe508('0x23')](_0x43f729[_0xe508('0x3b')][_0xe508('0x23')]);}return _0x212734[_0xe508('0x93')](_0x13e9df);}})[_0xe508('0x2c')](function(_0x3c8de6){if(_0x3c8de6){return _0x3c8de6?{'count':_0x3e14a6,'rows':_0x3c8de6}:null;}})['then'](respondWithResult(_0x380a32,null))[_0xe508('0x4c')](handleError(_0x380a32,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x423c=['update','remove','emit','hasOwnProperty','hook','exports','../../mysqldb','FaxQueue'];(function(_0x4f6e79,_0xe6685f){var _0x2efe5c=function(_0x2cbcae){while(--_0x2cbcae){_0x4f6e79['push'](_0x4f6e79['shift']());}};_0x2efe5c(++_0xe6685f);}(_0x423c,0x19e));var _0xc423=function(_0x4a747d,_0x3b747f){_0x4a747d=_0x4a747d-0x0;var _0x3a5b5c=_0x423c[_0x4a747d];return _0x3a5b5c;};'use strict';var EventEmitter=require('events');var FaxQueue=require(_0xc423('0x0'))['db'][_0xc423('0x1')];var FaxQueueEvents=new EventEmitter();FaxQueueEvents['setMaxListeners'](0x0);var events={'afterCreate':'save','afterUpdate':_0xc423('0x2'),'afterDestroy':_0xc423('0x3')};function emitEvent(_0x45ed07){return function(_0x52224a,_0x296fa8,_0x416df3){FaxQueueEvents[_0xc423('0x4')](_0x45ed07+':'+_0x52224a['id'],_0x52224a);FaxQueueEvents[_0xc423('0x4')](_0x45ed07,_0x52224a);_0x416df3(null);};}for(var e in events){if(events[_0xc423('0x5')](e)){var event=events[e];FaxQueue[_0xc423('0x6')](e,emitEvent(event));}}module[_0xc423('0x7')]=FaxQueueEvents;
\ No newline at end of file
+var _0xc2be=['emit','hasOwnProperty','events','../../mysqldb','FaxQueue','update','remove'];(function(_0x3955ec,_0x3337ea){var _0x36dc80=function(_0x3b2264){while(--_0x3b2264){_0x3955ec['push'](_0x3955ec['shift']());}};_0x36dc80(++_0x3337ea);}(_0xc2be,0x64));var _0xec2b=function(_0x5625e4,_0x211bb2){_0x5625e4=_0x5625e4-0x0;var _0x16b519=_0xc2be[_0x5625e4];return _0x16b519;};'use strict';var EventEmitter=require(_0xec2b('0x0'));var FaxQueue=require(_0xec2b('0x1'))['db'][_0xec2b('0x2')];var FaxQueueEvents=new EventEmitter();FaxQueueEvents['setMaxListeners'](0x0);var events={'afterCreate':'save','afterUpdate':_0xec2b('0x3'),'afterDestroy':_0xec2b('0x4')};function emitEvent(_0x26e019){return function(_0x4398ae,_0x48e48b,_0x59fc23){FaxQueueEvents[_0xec2b('0x5')](_0x26e019+':'+_0x4398ae['id'],_0x4398ae);FaxQueueEvents[_0xec2b('0x5')](_0x26e019,_0x4398ae);_0x59fc23(null);};}for(var e in events){if(events[_0xec2b('0x6')](e)){var event=events[e];FaxQueue['hook'](e,emitEvent(event));}}module['exports']=FaxQueueEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe272=['exports','define','FaxQueue','api','moment','bluebird','rimraf','../../config/environment'];(function(_0x2f34b7,_0x209cc1){var _0x243176=function(_0x9052ce){while(--_0x9052ce){_0x2f34b7['push'](_0x2f34b7['shift']());}};_0x243176(++_0x209cc1);}(_0xe272,0xc3));var _0x2e27=function(_0x6c993a,_0x5ea3ab){_0x6c993a=_0x6c993a-0x0;var _0x27f547=_0xe272[_0x6c993a];return _0x27f547;};'use strict';var _=require('lodash');var util=require('util');var logger=require('../../config/logger')(_0x2e27('0x0'));var moment=require(_0x2e27('0x1'));var BPromise=require(_0x2e27('0x2'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0x2e27('0x3'));var config=require(_0x2e27('0x4'));var attributes=require('./faxQueue.attributes');module[_0x2e27('0x5')]=function(_0x3c8272,_0x2c4fa6){return _0x3c8272[_0x2e27('0x6')](_0x2e27('0x7'),attributes,{'tableName':'fax_queues','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x88b5=['bluebird','request-promise','path','rimraf','fax_queues','lodash','util','api','moment'];(function(_0x397e5f,_0x454c8f){var _0x5302b8=function(_0x1a29ef){while(--_0x1a29ef){_0x397e5f['push'](_0x397e5f['shift']());}};_0x5302b8(++_0x454c8f);}(_0x88b5,0x176));var _0x588b=function(_0x23e0b4,_0x3dc1ea){_0x23e0b4=_0x23e0b4-0x0;var _0x1f8050=_0x88b5[_0x23e0b4];return _0x1f8050;};'use strict';var _=require(_0x588b('0x0'));var util=require(_0x588b('0x1'));var logger=require('../../config/logger')(_0x588b('0x2'));var moment=require(_0x588b('0x3'));var BPromise=require(_0x588b('0x4'));var rp=require(_0x588b('0x5'));var fs=require('fs');var path=require(_0x588b('0x6'));var rimraf=require(_0x588b('0x7'));var config=require('../../config/environment');var attributes=require('./faxQueue.attributes');module['exports']=function(_0x385349,_0x544cd1){return _0x385349['define']('FaxQueue',attributes,{'tableName':_0x588b('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb2f8=['limit','include','map','model','attributes','GetFaxQueue','catch','ShowFaxQueue','lodash','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','client','http','redis','socket.io-emitter','./faxQueue.socket','register','request','then','info','FaxQueue,\x20%s,\x20%s','debug','FaxQueue,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','FaxQueue','findAll','options','raw','where'];(function(_0x1c757d,_0x24f3f6){var _0x206437=function(_0x146791){while(--_0x146791){_0x1c757d['push'](_0x1c757d['shift']());}};_0x206437(++_0x24f3f6);}(_0xb2f8,0x150));var _0x8b2f=function(_0x584291,_0x24b5b3){_0x584291=_0x584291-0x0;var _0x4e7d08=_0xb2f8[_0x584291];return _0x4e7d08;};'use strict';var _=require(_0x8b2f('0x0'));var util=require(_0x8b2f('0x1'));var moment=require('moment');var BPromise=require(_0x8b2f('0x2'));var rs=require(_0x8b2f('0x3'));var fs=require('fs');var Redis=require(_0x8b2f('0x4'));var db=require(_0x8b2f('0x5'))['db'];var utils=require(_0x8b2f('0x6'));var logger=require('../../config/logger')(_0x8b2f('0x7'));var config=require(_0x8b2f('0x8'));var jayson=require(_0x8b2f('0x9'));var client=jayson[_0x8b2f('0xa')][_0x8b2f('0xb')]({'port':0x232a});config[_0x8b2f('0xc')]=_['defaults'](config[_0x8b2f('0xc')],{'host':'localhost','port':0x18eb});var socket=require(_0x8b2f('0xd'))(new Redis(config[_0x8b2f('0xc')]));require(_0x8b2f('0xe'))[_0x8b2f('0xf')](socket);function respondWithRpcPromise(_0x51af4e,_0x19df38,_0x11e9c8){return new BPromise(function(_0x9c9df8,_0x17b2f5){return client[_0x8b2f('0x10')](_0x51af4e,_0x11e9c8)[_0x8b2f('0x11')](function(_0x2f3561){logger[_0x8b2f('0x12')](_0x8b2f('0x13'),_0x19df38,'request\x20sent');logger[_0x8b2f('0x14')](_0x8b2f('0x15'),_0x19df38,_0x8b2f('0x16'),JSON[_0x8b2f('0x17')](_0x2f3561));if(_0x2f3561['error']){if(_0x2f3561[_0x8b2f('0x18')][_0x8b2f('0x19')]===0x1f4){logger[_0x8b2f('0x18')](_0x8b2f('0x13'),_0x19df38,_0x2f3561['error'][_0x8b2f('0x1a')]);return _0x17b2f5(_0x2f3561[_0x8b2f('0x18')][_0x8b2f('0x1a')]);}logger[_0x8b2f('0x18')](_0x8b2f('0x13'),_0x19df38,_0x2f3561[_0x8b2f('0x18')][_0x8b2f('0x1a')]);return _0x9c9df8(_0x2f3561[_0x8b2f('0x18')][_0x8b2f('0x1a')]);}else{logger[_0x8b2f('0x12')]('FaxQueue,\x20%s,\x20%s',_0x19df38,_0x8b2f('0x16'));_0x9c9df8(_0x2f3561[_0x8b2f('0x1b')][_0x8b2f('0x1a')]);}})['catch'](function(_0x26f1a6){logger[_0x8b2f('0x18')]('FaxQueue,\x20%s,\x20%s',_0x19df38,_0x26f1a6);_0x17b2f5(_0x26f1a6);});});}exports['GetFaxQueue']=function(_0x3e9b32){var _0x51cafc=this;return new Promise(function(_0x2a47a7,_0x41919e){return db[_0x8b2f('0x1c')][_0x8b2f('0x1d')]({'raw':_0x3e9b32[_0x8b2f('0x1e')]?_0x3e9b32['options'][_0x8b2f('0x1f')]===undefined?!![]:![]:!![],'where':_0x3e9b32[_0x8b2f('0x1e')]?_0x3e9b32[_0x8b2f('0x1e')][_0x8b2f('0x20')]||null:null,'attributes':_0x3e9b32[_0x8b2f('0x1e')]?_0x3e9b32[_0x8b2f('0x1e')]['attributes']||null:null,'limit':_0x3e9b32[_0x8b2f('0x1e')]?_0x3e9b32[_0x8b2f('0x1e')][_0x8b2f('0x21')]||null:null,'include':_0x3e9b32[_0x8b2f('0x1e')]?_0x3e9b32[_0x8b2f('0x1e')][_0x8b2f('0x22')]?_[_0x8b2f('0x23')](_0x3e9b32[_0x8b2f('0x1e')][_0x8b2f('0x22')],function(_0x2622e1){return{'model':db[_0x2622e1[_0x8b2f('0x24')]],'as':_0x2622e1['as'],'attributes':_0x2622e1[_0x8b2f('0x25')],'include':_0x2622e1[_0x8b2f('0x22')]?_[_0x8b2f('0x23')](_0x2622e1[_0x8b2f('0x22')],function(_0x694aea){return{'model':db[_0x694aea['model']],'as':_0x694aea['as'],'attributes':_0x694aea[_0x8b2f('0x25')],'include':_0x694aea[_0x8b2f('0x22')]?_[_0x8b2f('0x23')](_0x694aea[_0x8b2f('0x22')],function(_0x128e1a){return{'model':db[_0x128e1a[_0x8b2f('0x24')]],'as':_0x128e1a['as'],'attributes':_0x128e1a[_0x8b2f('0x25')]};}):[]};}):[]};}):[]:[]})[_0x8b2f('0x11')](function(_0x2c92f0){logger[_0x8b2f('0x12')](_0x8b2f('0x26'),_0x3e9b32);logger[_0x8b2f('0x14')](_0x8b2f('0x26'),_0x3e9b32,JSON[_0x8b2f('0x17')](_0x2c92f0));_0x2a47a7(_0x2c92f0);})[_0x8b2f('0x27')](function(_0x1142a2){logger[_0x8b2f('0x18')](_0x8b2f('0x26'),_0x1142a2[_0x8b2f('0x1a')],_0x3e9b32);_0x41919e(_0x51cafc[_0x8b2f('0x18')](0x1f4,_0x1142a2[_0x8b2f('0x1a')]));});});};exports[_0x8b2f('0x28')]=function(_0x1bc971){var _0x3518e7=this;return new Promise(function(_0x5db853,_0x4614cc){return db[_0x8b2f('0x1c')]['find']({'raw':_0x1bc971[_0x8b2f('0x1e')]?_0x1bc971[_0x8b2f('0x1e')]['raw']===undefined?!![]:![]:!![],'where':_0x1bc971[_0x8b2f('0x1e')]?_0x1bc971['options']['where']||null:null,'attributes':_0x1bc971[_0x8b2f('0x1e')]?_0x1bc971[_0x8b2f('0x1e')][_0x8b2f('0x25')]||null:null,'include':_0x1bc971[_0x8b2f('0x1e')]?_0x1bc971[_0x8b2f('0x1e')]['include']?_['map'](_0x1bc971[_0x8b2f('0x1e')][_0x8b2f('0x22')],function(_0x40b279){return{'model':db[_0x40b279[_0x8b2f('0x24')]],'as':_0x40b279['as'],'attributes':_0x40b279[_0x8b2f('0x25')],'include':_0x40b279[_0x8b2f('0x22')]?_[_0x8b2f('0x23')](_0x40b279[_0x8b2f('0x22')],function(_0x515738){return{'model':db[_0x515738[_0x8b2f('0x24')]],'as':_0x515738['as'],'attributes':_0x515738[_0x8b2f('0x25')],'include':_0x515738[_0x8b2f('0x22')]?_[_0x8b2f('0x23')](_0x515738['include'],function(_0x4f80c0){return{'model':db[_0x4f80c0[_0x8b2f('0x24')]],'as':_0x4f80c0['as'],'attributes':_0x4f80c0['attributes']};}):[]};}):[]};}):[]:[]})[_0x8b2f('0x11')](function(_0x10dde2){logger['info'](_0x8b2f('0x28'),_0x1bc971);logger[_0x8b2f('0x14')](_0x8b2f('0x28'),_0x1bc971,JSON['stringify'](_0x10dde2));_0x5db853(_0x10dde2);})[_0x8b2f('0x27')](function(_0x2f4ab4){logger['error'](_0x8b2f('0x28'),_0x2f4ab4[_0x8b2f('0x1a')],_0x1bc971);_0x4614cc(_0x3518e7[_0x8b2f('0x18')](0x1f4,_0x2f4ab4['message']));});});};
\ No newline at end of file
+var _0x448d=['then','FaxQueue','find','ShowFaxQueue','lodash','util','moment','bluebird','randomstring','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','socket.io-emitter','./faxQueue.socket','request','info','FaxQueue,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','catch','GetFaxQueue','findAll','options','where','include','attributes','map','model'];(function(_0x58ac3f,_0x190d30){var _0x327bc0=function(_0x595a8c){while(--_0x595a8c){_0x58ac3f['push'](_0x58ac3f['shift']());}};_0x327bc0(++_0x190d30);}(_0x448d,0x98));var _0xd448=function(_0xbd8644,_0x2cce9a){_0xbd8644=_0xbd8644-0x0;var _0x26a14f=_0x448d[_0xbd8644];return _0x26a14f;};'use strict';var _=require(_0xd448('0x0'));var util=require(_0xd448('0x1'));var moment=require(_0xd448('0x2'));var BPromise=require(_0xd448('0x3'));var rs=require(_0xd448('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0xd448('0x5'))(_0xd448('0x6'));var config=require(_0xd448('0x7'));var jayson=require(_0xd448('0x8'));var client=jayson[_0xd448('0x9')][_0xd448('0xa')]({'port':0x232a});config[_0xd448('0xb')]=_['defaults'](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0xd448('0xc'))(new Redis(config['redis']));require(_0xd448('0xd'))['register'](socket);function respondWithRpcPromise(_0x1c7af3,_0x54a2a0,_0x28cede){return new BPromise(function(_0x4ee6aa,_0x1880f4){return client[_0xd448('0xe')](_0x1c7af3,_0x28cede)['then'](function(_0x47a091){logger[_0xd448('0xf')](_0xd448('0x10'),_0x54a2a0,_0xd448('0x11'));logger[_0xd448('0x12')]('FaxQueue,\x20%s,\x20%s,\x20%s',_0x54a2a0,_0xd448('0x11'),JSON[_0xd448('0x13')](_0x47a091));if(_0x47a091[_0xd448('0x14')]){if(_0x47a091['error'][_0xd448('0x15')]===0x1f4){logger[_0xd448('0x14')](_0xd448('0x10'),_0x54a2a0,_0x47a091[_0xd448('0x14')]['message']);return _0x1880f4(_0x47a091[_0xd448('0x14')][_0xd448('0x16')]);}logger['error'](_0xd448('0x10'),_0x54a2a0,_0x47a091[_0xd448('0x14')][_0xd448('0x16')]);return _0x4ee6aa(_0x47a091['error'][_0xd448('0x16')]);}else{logger[_0xd448('0xf')](_0xd448('0x10'),_0x54a2a0,_0xd448('0x11'));_0x4ee6aa(_0x47a091[_0xd448('0x17')][_0xd448('0x16')]);}})[_0xd448('0x18')](function(_0x1dc679){logger[_0xd448('0x14')](_0xd448('0x10'),_0x54a2a0,_0x1dc679);_0x1880f4(_0x1dc679);});});}exports[_0xd448('0x19')]=function(_0x20c53f){var _0x41e043=this;return new Promise(function(_0x4a6769,_0xac14af){return db['FaxQueue'][_0xd448('0x1a')]({'raw':_0x20c53f[_0xd448('0x1b')]?_0x20c53f[_0xd448('0x1b')]['raw']===undefined?!![]:![]:!![],'where':_0x20c53f[_0xd448('0x1b')]?_0x20c53f[_0xd448('0x1b')][_0xd448('0x1c')]||null:null,'attributes':_0x20c53f[_0xd448('0x1b')]?_0x20c53f[_0xd448('0x1b')]['attributes']||null:null,'limit':_0x20c53f[_0xd448('0x1b')]?_0x20c53f[_0xd448('0x1b')]['limit']||null:null,'include':_0x20c53f[_0xd448('0x1b')]?_0x20c53f[_0xd448('0x1b')]['include']?_['map'](_0x20c53f['options'][_0xd448('0x1d')],function(_0x1422c3){return{'model':db[_0x1422c3['model']],'as':_0x1422c3['as'],'attributes':_0x1422c3[_0xd448('0x1e')],'include':_0x1422c3[_0xd448('0x1d')]?_[_0xd448('0x1f')](_0x1422c3['include'],function(_0x2d8159){return{'model':db[_0x2d8159[_0xd448('0x20')]],'as':_0x2d8159['as'],'attributes':_0x2d8159['attributes'],'include':_0x2d8159['include']?_[_0xd448('0x1f')](_0x2d8159[_0xd448('0x1d')],function(_0x1d5ddd){return{'model':db[_0x1d5ddd[_0xd448('0x20')]],'as':_0x1d5ddd['as'],'attributes':_0x1d5ddd[_0xd448('0x1e')]};}):[]};}):[]};}):[]:[]})[_0xd448('0x21')](function(_0xb4da21){logger['info'](_0xd448('0x19'),_0x20c53f);logger[_0xd448('0x12')](_0xd448('0x19'),_0x20c53f,JSON[_0xd448('0x13')](_0xb4da21));_0x4a6769(_0xb4da21);})['catch'](function(_0x2c7b7b){logger[_0xd448('0x14')](_0xd448('0x19'),_0x2c7b7b[_0xd448('0x16')],_0x20c53f);_0xac14af(_0x41e043[_0xd448('0x14')](0x1f4,_0x2c7b7b['message']));});});};exports['ShowFaxQueue']=function(_0x2614e6){var _0x16095e=this;return new Promise(function(_0x214c0e,_0x4e0709){return db[_0xd448('0x22')][_0xd448('0x23')]({'raw':_0x2614e6[_0xd448('0x1b')]?_0x2614e6[_0xd448('0x1b')]['raw']===undefined?!![]:![]:!![],'where':_0x2614e6[_0xd448('0x1b')]?_0x2614e6['options'][_0xd448('0x1c')]||null:null,'attributes':_0x2614e6[_0xd448('0x1b')]?_0x2614e6[_0xd448('0x1b')][_0xd448('0x1e')]||null:null,'include':_0x2614e6['options']?_0x2614e6[_0xd448('0x1b')][_0xd448('0x1d')]?_[_0xd448('0x1f')](_0x2614e6[_0xd448('0x1b')][_0xd448('0x1d')],function(_0x97d8de){return{'model':db[_0x97d8de[_0xd448('0x20')]],'as':_0x97d8de['as'],'attributes':_0x97d8de[_0xd448('0x1e')],'include':_0x97d8de['include']?_[_0xd448('0x1f')](_0x97d8de['include'],function(_0x430b5c){return{'model':db[_0x430b5c[_0xd448('0x20')]],'as':_0x430b5c['as'],'attributes':_0x430b5c[_0xd448('0x1e')],'include':_0x430b5c[_0xd448('0x1d')]?_[_0xd448('0x1f')](_0x430b5c[_0xd448('0x1d')],function(_0x3be3e3){return{'model':db[_0x3be3e3[_0xd448('0x20')]],'as':_0x3be3e3['as'],'attributes':_0x3be3e3[_0xd448('0x1e')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x3fda15){logger[_0xd448('0xf')]('ShowFaxQueue',_0x2614e6);logger['debug'](_0xd448('0x24'),_0x2614e6,JSON[_0xd448('0x13')](_0x3fda15));_0x214c0e(_0x3fda15);})[_0xd448('0x18')](function(_0x58052f){logger[_0xd448('0x14')](_0xd448('0x24'),_0x58052f[_0xd448('0x16')],_0x2614e6);_0x4e0709(_0x16095e[_0xd448('0x14')](0x1f4,_0x58052f[_0xd448('0x16')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x27c7=['register','length','faxQueue:','./faxQueue.events','save','remove','removeListener'];(function(_0x2e4cbf,_0x8763d3){var _0x52840f=function(_0x31b93f){while(--_0x31b93f){_0x2e4cbf['push'](_0x2e4cbf['shift']());}};_0x52840f(++_0x8763d3);}(_0x27c7,0x10d));var _0x727c=function(_0x3bf83f,_0x181cac){_0x3bf83f=_0x3bf83f-0x0;var _0x22c4a9=_0x27c7[_0x3bf83f];return _0x22c4a9;};'use strict';var FaxQueueEvents=require(_0x727c('0x0'));var events=[_0x727c('0x1'),_0x727c('0x2'),'update'];function createListener(_0xa7768,_0x1c64bf){return function(_0x9ed603){_0x1c64bf['emit'](_0xa7768,_0x9ed603);};}function removeListener(_0x284ae5,_0x3b1d9c){return function(){FaxQueueEvents[_0x727c('0x3')](_0x284ae5,_0x3b1d9c);};}exports[_0x727c('0x4')]=function(_0x4db2fe){for(var _0x1d6c6f=0x0,_0x37cfb0=events[_0x727c('0x5')];_0x1d6c6f<_0x37cfb0;_0x1d6c6f++){var _0x27ec1f=events[_0x1d6c6f];var _0x49a2d1=createListener(_0x727c('0x6')+_0x27ec1f,_0x4db2fe);FaxQueueEvents['on'](_0x27ec1f,_0x49a2d1);}};
\ No newline at end of file
+var _0x81f3=['./faxQueue.events','remove','emit','removeListener','faxQueue:'];(function(_0x5a5abc,_0x5b7e79){var _0x5adbed=function(_0x3a38ca){while(--_0x3a38ca){_0x5a5abc['push'](_0x5a5abc['shift']());}};_0x5adbed(++_0x5b7e79);}(_0x81f3,0x1b8));var _0x381f=function(_0x57d24f,_0x44b0c1){_0x57d24f=_0x57d24f-0x0;var _0xcf8309=_0x81f3[_0x57d24f];return _0xcf8309;};'use strict';var FaxQueueEvents=require(_0x381f('0x0'));var events=['save',_0x381f('0x1'),'update'];function createListener(_0x14fe9b,_0x1cec3d){return function(_0x1e22db){_0x1cec3d[_0x381f('0x2')](_0x14fe9b,_0x1e22db);};}function removeListener(_0x5e08ca,_0x322a1e){return function(){FaxQueueEvents[_0x381f('0x3')](_0x5e08ca,_0x322a1e);};}exports['register']=function(_0x5e0360){for(var _0x3ef588=0x0,_0x12798f=events['length'];_0x3ef588<_0x12798f;_0x3ef588++){var _0x2d69bf=events[_0x3ef588];var _0x187a3b=createListener(_0x381f('0x4')+_0x2d69bf,_0x5e0360);FaxQueueEvents['on'](_0x2d69bf,_0x187a3b);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2d72=['multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./faxQueue.controller','get','isAuthenticated','index','/describe','/:id','show','getMembers','/:id/teams','/:id/users','getAgents','post','create','addTeams','put','destroy','delete','exports'];(function(_0x22d5c4,_0xea8c4){var _0x16bc1f=function(_0x4e0471){while(--_0x4e0471){_0x22d5c4['push'](_0x22d5c4['shift']());}};_0x16bc1f(++_0xea8c4);}(_0x2d72,0xa8));var _0x22d7=function(_0xaadf15,_0x33c7a5){_0xaadf15=_0xaadf15-0x0;var _0x450b6d=_0x2d72[_0xaadf15];return _0x450b6d;};'use strict';var multer=require(_0x22d7('0x0'));var util=require(_0x22d7('0x1'));var path=require(_0x22d7('0x2'));var timeout=require(_0x22d7('0x3'));var express=require(_0x22d7('0x4'));var router=express[_0x22d7('0x5')]();var fs_extra=require(_0x22d7('0x6'));var auth=require(_0x22d7('0x7'));var interaction=require(_0x22d7('0x8'));var config=require(_0x22d7('0x9'));var controller=require(_0x22d7('0xa'));router[_0x22d7('0xb')]('/',auth[_0x22d7('0xc')](),controller[_0x22d7('0xd')]);router['get'](_0x22d7('0xe'),auth[_0x22d7('0xc')](),controller['describe']);router[_0x22d7('0xb')](_0x22d7('0xf'),auth[_0x22d7('0xc')](),controller[_0x22d7('0x10')]);router['get']('/:id/members',auth[_0x22d7('0xc')](),controller[_0x22d7('0x11')]);router[_0x22d7('0xb')](_0x22d7('0x12'),auth[_0x22d7('0xc')](),controller['getTeams']);router['get'](_0x22d7('0x13'),auth['isAuthenticated'](),controller[_0x22d7('0x14')]);router[_0x22d7('0x15')]('/',auth['isAuthenticated'](),controller[_0x22d7('0x16')]);router[_0x22d7('0x15')](_0x22d7('0x12'),auth[_0x22d7('0xc')](),controller[_0x22d7('0x17')]);router[_0x22d7('0x15')](_0x22d7('0x13'),auth[_0x22d7('0xc')](),controller['addAgents']);router[_0x22d7('0x18')](_0x22d7('0xf'),auth[_0x22d7('0xc')](),controller['update']);router['delete']('/:id',auth[_0x22d7('0xc')](),controller[_0x22d7('0x19')]);router[_0x22d7('0x1a')](_0x22d7('0x12'),auth[_0x22d7('0xc')](),controller['removeTeams']);router[_0x22d7('0x1a')](_0x22d7('0x13'),auth[_0x22d7('0xc')](),controller['removeAgents']);module[_0x22d7('0x1b')]=router;
\ No newline at end of file
+var _0xed1c=['/:id/users','post','create','addTeams','addAgents','put','update','delete','destroy','removeTeams','removeAgents','exports','multer','util','fs-extra','../../components/auth/service','../../components/interaction/service','./faxQueue.controller','get','isAuthenticated','index','/describe','describe','/:id','show','/:id/teams','getTeams'];(function(_0x272e0e,_0x4c9099){var _0x34d639=function(_0x3d1171){while(--_0x3d1171){_0x272e0e['push'](_0x272e0e['shift']());}};_0x34d639(++_0x4c9099);}(_0xed1c,0xe4));var _0xced1=function(_0x240b02,_0x4ebabb){_0x240b02=_0x240b02-0x0;var _0x565300=_0xed1c[_0x240b02];return _0x565300;};'use strict';var multer=require(_0xced1('0x0'));var util=require(_0xced1('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require('express');var router=express['Router']();var fs_extra=require(_0xced1('0x2'));var auth=require(_0xced1('0x3'));var interaction=require(_0xced1('0x4'));var config=require('../../config/environment');var controller=require(_0xced1('0x5'));router[_0xced1('0x6')]('/',auth[_0xced1('0x7')](),controller[_0xced1('0x8')]);router['get'](_0xced1('0x9'),auth[_0xced1('0x7')](),controller[_0xced1('0xa')]);router[_0xced1('0x6')](_0xced1('0xb'),auth[_0xced1('0x7')](),controller[_0xced1('0xc')]);router[_0xced1('0x6')]('/:id/members',auth[_0xced1('0x7')](),controller['getMembers']);router[_0xced1('0x6')](_0xced1('0xd'),auth[_0xced1('0x7')](),controller[_0xced1('0xe')]);router[_0xced1('0x6')](_0xced1('0xf'),auth[_0xced1('0x7')](),controller['getAgents']);router[_0xced1('0x10')]('/',auth[_0xced1('0x7')](),controller[_0xced1('0x11')]);router[_0xced1('0x10')]('/:id/teams',auth[_0xced1('0x7')](),controller[_0xced1('0x12')]);router['post'](_0xced1('0xf'),auth[_0xced1('0x7')](),controller[_0xced1('0x13')]);router[_0xced1('0x14')]('/:id',auth['isAuthenticated'](),controller[_0xced1('0x15')]);router[_0xced1('0x16')](_0xced1('0xb'),auth[_0xced1('0x7')](),controller[_0xced1('0x17')]);router[_0xced1('0x16')]('/:id/teams',auth['isAuthenticated'](),controller[_0xced1('0x18')]);router[_0xced1('0x16')](_0xced1('0xf'),auth['isAuthenticated'](),controller[_0xced1('0x19')]);module[_0xced1('0x1a')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc9ab=['exports','DATE','STRING','moment','sequelize'];(function(_0x524cb3,_0x2d702a){var _0x288975=function(_0x5e4b56){while(--_0x5e4b56){_0x524cb3['push'](_0x524cb3['shift']());}};_0x288975(++_0x2d702a);}(_0xc9ab,0x125));var _0xbc9a=function(_0x150aab,_0x2a380e){_0x150aab=_0x150aab-0x0;var _0x189841=_0xc9ab[_0x150aab];return _0x189841;};'use strict';var moment=require(_0xbc9a('0x0'));var Sequelize=require(_0xbc9a('0x1'));module[_0xbc9a('0x2')]={'uniqueid':{'type':Sequelize['STRING'],'allowNull':![]},'from':{'type':Sequelize['STRING']},'joinAt':{'type':Sequelize['DATE']},'leaveAt':{'type':Sequelize[_0xbc9a('0x3')]},'acceptAt':{'type':Sequelize[_0xbc9a('0x3')]},'exitAt':{'type':Sequelize[_0xbc9a('0x3')]},'reason':{'type':Sequelize[_0xbc9a('0x4')]}};
\ No newline at end of file
+var _0x7981=['STRING','DATE'];(function(_0x49ca18,_0x5e6d05){var _0x145d54=function(_0x30b9be){while(--_0x30b9be){_0x49ca18['push'](_0x49ca18['shift']());}};_0x145d54(++_0x5e6d05);}(_0x7981,0x132));var _0x1798=function(_0x4e8c8a,_0x17f2e2){_0x4e8c8a=_0x4e8c8a-0x0;var _0x1caeb2=_0x7981[_0x4e8c8a];return _0x1caeb2;};'use strict';var moment=require('moment');var Sequelize=require('sequelize');module['exports']={'uniqueid':{'type':Sequelize[_0x1798('0x0')],'allowNull':![]},'from':{'type':Sequelize[_0x1798('0x0')]},'joinAt':{'type':Sequelize[_0x1798('0x1')]},'leaveAt':{'type':Sequelize[_0x1798('0x1')]},'acceptAt':{'type':Sequelize[_0x1798('0x1')]},'exitAt':{'type':Sequelize[_0x1798('0x1')]},'reason':{'type':Sequelize[_0x1798('0x0')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcff8=['attributes','length','hasOwnProperty','nolimit','order','sort','filters','pick','filter','merge','where','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','create','body','find','eml-format','zip-dir','fast-json-patch','moment','bluebird','mustache','util','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','end','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','destroy','error','stack','name','send','index','map','FaxQueueReport','rawAttributes','type','model','keys','intersection','query','fields'];(function(_0x420132,_0x3f3a87){var _0x4f83a0=function(_0x326694){while(--_0x326694){_0x420132['push'](_0x420132['shift']());}};_0x4f83a0(++_0x3f3a87);}(_0xcff8,0x14b));var _0x8cff=function(_0x5376cf,_0x28eec2){_0x5376cf=_0x5376cf-0x0;var _0x4be478=_0xcff8[_0x5376cf];return _0x4be478;};'use strict';var emlformat=require(_0x8cff('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x8cff('0x1'));var jsonpatch=require(_0x8cff('0x2'));var rp=require('request-promise');var moment=require(_0x8cff('0x3'));var BPromise=require(_0x8cff('0x4'));var Mustache=require(_0x8cff('0x5'));var util=require(_0x8cff('0x6'));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(_0x8cff('0x7'));var _=require(_0x8cff('0x8'));var squel=require(_0x8cff('0x9'));var crypto=require(_0x8cff('0xa'));var jsforce=require(_0x8cff('0xb'));var deskjs=require(_0x8cff('0xc'));var toCsv=require(_0x8cff('0xd'));var querystring=require('querystring');var Papa=require(_0x8cff('0xe'));var Redis=require(_0x8cff('0xf'));var authService=require(_0x8cff('0x10'));var qs=require(_0x8cff('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x8cff('0x12'));var logger=require(_0x8cff('0x13'))(_0x8cff('0x14'));var utils=require(_0x8cff('0x15'));var config=require(_0x8cff('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0x8cff('0x17'))['db'];function respondWithStatusCode(_0x2b469c,_0x20acb7){_0x20acb7=_0x20acb7||0xcc;return function(_0x3e642b){if(_0x3e642b){return _0x2b469c[_0x8cff('0x18')](_0x20acb7);}return _0x2b469c['status'](_0x20acb7)[_0x8cff('0x19')]();};}function respondWithResult(_0x5097c1,_0x4b3faf){_0x4b3faf=_0x4b3faf||0xc8;return function(_0x1d8c09){if(_0x1d8c09){return _0x5097c1[_0x8cff('0x1a')](_0x4b3faf)[_0x8cff('0x1b')](_0x1d8c09);}};}function respondWithFilteredResult(_0x3b352f,_0x26d516){return function(_0xac398f){if(_0xac398f){var _0x31214d=typeof _0x26d516[_0x8cff('0x1c')]===_0x8cff('0x1d')&&typeof _0x26d516[_0x8cff('0x1e')]===_0x8cff('0x1d');var _0x138d87=_0xac398f[_0x8cff('0x1f')];var _0x5d8d55=_0x31214d?0x0:_0x26d516[_0x8cff('0x1c')];var _0x4f12ab=_0x31214d?_0xac398f['count']:_0x26d516['offset']+_0x26d516[_0x8cff('0x1e')];var _0x541104;if(_0x4f12ab>=_0x138d87){_0x4f12ab=_0x138d87;_0x541104=0xc8;}else{_0x541104=0xce;}_0x3b352f[_0x8cff('0x1a')](_0x541104);return _0x3b352f[_0x8cff('0x20')](_0x8cff('0x21'),_0x5d8d55+'-'+_0x4f12ab+'/'+_0x138d87)[_0x8cff('0x1b')](_0xac398f);}return null;};}function patchUpdates(_0x594a1d){return function(_0x2ab819){try{jsonpatch[_0x8cff('0x22')](_0x2ab819,_0x594a1d,!![]);}catch(_0x225065){return BPromise[_0x8cff('0x23')](_0x225065);}return _0x2ab819[_0x8cff('0x24')]();};}function saveUpdates(_0x314fe0,_0x2d4770){return function(_0x53a9af){if(_0x53a9af){return _0x53a9af[_0x8cff('0x25')](_0x314fe0)[_0x8cff('0x26')](function(_0x54c3c6){return _0x54c3c6;});}return null;};}function removeEntity(_0x4e171c,_0x4b211e){return function(_0x1d4c93){if(_0x1d4c93){return _0x1d4c93[_0x8cff('0x27')]()[_0x8cff('0x26')](function(){_0x4e171c[_0x8cff('0x1a')](0xcc)[_0x8cff('0x19')]();});}};}function handleEntityNotFound(_0xacab79,_0xb46b17){return function(_0x149fe5){if(!_0x149fe5){_0xacab79['sendStatus'](0x194);}return _0x149fe5;};}function handleError(_0x21853b,_0x55f03b){_0x55f03b=_0x55f03b||0x1f4;return function(_0xf47d91){logger[_0x8cff('0x28')](_0xf47d91[_0x8cff('0x29')]);if(_0xf47d91[_0x8cff('0x2a')]){delete _0xf47d91[_0x8cff('0x2a')];}_0x21853b[_0x8cff('0x1a')](_0x55f03b)[_0x8cff('0x2b')](_0xf47d91);};}exports[_0x8cff('0x2c')]=function(_0x2f36c6,_0x1fcb15){var _0x1852b2={},_0x60244d={},_0x5248d2={'count':0x0,'rows':[]};var _0x541a9c=_[_0x8cff('0x2d')](db[_0x8cff('0x2e')][_0x8cff('0x2f')],function(_0x2f7e49){return{'name':_0x2f7e49['fieldName'],'type':_0x2f7e49[_0x8cff('0x30')]['key']};});_0x60244d[_0x8cff('0x31')]=_['map'](_0x541a9c,_0x8cff('0x2a'));_0x60244d['query']=_[_0x8cff('0x32')](_0x2f36c6['query']);_0x60244d['filters']=_[_0x8cff('0x33')](_0x60244d['model'],_0x60244d[_0x8cff('0x34')]);_0x1852b2['attributes']=_[_0x8cff('0x33')](_0x60244d['model'],qs['fields'](_0x2f36c6[_0x8cff('0x34')][_0x8cff('0x35')]));_0x1852b2[_0x8cff('0x36')]=_0x1852b2[_0x8cff('0x36')][_0x8cff('0x37')]?_0x1852b2[_0x8cff('0x36')]:_0x60244d[_0x8cff('0x31')];if(!_0x2f36c6[_0x8cff('0x34')][_0x8cff('0x38')](_0x8cff('0x39'))){_0x1852b2[_0x8cff('0x1e')]=qs['limit'](_0x2f36c6[_0x8cff('0x34')][_0x8cff('0x1e')]);_0x1852b2['offset']=qs[_0x8cff('0x1c')](_0x2f36c6[_0x8cff('0x34')][_0x8cff('0x1c')]);}_0x1852b2[_0x8cff('0x3a')]=qs[_0x8cff('0x3b')](_0x2f36c6['query'][_0x8cff('0x3b')]);_0x1852b2['where']=qs[_0x8cff('0x3c')](_[_0x8cff('0x3d')](_0x2f36c6[_0x8cff('0x34')],_0x60244d[_0x8cff('0x3c')]),_0x541a9c);if(_0x2f36c6['query'][_0x8cff('0x3e')]){_0x1852b2['where']=_[_0x8cff('0x3f')](_0x1852b2[_0x8cff('0x40')],{'$or':_[_0x8cff('0x2d')](_0x541a9c,function(_0x4591a1){if(_0x4591a1[_0x8cff('0x30')]!==_0x8cff('0x41')){var _0x4095cd={};_0x4095cd[_0x4591a1['name']]={'$like':'%'+_0x2f36c6[_0x8cff('0x34')]['filter']+'%'};return _0x4095cd;}})});}_0x1852b2=_[_0x8cff('0x3f')]({},_0x1852b2,_0x2f36c6[_0x8cff('0x42')]);var _0x123b9f={'where':_0x1852b2[_0x8cff('0x40')]};return db['FaxQueueReport'][_0x8cff('0x1f')](_0x123b9f)[_0x8cff('0x26')](function(_0x61eddd){_0x5248d2[_0x8cff('0x1f')]=_0x61eddd;if(_0x2f36c6['query'][_0x8cff('0x43')]){_0x1852b2[_0x8cff('0x44')]=[{'all':!![]}];}return db['FaxQueueReport'][_0x8cff('0x45')](_0x1852b2);})['then'](function(_0x5c78a1){_0x5248d2[_0x8cff('0x46')]=_0x5c78a1;return _0x5248d2;})[_0x8cff('0x26')](respondWithFilteredResult(_0x1fcb15,_0x1852b2))[_0x8cff('0x47')](handleError(_0x1fcb15,null));};exports[_0x8cff('0x48')]=function(_0x937c7a,_0x571646){var _0x403d83={'raw':!![],'where':{'id':_0x937c7a[_0x8cff('0x49')]['id']}},_0x3c72eb={};_0x3c72eb[_0x8cff('0x31')]=_[_0x8cff('0x32')](db['FaxQueueReport']['rawAttributes']);_0x3c72eb[_0x8cff('0x34')]=_['keys'](_0x937c7a['query']);_0x3c72eb[_0x8cff('0x3c')]=_['intersection'](_0x3c72eb[_0x8cff('0x31')],_0x3c72eb[_0x8cff('0x34')]);_0x403d83[_0x8cff('0x36')]=_[_0x8cff('0x33')](_0x3c72eb[_0x8cff('0x31')],qs['fields'](_0x937c7a[_0x8cff('0x34')]['fields']));_0x403d83[_0x8cff('0x36')]=_0x403d83[_0x8cff('0x36')][_0x8cff('0x37')]?_0x403d83['attributes']:_0x3c72eb[_0x8cff('0x31')];if(_0x937c7a[_0x8cff('0x34')]['includeAll']){_0x403d83[_0x8cff('0x44')]=[{'all':!![]}];}_0x403d83=_['merge']({},_0x403d83,_0x937c7a['options']);return db[_0x8cff('0x2e')]['find'](_0x403d83)[_0x8cff('0x26')](handleEntityNotFound(_0x571646,null))[_0x8cff('0x26')](respondWithResult(_0x571646,null))['catch'](handleError(_0x571646,null));};exports[_0x8cff('0x4a')]=function(_0x53d0d4,_0x45ec06){return db['FaxQueueReport']['create'](_0x53d0d4['body'],{})[_0x8cff('0x26')](respondWithResult(_0x45ec06,0xc9))[_0x8cff('0x47')](handleError(_0x45ec06,null));};exports[_0x8cff('0x25')]=function(_0x1b0810,_0x3501c5){if(_0x1b0810['body']['id']){delete _0x1b0810[_0x8cff('0x4b')]['id'];}return db[_0x8cff('0x2e')][_0x8cff('0x4c')]({'where':{'id':_0x1b0810[_0x8cff('0x49')]['id']}})['then'](handleEntityNotFound(_0x3501c5,null))[_0x8cff('0x26')](saveUpdates(_0x1b0810['body'],null))[_0x8cff('0x26')](respondWithResult(_0x3501c5,null))[_0x8cff('0x47')](handleError(_0x3501c5,null));};exports['destroy']=function(_0x3c392f,_0x27efda){return db[_0x8cff('0x2e')]['find']({'where':{'id':_0x3c392f[_0x8cff('0x49')]['id']}})['then'](handleEntityNotFound(_0x27efda,null))[_0x8cff('0x26')](removeEntity(_0x27efda,null))[_0x8cff('0x47')](handleError(_0x27efda,null));};exports['describe']=function(_0x491e2c,_0x57534f){return db['FaxQueueReport']['describe']()['then'](respondWithResult(_0x57534f,null))[_0x8cff('0x47')](handleError(_0x57534f,null));};
\ No newline at end of file
+var _0x32c0=['offset','undefined','limit','count','set','Content-Range','update','then','destroy','error','stack','name','send','index','map','FaxQueueReport','fieldName','key','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','merge','type','VIRTUAL','includeAll','include','findAll','rows','show','rawAttributes','options','catch','create','body','find','params','describe','eml-format','rimraf','fast-json-patch','request-promise','bluebird','mustache','util','path','to-csv','ejs','fs-extra','lodash','crypto','desk.js','ioredis','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','end','status','json'];(function(_0x184800,_0x13f14e){var _0x58e20b=function(_0x481e55){while(--_0x481e55){_0x184800['push'](_0x184800['shift']());}};_0x58e20b(++_0x13f14e);}(_0x32c0,0x1f3));var _0x032c=function(_0x5d05ed,_0x1d59e5){_0x5d05ed=_0x5d05ed-0x0;var _0x242048=_0x32c0[_0x5d05ed];return _0x242048;};'use strict';var emlformat=require(_0x032c('0x0'));var rimraf=require(_0x032c('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x032c('0x2'));var rp=require(_0x032c('0x3'));var moment=require('moment');var BPromise=require(_0x032c('0x4'));var Mustache=require(_0x032c('0x5'));var util=require(_0x032c('0x6'));var path=require(_0x032c('0x7'));var sox=require('sox');var csv=require(_0x032c('0x8'));var ejs=require(_0x032c('0x9'));var fs=require('fs');var fs_extra=require(_0x032c('0xa'));var _=require(_0x032c('0xb'));var squel=require('squel');var crypto=require(_0x032c('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x032c('0xd'));var toCsv=require(_0x032c('0x8'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x032c('0xe'));var authService=require('../../components/auth/service');var qs=require(_0x032c('0xf'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x032c('0x10'));var logger=require(_0x032c('0x11'))(_0x032c('0x12'));var utils=require(_0x032c('0x13'));var config=require(_0x032c('0x14'));var licenseUtil=require(_0x032c('0x15'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x25af77,_0xc88e78){_0xc88e78=_0xc88e78||0xcc;return function(_0x364605){if(_0x364605){return _0x25af77[_0x032c('0x16')](_0xc88e78);}return _0x25af77['status'](_0xc88e78)[_0x032c('0x17')]();};}function respondWithResult(_0x2650d6,_0x1ec9d8){_0x1ec9d8=_0x1ec9d8||0xc8;return function(_0x216984){if(_0x216984){return _0x2650d6[_0x032c('0x18')](_0x1ec9d8)[_0x032c('0x19')](_0x216984);}};}function respondWithFilteredResult(_0x51266f,_0xb678d5){return function(_0x15ddb8){if(_0x15ddb8){var _0x3ebda8=typeof _0xb678d5[_0x032c('0x1a')]===_0x032c('0x1b')&&typeof _0xb678d5[_0x032c('0x1c')]==='undefined';var _0x1444bb=_0x15ddb8[_0x032c('0x1d')];var _0x4435ad=_0x3ebda8?0x0:_0xb678d5[_0x032c('0x1a')];var _0x2b2693=_0x3ebda8?_0x15ddb8[_0x032c('0x1d')]:_0xb678d5[_0x032c('0x1a')]+_0xb678d5[_0x032c('0x1c')];var _0x3a6f71;if(_0x2b2693>=_0x1444bb){_0x2b2693=_0x1444bb;_0x3a6f71=0xc8;}else{_0x3a6f71=0xce;}_0x51266f[_0x032c('0x18')](_0x3a6f71);return _0x51266f[_0x032c('0x1e')](_0x032c('0x1f'),_0x4435ad+'-'+_0x2b2693+'/'+_0x1444bb)[_0x032c('0x19')](_0x15ddb8);}return null;};}function patchUpdates(_0x515409){return function(_0x8a8f30){try{jsonpatch['apply'](_0x8a8f30,_0x515409,!![]);}catch(_0x5341e6){return BPromise['reject'](_0x5341e6);}return _0x8a8f30['save']();};}function saveUpdates(_0x2a24f7,_0x4c0c4b){return function(_0x2ce758){if(_0x2ce758){return _0x2ce758[_0x032c('0x20')](_0x2a24f7)[_0x032c('0x21')](function(_0x51ad8c){return _0x51ad8c;});}return null;};}function removeEntity(_0x135612,_0x16d40f){return function(_0x28ae24){if(_0x28ae24){return _0x28ae24[_0x032c('0x22')]()[_0x032c('0x21')](function(){_0x135612[_0x032c('0x18')](0xcc)[_0x032c('0x17')]();});}};}function handleEntityNotFound(_0x58894b,_0x16ed08){return function(_0x1a0881){if(!_0x1a0881){_0x58894b[_0x032c('0x16')](0x194);}return _0x1a0881;};}function handleError(_0x56d20d,_0x1350d1){_0x1350d1=_0x1350d1||0x1f4;return function(_0x19ed06){logger[_0x032c('0x23')](_0x19ed06[_0x032c('0x24')]);if(_0x19ed06['name']){delete _0x19ed06[_0x032c('0x25')];}_0x56d20d[_0x032c('0x18')](_0x1350d1)[_0x032c('0x26')](_0x19ed06);};}exports[_0x032c('0x27')]=function(_0x51d679,_0x119d8f){var _0x1de595={},_0x5cdd90={},_0x659bbf={'count':0x0,'rows':[]};var _0x306935=_[_0x032c('0x28')](db[_0x032c('0x29')]['rawAttributes'],function(_0x50a3f8){return{'name':_0x50a3f8[_0x032c('0x2a')],'type':_0x50a3f8['type'][_0x032c('0x2b')]};});_0x5cdd90[_0x032c('0x2c')]=_['map'](_0x306935,_0x032c('0x25'));_0x5cdd90[_0x032c('0x2d')]=_[_0x032c('0x2e')](_0x51d679[_0x032c('0x2d')]);_0x5cdd90['filters']=_[_0x032c('0x2f')](_0x5cdd90[_0x032c('0x2c')],_0x5cdd90['query']);_0x1de595[_0x032c('0x30')]=_[_0x032c('0x2f')](_0x5cdd90[_0x032c('0x2c')],qs[_0x032c('0x31')](_0x51d679[_0x032c('0x2d')]['fields']));_0x1de595[_0x032c('0x30')]=_0x1de595['attributes'][_0x032c('0x32')]?_0x1de595['attributes']:_0x5cdd90[_0x032c('0x2c')];if(!_0x51d679[_0x032c('0x2d')][_0x032c('0x33')](_0x032c('0x34'))){_0x1de595[_0x032c('0x1c')]=qs[_0x032c('0x1c')](_0x51d679['query'][_0x032c('0x1c')]);_0x1de595[_0x032c('0x1a')]=qs['offset'](_0x51d679[_0x032c('0x2d')][_0x032c('0x1a')]);}_0x1de595[_0x032c('0x35')]=qs['sort'](_0x51d679[_0x032c('0x2d')][_0x032c('0x36')]);_0x1de595[_0x032c('0x37')]=qs[_0x032c('0x38')](_[_0x032c('0x39')](_0x51d679[_0x032c('0x2d')],_0x5cdd90[_0x032c('0x38')]),_0x306935);if(_0x51d679['query'][_0x032c('0x3a')]){_0x1de595[_0x032c('0x37')]=_[_0x032c('0x3b')](_0x1de595[_0x032c('0x37')],{'$or':_[_0x032c('0x28')](_0x306935,function(_0xf27830){if(_0xf27830[_0x032c('0x3c')]!==_0x032c('0x3d')){var _0x4bba77={};_0x4bba77[_0xf27830[_0x032c('0x25')]]={'$like':'%'+_0x51d679['query'][_0x032c('0x3a')]+'%'};return _0x4bba77;}})});}_0x1de595=_['merge']({},_0x1de595,_0x51d679['options']);var _0x238291={'where':_0x1de595[_0x032c('0x37')]};return db['FaxQueueReport']['count'](_0x238291)[_0x032c('0x21')](function(_0x4c6c2b){_0x659bbf['count']=_0x4c6c2b;if(_0x51d679[_0x032c('0x2d')][_0x032c('0x3e')]){_0x1de595[_0x032c('0x3f')]=[{'all':!![]}];}return db[_0x032c('0x29')][_0x032c('0x40')](_0x1de595);})[_0x032c('0x21')](function(_0x49b83a){_0x659bbf[_0x032c('0x41')]=_0x49b83a;return _0x659bbf;})['then'](respondWithFilteredResult(_0x119d8f,_0x1de595))['catch'](handleError(_0x119d8f,null));};exports[_0x032c('0x42')]=function(_0x15ebeb,_0x2035d5){var _0x235ad6={'raw':!![],'where':{'id':_0x15ebeb['params']['id']}},_0x47360a={};_0x47360a['model']=_[_0x032c('0x2e')](db['FaxQueueReport'][_0x032c('0x43')]);_0x47360a[_0x032c('0x2d')]=_[_0x032c('0x2e')](_0x15ebeb[_0x032c('0x2d')]);_0x47360a[_0x032c('0x38')]=_[_0x032c('0x2f')](_0x47360a[_0x032c('0x2c')],_0x47360a[_0x032c('0x2d')]);_0x235ad6[_0x032c('0x30')]=_['intersection'](_0x47360a[_0x032c('0x2c')],qs['fields'](_0x15ebeb['query'][_0x032c('0x31')]));_0x235ad6[_0x032c('0x30')]=_0x235ad6[_0x032c('0x30')][_0x032c('0x32')]?_0x235ad6[_0x032c('0x30')]:_0x47360a['model'];if(_0x15ebeb['query']['includeAll']){_0x235ad6[_0x032c('0x3f')]=[{'all':!![]}];}_0x235ad6=_['merge']({},_0x235ad6,_0x15ebeb[_0x032c('0x44')]);return db[_0x032c('0x29')]['find'](_0x235ad6)[_0x032c('0x21')](handleEntityNotFound(_0x2035d5,null))[_0x032c('0x21')](respondWithResult(_0x2035d5,null))[_0x032c('0x45')](handleError(_0x2035d5,null));};exports[_0x032c('0x46')]=function(_0x3a877a,_0x26e988){return db[_0x032c('0x29')][_0x032c('0x46')](_0x3a877a[_0x032c('0x47')],{})['then'](respondWithResult(_0x26e988,0xc9))[_0x032c('0x45')](handleError(_0x26e988,null));};exports['update']=function(_0x367638,_0x13f1a7){if(_0x367638[_0x032c('0x47')]['id']){delete _0x367638[_0x032c('0x47')]['id'];}return db[_0x032c('0x29')][_0x032c('0x48')]({'where':{'id':_0x367638[_0x032c('0x49')]['id']}})[_0x032c('0x21')](handleEntityNotFound(_0x13f1a7,null))[_0x032c('0x21')](saveUpdates(_0x367638['body'],null))[_0x032c('0x21')](respondWithResult(_0x13f1a7,null))['catch'](handleError(_0x13f1a7,null));};exports[_0x032c('0x22')]=function(_0x2f1032,_0x4e8fd6){return db[_0x032c('0x29')][_0x032c('0x48')]({'where':{'id':_0x2f1032['params']['id']}})[_0x032c('0x21')](handleEntityNotFound(_0x4e8fd6,null))[_0x032c('0x21')](removeEntity(_0x4e8fd6,null))[_0x032c('0x45')](handleError(_0x4e8fd6,null));};exports['describe']=function(_0x43efaa,_0xf7d545){return db[_0x032c('0x29')][_0x032c('0x4a')]()[_0x032c('0x21')](respondWithResult(_0xf7d545,null))[_0x032c('0x45')](handleError(_0xf7d545,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(_0x446495,_0x1be00f){var _0x5bb1e7=function(_0xcf071d){while(--_0xcf071d){_0x446495['push'](_0x446495['shift']());}};_0x5bb1e7(++_0x1be00f);}(_0x5fab,0x177));var _0xb5fa=function(_0x3ba0af,_0xccb8a1){_0x3ba0af=_0x3ba0af-0x0;var _0x650db7=_0x5fab[_0x3ba0af];return _0x650db7;};'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 _0x814b=['../../config/logger','api','moment','bluebird','path','rimraf','../../config/environment','./faxQueueReport.attributes','exports','define','FaxQueueReport','uniqueid','lodash','util'];(function(_0xba1760,_0x191969){var _0x1f3143=function(_0x5aa807){while(--_0x5aa807){_0xba1760['push'](_0xba1760['shift']());}};_0x1f3143(++_0x191969);}(_0x814b,0x1a2));var _0xb814=function(_0x2ade6c,_0x2d42f2){_0x2ade6c=_0x2ade6c-0x0;var _0x2cb372=_0x814b[_0x2ade6c];return _0x2cb372;};'use strict';var _=require(_0xb814('0x0'));var util=require(_0xb814('0x1'));var logger=require(_0xb814('0x2'))(_0xb814('0x3'));var moment=require(_0xb814('0x4'));var BPromise=require(_0xb814('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xb814('0x6'));var rimraf=require(_0xb814('0x7'));var config=require(_0xb814('0x8'));var attributes=require(_0xb814('0x9'));module[_0xb814('0xa')]=function(_0x322a70,_0x53e507){return _0x322a70[_0xb814('0xb')](_0xb814('0xc'),attributes,{'tableName':'report_fax_queue','paranoid':![],'indexes':[{'name':_0xb814('0xd'),'fields':[_0xb814('0xd')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x48c6=['error','message','info','catch','CreateFaxQueueReport','create','body','options','stringify','UpdateFaxQueueReport','update','raw','where','attributes','limit','lodash','bluebird','ioredis','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','FaxQueueReport,\x20%s,\x20%s','request\x20sent','debug','FaxQueueReport,\x20%s,\x20%s,\x20%s'];(function(_0x484032,_0x11ce70){var _0xec7c10=function(_0x5af4b3){while(--_0x5af4b3){_0x484032['push'](_0x484032['shift']());}};_0xec7c10(++_0x11ce70);}(_0x48c6,0xb7));var _0x648c=function(_0x349180,_0xd3e1b6){_0x349180=_0x349180-0x0;var _0x88d5de=_0x48c6[_0x349180];return _0x88d5de;};'use strict';var _=require(_0x648c('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0x648c('0x1'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x648c('0x2'));var db=require('../../mysqldb')['db'];var utils=require(_0x648c('0x3'));var logger=require(_0x648c('0x4'))('rpc');var config=require(_0x648c('0x5'));var jayson=require(_0x648c('0x6'));var client=jayson[_0x648c('0x7')][_0x648c('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x3da868,_0x26fae8,_0x272be3){return new BPromise(function(_0x59c989,_0x383322){return client['request'](_0x3da868,_0x272be3)['then'](function(_0x7fa6fd){logger['info'](_0x648c('0x9'),_0x26fae8,_0x648c('0xa'));logger[_0x648c('0xb')](_0x648c('0xc'),_0x26fae8,_0x648c('0xa'),JSON['stringify'](_0x7fa6fd));if(_0x7fa6fd[_0x648c('0xd')]){if(_0x7fa6fd[_0x648c('0xd')]['code']===0x1f4){logger[_0x648c('0xd')](_0x648c('0x9'),_0x26fae8,_0x7fa6fd[_0x648c('0xd')][_0x648c('0xe')]);return _0x383322(_0x7fa6fd[_0x648c('0xd')]['message']);}logger[_0x648c('0xd')](_0x648c('0x9'),_0x26fae8,_0x7fa6fd[_0x648c('0xd')]['message']);return _0x59c989(_0x7fa6fd[_0x648c('0xd')]['message']);}else{logger[_0x648c('0xf')](_0x648c('0x9'),_0x26fae8,'request\x20sent');_0x59c989(_0x7fa6fd['result'][_0x648c('0xe')]);}})[_0x648c('0x10')](function(_0x43b87f){logger[_0x648c('0xd')](_0x648c('0x9'),_0x26fae8,_0x43b87f);_0x383322(_0x43b87f);});});}exports[_0x648c('0x11')]=function(_0x975a53){var _0x29f150=this;return new Promise(function(_0x46426c,_0x24c21d){return db['FaxQueueReport'][_0x648c('0x12')](_0x975a53[_0x648c('0x13')],{'raw':_0x975a53[_0x648c('0x14')]?_0x975a53['options']['raw']===undefined?!![]:![]:!![]})['then'](function(_0x1df251){logger['info']('CreateFaxQueueReport',_0x975a53);logger[_0x648c('0xb')](_0x648c('0x11'),_0x975a53,JSON[_0x648c('0x15')](_0x1df251));_0x46426c(_0x1df251);})['catch'](function(_0x4b4226){logger[_0x648c('0xd')]('CreateFaxQueueReport',_0x4b4226[_0x648c('0xe')],_0x975a53);_0x24c21d(_0x29f150[_0x648c('0xd')](0x1f4,_0x4b4226[_0x648c('0xe')]));});});};exports[_0x648c('0x16')]=function(_0x1e577d){var _0x21c70b=this;return new Promise(function(_0xc26163,_0x4ea7a2){return db['FaxQueueReport'][_0x648c('0x17')](_0x1e577d[_0x648c('0x13')],{'raw':_0x1e577d[_0x648c('0x14')]?_0x1e577d[_0x648c('0x14')][_0x648c('0x18')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x1e577d[_0x648c('0x14')]?_0x1e577d[_0x648c('0x14')][_0x648c('0x19')]||null:null,'attributes':_0x1e577d[_0x648c('0x14')]?_0x1e577d[_0x648c('0x14')][_0x648c('0x1a')]||null:null,'limit':_0x1e577d[_0x648c('0x14')]?_0x1e577d[_0x648c('0x14')][_0x648c('0x1b')]||null:null})['then'](function(_0x784422){logger[_0x648c('0xf')]('UpdateFaxQueueReport',_0x1e577d);logger['debug'](_0x648c('0x16'),_0x1e577d,JSON[_0x648c('0x15')](_0x784422));_0xc26163(_0x784422);})[_0x648c('0x10')](function(_0x2b3cd2){logger['error'](_0x648c('0x16'),_0x2b3cd2[_0x648c('0xe')],_0x1e577d);_0x4ea7a2(_0x21c70b[_0x648c('0xd')](0x1f4,_0x2b3cd2['message']));});});};
\ No newline at end of file
+var _0x976d=['info','result','CreateFaxQueueReport','FaxQueueReport','body','options','raw','catch','where','attributes','limit','UpdateFaxQueueReport','lodash','util','moment','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','request','then','FaxQueueReport,\x20%s,\x20%s','debug','FaxQueueReport,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message'];(function(_0x1dc01f,_0x157a75){var _0x298041=function(_0x47fce1){while(--_0x47fce1){_0x1dc01f['push'](_0x1dc01f['shift']());}};_0x298041(++_0x157a75);}(_0x976d,0x1da));var _0xd976=function(_0x19e35c,_0x29cd1e){_0x19e35c=_0x19e35c-0x0;var _0x3e1fe8=_0x976d[_0x19e35c];return _0x3e1fe8;};'use strict';var _=require(_0xd976('0x0'));var util=require(_0xd976('0x1'));var moment=require(_0xd976('0x2'));var BPromise=require('bluebird');var rs=require(_0xd976('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xd976('0x4'))['db'];var utils=require(_0xd976('0x5'));var logger=require(_0xd976('0x6'))(_0xd976('0x7'));var config=require(_0xd976('0x8'));var jayson=require('jayson/promise');var client=jayson[_0xd976('0x9')][_0xd976('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x3a2c27,_0x29a937,_0x10752e){return new BPromise(function(_0x2f5721,_0x42199c){return client[_0xd976('0xb')](_0x3a2c27,_0x10752e)[_0xd976('0xc')](function(_0x257746){logger['info'](_0xd976('0xd'),_0x29a937,'request\x20sent');logger[_0xd976('0xe')](_0xd976('0xf'),_0x29a937,_0xd976('0x10'),JSON[_0xd976('0x11')](_0x257746));if(_0x257746['error']){if(_0x257746[_0xd976('0x12')][_0xd976('0x13')]===0x1f4){logger[_0xd976('0x12')](_0xd976('0xd'),_0x29a937,_0x257746[_0xd976('0x12')][_0xd976('0x14')]);return _0x42199c(_0x257746[_0xd976('0x12')][_0xd976('0x14')]);}logger[_0xd976('0x12')](_0xd976('0xd'),_0x29a937,_0x257746[_0xd976('0x12')][_0xd976('0x14')]);return _0x2f5721(_0x257746[_0xd976('0x12')]['message']);}else{logger[_0xd976('0x15')](_0xd976('0xd'),_0x29a937,_0xd976('0x10'));_0x2f5721(_0x257746[_0xd976('0x16')][_0xd976('0x14')]);}})['catch'](function(_0x5c01f2){logger[_0xd976('0x12')](_0xd976('0xd'),_0x29a937,_0x5c01f2);_0x42199c(_0x5c01f2);});});}exports[_0xd976('0x17')]=function(_0x236196){var _0xc74ec8=this;return new Promise(function(_0x21e51b,_0x5761d5){return db[_0xd976('0x18')]['create'](_0x236196[_0xd976('0x19')],{'raw':_0x236196[_0xd976('0x1a')]?_0x236196[_0xd976('0x1a')][_0xd976('0x1b')]===undefined?!![]:![]:!![]})[_0xd976('0xc')](function(_0x97feee){logger[_0xd976('0x15')]('CreateFaxQueueReport',_0x236196);logger['debug'](_0xd976('0x17'),_0x236196,JSON[_0xd976('0x11')](_0x97feee));_0x21e51b(_0x97feee);})[_0xd976('0x1c')](function(_0x1cdc48){logger[_0xd976('0x12')](_0xd976('0x17'),_0x1cdc48[_0xd976('0x14')],_0x236196);_0x5761d5(_0xc74ec8[_0xd976('0x12')](0x1f4,_0x1cdc48['message']));});});};exports['UpdateFaxQueueReport']=function(_0x2ad3fb){var _0x50cb33=this;return new Promise(function(_0x8516f0,_0x2c8fd1){return db[_0xd976('0x18')]['update'](_0x2ad3fb[_0xd976('0x19')],{'raw':_0x2ad3fb[_0xd976('0x1a')]?_0x2ad3fb['options']['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x2ad3fb[_0xd976('0x1a')]?_0x2ad3fb[_0xd976('0x1a')][_0xd976('0x1d')]||null:null,'attributes':_0x2ad3fb[_0xd976('0x1a')]?_0x2ad3fb[_0xd976('0x1a')][_0xd976('0x1e')]||null:null,'limit':_0x2ad3fb['options']?_0x2ad3fb[_0xd976('0x1a')][_0xd976('0x1f')]||null:null})[_0xd976('0xc')](function(_0x2687eb){logger[_0xd976('0x15')](_0xd976('0x20'),_0x2ad3fb);logger[_0xd976('0xe')](_0xd976('0x20'),_0x2ad3fb,JSON[_0xd976('0x11')](_0x2687eb));_0x8516f0(_0x2687eb);})[_0xd976('0x1c')](function(_0x1d0384){logger[_0xd976('0x12')]('UpdateFaxQueueReport',_0x1d0384[_0xd976('0x14')],_0x2ad3fb);_0x2c8fd1(_0x50cb33[_0xd976('0x12')](0x1f4,_0x1d0384[_0xd976('0x14')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x49cb=['fs-extra','../../config/environment','get','/describe','describe','/:id','isAuthenticated','show','post','create','put','update','delete','destroy','exports','multer','connect-timeout','express','Router'];(function(_0x8db852,_0x379b43){var _0x5ca434=function(_0x84c3fc){while(--_0x84c3fc){_0x8db852['push'](_0x8db852['shift']());}};_0x5ca434(++_0x379b43);}(_0x49cb,0xf3));var _0xb49c=function(_0x4872f7,_0x400ee8){_0x4872f7=_0x4872f7-0x0;var _0x295eb0=_0x49cb[_0x4872f7];return _0x295eb0;};'use strict';var multer=require(_0xb49c('0x0'));var util=require('util');var path=require('path');var timeout=require(_0xb49c('0x1'));var express=require(_0xb49c('0x2'));var router=express[_0xb49c('0x3')]();var fs_extra=require(_0xb49c('0x4'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0xb49c('0x5'));var controller=require('./faxQueueReport.controller');router[_0xb49c('0x6')]('/',auth['isAuthenticated'](),controller['index']);router[_0xb49c('0x6')](_0xb49c('0x7'),auth['isAuthenticated'](),controller[_0xb49c('0x8')]);router[_0xb49c('0x6')](_0xb49c('0x9'),auth[_0xb49c('0xa')](),controller[_0xb49c('0xb')]);router[_0xb49c('0xc')]('/',auth[_0xb49c('0xa')](),controller[_0xb49c('0xd')]);router[_0xb49c('0xe')](_0xb49c('0x9'),auth[_0xb49c('0xa')](),controller[_0xb49c('0xf')]);router[_0xb49c('0x10')](_0xb49c('0x9'),auth[_0xb49c('0xa')](),controller[_0xb49c('0x11')]);module[_0xb49c('0x12')]=router;
\ No newline at end of file
+var _0x5102=['index','/describe','isAuthenticated','/:id','show','put','update','delete','destroy','exports','multer','path','express','Router','fs-extra','../../components/auth/service','../../config/environment','./faxQueueReport.controller','get'];(function(_0x2fd55d,_0xd1177c){var _0xe5009c=function(_0x754e02){while(--_0x754e02){_0x2fd55d['push'](_0x2fd55d['shift']());}};_0xe5009c(++_0xd1177c);}(_0x5102,0x199));var _0x2510=function(_0x2b10c6,_0x185590){_0x2b10c6=_0x2b10c6-0x0;var _0x3789d2=_0x5102[_0x2b10c6];return _0x3789d2;};'use strict';var multer=require(_0x2510('0x0'));var util=require('util');var path=require(_0x2510('0x1'));var timeout=require('connect-timeout');var express=require(_0x2510('0x2'));var router=express[_0x2510('0x3')]();var fs_extra=require(_0x2510('0x4'));var auth=require(_0x2510('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0x2510('0x6'));var controller=require(_0x2510('0x7'));router[_0x2510('0x8')]('/',auth['isAuthenticated'](),controller[_0x2510('0x9')]);router[_0x2510('0x8')](_0x2510('0xa'),auth[_0x2510('0xb')](),controller['describe']);router['get'](_0x2510('0xc'),auth[_0x2510('0xb')](),controller[_0x2510('0xd')]);router['post']('/',auth['isAuthenticated'](),controller['create']);router[_0x2510('0xe')](_0x2510('0xc'),auth[_0x2510('0xb')](),controller[_0x2510('0xf')]);router[_0x2510('0x10')]('/:id',auth['isAuthenticated'](),controller[_0x2510('0x11')]);module[_0x2510('0x12')]=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(_0xcffae0,_0x1f70ca){var _0x24f329=function(_0x228238){while(--_0x228238){_0xcffae0['push'](_0xcffae0['shift']());}};_0x24f329(++_0x1f70ca);}(_0x9c44,0x178));var _0x49c4=function(_0x5d2803,_0xf375bd){_0x5d2803=_0x5d2803-0x0;var _0xdcad2c=_0x9c44[_0x5d2803];return _0xdcad2c;};'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 _0x34e8=['queue','DATE','NOW','moment','sequelize','exports','STRING','account','agent'];(function(_0x2f1a6e,_0x3082cb){var _0x5865e5=function(_0x459f1a){while(--_0x459f1a){_0x2f1a6e['push'](_0x2f1a6e['shift']());}};_0x5865e5(++_0x3082cb);}(_0x34e8,0x12c));var _0x834e=function(_0x36860b,_0x2a3d1d){_0x36860b=_0x36860b-0x0;var _0x2ff824=_0x34e8[_0x36860b];return _0x2ff824;};'use strict';var moment=require(_0x834e('0x0'));var Sequelize=require(_0x834e('0x1'));module[_0x834e('0x2')]={'uniqueid':{'type':Sequelize[_0x834e('0x3')],'allowNull':![]},'type':{'type':Sequelize['ENUM'](_0x834e('0x4'),_0x834e('0x5'),_0x834e('0x6')),'allowNull':![],'defaultValue':_0x834e('0x6')},'transferredAt':{'type':Sequelize[_0x834e('0x7')],'allowNull':![],'defaultValue':Sequelize[_0x834e('0x8')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa775=['count','set','Content-Range','apply','reject','save','update','destroy','then','error','name','map','FaxTransferReport','rawAttributes','type','model','query','keys','filters','intersection','attributes','fields','length','nolimit','order','sort','where','merge','VIRTUAL','options','includeAll','findAll','rows','catch','params','find','create','body','describe','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','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/logger','api','../../config/license/util','sendStatus','status','end','json','offset','limit','undefined'];(function(_0x2d8c87,_0x592f8b){var _0x5c599f=function(_0x180ecc){while(--_0x180ecc){_0x2d8c87['push'](_0x2d8c87['shift']());}};_0x5c599f(++_0x592f8b);}(_0xa775,0x185));var _0x5a77=function(_0x548f62,_0x1ae868){_0x548f62=_0x548f62-0x0;var _0x384bcc=_0xa775[_0x548f62];return _0x384bcc;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x5a77('0x0'));var zipdir=require(_0x5a77('0x1'));var jsonpatch=require(_0x5a77('0x2'));var rp=require('request-promise');var moment=require(_0x5a77('0x3'));var BPromise=require(_0x5a77('0x4'));var Mustache=require(_0x5a77('0x5'));var util=require('util');var path=require(_0x5a77('0x6'));var sox=require(_0x5a77('0x7'));var csv=require(_0x5a77('0x8'));var ejs=require(_0x5a77('0x9'));var fs=require('fs');var fs_extra=require(_0x5a77('0xa'));var _=require(_0x5a77('0xb'));var squel=require(_0x5a77('0xc'));var crypto=require(_0x5a77('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x5a77('0xe'));var toCsv=require(_0x5a77('0x8'));var querystring=require(_0x5a77('0xf'));var Papa=require(_0x5a77('0x10'));var Redis=require(_0x5a77('0x11'));var authService=require(_0x5a77('0x12'));var qs=require(_0x5a77('0x13'));var as=require(_0x5a77('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x5a77('0x15'))(_0x5a77('0x16'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x5a77('0x17'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x3df713,_0x1e44e5){_0x1e44e5=_0x1e44e5||0xcc;return function(_0x1e171d){if(_0x1e171d){return _0x3df713[_0x5a77('0x18')](_0x1e44e5);}return _0x3df713[_0x5a77('0x19')](_0x1e44e5)[_0x5a77('0x1a')]();};}function respondWithResult(_0x3699a1,_0x5fb7e){_0x5fb7e=_0x5fb7e||0xc8;return function(_0x11fb65){if(_0x11fb65){return _0x3699a1[_0x5a77('0x19')](_0x5fb7e)[_0x5a77('0x1b')](_0x11fb65);}};}function respondWithFilteredResult(_0x4480da,_0x4924b4){return function(_0x9c8741){if(_0x9c8741){var _0x11aa66=typeof _0x4924b4[_0x5a77('0x1c')]==='undefined'&&typeof _0x4924b4[_0x5a77('0x1d')]===_0x5a77('0x1e');var _0x5a8a87=_0x9c8741[_0x5a77('0x1f')];var _0x11075f=_0x11aa66?0x0:_0x4924b4['offset'];var _0x390909=_0x11aa66?_0x9c8741[_0x5a77('0x1f')]:_0x4924b4[_0x5a77('0x1c')]+_0x4924b4['limit'];var _0x12af70;if(_0x390909>=_0x5a8a87){_0x390909=_0x5a8a87;_0x12af70=0xc8;}else{_0x12af70=0xce;}_0x4480da['status'](_0x12af70);return _0x4480da[_0x5a77('0x20')](_0x5a77('0x21'),_0x11075f+'-'+_0x390909+'/'+_0x5a8a87)['json'](_0x9c8741);}return null;};}function patchUpdates(_0x57f218){return function(_0x5d3950){try{jsonpatch[_0x5a77('0x22')](_0x5d3950,_0x57f218,!![]);}catch(_0xb29826){return BPromise[_0x5a77('0x23')](_0xb29826);}return _0x5d3950[_0x5a77('0x24')]();};}function saveUpdates(_0x36fb2f,_0x488c32){return function(_0x331b9a){if(_0x331b9a){return _0x331b9a[_0x5a77('0x25')](_0x36fb2f)['then'](function(_0x9c56a2){return _0x9c56a2;});}return null;};}function removeEntity(_0x435769,_0x1e8d59){return function(_0x2853bd){if(_0x2853bd){return _0x2853bd[_0x5a77('0x26')]()[_0x5a77('0x27')](function(){_0x435769[_0x5a77('0x19')](0xcc)[_0x5a77('0x1a')]();});}};}function handleEntityNotFound(_0x1e33e7,_0x38656e){return function(_0xb6eff8){if(!_0xb6eff8){_0x1e33e7[_0x5a77('0x18')](0x194);}return _0xb6eff8;};}function handleError(_0x1786f6,_0x2ce587){_0x2ce587=_0x2ce587||0x1f4;return function(_0x114b3d){logger[_0x5a77('0x28')](_0x114b3d['stack']);if(_0x114b3d[_0x5a77('0x29')]){delete _0x114b3d['name'];}_0x1786f6[_0x5a77('0x19')](_0x2ce587)['send'](_0x114b3d);};}exports['index']=function(_0x5083aa,_0x29a8a6){var _0x31034f={},_0x125696={},_0x3621b8={'count':0x0,'rows':[]};var _0x546ffd=_[_0x5a77('0x2a')](db[_0x5a77('0x2b')][_0x5a77('0x2c')],function(_0x1d2c50){return{'name':_0x1d2c50['fieldName'],'type':_0x1d2c50[_0x5a77('0x2d')]['key']};});_0x125696[_0x5a77('0x2e')]=_['map'](_0x546ffd,_0x5a77('0x29'));_0x125696[_0x5a77('0x2f')]=_[_0x5a77('0x30')](_0x5083aa[_0x5a77('0x2f')]);_0x125696[_0x5a77('0x31')]=_[_0x5a77('0x32')](_0x125696['model'],_0x125696[_0x5a77('0x2f')]);_0x31034f[_0x5a77('0x33')]=_[_0x5a77('0x32')](_0x125696[_0x5a77('0x2e')],qs[_0x5a77('0x34')](_0x5083aa['query'][_0x5a77('0x34')]));_0x31034f[_0x5a77('0x33')]=_0x31034f[_0x5a77('0x33')][_0x5a77('0x35')]?_0x31034f[_0x5a77('0x33')]:_0x125696['model'];if(!_0x5083aa[_0x5a77('0x2f')]['hasOwnProperty'](_0x5a77('0x36'))){_0x31034f[_0x5a77('0x1d')]=qs['limit'](_0x5083aa[_0x5a77('0x2f')]['limit']);_0x31034f[_0x5a77('0x1c')]=qs[_0x5a77('0x1c')](_0x5083aa['query'][_0x5a77('0x1c')]);}_0x31034f[_0x5a77('0x37')]=qs[_0x5a77('0x38')](_0x5083aa['query'][_0x5a77('0x38')]);_0x31034f['where']=qs['filters'](_['pick'](_0x5083aa['query'],_0x125696['filters']),_0x546ffd);if(_0x5083aa['query']['filter']){_0x31034f[_0x5a77('0x39')]=_[_0x5a77('0x3a')](_0x31034f[_0x5a77('0x39')],{'$or':_[_0x5a77('0x2a')](_0x546ffd,function(_0x1514d2){if(_0x1514d2[_0x5a77('0x2d')]!==_0x5a77('0x3b')){var _0x3a965d={};_0x3a965d[_0x1514d2[_0x5a77('0x29')]]={'$like':'%'+_0x5083aa[_0x5a77('0x2f')]['filter']+'%'};return _0x3a965d;}})});}_0x31034f=_[_0x5a77('0x3a')]({},_0x31034f,_0x5083aa[_0x5a77('0x3c')]);var _0x14bd37={'where':_0x31034f[_0x5a77('0x39')]};return db[_0x5a77('0x2b')][_0x5a77('0x1f')](_0x14bd37)[_0x5a77('0x27')](function(_0x5dc776){_0x3621b8[_0x5a77('0x1f')]=_0x5dc776;if(_0x5083aa[_0x5a77('0x2f')][_0x5a77('0x3d')]){_0x31034f['include']=[{'all':!![]}];}return db[_0x5a77('0x2b')][_0x5a77('0x3e')](_0x31034f);})[_0x5a77('0x27')](function(_0x3d9a2a){_0x3621b8[_0x5a77('0x3f')]=_0x3d9a2a;return _0x3621b8;})[_0x5a77('0x27')](respondWithFilteredResult(_0x29a8a6,_0x31034f))[_0x5a77('0x40')](handleError(_0x29a8a6,null));};exports['show']=function(_0x172cab,_0x104079){var _0x596d2c={'raw':!![],'where':{'id':_0x172cab[_0x5a77('0x41')]['id']}},_0x3205ac={};_0x3205ac['model']=_[_0x5a77('0x30')](db[_0x5a77('0x2b')]['rawAttributes']);_0x3205ac['query']=_[_0x5a77('0x30')](_0x172cab[_0x5a77('0x2f')]);_0x3205ac[_0x5a77('0x31')]=_['intersection'](_0x3205ac[_0x5a77('0x2e')],_0x3205ac[_0x5a77('0x2f')]);_0x596d2c[_0x5a77('0x33')]=_['intersection'](_0x3205ac[_0x5a77('0x2e')],qs[_0x5a77('0x34')](_0x172cab['query'][_0x5a77('0x34')]));_0x596d2c[_0x5a77('0x33')]=_0x596d2c[_0x5a77('0x33')][_0x5a77('0x35')]?_0x596d2c[_0x5a77('0x33')]:_0x3205ac[_0x5a77('0x2e')];if(_0x172cab[_0x5a77('0x2f')][_0x5a77('0x3d')]){_0x596d2c['include']=[{'all':!![]}];}_0x596d2c=_[_0x5a77('0x3a')]({},_0x596d2c,_0x172cab[_0x5a77('0x3c')]);return db['FaxTransferReport'][_0x5a77('0x42')](_0x596d2c)[_0x5a77('0x27')](handleEntityNotFound(_0x104079,null))[_0x5a77('0x27')](respondWithResult(_0x104079,null))[_0x5a77('0x40')](handleError(_0x104079,null));};exports[_0x5a77('0x43')]=function(_0x53f549,_0x480436){return db['FaxTransferReport'][_0x5a77('0x43')](_0x53f549[_0x5a77('0x44')],{})[_0x5a77('0x27')](respondWithResult(_0x480436,0xc9))[_0x5a77('0x40')](handleError(_0x480436,null));};exports[_0x5a77('0x25')]=function(_0x3d85ae,_0x52b4c0){if(_0x3d85ae[_0x5a77('0x44')]['id']){delete _0x3d85ae[_0x5a77('0x44')]['id'];}return db[_0x5a77('0x2b')]['find']({'where':{'id':_0x3d85ae[_0x5a77('0x41')]['id']}})['then'](handleEntityNotFound(_0x52b4c0,null))[_0x5a77('0x27')](saveUpdates(_0x3d85ae[_0x5a77('0x44')],null))[_0x5a77('0x27')](respondWithResult(_0x52b4c0,null))[_0x5a77('0x40')](handleError(_0x52b4c0,null));};exports['destroy']=function(_0x473aed,_0x576620){return db[_0x5a77('0x2b')][_0x5a77('0x42')]({'where':{'id':_0x473aed[_0x5a77('0x41')]['id']}})[_0x5a77('0x27')](handleEntityNotFound(_0x576620,null))['then'](removeEntity(_0x576620,null))[_0x5a77('0x40')](handleError(_0x576620,null));};exports[_0x5a77('0x45')]=function(_0x391e82,_0x536605){return db[_0x5a77('0x2b')]['describe']()['then'](respondWithResult(_0x536605,null))['catch'](handleError(_0x536605,null));};
\ No newline at end of file
+var _0xd007=['pick','filter','merge','type','VIRTUAL','options','then','include','findAll','rows','catch','show','params','includeAll','create','body','find','describe','eml-format','rimraf','zip-dir','fast-json-patch','moment','mustache','util','path','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','limit','undefined','count','set','Content-Range','apply','save','update','destroy','error','stack','name','map','FaxTransferReport','rawAttributes','fieldName','model','query','keys','filters','intersection','attributes','fields','length','order','sort','where'];(function(_0x30033a,_0x5ce4a6){var _0x5e3518=function(_0x11494a){while(--_0x11494a){_0x30033a['push'](_0x30033a['shift']());}};_0x5e3518(++_0x5ce4a6);}(_0xd007,0x193));var _0x7d00=function(_0x2d7657,_0x254dfc){_0x2d7657=_0x2d7657-0x0;var _0x3b38d5=_0xd007[_0x2d7657];return _0x3b38d5;};'use strict';var emlformat=require(_0x7d00('0x0'));var rimraf=require(_0x7d00('0x1'));var zipdir=require(_0x7d00('0x2'));var jsonpatch=require(_0x7d00('0x3'));var rp=require('request-promise');var moment=require(_0x7d00('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x7d00('0x5'));var util=require(_0x7d00('0x6'));var path=require(_0x7d00('0x7'));var sox=require(_0x7d00('0x8'));var csv=require('to-csv');var ejs=require(_0x7d00('0x9'));var fs=require('fs');var fs_extra=require(_0x7d00('0xa'));var _=require(_0x7d00('0xb'));var squel=require(_0x7d00('0xc'));var crypto=require(_0x7d00('0xd'));var jsforce=require(_0x7d00('0xe'));var deskjs=require(_0x7d00('0xf'));var toCsv=require(_0x7d00('0x10'));var querystring=require(_0x7d00('0x11'));var Papa=require('papaparse');var Redis=require(_0x7d00('0x12'));var authService=require(_0x7d00('0x13'));var qs=require('../../components/parsers/qs');var as=require(_0x7d00('0x14'));var hardwareService=require(_0x7d00('0x15'));var logger=require('../../config/logger')(_0x7d00('0x16'));var utils=require(_0x7d00('0x17'));var config=require(_0x7d00('0x18'));var licenseUtil=require(_0x7d00('0x19'));var db=require(_0x7d00('0x1a'))['db'];function respondWithStatusCode(_0x5ae058,_0x3e0969){_0x3e0969=_0x3e0969||0xcc;return function(_0x3168bf){if(_0x3168bf){return _0x5ae058[_0x7d00('0x1b')](_0x3e0969);}return _0x5ae058[_0x7d00('0x1c')](_0x3e0969)[_0x7d00('0x1d')]();};}function respondWithResult(_0x2319fd,_0x4531de){_0x4531de=_0x4531de||0xc8;return function(_0x7365ef){if(_0x7365ef){return _0x2319fd[_0x7d00('0x1c')](_0x4531de)[_0x7d00('0x1e')](_0x7365ef);}};}function respondWithFilteredResult(_0x5bed1c,_0x972baa){return function(_0x5e5d97){if(_0x5e5d97){var _0x6d8310=typeof _0x972baa[_0x7d00('0x1f')]==='undefined'&&typeof _0x972baa[_0x7d00('0x20')]===_0x7d00('0x21');var _0x36f98e=_0x5e5d97[_0x7d00('0x22')];var _0x161f17=_0x6d8310?0x0:_0x972baa['offset'];var _0x49864c=_0x6d8310?_0x5e5d97[_0x7d00('0x22')]:_0x972baa[_0x7d00('0x1f')]+_0x972baa[_0x7d00('0x20')];var _0x59fab3;if(_0x49864c>=_0x36f98e){_0x49864c=_0x36f98e;_0x59fab3=0xc8;}else{_0x59fab3=0xce;}_0x5bed1c[_0x7d00('0x1c')](_0x59fab3);return _0x5bed1c[_0x7d00('0x23')](_0x7d00('0x24'),_0x161f17+'-'+_0x49864c+'/'+_0x36f98e)[_0x7d00('0x1e')](_0x5e5d97);}return null;};}function patchUpdates(_0x38b8c8){return function(_0x13c1cf){try{jsonpatch[_0x7d00('0x25')](_0x13c1cf,_0x38b8c8,!![]);}catch(_0x4aec0b){return BPromise['reject'](_0x4aec0b);}return _0x13c1cf[_0x7d00('0x26')]();};}function saveUpdates(_0x44cfe6,_0x223d89){return function(_0x96758){if(_0x96758){return _0x96758[_0x7d00('0x27')](_0x44cfe6)['then'](function(_0xb29382){return _0xb29382;});}return null;};}function removeEntity(_0x24d4c4,_0x150cf8){return function(_0x3492c9){if(_0x3492c9){return _0x3492c9[_0x7d00('0x28')]()['then'](function(){_0x24d4c4[_0x7d00('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x5ed6dc,_0x2da3a0){return function(_0x25695c){if(!_0x25695c){_0x5ed6dc[_0x7d00('0x1b')](0x194);}return _0x25695c;};}function handleError(_0x464110,_0x36c50a){_0x36c50a=_0x36c50a||0x1f4;return function(_0x3fd472){logger[_0x7d00('0x29')](_0x3fd472[_0x7d00('0x2a')]);if(_0x3fd472[_0x7d00('0x2b')]){delete _0x3fd472[_0x7d00('0x2b')];}_0x464110[_0x7d00('0x1c')](_0x36c50a)['send'](_0x3fd472);};}exports['index']=function(_0x469473,_0x42d96a){var _0x24febd={},_0x39be4a={},_0x330487={'count':0x0,'rows':[]};var _0x38db6e=_[_0x7d00('0x2c')](db[_0x7d00('0x2d')][_0x7d00('0x2e')],function(_0x5219a2){return{'name':_0x5219a2[_0x7d00('0x2f')],'type':_0x5219a2['type']['key']};});_0x39be4a[_0x7d00('0x30')]=_[_0x7d00('0x2c')](_0x38db6e,_0x7d00('0x2b'));_0x39be4a[_0x7d00('0x31')]=_[_0x7d00('0x32')](_0x469473['query']);_0x39be4a[_0x7d00('0x33')]=_[_0x7d00('0x34')](_0x39be4a[_0x7d00('0x30')],_0x39be4a[_0x7d00('0x31')]);_0x24febd[_0x7d00('0x35')]=_[_0x7d00('0x34')](_0x39be4a['model'],qs[_0x7d00('0x36')](_0x469473['query']['fields']));_0x24febd[_0x7d00('0x35')]=_0x24febd[_0x7d00('0x35')][_0x7d00('0x37')]?_0x24febd[_0x7d00('0x35')]:_0x39be4a[_0x7d00('0x30')];if(!_0x469473[_0x7d00('0x31')]['hasOwnProperty']('nolimit')){_0x24febd[_0x7d00('0x20')]=qs[_0x7d00('0x20')](_0x469473[_0x7d00('0x31')][_0x7d00('0x20')]);_0x24febd[_0x7d00('0x1f')]=qs[_0x7d00('0x1f')](_0x469473['query'][_0x7d00('0x1f')]);}_0x24febd[_0x7d00('0x38')]=qs[_0x7d00('0x39')](_0x469473['query']['sort']);_0x24febd[_0x7d00('0x3a')]=qs[_0x7d00('0x33')](_[_0x7d00('0x3b')](_0x469473[_0x7d00('0x31')],_0x39be4a['filters']),_0x38db6e);if(_0x469473[_0x7d00('0x31')][_0x7d00('0x3c')]){_0x24febd[_0x7d00('0x3a')]=_[_0x7d00('0x3d')](_0x24febd[_0x7d00('0x3a')],{'$or':_['map'](_0x38db6e,function(_0x5a4aee){if(_0x5a4aee[_0x7d00('0x3e')]!==_0x7d00('0x3f')){var _0x427fee={};_0x427fee[_0x5a4aee[_0x7d00('0x2b')]]={'$like':'%'+_0x469473[_0x7d00('0x31')][_0x7d00('0x3c')]+'%'};return _0x427fee;}})});}_0x24febd=_['merge']({},_0x24febd,_0x469473[_0x7d00('0x40')]);var _0x42d4a0={'where':_0x24febd[_0x7d00('0x3a')]};return db[_0x7d00('0x2d')]['count'](_0x42d4a0)[_0x7d00('0x41')](function(_0x36771d){_0x330487[_0x7d00('0x22')]=_0x36771d;if(_0x469473[_0x7d00('0x31')]['includeAll']){_0x24febd[_0x7d00('0x42')]=[{'all':!![]}];}return db[_0x7d00('0x2d')][_0x7d00('0x43')](_0x24febd);})[_0x7d00('0x41')](function(_0x1345ef){_0x330487[_0x7d00('0x44')]=_0x1345ef;return _0x330487;})[_0x7d00('0x41')](respondWithFilteredResult(_0x42d96a,_0x24febd))[_0x7d00('0x45')](handleError(_0x42d96a,null));};exports[_0x7d00('0x46')]=function(_0x1a9680,_0xc5dc16){var _0x445cbe={'raw':!![],'where':{'id':_0x1a9680[_0x7d00('0x47')]['id']}},_0x48c14d={};_0x48c14d[_0x7d00('0x30')]=_[_0x7d00('0x32')](db[_0x7d00('0x2d')]['rawAttributes']);_0x48c14d[_0x7d00('0x31')]=_['keys'](_0x1a9680[_0x7d00('0x31')]);_0x48c14d[_0x7d00('0x33')]=_[_0x7d00('0x34')](_0x48c14d[_0x7d00('0x30')],_0x48c14d['query']);_0x445cbe[_0x7d00('0x35')]=_[_0x7d00('0x34')](_0x48c14d[_0x7d00('0x30')],qs['fields'](_0x1a9680[_0x7d00('0x31')]['fields']));_0x445cbe[_0x7d00('0x35')]=_0x445cbe[_0x7d00('0x35')][_0x7d00('0x37')]?_0x445cbe[_0x7d00('0x35')]:_0x48c14d[_0x7d00('0x30')];if(_0x1a9680[_0x7d00('0x31')][_0x7d00('0x48')]){_0x445cbe[_0x7d00('0x42')]=[{'all':!![]}];}_0x445cbe=_['merge']({},_0x445cbe,_0x1a9680[_0x7d00('0x40')]);return db['FaxTransferReport']['find'](_0x445cbe)['then'](handleEntityNotFound(_0xc5dc16,null))[_0x7d00('0x41')](respondWithResult(_0xc5dc16,null))[_0x7d00('0x45')](handleError(_0xc5dc16,null));};exports[_0x7d00('0x49')]=function(_0x5e9753,_0x1be5ec){return db[_0x7d00('0x2d')][_0x7d00('0x49')](_0x5e9753['body'],{})['then'](respondWithResult(_0x1be5ec,0xc9))[_0x7d00('0x45')](handleError(_0x1be5ec,null));};exports[_0x7d00('0x27')]=function(_0x521e5c,_0x8b4b4b){if(_0x521e5c['body']['id']){delete _0x521e5c[_0x7d00('0x4a')]['id'];}return db[_0x7d00('0x2d')][_0x7d00('0x4b')]({'where':{'id':_0x521e5c[_0x7d00('0x47')]['id']}})[_0x7d00('0x41')](handleEntityNotFound(_0x8b4b4b,null))['then'](saveUpdates(_0x521e5c[_0x7d00('0x4a')],null))[_0x7d00('0x41')](respondWithResult(_0x8b4b4b,null))[_0x7d00('0x45')](handleError(_0x8b4b4b,null));};exports[_0x7d00('0x28')]=function(_0x268753,_0x1677bc){return db[_0x7d00('0x2d')][_0x7d00('0x4b')]({'where':{'id':_0x268753[_0x7d00('0x47')]['id']}})[_0x7d00('0x41')](handleEntityNotFound(_0x1677bc,null))['then'](removeEntity(_0x1677bc,null))['catch'](handleError(_0x1677bc,null));};exports[_0x7d00('0x4c')]=function(_0x853f54,_0x46eea8){return db[_0x7d00('0x2d')]['describe']()['then'](respondWithResult(_0x46eea8,null))[_0x7d00('0x45')](handleError(_0x46eea8,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4818=['lodash','api','bluebird','rimraf','../../config/environment','./faxTransferReport.attributes','define','FaxTransferReport','report_fax_transfer','uniqueid'];(function(_0x241ca5,_0x70512e){var _0x21b398=function(_0x2ce1ba){while(--_0x2ce1ba){_0x241ca5['push'](_0x241ca5['shift']());}};_0x21b398(++_0x70512e);}(_0x4818,0xc8));var _0x8481=function(_0x1a1610,_0x559ee7){_0x1a1610=_0x1a1610-0x0;var _0x86c3cb=_0x4818[_0x1a1610];return _0x86c3cb;};'use strict';var _=require(_0x8481('0x0'));var util=require('util');var logger=require('../../config/logger')(_0x8481('0x1'));var moment=require('moment');var BPromise=require(_0x8481('0x2'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0x8481('0x3'));var config=require(_0x8481('0x4'));var attributes=require(_0x8481('0x5'));module['exports']=function(_0x5752ac,_0x5aa150){return _0x5752ac[_0x8481('0x6')](_0x8481('0x7'),attributes,{'tableName':_0x8481('0x8'),'paranoid':![],'indexes':[{'name':_0x8481('0x9'),'fields':['uniqueid']}],'timestamps':!![]});};
\ No newline at end of file
+var _0xb4d3=['report_fax_transfer','uniqueid','lodash','util','api','request-promise','rimraf','../../config/environment','./faxTransferReport.attributes','exports','define'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xb4d3,0x199));var _0x3b4d=function(_0x1ebce2,_0x10e903){_0x1ebce2=_0x1ebce2-0x0;var _0x4a330c=_0xb4d3[_0x1ebce2];return _0x4a330c;};'use strict';var _=require(_0x3b4d('0x0'));var util=require(_0x3b4d('0x1'));var logger=require('../../config/logger')(_0x3b4d('0x2'));var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0x3b4d('0x3'));var fs=require('fs');var path=require('path');var rimraf=require(_0x3b4d('0x4'));var config=require(_0x3b4d('0x5'));var attributes=require(_0x3b4d('0x6'));module[_0x3b4d('0x7')]=function(_0x7f62c6,_0x587d2b){return _0x7f62c6[_0x3b4d('0x8')]('FaxTransferReport',attributes,{'tableName':_0x3b4d('0x9'),'paranoid':![],'indexes':[{'name':_0x3b4d('0xa'),'fields':[_0x3b4d('0xa')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb55f=['client','http','request','then','info','FaxTransferReport,\x20%s,\x20%s','request\x20sent','debug','FaxTransferReport,\x20%s,\x20%s,\x20%s','error','code','message','result','lodash','util','moment','randomstring','ioredis','../../config/utils','../../config/environment','jayson/promise'];(function(_0x1fd1c3,_0x5918b7){var _0x2d5fae=function(_0x5d797f){while(--_0x5d797f){_0x1fd1c3['push'](_0x1fd1c3['shift']());}};_0x2d5fae(++_0x5918b7);}(_0xb55f,0x187));var _0xfb55=function(_0x122385,_0x377e3a){_0x122385=_0x122385-0x0;var _0x33e332=_0xb55f[_0x122385];return _0x33e332;};'use strict';var _=require(_0xfb55('0x0'));var util=require(_0xfb55('0x1'));var moment=require(_0xfb55('0x2'));var BPromise=require('bluebird');var rs=require(_0xfb55('0x3'));var fs=require('fs');var Redis=require(_0xfb55('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0xfb55('0x5'));var logger=require('../../config/logger')('rpc');var config=require(_0xfb55('0x6'));var jayson=require(_0xfb55('0x7'));var client=jayson[_0xfb55('0x8')][_0xfb55('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x30972d,_0xb4978b,_0xd6c56f){return new BPromise(function(_0x5a41b3,_0x3f7dd4){return client[_0xfb55('0xa')](_0x30972d,_0xd6c56f)[_0xfb55('0xb')](function(_0x28e4a3){logger[_0xfb55('0xc')](_0xfb55('0xd'),_0xb4978b,_0xfb55('0xe'));logger[_0xfb55('0xf')](_0xfb55('0x10'),_0xb4978b,_0xfb55('0xe'),JSON['stringify'](_0x28e4a3));if(_0x28e4a3[_0xfb55('0x11')]){if(_0x28e4a3['error'][_0xfb55('0x12')]===0x1f4){logger['error'](_0xfb55('0xd'),_0xb4978b,_0x28e4a3['error'][_0xfb55('0x13')]);return _0x3f7dd4(_0x28e4a3[_0xfb55('0x11')][_0xfb55('0x13')]);}logger[_0xfb55('0x11')]('FaxTransferReport,\x20%s,\x20%s',_0xb4978b,_0x28e4a3[_0xfb55('0x11')][_0xfb55('0x13')]);return _0x5a41b3(_0x28e4a3[_0xfb55('0x11')][_0xfb55('0x13')]);}else{logger[_0xfb55('0xc')](_0xfb55('0xd'),_0xb4978b,'request\x20sent');_0x5a41b3(_0x28e4a3[_0xfb55('0x14')]['message']);}})['catch'](function(_0x63a9de){logger[_0xfb55('0x11')]('FaxTransferReport,\x20%s,\x20%s',_0xb4978b,_0x63a9de);_0x3f7dd4(_0x63a9de);});});}
\ No newline at end of file
+var _0x8be6=['error','code','message','result','lodash','moment','bluebird','randomstring','ioredis','../../config/logger','../../config/environment','client','request','then','info','FaxTransferReport,\x20%s,\x20%s','request\x20sent','debug','stringify'];(function(_0x46dfce,_0x533984){var _0x46ece3=function(_0x53a188){while(--_0x53a188){_0x46dfce['push'](_0x46dfce['shift']());}};_0x46ece3(++_0x533984);}(_0x8be6,0x1f2));var _0x68be=function(_0x59c56f,_0x59e85a){_0x59c56f=_0x59c56f-0x0;var _0x29ab55=_0x8be6[_0x59c56f];return _0x29ab55;};'use strict';var _=require(_0x68be('0x0'));var util=require('util');var moment=require(_0x68be('0x1'));var BPromise=require(_0x68be('0x2'));var rs=require(_0x68be('0x3'));var fs=require('fs');var Redis=require(_0x68be('0x4'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0x68be('0x5'))('rpc');var config=require(_0x68be('0x6'));var jayson=require('jayson/promise');var client=jayson[_0x68be('0x7')]['http']({'port':0x232a});function respondWithRpcPromise(_0x525525,_0x2c0baf,_0x58f07f){return new BPromise(function(_0x589ebd,_0x33dbe0){return client[_0x68be('0x8')](_0x525525,_0x58f07f)[_0x68be('0x9')](function(_0x187f96){logger[_0x68be('0xa')](_0x68be('0xb'),_0x2c0baf,_0x68be('0xc'));logger[_0x68be('0xd')]('FaxTransferReport,\x20%s,\x20%s,\x20%s',_0x2c0baf,'request\x20sent',JSON[_0x68be('0xe')](_0x187f96));if(_0x187f96['error']){if(_0x187f96[_0x68be('0xf')][_0x68be('0x10')]===0x1f4){logger[_0x68be('0xf')](_0x68be('0xb'),_0x2c0baf,_0x187f96[_0x68be('0xf')]['message']);return _0x33dbe0(_0x187f96[_0x68be('0xf')][_0x68be('0x11')]);}logger[_0x68be('0xf')]('FaxTransferReport,\x20%s,\x20%s',_0x2c0baf,_0x187f96[_0x68be('0xf')][_0x68be('0x11')]);return _0x589ebd(_0x187f96['error'][_0x68be('0x11')]);}else{logger[_0x68be('0xa')]('FaxTransferReport,\x20%s,\x20%s',_0x2c0baf,'request\x20sent');_0x589ebd(_0x187f96[_0x68be('0x12')]['message']);}})['catch'](function(_0x3d4594){logger[_0x68be('0xf')](_0x68be('0xb'),_0x2c0baf,_0x3d4594);_0x33dbe0(_0x3d4594);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2b03=['multer','util','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','get','/describe','isAuthenticated','describe','post','create','put','/:id','update','delete','destroy','exports'];(function(_0x4715d2,_0x3371b2){var _0x141811=function(_0x520bc6){while(--_0x520bc6){_0x4715d2['push'](_0x4715d2['shift']());}};_0x141811(++_0x3371b2);}(_0x2b03,0x140));var _0x32b0=function(_0x48d350,_0x2a8b26){_0x48d350=_0x48d350-0x0;var _0x3c514f=_0x2b03[_0x48d350];return _0x3c514f;};'use strict';var multer=require(_0x32b0('0x0'));var util=require(_0x32b0('0x1'));var path=require('path');var timeout=require(_0x32b0('0x2'));var express=require(_0x32b0('0x3'));var router=express[_0x32b0('0x4')]();var fs_extra=require(_0x32b0('0x5'));var auth=require(_0x32b0('0x6'));var interaction=require(_0x32b0('0x7'));var config=require('../../config/environment');var controller=require('./faxTransferReport.controller');router[_0x32b0('0x8')]('/',auth['isAuthenticated'](),controller['index']);router[_0x32b0('0x8')](_0x32b0('0x9'),auth[_0x32b0('0xa')](),controller[_0x32b0('0xb')]);router['get']('/:id',auth[_0x32b0('0xa')](),controller['show']);router[_0x32b0('0xc')]('/',auth['isAuthenticated'](),controller[_0x32b0('0xd')]);router[_0x32b0('0xe')](_0x32b0('0xf'),auth[_0x32b0('0xa')](),controller[_0x32b0('0x10')]);router[_0x32b0('0x11')](_0x32b0('0xf'),auth[_0x32b0('0xa')](),controller[_0x32b0('0x12')]);module[_0x32b0('0x13')]=router;
\ No newline at end of file
+var _0x2c2e=['get','index','/describe','isAuthenticated','describe','/:id','post','create','put','update','destroy','exports','multer','util','path','connect-timeout','Router','fs-extra','../../components/auth/service','./faxTransferReport.controller'];(function(_0x3ac967,_0x3979f4){var _0x57a7bf=function(_0x21a782){while(--_0x21a782){_0x3ac967['push'](_0x3ac967['shift']());}};_0x57a7bf(++_0x3979f4);}(_0x2c2e,0x138));var _0xe2c2=function(_0x2a4aad,_0x14c2e5){_0x2a4aad=_0x2a4aad-0x0;var _0x446a8f=_0x2c2e[_0x2a4aad];return _0x446a8f;};'use strict';var multer=require(_0xe2c2('0x0'));var util=require(_0xe2c2('0x1'));var path=require(_0xe2c2('0x2'));var timeout=require(_0xe2c2('0x3'));var express=require('express');var router=express[_0xe2c2('0x4')]();var fs_extra=require(_0xe2c2('0x5'));var auth=require(_0xe2c2('0x6'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0xe2c2('0x7'));router[_0xe2c2('0x8')]('/',auth['isAuthenticated'](),controller[_0xe2c2('0x9')]);router[_0xe2c2('0x8')](_0xe2c2('0xa'),auth[_0xe2c2('0xb')](),controller[_0xe2c2('0xc')]);router['get'](_0xe2c2('0xd'),auth[_0xe2c2('0xb')](),controller['show']);router[_0xe2c2('0xe')]('/',auth[_0xe2c2('0xb')](),controller[_0xe2c2('0xf')]);router[_0xe2c2('0x10')](_0xe2c2('0xd'),auth['isAuthenticated'](),controller[_0xe2c2('0x11')]);router['delete'](_0xe2c2('0xd'),auth[_0xe2c2('0xb')](),controller[_0xe2c2('0x12')]);module[_0xe2c2('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1814=['../../config/environment','./intDeskAccount.controller','get','isAuthenticated','index','/:id','/:id/configurations','getConfigurations','/:id/fields','getFields','post','create','put','exports','multer','util','path','connect-timeout','express','Router','fs-extra'];(function(_0x2f796f,_0x4c3978){var _0x27bc05=function(_0x438fb1){while(--_0x438fb1){_0x2f796f['push'](_0x2f796f['shift']());}};_0x27bc05(++_0x4c3978);}(_0x1814,0x1c7));var _0x4181=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x1814[_0x3dd15e];return _0x231fd0;};'use strict';var multer=require(_0x4181('0x0'));var util=require(_0x4181('0x1'));var path=require(_0x4181('0x2'));var timeout=require(_0x4181('0x3'));var express=require(_0x4181('0x4'));var router=express[_0x4181('0x5')]();var fs_extra=require(_0x4181('0x6'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x4181('0x7'));var controller=require(_0x4181('0x8'));router[_0x4181('0x9')]('/',auth[_0x4181('0xa')](),controller[_0x4181('0xb')]);router[_0x4181('0x9')](_0x4181('0xc'),auth[_0x4181('0xa')](),controller['show']);router[_0x4181('0x9')](_0x4181('0xd'),auth['isAuthenticated'](),controller[_0x4181('0xe')]);router[_0x4181('0x9')](_0x4181('0xf'),auth[_0x4181('0xa')](),controller[_0x4181('0x10')]);router[_0x4181('0x11')]('/',auth[_0x4181('0xa')](),controller[_0x4181('0x12')]);router['post'](_0x4181('0xd'),auth[_0x4181('0xa')](),controller['addConfiguration']);router[_0x4181('0x13')](_0x4181('0xc'),auth[_0x4181('0xa')](),controller['update']);router['delete']('/:id',auth[_0x4181('0xa')](),controller['destroy']);module[_0x4181('0x14')]=router;
\ No newline at end of file
+var _0x624e=['show','/:id/configurations','getConfigurations','/:id/fields','getFields','post','create','put','delete','destroy','multer','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../config/environment','isAuthenticated','index','get','/:id'];(function(_0x440f7a,_0x4368eb){var _0x5325e1=function(_0x1324a7){while(--_0x1324a7){_0x440f7a['push'](_0x440f7a['shift']());}};_0x5325e1(++_0x4368eb);}(_0x624e,0x180));var _0xe624=function(_0x4ae4a0,_0x24585e){_0x4ae4a0=_0x4ae4a0-0x0;var _0x34fdc9=_0x624e[_0x4ae4a0];return _0x34fdc9;};'use strict';var multer=require(_0xe624('0x0'));var util=require('util');var path=require(_0xe624('0x1'));var timeout=require(_0xe624('0x2'));var express=require(_0xe624('0x3'));var router=express[_0xe624('0x4')]();var fs_extra=require(_0xe624('0x5'));var auth=require(_0xe624('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0xe624('0x7'));var controller=require('./intDeskAccount.controller');router['get']('/',auth[_0xe624('0x8')](),controller[_0xe624('0x9')]);router[_0xe624('0xa')](_0xe624('0xb'),auth[_0xe624('0x8')](),controller[_0xe624('0xc')]);router[_0xe624('0xa')](_0xe624('0xd'),auth['isAuthenticated'](),controller[_0xe624('0xe')]);router[_0xe624('0xa')](_0xe624('0xf'),auth[_0xe624('0x8')](),controller[_0xe624('0x10')]);router[_0xe624('0x11')]('/',auth['isAuthenticated'](),controller[_0xe624('0x12')]);router[_0xe624('0x11')](_0xe624('0xd'),auth[_0xe624('0x8')](),controller['addConfiguration']);router[_0xe624('0x13')]('/:id',auth[_0xe624('0x8')](),controller['update']);router[_0xe624('0x14')](_0xe624('0xb'),auth['isAuthenticated'](),controller[_0xe624('0x15')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3953=['newTab','exports','STRING','ENUM','basic','integrationTab'];(function(_0x3ab51d,_0x2fa01d){var _0x29a04e=function(_0x7807b0){while(--_0x7807b0){_0x3ab51d['push'](_0x3ab51d['shift']());}};_0x29a04e(++_0x2fa01d);}(_0x3953,0x10f));var _0x3395=function(_0x23eb6b,_0x394364){_0x23eb6b=_0x23eb6b-0x0;var _0x529918=_0x3953[_0x23eb6b];return _0x529918;};'use strict';var Sequelize=require('sequelize');module[_0x3395('0x0')]={'name':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0x3395('0x1')]},'username':{'type':Sequelize['STRING']},'remoteUri':{'type':Sequelize[_0x3395('0x1')]},'authType':{'type':Sequelize[_0x3395('0x2')](_0x3395('0x3')),'defaultValue':_0x3395('0x3')},'password':{'type':Sequelize[_0x3395('0x1')]},'consumerKey':{'type':Sequelize[_0x3395('0x1')]},'consumerSecret':{'type':Sequelize[_0x3395('0x1')]},'token':{'type':Sequelize['STRING']},'tokenSecret':{'type':Sequelize[_0x3395('0x1')]},'serverUrl':{'type':Sequelize[_0x3395('0x1')],'allowNull':![]},'type':{'type':Sequelize['ENUM'](_0x3395('0x4'),_0x3395('0x5')),'defaultValue':'integrationTab'}};
\ No newline at end of file
+var _0x9990=['sequelize','exports','STRING','ENUM','basic','newTab'];(function(_0x2613d7,_0x54415f){var _0x58fedf=function(_0x1d05b2){while(--_0x1d05b2){_0x2613d7['push'](_0x2613d7['shift']());}};_0x58fedf(++_0x54415f);}(_0x9990,0x84));var _0x0999=function(_0xdc0c5d,_0x1f4def){_0xdc0c5d=_0xdc0c5d-0x0;var _0x388210=_0x9990[_0xdc0c5d];return _0x388210;};'use strict';var Sequelize=require(_0x0999('0x0'));module[_0x0999('0x1')]={'name':{'type':Sequelize[_0x0999('0x2')]},'description':{'type':Sequelize['STRING']},'username':{'type':Sequelize[_0x0999('0x2')]},'remoteUri':{'type':Sequelize[_0x0999('0x2')]},'authType':{'type':Sequelize[_0x0999('0x3')]('basic'),'defaultValue':_0x0999('0x4')},'password':{'type':Sequelize[_0x0999('0x2')]},'consumerKey':{'type':Sequelize[_0x0999('0x2')]},'consumerSecret':{'type':Sequelize[_0x0999('0x2')]},'token':{'type':Sequelize[_0x0999('0x2')]},'tokenSecret':{'type':Sequelize['STRING']},'serverUrl':{'type':Sequelize[_0x0999('0x2')],'allowNull':![]},'type':{'type':Sequelize['ENUM']('integrationTab',_0x0999('0x5')),'defaultValue':'integrationTab'}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9fae=['../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../components/integrations/configuration','status','json','offset','undefined','limit','count','set','apply','reject','save','update','then','end','sendStatus','error','name','send','index','map','DeskAccount','rawAttributes','fieldName','key','query','keys','filters','intersection','model','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','type','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','length','create','body','find','destroy','getConfigurations','findOne','DeskConfiguration','AccountId','Subjects','getSubjects','channel','Descriptions','DeskField','priority','remoteUri','authType','consumerKey','consumerSecret','token','substring','lastIndexOf','GET','format','%s/custom_fields','application/json','basic','Authorization','Basic\x20%s','%s:%s','username','password','toString','base64','entries','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','getFields','stringify','Wrong\x20credentials','eml-format','rimraf','fast-json-patch','request-promise','moment','util','path','sox','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs'];(function(_0x3cbb22,_0x279883){var _0x4503a6=function(_0x4bbe02){while(--_0x4bbe02){_0x3cbb22['push'](_0x3cbb22['shift']());}};_0x4503a6(++_0x279883);}(_0x9fae,0xd0));var _0xe9fa=function(_0x52644c,_0x4bfa84){_0x52644c=_0x52644c-0x0;var _0x787774=_0x9fae[_0x52644c];return _0x787774;};'use strict';var emlformat=require(_0xe9fa('0x0'));var rimraf=require(_0xe9fa('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xe9fa('0x2'));var rp=require(_0xe9fa('0x3'));var moment=require(_0xe9fa('0x4'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xe9fa('0x5'));var path=require(_0xe9fa('0x6'));var sox=require(_0xe9fa('0x7'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xe9fa('0x8'));var _=require(_0xe9fa('0x9'));var squel=require(_0xe9fa('0xa'));var crypto=require(_0xe9fa('0xb'));var jsforce=require(_0xe9fa('0xc'));var deskjs=require(_0xe9fa('0xd'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xe9fa('0xe'));var Redis=require(_0xe9fa('0xf'));var authService=require(_0xe9fa('0x10'));var qs=require(_0xe9fa('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xe9fa('0x12'));var logger=require(_0xe9fa('0x13'))('api');var utils=require(_0xe9fa('0x14'));var config=require(_0xe9fa('0x15'));var licenseUtil=require(_0xe9fa('0x16'));var db=require('../../mysqldb')['db'];var integrations=require(_0xe9fa('0x17'));function respondWithStatusCode(_0x18d5b8,_0x42a077){_0x42a077=_0x42a077||0xcc;return function(_0x75252d){if(_0x75252d){return _0x18d5b8['sendStatus'](_0x42a077);}return _0x18d5b8[_0xe9fa('0x18')](_0x42a077)['end']();};}function respondWithResult(_0x2e3a3e,_0x569fa7){_0x569fa7=_0x569fa7||0xc8;return function(_0x21fe64){if(_0x21fe64){return _0x2e3a3e[_0xe9fa('0x18')](_0x569fa7)[_0xe9fa('0x19')](_0x21fe64);}};}function respondWithFilteredResult(_0x154161,_0x1f49e6){return function(_0x1ed982){if(_0x1ed982){var _0x219f42=typeof _0x1f49e6[_0xe9fa('0x1a')]===_0xe9fa('0x1b')&&typeof _0x1f49e6[_0xe9fa('0x1c')]==='undefined';var _0x3ba0d9=_0x1ed982[_0xe9fa('0x1d')];var _0x326c18=_0x219f42?0x0:_0x1f49e6['offset'];var _0x2604f9=_0x219f42?_0x1ed982[_0xe9fa('0x1d')]:_0x1f49e6['offset']+_0x1f49e6['limit'];var _0xf43a21;if(_0x2604f9>=_0x3ba0d9){_0x2604f9=_0x3ba0d9;_0xf43a21=0xc8;}else{_0xf43a21=0xce;}_0x154161['status'](_0xf43a21);return _0x154161[_0xe9fa('0x1e')]('Content-Range',_0x326c18+'-'+_0x2604f9+'/'+_0x3ba0d9)['json'](_0x1ed982);}return null;};}function patchUpdates(_0x343ef4){return function(_0x70ab63){try{jsonpatch[_0xe9fa('0x1f')](_0x70ab63,_0x343ef4,!![]);}catch(_0x3742b1){return BPromise[_0xe9fa('0x20')](_0x3742b1);}return _0x70ab63[_0xe9fa('0x21')]();};}function saveUpdates(_0x45ae9c,_0x1a7a99){return function(_0x2c7bcb){if(_0x2c7bcb){return _0x2c7bcb[_0xe9fa('0x22')](_0x45ae9c)[_0xe9fa('0x23')](function(_0x37a8da){return _0x37a8da;});}return null;};}function removeEntity(_0x51064e,_0x5251ba){return function(_0x47759b){if(_0x47759b){return _0x47759b['destroy']()['then'](function(){_0x51064e[_0xe9fa('0x18')](0xcc)[_0xe9fa('0x24')]();});}};}function handleEntityNotFound(_0x1e3c23,_0x53d24f){return function(_0x2d6d16){if(!_0x2d6d16){_0x1e3c23[_0xe9fa('0x25')](0x194);}return _0x2d6d16;};}function handleError(_0x1a93ee,_0x2dd33b){_0x2dd33b=_0x2dd33b||0x1f4;return function(_0x3b8661){logger[_0xe9fa('0x26')](_0x3b8661['stack']);if(_0x3b8661[_0xe9fa('0x27')]){delete _0x3b8661[_0xe9fa('0x27')];}_0x1a93ee[_0xe9fa('0x18')](_0x2dd33b)[_0xe9fa('0x28')](_0x3b8661);};}exports[_0xe9fa('0x29')]=function(_0x5eed83,_0x5cc27b){var _0x5aaa63={},_0x29ecfc={},_0x38157a={'count':0x0,'rows':[]};var _0x44bff3=_[_0xe9fa('0x2a')](db[_0xe9fa('0x2b')][_0xe9fa('0x2c')],function(_0x3dd8f1){return{'name':_0x3dd8f1[_0xe9fa('0x2d')],'type':_0x3dd8f1['type'][_0xe9fa('0x2e')]};});_0x29ecfc['model']=_[_0xe9fa('0x2a')](_0x44bff3,_0xe9fa('0x27'));_0x29ecfc[_0xe9fa('0x2f')]=_[_0xe9fa('0x30')](_0x5eed83[_0xe9fa('0x2f')]);_0x29ecfc[_0xe9fa('0x31')]=_[_0xe9fa('0x32')](_0x29ecfc[_0xe9fa('0x33')],_0x29ecfc['query']);_0x5aaa63[_0xe9fa('0x34')]=_[_0xe9fa('0x32')](_0x29ecfc['model'],qs[_0xe9fa('0x35')](_0x5eed83[_0xe9fa('0x2f')][_0xe9fa('0x35')]));_0x5aaa63[_0xe9fa('0x34')]=_0x5aaa63[_0xe9fa('0x34')]['length']?_0x5aaa63[_0xe9fa('0x34')]:_0x29ecfc[_0xe9fa('0x33')];if(!_0x5eed83['query'][_0xe9fa('0x36')](_0xe9fa('0x37'))){_0x5aaa63['limit']=qs[_0xe9fa('0x1c')](_0x5eed83['query']['limit']);_0x5aaa63[_0xe9fa('0x1a')]=qs['offset'](_0x5eed83[_0xe9fa('0x2f')][_0xe9fa('0x1a')]);}_0x5aaa63[_0xe9fa('0x38')]=qs[_0xe9fa('0x39')](_0x5eed83[_0xe9fa('0x2f')]['sort']);_0x5aaa63[_0xe9fa('0x3a')]=qs[_0xe9fa('0x31')](_[_0xe9fa('0x3b')](_0x5eed83[_0xe9fa('0x2f')],_0x29ecfc[_0xe9fa('0x31')]),_0x44bff3);if(_0x5eed83[_0xe9fa('0x2f')][_0xe9fa('0x3c')]){_0x5aaa63[_0xe9fa('0x3a')]=_[_0xe9fa('0x3d')](_0x5aaa63['where'],{'$or':_[_0xe9fa('0x2a')](_0x44bff3,function(_0x55c384){if(_0x55c384[_0xe9fa('0x3e')]!==_0xe9fa('0x3f')){var _0x48669f={};_0x48669f[_0x55c384['name']]={'$like':'%'+_0x5eed83['query'][_0xe9fa('0x3c')]+'%'};return _0x48669f;}})});}_0x5aaa63=_[_0xe9fa('0x3d')]({},_0x5aaa63,_0x5eed83[_0xe9fa('0x40')]);var _0x350f63={'where':_0x5aaa63[_0xe9fa('0x3a')]};return db[_0xe9fa('0x2b')][_0xe9fa('0x1d')](_0x350f63)[_0xe9fa('0x23')](function(_0x45a034){_0x38157a[_0xe9fa('0x1d')]=_0x45a034;if(_0x5eed83['query'][_0xe9fa('0x41')]){_0x5aaa63[_0xe9fa('0x42')]=[{'all':!![]}];}return db['DeskAccount'][_0xe9fa('0x43')](_0x5aaa63);})['then'](function(_0xc4be95){_0x38157a[_0xe9fa('0x44')]=_0xc4be95;return _0x38157a;})['then'](respondWithFilteredResult(_0x5cc27b,_0x5aaa63))[_0xe9fa('0x45')](handleError(_0x5cc27b,null));};exports[_0xe9fa('0x46')]=function(_0x5c0c93,_0xd1fe2c){var _0x1f2d43={'raw':![],'where':{'id':_0x5c0c93[_0xe9fa('0x47')]['id']}},_0x2a48b9={};_0x2a48b9[_0xe9fa('0x33')]=_[_0xe9fa('0x30')](db[_0xe9fa('0x2b')]['rawAttributes']);_0x2a48b9[_0xe9fa('0x2f')]=_[_0xe9fa('0x30')](_0x5c0c93[_0xe9fa('0x2f')]);_0x2a48b9['filters']=_['intersection'](_0x2a48b9[_0xe9fa('0x33')],_0x2a48b9[_0xe9fa('0x2f')]);_0x1f2d43[_0xe9fa('0x34')]=_[_0xe9fa('0x32')](_0x2a48b9['model'],qs['fields'](_0x5c0c93[_0xe9fa('0x2f')][_0xe9fa('0x35')]));_0x1f2d43[_0xe9fa('0x34')]=_0x1f2d43['attributes'][_0xe9fa('0x48')]?_0x1f2d43[_0xe9fa('0x34')]:_0x2a48b9[_0xe9fa('0x33')];if(_0x5c0c93[_0xe9fa('0x2f')][_0xe9fa('0x41')]){_0x1f2d43[_0xe9fa('0x42')]=[{'all':!![]}];}_0x1f2d43=_[_0xe9fa('0x3d')]({},_0x1f2d43,_0x5c0c93[_0xe9fa('0x40')]);return db[_0xe9fa('0x2b')]['find'](_0x1f2d43)[_0xe9fa('0x23')](handleEntityNotFound(_0xd1fe2c,null))[_0xe9fa('0x23')](respondWithResult(_0xd1fe2c,null))[_0xe9fa('0x45')](handleError(_0xd1fe2c,null));};exports[_0xe9fa('0x49')]=function(_0x33d57e,_0x2880f4){return db[_0xe9fa('0x2b')][_0xe9fa('0x49')](_0x33d57e[_0xe9fa('0x4a')],{})[_0xe9fa('0x23')](respondWithResult(_0x2880f4,0xc9))[_0xe9fa('0x45')](handleError(_0x2880f4,null));};exports[_0xe9fa('0x22')]=function(_0xa35c38,_0x5f588f){if(_0xa35c38[_0xe9fa('0x4a')]['id']){delete _0xa35c38[_0xe9fa('0x4a')]['id'];}return db[_0xe9fa('0x2b')][_0xe9fa('0x4b')]({'where':{'id':_0xa35c38['params']['id']}})['then'](handleEntityNotFound(_0x5f588f,null))[_0xe9fa('0x23')](saveUpdates(_0xa35c38[_0xe9fa('0x4a')],null))[_0xe9fa('0x23')](respondWithResult(_0x5f588f,null))['catch'](handleError(_0x5f588f,null));};exports[_0xe9fa('0x4c')]=function(_0xf80754,_0x1e585e){return db[_0xe9fa('0x2b')][_0xe9fa('0x4b')]({'where':{'id':_0xf80754[_0xe9fa('0x47')]['id']}})[_0xe9fa('0x23')](handleEntityNotFound(_0x1e585e,null))[_0xe9fa('0x23')](removeEntity(_0x1e585e,null))[_0xe9fa('0x45')](handleError(_0x1e585e,null));};exports[_0xe9fa('0x4d')]=function(_0x9040ef,_0x4cec5d,_0x47aa82){var _0x8e908e={};var _0x804b8a={};var _0x333b37;var _0x55900a;return db[_0xe9fa('0x2b')][_0xe9fa('0x4e')]({'where':{'id':_0x9040ef['params']['id']}})[_0xe9fa('0x23')](handleEntityNotFound(_0x4cec5d,null))[_0xe9fa('0x23')](function(_0x849050){if(_0x849050){_0x333b37=_0x849050;_0x804b8a[_0xe9fa('0x33')]=_[_0xe9fa('0x30')](db[_0xe9fa('0x4f')]['rawAttributes']);_0x804b8a[_0xe9fa('0x2f')]=_[_0xe9fa('0x30')](_0x9040ef['query']);_0x804b8a[_0xe9fa('0x31')]=_[_0xe9fa('0x32')](_0x804b8a[_0xe9fa('0x33')],_0x804b8a['query']);_0x8e908e['attributes']=_['intersection'](_0x804b8a[_0xe9fa('0x33')],qs['fields'](_0x9040ef[_0xe9fa('0x2f')][_0xe9fa('0x35')]));_0x8e908e[_0xe9fa('0x34')]=_0x8e908e[_0xe9fa('0x34')][_0xe9fa('0x48')]?_0x8e908e[_0xe9fa('0x34')]:_0x804b8a[_0xe9fa('0x33')];_0x8e908e[_0xe9fa('0x38')]=qs[_0xe9fa('0x39')](_0x9040ef[_0xe9fa('0x2f')][_0xe9fa('0x39')]);_0x8e908e[_0xe9fa('0x3a')]=qs[_0xe9fa('0x31')](_[_0xe9fa('0x3b')](_0x9040ef['query'],_0x804b8a[_0xe9fa('0x31')]));if(_0x9040ef[_0xe9fa('0x2f')]['filter']){_0x8e908e[_0xe9fa('0x3a')]=_[_0xe9fa('0x3d')](_0x8e908e[_0xe9fa('0x3a')],{'$or':_[_0xe9fa('0x2a')](_0x8e908e['attributes'],function(_0xf16eea){var _0x589e66={};_0x589e66[_0xf16eea]={'$like':'%'+_0x9040ef[_0xe9fa('0x2f')][_0xe9fa('0x3c')]+'%'};return _0x589e66;})});}_0x8e908e=_[_0xe9fa('0x3d')]({},_0x8e908e,_0x9040ef['options']);return _0x333b37[_0xe9fa('0x4d')](_0x8e908e);}})[_0xe9fa('0x23')](function(_0x2a42a9){if(_0x2a42a9){_0x55900a=_0x2a42a9[_0xe9fa('0x48')];if(!_0x9040ef[_0xe9fa('0x2f')][_0xe9fa('0x36')](_0xe9fa('0x37'))){_0x8e908e[_0xe9fa('0x1c')]=qs[_0xe9fa('0x1c')](_0x9040ef['query'][_0xe9fa('0x1c')]);_0x8e908e[_0xe9fa('0x1a')]=qs[_0xe9fa('0x1a')](_0x9040ef['query']['offset']);}return _0x333b37[_0xe9fa('0x4d')](_0x8e908e);}})['then'](function(_0x34f339){if(_0x34f339){return _0x34f339?{'count':_0x55900a,'rows':_0x34f339}:null;}})[_0xe9fa('0x23')](respondWithResult(_0x4cec5d,null))['catch'](handleError(_0x4cec5d,null));};exports['addConfiguration']=function(_0x2b74c3,_0x233109,_0x581d6e){if(_0x2b74c3['body']['id']){delete _0x2b74c3[_0xe9fa('0x4a')]['id'];}return db['DeskAccount'][_0xe9fa('0x4e')]({'where':{'id':_0x2b74c3[_0xe9fa('0x47')]['id']}})[_0xe9fa('0x23')](handleEntityNotFound(_0x233109,null))[_0xe9fa('0x23')](function(_0x2ef594){if(_0x2ef594){_0x2b74c3[_0xe9fa('0x4a')][_0xe9fa('0x50')]=_0x2ef594['id'];_0x2b74c3['body'][_0xe9fa('0x51')]=integrations[_0xe9fa('0x52')](_0x2b74c3[_0xe9fa('0x4a')][_0xe9fa('0x53')],_0x2b74c3[_0xe9fa('0x4a')][_0xe9fa('0x3e')]);_0x2b74c3[_0xe9fa('0x4a')][_0xe9fa('0x54')]=integrations['getDescriptions'](_0x2b74c3[_0xe9fa('0x4a')][_0xe9fa('0x53')],_0x2b74c3['body'][_0xe9fa('0x3e')]);return db[_0xe9fa('0x4f')][_0xe9fa('0x49')](_0x2b74c3[_0xe9fa('0x4a')],{'include':[{'model':db[_0xe9fa('0x55')],'as':_0xe9fa('0x51')},{'model':db[_0xe9fa('0x55')],'as':_0xe9fa('0x54')}]});}return null;})['then'](respondWithResult(_0x233109,null))[_0xe9fa('0x45')](handleError(_0x233109,null));};exports['getFields']=function(_0x3b7b5b,_0x581930,_0x245150){var _0x8f270b=[{'name':_0xe9fa('0x56'),'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 _0x6f3c20='';return db[_0xe9fa('0x2b')][_0xe9fa('0x4e')]({'where':{'id':_0x3b7b5b[_0xe9fa('0x47')]['id']},'attributes':['id',_0xe9fa('0x57'),_0xe9fa('0x58'),'username','password',_0xe9fa('0x59'),_0xe9fa('0x5a'),_0xe9fa('0x5b'),'tokenSecret']})[_0xe9fa('0x23')](handleEntityNotFound(_0x581930,null))[_0xe9fa('0x23')](function(_0x4ef77c){if(_0x4ef77c){_0x6f3c20=_0x4ef77c['remoteUri'];var _0x3994d1=_0x6f3c20['slice'](-0x1);if(_0x3994d1==='/'){_0x6f3c20=_0x6f3c20[_0xe9fa('0x5c')](0x0,_0x6f3c20[_0xe9fa('0x5d')](_0x3994d1));}var _0x533a17={'method':_0xe9fa('0x5e'),'uri':util[_0xe9fa('0x5f')](_0xe9fa('0x60'),_0x6f3c20),'headers':{'Content-Type':'application/json','Accept':_0xe9fa('0x61')},'json':!![]};if(_0x4ef77c[_0xe9fa('0x58')]===_0xe9fa('0x62')){_0x533a17['headers'][_0xe9fa('0x63')]=util[_0xe9fa('0x5f')](_0xe9fa('0x64'),new Buffer(util['format'](_0xe9fa('0x65'),_0x4ef77c[_0xe9fa('0x66')],_0x4ef77c[_0xe9fa('0x67')]))[_0xe9fa('0x68')](_0xe9fa('0x69')));}return rp(_0x533a17)[_0xe9fa('0x23')](function(_0x3f2418){return _0x8f270b['concat'](_['map'](_0x3f2418['_embedded'][_0xe9fa('0x6a')],function(_0x4f290d){return{'id':_0x4f290d[_0xe9fa('0x27')],'name':_0x4f290d[_0xe9fa('0x27')],'type':_0x4f290d['type'],'active':_0x4f290d['active'],'label':_0x4f290d['label'],'custom':!![]};}));});}})[_0xe9fa('0x23')](function(_0x210284){return{'count':_0x210284[_0xe9fa('0x48')],'rows':_0x210284};})[_0xe9fa('0x23')](respondWithResult(_0x581930,null))['catch'](function(_0x20d574){var _0x259ebe=_0x3b7b5b['query'][_0xe9fa('0x6b')]?0x1f4:_0x20d574[_0xe9fa('0x6c')]||0x1f4;logger[_0xe9fa('0x26')](_0xe9fa('0x6d'),_0xe9fa('0x6e'),_0x259ebe,JSON[_0xe9fa('0x6f')](_0x20d574));delete _0x20d574[_0xe9fa('0x27')];if(_0x259ebe===0x191){_0x259ebe=0x190;}_0x581930[_0xe9fa('0x18')](_0x259ebe)[_0xe9fa('0x28')](_0x3b7b5b['query'][_0xe9fa('0x6b')]?{'message':_0xe9fa('0x70'),'statusCode':_0x20d574['statusCode']}:_0x20d574);});};
\ No newline at end of file
+var _0x3f73=['ejs','lodash','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','../../components/integrations/configuration','sendStatus','status','json','offset','limit','undefined','count','set','apply','reject','update','destroy','then','end','error','stack','name','send','DeskAccount','rawAttributes','fieldName','type','key','model','keys','query','attributes','intersection','fields','length','hasOwnProperty','nolimit','sort','where','pick','filters','filter','merge','map','VIRTUAL','include','findAll','rows','catch','show','params','find','create','body','getConfigurations','findOne','DeskConfiguration','options','addConfiguration','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','DeskField','getFields','priority','authType','username','consumerKey','consumerSecret','token','tokenSecret','slice','lastIndexOf','format','%s/custom_fields','application/json','basic','Authorization','Basic\x20%s','%s:%s','password','toString','base64','concat','_embedded','entries','active','test','statusCode','Wrong\x20credentials','eml-format','rimraf','fast-json-patch','bluebird','mustache','util'];(function(_0x1c586c,_0x56df50){var _0x2b9945=function(_0x42de16){while(--_0x42de16){_0x1c586c['push'](_0x1c586c['shift']());}};_0x2b9945(++_0x56df50);}(_0x3f73,0x68));var _0x33f7=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0x3f73[_0x20a584];return _0x4b41a8;};'use strict';var emlformat=require(_0x33f7('0x0'));var rimraf=require(_0x33f7('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x33f7('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x33f7('0x3'));var Mustache=require(_0x33f7('0x4'));var util=require(_0x33f7('0x5'));var path=require('path');var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x33f7('0x6'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x33f7('0x7'));var squel=require('squel');var crypto=require(_0x33f7('0x8'));var jsforce=require(_0x33f7('0x9'));var deskjs=require(_0x33f7('0xa'));var toCsv=require('to-csv');var querystring=require(_0x33f7('0xb'));var Papa=require(_0x33f7('0xc'));var Redis=require(_0x33f7('0xd'));var authService=require(_0x33f7('0xe'));var qs=require(_0x33f7('0xf'));var as=require(_0x33f7('0x10'));var hardwareService=require(_0x33f7('0x11'));var logger=require(_0x33f7('0x12'))('api');var utils=require(_0x33f7('0x13'));var config=require('../../config/environment');var licenseUtil=require(_0x33f7('0x14'));var db=require('../../mysqldb')['db'];var integrations=require(_0x33f7('0x15'));function respondWithStatusCode(_0x3019e2,_0x358894){_0x358894=_0x358894||0xcc;return function(_0x862e08){if(_0x862e08){return _0x3019e2[_0x33f7('0x16')](_0x358894);}return _0x3019e2['status'](_0x358894)['end']();};}function respondWithResult(_0x1ae8d8,_0x279b50){_0x279b50=_0x279b50||0xc8;return function(_0x265660){if(_0x265660){return _0x1ae8d8[_0x33f7('0x17')](_0x279b50)[_0x33f7('0x18')](_0x265660);}};}function respondWithFilteredResult(_0x1595ee,_0xa94116){return function(_0xe98702){if(_0xe98702){var _0x555cb8=typeof _0xa94116[_0x33f7('0x19')]==='undefined'&&typeof _0xa94116[_0x33f7('0x1a')]===_0x33f7('0x1b');var _0xcb6dbc=_0xe98702[_0x33f7('0x1c')];var _0x2b94f1=_0x555cb8?0x0:_0xa94116['offset'];var _0x5b6884=_0x555cb8?_0xe98702[_0x33f7('0x1c')]:_0xa94116[_0x33f7('0x19')]+_0xa94116[_0x33f7('0x1a')];var _0x2b3465;if(_0x5b6884>=_0xcb6dbc){_0x5b6884=_0xcb6dbc;_0x2b3465=0xc8;}else{_0x2b3465=0xce;}_0x1595ee[_0x33f7('0x17')](_0x2b3465);return _0x1595ee[_0x33f7('0x1d')]('Content-Range',_0x2b94f1+'-'+_0x5b6884+'/'+_0xcb6dbc)[_0x33f7('0x18')](_0xe98702);}return null;};}function patchUpdates(_0x3e9482){return function(_0x215294){try{jsonpatch[_0x33f7('0x1e')](_0x215294,_0x3e9482,!![]);}catch(_0x3d053f){return BPromise[_0x33f7('0x1f')](_0x3d053f);}return _0x215294['save']();};}function saveUpdates(_0x485408,_0x500cde){return function(_0x5b6911){if(_0x5b6911){return _0x5b6911[_0x33f7('0x20')](_0x485408)['then'](function(_0x24562a){return _0x24562a;});}return null;};}function removeEntity(_0x5a34f7,_0x59c991){return function(_0x107781){if(_0x107781){return _0x107781[_0x33f7('0x21')]()[_0x33f7('0x22')](function(){_0x5a34f7['status'](0xcc)[_0x33f7('0x23')]();});}};}function handleEntityNotFound(_0x5ca6ea,_0x4a309e){return function(_0x4726da){if(!_0x4726da){_0x5ca6ea['sendStatus'](0x194);}return _0x4726da;};}function handleError(_0x192698,_0x2008b9){_0x2008b9=_0x2008b9||0x1f4;return function(_0x53ea04){logger[_0x33f7('0x24')](_0x53ea04[_0x33f7('0x25')]);if(_0x53ea04[_0x33f7('0x26')]){delete _0x53ea04[_0x33f7('0x26')];}_0x192698[_0x33f7('0x17')](_0x2008b9)[_0x33f7('0x27')](_0x53ea04);};}exports['index']=function(_0x409328,_0x1a116f){var _0x300aca={},_0x23b9cc={},_0x51e35f={'count':0x0,'rows':[]};var _0x4f0eef=_['map'](db[_0x33f7('0x28')][_0x33f7('0x29')],function(_0x465a69){return{'name':_0x465a69[_0x33f7('0x2a')],'type':_0x465a69[_0x33f7('0x2b')][_0x33f7('0x2c')]};});_0x23b9cc[_0x33f7('0x2d')]=_['map'](_0x4f0eef,'name');_0x23b9cc['query']=_[_0x33f7('0x2e')](_0x409328[_0x33f7('0x2f')]);_0x23b9cc['filters']=_['intersection'](_0x23b9cc[_0x33f7('0x2d')],_0x23b9cc[_0x33f7('0x2f')]);_0x300aca[_0x33f7('0x30')]=_[_0x33f7('0x31')](_0x23b9cc[_0x33f7('0x2d')],qs[_0x33f7('0x32')](_0x409328[_0x33f7('0x2f')][_0x33f7('0x32')]));_0x300aca[_0x33f7('0x30')]=_0x300aca[_0x33f7('0x30')][_0x33f7('0x33')]?_0x300aca[_0x33f7('0x30')]:_0x23b9cc[_0x33f7('0x2d')];if(!_0x409328[_0x33f7('0x2f')][_0x33f7('0x34')](_0x33f7('0x35'))){_0x300aca[_0x33f7('0x1a')]=qs[_0x33f7('0x1a')](_0x409328[_0x33f7('0x2f')][_0x33f7('0x1a')]);_0x300aca[_0x33f7('0x19')]=qs['offset'](_0x409328[_0x33f7('0x2f')]['offset']);}_0x300aca['order']=qs[_0x33f7('0x36')](_0x409328[_0x33f7('0x2f')][_0x33f7('0x36')]);_0x300aca[_0x33f7('0x37')]=qs['filters'](_[_0x33f7('0x38')](_0x409328['query'],_0x23b9cc[_0x33f7('0x39')]),_0x4f0eef);if(_0x409328[_0x33f7('0x2f')][_0x33f7('0x3a')]){_0x300aca[_0x33f7('0x37')]=_[_0x33f7('0x3b')](_0x300aca[_0x33f7('0x37')],{'$or':_[_0x33f7('0x3c')](_0x4f0eef,function(_0x587f4b){if(_0x587f4b[_0x33f7('0x2b')]!==_0x33f7('0x3d')){var _0x4360c3={};_0x4360c3[_0x587f4b['name']]={'$like':'%'+_0x409328[_0x33f7('0x2f')]['filter']+'%'};return _0x4360c3;}})});}_0x300aca=_[_0x33f7('0x3b')]({},_0x300aca,_0x409328['options']);var _0x5bd1ad={'where':_0x300aca[_0x33f7('0x37')]};return db['DeskAccount'][_0x33f7('0x1c')](_0x5bd1ad)['then'](function(_0x3fbea9){_0x51e35f['count']=_0x3fbea9;if(_0x409328[_0x33f7('0x2f')]['includeAll']){_0x300aca[_0x33f7('0x3e')]=[{'all':!![]}];}return db[_0x33f7('0x28')][_0x33f7('0x3f')](_0x300aca);})[_0x33f7('0x22')](function(_0xda4255){_0x51e35f[_0x33f7('0x40')]=_0xda4255;return _0x51e35f;})[_0x33f7('0x22')](respondWithFilteredResult(_0x1a116f,_0x300aca))[_0x33f7('0x41')](handleError(_0x1a116f,null));};exports[_0x33f7('0x42')]=function(_0x658156,_0x317f9d){var _0x28b6a0={'raw':![],'where':{'id':_0x658156[_0x33f7('0x43')]['id']}},_0x22651f={};_0x22651f['model']=_[_0x33f7('0x2e')](db[_0x33f7('0x28')]['rawAttributes']);_0x22651f['query']=_[_0x33f7('0x2e')](_0x658156[_0x33f7('0x2f')]);_0x22651f['filters']=_[_0x33f7('0x31')](_0x22651f[_0x33f7('0x2d')],_0x22651f[_0x33f7('0x2f')]);_0x28b6a0[_0x33f7('0x30')]=_[_0x33f7('0x31')](_0x22651f['model'],qs['fields'](_0x658156['query'][_0x33f7('0x32')]));_0x28b6a0['attributes']=_0x28b6a0['attributes'][_0x33f7('0x33')]?_0x28b6a0[_0x33f7('0x30')]:_0x22651f['model'];if(_0x658156[_0x33f7('0x2f')]['includeAll']){_0x28b6a0[_0x33f7('0x3e')]=[{'all':!![]}];}_0x28b6a0=_[_0x33f7('0x3b')]({},_0x28b6a0,_0x658156['options']);return db[_0x33f7('0x28')][_0x33f7('0x44')](_0x28b6a0)[_0x33f7('0x22')](handleEntityNotFound(_0x317f9d,null))['then'](respondWithResult(_0x317f9d,null))[_0x33f7('0x41')](handleError(_0x317f9d,null));};exports[_0x33f7('0x45')]=function(_0x5b518d,_0x1817da){return db[_0x33f7('0x28')][_0x33f7('0x45')](_0x5b518d[_0x33f7('0x46')],{})['then'](respondWithResult(_0x1817da,0xc9))[_0x33f7('0x41')](handleError(_0x1817da,null));};exports[_0x33f7('0x20')]=function(_0x2a0fab,_0x1d1009){if(_0x2a0fab[_0x33f7('0x46')]['id']){delete _0x2a0fab[_0x33f7('0x46')]['id'];}return db['DeskAccount']['find']({'where':{'id':_0x2a0fab[_0x33f7('0x43')]['id']}})['then'](handleEntityNotFound(_0x1d1009,null))[_0x33f7('0x22')](saveUpdates(_0x2a0fab[_0x33f7('0x46')],null))[_0x33f7('0x22')](respondWithResult(_0x1d1009,null))['catch'](handleError(_0x1d1009,null));};exports['destroy']=function(_0x3f9659,_0x58df2e){return db['DeskAccount'][_0x33f7('0x44')]({'where':{'id':_0x3f9659[_0x33f7('0x43')]['id']}})[_0x33f7('0x22')](handleEntityNotFound(_0x58df2e,null))[_0x33f7('0x22')](removeEntity(_0x58df2e,null))[_0x33f7('0x41')](handleError(_0x58df2e,null));};exports[_0x33f7('0x47')]=function(_0x17b88e,_0x3a36f4,_0x6691e2){var _0x16881f={};var _0x31c35a={};var _0x2f1295;var _0x33cac6;return db[_0x33f7('0x28')][_0x33f7('0x48')]({'where':{'id':_0x17b88e['params']['id']}})[_0x33f7('0x22')](handleEntityNotFound(_0x3a36f4,null))[_0x33f7('0x22')](function(_0x17e01b){if(_0x17e01b){_0x2f1295=_0x17e01b;_0x31c35a['model']=_[_0x33f7('0x2e')](db[_0x33f7('0x49')][_0x33f7('0x29')]);_0x31c35a[_0x33f7('0x2f')]=_[_0x33f7('0x2e')](_0x17b88e['query']);_0x31c35a[_0x33f7('0x39')]=_[_0x33f7('0x31')](_0x31c35a[_0x33f7('0x2d')],_0x31c35a[_0x33f7('0x2f')]);_0x16881f[_0x33f7('0x30')]=_['intersection'](_0x31c35a[_0x33f7('0x2d')],qs[_0x33f7('0x32')](_0x17b88e['query']['fields']));_0x16881f['attributes']=_0x16881f['attributes']['length']?_0x16881f[_0x33f7('0x30')]:_0x31c35a['model'];_0x16881f['order']=qs['sort'](_0x17b88e[_0x33f7('0x2f')][_0x33f7('0x36')]);_0x16881f[_0x33f7('0x37')]=qs['filters'](_[_0x33f7('0x38')](_0x17b88e[_0x33f7('0x2f')],_0x31c35a[_0x33f7('0x39')]));if(_0x17b88e['query']['filter']){_0x16881f[_0x33f7('0x37')]=_['merge'](_0x16881f[_0x33f7('0x37')],{'$or':_[_0x33f7('0x3c')](_0x16881f[_0x33f7('0x30')],function(_0x10f764){var _0x879568={};_0x879568[_0x10f764]={'$like':'%'+_0x17b88e['query']['filter']+'%'};return _0x879568;})});}_0x16881f=_[_0x33f7('0x3b')]({},_0x16881f,_0x17b88e[_0x33f7('0x4a')]);return _0x2f1295[_0x33f7('0x47')](_0x16881f);}})['then'](function(_0x4b89ab){if(_0x4b89ab){_0x33cac6=_0x4b89ab['length'];if(!_0x17b88e['query'][_0x33f7('0x34')](_0x33f7('0x35'))){_0x16881f[_0x33f7('0x1a')]=qs[_0x33f7('0x1a')](_0x17b88e[_0x33f7('0x2f')][_0x33f7('0x1a')]);_0x16881f[_0x33f7('0x19')]=qs[_0x33f7('0x19')](_0x17b88e[_0x33f7('0x2f')][_0x33f7('0x19')]);}return _0x2f1295[_0x33f7('0x47')](_0x16881f);}})[_0x33f7('0x22')](function(_0x2ab492){if(_0x2ab492){return _0x2ab492?{'count':_0x33cac6,'rows':_0x2ab492}:null;}})[_0x33f7('0x22')](respondWithResult(_0x3a36f4,null))[_0x33f7('0x41')](handleError(_0x3a36f4,null));};exports[_0x33f7('0x4b')]=function(_0x55cea1,_0x4ef11e,_0x236322){if(_0x55cea1[_0x33f7('0x46')]['id']){delete _0x55cea1[_0x33f7('0x46')]['id'];}return db[_0x33f7('0x28')]['findOne']({'where':{'id':_0x55cea1['params']['id']}})[_0x33f7('0x22')](handleEntityNotFound(_0x4ef11e,null))['then'](function(_0x46b198){if(_0x46b198){_0x55cea1[_0x33f7('0x46')][_0x33f7('0x4c')]=_0x46b198['id'];_0x55cea1[_0x33f7('0x46')][_0x33f7('0x4d')]=integrations[_0x33f7('0x4e')](_0x55cea1[_0x33f7('0x46')][_0x33f7('0x4f')],_0x55cea1[_0x33f7('0x46')][_0x33f7('0x2b')]);_0x55cea1['body'][_0x33f7('0x50')]=integrations[_0x33f7('0x51')](_0x55cea1[_0x33f7('0x46')]['channel'],_0x55cea1[_0x33f7('0x46')][_0x33f7('0x2b')]);return db[_0x33f7('0x49')][_0x33f7('0x45')](_0x55cea1[_0x33f7('0x46')],{'include':[{'model':db[_0x33f7('0x52')],'as':_0x33f7('0x4d')},{'model':db[_0x33f7('0x52')],'as':'Descriptions'}]});}return null;})[_0x33f7('0x22')](respondWithResult(_0x4ef11e,null))['catch'](handleError(_0x4ef11e,null));};exports[_0x33f7('0x53')]=function(_0x24b819,_0x80dbbe,_0x585f9c){var _0x4b7cf0=[{'name':_0x33f7('0x54'),'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 _0x1aeaf8='';return db[_0x33f7('0x28')]['findOne']({'where':{'id':_0x24b819['params']['id']},'attributes':['id','remoteUri',_0x33f7('0x55'),_0x33f7('0x56'),'password',_0x33f7('0x57'),_0x33f7('0x58'),_0x33f7('0x59'),_0x33f7('0x5a')]})[_0x33f7('0x22')](handleEntityNotFound(_0x80dbbe,null))['then'](function(_0xb859ec){if(_0xb859ec){_0x1aeaf8=_0xb859ec['remoteUri'];var _0x3ec326=_0x1aeaf8[_0x33f7('0x5b')](-0x1);if(_0x3ec326==='/'){_0x1aeaf8=_0x1aeaf8['substring'](0x0,_0x1aeaf8[_0x33f7('0x5c')](_0x3ec326));}var _0x1fc6bf={'method':'GET','uri':util[_0x33f7('0x5d')](_0x33f7('0x5e'),_0x1aeaf8),'headers':{'Content-Type':_0x33f7('0x5f'),'Accept':'application/json'},'json':!![]};if(_0xb859ec[_0x33f7('0x55')]===_0x33f7('0x60')){_0x1fc6bf['headers'][_0x33f7('0x61')]=util['format'](_0x33f7('0x62'),new Buffer(util[_0x33f7('0x5d')](_0x33f7('0x63'),_0xb859ec['username'],_0xb859ec[_0x33f7('0x64')]))[_0x33f7('0x65')](_0x33f7('0x66')));}return rp(_0x1fc6bf)['then'](function(_0x214c82){return _0x4b7cf0[_0x33f7('0x67')](_['map'](_0x214c82[_0x33f7('0x68')][_0x33f7('0x69')],function(_0x434305){return{'id':_0x434305[_0x33f7('0x26')],'name':_0x434305[_0x33f7('0x26')],'type':_0x434305[_0x33f7('0x2b')],'active':_0x434305[_0x33f7('0x6a')],'label':_0x434305['label'],'custom':!![]};}));});}})[_0x33f7('0x22')](function(_0x538d93){return{'count':_0x538d93[_0x33f7('0x33')],'rows':_0x538d93};})[_0x33f7('0x22')](respondWithResult(_0x80dbbe,null))[_0x33f7('0x41')](function(_0x2ed5b0){var _0x551ed8=_0x24b819[_0x33f7('0x2f')][_0x33f7('0x6b')]?0x1f4:_0x2ed5b0[_0x33f7('0x6c')]||0x1f4;logger['error']('getFields,\x20%s,\x20%s,\x20%s',_0x33f7('0x53'),_0x551ed8,JSON['stringify'](_0x2ed5b0));delete _0x2ed5b0[_0x33f7('0x26')];if(_0x551ed8===0x191){_0x551ed8=0x190;}_0x80dbbe['status'](_0x551ed8)['send'](_0x24b819[_0x33f7('0x2f')][_0x33f7('0x6b')]?{'message':_0x33f7('0x6d'),'statusCode':_0x2ed5b0[_0x33f7('0x6c')]}:_0x2ed5b0);});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf880=['request-promise','path','rimraf','../../config/environment','./intDeskAccount.attributes','../../components/integrations/configuration','define','DeskAccount','int_desk_accounts','lodash','util','../../config/logger','api','moment','bluebird'];(function(_0xfde566,_0x3dad80){var _0xf52d2=function(_0x2d8972){while(--_0x2d8972){_0xfde566['push'](_0xfde566['shift']());}};_0xf52d2(++_0x3dad80);}(_0xf880,0x171));var _0x0f88=function(_0x1a0daa,_0x2a4634){_0x1a0daa=_0x1a0daa-0x0;var _0x1dbe15=_0xf880[_0x1a0daa];return _0x1dbe15;};'use strict';var _=require(_0x0f88('0x0'));var util=require(_0x0f88('0x1'));var logger=require(_0x0f88('0x2'))(_0x0f88('0x3'));var moment=require(_0x0f88('0x4'));var BPromise=require(_0x0f88('0x5'));var rp=require(_0x0f88('0x6'));var fs=require('fs');var path=require(_0x0f88('0x7'));var rimraf=require(_0x0f88('0x8'));var config=require(_0x0f88('0x9'));var attributes=require(_0x0f88('0xa'));var integrations=require(_0x0f88('0xb'));module['exports']=function(_0x1b97ca,_0x4bf90e){return _0x1b97ca[_0x0f88('0xc')](_0x0f88('0xd'),attributes,{'tableName':_0x0f88('0xe'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xa11e=['DeskAccount','int_desk_accounts','lodash','../../config/logger','api','moment','request-promise','path','rimraf','../../config/environment','./intDeskAccount.attributes','../../components/integrations/configuration','exports','define'];(function(_0x408de5,_0x24fa7b){var _0x2015a1=function(_0x13082c){while(--_0x13082c){_0x408de5['push'](_0x408de5['shift']());}};_0x2015a1(++_0x24fa7b);}(_0xa11e,0x8e));var _0xea11=function(_0x5c9e85,_0x2d5db2){_0x5c9e85=_0x5c9e85-0x0;var _0x2c57a7=_0xa11e[_0x5c9e85];return _0x2c57a7;};'use strict';var _=require(_0xea11('0x0'));var util=require('util');var logger=require(_0xea11('0x1'))(_0xea11('0x2'));var moment=require(_0xea11('0x3'));var BPromise=require('bluebird');var rp=require(_0xea11('0x4'));var fs=require('fs');var path=require(_0xea11('0x5'));var rimraf=require(_0xea11('0x6'));var config=require(_0xea11('0x7'));var attributes=require(_0xea11('0x8'));var integrations=require(_0xea11('0x9'));module[_0xea11('0xa')]=function(_0x30a5f3,_0x471ba9){return _0x30a5f3[_0xea11('0xb')](_0xea11('0xc'),attributes,{'tableName':_0xea11('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9b20=['debug','DeskAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','catch','DeskAccount','findAll','options','raw','where','include','model','attributes','map','GetDeskAccount','ShowDeskAccount','find','lodash','util','moment','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','request','then','info','DeskAccount,\x20%s,\x20%s','request\x20sent'];(function(_0x4b7895,_0x3c4f5d){var _0x264180=function(_0xe0e861){while(--_0xe0e861){_0x4b7895['push'](_0x4b7895['shift']());}};_0x264180(++_0x3c4f5d);}(_0x9b20,0x123));var _0x09b2=function(_0x2b195b,_0x3ab6ae){_0x2b195b=_0x2b195b-0x0;var _0x14453a=_0x9b20[_0x2b195b];return _0x14453a;};'use strict';var _=require(_0x09b2('0x0'));var util=require(_0x09b2('0x1'));var moment=require(_0x09b2('0x2'));var BPromise=require('bluebird');var rs=require(_0x09b2('0x3'));var fs=require('fs');var Redis=require(_0x09b2('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x09b2('0x5'));var logger=require(_0x09b2('0x6'))(_0x09b2('0x7'));var config=require(_0x09b2('0x8'));var jayson=require(_0x09b2('0x9'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0xbb3932,_0x128d08,_0x30d07e){return new BPromise(function(_0x30592d,_0x4a130a){return client[_0x09b2('0xa')](_0xbb3932,_0x30d07e)[_0x09b2('0xb')](function(_0x2e5c63){logger[_0x09b2('0xc')](_0x09b2('0xd'),_0x128d08,_0x09b2('0xe'));logger[_0x09b2('0xf')](_0x09b2('0x10'),_0x128d08,_0x09b2('0xe'),JSON[_0x09b2('0x11')](_0x2e5c63));if(_0x2e5c63['error']){if(_0x2e5c63[_0x09b2('0x12')][_0x09b2('0x13')]===0x1f4){logger['error']('DeskAccount,\x20%s,\x20%s',_0x128d08,_0x2e5c63[_0x09b2('0x12')][_0x09b2('0x14')]);return _0x4a130a(_0x2e5c63['error'][_0x09b2('0x14')]);}logger['error'](_0x09b2('0xd'),_0x128d08,_0x2e5c63['error']['message']);return _0x30592d(_0x2e5c63[_0x09b2('0x12')][_0x09b2('0x14')]);}else{logger['info']('DeskAccount,\x20%s,\x20%s',_0x128d08,_0x09b2('0xe'));_0x30592d(_0x2e5c63['result'][_0x09b2('0x14')]);}})[_0x09b2('0x15')](function(_0x47f4e5){logger[_0x09b2('0x12')](_0x09b2('0xd'),_0x128d08,_0x47f4e5);_0x4a130a(_0x47f4e5);});});}exports['GetDeskAccount']=function(_0x178c40){var _0x173251=this;return new Promise(function(_0x4b567b,_0x1487e0){return db[_0x09b2('0x16')][_0x09b2('0x17')]({'raw':_0x178c40[_0x09b2('0x18')]?_0x178c40['options'][_0x09b2('0x19')]===undefined?!![]:![]:!![],'where':_0x178c40[_0x09b2('0x18')]?_0x178c40[_0x09b2('0x18')][_0x09b2('0x1a')]||null:null,'attributes':_0x178c40[_0x09b2('0x18')]?_0x178c40[_0x09b2('0x18')]['attributes']||null:null,'limit':_0x178c40['options']?_0x178c40[_0x09b2('0x18')]['limit']||null:null,'include':_0x178c40[_0x09b2('0x18')]?_0x178c40[_0x09b2('0x18')]['include']?_['map'](_0x178c40[_0x09b2('0x18')][_0x09b2('0x1b')],function(_0x143938){return{'model':db[_0x143938[_0x09b2('0x1c')]],'as':_0x143938['as'],'attributes':_0x143938[_0x09b2('0x1d')],'include':_0x143938[_0x09b2('0x1b')]?_[_0x09b2('0x1e')](_0x143938[_0x09b2('0x1b')],function(_0x14d763){return{'model':db[_0x14d763[_0x09b2('0x1c')]],'as':_0x14d763['as'],'attributes':_0x14d763['attributes'],'include':_0x14d763[_0x09b2('0x1b')]?_[_0x09b2('0x1e')](_0x14d763[_0x09b2('0x1b')],function(_0x470d4b){return{'model':db[_0x470d4b[_0x09b2('0x1c')]],'as':_0x470d4b['as'],'attributes':_0x470d4b[_0x09b2('0x1d')]};}):[]};}):[]};}):[]:[]})[_0x09b2('0xb')](function(_0x4ccc85){logger[_0x09b2('0xc')](_0x09b2('0x1f'),_0x178c40);logger['debug'](_0x09b2('0x1f'),_0x178c40,JSON[_0x09b2('0x11')](_0x4ccc85));_0x4b567b(_0x4ccc85);})[_0x09b2('0x15')](function(_0x24f01b){logger[_0x09b2('0x12')](_0x09b2('0x1f'),_0x24f01b['message'],_0x178c40);_0x1487e0(_0x173251['error'](0x1f4,_0x24f01b['message']));});});};exports[_0x09b2('0x20')]=function(_0x1c8d3c){var _0x59f139=this;return new Promise(function(_0x1fc972,_0x56b43a){return db[_0x09b2('0x16')][_0x09b2('0x21')]({'raw':_0x1c8d3c['options']?_0x1c8d3c[_0x09b2('0x18')][_0x09b2('0x19')]===undefined?!![]:![]:!![],'where':_0x1c8d3c[_0x09b2('0x18')]?_0x1c8d3c['options'][_0x09b2('0x1a')]||null:null,'attributes':_0x1c8d3c['options']?_0x1c8d3c[_0x09b2('0x18')]['attributes']||null:null,'include':_0x1c8d3c[_0x09b2('0x18')]?_0x1c8d3c['options'][_0x09b2('0x1b')]?_['map'](_0x1c8d3c[_0x09b2('0x18')]['include'],function(_0x2287f3){return{'model':db[_0x2287f3[_0x09b2('0x1c')]],'as':_0x2287f3['as'],'attributes':_0x2287f3[_0x09b2('0x1d')],'include':_0x2287f3[_0x09b2('0x1b')]?_[_0x09b2('0x1e')](_0x2287f3['include'],function(_0x14afbf){return{'model':db[_0x14afbf['model']],'as':_0x14afbf['as'],'attributes':_0x14afbf[_0x09b2('0x1d')],'include':_0x14afbf[_0x09b2('0x1b')]?_[_0x09b2('0x1e')](_0x14afbf[_0x09b2('0x1b')],function(_0x312c3e){return{'model':db[_0x312c3e[_0x09b2('0x1c')]],'as':_0x312c3e['as'],'attributes':_0x312c3e[_0x09b2('0x1d')]};}):[]};}):[]};}):[]:[]})[_0x09b2('0xb')](function(_0x43c99c){logger[_0x09b2('0xc')](_0x09b2('0x20'),_0x1c8d3c);logger['debug']('ShowDeskAccount',_0x1c8d3c,JSON[_0x09b2('0x11')](_0x43c99c));_0x1fc972(_0x43c99c);})['catch'](function(_0x7509ba){logger[_0x09b2('0x12')]('ShowDeskAccount',_0x7509ba[_0x09b2('0x14')],_0x1c8d3c);_0x56b43a(_0x59f139[_0x09b2('0x12')](0x1f4,_0x7509ba[_0x09b2('0x14')]));});});};
\ No newline at end of file
+var _0xa836=['randomstring','ioredis','../../mysqldb','../../config/utils','rpc','jayson/promise','http','request','then','info','DeskAccount,\x20%s,\x20%s','request\x20sent','debug','DeskAccount,\x20%s,\x20%s,\x20%s','error','code','message','GetDeskAccount','DeskAccount','options','raw','where','attributes','limit','map','include','model','stringify','catch','ShowDeskAccount','find','lodash','moment','bluebird'];(function(_0x207e8c,_0x19d8e2){var _0x33441=function(_0x540b65){while(--_0x540b65){_0x207e8c['push'](_0x207e8c['shift']());}};_0x33441(++_0x19d8e2);}(_0xa836,0x173));var _0x6a83=function(_0x422b1a,_0x3cbea0){_0x422b1a=_0x422b1a-0x0;var _0x33c5d0=_0xa836[_0x422b1a];return _0x33c5d0;};'use strict';var _=require(_0x6a83('0x0'));var util=require('util');var moment=require(_0x6a83('0x1'));var BPromise=require(_0x6a83('0x2'));var rs=require(_0x6a83('0x3'));var fs=require('fs');var Redis=require(_0x6a83('0x4'));var db=require(_0x6a83('0x5'))['db'];var utils=require(_0x6a83('0x6'));var logger=require('../../config/logger')(_0x6a83('0x7'));var config=require('../../config/environment');var jayson=require(_0x6a83('0x8'));var client=jayson['client'][_0x6a83('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x463c11,_0x20316a,_0x5ed2cc){return new BPromise(function(_0xa36c65,_0x3d7bd4){return client[_0x6a83('0xa')](_0x463c11,_0x5ed2cc)[_0x6a83('0xb')](function(_0x4fe4c4){logger[_0x6a83('0xc')](_0x6a83('0xd'),_0x20316a,_0x6a83('0xe'));logger[_0x6a83('0xf')](_0x6a83('0x10'),_0x20316a,_0x6a83('0xe'),JSON['stringify'](_0x4fe4c4));if(_0x4fe4c4[_0x6a83('0x11')]){if(_0x4fe4c4[_0x6a83('0x11')][_0x6a83('0x12')]===0x1f4){logger[_0x6a83('0x11')](_0x6a83('0xd'),_0x20316a,_0x4fe4c4['error'][_0x6a83('0x13')]);return _0x3d7bd4(_0x4fe4c4[_0x6a83('0x11')][_0x6a83('0x13')]);}logger[_0x6a83('0x11')](_0x6a83('0xd'),_0x20316a,_0x4fe4c4[_0x6a83('0x11')][_0x6a83('0x13')]);return _0xa36c65(_0x4fe4c4[_0x6a83('0x11')][_0x6a83('0x13')]);}else{logger[_0x6a83('0xc')](_0x6a83('0xd'),_0x20316a,_0x6a83('0xe'));_0xa36c65(_0x4fe4c4['result'][_0x6a83('0x13')]);}})['catch'](function(_0x43c65d){logger['error']('DeskAccount,\x20%s,\x20%s',_0x20316a,_0x43c65d);_0x3d7bd4(_0x43c65d);});});}exports[_0x6a83('0x14')]=function(_0x12bb72){var _0x4b9762=this;return new Promise(function(_0x48d871,_0x3a9a05){return db[_0x6a83('0x15')]['findAll']({'raw':_0x12bb72['options']?_0x12bb72[_0x6a83('0x16')][_0x6a83('0x17')]===undefined?!![]:![]:!![],'where':_0x12bb72[_0x6a83('0x16')]?_0x12bb72[_0x6a83('0x16')][_0x6a83('0x18')]||null:null,'attributes':_0x12bb72[_0x6a83('0x16')]?_0x12bb72[_0x6a83('0x16')][_0x6a83('0x19')]||null:null,'limit':_0x12bb72[_0x6a83('0x16')]?_0x12bb72[_0x6a83('0x16')][_0x6a83('0x1a')]||null:null,'include':_0x12bb72[_0x6a83('0x16')]?_0x12bb72[_0x6a83('0x16')]['include']?_[_0x6a83('0x1b')](_0x12bb72[_0x6a83('0x16')][_0x6a83('0x1c')],function(_0x442d03){return{'model':db[_0x442d03[_0x6a83('0x1d')]],'as':_0x442d03['as'],'attributes':_0x442d03[_0x6a83('0x19')],'include':_0x442d03['include']?_[_0x6a83('0x1b')](_0x442d03[_0x6a83('0x1c')],function(_0x9297e8){return{'model':db[_0x9297e8[_0x6a83('0x1d')]],'as':_0x9297e8['as'],'attributes':_0x9297e8[_0x6a83('0x19')],'include':_0x9297e8[_0x6a83('0x1c')]?_[_0x6a83('0x1b')](_0x9297e8['include'],function(_0x1e09b0){return{'model':db[_0x1e09b0[_0x6a83('0x1d')]],'as':_0x1e09b0['as'],'attributes':_0x1e09b0[_0x6a83('0x19')]};}):[]};}):[]};}):[]:[]})[_0x6a83('0xb')](function(_0x39133a){logger[_0x6a83('0xc')](_0x6a83('0x14'),_0x12bb72);logger['debug']('GetDeskAccount',_0x12bb72,JSON[_0x6a83('0x1e')](_0x39133a));_0x48d871(_0x39133a);})[_0x6a83('0x1f')](function(_0xfdfacf){logger[_0x6a83('0x11')](_0x6a83('0x14'),_0xfdfacf[_0x6a83('0x13')],_0x12bb72);_0x3a9a05(_0x4b9762[_0x6a83('0x11')](0x1f4,_0xfdfacf[_0x6a83('0x13')]));});});};exports[_0x6a83('0x20')]=function(_0x29e914){var _0x5943ef=this;return new Promise(function(_0x146b53,_0x2f1384){return db['DeskAccount'][_0x6a83('0x21')]({'raw':_0x29e914[_0x6a83('0x16')]?_0x29e914[_0x6a83('0x16')][_0x6a83('0x17')]===undefined?!![]:![]:!![],'where':_0x29e914['options']?_0x29e914['options']['where']||null:null,'attributes':_0x29e914[_0x6a83('0x16')]?_0x29e914['options'][_0x6a83('0x19')]||null:null,'include':_0x29e914[_0x6a83('0x16')]?_0x29e914[_0x6a83('0x16')][_0x6a83('0x1c')]?_[_0x6a83('0x1b')](_0x29e914[_0x6a83('0x16')][_0x6a83('0x1c')],function(_0x4b4bac){return{'model':db[_0x4b4bac[_0x6a83('0x1d')]],'as':_0x4b4bac['as'],'attributes':_0x4b4bac[_0x6a83('0x19')],'include':_0x4b4bac[_0x6a83('0x1c')]?_['map'](_0x4b4bac[_0x6a83('0x1c')],function(_0x4097f1){return{'model':db[_0x4097f1[_0x6a83('0x1d')]],'as':_0x4097f1['as'],'attributes':_0x4097f1[_0x6a83('0x19')],'include':_0x4097f1['include']?_['map'](_0x4097f1['include'],function(_0xf3903b){return{'model':db[_0xf3903b[_0x6a83('0x1d')]],'as':_0xf3903b['as'],'attributes':_0xf3903b[_0x6a83('0x19')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x167d96){logger[_0x6a83('0xc')](_0x6a83('0x20'),_0x29e914);logger[_0x6a83('0xf')]('ShowDeskAccount',_0x29e914,JSON[_0x6a83('0x1e')](_0x167d96));_0x146b53(_0x167d96);})[_0x6a83('0x1f')](function(_0x1da584){logger[_0x6a83('0x11')](_0x6a83('0x20'),_0x1da584[_0x6a83('0x13')],_0x29e914);_0x2f1384(_0x5943ef[_0x6a83('0x11')](0x1f4,_0x1da584[_0x6a83('0x13')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x008c=['../../config/environment','./intDeskConfiguration.controller','get','isAuthenticated','index','getFields','/:id/descriptions','getDescriptions','/:id/tags','getTags','post','setTags','put','/:id','update','destroy','exports','multer','util','path','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service'];(function(_0x49e286,_0x51db8b){var _0x320832=function(_0xdb19d9){while(--_0xdb19d9){_0x49e286['push'](_0x49e286['shift']());}};_0x320832(++_0x51db8b);}(_0x008c,0x188));var _0xc008=function(_0x5c7525,_0x39490f){_0x5c7525=_0x5c7525-0x0;var _0x2e2ec8=_0x008c[_0x5c7525];return _0x2e2ec8;};'use strict';var multer=require(_0xc008('0x0'));var util=require(_0xc008('0x1'));var path=require(_0xc008('0x2'));var timeout=require(_0xc008('0x3'));var express=require(_0xc008('0x4'));var router=express['Router']();var fs_extra=require(_0xc008('0x5'));var auth=require(_0xc008('0x6'));var interaction=require(_0xc008('0x7'));var config=require(_0xc008('0x8'));var controller=require(_0xc008('0x9'));router[_0xc008('0xa')]('/',auth[_0xc008('0xb')](),controller[_0xc008('0xc')]);router[_0xc008('0xa')]('/:id',auth[_0xc008('0xb')](),controller['show']);router[_0xc008('0xa')]('/:id/fields',auth['isAuthenticated'](),controller[_0xc008('0xd')]);router[_0xc008('0xa')]('/:id/subjects',auth['isAuthenticated'](),controller['getSubjects']);router[_0xc008('0xa')](_0xc008('0xe'),auth['isAuthenticated'](),controller[_0xc008('0xf')]);router[_0xc008('0xa')](_0xc008('0x10'),auth[_0xc008('0xb')](),controller[_0xc008('0x11')]);router[_0xc008('0x12')]('/',auth[_0xc008('0xb')](),controller['create']);router['post'](_0xc008('0x10'),auth['isAuthenticated'](),controller[_0xc008('0x13')]);router[_0xc008('0x14')](_0xc008('0x15'),auth[_0xc008('0xb')](),controller[_0xc008('0x16')]);router['delete']('/:id',auth['isAuthenticated'](),controller[_0xc008('0x17')]);module[_0xc008('0x18')]=router;
\ No newline at end of file
+var _0x34e8=['../../config/environment','./intDeskConfiguration.controller','get','index','/:id','isAuthenticated','show','/:id/fields','getFields','/:id/subjects','getSubjects','/:id/descriptions','getDescriptions','/:id/tags','getTags','post','create','put','update','exports','multer','util','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service'];(function(_0x2dfeb5,_0x10c30c){var _0x30ceb2=function(_0x4d5e4b){while(--_0x4d5e4b){_0x2dfeb5['push'](_0x2dfeb5['shift']());}};_0x30ceb2(++_0x10c30c);}(_0x34e8,0x12c));var _0x834e=function(_0x5589cc,_0x3faf7e){_0x5589cc=_0x5589cc-0x0;var _0x2a405b=_0x34e8[_0x5589cc];return _0x2a405b;};'use strict';var multer=require(_0x834e('0x0'));var util=require(_0x834e('0x1'));var path=require(_0x834e('0x2'));var timeout=require(_0x834e('0x3'));var express=require('express');var router=express[_0x834e('0x4')]();var fs_extra=require(_0x834e('0x5'));var auth=require(_0x834e('0x6'));var interaction=require(_0x834e('0x7'));var config=require(_0x834e('0x8'));var controller=require(_0x834e('0x9'));router[_0x834e('0xa')]('/',auth['isAuthenticated'](),controller[_0x834e('0xb')]);router['get'](_0x834e('0xc'),auth[_0x834e('0xd')](),controller[_0x834e('0xe')]);router[_0x834e('0xa')](_0x834e('0xf'),auth[_0x834e('0xd')](),controller[_0x834e('0x10')]);router[_0x834e('0xa')](_0x834e('0x11'),auth[_0x834e('0xd')](),controller[_0x834e('0x12')]);router[_0x834e('0xa')](_0x834e('0x13'),auth[_0x834e('0xd')](),controller[_0x834e('0x14')]);router[_0x834e('0xa')](_0x834e('0x15'),auth['isAuthenticated'](),controller[_0x834e('0x16')]);router[_0x834e('0x17')]('/',auth['isAuthenticated'](),controller[_0x834e('0x18')]);router[_0x834e('0x17')](_0x834e('0x15'),auth[_0x834e('0xd')](),controller['setTags']);router[_0x834e('0x19')](_0x834e('0xc'),auth['isAuthenticated'](),controller[_0x834e('0x1a')]);router['delete'](_0x834e('0xc'),auth[_0x834e('0xd')](),controller['destroy']);module[_0x834e('0x1b')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3fe7=['exports','STRING','sequelize'];(function(_0x2261ce,_0x9ed8b6){var _0x524640=function(_0x3cbb90){while(--_0x3cbb90){_0x2261ce['push'](_0x2261ce['shift']());}};_0x524640(++_0x9ed8b6);}(_0x3fe7,0x18b));var _0x73fe=function(_0x3e9ef3,_0x21a7e4){_0x3e9ef3=_0x3e9ef3-0x0;var _0x333748=_0x3fe7[_0x3e9ef3];return _0x333748;};'use strict';var Sequelize=require(_0x73fe('0x0'));module[_0x73fe('0x1')]={'name':{'type':Sequelize[_0x73fe('0x2')]},'description':{'type':Sequelize[_0x73fe('0x2')]}};
\ No newline at end of file
+var _0x0346=['exports','STRING'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0x0346,0x1ea));var _0x6034=function(_0x3b5676,_0x12cc70){_0x3b5676=_0x3b5676-0x0;var _0x1bcb90=_0x0346[_0x3b5676];return _0x1bcb90;};'use strict';var Sequelize=require('sequelize');module[_0x6034('0x0')]={'name':{'type':Sequelize[_0x6034('0x1')]},'description':{'type':Sequelize[_0x6034('0x1')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb9c0=['getSubjects','nolimit','getDescriptions','getTags','Tag','setTags','ids','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','undefined','limit','offset','count','set','Content-Range','json','apply','reject','save','update','then','stack','name','send','index','map','DeskConfiguration','fieldName','type','query','keys','filters','model','fields','attributes','length','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','show','params','find','create','catch','body','destroy','getFields','findOne','DeskField','rawAttributes','intersection','hasOwnProperty'];(function(_0x4565bf,_0x5ad9d6){var _0x5610ba=function(_0x170988){while(--_0x170988){_0x4565bf['push'](_0x4565bf['shift']());}};_0x5610ba(++_0x5ad9d6);}(_0xb9c0,0xb3));var _0x0b9c=function(_0x13b939,_0x526e15){_0x13b939=_0x13b939-0x0;var _0x26ec60=_0xb9c0[_0x13b939];return _0x26ec60;};'use strict';var emlformat=require(_0x0b9c('0x0'));var rimraf=require(_0x0b9c('0x1'));var zipdir=require(_0x0b9c('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x0b9c('0x3'));var moment=require(_0x0b9c('0x4'));var BPromise=require(_0x0b9c('0x5'));var Mustache=require('mustache');var util=require('util');var path=require('path');var sox=require(_0x0b9c('0x6'));var csv=require('to-csv');var ejs=require(_0x0b9c('0x7'));var fs=require('fs');var fs_extra=require(_0x0b9c('0x8'));var _=require(_0x0b9c('0x9'));var squel=require(_0x0b9c('0xa'));var crypto=require(_0x0b9c('0xb'));var jsforce=require(_0x0b9c('0xc'));var deskjs=require(_0x0b9c('0xd'));var toCsv=require(_0x0b9c('0xe'));var querystring=require(_0x0b9c('0xf'));var Papa=require(_0x0b9c('0x10'));var Redis=require('ioredis');var authService=require(_0x0b9c('0x11'));var qs=require(_0x0b9c('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x0b9c('0x13'))(_0x0b9c('0x14'));var utils=require(_0x0b9c('0x15'));var config=require(_0x0b9c('0x16'));var licenseUtil=require(_0x0b9c('0x17'));var db=require(_0x0b9c('0x18'))['db'];function respondWithStatusCode(_0x37acf8,_0x5044b4){_0x5044b4=_0x5044b4||0xcc;return function(_0x5364ff){if(_0x5364ff){return _0x37acf8[_0x0b9c('0x19')](_0x5044b4);}return _0x37acf8['status'](_0x5044b4)[_0x0b9c('0x1a')]();};}function respondWithResult(_0xedff32,_0x2b3811){_0x2b3811=_0x2b3811||0xc8;return function(_0x2a32e5){if(_0x2a32e5){return _0xedff32[_0x0b9c('0x1b')](_0x2b3811)['json'](_0x2a32e5);}};}function respondWithFilteredResult(_0x30bada,_0xe65e18){return function(_0xd61d66){if(_0xd61d66){var _0x489dbf=typeof _0xe65e18['offset']===_0x0b9c('0x1c')&&typeof _0xe65e18[_0x0b9c('0x1d')]===_0x0b9c('0x1c');var _0x68955b=_0xd61d66['count'];var _0x271f0d=_0x489dbf?0x0:_0xe65e18[_0x0b9c('0x1e')];var _0x384b28=_0x489dbf?_0xd61d66[_0x0b9c('0x1f')]:_0xe65e18[_0x0b9c('0x1e')]+_0xe65e18[_0x0b9c('0x1d')];var _0x2489cb;if(_0x384b28>=_0x68955b){_0x384b28=_0x68955b;_0x2489cb=0xc8;}else{_0x2489cb=0xce;}_0x30bada[_0x0b9c('0x1b')](_0x2489cb);return _0x30bada[_0x0b9c('0x20')](_0x0b9c('0x21'),_0x271f0d+'-'+_0x384b28+'/'+_0x68955b)[_0x0b9c('0x22')](_0xd61d66);}return null;};}function patchUpdates(_0xd7c781){return function(_0x4ba96b){try{jsonpatch[_0x0b9c('0x23')](_0x4ba96b,_0xd7c781,!![]);}catch(_0x3fd24f){return BPromise[_0x0b9c('0x24')](_0x3fd24f);}return _0x4ba96b[_0x0b9c('0x25')]();};}function saveUpdates(_0x9d60da,_0x1b4dc3){return function(_0x301b63){if(_0x301b63){return _0x301b63[_0x0b9c('0x26')](_0x9d60da)[_0x0b9c('0x27')](function(_0x21c5f0){return _0x21c5f0;});}return null;};}function removeEntity(_0x4061c8,_0x6cde49){return function(_0xeb9b0){if(_0xeb9b0){return _0xeb9b0['destroy']()[_0x0b9c('0x27')](function(){_0x4061c8['status'](0xcc)[_0x0b9c('0x1a')]();});}};}function handleEntityNotFound(_0x140210,_0x3937d3){return function(_0x354d6d){if(!_0x354d6d){_0x140210[_0x0b9c('0x19')](0x194);}return _0x354d6d;};}function handleError(_0x77cca2,_0xfc98e0){_0xfc98e0=_0xfc98e0||0x1f4;return function(_0x591f2d){logger['error'](_0x591f2d[_0x0b9c('0x28')]);if(_0x591f2d[_0x0b9c('0x29')]){delete _0x591f2d[_0x0b9c('0x29')];}_0x77cca2[_0x0b9c('0x1b')](_0xfc98e0)[_0x0b9c('0x2a')](_0x591f2d);};}exports[_0x0b9c('0x2b')]=function(_0x50a10c,_0x380d20){var _0x1995c2={},_0x2b7b99={},_0x561fa8={'count':0x0,'rows':[]};var _0x4dc6ae=_[_0x0b9c('0x2c')](db[_0x0b9c('0x2d')]['rawAttributes'],function(_0x4a369d){return{'name':_0x4a369d[_0x0b9c('0x2e')],'type':_0x4a369d[_0x0b9c('0x2f')]['key']};});_0x2b7b99['model']=_[_0x0b9c('0x2c')](_0x4dc6ae,'name');_0x2b7b99[_0x0b9c('0x30')]=_[_0x0b9c('0x31')](_0x50a10c[_0x0b9c('0x30')]);_0x2b7b99[_0x0b9c('0x32')]=_['intersection'](_0x2b7b99[_0x0b9c('0x33')],_0x2b7b99[_0x0b9c('0x30')]);_0x1995c2['attributes']=_['intersection'](_0x2b7b99[_0x0b9c('0x33')],qs['fields'](_0x50a10c[_0x0b9c('0x30')][_0x0b9c('0x34')]));_0x1995c2[_0x0b9c('0x35')]=_0x1995c2[_0x0b9c('0x35')][_0x0b9c('0x36')]?_0x1995c2[_0x0b9c('0x35')]:_0x2b7b99[_0x0b9c('0x33')];if(!_0x50a10c[_0x0b9c('0x30')]['hasOwnProperty']('nolimit')){_0x1995c2['limit']=qs[_0x0b9c('0x1d')](_0x50a10c[_0x0b9c('0x30')][_0x0b9c('0x1d')]);_0x1995c2['offset']=qs[_0x0b9c('0x1e')](_0x50a10c[_0x0b9c('0x30')][_0x0b9c('0x1e')]);}_0x1995c2[_0x0b9c('0x37')]=qs['sort'](_0x50a10c[_0x0b9c('0x30')][_0x0b9c('0x38')]);_0x1995c2[_0x0b9c('0x39')]=qs[_0x0b9c('0x32')](_[_0x0b9c('0x3a')](_0x50a10c[_0x0b9c('0x30')],_0x2b7b99['filters']),_0x4dc6ae);if(_0x50a10c['query'][_0x0b9c('0x3b')]){_0x1995c2['where']=_[_0x0b9c('0x3c')](_0x1995c2[_0x0b9c('0x39')],{'$or':_[_0x0b9c('0x2c')](_0x4dc6ae,function(_0x2269fc){if(_0x2269fc[_0x0b9c('0x2f')]!==_0x0b9c('0x3d')){var _0x1e90df={};_0x1e90df[_0x2269fc[_0x0b9c('0x29')]]={'$like':'%'+_0x50a10c[_0x0b9c('0x30')][_0x0b9c('0x3b')]+'%'};return _0x1e90df;}})});}_0x1995c2=_['merge']({},_0x1995c2,_0x50a10c[_0x0b9c('0x3e')]);var _0x544112={'where':_0x1995c2[_0x0b9c('0x39')]};return db[_0x0b9c('0x2d')][_0x0b9c('0x1f')](_0x544112)[_0x0b9c('0x27')](function(_0x3e4d0f){_0x561fa8[_0x0b9c('0x1f')]=_0x3e4d0f;if(_0x50a10c[_0x0b9c('0x30')][_0x0b9c('0x3f')]){_0x1995c2[_0x0b9c('0x40')]=[{'all':!![]}];}return db[_0x0b9c('0x2d')][_0x0b9c('0x41')](_0x1995c2);})[_0x0b9c('0x27')](function(_0x27f0e6){_0x561fa8['rows']=_0x27f0e6;return _0x561fa8;})[_0x0b9c('0x27')](respondWithFilteredResult(_0x380d20,_0x1995c2))['catch'](handleError(_0x380d20,null));};exports[_0x0b9c('0x42')]=function(_0x68758b,_0x2826e9){var _0x3d3a40={'raw':![],'where':{'id':_0x68758b[_0x0b9c('0x43')]['id']}},_0x49e23c={};_0x49e23c[_0x0b9c('0x33')]=_[_0x0b9c('0x31')](db[_0x0b9c('0x2d')]['rawAttributes']);_0x49e23c[_0x0b9c('0x30')]=_[_0x0b9c('0x31')](_0x68758b[_0x0b9c('0x30')]);_0x49e23c[_0x0b9c('0x32')]=_['intersection'](_0x49e23c[_0x0b9c('0x33')],_0x49e23c[_0x0b9c('0x30')]);_0x3d3a40[_0x0b9c('0x35')]=_['intersection'](_0x49e23c['model'],qs[_0x0b9c('0x34')](_0x68758b[_0x0b9c('0x30')][_0x0b9c('0x34')]));_0x3d3a40['attributes']=_0x3d3a40[_0x0b9c('0x35')][_0x0b9c('0x36')]?_0x3d3a40[_0x0b9c('0x35')]:_0x49e23c[_0x0b9c('0x33')];if(_0x68758b['query'][_0x0b9c('0x3f')]){_0x3d3a40[_0x0b9c('0x40')]=[{'all':!![]}];}_0x3d3a40=_[_0x0b9c('0x3c')]({},_0x3d3a40,_0x68758b['options']);return db[_0x0b9c('0x2d')][_0x0b9c('0x44')](_0x3d3a40)[_0x0b9c('0x27')](handleEntityNotFound(_0x2826e9,null))['then'](respondWithResult(_0x2826e9,null))['catch'](handleError(_0x2826e9,null));};exports['create']=function(_0x22c7e2,_0x3a442f){return db[_0x0b9c('0x2d')][_0x0b9c('0x45')](_0x22c7e2['body'],{})[_0x0b9c('0x27')](respondWithResult(_0x3a442f,0xc9))[_0x0b9c('0x46')](handleError(_0x3a442f,null));};exports[_0x0b9c('0x26')]=function(_0x45a092,_0x449620){if(_0x45a092[_0x0b9c('0x47')]['id']){delete _0x45a092[_0x0b9c('0x47')]['id'];}return db[_0x0b9c('0x2d')][_0x0b9c('0x44')]({'where':{'id':_0x45a092[_0x0b9c('0x43')]['id']}})[_0x0b9c('0x27')](handleEntityNotFound(_0x449620,null))[_0x0b9c('0x27')](saveUpdates(_0x45a092[_0x0b9c('0x47')],null))[_0x0b9c('0x27')](respondWithResult(_0x449620,null))[_0x0b9c('0x46')](handleError(_0x449620,null));};exports[_0x0b9c('0x48')]=function(_0xf2e1b8,_0x161a5d){return db[_0x0b9c('0x2d')][_0x0b9c('0x44')]({'where':{'id':_0xf2e1b8['params']['id']}})[_0x0b9c('0x27')](handleEntityNotFound(_0x161a5d,null))[_0x0b9c('0x27')](removeEntity(_0x161a5d,null))[_0x0b9c('0x46')](handleError(_0x161a5d,null));};exports[_0x0b9c('0x49')]=function(_0x402b89,_0x3f59a4,_0xc6af2){var _0xe2f8fa={};var _0x47df1c={};var _0x2460a5;var _0x1a307d;return db[_0x0b9c('0x2d')][_0x0b9c('0x4a')]({'where':{'id':_0x402b89[_0x0b9c('0x43')]['id']}})[_0x0b9c('0x27')](handleEntityNotFound(_0x3f59a4,null))[_0x0b9c('0x27')](function(_0x405130){if(_0x405130){_0x2460a5=_0x405130;_0x47df1c['model']=_[_0x0b9c('0x31')](db[_0x0b9c('0x4b')][_0x0b9c('0x4c')]);_0x47df1c[_0x0b9c('0x30')]=_[_0x0b9c('0x31')](_0x402b89[_0x0b9c('0x30')]);_0x47df1c[_0x0b9c('0x32')]=_[_0x0b9c('0x4d')](_0x47df1c['model'],_0x47df1c['query']);_0xe2f8fa[_0x0b9c('0x35')]=_[_0x0b9c('0x4d')](_0x47df1c[_0x0b9c('0x33')],qs['fields'](_0x402b89['query'][_0x0b9c('0x34')]));_0xe2f8fa[_0x0b9c('0x35')]=_0xe2f8fa[_0x0b9c('0x35')][_0x0b9c('0x36')]?_0xe2f8fa[_0x0b9c('0x35')]:_0x47df1c['model'];_0xe2f8fa[_0x0b9c('0x37')]=qs[_0x0b9c('0x38')](_0x402b89[_0x0b9c('0x30')][_0x0b9c('0x38')]);_0xe2f8fa['where']=qs[_0x0b9c('0x32')](_[_0x0b9c('0x3a')](_0x402b89[_0x0b9c('0x30')],_0x47df1c[_0x0b9c('0x32')]));if(_0x402b89[_0x0b9c('0x30')][_0x0b9c('0x3b')]){_0xe2f8fa['where']=_[_0x0b9c('0x3c')](_0xe2f8fa[_0x0b9c('0x39')],{'$or':_[_0x0b9c('0x2c')](_0xe2f8fa[_0x0b9c('0x35')],function(_0x238999){var _0x3b769c={};_0x3b769c[_0x238999]={'$like':'%'+_0x402b89[_0x0b9c('0x30')][_0x0b9c('0x3b')]+'%'};return _0x3b769c;})});}_0xe2f8fa=_[_0x0b9c('0x3c')]({},_0xe2f8fa,_0x402b89[_0x0b9c('0x3e')]);return _0x2460a5['getFields'](_0xe2f8fa);}})[_0x0b9c('0x27')](function(_0x1e33b6){if(_0x1e33b6){_0x1a307d=_0x1e33b6[_0x0b9c('0x36')];if(!_0x402b89['query'][_0x0b9c('0x4e')]('nolimit')){_0xe2f8fa[_0x0b9c('0x1d')]=qs[_0x0b9c('0x1d')](_0x402b89[_0x0b9c('0x30')][_0x0b9c('0x1d')]);_0xe2f8fa['offset']=qs[_0x0b9c('0x1e')](_0x402b89[_0x0b9c('0x30')]['offset']);}return _0x2460a5[_0x0b9c('0x49')](_0xe2f8fa);}})[_0x0b9c('0x27')](function(_0x4d00a4){if(_0x4d00a4){return _0x4d00a4?{'count':_0x1a307d,'rows':_0x4d00a4}:null;}})[_0x0b9c('0x27')](respondWithResult(_0x3f59a4,null))[_0x0b9c('0x46')](handleError(_0x3f59a4,null));};exports[_0x0b9c('0x4f')]=function(_0x15753e,_0x1e2f4c,_0x267c71){var _0x1175ba={};var _0x47d4ec={};var _0x20adc7;var _0x4b8262;return db[_0x0b9c('0x2d')][_0x0b9c('0x4a')]({'where':{'id':_0x15753e['params']['id']}})['then'](handleEntityNotFound(_0x1e2f4c,null))[_0x0b9c('0x27')](function(_0x1c8c35){if(_0x1c8c35){_0x20adc7=_0x1c8c35;_0x47d4ec['model']=_[_0x0b9c('0x31')](db[_0x0b9c('0x4b')][_0x0b9c('0x4c')]);_0x47d4ec[_0x0b9c('0x30')]=_[_0x0b9c('0x31')](_0x15753e[_0x0b9c('0x30')]);_0x47d4ec[_0x0b9c('0x32')]=_[_0x0b9c('0x4d')](_0x47d4ec[_0x0b9c('0x33')],_0x47d4ec[_0x0b9c('0x30')]);_0x1175ba[_0x0b9c('0x35')]=_[_0x0b9c('0x4d')](_0x47d4ec[_0x0b9c('0x33')],qs['fields'](_0x15753e['query'][_0x0b9c('0x34')]));_0x1175ba[_0x0b9c('0x35')]=_0x1175ba[_0x0b9c('0x35')][_0x0b9c('0x36')]?_0x1175ba[_0x0b9c('0x35')]:_0x47d4ec['model'];_0x1175ba[_0x0b9c('0x37')]=qs[_0x0b9c('0x38')](_0x15753e[_0x0b9c('0x30')]['sort']);_0x1175ba[_0x0b9c('0x39')]=qs[_0x0b9c('0x32')](_['pick'](_0x15753e[_0x0b9c('0x30')],_0x47d4ec[_0x0b9c('0x32')]));if(_0x15753e[_0x0b9c('0x30')][_0x0b9c('0x3b')]){_0x1175ba['where']=_[_0x0b9c('0x3c')](_0x1175ba['where'],{'$or':_[_0x0b9c('0x2c')](_0x1175ba[_0x0b9c('0x35')],function(_0x5d1460){var _0x36fac2={};_0x36fac2[_0x5d1460]={'$like':'%'+_0x15753e[_0x0b9c('0x30')][_0x0b9c('0x3b')]+'%'};return _0x36fac2;})});}_0x1175ba=_[_0x0b9c('0x3c')]({},_0x1175ba,_0x15753e[_0x0b9c('0x3e')]);return _0x20adc7[_0x0b9c('0x4f')](_0x1175ba);}})['then'](function(_0x55ba61){if(_0x55ba61){_0x4b8262=_0x55ba61[_0x0b9c('0x36')];if(!_0x15753e[_0x0b9c('0x30')][_0x0b9c('0x4e')](_0x0b9c('0x50'))){_0x1175ba[_0x0b9c('0x1d')]=qs['limit'](_0x15753e['query'][_0x0b9c('0x1d')]);_0x1175ba[_0x0b9c('0x1e')]=qs[_0x0b9c('0x1e')](_0x15753e[_0x0b9c('0x30')][_0x0b9c('0x1e')]);}return _0x20adc7[_0x0b9c('0x4f')](_0x1175ba);}})[_0x0b9c('0x27')](function(_0x23ef59){if(_0x23ef59){return _0x23ef59?{'count':_0x4b8262,'rows':_0x23ef59}:null;}})[_0x0b9c('0x27')](respondWithResult(_0x1e2f4c,null))[_0x0b9c('0x46')](handleError(_0x1e2f4c,null));};exports[_0x0b9c('0x51')]=function(_0x17cd43,_0x4181f0,_0x514279){var _0x5c8cbc={};var _0x51ab23={};var _0xca1324;var _0x56e9ec;return db[_0x0b9c('0x2d')]['findOne']({'where':{'id':_0x17cd43[_0x0b9c('0x43')]['id']}})[_0x0b9c('0x27')](handleEntityNotFound(_0x4181f0,null))[_0x0b9c('0x27')](function(_0x3c3036){if(_0x3c3036){_0xca1324=_0x3c3036;_0x51ab23[_0x0b9c('0x33')]=_['keys'](db['DeskField'][_0x0b9c('0x4c')]);_0x51ab23[_0x0b9c('0x30')]=_['keys'](_0x17cd43[_0x0b9c('0x30')]);_0x51ab23[_0x0b9c('0x32')]=_[_0x0b9c('0x4d')](_0x51ab23[_0x0b9c('0x33')],_0x51ab23[_0x0b9c('0x30')]);_0x5c8cbc['attributes']=_[_0x0b9c('0x4d')](_0x51ab23[_0x0b9c('0x33')],qs[_0x0b9c('0x34')](_0x17cd43[_0x0b9c('0x30')][_0x0b9c('0x34')]));_0x5c8cbc['attributes']=_0x5c8cbc[_0x0b9c('0x35')][_0x0b9c('0x36')]?_0x5c8cbc[_0x0b9c('0x35')]:_0x51ab23['model'];_0x5c8cbc[_0x0b9c('0x37')]=qs['sort'](_0x17cd43[_0x0b9c('0x30')][_0x0b9c('0x38')]);_0x5c8cbc[_0x0b9c('0x39')]=qs[_0x0b9c('0x32')](_[_0x0b9c('0x3a')](_0x17cd43[_0x0b9c('0x30')],_0x51ab23[_0x0b9c('0x32')]));if(_0x17cd43[_0x0b9c('0x30')][_0x0b9c('0x3b')]){_0x5c8cbc[_0x0b9c('0x39')]=_['merge'](_0x5c8cbc[_0x0b9c('0x39')],{'$or':_['map'](_0x5c8cbc[_0x0b9c('0x35')],function(_0x515892){var _0x2b0cfe={};_0x2b0cfe[_0x515892]={'$like':'%'+_0x17cd43[_0x0b9c('0x30')]['filter']+'%'};return _0x2b0cfe;})});}_0x5c8cbc=_[_0x0b9c('0x3c')]({},_0x5c8cbc,_0x17cd43['options']);return _0xca1324[_0x0b9c('0x51')](_0x5c8cbc);}})[_0x0b9c('0x27')](function(_0x4b9df1){if(_0x4b9df1){_0x56e9ec=_0x4b9df1[_0x0b9c('0x36')];if(!_0x17cd43[_0x0b9c('0x30')][_0x0b9c('0x4e')](_0x0b9c('0x50'))){_0x5c8cbc[_0x0b9c('0x1d')]=qs[_0x0b9c('0x1d')](_0x17cd43[_0x0b9c('0x30')][_0x0b9c('0x1d')]);_0x5c8cbc[_0x0b9c('0x1e')]=qs[_0x0b9c('0x1e')](_0x17cd43[_0x0b9c('0x30')][_0x0b9c('0x1e')]);}return _0xca1324['getDescriptions'](_0x5c8cbc);}})[_0x0b9c('0x27')](function(_0x42a675){if(_0x42a675){return _0x42a675?{'count':_0x56e9ec,'rows':_0x42a675}:null;}})[_0x0b9c('0x27')](respondWithResult(_0x4181f0,null))[_0x0b9c('0x46')](handleError(_0x4181f0,null));};exports[_0x0b9c('0x52')]=function(_0x172d22,_0x4c3494,_0xea8e75){var _0x2f6ddd={};var _0x2fec1e={};var _0x38cd0f;var _0x1b0126;return db['DeskConfiguration']['findOne']({'where':{'id':_0x172d22['params']['id']}})[_0x0b9c('0x27')](handleEntityNotFound(_0x4c3494,null))[_0x0b9c('0x27')](function(_0xf71459){if(_0xf71459){_0x38cd0f=_0xf71459;_0x2fec1e['model']=_[_0x0b9c('0x31')](db[_0x0b9c('0x53')][_0x0b9c('0x4c')]);_0x2fec1e[_0x0b9c('0x30')]=_[_0x0b9c('0x31')](_0x172d22[_0x0b9c('0x30')]);_0x2fec1e[_0x0b9c('0x32')]=_[_0x0b9c('0x4d')](_0x2fec1e[_0x0b9c('0x33')],_0x2fec1e['query']);_0x2f6ddd[_0x0b9c('0x35')]=_[_0x0b9c('0x4d')](_0x2fec1e[_0x0b9c('0x33')],qs[_0x0b9c('0x34')](_0x172d22[_0x0b9c('0x30')][_0x0b9c('0x34')]));_0x2f6ddd[_0x0b9c('0x35')]=_0x2f6ddd[_0x0b9c('0x35')][_0x0b9c('0x36')]?_0x2f6ddd['attributes']:_0x2fec1e[_0x0b9c('0x33')];_0x2f6ddd[_0x0b9c('0x37')]=qs['sort'](_0x172d22[_0x0b9c('0x30')]['sort']);_0x2f6ddd[_0x0b9c('0x39')]=qs[_0x0b9c('0x32')](_['pick'](_0x172d22['query'],_0x2fec1e[_0x0b9c('0x32')]));if(_0x172d22['query'][_0x0b9c('0x3b')]){_0x2f6ddd[_0x0b9c('0x39')]=_[_0x0b9c('0x3c')](_0x2f6ddd['where'],{'$or':_['map'](_0x2f6ddd[_0x0b9c('0x35')],function(_0x3b9417){var _0x508869={};_0x508869[_0x3b9417]={'$like':'%'+_0x172d22['query'][_0x0b9c('0x3b')]+'%'};return _0x508869;})});}_0x2f6ddd=_[_0x0b9c('0x3c')]({},_0x2f6ddd,_0x172d22[_0x0b9c('0x3e')]);return _0x38cd0f[_0x0b9c('0x52')](_0x2f6ddd);}})['then'](function(_0x3e094b){if(_0x3e094b){_0x1b0126=_0x3e094b[_0x0b9c('0x36')];if(!_0x172d22[_0x0b9c('0x30')]['hasOwnProperty'](_0x0b9c('0x50'))){_0x2f6ddd[_0x0b9c('0x1d')]=qs[_0x0b9c('0x1d')](_0x172d22[_0x0b9c('0x30')][_0x0b9c('0x1d')]);_0x2f6ddd['offset']=qs[_0x0b9c('0x1e')](_0x172d22['query'][_0x0b9c('0x1e')]);}return _0x38cd0f[_0x0b9c('0x52')](_0x2f6ddd);}})[_0x0b9c('0x27')](function(_0x85af9d){if(_0x85af9d){return _0x85af9d?{'count':_0x1b0126,'rows':_0x85af9d}:null;}})[_0x0b9c('0x27')](respondWithResult(_0x4c3494,null))[_0x0b9c('0x46')](handleError(_0x4c3494,null));};exports[_0x0b9c('0x54')]=function(_0x435f0a,_0x51d943,_0x14cb67){if(_0x435f0a[_0x0b9c('0x47')]['id']){delete _0x435f0a[_0x0b9c('0x47')]['id'];}return db[_0x0b9c('0x2d')][_0x0b9c('0x4a')]({'where':{'id':_0x435f0a[_0x0b9c('0x43')]['id']}})[_0x0b9c('0x27')](handleEntityNotFound(_0x51d943,null))[_0x0b9c('0x27')](function(_0x16da0a){if(_0x16da0a){return _0x16da0a['setTags'](_0x435f0a[_0x0b9c('0x47')][_0x0b9c('0x55')]||[]);}return null;})[_0x0b9c('0x27')](respondWithResult(_0x51d943,null))[_0x0b9c('0x46')](handleError(_0x51d943,null));};
\ No newline at end of file
+var _0x3cc9=['model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','limit','order','sort','where','filter','VIRTUAL','merge','includeAll','include','findAll','catch','options','find','create','body','update','params','destroy','getFields','DeskField','pick','getSubjects','findOne','getDescriptions','getTags','setTags','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','undefined','offset','count','set','Content-Range','reject','save','then','error','stack','name','index','map','DeskConfiguration','rawAttributes','fieldName','type'];(function(_0x5401ae,_0x5e58ac){var _0x286068=function(_0x2cac88){while(--_0x2cac88){_0x5401ae['push'](_0x5401ae['shift']());}};_0x286068(++_0x5e58ac);}(_0x3cc9,0x120));var _0x93cc=function(_0x28801a,_0x179044){_0x28801a=_0x28801a-0x0;var _0x48ca48=_0x3cc9[_0x28801a];return _0x48ca48;};'use strict';var emlformat=require(_0x93cc('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x93cc('0x1'));var jsonpatch=require(_0x93cc('0x2'));var rp=require(_0x93cc('0x3'));var moment=require(_0x93cc('0x4'));var BPromise=require(_0x93cc('0x5'));var Mustache=require(_0x93cc('0x6'));var util=require(_0x93cc('0x7'));var path=require(_0x93cc('0x8'));var sox=require(_0x93cc('0x9'));var csv=require(_0x93cc('0xa'));var ejs=require(_0x93cc('0xb'));var fs=require('fs');var fs_extra=require(_0x93cc('0xc'));var _=require(_0x93cc('0xd'));var squel=require(_0x93cc('0xe'));var crypto=require(_0x93cc('0xf'));var jsforce=require(_0x93cc('0x10'));var deskjs=require('desk.js');var toCsv=require(_0x93cc('0xa'));var querystring=require(_0x93cc('0x11'));var Papa=require(_0x93cc('0x12'));var Redis=require('ioredis');var authService=require(_0x93cc('0x13'));var qs=require(_0x93cc('0x14'));var as=require(_0x93cc('0x15'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x93cc('0x16'))(_0x93cc('0x17'));var utils=require('../../config/utils');var config=require(_0x93cc('0x18'));var licenseUtil=require(_0x93cc('0x19'));var db=require(_0x93cc('0x1a'))['db'];function respondWithStatusCode(_0x4b4f2e,_0x2ac2ca){_0x2ac2ca=_0x2ac2ca||0xcc;return function(_0x37eac0){if(_0x37eac0){return _0x4b4f2e[_0x93cc('0x1b')](_0x2ac2ca);}return _0x4b4f2e[_0x93cc('0x1c')](_0x2ac2ca)[_0x93cc('0x1d')]();};}function respondWithResult(_0x30fd9d,_0x4cc632){_0x4cc632=_0x4cc632||0xc8;return function(_0x3366b6){if(_0x3366b6){return _0x30fd9d[_0x93cc('0x1c')](_0x4cc632)[_0x93cc('0x1e')](_0x3366b6);}};}function respondWithFilteredResult(_0x321186,_0x17d435){return function(_0x4a80cb){if(_0x4a80cb){var _0x52b185=typeof _0x17d435['offset']===_0x93cc('0x1f')&&typeof _0x17d435['limit']===_0x93cc('0x1f');var _0x8fa26f=_0x4a80cb['count'];var _0x2941b9=_0x52b185?0x0:_0x17d435[_0x93cc('0x20')];var _0x314926=_0x52b185?_0x4a80cb[_0x93cc('0x21')]:_0x17d435['offset']+_0x17d435['limit'];var _0x29ded7;if(_0x314926>=_0x8fa26f){_0x314926=_0x8fa26f;_0x29ded7=0xc8;}else{_0x29ded7=0xce;}_0x321186[_0x93cc('0x1c')](_0x29ded7);return _0x321186[_0x93cc('0x22')](_0x93cc('0x23'),_0x2941b9+'-'+_0x314926+'/'+_0x8fa26f)[_0x93cc('0x1e')](_0x4a80cb);}return null;};}function patchUpdates(_0x4e5a31){return function(_0xb01e4b){try{jsonpatch['apply'](_0xb01e4b,_0x4e5a31,!![]);}catch(_0x51ce18){return BPromise[_0x93cc('0x24')](_0x51ce18);}return _0xb01e4b[_0x93cc('0x25')]();};}function saveUpdates(_0x747288,_0x4b4c89){return function(_0x433195){if(_0x433195){return _0x433195['update'](_0x747288)[_0x93cc('0x26')](function(_0x561515){return _0x561515;});}return null;};}function removeEntity(_0x543ae4,_0x2ba415){return function(_0x135d45){if(_0x135d45){return _0x135d45['destroy']()['then'](function(){_0x543ae4[_0x93cc('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x7571ff,_0x476f5f){return function(_0x11eb35){if(!_0x11eb35){_0x7571ff[_0x93cc('0x1b')](0x194);}return _0x11eb35;};}function handleError(_0x3f1ebc,_0x4ddf25){_0x4ddf25=_0x4ddf25||0x1f4;return function(_0x33beb5){logger[_0x93cc('0x27')](_0x33beb5[_0x93cc('0x28')]);if(_0x33beb5[_0x93cc('0x29')]){delete _0x33beb5[_0x93cc('0x29')];}_0x3f1ebc[_0x93cc('0x1c')](_0x4ddf25)['send'](_0x33beb5);};}exports[_0x93cc('0x2a')]=function(_0x30a5cb,_0x507044){var _0xd3d46a={},_0x1885fc={},_0x1de21a={'count':0x0,'rows':[]};var _0x3b88ac=_[_0x93cc('0x2b')](db[_0x93cc('0x2c')][_0x93cc('0x2d')],function(_0x15f9c9){return{'name':_0x15f9c9[_0x93cc('0x2e')],'type':_0x15f9c9[_0x93cc('0x2f')]['key']};});_0x1885fc[_0x93cc('0x30')]=_[_0x93cc('0x2b')](_0x3b88ac,_0x93cc('0x29'));_0x1885fc[_0x93cc('0x31')]=_[_0x93cc('0x32')](_0x30a5cb[_0x93cc('0x31')]);_0x1885fc[_0x93cc('0x33')]=_[_0x93cc('0x34')](_0x1885fc[_0x93cc('0x30')],_0x1885fc[_0x93cc('0x31')]);_0xd3d46a[_0x93cc('0x35')]=_['intersection'](_0x1885fc[_0x93cc('0x30')],qs[_0x93cc('0x36')](_0x30a5cb[_0x93cc('0x31')][_0x93cc('0x36')]));_0xd3d46a['attributes']=_0xd3d46a[_0x93cc('0x35')][_0x93cc('0x37')]?_0xd3d46a[_0x93cc('0x35')]:_0x1885fc[_0x93cc('0x30')];if(!_0x30a5cb['query'][_0x93cc('0x38')](_0x93cc('0x39'))){_0xd3d46a[_0x93cc('0x3a')]=qs[_0x93cc('0x3a')](_0x30a5cb[_0x93cc('0x31')][_0x93cc('0x3a')]);_0xd3d46a['offset']=qs[_0x93cc('0x20')](_0x30a5cb[_0x93cc('0x31')][_0x93cc('0x20')]);}_0xd3d46a[_0x93cc('0x3b')]=qs[_0x93cc('0x3c')](_0x30a5cb[_0x93cc('0x31')][_0x93cc('0x3c')]);_0xd3d46a[_0x93cc('0x3d')]=qs[_0x93cc('0x33')](_['pick'](_0x30a5cb['query'],_0x1885fc['filters']),_0x3b88ac);if(_0x30a5cb[_0x93cc('0x31')][_0x93cc('0x3e')]){_0xd3d46a[_0x93cc('0x3d')]=_['merge'](_0xd3d46a[_0x93cc('0x3d')],{'$or':_[_0x93cc('0x2b')](_0x3b88ac,function(_0x17b6c1){if(_0x17b6c1['type']!==_0x93cc('0x3f')){var _0x350435={};_0x350435[_0x17b6c1['name']]={'$like':'%'+_0x30a5cb[_0x93cc('0x31')][_0x93cc('0x3e')]+'%'};return _0x350435;}})});}_0xd3d46a=_[_0x93cc('0x40')]({},_0xd3d46a,_0x30a5cb['options']);var _0x9d329={'where':_0xd3d46a[_0x93cc('0x3d')]};return db[_0x93cc('0x2c')]['count'](_0x9d329)[_0x93cc('0x26')](function(_0x30a35d){_0x1de21a[_0x93cc('0x21')]=_0x30a35d;if(_0x30a5cb['query'][_0x93cc('0x41')]){_0xd3d46a[_0x93cc('0x42')]=[{'all':!![]}];}return db[_0x93cc('0x2c')][_0x93cc('0x43')](_0xd3d46a);})[_0x93cc('0x26')](function(_0x43cba6){_0x1de21a['rows']=_0x43cba6;return _0x1de21a;})[_0x93cc('0x26')](respondWithFilteredResult(_0x507044,_0xd3d46a))[_0x93cc('0x44')](handleError(_0x507044,null));};exports['show']=function(_0x51dc94,_0x34c68e){var _0x589381={'raw':![],'where':{'id':_0x51dc94['params']['id']}},_0x175890={};_0x175890[_0x93cc('0x30')]=_[_0x93cc('0x32')](db[_0x93cc('0x2c')][_0x93cc('0x2d')]);_0x175890['query']=_['keys'](_0x51dc94[_0x93cc('0x31')]);_0x175890[_0x93cc('0x33')]=_[_0x93cc('0x34')](_0x175890[_0x93cc('0x30')],_0x175890['query']);_0x589381[_0x93cc('0x35')]=_[_0x93cc('0x34')](_0x175890['model'],qs[_0x93cc('0x36')](_0x51dc94[_0x93cc('0x31')]['fields']));_0x589381[_0x93cc('0x35')]=_0x589381[_0x93cc('0x35')][_0x93cc('0x37')]?_0x589381[_0x93cc('0x35')]:_0x175890[_0x93cc('0x30')];if(_0x51dc94['query'][_0x93cc('0x41')]){_0x589381[_0x93cc('0x42')]=[{'all':!![]}];}_0x589381=_[_0x93cc('0x40')]({},_0x589381,_0x51dc94[_0x93cc('0x45')]);return db[_0x93cc('0x2c')][_0x93cc('0x46')](_0x589381)[_0x93cc('0x26')](handleEntityNotFound(_0x34c68e,null))[_0x93cc('0x26')](respondWithResult(_0x34c68e,null))[_0x93cc('0x44')](handleError(_0x34c68e,null));};exports[_0x93cc('0x47')]=function(_0x2cf306,_0x1ddd00){return db[_0x93cc('0x2c')][_0x93cc('0x47')](_0x2cf306[_0x93cc('0x48')],{})[_0x93cc('0x26')](respondWithResult(_0x1ddd00,0xc9))[_0x93cc('0x44')](handleError(_0x1ddd00,null));};exports[_0x93cc('0x49')]=function(_0x2bcc94,_0x5722a9){if(_0x2bcc94[_0x93cc('0x48')]['id']){delete _0x2bcc94[_0x93cc('0x48')]['id'];}return db['DeskConfiguration'][_0x93cc('0x46')]({'where':{'id':_0x2bcc94[_0x93cc('0x4a')]['id']}})['then'](handleEntityNotFound(_0x5722a9,null))[_0x93cc('0x26')](saveUpdates(_0x2bcc94['body'],null))[_0x93cc('0x26')](respondWithResult(_0x5722a9,null))[_0x93cc('0x44')](handleError(_0x5722a9,null));};exports[_0x93cc('0x4b')]=function(_0x4194ed,_0x1be1da){return db[_0x93cc('0x2c')][_0x93cc('0x46')]({'where':{'id':_0x4194ed[_0x93cc('0x4a')]['id']}})[_0x93cc('0x26')](handleEntityNotFound(_0x1be1da,null))[_0x93cc('0x26')](removeEntity(_0x1be1da,null))['catch'](handleError(_0x1be1da,null));};exports[_0x93cc('0x4c')]=function(_0x4d4c6e,_0x316237,_0x2ff1af){var _0x1b6866={};var _0x4e922b={};var _0x249692;var _0x32e29d;return db['DeskConfiguration']['findOne']({'where':{'id':_0x4d4c6e[_0x93cc('0x4a')]['id']}})['then'](handleEntityNotFound(_0x316237,null))['then'](function(_0x5358c7){if(_0x5358c7){_0x249692=_0x5358c7;_0x4e922b['model']=_[_0x93cc('0x32')](db['DeskField'][_0x93cc('0x2d')]);_0x4e922b[_0x93cc('0x31')]=_[_0x93cc('0x32')](_0x4d4c6e[_0x93cc('0x31')]);_0x4e922b[_0x93cc('0x33')]=_[_0x93cc('0x34')](_0x4e922b[_0x93cc('0x30')],_0x4e922b[_0x93cc('0x31')]);_0x1b6866[_0x93cc('0x35')]=_[_0x93cc('0x34')](_0x4e922b[_0x93cc('0x30')],qs[_0x93cc('0x36')](_0x4d4c6e['query']['fields']));_0x1b6866[_0x93cc('0x35')]=_0x1b6866['attributes'][_0x93cc('0x37')]?_0x1b6866[_0x93cc('0x35')]:_0x4e922b['model'];_0x1b6866[_0x93cc('0x3b')]=qs[_0x93cc('0x3c')](_0x4d4c6e[_0x93cc('0x31')][_0x93cc('0x3c')]);_0x1b6866[_0x93cc('0x3d')]=qs[_0x93cc('0x33')](_['pick'](_0x4d4c6e['query'],_0x4e922b[_0x93cc('0x33')]));if(_0x4d4c6e[_0x93cc('0x31')]['filter']){_0x1b6866[_0x93cc('0x3d')]=_[_0x93cc('0x40')](_0x1b6866[_0x93cc('0x3d')],{'$or':_['map'](_0x1b6866[_0x93cc('0x35')],function(_0x1d5f01){var _0x27ebc5={};_0x27ebc5[_0x1d5f01]={'$like':'%'+_0x4d4c6e['query']['filter']+'%'};return _0x27ebc5;})});}_0x1b6866=_['merge']({},_0x1b6866,_0x4d4c6e[_0x93cc('0x45')]);return _0x249692['getFields'](_0x1b6866);}})[_0x93cc('0x26')](function(_0x13a469){if(_0x13a469){_0x32e29d=_0x13a469['length'];if(!_0x4d4c6e[_0x93cc('0x31')][_0x93cc('0x38')](_0x93cc('0x39'))){_0x1b6866[_0x93cc('0x3a')]=qs[_0x93cc('0x3a')](_0x4d4c6e[_0x93cc('0x31')][_0x93cc('0x3a')]);_0x1b6866[_0x93cc('0x20')]=qs[_0x93cc('0x20')](_0x4d4c6e[_0x93cc('0x31')][_0x93cc('0x20')]);}return _0x249692['getFields'](_0x1b6866);}})[_0x93cc('0x26')](function(_0xc06a41){if(_0xc06a41){return _0xc06a41?{'count':_0x32e29d,'rows':_0xc06a41}:null;}})[_0x93cc('0x26')](respondWithResult(_0x316237,null))[_0x93cc('0x44')](handleError(_0x316237,null));};exports['getSubjects']=function(_0x3bf12f,_0x4ec691,_0x2653e8){var _0x36724c={};var _0x3c72da={};var _0x208dd6;var _0x2d3659;return db['DeskConfiguration']['findOne']({'where':{'id':_0x3bf12f[_0x93cc('0x4a')]['id']}})['then'](handleEntityNotFound(_0x4ec691,null))[_0x93cc('0x26')](function(_0x4dc802){if(_0x4dc802){_0x208dd6=_0x4dc802;_0x3c72da[_0x93cc('0x30')]=_[_0x93cc('0x32')](db[_0x93cc('0x4d')]['rawAttributes']);_0x3c72da['query']=_['keys'](_0x3bf12f['query']);_0x3c72da[_0x93cc('0x33')]=_[_0x93cc('0x34')](_0x3c72da[_0x93cc('0x30')],_0x3c72da['query']);_0x36724c[_0x93cc('0x35')]=_['intersection'](_0x3c72da['model'],qs[_0x93cc('0x36')](_0x3bf12f[_0x93cc('0x31')][_0x93cc('0x36')]));_0x36724c[_0x93cc('0x35')]=_0x36724c[_0x93cc('0x35')][_0x93cc('0x37')]?_0x36724c[_0x93cc('0x35')]:_0x3c72da[_0x93cc('0x30')];_0x36724c[_0x93cc('0x3b')]=qs[_0x93cc('0x3c')](_0x3bf12f[_0x93cc('0x31')]['sort']);_0x36724c[_0x93cc('0x3d')]=qs[_0x93cc('0x33')](_[_0x93cc('0x4e')](_0x3bf12f[_0x93cc('0x31')],_0x3c72da['filters']));if(_0x3bf12f[_0x93cc('0x31')][_0x93cc('0x3e')]){_0x36724c[_0x93cc('0x3d')]=_[_0x93cc('0x40')](_0x36724c['where'],{'$or':_[_0x93cc('0x2b')](_0x36724c[_0x93cc('0x35')],function(_0x4fa7ed){var _0x23adc4={};_0x23adc4[_0x4fa7ed]={'$like':'%'+_0x3bf12f['query'][_0x93cc('0x3e')]+'%'};return _0x23adc4;})});}_0x36724c=_[_0x93cc('0x40')]({},_0x36724c,_0x3bf12f[_0x93cc('0x45')]);return _0x208dd6['getSubjects'](_0x36724c);}})[_0x93cc('0x26')](function(_0x2b910f){if(_0x2b910f){_0x2d3659=_0x2b910f[_0x93cc('0x37')];if(!_0x3bf12f[_0x93cc('0x31')][_0x93cc('0x38')](_0x93cc('0x39'))){_0x36724c[_0x93cc('0x3a')]=qs[_0x93cc('0x3a')](_0x3bf12f[_0x93cc('0x31')][_0x93cc('0x3a')]);_0x36724c[_0x93cc('0x20')]=qs[_0x93cc('0x20')](_0x3bf12f[_0x93cc('0x31')][_0x93cc('0x20')]);}return _0x208dd6[_0x93cc('0x4f')](_0x36724c);}})[_0x93cc('0x26')](function(_0x5cc8f9){if(_0x5cc8f9){return _0x5cc8f9?{'count':_0x2d3659,'rows':_0x5cc8f9}:null;}})[_0x93cc('0x26')](respondWithResult(_0x4ec691,null))[_0x93cc('0x44')](handleError(_0x4ec691,null));};exports['getDescriptions']=function(_0x17d566,_0x45a5d0,_0x41a8cd){var _0x57cbea={};var _0xb19f20={};var _0x1279a1;var _0x4226f3;return db[_0x93cc('0x2c')][_0x93cc('0x50')]({'where':{'id':_0x17d566[_0x93cc('0x4a')]['id']}})[_0x93cc('0x26')](handleEntityNotFound(_0x45a5d0,null))[_0x93cc('0x26')](function(_0x4b67a7){if(_0x4b67a7){_0x1279a1=_0x4b67a7;_0xb19f20['model']=_['keys'](db['DeskField'][_0x93cc('0x2d')]);_0xb19f20[_0x93cc('0x31')]=_[_0x93cc('0x32')](_0x17d566[_0x93cc('0x31')]);_0xb19f20['filters']=_[_0x93cc('0x34')](_0xb19f20['model'],_0xb19f20[_0x93cc('0x31')]);_0x57cbea[_0x93cc('0x35')]=_[_0x93cc('0x34')](_0xb19f20[_0x93cc('0x30')],qs[_0x93cc('0x36')](_0x17d566[_0x93cc('0x31')][_0x93cc('0x36')]));_0x57cbea[_0x93cc('0x35')]=_0x57cbea[_0x93cc('0x35')][_0x93cc('0x37')]?_0x57cbea[_0x93cc('0x35')]:_0xb19f20['model'];_0x57cbea[_0x93cc('0x3b')]=qs['sort'](_0x17d566[_0x93cc('0x31')]['sort']);_0x57cbea['where']=qs[_0x93cc('0x33')](_[_0x93cc('0x4e')](_0x17d566[_0x93cc('0x31')],_0xb19f20[_0x93cc('0x33')]));if(_0x17d566[_0x93cc('0x31')][_0x93cc('0x3e')]){_0x57cbea[_0x93cc('0x3d')]=_[_0x93cc('0x40')](_0x57cbea[_0x93cc('0x3d')],{'$or':_[_0x93cc('0x2b')](_0x57cbea[_0x93cc('0x35')],function(_0x4d4df3){var _0x4d7ba7={};_0x4d7ba7[_0x4d4df3]={'$like':'%'+_0x17d566[_0x93cc('0x31')][_0x93cc('0x3e')]+'%'};return _0x4d7ba7;})});}_0x57cbea=_[_0x93cc('0x40')]({},_0x57cbea,_0x17d566[_0x93cc('0x45')]);return _0x1279a1[_0x93cc('0x51')](_0x57cbea);}})[_0x93cc('0x26')](function(_0x2aa45b){if(_0x2aa45b){_0x4226f3=_0x2aa45b[_0x93cc('0x37')];if(!_0x17d566['query'][_0x93cc('0x38')](_0x93cc('0x39'))){_0x57cbea[_0x93cc('0x3a')]=qs['limit'](_0x17d566[_0x93cc('0x31')][_0x93cc('0x3a')]);_0x57cbea[_0x93cc('0x20')]=qs['offset'](_0x17d566[_0x93cc('0x31')][_0x93cc('0x20')]);}return _0x1279a1[_0x93cc('0x51')](_0x57cbea);}})[_0x93cc('0x26')](function(_0x3222ba){if(_0x3222ba){return _0x3222ba?{'count':_0x4226f3,'rows':_0x3222ba}:null;}})[_0x93cc('0x26')](respondWithResult(_0x45a5d0,null))[_0x93cc('0x44')](handleError(_0x45a5d0,null));};exports['getTags']=function(_0x377d04,_0x8f9069,_0x2360e3){var _0x48ef44={};var _0x4d671f={};var _0x17cd0c;var _0x5b9bdb;return db[_0x93cc('0x2c')][_0x93cc('0x50')]({'where':{'id':_0x377d04[_0x93cc('0x4a')]['id']}})['then'](handleEntityNotFound(_0x8f9069,null))['then'](function(_0x544393){if(_0x544393){_0x17cd0c=_0x544393;_0x4d671f[_0x93cc('0x30')]=_[_0x93cc('0x32')](db['Tag']['rawAttributes']);_0x4d671f['query']=_[_0x93cc('0x32')](_0x377d04[_0x93cc('0x31')]);_0x4d671f[_0x93cc('0x33')]=_[_0x93cc('0x34')](_0x4d671f['model'],_0x4d671f[_0x93cc('0x31')]);_0x48ef44[_0x93cc('0x35')]=_[_0x93cc('0x34')](_0x4d671f[_0x93cc('0x30')],qs[_0x93cc('0x36')](_0x377d04[_0x93cc('0x31')][_0x93cc('0x36')]));_0x48ef44[_0x93cc('0x35')]=_0x48ef44['attributes'][_0x93cc('0x37')]?_0x48ef44['attributes']:_0x4d671f['model'];_0x48ef44[_0x93cc('0x3b')]=qs[_0x93cc('0x3c')](_0x377d04['query'][_0x93cc('0x3c')]);_0x48ef44['where']=qs[_0x93cc('0x33')](_['pick'](_0x377d04[_0x93cc('0x31')],_0x4d671f[_0x93cc('0x33')]));if(_0x377d04[_0x93cc('0x31')][_0x93cc('0x3e')]){_0x48ef44[_0x93cc('0x3d')]=_[_0x93cc('0x40')](_0x48ef44[_0x93cc('0x3d')],{'$or':_[_0x93cc('0x2b')](_0x48ef44[_0x93cc('0x35')],function(_0x4192f3){var _0x148a35={};_0x148a35[_0x4192f3]={'$like':'%'+_0x377d04[_0x93cc('0x31')][_0x93cc('0x3e')]+'%'};return _0x148a35;})});}_0x48ef44=_[_0x93cc('0x40')]({},_0x48ef44,_0x377d04['options']);return _0x17cd0c[_0x93cc('0x52')](_0x48ef44);}})['then'](function(_0x5dafc4){if(_0x5dafc4){_0x5b9bdb=_0x5dafc4['length'];if(!_0x377d04['query'][_0x93cc('0x38')](_0x93cc('0x39'))){_0x48ef44[_0x93cc('0x3a')]=qs['limit'](_0x377d04['query']['limit']);_0x48ef44[_0x93cc('0x20')]=qs['offset'](_0x377d04['query'][_0x93cc('0x20')]);}return _0x17cd0c[_0x93cc('0x52')](_0x48ef44);}})[_0x93cc('0x26')](function(_0x45a98a){if(_0x45a98a){return _0x45a98a?{'count':_0x5b9bdb,'rows':_0x45a98a}:null;}})[_0x93cc('0x26')](respondWithResult(_0x8f9069,null))[_0x93cc('0x44')](handleError(_0x8f9069,null));};exports[_0x93cc('0x53')]=function(_0x2aa1a2,_0x1f2a61,_0x18bc68){if(_0x2aa1a2[_0x93cc('0x48')]['id']){delete _0x2aa1a2[_0x93cc('0x48')]['id'];}return db[_0x93cc('0x2c')]['findOne']({'where':{'id':_0x2aa1a2[_0x93cc('0x4a')]['id']}})[_0x93cc('0x26')](handleEntityNotFound(_0x1f2a61,null))['then'](function(_0x59bde5){if(_0x59bde5){return _0x59bde5[_0x93cc('0x53')](_0x2aa1a2['body']['ids']||[]);}return null;})[_0x93cc('0x26')](respondWithResult(_0x1f2a61,null))[_0x93cc('0x44')](handleError(_0x1f2a61,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf0f4=['request-promise','path','../../config/environment','DeskConfiguration','int_desk_configurations','lodash','util','../../config/logger','api','moment','bluebird'];(function(_0xab58d0,_0x185b15){var _0x4baefc=function(_0x2798fc){while(--_0x2798fc){_0xab58d0['push'](_0xab58d0['shift']());}};_0x4baefc(++_0x185b15);}(_0xf0f4,0x1d3));var _0x4f0f=function(_0x400598,_0x2c08d0){_0x400598=_0x400598-0x0;var _0xdfc2ee=_0xf0f4[_0x400598];return _0xdfc2ee;};'use strict';var _=require(_0x4f0f('0x0'));var util=require(_0x4f0f('0x1'));var logger=require(_0x4f0f('0x2'))(_0x4f0f('0x3'));var moment=require(_0x4f0f('0x4'));var BPromise=require(_0x4f0f('0x5'));var rp=require(_0x4f0f('0x6'));var fs=require('fs');var path=require(_0x4f0f('0x7'));var rimraf=require('rimraf');var config=require(_0x4f0f('0x8'));var attributes=require('./intDeskConfiguration.attributes');module['exports']=function(_0x21ee5d,_0x53e4b5){return _0x21ee5d['define'](_0x4f0f('0x9'),attributes,{'tableName':_0x4f0f('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xaaf8=['bluebird','request-promise','path','../../config/environment','./intDeskConfiguration.attributes','exports','define','util','api','moment'];(function(_0x3c04d4,_0x3df08b){var _0x312186=function(_0x191e5c){while(--_0x191e5c){_0x3c04d4['push'](_0x3c04d4['shift']());}};_0x312186(++_0x3df08b);}(_0xaaf8,0x1ab));var _0x8aaf=function(_0x47e3ab,_0x2587b2){_0x47e3ab=_0x47e3ab-0x0;var _0x47878f=_0xaaf8[_0x47e3ab];return _0x47878f;};'use strict';var _=require('lodash');var util=require(_0x8aaf('0x0'));var logger=require('../../config/logger')(_0x8aaf('0x1'));var moment=require(_0x8aaf('0x2'));var BPromise=require(_0x8aaf('0x3'));var rp=require(_0x8aaf('0x4'));var fs=require('fs');var path=require(_0x8aaf('0x5'));var rimraf=require('rimraf');var config=require(_0x8aaf('0x6'));var attributes=require(_0x8aaf('0x7'));module[_0x8aaf('0x8')]=function(_0x4d0a49,_0xc3fdc7){return _0x4d0a49[_0x8aaf('0x9')]('DeskConfiguration',attributes,{'tableName':'int_desk_configurations','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x87e5=['error','code','message','lodash','util','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','DeskConfiguration,\x20%s,\x20%s','request\x20sent','debug','DeskConfiguration,\x20%s,\x20%s,\x20%s','stringify'];(function(_0xf18977,_0x87ecc4){var _0x360bb8=function(_0x58a178){while(--_0x58a178){_0xf18977['push'](_0xf18977['shift']());}};_0x360bb8(++_0x87ecc4);}(_0x87e5,0xc1));var _0x587e=function(_0x54a229,_0x479dd1){_0x54a229=_0x54a229-0x0;var _0x36232e=_0x87e5[_0x54a229];return _0x36232e;};'use strict';var _=require(_0x587e('0x0'));var util=require(_0x587e('0x1'));var moment=require('moment');var BPromise=require(_0x587e('0x2'));var rs=require(_0x587e('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x587e('0x4'))['db'];var utils=require(_0x587e('0x5'));var logger=require(_0x587e('0x6'))(_0x587e('0x7'));var config=require(_0x587e('0x8'));var jayson=require(_0x587e('0x9'));var client=jayson['client'][_0x587e('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x277c07,_0xcdf7f6,_0x1c6f95){return new BPromise(function(_0x794823,_0x53bb84){return client['request'](_0x277c07,_0x1c6f95)['then'](function(_0x48ccb7){logger['info'](_0x587e('0xb'),_0xcdf7f6,_0x587e('0xc'));logger[_0x587e('0xd')](_0x587e('0xe'),_0xcdf7f6,_0x587e('0xc'),JSON[_0x587e('0xf')](_0x48ccb7));if(_0x48ccb7[_0x587e('0x10')]){if(_0x48ccb7[_0x587e('0x10')][_0x587e('0x11')]===0x1f4){logger[_0x587e('0x10')]('DeskConfiguration,\x20%s,\x20%s',_0xcdf7f6,_0x48ccb7[_0x587e('0x10')][_0x587e('0x12')]);return _0x53bb84(_0x48ccb7['error']['message']);}logger[_0x587e('0x10')]('DeskConfiguration,\x20%s,\x20%s',_0xcdf7f6,_0x48ccb7[_0x587e('0x10')][_0x587e('0x12')]);return _0x794823(_0x48ccb7[_0x587e('0x10')][_0x587e('0x12')]);}else{logger['info']('DeskConfiguration,\x20%s,\x20%s',_0xcdf7f6,_0x587e('0xc'));_0x794823(_0x48ccb7['result'][_0x587e('0x12')]);}})['catch'](function(_0x21636d){logger[_0x587e('0x10')](_0x587e('0xb'),_0xcdf7f6,_0x21636d);_0x53bb84(_0x21636d);});});}
\ No newline at end of file
+var _0xccef=['stringify','error','code','message','result','catch','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','jayson/promise','http','request','info','DeskConfiguration,\x20%s,\x20%s','request\x20sent','debug','DeskConfiguration,\x20%s,\x20%s,\x20%s'];(function(_0x408a0e,_0x2601f4){var _0x3f0f05=function(_0x5a3c8b){while(--_0x5a3c8b){_0x408a0e['push'](_0x408a0e['shift']());}};_0x3f0f05(++_0x2601f4);}(_0xccef,0x1d4));var _0xfcce=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xccef[_0x20a584];return _0x4b41a8;};'use strict';var _=require('lodash');var util=require(_0xfcce('0x0'));var moment=require('moment');var BPromise=require(_0xfcce('0x1'));var rs=require(_0xfcce('0x2'));var fs=require('fs');var Redis=require(_0xfcce('0x3'));var db=require(_0xfcce('0x4'))['db'];var utils=require(_0xfcce('0x5'));var logger=require(_0xfcce('0x6'))('rpc');var config=require('../../config/environment');var jayson=require(_0xfcce('0x7'));var client=jayson['client'][_0xfcce('0x8')]({'port':0x232a});function respondWithRpcPromise(_0xd71971,_0x12d091,_0x4598c1){return new BPromise(function(_0x117bc3,_0x380c2c){return client[_0xfcce('0x9')](_0xd71971,_0x4598c1)['then'](function(_0x382ea5){logger[_0xfcce('0xa')](_0xfcce('0xb'),_0x12d091,_0xfcce('0xc'));logger[_0xfcce('0xd')](_0xfcce('0xe'),_0x12d091,_0xfcce('0xc'),JSON[_0xfcce('0xf')](_0x382ea5));if(_0x382ea5[_0xfcce('0x10')]){if(_0x382ea5[_0xfcce('0x10')][_0xfcce('0x11')]===0x1f4){logger['error'](_0xfcce('0xb'),_0x12d091,_0x382ea5[_0xfcce('0x10')][_0xfcce('0x12')]);return _0x380c2c(_0x382ea5[_0xfcce('0x10')]['message']);}logger[_0xfcce('0x10')](_0xfcce('0xb'),_0x12d091,_0x382ea5['error']['message']);return _0x117bc3(_0x382ea5[_0xfcce('0x10')][_0xfcce('0x12')]);}else{logger[_0xfcce('0xa')](_0xfcce('0xb'),_0x12d091,_0xfcce('0xc'));_0x117bc3(_0x382ea5[_0xfcce('0x13')][_0xfcce('0x12')]);}})[_0xfcce('0x14')](function(_0x2d7611){logger[_0xfcce('0x10')](_0xfcce('0xb'),_0x12d091,_0x2d7611);_0x380c2c(_0x2d7611);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf79e=['put','/:id','update','delete','destroy','util','path','connect-timeout','Router','fs-extra','../../config/environment','./intDeskField.controller','get','isAuthenticated','index','post'];(function(_0x55dd60,_0x479fb7){var _0x505abb=function(_0x5429c9){while(--_0x5429c9){_0x55dd60['push'](_0x55dd60['shift']());}};_0x505abb(++_0x479fb7);}(_0xf79e,0x185));var _0xef79=function(_0x2700de,_0x4baeac){_0x2700de=_0x2700de-0x0;var _0x4bfc1b=_0xf79e[_0x2700de];return _0x4bfc1b;};'use strict';var multer=require('multer');var util=require(_0xef79('0x0'));var path=require(_0xef79('0x1'));var timeout=require(_0xef79('0x2'));var express=require('express');var router=express[_0xef79('0x3')]();var fs_extra=require(_0xef79('0x4'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0xef79('0x5'));var controller=require(_0xef79('0x6'));router[_0xef79('0x7')]('/',auth[_0xef79('0x8')](),controller[_0xef79('0x9')]);router[_0xef79('0x7')]('/:id',auth[_0xef79('0x8')](),controller['show']);router[_0xef79('0xa')]('/',auth[_0xef79('0x8')](),controller['create']);router[_0xef79('0xb')](_0xef79('0xc'),auth[_0xef79('0x8')](),controller[_0xef79('0xd')]);router[_0xef79('0xe')](_0xef79('0xc'),auth[_0xef79('0x8')](),controller[_0xef79('0xf')]);module['exports']=router;
\ No newline at end of file
+var _0x4503=['post','create','put','update','delete','destroy','exports','util','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../config/environment','./intDeskField.controller','get','index','/:id','isAuthenticated'];(function(_0x4c7b20,_0x361515){var _0x4872bd=function(_0x358e19){while(--_0x358e19){_0x4c7b20['push'](_0x4c7b20['shift']());}};_0x4872bd(++_0x361515);}(_0x4503,0x111));var _0x3450=function(_0x482320,_0x313d56){_0x482320=_0x482320-0x0;var _0x40120a=_0x4503[_0x482320];return _0x40120a;};'use strict';var multer=require('multer');var util=require(_0x3450('0x0'));var path=require(_0x3450('0x1'));var timeout=require(_0x3450('0x2'));var express=require('express');var router=express[_0x3450('0x3')]();var fs_extra=require(_0x3450('0x4'));var auth=require(_0x3450('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0x3450('0x6'));var controller=require(_0x3450('0x7'));router[_0x3450('0x8')]('/',auth['isAuthenticated'](),controller[_0x3450('0x9')]);router[_0x3450('0x8')](_0x3450('0xa'),auth[_0x3450('0xb')](),controller['show']);router[_0x3450('0xc')]('/',auth['isAuthenticated'](),controller[_0x3450('0xd')]);router[_0x3450('0xe')]('/:id',auth[_0x3450('0xb')](),controller[_0x3450('0xf')]);router[_0x3450('0x10')](_0x3450('0xa'),auth['isAuthenticated'](),controller[_0x3450('0x11')]);module[_0x3450('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4e53=['variable','keyValue','picklist','STRING','customVariable','BOOLEAN','sequelize','exports','ENUM','string'];(function(_0x4eccce,_0x40cb7e){var _0x22ad7e=function(_0x4e1a93){while(--_0x4e1a93){_0x4eccce['push'](_0x4eccce['shift']());}};_0x22ad7e(++_0x40cb7e);}(_0x4e53,0xa6));var _0x34e5=function(_0x14eb15,_0x5df0a8){_0x14eb15=_0x14eb15-0x0;var _0x460dab=_0x4e53[_0x14eb15];return _0x460dab;};'use strict';var Sequelize=require(_0x34e5('0x0'));module[_0x34e5('0x1')]={'type':{'type':Sequelize[_0x34e5('0x2')](_0x34e5('0x3'),_0x34e5('0x4'),'customVariable',_0x34e5('0x5'),_0x34e5('0x6')),'defaultValue':_0x34e5('0x3')},'content':{'type':Sequelize[_0x34e5('0x7')]},'key':{'type':Sequelize[_0x34e5('0x7')]},'keyType':{'type':Sequelize[_0x34e5('0x2')](_0x34e5('0x3'),_0x34e5('0x4'),_0x34e5('0x8'))},'keyContent':{'type':Sequelize[_0x34e5('0x7')]},'idField':{'type':Sequelize[_0x34e5('0x7')]},'nameField':{'type':Sequelize[_0x34e5('0x7')]},'customField':{'type':Sequelize[_0x34e5('0x9')],'defaultValue':!![]},'variableName':{'type':Sequelize[_0x34e5('0x7')]}};
\ No newline at end of file
+var _0x4cca=['customVariable','picklist','STRING','BOOLEAN','exports','ENUM','string','variable'];(function(_0x9e19f7,_0x5ee087){var _0x5aa6f3=function(_0x4028f6){while(--_0x4028f6){_0x9e19f7['push'](_0x9e19f7['shift']());}};_0x5aa6f3(++_0x5ee087);}(_0x4cca,0x1ac));var _0xa4cc=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0x4cca[_0x20a584];return _0x4b41a8;};'use strict';var Sequelize=require('sequelize');module[_0xa4cc('0x0')]={'type':{'type':Sequelize[_0xa4cc('0x1')](_0xa4cc('0x2'),_0xa4cc('0x3'),_0xa4cc('0x4'),'keyValue',_0xa4cc('0x5')),'defaultValue':'string'},'content':{'type':Sequelize[_0xa4cc('0x6')]},'key':{'type':Sequelize[_0xa4cc('0x6')]},'keyType':{'type':Sequelize[_0xa4cc('0x1')](_0xa4cc('0x2'),_0xa4cc('0x3'),_0xa4cc('0x4'))},'keyContent':{'type':Sequelize[_0xa4cc('0x6')]},'idField':{'type':Sequelize['STRING']},'nameField':{'type':Sequelize[_0xa4cc('0x6')]},'customField':{'type':Sequelize[_0xa4cc('0x7')],'defaultValue':!![]},'variableName':{'type':Sequelize[_0xa4cc('0x6')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc1c6=['type','key','model','query','filters','attributes','intersection','fields','hasOwnProperty','nolimit','sort','where','pick','filter','merge','VIRTUAL','includeAll','include','findAll','rows','catch','show','params','keys','length','find','create','body','eml-format','rimraf','zip-dir','request-promise','bluebird','mustache','util','to-csv','fs-extra','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','end','status','json','offset','undefined','count','limit','set','Content-Range','apply','reject','save','update','then','destroy','error','name','index','map','DeskField','rawAttributes'];(function(_0x30f6e9,_0x1b4ccd){var _0x4027dc=function(_0x764b50){while(--_0x764b50){_0x30f6e9['push'](_0x30f6e9['shift']());}};_0x4027dc(++_0x1b4ccd);}(_0xc1c6,0xf7));var _0x6c1c=function(_0x44def0,_0x55b2ab){_0x44def0=_0x44def0-0x0;var _0x32484e=_0xc1c6[_0x44def0];return _0x32484e;};'use strict';var emlformat=require(_0x6c1c('0x0'));var rimraf=require(_0x6c1c('0x1'));var zipdir=require(_0x6c1c('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x6c1c('0x3'));var moment=require('moment');var BPromise=require(_0x6c1c('0x4'));var Mustache=require(_0x6c1c('0x5'));var util=require(_0x6c1c('0x6'));var path=require('path');var sox=require('sox');var csv=require(_0x6c1c('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x6c1c('0x8'));var _=require('lodash');var squel=require(_0x6c1c('0x9'));var crypto=require(_0x6c1c('0xa'));var jsforce=require(_0x6c1c('0xb'));var deskjs=require(_0x6c1c('0xc'));var toCsv=require('to-csv');var querystring=require(_0x6c1c('0xd'));var Papa=require(_0x6c1c('0xe'));var Redis=require('ioredis');var authService=require(_0x6c1c('0xf'));var qs=require(_0x6c1c('0x10'));var as=require(_0x6c1c('0x11'));var hardwareService=require(_0x6c1c('0x12'));var logger=require('../../config/logger')(_0x6c1c('0x13'));var utils=require(_0x6c1c('0x14'));var config=require(_0x6c1c('0x15'));var licenseUtil=require('../../config/license/util');var db=require(_0x6c1c('0x16'))['db'];function respondWithStatusCode(_0x12a9e6,_0x2067bd){_0x2067bd=_0x2067bd||0xcc;return function(_0x49304f){if(_0x49304f){return _0x12a9e6[_0x6c1c('0x17')](_0x2067bd);}return _0x12a9e6['status'](_0x2067bd)[_0x6c1c('0x18')]();};}function respondWithResult(_0x15a1fc,_0x2d279e){_0x2d279e=_0x2d279e||0xc8;return function(_0x154107){if(_0x154107){return _0x15a1fc[_0x6c1c('0x19')](_0x2d279e)[_0x6c1c('0x1a')](_0x154107);}};}function respondWithFilteredResult(_0x297c33,_0x41aa74){return function(_0x448f35){if(_0x448f35){var _0x5f3758=typeof _0x41aa74[_0x6c1c('0x1b')]===_0x6c1c('0x1c')&&typeof _0x41aa74['limit']===_0x6c1c('0x1c');var _0x237cac=_0x448f35['count'];var _0x137770=_0x5f3758?0x0:_0x41aa74['offset'];var _0x338dc2=_0x5f3758?_0x448f35[_0x6c1c('0x1d')]:_0x41aa74['offset']+_0x41aa74[_0x6c1c('0x1e')];var _0x59ab38;if(_0x338dc2>=_0x237cac){_0x338dc2=_0x237cac;_0x59ab38=0xc8;}else{_0x59ab38=0xce;}_0x297c33[_0x6c1c('0x19')](_0x59ab38);return _0x297c33[_0x6c1c('0x1f')](_0x6c1c('0x20'),_0x137770+'-'+_0x338dc2+'/'+_0x237cac)[_0x6c1c('0x1a')](_0x448f35);}return null;};}function patchUpdates(_0x1acf7f){return function(_0x1efb19){try{jsonpatch[_0x6c1c('0x21')](_0x1efb19,_0x1acf7f,!![]);}catch(_0x2ed830){return BPromise[_0x6c1c('0x22')](_0x2ed830);}return _0x1efb19[_0x6c1c('0x23')]();};}function saveUpdates(_0x3d2bf3,_0x450b1f){return function(_0x2382c0){if(_0x2382c0){return _0x2382c0[_0x6c1c('0x24')](_0x3d2bf3)[_0x6c1c('0x25')](function(_0x19c269){return _0x19c269;});}return null;};}function removeEntity(_0x2319d3,_0x12c638){return function(_0x3a3f13){if(_0x3a3f13){return _0x3a3f13[_0x6c1c('0x26')]()[_0x6c1c('0x25')](function(){_0x2319d3[_0x6c1c('0x19')](0xcc)[_0x6c1c('0x18')]();});}};}function handleEntityNotFound(_0x7ff10d,_0x18452d){return function(_0x80bc05){if(!_0x80bc05){_0x7ff10d[_0x6c1c('0x17')](0x194);}return _0x80bc05;};}function handleError(_0x1b9d7d,_0x2feaf4){_0x2feaf4=_0x2feaf4||0x1f4;return function(_0x5f4568){logger[_0x6c1c('0x27')](_0x5f4568['stack']);if(_0x5f4568[_0x6c1c('0x28')]){delete _0x5f4568['name'];}_0x1b9d7d[_0x6c1c('0x19')](_0x2feaf4)['send'](_0x5f4568);};}exports[_0x6c1c('0x29')]=function(_0xf557ba,_0x504348){var _0x3b1a4f={},_0x24da4c={},_0x4e13e3={'count':0x0,'rows':[]};var _0x3b319a=_[_0x6c1c('0x2a')](db[_0x6c1c('0x2b')][_0x6c1c('0x2c')],function(_0x4fc279){return{'name':_0x4fc279['fieldName'],'type':_0x4fc279[_0x6c1c('0x2d')][_0x6c1c('0x2e')]};});_0x24da4c[_0x6c1c('0x2f')]=_[_0x6c1c('0x2a')](_0x3b319a,_0x6c1c('0x28'));_0x24da4c[_0x6c1c('0x30')]=_['keys'](_0xf557ba[_0x6c1c('0x30')]);_0x24da4c[_0x6c1c('0x31')]=_['intersection'](_0x24da4c[_0x6c1c('0x2f')],_0x24da4c[_0x6c1c('0x30')]);_0x3b1a4f[_0x6c1c('0x32')]=_[_0x6c1c('0x33')](_0x24da4c['model'],qs[_0x6c1c('0x34')](_0xf557ba[_0x6c1c('0x30')][_0x6c1c('0x34')]));_0x3b1a4f['attributes']=_0x3b1a4f[_0x6c1c('0x32')]['length']?_0x3b1a4f[_0x6c1c('0x32')]:_0x24da4c['model'];if(!_0xf557ba[_0x6c1c('0x30')][_0x6c1c('0x35')](_0x6c1c('0x36'))){_0x3b1a4f['limit']=qs['limit'](_0xf557ba[_0x6c1c('0x30')][_0x6c1c('0x1e')]);_0x3b1a4f[_0x6c1c('0x1b')]=qs['offset'](_0xf557ba[_0x6c1c('0x30')]['offset']);}_0x3b1a4f['order']=qs[_0x6c1c('0x37')](_0xf557ba[_0x6c1c('0x30')][_0x6c1c('0x37')]);_0x3b1a4f[_0x6c1c('0x38')]=qs['filters'](_[_0x6c1c('0x39')](_0xf557ba[_0x6c1c('0x30')],_0x24da4c[_0x6c1c('0x31')]),_0x3b319a);if(_0xf557ba[_0x6c1c('0x30')][_0x6c1c('0x3a')]){_0x3b1a4f[_0x6c1c('0x38')]=_[_0x6c1c('0x3b')](_0x3b1a4f[_0x6c1c('0x38')],{'$or':_[_0x6c1c('0x2a')](_0x3b319a,function(_0x232508){if(_0x232508['type']!==_0x6c1c('0x3c')){var _0x464549={};_0x464549[_0x232508[_0x6c1c('0x28')]]={'$like':'%'+_0xf557ba[_0x6c1c('0x30')][_0x6c1c('0x3a')]+'%'};return _0x464549;}})});}_0x3b1a4f=_['merge']({},_0x3b1a4f,_0xf557ba['options']);var _0x549db1={'where':_0x3b1a4f[_0x6c1c('0x38')]};return db['DeskField']['count'](_0x549db1)[_0x6c1c('0x25')](function(_0x37244e){_0x4e13e3['count']=_0x37244e;if(_0xf557ba[_0x6c1c('0x30')][_0x6c1c('0x3d')]){_0x3b1a4f[_0x6c1c('0x3e')]=[{'all':!![]}];}return db['DeskField'][_0x6c1c('0x3f')](_0x3b1a4f);})[_0x6c1c('0x25')](function(_0x502e75){_0x4e13e3[_0x6c1c('0x40')]=_0x502e75;return _0x4e13e3;})['then'](respondWithFilteredResult(_0x504348,_0x3b1a4f))[_0x6c1c('0x41')](handleError(_0x504348,null));};exports[_0x6c1c('0x42')]=function(_0x16a389,_0x174f2c){var _0x10764a={'raw':!![],'where':{'id':_0x16a389[_0x6c1c('0x43')]['id']}},_0x595ba2={};_0x595ba2[_0x6c1c('0x2f')]=_[_0x6c1c('0x44')](db['DeskField'][_0x6c1c('0x2c')]);_0x595ba2[_0x6c1c('0x30')]=_[_0x6c1c('0x44')](_0x16a389[_0x6c1c('0x30')]);_0x595ba2[_0x6c1c('0x31')]=_['intersection'](_0x595ba2[_0x6c1c('0x2f')],_0x595ba2['query']);_0x10764a['attributes']=_['intersection'](_0x595ba2[_0x6c1c('0x2f')],qs[_0x6c1c('0x34')](_0x16a389[_0x6c1c('0x30')][_0x6c1c('0x34')]));_0x10764a[_0x6c1c('0x32')]=_0x10764a[_0x6c1c('0x32')][_0x6c1c('0x45')]?_0x10764a[_0x6c1c('0x32')]:_0x595ba2['model'];if(_0x16a389[_0x6c1c('0x30')][_0x6c1c('0x3d')]){_0x10764a['include']=[{'all':!![]}];}_0x10764a=_[_0x6c1c('0x3b')]({},_0x10764a,_0x16a389['options']);return db[_0x6c1c('0x2b')][_0x6c1c('0x46')](_0x10764a)[_0x6c1c('0x25')](handleEntityNotFound(_0x174f2c,null))[_0x6c1c('0x25')](respondWithResult(_0x174f2c,null))[_0x6c1c('0x41')](handleError(_0x174f2c,null));};exports['create']=function(_0x1fe6e8,_0x58d075){return db[_0x6c1c('0x2b')][_0x6c1c('0x47')](_0x1fe6e8[_0x6c1c('0x48')],{})[_0x6c1c('0x25')](respondWithResult(_0x58d075,0xc9))[_0x6c1c('0x41')](handleError(_0x58d075,null));};exports[_0x6c1c('0x24')]=function(_0x52c14d,_0xa9889a){if(_0x52c14d[_0x6c1c('0x48')]['id']){delete _0x52c14d['body']['id'];}return db[_0x6c1c('0x2b')][_0x6c1c('0x46')]({'where':{'id':_0x52c14d[_0x6c1c('0x43')]['id']}})[_0x6c1c('0x25')](handleEntityNotFound(_0xa9889a,null))['then'](saveUpdates(_0x52c14d[_0x6c1c('0x48')],null))[_0x6c1c('0x25')](respondWithResult(_0xa9889a,null))[_0x6c1c('0x41')](handleError(_0xa9889a,null));};exports['destroy']=function(_0x5b8d69,_0x56b367){return db['DeskField']['find']({'where':{'id':_0x5b8d69[_0x6c1c('0x43')]['id']}})[_0x6c1c('0x25')](handleEntityNotFound(_0x56b367,null))['then'](removeEntity(_0x56b367,null))[_0x6c1c('0x41')](handleError(_0x56b367,null));};
\ No newline at end of file
+var _0x5902=['length','hasOwnProperty','nolimit','order','sort','filters','pick','filter','merge','VIRTUAL','where','includeAll','include','rows','params','rawAttributes','options','find','catch','create','body','eml-format','zip-dir','fast-json-patch','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','../../mysqldb','status','end','offset','undefined','limit','count','set','Content-Range','json','apply','reject','update','then','destroy','error','stack','name','index','map','DeskField','fieldName','type','key','model','query','keys','attributes','intersection','fields'];(function(_0x29e3ec,_0x138a18){var _0x25727e=function(_0x2bea0d){while(--_0x2bea0d){_0x29e3ec['push'](_0x29e3ec['shift']());}};_0x25727e(++_0x138a18);}(_0x5902,0x187));var _0x2590=function(_0x4b369d,_0x265eb8){_0x4b369d=_0x4b369d-0x0;var _0x571a98=_0x5902[_0x4b369d];return _0x571a98;};'use strict';var emlformat=require(_0x2590('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x2590('0x1'));var jsonpatch=require(_0x2590('0x2'));var rp=require('request-promise');var moment=require(_0x2590('0x3'));var BPromise=require(_0x2590('0x4'));var Mustache=require('mustache');var util=require(_0x2590('0x5'));var path=require(_0x2590('0x6'));var sox=require(_0x2590('0x7'));var csv=require(_0x2590('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x2590('0x9'));var _=require(_0x2590('0xa'));var squel=require(_0x2590('0xb'));var crypto=require(_0x2590('0xc'));var jsforce=require(_0x2590('0xd'));var deskjs=require(_0x2590('0xe'));var toCsv=require(_0x2590('0x8'));var querystring=require(_0x2590('0xf'));var Papa=require('papaparse');var Redis=require(_0x2590('0x10'));var authService=require(_0x2590('0x11'));var qs=require(_0x2590('0x12'));var as=require(_0x2590('0x13'));var hardwareService=require(_0x2590('0x14'));var logger=require(_0x2590('0x15'))(_0x2590('0x16'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x2590('0x17'))['db'];function respondWithStatusCode(_0x5b73c1,_0x368ca1){_0x368ca1=_0x368ca1||0xcc;return function(_0x58f6ba){if(_0x58f6ba){return _0x5b73c1['sendStatus'](_0x368ca1);}return _0x5b73c1[_0x2590('0x18')](_0x368ca1)[_0x2590('0x19')]();};}function respondWithResult(_0x3c3154,_0x3563ee){_0x3563ee=_0x3563ee||0xc8;return function(_0x49cdcf){if(_0x49cdcf){return _0x3c3154[_0x2590('0x18')](_0x3563ee)['json'](_0x49cdcf);}};}function respondWithFilteredResult(_0x511ac7,_0x486ae0){return function(_0x143f19){if(_0x143f19){var _0x59e075=typeof _0x486ae0[_0x2590('0x1a')]===_0x2590('0x1b')&&typeof _0x486ae0[_0x2590('0x1c')]===_0x2590('0x1b');var _0x1e2315=_0x143f19['count'];var _0x4310df=_0x59e075?0x0:_0x486ae0[_0x2590('0x1a')];var _0xe39e0d=_0x59e075?_0x143f19[_0x2590('0x1d')]:_0x486ae0['offset']+_0x486ae0[_0x2590('0x1c')];var _0x5aa948;if(_0xe39e0d>=_0x1e2315){_0xe39e0d=_0x1e2315;_0x5aa948=0xc8;}else{_0x5aa948=0xce;}_0x511ac7['status'](_0x5aa948);return _0x511ac7[_0x2590('0x1e')](_0x2590('0x1f'),_0x4310df+'-'+_0xe39e0d+'/'+_0x1e2315)[_0x2590('0x20')](_0x143f19);}return null;};}function patchUpdates(_0x279b9f){return function(_0x2c88f7){try{jsonpatch[_0x2590('0x21')](_0x2c88f7,_0x279b9f,!![]);}catch(_0x54460d){return BPromise[_0x2590('0x22')](_0x54460d);}return _0x2c88f7['save']();};}function saveUpdates(_0x599b59,_0x4d171a){return function(_0x5d7e7f){if(_0x5d7e7f){return _0x5d7e7f[_0x2590('0x23')](_0x599b59)[_0x2590('0x24')](function(_0x833cb6){return _0x833cb6;});}return null;};}function removeEntity(_0x4aa668,_0x3fb1d7){return function(_0x53f182){if(_0x53f182){return _0x53f182[_0x2590('0x25')]()[_0x2590('0x24')](function(){_0x4aa668[_0x2590('0x18')](0xcc)[_0x2590('0x19')]();});}};}function handleEntityNotFound(_0x57bc48,_0x5820d0){return function(_0x36b430){if(!_0x36b430){_0x57bc48['sendStatus'](0x194);}return _0x36b430;};}function handleError(_0x30adc8,_0x4b772f){_0x4b772f=_0x4b772f||0x1f4;return function(_0x17cf4a){logger[_0x2590('0x26')](_0x17cf4a[_0x2590('0x27')]);if(_0x17cf4a['name']){delete _0x17cf4a[_0x2590('0x28')];}_0x30adc8['status'](_0x4b772f)['send'](_0x17cf4a);};}exports[_0x2590('0x29')]=function(_0x37b4a5,_0x5c36f6){var _0x48775e={},_0x5b6997={},_0xdea690={'count':0x0,'rows':[]};var _0x3fb590=_[_0x2590('0x2a')](db[_0x2590('0x2b')]['rawAttributes'],function(_0x447e36){return{'name':_0x447e36[_0x2590('0x2c')],'type':_0x447e36[_0x2590('0x2d')][_0x2590('0x2e')]};});_0x5b6997[_0x2590('0x2f')]=_[_0x2590('0x2a')](_0x3fb590,_0x2590('0x28'));_0x5b6997[_0x2590('0x30')]=_[_0x2590('0x31')](_0x37b4a5[_0x2590('0x30')]);_0x5b6997['filters']=_['intersection'](_0x5b6997[_0x2590('0x2f')],_0x5b6997[_0x2590('0x30')]);_0x48775e[_0x2590('0x32')]=_[_0x2590('0x33')](_0x5b6997['model'],qs[_0x2590('0x34')](_0x37b4a5[_0x2590('0x30')][_0x2590('0x34')]));_0x48775e['attributes']=_0x48775e['attributes'][_0x2590('0x35')]?_0x48775e['attributes']:_0x5b6997['model'];if(!_0x37b4a5['query'][_0x2590('0x36')](_0x2590('0x37'))){_0x48775e['limit']=qs[_0x2590('0x1c')](_0x37b4a5[_0x2590('0x30')][_0x2590('0x1c')]);_0x48775e[_0x2590('0x1a')]=qs[_0x2590('0x1a')](_0x37b4a5[_0x2590('0x30')][_0x2590('0x1a')]);}_0x48775e[_0x2590('0x38')]=qs[_0x2590('0x39')](_0x37b4a5[_0x2590('0x30')][_0x2590('0x39')]);_0x48775e['where']=qs[_0x2590('0x3a')](_[_0x2590('0x3b')](_0x37b4a5[_0x2590('0x30')],_0x5b6997[_0x2590('0x3a')]),_0x3fb590);if(_0x37b4a5[_0x2590('0x30')][_0x2590('0x3c')]){_0x48775e['where']=_[_0x2590('0x3d')](_0x48775e['where'],{'$or':_[_0x2590('0x2a')](_0x3fb590,function(_0x601433){if(_0x601433[_0x2590('0x2d')]!==_0x2590('0x3e')){var _0x4e254e={};_0x4e254e[_0x601433[_0x2590('0x28')]]={'$like':'%'+_0x37b4a5[_0x2590('0x30')][_0x2590('0x3c')]+'%'};return _0x4e254e;}})});}_0x48775e=_['merge']({},_0x48775e,_0x37b4a5['options']);var _0x5ab45a={'where':_0x48775e[_0x2590('0x3f')]};return db[_0x2590('0x2b')][_0x2590('0x1d')](_0x5ab45a)[_0x2590('0x24')](function(_0x65d966){_0xdea690['count']=_0x65d966;if(_0x37b4a5[_0x2590('0x30')][_0x2590('0x40')]){_0x48775e[_0x2590('0x41')]=[{'all':!![]}];}return db['DeskField']['findAll'](_0x48775e);})['then'](function(_0x169bc3){_0xdea690[_0x2590('0x42')]=_0x169bc3;return _0xdea690;})['then'](respondWithFilteredResult(_0x5c36f6,_0x48775e))['catch'](handleError(_0x5c36f6,null));};exports['show']=function(_0x522b10,_0x4d61ce){var _0x24f83f={'raw':!![],'where':{'id':_0x522b10[_0x2590('0x43')]['id']}},_0x40d347={};_0x40d347[_0x2590('0x2f')]=_['keys'](db['DeskField'][_0x2590('0x44')]);_0x40d347[_0x2590('0x30')]=_['keys'](_0x522b10['query']);_0x40d347[_0x2590('0x3a')]=_[_0x2590('0x33')](_0x40d347[_0x2590('0x2f')],_0x40d347[_0x2590('0x30')]);_0x24f83f[_0x2590('0x32')]=_[_0x2590('0x33')](_0x40d347[_0x2590('0x2f')],qs[_0x2590('0x34')](_0x522b10[_0x2590('0x30')][_0x2590('0x34')]));_0x24f83f[_0x2590('0x32')]=_0x24f83f[_0x2590('0x32')]['length']?_0x24f83f[_0x2590('0x32')]:_0x40d347['model'];if(_0x522b10['query'][_0x2590('0x40')]){_0x24f83f['include']=[{'all':!![]}];}_0x24f83f=_['merge']({},_0x24f83f,_0x522b10[_0x2590('0x45')]);return db[_0x2590('0x2b')][_0x2590('0x46')](_0x24f83f)[_0x2590('0x24')](handleEntityNotFound(_0x4d61ce,null))[_0x2590('0x24')](respondWithResult(_0x4d61ce,null))[_0x2590('0x47')](handleError(_0x4d61ce,null));};exports[_0x2590('0x48')]=function(_0x24c562,_0x728afc){return db[_0x2590('0x2b')][_0x2590('0x48')](_0x24c562['body'],{})['then'](respondWithResult(_0x728afc,0xc9))['catch'](handleError(_0x728afc,null));};exports[_0x2590('0x23')]=function(_0x104944,_0x2d6058){if(_0x104944['body']['id']){delete _0x104944['body']['id'];}return db[_0x2590('0x2b')][_0x2590('0x46')]({'where':{'id':_0x104944[_0x2590('0x43')]['id']}})[_0x2590('0x24')](handleEntityNotFound(_0x2d6058,null))[_0x2590('0x24')](saveUpdates(_0x104944[_0x2590('0x49')],null))[_0x2590('0x24')](respondWithResult(_0x2d6058,null))[_0x2590('0x47')](handleError(_0x2d6058,null));};exports[_0x2590('0x25')]=function(_0x162ee3,_0x1342a8){return db[_0x2590('0x2b')]['find']({'where':{'id':_0x162ee3[_0x2590('0x43')]['id']}})['then'](handleEntityNotFound(_0x1342a8,null))[_0x2590('0x24')](removeEntity(_0x1342a8,null))['catch'](handleError(_0x1342a8,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa36b=['path','rimraf','exports','DeskField','int_desk_fields','desk_unique_index','idField','FieldId','lodash','util','../../config/logger','api','moment'];(function(_0x32a1e4,_0x190d2e){var _0x286467=function(_0x176ec0){while(--_0x176ec0){_0x32a1e4['push'](_0x32a1e4['shift']());}};_0x286467(++_0x190d2e);}(_0xa36b,0x1e9));var _0xba36=function(_0x190c33,_0xfadda6){_0x190c33=_0x190c33-0x0;var _0x1954aa=_0xa36b[_0x190c33];return _0x1954aa;};'use strict';var _=require(_0xba36('0x0'));var util=require(_0xba36('0x1'));var logger=require(_0xba36('0x2'))(_0xba36('0x3'));var moment=require(_0xba36('0x4'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0xba36('0x5'));var rimraf=require(_0xba36('0x6'));var config=require('../../config/environment');var attributes=require('./intDeskField.attributes');module[_0xba36('0x7')]=function(_0x3a541c,_0x5c926f){return _0x3a541c['define'](_0xba36('0x8'),attributes,{'tableName':_0xba36('0x9'),'paranoid':![],'indexes':[{'name':_0xba36('0xa'),'fields':[_0xba36('0xb'),_0xba36('0xc')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x535b=['lodash','util','../../config/logger','api','bluebird','request-promise','rimraf','../../config/environment','./intDeskField.attributes','exports','DeskField','int_desk_fields','desk_unique_index','idField','FieldId'];(function(_0xefb4e,_0xe56689){var _0x36c78c=function(_0x158fe3){while(--_0x158fe3){_0xefb4e['push'](_0xefb4e['shift']());}};_0x36c78c(++_0xe56689);}(_0x535b,0xff));var _0xb535=function(_0x239245,_0x458e85){_0x239245=_0x239245-0x0;var _0x67960c=_0x535b[_0x239245];return _0x67960c;};'use strict';var _=require(_0xb535('0x0'));var util=require(_0xb535('0x1'));var logger=require(_0xb535('0x2'))(_0xb535('0x3'));var moment=require('moment');var BPromise=require(_0xb535('0x4'));var rp=require(_0xb535('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0xb535('0x6'));var config=require(_0xb535('0x7'));var attributes=require(_0xb535('0x8'));module[_0xb535('0x9')]=function(_0x46b5f5,_0x72890c){return _0x46b5f5['define'](_0xb535('0xa'),attributes,{'tableName':_0xb535('0xb'),'paranoid':![],'indexes':[{'name':_0xb535('0xc'),'fields':[_0xb535('0xd'),_0xb535('0xe')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9043=['request\x20sent','debug','DeskField,\x20%s,\x20%s,\x20%s','stringify','error','code','message','DeskField,\x20%s,\x20%s','result','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/environment','jayson/promise','client','info'];(function(_0x2ece32,_0x4f5491){var _0x23ba03=function(_0x428121){while(--_0x428121){_0x2ece32['push'](_0x2ece32['shift']());}};_0x23ba03(++_0x4f5491);}(_0x9043,0xfc));var _0x3904=function(_0x9198ef,_0x3a9d50){_0x9198ef=_0x9198ef-0x0;var _0x568937=_0x9043[_0x9198ef];return _0x568937;};'use strict';var _=require(_0x3904('0x0'));var util=require(_0x3904('0x1'));var moment=require(_0x3904('0x2'));var BPromise=require(_0x3904('0x3'));var rs=require(_0x3904('0x4'));var fs=require('fs');var Redis=require(_0x3904('0x5'));var db=require(_0x3904('0x6'))['db'];var utils=require(_0x3904('0x7'));var logger=require('../../config/logger')('rpc');var config=require(_0x3904('0x8'));var jayson=require(_0x3904('0x9'));var client=jayson[_0x3904('0xa')]['http']({'port':0x232a});function respondWithRpcPromise(_0x61bb37,_0x6abcec,_0x3df8d6){return new BPromise(function(_0xe7e8bf,_0x1e0301){return client['request'](_0x61bb37,_0x3df8d6)['then'](function(_0x1eb520){logger[_0x3904('0xb')]('DeskField,\x20%s,\x20%s',_0x6abcec,_0x3904('0xc'));logger[_0x3904('0xd')](_0x3904('0xe'),_0x6abcec,_0x3904('0xc'),JSON[_0x3904('0xf')](_0x1eb520));if(_0x1eb520[_0x3904('0x10')]){if(_0x1eb520[_0x3904('0x10')][_0x3904('0x11')]===0x1f4){logger[_0x3904('0x10')]('DeskField,\x20%s,\x20%s',_0x6abcec,_0x1eb520[_0x3904('0x10')][_0x3904('0x12')]);return _0x1e0301(_0x1eb520[_0x3904('0x10')][_0x3904('0x12')]);}logger[_0x3904('0x10')](_0x3904('0x13'),_0x6abcec,_0x1eb520[_0x3904('0x10')][_0x3904('0x12')]);return _0xe7e8bf(_0x1eb520['error']['message']);}else{logger[_0x3904('0xb')](_0x3904('0x13'),_0x6abcec,_0x3904('0xc'));_0xe7e8bf(_0x1eb520[_0x3904('0x14')]['message']);}})[_0x3904('0x15')](function(_0x227c2f){logger[_0x3904('0x10')](_0x3904('0x13'),_0x6abcec,_0x227c2f);_0x1e0301(_0x227c2f);});});}
\ No newline at end of file
+var _0xb589=['request','then','info','DeskField,\x20%s,\x20%s','debug','DeskField,\x20%s,\x20%s,\x20%s','request\x20sent','error','code','message','result','lodash','util','moment','bluebird','randomstring','../../config/utils','../../config/logger','rpc','../../config/environment','http'];(function(_0xf8c294,_0x49aff8){var _0xa36552=function(_0x4deaac){while(--_0x4deaac){_0xf8c294['push'](_0xf8c294['shift']());}};_0xa36552(++_0x49aff8);}(_0xb589,0x1d9));var _0x9b58=function(_0x3d8ba1,_0x5ba1fd){_0x3d8ba1=_0x3d8ba1-0x0;var _0x87804e=_0xb589[_0x3d8ba1];return _0x87804e;};'use strict';var _=require(_0x9b58('0x0'));var util=require(_0x9b58('0x1'));var moment=require(_0x9b58('0x2'));var BPromise=require(_0x9b58('0x3'));var rs=require(_0x9b58('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0x9b58('0x5'));var logger=require(_0x9b58('0x6'))(_0x9b58('0x7'));var config=require(_0x9b58('0x8'));var jayson=require('jayson/promise');var client=jayson['client'][_0x9b58('0x9')]({'port':0x232a});function respondWithRpcPromise(_0xfe2f3a,_0xcb5fa3,_0x3fe61b){return new BPromise(function(_0x33ad45,_0x330f1f){return client[_0x9b58('0xa')](_0xfe2f3a,_0x3fe61b)[_0x9b58('0xb')](function(_0x159db1){logger[_0x9b58('0xc')](_0x9b58('0xd'),_0xcb5fa3,'request\x20sent');logger[_0x9b58('0xe')](_0x9b58('0xf'),_0xcb5fa3,_0x9b58('0x10'),JSON['stringify'](_0x159db1));if(_0x159db1[_0x9b58('0x11')]){if(_0x159db1[_0x9b58('0x11')][_0x9b58('0x12')]===0x1f4){logger[_0x9b58('0x11')](_0x9b58('0xd'),_0xcb5fa3,_0x159db1[_0x9b58('0x11')]['message']);return _0x330f1f(_0x159db1['error'][_0x9b58('0x13')]);}logger[_0x9b58('0x11')]('DeskField,\x20%s,\x20%s',_0xcb5fa3,_0x159db1[_0x9b58('0x11')][_0x9b58('0x13')]);return _0x33ad45(_0x159db1['error']['message']);}else{logger[_0x9b58('0xc')](_0x9b58('0xd'),_0xcb5fa3,_0x9b58('0x10'));_0x33ad45(_0x159db1[_0x9b58('0x14')][_0x9b58('0x13')]);}})['catch'](function(_0x36ac33){logger['error']('DeskField,\x20%s,\x20%s',_0xcb5fa3,_0x36ac33);_0x330f1f(_0x36ac33);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5d68=['show','/:id/configurations','getConfigurations','/:id/fields','post','create','addConfiguration','put','/:id','update','delete','destroy','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./intDynamics365Account.controller','get','isAuthenticated','index'];(function(_0x2bd8a8,_0x85b8a0){var _0x724a8e=function(_0x3e87af){while(--_0x3e87af){_0x2bd8a8['push'](_0x2bd8a8['shift']());}};_0x724a8e(++_0x85b8a0);}(_0x5d68,0x151));var _0x85d6=function(_0x28bfb0,_0x35f3ca){_0x28bfb0=_0x28bfb0-0x0;var _0x1c4588=_0x5d68[_0x28bfb0];return _0x1c4588;};'use strict';var multer=require(_0x85d6('0x0'));var util=require(_0x85d6('0x1'));var path=require(_0x85d6('0x2'));var timeout=require(_0x85d6('0x3'));var express=require(_0x85d6('0x4'));var router=express[_0x85d6('0x5')]();var fs_extra=require(_0x85d6('0x6'));var auth=require(_0x85d6('0x7'));var interaction=require(_0x85d6('0x8'));var config=require(_0x85d6('0x9'));var controller=require(_0x85d6('0xa'));router[_0x85d6('0xb')]('/',auth[_0x85d6('0xc')](),controller[_0x85d6('0xd')]);router[_0x85d6('0xb')]('/:id',auth[_0x85d6('0xc')](),controller[_0x85d6('0xe')]);router[_0x85d6('0xb')](_0x85d6('0xf'),auth['isAuthenticated'](),controller[_0x85d6('0x10')]);router['get'](_0x85d6('0x11'),auth[_0x85d6('0xc')](),controller['getFields']);router[_0x85d6('0x12')]('/',auth[_0x85d6('0xc')](),controller[_0x85d6('0x13')]);router[_0x85d6('0x12')]('/:id/configurations',auth[_0x85d6('0xc')](),controller[_0x85d6('0x14')]);router[_0x85d6('0x15')](_0x85d6('0x16'),auth['isAuthenticated'](),controller[_0x85d6('0x17')]);router[_0x85d6('0x18')](_0x85d6('0x16'),auth[_0x85d6('0xc')](),controller[_0x85d6('0x19')]);module[_0x85d6('0x1a')]=router;
\ No newline at end of file
+var _0x54bf=['fs-extra','../../components/interaction/service','./intDynamics365Account.controller','get','isAuthenticated','index','/:id','show','/:id/configurations','getConfigurations','getFields','post','create','addConfiguration','put','exports','multer','util','path','connect-timeout','express','Router'];(function(_0x63b1a9,_0x35abb2){var _0x139325=function(_0x23065c){while(--_0x23065c){_0x63b1a9['push'](_0x63b1a9['shift']());}};_0x139325(++_0x35abb2);}(_0x54bf,0x12e));var _0xf54b=function(_0x58cd35,_0x537e68){_0x58cd35=_0x58cd35-0x0;var _0x4a3aac=_0x54bf[_0x58cd35];return _0x4a3aac;};'use strict';var multer=require(_0xf54b('0x0'));var util=require(_0xf54b('0x1'));var path=require(_0xf54b('0x2'));var timeout=require(_0xf54b('0x3'));var express=require(_0xf54b('0x4'));var router=express[_0xf54b('0x5')]();var fs_extra=require(_0xf54b('0x6'));var auth=require('../../components/auth/service');var interaction=require(_0xf54b('0x7'));var config=require('../../config/environment');var controller=require(_0xf54b('0x8'));router[_0xf54b('0x9')]('/',auth[_0xf54b('0xa')](),controller[_0xf54b('0xb')]);router[_0xf54b('0x9')](_0xf54b('0xc'),auth[_0xf54b('0xa')](),controller[_0xf54b('0xd')]);router[_0xf54b('0x9')](_0xf54b('0xe'),auth[_0xf54b('0xa')](),controller[_0xf54b('0xf')]);router['get']('/:id/fields',auth['isAuthenticated'](),controller[_0xf54b('0x10')]);router[_0xf54b('0x11')]('/',auth['isAuthenticated'](),controller[_0xf54b('0x12')]);router[_0xf54b('0x11')](_0xf54b('0xe'),auth['isAuthenticated'](),controller[_0xf54b('0x13')]);router[_0xf54b('0x14')](_0xf54b('0xc'),auth[_0xf54b('0xa')](),controller['update']);router['delete'](_0xf54b('0xc'),auth[_0xf54b('0xa')](),controller['destroy']);module[_0xf54b('0x15')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x76fa=['STRING','sequelize'];(function(_0x245c9f,_0x1d9e8c){var _0x276b79=function(_0x2bdbd7){while(--_0x2bdbd7){_0x245c9f['push'](_0x245c9f['shift']());}};_0x276b79(++_0x1d9e8c);}(_0x76fa,0x175));var _0xa76f=function(_0x5ac423,_0x3e3706){_0x5ac423=_0x5ac423-0x0;var _0x4f8cae=_0x76fa[_0x5ac423];return _0x4f8cae;};'use strict';var Sequelize=require(_0xa76f('0x0'));module['exports']={'name':{'type':Sequelize['STRING']},'username':{'type':Sequelize[_0xa76f('0x1')]},'password':{'type':Sequelize[_0xa76f('0x1')]},'remoteUri':{'type':Sequelize[_0xa76f('0x1')]},'tenantId':{'type':Sequelize[_0xa76f('0x1')]},'clientId':{'type':Sequelize[_0xa76f('0x1')]},'clientSecret':{'type':Sequelize[_0xa76f('0x1')]},'serverUrl':{'type':Sequelize[_0xa76f('0x1')],'allowNull':![]},'description':{'type':Sequelize[_0xa76f('0x1')]}};
\ No newline at end of file
+var _0x482c=['exports','STRING'];(function(_0x1b4e5d,_0x48658f){var _0x496076=function(_0x142442){while(--_0x142442){_0x1b4e5d['push'](_0x1b4e5d['shift']());}};_0x496076(++_0x48658f);}(_0x482c,0x6a));var _0xc482=function(_0xae7c2f,_0xf31e04){_0xae7c2f=_0xae7c2f-0x0;var _0x5d7001=_0x482c[_0xae7c2f];return _0x5d7001;};'use strict';var Sequelize=require('sequelize');module[_0xc482('0x0')]={'name':{'type':Sequelize[_0xc482('0x1')]},'username':{'type':Sequelize[_0xc482('0x1')]},'password':{'type':Sequelize[_0xc482('0x1')]},'remoteUri':{'type':Sequelize[_0xc482('0x1')]},'tenantId':{'type':Sequelize[_0xc482('0x1')]},'clientId':{'type':Sequelize[_0xc482('0x1')]},'clientSecret':{'type':Sequelize[_0xc482('0x1')]},'serverUrl':{'type':Sequelize['STRING'],'allowNull':![]},'description':{'type':Sequelize[_0xc482('0x1')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x40b5=['productidname','productserialnumber','resolveby','responseby','responsiblecontactidname','sentimentvalue','slainvokedidname','slaname','socialprofileidname','statecode','subjectidname','ticketnumber','timezoneruleversionnumber','transactioncurrencyidname','utcconversiontimezonecode','versionnumber','concat','password','remoteUri','clientSecret','slice','substring','format','%s/api/data/v9.0/','https://login.microsoftonline.com/','/oauth2/token','clientId','username','access_token','GET','EntityDefinitions?$select=DisplayName,EntitySetName&$filter=SchemaName\x20eq\x20\x27','Bearer\x20','4.0','EntityDefinitions(','Attributes','remove','includes','LogicalName','forEach','@odata.type','PicklistAttributeMetadata','push','MetadataId','all','isNil','BooleanAttributeMetadata','lastIndexOf','StringAttributeMetadata','DoubleAttributeMetadata','BigIntAttributeMetadata','IntegerAttributeMetadata','MemoAttributeMetadata','DateTimeAttributeMetadata','StatusAttributeMetadata','StateAttributeMetadata','DecimalAttributeMetadata','test','statusCode','stack','Wrong\x20credentials',')/Attributes(','$select=DisplayName,LogicalName&$expand=OptionSet($select=Options)','Options','Label','UserLocalizedLabel','Value','OptionSet','false','DisplayName',')/Microsoft.Dynamics.CRM.','?$select=DisplayName,LogicalName','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','../../components/auth/service','../../components/parsers/advancedSearch','api','../../config/utils','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','status','end','json','undefined','limit','count','offset','set','apply','reject','save','update','then','destroy','error','name','send','index','map','Dynamics365Account','fieldName','type','model','query','keys','filters','intersection','attributes','fields','length','nolimit','order','sort','pick','where','merge','VIRTUAL','filter','includeAll','include','findAll','params','options','find','catch','create','body','getConfigurations','findOne','Dynamics365Configuration','addConfiguration','Subjects','getSubjects','channel','getDescriptions','Dynamics365Field','Descriptions','getFields','Incident','title','description','customerid','ownerid','caseorigincode','subject','phonenumber','regardingobjectid','directioncode','accountidname','accountidyominame','actualserviceunits','contactidname','contactidyominame','contractdetailidname','contractidname','createdbyexternalpartyname','createdbyexternalpartyyominame','createdbyname','createdonbehalfbyname','createdonbehalfbyyominame','customeridname','customeridtype','emailaddress','entitlementidname','entityimage_timestamp','entityimage_url','exchangerate','firstresponsebykpiidname','importsequencenumber','influencescore','lastonholdtime','masteridname','modifiedbyexternalpartyname','modifiedbyexternalpartyyominame','modifiedbyyominame','modifiedonbehalfbyname','modifiedonbehalfbyyominame','msdyn_incidenttypename','msdyn_iotalertname','numberofchildincidents','overriddencreatedon','owneridname','owneridtype','primarycontactidname','primarycontactidyominame'];(function(_0xd02923,_0x7d3515){var _0x10ff2f=function(_0x4da910){while(--_0x4da910){_0xd02923['push'](_0xd02923['shift']());}};_0x10ff2f(++_0x7d3515);}(_0x40b5,0x1d7));var _0x540b=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x40b5[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require(_0x540b('0x0'));var rimraf=require(_0x540b('0x1'));var zipdir=require(_0x540b('0x2'));var jsonpatch=require(_0x540b('0x3'));var rp=require(_0x540b('0x4'));var moment=require(_0x540b('0x5'));var BPromise=require(_0x540b('0x6'));var Mustache=require('mustache');var util=require(_0x540b('0x7'));var path=require(_0x540b('0x8'));var sox=require(_0x540b('0x9'));var csv=require(_0x540b('0xa'));var ejs=require(_0x540b('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x540b('0xc'));var squel=require(_0x540b('0xd'));var crypto=require(_0x540b('0xe'));var jsforce=require(_0x540b('0xf'));var deskjs=require('desk.js');var toCsv=require(_0x540b('0xa'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x540b('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0x540b('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x540b('0x12'));var utils=require(_0x540b('0x13'));var config=require('../../config/environment');var licenseUtil=require(_0x540b('0x14'));var db=require(_0x540b('0x15'))['db'];var integrations=require(_0x540b('0x16'));function respondWithStatusCode(_0x341564,_0x5f4237){_0x5f4237=_0x5f4237||0xcc;return function(_0xdf0923){if(_0xdf0923){return _0x341564[_0x540b('0x17')](_0x5f4237);}return _0x341564[_0x540b('0x18')](_0x5f4237)[_0x540b('0x19')]();};}function respondWithResult(_0x498616,_0x18e0f7){_0x18e0f7=_0x18e0f7||0xc8;return function(_0x4a5098){if(_0x4a5098){return _0x498616['status'](_0x18e0f7)[_0x540b('0x1a')](_0x4a5098);}};}function respondWithFilteredResult(_0x1c9743,_0xbff023){return function(_0x415ba6){if(_0x415ba6){var _0x1efac9=typeof _0xbff023['offset']===_0x540b('0x1b')&&typeof _0xbff023[_0x540b('0x1c')]===_0x540b('0x1b');var _0x24d057=_0x415ba6[_0x540b('0x1d')];var _0xd61e60=_0x1efac9?0x0:_0xbff023[_0x540b('0x1e')];var _0x2db521=_0x1efac9?_0x415ba6[_0x540b('0x1d')]:_0xbff023['offset']+_0xbff023[_0x540b('0x1c')];var _0x471429;if(_0x2db521>=_0x24d057){_0x2db521=_0x24d057;_0x471429=0xc8;}else{_0x471429=0xce;}_0x1c9743['status'](_0x471429);return _0x1c9743[_0x540b('0x1f')]('Content-Range',_0xd61e60+'-'+_0x2db521+'/'+_0x24d057)[_0x540b('0x1a')](_0x415ba6);}return null;};}function patchUpdates(_0x5e49d7){return function(_0x4a37f9){try{jsonpatch[_0x540b('0x20')](_0x4a37f9,_0x5e49d7,!![]);}catch(_0x47dd84){return BPromise[_0x540b('0x21')](_0x47dd84);}return _0x4a37f9[_0x540b('0x22')]();};}function saveUpdates(_0x1069f3,_0x4d7422){return function(_0x445462){if(_0x445462){return _0x445462[_0x540b('0x23')](_0x1069f3)[_0x540b('0x24')](function(_0x1f69d4){return _0x1f69d4;});}return null;};}function removeEntity(_0x24f49b,_0x310930){return function(_0x3acfef){if(_0x3acfef){return _0x3acfef[_0x540b('0x25')]()[_0x540b('0x24')](function(){_0x24f49b[_0x540b('0x18')](0xcc)['end']();});}};}function handleEntityNotFound(_0x238819,_0x462e6f){return function(_0x5a0669){if(!_0x5a0669){_0x238819['sendStatus'](0x194);}return _0x5a0669;};}function handleError(_0x327a01,_0x3d6b0c){_0x3d6b0c=_0x3d6b0c||0x1f4;return function(_0x3f4fe0){logger[_0x540b('0x26')](_0x3f4fe0['stack']);if(_0x3f4fe0[_0x540b('0x27')]){delete _0x3f4fe0[_0x540b('0x27')];}_0x327a01[_0x540b('0x18')](_0x3d6b0c)[_0x540b('0x28')](_0x3f4fe0);};}exports[_0x540b('0x29')]=function(_0x36c5e8,_0x289f7e){var _0x4ee8be={},_0x574c97={},_0x491eca={'count':0x0,'rows':[]};var _0xfd6e3f=_[_0x540b('0x2a')](db[_0x540b('0x2b')]['rawAttributes'],function(_0x547cbe){return{'name':_0x547cbe[_0x540b('0x2c')],'type':_0x547cbe[_0x540b('0x2d')]['key']};});_0x574c97[_0x540b('0x2e')]=_[_0x540b('0x2a')](_0xfd6e3f,_0x540b('0x27'));_0x574c97[_0x540b('0x2f')]=_[_0x540b('0x30')](_0x36c5e8[_0x540b('0x2f')]);_0x574c97[_0x540b('0x31')]=_[_0x540b('0x32')](_0x574c97[_0x540b('0x2e')],_0x574c97['query']);_0x4ee8be[_0x540b('0x33')]=_['intersection'](_0x574c97[_0x540b('0x2e')],qs[_0x540b('0x34')](_0x36c5e8[_0x540b('0x2f')][_0x540b('0x34')]));_0x4ee8be[_0x540b('0x33')]=_0x4ee8be[_0x540b('0x33')][_0x540b('0x35')]?_0x4ee8be[_0x540b('0x33')]:_0x574c97[_0x540b('0x2e')];if(!_0x36c5e8[_0x540b('0x2f')]['hasOwnProperty'](_0x540b('0x36'))){_0x4ee8be['limit']=qs[_0x540b('0x1c')](_0x36c5e8['query']['limit']);_0x4ee8be['offset']=qs[_0x540b('0x1e')](_0x36c5e8['query'][_0x540b('0x1e')]);}_0x4ee8be[_0x540b('0x37')]=qs['sort'](_0x36c5e8['query'][_0x540b('0x38')]);_0x4ee8be['where']=qs[_0x540b('0x31')](_[_0x540b('0x39')](_0x36c5e8[_0x540b('0x2f')],_0x574c97[_0x540b('0x31')]),_0xfd6e3f);if(_0x36c5e8[_0x540b('0x2f')]['filter']){_0x4ee8be[_0x540b('0x3a')]=_[_0x540b('0x3b')](_0x4ee8be[_0x540b('0x3a')],{'$or':_[_0x540b('0x2a')](_0xfd6e3f,function(_0x48cf5b){if(_0x48cf5b['type']!==_0x540b('0x3c')){var _0x49549f={};_0x49549f[_0x48cf5b[_0x540b('0x27')]]={'$like':'%'+_0x36c5e8[_0x540b('0x2f')][_0x540b('0x3d')]+'%'};return _0x49549f;}})});}_0x4ee8be=_[_0x540b('0x3b')]({},_0x4ee8be,_0x36c5e8['options']);var _0x55bf49={'where':_0x4ee8be['where']};return db[_0x540b('0x2b')][_0x540b('0x1d')](_0x55bf49)['then'](function(_0x1c2395){_0x491eca['count']=_0x1c2395;if(_0x36c5e8[_0x540b('0x2f')][_0x540b('0x3e')]){_0x4ee8be[_0x540b('0x3f')]=[{'all':!![]}];}return db['Dynamics365Account'][_0x540b('0x40')](_0x4ee8be);})[_0x540b('0x24')](function(_0x41d114){_0x491eca['rows']=_0x41d114;return _0x491eca;})['then'](respondWithFilteredResult(_0x289f7e,_0x4ee8be))['catch'](handleError(_0x289f7e,null));};exports['show']=function(_0x304d24,_0xee9f35){var _0x161d1b={'raw':![],'where':{'id':_0x304d24[_0x540b('0x41')]['id']}},_0x39f1b2={};_0x39f1b2[_0x540b('0x2e')]=_[_0x540b('0x30')](db[_0x540b('0x2b')]['rawAttributes']);_0x39f1b2['query']=_['keys'](_0x304d24['query']);_0x39f1b2[_0x540b('0x31')]=_[_0x540b('0x32')](_0x39f1b2[_0x540b('0x2e')],_0x39f1b2[_0x540b('0x2f')]);_0x161d1b['attributes']=_[_0x540b('0x32')](_0x39f1b2[_0x540b('0x2e')],qs[_0x540b('0x34')](_0x304d24[_0x540b('0x2f')][_0x540b('0x34')]));_0x161d1b['attributes']=_0x161d1b[_0x540b('0x33')][_0x540b('0x35')]?_0x161d1b[_0x540b('0x33')]:_0x39f1b2[_0x540b('0x2e')];if(_0x304d24['query']['includeAll']){_0x161d1b[_0x540b('0x3f')]=[{'all':!![]}];}_0x161d1b=_[_0x540b('0x3b')]({},_0x161d1b,_0x304d24[_0x540b('0x42')]);return db[_0x540b('0x2b')][_0x540b('0x43')](_0x161d1b)[_0x540b('0x24')](handleEntityNotFound(_0xee9f35,null))[_0x540b('0x24')](respondWithResult(_0xee9f35,null))[_0x540b('0x44')](handleError(_0xee9f35,null));};exports['create']=function(_0x29fab8,_0x1d5ae7){return db['Dynamics365Account'][_0x540b('0x45')](_0x29fab8['body'],{})['then'](respondWithResult(_0x1d5ae7,0xc9))[_0x540b('0x44')](handleError(_0x1d5ae7,null));};exports[_0x540b('0x23')]=function(_0x42496b,_0x84936d){if(_0x42496b[_0x540b('0x46')]['id']){delete _0x42496b[_0x540b('0x46')]['id'];}return db['Dynamics365Account'][_0x540b('0x43')]({'where':{'id':_0x42496b[_0x540b('0x41')]['id']}})['then'](handleEntityNotFound(_0x84936d,null))[_0x540b('0x24')](saveUpdates(_0x42496b['body'],null))[_0x540b('0x24')](respondWithResult(_0x84936d,null))[_0x540b('0x44')](handleError(_0x84936d,null));};exports[_0x540b('0x25')]=function(_0x3d511a,_0x5bdfbf){return db[_0x540b('0x2b')][_0x540b('0x43')]({'where':{'id':_0x3d511a[_0x540b('0x41')]['id']}})[_0x540b('0x24')](handleEntityNotFound(_0x5bdfbf,null))[_0x540b('0x24')](removeEntity(_0x5bdfbf,null))[_0x540b('0x44')](handleError(_0x5bdfbf,null));};exports[_0x540b('0x47')]=function(_0x4a5dcf,_0x4f5094,_0x4c58a9){var _0x378017={};var _0x1cd691={};var _0x130e2d;var _0xacc4c5;return db[_0x540b('0x2b')][_0x540b('0x48')]({'where':{'id':_0x4a5dcf[_0x540b('0x41')]['id']}})[_0x540b('0x24')](handleEntityNotFound(_0x4f5094,null))[_0x540b('0x24')](function(_0x169461){if(_0x169461){_0x130e2d=_0x169461;_0x1cd691['model']=_[_0x540b('0x30')](db[_0x540b('0x49')]['rawAttributes']);_0x1cd691[_0x540b('0x2f')]=_[_0x540b('0x30')](_0x4a5dcf['query']);_0x1cd691[_0x540b('0x31')]=_[_0x540b('0x32')](_0x1cd691[_0x540b('0x2e')],_0x1cd691[_0x540b('0x2f')]);_0x378017[_0x540b('0x33')]=_[_0x540b('0x32')](_0x1cd691[_0x540b('0x2e')],qs[_0x540b('0x34')](_0x4a5dcf[_0x540b('0x2f')][_0x540b('0x34')]));_0x378017[_0x540b('0x33')]=_0x378017[_0x540b('0x33')][_0x540b('0x35')]?_0x378017[_0x540b('0x33')]:_0x1cd691['model'];_0x378017[_0x540b('0x37')]=qs[_0x540b('0x38')](_0x4a5dcf['query'][_0x540b('0x38')]);_0x378017[_0x540b('0x3a')]=qs['filters'](_['pick'](_0x4a5dcf['query'],_0x1cd691[_0x540b('0x31')]));if(_0x4a5dcf[_0x540b('0x2f')][_0x540b('0x3d')]){_0x378017[_0x540b('0x3a')]=_['merge'](_0x378017[_0x540b('0x3a')],{'$or':_['map'](_0x378017[_0x540b('0x33')],function(_0x3bb9eb){var _0x1b99a5={};_0x1b99a5[_0x3bb9eb]={'$like':'%'+_0x4a5dcf[_0x540b('0x2f')]['filter']+'%'};return _0x1b99a5;})});}_0x378017=_[_0x540b('0x3b')]({},_0x378017,_0x4a5dcf[_0x540b('0x42')]);return _0x130e2d[_0x540b('0x47')](_0x378017);}})[_0x540b('0x24')](function(_0x4a6037){if(_0x4a6037){_0xacc4c5=_0x4a6037[_0x540b('0x35')];if(!_0x4a5dcf[_0x540b('0x2f')]['hasOwnProperty'](_0x540b('0x36'))){_0x378017['limit']=qs[_0x540b('0x1c')](_0x4a5dcf['query'][_0x540b('0x1c')]);_0x378017[_0x540b('0x1e')]=qs['offset'](_0x4a5dcf['query'][_0x540b('0x1e')]);}return _0x130e2d['getConfigurations'](_0x378017);}})[_0x540b('0x24')](function(_0x5d3708){if(_0x5d3708){return _0x5d3708?{'count':_0xacc4c5,'rows':_0x5d3708}:null;}})['then'](respondWithResult(_0x4f5094,null))[_0x540b('0x44')](handleError(_0x4f5094,null));};exports[_0x540b('0x4a')]=function(_0x1c6bce,_0x4d3a3b,_0x237c4f){if(_0x1c6bce[_0x540b('0x46')]['id']){delete _0x1c6bce['body']['id'];}return db['Dynamics365Account'][_0x540b('0x48')]({'where':{'id':_0x1c6bce[_0x540b('0x41')]['id']}})['then'](handleEntityNotFound(_0x4d3a3b,null))[_0x540b('0x24')](function(_0x186996){if(_0x186996){_0x1c6bce[_0x540b('0x46')]['AccountId']=_0x186996['id'];_0x1c6bce[_0x540b('0x46')][_0x540b('0x4b')]=integrations[_0x540b('0x4c')](_0x1c6bce[_0x540b('0x46')][_0x540b('0x4d')],_0x1c6bce['body'][_0x540b('0x2d')]);_0x1c6bce[_0x540b('0x46')]['Descriptions']=integrations[_0x540b('0x4e')](_0x1c6bce[_0x540b('0x46')][_0x540b('0x4d')],_0x1c6bce['body'][_0x540b('0x2d')]);return db[_0x540b('0x49')][_0x540b('0x45')](_0x1c6bce[_0x540b('0x46')],{'include':[{'model':db[_0x540b('0x4f')],'as':'Subjects'},{'model':db['Dynamics365Field'],'as':_0x540b('0x50')}]});}return null;})[_0x540b('0x24')](respondWithResult(_0x4d3a3b,null))[_0x540b('0x44')](handleError(_0x4d3a3b,null));};exports[_0x540b('0x51')]=function(_0x17458f,_0xece0f1,_0x34b9b4){var _0x3a75b1=_0x17458f[_0x540b('0x2f')]['ticketType'];var _0x1d709e=_0x3a75b1==='incident'?_0x540b('0x52'):'PhoneCall';var _0x509579='';var _0xe114cd='';var _0x7f429d='';var _0x164b82='';var _0x2119f5='';var _0x53e806='';var _0x4fbd42='';var _0x49f0b7='';var _0xbd6a8b=[_0x540b('0x53'),_0x540b('0x54'),_0x540b('0x55'),_0x540b('0x56'),_0x540b('0x57'),_0x540b('0x58'),_0x540b('0x59'),_0x540b('0x5a'),_0x540b('0x5b'),'phonecall_activity_parties'];var _0x56a64b=[_0x540b('0x5c'),_0x540b('0x5d'),_0x540b('0x5e'),'billedserviceunits',_0x540b('0x5f'),_0x540b('0x60'),_0x540b('0x61'),_0x540b('0x62'),_0x540b('0x63'),_0x540b('0x64'),_0x540b('0x65'),'createdbyyominame','createdon',_0x540b('0x66'),_0x540b('0x67'),_0x540b('0x68'),_0x540b('0x69'),'customeridyominame',_0x540b('0x6a'),_0x540b('0x6b'),_0x540b('0x6c'),_0x540b('0x6d'),'escalatedon',_0x540b('0x6e'),_0x540b('0x6f'),'followupby',_0x540b('0x70'),_0x540b('0x71'),'kbarticleidname',_0x540b('0x72'),_0x540b('0x73'),_0x540b('0x74'),_0x540b('0x75'),'modifiedbyname',_0x540b('0x76'),'modifiedon',_0x540b('0x77'),_0x540b('0x78'),_0x540b('0x79'),_0x540b('0x7a'),_0x540b('0x7b'),'onholdtime',_0x540b('0x7c'),_0x540b('0x7d'),_0x540b('0x7e'),'owneridyominame','parentcaseidname',_0x540b('0x7f'),_0x540b('0x80'),'prioritycodename',_0x540b('0x81'),_0x540b('0x82'),_0x540b('0x83'),'resolvebykpiidname',_0x540b('0x84'),_0x540b('0x85'),'responsiblecontactidyominame',_0x540b('0x86'),_0x540b('0x87'),_0x540b('0x88'),_0x540b('0x89'),_0x540b('0x8a'),'statuscode',_0x540b('0x8b'),_0x540b('0x8c'),_0x540b('0x8d'),_0x540b('0x8e'),'traversedpath',_0x540b('0x8f'),_0x540b('0x90')];var _0x4e8fc5=_0xbd6a8b[_0x540b('0x91')](_0x56a64b);return db[_0x540b('0x2b')]['findOne']({'where':{'id':_0x17458f['params']['id']},'attributes':['id','username',_0x540b('0x92'),_0x540b('0x93'),'tenantId','clientId',_0x540b('0x94')]})[_0x540b('0x24')](handleEntityNotFound(_0xece0f1,null))[_0x540b('0x24')](function(_0x4cd57f){if(_0x4cd57f){_0x49f0b7=_0x4cd57f[_0x540b('0x93')];var _0x1d19e7=_0x49f0b7[_0x540b('0x95')](-0x1);if(_0x1d19e7==='/'){_0x49f0b7=_0x49f0b7[_0x540b('0x96')](0x0,_0x49f0b7['lastIndexOf'](_0x1d19e7));}_0x4fbd42=util[_0x540b('0x97')](_0x540b('0x98'),_0x49f0b7);var _0x132197={'method':'POST','uri':_0x540b('0x99')+_0x4cd57f['tenantId']+_0x540b('0x9a'),'form':{'client_id':_0x4cd57f[_0x540b('0x9b')],'resource':_0x49f0b7,'username':_0x4cd57f[_0x540b('0x9c')],'password':_0x4cd57f[_0x540b('0x92')],'grant_type':_0x540b('0x92'),'client_secret':_0x4cd57f[_0x540b('0x94')]},'json':!![]};return rp(_0x132197);}})[_0x540b('0x24')](function(_0x47f709){_0x53e806=_0x47f709[_0x540b('0x9d')];var _0x1cd542={'method':_0x540b('0x9e'),'uri':encodeURI(_0x4fbd42+_0x540b('0x9f')+_0x1d709e+'\x27'),'headers':{'Authorization':_0x540b('0xa0')+_0x53e806,'If-None-Match':null,'OData-Version':_0x540b('0xa1')},'json':!![]};return rp(_0x1cd542);})[_0x540b('0x24')](function(_0x423e86){var _0x1dd2f7=_0x423e86['value'][0x0];var _0x2cbfa3=_0x1dd2f7['MetadataId'];var _0x95dcf={'method':'GET','uri':_0x4fbd42+_0x540b('0xa2')+_0x2cbfa3+')?$select=LogicalName&$expand=Attributes($select=LogicalName)','headers':{'Authorization':_0x540b('0xa0')+_0x53e806,'If-None-Match':null,'OData-Version':_0x540b('0xa1')},'json':!![]};return rp(_0x95dcf);})[_0x540b('0x24')](function(_0x359a1b){_0x509579=_0x359a1b;_0xe114cd=_0x509579[_0x540b('0xa3')];_0xe114cd=_[_0x540b('0xa4')](_0xe114cd,function(_0x569c73){return!_0x4e8fc5[_0x540b('0xa5')](_0x569c73[_0x540b('0xa6')]);});var _0x5913ef=[];var _0x57d0c7=[];_0xe114cd[_0x540b('0xa7')](function(_0x4de40a){if(_0x4de40a[_0x540b('0xa8')]){var _0x4e4e83=_0x4de40a[_0x540b('0xa8')][_0x540b('0x96')](_0x4de40a['@odata.type']['lastIndexOf']('.')+0x1);if(_0x4e4e83===_0x540b('0xa9')){_0x5913ef[_0x540b('0xaa')](getSelectList(_0x4fbd42,_0x3a75b1,_0x57d0c7,_0x509579[_0x540b('0xab')],_0x4de40a[_0x540b('0xab')],_0x53e806));}}});return Promise[_0x540b('0xac')](_0x5913ef);})[_0x540b('0x24')](function(_0x1b9d54){_0x7f429d=_0x1b9d54[0x0];var _0x5473b9=[];var _0x74ee53=[];_0xe114cd[_0x540b('0xa7')](function(_0x58226d){if(!_[_0x540b('0xad')](_0x58226d['@odata.type'])){var _0x277366=_0x58226d['@odata.type'][_0x540b('0x96')](_0x58226d[_0x540b('0xa8')]['lastIndexOf']('.')+0x1);if(_0x277366===_0x540b('0xae')){_0x5473b9['push'](getBooleanList(_0x4fbd42,_0x3a75b1,_0x74ee53,_0x509579[_0x540b('0xab')],_0x58226d[_0x540b('0xab')],_0x53e806));}}});return Promise[_0x540b('0xac')](_0x5473b9);})[_0x540b('0x24')](function(_0x3e4c17){_0x164b82=_0x3e4c17[0x0];var _0x2a1dcd=[];var _0x15af55=[];_0xe114cd['forEach'](function(_0xa32dfc){if(_0xa32dfc['@odata.type']){var _0x9f5ce3=_0xa32dfc[_0x540b('0xa8')][_0x540b('0x96')](_0xa32dfc[_0x540b('0xa8')][_0x540b('0xaf')]('.')+0x1);if(_0x9f5ce3===_0x540b('0xb0')||_0x9f5ce3===_0x540b('0xb1')||_0x9f5ce3===_0x540b('0xb2')||_0x9f5ce3===_0x540b('0xb3')||_0x9f5ce3===_0x540b('0xb4')||_0x9f5ce3===_0x540b('0xb5')||_0x9f5ce3===_0x540b('0xb6')||_0x9f5ce3==='EntityNameAttributeMetadata'||_0x9f5ce3===_0x540b('0xb7')||_0x9f5ce3===_0x540b('0xb8')){_0x2a1dcd['push'](getInputList(_0x4fbd42,_0x3a75b1,_0x9f5ce3,_0x15af55,_0x509579[_0x540b('0xab')],_0xa32dfc[_0x540b('0xab')],_0x53e806));}}});return Promise[_0x540b('0xac')](_0x2a1dcd);})[_0x540b('0x24')](function(_0x571381){_0x2119f5=_0x571381[0x0];var _0x5023aa=_0x7f429d[_0x540b('0x91')](_0x164b82)[_0x540b('0x91')](_0x2119f5);var _0x49e726={'count':_0x5023aa['length'],'rows':_0x5023aa};return _0x49e726;})[_0x540b('0x24')](respondWithResult(_0xece0f1,null))[_0x540b('0x44')](function(_0x590152){var _0x59ec9b=_0x17458f['query'][_0x540b('0xb9')]?0x1f4:_0x590152[_0x540b('0xba')]||0x1f4;logger['error'](_0x590152[_0x540b('0xbb')]);delete _0x590152[_0x540b('0x27')];if(_0x59ec9b===0x191){_0x59ec9b=0x190;}_0xece0f1[_0x540b('0x18')](_0x59ec9b)['send'](_0x17458f[_0x540b('0x2f')][_0x540b('0xb9')]?{'message':_0x540b('0xbc'),'statusCode':_0x590152[_0x540b('0xba')]}:_0x590152);});};function getSelectList(_0x5b4886,_0x2e028b,_0x1682e2,_0x822182,_0x4e52b0,_0x3e61f3){var _0x3dd56b={'method':_0x540b('0x9e'),'uri':_0x5b4886+_0x540b('0xa2')+_0x822182+_0x540b('0xbd')+_0x4e52b0+')/Microsoft.Dynamics.CRM.PicklistAttributeMetadata?'+_0x540b('0xbe'),'headers':{'Authorization':_0x540b('0xa0')+_0x3e61f3,'If-None-Match':null,'OData-Version':_0x540b('0xa1')},'json':!![]};return rp(_0x3dd56b)['then'](function(_0x2ab2ee){var _0x2b2373=[];var _0x552330=_0x2ab2ee['OptionSet'][_0x540b('0xbf')];_0x552330['forEach'](function(_0x143a91){_0x2b2373['push']({'name':_0x143a91[_0x540b('0xc0')][_0x540b('0xc1')][_0x540b('0xc0')],'value':String(_0x143a91[_0x540b('0xc2')])});});var _0x40e932={'id':_0x2e028b+'_'+_0x2ab2ee[_0x540b('0xa6')],'name':_0x2ab2ee['DisplayName']['UserLocalizedLabel'][_0x540b('0xc0')],'custom':![],'options':_0x2b2373};_0x1682e2[_0x540b('0xaa')](_0x40e932);return _0x1682e2;});}function getBooleanList(_0x171e91,_0x3a8021,_0x2582e5,_0x6b8028,_0x2ee59c,_0x564eb5){var _0x174f14={'method':_0x540b('0x9e'),'uri':_0x171e91+'EntityDefinitions('+_0x6b8028+')/Attributes('+_0x2ee59c+')/Microsoft.Dynamics.CRM.BooleanAttributeMetadata?$select=DisplayName,LogicalName&$expand=OptionSet($select=FalseOption,\x20TrueOption)','headers':{'Authorization':_0x540b('0xa0')+_0x564eb5,'If-None-Match':null,'OData-Version':_0x540b('0xa1')},'json':!![]};return rp(_0x174f14)['then'](function(_0x327625){var _0x3eec15=[];_0x3eec15[_0x540b('0xaa')]({'name':_0x327625[_0x540b('0xc3')]['TrueOption']['Label'][_0x540b('0xc1')][_0x540b('0xc0')],'value':'true'},{'name':_0x327625[_0x540b('0xc3')]['FalseOption'][_0x540b('0xc0')][_0x540b('0xc1')]['Label'],'value':_0x540b('0xc4')});var _0x2ce650={'id':_0x3a8021+'_'+_0x327625[_0x540b('0xa6')],'name':_0x327625[_0x540b('0xc5')][_0x540b('0xc1')][_0x540b('0xc0')],'custom':![],'options':_0x3eec15};_0x2582e5[_0x540b('0xaa')](_0x2ce650);return _0x2582e5;});}function getInputList(_0x2cae37,_0x4a039c,_0x560e94,_0x39334b,_0x414249,_0x336ae3,_0x3e8f1c){var _0x56af72={'method':'GET','uri':_0x2cae37+_0x540b('0xa2')+_0x414249+')/Attributes('+_0x336ae3+_0x540b('0xc6')+_0x560e94+_0x540b('0xc7'),'headers':{'Authorization':'Bearer\x20'+_0x3e8f1c,'If-None-Match':null,'OData-Version':_0x540b('0xa1')},'json':!![]};return rp(_0x56af72)[_0x540b('0x24')](function(_0x2d861c){var _0x2023d8={'id':_0x4a039c+'_'+_0x2d861c[_0x540b('0xa6')],'name':_0x2d861c[_0x540b('0xc5')][_0x540b('0xc1')]?_0x2d861c[_0x540b('0xc5')][_0x540b('0xc1')]['Label']:_0x2d861c[_0x540b('0xa6')],'custom':![],'options':[]};_0x39334b['push'](_0x2023d8);return _0x39334b;});}
\ No newline at end of file
+var _0x0dec=['onholdtime','overriddencreatedon','owneridname','owneridtype','owneridyominame','parentcaseidname','primarycontactidname','prioritycodename','productserialnumber','resolveby','resolvebykpiidname','responseby','responsiblecontactidname','responsiblecontactidyominame','sentimentvalue','slainvokedidname','slaname','socialprofileidname','statecode','statuscode','subjectidname','ticketnumber','timezoneruleversionnumber','transactioncurrencyidname','utcconversiontimezonecode','versionnumber','username','password','remoteUri','tenantId','clientId','slice','lastIndexOf','format','%s/api/data/v9.0/','POST','/oauth2/token','clientSecret','access_token','GET','EntityDefinitions?$select=DisplayName,EntitySetName&$filter=SchemaName\x20eq\x20\x27','Bearer\x20','4.0','value','MetadataId','EntityDefinitions(',')?$select=LogicalName&$expand=Attributes($select=LogicalName)','Attributes','includes','LogicalName','@odata.type','substring','PicklistAttributeMetadata','push','all','forEach','BooleanAttributeMetadata','StringAttributeMetadata','DoubleAttributeMetadata','BigIntAttributeMetadata','IntegerAttributeMetadata','MemoAttributeMetadata','DateTimeAttributeMetadata','concat','test','statusCode','OptionSet','Label','UserLocalizedLabel','Value','DisplayName',')/Attributes(',')/Microsoft.Dynamics.CRM.BooleanAttributeMetadata?$select=DisplayName,LogicalName&$expand=OptionSet($select=FalseOption,\x20TrueOption)','TrueOption','false',')/Microsoft.Dynamics.CRM.','?$select=DisplayName,LogicalName','eml-format','rimraf','zip-dir','fast-json-patch','moment','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','../../mysqldb','sendStatus','status','end','json','undefined','limit','count','offset','set','Content-Range','apply','reject','save','then','destroy','error','stack','send','map','Dynamics365Account','type','key','model','name','keys','query','filters','attributes','intersection','fields','hasOwnProperty','nolimit','order','sort','where','pick','VIRTUAL','filter','options','includeAll','include','findAll','rows','catch','show','params','length','find','create','body','update','findOne','Dynamics365Configuration','rawAttributes','merge','getConfigurations','addConfiguration','AccountId','channel','Dynamics365Field','Subjects','Descriptions','ticketType','Incident','PhoneCall','description','customerid','ownerid','phonenumber','regardingobjectid','directioncode','phonecall_activity_parties','accountidname','accountidyominame','billedserviceunits','contactidname','contractdetailidname','contractidname','createdbyexternalpartyyominame','createdbyyominame','createdonbehalfbyname','createdonbehalfbyyominame','customeridname','customeridtype','entityimage_timestamp','entityimage_url','escalatedon','exchangerate','firstresponsebykpiidname','importsequencenumber','influencescore','kbarticleidname','lastonholdtime','modifiedbyexternalpartyname','modifiedbyexternalpartyyominame','modifiedbyyominame','modifiedon','modifiedonbehalfbyname','modifiedonbehalfbyyominame','msdyn_incidenttypename','msdyn_iotalertname'];(function(_0x25d158,_0xbbcc7d){var _0x579210=function(_0x1ed6b6){while(--_0x1ed6b6){_0x25d158['push'](_0x25d158['shift']());}};_0x579210(++_0xbbcc7d);}(_0x0dec,0x11c));var _0xc0de=function(_0x55b958,_0x5743d1){_0x55b958=_0x55b958-0x0;var _0x15ba9f=_0x0dec[_0x55b958];return _0x15ba9f;};'use strict';var emlformat=require(_0xc0de('0x0'));var rimraf=require(_0xc0de('0x1'));var zipdir=require(_0xc0de('0x2'));var jsonpatch=require(_0xc0de('0x3'));var rp=require('request-promise');var moment=require(_0xc0de('0x4'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xc0de('0x5'));var path=require(_0xc0de('0x6'));var sox=require(_0xc0de('0x7'));var csv=require(_0xc0de('0x8'));var ejs=require(_0xc0de('0x9'));var fs=require('fs');var fs_extra=require(_0xc0de('0xa'));var _=require(_0xc0de('0xb'));var squel=require(_0xc0de('0xc'));var crypto=require(_0xc0de('0xd'));var jsforce=require(_0xc0de('0xe'));var deskjs=require(_0xc0de('0xf'));var toCsv=require(_0xc0de('0x8'));var querystring=require(_0xc0de('0x10'));var Papa=require(_0xc0de('0x11'));var Redis=require(_0xc0de('0x12'));var authService=require(_0xc0de('0x13'));var qs=require(_0xc0de('0x14'));var as=require(_0xc0de('0x15'));var hardwareService=require(_0xc0de('0x16'));var logger=require(_0xc0de('0x17'))(_0xc0de('0x18'));var utils=require(_0xc0de('0x19'));var config=require(_0xc0de('0x1a'));var licenseUtil=require(_0xc0de('0x1b'));var db=require(_0xc0de('0x1c'))['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x3cfb60,_0x3237b7){_0x3237b7=_0x3237b7||0xcc;return function(_0x386133){if(_0x386133){return _0x3cfb60[_0xc0de('0x1d')](_0x3237b7);}return _0x3cfb60[_0xc0de('0x1e')](_0x3237b7)[_0xc0de('0x1f')]();};}function respondWithResult(_0x297171,_0x3330e0){_0x3330e0=_0x3330e0||0xc8;return function(_0x3546f4){if(_0x3546f4){return _0x297171[_0xc0de('0x1e')](_0x3330e0)[_0xc0de('0x20')](_0x3546f4);}};}function respondWithFilteredResult(_0x7f1e4d,_0x4e24cb){return function(_0x12d66c){if(_0x12d66c){var _0x1128e9=typeof _0x4e24cb['offset']===_0xc0de('0x21')&&typeof _0x4e24cb[_0xc0de('0x22')]===_0xc0de('0x21');var _0x52913c=_0x12d66c[_0xc0de('0x23')];var _0x4a368e=_0x1128e9?0x0:_0x4e24cb[_0xc0de('0x24')];var _0x5ac5b1=_0x1128e9?_0x12d66c[_0xc0de('0x23')]:_0x4e24cb[_0xc0de('0x24')]+_0x4e24cb['limit'];var _0x2849de;if(_0x5ac5b1>=_0x52913c){_0x5ac5b1=_0x52913c;_0x2849de=0xc8;}else{_0x2849de=0xce;}_0x7f1e4d[_0xc0de('0x1e')](_0x2849de);return _0x7f1e4d[_0xc0de('0x25')](_0xc0de('0x26'),_0x4a368e+'-'+_0x5ac5b1+'/'+_0x52913c)[_0xc0de('0x20')](_0x12d66c);}return null;};}function patchUpdates(_0x8aee7c){return function(_0x42a63c){try{jsonpatch[_0xc0de('0x27')](_0x42a63c,_0x8aee7c,!![]);}catch(_0x4ddb7f){return BPromise[_0xc0de('0x28')](_0x4ddb7f);}return _0x42a63c[_0xc0de('0x29')]();};}function saveUpdates(_0x3cf1a0,_0x3448ab){return function(_0x337342){if(_0x337342){return _0x337342['update'](_0x3cf1a0)[_0xc0de('0x2a')](function(_0xf5a756){return _0xf5a756;});}return null;};}function removeEntity(_0x11252c,_0x27243b){return function(_0x4da58f){if(_0x4da58f){return _0x4da58f[_0xc0de('0x2b')]()[_0xc0de('0x2a')](function(){_0x11252c[_0xc0de('0x1e')](0xcc)[_0xc0de('0x1f')]();});}};}function handleEntityNotFound(_0x301d65,_0x25a44d){return function(_0x1b6aea){if(!_0x1b6aea){_0x301d65[_0xc0de('0x1d')](0x194);}return _0x1b6aea;};}function handleError(_0x3a80e6,_0x304660){_0x304660=_0x304660||0x1f4;return function(_0x32fb9d){logger[_0xc0de('0x2c')](_0x32fb9d[_0xc0de('0x2d')]);if(_0x32fb9d['name']){delete _0x32fb9d['name'];}_0x3a80e6[_0xc0de('0x1e')](_0x304660)[_0xc0de('0x2e')](_0x32fb9d);};}exports['index']=function(_0x4a813a,_0x6022ed){var _0x29f812={},_0x4ea40c={},_0x484af0={'count':0x0,'rows':[]};var _0x428089=_[_0xc0de('0x2f')](db[_0xc0de('0x30')]['rawAttributes'],function(_0x23ff66){return{'name':_0x23ff66['fieldName'],'type':_0x23ff66[_0xc0de('0x31')][_0xc0de('0x32')]};});_0x4ea40c[_0xc0de('0x33')]=_['map'](_0x428089,_0xc0de('0x34'));_0x4ea40c['query']=_[_0xc0de('0x35')](_0x4a813a[_0xc0de('0x36')]);_0x4ea40c[_0xc0de('0x37')]=_['intersection'](_0x4ea40c[_0xc0de('0x33')],_0x4ea40c[_0xc0de('0x36')]);_0x29f812[_0xc0de('0x38')]=_[_0xc0de('0x39')](_0x4ea40c[_0xc0de('0x33')],qs[_0xc0de('0x3a')](_0x4a813a[_0xc0de('0x36')][_0xc0de('0x3a')]));_0x29f812[_0xc0de('0x38')]=_0x29f812[_0xc0de('0x38')]['length']?_0x29f812[_0xc0de('0x38')]:_0x4ea40c['model'];if(!_0x4a813a[_0xc0de('0x36')][_0xc0de('0x3b')](_0xc0de('0x3c'))){_0x29f812[_0xc0de('0x22')]=qs[_0xc0de('0x22')](_0x4a813a[_0xc0de('0x36')][_0xc0de('0x22')]);_0x29f812[_0xc0de('0x24')]=qs[_0xc0de('0x24')](_0x4a813a[_0xc0de('0x36')][_0xc0de('0x24')]);}_0x29f812[_0xc0de('0x3d')]=qs['sort'](_0x4a813a['query'][_0xc0de('0x3e')]);_0x29f812[_0xc0de('0x3f')]=qs[_0xc0de('0x37')](_[_0xc0de('0x40')](_0x4a813a[_0xc0de('0x36')],_0x4ea40c[_0xc0de('0x37')]),_0x428089);if(_0x4a813a[_0xc0de('0x36')]['filter']){_0x29f812['where']=_['merge'](_0x29f812[_0xc0de('0x3f')],{'$or':_[_0xc0de('0x2f')](_0x428089,function(_0x172183){if(_0x172183[_0xc0de('0x31')]!==_0xc0de('0x41')){var _0xf1d4fa={};_0xf1d4fa[_0x172183['name']]={'$like':'%'+_0x4a813a[_0xc0de('0x36')][_0xc0de('0x42')]+'%'};return _0xf1d4fa;}})});}_0x29f812=_['merge']({},_0x29f812,_0x4a813a[_0xc0de('0x43')]);var _0x551802={'where':_0x29f812[_0xc0de('0x3f')]};return db[_0xc0de('0x30')][_0xc0de('0x23')](_0x551802)[_0xc0de('0x2a')](function(_0x3f4662){_0x484af0[_0xc0de('0x23')]=_0x3f4662;if(_0x4a813a[_0xc0de('0x36')][_0xc0de('0x44')]){_0x29f812[_0xc0de('0x45')]=[{'all':!![]}];}return db[_0xc0de('0x30')][_0xc0de('0x46')](_0x29f812);})['then'](function(_0x2b7e37){_0x484af0[_0xc0de('0x47')]=_0x2b7e37;return _0x484af0;})[_0xc0de('0x2a')](respondWithFilteredResult(_0x6022ed,_0x29f812))[_0xc0de('0x48')](handleError(_0x6022ed,null));};exports[_0xc0de('0x49')]=function(_0x5037ca,_0x5d18e6){var _0x1588a4={'raw':![],'where':{'id':_0x5037ca[_0xc0de('0x4a')]['id']}},_0x33cf03={};_0x33cf03[_0xc0de('0x33')]=_['keys'](db['Dynamics365Account']['rawAttributes']);_0x33cf03[_0xc0de('0x36')]=_['keys'](_0x5037ca[_0xc0de('0x36')]);_0x33cf03[_0xc0de('0x37')]=_[_0xc0de('0x39')](_0x33cf03[_0xc0de('0x33')],_0x33cf03[_0xc0de('0x36')]);_0x1588a4[_0xc0de('0x38')]=_['intersection'](_0x33cf03[_0xc0de('0x33')],qs[_0xc0de('0x3a')](_0x5037ca[_0xc0de('0x36')][_0xc0de('0x3a')]));_0x1588a4['attributes']=_0x1588a4[_0xc0de('0x38')][_0xc0de('0x4b')]?_0x1588a4[_0xc0de('0x38')]:_0x33cf03['model'];if(_0x5037ca[_0xc0de('0x36')][_0xc0de('0x44')]){_0x1588a4[_0xc0de('0x45')]=[{'all':!![]}];}_0x1588a4=_['merge']({},_0x1588a4,_0x5037ca[_0xc0de('0x43')]);return db['Dynamics365Account'][_0xc0de('0x4c')](_0x1588a4)['then'](handleEntityNotFound(_0x5d18e6,null))[_0xc0de('0x2a')](respondWithResult(_0x5d18e6,null))[_0xc0de('0x48')](handleError(_0x5d18e6,null));};exports[_0xc0de('0x4d')]=function(_0x3814f8,_0x4f72bf){return db[_0xc0de('0x30')][_0xc0de('0x4d')](_0x3814f8[_0xc0de('0x4e')],{})[_0xc0de('0x2a')](respondWithResult(_0x4f72bf,0xc9))[_0xc0de('0x48')](handleError(_0x4f72bf,null));};exports[_0xc0de('0x4f')]=function(_0x36d8be,_0x3a335e){if(_0x36d8be[_0xc0de('0x4e')]['id']){delete _0x36d8be['body']['id'];}return db[_0xc0de('0x30')][_0xc0de('0x4c')]({'where':{'id':_0x36d8be[_0xc0de('0x4a')]['id']}})['then'](handleEntityNotFound(_0x3a335e,null))[_0xc0de('0x2a')](saveUpdates(_0x36d8be[_0xc0de('0x4e')],null))[_0xc0de('0x2a')](respondWithResult(_0x3a335e,null))['catch'](handleError(_0x3a335e,null));};exports[_0xc0de('0x2b')]=function(_0x437159,_0x141a38){return db['Dynamics365Account']['find']({'where':{'id':_0x437159[_0xc0de('0x4a')]['id']}})['then'](handleEntityNotFound(_0x141a38,null))[_0xc0de('0x2a')](removeEntity(_0x141a38,null))[_0xc0de('0x48')](handleError(_0x141a38,null));};exports['getConfigurations']=function(_0x54d3dd,_0x550e93,_0x333b2f){var _0x43ff22={};var _0x1742d5={};var _0x421ce5;var _0x5e6e3b;return db[_0xc0de('0x30')][_0xc0de('0x50')]({'where':{'id':_0x54d3dd[_0xc0de('0x4a')]['id']}})[_0xc0de('0x2a')](handleEntityNotFound(_0x550e93,null))[_0xc0de('0x2a')](function(_0x38a550){if(_0x38a550){_0x421ce5=_0x38a550;_0x1742d5[_0xc0de('0x33')]=_['keys'](db[_0xc0de('0x51')][_0xc0de('0x52')]);_0x1742d5[_0xc0de('0x36')]=_[_0xc0de('0x35')](_0x54d3dd['query']);_0x1742d5['filters']=_[_0xc0de('0x39')](_0x1742d5[_0xc0de('0x33')],_0x1742d5[_0xc0de('0x36')]);_0x43ff22[_0xc0de('0x38')]=_[_0xc0de('0x39')](_0x1742d5[_0xc0de('0x33')],qs[_0xc0de('0x3a')](_0x54d3dd[_0xc0de('0x36')][_0xc0de('0x3a')]));_0x43ff22[_0xc0de('0x38')]=_0x43ff22['attributes'][_0xc0de('0x4b')]?_0x43ff22[_0xc0de('0x38')]:_0x1742d5['model'];_0x43ff22['order']=qs['sort'](_0x54d3dd['query'][_0xc0de('0x3e')]);_0x43ff22[_0xc0de('0x3f')]=qs['filters'](_['pick'](_0x54d3dd[_0xc0de('0x36')],_0x1742d5[_0xc0de('0x37')]));if(_0x54d3dd[_0xc0de('0x36')][_0xc0de('0x42')]){_0x43ff22[_0xc0de('0x3f')]=_[_0xc0de('0x53')](_0x43ff22['where'],{'$or':_[_0xc0de('0x2f')](_0x43ff22[_0xc0de('0x38')],function(_0x19ad47){var _0x287e5b={};_0x287e5b[_0x19ad47]={'$like':'%'+_0x54d3dd[_0xc0de('0x36')][_0xc0de('0x42')]+'%'};return _0x287e5b;})});}_0x43ff22=_[_0xc0de('0x53')]({},_0x43ff22,_0x54d3dd[_0xc0de('0x43')]);return _0x421ce5[_0xc0de('0x54')](_0x43ff22);}})['then'](function(_0x5bec3b){if(_0x5bec3b){_0x5e6e3b=_0x5bec3b[_0xc0de('0x4b')];if(!_0x54d3dd[_0xc0de('0x36')][_0xc0de('0x3b')](_0xc0de('0x3c'))){_0x43ff22[_0xc0de('0x22')]=qs['limit'](_0x54d3dd[_0xc0de('0x36')][_0xc0de('0x22')]);_0x43ff22[_0xc0de('0x24')]=qs[_0xc0de('0x24')](_0x54d3dd[_0xc0de('0x36')][_0xc0de('0x24')]);}return _0x421ce5[_0xc0de('0x54')](_0x43ff22);}})[_0xc0de('0x2a')](function(_0x21e1ec){if(_0x21e1ec){return _0x21e1ec?{'count':_0x5e6e3b,'rows':_0x21e1ec}:null;}})[_0xc0de('0x2a')](respondWithResult(_0x550e93,null))['catch'](handleError(_0x550e93,null));};exports[_0xc0de('0x55')]=function(_0x5c69e9,_0x502367,_0x42b2f6){if(_0x5c69e9[_0xc0de('0x4e')]['id']){delete _0x5c69e9[_0xc0de('0x4e')]['id'];}return db[_0xc0de('0x30')][_0xc0de('0x50')]({'where':{'id':_0x5c69e9[_0xc0de('0x4a')]['id']}})[_0xc0de('0x2a')](handleEntityNotFound(_0x502367,null))[_0xc0de('0x2a')](function(_0x21a936){if(_0x21a936){_0x5c69e9['body'][_0xc0de('0x56')]=_0x21a936['id'];_0x5c69e9[_0xc0de('0x4e')]['Subjects']=integrations['getSubjects'](_0x5c69e9['body'][_0xc0de('0x57')],_0x5c69e9['body'][_0xc0de('0x31')]);_0x5c69e9['body']['Descriptions']=integrations['getDescriptions'](_0x5c69e9[_0xc0de('0x4e')][_0xc0de('0x57')],_0x5c69e9[_0xc0de('0x4e')][_0xc0de('0x31')]);return db[_0xc0de('0x51')][_0xc0de('0x4d')](_0x5c69e9[_0xc0de('0x4e')],{'include':[{'model':db[_0xc0de('0x58')],'as':_0xc0de('0x59')},{'model':db[_0xc0de('0x58')],'as':_0xc0de('0x5a')}]});}return null;})[_0xc0de('0x2a')](respondWithResult(_0x502367,null))[_0xc0de('0x48')](handleError(_0x502367,null));};exports['getFields']=function(_0x5774b3,_0x4bc3e5,_0x1a262c){var _0x17ff83=_0x5774b3[_0xc0de('0x36')][_0xc0de('0x5b')];var _0x32e818=_0x17ff83==='incident'?_0xc0de('0x5c'):_0xc0de('0x5d');var _0x168505='';var _0x46188a='';var _0x492809='';var _0x568a82='';var _0x2cbbe9='';var _0x50911e='';var _0x39a516='';var _0x51be34='';var _0x18e25c=['title',_0xc0de('0x5e'),_0xc0de('0x5f'),_0xc0de('0x60'),'caseorigincode','subject',_0xc0de('0x61'),_0xc0de('0x62'),_0xc0de('0x63'),_0xc0de('0x64')];var _0x9b7bab=[_0xc0de('0x65'),_0xc0de('0x66'),'actualserviceunits',_0xc0de('0x67'),_0xc0de('0x68'),'contactidyominame',_0xc0de('0x69'),_0xc0de('0x6a'),'createdbyexternalpartyname',_0xc0de('0x6b'),'createdbyname',_0xc0de('0x6c'),'createdon',_0xc0de('0x6d'),_0xc0de('0x6e'),_0xc0de('0x6f'),_0xc0de('0x70'),'customeridyominame','emailaddress','entitlementidname',_0xc0de('0x71'),_0xc0de('0x72'),_0xc0de('0x73'),_0xc0de('0x74'),_0xc0de('0x75'),'followupby',_0xc0de('0x76'),_0xc0de('0x77'),_0xc0de('0x78'),_0xc0de('0x79'),'masteridname',_0xc0de('0x7a'),_0xc0de('0x7b'),'modifiedbyname',_0xc0de('0x7c'),_0xc0de('0x7d'),_0xc0de('0x7e'),_0xc0de('0x7f'),_0xc0de('0x80'),_0xc0de('0x81'),'numberofchildincidents',_0xc0de('0x82'),_0xc0de('0x83'),_0xc0de('0x84'),_0xc0de('0x85'),_0xc0de('0x86'),_0xc0de('0x87'),_0xc0de('0x88'),'primarycontactidyominame',_0xc0de('0x89'),'productidname',_0xc0de('0x8a'),_0xc0de('0x8b'),_0xc0de('0x8c'),_0xc0de('0x8d'),_0xc0de('0x8e'),_0xc0de('0x8f'),_0xc0de('0x90'),_0xc0de('0x91'),_0xc0de('0x92'),_0xc0de('0x93'),_0xc0de('0x94'),_0xc0de('0x95'),_0xc0de('0x96'),_0xc0de('0x97'),_0xc0de('0x98'),_0xc0de('0x99'),'traversedpath',_0xc0de('0x9a'),_0xc0de('0x9b')];var _0x4aa9fc=_0x18e25c['concat'](_0x9b7bab);return db[_0xc0de('0x30')][_0xc0de('0x50')]({'where':{'id':_0x5774b3[_0xc0de('0x4a')]['id']},'attributes':['id',_0xc0de('0x9c'),_0xc0de('0x9d'),_0xc0de('0x9e'),_0xc0de('0x9f'),_0xc0de('0xa0'),'clientSecret']})['then'](handleEntityNotFound(_0x4bc3e5,null))[_0xc0de('0x2a')](function(_0x6f1dfb){if(_0x6f1dfb){_0x51be34=_0x6f1dfb['remoteUri'];var _0x206ddc=_0x51be34[_0xc0de('0xa1')](-0x1);if(_0x206ddc==='/'){_0x51be34=_0x51be34['substring'](0x0,_0x51be34[_0xc0de('0xa2')](_0x206ddc));}_0x39a516=util[_0xc0de('0xa3')](_0xc0de('0xa4'),_0x51be34);var _0x1572f7={'method':_0xc0de('0xa5'),'uri':'https://login.microsoftonline.com/'+_0x6f1dfb[_0xc0de('0x9f')]+_0xc0de('0xa6'),'form':{'client_id':_0x6f1dfb[_0xc0de('0xa0')],'resource':_0x51be34,'username':_0x6f1dfb[_0xc0de('0x9c')],'password':_0x6f1dfb[_0xc0de('0x9d')],'grant_type':_0xc0de('0x9d'),'client_secret':_0x6f1dfb[_0xc0de('0xa7')]},'json':!![]};return rp(_0x1572f7);}})[_0xc0de('0x2a')](function(_0x5bf6ae){_0x50911e=_0x5bf6ae[_0xc0de('0xa8')];var _0x4fcdd9={'method':_0xc0de('0xa9'),'uri':encodeURI(_0x39a516+_0xc0de('0xaa')+_0x32e818+'\x27'),'headers':{'Authorization':_0xc0de('0xab')+_0x50911e,'If-None-Match':null,'OData-Version':_0xc0de('0xac')},'json':!![]};return rp(_0x4fcdd9);})['then'](function(_0x529405){var _0x4b1311=_0x529405[_0xc0de('0xad')][0x0];var _0x4a6f36=_0x4b1311[_0xc0de('0xae')];var _0x5629fa={'method':_0xc0de('0xa9'),'uri':_0x39a516+_0xc0de('0xaf')+_0x4a6f36+_0xc0de('0xb0'),'headers':{'Authorization':_0xc0de('0xab')+_0x50911e,'If-None-Match':null,'OData-Version':_0xc0de('0xac')},'json':!![]};return rp(_0x5629fa);})[_0xc0de('0x2a')](function(_0x9e2bf1){_0x168505=_0x9e2bf1;_0x46188a=_0x168505[_0xc0de('0xb1')];_0x46188a=_['remove'](_0x46188a,function(_0x437512){return!_0x4aa9fc[_0xc0de('0xb2')](_0x437512[_0xc0de('0xb3')]);});var _0x531a9c=[];var _0x29cfa3=[];_0x46188a['forEach'](function(_0x17cb24){if(_0x17cb24[_0xc0de('0xb4')]){var _0x2daff4=_0x17cb24[_0xc0de('0xb4')][_0xc0de('0xb5')](_0x17cb24['@odata.type'][_0xc0de('0xa2')]('.')+0x1);if(_0x2daff4===_0xc0de('0xb6')){_0x531a9c[_0xc0de('0xb7')](getSelectList(_0x39a516,_0x17ff83,_0x29cfa3,_0x168505[_0xc0de('0xae')],_0x17cb24[_0xc0de('0xae')],_0x50911e));}}});return Promise[_0xc0de('0xb8')](_0x531a9c);})['then'](function(_0x430054){_0x492809=_0x430054[0x0];var _0x4b9be6=[];var _0x4ec074=[];_0x46188a[_0xc0de('0xb9')](function(_0x495d0b){if(!_['isNil'](_0x495d0b['@odata.type'])){var _0x46f08d=_0x495d0b[_0xc0de('0xb4')][_0xc0de('0xb5')](_0x495d0b[_0xc0de('0xb4')]['lastIndexOf']('.')+0x1);if(_0x46f08d===_0xc0de('0xba')){_0x4b9be6['push'](getBooleanList(_0x39a516,_0x17ff83,_0x4ec074,_0x168505['MetadataId'],_0x495d0b[_0xc0de('0xae')],_0x50911e));}}});return Promise['all'](_0x4b9be6);})[_0xc0de('0x2a')](function(_0x57755e){_0x568a82=_0x57755e[0x0];var _0x3354a8=[];var _0x548b78=[];_0x46188a[_0xc0de('0xb9')](function(_0x4c98b7){if(_0x4c98b7[_0xc0de('0xb4')]){var _0x496575=_0x4c98b7[_0xc0de('0xb4')][_0xc0de('0xb5')](_0x4c98b7[_0xc0de('0xb4')][_0xc0de('0xa2')]('.')+0x1);if(_0x496575===_0xc0de('0xbb')||_0x496575===_0xc0de('0xbc')||_0x496575===_0xc0de('0xbd')||_0x496575===_0xc0de('0xbe')||_0x496575===_0xc0de('0xbf')||_0x496575===_0xc0de('0xc0')||_0x496575==='StatusAttributeMetadata'||_0x496575==='EntityNameAttributeMetadata'||_0x496575==='StateAttributeMetadata'||_0x496575==='DecimalAttributeMetadata'){_0x3354a8[_0xc0de('0xb7')](getInputList(_0x39a516,_0x17ff83,_0x496575,_0x548b78,_0x168505['MetadataId'],_0x4c98b7['MetadataId'],_0x50911e));}}});return Promise['all'](_0x3354a8);})[_0xc0de('0x2a')](function(_0x2bad78){_0x2cbbe9=_0x2bad78[0x0];var _0x113afb=_0x492809[_0xc0de('0xc1')](_0x568a82)[_0xc0de('0xc1')](_0x2cbbe9);var _0xae8587={'count':_0x113afb[_0xc0de('0x4b')],'rows':_0x113afb};return _0xae8587;})['then'](respondWithResult(_0x4bc3e5,null))[_0xc0de('0x48')](function(_0x5dbc1a){var _0x106106=_0x5774b3[_0xc0de('0x36')][_0xc0de('0xc2')]?0x1f4:_0x5dbc1a[_0xc0de('0xc3')]||0x1f4;logger[_0xc0de('0x2c')](_0x5dbc1a['stack']);delete _0x5dbc1a['name'];if(_0x106106===0x191){_0x106106=0x190;}_0x4bc3e5[_0xc0de('0x1e')](_0x106106)['send'](_0x5774b3['query']['test']?{'message':'Wrong\x20credentials','statusCode':_0x5dbc1a[_0xc0de('0xc3')]}:_0x5dbc1a);});};function getSelectList(_0x4d7659,_0x170ba9,_0x133538,_0x2c4d84,_0x413ad0,_0x29219){var _0x46e901={'method':_0xc0de('0xa9'),'uri':_0x4d7659+'EntityDefinitions('+_0x2c4d84+')/Attributes('+_0x413ad0+')/Microsoft.Dynamics.CRM.PicklistAttributeMetadata?'+'$select=DisplayName,LogicalName&$expand=OptionSet($select=Options)','headers':{'Authorization':_0xc0de('0xab')+_0x29219,'If-None-Match':null,'OData-Version':'4.0'},'json':!![]};return rp(_0x46e901)[_0xc0de('0x2a')](function(_0x121644){var _0x1b3c09=[];var _0x4eced4=_0x121644[_0xc0de('0xc4')]['Options'];_0x4eced4[_0xc0de('0xb9')](function(_0x15107d){_0x1b3c09[_0xc0de('0xb7')]({'name':_0x15107d[_0xc0de('0xc5')][_0xc0de('0xc6')][_0xc0de('0xc5')],'value':String(_0x15107d[_0xc0de('0xc7')])});});var _0x5676ba={'id':_0x170ba9+'_'+_0x121644['LogicalName'],'name':_0x121644[_0xc0de('0xc8')][_0xc0de('0xc6')][_0xc0de('0xc5')],'custom':![],'options':_0x1b3c09};_0x133538[_0xc0de('0xb7')](_0x5676ba);return _0x133538;});}function getBooleanList(_0x31272b,_0x1f2964,_0x19a6de,_0x770d82,_0x5e4266,_0x4dcc42){var _0x3f9392={'method':_0xc0de('0xa9'),'uri':_0x31272b+_0xc0de('0xaf')+_0x770d82+_0xc0de('0xc9')+_0x5e4266+_0xc0de('0xca'),'headers':{'Authorization':'Bearer\x20'+_0x4dcc42,'If-None-Match':null,'OData-Version':_0xc0de('0xac')},'json':!![]};return rp(_0x3f9392)['then'](function(_0x45154c){var _0xf2831b=[];_0xf2831b[_0xc0de('0xb7')]({'name':_0x45154c[_0xc0de('0xc4')][_0xc0de('0xcb')]['Label'][_0xc0de('0xc6')][_0xc0de('0xc5')],'value':'true'},{'name':_0x45154c['OptionSet']['FalseOption']['Label'][_0xc0de('0xc6')][_0xc0de('0xc5')],'value':_0xc0de('0xcc')});var _0x557048={'id':_0x1f2964+'_'+_0x45154c[_0xc0de('0xb3')],'name':_0x45154c[_0xc0de('0xc8')][_0xc0de('0xc6')][_0xc0de('0xc5')],'custom':![],'options':_0xf2831b};_0x19a6de['push'](_0x557048);return _0x19a6de;});}function getInputList(_0x39bed7,_0x58e188,_0x296ae0,_0xac9183,_0x1d460a,_0x575930,_0x4f1e12){var _0x9c742e={'method':_0xc0de('0xa9'),'uri':_0x39bed7+'EntityDefinitions('+_0x1d460a+_0xc0de('0xc9')+_0x575930+_0xc0de('0xcd')+_0x296ae0+_0xc0de('0xce'),'headers':{'Authorization':_0xc0de('0xab')+_0x4f1e12,'If-None-Match':null,'OData-Version':'4.0'},'json':!![]};return rp(_0x9c742e)[_0xc0de('0x2a')](function(_0x5a6106){var _0x274cc9={'id':_0x58e188+'_'+_0x5a6106[_0xc0de('0xb3')],'name':_0x5a6106[_0xc0de('0xc8')][_0xc0de('0xc6')]?_0x5a6106[_0xc0de('0xc8')][_0xc0de('0xc6')][_0xc0de('0xc5')]:_0x5a6106['LogicalName'],'custom':![],'options':[]};_0xac9183[_0xc0de('0xb7')](_0x274cc9);return _0xac9183;});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb7e7=['int_dynamics365_accounts','lodash','../../config/logger','moment','request-promise','rimraf','../../config/environment','./intDynamics365Account.attributes','define'];(function(_0x216506,_0x53d429){var _0x1fc883=function(_0x5c93d1){while(--_0x5c93d1){_0x216506['push'](_0x216506['shift']());}};_0x1fc883(++_0x53d429);}(_0xb7e7,0x121));var _0x7b7e=function(_0xa464c9,_0x7c86d8){_0xa464c9=_0xa464c9-0x0;var _0x3d73c4=_0xb7e7[_0xa464c9];return _0x3d73c4;};'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'));var integrations=require('../../components/integrations/configuration');module['exports']=function(_0x333fa4,_0x372bde){return _0x333fa4[_0x7b7e('0x7')]('Dynamics365Account',attributes,{'tableName':_0x7b7e('0x8'),'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(_0x3d1b51,_0x38ebd5){var _0x563461=function(_0xedb826){while(--_0xedb826){_0x3d1b51['push'](_0x3d1b51['shift']());}};_0x563461(++_0x38ebd5);}(_0xbaf0,0x12a));var _0x0baf=function(_0x6c993a,_0x5ea3ab){_0x6c993a=_0x6c993a-0x0;var _0x27f547=_0xbaf0[_0x6c993a];return _0x27f547;};'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 _0xb623=['randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','request','info','Dynamics365Account,\x20%s,\x20%s','request\x20sent','error','code','message','result','GetDynamics365Account','options','raw','where','attributes','limit','include','map','model','then','debug','stringify','ShowDynamics365Account','find','catch','lodash','moment','bluebird'];(function(_0x1486e5,_0x39684f){var _0x29d89b=function(_0x4a0a80){while(--_0x4a0a80){_0x1486e5['push'](_0x1486e5['shift']());}};_0x29d89b(++_0x39684f);}(_0xb623,0x1e7));var _0x3b62=function(_0x358d5f,_0x5690b9){_0x358d5f=_0x358d5f-0x0;var _0xe007fd=_0xb623[_0x358d5f];return _0xe007fd;};'use strict';var _=require(_0x3b62('0x0'));var util=require('util');var moment=require(_0x3b62('0x1'));var BPromise=require(_0x3b62('0x2'));var rs=require(_0x3b62('0x3'));var fs=require('fs');var Redis=require(_0x3b62('0x4'));var db=require(_0x3b62('0x5'))['db'];var utils=require(_0x3b62('0x6'));var logger=require(_0x3b62('0x7'))('rpc');var config=require(_0x3b62('0x8'));var jayson=require(_0x3b62('0x9'));var client=jayson[_0x3b62('0xa')][_0x3b62('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x4057ec,_0x7f2ec9,_0x8b6565){return new BPromise(function(_0x14aa21,_0x406042){return client[_0x3b62('0xc')](_0x4057ec,_0x8b6565)['then'](function(_0x6c4406){logger[_0x3b62('0xd')](_0x3b62('0xe'),_0x7f2ec9,_0x3b62('0xf'));logger['debug']('Dynamics365Account,\x20%s,\x20%s,\x20%s',_0x7f2ec9,'request\x20sent',JSON['stringify'](_0x6c4406));if(_0x6c4406[_0x3b62('0x10')]){if(_0x6c4406[_0x3b62('0x10')][_0x3b62('0x11')]===0x1f4){logger[_0x3b62('0x10')](_0x3b62('0xe'),_0x7f2ec9,_0x6c4406['error'][_0x3b62('0x12')]);return _0x406042(_0x6c4406[_0x3b62('0x10')]['message']);}logger['error'](_0x3b62('0xe'),_0x7f2ec9,_0x6c4406[_0x3b62('0x10')][_0x3b62('0x12')]);return _0x14aa21(_0x6c4406['error'][_0x3b62('0x12')]);}else{logger['info'](_0x3b62('0xe'),_0x7f2ec9,_0x3b62('0xf'));_0x14aa21(_0x6c4406[_0x3b62('0x13')][_0x3b62('0x12')]);}})['catch'](function(_0x175190){logger[_0x3b62('0x10')](_0x3b62('0xe'),_0x7f2ec9,_0x175190);_0x406042(_0x175190);});});}exports[_0x3b62('0x14')]=function(_0x51d80a){var _0x2c84d8=this;return new Promise(function(_0x3afa1e,_0x371c82){return db['Dynamics365Account']['findAll']({'raw':_0x51d80a[_0x3b62('0x15')]?_0x51d80a[_0x3b62('0x15')][_0x3b62('0x16')]===undefined?!![]:![]:!![],'where':_0x51d80a[_0x3b62('0x15')]?_0x51d80a[_0x3b62('0x15')][_0x3b62('0x17')]||null:null,'attributes':_0x51d80a[_0x3b62('0x15')]?_0x51d80a[_0x3b62('0x15')][_0x3b62('0x18')]||null:null,'limit':_0x51d80a[_0x3b62('0x15')]?_0x51d80a[_0x3b62('0x15')][_0x3b62('0x19')]||null:null,'include':_0x51d80a[_0x3b62('0x15')]?_0x51d80a['options']['include']?_['map'](_0x51d80a['options'][_0x3b62('0x1a')],function(_0x3d8482){return{'model':db[_0x3d8482['model']],'as':_0x3d8482['as'],'attributes':_0x3d8482[_0x3b62('0x18')],'include':_0x3d8482[_0x3b62('0x1a')]?_[_0x3b62('0x1b')](_0x3d8482['include'],function(_0x15aa0d){return{'model':db[_0x15aa0d[_0x3b62('0x1c')]],'as':_0x15aa0d['as'],'attributes':_0x15aa0d[_0x3b62('0x18')],'include':_0x15aa0d['include']?_['map'](_0x15aa0d[_0x3b62('0x1a')],function(_0x44d229){return{'model':db[_0x44d229[_0x3b62('0x1c')]],'as':_0x44d229['as'],'attributes':_0x44d229[_0x3b62('0x18')]};}):[]};}):[]};}):[]:[]})[_0x3b62('0x1d')](function(_0x23af21){logger['info'](_0x3b62('0x14'),_0x51d80a);logger[_0x3b62('0x1e')](_0x3b62('0x14'),_0x51d80a,JSON[_0x3b62('0x1f')](_0x23af21));_0x3afa1e(_0x23af21);})['catch'](function(_0x20f47e){logger[_0x3b62('0x10')]('GetDynamics365Account',_0x20f47e[_0x3b62('0x12')],_0x51d80a);_0x371c82(_0x2c84d8[_0x3b62('0x10')](0x1f4,_0x20f47e['message']));});});};exports[_0x3b62('0x20')]=function(_0x301bb3){var _0x32db15=this;return new Promise(function(_0x357168,_0x1308d2){return db['Dynamics365Account'][_0x3b62('0x21')]({'raw':_0x301bb3[_0x3b62('0x15')]?_0x301bb3['options']['raw']===undefined?!![]:![]:!![],'where':_0x301bb3[_0x3b62('0x15')]?_0x301bb3[_0x3b62('0x15')][_0x3b62('0x17')]||null:null,'attributes':_0x301bb3['options']?_0x301bb3[_0x3b62('0x15')][_0x3b62('0x18')]||null:null,'include':_0x301bb3[_0x3b62('0x15')]?_0x301bb3[_0x3b62('0x15')]['include']?_[_0x3b62('0x1b')](_0x301bb3['options'][_0x3b62('0x1a')],function(_0x1576bb){return{'model':db[_0x1576bb[_0x3b62('0x1c')]],'as':_0x1576bb['as'],'attributes':_0x1576bb[_0x3b62('0x18')],'include':_0x1576bb[_0x3b62('0x1a')]?_['map'](_0x1576bb['include'],function(_0x168588){return{'model':db[_0x168588[_0x3b62('0x1c')]],'as':_0x168588['as'],'attributes':_0x168588[_0x3b62('0x18')],'include':_0x168588[_0x3b62('0x1a')]?_['map'](_0x168588[_0x3b62('0x1a')],function(_0x2d7a75){return{'model':db[_0x2d7a75['model']],'as':_0x2d7a75['as'],'attributes':_0x2d7a75[_0x3b62('0x18')]};}):[]};}):[]};}):[]:[]})[_0x3b62('0x1d')](function(_0x5d213c){logger['info'](_0x3b62('0x20'),_0x301bb3);logger[_0x3b62('0x1e')](_0x3b62('0x20'),_0x301bb3,JSON[_0x3b62('0x1f')](_0x5d213c));_0x357168(_0x5d213c);})[_0x3b62('0x22')](function(_0x277591){logger[_0x3b62('0x10')](_0x3b62('0x20'),_0x277591[_0x3b62('0x12')],_0x301bb3);_0x1308d2(_0x32db15[_0x3b62('0x10')](0x1f4,_0x277591[_0x3b62('0x12')]));});});};
\ No newline at end of file
+var _0x4fda=['raw','where','limit','map','model','attributes','include','ShowDynamics365Account','catch','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','Dynamics365Account,\x20%s,\x20%s','request\x20sent','debug','Dynamics365Account,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','GetDynamics365Account','Dynamics365Account','options'];(function(_0x4c2c58,_0x48b653){var _0x545292=function(_0x522e5a){while(--_0x522e5a){_0x4c2c58['push'](_0x4c2c58['shift']());}};_0x545292(++_0x48b653);}(_0x4fda,0x1f3));var _0xa4fd=function(_0x33554b,_0x48162b){_0x33554b=_0x33554b-0x0;var _0x256954=_0x4fda[_0x33554b];return _0x256954;};'use strict';var _=require('lodash');var util=require(_0xa4fd('0x0'));var moment=require('moment');var BPromise=require(_0xa4fd('0x1'));var rs=require(_0xa4fd('0x2'));var fs=require('fs');var Redis=require(_0xa4fd('0x3'));var db=require(_0xa4fd('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0xa4fd('0x5'))(_0xa4fd('0x6'));var config=require(_0xa4fd('0x7'));var jayson=require(_0xa4fd('0x8'));var client=jayson[_0xa4fd('0x9')][_0xa4fd('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x40703c,_0x3f2727,_0x5737a2){return new BPromise(function(_0xff3ce9,_0x224f81){return client[_0xa4fd('0xb')](_0x40703c,_0x5737a2)[_0xa4fd('0xc')](function(_0x337500){logger[_0xa4fd('0xd')](_0xa4fd('0xe'),_0x3f2727,_0xa4fd('0xf'));logger[_0xa4fd('0x10')](_0xa4fd('0x11'),_0x3f2727,_0xa4fd('0xf'),JSON[_0xa4fd('0x12')](_0x337500));if(_0x337500[_0xa4fd('0x13')]){if(_0x337500[_0xa4fd('0x13')][_0xa4fd('0x14')]===0x1f4){logger[_0xa4fd('0x13')](_0xa4fd('0xe'),_0x3f2727,_0x337500['error'][_0xa4fd('0x15')]);return _0x224f81(_0x337500[_0xa4fd('0x13')][_0xa4fd('0x15')]);}logger[_0xa4fd('0x13')](_0xa4fd('0xe'),_0x3f2727,_0x337500[_0xa4fd('0x13')][_0xa4fd('0x15')]);return _0xff3ce9(_0x337500[_0xa4fd('0x13')]['message']);}else{logger[_0xa4fd('0xd')]('Dynamics365Account,\x20%s,\x20%s',_0x3f2727,'request\x20sent');_0xff3ce9(_0x337500[_0xa4fd('0x16')]['message']);}})['catch'](function(_0x347181){logger[_0xa4fd('0x13')]('Dynamics365Account,\x20%s,\x20%s',_0x3f2727,_0x347181);_0x224f81(_0x347181);});});}exports[_0xa4fd('0x17')]=function(_0x21b0d3){var _0x20c0eb=this;return new Promise(function(_0x2a679b,_0x495f7e){return db[_0xa4fd('0x18')]['findAll']({'raw':_0x21b0d3[_0xa4fd('0x19')]?_0x21b0d3[_0xa4fd('0x19')][_0xa4fd('0x1a')]===undefined?!![]:![]:!![],'where':_0x21b0d3[_0xa4fd('0x19')]?_0x21b0d3[_0xa4fd('0x19')][_0xa4fd('0x1b')]||null:null,'attributes':_0x21b0d3[_0xa4fd('0x19')]?_0x21b0d3[_0xa4fd('0x19')]['attributes']||null:null,'limit':_0x21b0d3['options']?_0x21b0d3['options'][_0xa4fd('0x1c')]||null:null,'include':_0x21b0d3['options']?_0x21b0d3[_0xa4fd('0x19')]['include']?_[_0xa4fd('0x1d')](_0x21b0d3['options']['include'],function(_0x12a817){return{'model':db[_0x12a817[_0xa4fd('0x1e')]],'as':_0x12a817['as'],'attributes':_0x12a817[_0xa4fd('0x1f')],'include':_0x12a817[_0xa4fd('0x20')]?_[_0xa4fd('0x1d')](_0x12a817[_0xa4fd('0x20')],function(_0x4cc33c){return{'model':db[_0x4cc33c['model']],'as':_0x4cc33c['as'],'attributes':_0x4cc33c['attributes'],'include':_0x4cc33c['include']?_['map'](_0x4cc33c['include'],function(_0x398758){return{'model':db[_0x398758[_0xa4fd('0x1e')]],'as':_0x398758['as'],'attributes':_0x398758[_0xa4fd('0x1f')]};}):[]};}):[]};}):[]:[]})[_0xa4fd('0xc')](function(_0x42b5e9){logger['info'](_0xa4fd('0x17'),_0x21b0d3);logger[_0xa4fd('0x10')](_0xa4fd('0x17'),_0x21b0d3,JSON[_0xa4fd('0x12')](_0x42b5e9));_0x2a679b(_0x42b5e9);})['catch'](function(_0x5759f2){logger[_0xa4fd('0x13')]('GetDynamics365Account',_0x5759f2[_0xa4fd('0x15')],_0x21b0d3);_0x495f7e(_0x20c0eb[_0xa4fd('0x13')](0x1f4,_0x5759f2[_0xa4fd('0x15')]));});});};exports[_0xa4fd('0x21')]=function(_0x22e228){var _0xae646=this;return new Promise(function(_0x68f977,_0x5b4c0d){return db['Dynamics365Account']['find']({'raw':_0x22e228['options']?_0x22e228[_0xa4fd('0x19')][_0xa4fd('0x1a')]===undefined?!![]:![]:!![],'where':_0x22e228[_0xa4fd('0x19')]?_0x22e228[_0xa4fd('0x19')][_0xa4fd('0x1b')]||null:null,'attributes':_0x22e228[_0xa4fd('0x19')]?_0x22e228[_0xa4fd('0x19')][_0xa4fd('0x1f')]||null:null,'include':_0x22e228[_0xa4fd('0x19')]?_0x22e228[_0xa4fd('0x19')][_0xa4fd('0x20')]?_[_0xa4fd('0x1d')](_0x22e228['options'][_0xa4fd('0x20')],function(_0x37ab53){return{'model':db[_0x37ab53['model']],'as':_0x37ab53['as'],'attributes':_0x37ab53[_0xa4fd('0x1f')],'include':_0x37ab53['include']?_[_0xa4fd('0x1d')](_0x37ab53[_0xa4fd('0x20')],function(_0x4c8cbb){return{'model':db[_0x4c8cbb['model']],'as':_0x4c8cbb['as'],'attributes':_0x4c8cbb[_0xa4fd('0x1f')],'include':_0x4c8cbb['include']?_[_0xa4fd('0x1d')](_0x4c8cbb[_0xa4fd('0x20')],function(_0x113af5){return{'model':db[_0x113af5[_0xa4fd('0x1e')]],'as':_0x113af5['as'],'attributes':_0x113af5['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x448968){logger['info'](_0xa4fd('0x21'),_0x22e228);logger['debug'](_0xa4fd('0x21'),_0x22e228,JSON[_0xa4fd('0x12')](_0x448968));_0x68f977(_0x448968);})[_0xa4fd('0x22')](function(_0x2c23cc){logger[_0xa4fd('0x13')](_0xa4fd('0x21'),_0x2c23cc[_0xa4fd('0x15')],_0x22e228);_0x5b4c0d(_0xae646[_0xa4fd('0x13')](0x1f4,_0x2c23cc[_0xa4fd('0x15')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x542a=['update','delete','exports','multer','util','path','Router','fs-extra','../../components/interaction/service','../../config/environment','./intDynamics365Configuration.controller','get','isAuthenticated','/:id','show','getFields','getSubjects','/:id/descriptions','getDescriptions','post','create','put'];(function(_0x581627,_0x2cc460){var _0x778e7a=function(_0x5d77f6){while(--_0x5d77f6){_0x581627['push'](_0x581627['shift']());}};_0x778e7a(++_0x2cc460);}(_0x542a,0x71));var _0xa542=function(_0x12d095,_0x85233f){_0x12d095=_0x12d095-0x0;var _0x16081d=_0x542a[_0x12d095];return _0x16081d;};'use strict';var multer=require(_0xa542('0x0'));var util=require(_0xa542('0x1'));var path=require(_0xa542('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0xa542('0x3')]();var fs_extra=require(_0xa542('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0xa542('0x5'));var config=require(_0xa542('0x6'));var controller=require(_0xa542('0x7'));router[_0xa542('0x8')]('/',auth[_0xa542('0x9')](),controller['index']);router[_0xa542('0x8')](_0xa542('0xa'),auth[_0xa542('0x9')](),controller[_0xa542('0xb')]);router[_0xa542('0x8')]('/:id/fields',auth[_0xa542('0x9')](),controller[_0xa542('0xc')]);router['get']('/:id/subjects',auth[_0xa542('0x9')](),controller[_0xa542('0xd')]);router[_0xa542('0x8')](_0xa542('0xe'),auth[_0xa542('0x9')](),controller[_0xa542('0xf')]);router[_0xa542('0x10')]('/',auth[_0xa542('0x9')](),controller[_0xa542('0x11')]);router[_0xa542('0x12')](_0xa542('0xa'),auth[_0xa542('0x9')](),controller[_0xa542('0x13')]);router[_0xa542('0x14')](_0xa542('0xa'),auth[_0xa542('0x9')](),controller['destroy']);module[_0xa542('0x15')]=router;
\ No newline at end of file
+var _0x8eba=['../../components/interaction/service','./intDynamics365Configuration.controller','get','index','/:id','isAuthenticated','show','getFields','/:id/subjects','getSubjects','post','create','put','delete','destroy','multer','util','Router','fs-extra','../../components/auth/service'];(function(_0x1a0daa,_0x2a4634){var _0x1dbe15=function(_0xa8ab22){while(--_0xa8ab22){_0x1a0daa['push'](_0x1a0daa['shift']());}};_0x1dbe15(++_0x2a4634);}(_0x8eba,0xc3));var _0xa8eb=function(_0x19e928,_0x26a0e4){_0x19e928=_0x19e928-0x0;var _0x4e941f=_0x8eba[_0x19e928];return _0x4e941f;};'use strict';var multer=require(_0xa8eb('0x0'));var util=require(_0xa8eb('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require('express');var router=express[_0xa8eb('0x2')]();var fs_extra=require(_0xa8eb('0x3'));var auth=require(_0xa8eb('0x4'));var interaction=require(_0xa8eb('0x5'));var config=require('../../config/environment');var controller=require(_0xa8eb('0x6'));router[_0xa8eb('0x7')]('/',auth['isAuthenticated'](),controller[_0xa8eb('0x8')]);router['get'](_0xa8eb('0x9'),auth[_0xa8eb('0xa')](),controller[_0xa8eb('0xb')]);router[_0xa8eb('0x7')]('/:id/fields',auth[_0xa8eb('0xa')](),controller[_0xa8eb('0xc')]);router['get'](_0xa8eb('0xd'),auth[_0xa8eb('0xa')](),controller[_0xa8eb('0xe')]);router[_0xa8eb('0x7')]('/:id/descriptions',auth[_0xa8eb('0xa')](),controller['getDescriptions']);router[_0xa8eb('0xf')]('/',auth['isAuthenticated'](),controller[_0xa8eb('0x10')]);router[_0xa8eb('0x11')]('/:id',auth[_0xa8eb('0xa')](),controller['update']);router[_0xa8eb('0x12')](_0xa8eb('0x9'),auth[_0xa8eb('0xa')](),controller[_0xa8eb('0x13')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa0c3=['ENUM','incident','phonecall','sequelize','exports','STRING'];(function(_0x55274a,_0x1d020b){var _0x3a3150=function(_0x2044c7){while(--_0x2044c7){_0x55274a['push'](_0x55274a['shift']());}};_0x3a3150(++_0x1d020b);}(_0xa0c3,0x195));var _0x3a0c=function(_0x449a3b,_0x6ee5d1){_0x449a3b=_0x449a3b-0x0;var _0x3a77b3=_0xa0c3[_0x449a3b];return _0x3a77b3;};'use strict';var Sequelize=require(_0x3a0c('0x0'));module[_0x3a0c('0x1')]={'name':{'type':Sequelize[_0x3a0c('0x2')]},'description':{'type':Sequelize[_0x3a0c('0x2')]},'ticketType':{'type':Sequelize[_0x3a0c('0x3')](_0x3a0c('0x4'),_0x3a0c('0x5')),'defaultValue':'incident'}};
\ No newline at end of file
+var _0xa686=['STRING','incident','phonecall'];(function(_0x501fa8,_0x39a55c){var _0x304929=function(_0xae3cdf){while(--_0xae3cdf){_0x501fa8['push'](_0x501fa8['shift']());}};_0x304929(++_0x39a55c);}(_0xa686,0x1dd));var _0x6a68=function(_0x4993ca,_0x445137){_0x4993ca=_0x4993ca-0x0;var _0x12dced=_0xa686[_0x4993ca];return _0x12dced;};'use strict';var Sequelize=require('sequelize');module['exports']={'name':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0x6a68('0x0')]},'ticketType':{'type':Sequelize['ENUM'](_0x6a68('0x1'),_0x6a68('0x2')),'defaultValue':_0x6a68('0x1')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2472=['save','then','destroy','error','index','map','Dynamics365Configuration','rawAttributes','type','key','name','query','keys','filters','model','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','pick','filter','merge','VIRTUAL','options','where','includeAll','include','findAll','rows','catch','find','body','update','params','findOne','getFields','getSubjects','getDescriptions','Dynamics365Field','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','fs-extra','lodash','squel','jsforce','desk.js','to-csv','querystring','papaparse','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','limit','undefined','count','set','Content-Range','json','apply','reject'];(function(_0x2e38d8,_0x1b20eb){var _0x582982=function(_0x59dd05){while(--_0x59dd05){_0x2e38d8['push'](_0x2e38d8['shift']());}};_0x582982(++_0x1b20eb);}(_0x2472,0xc9));var _0x2247=function(_0x5ceba1,_0xf9d78f){_0x5ceba1=_0x5ceba1-0x0;var _0x366c34=_0x2472[_0x5ceba1];return _0x366c34;};'use strict';var emlformat=require(_0x2247('0x0'));var rimraf=require(_0x2247('0x1'));var zipdir=require(_0x2247('0x2'));var jsonpatch=require(_0x2247('0x3'));var rp=require('request-promise');var moment=require(_0x2247('0x4'));var BPromise=require(_0x2247('0x5'));var Mustache=require(_0x2247('0x6'));var util=require(_0x2247('0x7'));var path=require(_0x2247('0x8'));var sox=require('sox');var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x2247('0x9'));var _=require(_0x2247('0xa'));var squel=require(_0x2247('0xb'));var crypto=require('crypto');var jsforce=require(_0x2247('0xc'));var deskjs=require(_0x2247('0xd'));var toCsv=require(_0x2247('0xe'));var querystring=require(_0x2247('0xf'));var Papa=require(_0x2247('0x10'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x2247('0x11'));var hardwareService=require(_0x2247('0x12'));var logger=require('../../config/logger')(_0x2247('0x13'));var utils=require(_0x2247('0x14'));var config=require(_0x2247('0x15'));var licenseUtil=require(_0x2247('0x16'));var db=require(_0x2247('0x17'))['db'];function respondWithStatusCode(_0x1f2b5e,_0x4ef346){_0x4ef346=_0x4ef346||0xcc;return function(_0x576b24){if(_0x576b24){return _0x1f2b5e[_0x2247('0x18')](_0x4ef346);}return _0x1f2b5e[_0x2247('0x19')](_0x4ef346)[_0x2247('0x1a')]();};}function respondWithResult(_0x1a6da8,_0x20b0a7){_0x20b0a7=_0x20b0a7||0xc8;return function(_0x4f594b){if(_0x4f594b){return _0x1a6da8[_0x2247('0x19')](_0x20b0a7)['json'](_0x4f594b);}};}function respondWithFilteredResult(_0x13bcd8,_0x27b323){return function(_0x55e680){if(_0x55e680){var _0x2d3cdb=typeof _0x27b323[_0x2247('0x1b')]==='undefined'&&typeof _0x27b323[_0x2247('0x1c')]===_0x2247('0x1d');var _0x2c3330=_0x55e680[_0x2247('0x1e')];var _0x5e51fc=_0x2d3cdb?0x0:_0x27b323[_0x2247('0x1b')];var _0x24259a=_0x2d3cdb?_0x55e680[_0x2247('0x1e')]:_0x27b323['offset']+_0x27b323[_0x2247('0x1c')];var _0x163ece;if(_0x24259a>=_0x2c3330){_0x24259a=_0x2c3330;_0x163ece=0xc8;}else{_0x163ece=0xce;}_0x13bcd8[_0x2247('0x19')](_0x163ece);return _0x13bcd8[_0x2247('0x1f')](_0x2247('0x20'),_0x5e51fc+'-'+_0x24259a+'/'+_0x2c3330)[_0x2247('0x21')](_0x55e680);}return null;};}function patchUpdates(_0x17aea5){return function(_0x2590a5){try{jsonpatch[_0x2247('0x22')](_0x2590a5,_0x17aea5,!![]);}catch(_0x181587){return BPromise[_0x2247('0x23')](_0x181587);}return _0x2590a5[_0x2247('0x24')]();};}function saveUpdates(_0x2258ea,_0x423fd5){return function(_0x2f8961){if(_0x2f8961){return _0x2f8961['update'](_0x2258ea)[_0x2247('0x25')](function(_0x3ab84c){return _0x3ab84c;});}return null;};}function removeEntity(_0x2da11c,_0x34c527){return function(_0x36110c){if(_0x36110c){return _0x36110c[_0x2247('0x26')]()[_0x2247('0x25')](function(){_0x2da11c['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0xd6f03b,_0x983f9e){return function(_0x3507e3){if(!_0x3507e3){_0xd6f03b[_0x2247('0x18')](0x194);}return _0x3507e3;};}function handleError(_0x5b2adc,_0x559c6a){_0x559c6a=_0x559c6a||0x1f4;return function(_0x2d2740){logger[_0x2247('0x27')](_0x2d2740['stack']);if(_0x2d2740['name']){delete _0x2d2740['name'];}_0x5b2adc['status'](_0x559c6a)['send'](_0x2d2740);};}exports[_0x2247('0x28')]=function(_0x3cdecf,_0x53dd66){var _0x28d2da={},_0x347827={},_0x2723f0={'count':0x0,'rows':[]};var _0x54d074=_[_0x2247('0x29')](db[_0x2247('0x2a')][_0x2247('0x2b')],function(_0x1e2fbd){return{'name':_0x1e2fbd['fieldName'],'type':_0x1e2fbd[_0x2247('0x2c')][_0x2247('0x2d')]};});_0x347827['model']=_[_0x2247('0x29')](_0x54d074,_0x2247('0x2e'));_0x347827[_0x2247('0x2f')]=_[_0x2247('0x30')](_0x3cdecf[_0x2247('0x2f')]);_0x347827[_0x2247('0x31')]=_['intersection'](_0x347827[_0x2247('0x32')],_0x347827['query']);_0x28d2da[_0x2247('0x33')]=_[_0x2247('0x34')](_0x347827[_0x2247('0x32')],qs['fields'](_0x3cdecf['query'][_0x2247('0x35')]));_0x28d2da[_0x2247('0x33')]=_0x28d2da[_0x2247('0x33')][_0x2247('0x36')]?_0x28d2da[_0x2247('0x33')]:_0x347827['model'];if(!_0x3cdecf['query'][_0x2247('0x37')](_0x2247('0x38'))){_0x28d2da[_0x2247('0x1c')]=qs['limit'](_0x3cdecf[_0x2247('0x2f')][_0x2247('0x1c')]);_0x28d2da['offset']=qs[_0x2247('0x1b')](_0x3cdecf['query'][_0x2247('0x1b')]);}_0x28d2da[_0x2247('0x39')]=qs[_0x2247('0x3a')](_0x3cdecf[_0x2247('0x2f')][_0x2247('0x3a')]);_0x28d2da['where']=qs[_0x2247('0x31')](_[_0x2247('0x3b')](_0x3cdecf['query'],_0x347827['filters']),_0x54d074);if(_0x3cdecf[_0x2247('0x2f')][_0x2247('0x3c')]){_0x28d2da['where']=_[_0x2247('0x3d')](_0x28d2da['where'],{'$or':_['map'](_0x54d074,function(_0x315bad){if(_0x315bad['type']!==_0x2247('0x3e')){var _0x52ac67={};_0x52ac67[_0x315bad['name']]={'$like':'%'+_0x3cdecf[_0x2247('0x2f')][_0x2247('0x3c')]+'%'};return _0x52ac67;}})});}_0x28d2da=_[_0x2247('0x3d')]({},_0x28d2da,_0x3cdecf[_0x2247('0x3f')]);var _0xd3cd90={'where':_0x28d2da[_0x2247('0x40')]};return db[_0x2247('0x2a')][_0x2247('0x1e')](_0xd3cd90)[_0x2247('0x25')](function(_0x22ca05){_0x2723f0[_0x2247('0x1e')]=_0x22ca05;if(_0x3cdecf[_0x2247('0x2f')][_0x2247('0x41')]){_0x28d2da[_0x2247('0x42')]=[{'all':!![]}];}return db['Dynamics365Configuration'][_0x2247('0x43')](_0x28d2da);})[_0x2247('0x25')](function(_0x41f41b){_0x2723f0[_0x2247('0x44')]=_0x41f41b;return _0x2723f0;})[_0x2247('0x25')](respondWithFilteredResult(_0x53dd66,_0x28d2da))[_0x2247('0x45')](handleError(_0x53dd66,null));};exports['show']=function(_0x4b2d86,_0x140729){var _0x1eb8e5={'raw':![],'where':{'id':_0x4b2d86['params']['id']}},_0x39b81a={};_0x39b81a[_0x2247('0x32')]=_[_0x2247('0x30')](db['Dynamics365Configuration']['rawAttributes']);_0x39b81a[_0x2247('0x2f')]=_[_0x2247('0x30')](_0x4b2d86['query']);_0x39b81a[_0x2247('0x31')]=_[_0x2247('0x34')](_0x39b81a['model'],_0x39b81a['query']);_0x1eb8e5[_0x2247('0x33')]=_[_0x2247('0x34')](_0x39b81a[_0x2247('0x32')],qs['fields'](_0x4b2d86['query'][_0x2247('0x35')]));_0x1eb8e5[_0x2247('0x33')]=_0x1eb8e5[_0x2247('0x33')][_0x2247('0x36')]?_0x1eb8e5['attributes']:_0x39b81a[_0x2247('0x32')];if(_0x4b2d86[_0x2247('0x2f')][_0x2247('0x41')]){_0x1eb8e5[_0x2247('0x42')]=[{'all':!![]}];}_0x1eb8e5=_[_0x2247('0x3d')]({},_0x1eb8e5,_0x4b2d86[_0x2247('0x3f')]);return db[_0x2247('0x2a')][_0x2247('0x46')](_0x1eb8e5)['then'](handleEntityNotFound(_0x140729,null))[_0x2247('0x25')](respondWithResult(_0x140729,null))['catch'](handleError(_0x140729,null));};exports['create']=function(_0x5002ee,_0x3d761a){return db[_0x2247('0x2a')]['create'](_0x5002ee[_0x2247('0x47')],{})[_0x2247('0x25')](respondWithResult(_0x3d761a,0xc9))[_0x2247('0x45')](handleError(_0x3d761a,null));};exports[_0x2247('0x48')]=function(_0x231501,_0x1e4240){if(_0x231501[_0x2247('0x47')]['id']){delete _0x231501[_0x2247('0x47')]['id'];}return db[_0x2247('0x2a')][_0x2247('0x46')]({'where':{'id':_0x231501[_0x2247('0x49')]['id']}})['then'](handleEntityNotFound(_0x1e4240,null))[_0x2247('0x25')](saveUpdates(_0x231501[_0x2247('0x47')],null))[_0x2247('0x25')](respondWithResult(_0x1e4240,null))[_0x2247('0x45')](handleError(_0x1e4240,null));};exports['destroy']=function(_0x36bbc6,_0x3e99b2){return db['Dynamics365Configuration'][_0x2247('0x46')]({'where':{'id':_0x36bbc6[_0x2247('0x49')]['id']}})[_0x2247('0x25')](handleEntityNotFound(_0x3e99b2,null))[_0x2247('0x25')](removeEntity(_0x3e99b2,null))['catch'](handleError(_0x3e99b2,null));};exports['getFields']=function(_0x5c5e97,_0x52d1b0,_0x5515ec){var _0x49b54b={};var _0x4e9d90={};var _0x2822f0;var _0x57bb47;return db['Dynamics365Configuration'][_0x2247('0x4a')]({'where':{'id':_0x5c5e97[_0x2247('0x49')]['id']}})[_0x2247('0x25')](handleEntityNotFound(_0x52d1b0,null))[_0x2247('0x25')](function(_0x48039f){if(_0x48039f){_0x2822f0=_0x48039f;_0x4e9d90[_0x2247('0x32')]=_[_0x2247('0x30')](db['Dynamics365Field'][_0x2247('0x2b')]);_0x4e9d90[_0x2247('0x2f')]=_[_0x2247('0x30')](_0x5c5e97[_0x2247('0x2f')]);_0x4e9d90['filters']=_['intersection'](_0x4e9d90[_0x2247('0x32')],_0x4e9d90['query']);_0x49b54b[_0x2247('0x33')]=_[_0x2247('0x34')](_0x4e9d90[_0x2247('0x32')],qs['fields'](_0x5c5e97['query'][_0x2247('0x35')]));_0x49b54b[_0x2247('0x33')]=_0x49b54b[_0x2247('0x33')][_0x2247('0x36')]?_0x49b54b[_0x2247('0x33')]:_0x4e9d90[_0x2247('0x32')];_0x49b54b[_0x2247('0x39')]=qs['sort'](_0x5c5e97['query'][_0x2247('0x3a')]);_0x49b54b[_0x2247('0x40')]=qs[_0x2247('0x31')](_[_0x2247('0x3b')](_0x5c5e97[_0x2247('0x2f')],_0x4e9d90[_0x2247('0x31')]));if(_0x5c5e97[_0x2247('0x2f')]['filter']){_0x49b54b[_0x2247('0x40')]=_[_0x2247('0x3d')](_0x49b54b[_0x2247('0x40')],{'$or':_[_0x2247('0x29')](_0x49b54b[_0x2247('0x33')],function(_0x2d47f0){var _0x4d345c={};_0x4d345c[_0x2d47f0]={'$like':'%'+_0x5c5e97[_0x2247('0x2f')][_0x2247('0x3c')]+'%'};return _0x4d345c;})});}_0x49b54b=_[_0x2247('0x3d')]({},_0x49b54b,_0x5c5e97[_0x2247('0x3f')]);return _0x2822f0['getFields'](_0x49b54b);}})[_0x2247('0x25')](function(_0x44f120){if(_0x44f120){_0x57bb47=_0x44f120[_0x2247('0x36')];if(!_0x5c5e97['query'][_0x2247('0x37')]('nolimit')){_0x49b54b[_0x2247('0x1c')]=qs[_0x2247('0x1c')](_0x5c5e97[_0x2247('0x2f')][_0x2247('0x1c')]);_0x49b54b['offset']=qs['offset'](_0x5c5e97[_0x2247('0x2f')][_0x2247('0x1b')]);}return _0x2822f0[_0x2247('0x4b')](_0x49b54b);}})[_0x2247('0x25')](function(_0x479886){if(_0x479886){return _0x479886?{'count':_0x57bb47,'rows':_0x479886}:null;}})[_0x2247('0x25')](respondWithResult(_0x52d1b0,null))[_0x2247('0x45')](handleError(_0x52d1b0,null));};exports[_0x2247('0x4c')]=function(_0x27b4e6,_0x370d9e,_0x32566e){var _0x1b4656={};var _0x179214={};var _0x379ae1;var _0x26b559;return db[_0x2247('0x2a')][_0x2247('0x4a')]({'where':{'id':_0x27b4e6['params']['id']}})['then'](handleEntityNotFound(_0x370d9e,null))[_0x2247('0x25')](function(_0x13a16b){if(_0x13a16b){_0x379ae1=_0x13a16b;_0x179214['model']=_[_0x2247('0x30')](db['Dynamics365Field'][_0x2247('0x2b')]);_0x179214[_0x2247('0x2f')]=_[_0x2247('0x30')](_0x27b4e6['query']);_0x179214['filters']=_[_0x2247('0x34')](_0x179214[_0x2247('0x32')],_0x179214['query']);_0x1b4656[_0x2247('0x33')]=_['intersection'](_0x179214[_0x2247('0x32')],qs['fields'](_0x27b4e6['query'][_0x2247('0x35')]));_0x1b4656[_0x2247('0x33')]=_0x1b4656[_0x2247('0x33')][_0x2247('0x36')]?_0x1b4656[_0x2247('0x33')]:_0x179214[_0x2247('0x32')];_0x1b4656[_0x2247('0x39')]=qs['sort'](_0x27b4e6[_0x2247('0x2f')][_0x2247('0x3a')]);_0x1b4656[_0x2247('0x40')]=qs[_0x2247('0x31')](_[_0x2247('0x3b')](_0x27b4e6[_0x2247('0x2f')],_0x179214['filters']));if(_0x27b4e6[_0x2247('0x2f')][_0x2247('0x3c')]){_0x1b4656['where']=_['merge'](_0x1b4656['where'],{'$or':_['map'](_0x1b4656[_0x2247('0x33')],function(_0x5c57d9){var _0x1f3fd2={};_0x1f3fd2[_0x5c57d9]={'$like':'%'+_0x27b4e6[_0x2247('0x2f')][_0x2247('0x3c')]+'%'};return _0x1f3fd2;})});}_0x1b4656=_[_0x2247('0x3d')]({},_0x1b4656,_0x27b4e6['options']);return _0x379ae1['getSubjects'](_0x1b4656);}})[_0x2247('0x25')](function(_0x318712){if(_0x318712){_0x26b559=_0x318712[_0x2247('0x36')];if(!_0x27b4e6[_0x2247('0x2f')][_0x2247('0x37')](_0x2247('0x38'))){_0x1b4656[_0x2247('0x1c')]=qs['limit'](_0x27b4e6[_0x2247('0x2f')]['limit']);_0x1b4656['offset']=qs['offset'](_0x27b4e6[_0x2247('0x2f')][_0x2247('0x1b')]);}return _0x379ae1[_0x2247('0x4c')](_0x1b4656);}})[_0x2247('0x25')](function(_0x8dcc6f){if(_0x8dcc6f){return _0x8dcc6f?{'count':_0x26b559,'rows':_0x8dcc6f}:null;}})[_0x2247('0x25')](respondWithResult(_0x370d9e,null))['catch'](handleError(_0x370d9e,null));};exports[_0x2247('0x4d')]=function(_0x369f5e,_0x108bb0,_0x17c03c){var _0x4cae68={};var _0x2f0d6a={};var _0x214d33;var _0x5750f2;return db[_0x2247('0x2a')][_0x2247('0x4a')]({'where':{'id':_0x369f5e['params']['id']}})[_0x2247('0x25')](handleEntityNotFound(_0x108bb0,null))[_0x2247('0x25')](function(_0x281f86){if(_0x281f86){_0x214d33=_0x281f86;_0x2f0d6a[_0x2247('0x32')]=_['keys'](db[_0x2247('0x4e')][_0x2247('0x2b')]);_0x2f0d6a[_0x2247('0x2f')]=_[_0x2247('0x30')](_0x369f5e[_0x2247('0x2f')]);_0x2f0d6a['filters']=_[_0x2247('0x34')](_0x2f0d6a[_0x2247('0x32')],_0x2f0d6a[_0x2247('0x2f')]);_0x4cae68[_0x2247('0x33')]=_[_0x2247('0x34')](_0x2f0d6a[_0x2247('0x32')],qs[_0x2247('0x35')](_0x369f5e[_0x2247('0x2f')]['fields']));_0x4cae68[_0x2247('0x33')]=_0x4cae68[_0x2247('0x33')]['length']?_0x4cae68[_0x2247('0x33')]:_0x2f0d6a[_0x2247('0x32')];_0x4cae68[_0x2247('0x39')]=qs[_0x2247('0x3a')](_0x369f5e['query'][_0x2247('0x3a')]);_0x4cae68[_0x2247('0x40')]=qs[_0x2247('0x31')](_[_0x2247('0x3b')](_0x369f5e[_0x2247('0x2f')],_0x2f0d6a['filters']));if(_0x369f5e['query']['filter']){_0x4cae68['where']=_['merge'](_0x4cae68[_0x2247('0x40')],{'$or':_[_0x2247('0x29')](_0x4cae68['attributes'],function(_0x5b3f65){var _0x4b44b8={};_0x4b44b8[_0x5b3f65]={'$like':'%'+_0x369f5e[_0x2247('0x2f')][_0x2247('0x3c')]+'%'};return _0x4b44b8;})});}_0x4cae68=_[_0x2247('0x3d')]({},_0x4cae68,_0x369f5e[_0x2247('0x3f')]);return _0x214d33[_0x2247('0x4d')](_0x4cae68);}})[_0x2247('0x25')](function(_0x4320b0){if(_0x4320b0){_0x5750f2=_0x4320b0[_0x2247('0x36')];if(!_0x369f5e[_0x2247('0x2f')]['hasOwnProperty'](_0x2247('0x38'))){_0x4cae68[_0x2247('0x1c')]=qs[_0x2247('0x1c')](_0x369f5e['query'][_0x2247('0x1c')]);_0x4cae68['offset']=qs[_0x2247('0x1b')](_0x369f5e[_0x2247('0x2f')][_0x2247('0x1b')]);}return _0x214d33[_0x2247('0x4d')](_0x4cae68);}})[_0x2247('0x25')](function(_0x493091){if(_0x493091){return _0x493091?{'count':_0x5750f2,'rows':_0x493091}:null;}})[_0x2247('0x25')](respondWithResult(_0x108bb0,null))[_0x2247('0x45')](handleError(_0x108bb0,null));};
\ No newline at end of file
+var _0x5133=['destroy','error','stack','name','send','index','Dynamics365Configuration','rawAttributes','fieldName','type','model','map','query','filters','attributes','intersection','fields','length','nolimit','order','sort','pick','merge','where','VIRTUAL','filter','includeAll','include','findAll','rows','catch','show','keys','options','create','body','find','params','getFields','findOne','Dynamics365Field','hasOwnProperty','getSubjects','getDescriptions','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','count','limit','set','apply','save','update','then'];(function(_0xcef819,_0x418574){var _0x24010b=function(_0xc95fdb){while(--_0xc95fdb){_0xcef819['push'](_0xcef819['shift']());}};_0x24010b(++_0x418574);}(_0x5133,0x11c));var _0x3513=function(_0x1cc8ac,_0x55bdd4){_0x1cc8ac=_0x1cc8ac-0x0;var _0x1428b7=_0x5133[_0x1cc8ac];return _0x1428b7;};'use strict';var emlformat=require(_0x3513('0x0'));var rimraf=require(_0x3513('0x1'));var zipdir=require(_0x3513('0x2'));var jsonpatch=require(_0x3513('0x3'));var rp=require(_0x3513('0x4'));var moment=require(_0x3513('0x5'));var BPromise=require(_0x3513('0x6'));var Mustache=require(_0x3513('0x7'));var util=require('util');var path=require('path');var sox=require('sox');var csv=require(_0x3513('0x8'));var ejs=require(_0x3513('0x9'));var fs=require('fs');var fs_extra=require(_0x3513('0xa'));var _=require(_0x3513('0xb'));var squel=require('squel');var crypto=require(_0x3513('0xc'));var jsforce=require(_0x3513('0xd'));var deskjs=require(_0x3513('0xe'));var toCsv=require(_0x3513('0x8'));var querystring=require(_0x3513('0xf'));var Papa=require(_0x3513('0x10'));var Redis=require('ioredis');var authService=require(_0x3513('0x11'));var qs=require(_0x3513('0x12'));var as=require(_0x3513('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')('api');var utils=require(_0x3513('0x14'));var config=require(_0x3513('0x15'));var licenseUtil=require(_0x3513('0x16'));var db=require(_0x3513('0x17'))['db'];function respondWithStatusCode(_0x3a88bb,_0x2c28bd){_0x2c28bd=_0x2c28bd||0xcc;return function(_0x493738){if(_0x493738){return _0x3a88bb[_0x3513('0x18')](_0x2c28bd);}return _0x3a88bb[_0x3513('0x19')](_0x2c28bd)['end']();};}function respondWithResult(_0x3627a9,_0x32a01f){_0x32a01f=_0x32a01f||0xc8;return function(_0x449ffc){if(_0x449ffc){return _0x3627a9[_0x3513('0x19')](_0x32a01f)[_0x3513('0x1a')](_0x449ffc);}};}function respondWithFilteredResult(_0x14165d,_0x54345a){return function(_0x487519){if(_0x487519){var _0x5eed4e=typeof _0x54345a[_0x3513('0x1b')]===_0x3513('0x1c')&&typeof _0x54345a['limit']===_0x3513('0x1c');var _0x4aa217=_0x487519[_0x3513('0x1d')];var _0x27e844=_0x5eed4e?0x0:_0x54345a[_0x3513('0x1b')];var _0x2e96ee=_0x5eed4e?_0x487519[_0x3513('0x1d')]:_0x54345a[_0x3513('0x1b')]+_0x54345a[_0x3513('0x1e')];var _0x2c566c;if(_0x2e96ee>=_0x4aa217){_0x2e96ee=_0x4aa217;_0x2c566c=0xc8;}else{_0x2c566c=0xce;}_0x14165d['status'](_0x2c566c);return _0x14165d[_0x3513('0x1f')]('Content-Range',_0x27e844+'-'+_0x2e96ee+'/'+_0x4aa217)[_0x3513('0x1a')](_0x487519);}return null;};}function patchUpdates(_0x5a068d){return function(_0x574cc9){try{jsonpatch[_0x3513('0x20')](_0x574cc9,_0x5a068d,!![]);}catch(_0x2b57ea){return BPromise['reject'](_0x2b57ea);}return _0x574cc9[_0x3513('0x21')]();};}function saveUpdates(_0x143162,_0x223e43){return function(_0x3bc5aa){if(_0x3bc5aa){return _0x3bc5aa[_0x3513('0x22')](_0x143162)[_0x3513('0x23')](function(_0x2700ae){return _0x2700ae;});}return null;};}function removeEntity(_0x367303,_0x121937){return function(_0x2e128b){if(_0x2e128b){return _0x2e128b[_0x3513('0x24')]()['then'](function(){_0x367303[_0x3513('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x5084fa,_0x5058cb){return function(_0x407647){if(!_0x407647){_0x5084fa[_0x3513('0x18')](0x194);}return _0x407647;};}function handleError(_0x1827b2,_0x11ab2b){_0x11ab2b=_0x11ab2b||0x1f4;return function(_0x107a81){logger[_0x3513('0x25')](_0x107a81[_0x3513('0x26')]);if(_0x107a81[_0x3513('0x27')]){delete _0x107a81['name'];}_0x1827b2[_0x3513('0x19')](_0x11ab2b)[_0x3513('0x28')](_0x107a81);};}exports[_0x3513('0x29')]=function(_0x8afd09,_0xbda324){var _0x270a2e={},_0x556151={},_0x59a2b0={'count':0x0,'rows':[]};var _0xa8411a=_['map'](db[_0x3513('0x2a')][_0x3513('0x2b')],function(_0x48d4b2){return{'name':_0x48d4b2[_0x3513('0x2c')],'type':_0x48d4b2[_0x3513('0x2d')]['key']};});_0x556151[_0x3513('0x2e')]=_[_0x3513('0x2f')](_0xa8411a,_0x3513('0x27'));_0x556151[_0x3513('0x30')]=_['keys'](_0x8afd09['query']);_0x556151[_0x3513('0x31')]=_['intersection'](_0x556151[_0x3513('0x2e')],_0x556151[_0x3513('0x30')]);_0x270a2e[_0x3513('0x32')]=_[_0x3513('0x33')](_0x556151[_0x3513('0x2e')],qs[_0x3513('0x34')](_0x8afd09['query'][_0x3513('0x34')]));_0x270a2e[_0x3513('0x32')]=_0x270a2e[_0x3513('0x32')][_0x3513('0x35')]?_0x270a2e[_0x3513('0x32')]:_0x556151[_0x3513('0x2e')];if(!_0x8afd09[_0x3513('0x30')]['hasOwnProperty'](_0x3513('0x36'))){_0x270a2e[_0x3513('0x1e')]=qs[_0x3513('0x1e')](_0x8afd09[_0x3513('0x30')][_0x3513('0x1e')]);_0x270a2e[_0x3513('0x1b')]=qs[_0x3513('0x1b')](_0x8afd09['query']['offset']);}_0x270a2e[_0x3513('0x37')]=qs[_0x3513('0x38')](_0x8afd09['query']['sort']);_0x270a2e['where']=qs[_0x3513('0x31')](_[_0x3513('0x39')](_0x8afd09[_0x3513('0x30')],_0x556151[_0x3513('0x31')]),_0xa8411a);if(_0x8afd09['query']['filter']){_0x270a2e['where']=_[_0x3513('0x3a')](_0x270a2e[_0x3513('0x3b')],{'$or':_['map'](_0xa8411a,function(_0x43a0b1){if(_0x43a0b1[_0x3513('0x2d')]!==_0x3513('0x3c')){var _0x257467={};_0x257467[_0x43a0b1[_0x3513('0x27')]]={'$like':'%'+_0x8afd09['query'][_0x3513('0x3d')]+'%'};return _0x257467;}})});}_0x270a2e=_[_0x3513('0x3a')]({},_0x270a2e,_0x8afd09['options']);var _0x3a2f57={'where':_0x270a2e[_0x3513('0x3b')]};return db[_0x3513('0x2a')]['count'](_0x3a2f57)['then'](function(_0x52f580){_0x59a2b0[_0x3513('0x1d')]=_0x52f580;if(_0x8afd09[_0x3513('0x30')][_0x3513('0x3e')]){_0x270a2e[_0x3513('0x3f')]=[{'all':!![]}];}return db[_0x3513('0x2a')][_0x3513('0x40')](_0x270a2e);})['then'](function(_0x1caced){_0x59a2b0[_0x3513('0x41')]=_0x1caced;return _0x59a2b0;})['then'](respondWithFilteredResult(_0xbda324,_0x270a2e))[_0x3513('0x42')](handleError(_0xbda324,null));};exports[_0x3513('0x43')]=function(_0xdc27ca,_0x929ac3){var _0x264d08={'raw':![],'where':{'id':_0xdc27ca['params']['id']}},_0x257fac={};_0x257fac['model']=_[_0x3513('0x44')](db[_0x3513('0x2a')]['rawAttributes']);_0x257fac[_0x3513('0x30')]=_[_0x3513('0x44')](_0xdc27ca['query']);_0x257fac[_0x3513('0x31')]=_[_0x3513('0x33')](_0x257fac['model'],_0x257fac[_0x3513('0x30')]);_0x264d08['attributes']=_[_0x3513('0x33')](_0x257fac['model'],qs['fields'](_0xdc27ca['query'][_0x3513('0x34')]));_0x264d08[_0x3513('0x32')]=_0x264d08[_0x3513('0x32')][_0x3513('0x35')]?_0x264d08[_0x3513('0x32')]:_0x257fac['model'];if(_0xdc27ca[_0x3513('0x30')][_0x3513('0x3e')]){_0x264d08[_0x3513('0x3f')]=[{'all':!![]}];}_0x264d08=_[_0x3513('0x3a')]({},_0x264d08,_0xdc27ca[_0x3513('0x45')]);return db[_0x3513('0x2a')]['find'](_0x264d08)[_0x3513('0x23')](handleEntityNotFound(_0x929ac3,null))[_0x3513('0x23')](respondWithResult(_0x929ac3,null))[_0x3513('0x42')](handleError(_0x929ac3,null));};exports['create']=function(_0x4c06b8,_0x2aec2d){return db[_0x3513('0x2a')][_0x3513('0x46')](_0x4c06b8[_0x3513('0x47')],{})[_0x3513('0x23')](respondWithResult(_0x2aec2d,0xc9))[_0x3513('0x42')](handleError(_0x2aec2d,null));};exports[_0x3513('0x22')]=function(_0x2268fd,_0x141cc8){if(_0x2268fd[_0x3513('0x47')]['id']){delete _0x2268fd[_0x3513('0x47')]['id'];}return db[_0x3513('0x2a')][_0x3513('0x48')]({'where':{'id':_0x2268fd['params']['id']}})[_0x3513('0x23')](handleEntityNotFound(_0x141cc8,null))[_0x3513('0x23')](saveUpdates(_0x2268fd[_0x3513('0x47')],null))[_0x3513('0x23')](respondWithResult(_0x141cc8,null))[_0x3513('0x42')](handleError(_0x141cc8,null));};exports[_0x3513('0x24')]=function(_0x383876,_0x1c2fba){return db[_0x3513('0x2a')][_0x3513('0x48')]({'where':{'id':_0x383876[_0x3513('0x49')]['id']}})['then'](handleEntityNotFound(_0x1c2fba,null))[_0x3513('0x23')](removeEntity(_0x1c2fba,null))[_0x3513('0x42')](handleError(_0x1c2fba,null));};exports[_0x3513('0x4a')]=function(_0x5c63ef,_0x10b80c,_0x19e58b){var _0xdf4390={};var _0x25be1d={};var _0x2603e2;var _0xf48ee8;return db[_0x3513('0x2a')][_0x3513('0x4b')]({'where':{'id':_0x5c63ef[_0x3513('0x49')]['id']}})[_0x3513('0x23')](handleEntityNotFound(_0x10b80c,null))[_0x3513('0x23')](function(_0x46a34f){if(_0x46a34f){_0x2603e2=_0x46a34f;_0x25be1d['model']=_['keys'](db[_0x3513('0x4c')][_0x3513('0x2b')]);_0x25be1d[_0x3513('0x30')]=_[_0x3513('0x44')](_0x5c63ef[_0x3513('0x30')]);_0x25be1d['filters']=_['intersection'](_0x25be1d['model'],_0x25be1d[_0x3513('0x30')]);_0xdf4390[_0x3513('0x32')]=_[_0x3513('0x33')](_0x25be1d['model'],qs[_0x3513('0x34')](_0x5c63ef[_0x3513('0x30')][_0x3513('0x34')]));_0xdf4390[_0x3513('0x32')]=_0xdf4390[_0x3513('0x32')][_0x3513('0x35')]?_0xdf4390[_0x3513('0x32')]:_0x25be1d[_0x3513('0x2e')];_0xdf4390[_0x3513('0x37')]=qs['sort'](_0x5c63ef[_0x3513('0x30')][_0x3513('0x38')]);_0xdf4390[_0x3513('0x3b')]=qs['filters'](_['pick'](_0x5c63ef[_0x3513('0x30')],_0x25be1d[_0x3513('0x31')]));if(_0x5c63ef['query'][_0x3513('0x3d')]){_0xdf4390[_0x3513('0x3b')]=_[_0x3513('0x3a')](_0xdf4390[_0x3513('0x3b')],{'$or':_[_0x3513('0x2f')](_0xdf4390['attributes'],function(_0x982c40){var _0x539e65={};_0x539e65[_0x982c40]={'$like':'%'+_0x5c63ef[_0x3513('0x30')][_0x3513('0x3d')]+'%'};return _0x539e65;})});}_0xdf4390=_[_0x3513('0x3a')]({},_0xdf4390,_0x5c63ef['options']);return _0x2603e2[_0x3513('0x4a')](_0xdf4390);}})[_0x3513('0x23')](function(_0x1cb394){if(_0x1cb394){_0xf48ee8=_0x1cb394[_0x3513('0x35')];if(!_0x5c63ef[_0x3513('0x30')][_0x3513('0x4d')](_0x3513('0x36'))){_0xdf4390[_0x3513('0x1e')]=qs[_0x3513('0x1e')](_0x5c63ef[_0x3513('0x30')][_0x3513('0x1e')]);_0xdf4390[_0x3513('0x1b')]=qs[_0x3513('0x1b')](_0x5c63ef[_0x3513('0x30')]['offset']);}return _0x2603e2[_0x3513('0x4a')](_0xdf4390);}})['then'](function(_0x2bc6a1){if(_0x2bc6a1){return _0x2bc6a1?{'count':_0xf48ee8,'rows':_0x2bc6a1}:null;}})[_0x3513('0x23')](respondWithResult(_0x10b80c,null))[_0x3513('0x42')](handleError(_0x10b80c,null));};exports['getSubjects']=function(_0x5e6e7b,_0x21ddf6,_0x170077){var _0x121993={};var _0x13ff44={};var _0x4b018c;var _0x41c372;return db[_0x3513('0x2a')]['findOne']({'where':{'id':_0x5e6e7b[_0x3513('0x49')]['id']}})[_0x3513('0x23')](handleEntityNotFound(_0x21ddf6,null))[_0x3513('0x23')](function(_0x130317){if(_0x130317){_0x4b018c=_0x130317;_0x13ff44['model']=_[_0x3513('0x44')](db[_0x3513('0x4c')][_0x3513('0x2b')]);_0x13ff44[_0x3513('0x30')]=_[_0x3513('0x44')](_0x5e6e7b['query']);_0x13ff44[_0x3513('0x31')]=_[_0x3513('0x33')](_0x13ff44[_0x3513('0x2e')],_0x13ff44[_0x3513('0x30')]);_0x121993[_0x3513('0x32')]=_[_0x3513('0x33')](_0x13ff44[_0x3513('0x2e')],qs[_0x3513('0x34')](_0x5e6e7b[_0x3513('0x30')][_0x3513('0x34')]));_0x121993[_0x3513('0x32')]=_0x121993['attributes'][_0x3513('0x35')]?_0x121993[_0x3513('0x32')]:_0x13ff44[_0x3513('0x2e')];_0x121993[_0x3513('0x37')]=qs[_0x3513('0x38')](_0x5e6e7b['query'][_0x3513('0x38')]);_0x121993['where']=qs['filters'](_[_0x3513('0x39')](_0x5e6e7b[_0x3513('0x30')],_0x13ff44['filters']));if(_0x5e6e7b[_0x3513('0x30')]['filter']){_0x121993['where']=_[_0x3513('0x3a')](_0x121993['where'],{'$or':_['map'](_0x121993[_0x3513('0x32')],function(_0x3020b8){var _0x22c485={};_0x22c485[_0x3020b8]={'$like':'%'+_0x5e6e7b['query'][_0x3513('0x3d')]+'%'};return _0x22c485;})});}_0x121993=_[_0x3513('0x3a')]({},_0x121993,_0x5e6e7b['options']);return _0x4b018c[_0x3513('0x4e')](_0x121993);}})[_0x3513('0x23')](function(_0x2a8f8a){if(_0x2a8f8a){_0x41c372=_0x2a8f8a[_0x3513('0x35')];if(!_0x5e6e7b[_0x3513('0x30')][_0x3513('0x4d')]('nolimit')){_0x121993['limit']=qs[_0x3513('0x1e')](_0x5e6e7b[_0x3513('0x30')][_0x3513('0x1e')]);_0x121993[_0x3513('0x1b')]=qs[_0x3513('0x1b')](_0x5e6e7b[_0x3513('0x30')]['offset']);}return _0x4b018c[_0x3513('0x4e')](_0x121993);}})['then'](function(_0x2f020f){if(_0x2f020f){return _0x2f020f?{'count':_0x41c372,'rows':_0x2f020f}:null;}})[_0x3513('0x23')](respondWithResult(_0x21ddf6,null))[_0x3513('0x42')](handleError(_0x21ddf6,null));};exports[_0x3513('0x4f')]=function(_0x24e709,_0x6a134b,_0x166aba){var _0x1d86a3={};var _0xfb1d7b={};var _0x2cbbe4;var _0x1416e3;return db['Dynamics365Configuration'][_0x3513('0x4b')]({'where':{'id':_0x24e709[_0x3513('0x49')]['id']}})[_0x3513('0x23')](handleEntityNotFound(_0x6a134b,null))['then'](function(_0x367768){if(_0x367768){_0x2cbbe4=_0x367768;_0xfb1d7b['model']=_['keys'](db[_0x3513('0x4c')][_0x3513('0x2b')]);_0xfb1d7b['query']=_[_0x3513('0x44')](_0x24e709[_0x3513('0x30')]);_0xfb1d7b['filters']=_['intersection'](_0xfb1d7b[_0x3513('0x2e')],_0xfb1d7b[_0x3513('0x30')]);_0x1d86a3[_0x3513('0x32')]=_[_0x3513('0x33')](_0xfb1d7b[_0x3513('0x2e')],qs['fields'](_0x24e709[_0x3513('0x30')]['fields']));_0x1d86a3[_0x3513('0x32')]=_0x1d86a3[_0x3513('0x32')][_0x3513('0x35')]?_0x1d86a3[_0x3513('0x32')]:_0xfb1d7b['model'];_0x1d86a3[_0x3513('0x37')]=qs[_0x3513('0x38')](_0x24e709[_0x3513('0x30')][_0x3513('0x38')]);_0x1d86a3['where']=qs[_0x3513('0x31')](_[_0x3513('0x39')](_0x24e709[_0x3513('0x30')],_0xfb1d7b[_0x3513('0x31')]));if(_0x24e709[_0x3513('0x30')][_0x3513('0x3d')]){_0x1d86a3[_0x3513('0x3b')]=_[_0x3513('0x3a')](_0x1d86a3[_0x3513('0x3b')],{'$or':_['map'](_0x1d86a3[_0x3513('0x32')],function(_0x4ce1aa){var _0xff109b={};_0xff109b[_0x4ce1aa]={'$like':'%'+_0x24e709[_0x3513('0x30')][_0x3513('0x3d')]+'%'};return _0xff109b;})});}_0x1d86a3=_[_0x3513('0x3a')]({},_0x1d86a3,_0x24e709[_0x3513('0x45')]);return _0x2cbbe4[_0x3513('0x4f')](_0x1d86a3);}})[_0x3513('0x23')](function(_0x74e384){if(_0x74e384){_0x1416e3=_0x74e384[_0x3513('0x35')];if(!_0x24e709[_0x3513('0x30')][_0x3513('0x4d')](_0x3513('0x36'))){_0x1d86a3[_0x3513('0x1e')]=qs[_0x3513('0x1e')](_0x24e709[_0x3513('0x30')]['limit']);_0x1d86a3[_0x3513('0x1b')]=qs['offset'](_0x24e709[_0x3513('0x30')][_0x3513('0x1b')]);}return _0x2cbbe4[_0x3513('0x4f')](_0x1d86a3);}})[_0x3513('0x23')](function(_0x38ad5e){if(_0x38ad5e){return _0x38ad5e?{'count':_0x1416e3,'rows':_0x38ad5e}:null;}})[_0x3513('0x23')](respondWithResult(_0x6a134b,null))[_0x3513('0x42')](handleError(_0x6a134b,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb43b=['rimraf','../../config/environment','./intDynamics365Configuration.attributes','Dynamics365Configuration','int_dynamics365_configurations','lodash','util','api','moment','bluebird','path'];(function(_0x33cc3b,_0x543e77){var _0x558083=function(_0x307907){while(--_0x307907){_0x33cc3b['push'](_0x33cc3b['shift']());}};_0x558083(++_0x543e77);}(_0xb43b,0x1b2));var _0xbb43=function(_0x4ca7e3,_0x5c8f70){_0x4ca7e3=_0x4ca7e3-0x0;var _0x426bed=_0xb43b[_0x4ca7e3];return _0x426bed;};'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 _0x8d0e=['define','Dynamics365Configuration','int_dynamics365_configurations','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','./intDynamics365Configuration.attributes'];(function(_0xb2dbe8,_0x1d6823){var _0x5217bd=function(_0x224862){while(--_0x224862){_0xb2dbe8['push'](_0xb2dbe8['shift']());}};_0x5217bd(++_0x1d6823);}(_0x8d0e,0x1d7));var _0xe8d0=function(_0x3f111f,_0x291103){_0x3f111f=_0x3f111f-0x0;var _0xf81196=_0x8d0e[_0x3f111f];return _0xf81196;};'use strict';var _=require(_0xe8d0('0x0'));var util=require(_0xe8d0('0x1'));var logger=require(_0xe8d0('0x2'))(_0xe8d0('0x3'));var moment=require(_0xe8d0('0x4'));var BPromise=require(_0xe8d0('0x5'));var rp=require(_0xe8d0('0x6'));var fs=require('fs');var path=require(_0xe8d0('0x7'));var rimraf=require(_0xe8d0('0x8'));var config=require('../../config/environment');var attributes=require(_0xe8d0('0x9'));module['exports']=function(_0x560dab,_0x2e2985){return _0x560dab[_0xe8d0('0xa')](_0xe8d0('0xb'),attributes,{'tableName':_0xe8d0('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbb5f=['jayson/promise','http','info','Dynamics365Configuration,\x20%s,\x20%s','request\x20sent','debug','Dynamics365Configuration,\x20%s,\x20%s,\x20%s','error','code','message','result','catch','util','moment','bluebird','randomstring','../../config/utils','../../config/logger'];(function(_0x4583b7,_0x238c66){var _0x1fef7e=function(_0x547e5b){while(--_0x547e5b){_0x4583b7['push'](_0x4583b7['shift']());}};_0x1fef7e(++_0x238c66);}(_0xbb5f,0x186));var _0xfbb5=function(_0x196fe0,_0x17dae7){_0x196fe0=_0x196fe0-0x0;var _0x4ca42a=_0xbb5f[_0x196fe0];return _0x4ca42a;};'use strict';var _=require('lodash');var util=require(_0xfbb5('0x0'));var moment=require(_0xfbb5('0x1'));var BPromise=require(_0xfbb5('0x2'));var rs=require(_0xfbb5('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0xfbb5('0x4'));var logger=require(_0xfbb5('0x5'))('rpc');var config=require('../../config/environment');var jayson=require(_0xfbb5('0x6'));var client=jayson['client'][_0xfbb5('0x7')]({'port':0x232a});function respondWithRpcPromise(_0x37c9e8,_0x54ef9e,_0x2508f8){return new BPromise(function(_0x77ee01,_0x20e392){return client['request'](_0x37c9e8,_0x2508f8)['then'](function(_0x50f825){logger[_0xfbb5('0x8')](_0xfbb5('0x9'),_0x54ef9e,_0xfbb5('0xa'));logger[_0xfbb5('0xb')](_0xfbb5('0xc'),_0x54ef9e,_0xfbb5('0xa'),JSON['stringify'](_0x50f825));if(_0x50f825[_0xfbb5('0xd')]){if(_0x50f825[_0xfbb5('0xd')][_0xfbb5('0xe')]===0x1f4){logger[_0xfbb5('0xd')](_0xfbb5('0x9'),_0x54ef9e,_0x50f825['error']['message']);return _0x20e392(_0x50f825['error'][_0xfbb5('0xf')]);}logger['error'](_0xfbb5('0x9'),_0x54ef9e,_0x50f825[_0xfbb5('0xd')][_0xfbb5('0xf')]);return _0x77ee01(_0x50f825[_0xfbb5('0xd')]['message']);}else{logger['info']('Dynamics365Configuration,\x20%s,\x20%s',_0x54ef9e,_0xfbb5('0xa'));_0x77ee01(_0x50f825[_0xfbb5('0x10')][_0xfbb5('0xf')]);}})[_0xfbb5('0x11')](function(_0x409045){logger[_0xfbb5('0xd')](_0xfbb5('0x9'),_0x54ef9e,_0x409045);_0x20e392(_0x409045);});});}
\ No newline at end of file
+var _0xd9e0=['../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','then','info','request\x20sent','debug','Dynamics365Configuration,\x20%s,\x20%s,\x20%s','error','message','Dynamics365Configuration,\x20%s,\x20%s','result','catch','moment','bluebird','randomstring'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xd9e0,0x1b6));var _0x0d9e=function(_0x2374eb,_0x554a1b){_0x2374eb=_0x2374eb-0x0;var _0x2ca417=_0xd9e0[_0x2374eb];return _0x2ca417;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0x0d9e('0x0'));var BPromise=require(_0x0d9e('0x1'));var rs=require(_0x0d9e('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x0d9e('0x3'))['db'];var utils=require(_0x0d9e('0x4'));var logger=require(_0x0d9e('0x5'))(_0x0d9e('0x6'));var config=require(_0x0d9e('0x7'));var jayson=require(_0x0d9e('0x8'));var client=jayson[_0x0d9e('0x9')][_0x0d9e('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x4815e1,_0xf2ca07,_0x5eda72){return new BPromise(function(_0x394daf,_0x4bc93c){return client['request'](_0x4815e1,_0x5eda72)[_0x0d9e('0xb')](function(_0x1b420b){logger[_0x0d9e('0xc')]('Dynamics365Configuration,\x20%s,\x20%s',_0xf2ca07,_0x0d9e('0xd'));logger[_0x0d9e('0xe')](_0x0d9e('0xf'),_0xf2ca07,_0x0d9e('0xd'),JSON['stringify'](_0x1b420b));if(_0x1b420b[_0x0d9e('0x10')]){if(_0x1b420b['error']['code']===0x1f4){logger['error']('Dynamics365Configuration,\x20%s,\x20%s',_0xf2ca07,_0x1b420b[_0x0d9e('0x10')][_0x0d9e('0x11')]);return _0x4bc93c(_0x1b420b[_0x0d9e('0x10')][_0x0d9e('0x11')]);}logger[_0x0d9e('0x10')](_0x0d9e('0x12'),_0xf2ca07,_0x1b420b[_0x0d9e('0x10')][_0x0d9e('0x11')]);return _0x394daf(_0x1b420b[_0x0d9e('0x10')]['message']);}else{logger[_0x0d9e('0xc')](_0x0d9e('0x12'),_0xf2ca07,'request\x20sent');_0x394daf(_0x1b420b[_0x0d9e('0x13')][_0x0d9e('0x11')]);}})[_0x0d9e('0x14')](function(_0x489c30){logger[_0x0d9e('0x10')](_0x0d9e('0x12'),_0xf2ca07,_0x489c30);_0x4bc93c(_0x489c30);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xaa4c=['isAuthenticated','show','post','create','put','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./intDynamics365Field.controller','get','index','/:id'];(function(_0x41cfe6,_0x4e66ab){var _0xc0c6db=function(_0x2bf953){while(--_0x2bf953){_0x41cfe6['push'](_0x41cfe6['shift']());}};_0xc0c6db(++_0x4e66ab);}(_0xaa4c,0xa6));var _0xcaa4=function(_0x47a62a,_0x12d649){_0x47a62a=_0x47a62a-0x0;var _0x5ee3f7=_0xaa4c[_0x47a62a];return _0x5ee3f7;};'use strict';var multer=require(_0xcaa4('0x0'));var util=require(_0xcaa4('0x1'));var path=require(_0xcaa4('0x2'));var timeout=require(_0xcaa4('0x3'));var express=require(_0xcaa4('0x4'));var router=express[_0xcaa4('0x5')]();var fs_extra=require(_0xcaa4('0x6'));var auth=require(_0xcaa4('0x7'));var interaction=require(_0xcaa4('0x8'));var config=require(_0xcaa4('0x9'));var controller=require(_0xcaa4('0xa'));router[_0xcaa4('0xb')]('/',auth['isAuthenticated'](),controller[_0xcaa4('0xc')]);router[_0xcaa4('0xb')](_0xcaa4('0xd'),auth[_0xcaa4('0xe')](),controller[_0xcaa4('0xf')]);router[_0xcaa4('0x10')]('/',auth[_0xcaa4('0xe')](),controller[_0xcaa4('0x11')]);router[_0xcaa4('0x12')]('/:id',auth[_0xcaa4('0xe')](),controller['update']);router['delete']('/:id',auth['isAuthenticated'](),controller['destroy']);module[_0xcaa4('0x13')]=router;
\ No newline at end of file
+var _0x5814=['./intDynamics365Field.controller','index','isAuthenticated','show','create','put','/:id','destroy','exports','multer','path','connect-timeout','Router','../../components/auth/service','../../components/interaction/service','../../config/environment'];(function(_0x2a921f,_0x3878fe){var _0x3248dc=function(_0x1e11ef){while(--_0x1e11ef){_0x2a921f['push'](_0x2a921f['shift']());}};_0x3248dc(++_0x3878fe);}(_0x5814,0xb9));var _0x4581=function(_0x2a9ebb,_0x189851){_0x2a9ebb=_0x2a9ebb-0x0;var _0x352a73=_0x5814[_0x2a9ebb];return _0x352a73;};'use strict';var multer=require(_0x4581('0x0'));var util=require('util');var path=require(_0x4581('0x1'));var timeout=require(_0x4581('0x2'));var express=require('express');var router=express[_0x4581('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x4581('0x4'));var interaction=require(_0x4581('0x5'));var config=require(_0x4581('0x6'));var controller=require(_0x4581('0x7'));router['get']('/',auth['isAuthenticated'](),controller[_0x4581('0x8')]);router['get']('/:id',auth[_0x4581('0x9')](),controller[_0x4581('0xa')]);router['post']('/',auth['isAuthenticated'](),controller[_0x4581('0xb')]);router[_0x4581('0xc')](_0x4581('0xd'),auth[_0x4581('0x9')](),controller['update']);router['delete'](_0x4581('0xd'),auth[_0x4581('0x9')](),controller[_0x4581('0xe')]);module[_0x4581('0xf')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb009=['sequelize','ENUM','variable','keyValue','string','STRING','customVariable'];(function(_0x335ab9,_0x36c895){var _0x32fe8f=function(_0x5d1c6f){while(--_0x5d1c6f){_0x335ab9['push'](_0x335ab9['shift']());}};_0x32fe8f(++_0x36c895);}(_0xb009,0x19d));var _0x9b00=function(_0x44cd28,_0x1502d9){_0x44cd28=_0x44cd28-0x0;var _0x39356e=_0xb009[_0x44cd28];return _0x39356e;};'use strict';var Sequelize=require(_0x9b00('0x0'));module['exports']={'type':{'type':Sequelize[_0x9b00('0x1')]('string',_0x9b00('0x2'),'customVariable',_0x9b00('0x3'),'picklist'),'defaultValue':_0x9b00('0x4')},'content':{'type':Sequelize[_0x9b00('0x5')]},'key':{'type':Sequelize[_0x9b00('0x5')]},'keyType':{'type':Sequelize[_0x9b00('0x1')](_0x9b00('0x4'),_0x9b00('0x2'),_0x9b00('0x6'))},'keyContent':{'type':Sequelize['STRING']},'idField':{'type':Sequelize[_0x9b00('0x5')]},'nameField':{'type':Sequelize['STRING']},'customField':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'variableName':{'type':Sequelize[_0x9b00('0x5')]}};
\ No newline at end of file
+var _0xd36c=['sequelize','exports','variable','customVariable','keyValue','string','STRING','BOOLEAN'];(function(_0x5a2d1f,_0x18a470){var _0x3394cc=function(_0x5022c2){while(--_0x5022c2){_0x5a2d1f['push'](_0x5a2d1f['shift']());}};_0x3394cc(++_0x18a470);}(_0xd36c,0x1c0));var _0xcd36=function(_0x3e25c1,_0x1d15f9){_0x3e25c1=_0x3e25c1-0x0;var _0x52e7f2=_0xd36c[_0x3e25c1];return _0x52e7f2;};'use strict';var Sequelize=require(_0xcd36('0x0'));module[_0xcd36('0x1')]={'type':{'type':Sequelize['ENUM']('string',_0xcd36('0x2'),_0xcd36('0x3'),_0xcd36('0x4'),'picklist'),'defaultValue':_0xcd36('0x5')},'content':{'type':Sequelize['STRING']},'key':{'type':Sequelize[_0xcd36('0x6')]},'keyType':{'type':Sequelize['ENUM'](_0xcd36('0x5'),_0xcd36('0x2'),_0xcd36('0x3'))},'keyContent':{'type':Sequelize[_0xcd36('0x6')]},'idField':{'type':Sequelize[_0xcd36('0x6')]},'nameField':{'type':Sequelize[_0xcd36('0x6')]},'customField':{'type':Sequelize[_0xcd36('0x7')],'defaultValue':!![]},'variableName':{'type':Sequelize[_0xcd36('0x6')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4fd0=['params','keys','body','find','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','querystring','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','sendStatus','status','end','json','offset','undefined','limit','set','Content-Range','apply','reject','save','update','destroy','then','error','stack','send','index','map','Dynamics365Field','rawAttributes','fieldName','type','key','model','name','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','filter','options','count','include','rows','catch','show'];(function(_0x17cdde,_0x39726f){var _0x12197b=function(_0x128add){while(--_0x128add){_0x17cdde['push'](_0x17cdde['shift']());}};_0x12197b(++_0x39726f);}(_0x4fd0,0x176));var _0x04fd=function(_0x3f01dd,_0x128e0f){_0x3f01dd=_0x3f01dd-0x0;var _0x4bae40=_0x4fd0[_0x3f01dd];return _0x4bae40;};'use strict';var emlformat=require(_0x04fd('0x0'));var rimraf=require(_0x04fd('0x1'));var zipdir=require(_0x04fd('0x2'));var jsonpatch=require(_0x04fd('0x3'));var rp=require(_0x04fd('0x4'));var moment=require('moment');var BPromise=require(_0x04fd('0x5'));var Mustache=require(_0x04fd('0x6'));var util=require(_0x04fd('0x7'));var path=require(_0x04fd('0x8'));var sox=require('sox');var csv=require(_0x04fd('0x9'));var ejs=require(_0x04fd('0xa'));var fs=require('fs');var fs_extra=require(_0x04fd('0xb'));var _=require(_0x04fd('0xc'));var squel=require(_0x04fd('0xd'));var crypto=require(_0x04fd('0xe'));var jsforce=require(_0x04fd('0xf'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x04fd('0x10'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x04fd('0x11'));var hardwareService=require(_0x04fd('0x12'));var logger=require(_0x04fd('0x13'))(_0x04fd('0x14'));var utils=require('../../config/utils');var config=require(_0x04fd('0x15'));var licenseUtil=require(_0x04fd('0x16'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x4a7e0b,_0x1435e6){_0x1435e6=_0x1435e6||0xcc;return function(_0x5477ab){if(_0x5477ab){return _0x4a7e0b[_0x04fd('0x17')](_0x1435e6);}return _0x4a7e0b[_0x04fd('0x18')](_0x1435e6)[_0x04fd('0x19')]();};}function respondWithResult(_0x379927,_0x103434){_0x103434=_0x103434||0xc8;return function(_0x54e200){if(_0x54e200){return _0x379927['status'](_0x103434)[_0x04fd('0x1a')](_0x54e200);}};}function respondWithFilteredResult(_0x2e9471,_0x4ed8d8){return function(_0x2d4617){if(_0x2d4617){var _0x1f0f0a=typeof _0x4ed8d8[_0x04fd('0x1b')]===_0x04fd('0x1c')&&typeof _0x4ed8d8[_0x04fd('0x1d')]===_0x04fd('0x1c');var _0x329743=_0x2d4617['count'];var _0x4e30e2=_0x1f0f0a?0x0:_0x4ed8d8[_0x04fd('0x1b')];var _0x3124e8=_0x1f0f0a?_0x2d4617['count']:_0x4ed8d8[_0x04fd('0x1b')]+_0x4ed8d8[_0x04fd('0x1d')];var _0x2b29cb;if(_0x3124e8>=_0x329743){_0x3124e8=_0x329743;_0x2b29cb=0xc8;}else{_0x2b29cb=0xce;}_0x2e9471[_0x04fd('0x18')](_0x2b29cb);return _0x2e9471[_0x04fd('0x1e')](_0x04fd('0x1f'),_0x4e30e2+'-'+_0x3124e8+'/'+_0x329743)[_0x04fd('0x1a')](_0x2d4617);}return null;};}function patchUpdates(_0x1c29e1){return function(_0x534205){try{jsonpatch[_0x04fd('0x20')](_0x534205,_0x1c29e1,!![]);}catch(_0x487116){return BPromise[_0x04fd('0x21')](_0x487116);}return _0x534205[_0x04fd('0x22')]();};}function saveUpdates(_0xca73e,_0x5d053d){return function(_0x40c75e){if(_0x40c75e){return _0x40c75e[_0x04fd('0x23')](_0xca73e)['then'](function(_0x172cf7){return _0x172cf7;});}return null;};}function removeEntity(_0x66705d,_0x2a0423){return function(_0x1d7b1e){if(_0x1d7b1e){return _0x1d7b1e[_0x04fd('0x24')]()[_0x04fd('0x25')](function(){_0x66705d[_0x04fd('0x18')](0xcc)[_0x04fd('0x19')]();});}};}function handleEntityNotFound(_0x21f156,_0x4d9294){return function(_0x111879){if(!_0x111879){_0x21f156[_0x04fd('0x17')](0x194);}return _0x111879;};}function handleError(_0x387e4a,_0x2b6c9b){_0x2b6c9b=_0x2b6c9b||0x1f4;return function(_0x28a9b1){logger[_0x04fd('0x26')](_0x28a9b1[_0x04fd('0x27')]);if(_0x28a9b1['name']){delete _0x28a9b1['name'];}_0x387e4a[_0x04fd('0x18')](_0x2b6c9b)[_0x04fd('0x28')](_0x28a9b1);};}exports[_0x04fd('0x29')]=function(_0xf6f13f,_0x3e4c85){var _0xc993bd={},_0x595793={},_0x575eeb={'count':0x0,'rows':[]};var _0x37eec4=_[_0x04fd('0x2a')](db[_0x04fd('0x2b')][_0x04fd('0x2c')],function(_0x376e20){return{'name':_0x376e20[_0x04fd('0x2d')],'type':_0x376e20[_0x04fd('0x2e')][_0x04fd('0x2f')]};});_0x595793[_0x04fd('0x30')]=_[_0x04fd('0x2a')](_0x37eec4,_0x04fd('0x31'));_0x595793[_0x04fd('0x32')]=_['keys'](_0xf6f13f['query']);_0x595793[_0x04fd('0x33')]=_[_0x04fd('0x34')](_0x595793['model'],_0x595793['query']);_0xc993bd[_0x04fd('0x35')]=_[_0x04fd('0x34')](_0x595793['model'],qs[_0x04fd('0x36')](_0xf6f13f[_0x04fd('0x32')][_0x04fd('0x36')]));_0xc993bd[_0x04fd('0x35')]=_0xc993bd[_0x04fd('0x35')][_0x04fd('0x37')]?_0xc993bd[_0x04fd('0x35')]:_0x595793[_0x04fd('0x30')];if(!_0xf6f13f[_0x04fd('0x32')][_0x04fd('0x38')](_0x04fd('0x39'))){_0xc993bd[_0x04fd('0x1d')]=qs['limit'](_0xf6f13f[_0x04fd('0x32')][_0x04fd('0x1d')]);_0xc993bd['offset']=qs['offset'](_0xf6f13f[_0x04fd('0x32')][_0x04fd('0x1b')]);}_0xc993bd[_0x04fd('0x3a')]=qs[_0x04fd('0x3b')](_0xf6f13f[_0x04fd('0x32')][_0x04fd('0x3b')]);_0xc993bd[_0x04fd('0x3c')]=qs[_0x04fd('0x33')](_[_0x04fd('0x3d')](_0xf6f13f[_0x04fd('0x32')],_0x595793[_0x04fd('0x33')]),_0x37eec4);if(_0xf6f13f['query']['filter']){_0xc993bd[_0x04fd('0x3c')]=_[_0x04fd('0x3e')](_0xc993bd[_0x04fd('0x3c')],{'$or':_[_0x04fd('0x2a')](_0x37eec4,function(_0x2cddb7){if(_0x2cddb7[_0x04fd('0x2e')]!=='VIRTUAL'){var _0x36bd99={};_0x36bd99[_0x2cddb7[_0x04fd('0x31')]]={'$like':'%'+_0xf6f13f['query'][_0x04fd('0x3f')]+'%'};return _0x36bd99;}})});}_0xc993bd=_[_0x04fd('0x3e')]({},_0xc993bd,_0xf6f13f[_0x04fd('0x40')]);var _0x123dd7={'where':_0xc993bd[_0x04fd('0x3c')]};return db[_0x04fd('0x2b')][_0x04fd('0x41')](_0x123dd7)[_0x04fd('0x25')](function(_0x1bed31){_0x575eeb[_0x04fd('0x41')]=_0x1bed31;if(_0xf6f13f[_0x04fd('0x32')]['includeAll']){_0xc993bd[_0x04fd('0x42')]=[{'all':!![]}];}return db['Dynamics365Field']['findAll'](_0xc993bd);})[_0x04fd('0x25')](function(_0x2d08e5){_0x575eeb[_0x04fd('0x43')]=_0x2d08e5;return _0x575eeb;})['then'](respondWithFilteredResult(_0x3e4c85,_0xc993bd))[_0x04fd('0x44')](handleError(_0x3e4c85,null));};exports[_0x04fd('0x45')]=function(_0x3f0a70,_0x58a805){var _0x4b6e22={'raw':!![],'where':{'id':_0x3f0a70[_0x04fd('0x46')]['id']}},_0x5ea7ca={};_0x5ea7ca['model']=_[_0x04fd('0x47')](db['Dynamics365Field'][_0x04fd('0x2c')]);_0x5ea7ca[_0x04fd('0x32')]=_[_0x04fd('0x47')](_0x3f0a70['query']);_0x5ea7ca[_0x04fd('0x33')]=_[_0x04fd('0x34')](_0x5ea7ca[_0x04fd('0x30')],_0x5ea7ca[_0x04fd('0x32')]);_0x4b6e22[_0x04fd('0x35')]=_[_0x04fd('0x34')](_0x5ea7ca[_0x04fd('0x30')],qs['fields'](_0x3f0a70[_0x04fd('0x32')][_0x04fd('0x36')]));_0x4b6e22['attributes']=_0x4b6e22[_0x04fd('0x35')][_0x04fd('0x37')]?_0x4b6e22[_0x04fd('0x35')]:_0x5ea7ca['model'];if(_0x3f0a70[_0x04fd('0x32')]['includeAll']){_0x4b6e22[_0x04fd('0x42')]=[{'all':!![]}];}_0x4b6e22=_['merge']({},_0x4b6e22,_0x3f0a70[_0x04fd('0x40')]);return db[_0x04fd('0x2b')]['find'](_0x4b6e22)[_0x04fd('0x25')](handleEntityNotFound(_0x58a805,null))[_0x04fd('0x25')](respondWithResult(_0x58a805,null))['catch'](handleError(_0x58a805,null));};exports['create']=function(_0x2d7c26,_0x556801){return db[_0x04fd('0x2b')]['create'](_0x2d7c26[_0x04fd('0x48')],{})['then'](respondWithResult(_0x556801,0xc9))[_0x04fd('0x44')](handleError(_0x556801,null));};exports[_0x04fd('0x23')]=function(_0x2ef86b,_0xc78269){if(_0x2ef86b[_0x04fd('0x48')]['id']){delete _0x2ef86b[_0x04fd('0x48')]['id'];}return db[_0x04fd('0x2b')][_0x04fd('0x49')]({'where':{'id':_0x2ef86b[_0x04fd('0x46')]['id']}})[_0x04fd('0x25')](handleEntityNotFound(_0xc78269,null))[_0x04fd('0x25')](saveUpdates(_0x2ef86b['body'],null))[_0x04fd('0x25')](respondWithResult(_0xc78269,null))[_0x04fd('0x44')](handleError(_0xc78269,null));};exports[_0x04fd('0x24')]=function(_0x2fcb5c,_0x3fae4c){return db[_0x04fd('0x2b')][_0x04fd('0x49')]({'where':{'id':_0x2fcb5c[_0x04fd('0x46')]['id']}})[_0x04fd('0x25')](handleEntityNotFound(_0x3fae4c,null))[_0x04fd('0x25')](removeEntity(_0x3fae4c,null))[_0x04fd('0x44')](handleError(_0x3fae4c,null));};
\ No newline at end of file
+var _0xaa07=['length','hasOwnProperty','nolimit','order','sort','filters','filter','where','merge','options','Dynamics365Field','count','includeAll','include','findAll','rows','catch','show','create','body','update','find','params','eml-format','rimraf','zip-dir','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/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','end','json','offset','undefined','limit','set','Content-Range','apply','reject','save','destroy','then','error','stack','send','fieldName','type','model','map','name','query','keys','intersection','fields','attributes'];(function(_0x478406,_0x29efc0){var _0x363e0b=function(_0x59570f){while(--_0x59570f){_0x478406['push'](_0x478406['shift']());}};_0x363e0b(++_0x29efc0);}(_0xaa07,0x1f1));var _0x7aa0=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0xaa07[_0x321bb2];return _0x9c12ed;};'use strict';var emlformat=require(_0x7aa0('0x0'));var rimraf=require(_0x7aa0('0x1'));var zipdir=require(_0x7aa0('0x2'));var jsonpatch=require(_0x7aa0('0x3'));var rp=require('request-promise');var moment=require(_0x7aa0('0x4'));var BPromise=require(_0x7aa0('0x5'));var Mustache=require(_0x7aa0('0x6'));var util=require('util');var path=require(_0x7aa0('0x7'));var sox=require(_0x7aa0('0x8'));var csv=require(_0x7aa0('0x9'));var ejs=require(_0x7aa0('0xa'));var fs=require('fs');var fs_extra=require(_0x7aa0('0xb'));var _=require(_0x7aa0('0xc'));var squel=require(_0x7aa0('0xd'));var crypto=require(_0x7aa0('0xe'));var jsforce=require(_0x7aa0('0xf'));var deskjs=require(_0x7aa0('0x10'));var toCsv=require(_0x7aa0('0x9'));var querystring=require(_0x7aa0('0x11'));var Papa=require(_0x7aa0('0x12'));var Redis=require(_0x7aa0('0x13'));var authService=require(_0x7aa0('0x14'));var qs=require(_0x7aa0('0x15'));var as=require(_0x7aa0('0x16'));var hardwareService=require(_0x7aa0('0x17'));var logger=require(_0x7aa0('0x18'))(_0x7aa0('0x19'));var utils=require(_0x7aa0('0x1a'));var config=require(_0x7aa0('0x1b'));var licenseUtil=require(_0x7aa0('0x1c'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0xef1f5e,_0x5a2d29){_0x5a2d29=_0x5a2d29||0xcc;return function(_0x30cc96){if(_0x30cc96){return _0xef1f5e[_0x7aa0('0x1d')](_0x5a2d29);}return _0xef1f5e[_0x7aa0('0x1e')](_0x5a2d29)[_0x7aa0('0x1f')]();};}function respondWithResult(_0x87c890,_0x289e0c){_0x289e0c=_0x289e0c||0xc8;return function(_0x5e02e9){if(_0x5e02e9){return _0x87c890[_0x7aa0('0x1e')](_0x289e0c)[_0x7aa0('0x20')](_0x5e02e9);}};}function respondWithFilteredResult(_0x43a586,_0x116038){return function(_0x68592c){if(_0x68592c){var _0x1aa4c9=typeof _0x116038[_0x7aa0('0x21')]===_0x7aa0('0x22')&&typeof _0x116038[_0x7aa0('0x23')]===_0x7aa0('0x22');var _0x100d11=_0x68592c['count'];var _0x2551f9=_0x1aa4c9?0x0:_0x116038['offset'];var _0x46cac7=_0x1aa4c9?_0x68592c['count']:_0x116038['offset']+_0x116038[_0x7aa0('0x23')];var _0x1fd20d;if(_0x46cac7>=_0x100d11){_0x46cac7=_0x100d11;_0x1fd20d=0xc8;}else{_0x1fd20d=0xce;}_0x43a586[_0x7aa0('0x1e')](_0x1fd20d);return _0x43a586[_0x7aa0('0x24')](_0x7aa0('0x25'),_0x2551f9+'-'+_0x46cac7+'/'+_0x100d11)[_0x7aa0('0x20')](_0x68592c);}return null;};}function patchUpdates(_0x494ef3){return function(_0x4a5772){try{jsonpatch[_0x7aa0('0x26')](_0x4a5772,_0x494ef3,!![]);}catch(_0x4f37db){return BPromise[_0x7aa0('0x27')](_0x4f37db);}return _0x4a5772[_0x7aa0('0x28')]();};}function saveUpdates(_0x37e843,_0x9e00b9){return function(_0x43b3ac){if(_0x43b3ac){return _0x43b3ac['update'](_0x37e843)['then'](function(_0x157722){return _0x157722;});}return null;};}function removeEntity(_0x3357f9,_0x8f3ade){return function(_0x3116ab){if(_0x3116ab){return _0x3116ab[_0x7aa0('0x29')]()[_0x7aa0('0x2a')](function(){_0x3357f9['status'](0xcc)[_0x7aa0('0x1f')]();});}};}function handleEntityNotFound(_0xec5954,_0x38a136){return function(_0xed9eed){if(!_0xed9eed){_0xec5954[_0x7aa0('0x1d')](0x194);}return _0xed9eed;};}function handleError(_0x5ae68e,_0x21602b){_0x21602b=_0x21602b||0x1f4;return function(_0x39798e){logger[_0x7aa0('0x2b')](_0x39798e[_0x7aa0('0x2c')]);if(_0x39798e['name']){delete _0x39798e['name'];}_0x5ae68e['status'](_0x21602b)[_0x7aa0('0x2d')](_0x39798e);};}exports['index']=function(_0x2874e7,_0x112b73){var _0x21326f={},_0x3a74b0={},_0x45b800={'count':0x0,'rows':[]};var _0x330b82=_['map'](db['Dynamics365Field']['rawAttributes'],function(_0x58bc8d){return{'name':_0x58bc8d[_0x7aa0('0x2e')],'type':_0x58bc8d[_0x7aa0('0x2f')]['key']};});_0x3a74b0[_0x7aa0('0x30')]=_[_0x7aa0('0x31')](_0x330b82,_0x7aa0('0x32'));_0x3a74b0[_0x7aa0('0x33')]=_[_0x7aa0('0x34')](_0x2874e7[_0x7aa0('0x33')]);_0x3a74b0['filters']=_[_0x7aa0('0x35')](_0x3a74b0[_0x7aa0('0x30')],_0x3a74b0['query']);_0x21326f['attributes']=_[_0x7aa0('0x35')](_0x3a74b0[_0x7aa0('0x30')],qs[_0x7aa0('0x36')](_0x2874e7[_0x7aa0('0x33')][_0x7aa0('0x36')]));_0x21326f[_0x7aa0('0x37')]=_0x21326f[_0x7aa0('0x37')][_0x7aa0('0x38')]?_0x21326f[_0x7aa0('0x37')]:_0x3a74b0['model'];if(!_0x2874e7[_0x7aa0('0x33')][_0x7aa0('0x39')](_0x7aa0('0x3a'))){_0x21326f['limit']=qs['limit'](_0x2874e7[_0x7aa0('0x33')]['limit']);_0x21326f[_0x7aa0('0x21')]=qs[_0x7aa0('0x21')](_0x2874e7[_0x7aa0('0x33')][_0x7aa0('0x21')]);}_0x21326f[_0x7aa0('0x3b')]=qs[_0x7aa0('0x3c')](_0x2874e7[_0x7aa0('0x33')][_0x7aa0('0x3c')]);_0x21326f['where']=qs[_0x7aa0('0x3d')](_['pick'](_0x2874e7[_0x7aa0('0x33')],_0x3a74b0[_0x7aa0('0x3d')]),_0x330b82);if(_0x2874e7[_0x7aa0('0x33')][_0x7aa0('0x3e')]){_0x21326f[_0x7aa0('0x3f')]=_[_0x7aa0('0x40')](_0x21326f['where'],{'$or':_['map'](_0x330b82,function(_0x42b384){if(_0x42b384[_0x7aa0('0x2f')]!=='VIRTUAL'){var _0x4c4dc5={};_0x4c4dc5[_0x42b384['name']]={'$like':'%'+_0x2874e7[_0x7aa0('0x33')][_0x7aa0('0x3e')]+'%'};return _0x4c4dc5;}})});}_0x21326f=_['merge']({},_0x21326f,_0x2874e7[_0x7aa0('0x41')]);var _0x582d47={'where':_0x21326f[_0x7aa0('0x3f')]};return db[_0x7aa0('0x42')][_0x7aa0('0x43')](_0x582d47)[_0x7aa0('0x2a')](function(_0x1eb453){_0x45b800[_0x7aa0('0x43')]=_0x1eb453;if(_0x2874e7[_0x7aa0('0x33')][_0x7aa0('0x44')]){_0x21326f[_0x7aa0('0x45')]=[{'all':!![]}];}return db['Dynamics365Field'][_0x7aa0('0x46')](_0x21326f);})[_0x7aa0('0x2a')](function(_0x12575c){_0x45b800[_0x7aa0('0x47')]=_0x12575c;return _0x45b800;})[_0x7aa0('0x2a')](respondWithFilteredResult(_0x112b73,_0x21326f))[_0x7aa0('0x48')](handleError(_0x112b73,null));};exports[_0x7aa0('0x49')]=function(_0x21c169,_0x46b0a0){var _0xe74b0b={'raw':!![],'where':{'id':_0x21c169['params']['id']}},_0x4d070e={};_0x4d070e[_0x7aa0('0x30')]=_[_0x7aa0('0x34')](db[_0x7aa0('0x42')]['rawAttributes']);_0x4d070e[_0x7aa0('0x33')]=_[_0x7aa0('0x34')](_0x21c169[_0x7aa0('0x33')]);_0x4d070e[_0x7aa0('0x3d')]=_['intersection'](_0x4d070e[_0x7aa0('0x30')],_0x4d070e[_0x7aa0('0x33')]);_0xe74b0b[_0x7aa0('0x37')]=_[_0x7aa0('0x35')](_0x4d070e[_0x7aa0('0x30')],qs['fields'](_0x21c169[_0x7aa0('0x33')]['fields']));_0xe74b0b[_0x7aa0('0x37')]=_0xe74b0b[_0x7aa0('0x37')]['length']?_0xe74b0b[_0x7aa0('0x37')]:_0x4d070e['model'];if(_0x21c169[_0x7aa0('0x33')][_0x7aa0('0x44')]){_0xe74b0b[_0x7aa0('0x45')]=[{'all':!![]}];}_0xe74b0b=_[_0x7aa0('0x40')]({},_0xe74b0b,_0x21c169['options']);return db[_0x7aa0('0x42')]['find'](_0xe74b0b)[_0x7aa0('0x2a')](handleEntityNotFound(_0x46b0a0,null))[_0x7aa0('0x2a')](respondWithResult(_0x46b0a0,null))[_0x7aa0('0x48')](handleError(_0x46b0a0,null));};exports[_0x7aa0('0x4a')]=function(_0xff8c95,_0x5c0357){return db[_0x7aa0('0x42')]['create'](_0xff8c95[_0x7aa0('0x4b')],{})[_0x7aa0('0x2a')](respondWithResult(_0x5c0357,0xc9))[_0x7aa0('0x48')](handleError(_0x5c0357,null));};exports[_0x7aa0('0x4c')]=function(_0x4bde8e,_0x325cd0){if(_0x4bde8e[_0x7aa0('0x4b')]['id']){delete _0x4bde8e[_0x7aa0('0x4b')]['id'];}return db['Dynamics365Field']['find']({'where':{'id':_0x4bde8e['params']['id']}})[_0x7aa0('0x2a')](handleEntityNotFound(_0x325cd0,null))[_0x7aa0('0x2a')](saveUpdates(_0x4bde8e[_0x7aa0('0x4b')],null))[_0x7aa0('0x2a')](respondWithResult(_0x325cd0,null))['catch'](handleError(_0x325cd0,null));};exports[_0x7aa0('0x29')]=function(_0x579b30,_0xef52b3){return db[_0x7aa0('0x42')][_0x7aa0('0x4d')]({'where':{'id':_0x579b30[_0x7aa0('0x4e')]['id']}})[_0x7aa0('0x2a')](handleEntityNotFound(_0xef52b3,null))[_0x7aa0('0x2a')](removeEntity(_0xef52b3,null))['catch'](handleError(_0xef52b3,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfede=['bluebird','request-promise','path','rimraf','../../config/environment','./intDynamics365Field.attributes','exports','define','int_dynamics365_fields','idField','FieldId','lodash','util','api','moment'];(function(_0x4e1e6e,_0x3c5b7b){var _0x49bd20=function(_0x572e27){while(--_0x572e27){_0x4e1e6e['push'](_0x4e1e6e['shift']());}};_0x49bd20(++_0x3c5b7b);}(_0xfede,0x164));var _0xefed=function(_0x2b5eae,_0x55010d){_0x2b5eae=_0x2b5eae-0x0;var _0x5f3ac9=_0xfede[_0x2b5eae];return _0x5f3ac9;};'use strict';var _=require(_0xefed('0x0'));var util=require(_0xefed('0x1'));var logger=require('../../config/logger')(_0xefed('0x2'));var moment=require(_0xefed('0x3'));var BPromise=require(_0xefed('0x4'));var rp=require(_0xefed('0x5'));var fs=require('fs');var path=require(_0xefed('0x6'));var rimraf=require(_0xefed('0x7'));var config=require(_0xefed('0x8'));var attributes=require(_0xefed('0x9'));module[_0xefed('0xa')]=function(_0x440e40,_0x3a4169){return _0x440e40[_0xefed('0xb')]('Dynamics365Field',attributes,{'tableName':_0xefed('0xc'),'paranoid':![],'indexes':[{'name':'dynamics365_unique_index','fields':[_0xefed('0xd'),_0xefed('0xe')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x6317=['moment','bluebird','request-promise','rimraf','../../config/environment','./intDynamics365Field.attributes','define','Dynamics365Field','int_dynamics365_fields','dynamics365_unique_index','idField','../../config/logger'];(function(_0x1a0f78,_0x266ba8){var _0x4dd75e=function(_0x20b8c7){while(--_0x20b8c7){_0x1a0f78['push'](_0x1a0f78['shift']());}};_0x4dd75e(++_0x266ba8);}(_0x6317,0x18b));var _0x7631=function(_0x5bf966,_0x312ac1){_0x5bf966=_0x5bf966-0x0;var _0x24ecac=_0x6317[_0x5bf966];return _0x24ecac;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x7631('0x0'))('api');var moment=require(_0x7631('0x1'));var BPromise=require(_0x7631('0x2'));var rp=require(_0x7631('0x3'));var fs=require('fs');var path=require('path');var rimraf=require(_0x7631('0x4'));var config=require(_0x7631('0x5'));var attributes=require(_0x7631('0x6'));module['exports']=function(_0x3157da,_0x15d3fc){return _0x3157da[_0x7631('0x7')](_0x7631('0x8'),attributes,{'tableName':_0x7631('0x9'),'paranoid':![],'indexes':[{'name':_0x7631('0xa'),'fields':[_0x7631('0xb'),'FieldId'],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbb9e=['debug','Dynamics365Field,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','lodash','util','randomstring','../../config/utils','rpc','client','http','request','then','Dynamics365Field,\x20%s,\x20%s','request\x20sent'];(function(_0x85b74e,_0x4324a2){var _0x116ef5=function(_0x430139){while(--_0x430139){_0x85b74e['push'](_0x85b74e['shift']());}};_0x116ef5(++_0x4324a2);}(_0xbb9e,0x184));var _0xebb9=function(_0x49bff4,_0x4024a2){_0x49bff4=_0x49bff4-0x0;var _0x2f7c01=_0xbb9e[_0x49bff4];return _0x2f7c01;};'use strict';var _=require(_0xebb9('0x0'));var util=require(_0xebb9('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0xebb9('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0xebb9('0x3'));var logger=require('../../config/logger')(_0xebb9('0x4'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0xebb9('0x5')][_0xebb9('0x6')]({'port':0x232a});function respondWithRpcPromise(_0x31b75,_0x40230c,_0x2a1fec){return new BPromise(function(_0xda4797,_0x25383c){return client[_0xebb9('0x7')](_0x31b75,_0x2a1fec)[_0xebb9('0x8')](function(_0xe5f5d2){logger['info'](_0xebb9('0x9'),_0x40230c,_0xebb9('0xa'));logger[_0xebb9('0xb')](_0xebb9('0xc'),_0x40230c,_0xebb9('0xa'),JSON[_0xebb9('0xd')](_0xe5f5d2));if(_0xe5f5d2[_0xebb9('0xe')]){if(_0xe5f5d2[_0xebb9('0xe')][_0xebb9('0xf')]===0x1f4){logger['error']('Dynamics365Field,\x20%s,\x20%s',_0x40230c,_0xe5f5d2[_0xebb9('0xe')]['message']);return _0x25383c(_0xe5f5d2[_0xebb9('0xe')]['message']);}logger[_0xebb9('0xe')](_0xebb9('0x9'),_0x40230c,_0xe5f5d2[_0xebb9('0xe')][_0xebb9('0x10')]);return _0xda4797(_0xe5f5d2[_0xebb9('0xe')][_0xebb9('0x10')]);}else{logger[_0xebb9('0x11')](_0xebb9('0x9'),_0x40230c,_0xebb9('0xa'));_0xda4797(_0xe5f5d2[_0xebb9('0x12')][_0xebb9('0x10')]);}})['catch'](function(_0x4fcbf7){logger[_0xebb9('0xe')](_0xebb9('0x9'),_0x40230c,_0x4fcbf7);_0x25383c(_0x4fcbf7);});});}
\ No newline at end of file
+var _0xfc63=['catch','util','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','request','then','info','Dynamics365Field,\x20%s,\x20%s','request\x20sent','debug','Dynamics365Field,\x20%s,\x20%s,\x20%s','error','code','message','result'];(function(_0x34aee2,_0x160049){var _0x2c8b23=function(_0x48ceb3){while(--_0x48ceb3){_0x34aee2['push'](_0x34aee2['shift']());}};_0x2c8b23(++_0x160049);}(_0xfc63,0x135));var _0x3fc6=function(_0x3794d2,_0x5664d8){_0x3794d2=_0x3794d2-0x0;var _0x1adaa5=_0xfc63[_0x3794d2];return _0x1adaa5;};'use strict';var _=require('lodash');var util=require(_0x3fc6('0x0'));var moment=require(_0x3fc6('0x1'));var BPromise=require('bluebird');var rs=require(_0x3fc6('0x2'));var fs=require('fs');var Redis=require(_0x3fc6('0x3'));var db=require(_0x3fc6('0x4'))['db'];var utils=require(_0x3fc6('0x5'));var logger=require(_0x3fc6('0x6'))(_0x3fc6('0x7'));var config=require(_0x3fc6('0x8'));var jayson=require('jayson/promise');var client=jayson[_0x3fc6('0x9')]['http']({'port':0x232a});function respondWithRpcPromise(_0x9b12d5,_0x2536d8,_0xa44a05){return new BPromise(function(_0x572f7a,_0x47318d){return client[_0x3fc6('0xa')](_0x9b12d5,_0xa44a05)[_0x3fc6('0xb')](function(_0x40f79d){logger[_0x3fc6('0xc')](_0x3fc6('0xd'),_0x2536d8,_0x3fc6('0xe'));logger[_0x3fc6('0xf')](_0x3fc6('0x10'),_0x2536d8,_0x3fc6('0xe'),JSON['stringify'](_0x40f79d));if(_0x40f79d[_0x3fc6('0x11')]){if(_0x40f79d[_0x3fc6('0x11')][_0x3fc6('0x12')]===0x1f4){logger[_0x3fc6('0x11')]('Dynamics365Field,\x20%s,\x20%s',_0x2536d8,_0x40f79d['error'][_0x3fc6('0x13')]);return _0x47318d(_0x40f79d[_0x3fc6('0x11')][_0x3fc6('0x13')]);}logger[_0x3fc6('0x11')](_0x3fc6('0xd'),_0x2536d8,_0x40f79d[_0x3fc6('0x11')][_0x3fc6('0x13')]);return _0x572f7a(_0x40f79d[_0x3fc6('0x11')][_0x3fc6('0x13')]);}else{logger[_0x3fc6('0xc')]('Dynamics365Field,\x20%s,\x20%s',_0x2536d8,'request\x20sent');_0x572f7a(_0x40f79d[_0x3fc6('0x14')]['message']);}})[_0x3fc6('0x15')](function(_0x212447){logger[_0x3fc6('0x11')](_0x3fc6('0xd'),_0x2536d8,_0x212447);_0x47318d(_0x212447);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfc59=['path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','/:id','show','/:id/configurations','post','create','delete','destroy'];(function(_0x416cdc,_0x213b87){var _0x1931ce=function(_0x1dc762){while(--_0x1dc762){_0x416cdc['push'](_0x416cdc['shift']());}};_0x1931ce(++_0x213b87);}(_0xfc59,0x10e));var _0x9fc5=function(_0x8f2736,_0x32a6ee){_0x8f2736=_0x8f2736-0x0;var _0x5d139c=_0xfc59[_0x8f2736];return _0x5d139c;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x9fc5('0x0'));var timeout=require(_0x9fc5('0x1'));var express=require(_0x9fc5('0x2'));var router=express[_0x9fc5('0x3')]();var fs_extra=require(_0x9fc5('0x4'));var auth=require(_0x9fc5('0x5'));var interaction=require(_0x9fc5('0x6'));var config=require(_0x9fc5('0x7'));var controller=require('./intFreshdeskAccount.controller');router[_0x9fc5('0x8')]('/',auth[_0x9fc5('0x9')](),controller[_0x9fc5('0xa')]);router['get'](_0x9fc5('0xb'),auth[_0x9fc5('0x9')](),controller[_0x9fc5('0xc')]);router[_0x9fc5('0x8')](_0x9fc5('0xd'),auth['isAuthenticated'](),controller['getConfigurations']);router[_0x9fc5('0x8')]('/:id/fields',auth[_0x9fc5('0x9')](),controller['getFields']);router[_0x9fc5('0xe')]('/',auth[_0x9fc5('0x9')](),controller[_0x9fc5('0xf')]);router['post'](_0x9fc5('0xd'),auth[_0x9fc5('0x9')](),controller['addConfiguration']);router['put']('/:id',auth['isAuthenticated'](),controller['update']);router[_0x9fc5('0x10')](_0x9fc5('0xb'),auth[_0x9fc5('0x9')](),controller[_0x9fc5('0x11')]);module['exports']=router;
\ No newline at end of file
+var _0x7975=['index','get','show','/:id/configurations','getConfigurations','post','create','addConfiguration','/:id','update','delete','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','isAuthenticated'];(function(_0xf08ee,_0x5b22e3){var _0x5b2cf8=function(_0xc8d6c){while(--_0xc8d6c){_0xf08ee['push'](_0xf08ee['shift']());}};_0x5b2cf8(++_0x5b22e3);}(_0x7975,0x96));var _0x5797=function(_0x35d415,_0x5b4d30){_0x35d415=_0x35d415-0x0;var _0x404065=_0x7975[_0x35d415];return _0x404065;};'use strict';var multer=require(_0x5797('0x0'));var util=require(_0x5797('0x1'));var path=require(_0x5797('0x2'));var timeout=require(_0x5797('0x3'));var express=require(_0x5797('0x4'));var router=express[_0x5797('0x5')]();var fs_extra=require(_0x5797('0x6'));var auth=require(_0x5797('0x7'));var interaction=require(_0x5797('0x8'));var config=require(_0x5797('0x9'));var controller=require('./intFreshdeskAccount.controller');router['get']('/',auth[_0x5797('0xa')](),controller[_0x5797('0xb')]);router[_0x5797('0xc')]('/:id',auth[_0x5797('0xa')](),controller[_0x5797('0xd')]);router[_0x5797('0xc')](_0x5797('0xe'),auth['isAuthenticated'](),controller[_0x5797('0xf')]);router['get']('/:id/fields',auth['isAuthenticated'](),controller['getFields']);router[_0x5797('0x10')]('/',auth['isAuthenticated'](),controller[_0x5797('0x11')]);router[_0x5797('0x10')](_0x5797('0xe'),auth[_0x5797('0xa')](),controller[_0x5797('0x12')]);router['put'](_0x5797('0x13'),auth[_0x5797('0xa')](),controller[_0x5797('0x14')]);router[_0x5797('0x15')](_0x5797('0x13'),auth[_0x5797('0xa')](),controller['destroy']);module[_0x5797('0x16')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5f2f=['exports','STRING','username','sequelize'];(function(_0x1b3b67,_0x15ed21){var _0x2c7b2f=function(_0x6193f1){while(--_0x6193f1){_0x1b3b67['push'](_0x1b3b67['shift']());}};_0x2c7b2f(++_0x15ed21);}(_0x5f2f,0x73));var _0xf5f2=function(_0x28a425,_0x824f22){_0x28a425=_0x28a425-0x0;var _0x113db7=_0x5f2f[_0x28a425];return _0x113db7;};'use strict';var Sequelize=require(_0xf5f2('0x0'));module[_0xf5f2('0x1')]={'name':{'type':Sequelize[_0xf5f2('0x2')]},'description':{'type':Sequelize[_0xf5f2('0x2')]},'username':{'type':Sequelize[_0xf5f2('0x2')],'unique':_0xf5f2('0x3')},'apiKey':{'type':Sequelize[_0xf5f2('0x2')]},'remoteUri':{'type':Sequelize[_0xf5f2('0x2')],'unique':'remoteUri'},'serverUrl':{'type':Sequelize['STRING'],'allowNull':![]}};
\ No newline at end of file
+var _0xcf2f=['exports','STRING','remoteUri','sequelize'];(function(_0x75546,_0x51b923){var _0xb2967a=function(_0x51983b){while(--_0x51983b){_0x75546['push'](_0x75546['shift']());}};_0xb2967a(++_0x51b923);}(_0xcf2f,0xa7));var _0xfcf2=function(_0x1f5a83,_0x43b62f){_0x1f5a83=_0x1f5a83-0x0;var _0x454a0f=_0xcf2f[_0x1f5a83];return _0x454a0f;};'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 _0x073e=['params','include','find','create','body','destroy','getConfigurations','findOne','FreshdeskConfiguration','order','addConfiguration','AccountId','Subjects','getSubjects','getDescriptions','channel','FreshdeskField','Descriptions','getFields','remoteUri','apiKey','slice','lastIndexOf','GET','format','%s/%s','api/v2/ticket_fields','%s:X','toString','requester','subject','priority','group','source','ticket_type','company','remove','default','custom_text','label','choices','capitalize','statusCode','stringify','test','Wrong\x20credentials','eml-format','rimraf','zip-dir','fast-json-patch','mustache','util','path','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','../../mysqldb','status','end','json','undefined','count','offset','set','Content-Range','apply','reject','update','then','sendStatus','error','name','send','map','FreshdeskAccount','rawAttributes','fieldName','type','query','keys','model','intersection','fields','length','attributes','hasOwnProperty','nolimit','limit','sort','filters','pick','where','VIRTUAL','filter','merge','options','includeAll','findAll','rows','catch'];(function(_0x34096a,_0x4bc751){var _0x2803cc=function(_0x28ceee){while(--_0x28ceee){_0x34096a['push'](_0x34096a['shift']());}};_0x2803cc(++_0x4bc751);}(_0x073e,0x181));var _0xe073=function(_0x4886cc,_0x4d5cae){_0x4886cc=_0x4886cc-0x0;var _0x2cd1bc=_0x073e[_0x4886cc];return _0x2cd1bc;};'use strict';var emlformat=require(_0xe073('0x0'));var rimraf=require(_0xe073('0x1'));var zipdir=require(_0xe073('0x2'));var jsonpatch=require(_0xe073('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0xe073('0x4'));var util=require(_0xe073('0x5'));var path=require(_0xe073('0x6'));var sox=require('sox');var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xe073('0x7'));var _=require(_0xe073('0x8'));var squel=require(_0xe073('0x9'));var crypto=require(_0xe073('0xa'));var jsforce=require(_0xe073('0xb'));var deskjs=require(_0xe073('0xc'));var toCsv=require('to-csv');var querystring=require(_0xe073('0xd'));var Papa=require(_0xe073('0xe'));var Redis=require(_0xe073('0xf'));var authService=require(_0xe073('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0xe073('0x11'));var hardwareService=require(_0xe073('0x12'));var logger=require(_0xe073('0x13'))(_0xe073('0x14'));var utils=require(_0xe073('0x15'));var config=require(_0xe073('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0xe073('0x17'))['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x3dedf7,_0x5d2f2f){_0x5d2f2f=_0x5d2f2f||0xcc;return function(_0x3549c4){if(_0x3549c4){return _0x3dedf7['sendStatus'](_0x5d2f2f);}return _0x3dedf7[_0xe073('0x18')](_0x5d2f2f)[_0xe073('0x19')]();};}function respondWithResult(_0x47828d,_0x2ce92d){_0x2ce92d=_0x2ce92d||0xc8;return function(_0x3fb05a){if(_0x3fb05a){return _0x47828d[_0xe073('0x18')](_0x2ce92d)[_0xe073('0x1a')](_0x3fb05a);}};}function respondWithFilteredResult(_0xfb28f5,_0x208f2e){return function(_0x26f3d3){if(_0x26f3d3){var _0x38f9e5=typeof _0x208f2e['offset']==='undefined'&&typeof _0x208f2e['limit']===_0xe073('0x1b');var _0x15488e=_0x26f3d3[_0xe073('0x1c')];var _0x16eaa6=_0x38f9e5?0x0:_0x208f2e['offset'];var _0x4fdd2c=_0x38f9e5?_0x26f3d3[_0xe073('0x1c')]:_0x208f2e[_0xe073('0x1d')]+_0x208f2e['limit'];var _0x21c02e;if(_0x4fdd2c>=_0x15488e){_0x4fdd2c=_0x15488e;_0x21c02e=0xc8;}else{_0x21c02e=0xce;}_0xfb28f5[_0xe073('0x18')](_0x21c02e);return _0xfb28f5[_0xe073('0x1e')](_0xe073('0x1f'),_0x16eaa6+'-'+_0x4fdd2c+'/'+_0x15488e)[_0xe073('0x1a')](_0x26f3d3);}return null;};}function patchUpdates(_0x17dd4b){return function(_0x41639a){try{jsonpatch[_0xe073('0x20')](_0x41639a,_0x17dd4b,!![]);}catch(_0xef9bf5){return BPromise[_0xe073('0x21')](_0xef9bf5);}return _0x41639a['save']();};}function saveUpdates(_0x4405fd,_0x21f9c2){return function(_0x419703){if(_0x419703){return _0x419703[_0xe073('0x22')](_0x4405fd)[_0xe073('0x23')](function(_0x275aa8){return _0x275aa8;});}return null;};}function removeEntity(_0x504c26,_0x4c76ef){return function(_0x42d112){if(_0x42d112){return _0x42d112['destroy']()['then'](function(){_0x504c26['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x54a38b,_0x50795f){return function(_0x23537f){if(!_0x23537f){_0x54a38b[_0xe073('0x24')](0x194);}return _0x23537f;};}function handleError(_0x5bd226,_0x1fca27){_0x1fca27=_0x1fca27||0x1f4;return function(_0x4548d8){logger[_0xe073('0x25')](_0x4548d8['stack']);if(_0x4548d8[_0xe073('0x26')]){delete _0x4548d8['name'];}_0x5bd226[_0xe073('0x18')](_0x1fca27)[_0xe073('0x27')](_0x4548d8);};}exports['index']=function(_0x5dfff9,_0x15adbb){var _0x859ed8={},_0x278fbb={},_0x2f1cd2={'count':0x0,'rows':[]};var _0x20fabe=_[_0xe073('0x28')](db[_0xe073('0x29')][_0xe073('0x2a')],function(_0x5c04fe){return{'name':_0x5c04fe[_0xe073('0x2b')],'type':_0x5c04fe[_0xe073('0x2c')]['key']};});_0x278fbb['model']=_[_0xe073('0x28')](_0x20fabe,'name');_0x278fbb[_0xe073('0x2d')]=_[_0xe073('0x2e')](_0x5dfff9[_0xe073('0x2d')]);_0x278fbb['filters']=_['intersection'](_0x278fbb[_0xe073('0x2f')],_0x278fbb[_0xe073('0x2d')]);_0x859ed8['attributes']=_[_0xe073('0x30')](_0x278fbb[_0xe073('0x2f')],qs[_0xe073('0x31')](_0x5dfff9['query'][_0xe073('0x31')]));_0x859ed8['attributes']=_0x859ed8['attributes'][_0xe073('0x32')]?_0x859ed8[_0xe073('0x33')]:_0x278fbb[_0xe073('0x2f')];if(!_0x5dfff9['query'][_0xe073('0x34')](_0xe073('0x35'))){_0x859ed8[_0xe073('0x36')]=qs['limit'](_0x5dfff9[_0xe073('0x2d')][_0xe073('0x36')]);_0x859ed8[_0xe073('0x1d')]=qs[_0xe073('0x1d')](_0x5dfff9[_0xe073('0x2d')][_0xe073('0x1d')]);}_0x859ed8['order']=qs[_0xe073('0x37')](_0x5dfff9[_0xe073('0x2d')][_0xe073('0x37')]);_0x859ed8['where']=qs[_0xe073('0x38')](_[_0xe073('0x39')](_0x5dfff9[_0xe073('0x2d')],_0x278fbb[_0xe073('0x38')]),_0x20fabe);if(_0x5dfff9[_0xe073('0x2d')]['filter']){_0x859ed8[_0xe073('0x3a')]=_['merge'](_0x859ed8[_0xe073('0x3a')],{'$or':_[_0xe073('0x28')](_0x20fabe,function(_0x469537){if(_0x469537[_0xe073('0x2c')]!==_0xe073('0x3b')){var _0x2e200c={};_0x2e200c[_0x469537[_0xe073('0x26')]]={'$like':'%'+_0x5dfff9[_0xe073('0x2d')][_0xe073('0x3c')]+'%'};return _0x2e200c;}})});}_0x859ed8=_[_0xe073('0x3d')]({},_0x859ed8,_0x5dfff9[_0xe073('0x3e')]);var _0x300ef8={'where':_0x859ed8[_0xe073('0x3a')]};return db['FreshdeskAccount'][_0xe073('0x1c')](_0x300ef8)['then'](function(_0x174207){_0x2f1cd2[_0xe073('0x1c')]=_0x174207;if(_0x5dfff9[_0xe073('0x2d')][_0xe073('0x3f')]){_0x859ed8['include']=[{'all':!![]}];}return db[_0xe073('0x29')][_0xe073('0x40')](_0x859ed8);})[_0xe073('0x23')](function(_0x3c44f1){_0x2f1cd2[_0xe073('0x41')]=_0x3c44f1;return _0x2f1cd2;})['then'](respondWithFilteredResult(_0x15adbb,_0x859ed8))[_0xe073('0x42')](handleError(_0x15adbb,null));};exports['show']=function(_0x764196,_0x2a8c57){var _0x125d1f={'raw':![],'where':{'id':_0x764196[_0xe073('0x43')]['id']}},_0x76ae2e={};_0x76ae2e[_0xe073('0x2f')]=_[_0xe073('0x2e')](db[_0xe073('0x29')][_0xe073('0x2a')]);_0x76ae2e[_0xe073('0x2d')]=_[_0xe073('0x2e')](_0x764196['query']);_0x76ae2e['filters']=_[_0xe073('0x30')](_0x76ae2e[_0xe073('0x2f')],_0x76ae2e[_0xe073('0x2d')]);_0x125d1f[_0xe073('0x33')]=_[_0xe073('0x30')](_0x76ae2e['model'],qs[_0xe073('0x31')](_0x764196[_0xe073('0x2d')][_0xe073('0x31')]));_0x125d1f[_0xe073('0x33')]=_0x125d1f[_0xe073('0x33')]['length']?_0x125d1f[_0xe073('0x33')]:_0x76ae2e['model'];if(_0x764196['query'][_0xe073('0x3f')]){_0x125d1f[_0xe073('0x44')]=[{'all':!![]}];}_0x125d1f=_['merge']({},_0x125d1f,_0x764196['options']);return db[_0xe073('0x29')][_0xe073('0x45')](_0x125d1f)[_0xe073('0x23')](handleEntityNotFound(_0x2a8c57,null))[_0xe073('0x23')](respondWithResult(_0x2a8c57,null))[_0xe073('0x42')](handleError(_0x2a8c57,null));};exports[_0xe073('0x46')]=function(_0x317159,_0x5c7c66){return db[_0xe073('0x29')]['create'](_0x317159[_0xe073('0x47')],{})[_0xe073('0x23')](respondWithResult(_0x5c7c66,0xc9))[_0xe073('0x42')](handleError(_0x5c7c66,null));};exports['update']=function(_0x4d5bcd,_0x20f918){if(_0x4d5bcd[_0xe073('0x47')]['id']){delete _0x4d5bcd[_0xe073('0x47')]['id'];}return db['FreshdeskAccount'][_0xe073('0x45')]({'where':{'id':_0x4d5bcd[_0xe073('0x43')]['id']}})[_0xe073('0x23')](handleEntityNotFound(_0x20f918,null))[_0xe073('0x23')](saveUpdates(_0x4d5bcd[_0xe073('0x47')],null))[_0xe073('0x23')](respondWithResult(_0x20f918,null))[_0xe073('0x42')](handleError(_0x20f918,null));};exports[_0xe073('0x48')]=function(_0x3238eb,_0x5626d4){return db[_0xe073('0x29')]['find']({'where':{'id':_0x3238eb[_0xe073('0x43')]['id']}})['then'](handleEntityNotFound(_0x5626d4,null))[_0xe073('0x23')](removeEntity(_0x5626d4,null))[_0xe073('0x42')](handleError(_0x5626d4,null));};exports[_0xe073('0x49')]=function(_0xc7ff7c,_0x527a35,_0x2a3d65){var _0x1090c4={};var _0x191005={};var _0x48a470;var _0x5503c2;return db[_0xe073('0x29')][_0xe073('0x4a')]({'where':{'id':_0xc7ff7c[_0xe073('0x43')]['id']}})[_0xe073('0x23')](handleEntityNotFound(_0x527a35,null))[_0xe073('0x23')](function(_0x5212d5){if(_0x5212d5){_0x48a470=_0x5212d5;_0x191005[_0xe073('0x2f')]=_[_0xe073('0x2e')](db[_0xe073('0x4b')][_0xe073('0x2a')]);_0x191005[_0xe073('0x2d')]=_[_0xe073('0x2e')](_0xc7ff7c[_0xe073('0x2d')]);_0x191005[_0xe073('0x38')]=_[_0xe073('0x30')](_0x191005[_0xe073('0x2f')],_0x191005['query']);_0x1090c4[_0xe073('0x33')]=_['intersection'](_0x191005['model'],qs[_0xe073('0x31')](_0xc7ff7c[_0xe073('0x2d')][_0xe073('0x31')]));_0x1090c4['attributes']=_0x1090c4[_0xe073('0x33')][_0xe073('0x32')]?_0x1090c4[_0xe073('0x33')]:_0x191005['model'];_0x1090c4[_0xe073('0x4c')]=qs['sort'](_0xc7ff7c[_0xe073('0x2d')][_0xe073('0x37')]);_0x1090c4[_0xe073('0x3a')]=qs[_0xe073('0x38')](_[_0xe073('0x39')](_0xc7ff7c[_0xe073('0x2d')],_0x191005[_0xe073('0x38')]));if(_0xc7ff7c[_0xe073('0x2d')][_0xe073('0x3c')]){_0x1090c4[_0xe073('0x3a')]=_[_0xe073('0x3d')](_0x1090c4[_0xe073('0x3a')],{'$or':_[_0xe073('0x28')](_0x1090c4[_0xe073('0x33')],function(_0x9a824b){var _0x1dff1e={};_0x1dff1e[_0x9a824b]={'$like':'%'+_0xc7ff7c[_0xe073('0x2d')][_0xe073('0x3c')]+'%'};return _0x1dff1e;})});}_0x1090c4=_[_0xe073('0x3d')]({},_0x1090c4,_0xc7ff7c[_0xe073('0x3e')]);return _0x48a470[_0xe073('0x49')](_0x1090c4);}})[_0xe073('0x23')](function(_0xce6a6d){if(_0xce6a6d){_0x5503c2=_0xce6a6d[_0xe073('0x32')];if(!_0xc7ff7c[_0xe073('0x2d')][_0xe073('0x34')]('nolimit')){_0x1090c4[_0xe073('0x36')]=qs[_0xe073('0x36')](_0xc7ff7c[_0xe073('0x2d')][_0xe073('0x36')]);_0x1090c4[_0xe073('0x1d')]=qs['offset'](_0xc7ff7c[_0xe073('0x2d')]['offset']);}return _0x48a470[_0xe073('0x49')](_0x1090c4);}})[_0xe073('0x23')](function(_0x1c941f){if(_0x1c941f){return _0x1c941f?{'count':_0x5503c2,'rows':_0x1c941f}:null;}})[_0xe073('0x23')](respondWithResult(_0x527a35,null))[_0xe073('0x42')](handleError(_0x527a35,null));};exports[_0xe073('0x4d')]=function(_0x5ada4e,_0x3ffd06,_0x5d05e1){if(_0x5ada4e[_0xe073('0x47')]['id']){delete _0x5ada4e['body']['id'];}return db[_0xe073('0x29')][_0xe073('0x4a')]({'where':{'id':_0x5ada4e[_0xe073('0x43')]['id']}})[_0xe073('0x23')](handleEntityNotFound(_0x3ffd06,null))[_0xe073('0x23')](function(_0x17db84){if(_0x17db84){_0x5ada4e[_0xe073('0x47')][_0xe073('0x4e')]=_0x17db84['id'];_0x5ada4e[_0xe073('0x47')][_0xe073('0x4f')]=integrations[_0xe073('0x50')](_0x5ada4e['body']['channel'],_0x5ada4e[_0xe073('0x47')][_0xe073('0x2c')]);_0x5ada4e['body']['Descriptions']=integrations[_0xe073('0x51')](_0x5ada4e[_0xe073('0x47')][_0xe073('0x52')],_0x5ada4e[_0xe073('0x47')][_0xe073('0x2c')]);return db['FreshdeskConfiguration'][_0xe073('0x46')](_0x5ada4e[_0xe073('0x47')],{'include':[{'model':db[_0xe073('0x53')],'as':_0xe073('0x4f')},{'model':db[_0xe073('0x53')],'as':_0xe073('0x54')}]});}return null;})[_0xe073('0x23')](respondWithResult(_0x3ffd06,null))[_0xe073('0x42')](handleError(_0x3ffd06,null));};exports[_0xe073('0x55')]=function(_0x35e2ae,_0x512cd5,_0x19a3e7){var _0x509fd5='';return db['FreshdeskAccount'][_0xe073('0x4a')]({'where':{'id':_0x35e2ae[_0xe073('0x43')]['id']},'attributes':['id',_0xe073('0x56'),_0xe073('0x57')]})[_0xe073('0x23')](handleEntityNotFound(_0x512cd5,null))[_0xe073('0x23')](function(_0x31a0e2){if(_0x31a0e2){_0x509fd5=_0x31a0e2[_0xe073('0x56')];var _0x1b4e7a=_0x509fd5[_0xe073('0x58')](-0x1);if(_0x1b4e7a==='/'){_0x509fd5=_0x509fd5['substring'](0x0,_0x509fd5[_0xe073('0x59')](_0x1b4e7a));}return rp({'method':_0xe073('0x5a'),'uri':util[_0xe073('0x5b')](_0xe073('0x5c'),_0x509fd5,_0xe073('0x5d')),'headers':{'Authorization':util['format']('Basic\x20%s',new Buffer(util[_0xe073('0x5b')](_0xe073('0x5e'),_0x31a0e2[_0xe073('0x57')]))[_0xe073('0x5f')]('base64'))},'json':!![]});}})['then'](function(_0x40a351){if(_0x40a351){var _0x164a8f=[_0xe073('0x60'),_0xe073('0x61'),'agent','description','status',_0xe073('0x62'),_0xe073('0x63'),_0xe073('0x64'),_0xe073('0x65'),_0xe073('0x63'),_0xe073('0x66')];_[_0xe073('0x67')](_0x40a351,function(_0x5bdb91){return _0x164a8f['includes'](_0x5bdb91[_0xe073('0x26')])||!_0x5bdb91[_0xe073('0x68')]&&_0x5bdb91[_0xe073('0x2c')]!==_0xe073('0x69')&&_0x5bdb91[_0xe073('0x2c')]!=='custom_dropdown';});return{'count':_0x40a351[_0xe073('0x32')],'rows':_['map'](_0x40a351,function(_0x5b6b21){return{'id':_0x5b6b21[_0xe073('0x26')],'name':_0x5b6b21[_0xe073('0x6a')],'custom':!_0x5b6b21[_0xe073('0x68')],'options':_0x5b6b21[_0xe073('0x6b')]?_['map'](_0x5b6b21['choices'],function(_0xb8b09f){return{'name':_[_0xe073('0x6c')](_0xb8b09f),'value':_0xb8b09f};}):[]};})};}})['then'](respondWithResult(_0x512cd5,null))[_0xe073('0x42')](function(_0x278717){var _0x624d5f=_0x35e2ae[_0xe073('0x2d')]['test']?0x1f4:_0x278717[_0xe073('0x6d')]||0x1f4;logger[_0xe073('0x25')]('getFields,\x20%s,\x20%s,\x20%s',_0xe073('0x55'),_0x624d5f,JSON[_0xe073('0x6e')](_0x278717));delete _0x278717['name'];if(_0x624d5f===0x191){_0x624d5f=0x190;}_0x512cd5[_0xe073('0x18')](_0x624d5f)[_0xe073('0x27')](_0x35e2ae[_0xe073('0x2d')][_0xe073('0x6f')]?{'message':_0xe073('0x70'),'statusCode':_0x278717['statusCode']}:_0x278717);});};
\ No newline at end of file
+var _0xe99c=['order','sort','pick','filter','merge','VIRTUAL','options','FreshdeskAccount','include','findAll','rows','catch','show','params','keys','create','body','find','findOne','FreshdeskConfiguration','where','getConfigurations','addConfiguration','Subjects','getSubjects','channel','Descriptions','getDescriptions','FreshdeskField','remoteUri','substring','lastIndexOf','GET','format','%s/%s','Basic\x20%s','%s:X','apiKey','toString','requester','subject','agent','description','priority','source','group','company','remove','includes','default','custom_text','label','choices','capitalize','statusCode','getFields,\x20%s,\x20%s,\x20%s','getFields','test','Wrong\x20credentials','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','sox','ejs','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/environment','../../mysqldb','../../components/integrations/configuration','sendStatus','status','undefined','limit','count','offset','Content-Range','json','apply','save','update','then','destroy','end','error','stack','send','index','map','rawAttributes','fieldName','type','key','name','query','filters','model','attributes','intersection','fields','length','hasOwnProperty'];(function(_0x21c2c8,_0x44257e){var _0x4dd745=function(_0x1b3196){while(--_0x1b3196){_0x21c2c8['push'](_0x21c2c8['shift']());}};_0x4dd745(++_0x44257e);}(_0xe99c,0x197));var _0xce99=function(_0x5c930f,_0x5d7515){_0x5c930f=_0x5c930f-0x0;var _0x54ea51=_0xe99c[_0x5c930f];return _0x54ea51;};'use strict';var emlformat=require(_0xce99('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xce99('0x1'));var jsonpatch=require(_0xce99('0x2'));var rp=require(_0xce99('0x3'));var moment=require(_0xce99('0x4'));var BPromise=require(_0xce99('0x5'));var Mustache=require(_0xce99('0x6'));var util=require('util');var path=require('path');var sox=require(_0xce99('0x7'));var csv=require('to-csv');var ejs=require(_0xce99('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xce99('0x9'));var squel=require(_0xce99('0xa'));var crypto=require(_0xce99('0xb'));var jsforce=require(_0xce99('0xc'));var deskjs=require(_0xce99('0xd'));var toCsv=require(_0xce99('0xe'));var querystring=require(_0xce99('0xf'));var Papa=require(_0xce99('0x10'));var Redis=require('ioredis');var authService=require(_0xce99('0x11'));var qs=require(_0xce99('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xce99('0x13'));var logger=require(_0xce99('0x14'))(_0xce99('0x15'));var utils=require('../../config/utils');var config=require(_0xce99('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0xce99('0x17'))['db'];var integrations=require(_0xce99('0x18'));function respondWithStatusCode(_0x55a29a,_0x598662){_0x598662=_0x598662||0xcc;return function(_0x384c94){if(_0x384c94){return _0x55a29a[_0xce99('0x19')](_0x598662);}return _0x55a29a[_0xce99('0x1a')](_0x598662)['end']();};}function respondWithResult(_0x4e5edb,_0x46b268){_0x46b268=_0x46b268||0xc8;return function(_0x56e083){if(_0x56e083){return _0x4e5edb[_0xce99('0x1a')](_0x46b268)['json'](_0x56e083);}};}function respondWithFilteredResult(_0x6b3c2f,_0xe2b6f0){return function(_0x18b3d3){if(_0x18b3d3){var _0x5b498b=typeof _0xe2b6f0['offset']===_0xce99('0x1b')&&typeof _0xe2b6f0[_0xce99('0x1c')]===_0xce99('0x1b');var _0x57b543=_0x18b3d3[_0xce99('0x1d')];var _0x15b8d1=_0x5b498b?0x0:_0xe2b6f0[_0xce99('0x1e')];var _0xffb9a5=_0x5b498b?_0x18b3d3[_0xce99('0x1d')]:_0xe2b6f0[_0xce99('0x1e')]+_0xe2b6f0[_0xce99('0x1c')];var _0x559bef;if(_0xffb9a5>=_0x57b543){_0xffb9a5=_0x57b543;_0x559bef=0xc8;}else{_0x559bef=0xce;}_0x6b3c2f[_0xce99('0x1a')](_0x559bef);return _0x6b3c2f['set'](_0xce99('0x1f'),_0x15b8d1+'-'+_0xffb9a5+'/'+_0x57b543)[_0xce99('0x20')](_0x18b3d3);}return null;};}function patchUpdates(_0x3ca3f1){return function(_0x203723){try{jsonpatch[_0xce99('0x21')](_0x203723,_0x3ca3f1,!![]);}catch(_0x142ab6){return BPromise['reject'](_0x142ab6);}return _0x203723[_0xce99('0x22')]();};}function saveUpdates(_0xc007fa,_0x4b0939){return function(_0x11066e){if(_0x11066e){return _0x11066e[_0xce99('0x23')](_0xc007fa)[_0xce99('0x24')](function(_0x18a546){return _0x18a546;});}return null;};}function removeEntity(_0x391883,_0x2adbda){return function(_0x196b20){if(_0x196b20){return _0x196b20[_0xce99('0x25')]()[_0xce99('0x24')](function(){_0x391883[_0xce99('0x1a')](0xcc)[_0xce99('0x26')]();});}};}function handleEntityNotFound(_0x448e45,_0x223863){return function(_0x278442){if(!_0x278442){_0x448e45[_0xce99('0x19')](0x194);}return _0x278442;};}function handleError(_0x22a741,_0xf762ea){_0xf762ea=_0xf762ea||0x1f4;return function(_0x2e4a2){logger[_0xce99('0x27')](_0x2e4a2[_0xce99('0x28')]);if(_0x2e4a2['name']){delete _0x2e4a2['name'];}_0x22a741[_0xce99('0x1a')](_0xf762ea)[_0xce99('0x29')](_0x2e4a2);};}exports[_0xce99('0x2a')]=function(_0x4c4bf8,_0x1feca5){var _0x43401b={},_0x1ce793={},_0x4ff648={'count':0x0,'rows':[]};var _0x5e80f0=_[_0xce99('0x2b')](db['FreshdeskAccount'][_0xce99('0x2c')],function(_0x52d9dd){return{'name':_0x52d9dd[_0xce99('0x2d')],'type':_0x52d9dd[_0xce99('0x2e')][_0xce99('0x2f')]};});_0x1ce793['model']=_[_0xce99('0x2b')](_0x5e80f0,_0xce99('0x30'));_0x1ce793[_0xce99('0x31')]=_['keys'](_0x4c4bf8['query']);_0x1ce793[_0xce99('0x32')]=_['intersection'](_0x1ce793[_0xce99('0x33')],_0x1ce793[_0xce99('0x31')]);_0x43401b[_0xce99('0x34')]=_[_0xce99('0x35')](_0x1ce793[_0xce99('0x33')],qs[_0xce99('0x36')](_0x4c4bf8[_0xce99('0x31')][_0xce99('0x36')]));_0x43401b['attributes']=_0x43401b[_0xce99('0x34')][_0xce99('0x37')]?_0x43401b[_0xce99('0x34')]:_0x1ce793[_0xce99('0x33')];if(!_0x4c4bf8['query'][_0xce99('0x38')]('nolimit')){_0x43401b[_0xce99('0x1c')]=qs[_0xce99('0x1c')](_0x4c4bf8[_0xce99('0x31')]['limit']);_0x43401b[_0xce99('0x1e')]=qs[_0xce99('0x1e')](_0x4c4bf8[_0xce99('0x31')][_0xce99('0x1e')]);}_0x43401b[_0xce99('0x39')]=qs[_0xce99('0x3a')](_0x4c4bf8[_0xce99('0x31')][_0xce99('0x3a')]);_0x43401b['where']=qs[_0xce99('0x32')](_[_0xce99('0x3b')](_0x4c4bf8['query'],_0x1ce793[_0xce99('0x32')]),_0x5e80f0);if(_0x4c4bf8[_0xce99('0x31')][_0xce99('0x3c')]){_0x43401b['where']=_[_0xce99('0x3d')](_0x43401b['where'],{'$or':_[_0xce99('0x2b')](_0x5e80f0,function(_0x40f47d){if(_0x40f47d[_0xce99('0x2e')]!==_0xce99('0x3e')){var _0x15aa6b={};_0x15aa6b[_0x40f47d[_0xce99('0x30')]]={'$like':'%'+_0x4c4bf8['query'][_0xce99('0x3c')]+'%'};return _0x15aa6b;}})});}_0x43401b=_[_0xce99('0x3d')]({},_0x43401b,_0x4c4bf8[_0xce99('0x3f')]);var _0x2e0308={'where':_0x43401b['where']};return db[_0xce99('0x40')][_0xce99('0x1d')](_0x2e0308)[_0xce99('0x24')](function(_0x61b8bd){_0x4ff648['count']=_0x61b8bd;if(_0x4c4bf8[_0xce99('0x31')]['includeAll']){_0x43401b[_0xce99('0x41')]=[{'all':!![]}];}return db[_0xce99('0x40')][_0xce99('0x42')](_0x43401b);})['then'](function(_0x112f8c){_0x4ff648[_0xce99('0x43')]=_0x112f8c;return _0x4ff648;})[_0xce99('0x24')](respondWithFilteredResult(_0x1feca5,_0x43401b))[_0xce99('0x44')](handleError(_0x1feca5,null));};exports[_0xce99('0x45')]=function(_0x4aa3c1,_0x3feeca){var _0x3b1f07={'raw':![],'where':{'id':_0x4aa3c1[_0xce99('0x46')]['id']}},_0x4ea0eb={};_0x4ea0eb[_0xce99('0x33')]=_[_0xce99('0x47')](db[_0xce99('0x40')][_0xce99('0x2c')]);_0x4ea0eb['query']=_['keys'](_0x4aa3c1[_0xce99('0x31')]);_0x4ea0eb['filters']=_[_0xce99('0x35')](_0x4ea0eb['model'],_0x4ea0eb[_0xce99('0x31')]);_0x3b1f07[_0xce99('0x34')]=_['intersection'](_0x4ea0eb['model'],qs[_0xce99('0x36')](_0x4aa3c1[_0xce99('0x31')][_0xce99('0x36')]));_0x3b1f07[_0xce99('0x34')]=_0x3b1f07['attributes'][_0xce99('0x37')]?_0x3b1f07[_0xce99('0x34')]:_0x4ea0eb[_0xce99('0x33')];if(_0x4aa3c1[_0xce99('0x31')]['includeAll']){_0x3b1f07[_0xce99('0x41')]=[{'all':!![]}];}_0x3b1f07=_[_0xce99('0x3d')]({},_0x3b1f07,_0x4aa3c1['options']);return db[_0xce99('0x40')]['find'](_0x3b1f07)[_0xce99('0x24')](handleEntityNotFound(_0x3feeca,null))[_0xce99('0x24')](respondWithResult(_0x3feeca,null))[_0xce99('0x44')](handleError(_0x3feeca,null));};exports[_0xce99('0x48')]=function(_0x2390c9,_0x4e638f){return db[_0xce99('0x40')][_0xce99('0x48')](_0x2390c9[_0xce99('0x49')],{})['then'](respondWithResult(_0x4e638f,0xc9))[_0xce99('0x44')](handleError(_0x4e638f,null));};exports[_0xce99('0x23')]=function(_0x3f27ee,_0x1ba7c8){if(_0x3f27ee[_0xce99('0x49')]['id']){delete _0x3f27ee[_0xce99('0x49')]['id'];}return db[_0xce99('0x40')][_0xce99('0x4a')]({'where':{'id':_0x3f27ee[_0xce99('0x46')]['id']}})[_0xce99('0x24')](handleEntityNotFound(_0x1ba7c8,null))['then'](saveUpdates(_0x3f27ee[_0xce99('0x49')],null))[_0xce99('0x24')](respondWithResult(_0x1ba7c8,null))[_0xce99('0x44')](handleError(_0x1ba7c8,null));};exports[_0xce99('0x25')]=function(_0x5f2b25,_0x426f63){return db[_0xce99('0x40')][_0xce99('0x4a')]({'where':{'id':_0x5f2b25[_0xce99('0x46')]['id']}})[_0xce99('0x24')](handleEntityNotFound(_0x426f63,null))[_0xce99('0x24')](removeEntity(_0x426f63,null))[_0xce99('0x44')](handleError(_0x426f63,null));};exports['getConfigurations']=function(_0x4926c6,_0x1ae542,_0x262092){var _0xc1ba06={};var _0x4d2c5c={};var _0x4599e4;var _0x484a38;return db['FreshdeskAccount'][_0xce99('0x4b')]({'where':{'id':_0x4926c6[_0xce99('0x46')]['id']}})['then'](handleEntityNotFound(_0x1ae542,null))[_0xce99('0x24')](function(_0x2c5f50){if(_0x2c5f50){_0x4599e4=_0x2c5f50;_0x4d2c5c[_0xce99('0x33')]=_['keys'](db[_0xce99('0x4c')][_0xce99('0x2c')]);_0x4d2c5c[_0xce99('0x31')]=_[_0xce99('0x47')](_0x4926c6[_0xce99('0x31')]);_0x4d2c5c[_0xce99('0x32')]=_['intersection'](_0x4d2c5c[_0xce99('0x33')],_0x4d2c5c['query']);_0xc1ba06[_0xce99('0x34')]=_[_0xce99('0x35')](_0x4d2c5c[_0xce99('0x33')],qs[_0xce99('0x36')](_0x4926c6[_0xce99('0x31')][_0xce99('0x36')]));_0xc1ba06[_0xce99('0x34')]=_0xc1ba06[_0xce99('0x34')][_0xce99('0x37')]?_0xc1ba06['attributes']:_0x4d2c5c[_0xce99('0x33')];_0xc1ba06[_0xce99('0x39')]=qs[_0xce99('0x3a')](_0x4926c6[_0xce99('0x31')][_0xce99('0x3a')]);_0xc1ba06['where']=qs[_0xce99('0x32')](_[_0xce99('0x3b')](_0x4926c6[_0xce99('0x31')],_0x4d2c5c['filters']));if(_0x4926c6[_0xce99('0x31')][_0xce99('0x3c')]){_0xc1ba06[_0xce99('0x4d')]=_[_0xce99('0x3d')](_0xc1ba06[_0xce99('0x4d')],{'$or':_['map'](_0xc1ba06[_0xce99('0x34')],function(_0x2675cd){var _0x576d17={};_0x576d17[_0x2675cd]={'$like':'%'+_0x4926c6[_0xce99('0x31')][_0xce99('0x3c')]+'%'};return _0x576d17;})});}_0xc1ba06=_[_0xce99('0x3d')]({},_0xc1ba06,_0x4926c6['options']);return _0x4599e4['getConfigurations'](_0xc1ba06);}})['then'](function(_0x3b6d0f){if(_0x3b6d0f){_0x484a38=_0x3b6d0f[_0xce99('0x37')];if(!_0x4926c6[_0xce99('0x31')][_0xce99('0x38')]('nolimit')){_0xc1ba06['limit']=qs[_0xce99('0x1c')](_0x4926c6[_0xce99('0x31')][_0xce99('0x1c')]);_0xc1ba06[_0xce99('0x1e')]=qs[_0xce99('0x1e')](_0x4926c6['query'][_0xce99('0x1e')]);}return _0x4599e4[_0xce99('0x4e')](_0xc1ba06);}})[_0xce99('0x24')](function(_0x326472){if(_0x326472){return _0x326472?{'count':_0x484a38,'rows':_0x326472}:null;}})[_0xce99('0x24')](respondWithResult(_0x1ae542,null))[_0xce99('0x44')](handleError(_0x1ae542,null));};exports[_0xce99('0x4f')]=function(_0x80fd5,_0x2d5442,_0x525268){if(_0x80fd5[_0xce99('0x49')]['id']){delete _0x80fd5['body']['id'];}return db['FreshdeskAccount'][_0xce99('0x4b')]({'where':{'id':_0x80fd5['params']['id']}})[_0xce99('0x24')](handleEntityNotFound(_0x2d5442,null))[_0xce99('0x24')](function(_0x401917){if(_0x401917){_0x80fd5[_0xce99('0x49')]['AccountId']=_0x401917['id'];_0x80fd5[_0xce99('0x49')][_0xce99('0x50')]=integrations[_0xce99('0x51')](_0x80fd5[_0xce99('0x49')][_0xce99('0x52')],_0x80fd5[_0xce99('0x49')]['type']);_0x80fd5[_0xce99('0x49')][_0xce99('0x53')]=integrations[_0xce99('0x54')](_0x80fd5[_0xce99('0x49')]['channel'],_0x80fd5['body'][_0xce99('0x2e')]);return db[_0xce99('0x4c')][_0xce99('0x48')](_0x80fd5['body'],{'include':[{'model':db[_0xce99('0x55')],'as':_0xce99('0x50')},{'model':db['FreshdeskField'],'as':_0xce99('0x53')}]});}return null;})[_0xce99('0x24')](respondWithResult(_0x2d5442,null))[_0xce99('0x44')](handleError(_0x2d5442,null));};exports['getFields']=function(_0x5e7547,_0x2408c1,_0x24626a){var _0x1d0033='';return db[_0xce99('0x40')]['findOne']({'where':{'id':_0x5e7547['params']['id']},'attributes':['id',_0xce99('0x56'),'apiKey']})['then'](handleEntityNotFound(_0x2408c1,null))[_0xce99('0x24')](function(_0x2168d7){if(_0x2168d7){_0x1d0033=_0x2168d7[_0xce99('0x56')];var _0x1687ab=_0x1d0033['slice'](-0x1);if(_0x1687ab==='/'){_0x1d0033=_0x1d0033[_0xce99('0x57')](0x0,_0x1d0033[_0xce99('0x58')](_0x1687ab));}return rp({'method':_0xce99('0x59'),'uri':util[_0xce99('0x5a')](_0xce99('0x5b'),_0x1d0033,'api/v2/ticket_fields'),'headers':{'Authorization':util[_0xce99('0x5a')](_0xce99('0x5c'),new Buffer(util[_0xce99('0x5a')](_0xce99('0x5d'),_0x2168d7[_0xce99('0x5e')]))[_0xce99('0x5f')]('base64'))},'json':!![]});}})[_0xce99('0x24')](function(_0x433d2e){if(_0x433d2e){var _0x330280=[_0xce99('0x60'),_0xce99('0x61'),_0xce99('0x62'),_0xce99('0x63'),_0xce99('0x1a'),_0xce99('0x64'),'group',_0xce99('0x65'),'ticket_type',_0xce99('0x66'),_0xce99('0x67')];_[_0xce99('0x68')](_0x433d2e,function(_0x4b3d4a){return _0x330280[_0xce99('0x69')](_0x4b3d4a[_0xce99('0x30')])||!_0x4b3d4a[_0xce99('0x6a')]&&_0x4b3d4a[_0xce99('0x2e')]!==_0xce99('0x6b')&&_0x4b3d4a[_0xce99('0x2e')]!=='custom_dropdown';});return{'count':_0x433d2e[_0xce99('0x37')],'rows':_[_0xce99('0x2b')](_0x433d2e,function(_0xcb2d9c){return{'id':_0xcb2d9c[_0xce99('0x30')],'name':_0xcb2d9c[_0xce99('0x6c')],'custom':!_0xcb2d9c['default'],'options':_0xcb2d9c[_0xce99('0x6d')]?_[_0xce99('0x2b')](_0xcb2d9c[_0xce99('0x6d')],function(_0x4e549c){return{'name':_[_0xce99('0x6e')](_0x4e549c),'value':_0x4e549c};}):[]};})};}})['then'](respondWithResult(_0x2408c1,null))[_0xce99('0x44')](function(_0x2e6f26){var _0x1e9e9a=_0x5e7547['query']['test']?0x1f4:_0x2e6f26[_0xce99('0x6f')]||0x1f4;logger[_0xce99('0x27')](_0xce99('0x70'),_0xce99('0x71'),_0x1e9e9a,JSON['stringify'](_0x2e6f26));delete _0x2e6f26[_0xce99('0x30')];if(_0x1e9e9a===0x191){_0x1e9e9a=0x190;}_0x2408c1['status'](_0x1e9e9a)[_0xce99('0x29')](_0x5e7547[_0xce99('0x31')][_0xce99('0x72')]?{'message':_0xce99('0x73'),'statusCode':_0x2e6f26[_0xce99('0x6f')]}:_0x2e6f26);});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0612=['../../components/integrations/configuration','exports','util','api','bluebird','request-promise','path'];(function(_0x3947c9,_0x4d6c97){var _0x2e7871=function(_0x1236cc){while(--_0x1236cc){_0x3947c9['push'](_0x3947c9['shift']());}};_0x2e7871(++_0x4d6c97);}(_0x0612,0xdb));var _0x2061=function(_0x4742a3,_0xbb80b1){_0x4742a3=_0x4742a3-0x0;var _0x10b1de=_0x0612[_0x4742a3];return _0x10b1de;};'use strict';var _=require('lodash');var util=require(_0x2061('0x0'));var logger=require('../../config/logger')(_0x2061('0x1'));var moment=require('moment');var BPromise=require(_0x2061('0x2'));var rp=require(_0x2061('0x3'));var fs=require('fs');var path=require(_0x2061('0x4'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require('./intFreshdeskAccount.attributes');var integrations=require(_0x2061('0x5'));module[_0x2061('0x6')]=function(_0x1dfbcf,_0x9a23ca){return _0x1dfbcf['define']('FreshdeskAccount',attributes,{'tableName':'int_freshdesk_accounts','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xd36e=['../../config/logger','api','moment','bluebird','request-promise','../../config/environment','./intFreshdeskAccount.attributes','../../components/integrations/configuration','define','lodash','util'];(function(_0x3d2ccf,_0x18a555){var _0x3a9aa7=function(_0x16131c){while(--_0x16131c){_0x3d2ccf['push'](_0x3d2ccf['shift']());}};_0x3a9aa7(++_0x18a555);}(_0xd36e,0x17f));var _0xed36=function(_0x21a9d9,_0x4d5ac8){_0x21a9d9=_0x21a9d9-0x0;var _0x46adce=_0xd36e[_0x21a9d9];return _0x46adce;};'use strict';var _=require(_0xed36('0x0'));var util=require(_0xed36('0x1'));var logger=require(_0xed36('0x2'))(_0xed36('0x3'));var moment=require(_0xed36('0x4'));var BPromise=require(_0xed36('0x5'));var rp=require(_0xed36('0x6'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0xed36('0x7'));var attributes=require(_0xed36('0x8'));var integrations=require(_0xed36('0x9'));module['exports']=function(_0x3cd009,_0x1654cb){return _0x3cd009[_0xed36('0xa')]('FreshdeskAccount',attributes,{'tableName':'int_freshdesk_accounts','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xee4d=['request\x20sent','debug','FreshdeskAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','GetFreshdeskAccount','options','where','attributes','limit','include','map','model','FreshdeskAccount','find','raw','ShowFreshdeskAccount','lodash','moment','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','http','info','FreshdeskAccount,\x20%s,\x20%s'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0xee4d,0x1a1));var _0xdee4=function(_0x1d1779,_0x284147){_0x1d1779=_0x1d1779-0x0;var _0x2377e9=_0xee4d[_0x1d1779];return _0x2377e9;};'use strict';var _=require(_0xdee4('0x0'));var util=require('util');var moment=require(_0xdee4('0x1'));var BPromise=require('bluebird');var rs=require(_0xdee4('0x2'));var fs=require('fs');var Redis=require(_0xdee4('0x3'));var db=require(_0xdee4('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0xdee4('0x5'))(_0xdee4('0x6'));var config=require(_0xdee4('0x7'));var jayson=require(_0xdee4('0x8'));var client=jayson['client'][_0xdee4('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x68b949,_0x502fd0,_0x7c68d){return new BPromise(function(_0x12252a,_0x1ca641){return client['request'](_0x68b949,_0x7c68d)['then'](function(_0x5b9882){logger[_0xdee4('0xa')](_0xdee4('0xb'),_0x502fd0,_0xdee4('0xc'));logger[_0xdee4('0xd')](_0xdee4('0xe'),_0x502fd0,_0xdee4('0xc'),JSON[_0xdee4('0xf')](_0x5b9882));if(_0x5b9882['error']){if(_0x5b9882[_0xdee4('0x10')][_0xdee4('0x11')]===0x1f4){logger['error'](_0xdee4('0xb'),_0x502fd0,_0x5b9882['error'][_0xdee4('0x12')]);return _0x1ca641(_0x5b9882[_0xdee4('0x10')]['message']);}logger['error']('FreshdeskAccount,\x20%s,\x20%s',_0x502fd0,_0x5b9882[_0xdee4('0x10')][_0xdee4('0x12')]);return _0x12252a(_0x5b9882[_0xdee4('0x10')][_0xdee4('0x12')]);}else{logger[_0xdee4('0xa')](_0xdee4('0xb'),_0x502fd0,'request\x20sent');_0x12252a(_0x5b9882[_0xdee4('0x13')][_0xdee4('0x12')]);}})[_0xdee4('0x14')](function(_0x3c9544){logger[_0xdee4('0x10')](_0xdee4('0xb'),_0x502fd0,_0x3c9544);_0x1ca641(_0x3c9544);});});}exports[_0xdee4('0x15')]=function(_0x220977){var _0x2c23ab=this;return new Promise(function(_0x56133a,_0x516ae9){return db['FreshdeskAccount']['findAll']({'raw':_0x220977['options']?_0x220977['options']['raw']===undefined?!![]:![]:!![],'where':_0x220977[_0xdee4('0x16')]?_0x220977[_0xdee4('0x16')][_0xdee4('0x17')]||null:null,'attributes':_0x220977['options']?_0x220977['options'][_0xdee4('0x18')]||null:null,'limit':_0x220977['options']?_0x220977[_0xdee4('0x16')][_0xdee4('0x19')]||null:null,'include':_0x220977[_0xdee4('0x16')]?_0x220977[_0xdee4('0x16')][_0xdee4('0x1a')]?_[_0xdee4('0x1b')](_0x220977[_0xdee4('0x16')][_0xdee4('0x1a')],function(_0x145fbe){return{'model':db[_0x145fbe[_0xdee4('0x1c')]],'as':_0x145fbe['as'],'attributes':_0x145fbe[_0xdee4('0x18')],'include':_0x145fbe['include']?_['map'](_0x145fbe[_0xdee4('0x1a')],function(_0x136094){return{'model':db[_0x136094[_0xdee4('0x1c')]],'as':_0x136094['as'],'attributes':_0x136094[_0xdee4('0x18')],'include':_0x136094[_0xdee4('0x1a')]?_[_0xdee4('0x1b')](_0x136094[_0xdee4('0x1a')],function(_0x54dc75){return{'model':db[_0x54dc75[_0xdee4('0x1c')]],'as':_0x54dc75['as'],'attributes':_0x54dc75[_0xdee4('0x18')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x1eb872){logger[_0xdee4('0xa')](_0xdee4('0x15'),_0x220977);logger[_0xdee4('0xd')](_0xdee4('0x15'),_0x220977,JSON[_0xdee4('0xf')](_0x1eb872));_0x56133a(_0x1eb872);})['catch'](function(_0x545b65){logger[_0xdee4('0x10')]('GetFreshdeskAccount',_0x545b65[_0xdee4('0x12')],_0x220977);_0x516ae9(_0x2c23ab[_0xdee4('0x10')](0x1f4,_0x545b65[_0xdee4('0x12')]));});});};exports['ShowFreshdeskAccount']=function(_0x195936){var _0x1a5e65=this;return new Promise(function(_0x4af58a,_0x2f2823){return db[_0xdee4('0x1d')][_0xdee4('0x1e')]({'raw':_0x195936[_0xdee4('0x16')]?_0x195936['options'][_0xdee4('0x1f')]===undefined?!![]:![]:!![],'where':_0x195936[_0xdee4('0x16')]?_0x195936[_0xdee4('0x16')][_0xdee4('0x17')]||null:null,'attributes':_0x195936['options']?_0x195936[_0xdee4('0x16')]['attributes']||null:null,'include':_0x195936[_0xdee4('0x16')]?_0x195936['options'][_0xdee4('0x1a')]?_[_0xdee4('0x1b')](_0x195936[_0xdee4('0x16')][_0xdee4('0x1a')],function(_0x1cb328){return{'model':db[_0x1cb328[_0xdee4('0x1c')]],'as':_0x1cb328['as'],'attributes':_0x1cb328[_0xdee4('0x18')],'include':_0x1cb328[_0xdee4('0x1a')]?_[_0xdee4('0x1b')](_0x1cb328[_0xdee4('0x1a')],function(_0xe7f52b){return{'model':db[_0xe7f52b['model']],'as':_0xe7f52b['as'],'attributes':_0xe7f52b['attributes'],'include':_0xe7f52b[_0xdee4('0x1a')]?_[_0xdee4('0x1b')](_0xe7f52b[_0xdee4('0x1a')],function(_0xed46f3){return{'model':db[_0xed46f3[_0xdee4('0x1c')]],'as':_0xed46f3['as'],'attributes':_0xed46f3[_0xdee4('0x18')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x2f25ef){logger[_0xdee4('0xa')](_0xdee4('0x20'),_0x195936);logger[_0xdee4('0xd')]('ShowFreshdeskAccount',_0x195936,JSON[_0xdee4('0xf')](_0x2f25ef));_0x4af58a(_0x2f25ef);})[_0xdee4('0x14')](function(_0x5a3b04){logger['error'](_0xdee4('0x20'),_0x5a3b04[_0xdee4('0x12')],_0x195936);_0x2f2823(_0x1a5e65[_0xdee4('0x10')](0x1f4,_0x5a3b04[_0xdee4('0x12')]));});});};
\ No newline at end of file
+var _0xeb3d=['debug','FreshdeskAccount,\x20%s,\x20%s,\x20%s','request\x20sent','error','code','message','info','catch','options','raw','where','attributes','include','map','model','GetFreshdeskAccount','stringify','ShowFreshdeskAccount','FreshdeskAccount','find','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','http','request','then','FreshdeskAccount,\x20%s,\x20%s'];(function(_0x5883e5,_0x331323){var _0x9a215b=function(_0x1b48a8){while(--_0x1b48a8){_0x5883e5['push'](_0x5883e5['shift']());}};_0x9a215b(++_0x331323);}(_0xeb3d,0x102));var _0xdeb3=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xeb3d[_0x20a584];return _0x4b41a8;};'use strict';var _=require(_0xdeb3('0x0'));var util=require('util');var moment=require(_0xdeb3('0x1'));var BPromise=require(_0xdeb3('0x2'));var rs=require(_0xdeb3('0x3'));var fs=require('fs');var Redis=require(_0xdeb3('0x4'));var db=require(_0xdeb3('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0xdeb3('0x6'))(_0xdeb3('0x7'));var config=require(_0xdeb3('0x8'));var jayson=require(_0xdeb3('0x9'));var client=jayson['client'][_0xdeb3('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x79dd65,_0x3743d2,_0x149371){return new BPromise(function(_0x3306f9,_0x1a4ac1){return client[_0xdeb3('0xb')](_0x79dd65,_0x149371)[_0xdeb3('0xc')](function(_0x246257){logger['info'](_0xdeb3('0xd'),_0x3743d2,'request\x20sent');logger[_0xdeb3('0xe')](_0xdeb3('0xf'),_0x3743d2,_0xdeb3('0x10'),JSON['stringify'](_0x246257));if(_0x246257[_0xdeb3('0x11')]){if(_0x246257[_0xdeb3('0x11')][_0xdeb3('0x12')]===0x1f4){logger[_0xdeb3('0x11')]('FreshdeskAccount,\x20%s,\x20%s',_0x3743d2,_0x246257['error'][_0xdeb3('0x13')]);return _0x1a4ac1(_0x246257[_0xdeb3('0x11')]['message']);}logger[_0xdeb3('0x11')](_0xdeb3('0xd'),_0x3743d2,_0x246257[_0xdeb3('0x11')]['message']);return _0x3306f9(_0x246257[_0xdeb3('0x11')][_0xdeb3('0x13')]);}else{logger[_0xdeb3('0x14')](_0xdeb3('0xd'),_0x3743d2,_0xdeb3('0x10'));_0x3306f9(_0x246257['result']['message']);}})[_0xdeb3('0x15')](function(_0x3a9b51){logger[_0xdeb3('0x11')](_0xdeb3('0xd'),_0x3743d2,_0x3a9b51);_0x1a4ac1(_0x3a9b51);});});}exports['GetFreshdeskAccount']=function(_0xaf05d8){var _0x415d52=this;return new Promise(function(_0x2d6440,_0xb5ff66){return db['FreshdeskAccount']['findAll']({'raw':_0xaf05d8[_0xdeb3('0x16')]?_0xaf05d8[_0xdeb3('0x16')][_0xdeb3('0x17')]===undefined?!![]:![]:!![],'where':_0xaf05d8['options']?_0xaf05d8['options'][_0xdeb3('0x18')]||null:null,'attributes':_0xaf05d8[_0xdeb3('0x16')]?_0xaf05d8[_0xdeb3('0x16')][_0xdeb3('0x19')]||null:null,'limit':_0xaf05d8['options']?_0xaf05d8[_0xdeb3('0x16')]['limit']||null:null,'include':_0xaf05d8[_0xdeb3('0x16')]?_0xaf05d8[_0xdeb3('0x16')][_0xdeb3('0x1a')]?_[_0xdeb3('0x1b')](_0xaf05d8['options'][_0xdeb3('0x1a')],function(_0x242dca){return{'model':db[_0x242dca[_0xdeb3('0x1c')]],'as':_0x242dca['as'],'attributes':_0x242dca[_0xdeb3('0x19')],'include':_0x242dca[_0xdeb3('0x1a')]?_['map'](_0x242dca[_0xdeb3('0x1a')],function(_0x36af25){return{'model':db[_0x36af25['model']],'as':_0x36af25['as'],'attributes':_0x36af25['attributes'],'include':_0x36af25[_0xdeb3('0x1a')]?_['map'](_0x36af25[_0xdeb3('0x1a')],function(_0x5d6083){return{'model':db[_0x5d6083['model']],'as':_0x5d6083['as'],'attributes':_0x5d6083[_0xdeb3('0x19')]};}):[]};}):[]};}):[]:[]})[_0xdeb3('0xc')](function(_0xc4b8c0){logger[_0xdeb3('0x14')]('GetFreshdeskAccount',_0xaf05d8);logger[_0xdeb3('0xe')](_0xdeb3('0x1d'),_0xaf05d8,JSON[_0xdeb3('0x1e')](_0xc4b8c0));_0x2d6440(_0xc4b8c0);})['catch'](function(_0x589f1e){logger[_0xdeb3('0x11')](_0xdeb3('0x1d'),_0x589f1e[_0xdeb3('0x13')],_0xaf05d8);_0xb5ff66(_0x415d52[_0xdeb3('0x11')](0x1f4,_0x589f1e[_0xdeb3('0x13')]));});});};exports[_0xdeb3('0x1f')]=function(_0xcbcd9b){var _0x41d03b=this;return new Promise(function(_0x5bc901,_0x3c31a9){return db[_0xdeb3('0x20')][_0xdeb3('0x21')]({'raw':_0xcbcd9b['options']?_0xcbcd9b[_0xdeb3('0x16')][_0xdeb3('0x17')]===undefined?!![]:![]:!![],'where':_0xcbcd9b[_0xdeb3('0x16')]?_0xcbcd9b[_0xdeb3('0x16')][_0xdeb3('0x18')]||null:null,'attributes':_0xcbcd9b['options']?_0xcbcd9b[_0xdeb3('0x16')][_0xdeb3('0x19')]||null:null,'include':_0xcbcd9b[_0xdeb3('0x16')]?_0xcbcd9b[_0xdeb3('0x16')][_0xdeb3('0x1a')]?_[_0xdeb3('0x1b')](_0xcbcd9b[_0xdeb3('0x16')][_0xdeb3('0x1a')],function(_0x187073){return{'model':db[_0x187073[_0xdeb3('0x1c')]],'as':_0x187073['as'],'attributes':_0x187073['attributes'],'include':_0x187073[_0xdeb3('0x1a')]?_[_0xdeb3('0x1b')](_0x187073[_0xdeb3('0x1a')],function(_0x29a1c0){return{'model':db[_0x29a1c0['model']],'as':_0x29a1c0['as'],'attributes':_0x29a1c0[_0xdeb3('0x19')],'include':_0x29a1c0[_0xdeb3('0x1a')]?_[_0xdeb3('0x1b')](_0x29a1c0[_0xdeb3('0x1a')],function(_0x85eb37){return{'model':db[_0x85eb37[_0xdeb3('0x1c')]],'as':_0x85eb37['as'],'attributes':_0x85eb37[_0xdeb3('0x19')]};}):[]};}):[]};}):[]:[]})[_0xdeb3('0xc')](function(_0x5549e3){logger[_0xdeb3('0x14')](_0xdeb3('0x1f'),_0xcbcd9b);logger['debug'](_0xdeb3('0x1f'),_0xcbcd9b,JSON['stringify'](_0x5549e3));_0x5bc901(_0x5549e3);})[_0xdeb3('0x15')](function(_0x2f4708){logger[_0xdeb3('0x11')](_0xdeb3('0x1f'),_0x2f4708[_0xdeb3('0x13')],_0xcbcd9b);_0x3c31a9(_0x41d03b[_0xdeb3('0x11')](0x1f4,_0x2f4708[_0xdeb3('0x13')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5841=['post','create','put','update','delete','exports','multer','util','path','express','../../components/auth/service','get','index','/:id','isAuthenticated','show','/:id/fields','getFields','/:id/subjects','getSubjects','/:id/descriptions','getDescriptions','/:id/tags','getTags'];(function(_0xaac80b,_0x51239f){var _0x1e554f=function(_0x1247d7){while(--_0x1247d7){_0xaac80b['push'](_0xaac80b['shift']());}};_0x1e554f(++_0x51239f);}(_0x5841,0x10e));var _0x1584=function(_0x5ce971,_0x5cf9a4){_0x5ce971=_0x5ce971-0x0;var _0x542ffd=_0x5841[_0x5ce971];return _0x542ffd;};'use strict';var multer=require(_0x1584('0x0'));var util=require(_0x1584('0x1'));var path=require(_0x1584('0x2'));var timeout=require('connect-timeout');var express=require(_0x1584('0x3'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0x1584('0x4'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require('./intFreshdeskConfiguration.controller');router[_0x1584('0x5')]('/',auth['isAuthenticated'](),controller[_0x1584('0x6')]);router['get'](_0x1584('0x7'),auth[_0x1584('0x8')](),controller[_0x1584('0x9')]);router[_0x1584('0x5')](_0x1584('0xa'),auth[_0x1584('0x8')](),controller[_0x1584('0xb')]);router[_0x1584('0x5')](_0x1584('0xc'),auth[_0x1584('0x8')](),controller[_0x1584('0xd')]);router[_0x1584('0x5')](_0x1584('0xe'),auth[_0x1584('0x8')](),controller[_0x1584('0xf')]);router[_0x1584('0x5')](_0x1584('0x10'),auth[_0x1584('0x8')](),controller[_0x1584('0x11')]);router[_0x1584('0x12')]('/',auth[_0x1584('0x8')](),controller[_0x1584('0x13')]);router['post'](_0x1584('0x10'),auth[_0x1584('0x8')](),controller['setTags']);router[_0x1584('0x14')](_0x1584('0x7'),auth['isAuthenticated'](),controller[_0x1584('0x15')]);router[_0x1584('0x16')](_0x1584('0x7'),auth[_0x1584('0x8')](),controller['destroy']);module[_0x1584('0x17')]=router;
\ No newline at end of file
+var _0x21ef=['fs-extra','../../components/auth/service','../../config/environment','./intFreshdeskConfiguration.controller','get','/:id','isAuthenticated','getFields','/:id/descriptions','getTags','create','post','/:id/tags','delete','destroy','exports','multer','util','path','connect-timeout','express','Router'];(function(_0x223635,_0x172b01){var _0x2971b2=function(_0x4b27ea){while(--_0x4b27ea){_0x223635['push'](_0x223635['shift']());}};_0x2971b2(++_0x172b01);}(_0x21ef,0x94));var _0xf21e=function(_0x597a5d,_0x353842){_0x597a5d=_0x597a5d-0x0;var _0x4bbe84=_0x21ef[_0x597a5d];return _0x4bbe84;};'use strict';var multer=require(_0xf21e('0x0'));var util=require(_0xf21e('0x1'));var path=require(_0xf21e('0x2'));var timeout=require(_0xf21e('0x3'));var express=require(_0xf21e('0x4'));var router=express[_0xf21e('0x5')]();var fs_extra=require(_0xf21e('0x6'));var auth=require(_0xf21e('0x7'));var interaction=require('../../components/interaction/service');var config=require(_0xf21e('0x8'));var controller=require(_0xf21e('0x9'));router[_0xf21e('0xa')]('/',auth['isAuthenticated'](),controller['index']);router[_0xf21e('0xa')](_0xf21e('0xb'),auth['isAuthenticated'](),controller['show']);router['get']('/:id/fields',auth[_0xf21e('0xc')](),controller[_0xf21e('0xd')]);router[_0xf21e('0xa')]('/:id/subjects',auth['isAuthenticated'](),controller['getSubjects']);router[_0xf21e('0xa')](_0xf21e('0xe'),auth['isAuthenticated'](),controller['getDescriptions']);router[_0xf21e('0xa')]('/:id/tags',auth[_0xf21e('0xc')](),controller[_0xf21e('0xf')]);router['post']('/',auth['isAuthenticated'](),controller[_0xf21e('0x10')]);router[_0xf21e('0x11')](_0xf21e('0x12'),auth[_0xf21e('0xc')](),controller['setTags']);router['put'](_0xf21e('0xb'),auth[_0xf21e('0xc')](),controller['update']);router[_0xf21e('0x13')](_0xf21e('0xb'),auth['isAuthenticated'](),controller[_0xf21e('0x14')]);module[_0xf21e('0x15')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xebac=['exports','STRING','sequelize'];(function(_0x5ad771,_0x34186f){var _0x5b5dce=function(_0x5ad0fb){while(--_0x5ad0fb){_0x5ad771['push'](_0x5ad771['shift']());}};_0x5b5dce(++_0x34186f);}(_0xebac,0x122));var _0xceba=function(_0x34f3c7,_0x393441){_0x34f3c7=_0x34f3c7-0x0;var _0x258767=_0xebac[_0x34f3c7];return _0x258767;};'use strict';var Sequelize=require(_0xceba('0x0'));module[_0xceba('0x1')]={'name':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0xceba('0x2')]}};
\ No newline at end of file
+var _0xa044=['sequelize','exports','STRING'];(function(_0xa464c9,_0x7c86d8){var _0x3d73c4=function(_0x5c2056){while(--_0x5c2056){_0xa464c9['push'](_0xa464c9['shift']());}};_0x3d73c4(++_0x7c86d8);}(_0xa044,0x165));var _0x4a04=function(_0x189852,_0x4f4c90){_0x189852=_0x189852-0x0;var _0x23a104=_0xa044[_0x189852];return _0x23a104;};'use strict';var Sequelize=require(_0x4a04('0x0'));module[_0x4a04('0x1')]={'name':{'type':Sequelize[_0x4a04('0x2')]},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbe7c=['lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','destroy','then','error','stack','index','rawAttributes','fieldName','type','map','name','query','keys','filters','model','attributes','fields','hasOwnProperty','nolimit','order','sort','where','filter','VIRTUAL','merge','FreshdeskConfiguration','includeAll','include','findAll','catch','params','intersection','length','options','create','body','find','getFields','getSubjects','findOne','FreshdeskField','Tag','pick','getTags','setTags','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','util','path','sox','to-csv','fs-extra'];(function(_0x13c9c7,_0x1d5dab){var _0x5bf201=function(_0x487272){while(--_0x487272){_0x13c9c7['push'](_0x13c9c7['shift']());}};_0x5bf201(++_0x1d5dab);}(_0xbe7c,0x1e7));var _0xcbe7=function(_0x3ab51d,_0x2fa01d){_0x3ab51d=_0x3ab51d-0x0;var _0x29a04e=_0xbe7c[_0x3ab51d];return _0x29a04e;};'use strict';var emlformat=require(_0xcbe7('0x0'));var rimraf=require(_0xcbe7('0x1'));var zipdir=require(_0xcbe7('0x2'));var jsonpatch=require(_0xcbe7('0x3'));var rp=require(_0xcbe7('0x4'));var moment=require('moment');var BPromise=require(_0xcbe7('0x5'));var Mustache=require('mustache');var util=require(_0xcbe7('0x6'));var path=require(_0xcbe7('0x7'));var sox=require(_0xcbe7('0x8'));var csv=require(_0xcbe7('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xcbe7('0xa'));var _=require(_0xcbe7('0xb'));var squel=require(_0xcbe7('0xc'));var crypto=require(_0xcbe7('0xd'));var jsforce=require(_0xcbe7('0xe'));var deskjs=require(_0xcbe7('0xf'));var toCsv=require(_0xcbe7('0x9'));var querystring=require('querystring');var Papa=require(_0xcbe7('0x10'));var Redis=require(_0xcbe7('0x11'));var authService=require(_0xcbe7('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0xcbe7('0x13'));var hardwareService=require(_0xcbe7('0x14'));var logger=require('../../config/logger')(_0xcbe7('0x15'));var utils=require(_0xcbe7('0x16'));var config=require(_0xcbe7('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0xcbe7('0x18'))['db'];function respondWithStatusCode(_0x5c8226,_0x4d6218){_0x4d6218=_0x4d6218||0xcc;return function(_0x3e8d90){if(_0x3e8d90){return _0x5c8226[_0xcbe7('0x19')](_0x4d6218);}return _0x5c8226[_0xcbe7('0x1a')](_0x4d6218)[_0xcbe7('0x1b')]();};}function respondWithResult(_0x414908,_0x2eff55){_0x2eff55=_0x2eff55||0xc8;return function(_0x52a587){if(_0x52a587){return _0x414908[_0xcbe7('0x1a')](_0x2eff55)[_0xcbe7('0x1c')](_0x52a587);}};}function respondWithFilteredResult(_0x4fd22b,_0x3c669e){return function(_0x261fdc){if(_0x261fdc){var _0x367d36=typeof _0x3c669e[_0xcbe7('0x1d')]===_0xcbe7('0x1e')&&typeof _0x3c669e[_0xcbe7('0x1f')]===_0xcbe7('0x1e');var _0x5a46fd=_0x261fdc['count'];var _0x16a00c=_0x367d36?0x0:_0x3c669e[_0xcbe7('0x1d')];var _0x2d9f25=_0x367d36?_0x261fdc[_0xcbe7('0x20')]:_0x3c669e[_0xcbe7('0x1d')]+_0x3c669e[_0xcbe7('0x1f')];var _0x6f8b2d;if(_0x2d9f25>=_0x5a46fd){_0x2d9f25=_0x5a46fd;_0x6f8b2d=0xc8;}else{_0x6f8b2d=0xce;}_0x4fd22b[_0xcbe7('0x1a')](_0x6f8b2d);return _0x4fd22b[_0xcbe7('0x21')](_0xcbe7('0x22'),_0x16a00c+'-'+_0x2d9f25+'/'+_0x5a46fd)['json'](_0x261fdc);}return null;};}function patchUpdates(_0x43e28a){return function(_0x2bf0da){try{jsonpatch[_0xcbe7('0x23')](_0x2bf0da,_0x43e28a,!![]);}catch(_0xcc4443){return BPromise[_0xcbe7('0x24')](_0xcc4443);}return _0x2bf0da[_0xcbe7('0x25')]();};}function saveUpdates(_0x64303,_0x540c20){return function(_0xf356b2){if(_0xf356b2){return _0xf356b2[_0xcbe7('0x26')](_0x64303)['then'](function(_0x4be7da){return _0x4be7da;});}return null;};}function removeEntity(_0xfa45b2,_0x381365){return function(_0x2a3b84){if(_0x2a3b84){return _0x2a3b84[_0xcbe7('0x27')]()[_0xcbe7('0x28')](function(){_0xfa45b2[_0xcbe7('0x1a')](0xcc)[_0xcbe7('0x1b')]();});}};}function handleEntityNotFound(_0x35b21e,_0x2d37e6){return function(_0x55932c){if(!_0x55932c){_0x35b21e[_0xcbe7('0x19')](0x194);}return _0x55932c;};}function handleError(_0x557ff5,_0x59fea0){_0x59fea0=_0x59fea0||0x1f4;return function(_0x47eaac){logger[_0xcbe7('0x29')](_0x47eaac[_0xcbe7('0x2a')]);if(_0x47eaac['name']){delete _0x47eaac['name'];}_0x557ff5[_0xcbe7('0x1a')](_0x59fea0)['send'](_0x47eaac);};}exports[_0xcbe7('0x2b')]=function(_0x402c28,_0x334c8f){var _0x3b7367={},_0x8a6712={},_0x132776={'count':0x0,'rows':[]};var _0x59e7a8=_['map'](db['FreshdeskConfiguration'][_0xcbe7('0x2c')],function(_0xd6f6ab){return{'name':_0xd6f6ab[_0xcbe7('0x2d')],'type':_0xd6f6ab[_0xcbe7('0x2e')]['key']};});_0x8a6712['model']=_[_0xcbe7('0x2f')](_0x59e7a8,_0xcbe7('0x30'));_0x8a6712[_0xcbe7('0x31')]=_[_0xcbe7('0x32')](_0x402c28[_0xcbe7('0x31')]);_0x8a6712[_0xcbe7('0x33')]=_['intersection'](_0x8a6712[_0xcbe7('0x34')],_0x8a6712[_0xcbe7('0x31')]);_0x3b7367[_0xcbe7('0x35')]=_['intersection'](_0x8a6712['model'],qs['fields'](_0x402c28[_0xcbe7('0x31')][_0xcbe7('0x36')]));_0x3b7367[_0xcbe7('0x35')]=_0x3b7367[_0xcbe7('0x35')]['length']?_0x3b7367['attributes']:_0x8a6712[_0xcbe7('0x34')];if(!_0x402c28['query'][_0xcbe7('0x37')](_0xcbe7('0x38'))){_0x3b7367[_0xcbe7('0x1f')]=qs[_0xcbe7('0x1f')](_0x402c28[_0xcbe7('0x31')][_0xcbe7('0x1f')]);_0x3b7367[_0xcbe7('0x1d')]=qs[_0xcbe7('0x1d')](_0x402c28[_0xcbe7('0x31')]['offset']);}_0x3b7367[_0xcbe7('0x39')]=qs[_0xcbe7('0x3a')](_0x402c28[_0xcbe7('0x31')]['sort']);_0x3b7367[_0xcbe7('0x3b')]=qs['filters'](_['pick'](_0x402c28[_0xcbe7('0x31')],_0x8a6712[_0xcbe7('0x33')]),_0x59e7a8);if(_0x402c28[_0xcbe7('0x31')][_0xcbe7('0x3c')]){_0x3b7367['where']=_['merge'](_0x3b7367['where'],{'$or':_[_0xcbe7('0x2f')](_0x59e7a8,function(_0x200484){if(_0x200484[_0xcbe7('0x2e')]!==_0xcbe7('0x3d')){var _0x5174e8={};_0x5174e8[_0x200484[_0xcbe7('0x30')]]={'$like':'%'+_0x402c28['query']['filter']+'%'};return _0x5174e8;}})});}_0x3b7367=_[_0xcbe7('0x3e')]({},_0x3b7367,_0x402c28['options']);var _0x3c25b8={'where':_0x3b7367[_0xcbe7('0x3b')]};return db[_0xcbe7('0x3f')][_0xcbe7('0x20')](_0x3c25b8)[_0xcbe7('0x28')](function(_0x2064f1){_0x132776[_0xcbe7('0x20')]=_0x2064f1;if(_0x402c28[_0xcbe7('0x31')][_0xcbe7('0x40')]){_0x3b7367[_0xcbe7('0x41')]=[{'all':!![]}];}return db[_0xcbe7('0x3f')][_0xcbe7('0x42')](_0x3b7367);})[_0xcbe7('0x28')](function(_0x28e3dd){_0x132776['rows']=_0x28e3dd;return _0x132776;})[_0xcbe7('0x28')](respondWithFilteredResult(_0x334c8f,_0x3b7367))[_0xcbe7('0x43')](handleError(_0x334c8f,null));};exports['show']=function(_0x51a17c,_0x229306){var _0x4ee227={'raw':![],'where':{'id':_0x51a17c[_0xcbe7('0x44')]['id']}},_0x343739={};_0x343739[_0xcbe7('0x34')]=_['keys'](db['FreshdeskConfiguration'][_0xcbe7('0x2c')]);_0x343739[_0xcbe7('0x31')]=_[_0xcbe7('0x32')](_0x51a17c[_0xcbe7('0x31')]);_0x343739[_0xcbe7('0x33')]=_[_0xcbe7('0x45')](_0x343739[_0xcbe7('0x34')],_0x343739[_0xcbe7('0x31')]);_0x4ee227['attributes']=_[_0xcbe7('0x45')](_0x343739[_0xcbe7('0x34')],qs[_0xcbe7('0x36')](_0x51a17c[_0xcbe7('0x31')][_0xcbe7('0x36')]));_0x4ee227['attributes']=_0x4ee227[_0xcbe7('0x35')][_0xcbe7('0x46')]?_0x4ee227[_0xcbe7('0x35')]:_0x343739['model'];if(_0x51a17c[_0xcbe7('0x31')][_0xcbe7('0x40')]){_0x4ee227['include']=[{'all':!![]}];}_0x4ee227=_[_0xcbe7('0x3e')]({},_0x4ee227,_0x51a17c[_0xcbe7('0x47')]);return db['FreshdeskConfiguration']['find'](_0x4ee227)[_0xcbe7('0x28')](handleEntityNotFound(_0x229306,null))[_0xcbe7('0x28')](respondWithResult(_0x229306,null))[_0xcbe7('0x43')](handleError(_0x229306,null));};exports[_0xcbe7('0x48')]=function(_0x49ce52,_0x4b932f){return db[_0xcbe7('0x3f')]['create'](_0x49ce52['body'],{})['then'](respondWithResult(_0x4b932f,0xc9))['catch'](handleError(_0x4b932f,null));};exports['update']=function(_0x39d6b8,_0x48e727){if(_0x39d6b8[_0xcbe7('0x49')]['id']){delete _0x39d6b8[_0xcbe7('0x49')]['id'];}return db[_0xcbe7('0x3f')][_0xcbe7('0x4a')]({'where':{'id':_0x39d6b8[_0xcbe7('0x44')]['id']}})[_0xcbe7('0x28')](handleEntityNotFound(_0x48e727,null))['then'](saveUpdates(_0x39d6b8[_0xcbe7('0x49')],null))[_0xcbe7('0x28')](respondWithResult(_0x48e727,null))['catch'](handleError(_0x48e727,null));};exports[_0xcbe7('0x27')]=function(_0x37bf43,_0x530448){return db[_0xcbe7('0x3f')][_0xcbe7('0x4a')]({'where':{'id':_0x37bf43[_0xcbe7('0x44')]['id']}})['then'](handleEntityNotFound(_0x530448,null))['then'](removeEntity(_0x530448,null))[_0xcbe7('0x43')](handleError(_0x530448,null));};exports[_0xcbe7('0x4b')]=function(_0x48a93c,_0x8955ea,_0x109c62){var _0x412d2e={};var _0x29942d={};var _0x43cea2;var _0x1db57e;return db['FreshdeskConfiguration']['findOne']({'where':{'id':_0x48a93c[_0xcbe7('0x44')]['id']}})[_0xcbe7('0x28')](handleEntityNotFound(_0x8955ea,null))['then'](function(_0x32c958){if(_0x32c958){_0x43cea2=_0x32c958;_0x29942d[_0xcbe7('0x34')]=_['keys'](db['FreshdeskField'][_0xcbe7('0x2c')]);_0x29942d[_0xcbe7('0x31')]=_[_0xcbe7('0x32')](_0x48a93c[_0xcbe7('0x31')]);_0x29942d['filters']=_[_0xcbe7('0x45')](_0x29942d[_0xcbe7('0x34')],_0x29942d[_0xcbe7('0x31')]);_0x412d2e['attributes']=_['intersection'](_0x29942d['model'],qs['fields'](_0x48a93c['query'][_0xcbe7('0x36')]));_0x412d2e[_0xcbe7('0x35')]=_0x412d2e[_0xcbe7('0x35')][_0xcbe7('0x46')]?_0x412d2e[_0xcbe7('0x35')]:_0x29942d[_0xcbe7('0x34')];_0x412d2e[_0xcbe7('0x39')]=qs['sort'](_0x48a93c[_0xcbe7('0x31')][_0xcbe7('0x3a')]);_0x412d2e[_0xcbe7('0x3b')]=qs[_0xcbe7('0x33')](_['pick'](_0x48a93c['query'],_0x29942d[_0xcbe7('0x33')]));if(_0x48a93c[_0xcbe7('0x31')][_0xcbe7('0x3c')]){_0x412d2e[_0xcbe7('0x3b')]=_[_0xcbe7('0x3e')](_0x412d2e[_0xcbe7('0x3b')],{'$or':_[_0xcbe7('0x2f')](_0x412d2e[_0xcbe7('0x35')],function(_0x4f7f1d){var _0x222bd0={};_0x222bd0[_0x4f7f1d]={'$like':'%'+_0x48a93c[_0xcbe7('0x31')][_0xcbe7('0x3c')]+'%'};return _0x222bd0;})});}_0x412d2e=_['merge']({},_0x412d2e,_0x48a93c['options']);return _0x43cea2[_0xcbe7('0x4b')](_0x412d2e);}})['then'](function(_0x336d92){if(_0x336d92){_0x1db57e=_0x336d92[_0xcbe7('0x46')];if(!_0x48a93c['query'][_0xcbe7('0x37')](_0xcbe7('0x38'))){_0x412d2e[_0xcbe7('0x1f')]=qs[_0xcbe7('0x1f')](_0x48a93c['query']['limit']);_0x412d2e[_0xcbe7('0x1d')]=qs['offset'](_0x48a93c[_0xcbe7('0x31')][_0xcbe7('0x1d')]);}return _0x43cea2['getFields'](_0x412d2e);}})[_0xcbe7('0x28')](function(_0x4896b6){if(_0x4896b6){return _0x4896b6?{'count':_0x1db57e,'rows':_0x4896b6}:null;}})[_0xcbe7('0x28')](respondWithResult(_0x8955ea,null))['catch'](handleError(_0x8955ea,null));};exports[_0xcbe7('0x4c')]=function(_0x2a62a1,_0x5112b8,_0x20ed66){var _0x32e6d9={};var _0x3ac087={};var _0x4b8da3;var _0x1d69e6;return db[_0xcbe7('0x3f')][_0xcbe7('0x4d')]({'where':{'id':_0x2a62a1[_0xcbe7('0x44')]['id']}})[_0xcbe7('0x28')](handleEntityNotFound(_0x5112b8,null))[_0xcbe7('0x28')](function(_0x140a87){if(_0x140a87){_0x4b8da3=_0x140a87;_0x3ac087[_0xcbe7('0x34')]=_[_0xcbe7('0x32')](db[_0xcbe7('0x4e')]['rawAttributes']);_0x3ac087[_0xcbe7('0x31')]=_[_0xcbe7('0x32')](_0x2a62a1[_0xcbe7('0x31')]);_0x3ac087[_0xcbe7('0x33')]=_['intersection'](_0x3ac087[_0xcbe7('0x34')],_0x3ac087['query']);_0x32e6d9['attributes']=_[_0xcbe7('0x45')](_0x3ac087[_0xcbe7('0x34')],qs[_0xcbe7('0x36')](_0x2a62a1[_0xcbe7('0x31')][_0xcbe7('0x36')]));_0x32e6d9[_0xcbe7('0x35')]=_0x32e6d9[_0xcbe7('0x35')][_0xcbe7('0x46')]?_0x32e6d9[_0xcbe7('0x35')]:_0x3ac087[_0xcbe7('0x34')];_0x32e6d9[_0xcbe7('0x39')]=qs[_0xcbe7('0x3a')](_0x2a62a1[_0xcbe7('0x31')][_0xcbe7('0x3a')]);_0x32e6d9[_0xcbe7('0x3b')]=qs[_0xcbe7('0x33')](_['pick'](_0x2a62a1[_0xcbe7('0x31')],_0x3ac087[_0xcbe7('0x33')]));if(_0x2a62a1[_0xcbe7('0x31')][_0xcbe7('0x3c')]){_0x32e6d9[_0xcbe7('0x3b')]=_[_0xcbe7('0x3e')](_0x32e6d9[_0xcbe7('0x3b')],{'$or':_[_0xcbe7('0x2f')](_0x32e6d9['attributes'],function(_0x4e3c41){var _0x3019b2={};_0x3019b2[_0x4e3c41]={'$like':'%'+_0x2a62a1['query'][_0xcbe7('0x3c')]+'%'};return _0x3019b2;})});}_0x32e6d9=_[_0xcbe7('0x3e')]({},_0x32e6d9,_0x2a62a1[_0xcbe7('0x47')]);return _0x4b8da3['getSubjects'](_0x32e6d9);}})[_0xcbe7('0x28')](function(_0x1ac559){if(_0x1ac559){_0x1d69e6=_0x1ac559[_0xcbe7('0x46')];if(!_0x2a62a1['query'][_0xcbe7('0x37')](_0xcbe7('0x38'))){_0x32e6d9[_0xcbe7('0x1f')]=qs['limit'](_0x2a62a1[_0xcbe7('0x31')][_0xcbe7('0x1f')]);_0x32e6d9['offset']=qs[_0xcbe7('0x1d')](_0x2a62a1[_0xcbe7('0x31')][_0xcbe7('0x1d')]);}return _0x4b8da3[_0xcbe7('0x4c')](_0x32e6d9);}})['then'](function(_0x231d91){if(_0x231d91){return _0x231d91?{'count':_0x1d69e6,'rows':_0x231d91}:null;}})['then'](respondWithResult(_0x5112b8,null))[_0xcbe7('0x43')](handleError(_0x5112b8,null));};exports['getDescriptions']=function(_0x3d73ce,_0x2ab365,_0x58f886){var _0x45fdbd={};var _0x5c8657={};var _0x218893;var _0x4072d5;return db[_0xcbe7('0x3f')][_0xcbe7('0x4d')]({'where':{'id':_0x3d73ce[_0xcbe7('0x44')]['id']}})['then'](handleEntityNotFound(_0x2ab365,null))[_0xcbe7('0x28')](function(_0x20a592){if(_0x20a592){_0x218893=_0x20a592;_0x5c8657[_0xcbe7('0x34')]=_[_0xcbe7('0x32')](db['FreshdeskField']['rawAttributes']);_0x5c8657['query']=_[_0xcbe7('0x32')](_0x3d73ce[_0xcbe7('0x31')]);_0x5c8657[_0xcbe7('0x33')]=_[_0xcbe7('0x45')](_0x5c8657[_0xcbe7('0x34')],_0x5c8657[_0xcbe7('0x31')]);_0x45fdbd[_0xcbe7('0x35')]=_[_0xcbe7('0x45')](_0x5c8657['model'],qs[_0xcbe7('0x36')](_0x3d73ce['query'][_0xcbe7('0x36')]));_0x45fdbd[_0xcbe7('0x35')]=_0x45fdbd[_0xcbe7('0x35')][_0xcbe7('0x46')]?_0x45fdbd[_0xcbe7('0x35')]:_0x5c8657[_0xcbe7('0x34')];_0x45fdbd[_0xcbe7('0x39')]=qs['sort'](_0x3d73ce[_0xcbe7('0x31')]['sort']);_0x45fdbd[_0xcbe7('0x3b')]=qs['filters'](_['pick'](_0x3d73ce[_0xcbe7('0x31')],_0x5c8657[_0xcbe7('0x33')]));if(_0x3d73ce['query']['filter']){_0x45fdbd[_0xcbe7('0x3b')]=_['merge'](_0x45fdbd['where'],{'$or':_[_0xcbe7('0x2f')](_0x45fdbd[_0xcbe7('0x35')],function(_0x28b0cf){var _0x5ef43f={};_0x5ef43f[_0x28b0cf]={'$like':'%'+_0x3d73ce[_0xcbe7('0x31')][_0xcbe7('0x3c')]+'%'};return _0x5ef43f;})});}_0x45fdbd=_['merge']({},_0x45fdbd,_0x3d73ce[_0xcbe7('0x47')]);return _0x218893['getDescriptions'](_0x45fdbd);}})[_0xcbe7('0x28')](function(_0x5e0a59){if(_0x5e0a59){_0x4072d5=_0x5e0a59[_0xcbe7('0x46')];if(!_0x3d73ce['query']['hasOwnProperty'](_0xcbe7('0x38'))){_0x45fdbd[_0xcbe7('0x1f')]=qs[_0xcbe7('0x1f')](_0x3d73ce[_0xcbe7('0x31')]['limit']);_0x45fdbd[_0xcbe7('0x1d')]=qs[_0xcbe7('0x1d')](_0x3d73ce[_0xcbe7('0x31')]['offset']);}return _0x218893['getDescriptions'](_0x45fdbd);}})[_0xcbe7('0x28')](function(_0x31dbb1){if(_0x31dbb1){return _0x31dbb1?{'count':_0x4072d5,'rows':_0x31dbb1}:null;}})['then'](respondWithResult(_0x2ab365,null))[_0xcbe7('0x43')](handleError(_0x2ab365,null));};exports['getTags']=function(_0x458701,_0x3c55d9,_0x2148f9){var _0x2155db={};var _0x10afa8={};var _0x327df0;var _0x273741;return db[_0xcbe7('0x3f')][_0xcbe7('0x4d')]({'where':{'id':_0x458701['params']['id']}})['then'](handleEntityNotFound(_0x3c55d9,null))[_0xcbe7('0x28')](function(_0x42227a){if(_0x42227a){_0x327df0=_0x42227a;_0x10afa8[_0xcbe7('0x34')]=_['keys'](db[_0xcbe7('0x4f')][_0xcbe7('0x2c')]);_0x10afa8[_0xcbe7('0x31')]=_[_0xcbe7('0x32')](_0x458701[_0xcbe7('0x31')]);_0x10afa8[_0xcbe7('0x33')]=_['intersection'](_0x10afa8[_0xcbe7('0x34')],_0x10afa8['query']);_0x2155db[_0xcbe7('0x35')]=_[_0xcbe7('0x45')](_0x10afa8[_0xcbe7('0x34')],qs['fields'](_0x458701[_0xcbe7('0x31')][_0xcbe7('0x36')]));_0x2155db[_0xcbe7('0x35')]=_0x2155db['attributes']['length']?_0x2155db['attributes']:_0x10afa8[_0xcbe7('0x34')];_0x2155db[_0xcbe7('0x39')]=qs['sort'](_0x458701[_0xcbe7('0x31')][_0xcbe7('0x3a')]);_0x2155db[_0xcbe7('0x3b')]=qs[_0xcbe7('0x33')](_[_0xcbe7('0x50')](_0x458701[_0xcbe7('0x31')],_0x10afa8[_0xcbe7('0x33')]));if(_0x458701[_0xcbe7('0x31')]['filter']){_0x2155db['where']=_[_0xcbe7('0x3e')](_0x2155db[_0xcbe7('0x3b')],{'$or':_['map'](_0x2155db[_0xcbe7('0x35')],function(_0x48fc0c){var _0x3446c5={};_0x3446c5[_0x48fc0c]={'$like':'%'+_0x458701[_0xcbe7('0x31')]['filter']+'%'};return _0x3446c5;})});}_0x2155db=_[_0xcbe7('0x3e')]({},_0x2155db,_0x458701[_0xcbe7('0x47')]);return _0x327df0[_0xcbe7('0x51')](_0x2155db);}})[_0xcbe7('0x28')](function(_0x4f59cd){if(_0x4f59cd){_0x273741=_0x4f59cd[_0xcbe7('0x46')];if(!_0x458701['query'][_0xcbe7('0x37')](_0xcbe7('0x38'))){_0x2155db['limit']=qs[_0xcbe7('0x1f')](_0x458701[_0xcbe7('0x31')]['limit']);_0x2155db['offset']=qs[_0xcbe7('0x1d')](_0x458701[_0xcbe7('0x31')][_0xcbe7('0x1d')]);}return _0x327df0[_0xcbe7('0x51')](_0x2155db);}})['then'](function(_0x1443c0){if(_0x1443c0){return _0x1443c0?{'count':_0x273741,'rows':_0x1443c0}:null;}})['then'](respondWithResult(_0x3c55d9,null))[_0xcbe7('0x43')](handleError(_0x3c55d9,null));};exports[_0xcbe7('0x52')]=function(_0x4e1ec8,_0x524d9a,_0x54d8dc){if(_0x4e1ec8[_0xcbe7('0x49')]['id']){delete _0x4e1ec8[_0xcbe7('0x49')]['id'];}return db[_0xcbe7('0x3f')]['findOne']({'where':{'id':_0x4e1ec8[_0xcbe7('0x44')]['id']}})[_0xcbe7('0x28')](handleEntityNotFound(_0x524d9a,null))[_0xcbe7('0x28')](function(_0x572e6d){if(_0x572e6d){return _0x572e6d['setTags'](_0x4e1ec8['body']['ids']||[]);}return null;})['then'](respondWithResult(_0x524d9a,null))[_0xcbe7('0x43')](handleError(_0x524d9a,null));};
\ No newline at end of file
+var _0xdb3d=['path','ejs','fs-extra','squel','crypto','jsforce','to-csv','papaparse','../../components/auth/service','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','undefined','count','limit','set','json','apply','reject','save','update','then','destroy','error','stack','name','send','index','rawAttributes','fieldName','type','key','model','map','query','keys','intersection','fields','attributes','nolimit','order','sort','where','filters','pick','merge','VIRTUAL','FreshdeskConfiguration','include','findAll','catch','show','length','includeAll','options','find','body','params','findOne','FreshdeskField','filter','getFields','getSubjects','hasOwnProperty','getDescriptions','getTags','setTags','ids','eml-format','rimraf','request-promise','moment','bluebird','mustache','util'];(function(_0x5eebb2,_0x46b5be){var _0x4d3e0e=function(_0x2efd04){while(--_0x2efd04){_0x5eebb2['push'](_0x5eebb2['shift']());}};_0x4d3e0e(++_0x46b5be);}(_0xdb3d,0x193));var _0xddb3=function(_0x125bad,_0x4bc955){_0x125bad=_0x125bad-0x0;var _0x40e256=_0xdb3d[_0x125bad];return _0x40e256;};'use strict';var emlformat=require(_0xddb3('0x0'));var rimraf=require(_0xddb3('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0xddb3('0x2'));var moment=require(_0xddb3('0x3'));var BPromise=require(_0xddb3('0x4'));var Mustache=require(_0xddb3('0x5'));var util=require(_0xddb3('0x6'));var path=require(_0xddb3('0x7'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0xddb3('0x8'));var fs=require('fs');var fs_extra=require(_0xddb3('0x9'));var _=require('lodash');var squel=require(_0xddb3('0xa'));var crypto=require(_0xddb3('0xb'));var jsforce=require(_0xddb3('0xc'));var deskjs=require('desk.js');var toCsv=require(_0xddb3('0xd'));var querystring=require('querystring');var Papa=require(_0xddb3('0xe'));var Redis=require('ioredis');var authService=require(_0xddb3('0xf'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xddb3('0x10'));var logger=require(_0xddb3('0x11'))('api');var utils=require(_0xddb3('0x12'));var config=require(_0xddb3('0x13'));var licenseUtil=require(_0xddb3('0x14'));var db=require(_0xddb3('0x15'))['db'];function respondWithStatusCode(_0x6a5268,_0x3f7b0b){_0x3f7b0b=_0x3f7b0b||0xcc;return function(_0x522210){if(_0x522210){return _0x6a5268[_0xddb3('0x16')](_0x3f7b0b);}return _0x6a5268[_0xddb3('0x17')](_0x3f7b0b)[_0xddb3('0x18')]();};}function respondWithResult(_0x39cb99,_0xfffc95){_0xfffc95=_0xfffc95||0xc8;return function(_0x4d9ada){if(_0x4d9ada){return _0x39cb99[_0xddb3('0x17')](_0xfffc95)['json'](_0x4d9ada);}};}function respondWithFilteredResult(_0x56d35d,_0x38af2d){return function(_0x1fdf10){if(_0x1fdf10){var _0x39bf4a=typeof _0x38af2d[_0xddb3('0x19')]===_0xddb3('0x1a')&&typeof _0x38af2d['limit']==='undefined';var _0x26b499=_0x1fdf10[_0xddb3('0x1b')];var _0x5cc254=_0x39bf4a?0x0:_0x38af2d[_0xddb3('0x19')];var _0x2c0961=_0x39bf4a?_0x1fdf10[_0xddb3('0x1b')]:_0x38af2d['offset']+_0x38af2d[_0xddb3('0x1c')];var _0x55ecaf;if(_0x2c0961>=_0x26b499){_0x2c0961=_0x26b499;_0x55ecaf=0xc8;}else{_0x55ecaf=0xce;}_0x56d35d[_0xddb3('0x17')](_0x55ecaf);return _0x56d35d[_0xddb3('0x1d')]('Content-Range',_0x5cc254+'-'+_0x2c0961+'/'+_0x26b499)[_0xddb3('0x1e')](_0x1fdf10);}return null;};}function patchUpdates(_0x373ae3){return function(_0x11f19a){try{jsonpatch[_0xddb3('0x1f')](_0x11f19a,_0x373ae3,!![]);}catch(_0x290687){return BPromise[_0xddb3('0x20')](_0x290687);}return _0x11f19a[_0xddb3('0x21')]();};}function saveUpdates(_0x462a70,_0x58fc38){return function(_0x1911b0){if(_0x1911b0){return _0x1911b0[_0xddb3('0x22')](_0x462a70)[_0xddb3('0x23')](function(_0xf88463){return _0xf88463;});}return null;};}function removeEntity(_0x2306ba,_0x450216){return function(_0x43793e){if(_0x43793e){return _0x43793e[_0xddb3('0x24')]()[_0xddb3('0x23')](function(){_0x2306ba['status'](0xcc)[_0xddb3('0x18')]();});}};}function handleEntityNotFound(_0x37e578,_0x30978d){return function(_0x22df69){if(!_0x22df69){_0x37e578['sendStatus'](0x194);}return _0x22df69;};}function handleError(_0x540a45,_0x28be77){_0x28be77=_0x28be77||0x1f4;return function(_0x5443db){logger[_0xddb3('0x25')](_0x5443db[_0xddb3('0x26')]);if(_0x5443db[_0xddb3('0x27')]){delete _0x5443db['name'];}_0x540a45[_0xddb3('0x17')](_0x28be77)[_0xddb3('0x28')](_0x5443db);};}exports[_0xddb3('0x29')]=function(_0x4f0288,_0x3f2964){var _0x1885b8={},_0x1888db={},_0x226c56={'count':0x0,'rows':[]};var _0x1810ed=_['map'](db['FreshdeskConfiguration'][_0xddb3('0x2a')],function(_0xc8db2b){return{'name':_0xc8db2b[_0xddb3('0x2b')],'type':_0xc8db2b[_0xddb3('0x2c')][_0xddb3('0x2d')]};});_0x1888db[_0xddb3('0x2e')]=_[_0xddb3('0x2f')](_0x1810ed,_0xddb3('0x27'));_0x1888db[_0xddb3('0x30')]=_[_0xddb3('0x31')](_0x4f0288[_0xddb3('0x30')]);_0x1888db['filters']=_[_0xddb3('0x32')](_0x1888db['model'],_0x1888db[_0xddb3('0x30')]);_0x1885b8['attributes']=_[_0xddb3('0x32')](_0x1888db[_0xddb3('0x2e')],qs[_0xddb3('0x33')](_0x4f0288[_0xddb3('0x30')][_0xddb3('0x33')]));_0x1885b8[_0xddb3('0x34')]=_0x1885b8[_0xddb3('0x34')]['length']?_0x1885b8[_0xddb3('0x34')]:_0x1888db[_0xddb3('0x2e')];if(!_0x4f0288[_0xddb3('0x30')]['hasOwnProperty'](_0xddb3('0x35'))){_0x1885b8[_0xddb3('0x1c')]=qs[_0xddb3('0x1c')](_0x4f0288[_0xddb3('0x30')]['limit']);_0x1885b8[_0xddb3('0x19')]=qs[_0xddb3('0x19')](_0x4f0288[_0xddb3('0x30')]['offset']);}_0x1885b8[_0xddb3('0x36')]=qs['sort'](_0x4f0288['query'][_0xddb3('0x37')]);_0x1885b8[_0xddb3('0x38')]=qs[_0xddb3('0x39')](_[_0xddb3('0x3a')](_0x4f0288[_0xddb3('0x30')],_0x1888db[_0xddb3('0x39')]),_0x1810ed);if(_0x4f0288[_0xddb3('0x30')]['filter']){_0x1885b8[_0xddb3('0x38')]=_[_0xddb3('0x3b')](_0x1885b8[_0xddb3('0x38')],{'$or':_[_0xddb3('0x2f')](_0x1810ed,function(_0x106f42){if(_0x106f42[_0xddb3('0x2c')]!==_0xddb3('0x3c')){var _0x481475={};_0x481475[_0x106f42[_0xddb3('0x27')]]={'$like':'%'+_0x4f0288[_0xddb3('0x30')]['filter']+'%'};return _0x481475;}})});}_0x1885b8=_[_0xddb3('0x3b')]({},_0x1885b8,_0x4f0288['options']);var _0x31b8e5={'where':_0x1885b8[_0xddb3('0x38')]};return db[_0xddb3('0x3d')][_0xddb3('0x1b')](_0x31b8e5)[_0xddb3('0x23')](function(_0x401b2d){_0x226c56['count']=_0x401b2d;if(_0x4f0288[_0xddb3('0x30')]['includeAll']){_0x1885b8[_0xddb3('0x3e')]=[{'all':!![]}];}return db[_0xddb3('0x3d')][_0xddb3('0x3f')](_0x1885b8);})[_0xddb3('0x23')](function(_0x456c1d){_0x226c56['rows']=_0x456c1d;return _0x226c56;})[_0xddb3('0x23')](respondWithFilteredResult(_0x3f2964,_0x1885b8))[_0xddb3('0x40')](handleError(_0x3f2964,null));};exports[_0xddb3('0x41')]=function(_0x5599a5,_0x40204c){var _0x2f21af={'raw':![],'where':{'id':_0x5599a5['params']['id']}},_0x1bba1a={};_0x1bba1a[_0xddb3('0x2e')]=_[_0xddb3('0x31')](db['FreshdeskConfiguration'][_0xddb3('0x2a')]);_0x1bba1a[_0xddb3('0x30')]=_['keys'](_0x5599a5['query']);_0x1bba1a[_0xddb3('0x39')]=_[_0xddb3('0x32')](_0x1bba1a[_0xddb3('0x2e')],_0x1bba1a['query']);_0x2f21af[_0xddb3('0x34')]=_[_0xddb3('0x32')](_0x1bba1a[_0xddb3('0x2e')],qs[_0xddb3('0x33')](_0x5599a5[_0xddb3('0x30')]['fields']));_0x2f21af[_0xddb3('0x34')]=_0x2f21af[_0xddb3('0x34')][_0xddb3('0x42')]?_0x2f21af[_0xddb3('0x34')]:_0x1bba1a[_0xddb3('0x2e')];if(_0x5599a5['query'][_0xddb3('0x43')]){_0x2f21af[_0xddb3('0x3e')]=[{'all':!![]}];}_0x2f21af=_[_0xddb3('0x3b')]({},_0x2f21af,_0x5599a5[_0xddb3('0x44')]);return db[_0xddb3('0x3d')][_0xddb3('0x45')](_0x2f21af)['then'](handleEntityNotFound(_0x40204c,null))[_0xddb3('0x23')](respondWithResult(_0x40204c,null))[_0xddb3('0x40')](handleError(_0x40204c,null));};exports['create']=function(_0x131ebc,_0x1c568c){return db[_0xddb3('0x3d')]['create'](_0x131ebc[_0xddb3('0x46')],{})['then'](respondWithResult(_0x1c568c,0xc9))[_0xddb3('0x40')](handleError(_0x1c568c,null));};exports[_0xddb3('0x22')]=function(_0x50c62d,_0x2800e){if(_0x50c62d[_0xddb3('0x46')]['id']){delete _0x50c62d[_0xddb3('0x46')]['id'];}return db['FreshdeskConfiguration']['find']({'where':{'id':_0x50c62d['params']['id']}})[_0xddb3('0x23')](handleEntityNotFound(_0x2800e,null))['then'](saveUpdates(_0x50c62d[_0xddb3('0x46')],null))['then'](respondWithResult(_0x2800e,null))[_0xddb3('0x40')](handleError(_0x2800e,null));};exports[_0xddb3('0x24')]=function(_0x9bc18f,_0xe4fe07){return db[_0xddb3('0x3d')][_0xddb3('0x45')]({'where':{'id':_0x9bc18f[_0xddb3('0x47')]['id']}})[_0xddb3('0x23')](handleEntityNotFound(_0xe4fe07,null))[_0xddb3('0x23')](removeEntity(_0xe4fe07,null))[_0xddb3('0x40')](handleError(_0xe4fe07,null));};exports['getFields']=function(_0xeb9706,_0x425765,_0x452eed){var _0x406489={};var _0x4b475a={};var _0x4e0857;var _0x19370d;return db[_0xddb3('0x3d')][_0xddb3('0x48')]({'where':{'id':_0xeb9706['params']['id']}})[_0xddb3('0x23')](handleEntityNotFound(_0x425765,null))['then'](function(_0x4b260c){if(_0x4b260c){_0x4e0857=_0x4b260c;_0x4b475a[_0xddb3('0x2e')]=_['keys'](db[_0xddb3('0x49')][_0xddb3('0x2a')]);_0x4b475a[_0xddb3('0x30')]=_[_0xddb3('0x31')](_0xeb9706[_0xddb3('0x30')]);_0x4b475a[_0xddb3('0x39')]=_['intersection'](_0x4b475a['model'],_0x4b475a[_0xddb3('0x30')]);_0x406489[_0xddb3('0x34')]=_[_0xddb3('0x32')](_0x4b475a['model'],qs['fields'](_0xeb9706['query'][_0xddb3('0x33')]));_0x406489['attributes']=_0x406489[_0xddb3('0x34')][_0xddb3('0x42')]?_0x406489[_0xddb3('0x34')]:_0x4b475a[_0xddb3('0x2e')];_0x406489[_0xddb3('0x36')]=qs[_0xddb3('0x37')](_0xeb9706[_0xddb3('0x30')][_0xddb3('0x37')]);_0x406489[_0xddb3('0x38')]=qs[_0xddb3('0x39')](_[_0xddb3('0x3a')](_0xeb9706['query'],_0x4b475a['filters']));if(_0xeb9706['query'][_0xddb3('0x4a')]){_0x406489['where']=_[_0xddb3('0x3b')](_0x406489[_0xddb3('0x38')],{'$or':_[_0xddb3('0x2f')](_0x406489[_0xddb3('0x34')],function(_0x4276dd){var _0x7c14a4={};_0x7c14a4[_0x4276dd]={'$like':'%'+_0xeb9706['query'][_0xddb3('0x4a')]+'%'};return _0x7c14a4;})});}_0x406489=_[_0xddb3('0x3b')]({},_0x406489,_0xeb9706[_0xddb3('0x44')]);return _0x4e0857[_0xddb3('0x4b')](_0x406489);}})[_0xddb3('0x23')](function(_0x2ec330){if(_0x2ec330){_0x19370d=_0x2ec330['length'];if(!_0xeb9706[_0xddb3('0x30')]['hasOwnProperty'](_0xddb3('0x35'))){_0x406489['limit']=qs[_0xddb3('0x1c')](_0xeb9706['query'][_0xddb3('0x1c')]);_0x406489[_0xddb3('0x19')]=qs[_0xddb3('0x19')](_0xeb9706['query'][_0xddb3('0x19')]);}return _0x4e0857['getFields'](_0x406489);}})[_0xddb3('0x23')](function(_0x37f490){if(_0x37f490){return _0x37f490?{'count':_0x19370d,'rows':_0x37f490}:null;}})[_0xddb3('0x23')](respondWithResult(_0x425765,null))[_0xddb3('0x40')](handleError(_0x425765,null));};exports[_0xddb3('0x4c')]=function(_0x29e368,_0x3ce211,_0xf64beb){var _0x4c388c={};var _0x2da604={};var _0x916d3e;var _0x2aa983;return db[_0xddb3('0x3d')][_0xddb3('0x48')]({'where':{'id':_0x29e368[_0xddb3('0x47')]['id']}})['then'](handleEntityNotFound(_0x3ce211,null))[_0xddb3('0x23')](function(_0x3f5060){if(_0x3f5060){_0x916d3e=_0x3f5060;_0x2da604[_0xddb3('0x2e')]=_['keys'](db[_0xddb3('0x49')]['rawAttributes']);_0x2da604['query']=_[_0xddb3('0x31')](_0x29e368['query']);_0x2da604[_0xddb3('0x39')]=_['intersection'](_0x2da604[_0xddb3('0x2e')],_0x2da604[_0xddb3('0x30')]);_0x4c388c['attributes']=_[_0xddb3('0x32')](_0x2da604[_0xddb3('0x2e')],qs[_0xddb3('0x33')](_0x29e368[_0xddb3('0x30')]['fields']));_0x4c388c[_0xddb3('0x34')]=_0x4c388c['attributes']['length']?_0x4c388c[_0xddb3('0x34')]:_0x2da604[_0xddb3('0x2e')];_0x4c388c[_0xddb3('0x36')]=qs[_0xddb3('0x37')](_0x29e368[_0xddb3('0x30')][_0xddb3('0x37')]);_0x4c388c[_0xddb3('0x38')]=qs['filters'](_[_0xddb3('0x3a')](_0x29e368[_0xddb3('0x30')],_0x2da604[_0xddb3('0x39')]));if(_0x29e368['query'][_0xddb3('0x4a')]){_0x4c388c[_0xddb3('0x38')]=_['merge'](_0x4c388c['where'],{'$or':_[_0xddb3('0x2f')](_0x4c388c[_0xddb3('0x34')],function(_0xcf29b4){var _0x27cc38={};_0x27cc38[_0xcf29b4]={'$like':'%'+_0x29e368[_0xddb3('0x30')][_0xddb3('0x4a')]+'%'};return _0x27cc38;})});}_0x4c388c=_[_0xddb3('0x3b')]({},_0x4c388c,_0x29e368[_0xddb3('0x44')]);return _0x916d3e[_0xddb3('0x4c')](_0x4c388c);}})['then'](function(_0xce6518){if(_0xce6518){_0x2aa983=_0xce6518['length'];if(!_0x29e368['query'][_0xddb3('0x4d')](_0xddb3('0x35'))){_0x4c388c['limit']=qs[_0xddb3('0x1c')](_0x29e368['query']['limit']);_0x4c388c['offset']=qs[_0xddb3('0x19')](_0x29e368[_0xddb3('0x30')][_0xddb3('0x19')]);}return _0x916d3e[_0xddb3('0x4c')](_0x4c388c);}})[_0xddb3('0x23')](function(_0x2f90c1){if(_0x2f90c1){return _0x2f90c1?{'count':_0x2aa983,'rows':_0x2f90c1}:null;}})[_0xddb3('0x23')](respondWithResult(_0x3ce211,null))[_0xddb3('0x40')](handleError(_0x3ce211,null));};exports[_0xddb3('0x4e')]=function(_0x11ff9b,_0x386da1,_0x399dbd){var _0x35497c={};var _0x1b8bf9={};var _0x2ca2df;var _0x3de91d;return db[_0xddb3('0x3d')][_0xddb3('0x48')]({'where':{'id':_0x11ff9b[_0xddb3('0x47')]['id']}})[_0xddb3('0x23')](handleEntityNotFound(_0x386da1,null))['then'](function(_0x4faa63){if(_0x4faa63){_0x2ca2df=_0x4faa63;_0x1b8bf9[_0xddb3('0x2e')]=_[_0xddb3('0x31')](db['FreshdeskField'][_0xddb3('0x2a')]);_0x1b8bf9['query']=_['keys'](_0x11ff9b[_0xddb3('0x30')]);_0x1b8bf9[_0xddb3('0x39')]=_[_0xddb3('0x32')](_0x1b8bf9[_0xddb3('0x2e')],_0x1b8bf9[_0xddb3('0x30')]);_0x35497c[_0xddb3('0x34')]=_['intersection'](_0x1b8bf9['model'],qs['fields'](_0x11ff9b['query'][_0xddb3('0x33')]));_0x35497c[_0xddb3('0x34')]=_0x35497c[_0xddb3('0x34')][_0xddb3('0x42')]?_0x35497c['attributes']:_0x1b8bf9[_0xddb3('0x2e')];_0x35497c[_0xddb3('0x36')]=qs[_0xddb3('0x37')](_0x11ff9b[_0xddb3('0x30')]['sort']);_0x35497c[_0xddb3('0x38')]=qs[_0xddb3('0x39')](_[_0xddb3('0x3a')](_0x11ff9b['query'],_0x1b8bf9[_0xddb3('0x39')]));if(_0x11ff9b[_0xddb3('0x30')][_0xddb3('0x4a')]){_0x35497c[_0xddb3('0x38')]=_[_0xddb3('0x3b')](_0x35497c[_0xddb3('0x38')],{'$or':_[_0xddb3('0x2f')](_0x35497c[_0xddb3('0x34')],function(_0x54ee99){var _0x17699c={};_0x17699c[_0x54ee99]={'$like':'%'+_0x11ff9b[_0xddb3('0x30')][_0xddb3('0x4a')]+'%'};return _0x17699c;})});}_0x35497c=_[_0xddb3('0x3b')]({},_0x35497c,_0x11ff9b['options']);return _0x2ca2df['getDescriptions'](_0x35497c);}})[_0xddb3('0x23')](function(_0x2cd66d){if(_0x2cd66d){_0x3de91d=_0x2cd66d[_0xddb3('0x42')];if(!_0x11ff9b[_0xddb3('0x30')][_0xddb3('0x4d')](_0xddb3('0x35'))){_0x35497c[_0xddb3('0x1c')]=qs[_0xddb3('0x1c')](_0x11ff9b['query']['limit']);_0x35497c[_0xddb3('0x19')]=qs['offset'](_0x11ff9b[_0xddb3('0x30')]['offset']);}return _0x2ca2df['getDescriptions'](_0x35497c);}})[_0xddb3('0x23')](function(_0x1b38af){if(_0x1b38af){return _0x1b38af?{'count':_0x3de91d,'rows':_0x1b38af}:null;}})['then'](respondWithResult(_0x386da1,null))[_0xddb3('0x40')](handleError(_0x386da1,null));};exports[_0xddb3('0x4f')]=function(_0x292b82,_0x33a5b5,_0x99b56d){var _0x1c3ab5={};var _0x12a4d5={};var _0x5e7a99;var _0x2ee9b7;return db[_0xddb3('0x3d')]['findOne']({'where':{'id':_0x292b82['params']['id']}})[_0xddb3('0x23')](handleEntityNotFound(_0x33a5b5,null))[_0xddb3('0x23')](function(_0x1b5573){if(_0x1b5573){_0x5e7a99=_0x1b5573;_0x12a4d5['model']=_[_0xddb3('0x31')](db['Tag'][_0xddb3('0x2a')]);_0x12a4d5[_0xddb3('0x30')]=_[_0xddb3('0x31')](_0x292b82[_0xddb3('0x30')]);_0x12a4d5[_0xddb3('0x39')]=_[_0xddb3('0x32')](_0x12a4d5[_0xddb3('0x2e')],_0x12a4d5[_0xddb3('0x30')]);_0x1c3ab5[_0xddb3('0x34')]=_[_0xddb3('0x32')](_0x12a4d5[_0xddb3('0x2e')],qs[_0xddb3('0x33')](_0x292b82[_0xddb3('0x30')][_0xddb3('0x33')]));_0x1c3ab5[_0xddb3('0x34')]=_0x1c3ab5[_0xddb3('0x34')][_0xddb3('0x42')]?_0x1c3ab5[_0xddb3('0x34')]:_0x12a4d5[_0xddb3('0x2e')];_0x1c3ab5[_0xddb3('0x36')]=qs[_0xddb3('0x37')](_0x292b82[_0xddb3('0x30')][_0xddb3('0x37')]);_0x1c3ab5[_0xddb3('0x38')]=qs[_0xddb3('0x39')](_[_0xddb3('0x3a')](_0x292b82[_0xddb3('0x30')],_0x12a4d5[_0xddb3('0x39')]));if(_0x292b82[_0xddb3('0x30')][_0xddb3('0x4a')]){_0x1c3ab5[_0xddb3('0x38')]=_[_0xddb3('0x3b')](_0x1c3ab5['where'],{'$or':_[_0xddb3('0x2f')](_0x1c3ab5[_0xddb3('0x34')],function(_0x191abe){var _0x366cf2={};_0x366cf2[_0x191abe]={'$like':'%'+_0x292b82[_0xddb3('0x30')][_0xddb3('0x4a')]+'%'};return _0x366cf2;})});}_0x1c3ab5=_[_0xddb3('0x3b')]({},_0x1c3ab5,_0x292b82['options']);return _0x5e7a99['getTags'](_0x1c3ab5);}})[_0xddb3('0x23')](function(_0x4a8229){if(_0x4a8229){_0x2ee9b7=_0x4a8229[_0xddb3('0x42')];if(!_0x292b82[_0xddb3('0x30')][_0xddb3('0x4d')](_0xddb3('0x35'))){_0x1c3ab5[_0xddb3('0x1c')]=qs[_0xddb3('0x1c')](_0x292b82['query'][_0xddb3('0x1c')]);_0x1c3ab5[_0xddb3('0x19')]=qs['offset'](_0x292b82[_0xddb3('0x30')][_0xddb3('0x19')]);}return _0x5e7a99[_0xddb3('0x4f')](_0x1c3ab5);}})[_0xddb3('0x23')](function(_0x160e11){if(_0x160e11){return _0x160e11?{'count':_0x2ee9b7,'rows':_0x160e11}:null;}})[_0xddb3('0x23')](respondWithResult(_0x33a5b5,null))[_0xddb3('0x40')](handleError(_0x33a5b5,null));};exports[_0xddb3('0x50')]=function(_0x5a0e1c,_0x2956ef,_0x1dc3f2){if(_0x5a0e1c['body']['id']){delete _0x5a0e1c[_0xddb3('0x46')]['id'];}return db[_0xddb3('0x3d')]['findOne']({'where':{'id':_0x5a0e1c[_0xddb3('0x47')]['id']}})[_0xddb3('0x23')](handleEntityNotFound(_0x2956ef,null))['then'](function(_0xc97a96){if(_0xc97a96){return _0xc97a96[_0xddb3('0x50')](_0x5a0e1c[_0xddb3('0x46')][_0xddb3('0x51')]||[]);}return null;})['then'](respondWithResult(_0x2956ef,null))['catch'](handleError(_0x2956ef,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1d76=['util','../../config/logger','api','moment','bluebird','request-promise','rimraf','../../config/environment','./intFreshdeskConfiguration.attributes','exports','define','int_freshdesk_configurations','lodash'];(function(_0x12fd29,_0x5ea2d7){var _0x5b4788=function(_0x2a62da){while(--_0x2a62da){_0x12fd29['push'](_0x12fd29['shift']());}};_0x5b4788(++_0x5ea2d7);}(_0x1d76,0x19f));var _0x61d7=function(_0x27848b,_0x247c4b){_0x27848b=_0x27848b-0x0;var _0x1f0a4e=_0x1d76[_0x27848b];return _0x1f0a4e;};'use strict';var _=require(_0x61d7('0x0'));var util=require(_0x61d7('0x1'));var logger=require(_0x61d7('0x2'))(_0x61d7('0x3'));var moment=require(_0x61d7('0x4'));var BPromise=require(_0x61d7('0x5'));var rp=require(_0x61d7('0x6'));var fs=require('fs');var path=require('path');var rimraf=require(_0x61d7('0x7'));var config=require(_0x61d7('0x8'));var attributes=require(_0x61d7('0x9'));module[_0x61d7('0xa')]=function(_0x43d24d,_0x4db741){return _0x43d24d[_0x61d7('0xb')]('FreshdeskConfiguration',attributes,{'tableName':_0x61d7('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x3fb9=['request-promise','path','rimraf','../../config/environment','exports','define','FreshdeskConfiguration','int_freshdesk_configurations','lodash','util','../../config/logger','api','moment'];(function(_0x343f5b,_0x5c5f5f){var _0x14d9cc=function(_0x5808ad){while(--_0x5808ad){_0x343f5b['push'](_0x343f5b['shift']());}};_0x14d9cc(++_0x5c5f5f);}(_0x3fb9,0xf2));var _0x93fb=function(_0x73573a,_0x113d35){_0x73573a=_0x73573a-0x0;var _0x1d7d41=_0x3fb9[_0x73573a];return _0x1d7d41;};'use strict';var _=require(_0x93fb('0x0'));var util=require(_0x93fb('0x1'));var logger=require(_0x93fb('0x2'))(_0x93fb('0x3'));var moment=require(_0x93fb('0x4'));var BPromise=require('bluebird');var rp=require(_0x93fb('0x5'));var fs=require('fs');var path=require(_0x93fb('0x6'));var rimraf=require(_0x93fb('0x7'));var config=require(_0x93fb('0x8'));var attributes=require('./intFreshdeskConfiguration.attributes');module[_0x93fb('0x9')]=function(_0x593aae,_0x5786f4){return _0x593aae[_0x93fb('0xa')](_0x93fb('0xb'),attributes,{'tableName':_0x93fb('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5610=['../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','debug','FreshdeskConfiguration,\x20%s,\x20%s,\x20%s','request\x20sent','error','code','FreshdeskConfiguration,\x20%s,\x20%s','message','result','catch','util','bluebird','randomstring'];(function(_0x4d9a48,_0x20bc50){var _0xef464d=function(_0x30e968){while(--_0x30e968){_0x4d9a48['push'](_0x4d9a48['shift']());}};_0xef464d(++_0x20bc50);}(_0x5610,0x156));var _0x0561=function(_0x5dfa42,_0x4c4aa4){_0x5dfa42=_0x5dfa42-0x0;var _0x47b33e=_0x5610[_0x5dfa42];return _0x47b33e;};'use strict';var _=require('lodash');var util=require(_0x0561('0x0'));var moment=require('moment');var BPromise=require(_0x0561('0x1'));var rs=require(_0x0561('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x0561('0x3'))['db'];var utils=require(_0x0561('0x4'));var logger=require(_0x0561('0x5'))(_0x0561('0x6'));var config=require(_0x0561('0x7'));var jayson=require(_0x0561('0x8'));var client=jayson[_0x0561('0x9')][_0x0561('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x1f0461,_0x13f15d,_0xa940af){return new BPromise(function(_0x251412,_0x2b1dda){return client[_0x0561('0xb')](_0x1f0461,_0xa940af)[_0x0561('0xc')](function(_0x56e82c){logger[_0x0561('0xd')]('FreshdeskConfiguration,\x20%s,\x20%s',_0x13f15d,'request\x20sent');logger[_0x0561('0xe')](_0x0561('0xf'),_0x13f15d,_0x0561('0x10'),JSON['stringify'](_0x56e82c));if(_0x56e82c['error']){if(_0x56e82c[_0x0561('0x11')][_0x0561('0x12')]===0x1f4){logger[_0x0561('0x11')](_0x0561('0x13'),_0x13f15d,_0x56e82c['error'][_0x0561('0x14')]);return _0x2b1dda(_0x56e82c[_0x0561('0x11')][_0x0561('0x14')]);}logger[_0x0561('0x11')]('FreshdeskConfiguration,\x20%s,\x20%s',_0x13f15d,_0x56e82c[_0x0561('0x11')][_0x0561('0x14')]);return _0x251412(_0x56e82c[_0x0561('0x11')][_0x0561('0x14')]);}else{logger[_0x0561('0xd')]('FreshdeskConfiguration,\x20%s,\x20%s',_0x13f15d,'request\x20sent');_0x251412(_0x56e82c[_0x0561('0x15')][_0x0561('0x14')]);}})[_0x0561('0x16')](function(_0x283d60){logger[_0x0561('0x11')]('FreshdeskConfiguration,\x20%s,\x20%s',_0x13f15d,_0x283d60);_0x2b1dda(_0x283d60);});});}
\ No newline at end of file
+var _0xa0d6=['../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','then','info','FreshdeskConfiguration,\x20%s,\x20%s','debug','FreshdeskConfiguration,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','code','error','message','result','catch','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb'];(function(_0x5c3004,_0x55fbc8){var _0x58ec2b=function(_0x3bbeeb){while(--_0x3bbeeb){_0x5c3004['push'](_0x5c3004['shift']());}};_0x58ec2b(++_0x55fbc8);}(_0xa0d6,0xba));var _0x6a0d=function(_0x273972,_0x36d9a7){_0x273972=_0x273972-0x0;var _0x35696d=_0xa0d6[_0x273972];return _0x35696d;};'use strict';var _=require(_0x6a0d('0x0'));var util=require('util');var moment=require(_0x6a0d('0x1'));var BPromise=require(_0x6a0d('0x2'));var rs=require(_0x6a0d('0x3'));var fs=require('fs');var Redis=require(_0x6a0d('0x4'));var db=require(_0x6a0d('0x5'))['db'];var utils=require(_0x6a0d('0x6'));var logger=require(_0x6a0d('0x7'))(_0x6a0d('0x8'));var config=require(_0x6a0d('0x9'));var jayson=require(_0x6a0d('0xa'));var client=jayson[_0x6a0d('0xb')]['http']({'port':0x232a});function respondWithRpcPromise(_0x5257f5,_0x3156bb,_0x314a44){return new BPromise(function(_0x389e0a,_0x495c58){return client['request'](_0x5257f5,_0x314a44)[_0x6a0d('0xc')](function(_0x5a529e){logger[_0x6a0d('0xd')](_0x6a0d('0xe'),_0x3156bb,'request\x20sent');logger[_0x6a0d('0xf')](_0x6a0d('0x10'),_0x3156bb,_0x6a0d('0x11'),JSON[_0x6a0d('0x12')](_0x5a529e));if(_0x5a529e['error']){if(_0x5a529e['error'][_0x6a0d('0x13')]===0x1f4){logger[_0x6a0d('0x14')](_0x6a0d('0xe'),_0x3156bb,_0x5a529e[_0x6a0d('0x14')][_0x6a0d('0x15')]);return _0x495c58(_0x5a529e['error']['message']);}logger[_0x6a0d('0x14')]('FreshdeskConfiguration,\x20%s,\x20%s',_0x3156bb,_0x5a529e[_0x6a0d('0x14')][_0x6a0d('0x15')]);return _0x389e0a(_0x5a529e[_0x6a0d('0x14')][_0x6a0d('0x15')]);}else{logger[_0x6a0d('0xd')](_0x6a0d('0xe'),_0x3156bb,_0x6a0d('0x11'));_0x389e0a(_0x5a529e[_0x6a0d('0x16')][_0x6a0d('0x15')]);}})[_0x6a0d('0x17')](function(_0x4f3add){logger[_0x6a0d('0x14')](_0x6a0d('0xe'),_0x3156bb,_0x4f3add);_0x495c58(_0x4f3add);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xde04=['fs-extra','../../components/auth/service','./intFreshdeskField.controller','isAuthenticated','get','/:id','show','create','put','destroy','exports','multer','util','connect-timeout','express'];(function(_0x3bc13e,_0x46db0c){var _0x3cb833=function(_0x1455e2){while(--_0x1455e2){_0x3bc13e['push'](_0x3bc13e['shift']());}};_0x3cb833(++_0x46db0c);}(_0xde04,0x164));var _0x4de0=function(_0xa464c9,_0x7c86d8){_0xa464c9=_0xa464c9-0x0;var _0x3d73c4=_0xde04[_0xa464c9];return _0x3d73c4;};'use strict';var multer=require(_0x4de0('0x0'));var util=require(_0x4de0('0x1'));var path=require('path');var timeout=require(_0x4de0('0x2'));var express=require(_0x4de0('0x3'));var router=express['Router']();var fs_extra=require(_0x4de0('0x4'));var auth=require(_0x4de0('0x5'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0x4de0('0x6'));router['get']('/',auth[_0x4de0('0x7')](),controller['index']);router[_0x4de0('0x8')](_0x4de0('0x9'),auth['isAuthenticated'](),controller[_0x4de0('0xa')]);router['post']('/',auth[_0x4de0('0x7')](),controller[_0x4de0('0xb')]);router[_0x4de0('0xc')](_0x4de0('0x9'),auth[_0x4de0('0x7')](),controller['update']);router['delete'](_0x4de0('0x9'),auth[_0x4de0('0x7')](),controller[_0x4de0('0xd')]);module[_0x4de0('0xe')]=router;
\ No newline at end of file
+var _0xf376=['get','isAuthenticated','index','post','delete','destroy','exports','util','path','express','Router','../../components/interaction/service','../../config/environment','./intFreshdeskField.controller'];(function(_0x4fc1cb,_0x2c37d4){var _0x56c627=function(_0x5f8bbe){while(--_0x5f8bbe){_0x4fc1cb['push'](_0x4fc1cb['shift']());}};_0x56c627(++_0x2c37d4);}(_0xf376,0xf5));var _0x6f37=function(_0x40ff94,_0x5a0b49){_0x40ff94=_0x40ff94-0x0;var _0x3e643c=_0xf376[_0x40ff94];return _0x3e643c;};'use strict';var multer=require('multer');var util=require(_0x6f37('0x0'));var path=require(_0x6f37('0x1'));var timeout=require('connect-timeout');var express=require(_0x6f37('0x2'));var router=express[_0x6f37('0x3')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0x6f37('0x4'));var config=require(_0x6f37('0x5'));var controller=require(_0x6f37('0x6'));router[_0x6f37('0x7')]('/',auth[_0x6f37('0x8')](),controller[_0x6f37('0x9')]);router[_0x6f37('0x7')]('/:id',auth[_0x6f37('0x8')](),controller['show']);router[_0x6f37('0xa')]('/',auth[_0x6f37('0x8')](),controller['create']);router['put']('/:id',auth[_0x6f37('0x8')](),controller['update']);router[_0x6f37('0xb')]('/:id',auth[_0x6f37('0x8')](),controller[_0x6f37('0xc')]);module[_0x6f37('0xd')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3903=['STRING','BOOLEAN','exports','string'];(function(_0x3f8dfa,_0x4ca511){var _0x4fd797=function(_0x57eb4d){while(--_0x57eb4d){_0x3f8dfa['push'](_0x3f8dfa['shift']());}};_0x4fd797(++_0x4ca511);}(_0x3903,0x13e));var _0x3390=function(_0x58af7f,_0x49beae){_0x58af7f=_0x58af7f-0x0;var _0x29575d=_0x3903[_0x58af7f];return _0x29575d;};'use strict';var Sequelize=require('sequelize');module[_0x3390('0x0')]={'type':{'type':Sequelize['ENUM']('string','variable','customVariable','keyValue','picklist'),'defaultValue':_0x3390('0x1')},'content':{'type':Sequelize[_0x3390('0x2')]},'key':{'type':Sequelize[_0x3390('0x2')]},'keyType':{'type':Sequelize['ENUM'](_0x3390('0x1'),'variable','customVariable')},'keyContent':{'type':Sequelize[_0x3390('0x2')]},'idField':{'type':Sequelize[_0x3390('0x2')]},'nameField':{'type':Sequelize['STRING']},'customField':{'type':Sequelize[_0x3390('0x3')],'defaultValue':!![]},'variableName':{'type':Sequelize[_0x3390('0x2')]}};
\ No newline at end of file
+var _0x562b=['picklist','STRING','BOOLEAN','sequelize','exports','string','variable','customVariable'];(function(_0x1fe8a4,_0xd9c7a7){var _0x5703e4=function(_0x5c0901){while(--_0x5c0901){_0x1fe8a4['push'](_0x1fe8a4['shift']());}};_0x5703e4(++_0xd9c7a7);}(_0x562b,0x1cb));var _0xb562=function(_0x45bf86,_0x75586e){_0x45bf86=_0x45bf86-0x0;var _0x1f02b7=_0x562b[_0x45bf86];return _0x1f02b7;};'use strict';var Sequelize=require(_0xb562('0x0'));module[_0xb562('0x1')]={'type':{'type':Sequelize['ENUM'](_0xb562('0x2'),_0xb562('0x3'),_0xb562('0x4'),'keyValue',_0xb562('0x5')),'defaultValue':_0xb562('0x2')},'content':{'type':Sequelize['STRING']},'key':{'type':Sequelize[_0xb562('0x6')]},'keyType':{'type':Sequelize['ENUM'](_0xb562('0x2'),_0xb562('0x3'),_0xb562('0x4'))},'keyContent':{'type':Sequelize[_0xb562('0x6')]},'idField':{'type':Sequelize[_0xb562('0x6')]},'nameField':{'type':Sequelize['STRING']},'customField':{'type':Sequelize[_0xb562('0x7')],'defaultValue':!![]},'variableName':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1306=['jsforce','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','Content-Range','apply','save','name','send','index','map','FreshdeskField','rawAttributes','fieldName','key','model','query','filters','intersection','attributes','fields','nolimit','order','sort','where','merge','type','VIRTUAL','filter','then','includeAll','include','findAll','rows','show','params','keys','length','options','find','catch','create','body','update','destroy','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto'];(function(_0x101e7b,_0x4ef05b){var _0x4995c0=function(_0x1a6488){while(--_0x1a6488){_0x101e7b['push'](_0x101e7b['shift']());}};_0x4995c0(++_0x4ef05b);}(_0x1306,0x17a));var _0x6130=function(_0x5f465a,_0x5448c3){_0x5f465a=_0x5f465a-0x0;var _0x63658e=_0x1306[_0x5f465a];return _0x63658e;};'use strict';var emlformat=require(_0x6130('0x0'));var rimraf=require(_0x6130('0x1'));var zipdir=require(_0x6130('0x2'));var jsonpatch=require(_0x6130('0x3'));var rp=require(_0x6130('0x4'));var moment=require(_0x6130('0x5'));var BPromise=require(_0x6130('0x6'));var Mustache=require(_0x6130('0x7'));var util=require(_0x6130('0x8'));var path=require(_0x6130('0x9'));var sox=require(_0x6130('0xa'));var csv=require(_0x6130('0xb'));var ejs=require(_0x6130('0xc'));var fs=require('fs');var fs_extra=require(_0x6130('0xd'));var _=require(_0x6130('0xe'));var squel=require(_0x6130('0xf'));var crypto=require(_0x6130('0x10'));var jsforce=require(_0x6130('0x11'));var deskjs=require(_0x6130('0x12'));var toCsv=require(_0x6130('0xb'));var querystring=require(_0x6130('0x13'));var Papa=require(_0x6130('0x14'));var Redis=require(_0x6130('0x15'));var authService=require(_0x6130('0x16'));var qs=require(_0x6130('0x17'));var as=require(_0x6130('0x18'));var hardwareService=require(_0x6130('0x19'));var logger=require(_0x6130('0x1a'))(_0x6130('0x1b'));var utils=require('../../config/utils');var config=require(_0x6130('0x1c'));var licenseUtil=require('../../config/license/util');var db=require(_0x6130('0x1d'))['db'];function respondWithStatusCode(_0x2fbf3d,_0x5e0234){_0x5e0234=_0x5e0234||0xcc;return function(_0x1c0339){if(_0x1c0339){return _0x2fbf3d[_0x6130('0x1e')](_0x5e0234);}return _0x2fbf3d[_0x6130('0x1f')](_0x5e0234)[_0x6130('0x20')]();};}function respondWithResult(_0x1d736c,_0x3470e8){_0x3470e8=_0x3470e8||0xc8;return function(_0x4cdac6){if(_0x4cdac6){return _0x1d736c[_0x6130('0x1f')](_0x3470e8)[_0x6130('0x21')](_0x4cdac6);}};}function respondWithFilteredResult(_0x3ef4c1,_0x401a70){return function(_0x4626a2){if(_0x4626a2){var _0x39b444=typeof _0x401a70[_0x6130('0x22')]===_0x6130('0x23')&&typeof _0x401a70[_0x6130('0x24')]==='undefined';var _0x4b9a20=_0x4626a2[_0x6130('0x25')];var _0x49803e=_0x39b444?0x0:_0x401a70[_0x6130('0x22')];var _0xb6575d=_0x39b444?_0x4626a2[_0x6130('0x25')]:_0x401a70[_0x6130('0x22')]+_0x401a70[_0x6130('0x24')];var _0x4b4b35;if(_0xb6575d>=_0x4b9a20){_0xb6575d=_0x4b9a20;_0x4b4b35=0xc8;}else{_0x4b4b35=0xce;}_0x3ef4c1[_0x6130('0x1f')](_0x4b4b35);return _0x3ef4c1['set'](_0x6130('0x26'),_0x49803e+'-'+_0xb6575d+'/'+_0x4b9a20)[_0x6130('0x21')](_0x4626a2);}return null;};}function patchUpdates(_0x18bb78){return function(_0x1839db){try{jsonpatch[_0x6130('0x27')](_0x1839db,_0x18bb78,!![]);}catch(_0x5c8b08){return BPromise['reject'](_0x5c8b08);}return _0x1839db[_0x6130('0x28')]();};}function saveUpdates(_0x534390,_0x30b4f2){return function(_0x289c7b){if(_0x289c7b){return _0x289c7b['update'](_0x534390)['then'](function(_0x54fc67){return _0x54fc67;});}return null;};}function removeEntity(_0x2a8aad,_0x5369e3){return function(_0x371b84){if(_0x371b84){return _0x371b84['destroy']()['then'](function(){_0x2a8aad['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x5069bf,_0x140468){return function(_0x1ba07d){if(!_0x1ba07d){_0x5069bf['sendStatus'](0x194);}return _0x1ba07d;};}function handleError(_0x188657,_0x552c54){_0x552c54=_0x552c54||0x1f4;return function(_0x306935){logger['error'](_0x306935['stack']);if(_0x306935[_0x6130('0x29')]){delete _0x306935[_0x6130('0x29')];}_0x188657[_0x6130('0x1f')](_0x552c54)[_0x6130('0x2a')](_0x306935);};}exports[_0x6130('0x2b')]=function(_0x392386,_0x2aa0e3){var _0x19eb47={},_0x14dff0={},_0x5809e4={'count':0x0,'rows':[]};var _0x5363cc=_[_0x6130('0x2c')](db[_0x6130('0x2d')][_0x6130('0x2e')],function(_0x4345ac){return{'name':_0x4345ac[_0x6130('0x2f')],'type':_0x4345ac['type'][_0x6130('0x30')]};});_0x14dff0[_0x6130('0x31')]=_[_0x6130('0x2c')](_0x5363cc,_0x6130('0x29'));_0x14dff0[_0x6130('0x32')]=_['keys'](_0x392386[_0x6130('0x32')]);_0x14dff0[_0x6130('0x33')]=_[_0x6130('0x34')](_0x14dff0['model'],_0x14dff0[_0x6130('0x32')]);_0x19eb47[_0x6130('0x35')]=_[_0x6130('0x34')](_0x14dff0[_0x6130('0x31')],qs[_0x6130('0x36')](_0x392386[_0x6130('0x32')][_0x6130('0x36')]));_0x19eb47[_0x6130('0x35')]=_0x19eb47[_0x6130('0x35')]['length']?_0x19eb47[_0x6130('0x35')]:_0x14dff0['model'];if(!_0x392386['query']['hasOwnProperty'](_0x6130('0x37'))){_0x19eb47[_0x6130('0x24')]=qs[_0x6130('0x24')](_0x392386[_0x6130('0x32')][_0x6130('0x24')]);_0x19eb47[_0x6130('0x22')]=qs[_0x6130('0x22')](_0x392386[_0x6130('0x32')]['offset']);}_0x19eb47[_0x6130('0x38')]=qs[_0x6130('0x39')](_0x392386['query'][_0x6130('0x39')]);_0x19eb47[_0x6130('0x3a')]=qs[_0x6130('0x33')](_['pick'](_0x392386[_0x6130('0x32')],_0x14dff0[_0x6130('0x33')]),_0x5363cc);if(_0x392386['query']['filter']){_0x19eb47[_0x6130('0x3a')]=_[_0x6130('0x3b')](_0x19eb47[_0x6130('0x3a')],{'$or':_['map'](_0x5363cc,function(_0x596c98){if(_0x596c98[_0x6130('0x3c')]!==_0x6130('0x3d')){var _0x3c6aac={};_0x3c6aac[_0x596c98[_0x6130('0x29')]]={'$like':'%'+_0x392386[_0x6130('0x32')][_0x6130('0x3e')]+'%'};return _0x3c6aac;}})});}_0x19eb47=_[_0x6130('0x3b')]({},_0x19eb47,_0x392386['options']);var _0x45bfe0={'where':_0x19eb47[_0x6130('0x3a')]};return db[_0x6130('0x2d')][_0x6130('0x25')](_0x45bfe0)[_0x6130('0x3f')](function(_0x3249f2){_0x5809e4[_0x6130('0x25')]=_0x3249f2;if(_0x392386['query'][_0x6130('0x40')]){_0x19eb47[_0x6130('0x41')]=[{'all':!![]}];}return db[_0x6130('0x2d')][_0x6130('0x42')](_0x19eb47);})[_0x6130('0x3f')](function(_0x142385){_0x5809e4[_0x6130('0x43')]=_0x142385;return _0x5809e4;})[_0x6130('0x3f')](respondWithFilteredResult(_0x2aa0e3,_0x19eb47))['catch'](handleError(_0x2aa0e3,null));};exports[_0x6130('0x44')]=function(_0x154891,_0x6eebc6){var _0x4c727b={'raw':!![],'where':{'id':_0x154891[_0x6130('0x45')]['id']}},_0x176506={};_0x176506[_0x6130('0x31')]=_['keys'](db['FreshdeskField'][_0x6130('0x2e')]);_0x176506[_0x6130('0x32')]=_[_0x6130('0x46')](_0x154891[_0x6130('0x32')]);_0x176506[_0x6130('0x33')]=_['intersection'](_0x176506[_0x6130('0x31')],_0x176506[_0x6130('0x32')]);_0x4c727b['attributes']=_[_0x6130('0x34')](_0x176506[_0x6130('0x31')],qs[_0x6130('0x36')](_0x154891[_0x6130('0x32')][_0x6130('0x36')]));_0x4c727b[_0x6130('0x35')]=_0x4c727b[_0x6130('0x35')][_0x6130('0x47')]?_0x4c727b['attributes']:_0x176506['model'];if(_0x154891[_0x6130('0x32')]['includeAll']){_0x4c727b[_0x6130('0x41')]=[{'all':!![]}];}_0x4c727b=_[_0x6130('0x3b')]({},_0x4c727b,_0x154891[_0x6130('0x48')]);return db[_0x6130('0x2d')][_0x6130('0x49')](_0x4c727b)[_0x6130('0x3f')](handleEntityNotFound(_0x6eebc6,null))[_0x6130('0x3f')](respondWithResult(_0x6eebc6,null))[_0x6130('0x4a')](handleError(_0x6eebc6,null));};exports[_0x6130('0x4b')]=function(_0x19dcb7,_0x3936a8){return db['FreshdeskField'][_0x6130('0x4b')](_0x19dcb7[_0x6130('0x4c')],{})[_0x6130('0x3f')](respondWithResult(_0x3936a8,0xc9))[_0x6130('0x4a')](handleError(_0x3936a8,null));};exports[_0x6130('0x4d')]=function(_0x13f591,_0x35939b){if(_0x13f591[_0x6130('0x4c')]['id']){delete _0x13f591[_0x6130('0x4c')]['id'];}return db[_0x6130('0x2d')]['find']({'where':{'id':_0x13f591[_0x6130('0x45')]['id']}})[_0x6130('0x3f')](handleEntityNotFound(_0x35939b,null))[_0x6130('0x3f')](saveUpdates(_0x13f591[_0x6130('0x4c')],null))[_0x6130('0x3f')](respondWithResult(_0x35939b,null))[_0x6130('0x4a')](handleError(_0x35939b,null));};exports[_0x6130('0x4e')]=function(_0x37ee0c,_0x3a64ef){return db['FreshdeskField'][_0x6130('0x49')]({'where':{'id':_0x37ee0c[_0x6130('0x45')]['id']}})[_0x6130('0x3f')](handleEntityNotFound(_0x3a64ef,null))[_0x6130('0x3f')](removeEntity(_0x3a64ef,null))[_0x6130('0x4a')](handleError(_0x3a64ef,null));};
\ No newline at end of file
+var _0x41bb=['../../mysqldb','sendStatus','status','end','json','undefined','limit','count','offset','set','Content-Range','apply','reject','save','update','then','name','send','index','map','rawAttributes','type','model','query','keys','filters','intersection','attributes','length','hasOwnProperty','nolimit','order','sort','pick','filter','where','merge','VIRTUAL','options','include','FreshdeskField','findAll','rows','show','params','includeAll','find','catch','create','body','destroy','eml-format','rimraf','fast-json-patch','moment','bluebird','mustache','util','sox','to-csv','ejs','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../config/license/util'];(function(_0x17af5f,_0x50fc70){var _0x159e42=function(_0x3fb778){while(--_0x3fb778){_0x17af5f['push'](_0x17af5f['shift']());}};_0x159e42(++_0x50fc70);}(_0x41bb,0xc5));var _0xb41b=function(_0x2e6609,_0x3f42f4){_0x2e6609=_0x2e6609-0x0;var _0x1b09dd=_0x41bb[_0x2e6609];return _0x1b09dd;};'use strict';var emlformat=require(_0xb41b('0x0'));var rimraf=require(_0xb41b('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xb41b('0x2'));var rp=require('request-promise');var moment=require(_0xb41b('0x3'));var BPromise=require(_0xb41b('0x4'));var Mustache=require(_0xb41b('0x5'));var util=require(_0xb41b('0x6'));var path=require('path');var sox=require(_0xb41b('0x7'));var csv=require(_0xb41b('0x8'));var ejs=require(_0xb41b('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require('squel');var crypto=require(_0xb41b('0xa'));var jsforce=require(_0xb41b('0xb'));var deskjs=require('desk.js');var toCsv=require(_0xb41b('0x8'));var querystring=require(_0xb41b('0xc'));var Papa=require(_0xb41b('0xd'));var Redis=require(_0xb41b('0xe'));var authService=require(_0xb41b('0xf'));var qs=require(_0xb41b('0x10'));var as=require(_0xb41b('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xb41b('0x12'))('api');var utils=require(_0xb41b('0x13'));var config=require(_0xb41b('0x14'));var licenseUtil=require(_0xb41b('0x15'));var db=require(_0xb41b('0x16'))['db'];function respondWithStatusCode(_0x2066d5,_0x5f1ea4){_0x5f1ea4=_0x5f1ea4||0xcc;return function(_0x353ba3){if(_0x353ba3){return _0x2066d5[_0xb41b('0x17')](_0x5f1ea4);}return _0x2066d5[_0xb41b('0x18')](_0x5f1ea4)[_0xb41b('0x19')]();};}function respondWithResult(_0x3be1ec,_0x4e8603){_0x4e8603=_0x4e8603||0xc8;return function(_0x4e7f11){if(_0x4e7f11){return _0x3be1ec['status'](_0x4e8603)[_0xb41b('0x1a')](_0x4e7f11);}};}function respondWithFilteredResult(_0xdc5fb0,_0x143a81){return function(_0x338920){if(_0x338920){var _0x29ea51=typeof _0x143a81['offset']===_0xb41b('0x1b')&&typeof _0x143a81[_0xb41b('0x1c')]===_0xb41b('0x1b');var _0xcf0728=_0x338920[_0xb41b('0x1d')];var _0x47154d=_0x29ea51?0x0:_0x143a81[_0xb41b('0x1e')];var _0x5df8c2=_0x29ea51?_0x338920['count']:_0x143a81['offset']+_0x143a81[_0xb41b('0x1c')];var _0x503e86;if(_0x5df8c2>=_0xcf0728){_0x5df8c2=_0xcf0728;_0x503e86=0xc8;}else{_0x503e86=0xce;}_0xdc5fb0[_0xb41b('0x18')](_0x503e86);return _0xdc5fb0[_0xb41b('0x1f')](_0xb41b('0x20'),_0x47154d+'-'+_0x5df8c2+'/'+_0xcf0728)['json'](_0x338920);}return null;};}function patchUpdates(_0x53bc44){return function(_0x1a1386){try{jsonpatch[_0xb41b('0x21')](_0x1a1386,_0x53bc44,!![]);}catch(_0xd1bc61){return BPromise[_0xb41b('0x22')](_0xd1bc61);}return _0x1a1386[_0xb41b('0x23')]();};}function saveUpdates(_0x42dccb,_0x4c73da){return function(_0x58f149){if(_0x58f149){return _0x58f149[_0xb41b('0x24')](_0x42dccb)[_0xb41b('0x25')](function(_0x871b35){return _0x871b35;});}return null;};}function removeEntity(_0x583741,_0x14e9c8){return function(_0x2441d6){if(_0x2441d6){return _0x2441d6['destroy']()[_0xb41b('0x25')](function(){_0x583741[_0xb41b('0x18')](0xcc)['end']();});}};}function handleEntityNotFound(_0xed3c7e,_0x4a7992){return function(_0x2d0f27){if(!_0x2d0f27){_0xed3c7e[_0xb41b('0x17')](0x194);}return _0x2d0f27;};}function handleError(_0x53e3a2,_0x3af2c){_0x3af2c=_0x3af2c||0x1f4;return function(_0x4265b8){logger['error'](_0x4265b8['stack']);if(_0x4265b8[_0xb41b('0x26')]){delete _0x4265b8[_0xb41b('0x26')];}_0x53e3a2[_0xb41b('0x18')](_0x3af2c)[_0xb41b('0x27')](_0x4265b8);};}exports[_0xb41b('0x28')]=function(_0x181cbd,_0x253efb){var _0x545395={},_0x26ef96={},_0xb68029={'count':0x0,'rows':[]};var _0x5069aa=_[_0xb41b('0x29')](db['FreshdeskField'][_0xb41b('0x2a')],function(_0x31d4cd){return{'name':_0x31d4cd['fieldName'],'type':_0x31d4cd[_0xb41b('0x2b')]['key']};});_0x26ef96[_0xb41b('0x2c')]=_[_0xb41b('0x29')](_0x5069aa,'name');_0x26ef96[_0xb41b('0x2d')]=_[_0xb41b('0x2e')](_0x181cbd[_0xb41b('0x2d')]);_0x26ef96[_0xb41b('0x2f')]=_[_0xb41b('0x30')](_0x26ef96[_0xb41b('0x2c')],_0x26ef96[_0xb41b('0x2d')]);_0x545395[_0xb41b('0x31')]=_[_0xb41b('0x30')](_0x26ef96[_0xb41b('0x2c')],qs['fields'](_0x181cbd[_0xb41b('0x2d')]['fields']));_0x545395['attributes']=_0x545395[_0xb41b('0x31')][_0xb41b('0x32')]?_0x545395[_0xb41b('0x31')]:_0x26ef96[_0xb41b('0x2c')];if(!_0x181cbd[_0xb41b('0x2d')][_0xb41b('0x33')](_0xb41b('0x34'))){_0x545395[_0xb41b('0x1c')]=qs[_0xb41b('0x1c')](_0x181cbd[_0xb41b('0x2d')][_0xb41b('0x1c')]);_0x545395['offset']=qs[_0xb41b('0x1e')](_0x181cbd[_0xb41b('0x2d')][_0xb41b('0x1e')]);}_0x545395[_0xb41b('0x35')]=qs[_0xb41b('0x36')](_0x181cbd[_0xb41b('0x2d')]['sort']);_0x545395['where']=qs[_0xb41b('0x2f')](_[_0xb41b('0x37')](_0x181cbd['query'],_0x26ef96[_0xb41b('0x2f')]),_0x5069aa);if(_0x181cbd[_0xb41b('0x2d')][_0xb41b('0x38')]){_0x545395[_0xb41b('0x39')]=_[_0xb41b('0x3a')](_0x545395['where'],{'$or':_[_0xb41b('0x29')](_0x5069aa,function(_0x5775d3){if(_0x5775d3[_0xb41b('0x2b')]!==_0xb41b('0x3b')){var _0x799d6={};_0x799d6[_0x5775d3[_0xb41b('0x26')]]={'$like':'%'+_0x181cbd[_0xb41b('0x2d')][_0xb41b('0x38')]+'%'};return _0x799d6;}})});}_0x545395=_[_0xb41b('0x3a')]({},_0x545395,_0x181cbd[_0xb41b('0x3c')]);var _0x2b0721={'where':_0x545395['where']};return db['FreshdeskField']['count'](_0x2b0721)[_0xb41b('0x25')](function(_0x5147ce){_0xb68029['count']=_0x5147ce;if(_0x181cbd[_0xb41b('0x2d')]['includeAll']){_0x545395[_0xb41b('0x3d')]=[{'all':!![]}];}return db[_0xb41b('0x3e')][_0xb41b('0x3f')](_0x545395);})[_0xb41b('0x25')](function(_0x4fa390){_0xb68029[_0xb41b('0x40')]=_0x4fa390;return _0xb68029;})[_0xb41b('0x25')](respondWithFilteredResult(_0x253efb,_0x545395))['catch'](handleError(_0x253efb,null));};exports[_0xb41b('0x41')]=function(_0xa70324,_0x3f181c){var _0x174d6c={'raw':!![],'where':{'id':_0xa70324[_0xb41b('0x42')]['id']}},_0x47bab5={};_0x47bab5['model']=_[_0xb41b('0x2e')](db[_0xb41b('0x3e')][_0xb41b('0x2a')]);_0x47bab5['query']=_['keys'](_0xa70324[_0xb41b('0x2d')]);_0x47bab5[_0xb41b('0x2f')]=_[_0xb41b('0x30')](_0x47bab5[_0xb41b('0x2c')],_0x47bab5[_0xb41b('0x2d')]);_0x174d6c[_0xb41b('0x31')]=_[_0xb41b('0x30')](_0x47bab5['model'],qs['fields'](_0xa70324[_0xb41b('0x2d')]['fields']));_0x174d6c[_0xb41b('0x31')]=_0x174d6c['attributes'][_0xb41b('0x32')]?_0x174d6c['attributes']:_0x47bab5[_0xb41b('0x2c')];if(_0xa70324['query'][_0xb41b('0x43')]){_0x174d6c[_0xb41b('0x3d')]=[{'all':!![]}];}_0x174d6c=_[_0xb41b('0x3a')]({},_0x174d6c,_0xa70324[_0xb41b('0x3c')]);return db['FreshdeskField'][_0xb41b('0x44')](_0x174d6c)[_0xb41b('0x25')](handleEntityNotFound(_0x3f181c,null))['then'](respondWithResult(_0x3f181c,null))[_0xb41b('0x45')](handleError(_0x3f181c,null));};exports['create']=function(_0x5cc658,_0x5733d0){return db['FreshdeskField'][_0xb41b('0x46')](_0x5cc658[_0xb41b('0x47')],{})[_0xb41b('0x25')](respondWithResult(_0x5733d0,0xc9))[_0xb41b('0x45')](handleError(_0x5733d0,null));};exports[_0xb41b('0x24')]=function(_0x349a6c,_0x34d076){if(_0x349a6c[_0xb41b('0x47')]['id']){delete _0x349a6c[_0xb41b('0x47')]['id'];}return db[_0xb41b('0x3e')][_0xb41b('0x44')]({'where':{'id':_0x349a6c[_0xb41b('0x42')]['id']}})[_0xb41b('0x25')](handleEntityNotFound(_0x34d076,null))[_0xb41b('0x25')](saveUpdates(_0x349a6c[_0xb41b('0x47')],null))[_0xb41b('0x25')](respondWithResult(_0x34d076,null))['catch'](handleError(_0x34d076,null));};exports[_0xb41b('0x48')]=function(_0x5e041d,_0x4a7aa3){return db[_0xb41b('0x3e')][_0xb41b('0x44')]({'where':{'id':_0x5e041d[_0xb41b('0x42')]['id']}})[_0xb41b('0x25')](handleEntityNotFound(_0x4a7aa3,null))[_0xb41b('0x25')](removeEntity(_0x4a7aa3,null))[_0xb41b('0x45')](handleError(_0x4a7aa3,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xda0d=['./intFreshdeskField.attributes','exports','define','FreshdeskField','int_freshdesk_fields','idField','FieldId','lodash','../../config/logger','api','moment','bluebird','request-promise','rimraf'];(function(_0xcf5436,_0x4632c3){var _0xc4f5c8=function(_0x567528){while(--_0x567528){_0xcf5436['push'](_0xcf5436['shift']());}};_0xc4f5c8(++_0x4632c3);}(_0xda0d,0xcb));var _0xdda0=function(_0x5c6e36,_0x2c7a8f){_0x5c6e36=_0x5c6e36-0x0;var _0x44106b=_0xda0d[_0x5c6e36];return _0x44106b;};'use strict';var _=require(_0xdda0('0x0'));var util=require('util');var logger=require(_0xdda0('0x1'))(_0xdda0('0x2'));var moment=require(_0xdda0('0x3'));var BPromise=require(_0xdda0('0x4'));var rp=require(_0xdda0('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0xdda0('0x6'));var config=require('../../config/environment');var attributes=require(_0xdda0('0x7'));module[_0xdda0('0x8')]=function(_0x4b2844,_0x22d3b8){return _0x4b2844[_0xdda0('0x9')](_0xdda0('0xa'),attributes,{'tableName':_0xdda0('0xb'),'paranoid':![],'indexes':[{'name':'freshdesk_unique_index','fields':[_0xdda0('0xc'),_0xdda0('0xd')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x3040=['rimraf','../../config/environment','exports','FreshdeskField','freshdesk_unique_index','idField','FieldId','util','../../config/logger','moment','bluebird','request-promise','path'];(function(_0x42d5cd,_0x375edb){var _0x1d2e99=function(_0x13c60f){while(--_0x13c60f){_0x42d5cd['push'](_0x42d5cd['shift']());}};_0x1d2e99(++_0x375edb);}(_0x3040,0x6f));var _0x0304=function(_0x185018,_0x16a6d5){_0x185018=_0x185018-0x0;var _0xa36399=_0x3040[_0x185018];return _0xa36399;};'use strict';var _=require('lodash');var util=require(_0x0304('0x0'));var logger=require(_0x0304('0x1'))('api');var moment=require(_0x0304('0x2'));var BPromise=require(_0x0304('0x3'));var rp=require(_0x0304('0x4'));var fs=require('fs');var path=require(_0x0304('0x5'));var rimraf=require(_0x0304('0x6'));var config=require(_0x0304('0x7'));var attributes=require('./intFreshdeskField.attributes');module[_0x0304('0x8')]=function(_0x5385ed,_0x437454){return _0x5385ed['define'](_0x0304('0x9'),attributes,{'tableName':'int_freshdesk_fields','paranoid':![],'indexes':[{'name':_0x0304('0xa'),'fields':[_0x0304('0xb'),_0x0304('0xc')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcb8d=['../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','then','info','FreshdeskField,\x20%s,\x20%s','request\x20sent','debug','FreshdeskField,\x20%s,\x20%s,\x20%s','stringify','error','code','result','message','catch','lodash','moment','bluebird','ioredis'];(function(_0x1777f8,_0x5b3ff9){var _0x4673bc=function(_0x2ccf23){while(--_0x2ccf23){_0x1777f8['push'](_0x1777f8['shift']());}};_0x4673bc(++_0x5b3ff9);}(_0xcb8d,0x104));var _0xdcb8=function(_0x59d89e,_0x55edf5){_0x59d89e=_0x59d89e-0x0;var _0x554e93=_0xcb8d[_0x59d89e];return _0x554e93;};'use strict';var _=require(_0xdcb8('0x0'));var util=require('util');var moment=require(_0xdcb8('0x1'));var BPromise=require(_0xdcb8('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xdcb8('0x3'));var db=require(_0xdcb8('0x4'))['db'];var utils=require(_0xdcb8('0x5'));var logger=require(_0xdcb8('0x6'))(_0xdcb8('0x7'));var config=require(_0xdcb8('0x8'));var jayson=require(_0xdcb8('0x9'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x58a78e,_0x36b765,_0x484fea){return new BPromise(function(_0x8d29c0,_0xeedc84){return client['request'](_0x58a78e,_0x484fea)[_0xdcb8('0xa')](function(_0x38b893){logger[_0xdcb8('0xb')](_0xdcb8('0xc'),_0x36b765,_0xdcb8('0xd'));logger[_0xdcb8('0xe')](_0xdcb8('0xf'),_0x36b765,_0xdcb8('0xd'),JSON[_0xdcb8('0x10')](_0x38b893));if(_0x38b893[_0xdcb8('0x11')]){if(_0x38b893[_0xdcb8('0x11')][_0xdcb8('0x12')]===0x1f4){logger[_0xdcb8('0x11')](_0xdcb8('0xc'),_0x36b765,_0x38b893['error']['message']);return _0xeedc84(_0x38b893['error']['message']);}logger['error'](_0xdcb8('0xc'),_0x36b765,_0x38b893['error']['message']);return _0x8d29c0(_0x38b893[_0xdcb8('0x11')]['message']);}else{logger[_0xdcb8('0xb')]('FreshdeskField,\x20%s,\x20%s',_0x36b765,_0xdcb8('0xd'));_0x8d29c0(_0x38b893[_0xdcb8('0x13')][_0xdcb8('0x14')]);}})[_0xdcb8('0x15')](function(_0x577ccb){logger[_0xdcb8('0x11')](_0xdcb8('0xc'),_0x36b765,_0x577ccb);_0xeedc84(_0x577ccb);});});}
\ No newline at end of file
+var _0x0111=['stringify','error','message','info','result','catch','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','rpc','jayson/promise','client','http','FreshdeskField,\x20%s,\x20%s','request\x20sent','FreshdeskField,\x20%s,\x20%s,\x20%s'];(function(_0x273c39,_0x1052e6){var _0x46d6b5=function(_0x44f1fb){while(--_0x44f1fb){_0x273c39['push'](_0x273c39['shift']());}};_0x46d6b5(++_0x1052e6);}(_0x0111,0x1ce));var _0x1011=function(_0x50ff4b,_0x213182){_0x50ff4b=_0x50ff4b-0x0;var _0x6d20b3=_0x0111[_0x50ff4b];return _0x6d20b3;};'use strict';var _=require('lodash');var util=require(_0x1011('0x0'));var moment=require(_0x1011('0x1'));var BPromise=require(_0x1011('0x2'));var rs=require(_0x1011('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x1011('0x4'))['db'];var utils=require(_0x1011('0x5'));var logger=require('../../config/logger')(_0x1011('0x6'));var config=require('../../config/environment');var jayson=require(_0x1011('0x7'));var client=jayson[_0x1011('0x8')][_0x1011('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x4e0cc1,_0x4d6487,_0x44e1b1){return new BPromise(function(_0x47bb6a,_0x431fc3){return client['request'](_0x4e0cc1,_0x44e1b1)['then'](function(_0x23681b){logger['info'](_0x1011('0xa'),_0x4d6487,_0x1011('0xb'));logger['debug'](_0x1011('0xc'),_0x4d6487,_0x1011('0xb'),JSON[_0x1011('0xd')](_0x23681b));if(_0x23681b[_0x1011('0xe')]){if(_0x23681b[_0x1011('0xe')]['code']===0x1f4){logger[_0x1011('0xe')]('FreshdeskField,\x20%s,\x20%s',_0x4d6487,_0x23681b[_0x1011('0xe')]['message']);return _0x431fc3(_0x23681b['error'][_0x1011('0xf')]);}logger[_0x1011('0xe')](_0x1011('0xa'),_0x4d6487,_0x23681b[_0x1011('0xe')]['message']);return _0x47bb6a(_0x23681b[_0x1011('0xe')][_0x1011('0xf')]);}else{logger[_0x1011('0x10')](_0x1011('0xa'),_0x4d6487,'request\x20sent');_0x47bb6a(_0x23681b[_0x1011('0x11')]['message']);}})[_0x1011('0x12')](function(_0x568d98){logger['error'](_0x1011('0xa'),_0x4d6487,_0x568d98);_0x431fc3(_0x568d98);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x41bb=['/:id/fields','getFields','post','addConfiguration','put','update','delete','/:id','multer','util','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./intFreshsalesAccount.controller','get','isAuthenticated','show','/:id/configurations','getConfigurations'];(function(_0x2ddb6d,_0x25d45b){var _0x56c103=function(_0x4f73c4){while(--_0x4f73c4){_0x2ddb6d['push'](_0x2ddb6d['shift']());}};_0x56c103(++_0x25d45b);}(_0x41bb,0xc5));var _0xb41b=function(_0x484783,_0xf091){_0x484783=_0x484783-0x0;var _0x219b5c=_0x41bb[_0x484783];return _0x219b5c;};'use strict';var multer=require(_0xb41b('0x0'));var util=require(_0xb41b('0x1'));var path=require('path');var timeout=require(_0xb41b('0x2'));var express=require('express');var router=express[_0xb41b('0x3')]();var fs_extra=require(_0xb41b('0x4'));var auth=require(_0xb41b('0x5'));var interaction=require(_0xb41b('0x6'));var config=require('../../config/environment');var controller=require(_0xb41b('0x7'));router[_0xb41b('0x8')]('/',auth[_0xb41b('0x9')](),controller['index']);router['get']('/:id',auth[_0xb41b('0x9')](),controller[_0xb41b('0xa')]);router['get'](_0xb41b('0xb'),auth[_0xb41b('0x9')](),controller[_0xb41b('0xc')]);router[_0xb41b('0x8')](_0xb41b('0xd'),auth[_0xb41b('0x9')](),controller[_0xb41b('0xe')]);router['post']('/',auth[_0xb41b('0x9')](),controller['create']);router[_0xb41b('0xf')](_0xb41b('0xb'),auth[_0xb41b('0x9')](),controller[_0xb41b('0x10')]);router[_0xb41b('0x11')]('/:id',auth[_0xb41b('0x9')](),controller[_0xb41b('0x12')]);router[_0xb41b('0x13')](_0xb41b('0x14'),auth[_0xb41b('0x9')](),controller['destroy']);module['exports']=router;
\ No newline at end of file
+var _0x7334=['put','update','destroy','exports','multer','util','path','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./intFreshsalesAccount.controller','get','isAuthenticated','index','/:id','show','/:id/configurations','getConfigurations','/:id/fields','getFields','post','create','addConfiguration'];(function(_0x560b59,_0x10d179){var _0xb9eefc=function(_0x31115e){while(--_0x31115e){_0x560b59['push'](_0x560b59['shift']());}};_0xb9eefc(++_0x10d179);}(_0x7334,0x184));var _0x4733=function(_0x1342ac,_0xc6af07){_0x1342ac=_0x1342ac-0x0;var _0x16e544=_0x7334[_0x1342ac];return _0x16e544;};'use strict';var multer=require(_0x4733('0x0'));var util=require(_0x4733('0x1'));var path=require(_0x4733('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x4733('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x4733('0x4'));var interaction=require(_0x4733('0x5'));var config=require(_0x4733('0x6'));var controller=require(_0x4733('0x7'));router[_0x4733('0x8')]('/',auth[_0x4733('0x9')](),controller[_0x4733('0xa')]);router[_0x4733('0x8')](_0x4733('0xb'),auth[_0x4733('0x9')](),controller[_0x4733('0xc')]);router[_0x4733('0x8')](_0x4733('0xd'),auth[_0x4733('0x9')](),controller[_0x4733('0xe')]);router[_0x4733('0x8')](_0x4733('0xf'),auth['isAuthenticated'](),controller[_0x4733('0x10')]);router[_0x4733('0x11')]('/',auth['isAuthenticated'](),controller[_0x4733('0x12')]);router['post'](_0x4733('0xd'),auth[_0x4733('0x9')](),controller[_0x4733('0x13')]);router[_0x4733('0x14')](_0x4733('0xb'),auth[_0x4733('0x9')](),controller[_0x4733('0x15')]);router['delete'](_0x4733('0xb'),auth['isAuthenticated'](),controller[_0x4733('0x16')]);module[_0x4733('0x17')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x68b3=['sequelize','exports','STRING','remoteUri'];(function(_0x5aeb5c,_0x31d1d6){var _0x244996=function(_0x210044){while(--_0x210044){_0x5aeb5c['push'](_0x5aeb5c['shift']());}};_0x244996(++_0x31d1d6);}(_0x68b3,0x1d8));var _0x368b=function(_0x43f6c4,_0x2ff782){_0x43f6c4=_0x43f6c4-0x0;var _0x70942c=_0x68b3[_0x43f6c4];return _0x70942c;};'use strict';var Sequelize=require(_0x368b('0x0'));module[_0x368b('0x1')]={'name':{'type':Sequelize[_0x368b('0x2')]},'description':{'type':Sequelize[_0x368b('0x2')]},'username':{'type':Sequelize[_0x368b('0x2')],'unique':'username'},'apiKey':{'type':Sequelize[_0x368b('0x2')]},'remoteUri':{'type':Sequelize[_0x368b('0x2')],'unique':_0x368b('0x3')},'serverUrl':{'type':Sequelize[_0x368b('0x2')],'allowNull':![]}};
\ No newline at end of file
+var _0x1399=['exports','STRING','username','remoteUri','sequelize'];(function(_0x3dfeb9,_0x1cc6e4){var _0x412314=function(_0x321253){while(--_0x321253){_0x3dfeb9['push'](_0x3dfeb9['shift']());}};_0x412314(++_0x1cc6e4);}(_0x1399,0x16c));var _0x9139=function(_0x168af2,_0x6a246){_0x168af2=_0x168af2-0x0;var _0x5dba52=_0x1399[_0x168af2];return _0x5dba52;};'use strict';var Sequelize=require(_0x9139('0x0'));module[_0x9139('0x1')]={'name':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0x9139('0x2')]},'username':{'type':Sequelize['STRING'],'unique':_0x9139('0x3')},'apiKey':{'type':Sequelize[_0x9139('0x2')]},'remoteUri':{'type':Sequelize[_0x9139('0x2')],'unique':_0x9139('0x4')},'serverUrl':{'type':Sequelize[_0x9139('0x2')],'allowNull':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x658d=['mustache','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','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../components/integrations/configuration','sendStatus','status','end','json','undefined','offset','count','limit','apply','reject','update','error','name','send','index','map','FreshsalesAccount','rawAttributes','fieldName','type','key','query','keys','filters','model','fields','attributes','hasOwnProperty','nolimit','order','sort','where','pick','merge','then','includeAll','findAll','catch','show','params','intersection','include','options','find','create','body','destroy','findOne','FreshsalesConfiguration','length','filter','getConfigurations','addConfiguration','AccountId','Subjects','Descriptions','getDescriptions','FreshsalesField','getFields','username','apiKey','remoteUri','slice','lastIndexOf','GET','format','/api/selector/owners','Token\x20token=','users','email','Requested\x20Resource\x20not\x20Found','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','stringify','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird'];(function(_0x217a47,_0xfbd2d3){var _0x22ef5e=function(_0x597b70){while(--_0x597b70){_0x217a47['push'](_0x217a47['shift']());}};_0x22ef5e(++_0xfbd2d3);}(_0x658d,0x137));var _0xd658=function(_0x42cae2,_0x284ef8){_0x42cae2=_0x42cae2-0x0;var _0x5f256f=_0x658d[_0x42cae2];return _0x5f256f;};'use strict';var emlformat=require(_0xd658('0x0'));var rimraf=require(_0xd658('0x1'));var zipdir=require(_0xd658('0x2'));var jsonpatch=require(_0xd658('0x3'));var rp=require(_0xd658('0x4'));var moment=require(_0xd658('0x5'));var BPromise=require(_0xd658('0x6'));var Mustache=require(_0xd658('0x7'));var util=require(_0xd658('0x8'));var path=require(_0xd658('0x9'));var sox=require(_0xd658('0xa'));var csv=require(_0xd658('0xb'));var ejs=require(_0xd658('0xc'));var fs=require('fs');var fs_extra=require(_0xd658('0xd'));var _=require(_0xd658('0xe'));var squel=require(_0xd658('0xf'));var crypto=require(_0xd658('0x10'));var jsforce=require(_0xd658('0x11'));var deskjs=require(_0xd658('0x12'));var toCsv=require(_0xd658('0xb'));var querystring=require(_0xd658('0x13'));var Papa=require(_0xd658('0x14'));var Redis=require(_0xd658('0x15'));var authService=require('../../components/auth/service');var qs=require(_0xd658('0x16'));var as=require(_0xd658('0x17'));var hardwareService=require(_0xd658('0x18'));var logger=require(_0xd658('0x19'))(_0xd658('0x1a'));var utils=require(_0xd658('0x1b'));var config=require(_0xd658('0x1c'));var licenseUtil=require(_0xd658('0x1d'));var db=require('../../mysqldb')['db'];var integrations=require(_0xd658('0x1e'));function respondWithStatusCode(_0x5632d5,_0x470e2e){_0x470e2e=_0x470e2e||0xcc;return function(_0x22f5a9){if(_0x22f5a9){return _0x5632d5[_0xd658('0x1f')](_0x470e2e);}return _0x5632d5[_0xd658('0x20')](_0x470e2e)[_0xd658('0x21')]();};}function respondWithResult(_0x125d79,_0x228cdb){_0x228cdb=_0x228cdb||0xc8;return function(_0x579459){if(_0x579459){return _0x125d79[_0xd658('0x20')](_0x228cdb)[_0xd658('0x22')](_0x579459);}};}function respondWithFilteredResult(_0x5158ae,_0x39fb7e){return function(_0x1975ca){if(_0x1975ca){var _0x2f6796=typeof _0x39fb7e['offset']===_0xd658('0x23')&&typeof _0x39fb7e['limit']===_0xd658('0x23');var _0x61d31e=_0x1975ca['count'];var _0x281522=_0x2f6796?0x0:_0x39fb7e[_0xd658('0x24')];var _0x41e80b=_0x2f6796?_0x1975ca[_0xd658('0x25')]:_0x39fb7e[_0xd658('0x24')]+_0x39fb7e[_0xd658('0x26')];var _0x5c1768;if(_0x41e80b>=_0x61d31e){_0x41e80b=_0x61d31e;_0x5c1768=0xc8;}else{_0x5c1768=0xce;}_0x5158ae[_0xd658('0x20')](_0x5c1768);return _0x5158ae['set']('Content-Range',_0x281522+'-'+_0x41e80b+'/'+_0x61d31e)['json'](_0x1975ca);}return null;};}function patchUpdates(_0x134c4c){return function(_0x2bbe0f){try{jsonpatch[_0xd658('0x27')](_0x2bbe0f,_0x134c4c,!![]);}catch(_0x35d1e8){return BPromise[_0xd658('0x28')](_0x35d1e8);}return _0x2bbe0f['save']();};}function saveUpdates(_0x2eb87c,_0x511e1c){return function(_0x8f2a9){if(_0x8f2a9){return _0x8f2a9[_0xd658('0x29')](_0x2eb87c)['then'](function(_0x2120c3){return _0x2120c3;});}return null;};}function removeEntity(_0x3bb7e4,_0x4278e2){return function(_0x1035ff){if(_0x1035ff){return _0x1035ff['destroy']()['then'](function(){_0x3bb7e4['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x203e64,_0x1893fe){return function(_0xe57a31){if(!_0xe57a31){_0x203e64['sendStatus'](0x194);}return _0xe57a31;};}function handleError(_0x2e58ea,_0x2d961e){_0x2d961e=_0x2d961e||0x1f4;return function(_0x23c932){logger[_0xd658('0x2a')](_0x23c932['stack']);if(_0x23c932['name']){delete _0x23c932[_0xd658('0x2b')];}_0x2e58ea[_0xd658('0x20')](_0x2d961e)[_0xd658('0x2c')](_0x23c932);};}exports[_0xd658('0x2d')]=function(_0x4bfb12,_0x2e3dc0){var _0x390191={},_0x243610={},_0x32984a={'count':0x0,'rows':[]};var _0x56e41f=_[_0xd658('0x2e')](db[_0xd658('0x2f')][_0xd658('0x30')],function(_0x3e67b0){return{'name':_0x3e67b0[_0xd658('0x31')],'type':_0x3e67b0[_0xd658('0x32')][_0xd658('0x33')]};});_0x243610['model']=_['map'](_0x56e41f,_0xd658('0x2b'));_0x243610[_0xd658('0x34')]=_[_0xd658('0x35')](_0x4bfb12['query']);_0x243610[_0xd658('0x36')]=_['intersection'](_0x243610[_0xd658('0x37')],_0x243610['query']);_0x390191['attributes']=_['intersection'](_0x243610[_0xd658('0x37')],qs[_0xd658('0x38')](_0x4bfb12['query'][_0xd658('0x38')]));_0x390191['attributes']=_0x390191['attributes']['length']?_0x390191[_0xd658('0x39')]:_0x243610[_0xd658('0x37')];if(!_0x4bfb12[_0xd658('0x34')][_0xd658('0x3a')](_0xd658('0x3b'))){_0x390191[_0xd658('0x26')]=qs['limit'](_0x4bfb12[_0xd658('0x34')]['limit']);_0x390191[_0xd658('0x24')]=qs[_0xd658('0x24')](_0x4bfb12[_0xd658('0x34')][_0xd658('0x24')]);}_0x390191[_0xd658('0x3c')]=qs[_0xd658('0x3d')](_0x4bfb12[_0xd658('0x34')]['sort']);_0x390191[_0xd658('0x3e')]=qs[_0xd658('0x36')](_[_0xd658('0x3f')](_0x4bfb12[_0xd658('0x34')],_0x243610['filters']),_0x56e41f);if(_0x4bfb12['query']['filter']){_0x390191[_0xd658('0x3e')]=_['merge'](_0x390191[_0xd658('0x3e')],{'$or':_[_0xd658('0x2e')](_0x56e41f,function(_0xe7d919){if(_0xe7d919[_0xd658('0x32')]!=='VIRTUAL'){var _0x5d63d2={};_0x5d63d2[_0xe7d919[_0xd658('0x2b')]]={'$like':'%'+_0x4bfb12[_0xd658('0x34')]['filter']+'%'};return _0x5d63d2;}})});}_0x390191=_[_0xd658('0x40')]({},_0x390191,_0x4bfb12['options']);var _0x10525c={'where':_0x390191[_0xd658('0x3e')]};return db[_0xd658('0x2f')]['count'](_0x10525c)[_0xd658('0x41')](function(_0x28a055){_0x32984a[_0xd658('0x25')]=_0x28a055;if(_0x4bfb12[_0xd658('0x34')][_0xd658('0x42')]){_0x390191['include']=[{'all':!![]}];}return db[_0xd658('0x2f')][_0xd658('0x43')](_0x390191);})[_0xd658('0x41')](function(_0x55c91f){_0x32984a['rows']=_0x55c91f;return _0x32984a;})[_0xd658('0x41')](respondWithFilteredResult(_0x2e3dc0,_0x390191))[_0xd658('0x44')](handleError(_0x2e3dc0,null));};exports[_0xd658('0x45')]=function(_0x12e2ac,_0xbbf2e4){var _0x305bb7={'raw':![],'where':{'id':_0x12e2ac[_0xd658('0x46')]['id']}},_0x5e941f={};_0x5e941f[_0xd658('0x37')]=_[_0xd658('0x35')](db[_0xd658('0x2f')]['rawAttributes']);_0x5e941f[_0xd658('0x34')]=_[_0xd658('0x35')](_0x12e2ac['query']);_0x5e941f[_0xd658('0x36')]=_[_0xd658('0x47')](_0x5e941f[_0xd658('0x37')],_0x5e941f[_0xd658('0x34')]);_0x305bb7['attributes']=_['intersection'](_0x5e941f[_0xd658('0x37')],qs[_0xd658('0x38')](_0x12e2ac[_0xd658('0x34')][_0xd658('0x38')]));_0x305bb7[_0xd658('0x39')]=_0x305bb7[_0xd658('0x39')]['length']?_0x305bb7[_0xd658('0x39')]:_0x5e941f[_0xd658('0x37')];if(_0x12e2ac[_0xd658('0x34')]['includeAll']){_0x305bb7[_0xd658('0x48')]=[{'all':!![]}];}_0x305bb7=_[_0xd658('0x40')]({},_0x305bb7,_0x12e2ac[_0xd658('0x49')]);return db['FreshsalesAccount'][_0xd658('0x4a')](_0x305bb7)[_0xd658('0x41')](handleEntityNotFound(_0xbbf2e4,null))['then'](respondWithResult(_0xbbf2e4,null))[_0xd658('0x44')](handleError(_0xbbf2e4,null));};exports[_0xd658('0x4b')]=function(_0x36f756,_0x5a0ef9){return db[_0xd658('0x2f')][_0xd658('0x4b')](_0x36f756['body'],{})[_0xd658('0x41')](respondWithResult(_0x5a0ef9,0xc9))[_0xd658('0x44')](handleError(_0x5a0ef9,null));};exports['update']=function(_0x5533d0,_0x2d38d2){if(_0x5533d0['body']['id']){delete _0x5533d0[_0xd658('0x4c')]['id'];}return db[_0xd658('0x2f')][_0xd658('0x4a')]({'where':{'id':_0x5533d0[_0xd658('0x46')]['id']}})['then'](handleEntityNotFound(_0x2d38d2,null))[_0xd658('0x41')](saveUpdates(_0x5533d0[_0xd658('0x4c')],null))['then'](respondWithResult(_0x2d38d2,null))[_0xd658('0x44')](handleError(_0x2d38d2,null));};exports[_0xd658('0x4d')]=function(_0x5494e7,_0x1971c7){return db['FreshsalesAccount'][_0xd658('0x4a')]({'where':{'id':_0x5494e7[_0xd658('0x46')]['id']}})[_0xd658('0x41')](handleEntityNotFound(_0x1971c7,null))[_0xd658('0x41')](removeEntity(_0x1971c7,null))[_0xd658('0x44')](handleError(_0x1971c7,null));};exports['getConfigurations']=function(_0x3f3837,_0x44bb29,_0x3c2cb8){var _0x558bf4={};var _0x1ca11b={};var _0x3d35ff;var _0x5bcd51;return db[_0xd658('0x2f')][_0xd658('0x4e')]({'where':{'id':_0x3f3837[_0xd658('0x46')]['id']}})[_0xd658('0x41')](handleEntityNotFound(_0x44bb29,null))[_0xd658('0x41')](function(_0x258429){if(_0x258429){_0x3d35ff=_0x258429;_0x1ca11b['model']=_['keys'](db[_0xd658('0x4f')][_0xd658('0x30')]);_0x1ca11b[_0xd658('0x34')]=_[_0xd658('0x35')](_0x3f3837[_0xd658('0x34')]);_0x1ca11b['filters']=_[_0xd658('0x47')](_0x1ca11b[_0xd658('0x37')],_0x1ca11b[_0xd658('0x34')]);_0x558bf4[_0xd658('0x39')]=_[_0xd658('0x47')](_0x1ca11b['model'],qs['fields'](_0x3f3837[_0xd658('0x34')]['fields']));_0x558bf4[_0xd658('0x39')]=_0x558bf4[_0xd658('0x39')][_0xd658('0x50')]?_0x558bf4[_0xd658('0x39')]:_0x1ca11b[_0xd658('0x37')];_0x558bf4[_0xd658('0x3c')]=qs['sort'](_0x3f3837[_0xd658('0x34')][_0xd658('0x3d')]);_0x558bf4[_0xd658('0x3e')]=qs[_0xd658('0x36')](_[_0xd658('0x3f')](_0x3f3837[_0xd658('0x34')],_0x1ca11b[_0xd658('0x36')]));if(_0x3f3837['query'][_0xd658('0x51')]){_0x558bf4[_0xd658('0x3e')]=_['merge'](_0x558bf4[_0xd658('0x3e')],{'$or':_[_0xd658('0x2e')](_0x558bf4[_0xd658('0x39')],function(_0x299b78){var _0x21ea0e={};_0x21ea0e[_0x299b78]={'$like':'%'+_0x3f3837[_0xd658('0x34')][_0xd658('0x51')]+'%'};return _0x21ea0e;})});}_0x558bf4=_[_0xd658('0x40')]({},_0x558bf4,_0x3f3837[_0xd658('0x49')]);return _0x3d35ff[_0xd658('0x52')](_0x558bf4);}})[_0xd658('0x41')](function(_0x287fb5){if(_0x287fb5){_0x5bcd51=_0x287fb5['length'];if(!_0x3f3837[_0xd658('0x34')][_0xd658('0x3a')](_0xd658('0x3b'))){_0x558bf4[_0xd658('0x26')]=qs[_0xd658('0x26')](_0x3f3837['query'][_0xd658('0x26')]);_0x558bf4[_0xd658('0x24')]=qs['offset'](_0x3f3837[_0xd658('0x34')]['offset']);}return _0x3d35ff[_0xd658('0x52')](_0x558bf4);}})[_0xd658('0x41')](function(_0xeaa3d0){if(_0xeaa3d0){return _0xeaa3d0?{'count':_0x5bcd51,'rows':_0xeaa3d0}:null;}})[_0xd658('0x41')](respondWithResult(_0x44bb29,null))['catch'](handleError(_0x44bb29,null));};exports[_0xd658('0x53')]=function(_0x2fda1b,_0x4fe873,_0x2d9378){if(_0x2fda1b['body']['id']){delete _0x2fda1b[_0xd658('0x4c')]['id'];}return db[_0xd658('0x2f')][_0xd658('0x4e')]({'where':{'id':_0x2fda1b[_0xd658('0x46')]['id']}})['then'](handleEntityNotFound(_0x4fe873,null))[_0xd658('0x41')](function(_0x3186d2){if(_0x3186d2){_0x2fda1b[_0xd658('0x4c')][_0xd658('0x54')]=_0x3186d2['id'];_0x2fda1b[_0xd658('0x4c')][_0xd658('0x55')]=integrations['getSubjects'](_0x2fda1b[_0xd658('0x4c')]['channel'],_0x2fda1b[_0xd658('0x4c')][_0xd658('0x32')]);_0x2fda1b[_0xd658('0x4c')][_0xd658('0x56')]=integrations[_0xd658('0x57')](_0x2fda1b['body']['channel'],_0x2fda1b['body'][_0xd658('0x32')]);return db['FreshsalesConfiguration'][_0xd658('0x4b')](_0x2fda1b[_0xd658('0x4c')],{'include':[{'model':db[_0xd658('0x58')],'as':_0xd658('0x55')},{'model':db[_0xd658('0x58')],'as':_0xd658('0x56')}]});}return null;})[_0xd658('0x41')](respondWithResult(_0x4fe873,null))[_0xd658('0x44')](handleError(_0x4fe873,null));};exports[_0xd658('0x59')]=function(_0x555b74,_0xe22b71,_0x5c206b){var _0x369144='';var _0x53add4='';return db[_0xd658('0x2f')]['findOne']({'where':{'id':_0x555b74['params']['id']},'attributes':['id',_0xd658('0x5a'),'remoteUri',_0xd658('0x5b')]})[_0xd658('0x41')](handleEntityNotFound(_0xe22b71,null))[_0xd658('0x41')](function(_0x395497){if(_0x395497){_0x53add4=_0x395497[_0xd658('0x5a')];_0x369144=_0x395497['remoteUri'];var _0x5e2008=_0x395497[_0xd658('0x5c')][_0xd658('0x5d')](-0x1);if(_0x5e2008==='/'){_0x369144=_0x369144['substring'](0x0,_0x369144[_0xd658('0x5e')](_0x5e2008));}return rp({'method':_0xd658('0x5f'),'uri':util[_0xd658('0x60')]('%s%s',_0x369144,_0xd658('0x61')),'headers':{'Authorization':_0xd658('0x62')+_0x395497[_0xd658('0x5b')]},'json':!![]});}})['then'](function(_0x9fd70d){if(_0x9fd70d){var _0x578e7c=_0x9fd70d[_0xd658('0x63')];var _0x44d858=![];var _0x30fc51=null;for(_0x30fc51=0x0;_0x30fc51<_0x578e7c[_0xd658('0x50')];_0x30fc51++){if(_0x578e7c[_0x30fc51][_0xd658('0x64')]===_0x53add4){_0x44d858=!![];}}if(_0x44d858){return!![];}else{throw new Error({'statusCode':0x194,'message':_0xd658('0x65')});}}})[_0xd658('0x41')](respondWithResult(_0xe22b71,null))[_0xd658('0x44')](function(_0x15cfb5){var _0x1bb21a=_0x555b74[_0xd658('0x34')][_0xd658('0x66')]?0x1f4:_0x15cfb5[_0xd658('0x67')]||0x1f4;logger['error'](_0xd658('0x68'),_0xd658('0x59'),_0x1bb21a,JSON[_0xd658('0x69')](_0x15cfb5));delete _0x15cfb5[_0xd658('0x2b')];if(_0x1bb21a===0x191){_0x1bb21a=0x190;}_0xe22b71[_0xd658('0x20')](_0x1bb21a)[_0xd658('0x2c')](_0x555b74[_0xd658('0x34')][_0xd658('0x66')]?{'message':'Wrong\x20credentials','statusCode':_0x15cfb5[_0xd658('0x67')]}:_0x15cfb5);});};
\ No newline at end of file
+var _0x6dac=['findOne','Subjects','getSubjects','getDescriptions','FreshsalesField','getFields','apiKey','username','remoteUri','slice','substring','lastIndexOf','GET','format','%s%s','/api/selector/owners','Token\x20token=','users','email','Requested\x20Resource\x20not\x20Found','test','statusCode','stringify','Wrong\x20credentials','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../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','then','destroy','name','send','map','FreshsalesAccount','rawAttributes','fieldName','type','key','keys','query','filters','intersection','attributes','model','fields','length','nolimit','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','rows','catch','params','create','body','update','find','getConfigurations','FreshsalesConfiguration','hasOwnProperty'];(function(_0x521435,_0x4d86a9){var _0x9249d1=function(_0x29431d){while(--_0x29431d){_0x521435['push'](_0x521435['shift']());}};_0x9249d1(++_0x4d86a9);}(_0x6dac,0x1ac));var _0xc6da=function(_0x5f47a8,_0x529466){_0x5f47a8=_0x5f47a8-0x0;var _0x3ad2c5=_0x6dac[_0x5f47a8];return _0x3ad2c5;};'use strict';var emlformat=require(_0xc6da('0x0'));var rimraf=require(_0xc6da('0x1'));var zipdir=require(_0xc6da('0x2'));var jsonpatch=require(_0xc6da('0x3'));var rp=require(_0xc6da('0x4'));var moment=require(_0xc6da('0x5'));var BPromise=require(_0xc6da('0x6'));var Mustache=require('mustache');var util=require(_0xc6da('0x7'));var path=require(_0xc6da('0x8'));var sox=require(_0xc6da('0x9'));var csv=require(_0xc6da('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xc6da('0xb'));var squel=require('squel');var crypto=require(_0xc6da('0xc'));var jsforce=require(_0xc6da('0xd'));var deskjs=require(_0xc6da('0xe'));var toCsv=require('to-csv');var querystring=require(_0xc6da('0xf'));var Papa=require(_0xc6da('0x10'));var Redis=require(_0xc6da('0x11'));var authService=require(_0xc6da('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0xc6da('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xc6da('0x14'))(_0xc6da('0x15'));var utils=require(_0xc6da('0x16'));var config=require(_0xc6da('0x17'));var licenseUtil=require(_0xc6da('0x18'));var db=require(_0xc6da('0x19'))['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x38899f,_0x35f7bc){_0x35f7bc=_0x35f7bc||0xcc;return function(_0x3521f6){if(_0x3521f6){return _0x38899f[_0xc6da('0x1a')](_0x35f7bc);}return _0x38899f[_0xc6da('0x1b')](_0x35f7bc)[_0xc6da('0x1c')]();};}function respondWithResult(_0x229f3d,_0x4120ab){_0x4120ab=_0x4120ab||0xc8;return function(_0x646dbe){if(_0x646dbe){return _0x229f3d[_0xc6da('0x1b')](_0x4120ab)[_0xc6da('0x1d')](_0x646dbe);}};}function respondWithFilteredResult(_0x29d3a4,_0x12f2f2){return function(_0x224eb){if(_0x224eb){var _0x2bf39b=typeof _0x12f2f2[_0xc6da('0x1e')]===_0xc6da('0x1f')&&typeof _0x12f2f2[_0xc6da('0x20')]===_0xc6da('0x1f');var _0x541f3f=_0x224eb['count'];var _0x1a7dee=_0x2bf39b?0x0:_0x12f2f2[_0xc6da('0x1e')];var _0x341b6d=_0x2bf39b?_0x224eb[_0xc6da('0x21')]:_0x12f2f2[_0xc6da('0x1e')]+_0x12f2f2[_0xc6da('0x20')];var _0x2aa8c2;if(_0x341b6d>=_0x541f3f){_0x341b6d=_0x541f3f;_0x2aa8c2=0xc8;}else{_0x2aa8c2=0xce;}_0x29d3a4[_0xc6da('0x1b')](_0x2aa8c2);return _0x29d3a4[_0xc6da('0x22')](_0xc6da('0x23'),_0x1a7dee+'-'+_0x341b6d+'/'+_0x541f3f)[_0xc6da('0x1d')](_0x224eb);}return null;};}function patchUpdates(_0x4e428f){return function(_0x2ee6a5){try{jsonpatch[_0xc6da('0x24')](_0x2ee6a5,_0x4e428f,!![]);}catch(_0x349b57){return BPromise[_0xc6da('0x25')](_0x349b57);}return _0x2ee6a5[_0xc6da('0x26')]();};}function saveUpdates(_0x521fbc,_0x46b7c8){return function(_0x2e1ff3){if(_0x2e1ff3){return _0x2e1ff3['update'](_0x521fbc)[_0xc6da('0x27')](function(_0x525078){return _0x525078;});}return null;};}function removeEntity(_0x4d8b40,_0x52ed51){return function(_0x4c4d25){if(_0x4c4d25){return _0x4c4d25[_0xc6da('0x28')]()[_0xc6da('0x27')](function(){_0x4d8b40[_0xc6da('0x1b')](0xcc)[_0xc6da('0x1c')]();});}};}function handleEntityNotFound(_0x4dbd49,_0x32083a){return function(_0x597793){if(!_0x597793){_0x4dbd49[_0xc6da('0x1a')](0x194);}return _0x597793;};}function handleError(_0x1f49e6,_0x402441){_0x402441=_0x402441||0x1f4;return function(_0x4a8f32){logger['error'](_0x4a8f32['stack']);if(_0x4a8f32[_0xc6da('0x29')]){delete _0x4a8f32[_0xc6da('0x29')];}_0x1f49e6[_0xc6da('0x1b')](_0x402441)[_0xc6da('0x2a')](_0x4a8f32);};}exports['index']=function(_0x382b7e,_0x4f630d){var _0x55a837={},_0x50304e={},_0x2a5fe4={'count':0x0,'rows':[]};var _0x482a5c=_[_0xc6da('0x2b')](db[_0xc6da('0x2c')][_0xc6da('0x2d')],function(_0x422cbb){return{'name':_0x422cbb[_0xc6da('0x2e')],'type':_0x422cbb[_0xc6da('0x2f')][_0xc6da('0x30')]};});_0x50304e['model']=_[_0xc6da('0x2b')](_0x482a5c,_0xc6da('0x29'));_0x50304e['query']=_[_0xc6da('0x31')](_0x382b7e[_0xc6da('0x32')]);_0x50304e[_0xc6da('0x33')]=_[_0xc6da('0x34')](_0x50304e['model'],_0x50304e[_0xc6da('0x32')]);_0x55a837[_0xc6da('0x35')]=_[_0xc6da('0x34')](_0x50304e[_0xc6da('0x36')],qs['fields'](_0x382b7e[_0xc6da('0x32')][_0xc6da('0x37')]));_0x55a837[_0xc6da('0x35')]=_0x55a837['attributes'][_0xc6da('0x38')]?_0x55a837['attributes']:_0x50304e[_0xc6da('0x36')];if(!_0x382b7e[_0xc6da('0x32')]['hasOwnProperty'](_0xc6da('0x39'))){_0x55a837['limit']=qs['limit'](_0x382b7e[_0xc6da('0x32')][_0xc6da('0x20')]);_0x55a837[_0xc6da('0x1e')]=qs[_0xc6da('0x1e')](_0x382b7e[_0xc6da('0x32')][_0xc6da('0x1e')]);}_0x55a837['order']=qs['sort'](_0x382b7e['query'][_0xc6da('0x3a')]);_0x55a837[_0xc6da('0x3b')]=qs[_0xc6da('0x33')](_[_0xc6da('0x3c')](_0x382b7e[_0xc6da('0x32')],_0x50304e[_0xc6da('0x33')]),_0x482a5c);if(_0x382b7e[_0xc6da('0x32')][_0xc6da('0x3d')]){_0x55a837[_0xc6da('0x3b')]=_[_0xc6da('0x3e')](_0x55a837[_0xc6da('0x3b')],{'$or':_[_0xc6da('0x2b')](_0x482a5c,function(_0x2b4ba5){if(_0x2b4ba5[_0xc6da('0x2f')]!==_0xc6da('0x3f')){var _0x5b2d6b={};_0x5b2d6b[_0x2b4ba5[_0xc6da('0x29')]]={'$like':'%'+_0x382b7e['query'][_0xc6da('0x3d')]+'%'};return _0x5b2d6b;}})});}_0x55a837=_[_0xc6da('0x3e')]({},_0x55a837,_0x382b7e[_0xc6da('0x40')]);var _0x4fad23={'where':_0x55a837[_0xc6da('0x3b')]};return db['FreshsalesAccount'][_0xc6da('0x21')](_0x4fad23)[_0xc6da('0x27')](function(_0x2f8862){_0x2a5fe4[_0xc6da('0x21')]=_0x2f8862;if(_0x382b7e[_0xc6da('0x32')][_0xc6da('0x41')]){_0x55a837[_0xc6da('0x42')]=[{'all':!![]}];}return db['FreshsalesAccount']['findAll'](_0x55a837);})['then'](function(_0x1c9fd1){_0x2a5fe4[_0xc6da('0x43')]=_0x1c9fd1;return _0x2a5fe4;})[_0xc6da('0x27')](respondWithFilteredResult(_0x4f630d,_0x55a837))[_0xc6da('0x44')](handleError(_0x4f630d,null));};exports['show']=function(_0x4f15e6,_0x578a4e){var _0x35bb77={'raw':![],'where':{'id':_0x4f15e6[_0xc6da('0x45')]['id']}},_0x1b6ff8={};_0x1b6ff8[_0xc6da('0x36')]=_['keys'](db[_0xc6da('0x2c')][_0xc6da('0x2d')]);_0x1b6ff8[_0xc6da('0x32')]=_[_0xc6da('0x31')](_0x4f15e6['query']);_0x1b6ff8['filters']=_[_0xc6da('0x34')](_0x1b6ff8['model'],_0x1b6ff8[_0xc6da('0x32')]);_0x35bb77[_0xc6da('0x35')]=_['intersection'](_0x1b6ff8[_0xc6da('0x36')],qs[_0xc6da('0x37')](_0x4f15e6[_0xc6da('0x32')][_0xc6da('0x37')]));_0x35bb77[_0xc6da('0x35')]=_0x35bb77[_0xc6da('0x35')][_0xc6da('0x38')]?_0x35bb77[_0xc6da('0x35')]:_0x1b6ff8[_0xc6da('0x36')];if(_0x4f15e6['query'][_0xc6da('0x41')]){_0x35bb77['include']=[{'all':!![]}];}_0x35bb77=_['merge']({},_0x35bb77,_0x4f15e6[_0xc6da('0x40')]);return db['FreshsalesAccount']['find'](_0x35bb77)['then'](handleEntityNotFound(_0x578a4e,null))[_0xc6da('0x27')](respondWithResult(_0x578a4e,null))[_0xc6da('0x44')](handleError(_0x578a4e,null));};exports['create']=function(_0x121225,_0x33286e){return db[_0xc6da('0x2c')][_0xc6da('0x46')](_0x121225[_0xc6da('0x47')],{})[_0xc6da('0x27')](respondWithResult(_0x33286e,0xc9))[_0xc6da('0x44')](handleError(_0x33286e,null));};exports[_0xc6da('0x48')]=function(_0x580d3b,_0x13143b){if(_0x580d3b['body']['id']){delete _0x580d3b[_0xc6da('0x47')]['id'];}return db[_0xc6da('0x2c')][_0xc6da('0x49')]({'where':{'id':_0x580d3b[_0xc6da('0x45')]['id']}})[_0xc6da('0x27')](handleEntityNotFound(_0x13143b,null))['then'](saveUpdates(_0x580d3b[_0xc6da('0x47')],null))[_0xc6da('0x27')](respondWithResult(_0x13143b,null))[_0xc6da('0x44')](handleError(_0x13143b,null));};exports[_0xc6da('0x28')]=function(_0x3ac49a,_0x1cc2b0){return db['FreshsalesAccount'][_0xc6da('0x49')]({'where':{'id':_0x3ac49a['params']['id']}})[_0xc6da('0x27')](handleEntityNotFound(_0x1cc2b0,null))[_0xc6da('0x27')](removeEntity(_0x1cc2b0,null))[_0xc6da('0x44')](handleError(_0x1cc2b0,null));};exports[_0xc6da('0x4a')]=function(_0xee7f34,_0x50c70a,_0x313e90){var _0x52c418={};var _0x564e05={};var _0x39f6dd;var _0x2dac27;return db[_0xc6da('0x2c')]['findOne']({'where':{'id':_0xee7f34[_0xc6da('0x45')]['id']}})['then'](handleEntityNotFound(_0x50c70a,null))[_0xc6da('0x27')](function(_0x4b2b1f){if(_0x4b2b1f){_0x39f6dd=_0x4b2b1f;_0x564e05['model']=_[_0xc6da('0x31')](db[_0xc6da('0x4b')][_0xc6da('0x2d')]);_0x564e05[_0xc6da('0x32')]=_[_0xc6da('0x31')](_0xee7f34['query']);_0x564e05[_0xc6da('0x33')]=_[_0xc6da('0x34')](_0x564e05[_0xc6da('0x36')],_0x564e05['query']);_0x52c418['attributes']=_[_0xc6da('0x34')](_0x564e05[_0xc6da('0x36')],qs[_0xc6da('0x37')](_0xee7f34[_0xc6da('0x32')][_0xc6da('0x37')]));_0x52c418[_0xc6da('0x35')]=_0x52c418['attributes']['length']?_0x52c418['attributes']:_0x564e05[_0xc6da('0x36')];_0x52c418['order']=qs[_0xc6da('0x3a')](_0xee7f34['query'][_0xc6da('0x3a')]);_0x52c418[_0xc6da('0x3b')]=qs[_0xc6da('0x33')](_['pick'](_0xee7f34[_0xc6da('0x32')],_0x564e05[_0xc6da('0x33')]));if(_0xee7f34[_0xc6da('0x32')]['filter']){_0x52c418['where']=_['merge'](_0x52c418[_0xc6da('0x3b')],{'$or':_['map'](_0x52c418['attributes'],function(_0x3d9fa0){var _0x6a200c={};_0x6a200c[_0x3d9fa0]={'$like':'%'+_0xee7f34['query'][_0xc6da('0x3d')]+'%'};return _0x6a200c;})});}_0x52c418=_[_0xc6da('0x3e')]({},_0x52c418,_0xee7f34[_0xc6da('0x40')]);return _0x39f6dd[_0xc6da('0x4a')](_0x52c418);}})['then'](function(_0x5cac65){if(_0x5cac65){_0x2dac27=_0x5cac65[_0xc6da('0x38')];if(!_0xee7f34[_0xc6da('0x32')][_0xc6da('0x4c')](_0xc6da('0x39'))){_0x52c418[_0xc6da('0x20')]=qs[_0xc6da('0x20')](_0xee7f34[_0xc6da('0x32')]['limit']);_0x52c418[_0xc6da('0x1e')]=qs['offset'](_0xee7f34['query'][_0xc6da('0x1e')]);}return _0x39f6dd[_0xc6da('0x4a')](_0x52c418);}})['then'](function(_0x5b7de1){if(_0x5b7de1){return _0x5b7de1?{'count':_0x2dac27,'rows':_0x5b7de1}:null;}})[_0xc6da('0x27')](respondWithResult(_0x50c70a,null))[_0xc6da('0x44')](handleError(_0x50c70a,null));};exports['addConfiguration']=function(_0x225689,_0x150249,_0x38e844){if(_0x225689['body']['id']){delete _0x225689[_0xc6da('0x47')]['id'];}return db[_0xc6da('0x2c')][_0xc6da('0x4d')]({'where':{'id':_0x225689['params']['id']}})[_0xc6da('0x27')](handleEntityNotFound(_0x150249,null))[_0xc6da('0x27')](function(_0x597bd5){if(_0x597bd5){_0x225689['body']['AccountId']=_0x597bd5['id'];_0x225689[_0xc6da('0x47')][_0xc6da('0x4e')]=integrations[_0xc6da('0x4f')](_0x225689[_0xc6da('0x47')]['channel'],_0x225689['body']['type']);_0x225689[_0xc6da('0x47')]['Descriptions']=integrations[_0xc6da('0x50')](_0x225689[_0xc6da('0x47')]['channel'],_0x225689['body'][_0xc6da('0x2f')]);return db[_0xc6da('0x4b')][_0xc6da('0x46')](_0x225689[_0xc6da('0x47')],{'include':[{'model':db['FreshsalesField'],'as':'Subjects'},{'model':db[_0xc6da('0x51')],'as':'Descriptions'}]});}return null;})[_0xc6da('0x27')](respondWithResult(_0x150249,null))[_0xc6da('0x44')](handleError(_0x150249,null));};exports[_0xc6da('0x52')]=function(_0x3cad13,_0x12fd3b,_0x5b3435){var _0x65af3b='';var _0x2a5fd2='';return db[_0xc6da('0x2c')][_0xc6da('0x4d')]({'where':{'id':_0x3cad13[_0xc6da('0x45')]['id']},'attributes':['id','username','remoteUri',_0xc6da('0x53')]})[_0xc6da('0x27')](handleEntityNotFound(_0x12fd3b,null))[_0xc6da('0x27')](function(_0x531990){if(_0x531990){_0x2a5fd2=_0x531990[_0xc6da('0x54')];_0x65af3b=_0x531990[_0xc6da('0x55')];var _0x49e722=_0x531990[_0xc6da('0x55')][_0xc6da('0x56')](-0x1);if(_0x49e722==='/'){_0x65af3b=_0x65af3b[_0xc6da('0x57')](0x0,_0x65af3b[_0xc6da('0x58')](_0x49e722));}return rp({'method':_0xc6da('0x59'),'uri':util[_0xc6da('0x5a')](_0xc6da('0x5b'),_0x65af3b,_0xc6da('0x5c')),'headers':{'Authorization':_0xc6da('0x5d')+_0x531990[_0xc6da('0x53')]},'json':!![]});}})[_0xc6da('0x27')](function(_0x98e5b3){if(_0x98e5b3){var _0x335333=_0x98e5b3[_0xc6da('0x5e')];var _0x149529=![];var _0x573a66=null;for(_0x573a66=0x0;_0x573a66<_0x335333['length'];_0x573a66++){if(_0x335333[_0x573a66][_0xc6da('0x5f')]===_0x2a5fd2){_0x149529=!![];}}if(_0x149529){return!![];}else{throw new Error({'statusCode':0x194,'message':_0xc6da('0x60')});}}})['then'](respondWithResult(_0x12fd3b,null))['catch'](function(_0x2f384a){var _0x2fa41c=_0x3cad13[_0xc6da('0x32')][_0xc6da('0x61')]?0x1f4:_0x2f384a[_0xc6da('0x62')]||0x1f4;logger['error']('getFields,\x20%s,\x20%s,\x20%s',_0xc6da('0x52'),_0x2fa41c,JSON[_0xc6da('0x63')](_0x2f384a));delete _0x2f384a['name'];if(_0x2fa41c===0x191){_0x2fa41c=0x190;}_0x12fd3b[_0xc6da('0x1b')](_0x2fa41c)[_0xc6da('0x2a')](_0x3cad13[_0xc6da('0x32')]['test']?{'message':_0xc6da('0x64'),'statusCode':_0x2f384a[_0xc6da('0x62')]}:_0x2f384a);});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9536=['lodash','util','../../config/logger','api','bluebird','path','rimraf','../../config/environment','./intFreshsalesAccount.attributes','../../components/integrations/configuration','define','FreshsalesAccount','int_freshsales_accounts'];(function(_0x4ead59,_0x5c3360){var _0x42618b=function(_0xa9f743){while(--_0xa9f743){_0x4ead59['push'](_0x4ead59['shift']());}};_0x42618b(++_0x5c3360);}(_0x9536,0x179));var _0x6953=function(_0x237da8,_0x37b77a){_0x237da8=_0x237da8-0x0;var _0x558825=_0x9536[_0x237da8];return _0x558825;};'use strict';var _=require(_0x6953('0x0'));var util=require(_0x6953('0x1'));var logger=require(_0x6953('0x2'))(_0x6953('0x3'));var moment=require('moment');var BPromise=require(_0x6953('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x6953('0x5'));var rimraf=require(_0x6953('0x6'));var config=require(_0x6953('0x7'));var attributes=require(_0x6953('0x8'));var integrations=require(_0x6953('0x9'));module['exports']=function(_0x2b273e,_0x2bb026){return _0x2b273e[_0x6953('0xa')](_0x6953('0xb'),attributes,{'tableName':_0x6953('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x2a07=['moment','request-promise','path','rimraf','../../config/environment','./intFreshsalesAccount.attributes','../../components/integrations/configuration','exports','define','FreshsalesAccount','int_freshsales_accounts','lodash','util','../../config/logger','api'];(function(_0x26f81a,_0x243a16){var _0x5ea66e=function(_0x44fc5d){while(--_0x44fc5d){_0x26f81a['push'](_0x26f81a['shift']());}};_0x5ea66e(++_0x243a16);}(_0x2a07,0x74));var _0x72a0=function(_0x246148,_0x1358ee){_0x246148=_0x246148-0x0;var _0x453d94=_0x2a07[_0x246148];return _0x453d94;};'use strict';var _=require(_0x72a0('0x0'));var util=require(_0x72a0('0x1'));var logger=require(_0x72a0('0x2'))(_0x72a0('0x3'));var moment=require(_0x72a0('0x4'));var BPromise=require('bluebird');var rp=require(_0x72a0('0x5'));var fs=require('fs');var path=require(_0x72a0('0x6'));var rimraf=require(_0x72a0('0x7'));var config=require(_0x72a0('0x8'));var attributes=require(_0x72a0('0x9'));var integrations=require(_0x72a0('0xa'));module[_0x72a0('0xb')]=function(_0x20dab9,_0x193e3b){return _0x20dab9[_0x72a0('0xc')](_0x72a0('0xd'),attributes,{'tableName':_0x72a0('0xe'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x77e6=['result','catch','FreshsalesAccount','findAll','options','where','attributes','limit','include','model','map','GetFreshsalesAccount','ShowFreshsalesAccount','find','raw','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','client','request','then','info','request\x20sent','debug','FreshsalesAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','FreshsalesAccount,\x20%s,\x20%s','message'];(function(_0x58bbf3,_0x3d8ed5){var _0x3a62c9=function(_0x8ec477){while(--_0x8ec477){_0x58bbf3['push'](_0x58bbf3['shift']());}};_0x3a62c9(++_0x3d8ed5);}(_0x77e6,0x1a6));var _0x677e=function(_0xdee4eb,_0x23e239){_0xdee4eb=_0xdee4eb-0x0;var _0x535587=_0x77e6[_0xdee4eb];return _0x535587;};'use strict';var _=require(_0x677e('0x0'));var util=require(_0x677e('0x1'));var moment=require(_0x677e('0x2'));var BPromise=require(_0x677e('0x3'));var rs=require(_0x677e('0x4'));var fs=require('fs');var Redis=require(_0x677e('0x5'));var db=require(_0x677e('0x6'))['db'];var utils=require(_0x677e('0x7'));var logger=require('../../config/logger')(_0x677e('0x8'));var config=require(_0x677e('0x9'));var jayson=require('jayson/promise');var client=jayson[_0x677e('0xa')]['http']({'port':0x232a});function respondWithRpcPromise(_0x40d314,_0x4d1a57,_0x5a5dd3){return new BPromise(function(_0x2eb40c,_0x4c519f){return client[_0x677e('0xb')](_0x40d314,_0x5a5dd3)[_0x677e('0xc')](function(_0x552931){logger[_0x677e('0xd')]('FreshsalesAccount,\x20%s,\x20%s',_0x4d1a57,_0x677e('0xe'));logger[_0x677e('0xf')](_0x677e('0x10'),_0x4d1a57,_0x677e('0xe'),JSON[_0x677e('0x11')](_0x552931));if(_0x552931[_0x677e('0x12')]){if(_0x552931[_0x677e('0x12')][_0x677e('0x13')]===0x1f4){logger[_0x677e('0x12')](_0x677e('0x14'),_0x4d1a57,_0x552931[_0x677e('0x12')][_0x677e('0x15')]);return _0x4c519f(_0x552931[_0x677e('0x12')][_0x677e('0x15')]);}logger['error']('FreshsalesAccount,\x20%s,\x20%s',_0x4d1a57,_0x552931['error'][_0x677e('0x15')]);return _0x2eb40c(_0x552931[_0x677e('0x12')][_0x677e('0x15')]);}else{logger[_0x677e('0xd')](_0x677e('0x14'),_0x4d1a57,_0x677e('0xe'));_0x2eb40c(_0x552931[_0x677e('0x16')][_0x677e('0x15')]);}})[_0x677e('0x17')](function(_0x32d306){logger[_0x677e('0x12')](_0x677e('0x14'),_0x4d1a57,_0x32d306);_0x4c519f(_0x32d306);});});}exports['GetFreshsalesAccount']=function(_0x1c5124){var _0x2ef2bf=this;return new Promise(function(_0x385b06,_0x221b6d){return db[_0x677e('0x18')][_0x677e('0x19')]({'raw':_0x1c5124['options']?_0x1c5124[_0x677e('0x1a')]['raw']===undefined?!![]:![]:!![],'where':_0x1c5124[_0x677e('0x1a')]?_0x1c5124[_0x677e('0x1a')][_0x677e('0x1b')]||null:null,'attributes':_0x1c5124['options']?_0x1c5124[_0x677e('0x1a')][_0x677e('0x1c')]||null:null,'limit':_0x1c5124[_0x677e('0x1a')]?_0x1c5124[_0x677e('0x1a')][_0x677e('0x1d')]||null:null,'include':_0x1c5124[_0x677e('0x1a')]?_0x1c5124[_0x677e('0x1a')]['include']?_['map'](_0x1c5124['options'][_0x677e('0x1e')],function(_0x154fce){return{'model':db[_0x154fce[_0x677e('0x1f')]],'as':_0x154fce['as'],'attributes':_0x154fce[_0x677e('0x1c')],'include':_0x154fce[_0x677e('0x1e')]?_[_0x677e('0x20')](_0x154fce[_0x677e('0x1e')],function(_0x42f2b8){return{'model':db[_0x42f2b8[_0x677e('0x1f')]],'as':_0x42f2b8['as'],'attributes':_0x42f2b8[_0x677e('0x1c')],'include':_0x42f2b8['include']?_['map'](_0x42f2b8[_0x677e('0x1e')],function(_0x184f68){return{'model':db[_0x184f68['model']],'as':_0x184f68['as'],'attributes':_0x184f68[_0x677e('0x1c')]};}):[]};}):[]};}):[]:[]})[_0x677e('0xc')](function(_0xf6b3ad){logger[_0x677e('0xd')](_0x677e('0x21'),_0x1c5124);logger[_0x677e('0xf')]('GetFreshsalesAccount',_0x1c5124,JSON[_0x677e('0x11')](_0xf6b3ad));_0x385b06(_0xf6b3ad);})[_0x677e('0x17')](function(_0xeca8e2){logger[_0x677e('0x12')](_0x677e('0x21'),_0xeca8e2[_0x677e('0x15')],_0x1c5124);_0x221b6d(_0x2ef2bf[_0x677e('0x12')](0x1f4,_0xeca8e2[_0x677e('0x15')]));});});};exports[_0x677e('0x22')]=function(_0x4c5113){var _0x22ccfb=this;return new Promise(function(_0x3cac19,_0x2fb815){return db[_0x677e('0x18')][_0x677e('0x23')]({'raw':_0x4c5113[_0x677e('0x1a')]?_0x4c5113[_0x677e('0x1a')][_0x677e('0x24')]===undefined?!![]:![]:!![],'where':_0x4c5113[_0x677e('0x1a')]?_0x4c5113[_0x677e('0x1a')]['where']||null:null,'attributes':_0x4c5113[_0x677e('0x1a')]?_0x4c5113[_0x677e('0x1a')][_0x677e('0x1c')]||null:null,'include':_0x4c5113[_0x677e('0x1a')]?_0x4c5113[_0x677e('0x1a')][_0x677e('0x1e')]?_['map'](_0x4c5113[_0x677e('0x1a')][_0x677e('0x1e')],function(_0x2d0bc0){return{'model':db[_0x2d0bc0['model']],'as':_0x2d0bc0['as'],'attributes':_0x2d0bc0[_0x677e('0x1c')],'include':_0x2d0bc0[_0x677e('0x1e')]?_[_0x677e('0x20')](_0x2d0bc0[_0x677e('0x1e')],function(_0x35c945){return{'model':db[_0x35c945['model']],'as':_0x35c945['as'],'attributes':_0x35c945[_0x677e('0x1c')],'include':_0x35c945[_0x677e('0x1e')]?_[_0x677e('0x20')](_0x35c945[_0x677e('0x1e')],function(_0x548b22){return{'model':db[_0x548b22[_0x677e('0x1f')]],'as':_0x548b22['as'],'attributes':_0x548b22[_0x677e('0x1c')]};}):[]};}):[]};}):[]:[]})[_0x677e('0xc')](function(_0x576443){logger['info'](_0x677e('0x22'),_0x4c5113);logger[_0x677e('0xf')]('ShowFreshsalesAccount',_0x4c5113,JSON[_0x677e('0x11')](_0x576443));_0x3cac19(_0x576443);})[_0x677e('0x17')](function(_0x497dca){logger['error'](_0x677e('0x22'),_0x497dca[_0x677e('0x15')],_0x4c5113);_0x2fb815(_0x22ccfb['error'](0x1f4,_0x497dca['message']));});});};
\ No newline at end of file
+var _0xffd6=['options','raw','limit','include','model','attributes','ShowFreshsalesAccount','FreshsalesAccount','find','where','map','lodash','util','moment','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','client','then','FreshsalesAccount,\x20%s,\x20%s','request\x20sent','debug','FreshsalesAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','catch','GetFreshsalesAccount','findAll'];(function(_0x335a62,_0xfafea4){var _0x249a9a=function(_0xb3a9a5){while(--_0xb3a9a5){_0x335a62['push'](_0x335a62['shift']());}};_0x249a9a(++_0xfafea4);}(_0xffd6,0x97));var _0x6ffd=function(_0xabfec4,_0x35076e){_0xabfec4=_0xabfec4-0x0;var _0x7bafa2=_0xffd6[_0xabfec4];return _0x7bafa2;};'use strict';var _=require(_0x6ffd('0x0'));var util=require(_0x6ffd('0x1'));var moment=require(_0x6ffd('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x6ffd('0x3'));var db=require(_0x6ffd('0x4'))['db'];var utils=require(_0x6ffd('0x5'));var logger=require('../../config/logger')(_0x6ffd('0x6'));var config=require(_0x6ffd('0x7'));var jayson=require(_0x6ffd('0x8'));var client=jayson[_0x6ffd('0x9')]['http']({'port':0x232a});function respondWithRpcPromise(_0x122b71,_0xeefe34,_0x2445a0){return new BPromise(function(_0x1fbbe6,_0x1d8b50){return client['request'](_0x122b71,_0x2445a0)[_0x6ffd('0xa')](function(_0x417f34){logger['info'](_0x6ffd('0xb'),_0xeefe34,_0x6ffd('0xc'));logger[_0x6ffd('0xd')](_0x6ffd('0xe'),_0xeefe34,_0x6ffd('0xc'),JSON[_0x6ffd('0xf')](_0x417f34));if(_0x417f34[_0x6ffd('0x10')]){if(_0x417f34['error'][_0x6ffd('0x11')]===0x1f4){logger[_0x6ffd('0x10')]('FreshsalesAccount,\x20%s,\x20%s',_0xeefe34,_0x417f34[_0x6ffd('0x10')][_0x6ffd('0x12')]);return _0x1d8b50(_0x417f34[_0x6ffd('0x10')][_0x6ffd('0x12')]);}logger['error'](_0x6ffd('0xb'),_0xeefe34,_0x417f34['error'][_0x6ffd('0x12')]);return _0x1fbbe6(_0x417f34['error'][_0x6ffd('0x12')]);}else{logger[_0x6ffd('0x13')](_0x6ffd('0xb'),_0xeefe34,'request\x20sent');_0x1fbbe6(_0x417f34[_0x6ffd('0x14')][_0x6ffd('0x12')]);}})[_0x6ffd('0x15')](function(_0x3394b2){logger[_0x6ffd('0x10')](_0x6ffd('0xb'),_0xeefe34,_0x3394b2);_0x1d8b50(_0x3394b2);});});}exports[_0x6ffd('0x16')]=function(_0x889a4b){var _0x545576=this;return new Promise(function(_0x11a609,_0x56c541){return db['FreshsalesAccount'][_0x6ffd('0x17')]({'raw':_0x889a4b[_0x6ffd('0x18')]?_0x889a4b['options'][_0x6ffd('0x19')]===undefined?!![]:![]:!![],'where':_0x889a4b[_0x6ffd('0x18')]?_0x889a4b['options']['where']||null:null,'attributes':_0x889a4b[_0x6ffd('0x18')]?_0x889a4b[_0x6ffd('0x18')]['attributes']||null:null,'limit':_0x889a4b[_0x6ffd('0x18')]?_0x889a4b[_0x6ffd('0x18')][_0x6ffd('0x1a')]||null:null,'include':_0x889a4b['options']?_0x889a4b[_0x6ffd('0x18')][_0x6ffd('0x1b')]?_['map'](_0x889a4b[_0x6ffd('0x18')][_0x6ffd('0x1b')],function(_0x50c19a){return{'model':db[_0x50c19a[_0x6ffd('0x1c')]],'as':_0x50c19a['as'],'attributes':_0x50c19a[_0x6ffd('0x1d')],'include':_0x50c19a[_0x6ffd('0x1b')]?_['map'](_0x50c19a[_0x6ffd('0x1b')],function(_0x3e5726){return{'model':db[_0x3e5726[_0x6ffd('0x1c')]],'as':_0x3e5726['as'],'attributes':_0x3e5726['attributes'],'include':_0x3e5726[_0x6ffd('0x1b')]?_['map'](_0x3e5726[_0x6ffd('0x1b')],function(_0x43269c){return{'model':db[_0x43269c['model']],'as':_0x43269c['as'],'attributes':_0x43269c['attributes']};}):[]};}):[]};}):[]:[]})[_0x6ffd('0xa')](function(_0x2a0391){logger[_0x6ffd('0x13')]('GetFreshsalesAccount',_0x889a4b);logger['debug'](_0x6ffd('0x16'),_0x889a4b,JSON['stringify'](_0x2a0391));_0x11a609(_0x2a0391);})[_0x6ffd('0x15')](function(_0x20c007){logger['error'](_0x6ffd('0x16'),_0x20c007[_0x6ffd('0x12')],_0x889a4b);_0x56c541(_0x545576[_0x6ffd('0x10')](0x1f4,_0x20c007[_0x6ffd('0x12')]));});});};exports[_0x6ffd('0x1e')]=function(_0x31c609){var _0x225c66=this;return new Promise(function(_0xccb8c,_0x17f627){return db[_0x6ffd('0x1f')][_0x6ffd('0x20')]({'raw':_0x31c609[_0x6ffd('0x18')]?_0x31c609[_0x6ffd('0x18')]['raw']===undefined?!![]:![]:!![],'where':_0x31c609['options']?_0x31c609['options'][_0x6ffd('0x21')]||null:null,'attributes':_0x31c609[_0x6ffd('0x18')]?_0x31c609[_0x6ffd('0x18')][_0x6ffd('0x1d')]||null:null,'include':_0x31c609[_0x6ffd('0x18')]?_0x31c609[_0x6ffd('0x18')][_0x6ffd('0x1b')]?_[_0x6ffd('0x22')](_0x31c609[_0x6ffd('0x18')][_0x6ffd('0x1b')],function(_0x26394c){return{'model':db[_0x26394c[_0x6ffd('0x1c')]],'as':_0x26394c['as'],'attributes':_0x26394c[_0x6ffd('0x1d')],'include':_0x26394c['include']?_[_0x6ffd('0x22')](_0x26394c[_0x6ffd('0x1b')],function(_0x2efc20){return{'model':db[_0x2efc20[_0x6ffd('0x1c')]],'as':_0x2efc20['as'],'attributes':_0x2efc20['attributes'],'include':_0x2efc20[_0x6ffd('0x1b')]?_['map'](_0x2efc20['include'],function(_0x617d52){return{'model':db[_0x617d52[_0x6ffd('0x1c')]],'as':_0x617d52['as'],'attributes':_0x617d52[_0x6ffd('0x1d')]};}):[]};}):[]};}):[]:[]})[_0x6ffd('0xa')](function(_0x55e9b4){logger[_0x6ffd('0x13')]('ShowFreshsalesAccount',_0x31c609);logger[_0x6ffd('0xd')](_0x6ffd('0x1e'),_0x31c609,JSON[_0x6ffd('0xf')](_0x55e9b4));_0xccb8c(_0x55e9b4);})[_0x6ffd('0x15')](function(_0x23fae4){logger['error']('ShowFreshsalesAccount',_0x23fae4[_0x6ffd('0x12')],_0x31c609);_0x17f627(_0x225c66['error'](0x1f4,_0x23fae4[_0x6ffd('0x12')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x132a=['put','delete','destroy','exports','multer','util','path','connect-timeout','express','fs-extra','../../components/interaction/service','./intFreshsalesConfiguration.controller','get','isAuthenticated','index','show','getSubjects','getDescriptions','/:id/fields','getFields','post'];(function(_0x44a3ba,_0x13b2ed){var _0x41d2e9=function(_0x2a5e9f){while(--_0x2a5e9f){_0x44a3ba['push'](_0x44a3ba['shift']());}};_0x41d2e9(++_0x13b2ed);}(_0x132a,0x193));var _0xa132=function(_0xc1a113,_0x18887f){_0xc1a113=_0xc1a113-0x0;var _0x4a6ec5=_0x132a[_0xc1a113];return _0x4a6ec5;};'use strict';var multer=require(_0xa132('0x0'));var util=require(_0xa132('0x1'));var path=require(_0xa132('0x2'));var timeout=require(_0xa132('0x3'));var express=require(_0xa132('0x4'));var router=express['Router']();var fs_extra=require(_0xa132('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0xa132('0x6'));var config=require('../../config/environment');var controller=require(_0xa132('0x7'));router[_0xa132('0x8')]('/',auth[_0xa132('0x9')](),controller[_0xa132('0xa')]);router[_0xa132('0x8')]('/:id',auth[_0xa132('0x9')](),controller[_0xa132('0xb')]);router[_0xa132('0x8')]('/:id/subjects',auth['isAuthenticated'](),controller[_0xa132('0xc')]);router['get']('/:id/descriptions',auth[_0xa132('0x9')](),controller[_0xa132('0xd')]);router[_0xa132('0x8')](_0xa132('0xe'),auth['isAuthenticated'](),controller[_0xa132('0xf')]);router[_0xa132('0x10')]('/',auth[_0xa132('0x9')](),controller['create']);router[_0xa132('0x11')]('/:id',auth[_0xa132('0x9')](),controller['update']);router[_0xa132('0x12')]('/:id',auth[_0xa132('0x9')](),controller[_0xa132('0x13')]);module[_0xa132('0x14')]=router;
\ No newline at end of file
+var _0x984d=['getFields','update','delete','destroy','exports','multer','util','connect-timeout','../../components/auth/service','../../components/interaction/service','../../config/environment','./intFreshsalesConfiguration.controller','get','isAuthenticated','/:id','/:id/subjects','getSubjects','/:id/descriptions','getDescriptions','/:id/fields'];(function(_0x3b76e9,_0x39efb2){var _0x43489c=function(_0x1040a9){while(--_0x1040a9){_0x3b76e9['push'](_0x3b76e9['shift']());}};_0x43489c(++_0x39efb2);}(_0x984d,0x195));var _0xd984=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x984d[_0x3dd15e];return _0x231fd0;};'use strict';var multer=require(_0xd984('0x0'));var util=require(_0xd984('0x1'));var path=require('path');var timeout=require(_0xd984('0x2'));var express=require('express');var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0xd984('0x3'));var interaction=require(_0xd984('0x4'));var config=require(_0xd984('0x5'));var controller=require(_0xd984('0x6'));router[_0xd984('0x7')]('/',auth[_0xd984('0x8')](),controller['index']);router['get'](_0xd984('0x9'),auth[_0xd984('0x8')](),controller['show']);router['get'](_0xd984('0xa'),auth['isAuthenticated'](),controller[_0xd984('0xb')]);router[_0xd984('0x7')](_0xd984('0xc'),auth['isAuthenticated'](),controller[_0xd984('0xd')]);router[_0xd984('0x7')](_0xd984('0xe'),auth['isAuthenticated'](),controller[_0xd984('0xf')]);router['post']('/',auth[_0xd984('0x8')](),controller['create']);router['put'](_0xd984('0x9'),auth[_0xd984('0x8')](),controller[_0xd984('0x10')]);router[_0xd984('0x11')]('/:id',auth[_0xd984('0x8')](),controller[_0xd984('0x12')]);module[_0xd984('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3281=['STRING','exports'];(function(_0x5069f3,_0x4d1764){var _0x531fc9=function(_0x119fb7){while(--_0x119fb7){_0x5069f3['push'](_0x5069f3['shift']());}};_0x531fc9(++_0x4d1764);}(_0x3281,0xb3));var _0x1328=function(_0x5317b5,_0x4dfd6e){_0x5317b5=_0x5317b5-0x0;var _0x3b7ce2=_0x3281[_0x5317b5];return _0x3b7ce2;};'use strict';var Sequelize=require('sequelize');module[_0x1328('0x0')]={'name':{'type':Sequelize[_0x1328('0x1')]},'description':{'type':Sequelize[_0x1328('0x1')]}};
\ No newline at end of file
+var _0xcaf7=['STRING','sequelize','exports'];(function(_0x540fad,_0x5874e5){var _0x8508a2=function(_0x541a07){while(--_0x541a07){_0x540fad['push'](_0x540fad['shift']());}};_0x8508a2(++_0x5874e5);}(_0xcaf7,0x8e));var _0x7caf=function(_0x56482c,_0x16118d){_0x56482c=_0x56482c-0x0;var _0x5aae7a=_0xcaf7[_0x56482c];return _0x5aae7a;};'use strict';var Sequelize=require(_0x7caf('0x0'));module[_0x7caf('0x1')]={'name':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0x7caf('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6f4d=['key','map','query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','filter','where','merge','include','rows','catch','show','includeAll','options','create','update','body','find','params','getSubjects','FreshsalesField','getDescriptions','findOne','getFields','eml-format','zip-dir','request-promise','moment','util','path','to-csv','fs-extra','squel','crypto','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/environment','../../mysqldb','sendStatus','status','end','json','undefined','limit','count','offset','set','Content-Range','apply','reject','save','then','destroy','error','stack','name','send','index','FreshsalesConfiguration','rawAttributes','fieldName','type'];(function(_0x19a9fa,_0x174540){var _0x40a47f=function(_0x340721){while(--_0x340721){_0x19a9fa['push'](_0x19a9fa['shift']());}};_0x40a47f(++_0x174540);}(_0x6f4d,0x6e));var _0xd6f4=function(_0x5bf26a,_0x3b116e){_0x5bf26a=_0x5bf26a-0x0;var _0x2cc372=_0x6f4d[_0x5bf26a];return _0x2cc372;};'use strict';var emlformat=require(_0xd6f4('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xd6f4('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xd6f4('0x2'));var moment=require(_0xd6f4('0x3'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xd6f4('0x4'));var path=require(_0xd6f4('0x5'));var sox=require('sox');var csv=require(_0xd6f4('0x6'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xd6f4('0x7'));var _=require('lodash');var squel=require(_0xd6f4('0x8'));var crypto=require(_0xd6f4('0x9'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xd6f4('0x6'));var querystring=require(_0xd6f4('0xa'));var Papa=require(_0xd6f4('0xb'));var Redis=require(_0xd6f4('0xc'));var authService=require('../../components/auth/service');var qs=require(_0xd6f4('0xd'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0xd6f4('0xe'))(_0xd6f4('0xf'));var utils=require('../../config/utils');var config=require(_0xd6f4('0x10'));var licenseUtil=require('../../config/license/util');var db=require(_0xd6f4('0x11'))['db'];function respondWithStatusCode(_0x5167d5,_0x691eac){_0x691eac=_0x691eac||0xcc;return function(_0x151efe){if(_0x151efe){return _0x5167d5[_0xd6f4('0x12')](_0x691eac);}return _0x5167d5[_0xd6f4('0x13')](_0x691eac)[_0xd6f4('0x14')]();};}function respondWithResult(_0x3b389e,_0x4d632e){_0x4d632e=_0x4d632e||0xc8;return function(_0x354fcc){if(_0x354fcc){return _0x3b389e[_0xd6f4('0x13')](_0x4d632e)[_0xd6f4('0x15')](_0x354fcc);}};}function respondWithFilteredResult(_0x436c71,_0x15ec25){return function(_0x244e41){if(_0x244e41){var _0x2e7bc2=typeof _0x15ec25['offset']===_0xd6f4('0x16')&&typeof _0x15ec25[_0xd6f4('0x17')]==='undefined';var _0x435703=_0x244e41[_0xd6f4('0x18')];var _0x2803f5=_0x2e7bc2?0x0:_0x15ec25[_0xd6f4('0x19')];var _0x514c0b=_0x2e7bc2?_0x244e41[_0xd6f4('0x18')]:_0x15ec25[_0xd6f4('0x19')]+_0x15ec25[_0xd6f4('0x17')];var _0x466c50;if(_0x514c0b>=_0x435703){_0x514c0b=_0x435703;_0x466c50=0xc8;}else{_0x466c50=0xce;}_0x436c71[_0xd6f4('0x13')](_0x466c50);return _0x436c71[_0xd6f4('0x1a')](_0xd6f4('0x1b'),_0x2803f5+'-'+_0x514c0b+'/'+_0x435703)[_0xd6f4('0x15')](_0x244e41);}return null;};}function patchUpdates(_0x1b876d){return function(_0x137477){try{jsonpatch[_0xd6f4('0x1c')](_0x137477,_0x1b876d,!![]);}catch(_0x533d37){return BPromise[_0xd6f4('0x1d')](_0x533d37);}return _0x137477[_0xd6f4('0x1e')]();};}function saveUpdates(_0x4643ea,_0x57dabf){return function(_0x1c5e91){if(_0x1c5e91){return _0x1c5e91['update'](_0x4643ea)[_0xd6f4('0x1f')](function(_0x692a6a){return _0x692a6a;});}return null;};}function removeEntity(_0x1aa58a,_0x38bbee){return function(_0x5e13eb){if(_0x5e13eb){return _0x5e13eb[_0xd6f4('0x20')]()[_0xd6f4('0x1f')](function(){_0x1aa58a[_0xd6f4('0x13')](0xcc)[_0xd6f4('0x14')]();});}};}function handleEntityNotFound(_0xbb257f,_0x3d0fdd){return function(_0x5ceeec){if(!_0x5ceeec){_0xbb257f[_0xd6f4('0x12')](0x194);}return _0x5ceeec;};}function handleError(_0x5b08bd,_0x1c42de){_0x1c42de=_0x1c42de||0x1f4;return function(_0x19cca3){logger[_0xd6f4('0x21')](_0x19cca3[_0xd6f4('0x22')]);if(_0x19cca3[_0xd6f4('0x23')]){delete _0x19cca3['name'];}_0x5b08bd[_0xd6f4('0x13')](_0x1c42de)[_0xd6f4('0x24')](_0x19cca3);};}exports[_0xd6f4('0x25')]=function(_0x23a48c,_0x308112){var _0x851cfb={},_0x21b0f3={},_0x148439={'count':0x0,'rows':[]};var _0x50fec9=_['map'](db[_0xd6f4('0x26')][_0xd6f4('0x27')],function(_0x4e6f0d){return{'name':_0x4e6f0d[_0xd6f4('0x28')],'type':_0x4e6f0d[_0xd6f4('0x29')][_0xd6f4('0x2a')]};});_0x21b0f3['model']=_[_0xd6f4('0x2b')](_0x50fec9,_0xd6f4('0x23'));_0x21b0f3[_0xd6f4('0x2c')]=_[_0xd6f4('0x2d')](_0x23a48c['query']);_0x21b0f3[_0xd6f4('0x2e')]=_[_0xd6f4('0x2f')](_0x21b0f3[_0xd6f4('0x30')],_0x21b0f3[_0xd6f4('0x2c')]);_0x851cfb[_0xd6f4('0x31')]=_[_0xd6f4('0x2f')](_0x21b0f3[_0xd6f4('0x30')],qs[_0xd6f4('0x32')](_0x23a48c[_0xd6f4('0x2c')][_0xd6f4('0x32')]));_0x851cfb[_0xd6f4('0x31')]=_0x851cfb[_0xd6f4('0x31')][_0xd6f4('0x33')]?_0x851cfb['attributes']:_0x21b0f3['model'];if(!_0x23a48c[_0xd6f4('0x2c')][_0xd6f4('0x34')](_0xd6f4('0x35'))){_0x851cfb[_0xd6f4('0x17')]=qs[_0xd6f4('0x17')](_0x23a48c['query'][_0xd6f4('0x17')]);_0x851cfb[_0xd6f4('0x19')]=qs[_0xd6f4('0x19')](_0x23a48c['query'][_0xd6f4('0x19')]);}_0x851cfb[_0xd6f4('0x36')]=qs['sort'](_0x23a48c['query'][_0xd6f4('0x37')]);_0x851cfb['where']=qs[_0xd6f4('0x2e')](_[_0xd6f4('0x38')](_0x23a48c[_0xd6f4('0x2c')],_0x21b0f3[_0xd6f4('0x2e')]),_0x50fec9);if(_0x23a48c[_0xd6f4('0x2c')][_0xd6f4('0x39')]){_0x851cfb[_0xd6f4('0x3a')]=_[_0xd6f4('0x3b')](_0x851cfb['where'],{'$or':_[_0xd6f4('0x2b')](_0x50fec9,function(_0x38c26d){if(_0x38c26d[_0xd6f4('0x29')]!=='VIRTUAL'){var _0x331cdb={};_0x331cdb[_0x38c26d['name']]={'$like':'%'+_0x23a48c[_0xd6f4('0x2c')][_0xd6f4('0x39')]+'%'};return _0x331cdb;}})});}_0x851cfb=_[_0xd6f4('0x3b')]({},_0x851cfb,_0x23a48c['options']);var _0x1ea49f={'where':_0x851cfb['where']};return db[_0xd6f4('0x26')][_0xd6f4('0x18')](_0x1ea49f)[_0xd6f4('0x1f')](function(_0x3b262e){_0x148439[_0xd6f4('0x18')]=_0x3b262e;if(_0x23a48c['query']['includeAll']){_0x851cfb[_0xd6f4('0x3c')]=[{'all':!![]}];}return db['FreshsalesConfiguration']['findAll'](_0x851cfb);})[_0xd6f4('0x1f')](function(_0x41fb57){_0x148439[_0xd6f4('0x3d')]=_0x41fb57;return _0x148439;})[_0xd6f4('0x1f')](respondWithFilteredResult(_0x308112,_0x851cfb))[_0xd6f4('0x3e')](handleError(_0x308112,null));};exports[_0xd6f4('0x3f')]=function(_0xb3941b,_0x33a08e){var _0x5b30ef={'raw':![],'where':{'id':_0xb3941b['params']['id']}},_0x5c227d={};_0x5c227d[_0xd6f4('0x30')]=_['keys'](db['FreshsalesConfiguration'][_0xd6f4('0x27')]);_0x5c227d[_0xd6f4('0x2c')]=_[_0xd6f4('0x2d')](_0xb3941b['query']);_0x5c227d[_0xd6f4('0x2e')]=_[_0xd6f4('0x2f')](_0x5c227d[_0xd6f4('0x30')],_0x5c227d[_0xd6f4('0x2c')]);_0x5b30ef['attributes']=_['intersection'](_0x5c227d[_0xd6f4('0x30')],qs[_0xd6f4('0x32')](_0xb3941b['query'][_0xd6f4('0x32')]));_0x5b30ef[_0xd6f4('0x31')]=_0x5b30ef[_0xd6f4('0x31')][_0xd6f4('0x33')]?_0x5b30ef[_0xd6f4('0x31')]:_0x5c227d[_0xd6f4('0x30')];if(_0xb3941b['query'][_0xd6f4('0x40')]){_0x5b30ef[_0xd6f4('0x3c')]=[{'all':!![]}];}_0x5b30ef=_[_0xd6f4('0x3b')]({},_0x5b30ef,_0xb3941b[_0xd6f4('0x41')]);return db[_0xd6f4('0x26')]['find'](_0x5b30ef)['then'](handleEntityNotFound(_0x33a08e,null))['then'](respondWithResult(_0x33a08e,null))[_0xd6f4('0x3e')](handleError(_0x33a08e,null));};exports[_0xd6f4('0x42')]=function(_0x4e71f3,_0x1cdfd0){return db[_0xd6f4('0x26')][_0xd6f4('0x42')](_0x4e71f3['body'],{})[_0xd6f4('0x1f')](respondWithResult(_0x1cdfd0,0xc9))[_0xd6f4('0x3e')](handleError(_0x1cdfd0,null));};exports[_0xd6f4('0x43')]=function(_0x3a49eb,_0x225b09){if(_0x3a49eb[_0xd6f4('0x44')]['id']){delete _0x3a49eb[_0xd6f4('0x44')]['id'];}return db[_0xd6f4('0x26')][_0xd6f4('0x45')]({'where':{'id':_0x3a49eb[_0xd6f4('0x46')]['id']}})[_0xd6f4('0x1f')](handleEntityNotFound(_0x225b09,null))[_0xd6f4('0x1f')](saveUpdates(_0x3a49eb[_0xd6f4('0x44')],null))['then'](respondWithResult(_0x225b09,null))[_0xd6f4('0x3e')](handleError(_0x225b09,null));};exports[_0xd6f4('0x20')]=function(_0x4ae3c3,_0x213ba5){return db[_0xd6f4('0x26')][_0xd6f4('0x45')]({'where':{'id':_0x4ae3c3['params']['id']}})[_0xd6f4('0x1f')](handleEntityNotFound(_0x213ba5,null))[_0xd6f4('0x1f')](removeEntity(_0x213ba5,null))['catch'](handleError(_0x213ba5,null));};exports[_0xd6f4('0x47')]=function(_0x2b2227,_0x2125c8,_0xd3f220){var _0x4212e9={};var _0x1b575f={};var _0x169311;var _0x50c45c;return db['FreshsalesConfiguration']['findOne']({'where':{'id':_0x2b2227[_0xd6f4('0x46')]['id']}})[_0xd6f4('0x1f')](handleEntityNotFound(_0x2125c8,null))[_0xd6f4('0x1f')](function(_0x3daa2c){if(_0x3daa2c){_0x169311=_0x3daa2c;_0x1b575f[_0xd6f4('0x30')]=_['keys'](db[_0xd6f4('0x48')][_0xd6f4('0x27')]);_0x1b575f['query']=_['keys'](_0x2b2227[_0xd6f4('0x2c')]);_0x1b575f[_0xd6f4('0x2e')]=_[_0xd6f4('0x2f')](_0x1b575f['model'],_0x1b575f['query']);_0x4212e9[_0xd6f4('0x31')]=_[_0xd6f4('0x2f')](_0x1b575f[_0xd6f4('0x30')],qs[_0xd6f4('0x32')](_0x2b2227[_0xd6f4('0x2c')][_0xd6f4('0x32')]));_0x4212e9[_0xd6f4('0x31')]=_0x4212e9[_0xd6f4('0x31')]['length']?_0x4212e9['attributes']:_0x1b575f[_0xd6f4('0x30')];_0x4212e9[_0xd6f4('0x36')]=qs['sort'](_0x2b2227[_0xd6f4('0x2c')][_0xd6f4('0x37')]);_0x4212e9[_0xd6f4('0x3a')]=qs[_0xd6f4('0x2e')](_[_0xd6f4('0x38')](_0x2b2227[_0xd6f4('0x2c')],_0x1b575f[_0xd6f4('0x2e')]));if(_0x2b2227[_0xd6f4('0x2c')][_0xd6f4('0x39')]){_0x4212e9[_0xd6f4('0x3a')]=_[_0xd6f4('0x3b')](_0x4212e9[_0xd6f4('0x3a')],{'$or':_[_0xd6f4('0x2b')](_0x4212e9[_0xd6f4('0x31')],function(_0xfeb5ec){var _0x48f227={};_0x48f227[_0xfeb5ec]={'$like':'%'+_0x2b2227[_0xd6f4('0x2c')][_0xd6f4('0x39')]+'%'};return _0x48f227;})});}_0x4212e9=_[_0xd6f4('0x3b')]({},_0x4212e9,_0x2b2227[_0xd6f4('0x41')]);return _0x169311[_0xd6f4('0x47')](_0x4212e9);}})['then'](function(_0x3144e7){if(_0x3144e7){_0x50c45c=_0x3144e7[_0xd6f4('0x33')];if(!_0x2b2227[_0xd6f4('0x2c')][_0xd6f4('0x34')](_0xd6f4('0x35'))){_0x4212e9[_0xd6f4('0x17')]=qs['limit'](_0x2b2227[_0xd6f4('0x2c')][_0xd6f4('0x17')]);_0x4212e9[_0xd6f4('0x19')]=qs[_0xd6f4('0x19')](_0x2b2227[_0xd6f4('0x2c')][_0xd6f4('0x19')]);}return _0x169311[_0xd6f4('0x47')](_0x4212e9);}})['then'](function(_0x7af64){if(_0x7af64){return _0x7af64?{'count':_0x50c45c,'rows':_0x7af64}:null;}})[_0xd6f4('0x1f')](respondWithResult(_0x2125c8,null))['catch'](handleError(_0x2125c8,null));};exports[_0xd6f4('0x49')]=function(_0xf1ed,_0x45a49b,_0x581bcd){var _0x131be2={};var _0xd52645={};var _0x2c1511;var _0x32e1ea;return db[_0xd6f4('0x26')][_0xd6f4('0x4a')]({'where':{'id':_0xf1ed[_0xd6f4('0x46')]['id']}})[_0xd6f4('0x1f')](handleEntityNotFound(_0x45a49b,null))[_0xd6f4('0x1f')](function(_0x230cec){if(_0x230cec){_0x2c1511=_0x230cec;_0xd52645[_0xd6f4('0x30')]=_[_0xd6f4('0x2d')](db[_0xd6f4('0x48')][_0xd6f4('0x27')]);_0xd52645[_0xd6f4('0x2c')]=_[_0xd6f4('0x2d')](_0xf1ed[_0xd6f4('0x2c')]);_0xd52645[_0xd6f4('0x2e')]=_[_0xd6f4('0x2f')](_0xd52645['model'],_0xd52645[_0xd6f4('0x2c')]);_0x131be2[_0xd6f4('0x31')]=_['intersection'](_0xd52645[_0xd6f4('0x30')],qs[_0xd6f4('0x32')](_0xf1ed[_0xd6f4('0x2c')]['fields']));_0x131be2[_0xd6f4('0x31')]=_0x131be2['attributes'][_0xd6f4('0x33')]?_0x131be2['attributes']:_0xd52645[_0xd6f4('0x30')];_0x131be2['order']=qs[_0xd6f4('0x37')](_0xf1ed[_0xd6f4('0x2c')][_0xd6f4('0x37')]);_0x131be2[_0xd6f4('0x3a')]=qs[_0xd6f4('0x2e')](_['pick'](_0xf1ed[_0xd6f4('0x2c')],_0xd52645[_0xd6f4('0x2e')]));if(_0xf1ed[_0xd6f4('0x2c')]['filter']){_0x131be2['where']=_['merge'](_0x131be2[_0xd6f4('0x3a')],{'$or':_['map'](_0x131be2[_0xd6f4('0x31')],function(_0x19a98e){var _0xe4a3c3={};_0xe4a3c3[_0x19a98e]={'$like':'%'+_0xf1ed['query']['filter']+'%'};return _0xe4a3c3;})});}_0x131be2=_['merge']({},_0x131be2,_0xf1ed[_0xd6f4('0x41')]);return _0x2c1511['getDescriptions'](_0x131be2);}})[_0xd6f4('0x1f')](function(_0xd6f459){if(_0xd6f459){_0x32e1ea=_0xd6f459['length'];if(!_0xf1ed[_0xd6f4('0x2c')][_0xd6f4('0x34')](_0xd6f4('0x35'))){_0x131be2[_0xd6f4('0x17')]=qs[_0xd6f4('0x17')](_0xf1ed[_0xd6f4('0x2c')]['limit']);_0x131be2['offset']=qs[_0xd6f4('0x19')](_0xf1ed[_0xd6f4('0x2c')][_0xd6f4('0x19')]);}return _0x2c1511[_0xd6f4('0x49')](_0x131be2);}})[_0xd6f4('0x1f')](function(_0x4a1b70){if(_0x4a1b70){return _0x4a1b70?{'count':_0x32e1ea,'rows':_0x4a1b70}:null;}})[_0xd6f4('0x1f')](respondWithResult(_0x45a49b,null))[_0xd6f4('0x3e')](handleError(_0x45a49b,null));};exports[_0xd6f4('0x4b')]=function(_0x3f8ce0,_0x368f6b,_0x3fb230){var _0x4ff510={};var _0x599be1={};var _0x220d4d;var _0x3dbd36;return db[_0xd6f4('0x26')][_0xd6f4('0x4a')]({'where':{'id':_0x3f8ce0['params']['id']}})[_0xd6f4('0x1f')](handleEntityNotFound(_0x368f6b,null))[_0xd6f4('0x1f')](function(_0x69f8d7){if(_0x69f8d7){_0x220d4d=_0x69f8d7;_0x599be1['model']=_['keys'](db[_0xd6f4('0x48')][_0xd6f4('0x27')]);_0x599be1[_0xd6f4('0x2c')]=_[_0xd6f4('0x2d')](_0x3f8ce0['query']);_0x599be1['filters']=_['intersection'](_0x599be1['model'],_0x599be1[_0xd6f4('0x2c')]);_0x4ff510[_0xd6f4('0x31')]=_[_0xd6f4('0x2f')](_0x599be1[_0xd6f4('0x30')],qs[_0xd6f4('0x32')](_0x3f8ce0['query'][_0xd6f4('0x32')]));_0x4ff510[_0xd6f4('0x31')]=_0x4ff510['attributes'][_0xd6f4('0x33')]?_0x4ff510[_0xd6f4('0x31')]:_0x599be1['model'];_0x4ff510[_0xd6f4('0x36')]=qs['sort'](_0x3f8ce0['query'][_0xd6f4('0x37')]);_0x4ff510[_0xd6f4('0x3a')]=qs[_0xd6f4('0x2e')](_[_0xd6f4('0x38')](_0x3f8ce0[_0xd6f4('0x2c')],_0x599be1['filters']));if(_0x3f8ce0['query'][_0xd6f4('0x39')]){_0x4ff510[_0xd6f4('0x3a')]=_['merge'](_0x4ff510[_0xd6f4('0x3a')],{'$or':_[_0xd6f4('0x2b')](_0x4ff510['attributes'],function(_0x90ac6f){var _0x3e1c65={};_0x3e1c65[_0x90ac6f]={'$like':'%'+_0x3f8ce0[_0xd6f4('0x2c')][_0xd6f4('0x39')]+'%'};return _0x3e1c65;})});}_0x4ff510=_[_0xd6f4('0x3b')]({},_0x4ff510,_0x3f8ce0[_0xd6f4('0x41')]);return _0x220d4d['getFields'](_0x4ff510);}})['then'](function(_0x3dc63b){if(_0x3dc63b){_0x3dbd36=_0x3dc63b[_0xd6f4('0x33')];if(!_0x3f8ce0['query'][_0xd6f4('0x34')]('nolimit')){_0x4ff510[_0xd6f4('0x17')]=qs['limit'](_0x3f8ce0[_0xd6f4('0x2c')][_0xd6f4('0x17')]);_0x4ff510[_0xd6f4('0x19')]=qs[_0xd6f4('0x19')](_0x3f8ce0['query'][_0xd6f4('0x19')]);}return _0x220d4d[_0xd6f4('0x4b')](_0x4ff510);}})[_0xd6f4('0x1f')](function(_0x303990){if(_0x303990){return _0x303990?{'count':_0x3dbd36,'rows':_0x303990}:null;}})[_0xd6f4('0x1f')](respondWithResult(_0x368f6b,null))[_0xd6f4('0x3e')](handleError(_0x368f6b,null));};
\ No newline at end of file
+var _0x61d2=['params','find','create','update','body','findOne','FreshsalesField','getSubjects','nolimit','getDescriptions','getFields','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','set','Content-Range','apply','reject','then','destroy','error','name','send','index','map','FreshsalesConfiguration','rawAttributes','type','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','limit','order','sort','filters','pick','where','merge','VIRTUAL','filter','options','includeAll','include','catch','show'];(function(_0x4455bc,_0x25c254){var _0x721c22=function(_0x29e62e){while(--_0x29e62e){_0x4455bc['push'](_0x4455bc['shift']());}};_0x721c22(++_0x25c254);}(_0x61d2,0xa7));var _0x261d=function(_0x25e3b8,_0x59bdea){_0x25e3b8=_0x25e3b8-0x0;var _0x432c65=_0x61d2[_0x25e3b8];return _0x432c65;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x261d('0x0'));var zipdir=require(_0x261d('0x1'));var jsonpatch=require(_0x261d('0x2'));var rp=require(_0x261d('0x3'));var moment=require(_0x261d('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x261d('0x5'));var util=require(_0x261d('0x6'));var path=require(_0x261d('0x7'));var sox=require(_0x261d('0x8'));var csv=require(_0x261d('0x9'));var ejs=require(_0x261d('0xa'));var fs=require('fs');var fs_extra=require(_0x261d('0xb'));var _=require(_0x261d('0xc'));var squel=require('squel');var crypto=require(_0x261d('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x261d('0xe'));var toCsv=require(_0x261d('0x9'));var querystring=require(_0x261d('0xf'));var Papa=require(_0x261d('0x10'));var Redis=require(_0x261d('0x11'));var authService=require(_0x261d('0x12'));var qs=require(_0x261d('0x13'));var as=require(_0x261d('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x261d('0x15'))('api');var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x261d('0x16'));var db=require(_0x261d('0x17'))['db'];function respondWithStatusCode(_0x261875,_0x36f161){_0x36f161=_0x36f161||0xcc;return function(_0x18201b){if(_0x18201b){return _0x261875[_0x261d('0x18')](_0x36f161);}return _0x261875[_0x261d('0x19')](_0x36f161)[_0x261d('0x1a')]();};}function respondWithResult(_0x99166a,_0x2a8df6){_0x2a8df6=_0x2a8df6||0xc8;return function(_0x573a30){if(_0x573a30){return _0x99166a['status'](_0x2a8df6)[_0x261d('0x1b')](_0x573a30);}};}function respondWithFilteredResult(_0x2a9b77,_0x1f90a8){return function(_0x29b3e0){if(_0x29b3e0){var _0x2872ac=typeof _0x1f90a8[_0x261d('0x1c')]===_0x261d('0x1d')&&typeof _0x1f90a8['limit']===_0x261d('0x1d');var _0x21b852=_0x29b3e0[_0x261d('0x1e')];var _0x2ddb8e=_0x2872ac?0x0:_0x1f90a8[_0x261d('0x1c')];var _0x57f81c=_0x2872ac?_0x29b3e0[_0x261d('0x1e')]:_0x1f90a8['offset']+_0x1f90a8['limit'];var _0x3a1f36;if(_0x57f81c>=_0x21b852){_0x57f81c=_0x21b852;_0x3a1f36=0xc8;}else{_0x3a1f36=0xce;}_0x2a9b77[_0x261d('0x19')](_0x3a1f36);return _0x2a9b77[_0x261d('0x1f')](_0x261d('0x20'),_0x2ddb8e+'-'+_0x57f81c+'/'+_0x21b852)[_0x261d('0x1b')](_0x29b3e0);}return null;};}function patchUpdates(_0x43384e){return function(_0x9eb36f){try{jsonpatch[_0x261d('0x21')](_0x9eb36f,_0x43384e,!![]);}catch(_0x342797){return BPromise[_0x261d('0x22')](_0x342797);}return _0x9eb36f['save']();};}function saveUpdates(_0x2651cb,_0x20b2a4){return function(_0x28fa4d){if(_0x28fa4d){return _0x28fa4d['update'](_0x2651cb)[_0x261d('0x23')](function(_0x5e2efd){return _0x5e2efd;});}return null;};}function removeEntity(_0x2c8e80,_0x533524){return function(_0x36cb9a){if(_0x36cb9a){return _0x36cb9a[_0x261d('0x24')]()['then'](function(){_0x2c8e80['status'](0xcc)[_0x261d('0x1a')]();});}};}function handleEntityNotFound(_0x546632,_0x49705b){return function(_0x4a7823){if(!_0x4a7823){_0x546632[_0x261d('0x18')](0x194);}return _0x4a7823;};}function handleError(_0x3b6934,_0x308d7a){_0x308d7a=_0x308d7a||0x1f4;return function(_0x2280e6){logger[_0x261d('0x25')](_0x2280e6['stack']);if(_0x2280e6[_0x261d('0x26')]){delete _0x2280e6[_0x261d('0x26')];}_0x3b6934[_0x261d('0x19')](_0x308d7a)[_0x261d('0x27')](_0x2280e6);};}exports[_0x261d('0x28')]=function(_0x13bb4e,_0x2d108c){var _0xa57598={},_0x335e45={},_0x1a3036={'count':0x0,'rows':[]};var _0x424175=_[_0x261d('0x29')](db[_0x261d('0x2a')][_0x261d('0x2b')],function(_0x2e1077){return{'name':_0x2e1077['fieldName'],'type':_0x2e1077[_0x261d('0x2c')]['key']};});_0x335e45[_0x261d('0x2d')]=_[_0x261d('0x29')](_0x424175,_0x261d('0x26'));_0x335e45[_0x261d('0x2e')]=_[_0x261d('0x2f')](_0x13bb4e[_0x261d('0x2e')]);_0x335e45['filters']=_[_0x261d('0x30')](_0x335e45[_0x261d('0x2d')],_0x335e45['query']);_0xa57598[_0x261d('0x31')]=_['intersection'](_0x335e45[_0x261d('0x2d')],qs['fields'](_0x13bb4e[_0x261d('0x2e')][_0x261d('0x32')]));_0xa57598[_0x261d('0x31')]=_0xa57598[_0x261d('0x31')][_0x261d('0x33')]?_0xa57598[_0x261d('0x31')]:_0x335e45['model'];if(!_0x13bb4e[_0x261d('0x2e')][_0x261d('0x34')]('nolimit')){_0xa57598[_0x261d('0x35')]=qs[_0x261d('0x35')](_0x13bb4e[_0x261d('0x2e')][_0x261d('0x35')]);_0xa57598['offset']=qs['offset'](_0x13bb4e[_0x261d('0x2e')][_0x261d('0x1c')]);}_0xa57598[_0x261d('0x36')]=qs[_0x261d('0x37')](_0x13bb4e[_0x261d('0x2e')][_0x261d('0x37')]);_0xa57598['where']=qs[_0x261d('0x38')](_[_0x261d('0x39')](_0x13bb4e[_0x261d('0x2e')],_0x335e45[_0x261d('0x38')]),_0x424175);if(_0x13bb4e[_0x261d('0x2e')]['filter']){_0xa57598[_0x261d('0x3a')]=_[_0x261d('0x3b')](_0xa57598[_0x261d('0x3a')],{'$or':_[_0x261d('0x29')](_0x424175,function(_0x328c17){if(_0x328c17['type']!==_0x261d('0x3c')){var _0x95a048={};_0x95a048[_0x328c17[_0x261d('0x26')]]={'$like':'%'+_0x13bb4e[_0x261d('0x2e')][_0x261d('0x3d')]+'%'};return _0x95a048;}})});}_0xa57598=_[_0x261d('0x3b')]({},_0xa57598,_0x13bb4e[_0x261d('0x3e')]);var _0x12877e={'where':_0xa57598[_0x261d('0x3a')]};return db[_0x261d('0x2a')][_0x261d('0x1e')](_0x12877e)[_0x261d('0x23')](function(_0xecaedf){_0x1a3036[_0x261d('0x1e')]=_0xecaedf;if(_0x13bb4e[_0x261d('0x2e')][_0x261d('0x3f')]){_0xa57598[_0x261d('0x40')]=[{'all':!![]}];}return db['FreshsalesConfiguration']['findAll'](_0xa57598);})[_0x261d('0x23')](function(_0x41e31f){_0x1a3036['rows']=_0x41e31f;return _0x1a3036;})[_0x261d('0x23')](respondWithFilteredResult(_0x2d108c,_0xa57598))[_0x261d('0x41')](handleError(_0x2d108c,null));};exports[_0x261d('0x42')]=function(_0x3176f,_0x516eed){var _0x4422dd={'raw':![],'where':{'id':_0x3176f[_0x261d('0x43')]['id']}},_0x23915f={};_0x23915f[_0x261d('0x2d')]=_['keys'](db[_0x261d('0x2a')][_0x261d('0x2b')]);_0x23915f[_0x261d('0x2e')]=_['keys'](_0x3176f[_0x261d('0x2e')]);_0x23915f[_0x261d('0x38')]=_[_0x261d('0x30')](_0x23915f[_0x261d('0x2d')],_0x23915f[_0x261d('0x2e')]);_0x4422dd[_0x261d('0x31')]=_['intersection'](_0x23915f['model'],qs['fields'](_0x3176f['query']['fields']));_0x4422dd['attributes']=_0x4422dd[_0x261d('0x31')][_0x261d('0x33')]?_0x4422dd['attributes']:_0x23915f[_0x261d('0x2d')];if(_0x3176f['query'][_0x261d('0x3f')]){_0x4422dd[_0x261d('0x40')]=[{'all':!![]}];}_0x4422dd=_['merge']({},_0x4422dd,_0x3176f[_0x261d('0x3e')]);return db[_0x261d('0x2a')][_0x261d('0x44')](_0x4422dd)[_0x261d('0x23')](handleEntityNotFound(_0x516eed,null))[_0x261d('0x23')](respondWithResult(_0x516eed,null))[_0x261d('0x41')](handleError(_0x516eed,null));};exports[_0x261d('0x45')]=function(_0x51bcd7,_0x3d9782){return db[_0x261d('0x2a')]['create'](_0x51bcd7['body'],{})[_0x261d('0x23')](respondWithResult(_0x3d9782,0xc9))[_0x261d('0x41')](handleError(_0x3d9782,null));};exports[_0x261d('0x46')]=function(_0x13a9dc,_0x3c4674){if(_0x13a9dc[_0x261d('0x47')]['id']){delete _0x13a9dc['body']['id'];}return db[_0x261d('0x2a')]['find']({'where':{'id':_0x13a9dc[_0x261d('0x43')]['id']}})['then'](handleEntityNotFound(_0x3c4674,null))[_0x261d('0x23')](saveUpdates(_0x13a9dc[_0x261d('0x47')],null))[_0x261d('0x23')](respondWithResult(_0x3c4674,null))[_0x261d('0x41')](handleError(_0x3c4674,null));};exports['destroy']=function(_0x450b5f,_0x1aae71){return db[_0x261d('0x2a')]['find']({'where':{'id':_0x450b5f[_0x261d('0x43')]['id']}})[_0x261d('0x23')](handleEntityNotFound(_0x1aae71,null))['then'](removeEntity(_0x1aae71,null))[_0x261d('0x41')](handleError(_0x1aae71,null));};exports['getSubjects']=function(_0x5cfe5f,_0x13e2b6,_0xf9df89){var _0x173ce9={};var _0x4c5859={};var _0x3c5af2;var _0x502308;return db[_0x261d('0x2a')][_0x261d('0x48')]({'where':{'id':_0x5cfe5f[_0x261d('0x43')]['id']}})[_0x261d('0x23')](handleEntityNotFound(_0x13e2b6,null))[_0x261d('0x23')](function(_0x55f851){if(_0x55f851){_0x3c5af2=_0x55f851;_0x4c5859[_0x261d('0x2d')]=_[_0x261d('0x2f')](db[_0x261d('0x49')][_0x261d('0x2b')]);_0x4c5859[_0x261d('0x2e')]=_[_0x261d('0x2f')](_0x5cfe5f['query']);_0x4c5859[_0x261d('0x38')]=_[_0x261d('0x30')](_0x4c5859['model'],_0x4c5859[_0x261d('0x2e')]);_0x173ce9['attributes']=_['intersection'](_0x4c5859['model'],qs[_0x261d('0x32')](_0x5cfe5f['query']['fields']));_0x173ce9[_0x261d('0x31')]=_0x173ce9[_0x261d('0x31')][_0x261d('0x33')]?_0x173ce9[_0x261d('0x31')]:_0x4c5859[_0x261d('0x2d')];_0x173ce9[_0x261d('0x36')]=qs[_0x261d('0x37')](_0x5cfe5f['query'][_0x261d('0x37')]);_0x173ce9[_0x261d('0x3a')]=qs[_0x261d('0x38')](_[_0x261d('0x39')](_0x5cfe5f[_0x261d('0x2e')],_0x4c5859[_0x261d('0x38')]));if(_0x5cfe5f[_0x261d('0x2e')][_0x261d('0x3d')]){_0x173ce9[_0x261d('0x3a')]=_[_0x261d('0x3b')](_0x173ce9[_0x261d('0x3a')],{'$or':_[_0x261d('0x29')](_0x173ce9['attributes'],function(_0x56f83c){var _0x394c2f={};_0x394c2f[_0x56f83c]={'$like':'%'+_0x5cfe5f[_0x261d('0x2e')][_0x261d('0x3d')]+'%'};return _0x394c2f;})});}_0x173ce9=_[_0x261d('0x3b')]({},_0x173ce9,_0x5cfe5f[_0x261d('0x3e')]);return _0x3c5af2[_0x261d('0x4a')](_0x173ce9);}})['then'](function(_0x41e29b){if(_0x41e29b){_0x502308=_0x41e29b[_0x261d('0x33')];if(!_0x5cfe5f[_0x261d('0x2e')][_0x261d('0x34')](_0x261d('0x4b'))){_0x173ce9[_0x261d('0x35')]=qs[_0x261d('0x35')](_0x5cfe5f['query'][_0x261d('0x35')]);_0x173ce9[_0x261d('0x1c')]=qs['offset'](_0x5cfe5f[_0x261d('0x2e')][_0x261d('0x1c')]);}return _0x3c5af2[_0x261d('0x4a')](_0x173ce9);}})[_0x261d('0x23')](function(_0x31ad79){if(_0x31ad79){return _0x31ad79?{'count':_0x502308,'rows':_0x31ad79}:null;}})[_0x261d('0x23')](respondWithResult(_0x13e2b6,null))[_0x261d('0x41')](handleError(_0x13e2b6,null));};exports['getDescriptions']=function(_0x50fb15,_0x326e30,_0x3d2e35){var _0x4c8b49={};var _0x43ae53={};var _0x1c036a;var _0x3e38ec;return db['FreshsalesConfiguration'][_0x261d('0x48')]({'where':{'id':_0x50fb15['params']['id']}})['then'](handleEntityNotFound(_0x326e30,null))[_0x261d('0x23')](function(_0x10b9d8){if(_0x10b9d8){_0x1c036a=_0x10b9d8;_0x43ae53[_0x261d('0x2d')]=_[_0x261d('0x2f')](db['FreshsalesField'][_0x261d('0x2b')]);_0x43ae53[_0x261d('0x2e')]=_[_0x261d('0x2f')](_0x50fb15['query']);_0x43ae53[_0x261d('0x38')]=_[_0x261d('0x30')](_0x43ae53[_0x261d('0x2d')],_0x43ae53[_0x261d('0x2e')]);_0x4c8b49[_0x261d('0x31')]=_[_0x261d('0x30')](_0x43ae53[_0x261d('0x2d')],qs[_0x261d('0x32')](_0x50fb15[_0x261d('0x2e')][_0x261d('0x32')]));_0x4c8b49[_0x261d('0x31')]=_0x4c8b49[_0x261d('0x31')]['length']?_0x4c8b49['attributes']:_0x43ae53[_0x261d('0x2d')];_0x4c8b49[_0x261d('0x36')]=qs[_0x261d('0x37')](_0x50fb15[_0x261d('0x2e')]['sort']);_0x4c8b49[_0x261d('0x3a')]=qs[_0x261d('0x38')](_[_0x261d('0x39')](_0x50fb15[_0x261d('0x2e')],_0x43ae53[_0x261d('0x38')]));if(_0x50fb15[_0x261d('0x2e')][_0x261d('0x3d')]){_0x4c8b49[_0x261d('0x3a')]=_[_0x261d('0x3b')](_0x4c8b49[_0x261d('0x3a')],{'$or':_[_0x261d('0x29')](_0x4c8b49['attributes'],function(_0x523fc6){var _0xa95a08={};_0xa95a08[_0x523fc6]={'$like':'%'+_0x50fb15[_0x261d('0x2e')][_0x261d('0x3d')]+'%'};return _0xa95a08;})});}_0x4c8b49=_[_0x261d('0x3b')]({},_0x4c8b49,_0x50fb15[_0x261d('0x3e')]);return _0x1c036a['getDescriptions'](_0x4c8b49);}})[_0x261d('0x23')](function(_0x23a400){if(_0x23a400){_0x3e38ec=_0x23a400[_0x261d('0x33')];if(!_0x50fb15[_0x261d('0x2e')]['hasOwnProperty'](_0x261d('0x4b'))){_0x4c8b49[_0x261d('0x35')]=qs['limit'](_0x50fb15[_0x261d('0x2e')][_0x261d('0x35')]);_0x4c8b49[_0x261d('0x1c')]=qs[_0x261d('0x1c')](_0x50fb15[_0x261d('0x2e')][_0x261d('0x1c')]);}return _0x1c036a[_0x261d('0x4c')](_0x4c8b49);}})[_0x261d('0x23')](function(_0x122e77){if(_0x122e77){return _0x122e77?{'count':_0x3e38ec,'rows':_0x122e77}:null;}})['then'](respondWithResult(_0x326e30,null))['catch'](handleError(_0x326e30,null));};exports['getFields']=function(_0x13cb79,_0x7de832,_0x4d7b12){var _0x28c359={};var _0x3fe31e={};var _0x161486;var _0x351d13;return db['FreshsalesConfiguration'][_0x261d('0x48')]({'where':{'id':_0x13cb79['params']['id']}})[_0x261d('0x23')](handleEntityNotFound(_0x7de832,null))[_0x261d('0x23')](function(_0x193216){if(_0x193216){_0x161486=_0x193216;_0x3fe31e['model']=_[_0x261d('0x2f')](db[_0x261d('0x49')][_0x261d('0x2b')]);_0x3fe31e[_0x261d('0x2e')]=_[_0x261d('0x2f')](_0x13cb79[_0x261d('0x2e')]);_0x3fe31e[_0x261d('0x38')]=_[_0x261d('0x30')](_0x3fe31e[_0x261d('0x2d')],_0x3fe31e[_0x261d('0x2e')]);_0x28c359[_0x261d('0x31')]=_[_0x261d('0x30')](_0x3fe31e[_0x261d('0x2d')],qs[_0x261d('0x32')](_0x13cb79[_0x261d('0x2e')][_0x261d('0x32')]));_0x28c359[_0x261d('0x31')]=_0x28c359['attributes'][_0x261d('0x33')]?_0x28c359[_0x261d('0x31')]:_0x3fe31e[_0x261d('0x2d')];_0x28c359['order']=qs['sort'](_0x13cb79['query'][_0x261d('0x37')]);_0x28c359[_0x261d('0x3a')]=qs['filters'](_[_0x261d('0x39')](_0x13cb79[_0x261d('0x2e')],_0x3fe31e[_0x261d('0x38')]));if(_0x13cb79[_0x261d('0x2e')][_0x261d('0x3d')]){_0x28c359[_0x261d('0x3a')]=_['merge'](_0x28c359[_0x261d('0x3a')],{'$or':_[_0x261d('0x29')](_0x28c359[_0x261d('0x31')],function(_0x49dd7d){var _0x4f60d5={};_0x4f60d5[_0x49dd7d]={'$like':'%'+_0x13cb79['query'][_0x261d('0x3d')]+'%'};return _0x4f60d5;})});}_0x28c359=_[_0x261d('0x3b')]({},_0x28c359,_0x13cb79[_0x261d('0x3e')]);return _0x161486[_0x261d('0x4d')](_0x28c359);}})['then'](function(_0x4874bc){if(_0x4874bc){_0x351d13=_0x4874bc[_0x261d('0x33')];if(!_0x13cb79[_0x261d('0x2e')]['hasOwnProperty']('nolimit')){_0x28c359['limit']=qs[_0x261d('0x35')](_0x13cb79[_0x261d('0x2e')]['limit']);_0x28c359[_0x261d('0x1c')]=qs[_0x261d('0x1c')](_0x13cb79['query'][_0x261d('0x1c')]);}return _0x161486[_0x261d('0x4d')](_0x28c359);}})[_0x261d('0x23')](function(_0x429b11){if(_0x429b11){return _0x429b11?{'count':_0x351d13,'rows':_0x429b11}:null;}})['then'](respondWithResult(_0x7de832,null))[_0x261d('0x41')](handleError(_0x7de832,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9ec=['../../config/logger','api','moment','bluebird','request-promise','path','../../config/environment','./intFreshsalesConfiguration.attributes','define','FreshsalesConfiguration','int_freshsales_configurations','util'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0xa9ec,0xcb));var _0xca9e=function(_0x4fd791,_0x180648){_0x4fd791=_0x4fd791-0x0;var _0x30c89e=_0xa9ec[_0x4fd791];return _0x30c89e;};'use strict';var _=require('lodash');var util=require(_0xca9e('0x0'));var logger=require(_0xca9e('0x1'))(_0xca9e('0x2'));var moment=require(_0xca9e('0x3'));var BPromise=require(_0xca9e('0x4'));var rp=require(_0xca9e('0x5'));var fs=require('fs');var path=require(_0xca9e('0x6'));var rimraf=require('rimraf');var config=require(_0xca9e('0x7'));var attributes=require(_0xca9e('0x8'));module['exports']=function(_0x35b0af,_0x4b4155){return _0x35b0af[_0xca9e('0x9')](_0xca9e('0xa'),attributes,{'tableName':_0xca9e('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x2bbf=['util','../../config/logger','api','moment','request-promise','path','rimraf','../../config/environment','define','int_freshsales_configurations','lodash'];(function(_0x29215d,_0x39143f){var _0x265037=function(_0x3e07ff){while(--_0x3e07ff){_0x29215d['push'](_0x29215d['shift']());}};_0x265037(++_0x39143f);}(_0x2bbf,0x83));var _0xf2bb=function(_0x565c49,_0x54acd0){_0x565c49=_0x565c49-0x0;var _0x20ca34=_0x2bbf[_0x565c49];return _0x20ca34;};'use strict';var _=require(_0xf2bb('0x0'));var util=require(_0xf2bb('0x1'));var logger=require(_0xf2bb('0x2'))(_0xf2bb('0x3'));var moment=require(_0xf2bb('0x4'));var BPromise=require('bluebird');var rp=require(_0xf2bb('0x5'));var fs=require('fs');var path=require(_0xf2bb('0x6'));var rimraf=require(_0xf2bb('0x7'));var config=require(_0xf2bb('0x8'));var attributes=require('./intFreshsalesConfiguration.attributes');module['exports']=function(_0x2990bb,_0x551608){return _0x2990bb[_0xf2bb('0x9')]('FreshsalesConfiguration',attributes,{'tableName':_0xf2bb('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x03a4=['error','code','message','catch','lodash','util','randomstring','ioredis','../../config/utils','../../config/logger','../../config/environment','client','http','request','info','FreshsalesConfiguration,\x20%s,\x20%s','request\x20sent','debug','stringify'];(function(_0x1ebd10,_0x4914b4){var _0x1004d3=function(_0x59e3ba){while(--_0x59e3ba){_0x1ebd10['push'](_0x1ebd10['shift']());}};_0x1004d3(++_0x4914b4);}(_0x03a4,0x147));var _0x403a=function(_0xd36bef,_0x2f5845){_0xd36bef=_0xd36bef-0x0;var _0xc1b349=_0x03a4[_0xd36bef];return _0xc1b349;};'use strict';var _=require(_0x403a('0x0'));var util=require(_0x403a('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0x403a('0x2'));var fs=require('fs');var Redis=require(_0x403a('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0x403a('0x4'));var logger=require(_0x403a('0x5'))('rpc');var config=require(_0x403a('0x6'));var jayson=require('jayson/promise');var client=jayson[_0x403a('0x7')][_0x403a('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x340f64,_0x1b5c11,_0x4d4979){return new BPromise(function(_0xf75c3a,_0x3ab128){return client[_0x403a('0x9')](_0x340f64,_0x4d4979)['then'](function(_0x274d0b){logger[_0x403a('0xa')](_0x403a('0xb'),_0x1b5c11,_0x403a('0xc'));logger[_0x403a('0xd')]('FreshsalesConfiguration,\x20%s,\x20%s,\x20%s',_0x1b5c11,_0x403a('0xc'),JSON[_0x403a('0xe')](_0x274d0b));if(_0x274d0b['error']){if(_0x274d0b[_0x403a('0xf')][_0x403a('0x10')]===0x1f4){logger[_0x403a('0xf')]('FreshsalesConfiguration,\x20%s,\x20%s',_0x1b5c11,_0x274d0b[_0x403a('0xf')]['message']);return _0x3ab128(_0x274d0b['error'][_0x403a('0x11')]);}logger[_0x403a('0xf')]('FreshsalesConfiguration,\x20%s,\x20%s',_0x1b5c11,_0x274d0b[_0x403a('0xf')][_0x403a('0x11')]);return _0xf75c3a(_0x274d0b[_0x403a('0xf')][_0x403a('0x11')]);}else{logger[_0x403a('0xa')](_0x403a('0xb'),_0x1b5c11,_0x403a('0xc'));_0xf75c3a(_0x274d0b['result'][_0x403a('0x11')]);}})[_0x403a('0x12')](function(_0x2031f7){logger['error']('FreshsalesConfiguration,\x20%s,\x20%s',_0x1b5c11,_0x2031f7);_0x3ab128(_0x2031f7);});});}
\ No newline at end of file
+var _0xa0ef=['message','result','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','request','info','FreshsalesConfiguration,\x20%s,\x20%s','debug','stringify','error','code'];(function(_0x3471ff,_0x4134d9){var _0x3c3a8c=function(_0x1eef72){while(--_0x1eef72){_0x3471ff['push'](_0x3471ff['shift']());}};_0x3c3a8c(++_0x4134d9);}(_0xa0ef,0x137));var _0xfa0e=function(_0x19754a,_0x3050aa){_0x19754a=_0x19754a-0x0;var _0x4f8f3f=_0xa0ef[_0x19754a];return _0x4f8f3f;};'use strict';var _=require(_0xfa0e('0x0'));var util=require(_0xfa0e('0x1'));var moment=require(_0xfa0e('0x2'));var BPromise=require(_0xfa0e('0x3'));var rs=require(_0xfa0e('0x4'));var fs=require('fs');var Redis=require(_0xfa0e('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0xfa0e('0x6'));var logger=require(_0xfa0e('0x7'))('rpc');var config=require(_0xfa0e('0x8'));var jayson=require(_0xfa0e('0x9'));var client=jayson[_0xfa0e('0xa')][_0xfa0e('0xb')]({'port':0x232a});function respondWithRpcPromise(_0xfcb737,_0x3d9bc4,_0x501b27){return new BPromise(function(_0x4e4d1b,_0x41cb0b){return client[_0xfa0e('0xc')](_0xfcb737,_0x501b27)['then'](function(_0x2df687){logger[_0xfa0e('0xd')](_0xfa0e('0xe'),_0x3d9bc4,'request\x20sent');logger[_0xfa0e('0xf')]('FreshsalesConfiguration,\x20%s,\x20%s,\x20%s',_0x3d9bc4,'request\x20sent',JSON[_0xfa0e('0x10')](_0x2df687));if(_0x2df687[_0xfa0e('0x11')]){if(_0x2df687[_0xfa0e('0x11')][_0xfa0e('0x12')]===0x1f4){logger[_0xfa0e('0x11')](_0xfa0e('0xe'),_0x3d9bc4,_0x2df687[_0xfa0e('0x11')][_0xfa0e('0x13')]);return _0x41cb0b(_0x2df687[_0xfa0e('0x11')][_0xfa0e('0x13')]);}logger[_0xfa0e('0x11')](_0xfa0e('0xe'),_0x3d9bc4,_0x2df687[_0xfa0e('0x11')][_0xfa0e('0x13')]);return _0x4e4d1b(_0x2df687[_0xfa0e('0x11')][_0xfa0e('0x13')]);}else{logger[_0xfa0e('0xd')](_0xfa0e('0xe'),_0x3d9bc4,'request\x20sent');_0x4e4d1b(_0x2df687[_0xfa0e('0x14')]['message']);}})[_0xfa0e('0x15')](function(_0x43d82e){logger['error'](_0xfa0e('0xe'),_0x3d9bc4,_0x43d82e);_0x41cb0b(_0x43d82e);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x22dd=['multer','util','path','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./intFreshsalesField.controller','get','isAuthenticated','index','show','put','update','delete','/:id','destroy','exports'];(function(_0x19950b,_0x53d0d7){var _0x3c6b41=function(_0x3924ad){while(--_0x3924ad){_0x19950b['push'](_0x19950b['shift']());}};_0x3c6b41(++_0x53d0d7);}(_0x22dd,0xe4));var _0xd22d=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x22dd[_0x3dd15e];return _0x231fd0;};'use strict';var multer=require(_0xd22d('0x0'));var util=require(_0xd22d('0x1'));var path=require(_0xd22d('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0xd22d('0x3')]();var fs_extra=require(_0xd22d('0x4'));var auth=require(_0xd22d('0x5'));var interaction=require(_0xd22d('0x6'));var config=require(_0xd22d('0x7'));var controller=require(_0xd22d('0x8'));router[_0xd22d('0x9')]('/',auth[_0xd22d('0xa')](),controller[_0xd22d('0xb')]);router[_0xd22d('0x9')]('/:id',auth[_0xd22d('0xa')](),controller[_0xd22d('0xc')]);router['post']('/',auth[_0xd22d('0xa')](),controller['create']);router[_0xd22d('0xd')]('/:id',auth[_0xd22d('0xa')](),controller[_0xd22d('0xe')]);router[_0xd22d('0xf')](_0xd22d('0x10'),auth[_0xd22d('0xa')](),controller[_0xd22d('0x11')]);module[_0xd22d('0x12')]=router;
\ No newline at end of file
+var _0xe600=['update','destroy','exports','util','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./intFreshsalesField.controller','get','isAuthenticated','/:id','show','create','put'];(function(_0x2d975a,_0x556cb2){var _0x49bcd0=function(_0xc0d653){while(--_0xc0d653){_0x2d975a['push'](_0x2d975a['shift']());}};_0x49bcd0(++_0x556cb2);}(_0xe600,0x159));var _0x0e60=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0xe600[_0x321bb2];return _0x9c12ed;};'use strict';var multer=require('multer');var util=require(_0x0e60('0x0'));var path=require('path');var timeout=require(_0x0e60('0x1'));var express=require(_0x0e60('0x2'));var router=express[_0x0e60('0x3')]();var fs_extra=require(_0x0e60('0x4'));var auth=require(_0x0e60('0x5'));var interaction=require(_0x0e60('0x6'));var config=require(_0x0e60('0x7'));var controller=require(_0x0e60('0x8'));router[_0x0e60('0x9')]('/',auth[_0x0e60('0xa')](),controller['index']);router[_0x0e60('0x9')](_0x0e60('0xb'),auth[_0x0e60('0xa')](),controller[_0x0e60('0xc')]);router['post']('/',auth[_0x0e60('0xa')](),controller[_0x0e60('0xd')]);router[_0x0e60('0xe')](_0x0e60('0xb'),auth[_0x0e60('0xa')](),controller[_0x0e60('0xf')]);router['delete'](_0x0e60('0xb'),auth[_0x0e60('0xa')](),controller[_0x0e60('0x10')]);module[_0x0e60('0x11')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xaf36=['keyValue','picklist','STRING','customVariable','BOOLEAN','sequelize','ENUM','string','variable'];(function(_0x181105,_0x2d444f){var _0x5f57a0=function(_0x36901d){while(--_0x36901d){_0x181105['push'](_0x181105['shift']());}};_0x5f57a0(++_0x2d444f);}(_0xaf36,0x164));var _0x6af3=function(_0x236d24,_0x29e80a){_0x236d24=_0x236d24-0x0;var _0x1574cf=_0xaf36[_0x236d24];return _0x1574cf;};'use strict';var Sequelize=require(_0x6af3('0x0'));module['exports']={'type':{'type':Sequelize[_0x6af3('0x1')](_0x6af3('0x2'),_0x6af3('0x3'),'customVariable',_0x6af3('0x4'),_0x6af3('0x5')),'defaultValue':_0x6af3('0x2')},'content':{'type':Sequelize[_0x6af3('0x6')]},'key':{'type':Sequelize[_0x6af3('0x6')]},'keyType':{'type':Sequelize[_0x6af3('0x1')](_0x6af3('0x2'),_0x6af3('0x3'),_0x6af3('0x7'))},'keyContent':{'type':Sequelize[_0x6af3('0x6')]},'idField':{'type':Sequelize['STRING']},'nameField':{'type':Sequelize[_0x6af3('0x6')]},'customField':{'type':Sequelize[_0x6af3('0x8')],'defaultValue':!![]},'variableName':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0x6560=['exports','string','keyValue','picklist','STRING','ENUM','customVariable','BOOLEAN','sequelize'];(function(_0x366378,_0x33a2fa){var _0x19bbf0=function(_0x27900e){while(--_0x27900e){_0x366378['push'](_0x366378['shift']());}};_0x19bbf0(++_0x33a2fa);}(_0x6560,0x86));var _0x0656=function(_0x208a1d,_0x5853b6){_0x208a1d=_0x208a1d-0x0;var _0x21504d=_0x6560[_0x208a1d];return _0x21504d;};'use strict';var Sequelize=require(_0x0656('0x0'));module[_0x0656('0x1')]={'type':{'type':Sequelize['ENUM'](_0x0656('0x2'),'variable','customVariable',_0x0656('0x3'),_0x0656('0x4')),'defaultValue':_0x0656('0x2')},'content':{'type':Sequelize[_0x0656('0x5')]},'key':{'type':Sequelize['STRING']},'keyType':{'type':Sequelize[_0x0656('0x6')]('string','variable',_0x0656('0x7'))},'keyContent':{'type':Sequelize[_0x0656('0x5')]},'idField':{'type':Sequelize[_0x0656('0x5')]},'nameField':{'type':Sequelize[_0x0656('0x5')]},'customField':{'type':Sequelize[_0x0656('0x8')],'defaultValue':!![]},'variableName':{'type':Sequelize[_0x0656('0x5')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x94c9=['../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','status','end','offset','limit','count','Content-Range','json','reject','save','update','then','destroy','sendStatus','error','stack','name','send','index','rawAttributes','key','query','keys','filters','intersection','model','attributes','fields','length','nolimit','order','sort','where','pick','filter','merge','map','VIRTUAL','options','FreshsalesField','includeAll','include','findAll','rows','show','find','create','body','params','catch','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','util','path','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/license/hardware'];(function(_0x4af21a,_0x587afa){var _0x2dc08a=function(_0x5df689){while(--_0x5df689){_0x4af21a['push'](_0x4af21a['shift']());}};_0x2dc08a(++_0x587afa);}(_0x94c9,0x1f2));var _0x994c=function(_0x5e8981,_0x5ad60b){_0x5e8981=_0x5e8981-0x0;var _0x5a65ab=_0x94c9[_0x5e8981];return _0x5a65ab;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x994c('0x0'));var zipdir=require(_0x994c('0x1'));var jsonpatch=require(_0x994c('0x2'));var rp=require(_0x994c('0x3'));var moment=require('moment');var BPromise=require(_0x994c('0x4'));var Mustache=require('mustache');var util=require(_0x994c('0x5'));var path=require(_0x994c('0x6'));var sox=require('sox');var csv=require(_0x994c('0x7'));var ejs=require(_0x994c('0x8'));var fs=require('fs');var fs_extra=require(_0x994c('0x9'));var _=require(_0x994c('0xa'));var squel=require(_0x994c('0xb'));var crypto=require(_0x994c('0xc'));var jsforce=require(_0x994c('0xd'));var deskjs=require(_0x994c('0xe'));var toCsv=require(_0x994c('0x7'));var querystring=require(_0x994c('0xf'));var Papa=require(_0x994c('0x10'));var Redis=require(_0x994c('0x11'));var authService=require('../../components/auth/service');var qs=require(_0x994c('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x994c('0x13'));var logger=require(_0x994c('0x14'))(_0x994c('0x15'));var utils=require(_0x994c('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0x994c('0x17'));var db=require(_0x994c('0x18'))['db'];function respondWithStatusCode(_0x18d6cd,_0x1fc5b2){_0x1fc5b2=_0x1fc5b2||0xcc;return function(_0x1fea59){if(_0x1fea59){return _0x18d6cd['sendStatus'](_0x1fc5b2);}return _0x18d6cd[_0x994c('0x19')](_0x1fc5b2)[_0x994c('0x1a')]();};}function respondWithResult(_0x362340,_0x2d9629){_0x2d9629=_0x2d9629||0xc8;return function(_0x32e012){if(_0x32e012){return _0x362340[_0x994c('0x19')](_0x2d9629)['json'](_0x32e012);}};}function respondWithFilteredResult(_0x58d027,_0xf7b47f){return function(_0x3979f5){if(_0x3979f5){var _0x285c56=typeof _0xf7b47f[_0x994c('0x1b')]==='undefined'&&typeof _0xf7b47f[_0x994c('0x1c')]==='undefined';var _0x4c6e0c=_0x3979f5[_0x994c('0x1d')];var _0x1436e5=_0x285c56?0x0:_0xf7b47f['offset'];var _0x2016f3=_0x285c56?_0x3979f5[_0x994c('0x1d')]:_0xf7b47f[_0x994c('0x1b')]+_0xf7b47f[_0x994c('0x1c')];var _0x23b546;if(_0x2016f3>=_0x4c6e0c){_0x2016f3=_0x4c6e0c;_0x23b546=0xc8;}else{_0x23b546=0xce;}_0x58d027[_0x994c('0x19')](_0x23b546);return _0x58d027['set'](_0x994c('0x1e'),_0x1436e5+'-'+_0x2016f3+'/'+_0x4c6e0c)[_0x994c('0x1f')](_0x3979f5);}return null;};}function patchUpdates(_0x2c9d70){return function(_0x752066){try{jsonpatch['apply'](_0x752066,_0x2c9d70,!![]);}catch(_0x3201bf){return BPromise[_0x994c('0x20')](_0x3201bf);}return _0x752066[_0x994c('0x21')]();};}function saveUpdates(_0x10afff,_0x3f1e29){return function(_0x3af340){if(_0x3af340){return _0x3af340[_0x994c('0x22')](_0x10afff)[_0x994c('0x23')](function(_0xa8f31a){return _0xa8f31a;});}return null;};}function removeEntity(_0x4d9975,_0x408699){return function(_0x31621b){if(_0x31621b){return _0x31621b[_0x994c('0x24')]()[_0x994c('0x23')](function(){_0x4d9975[_0x994c('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4768d7,_0x8133b5){return function(_0x1e4dea){if(!_0x1e4dea){_0x4768d7[_0x994c('0x25')](0x194);}return _0x1e4dea;};}function handleError(_0x614ac2,_0x53aa6a){_0x53aa6a=_0x53aa6a||0x1f4;return function(_0x141deb){logger[_0x994c('0x26')](_0x141deb[_0x994c('0x27')]);if(_0x141deb['name']){delete _0x141deb[_0x994c('0x28')];}_0x614ac2[_0x994c('0x19')](_0x53aa6a)[_0x994c('0x29')](_0x141deb);};}exports[_0x994c('0x2a')]=function(_0x1cd04d,_0x2db56a){var _0x117d3c={},_0xd1964b={},_0x58d605={'count':0x0,'rows':[]};var _0x2f7f24=_['map'](db['FreshsalesField'][_0x994c('0x2b')],function(_0x45380f){return{'name':_0x45380f['fieldName'],'type':_0x45380f['type'][_0x994c('0x2c')]};});_0xd1964b['model']=_['map'](_0x2f7f24,_0x994c('0x28'));_0xd1964b[_0x994c('0x2d')]=_[_0x994c('0x2e')](_0x1cd04d[_0x994c('0x2d')]);_0xd1964b[_0x994c('0x2f')]=_[_0x994c('0x30')](_0xd1964b[_0x994c('0x31')],_0xd1964b['query']);_0x117d3c[_0x994c('0x32')]=_[_0x994c('0x30')](_0xd1964b[_0x994c('0x31')],qs[_0x994c('0x33')](_0x1cd04d['query'][_0x994c('0x33')]));_0x117d3c['attributes']=_0x117d3c[_0x994c('0x32')][_0x994c('0x34')]?_0x117d3c[_0x994c('0x32')]:_0xd1964b[_0x994c('0x31')];if(!_0x1cd04d[_0x994c('0x2d')]['hasOwnProperty'](_0x994c('0x35'))){_0x117d3c[_0x994c('0x1c')]=qs[_0x994c('0x1c')](_0x1cd04d['query'][_0x994c('0x1c')]);_0x117d3c[_0x994c('0x1b')]=qs['offset'](_0x1cd04d[_0x994c('0x2d')][_0x994c('0x1b')]);}_0x117d3c[_0x994c('0x36')]=qs[_0x994c('0x37')](_0x1cd04d[_0x994c('0x2d')][_0x994c('0x37')]);_0x117d3c[_0x994c('0x38')]=qs[_0x994c('0x2f')](_[_0x994c('0x39')](_0x1cd04d['query'],_0xd1964b[_0x994c('0x2f')]),_0x2f7f24);if(_0x1cd04d[_0x994c('0x2d')][_0x994c('0x3a')]){_0x117d3c['where']=_[_0x994c('0x3b')](_0x117d3c['where'],{'$or':_[_0x994c('0x3c')](_0x2f7f24,function(_0x2635d8){if(_0x2635d8['type']!==_0x994c('0x3d')){var _0x187f4a={};_0x187f4a[_0x2635d8[_0x994c('0x28')]]={'$like':'%'+_0x1cd04d['query']['filter']+'%'};return _0x187f4a;}})});}_0x117d3c=_['merge']({},_0x117d3c,_0x1cd04d[_0x994c('0x3e')]);var _0x128d76={'where':_0x117d3c[_0x994c('0x38')]};return db[_0x994c('0x3f')][_0x994c('0x1d')](_0x128d76)[_0x994c('0x23')](function(_0x773a56){_0x58d605[_0x994c('0x1d')]=_0x773a56;if(_0x1cd04d[_0x994c('0x2d')][_0x994c('0x40')]){_0x117d3c[_0x994c('0x41')]=[{'all':!![]}];}return db[_0x994c('0x3f')][_0x994c('0x42')](_0x117d3c);})['then'](function(_0x388786){_0x58d605[_0x994c('0x43')]=_0x388786;return _0x58d605;})[_0x994c('0x23')](respondWithFilteredResult(_0x2db56a,_0x117d3c))['catch'](handleError(_0x2db56a,null));};exports[_0x994c('0x44')]=function(_0x56748b,_0x18f4c6){var _0xe55674={'raw':!![],'where':{'id':_0x56748b['params']['id']}},_0x58540e={};_0x58540e[_0x994c('0x31')]=_[_0x994c('0x2e')](db[_0x994c('0x3f')][_0x994c('0x2b')]);_0x58540e[_0x994c('0x2d')]=_[_0x994c('0x2e')](_0x56748b[_0x994c('0x2d')]);_0x58540e[_0x994c('0x2f')]=_[_0x994c('0x30')](_0x58540e[_0x994c('0x31')],_0x58540e[_0x994c('0x2d')]);_0xe55674[_0x994c('0x32')]=_[_0x994c('0x30')](_0x58540e[_0x994c('0x31')],qs[_0x994c('0x33')](_0x56748b[_0x994c('0x2d')][_0x994c('0x33')]));_0xe55674[_0x994c('0x32')]=_0xe55674[_0x994c('0x32')][_0x994c('0x34')]?_0xe55674['attributes']:_0x58540e[_0x994c('0x31')];if(_0x56748b[_0x994c('0x2d')][_0x994c('0x40')]){_0xe55674[_0x994c('0x41')]=[{'all':!![]}];}_0xe55674=_[_0x994c('0x3b')]({},_0xe55674,_0x56748b[_0x994c('0x3e')]);return db[_0x994c('0x3f')][_0x994c('0x45')](_0xe55674)['then'](handleEntityNotFound(_0x18f4c6,null))['then'](respondWithResult(_0x18f4c6,null))['catch'](handleError(_0x18f4c6,null));};exports[_0x994c('0x46')]=function(_0x230e1b,_0x58672f){return db[_0x994c('0x3f')][_0x994c('0x46')](_0x230e1b[_0x994c('0x47')],{})[_0x994c('0x23')](respondWithResult(_0x58672f,0xc9))['catch'](handleError(_0x58672f,null));};exports[_0x994c('0x22')]=function(_0xd79ef0,_0x7f50e){if(_0xd79ef0[_0x994c('0x47')]['id']){delete _0xd79ef0[_0x994c('0x47')]['id'];}return db['FreshsalesField'][_0x994c('0x45')]({'where':{'id':_0xd79ef0[_0x994c('0x48')]['id']}})['then'](handleEntityNotFound(_0x7f50e,null))[_0x994c('0x23')](saveUpdates(_0xd79ef0[_0x994c('0x47')],null))[_0x994c('0x23')](respondWithResult(_0x7f50e,null))['catch'](handleError(_0x7f50e,null));};exports[_0x994c('0x24')]=function(_0x257056,_0x5efe61){return db[_0x994c('0x3f')][_0x994c('0x45')]({'where':{'id':_0x257056[_0x994c('0x48')]['id']}})[_0x994c('0x23')](handleEntityNotFound(_0x5efe61,null))[_0x994c('0x23')](removeEntity(_0x5efe61,null))[_0x994c('0x49')](handleError(_0x5efe61,null));};
\ No newline at end of file
+var _0x6654=['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','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','save','update','then','destroy','end','error','stack','name','index','map','FreshsalesField','rawAttributes','fieldName','type','key','model','query','filters','intersection','attributes','fields','length','order','sort','where','pick','filter','VIRTUAL','merge','options','includeAll','include','findAll','rows','catch','params','keys','find','create','body','eml-format','rimraf','zip-dir','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto'];(function(_0x42bc91,_0x41f40a){var _0x3f5507=function(_0x20cfaf){while(--_0x20cfaf){_0x42bc91['push'](_0x42bc91['shift']());}};_0x3f5507(++_0x41f40a);}(_0x6654,0x1c0));var _0x4665=function(_0x311eb8,_0x55766e){_0x311eb8=_0x311eb8-0x0;var _0x4f979f=_0x6654[_0x311eb8];return _0x4f979f;};'use strict';var emlformat=require(_0x4665('0x0'));var rimraf=require(_0x4665('0x1'));var zipdir=require(_0x4665('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x4665('0x3'));var Mustache=require(_0x4665('0x4'));var util=require(_0x4665('0x5'));var path=require(_0x4665('0x6'));var sox=require(_0x4665('0x7'));var csv=require(_0x4665('0x8'));var ejs=require(_0x4665('0x9'));var fs=require('fs');var fs_extra=require(_0x4665('0xa'));var _=require(_0x4665('0xb'));var squel=require(_0x4665('0xc'));var crypto=require(_0x4665('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x4665('0xe'));var toCsv=require('to-csv');var querystring=require(_0x4665('0xf'));var Papa=require(_0x4665('0x10'));var Redis=require('ioredis');var authService=require(_0x4665('0x11'));var qs=require(_0x4665('0x12'));var as=require(_0x4665('0x13'));var hardwareService=require(_0x4665('0x14'));var logger=require(_0x4665('0x15'))(_0x4665('0x16'));var utils=require(_0x4665('0x17'));var config=require(_0x4665('0x18'));var licenseUtil=require(_0x4665('0x19'));var db=require(_0x4665('0x1a'))['db'];function respondWithStatusCode(_0x2da05a,_0x33cf31){_0x33cf31=_0x33cf31||0xcc;return function(_0x4fbcdc){if(_0x4fbcdc){return _0x2da05a[_0x4665('0x1b')](_0x33cf31);}return _0x2da05a[_0x4665('0x1c')](_0x33cf31)['end']();};}function respondWithResult(_0x5cd8cf,_0x335db7){_0x335db7=_0x335db7||0xc8;return function(_0x4a297f){if(_0x4a297f){return _0x5cd8cf[_0x4665('0x1c')](_0x335db7)[_0x4665('0x1d')](_0x4a297f);}};}function respondWithFilteredResult(_0x2c56f5,_0x22d83f){return function(_0xa3e329){if(_0xa3e329){var _0x4a7378=typeof _0x22d83f[_0x4665('0x1e')]===_0x4665('0x1f')&&typeof _0x22d83f[_0x4665('0x20')]===_0x4665('0x1f');var _0x428c4a=_0xa3e329[_0x4665('0x21')];var _0x22e165=_0x4a7378?0x0:_0x22d83f[_0x4665('0x1e')];var _0x470063=_0x4a7378?_0xa3e329['count']:_0x22d83f['offset']+_0x22d83f['limit'];var _0x383f33;if(_0x470063>=_0x428c4a){_0x470063=_0x428c4a;_0x383f33=0xc8;}else{_0x383f33=0xce;}_0x2c56f5[_0x4665('0x1c')](_0x383f33);return _0x2c56f5[_0x4665('0x22')](_0x4665('0x23'),_0x22e165+'-'+_0x470063+'/'+_0x428c4a)[_0x4665('0x1d')](_0xa3e329);}return null;};}function patchUpdates(_0x22e248){return function(_0x5bbeb5){try{jsonpatch[_0x4665('0x24')](_0x5bbeb5,_0x22e248,!![]);}catch(_0x2f74ed){return BPromise['reject'](_0x2f74ed);}return _0x5bbeb5[_0x4665('0x25')]();};}function saveUpdates(_0x43b83f,_0x2c1bd5){return function(_0x304c04){if(_0x304c04){return _0x304c04[_0x4665('0x26')](_0x43b83f)[_0x4665('0x27')](function(_0x435091){return _0x435091;});}return null;};}function removeEntity(_0x3e82d3,_0x3dafbf){return function(_0x490142){if(_0x490142){return _0x490142[_0x4665('0x28')]()[_0x4665('0x27')](function(){_0x3e82d3[_0x4665('0x1c')](0xcc)[_0x4665('0x29')]();});}};}function handleEntityNotFound(_0x3eb779,_0x3960c3){return function(_0x177212){if(!_0x177212){_0x3eb779['sendStatus'](0x194);}return _0x177212;};}function handleError(_0x4fc8cb,_0x444de0){_0x444de0=_0x444de0||0x1f4;return function(_0x5bd04c){logger[_0x4665('0x2a')](_0x5bd04c[_0x4665('0x2b')]);if(_0x5bd04c[_0x4665('0x2c')]){delete _0x5bd04c[_0x4665('0x2c')];}_0x4fc8cb[_0x4665('0x1c')](_0x444de0)['send'](_0x5bd04c);};}exports[_0x4665('0x2d')]=function(_0x53f768,_0x3d0dfa){var _0x5d6a21={},_0x1858c2={},_0x11aab6={'count':0x0,'rows':[]};var _0x155fe6=_[_0x4665('0x2e')](db[_0x4665('0x2f')][_0x4665('0x30')],function(_0x4b342d){return{'name':_0x4b342d[_0x4665('0x31')],'type':_0x4b342d[_0x4665('0x32')][_0x4665('0x33')]};});_0x1858c2[_0x4665('0x34')]=_[_0x4665('0x2e')](_0x155fe6,_0x4665('0x2c'));_0x1858c2[_0x4665('0x35')]=_['keys'](_0x53f768[_0x4665('0x35')]);_0x1858c2[_0x4665('0x36')]=_[_0x4665('0x37')](_0x1858c2['model'],_0x1858c2['query']);_0x5d6a21[_0x4665('0x38')]=_[_0x4665('0x37')](_0x1858c2['model'],qs[_0x4665('0x39')](_0x53f768[_0x4665('0x35')][_0x4665('0x39')]));_0x5d6a21['attributes']=_0x5d6a21[_0x4665('0x38')][_0x4665('0x3a')]?_0x5d6a21[_0x4665('0x38')]:_0x1858c2[_0x4665('0x34')];if(!_0x53f768[_0x4665('0x35')]['hasOwnProperty']('nolimit')){_0x5d6a21[_0x4665('0x20')]=qs[_0x4665('0x20')](_0x53f768[_0x4665('0x35')][_0x4665('0x20')]);_0x5d6a21[_0x4665('0x1e')]=qs[_0x4665('0x1e')](_0x53f768['query'][_0x4665('0x1e')]);}_0x5d6a21[_0x4665('0x3b')]=qs['sort'](_0x53f768[_0x4665('0x35')][_0x4665('0x3c')]);_0x5d6a21[_0x4665('0x3d')]=qs[_0x4665('0x36')](_[_0x4665('0x3e')](_0x53f768[_0x4665('0x35')],_0x1858c2['filters']),_0x155fe6);if(_0x53f768['query'][_0x4665('0x3f')]){_0x5d6a21[_0x4665('0x3d')]=_['merge'](_0x5d6a21[_0x4665('0x3d')],{'$or':_[_0x4665('0x2e')](_0x155fe6,function(_0x31a73d){if(_0x31a73d['type']!==_0x4665('0x40')){var _0x426864={};_0x426864[_0x31a73d[_0x4665('0x2c')]]={'$like':'%'+_0x53f768[_0x4665('0x35')][_0x4665('0x3f')]+'%'};return _0x426864;}})});}_0x5d6a21=_[_0x4665('0x41')]({},_0x5d6a21,_0x53f768[_0x4665('0x42')]);var _0x2b20ad={'where':_0x5d6a21[_0x4665('0x3d')]};return db[_0x4665('0x2f')][_0x4665('0x21')](_0x2b20ad)['then'](function(_0x19a25a){_0x11aab6[_0x4665('0x21')]=_0x19a25a;if(_0x53f768['query'][_0x4665('0x43')]){_0x5d6a21[_0x4665('0x44')]=[{'all':!![]}];}return db[_0x4665('0x2f')][_0x4665('0x45')](_0x5d6a21);})[_0x4665('0x27')](function(_0x19b1be){_0x11aab6[_0x4665('0x46')]=_0x19b1be;return _0x11aab6;})['then'](respondWithFilteredResult(_0x3d0dfa,_0x5d6a21))[_0x4665('0x47')](handleError(_0x3d0dfa,null));};exports['show']=function(_0x1d391e,_0x4e412d){var _0x50cec0={'raw':!![],'where':{'id':_0x1d391e[_0x4665('0x48')]['id']}},_0x42f6e6={};_0x42f6e6[_0x4665('0x34')]=_[_0x4665('0x49')](db['FreshsalesField'][_0x4665('0x30')]);_0x42f6e6[_0x4665('0x35')]=_[_0x4665('0x49')](_0x1d391e['query']);_0x42f6e6[_0x4665('0x36')]=_[_0x4665('0x37')](_0x42f6e6[_0x4665('0x34')],_0x42f6e6[_0x4665('0x35')]);_0x50cec0['attributes']=_[_0x4665('0x37')](_0x42f6e6[_0x4665('0x34')],qs[_0x4665('0x39')](_0x1d391e[_0x4665('0x35')]['fields']));_0x50cec0['attributes']=_0x50cec0[_0x4665('0x38')][_0x4665('0x3a')]?_0x50cec0[_0x4665('0x38')]:_0x42f6e6[_0x4665('0x34')];if(_0x1d391e[_0x4665('0x35')][_0x4665('0x43')]){_0x50cec0[_0x4665('0x44')]=[{'all':!![]}];}_0x50cec0=_['merge']({},_0x50cec0,_0x1d391e[_0x4665('0x42')]);return db['FreshsalesField'][_0x4665('0x4a')](_0x50cec0)[_0x4665('0x27')](handleEntityNotFound(_0x4e412d,null))['then'](respondWithResult(_0x4e412d,null))[_0x4665('0x47')](handleError(_0x4e412d,null));};exports[_0x4665('0x4b')]=function(_0x2f7971,_0x4c67de){return db[_0x4665('0x2f')]['create'](_0x2f7971['body'],{})[_0x4665('0x27')](respondWithResult(_0x4c67de,0xc9))[_0x4665('0x47')](handleError(_0x4c67de,null));};exports['update']=function(_0x35435c,_0x3a6d5c){if(_0x35435c[_0x4665('0x4c')]['id']){delete _0x35435c[_0x4665('0x4c')]['id'];}return db['FreshsalesField'][_0x4665('0x4a')]({'where':{'id':_0x35435c[_0x4665('0x48')]['id']}})[_0x4665('0x27')](handleEntityNotFound(_0x3a6d5c,null))['then'](saveUpdates(_0x35435c['body'],null))[_0x4665('0x27')](respondWithResult(_0x3a6d5c,null))[_0x4665('0x47')](handleError(_0x3a6d5c,null));};exports['destroy']=function(_0x3738f2,_0x2648ff){return db[_0x4665('0x2f')][_0x4665('0x4a')]({'where':{'id':_0x3738f2[_0x4665('0x48')]['id']}})['then'](handleEntityNotFound(_0x2648ff,null))[_0x4665('0x27')](removeEntity(_0x2648ff,null))[_0x4665('0x47')](handleError(_0x2648ff,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf963=['path','rimraf','../../config/environment','./intFreshsalesField.attributes','define','FreshsalesField','int_freshsales_fields','idField','FieldId','lodash','api','moment'];(function(_0x580576,_0x2f107d){var _0x3f55a0=function(_0x2e180b){while(--_0x2e180b){_0x580576['push'](_0x580576['shift']());}};_0x3f55a0(++_0x2f107d);}(_0xf963,0x11d));var _0x3f96=function(_0x3ff085,_0x27c92e){_0x3ff085=_0x3ff085-0x0;var _0x2b68c3=_0xf963[_0x3ff085];return _0x2b68c3;};'use strict';var _=require(_0x3f96('0x0'));var util=require('util');var logger=require('../../config/logger')(_0x3f96('0x1'));var moment=require(_0x3f96('0x2'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0x3f96('0x3'));var rimraf=require(_0x3f96('0x4'));var config=require(_0x3f96('0x5'));var attributes=require(_0x3f96('0x6'));module['exports']=function(_0x2ecae8,_0x56c663){return _0x2ecae8[_0x3f96('0x7')](_0x3f96('0x8'),attributes,{'tableName':_0x3f96('0x9'),'paranoid':![],'indexes':[{'name':'freshsales_unique_index','fields':[_0x3f96('0xa'),_0x3f96('0xb')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x5f2f=['bluebird','request-promise','path','./intFreshsalesField.attributes','exports','define','FreshsalesField','freshsales_unique_index','idField','FieldId','lodash','util','../../config/logger','api','moment'];(function(_0x10bcdd,_0xedaecb){var _0x507fba=function(_0xf3c554){while(--_0xf3c554){_0x10bcdd['push'](_0x10bcdd['shift']());}};_0x507fba(++_0xedaecb);}(_0x5f2f,0x73));var _0xf5f2=function(_0xdaa32b,_0x19c80c){_0xdaa32b=_0xdaa32b-0x0;var _0x54ac5a=_0x5f2f[_0xdaa32b];return _0x54ac5a;};'use strict';var _=require(_0xf5f2('0x0'));var util=require(_0xf5f2('0x1'));var logger=require(_0xf5f2('0x2'))(_0xf5f2('0x3'));var moment=require(_0xf5f2('0x4'));var BPromise=require(_0xf5f2('0x5'));var rp=require(_0xf5f2('0x6'));var fs=require('fs');var path=require(_0xf5f2('0x7'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0xf5f2('0x8'));module[_0xf5f2('0x9')]=function(_0xad7f65,_0x3eebf6){return _0xad7f65[_0xf5f2('0xa')](_0xf5f2('0xb'),attributes,{'tableName':'int_freshsales_fields','paranoid':![],'indexes':[{'name':_0xf5f2('0xc'),'fields':[_0xf5f2('0xd'),_0xf5f2('0xe')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9536=['request\x20sent','debug','FreshsalesField,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','catch','lodash','util','moment','bluebird','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','request','then','FreshsalesField,\x20%s,\x20%s'];(function(_0x4114a1,_0x313013){var _0x1e0bf4=function(_0x492908){while(--_0x492908){_0x4114a1['push'](_0x4114a1['shift']());}};_0x1e0bf4(++_0x313013);}(_0x9536,0x179));var _0x6953=function(_0x3ff685,_0x304b9e){_0x3ff685=_0x3ff685-0x0;var _0x2046c9=_0x9536[_0x3ff685];return _0x2046c9;};'use strict';var _=require(_0x6953('0x0'));var util=require(_0x6953('0x1'));var moment=require(_0x6953('0x2'));var BPromise=require(_0x6953('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x6953('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x6953('0x5'));var logger=require(_0x6953('0x6'))(_0x6953('0x7'));var config=require(_0x6953('0x8'));var jayson=require(_0x6953('0x9'));var client=jayson['client'][_0x6953('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x2bb026,_0x385f2d,_0x3e1aff){return new BPromise(function(_0x1c8225,_0x58ac30){return client[_0x6953('0xb')](_0x2bb026,_0x3e1aff)[_0x6953('0xc')](function(_0x449acb){logger['info'](_0x6953('0xd'),_0x385f2d,_0x6953('0xe'));logger[_0x6953('0xf')](_0x6953('0x10'),_0x385f2d,_0x6953('0xe'),JSON[_0x6953('0x11')](_0x449acb));if(_0x449acb[_0x6953('0x12')]){if(_0x449acb[_0x6953('0x12')][_0x6953('0x13')]===0x1f4){logger['error'](_0x6953('0xd'),_0x385f2d,_0x449acb['error'][_0x6953('0x14')]);return _0x58ac30(_0x449acb[_0x6953('0x12')][_0x6953('0x14')]);}logger[_0x6953('0x12')](_0x6953('0xd'),_0x385f2d,_0x449acb[_0x6953('0x12')][_0x6953('0x14')]);return _0x1c8225(_0x449acb[_0x6953('0x12')][_0x6953('0x14')]);}else{logger[_0x6953('0x15')](_0x6953('0xd'),_0x385f2d,'request\x20sent');_0x1c8225(_0x449acb['result'][_0x6953('0x14')]);}})[_0x6953('0x16')](function(_0x16b79b){logger[_0x6953('0x12')]('FreshsalesField,\x20%s,\x20%s',_0x385f2d,_0x16b79b);_0x58ac30(_0x16b79b);});});}
\ No newline at end of file
+var _0x2bd8=['info','request\x20sent','result','catch','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','request','FreshsalesField,\x20%s,\x20%s','FreshsalesField,\x20%s,\x20%s,\x20%s','error','message'];(function(_0x19034b,_0x4f5357){var _0x5ad5a6=function(_0x3476df){while(--_0x3476df){_0x19034b['push'](_0x19034b['shift']());}};_0x5ad5a6(++_0x4f5357);}(_0x2bd8,0x130));var _0x82bd=function(_0x2bceb1,_0x33c446){_0x2bceb1=_0x2bceb1-0x0;var _0x135953=_0x2bd8[_0x2bceb1];return _0x135953;};'use strict';var _=require(_0x82bd('0x0'));var util=require('util');var moment=require(_0x82bd('0x1'));var BPromise=require(_0x82bd('0x2'));var rs=require(_0x82bd('0x3'));var fs=require('fs');var Redis=require(_0x82bd('0x4'));var db=require(_0x82bd('0x5'))['db'];var utils=require(_0x82bd('0x6'));var logger=require(_0x82bd('0x7'))('rpc');var config=require(_0x82bd('0x8'));var jayson=require(_0x82bd('0x9'));var client=jayson[_0x82bd('0xa')]['http']({'port':0x232a});function respondWithRpcPromise(_0x19dbb1,_0x77d7a9,_0x226f60){return new BPromise(function(_0x1f7463,_0x4dc3a6){return client[_0x82bd('0xb')](_0x19dbb1,_0x226f60)['then'](function(_0x4a9b2c){logger['info'](_0x82bd('0xc'),_0x77d7a9,'request\x20sent');logger['debug'](_0x82bd('0xd'),_0x77d7a9,'request\x20sent',JSON['stringify'](_0x4a9b2c));if(_0x4a9b2c[_0x82bd('0xe')]){if(_0x4a9b2c[_0x82bd('0xe')]['code']===0x1f4){logger[_0x82bd('0xe')]('FreshsalesField,\x20%s,\x20%s',_0x77d7a9,_0x4a9b2c[_0x82bd('0xe')]['message']);return _0x4dc3a6(_0x4a9b2c[_0x82bd('0xe')][_0x82bd('0xf')]);}logger[_0x82bd('0xe')](_0x82bd('0xc'),_0x77d7a9,_0x4a9b2c['error'][_0x82bd('0xf')]);return _0x1f7463(_0x4a9b2c[_0x82bd('0xe')]['message']);}else{logger[_0x82bd('0x10')]('FreshsalesField,\x20%s,\x20%s',_0x77d7a9,_0x82bd('0x11'));_0x1f7463(_0x4a9b2c[_0x82bd('0x12')][_0x82bd('0xf')]);}})[_0x82bd('0x13')](function(_0x209081){logger[_0x82bd('0xe')](_0x82bd('0xc'),_0x77d7a9,_0x209081);_0x4dc3a6(_0x209081);});});}
\ 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(_0xba3d2,_0x318ae1){var _0x561a9e=function(_0x17adee){while(--_0x17adee){_0xba3d2['push'](_0xba3d2['shift']());}};_0x561a9e(++_0x318ae1);}(_0x9957,0x93));var _0x7995=function(_0x3947c9,_0x4d6c97){_0x3947c9=_0x3947c9-0x0;var _0x2e7871=_0x9957[_0x3947c9];return _0x2e7871;};'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','./intSalesforceAccount.controller','get','index','/:id','getConfigurations','/:id/fields','isAuthenticated','getFields','post','addConfiguration','put','update','destroy','exports','multer','util','path'];(function(_0x3fc6ac,_0xa701d1){var _0x2b3294=function(_0x2a7132){while(--_0x2a7132){_0x3fc6ac['push'](_0x3fc6ac['shift']());}};_0x2b3294(++_0xa701d1);}(_0xa9e0,0x123));var _0x0a9e=function(_0xbca1b1,_0x33f0ce){_0xbca1b1=_0xbca1b1-0x0;var _0x4e1686=_0xa9e0[_0xbca1b1];return _0x4e1686;};'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 _0x288a=['exports','STRING','integrationTab','newTab'];(function(_0x4b174a,_0x33a017){var _0x3cd7bf=function(_0x44ccd9){while(--_0x44ccd9){_0x4b174a['push'](_0x4b174a['shift']());}};_0x3cd7bf(++_0x33a017);}(_0x288a,0x188));var _0xa288=function(_0x3f4cf7,_0x22cf31){_0x3f4cf7=_0x3f4cf7-0x0;var _0x588281=_0x288a[_0x3f4cf7];return _0x588281;};'use strict';var Sequelize=require('sequelize');module[_0xa288('0x0')]={'name':{'type':Sequelize[_0xa288('0x1')]},'description':{'type':Sequelize[_0xa288('0x1')]},'username':{'type':Sequelize[_0xa288('0x1')],'unique':'username'},'remoteUri':{'type':Sequelize['STRING']},'password':{'type':Sequelize[_0xa288('0x1')]},'clientId':{'type':Sequelize['STRING']},'clientSecret':{'type':Sequelize[_0xa288('0x1')]},'securityToken':{'type':Sequelize[_0xa288('0x1')]},'serverUrl':{'type':Sequelize[_0xa288('0x1')],'allowNull':![]},'type':{'type':Sequelize['ENUM'](_0xa288('0x2'),_0xa288('0x3')),'defaultValue':_0xa288('0x2')}};
\ No newline at end of file
+var _0xc3f3=['exports','STRING','username','ENUM','integrationTab','newTab'];(function(_0x56f4a5,_0x5c53d8){var _0x27fe0c=function(_0x39eaaf){while(--_0x39eaaf){_0x56f4a5['push'](_0x56f4a5['shift']());}};_0x27fe0c(++_0x5c53d8);}(_0xc3f3,0xd2));var _0x3c3f=function(_0x4071cd,_0x4d6215){_0x4071cd=_0x4071cd-0x0;var _0x3350f4=_0xc3f3[_0x4071cd];return _0x3350f4;};'use strict';var Sequelize=require('sequelize');module[_0x3c3f('0x0')]={'name':{'type':Sequelize[_0x3c3f('0x1')]},'description':{'type':Sequelize[_0x3c3f('0x1')]},'username':{'type':Sequelize[_0x3c3f('0x1')],'unique':_0x3c3f('0x2')},'remoteUri':{'type':Sequelize[_0x3c3f('0x1')]},'password':{'type':Sequelize[_0x3c3f('0x1')]},'clientId':{'type':Sequelize[_0x3c3f('0x1')]},'clientSecret':{'type':Sequelize[_0x3c3f('0x1')]},'securityToken':{'type':Sequelize[_0x3c3f('0x1')]},'serverUrl':{'type':Sequelize[_0x3c3f('0x1')],'allowNull':![]},'type':{'type':Sequelize[_0x3c3f('0x3')](_0x3c3f('0x4'),_0x3c3f('0x5')),'defaultValue':_0x3c3f('0x4')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5c9c=['status','json','undefined','count','offset','Content-Range','apply','update','destroy','then','end','error','stack','name','SalesforceAccount','rawAttributes','fieldName','type','map','query','keys','filters','model','fields','attributes','length','hasOwnProperty','limit','order','sort','where','merge','VIRTUAL','filter','includeAll','rows','catch','params','intersection','include','options','find','create','body','findOne','getConfigurations','addConfiguration','Subjects','getSubjects','channel','Descriptions','getDescriptions','SalesforceConfiguration','SalesforceField','getFields','Task','clientId','clientSecret','password','securityToken','remoteUri','lastIndexOf','login','username','ticketType','sobject','ActivityDate','IsReminderSet','IsRecurrence','Subject','Description','string','int','picklist','boolean','email','textarea','phone','includes','label','custom','picklistValues','value','True','true','False','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','send','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','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../components/integrations/configuration','sendStatus'];(function(_0x5561ad,_0x56fa3a){var _0x4a07eb=function(_0x5d61a7){while(--_0x5d61a7){_0x5561ad['push'](_0x5561ad['shift']());}};_0x4a07eb(++_0x56fa3a);}(_0x5c9c,0x148));var _0xc5c9=function(_0xfb353f,_0x4be917){_0xfb353f=_0xfb353f-0x0;var _0x2c4619=_0x5c9c[_0xfb353f];return _0x2c4619;};'use strict';var emlformat=require(_0xc5c9('0x0'));var rimraf=require(_0xc5c9('0x1'));var zipdir=require(_0xc5c9('0x2'));var jsonpatch=require(_0xc5c9('0x3'));var rp=require(_0xc5c9('0x4'));var moment=require(_0xc5c9('0x5'));var BPromise=require(_0xc5c9('0x6'));var Mustache=require(_0xc5c9('0x7'));var util=require(_0xc5c9('0x8'));var path=require(_0xc5c9('0x9'));var sox=require(_0xc5c9('0xa'));var csv=require(_0xc5c9('0xb'));var ejs=require(_0xc5c9('0xc'));var fs=require('fs');var fs_extra=require(_0xc5c9('0xd'));var _=require(_0xc5c9('0xe'));var squel=require(_0xc5c9('0xf'));var crypto=require('crypto');var jsforce=require(_0xc5c9('0x10'));var deskjs=require(_0xc5c9('0x11'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xc5c9('0x12'));var Redis=require('ioredis');var authService=require(_0xc5c9('0x13'));var qs=require(_0xc5c9('0x14'));var as=require(_0xc5c9('0x15'));var hardwareService=require(_0xc5c9('0x16'));var logger=require('../../config/logger')(_0xc5c9('0x17'));var utils=require(_0xc5c9('0x18'));var config=require(_0xc5c9('0x19'));var licenseUtil=require(_0xc5c9('0x1a'));var db=require('../../mysqldb')['db'];var integrations=require(_0xc5c9('0x1b'));function respondWithStatusCode(_0x4c0b40,_0x2f73f7){_0x2f73f7=_0x2f73f7||0xcc;return function(_0x18a791){if(_0x18a791){return _0x4c0b40[_0xc5c9('0x1c')](_0x2f73f7);}return _0x4c0b40[_0xc5c9('0x1d')](_0x2f73f7)['end']();};}function respondWithResult(_0x430313,_0x3a64de){_0x3a64de=_0x3a64de||0xc8;return function(_0x538c78){if(_0x538c78){return _0x430313['status'](_0x3a64de)[_0xc5c9('0x1e')](_0x538c78);}};}function respondWithFilteredResult(_0x2e81b3,_0x536768){return function(_0x3b0586){if(_0x3b0586){var _0x333a90=typeof _0x536768['offset']==='undefined'&&typeof _0x536768['limit']===_0xc5c9('0x1f');var _0xa3de75=_0x3b0586[_0xc5c9('0x20')];var _0x5bfa66=_0x333a90?0x0:_0x536768[_0xc5c9('0x21')];var _0xc84cd0=_0x333a90?_0x3b0586[_0xc5c9('0x20')]:_0x536768[_0xc5c9('0x21')]+_0x536768['limit'];var _0xc05dcd;if(_0xc84cd0>=_0xa3de75){_0xc84cd0=_0xa3de75;_0xc05dcd=0xc8;}else{_0xc05dcd=0xce;}_0x2e81b3[_0xc5c9('0x1d')](_0xc05dcd);return _0x2e81b3['set'](_0xc5c9('0x22'),_0x5bfa66+'-'+_0xc84cd0+'/'+_0xa3de75)['json'](_0x3b0586);}return null;};}function patchUpdates(_0x524086){return function(_0x557630){try{jsonpatch[_0xc5c9('0x23')](_0x557630,_0x524086,!![]);}catch(_0x43533b){return BPromise['reject'](_0x43533b);}return _0x557630['save']();};}function saveUpdates(_0x53b309,_0xde7764){return function(_0x564b09){if(_0x564b09){return _0x564b09[_0xc5c9('0x24')](_0x53b309)['then'](function(_0x4c274f){return _0x4c274f;});}return null;};}function removeEntity(_0x468222,_0x13a762){return function(_0x555e48){if(_0x555e48){return _0x555e48[_0xc5c9('0x25')]()[_0xc5c9('0x26')](function(){_0x468222[_0xc5c9('0x1d')](0xcc)[_0xc5c9('0x27')]();});}};}function handleEntityNotFound(_0x1c212b,_0x4e444d){return function(_0x1d7d91){if(!_0x1d7d91){_0x1c212b['sendStatus'](0x194);}return _0x1d7d91;};}function handleError(_0x146c4e,_0x2b60b0){_0x2b60b0=_0x2b60b0||0x1f4;return function(_0x2d51df){logger[_0xc5c9('0x28')](_0x2d51df[_0xc5c9('0x29')]);if(_0x2d51df[_0xc5c9('0x2a')]){delete _0x2d51df[_0xc5c9('0x2a')];}_0x146c4e[_0xc5c9('0x1d')](_0x2b60b0)['send'](_0x2d51df);};}exports['index']=function(_0x5a78b1,_0x56aa1b){var _0x5001fc={},_0x48a8ae={},_0x27d61f={'count':0x0,'rows':[]};var _0x377103=_['map'](db[_0xc5c9('0x2b')][_0xc5c9('0x2c')],function(_0x53567d){return{'name':_0x53567d[_0xc5c9('0x2d')],'type':_0x53567d[_0xc5c9('0x2e')]['key']};});_0x48a8ae['model']=_[_0xc5c9('0x2f')](_0x377103,'name');_0x48a8ae[_0xc5c9('0x30')]=_[_0xc5c9('0x31')](_0x5a78b1[_0xc5c9('0x30')]);_0x48a8ae[_0xc5c9('0x32')]=_['intersection'](_0x48a8ae[_0xc5c9('0x33')],_0x48a8ae['query']);_0x5001fc['attributes']=_['intersection'](_0x48a8ae['model'],qs['fields'](_0x5a78b1[_0xc5c9('0x30')][_0xc5c9('0x34')]));_0x5001fc[_0xc5c9('0x35')]=_0x5001fc[_0xc5c9('0x35')][_0xc5c9('0x36')]?_0x5001fc[_0xc5c9('0x35')]:_0x48a8ae[_0xc5c9('0x33')];if(!_0x5a78b1['query'][_0xc5c9('0x37')]('nolimit')){_0x5001fc[_0xc5c9('0x38')]=qs['limit'](_0x5a78b1['query']['limit']);_0x5001fc[_0xc5c9('0x21')]=qs['offset'](_0x5a78b1[_0xc5c9('0x30')][_0xc5c9('0x21')]);}_0x5001fc[_0xc5c9('0x39')]=qs[_0xc5c9('0x3a')](_0x5a78b1['query'][_0xc5c9('0x3a')]);_0x5001fc[_0xc5c9('0x3b')]=qs[_0xc5c9('0x32')](_['pick'](_0x5a78b1[_0xc5c9('0x30')],_0x48a8ae[_0xc5c9('0x32')]),_0x377103);if(_0x5a78b1[_0xc5c9('0x30')]['filter']){_0x5001fc[_0xc5c9('0x3b')]=_[_0xc5c9('0x3c')](_0x5001fc[_0xc5c9('0x3b')],{'$or':_[_0xc5c9('0x2f')](_0x377103,function(_0x4b820d){if(_0x4b820d['type']!==_0xc5c9('0x3d')){var _0x147dcb={};_0x147dcb[_0x4b820d[_0xc5c9('0x2a')]]={'$like':'%'+_0x5a78b1[_0xc5c9('0x30')][_0xc5c9('0x3e')]+'%'};return _0x147dcb;}})});}_0x5001fc=_[_0xc5c9('0x3c')]({},_0x5001fc,_0x5a78b1['options']);var _0x5c9487={'where':_0x5001fc['where']};return db['SalesforceAccount'][_0xc5c9('0x20')](_0x5c9487)['then'](function(_0x54e88a){_0x27d61f[_0xc5c9('0x20')]=_0x54e88a;if(_0x5a78b1[_0xc5c9('0x30')][_0xc5c9('0x3f')]){_0x5001fc['include']=[{'all':!![]}];}return db[_0xc5c9('0x2b')]['findAll'](_0x5001fc);})[_0xc5c9('0x26')](function(_0x1f735d){_0x27d61f[_0xc5c9('0x40')]=_0x1f735d;return _0x27d61f;})[_0xc5c9('0x26')](respondWithFilteredResult(_0x56aa1b,_0x5001fc))[_0xc5c9('0x41')](handleError(_0x56aa1b,null));};exports['show']=function(_0x7c23d,_0x41d577){var _0x44eafb={'raw':![],'where':{'id':_0x7c23d[_0xc5c9('0x42')]['id']}},_0x2c3623={};_0x2c3623[_0xc5c9('0x33')]=_[_0xc5c9('0x31')](db[_0xc5c9('0x2b')][_0xc5c9('0x2c')]);_0x2c3623[_0xc5c9('0x30')]=_['keys'](_0x7c23d[_0xc5c9('0x30')]);_0x2c3623[_0xc5c9('0x32')]=_[_0xc5c9('0x43')](_0x2c3623[_0xc5c9('0x33')],_0x2c3623[_0xc5c9('0x30')]);_0x44eafb[_0xc5c9('0x35')]=_[_0xc5c9('0x43')](_0x2c3623[_0xc5c9('0x33')],qs[_0xc5c9('0x34')](_0x7c23d['query'][_0xc5c9('0x34')]));_0x44eafb['attributes']=_0x44eafb['attributes'][_0xc5c9('0x36')]?_0x44eafb[_0xc5c9('0x35')]:_0x2c3623['model'];if(_0x7c23d[_0xc5c9('0x30')][_0xc5c9('0x3f')]){_0x44eafb[_0xc5c9('0x44')]=[{'all':!![]}];}_0x44eafb=_[_0xc5c9('0x3c')]({},_0x44eafb,_0x7c23d[_0xc5c9('0x45')]);return db['SalesforceAccount'][_0xc5c9('0x46')](_0x44eafb)['then'](handleEntityNotFound(_0x41d577,null))['then'](respondWithResult(_0x41d577,null))[_0xc5c9('0x41')](handleError(_0x41d577,null));};exports['create']=function(_0x3b7c3c,_0x1fc300){return db['SalesforceAccount'][_0xc5c9('0x47')](_0x3b7c3c[_0xc5c9('0x48')],{})['then'](respondWithResult(_0x1fc300,0xc9))[_0xc5c9('0x41')](handleError(_0x1fc300,null));};exports[_0xc5c9('0x24')]=function(_0x134d3e,_0x23b09e){if(_0x134d3e[_0xc5c9('0x48')]['id']){delete _0x134d3e[_0xc5c9('0x48')]['id'];}return db['SalesforceAccount'][_0xc5c9('0x46')]({'where':{'id':_0x134d3e[_0xc5c9('0x42')]['id']}})['then'](handleEntityNotFound(_0x23b09e,null))[_0xc5c9('0x26')](saveUpdates(_0x134d3e[_0xc5c9('0x48')],null))[_0xc5c9('0x26')](respondWithResult(_0x23b09e,null))[_0xc5c9('0x41')](handleError(_0x23b09e,null));};exports['destroy']=function(_0x860579,_0x1153d7){return db[_0xc5c9('0x2b')][_0xc5c9('0x46')]({'where':{'id':_0x860579[_0xc5c9('0x42')]['id']}})[_0xc5c9('0x26')](handleEntityNotFound(_0x1153d7,null))[_0xc5c9('0x26')](removeEntity(_0x1153d7,null))['catch'](handleError(_0x1153d7,null));};exports['getConfigurations']=function(_0x51e029,_0x122c46,_0x2a7cc6){var _0x18b2f2={};var _0x575183={};var _0x54019c;var _0x15a267;return db[_0xc5c9('0x2b')][_0xc5c9('0x49')]({'where':{'id':_0x51e029[_0xc5c9('0x42')]['id']}})[_0xc5c9('0x26')](handleEntityNotFound(_0x122c46,null))[_0xc5c9('0x26')](function(_0x5496eb){if(_0x5496eb){_0x54019c=_0x5496eb;_0x575183[_0xc5c9('0x33')]=_['keys'](db['SalesforceConfiguration'][_0xc5c9('0x2c')]);_0x575183['query']=_['keys'](_0x51e029['query']);_0x575183[_0xc5c9('0x32')]=_[_0xc5c9('0x43')](_0x575183[_0xc5c9('0x33')],_0x575183[_0xc5c9('0x30')]);_0x18b2f2[_0xc5c9('0x35')]=_[_0xc5c9('0x43')](_0x575183[_0xc5c9('0x33')],qs[_0xc5c9('0x34')](_0x51e029[_0xc5c9('0x30')][_0xc5c9('0x34')]));_0x18b2f2[_0xc5c9('0x35')]=_0x18b2f2[_0xc5c9('0x35')][_0xc5c9('0x36')]?_0x18b2f2['attributes']:_0x575183['model'];_0x18b2f2[_0xc5c9('0x39')]=qs['sort'](_0x51e029[_0xc5c9('0x30')][_0xc5c9('0x3a')]);_0x18b2f2[_0xc5c9('0x3b')]=qs[_0xc5c9('0x32')](_['pick'](_0x51e029[_0xc5c9('0x30')],_0x575183[_0xc5c9('0x32')]));if(_0x51e029[_0xc5c9('0x30')][_0xc5c9('0x3e')]){_0x18b2f2[_0xc5c9('0x3b')]=_[_0xc5c9('0x3c')](_0x18b2f2[_0xc5c9('0x3b')],{'$or':_[_0xc5c9('0x2f')](_0x18b2f2['attributes'],function(_0x2e2c33){var _0x40a01e={};_0x40a01e[_0x2e2c33]={'$like':'%'+_0x51e029[_0xc5c9('0x30')]['filter']+'%'};return _0x40a01e;})});}_0x18b2f2=_[_0xc5c9('0x3c')]({},_0x18b2f2,_0x51e029[_0xc5c9('0x45')]);return _0x54019c[_0xc5c9('0x4a')](_0x18b2f2);}})[_0xc5c9('0x26')](function(_0x501164){if(_0x501164){_0x15a267=_0x501164[_0xc5c9('0x36')];if(!_0x51e029[_0xc5c9('0x30')]['hasOwnProperty']('nolimit')){_0x18b2f2['limit']=qs[_0xc5c9('0x38')](_0x51e029[_0xc5c9('0x30')][_0xc5c9('0x38')]);_0x18b2f2['offset']=qs[_0xc5c9('0x21')](_0x51e029['query'][_0xc5c9('0x21')]);}return _0x54019c[_0xc5c9('0x4a')](_0x18b2f2);}})['then'](function(_0xe616fd){if(_0xe616fd){return _0xe616fd?{'count':_0x15a267,'rows':_0xe616fd}:null;}})[_0xc5c9('0x26')](respondWithResult(_0x122c46,null))[_0xc5c9('0x41')](handleError(_0x122c46,null));};exports[_0xc5c9('0x4b')]=function(_0x445179,_0x1d39c9,_0xcec167){if(_0x445179['body']['id']){delete _0x445179[_0xc5c9('0x48')]['id'];}return db[_0xc5c9('0x2b')][_0xc5c9('0x49')]({'where':{'id':_0x445179[_0xc5c9('0x42')]['id']}})[_0xc5c9('0x26')](handleEntityNotFound(_0x1d39c9,null))['then'](function(_0x304908){if(_0x304908){_0x445179[_0xc5c9('0x48')]['AccountId']=_0x304908['id'];_0x445179[_0xc5c9('0x48')][_0xc5c9('0x4c')]=integrations[_0xc5c9('0x4d')](_0x445179[_0xc5c9('0x48')][_0xc5c9('0x4e')],_0x445179[_0xc5c9('0x48')][_0xc5c9('0x2e')]);_0x445179['body'][_0xc5c9('0x4f')]=integrations[_0xc5c9('0x50')](_0x445179[_0xc5c9('0x48')]['channel'],_0x445179['body'][_0xc5c9('0x2e')]);return db[_0xc5c9('0x51')][_0xc5c9('0x47')](_0x445179[_0xc5c9('0x48')],{'include':[{'model':db[_0xc5c9('0x52')],'as':_0xc5c9('0x4c')},{'model':db[_0xc5c9('0x52')],'as':_0xc5c9('0x4f')}]});}return null;})[_0xc5c9('0x26')](respondWithResult(_0x1d39c9,null))[_0xc5c9('0x41')](handleError(_0x1d39c9,null));};exports[_0xc5c9('0x53')]=function(_0x102754,_0x3eeec4,_0x3777e4){var _0x2692cd;var _0x19a2d4='';var _0x43120b=_0xc5c9('0x54');return db[_0xc5c9('0x2b')][_0xc5c9('0x49')]({'where':{'id':_0x102754[_0xc5c9('0x42')]['id']},'attributes':['id','remoteUri',_0xc5c9('0x55'),_0xc5c9('0x56'),'username',_0xc5c9('0x57'),_0xc5c9('0x58')]})['then'](handleEntityNotFound(_0x3eeec4,null))[_0xc5c9('0x26')](function(_0xe4b79e){if(_0xe4b79e){_0x19a2d4=_0xe4b79e[_0xc5c9('0x59')];var _0x135596=_0x19a2d4['slice'](-0x1);if(_0x135596==='/'){_0x19a2d4=_0x19a2d4['substring'](0x0,_0x19a2d4[_0xc5c9('0x5a')](_0x135596));}_0x2692cd=new jsforce['Connection']({'oauth2':{'loginUrl':_0x19a2d4,'clientId':_0xe4b79e['clientId'],'clientSecret':_0xe4b79e[_0xc5c9('0x56')]}});return _0x2692cd[_0xc5c9('0x5b')](_0xe4b79e[_0xc5c9('0x5c')],_0xe4b79e['password']['concat'](_0xe4b79e['securityToken']));}})['then'](function(_0x53288d){if(_0x53288d){if(!_['isNil'](_0x102754[_0xc5c9('0x30')][_0xc5c9('0x5d')])){_0x43120b=_0x102754[_0xc5c9('0x30')][_0xc5c9('0x5d')];}return _0x2692cd[_0xc5c9('0x5e')](_0x43120b)['describe']();}})[_0xc5c9('0x26')](function(_0x5779be){var _0x44b624=['OwnerId',_0xc5c9('0x5f'),_0xc5c9('0x60'),_0xc5c9('0x61'),_0xc5c9('0x62'),_0xc5c9('0x63')];var _0x4b7654=[_0xc5c9('0x64'),_0xc5c9('0x65'),_0xc5c9('0x66'),_0xc5c9('0x67'),_0xc5c9('0x68'),_0xc5c9('0x69'),_0xc5c9('0x6a')];if(_0x5779be){_['remove'](_0x5779be[_0xc5c9('0x34')],function(_0x3eb9dc){return _0x44b624['includes'](_0x3eb9dc['name'])||!_0x4b7654[_0xc5c9('0x6b')](_0x3eb9dc[_0xc5c9('0x2e')]);});return{'count':_0x5779be[_0xc5c9('0x34')][_0xc5c9('0x36')],'rows':_[_0xc5c9('0x2f')](_0x5779be[_0xc5c9('0x34')],function(_0x1e7d06){return{'id':_0x1e7d06['name'],'name':_0x1e7d06[_0xc5c9('0x6c')],'custom':_0x1e7d06[_0xc5c9('0x6d')],'options':_0x1e7d06[_0xc5c9('0x6e')][_0xc5c9('0x36')]>0x0?_[_0xc5c9('0x2f')](_0x1e7d06[_0xc5c9('0x6e')],function(_0x2987fd){return{'name':_0x2987fd[_0xc5c9('0x6c')],'value':_0x2987fd[_0xc5c9('0x6f')]};}):_0x1e7d06[_0xc5c9('0x2e')]==_0xc5c9('0x67')?[{'name':_0xc5c9('0x70'),'value':_0xc5c9('0x71')},{'name':_0xc5c9('0x72'),'value':'false'}]:[]};})};}})[_0xc5c9('0x26')](respondWithResult(_0x3eeec4,null))[_0xc5c9('0x41')](function(_0x5c2183){var _0x334d32=_0x102754[_0xc5c9('0x30')][_0xc5c9('0x73')]?0x1f4:_0x5c2183[_0xc5c9('0x74')]||0x1f4;logger['error'](_0xc5c9('0x75'),'getFields',_0x334d32,JSON['stringify'](_0x5c2183));delete _0x5c2183[_0xc5c9('0x2a')];if(_0x334d32===0x191){_0x334d32=0x190;}_0x3eeec4[_0xc5c9('0x1d')](_0x334d32)[_0xc5c9('0x76')](_0x102754[_0xc5c9('0x30')][_0xc5c9('0x73')]?{'message':'Wrong\x20credentials','statusCode':_0x5c2183['statusCode']}:_0x5c2183);});};
\ No newline at end of file
+var _0x3e9b=['fs-extra','lodash','squel','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','status','json','offset','undefined','count','set','Content-Range','apply','reject','destroy','end','sendStatus','stack','name','index','map','rawAttributes','fieldName','type','key','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','limit','sort','filters','pick','where','merge','filter','options','SalesforceAccount','then','includeAll','include','findAll','rows','show','params','find','catch','create','update','body','order','nolimit','getConfigurations','addConfiguration','findOne','AccountId','Subjects','channel','Descriptions','getDescriptions','SalesforceConfiguration','SalesforceField','getFields','remoteUri','clientId','clientSecret','username','password','securityToken','substring','login','isNil','ticketType','sobject','describe','OwnerId','ActivityDate','IsReminderSet','IsRecurrence','Subject','Description','string','picklist','boolean','email','textarea','phone','remove','includes','label','custom','picklistValues','True','true','False','false','test','statusCode','error','getFields,\x20%s,\x20%s,\x20%s','stringify','Wrong\x20credentials','eml-format','rimraf','fast-json-patch','moment','util','path','sox','to-csv','ejs'];(function(_0xbb5c0e,_0x4b388f){var _0x1ed9d8=function(_0x20a530){while(--_0x20a530){_0xbb5c0e['push'](_0xbb5c0e['shift']());}};_0x1ed9d8(++_0x4b388f);}(_0x3e9b,0xf1));var _0xb3e9=function(_0x57994e,_0xd83365){_0x57994e=_0x57994e-0x0;var _0x311db0=_0x3e9b[_0x57994e];return _0x311db0;};'use strict';var emlformat=require(_0xb3e9('0x0'));var rimraf=require(_0xb3e9('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xb3e9('0x2'));var rp=require('request-promise');var moment=require(_0xb3e9('0x3'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xb3e9('0x4'));var path=require(_0xb3e9('0x5'));var sox=require(_0xb3e9('0x6'));var csv=require(_0xb3e9('0x7'));var ejs=require(_0xb3e9('0x8'));var fs=require('fs');var fs_extra=require(_0xb3e9('0x9'));var _=require(_0xb3e9('0xa'));var squel=require(_0xb3e9('0xb'));var crypto=require('crypto');var jsforce=require(_0xb3e9('0xc'));var deskjs=require(_0xb3e9('0xd'));var toCsv=require(_0xb3e9('0x7'));var querystring=require('querystring');var Papa=require(_0xb3e9('0xe'));var Redis=require('ioredis');var authService=require(_0xb3e9('0xf'));var qs=require(_0xb3e9('0x10'));var as=require(_0xb3e9('0x11'));var hardwareService=require(_0xb3e9('0x12'));var logger=require(_0xb3e9('0x13'))(_0xb3e9('0x14'));var utils=require(_0xb3e9('0x15'));var config=require(_0xb3e9('0x16'));var licenseUtil=require(_0xb3e9('0x17'));var db=require('../../mysqldb')['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x3b1d54,_0x883627){_0x883627=_0x883627||0xcc;return function(_0x48033f){if(_0x48033f){return _0x3b1d54['sendStatus'](_0x883627);}return _0x3b1d54[_0xb3e9('0x18')](_0x883627)['end']();};}function respondWithResult(_0x241fa7,_0x5d308b){_0x5d308b=_0x5d308b||0xc8;return function(_0x5b7a21){if(_0x5b7a21){return _0x241fa7[_0xb3e9('0x18')](_0x5d308b)[_0xb3e9('0x19')](_0x5b7a21);}};}function respondWithFilteredResult(_0x8e0021,_0x4c84a0){return function(_0x5a1f76){if(_0x5a1f76){var _0x10148b=typeof _0x4c84a0[_0xb3e9('0x1a')]===_0xb3e9('0x1b')&&typeof _0x4c84a0['limit']===_0xb3e9('0x1b');var _0x1abbcb=_0x5a1f76[_0xb3e9('0x1c')];var _0x39d9d7=_0x10148b?0x0:_0x4c84a0[_0xb3e9('0x1a')];var _0xde216=_0x10148b?_0x5a1f76['count']:_0x4c84a0[_0xb3e9('0x1a')]+_0x4c84a0['limit'];var _0x24de4f;if(_0xde216>=_0x1abbcb){_0xde216=_0x1abbcb;_0x24de4f=0xc8;}else{_0x24de4f=0xce;}_0x8e0021['status'](_0x24de4f);return _0x8e0021[_0xb3e9('0x1d')](_0xb3e9('0x1e'),_0x39d9d7+'-'+_0xde216+'/'+_0x1abbcb)[_0xb3e9('0x19')](_0x5a1f76);}return null;};}function patchUpdates(_0x2d776f){return function(_0x1b7381){try{jsonpatch[_0xb3e9('0x1f')](_0x1b7381,_0x2d776f,!![]);}catch(_0x20d5b7){return BPromise[_0xb3e9('0x20')](_0x20d5b7);}return _0x1b7381['save']();};}function saveUpdates(_0x204e42,_0x319015){return function(_0x141fdb){if(_0x141fdb){return _0x141fdb['update'](_0x204e42)['then'](function(_0x1b9b32){return _0x1b9b32;});}return null;};}function removeEntity(_0x176366,_0x387cc2){return function(_0x29706e){if(_0x29706e){return _0x29706e[_0xb3e9('0x21')]()['then'](function(){_0x176366[_0xb3e9('0x18')](0xcc)[_0xb3e9('0x22')]();});}};}function handleEntityNotFound(_0x36589b,_0x1efeec){return function(_0x12c757){if(!_0x12c757){_0x36589b[_0xb3e9('0x23')](0x194);}return _0x12c757;};}function handleError(_0x20d04f,_0x394e5d){_0x394e5d=_0x394e5d||0x1f4;return function(_0x2f2942){logger['error'](_0x2f2942[_0xb3e9('0x24')]);if(_0x2f2942['name']){delete _0x2f2942[_0xb3e9('0x25')];}_0x20d04f['status'](_0x394e5d)['send'](_0x2f2942);};}exports[_0xb3e9('0x26')]=function(_0x3d69b8,_0x5a4434){var _0x5556ed={},_0x3d8147={},_0x5def82={'count':0x0,'rows':[]};var _0x3efe74=_[_0xb3e9('0x27')](db['SalesforceAccount'][_0xb3e9('0x28')],function(_0xe2486c){return{'name':_0xe2486c[_0xb3e9('0x29')],'type':_0xe2486c[_0xb3e9('0x2a')][_0xb3e9('0x2b')]};});_0x3d8147[_0xb3e9('0x2c')]=_['map'](_0x3efe74,_0xb3e9('0x25'));_0x3d8147[_0xb3e9('0x2d')]=_[_0xb3e9('0x2e')](_0x3d69b8[_0xb3e9('0x2d')]);_0x3d8147['filters']=_[_0xb3e9('0x2f')](_0x3d8147[_0xb3e9('0x2c')],_0x3d8147['query']);_0x5556ed[_0xb3e9('0x30')]=_[_0xb3e9('0x2f')](_0x3d8147[_0xb3e9('0x2c')],qs[_0xb3e9('0x31')](_0x3d69b8[_0xb3e9('0x2d')][_0xb3e9('0x31')]));_0x5556ed[_0xb3e9('0x30')]=_0x5556ed[_0xb3e9('0x30')][_0xb3e9('0x32')]?_0x5556ed[_0xb3e9('0x30')]:_0x3d8147[_0xb3e9('0x2c')];if(!_0x3d69b8[_0xb3e9('0x2d')][_0xb3e9('0x33')]('nolimit')){_0x5556ed[_0xb3e9('0x34')]=qs[_0xb3e9('0x34')](_0x3d69b8[_0xb3e9('0x2d')][_0xb3e9('0x34')]);_0x5556ed[_0xb3e9('0x1a')]=qs[_0xb3e9('0x1a')](_0x3d69b8[_0xb3e9('0x2d')][_0xb3e9('0x1a')]);}_0x5556ed['order']=qs['sort'](_0x3d69b8['query'][_0xb3e9('0x35')]);_0x5556ed['where']=qs[_0xb3e9('0x36')](_[_0xb3e9('0x37')](_0x3d69b8['query'],_0x3d8147['filters']),_0x3efe74);if(_0x3d69b8[_0xb3e9('0x2d')]['filter']){_0x5556ed[_0xb3e9('0x38')]=_[_0xb3e9('0x39')](_0x5556ed['where'],{'$or':_['map'](_0x3efe74,function(_0x54b703){if(_0x54b703[_0xb3e9('0x2a')]!=='VIRTUAL'){var _0x2d23d3={};_0x2d23d3[_0x54b703['name']]={'$like':'%'+_0x3d69b8[_0xb3e9('0x2d')][_0xb3e9('0x3a')]+'%'};return _0x2d23d3;}})});}_0x5556ed=_[_0xb3e9('0x39')]({},_0x5556ed,_0x3d69b8[_0xb3e9('0x3b')]);var _0x46061a={'where':_0x5556ed[_0xb3e9('0x38')]};return db[_0xb3e9('0x3c')][_0xb3e9('0x1c')](_0x46061a)[_0xb3e9('0x3d')](function(_0xd2695e){_0x5def82[_0xb3e9('0x1c')]=_0xd2695e;if(_0x3d69b8[_0xb3e9('0x2d')][_0xb3e9('0x3e')]){_0x5556ed[_0xb3e9('0x3f')]=[{'all':!![]}];}return db['SalesforceAccount'][_0xb3e9('0x40')](_0x5556ed);})[_0xb3e9('0x3d')](function(_0x1ff5b4){_0x5def82[_0xb3e9('0x41')]=_0x1ff5b4;return _0x5def82;})['then'](respondWithFilteredResult(_0x5a4434,_0x5556ed))['catch'](handleError(_0x5a4434,null));};exports[_0xb3e9('0x42')]=function(_0x202ced,_0x575a96){var _0x306fa3={'raw':![],'where':{'id':_0x202ced[_0xb3e9('0x43')]['id']}},_0x54385a={};_0x54385a[_0xb3e9('0x2c')]=_[_0xb3e9('0x2e')](db[_0xb3e9('0x3c')][_0xb3e9('0x28')]);_0x54385a[_0xb3e9('0x2d')]=_[_0xb3e9('0x2e')](_0x202ced[_0xb3e9('0x2d')]);_0x54385a['filters']=_[_0xb3e9('0x2f')](_0x54385a[_0xb3e9('0x2c')],_0x54385a['query']);_0x306fa3[_0xb3e9('0x30')]=_[_0xb3e9('0x2f')](_0x54385a[_0xb3e9('0x2c')],qs[_0xb3e9('0x31')](_0x202ced['query'][_0xb3e9('0x31')]));_0x306fa3[_0xb3e9('0x30')]=_0x306fa3[_0xb3e9('0x30')][_0xb3e9('0x32')]?_0x306fa3[_0xb3e9('0x30')]:_0x54385a[_0xb3e9('0x2c')];if(_0x202ced[_0xb3e9('0x2d')][_0xb3e9('0x3e')]){_0x306fa3['include']=[{'all':!![]}];}_0x306fa3=_[_0xb3e9('0x39')]({},_0x306fa3,_0x202ced[_0xb3e9('0x3b')]);return db[_0xb3e9('0x3c')][_0xb3e9('0x44')](_0x306fa3)[_0xb3e9('0x3d')](handleEntityNotFound(_0x575a96,null))[_0xb3e9('0x3d')](respondWithResult(_0x575a96,null))[_0xb3e9('0x45')](handleError(_0x575a96,null));};exports[_0xb3e9('0x46')]=function(_0x5e8a1d,_0x3cb4b){return db['SalesforceAccount'][_0xb3e9('0x46')](_0x5e8a1d['body'],{})[_0xb3e9('0x3d')](respondWithResult(_0x3cb4b,0xc9))[_0xb3e9('0x45')](handleError(_0x3cb4b,null));};exports[_0xb3e9('0x47')]=function(_0x987133,_0x4c0eb9){if(_0x987133[_0xb3e9('0x48')]['id']){delete _0x987133[_0xb3e9('0x48')]['id'];}return db[_0xb3e9('0x3c')][_0xb3e9('0x44')]({'where':{'id':_0x987133[_0xb3e9('0x43')]['id']}})[_0xb3e9('0x3d')](handleEntityNotFound(_0x4c0eb9,null))[_0xb3e9('0x3d')](saveUpdates(_0x987133['body'],null))[_0xb3e9('0x3d')](respondWithResult(_0x4c0eb9,null))[_0xb3e9('0x45')](handleError(_0x4c0eb9,null));};exports[_0xb3e9('0x21')]=function(_0x5577e7,_0x627080){return db['SalesforceAccount'][_0xb3e9('0x44')]({'where':{'id':_0x5577e7[_0xb3e9('0x43')]['id']}})[_0xb3e9('0x3d')](handleEntityNotFound(_0x627080,null))['then'](removeEntity(_0x627080,null))['catch'](handleError(_0x627080,null));};exports['getConfigurations']=function(_0x238f9c,_0x572a10,_0x36b3d0){var _0x72c813={};var _0x2227c8={};var _0x1ce84c;var _0x471706;return db[_0xb3e9('0x3c')]['findOne']({'where':{'id':_0x238f9c[_0xb3e9('0x43')]['id']}})[_0xb3e9('0x3d')](handleEntityNotFound(_0x572a10,null))[_0xb3e9('0x3d')](function(_0x2fad38){if(_0x2fad38){_0x1ce84c=_0x2fad38;_0x2227c8[_0xb3e9('0x2c')]=_[_0xb3e9('0x2e')](db['SalesforceConfiguration'][_0xb3e9('0x28')]);_0x2227c8['query']=_['keys'](_0x238f9c[_0xb3e9('0x2d')]);_0x2227c8[_0xb3e9('0x36')]=_[_0xb3e9('0x2f')](_0x2227c8[_0xb3e9('0x2c')],_0x2227c8[_0xb3e9('0x2d')]);_0x72c813[_0xb3e9('0x30')]=_['intersection'](_0x2227c8['model'],qs[_0xb3e9('0x31')](_0x238f9c['query'][_0xb3e9('0x31')]));_0x72c813[_0xb3e9('0x30')]=_0x72c813['attributes'][_0xb3e9('0x32')]?_0x72c813['attributes']:_0x2227c8[_0xb3e9('0x2c')];_0x72c813[_0xb3e9('0x49')]=qs[_0xb3e9('0x35')](_0x238f9c[_0xb3e9('0x2d')][_0xb3e9('0x35')]);_0x72c813['where']=qs[_0xb3e9('0x36')](_['pick'](_0x238f9c['query'],_0x2227c8[_0xb3e9('0x36')]));if(_0x238f9c[_0xb3e9('0x2d')]['filter']){_0x72c813['where']=_['merge'](_0x72c813['where'],{'$or':_[_0xb3e9('0x27')](_0x72c813[_0xb3e9('0x30')],function(_0x41bc3b){var _0x299730={};_0x299730[_0x41bc3b]={'$like':'%'+_0x238f9c[_0xb3e9('0x2d')][_0xb3e9('0x3a')]+'%'};return _0x299730;})});}_0x72c813=_[_0xb3e9('0x39')]({},_0x72c813,_0x238f9c[_0xb3e9('0x3b')]);return _0x1ce84c['getConfigurations'](_0x72c813);}})['then'](function(_0x39bef2){if(_0x39bef2){_0x471706=_0x39bef2[_0xb3e9('0x32')];if(!_0x238f9c[_0xb3e9('0x2d')][_0xb3e9('0x33')](_0xb3e9('0x4a'))){_0x72c813[_0xb3e9('0x34')]=qs['limit'](_0x238f9c[_0xb3e9('0x2d')][_0xb3e9('0x34')]);_0x72c813[_0xb3e9('0x1a')]=qs['offset'](_0x238f9c[_0xb3e9('0x2d')][_0xb3e9('0x1a')]);}return _0x1ce84c[_0xb3e9('0x4b')](_0x72c813);}})['then'](function(_0x403826){if(_0x403826){return _0x403826?{'count':_0x471706,'rows':_0x403826}:null;}})[_0xb3e9('0x3d')](respondWithResult(_0x572a10,null))[_0xb3e9('0x45')](handleError(_0x572a10,null));};exports[_0xb3e9('0x4c')]=function(_0x5f37f2,_0x2e287a,_0x3fd1d6){if(_0x5f37f2[_0xb3e9('0x48')]['id']){delete _0x5f37f2[_0xb3e9('0x48')]['id'];}return db[_0xb3e9('0x3c')][_0xb3e9('0x4d')]({'where':{'id':_0x5f37f2[_0xb3e9('0x43')]['id']}})[_0xb3e9('0x3d')](handleEntityNotFound(_0x2e287a,null))[_0xb3e9('0x3d')](function(_0x54766f){if(_0x54766f){_0x5f37f2[_0xb3e9('0x48')][_0xb3e9('0x4e')]=_0x54766f['id'];_0x5f37f2[_0xb3e9('0x48')][_0xb3e9('0x4f')]=integrations['getSubjects'](_0x5f37f2[_0xb3e9('0x48')][_0xb3e9('0x50')],_0x5f37f2['body'][_0xb3e9('0x2a')]);_0x5f37f2[_0xb3e9('0x48')][_0xb3e9('0x51')]=integrations[_0xb3e9('0x52')](_0x5f37f2[_0xb3e9('0x48')]['channel'],_0x5f37f2['body'][_0xb3e9('0x2a')]);return db[_0xb3e9('0x53')]['create'](_0x5f37f2['body'],{'include':[{'model':db[_0xb3e9('0x54')],'as':_0xb3e9('0x4f')},{'model':db[_0xb3e9('0x54')],'as':_0xb3e9('0x51')}]});}return null;})[_0xb3e9('0x3d')](respondWithResult(_0x2e287a,null))['catch'](handleError(_0x2e287a,null));};exports[_0xb3e9('0x55')]=function(_0x7dc632,_0x360380,_0x1b37a8){var _0x415a63;var _0x2650b4='';var _0x3e6999='Task';return db[_0xb3e9('0x3c')]['findOne']({'where':{'id':_0x7dc632[_0xb3e9('0x43')]['id']},'attributes':['id',_0xb3e9('0x56'),_0xb3e9('0x57'),_0xb3e9('0x58'),_0xb3e9('0x59'),_0xb3e9('0x5a'),_0xb3e9('0x5b')]})[_0xb3e9('0x3d')](handleEntityNotFound(_0x360380,null))['then'](function(_0x45769c){if(_0x45769c){_0x2650b4=_0x45769c['remoteUri'];var _0x3de0fe=_0x2650b4['slice'](-0x1);if(_0x3de0fe==='/'){_0x2650b4=_0x2650b4[_0xb3e9('0x5c')](0x0,_0x2650b4['lastIndexOf'](_0x3de0fe));}_0x415a63=new jsforce['Connection']({'oauth2':{'loginUrl':_0x2650b4,'clientId':_0x45769c[_0xb3e9('0x57')],'clientSecret':_0x45769c['clientSecret']}});return _0x415a63[_0xb3e9('0x5d')](_0x45769c[_0xb3e9('0x59')],_0x45769c[_0xb3e9('0x5a')]['concat'](_0x45769c['securityToken']));}})[_0xb3e9('0x3d')](function(_0x2f22d0){if(_0x2f22d0){if(!_[_0xb3e9('0x5e')](_0x7dc632[_0xb3e9('0x2d')][_0xb3e9('0x5f')])){_0x3e6999=_0x7dc632['query']['ticketType'];}return _0x415a63[_0xb3e9('0x60')](_0x3e6999)[_0xb3e9('0x61')]();}})[_0xb3e9('0x3d')](function(_0x314ec6){var _0x42bf6a=[_0xb3e9('0x62'),_0xb3e9('0x63'),_0xb3e9('0x64'),_0xb3e9('0x65'),_0xb3e9('0x66'),_0xb3e9('0x67')];var _0x2b9e82=[_0xb3e9('0x68'),'int',_0xb3e9('0x69'),_0xb3e9('0x6a'),_0xb3e9('0x6b'),_0xb3e9('0x6c'),_0xb3e9('0x6d')];if(_0x314ec6){_[_0xb3e9('0x6e')](_0x314ec6[_0xb3e9('0x31')],function(_0x3d6e63){return _0x42bf6a[_0xb3e9('0x6f')](_0x3d6e63['name'])||!_0x2b9e82[_0xb3e9('0x6f')](_0x3d6e63[_0xb3e9('0x2a')]);});return{'count':_0x314ec6[_0xb3e9('0x31')][_0xb3e9('0x32')],'rows':_[_0xb3e9('0x27')](_0x314ec6['fields'],function(_0x10ba41){return{'id':_0x10ba41['name'],'name':_0x10ba41[_0xb3e9('0x70')],'custom':_0x10ba41[_0xb3e9('0x71')],'options':_0x10ba41[_0xb3e9('0x72')][_0xb3e9('0x32')]>0x0?_[_0xb3e9('0x27')](_0x10ba41['picklistValues'],function(_0x2aab22){return{'name':_0x2aab22['label'],'value':_0x2aab22['value']};}):_0x10ba41[_0xb3e9('0x2a')]==_0xb3e9('0x6a')?[{'name':_0xb3e9('0x73'),'value':_0xb3e9('0x74')},{'name':_0xb3e9('0x75'),'value':_0xb3e9('0x76')}]:[]};})};}})[_0xb3e9('0x3d')](respondWithResult(_0x360380,null))[_0xb3e9('0x45')](function(_0xa9e3f1){var _0x55f37e=_0x7dc632['query'][_0xb3e9('0x77')]?0x1f4:_0xa9e3f1[_0xb3e9('0x78')]||0x1f4;logger[_0xb3e9('0x79')](_0xb3e9('0x7a'),'getFields',_0x55f37e,JSON[_0xb3e9('0x7b')](_0xa9e3f1));delete _0xa9e3f1['name'];if(_0x55f37e===0x191){_0x55f37e=0x190;}_0x360380[_0xb3e9('0x18')](_0x55f37e)['send'](_0x7dc632[_0xb3e9('0x2d')][_0xb3e9('0x77')]?{'message':_0xb3e9('0x7c'),'statusCode':_0xa9e3f1[_0xb3e9('0x78')]}:_0xa9e3f1);});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0391=['api','bluebird','request-promise','path','rimraf','../../config/environment','./intSalesforceAccount.attributes','../../components/integrations/configuration','exports','int_salesforce_accounts','lodash','util','../../config/logger'];(function(_0x53eff7,_0x1c08f8){var _0x320cd4=function(_0x3f1059){while(--_0x3f1059){_0x53eff7['push'](_0x53eff7['shift']());}};_0x320cd4(++_0x1c08f8);}(_0x0391,0x135));var _0x1039=function(_0x56036c,_0x566063){_0x56036c=_0x56036c-0x0;var _0x19db27=_0x0391[_0x56036c];return _0x19db27;};'use strict';var _=require(_0x1039('0x0'));var util=require(_0x1039('0x1'));var logger=require(_0x1039('0x2'))(_0x1039('0x3'));var moment=require('moment');var BPromise=require(_0x1039('0x4'));var rp=require(_0x1039('0x5'));var fs=require('fs');var path=require(_0x1039('0x6'));var rimraf=require(_0x1039('0x7'));var config=require(_0x1039('0x8'));var attributes=require(_0x1039('0x9'));var integrations=require(_0x1039('0xa'));module[_0x1039('0xb')]=function(_0x1d0582,_0x5d8f73){return _0x1d0582['define']('SalesforceAccount',attributes,{'tableName':_0x1039('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x637f=['moment','bluebird','request-promise','../../components/integrations/configuration','exports','define','SalesforceAccount','int_salesforce_accounts','../../config/logger'];(function(_0x25f139,_0x6b4cd7){var _0x3fb472=function(_0x2cfd43){while(--_0x2cfd43){_0x25f139['push'](_0x25f139['shift']());}};_0x3fb472(++_0x6b4cd7);}(_0x637f,0x1af));var _0xf637=function(_0x9aaca8,_0x222c1a){_0x9aaca8=_0x9aaca8-0x0;var _0x1a77bd=_0x637f[_0x9aaca8];return _0x1a77bd;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0xf637('0x0'))('api');var moment=require(_0xf637('0x1'));var BPromise=require(_0xf637('0x2'));var rp=require(_0xf637('0x3'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require('./intSalesforceAccount.attributes');var integrations=require(_0xf637('0x4'));module[_0xf637('0x5')]=function(_0x5dfd64,_0x51d010){return _0x5dfd64[_0xf637('0x6')](_0xf637('0x7'),attributes,{'tableName':_0xf637('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4a30=['message','result','GetSalesforceAccount','SalesforceAccount','options','raw','where','limit','include','map','model','attributes','then','debug','catch','ShowSalesforceAccount','find','lodash','util','moment','bluebird','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','http','request','info','request\x20sent','SalesforceAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','SalesforceAccount,\x20%s,\x20%s'];(function(_0x4a83b0,_0x59f2c7){var _0x557c3b=function(_0x2c081a){while(--_0x2c081a){_0x4a83b0['push'](_0x4a83b0['shift']());}};_0x557c3b(++_0x59f2c7);}(_0x4a30,0x106));var _0x04a3=function(_0x7e6718,_0x1d8cf2){_0x7e6718=_0x7e6718-0x0;var _0x586673=_0x4a30[_0x7e6718];return _0x586673;};'use strict';var _=require(_0x04a3('0x0'));var util=require(_0x04a3('0x1'));var moment=require(_0x04a3('0x2'));var BPromise=require(_0x04a3('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x04a3('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x04a3('0x5'));var logger=require(_0x04a3('0x6'))(_0x04a3('0x7'));var config=require(_0x04a3('0x8'));var jayson=require('jayson/promise');var client=jayson['client'][_0x04a3('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x2b2373,_0xab1096,_0x29d8af){return new BPromise(function(_0x3e2bc0,_0x940359){return client[_0x04a3('0xa')](_0x2b2373,_0x29d8af)['then'](function(_0x142d79){logger[_0x04a3('0xb')]('SalesforceAccount,\x20%s,\x20%s',_0xab1096,_0x04a3('0xc'));logger['debug'](_0x04a3('0xd'),_0xab1096,_0x04a3('0xc'),JSON[_0x04a3('0xe')](_0x142d79));if(_0x142d79[_0x04a3('0xf')]){if(_0x142d79[_0x04a3('0xf')][_0x04a3('0x10')]===0x1f4){logger['error'](_0x04a3('0x11'),_0xab1096,_0x142d79[_0x04a3('0xf')][_0x04a3('0x12')]);return _0x940359(_0x142d79[_0x04a3('0xf')][_0x04a3('0x12')]);}logger[_0x04a3('0xf')](_0x04a3('0x11'),_0xab1096,_0x142d79[_0x04a3('0xf')][_0x04a3('0x12')]);return _0x3e2bc0(_0x142d79[_0x04a3('0xf')][_0x04a3('0x12')]);}else{logger['info'](_0x04a3('0x11'),_0xab1096,_0x04a3('0xc'));_0x3e2bc0(_0x142d79[_0x04a3('0x13')]['message']);}})['catch'](function(_0x36d2b6){logger[_0x04a3('0xf')]('SalesforceAccount,\x20%s,\x20%s',_0xab1096,_0x36d2b6);_0x940359(_0x36d2b6);});});}exports[_0x04a3('0x14')]=function(_0x3f7e22){var _0x16644e=this;return new Promise(function(_0x1e6949,_0x32d0d0){return db[_0x04a3('0x15')]['findAll']({'raw':_0x3f7e22[_0x04a3('0x16')]?_0x3f7e22[_0x04a3('0x16')][_0x04a3('0x17')]===undefined?!![]:![]:!![],'where':_0x3f7e22['options']?_0x3f7e22['options'][_0x04a3('0x18')]||null:null,'attributes':_0x3f7e22[_0x04a3('0x16')]?_0x3f7e22[_0x04a3('0x16')]['attributes']||null:null,'limit':_0x3f7e22[_0x04a3('0x16')]?_0x3f7e22['options'][_0x04a3('0x19')]||null:null,'include':_0x3f7e22['options']?_0x3f7e22[_0x04a3('0x16')][_0x04a3('0x1a')]?_[_0x04a3('0x1b')](_0x3f7e22[_0x04a3('0x16')][_0x04a3('0x1a')],function(_0x2438c1){return{'model':db[_0x2438c1[_0x04a3('0x1c')]],'as':_0x2438c1['as'],'attributes':_0x2438c1[_0x04a3('0x1d')],'include':_0x2438c1[_0x04a3('0x1a')]?_[_0x04a3('0x1b')](_0x2438c1['include'],function(_0x29c26f){return{'model':db[_0x29c26f[_0x04a3('0x1c')]],'as':_0x29c26f['as'],'attributes':_0x29c26f['attributes'],'include':_0x29c26f[_0x04a3('0x1a')]?_[_0x04a3('0x1b')](_0x29c26f[_0x04a3('0x1a')],function(_0x24df63){return{'model':db[_0x24df63['model']],'as':_0x24df63['as'],'attributes':_0x24df63[_0x04a3('0x1d')]};}):[]};}):[]};}):[]:[]})[_0x04a3('0x1e')](function(_0x4fc593){logger[_0x04a3('0xb')](_0x04a3('0x14'),_0x3f7e22);logger[_0x04a3('0x1f')]('GetSalesforceAccount',_0x3f7e22,JSON['stringify'](_0x4fc593));_0x1e6949(_0x4fc593);})[_0x04a3('0x20')](function(_0x4c836b){logger['error'](_0x04a3('0x14'),_0x4c836b[_0x04a3('0x12')],_0x3f7e22);_0x32d0d0(_0x16644e['error'](0x1f4,_0x4c836b[_0x04a3('0x12')]));});});};exports[_0x04a3('0x21')]=function(_0x159d0d){var _0x30c702=this;return new Promise(function(_0x1432d2,_0x51c27c){return db[_0x04a3('0x15')][_0x04a3('0x22')]({'raw':_0x159d0d['options']?_0x159d0d[_0x04a3('0x16')][_0x04a3('0x17')]===undefined?!![]:![]:!![],'where':_0x159d0d[_0x04a3('0x16')]?_0x159d0d[_0x04a3('0x16')][_0x04a3('0x18')]||null:null,'attributes':_0x159d0d[_0x04a3('0x16')]?_0x159d0d[_0x04a3('0x16')]['attributes']||null:null,'include':_0x159d0d[_0x04a3('0x16')]?_0x159d0d[_0x04a3('0x16')][_0x04a3('0x1a')]?_[_0x04a3('0x1b')](_0x159d0d[_0x04a3('0x16')][_0x04a3('0x1a')],function(_0x252c63){return{'model':db[_0x252c63['model']],'as':_0x252c63['as'],'attributes':_0x252c63[_0x04a3('0x1d')],'include':_0x252c63[_0x04a3('0x1a')]?_['map'](_0x252c63[_0x04a3('0x1a')],function(_0x400819){return{'model':db[_0x400819['model']],'as':_0x400819['as'],'attributes':_0x400819[_0x04a3('0x1d')],'include':_0x400819[_0x04a3('0x1a')]?_['map'](_0x400819[_0x04a3('0x1a')],function(_0x479b56){return{'model':db[_0x479b56['model']],'as':_0x479b56['as'],'attributes':_0x479b56[_0x04a3('0x1d')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x1825b6){logger[_0x04a3('0xb')]('ShowSalesforceAccount',_0x159d0d);logger[_0x04a3('0x1f')](_0x04a3('0x21'),_0x159d0d,JSON[_0x04a3('0xe')](_0x1825b6));_0x1432d2(_0x1825b6);})[_0x04a3('0x20')](function(_0xf7a2d){logger[_0x04a3('0xf')]('ShowSalesforceAccount',_0xf7a2d['message'],_0x159d0d);_0x51c27c(_0x30c702[_0x04a3('0xf')](0x1f4,_0xf7a2d[_0x04a3('0x12')]));});});};
\ No newline at end of file
+var _0x2a65=['../../config/logger','rpc','../../config/environment','jayson/promise','http','request','then','info','SalesforceAccount,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','catch','findAll','options','raw','where','attributes','limit','include','map','model','GetSalesforceAccount','ShowSalesforceAccount','SalesforceAccount','find','lodash','moment','bluebird','ioredis','../../mysqldb','../../config/utils'];(function(_0x4fee95,_0x104e7e){var _0x398c55=function(_0x2c13e0){while(--_0x2c13e0){_0x4fee95['push'](_0x4fee95['shift']());}};_0x398c55(++_0x104e7e);}(_0x2a65,0x135));var _0x52a6=function(_0x46f7fe,_0x40ecd3){_0x46f7fe=_0x46f7fe-0x0;var _0x276f00=_0x2a65[_0x46f7fe];return _0x276f00;};'use strict';var _=require(_0x52a6('0x0'));var util=require('util');var moment=require(_0x52a6('0x1'));var BPromise=require(_0x52a6('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x52a6('0x3'));var db=require(_0x52a6('0x4'))['db'];var utils=require(_0x52a6('0x5'));var logger=require(_0x52a6('0x6'))(_0x52a6('0x7'));var config=require(_0x52a6('0x8'));var jayson=require(_0x52a6('0x9'));var client=jayson['client'][_0x52a6('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x462de2,_0x28030f,_0x4d5de1){return new BPromise(function(_0x32ca21,_0x41e166){return client[_0x52a6('0xb')](_0x462de2,_0x4d5de1)[_0x52a6('0xc')](function(_0x479330){logger[_0x52a6('0xd')](_0x52a6('0xe'),_0x28030f,_0x52a6('0xf'));logger[_0x52a6('0x10')]('SalesforceAccount,\x20%s,\x20%s,\x20%s',_0x28030f,_0x52a6('0xf'),JSON[_0x52a6('0x11')](_0x479330));if(_0x479330[_0x52a6('0x12')]){if(_0x479330[_0x52a6('0x12')][_0x52a6('0x13')]===0x1f4){logger[_0x52a6('0x12')](_0x52a6('0xe'),_0x28030f,_0x479330['error']['message']);return _0x41e166(_0x479330[_0x52a6('0x12')][_0x52a6('0x14')]);}logger[_0x52a6('0x12')]('SalesforceAccount,\x20%s,\x20%s',_0x28030f,_0x479330[_0x52a6('0x12')][_0x52a6('0x14')]);return _0x32ca21(_0x479330[_0x52a6('0x12')]['message']);}else{logger[_0x52a6('0xd')](_0x52a6('0xe'),_0x28030f,_0x52a6('0xf'));_0x32ca21(_0x479330['result'][_0x52a6('0x14')]);}})[_0x52a6('0x15')](function(_0x487116){logger['error'](_0x52a6('0xe'),_0x28030f,_0x487116);_0x41e166(_0x487116);});});}exports['GetSalesforceAccount']=function(_0x236a60){var _0xc2410a=this;return new Promise(function(_0x4f5cb1,_0x193b88){return db['SalesforceAccount'][_0x52a6('0x16')]({'raw':_0x236a60['options']?_0x236a60[_0x52a6('0x17')][_0x52a6('0x18')]===undefined?!![]:![]:!![],'where':_0x236a60['options']?_0x236a60[_0x52a6('0x17')][_0x52a6('0x19')]||null:null,'attributes':_0x236a60[_0x52a6('0x17')]?_0x236a60[_0x52a6('0x17')][_0x52a6('0x1a')]||null:null,'limit':_0x236a60[_0x52a6('0x17')]?_0x236a60[_0x52a6('0x17')][_0x52a6('0x1b')]||null:null,'include':_0x236a60[_0x52a6('0x17')]?_0x236a60[_0x52a6('0x17')][_0x52a6('0x1c')]?_['map'](_0x236a60[_0x52a6('0x17')][_0x52a6('0x1c')],function(_0x212d48){return{'model':db[_0x212d48['model']],'as':_0x212d48['as'],'attributes':_0x212d48['attributes'],'include':_0x212d48['include']?_[_0x52a6('0x1d')](_0x212d48['include'],function(_0x29c4bf){return{'model':db[_0x29c4bf[_0x52a6('0x1e')]],'as':_0x29c4bf['as'],'attributes':_0x29c4bf[_0x52a6('0x1a')],'include':_0x29c4bf[_0x52a6('0x1c')]?_[_0x52a6('0x1d')](_0x29c4bf[_0x52a6('0x1c')],function(_0x3147ed){return{'model':db[_0x3147ed[_0x52a6('0x1e')]],'as':_0x3147ed['as'],'attributes':_0x3147ed['attributes']};}):[]};}):[]};}):[]:[]})[_0x52a6('0xc')](function(_0x4b1465){logger[_0x52a6('0xd')](_0x52a6('0x1f'),_0x236a60);logger[_0x52a6('0x10')](_0x52a6('0x1f'),_0x236a60,JSON[_0x52a6('0x11')](_0x4b1465));_0x4f5cb1(_0x4b1465);})[_0x52a6('0x15')](function(_0x5e1366){logger[_0x52a6('0x12')](_0x52a6('0x1f'),_0x5e1366[_0x52a6('0x14')],_0x236a60);_0x193b88(_0xc2410a[_0x52a6('0x12')](0x1f4,_0x5e1366['message']));});});};exports[_0x52a6('0x20')]=function(_0x13720f){var _0x2479ea=this;return new Promise(function(_0x2c42d2,_0x473328){return db[_0x52a6('0x21')][_0x52a6('0x22')]({'raw':_0x13720f['options']?_0x13720f[_0x52a6('0x17')]['raw']===undefined?!![]:![]:!![],'where':_0x13720f['options']?_0x13720f['options'][_0x52a6('0x19')]||null:null,'attributes':_0x13720f['options']?_0x13720f[_0x52a6('0x17')][_0x52a6('0x1a')]||null:null,'include':_0x13720f[_0x52a6('0x17')]?_0x13720f[_0x52a6('0x17')][_0x52a6('0x1c')]?_[_0x52a6('0x1d')](_0x13720f[_0x52a6('0x17')]['include'],function(_0x363985){return{'model':db[_0x363985['model']],'as':_0x363985['as'],'attributes':_0x363985[_0x52a6('0x1a')],'include':_0x363985[_0x52a6('0x1c')]?_[_0x52a6('0x1d')](_0x363985[_0x52a6('0x1c')],function(_0x27e8b7){return{'model':db[_0x27e8b7[_0x52a6('0x1e')]],'as':_0x27e8b7['as'],'attributes':_0x27e8b7[_0x52a6('0x1a')],'include':_0x27e8b7[_0x52a6('0x1c')]?_[_0x52a6('0x1d')](_0x27e8b7[_0x52a6('0x1c')],function(_0x24f1ba){return{'model':db[_0x24f1ba[_0x52a6('0x1e')]],'as':_0x24f1ba['as'],'attributes':_0x24f1ba[_0x52a6('0x1a')]};}):[]};}):[]};}):[]:[]})[_0x52a6('0xc')](function(_0x5ec5fe){logger[_0x52a6('0xd')](_0x52a6('0x20'),_0x13720f);logger[_0x52a6('0x10')](_0x52a6('0x20'),_0x13720f,JSON[_0x52a6('0x11')](_0x5ec5fe));_0x2c42d2(_0x5ec5fe);})[_0x52a6('0x15')](function(_0xb7b56){logger['error'](_0x52a6('0x20'),_0xb7b56[_0x52a6('0x14')],_0x13720f);_0x473328(_0x2479ea[_0x52a6('0x12')](0x1f4,_0xb7b56['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xadb5=['Router','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','/:id','show','/:id/fields','getFields','/:id/subjects','/:id/descriptions','getDescriptions','put','update','delete','destroy','exports','util','connect-timeout','express'];(function(_0x33f6eb,_0x2fa309){var _0x2d1e31=function(_0x27e755){while(--_0x27e755){_0x33f6eb['push'](_0x33f6eb['shift']());}};_0x2d1e31(++_0x2fa309);}(_0xadb5,0xad));var _0x5adb=function(_0x44e2d3,_0x477dac){_0x44e2d3=_0x44e2d3-0x0;var _0x551016=_0xadb5[_0x44e2d3];return _0x551016;};'use strict';var multer=require('multer');var util=require(_0x5adb('0x0'));var path=require('path');var timeout=require(_0x5adb('0x1'));var express=require(_0x5adb('0x2'));var router=express[_0x5adb('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x5adb('0x4'));var interaction=require(_0x5adb('0x5'));var config=require(_0x5adb('0x6'));var controller=require('./intSalesforceConfiguration.controller');router[_0x5adb('0x7')]('/',auth[_0x5adb('0x8')](),controller[_0x5adb('0x9')]);router[_0x5adb('0x7')](_0x5adb('0xa'),auth[_0x5adb('0x8')](),controller[_0x5adb('0xb')]);router[_0x5adb('0x7')](_0x5adb('0xc'),auth[_0x5adb('0x8')](),controller[_0x5adb('0xd')]);router[_0x5adb('0x7')](_0x5adb('0xe'),auth[_0x5adb('0x8')](),controller['getSubjects']);router['get'](_0x5adb('0xf'),auth[_0x5adb('0x8')](),controller[_0x5adb('0x10')]);router['post']('/',auth[_0x5adb('0x8')](),controller['create']);router[_0x5adb('0x11')]('/:id',auth[_0x5adb('0x8')](),controller[_0x5adb('0x12')]);router[_0x5adb('0x13')]('/:id',auth[_0x5adb('0x8')](),controller[_0x5adb('0x14')]);module[_0x5adb('0x15')]=router;
\ No newline at end of file
+var _0x5f66=['express','Router','fs-extra','../../components/auth/service','../../config/environment','get','isAuthenticated','/:id','show','/:id/fields','/:id/subjects','getSubjects','put','update','delete','destroy','exports','util','connect-timeout'];(function(_0x469040,_0x1e6d89){var _0x45d9b3=function(_0x36147c){while(--_0x36147c){_0x469040['push'](_0x469040['shift']());}};_0x45d9b3(++_0x1e6d89);}(_0x5f66,0x1a0));var _0x65f6=function(_0x278e3c,_0x1c9cfd){_0x278e3c=_0x278e3c-0x0;var _0x3e2d9b=_0x5f66[_0x278e3c];return _0x3e2d9b;};'use strict';var multer=require('multer');var util=require(_0x65f6('0x0'));var path=require('path');var timeout=require(_0x65f6('0x1'));var express=require(_0x65f6('0x2'));var router=express[_0x65f6('0x3')]();var fs_extra=require(_0x65f6('0x4'));var auth=require(_0x65f6('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0x65f6('0x6'));var controller=require('./intSalesforceConfiguration.controller');router[_0x65f6('0x7')]('/',auth[_0x65f6('0x8')](),controller['index']);router['get'](_0x65f6('0x9'),auth[_0x65f6('0x8')](),controller[_0x65f6('0xa')]);router[_0x65f6('0x7')](_0x65f6('0xb'),auth[_0x65f6('0x8')](),controller['getFields']);router['get'](_0x65f6('0xc'),auth[_0x65f6('0x8')](),controller[_0x65f6('0xd')]);router[_0x65f6('0x7')]('/:id/descriptions',auth[_0x65f6('0x8')](),controller['getDescriptions']);router['post']('/',auth[_0x65f6('0x8')](),controller['create']);router[_0x65f6('0xe')]('/:id',auth[_0x65f6('0x8')](),controller[_0x65f6('0xf')]);router[_0x65f6('0x10')](_0x65f6('0x9'),auth[_0x65f6('0x8')](),controller[_0x65f6('0x11')]);module[_0x65f6('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa0d9=['Task','contact_lead','contact','account_contact_lead','account','ENUM','nothing','lead','sequelize','exports','STRING'];(function(_0x48c898,_0x2cb7b0){var _0x7e35b2=function(_0x31b8ae){while(--_0x31b8ae){_0x48c898['push'](_0x48c898['shift']());}};_0x7e35b2(++_0x2cb7b0);}(_0xa0d9,0x19f));var _0x9a0d=function(_0x27bcf5,_0x236765){_0x27bcf5=_0x27bcf5-0x0;var _0x4ce4cf=_0xa0d9[_0x27bcf5];return _0x4ce4cf;};'use strict';var Sequelize=require(_0x9a0d('0x0'));module[_0x9a0d('0x1')]={'name':{'type':Sequelize[_0x9a0d('0x2')]},'description':{'type':Sequelize[_0x9a0d('0x2')]},'ticketType':{'type':Sequelize['ENUM'](_0x9a0d('0x3'),'Case'),'defaultValue':_0x9a0d('0x3')},'moduleSearch':{'type':Sequelize['ENUM'](_0x9a0d('0x4'),_0x9a0d('0x5'),'lead',_0x9a0d('0x6'),_0x9a0d('0x7')),'defaultValue':_0x9a0d('0x4')},'moduleCreate':{'type':Sequelize[_0x9a0d('0x8')](_0x9a0d('0x9'),_0x9a0d('0x5'),_0x9a0d('0xa'),'account'),'defaultValue':_0x9a0d('0xa')},'leadId':{'type':Sequelize['STRING']},'additionalSearchAccount':{'type':Sequelize['STRING']},'additionalSearchContact':{'type':Sequelize[_0x9a0d('0x2')]},'additionalSearchLead':{'type':Sequelize[_0x9a0d('0x2')]}};
\ No newline at end of file
+var _0x2379=['STRING','ENUM','Task','Case','contact_lead','contact','lead','account_contact_lead','account','nothing'];(function(_0x1cbde6,_0x2ec0ec){var _0x2def05=function(_0x4d9e6a){while(--_0x4d9e6a){_0x1cbde6['push'](_0x1cbde6['shift']());}};_0x2def05(++_0x2ec0ec);}(_0x2379,0x82));var _0x9237=function(_0x1984d9,_0x40d968){_0x1984d9=_0x1984d9-0x0;var _0x8d3ea7=_0x2379[_0x1984d9];return _0x8d3ea7;};'use strict';var Sequelize=require('sequelize');module['exports']={'name':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0x9237('0x0')]},'ticketType':{'type':Sequelize[_0x9237('0x1')](_0x9237('0x2'),_0x9237('0x3')),'defaultValue':_0x9237('0x2')},'moduleSearch':{'type':Sequelize[_0x9237('0x1')](_0x9237('0x4'),_0x9237('0x5'),_0x9237('0x6'),_0x9237('0x7'),_0x9237('0x8')),'defaultValue':'contact_lead'},'moduleCreate':{'type':Sequelize['ENUM'](_0x9237('0x9'),_0x9237('0x5'),_0x9237('0x6'),_0x9237('0x8')),'defaultValue':_0x9237('0x6')},'leadId':{'type':Sequelize[_0x9237('0x0')]},'additionalSearchAccount':{'type':Sequelize[_0x9237('0x0')]},'additionalSearchContact':{'type':Sequelize['STRING']},'additionalSearchLead':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x50f0=['length','hasOwnProperty','nolimit','sort','where','pick','filter','VIRTUAL','merge','options','findAll','show','includeAll','include','create','catch','body','find','params','destroy','getFields','findOne','SalesforceField','order','getSubjects','getDescriptions','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','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','../../mysqldb','sendStatus','status','end','json','offset','limit','undefined','count','set','apply','reject','save','update','then','stack','name','send','index','map','SalesforceConfiguration','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields'];(function(_0x39ded1,_0xaee436){var _0x2e248e=function(_0x193df3){while(--_0x193df3){_0x39ded1['push'](_0x39ded1['shift']());}};_0x2e248e(++_0xaee436);}(_0x50f0,0x6b));var _0x050f=function(_0x12a554,_0x3d7ef8){_0x12a554=_0x12a554-0x0;var _0x244ba0=_0x50f0[_0x12a554];return _0x244ba0;};'use strict';var emlformat=require(_0x050f('0x0'));var rimraf=require(_0x050f('0x1'));var zipdir=require(_0x050f('0x2'));var jsonpatch=require(_0x050f('0x3'));var rp=require('request-promise');var moment=require(_0x050f('0x4'));var BPromise=require(_0x050f('0x5'));var Mustache=require(_0x050f('0x6'));var util=require(_0x050f('0x7'));var path=require(_0x050f('0x8'));var sox=require('sox');var csv=require(_0x050f('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x050f('0xa'));var _=require(_0x050f('0xb'));var squel=require(_0x050f('0xc'));var crypto=require(_0x050f('0xd'));var jsforce=require(_0x050f('0xe'));var deskjs=require('desk.js');var toCsv=require(_0x050f('0x9'));var querystring=require('querystring');var Papa=require(_0x050f('0xf'));var Redis=require(_0x050f('0x10'));var authService=require('../../components/auth/service');var qs=require(_0x050f('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x050f('0x12'));var logger=require(_0x050f('0x13'))('api');var utils=require(_0x050f('0x14'));var config=require(_0x050f('0x15'));var licenseUtil=require(_0x050f('0x16'));var db=require(_0x050f('0x17'))['db'];function respondWithStatusCode(_0x2dedee,_0x228c58){_0x228c58=_0x228c58||0xcc;return function(_0x42bef3){if(_0x42bef3){return _0x2dedee[_0x050f('0x18')](_0x228c58);}return _0x2dedee[_0x050f('0x19')](_0x228c58)[_0x050f('0x1a')]();};}function respondWithResult(_0x215926,_0x45dc6d){_0x45dc6d=_0x45dc6d||0xc8;return function(_0x1f1d01){if(_0x1f1d01){return _0x215926[_0x050f('0x19')](_0x45dc6d)[_0x050f('0x1b')](_0x1f1d01);}};}function respondWithFilteredResult(_0x3ea202,_0xd8154b){return function(_0x4d2a30){if(_0x4d2a30){var _0xbc4315=typeof _0xd8154b[_0x050f('0x1c')]==='undefined'&&typeof _0xd8154b[_0x050f('0x1d')]===_0x050f('0x1e');var _0x3844bd=_0x4d2a30[_0x050f('0x1f')];var _0x236df5=_0xbc4315?0x0:_0xd8154b[_0x050f('0x1c')];var _0x614be6=_0xbc4315?_0x4d2a30[_0x050f('0x1f')]:_0xd8154b[_0x050f('0x1c')]+_0xd8154b[_0x050f('0x1d')];var _0x1b52f5;if(_0x614be6>=_0x3844bd){_0x614be6=_0x3844bd;_0x1b52f5=0xc8;}else{_0x1b52f5=0xce;}_0x3ea202['status'](_0x1b52f5);return _0x3ea202[_0x050f('0x20')]('Content-Range',_0x236df5+'-'+_0x614be6+'/'+_0x3844bd)[_0x050f('0x1b')](_0x4d2a30);}return null;};}function patchUpdates(_0x5b41e7){return function(_0x4fbc7f){try{jsonpatch[_0x050f('0x21')](_0x4fbc7f,_0x5b41e7,!![]);}catch(_0x48a417){return BPromise[_0x050f('0x22')](_0x48a417);}return _0x4fbc7f[_0x050f('0x23')]();};}function saveUpdates(_0x420cae,_0x1e836d){return function(_0x3fc160){if(_0x3fc160){return _0x3fc160[_0x050f('0x24')](_0x420cae)[_0x050f('0x25')](function(_0x20cb31){return _0x20cb31;});}return null;};}function removeEntity(_0x2f20a5,_0x3cdb86){return function(_0x55a20c){if(_0x55a20c){return _0x55a20c['destroy']()[_0x050f('0x25')](function(){_0x2f20a5[_0x050f('0x19')](0xcc)[_0x050f('0x1a')]();});}};}function handleEntityNotFound(_0x5f14a2,_0x4e9163){return function(_0xe9dac1){if(!_0xe9dac1){_0x5f14a2['sendStatus'](0x194);}return _0xe9dac1;};}function handleError(_0x2dbc96,_0x446e03){_0x446e03=_0x446e03||0x1f4;return function(_0x5932e2){logger['error'](_0x5932e2[_0x050f('0x26')]);if(_0x5932e2[_0x050f('0x27')]){delete _0x5932e2[_0x050f('0x27')];}_0x2dbc96[_0x050f('0x19')](_0x446e03)[_0x050f('0x28')](_0x5932e2);};}exports[_0x050f('0x29')]=function(_0x353e44,_0x2ab5b8){var _0x4c9dc1={},_0x2a7970={},_0x42a96f={'count':0x0,'rows':[]};var _0xc22707=_[_0x050f('0x2a')](db[_0x050f('0x2b')][_0x050f('0x2c')],function(_0x214b71){return{'name':_0x214b71[_0x050f('0x2d')],'type':_0x214b71[_0x050f('0x2e')][_0x050f('0x2f')]};});_0x2a7970[_0x050f('0x30')]=_[_0x050f('0x2a')](_0xc22707,_0x050f('0x27'));_0x2a7970[_0x050f('0x31')]=_[_0x050f('0x32')](_0x353e44['query']);_0x2a7970[_0x050f('0x33')]=_[_0x050f('0x34')](_0x2a7970[_0x050f('0x30')],_0x2a7970[_0x050f('0x31')]);_0x4c9dc1[_0x050f('0x35')]=_[_0x050f('0x34')](_0x2a7970[_0x050f('0x30')],qs[_0x050f('0x36')](_0x353e44[_0x050f('0x31')][_0x050f('0x36')]));_0x4c9dc1[_0x050f('0x35')]=_0x4c9dc1[_0x050f('0x35')][_0x050f('0x37')]?_0x4c9dc1[_0x050f('0x35')]:_0x2a7970[_0x050f('0x30')];if(!_0x353e44[_0x050f('0x31')][_0x050f('0x38')](_0x050f('0x39'))){_0x4c9dc1[_0x050f('0x1d')]=qs[_0x050f('0x1d')](_0x353e44[_0x050f('0x31')][_0x050f('0x1d')]);_0x4c9dc1[_0x050f('0x1c')]=qs[_0x050f('0x1c')](_0x353e44['query'][_0x050f('0x1c')]);}_0x4c9dc1['order']=qs[_0x050f('0x3a')](_0x353e44[_0x050f('0x31')][_0x050f('0x3a')]);_0x4c9dc1[_0x050f('0x3b')]=qs[_0x050f('0x33')](_[_0x050f('0x3c')](_0x353e44[_0x050f('0x31')],_0x2a7970[_0x050f('0x33')]),_0xc22707);if(_0x353e44['query'][_0x050f('0x3d')]){_0x4c9dc1[_0x050f('0x3b')]=_['merge'](_0x4c9dc1[_0x050f('0x3b')],{'$or':_['map'](_0xc22707,function(_0x32b134){if(_0x32b134[_0x050f('0x2e')]!==_0x050f('0x3e')){var _0x4ee3b4={};_0x4ee3b4[_0x32b134[_0x050f('0x27')]]={'$like':'%'+_0x353e44['query'][_0x050f('0x3d')]+'%'};return _0x4ee3b4;}})});}_0x4c9dc1=_[_0x050f('0x3f')]({},_0x4c9dc1,_0x353e44[_0x050f('0x40')]);var _0x5060e0={'where':_0x4c9dc1[_0x050f('0x3b')]};return db[_0x050f('0x2b')][_0x050f('0x1f')](_0x5060e0)[_0x050f('0x25')](function(_0x220069){_0x42a96f[_0x050f('0x1f')]=_0x220069;if(_0x353e44['query']['includeAll']){_0x4c9dc1['include']=[{'all':!![]}];}return db['SalesforceConfiguration'][_0x050f('0x41')](_0x4c9dc1);})[_0x050f('0x25')](function(_0x1b6d8e){_0x42a96f['rows']=_0x1b6d8e;return _0x42a96f;})['then'](respondWithFilteredResult(_0x2ab5b8,_0x4c9dc1))['catch'](handleError(_0x2ab5b8,null));};exports[_0x050f('0x42')]=function(_0x1cc14d,_0x5a4475){var _0x1e4d79={'raw':![],'where':{'id':_0x1cc14d['params']['id']}},_0x21dccf={};_0x21dccf[_0x050f('0x30')]=_['keys'](db[_0x050f('0x2b')][_0x050f('0x2c')]);_0x21dccf['query']=_[_0x050f('0x32')](_0x1cc14d[_0x050f('0x31')]);_0x21dccf[_0x050f('0x33')]=_[_0x050f('0x34')](_0x21dccf['model'],_0x21dccf[_0x050f('0x31')]);_0x1e4d79['attributes']=_[_0x050f('0x34')](_0x21dccf[_0x050f('0x30')],qs[_0x050f('0x36')](_0x1cc14d['query'][_0x050f('0x36')]));_0x1e4d79[_0x050f('0x35')]=_0x1e4d79[_0x050f('0x35')][_0x050f('0x37')]?_0x1e4d79[_0x050f('0x35')]:_0x21dccf[_0x050f('0x30')];if(_0x1cc14d[_0x050f('0x31')][_0x050f('0x43')]){_0x1e4d79[_0x050f('0x44')]=[{'all':!![]}];}_0x1e4d79=_[_0x050f('0x3f')]({},_0x1e4d79,_0x1cc14d['options']);return db[_0x050f('0x2b')]['find'](_0x1e4d79)[_0x050f('0x25')](handleEntityNotFound(_0x5a4475,null))[_0x050f('0x25')](respondWithResult(_0x5a4475,null))['catch'](handleError(_0x5a4475,null));};exports[_0x050f('0x45')]=function(_0x1eeed6,_0x6227fc){return db['SalesforceConfiguration'][_0x050f('0x45')](_0x1eeed6['body'],{})[_0x050f('0x25')](respondWithResult(_0x6227fc,0xc9))[_0x050f('0x46')](handleError(_0x6227fc,null));};exports['update']=function(_0x31cd8f,_0x2b2eb3){if(_0x31cd8f[_0x050f('0x47')]['id']){delete _0x31cd8f['body']['id'];}return db['SalesforceConfiguration'][_0x050f('0x48')]({'where':{'id':_0x31cd8f[_0x050f('0x49')]['id']}})['then'](handleEntityNotFound(_0x2b2eb3,null))['then'](saveUpdates(_0x31cd8f['body'],null))[_0x050f('0x25')](respondWithResult(_0x2b2eb3,null))[_0x050f('0x46')](handleError(_0x2b2eb3,null));};exports[_0x050f('0x4a')]=function(_0x266fcf,_0x506047){return db['SalesforceConfiguration'][_0x050f('0x48')]({'where':{'id':_0x266fcf['params']['id']}})[_0x050f('0x25')](handleEntityNotFound(_0x506047,null))[_0x050f('0x25')](removeEntity(_0x506047,null))[_0x050f('0x46')](handleError(_0x506047,null));};exports[_0x050f('0x4b')]=function(_0x152c84,_0x2471c7,_0x4e8925){var _0xc6c7d={};var _0x1648c9={};var _0x28ecc7;var _0x3de20d;return db[_0x050f('0x2b')][_0x050f('0x4c')]({'where':{'id':_0x152c84[_0x050f('0x49')]['id']}})[_0x050f('0x25')](handleEntityNotFound(_0x2471c7,null))['then'](function(_0x1ebd1e){if(_0x1ebd1e){_0x28ecc7=_0x1ebd1e;_0x1648c9['model']=_[_0x050f('0x32')](db[_0x050f('0x4d')][_0x050f('0x2c')]);_0x1648c9[_0x050f('0x31')]=_[_0x050f('0x32')](_0x152c84[_0x050f('0x31')]);_0x1648c9['filters']=_[_0x050f('0x34')](_0x1648c9['model'],_0x1648c9[_0x050f('0x31')]);_0xc6c7d[_0x050f('0x35')]=_[_0x050f('0x34')](_0x1648c9['model'],qs['fields'](_0x152c84[_0x050f('0x31')][_0x050f('0x36')]));_0xc6c7d[_0x050f('0x35')]=_0xc6c7d['attributes'][_0x050f('0x37')]?_0xc6c7d[_0x050f('0x35')]:_0x1648c9['model'];_0xc6c7d[_0x050f('0x4e')]=qs[_0x050f('0x3a')](_0x152c84[_0x050f('0x31')][_0x050f('0x3a')]);_0xc6c7d[_0x050f('0x3b')]=qs[_0x050f('0x33')](_[_0x050f('0x3c')](_0x152c84[_0x050f('0x31')],_0x1648c9[_0x050f('0x33')]));if(_0x152c84[_0x050f('0x31')][_0x050f('0x3d')]){_0xc6c7d[_0x050f('0x3b')]=_['merge'](_0xc6c7d[_0x050f('0x3b')],{'$or':_[_0x050f('0x2a')](_0xc6c7d[_0x050f('0x35')],function(_0x19c8b8){var _0x128b94={};_0x128b94[_0x19c8b8]={'$like':'%'+_0x152c84[_0x050f('0x31')][_0x050f('0x3d')]+'%'};return _0x128b94;})});}_0xc6c7d=_[_0x050f('0x3f')]({},_0xc6c7d,_0x152c84['options']);return _0x28ecc7[_0x050f('0x4b')](_0xc6c7d);}})[_0x050f('0x25')](function(_0x354030){if(_0x354030){_0x3de20d=_0x354030['length'];if(!_0x152c84[_0x050f('0x31')][_0x050f('0x38')](_0x050f('0x39'))){_0xc6c7d[_0x050f('0x1d')]=qs['limit'](_0x152c84[_0x050f('0x31')][_0x050f('0x1d')]);_0xc6c7d[_0x050f('0x1c')]=qs['offset'](_0x152c84[_0x050f('0x31')]['offset']);}return _0x28ecc7[_0x050f('0x4b')](_0xc6c7d);}})['then'](function(_0x580989){if(_0x580989){return _0x580989?{'count':_0x3de20d,'rows':_0x580989}:null;}})[_0x050f('0x25')](respondWithResult(_0x2471c7,null))['catch'](handleError(_0x2471c7,null));};exports[_0x050f('0x4f')]=function(_0x53fded,_0x415d8b,_0x1e0a25){var _0x41b948={};var _0x1c0451={};var _0x329714;var _0x10b8ed;return db['SalesforceConfiguration'][_0x050f('0x4c')]({'where':{'id':_0x53fded[_0x050f('0x49')]['id']}})[_0x050f('0x25')](handleEntityNotFound(_0x415d8b,null))[_0x050f('0x25')](function(_0x1fe274){if(_0x1fe274){_0x329714=_0x1fe274;_0x1c0451[_0x050f('0x30')]=_['keys'](db[_0x050f('0x4d')]['rawAttributes']);_0x1c0451[_0x050f('0x31')]=_[_0x050f('0x32')](_0x53fded[_0x050f('0x31')]);_0x1c0451['filters']=_['intersection'](_0x1c0451[_0x050f('0x30')],_0x1c0451[_0x050f('0x31')]);_0x41b948[_0x050f('0x35')]=_[_0x050f('0x34')](_0x1c0451[_0x050f('0x30')],qs[_0x050f('0x36')](_0x53fded['query'][_0x050f('0x36')]));_0x41b948[_0x050f('0x35')]=_0x41b948[_0x050f('0x35')]['length']?_0x41b948[_0x050f('0x35')]:_0x1c0451[_0x050f('0x30')];_0x41b948[_0x050f('0x4e')]=qs[_0x050f('0x3a')](_0x53fded['query'][_0x050f('0x3a')]);_0x41b948[_0x050f('0x3b')]=qs[_0x050f('0x33')](_['pick'](_0x53fded['query'],_0x1c0451['filters']));if(_0x53fded[_0x050f('0x31')][_0x050f('0x3d')]){_0x41b948[_0x050f('0x3b')]=_[_0x050f('0x3f')](_0x41b948[_0x050f('0x3b')],{'$or':_[_0x050f('0x2a')](_0x41b948['attributes'],function(_0x3aa335){var _0x46e963={};_0x46e963[_0x3aa335]={'$like':'%'+_0x53fded[_0x050f('0x31')][_0x050f('0x3d')]+'%'};return _0x46e963;})});}_0x41b948=_[_0x050f('0x3f')]({},_0x41b948,_0x53fded['options']);return _0x329714[_0x050f('0x4f')](_0x41b948);}})[_0x050f('0x25')](function(_0x25c02e){if(_0x25c02e){_0x10b8ed=_0x25c02e[_0x050f('0x37')];if(!_0x53fded['query'][_0x050f('0x38')](_0x050f('0x39'))){_0x41b948[_0x050f('0x1d')]=qs[_0x050f('0x1d')](_0x53fded[_0x050f('0x31')][_0x050f('0x1d')]);_0x41b948[_0x050f('0x1c')]=qs[_0x050f('0x1c')](_0x53fded[_0x050f('0x31')][_0x050f('0x1c')]);}return _0x329714[_0x050f('0x4f')](_0x41b948);}})['then'](function(_0x2cdeba){if(_0x2cdeba){return _0x2cdeba?{'count':_0x10b8ed,'rows':_0x2cdeba}:null;}})[_0x050f('0x25')](respondWithResult(_0x415d8b,null))['catch'](handleError(_0x415d8b,null));};exports['getDescriptions']=function(_0x2951be,_0x3e6819,_0x32e752){var _0x169e69={};var _0x8ff2e2={};var _0x37ea7c;var _0x1c9b68;return db[_0x050f('0x2b')][_0x050f('0x4c')]({'where':{'id':_0x2951be[_0x050f('0x49')]['id']}})[_0x050f('0x25')](handleEntityNotFound(_0x3e6819,null))['then'](function(_0x13e016){if(_0x13e016){_0x37ea7c=_0x13e016;_0x8ff2e2[_0x050f('0x30')]=_[_0x050f('0x32')](db[_0x050f('0x4d')][_0x050f('0x2c')]);_0x8ff2e2[_0x050f('0x31')]=_[_0x050f('0x32')](_0x2951be['query']);_0x8ff2e2[_0x050f('0x33')]=_[_0x050f('0x34')](_0x8ff2e2[_0x050f('0x30')],_0x8ff2e2[_0x050f('0x31')]);_0x169e69['attributes']=_['intersection'](_0x8ff2e2['model'],qs['fields'](_0x2951be['query'][_0x050f('0x36')]));_0x169e69['attributes']=_0x169e69[_0x050f('0x35')][_0x050f('0x37')]?_0x169e69[_0x050f('0x35')]:_0x8ff2e2[_0x050f('0x30')];_0x169e69[_0x050f('0x4e')]=qs[_0x050f('0x3a')](_0x2951be[_0x050f('0x31')][_0x050f('0x3a')]);_0x169e69[_0x050f('0x3b')]=qs['filters'](_[_0x050f('0x3c')](_0x2951be['query'],_0x8ff2e2['filters']));if(_0x2951be['query'][_0x050f('0x3d')]){_0x169e69[_0x050f('0x3b')]=_['merge'](_0x169e69[_0x050f('0x3b')],{'$or':_['map'](_0x169e69[_0x050f('0x35')],function(_0x2c4aba){var _0x13313d={};_0x13313d[_0x2c4aba]={'$like':'%'+_0x2951be['query'][_0x050f('0x3d')]+'%'};return _0x13313d;})});}_0x169e69=_[_0x050f('0x3f')]({},_0x169e69,_0x2951be['options']);return _0x37ea7c[_0x050f('0x50')](_0x169e69);}})['then'](function(_0x5bf4fd){if(_0x5bf4fd){_0x1c9b68=_0x5bf4fd[_0x050f('0x37')];if(!_0x2951be['query']['hasOwnProperty'](_0x050f('0x39'))){_0x169e69[_0x050f('0x1d')]=qs['limit'](_0x2951be[_0x050f('0x31')][_0x050f('0x1d')]);_0x169e69[_0x050f('0x1c')]=qs[_0x050f('0x1c')](_0x2951be[_0x050f('0x31')][_0x050f('0x1c')]);}return _0x37ea7c[_0x050f('0x50')](_0x169e69);}})[_0x050f('0x25')](function(_0x59144d){if(_0x59144d){return _0x59144d?{'count':_0x1c9b68,'rows':_0x59144d}:null;}})[_0x050f('0x25')](respondWithResult(_0x3e6819,null))[_0x050f('0x46')](handleError(_0x3e6819,null));};
\ No newline at end of file
+var _0xa633=['set','Content-Range','update','destroy','end','sendStatus','error','stack','name','send','index','map','SalesforceConfiguration','fieldName','type','key','model','keys','query','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','pick','filter','where','merge','options','then','includeAll','include','findAll','catch','show','params','find','create','body','getFields','SalesforceField','rawAttributes','getSubjects','findOne','getDescriptions','eml-format','fast-json-patch','bluebird','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/utils','../../mysqldb','status','json','offset','undefined','limit','count'];(function(_0x3e7e96,_0x5683ca){var _0x13f6f0=function(_0x320767){while(--_0x320767){_0x3e7e96['push'](_0x3e7e96['shift']());}};_0x13f6f0(++_0x5683ca);}(_0xa633,0x15d));var _0x3a63=function(_0x2ee4be,_0xccdc0a){_0x2ee4be=_0x2ee4be-0x0;var _0x4a855b=_0xa633[_0x2ee4be];return _0x4a855b;};'use strict';var emlformat=require(_0x3a63('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x3a63('0x1'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x3a63('0x2'));var Mustache=require('mustache');var util=require(_0x3a63('0x3'));var path=require(_0x3a63('0x4'));var sox=require(_0x3a63('0x5'));var csv=require(_0x3a63('0x6'));var ejs=require(_0x3a63('0x7'));var fs=require('fs');var fs_extra=require(_0x3a63('0x8'));var _=require(_0x3a63('0x9'));var squel=require(_0x3a63('0xa'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x3a63('0xb'));var toCsv=require(_0x3a63('0x6'));var querystring=require(_0x3a63('0xc'));var Papa=require(_0x3a63('0xd'));var Redis=require('ioredis');var authService=require(_0x3a63('0xe'));var qs=require(_0x3a63('0xf'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x3a63('0x10'));var logger=require('../../config/logger')(_0x3a63('0x11'));var utils=require(_0x3a63('0x12'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x3a63('0x13'))['db'];function respondWithStatusCode(_0x4eb7d4,_0x6cef99){_0x6cef99=_0x6cef99||0xcc;return function(_0xa03c5a){if(_0xa03c5a){return _0x4eb7d4['sendStatus'](_0x6cef99);}return _0x4eb7d4[_0x3a63('0x14')](_0x6cef99)['end']();};}function respondWithResult(_0x4abe24,_0x598e4f){_0x598e4f=_0x598e4f||0xc8;return function(_0x36a2e2){if(_0x36a2e2){return _0x4abe24[_0x3a63('0x14')](_0x598e4f)[_0x3a63('0x15')](_0x36a2e2);}};}function respondWithFilteredResult(_0x5adaff,_0x295d31){return function(_0x1630bb){if(_0x1630bb){var _0x211dcf=typeof _0x295d31[_0x3a63('0x16')]===_0x3a63('0x17')&&typeof _0x295d31[_0x3a63('0x18')]===_0x3a63('0x17');var _0x5721b2=_0x1630bb[_0x3a63('0x19')];var _0x3abdc0=_0x211dcf?0x0:_0x295d31[_0x3a63('0x16')];var _0x11c176=_0x211dcf?_0x1630bb[_0x3a63('0x19')]:_0x295d31[_0x3a63('0x16')]+_0x295d31[_0x3a63('0x18')];var _0x1908da;if(_0x11c176>=_0x5721b2){_0x11c176=_0x5721b2;_0x1908da=0xc8;}else{_0x1908da=0xce;}_0x5adaff[_0x3a63('0x14')](_0x1908da);return _0x5adaff[_0x3a63('0x1a')](_0x3a63('0x1b'),_0x3abdc0+'-'+_0x11c176+'/'+_0x5721b2)[_0x3a63('0x15')](_0x1630bb);}return null;};}function patchUpdates(_0x32f8ee){return function(_0xe534ae){try{jsonpatch['apply'](_0xe534ae,_0x32f8ee,!![]);}catch(_0x4c9135){return BPromise['reject'](_0x4c9135);}return _0xe534ae['save']();};}function saveUpdates(_0x514413,_0x144d9c){return function(_0x2bfff5){if(_0x2bfff5){return _0x2bfff5[_0x3a63('0x1c')](_0x514413)['then'](function(_0x167120){return _0x167120;});}return null;};}function removeEntity(_0x4c0ea9,_0xea9259){return function(_0x2f680f){if(_0x2f680f){return _0x2f680f[_0x3a63('0x1d')]()['then'](function(){_0x4c0ea9[_0x3a63('0x14')](0xcc)[_0x3a63('0x1e')]();});}};}function handleEntityNotFound(_0x1ec46d,_0x20b5dc){return function(_0x4cb989){if(!_0x4cb989){_0x1ec46d[_0x3a63('0x1f')](0x194);}return _0x4cb989;};}function handleError(_0x213c27,_0x5e7855){_0x5e7855=_0x5e7855||0x1f4;return function(_0x477483){logger[_0x3a63('0x20')](_0x477483[_0x3a63('0x21')]);if(_0x477483[_0x3a63('0x22')]){delete _0x477483[_0x3a63('0x22')];}_0x213c27[_0x3a63('0x14')](_0x5e7855)[_0x3a63('0x23')](_0x477483);};}exports[_0x3a63('0x24')]=function(_0x44fdba,_0x5701aa){var _0x4bde37={},_0x8d99c7={},_0x521c72={'count':0x0,'rows':[]};var _0x48cee4=_[_0x3a63('0x25')](db[_0x3a63('0x26')]['rawAttributes'],function(_0x1f58f1){return{'name':_0x1f58f1[_0x3a63('0x27')],'type':_0x1f58f1[_0x3a63('0x28')][_0x3a63('0x29')]};});_0x8d99c7[_0x3a63('0x2a')]=_[_0x3a63('0x25')](_0x48cee4,'name');_0x8d99c7['query']=_[_0x3a63('0x2b')](_0x44fdba[_0x3a63('0x2c')]);_0x8d99c7[_0x3a63('0x2d')]=_[_0x3a63('0x2e')](_0x8d99c7[_0x3a63('0x2a')],_0x8d99c7[_0x3a63('0x2c')]);_0x4bde37['attributes']=_[_0x3a63('0x2e')](_0x8d99c7[_0x3a63('0x2a')],qs[_0x3a63('0x2f')](_0x44fdba[_0x3a63('0x2c')][_0x3a63('0x2f')]));_0x4bde37[_0x3a63('0x30')]=_0x4bde37[_0x3a63('0x30')][_0x3a63('0x31')]?_0x4bde37[_0x3a63('0x30')]:_0x8d99c7[_0x3a63('0x2a')];if(!_0x44fdba[_0x3a63('0x2c')][_0x3a63('0x32')](_0x3a63('0x33'))){_0x4bde37[_0x3a63('0x18')]=qs['limit'](_0x44fdba[_0x3a63('0x2c')][_0x3a63('0x18')]);_0x4bde37['offset']=qs[_0x3a63('0x16')](_0x44fdba[_0x3a63('0x2c')][_0x3a63('0x16')]);}_0x4bde37[_0x3a63('0x34')]=qs[_0x3a63('0x35')](_0x44fdba[_0x3a63('0x2c')]['sort']);_0x4bde37['where']=qs[_0x3a63('0x2d')](_[_0x3a63('0x36')](_0x44fdba[_0x3a63('0x2c')],_0x8d99c7[_0x3a63('0x2d')]),_0x48cee4);if(_0x44fdba[_0x3a63('0x2c')][_0x3a63('0x37')]){_0x4bde37['where']=_['merge'](_0x4bde37[_0x3a63('0x38')],{'$or':_['map'](_0x48cee4,function(_0xa0c0c8){if(_0xa0c0c8[_0x3a63('0x28')]!=='VIRTUAL'){var _0x327929={};_0x327929[_0xa0c0c8[_0x3a63('0x22')]]={'$like':'%'+_0x44fdba['query'][_0x3a63('0x37')]+'%'};return _0x327929;}})});}_0x4bde37=_[_0x3a63('0x39')]({},_0x4bde37,_0x44fdba[_0x3a63('0x3a')]);var _0x25f973={'where':_0x4bde37[_0x3a63('0x38')]};return db[_0x3a63('0x26')][_0x3a63('0x19')](_0x25f973)[_0x3a63('0x3b')](function(_0x522fbf){_0x521c72[_0x3a63('0x19')]=_0x522fbf;if(_0x44fdba[_0x3a63('0x2c')][_0x3a63('0x3c')]){_0x4bde37[_0x3a63('0x3d')]=[{'all':!![]}];}return db[_0x3a63('0x26')][_0x3a63('0x3e')](_0x4bde37);})[_0x3a63('0x3b')](function(_0x20f3df){_0x521c72['rows']=_0x20f3df;return _0x521c72;})[_0x3a63('0x3b')](respondWithFilteredResult(_0x5701aa,_0x4bde37))[_0x3a63('0x3f')](handleError(_0x5701aa,null));};exports[_0x3a63('0x40')]=function(_0x156e0f,_0x193fff){var _0x307c4f={'raw':![],'where':{'id':_0x156e0f[_0x3a63('0x41')]['id']}},_0xc76323={};_0xc76323[_0x3a63('0x2a')]=_[_0x3a63('0x2b')](db['SalesforceConfiguration']['rawAttributes']);_0xc76323[_0x3a63('0x2c')]=_['keys'](_0x156e0f[_0x3a63('0x2c')]);_0xc76323[_0x3a63('0x2d')]=_[_0x3a63('0x2e')](_0xc76323[_0x3a63('0x2a')],_0xc76323[_0x3a63('0x2c')]);_0x307c4f[_0x3a63('0x30')]=_[_0x3a63('0x2e')](_0xc76323[_0x3a63('0x2a')],qs[_0x3a63('0x2f')](_0x156e0f[_0x3a63('0x2c')][_0x3a63('0x2f')]));_0x307c4f[_0x3a63('0x30')]=_0x307c4f[_0x3a63('0x30')][_0x3a63('0x31')]?_0x307c4f['attributes']:_0xc76323[_0x3a63('0x2a')];if(_0x156e0f[_0x3a63('0x2c')][_0x3a63('0x3c')]){_0x307c4f[_0x3a63('0x3d')]=[{'all':!![]}];}_0x307c4f=_[_0x3a63('0x39')]({},_0x307c4f,_0x156e0f[_0x3a63('0x3a')]);return db[_0x3a63('0x26')][_0x3a63('0x42')](_0x307c4f)['then'](handleEntityNotFound(_0x193fff,null))['then'](respondWithResult(_0x193fff,null))[_0x3a63('0x3f')](handleError(_0x193fff,null));};exports[_0x3a63('0x43')]=function(_0x1a3028,_0x59cecf){return db[_0x3a63('0x26')]['create'](_0x1a3028[_0x3a63('0x44')],{})[_0x3a63('0x3b')](respondWithResult(_0x59cecf,0xc9))['catch'](handleError(_0x59cecf,null));};exports[_0x3a63('0x1c')]=function(_0x4c22b7,_0x179219){if(_0x4c22b7[_0x3a63('0x44')]['id']){delete _0x4c22b7[_0x3a63('0x44')]['id'];}return db[_0x3a63('0x26')][_0x3a63('0x42')]({'where':{'id':_0x4c22b7[_0x3a63('0x41')]['id']}})['then'](handleEntityNotFound(_0x179219,null))['then'](saveUpdates(_0x4c22b7['body'],null))[_0x3a63('0x3b')](respondWithResult(_0x179219,null))[_0x3a63('0x3f')](handleError(_0x179219,null));};exports[_0x3a63('0x1d')]=function(_0x4be81e,_0x572c1c){return db[_0x3a63('0x26')][_0x3a63('0x42')]({'where':{'id':_0x4be81e[_0x3a63('0x41')]['id']}})['then'](handleEntityNotFound(_0x572c1c,null))['then'](removeEntity(_0x572c1c,null))[_0x3a63('0x3f')](handleError(_0x572c1c,null));};exports[_0x3a63('0x45')]=function(_0x5e85d1,_0x28973e,_0x51fdc8){var _0x3d6099={};var _0x3634ca={};var _0x4a46a6;var _0x153d8f;return db[_0x3a63('0x26')]['findOne']({'where':{'id':_0x5e85d1[_0x3a63('0x41')]['id']}})[_0x3a63('0x3b')](handleEntityNotFound(_0x28973e,null))['then'](function(_0x2b5113){if(_0x2b5113){_0x4a46a6=_0x2b5113;_0x3634ca[_0x3a63('0x2a')]=_[_0x3a63('0x2b')](db[_0x3a63('0x46')][_0x3a63('0x47')]);_0x3634ca['query']=_[_0x3a63('0x2b')](_0x5e85d1['query']);_0x3634ca[_0x3a63('0x2d')]=_[_0x3a63('0x2e')](_0x3634ca[_0x3a63('0x2a')],_0x3634ca[_0x3a63('0x2c')]);_0x3d6099[_0x3a63('0x30')]=_[_0x3a63('0x2e')](_0x3634ca['model'],qs[_0x3a63('0x2f')](_0x5e85d1[_0x3a63('0x2c')][_0x3a63('0x2f')]));_0x3d6099['attributes']=_0x3d6099['attributes'][_0x3a63('0x31')]?_0x3d6099[_0x3a63('0x30')]:_0x3634ca['model'];_0x3d6099[_0x3a63('0x34')]=qs['sort'](_0x5e85d1[_0x3a63('0x2c')]['sort']);_0x3d6099[_0x3a63('0x38')]=qs[_0x3a63('0x2d')](_[_0x3a63('0x36')](_0x5e85d1[_0x3a63('0x2c')],_0x3634ca['filters']));if(_0x5e85d1[_0x3a63('0x2c')][_0x3a63('0x37')]){_0x3d6099[_0x3a63('0x38')]=_['merge'](_0x3d6099[_0x3a63('0x38')],{'$or':_[_0x3a63('0x25')](_0x3d6099[_0x3a63('0x30')],function(_0x360d30){var _0x57f71f={};_0x57f71f[_0x360d30]={'$like':'%'+_0x5e85d1['query']['filter']+'%'};return _0x57f71f;})});}_0x3d6099=_[_0x3a63('0x39')]({},_0x3d6099,_0x5e85d1[_0x3a63('0x3a')]);return _0x4a46a6[_0x3a63('0x45')](_0x3d6099);}})[_0x3a63('0x3b')](function(_0x35c5b8){if(_0x35c5b8){_0x153d8f=_0x35c5b8[_0x3a63('0x31')];if(!_0x5e85d1[_0x3a63('0x2c')][_0x3a63('0x32')]('nolimit')){_0x3d6099[_0x3a63('0x18')]=qs['limit'](_0x5e85d1['query'][_0x3a63('0x18')]);_0x3d6099[_0x3a63('0x16')]=qs[_0x3a63('0x16')](_0x5e85d1[_0x3a63('0x2c')]['offset']);}return _0x4a46a6[_0x3a63('0x45')](_0x3d6099);}})[_0x3a63('0x3b')](function(_0x3d08d3){if(_0x3d08d3){return _0x3d08d3?{'count':_0x153d8f,'rows':_0x3d08d3}:null;}})['then'](respondWithResult(_0x28973e,null))[_0x3a63('0x3f')](handleError(_0x28973e,null));};exports[_0x3a63('0x48')]=function(_0x2c7c7a,_0x4fa43b,_0x302b68){var _0x1b5666={};var _0x254871={};var _0x569038;var _0x3b7dcb;return db[_0x3a63('0x26')][_0x3a63('0x49')]({'where':{'id':_0x2c7c7a[_0x3a63('0x41')]['id']}})[_0x3a63('0x3b')](handleEntityNotFound(_0x4fa43b,null))[_0x3a63('0x3b')](function(_0x172cf6){if(_0x172cf6){_0x569038=_0x172cf6;_0x254871[_0x3a63('0x2a')]=_[_0x3a63('0x2b')](db[_0x3a63('0x46')]['rawAttributes']);_0x254871[_0x3a63('0x2c')]=_['keys'](_0x2c7c7a['query']);_0x254871[_0x3a63('0x2d')]=_[_0x3a63('0x2e')](_0x254871[_0x3a63('0x2a')],_0x254871[_0x3a63('0x2c')]);_0x1b5666[_0x3a63('0x30')]=_[_0x3a63('0x2e')](_0x254871[_0x3a63('0x2a')],qs[_0x3a63('0x2f')](_0x2c7c7a[_0x3a63('0x2c')]['fields']));_0x1b5666[_0x3a63('0x30')]=_0x1b5666[_0x3a63('0x30')][_0x3a63('0x31')]?_0x1b5666[_0x3a63('0x30')]:_0x254871[_0x3a63('0x2a')];_0x1b5666[_0x3a63('0x34')]=qs['sort'](_0x2c7c7a['query'][_0x3a63('0x35')]);_0x1b5666['where']=qs['filters'](_['pick'](_0x2c7c7a[_0x3a63('0x2c')],_0x254871[_0x3a63('0x2d')]));if(_0x2c7c7a['query']['filter']){_0x1b5666[_0x3a63('0x38')]=_[_0x3a63('0x39')](_0x1b5666['where'],{'$or':_[_0x3a63('0x25')](_0x1b5666[_0x3a63('0x30')],function(_0x57387d){var _0x2f1b73={};_0x2f1b73[_0x57387d]={'$like':'%'+_0x2c7c7a[_0x3a63('0x2c')]['filter']+'%'};return _0x2f1b73;})});}_0x1b5666=_['merge']({},_0x1b5666,_0x2c7c7a['options']);return _0x569038[_0x3a63('0x48')](_0x1b5666);}})[_0x3a63('0x3b')](function(_0x5784b7){if(_0x5784b7){_0x3b7dcb=_0x5784b7[_0x3a63('0x31')];if(!_0x2c7c7a[_0x3a63('0x2c')][_0x3a63('0x32')](_0x3a63('0x33'))){_0x1b5666[_0x3a63('0x18')]=qs['limit'](_0x2c7c7a[_0x3a63('0x2c')][_0x3a63('0x18')]);_0x1b5666['offset']=qs[_0x3a63('0x16')](_0x2c7c7a[_0x3a63('0x2c')]['offset']);}return _0x569038['getSubjects'](_0x1b5666);}})['then'](function(_0x25890b){if(_0x25890b){return _0x25890b?{'count':_0x3b7dcb,'rows':_0x25890b}:null;}})[_0x3a63('0x3b')](respondWithResult(_0x4fa43b,null))[_0x3a63('0x3f')](handleError(_0x4fa43b,null));};exports['getDescriptions']=function(_0x1c7eb5,_0x5cc7f5,_0x43927d){var _0x518c1c={};var _0x41468a={};var _0x1e72ab;var _0x20a40b;return db['SalesforceConfiguration'][_0x3a63('0x49')]({'where':{'id':_0x1c7eb5[_0x3a63('0x41')]['id']}})['then'](handleEntityNotFound(_0x5cc7f5,null))[_0x3a63('0x3b')](function(_0x42db6c){if(_0x42db6c){_0x1e72ab=_0x42db6c;_0x41468a[_0x3a63('0x2a')]=_[_0x3a63('0x2b')](db[_0x3a63('0x46')][_0x3a63('0x47')]);_0x41468a[_0x3a63('0x2c')]=_['keys'](_0x1c7eb5['query']);_0x41468a[_0x3a63('0x2d')]=_['intersection'](_0x41468a[_0x3a63('0x2a')],_0x41468a[_0x3a63('0x2c')]);_0x518c1c['attributes']=_['intersection'](_0x41468a[_0x3a63('0x2a')],qs[_0x3a63('0x2f')](_0x1c7eb5[_0x3a63('0x2c')][_0x3a63('0x2f')]));_0x518c1c[_0x3a63('0x30')]=_0x518c1c[_0x3a63('0x30')][_0x3a63('0x31')]?_0x518c1c[_0x3a63('0x30')]:_0x41468a['model'];_0x518c1c[_0x3a63('0x34')]=qs[_0x3a63('0x35')](_0x1c7eb5[_0x3a63('0x2c')][_0x3a63('0x35')]);_0x518c1c[_0x3a63('0x38')]=qs[_0x3a63('0x2d')](_[_0x3a63('0x36')](_0x1c7eb5[_0x3a63('0x2c')],_0x41468a[_0x3a63('0x2d')]));if(_0x1c7eb5[_0x3a63('0x2c')][_0x3a63('0x37')]){_0x518c1c['where']=_[_0x3a63('0x39')](_0x518c1c[_0x3a63('0x38')],{'$or':_[_0x3a63('0x25')](_0x518c1c[_0x3a63('0x30')],function(_0xc92846){var _0x1c6fca={};_0x1c6fca[_0xc92846]={'$like':'%'+_0x1c7eb5[_0x3a63('0x2c')][_0x3a63('0x37')]+'%'};return _0x1c6fca;})});}_0x518c1c=_[_0x3a63('0x39')]({},_0x518c1c,_0x1c7eb5['options']);return _0x1e72ab[_0x3a63('0x4a')](_0x518c1c);}})['then'](function(_0x1efc0b){if(_0x1efc0b){_0x20a40b=_0x1efc0b[_0x3a63('0x31')];if(!_0x1c7eb5['query'][_0x3a63('0x32')](_0x3a63('0x33'))){_0x518c1c['limit']=qs['limit'](_0x1c7eb5[_0x3a63('0x2c')][_0x3a63('0x18')]);_0x518c1c['offset']=qs[_0x3a63('0x16')](_0x1c7eb5['query']['offset']);}return _0x1e72ab[_0x3a63('0x4a')](_0x518c1c);}})[_0x3a63('0x3b')](function(_0x52e34b){if(_0x52e34b){return _0x52e34b?{'count':_0x20a40b,'rows':_0x52e34b}:null;}})[_0x3a63('0x3b')](respondWithResult(_0x5cc7f5,null))[_0x3a63('0x3f')](handleError(_0x5cc7f5,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x25e7=['../../config/logger','api','moment','bluebird','path','rimraf','../../config/environment','./intSalesforceConfiguration.attributes','exports','define','SalesforceConfiguration','int_salesforce_configurations','lodash','util'];(function(_0x2ae8b5,_0x2a2cb6){var _0x29def1=function(_0x2a03a3){while(--_0x2a03a3){_0x2ae8b5['push'](_0x2ae8b5['shift']());}};_0x29def1(++_0x2a2cb6);}(_0x25e7,0xb4));var _0x725e=function(_0x2ba00c,_0x10f136){_0x2ba00c=_0x2ba00c-0x0;var _0x4a4853=_0x25e7[_0x2ba00c];return _0x4a4853;};'use strict';var _=require(_0x725e('0x0'));var util=require(_0x725e('0x1'));var logger=require(_0x725e('0x2'))(_0x725e('0x3'));var moment=require(_0x725e('0x4'));var BPromise=require(_0x725e('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x725e('0x6'));var rimraf=require(_0x725e('0x7'));var config=require(_0x725e('0x8'));var attributes=require(_0x725e('0x9'));module[_0x725e('0xa')]=function(_0x5a213e,_0x5f3a06){return _0x5a213e[_0x725e('0xb')](_0x725e('0xc'),attributes,{'tableName':_0x725e('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x2239=['SalesforceConfiguration','int_salesforce_configurations','lodash','util','../../config/logger','moment','bluebird','request-promise','rimraf','../../config/environment','./intSalesforceConfiguration.attributes','exports','define'];(function(_0x164eca,_0x555e28){var _0x2ce562=function(_0x148ca6){while(--_0x148ca6){_0x164eca['push'](_0x164eca['shift']());}};_0x2ce562(++_0x555e28);}(_0x2239,0x77));var _0x9223=function(_0x35de13,_0x2f45ef){_0x35de13=_0x35de13-0x0;var _0x45c5e2=_0x2239[_0x35de13];return _0x45c5e2;};'use strict';var _=require(_0x9223('0x0'));var util=require(_0x9223('0x1'));var logger=require(_0x9223('0x2'))('api');var moment=require(_0x9223('0x3'));var BPromise=require(_0x9223('0x4'));var rp=require(_0x9223('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0x9223('0x6'));var config=require(_0x9223('0x7'));var attributes=require(_0x9223('0x8'));module[_0x9223('0x9')]=function(_0x3d8275,_0xb78c46){return _0x3d8275[_0x9223('0xa')](_0x9223('0xb'),attributes,{'tableName':_0x9223('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd13c=['then','debug','SalesforceConfiguration,\x20%s,\x20%s,\x20%s','request\x20sent','error','code','SalesforceConfiguration,\x20%s,\x20%s','message','catch','lodash','util','moment','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','client','request'];(function(_0xa1e3ca,_0x559022){var _0x5005ab=function(_0x12f90e){while(--_0x12f90e){_0xa1e3ca['push'](_0xa1e3ca['shift']());}};_0x5005ab(++_0x559022);}(_0xd13c,0x185));var _0xcd13=function(_0x13599c,_0x5e4238){_0x13599c=_0x13599c-0x0;var _0x6829fb=_0xd13c[_0x13599c];return _0x6829fb;};'use strict';var _=require(_0xcd13('0x0'));var util=require(_0xcd13('0x1'));var moment=require(_0xcd13('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xcd13('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0xcd13('0x4'));var logger=require(_0xcd13('0x5'))(_0xcd13('0x6'));var config=require(_0xcd13('0x7'));var jayson=require('jayson/promise');var client=jayson[_0xcd13('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0x479bd7,_0x52eb48,_0x460602){return new BPromise(function(_0x4be120,_0x42e5f4){return client[_0xcd13('0x9')](_0x479bd7,_0x460602)[_0xcd13('0xa')](function(_0x390e19){logger['info']('SalesforceConfiguration,\x20%s,\x20%s',_0x52eb48,'request\x20sent');logger[_0xcd13('0xb')](_0xcd13('0xc'),_0x52eb48,_0xcd13('0xd'),JSON['stringify'](_0x390e19));if(_0x390e19[_0xcd13('0xe')]){if(_0x390e19[_0xcd13('0xe')][_0xcd13('0xf')]===0x1f4){logger['error'](_0xcd13('0x10'),_0x52eb48,_0x390e19[_0xcd13('0xe')]['message']);return _0x42e5f4(_0x390e19[_0xcd13('0xe')][_0xcd13('0x11')]);}logger[_0xcd13('0xe')](_0xcd13('0x10'),_0x52eb48,_0x390e19[_0xcd13('0xe')][_0xcd13('0x11')]);return _0x4be120(_0x390e19[_0xcd13('0xe')][_0xcd13('0x11')]);}else{logger['info'](_0xcd13('0x10'),_0x52eb48,'request\x20sent');_0x4be120(_0x390e19['result'][_0xcd13('0x11')]);}})[_0xcd13('0x12')](function(_0x399637){logger['error'](_0xcd13('0x10'),_0x52eb48,_0x399637);_0x42e5f4(_0x399637);});});}
\ No newline at end of file
+var _0x1fd8=['code','message','result','catch','lodash','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','SalesforceConfiguration,\x20%s,\x20%s','request\x20sent','debug','stringify','error'];(function(_0x2c5c3d,_0x3c3568){var _0x4bc3a6=function(_0x284784){while(--_0x284784){_0x2c5c3d['push'](_0x2c5c3d['shift']());}};_0x4bc3a6(++_0x3c3568);}(_0x1fd8,0x149));var _0x81fd=function(_0x4363,_0x24d888){_0x4363=_0x4363-0x0;var _0x7fe103=_0x1fd8[_0x4363];return _0x7fe103;};'use strict';var _=require(_0x81fd('0x0'));var util=require(_0x81fd('0x1'));var moment=require('moment');var BPromise=require(_0x81fd('0x2'));var rs=require(_0x81fd('0x3'));var fs=require('fs');var Redis=require(_0x81fd('0x4'));var db=require(_0x81fd('0x5'))['db'];var utils=require(_0x81fd('0x6'));var logger=require(_0x81fd('0x7'))(_0x81fd('0x8'));var config=require(_0x81fd('0x9'));var jayson=require(_0x81fd('0xa'));var client=jayson[_0x81fd('0xb')][_0x81fd('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x213d90,_0x2a25f4,_0xe644df){return new BPromise(function(_0xb399c3,_0x1a4c91){return client[_0x81fd('0xd')](_0x213d90,_0xe644df)[_0x81fd('0xe')](function(_0x2a4fc8){logger[_0x81fd('0xf')](_0x81fd('0x10'),_0x2a25f4,_0x81fd('0x11'));logger[_0x81fd('0x12')]('SalesforceConfiguration,\x20%s,\x20%s,\x20%s',_0x2a25f4,_0x81fd('0x11'),JSON[_0x81fd('0x13')](_0x2a4fc8));if(_0x2a4fc8[_0x81fd('0x14')]){if(_0x2a4fc8[_0x81fd('0x14')][_0x81fd('0x15')]===0x1f4){logger[_0x81fd('0x14')](_0x81fd('0x10'),_0x2a25f4,_0x2a4fc8[_0x81fd('0x14')][_0x81fd('0x16')]);return _0x1a4c91(_0x2a4fc8['error'][_0x81fd('0x16')]);}logger[_0x81fd('0x14')](_0x81fd('0x10'),_0x2a25f4,_0x2a4fc8['error'][_0x81fd('0x16')]);return _0xb399c3(_0x2a4fc8[_0x81fd('0x14')][_0x81fd('0x16')]);}else{logger[_0x81fd('0xf')](_0x81fd('0x10'),_0x2a25f4,_0x81fd('0x11'));_0xb399c3(_0x2a4fc8[_0x81fd('0x17')]['message']);}})[_0x81fd('0x18')](function(_0x1643f7){logger[_0x81fd('0x14')]('SalesforceConfiguration,\x20%s,\x20%s',_0x2a25f4,_0x1643f7);_0x1a4c91(_0x1643f7);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7f53=['util','express','Router','fs-extra','../../components/auth/service','../../config/environment','./intSalesforceField.controller','get','isAuthenticated','index','/:id','post','put','update','delete','destroy'];(function(_0x32a554,_0x37ad7b){var _0x5ce71c=function(_0x1f670d){while(--_0x1f670d){_0x32a554['push'](_0x32a554['shift']());}};_0x5ce71c(++_0x37ad7b);}(_0x7f53,0xd0));var _0x37f5=function(_0xb7a459,_0xc13228){_0xb7a459=_0xb7a459-0x0;var _0x104ab5=_0x7f53[_0xb7a459];return _0x104ab5;};'use strict';var multer=require('multer');var util=require(_0x37f5('0x0'));var path=require('path');var timeout=require('connect-timeout');var express=require(_0x37f5('0x1'));var router=express[_0x37f5('0x2')]();var fs_extra=require(_0x37f5('0x3'));var auth=require(_0x37f5('0x4'));var interaction=require('../../components/interaction/service');var config=require(_0x37f5('0x5'));var controller=require(_0x37f5('0x6'));router[_0x37f5('0x7')]('/',auth[_0x37f5('0x8')](),controller[_0x37f5('0x9')]);router[_0x37f5('0x7')](_0x37f5('0xa'),auth[_0x37f5('0x8')](),controller['show']);router[_0x37f5('0xb')]('/',auth[_0x37f5('0x8')](),controller['create']);router[_0x37f5('0xc')](_0x37f5('0xa'),auth['isAuthenticated'](),controller[_0x37f5('0xd')]);router[_0x37f5('0xe')](_0x37f5('0xa'),auth[_0x37f5('0x8')](),controller[_0x37f5('0xf')]);module['exports']=router;
\ No newline at end of file
+var _0x6149=['multer','util','path','connect-timeout','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','isAuthenticated','get','/:id','show','post','put','delete','destroy'];(function(_0x4ed3e0,_0xbfa727){var _0x114c14=function(_0x48b1d9){while(--_0x48b1d9){_0x4ed3e0['push'](_0x4ed3e0['shift']());}};_0x114c14(++_0xbfa727);}(_0x6149,0x150));var _0x9614=function(_0x3e1e1b,_0x560c1e){_0x3e1e1b=_0x3e1e1b-0x0;var _0x3f78a4=_0x6149[_0x3e1e1b];return _0x3f78a4;};'use strict';var multer=require(_0x9614('0x0'));var util=require(_0x9614('0x1'));var path=require(_0x9614('0x2'));var timeout=require(_0x9614('0x3'));var express=require('express');var router=express[_0x9614('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0x9614('0x5'));var interaction=require(_0x9614('0x6'));var config=require(_0x9614('0x7'));var controller=require('./intSalesforceField.controller');router['get']('/',auth[_0x9614('0x8')](),controller['index']);router[_0x9614('0x9')](_0x9614('0xa'),auth[_0x9614('0x8')](),controller[_0x9614('0xb')]);router[_0x9614('0xc')]('/',auth[_0x9614('0x8')](),controller['create']);router[_0x9614('0xd')](_0x9614('0xa'),auth[_0x9614('0x8')](),controller['update']);router[_0x9614('0xe')](_0x9614('0xa'),auth[_0x9614('0x8')](),controller[_0x9614('0xf')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xafbd=['picklist','STRING','ENUM','variable','customVariable','sequelize','exports','string'];(function(_0x1ecf36,_0x17d60b){var _0x15cc90=function(_0x2b594b){while(--_0x2b594b){_0x1ecf36['push'](_0x1ecf36['shift']());}};_0x15cc90(++_0x17d60b);}(_0xafbd,0x8d));var _0xdafb=function(_0x12fc8d,_0x19ee33){_0x12fc8d=_0x12fc8d-0x0;var _0x3f9d04=_0xafbd[_0x12fc8d];return _0x3f9d04;};'use strict';var Sequelize=require(_0xdafb('0x0'));module[_0xdafb('0x1')]={'type':{'type':Sequelize['ENUM'](_0xdafb('0x2'),'variable','customVariable','keyValue',_0xdafb('0x3')),'defaultValue':_0xdafb('0x2')},'content':{'type':Sequelize['STRING']},'key':{'type':Sequelize[_0xdafb('0x4')]},'keyType':{'type':Sequelize[_0xdafb('0x5')](_0xdafb('0x2'),_0xdafb('0x6'),_0xdafb('0x7'))},'keyContent':{'type':Sequelize['STRING']},'idField':{'type':Sequelize['STRING']},'variableName':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0xfc32=['string','customVariable','keyValue','variable','STRING','exports','ENUM'];(function(_0x44c37d,_0x19119f){var _0x29e087=function(_0x327fca){while(--_0x327fca){_0x44c37d['push'](_0x44c37d['shift']());}};_0x29e087(++_0x19119f);}(_0xfc32,0xfa));var _0x2fc3=function(_0x4ff09b,_0x53f67d){_0x4ff09b=_0x4ff09b-0x0;var _0x3f5c2e=_0xfc32[_0x4ff09b];return _0x3f5c2e;};'use strict';var Sequelize=require('sequelize');module[_0x2fc3('0x0')]={'type':{'type':Sequelize[_0x2fc3('0x1')](_0x2fc3('0x2'),'variable',_0x2fc3('0x3'),_0x2fc3('0x4'),'picklist'),'defaultValue':_0x2fc3('0x2')},'content':{'type':Sequelize['STRING']},'key':{'type':Sequelize['STRING']},'keyType':{'type':Sequelize[_0x2fc3('0x1')](_0x2fc3('0x2'),_0x2fc3('0x5'),'customVariable')},'keyContent':{'type':Sequelize[_0x2fc3('0x6')]},'idField':{'type':Sequelize['STRING']},'variableName':{'type':Sequelize[_0x2fc3('0x6')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2661=['body','params','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../config/license/hardware','api','../../config/environment','status','json','offset','undefined','limit','count','set','Content-Range','save','update','then','destroy','name','send','index','SalesforceField','rawAttributes','fieldName','type','key','model','query','filters','attributes','intersection','fields','hasOwnProperty','nolimit','order','sort','pick','merge','where','map','VIRTUAL','filter','options','includeAll','include','findAll','rows','catch','show','keys','length','find','create'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0x2661,0x1f3));var _0x1266=function(_0x4b9f7d,_0x18e90d){_0x4b9f7d=_0x4b9f7d-0x0;var _0x3c2262=_0x2661[_0x4b9f7d];return _0x3c2262;};'use strict';var emlformat=require(_0x1266('0x0'));var rimraf=require(_0x1266('0x1'));var zipdir=require(_0x1266('0x2'));var jsonpatch=require(_0x1266('0x3'));var rp=require(_0x1266('0x4'));var moment=require(_0x1266('0x5'));var BPromise=require(_0x1266('0x6'));var Mustache=require(_0x1266('0x7'));var util=require(_0x1266('0x8'));var path=require(_0x1266('0x9'));var sox=require('sox');var csv=require(_0x1266('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x1266('0xb'));var squel=require(_0x1266('0xc'));var crypto=require(_0x1266('0xd'));var jsforce=require(_0x1266('0xe'));var deskjs=require('desk.js');var toCsv=require(_0x1266('0xa'));var querystring=require(_0x1266('0xf'));var Papa=require(_0x1266('0x10'));var Redis=require(_0x1266('0x11'));var authService=require(_0x1266('0x12'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x1266('0x13'));var logger=require('../../config/logger')(_0x1266('0x14'));var utils=require('../../config/utils');var config=require(_0x1266('0x15'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x382838,_0xbe204d){_0xbe204d=_0xbe204d||0xcc;return function(_0x463f8c){if(_0x463f8c){return _0x382838['sendStatus'](_0xbe204d);}return _0x382838[_0x1266('0x16')](_0xbe204d)['end']();};}function respondWithResult(_0x2db768,_0x396927){_0x396927=_0x396927||0xc8;return function(_0x28329b){if(_0x28329b){return _0x2db768[_0x1266('0x16')](_0x396927)[_0x1266('0x17')](_0x28329b);}};}function respondWithFilteredResult(_0x2869d8,_0x3c2012){return function(_0x5b8518){if(_0x5b8518){var _0xc3e887=typeof _0x3c2012[_0x1266('0x18')]===_0x1266('0x19')&&typeof _0x3c2012[_0x1266('0x1a')]===_0x1266('0x19');var _0x7a2721=_0x5b8518[_0x1266('0x1b')];var _0x338e11=_0xc3e887?0x0:_0x3c2012[_0x1266('0x18')];var _0x3c2f81=_0xc3e887?_0x5b8518[_0x1266('0x1b')]:_0x3c2012[_0x1266('0x18')]+_0x3c2012[_0x1266('0x1a')];var _0x3396ca;if(_0x3c2f81>=_0x7a2721){_0x3c2f81=_0x7a2721;_0x3396ca=0xc8;}else{_0x3396ca=0xce;}_0x2869d8[_0x1266('0x16')](_0x3396ca);return _0x2869d8[_0x1266('0x1c')](_0x1266('0x1d'),_0x338e11+'-'+_0x3c2f81+'/'+_0x7a2721)[_0x1266('0x17')](_0x5b8518);}return null;};}function patchUpdates(_0x496430){return function(_0x37e312){try{jsonpatch['apply'](_0x37e312,_0x496430,!![]);}catch(_0x41a102){return BPromise['reject'](_0x41a102);}return _0x37e312[_0x1266('0x1e')]();};}function saveUpdates(_0x426091,_0xc89073){return function(_0x36c559){if(_0x36c559){return _0x36c559[_0x1266('0x1f')](_0x426091)[_0x1266('0x20')](function(_0x5e17a8){return _0x5e17a8;});}return null;};}function removeEntity(_0x345c25,_0x131d79){return function(_0x4199fd){if(_0x4199fd){return _0x4199fd[_0x1266('0x21')]()[_0x1266('0x20')](function(){_0x345c25[_0x1266('0x16')](0xcc)['end']();});}};}function handleEntityNotFound(_0xe0279c,_0x180eb0){return function(_0x363d33){if(!_0x363d33){_0xe0279c['sendStatus'](0x194);}return _0x363d33;};}function handleError(_0x67371e,_0x4bde15){_0x4bde15=_0x4bde15||0x1f4;return function(_0x2437ba){logger['error'](_0x2437ba['stack']);if(_0x2437ba[_0x1266('0x22')]){delete _0x2437ba['name'];}_0x67371e['status'](_0x4bde15)[_0x1266('0x23')](_0x2437ba);};}exports[_0x1266('0x24')]=function(_0x1b0ee2,_0x35fe25){var _0x1fa779={},_0x33b4db={},_0x3132b3={'count':0x0,'rows':[]};var _0x3330b8=_['map'](db[_0x1266('0x25')][_0x1266('0x26')],function(_0x113428){return{'name':_0x113428[_0x1266('0x27')],'type':_0x113428[_0x1266('0x28')][_0x1266('0x29')]};});_0x33b4db[_0x1266('0x2a')]=_['map'](_0x3330b8,'name');_0x33b4db[_0x1266('0x2b')]=_['keys'](_0x1b0ee2[_0x1266('0x2b')]);_0x33b4db[_0x1266('0x2c')]=_['intersection'](_0x33b4db[_0x1266('0x2a')],_0x33b4db[_0x1266('0x2b')]);_0x1fa779[_0x1266('0x2d')]=_[_0x1266('0x2e')](_0x33b4db['model'],qs['fields'](_0x1b0ee2[_0x1266('0x2b')][_0x1266('0x2f')]));_0x1fa779[_0x1266('0x2d')]=_0x1fa779[_0x1266('0x2d')]['length']?_0x1fa779[_0x1266('0x2d')]:_0x33b4db[_0x1266('0x2a')];if(!_0x1b0ee2[_0x1266('0x2b')][_0x1266('0x30')](_0x1266('0x31'))){_0x1fa779[_0x1266('0x1a')]=qs[_0x1266('0x1a')](_0x1b0ee2['query']['limit']);_0x1fa779[_0x1266('0x18')]=qs[_0x1266('0x18')](_0x1b0ee2['query'][_0x1266('0x18')]);}_0x1fa779[_0x1266('0x32')]=qs[_0x1266('0x33')](_0x1b0ee2['query']['sort']);_0x1fa779['where']=qs['filters'](_[_0x1266('0x34')](_0x1b0ee2[_0x1266('0x2b')],_0x33b4db['filters']),_0x3330b8);if(_0x1b0ee2[_0x1266('0x2b')]['filter']){_0x1fa779['where']=_[_0x1266('0x35')](_0x1fa779[_0x1266('0x36')],{'$or':_[_0x1266('0x37')](_0x3330b8,function(_0x39391f){if(_0x39391f[_0x1266('0x28')]!==_0x1266('0x38')){var _0x31c2a3={};_0x31c2a3[_0x39391f[_0x1266('0x22')]]={'$like':'%'+_0x1b0ee2[_0x1266('0x2b')][_0x1266('0x39')]+'%'};return _0x31c2a3;}})});}_0x1fa779=_[_0x1266('0x35')]({},_0x1fa779,_0x1b0ee2[_0x1266('0x3a')]);var _0xc075b8={'where':_0x1fa779['where']};return db[_0x1266('0x25')][_0x1266('0x1b')](_0xc075b8)[_0x1266('0x20')](function(_0x44d12e){_0x3132b3[_0x1266('0x1b')]=_0x44d12e;if(_0x1b0ee2[_0x1266('0x2b')][_0x1266('0x3b')]){_0x1fa779[_0x1266('0x3c')]=[{'all':!![]}];}return db['SalesforceField'][_0x1266('0x3d')](_0x1fa779);})[_0x1266('0x20')](function(_0x5321c0){_0x3132b3[_0x1266('0x3e')]=_0x5321c0;return _0x3132b3;})[_0x1266('0x20')](respondWithFilteredResult(_0x35fe25,_0x1fa779))[_0x1266('0x3f')](handleError(_0x35fe25,null));};exports[_0x1266('0x40')]=function(_0x242f1f,_0x1eafb4){var _0x2f73c3={'raw':!![],'where':{'id':_0x242f1f['params']['id']}},_0x2b7ced={};_0x2b7ced[_0x1266('0x2a')]=_['keys'](db[_0x1266('0x25')][_0x1266('0x26')]);_0x2b7ced[_0x1266('0x2b')]=_[_0x1266('0x41')](_0x242f1f[_0x1266('0x2b')]);_0x2b7ced[_0x1266('0x2c')]=_[_0x1266('0x2e')](_0x2b7ced[_0x1266('0x2a')],_0x2b7ced[_0x1266('0x2b')]);_0x2f73c3[_0x1266('0x2d')]=_['intersection'](_0x2b7ced[_0x1266('0x2a')],qs[_0x1266('0x2f')](_0x242f1f[_0x1266('0x2b')][_0x1266('0x2f')]));_0x2f73c3[_0x1266('0x2d')]=_0x2f73c3[_0x1266('0x2d')][_0x1266('0x42')]?_0x2f73c3[_0x1266('0x2d')]:_0x2b7ced[_0x1266('0x2a')];if(_0x242f1f[_0x1266('0x2b')]['includeAll']){_0x2f73c3[_0x1266('0x3c')]=[{'all':!![]}];}_0x2f73c3=_[_0x1266('0x35')]({},_0x2f73c3,_0x242f1f[_0x1266('0x3a')]);return db[_0x1266('0x25')][_0x1266('0x43')](_0x2f73c3)[_0x1266('0x20')](handleEntityNotFound(_0x1eafb4,null))['then'](respondWithResult(_0x1eafb4,null))['catch'](handleError(_0x1eafb4,null));};exports[_0x1266('0x44')]=function(_0x15585b,_0x3f3f1d){return db[_0x1266('0x25')]['create'](_0x15585b['body'],{})[_0x1266('0x20')](respondWithResult(_0x3f3f1d,0xc9))[_0x1266('0x3f')](handleError(_0x3f3f1d,null));};exports['update']=function(_0x4ff667,_0x2a1d82){if(_0x4ff667['body']['id']){delete _0x4ff667[_0x1266('0x45')]['id'];}return db['SalesforceField']['find']({'where':{'id':_0x4ff667['params']['id']}})[_0x1266('0x20')](handleEntityNotFound(_0x2a1d82,null))[_0x1266('0x20')](saveUpdates(_0x4ff667['body'],null))[_0x1266('0x20')](respondWithResult(_0x2a1d82,null))[_0x1266('0x3f')](handleError(_0x2a1d82,null));};exports[_0x1266('0x21')]=function(_0x1e1cfe,_0x4d8baf){return db['SalesforceField'][_0x1266('0x43')]({'where':{'id':_0x1e1cfe[_0x1266('0x46')]['id']}})['then'](handleEntityNotFound(_0x4d8baf,null))[_0x1266('0x20')](removeEntity(_0x4d8baf,null))[_0x1266('0x3f')](handleError(_0x4d8baf,null));};
\ No newline at end of file
+var _0x6e9d=['path','sox','to-csv','ejs','lodash','squel','jsforce','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','json','undefined','limit','offset','count','status','set','Content-Range','apply','reject','save','update','then','destroy','end','error','stack','name','send','map','SalesforceField','rawAttributes','fieldName','type','key','model','query','keys','filters','attributes','length','hasOwnProperty','order','sort','where','filter','options','rows','catch','show','params','intersection','fields','includeAll','include','merge','find','create','body','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x6e9d,0x17a));var _0xd6e9=function(_0x117e5e,_0x2d0a44){_0x117e5e=_0x117e5e-0x0;var _0x53c15c=_0x6e9d[_0x117e5e];return _0x53c15c;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xd6e9('0x0'));var zipdir=require(_0xd6e9('0x1'));var jsonpatch=require(_0xd6e9('0x2'));var rp=require(_0xd6e9('0x3'));var moment=require(_0xd6e9('0x4'));var BPromise=require(_0xd6e9('0x5'));var Mustache=require(_0xd6e9('0x6'));var util=require('util');var path=require(_0xd6e9('0x7'));var sox=require(_0xd6e9('0x8'));var csv=require(_0xd6e9('0x9'));var ejs=require(_0xd6e9('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xd6e9('0xb'));var squel=require(_0xd6e9('0xc'));var crypto=require('crypto');var jsforce=require(_0xd6e9('0xd'));var deskjs=require('desk.js');var toCsv=require(_0xd6e9('0x9'));var querystring=require(_0xd6e9('0xe'));var Papa=require(_0xd6e9('0xf'));var Redis=require(_0xd6e9('0x10'));var authService=require(_0xd6e9('0x11'));var qs=require(_0xd6e9('0x12'));var as=require(_0xd6e9('0x13'));var hardwareService=require(_0xd6e9('0x14'));var logger=require(_0xd6e9('0x15'))(_0xd6e9('0x16'));var utils=require(_0xd6e9('0x17'));var config=require(_0xd6e9('0x18'));var licenseUtil=require(_0xd6e9('0x19'));var db=require(_0xd6e9('0x1a'))['db'];function respondWithStatusCode(_0x478343,_0x5862f7){_0x5862f7=_0x5862f7||0xcc;return function(_0x1f36b1){if(_0x1f36b1){return _0x478343[_0xd6e9('0x1b')](_0x5862f7);}return _0x478343['status'](_0x5862f7)['end']();};}function respondWithResult(_0x365814,_0x27a1cd){_0x27a1cd=_0x27a1cd||0xc8;return function(_0x269d95){if(_0x269d95){return _0x365814['status'](_0x27a1cd)[_0xd6e9('0x1c')](_0x269d95);}};}function respondWithFilteredResult(_0x405c2e,_0x469ca9){return function(_0x1697a6){if(_0x1697a6){var _0x47ce33=typeof _0x469ca9['offset']===_0xd6e9('0x1d')&&typeof _0x469ca9[_0xd6e9('0x1e')]===_0xd6e9('0x1d');var _0x47d3be=_0x1697a6['count'];var _0x1aeea2=_0x47ce33?0x0:_0x469ca9[_0xd6e9('0x1f')];var _0x33a0e8=_0x47ce33?_0x1697a6[_0xd6e9('0x20')]:_0x469ca9[_0xd6e9('0x1f')]+_0x469ca9[_0xd6e9('0x1e')];var _0x32be12;if(_0x33a0e8>=_0x47d3be){_0x33a0e8=_0x47d3be;_0x32be12=0xc8;}else{_0x32be12=0xce;}_0x405c2e[_0xd6e9('0x21')](_0x32be12);return _0x405c2e[_0xd6e9('0x22')](_0xd6e9('0x23'),_0x1aeea2+'-'+_0x33a0e8+'/'+_0x47d3be)[_0xd6e9('0x1c')](_0x1697a6);}return null;};}function patchUpdates(_0x5af5e0){return function(_0x12a202){try{jsonpatch[_0xd6e9('0x24')](_0x12a202,_0x5af5e0,!![]);}catch(_0x52fa02){return BPromise[_0xd6e9('0x25')](_0x52fa02);}return _0x12a202[_0xd6e9('0x26')]();};}function saveUpdates(_0x430320,_0x3c6f0e){return function(_0x3e52ab){if(_0x3e52ab){return _0x3e52ab[_0xd6e9('0x27')](_0x430320)[_0xd6e9('0x28')](function(_0x1475f5){return _0x1475f5;});}return null;};}function removeEntity(_0xe89b1f,_0x10741d){return function(_0x32a72c){if(_0x32a72c){return _0x32a72c[_0xd6e9('0x29')]()[_0xd6e9('0x28')](function(){_0xe89b1f[_0xd6e9('0x21')](0xcc)[_0xd6e9('0x2a')]();});}};}function handleEntityNotFound(_0x5eb9d6,_0x36a7e4){return function(_0x3885e0){if(!_0x3885e0){_0x5eb9d6['sendStatus'](0x194);}return _0x3885e0;};}function handleError(_0x548ed3,_0x51fb60){_0x51fb60=_0x51fb60||0x1f4;return function(_0x44c650){logger[_0xd6e9('0x2b')](_0x44c650[_0xd6e9('0x2c')]);if(_0x44c650[_0xd6e9('0x2d')]){delete _0x44c650[_0xd6e9('0x2d')];}_0x548ed3[_0xd6e9('0x21')](_0x51fb60)[_0xd6e9('0x2e')](_0x44c650);};}exports['index']=function(_0x1be6cf,_0x5e5f0c){var _0x17c543={},_0x311958={},_0x5be2bf={'count':0x0,'rows':[]};var _0x3b0efa=_[_0xd6e9('0x2f')](db[_0xd6e9('0x30')][_0xd6e9('0x31')],function(_0x2ec62b){return{'name':_0x2ec62b[_0xd6e9('0x32')],'type':_0x2ec62b[_0xd6e9('0x33')][_0xd6e9('0x34')]};});_0x311958[_0xd6e9('0x35')]=_[_0xd6e9('0x2f')](_0x3b0efa,'name');_0x311958[_0xd6e9('0x36')]=_[_0xd6e9('0x37')](_0x1be6cf[_0xd6e9('0x36')]);_0x311958[_0xd6e9('0x38')]=_['intersection'](_0x311958['model'],_0x311958[_0xd6e9('0x36')]);_0x17c543[_0xd6e9('0x39')]=_['intersection'](_0x311958[_0xd6e9('0x35')],qs['fields'](_0x1be6cf[_0xd6e9('0x36')]['fields']));_0x17c543[_0xd6e9('0x39')]=_0x17c543[_0xd6e9('0x39')][_0xd6e9('0x3a')]?_0x17c543[_0xd6e9('0x39')]:_0x311958['model'];if(!_0x1be6cf['query'][_0xd6e9('0x3b')]('nolimit')){_0x17c543['limit']=qs[_0xd6e9('0x1e')](_0x1be6cf['query']['limit']);_0x17c543[_0xd6e9('0x1f')]=qs['offset'](_0x1be6cf[_0xd6e9('0x36')][_0xd6e9('0x1f')]);}_0x17c543[_0xd6e9('0x3c')]=qs['sort'](_0x1be6cf[_0xd6e9('0x36')][_0xd6e9('0x3d')]);_0x17c543[_0xd6e9('0x3e')]=qs[_0xd6e9('0x38')](_['pick'](_0x1be6cf[_0xd6e9('0x36')],_0x311958['filters']),_0x3b0efa);if(_0x1be6cf[_0xd6e9('0x36')][_0xd6e9('0x3f')]){_0x17c543[_0xd6e9('0x3e')]=_['merge'](_0x17c543[_0xd6e9('0x3e')],{'$or':_[_0xd6e9('0x2f')](_0x3b0efa,function(_0x2792a4){if(_0x2792a4['type']!=='VIRTUAL'){var _0x1e5b87={};_0x1e5b87[_0x2792a4[_0xd6e9('0x2d')]]={'$like':'%'+_0x1be6cf[_0xd6e9('0x36')]['filter']+'%'};return _0x1e5b87;}})});}_0x17c543=_['merge']({},_0x17c543,_0x1be6cf[_0xd6e9('0x40')]);var _0x3bd68f={'where':_0x17c543[_0xd6e9('0x3e')]};return db[_0xd6e9('0x30')][_0xd6e9('0x20')](_0x3bd68f)[_0xd6e9('0x28')](function(_0x371f37){_0x5be2bf[_0xd6e9('0x20')]=_0x371f37;if(_0x1be6cf[_0xd6e9('0x36')]['includeAll']){_0x17c543['include']=[{'all':!![]}];}return db[_0xd6e9('0x30')]['findAll'](_0x17c543);})[_0xd6e9('0x28')](function(_0x22d9d0){_0x5be2bf[_0xd6e9('0x41')]=_0x22d9d0;return _0x5be2bf;})[_0xd6e9('0x28')](respondWithFilteredResult(_0x5e5f0c,_0x17c543))[_0xd6e9('0x42')](handleError(_0x5e5f0c,null));};exports[_0xd6e9('0x43')]=function(_0x309c35,_0x58b826){var _0x295a3e={'raw':!![],'where':{'id':_0x309c35[_0xd6e9('0x44')]['id']}},_0x31cf0f={};_0x31cf0f['model']=_['keys'](db[_0xd6e9('0x30')][_0xd6e9('0x31')]);_0x31cf0f[_0xd6e9('0x36')]=_[_0xd6e9('0x37')](_0x309c35[_0xd6e9('0x36')]);_0x31cf0f['filters']=_['intersection'](_0x31cf0f['model'],_0x31cf0f['query']);_0x295a3e['attributes']=_[_0xd6e9('0x45')](_0x31cf0f[_0xd6e9('0x35')],qs[_0xd6e9('0x46')](_0x309c35['query'][_0xd6e9('0x46')]));_0x295a3e['attributes']=_0x295a3e[_0xd6e9('0x39')]['length']?_0x295a3e[_0xd6e9('0x39')]:_0x31cf0f[_0xd6e9('0x35')];if(_0x309c35[_0xd6e9('0x36')][_0xd6e9('0x47')]){_0x295a3e[_0xd6e9('0x48')]=[{'all':!![]}];}_0x295a3e=_[_0xd6e9('0x49')]({},_0x295a3e,_0x309c35[_0xd6e9('0x40')]);return db[_0xd6e9('0x30')][_0xd6e9('0x4a')](_0x295a3e)[_0xd6e9('0x28')](handleEntityNotFound(_0x58b826,null))[_0xd6e9('0x28')](respondWithResult(_0x58b826,null))[_0xd6e9('0x42')](handleError(_0x58b826,null));};exports['create']=function(_0xf7dd5e,_0x1a1031){return db['SalesforceField'][_0xd6e9('0x4b')](_0xf7dd5e[_0xd6e9('0x4c')],{})[_0xd6e9('0x28')](respondWithResult(_0x1a1031,0xc9))['catch'](handleError(_0x1a1031,null));};exports[_0xd6e9('0x27')]=function(_0x72d121,_0x10d92d){if(_0x72d121[_0xd6e9('0x4c')]['id']){delete _0x72d121[_0xd6e9('0x4c')]['id'];}return db[_0xd6e9('0x30')][_0xd6e9('0x4a')]({'where':{'id':_0x72d121[_0xd6e9('0x44')]['id']}})[_0xd6e9('0x28')](handleEntityNotFound(_0x10d92d,null))[_0xd6e9('0x28')](saveUpdates(_0x72d121[_0xd6e9('0x4c')],null))[_0xd6e9('0x28')](respondWithResult(_0x10d92d,null))[_0xd6e9('0x42')](handleError(_0x10d92d,null));};exports[_0xd6e9('0x29')]=function(_0x229097,_0x460555){return db['SalesforceField'][_0xd6e9('0x4a')]({'where':{'id':_0x229097[_0xd6e9('0x44')]['id']}})[_0xd6e9('0x28')](handleEntityNotFound(_0x460555,null))['then'](removeEntity(_0x460555,null))[_0xd6e9('0x42')](handleError(_0x460555,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb00a=['define','SalesforceField','int_salesforce_fields','salesforce_unique_index','lodash','util','../../config/logger','api','bluebird','path','rimraf','./intSalesforceField.attributes','exports'];(function(_0x265f9c,_0x361430){var _0x2ddac9=function(_0x47c902){while(--_0x47c902){_0x265f9c['push'](_0x265f9c['shift']());}};_0x2ddac9(++_0x361430);}(_0xb00a,0x1d8));var _0xab00=function(_0x327517,_0x3acc5a){_0x327517=_0x327517-0x0;var _0x3be3a3=_0xb00a[_0x327517];return _0x3be3a3;};'use strict';var _=require(_0xab00('0x0'));var util=require(_0xab00('0x1'));var logger=require(_0xab00('0x2'))(_0xab00('0x3'));var moment=require('moment');var BPromise=require(_0xab00('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xab00('0x5'));var rimraf=require(_0xab00('0x6'));var config=require('../../config/environment');var attributes=require(_0xab00('0x7'));module[_0xab00('0x8')]=function(_0x423971,_0x251357){return _0x423971[_0xab00('0x9')](_0xab00('0xa'),attributes,{'tableName':_0xab00('0xb'),'paranoid':![],'indexes':[{'name':_0xab00('0xc'),'fields':['idField','FieldId'],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x54dc=['int_salesforce_fields','salesforce_unique_index','FieldId','util','api','bluebird','request-promise','path','rimraf','exports','define','SalesforceField'];(function(_0x46e49f,_0x395d92){var _0x1f2754=function(_0x11e825){while(--_0x11e825){_0x46e49f['push'](_0x46e49f['shift']());}};_0x1f2754(++_0x395d92);}(_0x54dc,0x1d7));var _0xc54d=function(_0x41ba7c,_0x21b2bb){_0x41ba7c=_0x41ba7c-0x0;var _0xb1bf6a=_0x54dc[_0x41ba7c];return _0xb1bf6a;};'use strict';var _=require('lodash');var util=require(_0xc54d('0x0'));var logger=require('../../config/logger')(_0xc54d('0x1'));var moment=require('moment');var BPromise=require(_0xc54d('0x2'));var rp=require(_0xc54d('0x3'));var fs=require('fs');var path=require(_0xc54d('0x4'));var rimraf=require(_0xc54d('0x5'));var config=require('../../config/environment');var attributes=require('./intSalesforceField.attributes');module[_0xc54d('0x6')]=function(_0x4b4840,_0x45f7dd){return _0x4b4840[_0xc54d('0x7')](_0xc54d('0x8'),attributes,{'tableName':_0xc54d('0x9'),'paranoid':![],'indexes':[{'name':_0xc54d('0xa'),'fields':['idField',_0xc54d('0xb')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9303=['stringify','error','code','SalesforceField,\x20%s,\x20%s','message','result','catch','lodash','util','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','then','info','request\x20sent','debug'];(function(_0x22a75f,_0xf98f1f){var _0x583584=function(_0x48a6cc){while(--_0x48a6cc){_0x22a75f['push'](_0x22a75f['shift']());}};_0x583584(++_0xf98f1f);}(_0x9303,0x1d5));var _0x3930=function(_0x5eb294,_0x5b52ba){_0x5eb294=_0x5eb294-0x0;var _0xd139fd=_0x9303[_0x5eb294];return _0xd139fd;};'use strict';var _=require(_0x3930('0x0'));var util=require(_0x3930('0x1'));var moment=require('moment');var BPromise=require(_0x3930('0x2'));var rs=require(_0x3930('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x3930('0x4'))['db'];var utils=require(_0x3930('0x5'));var logger=require(_0x3930('0x6'))('rpc');var config=require(_0x3930('0x7'));var jayson=require(_0x3930('0x8'));var client=jayson[_0x3930('0x9')][_0x3930('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x2288b1,_0x57309d,_0x1cee66){return new BPromise(function(_0xc5b62e,_0x2eb943){return client['request'](_0x2288b1,_0x1cee66)[_0x3930('0xb')](function(_0x3b0628){logger[_0x3930('0xc')]('SalesforceField,\x20%s,\x20%s',_0x57309d,_0x3930('0xd'));logger[_0x3930('0xe')]('SalesforceField,\x20%s,\x20%s,\x20%s',_0x57309d,_0x3930('0xd'),JSON[_0x3930('0xf')](_0x3b0628));if(_0x3b0628[_0x3930('0x10')]){if(_0x3b0628['error'][_0x3930('0x11')]===0x1f4){logger['error'](_0x3930('0x12'),_0x57309d,_0x3b0628[_0x3930('0x10')][_0x3930('0x13')]);return _0x2eb943(_0x3b0628['error']['message']);}logger[_0x3930('0x10')](_0x3930('0x12'),_0x57309d,_0x3b0628[_0x3930('0x10')]['message']);return _0xc5b62e(_0x3b0628['error'][_0x3930('0x13')]);}else{logger[_0x3930('0xc')](_0x3930('0x12'),_0x57309d,'request\x20sent');_0xc5b62e(_0x3b0628[_0x3930('0x14')]['message']);}})[_0x3930('0x15')](function(_0x45db3c){logger[_0x3930('0x10')](_0x3930('0x12'),_0x57309d,_0x45db3c);_0x2eb943(_0x45db3c);});});}
\ No newline at end of file
+var _0x651d=['SalesforceField,\x20%s,\x20%s,\x20%s','error','code','message','result','lodash','util','moment','bluebird','ioredis','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','then','info','SalesforceField,\x20%s,\x20%s','request\x20sent','debug'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0x651d,0x140));var _0xd651=function(_0x25a42a,_0x3d489b){_0x25a42a=_0x25a42a-0x0;var _0x1129b1=_0x651d[_0x25a42a];return _0x1129b1;};'use strict';var _=require(_0xd651('0x0'));var util=require(_0xd651('0x1'));var moment=require(_0xd651('0x2'));var BPromise=require(_0xd651('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xd651('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0xd651('0x5'));var logger=require(_0xd651('0x6'))(_0xd651('0x7'));var config=require('../../config/environment');var jayson=require(_0xd651('0x8'));var client=jayson[_0xd651('0x9')][_0xd651('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x135843,_0x279327,_0x1874f1){return new BPromise(function(_0x5c1022,_0x112c5c){return client['request'](_0x135843,_0x1874f1)[_0xd651('0xb')](function(_0x1865f7){logger[_0xd651('0xc')](_0xd651('0xd'),_0x279327,_0xd651('0xe'));logger[_0xd651('0xf')](_0xd651('0x10'),_0x279327,_0xd651('0xe'),JSON['stringify'](_0x1865f7));if(_0x1865f7['error']){if(_0x1865f7[_0xd651('0x11')][_0xd651('0x12')]===0x1f4){logger['error'](_0xd651('0xd'),_0x279327,_0x1865f7[_0xd651('0x11')]['message']);return _0x112c5c(_0x1865f7[_0xd651('0x11')][_0xd651('0x13')]);}logger['error'](_0xd651('0xd'),_0x279327,_0x1865f7[_0xd651('0x11')]['message']);return _0x5c1022(_0x1865f7[_0xd651('0x11')][_0xd651('0x13')]);}else{logger['info']('SalesforceField,\x20%s,\x20%s',_0x279327,_0xd651('0xe'));_0x5c1022(_0x1865f7[_0xd651('0x14')][_0xd651('0x13')]);}})['catch'](function(_0x1821a7){logger[_0xd651('0x11')](_0xd651('0xd'),_0x279327,_0x1821a7);_0x112c5c(_0x1821a7);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x94c9=['destroy','exports','multer','util','path','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./intServicenowAccount.controller','get','isAuthenticated','index','/:id','show','/:id/configurations','getConfigurations','/:id/fields','getFields','post','create','addConfiguration','put','update'];(function(_0x56e6b4,_0x5b06a8){var _0x5efddb=function(_0x5acbf3){while(--_0x5acbf3){_0x56e6b4['push'](_0x56e6b4['shift']());}};_0x5efddb(++_0x5b06a8);}(_0x94c9,0x1dd));var _0x994c=function(_0x6fba43,_0x4af89f){_0x6fba43=_0x6fba43-0x0;var _0x48fe20=_0x94c9[_0x6fba43];return _0x48fe20;};'use strict';var multer=require(_0x994c('0x0'));var util=require(_0x994c('0x1'));var path=require(_0x994c('0x2'));var timeout=require('connect-timeout');var express=require(_0x994c('0x3'));var router=express[_0x994c('0x4')]();var fs_extra=require(_0x994c('0x5'));var auth=require(_0x994c('0x6'));var interaction=require(_0x994c('0x7'));var config=require('../../config/environment');var controller=require(_0x994c('0x8'));router[_0x994c('0x9')]('/',auth[_0x994c('0xa')](),controller[_0x994c('0xb')]);router[_0x994c('0x9')](_0x994c('0xc'),auth[_0x994c('0xa')](),controller[_0x994c('0xd')]);router['get'](_0x994c('0xe'),auth[_0x994c('0xa')](),controller[_0x994c('0xf')]);router[_0x994c('0x9')](_0x994c('0x10'),auth[_0x994c('0xa')](),controller[_0x994c('0x11')]);router[_0x994c('0x12')]('/',auth[_0x994c('0xa')](),controller[_0x994c('0x13')]);router[_0x994c('0x12')](_0x994c('0xe'),auth['isAuthenticated'](),controller[_0x994c('0x14')]);router[_0x994c('0x15')](_0x994c('0xc'),auth[_0x994c('0xa')](),controller[_0x994c('0x16')]);router['delete'](_0x994c('0xc'),auth[_0x994c('0xa')](),controller[_0x994c('0x17')]);module[_0x994c('0x18')]=router;
\ No newline at end of file
+var _0x9eb5=['isAuthenticated','index','/:id','show','/:id/configurations','getFields','create','post','put','update','delete','destroy','exports','multer','util','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','get'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0x9eb5,0x15d));var _0x59eb=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x9eb5[_0x321bb2];return _0x9c12ed;};'use strict';var multer=require(_0x59eb('0x0'));var util=require(_0x59eb('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require(_0x59eb('0x2'));var router=express[_0x59eb('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x59eb('0x4'));var interaction=require(_0x59eb('0x5'));var config=require(_0x59eb('0x6'));var controller=require('./intServicenowAccount.controller');router[_0x59eb('0x7')]('/',auth[_0x59eb('0x8')](),controller[_0x59eb('0x9')]);router[_0x59eb('0x7')](_0x59eb('0xa'),auth[_0x59eb('0x8')](),controller[_0x59eb('0xb')]);router['get'](_0x59eb('0xc'),auth[_0x59eb('0x8')](),controller['getConfigurations']);router[_0x59eb('0x7')]('/:id/fields',auth[_0x59eb('0x8')](),controller[_0x59eb('0xd')]);router['post']('/',auth['isAuthenticated'](),controller[_0x59eb('0xe')]);router[_0x59eb('0xf')](_0x59eb('0xc'),auth[_0x59eb('0x8')](),controller['addConfiguration']);router[_0x59eb('0x10')](_0x59eb('0xa'),auth[_0x59eb('0x8')](),controller[_0x59eb('0x11')]);router[_0x59eb('0x12')](_0x59eb('0xa'),auth[_0x59eb('0x8')](),controller[_0x59eb('0x13')]);module[_0x59eb('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0d42=['remoteUri','sequelize','exports','STRING','username'];(function(_0x39327f,_0x4d5fe7){var _0x5f2b8c=function(_0x3948b7){while(--_0x3948b7){_0x39327f['push'](_0x39327f['shift']());}};_0x5f2b8c(++_0x4d5fe7);}(_0x0d42,0x1d7));var _0x20d4=function(_0x17d45b,_0x41abad){_0x17d45b=_0x17d45b-0x0;var _0x2755ca=_0x0d42[_0x17d45b];return _0x2755ca;};'use strict';var Sequelize=require(_0x20d4('0x0'));module[_0x20d4('0x1')]={'name':{'type':Sequelize[_0x20d4('0x2')]},'description':{'type':Sequelize[_0x20d4('0x2')]},'username':{'type':Sequelize[_0x20d4('0x2')],'unique':_0x20d4('0x3')},'password':{'type':Sequelize[_0x20d4('0x2')]},'email':{'type':Sequelize['STRING']},'remoteUri':{'type':Sequelize[_0x20d4('0x2')],'unique':_0x20d4('0x4')},'serverUrl':{'type':Sequelize[_0x20d4('0x2')],'allowNull':![]}};
\ No newline at end of file
+var _0x1a96=['username','remoteUri','sequelize','exports','STRING'];(function(_0xf1fe16,_0x161785){var _0x13df48=function(_0x331bd2){while(--_0x331bd2){_0xf1fe16['push'](_0xf1fe16['shift']());}};_0x13df48(++_0x161785);}(_0x1a96,0x93));var _0x61a9=function(_0x1385f8,_0x4c2530){_0x1385f8=_0x1385f8-0x0;var _0x34835c=_0x1a96[_0x1385f8];return _0x34835c;};'use strict';var Sequelize=require(_0x61a9('0x0'));module[_0x61a9('0x1')]={'name':{'type':Sequelize[_0x61a9('0x2')]},'description':{'type':Sequelize[_0x61a9('0x2')]},'username':{'type':Sequelize[_0x61a9('0x2')],'unique':_0x61a9('0x3')},'password':{'type':Sequelize['STRING']},'email':{'type':Sequelize[_0x61a9('0x2')]},'remoteUri':{'type':Sequelize[_0x61a9('0x2')],'unique':_0x61a9('0x4')},'serverUrl':{'type':Sequelize[_0x61a9('0x2')],'allowNull':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5c7f=['sys_updated_on','child_incidents','hold_reason','number','sys_updated_by','opened_by','sys_domain','state','sys_created_by','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','caller_id','approval_set','subcategory','work_notes','short_description','work_start','business_stc','description','notify','sys_class_name','close_notes','closed_by','parent_incident','sys_id','reopened_by','urgency','problem_id','company','reassignment_count','activity_due','assigned_to','severity','comments','sla_due','approval','comments_and_work_notes','sys_mod_count','reopen_count','sys_tags','escalation','location','password','email','serverUrl','remoteUri','slice','substring','lastIndexOf','format','%s/api/now/doc/table/schema/','%s/api/now/table/','username','GET','result','incident\x20table\x20objects','remove','includes','forEach','internalType','label','push','all','assign','log','test','statusCode','send','Wrong\x20credentials','true','False','sys_choice?sysparm_query=name=incident^element=','inactive','false','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','end','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','update','then','error','stack','index','map','rawAttributes','fieldName','type','model','name','query','intersection','attributes','fields','length','hasOwnProperty','order','sort','filters','pick','merge','where','options','ServicenowAccount','include','findAll','rows','params','keys','includeAll','catch','create','body','destroy','find','getConfigurations','findOne','ServicenowConfiguration','filter','nolimit','addConfiguration','AccountId','channel','Descriptions','getDescriptions','Subjects','ServicenowField','getFields','made_sla','knowledge','close_code','incident_state','category','parent','watch_list','upon_reject'];(function(_0x3f7676,_0x1b125c){var _0x10fb04=function(_0xf401ed){while(--_0xf401ed){_0x3f7676['push'](_0x3f7676['shift']());}};_0x10fb04(++_0x1b125c);}(_0x5c7f,0x10e));var _0xf5c7=function(_0x725b8e,_0xc22b48){_0x725b8e=_0x725b8e-0x0;var _0x43ac45=_0x5c7f[_0x725b8e];return _0x43ac45;};'use strict';var emlformat=require(_0xf5c7('0x0'));var rimraf=require(_0xf5c7('0x1'));var zipdir=require(_0xf5c7('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xf5c7('0x3'));var moment=require(_0xf5c7('0x4'));var BPromise=require(_0xf5c7('0x5'));var Mustache=require(_0xf5c7('0x6'));var util=require(_0xf5c7('0x7'));var path=require(_0xf5c7('0x8'));var sox=require(_0xf5c7('0x9'));var csv=require(_0xf5c7('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xf5c7('0xb'));var _=require(_0xf5c7('0xc'));var squel=require(_0xf5c7('0xd'));var crypto=require(_0xf5c7('0xe'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xf5c7('0xa'));var querystring=require('querystring');var Papa=require(_0xf5c7('0xf'));var Redis=require(_0xf5c7('0x10'));var authService=require(_0xf5c7('0x11'));var qs=require(_0xf5c7('0x12'));var as=require(_0xf5c7('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xf5c7('0x14'))(_0xf5c7('0x15'));var utils=require(_0xf5c7('0x16'));var config=require(_0xf5c7('0x17'));var licenseUtil=require(_0xf5c7('0x18'));var db=require(_0xf5c7('0x19'))['db'];var integrations=require(_0xf5c7('0x1a'));function respondWithStatusCode(_0x5c7ee2,_0x4f730c){_0x4f730c=_0x4f730c||0xcc;return function(_0x4abfff){if(_0x4abfff){return _0x5c7ee2[_0xf5c7('0x1b')](_0x4f730c);}return _0x5c7ee2['status'](_0x4f730c)[_0xf5c7('0x1c')]();};}function respondWithResult(_0x586edb,_0x1e18ee){_0x1e18ee=_0x1e18ee||0xc8;return function(_0x507a1d){if(_0x507a1d){return _0x586edb[_0xf5c7('0x1d')](_0x1e18ee)[_0xf5c7('0x1e')](_0x507a1d);}};}function respondWithFilteredResult(_0x39216c,_0x45c1ef){return function(_0x3f6a99){if(_0x3f6a99){var _0x49c8f3=typeof _0x45c1ef[_0xf5c7('0x1f')]===_0xf5c7('0x20')&&typeof _0x45c1ef[_0xf5c7('0x21')]===_0xf5c7('0x20');var _0x242b76=_0x3f6a99[_0xf5c7('0x22')];var _0x2d312a=_0x49c8f3?0x0:_0x45c1ef[_0xf5c7('0x1f')];var _0xe44fcb=_0x49c8f3?_0x3f6a99['count']:_0x45c1ef['offset']+_0x45c1ef[_0xf5c7('0x21')];var _0x12d1f0;if(_0xe44fcb>=_0x242b76){_0xe44fcb=_0x242b76;_0x12d1f0=0xc8;}else{_0x12d1f0=0xce;}_0x39216c['status'](_0x12d1f0);return _0x39216c[_0xf5c7('0x23')](_0xf5c7('0x24'),_0x2d312a+'-'+_0xe44fcb+'/'+_0x242b76)[_0xf5c7('0x1e')](_0x3f6a99);}return null;};}function patchUpdates(_0x18211a){return function(_0x4dbcd6){try{jsonpatch[_0xf5c7('0x25')](_0x4dbcd6,_0x18211a,!![]);}catch(_0xecf958){return BPromise[_0xf5c7('0x26')](_0xecf958);}return _0x4dbcd6['save']();};}function saveUpdates(_0x842db7,_0xd29221){return function(_0x537f05){if(_0x537f05){return _0x537f05[_0xf5c7('0x27')](_0x842db7)[_0xf5c7('0x28')](function(_0x59837b){return _0x59837b;});}return null;};}function removeEntity(_0x456004,_0x2c43b1){return function(_0x1e29fd){if(_0x1e29fd){return _0x1e29fd['destroy']()['then'](function(){_0x456004[_0xf5c7('0x1d')](0xcc)['end']();});}};}function handleEntityNotFound(_0x2a40ca,_0x23af54){return function(_0x3dcfa1){if(!_0x3dcfa1){_0x2a40ca[_0xf5c7('0x1b')](0x194);}return _0x3dcfa1;};}function handleError(_0x227e1f,_0x1fdf18){_0x1fdf18=_0x1fdf18||0x1f4;return function(_0x84c485){logger[_0xf5c7('0x29')](_0x84c485[_0xf5c7('0x2a')]);if(_0x84c485['name']){delete _0x84c485['name'];}_0x227e1f[_0xf5c7('0x1d')](_0x1fdf18)['send'](_0x84c485);};}exports[_0xf5c7('0x2b')]=function(_0x1b1de7,_0xc6a9f3){var _0x1f465d={},_0x23309e={},_0x5a892d={'count':0x0,'rows':[]};var _0x37ddcd=_[_0xf5c7('0x2c')](db['ServicenowAccount'][_0xf5c7('0x2d')],function(_0x2619bc){return{'name':_0x2619bc[_0xf5c7('0x2e')],'type':_0x2619bc[_0xf5c7('0x2f')]['key']};});_0x23309e[_0xf5c7('0x30')]=_[_0xf5c7('0x2c')](_0x37ddcd,_0xf5c7('0x31'));_0x23309e[_0xf5c7('0x32')]=_['keys'](_0x1b1de7['query']);_0x23309e['filters']=_[_0xf5c7('0x33')](_0x23309e[_0xf5c7('0x30')],_0x23309e[_0xf5c7('0x32')]);_0x1f465d[_0xf5c7('0x34')]=_[_0xf5c7('0x33')](_0x23309e['model'],qs[_0xf5c7('0x35')](_0x1b1de7['query'][_0xf5c7('0x35')]));_0x1f465d['attributes']=_0x1f465d[_0xf5c7('0x34')][_0xf5c7('0x36')]?_0x1f465d[_0xf5c7('0x34')]:_0x23309e[_0xf5c7('0x30')];if(!_0x1b1de7[_0xf5c7('0x32')][_0xf5c7('0x37')]('nolimit')){_0x1f465d[_0xf5c7('0x21')]=qs['limit'](_0x1b1de7[_0xf5c7('0x32')][_0xf5c7('0x21')]);_0x1f465d['offset']=qs[_0xf5c7('0x1f')](_0x1b1de7[_0xf5c7('0x32')][_0xf5c7('0x1f')]);}_0x1f465d[_0xf5c7('0x38')]=qs[_0xf5c7('0x39')](_0x1b1de7[_0xf5c7('0x32')]['sort']);_0x1f465d['where']=qs[_0xf5c7('0x3a')](_[_0xf5c7('0x3b')](_0x1b1de7[_0xf5c7('0x32')],_0x23309e[_0xf5c7('0x3a')]),_0x37ddcd);if(_0x1b1de7[_0xf5c7('0x32')]['filter']){_0x1f465d['where']=_[_0xf5c7('0x3c')](_0x1f465d[_0xf5c7('0x3d')],{'$or':_[_0xf5c7('0x2c')](_0x37ddcd,function(_0x3c7dac){if(_0x3c7dac[_0xf5c7('0x2f')]!=='VIRTUAL'){var _0x17523e={};_0x17523e[_0x3c7dac[_0xf5c7('0x31')]]={'$like':'%'+_0x1b1de7[_0xf5c7('0x32')]['filter']+'%'};return _0x17523e;}})});}_0x1f465d=_['merge']({},_0x1f465d,_0x1b1de7[_0xf5c7('0x3e')]);var _0x109a85={'where':_0x1f465d[_0xf5c7('0x3d')]};return db[_0xf5c7('0x3f')][_0xf5c7('0x22')](_0x109a85)[_0xf5c7('0x28')](function(_0x15fb1c){_0x5a892d[_0xf5c7('0x22')]=_0x15fb1c;if(_0x1b1de7[_0xf5c7('0x32')]['includeAll']){_0x1f465d[_0xf5c7('0x40')]=[{'all':!![]}];}return db[_0xf5c7('0x3f')][_0xf5c7('0x41')](_0x1f465d);})['then'](function(_0x4c9fc3){_0x5a892d[_0xf5c7('0x42')]=_0x4c9fc3;return _0x5a892d;})[_0xf5c7('0x28')](respondWithFilteredResult(_0xc6a9f3,_0x1f465d))['catch'](handleError(_0xc6a9f3,null));};exports['show']=function(_0x463430,_0x828582){var _0x3bc862={'raw':![],'where':{'id':_0x463430[_0xf5c7('0x43')]['id']}},_0xca2d52={};_0xca2d52['model']=_[_0xf5c7('0x44')](db[_0xf5c7('0x3f')][_0xf5c7('0x2d')]);_0xca2d52[_0xf5c7('0x32')]=_[_0xf5c7('0x44')](_0x463430[_0xf5c7('0x32')]);_0xca2d52[_0xf5c7('0x3a')]=_[_0xf5c7('0x33')](_0xca2d52[_0xf5c7('0x30')],_0xca2d52[_0xf5c7('0x32')]);_0x3bc862[_0xf5c7('0x34')]=_['intersection'](_0xca2d52[_0xf5c7('0x30')],qs[_0xf5c7('0x35')](_0x463430['query']['fields']));_0x3bc862[_0xf5c7('0x34')]=_0x3bc862[_0xf5c7('0x34')][_0xf5c7('0x36')]?_0x3bc862['attributes']:_0xca2d52['model'];if(_0x463430[_0xf5c7('0x32')][_0xf5c7('0x45')]){_0x3bc862[_0xf5c7('0x40')]=[{'all':!![]}];}_0x3bc862=_[_0xf5c7('0x3c')]({},_0x3bc862,_0x463430[_0xf5c7('0x3e')]);return db['ServicenowAccount']['find'](_0x3bc862)[_0xf5c7('0x28')](handleEntityNotFound(_0x828582,null))[_0xf5c7('0x28')](respondWithResult(_0x828582,null))[_0xf5c7('0x46')](handleError(_0x828582,null));};exports[_0xf5c7('0x47')]=function(_0x9f2037,_0x893874){return db[_0xf5c7('0x3f')][_0xf5c7('0x47')](_0x9f2037[_0xf5c7('0x48')],{})['then'](respondWithResult(_0x893874,0xc9))['catch'](handleError(_0x893874,null));};exports['update']=function(_0x545967,_0x3c5f99){if(_0x545967['body']['id']){delete _0x545967[_0xf5c7('0x48')]['id'];}return db[_0xf5c7('0x3f')]['find']({'where':{'id':_0x545967[_0xf5c7('0x43')]['id']}})[_0xf5c7('0x28')](handleEntityNotFound(_0x3c5f99,null))[_0xf5c7('0x28')](saveUpdates(_0x545967['body'],null))['then'](respondWithResult(_0x3c5f99,null))[_0xf5c7('0x46')](handleError(_0x3c5f99,null));};exports[_0xf5c7('0x49')]=function(_0x3e4fb6,_0x18eb90){return db[_0xf5c7('0x3f')][_0xf5c7('0x4a')]({'where':{'id':_0x3e4fb6[_0xf5c7('0x43')]['id']}})[_0xf5c7('0x28')](handleEntityNotFound(_0x18eb90,null))[_0xf5c7('0x28')](removeEntity(_0x18eb90,null))[_0xf5c7('0x46')](handleError(_0x18eb90,null));};exports[_0xf5c7('0x4b')]=function(_0x1e515a,_0xd27d0e,_0x100102){var _0x1135b6={};var _0x4053cb={};var _0x2c66b5;var _0x59130c;return db['ServicenowAccount'][_0xf5c7('0x4c')]({'where':{'id':_0x1e515a[_0xf5c7('0x43')]['id']}})[_0xf5c7('0x28')](handleEntityNotFound(_0xd27d0e,null))[_0xf5c7('0x28')](function(_0x363836){if(_0x363836){_0x2c66b5=_0x363836;_0x4053cb['model']=_['keys'](db[_0xf5c7('0x4d')]['rawAttributes']);_0x4053cb['query']=_[_0xf5c7('0x44')](_0x1e515a[_0xf5c7('0x32')]);_0x4053cb['filters']=_['intersection'](_0x4053cb[_0xf5c7('0x30')],_0x4053cb['query']);_0x1135b6[_0xf5c7('0x34')]=_[_0xf5c7('0x33')](_0x4053cb['model'],qs[_0xf5c7('0x35')](_0x1e515a[_0xf5c7('0x32')]['fields']));_0x1135b6[_0xf5c7('0x34')]=_0x1135b6['attributes'][_0xf5c7('0x36')]?_0x1135b6[_0xf5c7('0x34')]:_0x4053cb['model'];_0x1135b6[_0xf5c7('0x38')]=qs[_0xf5c7('0x39')](_0x1e515a[_0xf5c7('0x32')][_0xf5c7('0x39')]);_0x1135b6[_0xf5c7('0x3d')]=qs[_0xf5c7('0x3a')](_['pick'](_0x1e515a[_0xf5c7('0x32')],_0x4053cb[_0xf5c7('0x3a')]));if(_0x1e515a[_0xf5c7('0x32')]['filter']){_0x1135b6[_0xf5c7('0x3d')]=_[_0xf5c7('0x3c')](_0x1135b6[_0xf5c7('0x3d')],{'$or':_[_0xf5c7('0x2c')](_0x1135b6[_0xf5c7('0x34')],function(_0x1ec416){var _0x7f082a={};_0x7f082a[_0x1ec416]={'$like':'%'+_0x1e515a[_0xf5c7('0x32')][_0xf5c7('0x4e')]+'%'};return _0x7f082a;})});}_0x1135b6=_['merge']({},_0x1135b6,_0x1e515a['options']);return _0x2c66b5['getConfigurations'](_0x1135b6);}})[_0xf5c7('0x28')](function(_0x497911){if(_0x497911){_0x59130c=_0x497911[_0xf5c7('0x36')];if(!_0x1e515a[_0xf5c7('0x32')][_0xf5c7('0x37')](_0xf5c7('0x4f'))){_0x1135b6[_0xf5c7('0x21')]=qs['limit'](_0x1e515a[_0xf5c7('0x32')]['limit']);_0x1135b6['offset']=qs['offset'](_0x1e515a['query'][_0xf5c7('0x1f')]);}return _0x2c66b5['getConfigurations'](_0x1135b6);}})[_0xf5c7('0x28')](function(_0x464e17){if(_0x464e17){return _0x464e17?{'count':_0x59130c,'rows':_0x464e17}:null;}})[_0xf5c7('0x28')](respondWithResult(_0xd27d0e,null))[_0xf5c7('0x46')](handleError(_0xd27d0e,null));};exports[_0xf5c7('0x50')]=function(_0x1421e1,_0x4355d9,_0x9d27e){if(_0x1421e1[_0xf5c7('0x48')]['id']){delete _0x1421e1[_0xf5c7('0x48')]['id'];}return db[_0xf5c7('0x3f')][_0xf5c7('0x4c')]({'where':{'id':_0x1421e1[_0xf5c7('0x43')]['id']}})[_0xf5c7('0x28')](handleEntityNotFound(_0x4355d9,null))[_0xf5c7('0x28')](function(_0xd9d99f){if(_0xd9d99f){_0x1421e1['body'][_0xf5c7('0x51')]=_0xd9d99f['id'];_0x1421e1[_0xf5c7('0x48')]['Subjects']=integrations['getSubjects'](_0x1421e1[_0xf5c7('0x48')][_0xf5c7('0x52')],_0x1421e1[_0xf5c7('0x48')][_0xf5c7('0x2f')]);_0x1421e1[_0xf5c7('0x48')][_0xf5c7('0x53')]=integrations[_0xf5c7('0x54')](_0x1421e1['body'][_0xf5c7('0x52')],_0x1421e1[_0xf5c7('0x48')]['type']);return db[_0xf5c7('0x4d')][_0xf5c7('0x47')](_0x1421e1[_0xf5c7('0x48')],{'include':[{'model':db['ServicenowField'],'as':_0xf5c7('0x55')},{'model':db[_0xf5c7('0x56')],'as':_0xf5c7('0x53')}]});}return null;})[_0xf5c7('0x28')](respondWithResult(_0x4355d9,null))['catch'](handleError(_0x4355d9,null));};exports[_0xf5c7('0x57')]=function(_0x20668d,_0x1679c1,_0x1b8da9){var _0x2b5cc7=[_0xf5c7('0x58'),'hold_reason',_0xf5c7('0x59'),'subcategory',_0xf5c7('0x5a'),'notify',_0xf5c7('0x5b'),'severity',_0xf5c7('0x5c')];var _0x5e13be=[_0xf5c7('0x5d'),'made_sla','caused_by',_0xf5c7('0x5e'),_0xf5c7('0x5f'),_0xf5c7('0x60'),_0xf5c7('0x61'),_0xf5c7('0x62'),'approval_history',_0xf5c7('0x63'),'resolved_by',_0xf5c7('0x64'),_0xf5c7('0x65'),'user_input','sys_created_on',_0xf5c7('0x66'),_0xf5c7('0x67'),_0xf5c7('0x68'),'knowledge',_0xf5c7('0x38'),'calendar_stc',_0xf5c7('0x69'),_0xf5c7('0x6a'),'delivery_plan',_0xf5c7('0x6b'),_0xf5c7('0x6c'),_0xf5c7('0x6d'),_0xf5c7('0x6e'),_0xf5c7('0x6f'),_0xf5c7('0x70'),_0xf5c7('0x71'),_0xf5c7('0x72'),'expected_start',_0xf5c7('0x73'),_0xf5c7('0x74'),_0xf5c7('0x75'),_0xf5c7('0x76'),_0xf5c7('0x77'),'resolved_at',_0xf5c7('0x78'),_0xf5c7('0x79'),_0xf5c7('0x7a'),_0xf5c7('0x7b'),_0xf5c7('0x7c'),'close_code','correlation_display','delivery_task',_0xf5c7('0x7d'),'assignment_group',_0xf5c7('0x7e'),'additional_assignee_list',_0xf5c7('0x7f'),'calendar_duration',_0xf5c7('0x80'),_0xf5c7('0x81'),_0xf5c7('0x82'),_0xf5c7('0x83'),'follow_up',_0xf5c7('0x84'),_0xf5c7('0x85'),'contact_type',_0xf5c7('0x86'),_0xf5c7('0x5b'),_0xf5c7('0x87'),_0xf5c7('0x88'),_0xf5c7('0x89'),_0xf5c7('0x8a'),_0xf5c7('0x8b'),_0xf5c7('0x8c'),_0xf5c7('0x8d'),_0xf5c7('0x8e'),_0xf5c7('0x8f'),_0xf5c7('0x90'),_0xf5c7('0x91'),'due_date',_0xf5c7('0x92'),_0xf5c7('0x93'),_0xf5c7('0x94'),_0xf5c7('0x95'),'upon_approval','correlation_id',_0xf5c7('0x96'),_0xf5c7('0x5c')];var _0x5e6f11='';var _0x5b2076='';var _0x29575e=[];var _0x775225='';var _0x4fe15d='';var _0x17b549=[];var _0x57541e='';var _0x59362f='';var _0x360a17={};var _0x1aacdb='';return db[_0xf5c7('0x3f')][_0xf5c7('0x4c')]({'where':{'id':_0x20668d['params']['id']},'attributes':['id','username',_0xf5c7('0x97'),_0xf5c7('0x98'),'remoteUri',_0xf5c7('0x99')]})[_0xf5c7('0x28')](handleEntityNotFound(_0x1679c1,null))[_0xf5c7('0x28')](function(_0x259aa6){if(_0x259aa6){_0x1aacdb=_0x259aa6[_0xf5c7('0x9a')];var _0x4e5a92=_0x1aacdb[_0xf5c7('0x9b')](-0x1);if(_0x4e5a92==='/'){_0x1aacdb=_0x1aacdb[_0xf5c7('0x9c')](0x0,_0x1aacdb[_0xf5c7('0x9d')](_0x4e5a92));}_0x59362f=util[_0xf5c7('0x9e')](_0xf5c7('0x9f'),_0x1aacdb);_0x57541e=util['format'](_0xf5c7('0xa0'),_0x1aacdb);_0x360a17={'user':_0x259aa6[_0xf5c7('0xa1')],'pass':_0x259aa6[_0xf5c7('0x97')]};var _0x1aa8bd={'method':_0xf5c7('0xa2'),'uri':_0x59362f+'incident?sysparm_display_value=all','auth':_0x360a17,'json':!![]};return rp(_0x1aa8bd);}})[_0xf5c7('0x28')](function(_0x7ffde1){if(_0x7ffde1[_0xf5c7('0xa3')][_0xf5c7('0x36')]>0x0){_0x5e6f11=_0x7ffde1[_0xf5c7('0xa3')];}console['log'](_0xf5c7('0xa4'),_0x5e6f11);_0x17b549=[];_0x5b2076=Object['assign']([],_0x5e6f11);_[_0xf5c7('0xa5')](_0x5b2076,function(_0x5be724){return!_0x2b5cc7[_0xf5c7('0xa6')](_0x5be724[_0xf5c7('0x31')]);});_0x5b2076[_0xf5c7('0xa7')](function(_0x194c7b){var _0xfe1db9=createFieldObject(_0x57541e,_0x360a17,_0x194c7b[_0xf5c7('0xa8')],_0x194c7b[_0xf5c7('0x31')],_0x194c7b[_0xf5c7('0xa9')],![]);_0x17b549[_0xf5c7('0xaa')](_0xfe1db9);});return Promise[_0xf5c7('0xab')](_0x17b549);})[_0xf5c7('0x28')](function(_0x4877fa){_0x29575e=_0x4877fa;_0x775225=Object[_0xf5c7('0xac')]([],_0x5e6f11);console[_0xf5c7('0xad')]('TCL:\x20_object',_0x5e6f11);_[_0xf5c7('0xa5')](_0x775225,function(_0x3a4f76){return _0x5e13be['includes'](_0x3a4f76[_0xf5c7('0x31')]);});console['log']('TCL:\x20exports.getEntityFields\x20->\x20_objectsCustom',_0x775225);_0x17b549=[];_0x775225[_0xf5c7('0xa7')](function(_0x4066cd){var _0x5dcf24=createFieldObject(_0x57541e,_0x360a17,_0x4066cd[_0xf5c7('0xa8')],_0x4066cd[_0xf5c7('0x31')],_0x4066cd[_0xf5c7('0xa9')],!![]);_0x17b549[_0xf5c7('0xaa')](_0x5dcf24);});return Promise[_0xf5c7('0xab')](_0x17b549);})[_0xf5c7('0x28')](function(_0x72a76c){_0x4fe15d=_0x72a76c;var _0x473750=_0x29575e['concat'](_0x4fe15d);return{'count':_0x473750[_0xf5c7('0x36')],'rows':_0x473750};})[_0xf5c7('0x28')](respondWithResult(_0x1679c1,null))['catch'](function(_0x5f1bb8){console[_0xf5c7('0xad')]('ServiceNow\x20error:\x20'+_0x5f1bb8);var _0x480d94=_0x20668d[_0xf5c7('0x32')][_0xf5c7('0xae')]?0x1f4:_0x5f1bb8[_0xf5c7('0xaf')]||0x1f4;logger[_0xf5c7('0x29')](_0x5f1bb8['stack']);delete _0x5f1bb8[_0xf5c7('0x31')];if(_0x480d94===0x191){_0x480d94=0x190;}_0x1679c1[_0xf5c7('0x1d')](_0x480d94)[_0xf5c7('0xb0')](_0x20668d['query']['test']?{'message':_0xf5c7('0xb1'),'statusCode':_0x5f1bb8['statusCode']}:_0x5f1bb8);});};function createFieldObject(_0x2720c0,_0x38c5bc,_0x594142,_0x45e9ae,_0x477f9d,_0x2a5253){return new Promise(function(_0x3a6e75,_0x50a928){var _0x578bb7={'id':_0x45e9ae,'name':_0x477f9d,'custom':_0x2a5253};if(_0x594142==='boolean'){_0x578bb7['options']=[{'name':'True','value':_0xf5c7('0xb2')},{'name':_0xf5c7('0xb3'),'value':'false'}];_0x3a6e75(_0x578bb7);}else{var _0x49c3dd={'method':_0xf5c7('0xa2'),'uri':_0x2720c0+_0xf5c7('0xb4')+_0x45e9ae,'auth':_0x38c5bc,'json':!![]};return rp(_0x49c3dd)[_0xf5c7('0x28')](function(_0x2b7c46){var _0x2d2875=[];if(_0x2b7c46[_0xf5c7('0xa3')][_0xf5c7('0x36')]>0x0){_0x2b7c46[_0xf5c7('0xa3')][_0xf5c7('0xa7')](function(_0x249923){if(_0x249923[_0xf5c7('0xb5')]===_0xf5c7('0xb6')){var _0x30c96e={'name':_0x249923[_0xf5c7('0xa9')],'value':_0x249923['value']};_0x2d2875[_0xf5c7('0xaa')](_0x30c96e);}});}_0x578bb7[_0xf5c7('0x3e')]=_0x2d2875;if(_0x578bb7['options'][_0xf5c7('0x36')]>0x0){_0x3a6e75(_0x578bb7);}else{if(_0x2a5253==![]){_0x3a6e75();}else{_0x3a6e75(_0x578bb7);}}});}});}
\ No newline at end of file
+var _0xe53a=['then','destroy','error','stack','name','send','index','map','ServicenowAccount','rawAttributes','fieldName','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','limit','order','sort','where','pick','filter','merge','type','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','find','create','body','update','getConfigurations','findOne','ServicenowConfiguration','addConfiguration','AccountId','Subjects','getSubjects','Descriptions','ServicenowField','getFields','hold_reason','knowledge','subcategory','close_code','notify','severity','category','parent','caused_by','upon_reject','sys_updated_on','child_incidents','approval_history','number','sys_updated_by','opened_by','sys_created_on','state','sys_created_by','closed_at','cmdb_ci','active','business_service','priority','sys_domain_path','rfc','time_worked','expected_start','opened_at','business_duration','reopened_time','resolved_at','caller_id','short_description','correlation_display','delivery_task','work_start','business_stc','description','calendar_duration','sys_class_name','close_notes','closed_by','follow_up','parent_incident','sys_id','reopened_by','incident_state','urgency','problem_id','reassignment_count','activity_due','assigned_to','comments','approval','comments_and_work_notes','due_date','sys_mod_count','reopen_count','upon_approval','correlation_id','location','username','password','email','serverUrl','remoteUri','slice','substring','format','%s/api/now/doc/table/schema/','%s/api/now/table/','GET','incident?sysparm_display_value=all','log','incident\x20table\x20objects','assign','remove','includes','forEach','internalType','push','TCL:\x20_object','TCL:\x20exports.getEntityFields\x20->\x20_objectsCustom','all','concat','statusCode','test','Wrong\x20credentials','boolean','True','true','False','false','result','inactive','label','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','../../components/integrations/configuration','sendStatus','end','undefined','count','offset','status','Content-Range','apply','reject','save'];(function(_0x35da42,_0x5c2610){var _0x370035=function(_0x546db5){while(--_0x546db5){_0x35da42['push'](_0x35da42['shift']());}};_0x370035(++_0x5c2610);}(_0xe53a,0x95));var _0xae53=function(_0x389c69,_0x15c1c8){_0x389c69=_0x389c69-0x0;var _0x449185=_0xe53a[_0x389c69];return _0x449185;};'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('util');var path=require('path');var sox=require(_0xae53('0x8'));var csv=require(_0xae53('0x9'));var ejs=require(_0xae53('0xa'));var fs=require('fs');var fs_extra=require(_0xae53('0xb'));var _=require(_0xae53('0xc'));var squel=require(_0xae53('0xd'));var crypto=require(_0xae53('0xe'));var jsforce=require(_0xae53('0xf'));var deskjs=require(_0xae53('0x10'));var toCsv=require(_0xae53('0x9'));var querystring=require(_0xae53('0x11'));var Papa=require(_0xae53('0x12'));var Redis=require(_0xae53('0x13'));var authService=require(_0xae53('0x14'));var qs=require(_0xae53('0x15'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xae53('0x16'));var logger=require(_0xae53('0x17'))('api');var utils=require(_0xae53('0x18'));var config=require('../../config/environment');var licenseUtil=require(_0xae53('0x19'));var db=require('../../mysqldb')['db'];var integrations=require(_0xae53('0x1a'));function respondWithStatusCode(_0x2cce94,_0x1fa547){_0x1fa547=_0x1fa547||0xcc;return function(_0x17f3f8){if(_0x17f3f8){return _0x2cce94[_0xae53('0x1b')](_0x1fa547);}return _0x2cce94['status'](_0x1fa547)[_0xae53('0x1c')]();};}function respondWithResult(_0x44b847,_0xc5113e){_0xc5113e=_0xc5113e||0xc8;return function(_0x19a597){if(_0x19a597){return _0x44b847['status'](_0xc5113e)['json'](_0x19a597);}};}function respondWithFilteredResult(_0xe1945b,_0x46d802){return function(_0x39348c){if(_0x39348c){var _0x525ded=typeof _0x46d802['offset']==='undefined'&&typeof _0x46d802['limit']===_0xae53('0x1d');var _0xb16a70=_0x39348c[_0xae53('0x1e')];var _0x3ed81f=_0x525ded?0x0:_0x46d802[_0xae53('0x1f')];var _0x180507=_0x525ded?_0x39348c[_0xae53('0x1e')]:_0x46d802[_0xae53('0x1f')]+_0x46d802['limit'];var _0x55f591;if(_0x180507>=_0xb16a70){_0x180507=_0xb16a70;_0x55f591=0xc8;}else{_0x55f591=0xce;}_0xe1945b[_0xae53('0x20')](_0x55f591);return _0xe1945b['set'](_0xae53('0x21'),_0x3ed81f+'-'+_0x180507+'/'+_0xb16a70)['json'](_0x39348c);}return null;};}function patchUpdates(_0x5f477c){return function(_0x14c898){try{jsonpatch[_0xae53('0x22')](_0x14c898,_0x5f477c,!![]);}catch(_0x58e433){return BPromise[_0xae53('0x23')](_0x58e433);}return _0x14c898[_0xae53('0x24')]();};}function saveUpdates(_0x210529,_0xca0728){return function(_0x2d5439){if(_0x2d5439){return _0x2d5439['update'](_0x210529)[_0xae53('0x25')](function(_0x3e101b){return _0x3e101b;});}return null;};}function removeEntity(_0x76f1ad,_0x236bbb){return function(_0x359cd4){if(_0x359cd4){return _0x359cd4[_0xae53('0x26')]()[_0xae53('0x25')](function(){_0x76f1ad['status'](0xcc)[_0xae53('0x1c')]();});}};}function handleEntityNotFound(_0x42d8e3,_0x52f174){return function(_0x391742){if(!_0x391742){_0x42d8e3[_0xae53('0x1b')](0x194);}return _0x391742;};}function handleError(_0x12b397,_0x5ba5a8){_0x5ba5a8=_0x5ba5a8||0x1f4;return function(_0x453e77){logger[_0xae53('0x27')](_0x453e77[_0xae53('0x28')]);if(_0x453e77[_0xae53('0x29')]){delete _0x453e77['name'];}_0x12b397[_0xae53('0x20')](_0x5ba5a8)[_0xae53('0x2a')](_0x453e77);};}exports[_0xae53('0x2b')]=function(_0x24de80,_0x31bdbb){var _0x176cc5={},_0x2964f6={},_0x1151e7={'count':0x0,'rows':[]};var _0x29e694=_[_0xae53('0x2c')](db[_0xae53('0x2d')][_0xae53('0x2e')],function(_0x1e70df){return{'name':_0x1e70df[_0xae53('0x2f')],'type':_0x1e70df['type']['key']};});_0x2964f6[_0xae53('0x30')]=_[_0xae53('0x2c')](_0x29e694,_0xae53('0x29'));_0x2964f6[_0xae53('0x31')]=_[_0xae53('0x32')](_0x24de80[_0xae53('0x31')]);_0x2964f6[_0xae53('0x33')]=_[_0xae53('0x34')](_0x2964f6['model'],_0x2964f6[_0xae53('0x31')]);_0x176cc5['attributes']=_[_0xae53('0x34')](_0x2964f6[_0xae53('0x30')],qs[_0xae53('0x35')](_0x24de80[_0xae53('0x31')][_0xae53('0x35')]));_0x176cc5[_0xae53('0x36')]=_0x176cc5[_0xae53('0x36')][_0xae53('0x37')]?_0x176cc5[_0xae53('0x36')]:_0x2964f6[_0xae53('0x30')];if(!_0x24de80[_0xae53('0x31')][_0xae53('0x38')](_0xae53('0x39'))){_0x176cc5[_0xae53('0x3a')]=qs[_0xae53('0x3a')](_0x24de80['query'][_0xae53('0x3a')]);_0x176cc5[_0xae53('0x1f')]=qs[_0xae53('0x1f')](_0x24de80['query'][_0xae53('0x1f')]);}_0x176cc5[_0xae53('0x3b')]=qs[_0xae53('0x3c')](_0x24de80[_0xae53('0x31')]['sort']);_0x176cc5[_0xae53('0x3d')]=qs[_0xae53('0x33')](_[_0xae53('0x3e')](_0x24de80['query'],_0x2964f6[_0xae53('0x33')]),_0x29e694);if(_0x24de80[_0xae53('0x31')][_0xae53('0x3f')]){_0x176cc5[_0xae53('0x3d')]=_[_0xae53('0x40')](_0x176cc5['where'],{'$or':_[_0xae53('0x2c')](_0x29e694,function(_0x1c5e3d){if(_0x1c5e3d[_0xae53('0x41')]!==_0xae53('0x42')){var _0x2d91ab={};_0x2d91ab[_0x1c5e3d[_0xae53('0x29')]]={'$like':'%'+_0x24de80[_0xae53('0x31')][_0xae53('0x3f')]+'%'};return _0x2d91ab;}})});}_0x176cc5=_['merge']({},_0x176cc5,_0x24de80[_0xae53('0x43')]);var _0x4bcb25={'where':_0x176cc5[_0xae53('0x3d')]};return db[_0xae53('0x2d')][_0xae53('0x1e')](_0x4bcb25)[_0xae53('0x25')](function(_0x2dbc11){_0x1151e7['count']=_0x2dbc11;if(_0x24de80[_0xae53('0x31')][_0xae53('0x44')]){_0x176cc5[_0xae53('0x45')]=[{'all':!![]}];}return db[_0xae53('0x2d')][_0xae53('0x46')](_0x176cc5);})[_0xae53('0x25')](function(_0x17d7ad){_0x1151e7[_0xae53('0x47')]=_0x17d7ad;return _0x1151e7;})[_0xae53('0x25')](respondWithFilteredResult(_0x31bdbb,_0x176cc5))[_0xae53('0x48')](handleError(_0x31bdbb,null));};exports[_0xae53('0x49')]=function(_0x25ad1,_0x2858ac){var _0x541b48={'raw':![],'where':{'id':_0x25ad1[_0xae53('0x4a')]['id']}},_0x472407={};_0x472407[_0xae53('0x30')]=_[_0xae53('0x32')](db[_0xae53('0x2d')][_0xae53('0x2e')]);_0x472407['query']=_['keys'](_0x25ad1[_0xae53('0x31')]);_0x472407[_0xae53('0x33')]=_[_0xae53('0x34')](_0x472407[_0xae53('0x30')],_0x472407[_0xae53('0x31')]);_0x541b48['attributes']=_[_0xae53('0x34')](_0x472407[_0xae53('0x30')],qs[_0xae53('0x35')](_0x25ad1[_0xae53('0x31')]['fields']));_0x541b48[_0xae53('0x36')]=_0x541b48[_0xae53('0x36')][_0xae53('0x37')]?_0x541b48[_0xae53('0x36')]:_0x472407[_0xae53('0x30')];if(_0x25ad1[_0xae53('0x31')][_0xae53('0x44')]){_0x541b48[_0xae53('0x45')]=[{'all':!![]}];}_0x541b48=_['merge']({},_0x541b48,_0x25ad1[_0xae53('0x43')]);return db[_0xae53('0x2d')][_0xae53('0x4b')](_0x541b48)[_0xae53('0x25')](handleEntityNotFound(_0x2858ac,null))[_0xae53('0x25')](respondWithResult(_0x2858ac,null))[_0xae53('0x48')](handleError(_0x2858ac,null));};exports[_0xae53('0x4c')]=function(_0x3327c1,_0x11f356){return db['ServicenowAccount'][_0xae53('0x4c')](_0x3327c1[_0xae53('0x4d')],{})[_0xae53('0x25')](respondWithResult(_0x11f356,0xc9))[_0xae53('0x48')](handleError(_0x11f356,null));};exports[_0xae53('0x4e')]=function(_0x14449f,_0x300c75){if(_0x14449f['body']['id']){delete _0x14449f['body']['id'];}return db[_0xae53('0x2d')][_0xae53('0x4b')]({'where':{'id':_0x14449f[_0xae53('0x4a')]['id']}})['then'](handleEntityNotFound(_0x300c75,null))[_0xae53('0x25')](saveUpdates(_0x14449f[_0xae53('0x4d')],null))['then'](respondWithResult(_0x300c75,null))['catch'](handleError(_0x300c75,null));};exports[_0xae53('0x26')]=function(_0x121b91,_0x2cbff6){return db['ServicenowAccount']['find']({'where':{'id':_0x121b91[_0xae53('0x4a')]['id']}})[_0xae53('0x25')](handleEntityNotFound(_0x2cbff6,null))['then'](removeEntity(_0x2cbff6,null))[_0xae53('0x48')](handleError(_0x2cbff6,null));};exports[_0xae53('0x4f')]=function(_0x13a55e,_0x397820,_0x31e730){var _0x57506e={};var _0x4136de={};var _0x5cc8f3;var _0x40233b;return db[_0xae53('0x2d')][_0xae53('0x50')]({'where':{'id':_0x13a55e[_0xae53('0x4a')]['id']}})[_0xae53('0x25')](handleEntityNotFound(_0x397820,null))[_0xae53('0x25')](function(_0x1396c3){if(_0x1396c3){_0x5cc8f3=_0x1396c3;_0x4136de[_0xae53('0x30')]=_['keys'](db[_0xae53('0x51')][_0xae53('0x2e')]);_0x4136de[_0xae53('0x31')]=_[_0xae53('0x32')](_0x13a55e[_0xae53('0x31')]);_0x4136de[_0xae53('0x33')]=_[_0xae53('0x34')](_0x4136de['model'],_0x4136de['query']);_0x57506e[_0xae53('0x36')]=_['intersection'](_0x4136de[_0xae53('0x30')],qs[_0xae53('0x35')](_0x13a55e[_0xae53('0x31')][_0xae53('0x35')]));_0x57506e[_0xae53('0x36')]=_0x57506e[_0xae53('0x36')][_0xae53('0x37')]?_0x57506e[_0xae53('0x36')]:_0x4136de[_0xae53('0x30')];_0x57506e[_0xae53('0x3b')]=qs['sort'](_0x13a55e[_0xae53('0x31')][_0xae53('0x3c')]);_0x57506e[_0xae53('0x3d')]=qs[_0xae53('0x33')](_['pick'](_0x13a55e[_0xae53('0x31')],_0x4136de[_0xae53('0x33')]));if(_0x13a55e['query'][_0xae53('0x3f')]){_0x57506e['where']=_['merge'](_0x57506e['where'],{'$or':_[_0xae53('0x2c')](_0x57506e[_0xae53('0x36')],function(_0x6d6ca2){var _0x3ce264={};_0x3ce264[_0x6d6ca2]={'$like':'%'+_0x13a55e['query']['filter']+'%'};return _0x3ce264;})});}_0x57506e=_[_0xae53('0x40')]({},_0x57506e,_0x13a55e[_0xae53('0x43')]);return _0x5cc8f3[_0xae53('0x4f')](_0x57506e);}})[_0xae53('0x25')](function(_0x347179){if(_0x347179){_0x40233b=_0x347179[_0xae53('0x37')];if(!_0x13a55e[_0xae53('0x31')][_0xae53('0x38')]('nolimit')){_0x57506e[_0xae53('0x3a')]=qs[_0xae53('0x3a')](_0x13a55e[_0xae53('0x31')]['limit']);_0x57506e[_0xae53('0x1f')]=qs[_0xae53('0x1f')](_0x13a55e['query'][_0xae53('0x1f')]);}return _0x5cc8f3[_0xae53('0x4f')](_0x57506e);}})['then'](function(_0x3958ab){if(_0x3958ab){return _0x3958ab?{'count':_0x40233b,'rows':_0x3958ab}:null;}})[_0xae53('0x25')](respondWithResult(_0x397820,null))[_0xae53('0x48')](handleError(_0x397820,null));};exports[_0xae53('0x52')]=function(_0x451b04,_0x119209,_0x2fb12b){if(_0x451b04['body']['id']){delete _0x451b04[_0xae53('0x4d')]['id'];}return db[_0xae53('0x2d')][_0xae53('0x50')]({'where':{'id':_0x451b04[_0xae53('0x4a')]['id']}})['then'](handleEntityNotFound(_0x119209,null))[_0xae53('0x25')](function(_0xf802c9){if(_0xf802c9){_0x451b04[_0xae53('0x4d')][_0xae53('0x53')]=_0xf802c9['id'];_0x451b04[_0xae53('0x4d')][_0xae53('0x54')]=integrations[_0xae53('0x55')](_0x451b04[_0xae53('0x4d')]['channel'],_0x451b04[_0xae53('0x4d')][_0xae53('0x41')]);_0x451b04[_0xae53('0x4d')][_0xae53('0x56')]=integrations['getDescriptions'](_0x451b04[_0xae53('0x4d')]['channel'],_0x451b04[_0xae53('0x4d')][_0xae53('0x41')]);return db[_0xae53('0x51')][_0xae53('0x4c')](_0x451b04[_0xae53('0x4d')],{'include':[{'model':db[_0xae53('0x57')],'as':_0xae53('0x54')},{'model':db[_0xae53('0x57')],'as':_0xae53('0x56')}]});}return null;})[_0xae53('0x25')](respondWithResult(_0x119209,null))['catch'](handleError(_0x119209,null));};exports[_0xae53('0x58')]=function(_0x51d3ad,_0xed967e,_0xe63d7){var _0x5edc2e=['made_sla',_0xae53('0x59'),_0xae53('0x5a'),_0xae53('0x5b'),_0xae53('0x5c'),_0xae53('0x5d'),'incident_state',_0xae53('0x5e'),_0xae53('0x5f')];var _0x5c2cb0=[_0xae53('0x60'),'made_sla',_0xae53('0x61'),'watch_list',_0xae53('0x62'),_0xae53('0x63'),_0xae53('0x64'),_0xae53('0x59'),_0xae53('0x65'),_0xae53('0x66'),'resolved_by',_0xae53('0x67'),_0xae53('0x68'),'user_input',_0xae53('0x69'),'sys_domain',_0xae53('0x6a'),_0xae53('0x6b'),_0xae53('0x5a'),_0xae53('0x3b'),'calendar_stc',_0xae53('0x6c'),_0xae53('0x6d'),'delivery_plan','impact',_0xae53('0x6e'),'work_notes_list',_0xae53('0x6f'),_0xae53('0x70'),_0xae53('0x71'),_0xae53('0x72'),_0xae53('0x73'),_0xae53('0x74'),_0xae53('0x75'),_0xae53('0x76'),'group_list','work_end',_0xae53('0x77'),_0xae53('0x78'),_0xae53('0x79'),'approval_set',_0xae53('0x5b'),'work_notes',_0xae53('0x7a'),_0xae53('0x5c'),_0xae53('0x7b'),_0xae53('0x7c'),_0xae53('0x7d'),'assignment_group',_0xae53('0x7e'),'additional_assignee_list',_0xae53('0x7f'),_0xae53('0x80'),'notify',_0xae53('0x81'),_0xae53('0x82'),_0xae53('0x83'),_0xae53('0x84'),_0xae53('0x85'),_0xae53('0x86'),'contact_type',_0xae53('0x87'),_0xae53('0x88'),_0xae53('0x89'),_0xae53('0x8a'),'company',_0xae53('0x8b'),_0xae53('0x8c'),_0xae53('0x8d'),_0xae53('0x5e'),_0xae53('0x8e'),'sla_due',_0xae53('0x8f'),_0xae53('0x90'),_0xae53('0x91'),_0xae53('0x92'),_0xae53('0x93'),'sys_tags','escalation',_0xae53('0x94'),_0xae53('0x95'),_0xae53('0x96'),_0xae53('0x5f')];var _0x5346dc='';var _0x42c2e5='';var _0x1b9246=[];var _0x106d77='';var _0x53e129='';var _0x4401e4=[];var _0x299dc6='';var _0x39179d='';var _0x14c837={};var _0x3f4666='';return db[_0xae53('0x2d')]['findOne']({'where':{'id':_0x51d3ad[_0xae53('0x4a')]['id']},'attributes':['id',_0xae53('0x97'),_0xae53('0x98'),_0xae53('0x99'),'remoteUri',_0xae53('0x9a')]})[_0xae53('0x25')](handleEntityNotFound(_0xed967e,null))[_0xae53('0x25')](function(_0x3cb1b6){if(_0x3cb1b6){_0x3f4666=_0x3cb1b6[_0xae53('0x9b')];var _0x27635e=_0x3f4666[_0xae53('0x9c')](-0x1);if(_0x27635e==='/'){_0x3f4666=_0x3f4666[_0xae53('0x9d')](0x0,_0x3f4666['lastIndexOf'](_0x27635e));}_0x39179d=util[_0xae53('0x9e')](_0xae53('0x9f'),_0x3f4666);_0x299dc6=util[_0xae53('0x9e')](_0xae53('0xa0'),_0x3f4666);_0x14c837={'user':_0x3cb1b6['username'],'pass':_0x3cb1b6[_0xae53('0x98')]};var _0x2d2824={'method':_0xae53('0xa1'),'uri':_0x39179d+_0xae53('0xa2'),'auth':_0x14c837,'json':!![]};return rp(_0x2d2824);}})[_0xae53('0x25')](function(_0x485587){if(_0x485587['result'][_0xae53('0x37')]>0x0){_0x5346dc=_0x485587['result'];}console[_0xae53('0xa3')](_0xae53('0xa4'),_0x5346dc);_0x4401e4=[];_0x42c2e5=Object[_0xae53('0xa5')]([],_0x5346dc);_[_0xae53('0xa6')](_0x42c2e5,function(_0x3fded3){return!_0x5edc2e[_0xae53('0xa7')](_0x3fded3[_0xae53('0x29')]);});_0x42c2e5[_0xae53('0xa8')](function(_0x80c36a){var _0x52df48=createFieldObject(_0x299dc6,_0x14c837,_0x80c36a[_0xae53('0xa9')],_0x80c36a[_0xae53('0x29')],_0x80c36a['label'],![]);_0x4401e4[_0xae53('0xaa')](_0x52df48);});return Promise['all'](_0x4401e4);})['then'](function(_0xdcb2ca){_0x1b9246=_0xdcb2ca;_0x106d77=Object['assign']([],_0x5346dc);console[_0xae53('0xa3')](_0xae53('0xab'),_0x5346dc);_[_0xae53('0xa6')](_0x106d77,function(_0x215972){return _0x5c2cb0[_0xae53('0xa7')](_0x215972[_0xae53('0x29')]);});console['log'](_0xae53('0xac'),_0x106d77);_0x4401e4=[];_0x106d77[_0xae53('0xa8')](function(_0x1c3898){var _0x5f3d2a=createFieldObject(_0x299dc6,_0x14c837,_0x1c3898['internalType'],_0x1c3898[_0xae53('0x29')],_0x1c3898['label'],!![]);_0x4401e4[_0xae53('0xaa')](_0x5f3d2a);});return Promise[_0xae53('0xad')](_0x4401e4);})[_0xae53('0x25')](function(_0x4e5773){_0x53e129=_0x4e5773;var _0x8a307c=_0x1b9246[_0xae53('0xae')](_0x53e129);return{'count':_0x8a307c[_0xae53('0x37')],'rows':_0x8a307c};})['then'](respondWithResult(_0xed967e,null))[_0xae53('0x48')](function(_0x19af54){console[_0xae53('0xa3')]('ServiceNow\x20error:\x20'+_0x19af54);var _0x5b3bce=_0x51d3ad[_0xae53('0x31')]['test']?0x1f4:_0x19af54[_0xae53('0xaf')]||0x1f4;logger[_0xae53('0x27')](_0x19af54['stack']);delete _0x19af54[_0xae53('0x29')];if(_0x5b3bce===0x191){_0x5b3bce=0x190;}_0xed967e['status'](_0x5b3bce)[_0xae53('0x2a')](_0x51d3ad[_0xae53('0x31')][_0xae53('0xb0')]?{'message':_0xae53('0xb1'),'statusCode':_0x19af54[_0xae53('0xaf')]}:_0x19af54);});};function createFieldObject(_0x321f29,_0x32e8d6,_0x10d37d,_0x4dfe28,_0x3b6ed5,_0x5c31e6){return new Promise(function(_0x4e7ec6,_0x54ec94){var _0x3ed862={'id':_0x4dfe28,'name':_0x3b6ed5,'custom':_0x5c31e6};if(_0x10d37d===_0xae53('0xb2')){_0x3ed862[_0xae53('0x43')]=[{'name':_0xae53('0xb3'),'value':_0xae53('0xb4')},{'name':_0xae53('0xb5'),'value':_0xae53('0xb6')}];_0x4e7ec6(_0x3ed862);}else{var _0x3d4570={'method':_0xae53('0xa1'),'uri':_0x321f29+'sys_choice?sysparm_query=name=incident^element='+_0x4dfe28,'auth':_0x32e8d6,'json':!![]};return rp(_0x3d4570)['then'](function(_0x47b1a9){var _0x3a8a12=[];if(_0x47b1a9[_0xae53('0xb7')]['length']>0x0){_0x47b1a9[_0xae53('0xb7')][_0xae53('0xa8')](function(_0x3bf71d){if(_0x3bf71d[_0xae53('0xb8')]===_0xae53('0xb6')){var _0x658a81={'name':_0x3bf71d[_0xae53('0xb9')],'value':_0x3bf71d['value']};_0x3a8a12[_0xae53('0xaa')](_0x658a81);}});}_0x3ed862[_0xae53('0x43')]=_0x3a8a12;if(_0x3ed862[_0xae53('0x43')][_0xae53('0x37')]>0x0){_0x4e7ec6(_0x3ed862);}else{if(_0x5c31e6==![]){_0x4e7ec6();}else{_0x4e7ec6(_0x3ed862);}}});}});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x687b=['./intServicenowAccount.attributes','../../components/integrations/configuration','exports','define','int_servicenow_accounts','lodash','util','../../config/logger','api','request-promise','path','rimraf','../../config/environment'];(function(_0x403663,_0x14f36f){var _0x2660d2=function(_0x46108b){while(--_0x46108b){_0x403663['push'](_0x403663['shift']());}};_0x2660d2(++_0x14f36f);}(_0x687b,0x14a));var _0xb687=function(_0x1f5143,_0x5e31e6){_0x1f5143=_0x1f5143-0x0;var _0x383a38=_0x687b[_0x1f5143];return _0x383a38;};'use strict';var _=require(_0xb687('0x0'));var util=require(_0xb687('0x1'));var logger=require(_0xb687('0x2'))(_0xb687('0x3'));var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0xb687('0x4'));var fs=require('fs');var path=require(_0xb687('0x5'));var rimraf=require(_0xb687('0x6'));var config=require(_0xb687('0x7'));var attributes=require(_0xb687('0x8'));var integrations=require(_0xb687('0x9'));module[_0xb687('0xa')]=function(_0xf43a1f,_0x47ffea){return _0xf43a1f[_0xb687('0xb')]('ServicenowAccount',attributes,{'tableName':_0xb687('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xeff8=['rimraf','../../config/environment','./intServicenowAccount.attributes','exports','define','int_servicenow_accounts','lodash','util','api','moment','bluebird','path'];(function(_0x3abe58,_0x184dd9){var _0x457389=function(_0x59f517){while(--_0x59f517){_0x3abe58['push'](_0x3abe58['shift']());}};_0x457389(++_0x184dd9);}(_0xeff8,0x186));var _0x8eff=function(_0x3f4891,_0x4e6f62){_0x3f4891=_0x3f4891-0x0;var _0x54f2d8=_0xeff8[_0x3f4891];return _0x54f2d8;};'use strict';var _=require(_0x8eff('0x0'));var util=require(_0x8eff('0x1'));var logger=require('../../config/logger')(_0x8eff('0x2'));var moment=require(_0x8eff('0x3'));var BPromise=require(_0x8eff('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x8eff('0x5'));var rimraf=require(_0x8eff('0x6'));var config=require(_0x8eff('0x7'));var attributes=require(_0x8eff('0x8'));var integrations=require('../../components/integrations/configuration');module[_0x8eff('0x9')]=function(_0xb54063,_0x3409bc){return _0xb54063[_0x8eff('0xa')]('ServicenowAccount',attributes,{'tableName':_0x8eff('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf60c=['message','info','result','catch','GetServicenowAccount','ServicenowAccount','findAll','options','raw','where','attributes','include','map','model','ShowServicenowAccount','find','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','request\x20sent','debug','ServicenowAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','ServicenowAccount,\x20%s,\x20%s'];(function(_0x2c2bcc,_0x50649e){var _0xa0543e=function(_0x24f4a0){while(--_0x24f4a0){_0x2c2bcc['push'](_0x2c2bcc['shift']());}};_0xa0543e(++_0x50649e);}(_0xf60c,0x18c));var _0xcf60=function(_0x203fcf,_0x36f5ad){_0x203fcf=_0x203fcf-0x0;var _0x1915a7=_0xf60c[_0x203fcf];return _0x1915a7;};'use strict';var _=require(_0xcf60('0x0'));var util=require('util');var moment=require(_0xcf60('0x1'));var BPromise=require(_0xcf60('0x2'));var rs=require(_0xcf60('0x3'));var fs=require('fs');var Redis=require(_0xcf60('0x4'));var db=require(_0xcf60('0x5'))['db'];var utils=require(_0xcf60('0x6'));var logger=require(_0xcf60('0x7'))(_0xcf60('0x8'));var config=require(_0xcf60('0x9'));var jayson=require(_0xcf60('0xa'));var client=jayson[_0xcf60('0xb')][_0xcf60('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x523b70,_0x1d0c4e,_0x490275){return new BPromise(function(_0x4cde81,_0x439d1d){return client[_0xcf60('0xd')](_0x523b70,_0x490275)[_0xcf60('0xe')](function(_0x7d75db){logger['info']('ServicenowAccount,\x20%s,\x20%s',_0x1d0c4e,_0xcf60('0xf'));logger[_0xcf60('0x10')](_0xcf60('0x11'),_0x1d0c4e,_0xcf60('0xf'),JSON[_0xcf60('0x12')](_0x7d75db));if(_0x7d75db[_0xcf60('0x13')]){if(_0x7d75db[_0xcf60('0x13')][_0xcf60('0x14')]===0x1f4){logger[_0xcf60('0x13')](_0xcf60('0x15'),_0x1d0c4e,_0x7d75db[_0xcf60('0x13')][_0xcf60('0x16')]);return _0x439d1d(_0x7d75db[_0xcf60('0x13')]['message']);}logger[_0xcf60('0x13')](_0xcf60('0x15'),_0x1d0c4e,_0x7d75db[_0xcf60('0x13')][_0xcf60('0x16')]);return _0x4cde81(_0x7d75db[_0xcf60('0x13')][_0xcf60('0x16')]);}else{logger[_0xcf60('0x17')](_0xcf60('0x15'),_0x1d0c4e,_0xcf60('0xf'));_0x4cde81(_0x7d75db[_0xcf60('0x18')][_0xcf60('0x16')]);}})[_0xcf60('0x19')](function(_0x5a34a2){logger['error'](_0xcf60('0x15'),_0x1d0c4e,_0x5a34a2);_0x439d1d(_0x5a34a2);});});}exports[_0xcf60('0x1a')]=function(_0x3008d8){var _0x1dcd5a=this;return new Promise(function(_0x51d04e,_0x2fd54c){return db[_0xcf60('0x1b')][_0xcf60('0x1c')]({'raw':_0x3008d8[_0xcf60('0x1d')]?_0x3008d8[_0xcf60('0x1d')][_0xcf60('0x1e')]===undefined?!![]:![]:!![],'where':_0x3008d8[_0xcf60('0x1d')]?_0x3008d8[_0xcf60('0x1d')][_0xcf60('0x1f')]||null:null,'attributes':_0x3008d8[_0xcf60('0x1d')]?_0x3008d8['options'][_0xcf60('0x20')]||null:null,'limit':_0x3008d8[_0xcf60('0x1d')]?_0x3008d8[_0xcf60('0x1d')]['limit']||null:null,'include':_0x3008d8[_0xcf60('0x1d')]?_0x3008d8[_0xcf60('0x1d')][_0xcf60('0x21')]?_[_0xcf60('0x22')](_0x3008d8[_0xcf60('0x1d')][_0xcf60('0x21')],function(_0x100d2f){return{'model':db[_0x100d2f[_0xcf60('0x23')]],'as':_0x100d2f['as'],'attributes':_0x100d2f[_0xcf60('0x20')],'include':_0x100d2f[_0xcf60('0x21')]?_[_0xcf60('0x22')](_0x100d2f[_0xcf60('0x21')],function(_0x3e4d46){return{'model':db[_0x3e4d46[_0xcf60('0x23')]],'as':_0x3e4d46['as'],'attributes':_0x3e4d46[_0xcf60('0x20')],'include':_0x3e4d46[_0xcf60('0x21')]?_[_0xcf60('0x22')](_0x3e4d46[_0xcf60('0x21')],function(_0x2baf91){return{'model':db[_0x2baf91[_0xcf60('0x23')]],'as':_0x2baf91['as'],'attributes':_0x2baf91['attributes']};}):[]};}):[]};}):[]:[]})[_0xcf60('0xe')](function(_0x5adb72){logger[_0xcf60('0x17')](_0xcf60('0x1a'),_0x3008d8);logger['debug'](_0xcf60('0x1a'),_0x3008d8,JSON[_0xcf60('0x12')](_0x5adb72));_0x51d04e(_0x5adb72);})[_0xcf60('0x19')](function(_0x1b782b){logger[_0xcf60('0x13')](_0xcf60('0x1a'),_0x1b782b[_0xcf60('0x16')],_0x3008d8);_0x2fd54c(_0x1dcd5a[_0xcf60('0x13')](0x1f4,_0x1b782b[_0xcf60('0x16')]));});});};exports[_0xcf60('0x24')]=function(_0x333f6e){var _0x53b42b=this;return new Promise(function(_0x26f097,_0x1ec82){return db['ServicenowAccount'][_0xcf60('0x25')]({'raw':_0x333f6e[_0xcf60('0x1d')]?_0x333f6e[_0xcf60('0x1d')][_0xcf60('0x1e')]===undefined?!![]:![]:!![],'where':_0x333f6e['options']?_0x333f6e['options'][_0xcf60('0x1f')]||null:null,'attributes':_0x333f6e['options']?_0x333f6e['options'][_0xcf60('0x20')]||null:null,'include':_0x333f6e[_0xcf60('0x1d')]?_0x333f6e[_0xcf60('0x1d')][_0xcf60('0x21')]?_[_0xcf60('0x22')](_0x333f6e[_0xcf60('0x1d')]['include'],function(_0xa22492){return{'model':db[_0xa22492[_0xcf60('0x23')]],'as':_0xa22492['as'],'attributes':_0xa22492[_0xcf60('0x20')],'include':_0xa22492[_0xcf60('0x21')]?_['map'](_0xa22492[_0xcf60('0x21')],function(_0x4b357c){return{'model':db[_0x4b357c['model']],'as':_0x4b357c['as'],'attributes':_0x4b357c[_0xcf60('0x20')],'include':_0x4b357c[_0xcf60('0x21')]?_['map'](_0x4b357c[_0xcf60('0x21')],function(_0x1d4ab7){return{'model':db[_0x1d4ab7[_0xcf60('0x23')]],'as':_0x1d4ab7['as'],'attributes':_0x1d4ab7[_0xcf60('0x20')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x31733f){logger[_0xcf60('0x17')](_0xcf60('0x24'),_0x333f6e);logger[_0xcf60('0x10')](_0xcf60('0x24'),_0x333f6e,JSON[_0xcf60('0x12')](_0x31733f));_0x26f097(_0x31733f);})['catch'](function(_0x59c4fe){logger[_0xcf60('0x13')](_0xcf60('0x24'),_0x59c4fe[_0xcf60('0x16')],_0x333f6e);_0x1ec82(_0x53b42b[_0xcf60('0x13')](0x1f4,_0x59c4fe['message']));});});};
\ No newline at end of file
+var _0x6909=['http','request','info','ServicenowAccount,\x20%s,\x20%s','debug','request\x20sent','stringify','error','code','message','catch','GetServicenowAccount','findAll','options','raw','limit','include','attributes','model','map','then','ShowServicenowAccount','ServicenowAccount','find','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/logger','../../config/environment','jayson/promise','client'];(function(_0x51b19b,_0x5015d2){var _0x1a3cd6=function(_0x495134){while(--_0x495134){_0x51b19b['push'](_0x51b19b['shift']());}};_0x1a3cd6(++_0x5015d2);}(_0x6909,0x18e));var _0x9690=function(_0x106a1c,_0x335c1e){_0x106a1c=_0x106a1c-0x0;var _0x3c59f9=_0x6909[_0x106a1c];return _0x3c59f9;};'use strict';var _=require(_0x9690('0x0'));var util=require(_0x9690('0x1'));var moment=require(_0x9690('0x2'));var BPromise=require(_0x9690('0x3'));var rs=require(_0x9690('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x9690('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0x9690('0x6'))('rpc');var config=require(_0x9690('0x7'));var jayson=require(_0x9690('0x8'));var client=jayson[_0x9690('0x9')][_0x9690('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x57e94f,_0x495fb3,_0x5df98e){return new BPromise(function(_0x237f73,_0x30c2c2){return client[_0x9690('0xb')](_0x57e94f,_0x5df98e)['then'](function(_0x393459){logger[_0x9690('0xc')](_0x9690('0xd'),_0x495fb3,'request\x20sent');logger[_0x9690('0xe')]('ServicenowAccount,\x20%s,\x20%s,\x20%s',_0x495fb3,_0x9690('0xf'),JSON[_0x9690('0x10')](_0x393459));if(_0x393459[_0x9690('0x11')]){if(_0x393459['error'][_0x9690('0x12')]===0x1f4){logger[_0x9690('0x11')](_0x9690('0xd'),_0x495fb3,_0x393459['error'][_0x9690('0x13')]);return _0x30c2c2(_0x393459['error'][_0x9690('0x13')]);}logger[_0x9690('0x11')](_0x9690('0xd'),_0x495fb3,_0x393459['error'][_0x9690('0x13')]);return _0x237f73(_0x393459[_0x9690('0x11')][_0x9690('0x13')]);}else{logger[_0x9690('0xc')]('ServicenowAccount,\x20%s,\x20%s',_0x495fb3,_0x9690('0xf'));_0x237f73(_0x393459['result'][_0x9690('0x13')]);}})[_0x9690('0x14')](function(_0x46b003){logger[_0x9690('0x11')](_0x9690('0xd'),_0x495fb3,_0x46b003);_0x30c2c2(_0x46b003);});});}exports[_0x9690('0x15')]=function(_0x8d6a0e){var _0x534a8b=this;return new Promise(function(_0x2d67db,_0x2f8bbe){return db['ServicenowAccount'][_0x9690('0x16')]({'raw':_0x8d6a0e['options']?_0x8d6a0e[_0x9690('0x17')][_0x9690('0x18')]===undefined?!![]:![]:!![],'where':_0x8d6a0e[_0x9690('0x17')]?_0x8d6a0e[_0x9690('0x17')]['where']||null:null,'attributes':_0x8d6a0e[_0x9690('0x17')]?_0x8d6a0e[_0x9690('0x17')]['attributes']||null:null,'limit':_0x8d6a0e[_0x9690('0x17')]?_0x8d6a0e[_0x9690('0x17')][_0x9690('0x19')]||null:null,'include':_0x8d6a0e[_0x9690('0x17')]?_0x8d6a0e[_0x9690('0x17')][_0x9690('0x1a')]?_['map'](_0x8d6a0e[_0x9690('0x17')][_0x9690('0x1a')],function(_0x3b3230){return{'model':db[_0x3b3230['model']],'as':_0x3b3230['as'],'attributes':_0x3b3230[_0x9690('0x1b')],'include':_0x3b3230[_0x9690('0x1a')]?_['map'](_0x3b3230['include'],function(_0x39359c){return{'model':db[_0x39359c[_0x9690('0x1c')]],'as':_0x39359c['as'],'attributes':_0x39359c[_0x9690('0x1b')],'include':_0x39359c['include']?_[_0x9690('0x1d')](_0x39359c[_0x9690('0x1a')],function(_0xe7f254){return{'model':db[_0xe7f254[_0x9690('0x1c')]],'as':_0xe7f254['as'],'attributes':_0xe7f254[_0x9690('0x1b')]};}):[]};}):[]};}):[]:[]})[_0x9690('0x1e')](function(_0x42a6ab){logger[_0x9690('0xc')](_0x9690('0x15'),_0x8d6a0e);logger[_0x9690('0xe')](_0x9690('0x15'),_0x8d6a0e,JSON[_0x9690('0x10')](_0x42a6ab));_0x2d67db(_0x42a6ab);})[_0x9690('0x14')](function(_0x59b6b1){logger[_0x9690('0x11')](_0x9690('0x15'),_0x59b6b1['message'],_0x8d6a0e);_0x2f8bbe(_0x534a8b[_0x9690('0x11')](0x1f4,_0x59b6b1[_0x9690('0x13')]));});});};exports[_0x9690('0x1f')]=function(_0x22f5e0){var _0x4bd1b4=this;return new Promise(function(_0x5e2bb4,_0x121f7f){return db[_0x9690('0x20')][_0x9690('0x21')]({'raw':_0x22f5e0['options']?_0x22f5e0[_0x9690('0x17')]['raw']===undefined?!![]:![]:!![],'where':_0x22f5e0[_0x9690('0x17')]?_0x22f5e0[_0x9690('0x17')]['where']||null:null,'attributes':_0x22f5e0['options']?_0x22f5e0[_0x9690('0x17')][_0x9690('0x1b')]||null:null,'include':_0x22f5e0[_0x9690('0x17')]?_0x22f5e0[_0x9690('0x17')][_0x9690('0x1a')]?_[_0x9690('0x1d')](_0x22f5e0[_0x9690('0x17')][_0x9690('0x1a')],function(_0x3b42b8){return{'model':db[_0x3b42b8[_0x9690('0x1c')]],'as':_0x3b42b8['as'],'attributes':_0x3b42b8[_0x9690('0x1b')],'include':_0x3b42b8['include']?_[_0x9690('0x1d')](_0x3b42b8[_0x9690('0x1a')],function(_0x3209f6){return{'model':db[_0x3209f6[_0x9690('0x1c')]],'as':_0x3209f6['as'],'attributes':_0x3209f6['attributes'],'include':_0x3209f6[_0x9690('0x1a')]?_['map'](_0x3209f6['include'],function(_0x159c00){return{'model':db[_0x159c00[_0x9690('0x1c')]],'as':_0x159c00['as'],'attributes':_0x159c00[_0x9690('0x1b')]};}):[]};}):[]};}):[]:[]})[_0x9690('0x1e')](function(_0x2f04aa){logger[_0x9690('0xc')]('ShowServicenowAccount',_0x22f5e0);logger[_0x9690('0xe')](_0x9690('0x1f'),_0x22f5e0,JSON[_0x9690('0x10')](_0x2f04aa));_0x5e2bb4(_0x2f04aa);})[_0x9690('0x14')](function(_0x41e700){logger[_0x9690('0x11')](_0x9690('0x1f'),_0x41e700[_0x9690('0x13')],_0x22f5e0);_0x121f7f(_0x4bd1b4[_0x9690('0x11')](0x1f4,_0x41e700['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5f77=['index','/:id','show','/:id/fields','isAuthenticated','getFields','/:id/descriptions','post','create','put','update','delete','destroy','exports','multer','util','connect-timeout','express','../../components/auth/service','../../components/interaction/service','../../config/environment','./intServicenowConfiguration.controller','get'];(function(_0x1f36bb,_0x8af718){var _0xaf97fa=function(_0xeca489){while(--_0xeca489){_0x1f36bb['push'](_0x1f36bb['shift']());}};_0xaf97fa(++_0x8af718);}(_0x5f77,0xc6));var _0x75f7=function(_0x4c445a,_0x4ee80f){_0x4c445a=_0x4c445a-0x0;var _0x2f611c=_0x5f77[_0x4c445a];return _0x2f611c;};'use strict';var multer=require(_0x75f7('0x0'));var util=require(_0x75f7('0x1'));var path=require('path');var timeout=require(_0x75f7('0x2'));var express=require(_0x75f7('0x3'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0x75f7('0x4'));var interaction=require(_0x75f7('0x5'));var config=require(_0x75f7('0x6'));var controller=require(_0x75f7('0x7'));router[_0x75f7('0x8')]('/',auth['isAuthenticated'](),controller[_0x75f7('0x9')]);router['get'](_0x75f7('0xa'),auth['isAuthenticated'](),controller[_0x75f7('0xb')]);router[_0x75f7('0x8')](_0x75f7('0xc'),auth[_0x75f7('0xd')](),controller[_0x75f7('0xe')]);router[_0x75f7('0x8')]('/:id/subjects',auth['isAuthenticated'](),controller['getSubjects']);router[_0x75f7('0x8')](_0x75f7('0xf'),auth[_0x75f7('0xd')](),controller['getDescriptions']);router[_0x75f7('0x10')]('/',auth[_0x75f7('0xd')](),controller[_0x75f7('0x11')]);router[_0x75f7('0x12')](_0x75f7('0xa'),auth['isAuthenticated'](),controller[_0x75f7('0x13')]);router[_0x75f7('0x14')](_0x75f7('0xa'),auth['isAuthenticated'](),controller[_0x75f7('0x15')]);module[_0x75f7('0x16')]=router;
\ No newline at end of file
+var _0x0a7f=['/:id/subjects','getSubjects','/:id/descriptions','getDescriptions','post','put','update','delete','exports','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./intServicenowConfiguration.controller','get','isAuthenticated','index','/:id','show','/:id/fields'];(function(_0x5a2d95,_0xb362e5){var _0x2c3986=function(_0x5cce7c){while(--_0x5cce7c){_0x5a2d95['push'](_0x5a2d95['shift']());}};_0x2c3986(++_0xb362e5);}(_0x0a7f,0x141));var _0xf0a7=function(_0x5ddb1c,_0x5ea4df){_0x5ddb1c=_0x5ddb1c-0x0;var _0x354adc=_0x0a7f[_0x5ddb1c];return _0x354adc;};'use strict';var multer=require('multer');var util=require(_0xf0a7('0x0'));var path=require(_0xf0a7('0x1'));var timeout=require(_0xf0a7('0x2'));var express=require(_0xf0a7('0x3'));var router=express[_0xf0a7('0x4')]();var fs_extra=require(_0xf0a7('0x5'));var auth=require(_0xf0a7('0x6'));var interaction=require(_0xf0a7('0x7'));var config=require('../../config/environment');var controller=require(_0xf0a7('0x8'));router[_0xf0a7('0x9')]('/',auth[_0xf0a7('0xa')](),controller[_0xf0a7('0xb')]);router['get'](_0xf0a7('0xc'),auth['isAuthenticated'](),controller[_0xf0a7('0xd')]);router[_0xf0a7('0x9')](_0xf0a7('0xe'),auth[_0xf0a7('0xa')](),controller['getFields']);router[_0xf0a7('0x9')](_0xf0a7('0xf'),auth[_0xf0a7('0xa')](),controller[_0xf0a7('0x10')]);router[_0xf0a7('0x9')](_0xf0a7('0x11'),auth[_0xf0a7('0xa')](),controller[_0xf0a7('0x12')]);router[_0xf0a7('0x13')]('/',auth[_0xf0a7('0xa')](),controller['create']);router[_0xf0a7('0x14')](_0xf0a7('0xc'),auth['isAuthenticated'](),controller[_0xf0a7('0x15')]);router[_0xf0a7('0x16')](_0xf0a7('0xc'),auth[_0xf0a7('0xa')](),controller['destroy']);module[_0xf0a7('0x17')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7313=['STRING','sequelize','exports'];(function(_0x136619,_0x31c9b2){var _0x38c4a5=function(_0x10b74d){while(--_0x10b74d){_0x136619['push'](_0x136619['shift']());}};_0x38c4a5(++_0x31c9b2);}(_0x7313,0x73));var _0x3731=function(_0x32d457,_0x1a39c9){_0x32d457=_0x32d457-0x0;var _0x338386=_0x7313[_0x32d457];return _0x338386;};'use strict';var Sequelize=require(_0x3731('0x0'));module[_0x3731('0x1')]={'name':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0x3731('0x2')]}};
\ No newline at end of file
+var _0x478e=['exports','STRING','sequelize'];(function(_0x130a8e,_0x2f702d){var _0x24e209=function(_0x57de8b){while(--_0x57de8b){_0x130a8e['push'](_0x130a8e['shift']());}};_0x24e209(++_0x2f702d);}(_0x478e,0x1e2));var _0xe478=function(_0x45fa67,_0x54f9c8){_0x45fa67=_0x45fa67-0x0;var _0x2eddaf=_0x478e[_0x45fa67];return _0x2eddaf;};'use strict';var Sequelize=require(_0xe478('0x0'));module[_0xe478('0x1')]={'name':{'type':Sequelize[_0xe478('0x2')]},'description':{'type':Sequelize[_0xe478('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7366=['pick','getFields','getSubjects','getDescriptions','eml-format','rimraf','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','fs-extra','squel','jsforce','desk.js','to-csv','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/environment','../../config/license/util','sendStatus','status','end','limit','count','offset','Content-Range','json','apply','reject','save','update','then','error','stack','name','send','ServicenowConfiguration','fieldName','type','model','map','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','filter','VIRTUAL','merge','options','includeAll','include','findAll','rows','catch','params','keys','rawAttributes','length','create','body','find','destroy','findOne','ServicenowField'];(function(_0x10c603,_0x383f1b){var _0x1a690b=function(_0x241e5e){while(--_0x241e5e){_0x10c603['push'](_0x10c603['shift']());}};_0x1a690b(++_0x383f1b);}(_0x7366,0x9e));var _0x6736=function(_0x56e6c6,_0x4486ce){_0x56e6c6=_0x56e6c6-0x0;var _0x21547e=_0x7366[_0x56e6c6];return _0x21547e;};'use strict';var emlformat=require(_0x6736('0x0'));var rimraf=require(_0x6736('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x6736('0x2'));var rp=require(_0x6736('0x3'));var moment=require('moment');var BPromise=require(_0x6736('0x4'));var Mustache=require(_0x6736('0x5'));var util=require(_0x6736('0x6'));var path=require(_0x6736('0x7'));var sox=require(_0x6736('0x8'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x6736('0x9'));var _=require('lodash');var squel=require(_0x6736('0xa'));var crypto=require('crypto');var jsforce=require(_0x6736('0xb'));var deskjs=require(_0x6736('0xc'));var toCsv=require(_0x6736('0xd'));var querystring=require('querystring');var Papa=require(_0x6736('0xe'));var Redis=require(_0x6736('0xf'));var authService=require(_0x6736('0x10'));var qs=require(_0x6736('0x11'));var as=require(_0x6736('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x6736('0x13'));var utils=require('../../config/utils');var config=require(_0x6736('0x14'));var licenseUtil=require(_0x6736('0x15'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x1b8baf,_0x52a7c7){_0x52a7c7=_0x52a7c7||0xcc;return function(_0x1a3b41){if(_0x1a3b41){return _0x1b8baf[_0x6736('0x16')](_0x52a7c7);}return _0x1b8baf[_0x6736('0x17')](_0x52a7c7)[_0x6736('0x18')]();};}function respondWithResult(_0x4616a4,_0x200924){_0x200924=_0x200924||0xc8;return function(_0x5b745a){if(_0x5b745a){return _0x4616a4[_0x6736('0x17')](_0x200924)['json'](_0x5b745a);}};}function respondWithFilteredResult(_0x5f2819,_0x4395c1){return function(_0x10cb6b){if(_0x10cb6b){var _0x2bd462=typeof _0x4395c1['offset']==='undefined'&&typeof _0x4395c1[_0x6736('0x19')]==='undefined';var _0x3fc5db=_0x10cb6b[_0x6736('0x1a')];var _0x39e763=_0x2bd462?0x0:_0x4395c1[_0x6736('0x1b')];var _0x58fcb7=_0x2bd462?_0x10cb6b['count']:_0x4395c1[_0x6736('0x1b')]+_0x4395c1[_0x6736('0x19')];var _0x2c136d;if(_0x58fcb7>=_0x3fc5db){_0x58fcb7=_0x3fc5db;_0x2c136d=0xc8;}else{_0x2c136d=0xce;}_0x5f2819[_0x6736('0x17')](_0x2c136d);return _0x5f2819['set'](_0x6736('0x1c'),_0x39e763+'-'+_0x58fcb7+'/'+_0x3fc5db)[_0x6736('0x1d')](_0x10cb6b);}return null;};}function patchUpdates(_0x1596d1){return function(_0x3e4eab){try{jsonpatch[_0x6736('0x1e')](_0x3e4eab,_0x1596d1,!![]);}catch(_0x531bcd){return BPromise[_0x6736('0x1f')](_0x531bcd);}return _0x3e4eab[_0x6736('0x20')]();};}function saveUpdates(_0x1296d5,_0x3c39ca){return function(_0xf1caf2){if(_0xf1caf2){return _0xf1caf2[_0x6736('0x21')](_0x1296d5)[_0x6736('0x22')](function(_0xc2c749){return _0xc2c749;});}return null;};}function removeEntity(_0xc556f3,_0x64ea00){return function(_0x3573c4){if(_0x3573c4){return _0x3573c4['destroy']()[_0x6736('0x22')](function(){_0xc556f3['status'](0xcc)[_0x6736('0x18')]();});}};}function handleEntityNotFound(_0x363409,_0x51a364){return function(_0x28e5e2){if(!_0x28e5e2){_0x363409[_0x6736('0x16')](0x194);}return _0x28e5e2;};}function handleError(_0x2dae73,_0x585a1d){_0x585a1d=_0x585a1d||0x1f4;return function(_0x11a421){logger[_0x6736('0x23')](_0x11a421[_0x6736('0x24')]);if(_0x11a421[_0x6736('0x25')]){delete _0x11a421[_0x6736('0x25')];}_0x2dae73['status'](_0x585a1d)[_0x6736('0x26')](_0x11a421);};}exports['index']=function(_0x54de63,_0x4b9245){var _0x1ac1a1={},_0x4ac748={},_0x5a7bd6={'count':0x0,'rows':[]};var _0x415793=_['map'](db[_0x6736('0x27')]['rawAttributes'],function(_0xecca8){return{'name':_0xecca8[_0x6736('0x28')],'type':_0xecca8[_0x6736('0x29')]['key']};});_0x4ac748[_0x6736('0x2a')]=_[_0x6736('0x2b')](_0x415793,'name');_0x4ac748[_0x6736('0x2c')]=_['keys'](_0x54de63['query']);_0x4ac748[_0x6736('0x2d')]=_[_0x6736('0x2e')](_0x4ac748['model'],_0x4ac748[_0x6736('0x2c')]);_0x1ac1a1[_0x6736('0x2f')]=_[_0x6736('0x2e')](_0x4ac748[_0x6736('0x2a')],qs[_0x6736('0x30')](_0x54de63[_0x6736('0x2c')][_0x6736('0x30')]));_0x1ac1a1[_0x6736('0x2f')]=_0x1ac1a1[_0x6736('0x2f')]['length']?_0x1ac1a1[_0x6736('0x2f')]:_0x4ac748[_0x6736('0x2a')];if(!_0x54de63[_0x6736('0x2c')][_0x6736('0x31')](_0x6736('0x32'))){_0x1ac1a1[_0x6736('0x19')]=qs[_0x6736('0x19')](_0x54de63[_0x6736('0x2c')]['limit']);_0x1ac1a1[_0x6736('0x1b')]=qs[_0x6736('0x1b')](_0x54de63['query'][_0x6736('0x1b')]);}_0x1ac1a1[_0x6736('0x33')]=qs[_0x6736('0x34')](_0x54de63[_0x6736('0x2c')]['sort']);_0x1ac1a1[_0x6736('0x35')]=qs[_0x6736('0x2d')](_['pick'](_0x54de63['query'],_0x4ac748[_0x6736('0x2d')]),_0x415793);if(_0x54de63[_0x6736('0x2c')][_0x6736('0x36')]){_0x1ac1a1['where']=_['merge'](_0x1ac1a1[_0x6736('0x35')],{'$or':_['map'](_0x415793,function(_0x484802){if(_0x484802['type']!==_0x6736('0x37')){var _0x121e84={};_0x121e84[_0x484802['name']]={'$like':'%'+_0x54de63['query'][_0x6736('0x36')]+'%'};return _0x121e84;}})});}_0x1ac1a1=_[_0x6736('0x38')]({},_0x1ac1a1,_0x54de63[_0x6736('0x39')]);var _0x561607={'where':_0x1ac1a1[_0x6736('0x35')]};return db[_0x6736('0x27')][_0x6736('0x1a')](_0x561607)['then'](function(_0x1e3314){_0x5a7bd6[_0x6736('0x1a')]=_0x1e3314;if(_0x54de63[_0x6736('0x2c')][_0x6736('0x3a')]){_0x1ac1a1[_0x6736('0x3b')]=[{'all':!![]}];}return db[_0x6736('0x27')][_0x6736('0x3c')](_0x1ac1a1);})[_0x6736('0x22')](function(_0x4a01e5){_0x5a7bd6[_0x6736('0x3d')]=_0x4a01e5;return _0x5a7bd6;})[_0x6736('0x22')](respondWithFilteredResult(_0x4b9245,_0x1ac1a1))[_0x6736('0x3e')](handleError(_0x4b9245,null));};exports['show']=function(_0x3ccf8e,_0x4f63f4){var _0x3ba332={'raw':![],'where':{'id':_0x3ccf8e[_0x6736('0x3f')]['id']}},_0x3f22ac={};_0x3f22ac[_0x6736('0x2a')]=_[_0x6736('0x40')](db[_0x6736('0x27')][_0x6736('0x41')]);_0x3f22ac[_0x6736('0x2c')]=_[_0x6736('0x40')](_0x3ccf8e['query']);_0x3f22ac['filters']=_['intersection'](_0x3f22ac['model'],_0x3f22ac['query']);_0x3ba332[_0x6736('0x2f')]=_[_0x6736('0x2e')](_0x3f22ac[_0x6736('0x2a')],qs[_0x6736('0x30')](_0x3ccf8e[_0x6736('0x2c')][_0x6736('0x30')]));_0x3ba332[_0x6736('0x2f')]=_0x3ba332[_0x6736('0x2f')][_0x6736('0x42')]?_0x3ba332[_0x6736('0x2f')]:_0x3f22ac[_0x6736('0x2a')];if(_0x3ccf8e['query'][_0x6736('0x3a')]){_0x3ba332[_0x6736('0x3b')]=[{'all':!![]}];}_0x3ba332=_['merge']({},_0x3ba332,_0x3ccf8e[_0x6736('0x39')]);return db[_0x6736('0x27')]['find'](_0x3ba332)[_0x6736('0x22')](handleEntityNotFound(_0x4f63f4,null))[_0x6736('0x22')](respondWithResult(_0x4f63f4,null))[_0x6736('0x3e')](handleError(_0x4f63f4,null));};exports[_0x6736('0x43')]=function(_0x1aab20,_0x256598){return db[_0x6736('0x27')][_0x6736('0x43')](_0x1aab20[_0x6736('0x44')],{})[_0x6736('0x22')](respondWithResult(_0x256598,0xc9))[_0x6736('0x3e')](handleError(_0x256598,null));};exports[_0x6736('0x21')]=function(_0x1b76df,_0x31a731){if(_0x1b76df[_0x6736('0x44')]['id']){delete _0x1b76df[_0x6736('0x44')]['id'];}return db[_0x6736('0x27')][_0x6736('0x45')]({'where':{'id':_0x1b76df[_0x6736('0x3f')]['id']}})[_0x6736('0x22')](handleEntityNotFound(_0x31a731,null))[_0x6736('0x22')](saveUpdates(_0x1b76df[_0x6736('0x44')],null))[_0x6736('0x22')](respondWithResult(_0x31a731,null))[_0x6736('0x3e')](handleError(_0x31a731,null));};exports[_0x6736('0x46')]=function(_0x397bee,_0x25860c){return db[_0x6736('0x27')][_0x6736('0x45')]({'where':{'id':_0x397bee[_0x6736('0x3f')]['id']}})['then'](handleEntityNotFound(_0x25860c,null))[_0x6736('0x22')](removeEntity(_0x25860c,null))[_0x6736('0x3e')](handleError(_0x25860c,null));};exports['getFields']=function(_0x12b627,_0x236e1e,_0xfd7204){var _0x5918f1={};var _0x1e5ff6={};var _0x1e1ddd;var _0x15cbbb;return db[_0x6736('0x27')][_0x6736('0x47')]({'where':{'id':_0x12b627[_0x6736('0x3f')]['id']}})[_0x6736('0x22')](handleEntityNotFound(_0x236e1e,null))['then'](function(_0xedbf31){if(_0xedbf31){_0x1e1ddd=_0xedbf31;_0x1e5ff6[_0x6736('0x2a')]=_[_0x6736('0x40')](db[_0x6736('0x48')][_0x6736('0x41')]);_0x1e5ff6[_0x6736('0x2c')]=_[_0x6736('0x40')](_0x12b627[_0x6736('0x2c')]);_0x1e5ff6[_0x6736('0x2d')]=_[_0x6736('0x2e')](_0x1e5ff6[_0x6736('0x2a')],_0x1e5ff6['query']);_0x5918f1['attributes']=_['intersection'](_0x1e5ff6[_0x6736('0x2a')],qs['fields'](_0x12b627[_0x6736('0x2c')][_0x6736('0x30')]));_0x5918f1['attributes']=_0x5918f1[_0x6736('0x2f')][_0x6736('0x42')]?_0x5918f1[_0x6736('0x2f')]:_0x1e5ff6['model'];_0x5918f1[_0x6736('0x33')]=qs[_0x6736('0x34')](_0x12b627[_0x6736('0x2c')][_0x6736('0x34')]);_0x5918f1[_0x6736('0x35')]=qs[_0x6736('0x2d')](_[_0x6736('0x49')](_0x12b627[_0x6736('0x2c')],_0x1e5ff6[_0x6736('0x2d')]));if(_0x12b627[_0x6736('0x2c')][_0x6736('0x36')]){_0x5918f1[_0x6736('0x35')]=_[_0x6736('0x38')](_0x5918f1[_0x6736('0x35')],{'$or':_[_0x6736('0x2b')](_0x5918f1[_0x6736('0x2f')],function(_0x445c2d){var _0x3ee750={};_0x3ee750[_0x445c2d]={'$like':'%'+_0x12b627[_0x6736('0x2c')]['filter']+'%'};return _0x3ee750;})});}_0x5918f1=_[_0x6736('0x38')]({},_0x5918f1,_0x12b627['options']);return _0x1e1ddd[_0x6736('0x4a')](_0x5918f1);}})[_0x6736('0x22')](function(_0x405351){if(_0x405351){_0x15cbbb=_0x405351['length'];if(!_0x12b627[_0x6736('0x2c')][_0x6736('0x31')](_0x6736('0x32'))){_0x5918f1[_0x6736('0x19')]=qs[_0x6736('0x19')](_0x12b627[_0x6736('0x2c')]['limit']);_0x5918f1[_0x6736('0x1b')]=qs[_0x6736('0x1b')](_0x12b627['query'][_0x6736('0x1b')]);}return _0x1e1ddd['getFields'](_0x5918f1);}})[_0x6736('0x22')](function(_0x1e4fab){if(_0x1e4fab){return _0x1e4fab?{'count':_0x15cbbb,'rows':_0x1e4fab}:null;}})[_0x6736('0x22')](respondWithResult(_0x236e1e,null))[_0x6736('0x3e')](handleError(_0x236e1e,null));};exports[_0x6736('0x4b')]=function(_0x59e709,_0x513ee8,_0x4f28b0){var _0x23c3d4={};var _0x809825={};var _0x323b11;var _0x342297;return db[_0x6736('0x27')][_0x6736('0x47')]({'where':{'id':_0x59e709[_0x6736('0x3f')]['id']}})[_0x6736('0x22')](handleEntityNotFound(_0x513ee8,null))[_0x6736('0x22')](function(_0x25ea8b){if(_0x25ea8b){_0x323b11=_0x25ea8b;_0x809825[_0x6736('0x2a')]=_['keys'](db['ServicenowField'][_0x6736('0x41')]);_0x809825[_0x6736('0x2c')]=_[_0x6736('0x40')](_0x59e709['query']);_0x809825[_0x6736('0x2d')]=_[_0x6736('0x2e')](_0x809825[_0x6736('0x2a')],_0x809825[_0x6736('0x2c')]);_0x23c3d4[_0x6736('0x2f')]=_[_0x6736('0x2e')](_0x809825[_0x6736('0x2a')],qs['fields'](_0x59e709[_0x6736('0x2c')]['fields']));_0x23c3d4[_0x6736('0x2f')]=_0x23c3d4[_0x6736('0x2f')][_0x6736('0x42')]?_0x23c3d4[_0x6736('0x2f')]:_0x809825['model'];_0x23c3d4[_0x6736('0x33')]=qs[_0x6736('0x34')](_0x59e709[_0x6736('0x2c')][_0x6736('0x34')]);_0x23c3d4[_0x6736('0x35')]=qs['filters'](_['pick'](_0x59e709[_0x6736('0x2c')],_0x809825[_0x6736('0x2d')]));if(_0x59e709['query'][_0x6736('0x36')]){_0x23c3d4[_0x6736('0x35')]=_['merge'](_0x23c3d4[_0x6736('0x35')],{'$or':_[_0x6736('0x2b')](_0x23c3d4[_0x6736('0x2f')],function(_0x4bf8d6){var _0x2c8d6f={};_0x2c8d6f[_0x4bf8d6]={'$like':'%'+_0x59e709[_0x6736('0x2c')]['filter']+'%'};return _0x2c8d6f;})});}_0x23c3d4=_[_0x6736('0x38')]({},_0x23c3d4,_0x59e709[_0x6736('0x39')]);return _0x323b11[_0x6736('0x4b')](_0x23c3d4);}})[_0x6736('0x22')](function(_0x534851){if(_0x534851){_0x342297=_0x534851[_0x6736('0x42')];if(!_0x59e709['query'][_0x6736('0x31')](_0x6736('0x32'))){_0x23c3d4[_0x6736('0x19')]=qs[_0x6736('0x19')](_0x59e709[_0x6736('0x2c')][_0x6736('0x19')]);_0x23c3d4[_0x6736('0x1b')]=qs[_0x6736('0x1b')](_0x59e709[_0x6736('0x2c')][_0x6736('0x1b')]);}return _0x323b11[_0x6736('0x4b')](_0x23c3d4);}})[_0x6736('0x22')](function(_0x59a50a){if(_0x59a50a){return _0x59a50a?{'count':_0x342297,'rows':_0x59a50a}:null;}})[_0x6736('0x22')](respondWithResult(_0x513ee8,null))[_0x6736('0x3e')](handleError(_0x513ee8,null));};exports[_0x6736('0x4c')]=function(_0x233157,_0x5de1ee,_0x214b52){var _0x16d5fd={};var _0x4f904a={};var _0x25d84b;var _0x354808;return db[_0x6736('0x27')][_0x6736('0x47')]({'where':{'id':_0x233157[_0x6736('0x3f')]['id']}})[_0x6736('0x22')](handleEntityNotFound(_0x5de1ee,null))[_0x6736('0x22')](function(_0x5c75bd){if(_0x5c75bd){_0x25d84b=_0x5c75bd;_0x4f904a['model']=_[_0x6736('0x40')](db[_0x6736('0x48')][_0x6736('0x41')]);_0x4f904a['query']=_[_0x6736('0x40')](_0x233157[_0x6736('0x2c')]);_0x4f904a['filters']=_[_0x6736('0x2e')](_0x4f904a[_0x6736('0x2a')],_0x4f904a[_0x6736('0x2c')]);_0x16d5fd['attributes']=_[_0x6736('0x2e')](_0x4f904a[_0x6736('0x2a')],qs['fields'](_0x233157[_0x6736('0x2c')][_0x6736('0x30')]));_0x16d5fd[_0x6736('0x2f')]=_0x16d5fd[_0x6736('0x2f')][_0x6736('0x42')]?_0x16d5fd[_0x6736('0x2f')]:_0x4f904a[_0x6736('0x2a')];_0x16d5fd[_0x6736('0x33')]=qs[_0x6736('0x34')](_0x233157['query']['sort']);_0x16d5fd['where']=qs[_0x6736('0x2d')](_[_0x6736('0x49')](_0x233157[_0x6736('0x2c')],_0x4f904a[_0x6736('0x2d')]));if(_0x233157[_0x6736('0x2c')][_0x6736('0x36')]){_0x16d5fd['where']=_[_0x6736('0x38')](_0x16d5fd[_0x6736('0x35')],{'$or':_[_0x6736('0x2b')](_0x16d5fd[_0x6736('0x2f')],function(_0xebf6e6){var _0x31fbdf={};_0x31fbdf[_0xebf6e6]={'$like':'%'+_0x233157[_0x6736('0x2c')][_0x6736('0x36')]+'%'};return _0x31fbdf;})});}_0x16d5fd=_[_0x6736('0x38')]({},_0x16d5fd,_0x233157[_0x6736('0x39')]);return _0x25d84b['getDescriptions'](_0x16d5fd);}})[_0x6736('0x22')](function(_0x3ca8ac){if(_0x3ca8ac){_0x354808=_0x3ca8ac['length'];if(!_0x233157[_0x6736('0x2c')][_0x6736('0x31')]('nolimit')){_0x16d5fd['limit']=qs[_0x6736('0x19')](_0x233157[_0x6736('0x2c')][_0x6736('0x19')]);_0x16d5fd[_0x6736('0x1b')]=qs[_0x6736('0x1b')](_0x233157[_0x6736('0x2c')][_0x6736('0x1b')]);}return _0x25d84b[_0x6736('0x4c')](_0x16d5fd);}})['then'](function(_0x25d618){if(_0x25d618){return _0x25d618?{'count':_0x354808,'rows':_0x25d618}:null;}})[_0x6736('0x22')](respondWithResult(_0x5de1ee,null))[_0x6736('0x3e')](handleError(_0x5de1ee,null));};
\ No newline at end of file
+var _0x5f72=['end','error','stack','name','send','index','ServicenowConfiguration','fieldName','key','model','map','query','filters','intersection','attributes','fields','nolimit','sort','where','filter','merge','type','options','includeAll','include','findAll','rows','catch','show','params','keys','rawAttributes','length','find','create','body','getFields','findOne','ServicenowField','order','pick','hasOwnProperty','getSubjects','getDescriptions','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','querystring','ioredis','../../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'];(function(_0xda464c,_0x26e47d){var _0x19e222=function(_0x1ec605){while(--_0x1ec605){_0xda464c['push'](_0xda464c['shift']());}};_0x19e222(++_0x26e47d);}(_0x5f72,0x7d));var _0x25f7=function(_0x2f3794,_0x3c3bec){_0x2f3794=_0x2f3794-0x0;var _0x1c9fbe=_0x5f72[_0x2f3794];return _0x1c9fbe;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x25f7('0x0'));var jsonpatch=require(_0x25f7('0x1'));var rp=require(_0x25f7('0x2'));var moment=require(_0x25f7('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x25f7('0x4'));var util=require(_0x25f7('0x5'));var path=require(_0x25f7('0x6'));var sox=require(_0x25f7('0x7'));var csv=require(_0x25f7('0x8'));var ejs=require(_0x25f7('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x25f7('0xa'));var squel=require(_0x25f7('0xb'));var crypto=require(_0x25f7('0xc'));var jsforce=require(_0x25f7('0xd'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x25f7('0xe'));var Papa=require('papaparse');var Redis=require(_0x25f7('0xf'));var authService=require('../../components/auth/service');var qs=require(_0x25f7('0x10'));var as=require(_0x25f7('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x25f7('0x12'))(_0x25f7('0x13'));var utils=require(_0x25f7('0x14'));var config=require(_0x25f7('0x15'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x57ce89,_0x4805d7){_0x4805d7=_0x4805d7||0xcc;return function(_0x4a84bf){if(_0x4a84bf){return _0x57ce89[_0x25f7('0x16')](_0x4805d7);}return _0x57ce89['status'](_0x4805d7)['end']();};}function respondWithResult(_0x2b8bd4,_0x29bee6){_0x29bee6=_0x29bee6||0xc8;return function(_0x4bc54a){if(_0x4bc54a){return _0x2b8bd4[_0x25f7('0x17')](_0x29bee6)[_0x25f7('0x18')](_0x4bc54a);}};}function respondWithFilteredResult(_0x28de21,_0x4ab6d5){return function(_0xe95fae){if(_0xe95fae){var _0x2e4a2e=typeof _0x4ab6d5[_0x25f7('0x19')]===_0x25f7('0x1a')&&typeof _0x4ab6d5[_0x25f7('0x1b')]===_0x25f7('0x1a');var _0x5f12ab=_0xe95fae[_0x25f7('0x1c')];var _0x384861=_0x2e4a2e?0x0:_0x4ab6d5['offset'];var _0x52f11a=_0x2e4a2e?_0xe95fae[_0x25f7('0x1c')]:_0x4ab6d5[_0x25f7('0x19')]+_0x4ab6d5[_0x25f7('0x1b')];var _0x5bfdd0;if(_0x52f11a>=_0x5f12ab){_0x52f11a=_0x5f12ab;_0x5bfdd0=0xc8;}else{_0x5bfdd0=0xce;}_0x28de21[_0x25f7('0x17')](_0x5bfdd0);return _0x28de21[_0x25f7('0x1d')](_0x25f7('0x1e'),_0x384861+'-'+_0x52f11a+'/'+_0x5f12ab)[_0x25f7('0x18')](_0xe95fae);}return null;};}function patchUpdates(_0x37df73){return function(_0x378dc5){try{jsonpatch[_0x25f7('0x1f')](_0x378dc5,_0x37df73,!![]);}catch(_0x2686b4){return BPromise[_0x25f7('0x20')](_0x2686b4);}return _0x378dc5[_0x25f7('0x21')]();};}function saveUpdates(_0x2e7018,_0x5e4c23){return function(_0x1fbe5a){if(_0x1fbe5a){return _0x1fbe5a[_0x25f7('0x22')](_0x2e7018)[_0x25f7('0x23')](function(_0x5710b4){return _0x5710b4;});}return null;};}function removeEntity(_0x278a70,_0x3d5f98){return function(_0x444438){if(_0x444438){return _0x444438[_0x25f7('0x24')]()[_0x25f7('0x23')](function(){_0x278a70[_0x25f7('0x17')](0xcc)[_0x25f7('0x25')]();});}};}function handleEntityNotFound(_0x753ed3,_0x18318a){return function(_0x578251){if(!_0x578251){_0x753ed3['sendStatus'](0x194);}return _0x578251;};}function handleError(_0x38f10e,_0x50a2d8){_0x50a2d8=_0x50a2d8||0x1f4;return function(_0x2c4ba6){logger[_0x25f7('0x26')](_0x2c4ba6[_0x25f7('0x27')]);if(_0x2c4ba6[_0x25f7('0x28')]){delete _0x2c4ba6['name'];}_0x38f10e[_0x25f7('0x17')](_0x50a2d8)[_0x25f7('0x29')](_0x2c4ba6);};}exports[_0x25f7('0x2a')]=function(_0x37fdc7,_0x1eae64){var _0x580d8c={},_0x2cd6fd={},_0x452715={'count':0x0,'rows':[]};var _0x388e32=_['map'](db[_0x25f7('0x2b')]['rawAttributes'],function(_0x599162){return{'name':_0x599162[_0x25f7('0x2c')],'type':_0x599162['type'][_0x25f7('0x2d')]};});_0x2cd6fd[_0x25f7('0x2e')]=_[_0x25f7('0x2f')](_0x388e32,_0x25f7('0x28'));_0x2cd6fd[_0x25f7('0x30')]=_['keys'](_0x37fdc7[_0x25f7('0x30')]);_0x2cd6fd[_0x25f7('0x31')]=_[_0x25f7('0x32')](_0x2cd6fd[_0x25f7('0x2e')],_0x2cd6fd[_0x25f7('0x30')]);_0x580d8c[_0x25f7('0x33')]=_[_0x25f7('0x32')](_0x2cd6fd[_0x25f7('0x2e')],qs[_0x25f7('0x34')](_0x37fdc7[_0x25f7('0x30')][_0x25f7('0x34')]));_0x580d8c[_0x25f7('0x33')]=_0x580d8c[_0x25f7('0x33')]['length']?_0x580d8c[_0x25f7('0x33')]:_0x2cd6fd[_0x25f7('0x2e')];if(!_0x37fdc7[_0x25f7('0x30')]['hasOwnProperty'](_0x25f7('0x35'))){_0x580d8c[_0x25f7('0x1b')]=qs[_0x25f7('0x1b')](_0x37fdc7[_0x25f7('0x30')][_0x25f7('0x1b')]);_0x580d8c[_0x25f7('0x19')]=qs[_0x25f7('0x19')](_0x37fdc7['query']['offset']);}_0x580d8c['order']=qs[_0x25f7('0x36')](_0x37fdc7[_0x25f7('0x30')][_0x25f7('0x36')]);_0x580d8c[_0x25f7('0x37')]=qs['filters'](_['pick'](_0x37fdc7[_0x25f7('0x30')],_0x2cd6fd[_0x25f7('0x31')]),_0x388e32);if(_0x37fdc7[_0x25f7('0x30')][_0x25f7('0x38')]){_0x580d8c['where']=_[_0x25f7('0x39')](_0x580d8c['where'],{'$or':_[_0x25f7('0x2f')](_0x388e32,function(_0x37d368){if(_0x37d368[_0x25f7('0x3a')]!=='VIRTUAL'){var _0x342eb0={};_0x342eb0[_0x37d368[_0x25f7('0x28')]]={'$like':'%'+_0x37fdc7['query'][_0x25f7('0x38')]+'%'};return _0x342eb0;}})});}_0x580d8c=_[_0x25f7('0x39')]({},_0x580d8c,_0x37fdc7[_0x25f7('0x3b')]);var _0x505d25={'where':_0x580d8c['where']};return db[_0x25f7('0x2b')][_0x25f7('0x1c')](_0x505d25)[_0x25f7('0x23')](function(_0x38dc52){_0x452715[_0x25f7('0x1c')]=_0x38dc52;if(_0x37fdc7['query'][_0x25f7('0x3c')]){_0x580d8c[_0x25f7('0x3d')]=[{'all':!![]}];}return db['ServicenowConfiguration'][_0x25f7('0x3e')](_0x580d8c);})['then'](function(_0x56bdd8){_0x452715[_0x25f7('0x3f')]=_0x56bdd8;return _0x452715;})[_0x25f7('0x23')](respondWithFilteredResult(_0x1eae64,_0x580d8c))[_0x25f7('0x40')](handleError(_0x1eae64,null));};exports[_0x25f7('0x41')]=function(_0x1a8543,_0x18b0ca){var _0x500289={'raw':![],'where':{'id':_0x1a8543[_0x25f7('0x42')]['id']}},_0x588bbe={};_0x588bbe[_0x25f7('0x2e')]=_[_0x25f7('0x43')](db['ServicenowConfiguration'][_0x25f7('0x44')]);_0x588bbe['query']=_[_0x25f7('0x43')](_0x1a8543[_0x25f7('0x30')]);_0x588bbe[_0x25f7('0x31')]=_[_0x25f7('0x32')](_0x588bbe[_0x25f7('0x2e')],_0x588bbe[_0x25f7('0x30')]);_0x500289[_0x25f7('0x33')]=_[_0x25f7('0x32')](_0x588bbe['model'],qs[_0x25f7('0x34')](_0x1a8543['query'][_0x25f7('0x34')]));_0x500289['attributes']=_0x500289[_0x25f7('0x33')][_0x25f7('0x45')]?_0x500289[_0x25f7('0x33')]:_0x588bbe[_0x25f7('0x2e')];if(_0x1a8543[_0x25f7('0x30')][_0x25f7('0x3c')]){_0x500289[_0x25f7('0x3d')]=[{'all':!![]}];}_0x500289=_[_0x25f7('0x39')]({},_0x500289,_0x1a8543[_0x25f7('0x3b')]);return db[_0x25f7('0x2b')][_0x25f7('0x46')](_0x500289)[_0x25f7('0x23')](handleEntityNotFound(_0x18b0ca,null))[_0x25f7('0x23')](respondWithResult(_0x18b0ca,null))['catch'](handleError(_0x18b0ca,null));};exports[_0x25f7('0x47')]=function(_0x50b2fd,_0xe755bc){return db[_0x25f7('0x2b')][_0x25f7('0x47')](_0x50b2fd[_0x25f7('0x48')],{})[_0x25f7('0x23')](respondWithResult(_0xe755bc,0xc9))[_0x25f7('0x40')](handleError(_0xe755bc,null));};exports[_0x25f7('0x22')]=function(_0x31348b,_0x49e866){if(_0x31348b[_0x25f7('0x48')]['id']){delete _0x31348b['body']['id'];}return db[_0x25f7('0x2b')][_0x25f7('0x46')]({'where':{'id':_0x31348b[_0x25f7('0x42')]['id']}})[_0x25f7('0x23')](handleEntityNotFound(_0x49e866,null))[_0x25f7('0x23')](saveUpdates(_0x31348b['body'],null))[_0x25f7('0x23')](respondWithResult(_0x49e866,null))[_0x25f7('0x40')](handleError(_0x49e866,null));};exports['destroy']=function(_0x28831c,_0x5d4a62){return db[_0x25f7('0x2b')][_0x25f7('0x46')]({'where':{'id':_0x28831c[_0x25f7('0x42')]['id']}})[_0x25f7('0x23')](handleEntityNotFound(_0x5d4a62,null))[_0x25f7('0x23')](removeEntity(_0x5d4a62,null))[_0x25f7('0x40')](handleError(_0x5d4a62,null));};exports[_0x25f7('0x49')]=function(_0x108074,_0x546173,_0xa89457){var _0x2c7536={};var _0xa74129={};var _0xd881ea;var _0x51e526;return db[_0x25f7('0x2b')][_0x25f7('0x4a')]({'where':{'id':_0x108074[_0x25f7('0x42')]['id']}})['then'](handleEntityNotFound(_0x546173,null))['then'](function(_0x611976){if(_0x611976){_0xd881ea=_0x611976;_0xa74129[_0x25f7('0x2e')]=_[_0x25f7('0x43')](db[_0x25f7('0x4b')][_0x25f7('0x44')]);_0xa74129['query']=_[_0x25f7('0x43')](_0x108074[_0x25f7('0x30')]);_0xa74129[_0x25f7('0x31')]=_[_0x25f7('0x32')](_0xa74129['model'],_0xa74129[_0x25f7('0x30')]);_0x2c7536[_0x25f7('0x33')]=_[_0x25f7('0x32')](_0xa74129[_0x25f7('0x2e')],qs[_0x25f7('0x34')](_0x108074[_0x25f7('0x30')][_0x25f7('0x34')]));_0x2c7536[_0x25f7('0x33')]=_0x2c7536['attributes']['length']?_0x2c7536[_0x25f7('0x33')]:_0xa74129[_0x25f7('0x2e')];_0x2c7536[_0x25f7('0x4c')]=qs[_0x25f7('0x36')](_0x108074[_0x25f7('0x30')]['sort']);_0x2c7536[_0x25f7('0x37')]=qs[_0x25f7('0x31')](_[_0x25f7('0x4d')](_0x108074[_0x25f7('0x30')],_0xa74129[_0x25f7('0x31')]));if(_0x108074[_0x25f7('0x30')][_0x25f7('0x38')]){_0x2c7536[_0x25f7('0x37')]=_[_0x25f7('0x39')](_0x2c7536['where'],{'$or':_[_0x25f7('0x2f')](_0x2c7536['attributes'],function(_0x254c9d){var _0x2e25c7={};_0x2e25c7[_0x254c9d]={'$like':'%'+_0x108074['query'][_0x25f7('0x38')]+'%'};return _0x2e25c7;})});}_0x2c7536=_[_0x25f7('0x39')]({},_0x2c7536,_0x108074['options']);return _0xd881ea[_0x25f7('0x49')](_0x2c7536);}})['then'](function(_0x7c05ad){if(_0x7c05ad){_0x51e526=_0x7c05ad[_0x25f7('0x45')];if(!_0x108074['query'][_0x25f7('0x4e')]('nolimit')){_0x2c7536[_0x25f7('0x1b')]=qs[_0x25f7('0x1b')](_0x108074[_0x25f7('0x30')]['limit']);_0x2c7536[_0x25f7('0x19')]=qs[_0x25f7('0x19')](_0x108074[_0x25f7('0x30')][_0x25f7('0x19')]);}return _0xd881ea['getFields'](_0x2c7536);}})['then'](function(_0x4b8f04){if(_0x4b8f04){return _0x4b8f04?{'count':_0x51e526,'rows':_0x4b8f04}:null;}})[_0x25f7('0x23')](respondWithResult(_0x546173,null))[_0x25f7('0x40')](handleError(_0x546173,null));};exports['getSubjects']=function(_0x190e2e,_0x27cde2,_0x2864c6){var _0x18d2db={};var _0x21e2c7={};var _0x332cfa;var _0x43b50d;return db[_0x25f7('0x2b')][_0x25f7('0x4a')]({'where':{'id':_0x190e2e[_0x25f7('0x42')]['id']}})[_0x25f7('0x23')](handleEntityNotFound(_0x27cde2,null))[_0x25f7('0x23')](function(_0x5d8d18){if(_0x5d8d18){_0x332cfa=_0x5d8d18;_0x21e2c7[_0x25f7('0x2e')]=_[_0x25f7('0x43')](db[_0x25f7('0x4b')]['rawAttributes']);_0x21e2c7[_0x25f7('0x30')]=_[_0x25f7('0x43')](_0x190e2e[_0x25f7('0x30')]);_0x21e2c7['filters']=_['intersection'](_0x21e2c7['model'],_0x21e2c7['query']);_0x18d2db[_0x25f7('0x33')]=_[_0x25f7('0x32')](_0x21e2c7['model'],qs[_0x25f7('0x34')](_0x190e2e[_0x25f7('0x30')][_0x25f7('0x34')]));_0x18d2db[_0x25f7('0x33')]=_0x18d2db[_0x25f7('0x33')][_0x25f7('0x45')]?_0x18d2db[_0x25f7('0x33')]:_0x21e2c7[_0x25f7('0x2e')];_0x18d2db[_0x25f7('0x4c')]=qs[_0x25f7('0x36')](_0x190e2e[_0x25f7('0x30')][_0x25f7('0x36')]);_0x18d2db['where']=qs['filters'](_['pick'](_0x190e2e['query'],_0x21e2c7[_0x25f7('0x31')]));if(_0x190e2e[_0x25f7('0x30')][_0x25f7('0x38')]){_0x18d2db[_0x25f7('0x37')]=_[_0x25f7('0x39')](_0x18d2db[_0x25f7('0x37')],{'$or':_[_0x25f7('0x2f')](_0x18d2db['attributes'],function(_0x2fcced){var _0x5ed12b={};_0x5ed12b[_0x2fcced]={'$like':'%'+_0x190e2e[_0x25f7('0x30')][_0x25f7('0x38')]+'%'};return _0x5ed12b;})});}_0x18d2db=_[_0x25f7('0x39')]({},_0x18d2db,_0x190e2e['options']);return _0x332cfa[_0x25f7('0x4f')](_0x18d2db);}})[_0x25f7('0x23')](function(_0x5951ad){if(_0x5951ad){_0x43b50d=_0x5951ad[_0x25f7('0x45')];if(!_0x190e2e[_0x25f7('0x30')]['hasOwnProperty'](_0x25f7('0x35'))){_0x18d2db[_0x25f7('0x1b')]=qs[_0x25f7('0x1b')](_0x190e2e[_0x25f7('0x30')][_0x25f7('0x1b')]);_0x18d2db[_0x25f7('0x19')]=qs['offset'](_0x190e2e[_0x25f7('0x30')][_0x25f7('0x19')]);}return _0x332cfa[_0x25f7('0x4f')](_0x18d2db);}})[_0x25f7('0x23')](function(_0x41f686){if(_0x41f686){return _0x41f686?{'count':_0x43b50d,'rows':_0x41f686}:null;}})[_0x25f7('0x23')](respondWithResult(_0x27cde2,null))[_0x25f7('0x40')](handleError(_0x27cde2,null));};exports[_0x25f7('0x50')]=function(_0x37746f,_0x575e8a,_0x36a3a2){var _0x2f2699={};var _0x5aeb5c={};var _0x4b1e54;var _0x53f803;return db['ServicenowConfiguration'][_0x25f7('0x4a')]({'where':{'id':_0x37746f[_0x25f7('0x42')]['id']}})['then'](handleEntityNotFound(_0x575e8a,null))[_0x25f7('0x23')](function(_0x44db79){if(_0x44db79){_0x4b1e54=_0x44db79;_0x5aeb5c[_0x25f7('0x2e')]=_[_0x25f7('0x43')](db['ServicenowField']['rawAttributes']);_0x5aeb5c[_0x25f7('0x30')]=_['keys'](_0x37746f[_0x25f7('0x30')]);_0x5aeb5c[_0x25f7('0x31')]=_[_0x25f7('0x32')](_0x5aeb5c['model'],_0x5aeb5c[_0x25f7('0x30')]);_0x2f2699['attributes']=_['intersection'](_0x5aeb5c[_0x25f7('0x2e')],qs[_0x25f7('0x34')](_0x37746f['query'][_0x25f7('0x34')]));_0x2f2699[_0x25f7('0x33')]=_0x2f2699[_0x25f7('0x33')]['length']?_0x2f2699[_0x25f7('0x33')]:_0x5aeb5c[_0x25f7('0x2e')];_0x2f2699[_0x25f7('0x4c')]=qs[_0x25f7('0x36')](_0x37746f[_0x25f7('0x30')][_0x25f7('0x36')]);_0x2f2699[_0x25f7('0x37')]=qs[_0x25f7('0x31')](_[_0x25f7('0x4d')](_0x37746f[_0x25f7('0x30')],_0x5aeb5c[_0x25f7('0x31')]));if(_0x37746f[_0x25f7('0x30')][_0x25f7('0x38')]){_0x2f2699[_0x25f7('0x37')]=_[_0x25f7('0x39')](_0x2f2699[_0x25f7('0x37')],{'$or':_[_0x25f7('0x2f')](_0x2f2699[_0x25f7('0x33')],function(_0x36cee9){var _0x52a863={};_0x52a863[_0x36cee9]={'$like':'%'+_0x37746f[_0x25f7('0x30')][_0x25f7('0x38')]+'%'};return _0x52a863;})});}_0x2f2699=_[_0x25f7('0x39')]({},_0x2f2699,_0x37746f['options']);return _0x4b1e54[_0x25f7('0x50')](_0x2f2699);}})['then'](function(_0x2e3f97){if(_0x2e3f97){_0x53f803=_0x2e3f97['length'];if(!_0x37746f[_0x25f7('0x30')][_0x25f7('0x4e')]('nolimit')){_0x2f2699[_0x25f7('0x1b')]=qs[_0x25f7('0x1b')](_0x37746f[_0x25f7('0x30')][_0x25f7('0x1b')]);_0x2f2699[_0x25f7('0x19')]=qs[_0x25f7('0x19')](_0x37746f[_0x25f7('0x30')]['offset']);}return _0x4b1e54[_0x25f7('0x50')](_0x2f2699);}})[_0x25f7('0x23')](function(_0x254b40){if(_0x254b40){return _0x254b40?{'count':_0x53f803,'rows':_0x254b40}:null;}})[_0x25f7('0x23')](respondWithResult(_0x575e8a,null))[_0x25f7('0x40')](handleError(_0x575e8a,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x38c9=['../../config/environment','./intServicenowConfiguration.attributes','exports','define','ServicenowConfiguration','int_servicenow_configurations','lodash','util','../../config/logger','moment','bluebird','request-promise','path'];(function(_0x59e4ff,_0x2eee5a){var _0x382218=function(_0x46f87e){while(--_0x46f87e){_0x59e4ff['push'](_0x59e4ff['shift']());}};_0x382218(++_0x2eee5a);}(_0x38c9,0x199));var _0x938c=function(_0x3f4cd0,_0x303070){_0x3f4cd0=_0x3f4cd0-0x0;var _0x3f9f01=_0x38c9[_0x3f4cd0];return _0x3f9f01;};'use strict';var _=require(_0x938c('0x0'));var util=require(_0x938c('0x1'));var logger=require(_0x938c('0x2'))('api');var moment=require(_0x938c('0x3'));var BPromise=require(_0x938c('0x4'));var rp=require(_0x938c('0x5'));var fs=require('fs');var path=require(_0x938c('0x6'));var rimraf=require('rimraf');var config=require(_0x938c('0x7'));var attributes=require(_0x938c('0x8'));module[_0x938c('0x9')]=function(_0x15a858,_0x4dae36){return _0x15a858[_0x938c('0xa')](_0x938c('0xb'),attributes,{'tableName':_0x938c('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x0abf=['define','int_servicenow_configurations','lodash','../../config/logger','api','request-promise','rimraf','../../config/environment','./intServicenowConfiguration.attributes','exports'];(function(_0x9a6174,_0x2db33d){var _0x124276=function(_0x500d89){while(--_0x500d89){_0x9a6174['push'](_0x9a6174['shift']());}};_0x124276(++_0x2db33d);}(_0x0abf,0xe8));var _0xf0ab=function(_0x1facfa,_0x1acf7d){_0x1facfa=_0x1facfa-0x0;var _0x9ec701=_0x0abf[_0x1facfa];return _0x9ec701;};'use strict';var _=require(_0xf0ab('0x0'));var util=require('util');var logger=require(_0xf0ab('0x1'))(_0xf0ab('0x2'));var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0xf0ab('0x3'));var fs=require('fs');var path=require('path');var rimraf=require(_0xf0ab('0x4'));var config=require(_0xf0ab('0x5'));var attributes=require(_0xf0ab('0x6'));module[_0xf0ab('0x7')]=function(_0x2ab7d6,_0x4d2ea8){return _0x2ab7d6[_0xf0ab('0x8')]('ServicenowConfiguration',attributes,{'tableName':_0xf0ab('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7449=['result','lodash','util','moment','bluebird','ioredis','../../config/utils','rpc','../../config/environment','jayson/promise','client','request','then','info','ServicenowConfiguration,\x20%s,\x20%s','request\x20sent','debug','ServicenowConfiguration,\x20%s,\x20%s,\x20%s','stringify','error','code','message'];(function(_0x4ce028,_0x526d4b){var _0x583d0c=function(_0x874178){while(--_0x874178){_0x4ce028['push'](_0x4ce028['shift']());}};_0x583d0c(++_0x526d4b);}(_0x7449,0x14b));var _0x9744=function(_0x26aa05,_0x2f039d){_0x26aa05=_0x26aa05-0x0;var _0x1a46e4=_0x7449[_0x26aa05];return _0x1a46e4;};'use strict';var _=require(_0x9744('0x0'));var util=require(_0x9744('0x1'));var moment=require(_0x9744('0x2'));var BPromise=require(_0x9744('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x9744('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x9744('0x5'));var logger=require('../../config/logger')(_0x9744('0x6'));var config=require(_0x9744('0x7'));var jayson=require(_0x9744('0x8'));var client=jayson[_0x9744('0x9')]['http']({'port':0x232a});function respondWithRpcPromise(_0x591192,_0x2e6fa2,_0x47d76c){return new BPromise(function(_0x2ea9bb,_0x222051){return client[_0x9744('0xa')](_0x591192,_0x47d76c)[_0x9744('0xb')](function(_0x17d571){logger[_0x9744('0xc')](_0x9744('0xd'),_0x2e6fa2,_0x9744('0xe'));logger[_0x9744('0xf')](_0x9744('0x10'),_0x2e6fa2,_0x9744('0xe'),JSON[_0x9744('0x11')](_0x17d571));if(_0x17d571[_0x9744('0x12')]){if(_0x17d571['error'][_0x9744('0x13')]===0x1f4){logger['error'](_0x9744('0xd'),_0x2e6fa2,_0x17d571[_0x9744('0x12')]['message']);return _0x222051(_0x17d571[_0x9744('0x12')][_0x9744('0x14')]);}logger[_0x9744('0x12')](_0x9744('0xd'),_0x2e6fa2,_0x17d571['error'][_0x9744('0x14')]);return _0x2ea9bb(_0x17d571[_0x9744('0x12')][_0x9744('0x14')]);}else{logger[_0x9744('0xc')](_0x9744('0xd'),_0x2e6fa2,'request\x20sent');_0x2ea9bb(_0x17d571[_0x9744('0x15')]['message']);}})['catch'](function(_0x1eeba8){logger[_0x9744('0x12')]('ServicenowConfiguration,\x20%s,\x20%s',_0x2e6fa2,_0x1eeba8);_0x222051(_0x1eeba8);});});}
\ No newline at end of file
+var _0x90d5=['bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','request','then','info','ServicenowConfiguration,\x20%s,\x20%s','request\x20sent','debug','ServicenowConfiguration,\x20%s,\x20%s,\x20%s','error','message','result','catch','lodash','util','moment'];(function(_0x1dbc48,_0x17eea7){var _0x1817ea=function(_0x4e6b29){while(--_0x4e6b29){_0x1dbc48['push'](_0x1dbc48['shift']());}};_0x1817ea(++_0x17eea7);}(_0x90d5,0x189));var _0x590d=function(_0x417a99,_0x5e0480){_0x417a99=_0x417a99-0x0;var _0x2dd9b6=_0x90d5[_0x417a99];return _0x2dd9b6;};'use strict';var _=require(_0x590d('0x0'));var util=require(_0x590d('0x1'));var moment=require(_0x590d('0x2'));var BPromise=require(_0x590d('0x3'));var rs=require(_0x590d('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x590d('0x5'))['db'];var utils=require(_0x590d('0x6'));var logger=require(_0x590d('0x7'))('rpc');var config=require(_0x590d('0x8'));var jayson=require(_0x590d('0x9'));var client=jayson[_0x590d('0xa')]['http']({'port':0x232a});function respondWithRpcPromise(_0x18022d,_0x297dff,_0x5463b6){return new BPromise(function(_0x1c4d12,_0x41a993){return client[_0x590d('0xb')](_0x18022d,_0x5463b6)[_0x590d('0xc')](function(_0x4e2601){logger[_0x590d('0xd')](_0x590d('0xe'),_0x297dff,_0x590d('0xf'));logger[_0x590d('0x10')](_0x590d('0x11'),_0x297dff,_0x590d('0xf'),JSON['stringify'](_0x4e2601));if(_0x4e2601[_0x590d('0x12')]){if(_0x4e2601[_0x590d('0x12')]['code']===0x1f4){logger[_0x590d('0x12')](_0x590d('0xe'),_0x297dff,_0x4e2601[_0x590d('0x12')][_0x590d('0x13')]);return _0x41a993(_0x4e2601[_0x590d('0x12')]['message']);}logger[_0x590d('0x12')](_0x590d('0xe'),_0x297dff,_0x4e2601['error'][_0x590d('0x13')]);return _0x1c4d12(_0x4e2601[_0x590d('0x12')][_0x590d('0x13')]);}else{logger['info'](_0x590d('0xe'),_0x297dff,_0x590d('0xf'));_0x1c4d12(_0x4e2601[_0x590d('0x14')][_0x590d('0x13')]);}})[_0x590d('0x15')](function(_0x474d6c){logger[_0x590d('0x12')](_0x590d('0xe'),_0x297dff,_0x474d6c);_0x41a993(_0x474d6c);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfeef=['isAuthenticated','create','update','delete','destroy','exports','util','path','Router','../../components/auth/service','../../components/interaction/service','./intServicenowField.controller','get','index','/:id','show','post'];(function(_0x374ada,_0x27b3a5){var _0x449ed8=function(_0x3efc46){while(--_0x3efc46){_0x374ada['push'](_0x374ada['shift']());}};_0x449ed8(++_0x27b3a5);}(_0xfeef,0x1e2));var _0xffee=function(_0xeb1ecd,_0xcb4616){_0xeb1ecd=_0xeb1ecd-0x0;var _0x4b9c1e=_0xfeef[_0xeb1ecd];return _0x4b9c1e;};'use strict';var multer=require('multer');var util=require(_0xffee('0x0'));var path=require(_0xffee('0x1'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0xffee('0x2')]();var fs_extra=require('fs-extra');var auth=require(_0xffee('0x3'));var interaction=require(_0xffee('0x4'));var config=require('../../config/environment');var controller=require(_0xffee('0x5'));router[_0xffee('0x6')]('/',auth['isAuthenticated'](),controller[_0xffee('0x7')]);router[_0xffee('0x6')](_0xffee('0x8'),auth['isAuthenticated'](),controller[_0xffee('0x9')]);router[_0xffee('0xa')]('/',auth[_0xffee('0xb')](),controller[_0xffee('0xc')]);router['put'](_0xffee('0x8'),auth[_0xffee('0xb')](),controller[_0xffee('0xd')]);router[_0xffee('0xe')](_0xffee('0x8'),auth[_0xffee('0xb')](),controller[_0xffee('0xf')]);module[_0xffee('0x10')]=router;
\ No newline at end of file
+var _0xa93e=['exports','multer','util','path','connect-timeout','express','fs-extra','../../components/auth/service','../../config/environment','get','isAuthenticated','index','/:id','post','create','update','delete','destroy'];(function(_0x26c7cb,_0x5e30e8){var _0x43d797=function(_0x57728b){while(--_0x57728b){_0x26c7cb['push'](_0x26c7cb['shift']());}};_0x43d797(++_0x5e30e8);}(_0xa93e,0xfd));var _0xea93=function(_0x26d3ab,_0x2d7502){_0x26d3ab=_0x26d3ab-0x0;var _0x36c5e6=_0xa93e[_0x26d3ab];return _0x36c5e6;};'use strict';var multer=require(_0xea93('0x0'));var util=require(_0xea93('0x1'));var path=require(_0xea93('0x2'));var timeout=require(_0xea93('0x3'));var express=require(_0xea93('0x4'));var router=express['Router']();var fs_extra=require(_0xea93('0x5'));var auth=require(_0xea93('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0xea93('0x7'));var controller=require('./intServicenowField.controller');router[_0xea93('0x8')]('/',auth[_0xea93('0x9')](),controller[_0xea93('0xa')]);router['get'](_0xea93('0xb'),auth[_0xea93('0x9')](),controller['show']);router[_0xea93('0xc')]('/',auth[_0xea93('0x9')](),controller[_0xea93('0xd')]);router['put'](_0xea93('0xb'),auth['isAuthenticated'](),controller[_0xea93('0xe')]);router[_0xea93('0xf')](_0xea93('0xb'),auth[_0xea93('0x9')](),controller[_0xea93('0x10')]);module[_0xea93('0x11')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4dbf=['customVariable','keyValue','picklist','STRING','BOOLEAN','sequelize','ENUM','string','variable'];(function(_0x4e9d3c,_0x1f4b98){var _0x2d0825=function(_0x384676){while(--_0x384676){_0x4e9d3c['push'](_0x4e9d3c['shift']());}};_0x2d0825(++_0x1f4b98);}(_0x4dbf,0x137));var _0xf4db=function(_0x1177d5,_0x22b649){_0x1177d5=_0x1177d5-0x0;var _0xc3ddc2=_0x4dbf[_0x1177d5];return _0xc3ddc2;};'use strict';var Sequelize=require(_0xf4db('0x0'));module['exports']={'type':{'type':Sequelize[_0xf4db('0x1')](_0xf4db('0x2'),_0xf4db('0x3'),_0xf4db('0x4'),_0xf4db('0x5'),_0xf4db('0x6')),'defaultValue':'string'},'content':{'type':Sequelize['STRING']},'key':{'type':Sequelize[_0xf4db('0x7')]},'keyType':{'type':Sequelize[_0xf4db('0x1')](_0xf4db('0x2'),_0xf4db('0x3'),'customVariable')},'keyContent':{'type':Sequelize[_0xf4db('0x7')]},'idField':{'type':Sequelize[_0xf4db('0x7')]},'nameField':{'type':Sequelize[_0xf4db('0x7')]},'customField':{'type':Sequelize[_0xf4db('0x8')],'defaultValue':!![]},'variableName':{'type':Sequelize[_0xf4db('0x7')]}};
\ No newline at end of file
+var _0x0c0f=['picklist','STRING','BOOLEAN','sequelize','exports','ENUM','customVariable'];(function(_0x24f31b,_0x44b8f3){var _0x488401=function(_0x204caf){while(--_0x204caf){_0x24f31b['push'](_0x24f31b['shift']());}};_0x488401(++_0x44b8f3);}(_0x0c0f,0x18b));var _0xf0c0=function(_0x11bfc8,_0xc95100){_0x11bfc8=_0x11bfc8-0x0;var _0x4ad0bd=_0x0c0f[_0x11bfc8];return _0x4ad0bd;};'use strict';var Sequelize=require(_0xf0c0('0x0'));module[_0xf0c0('0x1')]={'type':{'type':Sequelize[_0xf0c0('0x2')]('string','variable',_0xf0c0('0x3'),'keyValue',_0xf0c0('0x4')),'defaultValue':'string'},'content':{'type':Sequelize['STRING']},'key':{'type':Sequelize['STRING']},'keyType':{'type':Sequelize[_0xf0c0('0x2')]('string','variable',_0xf0c0('0x3'))},'keyContent':{'type':Sequelize[_0xf0c0('0x5')]},'idField':{'type':Sequelize[_0xf0c0('0x5')]},'nameField':{'type':Sequelize['STRING']},'customField':{'type':Sequelize[_0xf0c0('0x6')],'defaultValue':!![]},'variableName':{'type':Sequelize[_0xf0c0('0x5')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x843a=['filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','params','catch','create','body','find','destroy','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','path','sox','to-csv','fs-extra','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','apply','reject','save','update','then','error','name','send','ServicenowField','rawAttributes','fieldName','type','model','map','keys','query'];(function(_0x2eaedc,_0x2fcb31){var _0x1a652c=function(_0x1b9852){while(--_0x1b9852){_0x2eaedc['push'](_0x2eaedc['shift']());}};_0x1a652c(++_0x2fcb31);}(_0x843a,0x13c));var _0xa843=function(_0x542324,_0x110c77){_0x542324=_0x542324-0x0;var _0x3a024c=_0x843a[_0x542324];return _0x3a024c;};'use strict';var emlformat=require(_0xa843('0x0'));var rimraf=require(_0xa843('0x1'));var zipdir=require(_0xa843('0x2'));var jsonpatch=require(_0xa843('0x3'));var rp=require(_0xa843('0x4'));var moment=require('moment');var BPromise=require(_0xa843('0x5'));var Mustache=require('mustache');var util=require('util');var path=require(_0xa843('0x6'));var sox=require(_0xa843('0x7'));var csv=require(_0xa843('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xa843('0x9'));var _=require('lodash');var squel=require(_0xa843('0xa'));var crypto=require(_0xa843('0xb'));var jsforce=require(_0xa843('0xc'));var deskjs=require(_0xa843('0xd'));var toCsv=require(_0xa843('0x8'));var querystring=require('querystring');var Papa=require(_0xa843('0xe'));var Redis=require(_0xa843('0xf'));var authService=require(_0xa843('0x10'));var qs=require(_0xa843('0x11'));var as=require(_0xa843('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xa843('0x13'))('api');var utils=require('../../config/utils');var config=require(_0xa843('0x14'));var licenseUtil=require(_0xa843('0x15'));var db=require(_0xa843('0x16'))['db'];function respondWithStatusCode(_0x5ba6e1,_0x47729a){_0x47729a=_0x47729a||0xcc;return function(_0x128f28){if(_0x128f28){return _0x5ba6e1[_0xa843('0x17')](_0x47729a);}return _0x5ba6e1[_0xa843('0x18')](_0x47729a)[_0xa843('0x19')]();};}function respondWithResult(_0x5e74c9,_0x476bc9){_0x476bc9=_0x476bc9||0xc8;return function(_0x4336eb){if(_0x4336eb){return _0x5e74c9['status'](_0x476bc9)[_0xa843('0x1a')](_0x4336eb);}};}function respondWithFilteredResult(_0xc063eb,_0x2a206f){return function(_0x5c87c1){if(_0x5c87c1){var _0x21f983=typeof _0x2a206f[_0xa843('0x1b')]==='undefined'&&typeof _0x2a206f['limit']===_0xa843('0x1c');var _0x59880a=_0x5c87c1[_0xa843('0x1d')];var _0x11954f=_0x21f983?0x0:_0x2a206f[_0xa843('0x1b')];var _0x15a613=_0x21f983?_0x5c87c1['count']:_0x2a206f[_0xa843('0x1b')]+_0x2a206f[_0xa843('0x1e')];var _0x36f043;if(_0x15a613>=_0x59880a){_0x15a613=_0x59880a;_0x36f043=0xc8;}else{_0x36f043=0xce;}_0xc063eb[_0xa843('0x18')](_0x36f043);return _0xc063eb[_0xa843('0x1f')](_0xa843('0x20'),_0x11954f+'-'+_0x15a613+'/'+_0x59880a)['json'](_0x5c87c1);}return null;};}function patchUpdates(_0x4b39dc){return function(_0x26e28b){try{jsonpatch[_0xa843('0x21')](_0x26e28b,_0x4b39dc,!![]);}catch(_0x183e8b){return BPromise[_0xa843('0x22')](_0x183e8b);}return _0x26e28b[_0xa843('0x23')]();};}function saveUpdates(_0x1eb519,_0x460181){return function(_0x31fa63){if(_0x31fa63){return _0x31fa63[_0xa843('0x24')](_0x1eb519)['then'](function(_0x7b50f6){return _0x7b50f6;});}return null;};}function removeEntity(_0x4db88f,_0x110a67){return function(_0x5eb0a8){if(_0x5eb0a8){return _0x5eb0a8['destroy']()[_0xa843('0x25')](function(){_0x4db88f[_0xa843('0x18')](0xcc)[_0xa843('0x19')]();});}};}function handleEntityNotFound(_0x39e03b,_0x46f71b){return function(_0x3055fd){if(!_0x3055fd){_0x39e03b['sendStatus'](0x194);}return _0x3055fd;};}function handleError(_0x1a29de,_0x16e145){_0x16e145=_0x16e145||0x1f4;return function(_0x1d0573){logger[_0xa843('0x26')](_0x1d0573['stack']);if(_0x1d0573[_0xa843('0x27')]){delete _0x1d0573['name'];}_0x1a29de['status'](_0x16e145)[_0xa843('0x28')](_0x1d0573);};}exports['index']=function(_0x313ce3,_0x5d6c99){var _0x195687={},_0x1ab26d={},_0x53c62f={'count':0x0,'rows':[]};var _0x33ba8a=_['map'](db[_0xa843('0x29')][_0xa843('0x2a')],function(_0x3f2d22){return{'name':_0x3f2d22[_0xa843('0x2b')],'type':_0x3f2d22[_0xa843('0x2c')]['key']};});_0x1ab26d[_0xa843('0x2d')]=_[_0xa843('0x2e')](_0x33ba8a,'name');_0x1ab26d['query']=_[_0xa843('0x2f')](_0x313ce3[_0xa843('0x30')]);_0x1ab26d[_0xa843('0x31')]=_[_0xa843('0x32')](_0x1ab26d['model'],_0x1ab26d[_0xa843('0x30')]);_0x195687[_0xa843('0x33')]=_[_0xa843('0x32')](_0x1ab26d[_0xa843('0x2d')],qs[_0xa843('0x34')](_0x313ce3[_0xa843('0x30')][_0xa843('0x34')]));_0x195687['attributes']=_0x195687['attributes'][_0xa843('0x35')]?_0x195687[_0xa843('0x33')]:_0x1ab26d['model'];if(!_0x313ce3['query'][_0xa843('0x36')](_0xa843('0x37'))){_0x195687[_0xa843('0x1e')]=qs[_0xa843('0x1e')](_0x313ce3[_0xa843('0x30')][_0xa843('0x1e')]);_0x195687[_0xa843('0x1b')]=qs[_0xa843('0x1b')](_0x313ce3['query'][_0xa843('0x1b')]);}_0x195687[_0xa843('0x38')]=qs[_0xa843('0x39')](_0x313ce3[_0xa843('0x30')][_0xa843('0x39')]);_0x195687[_0xa843('0x3a')]=qs[_0xa843('0x31')](_['pick'](_0x313ce3[_0xa843('0x30')],_0x1ab26d['filters']),_0x33ba8a);if(_0x313ce3[_0xa843('0x30')][_0xa843('0x3b')]){_0x195687[_0xa843('0x3a')]=_[_0xa843('0x3c')](_0x195687['where'],{'$or':_[_0xa843('0x2e')](_0x33ba8a,function(_0x495c16){if(_0x495c16[_0xa843('0x2c')]!==_0xa843('0x3d')){var _0x2493a1={};_0x2493a1[_0x495c16[_0xa843('0x27')]]={'$like':'%'+_0x313ce3[_0xa843('0x30')][_0xa843('0x3b')]+'%'};return _0x2493a1;}})});}_0x195687=_[_0xa843('0x3c')]({},_0x195687,_0x313ce3[_0xa843('0x3e')]);var _0x52a71a={'where':_0x195687['where']};return db[_0xa843('0x29')]['count'](_0x52a71a)[_0xa843('0x25')](function(_0x45b691){_0x53c62f[_0xa843('0x1d')]=_0x45b691;if(_0x313ce3['query'][_0xa843('0x3f')]){_0x195687[_0xa843('0x40')]=[{'all':!![]}];}return db[_0xa843('0x29')][_0xa843('0x41')](_0x195687);})[_0xa843('0x25')](function(_0x55e285){_0x53c62f[_0xa843('0x42')]=_0x55e285;return _0x53c62f;})[_0xa843('0x25')](respondWithFilteredResult(_0x5d6c99,_0x195687))['catch'](handleError(_0x5d6c99,null));};exports['show']=function(_0x174896,_0x50caec){var _0x232d43={'raw':!![],'where':{'id':_0x174896[_0xa843('0x43')]['id']}},_0x255eb6={};_0x255eb6['model']=_[_0xa843('0x2f')](db[_0xa843('0x29')]['rawAttributes']);_0x255eb6[_0xa843('0x30')]=_['keys'](_0x174896[_0xa843('0x30')]);_0x255eb6['filters']=_['intersection'](_0x255eb6[_0xa843('0x2d')],_0x255eb6['query']);_0x232d43[_0xa843('0x33')]=_[_0xa843('0x32')](_0x255eb6['model'],qs[_0xa843('0x34')](_0x174896[_0xa843('0x30')][_0xa843('0x34')]));_0x232d43[_0xa843('0x33')]=_0x232d43[_0xa843('0x33')][_0xa843('0x35')]?_0x232d43[_0xa843('0x33')]:_0x255eb6[_0xa843('0x2d')];if(_0x174896['query'][_0xa843('0x3f')]){_0x232d43[_0xa843('0x40')]=[{'all':!![]}];}_0x232d43=_['merge']({},_0x232d43,_0x174896[_0xa843('0x3e')]);return db['ServicenowField']['find'](_0x232d43)[_0xa843('0x25')](handleEntityNotFound(_0x50caec,null))['then'](respondWithResult(_0x50caec,null))[_0xa843('0x44')](handleError(_0x50caec,null));};exports[_0xa843('0x45')]=function(_0x279021,_0x3b3013){return db['ServicenowField'][_0xa843('0x45')](_0x279021[_0xa843('0x46')],{})[_0xa843('0x25')](respondWithResult(_0x3b3013,0xc9))[_0xa843('0x44')](handleError(_0x3b3013,null));};exports['update']=function(_0x2ee20f,_0x234cdc){if(_0x2ee20f['body']['id']){delete _0x2ee20f[_0xa843('0x46')]['id'];}return db[_0xa843('0x29')][_0xa843('0x47')]({'where':{'id':_0x2ee20f['params']['id']}})[_0xa843('0x25')](handleEntityNotFound(_0x234cdc,null))['then'](saveUpdates(_0x2ee20f[_0xa843('0x46')],null))[_0xa843('0x25')](respondWithResult(_0x234cdc,null))[_0xa843('0x44')](handleError(_0x234cdc,null));};exports[_0xa843('0x48')]=function(_0x20748b,_0x52fdcf){return db[_0xa843('0x29')][_0xa843('0x47')]({'where':{'id':_0x20748b[_0xa843('0x43')]['id']}})[_0xa843('0x25')](handleEntityNotFound(_0x52fdcf,null))['then'](removeEntity(_0x52fdcf,null))[_0xa843('0x44')](handleError(_0x52fdcf,null));};
\ No newline at end of file
+var _0x5a75=['path','sox','to-csv','ejs','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../mysqldb','sendStatus','end','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','error','stack','name','send','index','map','ServicenowField','rawAttributes','fieldName','type','key','model','query','keys','filters','attributes','intersection','fields','order','sort','where','filter','merge','VIRTUAL','options','include','findAll','catch','params','includeAll','find','create','body','destroy','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util'];(function(_0x5aab8d,_0x254c92){var _0x2b4e9d=function(_0x116c4a){while(--_0x116c4a){_0x5aab8d['push'](_0x5aab8d['shift']());}};_0x2b4e9d(++_0x254c92);}(_0x5a75,0x87));var _0x55a7=function(_0x40a77f,_0x1d5f8d){_0x40a77f=_0x40a77f-0x0;var _0x415aa1=_0x5a75[_0x40a77f];return _0x415aa1;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x55a7('0x0'));var zipdir=require(_0x55a7('0x1'));var jsonpatch=require(_0x55a7('0x2'));var rp=require(_0x55a7('0x3'));var moment=require(_0x55a7('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x55a7('0x5'));var util=require(_0x55a7('0x6'));var path=require(_0x55a7('0x7'));var sox=require(_0x55a7('0x8'));var csv=require(_0x55a7('0x9'));var ejs=require(_0x55a7('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require('squel');var crypto=require(_0x55a7('0xb'));var jsforce=require(_0x55a7('0xc'));var deskjs=require(_0x55a7('0xd'));var toCsv=require('to-csv');var querystring=require(_0x55a7('0xe'));var Papa=require(_0x55a7('0xf'));var Redis=require(_0x55a7('0x10'));var authService=require(_0x55a7('0x11'));var qs=require(_0x55a7('0x12'));var as=require(_0x55a7('0x13'));var hardwareService=require(_0x55a7('0x14'));var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x55a7('0x15'))['db'];function respondWithStatusCode(_0x110d1c,_0x3d3e7b){_0x3d3e7b=_0x3d3e7b||0xcc;return function(_0x347899){if(_0x347899){return _0x110d1c[_0x55a7('0x16')](_0x3d3e7b);}return _0x110d1c['status'](_0x3d3e7b)[_0x55a7('0x17')]();};}function respondWithResult(_0x363ea9,_0x37e407){_0x37e407=_0x37e407||0xc8;return function(_0x4b5059){if(_0x4b5059){return _0x363ea9[_0x55a7('0x18')](_0x37e407)[_0x55a7('0x19')](_0x4b5059);}};}function respondWithFilteredResult(_0x1ad0eb,_0x146ef9){return function(_0x1cc833){if(_0x1cc833){var _0xed4e34=typeof _0x146ef9[_0x55a7('0x1a')]===_0x55a7('0x1b')&&typeof _0x146ef9[_0x55a7('0x1c')]===_0x55a7('0x1b');var _0x2a3068=_0x1cc833[_0x55a7('0x1d')];var _0x23b0de=_0xed4e34?0x0:_0x146ef9[_0x55a7('0x1a')];var _0x28396e=_0xed4e34?_0x1cc833[_0x55a7('0x1d')]:_0x146ef9[_0x55a7('0x1a')]+_0x146ef9[_0x55a7('0x1c')];var _0x1c0eca;if(_0x28396e>=_0x2a3068){_0x28396e=_0x2a3068;_0x1c0eca=0xc8;}else{_0x1c0eca=0xce;}_0x1ad0eb[_0x55a7('0x18')](_0x1c0eca);return _0x1ad0eb[_0x55a7('0x1e')](_0x55a7('0x1f'),_0x23b0de+'-'+_0x28396e+'/'+_0x2a3068)[_0x55a7('0x19')](_0x1cc833);}return null;};}function patchUpdates(_0x13a880){return function(_0x15c8f9){try{jsonpatch[_0x55a7('0x20')](_0x15c8f9,_0x13a880,!![]);}catch(_0x42c1af){return BPromise[_0x55a7('0x21')](_0x42c1af);}return _0x15c8f9[_0x55a7('0x22')]();};}function saveUpdates(_0x15948f,_0x4866f7){return function(_0x2eaff2){if(_0x2eaff2){return _0x2eaff2[_0x55a7('0x23')](_0x15948f)[_0x55a7('0x24')](function(_0xfed72){return _0xfed72;});}return null;};}function removeEntity(_0x4e6768,_0x310a55){return function(_0x502069){if(_0x502069){return _0x502069['destroy']()[_0x55a7('0x24')](function(){_0x4e6768['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x43d7eb,_0x566f55){return function(_0x1ca56c){if(!_0x1ca56c){_0x43d7eb[_0x55a7('0x16')](0x194);}return _0x1ca56c;};}function handleError(_0x38fb57,_0x21cc86){_0x21cc86=_0x21cc86||0x1f4;return function(_0x14cf23){logger[_0x55a7('0x25')](_0x14cf23[_0x55a7('0x26')]);if(_0x14cf23[_0x55a7('0x27')]){delete _0x14cf23[_0x55a7('0x27')];}_0x38fb57['status'](_0x21cc86)[_0x55a7('0x28')](_0x14cf23);};}exports[_0x55a7('0x29')]=function(_0x2e2058,_0x74de11){var _0x37998b={},_0x3098e3={},_0xe79b13={'count':0x0,'rows':[]};var _0x2b5775=_[_0x55a7('0x2a')](db[_0x55a7('0x2b')][_0x55a7('0x2c')],function(_0x54c1fd){return{'name':_0x54c1fd[_0x55a7('0x2d')],'type':_0x54c1fd[_0x55a7('0x2e')][_0x55a7('0x2f')]};});_0x3098e3[_0x55a7('0x30')]=_['map'](_0x2b5775,_0x55a7('0x27'));_0x3098e3[_0x55a7('0x31')]=_[_0x55a7('0x32')](_0x2e2058['query']);_0x3098e3[_0x55a7('0x33')]=_['intersection'](_0x3098e3[_0x55a7('0x30')],_0x3098e3['query']);_0x37998b[_0x55a7('0x34')]=_[_0x55a7('0x35')](_0x3098e3[_0x55a7('0x30')],qs[_0x55a7('0x36')](_0x2e2058['query'][_0x55a7('0x36')]));_0x37998b['attributes']=_0x37998b[_0x55a7('0x34')]['length']?_0x37998b[_0x55a7('0x34')]:_0x3098e3[_0x55a7('0x30')];if(!_0x2e2058['query']['hasOwnProperty']('nolimit')){_0x37998b[_0x55a7('0x1c')]=qs[_0x55a7('0x1c')](_0x2e2058[_0x55a7('0x31')]['limit']);_0x37998b['offset']=qs[_0x55a7('0x1a')](_0x2e2058['query'][_0x55a7('0x1a')]);}_0x37998b[_0x55a7('0x37')]=qs['sort'](_0x2e2058['query'][_0x55a7('0x38')]);_0x37998b[_0x55a7('0x39')]=qs[_0x55a7('0x33')](_['pick'](_0x2e2058[_0x55a7('0x31')],_0x3098e3['filters']),_0x2b5775);if(_0x2e2058[_0x55a7('0x31')][_0x55a7('0x3a')]){_0x37998b[_0x55a7('0x39')]=_[_0x55a7('0x3b')](_0x37998b['where'],{'$or':_[_0x55a7('0x2a')](_0x2b5775,function(_0x5cadd3){if(_0x5cadd3[_0x55a7('0x2e')]!==_0x55a7('0x3c')){var _0x41b0db={};_0x41b0db[_0x5cadd3[_0x55a7('0x27')]]={'$like':'%'+_0x2e2058[_0x55a7('0x31')][_0x55a7('0x3a')]+'%'};return _0x41b0db;}})});}_0x37998b=_[_0x55a7('0x3b')]({},_0x37998b,_0x2e2058[_0x55a7('0x3d')]);var _0x566a3b={'where':_0x37998b[_0x55a7('0x39')]};return db[_0x55a7('0x2b')][_0x55a7('0x1d')](_0x566a3b)[_0x55a7('0x24')](function(_0x28bdc7){_0xe79b13[_0x55a7('0x1d')]=_0x28bdc7;if(_0x2e2058[_0x55a7('0x31')]['includeAll']){_0x37998b[_0x55a7('0x3e')]=[{'all':!![]}];}return db['ServicenowField'][_0x55a7('0x3f')](_0x37998b);})[_0x55a7('0x24')](function(_0x5f5a9a){_0xe79b13['rows']=_0x5f5a9a;return _0xe79b13;})['then'](respondWithFilteredResult(_0x74de11,_0x37998b))[_0x55a7('0x40')](handleError(_0x74de11,null));};exports['show']=function(_0x31f3d8,_0x2f3caa){var _0x573a80={'raw':!![],'where':{'id':_0x31f3d8[_0x55a7('0x41')]['id']}},_0x82ce60={};_0x82ce60[_0x55a7('0x30')]=_[_0x55a7('0x32')](db[_0x55a7('0x2b')][_0x55a7('0x2c')]);_0x82ce60[_0x55a7('0x31')]=_[_0x55a7('0x32')](_0x31f3d8[_0x55a7('0x31')]);_0x82ce60['filters']=_['intersection'](_0x82ce60[_0x55a7('0x30')],_0x82ce60[_0x55a7('0x31')]);_0x573a80[_0x55a7('0x34')]=_['intersection'](_0x82ce60[_0x55a7('0x30')],qs[_0x55a7('0x36')](_0x31f3d8[_0x55a7('0x31')][_0x55a7('0x36')]));_0x573a80[_0x55a7('0x34')]=_0x573a80['attributes']['length']?_0x573a80['attributes']:_0x82ce60[_0x55a7('0x30')];if(_0x31f3d8['query'][_0x55a7('0x42')]){_0x573a80[_0x55a7('0x3e')]=[{'all':!![]}];}_0x573a80=_[_0x55a7('0x3b')]({},_0x573a80,_0x31f3d8['options']);return db['ServicenowField'][_0x55a7('0x43')](_0x573a80)[_0x55a7('0x24')](handleEntityNotFound(_0x2f3caa,null))[_0x55a7('0x24')](respondWithResult(_0x2f3caa,null))[_0x55a7('0x40')](handleError(_0x2f3caa,null));};exports['create']=function(_0x38bda7,_0x23a59c){return db[_0x55a7('0x2b')][_0x55a7('0x44')](_0x38bda7['body'],{})['then'](respondWithResult(_0x23a59c,0xc9))['catch'](handleError(_0x23a59c,null));};exports['update']=function(_0x456366,_0x3954e3){if(_0x456366['body']['id']){delete _0x456366[_0x55a7('0x45')]['id'];}return db['ServicenowField'][_0x55a7('0x43')]({'where':{'id':_0x456366[_0x55a7('0x41')]['id']}})[_0x55a7('0x24')](handleEntityNotFound(_0x3954e3,null))[_0x55a7('0x24')](saveUpdates(_0x456366[_0x55a7('0x45')],null))[_0x55a7('0x24')](respondWithResult(_0x3954e3,null))['catch'](handleError(_0x3954e3,null));};exports[_0x55a7('0x46')]=function(_0x5ddb3c,_0x2f9c2d){return db[_0x55a7('0x2b')][_0x55a7('0x43')]({'where':{'id':_0x5ddb3c[_0x55a7('0x41')]['id']}})[_0x55a7('0x24')](handleEntityNotFound(_0x2f9c2d,null))['then'](removeEntity(_0x2f9c2d,null))[_0x55a7('0x40')](handleError(_0x2f9c2d,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x121d=['path','rimraf','./intServicenowField.attributes','define','ServicenowField','int_servicenow_fields','idField','FieldId','lodash','util','api','moment','bluebird','request-promise'];(function(_0x22ef12,_0x3a3598){var _0x2ea095=function(_0x622203){while(--_0x622203){_0x22ef12['push'](_0x22ef12['shift']());}};_0x2ea095(++_0x3a3598);}(_0x121d,0x1e4));var _0xd121=function(_0x55634f,_0x4225a0){_0x55634f=_0x55634f-0x0;var _0x220a06=_0x121d[_0x55634f];return _0x220a06;};'use strict';var _=require(_0xd121('0x0'));var util=require(_0xd121('0x1'));var logger=require('../../config/logger')(_0xd121('0x2'));var moment=require(_0xd121('0x3'));var BPromise=require(_0xd121('0x4'));var rp=require(_0xd121('0x5'));var fs=require('fs');var path=require(_0xd121('0x6'));var rimraf=require(_0xd121('0x7'));var config=require('../../config/environment');var attributes=require(_0xd121('0x8'));module['exports']=function(_0xfc0728,_0x30c715){return _0xfc0728[_0xd121('0x9')](_0xd121('0xa'),attributes,{'tableName':_0xd121('0xb'),'paranoid':![],'indexes':[{'name':'servicenow_unique_index','fields':[_0xd121('0xc'),_0xd121('0xd')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x3f66=['FieldId','lodash','util','../../config/logger','api','bluebird','request-promise','path','rimraf','../../config/environment','exports','ServicenowField','int_servicenow_fields','servicenow_unique_index','idField'];(function(_0x43c2bb,_0x2d4ace){var _0x233a7f=function(_0x27b59b){while(--_0x27b59b){_0x43c2bb['push'](_0x43c2bb['shift']());}};_0x233a7f(++_0x2d4ace);}(_0x3f66,0x97));var _0x63f6=function(_0x22cbdc,_0x566305){_0x22cbdc=_0x22cbdc-0x0;var _0x6d7f6a=_0x3f66[_0x22cbdc];return _0x6d7f6a;};'use strict';var _=require(_0x63f6('0x0'));var util=require(_0x63f6('0x1'));var logger=require(_0x63f6('0x2'))(_0x63f6('0x3'));var moment=require('moment');var BPromise=require(_0x63f6('0x4'));var rp=require(_0x63f6('0x5'));var fs=require('fs');var path=require(_0x63f6('0x6'));var rimraf=require(_0x63f6('0x7'));var config=require(_0x63f6('0x8'));var attributes=require('./intServicenowField.attributes');module[_0x63f6('0x9')]=function(_0x571683,_0x1b6ac5){return _0x571683['define'](_0x63f6('0xa'),attributes,{'tableName':_0x63f6('0xb'),'paranoid':![],'indexes':[{'name':_0x63f6('0xc'),'fields':[_0x63f6('0xd'),_0x63f6('0xe')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbdb7=['request\x20sent','debug','ServicenowField,\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','ServicenowField,\x20%s,\x20%s'];(function(_0x2641f9,_0x26715f){var _0x585741=function(_0x2d1462){while(--_0x2d1462){_0x2641f9['push'](_0x2641f9['shift']());}};_0x585741(++_0x26715f);}(_0xbdb7,0x12e));var _0x7bdb=function(_0x235d85,_0x2db080){_0x235d85=_0x235d85-0x0;var _0x559ead=_0xbdb7[_0x235d85];return _0x559ead;};'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
+var _0xbdb7=['request\x20sent','debug','ServicenowField,\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','ServicenowField,\x20%s,\x20%s'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xbdb7,0x12e));var _0x7bdb=function(_0x2e785e,_0x232c0a){_0x2e785e=_0x2e785e-0x0;var _0x230f26=_0xbdb7[_0x2e785e];return _0x230f26;};'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 _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(_0x1ba332,_0x18a2f8){var _0x49a161=function(_0x3f2556){while(--_0x3f2556){_0x1ba332['push'](_0x1ba332['shift']());}};_0x49a161(++_0x18a2f8);}(_0x9957,0x93));var _0x7995=function(_0x6131cd,_0x4c26a1){_0x6131cd=_0x6131cd-0x0;var _0x47e916=_0x9957[_0x6131cd];return _0x47e916;};'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','./intSugarcrmAccount.controller','get','isAuthenticated','index','/:id','show','getConfigurations','/:id/fields','getFields','post','create','addConfiguration','put','update','delete','destroy','exports','multer','util','path'];(function(_0x8017a,_0x285416){var _0x1b6fd5=function(_0x5a060d){while(--_0x5a060d){_0x8017a['push'](_0x8017a['shift']());}};_0x1b6fd5(++_0x285416);}(_0x9957,0x93));var _0x7995=function(_0x501510,_0x61caa9){_0x501510=_0x501510-0x0;var _0x1e6ee5=_0x9957[_0x501510];return _0x1e6ee5;};'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 _0xa9e0=['remoteUri','sequelize','exports','STRING','username'];(function(_0x39c0cd,_0x257e2b){var _0x3eb55b=function(_0x380517){while(--_0x380517){_0x39c0cd['push'](_0x39c0cd['shift']());}};_0x3eb55b(++_0x257e2b);}(_0xa9e0,0x123));var _0x0a9e=function(_0x31e29a,_0x349c9b){_0x31e29a=_0x31e29a-0x0;var _0x32d892=_0xa9e0[_0x31e29a];return _0x32d892;};'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(_0x4e4aaf,_0x28841d){var _0x3384cc=function(_0x2766eb){while(--_0x2766eb){_0x4e4aaf['push'](_0x4e4aaf['shift']());}};_0x3384cc(++_0x28841d);}(_0xa9e0,0x123));var _0x0a9e=function(_0x311c35,_0x534915){_0x311c35=_0x311c35-0x0;var _0x5cc50c=_0xa9e0[_0x311c35];return _0x5cc50c;};'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 _0xb1d1=['limit','undefined','count','offset','set','json','update','destroy','then','end','error','stack','name','send','index','map','SugarcrmAccount','key','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filter','type','VIRTUAL','merge','options','includeAll','include','rows','catch','show','rawAttributes','keys','find','create','body','params','findOne','getConfigurations','AccountId','getSubjects','channel','Descriptions','getDescriptions','SugarcrmConfiguration','Subjects','SugarcrmField','getFields','created_by','description','date_start','duration_minutes','parent_id','parent_name','username','password','remoteUri','slice','substring','lastIndexOf','POST','format','/service/v4_1/rest.php','login','JSON','stringify','PLAIN','xCALLY\x20Motion\x20Integration','Invalid\x20Login','Password\x20Expired','%s%s','get_module_fields','Calls','values','module_fields','remove','includes','label','endsWith','value','statusCode','getFields,\x20%s,\x20%s,\x20%s','test','Wrong\x20credentials','rimraf','zip-dir','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','status'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xb1d1,0x1c5));var _0x1b1d=function(_0x5e60a0,_0x49aebc){_0x5e60a0=_0x5e60a0-0x0;var _0x5f264b=_0xb1d1[_0x5e60a0];return _0x5f264b;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x1b1d('0x0'));var zipdir=require(_0x1b1d('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x1b1d('0x2'));var moment=require('moment');var BPromise=require(_0x1b1d('0x3'));var Mustache=require(_0x1b1d('0x4'));var util=require(_0x1b1d('0x5'));var path=require(_0x1b1d('0x6'));var sox=require(_0x1b1d('0x7'));var csv=require(_0x1b1d('0x8'));var ejs=require(_0x1b1d('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x1b1d('0xa'));var crypto=require(_0x1b1d('0xb'));var jsforce=require(_0x1b1d('0xc'));var deskjs=require(_0x1b1d('0xd'));var toCsv=require(_0x1b1d('0x8'));var querystring=require('querystring');var Papa=require(_0x1b1d('0xe'));var Redis=require(_0x1b1d('0xf'));var authService=require(_0x1b1d('0x10'));var qs=require(_0x1b1d('0x11'));var as=require(_0x1b1d('0x12'));var hardwareService=require(_0x1b1d('0x13'));var logger=require('../../config/logger')(_0x1b1d('0x14'));var utils=require('../../config/utils');var config=require(_0x1b1d('0x15'));var licenseUtil=require(_0x1b1d('0x16'));var db=require(_0x1b1d('0x17'))['db'];var integrations=require(_0x1b1d('0x18'));function respondWithStatusCode(_0x28d8b2,_0x2b5317){_0x2b5317=_0x2b5317||0xcc;return function(_0x86ff60){if(_0x86ff60){return _0x28d8b2[_0x1b1d('0x19')](_0x2b5317);}return _0x28d8b2[_0x1b1d('0x1a')](_0x2b5317)['end']();};}function respondWithResult(_0x495b48,_0x40470d){_0x40470d=_0x40470d||0xc8;return function(_0x490685){if(_0x490685){return _0x495b48['status'](_0x40470d)['json'](_0x490685);}};}function respondWithFilteredResult(_0x2d6bef,_0x5e9ed2){return function(_0x11ea18){if(_0x11ea18){var _0x52b6b2=typeof _0x5e9ed2['offset']==='undefined'&&typeof _0x5e9ed2[_0x1b1d('0x1b')]===_0x1b1d('0x1c');var _0x5f5618=_0x11ea18[_0x1b1d('0x1d')];var _0x4fdaff=_0x52b6b2?0x0:_0x5e9ed2[_0x1b1d('0x1e')];var _0x1874d1=_0x52b6b2?_0x11ea18[_0x1b1d('0x1d')]:_0x5e9ed2[_0x1b1d('0x1e')]+_0x5e9ed2[_0x1b1d('0x1b')];var _0x5b6f4c;if(_0x1874d1>=_0x5f5618){_0x1874d1=_0x5f5618;_0x5b6f4c=0xc8;}else{_0x5b6f4c=0xce;}_0x2d6bef[_0x1b1d('0x1a')](_0x5b6f4c);return _0x2d6bef[_0x1b1d('0x1f')]('Content-Range',_0x4fdaff+'-'+_0x1874d1+'/'+_0x5f5618)[_0x1b1d('0x20')](_0x11ea18);}return null;};}function patchUpdates(_0x594dfd){return function(_0xcf130e){try{jsonpatch['apply'](_0xcf130e,_0x594dfd,!![]);}catch(_0x4faccb){return BPromise['reject'](_0x4faccb);}return _0xcf130e['save']();};}function saveUpdates(_0x171a85,_0x1ffbfe){return function(_0x511afc){if(_0x511afc){return _0x511afc[_0x1b1d('0x21')](_0x171a85)['then'](function(_0x2899c2){return _0x2899c2;});}return null;};}function removeEntity(_0x4f8104,_0x3ad64a){return function(_0x1dc6a2){if(_0x1dc6a2){return _0x1dc6a2[_0x1b1d('0x22')]()[_0x1b1d('0x23')](function(){_0x4f8104['status'](0xcc)[_0x1b1d('0x24')]();});}};}function handleEntityNotFound(_0x1b6cfe,_0x33466f){return function(_0xcbb5c){if(!_0xcbb5c){_0x1b6cfe[_0x1b1d('0x19')](0x194);}return _0xcbb5c;};}function handleError(_0x3d5ca8,_0x1c6dae){_0x1c6dae=_0x1c6dae||0x1f4;return function(_0x922743){logger[_0x1b1d('0x25')](_0x922743[_0x1b1d('0x26')]);if(_0x922743[_0x1b1d('0x27')]){delete _0x922743[_0x1b1d('0x27')];}_0x3d5ca8['status'](_0x1c6dae)[_0x1b1d('0x28')](_0x922743);};}exports[_0x1b1d('0x29')]=function(_0x38fd41,_0x3108a4){var _0x37b1bf={},_0x14f195={},_0xbf3a38={'count':0x0,'rows':[]};var _0xd46e8e=_[_0x1b1d('0x2a')](db[_0x1b1d('0x2b')]['rawAttributes'],function(_0xa2601b){return{'name':_0xa2601b['fieldName'],'type':_0xa2601b['type'][_0x1b1d('0x2c')]};});_0x14f195[_0x1b1d('0x2d')]=_[_0x1b1d('0x2a')](_0xd46e8e,_0x1b1d('0x27'));_0x14f195[_0x1b1d('0x2e')]=_['keys'](_0x38fd41['query']);_0x14f195[_0x1b1d('0x2f')]=_[_0x1b1d('0x30')](_0x14f195[_0x1b1d('0x2d')],_0x14f195[_0x1b1d('0x2e')]);_0x37b1bf[_0x1b1d('0x31')]=_['intersection'](_0x14f195[_0x1b1d('0x2d')],qs[_0x1b1d('0x32')](_0x38fd41['query'][_0x1b1d('0x32')]));_0x37b1bf[_0x1b1d('0x31')]=_0x37b1bf['attributes'][_0x1b1d('0x33')]?_0x37b1bf[_0x1b1d('0x31')]:_0x14f195[_0x1b1d('0x2d')];if(!_0x38fd41[_0x1b1d('0x2e')][_0x1b1d('0x34')](_0x1b1d('0x35'))){_0x37b1bf[_0x1b1d('0x1b')]=qs[_0x1b1d('0x1b')](_0x38fd41[_0x1b1d('0x2e')][_0x1b1d('0x1b')]);_0x37b1bf[_0x1b1d('0x1e')]=qs['offset'](_0x38fd41[_0x1b1d('0x2e')]['offset']);}_0x37b1bf[_0x1b1d('0x36')]=qs[_0x1b1d('0x37')](_0x38fd41['query'][_0x1b1d('0x37')]);_0x37b1bf[_0x1b1d('0x38')]=qs[_0x1b1d('0x2f')](_['pick'](_0x38fd41[_0x1b1d('0x2e')],_0x14f195[_0x1b1d('0x2f')]),_0xd46e8e);if(_0x38fd41[_0x1b1d('0x2e')][_0x1b1d('0x39')]){_0x37b1bf['where']=_['merge'](_0x37b1bf[_0x1b1d('0x38')],{'$or':_[_0x1b1d('0x2a')](_0xd46e8e,function(_0x28fc4d){if(_0x28fc4d[_0x1b1d('0x3a')]!==_0x1b1d('0x3b')){var _0x3f6639={};_0x3f6639[_0x28fc4d[_0x1b1d('0x27')]]={'$like':'%'+_0x38fd41[_0x1b1d('0x2e')][_0x1b1d('0x39')]+'%'};return _0x3f6639;}})});}_0x37b1bf=_[_0x1b1d('0x3c')]({},_0x37b1bf,_0x38fd41[_0x1b1d('0x3d')]);var _0x3bc83c={'where':_0x37b1bf[_0x1b1d('0x38')]};return db[_0x1b1d('0x2b')][_0x1b1d('0x1d')](_0x3bc83c)[_0x1b1d('0x23')](function(_0x5450b2){_0xbf3a38[_0x1b1d('0x1d')]=_0x5450b2;if(_0x38fd41[_0x1b1d('0x2e')][_0x1b1d('0x3e')]){_0x37b1bf[_0x1b1d('0x3f')]=[{'all':!![]}];}return db['SugarcrmAccount']['findAll'](_0x37b1bf);})[_0x1b1d('0x23')](function(_0x383be4){_0xbf3a38[_0x1b1d('0x40')]=_0x383be4;return _0xbf3a38;})['then'](respondWithFilteredResult(_0x3108a4,_0x37b1bf))[_0x1b1d('0x41')](handleError(_0x3108a4,null));};exports[_0x1b1d('0x42')]=function(_0x5de125,_0x283b56){var _0x419f8e={'raw':![],'where':{'id':_0x5de125['params']['id']}},_0x2438a0={};_0x2438a0['model']=_['keys'](db['SugarcrmAccount'][_0x1b1d('0x43')]);_0x2438a0[_0x1b1d('0x2e')]=_[_0x1b1d('0x44')](_0x5de125[_0x1b1d('0x2e')]);_0x2438a0[_0x1b1d('0x2f')]=_[_0x1b1d('0x30')](_0x2438a0['model'],_0x2438a0[_0x1b1d('0x2e')]);_0x419f8e[_0x1b1d('0x31')]=_[_0x1b1d('0x30')](_0x2438a0[_0x1b1d('0x2d')],qs[_0x1b1d('0x32')](_0x5de125[_0x1b1d('0x2e')][_0x1b1d('0x32')]));_0x419f8e[_0x1b1d('0x31')]=_0x419f8e[_0x1b1d('0x31')][_0x1b1d('0x33')]?_0x419f8e['attributes']:_0x2438a0[_0x1b1d('0x2d')];if(_0x5de125[_0x1b1d('0x2e')]['includeAll']){_0x419f8e['include']=[{'all':!![]}];}_0x419f8e=_[_0x1b1d('0x3c')]({},_0x419f8e,_0x5de125[_0x1b1d('0x3d')]);return db['SugarcrmAccount'][_0x1b1d('0x45')](_0x419f8e)[_0x1b1d('0x23')](handleEntityNotFound(_0x283b56,null))['then'](respondWithResult(_0x283b56,null))['catch'](handleError(_0x283b56,null));};exports[_0x1b1d('0x46')]=function(_0x24196a,_0x1fb8cc){return db[_0x1b1d('0x2b')][_0x1b1d('0x46')](_0x24196a[_0x1b1d('0x47')],{})[_0x1b1d('0x23')](respondWithResult(_0x1fb8cc,0xc9))[_0x1b1d('0x41')](handleError(_0x1fb8cc,null));};exports[_0x1b1d('0x21')]=function(_0xf48d,_0xb181cb){if(_0xf48d[_0x1b1d('0x47')]['id']){delete _0xf48d[_0x1b1d('0x47')]['id'];}return db[_0x1b1d('0x2b')][_0x1b1d('0x45')]({'where':{'id':_0xf48d[_0x1b1d('0x48')]['id']}})[_0x1b1d('0x23')](handleEntityNotFound(_0xb181cb,null))[_0x1b1d('0x23')](saveUpdates(_0xf48d[_0x1b1d('0x47')],null))['then'](respondWithResult(_0xb181cb,null))[_0x1b1d('0x41')](handleError(_0xb181cb,null));};exports['destroy']=function(_0x44b9c3,_0x34c961){return db[_0x1b1d('0x2b')][_0x1b1d('0x45')]({'where':{'id':_0x44b9c3[_0x1b1d('0x48')]['id']}})[_0x1b1d('0x23')](handleEntityNotFound(_0x34c961,null))[_0x1b1d('0x23')](removeEntity(_0x34c961,null))[_0x1b1d('0x41')](handleError(_0x34c961,null));};exports['getConfigurations']=function(_0x1b1928,_0x2778ec,_0x41c9b5){var _0x1cd068={};var _0x1c5630={};var _0x117a3f;var _0x1f61b3;return db[_0x1b1d('0x2b')][_0x1b1d('0x49')]({'where':{'id':_0x1b1928['params']['id']}})[_0x1b1d('0x23')](handleEntityNotFound(_0x2778ec,null))[_0x1b1d('0x23')](function(_0x55b922){if(_0x55b922){_0x117a3f=_0x55b922;_0x1c5630['model']=_[_0x1b1d('0x44')](db['SugarcrmConfiguration']['rawAttributes']);_0x1c5630[_0x1b1d('0x2e')]=_[_0x1b1d('0x44')](_0x1b1928['query']);_0x1c5630['filters']=_[_0x1b1d('0x30')](_0x1c5630[_0x1b1d('0x2d')],_0x1c5630['query']);_0x1cd068[_0x1b1d('0x31')]=_['intersection'](_0x1c5630[_0x1b1d('0x2d')],qs[_0x1b1d('0x32')](_0x1b1928['query'][_0x1b1d('0x32')]));_0x1cd068[_0x1b1d('0x31')]=_0x1cd068[_0x1b1d('0x31')][_0x1b1d('0x33')]?_0x1cd068[_0x1b1d('0x31')]:_0x1c5630['model'];_0x1cd068[_0x1b1d('0x36')]=qs[_0x1b1d('0x37')](_0x1b1928[_0x1b1d('0x2e')][_0x1b1d('0x37')]);_0x1cd068[_0x1b1d('0x38')]=qs[_0x1b1d('0x2f')](_['pick'](_0x1b1928[_0x1b1d('0x2e')],_0x1c5630[_0x1b1d('0x2f')]));if(_0x1b1928['query'][_0x1b1d('0x39')]){_0x1cd068[_0x1b1d('0x38')]=_[_0x1b1d('0x3c')](_0x1cd068[_0x1b1d('0x38')],{'$or':_[_0x1b1d('0x2a')](_0x1cd068['attributes'],function(_0x14690f){var _0x2c7920={};_0x2c7920[_0x14690f]={'$like':'%'+_0x1b1928[_0x1b1d('0x2e')][_0x1b1d('0x39')]+'%'};return _0x2c7920;})});}_0x1cd068=_['merge']({},_0x1cd068,_0x1b1928[_0x1b1d('0x3d')]);return _0x117a3f[_0x1b1d('0x4a')](_0x1cd068);}})['then'](function(_0x8cf545){if(_0x8cf545){_0x1f61b3=_0x8cf545[_0x1b1d('0x33')];if(!_0x1b1928[_0x1b1d('0x2e')]['hasOwnProperty'](_0x1b1d('0x35'))){_0x1cd068['limit']=qs[_0x1b1d('0x1b')](_0x1b1928[_0x1b1d('0x2e')][_0x1b1d('0x1b')]);_0x1cd068[_0x1b1d('0x1e')]=qs[_0x1b1d('0x1e')](_0x1b1928[_0x1b1d('0x2e')][_0x1b1d('0x1e')]);}return _0x117a3f[_0x1b1d('0x4a')](_0x1cd068);}})[_0x1b1d('0x23')](function(_0x2cb3d1){if(_0x2cb3d1){return _0x2cb3d1?{'count':_0x1f61b3,'rows':_0x2cb3d1}:null;}})[_0x1b1d('0x23')](respondWithResult(_0x2778ec,null))[_0x1b1d('0x41')](handleError(_0x2778ec,null));};exports['addConfiguration']=function(_0x2bb077,_0x1852d7,_0x3ce0a1){if(_0x2bb077[_0x1b1d('0x47')]['id']){delete _0x2bb077[_0x1b1d('0x47')]['id'];}return db[_0x1b1d('0x2b')]['findOne']({'where':{'id':_0x2bb077[_0x1b1d('0x48')]['id']}})[_0x1b1d('0x23')](handleEntityNotFound(_0x1852d7,null))[_0x1b1d('0x23')](function(_0x1758dc){if(_0x1758dc){_0x2bb077[_0x1b1d('0x47')][_0x1b1d('0x4b')]=_0x1758dc['id'];_0x2bb077[_0x1b1d('0x47')]['Subjects']=integrations[_0x1b1d('0x4c')](_0x2bb077[_0x1b1d('0x47')][_0x1b1d('0x4d')],_0x2bb077[_0x1b1d('0x47')][_0x1b1d('0x3a')]);_0x2bb077[_0x1b1d('0x47')][_0x1b1d('0x4e')]=integrations[_0x1b1d('0x4f')](_0x2bb077[_0x1b1d('0x47')][_0x1b1d('0x4d')],_0x2bb077[_0x1b1d('0x47')][_0x1b1d('0x3a')]);return db[_0x1b1d('0x50')][_0x1b1d('0x46')](_0x2bb077['body'],{'include':[{'model':db['SugarcrmField'],'as':_0x1b1d('0x51')},{'model':db[_0x1b1d('0x52')],'as':'Descriptions'}]});}return null;})[_0x1b1d('0x23')](respondWithResult(_0x1852d7,null))[_0x1b1d('0x41')](handleError(_0x1852d7,null));};exports[_0x1b1d('0x53')]=function(_0xdc95a5,_0x3f01b6,_0x3e4432){var _0x549ba0='';var _0xb8ea49=['id',_0x1b1d('0x27'),'assigned_user_id',_0x1b1d('0x54'),_0x1b1d('0x55'),_0x1b1d('0x56'),'duration_hours',_0x1b1d('0x57'),_0x1b1d('0x58'),'parent_type',_0x1b1d('0x59'),'direction'];return db[_0x1b1d('0x2b')][_0x1b1d('0x49')]({'where':{'id':_0xdc95a5[_0x1b1d('0x48')]['id']},'attributes':['id',_0x1b1d('0x5a'),_0x1b1d('0x5b'),_0x1b1d('0x5c')]})[_0x1b1d('0x23')](handleEntityNotFound(_0x3f01b6,null))['then'](function(_0x6183a1){if(_0x6183a1){_0x549ba0=_0x6183a1[_0x1b1d('0x5c')];var _0x1d68d8=_0x549ba0[_0x1b1d('0x5d')](-0x1);if(_0x1d68d8==='/'){_0x549ba0=_0x549ba0[_0x1b1d('0x5e')](0x0,_0x549ba0[_0x1b1d('0x5f')](_0x1d68d8));}return rp({'method':_0x1b1d('0x60'),'uri':util[_0x1b1d('0x61')]('%s%s',_0x549ba0,_0x1b1d('0x62')),'json':!![],'form':{'method':_0x1b1d('0x63'),'input_type':_0x1b1d('0x64'),'response_type':_0x1b1d('0x64'),'rest_data':JSON[_0x1b1d('0x65')]({'user_auth':{'user_name':_0x6183a1[_0x1b1d('0x5a')],'password':_0x6183a1['password'],'encryption':_0x1b1d('0x66')},'application':_0x1b1d('0x67')})}});}})[_0x1b1d('0x23')](function(_0x259ec2){if(_0x259ec2&&_0x259ec2[_0x1b1d('0x27')]!==_0x1b1d('0x68')&&_0x259ec2[_0x1b1d('0x27')]!==_0x1b1d('0x69')){return rp({'method':'POST','uri':util[_0x1b1d('0x61')](_0x1b1d('0x6a'),_0x549ba0,'/service/v4_1/rest.php'),'json':!![],'form':{'method':_0x1b1d('0x6b'),'input_type':_0x1b1d('0x64'),'response_type':_0x1b1d('0x64'),'rest_data':JSON[_0x1b1d('0x65')]({'session':_0x259ec2['id'],'module_name':_0x1b1d('0x6c')})}})[_0x1b1d('0x23')](function(_0x5dc41a){if(_0x5dc41a){var _0xcfb7e7=_[_0x1b1d('0x6d')](_0x5dc41a[_0x1b1d('0x6e')]);_[_0x1b1d('0x6f')](_0xcfb7e7,function(_0x5a17b7){return _0xb8ea49[_0x1b1d('0x70')](_0x5a17b7[_0x1b1d('0x27')]);});return{'count':_0xcfb7e7[_0x1b1d('0x33')],'rows':_['map'](_0xcfb7e7,function(_0x24ffba){return{'id':_0x24ffba[_0x1b1d('0x27')],'name':_0x24ffba[_0x1b1d('0x71')],'custom':_[_0x1b1d('0x72')](_0x24ffba[_0x1b1d('0x27')],'_c')?!![]:![],'options':_0x24ffba[_0x1b1d('0x3d')]?_[_0x1b1d('0x2a')](_[_0x1b1d('0x6d')](_0x24ffba[_0x1b1d('0x3d')]),function(_0x2d26b0){return{'name':_0x2d26b0[_0x1b1d('0x73')],'value':_0x2d26b0[_0x1b1d('0x27')]};}):[]};})};}})[_0x1b1d('0x23')](respondWithResult(_0x3f01b6,null))[_0x1b1d('0x41')](function(_0x2b45f7){var _0x62533d=_0xdc95a5[_0x1b1d('0x2e')]['test']?0x1f4:_0x2b45f7[_0x1b1d('0x74')]||0x1f4;logger[_0x1b1d('0x25')](_0x1b1d('0x75'),_0x1b1d('0x53'),_0x62533d,JSON[_0x1b1d('0x65')](_0x2b45f7));delete _0x2b45f7[_0x1b1d('0x27')];if(_0x62533d===0x191){_0x62533d=0x190;}_0x3f01b6['status'](_0x62533d)['send'](_0xdc95a5[_0x1b1d('0x2e')][_0x1b1d('0x76')]?{'message':_0x1b1d('0x77'),'statusCode':_0x2b45f7['statusCode']}:_0x2b45f7);});}else{var _0x3ce3d8=0x1f4;_0x3f01b6['status'](_0x3ce3d8)[_0x1b1d('0x28')]({'message':_0x1b1d('0x77'),'statusCode':0x190});}});};
\ No newline at end of file
+var _0x0a9f=['nolimit','addConfiguration','AccountId','getSubjects','channel','getDescriptions','SugarcrmField','Subjects','Descriptions','assigned_user_id','created_by','date_start','duration_hours','duration_minutes','parent_id','direction','username','password','remoteUri','slice','POST','format','%s%s','login','JSON','PLAIN','xCALLY\x20Motion\x20Integration','Invalid\x20Login','Password\x20Expired','/service/v4_1/rest.php','get_module_fields','stringify','Calls','values','module_fields','remove','includes','label','value','test','getFields,\x20%s,\x20%s,\x20%s','getFields','Wrong\x20credentials','statusCode','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','util','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','json','offset','limit','undefined','count','set','Content-Range','save','then','destroy','error','stack','name','send','index','map','SugarcrmAccount','rawAttributes','fieldName','type','key','model','keys','query','filters','intersection','fields','attributes','length','hasOwnProperty','order','sort','where','pick','filter','merge','VIRTUAL','include','findAll','catch','show','params','includeAll','options','find','create','body','update','getConfigurations','findOne','SugarcrmConfiguration'];(function(_0x3ab51d,_0x2fa01d){var _0x29a04e=function(_0x7807b0){while(--_0x7807b0){_0x3ab51d['push'](_0x3ab51d['shift']());}};_0x29a04e(++_0x2fa01d);}(_0x0a9f,0x19d));var _0xf0a9=function(_0x699072,_0x3aca68){_0x699072=_0x699072-0x0;var _0x44edc2=_0x0a9f[_0x699072];return _0x44edc2;};'use strict';var emlformat=require(_0xf0a9('0x0'));var rimraf=require(_0xf0a9('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xf0a9('0x2'));var rp=require(_0xf0a9('0x3'));var moment=require(_0xf0a9('0x4'));var BPromise=require(_0xf0a9('0x5'));var Mustache=require('mustache');var util=require(_0xf0a9('0x6'));var path=require('path');var sox=require('sox');var csv=require(_0xf0a9('0x7'));var ejs=require(_0xf0a9('0x8'));var fs=require('fs');var fs_extra=require(_0xf0a9('0x9'));var _=require(_0xf0a9('0xa'));var squel=require(_0xf0a9('0xb'));var crypto=require(_0xf0a9('0xc'));var jsforce=require(_0xf0a9('0xd'));var deskjs=require(_0xf0a9('0xe'));var toCsv=require(_0xf0a9('0x7'));var querystring=require('querystring');var Papa=require(_0xf0a9('0xf'));var Redis=require(_0xf0a9('0x10'));var authService=require(_0xf0a9('0x11'));var qs=require(_0xf0a9('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xf0a9('0x13'));var logger=require(_0xf0a9('0x14'))('api');var utils=require(_0xf0a9('0x15'));var config=require(_0xf0a9('0x16'));var licenseUtil=require(_0xf0a9('0x17'));var db=require(_0xf0a9('0x18'))['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x5b7c39,_0x151498){_0x151498=_0x151498||0xcc;return function(_0x49641a){if(_0x49641a){return _0x5b7c39[_0xf0a9('0x19')](_0x151498);}return _0x5b7c39['status'](_0x151498)[_0xf0a9('0x1a')]();};}function respondWithResult(_0x2a4017,_0x49ef8d){_0x49ef8d=_0x49ef8d||0xc8;return function(_0x3acd2f){if(_0x3acd2f){return _0x2a4017[_0xf0a9('0x1b')](_0x49ef8d)[_0xf0a9('0x1c')](_0x3acd2f);}};}function respondWithFilteredResult(_0xfc608,_0x349181){return function(_0x414c21){if(_0x414c21){var _0x4b1280=typeof _0x349181[_0xf0a9('0x1d')]==='undefined'&&typeof _0x349181[_0xf0a9('0x1e')]===_0xf0a9('0x1f');var _0x30d13d=_0x414c21[_0xf0a9('0x20')];var _0x4609e4=_0x4b1280?0x0:_0x349181['offset'];var _0x556fb9=_0x4b1280?_0x414c21[_0xf0a9('0x20')]:_0x349181[_0xf0a9('0x1d')]+_0x349181[_0xf0a9('0x1e')];var _0x5823ab;if(_0x556fb9>=_0x30d13d){_0x556fb9=_0x30d13d;_0x5823ab=0xc8;}else{_0x5823ab=0xce;}_0xfc608[_0xf0a9('0x1b')](_0x5823ab);return _0xfc608[_0xf0a9('0x21')](_0xf0a9('0x22'),_0x4609e4+'-'+_0x556fb9+'/'+_0x30d13d)[_0xf0a9('0x1c')](_0x414c21);}return null;};}function patchUpdates(_0x20e174){return function(_0x301786){try{jsonpatch['apply'](_0x301786,_0x20e174,!![]);}catch(_0x5241eb){return BPromise['reject'](_0x5241eb);}return _0x301786[_0xf0a9('0x23')]();};}function saveUpdates(_0x31a5b4,_0x118ece){return function(_0x59366e){if(_0x59366e){return _0x59366e['update'](_0x31a5b4)[_0xf0a9('0x24')](function(_0x4ea2dd){return _0x4ea2dd;});}return null;};}function removeEntity(_0x2d7d36,_0x2c01e6){return function(_0x2d0f67){if(_0x2d0f67){return _0x2d0f67[_0xf0a9('0x25')]()[_0xf0a9('0x24')](function(){_0x2d7d36[_0xf0a9('0x1b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x89e496,_0x2f0291){return function(_0x4ed09b){if(!_0x4ed09b){_0x89e496[_0xf0a9('0x19')](0x194);}return _0x4ed09b;};}function handleError(_0xc462b4,_0x4cbef1){_0x4cbef1=_0x4cbef1||0x1f4;return function(_0x38bf9d){logger[_0xf0a9('0x26')](_0x38bf9d[_0xf0a9('0x27')]);if(_0x38bf9d[_0xf0a9('0x28')]){delete _0x38bf9d['name'];}_0xc462b4['status'](_0x4cbef1)[_0xf0a9('0x29')](_0x38bf9d);};}exports[_0xf0a9('0x2a')]=function(_0x14e5bb,_0x13fd6e){var _0x5e1ffd={},_0x20900c={},_0x2eeb35={'count':0x0,'rows':[]};var _0x3f5a80=_[_0xf0a9('0x2b')](db[_0xf0a9('0x2c')][_0xf0a9('0x2d')],function(_0x126be3){return{'name':_0x126be3[_0xf0a9('0x2e')],'type':_0x126be3[_0xf0a9('0x2f')][_0xf0a9('0x30')]};});_0x20900c[_0xf0a9('0x31')]=_[_0xf0a9('0x2b')](_0x3f5a80,'name');_0x20900c['query']=_[_0xf0a9('0x32')](_0x14e5bb[_0xf0a9('0x33')]);_0x20900c[_0xf0a9('0x34')]=_[_0xf0a9('0x35')](_0x20900c[_0xf0a9('0x31')],_0x20900c['query']);_0x5e1ffd['attributes']=_['intersection'](_0x20900c[_0xf0a9('0x31')],qs[_0xf0a9('0x36')](_0x14e5bb[_0xf0a9('0x33')][_0xf0a9('0x36')]));_0x5e1ffd[_0xf0a9('0x37')]=_0x5e1ffd[_0xf0a9('0x37')][_0xf0a9('0x38')]?_0x5e1ffd['attributes']:_0x20900c[_0xf0a9('0x31')];if(!_0x14e5bb[_0xf0a9('0x33')][_0xf0a9('0x39')]('nolimit')){_0x5e1ffd['limit']=qs[_0xf0a9('0x1e')](_0x14e5bb[_0xf0a9('0x33')][_0xf0a9('0x1e')]);_0x5e1ffd[_0xf0a9('0x1d')]=qs['offset'](_0x14e5bb['query'][_0xf0a9('0x1d')]);}_0x5e1ffd[_0xf0a9('0x3a')]=qs[_0xf0a9('0x3b')](_0x14e5bb[_0xf0a9('0x33')][_0xf0a9('0x3b')]);_0x5e1ffd[_0xf0a9('0x3c')]=qs['filters'](_[_0xf0a9('0x3d')](_0x14e5bb[_0xf0a9('0x33')],_0x20900c[_0xf0a9('0x34')]),_0x3f5a80);if(_0x14e5bb[_0xf0a9('0x33')][_0xf0a9('0x3e')]){_0x5e1ffd[_0xf0a9('0x3c')]=_[_0xf0a9('0x3f')](_0x5e1ffd[_0xf0a9('0x3c')],{'$or':_['map'](_0x3f5a80,function(_0x3b5c55){if(_0x3b5c55[_0xf0a9('0x2f')]!==_0xf0a9('0x40')){var _0xde9808={};_0xde9808[_0x3b5c55['name']]={'$like':'%'+_0x14e5bb['query'][_0xf0a9('0x3e')]+'%'};return _0xde9808;}})});}_0x5e1ffd=_[_0xf0a9('0x3f')]({},_0x5e1ffd,_0x14e5bb['options']);var _0x1ecf90={'where':_0x5e1ffd[_0xf0a9('0x3c')]};return db['SugarcrmAccount']['count'](_0x1ecf90)[_0xf0a9('0x24')](function(_0x19662d){_0x2eeb35[_0xf0a9('0x20')]=_0x19662d;if(_0x14e5bb[_0xf0a9('0x33')]['includeAll']){_0x5e1ffd[_0xf0a9('0x41')]=[{'all':!![]}];}return db['SugarcrmAccount'][_0xf0a9('0x42')](_0x5e1ffd);})[_0xf0a9('0x24')](function(_0x170987){_0x2eeb35['rows']=_0x170987;return _0x2eeb35;})[_0xf0a9('0x24')](respondWithFilteredResult(_0x13fd6e,_0x5e1ffd))[_0xf0a9('0x43')](handleError(_0x13fd6e,null));};exports[_0xf0a9('0x44')]=function(_0x507dc8,_0x28ade4){var _0x141f28={'raw':![],'where':{'id':_0x507dc8[_0xf0a9('0x45')]['id']}},_0xf65373={};_0xf65373[_0xf0a9('0x31')]=_[_0xf0a9('0x32')](db[_0xf0a9('0x2c')]['rawAttributes']);_0xf65373[_0xf0a9('0x33')]=_[_0xf0a9('0x32')](_0x507dc8[_0xf0a9('0x33')]);_0xf65373[_0xf0a9('0x34')]=_[_0xf0a9('0x35')](_0xf65373['model'],_0xf65373[_0xf0a9('0x33')]);_0x141f28[_0xf0a9('0x37')]=_[_0xf0a9('0x35')](_0xf65373[_0xf0a9('0x31')],qs[_0xf0a9('0x36')](_0x507dc8[_0xf0a9('0x33')][_0xf0a9('0x36')]));_0x141f28[_0xf0a9('0x37')]=_0x141f28['attributes']['length']?_0x141f28['attributes']:_0xf65373[_0xf0a9('0x31')];if(_0x507dc8['query'][_0xf0a9('0x46')]){_0x141f28[_0xf0a9('0x41')]=[{'all':!![]}];}_0x141f28=_['merge']({},_0x141f28,_0x507dc8[_0xf0a9('0x47')]);return db[_0xf0a9('0x2c')][_0xf0a9('0x48')](_0x141f28)[_0xf0a9('0x24')](handleEntityNotFound(_0x28ade4,null))[_0xf0a9('0x24')](respondWithResult(_0x28ade4,null))['catch'](handleError(_0x28ade4,null));};exports[_0xf0a9('0x49')]=function(_0x29ab04,_0x51f02f){return db['SugarcrmAccount']['create'](_0x29ab04[_0xf0a9('0x4a')],{})['then'](respondWithResult(_0x51f02f,0xc9))[_0xf0a9('0x43')](handleError(_0x51f02f,null));};exports[_0xf0a9('0x4b')]=function(_0x474f85,_0xff67f9){if(_0x474f85[_0xf0a9('0x4a')]['id']){delete _0x474f85[_0xf0a9('0x4a')]['id'];}return db['SugarcrmAccount'][_0xf0a9('0x48')]({'where':{'id':_0x474f85[_0xf0a9('0x45')]['id']}})['then'](handleEntityNotFound(_0xff67f9,null))['then'](saveUpdates(_0x474f85[_0xf0a9('0x4a')],null))[_0xf0a9('0x24')](respondWithResult(_0xff67f9,null))[_0xf0a9('0x43')](handleError(_0xff67f9,null));};exports[_0xf0a9('0x25')]=function(_0x50fe2d,_0x22bffb){return db['SugarcrmAccount'][_0xf0a9('0x48')]({'where':{'id':_0x50fe2d[_0xf0a9('0x45')]['id']}})[_0xf0a9('0x24')](handleEntityNotFound(_0x22bffb,null))['then'](removeEntity(_0x22bffb,null))[_0xf0a9('0x43')](handleError(_0x22bffb,null));};exports[_0xf0a9('0x4c')]=function(_0x542ad8,_0x489db4,_0x26919e){var _0x136d19={};var _0x591239={};var _0x2b9910;var _0xd493c8;return db[_0xf0a9('0x2c')][_0xf0a9('0x4d')]({'where':{'id':_0x542ad8[_0xf0a9('0x45')]['id']}})['then'](handleEntityNotFound(_0x489db4,null))[_0xf0a9('0x24')](function(_0x2f5df7){if(_0x2f5df7){_0x2b9910=_0x2f5df7;_0x591239[_0xf0a9('0x31')]=_[_0xf0a9('0x32')](db[_0xf0a9('0x4e')][_0xf0a9('0x2d')]);_0x591239['query']=_[_0xf0a9('0x32')](_0x542ad8[_0xf0a9('0x33')]);_0x591239[_0xf0a9('0x34')]=_['intersection'](_0x591239[_0xf0a9('0x31')],_0x591239['query']);_0x136d19[_0xf0a9('0x37')]=_[_0xf0a9('0x35')](_0x591239[_0xf0a9('0x31')],qs[_0xf0a9('0x36')](_0x542ad8[_0xf0a9('0x33')][_0xf0a9('0x36')]));_0x136d19['attributes']=_0x136d19[_0xf0a9('0x37')][_0xf0a9('0x38')]?_0x136d19[_0xf0a9('0x37')]:_0x591239[_0xf0a9('0x31')];_0x136d19[_0xf0a9('0x3a')]=qs[_0xf0a9('0x3b')](_0x542ad8[_0xf0a9('0x33')][_0xf0a9('0x3b')]);_0x136d19['where']=qs[_0xf0a9('0x34')](_[_0xf0a9('0x3d')](_0x542ad8[_0xf0a9('0x33')],_0x591239[_0xf0a9('0x34')]));if(_0x542ad8[_0xf0a9('0x33')][_0xf0a9('0x3e')]){_0x136d19['where']=_[_0xf0a9('0x3f')](_0x136d19[_0xf0a9('0x3c')],{'$or':_['map'](_0x136d19[_0xf0a9('0x37')],function(_0x1979ce){var _0xc22f3={};_0xc22f3[_0x1979ce]={'$like':'%'+_0x542ad8[_0xf0a9('0x33')][_0xf0a9('0x3e')]+'%'};return _0xc22f3;})});}_0x136d19=_[_0xf0a9('0x3f')]({},_0x136d19,_0x542ad8[_0xf0a9('0x47')]);return _0x2b9910['getConfigurations'](_0x136d19);}})['then'](function(_0x578c77){if(_0x578c77){_0xd493c8=_0x578c77[_0xf0a9('0x38')];if(!_0x542ad8[_0xf0a9('0x33')][_0xf0a9('0x39')](_0xf0a9('0x4f'))){_0x136d19['limit']=qs[_0xf0a9('0x1e')](_0x542ad8[_0xf0a9('0x33')][_0xf0a9('0x1e')]);_0x136d19[_0xf0a9('0x1d')]=qs[_0xf0a9('0x1d')](_0x542ad8[_0xf0a9('0x33')][_0xf0a9('0x1d')]);}return _0x2b9910[_0xf0a9('0x4c')](_0x136d19);}})[_0xf0a9('0x24')](function(_0x344253){if(_0x344253){return _0x344253?{'count':_0xd493c8,'rows':_0x344253}:null;}})[_0xf0a9('0x24')](respondWithResult(_0x489db4,null))[_0xf0a9('0x43')](handleError(_0x489db4,null));};exports[_0xf0a9('0x50')]=function(_0x171566,_0x59d732,_0x16a196){if(_0x171566[_0xf0a9('0x4a')]['id']){delete _0x171566[_0xf0a9('0x4a')]['id'];}return db['SugarcrmAccount']['findOne']({'where':{'id':_0x171566[_0xf0a9('0x45')]['id']}})[_0xf0a9('0x24')](handleEntityNotFound(_0x59d732,null))[_0xf0a9('0x24')](function(_0x46989b){if(_0x46989b){_0x171566[_0xf0a9('0x4a')][_0xf0a9('0x51')]=_0x46989b['id'];_0x171566[_0xf0a9('0x4a')]['Subjects']=integrations[_0xf0a9('0x52')](_0x171566[_0xf0a9('0x4a')][_0xf0a9('0x53')],_0x171566['body'][_0xf0a9('0x2f')]);_0x171566['body']['Descriptions']=integrations[_0xf0a9('0x54')](_0x171566['body'][_0xf0a9('0x53')],_0x171566[_0xf0a9('0x4a')][_0xf0a9('0x2f')]);return db['SugarcrmConfiguration'][_0xf0a9('0x49')](_0x171566[_0xf0a9('0x4a')],{'include':[{'model':db[_0xf0a9('0x55')],'as':_0xf0a9('0x56')},{'model':db[_0xf0a9('0x55')],'as':_0xf0a9('0x57')}]});}return null;})[_0xf0a9('0x24')](respondWithResult(_0x59d732,null))['catch'](handleError(_0x59d732,null));};exports['getFields']=function(_0x2abe7c,_0x236c38,_0x5ba651){var _0x307680='';var _0x16a42f=['id',_0xf0a9('0x28'),_0xf0a9('0x58'),_0xf0a9('0x59'),'description',_0xf0a9('0x5a'),_0xf0a9('0x5b'),_0xf0a9('0x5c'),_0xf0a9('0x5d'),'parent_type','parent_name',_0xf0a9('0x5e')];return db[_0xf0a9('0x2c')][_0xf0a9('0x4d')]({'where':{'id':_0x2abe7c[_0xf0a9('0x45')]['id']},'attributes':['id',_0xf0a9('0x5f'),_0xf0a9('0x60'),_0xf0a9('0x61')]})[_0xf0a9('0x24')](handleEntityNotFound(_0x236c38,null))[_0xf0a9('0x24')](function(_0xb1b122){if(_0xb1b122){_0x307680=_0xb1b122['remoteUri'];var _0x46776e=_0x307680[_0xf0a9('0x62')](-0x1);if(_0x46776e==='/'){_0x307680=_0x307680['substring'](0x0,_0x307680['lastIndexOf'](_0x46776e));}return rp({'method':_0xf0a9('0x63'),'uri':util[_0xf0a9('0x64')](_0xf0a9('0x65'),_0x307680,'/service/v4_1/rest.php'),'json':!![],'form':{'method':_0xf0a9('0x66'),'input_type':_0xf0a9('0x67'),'response_type':_0xf0a9('0x67'),'rest_data':JSON['stringify']({'user_auth':{'user_name':_0xb1b122[_0xf0a9('0x5f')],'password':_0xb1b122[_0xf0a9('0x60')],'encryption':_0xf0a9('0x68')},'application':_0xf0a9('0x69')})}});}})[_0xf0a9('0x24')](function(_0x169e8c){if(_0x169e8c&&_0x169e8c['name']!==_0xf0a9('0x6a')&&_0x169e8c[_0xf0a9('0x28')]!==_0xf0a9('0x6b')){return rp({'method':_0xf0a9('0x63'),'uri':util['format'](_0xf0a9('0x65'),_0x307680,_0xf0a9('0x6c')),'json':!![],'form':{'method':_0xf0a9('0x6d'),'input_type':_0xf0a9('0x67'),'response_type':_0xf0a9('0x67'),'rest_data':JSON[_0xf0a9('0x6e')]({'session':_0x169e8c['id'],'module_name':_0xf0a9('0x6f')})}})[_0xf0a9('0x24')](function(_0x291cf5){if(_0x291cf5){var _0xfc36e9=_[_0xf0a9('0x70')](_0x291cf5[_0xf0a9('0x71')]);_[_0xf0a9('0x72')](_0xfc36e9,function(_0x1c28dc){return _0x16a42f[_0xf0a9('0x73')](_0x1c28dc[_0xf0a9('0x28')]);});return{'count':_0xfc36e9['length'],'rows':_[_0xf0a9('0x2b')](_0xfc36e9,function(_0x320f07){return{'id':_0x320f07['name'],'name':_0x320f07[_0xf0a9('0x74')],'custom':_['endsWith'](_0x320f07[_0xf0a9('0x28')],'_c')?!![]:![],'options':_0x320f07[_0xf0a9('0x47')]?_[_0xf0a9('0x2b')](_[_0xf0a9('0x70')](_0x320f07[_0xf0a9('0x47')]),function(_0x321ddb){return{'name':_0x321ddb[_0xf0a9('0x75')],'value':_0x321ddb['name']};}):[]};})};}})[_0xf0a9('0x24')](respondWithResult(_0x236c38,null))[_0xf0a9('0x43')](function(_0x255ee2){var _0x39ddb1=_0x2abe7c[_0xf0a9('0x33')][_0xf0a9('0x76')]?0x1f4:_0x255ee2['statusCode']||0x1f4;logger[_0xf0a9('0x26')](_0xf0a9('0x77'),_0xf0a9('0x78'),_0x39ddb1,JSON[_0xf0a9('0x6e')](_0x255ee2));delete _0x255ee2['name'];if(_0x39ddb1===0x191){_0x39ddb1=0x190;}_0x236c38[_0xf0a9('0x1b')](_0x39ddb1)['send'](_0x2abe7c[_0xf0a9('0x33')][_0xf0a9('0x76')]?{'message':_0xf0a9('0x79'),'statusCode':_0x255ee2[_0xf0a9('0x7a')]}:_0x255ee2);});}else{var _0x2934c2=0x1f4;_0x236c38[_0xf0a9('0x1b')](_0x2934c2)[_0xf0a9('0x29')]({'message':_0xf0a9('0x79'),'statusCode':0x190});}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc49e=['api','moment','request-promise','path','rimraf','../../config/environment','../../components/integrations/configuration','exports','define','SugarcrmAccount','int_sugarcrm_accounts','lodash','util','../../config/logger'];(function(_0x1b79f2,_0x41f1cb){var _0x553629=function(_0x39fc19){while(--_0x39fc19){_0x1b79f2['push'](_0x1b79f2['shift']());}};_0x553629(++_0x41f1cb);}(_0xc49e,0x1bd));var _0xec49=function(_0x45b034,_0x3a57dd){_0x45b034=_0x45b034-0x0;var _0x509cb0=_0xc49e[_0x45b034];return _0x509cb0;};'use strict';var _=require(_0xec49('0x0'));var util=require(_0xec49('0x1'));var logger=require(_0xec49('0x2'))(_0xec49('0x3'));var moment=require(_0xec49('0x4'));var BPromise=require('bluebird');var rp=require(_0xec49('0x5'));var fs=require('fs');var path=require(_0xec49('0x6'));var rimraf=require(_0xec49('0x7'));var config=require(_0xec49('0x8'));var attributes=require('./intSugarcrmAccount.attributes');var integrations=require(_0xec49('0x9'));module[_0xec49('0xa')]=function(_0x4b34ef,_0x1c036c){return _0x4b34ef[_0xec49('0xb')](_0xec49('0xc'),attributes,{'tableName':_0xec49('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x2deb=['util','../../config/logger','api','request-promise','path','rimraf','../../config/environment','exports','SugarcrmAccount','int_sugarcrm_accounts','lodash'];(function(_0x1e96c8,_0x497f36){var _0x887a22=function(_0x14db91){while(--_0x14db91){_0x1e96c8['push'](_0x1e96c8['shift']());}};_0x887a22(++_0x497f36);}(_0x2deb,0xdb));var _0xb2de=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x2deb[_0x321bb2];return _0x9c12ed;};'use strict';var _=require(_0xb2de('0x0'));var util=require(_0xb2de('0x1'));var logger=require(_0xb2de('0x2'))(_0xb2de('0x3'));var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0xb2de('0x4'));var fs=require('fs');var path=require(_0xb2de('0x5'));var rimraf=require(_0xb2de('0x6'));var config=require(_0xb2de('0x7'));var attributes=require('./intSugarcrmAccount.attributes');var integrations=require('../../components/integrations/configuration');module[_0xb2de('0x8')]=function(_0x2ed8ec,_0x191004){return _0x2ed8ec['define'](_0xb2de('0x9'),attributes,{'tableName':_0xb2de('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcc86=['error','code','message','result','catch','GetSugarcrmAccount','SugarcrmAccount','options','raw','where','attributes','limit','map','include','model','ShowSugarcrmAccount','find','lodash','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','request','then','info','SugarcrmAccount,\x20%s,\x20%s','request\x20sent','debug','SugarcrmAccount,\x20%s,\x20%s,\x20%s','stringify'];(function(_0x1c61f9,_0x191a83){var _0xd3bde6=function(_0x3bf3ee){while(--_0x3bf3ee){_0x1c61f9['push'](_0x1c61f9['shift']());}};_0xd3bde6(++_0x191a83);}(_0xcc86,0xdd));var _0x6cc8=function(_0x4cc575,_0x587f2b){_0x4cc575=_0x4cc575-0x0;var _0x2bf95a=_0xcc86[_0x4cc575];return _0x2bf95a;};'use strict';var _=require(_0x6cc8('0x0'));var util=require('util');var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0x6cc8('0x1'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x6cc8('0x2'))['db'];var utils=require(_0x6cc8('0x3'));var logger=require(_0x6cc8('0x4'))(_0x6cc8('0x5'));var config=require(_0x6cc8('0x6'));var jayson=require(_0x6cc8('0x7'));var client=jayson['client'][_0x6cc8('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x43fc99,_0x4ebd1f,_0x47fade){return new BPromise(function(_0x15f371,_0x371303){return client[_0x6cc8('0x9')](_0x43fc99,_0x47fade)[_0x6cc8('0xa')](function(_0x466d16){logger[_0x6cc8('0xb')](_0x6cc8('0xc'),_0x4ebd1f,_0x6cc8('0xd'));logger[_0x6cc8('0xe')](_0x6cc8('0xf'),_0x4ebd1f,'request\x20sent',JSON[_0x6cc8('0x10')](_0x466d16));if(_0x466d16[_0x6cc8('0x11')]){if(_0x466d16[_0x6cc8('0x11')][_0x6cc8('0x12')]===0x1f4){logger[_0x6cc8('0x11')](_0x6cc8('0xc'),_0x4ebd1f,_0x466d16[_0x6cc8('0x11')][_0x6cc8('0x13')]);return _0x371303(_0x466d16[_0x6cc8('0x11')][_0x6cc8('0x13')]);}logger['error'](_0x6cc8('0xc'),_0x4ebd1f,_0x466d16[_0x6cc8('0x11')][_0x6cc8('0x13')]);return _0x15f371(_0x466d16[_0x6cc8('0x11')][_0x6cc8('0x13')]);}else{logger[_0x6cc8('0xb')]('SugarcrmAccount,\x20%s,\x20%s',_0x4ebd1f,_0x6cc8('0xd'));_0x15f371(_0x466d16[_0x6cc8('0x14')]['message']);}})[_0x6cc8('0x15')](function(_0x5d119f){logger[_0x6cc8('0x11')](_0x6cc8('0xc'),_0x4ebd1f,_0x5d119f);_0x371303(_0x5d119f);});});}exports[_0x6cc8('0x16')]=function(_0x18e565){var _0x28d129=this;return new Promise(function(_0x312e57,_0x2b623e){return db[_0x6cc8('0x17')]['findAll']({'raw':_0x18e565[_0x6cc8('0x18')]?_0x18e565[_0x6cc8('0x18')][_0x6cc8('0x19')]===undefined?!![]:![]:!![],'where':_0x18e565['options']?_0x18e565[_0x6cc8('0x18')][_0x6cc8('0x1a')]||null:null,'attributes':_0x18e565[_0x6cc8('0x18')]?_0x18e565[_0x6cc8('0x18')][_0x6cc8('0x1b')]||null:null,'limit':_0x18e565['options']?_0x18e565[_0x6cc8('0x18')][_0x6cc8('0x1c')]||null:null,'include':_0x18e565[_0x6cc8('0x18')]?_0x18e565[_0x6cc8('0x18')]['include']?_[_0x6cc8('0x1d')](_0x18e565[_0x6cc8('0x18')]['include'],function(_0x378d41){return{'model':db[_0x378d41['model']],'as':_0x378d41['as'],'attributes':_0x378d41['attributes'],'include':_0x378d41[_0x6cc8('0x1e')]?_[_0x6cc8('0x1d')](_0x378d41[_0x6cc8('0x1e')],function(_0x559723){return{'model':db[_0x559723[_0x6cc8('0x1f')]],'as':_0x559723['as'],'attributes':_0x559723['attributes'],'include':_0x559723[_0x6cc8('0x1e')]?_[_0x6cc8('0x1d')](_0x559723[_0x6cc8('0x1e')],function(_0x2cfe03){return{'model':db[_0x2cfe03[_0x6cc8('0x1f')]],'as':_0x2cfe03['as'],'attributes':_0x2cfe03[_0x6cc8('0x1b')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x147aa8){logger[_0x6cc8('0xb')]('GetSugarcrmAccount',_0x18e565);logger[_0x6cc8('0xe')](_0x6cc8('0x16'),_0x18e565,JSON['stringify'](_0x147aa8));_0x312e57(_0x147aa8);})['catch'](function(_0x2bc556){logger[_0x6cc8('0x11')](_0x6cc8('0x16'),_0x2bc556['message'],_0x18e565);_0x2b623e(_0x28d129['error'](0x1f4,_0x2bc556[_0x6cc8('0x13')]));});});};exports[_0x6cc8('0x20')]=function(_0x2a48fd){var _0x149774=this;return new Promise(function(_0x2343e7,_0x511bd0){return db['SugarcrmAccount'][_0x6cc8('0x21')]({'raw':_0x2a48fd['options']?_0x2a48fd[_0x6cc8('0x18')][_0x6cc8('0x19')]===undefined?!![]:![]:!![],'where':_0x2a48fd[_0x6cc8('0x18')]?_0x2a48fd[_0x6cc8('0x18')][_0x6cc8('0x1a')]||null:null,'attributes':_0x2a48fd[_0x6cc8('0x18')]?_0x2a48fd[_0x6cc8('0x18')][_0x6cc8('0x1b')]||null:null,'include':_0x2a48fd[_0x6cc8('0x18')]?_0x2a48fd['options'][_0x6cc8('0x1e')]?_[_0x6cc8('0x1d')](_0x2a48fd['options'][_0x6cc8('0x1e')],function(_0x142a1c){return{'model':db[_0x142a1c[_0x6cc8('0x1f')]],'as':_0x142a1c['as'],'attributes':_0x142a1c[_0x6cc8('0x1b')],'include':_0x142a1c[_0x6cc8('0x1e')]?_[_0x6cc8('0x1d')](_0x142a1c['include'],function(_0x538558){return{'model':db[_0x538558[_0x6cc8('0x1f')]],'as':_0x538558['as'],'attributes':_0x538558['attributes'],'include':_0x538558[_0x6cc8('0x1e')]?_[_0x6cc8('0x1d')](_0x538558[_0x6cc8('0x1e')],function(_0xb7375a){return{'model':db[_0xb7375a['model']],'as':_0xb7375a['as'],'attributes':_0xb7375a['attributes']};}):[]};}):[]};}):[]:[]})[_0x6cc8('0xa')](function(_0x182053){logger['info'](_0x6cc8('0x20'),_0x2a48fd);logger[_0x6cc8('0xe')](_0x6cc8('0x20'),_0x2a48fd,JSON[_0x6cc8('0x10')](_0x182053));_0x2343e7(_0x182053);})['catch'](function(_0x2b83dc){logger['error'](_0x6cc8('0x20'),_0x2b83dc[_0x6cc8('0x13')],_0x2a48fd);_0x511bd0(_0x149774['error'](0x1f4,_0x2b83dc['message']));});});};
\ No newline at end of file
+var _0xfba5=['randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','request','info','SugarcrmAccount,\x20%s,\x20%s','request\x20sent','debug','SugarcrmAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','catch','GetSugarcrmAccount','SugarcrmAccount','findAll','options','raw','attributes','limit','include','map','model','then','find','where','ShowSugarcrmAccount','lodash','util','moment','bluebird'];(function(_0x5998f4,_0x692111){var _0x67aa52=function(_0x153ad3){while(--_0x153ad3){_0x5998f4['push'](_0x5998f4['shift']());}};_0x67aa52(++_0x692111);}(_0xfba5,0xff));var _0x5fba=function(_0x1a1768,_0x3f3c8a){_0x1a1768=_0x1a1768-0x0;var _0x49953d=_0xfba5[_0x1a1768];return _0x49953d;};'use strict';var _=require(_0x5fba('0x0'));var util=require(_0x5fba('0x1'));var moment=require(_0x5fba('0x2'));var BPromise=require(_0x5fba('0x3'));var rs=require(_0x5fba('0x4'));var fs=require('fs');var Redis=require(_0x5fba('0x5'));var db=require(_0x5fba('0x6'))['db'];var utils=require(_0x5fba('0x7'));var logger=require(_0x5fba('0x8'))('rpc');var config=require(_0x5fba('0x9'));var jayson=require(_0x5fba('0xa'));var client=jayson[_0x5fba('0xb')]['http']({'port':0x232a});function respondWithRpcPromise(_0x59054f,_0x46241f,_0x2e0117){return new BPromise(function(_0x455068,_0x5c5013){return client[_0x5fba('0xc')](_0x59054f,_0x2e0117)['then'](function(_0xf94548){logger[_0x5fba('0xd')](_0x5fba('0xe'),_0x46241f,_0x5fba('0xf'));logger[_0x5fba('0x10')](_0x5fba('0x11'),_0x46241f,_0x5fba('0xf'),JSON[_0x5fba('0x12')](_0xf94548));if(_0xf94548[_0x5fba('0x13')]){if(_0xf94548[_0x5fba('0x13')][_0x5fba('0x14')]===0x1f4){logger['error'](_0x5fba('0xe'),_0x46241f,_0xf94548[_0x5fba('0x13')]['message']);return _0x5c5013(_0xf94548[_0x5fba('0x13')][_0x5fba('0x15')]);}logger[_0x5fba('0x13')](_0x5fba('0xe'),_0x46241f,_0xf94548['error'][_0x5fba('0x15')]);return _0x455068(_0xf94548[_0x5fba('0x13')][_0x5fba('0x15')]);}else{logger[_0x5fba('0xd')](_0x5fba('0xe'),_0x46241f,_0x5fba('0xf'));_0x455068(_0xf94548['result'][_0x5fba('0x15')]);}})[_0x5fba('0x16')](function(_0x190327){logger[_0x5fba('0x13')](_0x5fba('0xe'),_0x46241f,_0x190327);_0x5c5013(_0x190327);});});}exports[_0x5fba('0x17')]=function(_0x529741){var _0x319037=this;return new Promise(function(_0x3d2628,_0x41d4df){return db[_0x5fba('0x18')][_0x5fba('0x19')]({'raw':_0x529741['options']?_0x529741[_0x5fba('0x1a')][_0x5fba('0x1b')]===undefined?!![]:![]:!![],'where':_0x529741[_0x5fba('0x1a')]?_0x529741[_0x5fba('0x1a')]['where']||null:null,'attributes':_0x529741[_0x5fba('0x1a')]?_0x529741[_0x5fba('0x1a')][_0x5fba('0x1c')]||null:null,'limit':_0x529741[_0x5fba('0x1a')]?_0x529741[_0x5fba('0x1a')][_0x5fba('0x1d')]||null:null,'include':_0x529741[_0x5fba('0x1a')]?_0x529741[_0x5fba('0x1a')][_0x5fba('0x1e')]?_[_0x5fba('0x1f')](_0x529741[_0x5fba('0x1a')]['include'],function(_0x26f4dc){return{'model':db[_0x26f4dc[_0x5fba('0x20')]],'as':_0x26f4dc['as'],'attributes':_0x26f4dc[_0x5fba('0x1c')],'include':_0x26f4dc[_0x5fba('0x1e')]?_['map'](_0x26f4dc['include'],function(_0x10c5ff){return{'model':db[_0x10c5ff[_0x5fba('0x20')]],'as':_0x10c5ff['as'],'attributes':_0x10c5ff[_0x5fba('0x1c')],'include':_0x10c5ff[_0x5fba('0x1e')]?_[_0x5fba('0x1f')](_0x10c5ff[_0x5fba('0x1e')],function(_0x54fcbf){return{'model':db[_0x54fcbf[_0x5fba('0x20')]],'as':_0x54fcbf['as'],'attributes':_0x54fcbf[_0x5fba('0x1c')]};}):[]};}):[]};}):[]:[]})[_0x5fba('0x21')](function(_0x100c93){logger[_0x5fba('0xd')]('GetSugarcrmAccount',_0x529741);logger[_0x5fba('0x10')](_0x5fba('0x17'),_0x529741,JSON['stringify'](_0x100c93));_0x3d2628(_0x100c93);})[_0x5fba('0x16')](function(_0x215621){logger[_0x5fba('0x13')](_0x5fba('0x17'),_0x215621['message'],_0x529741);_0x41d4df(_0x319037['error'](0x1f4,_0x215621[_0x5fba('0x15')]));});});};exports['ShowSugarcrmAccount']=function(_0x3e727c){var _0x30c271=this;return new Promise(function(_0x53f614,_0x2f7e24){return db[_0x5fba('0x18')][_0x5fba('0x22')]({'raw':_0x3e727c[_0x5fba('0x1a')]?_0x3e727c[_0x5fba('0x1a')]['raw']===undefined?!![]:![]:!![],'where':_0x3e727c[_0x5fba('0x1a')]?_0x3e727c['options'][_0x5fba('0x23')]||null:null,'attributes':_0x3e727c[_0x5fba('0x1a')]?_0x3e727c[_0x5fba('0x1a')][_0x5fba('0x1c')]||null:null,'include':_0x3e727c['options']?_0x3e727c['options']['include']?_[_0x5fba('0x1f')](_0x3e727c[_0x5fba('0x1a')][_0x5fba('0x1e')],function(_0x19b3ee){return{'model':db[_0x19b3ee[_0x5fba('0x20')]],'as':_0x19b3ee['as'],'attributes':_0x19b3ee[_0x5fba('0x1c')],'include':_0x19b3ee['include']?_[_0x5fba('0x1f')](_0x19b3ee[_0x5fba('0x1e')],function(_0x54a675){return{'model':db[_0x54a675[_0x5fba('0x20')]],'as':_0x54a675['as'],'attributes':_0x54a675[_0x5fba('0x1c')],'include':_0x54a675[_0x5fba('0x1e')]?_['map'](_0x54a675[_0x5fba('0x1e')],function(_0x484fc8){return{'model':db[_0x484fc8[_0x5fba('0x20')]],'as':_0x484fc8['as'],'attributes':_0x484fc8[_0x5fba('0x1c')]};}):[]};}):[]};}):[]:[]})[_0x5fba('0x21')](function(_0x1ae41b){logger['info'](_0x5fba('0x24'),_0x3e727c);logger[_0x5fba('0x10')](_0x5fba('0x24'),_0x3e727c,JSON[_0x5fba('0x12')](_0x1ae41b));_0x53f614(_0x1ae41b);})['catch'](function(_0x660a43){logger[_0x5fba('0x13')](_0x5fba('0x24'),_0x660a43['message'],_0x3e727c);_0x2f7e24(_0x30c271[_0x5fba('0x13')](0x1f4,_0x660a43[_0x5fba('0x15')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5851=['connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./intSugarcrmConfiguration.controller','get','isAuthenticated','index','show','/:id/fields','getFields','/:id/subjects','getSubjects','/:id/descriptions','post','create','put','/:id','delete','destroy','exports','util'];(function(_0x424a9a,_0x2dd9af){var _0xa7831c=function(_0x512534){while(--_0x512534){_0x424a9a['push'](_0x424a9a['shift']());}};_0xa7831c(++_0x2dd9af);}(_0x5851,0x1f3));var _0x1585=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0x5851[_0x14add3];return _0x4a174f;};'use strict';var multer=require('multer');var util=require(_0x1585('0x0'));var path=require('path');var timeout=require(_0x1585('0x1'));var express=require(_0x1585('0x2'));var router=express[_0x1585('0x3')]();var fs_extra=require(_0x1585('0x4'));var auth=require(_0x1585('0x5'));var interaction=require(_0x1585('0x6'));var config=require(_0x1585('0x7'));var controller=require(_0x1585('0x8'));router[_0x1585('0x9')]('/',auth[_0x1585('0xa')](),controller[_0x1585('0xb')]);router[_0x1585('0x9')]('/:id',auth[_0x1585('0xa')](),controller[_0x1585('0xc')]);router['get'](_0x1585('0xd'),auth[_0x1585('0xa')](),controller[_0x1585('0xe')]);router[_0x1585('0x9')](_0x1585('0xf'),auth[_0x1585('0xa')](),controller[_0x1585('0x10')]);router['get'](_0x1585('0x11'),auth[_0x1585('0xa')](),controller['getDescriptions']);router[_0x1585('0x12')]('/',auth[_0x1585('0xa')](),controller[_0x1585('0x13')]);router[_0x1585('0x14')](_0x1585('0x15'),auth[_0x1585('0xa')](),controller['update']);router[_0x1585('0x16')](_0x1585('0x15'),auth[_0x1585('0xa')](),controller[_0x1585('0x17')]);module[_0x1585('0x18')]=router;
\ No newline at end of file
+var _0x3677=['util','path','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./intSugarcrmConfiguration.controller','get','isAuthenticated','/:id','show','/:id/fields','getDescriptions','post','create','put','delete','exports','multer'];(function(_0x7bf769,_0x5e7c88){var _0x19e2fa=function(_0x55f0fb){while(--_0x55f0fb){_0x7bf769['push'](_0x7bf769['shift']());}};_0x19e2fa(++_0x5e7c88);}(_0x3677,0x164));var _0x7367=function(_0x1ff497,_0x4093de){_0x1ff497=_0x1ff497-0x0;var _0x46936e=_0x3677[_0x1ff497];return _0x46936e;};'use strict';var multer=require(_0x7367('0x0'));var util=require(_0x7367('0x1'));var path=require(_0x7367('0x2'));var timeout=require(_0x7367('0x3'));var express=require(_0x7367('0x4'));var router=express['Router']();var fs_extra=require(_0x7367('0x5'));var auth=require(_0x7367('0x6'));var interaction=require(_0x7367('0x7'));var config=require(_0x7367('0x8'));var controller=require(_0x7367('0x9'));router[_0x7367('0xa')]('/',auth[_0x7367('0xb')](),controller['index']);router[_0x7367('0xa')](_0x7367('0xc'),auth[_0x7367('0xb')](),controller[_0x7367('0xd')]);router['get'](_0x7367('0xe'),auth[_0x7367('0xb')](),controller['getFields']);router['get']('/:id/subjects',auth[_0x7367('0xb')](),controller['getSubjects']);router[_0x7367('0xa')]('/:id/descriptions',auth['isAuthenticated'](),controller[_0x7367('0xf')]);router[_0x7367('0x10')]('/',auth[_0x7367('0xb')](),controller[_0x7367('0x11')]);router[_0x7367('0x12')](_0x7367('0xc'),auth['isAuthenticated'](),controller['update']);router[_0x7367('0x13')](_0x7367('0xc'),auth[_0x7367('0xb')](),controller['destroy']);module[_0x7367('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xda5b=['STRING','exports'];(function(_0x1a77c0,_0x5f4047){var _0x25f643=function(_0x113230){while(--_0x113230){_0x1a77c0['push'](_0x1a77c0['shift']());}};_0x25f643(++_0x5f4047);}(_0xda5b,0x11b));var _0xbda5=function(_0x50809a,_0x13735f){_0x50809a=_0x50809a-0x0;var _0x2a3e33=_0xda5b[_0x50809a];return _0x2a3e33;};'use strict';var Sequelize=require('sequelize');module[_0xbda5('0x0')]={'name':{'type':Sequelize[_0xbda5('0x1')]},'description':{'type':Sequelize[_0xbda5('0x1')]}};
\ No newline at end of file
+var _0x5e8f=['exports','STRING','sequelize'];(function(_0x23bf72,_0x4ce8d9){var _0x236d2c=function(_0x2cbc7a){while(--_0x2cbc7a){_0x23bf72['push'](_0x23bf72['shift']());}};_0x236d2c(++_0x4ce8d9);}(_0x5e8f,0x1c4));var _0xf5e8=function(_0x40822a,_0x582b60){_0x40822a=_0x40822a-0x0;var _0x357420=_0x5e8f[_0x40822a];return _0x357420;};'use strict';var Sequelize=require(_0xf5e8('0x0'));module[_0xf5e8('0x1')]={'name':{'type':Sequelize[_0xf5e8('0x2')]},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1c8e=['../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','set','Content-Range','apply','reject','save','update','destroy','then','error','stack','name','send','index','map','SugarcrmConfiguration','fieldName','type','model','query','keys','filters','intersection','fields','attributes','limit','sort','where','pick','filter','VIRTUAL','merge','options','includeAll','include','findAll','rows','show','params','rawAttributes','find','catch','create','body','SugarcrmField','order','length','hasOwnProperty','nolimit','findOne','getSubjects','getDescriptions','fast-json-patch','request-promise','bluebird','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs'];(function(_0x5dae8c,_0x4f15e5){var _0x1ec8ee=function(_0x329994){while(--_0x329994){_0x5dae8c['push'](_0x5dae8c['shift']());}};_0x1ec8ee(++_0x4f15e5);}(_0x1c8e,0xe4));var _0xe1c8=function(_0x5791f3,_0x5d5453){_0x5791f3=_0x5791f3-0x0;var _0x1564a2=_0x1c8e[_0x5791f3];return _0x1564a2;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0xe1c8('0x0'));var rp=require(_0xe1c8('0x1'));var moment=require('moment');var BPromise=require(_0xe1c8('0x2'));var Mustache=require('mustache');var util=require(_0xe1c8('0x3'));var path=require(_0xe1c8('0x4'));var sox=require(_0xe1c8('0x5'));var csv=require(_0xe1c8('0x6'));var ejs=require(_0xe1c8('0x7'));var fs=require('fs');var fs_extra=require(_0xe1c8('0x8'));var _=require(_0xe1c8('0x9'));var squel=require(_0xe1c8('0xa'));var crypto=require(_0xe1c8('0xb'));var jsforce=require(_0xe1c8('0xc'));var deskjs=require(_0xe1c8('0xd'));var toCsv=require(_0xe1c8('0x6'));var querystring=require(_0xe1c8('0xe'));var Papa=require(_0xe1c8('0xf'));var Redis=require(_0xe1c8('0x10'));var authService=require('../../components/auth/service');var qs=require(_0xe1c8('0x11'));var as=require(_0xe1c8('0x12'));var hardwareService=require(_0xe1c8('0x13'));var logger=require(_0xe1c8('0x14'))('api');var utils=require('../../config/utils');var config=require(_0xe1c8('0x15'));var licenseUtil=require(_0xe1c8('0x16'));var db=require(_0xe1c8('0x17'))['db'];function respondWithStatusCode(_0x589575,_0xbac5ef){_0xbac5ef=_0xbac5ef||0xcc;return function(_0x2d2a6a){if(_0x2d2a6a){return _0x589575[_0xe1c8('0x18')](_0xbac5ef);}return _0x589575[_0xe1c8('0x19')](_0xbac5ef)[_0xe1c8('0x1a')]();};}function respondWithResult(_0x52b5ae,_0x1b464a){_0x1b464a=_0x1b464a||0xc8;return function(_0x4c6754){if(_0x4c6754){return _0x52b5ae['status'](_0x1b464a)[_0xe1c8('0x1b')](_0x4c6754);}};}function respondWithFilteredResult(_0x363287,_0x31531a){return function(_0x3376cc){if(_0x3376cc){var _0x175649=typeof _0x31531a[_0xe1c8('0x1c')]===_0xe1c8('0x1d')&&typeof _0x31531a['limit']===_0xe1c8('0x1d');var _0x34c413=_0x3376cc[_0xe1c8('0x1e')];var _0x717c22=_0x175649?0x0:_0x31531a[_0xe1c8('0x1c')];var _0x44210f=_0x175649?_0x3376cc[_0xe1c8('0x1e')]:_0x31531a[_0xe1c8('0x1c')]+_0x31531a['limit'];var _0x5c37c9;if(_0x44210f>=_0x34c413){_0x44210f=_0x34c413;_0x5c37c9=0xc8;}else{_0x5c37c9=0xce;}_0x363287[_0xe1c8('0x19')](_0x5c37c9);return _0x363287[_0xe1c8('0x1f')](_0xe1c8('0x20'),_0x717c22+'-'+_0x44210f+'/'+_0x34c413)[_0xe1c8('0x1b')](_0x3376cc);}return null;};}function patchUpdates(_0x150fc8){return function(_0x569a3a){try{jsonpatch[_0xe1c8('0x21')](_0x569a3a,_0x150fc8,!![]);}catch(_0x2bc8c0){return BPromise[_0xe1c8('0x22')](_0x2bc8c0);}return _0x569a3a[_0xe1c8('0x23')]();};}function saveUpdates(_0x249a6b,_0x55c816){return function(_0x2976e7){if(_0x2976e7){return _0x2976e7[_0xe1c8('0x24')](_0x249a6b)['then'](function(_0x2e10be){return _0x2e10be;});}return null;};}function removeEntity(_0x467594,_0x5a5a9d){return function(_0x11894c){if(_0x11894c){return _0x11894c[_0xe1c8('0x25')]()[_0xe1c8('0x26')](function(){_0x467594[_0xe1c8('0x19')](0xcc)[_0xe1c8('0x1a')]();});}};}function handleEntityNotFound(_0x41d094,_0x17ffaa){return function(_0x1cec5e){if(!_0x1cec5e){_0x41d094[_0xe1c8('0x18')](0x194);}return _0x1cec5e;};}function handleError(_0x3f2094,_0x1660e8){_0x1660e8=_0x1660e8||0x1f4;return function(_0x2c938d){logger[_0xe1c8('0x27')](_0x2c938d[_0xe1c8('0x28')]);if(_0x2c938d[_0xe1c8('0x29')]){delete _0x2c938d[_0xe1c8('0x29')];}_0x3f2094[_0xe1c8('0x19')](_0x1660e8)[_0xe1c8('0x2a')](_0x2c938d);};}exports[_0xe1c8('0x2b')]=function(_0xcd226a,_0x4be79e){var _0xec929d={},_0x32bc2e={},_0x3642fa={'count':0x0,'rows':[]};var _0xaebd1b=_[_0xe1c8('0x2c')](db[_0xe1c8('0x2d')]['rawAttributes'],function(_0x11224b){return{'name':_0x11224b[_0xe1c8('0x2e')],'type':_0x11224b[_0xe1c8('0x2f')]['key']};});_0x32bc2e[_0xe1c8('0x30')]=_['map'](_0xaebd1b,_0xe1c8('0x29'));_0x32bc2e[_0xe1c8('0x31')]=_[_0xe1c8('0x32')](_0xcd226a[_0xe1c8('0x31')]);_0x32bc2e[_0xe1c8('0x33')]=_['intersection'](_0x32bc2e['model'],_0x32bc2e[_0xe1c8('0x31')]);_0xec929d['attributes']=_[_0xe1c8('0x34')](_0x32bc2e[_0xe1c8('0x30')],qs[_0xe1c8('0x35')](_0xcd226a[_0xe1c8('0x31')][_0xe1c8('0x35')]));_0xec929d['attributes']=_0xec929d[_0xe1c8('0x36')]['length']?_0xec929d['attributes']:_0x32bc2e[_0xe1c8('0x30')];if(!_0xcd226a['query']['hasOwnProperty']('nolimit')){_0xec929d[_0xe1c8('0x37')]=qs[_0xe1c8('0x37')](_0xcd226a['query']['limit']);_0xec929d['offset']=qs[_0xe1c8('0x1c')](_0xcd226a[_0xe1c8('0x31')][_0xe1c8('0x1c')]);}_0xec929d['order']=qs[_0xe1c8('0x38')](_0xcd226a['query'][_0xe1c8('0x38')]);_0xec929d[_0xe1c8('0x39')]=qs[_0xe1c8('0x33')](_[_0xe1c8('0x3a')](_0xcd226a[_0xe1c8('0x31')],_0x32bc2e[_0xe1c8('0x33')]),_0xaebd1b);if(_0xcd226a[_0xe1c8('0x31')][_0xe1c8('0x3b')]){_0xec929d['where']=_['merge'](_0xec929d[_0xe1c8('0x39')],{'$or':_['map'](_0xaebd1b,function(_0x5a745e){if(_0x5a745e[_0xe1c8('0x2f')]!==_0xe1c8('0x3c')){var _0x24282a={};_0x24282a[_0x5a745e['name']]={'$like':'%'+_0xcd226a[_0xe1c8('0x31')][_0xe1c8('0x3b')]+'%'};return _0x24282a;}})});}_0xec929d=_[_0xe1c8('0x3d')]({},_0xec929d,_0xcd226a[_0xe1c8('0x3e')]);var _0x130bdb={'where':_0xec929d[_0xe1c8('0x39')]};return db[_0xe1c8('0x2d')][_0xe1c8('0x1e')](_0x130bdb)[_0xe1c8('0x26')](function(_0x5431b6){_0x3642fa[_0xe1c8('0x1e')]=_0x5431b6;if(_0xcd226a[_0xe1c8('0x31')][_0xe1c8('0x3f')]){_0xec929d[_0xe1c8('0x40')]=[{'all':!![]}];}return db[_0xe1c8('0x2d')][_0xe1c8('0x41')](_0xec929d);})['then'](function(_0x88d01){_0x3642fa[_0xe1c8('0x42')]=_0x88d01;return _0x3642fa;})['then'](respondWithFilteredResult(_0x4be79e,_0xec929d))['catch'](handleError(_0x4be79e,null));};exports[_0xe1c8('0x43')]=function(_0x309cf5,_0x2ea141){var _0x282745={'raw':![],'where':{'id':_0x309cf5[_0xe1c8('0x44')]['id']}},_0x52b2e8={};_0x52b2e8['model']=_[_0xe1c8('0x32')](db[_0xe1c8('0x2d')][_0xe1c8('0x45')]);_0x52b2e8['query']=_[_0xe1c8('0x32')](_0x309cf5[_0xe1c8('0x31')]);_0x52b2e8[_0xe1c8('0x33')]=_[_0xe1c8('0x34')](_0x52b2e8[_0xe1c8('0x30')],_0x52b2e8[_0xe1c8('0x31')]);_0x282745[_0xe1c8('0x36')]=_[_0xe1c8('0x34')](_0x52b2e8[_0xe1c8('0x30')],qs[_0xe1c8('0x35')](_0x309cf5['query'][_0xe1c8('0x35')]));_0x282745[_0xe1c8('0x36')]=_0x282745[_0xe1c8('0x36')]['length']?_0x282745[_0xe1c8('0x36')]:_0x52b2e8[_0xe1c8('0x30')];if(_0x309cf5[_0xe1c8('0x31')][_0xe1c8('0x3f')]){_0x282745[_0xe1c8('0x40')]=[{'all':!![]}];}_0x282745=_['merge']({},_0x282745,_0x309cf5[_0xe1c8('0x3e')]);return db[_0xe1c8('0x2d')][_0xe1c8('0x46')](_0x282745)[_0xe1c8('0x26')](handleEntityNotFound(_0x2ea141,null))[_0xe1c8('0x26')](respondWithResult(_0x2ea141,null))[_0xe1c8('0x47')](handleError(_0x2ea141,null));};exports[_0xe1c8('0x48')]=function(_0x59b293,_0x2406ed){return db[_0xe1c8('0x2d')][_0xe1c8('0x48')](_0x59b293['body'],{})[_0xe1c8('0x26')](respondWithResult(_0x2406ed,0xc9))[_0xe1c8('0x47')](handleError(_0x2406ed,null));};exports[_0xe1c8('0x24')]=function(_0x4c2db0,_0x43ddea){if(_0x4c2db0[_0xe1c8('0x49')]['id']){delete _0x4c2db0[_0xe1c8('0x49')]['id'];}return db[_0xe1c8('0x2d')][_0xe1c8('0x46')]({'where':{'id':_0x4c2db0['params']['id']}})[_0xe1c8('0x26')](handleEntityNotFound(_0x43ddea,null))[_0xe1c8('0x26')](saveUpdates(_0x4c2db0[_0xe1c8('0x49')],null))[_0xe1c8('0x26')](respondWithResult(_0x43ddea,null))[_0xe1c8('0x47')](handleError(_0x43ddea,null));};exports[_0xe1c8('0x25')]=function(_0x2ca839,_0x17ce72){return db[_0xe1c8('0x2d')][_0xe1c8('0x46')]({'where':{'id':_0x2ca839[_0xe1c8('0x44')]['id']}})[_0xe1c8('0x26')](handleEntityNotFound(_0x17ce72,null))['then'](removeEntity(_0x17ce72,null))['catch'](handleError(_0x17ce72,null));};exports['getFields']=function(_0x9b394b,_0x3f5e6b,_0x2a9706){var _0x398678={};var _0x2eb93f={};var _0x2cdbd3;var _0x18a773;return db[_0xe1c8('0x2d')]['findOne']({'where':{'id':_0x9b394b[_0xe1c8('0x44')]['id']}})['then'](handleEntityNotFound(_0x3f5e6b,null))[_0xe1c8('0x26')](function(_0x461604){if(_0x461604){_0x2cdbd3=_0x461604;_0x2eb93f[_0xe1c8('0x30')]=_[_0xe1c8('0x32')](db[_0xe1c8('0x4a')]['rawAttributes']);_0x2eb93f[_0xe1c8('0x31')]=_[_0xe1c8('0x32')](_0x9b394b[_0xe1c8('0x31')]);_0x2eb93f['filters']=_['intersection'](_0x2eb93f[_0xe1c8('0x30')],_0x2eb93f[_0xe1c8('0x31')]);_0x398678['attributes']=_[_0xe1c8('0x34')](_0x2eb93f[_0xe1c8('0x30')],qs['fields'](_0x9b394b[_0xe1c8('0x31')][_0xe1c8('0x35')]));_0x398678['attributes']=_0x398678['attributes']['length']?_0x398678['attributes']:_0x2eb93f['model'];_0x398678[_0xe1c8('0x4b')]=qs[_0xe1c8('0x38')](_0x9b394b['query']['sort']);_0x398678['where']=qs[_0xe1c8('0x33')](_[_0xe1c8('0x3a')](_0x9b394b[_0xe1c8('0x31')],_0x2eb93f['filters']));if(_0x9b394b[_0xe1c8('0x31')]['filter']){_0x398678['where']=_[_0xe1c8('0x3d')](_0x398678[_0xe1c8('0x39')],{'$or':_[_0xe1c8('0x2c')](_0x398678[_0xe1c8('0x36')],function(_0x5bd634){var _0x34f1fe={};_0x34f1fe[_0x5bd634]={'$like':'%'+_0x9b394b[_0xe1c8('0x31')]['filter']+'%'};return _0x34f1fe;})});}_0x398678=_[_0xe1c8('0x3d')]({},_0x398678,_0x9b394b[_0xe1c8('0x3e')]);return _0x2cdbd3['getFields'](_0x398678);}})[_0xe1c8('0x26')](function(_0x9698bb){if(_0x9698bb){_0x18a773=_0x9698bb[_0xe1c8('0x4c')];if(!_0x9b394b['query'][_0xe1c8('0x4d')](_0xe1c8('0x4e'))){_0x398678['limit']=qs[_0xe1c8('0x37')](_0x9b394b['query'][_0xe1c8('0x37')]);_0x398678['offset']=qs['offset'](_0x9b394b['query'][_0xe1c8('0x1c')]);}return _0x2cdbd3['getFields'](_0x398678);}})[_0xe1c8('0x26')](function(_0x2f0488){if(_0x2f0488){return _0x2f0488?{'count':_0x18a773,'rows':_0x2f0488}:null;}})[_0xe1c8('0x26')](respondWithResult(_0x3f5e6b,null))[_0xe1c8('0x47')](handleError(_0x3f5e6b,null));};exports['getSubjects']=function(_0x205263,_0x34c8c6,_0x58348f){var _0x171b35={};var _0x2de1ff={};var _0x2285dd;var _0x1532c8;return db[_0xe1c8('0x2d')][_0xe1c8('0x4f')]({'where':{'id':_0x205263[_0xe1c8('0x44')]['id']}})['then'](handleEntityNotFound(_0x34c8c6,null))[_0xe1c8('0x26')](function(_0x2f90b8){if(_0x2f90b8){_0x2285dd=_0x2f90b8;_0x2de1ff[_0xe1c8('0x30')]=_['keys'](db[_0xe1c8('0x4a')][_0xe1c8('0x45')]);_0x2de1ff[_0xe1c8('0x31')]=_[_0xe1c8('0x32')](_0x205263['query']);_0x2de1ff[_0xe1c8('0x33')]=_[_0xe1c8('0x34')](_0x2de1ff[_0xe1c8('0x30')],_0x2de1ff[_0xe1c8('0x31')]);_0x171b35['attributes']=_['intersection'](_0x2de1ff['model'],qs['fields'](_0x205263['query'][_0xe1c8('0x35')]));_0x171b35[_0xe1c8('0x36')]=_0x171b35['attributes'][_0xe1c8('0x4c')]?_0x171b35[_0xe1c8('0x36')]:_0x2de1ff['model'];_0x171b35[_0xe1c8('0x4b')]=qs[_0xe1c8('0x38')](_0x205263['query'][_0xe1c8('0x38')]);_0x171b35[_0xe1c8('0x39')]=qs[_0xe1c8('0x33')](_[_0xe1c8('0x3a')](_0x205263[_0xe1c8('0x31')],_0x2de1ff['filters']));if(_0x205263[_0xe1c8('0x31')][_0xe1c8('0x3b')]){_0x171b35['where']=_[_0xe1c8('0x3d')](_0x171b35[_0xe1c8('0x39')],{'$or':_[_0xe1c8('0x2c')](_0x171b35[_0xe1c8('0x36')],function(_0x12c91f){var _0x5a2672={};_0x5a2672[_0x12c91f]={'$like':'%'+_0x205263['query'][_0xe1c8('0x3b')]+'%'};return _0x5a2672;})});}_0x171b35=_[_0xe1c8('0x3d')]({},_0x171b35,_0x205263['options']);return _0x2285dd[_0xe1c8('0x50')](_0x171b35);}})[_0xe1c8('0x26')](function(_0x3aed96){if(_0x3aed96){_0x1532c8=_0x3aed96[_0xe1c8('0x4c')];if(!_0x205263['query'][_0xe1c8('0x4d')]('nolimit')){_0x171b35[_0xe1c8('0x37')]=qs[_0xe1c8('0x37')](_0x205263[_0xe1c8('0x31')][_0xe1c8('0x37')]);_0x171b35[_0xe1c8('0x1c')]=qs['offset'](_0x205263[_0xe1c8('0x31')][_0xe1c8('0x1c')]);}return _0x2285dd[_0xe1c8('0x50')](_0x171b35);}})[_0xe1c8('0x26')](function(_0x50cf2b){if(_0x50cf2b){return _0x50cf2b?{'count':_0x1532c8,'rows':_0x50cf2b}:null;}})[_0xe1c8('0x26')](respondWithResult(_0x34c8c6,null))[_0xe1c8('0x47')](handleError(_0x34c8c6,null));};exports[_0xe1c8('0x51')]=function(_0x2c46da,_0x3f8c6a,_0x143654){var _0x40f037={};var _0xbfd5cc={};var _0x397959;var _0x68a638;return db[_0xe1c8('0x2d')]['findOne']({'where':{'id':_0x2c46da[_0xe1c8('0x44')]['id']}})[_0xe1c8('0x26')](handleEntityNotFound(_0x3f8c6a,null))[_0xe1c8('0x26')](function(_0x56579c){if(_0x56579c){_0x397959=_0x56579c;_0xbfd5cc[_0xe1c8('0x30')]=_[_0xe1c8('0x32')](db[_0xe1c8('0x4a')][_0xe1c8('0x45')]);_0xbfd5cc['query']=_['keys'](_0x2c46da[_0xe1c8('0x31')]);_0xbfd5cc[_0xe1c8('0x33')]=_['intersection'](_0xbfd5cc[_0xe1c8('0x30')],_0xbfd5cc[_0xe1c8('0x31')]);_0x40f037[_0xe1c8('0x36')]=_[_0xe1c8('0x34')](_0xbfd5cc[_0xe1c8('0x30')],qs[_0xe1c8('0x35')](_0x2c46da[_0xe1c8('0x31')][_0xe1c8('0x35')]));_0x40f037[_0xe1c8('0x36')]=_0x40f037['attributes'][_0xe1c8('0x4c')]?_0x40f037[_0xe1c8('0x36')]:_0xbfd5cc['model'];_0x40f037[_0xe1c8('0x4b')]=qs[_0xe1c8('0x38')](_0x2c46da['query']['sort']);_0x40f037[_0xe1c8('0x39')]=qs[_0xe1c8('0x33')](_[_0xe1c8('0x3a')](_0x2c46da[_0xe1c8('0x31')],_0xbfd5cc[_0xe1c8('0x33')]));if(_0x2c46da[_0xe1c8('0x31')][_0xe1c8('0x3b')]){_0x40f037[_0xe1c8('0x39')]=_['merge'](_0x40f037[_0xe1c8('0x39')],{'$or':_[_0xe1c8('0x2c')](_0x40f037['attributes'],function(_0x86215d){var _0x4685d5={};_0x4685d5[_0x86215d]={'$like':'%'+_0x2c46da[_0xe1c8('0x31')][_0xe1c8('0x3b')]+'%'};return _0x4685d5;})});}_0x40f037=_['merge']({},_0x40f037,_0x2c46da[_0xe1c8('0x3e')]);return _0x397959[_0xe1c8('0x51')](_0x40f037);}})['then'](function(_0x20f7d9){if(_0x20f7d9){_0x68a638=_0x20f7d9[_0xe1c8('0x4c')];if(!_0x2c46da[_0xe1c8('0x31')]['hasOwnProperty']('nolimit')){_0x40f037[_0xe1c8('0x37')]=qs[_0xe1c8('0x37')](_0x2c46da[_0xe1c8('0x31')]['limit']);_0x40f037[_0xe1c8('0x1c')]=qs['offset'](_0x2c46da[_0xe1c8('0x31')][_0xe1c8('0x1c')]);}return _0x397959['getDescriptions'](_0x40f037);}})['then'](function(_0x15fd55){if(_0x15fd55){return _0x15fd55?{'count':_0x68a638,'rows':_0x15fd55}:null;}})[_0xe1c8('0x26')](respondWithResult(_0x3f8c6a,null))['catch'](handleError(_0x3f8c6a,null));};
\ No newline at end of file
+var _0xba75=['order','pick','filter','merge','where','VIRTUAL','includeAll','findAll','rows','show','options','find','catch','create','body','params','findOne','SugarcrmField','sort','getFields','getSubjects','getDescriptions','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','offset','undefined','limit','count','Content-Range','json','apply','reject','save','update','destroy','then','end','error','stack','name','index','map','SugarcrmConfiguration','rawAttributes','fieldName','key','query','keys','filters','intersection','attributes','model','fields','length','hasOwnProperty','nolimit'];(function(_0xf53dc1,_0x2965e6){var _0xf8a972=function(_0x2fc745){while(--_0x2fc745){_0xf53dc1['push'](_0xf53dc1['shift']());}};_0xf8a972(++_0x2965e6);}(_0xba75,0x68));var _0x5ba7=function(_0x5f23d9,_0x431d9a){_0x5f23d9=_0x5f23d9-0x0;var _0x68fb9e=_0xba75[_0x5f23d9];return _0x68fb9e;};'use strict';var emlformat=require(_0x5ba7('0x0'));var rimraf=require(_0x5ba7('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x5ba7('0x2'));var rp=require(_0x5ba7('0x3'));var moment=require(_0x5ba7('0x4'));var BPromise=require(_0x5ba7('0x5'));var Mustache=require(_0x5ba7('0x6'));var util=require(_0x5ba7('0x7'));var path=require('path');var sox=require(_0x5ba7('0x8'));var csv=require(_0x5ba7('0x9'));var ejs=require(_0x5ba7('0xa'));var fs=require('fs');var fs_extra=require(_0x5ba7('0xb'));var _=require(_0x5ba7('0xc'));var squel=require(_0x5ba7('0xd'));var crypto=require('crypto');var jsforce=require(_0x5ba7('0xe'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x5ba7('0xf'));var Papa=require(_0x5ba7('0x10'));var Redis=require('ioredis');var authService=require(_0x5ba7('0x11'));var qs=require(_0x5ba7('0x12'));var as=require(_0x5ba7('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x5ba7('0x14'))(_0x5ba7('0x15'));var utils=require(_0x5ba7('0x16'));var config=require(_0x5ba7('0x17'));var licenseUtil=require(_0x5ba7('0x18'));var db=require(_0x5ba7('0x19'))['db'];function respondWithStatusCode(_0x224003,_0x485520){_0x485520=_0x485520||0xcc;return function(_0x3c5751){if(_0x3c5751){return _0x224003[_0x5ba7('0x1a')](_0x485520);}return _0x224003[_0x5ba7('0x1b')](_0x485520)['end']();};}function respondWithResult(_0x476318,_0x131e02){_0x131e02=_0x131e02||0xc8;return function(_0x9a0a9){if(_0x9a0a9){return _0x476318[_0x5ba7('0x1b')](_0x131e02)['json'](_0x9a0a9);}};}function respondWithFilteredResult(_0x282968,_0x278d9b){return function(_0x2f30e1){if(_0x2f30e1){var _0x2d983c=typeof _0x278d9b[_0x5ba7('0x1c')]===_0x5ba7('0x1d')&&typeof _0x278d9b[_0x5ba7('0x1e')]==='undefined';var _0x2fe5e2=_0x2f30e1[_0x5ba7('0x1f')];var _0x5017c1=_0x2d983c?0x0:_0x278d9b[_0x5ba7('0x1c')];var _0x5cead2=_0x2d983c?_0x2f30e1[_0x5ba7('0x1f')]:_0x278d9b[_0x5ba7('0x1c')]+_0x278d9b[_0x5ba7('0x1e')];var _0x1eb50a;if(_0x5cead2>=_0x2fe5e2){_0x5cead2=_0x2fe5e2;_0x1eb50a=0xc8;}else{_0x1eb50a=0xce;}_0x282968[_0x5ba7('0x1b')](_0x1eb50a);return _0x282968['set'](_0x5ba7('0x20'),_0x5017c1+'-'+_0x5cead2+'/'+_0x2fe5e2)[_0x5ba7('0x21')](_0x2f30e1);}return null;};}function patchUpdates(_0x11bb18){return function(_0x9fb4a6){try{jsonpatch[_0x5ba7('0x22')](_0x9fb4a6,_0x11bb18,!![]);}catch(_0x96e536){return BPromise[_0x5ba7('0x23')](_0x96e536);}return _0x9fb4a6[_0x5ba7('0x24')]();};}function saveUpdates(_0x168385,_0x1d8e11){return function(_0x5b736f){if(_0x5b736f){return _0x5b736f[_0x5ba7('0x25')](_0x168385)['then'](function(_0x2dd48a){return _0x2dd48a;});}return null;};}function removeEntity(_0x57dac7,_0x35700b){return function(_0x1fcff0){if(_0x1fcff0){return _0x1fcff0[_0x5ba7('0x26')]()[_0x5ba7('0x27')](function(){_0x57dac7[_0x5ba7('0x1b')](0xcc)[_0x5ba7('0x28')]();});}};}function handleEntityNotFound(_0x43ff70,_0x541832){return function(_0x1e1f32){if(!_0x1e1f32){_0x43ff70[_0x5ba7('0x1a')](0x194);}return _0x1e1f32;};}function handleError(_0x39a35d,_0x587134){_0x587134=_0x587134||0x1f4;return function(_0x32d700){logger[_0x5ba7('0x29')](_0x32d700[_0x5ba7('0x2a')]);if(_0x32d700[_0x5ba7('0x2b')]){delete _0x32d700[_0x5ba7('0x2b')];}_0x39a35d[_0x5ba7('0x1b')](_0x587134)['send'](_0x32d700);};}exports[_0x5ba7('0x2c')]=function(_0x2f5f23,_0x560aa5){var _0x5aec11={},_0x594990={},_0x484fee={'count':0x0,'rows':[]};var _0x3b5d07=_[_0x5ba7('0x2d')](db[_0x5ba7('0x2e')][_0x5ba7('0x2f')],function(_0x166eb1){return{'name':_0x166eb1[_0x5ba7('0x30')],'type':_0x166eb1['type'][_0x5ba7('0x31')]};});_0x594990['model']=_[_0x5ba7('0x2d')](_0x3b5d07,_0x5ba7('0x2b'));_0x594990[_0x5ba7('0x32')]=_[_0x5ba7('0x33')](_0x2f5f23[_0x5ba7('0x32')]);_0x594990[_0x5ba7('0x34')]=_[_0x5ba7('0x35')](_0x594990['model'],_0x594990[_0x5ba7('0x32')]);_0x5aec11[_0x5ba7('0x36')]=_[_0x5ba7('0x35')](_0x594990[_0x5ba7('0x37')],qs[_0x5ba7('0x38')](_0x2f5f23[_0x5ba7('0x32')]['fields']));_0x5aec11['attributes']=_0x5aec11['attributes'][_0x5ba7('0x39')]?_0x5aec11['attributes']:_0x594990['model'];if(!_0x2f5f23[_0x5ba7('0x32')][_0x5ba7('0x3a')](_0x5ba7('0x3b'))){_0x5aec11[_0x5ba7('0x1e')]=qs[_0x5ba7('0x1e')](_0x2f5f23[_0x5ba7('0x32')]['limit']);_0x5aec11['offset']=qs[_0x5ba7('0x1c')](_0x2f5f23[_0x5ba7('0x32')][_0x5ba7('0x1c')]);}_0x5aec11[_0x5ba7('0x3c')]=qs['sort'](_0x2f5f23['query']['sort']);_0x5aec11['where']=qs['filters'](_[_0x5ba7('0x3d')](_0x2f5f23[_0x5ba7('0x32')],_0x594990['filters']),_0x3b5d07);if(_0x2f5f23[_0x5ba7('0x32')][_0x5ba7('0x3e')]){_0x5aec11['where']=_[_0x5ba7('0x3f')](_0x5aec11[_0x5ba7('0x40')],{'$or':_[_0x5ba7('0x2d')](_0x3b5d07,function(_0x36173e){if(_0x36173e['type']!==_0x5ba7('0x41')){var _0x1d8dd8={};_0x1d8dd8[_0x36173e[_0x5ba7('0x2b')]]={'$like':'%'+_0x2f5f23['query'][_0x5ba7('0x3e')]+'%'};return _0x1d8dd8;}})});}_0x5aec11=_['merge']({},_0x5aec11,_0x2f5f23['options']);var _0x233d68={'where':_0x5aec11[_0x5ba7('0x40')]};return db[_0x5ba7('0x2e')][_0x5ba7('0x1f')](_0x233d68)[_0x5ba7('0x27')](function(_0x416f36){_0x484fee[_0x5ba7('0x1f')]=_0x416f36;if(_0x2f5f23[_0x5ba7('0x32')][_0x5ba7('0x42')]){_0x5aec11['include']=[{'all':!![]}];}return db[_0x5ba7('0x2e')][_0x5ba7('0x43')](_0x5aec11);})['then'](function(_0xf9819a){_0x484fee[_0x5ba7('0x44')]=_0xf9819a;return _0x484fee;})[_0x5ba7('0x27')](respondWithFilteredResult(_0x560aa5,_0x5aec11))['catch'](handleError(_0x560aa5,null));};exports[_0x5ba7('0x45')]=function(_0x4cc7f3,_0x3a96e8){var _0xfa7981={'raw':![],'where':{'id':_0x4cc7f3['params']['id']}},_0x3f4b55={};_0x3f4b55[_0x5ba7('0x37')]=_['keys'](db['SugarcrmConfiguration']['rawAttributes']);_0x3f4b55[_0x5ba7('0x32')]=_[_0x5ba7('0x33')](_0x4cc7f3[_0x5ba7('0x32')]);_0x3f4b55[_0x5ba7('0x34')]=_[_0x5ba7('0x35')](_0x3f4b55[_0x5ba7('0x37')],_0x3f4b55[_0x5ba7('0x32')]);_0xfa7981[_0x5ba7('0x36')]=_[_0x5ba7('0x35')](_0x3f4b55[_0x5ba7('0x37')],qs[_0x5ba7('0x38')](_0x4cc7f3[_0x5ba7('0x32')][_0x5ba7('0x38')]));_0xfa7981['attributes']=_0xfa7981[_0x5ba7('0x36')]['length']?_0xfa7981[_0x5ba7('0x36')]:_0x3f4b55[_0x5ba7('0x37')];if(_0x4cc7f3['query'][_0x5ba7('0x42')]){_0xfa7981['include']=[{'all':!![]}];}_0xfa7981=_[_0x5ba7('0x3f')]({},_0xfa7981,_0x4cc7f3[_0x5ba7('0x46')]);return db[_0x5ba7('0x2e')][_0x5ba7('0x47')](_0xfa7981)[_0x5ba7('0x27')](handleEntityNotFound(_0x3a96e8,null))[_0x5ba7('0x27')](respondWithResult(_0x3a96e8,null))[_0x5ba7('0x48')](handleError(_0x3a96e8,null));};exports[_0x5ba7('0x49')]=function(_0x4f7b33,_0x1b0dae){return db[_0x5ba7('0x2e')][_0x5ba7('0x49')](_0x4f7b33[_0x5ba7('0x4a')],{})[_0x5ba7('0x27')](respondWithResult(_0x1b0dae,0xc9))['catch'](handleError(_0x1b0dae,null));};exports['update']=function(_0x335c38,_0x13a109){if(_0x335c38[_0x5ba7('0x4a')]['id']){delete _0x335c38[_0x5ba7('0x4a')]['id'];}return db[_0x5ba7('0x2e')][_0x5ba7('0x47')]({'where':{'id':_0x335c38[_0x5ba7('0x4b')]['id']}})[_0x5ba7('0x27')](handleEntityNotFound(_0x13a109,null))['then'](saveUpdates(_0x335c38[_0x5ba7('0x4a')],null))[_0x5ba7('0x27')](respondWithResult(_0x13a109,null))[_0x5ba7('0x48')](handleError(_0x13a109,null));};exports['destroy']=function(_0x111427,_0x425a17){return db[_0x5ba7('0x2e')]['find']({'where':{'id':_0x111427[_0x5ba7('0x4b')]['id']}})[_0x5ba7('0x27')](handleEntityNotFound(_0x425a17,null))[_0x5ba7('0x27')](removeEntity(_0x425a17,null))[_0x5ba7('0x48')](handleError(_0x425a17,null));};exports['getFields']=function(_0x30cccc,_0x3a1ce9,_0x1258a4){var _0x168354={};var _0x107d02={};var _0x207cdd;var _0x20cb81;return db[_0x5ba7('0x2e')][_0x5ba7('0x4c')]({'where':{'id':_0x30cccc['params']['id']}})[_0x5ba7('0x27')](handleEntityNotFound(_0x3a1ce9,null))[_0x5ba7('0x27')](function(_0x10536f){if(_0x10536f){_0x207cdd=_0x10536f;_0x107d02[_0x5ba7('0x37')]=_['keys'](db[_0x5ba7('0x4d')][_0x5ba7('0x2f')]);_0x107d02[_0x5ba7('0x32')]=_[_0x5ba7('0x33')](_0x30cccc[_0x5ba7('0x32')]);_0x107d02['filters']=_[_0x5ba7('0x35')](_0x107d02[_0x5ba7('0x37')],_0x107d02[_0x5ba7('0x32')]);_0x168354[_0x5ba7('0x36')]=_[_0x5ba7('0x35')](_0x107d02[_0x5ba7('0x37')],qs[_0x5ba7('0x38')](_0x30cccc[_0x5ba7('0x32')][_0x5ba7('0x38')]));_0x168354[_0x5ba7('0x36')]=_0x168354['attributes'][_0x5ba7('0x39')]?_0x168354[_0x5ba7('0x36')]:_0x107d02[_0x5ba7('0x37')];_0x168354[_0x5ba7('0x3c')]=qs[_0x5ba7('0x4e')](_0x30cccc[_0x5ba7('0x32')][_0x5ba7('0x4e')]);_0x168354[_0x5ba7('0x40')]=qs[_0x5ba7('0x34')](_[_0x5ba7('0x3d')](_0x30cccc[_0x5ba7('0x32')],_0x107d02[_0x5ba7('0x34')]));if(_0x30cccc[_0x5ba7('0x32')][_0x5ba7('0x3e')]){_0x168354['where']=_[_0x5ba7('0x3f')](_0x168354[_0x5ba7('0x40')],{'$or':_['map'](_0x168354[_0x5ba7('0x36')],function(_0x26158b){var _0xbabe0c={};_0xbabe0c[_0x26158b]={'$like':'%'+_0x30cccc[_0x5ba7('0x32')][_0x5ba7('0x3e')]+'%'};return _0xbabe0c;})});}_0x168354=_[_0x5ba7('0x3f')]({},_0x168354,_0x30cccc[_0x5ba7('0x46')]);return _0x207cdd[_0x5ba7('0x4f')](_0x168354);}})[_0x5ba7('0x27')](function(_0x17e70a){if(_0x17e70a){_0x20cb81=_0x17e70a[_0x5ba7('0x39')];if(!_0x30cccc[_0x5ba7('0x32')][_0x5ba7('0x3a')](_0x5ba7('0x3b'))){_0x168354[_0x5ba7('0x1e')]=qs[_0x5ba7('0x1e')](_0x30cccc[_0x5ba7('0x32')][_0x5ba7('0x1e')]);_0x168354[_0x5ba7('0x1c')]=qs['offset'](_0x30cccc[_0x5ba7('0x32')][_0x5ba7('0x1c')]);}return _0x207cdd[_0x5ba7('0x4f')](_0x168354);}})[_0x5ba7('0x27')](function(_0x25bfc6){if(_0x25bfc6){return _0x25bfc6?{'count':_0x20cb81,'rows':_0x25bfc6}:null;}})[_0x5ba7('0x27')](respondWithResult(_0x3a1ce9,null))['catch'](handleError(_0x3a1ce9,null));};exports['getSubjects']=function(_0x210bfc,_0x2d46fa,_0x1fc7d5){var _0xa6d0b2={};var _0x5c4234={};var _0x2c5f04;var _0x21a96f;return db[_0x5ba7('0x2e')][_0x5ba7('0x4c')]({'where':{'id':_0x210bfc['params']['id']}})[_0x5ba7('0x27')](handleEntityNotFound(_0x2d46fa,null))['then'](function(_0x2c119b){if(_0x2c119b){_0x2c5f04=_0x2c119b;_0x5c4234[_0x5ba7('0x37')]=_['keys'](db[_0x5ba7('0x4d')][_0x5ba7('0x2f')]);_0x5c4234['query']=_[_0x5ba7('0x33')](_0x210bfc[_0x5ba7('0x32')]);_0x5c4234[_0x5ba7('0x34')]=_[_0x5ba7('0x35')](_0x5c4234['model'],_0x5c4234[_0x5ba7('0x32')]);_0xa6d0b2['attributes']=_[_0x5ba7('0x35')](_0x5c4234['model'],qs['fields'](_0x210bfc[_0x5ba7('0x32')][_0x5ba7('0x38')]));_0xa6d0b2['attributes']=_0xa6d0b2[_0x5ba7('0x36')][_0x5ba7('0x39')]?_0xa6d0b2[_0x5ba7('0x36')]:_0x5c4234[_0x5ba7('0x37')];_0xa6d0b2['order']=qs[_0x5ba7('0x4e')](_0x210bfc[_0x5ba7('0x32')][_0x5ba7('0x4e')]);_0xa6d0b2[_0x5ba7('0x40')]=qs[_0x5ba7('0x34')](_[_0x5ba7('0x3d')](_0x210bfc[_0x5ba7('0x32')],_0x5c4234[_0x5ba7('0x34')]));if(_0x210bfc[_0x5ba7('0x32')]['filter']){_0xa6d0b2[_0x5ba7('0x40')]=_['merge'](_0xa6d0b2['where'],{'$or':_[_0x5ba7('0x2d')](_0xa6d0b2[_0x5ba7('0x36')],function(_0x1a8250){var _0x4470f9={};_0x4470f9[_0x1a8250]={'$like':'%'+_0x210bfc[_0x5ba7('0x32')][_0x5ba7('0x3e')]+'%'};return _0x4470f9;})});}_0xa6d0b2=_[_0x5ba7('0x3f')]({},_0xa6d0b2,_0x210bfc[_0x5ba7('0x46')]);return _0x2c5f04[_0x5ba7('0x50')](_0xa6d0b2);}})[_0x5ba7('0x27')](function(_0xbc184a){if(_0xbc184a){_0x21a96f=_0xbc184a[_0x5ba7('0x39')];if(!_0x210bfc[_0x5ba7('0x32')][_0x5ba7('0x3a')](_0x5ba7('0x3b'))){_0xa6d0b2[_0x5ba7('0x1e')]=qs[_0x5ba7('0x1e')](_0x210bfc[_0x5ba7('0x32')]['limit']);_0xa6d0b2[_0x5ba7('0x1c')]=qs['offset'](_0x210bfc[_0x5ba7('0x32')][_0x5ba7('0x1c')]);}return _0x2c5f04[_0x5ba7('0x50')](_0xa6d0b2);}})['then'](function(_0x4ad880){if(_0x4ad880){return _0x4ad880?{'count':_0x21a96f,'rows':_0x4ad880}:null;}})['then'](respondWithResult(_0x2d46fa,null))[_0x5ba7('0x48')](handleError(_0x2d46fa,null));};exports['getDescriptions']=function(_0x2d9aa3,_0x10ae10,_0x3df85f){var _0x4c16f1={};var _0x17fa82={};var _0x4cc906;var _0x3085aa;return db['SugarcrmConfiguration'][_0x5ba7('0x4c')]({'where':{'id':_0x2d9aa3['params']['id']}})['then'](handleEntityNotFound(_0x10ae10,null))[_0x5ba7('0x27')](function(_0x5b9e23){if(_0x5b9e23){_0x4cc906=_0x5b9e23;_0x17fa82[_0x5ba7('0x37')]=_[_0x5ba7('0x33')](db[_0x5ba7('0x4d')][_0x5ba7('0x2f')]);_0x17fa82[_0x5ba7('0x32')]=_[_0x5ba7('0x33')](_0x2d9aa3[_0x5ba7('0x32')]);_0x17fa82[_0x5ba7('0x34')]=_[_0x5ba7('0x35')](_0x17fa82[_0x5ba7('0x37')],_0x17fa82[_0x5ba7('0x32')]);_0x4c16f1[_0x5ba7('0x36')]=_[_0x5ba7('0x35')](_0x17fa82[_0x5ba7('0x37')],qs[_0x5ba7('0x38')](_0x2d9aa3[_0x5ba7('0x32')][_0x5ba7('0x38')]));_0x4c16f1['attributes']=_0x4c16f1[_0x5ba7('0x36')][_0x5ba7('0x39')]?_0x4c16f1['attributes']:_0x17fa82[_0x5ba7('0x37')];_0x4c16f1[_0x5ba7('0x3c')]=qs[_0x5ba7('0x4e')](_0x2d9aa3['query']['sort']);_0x4c16f1[_0x5ba7('0x40')]=qs[_0x5ba7('0x34')](_['pick'](_0x2d9aa3[_0x5ba7('0x32')],_0x17fa82[_0x5ba7('0x34')]));if(_0x2d9aa3[_0x5ba7('0x32')][_0x5ba7('0x3e')]){_0x4c16f1['where']=_[_0x5ba7('0x3f')](_0x4c16f1[_0x5ba7('0x40')],{'$or':_[_0x5ba7('0x2d')](_0x4c16f1['attributes'],function(_0x2578c4){var _0x16e3ad={};_0x16e3ad[_0x2578c4]={'$like':'%'+_0x2d9aa3[_0x5ba7('0x32')]['filter']+'%'};return _0x16e3ad;})});}_0x4c16f1=_['merge']({},_0x4c16f1,_0x2d9aa3[_0x5ba7('0x46')]);return _0x4cc906[_0x5ba7('0x51')](_0x4c16f1);}})[_0x5ba7('0x27')](function(_0x5ce7f0){if(_0x5ce7f0){_0x3085aa=_0x5ce7f0['length'];if(!_0x2d9aa3['query'][_0x5ba7('0x3a')]('nolimit')){_0x4c16f1[_0x5ba7('0x1e')]=qs[_0x5ba7('0x1e')](_0x2d9aa3['query'][_0x5ba7('0x1e')]);_0x4c16f1[_0x5ba7('0x1c')]=qs[_0x5ba7('0x1c')](_0x2d9aa3[_0x5ba7('0x32')]['offset']);}return _0x4cc906[_0x5ba7('0x51')](_0x4c16f1);}})[_0x5ba7('0x27')](function(_0x3b891b){if(_0x3b891b){return _0x3b891b?{'count':_0x3085aa,'rows':_0x3b891b}:null;}})[_0x5ba7('0x27')](respondWithResult(_0x10ae10,null))[_0x5ba7('0x48')](handleError(_0x10ae10,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb3da=['int_sugarcrm_configurations','lodash','util','api','moment','request-promise','path','../../config/environment'];(function(_0x32e807,_0x3279ea){var _0x24f94b=function(_0x54cb18){while(--_0x54cb18){_0x32e807['push'](_0x32e807['shift']());}};_0x24f94b(++_0x3279ea);}(_0xb3da,0x149));var _0xab3d=function(_0x58c673,_0x40e246){_0x58c673=_0x58c673-0x0;var _0x4f4721=_0xb3da[_0x58c673];return _0x4f4721;};'use strict';var _=require(_0xab3d('0x0'));var util=require(_0xab3d('0x1'));var logger=require('../../config/logger')(_0xab3d('0x2'));var moment=require(_0xab3d('0x3'));var BPromise=require('bluebird');var rp=require(_0xab3d('0x4'));var fs=require('fs');var path=require(_0xab3d('0x5'));var rimraf=require('rimraf');var config=require(_0xab3d('0x6'));var attributes=require('./intSugarcrmConfiguration.attributes');module['exports']=function(_0xf14345,_0x31b5a1){return _0xf14345['define']('SugarcrmConfiguration',attributes,{'tableName':_0xab3d('0x7'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x2787=['lodash','util','moment','bluebird','rimraf','../../config/environment','exports','define','int_sugarcrm_configurations'];(function(_0x3d42d8,_0x4cffaa){var _0x27fc41=function(_0x3a363b){while(--_0x3a363b){_0x3d42d8['push'](_0x3d42d8['shift']());}};_0x27fc41(++_0x4cffaa);}(_0x2787,0x195));var _0x7278=function(_0x432682,_0x253044){_0x432682=_0x432682-0x0;var _0x463d05=_0x2787[_0x432682];return _0x463d05;};'use strict';var _=require(_0x7278('0x0'));var util=require(_0x7278('0x1'));var logger=require('../../config/logger')('api');var moment=require(_0x7278('0x2'));var BPromise=require(_0x7278('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0x7278('0x4'));var config=require(_0x7278('0x5'));var attributes=require('./intSugarcrmConfiguration.attributes');module[_0x7278('0x6')]=function(_0x1b8227,_0x1c99ba){return _0x1b8227[_0x7278('0x7')]('SugarcrmConfiguration',attributes,{'tableName':_0x7278('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9d2c=['client','http','request','then','info','SugarcrmConfiguration,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','catch','lodash','util','bluebird','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0x9d2c,0x6a));var _0xc9d2=function(_0x3cbedf,_0x36fea2){_0x3cbedf=_0x3cbedf-0x0;var _0xdf9738=_0x9d2c[_0x3cbedf];return _0xdf9738;};'use strict';var _=require(_0xc9d2('0x0'));var util=require(_0xc9d2('0x1'));var moment=require('moment');var BPromise=require(_0xc9d2('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0xc9d2('0x3'))['db'];var utils=require(_0xc9d2('0x4'));var logger=require(_0xc9d2('0x5'))(_0xc9d2('0x6'));var config=require(_0xc9d2('0x7'));var jayson=require(_0xc9d2('0x8'));var client=jayson[_0xc9d2('0x9')][_0xc9d2('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x2032e0,_0x438498,_0x3a49d0){return new BPromise(function(_0x36cff5,_0x4e0c6d){return client[_0xc9d2('0xb')](_0x2032e0,_0x3a49d0)[_0xc9d2('0xc')](function(_0x4315d6){logger[_0xc9d2('0xd')](_0xc9d2('0xe'),_0x438498,_0xc9d2('0xf'));logger[_0xc9d2('0x10')]('SugarcrmConfiguration,\x20%s,\x20%s,\x20%s',_0x438498,'request\x20sent',JSON[_0xc9d2('0x11')](_0x4315d6));if(_0x4315d6['error']){if(_0x4315d6[_0xc9d2('0x12')][_0xc9d2('0x13')]===0x1f4){logger[_0xc9d2('0x12')]('SugarcrmConfiguration,\x20%s,\x20%s',_0x438498,_0x4315d6[_0xc9d2('0x12')]['message']);return _0x4e0c6d(_0x4315d6['error']['message']);}logger['error'](_0xc9d2('0xe'),_0x438498,_0x4315d6[_0xc9d2('0x12')][_0xc9d2('0x14')]);return _0x36cff5(_0x4315d6[_0xc9d2('0x12')]['message']);}else{logger[_0xc9d2('0xd')](_0xc9d2('0xe'),_0x438498,_0xc9d2('0xf'));_0x36cff5(_0x4315d6[_0xc9d2('0x15')][_0xc9d2('0x14')]);}})[_0xc9d2('0x16')](function(_0x3c9c64){logger['error']('SugarcrmConfiguration,\x20%s,\x20%s',_0x438498,_0x3c9c64);_0x4e0c6d(_0x3c9c64);});});}
\ No newline at end of file
+var _0x5e6a=['../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','then','info','SugarcrmConfiguration,\x20%s,\x20%s','request\x20sent','debug','SugarcrmConfiguration,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb'];(function(_0x3240a6,_0x4df98a){var _0x2190c4=function(_0x2bc803){while(--_0x2bc803){_0x3240a6['push'](_0x3240a6['shift']());}};_0x2190c4(++_0x4df98a);}(_0x5e6a,0xd2));var _0xa5e6=function(_0x3de0b3,_0x12fd64){_0x3de0b3=_0x3de0b3-0x0;var _0x4fdb4c=_0x5e6a[_0x3de0b3];return _0x4fdb4c;};'use strict';var _=require(_0xa5e6('0x0'));var util=require('util');var moment=require(_0xa5e6('0x1'));var BPromise=require(_0xa5e6('0x2'));var rs=require(_0xa5e6('0x3'));var fs=require('fs');var Redis=require(_0xa5e6('0x4'));var db=require(_0xa5e6('0x5'))['db'];var utils=require(_0xa5e6('0x6'));var logger=require(_0xa5e6('0x7'))(_0xa5e6('0x8'));var config=require(_0xa5e6('0x9'));var jayson=require(_0xa5e6('0xa'));var client=jayson[_0xa5e6('0xb')]['http']({'port':0x232a});function respondWithRpcPromise(_0x1c92f0,_0x6fa3a1,_0x5b1eb6){return new BPromise(function(_0x593093,_0x5e23b2){return client['request'](_0x1c92f0,_0x5b1eb6)[_0xa5e6('0xc')](function(_0x560147){logger[_0xa5e6('0xd')](_0xa5e6('0xe'),_0x6fa3a1,_0xa5e6('0xf'));logger[_0xa5e6('0x10')](_0xa5e6('0x11'),_0x6fa3a1,_0xa5e6('0xf'),JSON[_0xa5e6('0x12')](_0x560147));if(_0x560147['error']){if(_0x560147[_0xa5e6('0x13')][_0xa5e6('0x14')]===0x1f4){logger[_0xa5e6('0x13')](_0xa5e6('0xe'),_0x6fa3a1,_0x560147[_0xa5e6('0x13')][_0xa5e6('0x15')]);return _0x5e23b2(_0x560147[_0xa5e6('0x13')]['message']);}logger[_0xa5e6('0x13')](_0xa5e6('0xe'),_0x6fa3a1,_0x560147[_0xa5e6('0x13')][_0xa5e6('0x15')]);return _0x593093(_0x560147[_0xa5e6('0x13')][_0xa5e6('0x15')]);}else{logger[_0xa5e6('0xd')](_0xa5e6('0xe'),_0x6fa3a1,'request\x20sent');_0x593093(_0x560147[_0xa5e6('0x16')][_0xa5e6('0x15')]);}})[_0xa5e6('0x17')](function(_0x57e8c5){logger['error'](_0xa5e6('0xe'),_0x6fa3a1,_0x57e8c5);_0x5e23b2(_0x57e8c5);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfa99=['show','post','put','/:id','delete','destroy','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./intSugarcrmField.controller','get','isAuthenticated','index'];(function(_0x331f05,_0x3853e7){var _0x422658=function(_0x1d34e3){while(--_0x1d34e3){_0x331f05['push'](_0x331f05['shift']());}};_0x422658(++_0x3853e7);}(_0xfa99,0x8e));var _0x9fa9=function(_0x59ee6f,_0x450239){_0x59ee6f=_0x59ee6f-0x0;var _0x4c0979=_0xfa99[_0x59ee6f];return _0x4c0979;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x9fa9('0x0'));var timeout=require(_0x9fa9('0x1'));var express=require(_0x9fa9('0x2'));var router=express[_0x9fa9('0x3')]();var fs_extra=require(_0x9fa9('0x4'));var auth=require(_0x9fa9('0x5'));var interaction=require(_0x9fa9('0x6'));var config=require('../../config/environment');var controller=require(_0x9fa9('0x7'));router[_0x9fa9('0x8')]('/',auth[_0x9fa9('0x9')](),controller[_0x9fa9('0xa')]);router[_0x9fa9('0x8')]('/:id',auth[_0x9fa9('0x9')](),controller[_0x9fa9('0xb')]);router[_0x9fa9('0xc')]('/',auth[_0x9fa9('0x9')](),controller['create']);router[_0x9fa9('0xd')](_0x9fa9('0xe'),auth[_0x9fa9('0x9')](),controller['update']);router[_0x9fa9('0xf')](_0x9fa9('0xe'),auth[_0x9fa9('0x9')](),controller[_0x9fa9('0x10')]);module['exports']=router;
\ No newline at end of file
+var _0x35e0=['exports','multer','util','connect-timeout','Router','fs-extra','../../components/interaction/service','../../config/environment','./intSugarcrmField.controller','isAuthenticated','index','/:id','show','post','create','put','update'];(function(_0x272127,_0x3b0680){var _0x261432=function(_0x270c1d){while(--_0x270c1d){_0x272127['push'](_0x272127['shift']());}};_0x261432(++_0x3b0680);}(_0x35e0,0x1ee));var _0x035e=function(_0x310a9a,_0x42b147){_0x310a9a=_0x310a9a-0x0;var _0xb02d79=_0x35e0[_0x310a9a];return _0xb02d79;};'use strict';var multer=require(_0x035e('0x0'));var util=require(_0x035e('0x1'));var path=require('path');var timeout=require(_0x035e('0x2'));var express=require('express');var router=express[_0x035e('0x3')]();var fs_extra=require(_0x035e('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0x035e('0x5'));var config=require(_0x035e('0x6'));var controller=require(_0x035e('0x7'));router['get']('/',auth[_0x035e('0x8')](),controller[_0x035e('0x9')]);router['get'](_0x035e('0xa'),auth[_0x035e('0x8')](),controller[_0x035e('0xb')]);router[_0x035e('0xc')]('/',auth[_0x035e('0x8')](),controller[_0x035e('0xd')]);router[_0x035e('0xe')]('/:id',auth[_0x035e('0x8')](),controller[_0x035e('0xf')]);router['delete'](_0x035e('0xa'),auth[_0x035e('0x8')](),controller['destroy']);module[_0x035e('0x10')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xaac0=['customVariable','keyValue','picklist','string','STRING','variable','BOOLEAN','sequelize','exports','ENUM'];(function(_0x5ddb1c,_0x5ea4df){var _0x354adc=function(_0x2dfb1f){while(--_0x2dfb1f){_0x5ddb1c['push'](_0x5ddb1c['shift']());}};_0x354adc(++_0x5ea4df);}(_0xaac0,0x1dd));var _0x0aac=function(_0x5b1053,_0x14c6e3){_0x5b1053=_0x5b1053-0x0;var _0xec3b3c=_0xaac0[_0x5b1053];return _0xec3b3c;};'use strict';var Sequelize=require(_0x0aac('0x0'));module[_0x0aac('0x1')]={'type':{'type':Sequelize[_0x0aac('0x2')]('string','variable',_0x0aac('0x3'),_0x0aac('0x4'),_0x0aac('0x5')),'defaultValue':_0x0aac('0x6')},'content':{'type':Sequelize[_0x0aac('0x7')]},'key':{'type':Sequelize[_0x0aac('0x7')]},'keyType':{'type':Sequelize[_0x0aac('0x2')](_0x0aac('0x6'),_0x0aac('0x8'),_0x0aac('0x3'))},'keyContent':{'type':Sequelize[_0x0aac('0x7')]},'idField':{'type':Sequelize['STRING']},'nameField':{'type':Sequelize['STRING']},'customField':{'type':Sequelize[_0x0aac('0x9')],'defaultValue':!![]},'variableName':{'type':Sequelize[_0x0aac('0x7')]}};
\ No newline at end of file
+var _0x44d8=['variable','customVariable','keyValue','picklist','STRING','BOOLEAN','sequelize','exports','string'];(function(_0x4f8171,_0x5cf208){var _0xc94deb=function(_0x4aa3d0){while(--_0x4aa3d0){_0x4f8171['push'](_0x4f8171['shift']());}};_0xc94deb(++_0x5cf208);}(_0x44d8,0x19b));var _0x844d=function(_0x4eb2b3,_0x4db4b4){_0x4eb2b3=_0x4eb2b3-0x0;var _0x5eef19=_0x44d8[_0x4eb2b3];return _0x5eef19;};'use strict';var Sequelize=require(_0x844d('0x0'));module[_0x844d('0x1')]={'type':{'type':Sequelize['ENUM'](_0x844d('0x2'),_0x844d('0x3'),_0x844d('0x4'),_0x844d('0x5'),_0x844d('0x6')),'defaultValue':_0x844d('0x2')},'content':{'type':Sequelize[_0x844d('0x7')]},'key':{'type':Sequelize['STRING']},'keyType':{'type':Sequelize['ENUM'](_0x844d('0x2'),_0x844d('0x3'),_0x844d('0x4'))},'keyContent':{'type':Sequelize[_0x844d('0x7')]},'idField':{'type':Sequelize[_0x844d('0x7')]},'nameField':{'type':Sequelize['STRING']},'customField':{'type':Sequelize[_0x844d('0x8')],'defaultValue':!![]},'variableName':{'type':Sequelize[_0x844d('0x7')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6110=['update','then','destroy','error','stack','index','map','SugarcrmField','rawAttributes','fieldName','key','model','name','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','type','VIRTUAL','options','includeAll','include','findAll','rows','catch','find','create','body','params','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','fs-extra','lodash','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','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','apply','reject','save'];(function(_0x549ec9,_0x3552a7){var _0x48171b=function(_0x1e6318){while(--_0x1e6318){_0x549ec9['push'](_0x549ec9['shift']());}};_0x48171b(++_0x3552a7);}(_0x6110,0xc7));var _0x0611=function(_0x23fc32,_0x976f6d){_0x23fc32=_0x23fc32-0x0;var _0x13963e=_0x6110[_0x23fc32];return _0x13963e;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x0611('0x0'));var zipdir=require(_0x0611('0x1'));var jsonpatch=require(_0x0611('0x2'));var rp=require(_0x0611('0x3'));var moment=require(_0x0611('0x4'));var BPromise=require(_0x0611('0x5'));var Mustache=require(_0x0611('0x6'));var util=require(_0x0611('0x7'));var path=require(_0x0611('0x8'));var sox=require('sox');var csv=require(_0x0611('0x9'));var ejs=require(_0x0611('0xa'));var fs=require('fs');var fs_extra=require(_0x0611('0xb'));var _=require(_0x0611('0xc'));var squel=require('squel');var crypto=require(_0x0611('0xd'));var jsforce=require(_0x0611('0xe'));var deskjs=require(_0x0611('0xf'));var toCsv=require(_0x0611('0x9'));var querystring=require(_0x0611('0x10'));var Papa=require(_0x0611('0x11'));var Redis=require(_0x0611('0x12'));var authService=require(_0x0611('0x13'));var qs=require(_0x0611('0x14'));var as=require(_0x0611('0x15'));var hardwareService=require(_0x0611('0x16'));var logger=require(_0x0611('0x17'))(_0x0611('0x18'));var utils=require(_0x0611('0x19'));var config=require('../../config/environment');var licenseUtil=require(_0x0611('0x1a'));var db=require(_0x0611('0x1b'))['db'];function respondWithStatusCode(_0x26803b,_0x1f34a5){_0x1f34a5=_0x1f34a5||0xcc;return function(_0x4727f0){if(_0x4727f0){return _0x26803b[_0x0611('0x1c')](_0x1f34a5);}return _0x26803b[_0x0611('0x1d')](_0x1f34a5)[_0x0611('0x1e')]();};}function respondWithResult(_0x32dad0,_0x4d94b5){_0x4d94b5=_0x4d94b5||0xc8;return function(_0x2459cd){if(_0x2459cd){return _0x32dad0[_0x0611('0x1d')](_0x4d94b5)[_0x0611('0x1f')](_0x2459cd);}};}function respondWithFilteredResult(_0x32950f,_0xcebb0e){return function(_0xea5b92){if(_0xea5b92){var _0x3c68a3=typeof _0xcebb0e[_0x0611('0x20')]==='undefined'&&typeof _0xcebb0e['limit']===_0x0611('0x21');var _0x316da4=_0xea5b92[_0x0611('0x22')];var _0x3cde09=_0x3c68a3?0x0:_0xcebb0e[_0x0611('0x20')];var _0x1c1be5=_0x3c68a3?_0xea5b92[_0x0611('0x22')]:_0xcebb0e['offset']+_0xcebb0e[_0x0611('0x23')];var _0xfbaaf4;if(_0x1c1be5>=_0x316da4){_0x1c1be5=_0x316da4;_0xfbaaf4=0xc8;}else{_0xfbaaf4=0xce;}_0x32950f[_0x0611('0x1d')](_0xfbaaf4);return _0x32950f[_0x0611('0x24')](_0x0611('0x25'),_0x3cde09+'-'+_0x1c1be5+'/'+_0x316da4)[_0x0611('0x1f')](_0xea5b92);}return null;};}function patchUpdates(_0x494f84){return function(_0x5ddbe3){try{jsonpatch[_0x0611('0x26')](_0x5ddbe3,_0x494f84,!![]);}catch(_0x207a55){return BPromise[_0x0611('0x27')](_0x207a55);}return _0x5ddbe3[_0x0611('0x28')]();};}function saveUpdates(_0x5ed5af,_0x3630c7){return function(_0x159d91){if(_0x159d91){return _0x159d91[_0x0611('0x29')](_0x5ed5af)[_0x0611('0x2a')](function(_0x2909ef){return _0x2909ef;});}return null;};}function removeEntity(_0x41bd34,_0x646077){return function(_0x5f0e64){if(_0x5f0e64){return _0x5f0e64[_0x0611('0x2b')]()[_0x0611('0x2a')](function(){_0x41bd34[_0x0611('0x1d')](0xcc)['end']();});}};}function handleEntityNotFound(_0xd20034,_0x499dc3){return function(_0x54e24c){if(!_0x54e24c){_0xd20034[_0x0611('0x1c')](0x194);}return _0x54e24c;};}function handleError(_0x5cd365,_0x575fa7){_0x575fa7=_0x575fa7||0x1f4;return function(_0x32908a){logger[_0x0611('0x2c')](_0x32908a[_0x0611('0x2d')]);if(_0x32908a['name']){delete _0x32908a['name'];}_0x5cd365[_0x0611('0x1d')](_0x575fa7)['send'](_0x32908a);};}exports[_0x0611('0x2e')]=function(_0x2f8d20,_0x2f7501){var _0x15c831={},_0x27a574={},_0x298ce8={'count':0x0,'rows':[]};var _0x1173f8=_[_0x0611('0x2f')](db[_0x0611('0x30')][_0x0611('0x31')],function(_0x4380b5){return{'name':_0x4380b5[_0x0611('0x32')],'type':_0x4380b5['type'][_0x0611('0x33')]};});_0x27a574[_0x0611('0x34')]=_[_0x0611('0x2f')](_0x1173f8,_0x0611('0x35'));_0x27a574['query']=_[_0x0611('0x36')](_0x2f8d20[_0x0611('0x37')]);_0x27a574[_0x0611('0x38')]=_[_0x0611('0x39')](_0x27a574[_0x0611('0x34')],_0x27a574[_0x0611('0x37')]);_0x15c831[_0x0611('0x3a')]=_[_0x0611('0x39')](_0x27a574[_0x0611('0x34')],qs[_0x0611('0x3b')](_0x2f8d20[_0x0611('0x37')]['fields']));_0x15c831['attributes']=_0x15c831[_0x0611('0x3a')][_0x0611('0x3c')]?_0x15c831[_0x0611('0x3a')]:_0x27a574[_0x0611('0x34')];if(!_0x2f8d20[_0x0611('0x37')][_0x0611('0x3d')](_0x0611('0x3e'))){_0x15c831[_0x0611('0x23')]=qs[_0x0611('0x23')](_0x2f8d20['query'][_0x0611('0x23')]);_0x15c831[_0x0611('0x20')]=qs['offset'](_0x2f8d20[_0x0611('0x37')][_0x0611('0x20')]);}_0x15c831['order']=qs[_0x0611('0x3f')](_0x2f8d20['query'][_0x0611('0x3f')]);_0x15c831[_0x0611('0x40')]=qs[_0x0611('0x38')](_[_0x0611('0x41')](_0x2f8d20[_0x0611('0x37')],_0x27a574[_0x0611('0x38')]),_0x1173f8);if(_0x2f8d20[_0x0611('0x37')][_0x0611('0x42')]){_0x15c831['where']=_[_0x0611('0x43')](_0x15c831[_0x0611('0x40')],{'$or':_[_0x0611('0x2f')](_0x1173f8,function(_0x31396d){if(_0x31396d[_0x0611('0x44')]!==_0x0611('0x45')){var _0x1e0b2a={};_0x1e0b2a[_0x31396d[_0x0611('0x35')]]={'$like':'%'+_0x2f8d20['query'][_0x0611('0x42')]+'%'};return _0x1e0b2a;}})});}_0x15c831=_[_0x0611('0x43')]({},_0x15c831,_0x2f8d20[_0x0611('0x46')]);var _0x4e8574={'where':_0x15c831[_0x0611('0x40')]};return db['SugarcrmField']['count'](_0x4e8574)[_0x0611('0x2a')](function(_0x4cd2da){_0x298ce8[_0x0611('0x22')]=_0x4cd2da;if(_0x2f8d20['query'][_0x0611('0x47')]){_0x15c831[_0x0611('0x48')]=[{'all':!![]}];}return db[_0x0611('0x30')][_0x0611('0x49')](_0x15c831);})['then'](function(_0x4a3ceb){_0x298ce8[_0x0611('0x4a')]=_0x4a3ceb;return _0x298ce8;})[_0x0611('0x2a')](respondWithFilteredResult(_0x2f7501,_0x15c831))[_0x0611('0x4b')](handleError(_0x2f7501,null));};exports['show']=function(_0xe193a2,_0xc1337b){var _0x4e40aa={'raw':!![],'where':{'id':_0xe193a2['params']['id']}},_0x32b18f={};_0x32b18f[_0x0611('0x34')]=_['keys'](db['SugarcrmField'][_0x0611('0x31')]);_0x32b18f[_0x0611('0x37')]=_[_0x0611('0x36')](_0xe193a2['query']);_0x32b18f[_0x0611('0x38')]=_[_0x0611('0x39')](_0x32b18f['model'],_0x32b18f['query']);_0x4e40aa['attributes']=_['intersection'](_0x32b18f[_0x0611('0x34')],qs['fields'](_0xe193a2[_0x0611('0x37')][_0x0611('0x3b')]));_0x4e40aa[_0x0611('0x3a')]=_0x4e40aa[_0x0611('0x3a')][_0x0611('0x3c')]?_0x4e40aa[_0x0611('0x3a')]:_0x32b18f[_0x0611('0x34')];if(_0xe193a2['query']['includeAll']){_0x4e40aa[_0x0611('0x48')]=[{'all':!![]}];}_0x4e40aa=_['merge']({},_0x4e40aa,_0xe193a2['options']);return db['SugarcrmField'][_0x0611('0x4c')](_0x4e40aa)[_0x0611('0x2a')](handleEntityNotFound(_0xc1337b,null))[_0x0611('0x2a')](respondWithResult(_0xc1337b,null))['catch'](handleError(_0xc1337b,null));};exports['create']=function(_0x259249,_0xd126de){return db[_0x0611('0x30')][_0x0611('0x4d')](_0x259249['body'],{})[_0x0611('0x2a')](respondWithResult(_0xd126de,0xc9))[_0x0611('0x4b')](handleError(_0xd126de,null));};exports['update']=function(_0x2685d7,_0x3a9582){if(_0x2685d7[_0x0611('0x4e')]['id']){delete _0x2685d7['body']['id'];}return db[_0x0611('0x30')][_0x0611('0x4c')]({'where':{'id':_0x2685d7[_0x0611('0x4f')]['id']}})['then'](handleEntityNotFound(_0x3a9582,null))[_0x0611('0x2a')](saveUpdates(_0x2685d7[_0x0611('0x4e')],null))[_0x0611('0x2a')](respondWithResult(_0x3a9582,null))[_0x0611('0x4b')](handleError(_0x3a9582,null));};exports[_0x0611('0x2b')]=function(_0x212a66,_0x158e92){return db[_0x0611('0x30')][_0x0611('0x4c')]({'where':{'id':_0x212a66[_0x0611('0x4f')]['id']}})[_0x0611('0x2a')](handleEntityNotFound(_0x158e92,null))[_0x0611('0x2a')](removeEntity(_0x158e92,null))[_0x0611('0x4b')](handleError(_0x158e92,null));};
\ No newline at end of file
+var _0xac2e=['VIRTUAL','merge','options','includeAll','include','findAll','rows','catch','params','keys','rawAttributes','find','create','body','update','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','status','end','json','offset','limit','undefined','count','set','Content-Range','reject','save','then','destroy','error','stack','name','index','SugarcrmField','type','key','model','query','filters','intersection','fields','attributes','length','hasOwnProperty','order','sort','where','filter','map'];(function(_0x293bc6,_0xe7a546){var _0xb08261=function(_0x4e53db){while(--_0x4e53db){_0x293bc6['push'](_0x293bc6['shift']());}};_0xb08261(++_0xe7a546);}(_0xac2e,0x181));var _0xeac2=function(_0x11d7c6,_0x1403f9){_0x11d7c6=_0x11d7c6-0x0;var _0x497472=_0xac2e[_0x11d7c6];return _0x497472;};'use strict';var emlformat=require(_0xeac2('0x0'));var rimraf=require(_0xeac2('0x1'));var zipdir=require(_0xeac2('0x2'));var jsonpatch=require(_0xeac2('0x3'));var rp=require(_0xeac2('0x4'));var moment=require(_0xeac2('0x5'));var BPromise=require(_0xeac2('0x6'));var Mustache=require(_0xeac2('0x7'));var util=require('util');var path=require(_0xeac2('0x8'));var sox=require(_0xeac2('0x9'));var csv=require(_0xeac2('0xa'));var ejs=require(_0xeac2('0xb'));var fs=require('fs');var fs_extra=require(_0xeac2('0xc'));var _=require(_0xeac2('0xd'));var squel=require(_0xeac2('0xe'));var crypto=require(_0xeac2('0xf'));var jsforce=require('jsforce');var deskjs=require(_0xeac2('0x10'));var toCsv=require(_0xeac2('0xa'));var querystring=require(_0xeac2('0x11'));var Papa=require(_0xeac2('0x12'));var Redis=require(_0xeac2('0x13'));var authService=require(_0xeac2('0x14'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xeac2('0x15'));var logger=require(_0xeac2('0x16'))(_0xeac2('0x17'));var utils=require(_0xeac2('0x18'));var config=require(_0xeac2('0x19'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x508d0c,_0x4065a7){_0x4065a7=_0x4065a7||0xcc;return function(_0x2758bf){if(_0x2758bf){return _0x508d0c['sendStatus'](_0x4065a7);}return _0x508d0c[_0xeac2('0x1a')](_0x4065a7)[_0xeac2('0x1b')]();};}function respondWithResult(_0xc7980c,_0x389c50){_0x389c50=_0x389c50||0xc8;return function(_0xf84dd8){if(_0xf84dd8){return _0xc7980c[_0xeac2('0x1a')](_0x389c50)[_0xeac2('0x1c')](_0xf84dd8);}};}function respondWithFilteredResult(_0xfa10ab,_0xc720f5){return function(_0x202048){if(_0x202048){var _0x48ec3a=typeof _0xc720f5[_0xeac2('0x1d')]==='undefined'&&typeof _0xc720f5[_0xeac2('0x1e')]===_0xeac2('0x1f');var _0x4cdbbd=_0x202048[_0xeac2('0x20')];var _0x5c347a=_0x48ec3a?0x0:_0xc720f5[_0xeac2('0x1d')];var _0x53128f=_0x48ec3a?_0x202048['count']:_0xc720f5['offset']+_0xc720f5[_0xeac2('0x1e')];var _0x13a8ef;if(_0x53128f>=_0x4cdbbd){_0x53128f=_0x4cdbbd;_0x13a8ef=0xc8;}else{_0x13a8ef=0xce;}_0xfa10ab[_0xeac2('0x1a')](_0x13a8ef);return _0xfa10ab[_0xeac2('0x21')](_0xeac2('0x22'),_0x5c347a+'-'+_0x53128f+'/'+_0x4cdbbd)[_0xeac2('0x1c')](_0x202048);}return null;};}function patchUpdates(_0x35ecb9){return function(_0x1619b3){try{jsonpatch['apply'](_0x1619b3,_0x35ecb9,!![]);}catch(_0x55871e){return BPromise[_0xeac2('0x23')](_0x55871e);}return _0x1619b3[_0xeac2('0x24')]();};}function saveUpdates(_0x3a00ce,_0x369708){return function(_0x259652){if(_0x259652){return _0x259652['update'](_0x3a00ce)[_0xeac2('0x25')](function(_0x14bfab){return _0x14bfab;});}return null;};}function removeEntity(_0x571820,_0x47a79d){return function(_0x597a51){if(_0x597a51){return _0x597a51[_0xeac2('0x26')]()[_0xeac2('0x25')](function(){_0x571820[_0xeac2('0x1a')](0xcc)[_0xeac2('0x1b')]();});}};}function handleEntityNotFound(_0x3d1ec5,_0x277a8f){return function(_0x3c5987){if(!_0x3c5987){_0x3d1ec5['sendStatus'](0x194);}return _0x3c5987;};}function handleError(_0x420ffe,_0xd67a92){_0xd67a92=_0xd67a92||0x1f4;return function(_0x4a5c67){logger[_0xeac2('0x27')](_0x4a5c67[_0xeac2('0x28')]);if(_0x4a5c67[_0xeac2('0x29')]){delete _0x4a5c67['name'];}_0x420ffe[_0xeac2('0x1a')](_0xd67a92)['send'](_0x4a5c67);};}exports[_0xeac2('0x2a')]=function(_0x5a1f7a,_0x3ba719){var _0x5736c7={},_0x5b34db={},_0x560157={'count':0x0,'rows':[]};var _0x264d94=_['map'](db[_0xeac2('0x2b')]['rawAttributes'],function(_0x46e9db){return{'name':_0x46e9db['fieldName'],'type':_0x46e9db[_0xeac2('0x2c')][_0xeac2('0x2d')]};});_0x5b34db[_0xeac2('0x2e')]=_['map'](_0x264d94,_0xeac2('0x29'));_0x5b34db[_0xeac2('0x2f')]=_['keys'](_0x5a1f7a[_0xeac2('0x2f')]);_0x5b34db[_0xeac2('0x30')]=_[_0xeac2('0x31')](_0x5b34db['model'],_0x5b34db['query']);_0x5736c7['attributes']=_[_0xeac2('0x31')](_0x5b34db[_0xeac2('0x2e')],qs[_0xeac2('0x32')](_0x5a1f7a[_0xeac2('0x2f')]['fields']));_0x5736c7[_0xeac2('0x33')]=_0x5736c7['attributes'][_0xeac2('0x34')]?_0x5736c7[_0xeac2('0x33')]:_0x5b34db['model'];if(!_0x5a1f7a[_0xeac2('0x2f')][_0xeac2('0x35')]('nolimit')){_0x5736c7[_0xeac2('0x1e')]=qs[_0xeac2('0x1e')](_0x5a1f7a[_0xeac2('0x2f')]['limit']);_0x5736c7['offset']=qs[_0xeac2('0x1d')](_0x5a1f7a[_0xeac2('0x2f')]['offset']);}_0x5736c7[_0xeac2('0x36')]=qs[_0xeac2('0x37')](_0x5a1f7a[_0xeac2('0x2f')][_0xeac2('0x37')]);_0x5736c7[_0xeac2('0x38')]=qs[_0xeac2('0x30')](_['pick'](_0x5a1f7a[_0xeac2('0x2f')],_0x5b34db[_0xeac2('0x30')]),_0x264d94);if(_0x5a1f7a[_0xeac2('0x2f')][_0xeac2('0x39')]){_0x5736c7[_0xeac2('0x38')]=_['merge'](_0x5736c7[_0xeac2('0x38')],{'$or':_[_0xeac2('0x3a')](_0x264d94,function(_0x3781be){if(_0x3781be[_0xeac2('0x2c')]!==_0xeac2('0x3b')){var _0x13b243={};_0x13b243[_0x3781be[_0xeac2('0x29')]]={'$like':'%'+_0x5a1f7a[_0xeac2('0x2f')][_0xeac2('0x39')]+'%'};return _0x13b243;}})});}_0x5736c7=_[_0xeac2('0x3c')]({},_0x5736c7,_0x5a1f7a[_0xeac2('0x3d')]);var _0x2f2159={'where':_0x5736c7['where']};return db[_0xeac2('0x2b')][_0xeac2('0x20')](_0x2f2159)['then'](function(_0x222c70){_0x560157[_0xeac2('0x20')]=_0x222c70;if(_0x5a1f7a[_0xeac2('0x2f')][_0xeac2('0x3e')]){_0x5736c7[_0xeac2('0x3f')]=[{'all':!![]}];}return db['SugarcrmField'][_0xeac2('0x40')](_0x5736c7);})[_0xeac2('0x25')](function(_0x41300a){_0x560157[_0xeac2('0x41')]=_0x41300a;return _0x560157;})[_0xeac2('0x25')](respondWithFilteredResult(_0x3ba719,_0x5736c7))[_0xeac2('0x42')](handleError(_0x3ba719,null));};exports['show']=function(_0x31f626,_0x379eb5){var _0x5e6754={'raw':!![],'where':{'id':_0x31f626[_0xeac2('0x43')]['id']}},_0x155719={};_0x155719[_0xeac2('0x2e')]=_[_0xeac2('0x44')](db[_0xeac2('0x2b')][_0xeac2('0x45')]);_0x155719[_0xeac2('0x2f')]=_[_0xeac2('0x44')](_0x31f626[_0xeac2('0x2f')]);_0x155719[_0xeac2('0x30')]=_[_0xeac2('0x31')](_0x155719[_0xeac2('0x2e')],_0x155719[_0xeac2('0x2f')]);_0x5e6754[_0xeac2('0x33')]=_[_0xeac2('0x31')](_0x155719['model'],qs[_0xeac2('0x32')](_0x31f626[_0xeac2('0x2f')]['fields']));_0x5e6754[_0xeac2('0x33')]=_0x5e6754[_0xeac2('0x33')][_0xeac2('0x34')]?_0x5e6754[_0xeac2('0x33')]:_0x155719[_0xeac2('0x2e')];if(_0x31f626['query'][_0xeac2('0x3e')]){_0x5e6754['include']=[{'all':!![]}];}_0x5e6754=_[_0xeac2('0x3c')]({},_0x5e6754,_0x31f626['options']);return db[_0xeac2('0x2b')][_0xeac2('0x46')](_0x5e6754)[_0xeac2('0x25')](handleEntityNotFound(_0x379eb5,null))[_0xeac2('0x25')](respondWithResult(_0x379eb5,null))[_0xeac2('0x42')](handleError(_0x379eb5,null));};exports['create']=function(_0x114068,_0x24d3b5){return db['SugarcrmField'][_0xeac2('0x47')](_0x114068[_0xeac2('0x48')],{})[_0xeac2('0x25')](respondWithResult(_0x24d3b5,0xc9))['catch'](handleError(_0x24d3b5,null));};exports[_0xeac2('0x49')]=function(_0x34ea8d,_0x5f3007){if(_0x34ea8d[_0xeac2('0x48')]['id']){delete _0x34ea8d[_0xeac2('0x48')]['id'];}return db['SugarcrmField'][_0xeac2('0x46')]({'where':{'id':_0x34ea8d[_0xeac2('0x43')]['id']}})[_0xeac2('0x25')](handleEntityNotFound(_0x5f3007,null))[_0xeac2('0x25')](saveUpdates(_0x34ea8d[_0xeac2('0x48')],null))[_0xeac2('0x25')](respondWithResult(_0x5f3007,null))[_0xeac2('0x42')](handleError(_0x5f3007,null));};exports[_0xeac2('0x26')]=function(_0x15d803,_0x422e6c){return db[_0xeac2('0x2b')][_0xeac2('0x46')]({'where':{'id':_0x15d803[_0xeac2('0x43')]['id']}})[_0xeac2('0x25')](handleEntityNotFound(_0x422e6c,null))[_0xeac2('0x25')](removeEntity(_0x422e6c,null))[_0xeac2('0x42')](handleError(_0x422e6c,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa7cf=['request-promise','path','rimraf','../../config/environment','exports','define','SugarcrmField','lodash','api','bluebird'];(function(_0x3c0ee1,_0x3702ce){var _0x35d80f=function(_0x5cec83){while(--_0x5cec83){_0x3c0ee1['push'](_0x3c0ee1['shift']());}};_0x35d80f(++_0x3702ce);}(_0xa7cf,0x115));var _0xfa7c=function(_0x2a5b3b,_0x4ebe31){_0x2a5b3b=_0x2a5b3b-0x0;var _0xae665a=_0xa7cf[_0x2a5b3b];return _0xae665a;};'use strict';var _=require(_0xfa7c('0x0'));var util=require('util');var logger=require('../../config/logger')(_0xfa7c('0x1'));var moment=require('moment');var BPromise=require(_0xfa7c('0x2'));var rp=require(_0xfa7c('0x3'));var fs=require('fs');var path=require(_0xfa7c('0x4'));var rimraf=require(_0xfa7c('0x5'));var config=require(_0xfa7c('0x6'));var attributes=require('./intSugarcrmField.attributes');module[_0xfa7c('0x7')]=function(_0x5f0ed1,_0x591fe6){return _0x5f0ed1[_0xfa7c('0x8')](_0xfa7c('0x9'),attributes,{'tableName':'int_sugarcrm_fields','paranoid':![],'indexes':[{'name':'sugarcrm_unique_index','fields':['idField','FieldId'],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
+var _0xecf6=['SugarcrmField','int_sugarcrm_fields','sugarcrm_unique_index','FieldId','lodash','util','../../config/logger','bluebird','request-promise','../../config/environment','./intSugarcrmField.attributes','exports','define'];(function(_0x1b42d7,_0x3db6a8){var _0x9b08e7=function(_0x548ea4){while(--_0x548ea4){_0x1b42d7['push'](_0x1b42d7['shift']());}};_0x9b08e7(++_0x3db6a8);}(_0xecf6,0xba));var _0x6ecf=function(_0x502c7d,_0x2f1285){_0x502c7d=_0x502c7d-0x0;var _0x30b7ed=_0xecf6[_0x502c7d];return _0x30b7ed;};'use strict';var _=require(_0x6ecf('0x0'));var util=require(_0x6ecf('0x1'));var logger=require(_0x6ecf('0x2'))('api');var moment=require('moment');var BPromise=require(_0x6ecf('0x3'));var rp=require(_0x6ecf('0x4'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0x6ecf('0x5'));var attributes=require(_0x6ecf('0x6'));module[_0x6ecf('0x7')]=function(_0x70e19a,_0xa95832){return _0x70e19a[_0x6ecf('0x8')](_0x6ecf('0x9'),attributes,{'tableName':_0x6ecf('0xa'),'paranoid':![],'indexes':[{'name':_0x6ecf('0xb'),'fields':['idField',_0x6ecf('0xc')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x910a=['rpc','../../config/environment','client','http','info','SugarcrmField,\x20%s,\x20%s','request\x20sent','debug','SugarcrmField,\x20%s,\x20%s,\x20%s','stringify','error','message','result','lodash','util','moment','randomstring','../../mysqldb','../../config/utils','../../config/logger'];(function(_0x2d44b3,_0x4c7d62){var _0x1905d1=function(_0x4613f9){while(--_0x4613f9){_0x2d44b3['push'](_0x2d44b3['shift']());}};_0x1905d1(++_0x4c7d62);}(_0x910a,0x189));var _0xa910=function(_0x57af9d,_0x1fc33a){_0x57af9d=_0x57af9d-0x0;var _0xd3b140=_0x910a[_0x57af9d];return _0xd3b140;};'use strict';var _=require(_0xa910('0x0'));var util=require(_0xa910('0x1'));var moment=require(_0xa910('0x2'));var BPromise=require('bluebird');var rs=require(_0xa910('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xa910('0x4'))['db'];var utils=require(_0xa910('0x5'));var logger=require(_0xa910('0x6'))(_0xa910('0x7'));var config=require(_0xa910('0x8'));var jayson=require('jayson/promise');var client=jayson[_0xa910('0x9')][_0xa910('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x36667a,_0x1c9911,_0x18297d){return new BPromise(function(_0x1079b9,_0x3df581){return client['request'](_0x36667a,_0x18297d)['then'](function(_0x4abeb5){logger[_0xa910('0xb')](_0xa910('0xc'),_0x1c9911,_0xa910('0xd'));logger[_0xa910('0xe')](_0xa910('0xf'),_0x1c9911,_0xa910('0xd'),JSON[_0xa910('0x10')](_0x4abeb5));if(_0x4abeb5[_0xa910('0x11')]){if(_0x4abeb5[_0xa910('0x11')]['code']===0x1f4){logger['error']('SugarcrmField,\x20%s,\x20%s',_0x1c9911,_0x4abeb5[_0xa910('0x11')]['message']);return _0x3df581(_0x4abeb5[_0xa910('0x11')][_0xa910('0x12')]);}logger[_0xa910('0x11')](_0xa910('0xc'),_0x1c9911,_0x4abeb5[_0xa910('0x11')][_0xa910('0x12')]);return _0x1079b9(_0x4abeb5['error']['message']);}else{logger[_0xa910('0xb')](_0xa910('0xc'),_0x1c9911,'request\x20sent');_0x1079b9(_0x4abeb5[_0xa910('0x13')]['message']);}})['catch'](function(_0x357cf0){logger['error']('SugarcrmField,\x20%s,\x20%s',_0x1c9911,_0x357cf0);_0x3df581(_0x357cf0);});});}
\ No newline at end of file
+var _0x8aa5=['ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','SugarcrmField,\x20%s,\x20%s','request\x20sent','debug','SugarcrmField,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','catch','util','moment','bluebird','randomstring'];(function(_0x13fe74,_0x34a129){var _0x248f34=function(_0x5d3ddf){while(--_0x5d3ddf){_0x13fe74['push'](_0x13fe74['shift']());}};_0x248f34(++_0x34a129);}(_0x8aa5,0x141));var _0x58aa=function(_0x336398,_0x26ec75){_0x336398=_0x336398-0x0;var _0x47628a=_0x8aa5[_0x336398];return _0x47628a;};'use strict';var _=require('lodash');var util=require(_0x58aa('0x0'));var moment=require(_0x58aa('0x1'));var BPromise=require(_0x58aa('0x2'));var rs=require(_0x58aa('0x3'));var fs=require('fs');var Redis=require(_0x58aa('0x4'));var db=require(_0x58aa('0x5'))['db'];var utils=require(_0x58aa('0x6'));var logger=require(_0x58aa('0x7'))(_0x58aa('0x8'));var config=require(_0x58aa('0x9'));var jayson=require(_0x58aa('0xa'));var client=jayson[_0x58aa('0xb')][_0x58aa('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x91a324,_0x5cb3f0,_0x512ff7){return new BPromise(function(_0x170a05,_0x54396b){return client[_0x58aa('0xd')](_0x91a324,_0x512ff7)['then'](function(_0x4a67e6){logger['info'](_0x58aa('0xe'),_0x5cb3f0,_0x58aa('0xf'));logger[_0x58aa('0x10')](_0x58aa('0x11'),_0x5cb3f0,_0x58aa('0xf'),JSON[_0x58aa('0x12')](_0x4a67e6));if(_0x4a67e6[_0x58aa('0x13')]){if(_0x4a67e6['error'][_0x58aa('0x14')]===0x1f4){logger[_0x58aa('0x13')](_0x58aa('0xe'),_0x5cb3f0,_0x4a67e6[_0x58aa('0x13')][_0x58aa('0x15')]);return _0x54396b(_0x4a67e6[_0x58aa('0x13')][_0x58aa('0x15')]);}logger[_0x58aa('0x13')](_0x58aa('0xe'),_0x5cb3f0,_0x4a67e6[_0x58aa('0x13')][_0x58aa('0x15')]);return _0x170a05(_0x4a67e6['error'][_0x58aa('0x15')]);}else{logger[_0x58aa('0x16')]('SugarcrmField,\x20%s,\x20%s',_0x5cb3f0,_0x58aa('0xf'));_0x170a05(_0x4a67e6[_0x58aa('0x17')][_0x58aa('0x15')]);}})[_0x58aa('0x18')](function(_0x26ffd2){logger['error'](_0x58aa('0xe'),_0x5cb3f0,_0x26ffd2);_0x54396b(_0x26ffd2);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5ce1=['addConfiguration','put','delete','destroy','multer','util','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./intVtigerAccount.controller','get','isAuthenticated','index','/:id','show','/:id/fields','post','create','/:id/configurations'];(function(_0x36299e,_0xd26bb2){var _0x36f2eb=function(_0x333918){while(--_0x333918){_0x36299e['push'](_0x36299e['shift']());}};_0x36f2eb(++_0xd26bb2);}(_0x5ce1,0x1e7));var _0x15ce=function(_0xc894c4,_0x2a03fb){_0xc894c4=_0xc894c4-0x0;var _0x56e323=_0x5ce1[_0xc894c4];return _0x56e323;};'use strict';var multer=require(_0x15ce('0x0'));var util=require(_0x15ce('0x1'));var path=require(_0x15ce('0x2'));var timeout=require(_0x15ce('0x3'));var express=require(_0x15ce('0x4'));var router=express[_0x15ce('0x5')]();var fs_extra=require('fs-extra');var auth=require(_0x15ce('0x6'));var interaction=require(_0x15ce('0x7'));var config=require(_0x15ce('0x8'));var controller=require(_0x15ce('0x9'));router[_0x15ce('0xa')]('/',auth[_0x15ce('0xb')](),controller[_0x15ce('0xc')]);router[_0x15ce('0xa')](_0x15ce('0xd'),auth['isAuthenticated'](),controller[_0x15ce('0xe')]);router[_0x15ce('0xa')]('/:id/configurations',auth[_0x15ce('0xb')](),controller['getConfigurations']);router['get'](_0x15ce('0xf'),auth[_0x15ce('0xb')](),controller['getFields']);router[_0x15ce('0x10')]('/',auth[_0x15ce('0xb')](),controller[_0x15ce('0x11')]);router[_0x15ce('0x10')](_0x15ce('0x12'),auth['isAuthenticated'](),controller[_0x15ce('0x13')]);router[_0x15ce('0x14')](_0x15ce('0xd'),auth[_0x15ce('0xb')](),controller['update']);router[_0x15ce('0x15')](_0x15ce('0xd'),auth['isAuthenticated'](),controller[_0x15ce('0x16')]);module['exports']=router;
\ No newline at end of file
+var _0xe356=['multer','util','path','connect-timeout','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','/:id','show','/:id/configurations','getConfigurations','/:id/fields','post','addConfiguration','update','destroy'];(function(_0x1529a3,_0x529f63){var _0x1a0d4b=function(_0x6f1058){while(--_0x6f1058){_0x1529a3['push'](_0x1529a3['shift']());}};_0x1a0d4b(++_0x529f63);}(_0xe356,0x1ee));var _0x6e35=function(_0x16b87d,_0x485fae){_0x16b87d=_0x16b87d-0x0;var _0x4aa2a4=_0xe356[_0x16b87d];return _0x4aa2a4;};'use strict';var multer=require(_0x6e35('0x0'));var util=require(_0x6e35('0x1'));var path=require(_0x6e35('0x2'));var timeout=require(_0x6e35('0x3'));var express=require('express');var router=express[_0x6e35('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0x6e35('0x5'));var interaction=require(_0x6e35('0x6'));var config=require(_0x6e35('0x7'));var controller=require('./intVtigerAccount.controller');router[_0x6e35('0x8')]('/',auth[_0x6e35('0x9')](),controller['index']);router[_0x6e35('0x8')](_0x6e35('0xa'),auth[_0x6e35('0x9')](),controller[_0x6e35('0xb')]);router['get'](_0x6e35('0xc'),auth['isAuthenticated'](),controller[_0x6e35('0xd')]);router['get'](_0x6e35('0xe'),auth['isAuthenticated'](),controller['getFields']);router[_0x6e35('0xf')]('/',auth[_0x6e35('0x9')](),controller['create']);router['post'](_0x6e35('0xc'),auth[_0x6e35('0x9')](),controller[_0x6e35('0x10')]);router['put'](_0x6e35('0xa'),auth[_0x6e35('0x9')](),controller[_0x6e35('0x11')]);router['delete'](_0x6e35('0xa'),auth[_0x6e35('0x9')](),controller[_0x6e35('0x12')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x951a=['STRING','HelpDesk','sequelize'];(function(_0x25e7cb,_0x3579b7){var _0x375d92=function(_0xe8cf3b){while(--_0xe8cf3b){_0x25e7cb['push'](_0x25e7cb['shift']());}};_0x375d92(++_0x3579b7);}(_0x951a,0x15e));var _0xa951=function(_0x5c5a96,_0x406ec4){_0x5c5a96=_0x5c5a96-0x0;var _0x13f922=_0x951a[_0x5c5a96];return _0x13f922;};'use strict';var Sequelize=require(_0xa951('0x0'));module['exports']={'name':{'type':Sequelize['STRING'],'allowNull':![]},'description':{'type':Sequelize[_0xa951('0x1')]},'username':{'type':Sequelize[_0xa951('0x1')],'allowNull':![]},'moduleName':{'type':Sequelize[_0xa951('0x1')],'allowNull':![],'defaultValue':_0xa951('0x2')},'remoteUri':{'type':Sequelize[_0xa951('0x1')],'allowNull':![]},'serverUrl':{'type':Sequelize['STRING'],'allowNull':![]},'accessKey':{'type':Sequelize['STRING'],'allowNull':![]}};
\ No newline at end of file
+var _0xc8fa=['STRING','HelpDesk','sequelize','exports'];(function(_0xf4712,_0x1a01cb){var _0x4c6c1f=function(_0x30139a){while(--_0x30139a){_0xf4712['push'](_0xf4712['shift']());}};_0x4c6c1f(++_0x1a01cb);}(_0xc8fa,0x156));var _0xac8f=function(_0x139b85,_0x5e0691){_0x139b85=_0x139b85-0x0;var _0x1e833f=_0xc8fa[_0x139b85];return _0x1e833f;};'use strict';var Sequelize=require(_0xac8f('0x0'));module[_0xac8f('0x1')]={'name':{'type':Sequelize[_0xac8f('0x2')],'allowNull':![]},'description':{'type':Sequelize[_0xac8f('0x2')]},'username':{'type':Sequelize[_0xac8f('0x2')],'allowNull':![]},'moduleName':{'type':Sequelize[_0xac8f('0x2')],'allowNull':![],'defaultValue':_0xac8f('0x3')},'remoteUri':{'type':Sequelize[_0xac8f('0x2')],'allowNull':![]},'serverUrl':{'type':Sequelize[_0xac8f('0x2')],'allowNull':![]},'accessKey':{'type':Sequelize['STRING'],'allowNull':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2cdb=['where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','rawAttributes','find','create','body','params','getConfigurations','findOne','VtigerConfiguration','length','nolimit','addConfiguration','AccountId','Subjects','channel','Descriptions','getDescriptions','VtigerField','md5','getFields','description','moduleName','remoteUri','serverUrl','accessKey','slice','format','%s/webservice.php','GET','getchallenge','success','POST','login','result','token','describe','reference','owner','remove','includes','editable','false','label','startsWith','cf_','picklist','picklistValues','value','log','vTiger\x20error:\x20','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','stringify','eml-format','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','status','json','undefined','limit','count','offset','set','Content-Range','apply','reject','save','update','then','destroy','error','stack','name','send','index','map','VtigerAccount','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','order','sort'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x2cdb,0x13a));var _0xb2cd=function(_0x4a9fb1,_0x273043){_0x4a9fb1=_0x4a9fb1-0x0;var _0x348672=_0x2cdb[_0x4a9fb1];return _0x348672;};'use strict';var emlformat=require(_0xb2cd('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0xb2cd('0x1'));var rp=require(_0xb2cd('0x2'));var moment=require(_0xb2cd('0x3'));var BPromise=require(_0xb2cd('0x4'));var Mustache=require(_0xb2cd('0x5'));var util=require(_0xb2cd('0x6'));var path=require('path');var sox=require(_0xb2cd('0x7'));var csv=require(_0xb2cd('0x8'));var ejs=require(_0xb2cd('0x9'));var fs=require('fs');var fs_extra=require(_0xb2cd('0xa'));var _=require(_0xb2cd('0xb'));var squel=require(_0xb2cd('0xc'));var crypto=require('crypto');var jsforce=require(_0xb2cd('0xd'));var deskjs=require(_0xb2cd('0xe'));var toCsv=require('to-csv');var querystring=require(_0xb2cd('0xf'));var Papa=require(_0xb2cd('0x10'));var Redis=require(_0xb2cd('0x11'));var authService=require(_0xb2cd('0x12'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xb2cd('0x13'));var logger=require('../../config/logger')(_0xb2cd('0x14'));var utils=require(_0xb2cd('0x15'));var config=require(_0xb2cd('0x16'));var licenseUtil=require(_0xb2cd('0x17'));var db=require(_0xb2cd('0x18'))['db'];var integrations=require(_0xb2cd('0x19'));function respondWithStatusCode(_0x578adf,_0x19de46){_0x19de46=_0x19de46||0xcc;return function(_0x135185){if(_0x135185){return _0x578adf[_0xb2cd('0x1a')](_0x19de46);}return _0x578adf[_0xb2cd('0x1b')](_0x19de46)['end']();};}function respondWithResult(_0x595336,_0x2e5b82){_0x2e5b82=_0x2e5b82||0xc8;return function(_0x45c114){if(_0x45c114){return _0x595336[_0xb2cd('0x1b')](_0x2e5b82)[_0xb2cd('0x1c')](_0x45c114);}};}function respondWithFilteredResult(_0x5c0582,_0x56f4c3){return function(_0x344854){if(_0x344854){var _0x256e8d=typeof _0x56f4c3['offset']===_0xb2cd('0x1d')&&typeof _0x56f4c3[_0xb2cd('0x1e')]===_0xb2cd('0x1d');var _0x1fda94=_0x344854[_0xb2cd('0x1f')];var _0xa95c45=_0x256e8d?0x0:_0x56f4c3['offset'];var _0x593453=_0x256e8d?_0x344854[_0xb2cd('0x1f')]:_0x56f4c3[_0xb2cd('0x20')]+_0x56f4c3[_0xb2cd('0x1e')];var _0x1ea122;if(_0x593453>=_0x1fda94){_0x593453=_0x1fda94;_0x1ea122=0xc8;}else{_0x1ea122=0xce;}_0x5c0582[_0xb2cd('0x1b')](_0x1ea122);return _0x5c0582[_0xb2cd('0x21')](_0xb2cd('0x22'),_0xa95c45+'-'+_0x593453+'/'+_0x1fda94)[_0xb2cd('0x1c')](_0x344854);}return null;};}function patchUpdates(_0x442504){return function(_0x4a7615){try{jsonpatch[_0xb2cd('0x23')](_0x4a7615,_0x442504,!![]);}catch(_0x24c389){return BPromise[_0xb2cd('0x24')](_0x24c389);}return _0x4a7615[_0xb2cd('0x25')]();};}function saveUpdates(_0xfc3cfc,_0x39d853){return function(_0x59fc08){if(_0x59fc08){return _0x59fc08[_0xb2cd('0x26')](_0xfc3cfc)[_0xb2cd('0x27')](function(_0x5a0a4c){return _0x5a0a4c;});}return null;};}function removeEntity(_0x62736d,_0x3691dd){return function(_0x3a1f3e){if(_0x3a1f3e){return _0x3a1f3e[_0xb2cd('0x28')]()[_0xb2cd('0x27')](function(){_0x62736d[_0xb2cd('0x1b')](0xcc)['end']();});}};}function handleEntityNotFound(_0xd7e929,_0x3574af){return function(_0x38205a){if(!_0x38205a){_0xd7e929['sendStatus'](0x194);}return _0x38205a;};}function handleError(_0x1b1e52,_0xb63913){_0xb63913=_0xb63913||0x1f4;return function(_0x1d7229){logger[_0xb2cd('0x29')](_0x1d7229[_0xb2cd('0x2a')]);if(_0x1d7229[_0xb2cd('0x2b')]){delete _0x1d7229[_0xb2cd('0x2b')];}_0x1b1e52[_0xb2cd('0x1b')](_0xb63913)[_0xb2cd('0x2c')](_0x1d7229);};}exports[_0xb2cd('0x2d')]=function(_0x180493,_0xf067a1){var _0x48352a={},_0x5ec4d8={},_0x2b2604={'count':0x0,'rows':[]};var _0x3f0dd5=_[_0xb2cd('0x2e')](db[_0xb2cd('0x2f')]['rawAttributes'],function(_0x25998b){return{'name':_0x25998b[_0xb2cd('0x30')],'type':_0x25998b[_0xb2cd('0x31')][_0xb2cd('0x32')]};});_0x5ec4d8[_0xb2cd('0x33')]=_[_0xb2cd('0x2e')](_0x3f0dd5,'name');_0x5ec4d8[_0xb2cd('0x34')]=_[_0xb2cd('0x35')](_0x180493[_0xb2cd('0x34')]);_0x5ec4d8[_0xb2cd('0x36')]=_[_0xb2cd('0x37')](_0x5ec4d8[_0xb2cd('0x33')],_0x5ec4d8['query']);_0x48352a[_0xb2cd('0x38')]=_[_0xb2cd('0x37')](_0x5ec4d8[_0xb2cd('0x33')],qs['fields'](_0x180493['query'][_0xb2cd('0x39')]));_0x48352a[_0xb2cd('0x38')]=_0x48352a[_0xb2cd('0x38')]['length']?_0x48352a[_0xb2cd('0x38')]:_0x5ec4d8[_0xb2cd('0x33')];if(!_0x180493['query'][_0xb2cd('0x3a')]('nolimit')){_0x48352a['limit']=qs[_0xb2cd('0x1e')](_0x180493[_0xb2cd('0x34')]['limit']);_0x48352a[_0xb2cd('0x20')]=qs[_0xb2cd('0x20')](_0x180493[_0xb2cd('0x34')]['offset']);}_0x48352a[_0xb2cd('0x3b')]=qs[_0xb2cd('0x3c')](_0x180493[_0xb2cd('0x34')][_0xb2cd('0x3c')]);_0x48352a[_0xb2cd('0x3d')]=qs[_0xb2cd('0x36')](_[_0xb2cd('0x3e')](_0x180493[_0xb2cd('0x34')],_0x5ec4d8['filters']),_0x3f0dd5);if(_0x180493['query'][_0xb2cd('0x3f')]){_0x48352a[_0xb2cd('0x3d')]=_[_0xb2cd('0x40')](_0x48352a[_0xb2cd('0x3d')],{'$or':_[_0xb2cd('0x2e')](_0x3f0dd5,function(_0x1fda36){if(_0x1fda36[_0xb2cd('0x31')]!==_0xb2cd('0x41')){var _0x37a3ce={};_0x37a3ce[_0x1fda36['name']]={'$like':'%'+_0x180493[_0xb2cd('0x34')][_0xb2cd('0x3f')]+'%'};return _0x37a3ce;}})});}_0x48352a=_[_0xb2cd('0x40')]({},_0x48352a,_0x180493[_0xb2cd('0x42')]);var _0x19de87={'where':_0x48352a[_0xb2cd('0x3d')]};return db['VtigerAccount'][_0xb2cd('0x1f')](_0x19de87)[_0xb2cd('0x27')](function(_0x492fc0){_0x2b2604[_0xb2cd('0x1f')]=_0x492fc0;if(_0x180493[_0xb2cd('0x34')][_0xb2cd('0x43')]){_0x48352a[_0xb2cd('0x44')]=[{'all':!![]}];}return db[_0xb2cd('0x2f')][_0xb2cd('0x45')](_0x48352a);})['then'](function(_0x90b788){_0x2b2604[_0xb2cd('0x46')]=_0x90b788;return _0x2b2604;})[_0xb2cd('0x27')](respondWithFilteredResult(_0xf067a1,_0x48352a))[_0xb2cd('0x47')](handleError(_0xf067a1,null));};exports['show']=function(_0x223e58,_0x6155f){var _0x1008c2={'raw':![],'where':{'id':_0x223e58['params']['id']}},_0xfd711c={};_0xfd711c[_0xb2cd('0x33')]=_[_0xb2cd('0x35')](db[_0xb2cd('0x2f')][_0xb2cd('0x48')]);_0xfd711c[_0xb2cd('0x34')]=_[_0xb2cd('0x35')](_0x223e58[_0xb2cd('0x34')]);_0xfd711c[_0xb2cd('0x36')]=_[_0xb2cd('0x37')](_0xfd711c[_0xb2cd('0x33')],_0xfd711c[_0xb2cd('0x34')]);_0x1008c2[_0xb2cd('0x38')]=_[_0xb2cd('0x37')](_0xfd711c[_0xb2cd('0x33')],qs[_0xb2cd('0x39')](_0x223e58[_0xb2cd('0x34')][_0xb2cd('0x39')]));_0x1008c2[_0xb2cd('0x38')]=_0x1008c2[_0xb2cd('0x38')]['length']?_0x1008c2[_0xb2cd('0x38')]:_0xfd711c[_0xb2cd('0x33')];if(_0x223e58[_0xb2cd('0x34')]['includeAll']){_0x1008c2['include']=[{'all':!![]}];}_0x1008c2=_[_0xb2cd('0x40')]({},_0x1008c2,_0x223e58[_0xb2cd('0x42')]);return db[_0xb2cd('0x2f')][_0xb2cd('0x49')](_0x1008c2)[_0xb2cd('0x27')](handleEntityNotFound(_0x6155f,null))['then'](respondWithResult(_0x6155f,null))[_0xb2cd('0x47')](handleError(_0x6155f,null));};exports[_0xb2cd('0x4a')]=function(_0x19afe4,_0x1aad54){return db[_0xb2cd('0x2f')][_0xb2cd('0x4a')](_0x19afe4[_0xb2cd('0x4b')],{})[_0xb2cd('0x27')](respondWithResult(_0x1aad54,0xc9))['catch'](handleError(_0x1aad54,null));};exports['update']=function(_0x595de5,_0x33aca5){if(_0x595de5[_0xb2cd('0x4b')]['id']){delete _0x595de5[_0xb2cd('0x4b')]['id'];}return db[_0xb2cd('0x2f')][_0xb2cd('0x49')]({'where':{'id':_0x595de5[_0xb2cd('0x4c')]['id']}})[_0xb2cd('0x27')](handleEntityNotFound(_0x33aca5,null))[_0xb2cd('0x27')](saveUpdates(_0x595de5[_0xb2cd('0x4b')],null))[_0xb2cd('0x27')](respondWithResult(_0x33aca5,null))[_0xb2cd('0x47')](handleError(_0x33aca5,null));};exports[_0xb2cd('0x28')]=function(_0x2595cc,_0x1fc3f3){return db['VtigerAccount'][_0xb2cd('0x49')]({'where':{'id':_0x2595cc[_0xb2cd('0x4c')]['id']}})[_0xb2cd('0x27')](handleEntityNotFound(_0x1fc3f3,null))[_0xb2cd('0x27')](removeEntity(_0x1fc3f3,null))['catch'](handleError(_0x1fc3f3,null));};exports[_0xb2cd('0x4d')]=function(_0x12afcc,_0x9802e0,_0x4f1fbc){var _0x3d5294={};var _0xb8e560={};var _0x5db36b;var _0x286b35;return db[_0xb2cd('0x2f')][_0xb2cd('0x4e')]({'where':{'id':_0x12afcc[_0xb2cd('0x4c')]['id']}})['then'](handleEntityNotFound(_0x9802e0,null))[_0xb2cd('0x27')](function(_0x285f77){if(_0x285f77){_0x5db36b=_0x285f77;_0xb8e560['model']=_[_0xb2cd('0x35')](db[_0xb2cd('0x4f')]['rawAttributes']);_0xb8e560['query']=_[_0xb2cd('0x35')](_0x12afcc[_0xb2cd('0x34')]);_0xb8e560['filters']=_[_0xb2cd('0x37')](_0xb8e560[_0xb2cd('0x33')],_0xb8e560[_0xb2cd('0x34')]);_0x3d5294[_0xb2cd('0x38')]=_[_0xb2cd('0x37')](_0xb8e560[_0xb2cd('0x33')],qs['fields'](_0x12afcc['query'][_0xb2cd('0x39')]));_0x3d5294[_0xb2cd('0x38')]=_0x3d5294['attributes'][_0xb2cd('0x50')]?_0x3d5294[_0xb2cd('0x38')]:_0xb8e560[_0xb2cd('0x33')];_0x3d5294[_0xb2cd('0x3b')]=qs[_0xb2cd('0x3c')](_0x12afcc[_0xb2cd('0x34')]['sort']);_0x3d5294['where']=qs[_0xb2cd('0x36')](_[_0xb2cd('0x3e')](_0x12afcc[_0xb2cd('0x34')],_0xb8e560['filters']));if(_0x12afcc[_0xb2cd('0x34')][_0xb2cd('0x3f')]){_0x3d5294[_0xb2cd('0x3d')]=_[_0xb2cd('0x40')](_0x3d5294['where'],{'$or':_[_0xb2cd('0x2e')](_0x3d5294[_0xb2cd('0x38')],function(_0x27de5d){var _0x5a33c6={};_0x5a33c6[_0x27de5d]={'$like':'%'+_0x12afcc['query'][_0xb2cd('0x3f')]+'%'};return _0x5a33c6;})});}_0x3d5294=_[_0xb2cd('0x40')]({},_0x3d5294,_0x12afcc['options']);return _0x5db36b[_0xb2cd('0x4d')](_0x3d5294);}})[_0xb2cd('0x27')](function(_0x4ebe56){if(_0x4ebe56){_0x286b35=_0x4ebe56[_0xb2cd('0x50')];if(!_0x12afcc[_0xb2cd('0x34')][_0xb2cd('0x3a')](_0xb2cd('0x51'))){_0x3d5294[_0xb2cd('0x1e')]=qs[_0xb2cd('0x1e')](_0x12afcc[_0xb2cd('0x34')]['limit']);_0x3d5294[_0xb2cd('0x20')]=qs[_0xb2cd('0x20')](_0x12afcc['query']['offset']);}return _0x5db36b[_0xb2cd('0x4d')](_0x3d5294);}})[_0xb2cd('0x27')](function(_0x130fcf){if(_0x130fcf){return _0x130fcf?{'count':_0x286b35,'rows':_0x130fcf}:null;}})['then'](respondWithResult(_0x9802e0,null))[_0xb2cd('0x47')](handleError(_0x9802e0,null));};exports[_0xb2cd('0x52')]=function(_0x35d6d3,_0x1b61d1,_0x26b21d){if(_0x35d6d3[_0xb2cd('0x4b')]['id']){delete _0x35d6d3[_0xb2cd('0x4b')]['id'];}return db[_0xb2cd('0x2f')]['findOne']({'where':{'id':_0x35d6d3[_0xb2cd('0x4c')]['id']}})[_0xb2cd('0x27')](handleEntityNotFound(_0x1b61d1,null))['then'](function(_0x42583e){if(_0x42583e){_0x35d6d3['body'][_0xb2cd('0x53')]=_0x42583e['id'];_0x35d6d3['body'][_0xb2cd('0x54')]=integrations['getSubjects'](_0x35d6d3[_0xb2cd('0x4b')][_0xb2cd('0x55')],_0x35d6d3[_0xb2cd('0x4b')][_0xb2cd('0x31')]);_0x35d6d3[_0xb2cd('0x4b')][_0xb2cd('0x56')]=integrations[_0xb2cd('0x57')](_0x35d6d3[_0xb2cd('0x4b')][_0xb2cd('0x55')],_0x35d6d3[_0xb2cd('0x4b')][_0xb2cd('0x31')]);return db['VtigerConfiguration']['create'](_0x35d6d3['body'],{'include':[{'model':db[_0xb2cd('0x58')],'as':_0xb2cd('0x54')},{'model':db[_0xb2cd('0x58')],'as':_0xb2cd('0x56')}]});}return null;})['then'](respondWithResult(_0x1b61d1,null))[_0xb2cd('0x47')](handleError(_0x1b61d1,null));};var md5=require(_0xb2cd('0x59'));exports[_0xb2cd('0x5a')]=function(_0x56092d,_0x392ba3,_0x583b8c){var _0x3ccf8e=null;var _0x2150cf=null;var _0xeb6340=null;var _0x388e1f=null;var _0x2bb37e='';return db[_0xb2cd('0x2f')][_0xb2cd('0x4e')]({'where':{'id':_0x56092d[_0xb2cd('0x4c')]['id']},'attributes':['id','name','username',_0xb2cd('0x5b'),_0xb2cd('0x5c'),_0xb2cd('0x5d'),_0xb2cd('0x5e'),_0xb2cd('0x5f')]})[_0xb2cd('0x27')](handleEntityNotFound(_0x392ba3,null))['then'](function(_0x3207bc){if(_0x3207bc){_0x3ccf8e=_0x3207bc['username'];_0x2150cf=_0x3207bc[_0xb2cd('0x5f')];_0xeb6340=_0x3207bc['moduleName'];_0x2bb37e=_0x3207bc['remoteUri'];var _0x7bc41d=_0x2bb37e[_0xb2cd('0x60')](-0x1);if(_0x7bc41d==='/'){_0x2bb37e=_0x2bb37e['substring'](0x0,_0x2bb37e['lastIndexOf'](_0x7bc41d));}_0x388e1f=util[_0xb2cd('0x61')](_0xb2cd('0x62'),_0x2bb37e);var _0x38bc3e={'method':_0xb2cd('0x63'),'uri':_0x388e1f,'qs':{'operation':_0xb2cd('0x64'),'username':_0x3207bc['username']},'json':!![]};return rp(_0x38bc3e);}})['then'](function(_0x179ffb){if(_0x179ffb[_0xb2cd('0x65')]){var _0x53a2b9={'method':_0xb2cd('0x66'),'uri':_0x388e1f,'form':{'operation':_0xb2cd('0x67'),'username':_0x3ccf8e,'accessKey':md5(_0x179ffb[_0xb2cd('0x68')][_0xb2cd('0x69')]+_0x2150cf)},'json':!![]};return rp(_0x53a2b9);}})['then'](function(_0x3dc281){if(_0x3dc281[_0xb2cd('0x65')]){var _0x32d509={'method':_0xb2cd('0x63'),'uri':_0x388e1f,'qs':{'operation':_0xb2cd('0x6a'),'username':_0x3ccf8e,'sessionName':_0x3dc281[_0xb2cd('0x68')]['sessionName'],'elementType':_0xeb6340},'json':!![]};return rp(_0x32d509);}})[_0xb2cd('0x27')](function(_0x571fdf){if(_0x571fdf[_0xb2cd('0x65')]){var _0x58eace=['autogenerated',_0xb2cd('0x6b'),_0xb2cd('0x6c')];_[_0xb2cd('0x6d')](_0x571fdf[_0xb2cd('0x68')]['fields'],function(_0x9a892d){return _0x58eace[_0xb2cd('0x6e')](_0x9a892d[_0xb2cd('0x31')][_0xb2cd('0x2b')]);});_[_0xb2cd('0x6d')](_0x571fdf[_0xb2cd('0x68')][_0xb2cd('0x39')],function(_0x464f30){return _0x464f30[_0xb2cd('0x6f')]===_0xb2cd('0x70');});return{'count':_0x571fdf[_0xb2cd('0x68')][_0xb2cd('0x39')][_0xb2cd('0x50')],'rows':_[_0xb2cd('0x2e')](_0x571fdf[_0xb2cd('0x68')][_0xb2cd('0x39')],function(_0x1f8a8c){return{'id':_0x1f8a8c[_0xb2cd('0x2b')],'name':_0x1f8a8c[_0xb2cd('0x71')],'custom':_[_0xb2cd('0x72')](_0x1f8a8c[_0xb2cd('0x2b')],_0xb2cd('0x73'))?!![]:![],'options':_0x1f8a8c[_0xb2cd('0x31')][_0xb2cd('0x2b')]===_0xb2cd('0x74')&&_0x1f8a8c['type']['picklistValues']['length']>0x0?_[_0xb2cd('0x2e')](_0x1f8a8c[_0xb2cd('0x31')][_0xb2cd('0x75')],function(_0x4278c7){return{'name':_0x4278c7[_0xb2cd('0x71')],'value':_0x4278c7[_0xb2cd('0x76')]};}):[]};})};}})[_0xb2cd('0x27')](respondWithResult(_0x392ba3,null))['catch'](function(_0x477523){console[_0xb2cd('0x77')](_0xb2cd('0x78')+_0x477523);var _0x4b9c02=_0x56092d[_0xb2cd('0x34')][_0xb2cd('0x79')]?0x1f4:_0x477523[_0xb2cd('0x7a')]||0x1f4;logger[_0xb2cd('0x29')](_0xb2cd('0x7b'),_0xb2cd('0x5a'),_0x4b9c02,JSON[_0xb2cd('0x7c')](_0x477523));delete _0x477523[_0xb2cd('0x2b')];if(_0x4b9c02===0x191){_0x4b9c02=0x190;}_0x392ba3['status'](_0x4b9c02)[_0xb2cd('0x2c')](_0x56092d[_0xb2cd('0x34')]['test']?{'message':'Wrong\x20credentials','statusCode':_0x477523[_0xb2cd('0x7a')]}:_0x477523);});};
\ No newline at end of file
+var _0xc7a6=['attributes','fields','length','model','nolimit','order','sort','where','pick','filter','merge','options','VtigerAccount','includeAll','include','findAll','rows','show','catch','create','body','find','params','getConfigurations','findOne','hasOwnProperty','addConfiguration','AccountId','Subjects','getSubjects','channel','Descriptions','VtigerConfiguration','VtigerField','md5','description','moduleName','remoteUri','serverUrl','accessKey','username','slice','substring','lastIndexOf','format','%s/webservice.php','GET','getchallenge','success','POST','login','result','token','describe','sessionName','autogenerated','reference','remove','editable','label','cf_','picklistValues','test','stringify','statusCode','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','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/utils','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','destroy','end','stack','name','send','map','rawAttributes','fieldName','type','key','query','keys','filters','intersection'];(function(_0x2408fd,_0x225583){var _0x1f29f1=function(_0x4ad6e1){while(--_0x4ad6e1){_0x2408fd['push'](_0x2408fd['shift']());}};_0x1f29f1(++_0x225583);}(_0xc7a6,0x1a0));var _0x6c7a=function(_0x10fc8b,_0xb7fca){_0x10fc8b=_0x10fc8b-0x0;var _0x4b8c84=_0xc7a6[_0x10fc8b];return _0x4b8c84;};'use strict';var emlformat=require(_0x6c7a('0x0'));var rimraf=require(_0x6c7a('0x1'));var zipdir=require(_0x6c7a('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x6c7a('0x3'));var moment=require(_0x6c7a('0x4'));var BPromise=require(_0x6c7a('0x5'));var Mustache=require('mustache');var util=require(_0x6c7a('0x6'));var path=require(_0x6c7a('0x7'));var sox=require(_0x6c7a('0x8'));var csv=require(_0x6c7a('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x6c7a('0xa'));var _=require(_0x6c7a('0xb'));var squel=require(_0x6c7a('0xc'));var crypto=require(_0x6c7a('0xd'));var jsforce=require(_0x6c7a('0xe'));var deskjs=require(_0x6c7a('0xf'));var toCsv=require(_0x6c7a('0x9'));var querystring=require(_0x6c7a('0x10'));var Papa=require(_0x6c7a('0x11'));var Redis=require(_0x6c7a('0x12'));var authService=require(_0x6c7a('0x13'));var qs=require(_0x6c7a('0x14'));var as=require(_0x6c7a('0x15'));var hardwareService=require(_0x6c7a('0x16'));var logger=require('../../config/logger')('api');var utils=require(_0x6c7a('0x17'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x3f0d47,_0x5be5c1){_0x5be5c1=_0x5be5c1||0xcc;return function(_0x2b0942){if(_0x2b0942){return _0x3f0d47[_0x6c7a('0x18')](_0x5be5c1);}return _0x3f0d47[_0x6c7a('0x19')](_0x5be5c1)['end']();};}function respondWithResult(_0x13831f,_0x57d332){_0x57d332=_0x57d332||0xc8;return function(_0x30a700){if(_0x30a700){return _0x13831f[_0x6c7a('0x19')](_0x57d332)[_0x6c7a('0x1a')](_0x30a700);}};}function respondWithFilteredResult(_0x175360,_0xc1c39a){return function(_0x4ca964){if(_0x4ca964){var _0x13adea=typeof _0xc1c39a[_0x6c7a('0x1b')]===_0x6c7a('0x1c')&&typeof _0xc1c39a[_0x6c7a('0x1d')]===_0x6c7a('0x1c');var _0x10b541=_0x4ca964['count'];var _0x2fba32=_0x13adea?0x0:_0xc1c39a[_0x6c7a('0x1b')];var _0x18e76e=_0x13adea?_0x4ca964[_0x6c7a('0x1e')]:_0xc1c39a[_0x6c7a('0x1b')]+_0xc1c39a[_0x6c7a('0x1d')];var _0x5968b7;if(_0x18e76e>=_0x10b541){_0x18e76e=_0x10b541;_0x5968b7=0xc8;}else{_0x5968b7=0xce;}_0x175360[_0x6c7a('0x19')](_0x5968b7);return _0x175360[_0x6c7a('0x1f')](_0x6c7a('0x20'),_0x2fba32+'-'+_0x18e76e+'/'+_0x10b541)[_0x6c7a('0x1a')](_0x4ca964);}return null;};}function patchUpdates(_0x55af90){return function(_0x920ff2){try{jsonpatch[_0x6c7a('0x21')](_0x920ff2,_0x55af90,!![]);}catch(_0x203b61){return BPromise[_0x6c7a('0x22')](_0x203b61);}return _0x920ff2[_0x6c7a('0x23')]();};}function saveUpdates(_0x278773,_0x1e9f80){return function(_0x160f55){if(_0x160f55){return _0x160f55[_0x6c7a('0x24')](_0x278773)[_0x6c7a('0x25')](function(_0x3f51e1){return _0x3f51e1;});}return null;};}function removeEntity(_0x13ca6f,_0x306175){return function(_0x4f3b70){if(_0x4f3b70){return _0x4f3b70[_0x6c7a('0x26')]()[_0x6c7a('0x25')](function(){_0x13ca6f['status'](0xcc)[_0x6c7a('0x27')]();});}};}function handleEntityNotFound(_0x43f63a,_0x430f89){return function(_0x4d2318){if(!_0x4d2318){_0x43f63a[_0x6c7a('0x18')](0x194);}return _0x4d2318;};}function handleError(_0x3a5ae6,_0x378667){_0x378667=_0x378667||0x1f4;return function(_0x35855a){logger['error'](_0x35855a[_0x6c7a('0x28')]);if(_0x35855a[_0x6c7a('0x29')]){delete _0x35855a[_0x6c7a('0x29')];}_0x3a5ae6[_0x6c7a('0x19')](_0x378667)[_0x6c7a('0x2a')](_0x35855a);};}exports['index']=function(_0x356cad,_0x5ee3b4){var _0x2d8e64={},_0x19644b={},_0x2ad8a8={'count':0x0,'rows':[]};var _0x2b51eb=_[_0x6c7a('0x2b')](db['VtigerAccount'][_0x6c7a('0x2c')],function(_0x3b7d41){return{'name':_0x3b7d41[_0x6c7a('0x2d')],'type':_0x3b7d41[_0x6c7a('0x2e')][_0x6c7a('0x2f')]};});_0x19644b['model']=_[_0x6c7a('0x2b')](_0x2b51eb,'name');_0x19644b[_0x6c7a('0x30')]=_[_0x6c7a('0x31')](_0x356cad['query']);_0x19644b[_0x6c7a('0x32')]=_[_0x6c7a('0x33')](_0x19644b['model'],_0x19644b['query']);_0x2d8e64[_0x6c7a('0x34')]=_['intersection'](_0x19644b['model'],qs[_0x6c7a('0x35')](_0x356cad[_0x6c7a('0x30')][_0x6c7a('0x35')]));_0x2d8e64['attributes']=_0x2d8e64[_0x6c7a('0x34')][_0x6c7a('0x36')]?_0x2d8e64['attributes']:_0x19644b[_0x6c7a('0x37')];if(!_0x356cad[_0x6c7a('0x30')]['hasOwnProperty'](_0x6c7a('0x38'))){_0x2d8e64[_0x6c7a('0x1d')]=qs[_0x6c7a('0x1d')](_0x356cad[_0x6c7a('0x30')][_0x6c7a('0x1d')]);_0x2d8e64[_0x6c7a('0x1b')]=qs[_0x6c7a('0x1b')](_0x356cad[_0x6c7a('0x30')][_0x6c7a('0x1b')]);}_0x2d8e64[_0x6c7a('0x39')]=qs[_0x6c7a('0x3a')](_0x356cad[_0x6c7a('0x30')][_0x6c7a('0x3a')]);_0x2d8e64[_0x6c7a('0x3b')]=qs[_0x6c7a('0x32')](_[_0x6c7a('0x3c')](_0x356cad['query'],_0x19644b[_0x6c7a('0x32')]),_0x2b51eb);if(_0x356cad[_0x6c7a('0x30')][_0x6c7a('0x3d')]){_0x2d8e64[_0x6c7a('0x3b')]=_[_0x6c7a('0x3e')](_0x2d8e64[_0x6c7a('0x3b')],{'$or':_[_0x6c7a('0x2b')](_0x2b51eb,function(_0x469182){if(_0x469182['type']!=='VIRTUAL'){var _0x4cff05={};_0x4cff05[_0x469182[_0x6c7a('0x29')]]={'$like':'%'+_0x356cad[_0x6c7a('0x30')][_0x6c7a('0x3d')]+'%'};return _0x4cff05;}})});}_0x2d8e64=_[_0x6c7a('0x3e')]({},_0x2d8e64,_0x356cad[_0x6c7a('0x3f')]);var _0x23915a={'where':_0x2d8e64[_0x6c7a('0x3b')]};return db[_0x6c7a('0x40')][_0x6c7a('0x1e')](_0x23915a)[_0x6c7a('0x25')](function(_0x2ca959){_0x2ad8a8[_0x6c7a('0x1e')]=_0x2ca959;if(_0x356cad['query'][_0x6c7a('0x41')]){_0x2d8e64[_0x6c7a('0x42')]=[{'all':!![]}];}return db[_0x6c7a('0x40')][_0x6c7a('0x43')](_0x2d8e64);})[_0x6c7a('0x25')](function(_0x26b928){_0x2ad8a8[_0x6c7a('0x44')]=_0x26b928;return _0x2ad8a8;})['then'](respondWithFilteredResult(_0x5ee3b4,_0x2d8e64))['catch'](handleError(_0x5ee3b4,null));};exports[_0x6c7a('0x45')]=function(_0x3388c7,_0x10f660){var _0x30f7a7={'raw':![],'where':{'id':_0x3388c7['params']['id']}},_0x344b82={};_0x344b82[_0x6c7a('0x37')]=_[_0x6c7a('0x31')](db[_0x6c7a('0x40')]['rawAttributes']);_0x344b82['query']=_[_0x6c7a('0x31')](_0x3388c7[_0x6c7a('0x30')]);_0x344b82[_0x6c7a('0x32')]=_[_0x6c7a('0x33')](_0x344b82['model'],_0x344b82[_0x6c7a('0x30')]);_0x30f7a7[_0x6c7a('0x34')]=_[_0x6c7a('0x33')](_0x344b82[_0x6c7a('0x37')],qs[_0x6c7a('0x35')](_0x3388c7['query'][_0x6c7a('0x35')]));_0x30f7a7[_0x6c7a('0x34')]=_0x30f7a7[_0x6c7a('0x34')]['length']?_0x30f7a7[_0x6c7a('0x34')]:_0x344b82[_0x6c7a('0x37')];if(_0x3388c7['query'][_0x6c7a('0x41')]){_0x30f7a7[_0x6c7a('0x42')]=[{'all':!![]}];}_0x30f7a7=_['merge']({},_0x30f7a7,_0x3388c7['options']);return db[_0x6c7a('0x40')]['find'](_0x30f7a7)[_0x6c7a('0x25')](handleEntityNotFound(_0x10f660,null))[_0x6c7a('0x25')](respondWithResult(_0x10f660,null))[_0x6c7a('0x46')](handleError(_0x10f660,null));};exports[_0x6c7a('0x47')]=function(_0x267c03,_0x3550dd){return db['VtigerAccount'][_0x6c7a('0x47')](_0x267c03['body'],{})['then'](respondWithResult(_0x3550dd,0xc9))[_0x6c7a('0x46')](handleError(_0x3550dd,null));};exports[_0x6c7a('0x24')]=function(_0x3a09b0,_0x247586){if(_0x3a09b0['body']['id']){delete _0x3a09b0[_0x6c7a('0x48')]['id'];}return db[_0x6c7a('0x40')][_0x6c7a('0x49')]({'where':{'id':_0x3a09b0[_0x6c7a('0x4a')]['id']}})[_0x6c7a('0x25')](handleEntityNotFound(_0x247586,null))[_0x6c7a('0x25')](saveUpdates(_0x3a09b0['body'],null))['then'](respondWithResult(_0x247586,null))[_0x6c7a('0x46')](handleError(_0x247586,null));};exports['destroy']=function(_0x25250a,_0x414efe){return db[_0x6c7a('0x40')][_0x6c7a('0x49')]({'where':{'id':_0x25250a['params']['id']}})[_0x6c7a('0x25')](handleEntityNotFound(_0x414efe,null))['then'](removeEntity(_0x414efe,null))[_0x6c7a('0x46')](handleError(_0x414efe,null));};exports[_0x6c7a('0x4b')]=function(_0x2c3fa5,_0x4cc229,_0x16d8ad){var _0x4edb01={};var _0x414cae={};var _0xa57b7c;var _0x3b6a25;return db[_0x6c7a('0x40')][_0x6c7a('0x4c')]({'where':{'id':_0x2c3fa5[_0x6c7a('0x4a')]['id']}})[_0x6c7a('0x25')](handleEntityNotFound(_0x4cc229,null))[_0x6c7a('0x25')](function(_0x5186d2){if(_0x5186d2){_0xa57b7c=_0x5186d2;_0x414cae['model']=_[_0x6c7a('0x31')](db['VtigerConfiguration'][_0x6c7a('0x2c')]);_0x414cae[_0x6c7a('0x30')]=_['keys'](_0x2c3fa5[_0x6c7a('0x30')]);_0x414cae[_0x6c7a('0x32')]=_['intersection'](_0x414cae[_0x6c7a('0x37')],_0x414cae[_0x6c7a('0x30')]);_0x4edb01[_0x6c7a('0x34')]=_['intersection'](_0x414cae['model'],qs[_0x6c7a('0x35')](_0x2c3fa5[_0x6c7a('0x30')][_0x6c7a('0x35')]));_0x4edb01[_0x6c7a('0x34')]=_0x4edb01['attributes'][_0x6c7a('0x36')]?_0x4edb01['attributes']:_0x414cae['model'];_0x4edb01[_0x6c7a('0x39')]=qs[_0x6c7a('0x3a')](_0x2c3fa5[_0x6c7a('0x30')][_0x6c7a('0x3a')]);_0x4edb01['where']=qs['filters'](_['pick'](_0x2c3fa5[_0x6c7a('0x30')],_0x414cae['filters']));if(_0x2c3fa5['query'][_0x6c7a('0x3d')]){_0x4edb01[_0x6c7a('0x3b')]=_[_0x6c7a('0x3e')](_0x4edb01[_0x6c7a('0x3b')],{'$or':_[_0x6c7a('0x2b')](_0x4edb01[_0x6c7a('0x34')],function(_0x4f15bc){var _0x3f4cc6={};_0x3f4cc6[_0x4f15bc]={'$like':'%'+_0x2c3fa5[_0x6c7a('0x30')][_0x6c7a('0x3d')]+'%'};return _0x3f4cc6;})});}_0x4edb01=_[_0x6c7a('0x3e')]({},_0x4edb01,_0x2c3fa5['options']);return _0xa57b7c['getConfigurations'](_0x4edb01);}})[_0x6c7a('0x25')](function(_0x19c881){if(_0x19c881){_0x3b6a25=_0x19c881[_0x6c7a('0x36')];if(!_0x2c3fa5[_0x6c7a('0x30')][_0x6c7a('0x4d')](_0x6c7a('0x38'))){_0x4edb01[_0x6c7a('0x1d')]=qs['limit'](_0x2c3fa5[_0x6c7a('0x30')][_0x6c7a('0x1d')]);_0x4edb01['offset']=qs['offset'](_0x2c3fa5['query'][_0x6c7a('0x1b')]);}return _0xa57b7c['getConfigurations'](_0x4edb01);}})['then'](function(_0xc472c6){if(_0xc472c6){return _0xc472c6?{'count':_0x3b6a25,'rows':_0xc472c6}:null;}})[_0x6c7a('0x25')](respondWithResult(_0x4cc229,null))[_0x6c7a('0x46')](handleError(_0x4cc229,null));};exports[_0x6c7a('0x4e')]=function(_0x408012,_0x4954f7,_0x5444d4){if(_0x408012[_0x6c7a('0x48')]['id']){delete _0x408012[_0x6c7a('0x48')]['id'];}return db[_0x6c7a('0x40')]['findOne']({'where':{'id':_0x408012[_0x6c7a('0x4a')]['id']}})[_0x6c7a('0x25')](handleEntityNotFound(_0x4954f7,null))[_0x6c7a('0x25')](function(_0x15f9f5){if(_0x15f9f5){_0x408012[_0x6c7a('0x48')][_0x6c7a('0x4f')]=_0x15f9f5['id'];_0x408012[_0x6c7a('0x48')][_0x6c7a('0x50')]=integrations[_0x6c7a('0x51')](_0x408012['body'][_0x6c7a('0x52')],_0x408012[_0x6c7a('0x48')]['type']);_0x408012[_0x6c7a('0x48')][_0x6c7a('0x53')]=integrations['getDescriptions'](_0x408012['body'][_0x6c7a('0x52')],_0x408012[_0x6c7a('0x48')]['type']);return db[_0x6c7a('0x54')][_0x6c7a('0x47')](_0x408012['body'],{'include':[{'model':db[_0x6c7a('0x55')],'as':_0x6c7a('0x50')},{'model':db[_0x6c7a('0x55')],'as':_0x6c7a('0x53')}]});}return null;})[_0x6c7a('0x25')](respondWithResult(_0x4954f7,null))[_0x6c7a('0x46')](handleError(_0x4954f7,null));};var md5=require(_0x6c7a('0x56'));exports['getFields']=function(_0x69f86e,_0x16e5e5,_0x300c4d){var _0x152314=null;var _0x4777f4=null;var _0xbba48a=null;var _0xad60e6=null;var _0x55d41a='';return db[_0x6c7a('0x40')][_0x6c7a('0x4c')]({'where':{'id':_0x69f86e[_0x6c7a('0x4a')]['id']},'attributes':['id','name','username',_0x6c7a('0x57'),_0x6c7a('0x58'),_0x6c7a('0x59'),_0x6c7a('0x5a'),_0x6c7a('0x5b')]})[_0x6c7a('0x25')](handleEntityNotFound(_0x16e5e5,null))[_0x6c7a('0x25')](function(_0x2d529c){if(_0x2d529c){_0x152314=_0x2d529c[_0x6c7a('0x5c')];_0x4777f4=_0x2d529c[_0x6c7a('0x5b')];_0xbba48a=_0x2d529c[_0x6c7a('0x58')];_0x55d41a=_0x2d529c[_0x6c7a('0x59')];var _0x464bd2=_0x55d41a[_0x6c7a('0x5d')](-0x1);if(_0x464bd2==='/'){_0x55d41a=_0x55d41a[_0x6c7a('0x5e')](0x0,_0x55d41a[_0x6c7a('0x5f')](_0x464bd2));}_0xad60e6=util[_0x6c7a('0x60')](_0x6c7a('0x61'),_0x55d41a);var _0x4cf288={'method':_0x6c7a('0x62'),'uri':_0xad60e6,'qs':{'operation':_0x6c7a('0x63'),'username':_0x2d529c[_0x6c7a('0x5c')]},'json':!![]};return rp(_0x4cf288);}})[_0x6c7a('0x25')](function(_0x375cc4){if(_0x375cc4[_0x6c7a('0x64')]){var _0x409c8b={'method':_0x6c7a('0x65'),'uri':_0xad60e6,'form':{'operation':_0x6c7a('0x66'),'username':_0x152314,'accessKey':md5(_0x375cc4[_0x6c7a('0x67')][_0x6c7a('0x68')]+_0x4777f4)},'json':!![]};return rp(_0x409c8b);}})['then'](function(_0xb79593){if(_0xb79593[_0x6c7a('0x64')]){var _0x46cb76={'method':_0x6c7a('0x62'),'uri':_0xad60e6,'qs':{'operation':_0x6c7a('0x69'),'username':_0x152314,'sessionName':_0xb79593[_0x6c7a('0x67')][_0x6c7a('0x6a')],'elementType':_0xbba48a},'json':!![]};return rp(_0x46cb76);}})[_0x6c7a('0x25')](function(_0x5ce8dd){if(_0x5ce8dd[_0x6c7a('0x64')]){var _0x1e9ea9=[_0x6c7a('0x6b'),_0x6c7a('0x6c'),'owner'];_[_0x6c7a('0x6d')](_0x5ce8dd[_0x6c7a('0x67')][_0x6c7a('0x35')],function(_0x25aba2){return _0x1e9ea9['includes'](_0x25aba2[_0x6c7a('0x2e')][_0x6c7a('0x29')]);});_['remove'](_0x5ce8dd['result']['fields'],function(_0x251c6e){return _0x251c6e[_0x6c7a('0x6e')]==='false';});return{'count':_0x5ce8dd['result'][_0x6c7a('0x35')][_0x6c7a('0x36')],'rows':_[_0x6c7a('0x2b')](_0x5ce8dd['result'][_0x6c7a('0x35')],function(_0x2ff38e){return{'id':_0x2ff38e[_0x6c7a('0x29')],'name':_0x2ff38e[_0x6c7a('0x6f')],'custom':_['startsWith'](_0x2ff38e[_0x6c7a('0x29')],_0x6c7a('0x70'))?!![]:![],'options':_0x2ff38e[_0x6c7a('0x2e')]['name']==='picklist'&&_0x2ff38e[_0x6c7a('0x2e')][_0x6c7a('0x71')][_0x6c7a('0x36')]>0x0?_[_0x6c7a('0x2b')](_0x2ff38e[_0x6c7a('0x2e')][_0x6c7a('0x71')],function(_0x2fcb94){return{'name':_0x2fcb94[_0x6c7a('0x6f')],'value':_0x2fcb94['value']};}):[]};})};}})[_0x6c7a('0x25')](respondWithResult(_0x16e5e5,null))[_0x6c7a('0x46')](function(_0x220c3d){console['log']('vTiger\x20error:\x20'+_0x220c3d);var _0x10c4ce=_0x69f86e['query'][_0x6c7a('0x72')]?0x1f4:_0x220c3d['statusCode']||0x1f4;logger['error']('getFields,\x20%s,\x20%s,\x20%s','getFields',_0x10c4ce,JSON[_0x6c7a('0x73')](_0x220c3d));delete _0x220c3d[_0x6c7a('0x29')];if(_0x10c4ce===0x191){_0x10c4ce=0x190;}_0x16e5e5[_0x6c7a('0x19')](_0x10c4ce)[_0x6c7a('0x2a')](_0x69f86e['query'][_0x6c7a('0x72')]?{'message':'Wrong\x20credentials','statusCode':_0x220c3d[_0x6c7a('0x74')]}:_0x220c3d);});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6467=['../../components/integrations/configuration','define','VtigerAccount','lodash','util','../../config/logger','api','moment','request-promise','rimraf','../../config/environment','./intVtigerAccount.attributes'];(function(_0xe71cf6,_0x120a90){var _0x1ffd42=function(_0x5b1ab5){while(--_0x5b1ab5){_0xe71cf6['push'](_0xe71cf6['shift']());}};_0x1ffd42(++_0x120a90);}(_0x6467,0x87));var _0x7646=function(_0x15705b,_0x2bd6e6){_0x15705b=_0x15705b-0x0;var _0x49c63b=_0x6467[_0x15705b];return _0x49c63b;};'use strict';var _=require(_0x7646('0x0'));var util=require(_0x7646('0x1'));var logger=require(_0x7646('0x2'))(_0x7646('0x3'));var moment=require(_0x7646('0x4'));var BPromise=require('bluebird');var rp=require(_0x7646('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0x7646('0x6'));var config=require(_0x7646('0x7'));var attributes=require(_0x7646('0x8'));var integrations=require(_0x7646('0x9'));module['exports']=function(_0x52ae03,_0x5e2b36){return _0x52ae03[_0x7646('0xa')](_0x7646('0xb'),attributes,{'tableName':'int_vtiger_accounts','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xd4f4=['int_vtiger_accounts','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./intVtigerAccount.attributes','define','VtigerAccount'];(function(_0x97b56d,_0x467613){var _0x2c2433=function(_0x1334f5){while(--_0x1334f5){_0x97b56d['push'](_0x97b56d['shift']());}};_0x2c2433(++_0x467613);}(_0xd4f4,0x7f));var _0x4d4f=function(_0x3c1e23,_0x42f0d3){_0x3c1e23=_0x3c1e23-0x0;var _0x5320fc=_0xd4f4[_0x3c1e23];return _0x5320fc;};'use strict';var _=require(_0x4d4f('0x0'));var util=require(_0x4d4f('0x1'));var logger=require(_0x4d4f('0x2'))(_0x4d4f('0x3'));var moment=require(_0x4d4f('0x4'));var BPromise=require(_0x4d4f('0x5'));var rp=require(_0x4d4f('0x6'));var fs=require('fs');var path=require(_0x4d4f('0x7'));var rimraf=require(_0x4d4f('0x8'));var config=require(_0x4d4f('0x9'));var attributes=require(_0x4d4f('0xa'));var integrations=require('../../components/integrations/configuration');module['exports']=function(_0x2d8799,_0xd607bb){return _0x2d8799[_0x4d4f('0xb')](_0x4d4f('0xc'),attributes,{'tableName':_0x4d4f('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf7b4=['request\x20sent','debug','VtigerAccount,\x20%s,\x20%s,\x20%s','stringify','error','VtigerAccount,\x20%s,\x20%s','message','result','catch','VtigerAccount','findAll','options','raw','where','attributes','limit','include','map','model','then','GetVtigerAccount','find','ShowVtigerAccount','lodash','bluebird','randomstring','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','info'];(function(_0x2b50ce,_0x503c22){var _0x2be73e=function(_0x433b61){while(--_0x433b61){_0x2b50ce['push'](_0x2b50ce['shift']());}};_0x2be73e(++_0x503c22);}(_0xf7b4,0x152));var _0x4f7b=function(_0x3c9b9e,_0xf6fe69){_0x3c9b9e=_0x3c9b9e-0x0;var _0x22f52d=_0xf7b4[_0x3c9b9e];return _0x22f52d;};'use strict';var _=require(_0x4f7b('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0x4f7b('0x1'));var rs=require(_0x4f7b('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0x4f7b('0x3'));var logger=require(_0x4f7b('0x4'))(_0x4f7b('0x5'));var config=require(_0x4f7b('0x6'));var jayson=require(_0x4f7b('0x7'));var client=jayson[_0x4f7b('0x8')][_0x4f7b('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x3ad135,_0x173784,_0x351036){return new BPromise(function(_0x36ea9c,_0x3ef6e1){return client[_0x4f7b('0xa')](_0x3ad135,_0x351036)['then'](function(_0x433563){logger[_0x4f7b('0xb')]('VtigerAccount,\x20%s,\x20%s',_0x173784,_0x4f7b('0xc'));logger[_0x4f7b('0xd')](_0x4f7b('0xe'),_0x173784,_0x4f7b('0xc'),JSON[_0x4f7b('0xf')](_0x433563));if(_0x433563['error']){if(_0x433563[_0x4f7b('0x10')]['code']===0x1f4){logger['error'](_0x4f7b('0x11'),_0x173784,_0x433563[_0x4f7b('0x10')][_0x4f7b('0x12')]);return _0x3ef6e1(_0x433563[_0x4f7b('0x10')]['message']);}logger[_0x4f7b('0x10')](_0x4f7b('0x11'),_0x173784,_0x433563[_0x4f7b('0x10')][_0x4f7b('0x12')]);return _0x36ea9c(_0x433563[_0x4f7b('0x10')][_0x4f7b('0x12')]);}else{logger[_0x4f7b('0xb')](_0x4f7b('0x11'),_0x173784,_0x4f7b('0xc'));_0x36ea9c(_0x433563[_0x4f7b('0x13')][_0x4f7b('0x12')]);}})[_0x4f7b('0x14')](function(_0x50a161){logger[_0x4f7b('0x10')]('VtigerAccount,\x20%s,\x20%s',_0x173784,_0x50a161);_0x3ef6e1(_0x50a161);});});}exports['GetVtigerAccount']=function(_0x24e5cf){var _0x3813da=this;return new Promise(function(_0x519d90,_0x2b34c9){return db[_0x4f7b('0x15')][_0x4f7b('0x16')]({'raw':_0x24e5cf[_0x4f7b('0x17')]?_0x24e5cf['options'][_0x4f7b('0x18')]===undefined?!![]:![]:!![],'where':_0x24e5cf['options']?_0x24e5cf[_0x4f7b('0x17')][_0x4f7b('0x19')]||null:null,'attributes':_0x24e5cf[_0x4f7b('0x17')]?_0x24e5cf[_0x4f7b('0x17')][_0x4f7b('0x1a')]||null:null,'limit':_0x24e5cf[_0x4f7b('0x17')]?_0x24e5cf[_0x4f7b('0x17')][_0x4f7b('0x1b')]||null:null,'include':_0x24e5cf[_0x4f7b('0x17')]?_0x24e5cf['options'][_0x4f7b('0x1c')]?_[_0x4f7b('0x1d')](_0x24e5cf[_0x4f7b('0x17')]['include'],function(_0x150f57){return{'model':db[_0x150f57[_0x4f7b('0x1e')]],'as':_0x150f57['as'],'attributes':_0x150f57['attributes'],'include':_0x150f57[_0x4f7b('0x1c')]?_['map'](_0x150f57[_0x4f7b('0x1c')],function(_0x2429be){return{'model':db[_0x2429be[_0x4f7b('0x1e')]],'as':_0x2429be['as'],'attributes':_0x2429be[_0x4f7b('0x1a')],'include':_0x2429be[_0x4f7b('0x1c')]?_[_0x4f7b('0x1d')](_0x2429be[_0x4f7b('0x1c')],function(_0x3ad769){return{'model':db[_0x3ad769['model']],'as':_0x3ad769['as'],'attributes':_0x3ad769[_0x4f7b('0x1a')]};}):[]};}):[]};}):[]:[]})[_0x4f7b('0x1f')](function(_0x311675){logger['info'](_0x4f7b('0x20'),_0x24e5cf);logger[_0x4f7b('0xd')](_0x4f7b('0x20'),_0x24e5cf,JSON[_0x4f7b('0xf')](_0x311675));_0x519d90(_0x311675);})[_0x4f7b('0x14')](function(_0x4ebffa){logger[_0x4f7b('0x10')](_0x4f7b('0x20'),_0x4ebffa[_0x4f7b('0x12')],_0x24e5cf);_0x2b34c9(_0x3813da['error'](0x1f4,_0x4ebffa[_0x4f7b('0x12')]));});});};exports['ShowVtigerAccount']=function(_0x4e4828){var _0x1a2346=this;return new Promise(function(_0x52a5b1,_0x1aad4b){return db[_0x4f7b('0x15')][_0x4f7b('0x21')]({'raw':_0x4e4828[_0x4f7b('0x17')]?_0x4e4828[_0x4f7b('0x17')][_0x4f7b('0x18')]===undefined?!![]:![]:!![],'where':_0x4e4828[_0x4f7b('0x17')]?_0x4e4828[_0x4f7b('0x17')][_0x4f7b('0x19')]||null:null,'attributes':_0x4e4828[_0x4f7b('0x17')]?_0x4e4828[_0x4f7b('0x17')][_0x4f7b('0x1a')]||null:null,'include':_0x4e4828[_0x4f7b('0x17')]?_0x4e4828[_0x4f7b('0x17')][_0x4f7b('0x1c')]?_[_0x4f7b('0x1d')](_0x4e4828[_0x4f7b('0x17')][_0x4f7b('0x1c')],function(_0x35f1ed){return{'model':db[_0x35f1ed[_0x4f7b('0x1e')]],'as':_0x35f1ed['as'],'attributes':_0x35f1ed[_0x4f7b('0x1a')],'include':_0x35f1ed[_0x4f7b('0x1c')]?_['map'](_0x35f1ed[_0x4f7b('0x1c')],function(_0x5127a2){return{'model':db[_0x5127a2[_0x4f7b('0x1e')]],'as':_0x5127a2['as'],'attributes':_0x5127a2[_0x4f7b('0x1a')],'include':_0x5127a2['include']?_[_0x4f7b('0x1d')](_0x5127a2[_0x4f7b('0x1c')],function(_0x1347b6){return{'model':db[_0x1347b6['model']],'as':_0x1347b6['as'],'attributes':_0x1347b6[_0x4f7b('0x1a')]};}):[]};}):[]};}):[]:[]})[_0x4f7b('0x1f')](function(_0x446f6e){logger[_0x4f7b('0xb')](_0x4f7b('0x22'),_0x4e4828);logger[_0x4f7b('0xd')](_0x4f7b('0x22'),_0x4e4828,JSON['stringify'](_0x446f6e));_0x52a5b1(_0x446f6e);})[_0x4f7b('0x14')](function(_0x486187){logger[_0x4f7b('0x10')](_0x4f7b('0x22'),_0x486187[_0x4f7b('0x12')],_0x4e4828);_0x1aad4b(_0x1a2346['error'](0x1f4,_0x486187[_0x4f7b('0x12')]));});});};
\ No newline at end of file
+var _0x373d=['VtigerAccount','ShowVtigerAccount','lodash','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','client','http','info','request\x20sent','debug','stringify','error','code','message','VtigerAccount,\x20%s,\x20%s','result','catch','options','raw','where','attributes','limit','include','map','model','then','GetVtigerAccount'];(function(_0x29d623,_0x1a5c9c){var _0x242e59=function(_0x2c78ab){while(--_0x2c78ab){_0x29d623['push'](_0x29d623['shift']());}};_0x242e59(++_0x1a5c9c);}(_0x373d,0x1e2));var _0xd373=function(_0x4dfd8a,_0x476a02){_0x4dfd8a=_0x4dfd8a-0x0;var _0x5aeac9=_0x373d[_0x4dfd8a];return _0x5aeac9;};'use strict';var _=require(_0xd373('0x0'));var util=require('util');var moment=require(_0xd373('0x1'));var BPromise=require(_0xd373('0x2'));var rs=require(_0xd373('0x3'));var fs=require('fs');var Redis=require(_0xd373('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0xd373('0x5'));var logger=require(_0xd373('0x6'))(_0xd373('0x7'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0xd373('0x8')][_0xd373('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x446be6,_0x4008c5,_0x48d977){return new BPromise(function(_0xe79819,_0x51c074){return client['request'](_0x446be6,_0x48d977)['then'](function(_0x14472a){logger[_0xd373('0xa')]('VtigerAccount,\x20%s,\x20%s',_0x4008c5,_0xd373('0xb'));logger[_0xd373('0xc')]('VtigerAccount,\x20%s,\x20%s,\x20%s',_0x4008c5,'request\x20sent',JSON[_0xd373('0xd')](_0x14472a));if(_0x14472a[_0xd373('0xe')]){if(_0x14472a[_0xd373('0xe')][_0xd373('0xf')]===0x1f4){logger['error']('VtigerAccount,\x20%s,\x20%s',_0x4008c5,_0x14472a['error'][_0xd373('0x10')]);return _0x51c074(_0x14472a[_0xd373('0xe')]['message']);}logger[_0xd373('0xe')](_0xd373('0x11'),_0x4008c5,_0x14472a[_0xd373('0xe')][_0xd373('0x10')]);return _0xe79819(_0x14472a[_0xd373('0xe')][_0xd373('0x10')]);}else{logger[_0xd373('0xa')](_0xd373('0x11'),_0x4008c5,_0xd373('0xb'));_0xe79819(_0x14472a[_0xd373('0x12')][_0xd373('0x10')]);}})[_0xd373('0x13')](function(_0x1921dd){logger['error'](_0xd373('0x11'),_0x4008c5,_0x1921dd);_0x51c074(_0x1921dd);});});}exports['GetVtigerAccount']=function(_0x460259){var _0x36d47a=this;return new Promise(function(_0x55c5c7,_0x1bbdbd){return db['VtigerAccount']['findAll']({'raw':_0x460259[_0xd373('0x14')]?_0x460259[_0xd373('0x14')][_0xd373('0x15')]===undefined?!![]:![]:!![],'where':_0x460259[_0xd373('0x14')]?_0x460259[_0xd373('0x14')][_0xd373('0x16')]||null:null,'attributes':_0x460259['options']?_0x460259[_0xd373('0x14')][_0xd373('0x17')]||null:null,'limit':_0x460259[_0xd373('0x14')]?_0x460259[_0xd373('0x14')][_0xd373('0x18')]||null:null,'include':_0x460259[_0xd373('0x14')]?_0x460259['options'][_0xd373('0x19')]?_[_0xd373('0x1a')](_0x460259[_0xd373('0x14')][_0xd373('0x19')],function(_0x217ee7){return{'model':db[_0x217ee7[_0xd373('0x1b')]],'as':_0x217ee7['as'],'attributes':_0x217ee7[_0xd373('0x17')],'include':_0x217ee7[_0xd373('0x19')]?_[_0xd373('0x1a')](_0x217ee7[_0xd373('0x19')],function(_0x437110){return{'model':db[_0x437110[_0xd373('0x1b')]],'as':_0x437110['as'],'attributes':_0x437110[_0xd373('0x17')],'include':_0x437110[_0xd373('0x19')]?_[_0xd373('0x1a')](_0x437110[_0xd373('0x19')],function(_0x50b987){return{'model':db[_0x50b987[_0xd373('0x1b')]],'as':_0x50b987['as'],'attributes':_0x50b987[_0xd373('0x17')]};}):[]};}):[]};}):[]:[]})[_0xd373('0x1c')](function(_0x45ee58){logger[_0xd373('0xa')](_0xd373('0x1d'),_0x460259);logger[_0xd373('0xc')](_0xd373('0x1d'),_0x460259,JSON[_0xd373('0xd')](_0x45ee58));_0x55c5c7(_0x45ee58);})[_0xd373('0x13')](function(_0xbc420b){logger[_0xd373('0xe')](_0xd373('0x1d'),_0xbc420b['message'],_0x460259);_0x1bbdbd(_0x36d47a[_0xd373('0xe')](0x1f4,_0xbc420b['message']));});});};exports['ShowVtigerAccount']=function(_0xedc8f3){var _0x15da6c=this;return new Promise(function(_0x25e016,_0x23024c){return db[_0xd373('0x1e')]['find']({'raw':_0xedc8f3[_0xd373('0x14')]?_0xedc8f3[_0xd373('0x14')]['raw']===undefined?!![]:![]:!![],'where':_0xedc8f3[_0xd373('0x14')]?_0xedc8f3[_0xd373('0x14')][_0xd373('0x16')]||null:null,'attributes':_0xedc8f3[_0xd373('0x14')]?_0xedc8f3[_0xd373('0x14')][_0xd373('0x17')]||null:null,'include':_0xedc8f3[_0xd373('0x14')]?_0xedc8f3[_0xd373('0x14')][_0xd373('0x19')]?_['map'](_0xedc8f3[_0xd373('0x14')][_0xd373('0x19')],function(_0x420c73){return{'model':db[_0x420c73[_0xd373('0x1b')]],'as':_0x420c73['as'],'attributes':_0x420c73[_0xd373('0x17')],'include':_0x420c73[_0xd373('0x19')]?_[_0xd373('0x1a')](_0x420c73[_0xd373('0x19')],function(_0xaa62aa){return{'model':db[_0xaa62aa[_0xd373('0x1b')]],'as':_0xaa62aa['as'],'attributes':_0xaa62aa[_0xd373('0x17')],'include':_0xaa62aa[_0xd373('0x19')]?_[_0xd373('0x1a')](_0xaa62aa[_0xd373('0x19')],function(_0x22429c){return{'model':db[_0x22429c['model']],'as':_0x22429c['as'],'attributes':_0x22429c[_0xd373('0x17')]};}):[]};}):[]};}):[]:[]})[_0xd373('0x1c')](function(_0x186e39){logger[_0xd373('0xa')]('ShowVtigerAccount',_0xedc8f3);logger[_0xd373('0xc')](_0xd373('0x1f'),_0xedc8f3,JSON[_0xd373('0xd')](_0x186e39));_0x25e016(_0x186e39);})[_0xd373('0x13')](function(_0x38d8ec){logger[_0xd373('0xe')]('ShowVtigerAccount',_0x38d8ec['message'],_0xedc8f3);_0x23024c(_0x15da6c[_0xd373('0xe')](0x1f4,_0x38d8ec['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x97e9=['get','isAuthenticated','index','/:id','show','getFields','/:id/subjects','getSubjects','/:id/descriptions','getDescriptions','post','create','update','delete','destroy','multer','util','path','express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./intVtigerConfiguration.controller'];(function(_0x150bbe,_0x569f3b){var _0x371638=function(_0x5076ca){while(--_0x5076ca){_0x150bbe['push'](_0x150bbe['shift']());}};_0x371638(++_0x569f3b);}(_0x97e9,0x9f));var _0x997e=function(_0x1c4491,_0x39b3e1){_0x1c4491=_0x1c4491-0x0;var _0x5b0f27=_0x97e9[_0x1c4491];return _0x5b0f27;};'use strict';var multer=require(_0x997e('0x0'));var util=require(_0x997e('0x1'));var path=require(_0x997e('0x2'));var timeout=require('connect-timeout');var express=require(_0x997e('0x3'));var router=express['Router']();var fs_extra=require(_0x997e('0x4'));var auth=require(_0x997e('0x5'));var interaction=require(_0x997e('0x6'));var config=require(_0x997e('0x7'));var controller=require(_0x997e('0x8'));router[_0x997e('0x9')]('/',auth[_0x997e('0xa')](),controller[_0x997e('0xb')]);router[_0x997e('0x9')](_0x997e('0xc'),auth[_0x997e('0xa')](),controller[_0x997e('0xd')]);router[_0x997e('0x9')]('/:id/fields',auth['isAuthenticated'](),controller[_0x997e('0xe')]);router[_0x997e('0x9')](_0x997e('0xf'),auth['isAuthenticated'](),controller[_0x997e('0x10')]);router['get'](_0x997e('0x11'),auth['isAuthenticated'](),controller[_0x997e('0x12')]);router[_0x997e('0x13')]('/',auth[_0x997e('0xa')](),controller[_0x997e('0x14')]);router['put'](_0x997e('0xc'),auth[_0x997e('0xa')](),controller[_0x997e('0x15')]);router[_0x997e('0x16')](_0x997e('0xc'),auth['isAuthenticated'](),controller[_0x997e('0x17')]);module['exports']=router;
\ No newline at end of file
+var _0x3190=['getFields','/:id/subjects','getSubjects','getDescriptions','post','put','update','delete','destroy','exports','multer','path','express','Router','fs-extra','../../components/auth/service','../../config/environment','./intVtigerConfiguration.controller','get','isAuthenticated','index','/:id','show'];(function(_0x43a1b8,_0x1c90c8){var _0x324ecc=function(_0x53a93b){while(--_0x53a93b){_0x43a1b8['push'](_0x43a1b8['shift']());}};_0x324ecc(++_0x1c90c8);}(_0x3190,0x14c));var _0x0319=function(_0x4b0b9a,_0x45bc15){_0x4b0b9a=_0x4b0b9a-0x0;var _0x5ce265=_0x3190[_0x4b0b9a];return _0x5ce265;};'use strict';var multer=require(_0x0319('0x0'));var util=require('util');var path=require(_0x0319('0x1'));var timeout=require('connect-timeout');var express=require(_0x0319('0x2'));var router=express[_0x0319('0x3')]();var fs_extra=require(_0x0319('0x4'));var auth=require(_0x0319('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0x0319('0x6'));var controller=require(_0x0319('0x7'));router[_0x0319('0x8')]('/',auth[_0x0319('0x9')](),controller[_0x0319('0xa')]);router[_0x0319('0x8')](_0x0319('0xb'),auth[_0x0319('0x9')](),controller[_0x0319('0xc')]);router[_0x0319('0x8')]('/:id/fields',auth[_0x0319('0x9')](),controller[_0x0319('0xd')]);router[_0x0319('0x8')](_0x0319('0xe'),auth[_0x0319('0x9')](),controller[_0x0319('0xf')]);router[_0x0319('0x8')]('/:id/descriptions',auth[_0x0319('0x9')](),controller[_0x0319('0x10')]);router[_0x0319('0x11')]('/',auth[_0x0319('0x9')](),controller['create']);router[_0x0319('0x12')](_0x0319('0xb'),auth[_0x0319('0x9')](),controller[_0x0319('0x13')]);router[_0x0319('0x14')](_0x0319('0xb'),auth[_0x0319('0x9')](),controller[_0x0319('0x15')]);module[_0x0319('0x16')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x97e7=['exports','STRING','sequelize'];(function(_0x4bfbab,_0x14166a){var _0x549de7=function(_0x719d66){while(--_0x719d66){_0x4bfbab['push'](_0x4bfbab['shift']());}};_0x549de7(++_0x14166a);}(_0x97e7,0x1cd));var _0x797e=function(_0x138bfe,_0x46d6ef){_0x138bfe=_0x138bfe-0x0;var _0x2e5eb8=_0x97e7[_0x138bfe];return _0x2e5eb8;};'use strict';var Sequelize=require(_0x797e('0x0'));module[_0x797e('0x1')]={'name':{'type':Sequelize[_0x797e('0x2')]},'description':{'type':Sequelize[_0x797e('0x2')]}};
\ No newline at end of file
+var _0xa0aa=['exports','STRING'];(function(_0x42ba87,_0x3c2d42){var _0x4e46e8=function(_0x3e4868){while(--_0x3e4868){_0x42ba87['push'](_0x42ba87['shift']());}};_0x4e46e8(++_0x3c2d42);}(_0xa0aa,0xc0));var _0xaa0a=function(_0x4ee6bd,_0x50dfb7){_0x4ee6bd=_0x4ee6bd-0x0;var _0x467546=_0xa0aa[_0x4ee6bd];return _0x467546;};'use strict';var Sequelize=require('sequelize');module[_0xaa0a('0x0')]={'name':{'type':Sequelize[_0xaa0a('0x1')]},'description':{'type':Sequelize[_0xaa0a('0x1')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4db2=['attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','VIRTUAL','merge','VtigerConfiguration','includeAll','include','findAll','catch','show','find','create','body','params','getFields','options','getSubjects','findOne','getDescriptions','VtigerField','eml-format','rimraf','zip-dir','request-promise','util','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','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','Content-Range','save','update','then','destroy','stack','name','send','map','rawAttributes','type','key','model','keys','filters','intersection','query'];(function(_0x290522,_0x44bce3){var _0x291a25=function(_0x5a40f9){while(--_0x5a40f9){_0x290522['push'](_0x290522['shift']());}};_0x291a25(++_0x44bce3);}(_0x4db2,0x158));var _0x24db=function(_0x45ce1a,_0x4f8ea5){_0x45ce1a=_0x45ce1a-0x0;var _0x4926d8=_0x4db2[_0x45ce1a];return _0x4926d8;};'use strict';var emlformat=require(_0x24db('0x0'));var rimraf=require(_0x24db('0x1'));var zipdir=require(_0x24db('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x24db('0x3'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x24db('0x4'));var path=require(_0x24db('0x5'));var sox=require(_0x24db('0x6'));var csv=require(_0x24db('0x7'));var ejs=require(_0x24db('0x8'));var fs=require('fs');var fs_extra=require(_0x24db('0x9'));var _=require('lodash');var squel=require(_0x24db('0xa'));var crypto=require(_0x24db('0xb'));var jsforce=require(_0x24db('0xc'));var deskjs=require(_0x24db('0xd'));var toCsv=require('to-csv');var querystring=require(_0x24db('0xe'));var Papa=require(_0x24db('0xf'));var Redis=require(_0x24db('0x10'));var authService=require('../../components/auth/service');var qs=require(_0x24db('0x11'));var as=require(_0x24db('0x12'));var hardwareService=require(_0x24db('0x13'));var logger=require(_0x24db('0x14'))(_0x24db('0x15'));var utils=require(_0x24db('0x16'));var config=require(_0x24db('0x17'));var licenseUtil=require(_0x24db('0x18'));var db=require(_0x24db('0x19'))['db'];function respondWithStatusCode(_0x2fc700,_0x4ef065){_0x4ef065=_0x4ef065||0xcc;return function(_0xa1c81a){if(_0xa1c81a){return _0x2fc700[_0x24db('0x1a')](_0x4ef065);}return _0x2fc700[_0x24db('0x1b')](_0x4ef065)[_0x24db('0x1c')]();};}function respondWithResult(_0x2f782a,_0x1ead85){_0x1ead85=_0x1ead85||0xc8;return function(_0x15e2f8){if(_0x15e2f8){return _0x2f782a[_0x24db('0x1b')](_0x1ead85)[_0x24db('0x1d')](_0x15e2f8);}};}function respondWithFilteredResult(_0x2c0ea3,_0x278172){return function(_0x2519ab){if(_0x2519ab){var _0x526184=typeof _0x278172[_0x24db('0x1e')]===_0x24db('0x1f')&&typeof _0x278172[_0x24db('0x20')]===_0x24db('0x1f');var _0x5a12d5=_0x2519ab['count'];var _0x25a3b3=_0x526184?0x0:_0x278172[_0x24db('0x1e')];var _0x584376=_0x526184?_0x2519ab[_0x24db('0x21')]:_0x278172[_0x24db('0x1e')]+_0x278172['limit'];var _0x280a8b;if(_0x584376>=_0x5a12d5){_0x584376=_0x5a12d5;_0x280a8b=0xc8;}else{_0x280a8b=0xce;}_0x2c0ea3['status'](_0x280a8b);return _0x2c0ea3['set'](_0x24db('0x22'),_0x25a3b3+'-'+_0x584376+'/'+_0x5a12d5)['json'](_0x2519ab);}return null;};}function patchUpdates(_0x2cc5c8){return function(_0x1b0209){try{jsonpatch['apply'](_0x1b0209,_0x2cc5c8,!![]);}catch(_0x22cbaa){return BPromise['reject'](_0x22cbaa);}return _0x1b0209[_0x24db('0x23')]();};}function saveUpdates(_0x3262cd,_0x10f6ff){return function(_0x1cfcd6){if(_0x1cfcd6){return _0x1cfcd6[_0x24db('0x24')](_0x3262cd)[_0x24db('0x25')](function(_0x1f19e4){return _0x1f19e4;});}return null;};}function removeEntity(_0x2671cf,_0x411913){return function(_0x1bc8cc){if(_0x1bc8cc){return _0x1bc8cc[_0x24db('0x26')]()[_0x24db('0x25')](function(){_0x2671cf[_0x24db('0x1b')](0xcc)[_0x24db('0x1c')]();});}};}function handleEntityNotFound(_0xafdbd3,_0x34c61a){return function(_0x3b3cb0){if(!_0x3b3cb0){_0xafdbd3[_0x24db('0x1a')](0x194);}return _0x3b3cb0;};}function handleError(_0x4187fe,_0x1d60aa){_0x1d60aa=_0x1d60aa||0x1f4;return function(_0x2335a3){logger['error'](_0x2335a3[_0x24db('0x27')]);if(_0x2335a3[_0x24db('0x28')]){delete _0x2335a3['name'];}_0x4187fe['status'](_0x1d60aa)[_0x24db('0x29')](_0x2335a3);};}exports['index']=function(_0x3f41b1,_0x5e60d8){var _0x1700a6={},_0x98bb7f={},_0x5cdcd3={'count':0x0,'rows':[]};var _0x419476=_[_0x24db('0x2a')](db['VtigerConfiguration'][_0x24db('0x2b')],function(_0x227a93){return{'name':_0x227a93['fieldName'],'type':_0x227a93[_0x24db('0x2c')][_0x24db('0x2d')]};});_0x98bb7f[_0x24db('0x2e')]=_[_0x24db('0x2a')](_0x419476,'name');_0x98bb7f['query']=_[_0x24db('0x2f')](_0x3f41b1['query']);_0x98bb7f[_0x24db('0x30')]=_[_0x24db('0x31')](_0x98bb7f['model'],_0x98bb7f[_0x24db('0x32')]);_0x1700a6[_0x24db('0x33')]=_['intersection'](_0x98bb7f[_0x24db('0x2e')],qs['fields'](_0x3f41b1[_0x24db('0x32')][_0x24db('0x34')]));_0x1700a6[_0x24db('0x33')]=_0x1700a6[_0x24db('0x33')][_0x24db('0x35')]?_0x1700a6[_0x24db('0x33')]:_0x98bb7f[_0x24db('0x2e')];if(!_0x3f41b1[_0x24db('0x32')][_0x24db('0x36')](_0x24db('0x37'))){_0x1700a6[_0x24db('0x20')]=qs[_0x24db('0x20')](_0x3f41b1[_0x24db('0x32')][_0x24db('0x20')]);_0x1700a6['offset']=qs[_0x24db('0x1e')](_0x3f41b1[_0x24db('0x32')][_0x24db('0x1e')]);}_0x1700a6[_0x24db('0x38')]=qs[_0x24db('0x39')](_0x3f41b1[_0x24db('0x32')][_0x24db('0x39')]);_0x1700a6[_0x24db('0x3a')]=qs[_0x24db('0x30')](_[_0x24db('0x3b')](_0x3f41b1['query'],_0x98bb7f['filters']),_0x419476);if(_0x3f41b1[_0x24db('0x32')][_0x24db('0x3c')]){_0x1700a6[_0x24db('0x3a')]=_['merge'](_0x1700a6[_0x24db('0x3a')],{'$or':_[_0x24db('0x2a')](_0x419476,function(_0x30fa03){if(_0x30fa03[_0x24db('0x2c')]!==_0x24db('0x3d')){var _0x137fb8={};_0x137fb8[_0x30fa03[_0x24db('0x28')]]={'$like':'%'+_0x3f41b1[_0x24db('0x32')][_0x24db('0x3c')]+'%'};return _0x137fb8;}})});}_0x1700a6=_[_0x24db('0x3e')]({},_0x1700a6,_0x3f41b1['options']);var _0x449eb3={'where':_0x1700a6[_0x24db('0x3a')]};return db[_0x24db('0x3f')][_0x24db('0x21')](_0x449eb3)[_0x24db('0x25')](function(_0xa8d50f){_0x5cdcd3[_0x24db('0x21')]=_0xa8d50f;if(_0x3f41b1['query'][_0x24db('0x40')]){_0x1700a6[_0x24db('0x41')]=[{'all':!![]}];}return db[_0x24db('0x3f')][_0x24db('0x42')](_0x1700a6);})[_0x24db('0x25')](function(_0x246303){_0x5cdcd3['rows']=_0x246303;return _0x5cdcd3;})[_0x24db('0x25')](respondWithFilteredResult(_0x5e60d8,_0x1700a6))[_0x24db('0x43')](handleError(_0x5e60d8,null));};exports[_0x24db('0x44')]=function(_0x3e8b66,_0x86fd1c){var _0x564395={'raw':![],'where':{'id':_0x3e8b66['params']['id']}},_0x1cc50d={};_0x1cc50d[_0x24db('0x2e')]=_[_0x24db('0x2f')](db[_0x24db('0x3f')][_0x24db('0x2b')]);_0x1cc50d[_0x24db('0x32')]=_['keys'](_0x3e8b66[_0x24db('0x32')]);_0x1cc50d[_0x24db('0x30')]=_[_0x24db('0x31')](_0x1cc50d[_0x24db('0x2e')],_0x1cc50d[_0x24db('0x32')]);_0x564395['attributes']=_[_0x24db('0x31')](_0x1cc50d[_0x24db('0x2e')],qs[_0x24db('0x34')](_0x3e8b66[_0x24db('0x32')][_0x24db('0x34')]));_0x564395[_0x24db('0x33')]=_0x564395[_0x24db('0x33')][_0x24db('0x35')]?_0x564395[_0x24db('0x33')]:_0x1cc50d[_0x24db('0x2e')];if(_0x3e8b66[_0x24db('0x32')][_0x24db('0x40')]){_0x564395[_0x24db('0x41')]=[{'all':!![]}];}_0x564395=_[_0x24db('0x3e')]({},_0x564395,_0x3e8b66['options']);return db[_0x24db('0x3f')][_0x24db('0x45')](_0x564395)['then'](handleEntityNotFound(_0x86fd1c,null))[_0x24db('0x25')](respondWithResult(_0x86fd1c,null))[_0x24db('0x43')](handleError(_0x86fd1c,null));};exports[_0x24db('0x46')]=function(_0x52a405,_0x40b3a9){return db[_0x24db('0x3f')][_0x24db('0x46')](_0x52a405[_0x24db('0x47')],{})[_0x24db('0x25')](respondWithResult(_0x40b3a9,0xc9))[_0x24db('0x43')](handleError(_0x40b3a9,null));};exports[_0x24db('0x24')]=function(_0x2fc4d7,_0x4ec0d5){if(_0x2fc4d7['body']['id']){delete _0x2fc4d7[_0x24db('0x47')]['id'];}return db['VtigerConfiguration'][_0x24db('0x45')]({'where':{'id':_0x2fc4d7[_0x24db('0x48')]['id']}})[_0x24db('0x25')](handleEntityNotFound(_0x4ec0d5,null))['then'](saveUpdates(_0x2fc4d7[_0x24db('0x47')],null))['then'](respondWithResult(_0x4ec0d5,null))[_0x24db('0x43')](handleError(_0x4ec0d5,null));};exports[_0x24db('0x26')]=function(_0xbaef07,_0x28eeee){return db[_0x24db('0x3f')][_0x24db('0x45')]({'where':{'id':_0xbaef07[_0x24db('0x48')]['id']}})[_0x24db('0x25')](handleEntityNotFound(_0x28eeee,null))['then'](removeEntity(_0x28eeee,null))[_0x24db('0x43')](handleError(_0x28eeee,null));};exports[_0x24db('0x49')]=function(_0x55f9e5,_0x3f719a,_0x3a06d5){var _0x2b159b={};var _0x5aa423={};var _0x5d074a;var _0x5c23b3;return db['VtigerConfiguration']['findOne']({'where':{'id':_0x55f9e5[_0x24db('0x48')]['id']}})[_0x24db('0x25')](handleEntityNotFound(_0x3f719a,null))[_0x24db('0x25')](function(_0x14a8b5){if(_0x14a8b5){_0x5d074a=_0x14a8b5;_0x5aa423['model']=_[_0x24db('0x2f')](db['VtigerField'][_0x24db('0x2b')]);_0x5aa423[_0x24db('0x32')]=_['keys'](_0x55f9e5[_0x24db('0x32')]);_0x5aa423[_0x24db('0x30')]=_[_0x24db('0x31')](_0x5aa423[_0x24db('0x2e')],_0x5aa423[_0x24db('0x32')]);_0x2b159b[_0x24db('0x33')]=_[_0x24db('0x31')](_0x5aa423['model'],qs[_0x24db('0x34')](_0x55f9e5['query']['fields']));_0x2b159b[_0x24db('0x33')]=_0x2b159b[_0x24db('0x33')][_0x24db('0x35')]?_0x2b159b[_0x24db('0x33')]:_0x5aa423[_0x24db('0x2e')];_0x2b159b[_0x24db('0x38')]=qs[_0x24db('0x39')](_0x55f9e5[_0x24db('0x32')][_0x24db('0x39')]);_0x2b159b['where']=qs[_0x24db('0x30')](_[_0x24db('0x3b')](_0x55f9e5['query'],_0x5aa423[_0x24db('0x30')]));if(_0x55f9e5[_0x24db('0x32')]['filter']){_0x2b159b['where']=_[_0x24db('0x3e')](_0x2b159b[_0x24db('0x3a')],{'$or':_[_0x24db('0x2a')](_0x2b159b[_0x24db('0x33')],function(_0x5d2129){var _0x27fc7f={};_0x27fc7f[_0x5d2129]={'$like':'%'+_0x55f9e5[_0x24db('0x32')][_0x24db('0x3c')]+'%'};return _0x27fc7f;})});}_0x2b159b=_[_0x24db('0x3e')]({},_0x2b159b,_0x55f9e5[_0x24db('0x4a')]);return _0x5d074a['getFields'](_0x2b159b);}})['then'](function(_0x5edc8a){if(_0x5edc8a){_0x5c23b3=_0x5edc8a['length'];if(!_0x55f9e5[_0x24db('0x32')][_0x24db('0x36')]('nolimit')){_0x2b159b['limit']=qs[_0x24db('0x20')](_0x55f9e5[_0x24db('0x32')]['limit']);_0x2b159b['offset']=qs[_0x24db('0x1e')](_0x55f9e5[_0x24db('0x32')][_0x24db('0x1e')]);}return _0x5d074a[_0x24db('0x49')](_0x2b159b);}})[_0x24db('0x25')](function(_0x1ba27e){if(_0x1ba27e){return _0x1ba27e?{'count':_0x5c23b3,'rows':_0x1ba27e}:null;}})[_0x24db('0x25')](respondWithResult(_0x3f719a,null))[_0x24db('0x43')](handleError(_0x3f719a,null));};exports[_0x24db('0x4b')]=function(_0x152f4b,_0xf8d93c,_0xa09a62){var _0x2f5383={};var _0x4c8927={};var _0x5dff66;var _0x61756a;return db[_0x24db('0x3f')][_0x24db('0x4c')]({'where':{'id':_0x152f4b[_0x24db('0x48')]['id']}})[_0x24db('0x25')](handleEntityNotFound(_0xf8d93c,null))[_0x24db('0x25')](function(_0x2ea48b){if(_0x2ea48b){_0x5dff66=_0x2ea48b;_0x4c8927[_0x24db('0x2e')]=_[_0x24db('0x2f')](db['VtigerField'][_0x24db('0x2b')]);_0x4c8927['query']=_['keys'](_0x152f4b[_0x24db('0x32')]);_0x4c8927[_0x24db('0x30')]=_[_0x24db('0x31')](_0x4c8927[_0x24db('0x2e')],_0x4c8927['query']);_0x2f5383[_0x24db('0x33')]=_[_0x24db('0x31')](_0x4c8927[_0x24db('0x2e')],qs[_0x24db('0x34')](_0x152f4b[_0x24db('0x32')][_0x24db('0x34')]));_0x2f5383[_0x24db('0x33')]=_0x2f5383[_0x24db('0x33')][_0x24db('0x35')]?_0x2f5383['attributes']:_0x4c8927['model'];_0x2f5383[_0x24db('0x38')]=qs[_0x24db('0x39')](_0x152f4b[_0x24db('0x32')][_0x24db('0x39')]);_0x2f5383['where']=qs['filters'](_[_0x24db('0x3b')](_0x152f4b['query'],_0x4c8927[_0x24db('0x30')]));if(_0x152f4b[_0x24db('0x32')]['filter']){_0x2f5383['where']=_[_0x24db('0x3e')](_0x2f5383[_0x24db('0x3a')],{'$or':_['map'](_0x2f5383[_0x24db('0x33')],function(_0x21e0b0){var _0x653c38={};_0x653c38[_0x21e0b0]={'$like':'%'+_0x152f4b['query'][_0x24db('0x3c')]+'%'};return _0x653c38;})});}_0x2f5383=_[_0x24db('0x3e')]({},_0x2f5383,_0x152f4b[_0x24db('0x4a')]);return _0x5dff66[_0x24db('0x4b')](_0x2f5383);}})[_0x24db('0x25')](function(_0x231e62){if(_0x231e62){_0x61756a=_0x231e62[_0x24db('0x35')];if(!_0x152f4b['query'][_0x24db('0x36')](_0x24db('0x37'))){_0x2f5383[_0x24db('0x20')]=qs['limit'](_0x152f4b[_0x24db('0x32')]['limit']);_0x2f5383[_0x24db('0x1e')]=qs[_0x24db('0x1e')](_0x152f4b['query'][_0x24db('0x1e')]);}return _0x5dff66[_0x24db('0x4b')](_0x2f5383);}})[_0x24db('0x25')](function(_0x1cf5fc){if(_0x1cf5fc){return _0x1cf5fc?{'count':_0x61756a,'rows':_0x1cf5fc}:null;}})[_0x24db('0x25')](respondWithResult(_0xf8d93c,null))[_0x24db('0x43')](handleError(_0xf8d93c,null));};exports[_0x24db('0x4d')]=function(_0x7f507f,_0x528d66,_0x288e80){var _0x56ac99={};var _0x376823={};var _0x1decbf;var _0x2b9dd4;return db['VtigerConfiguration']['findOne']({'where':{'id':_0x7f507f[_0x24db('0x48')]['id']}})[_0x24db('0x25')](handleEntityNotFound(_0x528d66,null))['then'](function(_0x468a9f){if(_0x468a9f){_0x1decbf=_0x468a9f;_0x376823[_0x24db('0x2e')]=_[_0x24db('0x2f')](db[_0x24db('0x4e')][_0x24db('0x2b')]);_0x376823[_0x24db('0x32')]=_['keys'](_0x7f507f[_0x24db('0x32')]);_0x376823['filters']=_['intersection'](_0x376823[_0x24db('0x2e')],_0x376823[_0x24db('0x32')]);_0x56ac99[_0x24db('0x33')]=_[_0x24db('0x31')](_0x376823['model'],qs[_0x24db('0x34')](_0x7f507f[_0x24db('0x32')][_0x24db('0x34')]));_0x56ac99[_0x24db('0x33')]=_0x56ac99[_0x24db('0x33')]['length']?_0x56ac99[_0x24db('0x33')]:_0x376823[_0x24db('0x2e')];_0x56ac99['order']=qs[_0x24db('0x39')](_0x7f507f[_0x24db('0x32')][_0x24db('0x39')]);_0x56ac99['where']=qs[_0x24db('0x30')](_[_0x24db('0x3b')](_0x7f507f[_0x24db('0x32')],_0x376823[_0x24db('0x30')]));if(_0x7f507f['query']['filter']){_0x56ac99[_0x24db('0x3a')]=_['merge'](_0x56ac99['where'],{'$or':_['map'](_0x56ac99[_0x24db('0x33')],function(_0x3cce21){var _0x3b653a={};_0x3b653a[_0x3cce21]={'$like':'%'+_0x7f507f['query']['filter']+'%'};return _0x3b653a;})});}_0x56ac99=_[_0x24db('0x3e')]({},_0x56ac99,_0x7f507f[_0x24db('0x4a')]);return _0x1decbf['getDescriptions'](_0x56ac99);}})[_0x24db('0x25')](function(_0x29b1ed){if(_0x29b1ed){_0x2b9dd4=_0x29b1ed[_0x24db('0x35')];if(!_0x7f507f[_0x24db('0x32')][_0x24db('0x36')](_0x24db('0x37'))){_0x56ac99['limit']=qs[_0x24db('0x20')](_0x7f507f[_0x24db('0x32')][_0x24db('0x20')]);_0x56ac99['offset']=qs[_0x24db('0x1e')](_0x7f507f[_0x24db('0x32')][_0x24db('0x1e')]);}return _0x1decbf['getDescriptions'](_0x56ac99);}})[_0x24db('0x25')](function(_0x1005dd){if(_0x1005dd){return _0x1005dd?{'count':_0x2b9dd4,'rows':_0x1005dd}:null;}})[_0x24db('0x25')](respondWithResult(_0x528d66,null))['catch'](handleError(_0x528d66,null));};
\ No newline at end of file
+var _0x77fa=['getDescriptions','findOne','eml-format','zip-dir','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../mysqldb','status','end','json','count','offset','set','Content-Range','apply','reject','save','then','destroy','sendStatus','error','stack','name','send','index','map','rawAttributes','fieldName','type','key','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','limit','order','sort','where','pick','filter','merge','options','includeAll','include','VtigerConfiguration','findAll','rows','catch','show','params','find','create','body','update','getFields','VtigerField','getSubjects'];(function(_0x4de877,_0x340170){var _0xb2cfeb=function(_0x488634){while(--_0x488634){_0x4de877['push'](_0x4de877['shift']());}};_0xb2cfeb(++_0x340170);}(_0x77fa,0x1ee));var _0xa77f=function(_0x55635b,_0x590c1b){_0x55635b=_0x55635b-0x0;var _0x51b0f0=_0x77fa[_0x55635b];return _0x51b0f0;};'use strict';var emlformat=require(_0xa77f('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xa77f('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xa77f('0x2'));var moment=require('moment');var BPromise=require(_0xa77f('0x3'));var Mustache=require(_0xa77f('0x4'));var util=require(_0xa77f('0x5'));var path=require(_0xa77f('0x6'));var sox=require(_0xa77f('0x7'));var csv=require(_0xa77f('0x8'));var ejs=require(_0xa77f('0x9'));var fs=require('fs');var fs_extra=require(_0xa77f('0xa'));var _=require(_0xa77f('0xb'));var squel=require(_0xa77f('0xc'));var crypto=require(_0xa77f('0xd'));var jsforce=require(_0xa77f('0xe'));var deskjs=require('desk.js');var toCsv=require(_0xa77f('0x8'));var querystring=require(_0xa77f('0xf'));var Papa=require('papaparse');var Redis=require(_0xa77f('0x10'));var authService=require(_0xa77f('0x11'));var qs=require(_0xa77f('0x12'));var as=require(_0xa77f('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xa77f('0x14'))(_0xa77f('0x15'));var utils=require(_0xa77f('0x16'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0xa77f('0x17'))['db'];function respondWithStatusCode(_0x523869,_0x387548){_0x387548=_0x387548||0xcc;return function(_0x592a76){if(_0x592a76){return _0x523869['sendStatus'](_0x387548);}return _0x523869[_0xa77f('0x18')](_0x387548)[_0xa77f('0x19')]();};}function respondWithResult(_0x1d864c,_0x142aed){_0x142aed=_0x142aed||0xc8;return function(_0x26be56){if(_0x26be56){return _0x1d864c[_0xa77f('0x18')](_0x142aed)[_0xa77f('0x1a')](_0x26be56);}};}function respondWithFilteredResult(_0x2ccd0a,_0x3bc376){return function(_0xededb){if(_0xededb){var _0x57bcb6=typeof _0x3bc376['offset']==='undefined'&&typeof _0x3bc376['limit']==='undefined';var _0x3f2c9d=_0xededb[_0xa77f('0x1b')];var _0x4172b2=_0x57bcb6?0x0:_0x3bc376[_0xa77f('0x1c')];var _0x476929=_0x57bcb6?_0xededb[_0xa77f('0x1b')]:_0x3bc376[_0xa77f('0x1c')]+_0x3bc376['limit'];var _0x3496d9;if(_0x476929>=_0x3f2c9d){_0x476929=_0x3f2c9d;_0x3496d9=0xc8;}else{_0x3496d9=0xce;}_0x2ccd0a[_0xa77f('0x18')](_0x3496d9);return _0x2ccd0a[_0xa77f('0x1d')](_0xa77f('0x1e'),_0x4172b2+'-'+_0x476929+'/'+_0x3f2c9d)[_0xa77f('0x1a')](_0xededb);}return null;};}function patchUpdates(_0x3dd834){return function(_0x1bc3a9){try{jsonpatch[_0xa77f('0x1f')](_0x1bc3a9,_0x3dd834,!![]);}catch(_0x3e87b6){return BPromise[_0xa77f('0x20')](_0x3e87b6);}return _0x1bc3a9[_0xa77f('0x21')]();};}function saveUpdates(_0x46ac6f,_0x114074){return function(_0x3511b0){if(_0x3511b0){return _0x3511b0['update'](_0x46ac6f)[_0xa77f('0x22')](function(_0x4e4189){return _0x4e4189;});}return null;};}function removeEntity(_0x346b7a,_0x160c8f){return function(_0xdb51d6){if(_0xdb51d6){return _0xdb51d6[_0xa77f('0x23')]()[_0xa77f('0x22')](function(){_0x346b7a[_0xa77f('0x18')](0xcc)[_0xa77f('0x19')]();});}};}function handleEntityNotFound(_0x36f9bf,_0x332668){return function(_0x36e621){if(!_0x36e621){_0x36f9bf[_0xa77f('0x24')](0x194);}return _0x36e621;};}function handleError(_0x10647e,_0xfa68fa){_0xfa68fa=_0xfa68fa||0x1f4;return function(_0x3f2799){logger[_0xa77f('0x25')](_0x3f2799[_0xa77f('0x26')]);if(_0x3f2799[_0xa77f('0x27')]){delete _0x3f2799[_0xa77f('0x27')];}_0x10647e[_0xa77f('0x18')](_0xfa68fa)[_0xa77f('0x28')](_0x3f2799);};}exports[_0xa77f('0x29')]=function(_0x2fddfa,_0x1bc216){var _0x4d700b={},_0x7cb818={},_0x4e5fdc={'count':0x0,'rows':[]};var _0x54a9cc=_[_0xa77f('0x2a')](db['VtigerConfiguration'][_0xa77f('0x2b')],function(_0x594073){return{'name':_0x594073[_0xa77f('0x2c')],'type':_0x594073[_0xa77f('0x2d')][_0xa77f('0x2e')]};});_0x7cb818[_0xa77f('0x2f')]=_[_0xa77f('0x2a')](_0x54a9cc,'name');_0x7cb818['query']=_[_0xa77f('0x30')](_0x2fddfa[_0xa77f('0x31')]);_0x7cb818[_0xa77f('0x32')]=_[_0xa77f('0x33')](_0x7cb818[_0xa77f('0x2f')],_0x7cb818[_0xa77f('0x31')]);_0x4d700b[_0xa77f('0x34')]=_[_0xa77f('0x33')](_0x7cb818[_0xa77f('0x2f')],qs[_0xa77f('0x35')](_0x2fddfa[_0xa77f('0x31')][_0xa77f('0x35')]));_0x4d700b[_0xa77f('0x34')]=_0x4d700b[_0xa77f('0x34')][_0xa77f('0x36')]?_0x4d700b[_0xa77f('0x34')]:_0x7cb818[_0xa77f('0x2f')];if(!_0x2fddfa['query'][_0xa77f('0x37')](_0xa77f('0x38'))){_0x4d700b[_0xa77f('0x39')]=qs[_0xa77f('0x39')](_0x2fddfa['query'][_0xa77f('0x39')]);_0x4d700b[_0xa77f('0x1c')]=qs[_0xa77f('0x1c')](_0x2fddfa['query'][_0xa77f('0x1c')]);}_0x4d700b[_0xa77f('0x3a')]=qs[_0xa77f('0x3b')](_0x2fddfa['query'][_0xa77f('0x3b')]);_0x4d700b[_0xa77f('0x3c')]=qs[_0xa77f('0x32')](_[_0xa77f('0x3d')](_0x2fddfa[_0xa77f('0x31')],_0x7cb818['filters']),_0x54a9cc);if(_0x2fddfa['query'][_0xa77f('0x3e')]){_0x4d700b[_0xa77f('0x3c')]=_[_0xa77f('0x3f')](_0x4d700b['where'],{'$or':_[_0xa77f('0x2a')](_0x54a9cc,function(_0x249d75){if(_0x249d75[_0xa77f('0x2d')]!=='VIRTUAL'){var _0xef9c47={};_0xef9c47[_0x249d75['name']]={'$like':'%'+_0x2fddfa[_0xa77f('0x31')][_0xa77f('0x3e')]+'%'};return _0xef9c47;}})});}_0x4d700b=_[_0xa77f('0x3f')]({},_0x4d700b,_0x2fddfa[_0xa77f('0x40')]);var _0x8b7ac6={'where':_0x4d700b[_0xa77f('0x3c')]};return db['VtigerConfiguration'][_0xa77f('0x1b')](_0x8b7ac6)['then'](function(_0x361275){_0x4e5fdc[_0xa77f('0x1b')]=_0x361275;if(_0x2fddfa[_0xa77f('0x31')][_0xa77f('0x41')]){_0x4d700b[_0xa77f('0x42')]=[{'all':!![]}];}return db[_0xa77f('0x43')][_0xa77f('0x44')](_0x4d700b);})[_0xa77f('0x22')](function(_0x5315fa){_0x4e5fdc[_0xa77f('0x45')]=_0x5315fa;return _0x4e5fdc;})[_0xa77f('0x22')](respondWithFilteredResult(_0x1bc216,_0x4d700b))[_0xa77f('0x46')](handleError(_0x1bc216,null));};exports[_0xa77f('0x47')]=function(_0x1c6128,_0x5cb61a){var _0x27f4a2={'raw':![],'where':{'id':_0x1c6128[_0xa77f('0x48')]['id']}},_0x258984={};_0x258984[_0xa77f('0x2f')]=_[_0xa77f('0x30')](db['VtigerConfiguration'][_0xa77f('0x2b')]);_0x258984[_0xa77f('0x31')]=_[_0xa77f('0x30')](_0x1c6128[_0xa77f('0x31')]);_0x258984[_0xa77f('0x32')]=_['intersection'](_0x258984['model'],_0x258984[_0xa77f('0x31')]);_0x27f4a2['attributes']=_[_0xa77f('0x33')](_0x258984[_0xa77f('0x2f')],qs['fields'](_0x1c6128['query'][_0xa77f('0x35')]));_0x27f4a2['attributes']=_0x27f4a2['attributes']['length']?_0x27f4a2['attributes']:_0x258984[_0xa77f('0x2f')];if(_0x1c6128[_0xa77f('0x31')][_0xa77f('0x41')]){_0x27f4a2[_0xa77f('0x42')]=[{'all':!![]}];}_0x27f4a2=_[_0xa77f('0x3f')]({},_0x27f4a2,_0x1c6128[_0xa77f('0x40')]);return db[_0xa77f('0x43')][_0xa77f('0x49')](_0x27f4a2)[_0xa77f('0x22')](handleEntityNotFound(_0x5cb61a,null))[_0xa77f('0x22')](respondWithResult(_0x5cb61a,null))[_0xa77f('0x46')](handleError(_0x5cb61a,null));};exports['create']=function(_0xacdb55,_0x1c9bdf){return db[_0xa77f('0x43')][_0xa77f('0x4a')](_0xacdb55[_0xa77f('0x4b')],{})[_0xa77f('0x22')](respondWithResult(_0x1c9bdf,0xc9))[_0xa77f('0x46')](handleError(_0x1c9bdf,null));};exports[_0xa77f('0x4c')]=function(_0x39d4c0,_0x43b7d4){if(_0x39d4c0[_0xa77f('0x4b')]['id']){delete _0x39d4c0[_0xa77f('0x4b')]['id'];}return db[_0xa77f('0x43')][_0xa77f('0x49')]({'where':{'id':_0x39d4c0['params']['id']}})[_0xa77f('0x22')](handleEntityNotFound(_0x43b7d4,null))[_0xa77f('0x22')](saveUpdates(_0x39d4c0[_0xa77f('0x4b')],null))[_0xa77f('0x22')](respondWithResult(_0x43b7d4,null))['catch'](handleError(_0x43b7d4,null));};exports[_0xa77f('0x23')]=function(_0x5c96b5,_0x49a762){return db[_0xa77f('0x43')][_0xa77f('0x49')]({'where':{'id':_0x5c96b5[_0xa77f('0x48')]['id']}})[_0xa77f('0x22')](handleEntityNotFound(_0x49a762,null))[_0xa77f('0x22')](removeEntity(_0x49a762,null))[_0xa77f('0x46')](handleError(_0x49a762,null));};exports[_0xa77f('0x4d')]=function(_0x195a4d,_0x273a55,_0x21d44e){var _0x2ae55b={};var _0x5b2f81={};var _0x5341d4;var _0x4971d8;return db[_0xa77f('0x43')]['findOne']({'where':{'id':_0x195a4d[_0xa77f('0x48')]['id']}})[_0xa77f('0x22')](handleEntityNotFound(_0x273a55,null))[_0xa77f('0x22')](function(_0x471d27){if(_0x471d27){_0x5341d4=_0x471d27;_0x5b2f81['model']=_[_0xa77f('0x30')](db[_0xa77f('0x4e')][_0xa77f('0x2b')]);_0x5b2f81[_0xa77f('0x31')]=_[_0xa77f('0x30')](_0x195a4d[_0xa77f('0x31')]);_0x5b2f81[_0xa77f('0x32')]=_[_0xa77f('0x33')](_0x5b2f81[_0xa77f('0x2f')],_0x5b2f81['query']);_0x2ae55b['attributes']=_['intersection'](_0x5b2f81['model'],qs[_0xa77f('0x35')](_0x195a4d[_0xa77f('0x31')][_0xa77f('0x35')]));_0x2ae55b[_0xa77f('0x34')]=_0x2ae55b[_0xa77f('0x34')][_0xa77f('0x36')]?_0x2ae55b['attributes']:_0x5b2f81['model'];_0x2ae55b['order']=qs[_0xa77f('0x3b')](_0x195a4d[_0xa77f('0x31')][_0xa77f('0x3b')]);_0x2ae55b['where']=qs[_0xa77f('0x32')](_['pick'](_0x195a4d[_0xa77f('0x31')],_0x5b2f81[_0xa77f('0x32')]));if(_0x195a4d[_0xa77f('0x31')][_0xa77f('0x3e')]){_0x2ae55b['where']=_['merge'](_0x2ae55b['where'],{'$or':_[_0xa77f('0x2a')](_0x2ae55b[_0xa77f('0x34')],function(_0x2e7b9e){var _0x2c8349={};_0x2c8349[_0x2e7b9e]={'$like':'%'+_0x195a4d[_0xa77f('0x31')][_0xa77f('0x3e')]+'%'};return _0x2c8349;})});}_0x2ae55b=_[_0xa77f('0x3f')]({},_0x2ae55b,_0x195a4d[_0xa77f('0x40')]);return _0x5341d4[_0xa77f('0x4d')](_0x2ae55b);}})[_0xa77f('0x22')](function(_0x5d11ac){if(_0x5d11ac){_0x4971d8=_0x5d11ac[_0xa77f('0x36')];if(!_0x195a4d[_0xa77f('0x31')][_0xa77f('0x37')]('nolimit')){_0x2ae55b[_0xa77f('0x39')]=qs['limit'](_0x195a4d[_0xa77f('0x31')][_0xa77f('0x39')]);_0x2ae55b['offset']=qs[_0xa77f('0x1c')](_0x195a4d[_0xa77f('0x31')][_0xa77f('0x1c')]);}return _0x5341d4[_0xa77f('0x4d')](_0x2ae55b);}})[_0xa77f('0x22')](function(_0x4340ad){if(_0x4340ad){return _0x4340ad?{'count':_0x4971d8,'rows':_0x4340ad}:null;}})[_0xa77f('0x22')](respondWithResult(_0x273a55,null))[_0xa77f('0x46')](handleError(_0x273a55,null));};exports[_0xa77f('0x4f')]=function(_0x5470f1,_0x4d50c7,_0x214049){var _0x243830={};var _0x337dca={};var _0x2ae1c0;var _0x56782d;return db['VtigerConfiguration']['findOne']({'where':{'id':_0x5470f1[_0xa77f('0x48')]['id']}})[_0xa77f('0x22')](handleEntityNotFound(_0x4d50c7,null))[_0xa77f('0x22')](function(_0x4dbd41){if(_0x4dbd41){_0x2ae1c0=_0x4dbd41;_0x337dca[_0xa77f('0x2f')]=_[_0xa77f('0x30')](db[_0xa77f('0x4e')]['rawAttributes']);_0x337dca[_0xa77f('0x31')]=_[_0xa77f('0x30')](_0x5470f1['query']);_0x337dca[_0xa77f('0x32')]=_['intersection'](_0x337dca['model'],_0x337dca['query']);_0x243830[_0xa77f('0x34')]=_[_0xa77f('0x33')](_0x337dca[_0xa77f('0x2f')],qs[_0xa77f('0x35')](_0x5470f1[_0xa77f('0x31')][_0xa77f('0x35')]));_0x243830[_0xa77f('0x34')]=_0x243830[_0xa77f('0x34')][_0xa77f('0x36')]?_0x243830['attributes']:_0x337dca[_0xa77f('0x2f')];_0x243830[_0xa77f('0x3a')]=qs[_0xa77f('0x3b')](_0x5470f1[_0xa77f('0x31')][_0xa77f('0x3b')]);_0x243830[_0xa77f('0x3c')]=qs[_0xa77f('0x32')](_['pick'](_0x5470f1['query'],_0x337dca['filters']));if(_0x5470f1['query']['filter']){_0x243830[_0xa77f('0x3c')]=_[_0xa77f('0x3f')](_0x243830['where'],{'$or':_[_0xa77f('0x2a')](_0x243830['attributes'],function(_0x405bbc){var _0xc080b5={};_0xc080b5[_0x405bbc]={'$like':'%'+_0x5470f1['query'][_0xa77f('0x3e')]+'%'};return _0xc080b5;})});}_0x243830=_[_0xa77f('0x3f')]({},_0x243830,_0x5470f1[_0xa77f('0x40')]);return _0x2ae1c0[_0xa77f('0x4f')](_0x243830);}})[_0xa77f('0x22')](function(_0x501862){if(_0x501862){_0x56782d=_0x501862[_0xa77f('0x36')];if(!_0x5470f1[_0xa77f('0x31')][_0xa77f('0x37')](_0xa77f('0x38'))){_0x243830[_0xa77f('0x39')]=qs['limit'](_0x5470f1['query']['limit']);_0x243830[_0xa77f('0x1c')]=qs[_0xa77f('0x1c')](_0x5470f1['query'][_0xa77f('0x1c')]);}return _0x2ae1c0[_0xa77f('0x4f')](_0x243830);}})['then'](function(_0x4c99e7){if(_0x4c99e7){return _0x4c99e7?{'count':_0x56782d,'rows':_0x4c99e7}:null;}})[_0xa77f('0x22')](respondWithResult(_0x4d50c7,null))['catch'](handleError(_0x4d50c7,null));};exports[_0xa77f('0x50')]=function(_0x2aaccb,_0x4159c5,_0xa3a7dc){var _0x1be327={};var _0x48e9b7={};var _0x1339a8;var _0x17e7a7;return db[_0xa77f('0x43')][_0xa77f('0x51')]({'where':{'id':_0x2aaccb[_0xa77f('0x48')]['id']}})[_0xa77f('0x22')](handleEntityNotFound(_0x4159c5,null))['then'](function(_0x22046e){if(_0x22046e){_0x1339a8=_0x22046e;_0x48e9b7[_0xa77f('0x2f')]=_[_0xa77f('0x30')](db['VtigerField'][_0xa77f('0x2b')]);_0x48e9b7[_0xa77f('0x31')]=_[_0xa77f('0x30')](_0x2aaccb[_0xa77f('0x31')]);_0x48e9b7[_0xa77f('0x32')]=_[_0xa77f('0x33')](_0x48e9b7[_0xa77f('0x2f')],_0x48e9b7[_0xa77f('0x31')]);_0x1be327[_0xa77f('0x34')]=_[_0xa77f('0x33')](_0x48e9b7['model'],qs['fields'](_0x2aaccb['query']['fields']));_0x1be327['attributes']=_0x1be327[_0xa77f('0x34')][_0xa77f('0x36')]?_0x1be327['attributes']:_0x48e9b7['model'];_0x1be327[_0xa77f('0x3a')]=qs[_0xa77f('0x3b')](_0x2aaccb[_0xa77f('0x31')][_0xa77f('0x3b')]);_0x1be327['where']=qs[_0xa77f('0x32')](_[_0xa77f('0x3d')](_0x2aaccb['query'],_0x48e9b7[_0xa77f('0x32')]));if(_0x2aaccb[_0xa77f('0x31')][_0xa77f('0x3e')]){_0x1be327['where']=_[_0xa77f('0x3f')](_0x1be327[_0xa77f('0x3c')],{'$or':_[_0xa77f('0x2a')](_0x1be327[_0xa77f('0x34')],function(_0x1cdedf){var _0x4a68fc={};_0x4a68fc[_0x1cdedf]={'$like':'%'+_0x2aaccb[_0xa77f('0x31')][_0xa77f('0x3e')]+'%'};return _0x4a68fc;})});}_0x1be327=_[_0xa77f('0x3f')]({},_0x1be327,_0x2aaccb[_0xa77f('0x40')]);return _0x1339a8[_0xa77f('0x50')](_0x1be327);}})[_0xa77f('0x22')](function(_0x38b104){if(_0x38b104){_0x17e7a7=_0x38b104[_0xa77f('0x36')];if(!_0x2aaccb[_0xa77f('0x31')][_0xa77f('0x37')](_0xa77f('0x38'))){_0x1be327[_0xa77f('0x39')]=qs[_0xa77f('0x39')](_0x2aaccb[_0xa77f('0x31')][_0xa77f('0x39')]);_0x1be327[_0xa77f('0x1c')]=qs['offset'](_0x2aaccb[_0xa77f('0x31')][_0xa77f('0x1c')]);}return _0x1339a8[_0xa77f('0x50')](_0x1be327);}})['then'](function(_0x4552eb){if(_0x4552eb){return _0x4552eb?{'count':_0x17e7a7,'rows':_0x4552eb}:null;}})[_0xa77f('0x22')](respondWithResult(_0x4159c5,null))[_0xa77f('0x46')](handleError(_0x4159c5,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xaf19=['exports','define','VtigerConfiguration','int_vtiger_configurations','util','../../config/logger','moment','bluebird','request-promise','path','rimraf','../../config/environment','./intVtigerConfiguration.attributes'];(function(_0x41495e,_0x51fbbb){var _0x382cc8=function(_0xfac982){while(--_0xfac982){_0x41495e['push'](_0x41495e['shift']());}};_0x382cc8(++_0x51fbbb);}(_0xaf19,0x1e5));var _0x9af1=function(_0x30face,_0x3e779e){_0x30face=_0x30face-0x0;var _0x2ebad0=_0xaf19[_0x30face];return _0x2ebad0;};'use strict';var _=require('lodash');var util=require(_0x9af1('0x0'));var logger=require(_0x9af1('0x1'))('api');var moment=require(_0x9af1('0x2'));var BPromise=require(_0x9af1('0x3'));var rp=require(_0x9af1('0x4'));var fs=require('fs');var path=require(_0x9af1('0x5'));var rimraf=require(_0x9af1('0x6'));var config=require(_0x9af1('0x7'));var attributes=require(_0x9af1('0x8'));module[_0x9af1('0x9')]=function(_0x4577ea,_0x5e67d2){return _0x4577ea[_0x9af1('0xa')](_0x9af1('0xb'),attributes,{'tableName':_0x9af1('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x16bc=['exports','int_vtiger_configurations','util','moment','bluebird','request-promise','../../config/environment','./intVtigerConfiguration.attributes'];(function(_0x6c993a,_0x5ea3ab){var _0x27f547=function(_0x22df20){while(--_0x22df20){_0x6c993a['push'](_0x6c993a['shift']());}};_0x27f547(++_0x5ea3ab);}(_0x16bc,0xba));var _0xc16b=function(_0x1f4ddf,_0x4ef2f8){_0x1f4ddf=_0x1f4ddf-0x0;var _0x169fea=_0x16bc[_0x1f4ddf];return _0x169fea;};'use strict';var _=require('lodash');var util=require(_0xc16b('0x0'));var logger=require('../../config/logger')('api');var moment=require(_0xc16b('0x1'));var BPromise=require(_0xc16b('0x2'));var rp=require(_0xc16b('0x3'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0xc16b('0x4'));var attributes=require(_0xc16b('0x5'));module[_0xc16b('0x6')]=function(_0x48efa5,_0x18dc23){return _0x48efa5['define']('VtigerConfiguration',attributes,{'tableName':_0xc16b('0x7'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6e7a=['moment','bluebird','../../mysqldb','../../config/utils','rpc','jayson/promise','client','http','then','info','VtigerConfiguration,\x20%s,\x20%s','debug','VtigerConfiguration,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','lodash','util'];(function(_0x177704,_0xf2c51a){var _0x1cc175=function(_0x141c62){while(--_0x141c62){_0x177704['push'](_0x177704['shift']());}};_0x1cc175(++_0xf2c51a);}(_0x6e7a,0xda));var _0xa6e7=function(_0x247aab,_0x6d308){_0x247aab=_0x247aab-0x0;var _0x198cd0=_0x6e7a[_0x247aab];return _0x198cd0;};'use strict';var _=require(_0xa6e7('0x0'));var util=require(_0xa6e7('0x1'));var moment=require(_0xa6e7('0x2'));var BPromise=require(_0xa6e7('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0xa6e7('0x4'))['db'];var utils=require(_0xa6e7('0x5'));var logger=require('../../config/logger')(_0xa6e7('0x6'));var config=require('../../config/environment');var jayson=require(_0xa6e7('0x7'));var client=jayson[_0xa6e7('0x8')][_0xa6e7('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x58a45b,_0x232944,_0x1328f5){return new BPromise(function(_0x24a8f5,_0x3b9160){return client['request'](_0x58a45b,_0x1328f5)[_0xa6e7('0xa')](function(_0x299150){logger[_0xa6e7('0xb')](_0xa6e7('0xc'),_0x232944,'request\x20sent');logger[_0xa6e7('0xd')](_0xa6e7('0xe'),_0x232944,_0xa6e7('0xf'),JSON[_0xa6e7('0x10')](_0x299150));if(_0x299150['error']){if(_0x299150[_0xa6e7('0x11')][_0xa6e7('0x12')]===0x1f4){logger[_0xa6e7('0x11')](_0xa6e7('0xc'),_0x232944,_0x299150[_0xa6e7('0x11')]['message']);return _0x3b9160(_0x299150[_0xa6e7('0x11')][_0xa6e7('0x13')]);}logger['error'](_0xa6e7('0xc'),_0x232944,_0x299150[_0xa6e7('0x11')][_0xa6e7('0x13')]);return _0x24a8f5(_0x299150[_0xa6e7('0x11')][_0xa6e7('0x13')]);}else{logger[_0xa6e7('0xb')](_0xa6e7('0xc'),_0x232944,_0xa6e7('0xf'));_0x24a8f5(_0x299150['result'][_0xa6e7('0x13')]);}})['catch'](function(_0x5e74c2){logger[_0xa6e7('0x11')](_0xa6e7('0xc'),_0x232944,_0x5e74c2);_0x3b9160(_0x5e74c2);});});}
\ No newline at end of file
+var _0xcef4=['error','VtigerConfiguration,\x20%s,\x20%s','message','result','catch','util','bluebird','randomstring','ioredis','../../mysqldb','rpc','../../config/environment','jayson/promise','http','request','info','debug','stringify'];(function(_0x1a1838,_0x163e0a){var _0x21b091=function(_0x45ea7b){while(--_0x45ea7b){_0x1a1838['push'](_0x1a1838['shift']());}};_0x21b091(++_0x163e0a);}(_0xcef4,0x16d));var _0x4cef=function(_0x286bfb,_0x46ac3c){_0x286bfb=_0x286bfb-0x0;var _0x52b683=_0xcef4[_0x286bfb];return _0x52b683;};'use strict';var _=require('lodash');var util=require(_0x4cef('0x0'));var moment=require('moment');var BPromise=require(_0x4cef('0x1'));var rs=require(_0x4cef('0x2'));var fs=require('fs');var Redis=require(_0x4cef('0x3'));var db=require(_0x4cef('0x4'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0x4cef('0x5'));var config=require(_0x4cef('0x6'));var jayson=require(_0x4cef('0x7'));var client=jayson['client'][_0x4cef('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x584cf2,_0x2ea77f,_0x5ca9d9){return new BPromise(function(_0x47c2b3,_0x2c414a){return client[_0x4cef('0x9')](_0x584cf2,_0x5ca9d9)['then'](function(_0x31e5e3){logger[_0x4cef('0xa')]('VtigerConfiguration,\x20%s,\x20%s',_0x2ea77f,'request\x20sent');logger[_0x4cef('0xb')]('VtigerConfiguration,\x20%s,\x20%s,\x20%s',_0x2ea77f,'request\x20sent',JSON[_0x4cef('0xc')](_0x31e5e3));if(_0x31e5e3[_0x4cef('0xd')]){if(_0x31e5e3[_0x4cef('0xd')]['code']===0x1f4){logger['error'](_0x4cef('0xe'),_0x2ea77f,_0x31e5e3[_0x4cef('0xd')][_0x4cef('0xf')]);return _0x2c414a(_0x31e5e3['error'][_0x4cef('0xf')]);}logger[_0x4cef('0xd')](_0x4cef('0xe'),_0x2ea77f,_0x31e5e3[_0x4cef('0xd')][_0x4cef('0xf')]);return _0x47c2b3(_0x31e5e3[_0x4cef('0xd')][_0x4cef('0xf')]);}else{logger[_0x4cef('0xa')](_0x4cef('0xe'),_0x2ea77f,'request\x20sent');_0x47c2b3(_0x31e5e3[_0x4cef('0x10')][_0x4cef('0xf')]);}})[_0x4cef('0x11')](function(_0x4fdbc2){logger[_0x4cef('0xd')](_0x4cef('0xe'),_0x2ea77f,_0x4fdbc2);_0x2c414a(_0x4fdbc2);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcd02=['post','put','delete','/:id','destroy','exports','multer','util','connect-timeout','express','fs-extra','../../config/environment','./intVtigerField.controller','get','isAuthenticated','index','show'];(function(_0xb8cf47,_0x24f650){var _0x5d4cc8=function(_0x471874){while(--_0x471874){_0xb8cf47['push'](_0xb8cf47['shift']());}};_0x5d4cc8(++_0x24f650);}(_0xcd02,0xb0));var _0x2cd0=function(_0x50fffd,_0x507880){_0x50fffd=_0x50fffd-0x0;var _0x1c06e1=_0xcd02[_0x50fffd];return _0x1c06e1;};'use strict';var multer=require(_0x2cd0('0x0'));var util=require(_0x2cd0('0x1'));var path=require('path');var timeout=require(_0x2cd0('0x2'));var express=require(_0x2cd0('0x3'));var router=express['Router']();var fs_extra=require(_0x2cd0('0x4'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x2cd0('0x5'));var controller=require(_0x2cd0('0x6'));router[_0x2cd0('0x7')]('/',auth[_0x2cd0('0x8')](),controller[_0x2cd0('0x9')]);router[_0x2cd0('0x7')]('/:id',auth['isAuthenticated'](),controller[_0x2cd0('0xa')]);router[_0x2cd0('0xb')]('/',auth[_0x2cd0('0x8')](),controller['create']);router[_0x2cd0('0xc')]('/:id',auth[_0x2cd0('0x8')](),controller['update']);router[_0x2cd0('0xd')](_0x2cd0('0xe'),auth[_0x2cd0('0x8')](),controller[_0x2cd0('0xf')]);module[_0x2cd0('0x10')]=router;
\ No newline at end of file
+var _0x9363=['express','../../components/auth/service','../../components/interaction/service','./intVtigerField.controller','get','isAuthenticated','index','/:id','show','post','create','put','delete','destroy','util','path','connect-timeout'];(function(_0x12457c,_0x1d02c1){var _0x2b442d=function(_0x2c35c5){while(--_0x2c35c5){_0x12457c['push'](_0x12457c['shift']());}};_0x2b442d(++_0x1d02c1);}(_0x9363,0x11e));var _0x3936=function(_0x39d544,_0x35c14f){_0x39d544=_0x39d544-0x0;var _0x5a5ff2=_0x9363[_0x39d544];return _0x5a5ff2;};'use strict';var multer=require('multer');var util=require(_0x3936('0x0'));var path=require(_0x3936('0x1'));var timeout=require(_0x3936('0x2'));var express=require(_0x3936('0x3'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0x3936('0x4'));var interaction=require(_0x3936('0x5'));var config=require('../../config/environment');var controller=require(_0x3936('0x6'));router[_0x3936('0x7')]('/',auth[_0x3936('0x8')](),controller[_0x3936('0x9')]);router['get'](_0x3936('0xa'),auth[_0x3936('0x8')](),controller[_0x3936('0xb')]);router[_0x3936('0xc')]('/',auth['isAuthenticated'](),controller[_0x3936('0xd')]);router[_0x3936('0xe')](_0x3936('0xa'),auth[_0x3936('0x8')](),controller['update']);router[_0x3936('0xf')](_0x3936('0xa'),auth[_0x3936('0x8')](),controller[_0x3936('0x10')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb934=['sequelize','exports','ENUM','variable','customVariable','keyValue','picklist','string','STRING'];(function(_0x35ff6a,_0x3fc0d5){var _0x5bb17f=function(_0x1ec5cb){while(--_0x1ec5cb){_0x35ff6a['push'](_0x35ff6a['shift']());}};_0x5bb17f(++_0x3fc0d5);}(_0xb934,0x1b0));var _0x4b93=function(_0x325f8e,_0x5f3cc5){_0x325f8e=_0x325f8e-0x0;var _0x467df2=_0xb934[_0x325f8e];return _0x467df2;};'use strict';var Sequelize=require(_0x4b93('0x0'));module[_0x4b93('0x1')]={'type':{'type':Sequelize[_0x4b93('0x2')]('string',_0x4b93('0x3'),_0x4b93('0x4'),_0x4b93('0x5'),_0x4b93('0x6')),'defaultValue':_0x4b93('0x7')},'content':{'type':Sequelize[_0x4b93('0x8')]},'key':{'type':Sequelize[_0x4b93('0x8')]},'keyType':{'type':Sequelize['ENUM'](_0x4b93('0x7'),_0x4b93('0x3'),_0x4b93('0x4'))},'keyContent':{'type':Sequelize['STRING']},'idField':{'type':Sequelize[_0x4b93('0x8')]},'nameField':{'type':Sequelize[_0x4b93('0x8')]},'customField':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'variableName':{'type':Sequelize[_0x4b93('0x8')]}};
\ No newline at end of file
+var _0xaa34=['ENUM','sequelize','exports','variable','keyValue','picklist','string','STRING'];(function(_0x1838e3,_0x511e9d){var _0x577713=function(_0x2096fd){while(--_0x2096fd){_0x1838e3['push'](_0x1838e3['shift']());}};_0x577713(++_0x511e9d);}(_0xaa34,0x199));var _0x4aa3=function(_0x150398,_0x3f5ed4){_0x150398=_0x150398-0x0;var _0x309fd5=_0xaa34[_0x150398];return _0x309fd5;};'use strict';var Sequelize=require(_0x4aa3('0x0'));module[_0x4aa3('0x1')]={'type':{'type':Sequelize['ENUM']('string',_0x4aa3('0x2'),'customVariable',_0x4aa3('0x3'),_0x4aa3('0x4')),'defaultValue':_0x4aa3('0x5')},'content':{'type':Sequelize[_0x4aa3('0x6')]},'key':{'type':Sequelize[_0x4aa3('0x6')]},'keyType':{'type':Sequelize[_0x4aa3('0x7')]('string',_0x4aa3('0x2'),'customVariable')},'keyContent':{'type':Sequelize[_0x4aa3('0x6')]},'idField':{'type':Sequelize[_0x4aa3('0x6')]},'nameField':{'type':Sequelize[_0x4aa3('0x6')]},'customField':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'variableName':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0093=['fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','apply','reject','save','update','then','error','stack','name','send','rawAttributes','fieldName','key','query','keys','filters','intersection','model','fields','attributes','length','order','sort','where','filter','map','type','VIRTUAL','options','VtigerField','includeAll','include','findAll','rows','catch','params','merge','find','create','body','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','ejs'];(function(_0x55017f,_0x45d9ba){var _0x27090b=function(_0x326471){while(--_0x326471){_0x55017f['push'](_0x55017f['shift']());}};_0x27090b(++_0x45d9ba);}(_0x0093,0x85));var _0x3009=function(_0x48bac4,_0x1ee8d1){_0x48bac4=_0x48bac4-0x0;var _0x112ad5=_0x0093[_0x48bac4];return _0x112ad5;};'use strict';var emlformat=require(_0x3009('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x3009('0x1'));var jsonpatch=require(_0x3009('0x2'));var rp=require(_0x3009('0x3'));var moment=require(_0x3009('0x4'));var BPromise=require(_0x3009('0x5'));var Mustache=require('mustache');var util=require(_0x3009('0x6'));var path=require(_0x3009('0x7'));var sox=require(_0x3009('0x8'));var csv=require(_0x3009('0x9'));var ejs=require(_0x3009('0xa'));var fs=require('fs');var fs_extra=require(_0x3009('0xb'));var _=require(_0x3009('0xc'));var squel=require(_0x3009('0xd'));var crypto=require(_0x3009('0xe'));var jsforce=require('jsforce');var deskjs=require(_0x3009('0xf'));var toCsv=require(_0x3009('0x9'));var querystring=require(_0x3009('0x10'));var Papa=require(_0x3009('0x11'));var Redis=require(_0x3009('0x12'));var authService=require(_0x3009('0x13'));var qs=require('../../components/parsers/qs');var as=require(_0x3009('0x14'));var hardwareService=require(_0x3009('0x15'));var logger=require('../../config/logger')('api');var utils=require(_0x3009('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0x3009('0x17'));var db=require(_0x3009('0x18'))['db'];function respondWithStatusCode(_0x3081cb,_0x589be1){_0x589be1=_0x589be1||0xcc;return function(_0x39e1c5){if(_0x39e1c5){return _0x3081cb[_0x3009('0x19')](_0x589be1);}return _0x3081cb[_0x3009('0x1a')](_0x589be1)[_0x3009('0x1b')]();};}function respondWithResult(_0x434d1e,_0xb08077){_0xb08077=_0xb08077||0xc8;return function(_0x34f1e3){if(_0x34f1e3){return _0x434d1e['status'](_0xb08077)[_0x3009('0x1c')](_0x34f1e3);}};}function respondWithFilteredResult(_0x738643,_0x4debf){return function(_0x22162d){if(_0x22162d){var _0x114aaa=typeof _0x4debf[_0x3009('0x1d')]===_0x3009('0x1e')&&typeof _0x4debf[_0x3009('0x1f')]===_0x3009('0x1e');var _0x152fbc=_0x22162d[_0x3009('0x20')];var _0x2aaafd=_0x114aaa?0x0:_0x4debf['offset'];var _0x3f7c97=_0x114aaa?_0x22162d[_0x3009('0x20')]:_0x4debf[_0x3009('0x1d')]+_0x4debf['limit'];var _0x554507;if(_0x3f7c97>=_0x152fbc){_0x3f7c97=_0x152fbc;_0x554507=0xc8;}else{_0x554507=0xce;}_0x738643[_0x3009('0x1a')](_0x554507);return _0x738643['set']('Content-Range',_0x2aaafd+'-'+_0x3f7c97+'/'+_0x152fbc)[_0x3009('0x1c')](_0x22162d);}return null;};}function patchUpdates(_0x4ea326){return function(_0x5c1893){try{jsonpatch[_0x3009('0x21')](_0x5c1893,_0x4ea326,!![]);}catch(_0x3979b9){return BPromise[_0x3009('0x22')](_0x3979b9);}return _0x5c1893[_0x3009('0x23')]();};}function saveUpdates(_0x54f1f3,_0x34d4b2){return function(_0x3e13fb){if(_0x3e13fb){return _0x3e13fb[_0x3009('0x24')](_0x54f1f3)['then'](function(_0x49d839){return _0x49d839;});}return null;};}function removeEntity(_0x128692,_0x3c15c4){return function(_0x5834f3){if(_0x5834f3){return _0x5834f3['destroy']()[_0x3009('0x25')](function(){_0x128692[_0x3009('0x1a')](0xcc)[_0x3009('0x1b')]();});}};}function handleEntityNotFound(_0x41c0be,_0x598e62){return function(_0x1468d6){if(!_0x1468d6){_0x41c0be[_0x3009('0x19')](0x194);}return _0x1468d6;};}function handleError(_0x1121eb,_0x2b3e23){_0x2b3e23=_0x2b3e23||0x1f4;return function(_0x5b007d){logger[_0x3009('0x26')](_0x5b007d[_0x3009('0x27')]);if(_0x5b007d[_0x3009('0x28')]){delete _0x5b007d[_0x3009('0x28')];}_0x1121eb[_0x3009('0x1a')](_0x2b3e23)[_0x3009('0x29')](_0x5b007d);};}exports['index']=function(_0x30e90f,_0x38222a){var _0x227f3c={},_0x4508d0={},_0x3ca94a={'count':0x0,'rows':[]};var _0xde2ca5=_['map'](db['VtigerField'][_0x3009('0x2a')],function(_0x39dc62){return{'name':_0x39dc62[_0x3009('0x2b')],'type':_0x39dc62['type'][_0x3009('0x2c')]};});_0x4508d0['model']=_['map'](_0xde2ca5,_0x3009('0x28'));_0x4508d0[_0x3009('0x2d')]=_[_0x3009('0x2e')](_0x30e90f[_0x3009('0x2d')]);_0x4508d0[_0x3009('0x2f')]=_['intersection'](_0x4508d0['model'],_0x4508d0[_0x3009('0x2d')]);_0x227f3c['attributes']=_[_0x3009('0x30')](_0x4508d0[_0x3009('0x31')],qs[_0x3009('0x32')](_0x30e90f[_0x3009('0x2d')][_0x3009('0x32')]));_0x227f3c[_0x3009('0x33')]=_0x227f3c[_0x3009('0x33')][_0x3009('0x34')]?_0x227f3c['attributes']:_0x4508d0[_0x3009('0x31')];if(!_0x30e90f[_0x3009('0x2d')]['hasOwnProperty']('nolimit')){_0x227f3c[_0x3009('0x1f')]=qs[_0x3009('0x1f')](_0x30e90f['query'][_0x3009('0x1f')]);_0x227f3c[_0x3009('0x1d')]=qs['offset'](_0x30e90f['query'][_0x3009('0x1d')]);}_0x227f3c[_0x3009('0x35')]=qs[_0x3009('0x36')](_0x30e90f['query'][_0x3009('0x36')]);_0x227f3c[_0x3009('0x37')]=qs[_0x3009('0x2f')](_['pick'](_0x30e90f['query'],_0x4508d0[_0x3009('0x2f')]),_0xde2ca5);if(_0x30e90f[_0x3009('0x2d')][_0x3009('0x38')]){_0x227f3c[_0x3009('0x37')]=_['merge'](_0x227f3c[_0x3009('0x37')],{'$or':_[_0x3009('0x39')](_0xde2ca5,function(_0x5d2cef){if(_0x5d2cef[_0x3009('0x3a')]!==_0x3009('0x3b')){var _0x33ec86={};_0x33ec86[_0x5d2cef[_0x3009('0x28')]]={'$like':'%'+_0x30e90f[_0x3009('0x2d')][_0x3009('0x38')]+'%'};return _0x33ec86;}})});}_0x227f3c=_['merge']({},_0x227f3c,_0x30e90f[_0x3009('0x3c')]);var _0x2bc5ca={'where':_0x227f3c['where']};return db[_0x3009('0x3d')][_0x3009('0x20')](_0x2bc5ca)['then'](function(_0x1fbaa1){_0x3ca94a[_0x3009('0x20')]=_0x1fbaa1;if(_0x30e90f[_0x3009('0x2d')][_0x3009('0x3e')]){_0x227f3c[_0x3009('0x3f')]=[{'all':!![]}];}return db[_0x3009('0x3d')][_0x3009('0x40')](_0x227f3c);})[_0x3009('0x25')](function(_0x5b2070){_0x3ca94a[_0x3009('0x41')]=_0x5b2070;return _0x3ca94a;})[_0x3009('0x25')](respondWithFilteredResult(_0x38222a,_0x227f3c))[_0x3009('0x42')](handleError(_0x38222a,null));};exports['show']=function(_0x3a3b27,_0x5afa03){var _0x4d0f66={'raw':!![],'where':{'id':_0x3a3b27[_0x3009('0x43')]['id']}},_0x53090e={};_0x53090e[_0x3009('0x31')]=_[_0x3009('0x2e')](db[_0x3009('0x3d')][_0x3009('0x2a')]);_0x53090e[_0x3009('0x2d')]=_['keys'](_0x3a3b27[_0x3009('0x2d')]);_0x53090e[_0x3009('0x2f')]=_[_0x3009('0x30')](_0x53090e[_0x3009('0x31')],_0x53090e[_0x3009('0x2d')]);_0x4d0f66['attributes']=_[_0x3009('0x30')](_0x53090e['model'],qs['fields'](_0x3a3b27[_0x3009('0x2d')][_0x3009('0x32')]));_0x4d0f66['attributes']=_0x4d0f66[_0x3009('0x33')][_0x3009('0x34')]?_0x4d0f66[_0x3009('0x33')]:_0x53090e['model'];if(_0x3a3b27[_0x3009('0x2d')][_0x3009('0x3e')]){_0x4d0f66[_0x3009('0x3f')]=[{'all':!![]}];}_0x4d0f66=_[_0x3009('0x44')]({},_0x4d0f66,_0x3a3b27[_0x3009('0x3c')]);return db['VtigerField'][_0x3009('0x45')](_0x4d0f66)[_0x3009('0x25')](handleEntityNotFound(_0x5afa03,null))['then'](respondWithResult(_0x5afa03,null))['catch'](handleError(_0x5afa03,null));};exports['create']=function(_0x394ac0,_0xebd0b){return db[_0x3009('0x3d')][_0x3009('0x46')](_0x394ac0[_0x3009('0x47')],{})['then'](respondWithResult(_0xebd0b,0xc9))[_0x3009('0x42')](handleError(_0xebd0b,null));};exports[_0x3009('0x24')]=function(_0x163e3f,_0x305f1b){if(_0x163e3f[_0x3009('0x47')]['id']){delete _0x163e3f[_0x3009('0x47')]['id'];}return db['VtigerField'][_0x3009('0x45')]({'where':{'id':_0x163e3f['params']['id']}})[_0x3009('0x25')](handleEntityNotFound(_0x305f1b,null))[_0x3009('0x25')](saveUpdates(_0x163e3f['body'],null))[_0x3009('0x25')](respondWithResult(_0x305f1b,null))[_0x3009('0x42')](handleError(_0x305f1b,null));};exports['destroy']=function(_0x1bb49a,_0xd4ab){return db[_0x3009('0x3d')]['find']({'where':{'id':_0x1bb49a[_0x3009('0x43')]['id']}})[_0x3009('0x25')](handleEntityNotFound(_0xd4ab,null))['then'](removeEntity(_0xd4ab,null))[_0x3009('0x42')](handleError(_0xd4ab,null));};
\ No newline at end of file
+var _0x2ca2=['options','includeAll','include','findAll','rows','catch','params','find','create','body','rimraf','fast-json-patch','request-promise','moment','bluebird','util','sox','to-csv','ejs','fs-extra','lodash','squel','desk.js','papaparse','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','limit','undefined','count','Content-Range','apply','update','destroy','then','error','stack','name','send','map','VtigerField','rawAttributes','fieldName','type','query','keys','filters','intersection','model','attributes','fields','hasOwnProperty','nolimit','order','sort','filter','where','VIRTUAL','merge'];(function(_0x3c3362,_0x3f05ce){var _0x299148=function(_0x2b1452){while(--_0x2b1452){_0x3c3362['push'](_0x3c3362['shift']());}};_0x299148(++_0x3f05ce);}(_0x2ca2,0x1d8));var _0x22ca=function(_0x49e3e0,_0x3b00bb){_0x49e3e0=_0x49e3e0-0x0;var _0x5f57dc=_0x2ca2[_0x49e3e0];return _0x5f57dc;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x22ca('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x22ca('0x1'));var rp=require(_0x22ca('0x2'));var moment=require(_0x22ca('0x3'));var BPromise=require(_0x22ca('0x4'));var Mustache=require('mustache');var util=require(_0x22ca('0x5'));var path=require('path');var sox=require(_0x22ca('0x6'));var csv=require(_0x22ca('0x7'));var ejs=require(_0x22ca('0x8'));var fs=require('fs');var fs_extra=require(_0x22ca('0x9'));var _=require(_0x22ca('0xa'));var squel=require(_0x22ca('0xb'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x22ca('0xc'));var toCsv=require(_0x22ca('0x7'));var querystring=require('querystring');var Papa=require(_0x22ca('0xd'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x22ca('0xe'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x22ca('0xf'))('api');var utils=require(_0x22ca('0x10'));var config=require(_0x22ca('0x11'));var licenseUtil=require('../../config/license/util');var db=require(_0x22ca('0x12'))['db'];function respondWithStatusCode(_0x5384b1,_0x3e25d9){_0x3e25d9=_0x3e25d9||0xcc;return function(_0x55edf3){if(_0x55edf3){return _0x5384b1[_0x22ca('0x13')](_0x3e25d9);}return _0x5384b1[_0x22ca('0x14')](_0x3e25d9)[_0x22ca('0x15')]();};}function respondWithResult(_0x1d6908,_0x494d19){_0x494d19=_0x494d19||0xc8;return function(_0x346075){if(_0x346075){return _0x1d6908[_0x22ca('0x14')](_0x494d19)[_0x22ca('0x16')](_0x346075);}};}function respondWithFilteredResult(_0x3fe2e8,_0x2d9c27){return function(_0x4cdfd7){if(_0x4cdfd7){var _0x10c81c=typeof _0x2d9c27[_0x22ca('0x17')]==='undefined'&&typeof _0x2d9c27[_0x22ca('0x18')]===_0x22ca('0x19');var _0x14de33=_0x4cdfd7[_0x22ca('0x1a')];var _0x48bf4f=_0x10c81c?0x0:_0x2d9c27[_0x22ca('0x17')];var _0x2be2c7=_0x10c81c?_0x4cdfd7[_0x22ca('0x1a')]:_0x2d9c27[_0x22ca('0x17')]+_0x2d9c27[_0x22ca('0x18')];var _0x52a85e;if(_0x2be2c7>=_0x14de33){_0x2be2c7=_0x14de33;_0x52a85e=0xc8;}else{_0x52a85e=0xce;}_0x3fe2e8['status'](_0x52a85e);return _0x3fe2e8['set'](_0x22ca('0x1b'),_0x48bf4f+'-'+_0x2be2c7+'/'+_0x14de33)[_0x22ca('0x16')](_0x4cdfd7);}return null;};}function patchUpdates(_0x430a8e){return function(_0x28a6ea){try{jsonpatch[_0x22ca('0x1c')](_0x28a6ea,_0x430a8e,!![]);}catch(_0x138d93){return BPromise['reject'](_0x138d93);}return _0x28a6ea['save']();};}function saveUpdates(_0x30f232,_0x32199a){return function(_0x15ac9f){if(_0x15ac9f){return _0x15ac9f[_0x22ca('0x1d')](_0x30f232)['then'](function(_0x32daf7){return _0x32daf7;});}return null;};}function removeEntity(_0x1044e4,_0x5a8662){return function(_0xd3905a){if(_0xd3905a){return _0xd3905a[_0x22ca('0x1e')]()[_0x22ca('0x1f')](function(){_0x1044e4[_0x22ca('0x14')](0xcc)[_0x22ca('0x15')]();});}};}function handleEntityNotFound(_0x594a0b,_0x3c32e0){return function(_0x46e7f4){if(!_0x46e7f4){_0x594a0b[_0x22ca('0x13')](0x194);}return _0x46e7f4;};}function handleError(_0x587291,_0x31367e){_0x31367e=_0x31367e||0x1f4;return function(_0x2ec1c1){logger[_0x22ca('0x20')](_0x2ec1c1[_0x22ca('0x21')]);if(_0x2ec1c1[_0x22ca('0x22')]){delete _0x2ec1c1[_0x22ca('0x22')];}_0x587291['status'](_0x31367e)[_0x22ca('0x23')](_0x2ec1c1);};}exports['index']=function(_0x27c233,_0x4cbfa3){var _0x2837c2={},_0x34f3d8={},_0x28f9da={'count':0x0,'rows':[]};var _0xa0450c=_[_0x22ca('0x24')](db[_0x22ca('0x25')][_0x22ca('0x26')],function(_0x4f68cc){return{'name':_0x4f68cc[_0x22ca('0x27')],'type':_0x4f68cc[_0x22ca('0x28')]['key']};});_0x34f3d8['model']=_[_0x22ca('0x24')](_0xa0450c,_0x22ca('0x22'));_0x34f3d8[_0x22ca('0x29')]=_[_0x22ca('0x2a')](_0x27c233[_0x22ca('0x29')]);_0x34f3d8[_0x22ca('0x2b')]=_[_0x22ca('0x2c')](_0x34f3d8[_0x22ca('0x2d')],_0x34f3d8[_0x22ca('0x29')]);_0x2837c2[_0x22ca('0x2e')]=_[_0x22ca('0x2c')](_0x34f3d8[_0x22ca('0x2d')],qs[_0x22ca('0x2f')](_0x27c233['query'][_0x22ca('0x2f')]));_0x2837c2['attributes']=_0x2837c2['attributes']['length']?_0x2837c2['attributes']:_0x34f3d8[_0x22ca('0x2d')];if(!_0x27c233[_0x22ca('0x29')][_0x22ca('0x30')](_0x22ca('0x31'))){_0x2837c2['limit']=qs[_0x22ca('0x18')](_0x27c233[_0x22ca('0x29')][_0x22ca('0x18')]);_0x2837c2[_0x22ca('0x17')]=qs[_0x22ca('0x17')](_0x27c233[_0x22ca('0x29')][_0x22ca('0x17')]);}_0x2837c2[_0x22ca('0x32')]=qs[_0x22ca('0x33')](_0x27c233['query'][_0x22ca('0x33')]);_0x2837c2['where']=qs[_0x22ca('0x2b')](_['pick'](_0x27c233[_0x22ca('0x29')],_0x34f3d8[_0x22ca('0x2b')]),_0xa0450c);if(_0x27c233[_0x22ca('0x29')][_0x22ca('0x34')]){_0x2837c2[_0x22ca('0x35')]=_['merge'](_0x2837c2['where'],{'$or':_[_0x22ca('0x24')](_0xa0450c,function(_0x32b2e8){if(_0x32b2e8[_0x22ca('0x28')]!==_0x22ca('0x36')){var _0x350339={};_0x350339[_0x32b2e8['name']]={'$like':'%'+_0x27c233['query'][_0x22ca('0x34')]+'%'};return _0x350339;}})});}_0x2837c2=_[_0x22ca('0x37')]({},_0x2837c2,_0x27c233[_0x22ca('0x38')]);var _0x11ba3b={'where':_0x2837c2[_0x22ca('0x35')]};return db[_0x22ca('0x25')][_0x22ca('0x1a')](_0x11ba3b)['then'](function(_0x122419){_0x28f9da['count']=_0x122419;if(_0x27c233[_0x22ca('0x29')][_0x22ca('0x39')]){_0x2837c2[_0x22ca('0x3a')]=[{'all':!![]}];}return db[_0x22ca('0x25')][_0x22ca('0x3b')](_0x2837c2);})['then'](function(_0x21c933){_0x28f9da[_0x22ca('0x3c')]=_0x21c933;return _0x28f9da;})['then'](respondWithFilteredResult(_0x4cbfa3,_0x2837c2))[_0x22ca('0x3d')](handleError(_0x4cbfa3,null));};exports['show']=function(_0x210c60,_0x42979a){var _0x4dcbc0={'raw':!![],'where':{'id':_0x210c60[_0x22ca('0x3e')]['id']}},_0x447474={};_0x447474[_0x22ca('0x2d')]=_[_0x22ca('0x2a')](db[_0x22ca('0x25')][_0x22ca('0x26')]);_0x447474[_0x22ca('0x29')]=_[_0x22ca('0x2a')](_0x210c60[_0x22ca('0x29')]);_0x447474[_0x22ca('0x2b')]=_[_0x22ca('0x2c')](_0x447474[_0x22ca('0x2d')],_0x447474['query']);_0x4dcbc0[_0x22ca('0x2e')]=_['intersection'](_0x447474[_0x22ca('0x2d')],qs[_0x22ca('0x2f')](_0x210c60[_0x22ca('0x29')]['fields']));_0x4dcbc0[_0x22ca('0x2e')]=_0x4dcbc0[_0x22ca('0x2e')]['length']?_0x4dcbc0['attributes']:_0x447474[_0x22ca('0x2d')];if(_0x210c60[_0x22ca('0x29')]['includeAll']){_0x4dcbc0[_0x22ca('0x3a')]=[{'all':!![]}];}_0x4dcbc0=_[_0x22ca('0x37')]({},_0x4dcbc0,_0x210c60[_0x22ca('0x38')]);return db[_0x22ca('0x25')][_0x22ca('0x3f')](_0x4dcbc0)['then'](handleEntityNotFound(_0x42979a,null))[_0x22ca('0x1f')](respondWithResult(_0x42979a,null))[_0x22ca('0x3d')](handleError(_0x42979a,null));};exports[_0x22ca('0x40')]=function(_0x58c039,_0x211fe1){return db[_0x22ca('0x25')][_0x22ca('0x40')](_0x58c039['body'],{})[_0x22ca('0x1f')](respondWithResult(_0x211fe1,0xc9))[_0x22ca('0x3d')](handleError(_0x211fe1,null));};exports[_0x22ca('0x1d')]=function(_0x46b76c,_0x5c193c){if(_0x46b76c[_0x22ca('0x41')]['id']){delete _0x46b76c['body']['id'];}return db['VtigerField'][_0x22ca('0x3f')]({'where':{'id':_0x46b76c[_0x22ca('0x3e')]['id']}})[_0x22ca('0x1f')](handleEntityNotFound(_0x5c193c,null))[_0x22ca('0x1f')](saveUpdates(_0x46b76c[_0x22ca('0x41')],null))[_0x22ca('0x1f')](respondWithResult(_0x5c193c,null))[_0x22ca('0x3d')](handleError(_0x5c193c,null));};exports[_0x22ca('0x1e')]=function(_0x310080,_0x55ab60){return db[_0x22ca('0x25')][_0x22ca('0x3f')]({'where':{'id':_0x310080[_0x22ca('0x3e')]['id']}})[_0x22ca('0x1f')](handleEntityNotFound(_0x55ab60,null))[_0x22ca('0x1f')](removeEntity(_0x55ab60,null))[_0x22ca('0x3d')](handleError(_0x55ab60,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0f62=['FieldId','../../config/logger','api','bluebird','request-promise','path','rimraf','../../config/environment','./intVtigerField.attributes','define','int_vtiger_fields','vtiger_unique_index','idField'];(function(_0x465a0c,_0x19d4d5){var _0x1e202e=function(_0x27bd8a){while(--_0x27bd8a){_0x465a0c['push'](_0x465a0c['shift']());}};_0x1e202e(++_0x19d4d5);}(_0x0f62,0x112));var _0x20f6=function(_0x229522,_0x8ba349){_0x229522=_0x229522-0x0;var _0x27e326=_0x0f62[_0x229522];return _0x27e326;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x20f6('0x0'))(_0x20f6('0x1'));var moment=require('moment');var BPromise=require(_0x20f6('0x2'));var rp=require(_0x20f6('0x3'));var fs=require('fs');var path=require(_0x20f6('0x4'));var rimraf=require(_0x20f6('0x5'));var config=require(_0x20f6('0x6'));var attributes=require(_0x20f6('0x7'));module['exports']=function(_0x2a9295,_0xfd1248){return _0x2a9295[_0x20f6('0x8')]('VtigerField',attributes,{'tableName':_0x20f6('0x9'),'paranoid':![],'indexes':[{'name':_0x20f6('0xa'),'fields':[_0x20f6('0xb'),_0x20f6('0xc')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x0797=['vtiger_unique_index','FieldId','lodash','util','moment','bluebird','path','rimraf','../../config/environment','./intVtigerField.attributes','exports','define','VtigerField','int_vtiger_fields'];(function(_0x3d1a2d,_0xf5150){var _0x403eb7=function(_0x34217a){while(--_0x34217a){_0x3d1a2d['push'](_0x3d1a2d['shift']());}};_0x403eb7(++_0xf5150);}(_0x0797,0x1b4));var _0x7079=function(_0x245fb4,_0x329104){_0x245fb4=_0x245fb4-0x0;var _0x3e5fdd=_0x0797[_0x245fb4];return _0x3e5fdd;};'use strict';var _=require(_0x7079('0x0'));var util=require(_0x7079('0x1'));var logger=require('../../config/logger')('api');var moment=require(_0x7079('0x2'));var BPromise=require(_0x7079('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x7079('0x4'));var rimraf=require(_0x7079('0x5'));var config=require(_0x7079('0x6'));var attributes=require(_0x7079('0x7'));module[_0x7079('0x8')]=function(_0x154d60,_0xeda79){return _0x154d60[_0x7079('0x9')](_0x7079('0xa'),attributes,{'tableName':_0x7079('0xb'),'paranoid':![],'indexes':[{'name':_0x7079('0xc'),'fields':['idField',_0x7079('0xd')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2912=['message','result','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','request','then','info','VtigerField,\x20%s,\x20%s','request\x20sent','VtigerField,\x20%s,\x20%s,\x20%s','stringify','error','code'];(function(_0x1ac595,_0x5d2081){var _0x455fff=function(_0x3043ee){while(--_0x3043ee){_0x1ac595['push'](_0x1ac595['shift']());}};_0x455fff(++_0x5d2081);}(_0x2912,0x1d0));var _0x2291=function(_0x3f2ddd,_0x29a7f3){_0x3f2ddd=_0x3f2ddd-0x0;var _0x253105=_0x2912[_0x3f2ddd];return _0x253105;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0x2291('0x0'));var BPromise=require(_0x2291('0x1'));var rs=require(_0x2291('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x2291('0x3'))['db'];var utils=require(_0x2291('0x4'));var logger=require(_0x2291('0x5'))(_0x2291('0x6'));var config=require('../../config/environment');var jayson=require(_0x2291('0x7'));var client=jayson[_0x2291('0x8')][_0x2291('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x150c22,_0x2d4318,_0x119e82){return new BPromise(function(_0x3ff547,_0x120404){return client[_0x2291('0xa')](_0x150c22,_0x119e82)[_0x2291('0xb')](function(_0x1fee2b){logger[_0x2291('0xc')](_0x2291('0xd'),_0x2d4318,_0x2291('0xe'));logger['debug'](_0x2291('0xf'),_0x2d4318,'request\x20sent',JSON[_0x2291('0x10')](_0x1fee2b));if(_0x1fee2b[_0x2291('0x11')]){if(_0x1fee2b[_0x2291('0x11')][_0x2291('0x12')]===0x1f4){logger['error']('VtigerField,\x20%s,\x20%s',_0x2d4318,_0x1fee2b['error'][_0x2291('0x13')]);return _0x120404(_0x1fee2b['error']['message']);}logger[_0x2291('0x11')](_0x2291('0xd'),_0x2d4318,_0x1fee2b[_0x2291('0x11')][_0x2291('0x13')]);return _0x3ff547(_0x1fee2b['error'][_0x2291('0x13')]);}else{logger[_0x2291('0xc')](_0x2291('0xd'),_0x2d4318,_0x2291('0xe'));_0x3ff547(_0x1fee2b[_0x2291('0x14')][_0x2291('0x13')]);}})['catch'](function(_0x57830f){logger[_0x2291('0x11')](_0x2291('0xd'),_0x2d4318,_0x57830f);_0x120404(_0x57830f);});});}
\ No newline at end of file
+var _0xe1fe=['ioredis','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','VtigerField,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','VtigerField,\x20%s,\x20%s','message','info','result','catch','lodash','util','moment','bluebird','randomstring'];(function(_0x44ae8f,_0x3b4f19){var _0x2f4cc9=function(_0x401bc7){while(--_0x401bc7){_0x44ae8f['push'](_0x44ae8f['shift']());}};_0x2f4cc9(++_0x3b4f19);}(_0xe1fe,0x1c3));var _0xee1f=function(_0x41ffaa,_0x368d7a){_0x41ffaa=_0x41ffaa-0x0;var _0x159506=_0xe1fe[_0x41ffaa];return _0x159506;};'use strict';var _=require(_0xee1f('0x0'));var util=require(_0xee1f('0x1'));var moment=require(_0xee1f('0x2'));var BPromise=require(_0xee1f('0x3'));var rs=require(_0xee1f('0x4'));var fs=require('fs');var Redis=require(_0xee1f('0x5'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0xee1f('0x6'))(_0xee1f('0x7'));var config=require(_0xee1f('0x8'));var jayson=require(_0xee1f('0x9'));var client=jayson[_0xee1f('0xa')][_0xee1f('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x1b5f1b,_0x1e2f2f,_0x5ae5a5){return new BPromise(function(_0xbd27b7,_0x24f1dd){return client[_0xee1f('0xc')](_0x1b5f1b,_0x5ae5a5)[_0xee1f('0xd')](function(_0x34b961){logger['info']('VtigerField,\x20%s,\x20%s',_0x1e2f2f,'request\x20sent');logger['debug'](_0xee1f('0xe'),_0x1e2f2f,_0xee1f('0xf'),JSON[_0xee1f('0x10')](_0x34b961));if(_0x34b961[_0xee1f('0x11')]){if(_0x34b961[_0xee1f('0x11')][_0xee1f('0x12')]===0x1f4){logger[_0xee1f('0x11')](_0xee1f('0x13'),_0x1e2f2f,_0x34b961[_0xee1f('0x11')][_0xee1f('0x14')]);return _0x24f1dd(_0x34b961[_0xee1f('0x11')][_0xee1f('0x14')]);}logger[_0xee1f('0x11')](_0xee1f('0x13'),_0x1e2f2f,_0x34b961[_0xee1f('0x11')]['message']);return _0xbd27b7(_0x34b961['error'][_0xee1f('0x14')]);}else{logger[_0xee1f('0x15')](_0xee1f('0x13'),_0x1e2f2f,_0xee1f('0xf'));_0xbd27b7(_0x34b961[_0xee1f('0x16')][_0xee1f('0x14')]);}})[_0xee1f('0x17')](function(_0x43be1f){logger[_0xee1f('0x11')](_0xee1f('0x13'),_0x1e2f2f,_0x43be1f);_0x24f1dd(_0x43be1f);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2706=['path','connect-timeout','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','delete','util'];(function(_0x4b2436,_0x452299){var _0x4f5ab2=function(_0x5c6679){while(--_0x5c6679){_0x4b2436['push'](_0x4b2436['shift']());}};_0x4f5ab2(++_0x452299);}(_0x2706,0x107));var _0x6270=function(_0x53def4,_0x4b0b9b){_0x53def4=_0x53def4-0x0;var _0x4ab348=_0x2706[_0x53def4];return _0x4ab348;};'use strict';var multer=require('multer');var util=require(_0x6270('0x0'));var path=require(_0x6270('0x1'));var timeout=require(_0x6270('0x2'));var express=require(_0x6270('0x3'));var router=express['Router']();var fs_extra=require(_0x6270('0x4'));var auth=require(_0x6270('0x5'));var interaction=require(_0x6270('0x6'));var config=require(_0x6270('0x7'));var controller=require(_0x6270('0x8'));router[_0x6270('0x9')]('/',auth[_0x6270('0xa')](),controller[_0x6270('0xb')]);router['get'](_0x6270('0xc'),auth[_0x6270('0xa')](),controller['show']);router[_0x6270('0x9')](_0x6270('0xd'),auth[_0x6270('0xa')](),controller[_0x6270('0xe')]);router[_0x6270('0x9')](_0x6270('0xf'),auth['isAuthenticated'](),controller[_0x6270('0x10')]);router[_0x6270('0x11')]('/',auth[_0x6270('0xa')](),controller[_0x6270('0x12')]);router[_0x6270('0x11')]('/:id/configurations',auth['isAuthenticated'](),controller[_0x6270('0x13')]);router[_0x6270('0x14')]('/:id',auth['isAuthenticated'](),controller['update']);router[_0x6270('0x15')]('/:id',auth[_0x6270('0xa')](),controller['destroy']);module['exports']=router;
\ No newline at end of file
+var _0x4b2e=['../../components/interaction/service','../../config/environment','./intZendeskAccount.controller','isAuthenticated','index','/:id','show','get','/:id/configurations','/:id/fields','getFields','post','create','addConfiguration','update','delete','destroy','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service'];(function(_0x43cc58,_0x487916){var _0x124637=function(_0x27e7b4){while(--_0x27e7b4){_0x43cc58['push'](_0x43cc58['shift']());}};_0x124637(++_0x487916);}(_0x4b2e,0x1ec));var _0xe4b2=function(_0x113ae4,_0x4ca7a3){_0x113ae4=_0x113ae4-0x0;var _0x19208d=_0x4b2e[_0x113ae4];return _0x19208d;};'use strict';var multer=require(_0xe4b2('0x0'));var util=require(_0xe4b2('0x1'));var path=require(_0xe4b2('0x2'));var timeout=require(_0xe4b2('0x3'));var express=require(_0xe4b2('0x4'));var router=express[_0xe4b2('0x5')]();var fs_extra=require(_0xe4b2('0x6'));var auth=require(_0xe4b2('0x7'));var interaction=require(_0xe4b2('0x8'));var config=require(_0xe4b2('0x9'));var controller=require(_0xe4b2('0xa'));router['get']('/',auth[_0xe4b2('0xb')](),controller[_0xe4b2('0xc')]);router['get'](_0xe4b2('0xd'),auth[_0xe4b2('0xb')](),controller[_0xe4b2('0xe')]);router[_0xe4b2('0xf')](_0xe4b2('0x10'),auth[_0xe4b2('0xb')](),controller['getConfigurations']);router[_0xe4b2('0xf')](_0xe4b2('0x11'),auth[_0xe4b2('0xb')](),controller[_0xe4b2('0x12')]);router[_0xe4b2('0x13')]('/',auth[_0xe4b2('0xb')](),controller[_0xe4b2('0x14')]);router[_0xe4b2('0x13')](_0xe4b2('0x10'),auth[_0xe4b2('0xb')](),controller[_0xe4b2('0x15')]);router['put'](_0xe4b2('0xd'),auth[_0xe4b2('0xb')](),controller[_0xe4b2('0x16')]);router[_0xe4b2('0x17')]('/:id',auth[_0xe4b2('0xb')](),controller[_0xe4b2('0x18')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xaf5a=['username','ENUM','password','token','integrationTab','newTab','exports','STRING'];(function(_0x80ea65,_0x13e4e9){var _0x40b9e3=function(_0x30ac96){while(--_0x30ac96){_0x80ea65['push'](_0x80ea65['shift']());}};_0x40b9e3(++_0x13e4e9);}(_0xaf5a,0x116));var _0xaaf5=function(_0x962edb,_0x5dd356){_0x962edb=_0x962edb-0x0;var _0x359dcf=_0xaf5a[_0x962edb];return _0x359dcf;};'use strict';var Sequelize=require('sequelize');module[_0xaaf5('0x0')]={'name':{'type':Sequelize[_0xaaf5('0x1')]},'description':{'type':Sequelize[_0xaaf5('0x1')]},'username':{'type':Sequelize[_0xaaf5('0x1')],'unique':_0xaaf5('0x2')},'password':{'type':Sequelize[_0xaaf5('0x1')]},'token':{'type':Sequelize[_0xaaf5('0x1')]},'remoteUri':{'type':Sequelize[_0xaaf5('0x1')],'unique':'remoteUri'},'authType':{'type':Sequelize[_0xaaf5('0x3')](_0xaaf5('0x4'),_0xaaf5('0x5')),'defaultValue':_0xaaf5('0x4')},'serverUrl':{'type':Sequelize['STRING'],'allowNull':![]},'type':{'type':Sequelize['ENUM'](_0xaaf5('0x6'),_0xaaf5('0x7')),'defaultValue':_0xaaf5('0x6')}};
\ No newline at end of file
+var _0xa76e=['ENUM','integrationTab','exports','STRING','username','remoteUri','password'];(function(_0x2c8be2,_0x16dc35){var _0x4543fa=function(_0x2b7d24){while(--_0x2b7d24){_0x2c8be2['push'](_0x2c8be2['shift']());}};_0x4543fa(++_0x16dc35);}(_0xa76e,0xfe));var _0xea76=function(_0x2706da,_0x3856f5){_0x2706da=_0x2706da-0x0;var _0x3ba87e=_0xa76e[_0x2706da];return _0x3ba87e;};'use strict';var Sequelize=require('sequelize');module[_0xea76('0x0')]={'name':{'type':Sequelize[_0xea76('0x1')]},'description':{'type':Sequelize['STRING']},'username':{'type':Sequelize['STRING'],'unique':_0xea76('0x2')},'password':{'type':Sequelize['STRING']},'token':{'type':Sequelize[_0xea76('0x1')]},'remoteUri':{'type':Sequelize[_0xea76('0x1')],'unique':_0xea76('0x3')},'authType':{'type':Sequelize['ENUM'](_0xea76('0x4'),'token'),'defaultValue':_0xea76('0x4')},'serverUrl':{'type':Sequelize['STRING'],'allowNull':![]},'type':{'type':Sequelize[_0xea76('0x5')](_0xea76('0x6'),'newTab'),'defaultValue':'integrationTab'}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbdb7=['rawAttributes','fieldName','type','key','query','keys','model','attributes','fields','order','sort','where','filters','pick','filter','merge','VIRTUAL','ZendeskAccount','include','findAll','rows','intersection','length','includeAll','options','catch','create','body','update','find','params','destroy','getConfigurations','hasOwnProperty','nolimit','findOne','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','ZendeskConfiguration','ZendeskField','getFields','password','authType','remoteUri','substring','GET','format','headers','%s:%s','username','toString','base64','Basic\x20%s','%s/token:%s','token','Unknown\x20authentication\x20type','subject','group','assignee','ticket_fields','position','system_field_options','custom_field_options','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','stringify','Wrong\x20credentials','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','fs-extra','lodash','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../mysqldb','../../components/integrations/configuration','status','end','json','offset','undefined','count','limit','set','Content-Range','apply','reject','save','then','sendStatus','error','name','send','index','map'];(function(_0x24af20,_0xb1b03b){var _0x20bbc5=function(_0x11d66c){while(--_0x11d66c){_0x24af20['push'](_0x24af20['shift']());}};_0x20bbc5(++_0xb1b03b);}(_0xbdb7,0x12e));var _0x7bdb=function(_0x314397,_0x550526){_0x314397=_0x314397-0x0;var _0x1ec45e=_0xbdb7[_0x314397];return _0x1ec45e;};'use strict';var emlformat=require(_0x7bdb('0x0'));var rimraf=require(_0x7bdb('0x1'));var zipdir=require(_0x7bdb('0x2'));var jsonpatch=require(_0x7bdb('0x3'));var rp=require(_0x7bdb('0x4'));var moment=require(_0x7bdb('0x5'));var BPromise=require(_0x7bdb('0x6'));var Mustache=require(_0x7bdb('0x7'));var util=require(_0x7bdb('0x8'));var path=require('path');var sox=require(_0x7bdb('0x9'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x7bdb('0xa'));var _=require(_0x7bdb('0xb'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x7bdb('0xc'));var deskjs=require(_0x7bdb('0xd'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x7bdb('0xe'));var Redis=require(_0x7bdb('0xf'));var authService=require(_0x7bdb('0x10'));var qs=require(_0x7bdb('0x11'));var as=require(_0x7bdb('0x12'));var hardwareService=require(_0x7bdb('0x13'));var logger=require(_0x7bdb('0x14'))(_0x7bdb('0x15'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x7bdb('0x16'))['db'];var integrations=require(_0x7bdb('0x17'));function respondWithStatusCode(_0x496613,_0x8d74ff){_0x8d74ff=_0x8d74ff||0xcc;return function(_0x53021d){if(_0x53021d){return _0x496613['sendStatus'](_0x8d74ff);}return _0x496613[_0x7bdb('0x18')](_0x8d74ff)[_0x7bdb('0x19')]();};}function respondWithResult(_0x4fd91a,_0x50eeca){_0x50eeca=_0x50eeca||0xc8;return function(_0x4e98f7){if(_0x4e98f7){return _0x4fd91a[_0x7bdb('0x18')](_0x50eeca)[_0x7bdb('0x1a')](_0x4e98f7);}};}function respondWithFilteredResult(_0xe9919f,_0x25d417){return function(_0x31c909){if(_0x31c909){var _0xbde12a=typeof _0x25d417[_0x7bdb('0x1b')]===_0x7bdb('0x1c')&&typeof _0x25d417['limit']===_0x7bdb('0x1c');var _0x43f352=_0x31c909[_0x7bdb('0x1d')];var _0x2aff6a=_0xbde12a?0x0:_0x25d417['offset'];var _0x41f540=_0xbde12a?_0x31c909[_0x7bdb('0x1d')]:_0x25d417['offset']+_0x25d417[_0x7bdb('0x1e')];var _0x31f78e;if(_0x41f540>=_0x43f352){_0x41f540=_0x43f352;_0x31f78e=0xc8;}else{_0x31f78e=0xce;}_0xe9919f[_0x7bdb('0x18')](_0x31f78e);return _0xe9919f[_0x7bdb('0x1f')](_0x7bdb('0x20'),_0x2aff6a+'-'+_0x41f540+'/'+_0x43f352)['json'](_0x31c909);}return null;};}function patchUpdates(_0x49f353){return function(_0x677825){try{jsonpatch[_0x7bdb('0x21')](_0x677825,_0x49f353,!![]);}catch(_0x5daea4){return BPromise[_0x7bdb('0x22')](_0x5daea4);}return _0x677825[_0x7bdb('0x23')]();};}function saveUpdates(_0x346c72,_0x3f53e7){return function(_0x3a1d0f){if(_0x3a1d0f){return _0x3a1d0f['update'](_0x346c72)[_0x7bdb('0x24')](function(_0xdad53d){return _0xdad53d;});}return null;};}function removeEntity(_0x40c447,_0x3a456f){return function(_0x481f4b){if(_0x481f4b){return _0x481f4b['destroy']()[_0x7bdb('0x24')](function(){_0x40c447['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x4a9e02,_0x2abef6){return function(_0x51ab04){if(!_0x51ab04){_0x4a9e02[_0x7bdb('0x25')](0x194);}return _0x51ab04;};}function handleError(_0x72ba69,_0x3ec129){_0x3ec129=_0x3ec129||0x1f4;return function(_0x7c09cf){logger[_0x7bdb('0x26')](_0x7c09cf['stack']);if(_0x7c09cf[_0x7bdb('0x27')]){delete _0x7c09cf[_0x7bdb('0x27')];}_0x72ba69[_0x7bdb('0x18')](_0x3ec129)[_0x7bdb('0x28')](_0x7c09cf);};}exports[_0x7bdb('0x29')]=function(_0x2e8e65,_0x1e9996){var _0xd2d7be={},_0x25a1fe={},_0x365c02={'count':0x0,'rows':[]};var _0x9ec48d=_[_0x7bdb('0x2a')](db['ZendeskAccount'][_0x7bdb('0x2b')],function(_0x23fc3a){return{'name':_0x23fc3a[_0x7bdb('0x2c')],'type':_0x23fc3a[_0x7bdb('0x2d')][_0x7bdb('0x2e')]};});_0x25a1fe['model']=_[_0x7bdb('0x2a')](_0x9ec48d,_0x7bdb('0x27'));_0x25a1fe[_0x7bdb('0x2f')]=_[_0x7bdb('0x30')](_0x2e8e65['query']);_0x25a1fe['filters']=_['intersection'](_0x25a1fe[_0x7bdb('0x31')],_0x25a1fe['query']);_0xd2d7be[_0x7bdb('0x32')]=_['intersection'](_0x25a1fe[_0x7bdb('0x31')],qs[_0x7bdb('0x33')](_0x2e8e65[_0x7bdb('0x2f')]['fields']));_0xd2d7be[_0x7bdb('0x32')]=_0xd2d7be['attributes']['length']?_0xd2d7be[_0x7bdb('0x32')]:_0x25a1fe['model'];if(!_0x2e8e65[_0x7bdb('0x2f')]['hasOwnProperty']('nolimit')){_0xd2d7be[_0x7bdb('0x1e')]=qs[_0x7bdb('0x1e')](_0x2e8e65[_0x7bdb('0x2f')][_0x7bdb('0x1e')]);_0xd2d7be[_0x7bdb('0x1b')]=qs[_0x7bdb('0x1b')](_0x2e8e65['query'][_0x7bdb('0x1b')]);}_0xd2d7be[_0x7bdb('0x34')]=qs[_0x7bdb('0x35')](_0x2e8e65[_0x7bdb('0x2f')][_0x7bdb('0x35')]);_0xd2d7be[_0x7bdb('0x36')]=qs[_0x7bdb('0x37')](_[_0x7bdb('0x38')](_0x2e8e65[_0x7bdb('0x2f')],_0x25a1fe['filters']),_0x9ec48d);if(_0x2e8e65['query'][_0x7bdb('0x39')]){_0xd2d7be[_0x7bdb('0x36')]=_[_0x7bdb('0x3a')](_0xd2d7be[_0x7bdb('0x36')],{'$or':_[_0x7bdb('0x2a')](_0x9ec48d,function(_0x509e90){if(_0x509e90['type']!==_0x7bdb('0x3b')){var _0x5d7c1f={};_0x5d7c1f[_0x509e90[_0x7bdb('0x27')]]={'$like':'%'+_0x2e8e65['query'][_0x7bdb('0x39')]+'%'};return _0x5d7c1f;}})});}_0xd2d7be=_['merge']({},_0xd2d7be,_0x2e8e65['options']);var _0x21dae7={'where':_0xd2d7be[_0x7bdb('0x36')]};return db[_0x7bdb('0x3c')][_0x7bdb('0x1d')](_0x21dae7)[_0x7bdb('0x24')](function(_0x2b4829){_0x365c02[_0x7bdb('0x1d')]=_0x2b4829;if(_0x2e8e65['query']['includeAll']){_0xd2d7be[_0x7bdb('0x3d')]=[{'all':!![]}];}return db[_0x7bdb('0x3c')][_0x7bdb('0x3e')](_0xd2d7be);})[_0x7bdb('0x24')](function(_0x39fbca){_0x365c02[_0x7bdb('0x3f')]=_0x39fbca;return _0x365c02;})[_0x7bdb('0x24')](respondWithFilteredResult(_0x1e9996,_0xd2d7be))['catch'](handleError(_0x1e9996,null));};exports['show']=function(_0x1bcbcd,_0x8e893e){var _0x4636f8={'raw':![],'where':{'id':_0x1bcbcd['params']['id']}},_0x72a81c={};_0x72a81c[_0x7bdb('0x31')]=_['keys'](db[_0x7bdb('0x3c')][_0x7bdb('0x2b')]);_0x72a81c[_0x7bdb('0x2f')]=_[_0x7bdb('0x30')](_0x1bcbcd[_0x7bdb('0x2f')]);_0x72a81c[_0x7bdb('0x37')]=_[_0x7bdb('0x40')](_0x72a81c[_0x7bdb('0x31')],_0x72a81c[_0x7bdb('0x2f')]);_0x4636f8['attributes']=_[_0x7bdb('0x40')](_0x72a81c[_0x7bdb('0x31')],qs['fields'](_0x1bcbcd[_0x7bdb('0x2f')]['fields']));_0x4636f8[_0x7bdb('0x32')]=_0x4636f8[_0x7bdb('0x32')][_0x7bdb('0x41')]?_0x4636f8[_0x7bdb('0x32')]:_0x72a81c[_0x7bdb('0x31')];if(_0x1bcbcd['query'][_0x7bdb('0x42')]){_0x4636f8[_0x7bdb('0x3d')]=[{'all':!![]}];}_0x4636f8=_[_0x7bdb('0x3a')]({},_0x4636f8,_0x1bcbcd[_0x7bdb('0x43')]);return db[_0x7bdb('0x3c')]['find'](_0x4636f8)[_0x7bdb('0x24')](handleEntityNotFound(_0x8e893e,null))[_0x7bdb('0x24')](respondWithResult(_0x8e893e,null))[_0x7bdb('0x44')](handleError(_0x8e893e,null));};exports[_0x7bdb('0x45')]=function(_0x259007,_0x25c534){return db[_0x7bdb('0x3c')][_0x7bdb('0x45')](_0x259007[_0x7bdb('0x46')],{})[_0x7bdb('0x24')](respondWithResult(_0x25c534,0xc9))['catch'](handleError(_0x25c534,null));};exports[_0x7bdb('0x47')]=function(_0x58c4bc,_0x47cccd){if(_0x58c4bc[_0x7bdb('0x46')]['id']){delete _0x58c4bc[_0x7bdb('0x46')]['id'];}return db['ZendeskAccount'][_0x7bdb('0x48')]({'where':{'id':_0x58c4bc[_0x7bdb('0x49')]['id']}})['then'](handleEntityNotFound(_0x47cccd,null))['then'](saveUpdates(_0x58c4bc['body'],null))[_0x7bdb('0x24')](respondWithResult(_0x47cccd,null))[_0x7bdb('0x44')](handleError(_0x47cccd,null));};exports[_0x7bdb('0x4a')]=function(_0x46410c,_0x33687b){return db[_0x7bdb('0x3c')][_0x7bdb('0x48')]({'where':{'id':_0x46410c[_0x7bdb('0x49')]['id']}})[_0x7bdb('0x24')](handleEntityNotFound(_0x33687b,null))[_0x7bdb('0x24')](removeEntity(_0x33687b,null))['catch'](handleError(_0x33687b,null));};exports[_0x7bdb('0x4b')]=function(_0x4806e0,_0x240425,_0x27358d){var _0x5d564d={};var _0x457886={};var _0x493d23;var _0x258f29;return db['ZendeskAccount']['findOne']({'where':{'id':_0x4806e0[_0x7bdb('0x49')]['id']}})[_0x7bdb('0x24')](handleEntityNotFound(_0x240425,null))['then'](function(_0x4e17f3){if(_0x4e17f3){_0x493d23=_0x4e17f3;_0x457886['model']=_[_0x7bdb('0x30')](db['ZendeskConfiguration']['rawAttributes']);_0x457886[_0x7bdb('0x2f')]=_[_0x7bdb('0x30')](_0x4806e0[_0x7bdb('0x2f')]);_0x457886[_0x7bdb('0x37')]=_['intersection'](_0x457886[_0x7bdb('0x31')],_0x457886['query']);_0x5d564d[_0x7bdb('0x32')]=_[_0x7bdb('0x40')](_0x457886[_0x7bdb('0x31')],qs[_0x7bdb('0x33')](_0x4806e0[_0x7bdb('0x2f')][_0x7bdb('0x33')]));_0x5d564d['attributes']=_0x5d564d[_0x7bdb('0x32')][_0x7bdb('0x41')]?_0x5d564d[_0x7bdb('0x32')]:_0x457886['model'];_0x5d564d[_0x7bdb('0x34')]=qs[_0x7bdb('0x35')](_0x4806e0['query'][_0x7bdb('0x35')]);_0x5d564d['where']=qs[_0x7bdb('0x37')](_[_0x7bdb('0x38')](_0x4806e0['query'],_0x457886['filters']));if(_0x4806e0[_0x7bdb('0x2f')][_0x7bdb('0x39')]){_0x5d564d['where']=_[_0x7bdb('0x3a')](_0x5d564d['where'],{'$or':_[_0x7bdb('0x2a')](_0x5d564d['attributes'],function(_0x496cc3){var _0x22ef9c={};_0x22ef9c[_0x496cc3]={'$like':'%'+_0x4806e0[_0x7bdb('0x2f')][_0x7bdb('0x39')]+'%'};return _0x22ef9c;})});}_0x5d564d=_[_0x7bdb('0x3a')]({},_0x5d564d,_0x4806e0[_0x7bdb('0x43')]);return _0x493d23[_0x7bdb('0x4b')](_0x5d564d);}})[_0x7bdb('0x24')](function(_0x8cf13a){if(_0x8cf13a){_0x258f29=_0x8cf13a[_0x7bdb('0x41')];if(!_0x4806e0[_0x7bdb('0x2f')][_0x7bdb('0x4c')](_0x7bdb('0x4d'))){_0x5d564d['limit']=qs[_0x7bdb('0x1e')](_0x4806e0[_0x7bdb('0x2f')]['limit']);_0x5d564d[_0x7bdb('0x1b')]=qs[_0x7bdb('0x1b')](_0x4806e0[_0x7bdb('0x2f')][_0x7bdb('0x1b')]);}return _0x493d23[_0x7bdb('0x4b')](_0x5d564d);}})['then'](function(_0xa5624f){if(_0xa5624f){return _0xa5624f?{'count':_0x258f29,'rows':_0xa5624f}:null;}})[_0x7bdb('0x24')](respondWithResult(_0x240425,null))[_0x7bdb('0x44')](handleError(_0x240425,null));};exports['addConfiguration']=function(_0x3dbcf,_0x2c2fb7,_0x33b93a){if(_0x3dbcf[_0x7bdb('0x46')]['id']){delete _0x3dbcf[_0x7bdb('0x46')]['id'];}return db[_0x7bdb('0x3c')][_0x7bdb('0x4e')]({'where':{'id':_0x3dbcf[_0x7bdb('0x49')]['id']}})[_0x7bdb('0x24')](handleEntityNotFound(_0x2c2fb7,null))['then'](function(_0x7a7c4a){if(_0x7a7c4a){_0x3dbcf[_0x7bdb('0x46')][_0x7bdb('0x4f')]=_0x7a7c4a['id'];_0x3dbcf[_0x7bdb('0x46')][_0x7bdb('0x50')]=integrations[_0x7bdb('0x51')](_0x3dbcf[_0x7bdb('0x46')][_0x7bdb('0x52')],_0x3dbcf[_0x7bdb('0x46')][_0x7bdb('0x2d')]);_0x3dbcf[_0x7bdb('0x46')][_0x7bdb('0x53')]=integrations[_0x7bdb('0x54')](_0x3dbcf['body'][_0x7bdb('0x52')],_0x3dbcf['body'][_0x7bdb('0x2d')]);return db[_0x7bdb('0x55')][_0x7bdb('0x45')](_0x3dbcf['body'],{'include':[{'model':db[_0x7bdb('0x56')],'as':_0x7bdb('0x50')},{'model':db['ZendeskField'],'as':_0x7bdb('0x53')}]});}return null;})[_0x7bdb('0x24')](respondWithResult(_0x2c2fb7,null))['catch'](handleError(_0x2c2fb7,null));};exports[_0x7bdb('0x57')]=function(_0x1a706b,_0x579caa,_0x291fd3){var _0x237688='';return db['ZendeskAccount'][_0x7bdb('0x4e')]({'where':{'id':_0x1a706b[_0x7bdb('0x49')]['id']},'attributes':['id','username',_0x7bdb('0x58'),'token',_0x7bdb('0x59'),_0x7bdb('0x5a')]})[_0x7bdb('0x24')](handleEntityNotFound(_0x579caa,null))[_0x7bdb('0x24')](function(_0x1e5063){if(_0x1e5063){_0x237688=_0x1e5063['remoteUri'];var _0x590818=_0x237688['slice'](-0x1);if(_0x590818==='/'){_0x237688=_0x237688[_0x7bdb('0x5b')](0x0,_0x237688['lastIndexOf'](_0x590818));}var _0x242a35={'method':_0x7bdb('0x5c'),'uri':util[_0x7bdb('0x5d')]('%s/%s',_0x237688,'ticket_fields'),'json':!![]};switch(_0x1e5063[_0x7bdb('0x59')]){case _0x7bdb('0x58'):_0x242a35[_0x7bdb('0x5e')]={'Authorization':util[_0x7bdb('0x5d')]('Basic\x20%s',new Buffer(util[_0x7bdb('0x5d')](_0x7bdb('0x5f'),_0x1e5063[_0x7bdb('0x60')],_0x1e5063[_0x7bdb('0x58')]))[_0x7bdb('0x61')](_0x7bdb('0x62')))};break;case'token':_0x242a35[_0x7bdb('0x5e')]={'Authorization':util['format'](_0x7bdb('0x63'),new Buffer(util['format'](_0x7bdb('0x64'),_0x1e5063[_0x7bdb('0x60')],_0x1e5063[_0x7bdb('0x65')]))[_0x7bdb('0x61')](_0x7bdb('0x62')))};break;default:throw new db['Sequelize']['ValidationError'](_0x7bdb('0x66'));}return rp(_0x242a35);}})[_0x7bdb('0x24')](function(_0x51fec5){if(_0x51fec5){var _0x415ec5=[_0x7bdb('0x67'),'description',_0x7bdb('0x68'),_0x7bdb('0x69')];_['remove'](_0x51fec5[_0x7bdb('0x6a')],function(_0x493c69){return _0x415ec5['includes'](_0x493c69[_0x7bdb('0x2d')]);});return{'count':_0x51fec5[_0x7bdb('0x6a')]['length'],'rows':_['map'](_0x51fec5[_0x7bdb('0x6a')],function(_0x566a9e){return{'id':_0x566a9e['id'],'name':_0x566a9e[_0x7bdb('0x6b')]>0x7?_0x566a9e['title']:_0x566a9e[_0x7bdb('0x2d')],'custom':_0x566a9e[_0x7bdb('0x6b')]>0x7?!![]:![],'options':_0x566a9e[_0x7bdb('0x6c')]?_0x566a9e[_0x7bdb('0x6c')]:_0x566a9e['custom_field_options']?_0x566a9e[_0x7bdb('0x6d')]:[]};})};}})[_0x7bdb('0x24')](respondWithResult(_0x579caa,null))['catch'](function(_0x2be441){var _0x3096e0=_0x1a706b['query'][_0x7bdb('0x6e')]?0x1f4:_0x2be441[_0x7bdb('0x6f')]||0x1f4;logger[_0x7bdb('0x26')](_0x7bdb('0x70'),'getFields',_0x3096e0,JSON[_0x7bdb('0x71')](_0x2be441));delete _0x2be441['name'];if(_0x3096e0===0x191){_0x3096e0=0x190;}_0x579caa[_0x7bdb('0x18')](_0x3096e0)[_0x7bdb('0x28')](_0x1a706b[_0x7bdb('0x2f')]['test']?{'message':_0x7bdb('0x72'),'statusCode':_0x2be441[_0x7bdb('0x6f')]}:_0x2be441);});};
\ No newline at end of file
+var _0x4e81=['limit','count','set','Content-Range','reject','save','update','then','error','stack','name','send','index','map','ZendeskAccount','rawAttributes','type','key','model','keys','query','filters','intersection','fields','attributes','length','hasOwnProperty','order','sort','pick','filter','merge','options','where','includeAll','include','findAll','show','params','find','catch','create','body','findOne','ZendeskConfiguration','getConfigurations','nolimit','addConfiguration','AccountId','getSubjects','Descriptions','getDescriptions','ZendeskField','username','token','authType','remoteUri','slice','substring','lastIndexOf','GET','password','headers','Basic\x20%s','toString','base64','format','%s/token:%s','Sequelize','ValidationError','subject','description','group','assignee','remove','ticket_fields','includes','position','title','system_field_options','custom_field_options','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','getFields','stringify','Wrong\x20credentials','eml-format','rimraf','zip-dir','bluebird','mustache','util','path','sox','to-csv','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../components/integrations/configuration','sendStatus','end','status','json','offset','undefined'];(function(_0x249912,_0x458915){var _0x4e4202=function(_0x22174b){while(--_0x22174b){_0x249912['push'](_0x249912['shift']());}};_0x4e4202(++_0x458915);}(_0x4e81,0x1bc));var _0x14e8=function(_0x85d5a8,_0x1977be){_0x85d5a8=_0x85d5a8-0x0;var _0x20479b=_0x4e81[_0x85d5a8];return _0x20479b;};'use strict';var emlformat=require(_0x14e8('0x0'));var rimraf=require(_0x14e8('0x1'));var zipdir=require(_0x14e8('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x14e8('0x3'));var Mustache=require(_0x14e8('0x4'));var util=require(_0x14e8('0x5'));var path=require(_0x14e8('0x6'));var sox=require(_0x14e8('0x7'));var csv=require(_0x14e8('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x14e8('0x9'));var squel=require(_0x14e8('0xa'));var crypto=require(_0x14e8('0xb'));var jsforce=require(_0x14e8('0xc'));var deskjs=require(_0x14e8('0xd'));var toCsv=require(_0x14e8('0x8'));var querystring=require(_0x14e8('0xe'));var Papa=require(_0x14e8('0xf'));var Redis=require(_0x14e8('0x10'));var authService=require('../../components/auth/service');var qs=require(_0x14e8('0x11'));var as=require(_0x14e8('0x12'));var hardwareService=require(_0x14e8('0x13'));var logger=require(_0x14e8('0x14'))(_0x14e8('0x15'));var utils=require(_0x14e8('0x16'));var config=require(_0x14e8('0x17'));var licenseUtil=require(_0x14e8('0x18'));var db=require('../../mysqldb')['db'];var integrations=require(_0x14e8('0x19'));function respondWithStatusCode(_0x59c6c9,_0x2607ef){_0x2607ef=_0x2607ef||0xcc;return function(_0x341d40){if(_0x341d40){return _0x59c6c9[_0x14e8('0x1a')](_0x2607ef);}return _0x59c6c9['status'](_0x2607ef)[_0x14e8('0x1b')]();};}function respondWithResult(_0x4e1064,_0x458e4a){_0x458e4a=_0x458e4a||0xc8;return function(_0x58d26e){if(_0x58d26e){return _0x4e1064[_0x14e8('0x1c')](_0x458e4a)[_0x14e8('0x1d')](_0x58d26e);}};}function respondWithFilteredResult(_0xc6101f,_0x135996){return function(_0x52e64f){if(_0x52e64f){var _0x10c4a9=typeof _0x135996[_0x14e8('0x1e')]===_0x14e8('0x1f')&&typeof _0x135996[_0x14e8('0x20')]===_0x14e8('0x1f');var _0x1f1a0d=_0x52e64f[_0x14e8('0x21')];var _0x462259=_0x10c4a9?0x0:_0x135996['offset'];var _0x328c5a=_0x10c4a9?_0x52e64f[_0x14e8('0x21')]:_0x135996[_0x14e8('0x1e')]+_0x135996[_0x14e8('0x20')];var _0x246c5d;if(_0x328c5a>=_0x1f1a0d){_0x328c5a=_0x1f1a0d;_0x246c5d=0xc8;}else{_0x246c5d=0xce;}_0xc6101f['status'](_0x246c5d);return _0xc6101f[_0x14e8('0x22')](_0x14e8('0x23'),_0x462259+'-'+_0x328c5a+'/'+_0x1f1a0d)[_0x14e8('0x1d')](_0x52e64f);}return null;};}function patchUpdates(_0x48e30a){return function(_0x2c3f45){try{jsonpatch['apply'](_0x2c3f45,_0x48e30a,!![]);}catch(_0x4cca43){return BPromise[_0x14e8('0x24')](_0x4cca43);}return _0x2c3f45[_0x14e8('0x25')]();};}function saveUpdates(_0x117b00,_0xcf673){return function(_0x4ad25d){if(_0x4ad25d){return _0x4ad25d[_0x14e8('0x26')](_0x117b00)['then'](function(_0x31bdd3){return _0x31bdd3;});}return null;};}function removeEntity(_0x185a0e,_0x4ffc8b){return function(_0x58a3a1){if(_0x58a3a1){return _0x58a3a1['destroy']()[_0x14e8('0x27')](function(){_0x185a0e[_0x14e8('0x1c')](0xcc)[_0x14e8('0x1b')]();});}};}function handleEntityNotFound(_0x20bfe8,_0x333d44){return function(_0x57eb46){if(!_0x57eb46){_0x20bfe8[_0x14e8('0x1a')](0x194);}return _0x57eb46;};}function handleError(_0x3fd96d,_0x3c09cb){_0x3c09cb=_0x3c09cb||0x1f4;return function(_0x2f5818){logger[_0x14e8('0x28')](_0x2f5818[_0x14e8('0x29')]);if(_0x2f5818[_0x14e8('0x2a')]){delete _0x2f5818['name'];}_0x3fd96d[_0x14e8('0x1c')](_0x3c09cb)[_0x14e8('0x2b')](_0x2f5818);};}exports[_0x14e8('0x2c')]=function(_0x5f5abb,_0x48eed0){var _0x5cacd7={},_0x8fe0e2={},_0x2a408d={'count':0x0,'rows':[]};var _0x567385=_[_0x14e8('0x2d')](db[_0x14e8('0x2e')][_0x14e8('0x2f')],function(_0xa83433){return{'name':_0xa83433['fieldName'],'type':_0xa83433[_0x14e8('0x30')][_0x14e8('0x31')]};});_0x8fe0e2[_0x14e8('0x32')]=_[_0x14e8('0x2d')](_0x567385,_0x14e8('0x2a'));_0x8fe0e2['query']=_[_0x14e8('0x33')](_0x5f5abb[_0x14e8('0x34')]);_0x8fe0e2[_0x14e8('0x35')]=_[_0x14e8('0x36')](_0x8fe0e2['model'],_0x8fe0e2[_0x14e8('0x34')]);_0x5cacd7['attributes']=_[_0x14e8('0x36')](_0x8fe0e2[_0x14e8('0x32')],qs[_0x14e8('0x37')](_0x5f5abb[_0x14e8('0x34')][_0x14e8('0x37')]));_0x5cacd7[_0x14e8('0x38')]=_0x5cacd7[_0x14e8('0x38')][_0x14e8('0x39')]?_0x5cacd7[_0x14e8('0x38')]:_0x8fe0e2[_0x14e8('0x32')];if(!_0x5f5abb[_0x14e8('0x34')][_0x14e8('0x3a')]('nolimit')){_0x5cacd7['limit']=qs['limit'](_0x5f5abb[_0x14e8('0x34')]['limit']);_0x5cacd7[_0x14e8('0x1e')]=qs['offset'](_0x5f5abb[_0x14e8('0x34')][_0x14e8('0x1e')]);}_0x5cacd7[_0x14e8('0x3b')]=qs[_0x14e8('0x3c')](_0x5f5abb['query'][_0x14e8('0x3c')]);_0x5cacd7['where']=qs[_0x14e8('0x35')](_[_0x14e8('0x3d')](_0x5f5abb[_0x14e8('0x34')],_0x8fe0e2[_0x14e8('0x35')]),_0x567385);if(_0x5f5abb[_0x14e8('0x34')][_0x14e8('0x3e')]){_0x5cacd7['where']=_[_0x14e8('0x3f')](_0x5cacd7['where'],{'$or':_[_0x14e8('0x2d')](_0x567385,function(_0x20f69d){if(_0x20f69d[_0x14e8('0x30')]!=='VIRTUAL'){var _0x27d51b={};_0x27d51b[_0x20f69d[_0x14e8('0x2a')]]={'$like':'%'+_0x5f5abb['query'][_0x14e8('0x3e')]+'%'};return _0x27d51b;}})});}_0x5cacd7=_[_0x14e8('0x3f')]({},_0x5cacd7,_0x5f5abb[_0x14e8('0x40')]);var _0x3a7aa7={'where':_0x5cacd7[_0x14e8('0x41')]};return db[_0x14e8('0x2e')][_0x14e8('0x21')](_0x3a7aa7)[_0x14e8('0x27')](function(_0x33743a){_0x2a408d[_0x14e8('0x21')]=_0x33743a;if(_0x5f5abb[_0x14e8('0x34')][_0x14e8('0x42')]){_0x5cacd7[_0x14e8('0x43')]=[{'all':!![]}];}return db[_0x14e8('0x2e')][_0x14e8('0x44')](_0x5cacd7);})['then'](function(_0x24c9e6){_0x2a408d['rows']=_0x24c9e6;return _0x2a408d;})['then'](respondWithFilteredResult(_0x48eed0,_0x5cacd7))['catch'](handleError(_0x48eed0,null));};exports[_0x14e8('0x45')]=function(_0x5ed821,_0x46a3c4){var _0x45bff0={'raw':![],'where':{'id':_0x5ed821[_0x14e8('0x46')]['id']}},_0x7907e8={};_0x7907e8[_0x14e8('0x32')]=_[_0x14e8('0x33')](db[_0x14e8('0x2e')][_0x14e8('0x2f')]);_0x7907e8[_0x14e8('0x34')]=_[_0x14e8('0x33')](_0x5ed821[_0x14e8('0x34')]);_0x7907e8['filters']=_[_0x14e8('0x36')](_0x7907e8[_0x14e8('0x32')],_0x7907e8[_0x14e8('0x34')]);_0x45bff0[_0x14e8('0x38')]=_['intersection'](_0x7907e8[_0x14e8('0x32')],qs[_0x14e8('0x37')](_0x5ed821['query']['fields']));_0x45bff0[_0x14e8('0x38')]=_0x45bff0['attributes']['length']?_0x45bff0[_0x14e8('0x38')]:_0x7907e8[_0x14e8('0x32')];if(_0x5ed821['query'][_0x14e8('0x42')]){_0x45bff0[_0x14e8('0x43')]=[{'all':!![]}];}_0x45bff0=_['merge']({},_0x45bff0,_0x5ed821[_0x14e8('0x40')]);return db[_0x14e8('0x2e')][_0x14e8('0x47')](_0x45bff0)[_0x14e8('0x27')](handleEntityNotFound(_0x46a3c4,null))[_0x14e8('0x27')](respondWithResult(_0x46a3c4,null))[_0x14e8('0x48')](handleError(_0x46a3c4,null));};exports[_0x14e8('0x49')]=function(_0x2541ad,_0x146e2c){return db[_0x14e8('0x2e')][_0x14e8('0x49')](_0x2541ad[_0x14e8('0x4a')],{})[_0x14e8('0x27')](respondWithResult(_0x146e2c,0xc9))[_0x14e8('0x48')](handleError(_0x146e2c,null));};exports[_0x14e8('0x26')]=function(_0x1f50bc,_0x59820f){if(_0x1f50bc[_0x14e8('0x4a')]['id']){delete _0x1f50bc['body']['id'];}return db[_0x14e8('0x2e')][_0x14e8('0x47')]({'where':{'id':_0x1f50bc[_0x14e8('0x46')]['id']}})[_0x14e8('0x27')](handleEntityNotFound(_0x59820f,null))['then'](saveUpdates(_0x1f50bc['body'],null))['then'](respondWithResult(_0x59820f,null))[_0x14e8('0x48')](handleError(_0x59820f,null));};exports['destroy']=function(_0x55f9b0,_0xd2b281){return db[_0x14e8('0x2e')]['find']({'where':{'id':_0x55f9b0[_0x14e8('0x46')]['id']}})[_0x14e8('0x27')](handleEntityNotFound(_0xd2b281,null))[_0x14e8('0x27')](removeEntity(_0xd2b281,null))[_0x14e8('0x48')](handleError(_0xd2b281,null));};exports['getConfigurations']=function(_0x519c9c,_0x1cdcca,_0xc602b1){var _0x15464a={};var _0x3a09b7={};var _0x41b5ab;var _0x2fbac7;return db['ZendeskAccount'][_0x14e8('0x4b')]({'where':{'id':_0x519c9c[_0x14e8('0x46')]['id']}})[_0x14e8('0x27')](handleEntityNotFound(_0x1cdcca,null))[_0x14e8('0x27')](function(_0x5e6083){if(_0x5e6083){_0x41b5ab=_0x5e6083;_0x3a09b7[_0x14e8('0x32')]=_[_0x14e8('0x33')](db[_0x14e8('0x4c')][_0x14e8('0x2f')]);_0x3a09b7['query']=_[_0x14e8('0x33')](_0x519c9c[_0x14e8('0x34')]);_0x3a09b7[_0x14e8('0x35')]=_[_0x14e8('0x36')](_0x3a09b7[_0x14e8('0x32')],_0x3a09b7[_0x14e8('0x34')]);_0x15464a[_0x14e8('0x38')]=_[_0x14e8('0x36')](_0x3a09b7['model'],qs['fields'](_0x519c9c[_0x14e8('0x34')][_0x14e8('0x37')]));_0x15464a[_0x14e8('0x38')]=_0x15464a[_0x14e8('0x38')][_0x14e8('0x39')]?_0x15464a['attributes']:_0x3a09b7['model'];_0x15464a['order']=qs[_0x14e8('0x3c')](_0x519c9c[_0x14e8('0x34')][_0x14e8('0x3c')]);_0x15464a['where']=qs[_0x14e8('0x35')](_[_0x14e8('0x3d')](_0x519c9c[_0x14e8('0x34')],_0x3a09b7['filters']));if(_0x519c9c[_0x14e8('0x34')][_0x14e8('0x3e')]){_0x15464a[_0x14e8('0x41')]=_[_0x14e8('0x3f')](_0x15464a[_0x14e8('0x41')],{'$or':_[_0x14e8('0x2d')](_0x15464a[_0x14e8('0x38')],function(_0x12a2b3){var _0x2da07b={};_0x2da07b[_0x12a2b3]={'$like':'%'+_0x519c9c[_0x14e8('0x34')][_0x14e8('0x3e')]+'%'};return _0x2da07b;})});}_0x15464a=_['merge']({},_0x15464a,_0x519c9c[_0x14e8('0x40')]);return _0x41b5ab[_0x14e8('0x4d')](_0x15464a);}})[_0x14e8('0x27')](function(_0x38e79a){if(_0x38e79a){_0x2fbac7=_0x38e79a[_0x14e8('0x39')];if(!_0x519c9c[_0x14e8('0x34')][_0x14e8('0x3a')](_0x14e8('0x4e'))){_0x15464a[_0x14e8('0x20')]=qs[_0x14e8('0x20')](_0x519c9c[_0x14e8('0x34')][_0x14e8('0x20')]);_0x15464a['offset']=qs[_0x14e8('0x1e')](_0x519c9c[_0x14e8('0x34')]['offset']);}return _0x41b5ab[_0x14e8('0x4d')](_0x15464a);}})[_0x14e8('0x27')](function(_0x31e785){if(_0x31e785){return _0x31e785?{'count':_0x2fbac7,'rows':_0x31e785}:null;}})[_0x14e8('0x27')](respondWithResult(_0x1cdcca,null))[_0x14e8('0x48')](handleError(_0x1cdcca,null));};exports[_0x14e8('0x4f')]=function(_0x139405,_0x5b6e28,_0x4c30dd){if(_0x139405['body']['id']){delete _0x139405[_0x14e8('0x4a')]['id'];}return db[_0x14e8('0x2e')][_0x14e8('0x4b')]({'where':{'id':_0x139405[_0x14e8('0x46')]['id']}})[_0x14e8('0x27')](handleEntityNotFound(_0x5b6e28,null))[_0x14e8('0x27')](function(_0x402956){if(_0x402956){_0x139405['body'][_0x14e8('0x50')]=_0x402956['id'];_0x139405[_0x14e8('0x4a')]['Subjects']=integrations[_0x14e8('0x51')](_0x139405[_0x14e8('0x4a')]['channel'],_0x139405['body']['type']);_0x139405[_0x14e8('0x4a')][_0x14e8('0x52')]=integrations[_0x14e8('0x53')](_0x139405[_0x14e8('0x4a')]['channel'],_0x139405[_0x14e8('0x4a')][_0x14e8('0x30')]);return db[_0x14e8('0x4c')][_0x14e8('0x49')](_0x139405[_0x14e8('0x4a')],{'include':[{'model':db[_0x14e8('0x54')],'as':'Subjects'},{'model':db[_0x14e8('0x54')],'as':_0x14e8('0x52')}]});}return null;})[_0x14e8('0x27')](respondWithResult(_0x5b6e28,null))['catch'](handleError(_0x5b6e28,null));};exports['getFields']=function(_0x20a598,_0x53d0c8,_0x25f63c){var _0x5cbce8='';return db[_0x14e8('0x2e')]['findOne']({'where':{'id':_0x20a598[_0x14e8('0x46')]['id']},'attributes':['id',_0x14e8('0x55'),'password',_0x14e8('0x56'),_0x14e8('0x57'),_0x14e8('0x58')]})[_0x14e8('0x27')](handleEntityNotFound(_0x53d0c8,null))[_0x14e8('0x27')](function(_0x6dee32){if(_0x6dee32){_0x5cbce8=_0x6dee32[_0x14e8('0x58')];var _0x2ba695=_0x5cbce8[_0x14e8('0x59')](-0x1);if(_0x2ba695==='/'){_0x5cbce8=_0x5cbce8[_0x14e8('0x5a')](0x0,_0x5cbce8[_0x14e8('0x5b')](_0x2ba695));}var _0x2e0e7d={'method':_0x14e8('0x5c'),'uri':util['format']('%s/%s',_0x5cbce8,'ticket_fields'),'json':!![]};switch(_0x6dee32[_0x14e8('0x57')]){case _0x14e8('0x5d'):_0x2e0e7d[_0x14e8('0x5e')]={'Authorization':util['format'](_0x14e8('0x5f'),new Buffer(util['format']('%s:%s',_0x6dee32['username'],_0x6dee32[_0x14e8('0x5d')]))[_0x14e8('0x60')](_0x14e8('0x61')))};break;case'token':_0x2e0e7d[_0x14e8('0x5e')]={'Authorization':util['format'](_0x14e8('0x5f'),new Buffer(util[_0x14e8('0x62')](_0x14e8('0x63'),_0x6dee32[_0x14e8('0x55')],_0x6dee32[_0x14e8('0x56')]))[_0x14e8('0x60')](_0x14e8('0x61')))};break;default:throw new db[(_0x14e8('0x64'))][(_0x14e8('0x65'))]('Unknown\x20authentication\x20type');}return rp(_0x2e0e7d);}})[_0x14e8('0x27')](function(_0x4eb2ef){if(_0x4eb2ef){var _0x355395=[_0x14e8('0x66'),_0x14e8('0x67'),_0x14e8('0x68'),_0x14e8('0x69')];_[_0x14e8('0x6a')](_0x4eb2ef[_0x14e8('0x6b')],function(_0x308617){return _0x355395[_0x14e8('0x6c')](_0x308617['type']);});return{'count':_0x4eb2ef[_0x14e8('0x6b')][_0x14e8('0x39')],'rows':_[_0x14e8('0x2d')](_0x4eb2ef[_0x14e8('0x6b')],function(_0x492757){return{'id':_0x492757['id'],'name':_0x492757[_0x14e8('0x6d')]>0x7?_0x492757[_0x14e8('0x6e')]:_0x492757[_0x14e8('0x30')],'custom':_0x492757[_0x14e8('0x6d')]>0x7?!![]:![],'options':_0x492757['system_field_options']?_0x492757[_0x14e8('0x6f')]:_0x492757['custom_field_options']?_0x492757[_0x14e8('0x70')]:[]};})};}})['then'](respondWithResult(_0x53d0c8,null))['catch'](function(_0x3e820f){var _0xb68079=_0x20a598[_0x14e8('0x34')][_0x14e8('0x71')]?0x1f4:_0x3e820f[_0x14e8('0x72')]||0x1f4;logger[_0x14e8('0x28')](_0x14e8('0x73'),_0x14e8('0x74'),_0xb68079,JSON[_0x14e8('0x75')](_0x3e820f));delete _0x3e820f[_0x14e8('0x2a')];if(_0xb68079===0x191){_0xb68079=0x190;}_0x53d0c8[_0x14e8('0x1c')](_0xb68079)['send'](_0x20a598[_0x14e8('0x34')][_0x14e8('0x71')]?{'message':_0x14e8('0x76'),'statusCode':_0x3e820f['statusCode']}:_0x3e820f);});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xef5b=['rimraf','../../config/environment','./intZendeskAccount.attributes','../../components/integrations/configuration','int_zendesk_accounts','util','../../config/logger','api','moment','bluebird','request-promise','path'];(function(_0x55e08b,_0x421620){var _0xd1a7ff=function(_0x58c7ff){while(--_0x58c7ff){_0x55e08b['push'](_0x55e08b['shift']());}};_0xd1a7ff(++_0x421620);}(_0xef5b,0x16d));var _0xbef5=function(_0x50cba8,_0x2acf1c){_0x50cba8=_0x50cba8-0x0;var _0x326c72=_0xef5b[_0x50cba8];return _0x326c72;};'use strict';var _=require('lodash');var util=require(_0xbef5('0x0'));var logger=require(_0xbef5('0x1'))(_0xbef5('0x2'));var moment=require(_0xbef5('0x3'));var BPromise=require(_0xbef5('0x4'));var rp=require(_0xbef5('0x5'));var fs=require('fs');var path=require(_0xbef5('0x6'));var rimraf=require(_0xbef5('0x7'));var config=require(_0xbef5('0x8'));var attributes=require(_0xbef5('0x9'));var integrations=require(_0xbef5('0xa'));module['exports']=function(_0x3150f9,_0x381790){return _0x3150f9['define']('ZendeskAccount',attributes,{'tableName':_0xbef5('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x521d=['lodash','util','../../config/logger','bluebird','request-promise','./intZendeskAccount.attributes','../../components/integrations/configuration','exports','define','int_zendesk_accounts'];(function(_0x1d6093,_0x48ac07){var _0xd1653e=function(_0x956b56){while(--_0x956b56){_0x1d6093['push'](_0x1d6093['shift']());}};_0xd1653e(++_0x48ac07);}(_0x521d,0x1d6));var _0xd521=function(_0x2b0898,_0x51db61){_0x2b0898=_0x2b0898-0x0;var _0x47531b=_0x521d[_0x2b0898];return _0x47531b;};'use strict';var _=require(_0xd521('0x0'));var util=require(_0xd521('0x1'));var logger=require(_0xd521('0x2'))('api');var moment=require('moment');var BPromise=require(_0xd521('0x3'));var rp=require(_0xd521('0x4'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0xd521('0x5'));var integrations=require(_0xd521('0x6'));module[_0xd521('0x7')]=function(_0x28d2cb,_0x32b5e1){return _0x28d2cb[_0xd521('0x8')]('ZendeskAccount',attributes,{'tableName':_0xd521('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x395b=['../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','request','info','debug','ZendeskAccount,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','ZendeskAccount,\x20%s,\x20%s','message','catch','GetZendeskAccount','options','raw','include','map','attributes','model','find','where','then','ShowZendeskAccount','lodash','randomstring','ioredis'];(function(_0x1aec47,_0x122d58){var _0x5cf99b=function(_0x3b21fb){while(--_0x3b21fb){_0x1aec47['push'](_0x1aec47['shift']());}};_0x5cf99b(++_0x122d58);}(_0x395b,0x79));var _0xb395=function(_0x2e334b,_0x426b6e){_0x2e334b=_0x2e334b-0x0;var _0x390570=_0x395b[_0x2e334b];return _0x390570;};'use strict';var _=require(_0xb395('0x0'));var util=require('util');var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0xb395('0x1'));var fs=require('fs');var Redis=require(_0xb395('0x2'));var db=require(_0xb395('0x3'))['db'];var utils=require(_0xb395('0x4'));var logger=require(_0xb395('0x5'))('rpc');var config=require(_0xb395('0x6'));var jayson=require(_0xb395('0x7'));var client=jayson[_0xb395('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0x24018e,_0x5828bf,_0xb2b38f){return new BPromise(function(_0x1f6c9f,_0x5adde2){return client[_0xb395('0x9')](_0x24018e,_0xb2b38f)['then'](function(_0x570667){logger[_0xb395('0xa')]('ZendeskAccount,\x20%s,\x20%s',_0x5828bf,'request\x20sent');logger[_0xb395('0xb')](_0xb395('0xc'),_0x5828bf,_0xb395('0xd'),JSON[_0xb395('0xe')](_0x570667));if(_0x570667[_0xb395('0xf')]){if(_0x570667[_0xb395('0xf')][_0xb395('0x10')]===0x1f4){logger[_0xb395('0xf')](_0xb395('0x11'),_0x5828bf,_0x570667['error'][_0xb395('0x12')]);return _0x5adde2(_0x570667[_0xb395('0xf')][_0xb395('0x12')]);}logger[_0xb395('0xf')](_0xb395('0x11'),_0x5828bf,_0x570667['error'][_0xb395('0x12')]);return _0x1f6c9f(_0x570667[_0xb395('0xf')]['message']);}else{logger['info']('ZendeskAccount,\x20%s,\x20%s',_0x5828bf,_0xb395('0xd'));_0x1f6c9f(_0x570667['result'][_0xb395('0x12')]);}})[_0xb395('0x13')](function(_0x349684){logger[_0xb395('0xf')](_0xb395('0x11'),_0x5828bf,_0x349684);_0x5adde2(_0x349684);});});}exports[_0xb395('0x14')]=function(_0x2c0414){var _0x561cbd=this;return new Promise(function(_0x1c3eb9,_0x4fcdbc){return db['ZendeskAccount']['findAll']({'raw':_0x2c0414[_0xb395('0x15')]?_0x2c0414[_0xb395('0x15')][_0xb395('0x16')]===undefined?!![]:![]:!![],'where':_0x2c0414['options']?_0x2c0414[_0xb395('0x15')]['where']||null:null,'attributes':_0x2c0414['options']?_0x2c0414[_0xb395('0x15')]['attributes']||null:null,'limit':_0x2c0414[_0xb395('0x15')]?_0x2c0414['options']['limit']||null:null,'include':_0x2c0414[_0xb395('0x15')]?_0x2c0414['options'][_0xb395('0x17')]?_[_0xb395('0x18')](_0x2c0414['options'][_0xb395('0x17')],function(_0x1b163f){return{'model':db[_0x1b163f['model']],'as':_0x1b163f['as'],'attributes':_0x1b163f['attributes'],'include':_0x1b163f[_0xb395('0x17')]?_[_0xb395('0x18')](_0x1b163f[_0xb395('0x17')],function(_0x1d336b){return{'model':db[_0x1d336b['model']],'as':_0x1d336b['as'],'attributes':_0x1d336b[_0xb395('0x19')],'include':_0x1d336b[_0xb395('0x17')]?_[_0xb395('0x18')](_0x1d336b['include'],function(_0x226162){return{'model':db[_0x226162[_0xb395('0x1a')]],'as':_0x226162['as'],'attributes':_0x226162[_0xb395('0x19')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x2f765c){logger[_0xb395('0xa')](_0xb395('0x14'),_0x2c0414);logger[_0xb395('0xb')](_0xb395('0x14'),_0x2c0414,JSON[_0xb395('0xe')](_0x2f765c));_0x1c3eb9(_0x2f765c);})[_0xb395('0x13')](function(_0x7b29c8){logger[_0xb395('0xf')](_0xb395('0x14'),_0x7b29c8[_0xb395('0x12')],_0x2c0414);_0x4fcdbc(_0x561cbd['error'](0x1f4,_0x7b29c8['message']));});});};exports['ShowZendeskAccount']=function(_0x47be48){var _0x3c7c4b=this;return new Promise(function(_0x1ecc90,_0x2501ba){return db['ZendeskAccount'][_0xb395('0x1b')]({'raw':_0x47be48[_0xb395('0x15')]?_0x47be48[_0xb395('0x15')]['raw']===undefined?!![]:![]:!![],'where':_0x47be48['options']?_0x47be48[_0xb395('0x15')][_0xb395('0x1c')]||null:null,'attributes':_0x47be48[_0xb395('0x15')]?_0x47be48[_0xb395('0x15')][_0xb395('0x19')]||null:null,'include':_0x47be48[_0xb395('0x15')]?_0x47be48[_0xb395('0x15')][_0xb395('0x17')]?_['map'](_0x47be48[_0xb395('0x15')][_0xb395('0x17')],function(_0x1720a1){return{'model':db[_0x1720a1[_0xb395('0x1a')]],'as':_0x1720a1['as'],'attributes':_0x1720a1[_0xb395('0x19')],'include':_0x1720a1[_0xb395('0x17')]?_[_0xb395('0x18')](_0x1720a1['include'],function(_0x9b76c7){return{'model':db[_0x9b76c7[_0xb395('0x1a')]],'as':_0x9b76c7['as'],'attributes':_0x9b76c7[_0xb395('0x19')],'include':_0x9b76c7[_0xb395('0x17')]?_[_0xb395('0x18')](_0x9b76c7[_0xb395('0x17')],function(_0x260d47){return{'model':db[_0x260d47[_0xb395('0x1a')]],'as':_0x260d47['as'],'attributes':_0x260d47['attributes']};}):[]};}):[]};}):[]:[]})[_0xb395('0x1d')](function(_0x132688){logger[_0xb395('0xa')]('ShowZendeskAccount',_0x47be48);logger[_0xb395('0xb')](_0xb395('0x1e'),_0x47be48,JSON[_0xb395('0xe')](_0x132688));_0x1ecc90(_0x132688);})['catch'](function(_0x4fb44e){logger[_0xb395('0xf')](_0xb395('0x1e'),_0x4fb44e[_0xb395('0x12')],_0x47be48);_0x2501ba(_0x3c7c4b['error'](0x1f4,_0x4fb44e['message']));});});};
\ No newline at end of file
+var _0xfb00=['client','http','request','then','info','ZendeskAccount,\x20%s,\x20%s','request\x20sent','ZendeskAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','GetZendeskAccount','ZendeskAccount','options','raw','where','attributes','limit','include','map','model','ShowZendeskAccount','find','debug','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise'];(function(_0x151721,_0x20d5bc){var _0x2deaa7=function(_0x499812){while(--_0x499812){_0x151721['push'](_0x151721['shift']());}};_0x2deaa7(++_0x20d5bc);}(_0xfb00,0x8a));var _0x0fb0=function(_0x446d41,_0x7b235){_0x446d41=_0x446d41-0x0;var _0x214844=_0xfb00[_0x446d41];return _0x214844;};'use strict';var _=require('lodash');var util=require(_0x0fb0('0x0'));var moment=require(_0x0fb0('0x1'));var BPromise=require(_0x0fb0('0x2'));var rs=require(_0x0fb0('0x3'));var fs=require('fs');var Redis=require(_0x0fb0('0x4'));var db=require(_0x0fb0('0x5'))['db'];var utils=require(_0x0fb0('0x6'));var logger=require(_0x0fb0('0x7'))('rpc');var config=require(_0x0fb0('0x8'));var jayson=require(_0x0fb0('0x9'));var client=jayson[_0x0fb0('0xa')][_0x0fb0('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x39d8ff,_0x46f9f1,_0x50cb83){return new BPromise(function(_0x2ca7cc,_0x17f452){return client[_0x0fb0('0xc')](_0x39d8ff,_0x50cb83)[_0x0fb0('0xd')](function(_0x4ddbed){logger[_0x0fb0('0xe')](_0x0fb0('0xf'),_0x46f9f1,_0x0fb0('0x10'));logger['debug'](_0x0fb0('0x11'),_0x46f9f1,_0x0fb0('0x10'),JSON[_0x0fb0('0x12')](_0x4ddbed));if(_0x4ddbed[_0x0fb0('0x13')]){if(_0x4ddbed[_0x0fb0('0x13')][_0x0fb0('0x14')]===0x1f4){logger[_0x0fb0('0x13')](_0x0fb0('0xf'),_0x46f9f1,_0x4ddbed[_0x0fb0('0x13')]['message']);return _0x17f452(_0x4ddbed['error'][_0x0fb0('0x15')]);}logger[_0x0fb0('0x13')]('ZendeskAccount,\x20%s,\x20%s',_0x46f9f1,_0x4ddbed[_0x0fb0('0x13')][_0x0fb0('0x15')]);return _0x2ca7cc(_0x4ddbed[_0x0fb0('0x13')][_0x0fb0('0x15')]);}else{logger['info'](_0x0fb0('0xf'),_0x46f9f1,'request\x20sent');_0x2ca7cc(_0x4ddbed[_0x0fb0('0x16')][_0x0fb0('0x15')]);}})[_0x0fb0('0x17')](function(_0x3c0b1d){logger['error']('ZendeskAccount,\x20%s,\x20%s',_0x46f9f1,_0x3c0b1d);_0x17f452(_0x3c0b1d);});});}exports[_0x0fb0('0x18')]=function(_0x59cfd5){var _0x271d90=this;return new Promise(function(_0x25bd09,_0x149eed){return db[_0x0fb0('0x19')]['findAll']({'raw':_0x59cfd5[_0x0fb0('0x1a')]?_0x59cfd5[_0x0fb0('0x1a')][_0x0fb0('0x1b')]===undefined?!![]:![]:!![],'where':_0x59cfd5[_0x0fb0('0x1a')]?_0x59cfd5[_0x0fb0('0x1a')][_0x0fb0('0x1c')]||null:null,'attributes':_0x59cfd5[_0x0fb0('0x1a')]?_0x59cfd5[_0x0fb0('0x1a')][_0x0fb0('0x1d')]||null:null,'limit':_0x59cfd5[_0x0fb0('0x1a')]?_0x59cfd5[_0x0fb0('0x1a')][_0x0fb0('0x1e')]||null:null,'include':_0x59cfd5['options']?_0x59cfd5[_0x0fb0('0x1a')][_0x0fb0('0x1f')]?_[_0x0fb0('0x20')](_0x59cfd5['options'][_0x0fb0('0x1f')],function(_0x1752f0){return{'model':db[_0x1752f0[_0x0fb0('0x21')]],'as':_0x1752f0['as'],'attributes':_0x1752f0['attributes'],'include':_0x1752f0[_0x0fb0('0x1f')]?_[_0x0fb0('0x20')](_0x1752f0[_0x0fb0('0x1f')],function(_0xbcacc6){return{'model':db[_0xbcacc6[_0x0fb0('0x21')]],'as':_0xbcacc6['as'],'attributes':_0xbcacc6['attributes'],'include':_0xbcacc6['include']?_[_0x0fb0('0x20')](_0xbcacc6[_0x0fb0('0x1f')],function(_0x90e4ad){return{'model':db[_0x90e4ad[_0x0fb0('0x21')]],'as':_0x90e4ad['as'],'attributes':_0x90e4ad['attributes']};}):[]};}):[]};}):[]:[]})[_0x0fb0('0xd')](function(_0x3c6395){logger[_0x0fb0('0xe')](_0x0fb0('0x18'),_0x59cfd5);logger['debug']('GetZendeskAccount',_0x59cfd5,JSON[_0x0fb0('0x12')](_0x3c6395));_0x25bd09(_0x3c6395);})[_0x0fb0('0x17')](function(_0x2cda09){logger['error']('GetZendeskAccount',_0x2cda09[_0x0fb0('0x15')],_0x59cfd5);_0x149eed(_0x271d90[_0x0fb0('0x13')](0x1f4,_0x2cda09[_0x0fb0('0x15')]));});});};exports[_0x0fb0('0x22')]=function(_0x149d2f){var _0x25c370=this;return new Promise(function(_0x2e57e8,_0x2b149e){return db[_0x0fb0('0x19')][_0x0fb0('0x23')]({'raw':_0x149d2f['options']?_0x149d2f[_0x0fb0('0x1a')][_0x0fb0('0x1b')]===undefined?!![]:![]:!![],'where':_0x149d2f[_0x0fb0('0x1a')]?_0x149d2f['options']['where']||null:null,'attributes':_0x149d2f['options']?_0x149d2f['options']['attributes']||null:null,'include':_0x149d2f[_0x0fb0('0x1a')]?_0x149d2f[_0x0fb0('0x1a')][_0x0fb0('0x1f')]?_[_0x0fb0('0x20')](_0x149d2f[_0x0fb0('0x1a')][_0x0fb0('0x1f')],function(_0x235cde){return{'model':db[_0x235cde['model']],'as':_0x235cde['as'],'attributes':_0x235cde[_0x0fb0('0x1d')],'include':_0x235cde[_0x0fb0('0x1f')]?_[_0x0fb0('0x20')](_0x235cde[_0x0fb0('0x1f')],function(_0x580086){return{'model':db[_0x580086[_0x0fb0('0x21')]],'as':_0x580086['as'],'attributes':_0x580086[_0x0fb0('0x1d')],'include':_0x580086[_0x0fb0('0x1f')]?_[_0x0fb0('0x20')](_0x580086['include'],function(_0x5d2c48){return{'model':db[_0x5d2c48['model']],'as':_0x5d2c48['as'],'attributes':_0x5d2c48[_0x0fb0('0x1d')]};}):[]};}):[]};}):[]:[]})[_0x0fb0('0xd')](function(_0x24eda7){logger[_0x0fb0('0xe')](_0x0fb0('0x22'),_0x149d2f);logger[_0x0fb0('0x24')]('ShowZendeskAccount',_0x149d2f,JSON[_0x0fb0('0x12')](_0x24eda7));_0x2e57e8(_0x24eda7);})[_0x0fb0('0x17')](function(_0x523683){logger[_0x0fb0('0x13')]('ShowZendeskAccount',_0x523683[_0x0fb0('0x15')],_0x149d2f);_0x2b149e(_0x25c370[_0x0fb0('0x13')](0x1f4,_0x523683[_0x0fb0('0x15')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0bb5=['put','delete','destroy','exports','multer','util','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./intZendeskConfiguration.controller','get','/:id','isAuthenticated','show','getFields','/:id/subjects','getSubjects','/:id/descriptions','getDescriptions','/:id/tags','getTags','create','post','setTags'];(function(_0x472ffa,_0x407693){var _0x3f9225=function(_0x583bbe){while(--_0x583bbe){_0x472ffa['push'](_0x472ffa['shift']());}};_0x3f9225(++_0x407693);}(_0x0bb5,0x148));var _0x50bb=function(_0x3bc12e,_0x4e80ca){_0x3bc12e=_0x3bc12e-0x0;var _0x54a13d=_0x0bb5[_0x3bc12e];return _0x54a13d;};'use strict';var multer=require(_0x50bb('0x0'));var util=require(_0x50bb('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require(_0x50bb('0x2'));var router=express[_0x50bb('0x3')]();var fs_extra=require(_0x50bb('0x4'));var auth=require(_0x50bb('0x5'));var interaction=require(_0x50bb('0x6'));var config=require(_0x50bb('0x7'));var controller=require(_0x50bb('0x8'));router[_0x50bb('0x9')]('/',auth['isAuthenticated'](),controller['index']);router[_0x50bb('0x9')](_0x50bb('0xa'),auth[_0x50bb('0xb')](),controller[_0x50bb('0xc')]);router['get']('/:id/fields',auth[_0x50bb('0xb')](),controller[_0x50bb('0xd')]);router[_0x50bb('0x9')](_0x50bb('0xe'),auth['isAuthenticated'](),controller[_0x50bb('0xf')]);router[_0x50bb('0x9')](_0x50bb('0x10'),auth[_0x50bb('0xb')](),controller[_0x50bb('0x11')]);router[_0x50bb('0x9')](_0x50bb('0x12'),auth['isAuthenticated'](),controller[_0x50bb('0x13')]);router['post']('/',auth[_0x50bb('0xb')](),controller[_0x50bb('0x14')]);router[_0x50bb('0x15')]('/:id/tags',auth[_0x50bb('0xb')](),controller[_0x50bb('0x16')]);router[_0x50bb('0x17')]('/:id',auth[_0x50bb('0xb')](),controller['update']);router[_0x50bb('0x18')](_0x50bb('0xa'),auth[_0x50bb('0xb')](),controller[_0x50bb('0x19')]);module[_0x50bb('0x1a')]=router;
\ No newline at end of file
+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(_0xd5cc5e,_0x3eaeac){var _0x586889=function(_0x57a47e){while(--_0x57a47e){_0xd5cc5e['push'](_0xd5cc5e['shift']());}};_0x586889(++_0x3eaeac);}(_0x087b,0x11a));var _0xb087=function(_0x576170,_0x1712ae){_0x576170=_0x576170-0x0;var _0x397c70=_0x087b[_0x576170];return _0x397c70;};'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
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb522=['exports','STRING'];(function(_0xef8b9c,_0x1a4667){var _0x538186=function(_0x210925){while(--_0x210925){_0xef8b9c['push'](_0xef8b9c['shift']());}};_0x538186(++_0x1a4667);}(_0xb522,0xd2));var _0x2b52=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xb522[_0x3dd15e];return _0x231fd0;};'use strict';var Sequelize=require('sequelize');module[_0x2b52('0x0')]={'name':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0x2b52('0x1')]}};
\ No newline at end of file
+var _0x28d6=['sequelize','exports','STRING'];(function(_0x4e0d05,_0x1252ef){var _0x568b50=function(_0x5f3071){while(--_0x5f3071){_0x4e0d05['push'](_0x4e0d05['shift']());}};_0x568b50(++_0x1252ef);}(_0x28d6,0xd5));var _0x628d=function(_0x1dac7a,_0x1828ce){_0x1dac7a=_0x1dac7a-0x0;var _0x4cb363=_0x28d6[_0x1dac7a];return _0x4cb363;};'use strict';var Sequelize=require(_0x628d('0x0'));module[_0x628d('0x1')]={'name':{'type':Sequelize[_0x628d('0x2')]},'description':{'type':Sequelize[_0x628d('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa3b1=['ZendeskField','order','sort','findOne','pick','getSubjects','getDescriptions','getTags','Tag','setTags','ids','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','util','path','ejs','fs-extra','squel','crypto','desk.js','to-csv','../../components/parsers/qs','../../config/license/hardware','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','limit','undefined','count','set','apply','save','then','destroy','stack','name','send','index','map','ZendeskConfiguration','rawAttributes','fieldName','type','key','model','filters','intersection','query','attributes','fields','length','hasOwnProperty','nolimit','where','filter','merge','VIRTUAL','options','includeAll','include','rows','show','params','keys','find','catch','create','update','body','getFields'];(function(_0x5bd28f,_0x3ee865){var _0x57e755=function(_0x31229e){while(--_0x31229e){_0x5bd28f['push'](_0x5bd28f['shift']());}};_0x57e755(++_0x3ee865);}(_0xa3b1,0x143));var _0x1a3b=function(_0x161f85,_0x1b1968){_0x161f85=_0x161f85-0x0;var _0x3f98ad=_0xa3b1[_0x161f85];return _0x3f98ad;};'use strict';var emlformat=require(_0x1a3b('0x0'));var rimraf=require(_0x1a3b('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x1a3b('0x2'));var rp=require(_0x1a3b('0x3'));var moment=require(_0x1a3b('0x4'));var BPromise=require(_0x1a3b('0x5'));var Mustache=require('mustache');var util=require(_0x1a3b('0x6'));var path=require(_0x1a3b('0x7'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x1a3b('0x8'));var fs=require('fs');var fs_extra=require(_0x1a3b('0x9'));var _=require('lodash');var squel=require(_0x1a3b('0xa'));var crypto=require(_0x1a3b('0xb'));var jsforce=require('jsforce');var deskjs=require(_0x1a3b('0xc'));var toCsv=require(_0x1a3b('0xd'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x1a3b('0xe'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x1a3b('0xf'));var logger=require('../../config/logger')('api');var utils=require(_0x1a3b('0x10'));var config=require('../../config/environment');var licenseUtil=require(_0x1a3b('0x11'));var db=require(_0x1a3b('0x12'))['db'];function respondWithStatusCode(_0x1d01fe,_0x4a6553){_0x4a6553=_0x4a6553||0xcc;return function(_0x46e043){if(_0x46e043){return _0x1d01fe[_0x1a3b('0x13')](_0x4a6553);}return _0x1d01fe[_0x1a3b('0x14')](_0x4a6553)[_0x1a3b('0x15')]();};}function respondWithResult(_0x1fafc4,_0x32327d){_0x32327d=_0x32327d||0xc8;return function(_0x404e49){if(_0x404e49){return _0x1fafc4[_0x1a3b('0x14')](_0x32327d)['json'](_0x404e49);}};}function respondWithFilteredResult(_0x524649,_0x4581e8){return function(_0x3a3de2){if(_0x3a3de2){var _0x1207fa=typeof _0x4581e8[_0x1a3b('0x16')]==='undefined'&&typeof _0x4581e8[_0x1a3b('0x17')]===_0x1a3b('0x18');var _0x250ade=_0x3a3de2[_0x1a3b('0x19')];var _0x34813a=_0x1207fa?0x0:_0x4581e8[_0x1a3b('0x16')];var _0xbec600=_0x1207fa?_0x3a3de2[_0x1a3b('0x19')]:_0x4581e8[_0x1a3b('0x16')]+_0x4581e8[_0x1a3b('0x17')];var _0x43a526;if(_0xbec600>=_0x250ade){_0xbec600=_0x250ade;_0x43a526=0xc8;}else{_0x43a526=0xce;}_0x524649['status'](_0x43a526);return _0x524649[_0x1a3b('0x1a')]('Content-Range',_0x34813a+'-'+_0xbec600+'/'+_0x250ade)['json'](_0x3a3de2);}return null;};}function patchUpdates(_0x1b4e4c){return function(_0xc43e2){try{jsonpatch[_0x1a3b('0x1b')](_0xc43e2,_0x1b4e4c,!![]);}catch(_0x5e0904){return BPromise['reject'](_0x5e0904);}return _0xc43e2[_0x1a3b('0x1c')]();};}function saveUpdates(_0x31e811,_0x246eec){return function(_0x1a3234){if(_0x1a3234){return _0x1a3234['update'](_0x31e811)[_0x1a3b('0x1d')](function(_0x5ef228){return _0x5ef228;});}return null;};}function removeEntity(_0xb06211,_0xb7ad6b){return function(_0x55c0e7){if(_0x55c0e7){return _0x55c0e7[_0x1a3b('0x1e')]()['then'](function(){_0xb06211[_0x1a3b('0x14')](0xcc)['end']();});}};}function handleEntityNotFound(_0x2cce4e,_0x43276e){return function(_0x10cc37){if(!_0x10cc37){_0x2cce4e[_0x1a3b('0x13')](0x194);}return _0x10cc37;};}function handleError(_0x1dcd75,_0x1c8e87){_0x1c8e87=_0x1c8e87||0x1f4;return function(_0x23268f){logger['error'](_0x23268f[_0x1a3b('0x1f')]);if(_0x23268f[_0x1a3b('0x20')]){delete _0x23268f[_0x1a3b('0x20')];}_0x1dcd75[_0x1a3b('0x14')](_0x1c8e87)[_0x1a3b('0x21')](_0x23268f);};}exports[_0x1a3b('0x22')]=function(_0xf0fadf,_0x1910c4){var _0x1c377e={},_0x14edfa={},_0x1a6f51={'count':0x0,'rows':[]};var _0x59193a=_[_0x1a3b('0x23')](db[_0x1a3b('0x24')][_0x1a3b('0x25')],function(_0x392782){return{'name':_0x392782[_0x1a3b('0x26')],'type':_0x392782[_0x1a3b('0x27')][_0x1a3b('0x28')]};});_0x14edfa[_0x1a3b('0x29')]=_[_0x1a3b('0x23')](_0x59193a,_0x1a3b('0x20'));_0x14edfa['query']=_['keys'](_0xf0fadf['query']);_0x14edfa[_0x1a3b('0x2a')]=_[_0x1a3b('0x2b')](_0x14edfa[_0x1a3b('0x29')],_0x14edfa[_0x1a3b('0x2c')]);_0x1c377e[_0x1a3b('0x2d')]=_[_0x1a3b('0x2b')](_0x14edfa['model'],qs['fields'](_0xf0fadf[_0x1a3b('0x2c')][_0x1a3b('0x2e')]));_0x1c377e[_0x1a3b('0x2d')]=_0x1c377e['attributes'][_0x1a3b('0x2f')]?_0x1c377e[_0x1a3b('0x2d')]:_0x14edfa[_0x1a3b('0x29')];if(!_0xf0fadf[_0x1a3b('0x2c')][_0x1a3b('0x30')](_0x1a3b('0x31'))){_0x1c377e[_0x1a3b('0x17')]=qs[_0x1a3b('0x17')](_0xf0fadf[_0x1a3b('0x2c')][_0x1a3b('0x17')]);_0x1c377e[_0x1a3b('0x16')]=qs[_0x1a3b('0x16')](_0xf0fadf[_0x1a3b('0x2c')][_0x1a3b('0x16')]);}_0x1c377e['order']=qs['sort'](_0xf0fadf[_0x1a3b('0x2c')]['sort']);_0x1c377e[_0x1a3b('0x32')]=qs['filters'](_['pick'](_0xf0fadf['query'],_0x14edfa['filters']),_0x59193a);if(_0xf0fadf[_0x1a3b('0x2c')][_0x1a3b('0x33')]){_0x1c377e[_0x1a3b('0x32')]=_[_0x1a3b('0x34')](_0x1c377e[_0x1a3b('0x32')],{'$or':_[_0x1a3b('0x23')](_0x59193a,function(_0x226e75){if(_0x226e75[_0x1a3b('0x27')]!==_0x1a3b('0x35')){var _0x4df066={};_0x4df066[_0x226e75[_0x1a3b('0x20')]]={'$like':'%'+_0xf0fadf['query']['filter']+'%'};return _0x4df066;}})});}_0x1c377e=_['merge']({},_0x1c377e,_0xf0fadf[_0x1a3b('0x36')]);var _0x3bb800={'where':_0x1c377e[_0x1a3b('0x32')]};return db[_0x1a3b('0x24')]['count'](_0x3bb800)[_0x1a3b('0x1d')](function(_0x3fe54f){_0x1a6f51['count']=_0x3fe54f;if(_0xf0fadf[_0x1a3b('0x2c')][_0x1a3b('0x37')]){_0x1c377e[_0x1a3b('0x38')]=[{'all':!![]}];}return db[_0x1a3b('0x24')]['findAll'](_0x1c377e);})[_0x1a3b('0x1d')](function(_0x290e24){_0x1a6f51[_0x1a3b('0x39')]=_0x290e24;return _0x1a6f51;})[_0x1a3b('0x1d')](respondWithFilteredResult(_0x1910c4,_0x1c377e))['catch'](handleError(_0x1910c4,null));};exports[_0x1a3b('0x3a')]=function(_0xa61512,_0x7eff93){var _0x1b875a={'raw':![],'where':{'id':_0xa61512[_0x1a3b('0x3b')]['id']}},_0x2d7008={};_0x2d7008[_0x1a3b('0x29')]=_[_0x1a3b('0x3c')](db[_0x1a3b('0x24')][_0x1a3b('0x25')]);_0x2d7008[_0x1a3b('0x2c')]=_[_0x1a3b('0x3c')](_0xa61512[_0x1a3b('0x2c')]);_0x2d7008['filters']=_[_0x1a3b('0x2b')](_0x2d7008[_0x1a3b('0x29')],_0x2d7008[_0x1a3b('0x2c')]);_0x1b875a[_0x1a3b('0x2d')]=_['intersection'](_0x2d7008[_0x1a3b('0x29')],qs[_0x1a3b('0x2e')](_0xa61512[_0x1a3b('0x2c')][_0x1a3b('0x2e')]));_0x1b875a[_0x1a3b('0x2d')]=_0x1b875a[_0x1a3b('0x2d')][_0x1a3b('0x2f')]?_0x1b875a[_0x1a3b('0x2d')]:_0x2d7008[_0x1a3b('0x29')];if(_0xa61512[_0x1a3b('0x2c')][_0x1a3b('0x37')]){_0x1b875a[_0x1a3b('0x38')]=[{'all':!![]}];}_0x1b875a=_['merge']({},_0x1b875a,_0xa61512[_0x1a3b('0x36')]);return db[_0x1a3b('0x24')][_0x1a3b('0x3d')](_0x1b875a)[_0x1a3b('0x1d')](handleEntityNotFound(_0x7eff93,null))[_0x1a3b('0x1d')](respondWithResult(_0x7eff93,null))[_0x1a3b('0x3e')](handleError(_0x7eff93,null));};exports[_0x1a3b('0x3f')]=function(_0x21fa72,_0x59b2da){return db[_0x1a3b('0x24')][_0x1a3b('0x3f')](_0x21fa72['body'],{})[_0x1a3b('0x1d')](respondWithResult(_0x59b2da,0xc9))[_0x1a3b('0x3e')](handleError(_0x59b2da,null));};exports[_0x1a3b('0x40')]=function(_0x54e096,_0x484754){if(_0x54e096[_0x1a3b('0x41')]['id']){delete _0x54e096[_0x1a3b('0x41')]['id'];}return db[_0x1a3b('0x24')]['find']({'where':{'id':_0x54e096['params']['id']}})[_0x1a3b('0x1d')](handleEntityNotFound(_0x484754,null))['then'](saveUpdates(_0x54e096['body'],null))[_0x1a3b('0x1d')](respondWithResult(_0x484754,null))[_0x1a3b('0x3e')](handleError(_0x484754,null));};exports[_0x1a3b('0x1e')]=function(_0x9d84,_0x4fd0e1){return db[_0x1a3b('0x24')][_0x1a3b('0x3d')]({'where':{'id':_0x9d84[_0x1a3b('0x3b')]['id']}})['then'](handleEntityNotFound(_0x4fd0e1,null))[_0x1a3b('0x1d')](removeEntity(_0x4fd0e1,null))[_0x1a3b('0x3e')](handleError(_0x4fd0e1,null));};exports[_0x1a3b('0x42')]=function(_0x3c57c5,_0x2ea895,_0x12d3ab){var _0x4c11dd={};var _0x41d5c9={};var _0x205370;var _0x4bb6d8;return db[_0x1a3b('0x24')]['findOne']({'where':{'id':_0x3c57c5['params']['id']}})[_0x1a3b('0x1d')](handleEntityNotFound(_0x2ea895,null))[_0x1a3b('0x1d')](function(_0x6be63f){if(_0x6be63f){_0x205370=_0x6be63f;_0x41d5c9[_0x1a3b('0x29')]=_['keys'](db[_0x1a3b('0x43')][_0x1a3b('0x25')]);_0x41d5c9[_0x1a3b('0x2c')]=_['keys'](_0x3c57c5[_0x1a3b('0x2c')]);_0x41d5c9[_0x1a3b('0x2a')]=_[_0x1a3b('0x2b')](_0x41d5c9['model'],_0x41d5c9[_0x1a3b('0x2c')]);_0x4c11dd[_0x1a3b('0x2d')]=_[_0x1a3b('0x2b')](_0x41d5c9['model'],qs['fields'](_0x3c57c5[_0x1a3b('0x2c')][_0x1a3b('0x2e')]));_0x4c11dd[_0x1a3b('0x2d')]=_0x4c11dd[_0x1a3b('0x2d')][_0x1a3b('0x2f')]?_0x4c11dd[_0x1a3b('0x2d')]:_0x41d5c9[_0x1a3b('0x29')];_0x4c11dd[_0x1a3b('0x44')]=qs[_0x1a3b('0x45')](_0x3c57c5[_0x1a3b('0x2c')]['sort']);_0x4c11dd[_0x1a3b('0x32')]=qs['filters'](_['pick'](_0x3c57c5[_0x1a3b('0x2c')],_0x41d5c9['filters']));if(_0x3c57c5[_0x1a3b('0x2c')]['filter']){_0x4c11dd[_0x1a3b('0x32')]=_[_0x1a3b('0x34')](_0x4c11dd['where'],{'$or':_[_0x1a3b('0x23')](_0x4c11dd['attributes'],function(_0x58fbb2){var _0x58c9e9={};_0x58c9e9[_0x58fbb2]={'$like':'%'+_0x3c57c5[_0x1a3b('0x2c')][_0x1a3b('0x33')]+'%'};return _0x58c9e9;})});}_0x4c11dd=_[_0x1a3b('0x34')]({},_0x4c11dd,_0x3c57c5[_0x1a3b('0x36')]);return _0x205370[_0x1a3b('0x42')](_0x4c11dd);}})[_0x1a3b('0x1d')](function(_0x71c9f7){if(_0x71c9f7){_0x4bb6d8=_0x71c9f7[_0x1a3b('0x2f')];if(!_0x3c57c5[_0x1a3b('0x2c')]['hasOwnProperty'](_0x1a3b('0x31'))){_0x4c11dd[_0x1a3b('0x17')]=qs[_0x1a3b('0x17')](_0x3c57c5[_0x1a3b('0x2c')]['limit']);_0x4c11dd[_0x1a3b('0x16')]=qs['offset'](_0x3c57c5['query'][_0x1a3b('0x16')]);}return _0x205370[_0x1a3b('0x42')](_0x4c11dd);}})[_0x1a3b('0x1d')](function(_0x13d512){if(_0x13d512){return _0x13d512?{'count':_0x4bb6d8,'rows':_0x13d512}:null;}})[_0x1a3b('0x1d')](respondWithResult(_0x2ea895,null))[_0x1a3b('0x3e')](handleError(_0x2ea895,null));};exports['getSubjects']=function(_0x29d50e,_0x47a6df,_0x2c5e26){var _0x1f1202={};var _0x4618b1={};var _0x535f26;var _0xba1a78;return db[_0x1a3b('0x24')][_0x1a3b('0x46')]({'where':{'id':_0x29d50e['params']['id']}})['then'](handleEntityNotFound(_0x47a6df,null))[_0x1a3b('0x1d')](function(_0x5cb8ab){if(_0x5cb8ab){_0x535f26=_0x5cb8ab;_0x4618b1['model']=_['keys'](db[_0x1a3b('0x43')]['rawAttributes']);_0x4618b1['query']=_[_0x1a3b('0x3c')](_0x29d50e[_0x1a3b('0x2c')]);_0x4618b1[_0x1a3b('0x2a')]=_[_0x1a3b('0x2b')](_0x4618b1[_0x1a3b('0x29')],_0x4618b1[_0x1a3b('0x2c')]);_0x1f1202['attributes']=_[_0x1a3b('0x2b')](_0x4618b1[_0x1a3b('0x29')],qs[_0x1a3b('0x2e')](_0x29d50e[_0x1a3b('0x2c')][_0x1a3b('0x2e')]));_0x1f1202['attributes']=_0x1f1202[_0x1a3b('0x2d')]['length']?_0x1f1202['attributes']:_0x4618b1[_0x1a3b('0x29')];_0x1f1202[_0x1a3b('0x44')]=qs[_0x1a3b('0x45')](_0x29d50e['query']['sort']);_0x1f1202[_0x1a3b('0x32')]=qs[_0x1a3b('0x2a')](_[_0x1a3b('0x47')](_0x29d50e[_0x1a3b('0x2c')],_0x4618b1['filters']));if(_0x29d50e[_0x1a3b('0x2c')][_0x1a3b('0x33')]){_0x1f1202['where']=_[_0x1a3b('0x34')](_0x1f1202['where'],{'$or':_['map'](_0x1f1202[_0x1a3b('0x2d')],function(_0x31ca46){var _0x18ca7f={};_0x18ca7f[_0x31ca46]={'$like':'%'+_0x29d50e[_0x1a3b('0x2c')][_0x1a3b('0x33')]+'%'};return _0x18ca7f;})});}_0x1f1202=_[_0x1a3b('0x34')]({},_0x1f1202,_0x29d50e['options']);return _0x535f26['getSubjects'](_0x1f1202);}})[_0x1a3b('0x1d')](function(_0x33ce65){if(_0x33ce65){_0xba1a78=_0x33ce65[_0x1a3b('0x2f')];if(!_0x29d50e[_0x1a3b('0x2c')][_0x1a3b('0x30')](_0x1a3b('0x31'))){_0x1f1202['limit']=qs[_0x1a3b('0x17')](_0x29d50e['query'][_0x1a3b('0x17')]);_0x1f1202[_0x1a3b('0x16')]=qs[_0x1a3b('0x16')](_0x29d50e[_0x1a3b('0x2c')][_0x1a3b('0x16')]);}return _0x535f26[_0x1a3b('0x48')](_0x1f1202);}})[_0x1a3b('0x1d')](function(_0x2d119a){if(_0x2d119a){return _0x2d119a?{'count':_0xba1a78,'rows':_0x2d119a}:null;}})[_0x1a3b('0x1d')](respondWithResult(_0x47a6df,null))[_0x1a3b('0x3e')](handleError(_0x47a6df,null));};exports[_0x1a3b('0x49')]=function(_0x39349f,_0x221489,_0xd35204){var _0x5672e8={};var _0x3988c2={};var _0x2ffdb7;var _0x3e9e08;return db['ZendeskConfiguration'][_0x1a3b('0x46')]({'where':{'id':_0x39349f[_0x1a3b('0x3b')]['id']}})[_0x1a3b('0x1d')](handleEntityNotFound(_0x221489,null))['then'](function(_0x11157d){if(_0x11157d){_0x2ffdb7=_0x11157d;_0x3988c2[_0x1a3b('0x29')]=_[_0x1a3b('0x3c')](db['ZendeskField'][_0x1a3b('0x25')]);_0x3988c2[_0x1a3b('0x2c')]=_[_0x1a3b('0x3c')](_0x39349f['query']);_0x3988c2['filters']=_[_0x1a3b('0x2b')](_0x3988c2[_0x1a3b('0x29')],_0x3988c2[_0x1a3b('0x2c')]);_0x5672e8[_0x1a3b('0x2d')]=_[_0x1a3b('0x2b')](_0x3988c2['model'],qs[_0x1a3b('0x2e')](_0x39349f[_0x1a3b('0x2c')]['fields']));_0x5672e8['attributes']=_0x5672e8[_0x1a3b('0x2d')][_0x1a3b('0x2f')]?_0x5672e8[_0x1a3b('0x2d')]:_0x3988c2[_0x1a3b('0x29')];_0x5672e8[_0x1a3b('0x44')]=qs[_0x1a3b('0x45')](_0x39349f[_0x1a3b('0x2c')][_0x1a3b('0x45')]);_0x5672e8[_0x1a3b('0x32')]=qs[_0x1a3b('0x2a')](_[_0x1a3b('0x47')](_0x39349f['query'],_0x3988c2[_0x1a3b('0x2a')]));if(_0x39349f[_0x1a3b('0x2c')][_0x1a3b('0x33')]){_0x5672e8['where']=_['merge'](_0x5672e8[_0x1a3b('0x32')],{'$or':_['map'](_0x5672e8[_0x1a3b('0x2d')],function(_0x1bfcb1){var _0x2b42cb={};_0x2b42cb[_0x1bfcb1]={'$like':'%'+_0x39349f[_0x1a3b('0x2c')][_0x1a3b('0x33')]+'%'};return _0x2b42cb;})});}_0x5672e8=_[_0x1a3b('0x34')]({},_0x5672e8,_0x39349f[_0x1a3b('0x36')]);return _0x2ffdb7[_0x1a3b('0x49')](_0x5672e8);}})[_0x1a3b('0x1d')](function(_0x2ee7bf){if(_0x2ee7bf){_0x3e9e08=_0x2ee7bf[_0x1a3b('0x2f')];if(!_0x39349f['query']['hasOwnProperty'](_0x1a3b('0x31'))){_0x5672e8['limit']=qs[_0x1a3b('0x17')](_0x39349f[_0x1a3b('0x2c')][_0x1a3b('0x17')]);_0x5672e8[_0x1a3b('0x16')]=qs[_0x1a3b('0x16')](_0x39349f[_0x1a3b('0x2c')][_0x1a3b('0x16')]);}return _0x2ffdb7['getDescriptions'](_0x5672e8);}})[_0x1a3b('0x1d')](function(_0x13bb36){if(_0x13bb36){return _0x13bb36?{'count':_0x3e9e08,'rows':_0x13bb36}:null;}})[_0x1a3b('0x1d')](respondWithResult(_0x221489,null))['catch'](handleError(_0x221489,null));};exports[_0x1a3b('0x4a')]=function(_0x5052aa,_0x4c92ec,_0x3cb854){var _0x407ca7={};var _0x2ae2e5={};var _0x43d981;var _0x4b465f;return db[_0x1a3b('0x24')]['findOne']({'where':{'id':_0x5052aa[_0x1a3b('0x3b')]['id']}})[_0x1a3b('0x1d')](handleEntityNotFound(_0x4c92ec,null))[_0x1a3b('0x1d')](function(_0x39daad){if(_0x39daad){_0x43d981=_0x39daad;_0x2ae2e5[_0x1a3b('0x29')]=_[_0x1a3b('0x3c')](db[_0x1a3b('0x4b')][_0x1a3b('0x25')]);_0x2ae2e5[_0x1a3b('0x2c')]=_[_0x1a3b('0x3c')](_0x5052aa[_0x1a3b('0x2c')]);_0x2ae2e5[_0x1a3b('0x2a')]=_[_0x1a3b('0x2b')](_0x2ae2e5[_0x1a3b('0x29')],_0x2ae2e5['query']);_0x407ca7['attributes']=_[_0x1a3b('0x2b')](_0x2ae2e5['model'],qs[_0x1a3b('0x2e')](_0x5052aa['query'][_0x1a3b('0x2e')]));_0x407ca7['attributes']=_0x407ca7[_0x1a3b('0x2d')][_0x1a3b('0x2f')]?_0x407ca7['attributes']:_0x2ae2e5[_0x1a3b('0x29')];_0x407ca7[_0x1a3b('0x44')]=qs[_0x1a3b('0x45')](_0x5052aa[_0x1a3b('0x2c')][_0x1a3b('0x45')]);_0x407ca7[_0x1a3b('0x32')]=qs[_0x1a3b('0x2a')](_[_0x1a3b('0x47')](_0x5052aa[_0x1a3b('0x2c')],_0x2ae2e5[_0x1a3b('0x2a')]));if(_0x5052aa['query']['filter']){_0x407ca7['where']=_[_0x1a3b('0x34')](_0x407ca7[_0x1a3b('0x32')],{'$or':_[_0x1a3b('0x23')](_0x407ca7[_0x1a3b('0x2d')],function(_0x27dd63){var _0x484a39={};_0x484a39[_0x27dd63]={'$like':'%'+_0x5052aa[_0x1a3b('0x2c')][_0x1a3b('0x33')]+'%'};return _0x484a39;})});}_0x407ca7=_[_0x1a3b('0x34')]({},_0x407ca7,_0x5052aa[_0x1a3b('0x36')]);return _0x43d981['getTags'](_0x407ca7);}})[_0x1a3b('0x1d')](function(_0x30455d){if(_0x30455d){_0x4b465f=_0x30455d[_0x1a3b('0x2f')];if(!_0x5052aa[_0x1a3b('0x2c')][_0x1a3b('0x30')]('nolimit')){_0x407ca7['limit']=qs[_0x1a3b('0x17')](_0x5052aa[_0x1a3b('0x2c')][_0x1a3b('0x17')]);_0x407ca7['offset']=qs['offset'](_0x5052aa['query'][_0x1a3b('0x16')]);}return _0x43d981[_0x1a3b('0x4a')](_0x407ca7);}})[_0x1a3b('0x1d')](function(_0x4f5857){if(_0x4f5857){return _0x4f5857?{'count':_0x4b465f,'rows':_0x4f5857}:null;}})[_0x1a3b('0x1d')](respondWithResult(_0x4c92ec,null))[_0x1a3b('0x3e')](handleError(_0x4c92ec,null));};exports[_0x1a3b('0x4c')]=function(_0x417bb5,_0x2b1175,_0x2473f5){if(_0x417bb5[_0x1a3b('0x41')]['id']){delete _0x417bb5[_0x1a3b('0x41')]['id'];}return db['ZendeskConfiguration'][_0x1a3b('0x46')]({'where':{'id':_0x417bb5[_0x1a3b('0x3b')]['id']}})['then'](handleEntityNotFound(_0x2b1175,null))['then'](function(_0x1c5d96){if(_0x1c5d96){return _0x1c5d96[_0x1a3b('0x4c')](_0x417bb5[_0x1a3b('0x41')][_0x1a3b('0x4d')]||[]);}return null;})['then'](respondWithResult(_0x2b1175,null))[_0x1a3b('0x3e')](handleError(_0x2b1175,null));};
\ No newline at end of file
+var _0xf686=['findAll','rows','show','params','keys','rawAttributes','options','find','create','body','catch','getFields','findOne','ZendeskField','hasOwnProperty','getSubjects','pick','getDescriptions','getTags','setTags','ids','eml-format','rimraf','zip-dir','request-promise','bluebird','util','path','to-csv','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','json','apply','reject','save','update','then','destroy','error','name','send','index','map','ZendeskConfiguration','fieldName','key','query','intersection','model','attributes','fields','length','nolimit','order','sort','where','filters','filter','merge','type','includeAll','include'];(function(_0x13fd59,_0x2e05b1){var _0x2e6ce7=function(_0x519a4b){while(--_0x519a4b){_0x13fd59['push'](_0x13fd59['shift']());}};_0x2e6ce7(++_0x2e05b1);}(_0xf686,0x69));var _0x6f68=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0xf686[_0x321bb2];return _0x9c12ed;};'use strict';var emlformat=require(_0x6f68('0x0'));var rimraf=require(_0x6f68('0x1'));var zipdir=require(_0x6f68('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x6f68('0x3'));var moment=require('moment');var BPromise=require(_0x6f68('0x4'));var Mustache=require('mustache');var util=require(_0x6f68('0x5'));var path=require(_0x6f68('0x6'));var sox=require('sox');var csv=require(_0x6f68('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x6f68('0x8'));var squel=require(_0x6f68('0x9'));var crypto=require(_0x6f68('0xa'));var jsforce=require(_0x6f68('0xb'));var deskjs=require(_0x6f68('0xc'));var toCsv=require(_0x6f68('0x7'));var querystring=require(_0x6f68('0xd'));var Papa=require(_0x6f68('0xe'));var Redis=require(_0x6f68('0xf'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x6f68('0x10'));var logger=require(_0x6f68('0x11'))(_0x6f68('0x12'));var utils=require(_0x6f68('0x13'));var config=require(_0x6f68('0x14'));var licenseUtil=require(_0x6f68('0x15'));var db=require(_0x6f68('0x16'))['db'];function respondWithStatusCode(_0x307bed,_0x9d8099){_0x9d8099=_0x9d8099||0xcc;return function(_0x563d1c){if(_0x563d1c){return _0x307bed[_0x6f68('0x17')](_0x9d8099);}return _0x307bed[_0x6f68('0x18')](_0x9d8099)[_0x6f68('0x19')]();};}function respondWithResult(_0x2c81fb,_0x5f5df8){_0x5f5df8=_0x5f5df8||0xc8;return function(_0x2d51ee){if(_0x2d51ee){return _0x2c81fb[_0x6f68('0x18')](_0x5f5df8)['json'](_0x2d51ee);}};}function respondWithFilteredResult(_0x298eba,_0x811ebb){return function(_0x4f89ed){if(_0x4f89ed){var _0x568738=typeof _0x811ebb[_0x6f68('0x1a')]===_0x6f68('0x1b')&&typeof _0x811ebb[_0x6f68('0x1c')]===_0x6f68('0x1b');var _0x1cc34b=_0x4f89ed[_0x6f68('0x1d')];var _0x29a1e8=_0x568738?0x0:_0x811ebb[_0x6f68('0x1a')];var _0x3f9242=_0x568738?_0x4f89ed[_0x6f68('0x1d')]:_0x811ebb[_0x6f68('0x1a')]+_0x811ebb['limit'];var _0x1589f2;if(_0x3f9242>=_0x1cc34b){_0x3f9242=_0x1cc34b;_0x1589f2=0xc8;}else{_0x1589f2=0xce;}_0x298eba[_0x6f68('0x18')](_0x1589f2);return _0x298eba[_0x6f68('0x1e')](_0x6f68('0x1f'),_0x29a1e8+'-'+_0x3f9242+'/'+_0x1cc34b)[_0x6f68('0x20')](_0x4f89ed);}return null;};}function patchUpdates(_0x16909a){return function(_0x25ef06){try{jsonpatch[_0x6f68('0x21')](_0x25ef06,_0x16909a,!![]);}catch(_0x5c6f95){return BPromise[_0x6f68('0x22')](_0x5c6f95);}return _0x25ef06[_0x6f68('0x23')]();};}function saveUpdates(_0x907039,_0x4d7744){return function(_0x267df3){if(_0x267df3){return _0x267df3[_0x6f68('0x24')](_0x907039)[_0x6f68('0x25')](function(_0x300107){return _0x300107;});}return null;};}function removeEntity(_0x395bcb,_0x16d987){return function(_0x3cd245){if(_0x3cd245){return _0x3cd245[_0x6f68('0x26')]()['then'](function(){_0x395bcb[_0x6f68('0x18')](0xcc)['end']();});}};}function handleEntityNotFound(_0x39ccc9,_0x39e1bc){return function(_0x304219){if(!_0x304219){_0x39ccc9[_0x6f68('0x17')](0x194);}return _0x304219;};}function handleError(_0x21badd,_0x32082f){_0x32082f=_0x32082f||0x1f4;return function(_0x119b16){logger[_0x6f68('0x27')](_0x119b16['stack']);if(_0x119b16['name']){delete _0x119b16[_0x6f68('0x28')];}_0x21badd[_0x6f68('0x18')](_0x32082f)[_0x6f68('0x29')](_0x119b16);};}exports[_0x6f68('0x2a')]=function(_0x265e69,_0x16b8c4){var _0x4d1d0f={},_0x3b6620={},_0x130b8b={'count':0x0,'rows':[]};var _0x19d3b1=_[_0x6f68('0x2b')](db[_0x6f68('0x2c')]['rawAttributes'],function(_0x500b7a){return{'name':_0x500b7a[_0x6f68('0x2d')],'type':_0x500b7a['type'][_0x6f68('0x2e')]};});_0x3b6620['model']=_[_0x6f68('0x2b')](_0x19d3b1,_0x6f68('0x28'));_0x3b6620[_0x6f68('0x2f')]=_['keys'](_0x265e69['query']);_0x3b6620['filters']=_[_0x6f68('0x30')](_0x3b6620[_0x6f68('0x31')],_0x3b6620[_0x6f68('0x2f')]);_0x4d1d0f[_0x6f68('0x32')]=_['intersection'](_0x3b6620[_0x6f68('0x31')],qs[_0x6f68('0x33')](_0x265e69[_0x6f68('0x2f')][_0x6f68('0x33')]));_0x4d1d0f[_0x6f68('0x32')]=_0x4d1d0f[_0x6f68('0x32')][_0x6f68('0x34')]?_0x4d1d0f[_0x6f68('0x32')]:_0x3b6620[_0x6f68('0x31')];if(!_0x265e69['query']['hasOwnProperty'](_0x6f68('0x35'))){_0x4d1d0f[_0x6f68('0x1c')]=qs[_0x6f68('0x1c')](_0x265e69[_0x6f68('0x2f')][_0x6f68('0x1c')]);_0x4d1d0f[_0x6f68('0x1a')]=qs[_0x6f68('0x1a')](_0x265e69[_0x6f68('0x2f')][_0x6f68('0x1a')]);}_0x4d1d0f[_0x6f68('0x36')]=qs[_0x6f68('0x37')](_0x265e69['query'][_0x6f68('0x37')]);_0x4d1d0f[_0x6f68('0x38')]=qs[_0x6f68('0x39')](_['pick'](_0x265e69[_0x6f68('0x2f')],_0x3b6620['filters']),_0x19d3b1);if(_0x265e69[_0x6f68('0x2f')][_0x6f68('0x3a')]){_0x4d1d0f[_0x6f68('0x38')]=_[_0x6f68('0x3b')](_0x4d1d0f['where'],{'$or':_[_0x6f68('0x2b')](_0x19d3b1,function(_0x54200c){if(_0x54200c[_0x6f68('0x3c')]!=='VIRTUAL'){var _0x3a5afa={};_0x3a5afa[_0x54200c[_0x6f68('0x28')]]={'$like':'%'+_0x265e69['query'][_0x6f68('0x3a')]+'%'};return _0x3a5afa;}})});}_0x4d1d0f=_[_0x6f68('0x3b')]({},_0x4d1d0f,_0x265e69['options']);var _0x2d4f47={'where':_0x4d1d0f[_0x6f68('0x38')]};return db[_0x6f68('0x2c')][_0x6f68('0x1d')](_0x2d4f47)['then'](function(_0x37e420){_0x130b8b[_0x6f68('0x1d')]=_0x37e420;if(_0x265e69[_0x6f68('0x2f')][_0x6f68('0x3d')]){_0x4d1d0f[_0x6f68('0x3e')]=[{'all':!![]}];}return db[_0x6f68('0x2c')][_0x6f68('0x3f')](_0x4d1d0f);})['then'](function(_0x5831bf){_0x130b8b[_0x6f68('0x40')]=_0x5831bf;return _0x130b8b;})['then'](respondWithFilteredResult(_0x16b8c4,_0x4d1d0f))['catch'](handleError(_0x16b8c4,null));};exports[_0x6f68('0x41')]=function(_0x3e8b74,_0x2c850a){var _0x43c8b6={'raw':![],'where':{'id':_0x3e8b74[_0x6f68('0x42')]['id']}},_0x376743={};_0x376743[_0x6f68('0x31')]=_[_0x6f68('0x43')](db['ZendeskConfiguration'][_0x6f68('0x44')]);_0x376743[_0x6f68('0x2f')]=_[_0x6f68('0x43')](_0x3e8b74['query']);_0x376743['filters']=_[_0x6f68('0x30')](_0x376743[_0x6f68('0x31')],_0x376743['query']);_0x43c8b6[_0x6f68('0x32')]=_['intersection'](_0x376743[_0x6f68('0x31')],qs[_0x6f68('0x33')](_0x3e8b74[_0x6f68('0x2f')]['fields']));_0x43c8b6[_0x6f68('0x32')]=_0x43c8b6['attributes']['length']?_0x43c8b6[_0x6f68('0x32')]:_0x376743[_0x6f68('0x31')];if(_0x3e8b74['query'][_0x6f68('0x3d')]){_0x43c8b6[_0x6f68('0x3e')]=[{'all':!![]}];}_0x43c8b6=_[_0x6f68('0x3b')]({},_0x43c8b6,_0x3e8b74[_0x6f68('0x45')]);return db[_0x6f68('0x2c')][_0x6f68('0x46')](_0x43c8b6)[_0x6f68('0x25')](handleEntityNotFound(_0x2c850a,null))[_0x6f68('0x25')](respondWithResult(_0x2c850a,null))['catch'](handleError(_0x2c850a,null));};exports[_0x6f68('0x47')]=function(_0x5ec484,_0x19d390){return db[_0x6f68('0x2c')][_0x6f68('0x47')](_0x5ec484[_0x6f68('0x48')],{})[_0x6f68('0x25')](respondWithResult(_0x19d390,0xc9))['catch'](handleError(_0x19d390,null));};exports['update']=function(_0x701803,_0x576bf7){if(_0x701803['body']['id']){delete _0x701803[_0x6f68('0x48')]['id'];}return db[_0x6f68('0x2c')][_0x6f68('0x46')]({'where':{'id':_0x701803[_0x6f68('0x42')]['id']}})['then'](handleEntityNotFound(_0x576bf7,null))[_0x6f68('0x25')](saveUpdates(_0x701803[_0x6f68('0x48')],null))[_0x6f68('0x25')](respondWithResult(_0x576bf7,null))[_0x6f68('0x49')](handleError(_0x576bf7,null));};exports[_0x6f68('0x26')]=function(_0x42f914,_0x2229c3){return db[_0x6f68('0x2c')]['find']({'where':{'id':_0x42f914[_0x6f68('0x42')]['id']}})[_0x6f68('0x25')](handleEntityNotFound(_0x2229c3,null))[_0x6f68('0x25')](removeEntity(_0x2229c3,null))['catch'](handleError(_0x2229c3,null));};exports[_0x6f68('0x4a')]=function(_0x551e0f,_0x181910,_0x58fac0){var _0xec1b4e={};var _0x14f67e={};var _0xbdbf6d;var _0x24a938;return db[_0x6f68('0x2c')][_0x6f68('0x4b')]({'where':{'id':_0x551e0f[_0x6f68('0x42')]['id']}})[_0x6f68('0x25')](handleEntityNotFound(_0x181910,null))[_0x6f68('0x25')](function(_0x5b790d){if(_0x5b790d){_0xbdbf6d=_0x5b790d;_0x14f67e['model']=_['keys'](db[_0x6f68('0x4c')][_0x6f68('0x44')]);_0x14f67e[_0x6f68('0x2f')]=_['keys'](_0x551e0f['query']);_0x14f67e[_0x6f68('0x39')]=_[_0x6f68('0x30')](_0x14f67e['model'],_0x14f67e['query']);_0xec1b4e[_0x6f68('0x32')]=_['intersection'](_0x14f67e['model'],qs[_0x6f68('0x33')](_0x551e0f[_0x6f68('0x2f')][_0x6f68('0x33')]));_0xec1b4e[_0x6f68('0x32')]=_0xec1b4e[_0x6f68('0x32')][_0x6f68('0x34')]?_0xec1b4e[_0x6f68('0x32')]:_0x14f67e[_0x6f68('0x31')];_0xec1b4e[_0x6f68('0x36')]=qs['sort'](_0x551e0f[_0x6f68('0x2f')][_0x6f68('0x37')]);_0xec1b4e[_0x6f68('0x38')]=qs['filters'](_['pick'](_0x551e0f[_0x6f68('0x2f')],_0x14f67e[_0x6f68('0x39')]));if(_0x551e0f[_0x6f68('0x2f')]['filter']){_0xec1b4e[_0x6f68('0x38')]=_[_0x6f68('0x3b')](_0xec1b4e[_0x6f68('0x38')],{'$or':_[_0x6f68('0x2b')](_0xec1b4e[_0x6f68('0x32')],function(_0xbca36b){var _0x40bae5={};_0x40bae5[_0xbca36b]={'$like':'%'+_0x551e0f[_0x6f68('0x2f')][_0x6f68('0x3a')]+'%'};return _0x40bae5;})});}_0xec1b4e=_[_0x6f68('0x3b')]({},_0xec1b4e,_0x551e0f[_0x6f68('0x45')]);return _0xbdbf6d['getFields'](_0xec1b4e);}})['then'](function(_0x3d57ca){if(_0x3d57ca){_0x24a938=_0x3d57ca[_0x6f68('0x34')];if(!_0x551e0f[_0x6f68('0x2f')][_0x6f68('0x4d')](_0x6f68('0x35'))){_0xec1b4e[_0x6f68('0x1c')]=qs['limit'](_0x551e0f[_0x6f68('0x2f')][_0x6f68('0x1c')]);_0xec1b4e['offset']=qs['offset'](_0x551e0f['query'][_0x6f68('0x1a')]);}return _0xbdbf6d[_0x6f68('0x4a')](_0xec1b4e);}})[_0x6f68('0x25')](function(_0x3a0e76){if(_0x3a0e76){return _0x3a0e76?{'count':_0x24a938,'rows':_0x3a0e76}:null;}})['then'](respondWithResult(_0x181910,null))[_0x6f68('0x49')](handleError(_0x181910,null));};exports[_0x6f68('0x4e')]=function(_0x17198f,_0x4966c2,_0x2fec61){var _0x49a076={};var _0xd0887={};var _0x35d99d;var _0x63c0bd;return db['ZendeskConfiguration'][_0x6f68('0x4b')]({'where':{'id':_0x17198f['params']['id']}})['then'](handleEntityNotFound(_0x4966c2,null))[_0x6f68('0x25')](function(_0x5c3ac0){if(_0x5c3ac0){_0x35d99d=_0x5c3ac0;_0xd0887[_0x6f68('0x31')]=_['keys'](db[_0x6f68('0x4c')][_0x6f68('0x44')]);_0xd0887[_0x6f68('0x2f')]=_[_0x6f68('0x43')](_0x17198f['query']);_0xd0887[_0x6f68('0x39')]=_[_0x6f68('0x30')](_0xd0887[_0x6f68('0x31')],_0xd0887[_0x6f68('0x2f')]);_0x49a076[_0x6f68('0x32')]=_[_0x6f68('0x30')](_0xd0887[_0x6f68('0x31')],qs[_0x6f68('0x33')](_0x17198f[_0x6f68('0x2f')][_0x6f68('0x33')]));_0x49a076[_0x6f68('0x32')]=_0x49a076[_0x6f68('0x32')][_0x6f68('0x34')]?_0x49a076['attributes']:_0xd0887[_0x6f68('0x31')];_0x49a076[_0x6f68('0x36')]=qs[_0x6f68('0x37')](_0x17198f[_0x6f68('0x2f')][_0x6f68('0x37')]);_0x49a076[_0x6f68('0x38')]=qs[_0x6f68('0x39')](_[_0x6f68('0x4f')](_0x17198f[_0x6f68('0x2f')],_0xd0887[_0x6f68('0x39')]));if(_0x17198f[_0x6f68('0x2f')][_0x6f68('0x3a')]){_0x49a076[_0x6f68('0x38')]=_[_0x6f68('0x3b')](_0x49a076[_0x6f68('0x38')],{'$or':_[_0x6f68('0x2b')](_0x49a076[_0x6f68('0x32')],function(_0x4e980b){var _0xc1e192={};_0xc1e192[_0x4e980b]={'$like':'%'+_0x17198f[_0x6f68('0x2f')][_0x6f68('0x3a')]+'%'};return _0xc1e192;})});}_0x49a076=_[_0x6f68('0x3b')]({},_0x49a076,_0x17198f[_0x6f68('0x45')]);return _0x35d99d[_0x6f68('0x4e')](_0x49a076);}})['then'](function(_0x51e93c){if(_0x51e93c){_0x63c0bd=_0x51e93c[_0x6f68('0x34')];if(!_0x17198f[_0x6f68('0x2f')][_0x6f68('0x4d')](_0x6f68('0x35'))){_0x49a076['limit']=qs[_0x6f68('0x1c')](_0x17198f[_0x6f68('0x2f')][_0x6f68('0x1c')]);_0x49a076['offset']=qs['offset'](_0x17198f[_0x6f68('0x2f')][_0x6f68('0x1a')]);}return _0x35d99d['getSubjects'](_0x49a076);}})[_0x6f68('0x25')](function(_0x569c2e){if(_0x569c2e){return _0x569c2e?{'count':_0x63c0bd,'rows':_0x569c2e}:null;}})[_0x6f68('0x25')](respondWithResult(_0x4966c2,null))['catch'](handleError(_0x4966c2,null));};exports['getDescriptions']=function(_0x3b2054,_0x2bb180,_0x3c30d8){var _0x32e86e={};var _0x4d63bb={};var _0x42ca08;var _0x5df8b4;return db[_0x6f68('0x2c')][_0x6f68('0x4b')]({'where':{'id':_0x3b2054[_0x6f68('0x42')]['id']}})[_0x6f68('0x25')](handleEntityNotFound(_0x2bb180,null))[_0x6f68('0x25')](function(_0x1824ee){if(_0x1824ee){_0x42ca08=_0x1824ee;_0x4d63bb[_0x6f68('0x31')]=_[_0x6f68('0x43')](db[_0x6f68('0x4c')][_0x6f68('0x44')]);_0x4d63bb[_0x6f68('0x2f')]=_[_0x6f68('0x43')](_0x3b2054[_0x6f68('0x2f')]);_0x4d63bb[_0x6f68('0x39')]=_[_0x6f68('0x30')](_0x4d63bb[_0x6f68('0x31')],_0x4d63bb[_0x6f68('0x2f')]);_0x32e86e['attributes']=_[_0x6f68('0x30')](_0x4d63bb[_0x6f68('0x31')],qs[_0x6f68('0x33')](_0x3b2054[_0x6f68('0x2f')][_0x6f68('0x33')]));_0x32e86e[_0x6f68('0x32')]=_0x32e86e[_0x6f68('0x32')]['length']?_0x32e86e['attributes']:_0x4d63bb[_0x6f68('0x31')];_0x32e86e['order']=qs[_0x6f68('0x37')](_0x3b2054['query'][_0x6f68('0x37')]);_0x32e86e[_0x6f68('0x38')]=qs[_0x6f68('0x39')](_[_0x6f68('0x4f')](_0x3b2054[_0x6f68('0x2f')],_0x4d63bb[_0x6f68('0x39')]));if(_0x3b2054['query'][_0x6f68('0x3a')]){_0x32e86e[_0x6f68('0x38')]=_[_0x6f68('0x3b')](_0x32e86e[_0x6f68('0x38')],{'$or':_[_0x6f68('0x2b')](_0x32e86e[_0x6f68('0x32')],function(_0x10b8d0){var _0x4ffe9b={};_0x4ffe9b[_0x10b8d0]={'$like':'%'+_0x3b2054[_0x6f68('0x2f')][_0x6f68('0x3a')]+'%'};return _0x4ffe9b;})});}_0x32e86e=_[_0x6f68('0x3b')]({},_0x32e86e,_0x3b2054['options']);return _0x42ca08[_0x6f68('0x50')](_0x32e86e);}})[_0x6f68('0x25')](function(_0x29f3c3){if(_0x29f3c3){_0x5df8b4=_0x29f3c3['length'];if(!_0x3b2054['query'][_0x6f68('0x4d')](_0x6f68('0x35'))){_0x32e86e['limit']=qs[_0x6f68('0x1c')](_0x3b2054['query'][_0x6f68('0x1c')]);_0x32e86e[_0x6f68('0x1a')]=qs[_0x6f68('0x1a')](_0x3b2054['query'][_0x6f68('0x1a')]);}return _0x42ca08['getDescriptions'](_0x32e86e);}})[_0x6f68('0x25')](function(_0x1a25db){if(_0x1a25db){return _0x1a25db?{'count':_0x5df8b4,'rows':_0x1a25db}:null;}})[_0x6f68('0x25')](respondWithResult(_0x2bb180,null))[_0x6f68('0x49')](handleError(_0x2bb180,null));};exports[_0x6f68('0x51')]=function(_0x7daadf,_0xa6539c,_0x54fb52){var _0x3461ae={};var _0x321895={};var _0x300293;var _0x4f4bb1;return db[_0x6f68('0x2c')][_0x6f68('0x4b')]({'where':{'id':_0x7daadf[_0x6f68('0x42')]['id']}})[_0x6f68('0x25')](handleEntityNotFound(_0xa6539c,null))[_0x6f68('0x25')](function(_0x3f8643){if(_0x3f8643){_0x300293=_0x3f8643;_0x321895[_0x6f68('0x31')]=_['keys'](db['Tag'][_0x6f68('0x44')]);_0x321895['query']=_[_0x6f68('0x43')](_0x7daadf['query']);_0x321895['filters']=_[_0x6f68('0x30')](_0x321895[_0x6f68('0x31')],_0x321895[_0x6f68('0x2f')]);_0x3461ae['attributes']=_[_0x6f68('0x30')](_0x321895[_0x6f68('0x31')],qs[_0x6f68('0x33')](_0x7daadf[_0x6f68('0x2f')]['fields']));_0x3461ae[_0x6f68('0x32')]=_0x3461ae[_0x6f68('0x32')][_0x6f68('0x34')]?_0x3461ae[_0x6f68('0x32')]:_0x321895[_0x6f68('0x31')];_0x3461ae[_0x6f68('0x36')]=qs[_0x6f68('0x37')](_0x7daadf[_0x6f68('0x2f')][_0x6f68('0x37')]);_0x3461ae[_0x6f68('0x38')]=qs[_0x6f68('0x39')](_[_0x6f68('0x4f')](_0x7daadf[_0x6f68('0x2f')],_0x321895[_0x6f68('0x39')]));if(_0x7daadf['query'][_0x6f68('0x3a')]){_0x3461ae['where']=_[_0x6f68('0x3b')](_0x3461ae['where'],{'$or':_[_0x6f68('0x2b')](_0x3461ae[_0x6f68('0x32')],function(_0x37bb1d){var _0x344d7e={};_0x344d7e[_0x37bb1d]={'$like':'%'+_0x7daadf[_0x6f68('0x2f')][_0x6f68('0x3a')]+'%'};return _0x344d7e;})});}_0x3461ae=_[_0x6f68('0x3b')]({},_0x3461ae,_0x7daadf[_0x6f68('0x45')]);return _0x300293[_0x6f68('0x51')](_0x3461ae);}})[_0x6f68('0x25')](function(_0x22559a){if(_0x22559a){_0x4f4bb1=_0x22559a[_0x6f68('0x34')];if(!_0x7daadf['query'][_0x6f68('0x4d')]('nolimit')){_0x3461ae[_0x6f68('0x1c')]=qs[_0x6f68('0x1c')](_0x7daadf[_0x6f68('0x2f')][_0x6f68('0x1c')]);_0x3461ae[_0x6f68('0x1a')]=qs['offset'](_0x7daadf[_0x6f68('0x2f')][_0x6f68('0x1a')]);}return _0x300293['getTags'](_0x3461ae);}})['then'](function(_0x5d0b1a){if(_0x5d0b1a){return _0x5d0b1a?{'count':_0x4f4bb1,'rows':_0x5d0b1a}:null;}})[_0x6f68('0x25')](respondWithResult(_0xa6539c,null))[_0x6f68('0x49')](handleError(_0xa6539c,null));};exports[_0x6f68('0x52')]=function(_0x35e1d6,_0x115f76,_0x1a377f){if(_0x35e1d6[_0x6f68('0x48')]['id']){delete _0x35e1d6[_0x6f68('0x48')]['id'];}return db['ZendeskConfiguration'][_0x6f68('0x4b')]({'where':{'id':_0x35e1d6['params']['id']}})[_0x6f68('0x25')](handleEntityNotFound(_0x115f76,null))[_0x6f68('0x25')](function(_0x5aba30){if(_0x5aba30){return _0x5aba30[_0x6f68('0x52')](_0x35e1d6[_0x6f68('0x48')][_0x6f68('0x53')]||[]);}return null;})[_0x6f68('0x25')](respondWithResult(_0x115f76,null))[_0x6f68('0x49')](handleError(_0x115f76,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb9be=['path','rimraf','exports','ZendeskConfiguration','int_zendesk_configurations','lodash','util','../../config/logger','api','moment','bluebird','request-promise'];(function(_0x134448,_0x591d7b){var _0x2d52a1=function(_0x56b840){while(--_0x56b840){_0x134448['push'](_0x134448['shift']());}};_0x2d52a1(++_0x591d7b);}(_0xb9be,0xc5));var _0xeb9b=function(_0x4409e7,_0x307f17){_0x4409e7=_0x4409e7-0x0;var _0x24c751=_0xb9be[_0x4409e7];return _0x24c751;};'use strict';var _=require(_0xeb9b('0x0'));var util=require(_0xeb9b('0x1'));var logger=require(_0xeb9b('0x2'))(_0xeb9b('0x3'));var moment=require(_0xeb9b('0x4'));var BPromise=require(_0xeb9b('0x5'));var rp=require(_0xeb9b('0x6'));var fs=require('fs');var path=require(_0xeb9b('0x7'));var rimraf=require(_0xeb9b('0x8'));var config=require('../../config/environment');var attributes=require('./intZendeskConfiguration.attributes');module[_0xeb9b('0x9')]=function(_0x181810,_0x2529cb){return _0x181810['define'](_0xeb9b('0xa'),attributes,{'tableName':_0xeb9b('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x34b7=['request-promise','path','./intZendeskConfiguration.attributes','exports','define','ZendeskConfiguration','../../config/logger','api','moment','bluebird'];(function(_0xa8f24a,_0x48d7d3){var _0x3a1471=function(_0x281470){while(--_0x281470){_0xa8f24a['push'](_0xa8f24a['shift']());}};_0x3a1471(++_0x48d7d3);}(_0x34b7,0x196));var _0x734b=function(_0x195f3f,_0x9b2710){_0x195f3f=_0x195f3f-0x0;var _0x3c36b3=_0x34b7[_0x195f3f];return _0x3c36b3;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x734b('0x0'))(_0x734b('0x1'));var moment=require(_0x734b('0x2'));var BPromise=require(_0x734b('0x3'));var rp=require(_0x734b('0x4'));var fs=require('fs');var path=require(_0x734b('0x5'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0x734b('0x6'));module[_0x734b('0x7')]=function(_0x2f3128,_0x34fd70){return _0x2f3128[_0x734b('0x8')](_0x734b('0x9'),attributes,{'tableName':'int_zendesk_configurations','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xed8c=['request','info','ZendeskConfiguration,\x20%s,\x20%s','request\x20sent','debug','error','code','message','result','catch','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http'];(function(_0x5d624d,_0xde7b4){var _0x110fb0=function(_0x208776){while(--_0x208776){_0x5d624d['push'](_0x5d624d['shift']());}};_0x110fb0(++_0xde7b4);}(_0xed8c,0x88));var _0xced8=function(_0x2e83a2,_0x35affd){_0x2e83a2=_0x2e83a2-0x0;var _0x460145=_0xed8c[_0x2e83a2];return _0x460145;};'use strict';var _=require('lodash');var util=require('util');var moment=require('moment');var BPromise=require(_0xced8('0x0'));var rs=require(_0xced8('0x1'));var fs=require('fs');var Redis=require(_0xced8('0x2'));var db=require(_0xced8('0x3'))['db'];var utils=require(_0xced8('0x4'));var logger=require(_0xced8('0x5'))(_0xced8('0x6'));var config=require(_0xced8('0x7'));var jayson=require(_0xced8('0x8'));var client=jayson[_0xced8('0x9')][_0xced8('0xa')]({'port':0x232a});function respondWithRpcPromise(_0xd114ef,_0x555a90,_0x414f51){return new BPromise(function(_0x146b88,_0x2877f7){return client[_0xced8('0xb')](_0xd114ef,_0x414f51)['then'](function(_0x17b1d8){logger[_0xced8('0xc')](_0xced8('0xd'),_0x555a90,_0xced8('0xe'));logger[_0xced8('0xf')]('ZendeskConfiguration,\x20%s,\x20%s,\x20%s',_0x555a90,_0xced8('0xe'),JSON['stringify'](_0x17b1d8));if(_0x17b1d8[_0xced8('0x10')]){if(_0x17b1d8[_0xced8('0x10')][_0xced8('0x11')]===0x1f4){logger[_0xced8('0x10')](_0xced8('0xd'),_0x555a90,_0x17b1d8[_0xced8('0x10')][_0xced8('0x12')]);return _0x2877f7(_0x17b1d8[_0xced8('0x10')][_0xced8('0x12')]);}logger['error']('ZendeskConfiguration,\x20%s,\x20%s',_0x555a90,_0x17b1d8[_0xced8('0x10')][_0xced8('0x12')]);return _0x146b88(_0x17b1d8[_0xced8('0x10')][_0xced8('0x12')]);}else{logger[_0xced8('0xc')](_0xced8('0xd'),_0x555a90,_0xced8('0xe'));_0x146b88(_0x17b1d8[_0xced8('0x13')][_0xced8('0x12')]);}})[_0xced8('0x14')](function(_0x23f85a){logger[_0xced8('0x10')](_0xced8('0xd'),_0x555a90,_0x23f85a);_0x2877f7(_0x23f85a);});});}
\ No newline at end of file
+var _0x68bc=['request\x20sent','ZendeskConfiguration,\x20%s,\x20%s,\x20%s','stringify','error','code','message','catch','lodash','moment','bluebird','randomstring','ioredis','../../config/logger','rpc','../../config/environment','request','then','info','ZendeskConfiguration,\x20%s,\x20%s'];(function(_0x31f58a,_0x2806c5){var _0x5f10e4=function(_0x36d3cd){while(--_0x36d3cd){_0x31f58a['push'](_0x31f58a['shift']());}};_0x5f10e4(++_0x2806c5);}(_0x68bc,0x66));var _0xc68b=function(_0x4f7f25,_0x463391){_0x4f7f25=_0x4f7f25-0x0;var _0x3c77d0=_0x68bc[_0x4f7f25];return _0x3c77d0;};'use strict';var _=require(_0xc68b('0x0'));var util=require('util');var moment=require(_0xc68b('0x1'));var BPromise=require(_0xc68b('0x2'));var rs=require(_0xc68b('0x3'));var fs=require('fs');var Redis=require(_0xc68b('0x4'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0xc68b('0x5'))(_0xc68b('0x6'));var config=require(_0xc68b('0x7'));var jayson=require('jayson/promise');var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x5f3f7c,_0x4fde82,_0x49f56f){return new BPromise(function(_0x1c7881,_0x4a0429){return client[_0xc68b('0x8')](_0x5f3f7c,_0x49f56f)[_0xc68b('0x9')](function(_0x16d9f1){logger[_0xc68b('0xa')](_0xc68b('0xb'),_0x4fde82,_0xc68b('0xc'));logger['debug'](_0xc68b('0xd'),_0x4fde82,_0xc68b('0xc'),JSON[_0xc68b('0xe')](_0x16d9f1));if(_0x16d9f1[_0xc68b('0xf')]){if(_0x16d9f1[_0xc68b('0xf')][_0xc68b('0x10')]===0x1f4){logger['error'](_0xc68b('0xb'),_0x4fde82,_0x16d9f1[_0xc68b('0xf')][_0xc68b('0x11')]);return _0x4a0429(_0x16d9f1[_0xc68b('0xf')][_0xc68b('0x11')]);}logger[_0xc68b('0xf')](_0xc68b('0xb'),_0x4fde82,_0x16d9f1['error'][_0xc68b('0x11')]);return _0x1c7881(_0x16d9f1[_0xc68b('0xf')][_0xc68b('0x11')]);}else{logger[_0xc68b('0xa')](_0xc68b('0xb'),_0x4fde82,_0xc68b('0xc'));_0x1c7881(_0x16d9f1['result'][_0xc68b('0x11')]);}})[_0xc68b('0x12')](function(_0x5f0527){logger[_0xc68b('0xf')](_0xc68b('0xb'),_0x4fde82,_0x5f0527);_0x4a0429(_0x5f0527);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xaa1b=['show','post','put','update','delete','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../config/environment','get','index','/:id','isAuthenticated'];(function(_0x441005,_0x4eeafc){var _0x5f4a93=function(_0x4e782e){while(--_0x4e782e){_0x441005['push'](_0x441005['shift']());}};_0x5f4a93(++_0x4eeafc);}(_0xaa1b,0xb1));var _0xbaa1=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xaa1b[_0x20a584];return _0x4b41a8;};'use strict';var multer=require(_0xbaa1('0x0'));var util=require(_0xbaa1('0x1'));var path=require(_0xbaa1('0x2'));var timeout=require(_0xbaa1('0x3'));var express=require(_0xbaa1('0x4'));var router=express[_0xbaa1('0x5')]();var fs_extra=require(_0xbaa1('0x6'));var auth=require(_0xbaa1('0x7'));var interaction=require('../../components/interaction/service');var config=require(_0xbaa1('0x8'));var controller=require('./intZendeskField.controller');router[_0xbaa1('0x9')]('/',auth['isAuthenticated'](),controller[_0xbaa1('0xa')]);router['get'](_0xbaa1('0xb'),auth[_0xbaa1('0xc')](),controller[_0xbaa1('0xd')]);router[_0xbaa1('0xe')]('/',auth[_0xbaa1('0xc')](),controller['create']);router[_0xbaa1('0xf')](_0xbaa1('0xb'),auth['isAuthenticated'](),controller[_0xbaa1('0x10')]);router[_0xbaa1('0x11')](_0xbaa1('0xb'),auth[_0xbaa1('0xc')](),controller['destroy']);module[_0xbaa1('0x12')]=router;
\ No newline at end of file
+var _0x7427=['./intZendeskField.controller','isAuthenticated','index','/:id','post','put','update','delete','destroy','multer','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment'];(function(_0x3fa813,_0x295ac7){var _0x3cbab1=function(_0x5b2451){while(--_0x5b2451){_0x3fa813['push'](_0x3fa813['shift']());}};_0x3cbab1(++_0x295ac7);}(_0x7427,0x69));var _0x7742=function(_0x4ae625,_0xf396d0){_0x4ae625=_0x4ae625-0x0;var _0x31accf=_0x7427[_0x4ae625];return _0x31accf;};'use strict';var multer=require(_0x7742('0x0'));var util=require('util');var path=require('path');var timeout=require('connect-timeout');var express=require(_0x7742('0x1'));var router=express[_0x7742('0x2')]();var fs_extra=require(_0x7742('0x3'));var auth=require(_0x7742('0x4'));var interaction=require(_0x7742('0x5'));var config=require(_0x7742('0x6'));var controller=require(_0x7742('0x7'));router['get']('/',auth[_0x7742('0x8')](),controller[_0x7742('0x9')]);router['get'](_0x7742('0xa'),auth[_0x7742('0x8')](),controller['show']);router[_0x7742('0xb')]('/',auth[_0x7742('0x8')](),controller['create']);router[_0x7742('0xc')]('/:id',auth[_0x7742('0x8')](),controller[_0x7742('0xd')]);router[_0x7742('0xe')](_0x7742('0xa'),auth[_0x7742('0x8')](),controller[_0x7742('0xf')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x454c=['ENUM','customVariable','keyValue','picklist','string','STRING','variable','BOOLEAN','sequelize','exports'];(function(_0x1f8e42,_0x461024){var _0x9352a8=function(_0x4f6cb6){while(--_0x4f6cb6){_0x1f8e42['push'](_0x1f8e42['shift']());}};_0x9352a8(++_0x461024);}(_0x454c,0x166));var _0xc454=function(_0x2ec461,_0x5f588a){_0x2ec461=_0x2ec461-0x0;var _0x28603d=_0x454c[_0x2ec461];return _0x28603d;};'use strict';var Sequelize=require(_0xc454('0x0'));module[_0xc454('0x1')]={'type':{'type':Sequelize[_0xc454('0x2')]('string','variable',_0xc454('0x3'),_0xc454('0x4'),_0xc454('0x5')),'defaultValue':_0xc454('0x6')},'content':{'type':Sequelize[_0xc454('0x7')]},'key':{'type':Sequelize[_0xc454('0x7')]},'keyType':{'type':Sequelize[_0xc454('0x2')](_0xc454('0x6'),_0xc454('0x8'),_0xc454('0x3'))},'keyContent':{'type':Sequelize[_0xc454('0x7')]},'idField':{'type':Sequelize[_0xc454('0x7')]},'nameField':{'type':Sequelize[_0xc454('0x7')]},'customField':{'type':Sequelize[_0xc454('0x9')],'defaultValue':!![]},'variableName':{'type':Sequelize[_0xc454('0x7')]}};
\ No newline at end of file
+var _0x53fa=['string','variable','customVariable','keyValue','picklist','STRING','sequelize','exports','ENUM'];(function(_0x3fe75e,_0x56a1a0){var _0x509dd5=function(_0xb1e524){while(--_0xb1e524){_0x3fe75e['push'](_0x3fe75e['shift']());}};_0x509dd5(++_0x56a1a0);}(_0x53fa,0x11d));var _0xa53f=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x53fa[_0x3dd15e];return _0x231fd0;};'use strict';var Sequelize=require(_0xa53f('0x0'));module[_0xa53f('0x1')]={'type':{'type':Sequelize[_0xa53f('0x2')](_0xa53f('0x3'),_0xa53f('0x4'),_0xa53f('0x5'),_0xa53f('0x6'),_0xa53f('0x7')),'defaultValue':'string'},'content':{'type':Sequelize[_0xa53f('0x8')]},'key':{'type':Sequelize[_0xa53f('0x8')]},'keyType':{'type':Sequelize[_0xa53f('0x2')](_0xa53f('0x3'),_0xa53f('0x4'),'customVariable')},'keyContent':{'type':Sequelize[_0xa53f('0x8')]},'idField':{'type':Sequelize[_0xa53f('0x8')]},'nameField':{'type':Sequelize[_0xa53f('0x8')]},'customField':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'variableName':{'type':Sequelize[_0xa53f('0x8')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6855=['../../config/license/hardware','../../config/logger','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','undefined','limit','offset','count','set','Content-Range','reject','save','then','destroy','error','name','index','map','rawAttributes','fieldName','type','key','query','keys','filters','model','attributes','intersection','fields','length','hasOwnProperty','nolimit','where','pick','filter','merge','options','ZendeskField','includeAll','include','findAll','rows','catch','show','find','create','body','update','params','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch'];(function(_0x5b8f40,_0xb6bbb){var _0x15bc68=function(_0x4eb95e){while(--_0x4eb95e){_0x5b8f40['push'](_0x5b8f40['shift']());}};_0x15bc68(++_0xb6bbb);}(_0x6855,0x80));var _0x5685=function(_0x4ec9e3,_0x15fbf4){_0x4ec9e3=_0x4ec9e3-0x0;var _0x2883ce=_0x6855[_0x4ec9e3];return _0x2883ce;};'use strict';var emlformat=require(_0x5685('0x0'));var rimraf=require(_0x5685('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x5685('0x2'));var rp=require(_0x5685('0x3'));var moment=require(_0x5685('0x4'));var BPromise=require(_0x5685('0x5'));var Mustache=require(_0x5685('0x6'));var util=require(_0x5685('0x7'));var path=require('path');var sox=require(_0x5685('0x8'));var csv=require('to-csv');var ejs=require(_0x5685('0x9'));var fs=require('fs');var fs_extra=require(_0x5685('0xa'));var _=require(_0x5685('0xb'));var squel=require(_0x5685('0xc'));var crypto=require(_0x5685('0xd'));var jsforce=require(_0x5685('0xe'));var deskjs=require(_0x5685('0xf'));var toCsv=require(_0x5685('0x10'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x5685('0x11'));var authService=require('../../components/auth/service');var qs=require(_0x5685('0x12'));var as=require(_0x5685('0x13'));var hardwareService=require(_0x5685('0x14'));var logger=require(_0x5685('0x15'))('api');var utils=require('../../config/utils');var config=require(_0x5685('0x16'));var licenseUtil=require(_0x5685('0x17'));var db=require(_0x5685('0x18'))['db'];function respondWithStatusCode(_0x1dcd14,_0x20efd8){_0x20efd8=_0x20efd8||0xcc;return function(_0x2ed43e){if(_0x2ed43e){return _0x1dcd14[_0x5685('0x19')](_0x20efd8);}return _0x1dcd14[_0x5685('0x1a')](_0x20efd8)[_0x5685('0x1b')]();};}function respondWithResult(_0x20a025,_0x2c28c3){_0x2c28c3=_0x2c28c3||0xc8;return function(_0x514bff){if(_0x514bff){return _0x20a025[_0x5685('0x1a')](_0x2c28c3)[_0x5685('0x1c')](_0x514bff);}};}function respondWithFilteredResult(_0xf7e491,_0x573c33){return function(_0x143bbb){if(_0x143bbb){var _0x58c7bb=typeof _0x573c33['offset']===_0x5685('0x1d')&&typeof _0x573c33[_0x5685('0x1e')]===_0x5685('0x1d');var _0x57437c=_0x143bbb['count'];var _0x38b744=_0x58c7bb?0x0:_0x573c33[_0x5685('0x1f')];var _0x4d22f3=_0x58c7bb?_0x143bbb[_0x5685('0x20')]:_0x573c33[_0x5685('0x1f')]+_0x573c33[_0x5685('0x1e')];var _0x2a0e2e;if(_0x4d22f3>=_0x57437c){_0x4d22f3=_0x57437c;_0x2a0e2e=0xc8;}else{_0x2a0e2e=0xce;}_0xf7e491[_0x5685('0x1a')](_0x2a0e2e);return _0xf7e491[_0x5685('0x21')](_0x5685('0x22'),_0x38b744+'-'+_0x4d22f3+'/'+_0x57437c)[_0x5685('0x1c')](_0x143bbb);}return null;};}function patchUpdates(_0x16317f){return function(_0x17d411){try{jsonpatch['apply'](_0x17d411,_0x16317f,!![]);}catch(_0x50f74b){return BPromise[_0x5685('0x23')](_0x50f74b);}return _0x17d411[_0x5685('0x24')]();};}function saveUpdates(_0x4f6548,_0x132981){return function(_0x2cd8ee){if(_0x2cd8ee){return _0x2cd8ee['update'](_0x4f6548)[_0x5685('0x25')](function(_0xa5800b){return _0xa5800b;});}return null;};}function removeEntity(_0x1963d0,_0x1727fb){return function(_0x300aa1){if(_0x300aa1){return _0x300aa1[_0x5685('0x26')]()[_0x5685('0x25')](function(){_0x1963d0[_0x5685('0x1a')](0xcc)[_0x5685('0x1b')]();});}};}function handleEntityNotFound(_0x4ca15a,_0x2b4333){return function(_0x4c293f){if(!_0x4c293f){_0x4ca15a['sendStatus'](0x194);}return _0x4c293f;};}function handleError(_0x1514fa,_0x3dfbf1){_0x3dfbf1=_0x3dfbf1||0x1f4;return function(_0x29a4f0){logger[_0x5685('0x27')](_0x29a4f0['stack']);if(_0x29a4f0[_0x5685('0x28')]){delete _0x29a4f0[_0x5685('0x28')];}_0x1514fa[_0x5685('0x1a')](_0x3dfbf1)['send'](_0x29a4f0);};}exports[_0x5685('0x29')]=function(_0x4022a3,_0x56f249){var _0x5bdd15={},_0x32dfe1={},_0x4b2ffc={'count':0x0,'rows':[]};var _0x16901c=_[_0x5685('0x2a')](db['ZendeskField'][_0x5685('0x2b')],function(_0x3dd7ae){return{'name':_0x3dd7ae[_0x5685('0x2c')],'type':_0x3dd7ae[_0x5685('0x2d')][_0x5685('0x2e')]};});_0x32dfe1['model']=_[_0x5685('0x2a')](_0x16901c,_0x5685('0x28'));_0x32dfe1[_0x5685('0x2f')]=_[_0x5685('0x30')](_0x4022a3['query']);_0x32dfe1[_0x5685('0x31')]=_['intersection'](_0x32dfe1[_0x5685('0x32')],_0x32dfe1[_0x5685('0x2f')]);_0x5bdd15[_0x5685('0x33')]=_[_0x5685('0x34')](_0x32dfe1[_0x5685('0x32')],qs[_0x5685('0x35')](_0x4022a3[_0x5685('0x2f')][_0x5685('0x35')]));_0x5bdd15[_0x5685('0x33')]=_0x5bdd15[_0x5685('0x33')][_0x5685('0x36')]?_0x5bdd15[_0x5685('0x33')]:_0x32dfe1[_0x5685('0x32')];if(!_0x4022a3['query'][_0x5685('0x37')](_0x5685('0x38'))){_0x5bdd15[_0x5685('0x1e')]=qs[_0x5685('0x1e')](_0x4022a3[_0x5685('0x2f')][_0x5685('0x1e')]);_0x5bdd15[_0x5685('0x1f')]=qs[_0x5685('0x1f')](_0x4022a3[_0x5685('0x2f')]['offset']);}_0x5bdd15['order']=qs['sort'](_0x4022a3[_0x5685('0x2f')]['sort']);_0x5bdd15[_0x5685('0x39')]=qs[_0x5685('0x31')](_[_0x5685('0x3a')](_0x4022a3[_0x5685('0x2f')],_0x32dfe1['filters']),_0x16901c);if(_0x4022a3[_0x5685('0x2f')][_0x5685('0x3b')]){_0x5bdd15[_0x5685('0x39')]=_[_0x5685('0x3c')](_0x5bdd15['where'],{'$or':_[_0x5685('0x2a')](_0x16901c,function(_0x3a76a4){if(_0x3a76a4[_0x5685('0x2d')]!=='VIRTUAL'){var _0x110b0b={};_0x110b0b[_0x3a76a4['name']]={'$like':'%'+_0x4022a3[_0x5685('0x2f')][_0x5685('0x3b')]+'%'};return _0x110b0b;}})});}_0x5bdd15=_[_0x5685('0x3c')]({},_0x5bdd15,_0x4022a3[_0x5685('0x3d')]);var _0x1b42df={'where':_0x5bdd15[_0x5685('0x39')]};return db[_0x5685('0x3e')]['count'](_0x1b42df)['then'](function(_0x29acaa){_0x4b2ffc['count']=_0x29acaa;if(_0x4022a3[_0x5685('0x2f')][_0x5685('0x3f')]){_0x5bdd15[_0x5685('0x40')]=[{'all':!![]}];}return db['ZendeskField'][_0x5685('0x41')](_0x5bdd15);})[_0x5685('0x25')](function(_0x3e726f){_0x4b2ffc[_0x5685('0x42')]=_0x3e726f;return _0x4b2ffc;})[_0x5685('0x25')](respondWithFilteredResult(_0x56f249,_0x5bdd15))[_0x5685('0x43')](handleError(_0x56f249,null));};exports[_0x5685('0x44')]=function(_0x4e7f8c,_0x57b135){var _0x24261b={'raw':!![],'where':{'id':_0x4e7f8c['params']['id']}},_0x3daabe={};_0x3daabe[_0x5685('0x32')]=_[_0x5685('0x30')](db[_0x5685('0x3e')][_0x5685('0x2b')]);_0x3daabe['query']=_[_0x5685('0x30')](_0x4e7f8c[_0x5685('0x2f')]);_0x3daabe['filters']=_[_0x5685('0x34')](_0x3daabe[_0x5685('0x32')],_0x3daabe[_0x5685('0x2f')]);_0x24261b['attributes']=_[_0x5685('0x34')](_0x3daabe[_0x5685('0x32')],qs[_0x5685('0x35')](_0x4e7f8c[_0x5685('0x2f')][_0x5685('0x35')]));_0x24261b[_0x5685('0x33')]=_0x24261b['attributes'][_0x5685('0x36')]?_0x24261b[_0x5685('0x33')]:_0x3daabe[_0x5685('0x32')];if(_0x4e7f8c[_0x5685('0x2f')]['includeAll']){_0x24261b[_0x5685('0x40')]=[{'all':!![]}];}_0x24261b=_[_0x5685('0x3c')]({},_0x24261b,_0x4e7f8c[_0x5685('0x3d')]);return db[_0x5685('0x3e')][_0x5685('0x45')](_0x24261b)[_0x5685('0x25')](handleEntityNotFound(_0x57b135,null))[_0x5685('0x25')](respondWithResult(_0x57b135,null))[_0x5685('0x43')](handleError(_0x57b135,null));};exports[_0x5685('0x46')]=function(_0x317725,_0x8469e6){return db[_0x5685('0x3e')]['create'](_0x317725[_0x5685('0x47')],{})[_0x5685('0x25')](respondWithResult(_0x8469e6,0xc9))['catch'](handleError(_0x8469e6,null));};exports[_0x5685('0x48')]=function(_0x5d764b,_0x2015b7){if(_0x5d764b[_0x5685('0x47')]['id']){delete _0x5d764b['body']['id'];}return db[_0x5685('0x3e')]['find']({'where':{'id':_0x5d764b['params']['id']}})[_0x5685('0x25')](handleEntityNotFound(_0x2015b7,null))[_0x5685('0x25')](saveUpdates(_0x5d764b[_0x5685('0x47')],null))[_0x5685('0x25')](respondWithResult(_0x2015b7,null))['catch'](handleError(_0x2015b7,null));};exports['destroy']=function(_0x427346,_0x27707e){return db[_0x5685('0x3e')][_0x5685('0x45')]({'where':{'id':_0x427346[_0x5685('0x49')]['id']}})[_0x5685('0x25')](handleEntityNotFound(_0x27707e,null))[_0x5685('0x25')](removeEntity(_0x27707e,null))[_0x5685('0x43')](handleError(_0x27707e,null));};
\ No newline at end of file
+var _0x9370=['querystring','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','limit','Content-Range','apply','update','then','destroy','error','name','send','index','map','rawAttributes','fieldName','type','model','intersection','attributes','fields','query','length','order','sort','where','filters','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','params','keys','ZendeskField','create','body','find','rimraf','zip-dir','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js'];(function(_0x16bdaf,_0x27cd42){var _0x4abfac=function(_0x191163){while(--_0x191163){_0x16bdaf['push'](_0x16bdaf['shift']());}};_0x4abfac(++_0x27cd42);}(_0x9370,0xc9));var _0x0937=function(_0x2cc953,_0x1e2ee6){_0x2cc953=_0x2cc953-0x0;var _0x54ca49=_0x9370[_0x2cc953];return _0x54ca49;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x0937('0x0'));var zipdir=require(_0x0937('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x0937('0x2'));var moment=require(_0x0937('0x3'));var BPromise=require(_0x0937('0x4'));var Mustache=require(_0x0937('0x5'));var util=require('util');var path=require(_0x0937('0x6'));var sox=require(_0x0937('0x7'));var csv=require(_0x0937('0x8'));var ejs=require(_0x0937('0x9'));var fs=require('fs');var fs_extra=require(_0x0937('0xa'));var _=require(_0x0937('0xb'));var squel=require(_0x0937('0xc'));var crypto=require('crypto');var jsforce=require(_0x0937('0xd'));var deskjs=require(_0x0937('0xe'));var toCsv=require('to-csv');var querystring=require(_0x0937('0xf'));var Papa=require(_0x0937('0x10'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x0937('0x11'));var as=require(_0x0937('0x12'));var hardwareService=require(_0x0937('0x13'));var logger=require(_0x0937('0x14'))(_0x0937('0x15'));var utils=require(_0x0937('0x16'));var config=require(_0x0937('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0x0937('0x18'))['db'];function respondWithStatusCode(_0x58336c,_0x4620db){_0x4620db=_0x4620db||0xcc;return function(_0x42e681){if(_0x42e681){return _0x58336c[_0x0937('0x19')](_0x4620db);}return _0x58336c[_0x0937('0x1a')](_0x4620db)[_0x0937('0x1b')]();};}function respondWithResult(_0x3ce352,_0x2887bc){_0x2887bc=_0x2887bc||0xc8;return function(_0x2432e6){if(_0x2432e6){return _0x3ce352[_0x0937('0x1a')](_0x2887bc)[_0x0937('0x1c')](_0x2432e6);}};}function respondWithFilteredResult(_0x1fd9fd,_0x52357b){return function(_0x522dd4){if(_0x522dd4){var _0x2154e9=typeof _0x52357b[_0x0937('0x1d')]===_0x0937('0x1e')&&typeof _0x52357b['limit']==='undefined';var _0x17fd78=_0x522dd4[_0x0937('0x1f')];var _0x27dca1=_0x2154e9?0x0:_0x52357b[_0x0937('0x1d')];var _0x12b504=_0x2154e9?_0x522dd4[_0x0937('0x1f')]:_0x52357b[_0x0937('0x1d')]+_0x52357b[_0x0937('0x20')];var _0x186bc6;if(_0x12b504>=_0x17fd78){_0x12b504=_0x17fd78;_0x186bc6=0xc8;}else{_0x186bc6=0xce;}_0x1fd9fd[_0x0937('0x1a')](_0x186bc6);return _0x1fd9fd['set'](_0x0937('0x21'),_0x27dca1+'-'+_0x12b504+'/'+_0x17fd78)[_0x0937('0x1c')](_0x522dd4);}return null;};}function patchUpdates(_0x58509d){return function(_0x66ad16){try{jsonpatch[_0x0937('0x22')](_0x66ad16,_0x58509d,!![]);}catch(_0x32980e){return BPromise['reject'](_0x32980e);}return _0x66ad16['save']();};}function saveUpdates(_0x3a6685,_0x5bcd3e){return function(_0x19444a){if(_0x19444a){return _0x19444a[_0x0937('0x23')](_0x3a6685)[_0x0937('0x24')](function(_0x1e74d2){return _0x1e74d2;});}return null;};}function removeEntity(_0x5b9793,_0x39b2fa){return function(_0x35819d){if(_0x35819d){return _0x35819d[_0x0937('0x25')]()[_0x0937('0x24')](function(){_0x5b9793['status'](0xcc)[_0x0937('0x1b')]();});}};}function handleEntityNotFound(_0x3f6972,_0x2c7a87){return function(_0x4e211a){if(!_0x4e211a){_0x3f6972[_0x0937('0x19')](0x194);}return _0x4e211a;};}function handleError(_0x28a26b,_0x38337e){_0x38337e=_0x38337e||0x1f4;return function(_0x477ce0){logger[_0x0937('0x26')](_0x477ce0['stack']);if(_0x477ce0[_0x0937('0x27')]){delete _0x477ce0['name'];}_0x28a26b[_0x0937('0x1a')](_0x38337e)[_0x0937('0x28')](_0x477ce0);};}exports[_0x0937('0x29')]=function(_0x7562e2,_0x5bc082){var _0x45ee89={},_0x2060c2={},_0x10768b={'count':0x0,'rows':[]};var _0x47c85d=_[_0x0937('0x2a')](db['ZendeskField'][_0x0937('0x2b')],function(_0x44e940){return{'name':_0x44e940[_0x0937('0x2c')],'type':_0x44e940[_0x0937('0x2d')]['key']};});_0x2060c2[_0x0937('0x2e')]=_[_0x0937('0x2a')](_0x47c85d,_0x0937('0x27'));_0x2060c2['query']=_['keys'](_0x7562e2['query']);_0x2060c2['filters']=_[_0x0937('0x2f')](_0x2060c2[_0x0937('0x2e')],_0x2060c2['query']);_0x45ee89[_0x0937('0x30')]=_[_0x0937('0x2f')](_0x2060c2[_0x0937('0x2e')],qs[_0x0937('0x31')](_0x7562e2[_0x0937('0x32')]['fields']));_0x45ee89['attributes']=_0x45ee89['attributes'][_0x0937('0x33')]?_0x45ee89[_0x0937('0x30')]:_0x2060c2['model'];if(!_0x7562e2['query']['hasOwnProperty']('nolimit')){_0x45ee89['limit']=qs['limit'](_0x7562e2[_0x0937('0x32')][_0x0937('0x20')]);_0x45ee89[_0x0937('0x1d')]=qs[_0x0937('0x1d')](_0x7562e2['query'][_0x0937('0x1d')]);}_0x45ee89[_0x0937('0x34')]=qs[_0x0937('0x35')](_0x7562e2[_0x0937('0x32')]['sort']);_0x45ee89[_0x0937('0x36')]=qs[_0x0937('0x37')](_[_0x0937('0x38')](_0x7562e2[_0x0937('0x32')],_0x2060c2[_0x0937('0x37')]),_0x47c85d);if(_0x7562e2[_0x0937('0x32')][_0x0937('0x39')]){_0x45ee89['where']=_[_0x0937('0x3a')](_0x45ee89[_0x0937('0x36')],{'$or':_[_0x0937('0x2a')](_0x47c85d,function(_0x28b915){if(_0x28b915[_0x0937('0x2d')]!==_0x0937('0x3b')){var _0x227613={};_0x227613[_0x28b915[_0x0937('0x27')]]={'$like':'%'+_0x7562e2[_0x0937('0x32')]['filter']+'%'};return _0x227613;}})});}_0x45ee89=_[_0x0937('0x3a')]({},_0x45ee89,_0x7562e2[_0x0937('0x3c')]);var _0x24f1fd={'where':_0x45ee89[_0x0937('0x36')]};return db['ZendeskField'][_0x0937('0x1f')](_0x24f1fd)['then'](function(_0x574f7d){_0x10768b[_0x0937('0x1f')]=_0x574f7d;if(_0x7562e2[_0x0937('0x32')][_0x0937('0x3d')]){_0x45ee89[_0x0937('0x3e')]=[{'all':!![]}];}return db['ZendeskField'][_0x0937('0x3f')](_0x45ee89);})[_0x0937('0x24')](function(_0x548e1b){_0x10768b[_0x0937('0x40')]=_0x548e1b;return _0x10768b;})[_0x0937('0x24')](respondWithFilteredResult(_0x5bc082,_0x45ee89))[_0x0937('0x41')](handleError(_0x5bc082,null));};exports['show']=function(_0x4a3f8f,_0x4ab170){var _0x5308cd={'raw':!![],'where':{'id':_0x4a3f8f[_0x0937('0x42')]['id']}},_0x84a84f={};_0x84a84f['model']=_[_0x0937('0x43')](db[_0x0937('0x44')]['rawAttributes']);_0x84a84f[_0x0937('0x32')]=_['keys'](_0x4a3f8f[_0x0937('0x32')]);_0x84a84f[_0x0937('0x37')]=_[_0x0937('0x2f')](_0x84a84f[_0x0937('0x2e')],_0x84a84f[_0x0937('0x32')]);_0x5308cd[_0x0937('0x30')]=_['intersection'](_0x84a84f[_0x0937('0x2e')],qs[_0x0937('0x31')](_0x4a3f8f['query'][_0x0937('0x31')]));_0x5308cd[_0x0937('0x30')]=_0x5308cd[_0x0937('0x30')][_0x0937('0x33')]?_0x5308cd['attributes']:_0x84a84f['model'];if(_0x4a3f8f['query'][_0x0937('0x3d')]){_0x5308cd[_0x0937('0x3e')]=[{'all':!![]}];}_0x5308cd=_[_0x0937('0x3a')]({},_0x5308cd,_0x4a3f8f[_0x0937('0x3c')]);return db[_0x0937('0x44')]['find'](_0x5308cd)[_0x0937('0x24')](handleEntityNotFound(_0x4ab170,null))[_0x0937('0x24')](respondWithResult(_0x4ab170,null))[_0x0937('0x41')](handleError(_0x4ab170,null));};exports[_0x0937('0x45')]=function(_0x3c2083,_0x11dedb){return db[_0x0937('0x44')]['create'](_0x3c2083[_0x0937('0x46')],{})[_0x0937('0x24')](respondWithResult(_0x11dedb,0xc9))[_0x0937('0x41')](handleError(_0x11dedb,null));};exports[_0x0937('0x23')]=function(_0x561502,_0x50436d){if(_0x561502[_0x0937('0x46')]['id']){delete _0x561502[_0x0937('0x46')]['id'];}return db[_0x0937('0x44')][_0x0937('0x47')]({'where':{'id':_0x561502['params']['id']}})['then'](handleEntityNotFound(_0x50436d,null))[_0x0937('0x24')](saveUpdates(_0x561502[_0x0937('0x46')],null))['then'](respondWithResult(_0x50436d,null))[_0x0937('0x41')](handleError(_0x50436d,null));};exports['destroy']=function(_0x6b8d3b,_0x46ad5e){return db[_0x0937('0x44')][_0x0937('0x47')]({'where':{'id':_0x6b8d3b[_0x0937('0x42')]['id']}})['then'](handleEntityNotFound(_0x46ad5e,null))[_0x0937('0x24')](removeEntity(_0x46ad5e,null))['catch'](handleError(_0x46ad5e,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2547=['idField','lodash','api','moment','request-promise','path','rimraf','../../config/environment','./intZendeskField.attributes','exports','define','ZendeskField','int_zendesk_fields'];(function(_0x467aba,_0xecc43c){var _0x350faf=function(_0x46b00f){while(--_0x46b00f){_0x467aba['push'](_0x467aba['shift']());}};_0x350faf(++_0xecc43c);}(_0x2547,0x160));var _0x7254=function(_0x546251,_0x676774){_0x546251=_0x546251-0x0;var _0x383d17=_0x2547[_0x546251];return _0x383d17;};'use strict';var _=require(_0x7254('0x0'));var util=require('util');var logger=require('../../config/logger')(_0x7254('0x1'));var moment=require(_0x7254('0x2'));var BPromise=require('bluebird');var rp=require(_0x7254('0x3'));var fs=require('fs');var path=require(_0x7254('0x4'));var rimraf=require(_0x7254('0x5'));var config=require(_0x7254('0x6'));var attributes=require(_0x7254('0x7'));module[_0x7254('0x8')]=function(_0x1d95b9,_0x2fb4c8){return _0x1d95b9[_0x7254('0x9')](_0x7254('0xa'),attributes,{'tableName':_0x7254('0xb'),'paranoid':![],'indexes':[{'name':'zendesk_unique_index','fields':[_0x7254('0xc'),'FieldId'],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x6b90=['lodash','../../config/logger','api','bluebird','path','rimraf','./intZendeskField.attributes','define','ZendeskField','int_zendesk_fields','zendesk_unique_index','FieldId'];(function(_0x52a507,_0x23b6c6){var _0x5b179a=function(_0x53b100){while(--_0x53b100){_0x52a507['push'](_0x52a507['shift']());}};_0x5b179a(++_0x23b6c6);}(_0x6b90,0x120));var _0x06b9=function(_0x12e3d2,_0x77a0e0){_0x12e3d2=_0x12e3d2-0x0;var _0x2e632c=_0x6b90[_0x12e3d2];return _0x2e632c;};'use strict';var _=require(_0x06b9('0x0'));var util=require('util');var logger=require(_0x06b9('0x1'))(_0x06b9('0x2'));var moment=require('moment');var BPromise=require(_0x06b9('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x06b9('0x4'));var rimraf=require(_0x06b9('0x5'));var config=require('../../config/environment');var attributes=require(_0x06b9('0x6'));module['exports']=function(_0x28658a,_0x4e451e){return _0x28658a[_0x06b9('0x7')](_0x06b9('0x8'),attributes,{'tableName':_0x06b9('0x9'),'paranoid':![],'indexes':[{'name':_0x06b9('0xa'),'fields':['idField',_0x06b9('0xb')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4668=['stringify','error','code','message','result','catch','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/logger','rpc','../../config/environment','client','request','info','ZendeskField,\x20%s,\x20%s','request\x20sent','debug','ZendeskField,\x20%s,\x20%s,\x20%s'];(function(_0x1641f0,_0x3122ed){var _0x9a9f08=function(_0x51d370){while(--_0x51d370){_0x1641f0['push'](_0x1641f0['shift']());}};_0x9a9f08(++_0x3122ed);}(_0x4668,0x1ea));var _0x8466=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x4668[_0x321bb2];return _0x9c12ed;};'use strict';var _=require(_0x8466('0x0'));var util=require(_0x8466('0x1'));var moment=require(_0x8466('0x2'));var BPromise=require(_0x8466('0x3'));var rs=require(_0x8466('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x8466('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0x8466('0x6'))(_0x8466('0x7'));var config=require(_0x8466('0x8'));var jayson=require('jayson/promise');var client=jayson[_0x8466('0x9')]['http']({'port':0x232a});function respondWithRpcPromise(_0x3f67a2,_0x445abc,_0x388b17){return new BPromise(function(_0x15fea5,_0x341fa3){return client[_0x8466('0xa')](_0x3f67a2,_0x388b17)['then'](function(_0x33bf69){logger[_0x8466('0xb')](_0x8466('0xc'),_0x445abc,_0x8466('0xd'));logger[_0x8466('0xe')](_0x8466('0xf'),_0x445abc,_0x8466('0xd'),JSON[_0x8466('0x10')](_0x33bf69));if(_0x33bf69[_0x8466('0x11')]){if(_0x33bf69['error'][_0x8466('0x12')]===0x1f4){logger[_0x8466('0x11')]('ZendeskField,\x20%s,\x20%s',_0x445abc,_0x33bf69[_0x8466('0x11')]['message']);return _0x341fa3(_0x33bf69[_0x8466('0x11')]['message']);}logger['error'](_0x8466('0xc'),_0x445abc,_0x33bf69[_0x8466('0x11')][_0x8466('0x13')]);return _0x15fea5(_0x33bf69[_0x8466('0x11')][_0x8466('0x13')]);}else{logger['info']('ZendeskField,\x20%s,\x20%s',_0x445abc,_0x8466('0xd'));_0x15fea5(_0x33bf69[_0x8466('0x14')][_0x8466('0x13')]);}})[_0x8466('0x15')](function(_0x39a698){logger[_0x8466('0x11')](_0x8466('0xc'),_0x445abc,_0x39a698);_0x341fa3(_0x39a698);});});}
\ No newline at end of file
+var _0xcf3b=['bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','../../config/environment','client','http','request','then','info','ZendeskField,\x20%s,\x20%s','request\x20sent','ZendeskField,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','lodash','util','moment'];(function(_0x4d07cc,_0x587613){var _0x42de3b=function(_0x201f78){while(--_0x201f78){_0x4d07cc['push'](_0x4d07cc['shift']());}};_0x42de3b(++_0x587613);}(_0xcf3b,0xd9));var _0xbcf3=function(_0x297dfa,_0x342110){_0x297dfa=_0x297dfa-0x0;var _0x90ea78=_0xcf3b[_0x297dfa];return _0x90ea78;};'use strict';var _=require(_0xbcf3('0x0'));var util=require(_0xbcf3('0x1'));var moment=require(_0xbcf3('0x2'));var BPromise=require(_0xbcf3('0x3'));var rs=require(_0xbcf3('0x4'));var fs=require('fs');var Redis=require(_0xbcf3('0x5'));var db=require(_0xbcf3('0x6'))['db'];var utils=require('../../config/utils');var logger=require(_0xbcf3('0x7'))('rpc');var config=require(_0xbcf3('0x8'));var jayson=require('jayson/promise');var client=jayson[_0xbcf3('0x9')][_0xbcf3('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x168f8c,_0xb69253,_0x2fdd18){return new BPromise(function(_0x5ca017,_0x328def){return client[_0xbcf3('0xb')](_0x168f8c,_0x2fdd18)[_0xbcf3('0xc')](function(_0x4e36a7){logger[_0xbcf3('0xd')](_0xbcf3('0xe'),_0xb69253,_0xbcf3('0xf'));logger['debug'](_0xbcf3('0x10'),_0xb69253,'request\x20sent',JSON[_0xbcf3('0x11')](_0x4e36a7));if(_0x4e36a7[_0xbcf3('0x12')]){if(_0x4e36a7[_0xbcf3('0x12')][_0xbcf3('0x13')]===0x1f4){logger[_0xbcf3('0x12')](_0xbcf3('0xe'),_0xb69253,_0x4e36a7[_0xbcf3('0x12')]['message']);return _0x328def(_0x4e36a7[_0xbcf3('0x12')][_0xbcf3('0x14')]);}logger[_0xbcf3('0x12')](_0xbcf3('0xe'),_0xb69253,_0x4e36a7[_0xbcf3('0x12')][_0xbcf3('0x14')]);return _0x5ca017(_0x4e36a7[_0xbcf3('0x12')][_0xbcf3('0x14')]);}else{logger[_0xbcf3('0xd')](_0xbcf3('0xe'),_0xb69253,'request\x20sent');_0x5ca017(_0x4e36a7[_0xbcf3('0x15')][_0xbcf3('0x14')]);}})['catch'](function(_0x14fb97){logger['error'](_0xbcf3('0xe'),_0xb69253,_0x14fb97);_0x328def(_0x14fb97);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5928=['delete','destroy','exports','multer','connect-timeout','express','Router','fs-extra','../../components/interaction/service','../../config/environment','./intZohoAccount.controller','get','isAuthenticated','index','/:id','show','getConfigurations','/:id/fields','post','create','/:id/configurations','addConfiguration','put','update'];(function(_0x5eeb52,_0x22be5b){var _0x5c1f13=function(_0x5ec89c){while(--_0x5ec89c){_0x5eeb52['push'](_0x5eeb52['shift']());}};_0x5c1f13(++_0x22be5b);}(_0x5928,0x183));var _0x8592=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x5928[_0x3dd15e];return _0x231fd0;};'use strict';var multer=require(_0x8592('0x0'));var util=require('util');var path=require('path');var timeout=require(_0x8592('0x1'));var express=require(_0x8592('0x2'));var router=express[_0x8592('0x3')]();var fs_extra=require(_0x8592('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0x8592('0x5'));var config=require(_0x8592('0x6'));var controller=require(_0x8592('0x7'));router[_0x8592('0x8')]('/',auth[_0x8592('0x9')](),controller[_0x8592('0xa')]);router['get'](_0x8592('0xb'),auth['isAuthenticated'](),controller[_0x8592('0xc')]);router['get']('/:id/configurations',auth['isAuthenticated'](),controller[_0x8592('0xd')]);router[_0x8592('0x8')](_0x8592('0xe'),auth[_0x8592('0x9')](),controller['getFields']);router[_0x8592('0xf')]('/',auth[_0x8592('0x9')](),controller[_0x8592('0x10')]);router[_0x8592('0xf')](_0x8592('0x11'),auth[_0x8592('0x9')](),controller[_0x8592('0x12')]);router[_0x8592('0x13')]('/:id',auth[_0x8592('0x9')](),controller[_0x8592('0x14')]);router[_0x8592('0x15')](_0x8592('0xb'),auth[_0x8592('0x9')](),controller[_0x8592('0x16')]);module[_0x8592('0x17')]=router;
\ No newline at end of file
+var _0x1f61=['isAuthenticated','get','/:id','show','/:id/configurations','getConfigurations','/:id/fields','getFields','post','addConfiguration','put','destroy','exports','multer','path','connect-timeout','Router','fs-extra','../../components/interaction/service','../../config/environment','./intZohoAccount.controller'];(function(_0x2283dc,_0x2fcfc5){var _0x16db90=function(_0x376c35){while(--_0x376c35){_0x2283dc['push'](_0x2283dc['shift']());}};_0x16db90(++_0x2fcfc5);}(_0x1f61,0x1db));var _0x11f6=function(_0x4f35f4,_0x51a8c3){_0x4f35f4=_0x4f35f4-0x0;var _0x2e9a70=_0x1f61[_0x4f35f4];return _0x2e9a70;};'use strict';var multer=require(_0x11f6('0x0'));var util=require('util');var path=require(_0x11f6('0x1'));var timeout=require(_0x11f6('0x2'));var express=require('express');var router=express[_0x11f6('0x3')]();var fs_extra=require(_0x11f6('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0x11f6('0x5'));var config=require(_0x11f6('0x6'));var controller=require(_0x11f6('0x7'));router['get']('/',auth[_0x11f6('0x8')](),controller['index']);router[_0x11f6('0x9')](_0x11f6('0xa'),auth[_0x11f6('0x8')](),controller[_0x11f6('0xb')]);router[_0x11f6('0x9')](_0x11f6('0xc'),auth[_0x11f6('0x8')](),controller[_0x11f6('0xd')]);router[_0x11f6('0x9')](_0x11f6('0xe'),auth[_0x11f6('0x8')](),controller[_0x11f6('0xf')]);router[_0x11f6('0x10')]('/',auth[_0x11f6('0x8')](),controller['create']);router['post'](_0x11f6('0xc'),auth[_0x11f6('0x8')](),controller[_0x11f6('0x11')]);router[_0x11f6('0x12')]('/:id',auth[_0x11f6('0x8')](),controller['update']);router['delete'](_0x11f6('0xa'),auth[_0x11f6('0x8')](),controller[_0x11f6('0x13')]);module[_0x11f6('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x70e0=['STRING','sequelize','exports'];(function(_0x11c04d,_0x5d50e8){var _0x596640=function(_0x4b7e84){while(--_0x4b7e84){_0x11c04d['push'](_0x11c04d['shift']());}};_0x596640(++_0x5d50e8);}(_0x70e0,0x17b));var _0x070e=function(_0x343242,_0x29103b){_0x343242=_0x343242-0x0;var _0x55d682=_0x70e0[_0x343242];return _0x55d682;};'use strict';var Sequelize=require(_0x070e('0x0'));module[_0x070e('0x1')]={'name':{'type':Sequelize[_0x070e('0x2')]},'description':{'type':Sequelize['STRING']},'host':{'type':Sequelize['STRING']},'zone':{'type':Sequelize[_0x070e('0x2')]},'clientId':{'type':Sequelize[_0x070e('0x2')]},'clientSecret':{'type':Sequelize[_0x070e('0x2')]},'serverUrl':{'type':Sequelize[_0x070e('0x2')],'allowNull':![]},'code':{'type':Sequelize['STRING']},'refreshToken':{'type':Sequelize[_0x070e('0x2')]}};
\ No newline at end of file
+var _0xec56=['STRING','sequelize'];(function(_0x5834bc,_0x3d4801){var _0x3e183a=function(_0x18b023){while(--_0x18b023){_0x5834bc['push'](_0x5834bc['shift']());}};_0x3e183a(++_0x3d4801);}(_0xec56,0x1bd));var _0x6ec5=function(_0x3093ae,_0x15bab7){_0x3093ae=_0x3093ae-0x0;var _0x4a9523=_0xec56[_0x3093ae];return _0x4a9523;};'use strict';var Sequelize=require(_0x6ec5('0x0'));module['exports']={'name':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0x6ec5('0x1')]},'host':{'type':Sequelize[_0x6ec5('0x1')]},'zone':{'type':Sequelize[_0x6ec5('0x1')]},'clientId':{'type':Sequelize[_0x6ec5('0x1')]},'clientSecret':{'type':Sequelize[_0x6ec5('0x1')]},'serverUrl':{'type':Sequelize[_0x6ec5('0x1')],'allowNull':![]},'code':{'type':Sequelize[_0x6ec5('0x1')]},'refreshToken':{'type':Sequelize[_0x6ec5('0x1')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xee24=['crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../mysqldb','../../components/integrations/configuration','sendStatus','status','json','undefined','limit','count','offset','set','Content-Range','apply','save','update','then','destroy','error','stack','name','send','index','map','ZohoAccount','rawAttributes','fieldName','key','model','query','keys','intersection','fields','attributes','length','hasOwnProperty','nolimit','sort','filters','pick','filter','where','merge','type','options','includeAll','include','findAll','catch','show','find','create','body','params','getConfigurations','findOne','ZohoConfiguration','order','addConfiguration','Subjects','Descriptions','getDescriptions','ZohoField','zone','https://accounts.zoho.com','https://accounts.zoho.com.au','https://accounts.zoho.in','https://accounts.zoho.com.cn','clientId','clientSecret','refresh_token','access_token','Unable\x20to\x20retrieve\x20the\x20access\x20token','host','serverUrl','code','refreshToken','zoho.eu','com','slice','lastIndexOf','Refresh\x20Token\x20not\x20available\x20for\x20the\x20account','format','https://www.zohoapis.%s/crm/v2/settings/fields','Calls','Zoho-oauthtoken\x20','response','message','Owner','Description','WhoId','Call_Duration','Call_Result','Call_Type','includes','api_name','system_mandatory','push','display_label','picklist','pick_list_values','statusCode','getFields,\x20%s,\x20%s,\x20%s','getFields','stringify','test','Wrong\x20credentials','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','ejs','fs-extra','lodash'];(function(_0x2f3f14,_0x5936a4){var _0x3e0c9f=function(_0x19dd01){while(--_0x19dd01){_0x2f3f14['push'](_0x2f3f14['shift']());}};_0x3e0c9f(++_0x5936a4);}(_0xee24,0x172));var _0x4ee2=function(_0x5d9613,_0x11eead){_0x5d9613=_0x5d9613-0x0;var _0x3d96f4=_0xee24[_0x5d9613];return _0x3d96f4;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x4ee2('0x0'));var zipdir=require(_0x4ee2('0x1'));var jsonpatch=require(_0x4ee2('0x2'));var rp=require(_0x4ee2('0x3'));var moment=require(_0x4ee2('0x4'));var BPromise=require(_0x4ee2('0x5'));var Mustache=require(_0x4ee2('0x6'));var util=require('util');var path=require(_0x4ee2('0x7'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x4ee2('0x8'));var fs=require('fs');var fs_extra=require(_0x4ee2('0x9'));var _=require(_0x4ee2('0xa'));var squel=require('squel');var crypto=require(_0x4ee2('0xb'));var jsforce=require(_0x4ee2('0xc'));var deskjs=require(_0x4ee2('0xd'));var toCsv=require(_0x4ee2('0xe'));var querystring=require(_0x4ee2('0xf'));var Papa=require(_0x4ee2('0x10'));var Redis=require(_0x4ee2('0x11'));var authService=require(_0x4ee2('0x12'));var qs=require(_0x4ee2('0x13'));var as=require(_0x4ee2('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x4ee2('0x15'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x4ee2('0x16'))['db'];var integrations=require(_0x4ee2('0x17'));function respondWithStatusCode(_0x359cd8,_0x114a08){_0x114a08=_0x114a08||0xcc;return function(_0x43f55f){if(_0x43f55f){return _0x359cd8[_0x4ee2('0x18')](_0x114a08);}return _0x359cd8[_0x4ee2('0x19')](_0x114a08)['end']();};}function respondWithResult(_0x47cfe6,_0x3c4934){_0x3c4934=_0x3c4934||0xc8;return function(_0x3bc468){if(_0x3bc468){return _0x47cfe6[_0x4ee2('0x19')](_0x3c4934)[_0x4ee2('0x1a')](_0x3bc468);}};}function respondWithFilteredResult(_0x48a048,_0x4aef7b){return function(_0x2cfaa2){if(_0x2cfaa2){var _0x1b14ba=typeof _0x4aef7b['offset']===_0x4ee2('0x1b')&&typeof _0x4aef7b[_0x4ee2('0x1c')]===_0x4ee2('0x1b');var _0x16e8d6=_0x2cfaa2[_0x4ee2('0x1d')];var _0xaef88f=_0x1b14ba?0x0:_0x4aef7b[_0x4ee2('0x1e')];var _0x421665=_0x1b14ba?_0x2cfaa2[_0x4ee2('0x1d')]:_0x4aef7b[_0x4ee2('0x1e')]+_0x4aef7b['limit'];var _0x52c9d7;if(_0x421665>=_0x16e8d6){_0x421665=_0x16e8d6;_0x52c9d7=0xc8;}else{_0x52c9d7=0xce;}_0x48a048['status'](_0x52c9d7);return _0x48a048[_0x4ee2('0x1f')](_0x4ee2('0x20'),_0xaef88f+'-'+_0x421665+'/'+_0x16e8d6)[_0x4ee2('0x1a')](_0x2cfaa2);}return null;};}function patchUpdates(_0x3651c6){return function(_0x50453c){try{jsonpatch[_0x4ee2('0x21')](_0x50453c,_0x3651c6,!![]);}catch(_0x16dde4){return BPromise['reject'](_0x16dde4);}return _0x50453c[_0x4ee2('0x22')]();};}function saveUpdates(_0x43f520,_0x234dbf){return function(_0x386f4e){if(_0x386f4e){return _0x386f4e[_0x4ee2('0x23')](_0x43f520)[_0x4ee2('0x24')](function(_0x1e5a44){return _0x1e5a44;});}return null;};}function removeEntity(_0x4a764c,_0x41fbb7){return function(_0x315735){if(_0x315735){return _0x315735[_0x4ee2('0x25')]()[_0x4ee2('0x24')](function(){_0x4a764c['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x40a7a3,_0x36a66){return function(_0xe04041){if(!_0xe04041){_0x40a7a3[_0x4ee2('0x18')](0x194);}return _0xe04041;};}function handleError(_0x4310a8,_0x18e0d6){_0x18e0d6=_0x18e0d6||0x1f4;return function(_0x3cd3f1){logger[_0x4ee2('0x26')](_0x3cd3f1[_0x4ee2('0x27')]);if(_0x3cd3f1['name']){delete _0x3cd3f1[_0x4ee2('0x28')];}_0x4310a8[_0x4ee2('0x19')](_0x18e0d6)[_0x4ee2('0x29')](_0x3cd3f1);};}exports[_0x4ee2('0x2a')]=function(_0x701789,_0x4006b7){var _0x239e83={},_0x338032={},_0x86d1b4={'count':0x0,'rows':[]};var _0x336265=_[_0x4ee2('0x2b')](db[_0x4ee2('0x2c')][_0x4ee2('0x2d')],function(_0x21d868){return{'name':_0x21d868[_0x4ee2('0x2e')],'type':_0x21d868['type'][_0x4ee2('0x2f')]};});_0x338032[_0x4ee2('0x30')]=_[_0x4ee2('0x2b')](_0x336265,_0x4ee2('0x28'));_0x338032[_0x4ee2('0x31')]=_[_0x4ee2('0x32')](_0x701789[_0x4ee2('0x31')]);_0x338032['filters']=_['intersection'](_0x338032[_0x4ee2('0x30')],_0x338032[_0x4ee2('0x31')]);_0x239e83['attributes']=_[_0x4ee2('0x33')](_0x338032[_0x4ee2('0x30')],qs[_0x4ee2('0x34')](_0x701789[_0x4ee2('0x31')][_0x4ee2('0x34')]));_0x239e83[_0x4ee2('0x35')]=_0x239e83['attributes'][_0x4ee2('0x36')]?_0x239e83[_0x4ee2('0x35')]:_0x338032[_0x4ee2('0x30')];if(!_0x701789[_0x4ee2('0x31')][_0x4ee2('0x37')](_0x4ee2('0x38'))){_0x239e83[_0x4ee2('0x1c')]=qs[_0x4ee2('0x1c')](_0x701789[_0x4ee2('0x31')][_0x4ee2('0x1c')]);_0x239e83[_0x4ee2('0x1e')]=qs[_0x4ee2('0x1e')](_0x701789[_0x4ee2('0x31')][_0x4ee2('0x1e')]);}_0x239e83['order']=qs[_0x4ee2('0x39')](_0x701789[_0x4ee2('0x31')][_0x4ee2('0x39')]);_0x239e83['where']=qs[_0x4ee2('0x3a')](_[_0x4ee2('0x3b')](_0x701789[_0x4ee2('0x31')],_0x338032[_0x4ee2('0x3a')]),_0x336265);if(_0x701789[_0x4ee2('0x31')][_0x4ee2('0x3c')]){_0x239e83[_0x4ee2('0x3d')]=_[_0x4ee2('0x3e')](_0x239e83[_0x4ee2('0x3d')],{'$or':_[_0x4ee2('0x2b')](_0x336265,function(_0x4cbd62){if(_0x4cbd62[_0x4ee2('0x3f')]!=='VIRTUAL'){var _0x129ef2={};_0x129ef2[_0x4cbd62[_0x4ee2('0x28')]]={'$like':'%'+_0x701789['query']['filter']+'%'};return _0x129ef2;}})});}_0x239e83=_[_0x4ee2('0x3e')]({},_0x239e83,_0x701789[_0x4ee2('0x40')]);var _0x5639dc={'where':_0x239e83['where']};return db[_0x4ee2('0x2c')][_0x4ee2('0x1d')](_0x5639dc)[_0x4ee2('0x24')](function(_0x192163){_0x86d1b4[_0x4ee2('0x1d')]=_0x192163;if(_0x701789[_0x4ee2('0x31')][_0x4ee2('0x41')]){_0x239e83[_0x4ee2('0x42')]=[{'all':!![]}];}return db['ZohoAccount'][_0x4ee2('0x43')](_0x239e83);})[_0x4ee2('0x24')](function(_0x5f28e2){_0x86d1b4['rows']=_0x5f28e2;return _0x86d1b4;})[_0x4ee2('0x24')](respondWithFilteredResult(_0x4006b7,_0x239e83))[_0x4ee2('0x44')](handleError(_0x4006b7,null));};exports[_0x4ee2('0x45')]=function(_0x41bad6,_0x159b99){var _0x4f6cd1={'raw':![],'where':{'id':_0x41bad6['params']['id']}},_0x57d970={};_0x57d970[_0x4ee2('0x30')]=_[_0x4ee2('0x32')](db[_0x4ee2('0x2c')][_0x4ee2('0x2d')]);_0x57d970[_0x4ee2('0x31')]=_[_0x4ee2('0x32')](_0x41bad6[_0x4ee2('0x31')]);_0x57d970[_0x4ee2('0x3a')]=_[_0x4ee2('0x33')](_0x57d970[_0x4ee2('0x30')],_0x57d970[_0x4ee2('0x31')]);_0x4f6cd1[_0x4ee2('0x35')]=_['intersection'](_0x57d970[_0x4ee2('0x30')],qs[_0x4ee2('0x34')](_0x41bad6[_0x4ee2('0x31')][_0x4ee2('0x34')]));_0x4f6cd1[_0x4ee2('0x35')]=_0x4f6cd1[_0x4ee2('0x35')][_0x4ee2('0x36')]?_0x4f6cd1[_0x4ee2('0x35')]:_0x57d970['model'];if(_0x41bad6[_0x4ee2('0x31')]['includeAll']){_0x4f6cd1['include']=[{'all':!![]}];}_0x4f6cd1=_[_0x4ee2('0x3e')]({},_0x4f6cd1,_0x41bad6[_0x4ee2('0x40')]);return db['ZohoAccount'][_0x4ee2('0x46')](_0x4f6cd1)[_0x4ee2('0x24')](handleEntityNotFound(_0x159b99,null))[_0x4ee2('0x24')](respondWithResult(_0x159b99,null))[_0x4ee2('0x44')](handleError(_0x159b99,null));};exports[_0x4ee2('0x47')]=function(_0xe338f5,_0x4e555c){return db[_0x4ee2('0x2c')][_0x4ee2('0x47')](_0xe338f5[_0x4ee2('0x48')],{})[_0x4ee2('0x24')](respondWithResult(_0x4e555c,0xc9))[_0x4ee2('0x44')](handleError(_0x4e555c,null));};exports['update']=function(_0x264526,_0x2b6f45){if(_0x264526[_0x4ee2('0x48')]['id']){delete _0x264526[_0x4ee2('0x48')]['id'];}return db[_0x4ee2('0x2c')]['find']({'where':{'id':_0x264526[_0x4ee2('0x49')]['id']}})['then'](handleEntityNotFound(_0x2b6f45,null))[_0x4ee2('0x24')](saveUpdates(_0x264526['body'],null))[_0x4ee2('0x24')](respondWithResult(_0x2b6f45,null))[_0x4ee2('0x44')](handleError(_0x2b6f45,null));};exports[_0x4ee2('0x25')]=function(_0x4e28cb,_0x5d47a6){return db[_0x4ee2('0x2c')]['find']({'where':{'id':_0x4e28cb['params']['id']}})[_0x4ee2('0x24')](handleEntityNotFound(_0x5d47a6,null))['then'](removeEntity(_0x5d47a6,null))[_0x4ee2('0x44')](handleError(_0x5d47a6,null));};exports[_0x4ee2('0x4a')]=function(_0x368abf,_0x45a48e,_0x26d584){var _0x494a95={};var _0x1c4252={};var _0x22172f;var _0x5f42fe;return db[_0x4ee2('0x2c')][_0x4ee2('0x4b')]({'where':{'id':_0x368abf['params']['id']}})['then'](handleEntityNotFound(_0x45a48e,null))[_0x4ee2('0x24')](function(_0x5d21a3){if(_0x5d21a3){_0x22172f=_0x5d21a3;_0x1c4252[_0x4ee2('0x30')]=_['keys'](db[_0x4ee2('0x4c')][_0x4ee2('0x2d')]);_0x1c4252[_0x4ee2('0x31')]=_[_0x4ee2('0x32')](_0x368abf[_0x4ee2('0x31')]);_0x1c4252[_0x4ee2('0x3a')]=_['intersection'](_0x1c4252[_0x4ee2('0x30')],_0x1c4252[_0x4ee2('0x31')]);_0x494a95[_0x4ee2('0x35')]=_[_0x4ee2('0x33')](_0x1c4252['model'],qs[_0x4ee2('0x34')](_0x368abf[_0x4ee2('0x31')]['fields']));_0x494a95[_0x4ee2('0x35')]=_0x494a95[_0x4ee2('0x35')]['length']?_0x494a95[_0x4ee2('0x35')]:_0x1c4252[_0x4ee2('0x30')];_0x494a95[_0x4ee2('0x4d')]=qs[_0x4ee2('0x39')](_0x368abf['query'][_0x4ee2('0x39')]);_0x494a95[_0x4ee2('0x3d')]=qs[_0x4ee2('0x3a')](_['pick'](_0x368abf['query'],_0x1c4252[_0x4ee2('0x3a')]));if(_0x368abf['query']['filter']){_0x494a95['where']=_[_0x4ee2('0x3e')](_0x494a95[_0x4ee2('0x3d')],{'$or':_['map'](_0x494a95[_0x4ee2('0x35')],function(_0x17c21b){var _0x4c3b0e={};_0x4c3b0e[_0x17c21b]={'$like':'%'+_0x368abf[_0x4ee2('0x31')][_0x4ee2('0x3c')]+'%'};return _0x4c3b0e;})});}_0x494a95=_[_0x4ee2('0x3e')]({},_0x494a95,_0x368abf[_0x4ee2('0x40')]);return _0x22172f[_0x4ee2('0x4a')](_0x494a95);}})[_0x4ee2('0x24')](function(_0x360cc7){if(_0x360cc7){_0x5f42fe=_0x360cc7[_0x4ee2('0x36')];if(!_0x368abf[_0x4ee2('0x31')]['hasOwnProperty']('nolimit')){_0x494a95[_0x4ee2('0x1c')]=qs[_0x4ee2('0x1c')](_0x368abf[_0x4ee2('0x31')][_0x4ee2('0x1c')]);_0x494a95[_0x4ee2('0x1e')]=qs['offset'](_0x368abf[_0x4ee2('0x31')][_0x4ee2('0x1e')]);}return _0x22172f[_0x4ee2('0x4a')](_0x494a95);}})[_0x4ee2('0x24')](function(_0x1d484a){if(_0x1d484a){return _0x1d484a?{'count':_0x5f42fe,'rows':_0x1d484a}:null;}})[_0x4ee2('0x24')](respondWithResult(_0x45a48e,null))[_0x4ee2('0x44')](handleError(_0x45a48e,null));};exports[_0x4ee2('0x4e')]=function(_0xa8df15,_0x42c49f,_0x48a74c){if(_0xa8df15[_0x4ee2('0x48')]['id']){delete _0xa8df15[_0x4ee2('0x48')]['id'];}return db['ZohoAccount']['findOne']({'where':{'id':_0xa8df15[_0x4ee2('0x49')]['id']}})[_0x4ee2('0x24')](handleEntityNotFound(_0x42c49f,null))[_0x4ee2('0x24')](function(_0x127c46){if(_0x127c46){_0xa8df15[_0x4ee2('0x48')]['AccountId']=_0x127c46['id'];_0xa8df15[_0x4ee2('0x48')][_0x4ee2('0x4f')]=integrations['getSubjects'](_0xa8df15[_0x4ee2('0x48')]['channel'],_0xa8df15[_0x4ee2('0x48')]['type']);_0xa8df15[_0x4ee2('0x48')][_0x4ee2('0x50')]=integrations[_0x4ee2('0x51')](_0xa8df15[_0x4ee2('0x48')]['channel'],_0xa8df15[_0x4ee2('0x48')][_0x4ee2('0x3f')]);return db[_0x4ee2('0x4c')][_0x4ee2('0x47')](_0xa8df15[_0x4ee2('0x48')],{'include':[{'model':db[_0x4ee2('0x52')],'as':_0x4ee2('0x4f')},{'model':db[_0x4ee2('0x52')],'as':_0x4ee2('0x50')}]});}return null;})[_0x4ee2('0x24')](respondWithResult(_0x42c49f,null))[_0x4ee2('0x44')](handleError(_0x42c49f,null));};function getAccessToken(_0x30c1cc){return new Promise(function(_0x2e5573,_0x36ad91){var _0x41bfa9;switch(_0x30c1cc[_0x4ee2('0x53')]){case'US':_0x41bfa9=_0x4ee2('0x54');break;case'AU':_0x41bfa9=_0x4ee2('0x55');break;case'EU':_0x41bfa9='https://accounts.zoho.eu';break;case'IN':_0x41bfa9=_0x4ee2('0x56');break;case'CN':_0x41bfa9=_0x4ee2('0x57');break;default:_0x41bfa9='https://accounts.zoho.eu';break;}var _0x5cbba1={'method':'POST','uri':_0x41bfa9+'/oauth/v2/token','qs':{'refresh_token':_0x30c1cc['refreshToken'],'client_id':_0x30c1cc[_0x4ee2('0x58')],'client_secret':_0x30c1cc[_0x4ee2('0x59')],'grant_type':_0x4ee2('0x5a')},'json':!![]};return rp(_0x5cbba1)[_0x4ee2('0x24')](function(_0x4b82bd){if(_0x4b82bd['access_token']){_0x2e5573(_0x4b82bd[_0x4ee2('0x5b')]);}else{_0x36ad91(_0x4ee2('0x5c'));}})[_0x4ee2('0x44')](function(_0x1e7d99){_0x36ad91(_0x1e7d99);});});}exports['getFields']=function(_0x299c5d,_0x364741,_0x259830){var _0x797415,_0x444e50,_0x4a7329,_0x29a92d,_0xa6e045;return db[_0x4ee2('0x2c')][_0x4ee2('0x4b')]({'where':{'id':_0x299c5d[_0x4ee2('0x49')]['id']},'attributes':['id',_0x4ee2('0x5d'),_0x4ee2('0x53'),_0x4ee2('0x58'),_0x4ee2('0x59'),_0x4ee2('0x5e'),_0x4ee2('0x5f'),_0x4ee2('0x60')]})[_0x4ee2('0x24')](handleEntityNotFound(_0x364741,null))['then'](function(_0x2a2a9f){_0xa6e045=_0x2a2a9f;_0x797415=_0xa6e045[_0x4ee2('0x5d')];_0x444e50=_0x797415===_0x4ee2('0x61')?'eu':_0x4ee2('0x62');_0x4a7329=_0xa6e045[_0x4ee2('0x5e')];var _0x2da223=_0x4a7329[_0x4ee2('0x63')](-0x1);if(_0x2da223==='/'||_0x2da223==='\x5c'||_0x2da223===':'){_0x4a7329=_0x4a7329['substring'](0x0,_0x4a7329[_0x4ee2('0x64')](_0x2da223));}if(!_0xa6e045['refreshToken']){throw new Error(_0x4ee2('0x65'));}return getAccessToken(_0xa6e045);})[_0x4ee2('0x24')](function(_0x77a3ae){if(_0x77a3ae){return rp({'method':'GET','uri':util[_0x4ee2('0x66')](_0x4ee2('0x67'),_0x444e50),'qs':{'module':_0x4ee2('0x68')},'headers':{'Authorization':_0x4ee2('0x69')+_0x77a3ae},'json':!![]});}})['then'](function(_0x46bb4b){if(_0x46bb4b){if(_0x46bb4b[_0x4ee2('0x6a')]&&_0x46bb4b[_0x4ee2('0x6a')][_0x4ee2('0x26')]){throw new Error(_0x46bb4b['response'][_0x4ee2('0x26')][_0x4ee2('0x6b')]);}var _0x9f54c0=[];var _0x515a3a=[];var _0x3521b2=[_0x4ee2('0x6c'),'Subject',_0x4ee2('0x6d'),_0x4ee2('0x6e'),_0x4ee2('0x6f'),_0x4ee2('0x70'),'Call_Start_Time',_0x4ee2('0x71')];_0x515a3a=_['remove'](_0x46bb4b[_0x4ee2('0x34')],function(_0x36e54d){return _0x3521b2[_0x4ee2('0x72')](_0x36e54d[_0x4ee2('0x73')]);});for(var _0x30802c=0x0;_0x30802c<_0x515a3a[_0x4ee2('0x36')];_0x30802c++){if(_0x515a3a[_0x30802c][_0x4ee2('0x74')]===![]){_0x9f54c0[_0x4ee2('0x75')]({'id':_0x515a3a[_0x30802c]['id'],'name':_0x515a3a[_0x30802c][_0x4ee2('0x76')],'custom':_0x515a3a[_0x30802c]['custom_field'],'options':_0x515a3a[_0x30802c]['data_type']===_0x4ee2('0x77')&&_0x515a3a[_0x30802c]['pick_list_values'][_0x4ee2('0x36')]>-0x1?_[_0x4ee2('0x2b')](_0x515a3a[_0x30802c][_0x4ee2('0x78')],function(_0x469058){return{'name':_0x469058,'value':_0x469058};}):[]});}}return{'count':_0x9f54c0[_0x4ee2('0x36')],'rows':_0x9f54c0};}else{return{'count':0x0,'rows':[]};}})[_0x4ee2('0x24')](respondWithResult(_0x364741,null))['catch'](function(_0x3c3eae){var _0x64228a=_0x299c5d[_0x4ee2('0x31')]['test']?0x1f4:_0x3c3eae[_0x4ee2('0x79')]||0x1f4;logger[_0x4ee2('0x26')](_0x4ee2('0x7a'),_0x4ee2('0x7b'),_0x64228a,JSON[_0x4ee2('0x7c')](_0x3c3eae));delete _0x3c3eae[_0x4ee2('0x28')];if(_0x64228a===0x191){_0x64228a=0x190;}_0x364741[_0x4ee2('0x19')](_0x64228a)['send'](_0x299c5d['query'][_0x4ee2('0x7d')]?{'message':_0x4ee2('0x7e'),'statusCode':_0x3c3eae[_0x4ee2('0x79')]}:_0x3c3eae);});};
\ No newline at end of file
+var _0x26ca=['filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','type','VIRTUAL','merge','options','count','includeAll','include','findAll','params','keys','find','catch','create','body','destroy','getConfigurations','addConfiguration','findOne','Subjects','channel','Descriptions','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','com','slice','substring','lastIndexOf','Refresh\x20Token\x20not\x20available\x20for\x20the\x20account','format','Calls','Zoho-oauthtoken\x20','response','message','Subject','Description','WhoId','Call_Duration','Call_Result','Call_Start_Time','Call_Type','includes','api_name','system_mandatory','display_label','custom_field','data_type','pick_list_values','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','stringify','send','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','path','sox','ejs','fs-extra','lodash','squel','jsforce','desk.js','to-csv','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','status','offset','undefined','limit','set','Content-Range','json','apply','save','update','then','end','error','stack','name','index','map','ZohoAccount','rawAttributes','fieldName','key','model','query'];(function(_0x5164f7,_0x41eae0){var _0x535275=function(_0x2192e6){while(--_0x2192e6){_0x5164f7['push'](_0x5164f7['shift']());}};_0x535275(++_0x41eae0);}(_0x26ca,0xd8));var _0xa26c=function(_0x5f309e,_0x66e31){_0x5f309e=_0x5f309e-0x0;var _0x487b5e=_0x26ca[_0x5f309e];return _0x487b5e;};'use strict';var emlformat=require(_0xa26c('0x0'));var rimraf=require(_0xa26c('0x1'));var zipdir=require(_0xa26c('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xa26c('0x3'));var moment=require(_0xa26c('0x4'));var BPromise=require(_0xa26c('0x5'));var Mustache=require('mustache');var util=require('util');var path=require(_0xa26c('0x6'));var sox=require(_0xa26c('0x7'));var csv=require('to-csv');var ejs=require(_0xa26c('0x8'));var fs=require('fs');var fs_extra=require(_0xa26c('0x9'));var _=require(_0xa26c('0xa'));var squel=require(_0xa26c('0xb'));var crypto=require('crypto');var jsforce=require(_0xa26c('0xc'));var deskjs=require(_0xa26c('0xd'));var toCsv=require(_0xa26c('0xe'));var querystring=require('querystring');var Papa=require(_0xa26c('0xf'));var Redis=require('ioredis');var authService=require(_0xa26c('0x10'));var qs=require(_0xa26c('0x11'));var as=require(_0xa26c('0x12'));var hardwareService=require(_0xa26c('0x13'));var logger=require(_0xa26c('0x14'))('api');var utils=require(_0xa26c('0x15'));var config=require(_0xa26c('0x16'));var licenseUtil=require(_0xa26c('0x17'));var db=require(_0xa26c('0x18'))['db'];var integrations=require(_0xa26c('0x19'));function respondWithStatusCode(_0x381d8a,_0x54ed6a){_0x54ed6a=_0x54ed6a||0xcc;return function(_0x25364a){if(_0x25364a){return _0x381d8a[_0xa26c('0x1a')](_0x54ed6a);}return _0x381d8a[_0xa26c('0x1b')](_0x54ed6a)['end']();};}function respondWithResult(_0x2bf576,_0x633ec5){_0x633ec5=_0x633ec5||0xc8;return function(_0x5d6e94){if(_0x5d6e94){return _0x2bf576[_0xa26c('0x1b')](_0x633ec5)['json'](_0x5d6e94);}};}function respondWithFilteredResult(_0x21711f,_0x131675){return function(_0x24c603){if(_0x24c603){var _0x3f2bbe=typeof _0x131675[_0xa26c('0x1c')]===_0xa26c('0x1d')&&typeof _0x131675[_0xa26c('0x1e')]===_0xa26c('0x1d');var _0x51bb04=_0x24c603['count'];var _0x50ff32=_0x3f2bbe?0x0:_0x131675[_0xa26c('0x1c')];var _0x4c70f3=_0x3f2bbe?_0x24c603['count']:_0x131675[_0xa26c('0x1c')]+_0x131675['limit'];var _0x4ce293;if(_0x4c70f3>=_0x51bb04){_0x4c70f3=_0x51bb04;_0x4ce293=0xc8;}else{_0x4ce293=0xce;}_0x21711f['status'](_0x4ce293);return _0x21711f[_0xa26c('0x1f')](_0xa26c('0x20'),_0x50ff32+'-'+_0x4c70f3+'/'+_0x51bb04)[_0xa26c('0x21')](_0x24c603);}return null;};}function patchUpdates(_0x57c5dd){return function(_0xfaa6){try{jsonpatch[_0xa26c('0x22')](_0xfaa6,_0x57c5dd,!![]);}catch(_0x73a1fb){return BPromise['reject'](_0x73a1fb);}return _0xfaa6[_0xa26c('0x23')]();};}function saveUpdates(_0x3dfaa7,_0x4dd57e){return function(_0x25d491){if(_0x25d491){return _0x25d491[_0xa26c('0x24')](_0x3dfaa7)[_0xa26c('0x25')](function(_0x24a017){return _0x24a017;});}return null;};}function removeEntity(_0x5dc215,_0x263bdb){return function(_0x22da60){if(_0x22da60){return _0x22da60['destroy']()[_0xa26c('0x25')](function(){_0x5dc215[_0xa26c('0x1b')](0xcc)[_0xa26c('0x26')]();});}};}function handleEntityNotFound(_0x5a203b,_0x549683){return function(_0x4ba836){if(!_0x4ba836){_0x5a203b[_0xa26c('0x1a')](0x194);}return _0x4ba836;};}function handleError(_0x505b7c,_0x34435b){_0x34435b=_0x34435b||0x1f4;return function(_0x56ac94){logger[_0xa26c('0x27')](_0x56ac94[_0xa26c('0x28')]);if(_0x56ac94[_0xa26c('0x29')]){delete _0x56ac94[_0xa26c('0x29')];}_0x505b7c[_0xa26c('0x1b')](_0x34435b)['send'](_0x56ac94);};}exports[_0xa26c('0x2a')]=function(_0x434c92,_0x430d58){var _0x408a52={},_0xda84f2={},_0x2e4a77={'count':0x0,'rows':[]};var _0x483468=_[_0xa26c('0x2b')](db[_0xa26c('0x2c')][_0xa26c('0x2d')],function(_0x19b54f){return{'name':_0x19b54f[_0xa26c('0x2e')],'type':_0x19b54f['type'][_0xa26c('0x2f')]};});_0xda84f2[_0xa26c('0x30')]=_[_0xa26c('0x2b')](_0x483468,_0xa26c('0x29'));_0xda84f2[_0xa26c('0x31')]=_['keys'](_0x434c92[_0xa26c('0x31')]);_0xda84f2[_0xa26c('0x32')]=_['intersection'](_0xda84f2[_0xa26c('0x30')],_0xda84f2[_0xa26c('0x31')]);_0x408a52[_0xa26c('0x33')]=_[_0xa26c('0x34')](_0xda84f2[_0xa26c('0x30')],qs[_0xa26c('0x35')](_0x434c92[_0xa26c('0x31')][_0xa26c('0x35')]));_0x408a52[_0xa26c('0x33')]=_0x408a52[_0xa26c('0x33')][_0xa26c('0x36')]?_0x408a52[_0xa26c('0x33')]:_0xda84f2[_0xa26c('0x30')];if(!_0x434c92[_0xa26c('0x31')][_0xa26c('0x37')](_0xa26c('0x38'))){_0x408a52[_0xa26c('0x1e')]=qs['limit'](_0x434c92['query'][_0xa26c('0x1e')]);_0x408a52['offset']=qs[_0xa26c('0x1c')](_0x434c92[_0xa26c('0x31')][_0xa26c('0x1c')]);}_0x408a52[_0xa26c('0x39')]=qs[_0xa26c('0x3a')](_0x434c92['query'][_0xa26c('0x3a')]);_0x408a52[_0xa26c('0x3b')]=qs['filters'](_[_0xa26c('0x3c')](_0x434c92[_0xa26c('0x31')],_0xda84f2[_0xa26c('0x32')]),_0x483468);if(_0x434c92[_0xa26c('0x31')][_0xa26c('0x3d')]){_0x408a52['where']=_['merge'](_0x408a52['where'],{'$or':_['map'](_0x483468,function(_0x24af8b){if(_0x24af8b[_0xa26c('0x3e')]!==_0xa26c('0x3f')){var _0x1bede1={};_0x1bede1[_0x24af8b[_0xa26c('0x29')]]={'$like':'%'+_0x434c92[_0xa26c('0x31')]['filter']+'%'};return _0x1bede1;}})});}_0x408a52=_[_0xa26c('0x40')]({},_0x408a52,_0x434c92[_0xa26c('0x41')]);var _0x96d51f={'where':_0x408a52['where']};return db[_0xa26c('0x2c')][_0xa26c('0x42')](_0x96d51f)[_0xa26c('0x25')](function(_0x53bbaf){_0x2e4a77['count']=_0x53bbaf;if(_0x434c92[_0xa26c('0x31')][_0xa26c('0x43')]){_0x408a52[_0xa26c('0x44')]=[{'all':!![]}];}return db[_0xa26c('0x2c')][_0xa26c('0x45')](_0x408a52);})[_0xa26c('0x25')](function(_0x582e60){_0x2e4a77['rows']=_0x582e60;return _0x2e4a77;})[_0xa26c('0x25')](respondWithFilteredResult(_0x430d58,_0x408a52))['catch'](handleError(_0x430d58,null));};exports['show']=function(_0x37820d,_0x4edd99){var _0x160e0f={'raw':![],'where':{'id':_0x37820d[_0xa26c('0x46')]['id']}},_0x2d4980={};_0x2d4980[_0xa26c('0x30')]=_[_0xa26c('0x47')](db[_0xa26c('0x2c')][_0xa26c('0x2d')]);_0x2d4980[_0xa26c('0x31')]=_['keys'](_0x37820d[_0xa26c('0x31')]);_0x2d4980[_0xa26c('0x32')]=_[_0xa26c('0x34')](_0x2d4980[_0xa26c('0x30')],_0x2d4980['query']);_0x160e0f[_0xa26c('0x33')]=_[_0xa26c('0x34')](_0x2d4980[_0xa26c('0x30')],qs[_0xa26c('0x35')](_0x37820d[_0xa26c('0x31')][_0xa26c('0x35')]));_0x160e0f[_0xa26c('0x33')]=_0x160e0f['attributes'][_0xa26c('0x36')]?_0x160e0f['attributes']:_0x2d4980[_0xa26c('0x30')];if(_0x37820d[_0xa26c('0x31')]['includeAll']){_0x160e0f[_0xa26c('0x44')]=[{'all':!![]}];}_0x160e0f=_[_0xa26c('0x40')]({},_0x160e0f,_0x37820d['options']);return db['ZohoAccount'][_0xa26c('0x48')](_0x160e0f)[_0xa26c('0x25')](handleEntityNotFound(_0x4edd99,null))[_0xa26c('0x25')](respondWithResult(_0x4edd99,null))[_0xa26c('0x49')](handleError(_0x4edd99,null));};exports['create']=function(_0x3aa933,_0xb8cc80){return db['ZohoAccount'][_0xa26c('0x4a')](_0x3aa933[_0xa26c('0x4b')],{})['then'](respondWithResult(_0xb8cc80,0xc9))[_0xa26c('0x49')](handleError(_0xb8cc80,null));};exports[_0xa26c('0x24')]=function(_0x218e3c,_0x5eba62){if(_0x218e3c[_0xa26c('0x4b')]['id']){delete _0x218e3c[_0xa26c('0x4b')]['id'];}return db[_0xa26c('0x2c')][_0xa26c('0x48')]({'where':{'id':_0x218e3c[_0xa26c('0x46')]['id']}})[_0xa26c('0x25')](handleEntityNotFound(_0x5eba62,null))['then'](saveUpdates(_0x218e3c[_0xa26c('0x4b')],null))[_0xa26c('0x25')](respondWithResult(_0x5eba62,null))[_0xa26c('0x49')](handleError(_0x5eba62,null));};exports[_0xa26c('0x4c')]=function(_0x1c7c2e,_0x4104f4){return db[_0xa26c('0x2c')][_0xa26c('0x48')]({'where':{'id':_0x1c7c2e[_0xa26c('0x46')]['id']}})[_0xa26c('0x25')](handleEntityNotFound(_0x4104f4,null))[_0xa26c('0x25')](removeEntity(_0x4104f4,null))[_0xa26c('0x49')](handleError(_0x4104f4,null));};exports[_0xa26c('0x4d')]=function(_0x18de75,_0x450010,_0x1680a4){var _0x533777={};var _0x46232e={};var _0x35d9d1;var _0x451336;return db[_0xa26c('0x2c')]['findOne']({'where':{'id':_0x18de75[_0xa26c('0x46')]['id']}})[_0xa26c('0x25')](handleEntityNotFound(_0x450010,null))['then'](function(_0xe86f10){if(_0xe86f10){_0x35d9d1=_0xe86f10;_0x46232e[_0xa26c('0x30')]=_[_0xa26c('0x47')](db['ZohoConfiguration']['rawAttributes']);_0x46232e[_0xa26c('0x31')]=_[_0xa26c('0x47')](_0x18de75[_0xa26c('0x31')]);_0x46232e[_0xa26c('0x32')]=_[_0xa26c('0x34')](_0x46232e[_0xa26c('0x30')],_0x46232e['query']);_0x533777[_0xa26c('0x33')]=_[_0xa26c('0x34')](_0x46232e[_0xa26c('0x30')],qs[_0xa26c('0x35')](_0x18de75[_0xa26c('0x31')]['fields']));_0x533777['attributes']=_0x533777[_0xa26c('0x33')]['length']?_0x533777[_0xa26c('0x33')]:_0x46232e[_0xa26c('0x30')];_0x533777[_0xa26c('0x39')]=qs[_0xa26c('0x3a')](_0x18de75[_0xa26c('0x31')][_0xa26c('0x3a')]);_0x533777[_0xa26c('0x3b')]=qs[_0xa26c('0x32')](_['pick'](_0x18de75[_0xa26c('0x31')],_0x46232e[_0xa26c('0x32')]));if(_0x18de75[_0xa26c('0x31')][_0xa26c('0x3d')]){_0x533777['where']=_[_0xa26c('0x40')](_0x533777[_0xa26c('0x3b')],{'$or':_[_0xa26c('0x2b')](_0x533777[_0xa26c('0x33')],function(_0x1fbaaf){var _0x7f7c86={};_0x7f7c86[_0x1fbaaf]={'$like':'%'+_0x18de75[_0xa26c('0x31')][_0xa26c('0x3d')]+'%'};return _0x7f7c86;})});}_0x533777=_[_0xa26c('0x40')]({},_0x533777,_0x18de75['options']);return _0x35d9d1[_0xa26c('0x4d')](_0x533777);}})[_0xa26c('0x25')](function(_0x55292c){if(_0x55292c){_0x451336=_0x55292c[_0xa26c('0x36')];if(!_0x18de75['query']['hasOwnProperty'](_0xa26c('0x38'))){_0x533777['limit']=qs[_0xa26c('0x1e')](_0x18de75[_0xa26c('0x31')][_0xa26c('0x1e')]);_0x533777['offset']=qs[_0xa26c('0x1c')](_0x18de75[_0xa26c('0x31')][_0xa26c('0x1c')]);}return _0x35d9d1['getConfigurations'](_0x533777);}})[_0xa26c('0x25')](function(_0x455fbb){if(_0x455fbb){return _0x455fbb?{'count':_0x451336,'rows':_0x455fbb}:null;}})['then'](respondWithResult(_0x450010,null))[_0xa26c('0x49')](handleError(_0x450010,null));};exports[_0xa26c('0x4e')]=function(_0x3fc635,_0x14d472,_0x363d32){if(_0x3fc635['body']['id']){delete _0x3fc635['body']['id'];}return db[_0xa26c('0x2c')][_0xa26c('0x4f')]({'where':{'id':_0x3fc635['params']['id']}})[_0xa26c('0x25')](handleEntityNotFound(_0x14d472,null))[_0xa26c('0x25')](function(_0xf2d198){if(_0xf2d198){_0x3fc635[_0xa26c('0x4b')]['AccountId']=_0xf2d198['id'];_0x3fc635[_0xa26c('0x4b')][_0xa26c('0x50')]=integrations['getSubjects'](_0x3fc635[_0xa26c('0x4b')][_0xa26c('0x51')],_0x3fc635['body'][_0xa26c('0x3e')]);_0x3fc635[_0xa26c('0x4b')][_0xa26c('0x52')]=integrations[_0xa26c('0x53')](_0x3fc635[_0xa26c('0x4b')][_0xa26c('0x51')],_0x3fc635[_0xa26c('0x4b')][_0xa26c('0x3e')]);return db['ZohoConfiguration']['create'](_0x3fc635[_0xa26c('0x4b')],{'include':[{'model':db[_0xa26c('0x54')],'as':_0xa26c('0x50')},{'model':db[_0xa26c('0x54')],'as':_0xa26c('0x52')}]});}return null;})[_0xa26c('0x25')](respondWithResult(_0x14d472,null))['catch'](handleError(_0x14d472,null));};function getAccessToken(_0x336ff8){return new Promise(function(_0x4c357d,_0x42405e){var _0x509500;switch(_0x336ff8[_0xa26c('0x55')]){case'US':_0x509500=_0xa26c('0x56');break;case'AU':_0x509500=_0xa26c('0x57');break;case'EU':_0x509500=_0xa26c('0x58');break;case'IN':_0x509500=_0xa26c('0x59');break;case'CN':_0x509500=_0xa26c('0x5a');break;default:_0x509500=_0xa26c('0x58');break;}var _0x5126ca={'method':_0xa26c('0x5b'),'uri':_0x509500+_0xa26c('0x5c'),'qs':{'refresh_token':_0x336ff8[_0xa26c('0x5d')],'client_id':_0x336ff8[_0xa26c('0x5e')],'client_secret':_0x336ff8[_0xa26c('0x5f')],'grant_type':_0xa26c('0x60')},'json':!![]};return rp(_0x5126ca)[_0xa26c('0x25')](function(_0xf4286){if(_0xf4286[_0xa26c('0x61')]){_0x4c357d(_0xf4286[_0xa26c('0x61')]);}else{_0x42405e(_0xa26c('0x62'));}})[_0xa26c('0x49')](function(_0x3949f8){_0x42405e(_0x3949f8);});});}exports[_0xa26c('0x63')]=function(_0x20eb33,_0x4f4c9b,_0x55099a){var _0x46060a,_0x3473ce,_0x3fe29f,_0x5da646,_0x54c034;return db[_0xa26c('0x2c')][_0xa26c('0x4f')]({'where':{'id':_0x20eb33[_0xa26c('0x46')]['id']},'attributes':['id',_0xa26c('0x64'),'zone',_0xa26c('0x5e'),_0xa26c('0x5f'),_0xa26c('0x65'),_0xa26c('0x66'),_0xa26c('0x5d')]})[_0xa26c('0x25')](handleEntityNotFound(_0x4f4c9b,null))['then'](function(_0x1e0ff2){_0x54c034=_0x1e0ff2;_0x46060a=_0x54c034['host'];_0x3473ce=_0x46060a===_0xa26c('0x67')?'eu':_0xa26c('0x68');_0x3fe29f=_0x54c034[_0xa26c('0x65')];var _0x202a81=_0x3fe29f[_0xa26c('0x69')](-0x1);if(_0x202a81==='/'||_0x202a81==='\x5c'||_0x202a81===':'){_0x3fe29f=_0x3fe29f[_0xa26c('0x6a')](0x0,_0x3fe29f[_0xa26c('0x6b')](_0x202a81));}if(!_0x54c034[_0xa26c('0x5d')]){throw new Error(_0xa26c('0x6c'));}return getAccessToken(_0x54c034);})[_0xa26c('0x25')](function(_0x60bc0d){if(_0x60bc0d){return rp({'method':'GET','uri':util[_0xa26c('0x6d')]('https://www.zohoapis.%s/crm/v2/settings/fields',_0x3473ce),'qs':{'module':_0xa26c('0x6e')},'headers':{'Authorization':_0xa26c('0x6f')+_0x60bc0d},'json':!![]});}})[_0xa26c('0x25')](function(_0x1f8e8b){if(_0x1f8e8b){if(_0x1f8e8b[_0xa26c('0x70')]&&_0x1f8e8b[_0xa26c('0x70')]['error']){throw new Error(_0x1f8e8b[_0xa26c('0x70')][_0xa26c('0x27')][_0xa26c('0x71')]);}var _0x34628c=[];var _0x2a8e17=[];var _0x40ae2c=['Owner',_0xa26c('0x72'),_0xa26c('0x73'),_0xa26c('0x74'),_0xa26c('0x75'),_0xa26c('0x76'),_0xa26c('0x77'),_0xa26c('0x78')];_0x2a8e17=_['remove'](_0x1f8e8b['fields'],function(_0x5521f1){return _0x40ae2c[_0xa26c('0x79')](_0x5521f1[_0xa26c('0x7a')]);});for(var _0x281b68=0x0;_0x281b68<_0x2a8e17['length'];_0x281b68++){if(_0x2a8e17[_0x281b68][_0xa26c('0x7b')]===![]){_0x34628c['push']({'id':_0x2a8e17[_0x281b68]['id'],'name':_0x2a8e17[_0x281b68][_0xa26c('0x7c')],'custom':_0x2a8e17[_0x281b68][_0xa26c('0x7d')],'options':_0x2a8e17[_0x281b68][_0xa26c('0x7e')]==='picklist'&&_0x2a8e17[_0x281b68][_0xa26c('0x7f')][_0xa26c('0x36')]>-0x1?_[_0xa26c('0x2b')](_0x2a8e17[_0x281b68][_0xa26c('0x7f')],function(_0x2a6e77){return{'name':_0x2a6e77,'value':_0x2a6e77};}):[]});}}return{'count':_0x34628c[_0xa26c('0x36')],'rows':_0x34628c};}else{return{'count':0x0,'rows':[]};}})[_0xa26c('0x25')](respondWithResult(_0x4f4c9b,null))[_0xa26c('0x49')](function(_0x44415b){var _0x54a633=_0x20eb33[_0xa26c('0x31')][_0xa26c('0x80')]?0x1f4:_0x44415b[_0xa26c('0x81')]||0x1f4;logger['error'](_0xa26c('0x82'),_0xa26c('0x63'),_0x54a633,JSON[_0xa26c('0x83')](_0x44415b));delete _0x44415b[_0xa26c('0x29')];if(_0x54a633===0x191){_0x54a633=0x190;}_0x4f4c9b['status'](_0x54a633)[_0xa26c('0x84')](_0x20eb33[_0xa26c('0x31')][_0xa26c('0x80')]?{'message':'Wrong\x20credentials','statusCode':_0x44415b[_0xa26c('0x81')]}:_0x44415b);});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf539=['format','ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d','inspect','catch','error','host','lodash','util','../../config/logger','api','bluebird','request-promise','rimraf','../../config/environment','./intZohoAccount.attributes','exports','define','ZohoAccount','int_zoho_accounts','changed','zone','serverUrl','clientId','clientSecret','slice','substring','lastIndexOf','https://accounts.zoho.in','https://accounts.zoho.com.cn','https://accounts.zoho.eu','POST','/oauth/v2/token','authorization_code','code','application/x-www-form-urlencoded','then','parse','refresh_token','refreshToken','info','ZohoAccount,\x20Refresh\x20token\x20successfully\x20generated\x20for\x20account\x20\x22%s\x22\x20#%d','name'];(function(_0x42cae2,_0x284ef8){var _0x5f256f=function(_0x41abc8){while(--_0x41abc8){_0x42cae2['push'](_0x42cae2['shift']());}};_0x5f256f(++_0x284ef8);}(_0xf539,0x180));var _0x9f53=function(_0xa5d99a,_0x5e431b){_0xa5d99a=_0xa5d99a-0x0;var _0x49b863=_0xf539[_0xa5d99a];return _0x49b863;};'use strict';var _=require(_0x9f53('0x0'));var util=require(_0x9f53('0x1'));var logger=require(_0x9f53('0x2'))(_0x9f53('0x3'));var moment=require('moment');var BPromise=require(_0x9f53('0x4'));var rp=require(_0x9f53('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0x9f53('0x6'));var config=require(_0x9f53('0x7'));var attributes=require(_0x9f53('0x8'));var integrations=require('../../components/integrations/configuration');module[_0x9f53('0x9')]=function(_0x23a2c8,_0x12eff6){return _0x23a2c8[_0x9f53('0xa')](_0x9f53('0xb'),attributes,{'tableName':_0x9f53('0xc'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeCreate':function(_0xba1a3,_0x4c5687,_0x476f3a){if(_0xba1a3[_0x9f53('0xd')](_0x9f53('0xe'))||_0xba1a3[_0x9f53('0xd')](_0x9f53('0xf'))||_0xba1a3[_0x9f53('0xd')](_0x9f53('0x10'))||_0xba1a3[_0x9f53('0xd')](_0x9f53('0x11'))||_0xba1a3['changed']('code')||_0xba1a3[_0x9f53('0xd')]('host')){var _0x1ba4ca,_0x534ffb;_0x1ba4ca=_0xba1a3[_0x9f53('0xf')];var _0x585db3=_0x1ba4ca[_0x9f53('0x12')](-0x1);if(_0x585db3==='/'||_0x585db3==='\x5c'||_0x585db3===':'){_0x1ba4ca=_0x1ba4ca[_0x9f53('0x13')](0x0,_0x1ba4ca[_0x9f53('0x14')](_0x585db3));}switch(_0xba1a3['zone']){case'US':_0x534ffb='https://accounts.zoho.com';break;case'AU':_0x534ffb='https://accounts.zoho.com.au';break;case'IN':_0x534ffb=_0x9f53('0x15');break;case'CN':_0x534ffb=_0x9f53('0x16');break;default:_0x534ffb=_0x9f53('0x17');break;}var _0x282e3e={'method':_0x9f53('0x18'),'uri':_0x534ffb+_0x9f53('0x19'),'form':{'grant_type':_0x9f53('0x1a'),'client_id':_0xba1a3[_0x9f53('0x10')],'client_secret':_0xba1a3['clientSecret'],'redirect_uri':_0xba1a3['serverUrl'],'code':_0xba1a3[_0x9f53('0x1b')]},'headers':{'Content-Type':_0x9f53('0x1c')}};return rp(_0x282e3e)[_0x9f53('0x1d')](function(_0x173b99){var _0x1debcb=JSON[_0x9f53('0x1e')](_0x173b99);if(_0x1debcb[_0x9f53('0x1f')]){_0xba1a3[_0x9f53('0x20')]=_0x1debcb[_0x9f53('0x1f')];logger[_0x9f53('0x21')](util['format'](_0x9f53('0x22'),_0xba1a3[_0x9f53('0x23')],_0xba1a3['id']));}else{logger['error'](util[_0x9f53('0x24')](_0x9f53('0x25'),_0xba1a3[_0x9f53('0x23')],_0xba1a3['id']),util[_0x9f53('0x26')](_0x1debcb,{'showHidden':![],'depth':null}));}return _0x476f3a(null,_0x4c5687);})[_0x9f53('0x27')](function(_0x2c30a1){logger[_0x9f53('0x28')](util[_0x9f53('0x24')](_0x9f53('0x25'),_0xba1a3[_0x9f53('0x23')],_0xba1a3['id']),util[_0x9f53('0x26')](parsedResult,{'showHidden':![],'depth':null}));return _0x476f3a(_0x2c30a1);});}else{return _0x476f3a(null,_0x4c5687);}},'beforeUpdate':function(_0x367890,_0x3bfcf8,_0x32a9ba){if(_0x367890[_0x9f53('0xd')](_0x9f53('0xe'))||_0x367890[_0x9f53('0xd')](_0x9f53('0xf'))||_0x367890[_0x9f53('0xd')](_0x9f53('0x10'))||_0x367890[_0x9f53('0xd')](_0x9f53('0x11'))||_0x367890[_0x9f53('0xd')](_0x9f53('0x1b'))||_0x367890[_0x9f53('0xd')](_0x9f53('0x29'))){var _0x4ec1f5,_0x420c27;_0x4ec1f5=_0x367890['serverUrl'];var _0x31e18b=_0x4ec1f5[_0x9f53('0x12')](-0x1);if(_0x31e18b==='/'||_0x31e18b==='\x5c'||_0x31e18b===':'){_0x4ec1f5=_0x4ec1f5[_0x9f53('0x13')](0x0,_0x4ec1f5['lastIndexOf'](_0x31e18b));}switch(_0x367890[_0x9f53('0xe')]){case'US':_0x420c27='https://accounts.zoho.com';break;case'AU':_0x420c27='https://accounts.zoho.com.au';break;case'IN':_0x420c27='https://accounts.zoho.in';break;case'CN':_0x420c27=_0x9f53('0x16');break;default:_0x420c27=_0x9f53('0x17');break;}var _0x9766ac={'method':'POST','uri':_0x420c27+_0x9f53('0x19'),'form':{'grant_type':'authorization_code','client_id':_0x367890[_0x9f53('0x10')],'client_secret':_0x367890[_0x9f53('0x11')],'redirect_uri':_0x367890[_0x9f53('0xf')],'code':_0x367890[_0x9f53('0x1b')]},'headers':{'Content-Type':'application/x-www-form-urlencoded'}};return rp(_0x9766ac)['then'](function(_0x5b4c5d){var _0x59a98e=JSON[_0x9f53('0x1e')](_0x5b4c5d);if(_0x59a98e[_0x9f53('0x1f')]){_0x367890['refreshToken']=_0x59a98e[_0x9f53('0x1f')];logger[_0x9f53('0x21')](util[_0x9f53('0x24')](_0x9f53('0x22'),_0x367890[_0x9f53('0x23')],_0x367890['id']));}else{logger[_0x9f53('0x28')](util[_0x9f53('0x24')](_0x9f53('0x25'),_0x367890['name'],_0x367890['id']),util[_0x9f53('0x26')](_0x59a98e,{'showHidden':![],'depth':null}));}return _0x32a9ba(null,_0x3bfcf8);})['catch'](function(_0x475a9e){logger['error'](util[_0x9f53('0x24')](_0x9f53('0x25'),_0x367890[_0x9f53('0x23')],_0x367890['id']),util[_0x9f53('0x26')](parsedResult,{'showHidden':![],'depth':null}));return _0x32a9ba(_0x475a9e);});}else{return _0x32a9ba(null,_0x3bfcf8);}}}});};
\ No newline at end of file
+var _0x6bcc=['request-promise','path','rimraf','../../config/environment','./intZohoAccount.attributes','../../components/integrations/configuration','exports','define','ZohoAccount','int_zoho_accounts','changed','serverUrl','clientSecret','code','slice','lastIndexOf','https://accounts.zoho.com.au','https://accounts.zoho.com.cn','https://accounts.zoho.eu','POST','/oauth/v2/token','clientId','application/x-www-form-urlencoded','refreshToken','info','format','name','error','ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d','inspect','host','zone','https://accounts.zoho.com','https://accounts.zoho.in','authorization_code','then','parse','refresh_token','catch','lodash','util','../../config/logger','api','moment','bluebird'];(function(_0x204d62,_0x255e35){var _0x1fc4da=function(_0x590d8a){while(--_0x590d8a){_0x204d62['push'](_0x204d62['shift']());}};_0x1fc4da(++_0x255e35);}(_0x6bcc,0x18f));var _0xc6bc=function(_0x1d7beb,_0x1b5d4d){_0x1d7beb=_0x1d7beb-0x0;var _0x459c48=_0x6bcc[_0x1d7beb];return _0x459c48;};'use strict';var _=require(_0xc6bc('0x0'));var util=require(_0xc6bc('0x1'));var logger=require(_0xc6bc('0x2'))(_0xc6bc('0x3'));var moment=require(_0xc6bc('0x4'));var BPromise=require(_0xc6bc('0x5'));var rp=require(_0xc6bc('0x6'));var fs=require('fs');var path=require(_0xc6bc('0x7'));var rimraf=require(_0xc6bc('0x8'));var config=require(_0xc6bc('0x9'));var attributes=require(_0xc6bc('0xa'));var integrations=require(_0xc6bc('0xb'));module[_0xc6bc('0xc')]=function(_0x55220f,_0x5ce223){return _0x55220f[_0xc6bc('0xd')](_0xc6bc('0xe'),attributes,{'tableName':_0xc6bc('0xf'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeCreate':function(_0x2cfc72,_0x381621,_0x2cbdd9){if(_0x2cfc72[_0xc6bc('0x10')]('zone')||_0x2cfc72['changed'](_0xc6bc('0x11'))||_0x2cfc72[_0xc6bc('0x10')]('clientId')||_0x2cfc72[_0xc6bc('0x10')](_0xc6bc('0x12'))||_0x2cfc72['changed'](_0xc6bc('0x13'))||_0x2cfc72[_0xc6bc('0x10')]('host')){var _0x5ecf63,_0x28c609;_0x5ecf63=_0x2cfc72[_0xc6bc('0x11')];var _0x524a33=_0x5ecf63[_0xc6bc('0x14')](-0x1);if(_0x524a33==='/'||_0x524a33==='\x5c'||_0x524a33===':'){_0x5ecf63=_0x5ecf63['substring'](0x0,_0x5ecf63[_0xc6bc('0x15')](_0x524a33));}switch(_0x2cfc72['zone']){case'US':_0x28c609='https://accounts.zoho.com';break;case'AU':_0x28c609=_0xc6bc('0x16');break;case'IN':_0x28c609='https://accounts.zoho.in';break;case'CN':_0x28c609=_0xc6bc('0x17');break;default:_0x28c609=_0xc6bc('0x18');break;}var _0x3bb5f3={'method':_0xc6bc('0x19'),'uri':_0x28c609+_0xc6bc('0x1a'),'form':{'grant_type':'authorization_code','client_id':_0x2cfc72[_0xc6bc('0x1b')],'client_secret':_0x2cfc72[_0xc6bc('0x12')],'redirect_uri':_0x2cfc72[_0xc6bc('0x11')],'code':_0x2cfc72['code']},'headers':{'Content-Type':_0xc6bc('0x1c')}};return rp(_0x3bb5f3)['then'](function(_0x217e70){var _0xd8580f=JSON['parse'](_0x217e70);if(_0xd8580f['refresh_token']){_0x2cfc72[_0xc6bc('0x1d')]=_0xd8580f['refresh_token'];logger[_0xc6bc('0x1e')](util[_0xc6bc('0x1f')]('ZohoAccount,\x20Refresh\x20token\x20successfully\x20generated\x20for\x20account\x20\x22%s\x22\x20#%d',_0x2cfc72[_0xc6bc('0x20')],_0x2cfc72['id']));}else{logger[_0xc6bc('0x21')](util[_0xc6bc('0x1f')](_0xc6bc('0x22'),_0x2cfc72[_0xc6bc('0x20')],_0x2cfc72['id']),util[_0xc6bc('0x23')](_0xd8580f,{'showHidden':![],'depth':null}));}return _0x2cbdd9(null,_0x381621);})['catch'](function(_0x138c78){logger['error'](util[_0xc6bc('0x1f')](_0xc6bc('0x22'),_0x2cfc72[_0xc6bc('0x20')],_0x2cfc72['id']),util['inspect'](parsedResult,{'showHidden':![],'depth':null}));return _0x2cbdd9(_0x138c78);});}else{return _0x2cbdd9(null,_0x381621);}},'beforeUpdate':function(_0x104231,_0x58f0f9,_0x52f78e){if(_0x104231[_0xc6bc('0x10')]('zone')||_0x104231[_0xc6bc('0x10')](_0xc6bc('0x11'))||_0x104231['changed'](_0xc6bc('0x1b'))||_0x104231['changed'](_0xc6bc('0x12'))||_0x104231['changed']('code')||_0x104231['changed'](_0xc6bc('0x24'))){var _0x5623e1,_0x229953;_0x5623e1=_0x104231['serverUrl'];var _0x88b2b3=_0x5623e1[_0xc6bc('0x14')](-0x1);if(_0x88b2b3==='/'||_0x88b2b3==='\x5c'||_0x88b2b3===':'){_0x5623e1=_0x5623e1['substring'](0x0,_0x5623e1[_0xc6bc('0x15')](_0x88b2b3));}switch(_0x104231[_0xc6bc('0x25')]){case'US':_0x229953=_0xc6bc('0x26');break;case'AU':_0x229953='https://accounts.zoho.com.au';break;case'IN':_0x229953=_0xc6bc('0x27');break;case'CN':_0x229953=_0xc6bc('0x17');break;default:_0x229953='https://accounts.zoho.eu';break;}var _0x37bec1={'method':'POST','uri':_0x229953+_0xc6bc('0x1a'),'form':{'grant_type':_0xc6bc('0x28'),'client_id':_0x104231[_0xc6bc('0x1b')],'client_secret':_0x104231[_0xc6bc('0x12')],'redirect_uri':_0x104231['serverUrl'],'code':_0x104231[_0xc6bc('0x13')]},'headers':{'Content-Type':_0xc6bc('0x1c')}};return rp(_0x37bec1)[_0xc6bc('0x29')](function(_0x10406c){var _0x1d6a3=JSON[_0xc6bc('0x2a')](_0x10406c);if(_0x1d6a3['refresh_token']){_0x104231['refreshToken']=_0x1d6a3[_0xc6bc('0x2b')];logger['info'](util[_0xc6bc('0x1f')]('ZohoAccount,\x20Refresh\x20token\x20successfully\x20generated\x20for\x20account\x20\x22%s\x22\x20#%d',_0x104231['name'],_0x104231['id']));}else{logger[_0xc6bc('0x21')](util[_0xc6bc('0x1f')](_0xc6bc('0x22'),_0x104231[_0xc6bc('0x20')],_0x104231['id']),util[_0xc6bc('0x23')](_0x1d6a3,{'showHidden':![],'depth':null}));}return _0x52f78e(null,_0x58f0f9);})[_0xc6bc('0x2c')](function(_0x2f73be){logger[_0xc6bc('0x21')](util[_0xc6bc('0x1f')]('ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d',_0x104231[_0xc6bc('0x20')],_0x104231['id']),util[_0xc6bc('0x23')](parsedResult,{'showHidden':![],'depth':null}));return _0x52f78e(_0x2f73be);});}else{return _0x52f78e(null,_0x58f0f9);}}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd0e4=['code','error','message','result','catch','GetZohoAccount','findAll','options','raw','where','attributes','include','model','map','then','info','ZohoAccount','find','ShowZohoAccount','lodash','util','moment','bluebird','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','ZohoAccount,\x20%s,\x20%s','request\x20sent','debug','stringify'];(function(_0x37cb92,_0x529d24){var _0x29fa71=function(_0x1090e3){while(--_0x1090e3){_0x37cb92['push'](_0x37cb92['shift']());}};_0x29fa71(++_0x529d24);}(_0xd0e4,0x1d3));var _0x4d0e=function(_0x7404bb,_0x3249a1){_0x7404bb=_0x7404bb-0x0;var _0x2d9af1=_0xd0e4[_0x7404bb];return _0x2d9af1;};'use strict';var _=require(_0x4d0e('0x0'));var util=require(_0x4d0e('0x1'));var moment=require(_0x4d0e('0x2'));var BPromise=require(_0x4d0e('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0x4d0e('0x4'))['db'];var utils=require(_0x4d0e('0x5'));var logger=require(_0x4d0e('0x6'))(_0x4d0e('0x7'));var config=require(_0x4d0e('0x8'));var jayson=require('jayson/promise');var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x103596,_0x39e5c6,_0x50cd74){return new BPromise(function(_0x2f900a,_0x1731e4){return client['request'](_0x103596,_0x50cd74)['then'](function(_0x9358f5){logger['info'](_0x4d0e('0x9'),_0x39e5c6,_0x4d0e('0xa'));logger[_0x4d0e('0xb')]('ZohoAccount,\x20%s,\x20%s,\x20%s',_0x39e5c6,_0x4d0e('0xa'),JSON[_0x4d0e('0xc')](_0x9358f5));if(_0x9358f5['error']){if(_0x9358f5['error'][_0x4d0e('0xd')]===0x1f4){logger[_0x4d0e('0xe')](_0x4d0e('0x9'),_0x39e5c6,_0x9358f5[_0x4d0e('0xe')][_0x4d0e('0xf')]);return _0x1731e4(_0x9358f5[_0x4d0e('0xe')][_0x4d0e('0xf')]);}logger[_0x4d0e('0xe')](_0x4d0e('0x9'),_0x39e5c6,_0x9358f5['error'][_0x4d0e('0xf')]);return _0x2f900a(_0x9358f5[_0x4d0e('0xe')][_0x4d0e('0xf')]);}else{logger['info'](_0x4d0e('0x9'),_0x39e5c6,'request\x20sent');_0x2f900a(_0x9358f5[_0x4d0e('0x10')][_0x4d0e('0xf')]);}})[_0x4d0e('0x11')](function(_0x956477){logger[_0x4d0e('0xe')](_0x4d0e('0x9'),_0x39e5c6,_0x956477);_0x1731e4(_0x956477);});});}exports[_0x4d0e('0x12')]=function(_0x501c6b){var _0x1f504d=this;return new Promise(function(_0x2ea57f,_0x3b94cf){return db['ZohoAccount'][_0x4d0e('0x13')]({'raw':_0x501c6b[_0x4d0e('0x14')]?_0x501c6b[_0x4d0e('0x14')][_0x4d0e('0x15')]===undefined?!![]:![]:!![],'where':_0x501c6b[_0x4d0e('0x14')]?_0x501c6b[_0x4d0e('0x14')][_0x4d0e('0x16')]||null:null,'attributes':_0x501c6b[_0x4d0e('0x14')]?_0x501c6b[_0x4d0e('0x14')][_0x4d0e('0x17')]||null:null,'limit':_0x501c6b[_0x4d0e('0x14')]?_0x501c6b['options']['limit']||null:null,'include':_0x501c6b[_0x4d0e('0x14')]?_0x501c6b[_0x4d0e('0x14')]['include']?_['map'](_0x501c6b[_0x4d0e('0x14')][_0x4d0e('0x18')],function(_0x3092e1){return{'model':db[_0x3092e1[_0x4d0e('0x19')]],'as':_0x3092e1['as'],'attributes':_0x3092e1[_0x4d0e('0x17')],'include':_0x3092e1[_0x4d0e('0x18')]?_[_0x4d0e('0x1a')](_0x3092e1[_0x4d0e('0x18')],function(_0x3411dd){return{'model':db[_0x3411dd['model']],'as':_0x3411dd['as'],'attributes':_0x3411dd[_0x4d0e('0x17')],'include':_0x3411dd[_0x4d0e('0x18')]?_[_0x4d0e('0x1a')](_0x3411dd[_0x4d0e('0x18')],function(_0x25043b){return{'model':db[_0x25043b['model']],'as':_0x25043b['as'],'attributes':_0x25043b[_0x4d0e('0x17')]};}):[]};}):[]};}):[]:[]})[_0x4d0e('0x1b')](function(_0x493a65){logger[_0x4d0e('0x1c')]('GetZohoAccount',_0x501c6b);logger['debug'](_0x4d0e('0x12'),_0x501c6b,JSON[_0x4d0e('0xc')](_0x493a65));_0x2ea57f(_0x493a65);})[_0x4d0e('0x11')](function(_0x372a87){logger[_0x4d0e('0xe')](_0x4d0e('0x12'),_0x372a87[_0x4d0e('0xf')],_0x501c6b);_0x3b94cf(_0x1f504d['error'](0x1f4,_0x372a87[_0x4d0e('0xf')]));});});};exports['ShowZohoAccount']=function(_0x487249){var _0xafb68d=this;return new Promise(function(_0x9b3d6c,_0x4165e2){return db[_0x4d0e('0x1d')][_0x4d0e('0x1e')]({'raw':_0x487249[_0x4d0e('0x14')]?_0x487249['options'][_0x4d0e('0x15')]===undefined?!![]:![]:!![],'where':_0x487249[_0x4d0e('0x14')]?_0x487249[_0x4d0e('0x14')][_0x4d0e('0x16')]||null:null,'attributes':_0x487249['options']?_0x487249[_0x4d0e('0x14')][_0x4d0e('0x17')]||null:null,'include':_0x487249[_0x4d0e('0x14')]?_0x487249[_0x4d0e('0x14')][_0x4d0e('0x18')]?_[_0x4d0e('0x1a')](_0x487249[_0x4d0e('0x14')]['include'],function(_0x1820d7){return{'model':db[_0x1820d7[_0x4d0e('0x19')]],'as':_0x1820d7['as'],'attributes':_0x1820d7['attributes'],'include':_0x1820d7[_0x4d0e('0x18')]?_[_0x4d0e('0x1a')](_0x1820d7[_0x4d0e('0x18')],function(_0x206a91){return{'model':db[_0x206a91[_0x4d0e('0x19')]],'as':_0x206a91['as'],'attributes':_0x206a91[_0x4d0e('0x17')],'include':_0x206a91[_0x4d0e('0x18')]?_[_0x4d0e('0x1a')](_0x206a91[_0x4d0e('0x18')],function(_0x122d7f){return{'model':db[_0x122d7f[_0x4d0e('0x19')]],'as':_0x122d7f['as'],'attributes':_0x122d7f[_0x4d0e('0x17')]};}):[]};}):[]};}):[]:[]})[_0x4d0e('0x1b')](function(_0x2ec32a){logger[_0x4d0e('0x1c')](_0x4d0e('0x1f'),_0x487249);logger['debug']('ShowZohoAccount',_0x487249,JSON[_0x4d0e('0xc')](_0x2ec32a));_0x9b3d6c(_0x2ec32a);})[_0x4d0e('0x11')](function(_0xd21bfe){logger[_0x4d0e('0xe')](_0x4d0e('0x1f'),_0xd21bfe[_0x4d0e('0xf')],_0x487249);_0x4165e2(_0xafb68d[_0x4d0e('0xe')](0x1f4,_0xd21bfe['message']));});});};
\ No newline at end of file
+var _0x14a0=['limit','include','model','map','find','ShowZohoAccount','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/environment','jayson/promise','client','then','debug','request\x20sent','stringify','error','code','ZohoAccount,\x20%s,\x20%s','message','info','result','catch','GetZohoAccount','ZohoAccount','findAll','options','raw','where','attributes'];(function(_0x228745,_0x5e37f0){var _0xaa16c3=function(_0x32f58b){while(--_0x32f58b){_0x228745['push'](_0x228745['shift']());}};_0xaa16c3(++_0x5e37f0);}(_0x14a0,0x8e));var _0x014a=function(_0x5dcee2,_0x502ef6){_0x5dcee2=_0x5dcee2-0x0;var _0x1a85d0=_0x14a0[_0x5dcee2];return _0x1a85d0;};'use strict';var _=require('lodash');var util=require(_0x014a('0x0'));var moment=require(_0x014a('0x1'));var BPromise=require(_0x014a('0x2'));var rs=require(_0x014a('0x3'));var fs=require('fs');var Redis=require(_0x014a('0x4'));var db=require(_0x014a('0x5'))['db'];var utils=require(_0x014a('0x6'));var logger=require('../../config/logger')('rpc');var config=require(_0x014a('0x7'));var jayson=require(_0x014a('0x8'));var client=jayson[_0x014a('0x9')]['http']({'port':0x232a});function respondWithRpcPromise(_0x5a61ac,_0x11b8ce,_0x6d05f2){return new BPromise(function(_0x22f17c,_0x4d943b){return client['request'](_0x5a61ac,_0x6d05f2)[_0x014a('0xa')](function(_0x4f5506){logger['info']('ZohoAccount,\x20%s,\x20%s',_0x11b8ce,'request\x20sent');logger[_0x014a('0xb')]('ZohoAccount,\x20%s,\x20%s,\x20%s',_0x11b8ce,_0x014a('0xc'),JSON[_0x014a('0xd')](_0x4f5506));if(_0x4f5506['error']){if(_0x4f5506[_0x014a('0xe')][_0x014a('0xf')]===0x1f4){logger[_0x014a('0xe')](_0x014a('0x10'),_0x11b8ce,_0x4f5506[_0x014a('0xe')][_0x014a('0x11')]);return _0x4d943b(_0x4f5506[_0x014a('0xe')][_0x014a('0x11')]);}logger[_0x014a('0xe')](_0x014a('0x10'),_0x11b8ce,_0x4f5506[_0x014a('0xe')][_0x014a('0x11')]);return _0x22f17c(_0x4f5506['error'][_0x014a('0x11')]);}else{logger[_0x014a('0x12')]('ZohoAccount,\x20%s,\x20%s',_0x11b8ce,_0x014a('0xc'));_0x22f17c(_0x4f5506[_0x014a('0x13')]['message']);}})[_0x014a('0x14')](function(_0x17e4be){logger[_0x014a('0xe')](_0x014a('0x10'),_0x11b8ce,_0x17e4be);_0x4d943b(_0x17e4be);});});}exports[_0x014a('0x15')]=function(_0x12d339){var _0x61ec9f=this;return new Promise(function(_0x263b07,_0x16490a){return db[_0x014a('0x16')][_0x014a('0x17')]({'raw':_0x12d339[_0x014a('0x18')]?_0x12d339[_0x014a('0x18')][_0x014a('0x19')]===undefined?!![]:![]:!![],'where':_0x12d339['options']?_0x12d339[_0x014a('0x18')][_0x014a('0x1a')]||null:null,'attributes':_0x12d339[_0x014a('0x18')]?_0x12d339[_0x014a('0x18')][_0x014a('0x1b')]||null:null,'limit':_0x12d339[_0x014a('0x18')]?_0x12d339[_0x014a('0x18')][_0x014a('0x1c')]||null:null,'include':_0x12d339[_0x014a('0x18')]?_0x12d339['options'][_0x014a('0x1d')]?_['map'](_0x12d339[_0x014a('0x18')][_0x014a('0x1d')],function(_0x44d921){return{'model':db[_0x44d921[_0x014a('0x1e')]],'as':_0x44d921['as'],'attributes':_0x44d921[_0x014a('0x1b')],'include':_0x44d921[_0x014a('0x1d')]?_[_0x014a('0x1f')](_0x44d921[_0x014a('0x1d')],function(_0x165a42){return{'model':db[_0x165a42['model']],'as':_0x165a42['as'],'attributes':_0x165a42[_0x014a('0x1b')],'include':_0x165a42['include']?_[_0x014a('0x1f')](_0x165a42[_0x014a('0x1d')],function(_0x4f1c44){return{'model':db[_0x4f1c44['model']],'as':_0x4f1c44['as'],'attributes':_0x4f1c44[_0x014a('0x1b')]};}):[]};}):[]};}):[]:[]})[_0x014a('0xa')](function(_0x143346){logger['info'](_0x014a('0x15'),_0x12d339);logger[_0x014a('0xb')]('GetZohoAccount',_0x12d339,JSON[_0x014a('0xd')](_0x143346));_0x263b07(_0x143346);})[_0x014a('0x14')](function(_0x496040){logger['error'](_0x014a('0x15'),_0x496040[_0x014a('0x11')],_0x12d339);_0x16490a(_0x61ec9f[_0x014a('0xe')](0x1f4,_0x496040[_0x014a('0x11')]));});});};exports['ShowZohoAccount']=function(_0x434038){var _0x147e7e=this;return new Promise(function(_0x15af07,_0x402d3b){return db[_0x014a('0x16')][_0x014a('0x20')]({'raw':_0x434038[_0x014a('0x18')]?_0x434038[_0x014a('0x18')][_0x014a('0x19')]===undefined?!![]:![]:!![],'where':_0x434038[_0x014a('0x18')]?_0x434038[_0x014a('0x18')]['where']||null:null,'attributes':_0x434038[_0x014a('0x18')]?_0x434038[_0x014a('0x18')][_0x014a('0x1b')]||null:null,'include':_0x434038[_0x014a('0x18')]?_0x434038[_0x014a('0x18')][_0x014a('0x1d')]?_[_0x014a('0x1f')](_0x434038['options'][_0x014a('0x1d')],function(_0x325b3c){return{'model':db[_0x325b3c['model']],'as':_0x325b3c['as'],'attributes':_0x325b3c[_0x014a('0x1b')],'include':_0x325b3c[_0x014a('0x1d')]?_[_0x014a('0x1f')](_0x325b3c[_0x014a('0x1d')],function(_0x329136){return{'model':db[_0x329136[_0x014a('0x1e')]],'as':_0x329136['as'],'attributes':_0x329136[_0x014a('0x1b')],'include':_0x329136[_0x014a('0x1d')]?_['map'](_0x329136[_0x014a('0x1d')],function(_0x1dfe6e){return{'model':db[_0x1dfe6e[_0x014a('0x1e')]],'as':_0x1dfe6e['as'],'attributes':_0x1dfe6e[_0x014a('0x1b')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x427c7a){logger[_0x014a('0x12')](_0x014a('0x21'),_0x434038);logger[_0x014a('0xb')](_0x014a('0x21'),_0x434038,JSON[_0x014a('0xd')](_0x427c7a));_0x15af07(_0x427c7a);})[_0x014a('0x14')](function(_0x36187b){logger[_0x014a('0xe')]('ShowZohoAccount',_0x36187b[_0x014a('0x11')],_0x434038);_0x402d3b(_0x147e7e['error'](0x1f4,_0x36187b[_0x014a('0x11')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4dfa=['delete','destroy','exports','util','path','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./intZohoConfiguration.controller','get','isAuthenticated','index','/:id','/:id/fields','getFields','/:id/subjects','getSubjects','/:id/descriptions','getDescriptions','create','update'];(function(_0x378b12,_0x35edf4){var _0x2e58e1=function(_0x3726ef){while(--_0x3726ef){_0x378b12['push'](_0x378b12['shift']());}};_0x2e58e1(++_0x35edf4);}(_0x4dfa,0x1cb));var _0xa4df=function(_0x502c7d,_0x2f1285){_0x502c7d=_0x502c7d-0x0;var _0x30b7ed=_0x4dfa[_0x502c7d];return _0x30b7ed;};'use strict';var multer=require('multer');var util=require(_0xa4df('0x0'));var path=require(_0xa4df('0x1'));var timeout=require(_0xa4df('0x2'));var express=require(_0xa4df('0x3'));var router=express['Router']();var fs_extra=require(_0xa4df('0x4'));var auth=require(_0xa4df('0x5'));var interaction=require(_0xa4df('0x6'));var config=require(_0xa4df('0x7'));var controller=require(_0xa4df('0x8'));router[_0xa4df('0x9')]('/',auth[_0xa4df('0xa')](),controller[_0xa4df('0xb')]);router[_0xa4df('0x9')](_0xa4df('0xc'),auth[_0xa4df('0xa')](),controller['show']);router[_0xa4df('0x9')](_0xa4df('0xd'),auth['isAuthenticated'](),controller[_0xa4df('0xe')]);router[_0xa4df('0x9')](_0xa4df('0xf'),auth['isAuthenticated'](),controller[_0xa4df('0x10')]);router[_0xa4df('0x9')](_0xa4df('0x11'),auth[_0xa4df('0xa')](),controller[_0xa4df('0x12')]);router['post']('/',auth['isAuthenticated'](),controller[_0xa4df('0x13')]);router['put'](_0xa4df('0xc'),auth[_0xa4df('0xa')](),controller[_0xa4df('0x14')]);router[_0xa4df('0x15')](_0xa4df('0xc'),auth[_0xa4df('0xa')](),controller[_0xa4df('0x16')]);module[_0xa4df('0x17')]=router;
\ No newline at end of file
+var _0x0611=['exports','multer','path','connect-timeout','Router','fs-extra','../../components/interaction/service','../../config/environment','./intZohoConfiguration.controller','get','isAuthenticated','/:id','show','/:id/fields','getFields','/:id/subjects','getSubjects','/:id/descriptions','getDescriptions','update','delete'];(function(_0x3d5dba,_0x144e04){var _0x57f521=function(_0x74e57e){while(--_0x74e57e){_0x3d5dba['push'](_0x3d5dba['shift']());}};_0x57f521(++_0x144e04);}(_0x0611,0xbe));var _0x1061=function(_0x2eedc8,_0x1bb88e){_0x2eedc8=_0x2eedc8-0x0;var _0x1d4b88=_0x0611[_0x2eedc8];return _0x1d4b88;};'use strict';var multer=require(_0x1061('0x0'));var util=require('util');var path=require(_0x1061('0x1'));var timeout=require(_0x1061('0x2'));var express=require('express');var router=express[_0x1061('0x3')]();var fs_extra=require(_0x1061('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0x1061('0x5'));var config=require(_0x1061('0x6'));var controller=require(_0x1061('0x7'));router[_0x1061('0x8')]('/',auth[_0x1061('0x9')](),controller['index']);router[_0x1061('0x8')](_0x1061('0xa'),auth[_0x1061('0x9')](),controller[_0x1061('0xb')]);router['get'](_0x1061('0xc'),auth[_0x1061('0x9')](),controller[_0x1061('0xd')]);router[_0x1061('0x8')](_0x1061('0xe'),auth[_0x1061('0x9')](),controller[_0x1061('0xf')]);router[_0x1061('0x8')](_0x1061('0x10'),auth[_0x1061('0x9')](),controller[_0x1061('0x11')]);router['post']('/',auth[_0x1061('0x9')](),controller['create']);router['put'](_0x1061('0xa'),auth['isAuthenticated'](),controller[_0x1061('0x12')]);router[_0x1061('0x13')](_0x1061('0xa'),auth['isAuthenticated'](),controller['destroy']);module[_0x1061('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x87fd=['sequelize','exports','STRING','lead','contact','ENUM','contact_lead'];(function(_0x5465e6,_0x2a8809){var _0x10044e=function(_0x1d5dcd){while(--_0x1d5dcd){_0x5465e6['push'](_0x5465e6['shift']());}};_0x10044e(++_0x2a8809);}(_0x87fd,0x1e3));var _0xd87f=function(_0x2f81ca,_0x52b45e){_0x2f81ca=_0x2f81ca-0x0;var _0x2a5000=_0x87fd[_0x2f81ca];return _0x2a5000;};'use strict';var Sequelize=require(_0xd87f('0x0'));module[_0xd87f('0x1')]={'name':{'type':Sequelize[_0xd87f('0x2')]},'moduleCreate':{'type':Sequelize['ENUM'](_0xd87f('0x3'),_0xd87f('0x4'),'nothing'),'defaultValue':_0xd87f('0x3')},'moduleSearch':{'type':Sequelize[_0xd87f('0x5')](_0xd87f('0x6'),_0xd87f('0x4'),_0xd87f('0x3')),'defaultValue':_0xd87f('0x6')},'description':{'type':Sequelize[_0xd87f('0x2')]}};
\ No newline at end of file
+var _0x785d=['sequelize','exports','STRING','ENUM','lead','nothing','contact_lead','contact'];(function(_0x1af91a,_0x308ab2){var _0x5c1fa6=function(_0x5cd9ab){while(--_0x5cd9ab){_0x1af91a['push'](_0x1af91a['shift']());}};_0x5c1fa6(++_0x308ab2);}(_0x785d,0x90));var _0xd785=function(_0x1d030e,_0x3687cd){_0x1d030e=_0x1d030e-0x0;var _0x401adb=_0x785d[_0x1d030e];return _0x401adb;};'use strict';var Sequelize=require(_0xd785('0x0'));module[_0xd785('0x1')]={'name':{'type':Sequelize[_0xd785('0x2')]},'moduleCreate':{'type':Sequelize[_0xd785('0x3')](_0xd785('0x4'),'contact',_0xd785('0x5')),'defaultValue':_0xd785('0x4')},'moduleSearch':{'type':Sequelize['ENUM'](_0xd785('0x6'),_0xd785('0x7'),_0xd785('0x4')),'defaultValue':_0xd785('0x6')},'description':{'type':Sequelize[_0xd785('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1b5d=['getSubjects','nolimit','eml-format','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/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','undefined','limit','count','Content-Range','json','apply','reject','save','then','destroy','error','stack','name','send','index','map','ZohoConfiguration','rawAttributes','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','pick','filter','merge','type','VIRTUAL','options','includeAll','include','findAll','rows','params','find','catch','create','body','update','findOne','ZohoField','getFields'];(function(_0x3a6bdc,_0x1b8897){var _0x4b27d7=function(_0x463162){while(--_0x463162){_0x3a6bdc['push'](_0x3a6bdc['shift']());}};_0x4b27d7(++_0x1b8897);}(_0x1b5d,0x14e));var _0xd1b5=function(_0x550552,_0x911116){_0x550552=_0x550552-0x0;var _0x2486df=_0x1b5d[_0x550552];return _0x2486df;};'use strict';var emlformat=require(_0xd1b5('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xd1b5('0x1'));var jsonpatch=require(_0xd1b5('0x2'));var rp=require(_0xd1b5('0x3'));var moment=require(_0xd1b5('0x4'));var BPromise=require(_0xd1b5('0x5'));var Mustache=require(_0xd1b5('0x6'));var util=require(_0xd1b5('0x7'));var path=require(_0xd1b5('0x8'));var sox=require(_0xd1b5('0x9'));var csv=require(_0xd1b5('0xa'));var ejs=require(_0xd1b5('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xd1b5('0xc'));var squel=require(_0xd1b5('0xd'));var crypto=require('crypto');var jsforce=require(_0xd1b5('0xe'));var deskjs=require(_0xd1b5('0xf'));var toCsv=require(_0xd1b5('0xa'));var querystring=require(_0xd1b5('0x10'));var Papa=require(_0xd1b5('0x11'));var Redis=require(_0xd1b5('0x12'));var authService=require(_0xd1b5('0x13'));var qs=require(_0xd1b5('0x14'));var as=require(_0xd1b5('0x15'));var hardwareService=require(_0xd1b5('0x16'));var logger=require(_0xd1b5('0x17'))('api');var utils=require(_0xd1b5('0x18'));var config=require('../../config/environment');var licenseUtil=require(_0xd1b5('0x19'));var db=require(_0xd1b5('0x1a'))['db'];function respondWithStatusCode(_0x2ff241,_0x2d7f3b){_0x2d7f3b=_0x2d7f3b||0xcc;return function(_0x1efd30){if(_0x1efd30){return _0x2ff241[_0xd1b5('0x1b')](_0x2d7f3b);}return _0x2ff241[_0xd1b5('0x1c')](_0x2d7f3b)[_0xd1b5('0x1d')]();};}function respondWithResult(_0x38ceef,_0x29e252){_0x29e252=_0x29e252||0xc8;return function(_0x490e40){if(_0x490e40){return _0x38ceef[_0xd1b5('0x1c')](_0x29e252)['json'](_0x490e40);}};}function respondWithFilteredResult(_0x5cf6bb,_0x2fea36){return function(_0x37977b){if(_0x37977b){var _0x1f9692=typeof _0x2fea36[_0xd1b5('0x1e')]===_0xd1b5('0x1f')&&typeof _0x2fea36[_0xd1b5('0x20')]===_0xd1b5('0x1f');var _0x210b8d=_0x37977b[_0xd1b5('0x21')];var _0x45e45a=_0x1f9692?0x0:_0x2fea36[_0xd1b5('0x1e')];var _0x393151=_0x1f9692?_0x37977b[_0xd1b5('0x21')]:_0x2fea36['offset']+_0x2fea36['limit'];var _0x48b1fb;if(_0x393151>=_0x210b8d){_0x393151=_0x210b8d;_0x48b1fb=0xc8;}else{_0x48b1fb=0xce;}_0x5cf6bb[_0xd1b5('0x1c')](_0x48b1fb);return _0x5cf6bb['set'](_0xd1b5('0x22'),_0x45e45a+'-'+_0x393151+'/'+_0x210b8d)[_0xd1b5('0x23')](_0x37977b);}return null;};}function patchUpdates(_0x424cee){return function(_0x1a70f5){try{jsonpatch[_0xd1b5('0x24')](_0x1a70f5,_0x424cee,!![]);}catch(_0x5d81f7){return BPromise[_0xd1b5('0x25')](_0x5d81f7);}return _0x1a70f5[_0xd1b5('0x26')]();};}function saveUpdates(_0x105ab3,_0x4b5fc6){return function(_0x547101){if(_0x547101){return _0x547101['update'](_0x105ab3)[_0xd1b5('0x27')](function(_0x595234){return _0x595234;});}return null;};}function removeEntity(_0x2ae147,_0x462b83){return function(_0xe51306){if(_0xe51306){return _0xe51306[_0xd1b5('0x28')]()[_0xd1b5('0x27')](function(){_0x2ae147['status'](0xcc)[_0xd1b5('0x1d')]();});}};}function handleEntityNotFound(_0x9fbaf1,_0x3dee8a){return function(_0x27e009){if(!_0x27e009){_0x9fbaf1[_0xd1b5('0x1b')](0x194);}return _0x27e009;};}function handleError(_0x13eb29,_0x4bd447){_0x4bd447=_0x4bd447||0x1f4;return function(_0x9224d7){logger[_0xd1b5('0x29')](_0x9224d7[_0xd1b5('0x2a')]);if(_0x9224d7[_0xd1b5('0x2b')]){delete _0x9224d7[_0xd1b5('0x2b')];}_0x13eb29[_0xd1b5('0x1c')](_0x4bd447)[_0xd1b5('0x2c')](_0x9224d7);};}exports[_0xd1b5('0x2d')]=function(_0x7d73b2,_0x349090){var _0x52f926={},_0x352964={},_0x4dfa3e={'count':0x0,'rows':[]};var _0x4b14cd=_[_0xd1b5('0x2e')](db[_0xd1b5('0x2f')][_0xd1b5('0x30')],function(_0x56b40f){return{'name':_0x56b40f['fieldName'],'type':_0x56b40f['type'][_0xd1b5('0x31')]};});_0x352964[_0xd1b5('0x32')]=_['map'](_0x4b14cd,'name');_0x352964[_0xd1b5('0x33')]=_[_0xd1b5('0x34')](_0x7d73b2[_0xd1b5('0x33')]);_0x352964[_0xd1b5('0x35')]=_[_0xd1b5('0x36')](_0x352964['model'],_0x352964[_0xd1b5('0x33')]);_0x52f926[_0xd1b5('0x37')]=_['intersection'](_0x352964[_0xd1b5('0x32')],qs['fields'](_0x7d73b2[_0xd1b5('0x33')][_0xd1b5('0x38')]));_0x52f926['attributes']=_0x52f926[_0xd1b5('0x37')][_0xd1b5('0x39')]?_0x52f926[_0xd1b5('0x37')]:_0x352964['model'];if(!_0x7d73b2['query'][_0xd1b5('0x3a')]('nolimit')){_0x52f926['limit']=qs[_0xd1b5('0x20')](_0x7d73b2[_0xd1b5('0x33')]['limit']);_0x52f926[_0xd1b5('0x1e')]=qs['offset'](_0x7d73b2[_0xd1b5('0x33')]['offset']);}_0x52f926[_0xd1b5('0x3b')]=qs[_0xd1b5('0x3c')](_0x7d73b2['query']['sort']);_0x52f926[_0xd1b5('0x3d')]=qs[_0xd1b5('0x35')](_[_0xd1b5('0x3e')](_0x7d73b2[_0xd1b5('0x33')],_0x352964[_0xd1b5('0x35')]),_0x4b14cd);if(_0x7d73b2[_0xd1b5('0x33')][_0xd1b5('0x3f')]){_0x52f926['where']=_[_0xd1b5('0x40')](_0x52f926['where'],{'$or':_[_0xd1b5('0x2e')](_0x4b14cd,function(_0x50d77d){if(_0x50d77d[_0xd1b5('0x41')]!==_0xd1b5('0x42')){var _0x22a29f={};_0x22a29f[_0x50d77d[_0xd1b5('0x2b')]]={'$like':'%'+_0x7d73b2[_0xd1b5('0x33')]['filter']+'%'};return _0x22a29f;}})});}_0x52f926=_[_0xd1b5('0x40')]({},_0x52f926,_0x7d73b2[_0xd1b5('0x43')]);var _0x3ff3b1={'where':_0x52f926[_0xd1b5('0x3d')]};return db[_0xd1b5('0x2f')][_0xd1b5('0x21')](_0x3ff3b1)[_0xd1b5('0x27')](function(_0xcd5746){_0x4dfa3e[_0xd1b5('0x21')]=_0xcd5746;if(_0x7d73b2[_0xd1b5('0x33')][_0xd1b5('0x44')]){_0x52f926[_0xd1b5('0x45')]=[{'all':!![]}];}return db[_0xd1b5('0x2f')][_0xd1b5('0x46')](_0x52f926);})[_0xd1b5('0x27')](function(_0x5c87d3){_0x4dfa3e[_0xd1b5('0x47')]=_0x5c87d3;return _0x4dfa3e;})['then'](respondWithFilteredResult(_0x349090,_0x52f926))['catch'](handleError(_0x349090,null));};exports['show']=function(_0x2cefb1,_0x16a939){var _0x5d4415={'raw':![],'where':{'id':_0x2cefb1[_0xd1b5('0x48')]['id']}},_0x606b9a={};_0x606b9a[_0xd1b5('0x32')]=_[_0xd1b5('0x34')](db['ZohoConfiguration']['rawAttributes']);_0x606b9a[_0xd1b5('0x33')]=_[_0xd1b5('0x34')](_0x2cefb1[_0xd1b5('0x33')]);_0x606b9a[_0xd1b5('0x35')]=_[_0xd1b5('0x36')](_0x606b9a[_0xd1b5('0x32')],_0x606b9a[_0xd1b5('0x33')]);_0x5d4415[_0xd1b5('0x37')]=_[_0xd1b5('0x36')](_0x606b9a['model'],qs[_0xd1b5('0x38')](_0x2cefb1[_0xd1b5('0x33')][_0xd1b5('0x38')]));_0x5d4415[_0xd1b5('0x37')]=_0x5d4415[_0xd1b5('0x37')][_0xd1b5('0x39')]?_0x5d4415['attributes']:_0x606b9a['model'];if(_0x2cefb1[_0xd1b5('0x33')]['includeAll']){_0x5d4415['include']=[{'all':!![]}];}_0x5d4415=_[_0xd1b5('0x40')]({},_0x5d4415,_0x2cefb1[_0xd1b5('0x43')]);return db['ZohoConfiguration'][_0xd1b5('0x49')](_0x5d4415)[_0xd1b5('0x27')](handleEntityNotFound(_0x16a939,null))[_0xd1b5('0x27')](respondWithResult(_0x16a939,null))[_0xd1b5('0x4a')](handleError(_0x16a939,null));};exports[_0xd1b5('0x4b')]=function(_0xbf3b64,_0x5123a7){return db[_0xd1b5('0x2f')][_0xd1b5('0x4b')](_0xbf3b64[_0xd1b5('0x4c')],{})[_0xd1b5('0x27')](respondWithResult(_0x5123a7,0xc9))[_0xd1b5('0x4a')](handleError(_0x5123a7,null));};exports[_0xd1b5('0x4d')]=function(_0x4b3beb,_0x48d9be){if(_0x4b3beb[_0xd1b5('0x4c')]['id']){delete _0x4b3beb[_0xd1b5('0x4c')]['id'];}return db[_0xd1b5('0x2f')][_0xd1b5('0x49')]({'where':{'id':_0x4b3beb[_0xd1b5('0x48')]['id']}})['then'](handleEntityNotFound(_0x48d9be,null))[_0xd1b5('0x27')](saveUpdates(_0x4b3beb['body'],null))[_0xd1b5('0x27')](respondWithResult(_0x48d9be,null))[_0xd1b5('0x4a')](handleError(_0x48d9be,null));};exports[_0xd1b5('0x28')]=function(_0x5ec79e,_0x2330ed){return db['ZohoConfiguration'][_0xd1b5('0x49')]({'where':{'id':_0x5ec79e['params']['id']}})[_0xd1b5('0x27')](handleEntityNotFound(_0x2330ed,null))['then'](removeEntity(_0x2330ed,null))[_0xd1b5('0x4a')](handleError(_0x2330ed,null));};exports['getFields']=function(_0x137969,_0x1dfa21,_0x366a69){var _0x88ec42={};var _0x80faa2={};var _0xcae5e1;var _0x179209;return db[_0xd1b5('0x2f')][_0xd1b5('0x4e')]({'where':{'id':_0x137969[_0xd1b5('0x48')]['id']}})[_0xd1b5('0x27')](handleEntityNotFound(_0x1dfa21,null))[_0xd1b5('0x27')](function(_0x381293){if(_0x381293){_0xcae5e1=_0x381293;_0x80faa2[_0xd1b5('0x32')]=_[_0xd1b5('0x34')](db[_0xd1b5('0x4f')][_0xd1b5('0x30')]);_0x80faa2[_0xd1b5('0x33')]=_[_0xd1b5('0x34')](_0x137969[_0xd1b5('0x33')]);_0x80faa2[_0xd1b5('0x35')]=_[_0xd1b5('0x36')](_0x80faa2[_0xd1b5('0x32')],_0x80faa2[_0xd1b5('0x33')]);_0x88ec42['attributes']=_[_0xd1b5('0x36')](_0x80faa2[_0xd1b5('0x32')],qs['fields'](_0x137969[_0xd1b5('0x33')][_0xd1b5('0x38')]));_0x88ec42['attributes']=_0x88ec42[_0xd1b5('0x37')]['length']?_0x88ec42[_0xd1b5('0x37')]:_0x80faa2[_0xd1b5('0x32')];_0x88ec42[_0xd1b5('0x3b')]=qs['sort'](_0x137969[_0xd1b5('0x33')]['sort']);_0x88ec42[_0xd1b5('0x3d')]=qs[_0xd1b5('0x35')](_[_0xd1b5('0x3e')](_0x137969[_0xd1b5('0x33')],_0x80faa2['filters']));if(_0x137969[_0xd1b5('0x33')][_0xd1b5('0x3f')]){_0x88ec42[_0xd1b5('0x3d')]=_['merge'](_0x88ec42[_0xd1b5('0x3d')],{'$or':_['map'](_0x88ec42[_0xd1b5('0x37')],function(_0x305906){var _0x134b0e={};_0x134b0e[_0x305906]={'$like':'%'+_0x137969['query'][_0xd1b5('0x3f')]+'%'};return _0x134b0e;})});}_0x88ec42=_['merge']({},_0x88ec42,_0x137969[_0xd1b5('0x43')]);return _0xcae5e1['getFields'](_0x88ec42);}})[_0xd1b5('0x27')](function(_0x420da0){if(_0x420da0){_0x179209=_0x420da0[_0xd1b5('0x39')];if(!_0x137969[_0xd1b5('0x33')][_0xd1b5('0x3a')]('nolimit')){_0x88ec42[_0xd1b5('0x20')]=qs[_0xd1b5('0x20')](_0x137969['query'][_0xd1b5('0x20')]);_0x88ec42[_0xd1b5('0x1e')]=qs[_0xd1b5('0x1e')](_0x137969['query'][_0xd1b5('0x1e')]);}return _0xcae5e1[_0xd1b5('0x50')](_0x88ec42);}})[_0xd1b5('0x27')](function(_0x4f854){if(_0x4f854){return _0x4f854?{'count':_0x179209,'rows':_0x4f854}:null;}})['then'](respondWithResult(_0x1dfa21,null))[_0xd1b5('0x4a')](handleError(_0x1dfa21,null));};exports['getSubjects']=function(_0xc18c06,_0x2389e0,_0x1627c6){var _0x293c25={};var _0x2b1d82={};var _0x18585f;var _0x49e504;return db[_0xd1b5('0x2f')][_0xd1b5('0x4e')]({'where':{'id':_0xc18c06[_0xd1b5('0x48')]['id']}})[_0xd1b5('0x27')](handleEntityNotFound(_0x2389e0,null))[_0xd1b5('0x27')](function(_0x2abe39){if(_0x2abe39){_0x18585f=_0x2abe39;_0x2b1d82[_0xd1b5('0x32')]=_[_0xd1b5('0x34')](db[_0xd1b5('0x4f')][_0xd1b5('0x30')]);_0x2b1d82[_0xd1b5('0x33')]=_['keys'](_0xc18c06[_0xd1b5('0x33')]);_0x2b1d82[_0xd1b5('0x35')]=_[_0xd1b5('0x36')](_0x2b1d82[_0xd1b5('0x32')],_0x2b1d82[_0xd1b5('0x33')]);_0x293c25[_0xd1b5('0x37')]=_[_0xd1b5('0x36')](_0x2b1d82[_0xd1b5('0x32')],qs[_0xd1b5('0x38')](_0xc18c06[_0xd1b5('0x33')][_0xd1b5('0x38')]));_0x293c25[_0xd1b5('0x37')]=_0x293c25[_0xd1b5('0x37')][_0xd1b5('0x39')]?_0x293c25[_0xd1b5('0x37')]:_0x2b1d82['model'];_0x293c25[_0xd1b5('0x3b')]=qs[_0xd1b5('0x3c')](_0xc18c06[_0xd1b5('0x33')][_0xd1b5('0x3c')]);_0x293c25[_0xd1b5('0x3d')]=qs[_0xd1b5('0x35')](_['pick'](_0xc18c06[_0xd1b5('0x33')],_0x2b1d82['filters']));if(_0xc18c06[_0xd1b5('0x33')][_0xd1b5('0x3f')]){_0x293c25[_0xd1b5('0x3d')]=_[_0xd1b5('0x40')](_0x293c25[_0xd1b5('0x3d')],{'$or':_[_0xd1b5('0x2e')](_0x293c25[_0xd1b5('0x37')],function(_0x2b6de9){var _0x614804={};_0x614804[_0x2b6de9]={'$like':'%'+_0xc18c06[_0xd1b5('0x33')][_0xd1b5('0x3f')]+'%'};return _0x614804;})});}_0x293c25=_[_0xd1b5('0x40')]({},_0x293c25,_0xc18c06[_0xd1b5('0x43')]);return _0x18585f[_0xd1b5('0x51')](_0x293c25);}})[_0xd1b5('0x27')](function(_0x446466){if(_0x446466){_0x49e504=_0x446466['length'];if(!_0xc18c06[_0xd1b5('0x33')][_0xd1b5('0x3a')]('nolimit')){_0x293c25['limit']=qs[_0xd1b5('0x20')](_0xc18c06[_0xd1b5('0x33')][_0xd1b5('0x20')]);_0x293c25[_0xd1b5('0x1e')]=qs[_0xd1b5('0x1e')](_0xc18c06[_0xd1b5('0x33')][_0xd1b5('0x1e')]);}return _0x18585f['getSubjects'](_0x293c25);}})[_0xd1b5('0x27')](function(_0x11ec41){if(_0x11ec41){return _0x11ec41?{'count':_0x49e504,'rows':_0x11ec41}:null;}})[_0xd1b5('0x27')](respondWithResult(_0x2389e0,null))[_0xd1b5('0x4a')](handleError(_0x2389e0,null));};exports['getDescriptions']=function(_0x53040b,_0x1887d7,_0x1bce91){var _0x288ec1={};var _0x59ccf9={};var _0x3311d2;var _0x292054;return db[_0xd1b5('0x2f')][_0xd1b5('0x4e')]({'where':{'id':_0x53040b[_0xd1b5('0x48')]['id']}})[_0xd1b5('0x27')](handleEntityNotFound(_0x1887d7,null))['then'](function(_0x26d61e){if(_0x26d61e){_0x3311d2=_0x26d61e;_0x59ccf9['model']=_['keys'](db['ZohoField'][_0xd1b5('0x30')]);_0x59ccf9['query']=_['keys'](_0x53040b[_0xd1b5('0x33')]);_0x59ccf9[_0xd1b5('0x35')]=_['intersection'](_0x59ccf9[_0xd1b5('0x32')],_0x59ccf9[_0xd1b5('0x33')]);_0x288ec1[_0xd1b5('0x37')]=_[_0xd1b5('0x36')](_0x59ccf9['model'],qs['fields'](_0x53040b[_0xd1b5('0x33')][_0xd1b5('0x38')]));_0x288ec1[_0xd1b5('0x37')]=_0x288ec1[_0xd1b5('0x37')][_0xd1b5('0x39')]?_0x288ec1[_0xd1b5('0x37')]:_0x59ccf9[_0xd1b5('0x32')];_0x288ec1[_0xd1b5('0x3b')]=qs[_0xd1b5('0x3c')](_0x53040b[_0xd1b5('0x33')][_0xd1b5('0x3c')]);_0x288ec1[_0xd1b5('0x3d')]=qs[_0xd1b5('0x35')](_['pick'](_0x53040b[_0xd1b5('0x33')],_0x59ccf9[_0xd1b5('0x35')]));if(_0x53040b[_0xd1b5('0x33')][_0xd1b5('0x3f')]){_0x288ec1['where']=_['merge'](_0x288ec1[_0xd1b5('0x3d')],{'$or':_[_0xd1b5('0x2e')](_0x288ec1[_0xd1b5('0x37')],function(_0x427657){var _0x23e222={};_0x23e222[_0x427657]={'$like':'%'+_0x53040b[_0xd1b5('0x33')]['filter']+'%'};return _0x23e222;})});}_0x288ec1=_['merge']({},_0x288ec1,_0x53040b[_0xd1b5('0x43')]);return _0x3311d2['getDescriptions'](_0x288ec1);}})[_0xd1b5('0x27')](function(_0x4a888f){if(_0x4a888f){_0x292054=_0x4a888f[_0xd1b5('0x39')];if(!_0x53040b[_0xd1b5('0x33')][_0xd1b5('0x3a')](_0xd1b5('0x52'))){_0x288ec1[_0xd1b5('0x20')]=qs['limit'](_0x53040b[_0xd1b5('0x33')][_0xd1b5('0x20')]);_0x288ec1['offset']=qs[_0xd1b5('0x1e')](_0x53040b['query'][_0xd1b5('0x1e')]);}return _0x3311d2['getDescriptions'](_0x288ec1);}})['then'](function(_0x112dc8){if(_0x112dc8){return _0x112dc8?{'count':_0x292054,'rows':_0x112dc8}:null;}})[_0xd1b5('0x27')](respondWithResult(_0x1887d7,null))[_0xd1b5('0x4a')](handleError(_0x1887d7,null));};
\ No newline at end of file
+var _0x2301=['fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','ejs','fs-extra','lodash','crypto','desk.js','to-csv','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','json','offset','undefined','limit','count','set','apply','reject','save','then','destroy','error','stack','name','fieldName','type','key','model','map','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','order','sort','where','pick','filter','merge','VIRTUAL','options','ZohoConfiguration','include','show','params','rawAttributes','includeAll','find','catch','create','body','getFields','ZohoField','nolimit','getSubjects','findOne','getDescriptions','eml-format','rimraf','zip-dir'];(function(_0x1673bb,_0x53b9d6){var _0x569af9=function(_0x1f9b98){while(--_0x1f9b98){_0x1673bb['push'](_0x1673bb['shift']());}};_0x569af9(++_0x53b9d6);}(_0x2301,0x13d));var _0x1230=function(_0xd29c88,_0x141c80){_0xd29c88=_0xd29c88-0x0;var _0x375635=_0x2301[_0xd29c88];return _0x375635;};'use strict';var emlformat=require(_0x1230('0x0'));var rimraf=require(_0x1230('0x1'));var zipdir=require(_0x1230('0x2'));var jsonpatch=require(_0x1230('0x3'));var rp=require(_0x1230('0x4'));var moment=require(_0x1230('0x5'));var BPromise=require(_0x1230('0x6'));var Mustache=require(_0x1230('0x7'));var util=require(_0x1230('0x8'));var path=require('path');var sox=require(_0x1230('0x9'));var csv=require('to-csv');var ejs=require(_0x1230('0xa'));var fs=require('fs');var fs_extra=require(_0x1230('0xb'));var _=require(_0x1230('0xc'));var squel=require('squel');var crypto=require(_0x1230('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x1230('0xe'));var toCsv=require(_0x1230('0xf'));var querystring=require(_0x1230('0x10'));var Papa=require(_0x1230('0x11'));var Redis=require('ioredis');var authService=require(_0x1230('0x12'));var qs=require(_0x1230('0x13'));var as=require(_0x1230('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x1230('0x15'))('api');var utils=require(_0x1230('0x16'));var config=require(_0x1230('0x17'));var licenseUtil=require(_0x1230('0x18'));var db=require(_0x1230('0x19'))['db'];function respondWithStatusCode(_0x1009c6,_0xa57c42){_0xa57c42=_0xa57c42||0xcc;return function(_0x10bd63){if(_0x10bd63){return _0x1009c6[_0x1230('0x1a')](_0xa57c42);}return _0x1009c6['status'](_0xa57c42)[_0x1230('0x1b')]();};}function respondWithResult(_0x510dc5,_0x179315){_0x179315=_0x179315||0xc8;return function(_0x185d82){if(_0x185d82){return _0x510dc5[_0x1230('0x1c')](_0x179315)[_0x1230('0x1d')](_0x185d82);}};}function respondWithFilteredResult(_0x5397fa,_0x578962){return function(_0x3e8191){if(_0x3e8191){var _0x4eab27=typeof _0x578962[_0x1230('0x1e')]===_0x1230('0x1f')&&typeof _0x578962[_0x1230('0x20')]==='undefined';var _0x5a2d44=_0x3e8191[_0x1230('0x21')];var _0x192747=_0x4eab27?0x0:_0x578962[_0x1230('0x1e')];var _0x1aeea0=_0x4eab27?_0x3e8191[_0x1230('0x21')]:_0x578962[_0x1230('0x1e')]+_0x578962[_0x1230('0x20')];var _0x8c731;if(_0x1aeea0>=_0x5a2d44){_0x1aeea0=_0x5a2d44;_0x8c731=0xc8;}else{_0x8c731=0xce;}_0x5397fa[_0x1230('0x1c')](_0x8c731);return _0x5397fa[_0x1230('0x22')]('Content-Range',_0x192747+'-'+_0x1aeea0+'/'+_0x5a2d44)[_0x1230('0x1d')](_0x3e8191);}return null;};}function patchUpdates(_0xa2cb94){return function(_0x5e8283){try{jsonpatch[_0x1230('0x23')](_0x5e8283,_0xa2cb94,!![]);}catch(_0x557150){return BPromise[_0x1230('0x24')](_0x557150);}return _0x5e8283[_0x1230('0x25')]();};}function saveUpdates(_0x5d9f4c,_0x590e0a){return function(_0x58cbec){if(_0x58cbec){return _0x58cbec['update'](_0x5d9f4c)[_0x1230('0x26')](function(_0x4d14f8){return _0x4d14f8;});}return null;};}function removeEntity(_0x15de92,_0x43ff01){return function(_0x353493){if(_0x353493){return _0x353493[_0x1230('0x27')]()[_0x1230('0x26')](function(){_0x15de92[_0x1230('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x42c26f,_0x47f866){return function(_0x26f4c1){if(!_0x26f4c1){_0x42c26f[_0x1230('0x1a')](0x194);}return _0x26f4c1;};}function handleError(_0xb985cb,_0x3cab1d){_0x3cab1d=_0x3cab1d||0x1f4;return function(_0x33f834){logger[_0x1230('0x28')](_0x33f834[_0x1230('0x29')]);if(_0x33f834['name']){delete _0x33f834[_0x1230('0x2a')];}_0xb985cb[_0x1230('0x1c')](_0x3cab1d)['send'](_0x33f834);};}exports['index']=function(_0x35b86e,_0x32a966){var _0xbb2d7e={},_0x264b01={},_0x1f5ed3={'count':0x0,'rows':[]};var _0x3c06bc=_['map'](db['ZohoConfiguration']['rawAttributes'],function(_0x2853a8){return{'name':_0x2853a8[_0x1230('0x2b')],'type':_0x2853a8[_0x1230('0x2c')][_0x1230('0x2d')]};});_0x264b01[_0x1230('0x2e')]=_[_0x1230('0x2f')](_0x3c06bc,_0x1230('0x2a'));_0x264b01[_0x1230('0x30')]=_[_0x1230('0x31')](_0x35b86e[_0x1230('0x30')]);_0x264b01[_0x1230('0x32')]=_[_0x1230('0x33')](_0x264b01[_0x1230('0x2e')],_0x264b01['query']);_0xbb2d7e['attributes']=_[_0x1230('0x33')](_0x264b01['model'],qs[_0x1230('0x34')](_0x35b86e['query']['fields']));_0xbb2d7e[_0x1230('0x35')]=_0xbb2d7e[_0x1230('0x35')][_0x1230('0x36')]?_0xbb2d7e[_0x1230('0x35')]:_0x264b01['model'];if(!_0x35b86e['query'][_0x1230('0x37')]('nolimit')){_0xbb2d7e[_0x1230('0x20')]=qs['limit'](_0x35b86e[_0x1230('0x30')][_0x1230('0x20')]);_0xbb2d7e[_0x1230('0x1e')]=qs[_0x1230('0x1e')](_0x35b86e['query'][_0x1230('0x1e')]);}_0xbb2d7e[_0x1230('0x38')]=qs[_0x1230('0x39')](_0x35b86e[_0x1230('0x30')][_0x1230('0x39')]);_0xbb2d7e[_0x1230('0x3a')]=qs[_0x1230('0x32')](_[_0x1230('0x3b')](_0x35b86e[_0x1230('0x30')],_0x264b01[_0x1230('0x32')]),_0x3c06bc);if(_0x35b86e[_0x1230('0x30')][_0x1230('0x3c')]){_0xbb2d7e[_0x1230('0x3a')]=_[_0x1230('0x3d')](_0xbb2d7e[_0x1230('0x3a')],{'$or':_[_0x1230('0x2f')](_0x3c06bc,function(_0x286e66){if(_0x286e66[_0x1230('0x2c')]!==_0x1230('0x3e')){var _0x5d54c7={};_0x5d54c7[_0x286e66[_0x1230('0x2a')]]={'$like':'%'+_0x35b86e['query']['filter']+'%'};return _0x5d54c7;}})});}_0xbb2d7e=_[_0x1230('0x3d')]({},_0xbb2d7e,_0x35b86e[_0x1230('0x3f')]);var _0x412a43={'where':_0xbb2d7e[_0x1230('0x3a')]};return db[_0x1230('0x40')][_0x1230('0x21')](_0x412a43)[_0x1230('0x26')](function(_0x1800cd){_0x1f5ed3[_0x1230('0x21')]=_0x1800cd;if(_0x35b86e[_0x1230('0x30')]['includeAll']){_0xbb2d7e[_0x1230('0x41')]=[{'all':!![]}];}return db[_0x1230('0x40')]['findAll'](_0xbb2d7e);})[_0x1230('0x26')](function(_0x269131){_0x1f5ed3['rows']=_0x269131;return _0x1f5ed3;})[_0x1230('0x26')](respondWithFilteredResult(_0x32a966,_0xbb2d7e))['catch'](handleError(_0x32a966,null));};exports[_0x1230('0x42')]=function(_0x2bde3c,_0x101546){var _0x2495ab={'raw':![],'where':{'id':_0x2bde3c[_0x1230('0x43')]['id']}},_0x1d6ce9={};_0x1d6ce9[_0x1230('0x2e')]=_['keys'](db[_0x1230('0x40')][_0x1230('0x44')]);_0x1d6ce9[_0x1230('0x30')]=_['keys'](_0x2bde3c[_0x1230('0x30')]);_0x1d6ce9['filters']=_[_0x1230('0x33')](_0x1d6ce9[_0x1230('0x2e')],_0x1d6ce9[_0x1230('0x30')]);_0x2495ab[_0x1230('0x35')]=_[_0x1230('0x33')](_0x1d6ce9[_0x1230('0x2e')],qs['fields'](_0x2bde3c[_0x1230('0x30')][_0x1230('0x34')]));_0x2495ab[_0x1230('0x35')]=_0x2495ab[_0x1230('0x35')]['length']?_0x2495ab[_0x1230('0x35')]:_0x1d6ce9['model'];if(_0x2bde3c[_0x1230('0x30')][_0x1230('0x45')]){_0x2495ab['include']=[{'all':!![]}];}_0x2495ab=_[_0x1230('0x3d')]({},_0x2495ab,_0x2bde3c[_0x1230('0x3f')]);return db['ZohoConfiguration'][_0x1230('0x46')](_0x2495ab)[_0x1230('0x26')](handleEntityNotFound(_0x101546,null))['then'](respondWithResult(_0x101546,null))[_0x1230('0x47')](handleError(_0x101546,null));};exports[_0x1230('0x48')]=function(_0x5a967c,_0x3a868d){return db['ZohoConfiguration'][_0x1230('0x48')](_0x5a967c[_0x1230('0x49')],{})[_0x1230('0x26')](respondWithResult(_0x3a868d,0xc9))[_0x1230('0x47')](handleError(_0x3a868d,null));};exports['update']=function(_0x45ce99,_0x16355d){if(_0x45ce99[_0x1230('0x49')]['id']){delete _0x45ce99['body']['id'];}return db[_0x1230('0x40')][_0x1230('0x46')]({'where':{'id':_0x45ce99[_0x1230('0x43')]['id']}})[_0x1230('0x26')](handleEntityNotFound(_0x16355d,null))[_0x1230('0x26')](saveUpdates(_0x45ce99['body'],null))[_0x1230('0x26')](respondWithResult(_0x16355d,null))[_0x1230('0x47')](handleError(_0x16355d,null));};exports[_0x1230('0x27')]=function(_0x5d537b,_0x505598){return db[_0x1230('0x40')]['find']({'where':{'id':_0x5d537b['params']['id']}})['then'](handleEntityNotFound(_0x505598,null))[_0x1230('0x26')](removeEntity(_0x505598,null))[_0x1230('0x47')](handleError(_0x505598,null));};exports[_0x1230('0x4a')]=function(_0xa11022,_0x2e2cfb,_0x550c60){var _0x546120={};var _0x161dde={};var _0x271a81;var _0x5a66d5;return db[_0x1230('0x40')]['findOne']({'where':{'id':_0xa11022[_0x1230('0x43')]['id']}})[_0x1230('0x26')](handleEntityNotFound(_0x2e2cfb,null))[_0x1230('0x26')](function(_0x1e3d4a){if(_0x1e3d4a){_0x271a81=_0x1e3d4a;_0x161dde[_0x1230('0x2e')]=_[_0x1230('0x31')](db[_0x1230('0x4b')]['rawAttributes']);_0x161dde[_0x1230('0x30')]=_[_0x1230('0x31')](_0xa11022['query']);_0x161dde[_0x1230('0x32')]=_[_0x1230('0x33')](_0x161dde[_0x1230('0x2e')],_0x161dde[_0x1230('0x30')]);_0x546120[_0x1230('0x35')]=_['intersection'](_0x161dde[_0x1230('0x2e')],qs['fields'](_0xa11022[_0x1230('0x30')][_0x1230('0x34')]));_0x546120[_0x1230('0x35')]=_0x546120['attributes']['length']?_0x546120['attributes']:_0x161dde['model'];_0x546120[_0x1230('0x38')]=qs[_0x1230('0x39')](_0xa11022[_0x1230('0x30')][_0x1230('0x39')]);_0x546120[_0x1230('0x3a')]=qs[_0x1230('0x32')](_[_0x1230('0x3b')](_0xa11022[_0x1230('0x30')],_0x161dde[_0x1230('0x32')]));if(_0xa11022[_0x1230('0x30')][_0x1230('0x3c')]){_0x546120['where']=_[_0x1230('0x3d')](_0x546120[_0x1230('0x3a')],{'$or':_[_0x1230('0x2f')](_0x546120[_0x1230('0x35')],function(_0x575a53){var _0x5a1ee3={};_0x5a1ee3[_0x575a53]={'$like':'%'+_0xa11022[_0x1230('0x30')][_0x1230('0x3c')]+'%'};return _0x5a1ee3;})});}_0x546120=_['merge']({},_0x546120,_0xa11022[_0x1230('0x3f')]);return _0x271a81[_0x1230('0x4a')](_0x546120);}})['then'](function(_0x407c7a){if(_0x407c7a){_0x5a66d5=_0x407c7a['length'];if(!_0xa11022[_0x1230('0x30')][_0x1230('0x37')](_0x1230('0x4c'))){_0x546120[_0x1230('0x20')]=qs[_0x1230('0x20')](_0xa11022[_0x1230('0x30')][_0x1230('0x20')]);_0x546120['offset']=qs['offset'](_0xa11022[_0x1230('0x30')][_0x1230('0x1e')]);}return _0x271a81['getFields'](_0x546120);}})[_0x1230('0x26')](function(_0x23b3c9){if(_0x23b3c9){return _0x23b3c9?{'count':_0x5a66d5,'rows':_0x23b3c9}:null;}})['then'](respondWithResult(_0x2e2cfb,null))['catch'](handleError(_0x2e2cfb,null));};exports[_0x1230('0x4d')]=function(_0x354201,_0x8d863,_0x38b5e8){var _0x41ccee={};var _0x2ad0e2={};var _0x12ae71;var _0x33fd7f;return db['ZohoConfiguration'][_0x1230('0x4e')]({'where':{'id':_0x354201[_0x1230('0x43')]['id']}})[_0x1230('0x26')](handleEntityNotFound(_0x8d863,null))[_0x1230('0x26')](function(_0x30dfc2){if(_0x30dfc2){_0x12ae71=_0x30dfc2;_0x2ad0e2['model']=_[_0x1230('0x31')](db['ZohoField'][_0x1230('0x44')]);_0x2ad0e2[_0x1230('0x30')]=_['keys'](_0x354201[_0x1230('0x30')]);_0x2ad0e2['filters']=_[_0x1230('0x33')](_0x2ad0e2[_0x1230('0x2e')],_0x2ad0e2['query']);_0x41ccee[_0x1230('0x35')]=_[_0x1230('0x33')](_0x2ad0e2['model'],qs[_0x1230('0x34')](_0x354201[_0x1230('0x30')][_0x1230('0x34')]));_0x41ccee['attributes']=_0x41ccee['attributes'][_0x1230('0x36')]?_0x41ccee[_0x1230('0x35')]:_0x2ad0e2[_0x1230('0x2e')];_0x41ccee[_0x1230('0x38')]=qs[_0x1230('0x39')](_0x354201[_0x1230('0x30')][_0x1230('0x39')]);_0x41ccee[_0x1230('0x3a')]=qs[_0x1230('0x32')](_[_0x1230('0x3b')](_0x354201[_0x1230('0x30')],_0x2ad0e2['filters']));if(_0x354201[_0x1230('0x30')][_0x1230('0x3c')]){_0x41ccee[_0x1230('0x3a')]=_['merge'](_0x41ccee['where'],{'$or':_[_0x1230('0x2f')](_0x41ccee[_0x1230('0x35')],function(_0x28812c){var _0x49606a={};_0x49606a[_0x28812c]={'$like':'%'+_0x354201['query'][_0x1230('0x3c')]+'%'};return _0x49606a;})});}_0x41ccee=_[_0x1230('0x3d')]({},_0x41ccee,_0x354201['options']);return _0x12ae71[_0x1230('0x4d')](_0x41ccee);}})[_0x1230('0x26')](function(_0x2b1015){if(_0x2b1015){_0x33fd7f=_0x2b1015['length'];if(!_0x354201[_0x1230('0x30')][_0x1230('0x37')]('nolimit')){_0x41ccee['limit']=qs['limit'](_0x354201[_0x1230('0x30')][_0x1230('0x20')]);_0x41ccee[_0x1230('0x1e')]=qs[_0x1230('0x1e')](_0x354201[_0x1230('0x30')][_0x1230('0x1e')]);}return _0x12ae71['getSubjects'](_0x41ccee);}})[_0x1230('0x26')](function(_0x18cda5){if(_0x18cda5){return _0x18cda5?{'count':_0x33fd7f,'rows':_0x18cda5}:null;}})[_0x1230('0x26')](respondWithResult(_0x8d863,null))[_0x1230('0x47')](handleError(_0x8d863,null));};exports[_0x1230('0x4f')]=function(_0x4fc44c,_0x79903a,_0x1155de){var _0xbcdbf={};var _0x23f285={};var _0x208a42;var _0x3be0f6;return db[_0x1230('0x40')][_0x1230('0x4e')]({'where':{'id':_0x4fc44c['params']['id']}})['then'](handleEntityNotFound(_0x79903a,null))[_0x1230('0x26')](function(_0x22c132){if(_0x22c132){_0x208a42=_0x22c132;_0x23f285['model']=_['keys'](db['ZohoField']['rawAttributes']);_0x23f285[_0x1230('0x30')]=_[_0x1230('0x31')](_0x4fc44c['query']);_0x23f285[_0x1230('0x32')]=_['intersection'](_0x23f285[_0x1230('0x2e')],_0x23f285[_0x1230('0x30')]);_0xbcdbf[_0x1230('0x35')]=_['intersection'](_0x23f285[_0x1230('0x2e')],qs[_0x1230('0x34')](_0x4fc44c['query']['fields']));_0xbcdbf[_0x1230('0x35')]=_0xbcdbf['attributes']['length']?_0xbcdbf[_0x1230('0x35')]:_0x23f285[_0x1230('0x2e')];_0xbcdbf['order']=qs['sort'](_0x4fc44c[_0x1230('0x30')][_0x1230('0x39')]);_0xbcdbf[_0x1230('0x3a')]=qs[_0x1230('0x32')](_[_0x1230('0x3b')](_0x4fc44c['query'],_0x23f285['filters']));if(_0x4fc44c['query'][_0x1230('0x3c')]){_0xbcdbf[_0x1230('0x3a')]=_[_0x1230('0x3d')](_0xbcdbf['where'],{'$or':_[_0x1230('0x2f')](_0xbcdbf['attributes'],function(_0x512d1c){var _0x4c0df0={};_0x4c0df0[_0x512d1c]={'$like':'%'+_0x4fc44c[_0x1230('0x30')][_0x1230('0x3c')]+'%'};return _0x4c0df0;})});}_0xbcdbf=_[_0x1230('0x3d')]({},_0xbcdbf,_0x4fc44c['options']);return _0x208a42[_0x1230('0x4f')](_0xbcdbf);}})[_0x1230('0x26')](function(_0x46cd7c){if(_0x46cd7c){_0x3be0f6=_0x46cd7c['length'];if(!_0x4fc44c[_0x1230('0x30')][_0x1230('0x37')](_0x1230('0x4c'))){_0xbcdbf[_0x1230('0x20')]=qs['limit'](_0x4fc44c['query'][_0x1230('0x20')]);_0xbcdbf[_0x1230('0x1e')]=qs[_0x1230('0x1e')](_0x4fc44c[_0x1230('0x30')][_0x1230('0x1e')]);}return _0x208a42[_0x1230('0x4f')](_0xbcdbf);}})[_0x1230('0x26')](function(_0x5568e1){if(_0x5568e1){return _0x5568e1?{'count':_0x3be0f6,'rows':_0x5568e1}:null;}})[_0x1230('0x26')](respondWithResult(_0x79903a,null))['catch'](handleError(_0x79903a,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdbad=['./intZohoConfiguration.attributes','exports','define','ZohoConfiguration','int_zoho_configurations','lodash','util','../../config/logger','api','moment','bluebird','rimraf','../../config/environment'];(function(_0x1852ff,_0x585410){var _0x9e4944=function(_0xd09c8b){while(--_0xd09c8b){_0x1852ff['push'](_0x1852ff['shift']());}};_0x9e4944(++_0x585410);}(_0xdbad,0xef));var _0xddba=function(_0x2360cf,_0x3af136){_0x2360cf=_0x2360cf-0x0;var _0x34cf3e=_0xdbad[_0x2360cf];return _0x34cf3e;};'use strict';var _=require(_0xddba('0x0'));var util=require(_0xddba('0x1'));var logger=require(_0xddba('0x2'))(_0xddba('0x3'));var moment=require(_0xddba('0x4'));var BPromise=require(_0xddba('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0xddba('0x6'));var config=require(_0xddba('0x7'));var attributes=require(_0xddba('0x8'));module[_0xddba('0x9')]=function(_0x52b8d4,_0x4f58d1){return _0x52b8d4[_0xddba('0xa')](_0xddba('0xb'),attributes,{'tableName':_0xddba('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x0acd=['../../config/logger','api','moment','bluebird','path','rimraf','../../config/environment','./intZohoConfiguration.attributes','exports','define','ZohoConfiguration','lodash','util'];(function(_0x7267be,_0x56e9f7){var _0x1ee213=function(_0x5cbcdb){while(--_0x5cbcdb){_0x7267be['push'](_0x7267be['shift']());}};_0x1ee213(++_0x56e9f7);}(_0x0acd,0x1c5));var _0xd0ac=function(_0x4c6084,_0x860263){_0x4c6084=_0x4c6084-0x0;var _0x5e090c=_0x0acd[_0x4c6084];return _0x5e090c;};'use strict';var _=require(_0xd0ac('0x0'));var util=require(_0xd0ac('0x1'));var logger=require(_0xd0ac('0x2'))(_0xd0ac('0x3'));var moment=require(_0xd0ac('0x4'));var BPromise=require(_0xd0ac('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xd0ac('0x6'));var rimraf=require(_0xd0ac('0x7'));var config=require(_0xd0ac('0x8'));var attributes=require(_0xd0ac('0x9'));module[_0xd0ac('0xa')]=function(_0x251001,_0x5980a7){return _0x251001[_0xd0ac('0xb')](_0xd0ac('0xc'),attributes,{'tableName':'int_zoho_configurations','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3a6d=['ZohoConfiguration,\x20%s,\x20%s','message','result','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','request','then','info','request\x20sent','debug','ZohoConfiguration,\x20%s,\x20%s,\x20%s','error'];(function(_0x470115,_0x57b9eb){var _0x2e0d23=function(_0x3f1b0d){while(--_0x3f1b0d){_0x470115['push'](_0x470115['shift']());}};_0x2e0d23(++_0x57b9eb);}(_0x3a6d,0x1a1));var _0xd3a6=function(_0x1694f5,_0x49b7c3){_0x1694f5=_0x1694f5-0x0;var _0x5b4321=_0x3a6d[_0x1694f5];return _0x5b4321;};'use strict';var _=require('lodash');var util=require('util');var moment=require('moment');var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xd3a6('0x0'));var db=require(_0xd3a6('0x1'))['db'];var utils=require(_0xd3a6('0x2'));var logger=require(_0xd3a6('0x3'))(_0xd3a6('0x4'));var config=require(_0xd3a6('0x5'));var jayson=require('jayson/promise');var client=jayson[_0xd3a6('0x6')][_0xd3a6('0x7')]({'port':0x232a});function respondWithRpcPromise(_0x17c2ff,_0x134d05,_0x9381e0){return new BPromise(function(_0x36e2f3,_0x329395){return client[_0xd3a6('0x8')](_0x17c2ff,_0x9381e0)[_0xd3a6('0x9')](function(_0x26fcea){logger[_0xd3a6('0xa')]('ZohoConfiguration,\x20%s,\x20%s',_0x134d05,_0xd3a6('0xb'));logger[_0xd3a6('0xc')](_0xd3a6('0xd'),_0x134d05,_0xd3a6('0xb'),JSON['stringify'](_0x26fcea));if(_0x26fcea[_0xd3a6('0xe')]){if(_0x26fcea['error']['code']===0x1f4){logger[_0xd3a6('0xe')](_0xd3a6('0xf'),_0x134d05,_0x26fcea[_0xd3a6('0xe')][_0xd3a6('0x10')]);return _0x329395(_0x26fcea[_0xd3a6('0xe')][_0xd3a6('0x10')]);}logger[_0xd3a6('0xe')]('ZohoConfiguration,\x20%s,\x20%s',_0x134d05,_0x26fcea[_0xd3a6('0xe')]['message']);return _0x36e2f3(_0x26fcea[_0xd3a6('0xe')][_0xd3a6('0x10')]);}else{logger['info'](_0xd3a6('0xf'),_0x134d05,_0xd3a6('0xb'));_0x36e2f3(_0x26fcea[_0xd3a6('0x11')]['message']);}})['catch'](function(_0x4eb97b){logger['error'](_0xd3a6('0xf'),_0x134d05,_0x4eb97b);_0x329395(_0x4eb97b);});});}
\ No newline at end of file
+var _0x7881=['error','code','ZohoConfiguration,\x20%s,\x20%s','message','result','catch','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','request','then','info','request\x20sent','debug','ZohoConfiguration,\x20%s,\x20%s,\x20%s'];(function(_0xf23b09,_0x43ff08){var _0x148b5e=function(_0x1a6d0e){while(--_0x1a6d0e){_0xf23b09['push'](_0xf23b09['shift']());}};_0x148b5e(++_0x43ff08);}(_0x7881,0x10e));var _0x1788=function(_0x413c0d,_0x4d815c){_0x413c0d=_0x413c0d-0x0;var _0x5bba68=_0x7881[_0x413c0d];return _0x5bba68;};'use strict';var _=require(_0x1788('0x0'));var util=require(_0x1788('0x1'));var moment=require(_0x1788('0x2'));var BPromise=require(_0x1788('0x3'));var rs=require(_0x1788('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x1788('0x5'))['db'];var utils=require(_0x1788('0x6'));var logger=require(_0x1788('0x7'))(_0x1788('0x8'));var config=require(_0x1788('0x9'));var jayson=require(_0x1788('0xa'));var client=jayson['client'][_0x1788('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x56e745,_0x3a5c2c,_0x36ce7c){return new BPromise(function(_0x3c9c95,_0x3a61bc){return client[_0x1788('0xc')](_0x56e745,_0x36ce7c)[_0x1788('0xd')](function(_0x1d7a11){logger[_0x1788('0xe')]('ZohoConfiguration,\x20%s,\x20%s',_0x3a5c2c,_0x1788('0xf'));logger[_0x1788('0x10')](_0x1788('0x11'),_0x3a5c2c,_0x1788('0xf'),JSON['stringify'](_0x1d7a11));if(_0x1d7a11[_0x1788('0x12')]){if(_0x1d7a11['error'][_0x1788('0x13')]===0x1f4){logger[_0x1788('0x12')](_0x1788('0x14'),_0x3a5c2c,_0x1d7a11['error'][_0x1788('0x15')]);return _0x3a61bc(_0x1d7a11[_0x1788('0x12')]['message']);}logger['error'](_0x1788('0x14'),_0x3a5c2c,_0x1d7a11[_0x1788('0x12')]['message']);return _0x3c9c95(_0x1d7a11['error'][_0x1788('0x15')]);}else{logger[_0x1788('0xe')]('ZohoConfiguration,\x20%s,\x20%s',_0x3a5c2c,_0x1788('0xf'));_0x3c9c95(_0x1d7a11[_0x1788('0x16')][_0x1788('0x15')]);}})[_0x1788('0x17')](function(_0x3c044c){logger['error'](_0x1788('0x14'),_0x3a5c2c,_0x3c044c);_0x3a61bc(_0x3c044c);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe258=['/:id','show','isAuthenticated','put','update','delete','destroy','exports','util','path','express','fs-extra','../../components/interaction/service','./intZohoField.controller','get','index'];(function(_0x502c7d,_0x2f1285){var _0x30b7ed=function(_0x2d92f3){while(--_0x2d92f3){_0x502c7d['push'](_0x502c7d['shift']());}};_0x30b7ed(++_0x2f1285);}(_0xe258,0x138));var _0x8e25=function(_0x50d0ba,_0x16d0c2){_0x50d0ba=_0x50d0ba-0x0;var _0x5713f2=_0xe258[_0x50d0ba];return _0x5713f2;};'use strict';var multer=require('multer');var util=require(_0x8e25('0x0'));var path=require(_0x8e25('0x1'));var timeout=require('connect-timeout');var express=require(_0x8e25('0x2'));var router=express['Router']();var fs_extra=require(_0x8e25('0x3'));var auth=require('../../components/auth/service');var interaction=require(_0x8e25('0x4'));var config=require('../../config/environment');var controller=require(_0x8e25('0x5'));router[_0x8e25('0x6')]('/',auth['isAuthenticated'](),controller[_0x8e25('0x7')]);router['get'](_0x8e25('0x8'),auth['isAuthenticated'](),controller[_0x8e25('0x9')]);router['post']('/',auth[_0x8e25('0xa')](),controller['create']);router[_0x8e25('0xb')](_0x8e25('0x8'),auth[_0x8e25('0xa')](),controller[_0x8e25('0xc')]);router[_0x8e25('0xd')](_0x8e25('0x8'),auth[_0x8e25('0xa')](),controller[_0x8e25('0xe')]);module[_0x8e25('0xf')]=router;
\ No newline at end of file
+var _0x04dd=['exports','util','path','connect-timeout','../../components/auth/service','../../components/interaction/service','../../config/environment','./intZohoField.controller','get','isAuthenticated','/:id','show','update','delete','destroy'];(function(_0x28cbc0,_0x203516){var _0x4b3cf5=function(_0x2a15c6){while(--_0x2a15c6){_0x28cbc0['push'](_0x28cbc0['shift']());}};_0x4b3cf5(++_0x203516);}(_0x04dd,0x196));var _0xd04d=function(_0x4cfb78,_0x4c1da6){_0x4cfb78=_0x4cfb78-0x0;var _0xc1250e=_0x04dd[_0x4cfb78];return _0xc1250e;};'use strict';var multer=require('multer');var util=require(_0xd04d('0x0'));var path=require(_0xd04d('0x1'));var timeout=require(_0xd04d('0x2'));var express=require('express');var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0xd04d('0x3'));var interaction=require(_0xd04d('0x4'));var config=require(_0xd04d('0x5'));var controller=require(_0xd04d('0x6'));router[_0xd04d('0x7')]('/',auth[_0xd04d('0x8')](),controller['index']);router[_0xd04d('0x7')](_0xd04d('0x9'),auth[_0xd04d('0x8')](),controller[_0xd04d('0xa')]);router['post']('/',auth[_0xd04d('0x8')](),controller['create']);router['put'](_0xd04d('0x9'),auth[_0xd04d('0x8')](),controller[_0xd04d('0xb')]);router[_0xd04d('0xc')](_0xd04d('0x9'),auth[_0xd04d('0x8')](),controller[_0xd04d('0xd')]);module[_0xd04d('0xe')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x02bd=['string','variable','STRING','BOOLEAN','exports','ENUM'];(function(_0x34ad72,_0x1e43f6){var _0x5c9aa8=function(_0x144388){while(--_0x144388){_0x34ad72['push'](_0x34ad72['shift']());}};_0x5c9aa8(++_0x1e43f6);}(_0x02bd,0xe8));var _0xd02b=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x02bd[_0x321bb2];return _0x9c12ed;};'use strict';var Sequelize=require('sequelize');module[_0xd02b('0x0')]={'type':{'type':Sequelize[_0xd02b('0x1')](_0xd02b('0x2'),_0xd02b('0x3'),'customVariable','keyValue','picklist'),'defaultValue':'string'},'content':{'type':Sequelize[_0xd02b('0x4')]},'key':{'type':Sequelize[_0xd02b('0x4')]},'keyType':{'type':Sequelize[_0xd02b('0x1')](_0xd02b('0x2'),'variable','customVariable')},'keyContent':{'type':Sequelize[_0xd02b('0x4')]},'idField':{'type':Sequelize['STRING']},'nameField':{'type':Sequelize['STRING']},'customField':{'type':Sequelize[_0xd02b('0x5')],'defaultValue':!![]},'variableName':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0x1af5=['BOOLEAN','sequelize','exports','ENUM','string','variable','picklist','STRING','customVariable'];(function(_0x58bc9c,_0x22e619){var _0x5ecda2=function(_0x23daec){while(--_0x23daec){_0x58bc9c['push'](_0x58bc9c['shift']());}};_0x5ecda2(++_0x22e619);}(_0x1af5,0x6d));var _0x51af=function(_0x1802c0,_0x108661){_0x1802c0=_0x1802c0-0x0;var _0x300678=_0x1af5[_0x1802c0];return _0x300678;};'use strict';var Sequelize=require(_0x51af('0x0'));module[_0x51af('0x1')]={'type':{'type':Sequelize[_0x51af('0x2')](_0x51af('0x3'),_0x51af('0x4'),'customVariable','keyValue',_0x51af('0x5')),'defaultValue':_0x51af('0x3')},'content':{'type':Sequelize[_0x51af('0x6')]},'key':{'type':Sequelize[_0x51af('0x6')]},'keyType':{'type':Sequelize['ENUM'](_0x51af('0x3'),_0x51af('0x4'),_0x51af('0x7'))},'keyContent':{'type':Sequelize[_0x51af('0x6')]},'idField':{'type':Sequelize[_0x51af('0x6')]},'nameField':{'type':Sequelize['STRING']},'customField':{'type':Sequelize[_0x51af('0x8')],'defaultValue':!![]},'variableName':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1104=['error','stack','name','send','index','rawAttributes','fieldName','type','query','keys','intersection','model','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','merge','map','filter','options','ZohoField','includeAll','findAll','rows','catch','show','params','include','find','create','body','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','sox','to-csv','ejs','lodash','crypto','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','status','json','offset','limit','undefined','count','set','Content-Range','reject','save','update','then','destroy','end','sendStatus'];(function(_0x12d6c2,_0x409bc8){var _0x1c9825=function(_0x569f66){while(--_0x569f66){_0x12d6c2['push'](_0x12d6c2['shift']());}};_0x1c9825(++_0x409bc8);}(_0x1104,0xbd));var _0x4110=function(_0x4e38ba,_0x4e9446){_0x4e38ba=_0x4e38ba-0x0;var _0x456072=_0x1104[_0x4e38ba];return _0x456072;};'use strict';var emlformat=require(_0x4110('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x4110('0x1'));var jsonpatch=require(_0x4110('0x2'));var rp=require(_0x4110('0x3'));var moment=require(_0x4110('0x4'));var BPromise=require(_0x4110('0x5'));var Mustache=require('mustache');var util=require(_0x4110('0x6'));var path=require('path');var sox=require(_0x4110('0x7'));var csv=require(_0x4110('0x8'));var ejs=require(_0x4110('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x4110('0xa'));var squel=require('squel');var crypto=require(_0x4110('0xb'));var jsforce=require('jsforce');var deskjs=require(_0x4110('0xc'));var toCsv=require(_0x4110('0x8'));var querystring=require(_0x4110('0xd'));var Papa=require(_0x4110('0xe'));var Redis=require(_0x4110('0xf'));var authService=require(_0x4110('0x10'));var qs=require(_0x4110('0x11'));var as=require(_0x4110('0x12'));var hardwareService=require(_0x4110('0x13'));var logger=require(_0x4110('0x14'))(_0x4110('0x15'));var utils=require(_0x4110('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0x4110('0x17'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x32684d,_0xd35b93){_0xd35b93=_0xd35b93||0xcc;return function(_0x3e1c45){if(_0x3e1c45){return _0x32684d['sendStatus'](_0xd35b93);}return _0x32684d['status'](_0xd35b93)['end']();};}function respondWithResult(_0x5a4ec4,_0x3f2d63){_0x3f2d63=_0x3f2d63||0xc8;return function(_0x396cc8){if(_0x396cc8){return _0x5a4ec4[_0x4110('0x18')](_0x3f2d63)[_0x4110('0x19')](_0x396cc8);}};}function respondWithFilteredResult(_0x7d6a44,_0x5ba9fa){return function(_0x27f8a8){if(_0x27f8a8){var _0x5d4ba6=typeof _0x5ba9fa[_0x4110('0x1a')]==='undefined'&&typeof _0x5ba9fa[_0x4110('0x1b')]===_0x4110('0x1c');var _0x5b3302=_0x27f8a8[_0x4110('0x1d')];var _0x299fac=_0x5d4ba6?0x0:_0x5ba9fa['offset'];var _0x366b08=_0x5d4ba6?_0x27f8a8[_0x4110('0x1d')]:_0x5ba9fa[_0x4110('0x1a')]+_0x5ba9fa[_0x4110('0x1b')];var _0x4989e8;if(_0x366b08>=_0x5b3302){_0x366b08=_0x5b3302;_0x4989e8=0xc8;}else{_0x4989e8=0xce;}_0x7d6a44['status'](_0x4989e8);return _0x7d6a44[_0x4110('0x1e')](_0x4110('0x1f'),_0x299fac+'-'+_0x366b08+'/'+_0x5b3302)[_0x4110('0x19')](_0x27f8a8);}return null;};}function patchUpdates(_0x12daf5){return function(_0x22950f){try{jsonpatch['apply'](_0x22950f,_0x12daf5,!![]);}catch(_0x203005){return BPromise[_0x4110('0x20')](_0x203005);}return _0x22950f[_0x4110('0x21')]();};}function saveUpdates(_0x1cdb03,_0x45f6d5){return function(_0x305467){if(_0x305467){return _0x305467[_0x4110('0x22')](_0x1cdb03)[_0x4110('0x23')](function(_0x544921){return _0x544921;});}return null;};}function removeEntity(_0x4a1df8,_0x1c272f){return function(_0x242bc3){if(_0x242bc3){return _0x242bc3[_0x4110('0x24')]()[_0x4110('0x23')](function(){_0x4a1df8['status'](0xcc)[_0x4110('0x25')]();});}};}function handleEntityNotFound(_0x4910ed,_0x461e09){return function(_0x2e3d8b){if(!_0x2e3d8b){_0x4910ed[_0x4110('0x26')](0x194);}return _0x2e3d8b;};}function handleError(_0x58ecdd,_0x22955d){_0x22955d=_0x22955d||0x1f4;return function(_0x1f391f){logger[_0x4110('0x27')](_0x1f391f[_0x4110('0x28')]);if(_0x1f391f[_0x4110('0x29')]){delete _0x1f391f['name'];}_0x58ecdd[_0x4110('0x18')](_0x22955d)[_0x4110('0x2a')](_0x1f391f);};}exports[_0x4110('0x2b')]=function(_0x80ab2b,_0x37c259){var _0x5e69c8={},_0x182eb8={},_0x4e09df={'count':0x0,'rows':[]};var _0x5c6166=_['map'](db['ZohoField'][_0x4110('0x2c')],function(_0x5bf131){return{'name':_0x5bf131[_0x4110('0x2d')],'type':_0x5bf131[_0x4110('0x2e')]['key']};});_0x182eb8['model']=_['map'](_0x5c6166,_0x4110('0x29'));_0x182eb8[_0x4110('0x2f')]=_[_0x4110('0x30')](_0x80ab2b[_0x4110('0x2f')]);_0x182eb8['filters']=_[_0x4110('0x31')](_0x182eb8[_0x4110('0x32')],_0x182eb8[_0x4110('0x2f')]);_0x5e69c8['attributes']=_[_0x4110('0x31')](_0x182eb8['model'],qs[_0x4110('0x33')](_0x80ab2b[_0x4110('0x2f')][_0x4110('0x33')]));_0x5e69c8['attributes']=_0x5e69c8[_0x4110('0x34')][_0x4110('0x35')]?_0x5e69c8['attributes']:_0x182eb8[_0x4110('0x32')];if(!_0x80ab2b[_0x4110('0x2f')][_0x4110('0x36')](_0x4110('0x37'))){_0x5e69c8[_0x4110('0x1b')]=qs[_0x4110('0x1b')](_0x80ab2b[_0x4110('0x2f')][_0x4110('0x1b')]);_0x5e69c8['offset']=qs[_0x4110('0x1a')](_0x80ab2b['query'][_0x4110('0x1a')]);}_0x5e69c8[_0x4110('0x38')]=qs[_0x4110('0x39')](_0x80ab2b[_0x4110('0x2f')][_0x4110('0x39')]);_0x5e69c8[_0x4110('0x3a')]=qs[_0x4110('0x3b')](_[_0x4110('0x3c')](_0x80ab2b['query'],_0x182eb8[_0x4110('0x3b')]),_0x5c6166);if(_0x80ab2b[_0x4110('0x2f')]['filter']){_0x5e69c8[_0x4110('0x3a')]=_[_0x4110('0x3d')](_0x5e69c8['where'],{'$or':_[_0x4110('0x3e')](_0x5c6166,function(_0x2045cd){if(_0x2045cd[_0x4110('0x2e')]!=='VIRTUAL'){var _0x1703e2={};_0x1703e2[_0x2045cd[_0x4110('0x29')]]={'$like':'%'+_0x80ab2b[_0x4110('0x2f')][_0x4110('0x3f')]+'%'};return _0x1703e2;}})});}_0x5e69c8=_[_0x4110('0x3d')]({},_0x5e69c8,_0x80ab2b[_0x4110('0x40')]);var _0x51afc0={'where':_0x5e69c8[_0x4110('0x3a')]};return db[_0x4110('0x41')]['count'](_0x51afc0)['then'](function(_0x3f1cd6){_0x4e09df[_0x4110('0x1d')]=_0x3f1cd6;if(_0x80ab2b[_0x4110('0x2f')][_0x4110('0x42')]){_0x5e69c8['include']=[{'all':!![]}];}return db[_0x4110('0x41')][_0x4110('0x43')](_0x5e69c8);})[_0x4110('0x23')](function(_0x180e75){_0x4e09df[_0x4110('0x44')]=_0x180e75;return _0x4e09df;})[_0x4110('0x23')](respondWithFilteredResult(_0x37c259,_0x5e69c8))[_0x4110('0x45')](handleError(_0x37c259,null));};exports[_0x4110('0x46')]=function(_0x5536b6,_0x254283){var _0x527f04={'raw':!![],'where':{'id':_0x5536b6[_0x4110('0x47')]['id']}},_0x3e2124={};_0x3e2124[_0x4110('0x32')]=_['keys'](db['ZohoField'][_0x4110('0x2c')]);_0x3e2124[_0x4110('0x2f')]=_['keys'](_0x5536b6[_0x4110('0x2f')]);_0x3e2124['filters']=_[_0x4110('0x31')](_0x3e2124['model'],_0x3e2124[_0x4110('0x2f')]);_0x527f04[_0x4110('0x34')]=_[_0x4110('0x31')](_0x3e2124[_0x4110('0x32')],qs['fields'](_0x5536b6[_0x4110('0x2f')][_0x4110('0x33')]));_0x527f04['attributes']=_0x527f04['attributes']['length']?_0x527f04[_0x4110('0x34')]:_0x3e2124[_0x4110('0x32')];if(_0x5536b6[_0x4110('0x2f')]['includeAll']){_0x527f04[_0x4110('0x48')]=[{'all':!![]}];}_0x527f04=_[_0x4110('0x3d')]({},_0x527f04,_0x5536b6[_0x4110('0x40')]);return db[_0x4110('0x41')][_0x4110('0x49')](_0x527f04)[_0x4110('0x23')](handleEntityNotFound(_0x254283,null))['then'](respondWithResult(_0x254283,null))[_0x4110('0x45')](handleError(_0x254283,null));};exports[_0x4110('0x4a')]=function(_0x49b0bd,_0x1cd309){return db[_0x4110('0x41')]['create'](_0x49b0bd['body'],{})['then'](respondWithResult(_0x1cd309,0xc9))[_0x4110('0x45')](handleError(_0x1cd309,null));};exports[_0x4110('0x22')]=function(_0x51d101,_0x15c6b1){if(_0x51d101[_0x4110('0x4b')]['id']){delete _0x51d101[_0x4110('0x4b')]['id'];}return db[_0x4110('0x41')][_0x4110('0x49')]({'where':{'id':_0x51d101[_0x4110('0x47')]['id']}})['then'](handleEntityNotFound(_0x15c6b1,null))[_0x4110('0x23')](saveUpdates(_0x51d101['body'],null))['then'](respondWithResult(_0x15c6b1,null))[_0x4110('0x45')](handleError(_0x15c6b1,null));};exports[_0x4110('0x24')]=function(_0x4d10d8,_0x4885ea){return db['ZohoField']['find']({'where':{'id':_0x4d10d8['params']['id']}})[_0x4110('0x23')](handleEntityNotFound(_0x4885ea,null))[_0x4110('0x23')](removeEntity(_0x4885ea,null))[_0x4110('0x45')](handleError(_0x4885ea,null));};
\ No newline at end of file
+var _0x9e9e=['sox','ejs','fs-extra','squel','crypto','jsforce','desk.js','to-csv','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','status','end','json','offset','limit','undefined','count','apply','reject','update','then','destroy','error','name','index','map','fieldName','type','key','model','query','keys','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','filters','filter','VIRTUAL','merge','options','ZohoField','includeAll','include','findAll','catch','show','length','find','body','params','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path'];(function(_0x44dd66,_0x37105f){var _0x2c6fe3=function(_0x5ab777){while(--_0x5ab777){_0x44dd66['push'](_0x44dd66['shift']());}};_0x2c6fe3(++_0x37105f);}(_0x9e9e,0x88));var _0xe9e9=function(_0x476bf4,_0x2a3755){_0x476bf4=_0x476bf4-0x0;var _0x788ffe=_0x9e9e[_0x476bf4];return _0x788ffe;};'use strict';var emlformat=require(_0xe9e9('0x0'));var rimraf=require(_0xe9e9('0x1'));var zipdir=require(_0xe9e9('0x2'));var jsonpatch=require(_0xe9e9('0x3'));var rp=require(_0xe9e9('0x4'));var moment=require(_0xe9e9('0x5'));var BPromise=require(_0xe9e9('0x6'));var Mustache=require(_0xe9e9('0x7'));var util=require(_0xe9e9('0x8'));var path=require(_0xe9e9('0x9'));var sox=require(_0xe9e9('0xa'));var csv=require('to-csv');var ejs=require(_0xe9e9('0xb'));var fs=require('fs');var fs_extra=require(_0xe9e9('0xc'));var _=require('lodash');var squel=require(_0xe9e9('0xd'));var crypto=require(_0xe9e9('0xe'));var jsforce=require(_0xe9e9('0xf'));var deskjs=require(_0xe9e9('0x10'));var toCsv=require(_0xe9e9('0x11'));var querystring=require(_0xe9e9('0x12'));var Papa=require('papaparse');var Redis=require(_0xe9e9('0x13'));var authService=require(_0xe9e9('0x14'));var qs=require(_0xe9e9('0x15'));var as=require(_0xe9e9('0x16'));var hardwareService=require(_0xe9e9('0x17'));var logger=require(_0xe9e9('0x18'))('api');var utils=require(_0xe9e9('0x19'));var config=require('../../config/environment');var licenseUtil=require(_0xe9e9('0x1a'));var db=require(_0xe9e9('0x1b'))['db'];function respondWithStatusCode(_0x47d70c,_0x4cc6c1){_0x4cc6c1=_0x4cc6c1||0xcc;return function(_0x55d28f){if(_0x55d28f){return _0x47d70c['sendStatus'](_0x4cc6c1);}return _0x47d70c[_0xe9e9('0x1c')](_0x4cc6c1)[_0xe9e9('0x1d')]();};}function respondWithResult(_0x346553,_0x2d9a0e){_0x2d9a0e=_0x2d9a0e||0xc8;return function(_0x889c3e){if(_0x889c3e){return _0x346553[_0xe9e9('0x1c')](_0x2d9a0e)[_0xe9e9('0x1e')](_0x889c3e);}};}function respondWithFilteredResult(_0x264189,_0x25a383){return function(_0x24b54b){if(_0x24b54b){var _0x47bcd0=typeof _0x25a383[_0xe9e9('0x1f')]==='undefined'&&typeof _0x25a383[_0xe9e9('0x20')]===_0xe9e9('0x21');var _0x1f69c0=_0x24b54b[_0xe9e9('0x22')];var _0x2b560c=_0x47bcd0?0x0:_0x25a383[_0xe9e9('0x1f')];var _0xb13d8b=_0x47bcd0?_0x24b54b[_0xe9e9('0x22')]:_0x25a383[_0xe9e9('0x1f')]+_0x25a383[_0xe9e9('0x20')];var _0x2163d4;if(_0xb13d8b>=_0x1f69c0){_0xb13d8b=_0x1f69c0;_0x2163d4=0xc8;}else{_0x2163d4=0xce;}_0x264189['status'](_0x2163d4);return _0x264189['set']('Content-Range',_0x2b560c+'-'+_0xb13d8b+'/'+_0x1f69c0)[_0xe9e9('0x1e')](_0x24b54b);}return null;};}function patchUpdates(_0x29a7eb){return function(_0x1c910d){try{jsonpatch[_0xe9e9('0x23')](_0x1c910d,_0x29a7eb,!![]);}catch(_0x529053){return BPromise[_0xe9e9('0x24')](_0x529053);}return _0x1c910d['save']();};}function saveUpdates(_0xbb261d,_0x97b179){return function(_0x5e8181){if(_0x5e8181){return _0x5e8181[_0xe9e9('0x25')](_0xbb261d)[_0xe9e9('0x26')](function(_0x4fc969){return _0x4fc969;});}return null;};}function removeEntity(_0x3f36b3,_0x55005e){return function(_0x1283d5){if(_0x1283d5){return _0x1283d5[_0xe9e9('0x27')]()[_0xe9e9('0x26')](function(){_0x3f36b3[_0xe9e9('0x1c')](0xcc)[_0xe9e9('0x1d')]();});}};}function handleEntityNotFound(_0x70c876,_0x1d64bc){return function(_0x154c09){if(!_0x154c09){_0x70c876['sendStatus'](0x194);}return _0x154c09;};}function handleError(_0x112df9,_0x3bd137){_0x3bd137=_0x3bd137||0x1f4;return function(_0x2d3156){logger[_0xe9e9('0x28')](_0x2d3156['stack']);if(_0x2d3156[_0xe9e9('0x29')]){delete _0x2d3156['name'];}_0x112df9[_0xe9e9('0x1c')](_0x3bd137)['send'](_0x2d3156);};}exports[_0xe9e9('0x2a')]=function(_0xcc5010,_0x30363f){var _0x594d3d={},_0x288622={},_0x1cbfe2={'count':0x0,'rows':[]};var _0x28e3b9=_[_0xe9e9('0x2b')](db['ZohoField']['rawAttributes'],function(_0x45996d){return{'name':_0x45996d[_0xe9e9('0x2c')],'type':_0x45996d[_0xe9e9('0x2d')][_0xe9e9('0x2e')]};});_0x288622[_0xe9e9('0x2f')]=_[_0xe9e9('0x2b')](_0x28e3b9,'name');_0x288622[_0xe9e9('0x30')]=_[_0xe9e9('0x31')](_0xcc5010[_0xe9e9('0x30')]);_0x288622['filters']=_[_0xe9e9('0x32')](_0x288622[_0xe9e9('0x2f')],_0x288622[_0xe9e9('0x30')]);_0x594d3d[_0xe9e9('0x33')]=_[_0xe9e9('0x32')](_0x288622['model'],qs[_0xe9e9('0x34')](_0xcc5010[_0xe9e9('0x30')][_0xe9e9('0x34')]));_0x594d3d[_0xe9e9('0x33')]=_0x594d3d[_0xe9e9('0x33')]['length']?_0x594d3d[_0xe9e9('0x33')]:_0x288622['model'];if(!_0xcc5010[_0xe9e9('0x30')][_0xe9e9('0x35')](_0xe9e9('0x36'))){_0x594d3d[_0xe9e9('0x20')]=qs['limit'](_0xcc5010[_0xe9e9('0x30')][_0xe9e9('0x20')]);_0x594d3d[_0xe9e9('0x1f')]=qs[_0xe9e9('0x1f')](_0xcc5010[_0xe9e9('0x30')][_0xe9e9('0x1f')]);}_0x594d3d[_0xe9e9('0x37')]=qs[_0xe9e9('0x38')](_0xcc5010[_0xe9e9('0x30')][_0xe9e9('0x38')]);_0x594d3d[_0xe9e9('0x39')]=qs['filters'](_['pick'](_0xcc5010[_0xe9e9('0x30')],_0x288622[_0xe9e9('0x3a')]),_0x28e3b9);if(_0xcc5010['query'][_0xe9e9('0x3b')]){_0x594d3d['where']=_['merge'](_0x594d3d['where'],{'$or':_[_0xe9e9('0x2b')](_0x28e3b9,function(_0x519fa8){if(_0x519fa8['type']!==_0xe9e9('0x3c')){var _0x24eb3d={};_0x24eb3d[_0x519fa8[_0xe9e9('0x29')]]={'$like':'%'+_0xcc5010[_0xe9e9('0x30')][_0xe9e9('0x3b')]+'%'};return _0x24eb3d;}})});}_0x594d3d=_[_0xe9e9('0x3d')]({},_0x594d3d,_0xcc5010[_0xe9e9('0x3e')]);var _0x59633d={'where':_0x594d3d[_0xe9e9('0x39')]};return db[_0xe9e9('0x3f')][_0xe9e9('0x22')](_0x59633d)[_0xe9e9('0x26')](function(_0x54f52d){_0x1cbfe2[_0xe9e9('0x22')]=_0x54f52d;if(_0xcc5010[_0xe9e9('0x30')][_0xe9e9('0x40')]){_0x594d3d[_0xe9e9('0x41')]=[{'all':!![]}];}return db[_0xe9e9('0x3f')][_0xe9e9('0x42')](_0x594d3d);})[_0xe9e9('0x26')](function(_0x11de0d){_0x1cbfe2['rows']=_0x11de0d;return _0x1cbfe2;})[_0xe9e9('0x26')](respondWithFilteredResult(_0x30363f,_0x594d3d))[_0xe9e9('0x43')](handleError(_0x30363f,null));};exports[_0xe9e9('0x44')]=function(_0x2e3aff,_0x12a5a7){var _0x52d6b8={'raw':!![],'where':{'id':_0x2e3aff['params']['id']}},_0x1f17c1={};_0x1f17c1[_0xe9e9('0x2f')]=_[_0xe9e9('0x31')](db[_0xe9e9('0x3f')]['rawAttributes']);_0x1f17c1[_0xe9e9('0x30')]=_[_0xe9e9('0x31')](_0x2e3aff[_0xe9e9('0x30')]);_0x1f17c1[_0xe9e9('0x3a')]=_[_0xe9e9('0x32')](_0x1f17c1[_0xe9e9('0x2f')],_0x1f17c1[_0xe9e9('0x30')]);_0x52d6b8[_0xe9e9('0x33')]=_['intersection'](_0x1f17c1[_0xe9e9('0x2f')],qs[_0xe9e9('0x34')](_0x2e3aff[_0xe9e9('0x30')][_0xe9e9('0x34')]));_0x52d6b8[_0xe9e9('0x33')]=_0x52d6b8['attributes'][_0xe9e9('0x45')]?_0x52d6b8[_0xe9e9('0x33')]:_0x1f17c1[_0xe9e9('0x2f')];if(_0x2e3aff[_0xe9e9('0x30')]['includeAll']){_0x52d6b8['include']=[{'all':!![]}];}_0x52d6b8=_[_0xe9e9('0x3d')]({},_0x52d6b8,_0x2e3aff[_0xe9e9('0x3e')]);return db[_0xe9e9('0x3f')][_0xe9e9('0x46')](_0x52d6b8)[_0xe9e9('0x26')](handleEntityNotFound(_0x12a5a7,null))[_0xe9e9('0x26')](respondWithResult(_0x12a5a7,null))[_0xe9e9('0x43')](handleError(_0x12a5a7,null));};exports['create']=function(_0x37b15d,_0x443db9){return db[_0xe9e9('0x3f')]['create'](_0x37b15d[_0xe9e9('0x47')],{})[_0xe9e9('0x26')](respondWithResult(_0x443db9,0xc9))[_0xe9e9('0x43')](handleError(_0x443db9,null));};exports[_0xe9e9('0x25')]=function(_0x50e629,_0x49b709){if(_0x50e629[_0xe9e9('0x47')]['id']){delete _0x50e629[_0xe9e9('0x47')]['id'];}return db[_0xe9e9('0x3f')][_0xe9e9('0x46')]({'where':{'id':_0x50e629[_0xe9e9('0x48')]['id']}})['then'](handleEntityNotFound(_0x49b709,null))[_0xe9e9('0x26')](saveUpdates(_0x50e629[_0xe9e9('0x47')],null))[_0xe9e9('0x26')](respondWithResult(_0x49b709,null))[_0xe9e9('0x43')](handleError(_0x49b709,null));};exports[_0xe9e9('0x27')]=function(_0x57538d,_0x6b9714){return db[_0xe9e9('0x3f')][_0xe9e9('0x46')]({'where':{'id':_0x57538d[_0xe9e9('0x48')]['id']}})['then'](handleEntityNotFound(_0x6b9714,null))[_0xe9e9('0x26')](removeEntity(_0x6b9714,null))[_0xe9e9('0x43')](handleError(_0x6b9714,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9582=['util','../../config/logger','api','moment','bluebird','path','rimraf','../../config/environment','./intZohoField.attributes','exports','define','ZohoField','int_zoho_fields','FieldId','lodash'];(function(_0x24ee09,_0x3816de){var _0x182d23=function(_0x505409){while(--_0x505409){_0x24ee09['push'](_0x24ee09['shift']());}};_0x182d23(++_0x3816de);}(_0x9582,0x95));var _0x2958=function(_0x4d52fe,_0x4b4671){_0x4d52fe=_0x4d52fe-0x0;var _0x42a112=_0x9582[_0x4d52fe];return _0x42a112;};'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':[{'name':'zoho_unique_index','fields':['idField',_0x2958('0xe')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x2272=['define','ZohoField','int_zoho_fields','zoho_unique_index','idField','FieldId','lodash','util','../../config/logger','api','moment','request-promise','path','rimraf','exports'];(function(_0x10a3c8,_0x58ede0){var _0x2828b3=function(_0x468554){while(--_0x468554){_0x10a3c8['push'](_0x10a3c8['shift']());}};_0x2828b3(++_0x58ede0);}(_0x2272,0xd8));var _0x2227=function(_0xa464c9,_0x7c86d8){_0xa464c9=_0xa464c9-0x0;var _0x3d73c4=_0x2272[_0xa464c9];return _0x3d73c4;};'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('./intZohoField.attributes');module[_0x2227('0x8')]=function(_0x3b8661,_0xb33647){return _0x3b8661[_0x2227('0x9')](_0x2227('0xa'),attributes,{'tableName':_0x2227('0xb'),'paranoid':![],'indexes':[{'name':_0x2227('0xc'),'fields':[_0x2227('0xd'),_0x2227('0xe')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3fca=['ZohoField,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info'];(function(_0x5a9404,_0xc17c61){var _0x4ca647=function(_0x28f1aa){while(--_0x28f1aa){_0x5a9404['push'](_0x5a9404['shift']());}};_0x4ca647(++_0xc17c61);}(_0x3fca,0x125));var _0xa3fc=function(_0x20b1fb,_0x581917){_0x20b1fb=_0x20b1fb-0x0;var _0x5af88a=_0x3fca[_0x20b1fb];return _0x5af88a;};'use strict';var _=require(_0xa3fc('0x0'));var util=require('util');var moment=require(_0xa3fc('0x1'));var BPromise=require(_0xa3fc('0x2'));var rs=require(_0xa3fc('0x3'));var fs=require('fs');var Redis=require(_0xa3fc('0x4'));var db=require(_0xa3fc('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0xa3fc('0x6'))(_0xa3fc('0x7'));var config=require(_0xa3fc('0x8'));var jayson=require(_0xa3fc('0x9'));var client=jayson[_0xa3fc('0xa')][_0xa3fc('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x2a0411,_0xf6c642,_0x54a56f){return new BPromise(function(_0x3d37d1,_0x597e85){return client[_0xa3fc('0xc')](_0x2a0411,_0x54a56f)[_0xa3fc('0xd')](function(_0x5e93c2){logger[_0xa3fc('0xe')](_0xa3fc('0xf'),_0xf6c642,_0xa3fc('0x10'));logger[_0xa3fc('0x11')]('ZohoField,\x20%s,\x20%s,\x20%s',_0xf6c642,'request\x20sent',JSON[_0xa3fc('0x12')](_0x5e93c2));if(_0x5e93c2[_0xa3fc('0x13')]){if(_0x5e93c2[_0xa3fc('0x13')][_0xa3fc('0x14')]===0x1f4){logger[_0xa3fc('0x13')](_0xa3fc('0xf'),_0xf6c642,_0x5e93c2[_0xa3fc('0x13')][_0xa3fc('0x15')]);return _0x597e85(_0x5e93c2[_0xa3fc('0x13')][_0xa3fc('0x15')]);}logger[_0xa3fc('0x13')]('ZohoField,\x20%s,\x20%s',_0xf6c642,_0x5e93c2['error']['message']);return _0x3d37d1(_0x5e93c2[_0xa3fc('0x13')][_0xa3fc('0x15')]);}else{logger[_0xa3fc('0xe')](_0xa3fc('0xf'),_0xf6c642,'request\x20sent');_0x3d37d1(_0x5e93c2['result'][_0xa3fc('0x15')]);}})['catch'](function(_0x11f044){logger[_0xa3fc('0x13')](_0xa3fc('0xf'),_0xf6c642,_0x11f044);_0x597e85(_0x11f044);});});}
\ No newline at end of file
+var _0xdd20=['bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','client','http','then','ZohoField,\x20%s,\x20%s','request\x20sent','debug','ZohoField,\x20%s,\x20%s,\x20%s','error','message','info','result','catch','lodash','moment'];(function(_0x5db657,_0x2f40b3){var _0x2d6e70=function(_0x358ed2){while(--_0x358ed2){_0x5db657['push'](_0x5db657['shift']());}};_0x2d6e70(++_0x2f40b3);}(_0xdd20,0x10f));var _0x0dd2=function(_0x46a5bd,_0x4f8cc1){_0x46a5bd=_0x46a5bd-0x0;var _0x441aaa=_0xdd20[_0x46a5bd];return _0x441aaa;};'use strict';var _=require(_0x0dd2('0x0'));var util=require('util');var moment=require(_0x0dd2('0x1'));var BPromise=require(_0x0dd2('0x2'));var rs=require(_0x0dd2('0x3'));var fs=require('fs');var Redis=require(_0x0dd2('0x4'));var db=require(_0x0dd2('0x5'))['db'];var utils=require(_0x0dd2('0x6'));var logger=require(_0x0dd2('0x7'))('rpc');var config=require(_0x0dd2('0x8'));var jayson=require('jayson/promise');var client=jayson[_0x0dd2('0x9')][_0x0dd2('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x1f74b8,_0x2388f9,_0x2bcada){return new BPromise(function(_0x577216,_0x37e617){return client['request'](_0x1f74b8,_0x2bcada)[_0x0dd2('0xb')](function(_0x351c39){logger['info'](_0x0dd2('0xc'),_0x2388f9,_0x0dd2('0xd'));logger[_0x0dd2('0xe')](_0x0dd2('0xf'),_0x2388f9,_0x0dd2('0xd'),JSON['stringify'](_0x351c39));if(_0x351c39[_0x0dd2('0x10')]){if(_0x351c39['error']['code']===0x1f4){logger[_0x0dd2('0x10')]('ZohoField,\x20%s,\x20%s',_0x2388f9,_0x351c39[_0x0dd2('0x10')][_0x0dd2('0x11')]);return _0x37e617(_0x351c39[_0x0dd2('0x10')][_0x0dd2('0x11')]);}logger['error'](_0x0dd2('0xc'),_0x2388f9,_0x351c39['error'][_0x0dd2('0x11')]);return _0x577216(_0x351c39['error'][_0x0dd2('0x11')]);}else{logger[_0x0dd2('0x12')](_0x0dd2('0xc'),_0x2388f9,_0x0dd2('0xd'));_0x577216(_0x351c39[_0x0dd2('0x13')][_0x0dd2('0x11')]);}})[_0x0dd2('0x14')](function(_0x59aa03){logger[_0x0dd2('0x10')]('ZohoField,\x20%s,\x20%s',_0x2388f9,_0x59aa03);_0x37e617(_0x59aa03);});});}
\ 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(_0x42fbdd,_0xbb21a3){var _0x525b95=function(_0x330481){while(--_0x330481){_0x42fbdd['push'](_0x42fbdd['shift']());}};_0x525b95(++_0xbb21a3);}(_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 _0xcb91=['express','Router','../../components/auth/service','../../components/interaction/service','exports','path','connect-timeout'];(function(_0xaac15d,_0x108805){var _0x59504f=function(_0x3fb336){while(--_0x3fb336){_0xaac15d['push'](_0xaac15d['shift']());}};_0x59504f(++_0x108805);}(_0xcb91,0x1a9));var _0x1cb9=function(_0x143565,_0x54d887){_0x143565=_0x143565-0x0;var _0x4dc1d9=_0xcb91[_0x143565];return _0x4dc1d9;};'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 _0x4cdf=['sequelize','exports','STRING','unique_name_and_version','app.js','INTEGER','BOOLEAN','state'];(function(_0x29e3e4,_0x370df9){var _0x4f98e7=function(_0x2c78a4){while(--_0x2c78a4){_0x29e3e4['push'](_0x29e3e4['shift']());}};_0x4f98e7(++_0x370df9);}(_0x4cdf,0x180));var _0xf4cd=function(_0x4d048e,_0x5c1599){_0x4d048e=_0x4d048e-0x0;var _0x577ebc=_0x4cdf[_0x4d048e];return _0x577ebc;};'use strict';var Sequelize=require(_0xf4cd('0x0'));module[_0xf4cd('0x1')]={'name':{'type':Sequelize[_0xf4cd('0x2')],'allowNull':![],'unique':_0xf4cd('0x3')},'version':{'type':Sequelize[_0xf4cd('0x2')],'allowNull':![],'unique':_0xf4cd('0x3')},'main':{'type':Sequelize['STRING'],'defaultValue':_0xf4cd('0x4')},'filename':{'type':Sequelize[_0xf4cd('0x2')]},'path':{'type':Sequelize['STRING']},'type':{'type':Sequelize[_0xf4cd('0x2')]},'size':{'type':Sequelize[_0xf4cd('0x5')]},'active':{'type':Sequelize[_0xf4cd('0x6')],'defaultValue':![]},'author':{'type':Sequelize[_0xf4cd('0x2')]},'logo':{'type':Sequelize[_0xf4cd('0x2')]},'state':{'type':Sequelize['STRING'],'unique':_0xf4cd('0x7')},'description':{'type':Sequelize[_0xf4cd('0x2')]},'title':{'type':Sequelize[_0xf4cd('0x2')]},'remoteUri':{'type':Sequelize[_0xf4cd('0x2')]},'link':{'type':Sequelize['STRING'],'defaultValue':'#'}};
\ No newline at end of file
+var _0xfa5d=['INTEGER','state','sequelize','STRING','unique_name_and_version','app.js'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0xfa5d,0x140));var _0xdfa5=function(_0x3ab36,_0x439948){_0x3ab36=_0x3ab36-0x0;var _0x4a6f96=_0xfa5d[_0x3ab36];return _0x4a6f96;};'use strict';var Sequelize=require(_0xdfa5('0x0'));module['exports']={'name':{'type':Sequelize[_0xdfa5('0x1')],'allowNull':![],'unique':'unique_name_and_version'},'version':{'type':Sequelize[_0xdfa5('0x1')],'allowNull':![],'unique':_0xdfa5('0x2')},'main':{'type':Sequelize[_0xdfa5('0x1')],'defaultValue':_0xdfa5('0x3')},'filename':{'type':Sequelize['STRING']},'path':{'type':Sequelize['STRING']},'type':{'type':Sequelize['STRING']},'size':{'type':Sequelize[_0xdfa5('0x4')]},'active':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'author':{'type':Sequelize['STRING']},'logo':{'type':Sequelize[_0xdfa5('0x1')]},'state':{'type':Sequelize[_0xdfa5('0x1')],'unique':_0xdfa5('0x5')},'description':{'type':Sequelize[_0xdfa5('0x1')]},'title':{'type':Sequelize['STRING']},'remoteUri':{'type':Sequelize[_0xdfa5('0x1')]},'link':{'type':Sequelize['STRING'],'defaultValue':'#'}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1883=['intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','Integration','includeAll','include','findAll','params','catch','create','body','find','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../mysqldb','sendStatus','status','offset','undefined','limit','count','set','apply','update','then','destroy','end','stack','name','send','index','map','rawAttributes','fieldName','type','key','model','query','keys','filters'];(function(_0x4417c5,_0x597821){var _0x5376a4=function(_0x40ff33){while(--_0x40ff33){_0x4417c5['push'](_0x4417c5['shift']());}};_0x5376a4(++_0x597821);}(_0x1883,0xab));var _0x3188=function(_0x10147d,_0x4962d7){_0x10147d=_0x10147d-0x0;var _0x346024=_0x1883[_0x10147d];return _0x346024;};'use strict';var emlformat=require(_0x3188('0x0'));var rimraf=require(_0x3188('0x1'));var zipdir=require(_0x3188('0x2'));var jsonpatch=require(_0x3188('0x3'));var rp=require(_0x3188('0x4'));var moment=require(_0x3188('0x5'));var BPromise=require(_0x3188('0x6'));var Mustache=require(_0x3188('0x7'));var util=require(_0x3188('0x8'));var path=require(_0x3188('0x9'));var sox=require(_0x3188('0xa'));var csv=require(_0x3188('0xb'));var ejs=require(_0x3188('0xc'));var fs=require('fs');var fs_extra=require(_0x3188('0xd'));var _=require(_0x3188('0xe'));var squel=require(_0x3188('0xf'));var crypto=require(_0x3188('0x10'));var jsforce=require('jsforce');var deskjs=require(_0x3188('0x11'));var toCsv=require(_0x3188('0xb'));var querystring=require('querystring');var Papa=require(_0x3188('0x12'));var Redis=require('ioredis');var authService=require(_0x3188('0x13'));var qs=require(_0x3188('0x14'));var as=require(_0x3188('0x15'));var hardwareService=require(_0x3188('0x16'));var logger=require('../../config/logger')(_0x3188('0x17'));var utils=require(_0x3188('0x18'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x3188('0x19'))['db'];function respondWithStatusCode(_0x45e94e,_0x20fef6){_0x20fef6=_0x20fef6||0xcc;return function(_0x3ae228){if(_0x3ae228){return _0x45e94e[_0x3188('0x1a')](_0x20fef6);}return _0x45e94e[_0x3188('0x1b')](_0x20fef6)['end']();};}function respondWithResult(_0x276d69,_0x5e0044){_0x5e0044=_0x5e0044||0xc8;return function(_0x4a2f36){if(_0x4a2f36){return _0x276d69[_0x3188('0x1b')](_0x5e0044)['json'](_0x4a2f36);}};}function respondWithFilteredResult(_0x54a87f,_0x32c239){return function(_0x1beead){if(_0x1beead){var _0xa2269=typeof _0x32c239[_0x3188('0x1c')]===_0x3188('0x1d')&&typeof _0x32c239[_0x3188('0x1e')]==='undefined';var _0x19cc72=_0x1beead[_0x3188('0x1f')];var _0x3f5b35=_0xa2269?0x0:_0x32c239[_0x3188('0x1c')];var _0x18a71a=_0xa2269?_0x1beead[_0x3188('0x1f')]:_0x32c239[_0x3188('0x1c')]+_0x32c239[_0x3188('0x1e')];var _0x5bcbba;if(_0x18a71a>=_0x19cc72){_0x18a71a=_0x19cc72;_0x5bcbba=0xc8;}else{_0x5bcbba=0xce;}_0x54a87f[_0x3188('0x1b')](_0x5bcbba);return _0x54a87f[_0x3188('0x20')]('Content-Range',_0x3f5b35+'-'+_0x18a71a+'/'+_0x19cc72)['json'](_0x1beead);}return null;};}function patchUpdates(_0x5d8d62){return function(_0x46a318){try{jsonpatch[_0x3188('0x21')](_0x46a318,_0x5d8d62,!![]);}catch(_0xd292b5){return BPromise['reject'](_0xd292b5);}return _0x46a318['save']();};}function saveUpdates(_0x266260,_0x461286){return function(_0x375077){if(_0x375077){return _0x375077[_0x3188('0x22')](_0x266260)[_0x3188('0x23')](function(_0x4bd5ee){return _0x4bd5ee;});}return null;};}function removeEntity(_0x30cf2c,_0x33f882){return function(_0x5a2e67){if(_0x5a2e67){return _0x5a2e67[_0x3188('0x24')]()['then'](function(){_0x30cf2c['status'](0xcc)[_0x3188('0x25')]();});}};}function handleEntityNotFound(_0x129bd7,_0x87d5a3){return function(_0x1aeaba){if(!_0x1aeaba){_0x129bd7[_0x3188('0x1a')](0x194);}return _0x1aeaba;};}function handleError(_0x2cd060,_0xe57f73){_0xe57f73=_0xe57f73||0x1f4;return function(_0x11021c){logger['error'](_0x11021c[_0x3188('0x26')]);if(_0x11021c[_0x3188('0x27')]){delete _0x11021c['name'];}_0x2cd060[_0x3188('0x1b')](_0xe57f73)[_0x3188('0x28')](_0x11021c);};}exports[_0x3188('0x29')]=function(_0x44db9a,_0x20e6aa){var _0x1f1c6f={},_0x8f810f={},_0x472926={'count':0x0,'rows':[]};var _0x57c21c=_[_0x3188('0x2a')](db['Integration'][_0x3188('0x2b')],function(_0x5623f1){return{'name':_0x5623f1[_0x3188('0x2c')],'type':_0x5623f1[_0x3188('0x2d')][_0x3188('0x2e')]};});_0x8f810f[_0x3188('0x2f')]=_[_0x3188('0x2a')](_0x57c21c,_0x3188('0x27'));_0x8f810f[_0x3188('0x30')]=_[_0x3188('0x31')](_0x44db9a[_0x3188('0x30')]);_0x8f810f[_0x3188('0x32')]=_[_0x3188('0x33')](_0x8f810f[_0x3188('0x2f')],_0x8f810f[_0x3188('0x30')]);_0x1f1c6f[_0x3188('0x34')]=_[_0x3188('0x33')](_0x8f810f[_0x3188('0x2f')],qs[_0x3188('0x35')](_0x44db9a[_0x3188('0x30')]['fields']));_0x1f1c6f[_0x3188('0x34')]=_0x1f1c6f['attributes'][_0x3188('0x36')]?_0x1f1c6f[_0x3188('0x34')]:_0x8f810f['model'];if(!_0x44db9a[_0x3188('0x30')][_0x3188('0x37')](_0x3188('0x38'))){_0x1f1c6f[_0x3188('0x1e')]=qs[_0x3188('0x1e')](_0x44db9a[_0x3188('0x30')][_0x3188('0x1e')]);_0x1f1c6f['offset']=qs['offset'](_0x44db9a[_0x3188('0x30')][_0x3188('0x1c')]);}_0x1f1c6f[_0x3188('0x39')]=qs[_0x3188('0x3a')](_0x44db9a['query'][_0x3188('0x3a')]);_0x1f1c6f[_0x3188('0x3b')]=qs[_0x3188('0x32')](_[_0x3188('0x3c')](_0x44db9a['query'],_0x8f810f[_0x3188('0x32')]),_0x57c21c);if(_0x44db9a['query'][_0x3188('0x3d')]){_0x1f1c6f['where']=_[_0x3188('0x3e')](_0x1f1c6f[_0x3188('0x3b')],{'$or':_[_0x3188('0x2a')](_0x57c21c,function(_0x2990c4){if(_0x2990c4[_0x3188('0x2d')]!==_0x3188('0x3f')){var _0x4666b2={};_0x4666b2[_0x2990c4[_0x3188('0x27')]]={'$like':'%'+_0x44db9a[_0x3188('0x30')][_0x3188('0x3d')]+'%'};return _0x4666b2;}})});}_0x1f1c6f=_['merge']({},_0x1f1c6f,_0x44db9a[_0x3188('0x40')]);var _0x2bad0f={'where':_0x1f1c6f[_0x3188('0x3b')]};return db[_0x3188('0x41')][_0x3188('0x1f')](_0x2bad0f)[_0x3188('0x23')](function(_0x5a815d){_0x472926[_0x3188('0x1f')]=_0x5a815d;if(_0x44db9a['query'][_0x3188('0x42')]){_0x1f1c6f[_0x3188('0x43')]=[{'all':!![]}];}return db[_0x3188('0x41')][_0x3188('0x44')](_0x1f1c6f);})[_0x3188('0x23')](function(_0x549ab2){_0x472926['rows']=_0x549ab2;return _0x472926;})['then'](respondWithFilteredResult(_0x20e6aa,_0x1f1c6f))['catch'](handleError(_0x20e6aa,null));};exports['show']=function(_0x763943,_0x28c224){var _0x3e5f90={'raw':![],'where':{'id':_0x763943[_0x3188('0x45')]['id']}},_0x1b40b1={};_0x1b40b1['model']=_[_0x3188('0x31')](db['Integration'][_0x3188('0x2b')]);_0x1b40b1[_0x3188('0x30')]=_[_0x3188('0x31')](_0x763943[_0x3188('0x30')]);_0x1b40b1['filters']=_[_0x3188('0x33')](_0x1b40b1[_0x3188('0x2f')],_0x1b40b1[_0x3188('0x30')]);_0x3e5f90[_0x3188('0x34')]=_[_0x3188('0x33')](_0x1b40b1['model'],qs['fields'](_0x763943[_0x3188('0x30')][_0x3188('0x35')]));_0x3e5f90['attributes']=_0x3e5f90[_0x3188('0x34')][_0x3188('0x36')]?_0x3e5f90['attributes']:_0x1b40b1[_0x3188('0x2f')];if(_0x763943[_0x3188('0x30')][_0x3188('0x42')]){_0x3e5f90[_0x3188('0x43')]=[{'all':!![]}];}_0x3e5f90=_[_0x3188('0x3e')]({},_0x3e5f90,_0x763943['options']);return db[_0x3188('0x41')]['find'](_0x3e5f90)[_0x3188('0x23')](handleEntityNotFound(_0x28c224,null))[_0x3188('0x23')](respondWithResult(_0x28c224,null))[_0x3188('0x46')](handleError(_0x28c224,null));};exports[_0x3188('0x47')]=function(_0xe4cbb0,_0x315524){return db[_0x3188('0x41')][_0x3188('0x47')](_0xe4cbb0[_0x3188('0x48')],{})[_0x3188('0x23')](respondWithResult(_0x315524,0xc9))[_0x3188('0x46')](handleError(_0x315524,null));};exports['update']=function(_0x50fd56,_0x1b012d){if(_0x50fd56['body']['id']){delete _0x50fd56[_0x3188('0x48')]['id'];}return db[_0x3188('0x41')]['find']({'where':{'id':_0x50fd56[_0x3188('0x45')]['id']}})[_0x3188('0x23')](handleEntityNotFound(_0x1b012d,null))[_0x3188('0x23')](saveUpdates(_0x50fd56[_0x3188('0x48')],null))[_0x3188('0x23')](respondWithResult(_0x1b012d,null))[_0x3188('0x46')](handleError(_0x1b012d,null));};exports[_0x3188('0x24')]=function(_0x1e3592,_0x59a177){return db[_0x3188('0x41')][_0x3188('0x49')]({'where':{'id':_0x1e3592['params']['id']}})[_0x3188('0x23')](handleEntityNotFound(_0x59a177,null))['then'](removeEntity(_0x59a177,null))[_0x3188('0x46')](handleError(_0x59a177,null));};
\ No newline at end of file
+var _0x4137=['map','Integration','rawAttributes','type','key','model','query','keys','filters','intersection','attributes','fields','length','order','sort','where','pick','filter','merge','VIRTUAL','include','findAll','show','params','includeAll','options','find','catch','body','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','desk.js','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','status','json','offset','limit','count','set','apply','reject','save','update','destroy','then','end','sendStatus','error','name','send','index'];(function(_0x57128d,_0x455d10){var _0x305052=function(_0x44e0cf){while(--_0x44e0cf){_0x57128d['push'](_0x57128d['shift']());}};_0x305052(++_0x455d10);}(_0x4137,0xf8));var _0x7413=function(_0x5d6456,_0x58ecc7){_0x5d6456=_0x5d6456-0x0;var _0x4d66c1=_0x4137[_0x5d6456];return _0x4d66c1;};'use strict';var emlformat=require(_0x7413('0x0'));var rimraf=require(_0x7413('0x1'));var zipdir=require(_0x7413('0x2'));var jsonpatch=require(_0x7413('0x3'));var rp=require(_0x7413('0x4'));var moment=require(_0x7413('0x5'));var BPromise=require(_0x7413('0x6'));var Mustache=require(_0x7413('0x7'));var util=require(_0x7413('0x8'));var path=require(_0x7413('0x9'));var sox=require(_0x7413('0xa'));var csv=require(_0x7413('0xb'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x7413('0xc'));var _=require(_0x7413('0xd'));var squel=require(_0x7413('0xe'));var crypto=require(_0x7413('0xf'));var jsforce=require('jsforce');var deskjs=require(_0x7413('0x10'));var toCsv=require(_0x7413('0xb'));var querystring=require('querystring');var Papa=require(_0x7413('0x11'));var Redis=require(_0x7413('0x12'));var authService=require('../../components/auth/service');var qs=require(_0x7413('0x13'));var as=require(_0x7413('0x14'));var hardwareService=require(_0x7413('0x15'));var logger=require(_0x7413('0x16'))(_0x7413('0x17'));var utils=require('../../config/utils');var config=require(_0x7413('0x18'));var licenseUtil=require(_0x7413('0x19'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x18a874,_0xa26ca4){_0xa26ca4=_0xa26ca4||0xcc;return function(_0x13e6bd){if(_0x13e6bd){return _0x18a874['sendStatus'](_0xa26ca4);}return _0x18a874['status'](_0xa26ca4)['end']();};}function respondWithResult(_0x2267f6,_0x336c4c){_0x336c4c=_0x336c4c||0xc8;return function(_0x49f0f6){if(_0x49f0f6){return _0x2267f6[_0x7413('0x1a')](_0x336c4c)[_0x7413('0x1b')](_0x49f0f6);}};}function respondWithFilteredResult(_0x4955d3,_0x38b3d1){return function(_0x50f301){if(_0x50f301){var _0x4b9a5b=typeof _0x38b3d1[_0x7413('0x1c')]==='undefined'&&typeof _0x38b3d1[_0x7413('0x1d')]==='undefined';var _0x2036b6=_0x50f301[_0x7413('0x1e')];var _0x19157f=_0x4b9a5b?0x0:_0x38b3d1[_0x7413('0x1c')];var _0x2a3417=_0x4b9a5b?_0x50f301[_0x7413('0x1e')]:_0x38b3d1['offset']+_0x38b3d1[_0x7413('0x1d')];var _0x17c062;if(_0x2a3417>=_0x2036b6){_0x2a3417=_0x2036b6;_0x17c062=0xc8;}else{_0x17c062=0xce;}_0x4955d3[_0x7413('0x1a')](_0x17c062);return _0x4955d3[_0x7413('0x1f')]('Content-Range',_0x19157f+'-'+_0x2a3417+'/'+_0x2036b6)[_0x7413('0x1b')](_0x50f301);}return null;};}function patchUpdates(_0x12d94d){return function(_0x206afc){try{jsonpatch[_0x7413('0x20')](_0x206afc,_0x12d94d,!![]);}catch(_0x409392){return BPromise[_0x7413('0x21')](_0x409392);}return _0x206afc[_0x7413('0x22')]();};}function saveUpdates(_0x4e18cb,_0x56a06a){return function(_0x5f12a2){if(_0x5f12a2){return _0x5f12a2[_0x7413('0x23')](_0x4e18cb)['then'](function(_0x1585ba){return _0x1585ba;});}return null;};}function removeEntity(_0x372944,_0x3b0c81){return function(_0x2fc0f4){if(_0x2fc0f4){return _0x2fc0f4[_0x7413('0x24')]()[_0x7413('0x25')](function(){_0x372944[_0x7413('0x1a')](0xcc)[_0x7413('0x26')]();});}};}function handleEntityNotFound(_0x1d455b,_0x5a8329){return function(_0x5cb15f){if(!_0x5cb15f){_0x1d455b[_0x7413('0x27')](0x194);}return _0x5cb15f;};}function handleError(_0x48c2dc,_0x46c895){_0x46c895=_0x46c895||0x1f4;return function(_0x71cbb4){logger[_0x7413('0x28')](_0x71cbb4['stack']);if(_0x71cbb4[_0x7413('0x29')]){delete _0x71cbb4[_0x7413('0x29')];}_0x48c2dc[_0x7413('0x1a')](_0x46c895)[_0x7413('0x2a')](_0x71cbb4);};}exports[_0x7413('0x2b')]=function(_0x2e521f,_0x5eb4d9){var _0x24dce7={},_0x4ed662={},_0x1d0bde={'count':0x0,'rows':[]};var _0x23e682=_[_0x7413('0x2c')](db[_0x7413('0x2d')][_0x7413('0x2e')],function(_0x2004ea){return{'name':_0x2004ea['fieldName'],'type':_0x2004ea[_0x7413('0x2f')][_0x7413('0x30')]};});_0x4ed662[_0x7413('0x31')]=_[_0x7413('0x2c')](_0x23e682,_0x7413('0x29'));_0x4ed662[_0x7413('0x32')]=_[_0x7413('0x33')](_0x2e521f['query']);_0x4ed662[_0x7413('0x34')]=_[_0x7413('0x35')](_0x4ed662[_0x7413('0x31')],_0x4ed662[_0x7413('0x32')]);_0x24dce7[_0x7413('0x36')]=_['intersection'](_0x4ed662[_0x7413('0x31')],qs['fields'](_0x2e521f[_0x7413('0x32')][_0x7413('0x37')]));_0x24dce7[_0x7413('0x36')]=_0x24dce7['attributes'][_0x7413('0x38')]?_0x24dce7['attributes']:_0x4ed662[_0x7413('0x31')];if(!_0x2e521f[_0x7413('0x32')]['hasOwnProperty']('nolimit')){_0x24dce7[_0x7413('0x1d')]=qs[_0x7413('0x1d')](_0x2e521f[_0x7413('0x32')]['limit']);_0x24dce7['offset']=qs[_0x7413('0x1c')](_0x2e521f['query']['offset']);}_0x24dce7[_0x7413('0x39')]=qs['sort'](_0x2e521f[_0x7413('0x32')][_0x7413('0x3a')]);_0x24dce7[_0x7413('0x3b')]=qs[_0x7413('0x34')](_[_0x7413('0x3c')](_0x2e521f['query'],_0x4ed662[_0x7413('0x34')]),_0x23e682);if(_0x2e521f[_0x7413('0x32')][_0x7413('0x3d')]){_0x24dce7[_0x7413('0x3b')]=_[_0x7413('0x3e')](_0x24dce7[_0x7413('0x3b')],{'$or':_[_0x7413('0x2c')](_0x23e682,function(_0x385156){if(_0x385156[_0x7413('0x2f')]!==_0x7413('0x3f')){var _0x5c03eb={};_0x5c03eb[_0x385156[_0x7413('0x29')]]={'$like':'%'+_0x2e521f['query'][_0x7413('0x3d')]+'%'};return _0x5c03eb;}})});}_0x24dce7=_['merge']({},_0x24dce7,_0x2e521f['options']);var _0x5b592c={'where':_0x24dce7['where']};return db['Integration'][_0x7413('0x1e')](_0x5b592c)['then'](function(_0x535e49){_0x1d0bde[_0x7413('0x1e')]=_0x535e49;if(_0x2e521f['query']['includeAll']){_0x24dce7[_0x7413('0x40')]=[{'all':!![]}];}return db[_0x7413('0x2d')][_0x7413('0x41')](_0x24dce7);})[_0x7413('0x25')](function(_0x8049c0){_0x1d0bde['rows']=_0x8049c0;return _0x1d0bde;})[_0x7413('0x25')](respondWithFilteredResult(_0x5eb4d9,_0x24dce7))['catch'](handleError(_0x5eb4d9,null));};exports[_0x7413('0x42')]=function(_0x1d8219,_0xa063d1){var _0xfe0daa={'raw':![],'where':{'id':_0x1d8219[_0x7413('0x43')]['id']}},_0x3f7da2={};_0x3f7da2[_0x7413('0x31')]=_[_0x7413('0x33')](db[_0x7413('0x2d')][_0x7413('0x2e')]);_0x3f7da2[_0x7413('0x32')]=_[_0x7413('0x33')](_0x1d8219[_0x7413('0x32')]);_0x3f7da2['filters']=_[_0x7413('0x35')](_0x3f7da2[_0x7413('0x31')],_0x3f7da2[_0x7413('0x32')]);_0xfe0daa[_0x7413('0x36')]=_[_0x7413('0x35')](_0x3f7da2[_0x7413('0x31')],qs[_0x7413('0x37')](_0x1d8219[_0x7413('0x32')][_0x7413('0x37')]));_0xfe0daa[_0x7413('0x36')]=_0xfe0daa[_0x7413('0x36')]['length']?_0xfe0daa[_0x7413('0x36')]:_0x3f7da2['model'];if(_0x1d8219[_0x7413('0x32')][_0x7413('0x44')]){_0xfe0daa[_0x7413('0x40')]=[{'all':!![]}];}_0xfe0daa=_[_0x7413('0x3e')]({},_0xfe0daa,_0x1d8219[_0x7413('0x45')]);return db[_0x7413('0x2d')][_0x7413('0x46')](_0xfe0daa)[_0x7413('0x25')](handleEntityNotFound(_0xa063d1,null))[_0x7413('0x25')](respondWithResult(_0xa063d1,null))[_0x7413('0x47')](handleError(_0xa063d1,null));};exports['create']=function(_0x513657,_0x3c1f1a){return db['Integration']['create'](_0x513657[_0x7413('0x48')],{})[_0x7413('0x25')](respondWithResult(_0x3c1f1a,0xc9))['catch'](handleError(_0x3c1f1a,null));};exports[_0x7413('0x23')]=function(_0x586d25,_0x562bae){if(_0x586d25[_0x7413('0x48')]['id']){delete _0x586d25['body']['id'];}return db[_0x7413('0x2d')][_0x7413('0x46')]({'where':{'id':_0x586d25[_0x7413('0x43')]['id']}})[_0x7413('0x25')](handleEntityNotFound(_0x562bae,null))[_0x7413('0x25')](saveUpdates(_0x586d25[_0x7413('0x48')],null))[_0x7413('0x25')](respondWithResult(_0x562bae,null))[_0x7413('0x47')](handleError(_0x562bae,null));};exports[_0x7413('0x24')]=function(_0x2031e3,_0x50a27d){return db[_0x7413('0x2d')]['find']({'where':{'id':_0x2031e3['params']['id']}})['then'](handleEntityNotFound(_0x50a27d,null))[_0x7413('0x25')](removeEntity(_0x50a27d,null))[_0x7413('0x47')](handleError(_0x50a27d,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf45a=['exports','define','Integration','integrations','lodash','util','../../config/logger','api','moment','request-promise','rimraf','./integration.attributes'];(function(_0x195923,_0x3d75d9){var _0x4920b0=function(_0x557bce){while(--_0x557bce){_0x195923['push'](_0x195923['shift']());}};_0x4920b0(++_0x3d75d9);}(_0xf45a,0x160));var _0xaf45=function(_0x3da310,_0x196dda){_0x3da310=_0x3da310-0x0;var _0xbc1b34=_0xf45a[_0x3da310];return _0xbc1b34;};'use strict';var _=require(_0xaf45('0x0'));var util=require(_0xaf45('0x1'));var logger=require(_0xaf45('0x2'))(_0xaf45('0x3'));var moment=require(_0xaf45('0x4'));var BPromise=require('bluebird');var rp=require(_0xaf45('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0xaf45('0x6'));var config=require('../../config/environment');var attributes=require(_0xaf45('0x7'));module[_0xaf45('0x8')]=function(_0x2773ca,_0x20b8b6){return _0x2773ca[_0xaf45('0x9')](_0xaf45('0xa'),attributes,{'tableName':_0xaf45('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x7079=['Integration','lodash','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','./integration.attributes','exports','define'];(function(_0x56ddf6,_0x1fc011){var _0x40a600=function(_0x266b4e){while(--_0x266b4e){_0x56ddf6['push'](_0x56ddf6['shift']());}};_0x40a600(++_0x1fc011);}(_0x7079,0x175));var _0x9707=function(_0x349142,_0x9c9660){_0x349142=_0x349142-0x0;var _0x45896c=_0x7079[_0x349142];return _0x45896c;};'use strict';var _=require(_0x9707('0x0'));var util=require('util');var logger=require(_0x9707('0x1'))(_0x9707('0x2'));var moment=require(_0x9707('0x3'));var BPromise=require(_0x9707('0x4'));var rp=require(_0x9707('0x5'));var fs=require('fs');var path=require(_0x9707('0x6'));var rimraf=require(_0x9707('0x7'));var config=require('../../config/environment');var attributes=require(_0x9707('0x8'));module[_0x9707('0x9')]=function(_0x37921d,_0x219b94){return _0x37921d[_0x9707('0xa')](_0x9707('0xb'),attributes,{'tableName':'integrations','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1a85=['../../config/logger','rpc','jayson/promise','http','info','Integration,\x20%s,\x20%s','request\x20sent','debug','Integration,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','moment','bluebird','randomstring','../../config/utils'];(function(_0x52ff36,_0x58d669){var _0x22a40f=function(_0x51ac41){while(--_0x51ac41){_0x52ff36['push'](_0x52ff36['shift']());}};_0x22a40f(++_0x58d669);}(_0x1a85,0x178));var _0x51a8=function(_0x59d546,_0x107f05){_0x59d546=_0x59d546-0x0;var _0x41fbdb=_0x1a85[_0x59d546];return _0x41fbdb;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0x51a8('0x0'));var BPromise=require(_0x51a8('0x1'));var rs=require(_0x51a8('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0x51a8('0x3'));var logger=require(_0x51a8('0x4'))(_0x51a8('0x5'));var config=require('../../config/environment');var jayson=require(_0x51a8('0x6'));var client=jayson['client'][_0x51a8('0x7')]({'port':0x232a});function respondWithRpcPromise(_0x5cf430,_0x331117,_0x16a21e){return new BPromise(function(_0x4f3919,_0x228c64){return client['request'](_0x5cf430,_0x16a21e)['then'](function(_0x39e06a){logger[_0x51a8('0x8')](_0x51a8('0x9'),_0x331117,_0x51a8('0xa'));logger[_0x51a8('0xb')](_0x51a8('0xc'),_0x331117,_0x51a8('0xa'),JSON[_0x51a8('0xd')](_0x39e06a));if(_0x39e06a[_0x51a8('0xe')]){if(_0x39e06a[_0x51a8('0xe')][_0x51a8('0xf')]===0x1f4){logger[_0x51a8('0xe')](_0x51a8('0x9'),_0x331117,_0x39e06a[_0x51a8('0xe')][_0x51a8('0x10')]);return _0x228c64(_0x39e06a[_0x51a8('0xe')][_0x51a8('0x10')]);}logger['error'](_0x51a8('0x9'),_0x331117,_0x39e06a[_0x51a8('0xe')][_0x51a8('0x10')]);return _0x4f3919(_0x39e06a['error'][_0x51a8('0x10')]);}else{logger['info'](_0x51a8('0x9'),_0x331117,_0x51a8('0xa'));_0x4f3919(_0x39e06a[_0x51a8('0x11')][_0x51a8('0x10')]);}})[_0x51a8('0x12')](function(_0x3e0603){logger[_0x51a8('0xe')]('Integration,\x20%s,\x20%s',_0x331117,_0x3e0603);_0x228c64(_0x3e0603);});});}
\ No newline at end of file
+var _0xe2fe=['then','info','Integration,\x20%s,\x20%s','stringify','error','message','request\x20sent','result','lodash','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','request'];(function(_0x329542,_0x143c78){var _0x2d0104=function(_0x12ddad){while(--_0x12ddad){_0x329542['push'](_0x329542['shift']());}};_0x2d0104(++_0x143c78);}(_0xe2fe,0x86));var _0xee2f=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xe2fe[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0xee2f('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0xee2f('0x1'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xee2f('0x2'));var db=require(_0xee2f('0x3'))['db'];var utils=require(_0xee2f('0x4'));var logger=require(_0xee2f('0x5'))(_0xee2f('0x6'));var config=require('../../config/environment');var jayson=require(_0xee2f('0x7'));var client=jayson[_0xee2f('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0x1533a0,_0x2e1c8c,_0x5a7975){return new BPromise(function(_0x3c4095,_0x5ea796){return client[_0xee2f('0x9')](_0x1533a0,_0x5a7975)[_0xee2f('0xa')](function(_0x53f7dd){logger[_0xee2f('0xb')](_0xee2f('0xc'),_0x2e1c8c,'request\x20sent');logger['debug']('Integration,\x20%s,\x20%s,\x20%s',_0x2e1c8c,'request\x20sent',JSON[_0xee2f('0xd')](_0x53f7dd));if(_0x53f7dd['error']){if(_0x53f7dd['error']['code']===0x1f4){logger[_0xee2f('0xe')](_0xee2f('0xc'),_0x2e1c8c,_0x53f7dd[_0xee2f('0xe')][_0xee2f('0xf')]);return _0x5ea796(_0x53f7dd[_0xee2f('0xe')][_0xee2f('0xf')]);}logger['error'](_0xee2f('0xc'),_0x2e1c8c,_0x53f7dd['error'][_0xee2f('0xf')]);return _0x3c4095(_0x53f7dd[_0xee2f('0xe')]['message']);}else{logger[_0xee2f('0xb')](_0xee2f('0xc'),_0x2e1c8c,_0xee2f('0x10'));_0x3c4095(_0x53f7dd[_0xee2f('0x11')][_0xee2f('0xf')]);}})['catch'](function(_0x3f6372){logger['error'](_0xee2f('0xc'),_0x2e1c8c,_0x3f6372);_0x5ea796(_0x3f6372);});});}
\ 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','./integrationReport.controller','get'];(function(_0x2adbeb,_0x5581be){var _0x5e18a6=function(_0x84e42b){while(--_0x84e42b){_0x2adbeb['push'](_0x2adbeb['shift']());}};_0x5e18a6(++_0x5581be);}(_0x0295,0x1f0));var _0x5029=function(_0x34b821,_0x504e55){_0x34b821=_0x34b821-0x0;var _0x5e00a0=_0x0295[_0x34b821];return _0x5e00a0;};'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')]('/describe',auth['isAuthenticated'](),controller['describe']);router[_0x5029('0x7')]('/:id',auth[_0x5029('0x8')](),controller['show']);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 _0x2542=['put','update','destroy','exports','multer','util','path','connect-timeout','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./integrationReport.controller','get','index','/describe','isAuthenticated','describe','/:id','show','post'];(function(_0x4069f0,_0x3e7c5f){var _0x34d2fb=function(_0x1a948a){while(--_0x1a948a){_0x4069f0['push'](_0x4069f0['shift']());}};_0x34d2fb(++_0x3e7c5f);}(_0x2542,0x169));var _0x2254=function(_0x362581,_0x97ad1e){_0x362581=_0x362581-0x0;var _0x4be8dd=_0x2542[_0x362581];return _0x4be8dd;};'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('0xe'),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 _0xd6ad=['RECEIVED','FAILED','exports','STRING','DATE','INTEGER','BOOLEAN','TEXT','ENUM'];(function(_0x2fe076,_0x3d8d0b){var _0x2a66ce=function(_0x489b23){while(--_0x489b23){_0x2fe076['push'](_0x2fe076['shift']());}};_0x2a66ce(++_0x3d8d0b);}(_0xd6ad,0x92));var _0xdd6a=function(_0x54a761,_0x431fd4){_0x54a761=_0x54a761-0x0;var _0x37d1da=_0xd6ad[_0x54a761];return _0x37d1da;};'use strict';var Sequelize=require('sequelize');module[_0xdd6a('0x0')]={'integration':{'type':Sequelize['STRING']},'eventChannel':{'type':Sequelize['STRING']},'exitStatus':{'type':Sequelize[_0xdd6a('0x1')]},'ticketId':{'type':Sequelize[_0xdd6a('0x1')]},'integrationId':{'type':Sequelize['INTEGER']},'contacts':{'type':Sequelize['STRING']},'uniqueid':{'type':Sequelize[_0xdd6a('0x1')]},'calleridnum':{'type':Sequelize[_0xdd6a('0x1')]},'calleridname':{'type':Sequelize['STRING']},'queue':{'type':Sequelize['STRING']},'interface':{'type':Sequelize[_0xdd6a('0x1')]},'membername':{'type':Sequelize[_0xdd6a('0x1')]},'agentcalledAt':{'type':Sequelize[_0xdd6a('0x2')]},'agentconnectAt':{'type':Sequelize['DATE']},'holdtime':{'type':Sequelize[_0xdd6a('0x3')]},'agentcomplete':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'agentcompleteAt':{'type':Sequelize[_0xdd6a('0x2')]},'talktime':{'type':Sequelize[_0xdd6a('0x3')]},'agentacw':{'type':Sequelize[_0xdd6a('0x4')],'defaultValue':![]},'acwtime':{'type':Sequelize['INTEGER']},'reason':{'type':Sequelize[_0xdd6a('0x1')]},'agentringnoanswer':{'type':Sequelize[_0xdd6a('0x4')],'defaultValue':![]},'agentringnoanswerAt':{'type':Sequelize[_0xdd6a('0x2')]},'agentdump':{'type':Sequelize[_0xdd6a('0x4')],'defaultValue':![]},'agentdumpAt':{'type':Sequelize['DATE']},'lastevent':{'type':Sequelize[_0xdd6a('0x1')]},'channel':{'type':Sequelize[_0xdd6a('0x1')]},'channelstate':{'type':Sequelize[_0xdd6a('0x3')]},'channelstatedesc':{'type':Sequelize[_0xdd6a('0x1')]},'connectedlinenum':{'type':Sequelize[_0xdd6a('0x1')]},'connectedlinename':{'type':Sequelize[_0xdd6a('0x1')]},'language':{'type':Sequelize[_0xdd6a('0x1')]},'accountcode':{'type':Sequelize['STRING']},'context':{'type':Sequelize[_0xdd6a('0x1')]},'exten':{'type':Sequelize[_0xdd6a('0x1')]},'priority':{'type':Sequelize[_0xdd6a('0x1')]},'destchannel':{'type':Sequelize['STRING']},'destchannelstate':{'type':Sequelize[_0xdd6a('0x3')]},'destchannelstatedesc':{'type':Sequelize[_0xdd6a('0x1')]},'destcalleridnum':{'type':Sequelize['STRING']},'destcalleridname':{'type':Sequelize['STRING']},'destconnectedlinenum':{'type':Sequelize[_0xdd6a('0x1')]},'destconnectedlinename':{'type':Sequelize[_0xdd6a('0x1')]},'destlanguage':{'type':Sequelize[_0xdd6a('0x1')]},'destaccountcode':{'type':Sequelize[_0xdd6a('0x1')]},'destcontext':{'type':Sequelize[_0xdd6a('0x1')]},'destexten':{'type':Sequelize[_0xdd6a('0x1')]},'destpriority':{'type':Sequelize['STRING']},'destuniqueid':{'type':Sequelize[_0xdd6a('0x1')]},'messageId':{'type':Sequelize[_0xdd6a('0x1')]},'inReplyTo':{'type':Sequelize[_0xdd6a('0x1')]},'subject':{'type':Sequelize[_0xdd6a('0x1')]},'from':{'type':Sequelize[_0xdd6a('0x1')]},'to':{'type':Sequelize['STRING']},'cc':{'type':Sequelize[_0xdd6a('0x1')]},'attachment':{'type':Sequelize[_0xdd6a('0x5')]},'html':{'type':Sequelize[_0xdd6a('0x5')]},'text':{'type':Sequelize[_0xdd6a('0x5')]},'status':{'type':Sequelize[_0xdd6a('0x6')]('SENT','SENDING',_0xdd6a('0x7'),_0xdd6a('0x8'))},'url':{'type':Sequelize[_0xdd6a('0x1')]},'app':{'type':Sequelize[_0xdd6a('0x1')]},'appdata':{'type':Sequelize[_0xdd6a('0x1')]},'projectId':{'type':Sequelize[_0xdd6a('0x3')]}};
\ No newline at end of file
+var _0xe8a3=['BOOLEAN','TEXT','ENUM','SENT','SENDING','RECEIVED','sequelize','exports','STRING','INTEGER','DATE'];(function(_0x1b964a,_0x40fdc2){var _0x2559fa=function(_0x1afe3e){while(--_0x1afe3e){_0x1b964a['push'](_0x1b964a['shift']());}};_0x2559fa(++_0x40fdc2);}(_0xe8a3,0x7f));var _0x3e8a=function(_0x47856a,_0x1ad7a0){_0x47856a=_0x47856a-0x0;var _0x1edd96=_0xe8a3[_0x47856a];return _0x1edd96;};'use strict';var Sequelize=require(_0x3e8a('0x0'));module[_0x3e8a('0x1')]={'integration':{'type':Sequelize[_0x3e8a('0x2')]},'eventChannel':{'type':Sequelize[_0x3e8a('0x2')]},'exitStatus':{'type':Sequelize[_0x3e8a('0x2')]},'ticketId':{'type':Sequelize[_0x3e8a('0x2')]},'integrationId':{'type':Sequelize[_0x3e8a('0x3')]},'contacts':{'type':Sequelize['STRING']},'uniqueid':{'type':Sequelize['STRING']},'calleridnum':{'type':Sequelize['STRING']},'calleridname':{'type':Sequelize[_0x3e8a('0x2')]},'queue':{'type':Sequelize['STRING']},'interface':{'type':Sequelize[_0x3e8a('0x2')]},'membername':{'type':Sequelize[_0x3e8a('0x2')]},'agentcalledAt':{'type':Sequelize[_0x3e8a('0x4')]},'agentconnectAt':{'type':Sequelize[_0x3e8a('0x4')]},'holdtime':{'type':Sequelize[_0x3e8a('0x3')]},'agentcomplete':{'type':Sequelize[_0x3e8a('0x5')],'defaultValue':![]},'agentcompleteAt':{'type':Sequelize[_0x3e8a('0x4')]},'talktime':{'type':Sequelize[_0x3e8a('0x3')]},'agentacw':{'type':Sequelize[_0x3e8a('0x5')],'defaultValue':![]},'acwtime':{'type':Sequelize[_0x3e8a('0x3')]},'reason':{'type':Sequelize[_0x3e8a('0x2')]},'agentringnoanswer':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'agentringnoanswerAt':{'type':Sequelize[_0x3e8a('0x4')]},'agentdump':{'type':Sequelize[_0x3e8a('0x5')],'defaultValue':![]},'agentdumpAt':{'type':Sequelize[_0x3e8a('0x4')]},'lastevent':{'type':Sequelize[_0x3e8a('0x2')]},'channel':{'type':Sequelize[_0x3e8a('0x2')]},'channelstate':{'type':Sequelize['INTEGER']},'channelstatedesc':{'type':Sequelize[_0x3e8a('0x2')]},'connectedlinenum':{'type':Sequelize[_0x3e8a('0x2')]},'connectedlinename':{'type':Sequelize[_0x3e8a('0x2')]},'language':{'type':Sequelize['STRING']},'accountcode':{'type':Sequelize[_0x3e8a('0x2')]},'context':{'type':Sequelize[_0x3e8a('0x2')]},'exten':{'type':Sequelize[_0x3e8a('0x2')]},'priority':{'type':Sequelize[_0x3e8a('0x2')]},'destchannel':{'type':Sequelize['STRING']},'destchannelstate':{'type':Sequelize[_0x3e8a('0x3')]},'destchannelstatedesc':{'type':Sequelize[_0x3e8a('0x2')]},'destcalleridnum':{'type':Sequelize[_0x3e8a('0x2')]},'destcalleridname':{'type':Sequelize[_0x3e8a('0x2')]},'destconnectedlinenum':{'type':Sequelize['STRING']},'destconnectedlinename':{'type':Sequelize[_0x3e8a('0x2')]},'destlanguage':{'type':Sequelize[_0x3e8a('0x2')]},'destaccountcode':{'type':Sequelize[_0x3e8a('0x2')]},'destcontext':{'type':Sequelize[_0x3e8a('0x2')]},'destexten':{'type':Sequelize[_0x3e8a('0x2')]},'destpriority':{'type':Sequelize[_0x3e8a('0x2')]},'destuniqueid':{'type':Sequelize[_0x3e8a('0x2')]},'messageId':{'type':Sequelize[_0x3e8a('0x2')]},'inReplyTo':{'type':Sequelize['STRING']},'subject':{'type':Sequelize[_0x3e8a('0x2')]},'from':{'type':Sequelize['STRING']},'to':{'type':Sequelize[_0x3e8a('0x2')]},'cc':{'type':Sequelize[_0x3e8a('0x2')]},'attachment':{'type':Sequelize[_0x3e8a('0x6')]},'html':{'type':Sequelize[_0x3e8a('0x6')]},'text':{'type':Sequelize[_0x3e8a('0x6')]},'status':{'type':Sequelize[_0x3e8a('0x7')](_0x3e8a('0x8'),_0x3e8a('0x9'),_0x3e8a('0xa'),'FAILED')},'url':{'type':Sequelize[_0x3e8a('0x2')]},'app':{'type':Sequelize[_0x3e8a('0x2')]},'appdata':{'type':Sequelize['STRING']},'projectId':{'type':Sequelize[_0x3e8a('0x3')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x93c8=['update','describe','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','ejs','fs-extra','lodash','crypto','desk.js','to-csv','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','limit','count','set','Content-Range','apply','reject','save','then','destroy','error','stack','name','send','index','IntegrationReport','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','fields','attributes','nolimit','sort','where','filter','merge','options','include','findAll','rows','catch','show','params','length','includeAll','find','body'];(function(_0x3fd41c,_0x311d8c){var _0x1074cf=function(_0x2ecb81){while(--_0x2ecb81){_0x3fd41c['push'](_0x3fd41c['shift']());}};_0x1074cf(++_0x311d8c);}(_0x93c8,0x12e));var _0x893c=function(_0x16d10f,_0x2ba2d5){_0x16d10f=_0x16d10f-0x0;var _0x50c823=_0x93c8[_0x16d10f];return _0x50c823;};'use strict';var emlformat=require(_0x893c('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x893c('0x1'));var jsonpatch=require(_0x893c('0x2'));var rp=require(_0x893c('0x3'));var moment=require(_0x893c('0x4'));var BPromise=require(_0x893c('0x5'));var Mustache=require(_0x893c('0x6'));var util=require(_0x893c('0x7'));var path=require(_0x893c('0x8'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x893c('0x9'));var fs=require('fs');var fs_extra=require(_0x893c('0xa'));var _=require(_0x893c('0xb'));var squel=require('squel');var crypto=require(_0x893c('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x893c('0xd'));var toCsv=require(_0x893c('0xe'));var querystring=require(_0x893c('0xf'));var Papa=require(_0x893c('0x10'));var Redis=require(_0x893c('0x11'));var authService=require('../../components/auth/service');var qs=require(_0x893c('0x12'));var as=require(_0x893c('0x13'));var hardwareService=require(_0x893c('0x14'));var logger=require(_0x893c('0x15'))(_0x893c('0x16'));var utils=require(_0x893c('0x17'));var config=require('../../config/environment');var licenseUtil=require(_0x893c('0x18'));var db=require(_0x893c('0x19'))['db'];function respondWithStatusCode(_0x536997,_0x540469){_0x540469=_0x540469||0xcc;return function(_0x51bbb2){if(_0x51bbb2){return _0x536997[_0x893c('0x1a')](_0x540469);}return _0x536997[_0x893c('0x1b')](_0x540469)[_0x893c('0x1c')]();};}function respondWithResult(_0x779214,_0x40cd73){_0x40cd73=_0x40cd73||0xc8;return function(_0xe0fcf4){if(_0xe0fcf4){return _0x779214['status'](_0x40cd73)[_0x893c('0x1d')](_0xe0fcf4);}};}function respondWithFilteredResult(_0x4f8846,_0x52aa61){return function(_0x20c894){if(_0x20c894){var _0x251ab9=typeof _0x52aa61[_0x893c('0x1e')]==='undefined'&&typeof _0x52aa61[_0x893c('0x1f')]==='undefined';var _0x220124=_0x20c894[_0x893c('0x20')];var _0x163c9d=_0x251ab9?0x0:_0x52aa61[_0x893c('0x1e')];var _0x4410c5=_0x251ab9?_0x20c894[_0x893c('0x20')]:_0x52aa61[_0x893c('0x1e')]+_0x52aa61['limit'];var _0x56d279;if(_0x4410c5>=_0x220124){_0x4410c5=_0x220124;_0x56d279=0xc8;}else{_0x56d279=0xce;}_0x4f8846[_0x893c('0x1b')](_0x56d279);return _0x4f8846[_0x893c('0x21')](_0x893c('0x22'),_0x163c9d+'-'+_0x4410c5+'/'+_0x220124)[_0x893c('0x1d')](_0x20c894);}return null;};}function patchUpdates(_0x54661a){return function(_0x562d79){try{jsonpatch[_0x893c('0x23')](_0x562d79,_0x54661a,!![]);}catch(_0x4a4374){return BPromise[_0x893c('0x24')](_0x4a4374);}return _0x562d79[_0x893c('0x25')]();};}function saveUpdates(_0x3dae9d,_0x48f4f6){return function(_0x5abd71){if(_0x5abd71){return _0x5abd71['update'](_0x3dae9d)[_0x893c('0x26')](function(_0x1499a7){return _0x1499a7;});}return null;};}function removeEntity(_0x2187f5,_0x442591){return function(_0x1adefd){if(_0x1adefd){return _0x1adefd[_0x893c('0x27')]()[_0x893c('0x26')](function(){_0x2187f5[_0x893c('0x1b')](0xcc)[_0x893c('0x1c')]();});}};}function handleEntityNotFound(_0x1c67b4,_0x2d733b){return function(_0x4b3c06){if(!_0x4b3c06){_0x1c67b4[_0x893c('0x1a')](0x194);}return _0x4b3c06;};}function handleError(_0x145658,_0x46b581){_0x46b581=_0x46b581||0x1f4;return function(_0x2fc353){logger[_0x893c('0x28')](_0x2fc353[_0x893c('0x29')]);if(_0x2fc353[_0x893c('0x2a')]){delete _0x2fc353[_0x893c('0x2a')];}_0x145658[_0x893c('0x1b')](_0x46b581)[_0x893c('0x2b')](_0x2fc353);};}exports[_0x893c('0x2c')]=function(_0x2e7096,_0x154dd8){var _0x36bbc7={},_0x4f2b04={},_0x5042cb={'count':0x0,'rows':[]};var _0x2111c7=_['map'](db[_0x893c('0x2d')][_0x893c('0x2e')],function(_0x5a394b){return{'name':_0x5a394b[_0x893c('0x2f')],'type':_0x5a394b[_0x893c('0x30')][_0x893c('0x31')]};});_0x4f2b04[_0x893c('0x32')]=_['map'](_0x2111c7,_0x893c('0x2a'));_0x4f2b04[_0x893c('0x33')]=_[_0x893c('0x34')](_0x2e7096[_0x893c('0x33')]);_0x4f2b04[_0x893c('0x35')]=_['intersection'](_0x4f2b04[_0x893c('0x32')],_0x4f2b04[_0x893c('0x33')]);_0x36bbc7['attributes']=_[_0x893c('0x36')](_0x4f2b04[_0x893c('0x32')],qs[_0x893c('0x37')](_0x2e7096[_0x893c('0x33')][_0x893c('0x37')]));_0x36bbc7[_0x893c('0x38')]=_0x36bbc7[_0x893c('0x38')]['length']?_0x36bbc7['attributes']:_0x4f2b04[_0x893c('0x32')];if(!_0x2e7096[_0x893c('0x33')]['hasOwnProperty'](_0x893c('0x39'))){_0x36bbc7['limit']=qs[_0x893c('0x1f')](_0x2e7096[_0x893c('0x33')][_0x893c('0x1f')]);_0x36bbc7[_0x893c('0x1e')]=qs[_0x893c('0x1e')](_0x2e7096['query'][_0x893c('0x1e')]);}_0x36bbc7['order']=qs['sort'](_0x2e7096[_0x893c('0x33')][_0x893c('0x3a')]);_0x36bbc7[_0x893c('0x3b')]=qs[_0x893c('0x35')](_['pick'](_0x2e7096['query'],_0x4f2b04['filters']),_0x2111c7);if(_0x2e7096[_0x893c('0x33')][_0x893c('0x3c')]){_0x36bbc7['where']=_[_0x893c('0x3d')](_0x36bbc7[_0x893c('0x3b')],{'$or':_['map'](_0x2111c7,function(_0x49918d){if(_0x49918d[_0x893c('0x30')]!=='VIRTUAL'){var _0x18c32a={};_0x18c32a[_0x49918d['name']]={'$like':'%'+_0x2e7096[_0x893c('0x33')][_0x893c('0x3c')]+'%'};return _0x18c32a;}})});}_0x36bbc7=_[_0x893c('0x3d')]({},_0x36bbc7,_0x2e7096[_0x893c('0x3e')]);var _0x3ea2ee={'where':_0x36bbc7[_0x893c('0x3b')]};return db[_0x893c('0x2d')][_0x893c('0x20')](_0x3ea2ee)['then'](function(_0x4ae74f){_0x5042cb[_0x893c('0x20')]=_0x4ae74f;if(_0x2e7096[_0x893c('0x33')]['includeAll']){_0x36bbc7[_0x893c('0x3f')]=[{'all':!![]}];}return db[_0x893c('0x2d')][_0x893c('0x40')](_0x36bbc7);})[_0x893c('0x26')](function(_0x286b1a){_0x5042cb[_0x893c('0x41')]=_0x286b1a;return _0x5042cb;})['then'](respondWithFilteredResult(_0x154dd8,_0x36bbc7))[_0x893c('0x42')](handleError(_0x154dd8,null));};exports[_0x893c('0x43')]=function(_0x4ff1bc,_0x101daf){var _0x41bb5b={'raw':![],'where':{'id':_0x4ff1bc[_0x893c('0x44')]['id']}},_0x202726={};_0x202726[_0x893c('0x32')]=_[_0x893c('0x34')](db['IntegrationReport'][_0x893c('0x2e')]);_0x202726[_0x893c('0x33')]=_['keys'](_0x4ff1bc['query']);_0x202726[_0x893c('0x35')]=_[_0x893c('0x36')](_0x202726['model'],_0x202726['query']);_0x41bb5b[_0x893c('0x38')]=_[_0x893c('0x36')](_0x202726['model'],qs[_0x893c('0x37')](_0x4ff1bc[_0x893c('0x33')][_0x893c('0x37')]));_0x41bb5b[_0x893c('0x38')]=_0x41bb5b[_0x893c('0x38')][_0x893c('0x45')]?_0x41bb5b[_0x893c('0x38')]:_0x202726['model'];if(_0x4ff1bc['query'][_0x893c('0x46')]){_0x41bb5b[_0x893c('0x3f')]=[{'all':!![]}];}_0x41bb5b=_[_0x893c('0x3d')]({},_0x41bb5b,_0x4ff1bc[_0x893c('0x3e')]);return db[_0x893c('0x2d')][_0x893c('0x47')](_0x41bb5b)[_0x893c('0x26')](handleEntityNotFound(_0x101daf,null))[_0x893c('0x26')](respondWithResult(_0x101daf,null))['catch'](handleError(_0x101daf,null));};exports['create']=function(_0x805d18,_0x328f2e){return db[_0x893c('0x2d')]['create'](_0x805d18[_0x893c('0x48')],{})[_0x893c('0x26')](respondWithResult(_0x328f2e,0xc9))[_0x893c('0x42')](handleError(_0x328f2e,null));};exports[_0x893c('0x49')]=function(_0x2a6e39,_0x3c7017){if(_0x2a6e39[_0x893c('0x48')]['id']){delete _0x2a6e39[_0x893c('0x48')]['id'];}return db['IntegrationReport'][_0x893c('0x47')]({'where':{'id':_0x2a6e39['params']['id']}})[_0x893c('0x26')](handleEntityNotFound(_0x3c7017,null))[_0x893c('0x26')](saveUpdates(_0x2a6e39[_0x893c('0x48')],null))['then'](respondWithResult(_0x3c7017,null))[_0x893c('0x42')](handleError(_0x3c7017,null));};exports[_0x893c('0x27')]=function(_0x10dd2d,_0x457ef0){return db[_0x893c('0x2d')][_0x893c('0x47')]({'where':{'id':_0x10dd2d[_0x893c('0x44')]['id']}})[_0x893c('0x26')](handleEntityNotFound(_0x457ef0,null))['then'](removeEntity(_0x457ef0,null))[_0x893c('0x42')](handleError(_0x457ef0,null));};exports[_0x893c('0x4a')]=function(_0x5080a1,_0x2d2938){return db['IntegrationReport'][_0x893c('0x4a')]()[_0x893c('0x26')](respondWithResult(_0x2d2938,null))[_0x893c('0x42')](handleError(_0x2d2938,null));};
\ No newline at end of file
+var _0x4163=['to-csv','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','status','json','undefined','limit','count','offset','set','Content-Range','reject','save','then','destroy','end','error','stack','name','index','rawAttributes','fieldName','key','model','map','keys','query','filters','attributes','intersection','fields','length','nolimit','order','sort','where','filter','type','VIRTUAL','merge','options','IntegrationReport','include','rows','catch','show','params','includeAll','find','create','body','update','describe','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','ejs','fs-extra','lodash','crypto','jsforce','desk.js'];(function(_0x4a9fb1,_0x273043){var _0x348672=function(_0x142b69){while(--_0x142b69){_0x4a9fb1['push'](_0x4a9fb1['shift']());}};_0x348672(++_0x273043);}(_0x4163,0x1be));var _0x3416=function(_0x370517,_0x4dff09){_0x370517=_0x370517-0x0;var _0x2cf2e4=_0x4163[_0x370517];return _0x2cf2e4;};'use strict';var emlformat=require(_0x3416('0x0'));var rimraf=require(_0x3416('0x1'));var zipdir=require(_0x3416('0x2'));var jsonpatch=require(_0x3416('0x3'));var rp=require('request-promise');var moment=require(_0x3416('0x4'));var BPromise=require(_0x3416('0x5'));var Mustache=require(_0x3416('0x6'));var util=require(_0x3416('0x7'));var path=require(_0x3416('0x8'));var sox=require(_0x3416('0x9'));var csv=require('to-csv');var ejs=require(_0x3416('0xa'));var fs=require('fs');var fs_extra=require(_0x3416('0xb'));var _=require(_0x3416('0xc'));var squel=require('squel');var crypto=require(_0x3416('0xd'));var jsforce=require(_0x3416('0xe'));var deskjs=require(_0x3416('0xf'));var toCsv=require(_0x3416('0x10'));var querystring=require(_0x3416('0x11'));var Papa=require(_0x3416('0x12'));var Redis=require('ioredis');var authService=require(_0x3416('0x13'));var qs=require(_0x3416('0x14'));var as=require(_0x3416('0x15'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x3416('0x16'))(_0x3416('0x17'));var utils=require('../../config/utils');var config=require(_0x3416('0x18'));var licenseUtil=require(_0x3416('0x19'));var db=require(_0x3416('0x1a'))['db'];function respondWithStatusCode(_0x1d39f9,_0xafa9cb){_0xafa9cb=_0xafa9cb||0xcc;return function(_0x47118c){if(_0x47118c){return _0x1d39f9['sendStatus'](_0xafa9cb);}return _0x1d39f9[_0x3416('0x1b')](_0xafa9cb)['end']();};}function respondWithResult(_0x5dcc2e,_0x50789a){_0x50789a=_0x50789a||0xc8;return function(_0x4e7474){if(_0x4e7474){return _0x5dcc2e['status'](_0x50789a)[_0x3416('0x1c')](_0x4e7474);}};}function respondWithFilteredResult(_0x4586d0,_0x59d49e){return function(_0x50cb77){if(_0x50cb77){var _0x365d22=typeof _0x59d49e['offset']===_0x3416('0x1d')&&typeof _0x59d49e[_0x3416('0x1e')]===_0x3416('0x1d');var _0x5e4dd2=_0x50cb77[_0x3416('0x1f')];var _0x348554=_0x365d22?0x0:_0x59d49e[_0x3416('0x20')];var _0x4120c0=_0x365d22?_0x50cb77[_0x3416('0x1f')]:_0x59d49e[_0x3416('0x20')]+_0x59d49e[_0x3416('0x1e')];var _0x5857a7;if(_0x4120c0>=_0x5e4dd2){_0x4120c0=_0x5e4dd2;_0x5857a7=0xc8;}else{_0x5857a7=0xce;}_0x4586d0[_0x3416('0x1b')](_0x5857a7);return _0x4586d0[_0x3416('0x21')](_0x3416('0x22'),_0x348554+'-'+_0x4120c0+'/'+_0x5e4dd2)[_0x3416('0x1c')](_0x50cb77);}return null;};}function patchUpdates(_0x19c98f){return function(_0x1527e3){try{jsonpatch['apply'](_0x1527e3,_0x19c98f,!![]);}catch(_0x384b54){return BPromise[_0x3416('0x23')](_0x384b54);}return _0x1527e3[_0x3416('0x24')]();};}function saveUpdates(_0x4b5f60,_0x5d1ab7){return function(_0x3c3ec1){if(_0x3c3ec1){return _0x3c3ec1['update'](_0x4b5f60)[_0x3416('0x25')](function(_0x354fbc){return _0x354fbc;});}return null;};}function removeEntity(_0x2140fc,_0x5470f0){return function(_0x3feaa1){if(_0x3feaa1){return _0x3feaa1[_0x3416('0x26')]()[_0x3416('0x25')](function(){_0x2140fc[_0x3416('0x1b')](0xcc)[_0x3416('0x27')]();});}};}function handleEntityNotFound(_0x473e47,_0x354cac){return function(_0x3c6d32){if(!_0x3c6d32){_0x473e47['sendStatus'](0x194);}return _0x3c6d32;};}function handleError(_0x2c276e,_0x27bfd0){_0x27bfd0=_0x27bfd0||0x1f4;return function(_0x356aa4){logger[_0x3416('0x28')](_0x356aa4[_0x3416('0x29')]);if(_0x356aa4[_0x3416('0x2a')]){delete _0x356aa4[_0x3416('0x2a')];}_0x2c276e[_0x3416('0x1b')](_0x27bfd0)['send'](_0x356aa4);};}exports[_0x3416('0x2b')]=function(_0x1929b1,_0x993b61){var _0x3d2c97={},_0x35cf61={},_0xe235e9={'count':0x0,'rows':[]};var _0x7b3940=_['map'](db['IntegrationReport'][_0x3416('0x2c')],function(_0x3e2b39){return{'name':_0x3e2b39[_0x3416('0x2d')],'type':_0x3e2b39['type'][_0x3416('0x2e')]};});_0x35cf61[_0x3416('0x2f')]=_[_0x3416('0x30')](_0x7b3940,_0x3416('0x2a'));_0x35cf61['query']=_[_0x3416('0x31')](_0x1929b1[_0x3416('0x32')]);_0x35cf61[_0x3416('0x33')]=_['intersection'](_0x35cf61[_0x3416('0x2f')],_0x35cf61['query']);_0x3d2c97[_0x3416('0x34')]=_[_0x3416('0x35')](_0x35cf61[_0x3416('0x2f')],qs['fields'](_0x1929b1[_0x3416('0x32')][_0x3416('0x36')]));_0x3d2c97[_0x3416('0x34')]=_0x3d2c97[_0x3416('0x34')][_0x3416('0x37')]?_0x3d2c97['attributes']:_0x35cf61[_0x3416('0x2f')];if(!_0x1929b1[_0x3416('0x32')]['hasOwnProperty'](_0x3416('0x38'))){_0x3d2c97['limit']=qs[_0x3416('0x1e')](_0x1929b1[_0x3416('0x32')]['limit']);_0x3d2c97['offset']=qs[_0x3416('0x20')](_0x1929b1[_0x3416('0x32')][_0x3416('0x20')]);}_0x3d2c97[_0x3416('0x39')]=qs[_0x3416('0x3a')](_0x1929b1[_0x3416('0x32')]['sort']);_0x3d2c97[_0x3416('0x3b')]=qs['filters'](_['pick'](_0x1929b1[_0x3416('0x32')],_0x35cf61[_0x3416('0x33')]),_0x7b3940);if(_0x1929b1[_0x3416('0x32')][_0x3416('0x3c')]){_0x3d2c97['where']=_['merge'](_0x3d2c97['where'],{'$or':_['map'](_0x7b3940,function(_0x414b33){if(_0x414b33[_0x3416('0x3d')]!==_0x3416('0x3e')){var _0x2c8e07={};_0x2c8e07[_0x414b33['name']]={'$like':'%'+_0x1929b1[_0x3416('0x32')][_0x3416('0x3c')]+'%'};return _0x2c8e07;}})});}_0x3d2c97=_[_0x3416('0x3f')]({},_0x3d2c97,_0x1929b1[_0x3416('0x40')]);var _0xd62939={'where':_0x3d2c97[_0x3416('0x3b')]};return db[_0x3416('0x41')][_0x3416('0x1f')](_0xd62939)[_0x3416('0x25')](function(_0x30c9d7){_0xe235e9[_0x3416('0x1f')]=_0x30c9d7;if(_0x1929b1[_0x3416('0x32')]['includeAll']){_0x3d2c97[_0x3416('0x42')]=[{'all':!![]}];}return db[_0x3416('0x41')]['findAll'](_0x3d2c97);})[_0x3416('0x25')](function(_0x1e6272){_0xe235e9[_0x3416('0x43')]=_0x1e6272;return _0xe235e9;})[_0x3416('0x25')](respondWithFilteredResult(_0x993b61,_0x3d2c97))[_0x3416('0x44')](handleError(_0x993b61,null));};exports[_0x3416('0x45')]=function(_0x425360,_0x136438){var _0x23a355={'raw':![],'where':{'id':_0x425360[_0x3416('0x46')]['id']}},_0x61941e={};_0x61941e['model']=_['keys'](db[_0x3416('0x41')]['rawAttributes']);_0x61941e[_0x3416('0x32')]=_[_0x3416('0x31')](_0x425360[_0x3416('0x32')]);_0x61941e['filters']=_[_0x3416('0x35')](_0x61941e[_0x3416('0x2f')],_0x61941e[_0x3416('0x32')]);_0x23a355[_0x3416('0x34')]=_[_0x3416('0x35')](_0x61941e[_0x3416('0x2f')],qs[_0x3416('0x36')](_0x425360[_0x3416('0x32')]['fields']));_0x23a355[_0x3416('0x34')]=_0x23a355[_0x3416('0x34')][_0x3416('0x37')]?_0x23a355['attributes']:_0x61941e[_0x3416('0x2f')];if(_0x425360[_0x3416('0x32')][_0x3416('0x47')]){_0x23a355[_0x3416('0x42')]=[{'all':!![]}];}_0x23a355=_[_0x3416('0x3f')]({},_0x23a355,_0x425360[_0x3416('0x40')]);return db[_0x3416('0x41')][_0x3416('0x48')](_0x23a355)[_0x3416('0x25')](handleEntityNotFound(_0x136438,null))[_0x3416('0x25')](respondWithResult(_0x136438,null))['catch'](handleError(_0x136438,null));};exports[_0x3416('0x49')]=function(_0x319330,_0x429ac6){return db[_0x3416('0x41')][_0x3416('0x49')](_0x319330[_0x3416('0x4a')],{})['then'](respondWithResult(_0x429ac6,0xc9))[_0x3416('0x44')](handleError(_0x429ac6,null));};exports[_0x3416('0x4b')]=function(_0x3ae1df,_0x394ca3){if(_0x3ae1df[_0x3416('0x4a')]['id']){delete _0x3ae1df[_0x3416('0x4a')]['id'];}return db[_0x3416('0x41')][_0x3416('0x48')]({'where':{'id':_0x3ae1df[_0x3416('0x46')]['id']}})['then'](handleEntityNotFound(_0x394ca3,null))[_0x3416('0x25')](saveUpdates(_0x3ae1df[_0x3416('0x4a')],null))[_0x3416('0x25')](respondWithResult(_0x394ca3,null))['catch'](handleError(_0x394ca3,null));};exports[_0x3416('0x26')]=function(_0x2af444,_0x1b780c){return db[_0x3416('0x41')][_0x3416('0x48')]({'where':{'id':_0x2af444[_0x3416('0x46')]['id']}})[_0x3416('0x25')](handleEntityNotFound(_0x1b780c,null))[_0x3416('0x25')](removeEntity(_0x1b780c,null))['catch'](handleError(_0x1b780c,null));};exports[_0x3416('0x4c')]=function(_0x160c7f,_0x254028){return db[_0x3416('0x41')][_0x3416('0x4c')]()[_0x3416('0x25')](respondWithResult(_0x254028,null))[_0x3416('0x44')](handleError(_0x254028,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5585=['../../config/logger','moment','bluebird','path','rimraf','define','IntegrationReport','report_integration','lodash','util'];(function(_0x3f2ad0,_0x10d42b){var _0x5a9b8d=function(_0x35f32b){while(--_0x35f32b){_0x3f2ad0['push'](_0x3f2ad0['shift']());}};_0x5a9b8d(++_0x10d42b);}(_0x5585,0x116));var _0x5558=function(_0x19e35c,_0x29cd1e){_0x19e35c=_0x19e35c-0x0;var _0x3e1fe8=_0x5585[_0x19e35c];return _0x3e1fe8;};'use strict';var _=require(_0x5558('0x0'));var util=require(_0x5558('0x1'));var logger=require(_0x5558('0x2'))('api');var moment=require(_0x5558('0x3'));var BPromise=require(_0x5558('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x5558('0x5'));var rimraf=require(_0x5558('0x6'));var config=require('../../config/environment');var attributes=require('./integrationReport.attributes');module['exports']=function(_0x57d5e8,_0x495431){return _0x57d5e8[_0x5558('0x7')](_0x5558('0x8'),attributes,{'tableName':_0x5558('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xc17c=['request-promise','path','rimraf','../../config/environment','./integrationReport.attributes','exports','define','IntegrationReport','report_integration','lodash','util','../../config/logger','api','moment','bluebird'];(function(_0x1b3f52,_0x4f5b13){var _0x36bf2c=function(_0x2c8426){while(--_0x2c8426){_0x1b3f52['push'](_0x1b3f52['shift']());}};_0x36bf2c(++_0x4f5b13);}(_0xc17c,0xae));var _0xcc17=function(_0x3818d7,_0x4764d9){_0x3818d7=_0x3818d7-0x0;var _0x3e8487=_0xc17c[_0x3818d7];return _0x3e8487;};'use strict';var _=require(_0xcc17('0x0'));var util=require(_0xcc17('0x1'));var logger=require(_0xcc17('0x2'))(_0xcc17('0x3'));var moment=require(_0xcc17('0x4'));var BPromise=require(_0xcc17('0x5'));var rp=require(_0xcc17('0x6'));var fs=require('fs');var path=require(_0xcc17('0x7'));var rimraf=require(_0xcc17('0x8'));var config=require(_0xcc17('0x9'));var attributes=require(_0xcc17('0xa'));module[_0xcc17('0xb')]=function(_0x2f329e,_0x29f5f0){return _0x2f329e[_0xcc17('0xc')](_0xcc17('0xd'),attributes,{'tableName':_0xcc17('0xe'),'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','IntegrationReport,\x20%s,\x20%s,\x20%s','stringify','error','IntegrationReport,\x20%s,\x20%s','message','result','catch','lodash','bluebird','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise'];(function(_0x125196,_0x45424c){var _0x1cc244=function(_0x7c1934){while(--_0x7c1934){_0x125196['push'](_0x125196['shift']());}};_0x1cc244(++_0x45424c);}(_0x0295,0x1f0));var _0x5029=function(_0x34c8ff,_0x674110){_0x34c8ff=_0x34c8ff-0x0;var _0x42601c=_0x0295[_0x34c8ff];return _0x42601c;};'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')]('IntegrationReport,\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 _0x53ec=['error','message','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../config/utils','rpc','../../config/environment','client','request','then','info','IntegrationReport,\x20%s,\x20%s','request\x20sent','debug','stringify','code'];(function(_0x725b8e,_0xc22b48){var _0x43ac45=function(_0x46bb4a){while(--_0x46bb4a){_0x725b8e['push'](_0x725b8e['shift']());}};_0x43ac45(++_0xc22b48);}(_0x53ec,0x192));var _0xc53e=function(_0x52de48,_0x5bc748){_0x52de48=_0x52de48-0x0;var _0x18f4c0=_0x53ec[_0x52de48];return _0x18f4c0;};'use strict';var _=require(_0xc53e('0x0'));var util=require(_0xc53e('0x1'));var moment=require(_0xc53e('0x2'));var BPromise=require(_0xc53e('0x3'));var rs=require(_0xc53e('0x4'));var fs=require('fs');var Redis=require(_0xc53e('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0xc53e('0x6'));var logger=require('../../config/logger')(_0xc53e('0x7'));var config=require(_0xc53e('0x8'));var jayson=require('jayson/promise');var client=jayson[_0xc53e('0x9')]['http']({'port':0x232a});function respondWithRpcPromise(_0x41a9e8,_0x2de88b,_0x5d3b28){return new BPromise(function(_0x1616ac,_0x1ac6c0){return client[_0xc53e('0xa')](_0x41a9e8,_0x5d3b28)[_0xc53e('0xb')](function(_0xd9612){logger[_0xc53e('0xc')](_0xc53e('0xd'),_0x2de88b,_0xc53e('0xe'));logger[_0xc53e('0xf')]('IntegrationReport,\x20%s,\x20%s,\x20%s',_0x2de88b,'request\x20sent',JSON[_0xc53e('0x10')](_0xd9612));if(_0xd9612['error']){if(_0xd9612['error'][_0xc53e('0x11')]===0x1f4){logger[_0xc53e('0x12')](_0xc53e('0xd'),_0x2de88b,_0xd9612[_0xc53e('0x12')]['message']);return _0x1ac6c0(_0xd9612['error'][_0xc53e('0x13')]);}logger[_0xc53e('0x12')](_0xc53e('0xd'),_0x2de88b,_0xd9612[_0xc53e('0x12')][_0xc53e('0x13')]);return _0x1616ac(_0xd9612[_0xc53e('0x12')][_0xc53e('0x13')]);}else{logger[_0xc53e('0xc')](_0xc53e('0xd'),_0x2de88b,_0xc53e('0xe'));_0x1616ac(_0xd9612['result'][_0xc53e('0x13')]);}})[_0xc53e('0x14')](function(_0x535cd4){logger[_0xc53e('0x12')](_0xc53e('0xd'),_0x2de88b,_0x535cd4);_0x1ac6c0(_0x535cd4);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xafec=['get','isAuthenticated','index','/:id','show','/:id/sub_intervals','getIntervals','post','create','/:id/sub_intervals/create_many','put','update','exports','util','path','connect-timeout','express','fs-extra','../../components/interaction/service','../../config/environment'];(function(_0xda464c,_0x26e47d){var _0x19e222=function(_0x1ec605){while(--_0x1ec605){_0xda464c['push'](_0xda464c['shift']());}};_0x19e222(++_0x26e47d);}(_0xafec,0x161));var _0xcafe=function(_0x216dc3,_0x564b16){_0x216dc3=_0x216dc3-0x0;var _0xe1d184=_0xafec[_0x216dc3];return _0xe1d184;};'use strict';var multer=require('multer');var util=require(_0xcafe('0x0'));var path=require(_0xcafe('0x1'));var timeout=require(_0xcafe('0x2'));var express=require(_0xcafe('0x3'));var router=express['Router']();var fs_extra=require(_0xcafe('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0xcafe('0x5'));var config=require(_0xcafe('0x6'));var controller=require('./interval.controller');router[_0xcafe('0x7')]('/',auth[_0xcafe('0x8')](),controller[_0xcafe('0x9')]);router[_0xcafe('0x7')](_0xcafe('0xa'),auth[_0xcafe('0x8')](),controller[_0xcafe('0xb')]);router[_0xcafe('0x7')](_0xcafe('0xc'),auth[_0xcafe('0x8')](),controller[_0xcafe('0xd')]);router[_0xcafe('0xe')]('/',auth['isAuthenticated'](),controller[_0xcafe('0xf')]);router['post'](_0xcafe('0xc'),auth['isAuthenticated'](),controller['addInterval']);router[_0xcafe('0xe')](_0xcafe('0x10'),auth[_0xcafe('0x8')](),controller['addIntervals']);router[_0xcafe('0x11')](_0xcafe('0xa'),auth[_0xcafe('0x8')](),controller[_0xcafe('0x12')]);router['delete'](_0xcafe('0xa'),auth[_0xcafe('0x8')](),controller['destroy']);module[_0xcafe('0x13')]=router;
\ No newline at end of file
+var _0xc5b4=['util','path','connect-timeout','Router','../../components/auth/service','../../config/environment','./interval.controller','get','isAuthenticated','/:id','show','/:id/sub_intervals','getIntervals','create','post','/:id/sub_intervals/create_many','addIntervals','put','update','delete','destroy','exports','multer'];(function(_0x9baa42,_0x3c90ed){var _0x6f87b=function(_0x21db54){while(--_0x21db54){_0x9baa42['push'](_0x9baa42['shift']());}};_0x6f87b(++_0x3c90ed);}(_0xc5b4,0x1cb));var _0x4c5b=function(_0x54820c,_0xd5a2f6){_0x54820c=_0x54820c-0x0;var _0x5c60c1=_0xc5b4[_0x54820c];return _0x5c60c1;};'use strict';var multer=require(_0x4c5b('0x0'));var util=require(_0x4c5b('0x1'));var path=require(_0x4c5b('0x2'));var timeout=require(_0x4c5b('0x3'));var express=require('express');var router=express[_0x4c5b('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0x4c5b('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0x4c5b('0x6'));var controller=require(_0x4c5b('0x7'));router[_0x4c5b('0x8')]('/',auth[_0x4c5b('0x9')](),controller['index']);router['get'](_0x4c5b('0xa'),auth[_0x4c5b('0x9')](),controller[_0x4c5b('0xb')]);router[_0x4c5b('0x8')](_0x4c5b('0xc'),auth[_0x4c5b('0x9')](),controller[_0x4c5b('0xd')]);router['post']('/',auth[_0x4c5b('0x9')](),controller[_0x4c5b('0xe')]);router[_0x4c5b('0xf')](_0x4c5b('0xc'),auth[_0x4c5b('0x9')](),controller['addInterval']);router[_0x4c5b('0xf')](_0x4c5b('0x10'),auth[_0x4c5b('0x9')](),controller[_0x4c5b('0x11')]);router[_0x4c5b('0x12')](_0x4c5b('0xa'),auth[_0x4c5b('0x9')](),controller[_0x4c5b('0x13')]);router[_0x4c5b('0x14')]('/:id',auth[_0x4c5b('0x9')](),controller[_0x4c5b('0x15')]);module[_0x4c5b('0x16')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8ca7=['exports','STRING','sequelize'];(function(_0x1c62a9,_0x374488){var _0x20ac7b=function(_0x12448a){while(--_0x12448a){_0x1c62a9['push'](_0x1c62a9['shift']());}};_0x20ac7b(++_0x374488);}(_0x8ca7,0x17c));var _0x78ca=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x8ca7[_0x3dd15e];return _0x231fd0;};'use strict';var Sequelize=require(_0x78ca('0x0'));module[_0x78ca('0x1')]={'name':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0x78ca('0x2')]},'interval':{'type':Sequelize['STRING'],'allowNull':!![]}};
\ No newline at end of file
+var _0xdc69=['STRING','sequelize','exports'];(function(_0x3afd24,_0x390e3d){var _0x580299=function(_0x452eb9){while(--_0x452eb9){_0x3afd24['push'](_0x3afd24['shift']());}};_0x580299(++_0x390e3d);}(_0xdc69,0xb5));var _0x9dc6=function(_0xef4cf0,_0x16c9c3){_0xef4cf0=_0xef4cf0-0x0;var _0x497ad2=_0xdc69[_0xef4cf0];return _0x497ad2;};'use strict';var Sequelize=require(_0x9dc6('0x0'));module[_0x9dc6('0x1')]={'name':{'type':Sequelize[_0x9dc6('0x2')]},'description':{'type':Sequelize[_0x9dc6('0x2')]},'interval':{'type':Sequelize[_0x9dc6('0x2')],'allowNull':!![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9a44=['eml-format','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','ejs','fs-extra','lodash','crypto','jsforce','desk.js','to-csv','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/logger','../../config/environment','../../mysqldb','../../components/extensions/rewrite','sendStatus','status','end','json','offset','limit','undefined','count','set','Content-Range','apply','reject','update','then','destroy','get','Intervals','UserProfileResource','error','stack','name','send','index','map','Interval','rawAttributes','fieldName','type','model','query','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','filters','filter','VIRTUAL','merge','options','includeAll','include','findAll','rows','catch','show','params','keys','find','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','userProfileId','autoAssociation','addInterval','getIntervals','findOne','length','pick','transaction','IntervalId'];(function(_0x2695f1,_0x4df997){var _0x4a5644=function(_0x3009d4){while(--_0x3009d4){_0x2695f1['push'](_0x2695f1['shift']());}};_0x4a5644(++_0x4df997);}(_0x9a44,0x168));var _0x49a4=function(_0x42622f,_0x3477c6){_0x42622f=_0x42622f-0x0;var _0x43dbae=_0x9a44[_0x42622f];return _0x43dbae;};'use strict';var emlformat=require(_0x49a4('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x49a4('0x1'));var rp=require(_0x49a4('0x2'));var moment=require(_0x49a4('0x3'));var BPromise=require(_0x49a4('0x4'));var Mustache=require(_0x49a4('0x5'));var util=require(_0x49a4('0x6'));var path=require(_0x49a4('0x7'));var sox=require(_0x49a4('0x8'));var csv=require('to-csv');var ejs=require(_0x49a4('0x9'));var fs=require('fs');var fs_extra=require(_0x49a4('0xa'));var _=require(_0x49a4('0xb'));var squel=require('squel');var crypto=require(_0x49a4('0xc'));var jsforce=require(_0x49a4('0xd'));var deskjs=require(_0x49a4('0xe'));var toCsv=require(_0x49a4('0xf'));var querystring=require('querystring');var Papa=require(_0x49a4('0x10'));var Redis=require('ioredis');var authService=require(_0x49a4('0x11'));var qs=require(_0x49a4('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x49a4('0x13'))('api');var utils=require('../../config/utils');var config=require(_0x49a4('0x14'));var licenseUtil=require('../../config/license/util');var db=require(_0x49a4('0x15'))['db'];var extensions=require(_0x49a4('0x16'));function respondWithStatusCode(_0x55c547,_0x45399f){_0x45399f=_0x45399f||0xcc;return function(_0x4cdfc9){if(_0x4cdfc9){return _0x55c547[_0x49a4('0x17')](_0x45399f);}return _0x55c547[_0x49a4('0x18')](_0x45399f)[_0x49a4('0x19')]();};}function respondWithResult(_0x1d6155,_0x9800dd){_0x9800dd=_0x9800dd||0xc8;return function(_0x1dddc3){if(_0x1dddc3){return _0x1d6155[_0x49a4('0x18')](_0x9800dd)[_0x49a4('0x1a')](_0x1dddc3);}};}function respondWithFilteredResult(_0xaf6eaa,_0xe062fc){return function(_0xc3ff1f){if(_0xc3ff1f){var _0x169996=typeof _0xe062fc[_0x49a4('0x1b')]==='undefined'&&typeof _0xe062fc[_0x49a4('0x1c')]===_0x49a4('0x1d');var _0x79a7ad=_0xc3ff1f[_0x49a4('0x1e')];var _0x29daa7=_0x169996?0x0:_0xe062fc['offset'];var _0x3a5097=_0x169996?_0xc3ff1f['count']:_0xe062fc['offset']+_0xe062fc[_0x49a4('0x1c')];var _0x2d7b44;if(_0x3a5097>=_0x79a7ad){_0x3a5097=_0x79a7ad;_0x2d7b44=0xc8;}else{_0x2d7b44=0xce;}_0xaf6eaa['status'](_0x2d7b44);return _0xaf6eaa[_0x49a4('0x1f')](_0x49a4('0x20'),_0x29daa7+'-'+_0x3a5097+'/'+_0x79a7ad)[_0x49a4('0x1a')](_0xc3ff1f);}return null;};}function patchUpdates(_0x30268a){return function(_0x933e00){try{jsonpatch[_0x49a4('0x21')](_0x933e00,_0x30268a,!![]);}catch(_0x364f8b){return BPromise[_0x49a4('0x22')](_0x364f8b);}return _0x933e00['save']();};}function saveUpdates(_0x37fa2b,_0x4f20a6){return function(_0x116aac){if(_0x116aac){return _0x116aac[_0x49a4('0x23')](_0x37fa2b)[_0x49a4('0x24')](function(_0x3a2362){return _0x3a2362;});}return null;};}function removeEntity(_0x33cf57,_0x2516e9){return function(_0x1cead7){if(_0x1cead7){return _0x1cead7[_0x49a4('0x25')]()[_0x49a4('0x24')](function(){var _0x4e866c=_0x1cead7[_0x49a4('0x26')]({'plain':!![]});var _0x235c04=_0x49a4('0x27');return db[_0x49a4('0x28')][_0x49a4('0x25')]({'where':{'type':_0x235c04,'resourceId':_0x4e866c['id']}})[_0x49a4('0x24')](function(){return _0x1cead7;});})[_0x49a4('0x24')](function(){_0x33cf57[_0x49a4('0x18')](0xcc)[_0x49a4('0x19')]();});}};}function handleEntityNotFound(_0x14617f,_0x2895e0){return function(_0x4dc674){if(!_0x4dc674){_0x14617f[_0x49a4('0x17')](0x194);}return _0x4dc674;};}function handleError(_0x1396c3,_0xfbdaf6){_0xfbdaf6=_0xfbdaf6||0x1f4;return function(_0x21a409){logger[_0x49a4('0x29')](_0x21a409[_0x49a4('0x2a')]);if(_0x21a409['name']){delete _0x21a409[_0x49a4('0x2b')];}_0x1396c3['status'](_0xfbdaf6)[_0x49a4('0x2c')](_0x21a409);};}exports[_0x49a4('0x2d')]=function(_0x18771e,_0x13a606){var _0x4fe335={},_0x57a69e={},_0x32f0b3={'count':0x0,'rows':[]};var _0x39cb8c=_[_0x49a4('0x2e')](db[_0x49a4('0x2f')][_0x49a4('0x30')],function(_0x439eaa){return{'name':_0x439eaa[_0x49a4('0x31')],'type':_0x439eaa[_0x49a4('0x32')]['key']};});_0x57a69e[_0x49a4('0x33')]=_[_0x49a4('0x2e')](_0x39cb8c,'name');_0x57a69e[_0x49a4('0x34')]=_['keys'](_0x18771e[_0x49a4('0x34')]);_0x57a69e['filters']=_[_0x49a4('0x35')](_0x57a69e['model'],_0x57a69e['query']);_0x4fe335[_0x49a4('0x36')]=_[_0x49a4('0x35')](_0x57a69e[_0x49a4('0x33')],qs[_0x49a4('0x37')](_0x18771e[_0x49a4('0x34')][_0x49a4('0x37')]));_0x4fe335['attributes']=_0x4fe335[_0x49a4('0x36')]['length']?_0x4fe335[_0x49a4('0x36')]:_0x57a69e[_0x49a4('0x33')];if(!_0x18771e['query'][_0x49a4('0x38')](_0x49a4('0x39'))){_0x4fe335[_0x49a4('0x1c')]=qs[_0x49a4('0x1c')](_0x18771e[_0x49a4('0x34')][_0x49a4('0x1c')]);_0x4fe335['offset']=qs['offset'](_0x18771e[_0x49a4('0x34')][_0x49a4('0x1b')]);}_0x4fe335[_0x49a4('0x3a')]=qs[_0x49a4('0x3b')](_0x18771e[_0x49a4('0x34')][_0x49a4('0x3b')]);_0x4fe335[_0x49a4('0x3c')]=qs[_0x49a4('0x3d')](_['pick'](_0x18771e[_0x49a4('0x34')],_0x57a69e[_0x49a4('0x3d')]),_0x39cb8c);if(_0x18771e[_0x49a4('0x34')][_0x49a4('0x3e')]){_0x4fe335[_0x49a4('0x3c')]=_['merge'](_0x4fe335[_0x49a4('0x3c')],{'$or':_['map'](_0x39cb8c,function(_0x5ea7b1){if(_0x5ea7b1['type']!==_0x49a4('0x3f')){var _0x87824a={};_0x87824a[_0x5ea7b1['name']]={'$like':'%'+_0x18771e[_0x49a4('0x34')][_0x49a4('0x3e')]+'%'};return _0x87824a;}})});}_0x4fe335=_[_0x49a4('0x40')]({},_0x4fe335,_0x18771e[_0x49a4('0x41')]);var _0x1c51d1={'where':_0x4fe335[_0x49a4('0x3c')]};return db[_0x49a4('0x2f')]['count'](_0x1c51d1)[_0x49a4('0x24')](function(_0x24f9ba){_0x32f0b3[_0x49a4('0x1e')]=_0x24f9ba;if(_0x18771e[_0x49a4('0x34')][_0x49a4('0x42')]){_0x4fe335[_0x49a4('0x43')]=[{'all':!![]}];}return db['Interval'][_0x49a4('0x44')](_0x4fe335);})[_0x49a4('0x24')](function(_0x3731b7){_0x32f0b3[_0x49a4('0x45')]=_0x3731b7;return _0x32f0b3;})[_0x49a4('0x24')](respondWithFilteredResult(_0x13a606,_0x4fe335))[_0x49a4('0x46')](handleError(_0x13a606,null));};exports[_0x49a4('0x47')]=function(_0x4120a5,_0x98c6f8){var _0x298c90={'raw':!![],'where':{'id':_0x4120a5[_0x49a4('0x48')]['id']}},_0x3fc39c={};_0x3fc39c[_0x49a4('0x33')]=_['keys'](db[_0x49a4('0x2f')][_0x49a4('0x30')]);_0x3fc39c['query']=_[_0x49a4('0x49')](_0x4120a5['query']);_0x3fc39c[_0x49a4('0x3d')]=_[_0x49a4('0x35')](_0x3fc39c['model'],_0x3fc39c[_0x49a4('0x34')]);_0x298c90[_0x49a4('0x36')]=_['intersection'](_0x3fc39c['model'],qs[_0x49a4('0x37')](_0x4120a5[_0x49a4('0x34')][_0x49a4('0x37')]));_0x298c90[_0x49a4('0x36')]=_0x298c90[_0x49a4('0x36')]['length']?_0x298c90['attributes']:_0x3fc39c['model'];if(_0x4120a5[_0x49a4('0x34')][_0x49a4('0x42')]){_0x298c90[_0x49a4('0x43')]=[{'all':!![]}];}_0x298c90=_[_0x49a4('0x40')]({},_0x298c90,_0x4120a5[_0x49a4('0x41')]);return db['Interval'][_0x49a4('0x4a')](_0x298c90)[_0x49a4('0x24')](handleEntityNotFound(_0x98c6f8,null))[_0x49a4('0x24')](respondWithResult(_0x98c6f8,null))[_0x49a4('0x46')](handleError(_0x98c6f8,null));};exports[_0x49a4('0x4b')]=function(_0x1bd2bc,_0x32a472){return db['Interval'][_0x49a4('0x4b')](_0x1bd2bc[_0x49a4('0x4c')],{})[_0x49a4('0x24')](function(_0x3e2c4b){var _0x47af1f=_0x1bd2bc['user'][_0x49a4('0x26')]({'plain':!![]});if(!_0x47af1f)throw new Error(_0x49a4('0x4d'));if(_0x47af1f[_0x49a4('0x4e')]===_0x49a4('0x4f')){var _0x5252aa=_0x3e2c4b[_0x49a4('0x26')]({'plain':!![]});var _0x4287f5=_0x49a4('0x27');return db[_0x49a4('0x50')]['find']({'where':{'name':_0x4287f5,'userProfileId':_0x47af1f[_0x49a4('0x51')]},'raw':!![]})['then'](function(_0x7c0153){if(_0x7c0153&&_0x7c0153[_0x49a4('0x52')]===0x0){return db[_0x49a4('0x28')][_0x49a4('0x4b')]({'name':_0x5252aa[_0x49a4('0x2b')],'resourceId':_0x5252aa['id'],'type':_0x7c0153[_0x49a4('0x2b')],'sectionId':_0x7c0153['id']},{})[_0x49a4('0x24')](function(){return _0x3e2c4b;});}else{return _0x3e2c4b;}})['catch'](function(_0x178a43){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x178a43);throw _0x178a43;});}return _0x3e2c4b;})['then'](respondWithResult(_0x32a472,0xc9))[_0x49a4('0x46')](handleError(_0x32a472,null));};exports['update']=function(_0x12fe4b,_0x2b439a){if(_0x12fe4b[_0x49a4('0x4c')]['id']){delete _0x12fe4b[_0x49a4('0x4c')]['id'];}return db['Interval'][_0x49a4('0x4a')]({'where':{'id':_0x12fe4b['params']['id']}})[_0x49a4('0x24')](handleEntityNotFound(_0x2b439a,null))['then'](saveUpdates(_0x12fe4b[_0x49a4('0x4c')],null))['then'](respondWithResult(_0x2b439a,null))['catch'](handleError(_0x2b439a,null));};exports[_0x49a4('0x25')]=function(_0x1e82d4,_0x4f26e2){return db[_0x49a4('0x2f')][_0x49a4('0x4a')]({'where':{'id':_0x1e82d4[_0x49a4('0x48')]['id']}})['then'](handleEntityNotFound(_0x4f26e2,null))['then'](removeEntity(_0x4f26e2,null))[_0x49a4('0x46')](handleError(_0x4f26e2,null));};exports[_0x49a4('0x53')]=function(_0x230ea9,_0xfca91,_0x14ba4d){if(_0x230ea9[_0x49a4('0x4c')]['id']){delete _0x230ea9['body']['id'];}return db[_0x49a4('0x2f')]['find']({'where':{'id':_0x230ea9[_0x49a4('0x48')]['id']}})[_0x49a4('0x24')](handleEntityNotFound(_0xfca91,null))[_0x49a4('0x24')](function(_0x16b84f){if(_0x16b84f){_0x230ea9[_0x49a4('0x4c')]['IntervalId']=_0x16b84f['id'];return db[_0x49a4('0x2f')][_0x49a4('0x4b')](_0x230ea9[_0x49a4('0x4c')]);}})[_0x49a4('0x24')](respondWithResult(_0xfca91,null))[_0x49a4('0x46')](handleError(_0xfca91,null));};exports[_0x49a4('0x54')]=function(_0x7419c2,_0x283d81,_0x44d7f5){var _0x6cce9={};var _0xcb702b={};var _0xf2bcce;var _0x2f0f96;return db['Interval'][_0x49a4('0x55')]({'where':{'id':_0x7419c2[_0x49a4('0x48')]['id']}})[_0x49a4('0x24')](handleEntityNotFound(_0x283d81,null))[_0x49a4('0x24')](function(_0x5b191a){if(_0x5b191a){_0xf2bcce=_0x5b191a;_0xcb702b['model']=_[_0x49a4('0x49')](db[_0x49a4('0x2f')][_0x49a4('0x30')]);_0xcb702b['query']=_[_0x49a4('0x49')](_0x7419c2[_0x49a4('0x34')]);_0xcb702b['filters']=_[_0x49a4('0x35')](_0xcb702b['model'],_0xcb702b[_0x49a4('0x34')]);_0x6cce9[_0x49a4('0x36')]=_[_0x49a4('0x35')](_0xcb702b[_0x49a4('0x33')],qs[_0x49a4('0x37')](_0x7419c2[_0x49a4('0x34')]['fields']));_0x6cce9[_0x49a4('0x36')]=_0x6cce9['attributes'][_0x49a4('0x56')]?_0x6cce9['attributes']:_0xcb702b[_0x49a4('0x33')];_0x6cce9[_0x49a4('0x3a')]=qs['sort'](_0x7419c2[_0x49a4('0x34')]['sort']);_0x6cce9[_0x49a4('0x3c')]=qs['filters'](_[_0x49a4('0x57')](_0x7419c2[_0x49a4('0x34')],_0xcb702b[_0x49a4('0x3d')]));if(_0x7419c2[_0x49a4('0x34')][_0x49a4('0x3e')]){_0x6cce9['where']=_[_0x49a4('0x40')](_0x6cce9[_0x49a4('0x3c')],{'$or':_['map'](_0x6cce9[_0x49a4('0x36')],function(_0x4f75c8){var _0x2b6cc6={};_0x2b6cc6[_0x4f75c8]={'$like':'%'+_0x7419c2['query'][_0x49a4('0x3e')]+'%'};return _0x2b6cc6;})});}_0x6cce9=_[_0x49a4('0x40')]({},_0x6cce9,_0x7419c2[_0x49a4('0x41')]);return _0xf2bcce['getIntervals'](_0x6cce9);}})[_0x49a4('0x24')](function(_0x504168){if(_0x504168){_0x2f0f96=_0x504168[_0x49a4('0x56')];if(!_0x7419c2[_0x49a4('0x34')][_0x49a4('0x38')](_0x49a4('0x39'))){_0x6cce9['limit']=qs[_0x49a4('0x1c')](_0x7419c2[_0x49a4('0x34')][_0x49a4('0x1c')]);_0x6cce9['offset']=qs[_0x49a4('0x1b')](_0x7419c2['query'][_0x49a4('0x1b')]);}return _0xf2bcce['getIntervals'](_0x6cce9);}})['then'](function(_0x5ca490){if(_0x5ca490){return _0x5ca490?{'count':_0x2f0f96,'rows':_0x5ca490}:null;}})[_0x49a4('0x24')](respondWithResult(_0x283d81,null))[_0x49a4('0x46')](handleError(_0x283d81,null));};exports['addIntervals']=function(_0xadb5bd,_0x46a066,_0x5c646b){return db[_0x49a4('0x2f')][_0x49a4('0x55')]({'where':{'id':_0xadb5bd[_0x49a4('0x48')]['id']}})[_0x49a4('0x24')](handleEntityNotFound(_0x46a066,null))[_0x49a4('0x24')](function(_0x2544c6){if(_0x2544c6){return db['sequelize'][_0x49a4('0x58')](function(_0x21a718){return db['Interval'][_0x49a4('0x25')]({'where':{'IntervalId':_0xadb5bd[_0x49a4('0x48')]['id']},'transaction':_0x21a718})['then'](function(_0x3bd30f){var _0x37d6b6=_[_0x49a4('0x2e')](_0xadb5bd['body'],function(_0x483ef8){delete _0x483ef8['id'];_0x483ef8[_0x49a4('0x59')]=_0xadb5bd['params']['id'];return _0x483ef8;});return db[_0x49a4('0x2f')]['bulkCreate'](_0x37d6b6,{'transaction':_0x21a718});});})[_0x49a4('0x24')](function(){return db[_0x49a4('0x2f')]['findAll']({'where':{'IntervalId':_0xadb5bd['params']['id']}});});}})[_0x49a4('0x24')](respondWithResult(_0x46a066,null))[_0x49a4('0x46')](handleError(_0x46a066,null));};
\ No newline at end of file
+var _0xc3b6=['sort','where','pick','filter','merge','VIRTUAL','options','Interval','includeAll','rows','catch','show','params','keys','rawAttributes','fields','include','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','find','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','addInterval','IntervalId','getIntervals','findOne','addIntervals','transaction','bulkCreate','findAll','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','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/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','Content-Range','apply','reject','update','then','destroy','get','Intervals','UserProfileResource','error','name','send','index','map','type','key','model','query','filters','intersection','attributes','length','hasOwnProperty','nolimit','order'];(function(_0x4c9fa9,_0x478b86){var _0x3ca7e0=function(_0x3ae043){while(--_0x3ae043){_0x4c9fa9['push'](_0x4c9fa9['shift']());}};_0x3ca7e0(++_0x478b86);}(_0xc3b6,0x140));var _0x6c3b=function(_0x903228,_0x42c429){_0x903228=_0x903228-0x0;var _0xcec81d=_0xc3b6[_0x903228];return _0xcec81d;};'use strict';var emlformat=require(_0x6c3b('0x0'));var rimraf=require(_0x6c3b('0x1'));var zipdir=require(_0x6c3b('0x2'));var jsonpatch=require(_0x6c3b('0x3'));var rp=require(_0x6c3b('0x4'));var moment=require(_0x6c3b('0x5'));var BPromise=require(_0x6c3b('0x6'));var Mustache=require(_0x6c3b('0x7'));var util=require('util');var path=require(_0x6c3b('0x8'));var sox=require(_0x6c3b('0x9'));var csv=require(_0x6c3b('0xa'));var ejs=require(_0x6c3b('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x6c3b('0xc'));var crypto=require(_0x6c3b('0xd'));var jsforce=require(_0x6c3b('0xe'));var deskjs=require(_0x6c3b('0xf'));var toCsv=require(_0x6c3b('0xa'));var querystring=require(_0x6c3b('0x10'));var Papa=require('papaparse');var Redis=require(_0x6c3b('0x11'));var authService=require(_0x6c3b('0x12'));var qs=require(_0x6c3b('0x13'));var as=require(_0x6c3b('0x14'));var hardwareService=require(_0x6c3b('0x15'));var logger=require(_0x6c3b('0x16'))(_0x6c3b('0x17'));var utils=require(_0x6c3b('0x18'));var config=require('../../config/environment');var licenseUtil=require(_0x6c3b('0x19'));var db=require(_0x6c3b('0x1a'))['db'];var extensions=require('../../components/extensions/rewrite');function respondWithStatusCode(_0x39c7b0,_0x494f86){_0x494f86=_0x494f86||0xcc;return function(_0x1d1e30){if(_0x1d1e30){return _0x39c7b0[_0x6c3b('0x1b')](_0x494f86);}return _0x39c7b0[_0x6c3b('0x1c')](_0x494f86)[_0x6c3b('0x1d')]();};}function respondWithResult(_0x3ab8a3,_0x21bcf7){_0x21bcf7=_0x21bcf7||0xc8;return function(_0x52b016){if(_0x52b016){return _0x3ab8a3[_0x6c3b('0x1c')](_0x21bcf7)[_0x6c3b('0x1e')](_0x52b016);}};}function respondWithFilteredResult(_0x42f378,_0x597c95){return function(_0x4dbfb1){if(_0x4dbfb1){var _0x2e4252=typeof _0x597c95[_0x6c3b('0x1f')]===_0x6c3b('0x20')&&typeof _0x597c95[_0x6c3b('0x21')]==='undefined';var _0x380726=_0x4dbfb1['count'];var _0x3e8ea9=_0x2e4252?0x0:_0x597c95[_0x6c3b('0x1f')];var _0x153d85=_0x2e4252?_0x4dbfb1[_0x6c3b('0x22')]:_0x597c95[_0x6c3b('0x1f')]+_0x597c95[_0x6c3b('0x21')];var _0x348d3e;if(_0x153d85>=_0x380726){_0x153d85=_0x380726;_0x348d3e=0xc8;}else{_0x348d3e=0xce;}_0x42f378['status'](_0x348d3e);return _0x42f378['set'](_0x6c3b('0x23'),_0x3e8ea9+'-'+_0x153d85+'/'+_0x380726)['json'](_0x4dbfb1);}return null;};}function patchUpdates(_0x39a70b){return function(_0x3578c6){try{jsonpatch[_0x6c3b('0x24')](_0x3578c6,_0x39a70b,!![]);}catch(_0x304eb1){return BPromise[_0x6c3b('0x25')](_0x304eb1);}return _0x3578c6['save']();};}function saveUpdates(_0x1b5797,_0x2d0c96){return function(_0x4c3b45){if(_0x4c3b45){return _0x4c3b45[_0x6c3b('0x26')](_0x1b5797)[_0x6c3b('0x27')](function(_0x23f67f){return _0x23f67f;});}return null;};}function removeEntity(_0x4971c2,_0x478fa1){return function(_0x3157f9){if(_0x3157f9){return _0x3157f9[_0x6c3b('0x28')]()[_0x6c3b('0x27')](function(){var _0xde98b8=_0x3157f9[_0x6c3b('0x29')]({'plain':!![]});var _0x5a6446=_0x6c3b('0x2a');return db[_0x6c3b('0x2b')][_0x6c3b('0x28')]({'where':{'type':_0x5a6446,'resourceId':_0xde98b8['id']}})['then'](function(){return _0x3157f9;});})[_0x6c3b('0x27')](function(){_0x4971c2[_0x6c3b('0x1c')](0xcc)[_0x6c3b('0x1d')]();});}};}function handleEntityNotFound(_0x1274e4,_0x47e82b){return function(_0x5abe19){if(!_0x5abe19){_0x1274e4[_0x6c3b('0x1b')](0x194);}return _0x5abe19;};}function handleError(_0x5943a1,_0x58326e){_0x58326e=_0x58326e||0x1f4;return function(_0x373bb1){logger[_0x6c3b('0x2c')](_0x373bb1['stack']);if(_0x373bb1[_0x6c3b('0x2d')]){delete _0x373bb1['name'];}_0x5943a1[_0x6c3b('0x1c')](_0x58326e)[_0x6c3b('0x2e')](_0x373bb1);};}exports[_0x6c3b('0x2f')]=function(_0xc9c338,_0x21f8e){var _0x23125b={},_0x3aad6a={},_0x4baab1={'count':0x0,'rows':[]};var _0x2846fc=_[_0x6c3b('0x30')](db['Interval']['rawAttributes'],function(_0x10cfb8){return{'name':_0x10cfb8['fieldName'],'type':_0x10cfb8[_0x6c3b('0x31')][_0x6c3b('0x32')]};});_0x3aad6a[_0x6c3b('0x33')]=_['map'](_0x2846fc,_0x6c3b('0x2d'));_0x3aad6a[_0x6c3b('0x34')]=_['keys'](_0xc9c338[_0x6c3b('0x34')]);_0x3aad6a[_0x6c3b('0x35')]=_[_0x6c3b('0x36')](_0x3aad6a[_0x6c3b('0x33')],_0x3aad6a['query']);_0x23125b[_0x6c3b('0x37')]=_[_0x6c3b('0x36')](_0x3aad6a[_0x6c3b('0x33')],qs['fields'](_0xc9c338[_0x6c3b('0x34')]['fields']));_0x23125b[_0x6c3b('0x37')]=_0x23125b[_0x6c3b('0x37')][_0x6c3b('0x38')]?_0x23125b['attributes']:_0x3aad6a[_0x6c3b('0x33')];if(!_0xc9c338[_0x6c3b('0x34')][_0x6c3b('0x39')](_0x6c3b('0x3a'))){_0x23125b['limit']=qs['limit'](_0xc9c338[_0x6c3b('0x34')]['limit']);_0x23125b[_0x6c3b('0x1f')]=qs[_0x6c3b('0x1f')](_0xc9c338[_0x6c3b('0x34')][_0x6c3b('0x1f')]);}_0x23125b[_0x6c3b('0x3b')]=qs[_0x6c3b('0x3c')](_0xc9c338[_0x6c3b('0x34')][_0x6c3b('0x3c')]);_0x23125b[_0x6c3b('0x3d')]=qs[_0x6c3b('0x35')](_[_0x6c3b('0x3e')](_0xc9c338[_0x6c3b('0x34')],_0x3aad6a[_0x6c3b('0x35')]),_0x2846fc);if(_0xc9c338[_0x6c3b('0x34')][_0x6c3b('0x3f')]){_0x23125b[_0x6c3b('0x3d')]=_[_0x6c3b('0x40')](_0x23125b[_0x6c3b('0x3d')],{'$or':_[_0x6c3b('0x30')](_0x2846fc,function(_0xf08eee){if(_0xf08eee[_0x6c3b('0x31')]!==_0x6c3b('0x41')){var _0x2e4944={};_0x2e4944[_0xf08eee[_0x6c3b('0x2d')]]={'$like':'%'+_0xc9c338[_0x6c3b('0x34')]['filter']+'%'};return _0x2e4944;}})});}_0x23125b=_[_0x6c3b('0x40')]({},_0x23125b,_0xc9c338[_0x6c3b('0x42')]);var _0x2d080c={'where':_0x23125b[_0x6c3b('0x3d')]};return db[_0x6c3b('0x43')]['count'](_0x2d080c)[_0x6c3b('0x27')](function(_0x9b3b62){_0x4baab1[_0x6c3b('0x22')]=_0x9b3b62;if(_0xc9c338[_0x6c3b('0x34')][_0x6c3b('0x44')]){_0x23125b['include']=[{'all':!![]}];}return db['Interval']['findAll'](_0x23125b);})[_0x6c3b('0x27')](function(_0x31cd6d){_0x4baab1[_0x6c3b('0x45')]=_0x31cd6d;return _0x4baab1;})[_0x6c3b('0x27')](respondWithFilteredResult(_0x21f8e,_0x23125b))[_0x6c3b('0x46')](handleError(_0x21f8e,null));};exports[_0x6c3b('0x47')]=function(_0x57c75d,_0x26ea27){var _0x5b79a7={'raw':!![],'where':{'id':_0x57c75d[_0x6c3b('0x48')]['id']}},_0x3d75c5={};_0x3d75c5['model']=_[_0x6c3b('0x49')](db[_0x6c3b('0x43')][_0x6c3b('0x4a')]);_0x3d75c5[_0x6c3b('0x34')]=_[_0x6c3b('0x49')](_0x57c75d['query']);_0x3d75c5['filters']=_[_0x6c3b('0x36')](_0x3d75c5['model'],_0x3d75c5[_0x6c3b('0x34')]);_0x5b79a7['attributes']=_['intersection'](_0x3d75c5[_0x6c3b('0x33')],qs[_0x6c3b('0x4b')](_0x57c75d[_0x6c3b('0x34')][_0x6c3b('0x4b')]));_0x5b79a7[_0x6c3b('0x37')]=_0x5b79a7[_0x6c3b('0x37')]['length']?_0x5b79a7[_0x6c3b('0x37')]:_0x3d75c5[_0x6c3b('0x33')];if(_0x57c75d['query'][_0x6c3b('0x44')]){_0x5b79a7[_0x6c3b('0x4c')]=[{'all':!![]}];}_0x5b79a7=_[_0x6c3b('0x40')]({},_0x5b79a7,_0x57c75d[_0x6c3b('0x42')]);return db['Interval']['find'](_0x5b79a7)[_0x6c3b('0x27')](handleEntityNotFound(_0x26ea27,null))[_0x6c3b('0x27')](respondWithResult(_0x26ea27,null))[_0x6c3b('0x46')](handleError(_0x26ea27,null));};exports[_0x6c3b('0x4d')]=function(_0x20d0f4,_0x25150a){return db[_0x6c3b('0x43')]['create'](_0x20d0f4[_0x6c3b('0x4e')],{})[_0x6c3b('0x27')](function(_0x45a43e){var _0x2f346b=_0x20d0f4[_0x6c3b('0x4f')][_0x6c3b('0x29')]({'plain':!![]});if(!_0x2f346b)throw new Error(_0x6c3b('0x50'));if(_0x2f346b[_0x6c3b('0x51')]==='user'){var _0x3e2433=_0x45a43e[_0x6c3b('0x29')]({'plain':!![]});var _0x5b5383=_0x6c3b('0x2a');return db[_0x6c3b('0x52')][_0x6c3b('0x53')]({'where':{'name':_0x5b5383,'userProfileId':_0x2f346b[_0x6c3b('0x54')]},'raw':!![]})['then'](function(_0x553c2c){if(_0x553c2c&&_0x553c2c[_0x6c3b('0x55')]===0x0){return db['UserProfileResource'][_0x6c3b('0x4d')]({'name':_0x3e2433['name'],'resourceId':_0x3e2433['id'],'type':_0x553c2c['name'],'sectionId':_0x553c2c['id']},{})['then'](function(){return _0x45a43e;});}else{return _0x45a43e;}})['catch'](function(_0x397e3c){logger[_0x6c3b('0x2c')](_0x6c3b('0x56'),_0x397e3c);throw _0x397e3c;});}return _0x45a43e;})[_0x6c3b('0x27')](respondWithResult(_0x25150a,0xc9))[_0x6c3b('0x46')](handleError(_0x25150a,null));};exports[_0x6c3b('0x26')]=function(_0x18d67,_0xa29d54){if(_0x18d67['body']['id']){delete _0x18d67[_0x6c3b('0x4e')]['id'];}return db[_0x6c3b('0x43')]['find']({'where':{'id':_0x18d67[_0x6c3b('0x48')]['id']}})[_0x6c3b('0x27')](handleEntityNotFound(_0xa29d54,null))[_0x6c3b('0x27')](saveUpdates(_0x18d67['body'],null))[_0x6c3b('0x27')](respondWithResult(_0xa29d54,null))['catch'](handleError(_0xa29d54,null));};exports[_0x6c3b('0x28')]=function(_0x250185,_0x2677d8){return db['Interval'][_0x6c3b('0x53')]({'where':{'id':_0x250185[_0x6c3b('0x48')]['id']}})[_0x6c3b('0x27')](handleEntityNotFound(_0x2677d8,null))[_0x6c3b('0x27')](removeEntity(_0x2677d8,null))[_0x6c3b('0x46')](handleError(_0x2677d8,null));};exports[_0x6c3b('0x57')]=function(_0xd8d4c0,_0x4bdcce,_0x3a65d4){if(_0xd8d4c0[_0x6c3b('0x4e')]['id']){delete _0xd8d4c0['body']['id'];}return db['Interval']['find']({'where':{'id':_0xd8d4c0[_0x6c3b('0x48')]['id']}})[_0x6c3b('0x27')](handleEntityNotFound(_0x4bdcce,null))[_0x6c3b('0x27')](function(_0x3487b0){if(_0x3487b0){_0xd8d4c0[_0x6c3b('0x4e')][_0x6c3b('0x58')]=_0x3487b0['id'];return db[_0x6c3b('0x43')][_0x6c3b('0x4d')](_0xd8d4c0['body']);}})[_0x6c3b('0x27')](respondWithResult(_0x4bdcce,null))[_0x6c3b('0x46')](handleError(_0x4bdcce,null));};exports[_0x6c3b('0x59')]=function(_0x1869d2,_0x47b7b2,_0x33d63b){var _0x3c0056={};var _0xad720d={};var _0x1fa8ec;var _0x591cb9;return db[_0x6c3b('0x43')][_0x6c3b('0x5a')]({'where':{'id':_0x1869d2[_0x6c3b('0x48')]['id']}})['then'](handleEntityNotFound(_0x47b7b2,null))[_0x6c3b('0x27')](function(_0x1edeeb){if(_0x1edeeb){_0x1fa8ec=_0x1edeeb;_0xad720d[_0x6c3b('0x33')]=_[_0x6c3b('0x49')](db['Interval'][_0x6c3b('0x4a')]);_0xad720d[_0x6c3b('0x34')]=_[_0x6c3b('0x49')](_0x1869d2[_0x6c3b('0x34')]);_0xad720d[_0x6c3b('0x35')]=_[_0x6c3b('0x36')](_0xad720d[_0x6c3b('0x33')],_0xad720d[_0x6c3b('0x34')]);_0x3c0056['attributes']=_['intersection'](_0xad720d['model'],qs[_0x6c3b('0x4b')](_0x1869d2['query'][_0x6c3b('0x4b')]));_0x3c0056['attributes']=_0x3c0056[_0x6c3b('0x37')][_0x6c3b('0x38')]?_0x3c0056[_0x6c3b('0x37')]:_0xad720d[_0x6c3b('0x33')];_0x3c0056[_0x6c3b('0x3b')]=qs[_0x6c3b('0x3c')](_0x1869d2[_0x6c3b('0x34')][_0x6c3b('0x3c')]);_0x3c0056[_0x6c3b('0x3d')]=qs[_0x6c3b('0x35')](_[_0x6c3b('0x3e')](_0x1869d2[_0x6c3b('0x34')],_0xad720d[_0x6c3b('0x35')]));if(_0x1869d2['query'][_0x6c3b('0x3f')]){_0x3c0056[_0x6c3b('0x3d')]=_[_0x6c3b('0x40')](_0x3c0056[_0x6c3b('0x3d')],{'$or':_[_0x6c3b('0x30')](_0x3c0056['attributes'],function(_0x155483){var _0x4cb5ec={};_0x4cb5ec[_0x155483]={'$like':'%'+_0x1869d2[_0x6c3b('0x34')][_0x6c3b('0x3f')]+'%'};return _0x4cb5ec;})});}_0x3c0056=_[_0x6c3b('0x40')]({},_0x3c0056,_0x1869d2[_0x6c3b('0x42')]);return _0x1fa8ec['getIntervals'](_0x3c0056);}})[_0x6c3b('0x27')](function(_0x3ff804){if(_0x3ff804){_0x591cb9=_0x3ff804[_0x6c3b('0x38')];if(!_0x1869d2[_0x6c3b('0x34')]['hasOwnProperty'](_0x6c3b('0x3a'))){_0x3c0056['limit']=qs['limit'](_0x1869d2['query'][_0x6c3b('0x21')]);_0x3c0056[_0x6c3b('0x1f')]=qs[_0x6c3b('0x1f')](_0x1869d2[_0x6c3b('0x34')]['offset']);}return _0x1fa8ec[_0x6c3b('0x59')](_0x3c0056);}})[_0x6c3b('0x27')](function(_0x304367){if(_0x304367){return _0x304367?{'count':_0x591cb9,'rows':_0x304367}:null;}})[_0x6c3b('0x27')](respondWithResult(_0x47b7b2,null))[_0x6c3b('0x46')](handleError(_0x47b7b2,null));};exports[_0x6c3b('0x5b')]=function(_0x188f76,_0x4c8874,_0x2a532d){return db[_0x6c3b('0x43')][_0x6c3b('0x5a')]({'where':{'id':_0x188f76[_0x6c3b('0x48')]['id']}})[_0x6c3b('0x27')](handleEntityNotFound(_0x4c8874,null))[_0x6c3b('0x27')](function(_0x3416e2){if(_0x3416e2){return db['sequelize'][_0x6c3b('0x5c')](function(_0x14c3d4){return db['Interval'][_0x6c3b('0x28')]({'where':{'IntervalId':_0x188f76[_0x6c3b('0x48')]['id']},'transaction':_0x14c3d4})[_0x6c3b('0x27')](function(_0x1628bf){var _0x4c01ce=_[_0x6c3b('0x30')](_0x188f76[_0x6c3b('0x4e')],function(_0x3a7c6b){delete _0x3a7c6b['id'];_0x3a7c6b[_0x6c3b('0x58')]=_0x188f76[_0x6c3b('0x48')]['id'];return _0x3a7c6b;});return db['Interval'][_0x6c3b('0x5d')](_0x4c01ce,{'transaction':_0x14c3d4});});})[_0x6c3b('0x27')](function(){return db[_0x6c3b('0x43')][_0x6c3b('0x5e')]({'where':{'IntervalId':_0x188f76[_0x6c3b('0x48')]['id']}});});}})[_0x6c3b('0x27')](respondWithResult(_0x4c8874,null))['catch'](handleError(_0x4c8874,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0ab8=['rimraf','../../config/environment','./interval.attributes','../../components/extensions/rewrite','exports','define','Interval','tools_intervals','rewrite','lodash','../../config/logger','api','bluebird'];(function(_0x2a868c,_0x467176){var _0x5028b0=function(_0x35cb37){while(--_0x35cb37){_0x2a868c['push'](_0x2a868c['shift']());}};_0x5028b0(++_0x467176);}(_0x0ab8,0x182));var _0x80ab=function(_0x11adb3,_0x42d1a1){_0x11adb3=_0x11adb3-0x0;var _0x3c981a=_0x0ab8[_0x11adb3];return _0x3c981a;};'use strict';var _=require(_0x80ab('0x0'));var util=require('util');var logger=require(_0x80ab('0x1'))(_0x80ab('0x2'));var moment=require('moment');var BPromise=require(_0x80ab('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0x80ab('0x4'));var config=require(_0x80ab('0x5'));var attributes=require(_0x80ab('0x6'));var extensions=require(_0x80ab('0x7'));module[_0x80ab('0x8')]=function(_0x4e3a32,_0x5acaff){return _0x4e3a32[_0x80ab('0x9')](_0x80ab('0xa'),attributes,{'tableName':_0x80ab('0xb'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'afterCreate':function(_0x769afc,_0x4ae8a9){extensions[_0x80ab('0xc')](_0x4e3a32,_0x769afc);},'afterBulkCreate':function(_0x510152,_0x467d2f,_0x217e96){_0x217e96();extensions['rewrite'](_0x4e3a32,_0x510152[0x0]);},'afterUpdate':function(_0x320b49,_0x4ab0fa){extensions['rewrite'](_0x4e3a32,_0x320b49);},'afterDestroy':function(_0x3c2b33,_0x5bf4a0){extensions[_0x80ab('0xc')](_0x4e3a32,_0x3c2b33);}}});};
\ No newline at end of file
+var _0xd9da=['define','Interval','tools_intervals','rewrite','util','../../config/logger','api','moment','bluebird','path','rimraf','../../config/environment','../../components/extensions/rewrite'];(function(_0x149667,_0x5abb75){var _0x3cfea8=function(_0x46bf3e){while(--_0x46bf3e){_0x149667['push'](_0x149667['shift']());}};_0x3cfea8(++_0x5abb75);}(_0xd9da,0x170));var _0xad9d=function(_0x4b369d,_0x265eb8){_0x4b369d=_0x4b369d-0x0;var _0x571a98=_0xd9da[_0x4b369d];return _0x571a98;};'use strict';var _=require('lodash');var util=require(_0xad9d('0x0'));var logger=require(_0xad9d('0x1'))(_0xad9d('0x2'));var moment=require(_0xad9d('0x3'));var BPromise=require(_0xad9d('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xad9d('0x5'));var rimraf=require(_0xad9d('0x6'));var config=require(_0xad9d('0x7'));var attributes=require('./interval.attributes');var extensions=require(_0xad9d('0x8'));module['exports']=function(_0x2bb3c7,_0x324c0a){return _0x2bb3c7[_0xad9d('0x9')](_0xad9d('0xa'),attributes,{'tableName':_0xad9d('0xb'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'afterCreate':function(_0xe4477a,_0x20fec2){extensions[_0xad9d('0xc')](_0x2bb3c7,_0xe4477a);},'afterBulkCreate':function(_0x37f820,_0x39ce7c,_0x555328){_0x555328();extensions[_0xad9d('0xc')](_0x2bb3c7,_0x37f820[0x0]);},'afterUpdate':function(_0x5a78ef,_0xed515d){extensions[_0xad9d('0xc')](_0x2bb3c7,_0x5a78ef);},'afterDestroy':function(_0x44b8da,_0x5ea485){extensions[_0xad9d('0xc')](_0x2bb3c7,_0x44b8da);}}});};
\ 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(_0x3a6e4b,_0x118cd9){var _0x36572d=function(_0x2a53cf){while(--_0x2a53cf){_0x3a6e4b['push'](_0x3a6e4b['shift']());}};_0x36572d(++_0x118cd9);}(_0xa9e0,0x123));var _0x0a9e=function(_0x56482c,_0x16118d){_0x56482c=_0x56482c-0x0;var _0x5aae7a=_0xa9e0[_0x56482c];return _0x5aae7a;};'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(_0x548200,_0x3241b8){var _0x1a6d74=function(_0x412f84){while(--_0x412f84){_0x548200['push'](_0x548200['shift']());}};_0x1a6d74(++_0x3241b8);}(_0xa9e0,0x123));var _0x0a9e=function(_0x38a7ac,_0x45514b){_0x38a7ac=_0x38a7ac-0x0;var _0x53061a=_0xa9e0[_0x38a7ac];return _0x53061a;};'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(_0x9c2427,_0x17c865){var _0x51984f=function(_0x177af6){while(--_0x177af6){_0x9c2427['push'](_0x9c2427['shift']());}};_0x51984f(++_0x17c865);}(_0x0b0e,0x187));var _0xe0b0=function(_0x2dbcef,_0x1cfecb){_0x2dbcef=_0x2dbcef-0x0;var _0x5a90ea=_0x0b0e[_0x2dbcef];return _0x5a90ea;};'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 _0x0b0e=['exports','express','../../components/auth/service','post','isAuthenticated','send'];(function(_0x36ed3c,_0x44a00a){var _0x52a2e0=function(_0x3f7af9){while(--_0x3f7af9){_0x36ed3c['push'](_0x36ed3c['shift']());}};_0x52a2e0(++_0x44a00a);}(_0x0b0e,0x187));var _0xe0b0=function(_0x4a29a9,_0x58cd04){_0x4a29a9=_0x4a29a9-0x0;var _0x386570=_0x0b0e[_0x4a29a9];return _0x386570;};'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
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe42a=['oldToken','customfield_11502','newToken','customfield_11503','name','customfield_11504','reason','/rest/api/2/issue','POST','application/json','toString','base64','stringify','request','setEncoding','utf8','data','statusCode','json','parse','error','status','Error\x20during\x20license\x20request.\x20Please\x20contact\x20our\x20license\x20team\x20at\x20license@xcally.com\x20with\x20your\x20request','write','end','openIssue','send','body','x-forwarded-for','connection','remoteAddress','socket','bluebird','https','../../config/logger','api','support','3eAmWpBVP0','key','MOTGUI','summary','Report','\x20from\x20','description','issuetype','Bug','fields','customfield_11500','email'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0xe42a,0xb3));var _0xae42=function(_0x320903,_0x2ce318){_0x320903=_0x320903-0x0;var _0x110ced=_0xe42a[_0x320903];return _0x110ced;};'use strict';var BPromise=require(_0xae42('0x0'));var https=require(_0xae42('0x1'));var logger=require(_0xae42('0x2'))(_0xae42('0x3'));var USERNAME=_0xae42('0x4');var PASSWORD=_0xae42('0x5');function openIssue(_0x484451,_0x418087){var _0x52f10a={'fields':{'project':{'key':_0x484451[_0xae42('0x6')]||_0xae42('0x7')},'summary':(_0x484451[_0xae42('0x8')]||_0xae42('0x9'))+_0xae42('0xa')+_0x484451['ip'],'description':_0x484451[_0xae42('0xb')]||JSON['stringify'](_0x484451),'issuetype':{'name':_0x484451[_0xae42('0xc')]||_0xae42('0xd')}}};_0x52f10a[_0xae42('0xe')][_0xae42('0xf')]=_0x484451[_0xae42('0x10')];_0x52f10a[_0xae42('0xe')]['customfield_11501']=_0x484451[_0xae42('0x11')];_0x52f10a[_0xae42('0xe')][_0xae42('0x12')]=_0x484451[_0xae42('0x13')];_0x52f10a[_0xae42('0xe')][_0xae42('0x14')]=_0x484451[_0xae42('0x15')];_0x52f10a[_0xae42('0xe')][_0xae42('0x16')]=_0x484451[_0xae42('0x17')];_0x52f10a[_0xae42('0xe')]['customfield_10102']=_0x484451['ip'];var _0x3ba901={'host':'track.xcallymotion.com','port':0x1bb,'path':_0xae42('0x18'),'method':_0xae42('0x19'),'timeout':0x4e20,'headers':{'Content-Type':_0xae42('0x1a'),'Authorization':'Basic\x20'+new Buffer(USERNAME+':'+PASSWORD)[_0xae42('0x1b')](_0xae42('0x1c'))}};var _0x4a462e=JSON[_0xae42('0x1d')](_0x52f10a);var _0x2aff12=https[_0xae42('0x1e')](_0x3ba901,function(_0xdbea3d){_0xdbea3d[_0xae42('0x1f')](_0xae42('0x20'));var _0x4861b6='';_0xdbea3d['on'](_0xae42('0x21'),function(_0x126bcc){_0x4861b6+=_0x126bcc;});_0xdbea3d['on']('end',function(){if(_0x418087){return _0x418087['status'](_0xdbea3d[_0xae42('0x22')])[_0xae42('0x23')](JSON[_0xae42('0x24')](_0x4861b6));}});});_0x2aff12['on'](_0xae42('0x25'),function(_0x46eb7b){if(_0x418087){return _0x418087[_0xae42('0x26')](0x1f4)['json']({'errors':[{'message':_0xae42('0x27'),'type':'api.jira'}]});}});_0x2aff12[_0xae42('0x28')](_0x4a462e);_0x2aff12[_0xae42('0x29')]();}exports[_0xae42('0x2a')]=openIssue;exports[_0xae42('0x2b')]=function(_0x5c6e19,_0x3f80a5){_0x5c6e19[_0xae42('0x2c')]['ip']=_0x5c6e19['headers'][_0xae42('0x2d')]||_0x5c6e19[_0xae42('0x2e')][_0xae42('0x2f')]||_0x5c6e19[_0xae42('0x30')][_0xae42('0x2f')]||_0x5c6e19[_0xae42('0x2e')][_0xae42('0x30')][_0xae42('0x2f')];return openIssue(_0x5c6e19[_0xae42('0x2c')],_0x3f80a5);};
\ No newline at end of file
+var _0x7e39=['body','headers','x-forwarded-for','connection','socket','remoteAddress','https','../../config/logger','support','3eAmWpBVP0','key','MOTGUI','summary','Report','\x20from\x20','description','issuetype','customfield_11500','customfield_11501','customfield_11502','newToken','fields','reason','customfield_10102','/rest/api/2/issue','toString','base64','stringify','request','utf8','data','end','status','statusCode','json','error','api.jira','write','openIssue','send'];(function(_0xf15139,_0x57959f){var _0x4185b9=function(_0x31e61b){while(--_0x31e61b){_0xf15139['push'](_0xf15139['shift']());}};_0x4185b9(++_0x57959f);}(_0x7e39,0x1e6));var _0x97e3=function(_0x19ea46,_0x5f1ea8){_0x19ea46=_0x19ea46-0x0;var _0x4fa894=_0x7e39[_0x19ea46];return _0x4fa894;};'use strict';var BPromise=require('bluebird');var https=require(_0x97e3('0x0'));var logger=require(_0x97e3('0x1'))('api');var USERNAME=_0x97e3('0x2');var PASSWORD=_0x97e3('0x3');function openIssue(_0x17fabb,_0x1de7c0){var _0x35b3a6={'fields':{'project':{'key':_0x17fabb[_0x97e3('0x4')]||_0x97e3('0x5')},'summary':(_0x17fabb[_0x97e3('0x6')]||_0x97e3('0x7'))+_0x97e3('0x8')+_0x17fabb['ip'],'description':_0x17fabb[_0x97e3('0x9')]||JSON['stringify'](_0x17fabb),'issuetype':{'name':_0x17fabb[_0x97e3('0xa')]||'Bug'}}};_0x35b3a6['fields'][_0x97e3('0xb')]=_0x17fabb['email'];_0x35b3a6['fields'][_0x97e3('0xc')]=_0x17fabb['oldToken'];_0x35b3a6['fields'][_0x97e3('0xd')]=_0x17fabb[_0x97e3('0xe')];_0x35b3a6[_0x97e3('0xf')]['customfield_11503']=_0x17fabb['name'];_0x35b3a6[_0x97e3('0xf')]['customfield_11504']=_0x17fabb[_0x97e3('0x10')];_0x35b3a6[_0x97e3('0xf')][_0x97e3('0x11')]=_0x17fabb['ip'];var _0x501777={'host':'track.xcallymotion.com','port':0x1bb,'path':_0x97e3('0x12'),'method':'POST','timeout':0x4e20,'headers':{'Content-Type':'application/json','Authorization':'Basic\x20'+new Buffer(USERNAME+':'+PASSWORD)[_0x97e3('0x13')](_0x97e3('0x14'))}};var _0x165b9a=JSON[_0x97e3('0x15')](_0x35b3a6);var _0x110766=https[_0x97e3('0x16')](_0x501777,function(_0x3d8bdb){_0x3d8bdb['setEncoding'](_0x97e3('0x17'));var _0x32a15f='';_0x3d8bdb['on'](_0x97e3('0x18'),function(_0xcdcb38){_0x32a15f+=_0xcdcb38;});_0x3d8bdb['on'](_0x97e3('0x19'),function(){if(_0x1de7c0){return _0x1de7c0[_0x97e3('0x1a')](_0x3d8bdb[_0x97e3('0x1b')])[_0x97e3('0x1c')](JSON['parse'](_0x32a15f));}});});_0x110766['on'](_0x97e3('0x1d'),function(_0x273336){if(_0x1de7c0){return _0x1de7c0[_0x97e3('0x1a')](0x1f4)[_0x97e3('0x1c')]({'errors':[{'message':'Error\x20during\x20license\x20request.\x20Please\x20contact\x20our\x20license\x20team\x20at\x20license@xcally.com\x20with\x20your\x20request','type':_0x97e3('0x1e')}]});}});_0x110766[_0x97e3('0x1f')](_0x165b9a);_0x110766[_0x97e3('0x19')]();}exports[_0x97e3('0x20')]=openIssue;exports[_0x97e3('0x21')]=function(_0x4d02d7,_0x41834d){_0x4d02d7[_0x97e3('0x22')]['ip']=_0x4d02d7[_0x97e3('0x23')][_0x97e3('0x24')]||_0x4d02d7[_0x97e3('0x25')]['remoteAddress']||_0x4d02d7[_0x97e3('0x26')][_0x97e3('0x27')]||_0x4d02d7[_0x97e3('0x25')]['socket'][_0x97e3('0x27')];return openIssue(_0x4d02d7['body'],_0x41834d);};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9bde=['fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./jscriptyAnswerReport.controller','get','index','/describe','isAuthenticated','describe','/:id','show','post','put','delete','destroy','util','connect-timeout','Router'];(function(_0x374e4e,_0x2d27c4){var _0xe05052=function(_0x210f69){while(--_0x210f69){_0x374e4e['push'](_0x374e4e['shift']());}};_0xe05052(++_0x2d27c4);}(_0x9bde,0xe1));var _0xe9bd=function(_0x99cd2f,_0x49677d){_0x99cd2f=_0x99cd2f-0x0;var _0x26d414=_0x9bde[_0x99cd2f];return _0x26d414;};'use strict';var multer=require('multer');var util=require(_0xe9bd('0x0'));var path=require('path');var timeout=require(_0xe9bd('0x1'));var express=require('express');var router=express[_0xe9bd('0x2')]();var fs_extra=require(_0xe9bd('0x3'));var auth=require(_0xe9bd('0x4'));var interaction=require(_0xe9bd('0x5'));var config=require(_0xe9bd('0x6'));var controller=require(_0xe9bd('0x7'));router[_0xe9bd('0x8')]('/',auth['isAuthenticated'](),controller[_0xe9bd('0x9')]);router[_0xe9bd('0x8')](_0xe9bd('0xa'),auth[_0xe9bd('0xb')](),controller[_0xe9bd('0xc')]);router[_0xe9bd('0x8')](_0xe9bd('0xd'),auth[_0xe9bd('0xb')](),controller[_0xe9bd('0xe')]);router[_0xe9bd('0xf')]('/',auth['isAuthenticated'](),controller['create']);router[_0xe9bd('0x10')](_0xe9bd('0xd'),auth[_0xe9bd('0xb')](),controller['update']);router[_0xe9bd('0x11')](_0xe9bd('0xd'),auth[_0xe9bd('0xb')](),controller[_0xe9bd('0x12')]);module['exports']=router;
\ No newline at end of file
+var _0xee5b=['fs-extra','../../components/auth/service','../../components/interaction/service','get','isAuthenticated','index','show','post','put','/:id','update','delete','destroy','exports','multer','path','connect-timeout','Router'];(function(_0x16c7c4,_0x119d31){var _0x3a6f9a=function(_0x4857dc){while(--_0x4857dc){_0x16c7c4['push'](_0x16c7c4['shift']());}};_0x3a6f9a(++_0x119d31);}(_0xee5b,0x1f4));var _0xbee5=function(_0x26b61d,_0x95fabd){_0x26b61d=_0x26b61d-0x0;var _0x5c33df=_0xee5b[_0x26b61d];return _0x5c33df;};'use strict';var multer=require(_0xbee5('0x0'));var util=require('util');var path=require(_0xbee5('0x1'));var timeout=require(_0xbee5('0x2'));var express=require('express');var router=express[_0xbee5('0x3')]();var fs_extra=require(_0xbee5('0x4'));var auth=require(_0xbee5('0x5'));var interaction=require(_0xbee5('0x6'));var config=require('../../config/environment');var controller=require('./jscriptyAnswerReport.controller');router[_0xbee5('0x7')]('/',auth[_0xbee5('0x8')](),controller[_0xbee5('0x9')]);router[_0xbee5('0x7')]('/describe',auth['isAuthenticated'](),controller['describe']);router['get']('/:id',auth[_0xbee5('0x8')](),controller[_0xbee5('0xa')]);router[_0xbee5('0xb')]('/',auth[_0xbee5('0x8')](),controller['create']);router[_0xbee5('0xc')](_0xbee5('0xd'),auth[_0xbee5('0x8')](),controller[_0xbee5('0xe')]);router[_0xbee5('0xf')](_0xbee5('0xd'),auth[_0xbee5('0x8')](),controller[_0xbee5('0x10')]);module[_0xbee5('0x11')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7a54=['long','STRING','sequelize','exports','TEXT'];(function(_0xaa1b3e,_0x47d976){var _0x454d7d=function(_0x575b32){while(--_0x575b32){_0xaa1b3e['push'](_0xaa1b3e['shift']());}};_0x454d7d(++_0x47d976);}(_0x7a54,0x106));var _0x47a5=function(_0x2889b6,_0x242e06){_0x2889b6=_0x2889b6-0x0;var _0x46c514=_0x7a54[_0x2889b6];return _0x46c514;};'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(_0x50a0c2,_0x4befab){var _0x5ebadd=function(_0x3a3342){while(--_0x3a3342){_0x50a0c2['push'](_0x50a0c2['shift']());}};_0x5ebadd(++_0x4befab);}(_0x7a54,0x106));var _0x47a5=function(_0x49938b,_0x46ba15){_0x49938b=_0x49938b-0x0;var _0x17de8e=_0x7a54[_0x49938b];return _0x17de8e;};'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 _0xbbbd=['../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','json','offset','undefined','limit','count','set','apply','reject','save','update','destroy','then','name','send','index','map','rawAttributes','fieldName','type','model','keys','query','filters','intersection','attributes','fields','length','nolimit','order','sort','pick','filter','merge','where','VIRTUAL','options','includeAll','include','JscriptyAnswerReport','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','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/license/hardware','api'];(function(_0x586b92,_0x5e1725){var _0x27f1ed=function(_0x5a7f47){while(--_0x5a7f47){_0x586b92['push'](_0x586b92['shift']());}};_0x27f1ed(++_0x5e1725);}(_0xbbbd,0x86));var _0xdbbb=function(_0x5d2803,_0xf375bd){_0x5d2803=_0x5d2803-0x0;var _0xdcad2c=_0xbbbd[_0x5d2803];return _0xdcad2c;};'use strict';var emlformat=require(_0xdbbb('0x0'));var rimraf=require(_0xdbbb('0x1'));var zipdir=require(_0xdbbb('0x2'));var jsonpatch=require(_0xdbbb('0x3'));var rp=require(_0xdbbb('0x4'));var moment=require(_0xdbbb('0x5'));var BPromise=require(_0xdbbb('0x6'));var Mustache=require(_0xdbbb('0x7'));var util=require(_0xdbbb('0x8'));var path=require(_0xdbbb('0x9'));var sox=require(_0xdbbb('0xa'));var csv=require(_0xdbbb('0xb'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xdbbb('0xc'));var _=require(_0xdbbb('0xd'));var squel=require(_0xdbbb('0xe'));var crypto=require(_0xdbbb('0xf'));var jsforce=require(_0xdbbb('0x10'));var deskjs=require(_0xdbbb('0x11'));var toCsv=require(_0xdbbb('0xb'));var querystring=require(_0xdbbb('0x12'));var Papa=require(_0xdbbb('0x13'));var Redis=require(_0xdbbb('0x14'));var authService=require('../../components/auth/service');var qs=require(_0xdbbb('0x15'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xdbbb('0x16'));var logger=require('../../config/logger')(_0xdbbb('0x17'));var utils=require(_0xdbbb('0x18'));var config=require(_0xdbbb('0x19'));var licenseUtil=require(_0xdbbb('0x1a'));var db=require(_0xdbbb('0x1b'))['db'];function respondWithStatusCode(_0x2b1cfb,_0x4469dd){_0x4469dd=_0x4469dd||0xcc;return function(_0x63128d){if(_0x63128d){return _0x2b1cfb[_0xdbbb('0x1c')](_0x4469dd);}return _0x2b1cfb['status'](_0x4469dd)[_0xdbbb('0x1d')]();};}function respondWithResult(_0x5a2c64,_0x21706f){_0x21706f=_0x21706f||0xc8;return function(_0x22713c){if(_0x22713c){return _0x5a2c64[_0xdbbb('0x1e')](_0x21706f)[_0xdbbb('0x1f')](_0x22713c);}};}function respondWithFilteredResult(_0x433ffb,_0x14eb3a){return function(_0x2f0f91){if(_0x2f0f91){var _0xf4af5=typeof _0x14eb3a[_0xdbbb('0x20')]===_0xdbbb('0x21')&&typeof _0x14eb3a[_0xdbbb('0x22')]===_0xdbbb('0x21');var _0x4a18d9=_0x2f0f91[_0xdbbb('0x23')];var _0xbbf0b4=_0xf4af5?0x0:_0x14eb3a['offset'];var _0x5c4b3d=_0xf4af5?_0x2f0f91[_0xdbbb('0x23')]:_0x14eb3a[_0xdbbb('0x20')]+_0x14eb3a[_0xdbbb('0x22')];var _0x48284b;if(_0x5c4b3d>=_0x4a18d9){_0x5c4b3d=_0x4a18d9;_0x48284b=0xc8;}else{_0x48284b=0xce;}_0x433ffb[_0xdbbb('0x1e')](_0x48284b);return _0x433ffb[_0xdbbb('0x24')]('Content-Range',_0xbbf0b4+'-'+_0x5c4b3d+'/'+_0x4a18d9)[_0xdbbb('0x1f')](_0x2f0f91);}return null;};}function patchUpdates(_0x1c2e3f){return function(_0x128f93){try{jsonpatch[_0xdbbb('0x25')](_0x128f93,_0x1c2e3f,!![]);}catch(_0x4b0984){return BPromise[_0xdbbb('0x26')](_0x4b0984);}return _0x128f93[_0xdbbb('0x27')]();};}function saveUpdates(_0x6c7610,_0xe98d9e){return function(_0x29c9c6){if(_0x29c9c6){return _0x29c9c6[_0xdbbb('0x28')](_0x6c7610)['then'](function(_0xf998f2){return _0xf998f2;});}return null;};}function removeEntity(_0x2de604,_0x537086){return function(_0x47df58){if(_0x47df58){return _0x47df58[_0xdbbb('0x29')]()[_0xdbbb('0x2a')](function(){_0x2de604[_0xdbbb('0x1e')](0xcc)['end']();});}};}function handleEntityNotFound(_0x371c0b,_0x487880){return function(_0x28d527){if(!_0x28d527){_0x371c0b[_0xdbbb('0x1c')](0x194);}return _0x28d527;};}function handleError(_0x49df51,_0x4934be){_0x4934be=_0x4934be||0x1f4;return function(_0x180f55){logger['error'](_0x180f55['stack']);if(_0x180f55[_0xdbbb('0x2b')]){delete _0x180f55[_0xdbbb('0x2b')];}_0x49df51[_0xdbbb('0x1e')](_0x4934be)[_0xdbbb('0x2c')](_0x180f55);};}exports[_0xdbbb('0x2d')]=function(_0x3234d6,_0x452bea){var _0x41819a={},_0x4ee8f9={},_0x370725={'count':0x0,'rows':[]};var _0x5fcf32=_[_0xdbbb('0x2e')](db['JscriptyAnswerReport'][_0xdbbb('0x2f')],function(_0x30ab26){return{'name':_0x30ab26[_0xdbbb('0x30')],'type':_0x30ab26[_0xdbbb('0x31')]['key']};});_0x4ee8f9[_0xdbbb('0x32')]=_['map'](_0x5fcf32,_0xdbbb('0x2b'));_0x4ee8f9['query']=_[_0xdbbb('0x33')](_0x3234d6[_0xdbbb('0x34')]);_0x4ee8f9[_0xdbbb('0x35')]=_[_0xdbbb('0x36')](_0x4ee8f9[_0xdbbb('0x32')],_0x4ee8f9[_0xdbbb('0x34')]);_0x41819a[_0xdbbb('0x37')]=_[_0xdbbb('0x36')](_0x4ee8f9[_0xdbbb('0x32')],qs[_0xdbbb('0x38')](_0x3234d6[_0xdbbb('0x34')][_0xdbbb('0x38')]));_0x41819a[_0xdbbb('0x37')]=_0x41819a[_0xdbbb('0x37')][_0xdbbb('0x39')]?_0x41819a[_0xdbbb('0x37')]:_0x4ee8f9[_0xdbbb('0x32')];if(!_0x3234d6[_0xdbbb('0x34')]['hasOwnProperty'](_0xdbbb('0x3a'))){_0x41819a['limit']=qs[_0xdbbb('0x22')](_0x3234d6[_0xdbbb('0x34')]['limit']);_0x41819a[_0xdbbb('0x20')]=qs[_0xdbbb('0x20')](_0x3234d6[_0xdbbb('0x34')][_0xdbbb('0x20')]);}_0x41819a[_0xdbbb('0x3b')]=qs['sort'](_0x3234d6[_0xdbbb('0x34')][_0xdbbb('0x3c')]);_0x41819a['where']=qs[_0xdbbb('0x35')](_[_0xdbbb('0x3d')](_0x3234d6[_0xdbbb('0x34')],_0x4ee8f9[_0xdbbb('0x35')]),_0x5fcf32);if(_0x3234d6[_0xdbbb('0x34')][_0xdbbb('0x3e')]){_0x41819a['where']=_[_0xdbbb('0x3f')](_0x41819a[_0xdbbb('0x40')],{'$or':_[_0xdbbb('0x2e')](_0x5fcf32,function(_0x2ddd25){if(_0x2ddd25[_0xdbbb('0x31')]!==_0xdbbb('0x41')){var _0x529f83={};_0x529f83[_0x2ddd25[_0xdbbb('0x2b')]]={'$like':'%'+_0x3234d6[_0xdbbb('0x34')][_0xdbbb('0x3e')]+'%'};return _0x529f83;}})});}_0x41819a=_[_0xdbbb('0x3f')]({},_0x41819a,_0x3234d6[_0xdbbb('0x42')]);var _0x1b0418={'where':_0x41819a[_0xdbbb('0x40')]};return db['JscriptyAnswerReport']['count'](_0x1b0418)['then'](function(_0x2bc5e1){_0x370725[_0xdbbb('0x23')]=_0x2bc5e1;if(_0x3234d6['query'][_0xdbbb('0x43')]){_0x41819a[_0xdbbb('0x44')]=[{'all':!![]}];}return db[_0xdbbb('0x45')][_0xdbbb('0x46')](_0x41819a);})[_0xdbbb('0x2a')](function(_0x189f99){_0x370725[_0xdbbb('0x47')]=_0x189f99;return _0x370725;})[_0xdbbb('0x2a')](respondWithFilteredResult(_0x452bea,_0x41819a))[_0xdbbb('0x48')](handleError(_0x452bea,null));};exports[_0xdbbb('0x49')]=function(_0x1a31ee,_0x49c59b){var _0x467978={'raw':!![],'where':{'id':_0x1a31ee[_0xdbbb('0x4a')]['id']}},_0x4a1cd6={};_0x4a1cd6['model']=_[_0xdbbb('0x33')](db[_0xdbbb('0x45')][_0xdbbb('0x2f')]);_0x4a1cd6[_0xdbbb('0x34')]=_[_0xdbbb('0x33')](_0x1a31ee['query']);_0x4a1cd6[_0xdbbb('0x35')]=_[_0xdbbb('0x36')](_0x4a1cd6['model'],_0x4a1cd6['query']);_0x467978['attributes']=_[_0xdbbb('0x36')](_0x4a1cd6['model'],qs[_0xdbbb('0x38')](_0x1a31ee[_0xdbbb('0x34')][_0xdbbb('0x38')]));_0x467978[_0xdbbb('0x37')]=_0x467978[_0xdbbb('0x37')]['length']?_0x467978[_0xdbbb('0x37')]:_0x4a1cd6['model'];if(_0x1a31ee[_0xdbbb('0x34')]['includeAll']){_0x467978['include']=[{'all':!![]}];}_0x467978=_[_0xdbbb('0x3f')]({},_0x467978,_0x1a31ee[_0xdbbb('0x42')]);return db[_0xdbbb('0x45')][_0xdbbb('0x4b')](_0x467978)[_0xdbbb('0x2a')](handleEntityNotFound(_0x49c59b,null))[_0xdbbb('0x2a')](respondWithResult(_0x49c59b,null))[_0xdbbb('0x48')](handleError(_0x49c59b,null));};exports[_0xdbbb('0x4c')]=function(_0x954c98,_0x1a96fa){return db[_0xdbbb('0x45')][_0xdbbb('0x4c')](_0x954c98[_0xdbbb('0x4d')],{})['then'](respondWithResult(_0x1a96fa,0xc9))['catch'](handleError(_0x1a96fa,null));};exports[_0xdbbb('0x28')]=function(_0x4302a8,_0x318bca){if(_0x4302a8[_0xdbbb('0x4d')]['id']){delete _0x4302a8[_0xdbbb('0x4d')]['id'];}return db[_0xdbbb('0x45')]['find']({'where':{'id':_0x4302a8['params']['id']}})['then'](handleEntityNotFound(_0x318bca,null))['then'](saveUpdates(_0x4302a8[_0xdbbb('0x4d')],null))['then'](respondWithResult(_0x318bca,null))[_0xdbbb('0x48')](handleError(_0x318bca,null));};exports[_0xdbbb('0x29')]=function(_0x1b8ab1,_0x39621e){return db[_0xdbbb('0x45')][_0xdbbb('0x4b')]({'where':{'id':_0x1b8ab1[_0xdbbb('0x4a')]['id']}})[_0xdbbb('0x2a')](handleEntityNotFound(_0x39621e,null))[_0xdbbb('0x2a')](removeEntity(_0x39621e,null))[_0xdbbb('0x48')](handleError(_0x39621e,null));};exports[_0xdbbb('0x4e')]=function(_0x387ae2,_0x527bc7){return db['JscriptyAnswerReport'][_0xdbbb('0x4e')]()[_0xdbbb('0x2a')](respondWithResult(_0x527bc7,null))[_0xdbbb('0x48')](handleError(_0x527bc7,null));};
\ No newline at end of file
+var _0xc3a8=['includeAll','findAll','rows','catch','params','rawAttributes','find','create','body','describe','eml-format','rimraf','zip-dir','request-promise','bluebird','mustache','util','path','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','limit','count','Content-Range','reject','save','update','then','destroy','sendStatus','error','name','index','map','JscriptyAnswerReport','fieldName','key','model','query','keys','filters','attributes','intersection','fields','length','nolimit','order','sort','where','pick','filter','merge','type','VIRTUAL'];(function(_0x3ab9ee,_0x4a74b8){var _0x82ee88=function(_0x6ccc7e){while(--_0x6ccc7e){_0x3ab9ee['push'](_0x3ab9ee['shift']());}};_0x82ee88(++_0x4a74b8);}(_0xc3a8,0xe8));var _0x8c3a=function(_0x4e82ff,_0x3cbf4b){_0x4e82ff=_0x4e82ff-0x0;var _0x495205=_0xc3a8[_0x4e82ff];return _0x495205;};'use strict';var emlformat=require(_0x8c3a('0x0'));var rimraf=require(_0x8c3a('0x1'));var zipdir=require(_0x8c3a('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x8c3a('0x3'));var moment=require('moment');var BPromise=require(_0x8c3a('0x4'));var Mustache=require(_0x8c3a('0x5'));var util=require(_0x8c3a('0x6'));var path=require(_0x8c3a('0x7'));var sox=require('sox');var csv=require(_0x8c3a('0x8'));var ejs=require(_0x8c3a('0x9'));var fs=require('fs');var fs_extra=require(_0x8c3a('0xa'));var _=require(_0x8c3a('0xb'));var squel=require(_0x8c3a('0xc'));var crypto=require(_0x8c3a('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x8c3a('0xe'));var toCsv=require(_0x8c3a('0x8'));var querystring=require(_0x8c3a('0xf'));var Papa=require(_0x8c3a('0x10'));var Redis=require(_0x8c3a('0x11'));var authService=require('../../components/auth/service');var qs=require(_0x8c3a('0x12'));var as=require(_0x8c3a('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x8c3a('0x14'))(_0x8c3a('0x15'));var utils=require(_0x8c3a('0x16'));var config=require(_0x8c3a('0x17'));var licenseUtil=require(_0x8c3a('0x18'));var db=require(_0x8c3a('0x19'))['db'];function respondWithStatusCode(_0x5eb124,_0x99edce){_0x99edce=_0x99edce||0xcc;return function(_0x57e0ec){if(_0x57e0ec){return _0x5eb124['sendStatus'](_0x99edce);}return _0x5eb124[_0x8c3a('0x1a')](_0x99edce)[_0x8c3a('0x1b')]();};}function respondWithResult(_0x271d3d,_0x31f3d4){_0x31f3d4=_0x31f3d4||0xc8;return function(_0x290298){if(_0x290298){return _0x271d3d[_0x8c3a('0x1a')](_0x31f3d4)[_0x8c3a('0x1c')](_0x290298);}};}function respondWithFilteredResult(_0x513e00,_0x43b853){return function(_0x5be4ea){if(_0x5be4ea){var _0x1d8b7b=typeof _0x43b853[_0x8c3a('0x1d')]===_0x8c3a('0x1e')&&typeof _0x43b853[_0x8c3a('0x1f')]===_0x8c3a('0x1e');var _0x54fe05=_0x5be4ea['count'];var _0x51acdb=_0x1d8b7b?0x0:_0x43b853['offset'];var _0x29502b=_0x1d8b7b?_0x5be4ea[_0x8c3a('0x20')]:_0x43b853[_0x8c3a('0x1d')]+_0x43b853[_0x8c3a('0x1f')];var _0x365ab8;if(_0x29502b>=_0x54fe05){_0x29502b=_0x54fe05;_0x365ab8=0xc8;}else{_0x365ab8=0xce;}_0x513e00[_0x8c3a('0x1a')](_0x365ab8);return _0x513e00['set'](_0x8c3a('0x21'),_0x51acdb+'-'+_0x29502b+'/'+_0x54fe05)[_0x8c3a('0x1c')](_0x5be4ea);}return null;};}function patchUpdates(_0x4f77df){return function(_0x1590a7){try{jsonpatch['apply'](_0x1590a7,_0x4f77df,!![]);}catch(_0x3efbc4){return BPromise[_0x8c3a('0x22')](_0x3efbc4);}return _0x1590a7[_0x8c3a('0x23')]();};}function saveUpdates(_0x58ca7a,_0x429ca6){return function(_0xb78cfc){if(_0xb78cfc){return _0xb78cfc[_0x8c3a('0x24')](_0x58ca7a)[_0x8c3a('0x25')](function(_0x718982){return _0x718982;});}return null;};}function removeEntity(_0x3c5f12,_0x427917){return function(_0x5546c3){if(_0x5546c3){return _0x5546c3[_0x8c3a('0x26')]()['then'](function(){_0x3c5f12[_0x8c3a('0x1a')](0xcc)['end']();});}};}function handleEntityNotFound(_0xb9f4bf,_0xe50c44){return function(_0x530e9c){if(!_0x530e9c){_0xb9f4bf[_0x8c3a('0x27')](0x194);}return _0x530e9c;};}function handleError(_0x4a1c24,_0x9cc5a8){_0x9cc5a8=_0x9cc5a8||0x1f4;return function(_0x295fb9){logger[_0x8c3a('0x28')](_0x295fb9['stack']);if(_0x295fb9['name']){delete _0x295fb9[_0x8c3a('0x29')];}_0x4a1c24[_0x8c3a('0x1a')](_0x9cc5a8)['send'](_0x295fb9);};}exports[_0x8c3a('0x2a')]=function(_0x2f77b1,_0x4ae1e4){var _0xd5353d={},_0x31cad9={},_0x3d6fd5={'count':0x0,'rows':[]};var _0x48d1f8=_[_0x8c3a('0x2b')](db[_0x8c3a('0x2c')]['rawAttributes'],function(_0x3ba072){return{'name':_0x3ba072[_0x8c3a('0x2d')],'type':_0x3ba072['type'][_0x8c3a('0x2e')]};});_0x31cad9[_0x8c3a('0x2f')]=_[_0x8c3a('0x2b')](_0x48d1f8,'name');_0x31cad9[_0x8c3a('0x30')]=_[_0x8c3a('0x31')](_0x2f77b1[_0x8c3a('0x30')]);_0x31cad9[_0x8c3a('0x32')]=_['intersection'](_0x31cad9['model'],_0x31cad9[_0x8c3a('0x30')]);_0xd5353d[_0x8c3a('0x33')]=_[_0x8c3a('0x34')](_0x31cad9[_0x8c3a('0x2f')],qs[_0x8c3a('0x35')](_0x2f77b1['query'][_0x8c3a('0x35')]));_0xd5353d[_0x8c3a('0x33')]=_0xd5353d[_0x8c3a('0x33')][_0x8c3a('0x36')]?_0xd5353d[_0x8c3a('0x33')]:_0x31cad9['model'];if(!_0x2f77b1[_0x8c3a('0x30')]['hasOwnProperty'](_0x8c3a('0x37'))){_0xd5353d['limit']=qs[_0x8c3a('0x1f')](_0x2f77b1['query'][_0x8c3a('0x1f')]);_0xd5353d[_0x8c3a('0x1d')]=qs[_0x8c3a('0x1d')](_0x2f77b1[_0x8c3a('0x30')]['offset']);}_0xd5353d[_0x8c3a('0x38')]=qs[_0x8c3a('0x39')](_0x2f77b1[_0x8c3a('0x30')]['sort']);_0xd5353d[_0x8c3a('0x3a')]=qs[_0x8c3a('0x32')](_[_0x8c3a('0x3b')](_0x2f77b1[_0x8c3a('0x30')],_0x31cad9[_0x8c3a('0x32')]),_0x48d1f8);if(_0x2f77b1[_0x8c3a('0x30')][_0x8c3a('0x3c')]){_0xd5353d[_0x8c3a('0x3a')]=_[_0x8c3a('0x3d')](_0xd5353d[_0x8c3a('0x3a')],{'$or':_[_0x8c3a('0x2b')](_0x48d1f8,function(_0x582cdc){if(_0x582cdc[_0x8c3a('0x3e')]!==_0x8c3a('0x3f')){var _0x14d710={};_0x14d710[_0x582cdc['name']]={'$like':'%'+_0x2f77b1[_0x8c3a('0x30')]['filter']+'%'};return _0x14d710;}})});}_0xd5353d=_[_0x8c3a('0x3d')]({},_0xd5353d,_0x2f77b1['options']);var _0xaf4959={'where':_0xd5353d[_0x8c3a('0x3a')]};return db['JscriptyAnswerReport'][_0x8c3a('0x20')](_0xaf4959)[_0x8c3a('0x25')](function(_0x34926e){_0x3d6fd5[_0x8c3a('0x20')]=_0x34926e;if(_0x2f77b1[_0x8c3a('0x30')][_0x8c3a('0x40')]){_0xd5353d['include']=[{'all':!![]}];}return db['JscriptyAnswerReport'][_0x8c3a('0x41')](_0xd5353d);})[_0x8c3a('0x25')](function(_0x1e14cc){_0x3d6fd5[_0x8c3a('0x42')]=_0x1e14cc;return _0x3d6fd5;})['then'](respondWithFilteredResult(_0x4ae1e4,_0xd5353d))[_0x8c3a('0x43')](handleError(_0x4ae1e4,null));};exports['show']=function(_0x1ad084,_0x5ebaf5){var _0x7e7e08={'raw':!![],'where':{'id':_0x1ad084[_0x8c3a('0x44')]['id']}},_0x55c1d5={};_0x55c1d5[_0x8c3a('0x2f')]=_[_0x8c3a('0x31')](db[_0x8c3a('0x2c')][_0x8c3a('0x45')]);_0x55c1d5[_0x8c3a('0x30')]=_['keys'](_0x1ad084['query']);_0x55c1d5[_0x8c3a('0x32')]=_[_0x8c3a('0x34')](_0x55c1d5[_0x8c3a('0x2f')],_0x55c1d5['query']);_0x7e7e08[_0x8c3a('0x33')]=_[_0x8c3a('0x34')](_0x55c1d5[_0x8c3a('0x2f')],qs['fields'](_0x1ad084[_0x8c3a('0x30')][_0x8c3a('0x35')]));_0x7e7e08[_0x8c3a('0x33')]=_0x7e7e08[_0x8c3a('0x33')]['length']?_0x7e7e08[_0x8c3a('0x33')]:_0x55c1d5[_0x8c3a('0x2f')];if(_0x1ad084['query'][_0x8c3a('0x40')]){_0x7e7e08['include']=[{'all':!![]}];}_0x7e7e08=_['merge']({},_0x7e7e08,_0x1ad084['options']);return db[_0x8c3a('0x2c')][_0x8c3a('0x46')](_0x7e7e08)[_0x8c3a('0x25')](handleEntityNotFound(_0x5ebaf5,null))[_0x8c3a('0x25')](respondWithResult(_0x5ebaf5,null))[_0x8c3a('0x43')](handleError(_0x5ebaf5,null));};exports[_0x8c3a('0x47')]=function(_0xba973c,_0x16d669){return db[_0x8c3a('0x2c')][_0x8c3a('0x47')](_0xba973c[_0x8c3a('0x48')],{})['then'](respondWithResult(_0x16d669,0xc9))[_0x8c3a('0x43')](handleError(_0x16d669,null));};exports[_0x8c3a('0x24')]=function(_0xe3566b,_0x2b156c){if(_0xe3566b[_0x8c3a('0x48')]['id']){delete _0xe3566b[_0x8c3a('0x48')]['id'];}return db[_0x8c3a('0x2c')][_0x8c3a('0x46')]({'where':{'id':_0xe3566b[_0x8c3a('0x44')]['id']}})[_0x8c3a('0x25')](handleEntityNotFound(_0x2b156c,null))[_0x8c3a('0x25')](saveUpdates(_0xe3566b['body'],null))[_0x8c3a('0x25')](respondWithResult(_0x2b156c,null))[_0x8c3a('0x43')](handleError(_0x2b156c,null));};exports[_0x8c3a('0x26')]=function(_0x24e2c6,_0x15e6cb){return db[_0x8c3a('0x2c')][_0x8c3a('0x46')]({'where':{'id':_0x24e2c6[_0x8c3a('0x44')]['id']}})[_0x8c3a('0x25')](handleEntityNotFound(_0x15e6cb,null))['then'](removeEntity(_0x15e6cb,null))[_0x8c3a('0x43')](handleError(_0x15e6cb,null));};exports[_0x8c3a('0x49')]=function(_0x2eceb3,_0x339652){return db['JscriptyAnswerReport'][_0x8c3a('0x49')]()['then'](respondWithResult(_0x339652,null))['catch'](handleError(_0x339652,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x428f=['./jscriptyAnswerReport.attributes','define','JscriptyAnswerReport','report_jscripty_answers','lodash','../../config/logger','moment','bluebird','path'];(function(_0x134c2e,_0x3573c4){var _0x2825db=function(_0x2a574d){while(--_0x2a574d){_0x134c2e['push'](_0x134c2e['shift']());}};_0x2825db(++_0x3573c4);}(_0x428f,0xdc));var _0xf428=function(_0x3f7fb9,_0x2aec4e){_0x3f7fb9=_0x3f7fb9-0x0;var _0x36e234=_0x428f[_0x3f7fb9];return _0x36e234;};'use strict';var _=require(_0xf428('0x0'));var util=require('util');var logger=require(_0xf428('0x1'))('api');var moment=require(_0xf428('0x2'));var BPromise=require(_0xf428('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xf428('0x4'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0xf428('0x5'));module['exports']=function(_0x224dc3,_0x2eed4a){return _0x224dc3[_0xf428('0x6')](_0xf428('0x7'),attributes,{'tableName':_0xf428('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x1226=['rimraf','../../config/environment','./jscriptyAnswerReport.attributes','exports','JscriptyAnswerReport','report_jscripty_answers','lodash','../../config/logger','api','moment','bluebird','path'];(function(_0x58f675,_0xb3aa52){var _0x38355b=function(_0x5e7f2e){while(--_0x5e7f2e){_0x58f675['push'](_0x58f675['shift']());}};_0x38355b(++_0xb3aa52);}(_0x1226,0xc6));var _0x6122=function(_0x325a4c,_0x51a322){_0x325a4c=_0x325a4c-0x0;var _0x1f04fd=_0x1226[_0x325a4c];return _0x1f04fd;};'use strict';var _=require(_0x6122('0x0'));var util=require('util');var logger=require(_0x6122('0x1'))(_0x6122('0x2'));var moment=require(_0x6122('0x3'));var BPromise=require(_0x6122('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x6122('0x5'));var rimraf=require(_0x6122('0x6'));var config=require(_0x6122('0x7'));var attributes=require(_0x6122('0x8'));module[_0x6122('0x9')]=function(_0x579837,_0x173f9e){return _0x579837['define'](_0x6122('0xa'),attributes,{'tableName':_0x6122('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x755a=['error','code','message','lodash','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','then','JscriptyAnswerReport,\x20%s,\x20%s','request\x20sent','JscriptyAnswerReport,\x20%s,\x20%s,\x20%s','stringify'];(function(_0x127af0,_0x49fbc5){var _0x1fc410=function(_0x2894b1){while(--_0x2894b1){_0x127af0['push'](_0x127af0['shift']());}};_0x1fc410(++_0x49fbc5);}(_0x755a,0x93));var _0xa755=function(_0x3a7ade,_0x580f51){_0x3a7ade=_0x3a7ade-0x0;var _0xcf533f=_0x755a[_0x3a7ade];return _0xcf533f;};'use strict';var _=require(_0xa755('0x0'));var util=require('util');var moment=require('moment');var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xa755('0x1'));var db=require(_0xa755('0x2'))['db'];var utils=require('../../config/utils');var logger=require(_0xa755('0x3'))(_0xa755('0x4'));var config=require(_0xa755('0x5'));var jayson=require(_0xa755('0x6'));var client=jayson[_0xa755('0x7')]['http']({'port':0x232a});function respondWithRpcPromise(_0x4ffc5d,_0x4e397b,_0x52a751){return new BPromise(function(_0x21e35d,_0x1700b9){return client['request'](_0x4ffc5d,_0x52a751)[_0xa755('0x8')](function(_0x257dd2){logger['info'](_0xa755('0x9'),_0x4e397b,_0xa755('0xa'));logger['debug'](_0xa755('0xb'),_0x4e397b,'request\x20sent',JSON[_0xa755('0xc')](_0x257dd2));if(_0x257dd2['error']){if(_0x257dd2[_0xa755('0xd')][_0xa755('0xe')]===0x1f4){logger['error']('JscriptyAnswerReport,\x20%s,\x20%s',_0x4e397b,_0x257dd2[_0xa755('0xd')][_0xa755('0xf')]);return _0x1700b9(_0x257dd2[_0xa755('0xd')][_0xa755('0xf')]);}logger[_0xa755('0xd')](_0xa755('0x9'),_0x4e397b,_0x257dd2[_0xa755('0xd')][_0xa755('0xf')]);return _0x21e35d(_0x257dd2[_0xa755('0xd')][_0xa755('0xf')]);}else{logger['info'](_0xa755('0x9'),_0x4e397b,_0xa755('0xa'));_0x21e35d(_0x257dd2['result'][_0xa755('0xf')]);}})['catch'](function(_0x1b0deb){logger[_0xa755('0xd')](_0xa755('0x9'),_0x4e397b,_0x1b0deb);_0x1700b9(_0x1b0deb);});});}
\ No newline at end of file
+var _0xe044=['jayson/promise','http','request','then','info','JscriptyAnswerReport,\x20%s,\x20%s','request\x20sent','debug','JscriptyAnswerReport,\x20%s,\x20%s,\x20%s','stringify','code','error','message','catch','lodash','util','bluebird','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment'];(function(_0x2feda7,_0x5279ca){var _0x4cf401=function(_0x32b059){while(--_0x32b059){_0x2feda7['push'](_0x2feda7['shift']());}};_0x4cf401(++_0x5279ca);}(_0xe044,0x100));var _0x4e04=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xe044[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0x4e04('0x0'));var util=require(_0x4e04('0x1'));var moment=require('moment');var BPromise=require(_0x4e04('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0x4e04('0x3'))['db'];var utils=require(_0x4e04('0x4'));var logger=require(_0x4e04('0x5'))(_0x4e04('0x6'));var config=require(_0x4e04('0x7'));var jayson=require(_0x4e04('0x8'));var client=jayson['client'][_0x4e04('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x2d11c5,_0x1eb1ab,_0x285453){return new BPromise(function(_0x40662a,_0x29425a){return client[_0x4e04('0xa')](_0x2d11c5,_0x285453)[_0x4e04('0xb')](function(_0x18598d){logger[_0x4e04('0xc')](_0x4e04('0xd'),_0x1eb1ab,_0x4e04('0xe'));logger[_0x4e04('0xf')](_0x4e04('0x10'),_0x1eb1ab,_0x4e04('0xe'),JSON[_0x4e04('0x11')](_0x18598d));if(_0x18598d['error']){if(_0x18598d['error'][_0x4e04('0x12')]===0x1f4){logger['error'](_0x4e04('0xd'),_0x1eb1ab,_0x18598d[_0x4e04('0x13')][_0x4e04('0x14')]);return _0x29425a(_0x18598d[_0x4e04('0x13')]['message']);}logger['error'](_0x4e04('0xd'),_0x1eb1ab,_0x18598d['error'][_0x4e04('0x14')]);return _0x40662a(_0x18598d[_0x4e04('0x13')][_0x4e04('0x14')]);}else{logger[_0x4e04('0xc')](_0x4e04('0xd'),_0x1eb1ab,_0x4e04('0xe'));_0x40662a(_0x18598d['result'][_0x4e04('0x14')]);}})[_0x4e04('0x15')](function(_0x5e2835){logger[_0x4e04('0x13')](_0x4e04('0xd'),_0x1eb1ab,_0x5e2835);_0x29425a(_0x5e2835);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x307e=['../../components/auth/service','../../components/interaction/service','./jscriptyProject.controller','get','isAuthenticated','show','/:id/sessions','getSessions','/:id/answers','/:id/summary','getSummary','create','post','/:id/clone','clone','put','/:id','delete','destroy','exports','multer','util','path','connect-timeout','express','Router','fs-extra'];(function(_0x4c6d6f,_0x291557){var _0x2d4478=function(_0x106946){while(--_0x106946){_0x4c6d6f['push'](_0x4c6d6f['shift']());}};_0x2d4478(++_0x291557);}(_0x307e,0x65));var _0xe307=function(_0xecf6f7,_0x504f06){_0xecf6f7=_0xecf6f7-0x0;var _0x4d1f50=_0x307e[_0xecf6f7];return _0x4d1f50;};'use strict';var multer=require(_0xe307('0x0'));var util=require(_0xe307('0x1'));var path=require(_0xe307('0x2'));var timeout=require(_0xe307('0x3'));var express=require(_0xe307('0x4'));var router=express[_0xe307('0x5')]();var fs_extra=require(_0xe307('0x6'));var auth=require(_0xe307('0x7'));var interaction=require(_0xe307('0x8'));var config=require('../../config/environment');var controller=require(_0xe307('0x9'));router[_0xe307('0xa')]('/',auth[_0xe307('0xb')](),controller['index']);router[_0xe307('0xa')]('/:id',auth[_0xe307('0xb')](),controller[_0xe307('0xc')]);router['get'](_0xe307('0xd'),auth[_0xe307('0xb')](),controller[_0xe307('0xe')]);router[_0xe307('0xa')](_0xe307('0xf'),auth['isAuthenticated'](),controller['getAnswers']);router['get'](_0xe307('0x10'),auth['isAuthenticated'](),timeout('30s'),controller[_0xe307('0x11')]);router['post']('/',auth[_0xe307('0xb')](),controller[_0xe307('0x12')]);router[_0xe307('0x13')](_0xe307('0x14'),auth['isAuthenticated'](),controller[_0xe307('0x15')]);router[_0xe307('0x16')](_0xe307('0x17'),auth['isAuthenticated'](),controller['update']);router[_0xe307('0x18')](_0xe307('0x17'),auth['isAuthenticated'](),controller[_0xe307('0x19')]);module[_0xe307('0x1a')]=router;
\ No newline at end of file
+var _0x4cc6=['multer','util','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','./jscriptyProject.controller','get','isAuthenticated','index','/:id','show','/:id/sessions','getSessions','30s','getSummary','create','/:id/clone','put','exports'];(function(_0x5cbd7b,_0x207439){var _0x3fdfb8=function(_0x4eb12e){while(--_0x4eb12e){_0x5cbd7b['push'](_0x5cbd7b['shift']());}};_0x3fdfb8(++_0x207439);}(_0x4cc6,0x18c));var _0x64cc=function(_0x3132e8,_0x499a0e){_0x3132e8=_0x3132e8-0x0;var _0x43eb8c=_0x4cc6[_0x3132e8];return _0x43eb8c;};'use strict';var multer=require(_0x64cc('0x0'));var util=require(_0x64cc('0x1'));var path=require(_0x64cc('0x2'));var timeout=require(_0x64cc('0x3'));var express=require(_0x64cc('0x4'));var router=express[_0x64cc('0x5')]();var fs_extra=require('fs-extra');var auth=require(_0x64cc('0x6'));var interaction=require(_0x64cc('0x7'));var config=require('../../config/environment');var controller=require(_0x64cc('0x8'));router[_0x64cc('0x9')]('/',auth[_0x64cc('0xa')](),controller[_0x64cc('0xb')]);router[_0x64cc('0x9')](_0x64cc('0xc'),auth[_0x64cc('0xa')](),controller[_0x64cc('0xd')]);router[_0x64cc('0x9')](_0x64cc('0xe'),auth[_0x64cc('0xa')](),controller[_0x64cc('0xf')]);router[_0x64cc('0x9')]('/:id/answers',auth[_0x64cc('0xa')](),controller['getAnswers']);router['get']('/:id/summary',auth[_0x64cc('0xa')](),timeout(_0x64cc('0x10')),controller[_0x64cc('0x11')]);router['post']('/',auth['isAuthenticated'](),controller[_0x64cc('0x12')]);router['post'](_0x64cc('0x13'),auth[_0x64cc('0xa')](),controller['clone']);router[_0x64cc('0x14')](_0x64cc('0xc'),auth[_0x64cc('0xa')](),controller['update']);router['delete'](_0x64cc('0xc'),auth[_0x64cc('0xa')](),controller['destroy']);module[_0x64cc('0x15')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6db1=['setDataValue','formData','stringify','isString','format','getDataValue','description','BOOLEAN','sequelize','lodash','util','STRING','name','long','isObjectLike'];(function(_0x16c823,_0x239d0e){var _0x573fd1=function(_0x36427f){while(--_0x36427f){_0x16c823['push'](_0x16c823['shift']());}};_0x573fd1(++_0x239d0e);}(_0x6db1,0x1ac));var _0x16db=function(_0x21ea08,_0x24a948){_0x21ea08=_0x21ea08-0x0;var _0x4df367=_0x6db1[_0x21ea08];return _0x4df367;};'use strict';var Sequelize=require(_0x16db('0x0'));var _=require(_0x16db('0x1'));var util=require(_0x16db('0x2'));module['exports']={'name':{'type':Sequelize[_0x16db('0x3')],'unique':_0x16db('0x4')},'description':{'type':Sequelize[_0x16db('0x3')]},'formData':{'type':Sequelize['TEXT'](_0x16db('0x5')),'set':function(_0x5b83b2){if(_[_0x16db('0x6')](_0x5b83b2)){this[_0x16db('0x7')](_0x16db('0x8'),JSON[_0x16db('0x9')](_0x5b83b2));}else if(_[_0x16db('0xa')](_0x5b83b2)){this[_0x16db('0x7')](_0x16db('0x8'),_0x5b83b2);}else{this[_0x16db('0x7')](_0x16db('0x8'),util[_0x16db('0xb')]('{\x22name\x22:\x22%s\x22,\x22description\x22:\x22%s\x22,\x22pages\x22:[]}',this['getDataValue'](_0x16db('0x4'))||'',this[_0x16db('0xc')](_0x16db('0xd'))||''));}}},'enableUncompleteSave':{'type':Sequelize[_0x16db('0xe')],'defaultValue':!![]},'sendUnpauseOnSubmit':{'type':Sequelize[_0x16db('0xe')],'defaultValue':![]}};
\ No newline at end of file
+var _0xf1f0=['lodash','util','exports','name','long','isObjectLike','setDataValue','formData','stringify','isString','format','{\x22name\x22:\x22%s\x22,\x22description\x22:\x22%s\x22,\x22pages\x22:[]}','getDataValue','description','BOOLEAN','sequelize'];(function(_0x44f9d0,_0x37fa4e){var _0x27001a=function(_0x2f9d98){while(--_0x2f9d98){_0x44f9d0['push'](_0x44f9d0['shift']());}};_0x27001a(++_0x37fa4e);}(_0xf1f0,0xef));var _0x0f1f=function(_0x45c881,_0x29216c){_0x45c881=_0x45c881-0x0;var _0x5e578d=_0xf1f0[_0x45c881];return _0x5e578d;};'use strict';var Sequelize=require(_0x0f1f('0x0'));var _=require(_0x0f1f('0x1'));var util=require(_0x0f1f('0x2'));module[_0x0f1f('0x3')]={'name':{'type':Sequelize['STRING'],'unique':_0x0f1f('0x4')},'description':{'type':Sequelize['STRING']},'formData':{'type':Sequelize['TEXT'](_0x0f1f('0x5')),'set':function(_0x31bd24){if(_[_0x0f1f('0x6')](_0x31bd24)){this[_0x0f1f('0x7')](_0x0f1f('0x8'),JSON[_0x0f1f('0x9')](_0x31bd24));}else if(_[_0x0f1f('0xa')](_0x31bd24)){this[_0x0f1f('0x7')](_0x0f1f('0x8'),_0x31bd24);}else{this[_0x0f1f('0x7')]('formData',util[_0x0f1f('0xb')](_0x0f1f('0xc'),this[_0x0f1f('0xd')](_0x0f1f('0x4'))||'',this['getDataValue'](_0x0f1f('0xe'))||''));}}},'enableUncompleteSave':{'type':Sequelize[_0x0f1f('0xf')],'defaultValue':!![]},'sendUnpauseOnSubmit':{'type':Sequelize['BOOLEAN'],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4227=['starttime','parse','questionId','question','format','YYYY-MM-DD\x20HH:mm:ss','SessionId','answer','push','isEmpty','now','writeFileSync','/tmp/Jscripty_Project_%d_Summary_%s.csv','setHeader','attachment;\x20filename=','Jscripty_Project_%d_Summary_%s.csv','Content-type','text/csv','download','eml-format','fast-json-patch','moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','limit','count','set','apply','save','update','then','get','UserProfileResource','destroy','sendStatus','error','stack','name','map','JscriptyProject','rawAttributes','fieldName','type','key','model','query','keys','intersection','attributes','length','nolimit','order','sort','filters','pick','filter','where','VIRTUAL','merge','options','include','rows','catch','show','params','fields','includeAll','find','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Projects','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','clone','omit','createdAt','updatedAt','user','JscriptySessionReport','hasOwnProperty','ProjectId','findAll','getAnswers','findOne','JscriptyAnswerReport','fromCharCode','toString','indexOf','replace','startTime'];(function(_0x41f554,_0x268c83){var _0x27c121=function(_0x5d01ec){while(--_0x5d01ec){_0x41f554['push'](_0x41f554['shift']());}};_0x27c121(++_0x268c83);}(_0x4227,0x89));var _0x7422=function(_0x41b14f,_0x843d4c){_0x41b14f=_0x41b14f-0x0;var _0x4f3ccc=_0x4227[_0x41b14f];return _0x4f3ccc;};'use strict';var emlformat=require(_0x7422('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x7422('0x1'));var rp=require('request-promise');var moment=require(_0x7422('0x2'));var BPromise=require(_0x7422('0x3'));var Mustache=require(_0x7422('0x4'));var util=require('util');var path=require(_0x7422('0x5'));var sox=require(_0x7422('0x6'));var csv=require(_0x7422('0x7'));var ejs=require(_0x7422('0x8'));var fs=require('fs');var fs_extra=require(_0x7422('0x9'));var _=require(_0x7422('0xa'));var squel=require(_0x7422('0xb'));var crypto=require(_0x7422('0xc'));var jsforce=require(_0x7422('0xd'));var deskjs=require('desk.js');var toCsv=require(_0x7422('0x7'));var querystring=require(_0x7422('0xe'));var Papa=require(_0x7422('0xf'));var Redis=require('ioredis');var authService=require(_0x7422('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0x7422('0x11'));var hardwareService=require(_0x7422('0x12'));var logger=require(_0x7422('0x13'))(_0x7422('0x14'));var utils=require(_0x7422('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0x7422('0x16'));var db=require(_0x7422('0x17'))['db'];function respondWithStatusCode(_0x575c47,_0xb06dc6){_0xb06dc6=_0xb06dc6||0xcc;return function(_0x2acd6c){if(_0x2acd6c){return _0x575c47['sendStatus'](_0xb06dc6);}return _0x575c47[_0x7422('0x18')](_0xb06dc6)[_0x7422('0x19')]();};}function respondWithResult(_0x555082,_0x4d3f91){_0x4d3f91=_0x4d3f91||0xc8;return function(_0xeafd58){if(_0xeafd58){return _0x555082['status'](_0x4d3f91)[_0x7422('0x1a')](_0xeafd58);}};}function respondWithFilteredResult(_0x788829,_0x487c93){return function(_0x149c50){if(_0x149c50){var _0x39c31c=typeof _0x487c93[_0x7422('0x1b')]===_0x7422('0x1c')&&typeof _0x487c93[_0x7422('0x1d')]===_0x7422('0x1c');var _0x4e2b60=_0x149c50[_0x7422('0x1e')];var _0xa7ff41=_0x39c31c?0x0:_0x487c93[_0x7422('0x1b')];var _0x30656d=_0x39c31c?_0x149c50['count']:_0x487c93[_0x7422('0x1b')]+_0x487c93['limit'];var _0x22a1c8;if(_0x30656d>=_0x4e2b60){_0x30656d=_0x4e2b60;_0x22a1c8=0xc8;}else{_0x22a1c8=0xce;}_0x788829[_0x7422('0x18')](_0x22a1c8);return _0x788829[_0x7422('0x1f')]('Content-Range',_0xa7ff41+'-'+_0x30656d+'/'+_0x4e2b60)[_0x7422('0x1a')](_0x149c50);}return null;};}function patchUpdates(_0xacaad1){return function(_0x368e96){try{jsonpatch[_0x7422('0x20')](_0x368e96,_0xacaad1,!![]);}catch(_0x55f98f){return BPromise['reject'](_0x55f98f);}return _0x368e96[_0x7422('0x21')]();};}function saveUpdates(_0x380ef7,_0x20c1e3){return function(_0x7d34f2){if(_0x7d34f2){return _0x7d34f2[_0x7422('0x22')](_0x380ef7)[_0x7422('0x23')](function(_0xe4f174){return _0xe4f174;});}return null;};}function removeEntity(_0x596b89,_0x24ce62){return function(_0x46b927){if(_0x46b927){return _0x46b927['destroy']()[_0x7422('0x23')](function(){var _0x23fb68=_0x46b927[_0x7422('0x24')]({'plain':!![]});var _0x3eeb9c='Projects';return db[_0x7422('0x25')][_0x7422('0x26')]({'where':{'type':_0x3eeb9c,'resourceId':_0x23fb68['id']}})[_0x7422('0x23')](function(){return _0x46b927;});})[_0x7422('0x23')](function(){_0x596b89[_0x7422('0x18')](0xcc)['end']();});}};}function handleEntityNotFound(_0x34f1b0,_0x9c29c0){return function(_0x81c27e){if(!_0x81c27e){_0x34f1b0[_0x7422('0x27')](0x194);}return _0x81c27e;};}function handleError(_0x5ae0f7,_0x474aa8){_0x474aa8=_0x474aa8||0x1f4;return function(_0x20f71e){logger[_0x7422('0x28')](_0x20f71e[_0x7422('0x29')]);if(_0x20f71e['name']){delete _0x20f71e[_0x7422('0x2a')];}_0x5ae0f7[_0x7422('0x18')](_0x474aa8)['send'](_0x20f71e);};}exports['index']=function(_0x2baac6,_0x2fb125){var _0x5e08f7={},_0x1d5ae5={},_0x194a5e={'count':0x0,'rows':[]};var _0x3f577e=_[_0x7422('0x2b')](db[_0x7422('0x2c')][_0x7422('0x2d')],function(_0x212a66){return{'name':_0x212a66[_0x7422('0x2e')],'type':_0x212a66[_0x7422('0x2f')][_0x7422('0x30')]};});_0x1d5ae5[_0x7422('0x31')]=_['map'](_0x3f577e,_0x7422('0x2a'));_0x1d5ae5[_0x7422('0x32')]=_[_0x7422('0x33')](_0x2baac6[_0x7422('0x32')]);_0x1d5ae5['filters']=_[_0x7422('0x34')](_0x1d5ae5[_0x7422('0x31')],_0x1d5ae5[_0x7422('0x32')]);_0x5e08f7['attributes']=_['intersection'](_0x1d5ae5[_0x7422('0x31')],qs['fields'](_0x2baac6[_0x7422('0x32')]['fields']));_0x5e08f7[_0x7422('0x35')]=_0x5e08f7['attributes'][_0x7422('0x36')]?_0x5e08f7['attributes']:_0x1d5ae5['model'];if(!_0x2baac6[_0x7422('0x32')]['hasOwnProperty'](_0x7422('0x37'))){_0x5e08f7[_0x7422('0x1d')]=qs[_0x7422('0x1d')](_0x2baac6[_0x7422('0x32')][_0x7422('0x1d')]);_0x5e08f7[_0x7422('0x1b')]=qs[_0x7422('0x1b')](_0x2baac6['query'][_0x7422('0x1b')]);}_0x5e08f7[_0x7422('0x38')]=qs[_0x7422('0x39')](_0x2baac6[_0x7422('0x32')][_0x7422('0x39')]);_0x5e08f7['where']=qs[_0x7422('0x3a')](_[_0x7422('0x3b')](_0x2baac6['query'],_0x1d5ae5[_0x7422('0x3a')]),_0x3f577e);if(_0x2baac6['query'][_0x7422('0x3c')]){_0x5e08f7['where']=_['merge'](_0x5e08f7[_0x7422('0x3d')],{'$or':_[_0x7422('0x2b')](_0x3f577e,function(_0x2bcd3c){if(_0x2bcd3c['type']!==_0x7422('0x3e')){var _0x39f194={};_0x39f194[_0x2bcd3c['name']]={'$like':'%'+_0x2baac6[_0x7422('0x32')]['filter']+'%'};return _0x39f194;}})});}_0x5e08f7=_[_0x7422('0x3f')]({},_0x5e08f7,_0x2baac6[_0x7422('0x40')]);var _0x45ce6d={'where':_0x5e08f7[_0x7422('0x3d')]};return db[_0x7422('0x2c')][_0x7422('0x1e')](_0x45ce6d)[_0x7422('0x23')](function(_0x50b48f){_0x194a5e[_0x7422('0x1e')]=_0x50b48f;if(_0x2baac6[_0x7422('0x32')]['includeAll']){_0x5e08f7[_0x7422('0x41')]=[{'all':!![]}];}return db[_0x7422('0x2c')]['findAll'](_0x5e08f7);})[_0x7422('0x23')](function(_0x4e2cd4){_0x194a5e[_0x7422('0x42')]=_0x4e2cd4;return _0x194a5e;})['then'](respondWithFilteredResult(_0x2fb125,_0x5e08f7))[_0x7422('0x43')](handleError(_0x2fb125,null));};exports[_0x7422('0x44')]=function(_0xcea170,_0x2b5d09){var _0x451ebb={'raw':![],'where':{'id':_0xcea170[_0x7422('0x45')]['id']}},_0x208e72={};_0x208e72[_0x7422('0x31')]=_[_0x7422('0x33')](db[_0x7422('0x2c')]['rawAttributes']);_0x208e72[_0x7422('0x32')]=_['keys'](_0xcea170['query']);_0x208e72[_0x7422('0x3a')]=_[_0x7422('0x34')](_0x208e72['model'],_0x208e72[_0x7422('0x32')]);_0x451ebb[_0x7422('0x35')]=_[_0x7422('0x34')](_0x208e72[_0x7422('0x31')],qs[_0x7422('0x46')](_0xcea170[_0x7422('0x32')][_0x7422('0x46')]));_0x451ebb['attributes']=_0x451ebb[_0x7422('0x35')][_0x7422('0x36')]?_0x451ebb[_0x7422('0x35')]:_0x208e72[_0x7422('0x31')];if(_0xcea170['query'][_0x7422('0x47')]){_0x451ebb[_0x7422('0x41')]=[{'all':!![]}];}_0x451ebb=_[_0x7422('0x3f')]({},_0x451ebb,_0xcea170['options']);return db[_0x7422('0x2c')][_0x7422('0x48')](_0x451ebb)['then'](handleEntityNotFound(_0x2b5d09,null))['then'](respondWithResult(_0x2b5d09,null))['catch'](handleError(_0x2b5d09,null));};exports[_0x7422('0x49')]=function(_0xbbc9ab,_0x5b4694){return db[_0x7422('0x2c')]['create'](_0xbbc9ab[_0x7422('0x4a')],{})[_0x7422('0x23')](function(_0x2986ec){var _0x2a9ad4=_0xbbc9ab['user']['get']({'plain':!![]});if(!_0x2a9ad4)throw new Error(_0x7422('0x4b'));if(_0x2a9ad4[_0x7422('0x4c')]==='user'){var _0x121983=_0x2986ec[_0x7422('0x24')]({'plain':!![]});var _0x5034f8=_0x7422('0x4d');return db[_0x7422('0x4e')][_0x7422('0x48')]({'where':{'name':_0x5034f8,'userProfileId':_0x2a9ad4[_0x7422('0x4f')]},'raw':!![]})[_0x7422('0x23')](function(_0x2c6257){if(_0x2c6257&&_0x2c6257[_0x7422('0x50')]===0x0){return db[_0x7422('0x25')][_0x7422('0x49')]({'name':_0x121983[_0x7422('0x2a')],'resourceId':_0x121983['id'],'type':_0x2c6257['name'],'sectionId':_0x2c6257['id']},{})[_0x7422('0x23')](function(){return _0x2986ec;});}else{return _0x2986ec;}})[_0x7422('0x43')](function(_0x253e3d){logger['error'](_0x7422('0x51'),_0x253e3d);throw _0x253e3d;});}return _0x2986ec;})[_0x7422('0x23')](respondWithResult(_0x5b4694,0xc9))[_0x7422('0x43')](handleError(_0x5b4694,null));};exports[_0x7422('0x52')]=function(_0x3e64f3,_0x3d2cd4){var _0x55efae={'where':{'id':_0x3e64f3[_0x7422('0x45')]['id']}},_0x281e14={};_0x281e14[_0x7422('0x31')]=_[_0x7422('0x33')](db[_0x7422('0x2c')][_0x7422('0x2d')]);_0x55efae[_0x7422('0x35')]=_['intersection'](_0x281e14[_0x7422('0x31')],qs['fields'](_0x3e64f3['query'][_0x7422('0x46')]));_0x55efae['attributes']=_0x55efae[_0x7422('0x35')][_0x7422('0x36')]?_0x55efae[_0x7422('0x35')]:_0x281e14['model'];if(_0x3e64f3[_0x7422('0x32')][_0x7422('0x47')]){_0x55efae[_0x7422('0x41')]=[{'all':!![]}];}_0x55efae=_[_0x7422('0x3f')]({},_0x55efae,_0x3e64f3['options']);return db['JscriptyProject'][_0x7422('0x48')](_0x55efae)[_0x7422('0x23')](handleEntityNotFound(_0x3d2cd4,null))['then'](function(_0x5e8802){if(_0x5e8802){var _0x3606ce=_0x5e8802[_0x7422('0x24')]({'plain':!![]});_0x3606ce=qs[_0x7422('0x53')](_0x3606ce,['id',_0x7422('0x54'),_0x7422('0x55')]);_0x3e64f3[_0x7422('0x4a')]=_[_0x7422('0x53')](_0x3e64f3[_0x7422('0x4a')],['id',_0x7422('0x54'),_0x7422('0x55')]);return db['JscriptyProject'][_0x7422('0x49')](_[_0x7422('0x3f')](_0x3606ce,_0x3e64f3[_0x7422('0x4a')]),{'include':_0x3e64f3[_0x7422('0x32')][_0x7422('0x47')]?[{'all':!![]}]:undefined})[_0x7422('0x23')](function(_0x485654){var _0x2a7bf0=_0x3e64f3[_0x7422('0x56')][_0x7422('0x24')]({'plain':!![]});if(!_0x2a7bf0)throw new Error(_0x7422('0x4b'));if(_0x2a7bf0[_0x7422('0x4c')]===_0x7422('0x56')){var _0xe6d00c=_0x485654[_0x7422('0x24')]({'plain':!![]});var _0x529c48='Projects';return db[_0x7422('0x4e')][_0x7422('0x48')]({'where':{'name':_0x529c48,'userProfileId':_0x2a7bf0[_0x7422('0x4f')]},'raw':!![]})['then'](function(_0x405238){if(_0x405238&&_0x405238['autoAssociation']===0x0){return db['UserProfileResource'][_0x7422('0x49')]({'name':_0xe6d00c['name'],'resourceId':_0xe6d00c['id'],'type':_0x405238[_0x7422('0x2a')],'sectionId':_0x405238['id']},{})[_0x7422('0x23')](function(){return _0x485654;});}else{return _0x485654;}})[_0x7422('0x43')](function(_0x108e72){logger[_0x7422('0x28')](_0x7422('0x51'),_0x108e72);throw _0x108e72;});}return _0x485654;});}})[_0x7422('0x23')](respondWithResult(_0x3d2cd4,0xc9))[_0x7422('0x43')](handleError(_0x3d2cd4,null));};exports[_0x7422('0x22')]=function(_0x26f729,_0x2b7023){if(_0x26f729['body']['id']){delete _0x26f729[_0x7422('0x4a')]['id'];}return db[_0x7422('0x2c')][_0x7422('0x48')]({'where':{'id':_0x26f729[_0x7422('0x45')]['id']}})['then'](handleEntityNotFound(_0x2b7023,null))[_0x7422('0x23')](saveUpdates(_0x26f729['body'],null))[_0x7422('0x23')](respondWithResult(_0x2b7023,null))['catch'](handleError(_0x2b7023,null));};exports[_0x7422('0x26')]=function(_0x1de215,_0x5b2ed3){return db[_0x7422('0x2c')][_0x7422('0x48')]({'where':{'id':_0x1de215[_0x7422('0x45')]['id']}})[_0x7422('0x23')](handleEntityNotFound(_0x5b2ed3,null))[_0x7422('0x23')](removeEntity(_0x5b2ed3,null))[_0x7422('0x43')](handleError(_0x5b2ed3,null));};exports['getSessions']=function(_0x1fdfa9,_0x2012f0,_0x5e7973){var _0x122df8={'raw':!![],'where':{}};var _0x9ef112={};var _0x50ff6f={'count':0x0,'rows':[]};return db[_0x7422('0x2c')]['findOne']({'where':{'id':_0x1fdfa9[_0x7422('0x45')]['id']}})[_0x7422('0x23')](handleEntityNotFound(_0x2012f0,null))[_0x7422('0x23')](function(_0x1b9ce9){if(_0x1b9ce9){_0x9ef112[_0x7422('0x31')]=_[_0x7422('0x33')](db[_0x7422('0x57')]['rawAttributes']);_0x9ef112[_0x7422('0x32')]=_['keys'](_0x1fdfa9[_0x7422('0x32')]);_0x9ef112[_0x7422('0x3a')]=_['intersection'](_0x9ef112[_0x7422('0x31')],_0x9ef112[_0x7422('0x32')]);_0x122df8[_0x7422('0x35')]=_[_0x7422('0x34')](_0x9ef112['model'],qs['fields'](_0x1fdfa9[_0x7422('0x32')][_0x7422('0x46')]));_0x122df8[_0x7422('0x35')]=_0x122df8[_0x7422('0x35')][_0x7422('0x36')]?_0x122df8[_0x7422('0x35')]:_0x9ef112[_0x7422('0x31')];if(!_0x1fdfa9[_0x7422('0x32')][_0x7422('0x58')]('nolimit')){_0x122df8[_0x7422('0x1d')]=qs['limit'](_0x1fdfa9['query'][_0x7422('0x1d')]);_0x122df8['offset']=qs['offset'](_0x1fdfa9[_0x7422('0x32')][_0x7422('0x1b')]);}_0x122df8[_0x7422('0x38')]=qs[_0x7422('0x39')](_0x1fdfa9[_0x7422('0x32')][_0x7422('0x39')]);_0x122df8[_0x7422('0x3d')]=qs[_0x7422('0x3a')](_['pick'](_0x1fdfa9[_0x7422('0x32')],_0x9ef112[_0x7422('0x3a')]));_0x122df8[_0x7422('0x3d')][_0x7422('0x59')]=_0x1b9ce9['id'];if(_0x1fdfa9['query'][_0x7422('0x3c')]){_0x122df8[_0x7422('0x3d')]=_[_0x7422('0x3f')](_0x122df8[_0x7422('0x3d')],{'$or':_['map'](_0x122df8[_0x7422('0x35')],function(_0xcc17f7){var _0xdc8f78={};_0xdc8f78[_0xcc17f7]={'$like':'%'+_0x1fdfa9['query'][_0x7422('0x3c')]+'%'};return _0xdc8f78;})});}_0x122df8=_[_0x7422('0x3f')]({},_0x122df8,_0x1fdfa9[_0x7422('0x40')]);return db[_0x7422('0x57')][_0x7422('0x1e')]({'where':_0x122df8[_0x7422('0x3d')]})[_0x7422('0x23')](function(_0x4e63a0){_0x50ff6f[_0x7422('0x1e')]=_0x4e63a0;if(_0x1fdfa9[_0x7422('0x32')][_0x7422('0x47')]){_0x122df8[_0x7422('0x41')]=[{'all':!![]}];}return db['JscriptySessionReport'][_0x7422('0x5a')](_0x122df8);})['then'](function(_0x86b363){_0x50ff6f[_0x7422('0x42')]=_0x86b363;return _0x50ff6f;});}})[_0x7422('0x23')](respondWithFilteredResult(_0x2012f0,_0x122df8))['catch'](handleError(_0x2012f0,null));};exports[_0x7422('0x5b')]=function(_0x171e0a,_0xd69503,_0x5ec62f){var _0x1effdf={'raw':!![],'where':{}};var _0x1eed19={};var _0x44e8d4={'count':0x0,'rows':[]};return db['JscriptyProject'][_0x7422('0x5c')]({'where':{'id':_0x171e0a[_0x7422('0x45')]['id']}})[_0x7422('0x23')](handleEntityNotFound(_0xd69503,null))[_0x7422('0x23')](function(_0x27219a){if(_0x27219a){_0x1eed19[_0x7422('0x31')]=_[_0x7422('0x33')](db['JscriptyAnswerReport'][_0x7422('0x2d')]);_0x1eed19[_0x7422('0x32')]=_[_0x7422('0x33')](_0x171e0a[_0x7422('0x32')]);_0x1eed19[_0x7422('0x3a')]=_[_0x7422('0x34')](_0x1eed19[_0x7422('0x31')],_0x1eed19[_0x7422('0x32')]);_0x1effdf[_0x7422('0x35')]=_[_0x7422('0x34')](_0x1eed19[_0x7422('0x31')],qs[_0x7422('0x46')](_0x171e0a[_0x7422('0x32')][_0x7422('0x46')]));_0x1effdf[_0x7422('0x35')]=_0x1effdf[_0x7422('0x35')]['length']?_0x1effdf[_0x7422('0x35')]:_0x1eed19[_0x7422('0x31')];if(!_0x171e0a[_0x7422('0x32')][_0x7422('0x58')]('nolimit')){_0x1effdf[_0x7422('0x1d')]=qs[_0x7422('0x1d')](_0x171e0a['query'][_0x7422('0x1d')]);_0x1effdf[_0x7422('0x1b')]=qs['offset'](_0x171e0a[_0x7422('0x32')][_0x7422('0x1b')]);}_0x1effdf[_0x7422('0x38')]=qs[_0x7422('0x39')](_0x171e0a['query'][_0x7422('0x39')]);_0x1effdf[_0x7422('0x3d')]=qs[_0x7422('0x3a')](_['pick'](_0x171e0a[_0x7422('0x32')],_0x1eed19[_0x7422('0x3a')]));_0x1effdf[_0x7422('0x3d')]['ProjectId']=_0x27219a['id'];if(_0x171e0a[_0x7422('0x32')][_0x7422('0x3c')]){_0x1effdf[_0x7422('0x3d')]=_[_0x7422('0x3f')](_0x1effdf[_0x7422('0x3d')],{'$or':_['map'](_0x1effdf[_0x7422('0x35')],function(_0x461d4f){var _0x1bff7f={};_0x1bff7f[_0x461d4f]={'$like':'%'+_0x171e0a['query'][_0x7422('0x3c')]+'%'};return _0x1bff7f;})});}_0x1effdf=_[_0x7422('0x3f')]({},_0x1effdf,_0x171e0a[_0x7422('0x40')]);return db[_0x7422('0x5d')]['count']({'where':_0x1effdf[_0x7422('0x3d')]})[_0x7422('0x23')](function(_0x5a0ff5){_0x44e8d4[_0x7422('0x1e')]=_0x5a0ff5;if(_0x171e0a[_0x7422('0x32')][_0x7422('0x47')]){_0x1effdf[_0x7422('0x41')]=[{'all':!![]}];}return db[_0x7422('0x5d')][_0x7422('0x5a')](_0x1effdf);})[_0x7422('0x23')](function(_0x2961d8){_0x44e8d4['rows']=_0x2961d8;return _0x44e8d4;});}})[_0x7422('0x23')](respondWithFilteredResult(_0xd69503,_0x1effdf))[_0x7422('0x43')](handleError(_0xd69503,null));};function char(_0x659249){return'number'===typeof _0x659249?String[_0x7422('0x5e')][_0x7422('0x20')](null,arguments):_0x659249;}function needsEncapsulation(_0xf0ae3f){return!!_0xf0ae3f&&(_0xf0ae3f[_0x7422('0x5f')]()[_0x7422('0x60')](char(0xd))>=0x0||_0xf0ae3f[_0x7422('0x5f')]()[_0x7422('0x60')](char(0xa))>=0x0||_0xf0ae3f['toString']()[_0x7422('0x60')](char(0x2c))>=0x0||_0xf0ae3f[_0x7422('0x5f')]()[_0x7422('0x60')](char(0x22))>=0x0);}function encapsulate(_0xdccdff){var _0x327ebd=char(0x22),_0x1f8d99='\x5c'+char(0x22),_0x251f32=_0xdccdff[_0x7422('0x5f')]()[_0x7422('0x61')](new RegExp(_0x327ebd,'g'),_0x1f8d99);return _0x327ebd+_0x251f32+_0x327ebd;}exports['getSummary']=function(_0x5731f2,_0x225956,_0x4ec39d){var _0x368002,_0xee3c68;var _0x3aad22={'where':{'ProjectId':_0x5731f2[_0x7422('0x45')]['id']}};if(_0x5731f2[_0x7422('0x32')][_0x7422('0x62')]){_0x3aad22[_0x7422('0x3d')][_0x7422('0x63')]=JSON[_0x7422('0x64')](_0x5731f2[_0x7422('0x32')]['startTime']);}return db[_0x7422('0x57')][_0x7422('0x5a')](_0x3aad22)[_0x7422('0x23')](handleEntityNotFound(_0x225956,null))['then'](function(_0x298c34){if(_0x298c34){_0x368002=_0x298c34;return db['JscriptyQuestionReport'][_0x7422('0x5a')]({'where':{'SessionId':{'$in':_[_0x7422('0x2b')](_0x368002,'id')},'ProjectId':_0x5731f2[_0x7422('0x45')]['id']},'order':'-createdAt'});}})[_0x7422('0x23')](handleEntityNotFound(_0x225956,null))[_0x7422('0x23')](function(_0x2b393e){if(_0x2b393e){_0xee3c68=_0x2b393e;var _0x23d61a={};for(var _0x5e0c7d=0x0,_0x5af647=_0xee3c68[_0x7422('0x36')];_0x5e0c7d<_0x5af647;_0x5e0c7d++){if(!_0x23d61a[_0x7422('0x58')](_0xee3c68[_0x5e0c7d][_0x7422('0x65')])){_0x23d61a[_0xee3c68[_0x5e0c7d]['questionId']]=needsEncapsulation(_0xee3c68[_0x5e0c7d]['question'])?encapsulate(_0xee3c68[_0x5e0c7d][_0x7422('0x66')]):_0xee3c68[_0x5e0c7d][_0x7422('0x66')];}}var _0x3d61ec=[],_0x3a1a72={};for(var _0x11ce71=0x0,_0x3ae6c8=_0x368002['length'];_0x11ce71<_0x3ae6c8;_0x11ce71++){_0x3a1a72={'ProjectId':_0x5731f2[_0x7422('0x45')]['id'],'SessionId':_0x368002[_0x11ce71]['id'],'StartTime':moment(_0x368002[_0x11ce71]['starttime'])[_0x7422('0x67')](_0x7422('0x68'))};for(var _0x183dc0=0x0,_0x492704=_0xee3c68[_0x7422('0x36')];_0x183dc0<_0x492704;_0x183dc0++){if(_0xee3c68[_0x183dc0][_0x7422('0x69')]==_0x368002[_0x11ce71]['id']&&_0x23d61a[_0x7422('0x58')](_0xee3c68[_0x183dc0]['questionId'])){_0x3a1a72[_0x23d61a[_0xee3c68[_0x183dc0]['questionId']]]=_0xee3c68[_0x183dc0][_0x7422('0x6a')];}}for(var _0x5ad29c in _0x23d61a){if(!_0x3a1a72['hasOwnProperty'](_0x23d61a[_0x5ad29c])){_0x3a1a72[_0x23d61a[_0x5ad29c]]=null;}}_0x3d61ec[_0x7422('0x6b')](_0x3a1a72);}return _0x3d61ec;}})[_0x7422('0x23')](function(_0x2616bb){if(!_[_0x7422('0x6c')](_0x2616bb)){var _0x1b9b0d=toCsv(_0x2616bb);var _0x2f8eda=Date[_0x7422('0x6d')]();fs[_0x7422('0x6e')](util[_0x7422('0x67')](_0x7422('0x6f'),_0x5731f2['params']['id'],_0x2f8eda),_0x1b9b0d);_0x225956[_0x7422('0x70')]('Content-disposition',_0x7422('0x71')+util['format'](_0x7422('0x72'),_0x5731f2[_0x7422('0x45')]['id'],_0x2f8eda));_0x225956['setHeader'](_0x7422('0x73'),_0x7422('0x74'));return _0x225956[_0x7422('0x75')](util[_0x7422('0x67')](_0x7422('0x6f'),_0x5731f2[_0x7422('0x45')]['id'],_0x2f8eda));}else{return _0x225956['sendStatus'](0xcc);}})[_0x7422('0x43')](handleError(_0x225956,null));};
\ No newline at end of file
+var _0x48ac=['path','sox','to-csv','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','sendStatus','status','json','offset','undefined','count','limit','set','reject','save','update','then','get','destroy','end','error','stack','index','map','JscriptyProject','fieldName','type','key','model','name','query','keys','filters','intersection','fields','attributes','hasOwnProperty','order','sort','where','pick','filter','VIRTUAL','merge','options','includeAll','findAll','rows','catch','show','params','rawAttributes','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','Projects','UserProfileSection','userProfileId','autoAssociation','clone','length','include','omit','body','createdAt','UserProfileResource','getSessions','findOne','nolimit','ProjectId','JscriptySessionReport','getAnswers','JscriptyAnswerReport','fromCharCode','apply','toString','indexOf','replace','startTime','starttime','JscriptyQuestionReport','-createdAt','questionId','question','format','YYYY-MM-DD\x20HH:mm:ss','answer','push','isEmpty','writeFileSync','/tmp/Jscripty_Project_%d_Summary_%s.csv','setHeader','Content-disposition','Jscripty_Project_%d_Summary_%s.csv','text/csv','rimraf','fast-json-patch','request-promise','moment','mustache','util'];(function(_0x1297e4,_0x1d98d7){var _0xc634ac=function(_0x59513b){while(--_0x59513b){_0x1297e4['push'](_0x1297e4['shift']());}};_0xc634ac(++_0x1d98d7);}(_0x48ac,0xe0));var _0xc48a=function(_0x46d61f,_0x1e5e3d){_0x46d61f=_0x46d61f-0x0;var _0x576ecf=_0x48ac[_0x46d61f];return _0x576ecf;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xc48a('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0xc48a('0x1'));var rp=require(_0xc48a('0x2'));var moment=require(_0xc48a('0x3'));var BPromise=require('bluebird');var Mustache=require(_0xc48a('0x4'));var util=require(_0xc48a('0x5'));var path=require(_0xc48a('0x6'));var sox=require(_0xc48a('0x7'));var csv=require(_0xc48a('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require('squel');var crypto=require(_0xc48a('0x9'));var jsforce=require(_0xc48a('0xa'));var deskjs=require(_0xc48a('0xb'));var toCsv=require('to-csv');var querystring=require(_0xc48a('0xc'));var Papa=require(_0xc48a('0xd'));var Redis=require(_0xc48a('0xe'));var authService=require(_0xc48a('0xf'));var qs=require(_0xc48a('0x10'));var as=require(_0xc48a('0x11'));var hardwareService=require(_0xc48a('0x12'));var logger=require(_0xc48a('0x13'))(_0xc48a('0x14'));var utils=require(_0xc48a('0x15'));var config=require(_0xc48a('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0xc48a('0x17'))['db'];function respondWithStatusCode(_0x161274,_0x202ba9){_0x202ba9=_0x202ba9||0xcc;return function(_0x5580dd){if(_0x5580dd){return _0x161274[_0xc48a('0x18')](_0x202ba9);}return _0x161274[_0xc48a('0x19')](_0x202ba9)['end']();};}function respondWithResult(_0x2852b0,_0x250d63){_0x250d63=_0x250d63||0xc8;return function(_0x286f42){if(_0x286f42){return _0x2852b0['status'](_0x250d63)[_0xc48a('0x1a')](_0x286f42);}};}function respondWithFilteredResult(_0x70c92f,_0x37d5d2){return function(_0x50f232){if(_0x50f232){var _0x38abb3=typeof _0x37d5d2[_0xc48a('0x1b')]==='undefined'&&typeof _0x37d5d2['limit']===_0xc48a('0x1c');var _0x5c5291=_0x50f232[_0xc48a('0x1d')];var _0x29a1ad=_0x38abb3?0x0:_0x37d5d2[_0xc48a('0x1b')];var _0x462102=_0x38abb3?_0x50f232[_0xc48a('0x1d')]:_0x37d5d2[_0xc48a('0x1b')]+_0x37d5d2[_0xc48a('0x1e')];var _0x4e5f52;if(_0x462102>=_0x5c5291){_0x462102=_0x5c5291;_0x4e5f52=0xc8;}else{_0x4e5f52=0xce;}_0x70c92f[_0xc48a('0x19')](_0x4e5f52);return _0x70c92f[_0xc48a('0x1f')]('Content-Range',_0x29a1ad+'-'+_0x462102+'/'+_0x5c5291)[_0xc48a('0x1a')](_0x50f232);}return null;};}function patchUpdates(_0x4e6e15){return function(_0x2b7dfa){try{jsonpatch['apply'](_0x2b7dfa,_0x4e6e15,!![]);}catch(_0x303381){return BPromise[_0xc48a('0x20')](_0x303381);}return _0x2b7dfa[_0xc48a('0x21')]();};}function saveUpdates(_0x4f5a55,_0x2a3380){return function(_0x3e24f5){if(_0x3e24f5){return _0x3e24f5[_0xc48a('0x22')](_0x4f5a55)[_0xc48a('0x23')](function(_0x1bb0f3){return _0x1bb0f3;});}return null;};}function removeEntity(_0x3201bc,_0x112874){return function(_0x4bc55b){if(_0x4bc55b){return _0x4bc55b['destroy']()[_0xc48a('0x23')](function(){var _0x16d41a=_0x4bc55b[_0xc48a('0x24')]({'plain':!![]});var _0x1e3618='Projects';return db['UserProfileResource'][_0xc48a('0x25')]({'where':{'type':_0x1e3618,'resourceId':_0x16d41a['id']}})[_0xc48a('0x23')](function(){return _0x4bc55b;});})[_0xc48a('0x23')](function(){_0x3201bc['status'](0xcc)[_0xc48a('0x26')]();});}};}function handleEntityNotFound(_0x4077f7,_0x23aa60){return function(_0x281100){if(!_0x281100){_0x4077f7[_0xc48a('0x18')](0x194);}return _0x281100;};}function handleError(_0x163205,_0x1a2b28){_0x1a2b28=_0x1a2b28||0x1f4;return function(_0x335532){logger[_0xc48a('0x27')](_0x335532[_0xc48a('0x28')]);if(_0x335532['name']){delete _0x335532['name'];}_0x163205[_0xc48a('0x19')](_0x1a2b28)['send'](_0x335532);};}exports[_0xc48a('0x29')]=function(_0x10e450,_0x5ae94f){var _0x2f69c7={},_0x2ab3e1={},_0x22e62a={'count':0x0,'rows':[]};var _0x5c6d41=_[_0xc48a('0x2a')](db[_0xc48a('0x2b')]['rawAttributes'],function(_0x361d18){return{'name':_0x361d18[_0xc48a('0x2c')],'type':_0x361d18[_0xc48a('0x2d')][_0xc48a('0x2e')]};});_0x2ab3e1[_0xc48a('0x2f')]=_['map'](_0x5c6d41,_0xc48a('0x30'));_0x2ab3e1[_0xc48a('0x31')]=_[_0xc48a('0x32')](_0x10e450[_0xc48a('0x31')]);_0x2ab3e1[_0xc48a('0x33')]=_[_0xc48a('0x34')](_0x2ab3e1[_0xc48a('0x2f')],_0x2ab3e1[_0xc48a('0x31')]);_0x2f69c7['attributes']=_[_0xc48a('0x34')](_0x2ab3e1[_0xc48a('0x2f')],qs[_0xc48a('0x35')](_0x10e450[_0xc48a('0x31')][_0xc48a('0x35')]));_0x2f69c7[_0xc48a('0x36')]=_0x2f69c7[_0xc48a('0x36')]['length']?_0x2f69c7[_0xc48a('0x36')]:_0x2ab3e1[_0xc48a('0x2f')];if(!_0x10e450[_0xc48a('0x31')][_0xc48a('0x37')]('nolimit')){_0x2f69c7[_0xc48a('0x1e')]=qs[_0xc48a('0x1e')](_0x10e450['query'][_0xc48a('0x1e')]);_0x2f69c7['offset']=qs[_0xc48a('0x1b')](_0x10e450['query']['offset']);}_0x2f69c7[_0xc48a('0x38')]=qs[_0xc48a('0x39')](_0x10e450['query'][_0xc48a('0x39')]);_0x2f69c7[_0xc48a('0x3a')]=qs[_0xc48a('0x33')](_[_0xc48a('0x3b')](_0x10e450['query'],_0x2ab3e1[_0xc48a('0x33')]),_0x5c6d41);if(_0x10e450[_0xc48a('0x31')][_0xc48a('0x3c')]){_0x2f69c7[_0xc48a('0x3a')]=_['merge'](_0x2f69c7[_0xc48a('0x3a')],{'$or':_['map'](_0x5c6d41,function(_0x1ee566){if(_0x1ee566[_0xc48a('0x2d')]!==_0xc48a('0x3d')){var _0x17fe53={};_0x17fe53[_0x1ee566[_0xc48a('0x30')]]={'$like':'%'+_0x10e450[_0xc48a('0x31')]['filter']+'%'};return _0x17fe53;}})});}_0x2f69c7=_[_0xc48a('0x3e')]({},_0x2f69c7,_0x10e450[_0xc48a('0x3f')]);var _0x2aba02={'where':_0x2f69c7[_0xc48a('0x3a')]};return db[_0xc48a('0x2b')]['count'](_0x2aba02)[_0xc48a('0x23')](function(_0x2f0282){_0x22e62a[_0xc48a('0x1d')]=_0x2f0282;if(_0x10e450['query'][_0xc48a('0x40')]){_0x2f69c7['include']=[{'all':!![]}];}return db['JscriptyProject'][_0xc48a('0x41')](_0x2f69c7);})[_0xc48a('0x23')](function(_0x32d7e3){_0x22e62a[_0xc48a('0x42')]=_0x32d7e3;return _0x22e62a;})[_0xc48a('0x23')](respondWithFilteredResult(_0x5ae94f,_0x2f69c7))[_0xc48a('0x43')](handleError(_0x5ae94f,null));};exports[_0xc48a('0x44')]=function(_0x55210d,_0x53d3ad){var _0x551c5a={'raw':![],'where':{'id':_0x55210d[_0xc48a('0x45')]['id']}},_0x1ccb0a={};_0x1ccb0a[_0xc48a('0x2f')]=_[_0xc48a('0x32')](db[_0xc48a('0x2b')][_0xc48a('0x46')]);_0x1ccb0a[_0xc48a('0x31')]=_[_0xc48a('0x32')](_0x55210d[_0xc48a('0x31')]);_0x1ccb0a[_0xc48a('0x33')]=_[_0xc48a('0x34')](_0x1ccb0a['model'],_0x1ccb0a[_0xc48a('0x31')]);_0x551c5a[_0xc48a('0x36')]=_[_0xc48a('0x34')](_0x1ccb0a[_0xc48a('0x2f')],qs[_0xc48a('0x35')](_0x55210d[_0xc48a('0x31')][_0xc48a('0x35')]));_0x551c5a[_0xc48a('0x36')]=_0x551c5a[_0xc48a('0x36')]['length']?_0x551c5a[_0xc48a('0x36')]:_0x1ccb0a[_0xc48a('0x2f')];if(_0x55210d[_0xc48a('0x31')][_0xc48a('0x40')]){_0x551c5a['include']=[{'all':!![]}];}_0x551c5a=_[_0xc48a('0x3e')]({},_0x551c5a,_0x55210d[_0xc48a('0x3f')]);return db['JscriptyProject'][_0xc48a('0x47')](_0x551c5a)[_0xc48a('0x23')](handleEntityNotFound(_0x53d3ad,null))[_0xc48a('0x23')](respondWithResult(_0x53d3ad,null))[_0xc48a('0x43')](handleError(_0x53d3ad,null));};exports['create']=function(_0xd256f3,_0xd0dc5){return db[_0xc48a('0x2b')][_0xc48a('0x48')](_0xd256f3['body'],{})['then'](function(_0x4f16e9){var _0xf47f5=_0xd256f3[_0xc48a('0x49')]['get']({'plain':!![]});if(!_0xf47f5)throw new Error(_0xc48a('0x4a'));if(_0xf47f5['role']===_0xc48a('0x49')){var _0x154d93=_0x4f16e9[_0xc48a('0x24')]({'plain':!![]});var _0x1a96d9=_0xc48a('0x4b');return db[_0xc48a('0x4c')][_0xc48a('0x47')]({'where':{'name':_0x1a96d9,'userProfileId':_0xf47f5[_0xc48a('0x4d')]},'raw':!![]})[_0xc48a('0x23')](function(_0x5ad03f){if(_0x5ad03f&&_0x5ad03f[_0xc48a('0x4e')]===0x0){return db['UserProfileResource'][_0xc48a('0x48')]({'name':_0x154d93[_0xc48a('0x30')],'resourceId':_0x154d93['id'],'type':_0x5ad03f[_0xc48a('0x30')],'sectionId':_0x5ad03f['id']},{})[_0xc48a('0x23')](function(){return _0x4f16e9;});}else{return _0x4f16e9;}})[_0xc48a('0x43')](function(_0x5bf6e8){logger[_0xc48a('0x27')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x5bf6e8);throw _0x5bf6e8;});}return _0x4f16e9;})[_0xc48a('0x23')](respondWithResult(_0xd0dc5,0xc9))[_0xc48a('0x43')](handleError(_0xd0dc5,null));};exports[_0xc48a('0x4f')]=function(_0x32c866,_0x188fd1){var _0x338977={'where':{'id':_0x32c866[_0xc48a('0x45')]['id']}},_0x4cc2c7={};_0x4cc2c7[_0xc48a('0x2f')]=_[_0xc48a('0x32')](db['JscriptyProject'][_0xc48a('0x46')]);_0x338977[_0xc48a('0x36')]=_[_0xc48a('0x34')](_0x4cc2c7['model'],qs[_0xc48a('0x35')](_0x32c866['query'][_0xc48a('0x35')]));_0x338977['attributes']=_0x338977[_0xc48a('0x36')][_0xc48a('0x50')]?_0x338977[_0xc48a('0x36')]:_0x4cc2c7[_0xc48a('0x2f')];if(_0x32c866[_0xc48a('0x31')][_0xc48a('0x40')]){_0x338977[_0xc48a('0x51')]=[{'all':!![]}];}_0x338977=_[_0xc48a('0x3e')]({},_0x338977,_0x32c866[_0xc48a('0x3f')]);return db['JscriptyProject']['find'](_0x338977)[_0xc48a('0x23')](handleEntityNotFound(_0x188fd1,null))['then'](function(_0x46d7bf){if(_0x46d7bf){var _0x38994c=_0x46d7bf[_0xc48a('0x24')]({'plain':!![]});_0x38994c=qs[_0xc48a('0x52')](_0x38994c,['id','createdAt','updatedAt']);_0x32c866[_0xc48a('0x53')]=_[_0xc48a('0x52')](_0x32c866[_0xc48a('0x53')],['id',_0xc48a('0x54'),'updatedAt']);return db[_0xc48a('0x2b')][_0xc48a('0x48')](_['merge'](_0x38994c,_0x32c866[_0xc48a('0x53')]),{'include':_0x32c866[_0xc48a('0x31')][_0xc48a('0x40')]?[{'all':!![]}]:undefined})[_0xc48a('0x23')](function(_0x322fbe){var _0x39f686=_0x32c866[_0xc48a('0x49')][_0xc48a('0x24')]({'plain':!![]});if(!_0x39f686)throw new Error(_0xc48a('0x4a'));if(_0x39f686['role']==='user'){var _0x40fba6=_0x322fbe[_0xc48a('0x24')]({'plain':!![]});var _0x440207=_0xc48a('0x4b');return db[_0xc48a('0x4c')][_0xc48a('0x47')]({'where':{'name':_0x440207,'userProfileId':_0x39f686[_0xc48a('0x4d')]},'raw':!![]})['then'](function(_0x44c357){if(_0x44c357&&_0x44c357[_0xc48a('0x4e')]===0x0){return db[_0xc48a('0x55')][_0xc48a('0x48')]({'name':_0x40fba6[_0xc48a('0x30')],'resourceId':_0x40fba6['id'],'type':_0x44c357[_0xc48a('0x30')],'sectionId':_0x44c357['id']},{})[_0xc48a('0x23')](function(){return _0x322fbe;});}else{return _0x322fbe;}})['catch'](function(_0x4142fe){logger[_0xc48a('0x27')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x4142fe);throw _0x4142fe;});}return _0x322fbe;});}})[_0xc48a('0x23')](respondWithResult(_0x188fd1,0xc9))[_0xc48a('0x43')](handleError(_0x188fd1,null));};exports[_0xc48a('0x22')]=function(_0x3620d2,_0x5d3d99){if(_0x3620d2[_0xc48a('0x53')]['id']){delete _0x3620d2[_0xc48a('0x53')]['id'];}return db[_0xc48a('0x2b')][_0xc48a('0x47')]({'where':{'id':_0x3620d2[_0xc48a('0x45')]['id']}})[_0xc48a('0x23')](handleEntityNotFound(_0x5d3d99,null))[_0xc48a('0x23')](saveUpdates(_0x3620d2['body'],null))[_0xc48a('0x23')](respondWithResult(_0x5d3d99,null))[_0xc48a('0x43')](handleError(_0x5d3d99,null));};exports[_0xc48a('0x25')]=function(_0x2b0dbd,_0x8ca726){return db['JscriptyProject'][_0xc48a('0x47')]({'where':{'id':_0x2b0dbd[_0xc48a('0x45')]['id']}})['then'](handleEntityNotFound(_0x8ca726,null))[_0xc48a('0x23')](removeEntity(_0x8ca726,null))['catch'](handleError(_0x8ca726,null));};exports[_0xc48a('0x56')]=function(_0x2cae30,_0x261de1,_0x11fb19){var _0x16d868={'raw':!![],'where':{}};var _0xc1f1da={};var _0x4b1755={'count':0x0,'rows':[]};return db['JscriptyProject'][_0xc48a('0x57')]({'where':{'id':_0x2cae30['params']['id']}})[_0xc48a('0x23')](handleEntityNotFound(_0x261de1,null))[_0xc48a('0x23')](function(_0x2d2f99){if(_0x2d2f99){_0xc1f1da[_0xc48a('0x2f')]=_['keys'](db['JscriptySessionReport']['rawAttributes']);_0xc1f1da['query']=_['keys'](_0x2cae30[_0xc48a('0x31')]);_0xc1f1da['filters']=_[_0xc48a('0x34')](_0xc1f1da[_0xc48a('0x2f')],_0xc1f1da[_0xc48a('0x31')]);_0x16d868[_0xc48a('0x36')]=_[_0xc48a('0x34')](_0xc1f1da[_0xc48a('0x2f')],qs[_0xc48a('0x35')](_0x2cae30[_0xc48a('0x31')][_0xc48a('0x35')]));_0x16d868[_0xc48a('0x36')]=_0x16d868[_0xc48a('0x36')][_0xc48a('0x50')]?_0x16d868[_0xc48a('0x36')]:_0xc1f1da[_0xc48a('0x2f')];if(!_0x2cae30[_0xc48a('0x31')][_0xc48a('0x37')](_0xc48a('0x58'))){_0x16d868[_0xc48a('0x1e')]=qs[_0xc48a('0x1e')](_0x2cae30[_0xc48a('0x31')][_0xc48a('0x1e')]);_0x16d868[_0xc48a('0x1b')]=qs[_0xc48a('0x1b')](_0x2cae30[_0xc48a('0x31')][_0xc48a('0x1b')]);}_0x16d868['order']=qs['sort'](_0x2cae30[_0xc48a('0x31')][_0xc48a('0x39')]);_0x16d868['where']=qs[_0xc48a('0x33')](_['pick'](_0x2cae30[_0xc48a('0x31')],_0xc1f1da[_0xc48a('0x33')]));_0x16d868[_0xc48a('0x3a')][_0xc48a('0x59')]=_0x2d2f99['id'];if(_0x2cae30[_0xc48a('0x31')][_0xc48a('0x3c')]){_0x16d868[_0xc48a('0x3a')]=_[_0xc48a('0x3e')](_0x16d868['where'],{'$or':_[_0xc48a('0x2a')](_0x16d868['attributes'],function(_0x56da90){var _0x4db82e={};_0x4db82e[_0x56da90]={'$like':'%'+_0x2cae30['query'][_0xc48a('0x3c')]+'%'};return _0x4db82e;})});}_0x16d868=_[_0xc48a('0x3e')]({},_0x16d868,_0x2cae30[_0xc48a('0x3f')]);return db[_0xc48a('0x5a')][_0xc48a('0x1d')]({'where':_0x16d868[_0xc48a('0x3a')]})['then'](function(_0x5daf15){_0x4b1755[_0xc48a('0x1d')]=_0x5daf15;if(_0x2cae30[_0xc48a('0x31')][_0xc48a('0x40')]){_0x16d868[_0xc48a('0x51')]=[{'all':!![]}];}return db[_0xc48a('0x5a')]['findAll'](_0x16d868);})[_0xc48a('0x23')](function(_0x342a28){_0x4b1755[_0xc48a('0x42')]=_0x342a28;return _0x4b1755;});}})['then'](respondWithFilteredResult(_0x261de1,_0x16d868))[_0xc48a('0x43')](handleError(_0x261de1,null));};exports[_0xc48a('0x5b')]=function(_0x343f1f,_0x1acb61,_0x5e4574){var _0xc44596={'raw':!![],'where':{}};var _0x1bcc50={};var _0x26ac01={'count':0x0,'rows':[]};return db[_0xc48a('0x2b')][_0xc48a('0x57')]({'where':{'id':_0x343f1f[_0xc48a('0x45')]['id']}})[_0xc48a('0x23')](handleEntityNotFound(_0x1acb61,null))[_0xc48a('0x23')](function(_0x2bf847){if(_0x2bf847){_0x1bcc50[_0xc48a('0x2f')]=_[_0xc48a('0x32')](db[_0xc48a('0x5c')]['rawAttributes']);_0x1bcc50[_0xc48a('0x31')]=_['keys'](_0x343f1f[_0xc48a('0x31')]);_0x1bcc50[_0xc48a('0x33')]=_['intersection'](_0x1bcc50['model'],_0x1bcc50[_0xc48a('0x31')]);_0xc44596[_0xc48a('0x36')]=_['intersection'](_0x1bcc50[_0xc48a('0x2f')],qs[_0xc48a('0x35')](_0x343f1f[_0xc48a('0x31')][_0xc48a('0x35')]));_0xc44596[_0xc48a('0x36')]=_0xc44596['attributes'][_0xc48a('0x50')]?_0xc44596[_0xc48a('0x36')]:_0x1bcc50['model'];if(!_0x343f1f[_0xc48a('0x31')][_0xc48a('0x37')](_0xc48a('0x58'))){_0xc44596[_0xc48a('0x1e')]=qs[_0xc48a('0x1e')](_0x343f1f[_0xc48a('0x31')][_0xc48a('0x1e')]);_0xc44596['offset']=qs['offset'](_0x343f1f[_0xc48a('0x31')][_0xc48a('0x1b')]);}_0xc44596[_0xc48a('0x38')]=qs[_0xc48a('0x39')](_0x343f1f[_0xc48a('0x31')]['sort']);_0xc44596['where']=qs[_0xc48a('0x33')](_['pick'](_0x343f1f['query'],_0x1bcc50['filters']));_0xc44596['where']['ProjectId']=_0x2bf847['id'];if(_0x343f1f[_0xc48a('0x31')]['filter']){_0xc44596[_0xc48a('0x3a')]=_[_0xc48a('0x3e')](_0xc44596[_0xc48a('0x3a')],{'$or':_[_0xc48a('0x2a')](_0xc44596['attributes'],function(_0x27f8b9){var _0x5b9d60={};_0x5b9d60[_0x27f8b9]={'$like':'%'+_0x343f1f['query'][_0xc48a('0x3c')]+'%'};return _0x5b9d60;})});}_0xc44596=_[_0xc48a('0x3e')]({},_0xc44596,_0x343f1f[_0xc48a('0x3f')]);return db[_0xc48a('0x5c')][_0xc48a('0x1d')]({'where':_0xc44596[_0xc48a('0x3a')]})['then'](function(_0x290341){_0x26ac01[_0xc48a('0x1d')]=_0x290341;if(_0x343f1f['query'][_0xc48a('0x40')]){_0xc44596[_0xc48a('0x51')]=[{'all':!![]}];}return db['JscriptyAnswerReport']['findAll'](_0xc44596);})[_0xc48a('0x23')](function(_0x4e3f63){_0x26ac01[_0xc48a('0x42')]=_0x4e3f63;return _0x26ac01;});}})[_0xc48a('0x23')](respondWithFilteredResult(_0x1acb61,_0xc44596))[_0xc48a('0x43')](handleError(_0x1acb61,null));};function char(_0x55968c){return'number'===typeof _0x55968c?String[_0xc48a('0x5d')][_0xc48a('0x5e')](null,arguments):_0x55968c;}function needsEncapsulation(_0x2b0cce){return!!_0x2b0cce&&(_0x2b0cce[_0xc48a('0x5f')]()[_0xc48a('0x60')](char(0xd))>=0x0||_0x2b0cce['toString']()[_0xc48a('0x60')](char(0xa))>=0x0||_0x2b0cce[_0xc48a('0x5f')]()[_0xc48a('0x60')](char(0x2c))>=0x0||_0x2b0cce[_0xc48a('0x5f')]()['indexOf'](char(0x22))>=0x0);}function encapsulate(_0x17320e){var _0x4637b6=char(0x22),_0x3d1348='\x5c'+char(0x22),_0x5746ec=_0x17320e[_0xc48a('0x5f')]()[_0xc48a('0x61')](new RegExp(_0x4637b6,'g'),_0x3d1348);return _0x4637b6+_0x5746ec+_0x4637b6;}exports['getSummary']=function(_0x27e3e8,_0x78f98e,_0x34a1f7){var _0x42e034,_0x14b8a9;var _0x20bd64={'where':{'ProjectId':_0x27e3e8['params']['id']}};if(_0x27e3e8[_0xc48a('0x31')][_0xc48a('0x62')]){_0x20bd64['where'][_0xc48a('0x63')]=JSON['parse'](_0x27e3e8[_0xc48a('0x31')]['startTime']);}return db[_0xc48a('0x5a')][_0xc48a('0x41')](_0x20bd64)[_0xc48a('0x23')](handleEntityNotFound(_0x78f98e,null))['then'](function(_0x9ea599){if(_0x9ea599){_0x42e034=_0x9ea599;return db[_0xc48a('0x64')]['findAll']({'where':{'SessionId':{'$in':_[_0xc48a('0x2a')](_0x42e034,'id')},'ProjectId':_0x27e3e8[_0xc48a('0x45')]['id']},'order':_0xc48a('0x65')});}})['then'](handleEntityNotFound(_0x78f98e,null))[_0xc48a('0x23')](function(_0x5adb06){if(_0x5adb06){_0x14b8a9=_0x5adb06;var _0x4599eb={};for(var _0x2de414=0x0,_0x361da2=_0x14b8a9[_0xc48a('0x50')];_0x2de414<_0x361da2;_0x2de414++){if(!_0x4599eb['hasOwnProperty'](_0x14b8a9[_0x2de414][_0xc48a('0x66')])){_0x4599eb[_0x14b8a9[_0x2de414][_0xc48a('0x66')]]=needsEncapsulation(_0x14b8a9[_0x2de414][_0xc48a('0x67')])?encapsulate(_0x14b8a9[_0x2de414]['question']):_0x14b8a9[_0x2de414]['question'];}}var _0x12844b=[],_0x73c687={};for(var _0x36d98a=0x0,_0x5e0f33=_0x42e034[_0xc48a('0x50')];_0x36d98a<_0x5e0f33;_0x36d98a++){_0x73c687={'ProjectId':_0x27e3e8[_0xc48a('0x45')]['id'],'SessionId':_0x42e034[_0x36d98a]['id'],'StartTime':moment(_0x42e034[_0x36d98a][_0xc48a('0x63')])[_0xc48a('0x68')](_0xc48a('0x69'))};for(var _0x4b52ab=0x0,_0x3e21da=_0x14b8a9[_0xc48a('0x50')];_0x4b52ab<_0x3e21da;_0x4b52ab++){if(_0x14b8a9[_0x4b52ab]['SessionId']==_0x42e034[_0x36d98a]['id']&&_0x4599eb[_0xc48a('0x37')](_0x14b8a9[_0x4b52ab][_0xc48a('0x66')])){_0x73c687[_0x4599eb[_0x14b8a9[_0x4b52ab][_0xc48a('0x66')]]]=_0x14b8a9[_0x4b52ab][_0xc48a('0x6a')];}}for(var _0x59014e in _0x4599eb){if(!_0x73c687['hasOwnProperty'](_0x4599eb[_0x59014e])){_0x73c687[_0x4599eb[_0x59014e]]=null;}}_0x12844b[_0xc48a('0x6b')](_0x73c687);}return _0x12844b;}})['then'](function(_0xae3e2f){if(!_[_0xc48a('0x6c')](_0xae3e2f)){var _0x221a0d=toCsv(_0xae3e2f);var _0x21825c=Date['now']();fs[_0xc48a('0x6d')](util[_0xc48a('0x68')](_0xc48a('0x6e'),_0x27e3e8['params']['id'],_0x21825c),_0x221a0d);_0x78f98e[_0xc48a('0x6f')](_0xc48a('0x70'),'attachment;\x20filename='+util[_0xc48a('0x68')](_0xc48a('0x71'),_0x27e3e8[_0xc48a('0x45')]['id'],_0x21825c));_0x78f98e[_0xc48a('0x6f')]('Content-type',_0xc48a('0x72'));return _0x78f98e['download'](util[_0xc48a('0x68')]('/tmp/Jscripty_Project_%d_Summary_%s.csv',_0x27e3e8[_0xc48a('0x45')]['id'],_0x21825c));}else{return _0x78f98e['sendStatus'](0xcc);}})[_0xc48a('0x43')](handleError(_0x78f98e,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x92bc=['../../config/logger','bluebird','request-promise','path','rimraf','./jscriptyProject.attributes','exports','JscriptyProject','jscripty_projects','lodash','util'];(function(_0x30b386,_0x5f03db){var _0x245f80=function(_0xd715da){while(--_0xd715da){_0x30b386['push'](_0x30b386['shift']());}};_0x245f80(++_0x5f03db);}(_0x92bc,0x106));var _0xc92b=function(_0x13f1da,_0x567b39){_0x13f1da=_0x13f1da-0x0;var _0x4baa11=_0x92bc[_0x13f1da];return _0x4baa11;};'use strict';var _=require(_0xc92b('0x0'));var util=require(_0xc92b('0x1'));var logger=require(_0xc92b('0x2'))('api');var moment=require('moment');var BPromise=require(_0xc92b('0x3'));var rp=require(_0xc92b('0x4'));var fs=require('fs');var path=require(_0xc92b('0x5'));var rimraf=require(_0xc92b('0x6'));var config=require('../../config/environment');var attributes=require(_0xc92b('0x7'));module[_0xc92b('0x8')]=function(_0x3dbb56,_0x51b6e7){return _0x3dbb56['define'](_0xc92b('0x9'),attributes,{'tableName':_0xc92b('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x950a=['../../config/logger','api','bluebird','request-promise','path','rimraf','./jscriptyProject.attributes','exports','define','lodash','util'];(function(_0x3a78a0,_0x44985f){var _0x48e917=function(_0x1e428c){while(--_0x1e428c){_0x3a78a0['push'](_0x3a78a0['shift']());}};_0x48e917(++_0x44985f);}(_0x950a,0x111));var _0xa950=function(_0x57deb0,_0xcfa42){_0x57deb0=_0x57deb0-0x0;var _0x21941a=_0x950a[_0x57deb0];return _0x21941a;};'use strict';var _=require(_0xa950('0x0'));var util=require(_0xa950('0x1'));var logger=require(_0xa950('0x2'))(_0xa950('0x3'));var moment=require('moment');var BPromise=require(_0xa950('0x4'));var rp=require(_0xa950('0x5'));var fs=require('fs');var path=require(_0xa950('0x6'));var rimraf=require(_0xa950('0x7'));var config=require('../../config/environment');var attributes=require(_0xa950('0x8'));module[_0xa950('0x9')]=function(_0x512c0e,_0x14b4ac){return _0x512c0e[_0xa950('0xa')]('JscriptyProject',attributes,{'tableName':'jscripty_projects','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xaa88=['ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','http','then','info','request\x20sent','debug','JscriptyProject,\x20%s,\x20%s,\x20%s','error','JscriptyProject,\x20%s,\x20%s','message','result','catch','lodash','util','moment','bluebird'];(function(_0x329ba0,_0x2e889b){var _0x526123=function(_0x42656e){while(--_0x42656e){_0x329ba0['push'](_0x329ba0['shift']());}};_0x526123(++_0x2e889b);}(_0xaa88,0x137));var _0x8aa8=function(_0x2ecb67,_0x8ec62d){_0x2ecb67=_0x2ecb67-0x0;var _0x168079=_0xaa88[_0x2ecb67];return _0x168079;};'use strict';var _=require(_0x8aa8('0x0'));var util=require(_0x8aa8('0x1'));var moment=require(_0x8aa8('0x2'));var BPromise=require(_0x8aa8('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x8aa8('0x4'));var db=require(_0x8aa8('0x5'))['db'];var utils=require(_0x8aa8('0x6'));var logger=require(_0x8aa8('0x7'))(_0x8aa8('0x8'));var config=require(_0x8aa8('0x9'));var jayson=require('jayson/promise');var client=jayson['client'][_0x8aa8('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x5264ff,_0x449d2d,_0x1ed84d){return new BPromise(function(_0x27c08d,_0x40826f){return client['request'](_0x5264ff,_0x1ed84d)[_0x8aa8('0xb')](function(_0x2d974c){logger[_0x8aa8('0xc')]('JscriptyProject,\x20%s,\x20%s',_0x449d2d,_0x8aa8('0xd'));logger[_0x8aa8('0xe')](_0x8aa8('0xf'),_0x449d2d,_0x8aa8('0xd'),JSON['stringify'](_0x2d974c));if(_0x2d974c[_0x8aa8('0x10')]){if(_0x2d974c[_0x8aa8('0x10')]['code']===0x1f4){logger[_0x8aa8('0x10')](_0x8aa8('0x11'),_0x449d2d,_0x2d974c[_0x8aa8('0x10')]['message']);return _0x40826f(_0x2d974c[_0x8aa8('0x10')][_0x8aa8('0x12')]);}logger[_0x8aa8('0x10')]('JscriptyProject,\x20%s,\x20%s',_0x449d2d,_0x2d974c[_0x8aa8('0x10')]['message']);return _0x27c08d(_0x2d974c['error'][_0x8aa8('0x12')]);}else{logger[_0x8aa8('0xc')](_0x8aa8('0x11'),_0x449d2d,_0x8aa8('0xd'));_0x27c08d(_0x2d974c[_0x8aa8('0x13')][_0x8aa8('0x12')]);}})[_0x8aa8('0x14')](function(_0xd59fb8){logger[_0x8aa8('0x10')]('JscriptyProject,\x20%s,\x20%s',_0x449d2d,_0xd59fb8);_0x40826f(_0xd59fb8);});});}
\ No newline at end of file
+var _0x54ef=['result','lodash','util','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','http','request','then','info','JscriptyProject,\x20%s,\x20%s','request\x20sent','debug','stringify','error','message'];(function(_0x271648,_0x2d6346){var _0x3c803c=function(_0x1bacf8){while(--_0x1bacf8){_0x271648['push'](_0x271648['shift']());}};_0x3c803c(++_0x2d6346);}(_0x54ef,0x112));var _0xf54e=function(_0x190110,_0x337860){_0x190110=_0x190110-0x0;var _0x31b44e=_0x54ef[_0x190110];return _0x31b44e;};'use strict';var _=require(_0xf54e('0x0'));var util=require(_0xf54e('0x1'));var moment=require(_0xf54e('0x2'));var BPromise=require('bluebird');var rs=require(_0xf54e('0x3'));var fs=require('fs');var Redis=require(_0xf54e('0x4'));var db=require(_0xf54e('0x5'))['db'];var utils=require(_0xf54e('0x6'));var logger=require(_0xf54e('0x7'))(_0xf54e('0x8'));var config=require(_0xf54e('0x9'));var jayson=require('jayson/promise');var client=jayson['client'][_0xf54e('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x99cf9,_0x2464ae,_0x561870){return new BPromise(function(_0x27e69b,_0x57a1ce){return client[_0xf54e('0xb')](_0x99cf9,_0x561870)[_0xf54e('0xc')](function(_0x47c5e1){logger[_0xf54e('0xd')](_0xf54e('0xe'),_0x2464ae,_0xf54e('0xf'));logger[_0xf54e('0x10')]('JscriptyProject,\x20%s,\x20%s,\x20%s',_0x2464ae,_0xf54e('0xf'),JSON[_0xf54e('0x11')](_0x47c5e1));if(_0x47c5e1[_0xf54e('0x12')]){if(_0x47c5e1[_0xf54e('0x12')]['code']===0x1f4){logger[_0xf54e('0x12')]('JscriptyProject,\x20%s,\x20%s',_0x2464ae,_0x47c5e1['error'][_0xf54e('0x13')]);return _0x57a1ce(_0x47c5e1[_0xf54e('0x12')][_0xf54e('0x13')]);}logger[_0xf54e('0x12')]('JscriptyProject,\x20%s,\x20%s',_0x2464ae,_0x47c5e1[_0xf54e('0x12')][_0xf54e('0x13')]);return _0x27e69b(_0x47c5e1[_0xf54e('0x12')][_0xf54e('0x13')]);}else{logger['info'](_0xf54e('0xe'),_0x2464ae,_0xf54e('0xf'));_0x27e69b(_0x47c5e1[_0xf54e('0x14')]['message']);}})['catch'](function(_0xd87020){logger[_0xf54e('0x12')](_0xf54e('0xe'),_0x2464ae,_0xd87020);_0x57a1ce(_0xd87020);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe66d=['isAuthenticated','/describe','describe','show','post','create','/:id','update','delete','destroy','exports','multer','path','connect-timeout','express','Router','fs-extra','../../components/interaction/service','../../config/environment','./jscriptyQuestionReport.controller','get'];(function(_0x895d8,_0x16a816){var _0x1b2aac=function(_0x46d5d4){while(--_0x46d5d4){_0x895d8['push'](_0x895d8['shift']());}};_0x1b2aac(++_0x16a816);}(_0xe66d,0x89));var _0xde66=function(_0x523212,_0x437cc3){_0x523212=_0x523212-0x0;var _0x38c3b2=_0xe66d[_0x523212];return _0x38c3b2;};'use strict';var multer=require(_0xde66('0x0'));var util=require('util');var path=require(_0xde66('0x1'));var timeout=require(_0xde66('0x2'));var express=require(_0xde66('0x3'));var router=express[_0xde66('0x4')]();var fs_extra=require(_0xde66('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0xde66('0x6'));var config=require(_0xde66('0x7'));var controller=require(_0xde66('0x8'));router[_0xde66('0x9')]('/',auth[_0xde66('0xa')](),controller['index']);router['get'](_0xde66('0xb'),auth[_0xde66('0xa')](),controller[_0xde66('0xc')]);router['get']('/:id',auth[_0xde66('0xa')](),controller[_0xde66('0xd')]);router[_0xde66('0xe')]('/',auth[_0xde66('0xa')](),controller[_0xde66('0xf')]);router['put'](_0xde66('0x10'),auth[_0xde66('0xa')](),controller[_0xde66('0x11')]);router[_0xde66('0x12')]('/:id',auth[_0xde66('0xa')](),controller[_0xde66('0x13')]);module[_0xde66('0x14')]=router;
\ No newline at end of file
+var _0x30df=['../../config/environment','get','isAuthenticated','/describe','describe','/:id','show','post','update','destroy','exports','multer','util','path','connect-timeout','express','fs-extra','../../components/interaction/service'];(function(_0x50007c,_0x1cbf11){var _0x5c1ec7=function(_0x52d038){while(--_0x52d038){_0x50007c['push'](_0x50007c['shift']());}};_0x5c1ec7(++_0x1cbf11);}(_0x30df,0xe3));var _0xf30d=function(_0x1a5dc4,_0x73296c){_0x1a5dc4=_0x1a5dc4-0x0;var _0x3294bf=_0x30df[_0x1a5dc4];return _0x3294bf;};'use strict';var multer=require(_0xf30d('0x0'));var util=require(_0xf30d('0x1'));var path=require(_0xf30d('0x2'));var timeout=require(_0xf30d('0x3'));var express=require(_0xf30d('0x4'));var router=express['Router']();var fs_extra=require(_0xf30d('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0xf30d('0x6'));var config=require(_0xf30d('0x7'));var controller=require('./jscriptyQuestionReport.controller');router[_0xf30d('0x8')]('/',auth[_0xf30d('0x9')](),controller['index']);router['get'](_0xf30d('0xa'),auth[_0xf30d('0x9')](),controller[_0xf30d('0xb')]);router[_0xf30d('0x8')](_0xf30d('0xc'),auth[_0xf30d('0x9')](),controller[_0xf30d('0xd')]);router[_0xf30d('0xe')]('/',auth[_0xf30d('0x9')](),controller['create']);router['put'](_0xf30d('0xc'),auth[_0xf30d('0x9')](),controller[_0xf30d('0xf')]);router['delete'](_0xf30d('0xc'),auth['isAuthenticated'](),controller[_0xf30d('0x10')]);module[_0xf30d('0x11')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7a54=['long','STRING','sequelize','exports','TEXT'];(function(_0x5d2803,_0xf375bd){var _0xdcad2c=function(_0x3c3a98){while(--_0x3c3a98){_0x5d2803['push'](_0x5d2803['shift']());}};_0xdcad2c(++_0xf375bd);}(_0x7a54,0x106));var _0x47a5=function(_0x3f2282,_0x239d21){_0x3f2282=_0x3f2282-0x0;var _0x578292=_0x7a54[_0x3f2282];return _0x578292;};'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(_0x565ed7,_0x398228){var _0x183ad7=function(_0x5a43d7){while(--_0x5a43d7){_0x565ed7['push'](_0x565ed7['shift']());}};_0x183ad7(++_0x398228);}(_0x7a54,0x106));var _0x47a5=function(_0x3708de,_0x37e393){_0x3708de=_0x3708de-0x0;var _0x12f501=_0x7a54[_0x3708de];return _0x12f501;};'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 _0x601e=['where','pick','filter','merge','options','JscriptyQuestionReport','include','findAll','show','fields','includeAll','find','catch','create','body','update','params','describe','eml-format','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','squel','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','end','json','undefined','limit','offset','count','set','Content-Range','reject','save','destroy','then','error','stack','name','send','map','rawAttributes','type','key','model','keys','filters','intersection','query','attributes','length','nolimit','sort'];(function(_0xe5b830,_0xa589a5){var _0x1862e4=function(_0x4e6a59){while(--_0x4e6a59){_0xe5b830['push'](_0xe5b830['shift']());}};_0x1862e4(++_0xa589a5);}(_0x601e,0x1e0));var _0xe601=function(_0x48326a,_0x8cfa0c){_0x48326a=_0x48326a-0x0;var _0x466709=_0x601e[_0x48326a];return _0x466709;};'use strict';var emlformat=require(_0xe601('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xe601('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xe601('0x2'));var moment=require(_0xe601('0x3'));var BPromise=require(_0xe601('0x4'));var Mustache=require(_0xe601('0x5'));var util=require(_0xe601('0x6'));var path=require(_0xe601('0x7'));var sox=require(_0xe601('0x8'));var csv=require(_0xe601('0x9'));var ejs=require(_0xe601('0xa'));var fs=require('fs');var fs_extra=require(_0xe601('0xb'));var _=require('lodash');var squel=require(_0xe601('0xc'));var crypto=require('crypto');var jsforce=require(_0xe601('0xd'));var deskjs=require(_0xe601('0xe'));var toCsv=require('to-csv');var querystring=require(_0xe601('0xf'));var Papa=require(_0xe601('0x10'));var Redis=require(_0xe601('0x11'));var authService=require(_0xe601('0x12'));var qs=require(_0xe601('0x13'));var as=require(_0xe601('0x14'));var hardwareService=require(_0xe601('0x15'));var logger=require(_0xe601('0x16'))(_0xe601('0x17'));var utils=require(_0xe601('0x18'));var config=require(_0xe601('0x19'));var licenseUtil=require(_0xe601('0x1a'));var db=require(_0xe601('0x1b'))['db'];function respondWithStatusCode(_0x3c938d,_0x49533f){_0x49533f=_0x49533f||0xcc;return function(_0x337d2c){if(_0x337d2c){return _0x3c938d[_0xe601('0x1c')](_0x49533f);}return _0x3c938d[_0xe601('0x1d')](_0x49533f)[_0xe601('0x1e')]();};}function respondWithResult(_0x2c0e3f,_0x1dd8e7){_0x1dd8e7=_0x1dd8e7||0xc8;return function(_0x2b5173){if(_0x2b5173){return _0x2c0e3f[_0xe601('0x1d')](_0x1dd8e7)[_0xe601('0x1f')](_0x2b5173);}};}function respondWithFilteredResult(_0x3ba801,_0x2a0ead){return function(_0xa9d7d5){if(_0xa9d7d5){var _0x554f19=typeof _0x2a0ead['offset']===_0xe601('0x20')&&typeof _0x2a0ead[_0xe601('0x21')]===_0xe601('0x20');var _0x1d9d6b=_0xa9d7d5['count'];var _0x61caac=_0x554f19?0x0:_0x2a0ead[_0xe601('0x22')];var _0x338973=_0x554f19?_0xa9d7d5[_0xe601('0x23')]:_0x2a0ead[_0xe601('0x22')]+_0x2a0ead[_0xe601('0x21')];var _0x55614d;if(_0x338973>=_0x1d9d6b){_0x338973=_0x1d9d6b;_0x55614d=0xc8;}else{_0x55614d=0xce;}_0x3ba801[_0xe601('0x1d')](_0x55614d);return _0x3ba801[_0xe601('0x24')](_0xe601('0x25'),_0x61caac+'-'+_0x338973+'/'+_0x1d9d6b)[_0xe601('0x1f')](_0xa9d7d5);}return null;};}function patchUpdates(_0x2bf133){return function(_0x44d3cb){try{jsonpatch['apply'](_0x44d3cb,_0x2bf133,!![]);}catch(_0x4fc7db){return BPromise[_0xe601('0x26')](_0x4fc7db);}return _0x44d3cb[_0xe601('0x27')]();};}function saveUpdates(_0x57b898,_0x344502){return function(_0x5993a4){if(_0x5993a4){return _0x5993a4['update'](_0x57b898)['then'](function(_0x282c01){return _0x282c01;});}return null;};}function removeEntity(_0x58682a,_0x417146){return function(_0x2d2ab1){if(_0x2d2ab1){return _0x2d2ab1[_0xe601('0x28')]()[_0xe601('0x29')](function(){_0x58682a[_0xe601('0x1d')](0xcc)['end']();});}};}function handleEntityNotFound(_0x420a94,_0x1484ae){return function(_0x6b2368){if(!_0x6b2368){_0x420a94[_0xe601('0x1c')](0x194);}return _0x6b2368;};}function handleError(_0x53f26d,_0x14aeac){_0x14aeac=_0x14aeac||0x1f4;return function(_0x2bcae6){logger[_0xe601('0x2a')](_0x2bcae6[_0xe601('0x2b')]);if(_0x2bcae6[_0xe601('0x2c')]){delete _0x2bcae6[_0xe601('0x2c')];}_0x53f26d[_0xe601('0x1d')](_0x14aeac)[_0xe601('0x2d')](_0x2bcae6);};}exports['index']=function(_0x3b303f,_0x393893){var _0x7b423e={},_0x3c668e={},_0x343b6d={'count':0x0,'rows':[]};var _0x7df58f=_[_0xe601('0x2e')](db['JscriptyQuestionReport'][_0xe601('0x2f')],function(_0x9e50cd){return{'name':_0x9e50cd['fieldName'],'type':_0x9e50cd[_0xe601('0x30')][_0xe601('0x31')]};});_0x3c668e[_0xe601('0x32')]=_['map'](_0x7df58f,_0xe601('0x2c'));_0x3c668e['query']=_[_0xe601('0x33')](_0x3b303f['query']);_0x3c668e[_0xe601('0x34')]=_[_0xe601('0x35')](_0x3c668e[_0xe601('0x32')],_0x3c668e[_0xe601('0x36')]);_0x7b423e['attributes']=_[_0xe601('0x35')](_0x3c668e['model'],qs['fields'](_0x3b303f[_0xe601('0x36')]['fields']));_0x7b423e[_0xe601('0x37')]=_0x7b423e[_0xe601('0x37')][_0xe601('0x38')]?_0x7b423e[_0xe601('0x37')]:_0x3c668e['model'];if(!_0x3b303f[_0xe601('0x36')]['hasOwnProperty'](_0xe601('0x39'))){_0x7b423e[_0xe601('0x21')]=qs['limit'](_0x3b303f['query'][_0xe601('0x21')]);_0x7b423e['offset']=qs[_0xe601('0x22')](_0x3b303f['query']['offset']);}_0x7b423e['order']=qs['sort'](_0x3b303f[_0xe601('0x36')][_0xe601('0x3a')]);_0x7b423e[_0xe601('0x3b')]=qs['filters'](_[_0xe601('0x3c')](_0x3b303f['query'],_0x3c668e['filters']),_0x7df58f);if(_0x3b303f[_0xe601('0x36')][_0xe601('0x3d')]){_0x7b423e[_0xe601('0x3b')]=_[_0xe601('0x3e')](_0x7b423e['where'],{'$or':_['map'](_0x7df58f,function(_0x3b6dfb){if(_0x3b6dfb[_0xe601('0x30')]!=='VIRTUAL'){var _0x56d6b7={};_0x56d6b7[_0x3b6dfb['name']]={'$like':'%'+_0x3b303f[_0xe601('0x36')]['filter']+'%'};return _0x56d6b7;}})});}_0x7b423e=_[_0xe601('0x3e')]({},_0x7b423e,_0x3b303f[_0xe601('0x3f')]);var _0x1ef69f={'where':_0x7b423e['where']};return db[_0xe601('0x40')]['count'](_0x1ef69f)[_0xe601('0x29')](function(_0x2ba576){_0x343b6d['count']=_0x2ba576;if(_0x3b303f['query']['includeAll']){_0x7b423e[_0xe601('0x41')]=[{'all':!![]}];}return db[_0xe601('0x40')][_0xe601('0x42')](_0x7b423e);})['then'](function(_0x30736e){_0x343b6d['rows']=_0x30736e;return _0x343b6d;})['then'](respondWithFilteredResult(_0x393893,_0x7b423e))['catch'](handleError(_0x393893,null));};exports[_0xe601('0x43')]=function(_0x365af8,_0x273216){var _0xa8e621={'raw':!![],'where':{'id':_0x365af8['params']['id']}},_0x3b92cb={};_0x3b92cb[_0xe601('0x32')]=_['keys'](db['JscriptyQuestionReport'][_0xe601('0x2f')]);_0x3b92cb[_0xe601('0x36')]=_[_0xe601('0x33')](_0x365af8['query']);_0x3b92cb[_0xe601('0x34')]=_['intersection'](_0x3b92cb['model'],_0x3b92cb[_0xe601('0x36')]);_0xa8e621[_0xe601('0x37')]=_[_0xe601('0x35')](_0x3b92cb['model'],qs[_0xe601('0x44')](_0x365af8[_0xe601('0x36')][_0xe601('0x44')]));_0xa8e621[_0xe601('0x37')]=_0xa8e621['attributes'][_0xe601('0x38')]?_0xa8e621['attributes']:_0x3b92cb[_0xe601('0x32')];if(_0x365af8['query'][_0xe601('0x45')]){_0xa8e621[_0xe601('0x41')]=[{'all':!![]}];}_0xa8e621=_['merge']({},_0xa8e621,_0x365af8[_0xe601('0x3f')]);return db[_0xe601('0x40')][_0xe601('0x46')](_0xa8e621)[_0xe601('0x29')](handleEntityNotFound(_0x273216,null))[_0xe601('0x29')](respondWithResult(_0x273216,null))[_0xe601('0x47')](handleError(_0x273216,null));};exports[_0xe601('0x48')]=function(_0x48343f,_0x154714){return db[_0xe601('0x40')][_0xe601('0x48')](_0x48343f[_0xe601('0x49')],{})[_0xe601('0x29')](respondWithResult(_0x154714,0xc9))[_0xe601('0x47')](handleError(_0x154714,null));};exports[_0xe601('0x4a')]=function(_0x266e89,_0x5a421c){if(_0x266e89['body']['id']){delete _0x266e89[_0xe601('0x49')]['id'];}return db[_0xe601('0x40')][_0xe601('0x46')]({'where':{'id':_0x266e89[_0xe601('0x4b')]['id']}})[_0xe601('0x29')](handleEntityNotFound(_0x5a421c,null))[_0xe601('0x29')](saveUpdates(_0x266e89[_0xe601('0x49')],null))['then'](respondWithResult(_0x5a421c,null))[_0xe601('0x47')](handleError(_0x5a421c,null));};exports['destroy']=function(_0x1040e7,_0x26ea3a){return db[_0xe601('0x40')]['find']({'where':{'id':_0x1040e7[_0xe601('0x4b')]['id']}})[_0xe601('0x29')](handleEntityNotFound(_0x26ea3a,null))['then'](removeEntity(_0x26ea3a,null))['catch'](handleError(_0x26ea3a,null));};exports['describe']=function(_0x21aa8d,_0x2e683d){return db['JscriptyQuestionReport'][_0xe601('0x4c')]()[_0xe601('0x29')](respondWithResult(_0x2e683d,null))[_0xe601('0x47')](handleError(_0x2e683d,null));};
\ No newline at end of file
+var _0xf8ed=['findAll','catch','show','keys','rawAttributes','create','body','find','params','describe','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','path','ejs','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','json','undefined','count','offset','Content-Range','apply','reject','save','update','then','destroy','end','sendStatus','error','stack','name','send','index','map','JscriptyQuestionReport','type','model','query','attributes','intersection','fields','length','hasOwnProperty','nolimit','limit','sort','filters','pick','where','merge','VIRTUAL','filter','options','includeAll','include'];(function(_0x2be198,_0x542c6e){var _0x4a3172=function(_0xa6d09b){while(--_0xa6d09b){_0x2be198['push'](_0x2be198['shift']());}};_0x4a3172(++_0x542c6e);}(_0xf8ed,0x1d8));var _0xdf8e=function(_0x517a52,_0x5253e0){_0x517a52=_0x517a52-0x0;var _0x162680=_0xf8ed[_0x517a52];return _0x162680;};'use strict';var emlformat=require(_0xdf8e('0x0'));var rimraf=require(_0xdf8e('0x1'));var zipdir=require(_0xdf8e('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xdf8e('0x3'));var moment=require(_0xdf8e('0x4'));var BPromise=require(_0xdf8e('0x5'));var Mustache=require(_0xdf8e('0x6'));var util=require('util');var path=require(_0xdf8e('0x7'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0xdf8e('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xdf8e('0x9'));var squel=require(_0xdf8e('0xa'));var crypto=require(_0xdf8e('0xb'));var jsforce=require(_0xdf8e('0xc'));var deskjs=require(_0xdf8e('0xd'));var toCsv=require(_0xdf8e('0xe'));var querystring=require(_0xdf8e('0xf'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0xdf8e('0x10'));var qs=require(_0xdf8e('0x11'));var as=require(_0xdf8e('0x12'));var hardwareService=require(_0xdf8e('0x13'));var logger=require(_0xdf8e('0x14'))(_0xdf8e('0x15'));var utils=require(_0xdf8e('0x16'));var config=require(_0xdf8e('0x17'));var licenseUtil=require(_0xdf8e('0x18'));var db=require(_0xdf8e('0x19'))['db'];function respondWithStatusCode(_0x18267d,_0xeb4b89){_0xeb4b89=_0xeb4b89||0xcc;return function(_0x53c297){if(_0x53c297){return _0x18267d['sendStatus'](_0xeb4b89);}return _0x18267d['status'](_0xeb4b89)['end']();};}function respondWithResult(_0x2849a6,_0x1a16d0){_0x1a16d0=_0x1a16d0||0xc8;return function(_0x350455){if(_0x350455){return _0x2849a6[_0xdf8e('0x1a')](_0x1a16d0)[_0xdf8e('0x1b')](_0x350455);}};}function respondWithFilteredResult(_0x31ba92,_0x2d5a92){return function(_0x5899f3){if(_0x5899f3){var _0xf89bda=typeof _0x2d5a92['offset']===_0xdf8e('0x1c')&&typeof _0x2d5a92['limit']==='undefined';var _0x3cc0e8=_0x5899f3[_0xdf8e('0x1d')];var _0xead256=_0xf89bda?0x0:_0x2d5a92[_0xdf8e('0x1e')];var _0xf8c50c=_0xf89bda?_0x5899f3['count']:_0x2d5a92[_0xdf8e('0x1e')]+_0x2d5a92['limit'];var _0xeccb7f;if(_0xf8c50c>=_0x3cc0e8){_0xf8c50c=_0x3cc0e8;_0xeccb7f=0xc8;}else{_0xeccb7f=0xce;}_0x31ba92[_0xdf8e('0x1a')](_0xeccb7f);return _0x31ba92['set'](_0xdf8e('0x1f'),_0xead256+'-'+_0xf8c50c+'/'+_0x3cc0e8)[_0xdf8e('0x1b')](_0x5899f3);}return null;};}function patchUpdates(_0x3d61da){return function(_0xb4d24){try{jsonpatch[_0xdf8e('0x20')](_0xb4d24,_0x3d61da,!![]);}catch(_0x5c0c7e){return BPromise[_0xdf8e('0x21')](_0x5c0c7e);}return _0xb4d24[_0xdf8e('0x22')]();};}function saveUpdates(_0x2eaf48,_0xba45d9){return function(_0x182cc9){if(_0x182cc9){return _0x182cc9[_0xdf8e('0x23')](_0x2eaf48)[_0xdf8e('0x24')](function(_0x1c1cdf){return _0x1c1cdf;});}return null;};}function removeEntity(_0x486cdf,_0x265acb){return function(_0x5977cb){if(_0x5977cb){return _0x5977cb[_0xdf8e('0x25')]()[_0xdf8e('0x24')](function(){_0x486cdf[_0xdf8e('0x1a')](0xcc)[_0xdf8e('0x26')]();});}};}function handleEntityNotFound(_0x50341c,_0x40f578){return function(_0x585506){if(!_0x585506){_0x50341c[_0xdf8e('0x27')](0x194);}return _0x585506;};}function handleError(_0x10fa6f,_0x593902){_0x593902=_0x593902||0x1f4;return function(_0x5239d9){logger[_0xdf8e('0x28')](_0x5239d9[_0xdf8e('0x29')]);if(_0x5239d9['name']){delete _0x5239d9[_0xdf8e('0x2a')];}_0x10fa6f['status'](_0x593902)[_0xdf8e('0x2b')](_0x5239d9);};}exports[_0xdf8e('0x2c')]=function(_0x536312,_0x3b113d){var _0x18154d={},_0x4915da={},_0x384ef6={'count':0x0,'rows':[]};var _0x1c46a1=_[_0xdf8e('0x2d')](db[_0xdf8e('0x2e')]['rawAttributes'],function(_0x9906d){return{'name':_0x9906d['fieldName'],'type':_0x9906d[_0xdf8e('0x2f')]['key']};});_0x4915da[_0xdf8e('0x30')]=_[_0xdf8e('0x2d')](_0x1c46a1,_0xdf8e('0x2a'));_0x4915da[_0xdf8e('0x31')]=_['keys'](_0x536312['query']);_0x4915da['filters']=_['intersection'](_0x4915da[_0xdf8e('0x30')],_0x4915da[_0xdf8e('0x31')]);_0x18154d[_0xdf8e('0x32')]=_[_0xdf8e('0x33')](_0x4915da[_0xdf8e('0x30')],qs['fields'](_0x536312['query'][_0xdf8e('0x34')]));_0x18154d['attributes']=_0x18154d[_0xdf8e('0x32')][_0xdf8e('0x35')]?_0x18154d[_0xdf8e('0x32')]:_0x4915da[_0xdf8e('0x30')];if(!_0x536312[_0xdf8e('0x31')][_0xdf8e('0x36')](_0xdf8e('0x37'))){_0x18154d[_0xdf8e('0x38')]=qs[_0xdf8e('0x38')](_0x536312[_0xdf8e('0x31')][_0xdf8e('0x38')]);_0x18154d[_0xdf8e('0x1e')]=qs[_0xdf8e('0x1e')](_0x536312['query'][_0xdf8e('0x1e')]);}_0x18154d['order']=qs['sort'](_0x536312[_0xdf8e('0x31')][_0xdf8e('0x39')]);_0x18154d['where']=qs[_0xdf8e('0x3a')](_[_0xdf8e('0x3b')](_0x536312[_0xdf8e('0x31')],_0x4915da[_0xdf8e('0x3a')]),_0x1c46a1);if(_0x536312[_0xdf8e('0x31')]['filter']){_0x18154d[_0xdf8e('0x3c')]=_[_0xdf8e('0x3d')](_0x18154d['where'],{'$or':_[_0xdf8e('0x2d')](_0x1c46a1,function(_0x57333){if(_0x57333['type']!==_0xdf8e('0x3e')){var _0x26903b={};_0x26903b[_0x57333[_0xdf8e('0x2a')]]={'$like':'%'+_0x536312['query'][_0xdf8e('0x3f')]+'%'};return _0x26903b;}})});}_0x18154d=_['merge']({},_0x18154d,_0x536312[_0xdf8e('0x40')]);var _0x47eaf8={'where':_0x18154d['where']};return db[_0xdf8e('0x2e')][_0xdf8e('0x1d')](_0x47eaf8)[_0xdf8e('0x24')](function(_0x43fbbf){_0x384ef6['count']=_0x43fbbf;if(_0x536312[_0xdf8e('0x31')][_0xdf8e('0x41')]){_0x18154d[_0xdf8e('0x42')]=[{'all':!![]}];}return db[_0xdf8e('0x2e')][_0xdf8e('0x43')](_0x18154d);})[_0xdf8e('0x24')](function(_0x1d1ba4){_0x384ef6['rows']=_0x1d1ba4;return _0x384ef6;})[_0xdf8e('0x24')](respondWithFilteredResult(_0x3b113d,_0x18154d))[_0xdf8e('0x44')](handleError(_0x3b113d,null));};exports[_0xdf8e('0x45')]=function(_0xc73713,_0x552edc){var _0x59da03={'raw':!![],'where':{'id':_0xc73713['params']['id']}},_0x351287={};_0x351287[_0xdf8e('0x30')]=_[_0xdf8e('0x46')](db['JscriptyQuestionReport'][_0xdf8e('0x47')]);_0x351287['query']=_[_0xdf8e('0x46')](_0xc73713[_0xdf8e('0x31')]);_0x351287[_0xdf8e('0x3a')]=_[_0xdf8e('0x33')](_0x351287[_0xdf8e('0x30')],_0x351287[_0xdf8e('0x31')]);_0x59da03['attributes']=_[_0xdf8e('0x33')](_0x351287[_0xdf8e('0x30')],qs['fields'](_0xc73713[_0xdf8e('0x31')][_0xdf8e('0x34')]));_0x59da03[_0xdf8e('0x32')]=_0x59da03[_0xdf8e('0x32')][_0xdf8e('0x35')]?_0x59da03['attributes']:_0x351287['model'];if(_0xc73713[_0xdf8e('0x31')][_0xdf8e('0x41')]){_0x59da03[_0xdf8e('0x42')]=[{'all':!![]}];}_0x59da03=_[_0xdf8e('0x3d')]({},_0x59da03,_0xc73713[_0xdf8e('0x40')]);return db[_0xdf8e('0x2e')]['find'](_0x59da03)['then'](handleEntityNotFound(_0x552edc,null))[_0xdf8e('0x24')](respondWithResult(_0x552edc,null))[_0xdf8e('0x44')](handleError(_0x552edc,null));};exports[_0xdf8e('0x48')]=function(_0x3f61fe,_0x1d837a){return db[_0xdf8e('0x2e')]['create'](_0x3f61fe[_0xdf8e('0x49')],{})[_0xdf8e('0x24')](respondWithResult(_0x1d837a,0xc9))[_0xdf8e('0x44')](handleError(_0x1d837a,null));};exports[_0xdf8e('0x23')]=function(_0x5e2624,_0x38d9d8){if(_0x5e2624[_0xdf8e('0x49')]['id']){delete _0x5e2624[_0xdf8e('0x49')]['id'];}return db[_0xdf8e('0x2e')][_0xdf8e('0x4a')]({'where':{'id':_0x5e2624[_0xdf8e('0x4b')]['id']}})[_0xdf8e('0x24')](handleEntityNotFound(_0x38d9d8,null))[_0xdf8e('0x24')](saveUpdates(_0x5e2624[_0xdf8e('0x49')],null))['then'](respondWithResult(_0x38d9d8,null))[_0xdf8e('0x44')](handleError(_0x38d9d8,null));};exports['destroy']=function(_0x427c4,_0x49247f){return db['JscriptyQuestionReport'][_0xdf8e('0x4a')]({'where':{'id':_0x427c4[_0xdf8e('0x4b')]['id']}})[_0xdf8e('0x24')](handleEntityNotFound(_0x49247f,null))['then'](removeEntity(_0x49247f,null))[_0xdf8e('0x44')](handleError(_0x49247f,null));};exports[_0xdf8e('0x4c')]=function(_0x577fb6,_0x86810a){return db[_0xdf8e('0x2e')][_0xdf8e('0x4c')]()[_0xdf8e('0x24')](respondWithResult(_0x86810a,null))[_0xdf8e('0x44')](handleError(_0x86810a,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdf0e=['util','api','moment','request-promise','path','./jscriptyQuestionReport.attributes','exports','define','JscriptyQuestionReport','lodash'];(function(_0x39c1bd,_0x126061){var _0x5753a0=function(_0x5abdc4){while(--_0x5abdc4){_0x39c1bd['push'](_0x39c1bd['shift']());}};_0x5753a0(++_0x126061);}(_0xdf0e,0x8b));var _0xedf0=function(_0x37b599,_0x8e26cc){_0x37b599=_0x37b599-0x0;var _0x123314=_0xdf0e[_0x37b599];return _0x123314;};'use strict';var _=require(_0xedf0('0x0'));var util=require(_0xedf0('0x1'));var logger=require('../../config/logger')(_0xedf0('0x2'));var moment=require(_0xedf0('0x3'));var BPromise=require('bluebird');var rp=require(_0xedf0('0x4'));var fs=require('fs');var path=require(_0xedf0('0x5'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0xedf0('0x6'));module[_0xedf0('0x7')]=function(_0x1080ae,_0x563ebf){return _0x1080ae[_0xedf0('0x8')](_0xedf0('0x9'),attributes,{'tableName':'report_jscripty_questions','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x1e56=['../../config/environment','./jscriptyQuestionReport.attributes','define','JscriptyQuestionReport','lodash','util','../../config/logger','moment','bluebird','path','rimraf'];(function(_0x17af42,_0x667a39){var _0x54813d=function(_0x3021bd){while(--_0x3021bd){_0x17af42['push'](_0x17af42['shift']());}};_0x54813d(++_0x667a39);}(_0x1e56,0xca));var _0x61e5=function(_0x20c48c,_0x5b8242){_0x20c48c=_0x20c48c-0x0;var _0x300d4f=_0x1e56[_0x20c48c];return _0x300d4f;};'use strict';var _=require(_0x61e5('0x0'));var util=require(_0x61e5('0x1'));var logger=require(_0x61e5('0x2'))('api');var moment=require(_0x61e5('0x3'));var BPromise=require(_0x61e5('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x61e5('0x5'));var rimraf=require(_0x61e5('0x6'));var config=require(_0x61e5('0x7'));var attributes=require(_0x61e5('0x8'));module['exports']=function(_0x29cc07,_0x4d2457){return _0x29cc07[_0x61e5('0x9')](_0x61e5('0xa'),attributes,{'tableName':'report_jscripty_questions','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3474=['client','http','request','then','info','request\x20sent','debug','JscriptyQuestionReport,\x20%s,\x20%s,\x20%s','error','code','JscriptyQuestionReport,\x20%s,\x20%s','message','result','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise'];(function(_0x3bad00,_0x3af7d4){var _0x5d74d3=function(_0x524daf){while(--_0x524daf){_0x3bad00['push'](_0x3bad00['shift']());}};_0x5d74d3(++_0x3af7d4);}(_0x3474,0x72));var _0x4347=function(_0x1d5eed,_0x5a6d54){_0x1d5eed=_0x1d5eed-0x0;var _0x3d9c4e=_0x3474[_0x1d5eed];return _0x3d9c4e;};'use strict';var _=require(_0x4347('0x0'));var util=require(_0x4347('0x1'));var moment=require(_0x4347('0x2'));var BPromise=require(_0x4347('0x3'));var rs=require(_0x4347('0x4'));var fs=require('fs');var Redis=require(_0x4347('0x5'));var db=require(_0x4347('0x6'))['db'];var utils=require(_0x4347('0x7'));var logger=require(_0x4347('0x8'))(_0x4347('0x9'));var config=require('../../config/environment');var jayson=require(_0x4347('0xa'));var client=jayson[_0x4347('0xb')][_0x4347('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x53b691,_0xa884b3,_0x2f8d96){return new BPromise(function(_0x36479b,_0x21457){return client[_0x4347('0xd')](_0x53b691,_0x2f8d96)[_0x4347('0xe')](function(_0x3b5344){logger[_0x4347('0xf')]('JscriptyQuestionReport,\x20%s,\x20%s',_0xa884b3,_0x4347('0x10'));logger[_0x4347('0x11')](_0x4347('0x12'),_0xa884b3,_0x4347('0x10'),JSON['stringify'](_0x3b5344));if(_0x3b5344[_0x4347('0x13')]){if(_0x3b5344['error'][_0x4347('0x14')]===0x1f4){logger[_0x4347('0x13')](_0x4347('0x15'),_0xa884b3,_0x3b5344[_0x4347('0x13')]['message']);return _0x21457(_0x3b5344[_0x4347('0x13')][_0x4347('0x16')]);}logger[_0x4347('0x13')]('JscriptyQuestionReport,\x20%s,\x20%s',_0xa884b3,_0x3b5344['error'][_0x4347('0x16')]);return _0x36479b(_0x3b5344[_0x4347('0x13')]['message']);}else{logger[_0x4347('0xf')](_0x4347('0x15'),_0xa884b3,'request\x20sent');_0x36479b(_0x3b5344[_0x4347('0x17')][_0x4347('0x16')]);}})[_0x4347('0x18')](function(_0x48a40d){logger[_0x4347('0x13')](_0x4347('0x15'),_0xa884b3,_0x48a40d);_0x21457(_0x48a40d);});});}
\ No newline at end of file
+var _0x1e12=['JscriptyQuestionReport,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','http','request','then','info','JscriptyQuestionReport,\x20%s,\x20%s','request\x20sent','debug'];(function(_0x705b98,_0x1c345b){var _0x47b72f=function(_0x44f02a){while(--_0x44f02a){_0x705b98['push'](_0x705b98['shift']());}};_0x47b72f(++_0x1c345b);}(_0x1e12,0xd5));var _0x21e1=function(_0xd16343,_0x13f2da){_0xd16343=_0xd16343-0x0;var _0x218e00=_0x1e12[_0xd16343];return _0x218e00;};'use strict';var _=require(_0x21e1('0x0'));var util=require(_0x21e1('0x1'));var moment=require(_0x21e1('0x2'));var BPromise=require(_0x21e1('0x3'));var rs=require(_0x21e1('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x21e1('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0x21e1('0x6'))(_0x21e1('0x7'));var config=require(_0x21e1('0x8'));var jayson=require(_0x21e1('0x9'));var client=jayson['client'][_0x21e1('0xa')]({'port':0x232a});function respondWithRpcPromise(_0xd0e875,_0x5abba5,_0x568770){return new BPromise(function(_0x3e9c89,_0x3cf4b5){return client[_0x21e1('0xb')](_0xd0e875,_0x568770)[_0x21e1('0xc')](function(_0x16430f){logger[_0x21e1('0xd')](_0x21e1('0xe'),_0x5abba5,_0x21e1('0xf'));logger[_0x21e1('0x10')](_0x21e1('0x11'),_0x5abba5,'request\x20sent',JSON[_0x21e1('0x12')](_0x16430f));if(_0x16430f[_0x21e1('0x13')]){if(_0x16430f[_0x21e1('0x13')]['code']===0x1f4){logger[_0x21e1('0x13')](_0x21e1('0xe'),_0x5abba5,_0x16430f[_0x21e1('0x13')][_0x21e1('0x14')]);return _0x3cf4b5(_0x16430f[_0x21e1('0x13')][_0x21e1('0x14')]);}logger['error'](_0x21e1('0xe'),_0x5abba5,_0x16430f[_0x21e1('0x13')][_0x21e1('0x14')]);return _0x3e9c89(_0x16430f[_0x21e1('0x13')][_0x21e1('0x14')]);}else{logger[_0x21e1('0xd')](_0x21e1('0xe'),_0x5abba5,_0x21e1('0xf'));_0x3e9c89(_0x16430f[_0x21e1('0x15')][_0x21e1('0x14')]);}})[_0x21e1('0x16')](function(_0x35fc68){logger['error'](_0x21e1('0xe'),_0x5abba5,_0x35fc68);_0x3cf4b5(_0x35fc68);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xac52=['connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./jscriptySessionReport.controller','index','get','isAuthenticated','describe','/:id','show','/:id/questions','getQuestions','post','create','update','delete','destroy','exports','multer','util','path'];(function(_0x1d0405,_0x37a7a3){var _0xc7a709=function(_0x5c14bb){while(--_0x5c14bb){_0x1d0405['push'](_0x1d0405['shift']());}};_0xc7a709(++_0x37a7a3);}(_0xac52,0x93));var _0x2ac5=function(_0x4914e2,_0x48be8f){_0x4914e2=_0x4914e2-0x0;var _0x2dcd07=_0xac52[_0x4914e2];return _0x2dcd07;};'use strict';var multer=require(_0x2ac5('0x0'));var util=require(_0x2ac5('0x1'));var path=require(_0x2ac5('0x2'));var timeout=require(_0x2ac5('0x3'));var express=require(_0x2ac5('0x4'));var router=express[_0x2ac5('0x5')]();var fs_extra=require(_0x2ac5('0x6'));var auth=require(_0x2ac5('0x7'));var interaction=require(_0x2ac5('0x8'));var config=require(_0x2ac5('0x9'));var controller=require(_0x2ac5('0xa'));router['get']('/',auth['isAuthenticated'](),controller[_0x2ac5('0xb')]);router[_0x2ac5('0xc')]('/describe',auth[_0x2ac5('0xd')](),controller[_0x2ac5('0xe')]);router['get'](_0x2ac5('0xf'),auth[_0x2ac5('0xd')](),controller[_0x2ac5('0x10')]);router[_0x2ac5('0xc')](_0x2ac5('0x11'),auth['isAuthenticated'](),controller[_0x2ac5('0x12')]);router[_0x2ac5('0x13')]('/',auth['isAuthenticated'](),controller[_0x2ac5('0x14')]);router['put']('/:id',auth[_0x2ac5('0xd')](),controller[_0x2ac5('0x15')]);router[_0x2ac5('0x16')]('/:id',auth[_0x2ac5('0xd')](),controller[_0x2ac5('0x17')]);module[_0x2ac5('0x18')]=router;
\ No newline at end of file
+var _0xfce6=['multer','util','path','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','/describe','/:id','/:id/questions','getQuestions','post','create','put','update','delete','destroy'];(function(_0x3dc73c,_0x1177d9){var _0x333fa9=function(_0x60fe88){while(--_0x60fe88){_0x3dc73c['push'](_0x3dc73c['shift']());}};_0x333fa9(++_0x1177d9);}(_0xfce6,0x176));var _0x6fce=function(_0x130dac,_0x4799d4){_0x130dac=_0x130dac-0x0;var _0x4d2555=_0xfce6[_0x130dac];return _0x4d2555;};'use strict';var multer=require(_0x6fce('0x0'));var util=require(_0x6fce('0x1'));var path=require(_0x6fce('0x2'));var timeout=require(_0x6fce('0x3'));var express=require(_0x6fce('0x4'));var router=express['Router']();var fs_extra=require(_0x6fce('0x5'));var auth=require(_0x6fce('0x6'));var interaction=require(_0x6fce('0x7'));var config=require(_0x6fce('0x8'));var controller=require('./jscriptySessionReport.controller');router[_0x6fce('0x9')]('/',auth[_0x6fce('0xa')](),controller[_0x6fce('0xb')]);router[_0x6fce('0x9')](_0x6fce('0xc'),auth['isAuthenticated'](),controller['describe']);router[_0x6fce('0x9')](_0x6fce('0xd'),auth[_0x6fce('0xa')](),controller['show']);router['get'](_0x6fce('0xe'),auth[_0x6fce('0xa')](),controller[_0x6fce('0xf')]);router[_0x6fce('0x10')]('/',auth[_0x6fce('0xa')](),controller[_0x6fce('0x11')]);router[_0x6fce('0x12')](_0x6fce('0xd'),auth[_0x6fce('0xa')](),controller[_0x6fce('0x13')]);router[_0x6fce('0x14')](_0x6fce('0xd'),auth['isAuthenticated'](),controller[_0x6fce('0x15')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb76b=['setDataValue','starttime','endtime','format','YYYY-MM-DD\x20HH:mm:ss','STRING','sequelize','exports','DATE'];(function(_0x1a70db,_0x3e6f65){var _0x2346bf=function(_0x335109){while(--_0x335109){_0x1a70db['push'](_0x1a70db['shift']());}};_0x2346bf(++_0x3e6f65);}(_0xb76b,0x12f));var _0xbb76=function(_0x5a67f5,_0x3e13d3){_0x5a67f5=_0x5a67f5-0x0;var _0x52a654=_0xb76b[_0x5a67f5];return _0x52a654;};'use strict';var moment=require('moment');var Sequelize=require(_0xbb76('0x0'));module[_0xbb76('0x1')]={'starttime':{'type':Sequelize[_0xbb76('0x2')],'set':function(_0x524a14){this[_0xbb76('0x3')](_0xbb76('0x4'),_0x524a14);this[_0xbb76('0x3')](_0xbb76('0x5'),moment()[_0xbb76('0x6')](_0xbb76('0x7')));}},'endtime':{'type':Sequelize[_0xbb76('0x2')]},'membername':{'type':Sequelize[_0xbb76('0x8')]},'projectname':{'type':Sequelize[_0xbb76('0x8')]},'queue':{'type':Sequelize[_0xbb76('0x8')]},'uniqueid':{'type':Sequelize['STRING']},'calleridname':{'type':Sequelize[_0xbb76('0x8')]},'calleridnum':{'type':Sequelize[_0xbb76('0x8')]},'completed':{'type':Sequelize['BOOLEAN'],'defaultValue':![]}};
\ No newline at end of file
+var _0xed65=['BOOLEAN','moment','sequelize','exports','DATE','setDataValue','YYYY-MM-DD\x20HH:mm:ss','STRING'];(function(_0x8ec6b4,_0x31ef52){var _0x52c0d0=function(_0x17cadc){while(--_0x17cadc){_0x8ec6b4['push'](_0x8ec6b4['shift']());}};_0x52c0d0(++_0x31ef52);}(_0xed65,0xa1));var _0x5ed6=function(_0x3015f9,_0x6eeb0d){_0x3015f9=_0x3015f9-0x0;var _0x3390b6=_0xed65[_0x3015f9];return _0x3390b6;};'use strict';var moment=require(_0x5ed6('0x0'));var Sequelize=require(_0x5ed6('0x1'));module[_0x5ed6('0x2')]={'starttime':{'type':Sequelize[_0x5ed6('0x3')],'set':function(_0x59a8f4){this[_0x5ed6('0x4')]('starttime',_0x59a8f4);this[_0x5ed6('0x4')]('endtime',moment()['format'](_0x5ed6('0x5')));}},'endtime':{'type':Sequelize['DATE']},'membername':{'type':Sequelize[_0x5ed6('0x6')]},'projectname':{'type':Sequelize[_0x5ed6('0x6')]},'queue':{'type':Sequelize[_0x5ed6('0x6')]},'uniqueid':{'type':Sequelize[_0x5ed6('0x6')]},'calleridname':{'type':Sequelize[_0x5ed6('0x6')]},'calleridnum':{'type':Sequelize[_0x5ed6('0x6')]},'completed':{'type':Sequelize[_0x5ed6('0x7')],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3d8b=['lodash','crypto','jsforce','desk.js','querystring','ioredis','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../mysqldb','sendStatus','end','status','json','offset','limit','undefined','count','set','apply','save','update','then','destroy','error','stack','name','send','index','map','JscriptySessionReport','rawAttributes','fieldName','type','model','keys','query','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','VIRTUAL','options','include','rows','catch','show','includeAll','create','body','params','describe','getQuestions','findOne','JscriptyQuestionReport','order','SessionId','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs'];(function(_0x16bb4b,_0x5fe431){var _0x8aeb84=function(_0x36ba6e){while(--_0x36ba6e){_0x16bb4b['push'](_0x16bb4b['shift']());}};_0x8aeb84(++_0x5fe431);}(_0x3d8b,0x183));var _0xb3d8=function(_0x255acb,_0x1c5d91){_0x255acb=_0x255acb-0x0;var _0x4154a4=_0x3d8b[_0x255acb];return _0x4154a4;};'use strict';var emlformat=require(_0xb3d8('0x0'));var rimraf=require(_0xb3d8('0x1'));var zipdir=require(_0xb3d8('0x2'));var jsonpatch=require(_0xb3d8('0x3'));var rp=require(_0xb3d8('0x4'));var moment=require(_0xb3d8('0x5'));var BPromise=require(_0xb3d8('0x6'));var Mustache=require(_0xb3d8('0x7'));var util=require(_0xb3d8('0x8'));var path=require(_0xb3d8('0x9'));var sox=require(_0xb3d8('0xa'));var csv=require(_0xb3d8('0xb'));var ejs=require(_0xb3d8('0xc'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xb3d8('0xd'));var squel=require('squel');var crypto=require(_0xb3d8('0xe'));var jsforce=require(_0xb3d8('0xf'));var deskjs=require(_0xb3d8('0x10'));var toCsv=require(_0xb3d8('0xb'));var querystring=require(_0xb3d8('0x11'));var Papa=require('papaparse');var Redis=require(_0xb3d8('0x12'));var authService=require('../../components/auth/service');var qs=require(_0xb3d8('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xb3d8('0x14'));var logger=require(_0xb3d8('0x15'))(_0xb3d8('0x16'));var utils=require(_0xb3d8('0x17'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0xb3d8('0x18'))['db'];function respondWithStatusCode(_0x2962a3,_0x51ad1c){_0x51ad1c=_0x51ad1c||0xcc;return function(_0x2970c4){if(_0x2970c4){return _0x2962a3[_0xb3d8('0x19')](_0x51ad1c);}return _0x2962a3['status'](_0x51ad1c)[_0xb3d8('0x1a')]();};}function respondWithResult(_0x53b4d2,_0x389653){_0x389653=_0x389653||0xc8;return function(_0xd038bb){if(_0xd038bb){return _0x53b4d2[_0xb3d8('0x1b')](_0x389653)[_0xb3d8('0x1c')](_0xd038bb);}};}function respondWithFilteredResult(_0x6dc50e,_0x3eb3a0){return function(_0x5b76f4){if(_0x5b76f4){var _0x1ebae3=typeof _0x3eb3a0[_0xb3d8('0x1d')]==='undefined'&&typeof _0x3eb3a0[_0xb3d8('0x1e')]===_0xb3d8('0x1f');var _0x45c77f=_0x5b76f4[_0xb3d8('0x20')];var _0x55ce9f=_0x1ebae3?0x0:_0x3eb3a0[_0xb3d8('0x1d')];var _0x10a715=_0x1ebae3?_0x5b76f4[_0xb3d8('0x20')]:_0x3eb3a0[_0xb3d8('0x1d')]+_0x3eb3a0[_0xb3d8('0x1e')];var _0xd770fd;if(_0x10a715>=_0x45c77f){_0x10a715=_0x45c77f;_0xd770fd=0xc8;}else{_0xd770fd=0xce;}_0x6dc50e[_0xb3d8('0x1b')](_0xd770fd);return _0x6dc50e[_0xb3d8('0x21')]('Content-Range',_0x55ce9f+'-'+_0x10a715+'/'+_0x45c77f)[_0xb3d8('0x1c')](_0x5b76f4);}return null;};}function patchUpdates(_0x59b833){return function(_0x41079b){try{jsonpatch[_0xb3d8('0x22')](_0x41079b,_0x59b833,!![]);}catch(_0x537567){return BPromise['reject'](_0x537567);}return _0x41079b[_0xb3d8('0x23')]();};}function saveUpdates(_0x23ed20,_0x46727c){return function(_0x25b58d){if(_0x25b58d){return _0x25b58d[_0xb3d8('0x24')](_0x23ed20)[_0xb3d8('0x25')](function(_0x3b0912){return _0x3b0912;});}return null;};}function removeEntity(_0x2a6ddc,_0x3d2b2b){return function(_0x38b83a){if(_0x38b83a){return _0x38b83a[_0xb3d8('0x26')]()[_0xb3d8('0x25')](function(){_0x2a6ddc[_0xb3d8('0x1b')](0xcc)[_0xb3d8('0x1a')]();});}};}function handleEntityNotFound(_0x7efd87,_0x19894e){return function(_0x123f75){if(!_0x123f75){_0x7efd87['sendStatus'](0x194);}return _0x123f75;};}function handleError(_0x441b6a,_0x330b1d){_0x330b1d=_0x330b1d||0x1f4;return function(_0x5dfd5a){logger[_0xb3d8('0x27')](_0x5dfd5a[_0xb3d8('0x28')]);if(_0x5dfd5a[_0xb3d8('0x29')]){delete _0x5dfd5a[_0xb3d8('0x29')];}_0x441b6a[_0xb3d8('0x1b')](_0x330b1d)[_0xb3d8('0x2a')](_0x5dfd5a);};}exports[_0xb3d8('0x2b')]=function(_0x2b4cec,_0x41e404){var _0x5b2876={},_0x18b186={},_0x43ef08={'count':0x0,'rows':[]};var _0x142eaf=_[_0xb3d8('0x2c')](db[_0xb3d8('0x2d')][_0xb3d8('0x2e')],function(_0x47d0c3){return{'name':_0x47d0c3[_0xb3d8('0x2f')],'type':_0x47d0c3[_0xb3d8('0x30')]['key']};});_0x18b186[_0xb3d8('0x31')]=_[_0xb3d8('0x2c')](_0x142eaf,_0xb3d8('0x29'));_0x18b186['query']=_[_0xb3d8('0x32')](_0x2b4cec[_0xb3d8('0x33')]);_0x18b186[_0xb3d8('0x34')]=_['intersection'](_0x18b186[_0xb3d8('0x31')],_0x18b186[_0xb3d8('0x33')]);_0x5b2876[_0xb3d8('0x35')]=_[_0xb3d8('0x36')](_0x18b186[_0xb3d8('0x31')],qs[_0xb3d8('0x37')](_0x2b4cec['query']['fields']));_0x5b2876[_0xb3d8('0x35')]=_0x5b2876['attributes'][_0xb3d8('0x38')]?_0x5b2876[_0xb3d8('0x35')]:_0x18b186['model'];if(!_0x2b4cec['query'][_0xb3d8('0x39')](_0xb3d8('0x3a'))){_0x5b2876['limit']=qs[_0xb3d8('0x1e')](_0x2b4cec[_0xb3d8('0x33')][_0xb3d8('0x1e')]);_0x5b2876['offset']=qs['offset'](_0x2b4cec[_0xb3d8('0x33')][_0xb3d8('0x1d')]);}_0x5b2876['order']=qs[_0xb3d8('0x3b')](_0x2b4cec[_0xb3d8('0x33')][_0xb3d8('0x3b')]);_0x5b2876[_0xb3d8('0x3c')]=qs[_0xb3d8('0x34')](_[_0xb3d8('0x3d')](_0x2b4cec['query'],_0x18b186[_0xb3d8('0x34')]),_0x142eaf);if(_0x2b4cec['query'][_0xb3d8('0x3e')]){_0x5b2876[_0xb3d8('0x3c')]=_[_0xb3d8('0x3f')](_0x5b2876[_0xb3d8('0x3c')],{'$or':_[_0xb3d8('0x2c')](_0x142eaf,function(_0x5bbed0){if(_0x5bbed0[_0xb3d8('0x30')]!==_0xb3d8('0x40')){var _0x300dee={};_0x300dee[_0x5bbed0[_0xb3d8('0x29')]]={'$like':'%'+_0x2b4cec[_0xb3d8('0x33')][_0xb3d8('0x3e')]+'%'};return _0x300dee;}})});}_0x5b2876=_[_0xb3d8('0x3f')]({},_0x5b2876,_0x2b4cec[_0xb3d8('0x41')]);var _0x5b4fe4={'where':_0x5b2876['where']};return db[_0xb3d8('0x2d')][_0xb3d8('0x20')](_0x5b4fe4)[_0xb3d8('0x25')](function(_0x1741cc){_0x43ef08[_0xb3d8('0x20')]=_0x1741cc;if(_0x2b4cec['query']['includeAll']){_0x5b2876[_0xb3d8('0x42')]=[{'all':!![]}];}return db[_0xb3d8('0x2d')]['findAll'](_0x5b2876);})[_0xb3d8('0x25')](function(_0x20e935){_0x43ef08[_0xb3d8('0x43')]=_0x20e935;return _0x43ef08;})[_0xb3d8('0x25')](respondWithFilteredResult(_0x41e404,_0x5b2876))[_0xb3d8('0x44')](handleError(_0x41e404,null));};exports[_0xb3d8('0x45')]=function(_0x549fd6,_0x15a528){var _0x38992e={'raw':!![],'where':{'id':_0x549fd6['params']['id']}},_0x1ad6c7={};_0x1ad6c7[_0xb3d8('0x31')]=_[_0xb3d8('0x32')](db['JscriptySessionReport'][_0xb3d8('0x2e')]);_0x1ad6c7[_0xb3d8('0x33')]=_[_0xb3d8('0x32')](_0x549fd6[_0xb3d8('0x33')]);_0x1ad6c7['filters']=_[_0xb3d8('0x36')](_0x1ad6c7[_0xb3d8('0x31')],_0x1ad6c7[_0xb3d8('0x33')]);_0x38992e[_0xb3d8('0x35')]=_[_0xb3d8('0x36')](_0x1ad6c7[_0xb3d8('0x31')],qs[_0xb3d8('0x37')](_0x549fd6[_0xb3d8('0x33')][_0xb3d8('0x37')]));_0x38992e[_0xb3d8('0x35')]=_0x38992e[_0xb3d8('0x35')][_0xb3d8('0x38')]?_0x38992e[_0xb3d8('0x35')]:_0x1ad6c7['model'];if(_0x549fd6[_0xb3d8('0x33')][_0xb3d8('0x46')]){_0x38992e[_0xb3d8('0x42')]=[{'all':!![]}];}_0x38992e=_['merge']({},_0x38992e,_0x549fd6[_0xb3d8('0x41')]);return db[_0xb3d8('0x2d')]['find'](_0x38992e)[_0xb3d8('0x25')](handleEntityNotFound(_0x15a528,null))['then'](respondWithResult(_0x15a528,null))[_0xb3d8('0x44')](handleError(_0x15a528,null));};exports[_0xb3d8('0x47')]=function(_0x5971ef,_0x113b0c){return db[_0xb3d8('0x2d')][_0xb3d8('0x47')](_0x5971ef[_0xb3d8('0x48')],{})[_0xb3d8('0x25')](respondWithResult(_0x113b0c,0xc9))['catch'](handleError(_0x113b0c,null));};exports[_0xb3d8('0x24')]=function(_0x1174a8,_0x52e809){if(_0x1174a8['body']['id']){delete _0x1174a8['body']['id'];}return db[_0xb3d8('0x2d')]['find']({'where':{'id':_0x1174a8['params']['id']}})[_0xb3d8('0x25')](handleEntityNotFound(_0x52e809,null))[_0xb3d8('0x25')](saveUpdates(_0x1174a8[_0xb3d8('0x48')],null))['then'](respondWithResult(_0x52e809,null))[_0xb3d8('0x44')](handleError(_0x52e809,null));};exports['destroy']=function(_0x113adf,_0x409d1e){return db[_0xb3d8('0x2d')]['find']({'where':{'id':_0x113adf[_0xb3d8('0x49')]['id']}})[_0xb3d8('0x25')](handleEntityNotFound(_0x409d1e,null))[_0xb3d8('0x25')](removeEntity(_0x409d1e,null))[_0xb3d8('0x44')](handleError(_0x409d1e,null));};exports[_0xb3d8('0x4a')]=function(_0x4bd1ee,_0x377000){return db[_0xb3d8('0x2d')][_0xb3d8('0x4a')]()[_0xb3d8('0x25')](respondWithResult(_0x377000,null))[_0xb3d8('0x44')](handleError(_0x377000,null));};exports[_0xb3d8('0x4b')]=function(_0x460669,_0x4bb746,_0x426471){var _0x35610c={'raw':!![],'where':{}};var _0x17e0c2={};var _0x5cd0e3={'count':0x0,'rows':[]};return db[_0xb3d8('0x2d')][_0xb3d8('0x4c')]({'where':{'id':_0x460669[_0xb3d8('0x49')]['id']}})[_0xb3d8('0x25')](handleEntityNotFound(_0x4bb746,null))[_0xb3d8('0x25')](function(_0x544d23){if(_0x544d23){_0x17e0c2['model']=_[_0xb3d8('0x32')](db[_0xb3d8('0x4d')][_0xb3d8('0x2e')]);_0x17e0c2[_0xb3d8('0x33')]=_['keys'](_0x460669['query']);_0x17e0c2[_0xb3d8('0x34')]=_[_0xb3d8('0x36')](_0x17e0c2[_0xb3d8('0x31')],_0x17e0c2[_0xb3d8('0x33')]);_0x35610c[_0xb3d8('0x35')]=_[_0xb3d8('0x36')](_0x17e0c2[_0xb3d8('0x31')],qs[_0xb3d8('0x37')](_0x460669[_0xb3d8('0x33')][_0xb3d8('0x37')]));_0x35610c[_0xb3d8('0x35')]=_0x35610c[_0xb3d8('0x35')][_0xb3d8('0x38')]?_0x35610c[_0xb3d8('0x35')]:_0x17e0c2[_0xb3d8('0x31')];if(!_0x460669[_0xb3d8('0x33')]['hasOwnProperty'](_0xb3d8('0x3a'))){_0x35610c['limit']=qs[_0xb3d8('0x1e')](_0x460669[_0xb3d8('0x33')][_0xb3d8('0x1e')]);_0x35610c[_0xb3d8('0x1d')]=qs[_0xb3d8('0x1d')](_0x460669[_0xb3d8('0x33')][_0xb3d8('0x1d')]);}_0x35610c[_0xb3d8('0x4e')]=qs[_0xb3d8('0x3b')](_0x460669[_0xb3d8('0x33')][_0xb3d8('0x3b')]);_0x35610c['where']=qs[_0xb3d8('0x34')](_[_0xb3d8('0x3d')](_0x460669[_0xb3d8('0x33')],_0x17e0c2[_0xb3d8('0x34')]));_0x35610c[_0xb3d8('0x3c')][_0xb3d8('0x4f')]=_0x544d23['id'];if(_0x460669[_0xb3d8('0x33')][_0xb3d8('0x3e')]){_0x35610c['where']=_[_0xb3d8('0x3f')](_0x35610c[_0xb3d8('0x3c')],{'$or':_['map'](_0x35610c['attributes'],function(_0x3c7f45){var _0x44d7f1={};_0x44d7f1[_0x3c7f45]={'$like':'%'+_0x460669[_0xb3d8('0x33')][_0xb3d8('0x3e')]+'%'};return _0x44d7f1;})});}_0x35610c=_[_0xb3d8('0x3f')]({},_0x35610c,_0x460669['options']);return db['JscriptyQuestionReport'][_0xb3d8('0x20')]({'where':_0x35610c[_0xb3d8('0x3c')]})[_0xb3d8('0x25')](function(_0x38fdd3){_0x5cd0e3['count']=_0x38fdd3;if(_0x460669[_0xb3d8('0x33')][_0xb3d8('0x46')]){_0x35610c['include']=[{'all':!![]}];}return db['JscriptyQuestionReport']['findAll'](_0x35610c);})[_0xb3d8('0x25')](function(_0x462dec){_0x5cd0e3['rows']=_0x462dec;return _0x5cd0e3;});}})[_0xb3d8('0x25')](respondWithFilteredResult(_0x4bb746,_0x35610c))['catch'](handleError(_0x4bb746,null));};
\ No newline at end of file
+var _0x96f4=['query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','type','VIRTUAL','options','findAll','catch','show','params','rawAttributes','includeAll','include','find','create','body','describe','getQuestions','findOne','JscriptyQuestionReport','SessionId','rows','eml-format','zip-dir','fast-json-patch','moment','bluebird','mustache','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','../../config/utils','../../config/environment','../../mysqldb','status','json','limit','undefined','count','offset','set','Content-Range','apply','reject','update','then','end','sendStatus','error','stack','send','index','map','JscriptySessionReport','key','model','name'];(function(_0x482842,_0xf6fe04){var _0x58b7a9=function(_0x13a702){while(--_0x13a702){_0x482842['push'](_0x482842['shift']());}};_0x58b7a9(++_0xf6fe04);}(_0x96f4,0x11b));var _0x496f=function(_0x1a595a,_0x263824){_0x1a595a=_0x1a595a-0x0;var _0x33f008=_0x96f4[_0x1a595a];return _0x33f008;};'use strict';var emlformat=require(_0x496f('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x496f('0x1'));var jsonpatch=require(_0x496f('0x2'));var rp=require('request-promise');var moment=require(_0x496f('0x3'));var BPromise=require(_0x496f('0x4'));var Mustache=require(_0x496f('0x5'));var util=require(_0x496f('0x6'));var path=require(_0x496f('0x7'));var sox=require(_0x496f('0x8'));var csv=require(_0x496f('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x496f('0xa'));var _=require(_0x496f('0xb'));var squel=require(_0x496f('0xc'));var crypto=require(_0x496f('0xd'));var jsforce=require(_0x496f('0xe'));var deskjs=require(_0x496f('0xf'));var toCsv=require(_0x496f('0x9'));var querystring=require(_0x496f('0x10'));var Papa=require('papaparse');var Redis=require(_0x496f('0x11'));var authService=require(_0x496f('0x12'));var qs=require(_0x496f('0x13'));var as=require(_0x496f('0x14'));var hardwareService=require(_0x496f('0x15'));var logger=require(_0x496f('0x16'))('api');var utils=require(_0x496f('0x17'));var config=require(_0x496f('0x18'));var licenseUtil=require('../../config/license/util');var db=require(_0x496f('0x19'))['db'];function respondWithStatusCode(_0x2223bf,_0x4b8e41){_0x4b8e41=_0x4b8e41||0xcc;return function(_0x158832){if(_0x158832){return _0x2223bf['sendStatus'](_0x4b8e41);}return _0x2223bf[_0x496f('0x1a')](_0x4b8e41)['end']();};}function respondWithResult(_0x5bf2ef,_0x1717be){_0x1717be=_0x1717be||0xc8;return function(_0x19d5cf){if(_0x19d5cf){return _0x5bf2ef['status'](_0x1717be)[_0x496f('0x1b')](_0x19d5cf);}};}function respondWithFilteredResult(_0x2593c5,_0x48be43){return function(_0x13e4b6){if(_0x13e4b6){var _0x2ea037=typeof _0x48be43['offset']==='undefined'&&typeof _0x48be43[_0x496f('0x1c')]===_0x496f('0x1d');var _0x57cf63=_0x13e4b6[_0x496f('0x1e')];var _0x1b88b7=_0x2ea037?0x0:_0x48be43[_0x496f('0x1f')];var _0x1973ca=_0x2ea037?_0x13e4b6['count']:_0x48be43['offset']+_0x48be43[_0x496f('0x1c')];var _0x2da2b3;if(_0x1973ca>=_0x57cf63){_0x1973ca=_0x57cf63;_0x2da2b3=0xc8;}else{_0x2da2b3=0xce;}_0x2593c5[_0x496f('0x1a')](_0x2da2b3);return _0x2593c5[_0x496f('0x20')](_0x496f('0x21'),_0x1b88b7+'-'+_0x1973ca+'/'+_0x57cf63)[_0x496f('0x1b')](_0x13e4b6);}return null;};}function patchUpdates(_0x589b3d){return function(_0x466af3){try{jsonpatch[_0x496f('0x22')](_0x466af3,_0x589b3d,!![]);}catch(_0x910bb3){return BPromise[_0x496f('0x23')](_0x910bb3);}return _0x466af3['save']();};}function saveUpdates(_0x4b9ebb,_0x2b7287){return function(_0x2fada4){if(_0x2fada4){return _0x2fada4[_0x496f('0x24')](_0x4b9ebb)['then'](function(_0x2aab43){return _0x2aab43;});}return null;};}function removeEntity(_0x3b0374,_0x1d9bee){return function(_0x20830d){if(_0x20830d){return _0x20830d['destroy']()[_0x496f('0x25')](function(){_0x3b0374[_0x496f('0x1a')](0xcc)[_0x496f('0x26')]();});}};}function handleEntityNotFound(_0x5e588e,_0x293ad6){return function(_0x246129){if(!_0x246129){_0x5e588e[_0x496f('0x27')](0x194);}return _0x246129;};}function handleError(_0x1567d0,_0x1b64e2){_0x1b64e2=_0x1b64e2||0x1f4;return function(_0x4251eb){logger[_0x496f('0x28')](_0x4251eb[_0x496f('0x29')]);if(_0x4251eb['name']){delete _0x4251eb['name'];}_0x1567d0[_0x496f('0x1a')](_0x1b64e2)[_0x496f('0x2a')](_0x4251eb);};}exports[_0x496f('0x2b')]=function(_0x9b3e04,_0x16b802){var _0x131df3={},_0x249108={},_0xee099d={'count':0x0,'rows':[]};var _0x10b580=_[_0x496f('0x2c')](db[_0x496f('0x2d')]['rawAttributes'],function(_0x5eb104){return{'name':_0x5eb104['fieldName'],'type':_0x5eb104['type'][_0x496f('0x2e')]};});_0x249108[_0x496f('0x2f')]=_[_0x496f('0x2c')](_0x10b580,_0x496f('0x30'));_0x249108[_0x496f('0x31')]=_[_0x496f('0x32')](_0x9b3e04[_0x496f('0x31')]);_0x249108[_0x496f('0x33')]=_[_0x496f('0x34')](_0x249108[_0x496f('0x2f')],_0x249108[_0x496f('0x31')]);_0x131df3[_0x496f('0x35')]=_['intersection'](_0x249108[_0x496f('0x2f')],qs['fields'](_0x9b3e04[_0x496f('0x31')][_0x496f('0x36')]));_0x131df3['attributes']=_0x131df3['attributes'][_0x496f('0x37')]?_0x131df3[_0x496f('0x35')]:_0x249108['model'];if(!_0x9b3e04[_0x496f('0x31')][_0x496f('0x38')](_0x496f('0x39'))){_0x131df3['limit']=qs[_0x496f('0x1c')](_0x9b3e04[_0x496f('0x31')][_0x496f('0x1c')]);_0x131df3[_0x496f('0x1f')]=qs['offset'](_0x9b3e04[_0x496f('0x31')][_0x496f('0x1f')]);}_0x131df3[_0x496f('0x3a')]=qs[_0x496f('0x3b')](_0x9b3e04[_0x496f('0x31')][_0x496f('0x3b')]);_0x131df3[_0x496f('0x3c')]=qs[_0x496f('0x33')](_[_0x496f('0x3d')](_0x9b3e04[_0x496f('0x31')],_0x249108[_0x496f('0x33')]),_0x10b580);if(_0x9b3e04[_0x496f('0x31')][_0x496f('0x3e')]){_0x131df3[_0x496f('0x3c')]=_[_0x496f('0x3f')](_0x131df3[_0x496f('0x3c')],{'$or':_[_0x496f('0x2c')](_0x10b580,function(_0x23b632){if(_0x23b632[_0x496f('0x40')]!==_0x496f('0x41')){var _0x38e0a1={};_0x38e0a1[_0x23b632['name']]={'$like':'%'+_0x9b3e04['query'][_0x496f('0x3e')]+'%'};return _0x38e0a1;}})});}_0x131df3=_['merge']({},_0x131df3,_0x9b3e04[_0x496f('0x42')]);var _0x366e6a={'where':_0x131df3[_0x496f('0x3c')]};return db[_0x496f('0x2d')][_0x496f('0x1e')](_0x366e6a)['then'](function(_0x1823e6){_0xee099d[_0x496f('0x1e')]=_0x1823e6;if(_0x9b3e04[_0x496f('0x31')]['includeAll']){_0x131df3['include']=[{'all':!![]}];}return db[_0x496f('0x2d')][_0x496f('0x43')](_0x131df3);})[_0x496f('0x25')](function(_0x1d00bd){_0xee099d['rows']=_0x1d00bd;return _0xee099d;})['then'](respondWithFilteredResult(_0x16b802,_0x131df3))[_0x496f('0x44')](handleError(_0x16b802,null));};exports[_0x496f('0x45')]=function(_0x147092,_0x5b603c){var _0x24932c={'raw':!![],'where':{'id':_0x147092[_0x496f('0x46')]['id']}},_0x2de7f6={};_0x2de7f6[_0x496f('0x2f')]=_[_0x496f('0x32')](db[_0x496f('0x2d')][_0x496f('0x47')]);_0x2de7f6[_0x496f('0x31')]=_['keys'](_0x147092['query']);_0x2de7f6[_0x496f('0x33')]=_[_0x496f('0x34')](_0x2de7f6['model'],_0x2de7f6[_0x496f('0x31')]);_0x24932c['attributes']=_[_0x496f('0x34')](_0x2de7f6[_0x496f('0x2f')],qs[_0x496f('0x36')](_0x147092[_0x496f('0x31')]['fields']));_0x24932c[_0x496f('0x35')]=_0x24932c[_0x496f('0x35')][_0x496f('0x37')]?_0x24932c[_0x496f('0x35')]:_0x2de7f6[_0x496f('0x2f')];if(_0x147092[_0x496f('0x31')][_0x496f('0x48')]){_0x24932c[_0x496f('0x49')]=[{'all':!![]}];}_0x24932c=_['merge']({},_0x24932c,_0x147092[_0x496f('0x42')]);return db[_0x496f('0x2d')][_0x496f('0x4a')](_0x24932c)[_0x496f('0x25')](handleEntityNotFound(_0x5b603c,null))['then'](respondWithResult(_0x5b603c,null))['catch'](handleError(_0x5b603c,null));};exports[_0x496f('0x4b')]=function(_0x2b3ec4,_0x3520d6){return db['JscriptySessionReport']['create'](_0x2b3ec4['body'],{})[_0x496f('0x25')](respondWithResult(_0x3520d6,0xc9))[_0x496f('0x44')](handleError(_0x3520d6,null));};exports[_0x496f('0x24')]=function(_0x255bc0,_0x1c93a0){if(_0x255bc0[_0x496f('0x4c')]['id']){delete _0x255bc0['body']['id'];}return db['JscriptySessionReport'][_0x496f('0x4a')]({'where':{'id':_0x255bc0[_0x496f('0x46')]['id']}})[_0x496f('0x25')](handleEntityNotFound(_0x1c93a0,null))[_0x496f('0x25')](saveUpdates(_0x255bc0[_0x496f('0x4c')],null))[_0x496f('0x25')](respondWithResult(_0x1c93a0,null))[_0x496f('0x44')](handleError(_0x1c93a0,null));};exports['destroy']=function(_0x32eb63,_0x50937c){return db[_0x496f('0x2d')][_0x496f('0x4a')]({'where':{'id':_0x32eb63[_0x496f('0x46')]['id']}})['then'](handleEntityNotFound(_0x50937c,null))['then'](removeEntity(_0x50937c,null))['catch'](handleError(_0x50937c,null));};exports['describe']=function(_0x4e9057,_0x466609){return db['JscriptySessionReport'][_0x496f('0x4d')]()[_0x496f('0x25')](respondWithResult(_0x466609,null))[_0x496f('0x44')](handleError(_0x466609,null));};exports[_0x496f('0x4e')]=function(_0x47d3fd,_0x2f8500,_0x33e1a4){var _0x304a23={'raw':!![],'where':{}};var _0x1a139d={};var _0xcb3d31={'count':0x0,'rows':[]};return db[_0x496f('0x2d')][_0x496f('0x4f')]({'where':{'id':_0x47d3fd[_0x496f('0x46')]['id']}})['then'](handleEntityNotFound(_0x2f8500,null))['then'](function(_0x40ab46){if(_0x40ab46){_0x1a139d[_0x496f('0x2f')]=_['keys'](db[_0x496f('0x50')]['rawAttributes']);_0x1a139d['query']=_['keys'](_0x47d3fd[_0x496f('0x31')]);_0x1a139d[_0x496f('0x33')]=_[_0x496f('0x34')](_0x1a139d[_0x496f('0x2f')],_0x1a139d[_0x496f('0x31')]);_0x304a23[_0x496f('0x35')]=_[_0x496f('0x34')](_0x1a139d[_0x496f('0x2f')],qs[_0x496f('0x36')](_0x47d3fd['query'][_0x496f('0x36')]));_0x304a23['attributes']=_0x304a23[_0x496f('0x35')][_0x496f('0x37')]?_0x304a23[_0x496f('0x35')]:_0x1a139d[_0x496f('0x2f')];if(!_0x47d3fd[_0x496f('0x31')]['hasOwnProperty']('nolimit')){_0x304a23['limit']=qs[_0x496f('0x1c')](_0x47d3fd[_0x496f('0x31')]['limit']);_0x304a23[_0x496f('0x1f')]=qs[_0x496f('0x1f')](_0x47d3fd[_0x496f('0x31')][_0x496f('0x1f')]);}_0x304a23[_0x496f('0x3a')]=qs[_0x496f('0x3b')](_0x47d3fd['query'][_0x496f('0x3b')]);_0x304a23[_0x496f('0x3c')]=qs[_0x496f('0x33')](_[_0x496f('0x3d')](_0x47d3fd['query'],_0x1a139d[_0x496f('0x33')]));_0x304a23['where'][_0x496f('0x51')]=_0x40ab46['id'];if(_0x47d3fd[_0x496f('0x31')][_0x496f('0x3e')]){_0x304a23[_0x496f('0x3c')]=_[_0x496f('0x3f')](_0x304a23[_0x496f('0x3c')],{'$or':_['map'](_0x304a23[_0x496f('0x35')],function(_0x8dbd87){var _0x44ccd7={};_0x44ccd7[_0x8dbd87]={'$like':'%'+_0x47d3fd[_0x496f('0x31')][_0x496f('0x3e')]+'%'};return _0x44ccd7;})});}_0x304a23=_[_0x496f('0x3f')]({},_0x304a23,_0x47d3fd[_0x496f('0x42')]);return db[_0x496f('0x50')][_0x496f('0x1e')]({'where':_0x304a23[_0x496f('0x3c')]})['then'](function(_0x574e2e){_0xcb3d31['count']=_0x574e2e;if(_0x47d3fd['query'][_0x496f('0x48')]){_0x304a23[_0x496f('0x49')]=[{'all':!![]}];}return db[_0x496f('0x50')][_0x496f('0x43')](_0x304a23);})['then'](function(_0xf7e6c8){_0xcb3d31[_0x496f('0x52')]=_0xf7e6c8;return _0xcb3d31;});}})[_0x496f('0x25')](respondWithFilteredResult(_0x2f8500,_0x304a23))['catch'](handleError(_0x2f8500,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7fbe=['../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./jscriptySessionReport.attributes','exports','define','JscriptySessionReport'];(function(_0x40a045,_0x516f0e){var _0x1a687c=function(_0x48c9fe){while(--_0x48c9fe){_0x40a045['push'](_0x40a045['shift']());}};_0x1a687c(++_0x516f0e);}(_0x7fbe,0x1ec));var _0xe7fb=function(_0x34ecbf,_0x210898){_0x34ecbf=_0x34ecbf-0x0;var _0x115f8a=_0x7fbe[_0x34ecbf];return _0x115f8a;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0xe7fb('0x0'))(_0xe7fb('0x1'));var moment=require(_0xe7fb('0x2'));var BPromise=require(_0xe7fb('0x3'));var rp=require(_0xe7fb('0x4'));var fs=require('fs');var path=require(_0xe7fb('0x5'));var rimraf=require(_0xe7fb('0x6'));var config=require(_0xe7fb('0x7'));var attributes=require(_0xe7fb('0x8'));module[_0xe7fb('0x9')]=function(_0x290172,_0x12d1b0){return _0x290172[_0xe7fb('0xa')](_0xe7fb('0xb'),attributes,{'tableName':'report_jscripty_sessions','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xd046=['rimraf','./jscriptySessionReport.attributes','define','util','../../config/logger','api','bluebird'];(function(_0x1642ef,_0x48dcef){var _0x375979=function(_0x1940f0){while(--_0x1940f0){_0x1642ef['push'](_0x1642ef['shift']());}};_0x375979(++_0x48dcef);}(_0xd046,0x129));var _0x6d04=function(_0x4502c0,_0x5d644f){_0x4502c0=_0x4502c0-0x0;var _0x13987c=_0xd046[_0x4502c0];return _0x13987c;};'use strict';var _=require('lodash');var util=require(_0x6d04('0x0'));var logger=require(_0x6d04('0x1'))(_0x6d04('0x2'));var moment=require('moment');var BPromise=require(_0x6d04('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0x6d04('0x4'));var config=require('../../config/environment');var attributes=require(_0x6d04('0x5'));module['exports']=function(_0x4bacb1,_0xf3b4e7){return _0x4bacb1[_0x6d04('0x6')]('JscriptySessionReport',attributes,{'tableName':'report_jscripty_sessions','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd943=['info','request\x20sent','JscriptySessionReport,\x20%s,\x20%s,\x20%s','error','code','JscriptySessionReport,\x20%s,\x20%s','message','result','catch','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','client','then'];(function(_0xbcb4bf,_0x5296ed){var _0x3932b3=function(_0x3df0f2){while(--_0x3df0f2){_0xbcb4bf['push'](_0xbcb4bf['shift']());}};_0x3932b3(++_0x5296ed);}(_0xd943,0x15d));var _0x3d94=function(_0x2333b8,_0x27338f){_0x2333b8=_0x2333b8-0x0;var _0x236503=_0xd943[_0x2333b8];return _0x236503;};'use strict';var _=require(_0x3d94('0x0'));var util=require(_0x3d94('0x1'));var moment=require(_0x3d94('0x2'));var BPromise=require(_0x3d94('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x3d94('0x4'));var db=require(_0x3d94('0x5'))['db'];var utils=require(_0x3d94('0x6'));var logger=require(_0x3d94('0x7'))(_0x3d94('0x8'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0x3d94('0x9')]['http']({'port':0x232a});function respondWithRpcPromise(_0x54e81f,_0x4d29e7,_0x20f4d1){return new BPromise(function(_0x35d36a,_0x5244c3){return client['request'](_0x54e81f,_0x20f4d1)[_0x3d94('0xa')](function(_0x27e381){logger[_0x3d94('0xb')]('JscriptySessionReport,\x20%s,\x20%s',_0x4d29e7,_0x3d94('0xc'));logger['debug'](_0x3d94('0xd'),_0x4d29e7,_0x3d94('0xc'),JSON['stringify'](_0x27e381));if(_0x27e381[_0x3d94('0xe')]){if(_0x27e381[_0x3d94('0xe')][_0x3d94('0xf')]===0x1f4){logger[_0x3d94('0xe')](_0x3d94('0x10'),_0x4d29e7,_0x27e381['error'][_0x3d94('0x11')]);return _0x5244c3(_0x27e381[_0x3d94('0xe')][_0x3d94('0x11')]);}logger['error'](_0x3d94('0x10'),_0x4d29e7,_0x27e381[_0x3d94('0xe')][_0x3d94('0x11')]);return _0x35d36a(_0x27e381['error'][_0x3d94('0x11')]);}else{logger[_0x3d94('0xb')](_0x3d94('0x10'),_0x4d29e7,_0x3d94('0xc'));_0x35d36a(_0x27e381[_0x3d94('0x12')][_0x3d94('0x11')]);}})[_0x3d94('0x13')](function(_0x9893cb){logger['error'](_0x3d94('0x10'),_0x4d29e7,_0x9893cb);_0x5244c3(_0x9893cb);});});}
\ No newline at end of file
+var _0xc2c7=['../../config/logger','jayson/promise','client','http','request','then','JscriptySessionReport,\x20%s,\x20%s','request\x20sent','debug','JscriptySessionReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils'];(function(_0x4565bf,_0x5ad9d6){var _0x5610ba=function(_0x170988){while(--_0x170988){_0x4565bf['push'](_0x4565bf['shift']());}};_0x5610ba(++_0x5ad9d6);}(_0xc2c7,0x134));var _0x7c2c=function(_0x197a5e,_0x26d44b){_0x197a5e=_0x197a5e-0x0;var _0x1f0fe3=_0xc2c7[_0x197a5e];return _0x1f0fe3;};'use strict';var _=require('lodash');var util=require(_0x7c2c('0x0'));var moment=require(_0x7c2c('0x1'));var BPromise=require(_0x7c2c('0x2'));var rs=require(_0x7c2c('0x3'));var fs=require('fs');var Redis=require(_0x7c2c('0x4'));var db=require(_0x7c2c('0x5'))['db'];var utils=require(_0x7c2c('0x6'));var logger=require(_0x7c2c('0x7'))('rpc');var config=require('../../config/environment');var jayson=require(_0x7c2c('0x8'));var client=jayson[_0x7c2c('0x9')][_0x7c2c('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x54f027,_0x4abe93,_0x5a1027){return new BPromise(function(_0x2274cd,_0x29638d){return client[_0x7c2c('0xb')](_0x54f027,_0x5a1027)[_0x7c2c('0xc')](function(_0x279cff){logger['info'](_0x7c2c('0xd'),_0x4abe93,_0x7c2c('0xe'));logger[_0x7c2c('0xf')](_0x7c2c('0x10'),_0x4abe93,_0x7c2c('0xe'),JSON[_0x7c2c('0x11')](_0x279cff));if(_0x279cff[_0x7c2c('0x12')]){if(_0x279cff[_0x7c2c('0x12')][_0x7c2c('0x13')]===0x1f4){logger[_0x7c2c('0x12')](_0x7c2c('0xd'),_0x4abe93,_0x279cff[_0x7c2c('0x12')][_0x7c2c('0x14')]);return _0x29638d(_0x279cff[_0x7c2c('0x12')][_0x7c2c('0x14')]);}logger[_0x7c2c('0x12')]('JscriptySessionReport,\x20%s,\x20%s',_0x4abe93,_0x279cff['error'][_0x7c2c('0x14')]);return _0x2274cd(_0x279cff[_0x7c2c('0x12')][_0x7c2c('0x14')]);}else{logger['info'](_0x7c2c('0xd'),_0x4abe93,_0x7c2c('0xe'));_0x2274cd(_0x279cff['result'][_0x7c2c('0x14')]);}})['catch'](function(_0x1aa355){logger['error'](_0x7c2c('0xd'),_0x4abe93,_0x1aa355);_0x29638d(_0x1aa355);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xaeab=['../../components/auth/service','../../components/interaction/service','../../config/environment','./license.controller','get','index','put','isAuthenticated','update','exports','multer','path','express','Router','fs-extra'];(function(_0x5580e4,_0x378e42){var _0x570092=function(_0x3b7204){while(--_0x3b7204){_0x5580e4['push'](_0x5580e4['shift']());}};_0x570092(++_0x378e42);}(_0xaeab,0x91));var _0xbaea=function(_0x1d3041,_0x5ecc55){_0x1d3041=_0x1d3041-0x0;var _0x560b1a=_0xaeab[_0x1d3041];return _0x560b1a;};'use strict';var multer=require(_0xbaea('0x0'));var util=require('util');var path=require(_0xbaea('0x1'));var timeout=require('connect-timeout');var express=require(_0xbaea('0x2'));var router=express[_0xbaea('0x3')]();var fs_extra=require(_0xbaea('0x4'));var auth=require(_0xbaea('0x5'));var interaction=require(_0xbaea('0x6'));var config=require(_0xbaea('0x7'));var controller=require(_0xbaea('0x8'));router[_0xbaea('0x9')]('/',controller[_0xbaea('0xa')]);router[_0xbaea('0xb')]('/:id',auth[_0xbaea('0xc')](),controller[_0xbaea('0xd')]);module[_0xbaea('0xe')]=router;
\ No newline at end of file
+var _0xc627=['util','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./license.controller','get','index','put','/:id','isAuthenticated','update'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0xc627,0x14a));var _0x7c62=function(_0x44813f,_0x1d689b){_0x44813f=_0x44813f-0x0;var _0x47eed4=_0xc627[_0x44813f];return _0x47eed4;};'use strict';var multer=require('multer');var util=require(_0x7c62('0x0'));var path=require(_0x7c62('0x1'));var timeout=require(_0x7c62('0x2'));var express=require('express');var router=express[_0x7c62('0x3')]();var fs_extra=require(_0x7c62('0x4'));var auth=require(_0x7c62('0x5'));var interaction=require(_0x7c62('0x6'));var config=require(_0x7c62('0x7'));var controller=require(_0x7c62('0x8'));router[_0x7c62('0x9')]('/',controller[_0x7c62('0xa')]);router[_0x7c62('0xb')](_0x7c62('0xc'),auth[_0x7c62('0xd')](),controller[_0x7c62('0xe')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdaec=['INTEGER','exports','STRING'];(function(_0xb725be,_0x45bd01){var _0x2f2424=function(_0x2566ca){while(--_0x2566ca){_0xb725be['push'](_0xb725be['shift']());}};_0x2f2424(++_0x45bd01);}(_0xdaec,0x130));var _0xcdae=function(_0x2f2007,_0x2cb278){_0x2f2007=_0x2f2007-0x0;var _0xab1349=_0xdaec[_0x2f2007];return _0xab1349;};'use strict';var Sequelize=require('sequelize');module[_0xcdae('0x0')]={'license':{'type':Sequelize['TEXT']},'data1':{'type':Sequelize[_0xcdae('0x1')]},'data2':{'type':Sequelize['STRING']},'chatLicenseExceeded':{'type':Sequelize[_0xcdae('0x2')],'defaultValue':0x0}};
\ No newline at end of file
+var _0x1e2d=['STRING','sequelize','exports'];(function(_0x2aea9e,_0x1f587f){var _0x430b92=function(_0x416c37){while(--_0x416c37){_0x2aea9e['push'](_0x2aea9e['shift']());}};_0x430b92(++_0x1f587f);}(_0x1e2d,0xe8));var _0xd1e2=function(_0x38805d,_0x214109){_0x38805d=_0x38805d-0x0;var _0x1e52b9=_0x1e2d[_0x38805d];return _0x1e52b9;};'use strict';var Sequelize=require(_0xd1e2('0x0'));module[_0xd1e2('0x1')]={'license':{'type':Sequelize['TEXT']},'data1':{'type':Sequelize[_0xd1e2('0x2')]},'data2':{'type':Sequelize[_0xd1e2('0x2')]},'chatLicenseExceeded':{'type':Sequelize['INTEGER'],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-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(_0x166742,_0x55520c){var _0xb7814a=function(_0x18feaf){while(--_0x18feaf){_0x166742['push'](_0x166742['shift']());}};_0xb7814a(++_0x55520c);}(_0x326f,0xd1));var _0xf326=function(_0x273b13,_0x5298a8){_0x273b13=_0x273b13-0x0;var _0x48546f=_0x326f[_0x273b13];return _0x48546f;};'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
+var _0xf494=['fields','length','merge','options','getLicense','body','License','find','params','get','key','demo','catch','eml-format','rimraf','zip-dir','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','../../config/license/hardware','../../config/logger','../../config/utils','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','apply','save','update','then','error','stack','name','../../config/license/util','index','model','rawAttributes','query','keys','filters','intersection','attributes'];(function(_0x47a7d0,_0x4e182d){var _0xb9bd08=function(_0x588ee2){while(--_0x588ee2){_0x47a7d0['push'](_0x47a7d0['shift']());}};_0xb9bd08(++_0x4e182d);}(_0xf494,0x1c6));var _0x4f49=function(_0x4373ba,_0x220218){_0x4373ba=_0x4373ba-0x0;var _0x4bdecc=_0xf494[_0x4373ba];return _0x4bdecc;};'use strict';var emlformat=require(_0x4f49('0x0'));var rimraf=require(_0x4f49('0x1'));var zipdir=require(_0x4f49('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x4f49('0x3'));var moment=require(_0x4f49('0x4'));var BPromise=require(_0x4f49('0x5'));var Mustache=require(_0x4f49('0x6'));var util=require(_0x4f49('0x7'));var path=require(_0x4f49('0x8'));var sox=require(_0x4f49('0x9'));var csv=require(_0x4f49('0xa'));var ejs=require(_0x4f49('0xb'));var fs=require('fs');var fs_extra=require(_0x4f49('0xc'));var _=require(_0x4f49('0xd'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x4f49('0xe'));var deskjs=require(_0x4f49('0xf'));var toCsv=require(_0x4f49('0xa'));var querystring=require(_0x4f49('0x10'));var Papa=require(_0x4f49('0x11'));var Redis=require(_0x4f49('0x12'));var authService=require(_0x4f49('0x13'));var qs=require(_0x4f49('0x14'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x4f49('0x15'));var logger=require(_0x4f49('0x16'))('api');var utils=require(_0x4f49('0x17'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x4f49('0x18'))['db'];function respondWithStatusCode(_0x12527d,_0x4bf89f){_0x4bf89f=_0x4bf89f||0xcc;return function(_0x1e1c37){if(_0x1e1c37){return _0x12527d[_0x4f49('0x19')](_0x4bf89f);}return _0x12527d[_0x4f49('0x1a')](_0x4bf89f)[_0x4f49('0x1b')]();};}function respondWithResult(_0x1a0f1e,_0x2f0131){_0x2f0131=_0x2f0131||0xc8;return function(_0xfdb477){if(_0xfdb477){return _0x1a0f1e['status'](_0x2f0131)[_0x4f49('0x1c')](_0xfdb477);}};}function respondWithFilteredResult(_0x1f2d0d,_0x415e83){return function(_0x5878f4){if(_0x5878f4){var _0x5bdfaf=typeof _0x415e83[_0x4f49('0x1d')]===_0x4f49('0x1e')&&typeof _0x415e83[_0x4f49('0x1f')]==='undefined';var _0x1dccfd=_0x5878f4[_0x4f49('0x20')];var _0x4e85df=_0x5bdfaf?0x0:_0x415e83['offset'];var _0x5bb23b=_0x5bdfaf?_0x5878f4['count']:_0x415e83['offset']+_0x415e83[_0x4f49('0x1f')];var _0x1834f4;if(_0x5bb23b>=_0x1dccfd){_0x5bb23b=_0x1dccfd;_0x1834f4=0xc8;}else{_0x1834f4=0xce;}_0x1f2d0d[_0x4f49('0x1a')](_0x1834f4);return _0x1f2d0d[_0x4f49('0x21')]('Content-Range',_0x4e85df+'-'+_0x5bb23b+'/'+_0x1dccfd)[_0x4f49('0x1c')](_0x5878f4);}return null;};}function patchUpdates(_0x2aed27){return function(_0x197a49){try{jsonpatch[_0x4f49('0x22')](_0x197a49,_0x2aed27,!![]);}catch(_0xea82f8){return BPromise['reject'](_0xea82f8);}return _0x197a49[_0x4f49('0x23')]();};}function saveUpdates(_0x357446,_0x3ae590){return function(_0x53b57d){if(_0x53b57d){return _0x53b57d[_0x4f49('0x24')](_0x357446)[_0x4f49('0x25')](function(_0x32ca7b){return _0x32ca7b;});}return null;};}function removeEntity(_0x43c458,_0x9d30aa){return function(_0x36187b){if(_0x36187b){return _0x36187b['destroy']()['then'](function(){_0x43c458[_0x4f49('0x1a')](0xcc)[_0x4f49('0x1b')]();});}};}function handleEntityNotFound(_0x4fedbb,_0x408552){return function(_0x2c1519){if(!_0x2c1519){_0x4fedbb[_0x4f49('0x19')](0x194);}return _0x2c1519;};}function handleError(_0x525950,_0xc54070){_0xc54070=_0xc54070||0x1f4;return function(_0x2eed1c){logger[_0x4f49('0x26')](_0x2eed1c[_0x4f49('0x27')]);if(_0x2eed1c[_0x4f49('0x28')]){delete _0x2eed1c[_0x4f49('0x28')];}_0x525950['status'](_0xc54070)['send'](_0x2eed1c);};}var utilLicense=require(_0x4f49('0x29'));exports[_0x4f49('0x2a')]=function(_0x605c91,_0x560050){var _0x3cbfbd={'raw':!![],'where':{'id':0x1}},_0x206203={};_0x206203[_0x4f49('0x2b')]=_['keys'](db['License'][_0x4f49('0x2c')]);_0x206203[_0x4f49('0x2d')]=_[_0x4f49('0x2e')](_0x605c91['query']);_0x206203[_0x4f49('0x2f')]=_[_0x4f49('0x30')](_0x206203[_0x4f49('0x2b')],_0x206203[_0x4f49('0x2d')]);_0x3cbfbd[_0x4f49('0x31')]=_[_0x4f49('0x30')](_0x206203[_0x4f49('0x2b')],qs[_0x4f49('0x32')](_0x605c91[_0x4f49('0x2d')][_0x4f49('0x32')]));_0x3cbfbd[_0x4f49('0x31')]=_0x3cbfbd[_0x4f49('0x31')][_0x4f49('0x33')]?_0x3cbfbd[_0x4f49('0x31')]:_0x206203[_0x4f49('0x2b')];_0x3cbfbd=_[_0x4f49('0x34')]({},_0x3cbfbd,_0x605c91[_0x4f49('0x35')]);return utilLicense[_0x4f49('0x36')](_0x3cbfbd)[_0x4f49('0x25')](respondWithResult(_0x560050,null))['catch'](handleError(_0x560050,null));};exports[_0x4f49('0x24')]=function(_0x46b7ba,_0x24f568){if(_0x46b7ba[_0x4f49('0x37')]['id']){delete _0x46b7ba[_0x4f49('0x37')]['id'];}return db[_0x4f49('0x38')][_0x4f49('0x39')]({'where':{'id':_0x46b7ba[_0x4f49('0x3a')]['id']}})[_0x4f49('0x25')](handleEntityNotFound(_0x24f568,null))[_0x4f49('0x25')](function(_0x44e6a0){var _0x343365=_0x44e6a0[_0x4f49('0x3b')]({'plain':!![]});return utilLicense['checkLicense'](_0x343365,_0x46b7ba[_0x4f49('0x37')][_0x4f49('0x3c')]);})[_0x4f49('0x25')](function(_0x26014f){if(!_0x26014f[_0x4f49('0x3d')]){return saveUpdates(_0x46b7ba[_0x4f49('0x37')],null);}return _0x26014f;})[_0x4f49('0x25')](respondWithResult(_0x24f568,null))[_0x4f49('0x3e')](handleError(_0x24f568,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xafdd=['bluebird','request-promise','path','rimraf','exports','define','license','lodash','util','api','moment'];(function(_0x41f33c,_0xdba0f5){var _0x3e8ee3=function(_0x249b09){while(--_0x249b09){_0x41f33c['push'](_0x41f33c['shift']());}};_0x3e8ee3(++_0xdba0f5);}(_0xafdd,0x1a9));var _0xdafd=function(_0x18678c,_0x392038){_0x18678c=_0x18678c-0x0;var _0xcf5072=_0xafdd[_0x18678c];return _0xcf5072;};'use strict';var _=require(_0xdafd('0x0'));var util=require(_0xdafd('0x1'));var logger=require('../../config/logger')(_0xdafd('0x2'));var moment=require(_0xdafd('0x3'));var BPromise=require(_0xdafd('0x4'));var rp=require(_0xdafd('0x5'));var fs=require('fs');var path=require(_0xdafd('0x6'));var rimraf=require(_0xdafd('0x7'));var config=require('../../config/environment');var attributes=require('./license.attributes');module[_0xdafd('0x8')]=function(_0xf5fe6b,_0x4bd037){return _0xf5fe6b[_0xdafd('0x9')]('License',attributes,{'tableName':_0xdafd('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xb7d8=['request-promise','path','rimraf','./license.attributes','define','License','license','util','../../config/logger','api'];(function(_0x25d386,_0x108d0d){var _0x857f4a=function(_0x3eb98d){while(--_0x3eb98d){_0x25d386['push'](_0x25d386['shift']());}};_0x857f4a(++_0x108d0d);}(_0xb7d8,0x197));var _0x8b7d=function(_0x4fede7,_0x3e8e9a){_0x4fede7=_0x4fede7-0x0;var _0x2e8224=_0xb7d8[_0x4fede7];return _0x2e8224;};'use strict';var _=require('lodash');var util=require(_0x8b7d('0x0'));var logger=require(_0x8b7d('0x1'))(_0x8b7d('0x2'));var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0x8b7d('0x3'));var fs=require('fs');var path=require(_0x8b7d('0x4'));var rimraf=require(_0x8b7d('0x5'));var config=require('../../config/environment');var attributes=require(_0x8b7d('0x6'));module['exports']=function(_0x1577d4,_0x5d33c8){return _0x1577d4[_0x8b7d('0x7')](_0x8b7d('0x8'),attributes,{'tableName':_0x8b7d('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2f98=['debug','License,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','then','License,\x20%s,\x20%s','request\x20sent'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0x2f98,0xf9));var _0x82f9=function(_0x3ec428,_0x26f7ff){_0x3ec428=_0x3ec428-0x0;var _0x2d093d=_0x2f98[_0x3ec428];return _0x2d093d;};'use strict';var _=require(_0x82f9('0x0'));var util=require(_0x82f9('0x1'));var moment=require(_0x82f9('0x2'));var BPromise=require(_0x82f9('0x3'));var rs=require(_0x82f9('0x4'));var fs=require('fs');var Redis=require(_0x82f9('0x5'));var db=require(_0x82f9('0x6'))['db'];var utils=require('../../config/utils');var logger=require(_0x82f9('0x7'))(_0x82f9('0x8'));var config=require(_0x82f9('0x9'));var jayson=require(_0x82f9('0xa'));var client=jayson[_0x82f9('0xb')]['http']({'port':0x232a});function respondWithRpcPromise(_0x502380,_0x355de9,_0x499bda){return new BPromise(function(_0x1a2649,_0x3a397c){return client['request'](_0x502380,_0x499bda)[_0x82f9('0xc')](function(_0x351c63){logger['info'](_0x82f9('0xd'),_0x355de9,_0x82f9('0xe'));logger[_0x82f9('0xf')](_0x82f9('0x10'),_0x355de9,_0x82f9('0xe'),JSON[_0x82f9('0x11')](_0x351c63));if(_0x351c63[_0x82f9('0x12')]){if(_0x351c63[_0x82f9('0x12')][_0x82f9('0x13')]===0x1f4){logger[_0x82f9('0x12')](_0x82f9('0xd'),_0x355de9,_0x351c63['error'][_0x82f9('0x14')]);return _0x3a397c(_0x351c63[_0x82f9('0x12')][_0x82f9('0x14')]);}logger[_0x82f9('0x12')](_0x82f9('0xd'),_0x355de9,_0x351c63[_0x82f9('0x12')]['message']);return _0x1a2649(_0x351c63['error'][_0x82f9('0x14')]);}else{logger[_0x82f9('0x15')]('License,\x20%s,\x20%s',_0x355de9,'request\x20sent');_0x1a2649(_0x351c63[_0x82f9('0x16')]['message']);}})[_0x82f9('0x17')](function(_0x3a57c8){logger[_0x82f9('0x12')](_0x82f9('0xd'),_0x355de9,_0x3a57c8);_0x3a397c(_0x3a57c8);});});}
\ No newline at end of file
+var _0x10a9=['ioredis','../../mysqldb','../../config/utils','../../config/environment','jayson/promise','client','http','request','then','info','License,\x20%s,\x20%s','request\x20sent','debug','License,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','lodash','bluebird','randomstring'];(function(_0x19d0b6,_0x85209a){var _0x16060b=function(_0x33d5d3){while(--_0x33d5d3){_0x19d0b6['push'](_0x19d0b6['shift']());}};_0x16060b(++_0x85209a);}(_0x10a9,0x189));var _0x910a=function(_0x501510,_0x61caa9){_0x501510=_0x501510-0x0;var _0x1e6ee5=_0x10a9[_0x501510];return _0x1e6ee5;};'use strict';var _=require(_0x910a('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0x910a('0x1'));var rs=require(_0x910a('0x2'));var fs=require('fs');var Redis=require(_0x910a('0x3'));var db=require(_0x910a('0x4'))['db'];var utils=require(_0x910a('0x5'));var logger=require('../../config/logger')('rpc');var config=require(_0x910a('0x6'));var jayson=require(_0x910a('0x7'));var client=jayson[_0x910a('0x8')][_0x910a('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x3173dc,_0x2b4bfa,_0x4a104f){return new BPromise(function(_0x1721ee,_0x95418f){return client[_0x910a('0xa')](_0x3173dc,_0x4a104f)[_0x910a('0xb')](function(_0x1b6ee8){logger[_0x910a('0xc')](_0x910a('0xd'),_0x2b4bfa,_0x910a('0xe'));logger[_0x910a('0xf')](_0x910a('0x10'),_0x2b4bfa,'request\x20sent',JSON[_0x910a('0x11')](_0x1b6ee8));if(_0x1b6ee8[_0x910a('0x12')]){if(_0x1b6ee8[_0x910a('0x12')][_0x910a('0x13')]===0x1f4){logger[_0x910a('0x12')]('License,\x20%s,\x20%s',_0x2b4bfa,_0x1b6ee8[_0x910a('0x12')][_0x910a('0x14')]);return _0x95418f(_0x1b6ee8[_0x910a('0x12')][_0x910a('0x14')]);}logger[_0x910a('0x12')](_0x910a('0xd'),_0x2b4bfa,_0x1b6ee8[_0x910a('0x12')][_0x910a('0x14')]);return _0x1721ee(_0x1b6ee8[_0x910a('0x12')][_0x910a('0x14')]);}else{logger[_0x910a('0xc')](_0x910a('0xd'),_0x2b4bfa,_0x910a('0xe'));_0x1721ee(_0x1b6ee8[_0x910a('0x15')][_0x910a('0x14')]);}})['catch'](function(_0x3eddc8){logger[_0x910a('0x12')](_0x910a('0xd'),_0x2b4bfa,_0x3eddc8);_0x95418f(_0x3eddc8);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x96ab=['fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./mailAccount.controller','get','isAuthenticated','index','describe','/:id','show','/:id/dispositions','getDispositions','getAnswers','/:id/in_servers','getImap','/:id/out_servers','getSmtp','/:id/interactions','getInteractions','/:id/applications','post','addDisposition','/:id/canned_answers','addAnswer','create','addImap','addSmtp','addApplications','/:id/send','send','/:id/users','addAgents','update','delete','removeDispositions','removeAnswers','removeImap','removeSmtp','removeAgents','exports','multer','path','connect-timeout','express'];(function(_0x178e48,_0x3c9509){var _0x440d7e=function(_0xc2f8a0){while(--_0xc2f8a0){_0x178e48['push'](_0x178e48['shift']());}};_0x440d7e(++_0x3c9509);}(_0x96ab,0xdd));var _0xb96a=function(_0x1bc2d8,_0x57bb5a){_0x1bc2d8=_0x1bc2d8-0x0;var _0x5700b0=_0x96ab[_0x1bc2d8];return _0x5700b0;};'use strict';var multer=require(_0xb96a('0x0'));var util=require('util');var path=require(_0xb96a('0x1'));var timeout=require(_0xb96a('0x2'));var express=require(_0xb96a('0x3'));var router=express['Router']();var fs_extra=require(_0xb96a('0x4'));var auth=require(_0xb96a('0x5'));var interaction=require(_0xb96a('0x6'));var config=require(_0xb96a('0x7'));var controller=require(_0xb96a('0x8'));router[_0xb96a('0x9')]('/',auth[_0xb96a('0xa')](),controller[_0xb96a('0xb')]);router['get']('/describe',auth['isAuthenticated'](),controller[_0xb96a('0xc')]);router[_0xb96a('0x9')](_0xb96a('0xd'),auth[_0xb96a('0xa')](),controller[_0xb96a('0xe')]);router[_0xb96a('0x9')](_0xb96a('0xf'),auth[_0xb96a('0xa')](),controller[_0xb96a('0x10')]);router[_0xb96a('0x9')]('/:id/canned_answers',auth[_0xb96a('0xa')](),controller[_0xb96a('0x11')]);router['get'](_0xb96a('0x12'),auth[_0xb96a('0xa')](),controller[_0xb96a('0x13')]);router[_0xb96a('0x9')](_0xb96a('0x14'),auth[_0xb96a('0xa')](),controller[_0xb96a('0x15')]);router['get'](_0xb96a('0x16'),auth[_0xb96a('0xa')](),controller[_0xb96a('0x17')]);router[_0xb96a('0x9')](_0xb96a('0x18'),auth['isAuthenticated'](),controller['getApplications']);router[_0xb96a('0x9')]('/:id/messages',auth[_0xb96a('0xa')](),controller['getMessages']);router[_0xb96a('0x9')]('/:id/verify',auth[_0xb96a('0xa')](),controller['verifySmtp']);router['get']('/:id/users',auth[_0xb96a('0xa')](),controller['getAgents']);router[_0xb96a('0x19')]('/:id/dispositions',auth[_0xb96a('0xa')](),controller[_0xb96a('0x1a')]);router[_0xb96a('0x19')](_0xb96a('0x1b'),auth['isAuthenticated'](),controller[_0xb96a('0x1c')]);router[_0xb96a('0x19')]('/',auth['isAuthenticated'](),controller[_0xb96a('0x1d')]);router[_0xb96a('0x19')](_0xb96a('0x12'),auth[_0xb96a('0xa')](),controller[_0xb96a('0x1e')]);router['post'](_0xb96a('0x14'),auth['isAuthenticated'](),controller[_0xb96a('0x1f')]);router[_0xb96a('0x19')](_0xb96a('0x16'),auth['isAuthenticated'](),controller['addInteraction']);router[_0xb96a('0x19')]('/:id/applications',auth[_0xb96a('0xa')](),controller[_0xb96a('0x20')]);router['post'](_0xb96a('0x21'),auth[_0xb96a('0xa')](),controller[_0xb96a('0x22')]);router['post'](_0xb96a('0x23'),auth['isAuthenticated'](),controller[_0xb96a('0x24')]);router['put'](_0xb96a('0xd'),auth[_0xb96a('0xa')](),controller[_0xb96a('0x25')]);router[_0xb96a('0x26')](_0xb96a('0xf'),auth['isAuthenticated'](),controller[_0xb96a('0x27')]);router[_0xb96a('0x26')]('/:id/canned_answers',auth[_0xb96a('0xa')](),controller[_0xb96a('0x28')]);router['delete'](_0xb96a('0x12'),auth[_0xb96a('0xa')](),controller[_0xb96a('0x29')]);router[_0xb96a('0x26')](_0xb96a('0x14'),auth[_0xb96a('0xa')](),controller[_0xb96a('0x2a')]);router[_0xb96a('0x26')](_0xb96a('0xd'),auth[_0xb96a('0xa')](),controller['destroy']);router[_0xb96a('0x26')](_0xb96a('0x23'),auth['isAuthenticated'](),controller[_0xb96a('0x2b')]);module[_0xb96a('0x2c')]=router;
\ No newline at end of file
+var _0xaceb=['index','get','/describe','/:id','show','/:id/dispositions','/:id/canned_answers','getAnswers','getImap','/:id/out_servers','getSmtp','/:id/interactions','getInteractions','/:id/applications','getApplications','getMessages','verifySmtp','getAgents','addDisposition','post','addAnswer','create','/:id/in_servers','addImap','addSmtp','addInteraction','addApplications','/:id/send','send','addAgents','put','delete','removeDispositions','removeAnswers','removeImap','destroy','/:id/users','removeAgents','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./mailAccount.controller','isAuthenticated'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0xaceb,0x153));var _0xbace=function(_0x3308d7,_0x33e854){_0x3308d7=_0x3308d7-0x0;var _0x3d365a=_0xaceb[_0x3308d7];return _0x3d365a;};'use strict';var multer=require(_0xbace('0x0'));var util=require(_0xbace('0x1'));var path=require(_0xbace('0x2'));var timeout=require(_0xbace('0x3'));var express=require(_0xbace('0x4'));var router=express[_0xbace('0x5')]();var fs_extra=require(_0xbace('0x6'));var auth=require(_0xbace('0x7'));var interaction=require(_0xbace('0x8'));var config=require('../../config/environment');var controller=require(_0xbace('0x9'));router['get']('/',auth[_0xbace('0xa')](),controller[_0xbace('0xb')]);router[_0xbace('0xc')](_0xbace('0xd'),auth['isAuthenticated'](),controller['describe']);router[_0xbace('0xc')](_0xbace('0xe'),auth[_0xbace('0xa')](),controller[_0xbace('0xf')]);router['get'](_0xbace('0x10'),auth[_0xbace('0xa')](),controller['getDispositions']);router[_0xbace('0xc')](_0xbace('0x11'),auth[_0xbace('0xa')](),controller[_0xbace('0x12')]);router[_0xbace('0xc')]('/:id/in_servers',auth[_0xbace('0xa')](),controller[_0xbace('0x13')]);router[_0xbace('0xc')](_0xbace('0x14'),auth[_0xbace('0xa')](),controller[_0xbace('0x15')]);router['get'](_0xbace('0x16'),auth[_0xbace('0xa')](),controller[_0xbace('0x17')]);router['get'](_0xbace('0x18'),auth[_0xbace('0xa')](),controller[_0xbace('0x19')]);router[_0xbace('0xc')]('/:id/messages',auth['isAuthenticated'](),controller[_0xbace('0x1a')]);router[_0xbace('0xc')]('/:id/verify',auth[_0xbace('0xa')](),controller[_0xbace('0x1b')]);router[_0xbace('0xc')]('/:id/users',auth[_0xbace('0xa')](),controller[_0xbace('0x1c')]);router['post']('/:id/dispositions',auth[_0xbace('0xa')](),controller[_0xbace('0x1d')]);router[_0xbace('0x1e')](_0xbace('0x11'),auth['isAuthenticated'](),controller[_0xbace('0x1f')]);router[_0xbace('0x1e')]('/',auth[_0xbace('0xa')](),controller[_0xbace('0x20')]);router['post'](_0xbace('0x21'),auth['isAuthenticated'](),controller[_0xbace('0x22')]);router['post']('/:id/out_servers',auth[_0xbace('0xa')](),controller[_0xbace('0x23')]);router[_0xbace('0x1e')]('/:id/interactions',auth[_0xbace('0xa')](),controller[_0xbace('0x24')]);router['post'](_0xbace('0x18'),auth[_0xbace('0xa')](),controller[_0xbace('0x25')]);router[_0xbace('0x1e')](_0xbace('0x26'),auth[_0xbace('0xa')](),controller[_0xbace('0x27')]);router[_0xbace('0x1e')]('/:id/users',auth[_0xbace('0xa')](),controller[_0xbace('0x28')]);router[_0xbace('0x29')](_0xbace('0xe'),auth['isAuthenticated'](),controller['update']);router[_0xbace('0x2a')](_0xbace('0x10'),auth[_0xbace('0xa')](),controller[_0xbace('0x2b')]);router[_0xbace('0x2a')]('/:id/canned_answers',auth[_0xbace('0xa')](),controller[_0xbace('0x2c')]);router[_0xbace('0x2a')](_0xbace('0x21'),auth[_0xbace('0xa')](),controller[_0xbace('0x2d')]);router['delete'](_0xbace('0x14'),auth['isAuthenticated'](),controller['removeSmtp']);router[_0xbace('0x2a')](_0xbace('0xe'),auth[_0xbace('0xa')](),controller[_0xbace('0x2e')]);router['delete'](_0xbace('0x2f'),auth['isAuthenticated'](),controller[_0xbace('0x30')]);module[_0xbace('0x31')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xde50=['Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}<br/>Subject\x20:\x20{{message.subject}}','INTEGER','Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','setDataValue','mandatoryDispositionPauseId','STRING','BOOLEAN','UNSIGNED','TEXT'];(function(_0x108ee7,_0x2120c0){var _0x554776=function(_0x3ce873){while(--_0x3ce873){_0x108ee7['push'](_0x108ee7['shift']());}};_0x554776(++_0x2120c0);}(_0xde50,0x140));var _0x0de5=function(_0x437ca1,_0x55e8ff){_0x437ca1=_0x437ca1-0x0;var _0x5f3307=_0xde50[_0x437ca1];return _0x5f3307;};'use strict';var Sequelize=require('sequelize');module['exports']={'description':{'type':Sequelize[_0x0de5('0x0')]},'name':{'type':Sequelize[_0x0de5('0x0')],'allowNull':![]},'service':{'type':Sequelize[_0x0de5('0x1')],'defaultValue':![]},'email':{'type':Sequelize[_0x0de5('0x0')],'validate':{'isEmail':!![]}},'active':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'key':{'type':Sequelize[_0x0de5('0x0')],'allowNull':![]},'template':{'type':Sequelize['TEXT']},'markAsUnread':{'type':Sequelize[_0x0de5('0x1')],'defaultValue':![]},'fontFamily':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':'Arial,Helvetica,sans-serif'},'fontSize':{'type':Sequelize['INTEGER'](0x2)[_0x0de5('0x2')],'defaultValue':0xd,'validate':{'min':0x8,'max':0x48}},'notificationTemplate':{'type':Sequelize[_0x0de5('0x3')],'defaultValue':function(){return _0x0de5('0x4');}},'notificationSound':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'notificationShake':{'type':Sequelize[_0x0de5('0x1')],'defaultValue':![]},'waitForTheAssignedAgent':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'queueTransfer':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize[_0x0de5('0x1')],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize[_0x0de5('0x5')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'mandatoryDispositionPauseId':{'type':Sequelize[_0x0de5('0x5')],'allowNull':!![],'defaultValue':null,'comment':'Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled'},'mandatoryDisposition':{'type':Sequelize[_0x0de5('0x1')],'defaultValue':![],'comment':_0x0de5('0x6'),'set':function(_0x53cf09){if(!_0x53cf09)this[_0x0de5('0x7')](_0x0de5('0x8'),null);this[_0x0de5('0x7')]('mandatoryDisposition',_0x53cf09);}}};
\ No newline at end of file
+var _0xa8eb=['sequelize','STRING','BOOLEAN','TEXT','Arial,Helvetica,sans-serif','UNSIGNED','Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}<br/>Subject\x20:\x20{{message.subject}}','INTEGER','Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled','Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','mandatoryDispositionPauseId','setDataValue','mandatoryDisposition'];(function(_0x34dd00,_0x33a6b0){var _0x4d89b8=function(_0x3b7465){while(--_0x3b7465){_0x34dd00['push'](_0x34dd00['shift']());}};_0x4d89b8(++_0x33a6b0);}(_0xa8eb,0x179));var _0xba8e=function(_0x44462e,_0x1cbbf5){_0x44462e=_0x44462e-0x0;var _0x5ea788=_0xa8eb[_0x44462e];return _0x5ea788;};'use strict';var Sequelize=require(_0xba8e('0x0'));module['exports']={'description':{'type':Sequelize[_0xba8e('0x1')]},'name':{'type':Sequelize['STRING'],'allowNull':![]},'service':{'type':Sequelize[_0xba8e('0x2')],'defaultValue':![]},'email':{'type':Sequelize[_0xba8e('0x1')],'validate':{'isEmail':!![]}},'active':{'type':Sequelize[_0xba8e('0x2')],'defaultValue':!![]},'key':{'type':Sequelize['STRING'],'allowNull':![]},'template':{'type':Sequelize[_0xba8e('0x3')]},'markAsUnread':{'type':Sequelize[_0xba8e('0x2')],'defaultValue':![]},'fontFamily':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':_0xba8e('0x4')},'fontSize':{'type':Sequelize['INTEGER'](0x2)[_0xba8e('0x5')],'defaultValue':0xd,'validate':{'min':0x8,'max':0x48}},'notificationTemplate':{'type':Sequelize['TEXT'],'defaultValue':function(){return _0xba8e('0x6');}},'notificationSound':{'type':Sequelize[_0xba8e('0x2')],'defaultValue':!![]},'notificationShake':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'waitForTheAssignedAgent':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'queueTransfer':{'type':Sequelize[_0xba8e('0x2')],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize[_0xba8e('0x7')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize[_0xba8e('0x2')],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize[_0xba8e('0x7')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'mandatoryDispositionPauseId':{'type':Sequelize[_0xba8e('0x7')],'allowNull':!![],'defaultValue':null,'comment':_0xba8e('0x8')},'mandatoryDisposition':{'type':Sequelize[_0xba8e('0x2')],'defaultValue':![],'comment':_0xba8e('0x9'),'set':function(_0x472556){if(!_0x472556)this['setDataValue'](_0xba8e('0xa'),null);this[_0xba8e('0xb')](_0xba8e('0xc'),_0x472556);}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x09c1=['MailAccount,\x20%s,\x20%s','request\x20sent','debug','MailAccount,\x20%s,\x20%s,\x20%s','error','message','result','catch','sendStatus','end','status','json','offset','limit','undefined','count','apply','save','update','get','MailAccounts','destroy','name','index','MailServerOut','Smtp','mandatoryDispositionPause','map','MailAccount','rawAttributes','model','keys','query','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','where','filters','pick','filter','merge','type','VIRTUAL','options','includeAll','include','findAll','show','params','MailServerIn','Pause','find','body','Imap','describe','addDisposition','Disposition','create','findOne','sort','removeDispositions','ids','addAnswer','MailAccountId','CannedAnswer','getAnswers','rows','removeAnswers','key','email','ListId','isNil','active','description','cservice','cauthentication','user','cuser','pass','authentication','host','port','role','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','getImap','addImap','removeImap','getSmtp','addSmtp','removeSmtp','MailInteraction','addInteraction','omit','CmContact','Contact','Owner','fullname','Tag','Tags','tag','sequelize','transaction','MailApplication','bulkCreate','findAndCountAll','priority','getApplications','getMessages','$gte','MailMessage','inlineCss','true','List','Contacts','updatedAt','from','format','%s\x20<%s>','attachments','join','root','server/files/attachments','service','secure','auth','SendMail','sendMail','defaults','List\x20not\x20found','messageId','attach','out','YYYY-MM-DD\x20HH:mm:ss','Interaction','Messages','verifySmtp','VerifySmtp','Sequelize','ValidationError','You\x20can\x27t\x20remove\x20the\x20mail\x20service\x20account','addAgents','removeAgents','emit','userMailAccount:remove','User','getAgents','rimraf','zip-dir','fast-json-patch','request-promise','moment','util','path','sox','to-csv','ejs','lodash','squel','jsforce','html-to-text','juice','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../mysqldb','socket.io-emitter','redis','register','jayson/promise','client','http','request','then','info'];(function(_0x4fb823,_0x37f1a8){var _0x3cd118=function(_0x56b410){while(--_0x56b410){_0x4fb823['push'](_0x4fb823['shift']());}};_0x3cd118(++_0x37f1a8);}(_0x09c1,0x97));var _0x109c=function(_0x26489a,_0x10290d){_0x26489a=_0x26489a-0x0;var _0x2c789c=_0x09c1[_0x26489a];return _0x2c789c;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x109c('0x0'));var zipdir=require(_0x109c('0x1'));var jsonpatch=require(_0x109c('0x2'));var rp=require(_0x109c('0x3'));var moment=require(_0x109c('0x4'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x109c('0x5'));var path=require(_0x109c('0x6'));var sox=require(_0x109c('0x7'));var csv=require(_0x109c('0x8'));var ejs=require(_0x109c('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x109c('0xa'));var squel=require(_0x109c('0xb'));var crypto=require('crypto');var jsforce=require(_0x109c('0xc'));var deskjs=require('desk.js');var toCsv=require(_0x109c('0x8'));var querystring=require('querystring');var Papa=require('papaparse');var htmlToText=require(_0x109c('0xd'));var juice=require(_0x109c('0xe'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x109c('0xf'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x109c('0x10'))(_0x109c('0x11'));var utils=require(_0x109c('0x12'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x109c('0x13'))['db'];config['redis']=_['defaults'](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0x109c('0x14'))(new Redis(config[_0x109c('0x15')]));require('./mailAccount.socket')[_0x109c('0x16')](socket);var jayson=require(_0x109c('0x17'));var client=jayson[_0x109c('0x18')][_0x109c('0x19')]({'port':0x232b});function respondWithRpcPromise(_0x562636,_0x12271c,_0x5f03f5,_0x29c594){return new BPromise(function(_0x506b54,_0x3c64ae){var _0x30213a=_0x29c594||client;return _0x30213a[_0x109c('0x1a')](_0x562636,_0x5f03f5)[_0x109c('0x1b')](function(_0x10b19a){logger[_0x109c('0x1c')](_0x109c('0x1d'),_0x12271c,_0x109c('0x1e'));logger[_0x109c('0x1f')](_0x109c('0x20'),_0x12271c,_0x109c('0x1e'),JSON['stringify'](_0x10b19a));if(_0x10b19a[_0x109c('0x21')]){if(_0x10b19a[_0x109c('0x21')]['code']===0x1f4){logger[_0x109c('0x21')]('MailAccount,\x20%s,\x20%s',_0x12271c,_0x10b19a[_0x109c('0x21')][_0x109c('0x22')]);return _0x3c64ae(_0x10b19a[_0x109c('0x21')]['message']);}logger[_0x109c('0x21')](_0x109c('0x1d'),_0x12271c,_0x10b19a['error'][_0x109c('0x22')]);return _0x506b54(_0x10b19a[_0x109c('0x21')][_0x109c('0x22')]);}else{logger[_0x109c('0x1c')](_0x109c('0x1d'),_0x12271c,_0x109c('0x1e'));_0x506b54(_0x10b19a[_0x109c('0x23')][_0x109c('0x22')]);}})[_0x109c('0x24')](function(_0x5a0d91){logger[_0x109c('0x21')](_0x109c('0x1d'),_0x12271c,_0x5a0d91);_0x3c64ae(_0x5a0d91);});});}function respondWithStatusCode(_0x4f10c7,_0xd100a6){_0xd100a6=_0xd100a6||0xcc;return function(_0x1c7604){if(_0x1c7604){return _0x4f10c7[_0x109c('0x25')](_0xd100a6);}return _0x4f10c7['status'](_0xd100a6)[_0x109c('0x26')]();};}function respondWithResult(_0x485f12,_0x4c79f4){_0x4c79f4=_0x4c79f4||0xc8;return function(_0xfe57ac){if(_0xfe57ac){return _0x485f12[_0x109c('0x27')](_0x4c79f4)[_0x109c('0x28')](_0xfe57ac);}};}function respondWithFilteredResult(_0x5f3a96,_0xce7541){return function(_0x140643){if(_0x140643){var _0x1e6919=typeof _0xce7541[_0x109c('0x29')]==='undefined'&&typeof _0xce7541[_0x109c('0x2a')]===_0x109c('0x2b');var _0x4bba90=_0x140643['count'];var _0xe77e3a=_0x1e6919?0x0:_0xce7541['offset'];var _0xd531a7=_0x1e6919?_0x140643[_0x109c('0x2c')]:_0xce7541[_0x109c('0x29')]+_0xce7541[_0x109c('0x2a')];var _0x52b0cf;if(_0xd531a7>=_0x4bba90){_0xd531a7=_0x4bba90;_0x52b0cf=0xc8;}else{_0x52b0cf=0xce;}_0x5f3a96['status'](_0x52b0cf);return _0x5f3a96['set']('Content-Range',_0xe77e3a+'-'+_0xd531a7+'/'+_0x4bba90)[_0x109c('0x28')](_0x140643);}return null;};}function patchUpdates(_0x232e30){return function(_0x3b3a71){try{jsonpatch[_0x109c('0x2d')](_0x3b3a71,_0x232e30,!![]);}catch(_0x12efe4){return BPromise['reject'](_0x12efe4);}return _0x3b3a71[_0x109c('0x2e')]();};}function saveUpdates(_0x1d0bf4,_0xd62424){return function(_0x5ab43c){if(_0x5ab43c){return _0x5ab43c[_0x109c('0x2f')](_0x1d0bf4)['then'](function(_0x38da0e){return _0x38da0e;});}return null;};}function removeEntity(_0x5948c7,_0x2aa54a){return function(_0x1c5829){if(_0x1c5829){return _0x1c5829['destroy']()[_0x109c('0x1b')](function(){var _0x3c9bba=_0x1c5829[_0x109c('0x30')]({'plain':!![]});var _0x1b7279=_0x109c('0x31');return db['UserProfileResource'][_0x109c('0x32')]({'where':{'type':_0x1b7279,'resourceId':_0x3c9bba['id']}})[_0x109c('0x1b')](function(){return _0x1c5829;});})[_0x109c('0x1b')](function(){_0x5948c7[_0x109c('0x27')](0xcc)[_0x109c('0x26')]();});}};}function handleEntityNotFound(_0x3af44e,_0x469fce){return function(_0x28c28e){if(!_0x28c28e){_0x3af44e[_0x109c('0x25')](0x194);}return _0x28c28e;};}function handleError(_0x4dd939,_0x67aaa1){_0x67aaa1=_0x67aaa1||0x1f4;return function(_0x18e0a4){logger[_0x109c('0x21')](_0x18e0a4['stack']);if(_0x18e0a4['name']){delete _0x18e0a4[_0x109c('0x33')];}_0x4dd939[_0x109c('0x27')](_0x67aaa1)['send'](_0x18e0a4);};}exports[_0x109c('0x34')]=function(_0x48a9c3,_0x3b2342){var _0x5cfc16={'include':[{'model':db['MailServerIn'],'as':'Imap'},{'model':db[_0x109c('0x35')],'as':_0x109c('0x36')},{'model':db['Pause'],'as':_0x109c('0x37')}]},_0x2b3858={},_0x3de28a={'count':0x0,'rows':[]};var _0x2985ee=_[_0x109c('0x38')](db[_0x109c('0x39')][_0x109c('0x3a')],function(_0x4c549b){return{'name':_0x4c549b['fieldName'],'type':_0x4c549b['type']['key']};});_0x2b3858[_0x109c('0x3b')]=_[_0x109c('0x38')](_0x2985ee,_0x109c('0x33'));_0x2b3858['query']=_[_0x109c('0x3c')](_0x48a9c3[_0x109c('0x3d')]);_0x2b3858['filters']=_[_0x109c('0x3e')](_0x2b3858[_0x109c('0x3b')],_0x2b3858[_0x109c('0x3d')]);_0x5cfc16[_0x109c('0x3f')]=_[_0x109c('0x3e')](_0x2b3858['model'],qs[_0x109c('0x40')](_0x48a9c3[_0x109c('0x3d')]['fields']));_0x5cfc16[_0x109c('0x3f')]=_0x5cfc16['attributes'][_0x109c('0x41')]?_0x5cfc16[_0x109c('0x3f')]:_0x2b3858['model'];if(!_0x48a9c3[_0x109c('0x3d')][_0x109c('0x42')](_0x109c('0x43'))){_0x5cfc16[_0x109c('0x2a')]=qs[_0x109c('0x2a')](_0x48a9c3['query'][_0x109c('0x2a')]);_0x5cfc16['offset']=qs['offset'](_0x48a9c3[_0x109c('0x3d')][_0x109c('0x29')]);}_0x5cfc16[_0x109c('0x44')]=qs['sort'](_0x48a9c3[_0x109c('0x3d')]['sort']);_0x5cfc16[_0x109c('0x45')]=qs[_0x109c('0x46')](_[_0x109c('0x47')](_0x48a9c3['query'],_0x2b3858[_0x109c('0x46')]),_0x2985ee);if(_0x48a9c3[_0x109c('0x3d')][_0x109c('0x48')]){_0x5cfc16[_0x109c('0x45')]=_[_0x109c('0x49')](_0x5cfc16[_0x109c('0x45')],{'$or':_['map'](_0x2985ee,function(_0x349441){if(_0x349441[_0x109c('0x4a')]!==_0x109c('0x4b')){var _0x481d28={};_0x481d28[_0x349441[_0x109c('0x33')]]={'$like':'%'+_0x48a9c3[_0x109c('0x3d')][_0x109c('0x48')]+'%'};return _0x481d28;}})});}_0x5cfc16=_['merge']({},_0x5cfc16,_0x48a9c3[_0x109c('0x4c')]);var _0x188462={'where':_0x5cfc16[_0x109c('0x45')]};return db[_0x109c('0x39')]['count'](_0x188462)[_0x109c('0x1b')](function(_0x4105b4){_0x3de28a[_0x109c('0x2c')]=_0x4105b4;if(_0x48a9c3['query'][_0x109c('0x4d')]){_0x5cfc16[_0x109c('0x4e')]=[{'all':!![]}];}return db[_0x109c('0x39')][_0x109c('0x4f')](_0x5cfc16);})[_0x109c('0x1b')](function(_0x45c11b){_0x3de28a['rows']=_0x45c11b;return _0x3de28a;})[_0x109c('0x1b')](respondWithFilteredResult(_0x3b2342,_0x5cfc16))['catch'](handleError(_0x3b2342,null));};exports[_0x109c('0x50')]=function(_0x2d9f15,_0x10210e){var _0xe1d4c4={'raw':![],'where':{'id':_0x2d9f15[_0x109c('0x51')]['id']},'include':[{'model':db[_0x109c('0x52')],'as':'Imap'},{'model':db[_0x109c('0x35')],'as':_0x109c('0x36')},{'model':db[_0x109c('0x53')],'as':_0x109c('0x37')}]},_0x5850b4={};_0x5850b4[_0x109c('0x3b')]=_['keys'](db['MailAccount']['rawAttributes']);_0x5850b4[_0x109c('0x3d')]=_[_0x109c('0x3c')](_0x2d9f15['query']);_0x5850b4[_0x109c('0x46')]=_[_0x109c('0x3e')](_0x5850b4[_0x109c('0x3b')],_0x5850b4[_0x109c('0x3d')]);_0xe1d4c4[_0x109c('0x3f')]=_[_0x109c('0x3e')](_0x5850b4[_0x109c('0x3b')],qs['fields'](_0x2d9f15[_0x109c('0x3d')][_0x109c('0x40')]));_0xe1d4c4['attributes']=_0xe1d4c4[_0x109c('0x3f')][_0x109c('0x41')]?_0xe1d4c4[_0x109c('0x3f')]:_0x5850b4[_0x109c('0x3b')];if(_0x2d9f15['query'][_0x109c('0x4d')]){_0xe1d4c4['include']=[{'all':!![]}];}_0xe1d4c4=_[_0x109c('0x49')]({},_0xe1d4c4,_0x2d9f15[_0x109c('0x4c')]);return db[_0x109c('0x39')][_0x109c('0x54')](_0xe1d4c4)[_0x109c('0x1b')](handleEntityNotFound(_0x10210e,null))[_0x109c('0x1b')](respondWithResult(_0x10210e,null))[_0x109c('0x24')](handleError(_0x10210e,null));};exports[_0x109c('0x2f')]=function(_0x9b9132,_0x15074b){if(_0x9b9132['body']['id']){delete _0x9b9132[_0x109c('0x55')]['id'];}return db[_0x109c('0x39')][_0x109c('0x54')]({'where':{'id':_0x9b9132[_0x109c('0x51')]['id']},'include':[{'model':db[_0x109c('0x52')],'as':'Imap'},{'model':db[_0x109c('0x35')],'as':_0x109c('0x36')},{'model':db[_0x109c('0x53')],'as':'mandatoryDispositionPause'}]})[_0x109c('0x1b')](handleEntityNotFound(_0x15074b,null))[_0x109c('0x1b')](saveUpdates(_0x9b9132[_0x109c('0x55')],null))[_0x109c('0x1b')](function(_0x134ca4){if(_0x134ca4&&_0x9b9132['body'][_0x109c('0x56')]){return db[_0x109c('0x52')]['update'](_0x9b9132[_0x109c('0x55')][_0x109c('0x56')],{'where':{'MailAccountId':_0x134ca4['id']}})['then'](function(){return _0x134ca4;});}return _0x134ca4;})['then'](function(_0x2dd2ea){if(_0x2dd2ea&&_0x9b9132[_0x109c('0x55')][_0x109c('0x36')]){return db[_0x109c('0x35')][_0x109c('0x2f')](_0x9b9132[_0x109c('0x55')][_0x109c('0x36')],{'where':{'MailAccountId':_0x2dd2ea['id']}})[_0x109c('0x1b')](function(){return _0x2dd2ea;});}return _0x2dd2ea;})[_0x109c('0x1b')](respondWithResult(_0x15074b,null))[_0x109c('0x24')](handleError(_0x15074b,null));};exports[_0x109c('0x57')]=function(_0x84690b,_0x3524f9){return db[_0x109c('0x39')][_0x109c('0x57')]()[_0x109c('0x1b')](respondWithResult(_0x3524f9,null))['catch'](handleError(_0x3524f9,null));};exports[_0x109c('0x58')]=function(_0x15d0ff,_0x363d5e,_0x443886){if(_0x15d0ff['body']['id']){delete _0x15d0ff['body']['id'];}return db['MailAccount']['find']({'where':{'id':_0x15d0ff[_0x109c('0x51')]['id']}})[_0x109c('0x1b')](handleEntityNotFound(_0x363d5e,null))[_0x109c('0x1b')](function(_0x14895e){if(_0x14895e){_0x15d0ff[_0x109c('0x55')]['MailAccountId']=_0x14895e['id'];return db[_0x109c('0x59')][_0x109c('0x5a')](_0x15d0ff[_0x109c('0x55')]);}})[_0x109c('0x1b')](respondWithResult(_0x363d5e,null))[_0x109c('0x24')](handleError(_0x363d5e,null));};exports['getDispositions']=function(_0x30beeb,_0x2a4c4a,_0x24f3f9){var _0x3e7b79={'raw':![],'where':{}};var _0x43913f={};var _0x2e9544={'count':0x0,'rows':[]};return db['MailAccount'][_0x109c('0x5b')]({'where':{'id':_0x30beeb[_0x109c('0x51')]['id']}})[_0x109c('0x1b')](handleEntityNotFound(_0x2a4c4a,null))['then'](function(_0x3de7cc){if(_0x3de7cc){_0x43913f['model']=_[_0x109c('0x3c')](db[_0x109c('0x59')][_0x109c('0x3a')]);_0x43913f[_0x109c('0x3d')]=_[_0x109c('0x3c')](_0x30beeb[_0x109c('0x3d')]);_0x43913f['filters']=_[_0x109c('0x3e')](_0x43913f[_0x109c('0x3b')],_0x43913f['query']);_0x3e7b79[_0x109c('0x3f')]=_[_0x109c('0x3e')](_0x43913f['model'],qs[_0x109c('0x40')](_0x30beeb['query'][_0x109c('0x40')]));_0x3e7b79[_0x109c('0x3f')]=_0x3e7b79['attributes'][_0x109c('0x41')]?_0x3e7b79['attributes']:_0x43913f[_0x109c('0x3b')];if(!_0x30beeb[_0x109c('0x3d')]['hasOwnProperty']('nolimit')){_0x3e7b79['limit']=qs[_0x109c('0x2a')](_0x30beeb[_0x109c('0x3d')][_0x109c('0x2a')]);_0x3e7b79[_0x109c('0x29')]=qs['offset'](_0x30beeb[_0x109c('0x3d')][_0x109c('0x29')]);}_0x3e7b79[_0x109c('0x44')]=qs[_0x109c('0x5c')](_0x30beeb[_0x109c('0x3d')][_0x109c('0x5c')]);_0x3e7b79[_0x109c('0x45')]=qs[_0x109c('0x46')](_[_0x109c('0x47')](_0x30beeb[_0x109c('0x3d')],_0x43913f[_0x109c('0x46')]));_0x3e7b79['where']['MailAccountId']=_0x3de7cc['id'];if(_0x30beeb[_0x109c('0x3d')]['filter']){_0x3e7b79['where']=_[_0x109c('0x49')](_0x3e7b79['where'],{'$or':_[_0x109c('0x38')](_0x3e7b79[_0x109c('0x3f')],function(_0x49fe4a){var _0x265191={};_0x265191[_0x49fe4a]={'$like':'%'+_0x30beeb['query'][_0x109c('0x48')]+'%'};return _0x265191;})});}_0x3e7b79=_[_0x109c('0x49')]({},_0x3e7b79,_0x30beeb[_0x109c('0x4c')]);return db[_0x109c('0x59')][_0x109c('0x2c')]({'where':_0x3e7b79[_0x109c('0x45')]})[_0x109c('0x1b')](function(_0x58ad91){_0x2e9544[_0x109c('0x2c')]=_0x58ad91;if(_0x30beeb['query'][_0x109c('0x4d')]){_0x3e7b79[_0x109c('0x4e')]=[{'all':!![]}];}return db[_0x109c('0x59')]['findAll'](_0x3e7b79);})[_0x109c('0x1b')](function(_0x455b44){_0x2e9544['rows']=_0x455b44;return _0x2e9544;});}})[_0x109c('0x1b')](respondWithFilteredResult(_0x2a4c4a,_0x3e7b79))[_0x109c('0x24')](handleError(_0x2a4c4a,null));};exports[_0x109c('0x5d')]=function(_0x2a3955,_0x3d0377,_0x1ed77a){return db[_0x109c('0x39')][_0x109c('0x54')]({'where':{'id':_0x2a3955[_0x109c('0x51')]['id']}})[_0x109c('0x1b')](handleEntityNotFound(_0x3d0377,null))[_0x109c('0x1b')](function(_0x27eb7b){if(_0x27eb7b){return _0x27eb7b['removeDispositions'](_0x2a3955[_0x109c('0x3d')][_0x109c('0x5e')]);}})[_0x109c('0x1b')](respondWithStatusCode(_0x3d0377,null))[_0x109c('0x24')](handleError(_0x3d0377,null));};exports[_0x109c('0x5f')]=function(_0x1db3d7,_0x5c7963,_0x4ccb7d){if(_0x1db3d7[_0x109c('0x55')]['id']){delete _0x1db3d7[_0x109c('0x55')]['id'];}return db[_0x109c('0x39')]['find']({'where':{'id':_0x1db3d7[_0x109c('0x51')]['id']}})['then'](handleEntityNotFound(_0x5c7963,null))['then'](function(_0x4e485b){if(_0x4e485b){_0x1db3d7[_0x109c('0x55')][_0x109c('0x60')]=_0x4e485b['id'];return db[_0x109c('0x61')][_0x109c('0x5a')](_0x1db3d7[_0x109c('0x55')]);}})[_0x109c('0x1b')](respondWithResult(_0x5c7963,null))[_0x109c('0x24')](handleError(_0x5c7963,null));};exports[_0x109c('0x62')]=function(_0x5c49bc,_0x376ded,_0x4f7bcd){var _0x4aa162={'raw':![],'where':{}};var _0xbfb624={};var _0x2ea7b1={'count':0x0,'rows':[]};return db['MailAccount'][_0x109c('0x5b')]({'where':{'id':_0x5c49bc[_0x109c('0x51')]['id']}})[_0x109c('0x1b')](handleEntityNotFound(_0x376ded,null))[_0x109c('0x1b')](function(_0x318df5){if(_0x318df5){_0xbfb624[_0x109c('0x3b')]=_['keys'](db['CannedAnswer'][_0x109c('0x3a')]);_0xbfb624['query']=_['keys'](_0x5c49bc[_0x109c('0x3d')]);_0xbfb624['filters']=_['intersection'](_0xbfb624[_0x109c('0x3b')],_0xbfb624['query']);_0x4aa162[_0x109c('0x3f')]=_['intersection'](_0xbfb624[_0x109c('0x3b')],qs[_0x109c('0x40')](_0x5c49bc[_0x109c('0x3d')][_0x109c('0x40')]));_0x4aa162[_0x109c('0x3f')]=_0x4aa162[_0x109c('0x3f')][_0x109c('0x41')]?_0x4aa162[_0x109c('0x3f')]:_0xbfb624[_0x109c('0x3b')];if(!_0x5c49bc[_0x109c('0x3d')][_0x109c('0x42')]('nolimit')){_0x4aa162['limit']=qs['limit'](_0x5c49bc[_0x109c('0x3d')]['limit']);_0x4aa162[_0x109c('0x29')]=qs[_0x109c('0x29')](_0x5c49bc['query']['offset']);}_0x4aa162['order']=qs[_0x109c('0x5c')](_0x5c49bc[_0x109c('0x3d')][_0x109c('0x5c')]);_0x4aa162['where']=qs['filters'](_[_0x109c('0x47')](_0x5c49bc[_0x109c('0x3d')],_0xbfb624[_0x109c('0x46')]));_0x4aa162[_0x109c('0x45')][_0x109c('0x60')]=_0x318df5['id'];if(_0x5c49bc[_0x109c('0x3d')][_0x109c('0x48')]){_0x4aa162['where']=_[_0x109c('0x49')](_0x4aa162[_0x109c('0x45')],{'$or':_[_0x109c('0x38')](_0x4aa162[_0x109c('0x3f')],function(_0x35cec8){var _0x51eb04={};_0x51eb04[_0x35cec8]={'$like':'%'+_0x5c49bc['query'][_0x109c('0x48')]+'%'};return _0x51eb04;})});}_0x4aa162=_['merge']({},_0x4aa162,_0x5c49bc['options']);return db[_0x109c('0x61')][_0x109c('0x2c')]({'where':_0x4aa162[_0x109c('0x45')]})[_0x109c('0x1b')](function(_0x433d03){_0x2ea7b1['count']=_0x433d03;if(_0x5c49bc[_0x109c('0x3d')][_0x109c('0x4d')]){_0x4aa162[_0x109c('0x4e')]=[{'all':!![]}];}return db[_0x109c('0x61')][_0x109c('0x4f')](_0x4aa162);})[_0x109c('0x1b')](function(_0x23871a){_0x2ea7b1[_0x109c('0x63')]=_0x23871a;return _0x2ea7b1;});}})['then'](respondWithFilteredResult(_0x376ded,_0x4aa162))['catch'](handleError(_0x376ded,null));};exports[_0x109c('0x64')]=function(_0x3168cb,_0x80676b,_0x1b97e4){return db[_0x109c('0x39')][_0x109c('0x54')]({'where':{'id':_0x3168cb[_0x109c('0x51')]['id']}})[_0x109c('0x1b')](handleEntityNotFound(_0x80676b,null))[_0x109c('0x1b')](function(_0x2e8f1f){if(_0x2e8f1f){return _0x2e8f1f[_0x109c('0x64')](_0x3168cb[_0x109c('0x3d')][_0x109c('0x5e')]);}})[_0x109c('0x1b')](respondWithStatusCode(_0x80676b,null))[_0x109c('0x24')](handleError(_0x80676b,null));};exports['create']=function(_0x22e239,_0x9aa5c1){var _0x32ee26={'name':_0x22e239[_0x109c('0x55')][_0x109c('0x33')],'key':_0x22e239[_0x109c('0x55')][_0x109c('0x65')],'email':_0x22e239[_0x109c('0x55')][_0x109c('0x66')],'ListId':_0x22e239['body'][_0x109c('0x67')],'active':!_[_0x109c('0x68')](_0x22e239[_0x109c('0x55')][_0x109c('0x69')])?_0x22e239[_0x109c('0x55')]['active']:!![],'description':_0x22e239['body'][_0x109c('0x6a')]||null,'Imap':{},'Smtp':{}};if(_['isNil'](_0x22e239[_0x109c('0x55')][_0x109c('0x6b')])){if(_0x22e239[_0x109c('0x55')][_0x109c('0x6c')]){_0x32ee26[_0x109c('0x56')][_0x109c('0x6d')]=_0x32ee26['Smtp'][_0x109c('0x6d')]=_0x22e239[_0x109c('0x55')][_0x109c('0x6e')];_0x32ee26['Imap']['password']=_0x32ee26[_0x109c('0x36')][_0x109c('0x6f')]=_0x22e239[_0x109c('0x55')]['cpassword'];}else{_0x32ee26[_0x109c('0x56')]['authentication']=_0x32ee26[_0x109c('0x36')][_0x109c('0x70')]=![];}_0x32ee26[_0x109c('0x56')][_0x109c('0x71')]=_0x22e239[_0x109c('0x55')][_0x109c('0x56')]['host'];_0x32ee26['Imap'][_0x109c('0x72')]=_0x22e239[_0x109c('0x55')][_0x109c('0x56')]['port'];_0x32ee26['Smtp'][_0x109c('0x71')]=_0x22e239[_0x109c('0x55')][_0x109c('0x36')]['host'];_0x32ee26[_0x109c('0x36')][_0x109c('0x72')]=_0x22e239[_0x109c('0x55')]['Smtp'][_0x109c('0x72')];}else{_0x32ee26['Imap']['service']=_0x32ee26[_0x109c('0x36')]['service']=_0x22e239[_0x109c('0x55')]['cservice'];_0x32ee26[_0x109c('0x56')][_0x109c('0x6d')]=_0x32ee26[_0x109c('0x36')][_0x109c('0x6d')]=_0x22e239[_0x109c('0x55')][_0x109c('0x6e')];_0x32ee26[_0x109c('0x56')]['password']=_0x32ee26['Smtp'][_0x109c('0x6f')]=_0x22e239[_0x109c('0x55')]['cpassword'];}return db[_0x109c('0x39')][_0x109c('0x5a')](_0x32ee26,{'include':[{'model':db[_0x109c('0x35')],'as':_0x109c('0x36')},{'model':db[_0x109c('0x52')],'as':_0x109c('0x56')}]})[_0x109c('0x1b')](function(_0x4fe077){var _0x3a824b=_0x22e239[_0x109c('0x6d')][_0x109c('0x30')]({'plain':!![]});if(!_0x3a824b)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x3a824b[_0x109c('0x73')]===_0x109c('0x6d')){var _0x517a52=_0x4fe077[_0x109c('0x30')]({'plain':!![]});return db['UserProfileSection'][_0x109c('0x54')]({'where':{'name':_0x109c('0x31'),'userProfileId':_0x3a824b['userProfileId']},'raw':!![]})['then'](function(_0x3e7b68){if(_0x3e7b68&&_0x3e7b68[_0x109c('0x74')]===0x0){return db['UserProfileResource'][_0x109c('0x5a')]({'name':_0x517a52['name'],'resourceId':_0x517a52['id'],'type':_0x3e7b68['name'],'sectionId':_0x3e7b68['id']},{})[_0x109c('0x1b')](function(){return _0x4fe077;});}else{return _0x4fe077;}})['catch'](function(_0x2453d8){logger[_0x109c('0x21')](_0x109c('0x75'),_0x2453d8);throw _0x2453d8;});}return _0x4fe077;})[_0x109c('0x1b')](respondWithResult(_0x9aa5c1,0xc9))[_0x109c('0x24')](handleError(_0x9aa5c1,null));};exports[_0x109c('0x76')]=function(_0x542a52,_0x420b17,_0x366ce7){return db[_0x109c('0x39')][_0x109c('0x5b')]({'where':{'id':_0x542a52['params']['id']}})[_0x109c('0x1b')](handleEntityNotFound(_0x420b17,null))[_0x109c('0x1b')](function(_0x2a6975){if(_0x2a6975){return _0x2a6975[_0x109c('0x76')]();}return null;})[_0x109c('0x1b')](respondWithResult(_0x420b17,null))[_0x109c('0x24')](handleError(_0x420b17,null));};exports[_0x109c('0x77')]=function(_0x1294d0,_0x46ec19,_0xb173c1){if(_0x1294d0['body']['id']){delete _0x1294d0[_0x109c('0x55')]['id'];}return db['MailAccount'][_0x109c('0x54')]({'where':{'id':_0x1294d0[_0x109c('0x51')]['id']}})[_0x109c('0x1b')](handleEntityNotFound(_0x46ec19,null))['then'](function(_0x3b7203){if(_0x3b7203){_0x1294d0[_0x109c('0x55')]['MailAccountId']=_0x3b7203['id'];return db[_0x109c('0x52')][_0x109c('0x5a')](_0x1294d0[_0x109c('0x55')]);}})['then'](respondWithResult(_0x46ec19,null))[_0x109c('0x24')](handleError(_0x46ec19,null));};exports[_0x109c('0x78')]=function(_0x525454,_0x305811,_0x51eaf5){return db[_0x109c('0x39')][_0x109c('0x5b')]({'where':{'id':_0x525454[_0x109c('0x51')]['id']}})[_0x109c('0x1b')](handleEntityNotFound(_0x305811,null))[_0x109c('0x1b')](function(_0x414dbb){if(_0x414dbb){return _0x414dbb['setImap'](null);}return null;})['then'](respondWithStatusCode(_0x305811,null))['catch'](handleError(_0x305811,null));};exports[_0x109c('0x79')]=function(_0x126c7d,_0x3f56a0,_0x5a71a2){return db['MailAccount'][_0x109c('0x5b')]({'where':{'id':_0x126c7d[_0x109c('0x51')]['id']}})[_0x109c('0x1b')](handleEntityNotFound(_0x3f56a0,null))[_0x109c('0x1b')](function(_0x78bf08){if(_0x78bf08){return _0x78bf08[_0x109c('0x79')]();}return null;})[_0x109c('0x1b')](respondWithResult(_0x3f56a0,null))[_0x109c('0x24')](handleError(_0x3f56a0,null));};exports[_0x109c('0x7a')]=function(_0x59ad7c,_0x3999da,_0x28a37d){if(_0x59ad7c['body']['id']){delete _0x59ad7c[_0x109c('0x55')]['id'];}return db[_0x109c('0x39')][_0x109c('0x54')]({'where':{'id':_0x59ad7c['params']['id']}})[_0x109c('0x1b')](handleEntityNotFound(_0x3999da,null))[_0x109c('0x1b')](function(_0x3d1498){if(_0x3d1498){_0x59ad7c['body'][_0x109c('0x60')]=_0x3d1498['id'];return db[_0x109c('0x35')][_0x109c('0x5a')](_0x59ad7c[_0x109c('0x55')]);}})[_0x109c('0x1b')](respondWithResult(_0x3999da,null))[_0x109c('0x24')](handleError(_0x3999da,null));};exports[_0x109c('0x7b')]=function(_0x2f344d,_0x3e0199,_0x24c92c){return db['MailAccount']['findOne']({'where':{'id':_0x2f344d['params']['id']}})[_0x109c('0x1b')](handleEntityNotFound(_0x3e0199,null))[_0x109c('0x1b')](function(_0x3ac4a9){if(_0x3ac4a9){return _0x3ac4a9['setSmtp'](null);}return null;})[_0x109c('0x1b')](respondWithStatusCode(_0x3e0199,null))[_0x109c('0x24')](handleError(_0x3e0199,null));};exports['addInteraction']=function(_0x4495e8,_0x4c6338,_0x49a7d9){return db[_0x109c('0x7c')][_0x109c('0x54')]({'where':{'id':_0x4495e8[_0x109c('0x51')]['id']}})['then'](handleEntityNotFound(_0x4c6338,null))[_0x109c('0x1b')](function(_0x539f25){if(_0x539f25){return _0x539f25[_0x109c('0x7d')](_0x4495e8['body'][_0x109c('0x5e')],_[_0x109c('0x7e')](_0x4495e8[_0x109c('0x55')],[_0x109c('0x5e'),'id'])||{});}})[_0x109c('0x1b')](respondWithResult(_0x4c6338,null))[_0x109c('0x24')](handleError(_0x4c6338,null));};exports['getInteractions']=function(_0x3c6abe,_0x1e1aad,_0x525d45){var _0x3b4464={'raw':![],'where':{}};var _0x15ea2c={};var _0x1f926b={'count':0x0,'rows':[]};return db[_0x109c('0x39')][_0x109c('0x5b')]({'where':{'id':_0x3c6abe[_0x109c('0x51')]['id']}})[_0x109c('0x1b')](handleEntityNotFound(_0x1e1aad,null))[_0x109c('0x1b')](function(_0x31754c){if(_0x31754c){_0x15ea2c[_0x109c('0x3b')]=_[_0x109c('0x3c')](db[_0x109c('0x7c')]['rawAttributes']);_0x15ea2c['query']=_[_0x109c('0x3c')](_0x3c6abe[_0x109c('0x3d')]);_0x15ea2c[_0x109c('0x46')]=_[_0x109c('0x3e')](_0x15ea2c[_0x109c('0x3b')],_0x15ea2c[_0x109c('0x3d')]);_0x3b4464[_0x109c('0x3f')]=_[_0x109c('0x3e')](_0x15ea2c['model'],qs[_0x109c('0x40')](_0x3c6abe[_0x109c('0x3d')][_0x109c('0x40')]));_0x3b4464[_0x109c('0x3f')]=_0x3b4464[_0x109c('0x3f')][_0x109c('0x41')]?_0x3b4464[_0x109c('0x3f')]:_0x15ea2c[_0x109c('0x3b')];if(!_0x3c6abe[_0x109c('0x3d')][_0x109c('0x42')]('nolimit')){_0x3b4464['limit']=qs['limit'](_0x3c6abe['query']['limit']);_0x3b4464['offset']=qs[_0x109c('0x29')](_0x3c6abe[_0x109c('0x3d')][_0x109c('0x29')]);}_0x3b4464[_0x109c('0x44')]=qs[_0x109c('0x5c')](_0x3c6abe['query'][_0x109c('0x5c')]);_0x3b4464['where']=qs[_0x109c('0x46')](_[_0x109c('0x47')](_0x3c6abe[_0x109c('0x3d')],_0x15ea2c['filters']));_0x3b4464[_0x109c('0x45')][_0x109c('0x60')]=_0x31754c['id'];if(_0x3c6abe[_0x109c('0x3d')][_0x109c('0x48')]){_0x3b4464['where']=_['merge'](_0x3b4464[_0x109c('0x45')],{'$or':_['map'](_0x3b4464[_0x109c('0x3f')],function(_0x1e179e){var _0x2d6d0e={};_0x2d6d0e[_0x1e179e]={'$like':'%'+_0x3c6abe['query'][_0x109c('0x48')]+'%'};return _0x2d6d0e;})});}_0x3b4464=_[_0x109c('0x49')]({},_0x3b4464,_0x3c6abe[_0x109c('0x4c')]);return db[_0x109c('0x7c')][_0x109c('0x2c')]({'where':_0x3b4464[_0x109c('0x45')]})[_0x109c('0x1b')](function(_0x2e440d){_0x1f926b[_0x109c('0x2c')]=_0x2e440d;if(_0x3c6abe[_0x109c('0x3d')]['includeAll']){_0x3b4464[_0x109c('0x4e')]=[{'model':db[_0x109c('0x7f')],'as':_0x109c('0x80'),'required':![]},{'model':db['User'],'as':_0x109c('0x81'),'attributes':[_0x109c('0x33'),_0x109c('0x82'),'internal'],'required':![]},{'model':db[_0x109c('0x83')],'as':_0x109c('0x84'),'attributes':['id',_0x109c('0x33'),'color'],'where':_0x3c6abe['query'][_0x109c('0x85')]?{'id':_0x3c6abe[_0x109c('0x3d')][_0x109c('0x85')]}:undefined,'required':_0x3c6abe['query'][_0x109c('0x85')]?!![]:![]}];}return db[_0x109c('0x7c')][_0x109c('0x4f')](_0x3b4464);})[_0x109c('0x1b')](function(_0x43c1c5){_0x1f926b['rows']=_0x43c1c5;return _0x1f926b;});}})[_0x109c('0x1b')](respondWithFilteredResult(_0x1e1aad,_0x3b4464))['catch'](handleError(_0x1e1aad,null));};exports['addApplications']=function(_0x29f849,_0x3e2f6b,_0x24eeb6){return db['MailAccount'][_0x109c('0x5b')]({'where':{'id':_0x29f849[_0x109c('0x51')]['id']}})[_0x109c('0x1b')](handleEntityNotFound(_0x3e2f6b,null))['then'](function(_0xc363dc){if(_0xc363dc){return db[_0x109c('0x86')][_0x109c('0x87')](function(_0x12b4f1){return db[_0x109c('0x88')]['destroy']({'where':{'MailAccountId':_0x29f849['params']['id']},'transaction':_0x12b4f1})[_0x109c('0x1b')](function(_0x297520){var _0x3fec7d=_[_0x109c('0x38')](_0x29f849[_0x109c('0x55')],function(_0x4d6ea2){_0x4d6ea2[_0x109c('0x60')]=_0x29f849[_0x109c('0x51')]['id'];return _0x4d6ea2;});return db[_0x109c('0x88')][_0x109c('0x89')](_0x3fec7d,{'transaction':_0x12b4f1});});})[_0x109c('0x1b')](function(){return db[_0x109c('0x88')][_0x109c('0x8a')]({'where':{'MailAccountId':_0x29f849[_0x109c('0x51')]['id']},'order':_0x109c('0x8b')});});}})[_0x109c('0x1b')](respondWithResult(_0x3e2f6b,null))[_0x109c('0x24')](handleError(_0x3e2f6b,null));};exports[_0x109c('0x8c')]=function(_0x321f09,_0x50bd11,_0x5f5b3a){var _0x4b5d56={};var _0x3a9453={};var _0x4ec520;var _0xca27a3;return db['MailAccount']['findOne']({'where':{'id':_0x321f09[_0x109c('0x51')]['id']}})[_0x109c('0x1b')](handleEntityNotFound(_0x50bd11,null))[_0x109c('0x1b')](function(_0x18af13){if(_0x18af13){_0x4ec520=_0x18af13;_0x3a9453['model']=_[_0x109c('0x3c')](db['MailApplication'][_0x109c('0x3a')]);_0x3a9453[_0x109c('0x3d')]=_[_0x109c('0x3c')](_0x321f09[_0x109c('0x3d')]);_0x3a9453[_0x109c('0x46')]=_[_0x109c('0x3e')](_0x3a9453[_0x109c('0x3b')],_0x3a9453[_0x109c('0x3d')]);_0x4b5d56['attributes']=_[_0x109c('0x3e')](_0x3a9453[_0x109c('0x3b')],qs[_0x109c('0x40')](_0x321f09['query'][_0x109c('0x40')]));_0x4b5d56[_0x109c('0x3f')]=_0x4b5d56[_0x109c('0x3f')][_0x109c('0x41')]?_0x4b5d56[_0x109c('0x3f')]:_0x3a9453[_0x109c('0x3b')];_0x4b5d56[_0x109c('0x44')]=qs[_0x109c('0x5c')](_0x321f09[_0x109c('0x3d')]['sort']);_0x4b5d56[_0x109c('0x45')]=qs[_0x109c('0x46')](_[_0x109c('0x47')](_0x321f09[_0x109c('0x3d')],_0x3a9453[_0x109c('0x46')]));if(_0x321f09['query']['filter']){_0x4b5d56[_0x109c('0x45')]=_[_0x109c('0x49')](_0x4b5d56[_0x109c('0x45')],{'$or':_[_0x109c('0x38')](_0x4b5d56[_0x109c('0x3f')],function(_0x2343b6){var _0x24bece={};_0x24bece[_0x2343b6]={'$like':'%'+_0x321f09[_0x109c('0x3d')][_0x109c('0x48')]+'%'};return _0x24bece;})});}_0x4b5d56=_['merge']({},_0x4b5d56,_0x321f09[_0x109c('0x4c')]);return _0x4ec520[_0x109c('0x8c')](_0x4b5d56);}})[_0x109c('0x1b')](function(_0x6300af){if(_0x6300af){_0xca27a3=_0x6300af['length'];if(!_0x321f09[_0x109c('0x3d')]['hasOwnProperty'](_0x109c('0x43'))){_0x4b5d56[_0x109c('0x2a')]=qs[_0x109c('0x2a')](_0x321f09[_0x109c('0x3d')][_0x109c('0x2a')]);_0x4b5d56['offset']=qs['offset'](_0x321f09[_0x109c('0x3d')]['offset']);}return _0x4ec520[_0x109c('0x8c')](_0x4b5d56);}})[_0x109c('0x1b')](function(_0x1ee076){if(_0x1ee076){return _0x1ee076?{'count':_0xca27a3,'rows':_0x1ee076}:null;}})[_0x109c('0x1b')](respondWithResult(_0x50bd11,null))[_0x109c('0x24')](handleError(_0x50bd11,null));};exports[_0x109c('0x8d')]=function(_0x38c54d,_0x30a222,_0x4d5057){var _0x2166c0={'raw':!![],'where':{}};var _0x3e3000={};var _0x1287d={'count':0x0,'rows':[]};return db[_0x109c('0x39')][_0x109c('0x5b')]({'where':{'id':_0x38c54d[_0x109c('0x51')]['id']}})[_0x109c('0x1b')](handleEntityNotFound(_0x30a222,null))[_0x109c('0x1b')](function(_0x34d8f9){if(_0x34d8f9){_0x3e3000[_0x109c('0x3b')]=_[_0x109c('0x3c')](db['MailMessage'][_0x109c('0x3a')]);_0x3e3000[_0x109c('0x3d')]=_[_0x109c('0x3c')](_0x38c54d[_0x109c('0x3d')]);_0x3e3000[_0x109c('0x46')]=_['intersection'](_0x3e3000[_0x109c('0x3b')],_0x3e3000[_0x109c('0x3d')]);_0x2166c0['attributes']=_[_0x109c('0x3e')](_0x3e3000['model'],qs[_0x109c('0x40')](_0x38c54d[_0x109c('0x3d')][_0x109c('0x40')]));_0x2166c0['attributes']=_0x2166c0[_0x109c('0x3f')]['length']?_0x2166c0[_0x109c('0x3f')]:_0x3e3000[_0x109c('0x3b')];if(!_0x38c54d[_0x109c('0x3d')]['hasOwnProperty'](_0x109c('0x43'))){_0x2166c0[_0x109c('0x2a')]=qs[_0x109c('0x2a')](_0x38c54d[_0x109c('0x3d')][_0x109c('0x2a')]);_0x2166c0[_0x109c('0x29')]=qs['offset'](_0x38c54d[_0x109c('0x3d')]['offset']);}_0x2166c0[_0x109c('0x44')]=qs[_0x109c('0x5c')](_0x38c54d[_0x109c('0x3d')][_0x109c('0x5c')]);_0x2166c0[_0x109c('0x45')]=qs[_0x109c('0x46')](_[_0x109c('0x47')](_0x38c54d[_0x109c('0x3d')],_0x3e3000['filters']));_0x2166c0[_0x109c('0x45')][_0x109c('0x60')]=_0x34d8f9['id'];if(_0x38c54d['query'][_0x109c('0x48')]){_0x2166c0[_0x109c('0x45')]=_[_0x109c('0x49')](_0x2166c0[_0x109c('0x45')],{'$or':_[_0x109c('0x38')](_0x2166c0['attributes'],function(_0x1b6e0c){var _0x158982={};_0x158982[_0x1b6e0c]={'$like':'%'+_0x38c54d['query'][_0x109c('0x48')]+'%'};return _0x158982;})});}if(_0x38c54d[_0x109c('0x3d')][_0x109c('0x8e')]){var _0x1e4168=_0x38c54d['query']['$gte']['split'](',');var _0x461991={};_0x461991[_0x1e4168[0x0]]={'$gte':moment(_0x1e4168[0x1])['format']('YYYY-MM-DD\x20HH:mm:ss')};_0x2166c0['where']=_[_0x109c('0x49')](_0x2166c0['where'],_0x461991);}_0x2166c0=_['merge']({},_0x2166c0,_0x38c54d[_0x109c('0x4c')]);return db[_0x109c('0x8f')]['count']({'where':_0x2166c0[_0x109c('0x45')]})['then'](function(_0xf84d01){_0x1287d[_0x109c('0x2c')]=_0xf84d01;if(_0x38c54d[_0x109c('0x3d')][_0x109c('0x4d')]){_0x2166c0[_0x109c('0x4e')]=[{'all':!![]}];}return db[_0x109c('0x8f')][_0x109c('0x4f')](_0x2166c0);})['then'](function(_0x51e60e){if(_0x38c54d['query'][_0x109c('0x90')]===_0x109c('0x91')){for(var _0xcb9253=0x0;_0xcb9253<_0x51e60e[_0x109c('0x41')];_0xcb9253++){_0x51e60e[_0xcb9253][_0x109c('0x55')]=juice(_0x51e60e[_0xcb9253]['body']);}}_0x1287d[_0x109c('0x63')]=_0x51e60e;return _0x1287d;});}})['then'](respondWithFilteredResult(_0x30a222,_0x2166c0))[_0x109c('0x24')](handleError(_0x30a222,null));};exports['send']=function(_0x26fb6a,_0x5f3f18,_0x27f441){var _0x33a1ad,_0x29fe50={},_0x54e86d;if(_0x26fb6a['body']['to']){_0x54e86d=_0x26fb6a[_0x109c('0x55')]['to']['split'](',')[0x0];}return db[_0x109c('0x39')]['find']({'where':{'id':_0x26fb6a['params']['id']},'include':[{'model':db['CmList'],'as':_0x109c('0x92'),'include':[{'model':db['CmContact'],'as':_0x109c('0x93'),'where':{'email':_0x54e86d},'limit':0x1,'order':[[_0x109c('0x94'),'DESC']]}]},{'model':db[_0x109c('0x35')],'as':'Smtp','raw':!![]}]})[_0x109c('0x1b')](handleEntityNotFound(_0x5f3f18,null))[_0x109c('0x1b')](function(_0x3c31f3){if(_0x3c31f3){_0x33a1ad=_0x3c31f3;if(_0x3c31f3[_0x109c('0x36')]){if(_['isNil'](_0x26fb6a['body'][_0x109c('0x95')])){_0x26fb6a['body'][_0x109c('0x95')]=util[_0x109c('0x96')](_0x109c('0x97'),_0x3c31f3[_0x109c('0x33')],_0x3c31f3['email']||_0x3c31f3['Smtp'][_0x109c('0x6d')]);}if(_0x26fb6a[_0x109c('0x55')][_0x109c('0x98')]&&_0x26fb6a[_0x109c('0x55')][_0x109c('0x98')]['length']){for(var _0x3ea700=0x0;_0x3ea700<_0x26fb6a[_0x109c('0x55')]['attachments'][_0x109c('0x41')];_0x3ea700+=0x1){_0x26fb6a[_0x109c('0x55')][_0x109c('0x98')][_0x3ea700]={'filename':_0x26fb6a['body']['attachments'][_0x3ea700][_0x109c('0x33')],'path':path[_0x109c('0x99')](config[_0x109c('0x9a')],_0x109c('0x9b'),_0x26fb6a['body'][_0x109c('0x98')][_0x3ea700]['basename'])};}}var _0x5ac915={'tls':{'rejectUnauthorized':![]}};if(_['isNil'](_0x3c31f3[_0x109c('0x36')][_0x109c('0x9c')])){if(_0x3c31f3[_0x109c('0x36')]['authentication']){_0x5ac915['auth']={'user':_0x3c31f3[_0x109c('0x36')][_0x109c('0x6d')],'pass':_0x3c31f3[_0x109c('0x36')]['pass']};}_0x5ac915[_0x109c('0x71')]=_0x3c31f3[_0x109c('0x36')][_0x109c('0x71')];_0x5ac915[_0x109c('0x72')]=_0x3c31f3[_0x109c('0x36')]['port'];_0x5ac915[_0x109c('0x9d')]=_0x3c31f3['Smtp'][_0x109c('0x9d')];}else{_0x5ac915[_0x109c('0x9c')]=_0x3c31f3[_0x109c('0x36')]['service'];_0x5ac915[_0x109c('0x9e')]={'user':_0x3c31f3[_0x109c('0x36')][_0x109c('0x6d')],'pass':_0x3c31f3['Smtp'][_0x109c('0x6f')]};}return respondWithRpcPromise(_0x109c('0x9f'),_0x109c('0xa0'),{'account':_0x5ac915,'message':_0x26fb6a['body']});}else{throw new Error('List\x20not\x20found');}}})[_0x109c('0x1b')](function(_0x4842d4){if(_0x4842d4){_0x29fe50=_0x4842d4;if(_0x33a1ad['List']){if(_0x33a1ad[_0x109c('0x92')][_0x109c('0x93')]['length']){return _0x33a1ad[_0x109c('0x92')][_0x109c('0x93')][0x0];}else{return db[_0x109c('0x7f')][_0x109c('0x5a')](_[_0x109c('0xa1')](_0x26fb6a['body'],{'firstName':_0x26fb6a[_0x109c('0x55')]['to'],'email':_0x26fb6a['body']['to'],'phone':_0x26fb6a[_0x109c('0x55')]['to'],'ListId':_0x33a1ad['ListId']}));}}else{throw new Error(_0x109c('0xa2'));}}})[_0x109c('0x1b')](function(_0x483ed6){if(_0x483ed6){var _0x40e74b={'UserId':_0x26fb6a[_0x109c('0x6d')]['id'],'ContactId':_0x483ed6['id'],'MailAccountId':_0x33a1ad['id'],'inReplyTo':_0x29fe50[_0x109c('0xa3')],'to':_0x26fb6a['body'][_0x109c('0x95')],'cc':_0x26fb6a[_0x109c('0x55')]['cc'],'subject':_0x26fb6a['body']['subject'],'attach':_0x26fb6a[_0x109c('0x55')][_0x109c('0xa4')],'firstMsgDirection':_0x109c('0xa5'),'lastMsgAt':moment()['format'](_0x109c('0xa6')),'lastMsgDirection':_0x109c('0xa5'),'Messages':[_[_0x109c('0x49')](_0x26fb6a[_0x109c('0x55')],{'messageId':_0x29fe50[_0x109c('0xa3')],'sentAt':moment()['format'](_0x109c('0xa6')),'read':!![],'MailAccountId':_0x33a1ad['id'],'UserId':_0x26fb6a[_0x109c('0x6d')]['id'],'ContactId':_0x483ed6['id']})]};if(_0x26fb6a[_0x109c('0x55')][_0x109c('0xa7')]){_0x40e74b=_[_0x109c('0x49')](_0x40e74b,_0x26fb6a[_0x109c('0x55')][_0x109c('0xa7')]);}return db[_0x109c('0x7c')][_0x109c('0x5a')](_0x40e74b,{'include':[{'model':db[_0x109c('0x8f')],'as':_0x109c('0xa8')}]});}})[_0x109c('0x1b')](respondWithResult(_0x5f3f18,null))[_0x109c('0x24')](handleError(_0x5f3f18,null));};exports[_0x109c('0xa9')]=function(_0x4d5f22,_0x445071,_0x537b10){return db[_0x109c('0x39')][_0x109c('0x54')]({'where':{'id':_0x4d5f22[_0x109c('0x51')]['id']},'include':[{'model':db[_0x109c('0x35')],'as':_0x109c('0x36'),'raw':!![]}]})[_0x109c('0x1b')](handleEntityNotFound(_0x445071,null))[_0x109c('0x1b')](function(_0x4e00a0){if(_0x4e00a0&&_0x4e00a0[_0x109c('0x36')]){var _0x2c0a7f={'id':_0x4e00a0['id'],'tls':{'rejectUnauthorized':![]}};if(_0x4e00a0[_0x109c('0x36')][_0x109c('0x9c')]){_0x2c0a7f['service']=_0x4e00a0[_0x109c('0x36')][_0x109c('0x9c')];}else{_0x2c0a7f[_0x109c('0x71')]=_0x4e00a0[_0x109c('0x36')][_0x109c('0x71')];_0x2c0a7f[_0x109c('0x72')]=_0x4e00a0[_0x109c('0x36')][_0x109c('0x72')];_0x2c0a7f[_0x109c('0x9d')]=_0x4e00a0[_0x109c('0x36')][_0x109c('0x9d')];}if(_0x4e00a0[_0x109c('0x36')]['authentication']){_0x2c0a7f[_0x109c('0x9e')]={'user':_0x4e00a0['Smtp']['user'],'pass':_0x4e00a0[_0x109c('0x36')][_0x109c('0x6f')]};}return respondWithRpcPromise(_0x109c('0xaa'),_0x109c('0xa9'),{'account':_0x2c0a7f});}})['then'](respondWithResult(_0x445071,null))['catch'](handleError(_0x445071,null));};exports[_0x109c('0x32')]=function(_0xbb18e,_0x20dcda){return db['MailAccount']['find']({'where':{'id':_0xbb18e['params']['id']}})[_0x109c('0x1b')](handleEntityNotFound(_0x20dcda,null))[_0x109c('0x1b')](function(_0x387f14){if(_0x387f14&&_0x387f14[_0x109c('0x9c')]){throw new db[(_0x109c('0xab'))][(_0x109c('0xac'))](_0x109c('0xad'));}return _0x387f14;})['then'](removeEntity(_0x20dcda,null))[_0x109c('0x24')](handleError(_0x20dcda,null));};exports[_0x109c('0xae')]=function(_0xce8a49,_0x3cc01c,_0xd601ff){return db[_0x109c('0x39')][_0x109c('0x54')]({'where':{'id':_0xce8a49[_0x109c('0x51')]['id']}})[_0x109c('0x1b')](handleEntityNotFound(_0x3cc01c,null))['then'](function(_0x9bdd09){if(_0x9bdd09){return _0x9bdd09[_0x109c('0xae')](_0xce8a49[_0x109c('0x55')]['ids'],_[_0x109c('0x7e')](_0xce8a49['body'],[_0x109c('0x5e'),'id'])||{})['spread'](function(_0x1a60b4){for(var _0x1bd6e1=0x0;_0x1bd6e1<_0xce8a49['body'][_0x109c('0x5e')][_0x109c('0x41')];_0x1bd6e1+=0x1){socket['emit']('userMailAccount:save',{'UserId':Number(_0xce8a49[_0x109c('0x55')]['ids'][_0x1bd6e1]),'MailAccountId':Number(_0xce8a49[_0x109c('0x51')]['id'])});}return _0x1a60b4;});}})[_0x109c('0x1b')](respondWithResult(_0x3cc01c,null))[_0x109c('0x24')](handleError(_0x3cc01c,null));};exports[_0x109c('0xaf')]=function(_0x243d21,_0x2a304b,_0x90a152){return db[_0x109c('0x39')]['find']({'where':{'id':_0x243d21[_0x109c('0x51')]['id']}})[_0x109c('0x1b')](handleEntityNotFound(_0x2a304b,null))[_0x109c('0x1b')](function(_0x9c11f7){if(_0x9c11f7){return _0x9c11f7[_0x109c('0xaf')](_0x243d21['query'][_0x109c('0x5e')])[_0x109c('0x1b')](function(){if(_['isArray'](_0x243d21['query'][_0x109c('0x5e')])){for(var _0x4da84f=0x0;_0x4da84f<_0x243d21[_0x109c('0x3d')][_0x109c('0x5e')][_0x109c('0x41')];_0x4da84f+=0x1){socket[_0x109c('0xb0')](_0x109c('0xb1'),{'UserId':Number(_0x243d21['query']['ids'][_0x4da84f]),'MailAccountId':Number(_0x243d21[_0x109c('0x51')]['id'])});}}else{socket[_0x109c('0xb0')](_0x109c('0xb1'),{'UserId':Number(_0x243d21[_0x109c('0x3d')]['ids']),'MailAccountId':Number(_0x243d21[_0x109c('0x51')]['id'])});}});}})[_0x109c('0x1b')](respondWithStatusCode(_0x2a304b,null))[_0x109c('0x24')](handleError(_0x2a304b,null));};exports['getAgents']=function(_0x5c1fa7,_0x2a2830,_0x5627d5){var _0x4feb59={};var _0x32e909={};var _0x51c5a0;var _0x48ff2f;return db['MailAccount'][_0x109c('0x5b')]({'where':{'id':_0x5c1fa7[_0x109c('0x51')]['id']}})[_0x109c('0x1b')](handleEntityNotFound(_0x2a2830,null))['then'](function(_0x114e6c){if(_0x114e6c){_0x51c5a0=_0x114e6c;_0x32e909['model']=_[_0x109c('0x3c')](db[_0x109c('0xb2')][_0x109c('0x3a')]);_0x32e909[_0x109c('0x3d')]=_['keys'](_0x5c1fa7['query']);_0x32e909[_0x109c('0x46')]=_[_0x109c('0x3e')](_0x32e909['model'],_0x32e909[_0x109c('0x3d')]);_0x4feb59[_0x109c('0x3f')]=_[_0x109c('0x3e')](_0x32e909[_0x109c('0x3b')],qs[_0x109c('0x40')](_0x5c1fa7[_0x109c('0x3d')]['fields']));_0x4feb59[_0x109c('0x3f')]=_0x4feb59[_0x109c('0x3f')]['length']?_0x4feb59['attributes']:_0x32e909[_0x109c('0x3b')];_0x4feb59['order']=qs[_0x109c('0x5c')](_0x5c1fa7[_0x109c('0x3d')][_0x109c('0x5c')]);_0x4feb59[_0x109c('0x45')]=qs['filters'](_['pick'](_0x5c1fa7[_0x109c('0x3d')],_0x32e909['filters']));if(_0x5c1fa7[_0x109c('0x3d')][_0x109c('0x48')]){_0x4feb59[_0x109c('0x45')]=_[_0x109c('0x49')](_0x4feb59['where'],{'$or':_['map'](_0x4feb59[_0x109c('0x3f')],function(_0x8ed073){var _0x2a64b9={};_0x2a64b9[_0x8ed073]={'$like':'%'+_0x5c1fa7[_0x109c('0x3d')]['filter']+'%'};return _0x2a64b9;})});}_0x4feb59=_[_0x109c('0x49')]({},_0x4feb59,_0x5c1fa7[_0x109c('0x4c')]);return _0x51c5a0[_0x109c('0xb3')](_0x4feb59);}})[_0x109c('0x1b')](function(_0x14e924){if(_0x14e924){_0x48ff2f=_0x14e924[_0x109c('0x41')];if(!_0x5c1fa7[_0x109c('0x3d')][_0x109c('0x42')](_0x109c('0x43'))){_0x4feb59[_0x109c('0x2a')]=qs['limit'](_0x5c1fa7['query']['limit']);_0x4feb59[_0x109c('0x29')]=qs[_0x109c('0x29')](_0x5c1fa7[_0x109c('0x3d')][_0x109c('0x29')]);}return _0x51c5a0['getAgents'](_0x4feb59);}})[_0x109c('0x1b')](function(_0xb1ff82){if(_0xb1ff82){return _0xb1ff82?{'count':_0x48ff2f,'rows':_0xb1ff82}:null;}})[_0x109c('0x1b')](respondWithResult(_0x2a2830,null))['catch'](handleError(_0x2a2830,null));};
\ No newline at end of file
+var _0x8e19=['../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','register','client','request','then','info','MailAccount,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','save','destroy','get','MailAccounts','UserProfileResource','end','name','send','index','Imap','MailServerOut','Smtp','Pause','MailAccount','rawAttributes','type','key','map','query','filters','intersection','attributes','fields','model','hasOwnProperty','nolimit','sort','where','pick','filter','merge','VIRTUAL','include','rows','MailServerIn','keys','includeAll','options','body','find','params','mandatoryDispositionPause','update','catch','describe','addDisposition','MailAccountId','Disposition','create','getDispositions','findOne','length','order','findAll','removeDispositions','ids','addAnswer','CannedAnswer','getAnswers','removeAnswers','email','ListId','active','isNil','cservice','cauthentication','user','cuser','password','pass','cpassword','authentication','host','port','service','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','autoAssociation','getImap','addImap','setImap','getSmtp','addSmtp','removeSmtp','setSmtp','MailInteraction','omit','getInteractions','CmContact','Contact','User','Owner','fullname','Tag','Tags','color','tag','addApplications','transaction','MailApplication','findAndCountAll','priority','getApplications','getMessages','MailMessage','$gte','split','format','YYYY-MM-DD\x20HH:mm:ss','true','CmList','Contacts','updatedAt','DESC','%s\x20<%s>','attachments','join','root','server/files/attachments','basename','secure','SendMail','sendMail','List\x20not\x20found','List','messageId','from','subject','attach','out','Interaction','Messages','VerifySmtp','verifySmtp','Sequelize','ValidationError','You\x20can\x27t\x20remove\x20the\x20mail\x20service\x20account','addAgents','spread','emit','userMailAccount:save','removeAgents','isArray','userMailAccount:remove','getAgents','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','html-to-text','juice','ioredis','../../components/auth/service','../../config/license/hardware'];(function(_0x4dbde1,_0x174323){var _0x59b90e=function(_0x19c03f){while(--_0x19c03f){_0x4dbde1['push'](_0x4dbde1['shift']());}};_0x59b90e(++_0x174323);}(_0x8e19,0xb3));var _0x98e1=function(_0x30f777,_0x2beae4){_0x30f777=_0x30f777-0x0;var _0x31f599=_0x8e19[_0x30f777];return _0x31f599;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x98e1('0x0'));var jsonpatch=require(_0x98e1('0x1'));var rp=require(_0x98e1('0x2'));var moment=require(_0x98e1('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x98e1('0x4'));var util=require(_0x98e1('0x5'));var path=require(_0x98e1('0x6'));var sox=require('sox');var csv=require(_0x98e1('0x7'));var ejs=require(_0x98e1('0x8'));var fs=require('fs');var fs_extra=require(_0x98e1('0x9'));var _=require(_0x98e1('0xa'));var squel=require(_0x98e1('0xb'));var crypto=require(_0x98e1('0xc'));var jsforce=require(_0x98e1('0xd'));var deskjs=require(_0x98e1('0xe'));var toCsv=require('to-csv');var querystring=require(_0x98e1('0xf'));var Papa=require(_0x98e1('0x10'));var htmlToText=require(_0x98e1('0x11'));var juice=require(_0x98e1('0x12'));var Redis=require(_0x98e1('0x13'));var authService=require(_0x98e1('0x14'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x98e1('0x15'));var logger=require(_0x98e1('0x16'))(_0x98e1('0x17'));var utils=require(_0x98e1('0x18'));var config=require(_0x98e1('0x19'));var licenseUtil=require(_0x98e1('0x1a'));var db=require(_0x98e1('0x1b'))['db'];config[_0x98e1('0x1c')]=_[_0x98e1('0x1d')](config[_0x98e1('0x1c')],{'host':_0x98e1('0x1e'),'port':0x18eb});var socket=require(_0x98e1('0x1f'))(new Redis(config['redis']));require('./mailAccount.socket')[_0x98e1('0x20')](socket);var jayson=require('jayson/promise');var client=jayson[_0x98e1('0x21')]['http']({'port':0x232b});function respondWithRpcPromise(_0x1aa829,_0x1fa968,_0x40edb6,_0xc82502){return new BPromise(function(_0x5d49cd,_0x52da57){var _0x675fe0=_0xc82502||client;return _0x675fe0[_0x98e1('0x22')](_0x1aa829,_0x40edb6)[_0x98e1('0x23')](function(_0x55437f){logger[_0x98e1('0x24')](_0x98e1('0x25'),_0x1fa968,_0x98e1('0x26'));logger[_0x98e1('0x27')]('MailAccount,\x20%s,\x20%s,\x20%s',_0x1fa968,_0x98e1('0x26'),JSON[_0x98e1('0x28')](_0x55437f));if(_0x55437f[_0x98e1('0x29')]){if(_0x55437f[_0x98e1('0x29')][_0x98e1('0x2a')]===0x1f4){logger[_0x98e1('0x29')]('MailAccount,\x20%s,\x20%s',_0x1fa968,_0x55437f['error'][_0x98e1('0x2b')]);return _0x52da57(_0x55437f[_0x98e1('0x29')]['message']);}logger[_0x98e1('0x29')](_0x98e1('0x25'),_0x1fa968,_0x55437f['error'][_0x98e1('0x2b')]);return _0x5d49cd(_0x55437f[_0x98e1('0x29')]['message']);}else{logger[_0x98e1('0x24')](_0x98e1('0x25'),_0x1fa968,_0x98e1('0x26'));_0x5d49cd(_0x55437f[_0x98e1('0x2c')][_0x98e1('0x2b')]);}})['catch'](function(_0x3134cb){logger[_0x98e1('0x29')](_0x98e1('0x25'),_0x1fa968,_0x3134cb);_0x52da57(_0x3134cb);});});}function respondWithStatusCode(_0x4f73ec,_0x2be972){_0x2be972=_0x2be972||0xcc;return function(_0x38f458){if(_0x38f458){return _0x4f73ec[_0x98e1('0x2d')](_0x2be972);}return _0x4f73ec[_0x98e1('0x2e')](_0x2be972)['end']();};}function respondWithResult(_0x59049c,_0x538c25){_0x538c25=_0x538c25||0xc8;return function(_0x850f2c){if(_0x850f2c){return _0x59049c[_0x98e1('0x2e')](_0x538c25)[_0x98e1('0x2f')](_0x850f2c);}};}function respondWithFilteredResult(_0xb0d612,_0x57ce98){return function(_0x54b71e){if(_0x54b71e){var _0x49a9e3=typeof _0x57ce98[_0x98e1('0x30')]===_0x98e1('0x31')&&typeof _0x57ce98[_0x98e1('0x32')]===_0x98e1('0x31');var _0x5c1e15=_0x54b71e[_0x98e1('0x33')];var _0x11d78f=_0x49a9e3?0x0:_0x57ce98[_0x98e1('0x30')];var _0x51fde=_0x49a9e3?_0x54b71e['count']:_0x57ce98[_0x98e1('0x30')]+_0x57ce98[_0x98e1('0x32')];var _0x2dc87e;if(_0x51fde>=_0x5c1e15){_0x51fde=_0x5c1e15;_0x2dc87e=0xc8;}else{_0x2dc87e=0xce;}_0xb0d612['status'](_0x2dc87e);return _0xb0d612[_0x98e1('0x34')](_0x98e1('0x35'),_0x11d78f+'-'+_0x51fde+'/'+_0x5c1e15)[_0x98e1('0x2f')](_0x54b71e);}return null;};}function patchUpdates(_0x190869){return function(_0x43c866){try{jsonpatch[_0x98e1('0x36')](_0x43c866,_0x190869,!![]);}catch(_0x4e361b){return BPromise['reject'](_0x4e361b);}return _0x43c866[_0x98e1('0x37')]();};}function saveUpdates(_0x17eb3d,_0x16d9c8){return function(_0x7e4142){if(_0x7e4142){return _0x7e4142['update'](_0x17eb3d)[_0x98e1('0x23')](function(_0x251184){return _0x251184;});}return null;};}function removeEntity(_0x59a961,_0x2c93e4){return function(_0x1f008f){if(_0x1f008f){return _0x1f008f[_0x98e1('0x38')]()[_0x98e1('0x23')](function(){var _0x5a5c7f=_0x1f008f[_0x98e1('0x39')]({'plain':!![]});var _0x1ebf2a=_0x98e1('0x3a');return db[_0x98e1('0x3b')][_0x98e1('0x38')]({'where':{'type':_0x1ebf2a,'resourceId':_0x5a5c7f['id']}})[_0x98e1('0x23')](function(){return _0x1f008f;});})[_0x98e1('0x23')](function(){_0x59a961['status'](0xcc)[_0x98e1('0x3c')]();});}};}function handleEntityNotFound(_0x45136f,_0x40c49e){return function(_0xe10bc1){if(!_0xe10bc1){_0x45136f['sendStatus'](0x194);}return _0xe10bc1;};}function handleError(_0x321785,_0x2dd93c){_0x2dd93c=_0x2dd93c||0x1f4;return function(_0x1e5662){logger[_0x98e1('0x29')](_0x1e5662['stack']);if(_0x1e5662[_0x98e1('0x3d')]){delete _0x1e5662[_0x98e1('0x3d')];}_0x321785[_0x98e1('0x2e')](_0x2dd93c)[_0x98e1('0x3e')](_0x1e5662);};}exports[_0x98e1('0x3f')]=function(_0x13be7a,_0x482c26){var _0x242dd2={'include':[{'model':db['MailServerIn'],'as':_0x98e1('0x40')},{'model':db[_0x98e1('0x41')],'as':_0x98e1('0x42')},{'model':db[_0x98e1('0x43')],'as':'mandatoryDispositionPause'}]},_0x1bfd56={},_0x195643={'count':0x0,'rows':[]};var _0x25a426=_['map'](db[_0x98e1('0x44')][_0x98e1('0x45')],function(_0x4e3a0a){return{'name':_0x4e3a0a['fieldName'],'type':_0x4e3a0a[_0x98e1('0x46')][_0x98e1('0x47')]};});_0x1bfd56['model']=_[_0x98e1('0x48')](_0x25a426,'name');_0x1bfd56[_0x98e1('0x49')]=_['keys'](_0x13be7a[_0x98e1('0x49')]);_0x1bfd56[_0x98e1('0x4a')]=_[_0x98e1('0x4b')](_0x1bfd56['model'],_0x1bfd56[_0x98e1('0x49')]);_0x242dd2[_0x98e1('0x4c')]=_['intersection'](_0x1bfd56['model'],qs[_0x98e1('0x4d')](_0x13be7a[_0x98e1('0x49')][_0x98e1('0x4d')]));_0x242dd2[_0x98e1('0x4c')]=_0x242dd2[_0x98e1('0x4c')]['length']?_0x242dd2['attributes']:_0x1bfd56[_0x98e1('0x4e')];if(!_0x13be7a[_0x98e1('0x49')][_0x98e1('0x4f')](_0x98e1('0x50'))){_0x242dd2[_0x98e1('0x32')]=qs[_0x98e1('0x32')](_0x13be7a[_0x98e1('0x49')][_0x98e1('0x32')]);_0x242dd2[_0x98e1('0x30')]=qs['offset'](_0x13be7a[_0x98e1('0x49')][_0x98e1('0x30')]);}_0x242dd2['order']=qs[_0x98e1('0x51')](_0x13be7a[_0x98e1('0x49')][_0x98e1('0x51')]);_0x242dd2[_0x98e1('0x52')]=qs[_0x98e1('0x4a')](_[_0x98e1('0x53')](_0x13be7a['query'],_0x1bfd56['filters']),_0x25a426);if(_0x13be7a[_0x98e1('0x49')][_0x98e1('0x54')]){_0x242dd2[_0x98e1('0x52')]=_[_0x98e1('0x55')](_0x242dd2[_0x98e1('0x52')],{'$or':_[_0x98e1('0x48')](_0x25a426,function(_0x1b03ea){if(_0x1b03ea[_0x98e1('0x46')]!==_0x98e1('0x56')){var _0xd36113={};_0xd36113[_0x1b03ea[_0x98e1('0x3d')]]={'$like':'%'+_0x13be7a[_0x98e1('0x49')][_0x98e1('0x54')]+'%'};return _0xd36113;}})});}_0x242dd2=_[_0x98e1('0x55')]({},_0x242dd2,_0x13be7a['options']);var _0x121062={'where':_0x242dd2[_0x98e1('0x52')]};return db['MailAccount'][_0x98e1('0x33')](_0x121062)[_0x98e1('0x23')](function(_0x5792ce){_0x195643['count']=_0x5792ce;if(_0x13be7a[_0x98e1('0x49')]['includeAll']){_0x242dd2[_0x98e1('0x57')]=[{'all':!![]}];}return db['MailAccount']['findAll'](_0x242dd2);})[_0x98e1('0x23')](function(_0x442598){_0x195643[_0x98e1('0x58')]=_0x442598;return _0x195643;})[_0x98e1('0x23')](respondWithFilteredResult(_0x482c26,_0x242dd2))['catch'](handleError(_0x482c26,null));};exports['show']=function(_0x5cbe6e,_0x11fd82){var _0x275ed3={'raw':![],'where':{'id':_0x5cbe6e['params']['id']},'include':[{'model':db[_0x98e1('0x59')],'as':_0x98e1('0x40')},{'model':db[_0x98e1('0x41')],'as':_0x98e1('0x42')},{'model':db['Pause'],'as':'mandatoryDispositionPause'}]},_0x5c2245={};_0x5c2245[_0x98e1('0x4e')]=_[_0x98e1('0x5a')](db[_0x98e1('0x44')]['rawAttributes']);_0x5c2245[_0x98e1('0x49')]=_[_0x98e1('0x5a')](_0x5cbe6e[_0x98e1('0x49')]);_0x5c2245['filters']=_['intersection'](_0x5c2245[_0x98e1('0x4e')],_0x5c2245[_0x98e1('0x49')]);_0x275ed3[_0x98e1('0x4c')]=_[_0x98e1('0x4b')](_0x5c2245[_0x98e1('0x4e')],qs[_0x98e1('0x4d')](_0x5cbe6e[_0x98e1('0x49')]['fields']));_0x275ed3[_0x98e1('0x4c')]=_0x275ed3[_0x98e1('0x4c')]['length']?_0x275ed3['attributes']:_0x5c2245[_0x98e1('0x4e')];if(_0x5cbe6e['query'][_0x98e1('0x5b')]){_0x275ed3['include']=[{'all':!![]}];}_0x275ed3=_['merge']({},_0x275ed3,_0x5cbe6e[_0x98e1('0x5c')]);return db[_0x98e1('0x44')]['find'](_0x275ed3)[_0x98e1('0x23')](handleEntityNotFound(_0x11fd82,null))['then'](respondWithResult(_0x11fd82,null))['catch'](handleError(_0x11fd82,null));};exports['update']=function(_0x5a890a,_0x22f8fd){if(_0x5a890a[_0x98e1('0x5d')]['id']){delete _0x5a890a[_0x98e1('0x5d')]['id'];}return db[_0x98e1('0x44')][_0x98e1('0x5e')]({'where':{'id':_0x5a890a[_0x98e1('0x5f')]['id']},'include':[{'model':db[_0x98e1('0x59')],'as':'Imap'},{'model':db[_0x98e1('0x41')],'as':_0x98e1('0x42')},{'model':db[_0x98e1('0x43')],'as':_0x98e1('0x60')}]})[_0x98e1('0x23')](handleEntityNotFound(_0x22f8fd,null))[_0x98e1('0x23')](saveUpdates(_0x5a890a[_0x98e1('0x5d')],null))['then'](function(_0xb7fec9){if(_0xb7fec9&&_0x5a890a[_0x98e1('0x5d')]['Imap']){return db[_0x98e1('0x59')]['update'](_0x5a890a[_0x98e1('0x5d')][_0x98e1('0x40')],{'where':{'MailAccountId':_0xb7fec9['id']}})[_0x98e1('0x23')](function(){return _0xb7fec9;});}return _0xb7fec9;})[_0x98e1('0x23')](function(_0x2e0704){if(_0x2e0704&&_0x5a890a['body']['Smtp']){return db['MailServerOut'][_0x98e1('0x61')](_0x5a890a['body'][_0x98e1('0x42')],{'where':{'MailAccountId':_0x2e0704['id']}})[_0x98e1('0x23')](function(){return _0x2e0704;});}return _0x2e0704;})[_0x98e1('0x23')](respondWithResult(_0x22f8fd,null))[_0x98e1('0x62')](handleError(_0x22f8fd,null));};exports[_0x98e1('0x63')]=function(_0x10b91e,_0x13bb77){return db[_0x98e1('0x44')][_0x98e1('0x63')]()[_0x98e1('0x23')](respondWithResult(_0x13bb77,null))[_0x98e1('0x62')](handleError(_0x13bb77,null));};exports[_0x98e1('0x64')]=function(_0x402ab9,_0xbba65a,_0x455ff5){if(_0x402ab9[_0x98e1('0x5d')]['id']){delete _0x402ab9['body']['id'];}return db[_0x98e1('0x44')][_0x98e1('0x5e')]({'where':{'id':_0x402ab9[_0x98e1('0x5f')]['id']}})[_0x98e1('0x23')](handleEntityNotFound(_0xbba65a,null))[_0x98e1('0x23')](function(_0x48af12){if(_0x48af12){_0x402ab9[_0x98e1('0x5d')][_0x98e1('0x65')]=_0x48af12['id'];return db[_0x98e1('0x66')][_0x98e1('0x67')](_0x402ab9[_0x98e1('0x5d')]);}})['then'](respondWithResult(_0xbba65a,null))['catch'](handleError(_0xbba65a,null));};exports[_0x98e1('0x68')]=function(_0x31825f,_0xb627f1,_0x5d64b6){var _0x57dc90={'raw':![],'where':{}};var _0x38e925={};var _0x4cc650={'count':0x0,'rows':[]};return db[_0x98e1('0x44')][_0x98e1('0x69')]({'where':{'id':_0x31825f[_0x98e1('0x5f')]['id']}})[_0x98e1('0x23')](handleEntityNotFound(_0xb627f1,null))[_0x98e1('0x23')](function(_0x36d08c){if(_0x36d08c){_0x38e925[_0x98e1('0x4e')]=_['keys'](db[_0x98e1('0x66')][_0x98e1('0x45')]);_0x38e925[_0x98e1('0x49')]=_[_0x98e1('0x5a')](_0x31825f['query']);_0x38e925[_0x98e1('0x4a')]=_[_0x98e1('0x4b')](_0x38e925[_0x98e1('0x4e')],_0x38e925[_0x98e1('0x49')]);_0x57dc90[_0x98e1('0x4c')]=_[_0x98e1('0x4b')](_0x38e925[_0x98e1('0x4e')],qs['fields'](_0x31825f[_0x98e1('0x49')][_0x98e1('0x4d')]));_0x57dc90[_0x98e1('0x4c')]=_0x57dc90[_0x98e1('0x4c')][_0x98e1('0x6a')]?_0x57dc90['attributes']:_0x38e925[_0x98e1('0x4e')];if(!_0x31825f[_0x98e1('0x49')][_0x98e1('0x4f')]('nolimit')){_0x57dc90[_0x98e1('0x32')]=qs[_0x98e1('0x32')](_0x31825f['query'][_0x98e1('0x32')]);_0x57dc90[_0x98e1('0x30')]=qs[_0x98e1('0x30')](_0x31825f['query'][_0x98e1('0x30')]);}_0x57dc90[_0x98e1('0x6b')]=qs['sort'](_0x31825f['query'][_0x98e1('0x51')]);_0x57dc90[_0x98e1('0x52')]=qs[_0x98e1('0x4a')](_[_0x98e1('0x53')](_0x31825f[_0x98e1('0x49')],_0x38e925['filters']));_0x57dc90[_0x98e1('0x52')][_0x98e1('0x65')]=_0x36d08c['id'];if(_0x31825f[_0x98e1('0x49')][_0x98e1('0x54')]){_0x57dc90[_0x98e1('0x52')]=_[_0x98e1('0x55')](_0x57dc90['where'],{'$or':_['map'](_0x57dc90['attributes'],function(_0x35df95){var _0x4dd7ae={};_0x4dd7ae[_0x35df95]={'$like':'%'+_0x31825f[_0x98e1('0x49')][_0x98e1('0x54')]+'%'};return _0x4dd7ae;})});}_0x57dc90=_[_0x98e1('0x55')]({},_0x57dc90,_0x31825f[_0x98e1('0x5c')]);return db['Disposition'][_0x98e1('0x33')]({'where':_0x57dc90[_0x98e1('0x52')]})[_0x98e1('0x23')](function(_0x3c8fa0){_0x4cc650[_0x98e1('0x33')]=_0x3c8fa0;if(_0x31825f[_0x98e1('0x49')][_0x98e1('0x5b')]){_0x57dc90[_0x98e1('0x57')]=[{'all':!![]}];}return db['Disposition'][_0x98e1('0x6c')](_0x57dc90);})[_0x98e1('0x23')](function(_0x401eec){_0x4cc650[_0x98e1('0x58')]=_0x401eec;return _0x4cc650;});}})[_0x98e1('0x23')](respondWithFilteredResult(_0xb627f1,_0x57dc90))['catch'](handleError(_0xb627f1,null));};exports[_0x98e1('0x6d')]=function(_0xb8dc08,_0xaca625,_0x4c43c5){return db[_0x98e1('0x44')][_0x98e1('0x5e')]({'where':{'id':_0xb8dc08[_0x98e1('0x5f')]['id']}})[_0x98e1('0x23')](handleEntityNotFound(_0xaca625,null))[_0x98e1('0x23')](function(_0xcd5fac){if(_0xcd5fac){return _0xcd5fac[_0x98e1('0x6d')](_0xb8dc08[_0x98e1('0x49')][_0x98e1('0x6e')]);}})[_0x98e1('0x23')](respondWithStatusCode(_0xaca625,null))['catch'](handleError(_0xaca625,null));};exports[_0x98e1('0x6f')]=function(_0x52bf1b,_0x25f930,_0x53d3ad){if(_0x52bf1b[_0x98e1('0x5d')]['id']){delete _0x52bf1b[_0x98e1('0x5d')]['id'];}return db[_0x98e1('0x44')][_0x98e1('0x5e')]({'where':{'id':_0x52bf1b['params']['id']}})['then'](handleEntityNotFound(_0x25f930,null))[_0x98e1('0x23')](function(_0x237931){if(_0x237931){_0x52bf1b[_0x98e1('0x5d')]['MailAccountId']=_0x237931['id'];return db[_0x98e1('0x70')][_0x98e1('0x67')](_0x52bf1b[_0x98e1('0x5d')]);}})[_0x98e1('0x23')](respondWithResult(_0x25f930,null))[_0x98e1('0x62')](handleError(_0x25f930,null));};exports[_0x98e1('0x71')]=function(_0x10a434,_0x551744,_0x1094f0){var _0x1ef3b2={'raw':![],'where':{}};var _0x1c2628={};var _0x3d6640={'count':0x0,'rows':[]};return db[_0x98e1('0x44')][_0x98e1('0x69')]({'where':{'id':_0x10a434[_0x98e1('0x5f')]['id']}})[_0x98e1('0x23')](handleEntityNotFound(_0x551744,null))[_0x98e1('0x23')](function(_0x419926){if(_0x419926){_0x1c2628[_0x98e1('0x4e')]=_[_0x98e1('0x5a')](db['CannedAnswer']['rawAttributes']);_0x1c2628[_0x98e1('0x49')]=_['keys'](_0x10a434[_0x98e1('0x49')]);_0x1c2628['filters']=_[_0x98e1('0x4b')](_0x1c2628[_0x98e1('0x4e')],_0x1c2628[_0x98e1('0x49')]);_0x1ef3b2['attributes']=_['intersection'](_0x1c2628[_0x98e1('0x4e')],qs[_0x98e1('0x4d')](_0x10a434[_0x98e1('0x49')][_0x98e1('0x4d')]));_0x1ef3b2['attributes']=_0x1ef3b2[_0x98e1('0x4c')][_0x98e1('0x6a')]?_0x1ef3b2[_0x98e1('0x4c')]:_0x1c2628[_0x98e1('0x4e')];if(!_0x10a434[_0x98e1('0x49')]['hasOwnProperty']('nolimit')){_0x1ef3b2[_0x98e1('0x32')]=qs[_0x98e1('0x32')](_0x10a434[_0x98e1('0x49')]['limit']);_0x1ef3b2[_0x98e1('0x30')]=qs[_0x98e1('0x30')](_0x10a434[_0x98e1('0x49')][_0x98e1('0x30')]);}_0x1ef3b2[_0x98e1('0x6b')]=qs[_0x98e1('0x51')](_0x10a434[_0x98e1('0x49')][_0x98e1('0x51')]);_0x1ef3b2[_0x98e1('0x52')]=qs['filters'](_[_0x98e1('0x53')](_0x10a434[_0x98e1('0x49')],_0x1c2628[_0x98e1('0x4a')]));_0x1ef3b2[_0x98e1('0x52')][_0x98e1('0x65')]=_0x419926['id'];if(_0x10a434[_0x98e1('0x49')]['filter']){_0x1ef3b2[_0x98e1('0x52')]=_['merge'](_0x1ef3b2[_0x98e1('0x52')],{'$or':_[_0x98e1('0x48')](_0x1ef3b2[_0x98e1('0x4c')],function(_0x1bda6d){var _0x33d678={};_0x33d678[_0x1bda6d]={'$like':'%'+_0x10a434[_0x98e1('0x49')][_0x98e1('0x54')]+'%'};return _0x33d678;})});}_0x1ef3b2=_[_0x98e1('0x55')]({},_0x1ef3b2,_0x10a434[_0x98e1('0x5c')]);return db[_0x98e1('0x70')]['count']({'where':_0x1ef3b2[_0x98e1('0x52')]})['then'](function(_0x4e3b0d){_0x3d6640[_0x98e1('0x33')]=_0x4e3b0d;if(_0x10a434['query']['includeAll']){_0x1ef3b2[_0x98e1('0x57')]=[{'all':!![]}];}return db[_0x98e1('0x70')][_0x98e1('0x6c')](_0x1ef3b2);})[_0x98e1('0x23')](function(_0x4e5e8f){_0x3d6640[_0x98e1('0x58')]=_0x4e5e8f;return _0x3d6640;});}})[_0x98e1('0x23')](respondWithFilteredResult(_0x551744,_0x1ef3b2))[_0x98e1('0x62')](handleError(_0x551744,null));};exports[_0x98e1('0x72')]=function(_0x19adcc,_0x2c57f8,_0x416a13){return db[_0x98e1('0x44')][_0x98e1('0x5e')]({'where':{'id':_0x19adcc[_0x98e1('0x5f')]['id']}})[_0x98e1('0x23')](handleEntityNotFound(_0x2c57f8,null))[_0x98e1('0x23')](function(_0x2a8c91){if(_0x2a8c91){return _0x2a8c91['removeAnswers'](_0x19adcc[_0x98e1('0x49')][_0x98e1('0x6e')]);}})[_0x98e1('0x23')](respondWithStatusCode(_0x2c57f8,null))['catch'](handleError(_0x2c57f8,null));};exports[_0x98e1('0x67')]=function(_0x4bf956,_0x40ed25){var _0x159567={'name':_0x4bf956['body'][_0x98e1('0x3d')],'key':_0x4bf956[_0x98e1('0x5d')][_0x98e1('0x47')],'email':_0x4bf956[_0x98e1('0x5d')][_0x98e1('0x73')],'ListId':_0x4bf956[_0x98e1('0x5d')][_0x98e1('0x74')],'active':!_['isNil'](_0x4bf956[_0x98e1('0x5d')][_0x98e1('0x75')])?_0x4bf956['body'][_0x98e1('0x75')]:!![],'description':_0x4bf956['body']['description']||null,'Imap':{},'Smtp':{}};if(_[_0x98e1('0x76')](_0x4bf956[_0x98e1('0x5d')][_0x98e1('0x77')])){if(_0x4bf956['body'][_0x98e1('0x78')]){_0x159567[_0x98e1('0x40')][_0x98e1('0x79')]=_0x159567['Smtp'][_0x98e1('0x79')]=_0x4bf956[_0x98e1('0x5d')][_0x98e1('0x7a')];_0x159567[_0x98e1('0x40')][_0x98e1('0x7b')]=_0x159567[_0x98e1('0x42')][_0x98e1('0x7c')]=_0x4bf956[_0x98e1('0x5d')][_0x98e1('0x7d')];}else{_0x159567[_0x98e1('0x40')][_0x98e1('0x7e')]=_0x159567[_0x98e1('0x42')]['authentication']=![];}_0x159567['Imap'][_0x98e1('0x7f')]=_0x4bf956[_0x98e1('0x5d')][_0x98e1('0x40')][_0x98e1('0x7f')];_0x159567[_0x98e1('0x40')]['port']=_0x4bf956['body'][_0x98e1('0x40')][_0x98e1('0x80')];_0x159567[_0x98e1('0x42')][_0x98e1('0x7f')]=_0x4bf956[_0x98e1('0x5d')][_0x98e1('0x42')][_0x98e1('0x7f')];_0x159567[_0x98e1('0x42')]['port']=_0x4bf956[_0x98e1('0x5d')]['Smtp'][_0x98e1('0x80')];}else{_0x159567['Imap'][_0x98e1('0x81')]=_0x159567[_0x98e1('0x42')][_0x98e1('0x81')]=_0x4bf956[_0x98e1('0x5d')][_0x98e1('0x77')];_0x159567[_0x98e1('0x40')][_0x98e1('0x79')]=_0x159567['Smtp'][_0x98e1('0x79')]=_0x4bf956['body']['cuser'];_0x159567[_0x98e1('0x40')][_0x98e1('0x7b')]=_0x159567[_0x98e1('0x42')][_0x98e1('0x7c')]=_0x4bf956['body'][_0x98e1('0x7d')];}return db['MailAccount'][_0x98e1('0x67')](_0x159567,{'include':[{'model':db[_0x98e1('0x41')],'as':_0x98e1('0x42')},{'model':db[_0x98e1('0x59')],'as':_0x98e1('0x40')}]})[_0x98e1('0x23')](function(_0x3f629e){var _0x385abc=_0x4bf956[_0x98e1('0x79')][_0x98e1('0x39')]({'plain':!![]});if(!_0x385abc)throw new Error(_0x98e1('0x82'));if(_0x385abc[_0x98e1('0x83')]==='user'){var _0x346a89=_0x3f629e[_0x98e1('0x39')]({'plain':!![]});return db[_0x98e1('0x84')][_0x98e1('0x5e')]({'where':{'name':'MailAccounts','userProfileId':_0x385abc['userProfileId']},'raw':!![]})['then'](function(_0x32b720){if(_0x32b720&&_0x32b720[_0x98e1('0x85')]===0x0){return db[_0x98e1('0x3b')]['create']({'name':_0x346a89[_0x98e1('0x3d')],'resourceId':_0x346a89['id'],'type':_0x32b720[_0x98e1('0x3d')],'sectionId':_0x32b720['id']},{})['then'](function(){return _0x3f629e;});}else{return _0x3f629e;}})['catch'](function(_0x1c3c99){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x1c3c99);throw _0x1c3c99;});}return _0x3f629e;})[_0x98e1('0x23')](respondWithResult(_0x40ed25,0xc9))['catch'](handleError(_0x40ed25,null));};exports['getImap']=function(_0x805750,_0x32b490,_0x52ecb7){return db[_0x98e1('0x44')][_0x98e1('0x69')]({'where':{'id':_0x805750[_0x98e1('0x5f')]['id']}})[_0x98e1('0x23')](handleEntityNotFound(_0x32b490,null))[_0x98e1('0x23')](function(_0x59b896){if(_0x59b896){return _0x59b896[_0x98e1('0x86')]();}return null;})[_0x98e1('0x23')](respondWithResult(_0x32b490,null))[_0x98e1('0x62')](handleError(_0x32b490,null));};exports[_0x98e1('0x87')]=function(_0x3dcd1e,_0x25d1c5,_0x2e56d1){if(_0x3dcd1e[_0x98e1('0x5d')]['id']){delete _0x3dcd1e[_0x98e1('0x5d')]['id'];}return db[_0x98e1('0x44')][_0x98e1('0x5e')]({'where':{'id':_0x3dcd1e[_0x98e1('0x5f')]['id']}})['then'](handleEntityNotFound(_0x25d1c5,null))['then'](function(_0x46d9fa){if(_0x46d9fa){_0x3dcd1e[_0x98e1('0x5d')][_0x98e1('0x65')]=_0x46d9fa['id'];return db[_0x98e1('0x59')]['create'](_0x3dcd1e[_0x98e1('0x5d')]);}})[_0x98e1('0x23')](respondWithResult(_0x25d1c5,null))[_0x98e1('0x62')](handleError(_0x25d1c5,null));};exports['removeImap']=function(_0x2e6e63,_0x17167f,_0x4b89d8){return db[_0x98e1('0x44')][_0x98e1('0x69')]({'where':{'id':_0x2e6e63[_0x98e1('0x5f')]['id']}})['then'](handleEntityNotFound(_0x17167f,null))[_0x98e1('0x23')](function(_0x330ca3){if(_0x330ca3){return _0x330ca3[_0x98e1('0x88')](null);}return null;})[_0x98e1('0x23')](respondWithStatusCode(_0x17167f,null))[_0x98e1('0x62')](handleError(_0x17167f,null));};exports[_0x98e1('0x89')]=function(_0x1bba6b,_0x27dc50,_0x54bb6a){return db[_0x98e1('0x44')][_0x98e1('0x69')]({'where':{'id':_0x1bba6b[_0x98e1('0x5f')]['id']}})[_0x98e1('0x23')](handleEntityNotFound(_0x27dc50,null))[_0x98e1('0x23')](function(_0x5d48f5){if(_0x5d48f5){return _0x5d48f5['getSmtp']();}return null;})[_0x98e1('0x23')](respondWithResult(_0x27dc50,null))[_0x98e1('0x62')](handleError(_0x27dc50,null));};exports[_0x98e1('0x8a')]=function(_0xad37e8,_0x28109a,_0x101127){if(_0xad37e8[_0x98e1('0x5d')]['id']){delete _0xad37e8[_0x98e1('0x5d')]['id'];}return db[_0x98e1('0x44')][_0x98e1('0x5e')]({'where':{'id':_0xad37e8[_0x98e1('0x5f')]['id']}})[_0x98e1('0x23')](handleEntityNotFound(_0x28109a,null))[_0x98e1('0x23')](function(_0x2db046){if(_0x2db046){_0xad37e8[_0x98e1('0x5d')][_0x98e1('0x65')]=_0x2db046['id'];return db[_0x98e1('0x41')][_0x98e1('0x67')](_0xad37e8['body']);}})[_0x98e1('0x23')](respondWithResult(_0x28109a,null))[_0x98e1('0x62')](handleError(_0x28109a,null));};exports[_0x98e1('0x8b')]=function(_0x419470,_0x4a735e,_0x8dea86){return db['MailAccount']['findOne']({'where':{'id':_0x419470[_0x98e1('0x5f')]['id']}})[_0x98e1('0x23')](handleEntityNotFound(_0x4a735e,null))[_0x98e1('0x23')](function(_0x569aa6){if(_0x569aa6){return _0x569aa6[_0x98e1('0x8c')](null);}return null;})[_0x98e1('0x23')](respondWithStatusCode(_0x4a735e,null))[_0x98e1('0x62')](handleError(_0x4a735e,null));};exports['addInteraction']=function(_0x26d3da,_0x2ac45c,_0x474073){return db[_0x98e1('0x8d')]['find']({'where':{'id':_0x26d3da[_0x98e1('0x5f')]['id']}})[_0x98e1('0x23')](handleEntityNotFound(_0x2ac45c,null))['then'](function(_0x5cc186){if(_0x5cc186){return _0x5cc186['addInteraction'](_0x26d3da[_0x98e1('0x5d')][_0x98e1('0x6e')],_[_0x98e1('0x8e')](_0x26d3da[_0x98e1('0x5d')],[_0x98e1('0x6e'),'id'])||{});}})[_0x98e1('0x23')](respondWithResult(_0x2ac45c,null))[_0x98e1('0x62')](handleError(_0x2ac45c,null));};exports[_0x98e1('0x8f')]=function(_0x39d19d,_0x432b48,_0x39922b){var _0x48a690={'raw':![],'where':{}};var _0x5cb9ea={};var _0x511cad={'count':0x0,'rows':[]};return db['MailAccount'][_0x98e1('0x69')]({'where':{'id':_0x39d19d[_0x98e1('0x5f')]['id']}})[_0x98e1('0x23')](handleEntityNotFound(_0x432b48,null))['then'](function(_0x4c8cb8){if(_0x4c8cb8){_0x5cb9ea['model']=_[_0x98e1('0x5a')](db[_0x98e1('0x8d')][_0x98e1('0x45')]);_0x5cb9ea[_0x98e1('0x49')]=_[_0x98e1('0x5a')](_0x39d19d['query']);_0x5cb9ea[_0x98e1('0x4a')]=_[_0x98e1('0x4b')](_0x5cb9ea['model'],_0x5cb9ea[_0x98e1('0x49')]);_0x48a690[_0x98e1('0x4c')]=_[_0x98e1('0x4b')](_0x5cb9ea['model'],qs[_0x98e1('0x4d')](_0x39d19d[_0x98e1('0x49')][_0x98e1('0x4d')]));_0x48a690['attributes']=_0x48a690['attributes'][_0x98e1('0x6a')]?_0x48a690[_0x98e1('0x4c')]:_0x5cb9ea[_0x98e1('0x4e')];if(!_0x39d19d['query']['hasOwnProperty'](_0x98e1('0x50'))){_0x48a690[_0x98e1('0x32')]=qs[_0x98e1('0x32')](_0x39d19d[_0x98e1('0x49')][_0x98e1('0x32')]);_0x48a690['offset']=qs[_0x98e1('0x30')](_0x39d19d[_0x98e1('0x49')][_0x98e1('0x30')]);}_0x48a690[_0x98e1('0x6b')]=qs[_0x98e1('0x51')](_0x39d19d[_0x98e1('0x49')][_0x98e1('0x51')]);_0x48a690[_0x98e1('0x52')]=qs[_0x98e1('0x4a')](_[_0x98e1('0x53')](_0x39d19d[_0x98e1('0x49')],_0x5cb9ea['filters']));_0x48a690[_0x98e1('0x52')][_0x98e1('0x65')]=_0x4c8cb8['id'];if(_0x39d19d[_0x98e1('0x49')]['filter']){_0x48a690['where']=_[_0x98e1('0x55')](_0x48a690['where'],{'$or':_[_0x98e1('0x48')](_0x48a690[_0x98e1('0x4c')],function(_0x471644){var _0x5aa19b={};_0x5aa19b[_0x471644]={'$like':'%'+_0x39d19d[_0x98e1('0x49')][_0x98e1('0x54')]+'%'};return _0x5aa19b;})});}_0x48a690=_[_0x98e1('0x55')]({},_0x48a690,_0x39d19d[_0x98e1('0x5c')]);return db[_0x98e1('0x8d')]['count']({'where':_0x48a690[_0x98e1('0x52')]})[_0x98e1('0x23')](function(_0x355b4d){_0x511cad['count']=_0x355b4d;if(_0x39d19d[_0x98e1('0x49')][_0x98e1('0x5b')]){_0x48a690[_0x98e1('0x57')]=[{'model':db[_0x98e1('0x90')],'as':_0x98e1('0x91'),'required':![]},{'model':db[_0x98e1('0x92')],'as':_0x98e1('0x93'),'attributes':[_0x98e1('0x3d'),_0x98e1('0x94'),'internal'],'required':![]},{'model':db[_0x98e1('0x95')],'as':_0x98e1('0x96'),'attributes':['id',_0x98e1('0x3d'),_0x98e1('0x97')],'where':_0x39d19d['query']['tag']?{'id':_0x39d19d[_0x98e1('0x49')][_0x98e1('0x98')]}:undefined,'required':_0x39d19d[_0x98e1('0x49')][_0x98e1('0x98')]?!![]:![]}];}return db[_0x98e1('0x8d')][_0x98e1('0x6c')](_0x48a690);})[_0x98e1('0x23')](function(_0x1779b9){_0x511cad[_0x98e1('0x58')]=_0x1779b9;return _0x511cad;});}})[_0x98e1('0x23')](respondWithFilteredResult(_0x432b48,_0x48a690))[_0x98e1('0x62')](handleError(_0x432b48,null));};exports[_0x98e1('0x99')]=function(_0x41062d,_0x4d38c6,_0x17c401){return db[_0x98e1('0x44')]['findOne']({'where':{'id':_0x41062d[_0x98e1('0x5f')]['id']}})[_0x98e1('0x23')](handleEntityNotFound(_0x4d38c6,null))['then'](function(_0x30ef0b){if(_0x30ef0b){return db['sequelize'][_0x98e1('0x9a')](function(_0x2cdcaf){return db['MailApplication'][_0x98e1('0x38')]({'where':{'MailAccountId':_0x41062d[_0x98e1('0x5f')]['id']},'transaction':_0x2cdcaf})[_0x98e1('0x23')](function(_0x33f92f){var _0x3d63ba=_[_0x98e1('0x48')](_0x41062d[_0x98e1('0x5d')],function(_0x4607b7){_0x4607b7[_0x98e1('0x65')]=_0x41062d[_0x98e1('0x5f')]['id'];return _0x4607b7;});return db[_0x98e1('0x9b')]['bulkCreate'](_0x3d63ba,{'transaction':_0x2cdcaf});});})[_0x98e1('0x23')](function(){return db['MailApplication'][_0x98e1('0x9c')]({'where':{'MailAccountId':_0x41062d[_0x98e1('0x5f')]['id']},'order':_0x98e1('0x9d')});});}})[_0x98e1('0x23')](respondWithResult(_0x4d38c6,null))[_0x98e1('0x62')](handleError(_0x4d38c6,null));};exports[_0x98e1('0x9e')]=function(_0xc2f310,_0x478c73,_0x10a2ef){var _0x416580={};var _0x31419d={};var _0x3e190d;var _0x2a9727;return db[_0x98e1('0x44')][_0x98e1('0x69')]({'where':{'id':_0xc2f310[_0x98e1('0x5f')]['id']}})['then'](handleEntityNotFound(_0x478c73,null))[_0x98e1('0x23')](function(_0x2d21e5){if(_0x2d21e5){_0x3e190d=_0x2d21e5;_0x31419d['model']=_[_0x98e1('0x5a')](db['MailApplication'][_0x98e1('0x45')]);_0x31419d[_0x98e1('0x49')]=_[_0x98e1('0x5a')](_0xc2f310['query']);_0x31419d['filters']=_[_0x98e1('0x4b')](_0x31419d['model'],_0x31419d[_0x98e1('0x49')]);_0x416580[_0x98e1('0x4c')]=_[_0x98e1('0x4b')](_0x31419d[_0x98e1('0x4e')],qs['fields'](_0xc2f310[_0x98e1('0x49')][_0x98e1('0x4d')]));_0x416580[_0x98e1('0x4c')]=_0x416580[_0x98e1('0x4c')][_0x98e1('0x6a')]?_0x416580[_0x98e1('0x4c')]:_0x31419d[_0x98e1('0x4e')];_0x416580['order']=qs[_0x98e1('0x51')](_0xc2f310[_0x98e1('0x49')]['sort']);_0x416580[_0x98e1('0x52')]=qs[_0x98e1('0x4a')](_[_0x98e1('0x53')](_0xc2f310[_0x98e1('0x49')],_0x31419d['filters']));if(_0xc2f310['query']['filter']){_0x416580['where']=_[_0x98e1('0x55')](_0x416580[_0x98e1('0x52')],{'$or':_[_0x98e1('0x48')](_0x416580[_0x98e1('0x4c')],function(_0x5a8a5a){var _0x188b03={};_0x188b03[_0x5a8a5a]={'$like':'%'+_0xc2f310[_0x98e1('0x49')]['filter']+'%'};return _0x188b03;})});}_0x416580=_[_0x98e1('0x55')]({},_0x416580,_0xc2f310['options']);return _0x3e190d[_0x98e1('0x9e')](_0x416580);}})[_0x98e1('0x23')](function(_0x623928){if(_0x623928){_0x2a9727=_0x623928[_0x98e1('0x6a')];if(!_0xc2f310[_0x98e1('0x49')][_0x98e1('0x4f')](_0x98e1('0x50'))){_0x416580[_0x98e1('0x32')]=qs[_0x98e1('0x32')](_0xc2f310[_0x98e1('0x49')][_0x98e1('0x32')]);_0x416580[_0x98e1('0x30')]=qs[_0x98e1('0x30')](_0xc2f310['query'][_0x98e1('0x30')]);}return _0x3e190d[_0x98e1('0x9e')](_0x416580);}})[_0x98e1('0x23')](function(_0x146729){if(_0x146729){return _0x146729?{'count':_0x2a9727,'rows':_0x146729}:null;}})['then'](respondWithResult(_0x478c73,null))[_0x98e1('0x62')](handleError(_0x478c73,null));};exports[_0x98e1('0x9f')]=function(_0xd3435,_0x320f3d,_0x3c8298){var _0x648db6={'raw':!![],'where':{}};var _0x3b1bc7={};var _0xafe2={'count':0x0,'rows':[]};return db[_0x98e1('0x44')][_0x98e1('0x69')]({'where':{'id':_0xd3435[_0x98e1('0x5f')]['id']}})[_0x98e1('0x23')](handleEntityNotFound(_0x320f3d,null))['then'](function(_0x4e3fab){if(_0x4e3fab){_0x3b1bc7[_0x98e1('0x4e')]=_['keys'](db[_0x98e1('0xa0')]['rawAttributes']);_0x3b1bc7['query']=_[_0x98e1('0x5a')](_0xd3435[_0x98e1('0x49')]);_0x3b1bc7[_0x98e1('0x4a')]=_[_0x98e1('0x4b')](_0x3b1bc7[_0x98e1('0x4e')],_0x3b1bc7['query']);_0x648db6[_0x98e1('0x4c')]=_[_0x98e1('0x4b')](_0x3b1bc7[_0x98e1('0x4e')],qs['fields'](_0xd3435[_0x98e1('0x49')]['fields']));_0x648db6[_0x98e1('0x4c')]=_0x648db6[_0x98e1('0x4c')][_0x98e1('0x6a')]?_0x648db6[_0x98e1('0x4c')]:_0x3b1bc7[_0x98e1('0x4e')];if(!_0xd3435['query'][_0x98e1('0x4f')](_0x98e1('0x50'))){_0x648db6['limit']=qs['limit'](_0xd3435[_0x98e1('0x49')][_0x98e1('0x32')]);_0x648db6['offset']=qs[_0x98e1('0x30')](_0xd3435[_0x98e1('0x49')][_0x98e1('0x30')]);}_0x648db6[_0x98e1('0x6b')]=qs[_0x98e1('0x51')](_0xd3435['query'][_0x98e1('0x51')]);_0x648db6[_0x98e1('0x52')]=qs[_0x98e1('0x4a')](_[_0x98e1('0x53')](_0xd3435[_0x98e1('0x49')],_0x3b1bc7[_0x98e1('0x4a')]));_0x648db6['where'][_0x98e1('0x65')]=_0x4e3fab['id'];if(_0xd3435['query'][_0x98e1('0x54')]){_0x648db6[_0x98e1('0x52')]=_[_0x98e1('0x55')](_0x648db6[_0x98e1('0x52')],{'$or':_[_0x98e1('0x48')](_0x648db6[_0x98e1('0x4c')],function(_0x5ac96c){var _0x1a0df4={};_0x1a0df4[_0x5ac96c]={'$like':'%'+_0xd3435[_0x98e1('0x49')][_0x98e1('0x54')]+'%'};return _0x1a0df4;})});}if(_0xd3435['query'][_0x98e1('0xa1')]){var _0x105299=_0xd3435[_0x98e1('0x49')][_0x98e1('0xa1')][_0x98e1('0xa2')](',');var _0x457958={};_0x457958[_0x105299[0x0]]={'$gte':moment(_0x105299[0x1])[_0x98e1('0xa3')](_0x98e1('0xa4'))};_0x648db6[_0x98e1('0x52')]=_[_0x98e1('0x55')](_0x648db6[_0x98e1('0x52')],_0x457958);}_0x648db6=_[_0x98e1('0x55')]({},_0x648db6,_0xd3435[_0x98e1('0x5c')]);return db[_0x98e1('0xa0')][_0x98e1('0x33')]({'where':_0x648db6[_0x98e1('0x52')]})[_0x98e1('0x23')](function(_0x24d420){_0xafe2[_0x98e1('0x33')]=_0x24d420;if(_0xd3435[_0x98e1('0x49')]['includeAll']){_0x648db6['include']=[{'all':!![]}];}return db[_0x98e1('0xa0')][_0x98e1('0x6c')](_0x648db6);})[_0x98e1('0x23')](function(_0x26c72b){if(_0xd3435[_0x98e1('0x49')]['inlineCss']===_0x98e1('0xa5')){for(var _0xd7501d=0x0;_0xd7501d<_0x26c72b[_0x98e1('0x6a')];_0xd7501d++){_0x26c72b[_0xd7501d][_0x98e1('0x5d')]=juice(_0x26c72b[_0xd7501d][_0x98e1('0x5d')]);}}_0xafe2[_0x98e1('0x58')]=_0x26c72b;return _0xafe2;});}})['then'](respondWithFilteredResult(_0x320f3d,_0x648db6))[_0x98e1('0x62')](handleError(_0x320f3d,null));};exports[_0x98e1('0x3e')]=function(_0x3764cd,_0xc6fa5a,_0x4c6ff6){var _0xf29aba,_0xb8d77d={},_0x1034e1;if(_0x3764cd[_0x98e1('0x5d')]['to']){_0x1034e1=_0x3764cd[_0x98e1('0x5d')]['to'][_0x98e1('0xa2')](',')[0x0];}return db[_0x98e1('0x44')][_0x98e1('0x5e')]({'where':{'id':_0x3764cd['params']['id']},'include':[{'model':db[_0x98e1('0xa6')],'as':'List','include':[{'model':db[_0x98e1('0x90')],'as':_0x98e1('0xa7'),'where':{'email':_0x1034e1},'limit':0x1,'order':[[_0x98e1('0xa8'),_0x98e1('0xa9')]]}]},{'model':db[_0x98e1('0x41')],'as':_0x98e1('0x42'),'raw':!![]}]})['then'](handleEntityNotFound(_0xc6fa5a,null))[_0x98e1('0x23')](function(_0x2cdef9){if(_0x2cdef9){_0xf29aba=_0x2cdef9;if(_0x2cdef9[_0x98e1('0x42')]){if(_['isNil'](_0x3764cd[_0x98e1('0x5d')]['from'])){_0x3764cd['body']['from']=util[_0x98e1('0xa3')](_0x98e1('0xaa'),_0x2cdef9['name'],_0x2cdef9[_0x98e1('0x73')]||_0x2cdef9[_0x98e1('0x42')][_0x98e1('0x79')]);}if(_0x3764cd['body']['attachments']&&_0x3764cd['body']['attachments'][_0x98e1('0x6a')]){for(var _0x56d578=0x0;_0x56d578<_0x3764cd[_0x98e1('0x5d')]['attachments']['length'];_0x56d578+=0x1){_0x3764cd[_0x98e1('0x5d')][_0x98e1('0xab')][_0x56d578]={'filename':_0x3764cd[_0x98e1('0x5d')]['attachments'][_0x56d578][_0x98e1('0x3d')],'path':path[_0x98e1('0xac')](config[_0x98e1('0xad')],_0x98e1('0xae'),_0x3764cd[_0x98e1('0x5d')][_0x98e1('0xab')][_0x56d578][_0x98e1('0xaf')])};}}var _0x52b88f={'tls':{'rejectUnauthorized':![]}};if(_[_0x98e1('0x76')](_0x2cdef9[_0x98e1('0x42')]['service'])){if(_0x2cdef9['Smtp'][_0x98e1('0x7e')]){_0x52b88f['auth']={'user':_0x2cdef9[_0x98e1('0x42')][_0x98e1('0x79')],'pass':_0x2cdef9['Smtp'][_0x98e1('0x7c')]};}_0x52b88f[_0x98e1('0x7f')]=_0x2cdef9[_0x98e1('0x42')][_0x98e1('0x7f')];_0x52b88f[_0x98e1('0x80')]=_0x2cdef9[_0x98e1('0x42')]['port'];_0x52b88f[_0x98e1('0xb0')]=_0x2cdef9[_0x98e1('0x42')]['secure'];}else{_0x52b88f[_0x98e1('0x81')]=_0x2cdef9['Smtp'][_0x98e1('0x81')];_0x52b88f['auth']={'user':_0x2cdef9[_0x98e1('0x42')][_0x98e1('0x79')],'pass':_0x2cdef9['Smtp'][_0x98e1('0x7c')]};}return respondWithRpcPromise(_0x98e1('0xb1'),_0x98e1('0xb2'),{'account':_0x52b88f,'message':_0x3764cd[_0x98e1('0x5d')]});}else{throw new Error(_0x98e1('0xb3'));}}})[_0x98e1('0x23')](function(_0x449776){if(_0x449776){_0xb8d77d=_0x449776;if(_0xf29aba[_0x98e1('0xb4')]){if(_0xf29aba[_0x98e1('0xb4')][_0x98e1('0xa7')][_0x98e1('0x6a')]){return _0xf29aba[_0x98e1('0xb4')][_0x98e1('0xa7')][0x0];}else{return db['CmContact'][_0x98e1('0x67')](_[_0x98e1('0x1d')](_0x3764cd[_0x98e1('0x5d')],{'firstName':_0x3764cd['body']['to'],'email':_0x3764cd[_0x98e1('0x5d')]['to'],'phone':_0x3764cd['body']['to'],'ListId':_0xf29aba[_0x98e1('0x74')]}));}}else{throw new Error(_0x98e1('0xb3'));}}})[_0x98e1('0x23')](function(_0x7c7e6b){if(_0x7c7e6b){var _0x278093={'UserId':_0x3764cd[_0x98e1('0x79')]['id'],'ContactId':_0x7c7e6b['id'],'MailAccountId':_0xf29aba['id'],'inReplyTo':_0xb8d77d[_0x98e1('0xb5')],'to':_0x3764cd[_0x98e1('0x5d')][_0x98e1('0xb6')],'cc':_0x3764cd['body']['cc'],'subject':_0x3764cd['body'][_0x98e1('0xb7')],'attach':_0x3764cd['body'][_0x98e1('0xb8')],'firstMsgDirection':_0x98e1('0xb9'),'lastMsgAt':moment()[_0x98e1('0xa3')]('YYYY-MM-DD\x20HH:mm:ss'),'lastMsgDirection':_0x98e1('0xb9'),'Messages':[_[_0x98e1('0x55')](_0x3764cd[_0x98e1('0x5d')],{'messageId':_0xb8d77d[_0x98e1('0xb5')],'sentAt':moment()[_0x98e1('0xa3')](_0x98e1('0xa4')),'read':!![],'MailAccountId':_0xf29aba['id'],'UserId':_0x3764cd[_0x98e1('0x79')]['id'],'ContactId':_0x7c7e6b['id']})]};if(_0x3764cd['body'][_0x98e1('0xba')]){_0x278093=_[_0x98e1('0x55')](_0x278093,_0x3764cd[_0x98e1('0x5d')][_0x98e1('0xba')]);}return db[_0x98e1('0x8d')][_0x98e1('0x67')](_0x278093,{'include':[{'model':db[_0x98e1('0xa0')],'as':_0x98e1('0xbb')}]});}})['then'](respondWithResult(_0xc6fa5a,null))[_0x98e1('0x62')](handleError(_0xc6fa5a,null));};exports['verifySmtp']=function(_0x5772e0,_0x238f9a,_0x2a2233){return db[_0x98e1('0x44')][_0x98e1('0x5e')]({'where':{'id':_0x5772e0[_0x98e1('0x5f')]['id']},'include':[{'model':db['MailServerOut'],'as':_0x98e1('0x42'),'raw':!![]}]})[_0x98e1('0x23')](handleEntityNotFound(_0x238f9a,null))[_0x98e1('0x23')](function(_0xd97d0a){if(_0xd97d0a&&_0xd97d0a[_0x98e1('0x42')]){var _0x5b8740={'id':_0xd97d0a['id'],'tls':{'rejectUnauthorized':![]}};if(_0xd97d0a[_0x98e1('0x42')]['service']){_0x5b8740[_0x98e1('0x81')]=_0xd97d0a[_0x98e1('0x42')]['service'];}else{_0x5b8740[_0x98e1('0x7f')]=_0xd97d0a['Smtp']['host'];_0x5b8740['port']=_0xd97d0a[_0x98e1('0x42')][_0x98e1('0x80')];_0x5b8740[_0x98e1('0xb0')]=_0xd97d0a[_0x98e1('0x42')]['secure'];}if(_0xd97d0a[_0x98e1('0x42')]['authentication']){_0x5b8740['auth']={'user':_0xd97d0a['Smtp']['user'],'pass':_0xd97d0a[_0x98e1('0x42')][_0x98e1('0x7c')]};}return respondWithRpcPromise(_0x98e1('0xbc'),_0x98e1('0xbd'),{'account':_0x5b8740});}})[_0x98e1('0x23')](respondWithResult(_0x238f9a,null))[_0x98e1('0x62')](handleError(_0x238f9a,null));};exports[_0x98e1('0x38')]=function(_0xa181f4,_0x1bce25){return db[_0x98e1('0x44')][_0x98e1('0x5e')]({'where':{'id':_0xa181f4[_0x98e1('0x5f')]['id']}})['then'](handleEntityNotFound(_0x1bce25,null))[_0x98e1('0x23')](function(_0x5a3aee){if(_0x5a3aee&&_0x5a3aee[_0x98e1('0x81')]){throw new db[(_0x98e1('0xbe'))][(_0x98e1('0xbf'))](_0x98e1('0xc0'));}return _0x5a3aee;})['then'](removeEntity(_0x1bce25,null))['catch'](handleError(_0x1bce25,null));};exports[_0x98e1('0xc1')]=function(_0x349960,_0x4aae63,_0x2d0c2a){return db[_0x98e1('0x44')][_0x98e1('0x5e')]({'where':{'id':_0x349960[_0x98e1('0x5f')]['id']}})[_0x98e1('0x23')](handleEntityNotFound(_0x4aae63,null))[_0x98e1('0x23')](function(_0x139e26){if(_0x139e26){return _0x139e26[_0x98e1('0xc1')](_0x349960[_0x98e1('0x5d')][_0x98e1('0x6e')],_[_0x98e1('0x8e')](_0x349960[_0x98e1('0x5d')],[_0x98e1('0x6e'),'id'])||{})[_0x98e1('0xc2')](function(_0x25c558){for(var _0x2ff0d8=0x0;_0x2ff0d8<_0x349960[_0x98e1('0x5d')]['ids'][_0x98e1('0x6a')];_0x2ff0d8+=0x1){socket[_0x98e1('0xc3')](_0x98e1('0xc4'),{'UserId':Number(_0x349960['body'][_0x98e1('0x6e')][_0x2ff0d8]),'MailAccountId':Number(_0x349960[_0x98e1('0x5f')]['id'])});}return _0x25c558;});}})[_0x98e1('0x23')](respondWithResult(_0x4aae63,null))['catch'](handleError(_0x4aae63,null));};exports[_0x98e1('0xc5')]=function(_0x39fb98,_0x1d6dbb,_0xf4bb2a){return db[_0x98e1('0x44')][_0x98e1('0x5e')]({'where':{'id':_0x39fb98[_0x98e1('0x5f')]['id']}})['then'](handleEntityNotFound(_0x1d6dbb,null))['then'](function(_0x20ed41){if(_0x20ed41){return _0x20ed41[_0x98e1('0xc5')](_0x39fb98['query']['ids'])[_0x98e1('0x23')](function(){if(_[_0x98e1('0xc6')](_0x39fb98[_0x98e1('0x49')][_0x98e1('0x6e')])){for(var _0x3f04f5=0x0;_0x3f04f5<_0x39fb98[_0x98e1('0x49')][_0x98e1('0x6e')][_0x98e1('0x6a')];_0x3f04f5+=0x1){socket['emit'](_0x98e1('0xc7'),{'UserId':Number(_0x39fb98['query'][_0x98e1('0x6e')][_0x3f04f5]),'MailAccountId':Number(_0x39fb98[_0x98e1('0x5f')]['id'])});}}else{socket[_0x98e1('0xc3')]('userMailAccount:remove',{'UserId':Number(_0x39fb98['query'][_0x98e1('0x6e')]),'MailAccountId':Number(_0x39fb98['params']['id'])});}});}})[_0x98e1('0x23')](respondWithStatusCode(_0x1d6dbb,null))[_0x98e1('0x62')](handleError(_0x1d6dbb,null));};exports['getAgents']=function(_0x33e03e,_0x33ebc3,_0x3b4d9f){var _0x26a13c={};var _0x39aa8b={};var _0x84a218;var _0x1f4048;return db[_0x98e1('0x44')][_0x98e1('0x69')]({'where':{'id':_0x33e03e[_0x98e1('0x5f')]['id']}})[_0x98e1('0x23')](handleEntityNotFound(_0x33ebc3,null))[_0x98e1('0x23')](function(_0xaf3ea4){if(_0xaf3ea4){_0x84a218=_0xaf3ea4;_0x39aa8b[_0x98e1('0x4e')]=_['keys'](db[_0x98e1('0x92')][_0x98e1('0x45')]);_0x39aa8b[_0x98e1('0x49')]=_[_0x98e1('0x5a')](_0x33e03e[_0x98e1('0x49')]);_0x39aa8b[_0x98e1('0x4a')]=_[_0x98e1('0x4b')](_0x39aa8b['model'],_0x39aa8b[_0x98e1('0x49')]);_0x26a13c[_0x98e1('0x4c')]=_[_0x98e1('0x4b')](_0x39aa8b['model'],qs[_0x98e1('0x4d')](_0x33e03e[_0x98e1('0x49')][_0x98e1('0x4d')]));_0x26a13c[_0x98e1('0x4c')]=_0x26a13c['attributes'][_0x98e1('0x6a')]?_0x26a13c[_0x98e1('0x4c')]:_0x39aa8b[_0x98e1('0x4e')];_0x26a13c[_0x98e1('0x6b')]=qs[_0x98e1('0x51')](_0x33e03e['query'][_0x98e1('0x51')]);_0x26a13c[_0x98e1('0x52')]=qs['filters'](_[_0x98e1('0x53')](_0x33e03e[_0x98e1('0x49')],_0x39aa8b[_0x98e1('0x4a')]));if(_0x33e03e['query'][_0x98e1('0x54')]){_0x26a13c[_0x98e1('0x52')]=_[_0x98e1('0x55')](_0x26a13c[_0x98e1('0x52')],{'$or':_[_0x98e1('0x48')](_0x26a13c[_0x98e1('0x4c')],function(_0x333b5d){var _0x55fed4={};_0x55fed4[_0x333b5d]={'$like':'%'+_0x33e03e['query'][_0x98e1('0x54')]+'%'};return _0x55fed4;})});}_0x26a13c=_[_0x98e1('0x55')]({},_0x26a13c,_0x33e03e[_0x98e1('0x5c')]);return _0x84a218[_0x98e1('0xc8')](_0x26a13c);}})[_0x98e1('0x23')](function(_0x415731){if(_0x415731){_0x1f4048=_0x415731[_0x98e1('0x6a')];if(!_0x33e03e[_0x98e1('0x49')][_0x98e1('0x4f')](_0x98e1('0x50'))){_0x26a13c[_0x98e1('0x32')]=qs[_0x98e1('0x32')](_0x33e03e[_0x98e1('0x49')][_0x98e1('0x32')]);_0x26a13c['offset']=qs[_0x98e1('0x30')](_0x33e03e[_0x98e1('0x49')]['offset']);}return _0x84a218[_0x98e1('0xc8')](_0x26a13c);}})[_0x98e1('0x23')](function(_0x2ee003){if(_0x2ee003){return _0x2ee003?{'count':_0x1f4048,'rows':_0x2ee003}:null;}})[_0x98e1('0x23')](respondWithResult(_0x33ebc3,null))[_0x98e1('0x62')](handleError(_0x33ebc3,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9219=['emit','hasOwnProperty','hook','exports','save'];(function(_0x41dc49,_0x13286d){var _0x39e8c5=function(_0x52b8a6){while(--_0x52b8a6){_0x41dc49['push'](_0x41dc49['shift']());}};_0x39e8c5(++_0x13286d);}(_0x9219,0x19e));var _0x9921=function(_0x146e7c,_0x2ea85c){_0x146e7c=_0x146e7c-0x0;var _0x448b49=_0x9219[_0x146e7c];return _0x448b49;};'use strict';var EventEmitter=require('events');var MailAccount=require('../../mysqldb')['db']['MailAccount'];var MailAccountEvents=new EventEmitter();MailAccountEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x9921('0x0'),'afterUpdate':'update','afterDestroy':'remove'};function emitEvent(_0x30647c){return function(_0x4851d0,_0x4b2373,_0x4551fa){MailAccountEvents[_0x9921('0x1')](_0x30647c+':'+_0x4851d0['id'],_0x4851d0);MailAccountEvents['emit'](_0x30647c,_0x4851d0);_0x4551fa(null);};}for(var e in events){if(events[_0x9921('0x2')](e)){var event=events[e];MailAccount[_0x9921('0x3')](e,emitEvent(event));}}module[_0x9921('0x4')]=MailAccountEvents;
\ No newline at end of file
+var _0x00b7=['update','remove','emit','exports','events','MailAccount','setMaxListeners','save'];(function(_0x399e80,_0x5826ad){var _0x5bb327=function(_0xf57587){while(--_0xf57587){_0x399e80['push'](_0x399e80['shift']());}};_0x5bb327(++_0x5826ad);}(_0x00b7,0x13c));var _0x700b=function(_0x561953,_0x5c6448){_0x561953=_0x561953-0x0;var _0x1f3819=_0x00b7[_0x561953];return _0x1f3819;};'use strict';var EventEmitter=require(_0x700b('0x0'));var MailAccount=require('../../mysqldb')['db'][_0x700b('0x1')];var MailAccountEvents=new EventEmitter();MailAccountEvents[_0x700b('0x2')](0x0);var events={'afterCreate':_0x700b('0x3'),'afterUpdate':_0x700b('0x4'),'afterDestroy':_0x700b('0x5')};function emitEvent(_0x1c838b){return function(_0x5b8682,_0x160201,_0x56ba3a){MailAccountEvents['emit'](_0x1c838b+':'+_0x5b8682['id'],_0x5b8682);MailAccountEvents[_0x700b('0x6')](_0x1c838b,_0x5b8682);_0x56ba3a(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];MailAccount['hook'](e,emitEvent(event));}}module[_0x700b('0x7')]=MailAccountEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x59a2=['exports','define','lodash','moment','bluebird','request-promise','path','rimraf','../../config/environment','./mailAccount.attributes'];(function(_0x18c813,_0x27affe){var _0x3a54f3=function(_0x1db2e2){while(--_0x1db2e2){_0x18c813['push'](_0x18c813['shift']());}};_0x3a54f3(++_0x27affe);}(_0x59a2,0x14c));var _0x259a=function(_0x5c6e20,_0x32dbee){_0x5c6e20=_0x5c6e20-0x0;var _0x1c3bea=_0x59a2[_0x5c6e20];return _0x1c3bea;};'use strict';var _=require(_0x259a('0x0'));var util=require('util');var logger=require('../../config/logger')('api');var moment=require(_0x259a('0x1'));var BPromise=require(_0x259a('0x2'));var rp=require(_0x259a('0x3'));var fs=require('fs');var path=require(_0x259a('0x4'));var rimraf=require(_0x259a('0x5'));var config=require(_0x259a('0x6'));var attributes=require(_0x259a('0x7'));module[_0x259a('0x8')]=function(_0x47b281,_0x1d7248){return _0x47b281[_0x259a('0x9')]('MailAccount',attributes,{'tableName':'mail_accounts','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xf250=['moment','bluebird','../../config/environment','./mailAccount.attributes','exports','define','mail_accounts','lodash','util','../../config/logger','api'];(function(_0x2c0edc,_0x13162e){var _0x3f00fc=function(_0x1a37cf){while(--_0x1a37cf){_0x2c0edc['push'](_0x2c0edc['shift']());}};_0x3f00fc(++_0x13162e);}(_0xf250,0xc2));var _0x0f25=function(_0x422fa5,_0x4fc338){_0x422fa5=_0x422fa5-0x0;var _0x132d59=_0xf250[_0x422fa5];return _0x132d59;};'use strict';var _=require(_0x0f25('0x0'));var util=require(_0x0f25('0x1'));var logger=require(_0x0f25('0x2'))(_0x0f25('0x3'));var moment=require(_0x0f25('0x4'));var BPromise=require(_0x0f25('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0x0f25('0x6'));var attributes=require(_0x0f25('0x7'));module[_0x0f25('0x8')]=function(_0x2e3b93,_0x86dcb1){return _0x2e3b93[_0x0f25('0x9')]('MailAccount',attributes,{'tableName':_0x0f25('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x787b=['bcc','originChannel','Email','Attachment','Attachments','User','name','UserId','unshift','agent','Start','startRouting','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','defaults','localhost','socket.io-emitter','redis','./mailAccount.socket','register','request','then','info','MailAccount,\x20%s,\x20%s','request\x20sent','debug','MailAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','GetMailAccount','MailAccount','findAll','options','limit','include','model','attributes','map','ShowMailAccount','find','where','NotifyMailAccount','mail','difference','keys','CmContact','rawAttributes','createdAt','updatedAt','CompanyId','body','from','from\x20is\x20mandatory','isNil','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','List','DESC','Applications','MailServerOut','Smtp','get','account','omit','applications','list','orderBy','priority','asc','push','length','close','autoclose','*,*,*,*','Contacts','ListId','create','contact','messageId','subject','YYYY-MM-DD\x20HH:mm:ss','MailInteraction','MailMessage','Contact\x20not\x20found','spread','update','attach','format','interaction','created','attachments','originCc'];(function(_0x103e89,_0x35ef5f){var _0x595f19=function(_0x2c7ca6){while(--_0x2c7ca6){_0x103e89['push'](_0x103e89['shift']());}};_0x595f19(++_0x35ef5f);}(_0x787b,0x153));var _0xb787=function(_0x2f48cd,_0x46a75a){_0x2f48cd=_0x2f48cd-0x0;var _0x193ae2=_0x787b[_0x2f48cd];return _0x193ae2;};'use strict';var _=require(_0xb787('0x0'));var util=require('util');var moment=require(_0xb787('0x1'));var BPromise=require(_0xb787('0x2'));var rs=require(_0xb787('0x3'));var fs=require('fs');var Redis=require(_0xb787('0x4'));var db=require(_0xb787('0x5'))['db'];var utils=require(_0xb787('0x6'));var logger=require(_0xb787('0x7'))(_0xb787('0x8'));var config=require(_0xb787('0x9'));var jayson=require('jayson/promise');var client=jayson[_0xb787('0xa')][_0xb787('0xb')]({'port':0x232c});config['redis']=_[_0xb787('0xc')](config['redis'],{'host':_0xb787('0xd'),'port':0x18eb});var socket=require(_0xb787('0xe'))(new Redis(config[_0xb787('0xf')]));require(_0xb787('0x10'))[_0xb787('0x11')](socket);function respondWithRpcPromise(_0x4cbf74,_0x80ee22,_0x1b03e5){return new BPromise(function(_0x348704,_0xfbb1eb){return client[_0xb787('0x12')](_0x4cbf74,_0x1b03e5)[_0xb787('0x13')](function(_0x41b54c){logger[_0xb787('0x14')](_0xb787('0x15'),_0x80ee22,_0xb787('0x16'));logger[_0xb787('0x17')](_0xb787('0x18'),_0x80ee22,_0xb787('0x16'),JSON[_0xb787('0x19')](_0x41b54c));if(_0x41b54c[_0xb787('0x1a')]){if(_0x41b54c[_0xb787('0x1a')][_0xb787('0x1b')]===0x1f4){logger[_0xb787('0x1a')]('MailAccount,\x20%s,\x20%s',_0x80ee22,_0x41b54c[_0xb787('0x1a')][_0xb787('0x1c')]);return _0xfbb1eb(_0x41b54c[_0xb787('0x1a')][_0xb787('0x1c')]);}logger['error'](_0xb787('0x15'),_0x80ee22,_0x41b54c[_0xb787('0x1a')][_0xb787('0x1c')]);return _0x348704(_0x41b54c[_0xb787('0x1a')][_0xb787('0x1c')]);}else{logger['info'](_0xb787('0x15'),_0x80ee22,'request\x20sent');_0x348704(_0x41b54c[_0xb787('0x1d')][_0xb787('0x1c')]);}})[_0xb787('0x1e')](function(_0x1b808d){logger[_0xb787('0x1a')](_0xb787('0x15'),_0x80ee22,_0x1b808d);_0xfbb1eb(_0x1b808d);});});}exports[_0xb787('0x1f')]=function(_0x3f405c){var _0x548a0f=this;return new Promise(function(_0x69c266,_0x2fbdec){return db[_0xb787('0x20')][_0xb787('0x21')]({'raw':_0x3f405c[_0xb787('0x22')]?_0x3f405c[_0xb787('0x22')]['raw']===undefined?!![]:![]:!![],'where':_0x3f405c[_0xb787('0x22')]?_0x3f405c['options']['where']||null:null,'attributes':_0x3f405c['options']?_0x3f405c[_0xb787('0x22')]['attributes']||null:null,'limit':_0x3f405c[_0xb787('0x22')]?_0x3f405c[_0xb787('0x22')][_0xb787('0x23')]||null:null,'include':_0x3f405c[_0xb787('0x22')]?_0x3f405c[_0xb787('0x22')][_0xb787('0x24')]?_['map'](_0x3f405c['options'][_0xb787('0x24')],function(_0x4bde39){return{'model':db[_0x4bde39[_0xb787('0x25')]],'as':_0x4bde39['as'],'attributes':_0x4bde39[_0xb787('0x26')],'include':_0x4bde39[_0xb787('0x24')]?_[_0xb787('0x27')](_0x4bde39['include'],function(_0x474b38){return{'model':db[_0x474b38[_0xb787('0x25')]],'as':_0x474b38['as'],'attributes':_0x474b38[_0xb787('0x26')],'include':_0x474b38['include']?_[_0xb787('0x27')](_0x474b38[_0xb787('0x24')],function(_0x46db60){return{'model':db[_0x46db60[_0xb787('0x25')]],'as':_0x46db60['as'],'attributes':_0x46db60[_0xb787('0x26')]};}):[]};}):[]};}):[]:[]})[_0xb787('0x13')](function(_0x4e538a){logger['info']('GetMailAccount',_0x3f405c);logger[_0xb787('0x17')](_0xb787('0x1f'),_0x3f405c,JSON['stringify'](_0x4e538a));_0x69c266(_0x4e538a);})[_0xb787('0x1e')](function(_0x21139d){logger[_0xb787('0x1a')](_0xb787('0x1f'),_0x21139d[_0xb787('0x1c')],_0x3f405c);_0x2fbdec(_0x548a0f[_0xb787('0x1a')](0x1f4,_0x21139d['message']));});});};exports[_0xb787('0x28')]=function(_0x336d08){var _0x13e141=this;return new Promise(function(_0x2a2ce6,_0x4e58d3){return db[_0xb787('0x20')][_0xb787('0x29')]({'raw':_0x336d08[_0xb787('0x22')]?_0x336d08[_0xb787('0x22')]['raw']===undefined?!![]:![]:!![],'where':_0x336d08[_0xb787('0x22')]?_0x336d08[_0xb787('0x22')][_0xb787('0x2a')]||null:null,'attributes':_0x336d08[_0xb787('0x22')]?_0x336d08[_0xb787('0x22')][_0xb787('0x26')]||null:null,'include':_0x336d08['options']?_0x336d08[_0xb787('0x22')][_0xb787('0x24')]?_[_0xb787('0x27')](_0x336d08[_0xb787('0x22')][_0xb787('0x24')],function(_0xf77107){return{'model':db[_0xf77107[_0xb787('0x25')]],'as':_0xf77107['as'],'attributes':_0xf77107[_0xb787('0x26')],'include':_0xf77107[_0xb787('0x24')]?_[_0xb787('0x27')](_0xf77107[_0xb787('0x24')],function(_0xbb1241){return{'model':db[_0xbb1241[_0xb787('0x25')]],'as':_0xbb1241['as'],'attributes':_0xbb1241[_0xb787('0x26')],'include':_0xbb1241[_0xb787('0x24')]?_[_0xb787('0x27')](_0xbb1241['include'],function(_0x5b4a35){return{'model':db[_0x5b4a35['model']],'as':_0x5b4a35['as'],'attributes':_0x5b4a35[_0xb787('0x26')]};}):[]};}):[]};}):[]:[]})[_0xb787('0x13')](function(_0x1c34ee){logger[_0xb787('0x14')]('ShowMailAccount',_0x336d08);logger[_0xb787('0x17')]('ShowMailAccount',_0x336d08,JSON[_0xb787('0x19')](_0x1c34ee));_0x2a2ce6(_0x1c34ee);})[_0xb787('0x1e')](function(_0x1c5cb9){logger[_0xb787('0x1a')](_0xb787('0x28'),_0x1c5cb9[_0xb787('0x1c')],_0x336d08);_0x4e58d3(_0x13e141['error'](0x1f4,_0x1c5cb9['message']));});});};exports[_0xb787('0x2b')]=function(_0x3d9f6a){var _0x57df09=this;return new Promise(function(_0x3be422,_0x38fb7e){var _0x127123={'body':_0x3d9f6a['body'],'channel':_0xb787('0x2c')};var _0x2ac9e0=_[_0xb787('0x2d')](_[_0xb787('0x2e')](db[_0xb787('0x2f')][_0xb787('0x30')]),[_0xb787('0x31'),_0xb787('0x32'),_0xb787('0x33'),'ListId']);var _0x52a8a7=![];if(_0x3d9f6a[_0xb787('0x34')]['id']){delete _0x3d9f6a[_0xb787('0x34')]['id'];}if(_['isNil'](_0x3d9f6a[_0xb787('0x34')][_0xb787('0x35')])){return _0x38fb7e(_0x57df09[_0xb787('0x1a')](0x1f4,_0xb787('0x36')));}if(_[_0xb787('0x37')](_0x3d9f6a[_0xb787('0x34')][_0xb787('0x34')])||_0x3d9f6a[_0xb787('0x34')][_0xb787('0x34')]===''){return _0x38fb7e(_0x57df09['error'](0x1f4,_0xb787('0x38')));}if(_[_0xb787('0x37')](_0x3d9f6a['body'][_0xb787('0x39')])){return _0x38fb7e(_0x57df09[_0xb787('0x1a')](0x1f4,_0xb787('0x3a')+_0x2ac9e0));}if(!_[_0xb787('0x3b')](_0x2ac9e0,_0x3d9f6a[_0xb787('0x34')][_0xb787('0x39')])){return _0x38fb7e(_0x57df09[_0xb787('0x1a')](0x1f4,_0xb787('0x3c')+_0x2ac9e0));}var _0x3ff7d9={};_0x3ff7d9[_0x3d9f6a['body'][_0xb787('0x39')]]=_0x3d9f6a[_0xb787('0x34')][_0xb787('0x35')];return db['MailAccount'][_0xb787('0x29')]({'where':{'id':_0x3d9f6a['account']['id']},'include':[{'model':db['CmList'],'as':_0xb787('0x3d'),'include':[{'model':db[_0xb787('0x2f')],'as':'Contacts','where':_0x3ff7d9,'limit':0x1,'order':[[_0xb787('0x32'),_0xb787('0x3e')]]}]},{'model':db['MailApplication'],'as':_0xb787('0x3f')},{'model':db[_0xb787('0x40')],'as':_0xb787('0x41')}]})['then'](function(_0x391fb0){if(_0x391fb0&&_0x391fb0[_0xb787('0x3d')]){var _0x135e80=_0x391fb0[_0xb787('0x42')]({'plain':!![]});_0x127123[_0xb787('0x43')]=_[_0xb787('0x44')](_0x135e80,['Applications',_0xb787('0x3d')]);_0x127123[_0xb787('0x45')]=_0x135e80['Applications'];_0x127123[_0xb787('0x46')]=_0x135e80[_0xb787('0x3d')];_0x127123[_0xb787('0x45')]=_[_0xb787('0x47')](_0x127123[_0xb787('0x45')],[_0xb787('0x48')],[_0xb787('0x49')]);if(_0x127123[_0xb787('0x43')]&&_0x127123[_0xb787('0x43')]['autoclose']){_0x127123[_0xb787('0x45')][_0xb787('0x4a')]({'id':0x0,'priority':_0x127123[_0xb787('0x45')][_0xb787('0x4b')]+0x1,'app':_0xb787('0x4c'),'appdata':_0xb787('0x4d'),'interval':_0xb787('0x4e')});}if(_0x127123[_0xb787('0x43')]['Applications']){delete _0x127123[_0xb787('0x43')]['Applications'];}if(_0x127123['account'][_0xb787('0x3d')]){delete _0x127123[_0xb787('0x43')]['List'];}if(_0x135e80['List'][_0xb787('0x4f')][_0xb787('0x4b')]){return _0x135e80[_0xb787('0x3d')][_0xb787('0x4f')][0x0];}var _0x53b6b6=_['defaults'](_0x3d9f6a[_0xb787('0x34')],{'firstName':_0x3d9f6a[_0xb787('0x34')][_0xb787('0x35')],'ListId':_0x135e80[_0xb787('0x50')]});_0x53b6b6[_0x3d9f6a[_0xb787('0x34')][_0xb787('0x39')]]=_0x3d9f6a['body'][_0xb787('0x35')];return db['CmContact'][_0xb787('0x51')](_0x53b6b6);}else{throw new Error('List\x20not\x20found');}})[_0xb787('0x13')](function(_0x6047e5){_0x127123[_0xb787('0x52')]=_0x6047e5;if(_0x6047e5){if(!_0x3d9f6a[_0xb787('0x34')][_0xb787('0x1c')][_0xb787('0x53')]){_0x3d9f6a[_0xb787('0x34')][_0xb787('0x1c')][_0xb787('0x53')]=rs['generate']()+'\x20'+_0x3d9f6a[_0xb787('0x34')]['message'][_0xb787('0x35')];}var _0x17c638={'ContactId':_0x6047e5['id'],'MailAccountId':_0x3d9f6a[_0xb787('0x43')]['id'],'inReplyTo':_0x3d9f6a[_0xb787('0x34')]['message']['messageId'],'to':_0x3d9f6a[_0xb787('0x34')][_0xb787('0x1c')][_0xb787('0x35')],'cc':_0x3d9f6a['body'][_0xb787('0x1c')]['cc'],'subject':_0x3d9f6a[_0xb787('0x34')][_0xb787('0x1c')][_0xb787('0x54')],'attach':_0x3d9f6a[_0xb787('0x34')]['message']['attach'],'lastMsgAt':moment()['format'](_0xb787('0x55')),'lastMsgDirection':'in'};return db[_0xb787('0x56')][_0xb787('0x29')]({'where':{'closed':![],'MailAccountId':_0x3d9f6a['account']['id']},'include':[{'model':db[_0xb787('0x57')],'as':'Messages','attributes':[_0xb787('0x53')],'where':{'messageId':_0x3d9f6a[_0xb787('0x34')][_0xb787('0x1c')]['inReplyTo']}}]})[_0xb787('0x13')](function(_0x3715ea){if(_0x3715ea){return[_0x3715ea,![]];}return db[_0xb787('0x56')][_0xb787('0x51')](_0x17c638)['then'](function(_0x2b969b){return[_0x2b969b,!![]];});});}else{throw new Error(_0xb787('0x58'));}})[_0xb787('0x59')](function(_0x2e3048,_0xc4dbc8){if(_0x2e3048){_0x52a8a7=_0xc4dbc8;if(!_0xc4dbc8){return _0x2e3048[_0xb787('0x5a')]({'inReplyTo':_0x3d9f6a[_0xb787('0x34')][_0xb787('0x1c')][_0xb787('0x53')],'to':_0x3d9f6a[_0xb787('0x34')][_0xb787('0x1c')][_0xb787('0x35')],'cc':_0x3d9f6a[_0xb787('0x34')][_0xb787('0x1c')]['cc'],'subject':_0x3d9f6a[_0xb787('0x34')][_0xb787('0x1c')]['subject'],'attach':_0x2e3048[_0xb787('0x5b')]?_0x2e3048['attach']:_0x3d9f6a[_0xb787('0x34')][_0xb787('0x1c')][_0xb787('0x5b')],'substatus':null,'substatusAt':moment()[_0xb787('0x5c')](_0xb787('0x55')),'lastMsgAt':moment()[_0xb787('0x5c')](_0xb787('0x55')),'lastMsgDirection':'in'});}else{return _0x2e3048;}}})[_0xb787('0x13')](function(_0x3f1141){_0x127123[_0xb787('0x5d')]=_0x3f1141['get']({'plain':!![]});_0x127123[_0xb787('0x5d')][_0xb787('0x5e')]=_0x52a8a7;return db[_0xb787('0x57')][_0xb787('0x51')]({'body':_0x3d9f6a[_0xb787('0x34')][_0xb787('0x34')],'MailAccountId':_0x3d9f6a[_0xb787('0x43')]['id'],'MailInteractionId':_0x3f1141['id'],'direction':'in','ContactId':_0x127123[_0xb787('0x52')]['id'],'messageId':_0x3d9f6a[_0xb787('0x34')]['message'][_0xb787('0x53')],'from':_0x3d9f6a[_0xb787('0x34')][_0xb787('0x1c')][_0xb787('0x35')],'to':_0x3d9f6a[_0xb787('0x34')]['message']['to'],'cc':_0x3d9f6a['body'][_0xb787('0x1c')]['cc'],'subject':_0x3d9f6a[_0xb787('0x34')][_0xb787('0x1c')][_0xb787('0x54')],'attach':_0x3d9f6a[_0xb787('0x34')]['message'][_0xb787('0x5b')],'Attachments':_0x3d9f6a[_0xb787('0x34')][_0xb787('0x1c')][_0xb787('0x5f')],'originTo':_0x3d9f6a[_0xb787('0x34')][_0xb787('0x1c')]['originTo'],'originCc':_0x3d9f6a[_0xb787('0x34')]['message'][_0xb787('0x60')],'bcc':_0x3d9f6a[_0xb787('0x34')]['message'][_0xb787('0x61')],'ChatWebsiteId':_0x3d9f6a[_0xb787('0x34')][_0xb787('0x1c')]['ChatWebsiteId']||null,'originChannel':_0x3d9f6a['body'][_0xb787('0x1c')][_0xb787('0x62')]||_0xb787('0x63'),'ChatOfflineMessageId':_0x3d9f6a[_0xb787('0x34')][_0xb787('0x1c')]['ChatOfflineMessageId']||null},{'include':[{'model':db[_0xb787('0x64')],'as':_0xb787('0x65')}]});})['then'](function(_0x1b0936){_0x127123[_0xb787('0x1c')]=_0x1b0936;if(_0x127123[_0xb787('0x5d')]['UserId']){return db[_0xb787('0x66')][_0xb787('0x29')]({'attributes':['id',_0xb787('0x67')],'where':{'id':_0x127123[_0xb787('0x5d')][_0xb787('0x68')]}})[_0xb787('0x13')](function(_0xd3296){if(_0xd3296){_0x127123[_0xb787('0x45')][_0xb787('0x69')]({'id':0x0,'priority':0x0,'app':_0xb787('0x6a'),'appdata':_0xd3296[_0xb787('0x67')]+','+(_0x127123[_0xb787('0x43')]['waitForTheAssignedAgent']||0xa),'interval':_0xb787('0x4e')});}return respondWithRpcPromise(_0xb787('0x6b'),'startRouting',_0x127123);});}return respondWithRpcPromise('Start',_0xb787('0x6c'),_0x127123);})[_0xb787('0x13')](function(_0x172324){_0x3be422(_0x172324);})[_0xb787('0x1e')](function(_0x161049){_0x38fb7e(_0x57df09[_0xb787('0x1a')](0x1f4,_0x161049[_0xb787('0x1c')]));});});};
\ No newline at end of file
+var _0x303c=['../../config/logger','../../config/environment','jayson/promise','http','redis','./mailAccount.socket','register','request','then','info','MailAccount,\x20%s,\x20%s','request\x20sent','error','code','message','result','catch','GetMailAccount','MailAccount','findAll','options','raw','where','limit','include','map','model','attributes','debug','stringify','ShowMailAccount','NotifyMailAccount','body','mail','CmContact','rawAttributes','createdAt','updatedAt','CompanyId','ListId','isNil','from','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','find','account','CmList','List','Contacts','DESC','MailApplication','MailServerOut','Smtp','get','omit','Applications','applications','orderBy','priority','asc','autoclose','push','length','close','defaults','create','messageId','generate','subject','attach','format','YYYY-MM-DD\x20HH:mm:ss','MailInteraction','inReplyTo','Contact\x20not\x20found','spread','update','interaction','created','MailMessage','contact','attachments','originTo','ChatWebsiteId','originChannel','Email','Attachment','Attachments','UserId','User','unshift','agent','waitForTheAssignedAgent','*,*,*,*','Start','startRouting','lodash','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils'];(function(_0x35840a,_0x5a9f09){var _0x54f384=function(_0x4d875c){while(--_0x4d875c){_0x35840a['push'](_0x35840a['shift']());}};_0x54f384(++_0x5a9f09);}(_0x303c,0x19d));var _0xc303=function(_0x52a857,_0xc99fa1){_0x52a857=_0x52a857-0x0;var _0x4e2aae=_0x303c[_0x52a857];return _0x4e2aae;};'use strict';var _=require(_0xc303('0x0'));var util=require(_0xc303('0x1'));var moment=require('moment');var BPromise=require(_0xc303('0x2'));var rs=require(_0xc303('0x3'));var fs=require('fs');var Redis=require(_0xc303('0x4'));var db=require(_0xc303('0x5'))['db'];var utils=require(_0xc303('0x6'));var logger=require(_0xc303('0x7'))('rpc');var config=require(_0xc303('0x8'));var jayson=require(_0xc303('0x9'));var client=jayson['client'][_0xc303('0xa')]({'port':0x232c});config[_0xc303('0xb')]=_['defaults'](config['redis'],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xc303('0xb')]));require(_0xc303('0xc'))[_0xc303('0xd')](socket);function respondWithRpcPromise(_0xbd18d5,_0xa5556f,_0x4cbfd){return new BPromise(function(_0x20ef41,_0x19ebf5){return client[_0xc303('0xe')](_0xbd18d5,_0x4cbfd)[_0xc303('0xf')](function(_0x44d96c){logger[_0xc303('0x10')](_0xc303('0x11'),_0xa5556f,_0xc303('0x12'));logger['debug']('MailAccount,\x20%s,\x20%s,\x20%s',_0xa5556f,_0xc303('0x12'),JSON['stringify'](_0x44d96c));if(_0x44d96c[_0xc303('0x13')]){if(_0x44d96c['error'][_0xc303('0x14')]===0x1f4){logger['error']('MailAccount,\x20%s,\x20%s',_0xa5556f,_0x44d96c[_0xc303('0x13')]['message']);return _0x19ebf5(_0x44d96c['error']['message']);}logger[_0xc303('0x13')]('MailAccount,\x20%s,\x20%s',_0xa5556f,_0x44d96c[_0xc303('0x13')][_0xc303('0x15')]);return _0x20ef41(_0x44d96c[_0xc303('0x13')][_0xc303('0x15')]);}else{logger[_0xc303('0x10')]('MailAccount,\x20%s,\x20%s',_0xa5556f,_0xc303('0x12'));_0x20ef41(_0x44d96c[_0xc303('0x16')][_0xc303('0x15')]);}})[_0xc303('0x17')](function(_0x262d2c){logger[_0xc303('0x13')](_0xc303('0x11'),_0xa5556f,_0x262d2c);_0x19ebf5(_0x262d2c);});});}exports[_0xc303('0x18')]=function(_0x45d4a0){var _0x27ad80=this;return new Promise(function(_0x1e094e,_0x381b3b){return db[_0xc303('0x19')][_0xc303('0x1a')]({'raw':_0x45d4a0[_0xc303('0x1b')]?_0x45d4a0[_0xc303('0x1b')][_0xc303('0x1c')]===undefined?!![]:![]:!![],'where':_0x45d4a0['options']?_0x45d4a0[_0xc303('0x1b')][_0xc303('0x1d')]||null:null,'attributes':_0x45d4a0['options']?_0x45d4a0[_0xc303('0x1b')]['attributes']||null:null,'limit':_0x45d4a0[_0xc303('0x1b')]?_0x45d4a0[_0xc303('0x1b')][_0xc303('0x1e')]||null:null,'include':_0x45d4a0[_0xc303('0x1b')]?_0x45d4a0['options'][_0xc303('0x1f')]?_[_0xc303('0x20')](_0x45d4a0[_0xc303('0x1b')][_0xc303('0x1f')],function(_0x26d1e8){return{'model':db[_0x26d1e8[_0xc303('0x21')]],'as':_0x26d1e8['as'],'attributes':_0x26d1e8['attributes'],'include':_0x26d1e8[_0xc303('0x1f')]?_[_0xc303('0x20')](_0x26d1e8[_0xc303('0x1f')],function(_0x26423f){return{'model':db[_0x26423f[_0xc303('0x21')]],'as':_0x26423f['as'],'attributes':_0x26423f[_0xc303('0x22')],'include':_0x26423f[_0xc303('0x1f')]?_[_0xc303('0x20')](_0x26423f[_0xc303('0x1f')],function(_0x4323f1){return{'model':db[_0x4323f1[_0xc303('0x21')]],'as':_0x4323f1['as'],'attributes':_0x4323f1[_0xc303('0x22')]};}):[]};}):[]};}):[]:[]})[_0xc303('0xf')](function(_0x3ed285){logger['info'](_0xc303('0x18'),_0x45d4a0);logger[_0xc303('0x23')](_0xc303('0x18'),_0x45d4a0,JSON[_0xc303('0x24')](_0x3ed285));_0x1e094e(_0x3ed285);})[_0xc303('0x17')](function(_0x190b9a){logger[_0xc303('0x13')](_0xc303('0x18'),_0x190b9a[_0xc303('0x15')],_0x45d4a0);_0x381b3b(_0x27ad80[_0xc303('0x13')](0x1f4,_0x190b9a[_0xc303('0x15')]));});});};exports['ShowMailAccount']=function(_0x524b25){var _0x50cdcd=this;return new Promise(function(_0xcbd474,_0x221060){return db[_0xc303('0x19')]['find']({'raw':_0x524b25[_0xc303('0x1b')]?_0x524b25[_0xc303('0x1b')]['raw']===undefined?!![]:![]:!![],'where':_0x524b25[_0xc303('0x1b')]?_0x524b25[_0xc303('0x1b')][_0xc303('0x1d')]||null:null,'attributes':_0x524b25[_0xc303('0x1b')]?_0x524b25[_0xc303('0x1b')][_0xc303('0x22')]||null:null,'include':_0x524b25[_0xc303('0x1b')]?_0x524b25[_0xc303('0x1b')][_0xc303('0x1f')]?_[_0xc303('0x20')](_0x524b25[_0xc303('0x1b')]['include'],function(_0x5d9cb8){return{'model':db[_0x5d9cb8['model']],'as':_0x5d9cb8['as'],'attributes':_0x5d9cb8['attributes'],'include':_0x5d9cb8[_0xc303('0x1f')]?_['map'](_0x5d9cb8[_0xc303('0x1f')],function(_0x4bac14){return{'model':db[_0x4bac14[_0xc303('0x21')]],'as':_0x4bac14['as'],'attributes':_0x4bac14['attributes'],'include':_0x4bac14[_0xc303('0x1f')]?_[_0xc303('0x20')](_0x4bac14['include'],function(_0xd54c52){return{'model':db[_0xd54c52[_0xc303('0x21')]],'as':_0xd54c52['as'],'attributes':_0xd54c52[_0xc303('0x22')]};}):[]};}):[]};}):[]:[]})[_0xc303('0xf')](function(_0x19af04){logger[_0xc303('0x10')](_0xc303('0x25'),_0x524b25);logger['debug'](_0xc303('0x25'),_0x524b25,JSON[_0xc303('0x24')](_0x19af04));_0xcbd474(_0x19af04);})[_0xc303('0x17')](function(_0x2f4bfe){logger[_0xc303('0x13')]('ShowMailAccount',_0x2f4bfe[_0xc303('0x15')],_0x524b25);_0x221060(_0x50cdcd[_0xc303('0x13')](0x1f4,_0x2f4bfe[_0xc303('0x15')]));});});};exports[_0xc303('0x26')]=function(_0x19f9b9){var _0x3773af=this;return new Promise(function(_0x4de688,_0x559d8d){var _0x1c73b9={'body':_0x19f9b9[_0xc303('0x27')],'channel':_0xc303('0x28')};var _0x55debb=_['difference'](_['keys'](db[_0xc303('0x29')][_0xc303('0x2a')]),[_0xc303('0x2b'),_0xc303('0x2c'),_0xc303('0x2d'),_0xc303('0x2e')]);var _0x4ada57=![];if(_0x19f9b9[_0xc303('0x27')]['id']){delete _0x19f9b9[_0xc303('0x27')]['id'];}if(_[_0xc303('0x2f')](_0x19f9b9[_0xc303('0x27')][_0xc303('0x30')])){return _0x559d8d(_0x3773af['error'](0x1f4,'from\x20is\x20mandatory'));}if(_[_0xc303('0x2f')](_0x19f9b9[_0xc303('0x27')][_0xc303('0x27')])||_0x19f9b9['body'][_0xc303('0x27')]===''){return _0x559d8d(_0x3773af[_0xc303('0x13')](0x1f4,_0xc303('0x31')));}if(_[_0xc303('0x2f')](_0x19f9b9[_0xc303('0x27')][_0xc303('0x32')])){return _0x559d8d(_0x3773af[_0xc303('0x13')](0x1f4,'mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x55debb));}if(!_[_0xc303('0x33')](_0x55debb,_0x19f9b9[_0xc303('0x27')][_0xc303('0x32')])){return _0x559d8d(_0x3773af[_0xc303('0x13')](0x1f4,_0xc303('0x34')+_0x55debb));}var _0x15d6e8={};_0x15d6e8[_0x19f9b9[_0xc303('0x27')]['mapKey']]=_0x19f9b9['body']['from'];return db[_0xc303('0x19')][_0xc303('0x35')]({'where':{'id':_0x19f9b9[_0xc303('0x36')]['id']},'include':[{'model':db[_0xc303('0x37')],'as':_0xc303('0x38'),'include':[{'model':db[_0xc303('0x29')],'as':_0xc303('0x39'),'where':_0x15d6e8,'limit':0x1,'order':[[_0xc303('0x2c'),_0xc303('0x3a')]]}]},{'model':db[_0xc303('0x3b')],'as':'Applications'},{'model':db[_0xc303('0x3c')],'as':_0xc303('0x3d')}]})[_0xc303('0xf')](function(_0x172e1b){if(_0x172e1b&&_0x172e1b[_0xc303('0x38')]){var _0x122610=_0x172e1b[_0xc303('0x3e')]({'plain':!![]});_0x1c73b9[_0xc303('0x36')]=_[_0xc303('0x3f')](_0x122610,[_0xc303('0x40'),'List']);_0x1c73b9[_0xc303('0x41')]=_0x122610[_0xc303('0x40')];_0x1c73b9['list']=_0x122610[_0xc303('0x38')];_0x1c73b9['applications']=_[_0xc303('0x42')](_0x1c73b9[_0xc303('0x41')],[_0xc303('0x43')],[_0xc303('0x44')]);if(_0x1c73b9[_0xc303('0x36')]&&_0x1c73b9[_0xc303('0x36')][_0xc303('0x45')]){_0x1c73b9[_0xc303('0x41')][_0xc303('0x46')]({'id':0x0,'priority':_0x1c73b9[_0xc303('0x41')][_0xc303('0x47')]+0x1,'app':_0xc303('0x48'),'appdata':_0xc303('0x45'),'interval':'*,*,*,*'});}if(_0x1c73b9['account'][_0xc303('0x40')]){delete _0x1c73b9[_0xc303('0x36')][_0xc303('0x40')];}if(_0x1c73b9[_0xc303('0x36')][_0xc303('0x38')]){delete _0x1c73b9[_0xc303('0x36')][_0xc303('0x38')];}if(_0x122610['List'][_0xc303('0x39')][_0xc303('0x47')]){return _0x122610[_0xc303('0x38')]['Contacts'][0x0];}var _0xd5b328=_[_0xc303('0x49')](_0x19f9b9[_0xc303('0x27')],{'firstName':_0x19f9b9[_0xc303('0x27')][_0xc303('0x30')],'ListId':_0x122610['ListId']});_0xd5b328[_0x19f9b9['body'][_0xc303('0x32')]]=_0x19f9b9['body'][_0xc303('0x30')];return db[_0xc303('0x29')][_0xc303('0x4a')](_0xd5b328);}else{throw new Error('List\x20not\x20found');}})[_0xc303('0xf')](function(_0x5b50bf){_0x1c73b9['contact']=_0x5b50bf;if(_0x5b50bf){if(!_0x19f9b9[_0xc303('0x27')][_0xc303('0x15')][_0xc303('0x4b')]){_0x19f9b9[_0xc303('0x27')]['message'][_0xc303('0x4b')]=rs[_0xc303('0x4c')]()+'\x20'+_0x19f9b9[_0xc303('0x27')][_0xc303('0x15')][_0xc303('0x30')];}var _0x55b25b={'ContactId':_0x5b50bf['id'],'MailAccountId':_0x19f9b9[_0xc303('0x36')]['id'],'inReplyTo':_0x19f9b9[_0xc303('0x27')][_0xc303('0x15')]['messageId'],'to':_0x19f9b9['body']['message'][_0xc303('0x30')],'cc':_0x19f9b9[_0xc303('0x27')]['message']['cc'],'subject':_0x19f9b9[_0xc303('0x27')][_0xc303('0x15')][_0xc303('0x4d')],'attach':_0x19f9b9[_0xc303('0x27')][_0xc303('0x15')][_0xc303('0x4e')],'lastMsgAt':moment()[_0xc303('0x4f')](_0xc303('0x50')),'lastMsgDirection':'in'};return db[_0xc303('0x51')][_0xc303('0x35')]({'where':{'closed':![],'MailAccountId':_0x19f9b9[_0xc303('0x36')]['id']},'include':[{'model':db['MailMessage'],'as':'Messages','attributes':['messageId'],'where':{'messageId':_0x19f9b9[_0xc303('0x27')]['message'][_0xc303('0x52')]}}]})[_0xc303('0xf')](function(_0x4c8ab6){if(_0x4c8ab6){return[_0x4c8ab6,![]];}return db[_0xc303('0x51')][_0xc303('0x4a')](_0x55b25b)[_0xc303('0xf')](function(_0x52fc23){return[_0x52fc23,!![]];});});}else{throw new Error(_0xc303('0x53'));}})[_0xc303('0x54')](function(_0x35aa46,_0x2fceec){if(_0x35aa46){_0x4ada57=_0x2fceec;if(!_0x2fceec){return _0x35aa46[_0xc303('0x55')]({'inReplyTo':_0x19f9b9[_0xc303('0x27')]['message'][_0xc303('0x4b')],'to':_0x19f9b9['body'][_0xc303('0x15')][_0xc303('0x30')],'cc':_0x19f9b9[_0xc303('0x27')]['message']['cc'],'subject':_0x19f9b9[_0xc303('0x27')][_0xc303('0x15')][_0xc303('0x4d')],'attach':_0x35aa46['attach']?_0x35aa46[_0xc303('0x4e')]:_0x19f9b9[_0xc303('0x27')][_0xc303('0x15')][_0xc303('0x4e')],'substatus':null,'substatusAt':moment()[_0xc303('0x4f')]('YYYY-MM-DD\x20HH:mm:ss'),'lastMsgAt':moment()[_0xc303('0x4f')]('YYYY-MM-DD\x20HH:mm:ss'),'lastMsgDirection':'in'});}else{return _0x35aa46;}}})['then'](function(_0xa958d2){_0x1c73b9[_0xc303('0x56')]=_0xa958d2[_0xc303('0x3e')]({'plain':!![]});_0x1c73b9['interaction'][_0xc303('0x57')]=_0x4ada57;return db[_0xc303('0x58')]['create']({'body':_0x19f9b9['body'][_0xc303('0x27')],'MailAccountId':_0x19f9b9[_0xc303('0x36')]['id'],'MailInteractionId':_0xa958d2['id'],'direction':'in','ContactId':_0x1c73b9[_0xc303('0x59')]['id'],'messageId':_0x19f9b9['body'][_0xc303('0x15')][_0xc303('0x4b')],'from':_0x19f9b9[_0xc303('0x27')]['message'][_0xc303('0x30')],'to':_0x19f9b9[_0xc303('0x27')]['message']['to'],'cc':_0x19f9b9[_0xc303('0x27')][_0xc303('0x15')]['cc'],'subject':_0x19f9b9[_0xc303('0x27')]['message'][_0xc303('0x4d')],'attach':_0x19f9b9[_0xc303('0x27')][_0xc303('0x15')][_0xc303('0x4e')],'Attachments':_0x19f9b9[_0xc303('0x27')][_0xc303('0x15')][_0xc303('0x5a')],'originTo':_0x19f9b9[_0xc303('0x27')][_0xc303('0x15')][_0xc303('0x5b')],'originCc':_0x19f9b9['body']['message']['originCc'],'bcc':_0x19f9b9[_0xc303('0x27')][_0xc303('0x15')]['bcc'],'ChatWebsiteId':_0x19f9b9[_0xc303('0x27')][_0xc303('0x15')][_0xc303('0x5c')]||null,'originChannel':_0x19f9b9[_0xc303('0x27')][_0xc303('0x15')][_0xc303('0x5d')]||_0xc303('0x5e'),'ChatOfflineMessageId':_0x19f9b9[_0xc303('0x27')]['message']['ChatOfflineMessageId']||null},{'include':[{'model':db[_0xc303('0x5f')],'as':_0xc303('0x60')}]});})[_0xc303('0xf')](function(_0x4d2258){_0x1c73b9[_0xc303('0x15')]=_0x4d2258;if(_0x1c73b9[_0xc303('0x56')][_0xc303('0x61')]){return db[_0xc303('0x62')][_0xc303('0x35')]({'attributes':['id','name'],'where':{'id':_0x1c73b9['interaction'][_0xc303('0x61')]}})[_0xc303('0xf')](function(_0x56ee35){if(_0x56ee35){_0x1c73b9[_0xc303('0x41')][_0xc303('0x63')]({'id':0x0,'priority':0x0,'app':_0xc303('0x64'),'appdata':_0x56ee35['name']+','+(_0x1c73b9['account'][_0xc303('0x65')]||0xa),'interval':_0xc303('0x66')});}return respondWithRpcPromise('Start','startRouting',_0x1c73b9);});}return respondWithRpcPromise(_0xc303('0x67'),_0xc303('0x68'),_0x1c73b9);})['then'](function(_0x53744c){_0x4de688(_0x53744c);})[_0xc303('0x17')](function(_0x5543ae){_0x559d8d(_0x3773af[_0xc303('0x13')](0x1f4,_0x5543ae[_0xc303('0x15')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6fb6=['mailAccount:','./mailAccount.events','save','remove','update','emit','removeListener','register'];(function(_0x5d6456,_0x58ecc7){var _0x4d66c1=function(_0x4335e3){while(--_0x4335e3){_0x5d6456['push'](_0x5d6456['shift']());}};_0x4d66c1(++_0x58ecc7);}(_0x6fb6,0x139));var _0x66fb=function(_0x3de8a4,_0x289a5c){_0x3de8a4=_0x3de8a4-0x0;var _0x4635cf=_0x6fb6[_0x3de8a4];return _0x4635cf;};'use strict';var MailAccountEvents=require(_0x66fb('0x0'));var events=[_0x66fb('0x1'),_0x66fb('0x2'),_0x66fb('0x3')];function createListener(_0x5a3dc9,_0x35025e){return function(_0xd060bf){_0x35025e[_0x66fb('0x4')](_0x5a3dc9,_0xd060bf);};}function removeListener(_0x313f85,_0xb800ef){return function(){MailAccountEvents[_0x66fb('0x5')](_0x313f85,_0xb800ef);};}exports[_0x66fb('0x6')]=function(_0xed5518){for(var _0x5e3db2=0x0,_0x2a2c77=events['length'];_0x5e3db2<_0x2a2c77;_0x5e3db2++){var _0x59d410=events[_0x5e3db2];var _0xcafd5e=createListener(_0x66fb('0x7')+_0x59d410,_0xed5518);MailAccountEvents['on'](_0x59d410,_0xcafd5e);}};
\ No newline at end of file
+var _0x02ce=['mailAccount:','./mailAccount.events','save','remove','emit','removeListener','register'];(function(_0x3a149d,_0x708205){var _0x50f7dc=function(_0x5bb867){while(--_0x5bb867){_0x3a149d['push'](_0x3a149d['shift']());}};_0x50f7dc(++_0x708205);}(_0x02ce,0x1ac));var _0xe02c=function(_0x391101,_0x36e556){_0x391101=_0x391101-0x0;var _0x243750=_0x02ce[_0x391101];return _0x243750;};'use strict';var MailAccountEvents=require(_0xe02c('0x0'));var events=[_0xe02c('0x1'),_0xe02c('0x2'),'update'];function createListener(_0x2d73b6,_0x53d2a3){return function(_0x2b3d58){_0x53d2a3[_0xe02c('0x3')](_0x2d73b6,_0x2b3d58);};}function removeListener(_0x46475c,_0xf4b764){return function(){MailAccountEvents[_0xe02c('0x4')](_0x46475c,_0xf4b764);};}exports[_0xe02c('0x5')]=function(_0x3f7436){for(var _0x2b804f=0x0,_0x36a87f=events['length'];_0x2b804f<_0x36a87f;_0x2b804f++){var _0x5eabb0=events[_0x2b804f];var _0x3c757e=createListener(_0xe02c('0x6')+_0x5eabb0,_0x3f7436);MailAccountEvents['on'](_0x5eabb0,_0x3c757e);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1868=['exports','multer','util','connect-timeout','fs-extra','../../components/auth/service','../../config/environment','./mailApplication.controller','isAuthenticated','show','put','/:id','update','delete','destroy'];(function(_0x2d3269,_0x3c0edf){var _0x2c9079=function(_0x54bd69){while(--_0x54bd69){_0x2d3269['push'](_0x2d3269['shift']());}};_0x2c9079(++_0x3c0edf);}(_0x1868,0x100));var _0x8186=function(_0x35f227,_0x385d22){_0x35f227=_0x35f227-0x0;var _0xf96fd6=_0x1868[_0x35f227];return _0xf96fd6;};'use strict';var multer=require(_0x8186('0x0'));var util=require(_0x8186('0x1'));var path=require('path');var timeout=require(_0x8186('0x2'));var express=require('express');var router=express['Router']();var fs_extra=require(_0x8186('0x3'));var auth=require(_0x8186('0x4'));var interaction=require('../../components/interaction/service');var config=require(_0x8186('0x5'));var controller=require(_0x8186('0x6'));router['get']('/:id',auth[_0x8186('0x7')](),controller[_0x8186('0x8')]);router[_0x8186('0x9')](_0x8186('0xa'),auth[_0x8186('0x7')](),controller[_0x8186('0xb')]);router[_0x8186('0xc')](_0x8186('0xa'),auth[_0x8186('0x7')](),controller[_0x8186('0xd')]);module[_0x8186('0xe')]=router;
\ No newline at end of file
+var _0x8f61=['connect-timeout','fs-extra','../../components/auth/service','../../config/environment','/:id','isAuthenticated','show','put','update','delete','destroy','multer','util','path'];(function(_0x57b54c,_0x54ce0d){var _0x59cc19=function(_0xa33bc6){while(--_0xa33bc6){_0x57b54c['push'](_0x57b54c['shift']());}};_0x59cc19(++_0x54ce0d);}(_0x8f61,0x193));var _0x18f6=function(_0x3b8b1a,_0x2e2946){_0x3b8b1a=_0x3b8b1a-0x0;var _0x422dab=_0x8f61[_0x3b8b1a];return _0x422dab;};'use strict';var multer=require(_0x18f6('0x0'));var util=require(_0x18f6('0x1'));var path=require(_0x18f6('0x2'));var timeout=require(_0x18f6('0x3'));var express=require('express');var router=express['Router']();var fs_extra=require(_0x18f6('0x4'));var auth=require(_0x18f6('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0x18f6('0x6'));var controller=require('./mailApplication.controller');router['get'](_0x18f6('0x7'),auth[_0x18f6('0x8')](),controller[_0x18f6('0x9')]);router[_0x18f6('0xa')]('/:id',auth['isAuthenticated'](),controller[_0x18f6('0xb')]);router[_0x18f6('0xc')](_0x18f6('0x7'),auth['isAuthenticated'](),controller[_0x18f6('0xd')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7ae0=['sequelize','noop','TEXT','STRING','*,*,*,*'];(function(_0x155ec4,_0x141fb5){var _0x361406=function(_0x375ad5){while(--_0x375ad5){_0x155ec4['push'](_0x155ec4['shift']());}};_0x361406(++_0x141fb5);}(_0x7ae0,0x9b));var _0x07ae=function(_0x5a8aff,_0x497d96){_0x5a8aff=_0x5a8aff-0x0;var _0x57543f=_0x7ae0[_0x5a8aff];return _0x57543f;};'use strict';var Sequelize=require(_0x07ae('0x0'));module['exports']={'priority':{'type':Sequelize['INTEGER'],'allowNull':![]},'app':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':_0x07ae('0x1')},'appdata':{'type':Sequelize[_0x07ae('0x2')]()},'description':{'type':Sequelize['STRING']},'interval':{'type':Sequelize[_0x07ae('0x3')],'defaultValue':_0x07ae('0x4')}};
\ No newline at end of file
+var _0xad67=['noop','TEXT','*,*,*,*','sequelize','exports','INTEGER','STRING'];(function(_0x13c70c,_0x546b34){var _0x50f0f2=function(_0x2a2991){while(--_0x2a2991){_0x13c70c['push'](_0x13c70c['shift']());}};_0x50f0f2(++_0x546b34);}(_0xad67,0x1df));var _0x7ad6=function(_0x42e1ec,_0x19aacc){_0x42e1ec=_0x42e1ec-0x0;var _0xe8c124=_0xad67[_0x42e1ec];return _0xe8c124;};'use strict';var Sequelize=require(_0x7ad6('0x0'));module[_0x7ad6('0x1')]={'priority':{'type':Sequelize[_0x7ad6('0x2')],'allowNull':![]},'app':{'type':Sequelize[_0x7ad6('0x3')],'allowNull':![],'defaultValue':_0x7ad6('0x4')},'appdata':{'type':Sequelize[_0x7ad6('0x5')]()},'description':{'type':Sequelize[_0x7ad6('0x3')]},'interval':{'type':Sequelize[_0x7ad6('0x3')],'defaultValue':_0x7ad6('0x6')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xaa88=['limit','count','set','apply','reject','then','stack','name','send','params','model','keys','MailApplication','query','filters','intersection','attributes','fields','length','include','merge','options','find','update','body','catch','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','fs-extra','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','undefined'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xaa88,0x137));var _0x8aa8=function(_0x1a8ff0,_0x20788d){_0x1a8ff0=_0x1a8ff0-0x0;var _0x3588bf=_0xaa88[_0x1a8ff0];return _0x3588bf;};'use strict';var emlformat=require(_0x8aa8('0x0'));var rimraf=require(_0x8aa8('0x1'));var zipdir=require(_0x8aa8('0x2'));var jsonpatch=require(_0x8aa8('0x3'));var rp=require('request-promise');var moment=require(_0x8aa8('0x4'));var BPromise=require(_0x8aa8('0x5'));var Mustache=require(_0x8aa8('0x6'));var util=require(_0x8aa8('0x7'));var path=require(_0x8aa8('0x8'));var sox=require(_0x8aa8('0x9'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x8aa8('0xa'));var _=require('lodash');var squel=require(_0x8aa8('0xb'));var crypto=require(_0x8aa8('0xc'));var jsforce=require(_0x8aa8('0xd'));var deskjs=require(_0x8aa8('0xe'));var toCsv=require('to-csv');var querystring=require(_0x8aa8('0xf'));var Papa=require(_0x8aa8('0x10'));var Redis=require(_0x8aa8('0x11'));var authService=require('../../components/auth/service');var qs=require(_0x8aa8('0x12'));var as=require(_0x8aa8('0x13'));var hardwareService=require(_0x8aa8('0x14'));var logger=require(_0x8aa8('0x15'))('api');var utils=require(_0x8aa8('0x16'));var config=require(_0x8aa8('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0x8aa8('0x18'))['db'];function respondWithStatusCode(_0xa691d6,_0x28132f){_0x28132f=_0x28132f||0xcc;return function(_0x535aa0){if(_0x535aa0){return _0xa691d6[_0x8aa8('0x19')](_0x28132f);}return _0xa691d6[_0x8aa8('0x1a')](_0x28132f)[_0x8aa8('0x1b')]();};}function respondWithResult(_0x4b686e,_0x391642){_0x391642=_0x391642||0xc8;return function(_0x4af534){if(_0x4af534){return _0x4b686e['status'](_0x391642)[_0x8aa8('0x1c')](_0x4af534);}};}function respondWithFilteredResult(_0x200662,_0xae81a0){return function(_0xa6c2af){if(_0xa6c2af){var _0x42a6a4=typeof _0xae81a0[_0x8aa8('0x1d')]===_0x8aa8('0x1e')&&typeof _0xae81a0[_0x8aa8('0x1f')]===_0x8aa8('0x1e');var _0x4e8ce3=_0xa6c2af['count'];var _0x2c1b9a=_0x42a6a4?0x0:_0xae81a0['offset'];var _0x557adc=_0x42a6a4?_0xa6c2af[_0x8aa8('0x20')]:_0xae81a0['offset']+_0xae81a0[_0x8aa8('0x1f')];var _0x41092b;if(_0x557adc>=_0x4e8ce3){_0x557adc=_0x4e8ce3;_0x41092b=0xc8;}else{_0x41092b=0xce;}_0x200662[_0x8aa8('0x1a')](_0x41092b);return _0x200662[_0x8aa8('0x21')]('Content-Range',_0x2c1b9a+'-'+_0x557adc+'/'+_0x4e8ce3)[_0x8aa8('0x1c')](_0xa6c2af);}return null;};}function patchUpdates(_0x36c445){return function(_0x2825fd){try{jsonpatch[_0x8aa8('0x22')](_0x2825fd,_0x36c445,!![]);}catch(_0x4c754e){return BPromise[_0x8aa8('0x23')](_0x4c754e);}return _0x2825fd['save']();};}function saveUpdates(_0x26cf63,_0x4cc455){return function(_0x1fdadd){if(_0x1fdadd){return _0x1fdadd['update'](_0x26cf63)[_0x8aa8('0x24')](function(_0x557e4e){return _0x557e4e;});}return null;};}function removeEntity(_0x65945b,_0x40adb5){return function(_0x3ca7dc){if(_0x3ca7dc){return _0x3ca7dc['destroy']()[_0x8aa8('0x24')](function(){_0x65945b[_0x8aa8('0x1a')](0xcc)[_0x8aa8('0x1b')]();});}};}function handleEntityNotFound(_0x547a7b,_0x57acd2){return function(_0x2d1508){if(!_0x2d1508){_0x547a7b[_0x8aa8('0x19')](0x194);}return _0x2d1508;};}function handleError(_0x2f91f3,_0x3a3c7a){_0x3a3c7a=_0x3a3c7a||0x1f4;return function(_0x24143e){logger['error'](_0x24143e[_0x8aa8('0x25')]);if(_0x24143e['name']){delete _0x24143e[_0x8aa8('0x26')];}_0x2f91f3[_0x8aa8('0x1a')](_0x3a3c7a)[_0x8aa8('0x27')](_0x24143e);};}exports['show']=function(_0x4c5c5c,_0x10810d){var _0x5e96c9={'raw':!![],'where':{'id':_0x4c5c5c[_0x8aa8('0x28')]['id']}},_0x385208={};_0x385208[_0x8aa8('0x29')]=_[_0x8aa8('0x2a')](db[_0x8aa8('0x2b')]['rawAttributes']);_0x385208[_0x8aa8('0x2c')]=_[_0x8aa8('0x2a')](_0x4c5c5c['query']);_0x385208[_0x8aa8('0x2d')]=_[_0x8aa8('0x2e')](_0x385208[_0x8aa8('0x29')],_0x385208['query']);_0x5e96c9[_0x8aa8('0x2f')]=_[_0x8aa8('0x2e')](_0x385208[_0x8aa8('0x29')],qs[_0x8aa8('0x30')](_0x4c5c5c[_0x8aa8('0x2c')][_0x8aa8('0x30')]));_0x5e96c9[_0x8aa8('0x2f')]=_0x5e96c9[_0x8aa8('0x2f')][_0x8aa8('0x31')]?_0x5e96c9[_0x8aa8('0x2f')]:_0x385208[_0x8aa8('0x29')];if(_0x4c5c5c['query']['includeAll']){_0x5e96c9[_0x8aa8('0x32')]=[{'all':!![]}];}_0x5e96c9=_[_0x8aa8('0x33')]({},_0x5e96c9,_0x4c5c5c[_0x8aa8('0x34')]);return db[_0x8aa8('0x2b')][_0x8aa8('0x35')](_0x5e96c9)[_0x8aa8('0x24')](handleEntityNotFound(_0x10810d,null))['then'](respondWithResult(_0x10810d,null))['catch'](handleError(_0x10810d,null));};exports[_0x8aa8('0x36')]=function(_0x5755b5,_0x24997c){if(_0x5755b5[_0x8aa8('0x37')]['id']){delete _0x5755b5[_0x8aa8('0x37')]['id'];}return db['MailApplication'][_0x8aa8('0x35')]({'where':{'id':_0x5755b5[_0x8aa8('0x28')]['id']}})[_0x8aa8('0x24')](handleEntityNotFound(_0x24997c,null))['then'](saveUpdates(_0x5755b5['body'],null))[_0x8aa8('0x24')](respondWithResult(_0x24997c,null))[_0x8aa8('0x38')](handleError(_0x24997c,null));};exports['destroy']=function(_0x24eb18,_0x2e1f52){return db['MailApplication'][_0x8aa8('0x35')]({'where':{'id':_0x24eb18['params']['id']}})['then'](handleEntityNotFound(_0x2e1f52,null))[_0x8aa8('0x24')](removeEntity(_0x2e1f52,null))['catch'](handleError(_0x2e1f52,null));};
\ No newline at end of file
+var _0xaa88=['limit','count','set','apply','reject','then','stack','name','send','params','model','keys','MailApplication','query','filters','intersection','attributes','fields','length','include','merge','options','find','update','body','catch','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','fs-extra','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','undefined'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xaa88,0x137));var _0x8aa8=function(_0x310d10,_0x3fe887){_0x310d10=_0x310d10-0x0;var _0x1fb8af=_0xaa88[_0x310d10];return _0x1fb8af;};'use strict';var emlformat=require(_0x8aa8('0x0'));var rimraf=require(_0x8aa8('0x1'));var zipdir=require(_0x8aa8('0x2'));var jsonpatch=require(_0x8aa8('0x3'));var rp=require('request-promise');var moment=require(_0x8aa8('0x4'));var BPromise=require(_0x8aa8('0x5'));var Mustache=require(_0x8aa8('0x6'));var util=require(_0x8aa8('0x7'));var path=require(_0x8aa8('0x8'));var sox=require(_0x8aa8('0x9'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x8aa8('0xa'));var _=require('lodash');var squel=require(_0x8aa8('0xb'));var crypto=require(_0x8aa8('0xc'));var jsforce=require(_0x8aa8('0xd'));var deskjs=require(_0x8aa8('0xe'));var toCsv=require('to-csv');var querystring=require(_0x8aa8('0xf'));var Papa=require(_0x8aa8('0x10'));var Redis=require(_0x8aa8('0x11'));var authService=require('../../components/auth/service');var qs=require(_0x8aa8('0x12'));var as=require(_0x8aa8('0x13'));var hardwareService=require(_0x8aa8('0x14'));var logger=require(_0x8aa8('0x15'))('api');var utils=require(_0x8aa8('0x16'));var config=require(_0x8aa8('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0x8aa8('0x18'))['db'];function respondWithStatusCode(_0xa691d6,_0x28132f){_0x28132f=_0x28132f||0xcc;return function(_0x535aa0){if(_0x535aa0){return _0xa691d6[_0x8aa8('0x19')](_0x28132f);}return _0xa691d6[_0x8aa8('0x1a')](_0x28132f)[_0x8aa8('0x1b')]();};}function respondWithResult(_0x4b686e,_0x391642){_0x391642=_0x391642||0xc8;return function(_0x4af534){if(_0x4af534){return _0x4b686e['status'](_0x391642)[_0x8aa8('0x1c')](_0x4af534);}};}function respondWithFilteredResult(_0x200662,_0xae81a0){return function(_0xa6c2af){if(_0xa6c2af){var _0x42a6a4=typeof _0xae81a0[_0x8aa8('0x1d')]===_0x8aa8('0x1e')&&typeof _0xae81a0[_0x8aa8('0x1f')]===_0x8aa8('0x1e');var _0x4e8ce3=_0xa6c2af['count'];var _0x2c1b9a=_0x42a6a4?0x0:_0xae81a0['offset'];var _0x557adc=_0x42a6a4?_0xa6c2af[_0x8aa8('0x20')]:_0xae81a0['offset']+_0xae81a0[_0x8aa8('0x1f')];var _0x41092b;if(_0x557adc>=_0x4e8ce3){_0x557adc=_0x4e8ce3;_0x41092b=0xc8;}else{_0x41092b=0xce;}_0x200662[_0x8aa8('0x1a')](_0x41092b);return _0x200662[_0x8aa8('0x21')]('Content-Range',_0x2c1b9a+'-'+_0x557adc+'/'+_0x4e8ce3)[_0x8aa8('0x1c')](_0xa6c2af);}return null;};}function patchUpdates(_0x36c445){return function(_0x2825fd){try{jsonpatch[_0x8aa8('0x22')](_0x2825fd,_0x36c445,!![]);}catch(_0x4c754e){return BPromise[_0x8aa8('0x23')](_0x4c754e);}return _0x2825fd['save']();};}function saveUpdates(_0x26cf63,_0x4cc455){return function(_0x1fdadd){if(_0x1fdadd){return _0x1fdadd['update'](_0x26cf63)[_0x8aa8('0x24')](function(_0x557e4e){return _0x557e4e;});}return null;};}function removeEntity(_0x65945b,_0x40adb5){return function(_0x3ca7dc){if(_0x3ca7dc){return _0x3ca7dc['destroy']()[_0x8aa8('0x24')](function(){_0x65945b[_0x8aa8('0x1a')](0xcc)[_0x8aa8('0x1b')]();});}};}function handleEntityNotFound(_0x547a7b,_0x57acd2){return function(_0x2d1508){if(!_0x2d1508){_0x547a7b[_0x8aa8('0x19')](0x194);}return _0x2d1508;};}function handleError(_0x2f91f3,_0x3a3c7a){_0x3a3c7a=_0x3a3c7a||0x1f4;return function(_0x24143e){logger['error'](_0x24143e[_0x8aa8('0x25')]);if(_0x24143e['name']){delete _0x24143e[_0x8aa8('0x26')];}_0x2f91f3[_0x8aa8('0x1a')](_0x3a3c7a)[_0x8aa8('0x27')](_0x24143e);};}exports['show']=function(_0x4c5c5c,_0x10810d){var _0x5e96c9={'raw':!![],'where':{'id':_0x4c5c5c[_0x8aa8('0x28')]['id']}},_0x385208={};_0x385208[_0x8aa8('0x29')]=_[_0x8aa8('0x2a')](db[_0x8aa8('0x2b')]['rawAttributes']);_0x385208[_0x8aa8('0x2c')]=_[_0x8aa8('0x2a')](_0x4c5c5c['query']);_0x385208[_0x8aa8('0x2d')]=_[_0x8aa8('0x2e')](_0x385208[_0x8aa8('0x29')],_0x385208['query']);_0x5e96c9[_0x8aa8('0x2f')]=_[_0x8aa8('0x2e')](_0x385208[_0x8aa8('0x29')],qs[_0x8aa8('0x30')](_0x4c5c5c[_0x8aa8('0x2c')][_0x8aa8('0x30')]));_0x5e96c9[_0x8aa8('0x2f')]=_0x5e96c9[_0x8aa8('0x2f')][_0x8aa8('0x31')]?_0x5e96c9[_0x8aa8('0x2f')]:_0x385208[_0x8aa8('0x29')];if(_0x4c5c5c['query']['includeAll']){_0x5e96c9[_0x8aa8('0x32')]=[{'all':!![]}];}_0x5e96c9=_[_0x8aa8('0x33')]({},_0x5e96c9,_0x4c5c5c[_0x8aa8('0x34')]);return db[_0x8aa8('0x2b')][_0x8aa8('0x35')](_0x5e96c9)[_0x8aa8('0x24')](handleEntityNotFound(_0x10810d,null))['then'](respondWithResult(_0x10810d,null))['catch'](handleError(_0x10810d,null));};exports[_0x8aa8('0x36')]=function(_0x5755b5,_0x24997c){if(_0x5755b5[_0x8aa8('0x37')]['id']){delete _0x5755b5[_0x8aa8('0x37')]['id'];}return db['MailApplication'][_0x8aa8('0x35')]({'where':{'id':_0x5755b5[_0x8aa8('0x28')]['id']}})[_0x8aa8('0x24')](handleEntityNotFound(_0x24997c,null))['then'](saveUpdates(_0x5755b5['body'],null))[_0x8aa8('0x24')](respondWithResult(_0x24997c,null))[_0x8aa8('0x38')](handleError(_0x24997c,null));};exports['destroy']=function(_0x24eb18,_0x2e1f52){return db['MailApplication'][_0x8aa8('0x35')]({'where':{'id':_0x24eb18['params']['id']}})['then'](handleEntityNotFound(_0x2e1f52,null))[_0x8aa8('0x24')](removeEntity(_0x2e1f52,null))['catch'](handleError(_0x2e1f52,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2c60=['./mailApplication.attributes','exports','define','MailApplication','mail_applications','utf8mb4','utf8mb4_unicode_ci','lodash','api','moment','bluebird','request-promise','../../config/environment'];(function(_0x1d0c51,_0x536894){var _0x87aa54=function(_0x1e7378){while(--_0x1e7378){_0x1d0c51['push'](_0x1d0c51['shift']());}};_0x87aa54(++_0x536894);}(_0x2c60,0xbd));var _0x02c6=function(_0x34021d,_0x753aa6){_0x34021d=_0x34021d-0x0;var _0x16597b=_0x2c60[_0x34021d];return _0x16597b;};'use strict';var _=require(_0x02c6('0x0'));var util=require('util');var logger=require('../../config/logger')(_0x02c6('0x1'));var moment=require(_0x02c6('0x2'));var BPromise=require(_0x02c6('0x3'));var rp=require(_0x02c6('0x4'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0x02c6('0x5'));var attributes=require(_0x02c6('0x6'));module[_0x02c6('0x7')]=function(_0x71a7f5,_0x595b52){return _0x71a7f5[_0x02c6('0x8')](_0x02c6('0x9'),attributes,{'tableName':_0x02c6('0xa'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0x02c6('0xb'),'collate':_0x02c6('0xc')});};
\ No newline at end of file
+var _0x8124=['moment','path','../../config/environment','./mailApplication.attributes','exports','MailApplication','mail_applications','utf8mb4_unicode_ci','util','../../config/logger'];(function(_0x80ffab,_0x14298a){var _0x4f5ea9=function(_0x221952){while(--_0x221952){_0x80ffab['push'](_0x80ffab['shift']());}};_0x4f5ea9(++_0x14298a);}(_0x8124,0xee));var _0x4812=function(_0x317cc3,_0x319661){_0x317cc3=_0x317cc3-0x0;var _0x329b98=_0x8124[_0x317cc3];return _0x329b98;};'use strict';var _=require('lodash');var util=require(_0x4812('0x0'));var logger=require(_0x4812('0x1'))('api');var moment=require(_0x4812('0x2'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0x4812('0x3'));var rimraf=require('rimraf');var config=require(_0x4812('0x4'));var attributes=require(_0x4812('0x5'));module[_0x4812('0x6')]=function(_0x8043f1,_0x4cafd5){return _0x8043f1['define'](_0x4812('0x7'),attributes,{'tableName':_0x4812('0x8'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':'utf8mb4','collate':_0x4812('0x9')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4af7=['request','then','info','MailApplication,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','MailApplication','body','options','where','attributes','limit','UpdateMailApplication','catch','util','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http'];(function(_0x4b369d,_0x265eb8){var _0x571a98=function(_0x56341a){while(--_0x56341a){_0x4b369d['push'](_0x4b369d['shift']());}};_0x571a98(++_0x265eb8);}(_0x4af7,0x121));var _0x74af=function(_0x1c8cc6,_0x411e5c){_0x1c8cc6=_0x1c8cc6-0x0;var _0x522936=_0x4af7[_0x1c8cc6];return _0x522936;};'use strict';var _=require('lodash');var util=require(_0x74af('0x0'));var moment=require(_0x74af('0x1'));var BPromise=require('bluebird');var rs=require(_0x74af('0x2'));var fs=require('fs');var Redis=require(_0x74af('0x3'));var db=require(_0x74af('0x4'))['db'];var utils=require(_0x74af('0x5'));var logger=require(_0x74af('0x6'))(_0x74af('0x7'));var config=require(_0x74af('0x8'));var jayson=require(_0x74af('0x9'));var client=jayson['client'][_0x74af('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x478bbd,_0x120655,_0x3d6c07){return new BPromise(function(_0x39bbe1,_0x1cbb82){return client[_0x74af('0xb')](_0x478bbd,_0x3d6c07)[_0x74af('0xc')](function(_0x19bb35){logger[_0x74af('0xd')](_0x74af('0xe'),_0x120655,_0x74af('0xf'));logger[_0x74af('0x10')]('MailApplication,\x20%s,\x20%s,\x20%s',_0x120655,_0x74af('0xf'),JSON[_0x74af('0x11')](_0x19bb35));if(_0x19bb35[_0x74af('0x12')]){if(_0x19bb35[_0x74af('0x12')][_0x74af('0x13')]===0x1f4){logger['error'](_0x74af('0xe'),_0x120655,_0x19bb35[_0x74af('0x12')][_0x74af('0x14')]);return _0x1cbb82(_0x19bb35[_0x74af('0x12')][_0x74af('0x14')]);}logger[_0x74af('0x12')](_0x74af('0xe'),_0x120655,_0x19bb35['error'][_0x74af('0x14')]);return _0x39bbe1(_0x19bb35['error'][_0x74af('0x14')]);}else{logger[_0x74af('0xd')]('MailApplication,\x20%s,\x20%s',_0x120655,'request\x20sent');_0x39bbe1(_0x19bb35[_0x74af('0x15')]['message']);}})['catch'](function(_0x467759){logger['error'](_0x74af('0xe'),_0x120655,_0x467759);_0x1cbb82(_0x467759);});});}exports['UpdateMailApplication']=function(_0xd1dc69){var _0x257f06=this;return new Promise(function(_0x389fdd,_0x52b297){return db[_0x74af('0x16')]['update'](_0xd1dc69[_0x74af('0x17')],{'raw':_0xd1dc69[_0x74af('0x18')]?_0xd1dc69['options']['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0xd1dc69['options']?_0xd1dc69['options'][_0x74af('0x19')]||null:null,'attributes':_0xd1dc69[_0x74af('0x18')]?_0xd1dc69[_0x74af('0x18')][_0x74af('0x1a')]||null:null,'limit':_0xd1dc69[_0x74af('0x18')]?_0xd1dc69['options'][_0x74af('0x1b')]||null:null})[_0x74af('0xc')](function(_0x11ac1b){logger[_0x74af('0xd')](_0x74af('0x1c'),_0xd1dc69);logger[_0x74af('0x10')](_0x74af('0x1c'),_0xd1dc69,JSON[_0x74af('0x11')](_0x11ac1b));_0x389fdd(_0x11ac1b);})[_0x74af('0x1d')](function(_0x33a4d1){logger[_0x74af('0x12')]('UpdateMailApplication',_0x33a4d1[_0x74af('0x14')],_0xd1dc69);_0x52b297(_0x257f06[_0x74af('0x12')](0x1f4,_0x33a4d1[_0x74af('0x14')]));});});};
\ No newline at end of file
+var _0xfe01=['../../config/environment','jayson/promise','client','then','request\x20sent','debug','stringify','error','code','MailApplication,\x20%s,\x20%s','message','info','result','options','raw','where','attributes','limit','UpdateMailApplication','catch','lodash','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','rpc'];(function(_0x49d280,_0x33d68f){var _0x25274a=function(_0x8ace90){while(--_0x8ace90){_0x49d280['push'](_0x49d280['shift']());}};_0x25274a(++_0x33d68f);}(_0xfe01,0xd1));var _0x1fe0=function(_0x247063,_0x1727f6){_0x247063=_0x247063-0x0;var _0x48af13=_0xfe01[_0x247063];return _0x48af13;};'use strict';var _=require(_0x1fe0('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0x1fe0('0x1'));var rs=require(_0x1fe0('0x2'));var fs=require('fs');var Redis=require(_0x1fe0('0x3'));var db=require(_0x1fe0('0x4'))['db'];var utils=require(_0x1fe0('0x5'));var logger=require('../../config/logger')(_0x1fe0('0x6'));var config=require(_0x1fe0('0x7'));var jayson=require(_0x1fe0('0x8'));var client=jayson[_0x1fe0('0x9')]['http']({'port':0x232a});function respondWithRpcPromise(_0x4741a4,_0xf904c1,_0x14cc8d){return new BPromise(function(_0x2cc617,_0x1d8f47){return client['request'](_0x4741a4,_0x14cc8d)[_0x1fe0('0xa')](function(_0x39848f){logger['info']('MailApplication,\x20%s,\x20%s',_0xf904c1,_0x1fe0('0xb'));logger[_0x1fe0('0xc')]('MailApplication,\x20%s,\x20%s,\x20%s',_0xf904c1,_0x1fe0('0xb'),JSON[_0x1fe0('0xd')](_0x39848f));if(_0x39848f['error']){if(_0x39848f[_0x1fe0('0xe')][_0x1fe0('0xf')]===0x1f4){logger['error'](_0x1fe0('0x10'),_0xf904c1,_0x39848f['error']['message']);return _0x1d8f47(_0x39848f['error'][_0x1fe0('0x11')]);}logger[_0x1fe0('0xe')]('MailApplication,\x20%s,\x20%s',_0xf904c1,_0x39848f[_0x1fe0('0xe')]['message']);return _0x2cc617(_0x39848f[_0x1fe0('0xe')]['message']);}else{logger[_0x1fe0('0x12')](_0x1fe0('0x10'),_0xf904c1,_0x1fe0('0xb'));_0x2cc617(_0x39848f[_0x1fe0('0x13')][_0x1fe0('0x11')]);}})['catch'](function(_0x177eac){logger[_0x1fe0('0xe')](_0x1fe0('0x10'),_0xf904c1,_0x177eac);_0x1d8f47(_0x177eac);});});}exports['UpdateMailApplication']=function(_0x3bdfb2){var _0x4b8c40=this;return new Promise(function(_0x5a04e8,_0x2cd900){return db['MailApplication']['update'](_0x3bdfb2['body'],{'raw':_0x3bdfb2[_0x1fe0('0x14')]?_0x3bdfb2[_0x1fe0('0x14')][_0x1fe0('0x15')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x3bdfb2[_0x1fe0('0x14')]?_0x3bdfb2['options'][_0x1fe0('0x16')]||null:null,'attributes':_0x3bdfb2[_0x1fe0('0x14')]?_0x3bdfb2['options'][_0x1fe0('0x17')]||null:null,'limit':_0x3bdfb2['options']?_0x3bdfb2['options'][_0x1fe0('0x18')]||null:null})['then'](function(_0x4fb4e8){logger[_0x1fe0('0x12')](_0x1fe0('0x19'),_0x3bdfb2);logger['debug'](_0x1fe0('0x19'),_0x3bdfb2,JSON[_0x1fe0('0xd')](_0x4fb4e8));_0x5a04e8(_0x4fb4e8);})[_0x1fe0('0x1a')](function(_0x429ebb){logger[_0x1fe0('0xe')](_0x1fe0('0x19'),_0x429ebb[_0x1fe0('0x11')],_0x3bdfb2);_0x2cd900(_0x4b8c40[_0x1fe0('0xe')](0x1f4,_0x429ebb[_0x1fe0('0x11')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6839=['show','/:id/messages','download','post','addMessage','/:id/tags','tracked','mail','addTags','put','update','delete','mailinteraction:destroy','destroy','removeTags','exports','express','Router','../../components/interaction/service','./mailInteraction.controller','get','isAuthenticated','/:id'];(function(_0x3947c9,_0x4d6c97){var _0x2e7871=function(_0x1236cc){while(--_0x1236cc){_0x3947c9['push'](_0x3947c9['shift']());}};_0x2e7871(++_0x4d6c97);}(_0x6839,0x83));var _0x9683=function(_0x45d1b1,_0x328cb0){_0x45d1b1=_0x45d1b1-0x0;var _0x313c30=_0x6839[_0x45d1b1];return _0x313c30;};'use strict';var express=require(_0x9683('0x0'));var router=express[_0x9683('0x1')]();var auth=require('../../components/auth/service');var interaction=require(_0x9683('0x2'));var controller=require(_0x9683('0x3'));router[_0x9683('0x4')]('/',auth[_0x9683('0x5')](),controller['index']);router['get']('/describe',auth[_0x9683('0x5')](),controller['describe']);router[_0x9683('0x4')](_0x9683('0x6'),auth[_0x9683('0x5')](),controller[_0x9683('0x7')]);router[_0x9683('0x4')](_0x9683('0x8'),auth[_0x9683('0x5')](),controller['getMessages']);router[_0x9683('0x4')]('/:id/download',auth['isAuthenticated'](),controller[_0x9683('0x9')]);router['post']('/',auth[_0x9683('0x5')](),controller['create']);router[_0x9683('0xa')](_0x9683('0x8'),auth['isAuthenticated'](),controller[_0x9683('0xb')]);router[_0x9683('0xa')](_0x9683('0xc'),auth['isAuthenticated'](),interaction[_0x9683('0xd')](_0x9683('0xe'),'mailinteraction:addtags'),controller[_0x9683('0xf')]);router[_0x9683('0x10')](_0x9683('0x6'),auth[_0x9683('0x5')](),interaction['tracked']('mail','mailinteraction:update'),controller[_0x9683('0x11')]);router[_0x9683('0x12')](_0x9683('0x6'),auth[_0x9683('0x5')](),interaction[_0x9683('0xd')]('mail',_0x9683('0x13')),controller[_0x9683('0x14')]);router['delete'](_0x9683('0xc'),auth[_0x9683('0x5')](),controller[_0x9683('0x15')]);module[_0x9683('0x16')]=router;
\ No newline at end of file
+var _0xa81c=['../../components/interaction/service','./mailInteraction.controller','index','get','/describe','/:id','isAuthenticated','show','/:id/messages','getMessages','/:id/download','download','post','create','addMessage','tracked','mailinteraction:addtags','addTags','put','mail','mailinteraction:update','update','delete','mailinteraction:destroy','destroy','/:id/tags','removeTags','exports','express','Router','../../components/auth/service'];(function(_0x21d162,_0x17cde8){var _0x56b948=function(_0x177310){while(--_0x177310){_0x21d162['push'](_0x21d162['shift']());}};_0x56b948(++_0x17cde8);}(_0xa81c,0x1ce));var _0xca81=function(_0x4d25be,_0x5470f9){_0x4d25be=_0x4d25be-0x0;var _0x485813=_0xa81c[_0x4d25be];return _0x485813;};'use strict';var express=require(_0xca81('0x0'));var router=express[_0xca81('0x1')]();var auth=require(_0xca81('0x2'));var interaction=require(_0xca81('0x3'));var controller=require(_0xca81('0x4'));router['get']('/',auth['isAuthenticated'](),controller[_0xca81('0x5')]);router[_0xca81('0x6')](_0xca81('0x7'),auth['isAuthenticated'](),controller['describe']);router[_0xca81('0x6')](_0xca81('0x8'),auth[_0xca81('0x9')](),controller[_0xca81('0xa')]);router[_0xca81('0x6')](_0xca81('0xb'),auth['isAuthenticated'](),controller[_0xca81('0xc')]);router[_0xca81('0x6')](_0xca81('0xd'),auth[_0xca81('0x9')](),controller[_0xca81('0xe')]);router[_0xca81('0xf')]('/',auth[_0xca81('0x9')](),controller[_0xca81('0x10')]);router[_0xca81('0xf')](_0xca81('0xb'),auth[_0xca81('0x9')](),controller[_0xca81('0x11')]);router[_0xca81('0xf')]('/:id/tags',auth[_0xca81('0x9')](),interaction[_0xca81('0x12')]('mail',_0xca81('0x13')),controller[_0xca81('0x14')]);router[_0xca81('0x15')](_0xca81('0x8'),auth[_0xca81('0x9')](),interaction['tracked'](_0xca81('0x16'),_0xca81('0x17')),controller[_0xca81('0x18')]);router[_0xca81('0x19')](_0xca81('0x8'),auth[_0xca81('0x9')](),interaction['tracked'](_0xca81('0x16'),_0xca81('0x1a')),controller[_0xca81('0x1b')]);router[_0xca81('0x19')](_0xca81('0x1c'),auth[_0xca81('0x9')](),controller[_0xca81('0x1d')]);module[_0xca81('0x1e')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x20a5=['ENUM','out','sequelize','iconv','BOOLEAN','STRING','TEXT','long','DATE'];(function(_0x2827f9,_0x2682a8){var _0x5a00a5=function(_0x5b2dec){while(--_0x5b2dec){_0x2827f9['push'](_0x2827f9['shift']());}};_0x5a00a5(++_0x2682a8);}(_0x20a5,0x122));var _0x520a=function(_0x102a10,_0x116011){_0x102a10=_0x102a10-0x0;var _0x48c39f=_0x20a5[_0x102a10];return _0x48c39f;};'use strict';var Sequelize=require(_0x520a('0x0'));var iconv=require(_0x520a('0x1'));module['exports']={'closed':{'type':Sequelize[_0x520a('0x2')],'defaultValue':![]},'closedAt':{'type':Sequelize['DATE']},'disposition':{'type':Sequelize[_0x520a('0x3')]},'secondDisposition':{'type':Sequelize[_0x520a('0x3')]},'thirdDisposition':{'type':Sequelize[_0x520a('0x3')]},'note':{'type':Sequelize[_0x520a('0x3')]},'inReplyTo':{'type':Sequelize['STRING'](0x1fe)},'to':{'type':Sequelize[_0x520a('0x3')]},'cc':{'type':Sequelize[_0x520a('0x4')](_0x520a('0x5'))},'subject':{'type':Sequelize[_0x520a('0x4')]()},'attach':{'type':Sequelize[_0x520a('0x2')],'defaultValue':![]},'read1stAt':{'type':Sequelize['DATE']},'substatus':{'type':Sequelize[_0x520a('0x3')](0x3c)},'substatusAt':{'type':Sequelize[_0x520a('0x6')]},'firstMsgDirection':{'type':Sequelize[_0x520a('0x7')]('in',_0x520a('0x8')),'defaultValue':'in','allowNull':![]},'lastMsgAt':{'type':Sequelize['DATE']},'lastMsgDirection':{'type':Sequelize['ENUM']('in',_0x520a('0x8')),'defaultValue':'in','allowNull':![]},'autoreplyExecuted':{'type':Sequelize[_0x520a('0x2')],'defaultValue':![]}};
\ No newline at end of file
+var _0xd9c5=['BOOLEAN','DATE','STRING','TEXT','out','ENUM','sequelize','exports'];(function(_0x76cea6,_0x5cbef7){var _0x41bdce=function(_0x248078){while(--_0x248078){_0x76cea6['push'](_0x76cea6['shift']());}};_0x41bdce(++_0x5cbef7);}(_0xd9c5,0x196));var _0x5d9c=function(_0x43faa8,_0x274e4c){_0x43faa8=_0x43faa8-0x0;var _0x346bbf=_0xd9c5[_0x43faa8];return _0x346bbf;};'use strict';var Sequelize=require(_0x5d9c('0x0'));var iconv=require('iconv');module[_0x5d9c('0x1')]={'closed':{'type':Sequelize[_0x5d9c('0x2')],'defaultValue':![]},'closedAt':{'type':Sequelize[_0x5d9c('0x3')]},'disposition':{'type':Sequelize['STRING']},'secondDisposition':{'type':Sequelize[_0x5d9c('0x4')]},'thirdDisposition':{'type':Sequelize[_0x5d9c('0x4')]},'note':{'type':Sequelize[_0x5d9c('0x4')]},'inReplyTo':{'type':Sequelize[_0x5d9c('0x4')](0x1fe)},'to':{'type':Sequelize[_0x5d9c('0x4')]},'cc':{'type':Sequelize[_0x5d9c('0x5')]('long')},'subject':{'type':Sequelize[_0x5d9c('0x5')]()},'attach':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'read1stAt':{'type':Sequelize[_0x5d9c('0x3')]},'substatus':{'type':Sequelize[_0x5d9c('0x4')](0x3c)},'substatusAt':{'type':Sequelize[_0x5d9c('0x3')]},'firstMsgDirection':{'type':Sequelize['ENUM']('in',_0x5d9c('0x6')),'defaultValue':'in','allowNull':![]},'lastMsgAt':{'type':Sequelize[_0x5d9c('0x3')]},'lastMsgDirection':{'type':Sequelize[_0x5d9c('0x7')]('in',_0x5d9c('0x6')),'defaultValue':'in','allowNull':![]},'autoreplyExecuted':{'type':Sequelize['BOOLEAN'],'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(_0x134c2e,_0x3573c4){var _0x2825db=function(_0x2a574d){while(--_0x2a574d){_0x134c2e['push'](_0x134c2e['shift']());}};_0x2825db(++_0x3573c4);}(_0xb10b,0x12a));var _0xbb10=function(_0xf6ea70,_0x7c1c6e){_0xf6ea70=_0xf6ea70-0x0;var _0x24898a=_0xb10b[_0xf6ea70];return _0x24898a;};'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 _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(_0x5783f4,_0x4a9e0a){var _0x28e380=function(_0x1ffc49){while(--_0x1ffc49){_0x5783f4['push'](_0x5783f4['shift']());}};_0x28e380(++_0x4a9e0a);}(_0xb10b,0x12a));var _0xbb10=function(_0x13e300,_0x1bcb41){_0x13e300=_0x13e300-0x0;var _0x5a3eea=_0xb10b[_0x13e300];return _0x5a3eea;};'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
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa81e=['setDataValue','unreadMessages','length','emit','catch','hasOwnProperty','../../mysqldb','MailInteraction','MailMessage','setMaxListeners','update','then','findAll'];(function(_0x4cfb43,_0x1829dc){var _0x41a9ea=function(_0xc2288d){while(--_0xc2288d){_0x4cfb43['push'](_0x4cfb43['shift']());}};_0x41a9ea(++_0x1829dc);}(_0xa81e,0x1a6));var _0xea81=function(_0x4b055c,_0x4b870b){_0x4b055c=_0x4b055c-0x0;var _0x4b62bb=_0xa81e[_0x4b055c];return _0x4b62bb;};'use strict';var EventEmitter=require('events');var MailInteraction=require(_0xea81('0x0'))['db'][_0xea81('0x1')];var MailMessage=require('../../mysqldb')['db'][_0xea81('0x2')];var MailInteractionEvents=new EventEmitter();MailInteractionEvents[_0xea81('0x3')](0x0);var events={'afterCreate':'save','afterUpdate':_0xea81('0x4'),'afterDestroy':'remove'};function emitEvent(_0x4522d5){return function(_0x4aa01f,_0x257613,_0x9582cf){_0x4aa01f['getUsers']({'attributes':['id'],'raw':!![]})[_0xea81('0x5')](function(_0x4b038b){_0x4aa01f['setDataValue']('Users',_0x4b038b['map'](function(_0x5bed57){return{'id':_0x5bed57['id']};}));return MailMessage[_0xea81('0x6')]({'where':{'MailInteractionId':_0x4aa01f['id'],'direction':'in','read':![]},'raw':!![]});})[_0xea81('0x5')](function(_0x3c5c84){_0x4aa01f[_0xea81('0x7')](_0xea81('0x8'),_0x3c5c84[_0xea81('0x9')]);MailInteractionEvents[_0xea81('0xa')](_0x4522d5+':'+_0x4aa01f['id'],_0x4aa01f);MailInteractionEvents[_0xea81('0xa')](_0x4522d5,_0x4aa01f);_0x9582cf(null);})[_0xea81('0xb')](_0x9582cf(null));};}for(var e in events){if(events[_0xea81('0xc')](e)){var event=events[e];MailInteraction['hook'](e,emitEvent(event));}}module['exports']=MailInteractionEvents;
\ No newline at end of file
+var _0x542a=['../../mysqldb','MailMessage','setMaxListeners','save','update','remove','getUsers','setDataValue','map','findAll','then','unreadMessages','emit','hasOwnProperty','hook','exports'];(function(_0x206aba,_0x5726d4){var _0x44e31f=function(_0x5f3a2e){while(--_0x5f3a2e){_0x206aba['push'](_0x206aba['shift']());}};_0x44e31f(++_0x5726d4);}(_0x542a,0xa0));var _0xa542=function(_0x138644,_0x429855){_0x138644=_0x138644-0x0;var _0x5c2f82=_0x542a[_0x138644];return _0x5c2f82;};'use strict';var EventEmitter=require('events');var MailInteraction=require(_0xa542('0x0'))['db']['MailInteraction'];var MailMessage=require(_0xa542('0x0'))['db'][_0xa542('0x1')];var MailInteractionEvents=new EventEmitter();MailInteractionEvents[_0xa542('0x2')](0x0);var events={'afterCreate':_0xa542('0x3'),'afterUpdate':_0xa542('0x4'),'afterDestroy':_0xa542('0x5')};function emitEvent(_0x52bf7b){return function(_0x2a8b77,_0x262b9d,_0x3d0873){_0x2a8b77[_0xa542('0x6')]({'attributes':['id'],'raw':!![]})['then'](function(_0x3542fc){_0x2a8b77[_0xa542('0x7')]('Users',_0x3542fc[_0xa542('0x8')](function(_0x42c9f7){return{'id':_0x42c9f7['id']};}));return MailMessage[_0xa542('0x9')]({'where':{'MailInteractionId':_0x2a8b77['id'],'direction':'in','read':![]},'raw':!![]});})[_0xa542('0xa')](function(_0x50bff1){_0x2a8b77[_0xa542('0x7')](_0xa542('0xb'),_0x50bff1['length']);MailInteractionEvents[_0xa542('0xc')](_0x52bf7b+':'+_0x2a8b77['id'],_0x2a8b77);MailInteractionEvents[_0xa542('0xc')](_0x52bf7b,_0x2a8b77);_0x3d0873(null);})['catch'](_0x3d0873(null));};}for(var e in events){if(events[_0xa542('0xd')](e)){var event=events[e];MailInteraction[_0xa542('0xe')](e,emitEvent(event));}}module[_0xa542('0xf')]=MailInteractionEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf366=['moment','path','rimraf','../../config/environment','./mailInteraction.attributes','exports','define','MailInteraction','mail_interactions','fti_mail_interactions','FULLTEXT','substatus','format','closed','closedAt','YYYY-MM-DD\x20HH:mm:ss','substatusAt','get','then','catch','utf8mb4','utf8mb4_unicode_ci','../../config/logger','api'];(function(_0xa78f7a,_0x2e0638){var _0x51154c=function(_0x4ccfbe){while(--_0x4ccfbe){_0xa78f7a['push'](_0xa78f7a['shift']());}};_0x51154c(++_0x2e0638);}(_0xf366,0xbe));var _0x6f36=function(_0x25aac6,_0x5eeeaa){_0x25aac6=_0x25aac6-0x0;var _0x1d033f=_0xf366[_0x25aac6];return _0x1d033f;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x6f36('0x0'))(_0x6f36('0x1'));var moment=require(_0x6f36('0x2'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0x6f36('0x3'));var rimraf=require(_0x6f36('0x4'));var config=require(_0x6f36('0x5'));var attributes=require(_0x6f36('0x6'));module[_0x6f36('0x7')]=function(_0x2fc21a,_0x55d97e){return _0x2fc21a[_0x6f36('0x8')](_0x6f36('0x9'),attributes,{'tableName':_0x6f36('0xa'),'paranoid':![],'indexes':[{'name':_0x6f36('0xb'),'fields':['subject','to'],'type':_0x6f36('0xc')}],'timestamps':!![],'hooks':{'beforeCreate':function(_0x2220e4,_0x5c9254,_0x2911af){if(_0x2220e4[_0x6f36('0xd')]){_0x2220e4['substatusAt']=moment()[_0x6f36('0xe')]('YYYY-MM-DD\x20HH:mm:ss');}if(_0x2220e4[_0x6f36('0xf')]){_0x2220e4[_0x6f36('0x10')]=moment()[_0x6f36('0xe')](_0x6f36('0x11'));}_0x2911af(null,_0x5c9254);},'beforeUpdate':function(_0x448866,_0x5bf670,_0x42ac6b){if(_0x448866['changed']('substatus')){_0x448866['substatusAt']=_0x448866[_0x6f36('0xd')]?moment()[_0x6f36('0xe')](_0x6f36('0x11')):null;}if(_0x448866['changed'](_0x6f36('0xf'))){_0x448866[_0x6f36('0x10')]=moment()[_0x6f36('0xe')](_0x6f36('0x11'));_0x448866['substatus']=null;_0x448866[_0x6f36('0x12')]=null;}_0x42ac6b(null,_0x448866);},'afterUpdate':function(_0x17710e,_0x26675a,_0x2e9428){var _0x2d45b4=_0x2fc21a['models'];var _0x3225db=_0x17710e[_0x6f36('0x13')]({'plain':!![]});if(_0x3225db[_0x6f36('0xf')]){return _0x2d45b4['MailMessage']['update']({'read':!![]},{'where':{'MailInteractionId':_0x3225db['id']}})[_0x6f36('0x14')](function(){_0x2e9428();})[_0x6f36('0x15')](function(_0x2917b3){_0x2e9428(_0x2917b3);});}else{_0x2e9428();}}},'charset':_0x6f36('0x16'),'collate':_0x6f36('0x17')});};
\ No newline at end of file
+var _0xecca=['subject','FULLTEXT','substatus','substatusAt','format','closedAt','YYYY-MM-DD\x20HH:mm:ss','changed','closed','models','get','MailMessage','update','then','catch','utf8mb4','utf8mb4_unicode_ci','lodash','util','moment','request-promise','path','../../config/environment','MailInteraction','mail_interactions','fti_mail_interactions'];(function(_0x319fa0,_0x31377a){var _0x464fee=function(_0x503a37){while(--_0x503a37){_0x319fa0['push'](_0x319fa0['shift']());}};_0x464fee(++_0x31377a);}(_0xecca,0x17d));var _0xaecc=function(_0x21a9d9,_0x4d5ac8){_0x21a9d9=_0x21a9d9-0x0;var _0x46adce=_0xecca[_0x21a9d9];return _0x46adce;};'use strict';var _=require(_0xaecc('0x0'));var util=require(_0xaecc('0x1'));var logger=require('../../config/logger')('api');var moment=require(_0xaecc('0x2'));var BPromise=require('bluebird');var rp=require(_0xaecc('0x3'));var fs=require('fs');var path=require(_0xaecc('0x4'));var rimraf=require('rimraf');var config=require(_0xaecc('0x5'));var attributes=require('./mailInteraction.attributes');module['exports']=function(_0x5c2037,_0x2e3e2f){return _0x5c2037['define'](_0xaecc('0x6'),attributes,{'tableName':_0xaecc('0x7'),'paranoid':![],'indexes':[{'name':_0xaecc('0x8'),'fields':[_0xaecc('0x9'),'to'],'type':_0xaecc('0xa')}],'timestamps':!![],'hooks':{'beforeCreate':function(_0x188063,_0x1cac42,_0x1c32db){if(_0x188063[_0xaecc('0xb')]){_0x188063[_0xaecc('0xc')]=moment()[_0xaecc('0xd')]('YYYY-MM-DD\x20HH:mm:ss');}if(_0x188063['closed']){_0x188063[_0xaecc('0xe')]=moment()[_0xaecc('0xd')](_0xaecc('0xf'));}_0x1c32db(null,_0x1cac42);},'beforeUpdate':function(_0x4cf73f,_0x2b5b10,_0x1cb516){if(_0x4cf73f[_0xaecc('0x10')](_0xaecc('0xb'))){_0x4cf73f[_0xaecc('0xc')]=_0x4cf73f[_0xaecc('0xb')]?moment()[_0xaecc('0xd')](_0xaecc('0xf')):null;}if(_0x4cf73f[_0xaecc('0x10')](_0xaecc('0x11'))){_0x4cf73f[_0xaecc('0xe')]=moment()[_0xaecc('0xd')](_0xaecc('0xf'));_0x4cf73f[_0xaecc('0xb')]=null;_0x4cf73f[_0xaecc('0xc')]=null;}_0x1cb516(null,_0x4cf73f);},'afterUpdate':function(_0x38f71d,_0x21f10f,_0x31239e){var _0x49b04e=_0x5c2037[_0xaecc('0x12')];var _0x5178fc=_0x38f71d[_0xaecc('0x13')]({'plain':!![]});if(_0x5178fc[_0xaecc('0x11')]){return _0x49b04e[_0xaecc('0x14')][_0xaecc('0x15')]({'read':!![]},{'where':{'MailInteractionId':_0x5178fc['id']}})[_0xaecc('0x16')](function(){_0x31239e();})[_0xaecc('0x17')](function(_0x4dff34){_0x31239e(_0x4dff34);});}else{_0x31239e();}}},'charset':_0xaecc('0x18'),'collate':_0xaecc('0x19')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3e1d=['localhost','socket.io-emitter','request','then','info','MailInteraction,\x20%s,\x20%s','request\x20sent','debug','MailInteraction,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','MailInteraction','update','body','options','raw','where','attributes','limit','UpdateMailInteraction','AddTagsToMailInteraction','addTags','ids','omit','spread','AddTags','lodash','moment','bluebird','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','redis','defaults'];(function(_0x4169d1,_0x30a16a){var _0x3ea5f6=function(_0x1d0b03){while(--_0x1d0b03){_0x4169d1['push'](_0x4169d1['shift']());}};_0x3ea5f6(++_0x30a16a);}(_0x3e1d,0x70));var _0xd3e1=function(_0x2986fb,_0x9482a0){_0x2986fb=_0x2986fb-0x0;var _0xb3c156=_0x3e1d[_0x2986fb];return _0xb3c156;};'use strict';var _=require(_0xd3e1('0x0'));var util=require('util');var moment=require(_0xd3e1('0x1'));var BPromise=require(_0xd3e1('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0xd3e1('0x3'));var logger=require(_0xd3e1('0x4'))(_0xd3e1('0x5'));var config=require(_0xd3e1('0x6'));var jayson=require(_0xd3e1('0x7'));var client=jayson[_0xd3e1('0x8')]['http']({'port':0x232a});config[_0xd3e1('0x9')]=_[_0xd3e1('0xa')](config[_0xd3e1('0x9')],{'host':_0xd3e1('0xb'),'port':0x18eb});var socket=require(_0xd3e1('0xc'))(new Redis(config['redis']));require('./mailInteraction.socket')['register'](socket);function respondWithRpcPromise(_0x2c0aae,_0x24c287,_0xd6c58b){return new BPromise(function(_0x3bc69f,_0x535b77){return client[_0xd3e1('0xd')](_0x2c0aae,_0xd6c58b)[_0xd3e1('0xe')](function(_0x5711a6){logger[_0xd3e1('0xf')](_0xd3e1('0x10'),_0x24c287,_0xd3e1('0x11'));logger[_0xd3e1('0x12')](_0xd3e1('0x13'),_0x24c287,_0xd3e1('0x11'),JSON[_0xd3e1('0x14')](_0x5711a6));if(_0x5711a6[_0xd3e1('0x15')]){if(_0x5711a6[_0xd3e1('0x15')][_0xd3e1('0x16')]===0x1f4){logger[_0xd3e1('0x15')](_0xd3e1('0x10'),_0x24c287,_0x5711a6['error'][_0xd3e1('0x17')]);return _0x535b77(_0x5711a6[_0xd3e1('0x15')]['message']);}logger[_0xd3e1('0x15')]('MailInteraction,\x20%s,\x20%s',_0x24c287,_0x5711a6[_0xd3e1('0x15')][_0xd3e1('0x17')]);return _0x3bc69f(_0x5711a6[_0xd3e1('0x15')][_0xd3e1('0x17')]);}else{logger['info'](_0xd3e1('0x10'),_0x24c287,_0xd3e1('0x11'));_0x3bc69f(_0x5711a6[_0xd3e1('0x18')][_0xd3e1('0x17')]);}})[_0xd3e1('0x19')](function(_0x144c49){logger[_0xd3e1('0x15')](_0xd3e1('0x10'),_0x24c287,_0x144c49);_0x535b77(_0x144c49);});});}exports['UpdateMailInteraction']=function(_0x589c48){var _0x2381a=this;return new Promise(function(_0x345cda,_0x707e7c){return db[_0xd3e1('0x1a')][_0xd3e1('0x1b')](_0x589c48[_0xd3e1('0x1c')],{'raw':_0x589c48[_0xd3e1('0x1d')]?_0x589c48[_0xd3e1('0x1d')][_0xd3e1('0x1e')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x589c48[_0xd3e1('0x1d')]?_0x589c48[_0xd3e1('0x1d')][_0xd3e1('0x1f')]||null:null,'attributes':_0x589c48[_0xd3e1('0x1d')]?_0x589c48['options'][_0xd3e1('0x20')]||null:null,'limit':_0x589c48[_0xd3e1('0x1d')]?_0x589c48[_0xd3e1('0x1d')][_0xd3e1('0x21')]||null:null})[_0xd3e1('0xe')](function(_0x200fd3){logger[_0xd3e1('0xf')]('UpdateMailInteraction',_0x589c48);logger['debug']('UpdateMailInteraction',_0x589c48,JSON[_0xd3e1('0x14')](_0x200fd3));_0x345cda(_0x200fd3);})[_0xd3e1('0x19')](function(_0x50747a){logger[_0xd3e1('0x15')](_0xd3e1('0x22'),_0x50747a[_0xd3e1('0x17')],_0x589c48);_0x707e7c(_0x2381a[_0xd3e1('0x15')](0x1f4,_0x50747a[_0xd3e1('0x17')]));});});};exports[_0xd3e1('0x23')]=function(_0x313eb7){return new Promise(function(_0x1c4b4a,_0x2285f2){return db[_0xd3e1('0x1a')]['find']({'where':_0x313eb7[_0xd3e1('0x1d')]?_0x313eb7[_0xd3e1('0x1d')]['where']||null:null})[_0xd3e1('0xe')](function(_0xcb543){if(_0xcb543){return _0xcb543[_0xd3e1('0x24')](_0x313eb7['body'][_0xd3e1('0x25')],_[_0xd3e1('0x26')](_0x313eb7['body'],['ids','id'])||{});}})[_0xd3e1('0x27')](function(_0xbc119c){logger[_0xd3e1('0xf')](_0xd3e1('0x28'),_0x313eb7);logger[_0xd3e1('0x12')](_0xd3e1('0x28'),_0x313eb7,JSON[_0xd3e1('0x14')](_0xbc119c));_0x1c4b4a(_0xbc119c);})[_0xd3e1('0x19')](function(_0x3051b9){logger['error'](_0xd3e1('0x28'),_0x3051b9[_0xd3e1('0x17')],_0x313eb7);_0x2285f2(_this['error'](0x1f4,_0x3051b9['message']));});});};
\ No newline at end of file
+var _0xc15b=['limit','AddTagsToMailInteraction','then','addTags','omit','ids','spread','AddTags','catch','lodash','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','redis','localhost','socket.io-emitter','register','request','MailInteraction,\x20%s,\x20%s','request\x20sent','debug','MailInteraction,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','UpdateMailInteraction','MailInteraction','update','body','options','raw','where','attributes'];(function(_0xa2581c,_0x384654){var _0x407b06=function(_0x56fd6b){while(--_0x56fd6b){_0xa2581c['push'](_0xa2581c['shift']());}};_0x407b06(++_0x384654);}(_0xc15b,0x159));var _0xbc15=function(_0x231e16,_0x67347b){_0x231e16=_0x231e16-0x0;var _0x570a7c=_0xc15b[_0x231e16];return _0x570a7c;};'use strict';var _=require(_0xbc15('0x0'));var util=require('util');var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0xbc15('0x1'));var fs=require('fs');var Redis=require(_0xbc15('0x2'));var db=require(_0xbc15('0x3'))['db'];var utils=require(_0xbc15('0x4'));var logger=require(_0xbc15('0x5'))(_0xbc15('0x6'));var config=require(_0xbc15('0x7'));var jayson=require(_0xbc15('0x8'));var client=jayson[_0xbc15('0x9')]['http']({'port':0x232a});config[_0xbc15('0xa')]=_['defaults'](config['redis'],{'host':_0xbc15('0xb'),'port':0x18eb});var socket=require(_0xbc15('0xc'))(new Redis(config[_0xbc15('0xa')]));require('./mailInteraction.socket')[_0xbc15('0xd')](socket);function respondWithRpcPromise(_0x3ba035,_0x4fdbe5,_0x5e2eff){return new BPromise(function(_0x2e834c,_0x424c53){return client[_0xbc15('0xe')](_0x3ba035,_0x5e2eff)['then'](function(_0x19d8e3){logger['info'](_0xbc15('0xf'),_0x4fdbe5,_0xbc15('0x10'));logger[_0xbc15('0x11')](_0xbc15('0x12'),_0x4fdbe5,'request\x20sent',JSON[_0xbc15('0x13')](_0x19d8e3));if(_0x19d8e3[_0xbc15('0x14')]){if(_0x19d8e3['error'][_0xbc15('0x15')]===0x1f4){logger['error']('MailInteraction,\x20%s,\x20%s',_0x4fdbe5,_0x19d8e3['error'][_0xbc15('0x16')]);return _0x424c53(_0x19d8e3[_0xbc15('0x14')][_0xbc15('0x16')]);}logger[_0xbc15('0x14')](_0xbc15('0xf'),_0x4fdbe5,_0x19d8e3[_0xbc15('0x14')][_0xbc15('0x16')]);return _0x2e834c(_0x19d8e3[_0xbc15('0x14')][_0xbc15('0x16')]);}else{logger[_0xbc15('0x17')](_0xbc15('0xf'),_0x4fdbe5,_0xbc15('0x10'));_0x2e834c(_0x19d8e3[_0xbc15('0x18')][_0xbc15('0x16')]);}})['catch'](function(_0x47d11f){logger[_0xbc15('0x14')](_0xbc15('0xf'),_0x4fdbe5,_0x47d11f);_0x424c53(_0x47d11f);});});}exports[_0xbc15('0x19')]=function(_0x353e5){var _0x58cc43=this;return new Promise(function(_0xd5c56a,_0x14be9f){return db[_0xbc15('0x1a')][_0xbc15('0x1b')](_0x353e5[_0xbc15('0x1c')],{'raw':_0x353e5[_0xbc15('0x1d')]?_0x353e5['options'][_0xbc15('0x1e')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x353e5['options']?_0x353e5[_0xbc15('0x1d')][_0xbc15('0x1f')]||null:null,'attributes':_0x353e5[_0xbc15('0x1d')]?_0x353e5[_0xbc15('0x1d')][_0xbc15('0x20')]||null:null,'limit':_0x353e5[_0xbc15('0x1d')]?_0x353e5['options'][_0xbc15('0x21')]||null:null})['then'](function(_0x1f0efd){logger['info'](_0xbc15('0x19'),_0x353e5);logger['debug'](_0xbc15('0x19'),_0x353e5,JSON[_0xbc15('0x13')](_0x1f0efd));_0xd5c56a(_0x1f0efd);})['catch'](function(_0x4e82bd){logger[_0xbc15('0x14')](_0xbc15('0x19'),_0x4e82bd[_0xbc15('0x16')],_0x353e5);_0x14be9f(_0x58cc43[_0xbc15('0x14')](0x1f4,_0x4e82bd[_0xbc15('0x16')]));});});};exports[_0xbc15('0x22')]=function(_0x78f403){return new Promise(function(_0x7d1b30,_0x39a532){return db['MailInteraction']['find']({'where':_0x78f403[_0xbc15('0x1d')]?_0x78f403[_0xbc15('0x1d')][_0xbc15('0x1f')]||null:null})[_0xbc15('0x23')](function(_0x27eb65){if(_0x27eb65){return _0x27eb65[_0xbc15('0x24')](_0x78f403['body']['ids'],_[_0xbc15('0x25')](_0x78f403[_0xbc15('0x1c')],[_0xbc15('0x26'),'id'])||{});}})[_0xbc15('0x27')](function(_0x2a43d6){logger[_0xbc15('0x17')](_0xbc15('0x28'),_0x78f403);logger[_0xbc15('0x11')](_0xbc15('0x28'),_0x78f403,JSON[_0xbc15('0x13')](_0x2a43d6));_0x7d1b30(_0x2a43d6);})[_0xbc15('0x29')](function(_0xc5fd0a){logger[_0xbc15('0x14')]('AddTags',_0xc5fd0a[_0xbc15('0x16')],_0x78f403);_0x39a532(_this[_0xbc15('0x14')](0x1f4,_0xc5fd0a[_0xbc15('0x16')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc85e=['register','length','mailInteraction:','./mailInteraction.events','save','update','emit'];(function(_0x21d058,_0x404510){var _0x4182a2=function(_0x875f15){while(--_0x875f15){_0x21d058['push'](_0x21d058['shift']());}};_0x4182a2(++_0x404510);}(_0xc85e,0x114));var _0xec85=function(_0x59c848,_0x5e2f47){_0x59c848=_0x59c848-0x0;var _0x35ddda=_0xc85e[_0x59c848];return _0x35ddda;};'use strict';var MailInteractionEvents=require(_0xec85('0x0'));var events=[_0xec85('0x1'),'remove',_0xec85('0x2')];function createListener(_0x3537c8,_0x128309){return function(_0x8e5325){_0x128309[_0xec85('0x3')](_0x3537c8,_0x8e5325);};}function removeListener(_0x1d9233,_0x44c3d0){return function(){MailInteractionEvents['removeListener'](_0x1d9233,_0x44c3d0);};}exports[_0xec85('0x4')]=function(_0x364b18){for(var _0x57eeda=0x0,_0x43d060=events[_0xec85('0x5')];_0x57eeda<_0x43d060;_0x57eeda++){var _0x75eea1=events[_0x57eeda];var _0x3bc140=createListener(_0xec85('0x6')+_0x75eea1,_0x364b18);MailInteractionEvents['on'](_0x75eea1,_0x3bc140);}};
\ No newline at end of file
+var _0xe376=['update','emit','register','length','mailInteraction:','save','remove'];(function(_0x30b3f0,_0x210760){var _0x364438=function(_0x5bdf4d){while(--_0x5bdf4d){_0x30b3f0['push'](_0x30b3f0['shift']());}};_0x364438(++_0x210760);}(_0xe376,0x1be));var _0x6e37=function(_0x3f3f75,_0x5e215f){_0x3f3f75=_0x3f3f75-0x0;var _0x322635=_0xe376[_0x3f3f75];return _0x322635;};'use strict';var MailInteractionEvents=require('./mailInteraction.events');var events=[_0x6e37('0x0'),_0x6e37('0x1'),_0x6e37('0x2')];function createListener(_0x392b35,_0x22a12f){return function(_0x407de5){_0x22a12f[_0x6e37('0x3')](_0x392b35,_0x407de5);};}function removeListener(_0x51fab4,_0x4ac52a){return function(){MailInteractionEvents['removeListener'](_0x51fab4,_0x4ac52a);};}exports[_0x6e37('0x4')]=function(_0x482062){for(var _0x1cf3ce=0x0,_0x36dba1=events[_0x6e37('0x5')];_0x1cf3ce<_0x36dba1;_0x1cf3ce++){var _0x547c2f=events[_0x1cf3ce];var _0x4103df=createListener(_0x6e37('0x6')+_0x547c2f,_0x482062);MailInteractionEvents['on'](_0x547c2f,_0x4103df);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa477=['connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','describe','/:id','/:id/download','download','post','tracked','mail','mailmessage:create','create','update','put','/:id/accept','accept','reject','delete','destroy','exports','multer','util'];(function(_0xffe238,_0x1dff8b){var _0x4c7c89=function(_0x18b8b0){while(--_0x18b8b0){_0xffe238['push'](_0xffe238['shift']());}};_0x4c7c89(++_0x1dff8b);}(_0xa477,0xe6));var _0x7a47=function(_0x432682,_0x253044){_0x432682=_0x432682-0x0;var _0x463d05=_0xa477[_0x432682];return _0x463d05;};'use strict';var multer=require(_0x7a47('0x0'));var util=require(_0x7a47('0x1'));var path=require('path');var timeout=require(_0x7a47('0x2'));var express=require(_0x7a47('0x3'));var router=express[_0x7a47('0x4')]();var fs_extra=require(_0x7a47('0x5'));var auth=require(_0x7a47('0x6'));var interaction=require(_0x7a47('0x7'));var config=require(_0x7a47('0x8'));var controller=require('./mailMessage.controller');router[_0x7a47('0x9')]('/',auth[_0x7a47('0xa')](),controller[_0x7a47('0xb')]);router['get']('/describe',auth['isAuthenticated'](),controller[_0x7a47('0xc')]);router['get'](_0x7a47('0xd'),auth[_0x7a47('0xa')](),controller['show']);router[_0x7a47('0x9')](_0x7a47('0xe'),auth[_0x7a47('0xa')](),controller[_0x7a47('0xf')]);router[_0x7a47('0x10')]('/',auth['isAuthenticated'](),interaction[_0x7a47('0x11')](_0x7a47('0x12'),_0x7a47('0x13')),controller[_0x7a47('0x14')]);router['put'](_0x7a47('0xd'),auth[_0x7a47('0xa')](),controller[_0x7a47('0x15')]);router[_0x7a47('0x16')](_0x7a47('0x17'),auth[_0x7a47('0xa')](),controller[_0x7a47('0x18')]);router[_0x7a47('0x16')]('/:id/reject',auth[_0x7a47('0xa')](),controller[_0x7a47('0x19')]);router[_0x7a47('0x1a')](_0x7a47('0xd'),auth['isAuthenticated'](),controller[_0x7a47('0x1b')]);module[_0x7a47('0x1c')]=router;
\ No newline at end of file
+var _0xa664=['/:id/download','download','post','tracked','mail','mailmessage:create','create','put','update','/:id/accept','accept','/:id/reject','reject','delete','destroy','exports','util','path','connect-timeout','express','fs-extra','../../config/environment','./mailMessage.controller','get','isAuthenticated','index','/describe','describe','/:id'];(function(_0x39c341,_0x2f47ff){var _0x58f61e=function(_0x101e79){while(--_0x101e79){_0x39c341['push'](_0x39c341['shift']());}};_0x58f61e(++_0x2f47ff);}(_0xa664,0x132));var _0x4a66=function(_0x3b11e4,_0x5e7921){_0x3b11e4=_0x3b11e4-0x0;var _0x40ef43=_0xa664[_0x3b11e4];return _0x40ef43;};'use strict';var multer=require('multer');var util=require(_0x4a66('0x0'));var path=require(_0x4a66('0x1'));var timeout=require(_0x4a66('0x2'));var express=require(_0x4a66('0x3'));var router=express['Router']();var fs_extra=require(_0x4a66('0x4'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x4a66('0x5'));var controller=require(_0x4a66('0x6'));router[_0x4a66('0x7')]('/',auth[_0x4a66('0x8')](),controller[_0x4a66('0x9')]);router[_0x4a66('0x7')](_0x4a66('0xa'),auth['isAuthenticated'](),controller[_0x4a66('0xb')]);router[_0x4a66('0x7')](_0x4a66('0xc'),auth[_0x4a66('0x8')](),controller['show']);router[_0x4a66('0x7')](_0x4a66('0xd'),auth['isAuthenticated'](),controller[_0x4a66('0xe')]);router[_0x4a66('0xf')]('/',auth[_0x4a66('0x8')](),interaction[_0x4a66('0x10')](_0x4a66('0x11'),_0x4a66('0x12')),controller[_0x4a66('0x13')]);router[_0x4a66('0x14')](_0x4a66('0xc'),auth[_0x4a66('0x8')](),controller[_0x4a66('0x15')]);router[_0x4a66('0x14')](_0x4a66('0x16'),auth[_0x4a66('0x8')](),controller[_0x4a66('0x17')]);router[_0x4a66('0x14')](_0x4a66('0x18'),auth['isAuthenticated'](),controller[_0x4a66('0x19')]);router[_0x4a66('0x1a')](_0x4a66('0xc'),auth[_0x4a66('0x8')](),controller[_0x4a66('0x1b')]);module[_0x4a66('0x1c')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x46a1=['DATE','INTEGER','ENUM','Email','Chat','sequelize','lodash','exports','TEXT','long','medium','BOOLEAN','out','STRING'];(function(_0x445fa0,_0x4455ce){var _0x25fb47=function(_0x52ee38){while(--_0x52ee38){_0x445fa0['push'](_0x445fa0['shift']());}};_0x25fb47(++_0x4455ce);}(_0x46a1,0x67));var _0x146a=function(_0x39302f,_0x36bcdf){_0x39302f=_0x39302f-0x0;var _0x31f8ab=_0x46a1[_0x39302f];return _0x31f8ab;};'use strict';var Sequelize=require(_0x146a('0x0'));var _=require(_0x146a('0x1'));module[_0x146a('0x2')]={'body':{'type':Sequelize[_0x146a('0x3')](_0x146a('0x4')),'allowNull':![]},'plainBody':{'type':Sequelize[_0x146a('0x3')](_0x146a('0x5'))},'read':{'type':Sequelize[_0x146a('0x6')],'defaultValue':![]},'direction':{'type':Sequelize['ENUM']('in',_0x146a('0x7')),'defaultValue':_0x146a('0x7'),'allowNull':![]},'messageId':{'type':Sequelize[_0x146a('0x8')](0x1fe)},'from':{'type':Sequelize[_0x146a('0x8')]},'to':{'type':Sequelize[_0x146a('0x3')](_0x146a('0x4'))},'cc':{'type':Sequelize['TEXT'](_0x146a('0x4'))},'bcc':{'type':Sequelize['TEXT']('long')},'subject':{'type':Sequelize['TEXT']},'sentAt':{'type':Sequelize[_0x146a('0x9')]},'attach':{'type':Sequelize[_0x146a('0xa')],'defaultValue':0x0},'secret':{'type':Sequelize[_0x146a('0x6')],'defaultValue':![]},'readAt':{'type':Sequelize[_0x146a('0x9')]},'originTo':{'type':Sequelize[_0x146a('0x3')](_0x146a('0x4'))},'originCc':{'type':Sequelize[_0x146a('0x3')](_0x146a('0x4'))},'originChannel':{'type':Sequelize[_0x146a('0xb')](_0x146a('0xc'),_0x146a('0xd')),'defaultValue':_0x146a('0xc'),'allowNull':![]}};
\ No newline at end of file
+var _0x6b9f=['Chat','Email','sequelize','exports','TEXT','long','medium','BOOLEAN','DATE','INTEGER','ENUM'];(function(_0x335edf,_0x160339){var _0x2115f0=function(_0x416239){while(--_0x416239){_0x335edf['push'](_0x335edf['shift']());}};_0x2115f0(++_0x160339);}(_0x6b9f,0x1db));var _0xf6b9=function(_0x5353bb,_0xe821e){_0x5353bb=_0x5353bb-0x0;var _0x5a97f0=_0x6b9f[_0x5353bb];return _0x5a97f0;};'use strict';var Sequelize=require(_0xf6b9('0x0'));var _=require('lodash');module[_0xf6b9('0x1')]={'body':{'type':Sequelize[_0xf6b9('0x2')](_0xf6b9('0x3')),'allowNull':![]},'plainBody':{'type':Sequelize['TEXT'](_0xf6b9('0x4'))},'read':{'type':Sequelize[_0xf6b9('0x5')],'defaultValue':![]},'direction':{'type':Sequelize['ENUM']('in','out'),'defaultValue':'out','allowNull':![]},'messageId':{'type':Sequelize['STRING'](0x1fe)},'from':{'type':Sequelize['STRING']},'to':{'type':Sequelize[_0xf6b9('0x2')](_0xf6b9('0x3'))},'cc':{'type':Sequelize[_0xf6b9('0x2')](_0xf6b9('0x3'))},'bcc':{'type':Sequelize[_0xf6b9('0x2')](_0xf6b9('0x3'))},'subject':{'type':Sequelize[_0xf6b9('0x2')]},'sentAt':{'type':Sequelize[_0xf6b9('0x6')]},'attach':{'type':Sequelize[_0xf6b9('0x7')],'defaultValue':0x0},'secret':{'type':Sequelize[_0xf6b9('0x5')],'defaultValue':![]},'readAt':{'type':Sequelize['DATE']},'originTo':{'type':Sequelize['TEXT'](_0xf6b9('0x3'))},'originCc':{'type':Sequelize[_0xf6b9('0x2')](_0xf6b9('0x3'))},'originChannel':{'type':Sequelize[_0xf6b9('0x8')]('Email',_0xf6b9('0x9')),'defaultValue':_0xf6b9('0xa'),'allowNull':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x55ca=['offset','limit','Content-Range','then','destroy','end','sendStatus','stack','name','send','index','map','MailMessage','fieldName','type','key','model','query','keys','attributes','length','nolimit','sort','where','filters','pick','filter','merge','includeAll','findAll','rows','catch','show','params','rawAttributes','intersection','fields','include','options','find','update','body','describe','create','direction','out','secret','split','MailAccount','findOne','MailAccountId','CmList','List','Contacts','updatedAt','DESC','MailServerOut','Smtp','isNil','host','port','secure','authentication','user','pass','service','auth','attachments','join','root','server/files/attachments','basename','CmContact','SendMail','sendMail','messageId','format','YYYY-MM-DD\x20HH:mm:ss','accept','mail','read','readAt','UserId','get','MailInteractionId','interaction','[MAILMESSAGE: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','QueryTypes','SELECT','contact','User','agent','fullname','email','internal','manual','channel','event','fromString','EventManager','acceptmessage','reject','MailInteraction','[MAILMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','RejectMessage','rejectMessage','Sequelize','interface','SIP/%s','rejectmessage','unix','server','files','message-%s.eml','from','bcc','subject','ddd,\x20DD\x20MMM\x20YYYY\x20HH:mm:ss\x20ZZ','headers','Attachments','existsSync','push','readFileSync','build','writeFileSync','download','eml-format','moment','lodash','ioredis','../../components/parsers/qs','../../config/logger','api','mail-interactions','../../config/environment','../../mysqldb','defaults','redis','socket.io-emitter','jayson/promise','client','http','info','MailMessage,\x20%s,\x20%s','request\x20sent','debug','MailMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','status','json','undefined','count'];(function(_0x504eb3,_0x9d08ff){var _0x1c99a8=function(_0x5023a5){while(--_0x5023a5){_0x504eb3['push'](_0x504eb3['shift']());}};_0x1c99a8(++_0x9d08ff);}(_0x55ca,0x126));var _0xa55c=function(_0xb26065,_0x36df08){_0xb26065=_0xb26065-0x0;var _0x974dce=_0x55ca[_0xb26065];return _0x974dce;};'use strict';var emlformat=require(_0xa55c('0x0'));var moment=require(_0xa55c('0x1'));var BPromise=require('bluebird');var util=require('util');var path=require('path');var fs=require('fs');var _=require(_0xa55c('0x2'));var Redis=require(_0xa55c('0x3'));var htmlToText=require('html-to-text');var qs=require(_0xa55c('0x4'));var logger=require(_0xa55c('0x5'))(_0xa55c('0x6'));var interaction_log=require(_0xa55c('0x5'))(_0xa55c('0x7'));var config=require(_0xa55c('0x8'));var db=require(_0xa55c('0x9'))['db'];config['redis']=_[_0xa55c('0xa')](config[_0xa55c('0xb')],{'host':'localhost','port':0x18eb});var socket=require(_0xa55c('0xc'))(new Redis(config[_0xa55c('0xb')]));require('./mailMessage.socket')['register'](socket);var jayson=require(_0xa55c('0xd'));var client=jayson[_0xa55c('0xe')][_0xa55c('0xf')]({'port':0x232c});var client9003=jayson[_0xa55c('0xe')][_0xa55c('0xf')]({'port':0x232b});var client9002=jayson[_0xa55c('0xe')][_0xa55c('0xf')]({'port':0x232a});function respondWithRpcPromise(_0x70c2de,_0x3998f7,_0x15eec8,_0x5d47ff){return new BPromise(function(_0x59d84a,_0x2a35be){var _0x576044=_0x5d47ff||client;return _0x576044['request'](_0x70c2de,_0x15eec8)['then'](function(_0x18ee85){logger[_0xa55c('0x10')](_0xa55c('0x11'),_0x3998f7,_0xa55c('0x12'));logger[_0xa55c('0x13')](_0xa55c('0x14'),_0x3998f7,'request\x20sent',JSON[_0xa55c('0x15')](_0x18ee85));if(_0x18ee85[_0xa55c('0x16')]){if(_0x18ee85[_0xa55c('0x16')][_0xa55c('0x17')]===0x1f4){logger[_0xa55c('0x16')](_0xa55c('0x11'),_0x3998f7,_0x18ee85[_0xa55c('0x16')][_0xa55c('0x18')]);return _0x2a35be(_0x18ee85[_0xa55c('0x16')]['message']);}logger[_0xa55c('0x16')](_0xa55c('0x11'),_0x3998f7,_0x18ee85[_0xa55c('0x16')][_0xa55c('0x18')]);return _0x59d84a(_0x18ee85[_0xa55c('0x16')][_0xa55c('0x18')]);}else{logger['info']('MailMessage,\x20%s,\x20%s',_0x3998f7,_0xa55c('0x12'));_0x59d84a(_0x18ee85[_0xa55c('0x19')][_0xa55c('0x18')]);}})['catch'](function(_0x383d92){logger[_0xa55c('0x16')]('MailMessage,\x20%s,\x20%s',_0x3998f7,_0x383d92);_0x2a35be(_0x383d92);});});}function respondWithResult(_0x187a87,_0x133096){_0x133096=_0x133096||0xc8;return function(_0x940f28){if(_0x940f28){return _0x187a87[_0xa55c('0x1a')](_0x133096)[_0xa55c('0x1b')](_0x940f28);}};}function respondWithFilteredResult(_0x49ed04,_0x1fc828){return function(_0x504c24){if(_0x504c24){var _0x5ba836=typeof _0x1fc828['offset']===_0xa55c('0x1c')&&typeof _0x1fc828['limit']===_0xa55c('0x1c');var _0x190757=_0x504c24[_0xa55c('0x1d')];var _0xf0e574=_0x5ba836?0x0:_0x1fc828[_0xa55c('0x1e')];var _0x170ba4=_0x5ba836?_0x504c24[_0xa55c('0x1d')]:_0x1fc828[_0xa55c('0x1e')]+_0x1fc828[_0xa55c('0x1f')];var _0x3cd152;if(_0x170ba4>=_0x190757){_0x170ba4=_0x190757;_0x3cd152=0xc8;}else{_0x3cd152=0xce;}_0x49ed04[_0xa55c('0x1a')](_0x3cd152);return _0x49ed04['set'](_0xa55c('0x20'),_0xf0e574+'-'+_0x170ba4+'/'+_0x190757)[_0xa55c('0x1b')](_0x504c24);}return null;};}function saveUpdates(_0x1c9f6b){return function(_0x906caa){if(_0x906caa){return _0x906caa['update'](_0x1c9f6b)[_0xa55c('0x21')](function(_0x22f6b6){return _0x22f6b6;});}return null;};}function removeEntity(_0x1b8388){return function(_0x201941){if(_0x201941){return _0x201941[_0xa55c('0x22')]()[_0xa55c('0x21')](function(){_0x1b8388['status'](0xcc)[_0xa55c('0x23')]();});}};}function handleEntityNotFound(_0x490b7d){return function(_0x35c9c2){if(!_0x35c9c2){_0x490b7d[_0xa55c('0x24')](0x194);}return _0x35c9c2;};}function handleError(_0x1cc53e,_0x223813){_0x223813=_0x223813||0x1f4;return function(_0x4d8416){logger[_0xa55c('0x16')](_0x4d8416[_0xa55c('0x25')]);if(_0x4d8416[_0xa55c('0x26')]){delete _0x4d8416[_0xa55c('0x26')];}_0x1cc53e[_0xa55c('0x1a')](_0x223813)[_0xa55c('0x27')](_0x4d8416);};}exports[_0xa55c('0x28')]=function(_0x24d44d,_0x2808e9){var _0xcbaf2e={},_0x197099={},_0x4eb7c4={'count':0x0,'rows':[]};var _0x54ca97=_[_0xa55c('0x29')](db[_0xa55c('0x2a')]['rawAttributes'],function(_0x30fadd){return{'name':_0x30fadd[_0xa55c('0x2b')],'type':_0x30fadd[_0xa55c('0x2c')][_0xa55c('0x2d')]};});_0x197099[_0xa55c('0x2e')]=_[_0xa55c('0x29')](_0x54ca97,_0xa55c('0x26'));_0x197099[_0xa55c('0x2f')]=_[_0xa55c('0x30')](_0x24d44d['query']);_0x197099['filters']=_['intersection'](_0x197099[_0xa55c('0x2e')],_0x197099[_0xa55c('0x2f')]);_0xcbaf2e[_0xa55c('0x31')]=_['intersection'](_0x197099[_0xa55c('0x2e')],qs['fields'](_0x24d44d[_0xa55c('0x2f')]['fields']));_0xcbaf2e[_0xa55c('0x31')]=_0xcbaf2e[_0xa55c('0x31')][_0xa55c('0x32')]?_0xcbaf2e['attributes']:_0x197099[_0xa55c('0x2e')];if(!_0x24d44d[_0xa55c('0x2f')]['hasOwnProperty'](_0xa55c('0x33'))){_0xcbaf2e[_0xa55c('0x1f')]=qs['limit'](_0x24d44d['query'][_0xa55c('0x1f')]);_0xcbaf2e['offset']=qs[_0xa55c('0x1e')](_0x24d44d[_0xa55c('0x2f')]['offset']);}_0xcbaf2e['order']=qs['sort'](_0x24d44d['query'][_0xa55c('0x34')]);_0xcbaf2e[_0xa55c('0x35')]=qs[_0xa55c('0x36')](_[_0xa55c('0x37')](_0x24d44d[_0xa55c('0x2f')],_0x197099['filters']),_0x54ca97);if(_0x24d44d[_0xa55c('0x2f')][_0xa55c('0x38')]){_0xcbaf2e[_0xa55c('0x35')]=_[_0xa55c('0x39')](_0xcbaf2e[_0xa55c('0x35')],{'$or':_[_0xa55c('0x29')](_0x54ca97,function(_0x554620){if(_0x554620[_0xa55c('0x2c')]!=='VIRTUAL'){var _0x57a972={};_0x57a972[_0x554620[_0xa55c('0x26')]]={'$like':'%'+_0x24d44d[_0xa55c('0x2f')]['filter']+'%'};return _0x57a972;}})});}_0xcbaf2e=_[_0xa55c('0x39')]({},_0xcbaf2e,_0x24d44d['options']);var _0x5f25f7={'where':_0xcbaf2e[_0xa55c('0x35')]};return db[_0xa55c('0x2a')][_0xa55c('0x1d')](_0x5f25f7)['then'](function(_0x1b2708){_0x4eb7c4[_0xa55c('0x1d')]=_0x1b2708;if(_0x24d44d['query'][_0xa55c('0x3a')]){_0xcbaf2e['include']=[{'all':!![]}];}return db[_0xa55c('0x2a')][_0xa55c('0x3b')](_0xcbaf2e);})['then'](function(_0x66d1de){_0x4eb7c4[_0xa55c('0x3c')]=_0x66d1de;return _0x4eb7c4;})['then'](respondWithFilteredResult(_0x2808e9,_0xcbaf2e))[_0xa55c('0x3d')](handleError(_0x2808e9,null));};exports[_0xa55c('0x3e')]=function(_0x204767,_0x59a6c8){var _0x334f52={'raw':!![],'where':{'id':_0x204767[_0xa55c('0x3f')]['id']}},_0x582901={};_0x582901[_0xa55c('0x2e')]=_[_0xa55c('0x30')](db['MailMessage'][_0xa55c('0x40')]);_0x582901[_0xa55c('0x2f')]=_['keys'](_0x204767[_0xa55c('0x2f')]);_0x582901[_0xa55c('0x36')]=_['intersection'](_0x582901[_0xa55c('0x2e')],_0x582901[_0xa55c('0x2f')]);_0x334f52['attributes']=_[_0xa55c('0x41')](_0x582901[_0xa55c('0x2e')],qs[_0xa55c('0x42')](_0x204767[_0xa55c('0x2f')]['fields']));_0x334f52[_0xa55c('0x31')]=_0x334f52['attributes'][_0xa55c('0x32')]?_0x334f52[_0xa55c('0x31')]:_0x582901[_0xa55c('0x2e')];if(_0x204767['query'][_0xa55c('0x3a')]){_0x334f52[_0xa55c('0x43')]=[{'all':!![]}];}_0x334f52=_['merge']({},_0x334f52,_0x204767[_0xa55c('0x44')]);return db[_0xa55c('0x2a')][_0xa55c('0x45')](_0x334f52)[_0xa55c('0x21')](handleEntityNotFound(_0x59a6c8,null))[_0xa55c('0x21')](respondWithResult(_0x59a6c8,null))[_0xa55c('0x3d')](handleError(_0x59a6c8,null));};exports[_0xa55c('0x46')]=function(_0x129626,_0x3c147b){if(_0x129626[_0xa55c('0x47')]['id']){delete _0x129626['body']['id'];}return db[_0xa55c('0x2a')][_0xa55c('0x45')]({'where':{'id':_0x129626[_0xa55c('0x3f')]['id']}})['then'](handleEntityNotFound(_0x3c147b,null))[_0xa55c('0x21')](saveUpdates(_0x129626[_0xa55c('0x47')],null))['then'](respondWithResult(_0x3c147b,null))[_0xa55c('0x3d')](handleError(_0x3c147b,null));};exports['destroy']=function(_0x2b6a0e,_0x228df4){return db[_0xa55c('0x2a')][_0xa55c('0x45')]({'where':{'id':_0x2b6a0e[_0xa55c('0x3f')]['id']}})['then'](handleEntityNotFound(_0x228df4,null))[_0xa55c('0x21')](removeEntity(_0x228df4,null))[_0xa55c('0x3d')](handleError(_0x228df4,null));};exports['describe']=function(_0x3929a6,_0x2291e0){return db[_0xa55c('0x2a')][_0xa55c('0x48')]()['then'](respondWithResult(_0x2291e0,null))['catch'](handleError(_0x2291e0,null));};exports[_0xa55c('0x49')]=function(_0x250dea,_0x3ca5b8){return db[_0xa55c('0x2a')]['create'](_0x250dea[_0xa55c('0x47')])['then'](function(_0x2742e4){if(_0x2742e4){if(_0x2742e4[_0xa55c('0x4a')]===_0xa55c('0x4b')&&!_0x2742e4[_0xa55c('0x4c')]){var _0xec640,_0x53b2f7,_0x1cb73b;if(_0x250dea['body']['to']){_0x53b2f7=_0x250dea[_0xa55c('0x47')]['to'][_0xa55c('0x4d')](',')[0x0];}return db[_0xa55c('0x4e')][_0xa55c('0x4f')]({'where':{'id':_0x2742e4[_0xa55c('0x50')]},'include':[{'model':db[_0xa55c('0x51')],'as':_0xa55c('0x52'),'include':[{'model':db['CmContact'],'as':_0xa55c('0x53'),'where':{'email':_0x53b2f7},'limit':0x1,'order':[[_0xa55c('0x54'),_0xa55c('0x55')]]}]},{'model':db[_0xa55c('0x56')],'as':_0xa55c('0x57'),'raw':!![]}]})['then'](function(_0xa72718){_0xec640=_0xa72718;if(_0xec640&&_0xec640[_0xa55c('0x57')]){var _0x28bac4={'tls':{'rejectUnauthorized':![]}};if(_[_0xa55c('0x58')](_0xec640[_0xa55c('0x57')]['service'])){_0x28bac4[_0xa55c('0x59')]=_0xec640[_0xa55c('0x57')][_0xa55c('0x59')];_0x28bac4[_0xa55c('0x5a')]=_0xec640[_0xa55c('0x57')]['port'];_0x28bac4[_0xa55c('0x5b')]=_0xec640['Smtp'][_0xa55c('0x5b')];if(_0xec640['Smtp'][_0xa55c('0x5c')]){_0x28bac4['auth']={'user':_0xec640[_0xa55c('0x57')][_0xa55c('0x5d')],'pass':_0xec640[_0xa55c('0x57')][_0xa55c('0x5e')]};}}else{_0x28bac4[_0xa55c('0x5f')]=_0xec640[_0xa55c('0x57')][_0xa55c('0x5f')];_0x28bac4[_0xa55c('0x60')]={'user':_0xec640[_0xa55c('0x57')][_0xa55c('0x5d')],'pass':_0xec640['Smtp'][_0xa55c('0x5e')]};_0x28bac4[_0xa55c('0x5b')]=_0xec640['Smtp'][_0xa55c('0x5b')];}if(_0x250dea[_0xa55c('0x47')][_0xa55c('0x61')]&&_0x250dea[_0xa55c('0x47')][_0xa55c('0x61')][_0xa55c('0x32')]){for(var _0x3cef1f=0x0;_0x3cef1f<_0x250dea[_0xa55c('0x47')]['attachments'][_0xa55c('0x32')];_0x3cef1f+=0x1){_0x250dea[_0xa55c('0x47')][_0xa55c('0x61')][_0x3cef1f]={'filename':_0x250dea[_0xa55c('0x47')][_0xa55c('0x61')][_0x3cef1f][_0xa55c('0x26')],'path':path[_0xa55c('0x62')](config[_0xa55c('0x63')],_0xa55c('0x64'),_0x250dea['body'][_0xa55c('0x61')][_0x3cef1f][_0xa55c('0x65')])};}}_0x1cb73b={'account':_0x28bac4,'message':_0x250dea[_0xa55c('0x47')]};return;}})[_0xa55c('0x21')](function(){if(_0xec640[_0xa55c('0x52')]){if(_0xec640[_0xa55c('0x52')][_0xa55c('0x53')][_0xa55c('0x32')]){return _0xec640[_0xa55c('0x52')][_0xa55c('0x53')][0x0];}else{return db[_0xa55c('0x66')]['create'](_[_0xa55c('0xa')](_0x250dea['body'],{'firstName':_0x250dea[_0xa55c('0x47')]['to'],'email':_0x250dea[_0xa55c('0x47')]['to'],'phone':_0x250dea[_0xa55c('0x47')]['to'],'ListId':_0xec640['ListId']}));}}else{throw new Error('List\x20not\x20found');}})[_0xa55c('0x21')](function(){if(_0x1cb73b){return respondWithRpcPromise(_0xa55c('0x67'),_0xa55c('0x68'),_0x1cb73b,client9003)[_0xa55c('0x21')](function(_0x4c7ee1){return _0x2742e4[_0xa55c('0x46')]({'read':!![],'messageId':_0x4c7ee1[_0xa55c('0x69')],'sentAt':moment()[_0xa55c('0x6a')](_0xa55c('0x6b'))});})[_0xa55c('0x3d')](function(_0x500968){logger['error']('%s',JSON[_0xa55c('0x15')](_0x500968));return _0x2742e4;});}return _0x2742e4;});}return _0x2742e4;}})[_0xa55c('0x21')](respondWithResult(_0x3ca5b8,0xc9))[_0xa55c('0x3d')](handleError(_0x3ca5b8,null));};exports[_0xa55c('0x6c')]=function(_0x1af9d5,_0x4b2032){var _0x14febc={'agent':{},'channel':_0xa55c('0x6d')};if(_0x1af9d5['body']['id']){delete _0x1af9d5[_0xa55c('0x47')]['id'];}_0x1af9d5[_0xa55c('0x47')][_0xa55c('0x6e')]=!![];_0x1af9d5['body'][_0xa55c('0x6f')]=moment()[_0xa55c('0x6a')](_0xa55c('0x6b'));_0x1af9d5[_0xa55c('0x47')][_0xa55c('0x70')]=_0x1af9d5['body'][_0xa55c('0x70')]||_0x1af9d5[_0xa55c('0x5d')]['id'];_0x14febc['agent']['id']=_0x1af9d5['body'][_0xa55c('0x70')];return db['MailMessage'][_0xa55c('0x45')]({'where':{'id':_0x1af9d5[_0xa55c('0x3f')]['id'],'UserId':null}})[_0xa55c('0x21')](handleEntityNotFound(_0x4b2032,null))[_0xa55c('0x21')](saveUpdates(_0x1af9d5[_0xa55c('0x47')],null))[_0xa55c('0x21')](function(_0x22b06f){if(_0x22b06f){_0x14febc[_0xa55c('0x18')]=_0x22b06f[_0xa55c('0x71')]({'plain':!![]});return db['MailInteraction'][_0xa55c('0x45')]({'where':{'id':_0x22b06f[_0xa55c('0x72')]}});}return null;})[_0xa55c('0x21')](handleEntityNotFound(_0x4b2032,null))[_0xa55c('0x21')](function(_0x4f0a26){if(_0x4f0a26){return _0x4f0a26[_0xa55c('0x46')]({'UserId':_0x1af9d5[_0xa55c('0x47')][_0xa55c('0x70')],'read1stAt':_[_0xa55c('0x58')](_0x4f0a26['read1stAt'])?moment()['format'](_0xa55c('0x6b')):undefined});}return null;})[_0xa55c('0x21')](function(_0x12e3a8){if(_0x12e3a8){_0x14febc[_0xa55c('0x73')]=_0x12e3a8['get']({'plain':!![]});interaction_log['info'](_0xa55c('0x74'),_0x1af9d5[_0xa55c('0x5d')]['id'],_0x1af9d5[_0xa55c('0x5d')][_0xa55c('0x26')],_0x1af9d5[_0xa55c('0x5d')][_0xa55c('0x75')],_0x14febc[_0xa55c('0x73')]['id'],_0x1af9d5['body']?JSON[_0xa55c('0x15')](_0x1af9d5['body']):_0xa55c('0x76'));return respondWithRpcPromise('AcceptMessage',_0xa55c('0x77'),_0x14febc);}return null;})[_0xa55c('0x21')](function(_0x441c11){var _0xcc187f=_0xa55c('0x78')+_0x441c11[_0xa55c('0x18')][_0xa55c('0x79')];return db[_0xa55c('0x7a')]['query'](_0xcc187f,{'type':db['Sequelize'][_0xa55c('0x7b')][_0xa55c('0x7c')],'raw':!![]})[_0xa55c('0x21')](function(_0x256db0){return _0x256db0;});})[_0xa55c('0x21')](function(_0x137728){if(_0x137728){_0x14febc['message'][_0xa55c('0x7d')]=_0x137728[0x0];if(!_0x1af9d5[_0xa55c('0x47')][_0xa55c('0x70')])return;return db[_0xa55c('0x7e')][_0xa55c('0x45')]({'where':{'id':_0x1af9d5[_0xa55c('0x47')][_0xa55c('0x70')],'role':_0xa55c('0x7f')},'attributes':['id','name',_0xa55c('0x80'),_0xa55c('0x81'),_0xa55c('0x82')],'raw':!![]});}return null;})[_0xa55c('0x21')](function(_0xa957ad){if(!_0xa957ad)return null;_0x14febc['message'][_0xa55c('0x7f')]=_0xa957ad;return _0x14febc;})[_0xa55c('0x21')](function(_0x58296a){if(_0x58296a){if(_0x1af9d5['body'][_0xa55c('0x83')]){_0x14febc[_0xa55c('0x18')]['interface']=util['format']('SIP/%s',_0x1af9d5['user'][_0xa55c('0x26')]);_0x14febc[_0xa55c('0x18')][_0xa55c('0x84')]=_0x14febc[_0xa55c('0x84')];_0x14febc[_0xa55c('0x18')][_0xa55c('0x85')]='accept';_0x14febc[_0xa55c('0x18')][_0xa55c('0x47')]=htmlToText[_0xa55c('0x86')](_0x14febc[_0xa55c('0x18')]['body']);return respondWithRpcPromise(_0xa55c('0x87'),_0xa55c('0x87'),{'event':_0xa55c('0x88'),'message':_0x14febc['message']},client9002)[_0xa55c('0x21')](function(){return _0x14febc;});}return _0x14febc;}return null;})['then'](respondWithResult(_0x4b2032,null))['catch'](handleError(_0x4b2032,null));};exports[_0xa55c('0x89')]=function(_0x413b45,_0x1e298d){var _0x249b0c={'agent':{},'channel':_0xa55c('0x6d')};if(_0x413b45[_0xa55c('0x47')]['id']){delete _0x413b45[_0xa55c('0x47')]['id'];}_0x413b45['body']['UserId']=_0x413b45[_0xa55c('0x47')][_0xa55c('0x70')]||_0x413b45[_0xa55c('0x5d')]['id'];_0x249b0c[_0xa55c('0x7f')]['id']=_0x413b45[_0xa55c('0x47')][_0xa55c('0x70')];return db[_0xa55c('0x2a')][_0xa55c('0x45')]({'where':{'id':_0x413b45[_0xa55c('0x3f')]['id'],'UserId':null}})[_0xa55c('0x21')](handleEntityNotFound(_0x1e298d,null))['then'](function(_0xc9c3fa){if(_0xc9c3fa){_0x249b0c[_0xa55c('0x18')]=_0xc9c3fa['get']({'plain':!![]});return db[_0xa55c('0x8a')]['find']({'where':{'id':_0xc9c3fa[_0xa55c('0x72')]}});}return null;})[_0xa55c('0x21')](handleEntityNotFound(_0x1e298d,null))[_0xa55c('0x21')](function(_0x314205){if(_0x314205){_0x249b0c[_0xa55c('0x73')]=_0x314205['get']({'plain':!![]});interaction_log[_0xa55c('0x10')](_0xa55c('0x8b'),_0x413b45[_0xa55c('0x5d')]['id'],_0x413b45[_0xa55c('0x5d')][_0xa55c('0x26')],_0x413b45[_0xa55c('0x5d')][_0xa55c('0x75')],_0x249b0c['interaction']['id'],_0x413b45['body']?JSON['stringify'](_0x413b45[_0xa55c('0x47')]):'null');return respondWithRpcPromise(_0xa55c('0x8c'),_0xa55c('0x8d'),_0x249b0c);}return null;})[_0xa55c('0x21')](function(_0x73162a){var _0x26ca90='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x73162a[_0xa55c('0x18')]['ContactId'];return db[_0xa55c('0x7a')][_0xa55c('0x2f')](_0x26ca90,{'type':db[_0xa55c('0x8e')][_0xa55c('0x7b')]['SELECT'],'raw':!![]})[_0xa55c('0x21')](function(_0x46f8ab){return _0x46f8ab;});})[_0xa55c('0x21')](function(_0x17a36c){if(_0x17a36c){_0x249b0c[_0xa55c('0x18')][_0xa55c('0x7d')]=_0x17a36c[0x0];if(!_0x413b45[_0xa55c('0x47')][_0xa55c('0x70')])return;return db['User'][_0xa55c('0x45')]({'where':{'id':_0x413b45[_0xa55c('0x47')][_0xa55c('0x70')],'role':_0xa55c('0x7f')},'attributes':['id',_0xa55c('0x26'),_0xa55c('0x80'),'email',_0xa55c('0x82')],'raw':!![]});}return null;})['then'](function(_0x3b9712){if(!_0x3b9712)return null;_0x249b0c['message'][_0xa55c('0x7f')]=_0x3b9712;return _0x249b0c;})[_0xa55c('0x21')](function(_0x17312b){if(_0x17312b){_0x17312b['message'][_0xa55c('0x8f')]=util[_0xa55c('0x6a')](_0xa55c('0x90'),_0x413b45['user'][_0xa55c('0x26')]);_0x17312b['message'][_0xa55c('0x84')]=_0x249b0c[_0xa55c('0x84')];_0x17312b['message'][_0xa55c('0x85')]='reject';_0x17312b[_0xa55c('0x18')][_0xa55c('0x47')]=htmlToText['fromString'](_0x249b0c[_0xa55c('0x18')][_0xa55c('0x47')]);respondWithRpcPromise('EventManager',_0xa55c('0x87'),{'event':_0xa55c('0x91'),'message':_0x17312b['message']},client9002);return _0x249b0c;}return null;})[_0xa55c('0x21')](respondWithResult(_0x1e298d,null))['catch'](handleError(_0x1e298d,null));};exports['download']=function(_0x28a26d,_0x3113b9){var _0x28a71e=moment()[_0xa55c('0x92')]()['toString']();var _0x307895=path['join'](config[_0xa55c('0x63')],'server','files','tmp');var _0x999114=path['join'](config['root'],_0xa55c('0x93'),_0xa55c('0x94'),_0xa55c('0x61'));var _0x4046ae=util[_0xa55c('0x6a')](_0xa55c('0x95'),_0x28a71e);return db[_0xa55c('0x2a')][_0xa55c('0x45')]({'where':{'id':_0x28a26d[_0xa55c('0x3f')]['id']},'attributes':['id',_0xa55c('0x47'),_0xa55c('0x96'),'to','cc',_0xa55c('0x97'),_0xa55c('0x98'),'createdAt'],'include':_0x28a26d[_0xa55c('0x2f')]['attachments']?[{'model':db['Attachment'],'as':'Attachments'}]:undefined})[_0xa55c('0x21')](handleEntityNotFound(_0x3113b9,null))['then'](function(_0xd5a27a){if(_0xd5a27a){var _0x55e447=_0xd5a27a;var _0x3169dd={'from':_0x55e447['from'],'to':_0x55e447['to'],'subject':_0x55e447['subject'],'html':_0x55e447[_0xa55c('0x47')],'headers':{'Date':moment(_0x55e447['createdAt'])['format'](_0xa55c('0x99'))},'attachments':[]};if(_0xd5a27a['cc']){_0x3169dd[_0xa55c('0x9a')]['Cc']=_0xd5a27a['cc'];}if(_0xd5a27a['bcc']){_0x3169dd[_0xa55c('0x9a')]['Bcc']=_0xd5a27a[_0xa55c('0x97')];}return new BPromise(function(_0x403dff,_0x1dcd8a){if(_0xd5a27a['Attachments']){for(var _0x50df67=0x0;_0x50df67<_0xd5a27a[_0xa55c('0x9b')][_0xa55c('0x32')];_0x50df67++){var _0x36064f=_0xd5a27a[_0xa55c('0x9b')][_0x50df67];var _0x4297bf=path[_0xa55c('0x62')](_0x999114,_0x36064f[_0xa55c('0x65')]);if(fs[_0xa55c('0x9c')](_0x4297bf)){_0x3169dd['attachments'][_0xa55c('0x9d')]({'name':_0x36064f[_0xa55c('0x26')],'contentType':_0x36064f[_0xa55c('0x2c')],'data':fs[_0xa55c('0x9e')](_0x4297bf)});}}}emlformat[_0xa55c('0x9f')](_0x3169dd,function(_0x1a01de,_0x2fa186){if(_0x1a01de)return _0x1dcd8a(_0x1a01de);fs[_0xa55c('0xa0')](path[_0xa55c('0x62')](_0x307895,_0x4046ae),_0x2fa186);return _0x403dff(_0x2fa186);});});}})['then'](function(_0x19ebd5){if(_0x19ebd5){return _0x3113b9[_0xa55c('0xa1')](path[_0xa55c('0x62')](_0x307895,_0x4046ae),_0x4046ae,function(_0x5ea9c8){if(!_0x5ea9c8)fs['unlinkSync'](path['join'](_0x307895,_0x4046ae));});}})[_0xa55c('0x3d')](handleError(_0x3113b9,null));};
\ No newline at end of file
+var _0xb138=['api','mail-interactions','../../config/environment','redis','defaults','socket.io-emitter','jayson/promise','client','http','request','then','request\x20sent','debug','MailMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','MailMessage,\x20%s,\x20%s','message','info','result','catch','status','json','offset','limit','count','set','update','destroy','end','sendStatus','stack','name','send','map','MailMessage','rawAttributes','fieldName','type','key','query','keys','filters','intersection','model','attributes','fields','hasOwnProperty','sort','where','pick','filter','VIRTUAL','options','findAll','rows','show','params','length','includeAll','include','find','body','describe','create','direction','out','secret','MailAccount','findOne','CmList','List','CmContact','Contacts','DESC','MailServerOut','Smtp','service','host','port','secure','authentication','auth','user','pass','attachments','join','server/files/attachments','basename','ListId','List\x20not\x20found','SendMail','sendMail','messageId','format','YYYY-MM-DD\x20HH:mm:ss','mail','readAt','UserId','agent','get','MailInteraction','MailInteractionId','isNil','interaction','[MAILMESSAGE: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','fullname','email','internal','manual','interface','SIP/%s','channel','motionChannel','event','accept','EventManager','acceptmessage','[MAILMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','rejectMessage','sequelize','QueryTypes','User','fromString','rejectmessage','toString','root','server','files','tmp','from','bcc','subject','createdAt','Attachments','ddd,\x20DD\x20MMM\x20YYYY\x20HH:mm:ss\x20ZZ','headers','Bcc','existsSync','push','build','download','unlinkSync','eml-format','moment','bluebird','util','path','lodash','ioredis','../../components/parsers/qs','../../config/logger'];(function(_0x2c0eb3,_0x428131){var _0x41d05e=function(_0x269fac){while(--_0x269fac){_0x2c0eb3['push'](_0x2c0eb3['shift']());}};_0x41d05e(++_0x428131);}(_0xb138,0x1dd));var _0x8b13=function(_0x223a1a,_0x5e4926){_0x223a1a=_0x223a1a-0x0;var _0x17b523=_0xb138[_0x223a1a];return _0x17b523;};'use strict';var emlformat=require(_0x8b13('0x0'));var moment=require(_0x8b13('0x1'));var BPromise=require(_0x8b13('0x2'));var util=require(_0x8b13('0x3'));var path=require(_0x8b13('0x4'));var fs=require('fs');var _=require(_0x8b13('0x5'));var Redis=require(_0x8b13('0x6'));var htmlToText=require('html-to-text');var qs=require(_0x8b13('0x7'));var logger=require(_0x8b13('0x8'))(_0x8b13('0x9'));var interaction_log=require('../../config/logger')(_0x8b13('0xa'));var config=require(_0x8b13('0xb'));var db=require('../../mysqldb')['db'];config[_0x8b13('0xc')]=_[_0x8b13('0xd')](config[_0x8b13('0xc')],{'host':'localhost','port':0x18eb});var socket=require(_0x8b13('0xe'))(new Redis(config[_0x8b13('0xc')]));require('./mailMessage.socket')['register'](socket);var jayson=require(_0x8b13('0xf'));var client=jayson[_0x8b13('0x10')][_0x8b13('0x11')]({'port':0x232c});var client9003=jayson[_0x8b13('0x10')][_0x8b13('0x11')]({'port':0x232b});var client9002=jayson['client'][_0x8b13('0x11')]({'port':0x232a});function respondWithRpcPromise(_0xeee2cc,_0x1a93c4,_0x3f79d5,_0xb227e0){return new BPromise(function(_0x1893b1,_0x58f97e){var _0x50e7a4=_0xb227e0||client;return _0x50e7a4[_0x8b13('0x12')](_0xeee2cc,_0x3f79d5)[_0x8b13('0x13')](function(_0x5f12b5){logger['info']('MailMessage,\x20%s,\x20%s',_0x1a93c4,_0x8b13('0x14'));logger[_0x8b13('0x15')](_0x8b13('0x16'),_0x1a93c4,_0x8b13('0x14'),JSON[_0x8b13('0x17')](_0x5f12b5));if(_0x5f12b5['error']){if(_0x5f12b5[_0x8b13('0x18')][_0x8b13('0x19')]===0x1f4){logger[_0x8b13('0x18')](_0x8b13('0x1a'),_0x1a93c4,_0x5f12b5[_0x8b13('0x18')][_0x8b13('0x1b')]);return _0x58f97e(_0x5f12b5[_0x8b13('0x18')][_0x8b13('0x1b')]);}logger['error']('MailMessage,\x20%s,\x20%s',_0x1a93c4,_0x5f12b5[_0x8b13('0x18')][_0x8b13('0x1b')]);return _0x1893b1(_0x5f12b5[_0x8b13('0x18')][_0x8b13('0x1b')]);}else{logger[_0x8b13('0x1c')](_0x8b13('0x1a'),_0x1a93c4,'request\x20sent');_0x1893b1(_0x5f12b5[_0x8b13('0x1d')][_0x8b13('0x1b')]);}})[_0x8b13('0x1e')](function(_0x54a309){logger['error'](_0x8b13('0x1a'),_0x1a93c4,_0x54a309);_0x58f97e(_0x54a309);});});}function respondWithResult(_0xcb7621,_0x4f9902){_0x4f9902=_0x4f9902||0xc8;return function(_0x3187ed){if(_0x3187ed){return _0xcb7621[_0x8b13('0x1f')](_0x4f9902)[_0x8b13('0x20')](_0x3187ed);}};}function respondWithFilteredResult(_0x213280,_0xc05d5c){return function(_0x583639){if(_0x583639){var _0x339271=typeof _0xc05d5c[_0x8b13('0x21')]==='undefined'&&typeof _0xc05d5c[_0x8b13('0x22')]==='undefined';var _0x420772=_0x583639[_0x8b13('0x23')];var _0x54786a=_0x339271?0x0:_0xc05d5c[_0x8b13('0x21')];var _0x3223d8=_0x339271?_0x583639['count']:_0xc05d5c[_0x8b13('0x21')]+_0xc05d5c[_0x8b13('0x22')];var _0x410122;if(_0x3223d8>=_0x420772){_0x3223d8=_0x420772;_0x410122=0xc8;}else{_0x410122=0xce;}_0x213280[_0x8b13('0x1f')](_0x410122);return _0x213280[_0x8b13('0x24')]('Content-Range',_0x54786a+'-'+_0x3223d8+'/'+_0x420772)[_0x8b13('0x20')](_0x583639);}return null;};}function saveUpdates(_0x1b09e2){return function(_0x3475d8){if(_0x3475d8){return _0x3475d8[_0x8b13('0x25')](_0x1b09e2)[_0x8b13('0x13')](function(_0x2bb51d){return _0x2bb51d;});}return null;};}function removeEntity(_0x5ab161){return function(_0x35fdca){if(_0x35fdca){return _0x35fdca[_0x8b13('0x26')]()[_0x8b13('0x13')](function(){_0x5ab161[_0x8b13('0x1f')](0xcc)[_0x8b13('0x27')]();});}};}function handleEntityNotFound(_0x29946e){return function(_0x3304bd){if(!_0x3304bd){_0x29946e[_0x8b13('0x28')](0x194);}return _0x3304bd;};}function handleError(_0x36f732,_0x5751db){_0x5751db=_0x5751db||0x1f4;return function(_0x14cc2e){logger[_0x8b13('0x18')](_0x14cc2e[_0x8b13('0x29')]);if(_0x14cc2e[_0x8b13('0x2a')]){delete _0x14cc2e['name'];}_0x36f732['status'](_0x5751db)[_0x8b13('0x2b')](_0x14cc2e);};}exports['index']=function(_0x5663fa,_0x3b1dfa){var _0x535521={},_0x2ec1ab={},_0x408626={'count':0x0,'rows':[]};var _0x40fc29=_[_0x8b13('0x2c')](db[_0x8b13('0x2d')][_0x8b13('0x2e')],function(_0x1fcd82){return{'name':_0x1fcd82[_0x8b13('0x2f')],'type':_0x1fcd82[_0x8b13('0x30')][_0x8b13('0x31')]};});_0x2ec1ab['model']=_[_0x8b13('0x2c')](_0x40fc29,_0x8b13('0x2a'));_0x2ec1ab[_0x8b13('0x32')]=_[_0x8b13('0x33')](_0x5663fa[_0x8b13('0x32')]);_0x2ec1ab[_0x8b13('0x34')]=_[_0x8b13('0x35')](_0x2ec1ab[_0x8b13('0x36')],_0x2ec1ab['query']);_0x535521[_0x8b13('0x37')]=_['intersection'](_0x2ec1ab[_0x8b13('0x36')],qs[_0x8b13('0x38')](_0x5663fa[_0x8b13('0x32')][_0x8b13('0x38')]));_0x535521[_0x8b13('0x37')]=_0x535521[_0x8b13('0x37')]['length']?_0x535521['attributes']:_0x2ec1ab[_0x8b13('0x36')];if(!_0x5663fa['query'][_0x8b13('0x39')]('nolimit')){_0x535521[_0x8b13('0x22')]=qs[_0x8b13('0x22')](_0x5663fa[_0x8b13('0x32')][_0x8b13('0x22')]);_0x535521[_0x8b13('0x21')]=qs['offset'](_0x5663fa['query'][_0x8b13('0x21')]);}_0x535521['order']=qs[_0x8b13('0x3a')](_0x5663fa[_0x8b13('0x32')]['sort']);_0x535521[_0x8b13('0x3b')]=qs[_0x8b13('0x34')](_[_0x8b13('0x3c')](_0x5663fa[_0x8b13('0x32')],_0x2ec1ab[_0x8b13('0x34')]),_0x40fc29);if(_0x5663fa[_0x8b13('0x32')][_0x8b13('0x3d')]){_0x535521['where']=_['merge'](_0x535521['where'],{'$or':_[_0x8b13('0x2c')](_0x40fc29,function(_0x16ec3){if(_0x16ec3[_0x8b13('0x30')]!==_0x8b13('0x3e')){var _0x2e6e78={};_0x2e6e78[_0x16ec3[_0x8b13('0x2a')]]={'$like':'%'+_0x5663fa['query'][_0x8b13('0x3d')]+'%'};return _0x2e6e78;}})});}_0x535521=_['merge']({},_0x535521,_0x5663fa[_0x8b13('0x3f')]);var _0x5ce9c8={'where':_0x535521[_0x8b13('0x3b')]};return db[_0x8b13('0x2d')][_0x8b13('0x23')](_0x5ce9c8)[_0x8b13('0x13')](function(_0x1ae916){_0x408626[_0x8b13('0x23')]=_0x1ae916;if(_0x5663fa[_0x8b13('0x32')]['includeAll']){_0x535521['include']=[{'all':!![]}];}return db['MailMessage'][_0x8b13('0x40')](_0x535521);})[_0x8b13('0x13')](function(_0x288faa){_0x408626[_0x8b13('0x41')]=_0x288faa;return _0x408626;})['then'](respondWithFilteredResult(_0x3b1dfa,_0x535521))['catch'](handleError(_0x3b1dfa,null));};exports[_0x8b13('0x42')]=function(_0x54d19d,_0x24262a){var _0x10928d={'raw':!![],'where':{'id':_0x54d19d[_0x8b13('0x43')]['id']}},_0x20c363={};_0x20c363[_0x8b13('0x36')]=_['keys'](db[_0x8b13('0x2d')][_0x8b13('0x2e')]);_0x20c363[_0x8b13('0x32')]=_[_0x8b13('0x33')](_0x54d19d[_0x8b13('0x32')]);_0x20c363[_0x8b13('0x34')]=_[_0x8b13('0x35')](_0x20c363[_0x8b13('0x36')],_0x20c363[_0x8b13('0x32')]);_0x10928d['attributes']=_[_0x8b13('0x35')](_0x20c363['model'],qs[_0x8b13('0x38')](_0x54d19d[_0x8b13('0x32')][_0x8b13('0x38')]));_0x10928d['attributes']=_0x10928d[_0x8b13('0x37')][_0x8b13('0x44')]?_0x10928d[_0x8b13('0x37')]:_0x20c363[_0x8b13('0x36')];if(_0x54d19d[_0x8b13('0x32')][_0x8b13('0x45')]){_0x10928d[_0x8b13('0x46')]=[{'all':!![]}];}_0x10928d=_['merge']({},_0x10928d,_0x54d19d[_0x8b13('0x3f')]);return db['MailMessage'][_0x8b13('0x47')](_0x10928d)[_0x8b13('0x13')](handleEntityNotFound(_0x24262a,null))[_0x8b13('0x13')](respondWithResult(_0x24262a,null))[_0x8b13('0x1e')](handleError(_0x24262a,null));};exports[_0x8b13('0x25')]=function(_0x22e613,_0x411ad2){if(_0x22e613[_0x8b13('0x48')]['id']){delete _0x22e613[_0x8b13('0x48')]['id'];}return db[_0x8b13('0x2d')][_0x8b13('0x47')]({'where':{'id':_0x22e613[_0x8b13('0x43')]['id']}})[_0x8b13('0x13')](handleEntityNotFound(_0x411ad2,null))[_0x8b13('0x13')](saveUpdates(_0x22e613[_0x8b13('0x48')],null))[_0x8b13('0x13')](respondWithResult(_0x411ad2,null))[_0x8b13('0x1e')](handleError(_0x411ad2,null));};exports['destroy']=function(_0x1699c6,_0x20e89c){return db['MailMessage'][_0x8b13('0x47')]({'where':{'id':_0x1699c6[_0x8b13('0x43')]['id']}})[_0x8b13('0x13')](handleEntityNotFound(_0x20e89c,null))[_0x8b13('0x13')](removeEntity(_0x20e89c,null))[_0x8b13('0x1e')](handleError(_0x20e89c,null));};exports[_0x8b13('0x49')]=function(_0x934f,_0x39984a){return db[_0x8b13('0x2d')][_0x8b13('0x49')]()[_0x8b13('0x13')](respondWithResult(_0x39984a,null))[_0x8b13('0x1e')](handleError(_0x39984a,null));};exports[_0x8b13('0x4a')]=function(_0x25ab1f,_0x22e7a6){return db['MailMessage'][_0x8b13('0x4a')](_0x25ab1f[_0x8b13('0x48')])['then'](function(_0x11e8af){if(_0x11e8af){if(_0x11e8af[_0x8b13('0x4b')]===_0x8b13('0x4c')&&!_0x11e8af[_0x8b13('0x4d')]){var _0x1263f4,_0x4f81ae,_0x1fd105;if(_0x25ab1f[_0x8b13('0x48')]['to']){_0x4f81ae=_0x25ab1f[_0x8b13('0x48')]['to']['split'](',')[0x0];}return db[_0x8b13('0x4e')][_0x8b13('0x4f')]({'where':{'id':_0x11e8af['MailAccountId']},'include':[{'model':db[_0x8b13('0x50')],'as':_0x8b13('0x51'),'include':[{'model':db[_0x8b13('0x52')],'as':_0x8b13('0x53'),'where':{'email':_0x4f81ae},'limit':0x1,'order':[['updatedAt',_0x8b13('0x54')]]}]},{'model':db[_0x8b13('0x55')],'as':'Smtp','raw':!![]}]})[_0x8b13('0x13')](function(_0x130704){_0x1263f4=_0x130704;if(_0x1263f4&&_0x1263f4[_0x8b13('0x56')]){var _0x23a63c={'tls':{'rejectUnauthorized':![]}};if(_['isNil'](_0x1263f4[_0x8b13('0x56')][_0x8b13('0x57')])){_0x23a63c[_0x8b13('0x58')]=_0x1263f4[_0x8b13('0x56')][_0x8b13('0x58')];_0x23a63c[_0x8b13('0x59')]=_0x1263f4['Smtp'][_0x8b13('0x59')];_0x23a63c[_0x8b13('0x5a')]=_0x1263f4[_0x8b13('0x56')]['secure'];if(_0x1263f4[_0x8b13('0x56')][_0x8b13('0x5b')]){_0x23a63c[_0x8b13('0x5c')]={'user':_0x1263f4[_0x8b13('0x56')]['user'],'pass':_0x1263f4['Smtp']['pass']};}}else{_0x23a63c['service']=_0x1263f4['Smtp'][_0x8b13('0x57')];_0x23a63c[_0x8b13('0x5c')]={'user':_0x1263f4['Smtp'][_0x8b13('0x5d')],'pass':_0x1263f4['Smtp'][_0x8b13('0x5e')]};_0x23a63c[_0x8b13('0x5a')]=_0x1263f4[_0x8b13('0x56')][_0x8b13('0x5a')];}if(_0x25ab1f[_0x8b13('0x48')][_0x8b13('0x5f')]&&_0x25ab1f[_0x8b13('0x48')]['attachments'][_0x8b13('0x44')]){for(var _0x49ebaa=0x0;_0x49ebaa<_0x25ab1f[_0x8b13('0x48')][_0x8b13('0x5f')][_0x8b13('0x44')];_0x49ebaa+=0x1){_0x25ab1f[_0x8b13('0x48')][_0x8b13('0x5f')][_0x49ebaa]={'filename':_0x25ab1f[_0x8b13('0x48')][_0x8b13('0x5f')][_0x49ebaa]['name'],'path':path[_0x8b13('0x60')](config['root'],_0x8b13('0x61'),_0x25ab1f[_0x8b13('0x48')][_0x8b13('0x5f')][_0x49ebaa][_0x8b13('0x62')])};}}_0x1fd105={'account':_0x23a63c,'message':_0x25ab1f[_0x8b13('0x48')]};return;}})['then'](function(){if(_0x1263f4['List']){if(_0x1263f4[_0x8b13('0x51')][_0x8b13('0x53')]['length']){return _0x1263f4[_0x8b13('0x51')][_0x8b13('0x53')][0x0];}else{return db[_0x8b13('0x52')]['create'](_[_0x8b13('0xd')](_0x25ab1f[_0x8b13('0x48')],{'firstName':_0x25ab1f[_0x8b13('0x48')]['to'],'email':_0x25ab1f[_0x8b13('0x48')]['to'],'phone':_0x25ab1f['body']['to'],'ListId':_0x1263f4[_0x8b13('0x63')]}));}}else{throw new Error(_0x8b13('0x64'));}})['then'](function(){if(_0x1fd105){return respondWithRpcPromise(_0x8b13('0x65'),_0x8b13('0x66'),_0x1fd105,client9003)[_0x8b13('0x13')](function(_0x3734e7){return _0x11e8af[_0x8b13('0x25')]({'read':!![],'messageId':_0x3734e7[_0x8b13('0x67')],'sentAt':moment()[_0x8b13('0x68')](_0x8b13('0x69'))});})[_0x8b13('0x1e')](function(_0x2cace0){logger[_0x8b13('0x18')]('%s',JSON[_0x8b13('0x17')](_0x2cace0));return _0x11e8af;});}return _0x11e8af;});}return _0x11e8af;}})[_0x8b13('0x13')](respondWithResult(_0x22e7a6,0xc9))[_0x8b13('0x1e')](handleError(_0x22e7a6,null));};exports['accept']=function(_0x28fb76,_0x578469){var _0x14dee4={'agent':{},'channel':_0x8b13('0x6a')};if(_0x28fb76[_0x8b13('0x48')]['id']){delete _0x28fb76[_0x8b13('0x48')]['id'];}_0x28fb76['body']['read']=!![];_0x28fb76[_0x8b13('0x48')][_0x8b13('0x6b')]=moment()['format'](_0x8b13('0x69'));_0x28fb76[_0x8b13('0x48')][_0x8b13('0x6c')]=_0x28fb76[_0x8b13('0x48')][_0x8b13('0x6c')]||_0x28fb76[_0x8b13('0x5d')]['id'];_0x14dee4[_0x8b13('0x6d')]['id']=_0x28fb76[_0x8b13('0x48')][_0x8b13('0x6c')];return db[_0x8b13('0x2d')]['find']({'where':{'id':_0x28fb76[_0x8b13('0x43')]['id'],'UserId':null}})[_0x8b13('0x13')](handleEntityNotFound(_0x578469,null))['then'](saveUpdates(_0x28fb76[_0x8b13('0x48')],null))[_0x8b13('0x13')](function(_0x58138e){if(_0x58138e){_0x14dee4[_0x8b13('0x1b')]=_0x58138e[_0x8b13('0x6e')]({'plain':!![]});return db[_0x8b13('0x6f')][_0x8b13('0x47')]({'where':{'id':_0x58138e[_0x8b13('0x70')]}});}return null;})[_0x8b13('0x13')](handleEntityNotFound(_0x578469,null))[_0x8b13('0x13')](function(_0x1fde8b){if(_0x1fde8b){return _0x1fde8b['update']({'UserId':_0x28fb76[_0x8b13('0x48')][_0x8b13('0x6c')],'read1stAt':_[_0x8b13('0x71')](_0x1fde8b['read1stAt'])?moment()[_0x8b13('0x68')]('YYYY-MM-DD\x20HH:mm:ss'):undefined});}return null;})[_0x8b13('0x13')](function(_0x383d56){if(_0x383d56){_0x14dee4[_0x8b13('0x72')]=_0x383d56[_0x8b13('0x6e')]({'plain':!![]});interaction_log[_0x8b13('0x1c')](_0x8b13('0x73'),_0x28fb76[_0x8b13('0x5d')]['id'],_0x28fb76[_0x8b13('0x5d')][_0x8b13('0x2a')],_0x28fb76[_0x8b13('0x5d')]['role'],_0x14dee4[_0x8b13('0x72')]['id'],_0x28fb76[_0x8b13('0x48')]?JSON[_0x8b13('0x17')](_0x28fb76[_0x8b13('0x48')]):_0x8b13('0x74'));return respondWithRpcPromise(_0x8b13('0x75'),_0x8b13('0x76'),_0x14dee4);}return null;})[_0x8b13('0x13')](function(_0x5cb836){var _0x188cc5=_0x8b13('0x77')+_0x5cb836[_0x8b13('0x1b')][_0x8b13('0x78')];return db['sequelize']['query'](_0x188cc5,{'type':db[_0x8b13('0x79')]['QueryTypes'][_0x8b13('0x7a')],'raw':!![]})[_0x8b13('0x13')](function(_0x57c9af){return _0x57c9af;});})['then'](function(_0xd23b73){if(_0xd23b73){_0x14dee4[_0x8b13('0x1b')][_0x8b13('0x7b')]=_0xd23b73[0x0];if(!_0x28fb76[_0x8b13('0x48')][_0x8b13('0x6c')])return;return db['User'][_0x8b13('0x47')]({'where':{'id':_0x28fb76['body'][_0x8b13('0x6c')],'role':_0x8b13('0x6d')},'attributes':['id','name',_0x8b13('0x7c'),_0x8b13('0x7d'),_0x8b13('0x7e')],'raw':!![]});}return null;})[_0x8b13('0x13')](function(_0x2f1ddf){if(!_0x2f1ddf)return null;_0x14dee4['message'][_0x8b13('0x6d')]=_0x2f1ddf;return _0x14dee4;})[_0x8b13('0x13')](function(_0x471f25){if(_0x471f25){if(_0x28fb76['body'][_0x8b13('0x7f')]){_0x14dee4['message'][_0x8b13('0x80')]=util[_0x8b13('0x68')](_0x8b13('0x81'),_0x28fb76[_0x8b13('0x5d')][_0x8b13('0x2a')]);_0x14dee4[_0x8b13('0x1b')][_0x8b13('0x82')]=_0x14dee4[_0x8b13('0x82')];_0x14dee4[_0x8b13('0x1b')][_0x8b13('0x83')]=_0x14dee4['channel'];_0x14dee4[_0x8b13('0x1b')][_0x8b13('0x84')]=_0x8b13('0x85');_0x14dee4[_0x8b13('0x1b')][_0x8b13('0x48')]=htmlToText['fromString'](_0x14dee4[_0x8b13('0x1b')][_0x8b13('0x48')]);return respondWithRpcPromise(_0x8b13('0x86'),_0x8b13('0x86'),{'event':_0x8b13('0x87'),'message':_0x14dee4[_0x8b13('0x1b')]},client9002)['then'](function(){return _0x14dee4;});}return _0x14dee4;}return null;})[_0x8b13('0x13')](respondWithResult(_0x578469,null))[_0x8b13('0x1e')](handleError(_0x578469,null));};exports['reject']=function(_0x1b3a1b,_0x48269c){var _0x1e85eb={'agent':{},'channel':'mail'};if(_0x1b3a1b[_0x8b13('0x48')]['id']){delete _0x1b3a1b[_0x8b13('0x48')]['id'];}_0x1b3a1b[_0x8b13('0x48')][_0x8b13('0x6c')]=_0x1b3a1b[_0x8b13('0x48')][_0x8b13('0x6c')]||_0x1b3a1b[_0x8b13('0x5d')]['id'];_0x1e85eb[_0x8b13('0x6d')]['id']=_0x1b3a1b['body'][_0x8b13('0x6c')];return db[_0x8b13('0x2d')]['find']({'where':{'id':_0x1b3a1b[_0x8b13('0x43')]['id'],'UserId':null}})[_0x8b13('0x13')](handleEntityNotFound(_0x48269c,null))['then'](function(_0xa97f27){if(_0xa97f27){_0x1e85eb[_0x8b13('0x1b')]=_0xa97f27[_0x8b13('0x6e')]({'plain':!![]});return db[_0x8b13('0x6f')][_0x8b13('0x47')]({'where':{'id':_0xa97f27['MailInteractionId']}});}return null;})['then'](handleEntityNotFound(_0x48269c,null))[_0x8b13('0x13')](function(_0x225082){if(_0x225082){_0x1e85eb[_0x8b13('0x72')]=_0x225082[_0x8b13('0x6e')]({'plain':!![]});interaction_log[_0x8b13('0x1c')](_0x8b13('0x88'),_0x1b3a1b[_0x8b13('0x5d')]['id'],_0x1b3a1b[_0x8b13('0x5d')][_0x8b13('0x2a')],_0x1b3a1b[_0x8b13('0x5d')][_0x8b13('0x89')],_0x1e85eb[_0x8b13('0x72')]['id'],_0x1b3a1b[_0x8b13('0x48')]?JSON[_0x8b13('0x17')](_0x1b3a1b[_0x8b13('0x48')]):_0x8b13('0x74'));return respondWithRpcPromise('RejectMessage',_0x8b13('0x8a'),_0x1e85eb);}return null;})['then'](function(_0x4538f6){var _0x111085=_0x8b13('0x77')+_0x4538f6[_0x8b13('0x1b')][_0x8b13('0x78')];return db[_0x8b13('0x8b')][_0x8b13('0x32')](_0x111085,{'type':db['Sequelize'][_0x8b13('0x8c')]['SELECT'],'raw':!![]})[_0x8b13('0x13')](function(_0x2ca382){return _0x2ca382;});})['then'](function(_0x4efa45){if(_0x4efa45){_0x1e85eb[_0x8b13('0x1b')][_0x8b13('0x7b')]=_0x4efa45[0x0];if(!_0x1b3a1b[_0x8b13('0x48')][_0x8b13('0x6c')])return;return db[_0x8b13('0x8d')][_0x8b13('0x47')]({'where':{'id':_0x1b3a1b['body'][_0x8b13('0x6c')],'role':_0x8b13('0x6d')},'attributes':['id','name','fullname','email',_0x8b13('0x7e')],'raw':!![]});}return null;})[_0x8b13('0x13')](function(_0x1abb53){if(!_0x1abb53)return null;_0x1e85eb[_0x8b13('0x1b')][_0x8b13('0x6d')]=_0x1abb53;return _0x1e85eb;})[_0x8b13('0x13')](function(_0x270b56){if(_0x270b56){_0x270b56[_0x8b13('0x1b')]['interface']=util[_0x8b13('0x68')]('SIP/%s',_0x1b3a1b[_0x8b13('0x5d')]['name']);_0x270b56[_0x8b13('0x1b')][_0x8b13('0x82')]=_0x1e85eb['channel'];_0x270b56[_0x8b13('0x1b')][_0x8b13('0x83')]=_0x1e85eb[_0x8b13('0x82')];_0x270b56[_0x8b13('0x1b')][_0x8b13('0x84')]='reject';_0x270b56[_0x8b13('0x1b')][_0x8b13('0x48')]=htmlToText[_0x8b13('0x8e')](_0x1e85eb[_0x8b13('0x1b')]['body']);respondWithRpcPromise(_0x8b13('0x86'),'EventManager',{'event':_0x8b13('0x8f'),'message':_0x270b56[_0x8b13('0x1b')]},client9002);return _0x1e85eb;}return null;})[_0x8b13('0x13')](respondWithResult(_0x48269c,null))['catch'](handleError(_0x48269c,null));};exports['download']=function(_0x50e98d,_0x5a9f3e){var _0x265f60=moment()['unix']()[_0x8b13('0x90')]();var _0x4a32ea=path[_0x8b13('0x60')](config[_0x8b13('0x91')],_0x8b13('0x92'),_0x8b13('0x93'),_0x8b13('0x94'));var _0x8b2cd9=path[_0x8b13('0x60')](config[_0x8b13('0x91')],_0x8b13('0x92'),_0x8b13('0x93'),_0x8b13('0x5f'));var _0x333662=util[_0x8b13('0x68')]('message-%s.eml',_0x265f60);return db[_0x8b13('0x2d')]['find']({'where':{'id':_0x50e98d['params']['id']},'attributes':['id','body',_0x8b13('0x95'),'to','cc',_0x8b13('0x96'),_0x8b13('0x97'),_0x8b13('0x98')],'include':_0x50e98d['query'][_0x8b13('0x5f')]?[{'model':db['Attachment'],'as':_0x8b13('0x99')}]:undefined})[_0x8b13('0x13')](handleEntityNotFound(_0x5a9f3e,null))['then'](function(_0x218f95){if(_0x218f95){var _0x121820=_0x218f95;var _0x25d770={'from':_0x121820['from'],'to':_0x121820['to'],'subject':_0x121820[_0x8b13('0x97')],'html':_0x121820[_0x8b13('0x48')],'headers':{'Date':moment(_0x121820[_0x8b13('0x98')])[_0x8b13('0x68')](_0x8b13('0x9a'))},'attachments':[]};if(_0x218f95['cc']){_0x25d770[_0x8b13('0x9b')]['Cc']=_0x218f95['cc'];}if(_0x218f95[_0x8b13('0x96')]){_0x25d770[_0x8b13('0x9b')][_0x8b13('0x9c')]=_0x218f95[_0x8b13('0x96')];}return new BPromise(function(_0x2329e2,_0x2a28ef){if(_0x218f95[_0x8b13('0x99')]){for(var _0x35171e=0x0;_0x35171e<_0x218f95[_0x8b13('0x99')][_0x8b13('0x44')];_0x35171e++){var _0x525444=_0x218f95[_0x8b13('0x99')][_0x35171e];var _0x386b00=path[_0x8b13('0x60')](_0x8b2cd9,_0x525444['basename']);if(fs[_0x8b13('0x9d')](_0x386b00)){_0x25d770['attachments'][_0x8b13('0x9e')]({'name':_0x525444[_0x8b13('0x2a')],'contentType':_0x525444[_0x8b13('0x30')],'data':fs['readFileSync'](_0x386b00)});}}}emlformat[_0x8b13('0x9f')](_0x25d770,function(_0x1a5ecb,_0x506ab2){if(_0x1a5ecb)return _0x2a28ef(_0x1a5ecb);fs['writeFileSync'](path[_0x8b13('0x60')](_0x4a32ea,_0x333662),_0x506ab2);return _0x2329e2(_0x506ab2);});});}})[_0x8b13('0x13')](function(_0x56d3e5){if(_0x56d3e5){return _0x5a9f3e[_0x8b13('0xa0')](path[_0x8b13('0x60')](_0x4a32ea,_0x333662),_0x333662,function(_0x2b69fb){if(!_0x2b69fb)fs[_0x8b13('0xa1')](path['join'](_0x4a32ea,_0x333662));});}})[_0x8b13('0x1e')](handleError(_0x5a9f3e,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0bd3=['update','remove','emit','hasOwnProperty','exports','events','../../mysqldb','MailMessage','setMaxListeners','save'];(function(_0x1a83c5,_0x3943f2){var _0x151d8f=function(_0x48e2e3){while(--_0x48e2e3){_0x1a83c5['push'](_0x1a83c5['shift']());}};_0x151d8f(++_0x3943f2);}(_0x0bd3,0x177));var _0x30bd=function(_0x810025,_0x34bb04){_0x810025=_0x810025-0x0;var _0x4dbc81=_0x0bd3[_0x810025];return _0x4dbc81;};'use strict';var EventEmitter=require(_0x30bd('0x0'));var MailMessage=require(_0x30bd('0x1'))['db'][_0x30bd('0x2')];var MailMessageEvents=new EventEmitter();MailMessageEvents[_0x30bd('0x3')](0x0);var events={'afterCreate':_0x30bd('0x4'),'afterUpdate':_0x30bd('0x5'),'afterDestroy':_0x30bd('0x6')};function emitEvent(_0x5d743d){return function(_0x49e8f1,_0x1440bd,_0x27a436){MailMessageEvents['emit'](_0x5d743d+':'+_0x49e8f1['id'],_0x49e8f1);MailMessageEvents[_0x30bd('0x7')](_0x5d743d,_0x49e8f1);_0x27a436(null);};}for(var e in events){if(events[_0x30bd('0x8')](e)){var event=events[e];MailMessage['hook'](e,emitEvent(event));}}module[_0x30bd('0x9')]=MailMessageEvents;
\ No newline at end of file
+var _0xf07c=['events','MailMessage','setMaxListeners','save','update','remove','emit','hook'];(function(_0x2641f9,_0x26715f){var _0x585741=function(_0x2d1462){while(--_0x2d1462){_0x2641f9['push'](_0x2641f9['shift']());}};_0x585741(++_0x26715f);}(_0xf07c,0x68));var _0xcf07=function(_0x369151,_0x179f72){_0x369151=_0x369151-0x0;var _0x4292d5=_0xf07c[_0x369151];return _0x4292d5;};'use strict';var EventEmitter=require(_0xcf07('0x0'));var MailMessage=require('../../mysqldb')['db'][_0xcf07('0x1')];var MailMessageEvents=new EventEmitter();MailMessageEvents[_0xcf07('0x2')](0x0);var events={'afterCreate':_0xcf07('0x3'),'afterUpdate':_0xcf07('0x4'),'afterDestroy':_0xcf07('0x5')};function emitEvent(_0x25d133){return function(_0x527088,_0x332d63,_0x3f3945){MailMessageEvents[_0xcf07('0x6')](_0x25d133+':'+_0x527088['id'],_0x527088);MailMessageEvents[_0xcf07('0x6')](_0x25d133,_0x527088);_0x3f3945(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];MailMessage[_0xcf07('0x7')](e,emitEvent(event));}}module['exports']=MailMessageEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x86c5=['./mailMessage.attributes','exports','define','mail_messages','messageId','fti_mail_messages','subject','FULLTEXT','plainBody','body','models','toLowerCase','direction','secret','isNil','MailInteraction','findOne','MailInteractionId','then','update','createdAt','catch','error','utf8mb4','utf8mb4_unicode_ci','lodash','util','moment','request-promise','html-to-text','path','rimraf','../../config/environment'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0x86c5,0x100));var _0x586c=function(_0x8ed822,_0x50cf81){_0x8ed822=_0x8ed822-0x0;var _0x435fba=_0x86c5[_0x8ed822];return _0x435fba;};'use strict';var _=require(_0x586c('0x0'));var util=require(_0x586c('0x1'));var logger=require('../../config/logger')('api');var moment=require(_0x586c('0x2'));var BPromise=require('bluebird');var rp=require(_0x586c('0x3'));var htmlToText=require(_0x586c('0x4'));var fs=require('fs');var path=require(_0x586c('0x5'));var rimraf=require(_0x586c('0x6'));var config=require(_0x586c('0x7'));var attributes=require(_0x586c('0x8'));module[_0x586c('0x9')]=function(_0x354a2d,_0x2db991){return _0x354a2d[_0x586c('0xa')]('MailMessage',attributes,{'tableName':_0x586c('0xb'),'paranoid':![],'indexes':[{'name':_0x586c('0xc'),'fields':[_0x586c('0xc')]},{'name':_0x586c('0xd'),'fields':['plainBody',_0x586c('0xe')],'type':_0x586c('0xf')}],'timestamps':!![],'hooks':{'beforeCreate':function(_0x3eba02,_0x1f3ec7,_0x5bb7f7){if(_0x3eba02['body']){_0x3eba02[_0x586c('0x10')]=htmlToText['fromString'](_0x3eba02[_0x586c('0x11')],{'preserveNewlines':!![],'singleNewLineParagraphs':!![],'uppercaseHeadings':![],'noLinkBrackets':!![],'ignoreImage':!![]});}_0x5bb7f7(null,_0x1f3ec7);},'afterCreate':function(_0x46a3a6,_0x694264,_0x48882b){var _0x1d6808=_0x354a2d[_0x586c('0x12')];var _0x306fd5=_0x46a3a6['get']({'plain':!![]});if(_0x306fd5['direction'][_0x586c('0x13')]()==='in'||_0x306fd5[_0x586c('0x14')][_0x586c('0x13')]()==='out'&&!_0x306fd5[_0x586c('0x15')]&&!_[_0x586c('0x16')](_0x306fd5['UserId'])){_0x1d6808[_0x586c('0x17')][_0x586c('0x18')]({'where':{'id':_0x306fd5[_0x586c('0x19')]}})[_0x586c('0x1a')](function(_0xd3654c){if(_0xd3654c){_0xd3654c[_0x586c('0x1b')]({'lastMsgAt':_0x306fd5[_0x586c('0x1c')],'lastMsgDirection':_0x306fd5[_0x586c('0x14')]['toLowerCase']()});}})[_0x586c('0x1d')](function(_0x22b0b2){console[_0x586c('0x1e')](_0x22b0b2);});}_0x48882b();}},'charset':_0x586c('0x1f'),'collate':_0x586c('0x20')});};
\ No newline at end of file
+var _0x57ff=['mail_messages','messageId','fti_mail_messages','plainBody','subject','FULLTEXT','body','fromString','models','toLowerCase','direction','out','secret','isNil','UserId','MailInteraction','findOne','then','update','lodash','../../config/logger','api','moment','bluebird','request-promise','html-to-text','path','rimraf','../../config/environment','./mailMessage.attributes','define','MailMessage'];(function(_0x50c599,_0x21de75){var _0x245ca1=function(_0x3a1de8){while(--_0x3a1de8){_0x50c599['push'](_0x50c599['shift']());}};_0x245ca1(++_0x21de75);}(_0x57ff,0xd3));var _0xf57f=function(_0x30f1c1,_0x294ebb){_0x30f1c1=_0x30f1c1-0x0;var _0x57a8f3=_0x57ff[_0x30f1c1];return _0x57a8f3;};'use strict';var _=require(_0xf57f('0x0'));var util=require('util');var logger=require(_0xf57f('0x1'))(_0xf57f('0x2'));var moment=require(_0xf57f('0x3'));var BPromise=require(_0xf57f('0x4'));var rp=require(_0xf57f('0x5'));var htmlToText=require(_0xf57f('0x6'));var fs=require('fs');var path=require(_0xf57f('0x7'));var rimraf=require(_0xf57f('0x8'));var config=require(_0xf57f('0x9'));var attributes=require(_0xf57f('0xa'));module['exports']=function(_0xc64320,_0x497494){return _0xc64320[_0xf57f('0xb')](_0xf57f('0xc'),attributes,{'tableName':_0xf57f('0xd'),'paranoid':![],'indexes':[{'name':'messageId','fields':[_0xf57f('0xe')]},{'name':_0xf57f('0xf'),'fields':[_0xf57f('0x10'),_0xf57f('0x11')],'type':_0xf57f('0x12')}],'timestamps':!![],'hooks':{'beforeCreate':function(_0x247166,_0x388cb7,_0xe1e7ad){if(_0x247166[_0xf57f('0x13')]){_0x247166[_0xf57f('0x10')]=htmlToText[_0xf57f('0x14')](_0x247166[_0xf57f('0x13')],{'preserveNewlines':!![],'singleNewLineParagraphs':!![],'uppercaseHeadings':![],'noLinkBrackets':!![],'ignoreImage':!![]});}_0xe1e7ad(null,_0x388cb7);},'afterCreate':function(_0x25079b,_0x4ca475,_0x29c2cf){var _0x695a44=_0xc64320[_0xf57f('0x15')];var _0x25f1e6=_0x25079b['get']({'plain':!![]});if(_0x25f1e6['direction'][_0xf57f('0x16')]()==='in'||_0x25f1e6[_0xf57f('0x17')][_0xf57f('0x16')]()===_0xf57f('0x18')&&!_0x25f1e6[_0xf57f('0x19')]&&!_[_0xf57f('0x1a')](_0x25f1e6[_0xf57f('0x1b')])){_0x695a44[_0xf57f('0x1c')][_0xf57f('0x1d')]({'where':{'id':_0x25f1e6['MailInteractionId']}})[_0xf57f('0x1e')](function(_0x23dbeb){if(_0x23dbeb){_0x23dbeb[_0xf57f('0x1f')]({'lastMsgAt':_0x25f1e6['createdAt'],'lastMsgDirection':_0x25f1e6['direction'][_0xf57f('0x16')]()});}})['catch'](function(_0x52a5ff){console['error'](_0x52a5ff);});}_0x29c2cf();}},'charset':'utf8mb4','collate':'utf8mb4_unicode_ci'});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x065e=['options','raw','info','lodash','randomstring','ioredis','../../mysqldb','rpc','../../config/environment','client','http','redis','socket.io-emitter','./mailMessage.socket','register','request','then','request\x20sent','debug','MailMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','message','MailMessage,\x20%s,\x20%s','result','catch','CreateMailMessage','MailMessage','body'];(function(_0x2697a7,_0x36d1e3){var _0x18b624=function(_0x1f5b38){while(--_0x1f5b38){_0x2697a7['push'](_0x2697a7['shift']());}};_0x18b624(++_0x36d1e3);}(_0x065e,0x1a7));var _0xe065=function(_0xcb13a9,_0x2fb42b){_0xcb13a9=_0xcb13a9-0x0;var _0x57b8f4=_0x065e[_0xcb13a9];return _0x57b8f4;};'use strict';var _=require(_0xe065('0x0'));var util=require('util');var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0xe065('0x1'));var fs=require('fs');var Redis=require(_0xe065('0x2'));var db=require(_0xe065('0x3'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0xe065('0x4'));var config=require(_0xe065('0x5'));var jayson=require('jayson/promise');var client=jayson[_0xe065('0x6')][_0xe065('0x7')]({'port':0x232a});config[_0xe065('0x8')]=_['defaults'](config[_0xe065('0x8')],{'host':'localhost','port':0x18eb});var socket=require(_0xe065('0x9'))(new Redis(config[_0xe065('0x8')]));require(_0xe065('0xa'))[_0xe065('0xb')](socket);function respondWithRpcPromise(_0x85001e,_0x531ebd,_0x43827c){return new BPromise(function(_0x6c9117,_0x3f59d3){return client[_0xe065('0xc')](_0x85001e,_0x43827c)[_0xe065('0xd')](function(_0x2a6a6e){logger['info']('MailMessage,\x20%s,\x20%s',_0x531ebd,_0xe065('0xe'));logger[_0xe065('0xf')](_0xe065('0x10'),_0x531ebd,'request\x20sent',JSON[_0xe065('0x11')](_0x2a6a6e));if(_0x2a6a6e[_0xe065('0x12')]){if(_0x2a6a6e[_0xe065('0x12')][_0xe065('0x13')]===0x1f4){logger[_0xe065('0x12')]('MailMessage,\x20%s,\x20%s',_0x531ebd,_0x2a6a6e[_0xe065('0x12')][_0xe065('0x14')]);return _0x3f59d3(_0x2a6a6e[_0xe065('0x12')][_0xe065('0x14')]);}logger[_0xe065('0x12')](_0xe065('0x15'),_0x531ebd,_0x2a6a6e[_0xe065('0x12')]['message']);return _0x6c9117(_0x2a6a6e[_0xe065('0x12')][_0xe065('0x14')]);}else{logger['info'](_0xe065('0x15'),_0x531ebd,_0xe065('0xe'));_0x6c9117(_0x2a6a6e[_0xe065('0x16')][_0xe065('0x14')]);}})[_0xe065('0x17')](function(_0x302adf){logger[_0xe065('0x12')]('MailMessage,\x20%s,\x20%s',_0x531ebd,_0x302adf);_0x3f59d3(_0x302adf);});});}exports[_0xe065('0x18')]=function(_0x52e9b2){var _0x2df517=this;return new Promise(function(_0x23233d,_0x55f55c){return db[_0xe065('0x19')]['create'](_0x52e9b2[_0xe065('0x1a')],{'raw':_0x52e9b2[_0xe065('0x1b')]?_0x52e9b2[_0xe065('0x1b')][_0xe065('0x1c')]===undefined?!![]:![]:!![]})[_0xe065('0xd')](function(_0x105cb2){logger[_0xe065('0x1d')](_0xe065('0x18'),_0x52e9b2);logger[_0xe065('0xf')]('CreateMailMessage',_0x52e9b2,JSON[_0xe065('0x11')](_0x105cb2));_0x23233d(_0x105cb2);})[_0xe065('0x17')](function(_0x44ec95){logger[_0xe065('0x12')]('CreateMailMessage',_0x44ec95['message'],_0x52e9b2);_0x55f55c(_0x2df517[_0xe065('0x12')](0x1f4,_0x44ec95['message']));});});};
\ No newline at end of file
+var _0x7916=['request','then','info','MailMessage,\x20%s,\x20%s','request\x20sent','debug','MailMessage,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','CreateMailMessage','MailMessage','body','options','raw','lodash','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','client','http','defaults','localhost','./mailMessage.socket','register'];(function(_0x32b8ea,_0xf15bc){var _0x23ab3e=function(_0xcf059d){while(--_0xcf059d){_0x32b8ea['push'](_0x32b8ea['shift']());}};_0x23ab3e(++_0xf15bc);}(_0x7916,0x128));var _0x6791=function(_0x550b7b,_0x3d6314){_0x550b7b=_0x550b7b-0x0;var _0x451b9f=_0x7916[_0x550b7b];return _0x451b9f;};'use strict';var _=require(_0x6791('0x0'));var util=require('util');var moment=require(_0x6791('0x1'));var BPromise=require(_0x6791('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x6791('0x3'));var db=require(_0x6791('0x4'))['db'];var utils=require(_0x6791('0x5'));var logger=require(_0x6791('0x6'))('rpc');var config=require(_0x6791('0x7'));var jayson=require('jayson/promise');var client=jayson[_0x6791('0x8')][_0x6791('0x9')]({'port':0x232a});config['redis']=_[_0x6791('0xa')](config['redis'],{'host':_0x6791('0xb'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0x6791('0xc'))[_0x6791('0xd')](socket);function respondWithRpcPromise(_0x579950,_0xbc3bc6,_0x2769a4){return new BPromise(function(_0x2aeae9,_0x495d9c){return client[_0x6791('0xe')](_0x579950,_0x2769a4)[_0x6791('0xf')](function(_0x2025dd){logger[_0x6791('0x10')](_0x6791('0x11'),_0xbc3bc6,_0x6791('0x12'));logger[_0x6791('0x13')](_0x6791('0x14'),_0xbc3bc6,_0x6791('0x12'),JSON[_0x6791('0x15')](_0x2025dd));if(_0x2025dd[_0x6791('0x16')]){if(_0x2025dd['error']['code']===0x1f4){logger[_0x6791('0x16')]('MailMessage,\x20%s,\x20%s',_0xbc3bc6,_0x2025dd[_0x6791('0x16')]['message']);return _0x495d9c(_0x2025dd[_0x6791('0x16')][_0x6791('0x17')]);}logger['error'](_0x6791('0x11'),_0xbc3bc6,_0x2025dd['error'][_0x6791('0x17')]);return _0x2aeae9(_0x2025dd[_0x6791('0x16')]['message']);}else{logger[_0x6791('0x10')](_0x6791('0x11'),_0xbc3bc6,'request\x20sent');_0x2aeae9(_0x2025dd[_0x6791('0x18')]['message']);}})[_0x6791('0x19')](function(_0x126451){logger[_0x6791('0x16')](_0x6791('0x11'),_0xbc3bc6,_0x126451);_0x495d9c(_0x126451);});});}exports[_0x6791('0x1a')]=function(_0x2bc0ab){var _0x2ba11a=this;return new Promise(function(_0x581d51,_0x4a2922){return db[_0x6791('0x1b')]['create'](_0x2bc0ab[_0x6791('0x1c')],{'raw':_0x2bc0ab[_0x6791('0x1d')]?_0x2bc0ab['options'][_0x6791('0x1e')]===undefined?!![]:![]:!![]})[_0x6791('0xf')](function(_0x15b9ab){logger[_0x6791('0x10')]('CreateMailMessage',_0x2bc0ab);logger[_0x6791('0x13')](_0x6791('0x1a'),_0x2bc0ab,JSON['stringify'](_0x15b9ab));_0x581d51(_0x15b9ab);})['catch'](function(_0x4b23bc){logger[_0x6791('0x16')]('CreateMailMessage',_0x4b23bc[_0x6791('0x17')],_0x2bc0ab);_0x4a2922(_0x2ba11a['error'](0x1f4,_0x4b23bc['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5beb=['save','update','register','length'];(function(_0x4fe4ac,_0x2a9e4c){var _0x56de51=function(_0x3d6b6d){while(--_0x3d6b6d){_0x4fe4ac['push'](_0x4fe4ac['shift']());}};_0x56de51(++_0x2a9e4c);}(_0x5beb,0x15c));var _0xb5be=function(_0x5f36c0,_0x256f0d){_0x5f36c0=_0x5f36c0-0x0;var _0x28bf0a=_0x5beb[_0x5f36c0];return _0x28bf0a;};'use strict';var MailMessageEvents=require('./mailMessage.events');var events=[_0xb5be('0x0'),'remove',_0xb5be('0x1')];function createListener(_0x27e7dc,_0x29373f){return function(_0x1eb27b){_0x29373f['emit'](_0x27e7dc,_0x1eb27b);};}function removeListener(_0x1f879e,_0x1385aa){return function(){MailMessageEvents['removeListener'](_0x1f879e,_0x1385aa);};}exports[_0xb5be('0x2')]=function(_0x104e8a){for(var _0x1296f5=0x0,_0x38d12c=events[_0xb5be('0x3')];_0x1296f5<_0x38d12c;_0x1296f5++){var _0x1c151a=events[_0x1296f5];var _0x13c8b9=createListener('mailMessage:'+_0x1c151a,_0x104e8a);MailMessageEvents['on'](_0x1c151a,_0x13c8b9);}};
\ No newline at end of file
+var _0xd5d3=['length','mailMessage:','./mailMessage.events','save','remove','emit','register'];(function(_0x55802c,_0xfd30cf){var _0x5cf0fe=function(_0x2aaec2){while(--_0x2aaec2){_0x55802c['push'](_0x55802c['shift']());}};_0x5cf0fe(++_0xfd30cf);}(_0xd5d3,0x113));var _0x3d5d=function(_0x69ab4a,_0x2d1bf4){_0x69ab4a=_0x69ab4a-0x0;var _0x18a484=_0xd5d3[_0x69ab4a];return _0x18a484;};'use strict';var MailMessageEvents=require(_0x3d5d('0x0'));var events=[_0x3d5d('0x1'),_0x3d5d('0x2'),'update'];function createListener(_0x93d41e,_0x182703){return function(_0x2eba56){_0x182703[_0x3d5d('0x3')](_0x93d41e,_0x2eba56);};}function removeListener(_0x470f0f,_0x24d06f){return function(){MailMessageEvents['removeListener'](_0x470f0f,_0x24d06f);};}exports[_0x3d5d('0x4')]=function(_0x1f69df){for(var _0x1e6997=0x0,_0x9a80f=events[_0x3d5d('0x5')];_0x1e6997<_0x9a80f;_0x1e6997++){var _0x372d5c=events[_0x1e6997];var _0x211934=createListener(_0x3d5d('0x6')+_0x372d5c,_0x1f69df);MailMessageEvents['on'](_0x372d5c,_0x211934);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6411=['index','/describe','describe','/:id','show','/:id/members','getMembers','/:id/teams','getTeams','/:id/users','getAgents','post','create','addTeams','put','delete','removeTeams','exports','util','path','connect-timeout','express','Router','fs-extra','./mailQueue.controller','get','isAuthenticated'];(function(_0xdd53f0,_0x39a71a){var _0x59f401=function(_0x4557d7){while(--_0x4557d7){_0xdd53f0['push'](_0xdd53f0['shift']());}};_0x59f401(++_0x39a71a);}(_0x6411,0x13b));var _0x1641=function(_0x511133,_0x124bb5){_0x511133=_0x511133-0x0;var _0x4a3eeb=_0x6411[_0x511133];return _0x4a3eeb;};'use strict';var multer=require('multer');var util=require(_0x1641('0x0'));var path=require(_0x1641('0x1'));var timeout=require(_0x1641('0x2'));var express=require(_0x1641('0x3'));var router=express[_0x1641('0x4')]();var fs_extra=require(_0x1641('0x5'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0x1641('0x6'));router[_0x1641('0x7')]('/',auth[_0x1641('0x8')](),controller[_0x1641('0x9')]);router[_0x1641('0x7')](_0x1641('0xa'),auth[_0x1641('0x8')](),controller[_0x1641('0xb')]);router[_0x1641('0x7')](_0x1641('0xc'),auth['isAuthenticated'](),controller[_0x1641('0xd')]);router['get'](_0x1641('0xe'),auth[_0x1641('0x8')](),controller[_0x1641('0xf')]);router[_0x1641('0x7')](_0x1641('0x10'),auth[_0x1641('0x8')](),controller[_0x1641('0x11')]);router[_0x1641('0x7')](_0x1641('0x12'),auth['isAuthenticated'](),controller[_0x1641('0x13')]);router[_0x1641('0x14')]('/',auth[_0x1641('0x8')](),controller[_0x1641('0x15')]);router[_0x1641('0x14')](_0x1641('0x10'),auth['isAuthenticated'](),controller[_0x1641('0x16')]);router[_0x1641('0x14')](_0x1641('0x12'),auth[_0x1641('0x8')](),controller['addAgents']);router[_0x1641('0x17')](_0x1641('0xc'),auth[_0x1641('0x8')](),controller['update']);router['delete'](_0x1641('0xc'),auth[_0x1641('0x8')](),controller['destroy']);router[_0x1641('0x18')](_0x1641('0x10'),auth[_0x1641('0x8')](),controller[_0x1641('0x19')]);router['delete']('/:id/users',auth[_0x1641('0x8')](),controller['removeAgents']);module[_0x1641('0x1a')]=router;
\ No newline at end of file
+var _0x60a7=['removeAgents','exports','util','path','connect-timeout','express','fs-extra','../../components/auth/service','../../config/environment','get','isAuthenticated','index','/describe','describe','show','/:id/teams','getTeams','getAgents','post','create','/:id/users','addAgents','put','/:id','delete','destroy','removeTeams'];(function(_0x2064e5,_0x4f6fa2){var _0x21a233=function(_0x1b2491){while(--_0x1b2491){_0x2064e5['push'](_0x2064e5['shift']());}};_0x21a233(++_0x4f6fa2);}(_0x60a7,0x161));var _0x760a=function(_0x1f0c21,_0x319a06){_0x1f0c21=_0x1f0c21-0x0;var _0x15b788=_0x60a7[_0x1f0c21];return _0x15b788;};'use strict';var multer=require('multer');var util=require(_0x760a('0x0'));var path=require(_0x760a('0x1'));var timeout=require(_0x760a('0x2'));var express=require(_0x760a('0x3'));var router=express['Router']();var fs_extra=require(_0x760a('0x4'));var auth=require(_0x760a('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0x760a('0x6'));var controller=require('./mailQueue.controller');router[_0x760a('0x7')]('/',auth[_0x760a('0x8')](),controller[_0x760a('0x9')]);router[_0x760a('0x7')](_0x760a('0xa'),auth[_0x760a('0x8')](),controller[_0x760a('0xb')]);router[_0x760a('0x7')]('/:id',auth[_0x760a('0x8')](),controller[_0x760a('0xc')]);router['get']('/:id/members',auth[_0x760a('0x8')](),controller['getMembers']);router['get'](_0x760a('0xd'),auth['isAuthenticated'](),controller[_0x760a('0xe')]);router['get']('/:id/users',auth[_0x760a('0x8')](),controller[_0x760a('0xf')]);router[_0x760a('0x10')]('/',auth[_0x760a('0x8')](),controller[_0x760a('0x11')]);router['post'](_0x760a('0xd'),auth[_0x760a('0x8')](),controller['addTeams']);router['post'](_0x760a('0x12'),auth['isAuthenticated'](),controller[_0x760a('0x13')]);router[_0x760a('0x14')](_0x760a('0x15'),auth[_0x760a('0x8')](),controller['update']);router[_0x760a('0x16')](_0x760a('0x15'),auth[_0x760a('0x8')](),controller[_0x760a('0x17')]);router[_0x760a('0x16')](_0x760a('0xd'),auth['isAuthenticated'](),controller[_0x760a('0x18')]);router[_0x760a('0x16')](_0x760a('0x12'),auth[_0x760a('0x8')](),controller[_0x760a('0x19')]);module[_0x760a('0x1a')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9db1=['ENUM','rrmemory','roundrobin','sequelize','exports','STRING','name','INTEGER'];(function(_0x5482b7,_0x174006){var _0x2ec3b5=function(_0x37889c){while(--_0x37889c){_0x5482b7['push'](_0x5482b7['shift']());}};_0x2ec3b5(++_0x174006);}(_0x9db1,0x16b));var _0x19db=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x9db1[_0x3dd15e];return _0x231fd0;};'use strict';var Sequelize=require(_0x19db('0x0'));module[_0x19db('0x1')]={'name':{'type':Sequelize[_0x19db('0x2')],'unique':_0x19db('0x3'),'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'description':{'type':Sequelize[_0x19db('0x2')]},'timeout':{'type':Sequelize[_0x19db('0x4')],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize[_0x19db('0x5')](_0x19db('0x6'),'beepall',_0x19db('0x7'))}};
\ No newline at end of file
+var _0xef79=['name','INTEGER','ENUM','rrmemory','beepall','roundrobin','sequelize','exports'];(function(_0x9c2427,_0x17c865){var _0x51984f=function(_0x177af6){while(--_0x177af6){_0x9c2427['push'](_0x9c2427['shift']());}};_0x51984f(++_0x17c865);}(_0xef79,0x6e));var _0x9ef7=function(_0x2920dd,_0x31a3f7){_0x2920dd=_0x2920dd-0x0;var _0x555cf4=_0xef79[_0x2920dd];return _0x555cf4;};'use strict';var Sequelize=require(_0x9ef7('0x0'));module[_0x9ef7('0x1')]={'name':{'type':Sequelize['STRING'],'unique':_0x9ef7('0x2'),'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'description':{'type':Sequelize['STRING']},'timeout':{'type':Sequelize[_0x9ef7('0x3')],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize[_0x9ef7('0x4')](_0x9ef7('0x5'),_0x9ef7('0x6'),_0x9ef7('0x7'))}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb138=['updatedAt','format','createdAt','getTeams','nolimit','addTeams','ids','Team','online','interface','transaction','each','findOrCreate','forEach','emit','userMailQueue:save','Agents','select','field','tq.TeamId','from','team_has_mail_queues','join','user_has_teams','MailQueueId\x20=\x20?','clone','ut.UserId\x20=\x20?','push','sequelize','toString','QueryTypes','SELECT','TeamId','includes','all','union','compact','removeTeams','isEmpty','removeAgents','userMailQueue:remove','addAgents','spread','isArray','getAgents','hasOwnProperty','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','socket.io-emitter','redis','register','sendStatus','status','end','json','undefined','offset','count','limit','set','Content-Range','reject','save','update','then','destroy','UserProfileResource','error','stack','name','send','index','map','MailQueue','rawAttributes','fieldName','type','key','query','keys','intersection','attributes','model','fields','order','sort','where','filters','pick','filter','merge','VIRTUAL','options','findAll','rows','catch','params','length','includeAll','find','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','describe','getMembers','findOne','UserMailQueue','User','findAndCountAll','UserId','agent','mailPause'];(function(_0x303399,_0x2956cc){var _0x2f7f7e=function(_0x837eef){while(--_0x837eef){_0x303399['push'](_0x303399['shift']());}};_0x2f7f7e(++_0x2956cc);}(_0xb138,0x1de));var _0x8b13=function(_0x5ebda0,_0x385f04){_0x5ebda0=_0x5ebda0-0x0;var _0x4ec370=_0xb138[_0x5ebda0];return _0x4ec370;};'use strict';var emlformat=require(_0x8b13('0x0'));var rimraf=require(_0x8b13('0x1'));var zipdir=require(_0x8b13('0x2'));var jsonpatch=require(_0x8b13('0x3'));var rp=require(_0x8b13('0x4'));var moment=require(_0x8b13('0x5'));var BPromise=require(_0x8b13('0x6'));var Mustache=require(_0x8b13('0x7'));var util=require(_0x8b13('0x8'));var path=require(_0x8b13('0x9'));var sox=require(_0x8b13('0xa'));var csv=require(_0x8b13('0xb'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x8b13('0xc'));var _=require(_0x8b13('0xd'));var squel=require('squel');var crypto=require(_0x8b13('0xe'));var jsforce=require(_0x8b13('0xf'));var deskjs=require(_0x8b13('0x10'));var toCsv=require(_0x8b13('0xb'));var querystring=require(_0x8b13('0x11'));var Papa=require(_0x8b13('0x12'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x8b13('0x13'));var as=require(_0x8b13('0x14'));var hardwareService=require(_0x8b13('0x15'));var logger=require(_0x8b13('0x16'))(_0x8b13('0x17'));var utils=require(_0x8b13('0x18'));var config=require(_0x8b13('0x19'));var licenseUtil=require(_0x8b13('0x1a'));var db=require(_0x8b13('0x1b'))['db'];config['redis']=_['defaults'](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0x8b13('0x1c'))(new Redis(config[_0x8b13('0x1d')]));require('./mailQueue.socket')[_0x8b13('0x1e')](socket);function respondWithStatusCode(_0x17cce5,_0x2360f7){_0x2360f7=_0x2360f7||0xcc;return function(_0x55175e){if(_0x55175e){return _0x17cce5[_0x8b13('0x1f')](_0x2360f7);}return _0x17cce5[_0x8b13('0x20')](_0x2360f7)[_0x8b13('0x21')]();};}function respondWithResult(_0x18c1c1,_0x58b4cf){_0x58b4cf=_0x58b4cf||0xc8;return function(_0x45f2c7){if(_0x45f2c7){return _0x18c1c1[_0x8b13('0x20')](_0x58b4cf)[_0x8b13('0x22')](_0x45f2c7);}};}function respondWithFilteredResult(_0x544fd5,_0x6bee1a){return function(_0x855279){if(_0x855279){var _0x382b4=typeof _0x6bee1a['offset']===_0x8b13('0x23')&&typeof _0x6bee1a['limit']==='undefined';var _0x154f75=_0x855279['count'];var _0x5a8cb1=_0x382b4?0x0:_0x6bee1a[_0x8b13('0x24')];var _0xe838c5=_0x382b4?_0x855279[_0x8b13('0x25')]:_0x6bee1a[_0x8b13('0x24')]+_0x6bee1a[_0x8b13('0x26')];var _0x5f52cc;if(_0xe838c5>=_0x154f75){_0xe838c5=_0x154f75;_0x5f52cc=0xc8;}else{_0x5f52cc=0xce;}_0x544fd5['status'](_0x5f52cc);return _0x544fd5[_0x8b13('0x27')](_0x8b13('0x28'),_0x5a8cb1+'-'+_0xe838c5+'/'+_0x154f75)[_0x8b13('0x22')](_0x855279);}return null;};}function patchUpdates(_0x4b88af){return function(_0x5ebe6b){try{jsonpatch['apply'](_0x5ebe6b,_0x4b88af,!![]);}catch(_0x397fac){return BPromise[_0x8b13('0x29')](_0x397fac);}return _0x5ebe6b[_0x8b13('0x2a')]();};}function saveUpdates(_0x2c8bad,_0x1d4416){return function(_0x1b0e92){if(_0x1b0e92){return _0x1b0e92[_0x8b13('0x2b')](_0x2c8bad)[_0x8b13('0x2c')](function(_0x5cbb8f){return _0x5cbb8f;});}return null;};}function removeEntity(_0x31eb6d,_0x231618){return function(_0x3e831a){if(_0x3e831a){return _0x3e831a[_0x8b13('0x2d')]()['then'](function(){var _0x11841e=_0x3e831a['get']({'plain':!![]});var _0x452fda='MailQueues';return db[_0x8b13('0x2e')][_0x8b13('0x2d')]({'where':{'type':_0x452fda,'resourceId':_0x11841e['id']}})['then'](function(){return _0x3e831a;});})[_0x8b13('0x2c')](function(){_0x31eb6d[_0x8b13('0x20')](0xcc)[_0x8b13('0x21')]();});}};}function handleEntityNotFound(_0x2e72c7,_0x3e38c0){return function(_0x46b326){if(!_0x46b326){_0x2e72c7[_0x8b13('0x1f')](0x194);}return _0x46b326;};}function handleError(_0x5bcda9,_0x4d65d2){_0x4d65d2=_0x4d65d2||0x1f4;return function(_0x13d163){logger[_0x8b13('0x2f')](_0x13d163[_0x8b13('0x30')]);if(_0x13d163[_0x8b13('0x31')]){delete _0x13d163[_0x8b13('0x31')];}_0x5bcda9[_0x8b13('0x20')](_0x4d65d2)[_0x8b13('0x32')](_0x13d163);};}exports[_0x8b13('0x33')]=function(_0x35a792,_0x1d8334){var _0x414d53={},_0x2711ad={},_0x409c61={'count':0x0,'rows':[]};var _0x377e84=_[_0x8b13('0x34')](db[_0x8b13('0x35')][_0x8b13('0x36')],function(_0x4e65bc){return{'name':_0x4e65bc[_0x8b13('0x37')],'type':_0x4e65bc[_0x8b13('0x38')][_0x8b13('0x39')]};});_0x2711ad['model']=_[_0x8b13('0x34')](_0x377e84,_0x8b13('0x31'));_0x2711ad[_0x8b13('0x3a')]=_[_0x8b13('0x3b')](_0x35a792['query']);_0x2711ad['filters']=_[_0x8b13('0x3c')](_0x2711ad['model'],_0x2711ad[_0x8b13('0x3a')]);_0x414d53[_0x8b13('0x3d')]=_[_0x8b13('0x3c')](_0x2711ad[_0x8b13('0x3e')],qs[_0x8b13('0x3f')](_0x35a792[_0x8b13('0x3a')]['fields']));_0x414d53[_0x8b13('0x3d')]=_0x414d53[_0x8b13('0x3d')]['length']?_0x414d53[_0x8b13('0x3d')]:_0x2711ad[_0x8b13('0x3e')];if(!_0x35a792[_0x8b13('0x3a')]['hasOwnProperty']('nolimit')){_0x414d53[_0x8b13('0x26')]=qs[_0x8b13('0x26')](_0x35a792['query'][_0x8b13('0x26')]);_0x414d53['offset']=qs[_0x8b13('0x24')](_0x35a792['query'][_0x8b13('0x24')]);}_0x414d53[_0x8b13('0x40')]=qs[_0x8b13('0x41')](_0x35a792[_0x8b13('0x3a')]['sort']);_0x414d53[_0x8b13('0x42')]=qs[_0x8b13('0x43')](_[_0x8b13('0x44')](_0x35a792[_0x8b13('0x3a')],_0x2711ad[_0x8b13('0x43')]),_0x377e84);if(_0x35a792[_0x8b13('0x3a')][_0x8b13('0x45')]){_0x414d53[_0x8b13('0x42')]=_[_0x8b13('0x46')](_0x414d53[_0x8b13('0x42')],{'$or':_[_0x8b13('0x34')](_0x377e84,function(_0x52435f){if(_0x52435f[_0x8b13('0x38')]!==_0x8b13('0x47')){var _0x171d28={};_0x171d28[_0x52435f['name']]={'$like':'%'+_0x35a792['query'][_0x8b13('0x45')]+'%'};return _0x171d28;}})});}_0x414d53=_[_0x8b13('0x46')]({},_0x414d53,_0x35a792[_0x8b13('0x48')]);var _0x47c58f={'where':_0x414d53[_0x8b13('0x42')]};return db[_0x8b13('0x35')][_0x8b13('0x25')](_0x47c58f)[_0x8b13('0x2c')](function(_0x54beb2){_0x409c61['count']=_0x54beb2;if(_0x35a792[_0x8b13('0x3a')]['includeAll']){_0x414d53['include']=[{'all':!![]}];}return db[_0x8b13('0x35')][_0x8b13('0x49')](_0x414d53);})[_0x8b13('0x2c')](function(_0x2ca32f){_0x409c61[_0x8b13('0x4a')]=_0x2ca32f;return _0x409c61;})[_0x8b13('0x2c')](respondWithFilteredResult(_0x1d8334,_0x414d53))[_0x8b13('0x4b')](handleError(_0x1d8334,null));};exports['show']=function(_0x4f9e21,_0x59cf6f){var _0xb5f3a0={'raw':!![],'where':{'id':_0x4f9e21[_0x8b13('0x4c')]['id']}},_0x5e8da1={};_0x5e8da1[_0x8b13('0x3e')]=_[_0x8b13('0x3b')](db[_0x8b13('0x35')][_0x8b13('0x36')]);_0x5e8da1[_0x8b13('0x3a')]=_[_0x8b13('0x3b')](_0x4f9e21['query']);_0x5e8da1[_0x8b13('0x43')]=_['intersection'](_0x5e8da1['model'],_0x5e8da1[_0x8b13('0x3a')]);_0xb5f3a0['attributes']=_['intersection'](_0x5e8da1[_0x8b13('0x3e')],qs['fields'](_0x4f9e21['query']['fields']));_0xb5f3a0[_0x8b13('0x3d')]=_0xb5f3a0[_0x8b13('0x3d')][_0x8b13('0x4d')]?_0xb5f3a0[_0x8b13('0x3d')]:_0x5e8da1[_0x8b13('0x3e')];if(_0x4f9e21[_0x8b13('0x3a')][_0x8b13('0x4e')]){_0xb5f3a0['include']=[{'all':!![]}];}_0xb5f3a0=_[_0x8b13('0x46')]({},_0xb5f3a0,_0x4f9e21[_0x8b13('0x48')]);return db['MailQueue'][_0x8b13('0x4f')](_0xb5f3a0)[_0x8b13('0x2c')](handleEntityNotFound(_0x59cf6f,null))[_0x8b13('0x2c')](respondWithResult(_0x59cf6f,null))[_0x8b13('0x4b')](handleError(_0x59cf6f,null));};exports[_0x8b13('0x50')]=function(_0x47b045,_0x57af05){return db['MailQueue']['create'](_0x47b045[_0x8b13('0x51')],{})['then'](function(_0x4722b7){var _0x8d9765=_0x47b045[_0x8b13('0x52')][_0x8b13('0x53')]({'plain':!![]});if(!_0x8d9765)throw new Error(_0x8b13('0x54'));if(_0x8d9765[_0x8b13('0x55')]===_0x8b13('0x52')){var _0x398736=_0x4722b7[_0x8b13('0x53')]({'plain':!![]});var _0xc1f416='MailQueues';return db[_0x8b13('0x56')][_0x8b13('0x4f')]({'where':{'name':_0xc1f416,'userProfileId':_0x8d9765['userProfileId']},'raw':!![]})[_0x8b13('0x2c')](function(_0x3f16c7){if(_0x3f16c7&&_0x3f16c7[_0x8b13('0x57')]===0x0){return db[_0x8b13('0x2e')]['create']({'name':_0x398736[_0x8b13('0x31')],'resourceId':_0x398736['id'],'type':_0x3f16c7['name'],'sectionId':_0x3f16c7['id']},{})[_0x8b13('0x2c')](function(){return _0x4722b7;});}else{return _0x4722b7;}})[_0x8b13('0x4b')](function(_0x48c6ca){logger[_0x8b13('0x2f')](_0x8b13('0x58'),_0x48c6ca);throw _0x48c6ca;});}return _0x4722b7;})[_0x8b13('0x2c')](respondWithResult(_0x57af05,0xc9))['catch'](handleError(_0x57af05,null));};exports[_0x8b13('0x2b')]=function(_0x52643f,_0x7bcf89){if(_0x52643f['body']['id']){delete _0x52643f['body']['id'];}return db[_0x8b13('0x35')][_0x8b13('0x4f')]({'where':{'id':_0x52643f[_0x8b13('0x4c')]['id']}})[_0x8b13('0x2c')](handleEntityNotFound(_0x7bcf89,null))[_0x8b13('0x2c')](saveUpdates(_0x52643f[_0x8b13('0x51')],null))[_0x8b13('0x2c')](respondWithResult(_0x7bcf89,null))['catch'](handleError(_0x7bcf89,null));};exports[_0x8b13('0x2d')]=function(_0x24b5c9,_0x25bcaa){return db['MailQueue']['find']({'where':{'id':_0x24b5c9['params']['id']}})[_0x8b13('0x2c')](handleEntityNotFound(_0x25bcaa,null))['then'](removeEntity(_0x25bcaa,null))['catch'](handleError(_0x25bcaa,null));};exports[_0x8b13('0x59')]=function(_0x4b49b0,_0x3ddd50){return db[_0x8b13('0x35')]['describe']()[_0x8b13('0x2c')](respondWithResult(_0x3ddd50,null))['catch'](handleError(_0x3ddd50,null));};exports[_0x8b13('0x5a')]=function(_0x595af5,_0x586857,_0x151366){var _0x3e2ccd={'raw':!![],'where':{}},_0x31bf14={},_0x39aca6;return db[_0x8b13('0x35')][_0x8b13('0x5b')]({'where':{'id':_0x595af5[_0x8b13('0x4c')]['id']}})[_0x8b13('0x2c')](handleEntityNotFound(_0x586857,null))['then'](function(_0x1c748a){if(_0x1c748a){_0x39aca6=_0x1c748a[_0x8b13('0x53')]({'plain':!![]});_0x31bf14[_0x8b13('0x3e')]=_['keys'](db[_0x8b13('0x5c')][_0x8b13('0x36')]);_0x31bf14[_0x8b13('0x3a')]=_[_0x8b13('0x3b')](_0x595af5[_0x8b13('0x3a')]);_0x31bf14[_0x8b13('0x43')]=_[_0x8b13('0x3c')](_0x31bf14[_0x8b13('0x3e')],_0x31bf14[_0x8b13('0x3a')]);_0x3e2ccd[_0x8b13('0x3d')]=_[_0x8b13('0x3c')](_0x31bf14['model'],qs[_0x8b13('0x3f')](_0x595af5[_0x8b13('0x3a')][_0x8b13('0x3f')]));_0x3e2ccd[_0x8b13('0x3d')]=_0x3e2ccd[_0x8b13('0x3d')][_0x8b13('0x4d')]?_0x3e2ccd[_0x8b13('0x3d')]:_0x31bf14['model'];if(!_0x595af5[_0x8b13('0x3a')]['hasOwnProperty']('nolimit')){_0x3e2ccd[_0x8b13('0x26')]=qs[_0x8b13('0x26')](_0x595af5[_0x8b13('0x3a')][_0x8b13('0x26')]);_0x3e2ccd['offset']=qs[_0x8b13('0x24')](_0x595af5[_0x8b13('0x3a')][_0x8b13('0x24')]);}_0x3e2ccd[_0x8b13('0x40')]=qs[_0x8b13('0x41')](_0x595af5['query'][_0x8b13('0x41')]);_0x3e2ccd[_0x8b13('0x42')]=qs['filters'](_['pick'](_0x595af5[_0x8b13('0x3a')],_0x31bf14['filters']));_0x3e2ccd[_0x8b13('0x42')]['MailQueueId']=_0x1c748a['id'];if(_0x595af5[_0x8b13('0x3a')][_0x8b13('0x45')]){_0x3e2ccd[_0x8b13('0x42')]=_['merge'](_0x3e2ccd[_0x8b13('0x42')],{'$or':_[_0x8b13('0x34')](_0x3e2ccd[_0x8b13('0x3d')],function(_0x57698b){var _0x2010a8={};_0x2010a8[_0x57698b]={'$like':'%'+_0x595af5[_0x8b13('0x3a')]['filter']+'%'};return _0x2010a8;})});}_0x3e2ccd=_[_0x8b13('0x46')]({},_0x3e2ccd,_0x595af5[_0x8b13('0x48')]);return db[_0x8b13('0x5c')]['findAll'](_0x3e2ccd);}})[_0x8b13('0x2c')](function(_0x62eb9c){if(_0x62eb9c){return db[_0x8b13('0x5d')][_0x8b13('0x5e')]({'where':{'id':_[_0x8b13('0x34')](_0x62eb9c,_0x8b13('0x5f')),'role':_0x8b13('0x60')},'attributes':['id',_0x8b13('0x31'),_0x8b13('0x61'),_0x8b13('0x62'),'createdAt']});}})[_0x8b13('0x2c')](function(_0x4c3317){if(_0x4c3317){return{'count':_0x4c3317['count'],'rows':_[_0x8b13('0x34')](_0x4c3317[_0x8b13('0x4a')],function(_0xb55805){return{'membername':_0xb55805['name'],'UserId':_0xb55805['id'],'queue_name':_0x39aca6['name'],'MailQueueId':_0x39aca6['id'],'interface':util[_0x8b13('0x63')]('%s/%s','SIP',_0xb55805[_0x8b13('0x31')]),'penalty':0x0,'paused':_0xb55805[_0x8b13('0x61')],'createdAt':_0xb55805[_0x8b13('0x64')],'updatedAt':_0xb55805['updatedAt']};})};}else{return{'count':0x0,'rows':[]};}})[_0x8b13('0x2c')](respondWithFilteredResult(_0x586857,_0x3e2ccd))[_0x8b13('0x4b')](handleError(_0x586857,null));};exports[_0x8b13('0x65')]=function(_0x22c5b4,_0x14bf0b,_0x2837b6){var _0x3827c3={};var _0x484a33={};var _0x458368;var _0x33c39b;return db[_0x8b13('0x35')][_0x8b13('0x5b')]({'where':{'id':_0x22c5b4['params']['id']}})[_0x8b13('0x2c')](handleEntityNotFound(_0x14bf0b,null))[_0x8b13('0x2c')](function(_0x1350e2){if(_0x1350e2){_0x458368=_0x1350e2;_0x484a33['model']=_[_0x8b13('0x3b')](db['Team']['rawAttributes']);_0x484a33[_0x8b13('0x3a')]=_[_0x8b13('0x3b')](_0x22c5b4[_0x8b13('0x3a')]);_0x484a33[_0x8b13('0x43')]=_[_0x8b13('0x3c')](_0x484a33['model'],_0x484a33[_0x8b13('0x3a')]);_0x3827c3[_0x8b13('0x3d')]=_[_0x8b13('0x3c')](_0x484a33['model'],qs['fields'](_0x22c5b4[_0x8b13('0x3a')][_0x8b13('0x3f')]));_0x3827c3[_0x8b13('0x3d')]=_0x3827c3[_0x8b13('0x3d')][_0x8b13('0x4d')]?_0x3827c3['attributes']:_0x484a33['model'];_0x3827c3[_0x8b13('0x40')]=qs['sort'](_0x22c5b4[_0x8b13('0x3a')][_0x8b13('0x41')]);_0x3827c3['where']=qs[_0x8b13('0x43')](_[_0x8b13('0x44')](_0x22c5b4[_0x8b13('0x3a')],_0x484a33['filters']));if(_0x22c5b4[_0x8b13('0x3a')]['filter']){_0x3827c3['where']=_[_0x8b13('0x46')](_0x3827c3[_0x8b13('0x42')],{'$or':_[_0x8b13('0x34')](_0x3827c3[_0x8b13('0x3d')],function(_0x548efc){var _0x4db48f={};_0x4db48f[_0x548efc]={'$like':'%'+_0x22c5b4['query'][_0x8b13('0x45')]+'%'};return _0x4db48f;})});}_0x3827c3=_[_0x8b13('0x46')]({},_0x3827c3,_0x22c5b4[_0x8b13('0x48')]);return _0x458368[_0x8b13('0x65')](_0x3827c3);}})[_0x8b13('0x2c')](function(_0x13e769){if(_0x13e769){_0x33c39b=_0x13e769['length'];if(!_0x22c5b4['query']['hasOwnProperty'](_0x8b13('0x66'))){_0x3827c3[_0x8b13('0x26')]=qs[_0x8b13('0x26')](_0x22c5b4['query'][_0x8b13('0x26')]);_0x3827c3[_0x8b13('0x24')]=qs['offset'](_0x22c5b4['query']['offset']);}return _0x458368[_0x8b13('0x65')](_0x3827c3);}})[_0x8b13('0x2c')](function(_0x3753c0){if(_0x3753c0){return _0x3753c0?{'count':_0x33c39b,'rows':_0x3753c0}:null;}})[_0x8b13('0x2c')](respondWithResult(_0x14bf0b,null))['catch'](handleError(_0x14bf0b,null));};exports[_0x8b13('0x67')]=function(_0x1dbe62,_0x3ce10b,_0x8a865){var _0x27a188=_0x1dbe62['body'][_0x8b13('0x68')];return db[_0x8b13('0x69')][_0x8b13('0x49')]({'where':{'id':_0x27a188},'attributes':['id'],'include':[{'model':db['User'],'as':'Agents','attributes':['id',_0x8b13('0x31'),_0x8b13('0x6a'),'voicePause',_0x8b13('0x6b')],'raw':!![]}]})['then'](function(_0x34901e){if(_0x34901e){var _0x6c6721=_['flatMap'](_0x34901e,function(_0x3289ca){var _0x286164=_0x3289ca[_0x8b13('0x53')]({'plain':!![]});return _0x286164['Agents'];});return db[_0x8b13('0x35')][_0x8b13('0x4f')]({'where':{'id':_0x1dbe62[_0x8b13('0x4c')]['id']}})[_0x8b13('0x2c')](function(_0x41081f){return db['sequelize'][_0x8b13('0x6c')](function(_0x2f116f){return _0x41081f['addTeams'](_0x27a188,{'transaction':_0x2f116f})[_0x8b13('0x2c')](function(){return BPromise[_0x8b13('0x6d')](_0x6c6721,function(_0x2dec3f){return db[_0x8b13('0x5c')][_0x8b13('0x6e')]({'where':{'UserId':_0x2dec3f['id'],'MailQueueId':_0x1dbe62['params']['id']},'transaction':_0x2f116f});});})[_0x8b13('0x2c')](function(){_0x6c6721[_0x8b13('0x6f')](function(_0x36e108){socket[_0x8b13('0x70')](_0x8b13('0x71'),{'UserId':_0x36e108['id'],'MailQueueId':_0x41081f['id']});});});});});}})[_0x8b13('0x2c')](respondWithStatusCode(_0x3ce10b,null))['catch'](handleError(_0x3ce10b,null));};exports['removeTeams']=function(_0x39774f,_0x60bd53,_0x1a81dd){return db[_0x8b13('0x69')][_0x8b13('0x49')]({'where':{'id':_0x39774f[_0x8b13('0x3a')][_0x8b13('0x68')]},'attributes':['id'],'include':[{'model':db[_0x8b13('0x5d')],'as':_0x8b13('0x72'),'attributes':['id'],'raw':!![]}]})['then'](handleEntityNotFound(_0x60bd53,null))['then'](function(_0x5c5682){var _0x41ffe9=_['map'](_0x5c5682,'id');var _0x57b84c=[];var _0x4dc708=[];var _0x1fde5e=squel[_0x8b13('0x73')]();_0x1fde5e[_0x8b13('0x74')](_0x8b13('0x75'))[_0x8b13('0x76')](_0x8b13('0x77'),'tq')[_0x8b13('0x78')](_0x8b13('0x79'),'ut','ut.TeamId\x20=\x20tq.TeamId')[_0x8b13('0x42')](_0x8b13('0x7a'),_0x39774f[_0x8b13('0x4c')]['id']);for(var _0x253303=0x0;_0x253303<_0x5c5682['length'];_0x253303+=0x1){let _0x518b35=_0x5c5682[_0x253303];for(var _0x4b1f32=0x0;_0x4b1f32<_0x518b35[_0x8b13('0x72')][_0x8b13('0x4d')];_0x4b1f32+=0x1){let _0x4d32d4=_0x518b35[_0x8b13('0x72')][_0x4b1f32];var _0xb8a52b=_0x1fde5e[_0x8b13('0x7b')]();_0xb8a52b[_0x8b13('0x42')](_0x8b13('0x7c'),_0x4d32d4['id']);_0x4dc708[_0x8b13('0x7d')](db[_0x8b13('0x7e')][_0x8b13('0x3a')](_0xb8a52b[_0x8b13('0x7f')](),{'type':db[_0x8b13('0x7e')][_0x8b13('0x80')][_0x8b13('0x81')]})[_0x8b13('0x2c')](function(_0x3c0f1c){if(_0x3c0f1c[_0x8b13('0x4d')]===0x1){return _0x4d32d4['id'];}else{var _0x21d7c0=_['every'](_[_0x8b13('0x34')](_0x3c0f1c,_0x8b13('0x82')),function(_0x2fb248){return _[_0x8b13('0x83')](_0x41ffe9,_0x2fb248);});if(_0x21d7c0){return _0x4d32d4['id'];}}}));}}return BPromise[_0x8b13('0x84')](_0x4dc708)[_0x8b13('0x2c')](function(_0xcd5209){_0x57b84c=_(_0x57b84c)[_0x8b13('0x85')](_0xcd5209)[_0x8b13('0x86')]()['value']();return db['MailQueue'][_0x8b13('0x4f')]({'where':{'id':_0x39774f[_0x8b13('0x4c')]['id']}})[_0x8b13('0x2c')](function(_0x3aa694){return db['sequelize'][_0x8b13('0x6c')](function(_0x5b072b){return _0x3aa694[_0x8b13('0x87')](_0x39774f[_0x8b13('0x3a')][_0x8b13('0x68')],{'transaction':_0x5b072b})[_0x8b13('0x2c')](function(){if(!_[_0x8b13('0x88')](_0x57b84c)){return _0x3aa694[_0x8b13('0x89')](_0x57b84c,{'transaction':_0x5b072b});}})[_0x8b13('0x2c')](function(){_0x57b84c[_0x8b13('0x6f')](function(_0x55a640){socket['emit'](_0x8b13('0x8a'),{'UserId':_0x55a640,'MailQueueId':_0x3aa694['id']});});});});});});})[_0x8b13('0x2c')](respondWithStatusCode(_0x60bd53,null))[_0x8b13('0x4b')](handleError(_0x60bd53,null));};exports['addAgents']=function(_0x3c152d,_0x12fac9,_0x2b846b){return db['MailQueue'][_0x8b13('0x4f')]({'where':{'id':_0x3c152d[_0x8b13('0x4c')]['id']}})[_0x8b13('0x2c')](handleEntityNotFound(_0x12fac9,null))[_0x8b13('0x2c')](function(_0x4cb3a0){if(_0x4cb3a0){return _0x4cb3a0[_0x8b13('0x8b')](_0x3c152d['body'][_0x8b13('0x68')],_['omit'](_0x3c152d['body'],[_0x8b13('0x68'),'id'])||{})[_0x8b13('0x8c')](function(_0x4fac8c){for(var _0x4f7d1d=0x0;_0x4f7d1d<_0x3c152d['body'][_0x8b13('0x68')]['length'];_0x4f7d1d+=0x1){socket[_0x8b13('0x70')](_0x8b13('0x71'),{'UserId':Number(_0x3c152d['body'][_0x8b13('0x68')][_0x4f7d1d]),'MailQueueId':Number(_0x3c152d[_0x8b13('0x4c')]['id'])});}return _0x4fac8c;});}})[_0x8b13('0x2c')](respondWithResult(_0x12fac9,null))[_0x8b13('0x4b')](handleError(_0x12fac9,null));};exports[_0x8b13('0x89')]=function(_0x54940c,_0x17ecbc,_0x53533f){return db[_0x8b13('0x35')][_0x8b13('0x4f')]({'where':{'id':_0x54940c[_0x8b13('0x4c')]['id']}})[_0x8b13('0x2c')](handleEntityNotFound(_0x17ecbc,null))[_0x8b13('0x2c')](function(_0x884eb0){if(_0x884eb0){return _0x884eb0[_0x8b13('0x89')](_0x54940c[_0x8b13('0x3a')][_0x8b13('0x68')])['then'](function(){if(_[_0x8b13('0x8d')](_0x54940c[_0x8b13('0x3a')][_0x8b13('0x68')])){for(var _0x2e8872=0x0;_0x2e8872<_0x54940c['query'][_0x8b13('0x68')]['length'];_0x2e8872+=0x1){socket[_0x8b13('0x70')]('userMailQueue:remove',{'UserId':Number(_0x54940c[_0x8b13('0x3a')][_0x8b13('0x68')][_0x2e8872]),'MailQueueId':Number(_0x54940c['params']['id'])});}}else{socket[_0x8b13('0x70')]('userMailQueue:remove',{'UserId':Number(_0x54940c[_0x8b13('0x3a')][_0x8b13('0x68')]),'MailQueueId':Number(_0x54940c[_0x8b13('0x4c')]['id'])});}});}})['then'](respondWithStatusCode(_0x17ecbc,null))['catch'](handleError(_0x17ecbc,null));};exports[_0x8b13('0x8e')]=function(_0x2bc6f4,_0x230444,_0x1acc9a){var _0x5799c9={};var _0x5d1435={};var _0x23c3c2;var _0xe6296c;return db[_0x8b13('0x35')][_0x8b13('0x5b')]({'where':{'id':_0x2bc6f4[_0x8b13('0x4c')]['id']}})[_0x8b13('0x2c')](handleEntityNotFound(_0x230444,null))[_0x8b13('0x2c')](function(_0x9c6fec){if(_0x9c6fec){_0x23c3c2=_0x9c6fec;_0x5d1435[_0x8b13('0x3e')]=_[_0x8b13('0x3b')](db[_0x8b13('0x5d')][_0x8b13('0x36')]);_0x5d1435[_0x8b13('0x3a')]=_[_0x8b13('0x3b')](_0x2bc6f4[_0x8b13('0x3a')]);_0x5d1435['filters']=_[_0x8b13('0x3c')](_0x5d1435[_0x8b13('0x3e')],_0x5d1435[_0x8b13('0x3a')]);_0x5799c9[_0x8b13('0x3d')]=_[_0x8b13('0x3c')](_0x5d1435[_0x8b13('0x3e')],qs[_0x8b13('0x3f')](_0x2bc6f4[_0x8b13('0x3a')][_0x8b13('0x3f')]));_0x5799c9['attributes']=_0x5799c9['attributes']['length']?_0x5799c9['attributes']:_0x5d1435[_0x8b13('0x3e')];_0x5799c9[_0x8b13('0x40')]=qs[_0x8b13('0x41')](_0x2bc6f4[_0x8b13('0x3a')][_0x8b13('0x41')]);_0x5799c9[_0x8b13('0x42')]=qs[_0x8b13('0x43')](_[_0x8b13('0x44')](_0x2bc6f4[_0x8b13('0x3a')],_0x5d1435[_0x8b13('0x43')]));if(_0x2bc6f4[_0x8b13('0x3a')][_0x8b13('0x45')]){_0x5799c9[_0x8b13('0x42')]=_[_0x8b13('0x46')](_0x5799c9[_0x8b13('0x42')],{'$or':_[_0x8b13('0x34')](_0x5799c9[_0x8b13('0x3d')],function(_0x482647){var _0x2186d0={};_0x2186d0[_0x482647]={'$like':'%'+_0x2bc6f4[_0x8b13('0x3a')]['filter']+'%'};return _0x2186d0;})});}_0x5799c9=_[_0x8b13('0x46')]({},_0x5799c9,_0x2bc6f4[_0x8b13('0x48')]);return _0x23c3c2[_0x8b13('0x8e')](_0x5799c9);}})['then'](function(_0x4cc740){if(_0x4cc740){_0xe6296c=_0x4cc740[_0x8b13('0x4d')];if(!_0x2bc6f4['query'][_0x8b13('0x8f')]('nolimit')){_0x5799c9[_0x8b13('0x26')]=qs[_0x8b13('0x26')](_0x2bc6f4[_0x8b13('0x3a')]['limit']);_0x5799c9[_0x8b13('0x24')]=qs[_0x8b13('0x24')](_0x2bc6f4['query'][_0x8b13('0x24')]);}return _0x23c3c2[_0x8b13('0x8e')](_0x5799c9);}})[_0x8b13('0x2c')](function(_0x2eee4c){if(_0x2eee4c){return _0x2eee4c?{'count':_0xe6296c,'rows':_0x2eee4c}:null;}})['then'](respondWithResult(_0x230444,null))['catch'](handleError(_0x230444,null));};
\ No newline at end of file
+var _0xb02a=['autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','describe','getMembers','UserMailQueue','MailQueueId','UserId','mailPause','updatedAt','createdAt','%s/%s','SIP','getTeams','findOne','Team','addTeams','ids','User','Agents','voicePause','interface','sequelize','each','findOrCreate','forEach','removeTeams','tq.TeamId','from','team_has_mail_queues','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','MailQueueId\x20=\x20?','clone','ut.UserId\x20=\x20?','push','toString','SELECT','every','TeamId','all','value','transaction','emit','userMailQueue:remove','addAgents','omit','spread','userMailQueue:save','removeAgents','isArray','getAgents','rimraf','zip-dir','fast-json-patch','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','squel','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','redis','defaults','localhost','socket.io-emitter','./mailQueue.socket','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','destroy','then','get','MailQueues','end','error','name','send','index','map','rawAttributes','fieldName','type','query','keys','filters','intersection','model','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','VIRTUAL','merge','options','MailQueue','includeAll','include','findAll','rows','show','params','find','catch','create','body','user','role','userProfileId'];(function(_0x2bc867,_0x1eb559){var _0x1b351b=function(_0x56bb59){while(--_0x56bb59){_0x2bc867['push'](_0x2bc867['shift']());}};_0x1b351b(++_0x1eb559);}(_0xb02a,0x14c));var _0xab02=function(_0x3f1c70,_0x2f13b8){_0x3f1c70=_0x3f1c70-0x0;var _0x2149e1=_0xb02a[_0x3f1c70];return _0x2149e1;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xab02('0x0'));var zipdir=require(_0xab02('0x1'));var jsonpatch=require(_0xab02('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0xab02('0x3'));var Mustache=require(_0xab02('0x4'));var util=require('util');var path=require(_0xab02('0x5'));var sox=require(_0xab02('0x6'));var csv=require(_0xab02('0x7'));var ejs=require(_0xab02('0x8'));var fs=require('fs');var fs_extra=require(_0xab02('0x9'));var _=require(_0xab02('0xa'));var squel=require(_0xab02('0xb'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0xab02('0xc'));var toCsv=require('to-csv');var querystring=require(_0xab02('0xd'));var Papa=require(_0xab02('0xe'));var Redis=require(_0xab02('0xf'));var authService=require(_0xab02('0x10'));var qs=require(_0xab02('0x11'));var as=require(_0xab02('0x12'));var hardwareService=require(_0xab02('0x13'));var logger=require(_0xab02('0x14'))(_0xab02('0x15'));var utils=require(_0xab02('0x16'));var config=require(_0xab02('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0xab02('0x18'))['db'];config[_0xab02('0x19')]=_[_0xab02('0x1a')](config['redis'],{'host':_0xab02('0x1b'),'port':0x18eb});var socket=require(_0xab02('0x1c'))(new Redis(config[_0xab02('0x19')]));require(_0xab02('0x1d'))['register'](socket);function respondWithStatusCode(_0x46c789,_0x35b744){_0x35b744=_0x35b744||0xcc;return function(_0x10a9e3){if(_0x10a9e3){return _0x46c789[_0xab02('0x1e')](_0x35b744);}return _0x46c789[_0xab02('0x1f')](_0x35b744)['end']();};}function respondWithResult(_0x4bd676,_0x4a0480){_0x4a0480=_0x4a0480||0xc8;return function(_0xbbd63d){if(_0xbbd63d){return _0x4bd676[_0xab02('0x1f')](_0x4a0480)[_0xab02('0x20')](_0xbbd63d);}};}function respondWithFilteredResult(_0x514ff5,_0x161af9){return function(_0x3acf91){if(_0x3acf91){var _0x23c1be=typeof _0x161af9[_0xab02('0x21')]===_0xab02('0x22')&&typeof _0x161af9[_0xab02('0x23')]===_0xab02('0x22');var _0x447341=_0x3acf91[_0xab02('0x24')];var _0x3dd1b2=_0x23c1be?0x0:_0x161af9[_0xab02('0x21')];var _0x291c3f=_0x23c1be?_0x3acf91[_0xab02('0x24')]:_0x161af9[_0xab02('0x21')]+_0x161af9[_0xab02('0x23')];var _0x125a66;if(_0x291c3f>=_0x447341){_0x291c3f=_0x447341;_0x125a66=0xc8;}else{_0x125a66=0xce;}_0x514ff5[_0xab02('0x1f')](_0x125a66);return _0x514ff5[_0xab02('0x25')](_0xab02('0x26'),_0x3dd1b2+'-'+_0x291c3f+'/'+_0x447341)[_0xab02('0x20')](_0x3acf91);}return null;};}function patchUpdates(_0x4b6afd){return function(_0x553281){try{jsonpatch[_0xab02('0x27')](_0x553281,_0x4b6afd,!![]);}catch(_0x5a1577){return BPromise[_0xab02('0x28')](_0x5a1577);}return _0x553281[_0xab02('0x29')]();};}function saveUpdates(_0x1fd119,_0x13a465){return function(_0x20ec9b){if(_0x20ec9b){return _0x20ec9b[_0xab02('0x2a')](_0x1fd119)['then'](function(_0x3f53ff){return _0x3f53ff;});}return null;};}function removeEntity(_0x95e12a,_0x4888e0){return function(_0x410c7f){if(_0x410c7f){return _0x410c7f[_0xab02('0x2b')]()[_0xab02('0x2c')](function(){var _0x4dfe29=_0x410c7f[_0xab02('0x2d')]({'plain':!![]});var _0x5a3462=_0xab02('0x2e');return db['UserProfileResource']['destroy']({'where':{'type':_0x5a3462,'resourceId':_0x4dfe29['id']}})[_0xab02('0x2c')](function(){return _0x410c7f;});})[_0xab02('0x2c')](function(){_0x95e12a[_0xab02('0x1f')](0xcc)[_0xab02('0x2f')]();});}};}function handleEntityNotFound(_0x3aa970,_0x4b4b56){return function(_0x11e86e){if(!_0x11e86e){_0x3aa970['sendStatus'](0x194);}return _0x11e86e;};}function handleError(_0xdb00e9,_0x1e0457){_0x1e0457=_0x1e0457||0x1f4;return function(_0x5e8363){logger[_0xab02('0x30')](_0x5e8363['stack']);if(_0x5e8363[_0xab02('0x31')]){delete _0x5e8363[_0xab02('0x31')];}_0xdb00e9[_0xab02('0x1f')](_0x1e0457)[_0xab02('0x32')](_0x5e8363);};}exports[_0xab02('0x33')]=function(_0x1232aa,_0x4449e0){var _0x5992dc={},_0x557a49={},_0x5c152b={'count':0x0,'rows':[]};var _0x2880d9=_[_0xab02('0x34')](db['MailQueue'][_0xab02('0x35')],function(_0x5f0e50){return{'name':_0x5f0e50[_0xab02('0x36')],'type':_0x5f0e50[_0xab02('0x37')]['key']};});_0x557a49['model']=_[_0xab02('0x34')](_0x2880d9,'name');_0x557a49[_0xab02('0x38')]=_[_0xab02('0x39')](_0x1232aa[_0xab02('0x38')]);_0x557a49[_0xab02('0x3a')]=_[_0xab02('0x3b')](_0x557a49['model'],_0x557a49[_0xab02('0x38')]);_0x5992dc['attributes']=_[_0xab02('0x3b')](_0x557a49[_0xab02('0x3c')],qs['fields'](_0x1232aa[_0xab02('0x38')][_0xab02('0x3d')]));_0x5992dc[_0xab02('0x3e')]=_0x5992dc[_0xab02('0x3e')][_0xab02('0x3f')]?_0x5992dc[_0xab02('0x3e')]:_0x557a49[_0xab02('0x3c')];if(!_0x1232aa[_0xab02('0x38')][_0xab02('0x40')](_0xab02('0x41'))){_0x5992dc[_0xab02('0x23')]=qs['limit'](_0x1232aa[_0xab02('0x38')][_0xab02('0x23')]);_0x5992dc[_0xab02('0x21')]=qs[_0xab02('0x21')](_0x1232aa[_0xab02('0x38')][_0xab02('0x21')]);}_0x5992dc[_0xab02('0x42')]=qs[_0xab02('0x43')](_0x1232aa[_0xab02('0x38')][_0xab02('0x43')]);_0x5992dc[_0xab02('0x44')]=qs['filters'](_[_0xab02('0x45')](_0x1232aa['query'],_0x557a49[_0xab02('0x3a')]),_0x2880d9);if(_0x1232aa[_0xab02('0x38')][_0xab02('0x46')]){_0x5992dc['where']=_['merge'](_0x5992dc[_0xab02('0x44')],{'$or':_[_0xab02('0x34')](_0x2880d9,function(_0x1bc89e){if(_0x1bc89e[_0xab02('0x37')]!==_0xab02('0x47')){var _0x4527c4={};_0x4527c4[_0x1bc89e['name']]={'$like':'%'+_0x1232aa[_0xab02('0x38')][_0xab02('0x46')]+'%'};return _0x4527c4;}})});}_0x5992dc=_[_0xab02('0x48')]({},_0x5992dc,_0x1232aa[_0xab02('0x49')]);var _0x22d32e={'where':_0x5992dc['where']};return db[_0xab02('0x4a')][_0xab02('0x24')](_0x22d32e)['then'](function(_0x310a0e){_0x5c152b['count']=_0x310a0e;if(_0x1232aa[_0xab02('0x38')][_0xab02('0x4b')]){_0x5992dc[_0xab02('0x4c')]=[{'all':!![]}];}return db[_0xab02('0x4a')][_0xab02('0x4d')](_0x5992dc);})[_0xab02('0x2c')](function(_0x59bc4c){_0x5c152b[_0xab02('0x4e')]=_0x59bc4c;return _0x5c152b;})[_0xab02('0x2c')](respondWithFilteredResult(_0x4449e0,_0x5992dc))['catch'](handleError(_0x4449e0,null));};exports[_0xab02('0x4f')]=function(_0x2e7ff7,_0x258e68){var _0xbefdd7={'raw':!![],'where':{'id':_0x2e7ff7[_0xab02('0x50')]['id']}},_0x5780e4={};_0x5780e4[_0xab02('0x3c')]=_[_0xab02('0x39')](db[_0xab02('0x4a')][_0xab02('0x35')]);_0x5780e4[_0xab02('0x38')]=_['keys'](_0x2e7ff7[_0xab02('0x38')]);_0x5780e4['filters']=_[_0xab02('0x3b')](_0x5780e4[_0xab02('0x3c')],_0x5780e4[_0xab02('0x38')]);_0xbefdd7[_0xab02('0x3e')]=_['intersection'](_0x5780e4[_0xab02('0x3c')],qs[_0xab02('0x3d')](_0x2e7ff7['query'][_0xab02('0x3d')]));_0xbefdd7[_0xab02('0x3e')]=_0xbefdd7[_0xab02('0x3e')]['length']?_0xbefdd7[_0xab02('0x3e')]:_0x5780e4[_0xab02('0x3c')];if(_0x2e7ff7['query']['includeAll']){_0xbefdd7['include']=[{'all':!![]}];}_0xbefdd7=_[_0xab02('0x48')]({},_0xbefdd7,_0x2e7ff7['options']);return db[_0xab02('0x4a')][_0xab02('0x51')](_0xbefdd7)[_0xab02('0x2c')](handleEntityNotFound(_0x258e68,null))[_0xab02('0x2c')](respondWithResult(_0x258e68,null))[_0xab02('0x52')](handleError(_0x258e68,null));};exports['create']=function(_0xeade98,_0x4076e1){return db[_0xab02('0x4a')][_0xab02('0x53')](_0xeade98[_0xab02('0x54')],{})[_0xab02('0x2c')](function(_0x51527b){var _0x58365f=_0xeade98[_0xab02('0x55')][_0xab02('0x2d')]({'plain':!![]});if(!_0x58365f)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x58365f[_0xab02('0x56')]===_0xab02('0x55')){var _0x48118c=_0x51527b[_0xab02('0x2d')]({'plain':!![]});var _0x995830='MailQueues';return db['UserProfileSection']['find']({'where':{'name':_0x995830,'userProfileId':_0x58365f[_0xab02('0x57')]},'raw':!![]})[_0xab02('0x2c')](function(_0xb76b01){if(_0xb76b01&&_0xb76b01[_0xab02('0x58')]===0x0){return db[_0xab02('0x59')]['create']({'name':_0x48118c[_0xab02('0x31')],'resourceId':_0x48118c['id'],'type':_0xb76b01[_0xab02('0x31')],'sectionId':_0xb76b01['id']},{})[_0xab02('0x2c')](function(){return _0x51527b;});}else{return _0x51527b;}})['catch'](function(_0x414715){logger['error'](_0xab02('0x5a'),_0x414715);throw _0x414715;});}return _0x51527b;})[_0xab02('0x2c')](respondWithResult(_0x4076e1,0xc9))[_0xab02('0x52')](handleError(_0x4076e1,null));};exports[_0xab02('0x2a')]=function(_0x1ad562,_0x6b2db4){if(_0x1ad562[_0xab02('0x54')]['id']){delete _0x1ad562[_0xab02('0x54')]['id'];}return db['MailQueue'][_0xab02('0x51')]({'where':{'id':_0x1ad562[_0xab02('0x50')]['id']}})[_0xab02('0x2c')](handleEntityNotFound(_0x6b2db4,null))[_0xab02('0x2c')](saveUpdates(_0x1ad562[_0xab02('0x54')],null))[_0xab02('0x2c')](respondWithResult(_0x6b2db4,null))[_0xab02('0x52')](handleError(_0x6b2db4,null));};exports['destroy']=function(_0x1727da,_0x13a9cf){return db[_0xab02('0x4a')][_0xab02('0x51')]({'where':{'id':_0x1727da['params']['id']}})['then'](handleEntityNotFound(_0x13a9cf,null))[_0xab02('0x2c')](removeEntity(_0x13a9cf,null))[_0xab02('0x52')](handleError(_0x13a9cf,null));};exports[_0xab02('0x5b')]=function(_0x565d79,_0x3e1e1c){return db[_0xab02('0x4a')][_0xab02('0x5b')]()[_0xab02('0x2c')](respondWithResult(_0x3e1e1c,null))[_0xab02('0x52')](handleError(_0x3e1e1c,null));};exports[_0xab02('0x5c')]=function(_0x4d2542,_0x5446f5,_0x40c353){var _0x5eed27={'raw':!![],'where':{}},_0x210c24={},_0x388817;return db['MailQueue']['findOne']({'where':{'id':_0x4d2542[_0xab02('0x50')]['id']}})[_0xab02('0x2c')](handleEntityNotFound(_0x5446f5,null))[_0xab02('0x2c')](function(_0x58cf5b){if(_0x58cf5b){_0x388817=_0x58cf5b[_0xab02('0x2d')]({'plain':!![]});_0x210c24[_0xab02('0x3c')]=_[_0xab02('0x39')](db[_0xab02('0x5d')][_0xab02('0x35')]);_0x210c24[_0xab02('0x38')]=_[_0xab02('0x39')](_0x4d2542['query']);_0x210c24[_0xab02('0x3a')]=_[_0xab02('0x3b')](_0x210c24['model'],_0x210c24[_0xab02('0x38')]);_0x5eed27[_0xab02('0x3e')]=_[_0xab02('0x3b')](_0x210c24[_0xab02('0x3c')],qs[_0xab02('0x3d')](_0x4d2542[_0xab02('0x38')]['fields']));_0x5eed27[_0xab02('0x3e')]=_0x5eed27[_0xab02('0x3e')][_0xab02('0x3f')]?_0x5eed27['attributes']:_0x210c24[_0xab02('0x3c')];if(!_0x4d2542[_0xab02('0x38')][_0xab02('0x40')](_0xab02('0x41'))){_0x5eed27[_0xab02('0x23')]=qs[_0xab02('0x23')](_0x4d2542[_0xab02('0x38')][_0xab02('0x23')]);_0x5eed27[_0xab02('0x21')]=qs['offset'](_0x4d2542[_0xab02('0x38')][_0xab02('0x21')]);}_0x5eed27[_0xab02('0x42')]=qs[_0xab02('0x43')](_0x4d2542[_0xab02('0x38')][_0xab02('0x43')]);_0x5eed27[_0xab02('0x44')]=qs[_0xab02('0x3a')](_[_0xab02('0x45')](_0x4d2542[_0xab02('0x38')],_0x210c24[_0xab02('0x3a')]));_0x5eed27[_0xab02('0x44')][_0xab02('0x5e')]=_0x58cf5b['id'];if(_0x4d2542[_0xab02('0x38')][_0xab02('0x46')]){_0x5eed27[_0xab02('0x44')]=_['merge'](_0x5eed27['where'],{'$or':_['map'](_0x5eed27[_0xab02('0x3e')],function(_0x3e21f5){var _0x454a4c={};_0x454a4c[_0x3e21f5]={'$like':'%'+_0x4d2542['query'][_0xab02('0x46')]+'%'};return _0x454a4c;})});}_0x5eed27=_[_0xab02('0x48')]({},_0x5eed27,_0x4d2542[_0xab02('0x49')]);return db[_0xab02('0x5d')][_0xab02('0x4d')](_0x5eed27);}})[_0xab02('0x2c')](function(_0x5919d8){if(_0x5919d8){return db['User']['findAndCountAll']({'where':{'id':_['map'](_0x5919d8,_0xab02('0x5f')),'role':'agent'},'attributes':['id','name',_0xab02('0x60'),_0xab02('0x61'),_0xab02('0x62')]});}})[_0xab02('0x2c')](function(_0x2bbf5f){if(_0x2bbf5f){return{'count':_0x2bbf5f[_0xab02('0x24')],'rows':_[_0xab02('0x34')](_0x2bbf5f[_0xab02('0x4e')],function(_0x1b1027){return{'membername':_0x1b1027[_0xab02('0x31')],'UserId':_0x1b1027['id'],'queue_name':_0x388817['name'],'MailQueueId':_0x388817['id'],'interface':util['format'](_0xab02('0x63'),_0xab02('0x64'),_0x1b1027[_0xab02('0x31')]),'penalty':0x0,'paused':_0x1b1027[_0xab02('0x60')],'createdAt':_0x1b1027[_0xab02('0x62')],'updatedAt':_0x1b1027[_0xab02('0x61')]};})};}else{return{'count':0x0,'rows':[]};}})['then'](respondWithFilteredResult(_0x5446f5,_0x5eed27))['catch'](handleError(_0x5446f5,null));};exports[_0xab02('0x65')]=function(_0x57c410,_0x1a7190,_0x59b4a1){var _0x309c8d={};var _0x19fb35={};var _0x2b60e9;var _0x53454f;return db[_0xab02('0x4a')][_0xab02('0x66')]({'where':{'id':_0x57c410['params']['id']}})[_0xab02('0x2c')](handleEntityNotFound(_0x1a7190,null))[_0xab02('0x2c')](function(_0x292999){if(_0x292999){_0x2b60e9=_0x292999;_0x19fb35['model']=_[_0xab02('0x39')](db[_0xab02('0x67')]['rawAttributes']);_0x19fb35[_0xab02('0x38')]=_['keys'](_0x57c410[_0xab02('0x38')]);_0x19fb35['filters']=_[_0xab02('0x3b')](_0x19fb35[_0xab02('0x3c')],_0x19fb35['query']);_0x309c8d['attributes']=_[_0xab02('0x3b')](_0x19fb35[_0xab02('0x3c')],qs[_0xab02('0x3d')](_0x57c410['query'][_0xab02('0x3d')]));_0x309c8d[_0xab02('0x3e')]=_0x309c8d[_0xab02('0x3e')][_0xab02('0x3f')]?_0x309c8d[_0xab02('0x3e')]:_0x19fb35[_0xab02('0x3c')];_0x309c8d['order']=qs[_0xab02('0x43')](_0x57c410[_0xab02('0x38')][_0xab02('0x43')]);_0x309c8d['where']=qs[_0xab02('0x3a')](_[_0xab02('0x45')](_0x57c410[_0xab02('0x38')],_0x19fb35[_0xab02('0x3a')]));if(_0x57c410[_0xab02('0x38')][_0xab02('0x46')]){_0x309c8d[_0xab02('0x44')]=_[_0xab02('0x48')](_0x309c8d[_0xab02('0x44')],{'$or':_[_0xab02('0x34')](_0x309c8d['attributes'],function(_0x188585){var _0x5daa8a={};_0x5daa8a[_0x188585]={'$like':'%'+_0x57c410[_0xab02('0x38')][_0xab02('0x46')]+'%'};return _0x5daa8a;})});}_0x309c8d=_[_0xab02('0x48')]({},_0x309c8d,_0x57c410[_0xab02('0x49')]);return _0x2b60e9[_0xab02('0x65')](_0x309c8d);}})[_0xab02('0x2c')](function(_0x1a1bf6){if(_0x1a1bf6){_0x53454f=_0x1a1bf6[_0xab02('0x3f')];if(!_0x57c410[_0xab02('0x38')]['hasOwnProperty'](_0xab02('0x41'))){_0x309c8d[_0xab02('0x23')]=qs[_0xab02('0x23')](_0x57c410['query'][_0xab02('0x23')]);_0x309c8d[_0xab02('0x21')]=qs[_0xab02('0x21')](_0x57c410['query'][_0xab02('0x21')]);}return _0x2b60e9[_0xab02('0x65')](_0x309c8d);}})[_0xab02('0x2c')](function(_0xcebc1d){if(_0xcebc1d){return _0xcebc1d?{'count':_0x53454f,'rows':_0xcebc1d}:null;}})[_0xab02('0x2c')](respondWithResult(_0x1a7190,null))[_0xab02('0x52')](handleError(_0x1a7190,null));};exports[_0xab02('0x68')]=function(_0x395696,_0x54cde8,_0x5b1d5b){var _0x60a4d=_0x395696['body'][_0xab02('0x69')];return db[_0xab02('0x67')][_0xab02('0x4d')]({'where':{'id':_0x60a4d},'attributes':['id'],'include':[{'model':db[_0xab02('0x6a')],'as':_0xab02('0x6b'),'attributes':['id','name','online',_0xab02('0x6c'),_0xab02('0x6d')],'raw':!![]}]})[_0xab02('0x2c')](function(_0x268bc2){if(_0x268bc2){var _0x5173c7=_['flatMap'](_0x268bc2,function(_0x977062){var _0x44fef3=_0x977062[_0xab02('0x2d')]({'plain':!![]});return _0x44fef3[_0xab02('0x6b')];});return db[_0xab02('0x4a')][_0xab02('0x51')]({'where':{'id':_0x395696['params']['id']}})[_0xab02('0x2c')](function(_0x5a9c2c){return db[_0xab02('0x6e')]['transaction'](function(_0x1364c4){return _0x5a9c2c[_0xab02('0x68')](_0x60a4d,{'transaction':_0x1364c4})[_0xab02('0x2c')](function(){return BPromise[_0xab02('0x6f')](_0x5173c7,function(_0x486fc9){return db['UserMailQueue'][_0xab02('0x70')]({'where':{'UserId':_0x486fc9['id'],'MailQueueId':_0x395696['params']['id']},'transaction':_0x1364c4});});})['then'](function(){_0x5173c7[_0xab02('0x71')](function(_0x7f5ea0){socket['emit']('userMailQueue:save',{'UserId':_0x7f5ea0['id'],'MailQueueId':_0x5a9c2c['id']});});});});});}})[_0xab02('0x2c')](respondWithStatusCode(_0x54cde8,null))[_0xab02('0x52')](handleError(_0x54cde8,null));};exports[_0xab02('0x72')]=function(_0x124f4b,_0x426445,_0x588e51){return db[_0xab02('0x67')][_0xab02('0x4d')]({'where':{'id':_0x124f4b['query'][_0xab02('0x69')]},'attributes':['id'],'include':[{'model':db[_0xab02('0x6a')],'as':'Agents','attributes':['id'],'raw':!![]}]})['then'](handleEntityNotFound(_0x426445,null))[_0xab02('0x2c')](function(_0x6cfee8){var _0x1e4315=_[_0xab02('0x34')](_0x6cfee8,'id');var _0x57e445=[];var _0x3c4316=[];var _0x5c15ff=squel['select']();_0x5c15ff['field'](_0xab02('0x73'))[_0xab02('0x74')](_0xab02('0x75'),'tq')['join'](_0xab02('0x76'),'ut',_0xab02('0x77'))[_0xab02('0x44')](_0xab02('0x78'),_0x124f4b[_0xab02('0x50')]['id']);for(var _0x4afa54=0x0;_0x4afa54<_0x6cfee8[_0xab02('0x3f')];_0x4afa54+=0x1){let _0x47f395=_0x6cfee8[_0x4afa54];for(var _0x362f96=0x0;_0x362f96<_0x47f395['Agents'][_0xab02('0x3f')];_0x362f96+=0x1){let _0xe03e2c=_0x47f395[_0xab02('0x6b')][_0x362f96];var _0x212bcc=_0x5c15ff[_0xab02('0x79')]();_0x212bcc[_0xab02('0x44')](_0xab02('0x7a'),_0xe03e2c['id']);_0x3c4316[_0xab02('0x7b')](db[_0xab02('0x6e')][_0xab02('0x38')](_0x212bcc[_0xab02('0x7c')](),{'type':db[_0xab02('0x6e')]['QueryTypes'][_0xab02('0x7d')]})[_0xab02('0x2c')](function(_0x1c6682){if(_0x1c6682[_0xab02('0x3f')]===0x1){return _0xe03e2c['id'];}else{var _0x2dda9e=_[_0xab02('0x7e')](_[_0xab02('0x34')](_0x1c6682,_0xab02('0x7f')),function(_0x2a99fd){return _['includes'](_0x1e4315,_0x2a99fd);});if(_0x2dda9e){return _0xe03e2c['id'];}}}));}}return BPromise[_0xab02('0x80')](_0x3c4316)[_0xab02('0x2c')](function(_0x403439){_0x57e445=_(_0x57e445)['union'](_0x403439)['compact']()[_0xab02('0x81')]();return db[_0xab02('0x4a')]['find']({'where':{'id':_0x124f4b[_0xab02('0x50')]['id']}})['then'](function(_0x1d79df){return db['sequelize'][_0xab02('0x82')](function(_0x151f71){return _0x1d79df['removeTeams'](_0x124f4b[_0xab02('0x38')][_0xab02('0x69')],{'transaction':_0x151f71})['then'](function(){if(!_['isEmpty'](_0x57e445)){return _0x1d79df['removeAgents'](_0x57e445,{'transaction':_0x151f71});}})[_0xab02('0x2c')](function(){_0x57e445[_0xab02('0x71')](function(_0x480428){socket[_0xab02('0x83')](_0xab02('0x84'),{'UserId':_0x480428,'MailQueueId':_0x1d79df['id']});});});});});});})['then'](respondWithStatusCode(_0x426445,null))[_0xab02('0x52')](handleError(_0x426445,null));};exports[_0xab02('0x85')]=function(_0x215ba3,_0xae2932,_0x4a58c5){return db[_0xab02('0x4a')][_0xab02('0x51')]({'where':{'id':_0x215ba3[_0xab02('0x50')]['id']}})[_0xab02('0x2c')](handleEntityNotFound(_0xae2932,null))[_0xab02('0x2c')](function(_0x31a770){if(_0x31a770){return _0x31a770['addAgents'](_0x215ba3[_0xab02('0x54')][_0xab02('0x69')],_[_0xab02('0x86')](_0x215ba3[_0xab02('0x54')],[_0xab02('0x69'),'id'])||{})[_0xab02('0x87')](function(_0xdde105){for(var _0x5a3ca2=0x0;_0x5a3ca2<_0x215ba3[_0xab02('0x54')]['ids'][_0xab02('0x3f')];_0x5a3ca2+=0x1){socket['emit'](_0xab02('0x88'),{'UserId':Number(_0x215ba3[_0xab02('0x54')][_0xab02('0x69')][_0x5a3ca2]),'MailQueueId':Number(_0x215ba3[_0xab02('0x50')]['id'])});}return _0xdde105;});}})[_0xab02('0x2c')](respondWithResult(_0xae2932,null))['catch'](handleError(_0xae2932,null));};exports[_0xab02('0x89')]=function(_0x42fed9,_0x1b9528,_0x18629c){return db['MailQueue'][_0xab02('0x51')]({'where':{'id':_0x42fed9[_0xab02('0x50')]['id']}})[_0xab02('0x2c')](handleEntityNotFound(_0x1b9528,null))[_0xab02('0x2c')](function(_0x669e3c){if(_0x669e3c){return _0x669e3c[_0xab02('0x89')](_0x42fed9['query'][_0xab02('0x69')])[_0xab02('0x2c')](function(){if(_[_0xab02('0x8a')](_0x42fed9[_0xab02('0x38')]['ids'])){for(var _0x33ca9f=0x0;_0x33ca9f<_0x42fed9[_0xab02('0x38')][_0xab02('0x69')]['length'];_0x33ca9f+=0x1){socket[_0xab02('0x83')]('userMailQueue:remove',{'UserId':Number(_0x42fed9['query'][_0xab02('0x69')][_0x33ca9f]),'MailQueueId':Number(_0x42fed9[_0xab02('0x50')]['id'])});}}else{socket[_0xab02('0x83')]('userMailQueue:remove',{'UserId':Number(_0x42fed9[_0xab02('0x38')][_0xab02('0x69')]),'MailQueueId':Number(_0x42fed9[_0xab02('0x50')]['id'])});}});}})[_0xab02('0x2c')](respondWithStatusCode(_0x1b9528,null))[_0xab02('0x52')](handleError(_0x1b9528,null));};exports[_0xab02('0x8b')]=function(_0x2af437,_0x536242,_0x44c24e){var _0x27fe68={};var _0xb06519={};var _0x1600a1;var _0x4572e4;return db[_0xab02('0x4a')][_0xab02('0x66')]({'where':{'id':_0x2af437[_0xab02('0x50')]['id']}})[_0xab02('0x2c')](handleEntityNotFound(_0x536242,null))['then'](function(_0x47b333){if(_0x47b333){_0x1600a1=_0x47b333;_0xb06519['model']=_[_0xab02('0x39')](db[_0xab02('0x6a')][_0xab02('0x35')]);_0xb06519[_0xab02('0x38')]=_[_0xab02('0x39')](_0x2af437[_0xab02('0x38')]);_0xb06519[_0xab02('0x3a')]=_['intersection'](_0xb06519[_0xab02('0x3c')],_0xb06519['query']);_0x27fe68['attributes']=_['intersection'](_0xb06519[_0xab02('0x3c')],qs['fields'](_0x2af437[_0xab02('0x38')][_0xab02('0x3d')]));_0x27fe68[_0xab02('0x3e')]=_0x27fe68[_0xab02('0x3e')][_0xab02('0x3f')]?_0x27fe68['attributes']:_0xb06519[_0xab02('0x3c')];_0x27fe68[_0xab02('0x42')]=qs[_0xab02('0x43')](_0x2af437['query'][_0xab02('0x43')]);_0x27fe68[_0xab02('0x44')]=qs[_0xab02('0x3a')](_[_0xab02('0x45')](_0x2af437[_0xab02('0x38')],_0xb06519[_0xab02('0x3a')]));if(_0x2af437[_0xab02('0x38')][_0xab02('0x46')]){_0x27fe68[_0xab02('0x44')]=_[_0xab02('0x48')](_0x27fe68['where'],{'$or':_[_0xab02('0x34')](_0x27fe68[_0xab02('0x3e')],function(_0x385045){var _0x55c66a={};_0x55c66a[_0x385045]={'$like':'%'+_0x2af437[_0xab02('0x38')][_0xab02('0x46')]+'%'};return _0x55c66a;})});}_0x27fe68=_[_0xab02('0x48')]({},_0x27fe68,_0x2af437[_0xab02('0x49')]);return _0x1600a1['getAgents'](_0x27fe68);}})[_0xab02('0x2c')](function(_0x39c990){if(_0x39c990){_0x4572e4=_0x39c990[_0xab02('0x3f')];if(!_0x2af437[_0xab02('0x38')]['hasOwnProperty'](_0xab02('0x41'))){_0x27fe68['limit']=qs[_0xab02('0x23')](_0x2af437[_0xab02('0x38')]['limit']);_0x27fe68['offset']=qs[_0xab02('0x21')](_0x2af437[_0xab02('0x38')]['offset']);}return _0x1600a1[_0xab02('0x8b')](_0x27fe68);}})[_0xab02('0x2c')](function(_0x334ea8){if(_0x334ea8){return _0x334ea8?{'count':_0x4572e4,'rows':_0x334ea8}:null;}})[_0xab02('0x2c')](respondWithResult(_0x536242,null))[_0xab02('0x52')](handleError(_0x536242,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2df3=['remove','emit','hasOwnProperty','hook','exports','events','../../mysqldb','MailQueue','setMaxListeners','save','update'];(function(_0x3483a3,_0x3043a3){var _0x5c49c2=function(_0xc9d760){while(--_0xc9d760){_0x3483a3['push'](_0x3483a3['shift']());}};_0x5c49c2(++_0x3043a3);}(_0x2df3,0xe1));var _0x32df=function(_0x3724c5,_0xd5af53){_0x3724c5=_0x3724c5-0x0;var _0x50fc87=_0x2df3[_0x3724c5];return _0x50fc87;};'use strict';var EventEmitter=require(_0x32df('0x0'));var MailQueue=require(_0x32df('0x1'))['db'][_0x32df('0x2')];var MailQueueEvents=new EventEmitter();MailQueueEvents[_0x32df('0x3')](0x0);var events={'afterCreate':_0x32df('0x4'),'afterUpdate':_0x32df('0x5'),'afterDestroy':_0x32df('0x6')};function emitEvent(_0x120017){return function(_0x435884,_0x76b2ec,_0x20fe73){MailQueueEvents['emit'](_0x120017+':'+_0x435884['id'],_0x435884);MailQueueEvents[_0x32df('0x7')](_0x120017,_0x435884);_0x20fe73(null);};}for(var e in events){if(events[_0x32df('0x8')](e)){var event=events[e];MailQueue[_0x32df('0x9')](e,emitEvent(event));}}module[_0x32df('0xa')]=MailQueueEvents;
\ No newline at end of file
+var _0x9dea=['../../mysqldb','MailQueue','setMaxListeners','save','update','remove','emit','hook','exports','events'];(function(_0x205297,_0xd43e44){var _0x246ce8=function(_0x9ad3f4){while(--_0x9ad3f4){_0x205297['push'](_0x205297['shift']());}};_0x246ce8(++_0xd43e44);}(_0x9dea,0x1cb));var _0xa9de=function(_0x2a1f36,_0x16c543){_0x2a1f36=_0x2a1f36-0x0;var _0x4bca00=_0x9dea[_0x2a1f36];return _0x4bca00;};'use strict';var EventEmitter=require(_0xa9de('0x0'));var MailQueue=require(_0xa9de('0x1'))['db'][_0xa9de('0x2')];var MailQueueEvents=new EventEmitter();MailQueueEvents[_0xa9de('0x3')](0x0);var events={'afterCreate':_0xa9de('0x4'),'afterUpdate':_0xa9de('0x5'),'afterDestroy':_0xa9de('0x6')};function emitEvent(_0x24eb89){return function(_0x2f5fbd,_0x51f798,_0x49eb8f){MailQueueEvents[_0xa9de('0x7')](_0x24eb89+':'+_0x2f5fbd['id'],_0x2f5fbd);MailQueueEvents[_0xa9de('0x7')](_0x24eb89,_0x2f5fbd);_0x49eb8f(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];MailQueue[_0xa9de('0x8')](e,emitEvent(event));}}module[_0xa9de('0x9')]=MailQueueEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbe18=['exports','define','MailQueue','mail_queues','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./mailQueue.attributes'];(function(_0x5774dd,_0x3da17c){var _0x5a24e2=function(_0x1eb02f){while(--_0x1eb02f){_0x5774dd['push'](_0x5774dd['shift']());}};_0x5a24e2(++_0x3da17c);}(_0xbe18,0x121));var _0x8be1=function(_0xa57b7e,_0x381c46){_0xa57b7e=_0xa57b7e-0x0;var _0x3a2d81=_0xbe18[_0xa57b7e];return _0x3a2d81;};'use strict';var _=require(_0x8be1('0x0'));var util=require(_0x8be1('0x1'));var logger=require(_0x8be1('0x2'))(_0x8be1('0x3'));var moment=require(_0x8be1('0x4'));var BPromise=require(_0x8be1('0x5'));var rp=require(_0x8be1('0x6'));var fs=require('fs');var path=require(_0x8be1('0x7'));var rimraf=require(_0x8be1('0x8'));var config=require(_0x8be1('0x9'));var attributes=require(_0x8be1('0xa'));module[_0x8be1('0xb')]=function(_0x12acad,_0x1e6b0f){return _0x12acad[_0x8be1('0xc')](_0x8be1('0xd'),attributes,{'tableName':_0x8be1('0xe'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x1c71=['define','mail_queues','lodash','util','../../config/logger','api','request-promise','path','rimraf','../../config/environment','exports'];(function(_0xfd2ae9,_0xd28d18){var _0x55bd75=function(_0x358791){while(--_0x358791){_0xfd2ae9['push'](_0xfd2ae9['shift']());}};_0x55bd75(++_0xd28d18);}(_0x1c71,0xe9));var _0x11c7=function(_0x407471,_0x5c776a){_0x407471=_0x407471-0x0;var _0x58ec49=_0x1c71[_0x407471];return _0x58ec49;};'use strict';var _=require(_0x11c7('0x0'));var util=require(_0x11c7('0x1'));var logger=require(_0x11c7('0x2'))(_0x11c7('0x3'));var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0x11c7('0x4'));var fs=require('fs');var path=require(_0x11c7('0x5'));var rimraf=require(_0x11c7('0x6'));var config=require(_0x11c7('0x7'));var attributes=require('./mailQueue.attributes');module[_0x11c7('0x8')]=function(_0x57e43,_0x106846){return _0x57e43[_0x11c7('0x9')]('MailQueue',attributes,{'tableName':_0x11c7('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2c05=['result','catch','GetMailQueue','MailQueue','findAll','options','raw','where','attributes','limit','include','map','model','find','ShowMailQueue','lodash','util','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','defaults','redis','localhost','./mailQueue.socket','register','then','info','MailQueue,\x20%s,\x20%s','request\x20sent','debug','MailQueue,\x20%s,\x20%s,\x20%s','stringify','error','message'];(function(_0x4b73ef,_0x37de0a){var _0x16999f=function(_0x1a0e32){while(--_0x1a0e32){_0x4b73ef['push'](_0x4b73ef['shift']());}};_0x16999f(++_0x37de0a);}(_0x2c05,0xff));var _0x52c0=function(_0x573987,_0x2f7cee){_0x573987=_0x573987-0x0;var _0xaafbe5=_0x2c05[_0x573987];return _0xaafbe5;};'use strict';var _=require(_0x52c0('0x0'));var util=require(_0x52c0('0x1'));var moment=require('moment');var BPromise=require(_0x52c0('0x2'));var rs=require(_0x52c0('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x52c0('0x4'))['db'];var utils=require(_0x52c0('0x5'));var logger=require(_0x52c0('0x6'))(_0x52c0('0x7'));var config=require(_0x52c0('0x8'));var jayson=require(_0x52c0('0x9'));var client=jayson[_0x52c0('0xa')]['http']({'port':0x232a});config['redis']=_[_0x52c0('0xb')](config[_0x52c0('0xc')],{'host':_0x52c0('0xd'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x52c0('0xc')]));require(_0x52c0('0xe'))[_0x52c0('0xf')](socket);function respondWithRpcPromise(_0xfd8a5e,_0x58e60c,_0x409d37){return new BPromise(function(_0x59cdfa,_0x112855){return client['request'](_0xfd8a5e,_0x409d37)[_0x52c0('0x10')](function(_0x54fe4a){logger[_0x52c0('0x11')](_0x52c0('0x12'),_0x58e60c,_0x52c0('0x13'));logger[_0x52c0('0x14')](_0x52c0('0x15'),_0x58e60c,_0x52c0('0x13'),JSON[_0x52c0('0x16')](_0x54fe4a));if(_0x54fe4a['error']){if(_0x54fe4a['error']['code']===0x1f4){logger['error'](_0x52c0('0x12'),_0x58e60c,_0x54fe4a['error']['message']);return _0x112855(_0x54fe4a[_0x52c0('0x17')][_0x52c0('0x18')]);}logger[_0x52c0('0x17')]('MailQueue,\x20%s,\x20%s',_0x58e60c,_0x54fe4a[_0x52c0('0x17')][_0x52c0('0x18')]);return _0x59cdfa(_0x54fe4a[_0x52c0('0x17')][_0x52c0('0x18')]);}else{logger[_0x52c0('0x11')](_0x52c0('0x12'),_0x58e60c,_0x52c0('0x13'));_0x59cdfa(_0x54fe4a[_0x52c0('0x19')][_0x52c0('0x18')]);}})[_0x52c0('0x1a')](function(_0x43089c){logger[_0x52c0('0x17')](_0x52c0('0x12'),_0x58e60c,_0x43089c);_0x112855(_0x43089c);});});}exports[_0x52c0('0x1b')]=function(_0x4911fc){var _0x1eeca6=this;return new Promise(function(_0x4af5ab,_0x4263b0){return db[_0x52c0('0x1c')][_0x52c0('0x1d')]({'raw':_0x4911fc[_0x52c0('0x1e')]?_0x4911fc[_0x52c0('0x1e')][_0x52c0('0x1f')]===undefined?!![]:![]:!![],'where':_0x4911fc[_0x52c0('0x1e')]?_0x4911fc[_0x52c0('0x1e')][_0x52c0('0x20')]||null:null,'attributes':_0x4911fc[_0x52c0('0x1e')]?_0x4911fc['options'][_0x52c0('0x21')]||null:null,'limit':_0x4911fc['options']?_0x4911fc[_0x52c0('0x1e')][_0x52c0('0x22')]||null:null,'include':_0x4911fc['options']?_0x4911fc[_0x52c0('0x1e')][_0x52c0('0x23')]?_[_0x52c0('0x24')](_0x4911fc[_0x52c0('0x1e')]['include'],function(_0x5e5817){return{'model':db[_0x5e5817['model']],'as':_0x5e5817['as'],'attributes':_0x5e5817['attributes'],'include':_0x5e5817[_0x52c0('0x23')]?_[_0x52c0('0x24')](_0x5e5817[_0x52c0('0x23')],function(_0x6f8c77){return{'model':db[_0x6f8c77[_0x52c0('0x25')]],'as':_0x6f8c77['as'],'attributes':_0x6f8c77[_0x52c0('0x21')],'include':_0x6f8c77[_0x52c0('0x23')]?_[_0x52c0('0x24')](_0x6f8c77[_0x52c0('0x23')],function(_0x257f14){return{'model':db[_0x257f14[_0x52c0('0x25')]],'as':_0x257f14['as'],'attributes':_0x257f14[_0x52c0('0x21')]};}):[]};}):[]};}):[]:[]})[_0x52c0('0x10')](function(_0x3b3b3e){logger[_0x52c0('0x11')]('GetMailQueue',_0x4911fc);logger['debug'](_0x52c0('0x1b'),_0x4911fc,JSON[_0x52c0('0x16')](_0x3b3b3e));_0x4af5ab(_0x3b3b3e);})[_0x52c0('0x1a')](function(_0x8ac669){logger[_0x52c0('0x17')]('GetMailQueue',_0x8ac669[_0x52c0('0x18')],_0x4911fc);_0x4263b0(_0x1eeca6[_0x52c0('0x17')](0x1f4,_0x8ac669[_0x52c0('0x18')]));});});};exports['ShowMailQueue']=function(_0x42ac90){var _0x11af8c=this;return new Promise(function(_0x5bed44,_0x16ab91){return db[_0x52c0('0x1c')][_0x52c0('0x26')]({'raw':_0x42ac90[_0x52c0('0x1e')]?_0x42ac90['options'][_0x52c0('0x1f')]===undefined?!![]:![]:!![],'where':_0x42ac90[_0x52c0('0x1e')]?_0x42ac90[_0x52c0('0x1e')][_0x52c0('0x20')]||null:null,'attributes':_0x42ac90[_0x52c0('0x1e')]?_0x42ac90[_0x52c0('0x1e')][_0x52c0('0x21')]||null:null,'include':_0x42ac90[_0x52c0('0x1e')]?_0x42ac90[_0x52c0('0x1e')][_0x52c0('0x23')]?_[_0x52c0('0x24')](_0x42ac90[_0x52c0('0x1e')][_0x52c0('0x23')],function(_0x2d0364){return{'model':db[_0x2d0364[_0x52c0('0x25')]],'as':_0x2d0364['as'],'attributes':_0x2d0364['attributes'],'include':_0x2d0364[_0x52c0('0x23')]?_[_0x52c0('0x24')](_0x2d0364[_0x52c0('0x23')],function(_0x12afa3){return{'model':db[_0x12afa3[_0x52c0('0x25')]],'as':_0x12afa3['as'],'attributes':_0x12afa3[_0x52c0('0x21')],'include':_0x12afa3['include']?_['map'](_0x12afa3['include'],function(_0xf4a60f){return{'model':db[_0xf4a60f[_0x52c0('0x25')]],'as':_0xf4a60f['as'],'attributes':_0xf4a60f[_0x52c0('0x21')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x28f88f){logger[_0x52c0('0x11')](_0x52c0('0x27'),_0x42ac90);logger[_0x52c0('0x14')](_0x52c0('0x27'),_0x42ac90,JSON[_0x52c0('0x16')](_0x28f88f));_0x5bed44(_0x28f88f);})[_0x52c0('0x1a')](function(_0x479778){logger['error'](_0x52c0('0x27'),_0x479778[_0x52c0('0x18')],_0x42ac90);_0x16ab91(_0x11af8c[_0x52c0('0x17')](0x1f4,_0x479778['message']));});});};
\ No newline at end of file
+var _0xabc0=['MailQueue','findAll','options','raw','where','attributes','limit','include','map','model','then','GetMailQueue','ShowMailQueue','find','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','defaults','redis','localhost','socket.io-emitter','register','info','MailQueue,\x20%s,\x20%s','request\x20sent','debug','stringify','error','message','catch'];(function(_0x867b0a,_0x587ccf){var _0x137438=function(_0xbeafa6){while(--_0xbeafa6){_0x867b0a['push'](_0x867b0a['shift']());}};_0x137438(++_0x587ccf);}(_0xabc0,0x16d));var _0x0abc=function(_0x1cb0f9,_0xde0cab){_0x1cb0f9=_0x1cb0f9-0x0;var _0x367293=_0xabc0[_0x1cb0f9];return _0x367293;};'use strict';var _=require(_0x0abc('0x0'));var util=require(_0x0abc('0x1'));var moment=require(_0x0abc('0x2'));var BPromise=require(_0x0abc('0x3'));var rs=require(_0x0abc('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x0abc('0x5'))['db'];var utils=require(_0x0abc('0x6'));var logger=require(_0x0abc('0x7'))(_0x0abc('0x8'));var config=require('../../config/environment');var jayson=require(_0x0abc('0x9'));var client=jayson[_0x0abc('0xa')][_0x0abc('0xb')]({'port':0x232a});config['redis']=_[_0x0abc('0xc')](config[_0x0abc('0xd')],{'host':_0x0abc('0xe'),'port':0x18eb});var socket=require(_0x0abc('0xf'))(new Redis(config[_0x0abc('0xd')]));require('./mailQueue.socket')[_0x0abc('0x10')](socket);function respondWithRpcPromise(_0x58b11d,_0x3568d5,_0x1c0d81){return new BPromise(function(_0x1a9238,_0x334518){return client['request'](_0x58b11d,_0x1c0d81)['then'](function(_0x14eb27){logger[_0x0abc('0x11')](_0x0abc('0x12'),_0x3568d5,_0x0abc('0x13'));logger[_0x0abc('0x14')]('MailQueue,\x20%s,\x20%s,\x20%s',_0x3568d5,_0x0abc('0x13'),JSON[_0x0abc('0x15')](_0x14eb27));if(_0x14eb27[_0x0abc('0x16')]){if(_0x14eb27[_0x0abc('0x16')]['code']===0x1f4){logger['error'](_0x0abc('0x12'),_0x3568d5,_0x14eb27[_0x0abc('0x16')][_0x0abc('0x17')]);return _0x334518(_0x14eb27[_0x0abc('0x16')]['message']);}logger['error'](_0x0abc('0x12'),_0x3568d5,_0x14eb27[_0x0abc('0x16')][_0x0abc('0x17')]);return _0x1a9238(_0x14eb27[_0x0abc('0x16')][_0x0abc('0x17')]);}else{logger[_0x0abc('0x11')]('MailQueue,\x20%s,\x20%s',_0x3568d5,_0x0abc('0x13'));_0x1a9238(_0x14eb27['result']['message']);}})[_0x0abc('0x18')](function(_0xa6d826){logger[_0x0abc('0x16')](_0x0abc('0x12'),_0x3568d5,_0xa6d826);_0x334518(_0xa6d826);});});}exports['GetMailQueue']=function(_0x1a9117){var _0x512234=this;return new Promise(function(_0x2ab000,_0x31beba){return db[_0x0abc('0x19')][_0x0abc('0x1a')]({'raw':_0x1a9117[_0x0abc('0x1b')]?_0x1a9117['options'][_0x0abc('0x1c')]===undefined?!![]:![]:!![],'where':_0x1a9117[_0x0abc('0x1b')]?_0x1a9117[_0x0abc('0x1b')][_0x0abc('0x1d')]||null:null,'attributes':_0x1a9117['options']?_0x1a9117[_0x0abc('0x1b')][_0x0abc('0x1e')]||null:null,'limit':_0x1a9117[_0x0abc('0x1b')]?_0x1a9117[_0x0abc('0x1b')][_0x0abc('0x1f')]||null:null,'include':_0x1a9117[_0x0abc('0x1b')]?_0x1a9117['options'][_0x0abc('0x20')]?_[_0x0abc('0x21')](_0x1a9117['options'][_0x0abc('0x20')],function(_0x12cd84){return{'model':db[_0x12cd84[_0x0abc('0x22')]],'as':_0x12cd84['as'],'attributes':_0x12cd84['attributes'],'include':_0x12cd84['include']?_[_0x0abc('0x21')](_0x12cd84[_0x0abc('0x20')],function(_0x48d2b9){return{'model':db[_0x48d2b9[_0x0abc('0x22')]],'as':_0x48d2b9['as'],'attributes':_0x48d2b9[_0x0abc('0x1e')],'include':_0x48d2b9[_0x0abc('0x20')]?_['map'](_0x48d2b9['include'],function(_0x197deb){return{'model':db[_0x197deb[_0x0abc('0x22')]],'as':_0x197deb['as'],'attributes':_0x197deb['attributes']};}):[]};}):[]};}):[]:[]})[_0x0abc('0x23')](function(_0x5acfa2){logger[_0x0abc('0x11')]('GetMailQueue',_0x1a9117);logger[_0x0abc('0x14')](_0x0abc('0x24'),_0x1a9117,JSON[_0x0abc('0x15')](_0x5acfa2));_0x2ab000(_0x5acfa2);})[_0x0abc('0x18')](function(_0x1adc61){logger['error']('GetMailQueue',_0x1adc61[_0x0abc('0x17')],_0x1a9117);_0x31beba(_0x512234['error'](0x1f4,_0x1adc61[_0x0abc('0x17')]));});});};exports[_0x0abc('0x25')]=function(_0xc7d945){var _0xfc4633=this;return new Promise(function(_0x4f9d74,_0x2766fc){return db[_0x0abc('0x19')][_0x0abc('0x26')]({'raw':_0xc7d945[_0x0abc('0x1b')]?_0xc7d945['options']['raw']===undefined?!![]:![]:!![],'where':_0xc7d945[_0x0abc('0x1b')]?_0xc7d945[_0x0abc('0x1b')][_0x0abc('0x1d')]||null:null,'attributes':_0xc7d945[_0x0abc('0x1b')]?_0xc7d945[_0x0abc('0x1b')][_0x0abc('0x1e')]||null:null,'include':_0xc7d945[_0x0abc('0x1b')]?_0xc7d945[_0x0abc('0x1b')]['include']?_[_0x0abc('0x21')](_0xc7d945[_0x0abc('0x1b')]['include'],function(_0x273fc3){return{'model':db[_0x273fc3[_0x0abc('0x22')]],'as':_0x273fc3['as'],'attributes':_0x273fc3[_0x0abc('0x1e')],'include':_0x273fc3[_0x0abc('0x20')]?_[_0x0abc('0x21')](_0x273fc3[_0x0abc('0x20')],function(_0x13dc5d){return{'model':db[_0x13dc5d['model']],'as':_0x13dc5d['as'],'attributes':_0x13dc5d['attributes'],'include':_0x13dc5d['include']?_['map'](_0x13dc5d['include'],function(_0x224209){return{'model':db[_0x224209[_0x0abc('0x22')]],'as':_0x224209['as'],'attributes':_0x224209['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x4e2f2f){logger['info'](_0x0abc('0x25'),_0xc7d945);logger[_0x0abc('0x14')]('ShowMailQueue',_0xc7d945,JSON[_0x0abc('0x15')](_0x4e2f2f));_0x4f9d74(_0x4e2f2f);})['catch'](function(_0x57830b){logger[_0x0abc('0x16')](_0x0abc('0x25'),_0x57830b[_0x0abc('0x17')],_0xc7d945);_0x2766fc(_0xfc4633[_0x0abc('0x16')](0x1f4,_0x57830b[_0x0abc('0x17')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3b33=['remove','update','emit','removeListener','register','length','mailQueue:','./mailQueue.events','save'];(function(_0x1d5c18,_0x27804b){var _0x21b550=function(_0x1298e6){while(--_0x1298e6){_0x1d5c18['push'](_0x1d5c18['shift']());}};_0x21b550(++_0x27804b);}(_0x3b33,0xa9));var _0x33b3=function(_0x47631f,_0xac8e43){_0x47631f=_0x47631f-0x0;var _0x10e18e=_0x3b33[_0x47631f];return _0x10e18e;};'use strict';var MailQueueEvents=require(_0x33b3('0x0'));var events=[_0x33b3('0x1'),_0x33b3('0x2'),_0x33b3('0x3')];function createListener(_0x143cd1,_0x47b661){return function(_0x1afcdf){_0x47b661[_0x33b3('0x4')](_0x143cd1,_0x1afcdf);};}function removeListener(_0x352b2e,_0x13c67f){return function(){MailQueueEvents[_0x33b3('0x5')](_0x352b2e,_0x13c67f);};}exports[_0x33b3('0x6')]=function(_0x257757){for(var _0x35629b=0x0,_0x5ffa48=events[_0x33b3('0x7')];_0x35629b<_0x5ffa48;_0x35629b++){var _0x3704bf=events[_0x35629b];var _0x56c343=createListener(_0x33b3('0x8')+_0x3704bf,_0x257757);MailQueueEvents['on'](_0x3704bf,_0x56c343);}};
\ No newline at end of file
+var _0xd9e3=['register','length','mailQueue:','remove','update','removeListener'];(function(_0x1664e1,_0x13c598){var _0x5eb159=function(_0x1f999b){while(--_0x1f999b){_0x1664e1['push'](_0x1664e1['shift']());}};_0x5eb159(++_0x13c598);}(_0xd9e3,0x7b));var _0x3d9e=function(_0x2e6638,_0x3e3ffd){_0x2e6638=_0x2e6638-0x0;var _0xeb1bed=_0xd9e3[_0x2e6638];return _0xeb1bed;};'use strict';var MailQueueEvents=require('./mailQueue.events');var events=['save',_0x3d9e('0x0'),_0x3d9e('0x1')];function createListener(_0x500008,_0x59dd2a){return function(_0x163aac){_0x59dd2a['emit'](_0x500008,_0x163aac);};}function removeListener(_0x33f2a6,_0x402d57){return function(){MailQueueEvents[_0x3d9e('0x2')](_0x33f2a6,_0x402d57);};}exports[_0x3d9e('0x3')]=function(_0x3b9116){for(var _0x58c8b3=0x0,_0x2d3ac9=events[_0x3d9e('0x4')];_0x58c8b3<_0x2d3ac9;_0x58c8b3++){var _0x41ef8a=events[_0x58c8b3];var _0x14e5bf=createListener(_0x3d9e('0x5')+_0x41ef8a,_0x3b9116);MailQueueEvents['on'](_0x41ef8a,_0x14e5bf);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7849=['create','put','update','exports','multer','util','path','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./mailQueueReport.controller','isAuthenticated','index','/describe','get','/:id','show'];(function(_0x8a314a,_0x372bdf){var _0x28a035=function(_0x250228){while(--_0x250228){_0x8a314a['push'](_0x8a314a['shift']());}};_0x28a035(++_0x372bdf);}(_0x7849,0x180));var _0x9784=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0x7849[_0x20a584];return _0x4b41a8;};'use strict';var multer=require(_0x9784('0x0'));var util=require(_0x9784('0x1'));var path=require(_0x9784('0x2'));var timeout=require(_0x9784('0x3'));var express=require(_0x9784('0x4'));var router=express['Router']();var fs_extra=require(_0x9784('0x5'));var auth=require(_0x9784('0x6'));var interaction=require(_0x9784('0x7'));var config=require(_0x9784('0x8'));var controller=require(_0x9784('0x9'));router['get']('/',auth[_0x9784('0xa')](),controller[_0x9784('0xb')]);router['get'](_0x9784('0xc'),auth[_0x9784('0xa')](),controller['describe']);router[_0x9784('0xd')](_0x9784('0xe'),auth[_0x9784('0xa')](),controller[_0x9784('0xf')]);router['post']('/',auth[_0x9784('0xa')](),controller[_0x9784('0x10')]);router[_0x9784('0x11')]('/:id',auth['isAuthenticated'](),controller[_0x9784('0x12')]);router['delete'](_0x9784('0xe'),auth[_0x9784('0xa')](),controller['destroy']);module[_0x9784('0x13')]=router;
\ No newline at end of file
+var _0x78ab=['describe','show','post','create','put','/:id','destroy','multer','path','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./mailQueueReport.controller','get','isAuthenticated','/describe'];(function(_0x28bdfc,_0x499568){var _0x4f401c=function(_0x4c22fc){while(--_0x4c22fc){_0x28bdfc['push'](_0x28bdfc['shift']());}};_0x4f401c(++_0x499568);}(_0x78ab,0x85));var _0xb78a=function(_0x500419,_0x549162){_0x500419=_0x500419-0x0;var _0x241c1a=_0x78ab[_0x500419];return _0x241c1a;};'use strict';var multer=require(_0xb78a('0x0'));var util=require('util');var path=require(_0xb78a('0x1'));var timeout=require('connect-timeout');var express=require(_0xb78a('0x2'));var router=express[_0xb78a('0x3')]();var fs_extra=require(_0xb78a('0x4'));var auth=require(_0xb78a('0x5'));var interaction=require(_0xb78a('0x6'));var config=require('../../config/environment');var controller=require(_0xb78a('0x7'));router[_0xb78a('0x8')]('/',auth[_0xb78a('0x9')](),controller['index']);router[_0xb78a('0x8')](_0xb78a('0xa'),auth[_0xb78a('0x9')](),controller[_0xb78a('0xb')]);router[_0xb78a('0x8')]('/:id',auth[_0xb78a('0x9')](),controller[_0xb78a('0xc')]);router[_0xb78a('0xd')]('/',auth[_0xb78a('0x9')](),controller[_0xb78a('0xe')]);router[_0xb78a('0xf')](_0xb78a('0x10'),auth[_0xb78a('0x9')](),controller['update']);router['delete']('/:id',auth['isAuthenticated'](),controller[_0xb78a('0x11')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9995=['STRING','DATE','moment','exports'];(function(_0x3c6e88,_0x162573){var _0x434b1c=function(_0x1dbb56){while(--_0x1dbb56){_0x3c6e88['push'](_0x3c6e88['shift']());}};_0x434b1c(++_0x162573);}(_0x9995,0x9e));var _0x5999=function(_0x396bcf,_0x4f7f2d){_0x396bcf=_0x396bcf-0x0;var _0x270824=_0x9995[_0x396bcf];return _0x270824;};'use strict';var moment=require(_0x5999('0x0'));var Sequelize=require('sequelize');module[_0x5999('0x1')]={'uniqueid':{'type':Sequelize['STRING'],'allowNull':![]},'from':{'type':Sequelize[_0x5999('0x2')]},'joinAt':{'type':Sequelize[_0x5999('0x3')]},'leaveAt':{'type':Sequelize['DATE']},'acceptAt':{'type':Sequelize['DATE']},'exitAt':{'type':Sequelize[_0x5999('0x3')]},'reason':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0x5ba4=['moment','sequelize','exports','STRING','DATE'];(function(_0x502c7d,_0x2f1285){var _0x30b7ed=function(_0x2d92f3){while(--_0x2d92f3){_0x502c7d['push'](_0x502c7d['shift']());}};_0x30b7ed(++_0x2f1285);}(_0x5ba4,0x136));var _0x45ba=function(_0x125ff8,_0x41925f){_0x125ff8=_0x125ff8-0x0;var _0x2d9ef=_0x5ba4[_0x125ff8];return _0x2d9ef;};'use strict';var moment=require(_0x45ba('0x0'));var Sequelize=require(_0x45ba('0x1'));module[_0x45ba('0x2')]={'uniqueid':{'type':Sequelize[_0x45ba('0x3')],'allowNull':![]},'from':{'type':Sequelize['STRING']},'joinAt':{'type':Sequelize['DATE']},'leaveAt':{'type':Sequelize['DATE']},'acceptAt':{'type':Sequelize[_0x45ba('0x4')]},'exitAt':{'type':Sequelize[_0x45ba('0x4')]},'reason':{'type':Sequelize[_0x45ba('0x3')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x81c6=['includeAll','include','findAll','rows','catch','show','keys','fields','length','create','body','find','params','describe','rimraf','moment','bluebird','mustache','path','sox','to-csv','ejs','lodash','squel','desk.js','querystring','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/license/util','../../mysqldb','status','json','offset','undefined','limit','count','Content-Range','apply','update','then','destroy','end','name','send','map','rawAttributes','fieldName','key','model','query','filters','intersection','attributes','hasOwnProperty','order','sort','where','filter','VIRTUAL','merge','options','MailQueueReport'];(function(_0x89baf5,_0x37a9c3){var _0x1939b5=function(_0x2a7bac){while(--_0x2a7bac){_0x89baf5['push'](_0x89baf5['shift']());}};_0x1939b5(++_0x37a9c3);}(_0x81c6,0x1d5));var _0x681c=function(_0x3a218d,_0x340ffa){_0x3a218d=_0x3a218d-0x0;var _0x23580d=_0x81c6[_0x3a218d];return _0x23580d;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x681c('0x0'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x681c('0x1'));var BPromise=require(_0x681c('0x2'));var Mustache=require(_0x681c('0x3'));var util=require('util');var path=require(_0x681c('0x4'));var sox=require(_0x681c('0x5'));var csv=require(_0x681c('0x6'));var ejs=require(_0x681c('0x7'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x681c('0x8'));var squel=require(_0x681c('0x9'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x681c('0xa'));var toCsv=require(_0x681c('0x6'));var querystring=require(_0x681c('0xb'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x681c('0xc'));var qs=require('../../components/parsers/qs');var as=require(_0x681c('0xd'));var hardwareService=require(_0x681c('0xe'));var logger=require(_0x681c('0xf'))(_0x681c('0x10'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x681c('0x11'));var db=require(_0x681c('0x12'))['db'];function respondWithStatusCode(_0x2d379b,_0x50cae8){_0x50cae8=_0x50cae8||0xcc;return function(_0x2e4651){if(_0x2e4651){return _0x2d379b['sendStatus'](_0x50cae8);}return _0x2d379b[_0x681c('0x13')](_0x50cae8)['end']();};}function respondWithResult(_0x2c059e,_0x27c3a2){_0x27c3a2=_0x27c3a2||0xc8;return function(_0xe8bb4d){if(_0xe8bb4d){return _0x2c059e[_0x681c('0x13')](_0x27c3a2)[_0x681c('0x14')](_0xe8bb4d);}};}function respondWithFilteredResult(_0x2bc3fb,_0x50a4ec){return function(_0x2b0939){if(_0x2b0939){var _0x1135c9=typeof _0x50a4ec[_0x681c('0x15')]===_0x681c('0x16')&&typeof _0x50a4ec[_0x681c('0x17')]===_0x681c('0x16');var _0x4e7df2=_0x2b0939[_0x681c('0x18')];var _0x42f506=_0x1135c9?0x0:_0x50a4ec[_0x681c('0x15')];var _0x42304f=_0x1135c9?_0x2b0939['count']:_0x50a4ec[_0x681c('0x15')]+_0x50a4ec[_0x681c('0x17')];var _0x54d27f;if(_0x42304f>=_0x4e7df2){_0x42304f=_0x4e7df2;_0x54d27f=0xc8;}else{_0x54d27f=0xce;}_0x2bc3fb[_0x681c('0x13')](_0x54d27f);return _0x2bc3fb['set'](_0x681c('0x19'),_0x42f506+'-'+_0x42304f+'/'+_0x4e7df2)[_0x681c('0x14')](_0x2b0939);}return null;};}function patchUpdates(_0x11d68d){return function(_0x33c495){try{jsonpatch[_0x681c('0x1a')](_0x33c495,_0x11d68d,!![]);}catch(_0x51d626){return BPromise['reject'](_0x51d626);}return _0x33c495['save']();};}function saveUpdates(_0x2e5331,_0x39c8b7){return function(_0x3adfe3){if(_0x3adfe3){return _0x3adfe3[_0x681c('0x1b')](_0x2e5331)[_0x681c('0x1c')](function(_0x29f3fa){return _0x29f3fa;});}return null;};}function removeEntity(_0x415a0a,_0x3d0297){return function(_0x1b3d2b){if(_0x1b3d2b){return _0x1b3d2b[_0x681c('0x1d')]()[_0x681c('0x1c')](function(){_0x415a0a[_0x681c('0x13')](0xcc)[_0x681c('0x1e')]();});}};}function handleEntityNotFound(_0x218410,_0x3237ed){return function(_0x228f59){if(!_0x228f59){_0x218410['sendStatus'](0x194);}return _0x228f59;};}function handleError(_0x11063b,_0x5705a7){_0x5705a7=_0x5705a7||0x1f4;return function(_0x5f8d64){logger['error'](_0x5f8d64['stack']);if(_0x5f8d64[_0x681c('0x1f')]){delete _0x5f8d64[_0x681c('0x1f')];}_0x11063b[_0x681c('0x13')](_0x5705a7)[_0x681c('0x20')](_0x5f8d64);};}exports['index']=function(_0x3b1031,_0x39fca3){var _0x2fde4b={},_0x936fce={},_0x147cda={'count':0x0,'rows':[]};var _0x204006=_[_0x681c('0x21')](db['MailQueueReport'][_0x681c('0x22')],function(_0x390be5){return{'name':_0x390be5[_0x681c('0x23')],'type':_0x390be5['type'][_0x681c('0x24')]};});_0x936fce[_0x681c('0x25')]=_[_0x681c('0x21')](_0x204006,'name');_0x936fce[_0x681c('0x26')]=_['keys'](_0x3b1031['query']);_0x936fce[_0x681c('0x27')]=_[_0x681c('0x28')](_0x936fce[_0x681c('0x25')],_0x936fce['query']);_0x2fde4b[_0x681c('0x29')]=_['intersection'](_0x936fce[_0x681c('0x25')],qs['fields'](_0x3b1031['query']['fields']));_0x2fde4b[_0x681c('0x29')]=_0x2fde4b[_0x681c('0x29')]['length']?_0x2fde4b[_0x681c('0x29')]:_0x936fce['model'];if(!_0x3b1031['query'][_0x681c('0x2a')]('nolimit')){_0x2fde4b[_0x681c('0x17')]=qs[_0x681c('0x17')](_0x3b1031[_0x681c('0x26')]['limit']);_0x2fde4b['offset']=qs[_0x681c('0x15')](_0x3b1031[_0x681c('0x26')]['offset']);}_0x2fde4b[_0x681c('0x2b')]=qs[_0x681c('0x2c')](_0x3b1031[_0x681c('0x26')]['sort']);_0x2fde4b[_0x681c('0x2d')]=qs[_0x681c('0x27')](_['pick'](_0x3b1031[_0x681c('0x26')],_0x936fce[_0x681c('0x27')]),_0x204006);if(_0x3b1031[_0x681c('0x26')][_0x681c('0x2e')]){_0x2fde4b[_0x681c('0x2d')]=_['merge'](_0x2fde4b['where'],{'$or':_[_0x681c('0x21')](_0x204006,function(_0x373f33){if(_0x373f33['type']!==_0x681c('0x2f')){var _0x183f13={};_0x183f13[_0x373f33['name']]={'$like':'%'+_0x3b1031[_0x681c('0x26')][_0x681c('0x2e')]+'%'};return _0x183f13;}})});}_0x2fde4b=_[_0x681c('0x30')]({},_0x2fde4b,_0x3b1031[_0x681c('0x31')]);var _0x3b258b={'where':_0x2fde4b[_0x681c('0x2d')]};return db[_0x681c('0x32')][_0x681c('0x18')](_0x3b258b)[_0x681c('0x1c')](function(_0x1ece6f){_0x147cda['count']=_0x1ece6f;if(_0x3b1031[_0x681c('0x26')][_0x681c('0x33')]){_0x2fde4b[_0x681c('0x34')]=[{'all':!![]}];}return db[_0x681c('0x32')][_0x681c('0x35')](_0x2fde4b);})[_0x681c('0x1c')](function(_0x542c02){_0x147cda[_0x681c('0x36')]=_0x542c02;return _0x147cda;})[_0x681c('0x1c')](respondWithFilteredResult(_0x39fca3,_0x2fde4b))[_0x681c('0x37')](handleError(_0x39fca3,null));};exports[_0x681c('0x38')]=function(_0x30abe8,_0x5dd2f4){var _0x2143a9={'raw':!![],'where':{'id':_0x30abe8['params']['id']}},_0x5d7031={};_0x5d7031[_0x681c('0x25')]=_[_0x681c('0x39')](db[_0x681c('0x32')][_0x681c('0x22')]);_0x5d7031['query']=_[_0x681c('0x39')](_0x30abe8['query']);_0x5d7031['filters']=_[_0x681c('0x28')](_0x5d7031[_0x681c('0x25')],_0x5d7031[_0x681c('0x26')]);_0x2143a9[_0x681c('0x29')]=_[_0x681c('0x28')](_0x5d7031[_0x681c('0x25')],qs['fields'](_0x30abe8[_0x681c('0x26')][_0x681c('0x3a')]));_0x2143a9['attributes']=_0x2143a9['attributes'][_0x681c('0x3b')]?_0x2143a9['attributes']:_0x5d7031[_0x681c('0x25')];if(_0x30abe8['query']['includeAll']){_0x2143a9['include']=[{'all':!![]}];}_0x2143a9=_[_0x681c('0x30')]({},_0x2143a9,_0x30abe8[_0x681c('0x31')]);return db[_0x681c('0x32')]['find'](_0x2143a9)[_0x681c('0x1c')](handleEntityNotFound(_0x5dd2f4,null))[_0x681c('0x1c')](respondWithResult(_0x5dd2f4,null))['catch'](handleError(_0x5dd2f4,null));};exports[_0x681c('0x3c')]=function(_0x17bb48,_0x15d1c0){return db[_0x681c('0x32')]['create'](_0x17bb48[_0x681c('0x3d')],{})['then'](respondWithResult(_0x15d1c0,0xc9))[_0x681c('0x37')](handleError(_0x15d1c0,null));};exports[_0x681c('0x1b')]=function(_0xa56f20,_0x5731f0){if(_0xa56f20[_0x681c('0x3d')]['id']){delete _0xa56f20[_0x681c('0x3d')]['id'];}return db[_0x681c('0x32')][_0x681c('0x3e')]({'where':{'id':_0xa56f20[_0x681c('0x3f')]['id']}})[_0x681c('0x1c')](handleEntityNotFound(_0x5731f0,null))[_0x681c('0x1c')](saveUpdates(_0xa56f20[_0x681c('0x3d')],null))[_0x681c('0x1c')](respondWithResult(_0x5731f0,null))[_0x681c('0x37')](handleError(_0x5731f0,null));};exports[_0x681c('0x1d')]=function(_0x37bdf6,_0x4cae41){return db[_0x681c('0x32')][_0x681c('0x3e')]({'where':{'id':_0x37bdf6['params']['id']}})[_0x681c('0x1c')](handleEntityNotFound(_0x4cae41,null))[_0x681c('0x1c')](removeEntity(_0x4cae41,null))['catch'](handleError(_0x4cae41,null));};exports[_0x681c('0x40')]=function(_0x5e58bf,_0x38daf8){return db[_0x681c('0x32')][_0x681c('0x40')]()['then'](respondWithResult(_0x38daf8,null))[_0x681c('0x37')](handleError(_0x38daf8,null));};
\ No newline at end of file
+var _0x7096=['Content-Range','apply','reject','save','update','then','destroy','sendStatus','error','name','send','map','rawAttributes','fieldName','type','query','keys','filters','intersection','model','fields','attributes','length','hasOwnProperty','limit','order','sort','where','pick','filter','VIRTUAL','merge','options','includeAll','include','rows','params','MailQueueReport','find','catch','create','body','describe','rimraf','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','offset','undefined','count','set'];(function(_0x4c1155,_0x1513c0){var _0x57ddcd=function(_0x47b692){while(--_0x47b692){_0x4c1155['push'](_0x4c1155['shift']());}};_0x57ddcd(++_0x1513c0);}(_0x7096,0x10c));var _0x6709=function(_0x6131cd,_0x4c26a1){_0x6131cd=_0x6131cd-0x0;var _0x47e916=_0x7096[_0x6131cd];return _0x47e916;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x6709('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x6709('0x1'));var rp=require('request-promise');var moment=require(_0x6709('0x2'));var BPromise=require(_0x6709('0x3'));var Mustache=require(_0x6709('0x4'));var util=require(_0x6709('0x5'));var path=require(_0x6709('0x6'));var sox=require(_0x6709('0x7'));var csv=require(_0x6709('0x8'));var ejs=require(_0x6709('0x9'));var fs=require('fs');var fs_extra=require(_0x6709('0xa'));var _=require(_0x6709('0xb'));var squel=require(_0x6709('0xc'));var crypto=require(_0x6709('0xd'));var jsforce=require(_0x6709('0xe'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x6709('0xf'));var Papa=require(_0x6709('0x10'));var Redis=require(_0x6709('0x11'));var authService=require(_0x6709('0x12'));var qs=require(_0x6709('0x13'));var as=require(_0x6709('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x6709('0x15'));var utils=require(_0x6709('0x16'));var config=require(_0x6709('0x17'));var licenseUtil=require(_0x6709('0x18'));var db=require(_0x6709('0x19'))['db'];function respondWithStatusCode(_0x288f51,_0x1d56a5){_0x1d56a5=_0x1d56a5||0xcc;return function(_0x1ac547){if(_0x1ac547){return _0x288f51['sendStatus'](_0x1d56a5);}return _0x288f51[_0x6709('0x1a')](_0x1d56a5)[_0x6709('0x1b')]();};}function respondWithResult(_0x4d5255,_0x3706e1){_0x3706e1=_0x3706e1||0xc8;return function(_0x4e4587){if(_0x4e4587){return _0x4d5255[_0x6709('0x1a')](_0x3706e1)['json'](_0x4e4587);}};}function respondWithFilteredResult(_0x41af1f,_0x4bc059){return function(_0x149233){if(_0x149233){var _0x28866a=typeof _0x4bc059[_0x6709('0x1c')]===_0x6709('0x1d')&&typeof _0x4bc059['limit']==='undefined';var _0x5c4f94=_0x149233[_0x6709('0x1e')];var _0x235a54=_0x28866a?0x0:_0x4bc059['offset'];var _0x9c1fd8=_0x28866a?_0x149233[_0x6709('0x1e')]:_0x4bc059[_0x6709('0x1c')]+_0x4bc059['limit'];var _0x13cf04;if(_0x9c1fd8>=_0x5c4f94){_0x9c1fd8=_0x5c4f94;_0x13cf04=0xc8;}else{_0x13cf04=0xce;}_0x41af1f[_0x6709('0x1a')](_0x13cf04);return _0x41af1f[_0x6709('0x1f')](_0x6709('0x20'),_0x235a54+'-'+_0x9c1fd8+'/'+_0x5c4f94)['json'](_0x149233);}return null;};}function patchUpdates(_0x3c4971){return function(_0x1edac3){try{jsonpatch[_0x6709('0x21')](_0x1edac3,_0x3c4971,!![]);}catch(_0x3cf882){return BPromise[_0x6709('0x22')](_0x3cf882);}return _0x1edac3[_0x6709('0x23')]();};}function saveUpdates(_0x45921e,_0x17763d){return function(_0x386224){if(_0x386224){return _0x386224[_0x6709('0x24')](_0x45921e)[_0x6709('0x25')](function(_0xa36371){return _0xa36371;});}return null;};}function removeEntity(_0x5cf48b,_0x29f25f){return function(_0x81138e){if(_0x81138e){return _0x81138e[_0x6709('0x26')]()['then'](function(){_0x5cf48b[_0x6709('0x1a')](0xcc)[_0x6709('0x1b')]();});}};}function handleEntityNotFound(_0x20a347,_0x44b465){return function(_0x588e00){if(!_0x588e00){_0x20a347[_0x6709('0x27')](0x194);}return _0x588e00;};}function handleError(_0x3076fe,_0x50f7d6){_0x50f7d6=_0x50f7d6||0x1f4;return function(_0x585073){logger[_0x6709('0x28')](_0x585073['stack']);if(_0x585073[_0x6709('0x29')]){delete _0x585073[_0x6709('0x29')];}_0x3076fe['status'](_0x50f7d6)[_0x6709('0x2a')](_0x585073);};}exports['index']=function(_0x46a325,_0x3cd555){var _0x5b6906={},_0x137137={},_0x4e6989={'count':0x0,'rows':[]};var _0xe066d8=_[_0x6709('0x2b')](db['MailQueueReport'][_0x6709('0x2c')],function(_0x5deff5){return{'name':_0x5deff5[_0x6709('0x2d')],'type':_0x5deff5[_0x6709('0x2e')]['key']};});_0x137137['model']=_[_0x6709('0x2b')](_0xe066d8,_0x6709('0x29'));_0x137137[_0x6709('0x2f')]=_[_0x6709('0x30')](_0x46a325[_0x6709('0x2f')]);_0x137137[_0x6709('0x31')]=_[_0x6709('0x32')](_0x137137[_0x6709('0x33')],_0x137137[_0x6709('0x2f')]);_0x5b6906['attributes']=_[_0x6709('0x32')](_0x137137[_0x6709('0x33')],qs[_0x6709('0x34')](_0x46a325[_0x6709('0x2f')]['fields']));_0x5b6906[_0x6709('0x35')]=_0x5b6906[_0x6709('0x35')][_0x6709('0x36')]?_0x5b6906[_0x6709('0x35')]:_0x137137['model'];if(!_0x46a325[_0x6709('0x2f')][_0x6709('0x37')]('nolimit')){_0x5b6906[_0x6709('0x38')]=qs[_0x6709('0x38')](_0x46a325['query'][_0x6709('0x38')]);_0x5b6906[_0x6709('0x1c')]=qs[_0x6709('0x1c')](_0x46a325[_0x6709('0x2f')][_0x6709('0x1c')]);}_0x5b6906[_0x6709('0x39')]=qs[_0x6709('0x3a')](_0x46a325['query'][_0x6709('0x3a')]);_0x5b6906[_0x6709('0x3b')]=qs['filters'](_[_0x6709('0x3c')](_0x46a325[_0x6709('0x2f')],_0x137137[_0x6709('0x31')]),_0xe066d8);if(_0x46a325[_0x6709('0x2f')][_0x6709('0x3d')]){_0x5b6906[_0x6709('0x3b')]=_['merge'](_0x5b6906[_0x6709('0x3b')],{'$or':_['map'](_0xe066d8,function(_0x31e05a){if(_0x31e05a[_0x6709('0x2e')]!==_0x6709('0x3e')){var _0x48492f={};_0x48492f[_0x31e05a[_0x6709('0x29')]]={'$like':'%'+_0x46a325[_0x6709('0x2f')][_0x6709('0x3d')]+'%'};return _0x48492f;}})});}_0x5b6906=_[_0x6709('0x3f')]({},_0x5b6906,_0x46a325[_0x6709('0x40')]);var _0x1030ee={'where':_0x5b6906[_0x6709('0x3b')]};return db['MailQueueReport'][_0x6709('0x1e')](_0x1030ee)[_0x6709('0x25')](function(_0x50fbcd){_0x4e6989[_0x6709('0x1e')]=_0x50fbcd;if(_0x46a325[_0x6709('0x2f')][_0x6709('0x41')]){_0x5b6906[_0x6709('0x42')]=[{'all':!![]}];}return db['MailQueueReport']['findAll'](_0x5b6906);})[_0x6709('0x25')](function(_0x3f0da1){_0x4e6989[_0x6709('0x43')]=_0x3f0da1;return _0x4e6989;})[_0x6709('0x25')](respondWithFilteredResult(_0x3cd555,_0x5b6906))['catch'](handleError(_0x3cd555,null));};exports['show']=function(_0x5af1fb,_0x3d4237){var _0x293577={'raw':!![],'where':{'id':_0x5af1fb[_0x6709('0x44')]['id']}},_0x54f74e={};_0x54f74e[_0x6709('0x33')]=_['keys'](db['MailQueueReport'][_0x6709('0x2c')]);_0x54f74e[_0x6709('0x2f')]=_[_0x6709('0x30')](_0x5af1fb[_0x6709('0x2f')]);_0x54f74e[_0x6709('0x31')]=_['intersection'](_0x54f74e[_0x6709('0x33')],_0x54f74e['query']);_0x293577[_0x6709('0x35')]=_[_0x6709('0x32')](_0x54f74e[_0x6709('0x33')],qs['fields'](_0x5af1fb[_0x6709('0x2f')]['fields']));_0x293577['attributes']=_0x293577[_0x6709('0x35')][_0x6709('0x36')]?_0x293577[_0x6709('0x35')]:_0x54f74e[_0x6709('0x33')];if(_0x5af1fb[_0x6709('0x2f')][_0x6709('0x41')]){_0x293577[_0x6709('0x42')]=[{'all':!![]}];}_0x293577=_[_0x6709('0x3f')]({},_0x293577,_0x5af1fb[_0x6709('0x40')]);return db[_0x6709('0x45')][_0x6709('0x46')](_0x293577)[_0x6709('0x25')](handleEntityNotFound(_0x3d4237,null))[_0x6709('0x25')](respondWithResult(_0x3d4237,null))[_0x6709('0x47')](handleError(_0x3d4237,null));};exports[_0x6709('0x48')]=function(_0x4f82a0,_0xfbb810){return db['MailQueueReport']['create'](_0x4f82a0[_0x6709('0x49')],{})[_0x6709('0x25')](respondWithResult(_0xfbb810,0xc9))[_0x6709('0x47')](handleError(_0xfbb810,null));};exports[_0x6709('0x24')]=function(_0x22363b,_0x2b05dc){if(_0x22363b[_0x6709('0x49')]['id']){delete _0x22363b[_0x6709('0x49')]['id'];}return db['MailQueueReport'][_0x6709('0x46')]({'where':{'id':_0x22363b[_0x6709('0x44')]['id']}})[_0x6709('0x25')](handleEntityNotFound(_0x2b05dc,null))[_0x6709('0x25')](saveUpdates(_0x22363b['body'],null))[_0x6709('0x25')](respondWithResult(_0x2b05dc,null))['catch'](handleError(_0x2b05dc,null));};exports[_0x6709('0x26')]=function(_0x34a950,_0x2a563b){return db[_0x6709('0x45')][_0x6709('0x46')]({'where':{'id':_0x34a950['params']['id']}})[_0x6709('0x25')](handleEntityNotFound(_0x2a563b,null))[_0x6709('0x25')](removeEntity(_0x2a563b,null))[_0x6709('0x47')](handleError(_0x2a563b,null));};exports[_0x6709('0x4a')]=function(_0x1015e0,_0x55188c){return db['MailQueueReport'][_0x6709('0x4a')]()['then'](respondWithResult(_0x55188c,null))['catch'](handleError(_0x55188c,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x117d=['../../config/logger','api','moment','bluebird','request-promise','path','../../config/environment','MailQueueReport','report_mail_queue','uniqueid'];(function(_0x4b2b03,_0xbf34ee){var _0x1bf0ed=function(_0x562785){while(--_0x562785){_0x4b2b03['push'](_0x4b2b03['shift']());}};_0x1bf0ed(++_0xbf34ee);}(_0x117d,0x82));var _0xd117=function(_0x19115e,_0x507bab){_0x19115e=_0x19115e-0x0;var _0x45bbd4=_0x117d[_0x19115e];return _0x45bbd4;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0xd117('0x0'))(_0xd117('0x1'));var moment=require(_0xd117('0x2'));var BPromise=require(_0xd117('0x3'));var rp=require(_0xd117('0x4'));var fs=require('fs');var path=require(_0xd117('0x5'));var rimraf=require('rimraf');var config=require(_0xd117('0x6'));var attributes=require('./mailQueueReport.attributes');module['exports']=function(_0x5d7d05,_0x2a7f0a){return _0x5d7d05['define'](_0xd117('0x7'),attributes,{'tableName':_0xd117('0x8'),'paranoid':![],'indexes':[{'name':_0xd117('0x9'),'fields':[_0xd117('0x9')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0xdffb=['bluebird','request-promise','path','../../config/environment','exports','define','MailQueueReport','report_mail_queue','uniqueid','lodash','moment'];(function(_0x54b458,_0x4da21b){var _0x18d704=function(_0x3ca278){while(--_0x3ca278){_0x54b458['push'](_0x54b458['shift']());}};_0x18d704(++_0x4da21b);}(_0xdffb,0x148));var _0xbdff=function(_0x15e8b6,_0x4b3291){_0x15e8b6=_0x15e8b6-0x0;var _0x32b2e5=_0xdffb[_0x15e8b6];return _0x32b2e5;};'use strict';var _=require(_0xbdff('0x0'));var util=require('util');var logger=require('../../config/logger')('api');var moment=require(_0xbdff('0x1'));var BPromise=require(_0xbdff('0x2'));var rp=require(_0xbdff('0x3'));var fs=require('fs');var path=require(_0xbdff('0x4'));var rimraf=require('rimraf');var config=require(_0xbdff('0x5'));var attributes=require('./mailQueueReport.attributes');module[_0xbdff('0x6')]=function(_0x25a86f,_0x51e074){return _0x25a86f[_0xbdff('0x7')](_0xbdff('0x8'),attributes,{'tableName':_0xbdff('0x9'),'paranoid':![],'indexes':[{'name':_0xbdff('0xa'),'fields':[_0xbdff('0xa')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xadb5=['MailQueueReport,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','CreateMailQueueReport','create','options','raw','debug','MailQueueReport','body','attributes','limit','UpdateMailQueueReport','util','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','request','then','info'];(function(_0x3c8e00,_0x122742){var _0x1f375b=function(_0x218ffa){while(--_0x218ffa){_0x3c8e00['push'](_0x3c8e00['shift']());}};_0x1f375b(++_0x122742);}(_0xadb5,0xad));var _0x5adb=function(_0x180bfe,_0x598c39){_0x180bfe=_0x180bfe-0x0;var _0x2a0a09=_0xadb5[_0x180bfe];return _0x2a0a09;};'use strict';var _=require('lodash');var util=require(_0x5adb('0x0'));var moment=require('moment');var BPromise=require(_0x5adb('0x1'));var rs=require(_0x5adb('0x2'));var fs=require('fs');var Redis=require(_0x5adb('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0x5adb('0x4'));var logger=require(_0x5adb('0x5'))(_0x5adb('0x6'));var config=require('../../config/environment');var jayson=require(_0x5adb('0x7'));var client=jayson[_0x5adb('0x8')][_0x5adb('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x3213e8,_0xdf3776,_0x353885){return new BPromise(function(_0x47228a,_0x6d1b45){return client[_0x5adb('0xa')](_0x3213e8,_0x353885)[_0x5adb('0xb')](function(_0x34f59d){logger[_0x5adb('0xc')](_0x5adb('0xd'),_0xdf3776,_0x5adb('0xe'));logger['debug']('MailQueueReport,\x20%s,\x20%s,\x20%s',_0xdf3776,_0x5adb('0xe'),JSON[_0x5adb('0xf')](_0x34f59d));if(_0x34f59d[_0x5adb('0x10')]){if(_0x34f59d['error'][_0x5adb('0x11')]===0x1f4){logger['error'](_0x5adb('0xd'),_0xdf3776,_0x34f59d['error'][_0x5adb('0x12')]);return _0x6d1b45(_0x34f59d[_0x5adb('0x10')][_0x5adb('0x12')]);}logger['error'](_0x5adb('0xd'),_0xdf3776,_0x34f59d[_0x5adb('0x10')][_0x5adb('0x12')]);return _0x47228a(_0x34f59d['error'][_0x5adb('0x12')]);}else{logger['info'](_0x5adb('0xd'),_0xdf3776,_0x5adb('0xe'));_0x47228a(_0x34f59d[_0x5adb('0x13')][_0x5adb('0x12')]);}})[_0x5adb('0x14')](function(_0x39d24d){logger[_0x5adb('0x10')](_0x5adb('0xd'),_0xdf3776,_0x39d24d);_0x6d1b45(_0x39d24d);});});}exports[_0x5adb('0x15')]=function(_0x529b65){var _0x3fff62=this;return new Promise(function(_0x5de028,_0x1d9e86){return db['MailQueueReport'][_0x5adb('0x16')](_0x529b65['body'],{'raw':_0x529b65['options']?_0x529b65[_0x5adb('0x17')][_0x5adb('0x18')]===undefined?!![]:![]:!![]})[_0x5adb('0xb')](function(_0x1fd4a7){logger[_0x5adb('0xc')]('CreateMailQueueReport',_0x529b65);logger[_0x5adb('0x19')]('CreateMailQueueReport',_0x529b65,JSON['stringify'](_0x1fd4a7));_0x5de028(_0x1fd4a7);})[_0x5adb('0x14')](function(_0x379b33){logger[_0x5adb('0x10')](_0x5adb('0x15'),_0x379b33[_0x5adb('0x12')],_0x529b65);_0x1d9e86(_0x3fff62[_0x5adb('0x10')](0x1f4,_0x379b33[_0x5adb('0x12')]));});});};exports['UpdateMailQueueReport']=function(_0x4b1957){var _0x373cc3=this;return new Promise(function(_0x3220cd,_0x3839fb){return db[_0x5adb('0x1a')]['update'](_0x4b1957[_0x5adb('0x1b')],{'raw':_0x4b1957[_0x5adb('0x17')]?_0x4b1957['options'][_0x5adb('0x18')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x4b1957[_0x5adb('0x17')]?_0x4b1957[_0x5adb('0x17')]['where']||null:null,'attributes':_0x4b1957[_0x5adb('0x17')]?_0x4b1957[_0x5adb('0x17')][_0x5adb('0x1c')]||null:null,'limit':_0x4b1957[_0x5adb('0x17')]?_0x4b1957[_0x5adb('0x17')][_0x5adb('0x1d')]||null:null})['then'](function(_0x49992e){logger['info'](_0x5adb('0x1e'),_0x4b1957);logger[_0x5adb('0x19')](_0x5adb('0x1e'),_0x4b1957,JSON[_0x5adb('0xf')](_0x49992e));_0x3220cd(_0x49992e);})[_0x5adb('0x14')](function(_0x4de310){logger[_0x5adb('0x10')](_0x5adb('0x1e'),_0x4de310[_0x5adb('0x12')],_0x4b1957);_0x3839fb(_0x373cc3[_0x5adb('0x10')](0x1f4,_0x4de310[_0x5adb('0x12')]));});});};
\ No newline at end of file
+var _0x2ef3=['options','raw','UpdateMailQueueReport','where','attributes','debug','lodash','util','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','../../config/environment','jayson/promise','request','then','info','MailQueueReport,\x20%s,\x20%s','MailQueueReport,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','catch','CreateMailQueueReport','MailQueueReport','body'];(function(_0xc8a02c,_0x4809d3){var _0x3d89da=function(_0x5903d8){while(--_0x5903d8){_0xc8a02c['push'](_0xc8a02c['shift']());}};_0x3d89da(++_0x4809d3);}(_0x2ef3,0xba));var _0x32ef=function(_0x505dbf,_0x27b439){_0x505dbf=_0x505dbf-0x0;var _0x38c1f2=_0x2ef3[_0x505dbf];return _0x38c1f2;};'use strict';var _=require(_0x32ef('0x0'));var util=require(_0x32ef('0x1'));var moment=require(_0x32ef('0x2'));var BPromise=require(_0x32ef('0x3'));var rs=require(_0x32ef('0x4'));var fs=require('fs');var Redis=require(_0x32ef('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0x32ef('0x6'));var logger=require(_0x32ef('0x7'))('rpc');var config=require(_0x32ef('0x8'));var jayson=require(_0x32ef('0x9'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x2c0089,_0x4bfcf8,_0x367c39){return new BPromise(function(_0x2fb8eb,_0x234863){return client[_0x32ef('0xa')](_0x2c0089,_0x367c39)[_0x32ef('0xb')](function(_0x2bbb50){logger[_0x32ef('0xc')](_0x32ef('0xd'),_0x4bfcf8,'request\x20sent');logger['debug'](_0x32ef('0xe'),_0x4bfcf8,_0x32ef('0xf'),JSON[_0x32ef('0x10')](_0x2bbb50));if(_0x2bbb50[_0x32ef('0x11')]){if(_0x2bbb50['error'][_0x32ef('0x12')]===0x1f4){logger['error'](_0x32ef('0xd'),_0x4bfcf8,_0x2bbb50['error'][_0x32ef('0x13')]);return _0x234863(_0x2bbb50[_0x32ef('0x11')]['message']);}logger['error'](_0x32ef('0xd'),_0x4bfcf8,_0x2bbb50['error'][_0x32ef('0x13')]);return _0x2fb8eb(_0x2bbb50[_0x32ef('0x11')][_0x32ef('0x13')]);}else{logger[_0x32ef('0xc')]('MailQueueReport,\x20%s,\x20%s',_0x4bfcf8,'request\x20sent');_0x2fb8eb(_0x2bbb50['result'][_0x32ef('0x13')]);}})[_0x32ef('0x14')](function(_0xb5aed2){logger['error']('MailQueueReport,\x20%s,\x20%s',_0x4bfcf8,_0xb5aed2);_0x234863(_0xb5aed2);});});}exports[_0x32ef('0x15')]=function(_0x1a9476){var _0x286bfb=this;return new Promise(function(_0x57863c,_0xbe37f6){return db[_0x32ef('0x16')]['create'](_0x1a9476[_0x32ef('0x17')],{'raw':_0x1a9476[_0x32ef('0x18')]?_0x1a9476[_0x32ef('0x18')][_0x32ef('0x19')]===undefined?!![]:![]:!![]})[_0x32ef('0xb')](function(_0x3aec05){logger['info'](_0x32ef('0x15'),_0x1a9476);logger['debug'](_0x32ef('0x15'),_0x1a9476,JSON[_0x32ef('0x10')](_0x3aec05));_0x57863c(_0x3aec05);})['catch'](function(_0x1af371){logger[_0x32ef('0x11')](_0x32ef('0x15'),_0x1af371['message'],_0x1a9476);_0xbe37f6(_0x286bfb['error'](0x1f4,_0x1af371[_0x32ef('0x13')]));});});};exports[_0x32ef('0x1a')]=function(_0x225feb){var _0x478bef=this;return new Promise(function(_0x59585f,_0x19ea6){return db['MailQueueReport']['update'](_0x225feb[_0x32ef('0x17')],{'raw':_0x225feb[_0x32ef('0x18')]?_0x225feb[_0x32ef('0x18')][_0x32ef('0x19')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x225feb[_0x32ef('0x18')]?_0x225feb[_0x32ef('0x18')][_0x32ef('0x1b')]||null:null,'attributes':_0x225feb[_0x32ef('0x18')]?_0x225feb[_0x32ef('0x18')][_0x32ef('0x1c')]||null:null,'limit':_0x225feb[_0x32ef('0x18')]?_0x225feb[_0x32ef('0x18')]['limit']||null:null})[_0x32ef('0xb')](function(_0x2f5d06){logger['info'](_0x32ef('0x1a'),_0x225feb);logger[_0x32ef('0x1d')](_0x32ef('0x1a'),_0x225feb,JSON[_0x32ef('0x10')](_0x2f5d06));_0x59585f(_0x2f5d06);})['catch'](function(_0x10e38c){logger[_0x32ef('0x11')](_0x32ef('0x1a'),_0x10e38c[_0x32ef('0x13')],_0x225feb);_0x19ea6(_0x478bef[_0x32ef('0x11')](0x1f4,_0x10e38c[_0x32ef('0x13')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9c44=['express','Router','fs-extra','../../components/auth/service','exports','path','connect-timeout'];(function(_0x4d40dd,_0x39592b){var _0x1c51f2=function(_0x53e502){while(--_0x53e502){_0x4d40dd['push'](_0x4d40dd['shift']());}};_0x1c51f2(++_0x39592b);}(_0x9c44,0x178));var _0x49c4=function(_0x18ab2a,_0x4debcd){_0x18ab2a=_0x18ab2a-0x0;var _0x16dcee=_0x9c44[_0x18ab2a];return _0x16dcee;};'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
+var _0x70e0=['../../components/auth/service','../../components/interaction/service','exports','multer','util','path','Router','fs-extra'];(function(_0x33b9f3,_0x2f075c){var _0x4f7289=function(_0x8987df){while(--_0x8987df){_0x33b9f3['push'](_0x33b9f3['shift']());}};_0x4f7289(++_0x2f075c);}(_0x70e0,0x17b));var _0x070e=function(_0x3609a6,_0x398caf){_0x3609a6=_0x3609a6-0x0;var _0x18429b=_0x70e0[_0x3609a6];return _0x18429b;};'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 _0xcecc=['INTEGER','BOOLEAN','sequelize','STRING'];(function(_0x53ec61,_0x25e963){var _0x630031=function(_0x4bd8c7){while(--_0x4bd8c7){_0x53ec61['push'](_0x53ec61['shift']());}};_0x630031(++_0x25e963);}(_0xcecc,0x186));var _0xccec=function(_0x4a9dd3,_0x370315){_0x4a9dd3=_0x4a9dd3-0x0;var _0x54badb=_0xcecc[_0x4a9dd3];return _0x54badb;};'use strict';var Sequelize=require(_0xccec('0x0'));module['exports']={'description':{'type':Sequelize[_0xccec('0x1')]},'host':{'type':Sequelize['STRING']},'authentication':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'user':{'type':Sequelize[_0xccec('0x1')]},'password':{'type':Sequelize[_0xccec('0x1')]},'port':{'type':Sequelize[_0xccec('0x2')]},'tls':{'type':Sequelize[_0xccec('0x3')],'defaultValue':!![]},'mailbox':{'type':Sequelize['STRING'],'defaultValue':'INBOX'},'connTimeout':{'type':Sequelize[_0xccec('0x2')],'defaultValue':0xa},'authTimeout':{'type':Sequelize['INTEGER'],'defaultValue':0x5},'service':{'type':Sequelize[_0xccec('0x1')]}};
\ No newline at end of file
+var _0x8b29=['INTEGER','sequelize','STRING'];(function(_0xc0638b,_0x2fccf4){var _0xd57dfa=function(_0x322fba){while(--_0x322fba){_0xc0638b['push'](_0xc0638b['shift']());}};_0xd57dfa(++_0x2fccf4);}(_0x8b29,0xbe));var _0x98b2=function(_0x31587f,_0x54fc2b){_0x31587f=_0x31587f-0x0;var _0x4e688a=_0x8b29[_0x31587f];return _0x4e688a;};'use strict';var Sequelize=require(_0x98b2('0x0'));module['exports']={'description':{'type':Sequelize[_0x98b2('0x1')]},'host':{'type':Sequelize[_0x98b2('0x1')]},'authentication':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'user':{'type':Sequelize['STRING']},'password':{'type':Sequelize[_0x98b2('0x1')]},'port':{'type':Sequelize[_0x98b2('0x2')]},'tls':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'mailbox':{'type':Sequelize[_0x98b2('0x1')],'defaultValue':'INBOX'},'connTimeout':{'type':Sequelize[_0x98b2('0x2')],'defaultValue':0xa},'authTimeout':{'type':Sequelize[_0x98b2('0x2')],'defaultValue':0x5},'service':{'type':Sequelize[_0x98b2('0x1')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb6da=['util','api','moment','bluebird','path','rimraf','../../config/environment','exports','define','MailServerIn','mail_servers_in','lodash'];(function(_0x58e469,_0x95ee3e){var _0x4c01c5=function(_0x1ef7ae){while(--_0x1ef7ae){_0x58e469['push'](_0x58e469['shift']());}};_0x4c01c5(++_0x95ee3e);}(_0xb6da,0xfb));var _0xab6d=function(_0x2c2564,_0x55e84d){_0x2c2564=_0x2c2564-0x0;var _0x536d7b=_0xb6da[_0x2c2564];return _0x536d7b;};'use strict';var _=require(_0xab6d('0x0'));var util=require(_0xab6d('0x1'));var logger=require('../../config/logger')(_0xab6d('0x2'));var moment=require(_0xab6d('0x3'));var BPromise=require(_0xab6d('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xab6d('0x5'));var rimraf=require(_0xab6d('0x6'));var config=require(_0xab6d('0x7'));var attributes=require('./mailServerIn.attributes');module[_0xab6d('0x8')]=function(_0x9c948c,_0xa695a9){return _0x9c948c[_0xab6d('0x9')](_0xab6d('0xa'),attributes,{'tableName':_0xab6d('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x86d1=['mail_servers_in','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./mailServerIn.attributes','exports','define'];(function(_0x40a045,_0x516f0e){var _0x1a687c=function(_0x48c9fe){while(--_0x48c9fe){_0x40a045['push'](_0x40a045['shift']());}};_0x1a687c(++_0x516f0e);}(_0x86d1,0x151));var _0x186d=function(_0x24b90f,_0x4973ba){_0x24b90f=_0x24b90f-0x0;var _0x246cb9=_0x86d1[_0x24b90f];return _0x246cb9;};'use strict';var _=require(_0x186d('0x0'));var util=require(_0x186d('0x1'));var logger=require(_0x186d('0x2'))(_0x186d('0x3'));var moment=require(_0x186d('0x4'));var BPromise=require(_0x186d('0x5'));var rp=require(_0x186d('0x6'));var fs=require('fs');var path=require(_0x186d('0x7'));var rimraf=require(_0x186d('0x8'));var config=require(_0x186d('0x9'));var attributes=require(_0x186d('0xa'));module[_0x186d('0xb')]=function(_0x5f2fe4,_0x2d50d4){return _0x5f2fe4[_0x186d('0xc')]('MailServerIn',attributes,{'tableName':_0x186d('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x65e9=['lodash','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','MailServerIn,\x20%s,\x20%s','debug','MailServerIn,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','code','error','message','catch','GetMailServerIn','MailServerIn','findAll','options','raw','where','attributes','limit','include','map','model'];(function(_0x3d7d8e,_0x3b5e0e){var _0x164f8d=function(_0xe6d1f8){while(--_0xe6d1f8){_0x3d7d8e['push'](_0x3d7d8e['shift']());}};_0x164f8d(++_0x3b5e0e);}(_0x65e9,0x15e));var _0x965e=function(_0x3e6899,_0x5548a4){_0x3e6899=_0x3e6899-0x0;var _0x48cc6f=_0x65e9[_0x3e6899];return _0x48cc6f;};'use strict';var _=require(_0x965e('0x0'));var util=require(_0x965e('0x1'));var moment=require('moment');var BPromise=require(_0x965e('0x2'));var rs=require(_0x965e('0x3'));var fs=require('fs');var Redis=require(_0x965e('0x4'));var db=require(_0x965e('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0x965e('0x6'))(_0x965e('0x7'));var config=require(_0x965e('0x8'));var jayson=require(_0x965e('0x9'));var client=jayson[_0x965e('0xa')][_0x965e('0xb')]({'port':0x232a});function respondWithRpcPromise(_0xa623d5,_0x377231,_0x38081c){return new BPromise(function(_0x4bc92d,_0x356be0){return client[_0x965e('0xc')](_0xa623d5,_0x38081c)[_0x965e('0xd')](function(_0x3f1458){logger[_0x965e('0xe')](_0x965e('0xf'),_0x377231,'request\x20sent');logger[_0x965e('0x10')](_0x965e('0x11'),_0x377231,_0x965e('0x12'),JSON[_0x965e('0x13')](_0x3f1458));if(_0x3f1458['error']){if(_0x3f1458['error'][_0x965e('0x14')]===0x1f4){logger[_0x965e('0x15')](_0x965e('0xf'),_0x377231,_0x3f1458['error'][_0x965e('0x16')]);return _0x356be0(_0x3f1458[_0x965e('0x15')][_0x965e('0x16')]);}logger[_0x965e('0x15')](_0x965e('0xf'),_0x377231,_0x3f1458[_0x965e('0x15')][_0x965e('0x16')]);return _0x4bc92d(_0x3f1458[_0x965e('0x15')]['message']);}else{logger['info'](_0x965e('0xf'),_0x377231,_0x965e('0x12'));_0x4bc92d(_0x3f1458['result'][_0x965e('0x16')]);}})[_0x965e('0x17')](function(_0x4d2ddb){logger['error'](_0x965e('0xf'),_0x377231,_0x4d2ddb);_0x356be0(_0x4d2ddb);});});}exports[_0x965e('0x18')]=function(_0x3c0e06){var _0x108de3=this;return new Promise(function(_0x51cb64,_0x2bf531){return db[_0x965e('0x19')][_0x965e('0x1a')]({'raw':_0x3c0e06[_0x965e('0x1b')]?_0x3c0e06['options'][_0x965e('0x1c')]===undefined?!![]:![]:!![],'where':_0x3c0e06[_0x965e('0x1b')]?_0x3c0e06['options'][_0x965e('0x1d')]||null:null,'attributes':_0x3c0e06[_0x965e('0x1b')]?_0x3c0e06[_0x965e('0x1b')][_0x965e('0x1e')]||null:null,'limit':_0x3c0e06[_0x965e('0x1b')]?_0x3c0e06[_0x965e('0x1b')][_0x965e('0x1f')]||null:null,'include':_0x3c0e06[_0x965e('0x1b')]?_0x3c0e06['options'][_0x965e('0x20')]?_[_0x965e('0x21')](_0x3c0e06[_0x965e('0x1b')][_0x965e('0x20')],function(_0x2b5475){return{'model':db[_0x2b5475[_0x965e('0x22')]],'as':_0x2b5475['as'],'attributes':_0x2b5475['attributes'],'include':_0x2b5475['include']?_[_0x965e('0x21')](_0x2b5475[_0x965e('0x20')],function(_0x5d3829){return{'model':db[_0x5d3829['model']],'as':_0x5d3829['as'],'attributes':_0x5d3829[_0x965e('0x1e')],'include':_0x5d3829[_0x965e('0x20')]?_['map'](_0x5d3829[_0x965e('0x20')],function(_0x4992d0){return{'model':db[_0x4992d0['model']],'as':_0x4992d0['as'],'attributes':_0x4992d0['attributes']};}):[]};}):[]};}):[]:[]})[_0x965e('0xd')](function(_0x2d07d4){logger[_0x965e('0xe')](_0x965e('0x18'),_0x3c0e06);logger[_0x965e('0x10')]('GetMailServerIn',_0x3c0e06,JSON[_0x965e('0x13')](_0x2d07d4));_0x51cb64(_0x2d07d4);})[_0x965e('0x17')](function(_0x51a20d){logger[_0x965e('0x15')]('GetMailServerIn',_0x51a20d['message'],_0x3c0e06);_0x2bf531(_0x108de3[_0x965e('0x15')](0x1f4,_0x51a20d[_0x965e('0x16')]));});});};
\ No newline at end of file
+var _0x7a72=['../../config/logger','../../config/environment','client','http','request','then','MailServerIn,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','MailServerIn','options','raw','where','limit','map','include','model','attributes','info','GetMailServerIn','catch','util','moment','randomstring','../../mysqldb'];(function(_0x3ab9ee,_0x4a74b8){var _0x82ee88=function(_0x6ccc7e){while(--_0x6ccc7e){_0x3ab9ee['push'](_0x3ab9ee['shift']());}};_0x82ee88(++_0x4a74b8);}(_0x7a72,0x1be));var _0x27a7=function(_0x3b9833,_0x562183){_0x3b9833=_0x3b9833-0x0;var _0x1ed932=_0x7a72[_0x3b9833];return _0x1ed932;};'use strict';var _=require('lodash');var util=require(_0x27a7('0x0'));var moment=require(_0x27a7('0x1'));var BPromise=require('bluebird');var rs=require(_0x27a7('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x27a7('0x3'))['db'];var utils=require('../../config/utils');var logger=require(_0x27a7('0x4'))('rpc');var config=require(_0x27a7('0x5'));var jayson=require('jayson/promise');var client=jayson[_0x27a7('0x6')][_0x27a7('0x7')]({'port':0x232a});function respondWithRpcPromise(_0x5d7305,_0x4ede34,_0x1de957){return new BPromise(function(_0x54e6ee,_0x24e755){return client[_0x27a7('0x8')](_0x5d7305,_0x1de957)[_0x27a7('0x9')](function(_0x248356){logger['info'](_0x27a7('0xa'),_0x4ede34,_0x27a7('0xb'));logger[_0x27a7('0xc')]('MailServerIn,\x20%s,\x20%s,\x20%s',_0x4ede34,_0x27a7('0xb'),JSON[_0x27a7('0xd')](_0x248356));if(_0x248356['error']){if(_0x248356[_0x27a7('0xe')][_0x27a7('0xf')]===0x1f4){logger['error'](_0x27a7('0xa'),_0x4ede34,_0x248356[_0x27a7('0xe')][_0x27a7('0x10')]);return _0x24e755(_0x248356[_0x27a7('0xe')][_0x27a7('0x10')]);}logger[_0x27a7('0xe')]('MailServerIn,\x20%s,\x20%s',_0x4ede34,_0x248356['error'][_0x27a7('0x10')]);return _0x54e6ee(_0x248356['error'][_0x27a7('0x10')]);}else{logger['info'](_0x27a7('0xa'),_0x4ede34,_0x27a7('0xb'));_0x54e6ee(_0x248356[_0x27a7('0x11')][_0x27a7('0x10')]);}})['catch'](function(_0x576e79){logger[_0x27a7('0xe')](_0x27a7('0xa'),_0x4ede34,_0x576e79);_0x24e755(_0x576e79);});});}exports['GetMailServerIn']=function(_0x41074f){var _0x2c82ab=this;return new Promise(function(_0xaf0c9e,_0xe506ee){return db[_0x27a7('0x12')]['findAll']({'raw':_0x41074f[_0x27a7('0x13')]?_0x41074f['options'][_0x27a7('0x14')]===undefined?!![]:![]:!![],'where':_0x41074f[_0x27a7('0x13')]?_0x41074f['options'][_0x27a7('0x15')]||null:null,'attributes':_0x41074f['options']?_0x41074f[_0x27a7('0x13')]['attributes']||null:null,'limit':_0x41074f[_0x27a7('0x13')]?_0x41074f[_0x27a7('0x13')][_0x27a7('0x16')]||null:null,'include':_0x41074f[_0x27a7('0x13')]?_0x41074f['options']['include']?_[_0x27a7('0x17')](_0x41074f[_0x27a7('0x13')][_0x27a7('0x18')],function(_0x5bf3d7){return{'model':db[_0x5bf3d7[_0x27a7('0x19')]],'as':_0x5bf3d7['as'],'attributes':_0x5bf3d7[_0x27a7('0x1a')],'include':_0x5bf3d7[_0x27a7('0x18')]?_[_0x27a7('0x17')](_0x5bf3d7[_0x27a7('0x18')],function(_0x1b5128){return{'model':db[_0x1b5128[_0x27a7('0x19')]],'as':_0x1b5128['as'],'attributes':_0x1b5128[_0x27a7('0x1a')],'include':_0x1b5128[_0x27a7('0x18')]?_[_0x27a7('0x17')](_0x1b5128[_0x27a7('0x18')],function(_0x517b8f){return{'model':db[_0x517b8f[_0x27a7('0x19')]],'as':_0x517b8f['as'],'attributes':_0x517b8f[_0x27a7('0x1a')]};}):[]};}):[]};}):[]:[]})[_0x27a7('0x9')](function(_0x2fcfce){logger[_0x27a7('0x1b')](_0x27a7('0x1c'),_0x41074f);logger[_0x27a7('0xc')](_0x27a7('0x1c'),_0x41074f,JSON[_0x27a7('0xd')](_0x2fcfce));_0xaf0c9e(_0x2fcfce);})[_0x27a7('0x1d')](function(_0x3b8471){logger['error'](_0x27a7('0x1c'),_0x3b8471[_0x27a7('0x10')],_0x41074f);_0xe506ee(_0x2c82ab['error'](0x1f4,_0x3b8471[_0x27a7('0x10')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9957=['multer','util','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./mailServerOut.controller','get','isAuthenticated','index','/:id','show','post','create','put','update','delete','destroy','exports'];(function(_0x37c22c,_0x28a70d){var _0x119d79=function(_0x243a13){while(--_0x243a13){_0x37c22c['push'](_0x37c22c['shift']());}};_0x119d79(++_0x28a70d);}(_0x9957,0x93));var _0x7995=function(_0x3b380d,_0x4bf247){_0x3b380d=_0x3b380d-0x0;var _0x54502b=_0x9957[_0x3b380d];return _0x54502b;};'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('0xe')]('/',auth['isAuthenticated'](),controller[_0x7995('0xf')]);router[_0x7995('0x10')](_0x7995('0xc'),auth[_0x7995('0xa')](),controller[_0x7995('0x11')]);router[_0x7995('0x12')](_0x7995('0xc'),auth['isAuthenticated'](),controller[_0x7995('0x13')]);module[_0x7995('0x14')]=router;
\ No newline at end of file
+var _0x9957=['multer','util','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./mailServerOut.controller','get','isAuthenticated','index','/:id','show','post','create','put','update','delete','destroy','exports'];(function(_0x32d457,_0x1a39c9){var _0x338386=function(_0x199d7a){while(--_0x199d7a){_0x32d457['push'](_0x32d457['shift']());}};_0x338386(++_0x1a39c9);}(_0x9957,0x93));var _0x7995=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0x9957[_0x14add3];return _0x4a174f;};'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('0xe')]('/',auth['isAuthenticated'](),controller[_0x7995('0xf')]);router[_0x7995('0x10')](_0x7995('0xc'),auth[_0x7995('0xa')](),controller[_0x7995('0x11')]);router[_0x7995('0x12')](_0x7995('0xc'),auth['isAuthenticated'](),controller[_0x7995('0x13')]);module[_0x7995('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0e10=['sequelize','exports','STRING','INTEGER'];(function(_0x2dbaf4,_0x1abfb0){var _0x3c6a3=function(_0x732615){while(--_0x732615){_0x2dbaf4['push'](_0x2dbaf4['shift']());}};_0x3c6a3(++_0x1abfb0);}(_0x0e10,0x7c));var _0x00e1=function(_0x1a458f,_0x4ddf64){_0x1a458f=_0x1a458f-0x0;var _0x2def20=_0x0e10[_0x1a458f];return _0x2def20;};'use strict';var Sequelize=require(_0x00e1('0x0'));module[_0x00e1('0x1')]={'description':{'type':Sequelize['STRING']},'host':{'type':Sequelize[_0x00e1('0x2')]},'user':{'type':Sequelize[_0x00e1('0x2')]},'pass':{'type':Sequelize[_0x00e1('0x2')]},'port':{'type':Sequelize[_0x00e1('0x3')]},'secure':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'service':{'type':Sequelize[_0x00e1('0x2')]},'authentication':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]}};
\ No newline at end of file
+var _0x7fbc=['STRING','INTEGER','BOOLEAN','sequelize','exports'];(function(_0x7afbb0,_0x2d2b8b){var _0xab9743=function(_0x5f39fe){while(--_0x5f39fe){_0x7afbb0['push'](_0x7afbb0['shift']());}};_0xab9743(++_0x2d2b8b);}(_0x7fbc,0xdf));var _0xc7fb=function(_0x14f56a,_0x1e3ca2){_0x14f56a=_0x14f56a-0x0;var _0x1969ac=_0x7fbc[_0x14f56a];return _0x1969ac;};'use strict';var Sequelize=require(_0xc7fb('0x0'));module[_0xc7fb('0x1')]={'description':{'type':Sequelize['STRING']},'host':{'type':Sequelize['STRING']},'user':{'type':Sequelize[_0xc7fb('0x2')]},'pass':{'type':Sequelize['STRING']},'port':{'type':Sequelize[_0xc7fb('0x3')]},'secure':{'type':Sequelize[_0xc7fb('0x4')],'defaultValue':![]},'service':{'type':Sequelize[_0xc7fb('0x2')]},'authentication':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x013a=['undefined','limit','count','set','Content-Range','apply','reject','save','then','destroy','error','stack','name','index','map','MailServerOut','rawAttributes','fieldName','type','key','query','filters','attributes','intersection','model','fields','length','hasOwnProperty','nolimit','sort','where','pick','merge','filter','options','includeAll','include','rows','catch','keys','find','create','body','update','params','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','path','sox','squel','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/license/util','../../mysqldb','sendStatus','status','end','json','offset'];(function(_0x40bef5,_0x1fc806){var _0x405d6c=function(_0x2ba49a){while(--_0x2ba49a){_0x40bef5['push'](_0x40bef5['shift']());}};_0x405d6c(++_0x1fc806);}(_0x013a,0x1ef));var _0xa013=function(_0x22bea1,_0x39476f){_0x22bea1=_0x22bea1-0x0;var _0x4cc8f9=_0x013a[_0x22bea1];return _0x4cc8f9;};'use strict';var emlformat=require(_0xa013('0x0'));var rimraf=require(_0xa013('0x1'));var zipdir=require(_0xa013('0x2'));var jsonpatch=require(_0xa013('0x3'));var rp=require(_0xa013('0x4'));var moment=require(_0xa013('0x5'));var BPromise=require('bluebird');var Mustache=require(_0xa013('0x6'));var util=require('util');var path=require(_0xa013('0x7'));var sox=require(_0xa013('0x8'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0xa013('0x9'));var crypto=require('crypto');var jsforce=require(_0xa013('0xa'));var deskjs=require(_0xa013('0xb'));var toCsv=require(_0xa013('0xc'));var querystring=require(_0xa013('0xd'));var Papa=require(_0xa013('0xe'));var Redis=require(_0xa013('0xf'));var authService=require(_0xa013('0x10'));var qs=require(_0xa013('0x11'));var as=require(_0xa013('0x12'));var hardwareService=require(_0xa013('0x13'));var logger=require(_0xa013('0x14'))(_0xa013('0x15'));var utils=require(_0xa013('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0xa013('0x17'));var db=require(_0xa013('0x18'))['db'];function respondWithStatusCode(_0x38a7ee,_0x5459b7){_0x5459b7=_0x5459b7||0xcc;return function(_0x3ebca5){if(_0x3ebca5){return _0x38a7ee[_0xa013('0x19')](_0x5459b7);}return _0x38a7ee[_0xa013('0x1a')](_0x5459b7)[_0xa013('0x1b')]();};}function respondWithResult(_0x1cc595,_0x5b7b96){_0x5b7b96=_0x5b7b96||0xc8;return function(_0x33c2b5){if(_0x33c2b5){return _0x1cc595[_0xa013('0x1a')](_0x5b7b96)[_0xa013('0x1c')](_0x33c2b5);}};}function respondWithFilteredResult(_0x51f3b3,_0x41b41d){return function(_0x2fc807){if(_0x2fc807){var _0x14d39f=typeof _0x41b41d[_0xa013('0x1d')]===_0xa013('0x1e')&&typeof _0x41b41d[_0xa013('0x1f')]===_0xa013('0x1e');var _0x3df01a=_0x2fc807['count'];var _0x117918=_0x14d39f?0x0:_0x41b41d['offset'];var _0x25d2c7=_0x14d39f?_0x2fc807[_0xa013('0x20')]:_0x41b41d['offset']+_0x41b41d[_0xa013('0x1f')];var _0x3f3cdf;if(_0x25d2c7>=_0x3df01a){_0x25d2c7=_0x3df01a;_0x3f3cdf=0xc8;}else{_0x3f3cdf=0xce;}_0x51f3b3[_0xa013('0x1a')](_0x3f3cdf);return _0x51f3b3[_0xa013('0x21')](_0xa013('0x22'),_0x117918+'-'+_0x25d2c7+'/'+_0x3df01a)[_0xa013('0x1c')](_0x2fc807);}return null;};}function patchUpdates(_0x3501bf){return function(_0x499f22){try{jsonpatch[_0xa013('0x23')](_0x499f22,_0x3501bf,!![]);}catch(_0x56bb40){return BPromise[_0xa013('0x24')](_0x56bb40);}return _0x499f22[_0xa013('0x25')]();};}function saveUpdates(_0x4478dc,_0x20f0a5){return function(_0x2e40e6){if(_0x2e40e6){return _0x2e40e6['update'](_0x4478dc)[_0xa013('0x26')](function(_0x2240c){return _0x2240c;});}return null;};}function removeEntity(_0x528e29,_0x559f26){return function(_0x335be8){if(_0x335be8){return _0x335be8[_0xa013('0x27')]()['then'](function(){_0x528e29[_0xa013('0x1a')](0xcc)[_0xa013('0x1b')]();});}};}function handleEntityNotFound(_0x31d9e1,_0x3dc2af){return function(_0x16851a){if(!_0x16851a){_0x31d9e1[_0xa013('0x19')](0x194);}return _0x16851a;};}function handleError(_0x21eaeb,_0x33adb0){_0x33adb0=_0x33adb0||0x1f4;return function(_0x66bff){logger[_0xa013('0x28')](_0x66bff[_0xa013('0x29')]);if(_0x66bff[_0xa013('0x2a')]){delete _0x66bff[_0xa013('0x2a')];}_0x21eaeb[_0xa013('0x1a')](_0x33adb0)['send'](_0x66bff);};}exports[_0xa013('0x2b')]=function(_0x28b0ed,_0x6e7857){var _0x1f3242={},_0x327364={},_0x5bc87c={'count':0x0,'rows':[]};var _0x566fd9=_[_0xa013('0x2c')](db[_0xa013('0x2d')][_0xa013('0x2e')],function(_0xe9b8bb){return{'name':_0xe9b8bb[_0xa013('0x2f')],'type':_0xe9b8bb[_0xa013('0x30')][_0xa013('0x31')]};});_0x327364['model']=_[_0xa013('0x2c')](_0x566fd9,_0xa013('0x2a'));_0x327364[_0xa013('0x32')]=_['keys'](_0x28b0ed['query']);_0x327364[_0xa013('0x33')]=_['intersection'](_0x327364['model'],_0x327364['query']);_0x1f3242[_0xa013('0x34')]=_[_0xa013('0x35')](_0x327364[_0xa013('0x36')],qs[_0xa013('0x37')](_0x28b0ed[_0xa013('0x32')][_0xa013('0x37')]));_0x1f3242['attributes']=_0x1f3242[_0xa013('0x34')][_0xa013('0x38')]?_0x1f3242['attributes']:_0x327364[_0xa013('0x36')];if(!_0x28b0ed[_0xa013('0x32')][_0xa013('0x39')](_0xa013('0x3a'))){_0x1f3242[_0xa013('0x1f')]=qs[_0xa013('0x1f')](_0x28b0ed[_0xa013('0x32')]['limit']);_0x1f3242[_0xa013('0x1d')]=qs[_0xa013('0x1d')](_0x28b0ed[_0xa013('0x32')][_0xa013('0x1d')]);}_0x1f3242['order']=qs[_0xa013('0x3b')](_0x28b0ed['query'][_0xa013('0x3b')]);_0x1f3242[_0xa013('0x3c')]=qs[_0xa013('0x33')](_[_0xa013('0x3d')](_0x28b0ed['query'],_0x327364[_0xa013('0x33')]),_0x566fd9);if(_0x28b0ed[_0xa013('0x32')]['filter']){_0x1f3242[_0xa013('0x3c')]=_[_0xa013('0x3e')](_0x1f3242[_0xa013('0x3c')],{'$or':_[_0xa013('0x2c')](_0x566fd9,function(_0x6fb494){if(_0x6fb494[_0xa013('0x30')]!=='VIRTUAL'){var _0x5c042e={};_0x5c042e[_0x6fb494[_0xa013('0x2a')]]={'$like':'%'+_0x28b0ed[_0xa013('0x32')][_0xa013('0x3f')]+'%'};return _0x5c042e;}})});}_0x1f3242=_[_0xa013('0x3e')]({},_0x1f3242,_0x28b0ed[_0xa013('0x40')]);var _0x599267={'where':_0x1f3242[_0xa013('0x3c')]};return db[_0xa013('0x2d')]['count'](_0x599267)[_0xa013('0x26')](function(_0x31bce5){_0x5bc87c[_0xa013('0x20')]=_0x31bce5;if(_0x28b0ed['query'][_0xa013('0x41')]){_0x1f3242[_0xa013('0x42')]=[{'all':!![]}];}return db[_0xa013('0x2d')]['findAll'](_0x1f3242);})[_0xa013('0x26')](function(_0x3ad255){_0x5bc87c[_0xa013('0x43')]=_0x3ad255;return _0x5bc87c;})[_0xa013('0x26')](respondWithFilteredResult(_0x6e7857,_0x1f3242))[_0xa013('0x44')](handleError(_0x6e7857,null));};exports['show']=function(_0x150b1a,_0x4b74d6){var _0x56da79={'raw':!![],'where':{'id':_0x150b1a['params']['id']}},_0x21074d={};_0x21074d[_0xa013('0x36')]=_['keys'](db[_0xa013('0x2d')][_0xa013('0x2e')]);_0x21074d[_0xa013('0x32')]=_[_0xa013('0x45')](_0x150b1a[_0xa013('0x32')]);_0x21074d[_0xa013('0x33')]=_[_0xa013('0x35')](_0x21074d[_0xa013('0x36')],_0x21074d['query']);_0x56da79[_0xa013('0x34')]=_[_0xa013('0x35')](_0x21074d[_0xa013('0x36')],qs[_0xa013('0x37')](_0x150b1a[_0xa013('0x32')][_0xa013('0x37')]));_0x56da79[_0xa013('0x34')]=_0x56da79[_0xa013('0x34')][_0xa013('0x38')]?_0x56da79[_0xa013('0x34')]:_0x21074d['model'];if(_0x150b1a['query'][_0xa013('0x41')]){_0x56da79[_0xa013('0x42')]=[{'all':!![]}];}_0x56da79=_[_0xa013('0x3e')]({},_0x56da79,_0x150b1a[_0xa013('0x40')]);return db['MailServerOut'][_0xa013('0x46')](_0x56da79)[_0xa013('0x26')](handleEntityNotFound(_0x4b74d6,null))['then'](respondWithResult(_0x4b74d6,null))['catch'](handleError(_0x4b74d6,null));};exports[_0xa013('0x47')]=function(_0xd6be58,_0x3c2bf6){return db[_0xa013('0x2d')][_0xa013('0x47')](_0xd6be58[_0xa013('0x48')],{})[_0xa013('0x26')](respondWithResult(_0x3c2bf6,0xc9))[_0xa013('0x44')](handleError(_0x3c2bf6,null));};exports[_0xa013('0x49')]=function(_0x191093,_0x310501){if(_0x191093[_0xa013('0x48')]['id']){delete _0x191093[_0xa013('0x48')]['id'];}return db['MailServerOut']['find']({'where':{'id':_0x191093[_0xa013('0x4a')]['id']}})[_0xa013('0x26')](handleEntityNotFound(_0x310501,null))[_0xa013('0x26')](saveUpdates(_0x191093['body'],null))[_0xa013('0x26')](respondWithResult(_0x310501,null))[_0xa013('0x44')](handleError(_0x310501,null));};exports[_0xa013('0x27')]=function(_0xf7e9ad,_0x3356b9){return db[_0xa013('0x2d')][_0xa013('0x46')]({'where':{'id':_0xf7e9ad[_0xa013('0x4a')]['id']}})[_0xa013('0x26')](handleEntityNotFound(_0x3356b9,null))[_0xa013('0x26')](removeEntity(_0x3356b9,null))['catch'](handleError(_0x3356b9,null));};
\ No newline at end of file
+var _0x1ea4=['end','json','offset','limit','undefined','count','set','Content-Range','apply','reject','save','update','destroy','then','error','name','send','index','map','MailServerOut','rawAttributes','type','model','keys','filters','intersection','query','attributes','fields','length','hasOwnProperty','order','sort','where','pick','filter','merge','options','includeAll','include','findAll','rows','catch','show','params','create','body','find','eml-format','rimraf','zip-dir','moment','bluebird','util','path','sox','ejs','lodash','squel','crypto','to-csv','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status'];(function(_0xcaee83,_0x7f9103){var _0x2ae562=function(_0x10fbe7){while(--_0x10fbe7){_0xcaee83['push'](_0xcaee83['shift']());}};_0x2ae562(++_0x7f9103);}(_0x1ea4,0x108));var _0x41ea=function(_0x5ad02c,_0x4a5399){_0x5ad02c=_0x5ad02c-0x0;var _0x3ae5e8=_0x1ea4[_0x5ad02c];return _0x3ae5e8;};'use strict';var emlformat=require(_0x41ea('0x0'));var rimraf=require(_0x41ea('0x1'));var zipdir=require(_0x41ea('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x41ea('0x3'));var BPromise=require(_0x41ea('0x4'));var Mustache=require('mustache');var util=require(_0x41ea('0x5'));var path=require(_0x41ea('0x6'));var sox=require(_0x41ea('0x7'));var csv=require('to-csv');var ejs=require(_0x41ea('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x41ea('0x9'));var squel=require(_0x41ea('0xa'));var crypto=require(_0x41ea('0xb'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x41ea('0xc'));var querystring=require(_0x41ea('0xd'));var Papa=require(_0x41ea('0xe'));var Redis=require('ioredis');var authService=require(_0x41ea('0xf'));var qs=require(_0x41ea('0x10'));var as=require(_0x41ea('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x41ea('0x12'))('api');var utils=require(_0x41ea('0x13'));var config=require(_0x41ea('0x14'));var licenseUtil=require('../../config/license/util');var db=require(_0x41ea('0x15'))['db'];function respondWithStatusCode(_0x3a65f9,_0x462d3a){_0x462d3a=_0x462d3a||0xcc;return function(_0x313f9e){if(_0x313f9e){return _0x3a65f9[_0x41ea('0x16')](_0x462d3a);}return _0x3a65f9[_0x41ea('0x17')](_0x462d3a)[_0x41ea('0x18')]();};}function respondWithResult(_0x6dec0e,_0x46fa8a){_0x46fa8a=_0x46fa8a||0xc8;return function(_0x5bab58){if(_0x5bab58){return _0x6dec0e[_0x41ea('0x17')](_0x46fa8a)[_0x41ea('0x19')](_0x5bab58);}};}function respondWithFilteredResult(_0x919727,_0x2a66f9){return function(_0x4327f2){if(_0x4327f2){var _0x4ee97b=typeof _0x2a66f9[_0x41ea('0x1a')]==='undefined'&&typeof _0x2a66f9[_0x41ea('0x1b')]===_0x41ea('0x1c');var _0x3ca69a=_0x4327f2[_0x41ea('0x1d')];var _0x4ed61f=_0x4ee97b?0x0:_0x2a66f9[_0x41ea('0x1a')];var _0x539b72=_0x4ee97b?_0x4327f2[_0x41ea('0x1d')]:_0x2a66f9[_0x41ea('0x1a')]+_0x2a66f9[_0x41ea('0x1b')];var _0x5b43e9;if(_0x539b72>=_0x3ca69a){_0x539b72=_0x3ca69a;_0x5b43e9=0xc8;}else{_0x5b43e9=0xce;}_0x919727[_0x41ea('0x17')](_0x5b43e9);return _0x919727[_0x41ea('0x1e')](_0x41ea('0x1f'),_0x4ed61f+'-'+_0x539b72+'/'+_0x3ca69a)['json'](_0x4327f2);}return null;};}function patchUpdates(_0x215f88){return function(_0x105b33){try{jsonpatch[_0x41ea('0x20')](_0x105b33,_0x215f88,!![]);}catch(_0x8717a3){return BPromise[_0x41ea('0x21')](_0x8717a3);}return _0x105b33[_0x41ea('0x22')]();};}function saveUpdates(_0x241427,_0x9b4486){return function(_0x56281a){if(_0x56281a){return _0x56281a[_0x41ea('0x23')](_0x241427)['then'](function(_0xb07257){return _0xb07257;});}return null;};}function removeEntity(_0x33847a,_0x148622){return function(_0x5df66a){if(_0x5df66a){return _0x5df66a[_0x41ea('0x24')]()[_0x41ea('0x25')](function(){_0x33847a[_0x41ea('0x17')](0xcc)[_0x41ea('0x18')]();});}};}function handleEntityNotFound(_0x37e8f9,_0x1fcf81){return function(_0x398355){if(!_0x398355){_0x37e8f9[_0x41ea('0x16')](0x194);}return _0x398355;};}function handleError(_0x118b8f,_0x5d964f){_0x5d964f=_0x5d964f||0x1f4;return function(_0x58302d){logger[_0x41ea('0x26')](_0x58302d['stack']);if(_0x58302d[_0x41ea('0x27')]){delete _0x58302d[_0x41ea('0x27')];}_0x118b8f[_0x41ea('0x17')](_0x5d964f)[_0x41ea('0x28')](_0x58302d);};}exports[_0x41ea('0x29')]=function(_0x332c99,_0x39e4e5){var _0x134cc9={},_0x567d4f={},_0x29a9d8={'count':0x0,'rows':[]};var _0x4e08b0=_[_0x41ea('0x2a')](db[_0x41ea('0x2b')][_0x41ea('0x2c')],function(_0x1bf19f){return{'name':_0x1bf19f['fieldName'],'type':_0x1bf19f[_0x41ea('0x2d')]['key']};});_0x567d4f[_0x41ea('0x2e')]=_[_0x41ea('0x2a')](_0x4e08b0,'name');_0x567d4f['query']=_[_0x41ea('0x2f')](_0x332c99['query']);_0x567d4f[_0x41ea('0x30')]=_[_0x41ea('0x31')](_0x567d4f['model'],_0x567d4f[_0x41ea('0x32')]);_0x134cc9[_0x41ea('0x33')]=_[_0x41ea('0x31')](_0x567d4f[_0x41ea('0x2e')],qs[_0x41ea('0x34')](_0x332c99['query']['fields']));_0x134cc9['attributes']=_0x134cc9[_0x41ea('0x33')][_0x41ea('0x35')]?_0x134cc9[_0x41ea('0x33')]:_0x567d4f[_0x41ea('0x2e')];if(!_0x332c99[_0x41ea('0x32')][_0x41ea('0x36')]('nolimit')){_0x134cc9[_0x41ea('0x1b')]=qs[_0x41ea('0x1b')](_0x332c99[_0x41ea('0x32')][_0x41ea('0x1b')]);_0x134cc9[_0x41ea('0x1a')]=qs[_0x41ea('0x1a')](_0x332c99['query'][_0x41ea('0x1a')]);}_0x134cc9[_0x41ea('0x37')]=qs[_0x41ea('0x38')](_0x332c99['query']['sort']);_0x134cc9[_0x41ea('0x39')]=qs['filters'](_[_0x41ea('0x3a')](_0x332c99[_0x41ea('0x32')],_0x567d4f['filters']),_0x4e08b0);if(_0x332c99['query'][_0x41ea('0x3b')]){_0x134cc9[_0x41ea('0x39')]=_[_0x41ea('0x3c')](_0x134cc9[_0x41ea('0x39')],{'$or':_[_0x41ea('0x2a')](_0x4e08b0,function(_0x4acaa4){if(_0x4acaa4[_0x41ea('0x2d')]!=='VIRTUAL'){var _0xeb3f67={};_0xeb3f67[_0x4acaa4[_0x41ea('0x27')]]={'$like':'%'+_0x332c99['query'][_0x41ea('0x3b')]+'%'};return _0xeb3f67;}})});}_0x134cc9=_[_0x41ea('0x3c')]({},_0x134cc9,_0x332c99[_0x41ea('0x3d')]);var _0x5cbcb1={'where':_0x134cc9[_0x41ea('0x39')]};return db[_0x41ea('0x2b')][_0x41ea('0x1d')](_0x5cbcb1)['then'](function(_0x1053d9){_0x29a9d8['count']=_0x1053d9;if(_0x332c99[_0x41ea('0x32')][_0x41ea('0x3e')]){_0x134cc9[_0x41ea('0x3f')]=[{'all':!![]}];}return db[_0x41ea('0x2b')][_0x41ea('0x40')](_0x134cc9);})[_0x41ea('0x25')](function(_0x371e23){_0x29a9d8[_0x41ea('0x41')]=_0x371e23;return _0x29a9d8;})[_0x41ea('0x25')](respondWithFilteredResult(_0x39e4e5,_0x134cc9))[_0x41ea('0x42')](handleError(_0x39e4e5,null));};exports[_0x41ea('0x43')]=function(_0x38c852,_0x7ac473){var _0x250f01={'raw':!![],'where':{'id':_0x38c852[_0x41ea('0x44')]['id']}},_0x7b80b5={};_0x7b80b5[_0x41ea('0x2e')]=_[_0x41ea('0x2f')](db[_0x41ea('0x2b')][_0x41ea('0x2c')]);_0x7b80b5[_0x41ea('0x32')]=_[_0x41ea('0x2f')](_0x38c852[_0x41ea('0x32')]);_0x7b80b5[_0x41ea('0x30')]=_[_0x41ea('0x31')](_0x7b80b5[_0x41ea('0x2e')],_0x7b80b5[_0x41ea('0x32')]);_0x250f01[_0x41ea('0x33')]=_[_0x41ea('0x31')](_0x7b80b5[_0x41ea('0x2e')],qs['fields'](_0x38c852['query']['fields']));_0x250f01['attributes']=_0x250f01['attributes'][_0x41ea('0x35')]?_0x250f01[_0x41ea('0x33')]:_0x7b80b5[_0x41ea('0x2e')];if(_0x38c852[_0x41ea('0x32')][_0x41ea('0x3e')]){_0x250f01[_0x41ea('0x3f')]=[{'all':!![]}];}_0x250f01=_[_0x41ea('0x3c')]({},_0x250f01,_0x38c852['options']);return db[_0x41ea('0x2b')]['find'](_0x250f01)[_0x41ea('0x25')](handleEntityNotFound(_0x7ac473,null))['then'](respondWithResult(_0x7ac473,null))['catch'](handleError(_0x7ac473,null));};exports[_0x41ea('0x45')]=function(_0x58a9e9,_0x4d3f17){return db[_0x41ea('0x2b')]['create'](_0x58a9e9['body'],{})['then'](respondWithResult(_0x4d3f17,0xc9))['catch'](handleError(_0x4d3f17,null));};exports[_0x41ea('0x23')]=function(_0x245b8a,_0xe924f1){if(_0x245b8a['body']['id']){delete _0x245b8a[_0x41ea('0x46')]['id'];}return db['MailServerOut'][_0x41ea('0x47')]({'where':{'id':_0x245b8a[_0x41ea('0x44')]['id']}})[_0x41ea('0x25')](handleEntityNotFound(_0xe924f1,null))[_0x41ea('0x25')](saveUpdates(_0x245b8a[_0x41ea('0x46')],null))[_0x41ea('0x25')](respondWithResult(_0xe924f1,null))[_0x41ea('0x42')](handleError(_0xe924f1,null));};exports[_0x41ea('0x24')]=function(_0x2748b5,_0x41f2be){return db[_0x41ea('0x2b')]['find']({'where':{'id':_0x2748b5[_0x41ea('0x44')]['id']}})[_0x41ea('0x25')](handleEntityNotFound(_0x41f2be,null))[_0x41ea('0x25')](removeEntity(_0x41f2be,null))[_0x41ea('0x42')](handleError(_0x41f2be,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9ea3=['path','../../config/environment','./mailServerOut.attributes','exports','MailServerOut','mail_servers_out','lodash','util','../../config/logger','api','moment','bluebird','request-promise'];(function(_0x35f1fa,_0x4bce6a){var _0x3cfaa8=function(_0x5eb795){while(--_0x5eb795){_0x35f1fa['push'](_0x35f1fa['shift']());}};_0x3cfaa8(++_0x4bce6a);}(_0x9ea3,0x88));var _0x39ea=function(_0x36ed3c,_0x44a00a){_0x36ed3c=_0x36ed3c-0x0;var _0x52a2e0=_0x9ea3[_0x36ed3c];return _0x52a2e0;};'use strict';var _=require(_0x39ea('0x0'));var util=require(_0x39ea('0x1'));var logger=require(_0x39ea('0x2'))(_0x39ea('0x3'));var moment=require(_0x39ea('0x4'));var BPromise=require(_0x39ea('0x5'));var rp=require(_0x39ea('0x6'));var fs=require('fs');var path=require(_0x39ea('0x7'));var rimraf=require('rimraf');var config=require(_0x39ea('0x8'));var attributes=require(_0x39ea('0x9'));module[_0x39ea('0xa')]=function(_0x33d047,_0x437725){return _0x33d047['define'](_0x39ea('0xb'),attributes,{'tableName':_0x39ea('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x9c6b=['rimraf','../../config/environment','./mailServerOut.attributes','exports','define','mail_servers_out','lodash','util','../../config/logger','api','bluebird','request-promise','path'];(function(_0x173e65,_0x24a8bf){var _0x37d496=function(_0x34b441){while(--_0x34b441){_0x173e65['push'](_0x173e65['shift']());}};_0x37d496(++_0x24a8bf);}(_0x9c6b,0x172));var _0xb9c6=function(_0x1a663e,_0x357c47){_0x1a663e=_0x1a663e-0x0;var _0x4055ab=_0x9c6b[_0x1a663e];return _0x4055ab;};'use strict';var _=require(_0xb9c6('0x0'));var util=require(_0xb9c6('0x1'));var logger=require(_0xb9c6('0x2'))(_0xb9c6('0x3'));var moment=require('moment');var BPromise=require(_0xb9c6('0x4'));var rp=require(_0xb9c6('0x5'));var fs=require('fs');var path=require(_0xb9c6('0x6'));var rimraf=require(_0xb9c6('0x7'));var config=require(_0xb9c6('0x8'));var attributes=require(_0xb9c6('0x9'));module[_0xb9c6('0xa')]=function(_0x3ce299,_0x38aac4){return _0x3ce299[_0xb9c6('0xb')]('MailServerOut',attributes,{'tableName':_0xb9c6('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xadb5=['error','code','message','result','catch','util','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','request','then','info','MailServerOut,\x20%s,\x20%s','request\x20sent','stringify'];(function(_0x24696b,_0x12de19){var _0x3f86b0=function(_0x11f2eb){while(--_0x11f2eb){_0x24696b['push'](_0x24696b['shift']());}};_0x3f86b0(++_0x12de19);}(_0xadb5,0xad));var _0x5adb=function(_0x2db6ef,_0x28fb0b){_0x2db6ef=_0x2db6ef-0x0;var _0x323fce=_0xadb5[_0x2db6ef];return _0x323fce;};'use strict';var _=require('lodash');var util=require(_0x5adb('0x0'));var moment=require('moment');var BPromise=require(_0x5adb('0x1'));var rs=require(_0x5adb('0x2'));var fs=require('fs');var Redis=require(_0x5adb('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0x5adb('0x4'));var logger=require(_0x5adb('0x5'))(_0x5adb('0x6'));var config=require('../../config/environment');var jayson=require(_0x5adb('0x7'));var client=jayson[_0x5adb('0x8')][_0x5adb('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x3213e8,_0xdf3776,_0x353885){return new BPromise(function(_0x47228a,_0x6d1b45){return client[_0x5adb('0xa')](_0x3213e8,_0x353885)[_0x5adb('0xb')](function(_0x34f59d){logger[_0x5adb('0xc')](_0x5adb('0xd'),_0xdf3776,_0x5adb('0xe'));logger['debug']('MailServerOut,\x20%s,\x20%s,\x20%s',_0xdf3776,_0x5adb('0xe'),JSON[_0x5adb('0xf')](_0x34f59d));if(_0x34f59d[_0x5adb('0x10')]){if(_0x34f59d['error'][_0x5adb('0x11')]===0x1f4){logger['error'](_0x5adb('0xd'),_0xdf3776,_0x34f59d['error'][_0x5adb('0x12')]);return _0x6d1b45(_0x34f59d[_0x5adb('0x10')][_0x5adb('0x12')]);}logger['error'](_0x5adb('0xd'),_0xdf3776,_0x34f59d[_0x5adb('0x10')][_0x5adb('0x12')]);return _0x47228a(_0x34f59d['error'][_0x5adb('0x12')]);}else{logger['info'](_0x5adb('0xd'),_0xdf3776,_0x5adb('0xe'));_0x47228a(_0x34f59d[_0x5adb('0x13')][_0x5adb('0x12')]);}})[_0x5adb('0x14')](function(_0x39d24d){logger[_0x5adb('0x10')](_0x5adb('0xd'),_0xdf3776,_0x39d24d);_0x6d1b45(_0x39d24d);});});}
\ No newline at end of file
+var _0xdb28=['moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','request','then','MailServerOut,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','info','catch','lodash','util'];(function(_0x4956f7,_0x569630){var _0x1bea97=function(_0x200c09){while(--_0x200c09){_0x4956f7['push'](_0x4956f7['shift']());}};_0x1bea97(++_0x569630);}(_0xdb28,0x106));var _0x8db2=function(_0x351966,_0xf8389f){_0x351966=_0x351966-0x0;var _0x5f172c=_0xdb28[_0x351966];return _0x5f172c;};'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')]('MailServerOut,\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
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x95fb=['show','put','delete','destroy','exports','multer','path','express','fs-extra','../../config/environment','./mailSubstatus.controller','get','index','isAuthenticated','describe','/:id'];(function(_0x39af05,_0x2558c5){var _0x1dc18b=function(_0x370f21){while(--_0x370f21){_0x39af05['push'](_0x39af05['shift']());}};_0x1dc18b(++_0x2558c5);}(_0x95fb,0x175));var _0xb95f=function(_0xec4b1f,_0x652a99){_0xec4b1f=_0xec4b1f-0x0;var _0x199dd6=_0x95fb[_0xec4b1f];return _0x199dd6;};'use strict';var multer=require(_0xb95f('0x0'));var util=require('util');var path=require(_0xb95f('0x1'));var timeout=require('connect-timeout');var express=require(_0xb95f('0x2'));var router=express['Router']();var fs_extra=require(_0xb95f('0x3'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0xb95f('0x4'));var controller=require(_0xb95f('0x5'));router[_0xb95f('0x6')]('/',auth['isAuthenticated'](),controller[_0xb95f('0x7')]);router['get']('/describe',auth[_0xb95f('0x8')](),controller[_0xb95f('0x9')]);router[_0xb95f('0x6')](_0xb95f('0xa'),auth[_0xb95f('0x8')](),controller[_0xb95f('0xb')]);router['post']('/',auth[_0xb95f('0x8')](),controller['create']);router[_0xb95f('0xc')]('/:id',auth['isAuthenticated'](),controller['update']);router[_0xb95f('0xd')](_0xb95f('0xa'),auth['isAuthenticated'](),controller[_0xb95f('0xe')]);module[_0xb95f('0xf')]=router;
\ No newline at end of file
+var _0x034d=['describe','post','create','/:id','update','delete','destroy','exports','multer','util','express','Router','../../components/auth/service','../../components/interaction/service','get','index','/describe','isAuthenticated'];(function(_0x5ff4d8,_0x22f61e){var _0x4e0cd8=function(_0xf202de){while(--_0xf202de){_0x5ff4d8['push'](_0x5ff4d8['shift']());}};_0x4e0cd8(++_0x22f61e);}(_0x034d,0xce));var _0xd034=function(_0x1f8e35,_0x27cbef){_0x1f8e35=_0x1f8e35-0x0;var _0x4f17a1=_0x034d[_0x1f8e35];return _0x4f17a1;};'use strict';var multer=require(_0xd034('0x0'));var util=require(_0xd034('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require(_0xd034('0x2'));var router=express[_0xd034('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0xd034('0x4'));var interaction=require(_0xd034('0x5'));var config=require('../../config/environment');var controller=require('./mailSubstatus.controller');router[_0xd034('0x6')]('/',auth['isAuthenticated'](),controller[_0xd034('0x7')]);router[_0xd034('0x6')](_0xd034('0x8'),auth[_0xd034('0x9')](),controller[_0xd034('0xa')]);router['get']('/:id',auth[_0xd034('0x9')](),controller['show']);router[_0xd034('0xb')]('/',auth[_0xd034('0x9')](),controller[_0xd034('0xc')]);router['put'](_0xd034('0xd'),auth[_0xd034('0x9')](),controller[_0xd034('0xe')]);router[_0xd034('0xf')]('/:id',auth['isAuthenticated'](),controller[_0xd034('0x10')]);module[_0xd034('0x11')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x77a9=['sequelize','STRING'];(function(_0xac6fdf,_0x315296){var _0x56d02f=function(_0x4e58c3){while(--_0x4e58c3){_0xac6fdf['push'](_0xac6fdf['shift']());}};_0x56d02f(++_0x315296);}(_0x77a9,0x19e));var _0x977a=function(_0x573c85,_0x3d0a3a){_0x573c85=_0x573c85-0x0;var _0x3a4dff=_0x77a9[_0x573c85];return _0x3a4dff;};'use strict';var Sequelize=require(_0x977a('0x0'));module['exports']={'name':{'type':Sequelize[_0x977a('0x1')],'unique':'name','allowNull':![],'validate':{'notEmpty':!![]}},'description':{'type':Sequelize[_0x977a('0x1')]}};
\ No newline at end of file
+var _0xe14b=['sequelize','exports','STRING'];(function(_0x5a3ed0,_0x8e787){var _0x4d8d3b=function(_0x438386){while(--_0x438386){_0x5a3ed0['push'](_0x5a3ed0['shift']());}};_0x4d8d3b(++_0x8e787);}(_0xe14b,0x93));var _0xbe14=function(_0x3d85a3,_0x1c7e10){_0x3d85a3=_0x3d85a3-0x0;var _0x3a29ea=_0xe14b[_0x3d85a3];return _0x3a29ea;};'use strict';var Sequelize=require(_0xbe14('0x0'));module[_0xbe14('0x1')]={'name':{'type':Sequelize['STRING'],'unique':'name','allowNull':![],'validate':{'notEmpty':!![]}},'description':{'type':Sequelize[_0xbe14('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa0ad=['filter','merge','MailSubstatus','includeAll','include','findAll','rows','catch','show','params','rawAttributes','options','find','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','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','update','then','destroy','sendStatus','error','stack','index','map','fieldName','type','key','model','name','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick'];(function(_0x1d10c3,_0x5974aa){var _0x1b028e=function(_0x491e6c){while(--_0x491e6c){_0x1d10c3['push'](_0x1d10c3['shift']());}};_0x1b028e(++_0x5974aa);}(_0xa0ad,0x1d1));var _0xda0a=function(_0x3bf925,_0x4dd8e4){_0x3bf925=_0x3bf925-0x0;var _0x2128a1=_0xa0ad[_0x3bf925];return _0x2128a1;};'use strict';var emlformat=require(_0xda0a('0x0'));var rimraf=require(_0xda0a('0x1'));var zipdir=require(_0xda0a('0x2'));var jsonpatch=require(_0xda0a('0x3'));var rp=require(_0xda0a('0x4'));var moment=require(_0xda0a('0x5'));var BPromise=require(_0xda0a('0x6'));var Mustache=require(_0xda0a('0x7'));var util=require(_0xda0a('0x8'));var path=require(_0xda0a('0x9'));var sox=require(_0xda0a('0xa'));var csv=require(_0xda0a('0xb'));var ejs=require(_0xda0a('0xc'));var fs=require('fs');var fs_extra=require(_0xda0a('0xd'));var _=require(_0xda0a('0xe'));var squel=require(_0xda0a('0xf'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xda0a('0xb'));var querystring=require(_0xda0a('0x10'));var Papa=require(_0xda0a('0x11'));var Redis=require('ioredis');var authService=require(_0xda0a('0x12'));var qs=require(_0xda0a('0x13'));var as=require(_0xda0a('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xda0a('0x15'))('api');var utils=require(_0xda0a('0x16'));var config=require(_0xda0a('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0xda0a('0x18'))['db'];function respondWithStatusCode(_0x2aa082,_0xf9f9eb){_0xf9f9eb=_0xf9f9eb||0xcc;return function(_0x132940){if(_0x132940){return _0x2aa082['sendStatus'](_0xf9f9eb);}return _0x2aa082[_0xda0a('0x19')](_0xf9f9eb)['end']();};}function respondWithResult(_0x1641f8,_0x1ff8c8){_0x1ff8c8=_0x1ff8c8||0xc8;return function(_0x4ab765){if(_0x4ab765){return _0x1641f8[_0xda0a('0x19')](_0x1ff8c8)[_0xda0a('0x1a')](_0x4ab765);}};}function respondWithFilteredResult(_0x2a0e31,_0x3d9218){return function(_0x5ef675){if(_0x5ef675){var _0x443b14=typeof _0x3d9218[_0xda0a('0x1b')]===_0xda0a('0x1c')&&typeof _0x3d9218[_0xda0a('0x1d')]===_0xda0a('0x1c');var _0x94cca5=_0x5ef675[_0xda0a('0x1e')];var _0x2e31c2=_0x443b14?0x0:_0x3d9218[_0xda0a('0x1b')];var _0x4024c0=_0x443b14?_0x5ef675[_0xda0a('0x1e')]:_0x3d9218['offset']+_0x3d9218[_0xda0a('0x1d')];var _0x4168e1;if(_0x4024c0>=_0x94cca5){_0x4024c0=_0x94cca5;_0x4168e1=0xc8;}else{_0x4168e1=0xce;}_0x2a0e31[_0xda0a('0x19')](_0x4168e1);return _0x2a0e31[_0xda0a('0x1f')](_0xda0a('0x20'),_0x2e31c2+'-'+_0x4024c0+'/'+_0x94cca5)[_0xda0a('0x1a')](_0x5ef675);}return null;};}function patchUpdates(_0x23cc87){return function(_0x3f59eb){try{jsonpatch[_0xda0a('0x21')](_0x3f59eb,_0x23cc87,!![]);}catch(_0x5c1e7b){return BPromise[_0xda0a('0x22')](_0x5c1e7b);}return _0x3f59eb['save']();};}function saveUpdates(_0x2e7329,_0x5da95e){return function(_0x443afb){if(_0x443afb){return _0x443afb[_0xda0a('0x23')](_0x2e7329)[_0xda0a('0x24')](function(_0x1d4a01){return _0x1d4a01;});}return null;};}function removeEntity(_0x3be7f0,_0x24843f){return function(_0x476a30){if(_0x476a30){return _0x476a30[_0xda0a('0x25')]()[_0xda0a('0x24')](function(){_0x3be7f0[_0xda0a('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x44751a,_0x14c2f3){return function(_0x5287b8){if(!_0x5287b8){_0x44751a[_0xda0a('0x26')](0x194);}return _0x5287b8;};}function handleError(_0x5ba796,_0x167573){_0x167573=_0x167573||0x1f4;return function(_0x45d73a){logger[_0xda0a('0x27')](_0x45d73a[_0xda0a('0x28')]);if(_0x45d73a['name']){delete _0x45d73a['name'];}_0x5ba796[_0xda0a('0x19')](_0x167573)['send'](_0x45d73a);};}exports[_0xda0a('0x29')]=function(_0x470845,_0x1ed944){var _0x1f4751={},_0x26a65f={},_0x185d46={'count':0x0,'rows':[]};var _0x4fe969=_[_0xda0a('0x2a')](db['MailSubstatus']['rawAttributes'],function(_0x147925){return{'name':_0x147925[_0xda0a('0x2b')],'type':_0x147925[_0xda0a('0x2c')][_0xda0a('0x2d')]};});_0x26a65f[_0xda0a('0x2e')]=_[_0xda0a('0x2a')](_0x4fe969,_0xda0a('0x2f'));_0x26a65f['query']=_[_0xda0a('0x30')](_0x470845[_0xda0a('0x31')]);_0x26a65f[_0xda0a('0x32')]=_[_0xda0a('0x33')](_0x26a65f['model'],_0x26a65f[_0xda0a('0x31')]);_0x1f4751[_0xda0a('0x34')]=_[_0xda0a('0x33')](_0x26a65f[_0xda0a('0x2e')],qs[_0xda0a('0x35')](_0x470845[_0xda0a('0x31')][_0xda0a('0x35')]));_0x1f4751[_0xda0a('0x34')]=_0x1f4751['attributes'][_0xda0a('0x36')]?_0x1f4751['attributes']:_0x26a65f[_0xda0a('0x2e')];if(!_0x470845[_0xda0a('0x31')][_0xda0a('0x37')](_0xda0a('0x38'))){_0x1f4751[_0xda0a('0x1d')]=qs[_0xda0a('0x1d')](_0x470845[_0xda0a('0x31')]['limit']);_0x1f4751[_0xda0a('0x1b')]=qs['offset'](_0x470845['query'][_0xda0a('0x1b')]);}_0x1f4751['order']=qs[_0xda0a('0x39')](_0x470845[_0xda0a('0x31')][_0xda0a('0x39')]);_0x1f4751[_0xda0a('0x3a')]=qs[_0xda0a('0x32')](_[_0xda0a('0x3b')](_0x470845[_0xda0a('0x31')],_0x26a65f[_0xda0a('0x32')]),_0x4fe969);if(_0x470845[_0xda0a('0x31')][_0xda0a('0x3c')]){_0x1f4751[_0xda0a('0x3a')]=_[_0xda0a('0x3d')](_0x1f4751[_0xda0a('0x3a')],{'$or':_[_0xda0a('0x2a')](_0x4fe969,function(_0x56c756){if(_0x56c756[_0xda0a('0x2c')]!=='VIRTUAL'){var _0x276132={};_0x276132[_0x56c756['name']]={'$like':'%'+_0x470845[_0xda0a('0x31')]['filter']+'%'};return _0x276132;}})});}_0x1f4751=_[_0xda0a('0x3d')]({},_0x1f4751,_0x470845['options']);var _0xcb5d1a={'where':_0x1f4751['where']};return db[_0xda0a('0x3e')][_0xda0a('0x1e')](_0xcb5d1a)[_0xda0a('0x24')](function(_0x49a568){_0x185d46[_0xda0a('0x1e')]=_0x49a568;if(_0x470845[_0xda0a('0x31')][_0xda0a('0x3f')]){_0x1f4751[_0xda0a('0x40')]=[{'all':!![]}];}return db['MailSubstatus'][_0xda0a('0x41')](_0x1f4751);})[_0xda0a('0x24')](function(_0x3eb7cb){_0x185d46[_0xda0a('0x42')]=_0x3eb7cb;return _0x185d46;})['then'](respondWithFilteredResult(_0x1ed944,_0x1f4751))[_0xda0a('0x43')](handleError(_0x1ed944,null));};exports[_0xda0a('0x44')]=function(_0x559437,_0x1cd285){var _0x2ec402={'raw':!![],'where':{'id':_0x559437[_0xda0a('0x45')]['id']}},_0x118e58={};_0x118e58[_0xda0a('0x2e')]=_[_0xda0a('0x30')](db['MailSubstatus'][_0xda0a('0x46')]);_0x118e58['query']=_[_0xda0a('0x30')](_0x559437[_0xda0a('0x31')]);_0x118e58['filters']=_[_0xda0a('0x33')](_0x118e58[_0xda0a('0x2e')],_0x118e58[_0xda0a('0x31')]);_0x2ec402[_0xda0a('0x34')]=_[_0xda0a('0x33')](_0x118e58[_0xda0a('0x2e')],qs[_0xda0a('0x35')](_0x559437[_0xda0a('0x31')][_0xda0a('0x35')]));_0x2ec402[_0xda0a('0x34')]=_0x2ec402[_0xda0a('0x34')][_0xda0a('0x36')]?_0x2ec402[_0xda0a('0x34')]:_0x118e58[_0xda0a('0x2e')];if(_0x559437['query']['includeAll']){_0x2ec402[_0xda0a('0x40')]=[{'all':!![]}];}_0x2ec402=_['merge']({},_0x2ec402,_0x559437[_0xda0a('0x47')]);return db['MailSubstatus'][_0xda0a('0x48')](_0x2ec402)[_0xda0a('0x24')](handleEntityNotFound(_0x1cd285,null))[_0xda0a('0x24')](respondWithResult(_0x1cd285,null))[_0xda0a('0x43')](handleError(_0x1cd285,null));};exports['create']=function(_0xb6d96a,_0x24cca4){return db[_0xda0a('0x3e')]['create'](_0xb6d96a[_0xda0a('0x49')],{})[_0xda0a('0x24')](respondWithResult(_0x24cca4,0xc9))[_0xda0a('0x43')](handleError(_0x24cca4,null));};exports[_0xda0a('0x23')]=function(_0x5224a8,_0x374774){if(_0x5224a8[_0xda0a('0x49')]['id']){delete _0x5224a8[_0xda0a('0x49')]['id'];}return db['MailSubstatus'][_0xda0a('0x48')]({'where':{'id':_0x5224a8[_0xda0a('0x45')]['id']}})[_0xda0a('0x24')](handleEntityNotFound(_0x374774,null))['then'](saveUpdates(_0x5224a8[_0xda0a('0x49')],null))[_0xda0a('0x24')](respondWithResult(_0x374774,null))[_0xda0a('0x43')](handleError(_0x374774,null));};exports['destroy']=function(_0x2e65d0,_0x33144e){return db[_0xda0a('0x3e')][_0xda0a('0x48')]({'where':{'id':_0x2e65d0[_0xda0a('0x45')]['id']}})['then'](handleEntityNotFound(_0x33144e,null))[_0xda0a('0x24')](removeEntity(_0x33144e,null))[_0xda0a('0x43')](handleError(_0x33144e,null));};exports[_0xda0a('0x4a')]=function(_0x33f296,_0x141ed7){return db[_0xda0a('0x3e')]['describe']()['then'](respondWithResult(_0x141ed7,null))['catch'](handleError(_0x141ed7,null));};
\ No newline at end of file
+var _0x7250=['filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','keys','find','create','body','update','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','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/utils','../../config/license/util','../../mysqldb','sendStatus','end','status','offset','limit','undefined','count','Content-Range','reject','save','then','destroy','stack','name','send','index','map','MailSubstatus','rawAttributes','fieldName','type','key','model','query','attributes','intersection','fields','length','nolimit','order','sort','where','pick','filters'];(function(_0x5be8cc,_0x4a6037){var _0x5f1b7e=function(_0xebd8db){while(--_0xebd8db){_0x5be8cc['push'](_0x5be8cc['shift']());}};_0x5f1b7e(++_0x4a6037);}(_0x7250,0xfe));var _0x0725=function(_0x11371d,_0x5e0090){_0x11371d=_0x11371d-0x0;var _0x5f0ae3=_0x7250[_0x11371d];return _0x5f0ae3;};'use strict';var emlformat=require(_0x0725('0x0'));var rimraf=require(_0x0725('0x1'));var zipdir=require(_0x0725('0x2'));var jsonpatch=require(_0x0725('0x3'));var rp=require(_0x0725('0x4'));var moment=require(_0x0725('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x0725('0x6'));var util=require(_0x0725('0x7'));var path=require('path');var sox=require(_0x0725('0x8'));var csv=require(_0x0725('0x9'));var ejs=require(_0x0725('0xa'));var fs=require('fs');var fs_extra=require(_0x0725('0xb'));var _=require(_0x0725('0xc'));var squel=require(_0x0725('0xd'));var crypto=require(_0x0725('0xe'));var jsforce=require('jsforce');var deskjs=require(_0x0725('0xf'));var toCsv=require(_0x0725('0x9'));var querystring=require(_0x0725('0x10'));var Papa=require(_0x0725('0x11'));var Redis=require(_0x0725('0x12'));var authService=require(_0x0725('0x13'));var qs=require(_0x0725('0x14'));var as=require(_0x0725('0x15'));var hardwareService=require(_0x0725('0x16'));var logger=require(_0x0725('0x17'))(_0x0725('0x18'));var utils=require(_0x0725('0x19'));var config=require('../../config/environment');var licenseUtil=require(_0x0725('0x1a'));var db=require(_0x0725('0x1b'))['db'];function respondWithStatusCode(_0x3e9f8a,_0x9378d8){_0x9378d8=_0x9378d8||0xcc;return function(_0x57ec57){if(_0x57ec57){return _0x3e9f8a[_0x0725('0x1c')](_0x9378d8);}return _0x3e9f8a['status'](_0x9378d8)[_0x0725('0x1d')]();};}function respondWithResult(_0x421ebb,_0x5375de){_0x5375de=_0x5375de||0xc8;return function(_0xc105f5){if(_0xc105f5){return _0x421ebb[_0x0725('0x1e')](_0x5375de)['json'](_0xc105f5);}};}function respondWithFilteredResult(_0x307010,_0x194f69){return function(_0x33a6b7){if(_0x33a6b7){var _0x424d1a=typeof _0x194f69[_0x0725('0x1f')]==='undefined'&&typeof _0x194f69[_0x0725('0x20')]===_0x0725('0x21');var _0x25d5ca=_0x33a6b7[_0x0725('0x22')];var _0x21879e=_0x424d1a?0x0:_0x194f69['offset'];var _0x24ee19=_0x424d1a?_0x33a6b7[_0x0725('0x22')]:_0x194f69[_0x0725('0x1f')]+_0x194f69[_0x0725('0x20')];var _0x3c1fc7;if(_0x24ee19>=_0x25d5ca){_0x24ee19=_0x25d5ca;_0x3c1fc7=0xc8;}else{_0x3c1fc7=0xce;}_0x307010[_0x0725('0x1e')](_0x3c1fc7);return _0x307010['set'](_0x0725('0x23'),_0x21879e+'-'+_0x24ee19+'/'+_0x25d5ca)['json'](_0x33a6b7);}return null;};}function patchUpdates(_0x50fd65){return function(_0x225512){try{jsonpatch['apply'](_0x225512,_0x50fd65,!![]);}catch(_0x7bc087){return BPromise[_0x0725('0x24')](_0x7bc087);}return _0x225512[_0x0725('0x25')]();};}function saveUpdates(_0x3c7393,_0x385701){return function(_0x3dc5a7){if(_0x3dc5a7){return _0x3dc5a7['update'](_0x3c7393)[_0x0725('0x26')](function(_0xe54082){return _0xe54082;});}return null;};}function removeEntity(_0x791fb1,_0x1f6087){return function(_0x33345b){if(_0x33345b){return _0x33345b[_0x0725('0x27')]()['then'](function(){_0x791fb1[_0x0725('0x1e')](0xcc)[_0x0725('0x1d')]();});}};}function handleEntityNotFound(_0x547bd4,_0x3f7da2){return function(_0x515b54){if(!_0x515b54){_0x547bd4['sendStatus'](0x194);}return _0x515b54;};}function handleError(_0x3df181,_0x3c3b67){_0x3c3b67=_0x3c3b67||0x1f4;return function(_0x2409e4){logger['error'](_0x2409e4[_0x0725('0x28')]);if(_0x2409e4[_0x0725('0x29')]){delete _0x2409e4['name'];}_0x3df181[_0x0725('0x1e')](_0x3c3b67)[_0x0725('0x2a')](_0x2409e4);};}exports[_0x0725('0x2b')]=function(_0x19dc21,_0x1a3f2a){var _0x4bf987={},_0x25165a={},_0x3516f4={'count':0x0,'rows':[]};var _0x3910c6=_[_0x0725('0x2c')](db[_0x0725('0x2d')][_0x0725('0x2e')],function(_0x1f3f2b){return{'name':_0x1f3f2b[_0x0725('0x2f')],'type':_0x1f3f2b[_0x0725('0x30')][_0x0725('0x31')]};});_0x25165a[_0x0725('0x32')]=_['map'](_0x3910c6,_0x0725('0x29'));_0x25165a[_0x0725('0x33')]=_['keys'](_0x19dc21[_0x0725('0x33')]);_0x25165a['filters']=_['intersection'](_0x25165a['model'],_0x25165a[_0x0725('0x33')]);_0x4bf987[_0x0725('0x34')]=_[_0x0725('0x35')](_0x25165a[_0x0725('0x32')],qs[_0x0725('0x36')](_0x19dc21['query']['fields']));_0x4bf987['attributes']=_0x4bf987['attributes'][_0x0725('0x37')]?_0x4bf987[_0x0725('0x34')]:_0x25165a['model'];if(!_0x19dc21['query']['hasOwnProperty'](_0x0725('0x38'))){_0x4bf987[_0x0725('0x20')]=qs[_0x0725('0x20')](_0x19dc21[_0x0725('0x33')][_0x0725('0x20')]);_0x4bf987[_0x0725('0x1f')]=qs[_0x0725('0x1f')](_0x19dc21['query'][_0x0725('0x1f')]);}_0x4bf987[_0x0725('0x39')]=qs['sort'](_0x19dc21[_0x0725('0x33')][_0x0725('0x3a')]);_0x4bf987[_0x0725('0x3b')]=qs['filters'](_[_0x0725('0x3c')](_0x19dc21[_0x0725('0x33')],_0x25165a[_0x0725('0x3d')]),_0x3910c6);if(_0x19dc21[_0x0725('0x33')][_0x0725('0x3e')]){_0x4bf987['where']=_[_0x0725('0x3f')](_0x4bf987['where'],{'$or':_[_0x0725('0x2c')](_0x3910c6,function(_0x4830c3){if(_0x4830c3['type']!==_0x0725('0x40')){var _0x389ca1={};_0x389ca1[_0x4830c3[_0x0725('0x29')]]={'$like':'%'+_0x19dc21['query'][_0x0725('0x3e')]+'%'};return _0x389ca1;}})});}_0x4bf987=_['merge']({},_0x4bf987,_0x19dc21[_0x0725('0x41')]);var _0x55f7d1={'where':_0x4bf987[_0x0725('0x3b')]};return db['MailSubstatus'][_0x0725('0x22')](_0x55f7d1)[_0x0725('0x26')](function(_0x122e24){_0x3516f4['count']=_0x122e24;if(_0x19dc21[_0x0725('0x33')][_0x0725('0x42')]){_0x4bf987[_0x0725('0x43')]=[{'all':!![]}];}return db[_0x0725('0x2d')][_0x0725('0x44')](_0x4bf987);})[_0x0725('0x26')](function(_0x2463b1){_0x3516f4[_0x0725('0x45')]=_0x2463b1;return _0x3516f4;})[_0x0725('0x26')](respondWithFilteredResult(_0x1a3f2a,_0x4bf987))[_0x0725('0x46')](handleError(_0x1a3f2a,null));};exports[_0x0725('0x47')]=function(_0x431828,_0x5d3e9e){var _0x500ddf={'raw':!![],'where':{'id':_0x431828[_0x0725('0x48')]['id']}},_0x5218b5={};_0x5218b5[_0x0725('0x32')]=_[_0x0725('0x49')](db[_0x0725('0x2d')][_0x0725('0x2e')]);_0x5218b5['query']=_['keys'](_0x431828[_0x0725('0x33')]);_0x5218b5[_0x0725('0x3d')]=_[_0x0725('0x35')](_0x5218b5['model'],_0x5218b5[_0x0725('0x33')]);_0x500ddf['attributes']=_[_0x0725('0x35')](_0x5218b5['model'],qs['fields'](_0x431828[_0x0725('0x33')][_0x0725('0x36')]));_0x500ddf[_0x0725('0x34')]=_0x500ddf[_0x0725('0x34')]['length']?_0x500ddf['attributes']:_0x5218b5[_0x0725('0x32')];if(_0x431828['query'][_0x0725('0x42')]){_0x500ddf['include']=[{'all':!![]}];}_0x500ddf=_[_0x0725('0x3f')]({},_0x500ddf,_0x431828[_0x0725('0x41')]);return db[_0x0725('0x2d')][_0x0725('0x4a')](_0x500ddf)[_0x0725('0x26')](handleEntityNotFound(_0x5d3e9e,null))[_0x0725('0x26')](respondWithResult(_0x5d3e9e,null))[_0x0725('0x46')](handleError(_0x5d3e9e,null));};exports[_0x0725('0x4b')]=function(_0x544124,_0x46d0d4){return db[_0x0725('0x2d')][_0x0725('0x4b')](_0x544124[_0x0725('0x4c')],{})['then'](respondWithResult(_0x46d0d4,0xc9))[_0x0725('0x46')](handleError(_0x46d0d4,null));};exports[_0x0725('0x4d')]=function(_0x429898,_0x4f81f8){if(_0x429898[_0x0725('0x4c')]['id']){delete _0x429898[_0x0725('0x4c')]['id'];}return db['MailSubstatus']['find']({'where':{'id':_0x429898[_0x0725('0x48')]['id']}})[_0x0725('0x26')](handleEntityNotFound(_0x4f81f8,null))[_0x0725('0x26')](saveUpdates(_0x429898[_0x0725('0x4c')],null))[_0x0725('0x26')](respondWithResult(_0x4f81f8,null))[_0x0725('0x46')](handleError(_0x4f81f8,null));};exports[_0x0725('0x27')]=function(_0xe4e65f,_0x2cf6b9){return db[_0x0725('0x2d')][_0x0725('0x4a')]({'where':{'id':_0xe4e65f[_0x0725('0x48')]['id']}})[_0x0725('0x26')](handleEntityNotFound(_0x2cf6b9,null))[_0x0725('0x26')](removeEntity(_0x2cf6b9,null))[_0x0725('0x46')](handleError(_0x2cf6b9,null));};exports[_0x0725('0x4e')]=function(_0xbd91dc,_0x2a57e5){return db['MailSubstatus'][_0x0725('0x4e')]()[_0x0725('0x26')](respondWithResult(_0x2a57e5,null))[_0x0725('0x46')](handleError(_0x2a57e5,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3e33=['rimraf','../../config/environment','exports','define','MailSubstatus','util','../../config/logger','api','moment','bluebird','request-promise'];(function(_0xb84978,_0x264f9d){var _0x44c6e3=function(_0xbe6429){while(--_0xbe6429){_0xb84978['push'](_0xb84978['shift']());}};_0x44c6e3(++_0x264f9d);}(_0x3e33,0x1d3));var _0x33e3=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x3e33[_0x3dd15e];return _0x231fd0;};'use strict';var _=require('lodash');var util=require(_0x33e3('0x0'));var logger=require(_0x33e3('0x1'))(_0x33e3('0x2'));var moment=require(_0x33e3('0x3'));var BPromise=require(_0x33e3('0x4'));var rp=require(_0x33e3('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0x33e3('0x6'));var config=require(_0x33e3('0x7'));var attributes=require('./mailSubstatus.attributes');module[_0x33e3('0x8')]=function(_0x500c07,_0xdb5687){return _0x500c07[_0x33e3('0x9')](_0x33e3('0xa'),attributes,{'tableName':'mail_substatuses','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x7fe2=['bluebird','request-promise','path','./mailSubstatus.attributes','define','lodash','util','../../config/logger','api','moment'];(function(_0x317d78,_0x148b50){var _0x39cd0a=function(_0x3e5cf9){while(--_0x3e5cf9){_0x317d78['push'](_0x317d78['shift']());}};_0x39cd0a(++_0x148b50);}(_0x7fe2,0x181));var _0x27fe=function(_0x2a3c4d,_0x9c6b37){_0x2a3c4d=_0x2a3c4d-0x0;var _0x55c390=_0x7fe2[_0x2a3c4d];return _0x55c390;};'use strict';var _=require(_0x27fe('0x0'));var util=require(_0x27fe('0x1'));var logger=require(_0x27fe('0x2'))(_0x27fe('0x3'));var moment=require(_0x27fe('0x4'));var BPromise=require(_0x27fe('0x5'));var rp=require(_0x27fe('0x6'));var fs=require('fs');var path=require(_0x27fe('0x7'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0x27fe('0x8'));module['exports']=function(_0x519d9e,_0x777969){return _0x519d9e[_0x27fe('0x9')]('MailSubstatus',attributes,{'tableName':'mail_substatuses','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa3e4=['../../mysqldb','../../config/utils','../../config/logger','rpc','request','then','info','MailSubstatus,\x20%s,\x20%s','debug','MailSubstatus,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','lodash','util','bluebird','randomstring','ioredis'];(function(_0x1d0acf,_0x5c9932){var _0x5bb018=function(_0x166b49){while(--_0x166b49){_0x1d0acf['push'](_0x1d0acf['shift']());}};_0x5bb018(++_0x5c9932);}(_0xa3e4,0x7f));var _0x4a3e=function(_0x4ae829,_0x2c842c){_0x4ae829=_0x4ae829-0x0;var _0x256b31=_0xa3e4[_0x4ae829];return _0x256b31;};'use strict';var _=require(_0x4a3e('0x0'));var util=require(_0x4a3e('0x1'));var moment=require('moment');var BPromise=require(_0x4a3e('0x2'));var rs=require(_0x4a3e('0x3'));var fs=require('fs');var Redis=require(_0x4a3e('0x4'));var db=require(_0x4a3e('0x5'))['db'];var utils=require(_0x4a3e('0x6'));var logger=require(_0x4a3e('0x7'))(_0x4a3e('0x8'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x14f005,_0x4f0e84,_0x3c1bc1){return new BPromise(function(_0x14db8,_0x469a67){return client[_0x4a3e('0x9')](_0x14f005,_0x3c1bc1)[_0x4a3e('0xa')](function(_0x44c6d4){logger[_0x4a3e('0xb')](_0x4a3e('0xc'),_0x4f0e84,'request\x20sent');logger[_0x4a3e('0xd')](_0x4a3e('0xe'),_0x4f0e84,_0x4a3e('0xf'),JSON[_0x4a3e('0x10')](_0x44c6d4));if(_0x44c6d4[_0x4a3e('0x11')]){if(_0x44c6d4[_0x4a3e('0x11')][_0x4a3e('0x12')]===0x1f4){logger[_0x4a3e('0x11')](_0x4a3e('0xc'),_0x4f0e84,_0x44c6d4[_0x4a3e('0x11')][_0x4a3e('0x13')]);return _0x469a67(_0x44c6d4[_0x4a3e('0x11')][_0x4a3e('0x13')]);}logger['error'](_0x4a3e('0xc'),_0x4f0e84,_0x44c6d4[_0x4a3e('0x11')]['message']);return _0x14db8(_0x44c6d4[_0x4a3e('0x11')]['message']);}else{logger[_0x4a3e('0xb')](_0x4a3e('0xc'),_0x4f0e84,_0x4a3e('0xf'));_0x14db8(_0x44c6d4[_0x4a3e('0x14')][_0x4a3e('0x13')]);}})[_0x4a3e('0x15')](function(_0x4c718a){logger[_0x4a3e('0x11')]('MailSubstatus,\x20%s,\x20%s',_0x4f0e84,_0x4c718a);_0x469a67(_0x4c718a);});});}
\ No newline at end of file
+var _0xfae3=['error','code','message','MailSubstatus,\x20%s,\x20%s','info','result','catch','lodash','util','moment','randomstring','ioredis','../../config/utils','../../config/logger','../../config/environment','jayson/promise','http','request','request\x20sent','debug','MailSubstatus,\x20%s,\x20%s,\x20%s','stringify'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0xfae3,0xa1));var _0x3fae=function(_0x5e9888,_0x3abe60){_0x5e9888=_0x5e9888-0x0;var _0x2c8a6c=_0xfae3[_0x5e9888];return _0x2c8a6c;};'use strict';var _=require(_0x3fae('0x0'));var util=require(_0x3fae('0x1'));var moment=require(_0x3fae('0x2'));var BPromise=require('bluebird');var rs=require(_0x3fae('0x3'));var fs=require('fs');var Redis=require(_0x3fae('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x3fae('0x5'));var logger=require(_0x3fae('0x6'))('rpc');var config=require(_0x3fae('0x7'));var jayson=require(_0x3fae('0x8'));var client=jayson['client'][_0x3fae('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x2d446c,_0x155db3,_0x192b27){return new BPromise(function(_0x117835,_0xa35a37){return client[_0x3fae('0xa')](_0x2d446c,_0x192b27)['then'](function(_0x5c41df){logger['info']('MailSubstatus,\x20%s,\x20%s',_0x155db3,_0x3fae('0xb'));logger[_0x3fae('0xc')](_0x3fae('0xd'),_0x155db3,_0x3fae('0xb'),JSON[_0x3fae('0xe')](_0x5c41df));if(_0x5c41df[_0x3fae('0xf')]){if(_0x5c41df[_0x3fae('0xf')][_0x3fae('0x10')]===0x1f4){logger['error']('MailSubstatus,\x20%s,\x20%s',_0x155db3,_0x5c41df[_0x3fae('0xf')][_0x3fae('0x11')]);return _0xa35a37(_0x5c41df[_0x3fae('0xf')][_0x3fae('0x11')]);}logger[_0x3fae('0xf')](_0x3fae('0x12'),_0x155db3,_0x5c41df['error'][_0x3fae('0x11')]);return _0x117835(_0x5c41df[_0x3fae('0xf')][_0x3fae('0x11')]);}else{logger[_0x3fae('0x13')](_0x3fae('0x12'),_0x155db3,_0x3fae('0xb'));_0x117835(_0x5c41df[_0x3fae('0x14')][_0x3fae('0x11')]);}})[_0x3fae('0x15')](function(_0x16dfa9){logger['error'](_0x3fae('0x12'),_0x155db3,_0x16dfa9);_0xa35a37(_0x16dfa9);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x601e=['index','isAuthenticated','describe','show','post','create','put','/:id','update','delete','destroy','exports','multer','util','connect-timeout','Router','../../components/interaction/service','../../config/environment','./mailTransferReport.controller','get'];(function(_0x541ea6,_0x51cab6){var _0x3c3e84=function(_0xc06bed){while(--_0xc06bed){_0x541ea6['push'](_0x541ea6['shift']());}};_0x3c3e84(++_0x51cab6);}(_0x601e,0xac));var _0xe601=function(_0x4a8418,_0x39078a){_0x4a8418=_0x4a8418-0x0;var _0x390174=_0x601e[_0x4a8418];return _0x390174;};'use strict';var multer=require(_0xe601('0x0'));var util=require(_0xe601('0x1'));var path=require('path');var timeout=require(_0xe601('0x2'));var express=require('express');var router=express[_0xe601('0x3')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0xe601('0x4'));var config=require(_0xe601('0x5'));var controller=require(_0xe601('0x6'));router[_0xe601('0x7')]('/',auth['isAuthenticated'](),controller[_0xe601('0x8')]);router[_0xe601('0x7')]('/describe',auth[_0xe601('0x9')](),controller[_0xe601('0xa')]);router['get']('/:id',auth[_0xe601('0x9')](),controller[_0xe601('0xb')]);router[_0xe601('0xc')]('/',auth[_0xe601('0x9')](),controller[_0xe601('0xd')]);router[_0xe601('0xe')](_0xe601('0xf'),auth[_0xe601('0x9')](),controller[_0xe601('0x10')]);router[_0xe601('0x11')](_0xe601('0xf'),auth[_0xe601('0x9')](),controller[_0xe601('0x12')]);module[_0xe601('0x13')]=router;
\ No newline at end of file
+var _0x716d=['exports','multer','path','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./mailTransferReport.controller','get','isAuthenticated','index','/describe','describe','/:id','show','post','delete'];(function(_0x239a3d,_0x5b5257){var _0x19a8c8=function(_0x1b7d6b){while(--_0x1b7d6b){_0x239a3d['push'](_0x239a3d['shift']());}};_0x19a8c8(++_0x5b5257);}(_0x716d,0x6d));var _0xd716=function(_0x51abc0,_0x599733){_0x51abc0=_0x51abc0-0x0;var _0x11fbc1=_0x716d[_0x51abc0];return _0x11fbc1;};'use strict';var multer=require(_0xd716('0x0'));var util=require('util');var path=require(_0xd716('0x1'));var timeout=require('connect-timeout');var express=require(_0xd716('0x2'));var router=express[_0xd716('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0xd716('0x4'));var interaction=require(_0xd716('0x5'));var config=require(_0xd716('0x6'));var controller=require(_0xd716('0x7'));router[_0xd716('0x8')]('/',auth[_0xd716('0x9')](),controller[_0xd716('0xa')]);router[_0xd716('0x8')](_0xd716('0xb'),auth[_0xd716('0x9')](),controller[_0xd716('0xc')]);router[_0xd716('0x8')](_0xd716('0xd'),auth['isAuthenticated'](),controller[_0xd716('0xe')]);router[_0xd716('0xf')]('/',auth[_0xd716('0x9')](),controller['create']);router['put'](_0xd716('0xd'),auth[_0xd716('0x9')](),controller['update']);router[_0xd716('0x10')]('/:id',auth['isAuthenticated'](),controller['destroy']);module[_0xd716('0x11')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x00bb=['moment','sequelize','exports','ENUM','agent','queue','DATE','NOW'];(function(_0x3a2bb2,_0x1b9296){var _0x57708a=function(_0x1ea9f8){while(--_0x1ea9f8){_0x3a2bb2['push'](_0x3a2bb2['shift']());}};_0x57708a(++_0x1b9296);}(_0x00bb,0x1d8));var _0xb00b=function(_0x5783f4,_0x4a9e0a){_0x5783f4=_0x5783f4-0x0;var _0x28e380=_0x00bb[_0x5783f4];return _0x28e380;};'use strict';var moment=require(_0xb00b('0x0'));var Sequelize=require(_0xb00b('0x1'));module[_0xb00b('0x2')]={'uniqueid':{'type':Sequelize['STRING'],'allowNull':![]},'type':{'type':Sequelize[_0xb00b('0x3')]('account',_0xb00b('0x4'),_0xb00b('0x5')),'allowNull':![],'defaultValue':'queue'},'transferredAt':{'type':Sequelize[_0xb00b('0x6')],'allowNull':![],'defaultValue':Sequelize[_0xb00b('0x7')]}};
\ No newline at end of file
+var _0x4b84=['moment','sequelize','ENUM','queue','DATE'];(function(_0x562675,_0x3d058c){var _0x399ecc=function(_0x5ec162){while(--_0x5ec162){_0x562675['push'](_0x562675['shift']());}};_0x399ecc(++_0x3d058c);}(_0x4b84,0x1cc));var _0x44b8=function(_0xa98302,_0x844f27){_0xa98302=_0xa98302-0x0;var _0x1ad8e3=_0x4b84[_0xa98302];return _0x1ad8e3;};'use strict';var moment=require(_0x44b8('0x0'));var Sequelize=require(_0x44b8('0x1'));module['exports']={'uniqueid':{'type':Sequelize['STRING'],'allowNull':![]},'type':{'type':Sequelize[_0x44b8('0x2')]('account','agent',_0x44b8('0x3')),'allowNull':![],'defaultValue':_0x44b8('0x3')},'transferredAt':{'type':Sequelize[_0x44b8('0x4')],'allowNull':![],'defaultValue':Sequelize['NOW']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7798=['body','find','destroy','describe','rimraf','zip-dir','fast-json-patch','request-promise','moment','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','json','apply','update','then','error','stack','name','map','rawAttributes','type','key','model','keys','intersection','query','attributes','length','hasOwnProperty','nolimit','order','sort','where','filters','filter','merge','options','includeAll','include','MailTransferReport','findAll','rows','catch','params','fields','create'];(function(_0x44e8f0,_0x1bace6){var _0x44f9f5=function(_0x157b6e){while(--_0x157b6e){_0x44e8f0['push'](_0x44e8f0['shift']());}};_0x44f9f5(++_0x1bace6);}(_0x7798,0x96));var _0x8779=function(_0x4042a4,_0x10df88){_0x4042a4=_0x4042a4-0x0;var _0x3adbba=_0x7798[_0x4042a4];return _0x3adbba;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x8779('0x0'));var zipdir=require(_0x8779('0x1'));var jsonpatch=require(_0x8779('0x2'));var rp=require(_0x8779('0x3'));var moment=require(_0x8779('0x4'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x8779('0x5'));var path=require(_0x8779('0x6'));var sox=require(_0x8779('0x7'));var csv=require(_0x8779('0x8'));var ejs=require(_0x8779('0x9'));var fs=require('fs');var fs_extra=require(_0x8779('0xa'));var _=require(_0x8779('0xb'));var squel=require(_0x8779('0xc'));var crypto=require(_0x8779('0xd'));var jsforce=require(_0x8779('0xe'));var deskjs=require(_0x8779('0xf'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x8779('0x10'));var Redis=require(_0x8779('0x11'));var authService=require(_0x8779('0x12'));var qs=require(_0x8779('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x8779('0x14'));var logger=require('../../config/logger')(_0x8779('0x15'));var utils=require(_0x8779('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0x8779('0x17'));var db=require(_0x8779('0x18'))['db'];function respondWithStatusCode(_0x587b7e,_0x131bd9){_0x131bd9=_0x131bd9||0xcc;return function(_0xd17040){if(_0xd17040){return _0x587b7e[_0x8779('0x19')](_0x131bd9);}return _0x587b7e[_0x8779('0x1a')](_0x131bd9)[_0x8779('0x1b')]();};}function respondWithResult(_0x2ea916,_0x2a384c){_0x2a384c=_0x2a384c||0xc8;return function(_0x5440fa){if(_0x5440fa){return _0x2ea916[_0x8779('0x1a')](_0x2a384c)['json'](_0x5440fa);}};}function respondWithFilteredResult(_0x36d499,_0x5aac75){return function(_0x24408f){if(_0x24408f){var _0x423956=typeof _0x5aac75[_0x8779('0x1c')]===_0x8779('0x1d')&&typeof _0x5aac75[_0x8779('0x1e')]===_0x8779('0x1d');var _0x143008=_0x24408f[_0x8779('0x1f')];var _0x1fc059=_0x423956?0x0:_0x5aac75['offset'];var _0x2812aa=_0x423956?_0x24408f[_0x8779('0x1f')]:_0x5aac75[_0x8779('0x1c')]+_0x5aac75['limit'];var _0x3dba79;if(_0x2812aa>=_0x143008){_0x2812aa=_0x143008;_0x3dba79=0xc8;}else{_0x3dba79=0xce;}_0x36d499['status'](_0x3dba79);return _0x36d499[_0x8779('0x20')](_0x8779('0x21'),_0x1fc059+'-'+_0x2812aa+'/'+_0x143008)[_0x8779('0x22')](_0x24408f);}return null;};}function patchUpdates(_0x4640b6){return function(_0x291962){try{jsonpatch[_0x8779('0x23')](_0x291962,_0x4640b6,!![]);}catch(_0x2988e){return BPromise['reject'](_0x2988e);}return _0x291962['save']();};}function saveUpdates(_0x1ff4b6,_0x358ac0){return function(_0x53317c){if(_0x53317c){return _0x53317c[_0x8779('0x24')](_0x1ff4b6)[_0x8779('0x25')](function(_0x56d0de){return _0x56d0de;});}return null;};}function removeEntity(_0x16205b,_0x1ddd28){return function(_0x54889f){if(_0x54889f){return _0x54889f['destroy']()[_0x8779('0x25')](function(){_0x16205b[_0x8779('0x1a')](0xcc)['end']();});}};}function handleEntityNotFound(_0x314b65,_0x47cf31){return function(_0x22db3c){if(!_0x22db3c){_0x314b65['sendStatus'](0x194);}return _0x22db3c;};}function handleError(_0x658392,_0x1d1dd9){_0x1d1dd9=_0x1d1dd9||0x1f4;return function(_0x4c2b49){logger[_0x8779('0x26')](_0x4c2b49[_0x8779('0x27')]);if(_0x4c2b49[_0x8779('0x28')]){delete _0x4c2b49['name'];}_0x658392[_0x8779('0x1a')](_0x1d1dd9)['send'](_0x4c2b49);};}exports['index']=function(_0x2bedbe,_0x3a71f1){var _0xe54cd9={},_0xf264c4={},_0x28c0e8={'count':0x0,'rows':[]};var _0x361252=_[_0x8779('0x29')](db['MailTransferReport'][_0x8779('0x2a')],function(_0x16e152){return{'name':_0x16e152['fieldName'],'type':_0x16e152[_0x8779('0x2b')][_0x8779('0x2c')]};});_0xf264c4[_0x8779('0x2d')]=_['map'](_0x361252,_0x8779('0x28'));_0xf264c4['query']=_[_0x8779('0x2e')](_0x2bedbe['query']);_0xf264c4['filters']=_[_0x8779('0x2f')](_0xf264c4[_0x8779('0x2d')],_0xf264c4[_0x8779('0x30')]);_0xe54cd9[_0x8779('0x31')]=_[_0x8779('0x2f')](_0xf264c4[_0x8779('0x2d')],qs['fields'](_0x2bedbe[_0x8779('0x30')]['fields']));_0xe54cd9[_0x8779('0x31')]=_0xe54cd9[_0x8779('0x31')][_0x8779('0x32')]?_0xe54cd9['attributes']:_0xf264c4[_0x8779('0x2d')];if(!_0x2bedbe[_0x8779('0x30')][_0x8779('0x33')](_0x8779('0x34'))){_0xe54cd9[_0x8779('0x1e')]=qs[_0x8779('0x1e')](_0x2bedbe[_0x8779('0x30')][_0x8779('0x1e')]);_0xe54cd9[_0x8779('0x1c')]=qs['offset'](_0x2bedbe[_0x8779('0x30')][_0x8779('0x1c')]);}_0xe54cd9[_0x8779('0x35')]=qs[_0x8779('0x36')](_0x2bedbe['query']['sort']);_0xe54cd9[_0x8779('0x37')]=qs[_0x8779('0x38')](_['pick'](_0x2bedbe[_0x8779('0x30')],_0xf264c4[_0x8779('0x38')]),_0x361252);if(_0x2bedbe[_0x8779('0x30')][_0x8779('0x39')]){_0xe54cd9[_0x8779('0x37')]=_[_0x8779('0x3a')](_0xe54cd9[_0x8779('0x37')],{'$or':_['map'](_0x361252,function(_0x18e564){if(_0x18e564[_0x8779('0x2b')]!=='VIRTUAL'){var _0x4d51ae={};_0x4d51ae[_0x18e564[_0x8779('0x28')]]={'$like':'%'+_0x2bedbe['query'][_0x8779('0x39')]+'%'};return _0x4d51ae;}})});}_0xe54cd9=_[_0x8779('0x3a')]({},_0xe54cd9,_0x2bedbe[_0x8779('0x3b')]);var _0xd3bb4d={'where':_0xe54cd9['where']};return db['MailTransferReport']['count'](_0xd3bb4d)['then'](function(_0x2669ad){_0x28c0e8[_0x8779('0x1f')]=_0x2669ad;if(_0x2bedbe[_0x8779('0x30')][_0x8779('0x3c')]){_0xe54cd9[_0x8779('0x3d')]=[{'all':!![]}];}return db[_0x8779('0x3e')][_0x8779('0x3f')](_0xe54cd9);})[_0x8779('0x25')](function(_0x4bc99c){_0x28c0e8[_0x8779('0x40')]=_0x4bc99c;return _0x28c0e8;})[_0x8779('0x25')](respondWithFilteredResult(_0x3a71f1,_0xe54cd9))[_0x8779('0x41')](handleError(_0x3a71f1,null));};exports['show']=function(_0x5888a5,_0x446c3c){var _0xa48d39={'raw':!![],'where':{'id':_0x5888a5[_0x8779('0x42')]['id']}},_0xb71022={};_0xb71022['model']=_[_0x8779('0x2e')](db['MailTransferReport']['rawAttributes']);_0xb71022['query']=_[_0x8779('0x2e')](_0x5888a5[_0x8779('0x30')]);_0xb71022[_0x8779('0x38')]=_[_0x8779('0x2f')](_0xb71022[_0x8779('0x2d')],_0xb71022[_0x8779('0x30')]);_0xa48d39[_0x8779('0x31')]=_['intersection'](_0xb71022[_0x8779('0x2d')],qs[_0x8779('0x43')](_0x5888a5['query'][_0x8779('0x43')]));_0xa48d39[_0x8779('0x31')]=_0xa48d39[_0x8779('0x31')][_0x8779('0x32')]?_0xa48d39['attributes']:_0xb71022['model'];if(_0x5888a5[_0x8779('0x30')][_0x8779('0x3c')]){_0xa48d39[_0x8779('0x3d')]=[{'all':!![]}];}_0xa48d39=_[_0x8779('0x3a')]({},_0xa48d39,_0x5888a5[_0x8779('0x3b')]);return db[_0x8779('0x3e')]['find'](_0xa48d39)[_0x8779('0x25')](handleEntityNotFound(_0x446c3c,null))[_0x8779('0x25')](respondWithResult(_0x446c3c,null))[_0x8779('0x41')](handleError(_0x446c3c,null));};exports[_0x8779('0x44')]=function(_0xac6f11,_0x5aa80c){return db['MailTransferReport'][_0x8779('0x44')](_0xac6f11[_0x8779('0x45')],{})[_0x8779('0x25')](respondWithResult(_0x5aa80c,0xc9))[_0x8779('0x41')](handleError(_0x5aa80c,null));};exports[_0x8779('0x24')]=function(_0x35231b,_0x70df4f){if(_0x35231b[_0x8779('0x45')]['id']){delete _0x35231b[_0x8779('0x45')]['id'];}return db['MailTransferReport'][_0x8779('0x46')]({'where':{'id':_0x35231b[_0x8779('0x42')]['id']}})['then'](handleEntityNotFound(_0x70df4f,null))[_0x8779('0x25')](saveUpdates(_0x35231b['body'],null))[_0x8779('0x25')](respondWithResult(_0x70df4f,null))[_0x8779('0x41')](handleError(_0x70df4f,null));};exports[_0x8779('0x47')]=function(_0x5ca48b,_0x304f07){return db[_0x8779('0x3e')]['find']({'where':{'id':_0x5ca48b[_0x8779('0x42')]['id']}})[_0x8779('0x25')](handleEntityNotFound(_0x304f07,null))['then'](removeEntity(_0x304f07,null))[_0x8779('0x41')](handleError(_0x304f07,null));};exports['describe']=function(_0x279f96,_0x1c6d95){return db['MailTransferReport'][_0x8779('0x48')]()[_0x8779('0x25')](respondWithResult(_0x1c6d95,null))[_0x8779('0x41')](handleError(_0x1c6d95,null));};
\ No newline at end of file
+var _0xce5a=['MailTransferReport','includeAll','findAll','catch','show','params','include','find','create','body','describe','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','ejs','fs-extra','lodash','squel','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils','../../mysqldb','sendStatus','end','undefined','count','offset','limit','status','set','Content-Range','json','reject','save','update','then','destroy','error','stack','name','index','map','rawAttributes','type','model','query','keys','filters','intersection','attributes','fields','length','order','sort','where','pick','filter','options'];(function(_0x420285,_0x3e6093){var _0x3cac2f=function(_0x5dc7c3){while(--_0x5dc7c3){_0x420285['push'](_0x420285['shift']());}};_0x3cac2f(++_0x3e6093);}(_0xce5a,0x16e));var _0xace5=function(_0x1caf6a,_0x26a5bf){_0x1caf6a=_0x1caf6a-0x0;var _0x1bf493=_0xce5a[_0x1caf6a];return _0x1bf493;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xace5('0x0'));var zipdir=require(_0xace5('0x1'));var jsonpatch=require(_0xace5('0x2'));var rp=require(_0xace5('0x3'));var moment=require('moment');var BPromise=require(_0xace5('0x4'));var Mustache=require(_0xace5('0x5'));var util=require(_0xace5('0x6'));var path=require(_0xace5('0x7'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0xace5('0x8'));var fs=require('fs');var fs_extra=require(_0xace5('0x9'));var _=require(_0xace5('0xa'));var squel=require(_0xace5('0xb'));var crypto=require('crypto');var jsforce=require(_0xace5('0xc'));var deskjs=require(_0xace5('0xd'));var toCsv=require(_0xace5('0xe'));var querystring=require(_0xace5('0xf'));var Papa=require(_0xace5('0x10'));var Redis=require(_0xace5('0x11'));var authService=require(_0xace5('0x12'));var qs=require(_0xace5('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xace5('0x14'));var logger=require(_0xace5('0x15'))('api');var utils=require(_0xace5('0x16'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0xace5('0x17'))['db'];function respondWithStatusCode(_0xdc08a9,_0x348064){_0x348064=_0x348064||0xcc;return function(_0x4fcf13){if(_0x4fcf13){return _0xdc08a9[_0xace5('0x18')](_0x348064);}return _0xdc08a9['status'](_0x348064)[_0xace5('0x19')]();};}function respondWithResult(_0x27c534,_0x344c90){_0x344c90=_0x344c90||0xc8;return function(_0x366c86){if(_0x366c86){return _0x27c534['status'](_0x344c90)['json'](_0x366c86);}};}function respondWithFilteredResult(_0x137d6f,_0x45b7c9){return function(_0x4b082d){if(_0x4b082d){var _0x493ccc=typeof _0x45b7c9['offset']===_0xace5('0x1a')&&typeof _0x45b7c9['limit']===_0xace5('0x1a');var _0xf04ee3=_0x4b082d[_0xace5('0x1b')];var _0x308c13=_0x493ccc?0x0:_0x45b7c9['offset'];var _0x12631a=_0x493ccc?_0x4b082d[_0xace5('0x1b')]:_0x45b7c9[_0xace5('0x1c')]+_0x45b7c9[_0xace5('0x1d')];var _0x3fb099;if(_0x12631a>=_0xf04ee3){_0x12631a=_0xf04ee3;_0x3fb099=0xc8;}else{_0x3fb099=0xce;}_0x137d6f[_0xace5('0x1e')](_0x3fb099);return _0x137d6f[_0xace5('0x1f')](_0xace5('0x20'),_0x308c13+'-'+_0x12631a+'/'+_0xf04ee3)[_0xace5('0x21')](_0x4b082d);}return null;};}function patchUpdates(_0x4305b6){return function(_0x494949){try{jsonpatch['apply'](_0x494949,_0x4305b6,!![]);}catch(_0x1863a5){return BPromise[_0xace5('0x22')](_0x1863a5);}return _0x494949[_0xace5('0x23')]();};}function saveUpdates(_0x3a7f54,_0x338581){return function(_0x576728){if(_0x576728){return _0x576728[_0xace5('0x24')](_0x3a7f54)[_0xace5('0x25')](function(_0x3f8390){return _0x3f8390;});}return null;};}function removeEntity(_0x1428d3,_0x109b7f){return function(_0x1f2d65){if(_0x1f2d65){return _0x1f2d65[_0xace5('0x26')]()[_0xace5('0x25')](function(){_0x1428d3['status'](0xcc)[_0xace5('0x19')]();});}};}function handleEntityNotFound(_0x25e0f2,_0xb7c3b3){return function(_0x4c9425){if(!_0x4c9425){_0x25e0f2[_0xace5('0x18')](0x194);}return _0x4c9425;};}function handleError(_0x58df6a,_0x3709b6){_0x3709b6=_0x3709b6||0x1f4;return function(_0x37af8a){logger[_0xace5('0x27')](_0x37af8a[_0xace5('0x28')]);if(_0x37af8a[_0xace5('0x29')]){delete _0x37af8a['name'];}_0x58df6a['status'](_0x3709b6)['send'](_0x37af8a);};}exports[_0xace5('0x2a')]=function(_0x28f406,_0x264baf){var _0x196e3f={},_0x39fd55={},_0x556cb5={'count':0x0,'rows':[]};var _0x26b67d=_[_0xace5('0x2b')](db['MailTransferReport'][_0xace5('0x2c')],function(_0x19c0f9){return{'name':_0x19c0f9['fieldName'],'type':_0x19c0f9[_0xace5('0x2d')]['key']};});_0x39fd55[_0xace5('0x2e')]=_[_0xace5('0x2b')](_0x26b67d,_0xace5('0x29'));_0x39fd55[_0xace5('0x2f')]=_[_0xace5('0x30')](_0x28f406[_0xace5('0x2f')]);_0x39fd55[_0xace5('0x31')]=_[_0xace5('0x32')](_0x39fd55[_0xace5('0x2e')],_0x39fd55[_0xace5('0x2f')]);_0x196e3f[_0xace5('0x33')]=_[_0xace5('0x32')](_0x39fd55[_0xace5('0x2e')],qs[_0xace5('0x34')](_0x28f406[_0xace5('0x2f')][_0xace5('0x34')]));_0x196e3f[_0xace5('0x33')]=_0x196e3f[_0xace5('0x33')][_0xace5('0x35')]?_0x196e3f[_0xace5('0x33')]:_0x39fd55[_0xace5('0x2e')];if(!_0x28f406[_0xace5('0x2f')]['hasOwnProperty']('nolimit')){_0x196e3f[_0xace5('0x1d')]=qs[_0xace5('0x1d')](_0x28f406[_0xace5('0x2f')][_0xace5('0x1d')]);_0x196e3f[_0xace5('0x1c')]=qs['offset'](_0x28f406[_0xace5('0x2f')][_0xace5('0x1c')]);}_0x196e3f[_0xace5('0x36')]=qs[_0xace5('0x37')](_0x28f406[_0xace5('0x2f')][_0xace5('0x37')]);_0x196e3f[_0xace5('0x38')]=qs['filters'](_[_0xace5('0x39')](_0x28f406[_0xace5('0x2f')],_0x39fd55[_0xace5('0x31')]),_0x26b67d);if(_0x28f406[_0xace5('0x2f')][_0xace5('0x3a')]){_0x196e3f[_0xace5('0x38')]=_['merge'](_0x196e3f[_0xace5('0x38')],{'$or':_['map'](_0x26b67d,function(_0x25d00e){if(_0x25d00e[_0xace5('0x2d')]!=='VIRTUAL'){var _0x3f8b64={};_0x3f8b64[_0x25d00e['name']]={'$like':'%'+_0x28f406[_0xace5('0x2f')][_0xace5('0x3a')]+'%'};return _0x3f8b64;}})});}_0x196e3f=_['merge']({},_0x196e3f,_0x28f406[_0xace5('0x3b')]);var _0x3b82f7={'where':_0x196e3f[_0xace5('0x38')]};return db[_0xace5('0x3c')][_0xace5('0x1b')](_0x3b82f7)['then'](function(_0x19524d){_0x556cb5[_0xace5('0x1b')]=_0x19524d;if(_0x28f406[_0xace5('0x2f')][_0xace5('0x3d')]){_0x196e3f['include']=[{'all':!![]}];}return db['MailTransferReport'][_0xace5('0x3e')](_0x196e3f);})['then'](function(_0x253613){_0x556cb5['rows']=_0x253613;return _0x556cb5;})['then'](respondWithFilteredResult(_0x264baf,_0x196e3f))[_0xace5('0x3f')](handleError(_0x264baf,null));};exports[_0xace5('0x40')]=function(_0x27757f,_0x4a65df){var _0x577b54={'raw':!![],'where':{'id':_0x27757f[_0xace5('0x41')]['id']}},_0xa6a420={};_0xa6a420[_0xace5('0x2e')]=_[_0xace5('0x30')](db[_0xace5('0x3c')][_0xace5('0x2c')]);_0xa6a420[_0xace5('0x2f')]=_['keys'](_0x27757f[_0xace5('0x2f')]);_0xa6a420[_0xace5('0x31')]=_[_0xace5('0x32')](_0xa6a420[_0xace5('0x2e')],_0xa6a420[_0xace5('0x2f')]);_0x577b54[_0xace5('0x33')]=_['intersection'](_0xa6a420['model'],qs[_0xace5('0x34')](_0x27757f['query'][_0xace5('0x34')]));_0x577b54[_0xace5('0x33')]=_0x577b54[_0xace5('0x33')][_0xace5('0x35')]?_0x577b54[_0xace5('0x33')]:_0xa6a420['model'];if(_0x27757f[_0xace5('0x2f')][_0xace5('0x3d')]){_0x577b54[_0xace5('0x42')]=[{'all':!![]}];}_0x577b54=_['merge']({},_0x577b54,_0x27757f[_0xace5('0x3b')]);return db[_0xace5('0x3c')][_0xace5('0x43')](_0x577b54)[_0xace5('0x25')](handleEntityNotFound(_0x4a65df,null))[_0xace5('0x25')](respondWithResult(_0x4a65df,null))[_0xace5('0x3f')](handleError(_0x4a65df,null));};exports[_0xace5('0x44')]=function(_0x3f01fc,_0x1a457b){return db['MailTransferReport'][_0xace5('0x44')](_0x3f01fc[_0xace5('0x45')],{})[_0xace5('0x25')](respondWithResult(_0x1a457b,0xc9))[_0xace5('0x3f')](handleError(_0x1a457b,null));};exports[_0xace5('0x24')]=function(_0x2f3020,_0x4a9225){if(_0x2f3020[_0xace5('0x45')]['id']){delete _0x2f3020[_0xace5('0x45')]['id'];}return db[_0xace5('0x3c')][_0xace5('0x43')]({'where':{'id':_0x2f3020[_0xace5('0x41')]['id']}})[_0xace5('0x25')](handleEntityNotFound(_0x4a9225,null))[_0xace5('0x25')](saveUpdates(_0x2f3020[_0xace5('0x45')],null))[_0xace5('0x25')](respondWithResult(_0x4a9225,null))[_0xace5('0x3f')](handleError(_0x4a9225,null));};exports[_0xace5('0x26')]=function(_0x14688f,_0x3b1bc5){return db['MailTransferReport'][_0xace5('0x43')]({'where':{'id':_0x14688f[_0xace5('0x41')]['id']}})[_0xace5('0x25')](handleEntityNotFound(_0x3b1bc5,null))[_0xace5('0x25')](removeEntity(_0x3b1bc5,null))[_0xace5('0x3f')](handleError(_0x3b1bc5,null));};exports[_0xace5('0x46')]=function(_0x2da8c0,_0x56e373){return db[_0xace5('0x3c')]['describe']()['then'](respondWithResult(_0x56e373,null))[_0xace5('0x3f')](handleError(_0x56e373,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xba2d=['uniqueid','util','path','rimraf','../../config/environment','./mailTransferReport.attributes','exports','define','report_mail_transfer'];(function(_0x3e231b,_0x126ff3){var _0x867a46=function(_0x21ca7a){while(--_0x21ca7a){_0x3e231b['push'](_0x3e231b['shift']());}};_0x867a46(++_0x126ff3);}(_0xba2d,0xa3));var _0xdba2=function(_0x44df64,_0x1880e5){_0x44df64=_0x44df64-0x0;var _0x3bcd8d=_0xba2d[_0x44df64];return _0x3bcd8d;};'use strict';var _=require('lodash');var util=require(_0xdba2('0x0'));var logger=require('../../config/logger')('api');var moment=require('moment');var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0xdba2('0x1'));var rimraf=require(_0xdba2('0x2'));var config=require(_0xdba2('0x3'));var attributes=require(_0xdba2('0x4'));module[_0xdba2('0x5')]=function(_0x36d8cc,_0x8f3683){return _0x36d8cc[_0xdba2('0x6')]('MailTransferReport',attributes,{'tableName':_0xdba2('0x7'),'paranoid':![],'indexes':[{'name':'uniqueid','fields':[_0xdba2('0x8')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0xcb97=['request-promise','path','rimraf','../../config/environment','./mailTransferReport.attributes','exports','define','MailTransferReport','report_mail_transfer','uniqueid','lodash','util','../../config/logger'];(function(_0x5160bf,_0x511947){var _0x1d33a9=function(_0x3b630c){while(--_0x3b630c){_0x5160bf['push'](_0x5160bf['shift']());}};_0x1d33a9(++_0x511947);}(_0xcb97,0x14f));var _0x7cb9=function(_0x4de74b,_0x2c5adc){_0x4de74b=_0x4de74b-0x0;var _0x3ad39b=_0xcb97[_0x4de74b];return _0x3ad39b;};'use strict';var _=require(_0x7cb9('0x0'));var util=require(_0x7cb9('0x1'));var logger=require(_0x7cb9('0x2'))('api');var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0x7cb9('0x3'));var fs=require('fs');var path=require(_0x7cb9('0x4'));var rimraf=require(_0x7cb9('0x5'));var config=require(_0x7cb9('0x6'));var attributes=require(_0x7cb9('0x7'));module[_0x7cb9('0x8')]=function(_0x1994aa,_0x209a67){return _0x1994aa[_0x7cb9('0x9')](_0x7cb9('0xa'),attributes,{'tableName':_0x7cb9('0xb'),'paranoid':![],'indexes':[{'name':_0x7cb9('0xc'),'fields':['uniqueid']}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4c1d=['error','code','message','result','catch','lodash','util','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','jayson/promise','client','http','request','then','info','MailTransferReport,\x20%s,\x20%s','request\x20sent','MailTransferReport,\x20%s,\x20%s,\x20%s','stringify'];(function(_0x173441,_0x26b0d9){var _0x2423a8=function(_0x4d96c2){while(--_0x4d96c2){_0x173441['push'](_0x173441['shift']());}};_0x2423a8(++_0x26b0d9);}(_0x4c1d,0x123));var _0xd4c1=function(_0x1a1921,_0x9c7000){_0x1a1921=_0x1a1921-0x0;var _0x48f827=_0x4c1d[_0x1a1921];return _0x48f827;};'use strict';var _=require(_0xd4c1('0x0'));var util=require(_0xd4c1('0x1'));var moment=require('moment');var BPromise=require(_0xd4c1('0x2'));var rs=require(_0xd4c1('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xd4c1('0x4'))['db'];var utils=require(_0xd4c1('0x5'));var logger=require(_0xd4c1('0x6'))('rpc');var config=require('../../config/environment');var jayson=require(_0xd4c1('0x7'));var client=jayson[_0xd4c1('0x8')][_0xd4c1('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x5e2fd0,_0x19717d,_0x50f2bc){return new BPromise(function(_0x4e325e,_0xb87c6){return client[_0xd4c1('0xa')](_0x5e2fd0,_0x50f2bc)[_0xd4c1('0xb')](function(_0x1d011a){logger[_0xd4c1('0xc')](_0xd4c1('0xd'),_0x19717d,_0xd4c1('0xe'));logger['debug'](_0xd4c1('0xf'),_0x19717d,'request\x20sent',JSON[_0xd4c1('0x10')](_0x1d011a));if(_0x1d011a[_0xd4c1('0x11')]){if(_0x1d011a[_0xd4c1('0x11')][_0xd4c1('0x12')]===0x1f4){logger['error'](_0xd4c1('0xd'),_0x19717d,_0x1d011a[_0xd4c1('0x11')][_0xd4c1('0x13')]);return _0xb87c6(_0x1d011a[_0xd4c1('0x11')][_0xd4c1('0x13')]);}logger[_0xd4c1('0x11')]('MailTransferReport,\x20%s,\x20%s',_0x19717d,_0x1d011a[_0xd4c1('0x11')][_0xd4c1('0x13')]);return _0x4e325e(_0x1d011a[_0xd4c1('0x11')][_0xd4c1('0x13')]);}else{logger[_0xd4c1('0xc')](_0xd4c1('0xd'),_0x19717d,_0xd4c1('0xe'));_0x4e325e(_0x1d011a[_0xd4c1('0x14')]['message']);}})[_0xd4c1('0x15')](function(_0x550c05){logger[_0xd4c1('0x11')](_0xd4c1('0xd'),_0x19717d,_0x550c05);_0xb87c6(_0x550c05);});});}
\ No newline at end of file
+var _0x6226=['http','request','then','info','MailTransferReport,\x20%s,\x20%s','request\x20sent','MailTransferReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','lodash','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client'];(function(_0x5d4607,_0x6b5e7b){var _0x5e4a86=function(_0x46891a){while(--_0x46891a){_0x5d4607['push'](_0x5d4607['shift']());}};_0x5e4a86(++_0x6b5e7b);}(_0x6226,0xe7));var _0x6622=function(_0xe4854b,_0x414b50){_0xe4854b=_0xe4854b-0x0;var _0x1c3d72=_0x6226[_0xe4854b];return _0x1c3d72;};'use strict';var _=require(_0x6622('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0x6622('0x1'));var rs=require(_0x6622('0x2'));var fs=require('fs');var Redis=require(_0x6622('0x3'));var db=require(_0x6622('0x4'))['db'];var utils=require(_0x6622('0x5'));var logger=require(_0x6622('0x6'))(_0x6622('0x7'));var config=require(_0x6622('0x8'));var jayson=require(_0x6622('0x9'));var client=jayson[_0x6622('0xa')][_0x6622('0xb')]({'port':0x232a});function respondWithRpcPromise(_0xea6d1d,_0x33fe29,_0x156c45){return new BPromise(function(_0x3b75e3,_0x2afb2f){return client[_0x6622('0xc')](_0xea6d1d,_0x156c45)[_0x6622('0xd')](function(_0x1a2bd1){logger[_0x6622('0xe')](_0x6622('0xf'),_0x33fe29,_0x6622('0x10'));logger['debug'](_0x6622('0x11'),_0x33fe29,_0x6622('0x10'),JSON[_0x6622('0x12')](_0x1a2bd1));if(_0x1a2bd1[_0x6622('0x13')]){if(_0x1a2bd1[_0x6622('0x13')][_0x6622('0x14')]===0x1f4){logger[_0x6622('0x13')](_0x6622('0xf'),_0x33fe29,_0x1a2bd1['error'][_0x6622('0x15')]);return _0x2afb2f(_0x1a2bd1['error'][_0x6622('0x15')]);}logger[_0x6622('0x13')](_0x6622('0xf'),_0x33fe29,_0x1a2bd1[_0x6622('0x13')][_0x6622('0x15')]);return _0x3b75e3(_0x1a2bd1[_0x6622('0x13')][_0x6622('0x15')]);}else{logger[_0x6622('0xe')]('MailTransferReport,\x20%s,\x20%s',_0x33fe29,_0x6622('0x10'));_0x3b75e3(_0x1a2bd1['result'][_0x6622('0x15')]);}})['catch'](function(_0x37d34f){logger[_0x6622('0x13')](_0x6622('0xf'),_0x33fe29,_0x37d34f);_0x2afb2f(_0x37d34f);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb42d=['delete','destroy','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./memberReport.controller','get','isAuthenticated','describe','post','create','/:id'];(function(_0x1c97c1,_0x57771f){var _0x51393f=function(_0x602c11){while(--_0x602c11){_0x1c97c1['push'](_0x1c97c1['shift']());}};_0x51393f(++_0x57771f);}(_0xb42d,0x1bb));var _0xdb42=function(_0x21b16d,_0x23c51b){_0x21b16d=_0x21b16d-0x0;var _0x3a5d3f=_0xb42d[_0x21b16d];return _0x3a5d3f;};'use strict';var multer=require(_0xdb42('0x0'));var util=require(_0xdb42('0x1'));var path=require(_0xdb42('0x2'));var timeout=require(_0xdb42('0x3'));var express=require(_0xdb42('0x4'));var router=express[_0xdb42('0x5')]();var fs_extra=require(_0xdb42('0x6'));var auth=require(_0xdb42('0x7'));var interaction=require(_0xdb42('0x8'));var config=require(_0xdb42('0x9'));var controller=require(_0xdb42('0xa'));router[_0xdb42('0xb')]('/',auth[_0xdb42('0xc')](),controller['index']);router[_0xdb42('0xb')]('/describe',auth[_0xdb42('0xc')](),controller[_0xdb42('0xd')]);router[_0xdb42('0xb')]('/:id',auth[_0xdb42('0xc')](),controller['show']);router[_0xdb42('0xe')]('/',auth['isAuthenticated'](),controller[_0xdb42('0xf')]);router['put'](_0xdb42('0x10'),auth[_0xdb42('0xc')](),controller['update']);router[_0xdb42('0x11')](_0xdb42('0x10'),auth[_0xdb42('0xc')](),controller[_0xdb42('0x12')]);module[_0xdb42('0x13')]=router;
\ No newline at end of file
+var _0x1fd5=['put','update','delete','destroy','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../config/environment','get','isAuthenticated','index','/describe','/:id','show'];(function(_0x220b16,_0x1d68ba){var _0x577666=function(_0x568f28){while(--_0x568f28){_0x220b16['push'](_0x220b16['shift']());}};_0x577666(++_0x1d68ba);}(_0x1fd5,0xfc));var _0x51fd=function(_0x1e1f21,_0x59f39b){_0x1e1f21=_0x1e1f21-0x0;var _0x4a5b6f=_0x1fd5[_0x1e1f21];return _0x4a5b6f;};'use strict';var multer=require(_0x51fd('0x0'));var util=require(_0x51fd('0x1'));var path=require(_0x51fd('0x2'));var timeout=require(_0x51fd('0x3'));var express=require(_0x51fd('0x4'));var router=express[_0x51fd('0x5')]();var fs_extra=require(_0x51fd('0x6'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x51fd('0x7'));var controller=require('./memberReport.controller');router[_0x51fd('0x8')]('/',auth[_0x51fd('0x9')](),controller[_0x51fd('0xa')]);router[_0x51fd('0x8')](_0x51fd('0xb'),auth[_0x51fd('0x9')](),controller['describe']);router[_0x51fd('0x8')](_0x51fd('0xc'),auth['isAuthenticated'](),controller[_0x51fd('0xd')]);router['post']('/',auth[_0x51fd('0x9')](),controller['create']);router[_0x51fd('0xe')](_0x51fd('0xc'),auth['isAuthenticated'](),controller[_0x51fd('0xf')]);router[_0x51fd('0x10')]('/:id',auth['isAuthenticated'](),controller[_0x51fd('0x11')]);module[_0x51fd('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x765e=['seconds','setDataValue','exitAt','talk:[inbound,\x20outbound],\x20pause:[reason]','talk:[queue]','sequelize','moment','exports','STRING','DEFAULT\x20PAUSE','LOGIN,\x20PAUSE,\x20TALKING','INTEGER','DATE','enterAt','diff'];(function(_0xd8e0d2,_0x593c2a){var _0x524265=function(_0x1068e3){while(--_0x1068e3){_0xd8e0d2['push'](_0xd8e0d2['shift']());}};_0x524265(++_0x593c2a);}(_0x765e,0x131));var _0xe765=function(_0x23e768,_0x5c23e5){_0x23e768=_0x23e768-0x0;var _0x56a2df=_0x765e[_0x23e768];return _0x56a2df;};'use strict';var Sequelize=require(_0xe765('0x0'));var moment=require(_0xe765('0x1'));module[_0xe765('0x2')]={'channel':{'type':Sequelize[_0xe765('0x3')]},'membername':{'type':Sequelize[_0xe765('0x3')]},'interface':{'type':Sequelize[_0xe765('0x3')]},'type':{'type':Sequelize[_0xe765('0x3')],'defaultValue':_0xe765('0x4'),'comment':_0xe765('0x5')},'duration':{'type':Sequelize[_0xe765('0x6')]},'enterAt':{'type':Sequelize[_0xe765('0x7')]},'exitAt':{'type':Sequelize[_0xe765('0x7')],'set':function(_0x40ac5e){var _0xdcac86=moment(_0x40ac5e);var _0xdd89e7=moment(this['getDataValue'](_0xe765('0x8')));var _0x28e955=_0xdcac86[_0xe765('0x9')](_0xdd89e7,_0xe765('0xa'));this[_0xe765('0xb')](_0xe765('0xc'),_0x40ac5e);this[_0xe765('0xb')]('duration',_0x28e955||null);}},'data1':{'type':Sequelize[_0xe765('0x3')],'comment':_0xe765('0xd')},'data2':{'type':Sequelize[_0xe765('0x3')],'comment':'talk:[start]'},'data3':{'type':Sequelize[_0xe765('0x3')],'comment':'talk:[destination]'},'data4':{'type':Sequelize['STRING'],'comment':'talk:[dial\x20string]'},'data5':{'type':Sequelize[_0xe765('0x3')],'comment':_0xe765('0xe')},'role':{'type':Sequelize[_0xe765('0x3')]},'internal':{'type':Sequelize[_0xe765('0x6')]},'uniqueid':{'type':Sequelize[_0xe765('0x3')]}};
\ No newline at end of file
+var _0xc3fe=['sequelize','moment','exports','STRING','LOGIN,\x20PAUSE,\x20TALKING','INTEGER','DATE','seconds','setDataValue','exitAt','talk:[inbound,\x20outbound],\x20pause:[reason]','talk:[start]','talk:[destination]','talk:[dial\x20string]','talk:[queue]'];(function(_0x26c112,_0x41e2fd){var _0x4933d8=function(_0x5d33ab){while(--_0x5d33ab){_0x26c112['push'](_0x26c112['shift']());}};_0x4933d8(++_0x41e2fd);}(_0xc3fe,0xff));var _0xec3f=function(_0x4dcba1,_0x46312f){_0x4dcba1=_0x4dcba1-0x0;var _0xe1043b=_0xc3fe[_0x4dcba1];return _0xe1043b;};'use strict';var Sequelize=require(_0xec3f('0x0'));var moment=require(_0xec3f('0x1'));module[_0xec3f('0x2')]={'channel':{'type':Sequelize['STRING']},'membername':{'type':Sequelize[_0xec3f('0x3')]},'interface':{'type':Sequelize[_0xec3f('0x3')]},'type':{'type':Sequelize[_0xec3f('0x3')],'defaultValue':'DEFAULT\x20PAUSE','comment':_0xec3f('0x4')},'duration':{'type':Sequelize[_0xec3f('0x5')]},'enterAt':{'type':Sequelize[_0xec3f('0x6')]},'exitAt':{'type':Sequelize['DATE'],'set':function(_0x4fb9aa){var _0x2d5b29=moment(_0x4fb9aa);var _0x3b0b84=moment(this['getDataValue']('enterAt'));var _0xcb8557=_0x2d5b29['diff'](_0x3b0b84,_0xec3f('0x7'));this[_0xec3f('0x8')](_0xec3f('0x9'),_0x4fb9aa);this[_0xec3f('0x8')]('duration',_0xcb8557||null);}},'data1':{'type':Sequelize[_0xec3f('0x3')],'comment':_0xec3f('0xa')},'data2':{'type':Sequelize[_0xec3f('0x3')],'comment':_0xec3f('0xb')},'data3':{'type':Sequelize[_0xec3f('0x3')],'comment':_0xec3f('0xc')},'data4':{'type':Sequelize['STRING'],'comment':_0xec3f('0xd')},'data5':{'type':Sequelize[_0xec3f('0x3')],'comment':_0xec3f('0xe')},'role':{'type':Sequelize['STRING']},'internal':{'type':Sequelize['INTEGER']},'uniqueid':{'type':Sequelize[_0xec3f('0x3')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x55ca=['merge','filter','includeAll','include','findAll','rawAttributes','options','create','body','find','params','catch','destroy','describe','eml-format','rimraf','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','querystring','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','json','offset','undefined','limit','count','reject','update','then','end','sendStatus','error','stack','name','send','index','map','MemberReport','type','key','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where'];(function(_0x4b055c,_0x4b870b){var _0x4b62bb=function(_0x4884c2){while(--_0x4884c2){_0x4b055c['push'](_0x4b055c['shift']());}};_0x4b62bb(++_0x4b870b);}(_0x55ca,0x126));var _0xa55c=function(_0x59f691,_0x1b656d){_0x59f691=_0x59f691-0x0;var _0x1f80bb=_0x55ca[_0x59f691];return _0x1f80bb;};'use strict';var emlformat=require(_0xa55c('0x0'));var rimraf=require(_0xa55c('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0xa55c('0x2'));var BPromise=require(_0xa55c('0x3'));var Mustache=require('mustache');var util=require(_0xa55c('0x4'));var path=require(_0xa55c('0x5'));var sox=require(_0xa55c('0x6'));var csv=require(_0xa55c('0x7'));var ejs=require(_0xa55c('0x8'));var fs=require('fs');var fs_extra=require(_0xa55c('0x9'));var _=require(_0xa55c('0xa'));var squel=require('squel');var crypto=require(_0xa55c('0xb'));var jsforce=require(_0xa55c('0xc'));var deskjs=require('desk.js');var toCsv=require(_0xa55c('0x7'));var querystring=require(_0xa55c('0xd'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0xa55c('0xe'));var qs=require(_0xa55c('0xf'));var as=require(_0xa55c('0x10'));var hardwareService=require(_0xa55c('0x11'));var logger=require(_0xa55c('0x12'))(_0xa55c('0x13'));var utils=require(_0xa55c('0x14'));var config=require(_0xa55c('0x15'));var licenseUtil=require(_0xa55c('0x16'));var db=require(_0xa55c('0x17'))['db'];function respondWithStatusCode(_0x5d47ff,_0x59d84a){_0x59d84a=_0x59d84a||0xcc;return function(_0x2a35be){if(_0x2a35be){return _0x5d47ff['sendStatus'](_0x59d84a);}return _0x5d47ff['status'](_0x59d84a)['end']();};}function respondWithResult(_0x18ee85,_0x3930e4){_0x3930e4=_0x3930e4||0xc8;return function(_0x462cd6){if(_0x462cd6){return _0x18ee85[_0xa55c('0x18')](_0x3930e4)[_0xa55c('0x19')](_0x462cd6);}};}function respondWithFilteredResult(_0x247e77,_0x4e0b2f){return function(_0x3ccf65){if(_0x3ccf65){var _0x3dcf4f=typeof _0x4e0b2f[_0xa55c('0x1a')]===_0xa55c('0x1b')&&typeof _0x4e0b2f[_0xa55c('0x1c')]===_0xa55c('0x1b');var _0x51590e=_0x3ccf65[_0xa55c('0x1d')];var _0x24783b=_0x3dcf4f?0x0:_0x4e0b2f['offset'];var _0x3d4c9e=_0x3dcf4f?_0x3ccf65[_0xa55c('0x1d')]:_0x4e0b2f[_0xa55c('0x1a')]+_0x4e0b2f[_0xa55c('0x1c')];var _0x23a1ae;if(_0x3d4c9e>=_0x51590e){_0x3d4c9e=_0x51590e;_0x23a1ae=0xc8;}else{_0x23a1ae=0xce;}_0x247e77[_0xa55c('0x18')](_0x23a1ae);return _0x247e77['set']('Content-Range',_0x24783b+'-'+_0x3d4c9e+'/'+_0x51590e)[_0xa55c('0x19')](_0x3ccf65);}return null;};}function patchUpdates(_0x3776ac){return function(_0xade4c4){try{jsonpatch['apply'](_0xade4c4,_0x3776ac,!![]);}catch(_0x383d92){return BPromise[_0xa55c('0x1e')](_0x383d92);}return _0xade4c4['save']();};}function saveUpdates(_0x187a87,_0x133096){return function(_0x940f28){if(_0x940f28){return _0x940f28[_0xa55c('0x1f')](_0x187a87)[_0xa55c('0x20')](function(_0x49ed04){return _0x49ed04;});}return null;};}function removeEntity(_0x1fc828,_0x504c24){return function(_0x5ba836){if(_0x5ba836){return _0x5ba836['destroy']()[_0xa55c('0x20')](function(){_0x1fc828['status'](0xcc)[_0xa55c('0x21')]();});}};}function handleEntityNotFound(_0x190757,_0x3f64de){return function(_0xf0e574){if(!_0xf0e574){_0x190757[_0xa55c('0x22')](0x194);}return _0xf0e574;};}function handleError(_0x170ba4,_0x1da633){_0x1da633=_0x1da633||0x1f4;return function(_0x11e7f7){logger[_0xa55c('0x23')](_0x11e7f7[_0xa55c('0x24')]);if(_0x11e7f7[_0xa55c('0x25')]){delete _0x11e7f7['name'];}_0x170ba4[_0xa55c('0x18')](_0x1da633)[_0xa55c('0x26')](_0x11e7f7);};}exports[_0xa55c('0x27')]=function(_0x906caa,_0x5d940d){var _0x1377b0={},_0x22f6b6={},_0x1b8388={'count':0x0,'rows':[]};var _0x201941=_[_0xa55c('0x28')](db[_0xa55c('0x29')]['rawAttributes'],function(_0x23e698){return{'name':_0x23e698['fieldName'],'type':_0x23e698[_0xa55c('0x2a')][_0xa55c('0x2b')]};});_0x22f6b6[_0xa55c('0x2c')]=_[_0xa55c('0x28')](_0x201941,'name');_0x22f6b6[_0xa55c('0x2d')]=_[_0xa55c('0x2e')](_0x906caa[_0xa55c('0x2d')]);_0x22f6b6[_0xa55c('0x2f')]=_[_0xa55c('0x30')](_0x22f6b6[_0xa55c('0x2c')],_0x22f6b6[_0xa55c('0x2d')]);_0x1377b0[_0xa55c('0x31')]=_[_0xa55c('0x30')](_0x22f6b6[_0xa55c('0x2c')],qs[_0xa55c('0x32')](_0x906caa['query']['fields']));_0x1377b0[_0xa55c('0x31')]=_0x1377b0[_0xa55c('0x31')]['length']?_0x1377b0[_0xa55c('0x31')]:_0x22f6b6[_0xa55c('0x2c')];if(!_0x906caa[_0xa55c('0x2d')][_0xa55c('0x33')](_0xa55c('0x34'))){_0x1377b0[_0xa55c('0x1c')]=qs[_0xa55c('0x1c')](_0x906caa[_0xa55c('0x2d')][_0xa55c('0x1c')]);_0x1377b0['offset']=qs['offset'](_0x906caa['query'][_0xa55c('0x1a')]);}_0x1377b0[_0xa55c('0x35')]=qs[_0xa55c('0x36')](_0x906caa['query'][_0xa55c('0x36')]);_0x1377b0['where']=qs[_0xa55c('0x2f')](_['pick'](_0x906caa[_0xa55c('0x2d')],_0x22f6b6[_0xa55c('0x2f')]),_0x201941);if(_0x906caa[_0xa55c('0x2d')]['filter']){_0x1377b0[_0xa55c('0x37')]=_[_0xa55c('0x38')](_0x1377b0['where'],{'$or':_[_0xa55c('0x28')](_0x201941,function(_0x194e78){if(_0x194e78['type']!=='VIRTUAL'){var _0x235f6b={};_0x235f6b[_0x194e78['name']]={'$like':'%'+_0x906caa[_0xa55c('0x2d')][_0xa55c('0x39')]+'%'};return _0x235f6b;}})});}_0x1377b0=_['merge']({},_0x1377b0,_0x906caa['options']);var _0x5e50b6={'where':_0x1377b0['where']};return db[_0xa55c('0x29')][_0xa55c('0x1d')](_0x5e50b6)[_0xa55c('0x20')](function(_0x99c4f8){_0x1b8388[_0xa55c('0x1d')]=_0x99c4f8;if(_0x906caa['query'][_0xa55c('0x3a')]){_0x1377b0[_0xa55c('0x3b')]=[{'all':!![]}];}return db[_0xa55c('0x29')][_0xa55c('0x3c')](_0x1377b0);})[_0xa55c('0x20')](function(_0x23cef5){_0x1b8388['rows']=_0x23cef5;return _0x1b8388;})[_0xa55c('0x20')](respondWithFilteredResult(_0x5d940d,_0x1377b0))['catch'](handleError(_0x5d940d,null));};exports['show']=function(_0x404e7f,_0x1f63d8){var _0x496920={'raw':!![],'where':{'id':_0x404e7f['params']['id']}},_0x2bd98b={};_0x2bd98b['model']=_[_0xa55c('0x2e')](db[_0xa55c('0x29')][_0xa55c('0x3d')]);_0x2bd98b['query']=_[_0xa55c('0x2e')](_0x404e7f[_0xa55c('0x2d')]);_0x2bd98b['filters']=_[_0xa55c('0x30')](_0x2bd98b['model'],_0x2bd98b[_0xa55c('0x2d')]);_0x496920[_0xa55c('0x31')]=_['intersection'](_0x2bd98b[_0xa55c('0x2c')],qs[_0xa55c('0x32')](_0x404e7f['query'][_0xa55c('0x32')]));_0x496920[_0xa55c('0x31')]=_0x496920[_0xa55c('0x31')]['length']?_0x496920[_0xa55c('0x31')]:_0x2bd98b['model'];if(_0x404e7f[_0xa55c('0x2d')][_0xa55c('0x3a')]){_0x496920[_0xa55c('0x3b')]=[{'all':!![]}];}_0x496920=_['merge']({},_0x496920,_0x404e7f[_0xa55c('0x3e')]);return db[_0xa55c('0x29')]['find'](_0x496920)[_0xa55c('0x20')](handleEntityNotFound(_0x1f63d8,null))[_0xa55c('0x20')](respondWithResult(_0x1f63d8,null))['catch'](handleError(_0x1f63d8,null));};exports[_0xa55c('0x3f')]=function(_0xd3fe78,_0x52f9a7){return db[_0xa55c('0x29')][_0xa55c('0x3f')](_0xd3fe78[_0xa55c('0x40')],{})[_0xa55c('0x20')](respondWithResult(_0x52f9a7,0xc9))['catch'](handleError(_0x52f9a7,null));};exports[_0xa55c('0x1f')]=function(_0x58a7ea,_0x2157d6){if(_0x58a7ea[_0xa55c('0x40')]['id']){delete _0x58a7ea[_0xa55c('0x40')]['id'];}return db['MemberReport'][_0xa55c('0x41')]({'where':{'id':_0x58a7ea[_0xa55c('0x42')]['id']}})['then'](handleEntityNotFound(_0x2157d6,null))[_0xa55c('0x20')](saveUpdates(_0x58a7ea[_0xa55c('0x40')],null))[_0xa55c('0x20')](respondWithResult(_0x2157d6,null))[_0xa55c('0x43')](handleError(_0x2157d6,null));};exports[_0xa55c('0x44')]=function(_0x1c84d9,_0x1e1293){return db[_0xa55c('0x29')][_0xa55c('0x41')]({'where':{'id':_0x1c84d9[_0xa55c('0x42')]['id']}})['then'](handleEntityNotFound(_0x1e1293,null))[_0xa55c('0x20')](removeEntity(_0x1e1293,null))[_0xa55c('0x43')](handleError(_0x1e1293,null));};exports[_0xa55c('0x45')]=function(_0x4f73b6,_0x4c3095){return db[_0xa55c('0x29')]['describe']()[_0xa55c('0x20')](respondWithResult(_0x4c3095,null))['catch'](handleError(_0x4c3095,null));};
\ No newline at end of file
+var _0x008c=['destroy','sendStatus','send','index','MemberReport','rawAttributes','key','model','map','name','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','type','VIRTUAL','filter','merge','options','includeAll','include','findAll','rows','show','catch','create','body','find','params','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','crypto','desk.js','papaparse','ioredis','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','end','status','json','offset','undefined','limit','count','save','update','then'];(function(_0x4d6fed,_0x3fd220){var _0xfbeb6b=function(_0x4758aa){while(--_0x4758aa){_0x4d6fed['push'](_0x4d6fed['shift']());}};_0xfbeb6b(++_0x3fd220);}(_0x008c,0x188));var _0xc008=function(_0x365a23,_0x5d9cf7){_0x365a23=_0x365a23-0x0;var _0x41537d=_0x008c[_0x365a23];return _0x41537d;};'use strict';var emlformat=require(_0xc008('0x0'));var rimraf=require(_0xc008('0x1'));var zipdir=require(_0xc008('0x2'));var jsonpatch=require(_0xc008('0x3'));var rp=require(_0xc008('0x4'));var moment=require('moment');var BPromise=require(_0xc008('0x5'));var Mustache=require(_0xc008('0x6'));var util=require(_0xc008('0x7'));var path=require(_0xc008('0x8'));var sox=require(_0xc008('0x9'));var csv=require(_0xc008('0xa'));var ejs=require(_0xc008('0xb'));var fs=require('fs');var fs_extra=require(_0xc008('0xc'));var _=require(_0xc008('0xd'));var squel=require('squel');var crypto=require(_0xc008('0xe'));var jsforce=require('jsforce');var deskjs=require(_0xc008('0xf'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xc008('0x10'));var Redis=require(_0xc008('0x11'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xc008('0x12'));var logger=require(_0xc008('0x13'))('api');var utils=require(_0xc008('0x14'));var config=require(_0xc008('0x15'));var licenseUtil=require(_0xc008('0x16'));var db=require(_0xc008('0x17'))['db'];function respondWithStatusCode(_0x9ffa93,_0x1819c6){_0x1819c6=_0x1819c6||0xcc;return function(_0x69726e){if(_0x69726e){return _0x9ffa93['sendStatus'](_0x1819c6);}return _0x9ffa93['status'](_0x1819c6)[_0xc008('0x18')]();};}function respondWithResult(_0x50c1ab,_0x25e13f){_0x25e13f=_0x25e13f||0xc8;return function(_0x4584e1){if(_0x4584e1){return _0x50c1ab[_0xc008('0x19')](_0x25e13f)[_0xc008('0x1a')](_0x4584e1);}};}function respondWithFilteredResult(_0x3f0ecf,_0x5ee00b){return function(_0x5e894e){if(_0x5e894e){var _0x4bd0f4=typeof _0x5ee00b[_0xc008('0x1b')]===_0xc008('0x1c')&&typeof _0x5ee00b[_0xc008('0x1d')]===_0xc008('0x1c');var _0x4fe771=_0x5e894e['count'];var _0x540e45=_0x4bd0f4?0x0:_0x5ee00b['offset'];var _0x46042b=_0x4bd0f4?_0x5e894e[_0xc008('0x1e')]:_0x5ee00b['offset']+_0x5ee00b[_0xc008('0x1d')];var _0x5906e6;if(_0x46042b>=_0x4fe771){_0x46042b=_0x4fe771;_0x5906e6=0xc8;}else{_0x5906e6=0xce;}_0x3f0ecf['status'](_0x5906e6);return _0x3f0ecf['set']('Content-Range',_0x540e45+'-'+_0x46042b+'/'+_0x4fe771)[_0xc008('0x1a')](_0x5e894e);}return null;};}function patchUpdates(_0x4b9726){return function(_0x5560b1){try{jsonpatch['apply'](_0x5560b1,_0x4b9726,!![]);}catch(_0x4a582d){return BPromise['reject'](_0x4a582d);}return _0x5560b1[_0xc008('0x1f')]();};}function saveUpdates(_0x4777a6,_0x251db2){return function(_0x415af3){if(_0x415af3){return _0x415af3[_0xc008('0x20')](_0x4777a6)[_0xc008('0x21')](function(_0x4f43e2){return _0x4f43e2;});}return null;};}function removeEntity(_0x459fd9,_0x5c85f2){return function(_0x58a6ea){if(_0x58a6ea){return _0x58a6ea[_0xc008('0x22')]()[_0xc008('0x21')](function(){_0x459fd9[_0xc008('0x19')](0xcc)[_0xc008('0x18')]();});}};}function handleEntityNotFound(_0x5410f5,_0x48582b){return function(_0x5de1e9){if(!_0x5de1e9){_0x5410f5[_0xc008('0x23')](0x194);}return _0x5de1e9;};}function handleError(_0x15dade,_0x92c582){_0x92c582=_0x92c582||0x1f4;return function(_0x2e31c2){logger['error'](_0x2e31c2['stack']);if(_0x2e31c2['name']){delete _0x2e31c2['name'];}_0x15dade['status'](_0x92c582)[_0xc008('0x24')](_0x2e31c2);};}exports[_0xc008('0x25')]=function(_0x25eae4,_0x529961){var _0x24c14c={},_0x32390d={},_0x209591={'count':0x0,'rows':[]};var _0x2a7d4f=_['map'](db[_0xc008('0x26')][_0xc008('0x27')],function(_0x53ed35){return{'name':_0x53ed35['fieldName'],'type':_0x53ed35['type'][_0xc008('0x28')]};});_0x32390d[_0xc008('0x29')]=_[_0xc008('0x2a')](_0x2a7d4f,_0xc008('0x2b'));_0x32390d[_0xc008('0x2c')]=_[_0xc008('0x2d')](_0x25eae4[_0xc008('0x2c')]);_0x32390d[_0xc008('0x2e')]=_[_0xc008('0x2f')](_0x32390d[_0xc008('0x29')],_0x32390d[_0xc008('0x2c')]);_0x24c14c[_0xc008('0x30')]=_['intersection'](_0x32390d[_0xc008('0x29')],qs[_0xc008('0x31')](_0x25eae4['query'][_0xc008('0x31')]));_0x24c14c[_0xc008('0x30')]=_0x24c14c[_0xc008('0x30')][_0xc008('0x32')]?_0x24c14c[_0xc008('0x30')]:_0x32390d[_0xc008('0x29')];if(!_0x25eae4[_0xc008('0x2c')][_0xc008('0x33')](_0xc008('0x34'))){_0x24c14c['limit']=qs[_0xc008('0x1d')](_0x25eae4[_0xc008('0x2c')][_0xc008('0x1d')]);_0x24c14c[_0xc008('0x1b')]=qs[_0xc008('0x1b')](_0x25eae4[_0xc008('0x2c')][_0xc008('0x1b')]);}_0x24c14c['order']=qs[_0xc008('0x35')](_0x25eae4[_0xc008('0x2c')]['sort']);_0x24c14c[_0xc008('0x36')]=qs[_0xc008('0x2e')](_['pick'](_0x25eae4[_0xc008('0x2c')],_0x32390d[_0xc008('0x2e')]),_0x2a7d4f);if(_0x25eae4[_0xc008('0x2c')]['filter']){_0x24c14c['where']=_['merge'](_0x24c14c[_0xc008('0x36')],{'$or':_['map'](_0x2a7d4f,function(_0x3dd0ac){if(_0x3dd0ac[_0xc008('0x37')]!==_0xc008('0x38')){var _0x440459={};_0x440459[_0x3dd0ac[_0xc008('0x2b')]]={'$like':'%'+_0x25eae4[_0xc008('0x2c')][_0xc008('0x39')]+'%'};return _0x440459;}})});}_0x24c14c=_[_0xc008('0x3a')]({},_0x24c14c,_0x25eae4[_0xc008('0x3b')]);var _0x387dfd={'where':_0x24c14c[_0xc008('0x36')]};return db[_0xc008('0x26')][_0xc008('0x1e')](_0x387dfd)[_0xc008('0x21')](function(_0x4cace5){_0x209591[_0xc008('0x1e')]=_0x4cace5;if(_0x25eae4[_0xc008('0x2c')][_0xc008('0x3c')]){_0x24c14c[_0xc008('0x3d')]=[{'all':!![]}];}return db['MemberReport'][_0xc008('0x3e')](_0x24c14c);})[_0xc008('0x21')](function(_0xc8cb91){_0x209591[_0xc008('0x3f')]=_0xc8cb91;return _0x209591;})[_0xc008('0x21')](respondWithFilteredResult(_0x529961,_0x24c14c))['catch'](handleError(_0x529961,null));};exports[_0xc008('0x40')]=function(_0x3323f4,_0x3794b0){var _0x3e9a99={'raw':!![],'where':{'id':_0x3323f4['params']['id']}},_0x7279e8={};_0x7279e8[_0xc008('0x29')]=_[_0xc008('0x2d')](db[_0xc008('0x26')][_0xc008('0x27')]);_0x7279e8['query']=_[_0xc008('0x2d')](_0x3323f4[_0xc008('0x2c')]);_0x7279e8[_0xc008('0x2e')]=_['intersection'](_0x7279e8[_0xc008('0x29')],_0x7279e8['query']);_0x3e9a99[_0xc008('0x30')]=_['intersection'](_0x7279e8[_0xc008('0x29')],qs[_0xc008('0x31')](_0x3323f4['query'][_0xc008('0x31')]));_0x3e9a99[_0xc008('0x30')]=_0x3e9a99[_0xc008('0x30')]['length']?_0x3e9a99[_0xc008('0x30')]:_0x7279e8[_0xc008('0x29')];if(_0x3323f4[_0xc008('0x2c')][_0xc008('0x3c')]){_0x3e9a99[_0xc008('0x3d')]=[{'all':!![]}];}_0x3e9a99=_[_0xc008('0x3a')]({},_0x3e9a99,_0x3323f4['options']);return db['MemberReport']['find'](_0x3e9a99)[_0xc008('0x21')](handleEntityNotFound(_0x3794b0,null))[_0xc008('0x21')](respondWithResult(_0x3794b0,null))[_0xc008('0x41')](handleError(_0x3794b0,null));};exports[_0xc008('0x42')]=function(_0x25289f,_0x24f6a4){return db[_0xc008('0x26')][_0xc008('0x42')](_0x25289f['body'],{})['then'](respondWithResult(_0x24f6a4,0xc9))['catch'](handleError(_0x24f6a4,null));};exports[_0xc008('0x20')]=function(_0x2651cf,_0x158eae){if(_0x2651cf['body']['id']){delete _0x2651cf[_0xc008('0x43')]['id'];}return db[_0xc008('0x26')][_0xc008('0x44')]({'where':{'id':_0x2651cf[_0xc008('0x45')]['id']}})[_0xc008('0x21')](handleEntityNotFound(_0x158eae,null))[_0xc008('0x21')](saveUpdates(_0x2651cf[_0xc008('0x43')],null))[_0xc008('0x21')](respondWithResult(_0x158eae,null))[_0xc008('0x41')](handleError(_0x158eae,null));};exports[_0xc008('0x22')]=function(_0x52c444,_0x4c63d4){return db[_0xc008('0x26')]['find']({'where':{'id':_0x52c444[_0xc008('0x45')]['id']}})[_0xc008('0x21')](handleEntityNotFound(_0x4c63d4,null))[_0xc008('0x21')](removeEntity(_0x4c63d4,null))['catch'](handleError(_0x4c63d4,null));};exports[_0xc008('0x46')]=function(_0x32b435,_0xee64){return db[_0xc008('0x26')][_0xc008('0x46')]()['then'](respondWithResult(_0xee64,null))[_0xc008('0x41')](handleError(_0xee64,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdb60=['interface','lodash','util','../../config/logger','api','moment','bluebird','../../config/environment','./memberReport.attributes','exports','define','MemberReport'];(function(_0x4cd690,_0x4797cc){var _0x4a74a9=function(_0x4cbbc5){while(--_0x4cbbc5){_0x4cd690['push'](_0x4cd690['shift']());}};_0x4a74a9(++_0x4797cc);}(_0xdb60,0xfd));var _0x0db6=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0xdb60[_0x14add3];return _0x4a174f;};'use strict';var _=require(_0x0db6('0x0'));var util=require(_0x0db6('0x1'));var logger=require(_0x0db6('0x2'))(_0x0db6('0x3'));var moment=require(_0x0db6('0x4'));var BPromise=require(_0x0db6('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0x0db6('0x6'));var attributes=require(_0x0db6('0x7'));module[_0x0db6('0x8')]=function(_0x2d4d76,_0x26f92b){return _0x2d4d76[_0x0db6('0x9')](_0x0db6('0xa'),attributes,{'tableName':'report_member','paranoid':![],'indexes':[{'name':'membername_interface','fields':['membername',_0x0db6('0xb')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x8184=['util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','./memberReport.attributes','exports','define','MemberReport','report_member','membername_interface','membername','interface','lodash'];(function(_0x428460,_0x47830d){var _0xfa4da4=function(_0x56419e){while(--_0x56419e){_0x428460['push'](_0x428460['shift']());}};_0xfa4da4(++_0x47830d);}(_0x8184,0x76));var _0x4818=function(_0x107069,_0xfea78a){_0x107069=_0x107069-0x0;var _0x170b71=_0x8184[_0x107069];return _0x170b71;};'use strict';var _=require(_0x4818('0x0'));var util=require(_0x4818('0x1'));var logger=require(_0x4818('0x2'))(_0x4818('0x3'));var moment=require(_0x4818('0x4'));var BPromise=require(_0x4818('0x5'));var rp=require(_0x4818('0x6'));var fs=require('fs');var path=require(_0x4818('0x7'));var rimraf=require(_0x4818('0x8'));var config=require('../../config/environment');var attributes=require(_0x4818('0x9'));module[_0x4818('0xa')]=function(_0x482816,_0x3412e2){return _0x482816[_0x4818('0xb')](_0x4818('0xc'),attributes,{'tableName':_0x4818('0xd'),'paranoid':![],'indexes':[{'name':_0x4818('0xe'),'fields':[_0x4818('0xf'),_0x4818('0x10')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0d91=['moment','bluebird','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','http','request','then','info','MemberReport,\x20%s,\x20%s','request\x20sent','debug','MemberReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','GetMemberReport','MemberReport','findAll','options','raw','where','attributes','limit','include','map','model','catch','CreateMemberReport','create','UpdateMemberReport','update','body','lodash','util'];(function(_0x3a07c1,_0x34d57f){var _0x2bbe15=function(_0x5a02fb){while(--_0x5a02fb){_0x3a07c1['push'](_0x3a07c1['shift']());}};_0x2bbe15(++_0x34d57f);}(_0x0d91,0x76));var _0x10d9=function(_0x599be2,_0x452992){_0x599be2=_0x599be2-0x0;var _0x9a9f96=_0x0d91[_0x599be2];return _0x9a9f96;};'use strict';var _=require(_0x10d9('0x0'));var util=require(_0x10d9('0x1'));var moment=require(_0x10d9('0x2'));var BPromise=require(_0x10d9('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x10d9('0x4'));var db=require(_0x10d9('0x5'))['db'];var utils=require(_0x10d9('0x6'));var logger=require('../../config/logger')(_0x10d9('0x7'));var config=require(_0x10d9('0x8'));var jayson=require(_0x10d9('0x9'));var client=jayson['client'][_0x10d9('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x3a49ab,_0x946fc7,_0x26b6cf){return new BPromise(function(_0x2558bb,_0x3d4ca7){return client[_0x10d9('0xb')](_0x3a49ab,_0x26b6cf)[_0x10d9('0xc')](function(_0x24b5e7){logger[_0x10d9('0xd')](_0x10d9('0xe'),_0x946fc7,_0x10d9('0xf'));logger[_0x10d9('0x10')](_0x10d9('0x11'),_0x946fc7,_0x10d9('0xf'),JSON[_0x10d9('0x12')](_0x24b5e7));if(_0x24b5e7[_0x10d9('0x13')]){if(_0x24b5e7['error'][_0x10d9('0x14')]===0x1f4){logger[_0x10d9('0x13')](_0x10d9('0xe'),_0x946fc7,_0x24b5e7[_0x10d9('0x13')][_0x10d9('0x15')]);return _0x3d4ca7(_0x24b5e7['error'][_0x10d9('0x15')]);}logger['error'](_0x10d9('0xe'),_0x946fc7,_0x24b5e7[_0x10d9('0x13')][_0x10d9('0x15')]);return _0x2558bb(_0x24b5e7[_0x10d9('0x13')][_0x10d9('0x15')]);}else{logger[_0x10d9('0xd')](_0x10d9('0xe'),_0x946fc7,_0x10d9('0xf'));_0x2558bb(_0x24b5e7[_0x10d9('0x16')][_0x10d9('0x15')]);}})['catch'](function(_0x5658b5){logger[_0x10d9('0x13')](_0x10d9('0xe'),_0x946fc7,_0x5658b5);_0x3d4ca7(_0x5658b5);});});}exports[_0x10d9('0x17')]=function(_0x1e9db9){var _0x4fdea6=this;return new Promise(function(_0x3f5819,_0x206045){return db[_0x10d9('0x18')][_0x10d9('0x19')]({'raw':_0x1e9db9['options']?_0x1e9db9[_0x10d9('0x1a')][_0x10d9('0x1b')]===undefined?!![]:![]:!![],'where':_0x1e9db9['options']?_0x1e9db9['options'][_0x10d9('0x1c')]||null:null,'attributes':_0x1e9db9['options']?_0x1e9db9[_0x10d9('0x1a')][_0x10d9('0x1d')]||null:null,'limit':_0x1e9db9['options']?_0x1e9db9[_0x10d9('0x1a')][_0x10d9('0x1e')]||null:null,'include':_0x1e9db9[_0x10d9('0x1a')]?_0x1e9db9[_0x10d9('0x1a')][_0x10d9('0x1f')]?_[_0x10d9('0x20')](_0x1e9db9[_0x10d9('0x1a')][_0x10d9('0x1f')],function(_0x13a3e0){return{'model':db[_0x13a3e0[_0x10d9('0x21')]],'as':_0x13a3e0['as'],'attributes':_0x13a3e0[_0x10d9('0x1d')],'include':_0x13a3e0[_0x10d9('0x1f')]?_[_0x10d9('0x20')](_0x13a3e0[_0x10d9('0x1f')],function(_0x76e43d){return{'model':db[_0x76e43d['model']],'as':_0x76e43d['as'],'attributes':_0x76e43d[_0x10d9('0x1d')],'include':_0x76e43d[_0x10d9('0x1f')]?_[_0x10d9('0x20')](_0x76e43d[_0x10d9('0x1f')],function(_0x4b2619){return{'model':db[_0x4b2619[_0x10d9('0x21')]],'as':_0x4b2619['as'],'attributes':_0x4b2619[_0x10d9('0x1d')]};}):[]};}):[]};}):[]:[]})[_0x10d9('0xc')](function(_0x96655f){logger[_0x10d9('0xd')](_0x10d9('0x17'),_0x1e9db9);logger['debug'](_0x10d9('0x17'),_0x1e9db9,JSON['stringify'](_0x96655f));_0x3f5819(_0x96655f);})[_0x10d9('0x22')](function(_0x3ec714){logger[_0x10d9('0x13')](_0x10d9('0x17'),_0x3ec714[_0x10d9('0x15')],_0x1e9db9);_0x206045(_0x4fdea6['error'](0x1f4,_0x3ec714['message']));});});};exports[_0x10d9('0x23')]=function(_0x108bd5){var _0x4f4359=this;return new Promise(function(_0x53ae15,_0x37b4de){return db[_0x10d9('0x18')][_0x10d9('0x24')](_0x108bd5['body'],{'raw':_0x108bd5[_0x10d9('0x1a')]?_0x108bd5['options'][_0x10d9('0x1b')]===undefined?!![]:![]:!![]})[_0x10d9('0xc')](function(_0x547dc2){logger['info'](_0x10d9('0x23'),_0x108bd5);logger[_0x10d9('0x10')]('CreateMemberReport',_0x108bd5,JSON[_0x10d9('0x12')](_0x547dc2));_0x53ae15(_0x547dc2);})[_0x10d9('0x22')](function(_0x5846bc){logger[_0x10d9('0x13')](_0x10d9('0x23'),_0x5846bc[_0x10d9('0x15')],_0x108bd5);_0x37b4de(_0x4f4359['error'](0x1f4,_0x5846bc[_0x10d9('0x15')]));});});};exports[_0x10d9('0x25')]=function(_0x9ddff){var _0x506575=this;return new Promise(function(_0x7dbda0,_0x3cdea9){return db['MemberReport'][_0x10d9('0x26')](_0x9ddff[_0x10d9('0x27')],{'raw':_0x9ddff[_0x10d9('0x1a')]?_0x9ddff[_0x10d9('0x1a')][_0x10d9('0x1b')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x9ddff[_0x10d9('0x1a')]?_0x9ddff['options']['where']||null:null,'attributes':_0x9ddff['options']?_0x9ddff[_0x10d9('0x1a')][_0x10d9('0x1d')]||null:null,'limit':_0x9ddff[_0x10d9('0x1a')]?_0x9ddff[_0x10d9('0x1a')][_0x10d9('0x1e')]||null:null})['then'](function(_0x3e1c4e){logger[_0x10d9('0xd')](_0x10d9('0x25'),_0x9ddff);logger[_0x10d9('0x10')]('UpdateMemberReport',_0x9ddff,JSON[_0x10d9('0x12')](_0x3e1c4e));_0x7dbda0(_0x3e1c4e);})[_0x10d9('0x22')](function(_0xdd2c0d){logger[_0x10d9('0x13')](_0x10d9('0x25'),_0xdd2c0d[_0x10d9('0x15')],_0x9ddff);_0x3cdea9(_0x506575['error'](0x1f4,_0xdd2c0d[_0x10d9('0x15')]));});});};
\ No newline at end of file
+var _0xc15b=['GetMemberReport','MemberReport','findAll','options','raw','where','attributes','limit','include','map','model','debug','stringify','CreateMemberReport','body','catch','update','UpdateMemberReport','lodash','moment','bluebird','randomstring','ioredis','../../config/logger','rpc','../../config/environment','then','info','MemberReport,\x20%s,\x20%s','request\x20sent','MemberReport,\x20%s,\x20%s,\x20%s','error','code','message','result'];(function(_0x4e5458,_0x439215){var _0xaf782=function(_0xb3898a){while(--_0xb3898a){_0x4e5458['push'](_0x4e5458['shift']());}};_0xaf782(++_0x439215);}(_0xc15b,0xe4));var _0xbc15=function(_0x280f4a,_0x2ed8d6){_0x280f4a=_0x280f4a-0x0;var _0x1bb157=_0xc15b[_0x280f4a];return _0x1bb157;};'use strict';var _=require(_0xbc15('0x0'));var util=require('util');var moment=require(_0xbc15('0x1'));var BPromise=require(_0xbc15('0x2'));var rs=require(_0xbc15('0x3'));var fs=require('fs');var Redis=require(_0xbc15('0x4'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0xbc15('0x5'))(_0xbc15('0x6'));var config=require(_0xbc15('0x7'));var jayson=require('jayson/promise');var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x1231f0,_0x22576c,_0x3cb4b5){return new BPromise(function(_0x50a276,_0x5c6269){return client['request'](_0x1231f0,_0x3cb4b5)[_0xbc15('0x8')](function(_0x571348){logger[_0xbc15('0x9')](_0xbc15('0xa'),_0x22576c,_0xbc15('0xb'));logger['debug'](_0xbc15('0xc'),_0x22576c,_0xbc15('0xb'),JSON['stringify'](_0x571348));if(_0x571348[_0xbc15('0xd')]){if(_0x571348[_0xbc15('0xd')][_0xbc15('0xe')]===0x1f4){logger['error']('MemberReport,\x20%s,\x20%s',_0x22576c,_0x571348['error'][_0xbc15('0xf')]);return _0x5c6269(_0x571348[_0xbc15('0xd')][_0xbc15('0xf')]);}logger[_0xbc15('0xd')](_0xbc15('0xa'),_0x22576c,_0x571348[_0xbc15('0xd')][_0xbc15('0xf')]);return _0x50a276(_0x571348[_0xbc15('0xd')][_0xbc15('0xf')]);}else{logger[_0xbc15('0x9')](_0xbc15('0xa'),_0x22576c,_0xbc15('0xb'));_0x50a276(_0x571348[_0xbc15('0x10')][_0xbc15('0xf')]);}})['catch'](function(_0x41a3e9){logger['error'](_0xbc15('0xa'),_0x22576c,_0x41a3e9);_0x5c6269(_0x41a3e9);});});}exports[_0xbc15('0x11')]=function(_0xa29e5f){var _0xc37530=this;return new Promise(function(_0x38a6b5,_0x3fa2b1){return db[_0xbc15('0x12')][_0xbc15('0x13')]({'raw':_0xa29e5f[_0xbc15('0x14')]?_0xa29e5f[_0xbc15('0x14')][_0xbc15('0x15')]===undefined?!![]:![]:!![],'where':_0xa29e5f[_0xbc15('0x14')]?_0xa29e5f['options'][_0xbc15('0x16')]||null:null,'attributes':_0xa29e5f[_0xbc15('0x14')]?_0xa29e5f['options'][_0xbc15('0x17')]||null:null,'limit':_0xa29e5f[_0xbc15('0x14')]?_0xa29e5f[_0xbc15('0x14')][_0xbc15('0x18')]||null:null,'include':_0xa29e5f[_0xbc15('0x14')]?_0xa29e5f[_0xbc15('0x14')][_0xbc15('0x19')]?_[_0xbc15('0x1a')](_0xa29e5f['options'][_0xbc15('0x19')],function(_0x128ce2){return{'model':db[_0x128ce2[_0xbc15('0x1b')]],'as':_0x128ce2['as'],'attributes':_0x128ce2['attributes'],'include':_0x128ce2[_0xbc15('0x19')]?_[_0xbc15('0x1a')](_0x128ce2[_0xbc15('0x19')],function(_0x15f6a9){return{'model':db[_0x15f6a9[_0xbc15('0x1b')]],'as':_0x15f6a9['as'],'attributes':_0x15f6a9[_0xbc15('0x17')],'include':_0x15f6a9['include']?_[_0xbc15('0x1a')](_0x15f6a9[_0xbc15('0x19')],function(_0x136852){return{'model':db[_0x136852[_0xbc15('0x1b')]],'as':_0x136852['as'],'attributes':_0x136852[_0xbc15('0x17')]};}):[]};}):[]};}):[]:[]})[_0xbc15('0x8')](function(_0x21284b){logger[_0xbc15('0x9')](_0xbc15('0x11'),_0xa29e5f);logger[_0xbc15('0x1c')](_0xbc15('0x11'),_0xa29e5f,JSON[_0xbc15('0x1d')](_0x21284b));_0x38a6b5(_0x21284b);})['catch'](function(_0x53f5c8){logger['error'](_0xbc15('0x11'),_0x53f5c8[_0xbc15('0xf')],_0xa29e5f);_0x3fa2b1(_0xc37530[_0xbc15('0xd')](0x1f4,_0x53f5c8[_0xbc15('0xf')]));});});};exports[_0xbc15('0x1e')]=function(_0x11dbf7){var _0xa9cf30=this;return new Promise(function(_0x574a36,_0x3d54e8){return db[_0xbc15('0x12')]['create'](_0x11dbf7[_0xbc15('0x1f')],{'raw':_0x11dbf7['options']?_0x11dbf7[_0xbc15('0x14')][_0xbc15('0x15')]===undefined?!![]:![]:!![]})['then'](function(_0x436b5c){logger['info'](_0xbc15('0x1e'),_0x11dbf7);logger['debug']('CreateMemberReport',_0x11dbf7,JSON['stringify'](_0x436b5c));_0x574a36(_0x436b5c);})[_0xbc15('0x20')](function(_0x48a20c){logger['error'](_0xbc15('0x1e'),_0x48a20c[_0xbc15('0xf')],_0x11dbf7);_0x3d54e8(_0xa9cf30['error'](0x1f4,_0x48a20c['message']));});});};exports['UpdateMemberReport']=function(_0x19c619){var _0x5bc149=this;return new Promise(function(_0x24ea42,_0x16c57b){return db[_0xbc15('0x12')][_0xbc15('0x21')](_0x19c619[_0xbc15('0x1f')],{'raw':_0x19c619['options']?_0x19c619[_0xbc15('0x14')][_0xbc15('0x15')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x19c619[_0xbc15('0x14')]?_0x19c619[_0xbc15('0x14')][_0xbc15('0x16')]||null:null,'attributes':_0x19c619['options']?_0x19c619[_0xbc15('0x14')][_0xbc15('0x17')]||null:null,'limit':_0x19c619[_0xbc15('0x14')]?_0x19c619[_0xbc15('0x14')][_0xbc15('0x18')]||null:null})[_0xbc15('0x8')](function(_0x9d5bcc){logger['info']('UpdateMemberReport',_0x19c619);logger['debug']('UpdateMemberReport',_0x19c619,JSON[_0xbc15('0x1d')](_0x9d5bcc));_0x24ea42(_0x9d5bcc);})[_0xbc15('0x20')](function(_0x125458){logger[_0xbc15('0xd')](_0xbc15('0x22'),_0x125458['message'],_0x19c619);_0x16c57b(_0x5bc149[_0xbc15('0xd')](0x1f4,_0x125458[_0xbc15('0xf')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x88cf=['path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../config/environment','./migration.controller','get','index','multer','util'];(function(_0x24871d,_0x1822f7){var _0x3fcd70=function(_0x3be2eb){while(--_0x3be2eb){_0x24871d['push'](_0x24871d['shift']());}};_0x3fcd70(++_0x1822f7);}(_0x88cf,0x1c6));var _0xf88c=function(_0x10db86,_0x58dab7){_0x10db86=_0x10db86-0x0;var _0x240da2=_0x88cf[_0x10db86];return _0x240da2;};'use strict';var multer=require(_0xf88c('0x0'));var util=require(_0xf88c('0x1'));var path=require(_0xf88c('0x2'));var timeout=require(_0xf88c('0x3'));var express=require(_0xf88c('0x4'));var router=express[_0xf88c('0x5')]();var fs_extra=require(_0xf88c('0x6'));var auth=require(_0xf88c('0x7'));var interaction=require('../../components/interaction/service');var config=require(_0xf88c('0x8'));var controller=require(_0xf88c('0x9'));router[_0xf88c('0xa')]('/',controller[_0xf88c('0xb')]);module['exports']=router;
\ No newline at end of file
+var _0x91f6=['../../config/environment','./migration.controller','get','exports','path','express','fs-extra','../../components/interaction/service'];(function(_0x42245d,_0x51758f){var _0x4b211a=function(_0x2634e){while(--_0x2634e){_0x42245d['push'](_0x42245d['shift']());}};_0x4b211a(++_0x51758f);}(_0x91f6,0x7c));var _0x691f=function(_0x54be23,_0x53a82e){_0x54be23=_0x54be23-0x0;var _0x48402c=_0x91f6[_0x54be23];return _0x48402c;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x691f('0x0'));var timeout=require('connect-timeout');var express=require(_0x691f('0x1'));var router=express['Router']();var fs_extra=require(_0x691f('0x2'));var auth=require('../../components/auth/service');var interaction=require(_0x691f('0x3'));var config=require(_0x691f('0x4'));var controller=require(_0x691f('0x5'));router[_0x691f('0x6')]('/',controller['index']);module[_0x691f('0x7')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6c99=['exports','version','sequelize'];(function(_0x2bf8ac,_0x4226be){var _0x3ef094=function(_0x3a5ec0){while(--_0x3a5ec0){_0x2bf8ac['push'](_0x2bf8ac['shift']());}};_0x3ef094(++_0x4226be);}(_0x6c99,0x1c4));var _0x96c9=function(_0x3fc97b,_0x20ca29){_0x3fc97b=_0x3fc97b-0x0;var _0x3a0c82=_0x6c99[_0x3fc97b];return _0x3a0c82;};'use strict';var Sequelize=require(_0x96c9('0x0'));module[_0x96c9('0x1')]={'version':{'type':Sequelize['STRING'],'unique':_0x96c9('0x2')}};
\ No newline at end of file
+var _0x56dd=['sequelize','exports','STRING'];(function(_0x4a3898,_0x4c9853){var _0x25ceb0=function(_0x528b6d){while(--_0x528b6d){_0x4a3898['push'](_0x4a3898['shift']());}};_0x25ceb0(++_0x4c9853);}(_0x56dd,0xd8));var _0xd56d=function(_0x3279ad,_0x3c387c){_0x3279ad=_0x3279ad-0x0;var _0x1d033b=_0x56dd[_0x3279ad];return _0x1d033b;};'use strict';var Sequelize=require(_0xd56d('0x0'));module[_0xd56d('0x1')]={'version':{'type':Sequelize[_0xd56d('0x2')],'unique':'version'}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x82df=['sendStatus','status','end','json','offset','limit','undefined','count','set','Content-Range','apply','reject','save','destroy','name','send','index','rawAttributes','fieldName','type','key','model','map','query','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','pick','merge','VIRTUAL','filter','Migration','then','includeAll','include','findAll','rows','catch','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb'];(function(_0x47d42a,_0x582563){var _0x39eaac=function(_0x563dff){while(--_0x563dff){_0x47d42a['push'](_0x47d42a['shift']());}};_0x39eaac(++_0x582563);}(_0x82df,0x70));var _0xf82d=function(_0x4b2df3,_0x50a168){_0x4b2df3=_0x4b2df3-0x0;var _0x4daa61=_0x82df[_0x4b2df3];return _0x4daa61;};'use strict';var emlformat=require(_0xf82d('0x0'));var rimraf=require(_0xf82d('0x1'));var zipdir=require(_0xf82d('0x2'));var jsonpatch=require(_0xf82d('0x3'));var rp=require(_0xf82d('0x4'));var moment=require(_0xf82d('0x5'));var BPromise=require(_0xf82d('0x6'));var Mustache=require('mustache');var util=require(_0xf82d('0x7'));var path=require(_0xf82d('0x8'));var sox=require('sox');var csv=require(_0xf82d('0x9'));var ejs=require(_0xf82d('0xa'));var fs=require('fs');var fs_extra=require(_0xf82d('0xb'));var _=require(_0xf82d('0xc'));var squel=require(_0xf82d('0xd'));var crypto=require(_0xf82d('0xe'));var jsforce=require(_0xf82d('0xf'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xf82d('0x10'));var Redis=require('ioredis');var authService=require(_0xf82d('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0xf82d('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xf82d('0x13'));var utils=require(_0xf82d('0x14'));var config=require(_0xf82d('0x15'));var licenseUtil=require(_0xf82d('0x16'));var db=require(_0xf82d('0x17'))['db'];function respondWithStatusCode(_0x11cb78,_0x20d777){_0x20d777=_0x20d777||0xcc;return function(_0x5228c0){if(_0x5228c0){return _0x11cb78[_0xf82d('0x18')](_0x20d777);}return _0x11cb78[_0xf82d('0x19')](_0x20d777)[_0xf82d('0x1a')]();};}function respondWithResult(_0x23c903,_0x23469b){_0x23469b=_0x23469b||0xc8;return function(_0x3687fa){if(_0x3687fa){return _0x23c903[_0xf82d('0x19')](_0x23469b)[_0xf82d('0x1b')](_0x3687fa);}};}function respondWithFilteredResult(_0x5b5724,_0xf9ddd8){return function(_0x5f02f1){if(_0x5f02f1){var _0x3c89e0=typeof _0xf9ddd8[_0xf82d('0x1c')]==='undefined'&&typeof _0xf9ddd8[_0xf82d('0x1d')]===_0xf82d('0x1e');var _0x129e5d=_0x5f02f1[_0xf82d('0x1f')];var _0x308532=_0x3c89e0?0x0:_0xf9ddd8[_0xf82d('0x1c')];var _0x227e18=_0x3c89e0?_0x5f02f1[_0xf82d('0x1f')]:_0xf9ddd8[_0xf82d('0x1c')]+_0xf9ddd8['limit'];var _0x3fe7a0;if(_0x227e18>=_0x129e5d){_0x227e18=_0x129e5d;_0x3fe7a0=0xc8;}else{_0x3fe7a0=0xce;}_0x5b5724[_0xf82d('0x19')](_0x3fe7a0);return _0x5b5724[_0xf82d('0x20')](_0xf82d('0x21'),_0x308532+'-'+_0x227e18+'/'+_0x129e5d)[_0xf82d('0x1b')](_0x5f02f1);}return null;};}function patchUpdates(_0xb860f0){return function(_0x3a6754){try{jsonpatch[_0xf82d('0x22')](_0x3a6754,_0xb860f0,!![]);}catch(_0x3ca939){return BPromise[_0xf82d('0x23')](_0x3ca939);}return _0x3a6754[_0xf82d('0x24')]();};}function saveUpdates(_0x8e23eb,_0x49fc48){return function(_0x34278a){if(_0x34278a){return _0x34278a['update'](_0x8e23eb)['then'](function(_0x4c1f21){return _0x4c1f21;});}return null;};}function removeEntity(_0x15798c,_0x3d27cf){return function(_0x5e1669){if(_0x5e1669){return _0x5e1669[_0xf82d('0x25')]()['then'](function(){_0x15798c[_0xf82d('0x19')](0xcc)[_0xf82d('0x1a')]();});}};}function handleEntityNotFound(_0x23e0a7,_0x12b3ed){return function(_0x2399fa){if(!_0x2399fa){_0x23e0a7['sendStatus'](0x194);}return _0x2399fa;};}function handleError(_0x32781d,_0x2571e3){_0x2571e3=_0x2571e3||0x1f4;return function(_0x5464f3){logger['error'](_0x5464f3['stack']);if(_0x5464f3[_0xf82d('0x26')]){delete _0x5464f3['name'];}_0x32781d['status'](_0x2571e3)[_0xf82d('0x27')](_0x5464f3);};}exports[_0xf82d('0x28')]=function(_0x4d49ab,_0xca6814){var _0xd5c8a6={},_0x56c80c={},_0x3604cc={'count':0x0,'rows':[]};var _0x39631e=_['map'](db['Migration'][_0xf82d('0x29')],function(_0x4531af){return{'name':_0x4531af[_0xf82d('0x2a')],'type':_0x4531af[_0xf82d('0x2b')][_0xf82d('0x2c')]};});_0x56c80c[_0xf82d('0x2d')]=_[_0xf82d('0x2e')](_0x39631e,_0xf82d('0x26'));_0x56c80c[_0xf82d('0x2f')]=_['keys'](_0x4d49ab[_0xf82d('0x2f')]);_0x56c80c[_0xf82d('0x30')]=_[_0xf82d('0x31')](_0x56c80c[_0xf82d('0x2d')],_0x56c80c['query']);_0xd5c8a6[_0xf82d('0x32')]=_[_0xf82d('0x31')](_0x56c80c[_0xf82d('0x2d')],qs[_0xf82d('0x33')](_0x4d49ab[_0xf82d('0x2f')][_0xf82d('0x33')]));_0xd5c8a6['attributes']=_0xd5c8a6['attributes'][_0xf82d('0x34')]?_0xd5c8a6['attributes']:_0x56c80c['model'];if(!_0x4d49ab['query'][_0xf82d('0x35')]('nolimit')){_0xd5c8a6[_0xf82d('0x1d')]=qs[_0xf82d('0x1d')](_0x4d49ab[_0xf82d('0x2f')][_0xf82d('0x1d')]);_0xd5c8a6[_0xf82d('0x1c')]=qs['offset'](_0x4d49ab[_0xf82d('0x2f')][_0xf82d('0x1c')]);}_0xd5c8a6[_0xf82d('0x36')]=qs[_0xf82d('0x37')](_0x4d49ab['query'][_0xf82d('0x37')]);_0xd5c8a6[_0xf82d('0x38')]=qs[_0xf82d('0x30')](_[_0xf82d('0x39')](_0x4d49ab['query'],_0x56c80c['filters']),_0x39631e);if(_0x4d49ab[_0xf82d('0x2f')]['filter']){_0xd5c8a6['where']=_[_0xf82d('0x3a')](_0xd5c8a6[_0xf82d('0x38')],{'$or':_[_0xf82d('0x2e')](_0x39631e,function(_0x46f87e){if(_0x46f87e[_0xf82d('0x2b')]!==_0xf82d('0x3b')){var _0x4a4c0f={};_0x4a4c0f[_0x46f87e['name']]={'$like':'%'+_0x4d49ab[_0xf82d('0x2f')][_0xf82d('0x3c')]+'%'};return _0x4a4c0f;}})});}_0xd5c8a6=_[_0xf82d('0x3a')]({},_0xd5c8a6,_0x4d49ab['options']);var _0x5ba87a={'where':_0xd5c8a6[_0xf82d('0x38')]};return db[_0xf82d('0x3d')][_0xf82d('0x1f')](_0x5ba87a)[_0xf82d('0x3e')](function(_0x268f42){_0x3604cc[_0xf82d('0x1f')]=_0x268f42;if(_0x4d49ab['query'][_0xf82d('0x3f')]){_0xd5c8a6[_0xf82d('0x40')]=[{'all':!![]}];}return db[_0xf82d('0x3d')][_0xf82d('0x41')](_0xd5c8a6);})[_0xf82d('0x3e')](function(_0x416c6a){_0x3604cc[_0xf82d('0x42')]=_0x416c6a;return _0x3604cc;})['then'](respondWithFilteredResult(_0xca6814,_0xd5c8a6))[_0xf82d('0x43')](handleError(_0xca6814,null));};
\ No newline at end of file
+var _0xd6c2=['sort','where','pick','filters','merge','VIRTUAL','filter','includeAll','include','findAll','rimraf','zip-dir','fast-json-patch','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','jsforce','desk.js','querystring','../../components/auth/service','../../components/parsers/qs','../../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','reject','save','update','then','destroy','sendStatus','name','index','map','Migration','rawAttributes','key','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','order'];(function(_0x4e0877,_0x39f620){var _0x57d0dd=function(_0x27fb9a){while(--_0x27fb9a){_0x4e0877['push'](_0x4e0877['shift']());}};_0x57d0dd(++_0x39f620);}(_0xd6c2,0x14a));var _0x2d6c=function(_0x3a789c,_0x29efdb){_0x3a789c=_0x3a789c-0x0;var _0x3fb591=_0xd6c2[_0x3a789c];return _0x3fb591;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x2d6c('0x0'));var zipdir=require(_0x2d6c('0x1'));var jsonpatch=require(_0x2d6c('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x2d6c('0x3'));var Mustache=require(_0x2d6c('0x4'));var util=require(_0x2d6c('0x5'));var path=require(_0x2d6c('0x6'));var sox=require(_0x2d6c('0x7'));var csv=require(_0x2d6c('0x8'));var ejs=require(_0x2d6c('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x2d6c('0xa'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x2d6c('0xb'));var deskjs=require(_0x2d6c('0xc'));var toCsv=require(_0x2d6c('0x8'));var querystring=require(_0x2d6c('0xd'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x2d6c('0xe'));var qs=require(_0x2d6c('0xf'));var as=require(_0x2d6c('0x10'));var hardwareService=require(_0x2d6c('0x11'));var logger=require(_0x2d6c('0x12'))(_0x2d6c('0x13'));var utils=require(_0x2d6c('0x14'));var config=require(_0x2d6c('0x15'));var licenseUtil=require(_0x2d6c('0x16'));var db=require(_0x2d6c('0x17'))['db'];function respondWithStatusCode(_0x1a87c3,_0x4ecb6d){_0x4ecb6d=_0x4ecb6d||0xcc;return function(_0x37982d){if(_0x37982d){return _0x1a87c3['sendStatus'](_0x4ecb6d);}return _0x1a87c3[_0x2d6c('0x18')](_0x4ecb6d)[_0x2d6c('0x19')]();};}function respondWithResult(_0x54fb3b,_0x2888be){_0x2888be=_0x2888be||0xc8;return function(_0x123666){if(_0x123666){return _0x54fb3b[_0x2d6c('0x18')](_0x2888be)[_0x2d6c('0x1a')](_0x123666);}};}function respondWithFilteredResult(_0x3cbf89,_0x22aa2e){return function(_0x19255e){if(_0x19255e){var _0x579164=typeof _0x22aa2e[_0x2d6c('0x1b')]===_0x2d6c('0x1c')&&typeof _0x22aa2e[_0x2d6c('0x1d')]===_0x2d6c('0x1c');var _0x5a2e1e=_0x19255e['count'];var _0x244745=_0x579164?0x0:_0x22aa2e[_0x2d6c('0x1b')];var _0x30a070=_0x579164?_0x19255e[_0x2d6c('0x1e')]:_0x22aa2e[_0x2d6c('0x1b')]+_0x22aa2e[_0x2d6c('0x1d')];var _0x49c9a6;if(_0x30a070>=_0x5a2e1e){_0x30a070=_0x5a2e1e;_0x49c9a6=0xc8;}else{_0x49c9a6=0xce;}_0x3cbf89['status'](_0x49c9a6);return _0x3cbf89[_0x2d6c('0x1f')]('Content-Range',_0x244745+'-'+_0x30a070+'/'+_0x5a2e1e)[_0x2d6c('0x1a')](_0x19255e);}return null;};}function patchUpdates(_0x349590){return function(_0x56ea96){try{jsonpatch['apply'](_0x56ea96,_0x349590,!![]);}catch(_0x28fcd2){return BPromise[_0x2d6c('0x20')](_0x28fcd2);}return _0x56ea96[_0x2d6c('0x21')]();};}function saveUpdates(_0x3530da,_0x3a1ee5){return function(_0x1f18e3){if(_0x1f18e3){return _0x1f18e3[_0x2d6c('0x22')](_0x3530da)[_0x2d6c('0x23')](function(_0x148396){return _0x148396;});}return null;};}function removeEntity(_0x542af2,_0xe15475){return function(_0x13ac9b){if(_0x13ac9b){return _0x13ac9b[_0x2d6c('0x24')]()['then'](function(){_0x542af2['status'](0xcc)[_0x2d6c('0x19')]();});}};}function handleEntityNotFound(_0x38e575,_0x366f5b){return function(_0xa30cf1){if(!_0xa30cf1){_0x38e575[_0x2d6c('0x25')](0x194);}return _0xa30cf1;};}function handleError(_0x403dfc,_0x54750f){_0x54750f=_0x54750f||0x1f4;return function(_0x50aa37){logger['error'](_0x50aa37['stack']);if(_0x50aa37[_0x2d6c('0x26')]){delete _0x50aa37['name'];}_0x403dfc[_0x2d6c('0x18')](_0x54750f)['send'](_0x50aa37);};}exports[_0x2d6c('0x27')]=function(_0x458bcd,_0x329c2f){var _0x4b7be1={},_0x1fb262={},_0x33137a={'count':0x0,'rows':[]};var _0x3e3934=_[_0x2d6c('0x28')](db[_0x2d6c('0x29')][_0x2d6c('0x2a')],function(_0x115b18){return{'name':_0x115b18['fieldName'],'type':_0x115b18['type'][_0x2d6c('0x2b')]};});_0x1fb262[_0x2d6c('0x2c')]=_[_0x2d6c('0x28')](_0x3e3934,_0x2d6c('0x26'));_0x1fb262[_0x2d6c('0x2d')]=_[_0x2d6c('0x2e')](_0x458bcd[_0x2d6c('0x2d')]);_0x1fb262['filters']=_[_0x2d6c('0x2f')](_0x1fb262[_0x2d6c('0x2c')],_0x1fb262['query']);_0x4b7be1[_0x2d6c('0x30')]=_[_0x2d6c('0x2f')](_0x1fb262[_0x2d6c('0x2c')],qs[_0x2d6c('0x31')](_0x458bcd['query'][_0x2d6c('0x31')]));_0x4b7be1[_0x2d6c('0x30')]=_0x4b7be1[_0x2d6c('0x30')][_0x2d6c('0x32')]?_0x4b7be1[_0x2d6c('0x30')]:_0x1fb262[_0x2d6c('0x2c')];if(!_0x458bcd[_0x2d6c('0x2d')][_0x2d6c('0x33')](_0x2d6c('0x34'))){_0x4b7be1[_0x2d6c('0x1d')]=qs['limit'](_0x458bcd['query'][_0x2d6c('0x1d')]);_0x4b7be1['offset']=qs['offset'](_0x458bcd['query']['offset']);}_0x4b7be1[_0x2d6c('0x35')]=qs['sort'](_0x458bcd['query'][_0x2d6c('0x36')]);_0x4b7be1[_0x2d6c('0x37')]=qs['filters'](_[_0x2d6c('0x38')](_0x458bcd[_0x2d6c('0x2d')],_0x1fb262[_0x2d6c('0x39')]),_0x3e3934);if(_0x458bcd[_0x2d6c('0x2d')]['filter']){_0x4b7be1[_0x2d6c('0x37')]=_[_0x2d6c('0x3a')](_0x4b7be1['where'],{'$or':_['map'](_0x3e3934,function(_0x5cc996){if(_0x5cc996['type']!==_0x2d6c('0x3b')){var _0x2be8a2={};_0x2be8a2[_0x5cc996[_0x2d6c('0x26')]]={'$like':'%'+_0x458bcd['query'][_0x2d6c('0x3c')]+'%'};return _0x2be8a2;}})});}_0x4b7be1=_['merge']({},_0x4b7be1,_0x458bcd['options']);var _0xf3230f={'where':_0x4b7be1[_0x2d6c('0x37')]};return db[_0x2d6c('0x29')][_0x2d6c('0x1e')](_0xf3230f)[_0x2d6c('0x23')](function(_0x3ee5b0){_0x33137a[_0x2d6c('0x1e')]=_0x3ee5b0;if(_0x458bcd[_0x2d6c('0x2d')][_0x2d6c('0x3d')]){_0x4b7be1[_0x2d6c('0x3e')]=[{'all':!![]}];}return db[_0x2d6c('0x29')][_0x2d6c('0x3f')](_0x4b7be1);})[_0x2d6c('0x23')](function(_0x1ef0a0){_0x33137a['rows']=_0x1ef0a0;return _0x33137a;})[_0x2d6c('0x23')](respondWithFilteredResult(_0x329c2f,_0x4b7be1))['catch'](handleError(_0x329c2f,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3bb8=['lodash','../../config/logger','api','moment','bluebird','rimraf','./migration.attributes','exports','define','Migration','migrations'];(function(_0x55b0f6,_0x368858){var _0x2b6c4b=function(_0x30a7b7){while(--_0x30a7b7){_0x55b0f6['push'](_0x55b0f6['shift']());}};_0x2b6c4b(++_0x368858);}(_0x3bb8,0x1a2));var _0x83bb=function(_0x6bf280,_0x1eea2b){_0x6bf280=_0x6bf280-0x0;var _0x328c70=_0x3bb8[_0x6bf280];return _0x328c70;};'use strict';var _=require(_0x83bb('0x0'));var util=require('util');var logger=require(_0x83bb('0x1'))(_0x83bb('0x2'));var moment=require(_0x83bb('0x3'));var BPromise=require(_0x83bb('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0x83bb('0x5'));var config=require('../../config/environment');var attributes=require(_0x83bb('0x6'));module[_0x83bb('0x7')]=function(_0x1c183d,_0x52ea56){return _0x1c183d[_0x83bb('0x8')](_0x83bb('0x9'),attributes,{'tableName':_0x83bb('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xa27a=['define','migrations','util','api','bluebird','request-promise','path','rimraf','../../config/environment','./migration.attributes','exports'];(function(_0x243b59,_0x3f9495){var _0x3e1676=function(_0x354052){while(--_0x354052){_0x243b59['push'](_0x243b59['shift']());}};_0x3e1676(++_0x3f9495);}(_0xa27a,0x70));var _0xaa27=function(_0x4e294f,_0x14d4d9){_0x4e294f=_0x4e294f-0x0;var _0xb92bf7=_0xa27a[_0x4e294f];return _0xb92bf7;};'use strict';var _=require('lodash');var util=require(_0xaa27('0x0'));var logger=require('../../config/logger')(_0xaa27('0x1'));var moment=require('moment');var BPromise=require(_0xaa27('0x2'));var rp=require(_0xaa27('0x3'));var fs=require('fs');var path=require(_0xaa27('0x4'));var rimraf=require(_0xaa27('0x5'));var config=require(_0xaa27('0x6'));var attributes=require(_0xaa27('0x7'));module[_0xaa27('0x8')]=function(_0x345cfc,_0x2336f9){return _0x345cfc[_0xaa27('0x9')]('Migration',attributes,{'tableName':_0xaa27('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x81a5=['lodash','util','moment','bluebird','randomstring','ioredis','../../config/utils','client','request','then','Migration,\x20%s,\x20%s','debug','Migration,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message','info','result'];(function(_0x3b4908,_0x174867){var _0x3895c5=function(_0x4d223e){while(--_0x4d223e){_0x3b4908['push'](_0x3b4908['shift']());}};_0x3895c5(++_0x174867);}(_0x81a5,0x1c8));var _0x581a=function(_0x51b1a5,_0xac2dcb){_0x51b1a5=_0x51b1a5-0x0;var _0x3451b8=_0x81a5[_0x51b1a5];return _0x3451b8;};'use strict';var _=require(_0x581a('0x0'));var util=require(_0x581a('0x1'));var moment=require(_0x581a('0x2'));var BPromise=require(_0x581a('0x3'));var rs=require(_0x581a('0x4'));var fs=require('fs');var Redis=require(_0x581a('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0x581a('0x6'));var logger=require('../../config/logger')('rpc');var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0x581a('0x7')]['http']({'port':0x232a});function respondWithRpcPromise(_0xdcb7c0,_0x3bcfe6,_0x148bc7){return new BPromise(function(_0x18dec1,_0x23ba13){return client[_0x581a('0x8')](_0xdcb7c0,_0x148bc7)[_0x581a('0x9')](function(_0x31b3ac){logger['info'](_0x581a('0xa'),_0x3bcfe6,'request\x20sent');logger[_0x581a('0xb')](_0x581a('0xc'),_0x3bcfe6,_0x581a('0xd'),JSON[_0x581a('0xe')](_0x31b3ac));if(_0x31b3ac['error']){if(_0x31b3ac[_0x581a('0xf')]['code']===0x1f4){logger['error']('Migration,\x20%s,\x20%s',_0x3bcfe6,_0x31b3ac['error'][_0x581a('0x10')]);return _0x23ba13(_0x31b3ac[_0x581a('0xf')]['message']);}logger[_0x581a('0xf')](_0x581a('0xa'),_0x3bcfe6,_0x31b3ac[_0x581a('0xf')][_0x581a('0x10')]);return _0x18dec1(_0x31b3ac[_0x581a('0xf')][_0x581a('0x10')]);}else{logger[_0x581a('0x11')](_0x581a('0xa'),_0x3bcfe6,'request\x20sent');_0x18dec1(_0x31b3ac[_0x581a('0x12')][_0x581a('0x10')]);}})['catch'](function(_0x12cab1){logger[_0x581a('0xf')](_0x581a('0xa'),_0x3bcfe6,_0x12cab1);_0x23ba13(_0x12cab1);});});}
\ No newline at end of file
+var _0x0713=['Migration,\x20%s,\x20%s','request\x20sent','debug','Migration,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info'];(function(_0x16c21d,_0x4c53e2){var _0x21c269=function(_0x4f3fdd){while(--_0x4f3fdd){_0x16c21d['push'](_0x16c21d['shift']());}};_0x21c269(++_0x4c53e2);}(_0x0713,0x1ba));var _0x3071=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x0713[_0x3dd15e];return _0x231fd0;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0x3071('0x0'));var BPromise=require(_0x3071('0x1'));var rs=require(_0x3071('0x2'));var fs=require('fs');var Redis=require(_0x3071('0x3'));var db=require(_0x3071('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0x3071('0x5'))(_0x3071('0x6'));var config=require(_0x3071('0x7'));var jayson=require(_0x3071('0x8'));var client=jayson[_0x3071('0x9')][_0x3071('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x1d3dd6,_0x2f1e87,_0xbd737f){return new BPromise(function(_0x22274c,_0x3e9a5e){return client[_0x3071('0xb')](_0x1d3dd6,_0xbd737f)[_0x3071('0xc')](function(_0x4a36ec){logger[_0x3071('0xd')](_0x3071('0xe'),_0x2f1e87,_0x3071('0xf'));logger[_0x3071('0x10')](_0x3071('0x11'),_0x2f1e87,'request\x20sent',JSON[_0x3071('0x12')](_0x4a36ec));if(_0x4a36ec[_0x3071('0x13')]){if(_0x4a36ec[_0x3071('0x13')][_0x3071('0x14')]===0x1f4){logger[_0x3071('0x13')]('Migration,\x20%s,\x20%s',_0x2f1e87,_0x4a36ec['error'][_0x3071('0x15')]);return _0x3e9a5e(_0x4a36ec['error'][_0x3071('0x15')]);}logger[_0x3071('0x13')]('Migration,\x20%s,\x20%s',_0x2f1e87,_0x4a36ec[_0x3071('0x13')]['message']);return _0x22274c(_0x4a36ec[_0x3071('0x13')][_0x3071('0x15')]);}else{logger[_0x3071('0xd')](_0x3071('0xe'),_0x2f1e87,_0x3071('0xf'));_0x22274c(_0x4a36ec[_0x3071('0x16')][_0x3071('0x15')]);}})[_0x3071('0x17')](function(_0x21aad3){logger[_0x3071('0x13')]('Migration,\x20%s,\x20%s',_0x2f1e87,_0x21aad3);_0x3e9a5e(_0x21aad3);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xaecc=['isAuthenticated','index','/:id','show','post','create','put','update','delete','exports','multer','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./network.controller','get'];(function(_0x4e24a6,_0x26972d){var _0x5ece8a=function(_0x117fa8){while(--_0x117fa8){_0x4e24a6['push'](_0x4e24a6['shift']());}};_0x5ece8a(++_0x26972d);}(_0xaecc,0x172));var _0xcaec=function(_0xa6b0f,_0x2cf2ae){_0xa6b0f=_0xa6b0f-0x0;var _0x1c71c0=_0xaecc[_0xa6b0f];return _0x1c71c0;};'use strict';var multer=require(_0xcaec('0x0'));var util=require('util');var path=require(_0xcaec('0x1'));var timeout=require(_0xcaec('0x2'));var express=require(_0xcaec('0x3'));var router=express[_0xcaec('0x4')]();var fs_extra=require(_0xcaec('0x5'));var auth=require(_0xcaec('0x6'));var interaction=require(_0xcaec('0x7'));var config=require('../../config/environment');var controller=require(_0xcaec('0x8'));router[_0xcaec('0x9')]('/',auth[_0xcaec('0xa')](),controller[_0xcaec('0xb')]);router[_0xcaec('0x9')](_0xcaec('0xc'),auth[_0xcaec('0xa')](),controller[_0xcaec('0xd')]);router[_0xcaec('0xe')]('/',auth['isAuthenticated'](),controller[_0xcaec('0xf')]);router[_0xcaec('0x10')](_0xcaec('0xc'),auth['isAuthenticated'](),controller[_0xcaec('0x11')]);router[_0xcaec('0x12')]('/:id',auth[_0xcaec('0xa')](),controller['destroy']);module[_0xcaec('0x13')]=router;
\ No newline at end of file
+var _0xc04a=['show','post','create','put','update','delete','destroy','exports','multer','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./network.controller','get','isAuthenticated','index','/:id'];(function(_0x2805ac,_0x236149){var _0x3fd1e6=function(_0x532be3){while(--_0x532be3){_0x2805ac['push'](_0x2805ac['shift']());}};_0x3fd1e6(++_0x236149);}(_0xc04a,0x184));var _0xac04=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xc04a[_0x3dd15e];return _0x231fd0;};'use strict';var multer=require(_0xac04('0x0'));var util=require('util');var path=require('path');var timeout=require(_0xac04('0x1'));var express=require('express');var router=express[_0xac04('0x2')]();var fs_extra=require(_0xac04('0x3'));var auth=require(_0xac04('0x4'));var interaction=require(_0xac04('0x5'));var config=require('../../config/environment');var controller=require(_0xac04('0x6'));router[_0xac04('0x7')]('/',auth[_0xac04('0x8')](),controller[_0xac04('0x9')]);router['get'](_0xac04('0xa'),auth[_0xac04('0x8')](),controller[_0xac04('0xb')]);router[_0xac04('0xc')]('/',auth['isAuthenticated'](),controller[_0xac04('0xd')]);router[_0xac04('0xe')]('/:id',auth['isAuthenticated'](),controller[_0xac04('0xf')]);router[_0xac04('0x10')]('/:id',auth[_0xac04('0x8')](),controller[_0xac04('0x11')]);module[_0xac04('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb9e1=['exports','ENUM','localnet','externip','stun','turn','STRING'];(function(_0x515f78,_0x3b69be){var _0x506f6c=function(_0x14da41){while(--_0x14da41){_0x515f78['push'](_0x515f78['shift']());}};_0x506f6c(++_0x3b69be);}(_0xb9e1,0xf5));var _0x1b9e=function(_0x362519,_0x5d067b){_0x362519=_0x362519-0x0;var _0x134ba4=_0xb9e1[_0x362519];return _0x134ba4;};'use strict';var Sequelize=require('sequelize');module[_0x1b9e('0x0')]={'type':{'type':Sequelize[_0x1b9e('0x1')](_0x1b9e('0x2'),_0x1b9e('0x3'),_0x1b9e('0x4'),_0x1b9e('0x5'))},'value':{'type':Sequelize[_0x1b9e('0x6')]},'username':{'type':Sequelize['STRING']},'password':{'type':Sequelize[_0x1b9e('0x6')]}};
\ No newline at end of file
+var _0x0402=['externip','turn','STRING','exports','ENUM','localnet'];(function(_0x24618a,_0x2cd0f4){var _0x2e3d64=function(_0x28c59c){while(--_0x28c59c){_0x24618a['push'](_0x24618a['shift']());}};_0x2e3d64(++_0x2cd0f4);}(_0x0402,0x16b));var _0x2040=function(_0x19e35c,_0x29cd1e){_0x19e35c=_0x19e35c-0x0;var _0x3e1fe8=_0x0402[_0x19e35c];return _0x3e1fe8;};'use strict';var Sequelize=require('sequelize');module[_0x2040('0x0')]={'type':{'type':Sequelize[_0x2040('0x1')](_0x2040('0x2'),_0x2040('0x3'),'stun',_0x2040('0x4'))},'value':{'type':Sequelize[_0x2040('0x5')]},'username':{'type':Sequelize[_0x2040('0x5')]},'password':{'type':Sequelize[_0x2040('0x5')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7680=['type','key','model','map','query','keys','filters','intersection','attributes','length','hasOwnProperty','nolimit','order','sort','pick','filter','where','merge','VIRTUAL','options','includeAll','findAll','rows','show','params','fields','include','find','create','sequelize','transaction','body','toUpperCase','STUN','join','root','server/files/templates/stun_multiple.ejs','utf8','render','writeFileSync','Reload','res_stun_monitor.so','TURN','readFileSync','server/files/templates/turn_multiple.ejs','/etc/asterisk/turn_xcally.conf','format','/etc/asterisk/sip_xcally_%s.conf','toLowerCase','/etc/asterisk/stun_xcally.conf','server/files/templates/network.ejs','chan_sip.so','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','squel','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/environment','../../config/license/util','../../mysqldb','client','then','info','Network,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','catch','sendStatus','status','json','undefined','limit','count','offset','set','Content-Range','apply','reject','save','update','destroy','end','stack','name','send','index','Network','rawAttributes','fieldName'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0x7680,0x178));var _0x0768=function(_0x545e64,_0x356844){_0x545e64=_0x545e64-0x0;var _0x13dbef=_0x7680[_0x545e64];return _0x13dbef;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x0768('0x0'));var zipdir=require(_0x0768('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x0768('0x2'));var moment=require(_0x0768('0x3'));var BPromise=require(_0x0768('0x4'));var Mustache=require(_0x0768('0x5'));var util=require(_0x0768('0x6'));var path=require(_0x0768('0x7'));var sox=require('sox');var csv=require(_0x0768('0x8'));var ejs=require(_0x0768('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x0768('0xa'));var crypto=require('crypto');var jsforce=require(_0x0768('0xb'));var deskjs=require(_0x0768('0xc'));var toCsv=require(_0x0768('0x8'));var querystring=require(_0x0768('0xd'));var Papa=require('papaparse');var Redis=require(_0x0768('0xe'));var authService=require(_0x0768('0xf'));var qs=require(_0x0768('0x10'));var as=require(_0x0768('0x11'));var hardwareService=require(_0x0768('0x12'));var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require(_0x0768('0x13'));var licenseUtil=require(_0x0768('0x14'));var db=require(_0x0768('0x15'))['db'];var jayson=require('jayson/promise');var client=jayson[_0x0768('0x16')]['http']({'port':0x232a});function respondWithRpcPromise(_0x1f616e,_0xd5889b,_0x1754c1,_0x383992){return new BPromise(function(_0x56b134,_0x13ff6f){var _0x21eacd=_0x383992||client;return _0x21eacd['request'](_0x1f616e,_0x1754c1)[_0x0768('0x17')](function(_0x464a06){logger[_0x0768('0x18')](_0x0768('0x19'),_0xd5889b,_0x0768('0x1a'));logger[_0x0768('0x1b')]('Network,\x20%s,\x20%s,\x20%s',_0xd5889b,'request\x20sent',JSON[_0x0768('0x1c')](_0x464a06));if(_0x464a06[_0x0768('0x1d')]){if(_0x464a06[_0x0768('0x1d')][_0x0768('0x1e')]===0x1f4){logger['error'](_0x0768('0x19'),_0xd5889b,_0x464a06[_0x0768('0x1d')][_0x0768('0x1f')]);return _0x13ff6f(_0x464a06[_0x0768('0x1d')]['message']);}logger['error'](_0x0768('0x19'),_0xd5889b,_0x464a06[_0x0768('0x1d')][_0x0768('0x1f')]);return _0x56b134(_0x464a06['error'][_0x0768('0x1f')]);}else{logger[_0x0768('0x18')](_0x0768('0x19'),_0xd5889b,_0x0768('0x1a'));_0x56b134(_0x464a06[_0x0768('0x20')][_0x0768('0x1f')]);}})[_0x0768('0x21')](function(_0x16127a){logger[_0x0768('0x1d')](_0x0768('0x19'),_0xd5889b,_0x16127a);_0x13ff6f(_0x16127a);});});}function respondWithStatusCode(_0x60aa99,_0xf3b69a){_0xf3b69a=_0xf3b69a||0xcc;return function(_0x10d752){if(_0x10d752){return _0x60aa99[_0x0768('0x22')](_0xf3b69a);}return _0x60aa99[_0x0768('0x23')](_0xf3b69a)['end']();};}function respondWithResult(_0x3f3db1,_0x30cc90){_0x30cc90=_0x30cc90||0xc8;return function(_0x14b448){if(_0x14b448){return _0x3f3db1[_0x0768('0x23')](_0x30cc90)[_0x0768('0x24')](_0x14b448);}};}function respondWithFilteredResult(_0x5deffd,_0x2609ae){return function(_0xc91bce){if(_0xc91bce){var _0x114002=typeof _0x2609ae['offset']===_0x0768('0x25')&&typeof _0x2609ae[_0x0768('0x26')]==='undefined';var _0xc79a79=_0xc91bce[_0x0768('0x27')];var _0x3b60fe=_0x114002?0x0:_0x2609ae[_0x0768('0x28')];var _0x12b568=_0x114002?_0xc91bce[_0x0768('0x27')]:_0x2609ae[_0x0768('0x28')]+_0x2609ae[_0x0768('0x26')];var _0x3a7e44;if(_0x12b568>=_0xc79a79){_0x12b568=_0xc79a79;_0x3a7e44=0xc8;}else{_0x3a7e44=0xce;}_0x5deffd[_0x0768('0x23')](_0x3a7e44);return _0x5deffd[_0x0768('0x29')](_0x0768('0x2a'),_0x3b60fe+'-'+_0x12b568+'/'+_0xc79a79)[_0x0768('0x24')](_0xc91bce);}return null;};}function patchUpdates(_0x9a1ba1){return function(_0x4f67f8){try{jsonpatch[_0x0768('0x2b')](_0x4f67f8,_0x9a1ba1,!![]);}catch(_0x303a32){return BPromise[_0x0768('0x2c')](_0x303a32);}return _0x4f67f8[_0x0768('0x2d')]();};}function saveUpdates(_0xea2e01,_0x1cd483){return function(_0x2722bf){if(_0x2722bf){return _0x2722bf[_0x0768('0x2e')](_0xea2e01)[_0x0768('0x17')](function(_0xf3aa16){return _0xf3aa16;});}return null;};}function removeEntity(_0x319334,_0x4ba49a){return function(_0x38b474){if(_0x38b474){return _0x38b474[_0x0768('0x2f')]()['then'](function(){_0x319334[_0x0768('0x23')](0xcc)[_0x0768('0x30')]();});}};}function handleEntityNotFound(_0x183f87,_0x1ab769){return function(_0x489bf3){if(!_0x489bf3){_0x183f87['sendStatus'](0x194);}return _0x489bf3;};}function handleError(_0x10b67b,_0x5bf8f1){_0x5bf8f1=_0x5bf8f1||0x1f4;return function(_0x3d3d49){logger['error'](_0x3d3d49[_0x0768('0x31')]);if(_0x3d3d49[_0x0768('0x32')]){delete _0x3d3d49[_0x0768('0x32')];}_0x10b67b[_0x0768('0x23')](_0x5bf8f1)[_0x0768('0x33')](_0x3d3d49);};}exports[_0x0768('0x34')]=function(_0x4fcdda,_0x202ea7){var _0x5f37fa={},_0x35af87={},_0x57e90c={'count':0x0,'rows':[]};var _0x3dfb0e=_['map'](db[_0x0768('0x35')][_0x0768('0x36')],function(_0x208650){return{'name':_0x208650[_0x0768('0x37')],'type':_0x208650[_0x0768('0x38')][_0x0768('0x39')]};});_0x35af87[_0x0768('0x3a')]=_[_0x0768('0x3b')](_0x3dfb0e,_0x0768('0x32'));_0x35af87[_0x0768('0x3c')]=_[_0x0768('0x3d')](_0x4fcdda[_0x0768('0x3c')]);_0x35af87[_0x0768('0x3e')]=_[_0x0768('0x3f')](_0x35af87[_0x0768('0x3a')],_0x35af87[_0x0768('0x3c')]);_0x5f37fa['attributes']=_[_0x0768('0x3f')](_0x35af87[_0x0768('0x3a')],qs['fields'](_0x4fcdda[_0x0768('0x3c')]['fields']));_0x5f37fa[_0x0768('0x40')]=_0x5f37fa['attributes'][_0x0768('0x41')]?_0x5f37fa[_0x0768('0x40')]:_0x35af87['model'];if(!_0x4fcdda['query'][_0x0768('0x42')](_0x0768('0x43'))){_0x5f37fa[_0x0768('0x26')]=qs[_0x0768('0x26')](_0x4fcdda['query'][_0x0768('0x26')]);_0x5f37fa['offset']=qs[_0x0768('0x28')](_0x4fcdda[_0x0768('0x3c')][_0x0768('0x28')]);}_0x5f37fa[_0x0768('0x44')]=qs[_0x0768('0x45')](_0x4fcdda[_0x0768('0x3c')][_0x0768('0x45')]);_0x5f37fa['where']=qs[_0x0768('0x3e')](_[_0x0768('0x46')](_0x4fcdda[_0x0768('0x3c')],_0x35af87[_0x0768('0x3e')]),_0x3dfb0e);if(_0x4fcdda[_0x0768('0x3c')][_0x0768('0x47')]){_0x5f37fa[_0x0768('0x48')]=_[_0x0768('0x49')](_0x5f37fa[_0x0768('0x48')],{'$or':_[_0x0768('0x3b')](_0x3dfb0e,function(_0x630e07){if(_0x630e07['type']!==_0x0768('0x4a')){var _0x2f1942={};_0x2f1942[_0x630e07[_0x0768('0x32')]]={'$like':'%'+_0x4fcdda[_0x0768('0x3c')][_0x0768('0x47')]+'%'};return _0x2f1942;}})});}_0x5f37fa=_[_0x0768('0x49')]({},_0x5f37fa,_0x4fcdda[_0x0768('0x4b')]);var _0x50d62c={'where':_0x5f37fa[_0x0768('0x48')]};return db[_0x0768('0x35')][_0x0768('0x27')](_0x50d62c)[_0x0768('0x17')](function(_0x34353b){_0x57e90c['count']=_0x34353b;if(_0x4fcdda[_0x0768('0x3c')][_0x0768('0x4c')]){_0x5f37fa['include']=[{'all':!![]}];}return db[_0x0768('0x35')][_0x0768('0x4d')](_0x5f37fa);})[_0x0768('0x17')](function(_0x10dd65){_0x57e90c[_0x0768('0x4e')]=_0x10dd65;return _0x57e90c;})['then'](respondWithFilteredResult(_0x202ea7,_0x5f37fa))[_0x0768('0x21')](handleError(_0x202ea7,null));};exports[_0x0768('0x4f')]=function(_0x44a654,_0x5c77b0){var _0x4d4867={'raw':!![],'where':{'id':_0x44a654[_0x0768('0x50')]['id']}},_0x315c2a={};_0x315c2a['model']=_[_0x0768('0x3d')](db[_0x0768('0x35')][_0x0768('0x36')]);_0x315c2a['query']=_[_0x0768('0x3d')](_0x44a654[_0x0768('0x3c')]);_0x315c2a[_0x0768('0x3e')]=_['intersection'](_0x315c2a['model'],_0x315c2a[_0x0768('0x3c')]);_0x4d4867['attributes']=_[_0x0768('0x3f')](_0x315c2a[_0x0768('0x3a')],qs[_0x0768('0x51')](_0x44a654['query']['fields']));_0x4d4867[_0x0768('0x40')]=_0x4d4867[_0x0768('0x40')]['length']?_0x4d4867['attributes']:_0x315c2a[_0x0768('0x3a')];if(_0x44a654[_0x0768('0x3c')][_0x0768('0x4c')]){_0x4d4867[_0x0768('0x52')]=[{'all':!![]}];}_0x4d4867=_[_0x0768('0x49')]({},_0x4d4867,_0x44a654[_0x0768('0x4b')]);return db[_0x0768('0x35')][_0x0768('0x53')](_0x4d4867)[_0x0768('0x17')](handleEntityNotFound(_0x5c77b0,null))[_0x0768('0x17')](respondWithResult(_0x5c77b0,null))[_0x0768('0x21')](handleError(_0x5c77b0,null));};exports[_0x0768('0x54')]=function(_0x565b8c,_0x2fe1fb,_0x3c8bdb){var _0x1fd557;return db[_0x0768('0x55')][_0x0768('0x56')](function(_0x4cc1ec){return db[_0x0768('0x35')][_0x0768('0x54')](_0x565b8c['body'],{'raw':!![]})[_0x0768('0x17')](function(_0x2936d6){_0x1fd557=_0x2936d6;return db[_0x0768('0x35')][_0x0768('0x4d')]({'where':{'type':_0x565b8c[_0x0768('0x57')]['type']},'raw':!![]});})[_0x0768('0x17')](function(_0x12afda){if(_0x1fd557[_0x0768('0x38')][_0x0768('0x58')]()==_0x0768('0x59')){var _0x4b6547=fs['readFileSync'](path[_0x0768('0x5a')](config[_0x0768('0x5b')],_0x0768('0x5c')),_0x0768('0x5d'));var _0x5edff6=ejs[_0x0768('0x5e')](_0x4b6547,{'networks':_0x12afda||[]});fs[_0x0768('0x5f')]('/etc/asterisk/stun_xcally.conf',_0x5edff6);return respondWithRpcPromise(_0x0768('0x60'),_0x0768('0x54'),{'module':_0x0768('0x61')});}else if(_0x1fd557[_0x0768('0x38')][_0x0768('0x58')]()==_0x0768('0x62')){var _0x43b1ca=fs[_0x0768('0x63')](path['join'](config[_0x0768('0x5b')],_0x0768('0x64')),_0x0768('0x5d'));var _0x215fab=ejs['render'](_0x43b1ca,{'networks':_0x12afda||[]});fs[_0x0768('0x5f')](_0x0768('0x65'),_0x215fab);return respondWithRpcPromise(_0x0768('0x60'),_0x0768('0x54'),{'module':_0x0768('0x61')});}else{var _0x3c2da9=fs[_0x0768('0x63')](path[_0x0768('0x5a')](config['root'],'server/files/templates/network.ejs'),_0x0768('0x5d'));var _0x43ae40=ejs[_0x0768('0x5e')](_0x3c2da9,{'networks':_0x12afda||[]});fs[_0x0768('0x5f')](util[_0x0768('0x66')](_0x0768('0x67'),_0x565b8c[_0x0768('0x57')]['type'][_0x0768('0x68')]()),_0x43ae40);return respondWithRpcPromise(_0x0768('0x60'),_0x0768('0x54'),{'module':'chan_sip.so'});}return null;})[_0x0768('0x17')](function(){return _0x1fd557;});})[_0x0768('0x17')](respondWithResult(_0x2fe1fb,0xc9))[_0x0768('0x21')](handleError(_0x2fe1fb,null));};exports[_0x0768('0x2e')]=function(_0x1a31bd,_0x32360e,_0x4c28fe){var _0x2de06c;return db[_0x0768('0x55')][_0x0768('0x56')](function(_0x51df11){return db[_0x0768('0x35')]['find']({'where':{'id':_0x1a31bd['params']['id']}})[_0x0768('0x17')](handleEntityNotFound(_0x32360e,null))[_0x0768('0x17')](saveUpdates(_0x1a31bd[_0x0768('0x57')],null))[_0x0768('0x17')](function(_0x55c428){if(_0x55c428){_0x2de06c=_0x55c428;return db['Network'][_0x0768('0x4d')]({'where':{'type':_0x2de06c['type']},'raw':!![]});}return null;})[_0x0768('0x17')](function(_0x1a3067){if(_0x2de06c[_0x0768('0x38')][_0x0768('0x58')]()=='STUN'){var _0x14480e=fs[_0x0768('0x63')](path[_0x0768('0x5a')](config[_0x0768('0x5b')],_0x0768('0x5c')),_0x0768('0x5d'));var _0xd353bb=ejs[_0x0768('0x5e')](_0x14480e,{'networks':_0x1a3067||[]});fs[_0x0768('0x5f')](_0x0768('0x69'),_0xd353bb);return respondWithRpcPromise(_0x0768('0x60'),_0x0768('0x2e'),{'module':_0x0768('0x61')});}else if(_0x2de06c[_0x0768('0x38')][_0x0768('0x58')]()==_0x0768('0x62')){var _0x2b23f6=fs[_0x0768('0x63')](path['join'](config[_0x0768('0x5b')],_0x0768('0x64')),_0x0768('0x5d'));var _0x1f3a18=ejs['render'](_0x2b23f6,{'networks':_0x1a3067||[]});fs[_0x0768('0x5f')](_0x0768('0x65'),_0x1f3a18);return respondWithRpcPromise(_0x0768('0x60'),'update',{'module':_0x0768('0x61')});}else{var _0x154e77=fs[_0x0768('0x63')](path[_0x0768('0x5a')](config[_0x0768('0x5b')],_0x0768('0x6a')),_0x0768('0x5d'));var _0x5c7724=ejs['render'](_0x154e77,{'networks':_0x1a3067||[]});fs['writeFileSync'](util['format']('/etc/asterisk/sip_xcally_%s.conf',_0x1a31bd[_0x0768('0x57')][_0x0768('0x38')][_0x0768('0x68')]()),_0x5c7724);return respondWithRpcPromise(_0x0768('0x60'),'update',{'module':'chan_sip.so'});}return null;})[_0x0768('0x17')](function(_0x422dc7){if(_0x422dc7){return _0x2de06c;}return null;});})[_0x0768('0x17')](respondWithResult(_0x32360e,null))[_0x0768('0x21')](handleError(_0x32360e,null));};exports[_0x0768('0x2f')]=function(_0x2f3d76,_0xb88757,_0x2617b3){var _0x4f494b;return db[_0x0768('0x35')][_0x0768('0x53')]({'where':{'id':_0x2f3d76['params']['id']}})['then'](function(_0x39fa51){_0x4f494b=_0x39fa51;return _0x39fa51;})['then'](handleEntityNotFound(_0xb88757,null))[_0x0768('0x17')](removeEntity(_0xb88757,null))[_0x0768('0x17')](function(){if(_0x4f494b){return db[_0x0768('0x35')][_0x0768('0x4d')]({'where':{'type':_0x4f494b['type']},'raw':!![]});}})[_0x0768('0x17')](function(_0x1c8a34){if(_0x4f494b[_0x0768('0x38')][_0x0768('0x58')]()=='STUN'){var _0x2c5a27=fs[_0x0768('0x63')](path[_0x0768('0x5a')](config[_0x0768('0x5b')],'server/files/templates/stun_multiple.ejs'),_0x0768('0x5d'));var _0x158c9b=ejs[_0x0768('0x5e')](_0x2c5a27,{'networks':_0x1c8a34||[]});fs['writeFileSync'](_0x0768('0x69'),_0x158c9b);return respondWithRpcPromise(_0x0768('0x60'),'destroy',{'module':_0x0768('0x61')});}else if(_0x4f494b[_0x0768('0x38')][_0x0768('0x58')]()==_0x0768('0x62')){var _0x2e2088=fs['readFileSync'](path[_0x0768('0x5a')](config['root'],_0x0768('0x64')),'utf8');var _0x15142d=ejs[_0x0768('0x5e')](_0x2e2088,{'networks':_0x1c8a34||[]});fs[_0x0768('0x5f')](_0x0768('0x65'),_0x15142d);return respondWithRpcPromise(_0x0768('0x60'),_0x0768('0x2f'),{'module':_0x0768('0x61')});}else{var _0x2f708a=fs['readFileSync'](path[_0x0768('0x5a')](config[_0x0768('0x5b')],_0x0768('0x6a')),_0x0768('0x5d'));var _0x3ac6cc=ejs[_0x0768('0x5e')](_0x2f708a,{'networks':_0x1c8a34||[]});fs[_0x0768('0x5f')](util['format'](_0x0768('0x67'),_0x2f3d76['body']['type'][_0x0768('0x68')]()),_0x3ac6cc);return respondWithRpcPromise('Reload','destroy',{'module':_0x0768('0x6b')});}return null;})[_0x0768('0x21')](handleError(_0xb88757,null));};
\ No newline at end of file
+var _0x26d8=['offset','undefined','limit','count','set','apply','reject','save','update','sendStatus','stack','name','send','index','map','Network','rawAttributes','fieldName','type','key','query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','options','includeAll','include','findAll','rows','show','params','create','sequelize','body','toUpperCase','readFileSync','join','root','utf8','render','writeFileSync','/etc/asterisk/stun_xcally.conf','Reload','res_stun_monitor.so','TURN','server/files/templates/turn_multiple.ejs','/etc/asterisk/turn_xcally.conf','server/files/templates/network.ejs','format','/etc/asterisk/sip_xcally_%s.conf','toLowerCase','chan_sip.so','catch','find','server/files/templates/stun_multiple.ejs','destroy','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','util','path','sox','to-csv','ejs','lodash','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../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','Network,\x20%s,\x20%s,\x20%s','error','message','status','end','json'];(function(_0x4bcc4b,_0x379498){var _0x1c04e1=function(_0x24f09e){while(--_0x24f09e){_0x4bcc4b['push'](_0x4bcc4b['shift']());}};_0x1c04e1(++_0x379498);}(_0x26d8,0xae));var _0x826d=function(_0x5ec84f,_0x30c71a){_0x5ec84f=_0x5ec84f-0x0;var _0x22d2e0=_0x26d8[_0x5ec84f];return _0x22d2e0;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x826d('0x0'));var zipdir=require(_0x826d('0x1'));var jsonpatch=require(_0x826d('0x2'));var rp=require(_0x826d('0x3'));var moment=require('moment');var BPromise=require(_0x826d('0x4'));var Mustache=require('mustache');var util=require(_0x826d('0x5'));var path=require(_0x826d('0x6'));var sox=require(_0x826d('0x7'));var csv=require(_0x826d('0x8'));var ejs=require(_0x826d('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x826d('0xa'));var squel=require('squel');var crypto=require(_0x826d('0xb'));var jsforce=require(_0x826d('0xc'));var deskjs=require(_0x826d('0xd'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x826d('0xe'));var Redis=require(_0x826d('0xf'));var authService=require(_0x826d('0x10'));var qs=require(_0x826d('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x826d('0x12'));var logger=require(_0x826d('0x13'))('api');var utils=require(_0x826d('0x14'));var config=require(_0x826d('0x15'));var licenseUtil=require(_0x826d('0x16'));var db=require(_0x826d('0x17'))['db'];var jayson=require(_0x826d('0x18'));var client=jayson[_0x826d('0x19')][_0x826d('0x1a')]({'port':0x232a});function respondWithRpcPromise(_0x2ddb90,_0x25be77,_0x10c392,_0x8b060d){return new BPromise(function(_0x5ceb27,_0x3183c6){var _0x29b2bc=_0x8b060d||client;return _0x29b2bc[_0x826d('0x1b')](_0x2ddb90,_0x10c392)[_0x826d('0x1c')](function(_0x191102){logger[_0x826d('0x1d')](_0x826d('0x1e'),_0x25be77,_0x826d('0x1f'));logger['debug'](_0x826d('0x20'),_0x25be77,_0x826d('0x1f'),JSON['stringify'](_0x191102));if(_0x191102[_0x826d('0x21')]){if(_0x191102['error']['code']===0x1f4){logger[_0x826d('0x21')](_0x826d('0x1e'),_0x25be77,_0x191102[_0x826d('0x21')]['message']);return _0x3183c6(_0x191102[_0x826d('0x21')]['message']);}logger['error'](_0x826d('0x1e'),_0x25be77,_0x191102[_0x826d('0x21')][_0x826d('0x22')]);return _0x5ceb27(_0x191102[_0x826d('0x21')][_0x826d('0x22')]);}else{logger['info'](_0x826d('0x1e'),_0x25be77,_0x826d('0x1f'));_0x5ceb27(_0x191102['result'][_0x826d('0x22')]);}})['catch'](function(_0x378f9d){logger[_0x826d('0x21')](_0x826d('0x1e'),_0x25be77,_0x378f9d);_0x3183c6(_0x378f9d);});});}function respondWithStatusCode(_0x34725d,_0x102662){_0x102662=_0x102662||0xcc;return function(_0x330afc){if(_0x330afc){return _0x34725d['sendStatus'](_0x102662);}return _0x34725d[_0x826d('0x23')](_0x102662)[_0x826d('0x24')]();};}function respondWithResult(_0x3960f4,_0xffaea){_0xffaea=_0xffaea||0xc8;return function(_0x423716){if(_0x423716){return _0x3960f4['status'](_0xffaea)[_0x826d('0x25')](_0x423716);}};}function respondWithFilteredResult(_0x4f1a32,_0x51664d){return function(_0x66bcb4){if(_0x66bcb4){var _0x1ce837=typeof _0x51664d[_0x826d('0x26')]===_0x826d('0x27')&&typeof _0x51664d[_0x826d('0x28')]===_0x826d('0x27');var _0x4d1a0b=_0x66bcb4[_0x826d('0x29')];var _0x2effaf=_0x1ce837?0x0:_0x51664d[_0x826d('0x26')];var _0x183815=_0x1ce837?_0x66bcb4[_0x826d('0x29')]:_0x51664d['offset']+_0x51664d['limit'];var _0x50c64f;if(_0x183815>=_0x4d1a0b){_0x183815=_0x4d1a0b;_0x50c64f=0xc8;}else{_0x50c64f=0xce;}_0x4f1a32[_0x826d('0x23')](_0x50c64f);return _0x4f1a32[_0x826d('0x2a')]('Content-Range',_0x2effaf+'-'+_0x183815+'/'+_0x4d1a0b)[_0x826d('0x25')](_0x66bcb4);}return null;};}function patchUpdates(_0x1598b4){return function(_0x1b6db7){try{jsonpatch[_0x826d('0x2b')](_0x1b6db7,_0x1598b4,!![]);}catch(_0x276870){return BPromise[_0x826d('0x2c')](_0x276870);}return _0x1b6db7[_0x826d('0x2d')]();};}function saveUpdates(_0x560332,_0x4f3b2a){return function(_0x249d59){if(_0x249d59){return _0x249d59[_0x826d('0x2e')](_0x560332)[_0x826d('0x1c')](function(_0xc8256b){return _0xc8256b;});}return null;};}function removeEntity(_0x4e106d,_0x16cfc1){return function(_0x20a057){if(_0x20a057){return _0x20a057['destroy']()['then'](function(){_0x4e106d[_0x826d('0x23')](0xcc)[_0x826d('0x24')]();});}};}function handleEntityNotFound(_0x21e816,_0x595fa0){return function(_0xf87d81){if(!_0xf87d81){_0x21e816[_0x826d('0x2f')](0x194);}return _0xf87d81;};}function handleError(_0x1f1e0d,_0x113f9e){_0x113f9e=_0x113f9e||0x1f4;return function(_0x1f4ef7){logger['error'](_0x1f4ef7[_0x826d('0x30')]);if(_0x1f4ef7[_0x826d('0x31')]){delete _0x1f4ef7[_0x826d('0x31')];}_0x1f1e0d[_0x826d('0x23')](_0x113f9e)[_0x826d('0x32')](_0x1f4ef7);};}exports[_0x826d('0x33')]=function(_0x2cc644,_0x2e70da){var _0x67e5ee={},_0x3eee57={},_0x33be9a={'count':0x0,'rows':[]};var _0x368752=_[_0x826d('0x34')](db[_0x826d('0x35')][_0x826d('0x36')],function(_0x3d5c70){return{'name':_0x3d5c70[_0x826d('0x37')],'type':_0x3d5c70[_0x826d('0x38')][_0x826d('0x39')]};});_0x3eee57['model']=_[_0x826d('0x34')](_0x368752,_0x826d('0x31'));_0x3eee57[_0x826d('0x3a')]=_[_0x826d('0x3b')](_0x2cc644['query']);_0x3eee57[_0x826d('0x3c')]=_[_0x826d('0x3d')](_0x3eee57[_0x826d('0x3e')],_0x3eee57[_0x826d('0x3a')]);_0x67e5ee[_0x826d('0x3f')]=_[_0x826d('0x3d')](_0x3eee57[_0x826d('0x3e')],qs[_0x826d('0x40')](_0x2cc644[_0x826d('0x3a')][_0x826d('0x40')]));_0x67e5ee['attributes']=_0x67e5ee[_0x826d('0x3f')][_0x826d('0x41')]?_0x67e5ee['attributes']:_0x3eee57[_0x826d('0x3e')];if(!_0x2cc644[_0x826d('0x3a')][_0x826d('0x42')](_0x826d('0x43'))){_0x67e5ee[_0x826d('0x28')]=qs[_0x826d('0x28')](_0x2cc644[_0x826d('0x3a')][_0x826d('0x28')]);_0x67e5ee['offset']=qs[_0x826d('0x26')](_0x2cc644[_0x826d('0x3a')][_0x826d('0x26')]);}_0x67e5ee[_0x826d('0x44')]=qs[_0x826d('0x45')](_0x2cc644[_0x826d('0x3a')][_0x826d('0x45')]);_0x67e5ee[_0x826d('0x46')]=qs[_0x826d('0x3c')](_[_0x826d('0x47')](_0x2cc644[_0x826d('0x3a')],_0x3eee57['filters']),_0x368752);if(_0x2cc644[_0x826d('0x3a')][_0x826d('0x48')]){_0x67e5ee['where']=_[_0x826d('0x49')](_0x67e5ee[_0x826d('0x46')],{'$or':_['map'](_0x368752,function(_0x5285bd){if(_0x5285bd[_0x826d('0x38')]!=='VIRTUAL'){var _0x2b90ca={};_0x2b90ca[_0x5285bd['name']]={'$like':'%'+_0x2cc644[_0x826d('0x3a')][_0x826d('0x48')]+'%'};return _0x2b90ca;}})});}_0x67e5ee=_['merge']({},_0x67e5ee,_0x2cc644[_0x826d('0x4a')]);var _0x5ede2e={'where':_0x67e5ee[_0x826d('0x46')]};return db[_0x826d('0x35')][_0x826d('0x29')](_0x5ede2e)[_0x826d('0x1c')](function(_0x22397d){_0x33be9a[_0x826d('0x29')]=_0x22397d;if(_0x2cc644['query'][_0x826d('0x4b')]){_0x67e5ee[_0x826d('0x4c')]=[{'all':!![]}];}return db[_0x826d('0x35')][_0x826d('0x4d')](_0x67e5ee);})[_0x826d('0x1c')](function(_0x50dc98){_0x33be9a[_0x826d('0x4e')]=_0x50dc98;return _0x33be9a;})[_0x826d('0x1c')](respondWithFilteredResult(_0x2e70da,_0x67e5ee))['catch'](handleError(_0x2e70da,null));};exports[_0x826d('0x4f')]=function(_0x36682f,_0x8f70b6){var _0x227772={'raw':!![],'where':{'id':_0x36682f[_0x826d('0x50')]['id']}},_0x32ee31={};_0x32ee31[_0x826d('0x3e')]=_[_0x826d('0x3b')](db[_0x826d('0x35')][_0x826d('0x36')]);_0x32ee31['query']=_[_0x826d('0x3b')](_0x36682f[_0x826d('0x3a')]);_0x32ee31[_0x826d('0x3c')]=_[_0x826d('0x3d')](_0x32ee31['model'],_0x32ee31[_0x826d('0x3a')]);_0x227772['attributes']=_[_0x826d('0x3d')](_0x32ee31[_0x826d('0x3e')],qs['fields'](_0x36682f[_0x826d('0x3a')]['fields']));_0x227772[_0x826d('0x3f')]=_0x227772[_0x826d('0x3f')]['length']?_0x227772[_0x826d('0x3f')]:_0x32ee31[_0x826d('0x3e')];if(_0x36682f['query'][_0x826d('0x4b')]){_0x227772['include']=[{'all':!![]}];}_0x227772=_[_0x826d('0x49')]({},_0x227772,_0x36682f['options']);return db[_0x826d('0x35')]['find'](_0x227772)[_0x826d('0x1c')](handleEntityNotFound(_0x8f70b6,null))[_0x826d('0x1c')](respondWithResult(_0x8f70b6,null))['catch'](handleError(_0x8f70b6,null));};exports[_0x826d('0x51')]=function(_0x22e830,_0x42eb63,_0x49dd44){var _0x3ee9c;return db[_0x826d('0x52')]['transaction'](function(_0xfc98eb){return db[_0x826d('0x35')][_0x826d('0x51')](_0x22e830[_0x826d('0x53')],{'raw':!![]})[_0x826d('0x1c')](function(_0xfc030b){_0x3ee9c=_0xfc030b;return db[_0x826d('0x35')][_0x826d('0x4d')]({'where':{'type':_0x22e830[_0x826d('0x53')][_0x826d('0x38')]},'raw':!![]});})['then'](function(_0x39dc71){if(_0x3ee9c['type'][_0x826d('0x54')]()=='STUN'){var _0x8750c9=fs[_0x826d('0x55')](path[_0x826d('0x56')](config[_0x826d('0x57')],'server/files/templates/stun_multiple.ejs'),_0x826d('0x58'));var _0x44342e=ejs[_0x826d('0x59')](_0x8750c9,{'networks':_0x39dc71||[]});fs[_0x826d('0x5a')](_0x826d('0x5b'),_0x44342e);return respondWithRpcPromise(_0x826d('0x5c'),_0x826d('0x51'),{'module':_0x826d('0x5d')});}else if(_0x3ee9c[_0x826d('0x38')]['toUpperCase']()==_0x826d('0x5e')){var _0x2ee8ea=fs[_0x826d('0x55')](path[_0x826d('0x56')](config['root'],_0x826d('0x5f')),_0x826d('0x58'));var _0x4f4078=ejs[_0x826d('0x59')](_0x2ee8ea,{'networks':_0x39dc71||[]});fs[_0x826d('0x5a')](_0x826d('0x60'),_0x4f4078);return respondWithRpcPromise(_0x826d('0x5c'),_0x826d('0x51'),{'module':_0x826d('0x5d')});}else{var _0x33f593=fs[_0x826d('0x55')](path['join'](config[_0x826d('0x57')],_0x826d('0x61')),_0x826d('0x58'));var _0x5d3484=ejs[_0x826d('0x59')](_0x33f593,{'networks':_0x39dc71||[]});fs[_0x826d('0x5a')](util[_0x826d('0x62')](_0x826d('0x63'),_0x22e830[_0x826d('0x53')]['type'][_0x826d('0x64')]()),_0x5d3484);return respondWithRpcPromise(_0x826d('0x5c'),_0x826d('0x51'),{'module':_0x826d('0x65')});}return null;})[_0x826d('0x1c')](function(){return _0x3ee9c;});})[_0x826d('0x1c')](respondWithResult(_0x42eb63,0xc9))[_0x826d('0x66')](handleError(_0x42eb63,null));};exports['update']=function(_0x3e6d13,_0x5317dd,_0xefb37f){var _0x9e56fc;return db[_0x826d('0x52')]['transaction'](function(_0x2689f0){return db[_0x826d('0x35')][_0x826d('0x67')]({'where':{'id':_0x3e6d13[_0x826d('0x50')]['id']}})[_0x826d('0x1c')](handleEntityNotFound(_0x5317dd,null))[_0x826d('0x1c')](saveUpdates(_0x3e6d13[_0x826d('0x53')],null))['then'](function(_0x56335a){if(_0x56335a){_0x9e56fc=_0x56335a;return db[_0x826d('0x35')][_0x826d('0x4d')]({'where':{'type':_0x9e56fc['type']},'raw':!![]});}return null;})[_0x826d('0x1c')](function(_0xc37b5a){if(_0x9e56fc[_0x826d('0x38')]['toUpperCase']()=='STUN'){var _0x21eaf9=fs[_0x826d('0x55')](path['join'](config['root'],_0x826d('0x68')),'utf8');var _0x126033=ejs[_0x826d('0x59')](_0x21eaf9,{'networks':_0xc37b5a||[]});fs[_0x826d('0x5a')]('/etc/asterisk/stun_xcally.conf',_0x126033);return respondWithRpcPromise(_0x826d('0x5c'),_0x826d('0x2e'),{'module':_0x826d('0x5d')});}else if(_0x9e56fc[_0x826d('0x38')][_0x826d('0x54')]()==_0x826d('0x5e')){var _0x3a4db2=fs[_0x826d('0x55')](path[_0x826d('0x56')](config[_0x826d('0x57')],_0x826d('0x5f')),_0x826d('0x58'));var _0x47c31c=ejs[_0x826d('0x59')](_0x3a4db2,{'networks':_0xc37b5a||[]});fs[_0x826d('0x5a')](_0x826d('0x60'),_0x47c31c);return respondWithRpcPromise('Reload',_0x826d('0x2e'),{'module':_0x826d('0x5d')});}else{var _0x22e5a5=fs[_0x826d('0x55')](path['join'](config[_0x826d('0x57')],_0x826d('0x61')),_0x826d('0x58'));var _0x40e368=ejs[_0x826d('0x59')](_0x22e5a5,{'networks':_0xc37b5a||[]});fs['writeFileSync'](util[_0x826d('0x62')](_0x826d('0x63'),_0x3e6d13[_0x826d('0x53')][_0x826d('0x38')][_0x826d('0x64')]()),_0x40e368);return respondWithRpcPromise('Reload',_0x826d('0x2e'),{'module':_0x826d('0x65')});}return null;})[_0x826d('0x1c')](function(_0x1b42fc){if(_0x1b42fc){return _0x9e56fc;}return null;});})[_0x826d('0x1c')](respondWithResult(_0x5317dd,null))[_0x826d('0x66')](handleError(_0x5317dd,null));};exports[_0x826d('0x69')]=function(_0x4aa93b,_0x39f8b3,_0x8754a1){var _0x40a595;return db[_0x826d('0x35')]['find']({'where':{'id':_0x4aa93b[_0x826d('0x50')]['id']}})[_0x826d('0x1c')](function(_0x16e3ef){_0x40a595=_0x16e3ef;return _0x16e3ef;})[_0x826d('0x1c')](handleEntityNotFound(_0x39f8b3,null))[_0x826d('0x1c')](removeEntity(_0x39f8b3,null))[_0x826d('0x1c')](function(){if(_0x40a595){return db[_0x826d('0x35')][_0x826d('0x4d')]({'where':{'type':_0x40a595[_0x826d('0x38')]},'raw':!![]});}})[_0x826d('0x1c')](function(_0x36a78c){if(_0x40a595[_0x826d('0x38')]['toUpperCase']()=='STUN'){var _0x2658f5=fs['readFileSync'](path[_0x826d('0x56')](config[_0x826d('0x57')],_0x826d('0x68')),'utf8');var _0x4efab8=ejs['render'](_0x2658f5,{'networks':_0x36a78c||[]});fs[_0x826d('0x5a')]('/etc/asterisk/stun_xcally.conf',_0x4efab8);return respondWithRpcPromise(_0x826d('0x5c'),_0x826d('0x69'),{'module':_0x826d('0x5d')});}else if(_0x40a595['type'][_0x826d('0x54')]()==_0x826d('0x5e')){var _0x4a3143=fs[_0x826d('0x55')](path['join'](config[_0x826d('0x57')],'server/files/templates/turn_multiple.ejs'),'utf8');var _0x4f44de=ejs[_0x826d('0x59')](_0x4a3143,{'networks':_0x36a78c||[]});fs[_0x826d('0x5a')]('/etc/asterisk/turn_xcally.conf',_0x4f44de);return respondWithRpcPromise(_0x826d('0x5c'),'destroy',{'module':_0x826d('0x5d')});}else{var _0x38734b=fs[_0x826d('0x55')](path[_0x826d('0x56')](config[_0x826d('0x57')],_0x826d('0x61')),_0x826d('0x58'));var _0x3d3d59=ejs[_0x826d('0x59')](_0x38734b,{'networks':_0x36a78c||[]});fs[_0x826d('0x5a')](util[_0x826d('0x62')](_0x826d('0x63'),_0x4aa93b['body'][_0x826d('0x38')][_0x826d('0x64')]()),_0x3d3d59);return respondWithRpcPromise(_0x826d('0x5c'),_0x826d('0x69'),{'module':_0x826d('0x65')});}return null;})[_0x826d('0x66')](handleError(_0x39f8b3,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xaf93=['bluebird','path','rimraf','../../config/environment','./network.attributes','exports','Network','lodash','util','moment'];(function(_0x48e9bb,_0x4d6962){var _0x533378=function(_0x3f7682){while(--_0x3f7682){_0x48e9bb['push'](_0x48e9bb['shift']());}};_0x533378(++_0x4d6962);}(_0xaf93,0x151));var _0x3af9=function(_0x530070,_0x282ad0){_0x530070=_0x530070-0x0;var _0xa8fd16=_0xaf93[_0x530070];return _0xa8fd16;};'use strict';var _=require(_0x3af9('0x0'));var util=require(_0x3af9('0x1'));var logger=require('../../config/logger')('api');var moment=require(_0x3af9('0x2'));var BPromise=require(_0x3af9('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x3af9('0x4'));var rimraf=require(_0x3af9('0x5'));var config=require(_0x3af9('0x6'));var attributes=require(_0x3af9('0x7'));module[_0x3af9('0x8')]=function(_0x1ad446,_0x333abb){return _0x1ad446['define'](_0x3af9('0x9'),attributes,{'tableName':'network','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x2f3a=['api','moment','bluebird','request-promise','path','rimraf','./network.attributes','network','lodash'];(function(_0x270adf,_0x1daaa3){var _0x29eda9=function(_0x40afec){while(--_0x40afec){_0x270adf['push'](_0x270adf['shift']());}};_0x29eda9(++_0x1daaa3);}(_0x2f3a,0xfb));var _0xa2f3=function(_0x1909c3,_0x8cd0fa){_0x1909c3=_0x1909c3-0x0;var _0x39045a=_0x2f3a[_0x1909c3];return _0x39045a;};'use strict';var _=require(_0xa2f3('0x0'));var util=require('util');var logger=require('../../config/logger')(_0xa2f3('0x1'));var moment=require(_0xa2f3('0x2'));var BPromise=require(_0xa2f3('0x3'));var rp=require(_0xa2f3('0x4'));var fs=require('fs');var path=require(_0xa2f3('0x5'));var rimraf=require(_0xa2f3('0x6'));var config=require('../../config/environment');var attributes=require(_0xa2f3('0x7'));module['exports']=function(_0xfe0b09,_0x1ddec0){return _0xfe0b09['define']('Network',attributes,{'tableName':_0xa2f3('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-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(_0x17df8d,_0x50e99f){var _0xaa87fe=function(_0x5827a9){while(--_0x5827a9){_0x17df8d['push'](_0x17df8d['shift']());}};_0xaa87fe(++_0x50e99f);}(_0x9957,0x93));var _0x7995=function(_0x618414,_0x1a7a60){_0x618414=_0x618414-0x0;var _0x21c19a=_0x9957[_0x618414];return _0x21c19a;};'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
+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(_0x5cda91,_0x2dd1f4){var _0x47e143=function(_0xc4793d){while(--_0xc4793d){_0x5cda91['push'](_0x5cda91['shift']());}};_0x47e143(++_0x2dd1f4);}(_0x9957,0x93));var _0x7995=function(_0x4cf98e,_0xba4b79){_0x4cf98e=_0x4cf98e-0x0;var _0x1623ac=_0x9957[_0x4cf98e];return _0x1623ac;};'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 _0x79cd=['removeDispositions','removeAnswers','exports','path','connect-timeout','express','Router','fs-extra','./openchannelAccount.controller','get','isAuthenticated','index','/describe','describe','/:id','show','/:id/dispositions','getDispositions','/:id/canned_answers','getAnswers','/:id/applications','getApplications','/:id/users','getAgents','post','addDisposition','addAnswer','/:id/notify','notify','addAgents','/:id/send','put','update','delete'];(function(_0x5717a6,_0x2db9ab){var _0x566907=function(_0xe3a24c){while(--_0xe3a24c){_0x5717a6['push'](_0x5717a6['shift']());}};_0x566907(++_0x2db9ab);}(_0x79cd,0x19b));var _0xd79c=function(_0x2ab3e7,_0x1f777d){_0x2ab3e7=_0x2ab3e7-0x0;var _0x2f2877=_0x79cd[_0x2ab3e7];return _0x2f2877;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0xd79c('0x0'));var timeout=require(_0xd79c('0x1'));var express=require(_0xd79c('0x2'));var router=express[_0xd79c('0x3')]();var fs_extra=require(_0xd79c('0x4'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0xd79c('0x5'));router[_0xd79c('0x6')]('/',auth[_0xd79c('0x7')](),controller[_0xd79c('0x8')]);router[_0xd79c('0x6')](_0xd79c('0x9'),auth[_0xd79c('0x7')](),controller[_0xd79c('0xa')]);router[_0xd79c('0x6')](_0xd79c('0xb'),auth[_0xd79c('0x7')](),controller[_0xd79c('0xc')]);router[_0xd79c('0x6')](_0xd79c('0xd'),auth[_0xd79c('0x7')](),controller[_0xd79c('0xe')]);router[_0xd79c('0x6')](_0xd79c('0xf'),auth[_0xd79c('0x7')](),controller[_0xd79c('0x10')]);router[_0xd79c('0x6')](_0xd79c('0x11'),auth[_0xd79c('0x7')](),controller[_0xd79c('0x12')]);router['get']('/:id/interactions',auth['isAuthenticated'](),controller['getInteractions']);router['get'](_0xd79c('0x13'),auth[_0xd79c('0x7')](),controller[_0xd79c('0x14')]);router[_0xd79c('0x15')]('/',auth[_0xd79c('0x7')](),controller['create']);router[_0xd79c('0x15')](_0xd79c('0xd'),auth[_0xd79c('0x7')](),controller[_0xd79c('0x16')]);router[_0xd79c('0x15')](_0xd79c('0xf'),auth[_0xd79c('0x7')](),controller[_0xd79c('0x17')]);router[_0xd79c('0x15')](_0xd79c('0x18'),controller[_0xd79c('0x19')]);router[_0xd79c('0x15')](_0xd79c('0x11'),auth[_0xd79c('0x7')](),controller['addApplications']);router[_0xd79c('0x15')](_0xd79c('0x13'),auth[_0xd79c('0x7')](),controller[_0xd79c('0x1a')]);router[_0xd79c('0x15')](_0xd79c('0x1b'),auth['isAuthenticated'](),controller['send']);router[_0xd79c('0x1c')](_0xd79c('0xb'),auth[_0xd79c('0x7')](),controller[_0xd79c('0x1d')]);router[_0xd79c('0x1e')]('/:id',auth['isAuthenticated'](),controller['destroy']);router[_0xd79c('0x1e')](_0xd79c('0xd'),auth[_0xd79c('0x7')](),controller[_0xd79c('0x1f')]);router[_0xd79c('0x1e')]('/:id/canned_answers',auth[_0xd79c('0x7')](),controller[_0xd79c('0x20')]);router[_0xd79c('0x1e')](_0xd79c('0x13'),auth['isAuthenticated'](),controller['removeAgents']);module[_0xd79c('0x21')]=router;
\ No newline at end of file
+var _0xf886=['/:id/canned_answers','getAnswers','/:id/applications','getApplications','getInteractions','/:id/users','getAgents','post','addAnswer','/:id/notify','notify','addApplications','addAgents','/:id/send','update','delete','destroy','removeDispositions','removeAnswers','removeAgents','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get','/describe','isAuthenticated','describe','/:id','getDispositions'];(function(_0xac151d,_0x4ea1d2){var _0x111dba=function(_0x13d7f4){while(--_0x13d7f4){_0xac151d['push'](_0xac151d['shift']());}};_0x111dba(++_0x4ea1d2);}(_0xf886,0x80));var _0x6f88=function(_0x277b55,_0x8ba28){_0x277b55=_0x277b55-0x0;var _0xff0d15=_0xf886[_0x277b55];return _0xff0d15;};'use strict';var multer=require(_0x6f88('0x0'));var util=require(_0x6f88('0x1'));var path=require(_0x6f88('0x2'));var timeout=require(_0x6f88('0x3'));var express=require(_0x6f88('0x4'));var router=express[_0x6f88('0x5')]();var fs_extra=require(_0x6f88('0x6'));var auth=require(_0x6f88('0x7'));var interaction=require(_0x6f88('0x8'));var config=require(_0x6f88('0x9'));var controller=require('./openchannelAccount.controller');router[_0x6f88('0xa')]('/',auth['isAuthenticated'](),controller['index']);router[_0x6f88('0xa')](_0x6f88('0xb'),auth[_0x6f88('0xc')](),controller[_0x6f88('0xd')]);router[_0x6f88('0xa')](_0x6f88('0xe'),auth[_0x6f88('0xc')](),controller['show']);router['get']('/:id/dispositions',auth[_0x6f88('0xc')](),controller[_0x6f88('0xf')]);router[_0x6f88('0xa')](_0x6f88('0x10'),auth['isAuthenticated'](),controller[_0x6f88('0x11')]);router['get'](_0x6f88('0x12'),auth[_0x6f88('0xc')](),controller[_0x6f88('0x13')]);router[_0x6f88('0xa')]('/:id/interactions',auth[_0x6f88('0xc')](),controller[_0x6f88('0x14')]);router[_0x6f88('0xa')](_0x6f88('0x15'),auth[_0x6f88('0xc')](),controller[_0x6f88('0x16')]);router['post']('/',auth[_0x6f88('0xc')](),controller['create']);router[_0x6f88('0x17')]('/:id/dispositions',auth[_0x6f88('0xc')](),controller['addDisposition']);router[_0x6f88('0x17')](_0x6f88('0x10'),auth[_0x6f88('0xc')](),controller[_0x6f88('0x18')]);router[_0x6f88('0x17')](_0x6f88('0x19'),controller[_0x6f88('0x1a')]);router[_0x6f88('0x17')](_0x6f88('0x12'),auth[_0x6f88('0xc')](),controller[_0x6f88('0x1b')]);router[_0x6f88('0x17')](_0x6f88('0x15'),auth[_0x6f88('0xc')](),controller[_0x6f88('0x1c')]);router[_0x6f88('0x17')](_0x6f88('0x1d'),auth[_0x6f88('0xc')](),controller['send']);router['put'](_0x6f88('0xe'),auth['isAuthenticated'](),controller[_0x6f88('0x1e')]);router[_0x6f88('0x1f')](_0x6f88('0xe'),auth['isAuthenticated'](),controller[_0x6f88('0x20')]);router[_0x6f88('0x1f')]('/:id/dispositions',auth[_0x6f88('0xc')](),controller[_0x6f88('0x21')]);router['delete'](_0x6f88('0x10'),auth[_0x6f88('0xc')](),controller[_0x6f88('0x22')]);router['delete'](_0x6f88('0x15'),auth[_0x6f88('0xc')](),controller[_0x6f88('0x23')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4e76=['TEXT','Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}','BOOLEAN','INTEGER','Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled','Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','setDataValue','mandatoryDispositionPauseId','mandatoryDisposition','sequelize','randomstring','exports','name','STRING'];(function(_0x46bd20,_0x1dcfab){var _0x16a138=function(_0xeffde4){while(--_0xeffde4){_0x46bd20['push'](_0x46bd20['shift']());}};_0x16a138(++_0x1dcfab);}(_0x4e76,0x167));var _0x64e7=function(_0x5b9fc7,_0x1c2f66){_0x5b9fc7=_0x5b9fc7-0x0;var _0x38751a=_0x4e76[_0x5b9fc7];return _0x38751a;};'use strict';var Sequelize=require(_0x64e7('0x0'));var rs=require(_0x64e7('0x1'));module[_0x64e7('0x2')]={'name':{'type':Sequelize['STRING'],'unique':_0x64e7('0x3'),'allowNull':![]},'description':{'type':Sequelize[_0x64e7('0x4')]},'token':{'type':Sequelize[_0x64e7('0x4')],'defaultValue':function(){return rs['generate']();}},'replyUri':{'type':Sequelize[_0x64e7('0x4')],'validate':{'isUrl':!![]}},'key':{'type':Sequelize[_0x64e7('0x4')],'allowNull':![]},'notificationTemplate':{'type':Sequelize[_0x64e7('0x5')],'defaultValue':function(){return _0x64e7('0x6');}},'notificationSound':{'type':Sequelize[_0x64e7('0x7')],'defaultValue':!![]},'notificationShake':{'type':Sequelize[_0x64e7('0x7')],'defaultValue':![]},'waitForTheAssignedAgent':{'type':Sequelize[_0x64e7('0x8')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'mapKey':{'type':Sequelize[_0x64e7('0x4')]},'queueTransfer':{'type':Sequelize[_0x64e7('0x7')],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize[_0x64e7('0x7')],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize[_0x64e7('0x8')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'mandatoryDispositionPauseId':{'type':Sequelize[_0x64e7('0x8')],'allowNull':!![],'defaultValue':null,'comment':_0x64e7('0x9')},'mandatoryDisposition':{'type':Sequelize[_0x64e7('0x7')],'defaultValue':![],'comment':_0x64e7('0xa'),'set':function(_0x55811a){if(!_0x55811a)this[_0x64e7('0xb')](_0x64e7('0xc'),null);this[_0x64e7('0xb')](_0x64e7('0xd'),_0x55811a);}}};
\ No newline at end of file
+var _0xa1aa=['TEXT','Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}','BOOLEAN','INTEGER','Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled','Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','setDataValue','mandatoryDispositionPauseId','mandatoryDisposition','randomstring','exports','STRING','name','generate'];(function(_0x1256f0,_0x12eeba){var _0x17b32a=function(_0x5c3c53){while(--_0x5c3c53){_0x1256f0['push'](_0x1256f0['shift']());}};_0x17b32a(++_0x12eeba);}(_0xa1aa,0x1ad));var _0xaa1a=function(_0xcc3b57,_0x20c7db){_0xcc3b57=_0xcc3b57-0x0;var _0x1dc543=_0xa1aa[_0xcc3b57];return _0x1dc543;};'use strict';var Sequelize=require('sequelize');var rs=require(_0xaa1a('0x0'));module[_0xaa1a('0x1')]={'name':{'type':Sequelize[_0xaa1a('0x2')],'unique':_0xaa1a('0x3'),'allowNull':![]},'description':{'type':Sequelize[_0xaa1a('0x2')]},'token':{'type':Sequelize[_0xaa1a('0x2')],'defaultValue':function(){return rs[_0xaa1a('0x4')]();}},'replyUri':{'type':Sequelize['STRING'],'validate':{'isUrl':!![]}},'key':{'type':Sequelize[_0xaa1a('0x2')],'allowNull':![]},'notificationTemplate':{'type':Sequelize[_0xaa1a('0x5')],'defaultValue':function(){return _0xaa1a('0x6');}},'notificationSound':{'type':Sequelize[_0xaa1a('0x7')],'defaultValue':!![]},'notificationShake':{'type':Sequelize[_0xaa1a('0x7')],'defaultValue':![]},'waitForTheAssignedAgent':{'type':Sequelize[_0xaa1a('0x8')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'mapKey':{'type':Sequelize['STRING']},'queueTransfer':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize[_0xaa1a('0x8')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize[_0xaa1a('0x7')],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize[_0xaa1a('0x8')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'mandatoryDispositionPauseId':{'type':Sequelize['INTEGER'],'allowNull':!![],'defaultValue':null,'comment':_0xaa1a('0x9')},'mandatoryDisposition':{'type':Sequelize[_0xaa1a('0x7')],'defaultValue':![],'comment':_0xaa1a('0xa'),'set':function(_0x39cf1b){if(!_0x39cf1b)this[_0xaa1a('0xb')](_0xaa1a('0xc'),null);this['setDataValue'](_0xaa1a('0xd'),_0x39cf1b);}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xddf1=['moment','bluebird','mustache','util','path','sox','ejs','fs-extra','lodash','squel','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./openchannelAccount.socket','register','client','http','then','info','request\x20sent','debug','OpenchannelAccount,\x20%s,\x20%s,\x20%s','stringify','error','message','OpenchannelAccount,\x20%s,\x20%s','result','catch','sendStatus','status','end','undefined','limit','count','offset','Content-Range','json','apply','reject','save','destroy','get','OpenchannelAccounts','UserProfileResource','name','send','Pause','mandatoryDispositionPause','map','OpenchannelAccount','rawAttributes','fieldName','type','key','model','query','filters','attributes','fields','length','nolimit','sort','where','pick','filter','VIRTUAL','merge','options','findAll','rows','show','keys','includeAll','include','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','params','describe','addDisposition','OpenchannelAccountId','Disposition','getDispositions','findOne','intersection','hasOwnProperty','removeDispositions','ids','addAnswer','CannedAnswer','getAnswers','order','removeAnswers','notify','openchannel','CmContact','ValidationError','no\x20available\x20attributes','difference','createdAt','updatedAt','CompanyId','ListId','isNil','from','Sequelize','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','OpenchannelApplication','account','applications','Applications','orderBy','priority','asc','Contacts','contact','firstName','threadId','OpenchannelInteraction','externalUrl','ContactId','spread','lastName','messageId','interaction','created','push','close','unmanaged','*,*,*,*','OpenchannelMessage','AttachmentId','User','UserId','unshift','agent','waitForTheAssignedAgent','Start','startRouting','EventManager','sequelize','transaction','getApplications','getInteractions','Contact','fullname','internal','Tags','color','tag','addAgents','omit','emit','removeAgents','isArray','userOpenchannelAccount:remove','getAgents','DESC','out','Messages','dataValues','eml-format'];(function(_0x618767,_0x3328ac){var _0x39107e=function(_0x58a30d){while(--_0x58a30d){_0x618767['push'](_0x618767['shift']());}};_0x39107e(++_0x3328ac);}(_0xddf1,0x173));var _0x1ddf=function(_0x5627e1,_0x1b2dbf){_0x5627e1=_0x5627e1-0x0;var _0x2f013f=_0xddf1[_0x5627e1];return _0x2f013f;};'use strict';var emlformat=require(_0x1ddf('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x1ddf('0x1'));var BPromise=require(_0x1ddf('0x2'));var Mustache=require(_0x1ddf('0x3'));var util=require(_0x1ddf('0x4'));var path=require(_0x1ddf('0x5'));var sox=require(_0x1ddf('0x6'));var csv=require('to-csv');var ejs=require(_0x1ddf('0x7'));var fs=require('fs');var fs_extra=require(_0x1ddf('0x8'));var _=require(_0x1ddf('0x9'));var squel=require(_0x1ddf('0xa'));var crypto=require('crypto');var jsforce=require(_0x1ddf('0xb'));var deskjs=require(_0x1ddf('0xc'));var toCsv=require(_0x1ddf('0xd'));var querystring=require(_0x1ddf('0xe'));var Papa=require(_0x1ddf('0xf'));var Redis=require(_0x1ddf('0x10'));var authService=require(_0x1ddf('0x11'));var qs=require(_0x1ddf('0x12'));var as=require(_0x1ddf('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x1ddf('0x14'));var db=require(_0x1ddf('0x15'))['db'];config[_0x1ddf('0x16')]=_[_0x1ddf('0x17')](config[_0x1ddf('0x16')],{'host':_0x1ddf('0x18'),'port':0x18eb});var socket=require(_0x1ddf('0x19'))(new Redis(config['redis']));require(_0x1ddf('0x1a'))[_0x1ddf('0x1b')](socket);var jayson=require('jayson/promise');var client=jayson[_0x1ddf('0x1c')]['http']({'port':0x232c});var client9002=jayson[_0x1ddf('0x1c')][_0x1ddf('0x1d')]({'port':0x232a});function respondWithRpcPromise(_0x5c1972,_0x30c33b,_0xd9d985,_0x3fe704){return new BPromise(function(_0x5e6cd1,_0x467670){var _0x56913e=_0x3fe704||client;return _0x56913e['request'](_0x5c1972,_0xd9d985)[_0x1ddf('0x1e')](function(_0xeef751){logger[_0x1ddf('0x1f')]('OpenchannelAccount,\x20%s,\x20%s',_0x30c33b,_0x1ddf('0x20'));logger[_0x1ddf('0x21')](_0x1ddf('0x22'),_0x30c33b,_0x1ddf('0x20'),JSON[_0x1ddf('0x23')](_0xeef751));if(_0xeef751['error']){if(_0xeef751[_0x1ddf('0x24')]['code']===0x1f4){logger[_0x1ddf('0x24')]('OpenchannelAccount,\x20%s,\x20%s',_0x30c33b,_0xeef751['error'][_0x1ddf('0x25')]);return _0x467670(_0xeef751[_0x1ddf('0x24')][_0x1ddf('0x25')]);}logger[_0x1ddf('0x24')](_0x1ddf('0x26'),_0x30c33b,_0xeef751[_0x1ddf('0x24')][_0x1ddf('0x25')]);return _0x5e6cd1(_0xeef751[_0x1ddf('0x24')][_0x1ddf('0x25')]);}else{logger[_0x1ddf('0x1f')](_0x1ddf('0x26'),_0x30c33b,_0x1ddf('0x20'));_0x5e6cd1(_0xeef751[_0x1ddf('0x27')][_0x1ddf('0x25')]);}})[_0x1ddf('0x28')](function(_0x525284){logger[_0x1ddf('0x24')](_0x1ddf('0x26'),_0x30c33b,_0x525284);_0x467670(_0x525284);});});}function respondWithStatusCode(_0x522367,_0x29df3f){_0x29df3f=_0x29df3f||0xcc;return function(_0x5c2e0c){if(_0x5c2e0c){return _0x522367[_0x1ddf('0x29')](_0x29df3f);}return _0x522367[_0x1ddf('0x2a')](_0x29df3f)[_0x1ddf('0x2b')]();};}function respondWithResult(_0x1df206,_0x1fbf3d){_0x1fbf3d=_0x1fbf3d||0xc8;return function(_0x43b623){if(_0x43b623){return _0x1df206[_0x1ddf('0x2a')](_0x1fbf3d)['json'](_0x43b623);}};}function respondWithFilteredResult(_0x67fc21,_0x2791e5){return function(_0x46b379){if(_0x46b379){var _0x30b74f=typeof _0x2791e5['offset']===_0x1ddf('0x2c')&&typeof _0x2791e5[_0x1ddf('0x2d')]===_0x1ddf('0x2c');var _0x1e5eb6=_0x46b379[_0x1ddf('0x2e')];var _0x3f55e3=_0x30b74f?0x0:_0x2791e5['offset'];var _0x1ba709=_0x30b74f?_0x46b379[_0x1ddf('0x2e')]:_0x2791e5[_0x1ddf('0x2f')]+_0x2791e5['limit'];var _0x2ab6c5;if(_0x1ba709>=_0x1e5eb6){_0x1ba709=_0x1e5eb6;_0x2ab6c5=0xc8;}else{_0x2ab6c5=0xce;}_0x67fc21['status'](_0x2ab6c5);return _0x67fc21['set'](_0x1ddf('0x30'),_0x3f55e3+'-'+_0x1ba709+'/'+_0x1e5eb6)[_0x1ddf('0x31')](_0x46b379);}return null;};}function patchUpdates(_0x57e3cd){return function(_0x428ada){try{jsonpatch[_0x1ddf('0x32')](_0x428ada,_0x57e3cd,!![]);}catch(_0x5ddcca){return BPromise[_0x1ddf('0x33')](_0x5ddcca);}return _0x428ada[_0x1ddf('0x34')]();};}function saveUpdates(_0x299aa9,_0xb056f){return function(_0x19e5c0){if(_0x19e5c0){return _0x19e5c0['update'](_0x299aa9)[_0x1ddf('0x1e')](function(_0x1454ba){return _0x1454ba;});}return null;};}function removeEntity(_0x149c88,_0x3126ae){return function(_0x15f3ac){if(_0x15f3ac){return _0x15f3ac[_0x1ddf('0x35')]()[_0x1ddf('0x1e')](function(){var _0x20c60d=_0x15f3ac[_0x1ddf('0x36')]({'plain':!![]});var _0x155c8f=_0x1ddf('0x37');return db[_0x1ddf('0x38')]['destroy']({'where':{'type':_0x155c8f,'resourceId':_0x20c60d['id']}})[_0x1ddf('0x1e')](function(){return _0x15f3ac;});})[_0x1ddf('0x1e')](function(){_0x149c88[_0x1ddf('0x2a')](0xcc)[_0x1ddf('0x2b')]();});}};}function handleEntityNotFound(_0x1d9862,_0xfc2758){return function(_0x546f22){if(!_0x546f22){_0x1d9862['sendStatus'](0x194);}return _0x546f22;};}function handleError(_0x158ae0,_0x69016d){_0x69016d=_0x69016d||0x1f4;return function(_0x4e09a1){logger[_0x1ddf('0x24')](_0x4e09a1['stack']);if(_0x4e09a1[_0x1ddf('0x39')]){delete _0x4e09a1[_0x1ddf('0x39')];}_0x158ae0['status'](_0x69016d)[_0x1ddf('0x3a')](_0x4e09a1);};}exports['index']=function(_0x1af0e4,_0x3c30ad){var _0x4cab8a={'include':[{'model':db[_0x1ddf('0x3b')],'as':_0x1ddf('0x3c')}]},_0x3e964a={},_0x1b8e6f={'count':0x0,'rows':[]};var _0x4555c1=_[_0x1ddf('0x3d')](db[_0x1ddf('0x3e')][_0x1ddf('0x3f')],function(_0x23608b){return{'name':_0x23608b[_0x1ddf('0x40')],'type':_0x23608b[_0x1ddf('0x41')][_0x1ddf('0x42')]};});_0x3e964a[_0x1ddf('0x43')]=_[_0x1ddf('0x3d')](_0x4555c1,_0x1ddf('0x39'));_0x3e964a[_0x1ddf('0x44')]=_['keys'](_0x1af0e4[_0x1ddf('0x44')]);_0x3e964a[_0x1ddf('0x45')]=_['intersection'](_0x3e964a[_0x1ddf('0x43')],_0x3e964a[_0x1ddf('0x44')]);_0x4cab8a[_0x1ddf('0x46')]=_['intersection'](_0x3e964a[_0x1ddf('0x43')],qs[_0x1ddf('0x47')](_0x1af0e4[_0x1ddf('0x44')][_0x1ddf('0x47')]));_0x4cab8a[_0x1ddf('0x46')]=_0x4cab8a[_0x1ddf('0x46')][_0x1ddf('0x48')]?_0x4cab8a[_0x1ddf('0x46')]:_0x3e964a[_0x1ddf('0x43')];if(!_0x1af0e4[_0x1ddf('0x44')]['hasOwnProperty'](_0x1ddf('0x49'))){_0x4cab8a[_0x1ddf('0x2d')]=qs[_0x1ddf('0x2d')](_0x1af0e4['query'][_0x1ddf('0x2d')]);_0x4cab8a[_0x1ddf('0x2f')]=qs['offset'](_0x1af0e4[_0x1ddf('0x44')]['offset']);}_0x4cab8a['order']=qs[_0x1ddf('0x4a')](_0x1af0e4[_0x1ddf('0x44')][_0x1ddf('0x4a')]);_0x4cab8a[_0x1ddf('0x4b')]=qs[_0x1ddf('0x45')](_[_0x1ddf('0x4c')](_0x1af0e4['query'],_0x3e964a[_0x1ddf('0x45')]),_0x4555c1);if(_0x1af0e4['query'][_0x1ddf('0x4d')]){_0x4cab8a[_0x1ddf('0x4b')]=_['merge'](_0x4cab8a[_0x1ddf('0x4b')],{'$or':_['map'](_0x4555c1,function(_0x2e8dfe){if(_0x2e8dfe[_0x1ddf('0x41')]!==_0x1ddf('0x4e')){var _0x4eee32={};_0x4eee32[_0x2e8dfe[_0x1ddf('0x39')]]={'$like':'%'+_0x1af0e4[_0x1ddf('0x44')][_0x1ddf('0x4d')]+'%'};return _0x4eee32;}})});}_0x4cab8a=_[_0x1ddf('0x4f')]({},_0x4cab8a,_0x1af0e4[_0x1ddf('0x50')]);var _0x3e01a8={'where':_0x4cab8a['where']};return db['OpenchannelAccount'][_0x1ddf('0x2e')](_0x3e01a8)[_0x1ddf('0x1e')](function(_0x52a5d3){_0x1b8e6f[_0x1ddf('0x2e')]=_0x52a5d3;if(_0x1af0e4[_0x1ddf('0x44')]['includeAll']){_0x4cab8a['include']=[{'all':!![]}];}return db['OpenchannelAccount'][_0x1ddf('0x51')](_0x4cab8a);})['then'](function(_0x5b829f){_0x1b8e6f[_0x1ddf('0x52')]=_0x5b829f;return _0x1b8e6f;})[_0x1ddf('0x1e')](respondWithFilteredResult(_0x3c30ad,_0x4cab8a))[_0x1ddf('0x28')](handleError(_0x3c30ad,null));};exports[_0x1ddf('0x53')]=function(_0x40e4b1,_0x46ff9b){var _0x2bbe45={'raw':![],'where':{'id':_0x40e4b1['params']['id']},'include':[{'model':db[_0x1ddf('0x3b')],'as':_0x1ddf('0x3c')}]},_0x218cd7={};_0x218cd7[_0x1ddf('0x43')]=_[_0x1ddf('0x54')](db[_0x1ddf('0x3e')][_0x1ddf('0x3f')]);_0x218cd7[_0x1ddf('0x44')]=_[_0x1ddf('0x54')](_0x40e4b1[_0x1ddf('0x44')]);_0x218cd7[_0x1ddf('0x45')]=_['intersection'](_0x218cd7[_0x1ddf('0x43')],_0x218cd7[_0x1ddf('0x44')]);_0x2bbe45[_0x1ddf('0x46')]=_['intersection'](_0x218cd7[_0x1ddf('0x43')],qs[_0x1ddf('0x47')](_0x40e4b1[_0x1ddf('0x44')]['fields']));_0x2bbe45[_0x1ddf('0x46')]=_0x2bbe45[_0x1ddf('0x46')][_0x1ddf('0x48')]?_0x2bbe45[_0x1ddf('0x46')]:_0x218cd7[_0x1ddf('0x43')];if(_0x40e4b1[_0x1ddf('0x44')][_0x1ddf('0x55')]){_0x2bbe45[_0x1ddf('0x56')]=[{'all':!![]}];}_0x2bbe45=_['merge']({},_0x2bbe45,_0x40e4b1[_0x1ddf('0x50')]);return db['OpenchannelAccount'][_0x1ddf('0x57')](_0x2bbe45)[_0x1ddf('0x1e')](handleEntityNotFound(_0x46ff9b,null))[_0x1ddf('0x1e')](respondWithResult(_0x46ff9b,null))['catch'](handleError(_0x46ff9b,null));};exports['create']=function(_0x39cc71,_0x2bff94){return db[_0x1ddf('0x3e')][_0x1ddf('0x58')](_0x39cc71[_0x1ddf('0x59')],{})[_0x1ddf('0x1e')](function(_0x48f6d1){var _0x52b349=_0x39cc71[_0x1ddf('0x5a')][_0x1ddf('0x36')]({'plain':!![]});if(!_0x52b349)throw new Error(_0x1ddf('0x5b'));if(_0x52b349[_0x1ddf('0x5c')]==='user'){var _0x3043bf=_0x48f6d1[_0x1ddf('0x36')]({'plain':!![]});var _0x364389=_0x1ddf('0x37');return db['UserProfileSection'][_0x1ddf('0x57')]({'where':{'name':_0x364389,'userProfileId':_0x52b349['userProfileId']},'raw':!![]})['then'](function(_0x4ef566){if(_0x4ef566&&_0x4ef566[_0x1ddf('0x5d')]===0x0){return db['UserProfileResource'][_0x1ddf('0x58')]({'name':_0x3043bf[_0x1ddf('0x39')],'resourceId':_0x3043bf['id'],'type':_0x4ef566['name'],'sectionId':_0x4ef566['id']},{})[_0x1ddf('0x1e')](function(){return _0x48f6d1;});}else{return _0x48f6d1;}})[_0x1ddf('0x28')](function(_0x2d2da1){logger['error'](_0x1ddf('0x5e'),_0x2d2da1);throw _0x2d2da1;});}return _0x48f6d1;})[_0x1ddf('0x1e')](respondWithResult(_0x2bff94,0xc9))[_0x1ddf('0x28')](handleError(_0x2bff94,null));};exports[_0x1ddf('0x5f')]=function(_0x1246fd,_0xd81455){if(_0x1246fd[_0x1ddf('0x59')]['id']){delete _0x1246fd['body']['id'];}return db[_0x1ddf('0x3e')][_0x1ddf('0x57')]({'where':{'id':_0x1246fd[_0x1ddf('0x60')]['id']},'include':[{'model':db['Pause'],'as':'mandatoryDispositionPause'}]})[_0x1ddf('0x1e')](handleEntityNotFound(_0xd81455,null))[_0x1ddf('0x1e')](saveUpdates(_0x1246fd[_0x1ddf('0x59')],null))[_0x1ddf('0x1e')](respondWithResult(_0xd81455,null))['catch'](handleError(_0xd81455,null));};exports[_0x1ddf('0x35')]=function(_0x49a6d5,_0x34d2a1){return db['OpenchannelAccount']['find']({'where':{'id':_0x49a6d5[_0x1ddf('0x60')]['id']}})[_0x1ddf('0x1e')](handleEntityNotFound(_0x34d2a1,null))[_0x1ddf('0x1e')](removeEntity(_0x34d2a1,null))['catch'](handleError(_0x34d2a1,null));};exports[_0x1ddf('0x61')]=function(_0x355154,_0x33edb1){return db[_0x1ddf('0x3e')][_0x1ddf('0x61')]()['then'](respondWithResult(_0x33edb1,null))[_0x1ddf('0x28')](handleError(_0x33edb1,null));};exports[_0x1ddf('0x62')]=function(_0x3a5415,_0x510548,_0x2c2afb){if(_0x3a5415['body']['id']){delete _0x3a5415[_0x1ddf('0x59')]['id'];}return db[_0x1ddf('0x3e')][_0x1ddf('0x57')]({'where':{'id':_0x3a5415[_0x1ddf('0x60')]['id']}})[_0x1ddf('0x1e')](handleEntityNotFound(_0x510548,null))['then'](function(_0x1ce1c5){if(_0x1ce1c5){_0x3a5415['body'][_0x1ddf('0x63')]=_0x1ce1c5['id'];return db[_0x1ddf('0x64')]['create'](_0x3a5415['body']);}})[_0x1ddf('0x1e')](respondWithResult(_0x510548,null))[_0x1ddf('0x28')](handleError(_0x510548,null));};exports[_0x1ddf('0x65')]=function(_0x54d226,_0x4b4b95,_0x16198f){var _0xfe59d0={'raw':![],'where':{}};var _0x5d4108={};var _0x35ca63={'count':0x0,'rows':[]};return db['OpenchannelAccount'][_0x1ddf('0x66')]({'where':{'id':_0x54d226['params']['id']}})['then'](handleEntityNotFound(_0x4b4b95,null))['then'](function(_0x1ed1dd){if(_0x1ed1dd){_0x5d4108[_0x1ddf('0x43')]=_[_0x1ddf('0x54')](db['Disposition'][_0x1ddf('0x3f')]);_0x5d4108[_0x1ddf('0x44')]=_[_0x1ddf('0x54')](_0x54d226[_0x1ddf('0x44')]);_0x5d4108[_0x1ddf('0x45')]=_[_0x1ddf('0x67')](_0x5d4108['model'],_0x5d4108[_0x1ddf('0x44')]);_0xfe59d0[_0x1ddf('0x46')]=_[_0x1ddf('0x67')](_0x5d4108[_0x1ddf('0x43')],qs[_0x1ddf('0x47')](_0x54d226[_0x1ddf('0x44')][_0x1ddf('0x47')]));_0xfe59d0[_0x1ddf('0x46')]=_0xfe59d0['attributes']['length']?_0xfe59d0['attributes']:_0x5d4108[_0x1ddf('0x43')];if(!_0x54d226[_0x1ddf('0x44')][_0x1ddf('0x68')](_0x1ddf('0x49'))){_0xfe59d0[_0x1ddf('0x2d')]=qs['limit'](_0x54d226['query'][_0x1ddf('0x2d')]);_0xfe59d0[_0x1ddf('0x2f')]=qs[_0x1ddf('0x2f')](_0x54d226[_0x1ddf('0x44')]['offset']);}_0xfe59d0['order']=qs[_0x1ddf('0x4a')](_0x54d226['query'][_0x1ddf('0x4a')]);_0xfe59d0[_0x1ddf('0x4b')]=qs[_0x1ddf('0x45')](_[_0x1ddf('0x4c')](_0x54d226[_0x1ddf('0x44')],_0x5d4108[_0x1ddf('0x45')]));_0xfe59d0['where'][_0x1ddf('0x63')]=_0x1ed1dd['id'];if(_0x54d226['query'][_0x1ddf('0x4d')]){_0xfe59d0[_0x1ddf('0x4b')]=_[_0x1ddf('0x4f')](_0xfe59d0[_0x1ddf('0x4b')],{'$or':_[_0x1ddf('0x3d')](_0xfe59d0[_0x1ddf('0x46')],function(_0xee2ba){var _0x2a0ee9={};_0x2a0ee9[_0xee2ba]={'$like':'%'+_0x54d226['query']['filter']+'%'};return _0x2a0ee9;})});}_0xfe59d0=_[_0x1ddf('0x4f')]({},_0xfe59d0,_0x54d226[_0x1ddf('0x50')]);return db['Disposition'][_0x1ddf('0x2e')]({'where':_0xfe59d0[_0x1ddf('0x4b')]})['then'](function(_0x567a6d){_0x35ca63[_0x1ddf('0x2e')]=_0x567a6d;if(_0x54d226[_0x1ddf('0x44')][_0x1ddf('0x55')]){_0xfe59d0[_0x1ddf('0x56')]=[{'all':!![]}];}return db[_0x1ddf('0x64')][_0x1ddf('0x51')](_0xfe59d0);})[_0x1ddf('0x1e')](function(_0x2c47de){_0x35ca63[_0x1ddf('0x52')]=_0x2c47de;return _0x35ca63;});}})[_0x1ddf('0x1e')](respondWithFilteredResult(_0x4b4b95,_0xfe59d0))[_0x1ddf('0x28')](handleError(_0x4b4b95,null));};exports[_0x1ddf('0x69')]=function(_0x26fb3b,_0x231d20,_0x152ed7){return db['OpenchannelAccount'][_0x1ddf('0x57')]({'where':{'id':_0x26fb3b['params']['id']}})['then'](handleEntityNotFound(_0x231d20,null))[_0x1ddf('0x1e')](function(_0x3ee7e8){if(_0x3ee7e8){return _0x3ee7e8[_0x1ddf('0x69')](_0x26fb3b[_0x1ddf('0x44')][_0x1ddf('0x6a')]);}})[_0x1ddf('0x1e')](respondWithStatusCode(_0x231d20,null))['catch'](handleError(_0x231d20,null));};exports[_0x1ddf('0x6b')]=function(_0x58056d,_0x4c7005,_0x4775dc){if(_0x58056d[_0x1ddf('0x59')]['id']){delete _0x58056d[_0x1ddf('0x59')]['id'];}return db[_0x1ddf('0x3e')][_0x1ddf('0x57')]({'where':{'id':_0x58056d[_0x1ddf('0x60')]['id']}})[_0x1ddf('0x1e')](handleEntityNotFound(_0x4c7005,null))[_0x1ddf('0x1e')](function(_0x539814){if(_0x539814){_0x58056d[_0x1ddf('0x59')][_0x1ddf('0x63')]=_0x539814['id'];return db[_0x1ddf('0x6c')]['create'](_0x58056d['body']);}})[_0x1ddf('0x1e')](respondWithResult(_0x4c7005,null))[_0x1ddf('0x28')](handleError(_0x4c7005,null));};exports[_0x1ddf('0x6d')]=function(_0x4ae261,_0x45d2a0,_0x2c9cb2){var _0x2e329e={'raw':![],'where':{}};var _0x2652e2={};var _0x284e37={'count':0x0,'rows':[]};return db['OpenchannelAccount'][_0x1ddf('0x66')]({'where':{'id':_0x4ae261['params']['id']}})[_0x1ddf('0x1e')](handleEntityNotFound(_0x45d2a0,null))[_0x1ddf('0x1e')](function(_0xd9bce7){if(_0xd9bce7){_0x2652e2[_0x1ddf('0x43')]=_[_0x1ddf('0x54')](db[_0x1ddf('0x6c')]['rawAttributes']);_0x2652e2['query']=_[_0x1ddf('0x54')](_0x4ae261[_0x1ddf('0x44')]);_0x2652e2['filters']=_[_0x1ddf('0x67')](_0x2652e2[_0x1ddf('0x43')],_0x2652e2[_0x1ddf('0x44')]);_0x2e329e[_0x1ddf('0x46')]=_[_0x1ddf('0x67')](_0x2652e2[_0x1ddf('0x43')],qs[_0x1ddf('0x47')](_0x4ae261[_0x1ddf('0x44')][_0x1ddf('0x47')]));_0x2e329e[_0x1ddf('0x46')]=_0x2e329e[_0x1ddf('0x46')][_0x1ddf('0x48')]?_0x2e329e[_0x1ddf('0x46')]:_0x2652e2[_0x1ddf('0x43')];if(!_0x4ae261[_0x1ddf('0x44')]['hasOwnProperty']('nolimit')){_0x2e329e[_0x1ddf('0x2d')]=qs[_0x1ddf('0x2d')](_0x4ae261[_0x1ddf('0x44')][_0x1ddf('0x2d')]);_0x2e329e[_0x1ddf('0x2f')]=qs['offset'](_0x4ae261[_0x1ddf('0x44')]['offset']);}_0x2e329e[_0x1ddf('0x6e')]=qs[_0x1ddf('0x4a')](_0x4ae261[_0x1ddf('0x44')][_0x1ddf('0x4a')]);_0x2e329e['where']=qs[_0x1ddf('0x45')](_[_0x1ddf('0x4c')](_0x4ae261[_0x1ddf('0x44')],_0x2652e2[_0x1ddf('0x45')]));_0x2e329e[_0x1ddf('0x4b')][_0x1ddf('0x63')]=_0xd9bce7['id'];if(_0x4ae261[_0x1ddf('0x44')][_0x1ddf('0x4d')]){_0x2e329e[_0x1ddf('0x4b')]=_[_0x1ddf('0x4f')](_0x2e329e['where'],{'$or':_[_0x1ddf('0x3d')](_0x2e329e[_0x1ddf('0x46')],function(_0x53bf24){var _0x320d09={};_0x320d09[_0x53bf24]={'$like':'%'+_0x4ae261['query']['filter']+'%'};return _0x320d09;})});}_0x2e329e=_[_0x1ddf('0x4f')]({},_0x2e329e,_0x4ae261[_0x1ddf('0x50')]);return db[_0x1ddf('0x6c')][_0x1ddf('0x2e')]({'where':_0x2e329e[_0x1ddf('0x4b')]})['then'](function(_0x416b42){_0x284e37['count']=_0x416b42;if(_0x4ae261['query'][_0x1ddf('0x55')]){_0x2e329e[_0x1ddf('0x56')]=[{'all':!![]}];}return db['CannedAnswer'][_0x1ddf('0x51')](_0x2e329e);})[_0x1ddf('0x1e')](function(_0xb43d5e){_0x284e37[_0x1ddf('0x52')]=_0xb43d5e;return _0x284e37;});}})[_0x1ddf('0x1e')](respondWithFilteredResult(_0x45d2a0,_0x2e329e))[_0x1ddf('0x28')](handleError(_0x45d2a0,null));};exports['removeAnswers']=function(_0x13b426,_0x2ed2ad,_0x3fee57){return db[_0x1ddf('0x3e')][_0x1ddf('0x57')]({'where':{'id':_0x13b426['params']['id']}})[_0x1ddf('0x1e')](handleEntityNotFound(_0x2ed2ad,null))[_0x1ddf('0x1e')](function(_0x23838e){if(_0x23838e){return _0x23838e[_0x1ddf('0x6f')](_0x13b426[_0x1ddf('0x44')]['ids']);}})['then'](respondWithStatusCode(_0x2ed2ad,null))['catch'](handleError(_0x2ed2ad,null));};exports[_0x1ddf('0x70')]=function(_0x4704db,_0x57c62f,_0x37a67a){var _0x2b7c8={'body':_0x4704db[_0x1ddf('0x59')],'channel':_0x1ddf('0x71')};var _0x164492=[];var _0xa14f54=[];var _0x7a5aa0={};var _0x498996=![];return db[_0x1ddf('0x72')][_0x1ddf('0x61')]()[_0x1ddf('0x1e')](function(_0x3f20ff){if(!_0x3f20ff){throw new db['Sequelize'][(_0x1ddf('0x73'))](_0x1ddf('0x74'));}_0x164492=_[_0x1ddf('0x75')](_[_0x1ddf('0x54')](_0x3f20ff),[_0x1ddf('0x76'),_0x1ddf('0x77')]);_0xa14f54=_['difference'](_[_0x1ddf('0x54')](_0x3f20ff),[_0x1ddf('0x76'),_0x1ddf('0x77'),_0x1ddf('0x78'),_0x1ddf('0x79')]);if(_0x4704db[_0x1ddf('0x59')]['id']){delete _0x4704db[_0x1ddf('0x59')]['id'];}if(_[_0x1ddf('0x7a')](_0x4704db[_0x1ddf('0x59')][_0x1ddf('0x7b')])){throw new db['Sequelize']['ValidationError']('from\x20is\x20mandatory');}if(_[_0x1ddf('0x7a')](_0x4704db[_0x1ddf('0x59')][_0x1ddf('0x59')])||_0x4704db[_0x1ddf('0x59')][_0x1ddf('0x59')]===''){throw new db[(_0x1ddf('0x7c'))][(_0x1ddf('0x73'))](_0x1ddf('0x7d'));}if(_[_0x1ddf('0x7a')](_0x4704db[_0x1ddf('0x59')][_0x1ddf('0x7e')])){throw new db[(_0x1ddf('0x7c'))][(_0x1ddf('0x73'))](_0x1ddf('0x7f')+_0xa14f54);}if(!_[_0x1ddf('0x80')](_0xa14f54,_0x4704db[_0x1ddf('0x59')][_0x1ddf('0x7e')])){throw new db['Sequelize']['ValidationError'](_0x1ddf('0x81')+_0xa14f54);}_0x7a5aa0[_0x4704db['body'][_0x1ddf('0x7e')]]=_0x4704db[_0x1ddf('0x59')][_0x1ddf('0x7b')];})[_0x1ddf('0x1e')](function(){return db[_0x1ddf('0x3e')][_0x1ddf('0x57')]({'where':{'id':_0x4704db['params']['id']},'include':[{'model':db[_0x1ddf('0x82')],'as':_0x1ddf('0x83'),'include':[{'model':db['CmContact'],'as':'Contacts','where':_0x7a5aa0,'limit':0x1,'order':[[_0x1ddf('0x77'),'DESC']]}]},{'model':db[_0x1ddf('0x84')],'as':'Applications'}]});})[_0x1ddf('0x1e')](handleEntityNotFound(_0x57c62f,null))[_0x1ddf('0x1e')](function(_0x25d3e0){if(_0x25d3e0&&_0x25d3e0[_0x1ddf('0x83')]){_0x2b7c8[_0x1ddf('0x85')]=_0x25d3e0;_0x2b7c8[_0x1ddf('0x86')]=_0x25d3e0[_0x1ddf('0x87')];_0x2b7c8['list']=_0x25d3e0[_0x1ddf('0x83')];_0x2b7c8[_0x1ddf('0x86')]=_[_0x1ddf('0x88')](_0x2b7c8[_0x1ddf('0x86')],[_0x1ddf('0x89')],[_0x1ddf('0x8a')]);if(_0x2b7c8['account'][_0x1ddf('0x87')]){delete _0x2b7c8[_0x1ddf('0x85')][_0x1ddf('0x87')];}if(_0x2b7c8[_0x1ddf('0x85')][_0x1ddf('0x83')]&&_0x2b7c8[_0x1ddf('0x85')][_0x1ddf('0x83')]['Contacts'][_0x1ddf('0x48')]){return _0x2b7c8[_0x1ddf('0x85')][_0x1ddf('0x83')][_0x1ddf('0x8b')][0x0];}var _0x22b59c=_[_0x1ddf('0x17')](_0x4704db[_0x1ddf('0x59')],{'firstName':_0x4704db[_0x1ddf('0x59')][_0x1ddf('0x7b')],'ListId':_0x25d3e0[_0x1ddf('0x79')]});_0x22b59c[_0x4704db[_0x1ddf('0x59')][_0x1ddf('0x7e')]]=_0x4704db[_0x1ddf('0x59')][_0x1ddf('0x7b')];return db[_0x1ddf('0x72')][_0x1ddf('0x58')](_0x22b59c,{'fields':_0x164492,'raw':!![]});}})['then'](handleEntityNotFound(_0x57c62f,null))['then'](function(_0x19b3f9){_0x2b7c8[_0x1ddf('0x8c')]=_0x19b3f9;if(_0x19b3f9){var _0x2ba17f={'ContactId':_0x19b3f9['id'],'OpenchannelAccountId':_0x4704db[_0x1ddf('0x60')]['id'],'from':(_0x19b3f9[_0x1ddf('0x8d')]||'')+'\x20'+(_0x19b3f9['lastName']||'')};var _0x42c615={'OpenchannelAccountId':_0x4704db[_0x1ddf('0x60')]['id'],'closed':![]};if(_0x4704db[_0x1ddf('0x59')][_0x1ddf('0x8e')]){_0x42c615[_0x1ddf('0x8e')]=_0x4704db[_0x1ddf('0x59')]['threadId'];return db[_0x1ddf('0x8f')][_0x1ddf('0x57')]({'where':_0x42c615})[_0x1ddf('0x1e')](function(_0xca981c){if(_0xca981c){return[_0xca981c,![]];}_0x2ba17f[_0x1ddf('0x8e')]=_0x4704db[_0x1ddf('0x59')][_0x1ddf('0x8e')];_0x2ba17f[_0x1ddf('0x90')]=_0x4704db[_0x1ddf('0x59')]['externalUrl'];return db[_0x1ddf('0x8f')][_0x1ddf('0x58')](_0x2ba17f)[_0x1ddf('0x1e')](function(_0x4a2301){return[_0x4a2301,!![]];});});}else{_0x42c615['threadId']=null;}_0x42c615[_0x1ddf('0x91')]=_0x19b3f9['id'];return db['OpenchannelInteraction'][_0x1ddf('0x57')]({'where':_0x42c615})['then'](function(_0x1a0015){if(_0x1a0015){return[_0x1a0015,![]];}return db['OpenchannelInteraction'][_0x1ddf('0x58')](_0x2ba17f)[_0x1ddf('0x1e')](function(_0x21c94f){return[_0x21c94f,!![]];});});}})[_0x1ddf('0x92')](function(_0x18fac0,_0x480f1b){if(_0x18fac0){_0x498996=_0x480f1b;if(!_0x480f1b){var _0x2f1650={'from':(_0x2b7c8[_0x1ddf('0x8c')]['firstName']||'')+'\x20'+(_0x2b7c8[_0x1ddf('0x8c')][_0x1ddf('0x93')]||'')};if(_0x4704db[_0x1ddf('0x59')][_0x1ddf('0x8e')]&&_0x4704db[_0x1ddf('0x59')][_0x1ddf('0x94')]&&_0x4704db[_0x1ddf('0x59')][_0x1ddf('0x8e')]!=_0x4704db['body'][_0x1ddf('0x94')]){_0x2f1650[_0x1ddf('0x8e')]=_0x4704db[_0x1ddf('0x59')][_0x1ddf('0x94')];}return _0x18fac0['update'](_0x2f1650);}else{return _0x18fac0;}}})['then'](function(_0x178726){_0x2b7c8[_0x1ddf('0x95')]=_0x178726[_0x1ddf('0x36')]({'plain':!![]});_0x2b7c8['interaction'][_0x1ddf('0x96')]=_0x498996;if(_0x2b7c8[_0x1ddf('0x95')][_0x1ddf('0x96')]){if(_0x2b7c8[_0x1ddf('0x85')]['autoclose']){_0x2b7c8[_0x1ddf('0x86')][_0x1ddf('0x97')]({'id':0x0,'priority':_0x2b7c8['applications'][_0x1ddf('0x48')]+0x1,'app':_0x1ddf('0x98'),'appdata':_0x1ddf('0x99'),'interval':_0x1ddf('0x9a')});}}return db[_0x1ddf('0x9b')][_0x1ddf('0x58')]({'body':_0x4704db['body']['body'],'OpenchannelAccountId':_0x4704db['params']['id'],'OpenchannelInteractionId':_0x178726['id'],'direction':'in','ContactId':_0x2b7c8[_0x1ddf('0x8c')]['id'],'AttachmentId':_0x4704db[_0x1ddf('0x59')][_0x1ddf('0x9c')]});})[_0x1ddf('0x1e')](function(_0x173da5){_0x2b7c8[_0x1ddf('0x25')]=_0x173da5;if(_0x2b7c8[_0x1ddf('0x95')]['UserId']){return db[_0x1ddf('0x9d')][_0x1ddf('0x57')]({'attributes':['id',_0x1ddf('0x39')],'where':{'id':_0x2b7c8[_0x1ddf('0x95')][_0x1ddf('0x9e')]}})[_0x1ddf('0x1e')](function(_0x59bce5){if(_0x59bce5){_0x2b7c8[_0x1ddf('0x86')][_0x1ddf('0x9f')]({'id':0x0,'priority':0x0,'app':_0x1ddf('0xa0'),'appdata':_0x59bce5['name']+','+(_0x2b7c8[_0x1ddf('0x85')][_0x1ddf('0xa1')]||0xa),'interval':'*,*,*,*'});_0x2b7c8['forcedOwnership']=![];}return respondWithRpcPromise(_0x1ddf('0xa2'),_0x1ddf('0xa3'),_0x2b7c8);});}return respondWithRpcPromise(_0x1ddf('0xa2'),_0x1ddf('0xa3'),_0x2b7c8);})[_0x1ddf('0x1e')](function(_0x50794e){respondWithRpcPromise(_0x1ddf('0xa4'),_0x1ddf('0xa4'),{'event':_0x1ddf('0x70'),'message':_0x50794e},client9002);return _0x50794e;})[_0x1ddf('0x1e')](respondWithResult(_0x57c62f,null))[_0x1ddf('0x28')](handleError(_0x57c62f,null));};exports['addApplications']=function(_0x246517,_0x12f3f2,_0x24850d){return db['OpenchannelAccount'][_0x1ddf('0x66')]({'where':{'id':_0x246517[_0x1ddf('0x60')]['id']}})[_0x1ddf('0x1e')](handleEntityNotFound(_0x12f3f2,null))[_0x1ddf('0x1e')](function(_0x1c6909){if(_0x1c6909){return db[_0x1ddf('0xa5')][_0x1ddf('0xa6')](function(_0x295f4c){return db[_0x1ddf('0x84')]['destroy']({'where':{'OpenchannelAccountId':_0x246517[_0x1ddf('0x60')]['id']},'transaction':_0x295f4c})[_0x1ddf('0x1e')](function(_0x19e576){var _0x452c42=_['map'](_0x246517['body'],function(_0x593da5){_0x593da5['OpenchannelAccountId']=_0x246517[_0x1ddf('0x60')]['id'];return _0x593da5;});return db[_0x1ddf('0x84')]['bulkCreate'](_0x452c42,{'transaction':_0x295f4c});});})[_0x1ddf('0x1e')](function(){return db[_0x1ddf('0x84')]['findAndCountAll']({'where':{'OpenchannelAccountId':_0x246517[_0x1ddf('0x60')]['id']},'order':_0x1ddf('0x89')});});}})[_0x1ddf('0x1e')](respondWithResult(_0x12f3f2,null))[_0x1ddf('0x28')](handleError(_0x12f3f2,null));};exports['getApplications']=function(_0x15fca0,_0x1da78a,_0x1a086d){var _0xab1669={};var _0x5188fb={};var _0x12aa02;var _0x2f7712;return db['OpenchannelAccount'][_0x1ddf('0x66')]({'where':{'id':_0x15fca0[_0x1ddf('0x60')]['id']}})[_0x1ddf('0x1e')](handleEntityNotFound(_0x1da78a,null))[_0x1ddf('0x1e')](function(_0x5544a0){if(_0x5544a0){_0x12aa02=_0x5544a0;_0x5188fb[_0x1ddf('0x43')]=_['keys'](db[_0x1ddf('0x84')][_0x1ddf('0x3f')]);_0x5188fb[_0x1ddf('0x44')]=_[_0x1ddf('0x54')](_0x15fca0[_0x1ddf('0x44')]);_0x5188fb[_0x1ddf('0x45')]=_['intersection'](_0x5188fb['model'],_0x5188fb[_0x1ddf('0x44')]);_0xab1669[_0x1ddf('0x46')]=_[_0x1ddf('0x67')](_0x5188fb['model'],qs[_0x1ddf('0x47')](_0x15fca0[_0x1ddf('0x44')][_0x1ddf('0x47')]));_0xab1669[_0x1ddf('0x46')]=_0xab1669[_0x1ddf('0x46')]['length']?_0xab1669[_0x1ddf('0x46')]:_0x5188fb[_0x1ddf('0x43')];_0xab1669[_0x1ddf('0x6e')]=qs['sort'](_0x15fca0[_0x1ddf('0x44')][_0x1ddf('0x4a')]);_0xab1669[_0x1ddf('0x4b')]=qs[_0x1ddf('0x45')](_['pick'](_0x15fca0['query'],_0x5188fb['filters']));if(_0x15fca0[_0x1ddf('0x44')][_0x1ddf('0x4d')]){_0xab1669[_0x1ddf('0x4b')]=_[_0x1ddf('0x4f')](_0xab1669[_0x1ddf('0x4b')],{'$or':_[_0x1ddf('0x3d')](_0xab1669['attributes'],function(_0x123738){var _0x4d32da={};_0x4d32da[_0x123738]={'$like':'%'+_0x15fca0[_0x1ddf('0x44')][_0x1ddf('0x4d')]+'%'};return _0x4d32da;})});}_0xab1669=_[_0x1ddf('0x4f')]({},_0xab1669,_0x15fca0[_0x1ddf('0x50')]);return _0x12aa02['getApplications'](_0xab1669);}})[_0x1ddf('0x1e')](function(_0x40c4cc){if(_0x40c4cc){_0x2f7712=_0x40c4cc[_0x1ddf('0x48')];if(!_0x15fca0[_0x1ddf('0x44')][_0x1ddf('0x68')](_0x1ddf('0x49'))){_0xab1669[_0x1ddf('0x2d')]=qs[_0x1ddf('0x2d')](_0x15fca0[_0x1ddf('0x44')][_0x1ddf('0x2d')]);_0xab1669['offset']=qs[_0x1ddf('0x2f')](_0x15fca0[_0x1ddf('0x44')]['offset']);}return _0x12aa02[_0x1ddf('0xa7')](_0xab1669);}})[_0x1ddf('0x1e')](function(_0x1bfb91){if(_0x1bfb91){return _0x1bfb91?{'count':_0x2f7712,'rows':_0x1bfb91}:null;}})['then'](respondWithResult(_0x1da78a,null))[_0x1ddf('0x28')](handleError(_0x1da78a,null));};exports[_0x1ddf('0xa8')]=function(_0x26d2b3,_0x17bb84,_0x9072e1){var _0x5a669b={'raw':![],'where':{}};var _0x2143db={};var _0x169d94={'count':0x0,'rows':[]};return db['OpenchannelAccount'][_0x1ddf('0x66')]({'where':{'id':_0x26d2b3[_0x1ddf('0x60')]['id']}})[_0x1ddf('0x1e')](handleEntityNotFound(_0x17bb84,null))[_0x1ddf('0x1e')](function(_0x4c8b2a){if(_0x4c8b2a){_0x2143db['model']=_[_0x1ddf('0x54')](db[_0x1ddf('0x8f')][_0x1ddf('0x3f')]);_0x2143db['query']=_[_0x1ddf('0x54')](_0x26d2b3[_0x1ddf('0x44')]);_0x2143db[_0x1ddf('0x45')]=_['intersection'](_0x2143db[_0x1ddf('0x43')],_0x2143db['query']);_0x5a669b[_0x1ddf('0x46')]=_[_0x1ddf('0x67')](_0x2143db[_0x1ddf('0x43')],qs[_0x1ddf('0x47')](_0x26d2b3[_0x1ddf('0x44')][_0x1ddf('0x47')]));_0x5a669b['attributes']=_0x5a669b[_0x1ddf('0x46')][_0x1ddf('0x48')]?_0x5a669b['attributes']:_0x2143db[_0x1ddf('0x43')];if(!_0x26d2b3['query'][_0x1ddf('0x68')](_0x1ddf('0x49'))){_0x5a669b[_0x1ddf('0x2d')]=qs['limit'](_0x26d2b3[_0x1ddf('0x44')][_0x1ddf('0x2d')]);_0x5a669b['offset']=qs[_0x1ddf('0x2f')](_0x26d2b3['query'][_0x1ddf('0x2f')]);}_0x5a669b[_0x1ddf('0x6e')]=qs[_0x1ddf('0x4a')](_0x26d2b3[_0x1ddf('0x44')]['sort']);_0x5a669b['where']=qs[_0x1ddf('0x45')](_[_0x1ddf('0x4c')](_0x26d2b3[_0x1ddf('0x44')],_0x2143db[_0x1ddf('0x45')]));_0x5a669b[_0x1ddf('0x4b')][_0x1ddf('0x63')]=_0x4c8b2a['id'];if(_0x26d2b3[_0x1ddf('0x44')][_0x1ddf('0x4d')]){_0x5a669b['where']=_['merge'](_0x5a669b[_0x1ddf('0x4b')],{'$or':_[_0x1ddf('0x3d')](_0x5a669b[_0x1ddf('0x46')],function(_0x39697f){var _0x116e30={};_0x116e30[_0x39697f]={'$like':'%'+_0x26d2b3[_0x1ddf('0x44')][_0x1ddf('0x4d')]+'%'};return _0x116e30;})});}_0x5a669b=_[_0x1ddf('0x4f')]({},_0x5a669b,_0x26d2b3[_0x1ddf('0x50')]);return db[_0x1ddf('0x8f')]['count']({'where':_0x5a669b[_0x1ddf('0x4b')]})[_0x1ddf('0x1e')](function(_0x464a03){_0x169d94[_0x1ddf('0x2e')]=_0x464a03;if(_0x26d2b3[_0x1ddf('0x44')][_0x1ddf('0x55')]){_0x5a669b['include']=[{'model':db['CmContact'],'as':_0x1ddf('0xa9'),'required':![]},{'model':db['User'],'as':'Owner','attributes':['name',_0x1ddf('0xaa'),_0x1ddf('0xab')],'required':![]},{'model':db['Tag'],'as':_0x1ddf('0xac'),'attributes':['id',_0x1ddf('0x39'),_0x1ddf('0xad')],'where':_0x26d2b3[_0x1ddf('0x44')][_0x1ddf('0xae')]?{'id':_0x26d2b3[_0x1ddf('0x44')][_0x1ddf('0xae')]}:undefined,'required':_0x26d2b3[_0x1ddf('0x44')][_0x1ddf('0xae')]?!![]:![]}];}return db[_0x1ddf('0x8f')]['findAll'](_0x5a669b);})[_0x1ddf('0x1e')](function(_0x158b96){_0x169d94[_0x1ddf('0x52')]=_0x158b96;return _0x169d94;});}})['then'](respondWithFilteredResult(_0x17bb84,_0x5a669b))[_0x1ddf('0x28')](handleError(_0x17bb84,null));};exports['addAgents']=function(_0x4a142d,_0x16c59f,_0x4ffd96){return db[_0x1ddf('0x3e')][_0x1ddf('0x57')]({'where':{'id':_0x4a142d[_0x1ddf('0x60')]['id']}})['then'](handleEntityNotFound(_0x16c59f,null))[_0x1ddf('0x1e')](function(_0x5eddce){if(_0x5eddce){return _0x5eddce[_0x1ddf('0xaf')](_0x4a142d['body'][_0x1ddf('0x6a')],_[_0x1ddf('0xb0')](_0x4a142d[_0x1ddf('0x59')],['ids','id'])||{})[_0x1ddf('0x92')](function(_0xc31a5e){for(var _0x71fc31=0x0;_0x71fc31<_0x4a142d[_0x1ddf('0x59')][_0x1ddf('0x6a')][_0x1ddf('0x48')];_0x71fc31+=0x1){socket[_0x1ddf('0xb1')]('userOpenchannelAccount:save',{'UserId':Number(_0x4a142d['body'][_0x1ddf('0x6a')][_0x71fc31]),'OpenchannelAccountId':Number(_0x4a142d[_0x1ddf('0x60')]['id'])});}return _0xc31a5e;});}})[_0x1ddf('0x1e')](respondWithResult(_0x16c59f,null))[_0x1ddf('0x28')](handleError(_0x16c59f,null));};exports[_0x1ddf('0xb2')]=function(_0x38b6de,_0x1a9aee,_0x4fcb24){return db['OpenchannelAccount'][_0x1ddf('0x57')]({'where':{'id':_0x38b6de[_0x1ddf('0x60')]['id']}})[_0x1ddf('0x1e')](handleEntityNotFound(_0x1a9aee,null))[_0x1ddf('0x1e')](function(_0x49c050){if(_0x49c050){return _0x49c050['removeAgents'](_0x38b6de[_0x1ddf('0x44')]['ids'])[_0x1ddf('0x1e')](function(){if(_[_0x1ddf('0xb3')](_0x38b6de[_0x1ddf('0x44')][_0x1ddf('0x6a')])){for(var _0x2a6028=0x0;_0x2a6028<_0x38b6de[_0x1ddf('0x44')][_0x1ddf('0x6a')][_0x1ddf('0x48')];_0x2a6028+=0x1){socket['emit'](_0x1ddf('0xb4'),{'UserId':Number(_0x38b6de['query']['ids'][_0x2a6028]),'OpenchannelAccountId':Number(_0x38b6de[_0x1ddf('0x60')]['id'])});}}else{socket[_0x1ddf('0xb1')](_0x1ddf('0xb4'),{'UserId':Number(_0x38b6de[_0x1ddf('0x44')][_0x1ddf('0x6a')]),'OpenchannelAccountId':Number(_0x38b6de['params']['id'])});}});}})[_0x1ddf('0x1e')](respondWithStatusCode(_0x1a9aee,null))[_0x1ddf('0x28')](handleError(_0x1a9aee,null));};exports[_0x1ddf('0xb5')]=function(_0x3f776b,_0x372427,_0x27ae3d){var _0x2e3aa8={};var _0x140195={};var _0x4b038c;var _0x4af948;return db[_0x1ddf('0x3e')]['findOne']({'where':{'id':_0x3f776b[_0x1ddf('0x60')]['id']}})[_0x1ddf('0x1e')](handleEntityNotFound(_0x372427,null))[_0x1ddf('0x1e')](function(_0x5245bf){if(_0x5245bf){_0x4b038c=_0x5245bf;_0x140195[_0x1ddf('0x43')]=_[_0x1ddf('0x54')](db['User'][_0x1ddf('0x3f')]);_0x140195[_0x1ddf('0x44')]=_[_0x1ddf('0x54')](_0x3f776b[_0x1ddf('0x44')]);_0x140195[_0x1ddf('0x45')]=_['intersection'](_0x140195['model'],_0x140195[_0x1ddf('0x44')]);_0x2e3aa8[_0x1ddf('0x46')]=_[_0x1ddf('0x67')](_0x140195[_0x1ddf('0x43')],qs[_0x1ddf('0x47')](_0x3f776b[_0x1ddf('0x44')][_0x1ddf('0x47')]));_0x2e3aa8['attributes']=_0x2e3aa8[_0x1ddf('0x46')][_0x1ddf('0x48')]?_0x2e3aa8[_0x1ddf('0x46')]:_0x140195[_0x1ddf('0x43')];_0x2e3aa8[_0x1ddf('0x6e')]=qs[_0x1ddf('0x4a')](_0x3f776b[_0x1ddf('0x44')][_0x1ddf('0x4a')]);_0x2e3aa8['where']=qs[_0x1ddf('0x45')](_[_0x1ddf('0x4c')](_0x3f776b['query'],_0x140195[_0x1ddf('0x45')]));if(_0x3f776b['query']['filter']){_0x2e3aa8[_0x1ddf('0x4b')]=_[_0x1ddf('0x4f')](_0x2e3aa8[_0x1ddf('0x4b')],{'$or':_[_0x1ddf('0x3d')](_0x2e3aa8['attributes'],function(_0x95af2d){var _0x404325={};_0x404325[_0x95af2d]={'$like':'%'+_0x3f776b['query'][_0x1ddf('0x4d')]+'%'};return _0x404325;})});}_0x2e3aa8=_['merge']({},_0x2e3aa8,_0x3f776b[_0x1ddf('0x50')]);return _0x4b038c[_0x1ddf('0xb5')](_0x2e3aa8);}})[_0x1ddf('0x1e')](function(_0x12e0a4){if(_0x12e0a4){_0x4af948=_0x12e0a4[_0x1ddf('0x48')];if(!_0x3f776b['query'][_0x1ddf('0x68')](_0x1ddf('0x49'))){_0x2e3aa8[_0x1ddf('0x2d')]=qs[_0x1ddf('0x2d')](_0x3f776b['query'][_0x1ddf('0x2d')]);_0x2e3aa8[_0x1ddf('0x2f')]=qs[_0x1ddf('0x2f')](_0x3f776b['query'][_0x1ddf('0x2f')]);}return _0x4b038c['getAgents'](_0x2e3aa8);}})[_0x1ddf('0x1e')](function(_0x5dddd1){if(_0x5dddd1){return _0x5dddd1?{'count':_0x4af948,'rows':_0x5dddd1}:null;}})[_0x1ddf('0x1e')](respondWithResult(_0x372427,null))[_0x1ddf('0x28')](handleError(_0x372427,null));};exports[_0x1ddf('0x3a')]=function(_0x398c5f,_0xa9ff50,_0x398a48){var _0x470ff1,_0x361c3e,_0x1c724f;if(_[_0x1ddf('0x7a')](_0x398c5f['body'][_0x1ddf('0x59')])||_0x398c5f['body'][_0x1ddf('0x59')]===''){throw new db[(_0x1ddf('0x7c'))][(_0x1ddf('0x73'))](_0x1ddf('0x7d'));}if(_[_0x1ddf('0x7a')](_0x398c5f[_0x1ddf('0x59')]['to'])){}_0x470ff1=_0x398c5f['body']['to'];return db[_0x1ddf('0x3e')][_0x1ddf('0x66')]({'where':{'id':_0x398c5f[_0x1ddf('0x60')]['id']}})[_0x1ddf('0x1e')](handleEntityNotFound(_0xa9ff50,null))[_0x1ddf('0x1e')](function(_0x610010){if(_0x610010){return db[_0x1ddf('0x3e')][_0x1ddf('0x57')]({'where':{'id':_0x610010['id']},'include':[{'model':db[_0x1ddf('0x82')],'as':_0x1ddf('0x83'),'include':[{'model':db[_0x1ddf('0x72')],'as':'Contacts','where':{[_0x610010[_0x1ddf('0x7e')]]:_0x470ff1},'limit':0x1,'order':[[_0x1ddf('0x77'),_0x1ddf('0xb6')]]}]}]})[_0x1ddf('0x1e')](handleEntityNotFound(_0xa9ff50,null))[_0x1ddf('0x1e')](function(_0x1e8daa){if(_0x1e8daa&&_0x1e8daa[_0x1ddf('0x83')]){_0x361c3e=_0x1e8daa[_0x1ddf('0x36')]({'plain':!![]});if(_0x361c3e[_0x1ddf('0x83')]&&_0x361c3e[_0x1ddf('0x83')]['Contacts']['length']){return _0x361c3e['List']['Contacts'][0x0];}return db[_0x1ddf('0x72')][_0x1ddf('0x58')](_[_0x1ddf('0x17')](_0x398c5f[_0x1ddf('0x59')],{'firstName':_0x470ff1,[_0x1e8daa['mapKey']]:_0x470ff1,'phone':_0x470ff1,'ListId':_0x361c3e[_0x1ddf('0x79')]}));}})[_0x1ddf('0x1e')](handleEntityNotFound(_0xa9ff50,null))[_0x1ddf('0x1e')](function(_0x226e48){if(_0x226e48){_0x1c724f=_0x226e48;return db[_0x1ddf('0x8f')]['find']({'where':{'ContactId':_0x1c724f['id'],'closed':![],'OpenchannelAccountId':_0x361c3e['id']}})[_0x1ddf('0x1e')](function(_0x55c66b){if(_0x55c66b){return[_0x55c66b,![]];}return db[_0x1ddf('0x8f')][_0x1ddf('0x58')]({'UserId':_0x398c5f[_0x1ddf('0x5a')]['id'],'ContactId':_0x1c724f['id'],'OpenchannelAccountId':_0x361c3e['id'],'lastMsgDirection':_0x1ddf('0xb7'),'Messages':[_[_0x1ddf('0x4f')](_0x398c5f[_0x1ddf('0x59')],{'read':![],'body':_0x398c5f[_0x1ddf('0x59')]['body'],'OpenchannelAccountId':_0x361c3e['id'],'UserId':_0x398c5f[_0x1ddf('0x5a')]['id'],'ContactId':_0x1c724f['id']})]},{'include':[{'model':db[_0x1ddf('0x9b')],'as':_0x1ddf('0xb8')}]})['then'](function(_0x47d907){return[_0x47d907,!![]];});});}})[_0x1ddf('0x92')](function(_0x36b0d7,_0x5c5038){if(_0x5c5038){return _0x36b0d7;}return db[_0x1ddf('0x9b')]['create'](_[_0x1ddf('0x4f')](_0x398c5f['body'],{'read':![],'body':_0x398c5f[_0x1ddf('0x59')][_0x1ddf('0x59')],'OpenchannelAccountId':_0x361c3e['id'],'OpenchannelInteractionId':_0x36b0d7['id'],'UserId':_0x398c5f[_0x1ddf('0x5a')]['id'],'ContactId':_0x1c724f['id']}))[_0x1ddf('0x1e')](function(_0x1a1359){_0x36b0d7[_0x1ddf('0xb9')][_0x1ddf('0xb8')]=[];_0x36b0d7[_0x1ddf('0xb9')][_0x1ddf('0xb8')]['push'](_0x1a1359[_0x1ddf('0xb9')]);return _0x36b0d7;});});}})[_0x1ddf('0x1e')](respondWithResult(_0xa9ff50,null))[_0x1ddf('0x28')](handleError(_0xa9ff50,null));};
\ No newline at end of file
+var _0x8fec=['../../mysqldb','redis','defaults','register','jayson/promise','client','http','request','info','OpenchannelAccount,\x20%s,\x20%s','request\x20sent','OpenchannelAccount,\x20%s,\x20%s,\x20%s','error','code','message','result','catch','sendStatus','status','end','offset','undefined','count','limit','set','Content-Range','json','reject','save','destroy','then','UserProfileResource','name','index','Pause','mandatoryDispositionPause','type','key','model','map','query','keys','intersection','attributes','hasOwnProperty','nolimit','where','filters','pick','filter','merge','VIRTUAL','options','OpenchannelAccount','includeAll','include','findAll','show','params','fields','length','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','get','OpenchannelAccounts','UserProfileSection','find','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','describe','addDisposition','OpenchannelAccountId','getDispositions','findOne','rawAttributes','order','sort','Disposition','rows','removeDispositions','ids','addAnswer','CannedAnswer','getAnswers','removeAnswers','notify','CmContact','Sequelize','no\x20available\x20attributes','difference','createdAt','updatedAt','CompanyId','ListId','isNil','from','ValidationError','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','CmList','List','Contacts','DESC','OpenchannelApplication','Applications','applications','list','orderBy','priority','asc','account','contact','firstName','lastName','threadId','externalUrl','OpenchannelInteraction','ContactId','spread','messageId','interaction','created','autoclose','*,*,*,*','AttachmentId','UserId','waitForTheAssignedAgent','Start','startRouting','EventManager','addApplications','sequelize','transaction','bulkCreate','findAndCountAll','getApplications','getInteractions','User','fullname','internal','Tag','Tags','color','tag','removeAgents','isArray','emit','getAgents','send','out','OpenchannelMessage','Messages','dataValues','push','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','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'];(function(_0x3a89f6,_0x5a89aa){var _0x2182a9=function(_0x39e14d){while(--_0x39e14d){_0x3a89f6['push'](_0x3a89f6['shift']());}};_0x2182a9(++_0x5a89aa);}(_0x8fec,0xa2));var _0xc8fe=function(_0x4b6e1b,_0x5e5714){_0x4b6e1b=_0x4b6e1b-0x0;var _0x4f32e5=_0x8fec[_0x4b6e1b];return _0x4f32e5;};'use strict';var emlformat=require(_0xc8fe('0x0'));var rimraf=require(_0xc8fe('0x1'));var zipdir=require(_0xc8fe('0x2'));var jsonpatch=require(_0xc8fe('0x3'));var rp=require(_0xc8fe('0x4'));var moment=require('moment');var BPromise=require(_0xc8fe('0x5'));var Mustache=require(_0xc8fe('0x6'));var util=require(_0xc8fe('0x7'));var path=require('path');var sox=require(_0xc8fe('0x8'));var csv=require('to-csv');var ejs=require(_0xc8fe('0x9'));var fs=require('fs');var fs_extra=require(_0xc8fe('0xa'));var _=require(_0xc8fe('0xb'));var squel=require(_0xc8fe('0xc'));var crypto=require(_0xc8fe('0xd'));var jsforce=require(_0xc8fe('0xe'));var deskjs=require(_0xc8fe('0xf'));var toCsv=require(_0xc8fe('0x10'));var querystring=require(_0xc8fe('0x11'));var Papa=require(_0xc8fe('0x12'));var Redis=require(_0xc8fe('0x13'));var authService=require(_0xc8fe('0x14'));var qs=require(_0xc8fe('0x15'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xc8fe('0x16'));var logger=require(_0xc8fe('0x17'))(_0xc8fe('0x18'));var utils=require(_0xc8fe('0x19'));var config=require(_0xc8fe('0x1a'));var licenseUtil=require(_0xc8fe('0x1b'));var db=require(_0xc8fe('0x1c'))['db'];config[_0xc8fe('0x1d')]=_[_0xc8fe('0x1e')](config[_0xc8fe('0x1d')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xc8fe('0x1d')]));require('./openchannelAccount.socket')[_0xc8fe('0x1f')](socket);var jayson=require(_0xc8fe('0x20'));var client=jayson[_0xc8fe('0x21')][_0xc8fe('0x22')]({'port':0x232c});var client9002=jayson[_0xc8fe('0x21')][_0xc8fe('0x22')]({'port':0x232a});function respondWithRpcPromise(_0x38d46e,_0x2edcfc,_0x2c11d0,_0x4a69c2){return new BPromise(function(_0x285f5d,_0x15bd20){var _0x17d96f=_0x4a69c2||client;return _0x17d96f[_0xc8fe('0x23')](_0x38d46e,_0x2c11d0)['then'](function(_0x3ff5c3){logger[_0xc8fe('0x24')](_0xc8fe('0x25'),_0x2edcfc,_0xc8fe('0x26'));logger['debug'](_0xc8fe('0x27'),_0x2edcfc,_0xc8fe('0x26'),JSON['stringify'](_0x3ff5c3));if(_0x3ff5c3[_0xc8fe('0x28')]){if(_0x3ff5c3[_0xc8fe('0x28')][_0xc8fe('0x29')]===0x1f4){logger[_0xc8fe('0x28')](_0xc8fe('0x25'),_0x2edcfc,_0x3ff5c3[_0xc8fe('0x28')][_0xc8fe('0x2a')]);return _0x15bd20(_0x3ff5c3['error'][_0xc8fe('0x2a')]);}logger[_0xc8fe('0x28')](_0xc8fe('0x25'),_0x2edcfc,_0x3ff5c3[_0xc8fe('0x28')]['message']);return _0x285f5d(_0x3ff5c3[_0xc8fe('0x28')][_0xc8fe('0x2a')]);}else{logger[_0xc8fe('0x24')](_0xc8fe('0x25'),_0x2edcfc,_0xc8fe('0x26'));_0x285f5d(_0x3ff5c3[_0xc8fe('0x2b')]['message']);}})[_0xc8fe('0x2c')](function(_0x565391){logger['error']('OpenchannelAccount,\x20%s,\x20%s',_0x2edcfc,_0x565391);_0x15bd20(_0x565391);});});}function respondWithStatusCode(_0x2d5be4,_0x348469){_0x348469=_0x348469||0xcc;return function(_0x173164){if(_0x173164){return _0x2d5be4[_0xc8fe('0x2d')](_0x348469);}return _0x2d5be4[_0xc8fe('0x2e')](_0x348469)[_0xc8fe('0x2f')]();};}function respondWithResult(_0x1031ca,_0x9445e3){_0x9445e3=_0x9445e3||0xc8;return function(_0x4f9dbb){if(_0x4f9dbb){return _0x1031ca[_0xc8fe('0x2e')](_0x9445e3)['json'](_0x4f9dbb);}};}function respondWithFilteredResult(_0x575ee4,_0x5483e4){return function(_0x342ab8){if(_0x342ab8){var _0x483da5=typeof _0x5483e4[_0xc8fe('0x30')]===_0xc8fe('0x31')&&typeof _0x5483e4['limit']===_0xc8fe('0x31');var _0xcf7589=_0x342ab8[_0xc8fe('0x32')];var _0x1aae87=_0x483da5?0x0:_0x5483e4['offset'];var _0x4b824e=_0x483da5?_0x342ab8[_0xc8fe('0x32')]:_0x5483e4[_0xc8fe('0x30')]+_0x5483e4[_0xc8fe('0x33')];var _0x59443a;if(_0x4b824e>=_0xcf7589){_0x4b824e=_0xcf7589;_0x59443a=0xc8;}else{_0x59443a=0xce;}_0x575ee4['status'](_0x59443a);return _0x575ee4[_0xc8fe('0x34')](_0xc8fe('0x35'),_0x1aae87+'-'+_0x4b824e+'/'+_0xcf7589)[_0xc8fe('0x36')](_0x342ab8);}return null;};}function patchUpdates(_0x5194ea){return function(_0x38a301){try{jsonpatch['apply'](_0x38a301,_0x5194ea,!![]);}catch(_0x1b4210){return BPromise[_0xc8fe('0x37')](_0x1b4210);}return _0x38a301[_0xc8fe('0x38')]();};}function saveUpdates(_0x53a580,_0x189871){return function(_0x4dbd94){if(_0x4dbd94){return _0x4dbd94['update'](_0x53a580)['then'](function(_0x576f59){return _0x576f59;});}return null;};}function removeEntity(_0x8a9e9d,_0x1e06e7){return function(_0x3b9016){if(_0x3b9016){return _0x3b9016[_0xc8fe('0x39')]()[_0xc8fe('0x3a')](function(){var _0x36840e=_0x3b9016['get']({'plain':!![]});var _0x50ad58='OpenchannelAccounts';return db[_0xc8fe('0x3b')][_0xc8fe('0x39')]({'where':{'type':_0x50ad58,'resourceId':_0x36840e['id']}})[_0xc8fe('0x3a')](function(){return _0x3b9016;});})[_0xc8fe('0x3a')](function(){_0x8a9e9d[_0xc8fe('0x2e')](0xcc)[_0xc8fe('0x2f')]();});}};}function handleEntityNotFound(_0x15e4c5,_0x598f54){return function(_0x5af234){if(!_0x5af234){_0x15e4c5[_0xc8fe('0x2d')](0x194);}return _0x5af234;};}function handleError(_0x1d37ad,_0x3246ca){_0x3246ca=_0x3246ca||0x1f4;return function(_0x1fe77d){logger['error'](_0x1fe77d['stack']);if(_0x1fe77d[_0xc8fe('0x3c')]){delete _0x1fe77d[_0xc8fe('0x3c')];}_0x1d37ad[_0xc8fe('0x2e')](_0x3246ca)['send'](_0x1fe77d);};}exports[_0xc8fe('0x3d')]=function(_0x197958,_0x3192d9){var _0x378e0c={'include':[{'model':db[_0xc8fe('0x3e')],'as':_0xc8fe('0x3f')}]},_0x178e89={},_0xb747f5={'count':0x0,'rows':[]};var _0x14015a=_['map'](db['OpenchannelAccount']['rawAttributes'],function(_0x283c30){return{'name':_0x283c30['fieldName'],'type':_0x283c30[_0xc8fe('0x40')][_0xc8fe('0x41')]};});_0x178e89[_0xc8fe('0x42')]=_[_0xc8fe('0x43')](_0x14015a,'name');_0x178e89[_0xc8fe('0x44')]=_[_0xc8fe('0x45')](_0x197958[_0xc8fe('0x44')]);_0x178e89['filters']=_['intersection'](_0x178e89['model'],_0x178e89[_0xc8fe('0x44')]);_0x378e0c['attributes']=_[_0xc8fe('0x46')](_0x178e89[_0xc8fe('0x42')],qs['fields'](_0x197958['query']['fields']));_0x378e0c[_0xc8fe('0x47')]=_0x378e0c['attributes']['length']?_0x378e0c[_0xc8fe('0x47')]:_0x178e89[_0xc8fe('0x42')];if(!_0x197958['query'][_0xc8fe('0x48')](_0xc8fe('0x49'))){_0x378e0c['limit']=qs[_0xc8fe('0x33')](_0x197958[_0xc8fe('0x44')][_0xc8fe('0x33')]);_0x378e0c[_0xc8fe('0x30')]=qs[_0xc8fe('0x30')](_0x197958[_0xc8fe('0x44')][_0xc8fe('0x30')]);}_0x378e0c['order']=qs['sort'](_0x197958[_0xc8fe('0x44')]['sort']);_0x378e0c[_0xc8fe('0x4a')]=qs[_0xc8fe('0x4b')](_[_0xc8fe('0x4c')](_0x197958[_0xc8fe('0x44')],_0x178e89[_0xc8fe('0x4b')]),_0x14015a);if(_0x197958[_0xc8fe('0x44')][_0xc8fe('0x4d')]){_0x378e0c[_0xc8fe('0x4a')]=_[_0xc8fe('0x4e')](_0x378e0c['where'],{'$or':_[_0xc8fe('0x43')](_0x14015a,function(_0x48cac3){if(_0x48cac3[_0xc8fe('0x40')]!==_0xc8fe('0x4f')){var _0x4a5c51={};_0x4a5c51[_0x48cac3[_0xc8fe('0x3c')]]={'$like':'%'+_0x197958['query'][_0xc8fe('0x4d')]+'%'};return _0x4a5c51;}})});}_0x378e0c=_['merge']({},_0x378e0c,_0x197958[_0xc8fe('0x50')]);var _0x3ba76c={'where':_0x378e0c[_0xc8fe('0x4a')]};return db[_0xc8fe('0x51')][_0xc8fe('0x32')](_0x3ba76c)[_0xc8fe('0x3a')](function(_0x296514){_0xb747f5[_0xc8fe('0x32')]=_0x296514;if(_0x197958['query'][_0xc8fe('0x52')]){_0x378e0c[_0xc8fe('0x53')]=[{'all':!![]}];}return db[_0xc8fe('0x51')][_0xc8fe('0x54')](_0x378e0c);})['then'](function(_0x354f0a){_0xb747f5['rows']=_0x354f0a;return _0xb747f5;})[_0xc8fe('0x3a')](respondWithFilteredResult(_0x3192d9,_0x378e0c))[_0xc8fe('0x2c')](handleError(_0x3192d9,null));};exports[_0xc8fe('0x55')]=function(_0x2929ed,_0x4604ad){var _0x4b36db={'raw':![],'where':{'id':_0x2929ed[_0xc8fe('0x56')]['id']},'include':[{'model':db['Pause'],'as':_0xc8fe('0x3f')}]},_0x3fc323={};_0x3fc323[_0xc8fe('0x42')]=_[_0xc8fe('0x45')](db['OpenchannelAccount']['rawAttributes']);_0x3fc323[_0xc8fe('0x44')]=_[_0xc8fe('0x45')](_0x2929ed['query']);_0x3fc323[_0xc8fe('0x4b')]=_[_0xc8fe('0x46')](_0x3fc323[_0xc8fe('0x42')],_0x3fc323[_0xc8fe('0x44')]);_0x4b36db[_0xc8fe('0x47')]=_[_0xc8fe('0x46')](_0x3fc323['model'],qs[_0xc8fe('0x57')](_0x2929ed[_0xc8fe('0x44')]['fields']));_0x4b36db[_0xc8fe('0x47')]=_0x4b36db['attributes'][_0xc8fe('0x58')]?_0x4b36db[_0xc8fe('0x47')]:_0x3fc323[_0xc8fe('0x42')];if(_0x2929ed[_0xc8fe('0x44')][_0xc8fe('0x52')]){_0x4b36db[_0xc8fe('0x53')]=[{'all':!![]}];}_0x4b36db=_[_0xc8fe('0x4e')]({},_0x4b36db,_0x2929ed[_0xc8fe('0x50')]);return db[_0xc8fe('0x51')]['find'](_0x4b36db)[_0xc8fe('0x3a')](handleEntityNotFound(_0x4604ad,null))[_0xc8fe('0x3a')](respondWithResult(_0x4604ad,null))['catch'](handleError(_0x4604ad,null));};exports[_0xc8fe('0x59')]=function(_0x425885,_0x4f1e44){return db[_0xc8fe('0x51')][_0xc8fe('0x59')](_0x425885[_0xc8fe('0x5a')],{})[_0xc8fe('0x3a')](function(_0x53a187){var _0x4f2334=_0x425885['user']['get']({'plain':!![]});if(!_0x4f2334)throw new Error(_0xc8fe('0x5b'));if(_0x4f2334[_0xc8fe('0x5c')]===_0xc8fe('0x5d')){var _0x27e10c=_0x53a187[_0xc8fe('0x5e')]({'plain':!![]});var _0x2ee786=_0xc8fe('0x5f');return db[_0xc8fe('0x60')][_0xc8fe('0x61')]({'where':{'name':_0x2ee786,'userProfileId':_0x4f2334[_0xc8fe('0x62')]},'raw':!![]})[_0xc8fe('0x3a')](function(_0x35ddc0){if(_0x35ddc0&&_0x35ddc0[_0xc8fe('0x63')]===0x0){return db[_0xc8fe('0x3b')]['create']({'name':_0x27e10c['name'],'resourceId':_0x27e10c['id'],'type':_0x35ddc0[_0xc8fe('0x3c')],'sectionId':_0x35ddc0['id']},{})[_0xc8fe('0x3a')](function(){return _0x53a187;});}else{return _0x53a187;}})[_0xc8fe('0x2c')](function(_0x309a00){logger[_0xc8fe('0x28')](_0xc8fe('0x64'),_0x309a00);throw _0x309a00;});}return _0x53a187;})[_0xc8fe('0x3a')](respondWithResult(_0x4f1e44,0xc9))['catch'](handleError(_0x4f1e44,null));};exports[_0xc8fe('0x65')]=function(_0x591223,_0x54cd12){if(_0x591223['body']['id']){delete _0x591223['body']['id'];}return db['OpenchannelAccount'][_0xc8fe('0x61')]({'where':{'id':_0x591223[_0xc8fe('0x56')]['id']},'include':[{'model':db[_0xc8fe('0x3e')],'as':_0xc8fe('0x3f')}]})[_0xc8fe('0x3a')](handleEntityNotFound(_0x54cd12,null))[_0xc8fe('0x3a')](saveUpdates(_0x591223[_0xc8fe('0x5a')],null))[_0xc8fe('0x3a')](respondWithResult(_0x54cd12,null))[_0xc8fe('0x2c')](handleError(_0x54cd12,null));};exports[_0xc8fe('0x39')]=function(_0x5aadb5,_0xe0b533){return db[_0xc8fe('0x51')][_0xc8fe('0x61')]({'where':{'id':_0x5aadb5['params']['id']}})[_0xc8fe('0x3a')](handleEntityNotFound(_0xe0b533,null))[_0xc8fe('0x3a')](removeEntity(_0xe0b533,null))[_0xc8fe('0x2c')](handleError(_0xe0b533,null));};exports[_0xc8fe('0x66')]=function(_0x86c705,_0x19e7b9){return db[_0xc8fe('0x51')][_0xc8fe('0x66')]()[_0xc8fe('0x3a')](respondWithResult(_0x19e7b9,null))[_0xc8fe('0x2c')](handleError(_0x19e7b9,null));};exports[_0xc8fe('0x67')]=function(_0x31229a,_0xdb0f09,_0x20b515){if(_0x31229a[_0xc8fe('0x5a')]['id']){delete _0x31229a[_0xc8fe('0x5a')]['id'];}return db[_0xc8fe('0x51')]['find']({'where':{'id':_0x31229a[_0xc8fe('0x56')]['id']}})[_0xc8fe('0x3a')](handleEntityNotFound(_0xdb0f09,null))[_0xc8fe('0x3a')](function(_0x3e9ab7){if(_0x3e9ab7){_0x31229a[_0xc8fe('0x5a')][_0xc8fe('0x68')]=_0x3e9ab7['id'];return db['Disposition'][_0xc8fe('0x59')](_0x31229a[_0xc8fe('0x5a')]);}})[_0xc8fe('0x3a')](respondWithResult(_0xdb0f09,null))[_0xc8fe('0x2c')](handleError(_0xdb0f09,null));};exports[_0xc8fe('0x69')]=function(_0x1780d3,_0x283c7a,_0x4f2312){var _0x108185={'raw':![],'where':{}};var _0x552cc6={};var _0x3e60d0={'count':0x0,'rows':[]};return db[_0xc8fe('0x51')][_0xc8fe('0x6a')]({'where':{'id':_0x1780d3[_0xc8fe('0x56')]['id']}})[_0xc8fe('0x3a')](handleEntityNotFound(_0x283c7a,null))['then'](function(_0x409f26){if(_0x409f26){_0x552cc6[_0xc8fe('0x42')]=_['keys'](db['Disposition'][_0xc8fe('0x6b')]);_0x552cc6['query']=_[_0xc8fe('0x45')](_0x1780d3[_0xc8fe('0x44')]);_0x552cc6[_0xc8fe('0x4b')]=_['intersection'](_0x552cc6[_0xc8fe('0x42')],_0x552cc6['query']);_0x108185[_0xc8fe('0x47')]=_[_0xc8fe('0x46')](_0x552cc6[_0xc8fe('0x42')],qs[_0xc8fe('0x57')](_0x1780d3[_0xc8fe('0x44')][_0xc8fe('0x57')]));_0x108185[_0xc8fe('0x47')]=_0x108185[_0xc8fe('0x47')][_0xc8fe('0x58')]?_0x108185[_0xc8fe('0x47')]:_0x552cc6['model'];if(!_0x1780d3[_0xc8fe('0x44')][_0xc8fe('0x48')](_0xc8fe('0x49'))){_0x108185[_0xc8fe('0x33')]=qs[_0xc8fe('0x33')](_0x1780d3[_0xc8fe('0x44')][_0xc8fe('0x33')]);_0x108185[_0xc8fe('0x30')]=qs[_0xc8fe('0x30')](_0x1780d3['query']['offset']);}_0x108185[_0xc8fe('0x6c')]=qs[_0xc8fe('0x6d')](_0x1780d3[_0xc8fe('0x44')]['sort']);_0x108185[_0xc8fe('0x4a')]=qs[_0xc8fe('0x4b')](_[_0xc8fe('0x4c')](_0x1780d3['query'],_0x552cc6[_0xc8fe('0x4b')]));_0x108185[_0xc8fe('0x4a')]['OpenchannelAccountId']=_0x409f26['id'];if(_0x1780d3[_0xc8fe('0x44')]['filter']){_0x108185['where']=_[_0xc8fe('0x4e')](_0x108185['where'],{'$or':_[_0xc8fe('0x43')](_0x108185[_0xc8fe('0x47')],function(_0x4ae1aa){var _0xde8f60={};_0xde8f60[_0x4ae1aa]={'$like':'%'+_0x1780d3[_0xc8fe('0x44')][_0xc8fe('0x4d')]+'%'};return _0xde8f60;})});}_0x108185=_[_0xc8fe('0x4e')]({},_0x108185,_0x1780d3[_0xc8fe('0x50')]);return db[_0xc8fe('0x6e')][_0xc8fe('0x32')]({'where':_0x108185['where']})[_0xc8fe('0x3a')](function(_0x9920d){_0x3e60d0[_0xc8fe('0x32')]=_0x9920d;if(_0x1780d3[_0xc8fe('0x44')]['includeAll']){_0x108185[_0xc8fe('0x53')]=[{'all':!![]}];}return db[_0xc8fe('0x6e')][_0xc8fe('0x54')](_0x108185);})['then'](function(_0x180299){_0x3e60d0[_0xc8fe('0x6f')]=_0x180299;return _0x3e60d0;});}})['then'](respondWithFilteredResult(_0x283c7a,_0x108185))[_0xc8fe('0x2c')](handleError(_0x283c7a,null));};exports[_0xc8fe('0x70')]=function(_0x473323,_0x59aada,_0x653c1b){return db[_0xc8fe('0x51')][_0xc8fe('0x61')]({'where':{'id':_0x473323[_0xc8fe('0x56')]['id']}})[_0xc8fe('0x3a')](handleEntityNotFound(_0x59aada,null))['then'](function(_0x32d37d){if(_0x32d37d){return _0x32d37d[_0xc8fe('0x70')](_0x473323[_0xc8fe('0x44')][_0xc8fe('0x71')]);}})[_0xc8fe('0x3a')](respondWithStatusCode(_0x59aada,null))['catch'](handleError(_0x59aada,null));};exports[_0xc8fe('0x72')]=function(_0x4665e8,_0x35c49b,_0x354f76){if(_0x4665e8[_0xc8fe('0x5a')]['id']){delete _0x4665e8[_0xc8fe('0x5a')]['id'];}return db[_0xc8fe('0x51')][_0xc8fe('0x61')]({'where':{'id':_0x4665e8[_0xc8fe('0x56')]['id']}})[_0xc8fe('0x3a')](handleEntityNotFound(_0x35c49b,null))[_0xc8fe('0x3a')](function(_0x3fc296){if(_0x3fc296){_0x4665e8[_0xc8fe('0x5a')][_0xc8fe('0x68')]=_0x3fc296['id'];return db[_0xc8fe('0x73')][_0xc8fe('0x59')](_0x4665e8[_0xc8fe('0x5a')]);}})[_0xc8fe('0x3a')](respondWithResult(_0x35c49b,null))[_0xc8fe('0x2c')](handleError(_0x35c49b,null));};exports[_0xc8fe('0x74')]=function(_0x22fb86,_0x586ed3,_0x42c20a){var _0x1058e5={'raw':![],'where':{}};var _0x26a58e={};var _0x405abc={'count':0x0,'rows':[]};return db[_0xc8fe('0x51')][_0xc8fe('0x6a')]({'where':{'id':_0x22fb86[_0xc8fe('0x56')]['id']}})['then'](handleEntityNotFound(_0x586ed3,null))[_0xc8fe('0x3a')](function(_0x4f24f2){if(_0x4f24f2){_0x26a58e[_0xc8fe('0x42')]=_[_0xc8fe('0x45')](db['CannedAnswer']['rawAttributes']);_0x26a58e[_0xc8fe('0x44')]=_[_0xc8fe('0x45')](_0x22fb86['query']);_0x26a58e['filters']=_['intersection'](_0x26a58e[_0xc8fe('0x42')],_0x26a58e[_0xc8fe('0x44')]);_0x1058e5[_0xc8fe('0x47')]=_[_0xc8fe('0x46')](_0x26a58e[_0xc8fe('0x42')],qs[_0xc8fe('0x57')](_0x22fb86[_0xc8fe('0x44')][_0xc8fe('0x57')]));_0x1058e5['attributes']=_0x1058e5[_0xc8fe('0x47')][_0xc8fe('0x58')]?_0x1058e5[_0xc8fe('0x47')]:_0x26a58e['model'];if(!_0x22fb86[_0xc8fe('0x44')]['hasOwnProperty'](_0xc8fe('0x49'))){_0x1058e5[_0xc8fe('0x33')]=qs['limit'](_0x22fb86['query']['limit']);_0x1058e5['offset']=qs[_0xc8fe('0x30')](_0x22fb86[_0xc8fe('0x44')][_0xc8fe('0x30')]);}_0x1058e5[_0xc8fe('0x6c')]=qs[_0xc8fe('0x6d')](_0x22fb86['query'][_0xc8fe('0x6d')]);_0x1058e5[_0xc8fe('0x4a')]=qs[_0xc8fe('0x4b')](_['pick'](_0x22fb86[_0xc8fe('0x44')],_0x26a58e[_0xc8fe('0x4b')]));_0x1058e5[_0xc8fe('0x4a')]['OpenchannelAccountId']=_0x4f24f2['id'];if(_0x22fb86[_0xc8fe('0x44')][_0xc8fe('0x4d')]){_0x1058e5[_0xc8fe('0x4a')]=_['merge'](_0x1058e5['where'],{'$or':_[_0xc8fe('0x43')](_0x1058e5['attributes'],function(_0xd500b5){var _0x5c851e={};_0x5c851e[_0xd500b5]={'$like':'%'+_0x22fb86[_0xc8fe('0x44')][_0xc8fe('0x4d')]+'%'};return _0x5c851e;})});}_0x1058e5=_['merge']({},_0x1058e5,_0x22fb86[_0xc8fe('0x50')]);return db['CannedAnswer'][_0xc8fe('0x32')]({'where':_0x1058e5[_0xc8fe('0x4a')]})[_0xc8fe('0x3a')](function(_0x3e7f45){_0x405abc['count']=_0x3e7f45;if(_0x22fb86[_0xc8fe('0x44')]['includeAll']){_0x1058e5[_0xc8fe('0x53')]=[{'all':!![]}];}return db[_0xc8fe('0x73')]['findAll'](_0x1058e5);})[_0xc8fe('0x3a')](function(_0x11993c){_0x405abc[_0xc8fe('0x6f')]=_0x11993c;return _0x405abc;});}})[_0xc8fe('0x3a')](respondWithFilteredResult(_0x586ed3,_0x1058e5))[_0xc8fe('0x2c')](handleError(_0x586ed3,null));};exports[_0xc8fe('0x75')]=function(_0x4bceaa,_0xee0ff,_0x5c5dad){return db[_0xc8fe('0x51')][_0xc8fe('0x61')]({'where':{'id':_0x4bceaa[_0xc8fe('0x56')]['id']}})[_0xc8fe('0x3a')](handleEntityNotFound(_0xee0ff,null))['then'](function(_0x4f86be){if(_0x4f86be){return _0x4f86be[_0xc8fe('0x75')](_0x4bceaa[_0xc8fe('0x44')]['ids']);}})[_0xc8fe('0x3a')](respondWithStatusCode(_0xee0ff,null))[_0xc8fe('0x2c')](handleError(_0xee0ff,null));};exports[_0xc8fe('0x76')]=function(_0x38f5b5,_0x12dc64,_0x29ef48){var _0x10d358={'body':_0x38f5b5[_0xc8fe('0x5a')],'channel':'openchannel'};var _0x1b75b9=[];var _0x42a7c6=[];var _0xef5457={};var _0x7c95d7=![];return db[_0xc8fe('0x77')][_0xc8fe('0x66')]()[_0xc8fe('0x3a')](function(_0x4b392f){if(!_0x4b392f){throw new db[(_0xc8fe('0x78'))]['ValidationError'](_0xc8fe('0x79'));}_0x1b75b9=_[_0xc8fe('0x7a')](_['keys'](_0x4b392f),[_0xc8fe('0x7b'),_0xc8fe('0x7c')]);_0x42a7c6=_['difference'](_[_0xc8fe('0x45')](_0x4b392f),[_0xc8fe('0x7b'),'updatedAt',_0xc8fe('0x7d'),_0xc8fe('0x7e')]);if(_0x38f5b5[_0xc8fe('0x5a')]['id']){delete _0x38f5b5[_0xc8fe('0x5a')]['id'];}if(_[_0xc8fe('0x7f')](_0x38f5b5[_0xc8fe('0x5a')][_0xc8fe('0x80')])){throw new db[(_0xc8fe('0x78'))][(_0xc8fe('0x81'))](_0xc8fe('0x82'));}if(_[_0xc8fe('0x7f')](_0x38f5b5[_0xc8fe('0x5a')][_0xc8fe('0x5a')])||_0x38f5b5[_0xc8fe('0x5a')][_0xc8fe('0x5a')]===''){throw new db[(_0xc8fe('0x78'))][(_0xc8fe('0x81'))](_0xc8fe('0x83'));}if(_['isNil'](_0x38f5b5[_0xc8fe('0x5a')][_0xc8fe('0x84')])){throw new db['Sequelize'][(_0xc8fe('0x81'))](_0xc8fe('0x85')+_0x42a7c6);}if(!_['includes'](_0x42a7c6,_0x38f5b5[_0xc8fe('0x5a')][_0xc8fe('0x84')])){throw new db[(_0xc8fe('0x78'))]['ValidationError'](_0xc8fe('0x86')+_0x42a7c6);}_0xef5457[_0x38f5b5[_0xc8fe('0x5a')][_0xc8fe('0x84')]]=_0x38f5b5['body'][_0xc8fe('0x80')];})[_0xc8fe('0x3a')](function(){return db[_0xc8fe('0x51')][_0xc8fe('0x61')]({'where':{'id':_0x38f5b5[_0xc8fe('0x56')]['id']},'include':[{'model':db[_0xc8fe('0x87')],'as':_0xc8fe('0x88'),'include':[{'model':db[_0xc8fe('0x77')],'as':_0xc8fe('0x89'),'where':_0xef5457,'limit':0x1,'order':[['updatedAt',_0xc8fe('0x8a')]]}]},{'model':db[_0xc8fe('0x8b')],'as':_0xc8fe('0x8c')}]});})[_0xc8fe('0x3a')](handleEntityNotFound(_0x12dc64,null))['then'](function(_0xbf4b46){if(_0xbf4b46&&_0xbf4b46['List']){_0x10d358['account']=_0xbf4b46;_0x10d358[_0xc8fe('0x8d')]=_0xbf4b46[_0xc8fe('0x8c')];_0x10d358[_0xc8fe('0x8e')]=_0xbf4b46[_0xc8fe('0x88')];_0x10d358['applications']=_[_0xc8fe('0x8f')](_0x10d358['applications'],[_0xc8fe('0x90')],[_0xc8fe('0x91')]);if(_0x10d358[_0xc8fe('0x92')][_0xc8fe('0x8c')]){delete _0x10d358[_0xc8fe('0x92')][_0xc8fe('0x8c')];}if(_0x10d358[_0xc8fe('0x92')][_0xc8fe('0x88')]&&_0x10d358[_0xc8fe('0x92')]['List'][_0xc8fe('0x89')][_0xc8fe('0x58')]){return _0x10d358[_0xc8fe('0x92')][_0xc8fe('0x88')][_0xc8fe('0x89')][0x0];}var _0x256081=_['defaults'](_0x38f5b5['body'],{'firstName':_0x38f5b5[_0xc8fe('0x5a')][_0xc8fe('0x80')],'ListId':_0xbf4b46[_0xc8fe('0x7e')]});_0x256081[_0x38f5b5[_0xc8fe('0x5a')][_0xc8fe('0x84')]]=_0x38f5b5['body'][_0xc8fe('0x80')];return db['CmContact'][_0xc8fe('0x59')](_0x256081,{'fields':_0x1b75b9,'raw':!![]});}})[_0xc8fe('0x3a')](handleEntityNotFound(_0x12dc64,null))[_0xc8fe('0x3a')](function(_0x20c189){_0x10d358[_0xc8fe('0x93')]=_0x20c189;if(_0x20c189){var _0x4f11be={'ContactId':_0x20c189['id'],'OpenchannelAccountId':_0x38f5b5[_0xc8fe('0x56')]['id'],'from':(_0x20c189[_0xc8fe('0x94')]||'')+'\x20'+(_0x20c189[_0xc8fe('0x95')]||'')};var _0x5281c7={'OpenchannelAccountId':_0x38f5b5[_0xc8fe('0x56')]['id'],'closed':![]};if(_0x38f5b5['body'][_0xc8fe('0x96')]){_0x5281c7['threadId']=_0x38f5b5['body'][_0xc8fe('0x96')];return db['OpenchannelInteraction'][_0xc8fe('0x61')]({'where':_0x5281c7})[_0xc8fe('0x3a')](function(_0x3bfed7){if(_0x3bfed7){return[_0x3bfed7,![]];}_0x4f11be[_0xc8fe('0x96')]=_0x38f5b5[_0xc8fe('0x5a')][_0xc8fe('0x96')];_0x4f11be[_0xc8fe('0x97')]=_0x38f5b5[_0xc8fe('0x5a')][_0xc8fe('0x97')];return db[_0xc8fe('0x98')][_0xc8fe('0x59')](_0x4f11be)[_0xc8fe('0x3a')](function(_0x36ff3f){return[_0x36ff3f,!![]];});});}else{_0x5281c7[_0xc8fe('0x96')]=null;}_0x5281c7[_0xc8fe('0x99')]=_0x20c189['id'];return db[_0xc8fe('0x98')]['find']({'where':_0x5281c7})[_0xc8fe('0x3a')](function(_0x1bc500){if(_0x1bc500){return[_0x1bc500,![]];}return db[_0xc8fe('0x98')][_0xc8fe('0x59')](_0x4f11be)['then'](function(_0x343388){return[_0x343388,!![]];});});}})[_0xc8fe('0x9a')](function(_0x4ff57d,_0x6eba77){if(_0x4ff57d){_0x7c95d7=_0x6eba77;if(!_0x6eba77){var _0x30c8e9={'from':(_0x10d358[_0xc8fe('0x93')]['firstName']||'')+'\x20'+(_0x10d358['contact'][_0xc8fe('0x95')]||'')};if(_0x38f5b5[_0xc8fe('0x5a')][_0xc8fe('0x96')]&&_0x38f5b5[_0xc8fe('0x5a')]['messageId']&&_0x38f5b5['body'][_0xc8fe('0x96')]!=_0x38f5b5[_0xc8fe('0x5a')][_0xc8fe('0x9b')]){_0x30c8e9[_0xc8fe('0x96')]=_0x38f5b5[_0xc8fe('0x5a')][_0xc8fe('0x9b')];}return _0x4ff57d[_0xc8fe('0x65')](_0x30c8e9);}else{return _0x4ff57d;}}})['then'](function(_0x150751){_0x10d358[_0xc8fe('0x9c')]=_0x150751[_0xc8fe('0x5e')]({'plain':!![]});_0x10d358['interaction']['created']=_0x7c95d7;if(_0x10d358[_0xc8fe('0x9c')][_0xc8fe('0x9d')]){if(_0x10d358[_0xc8fe('0x92')][_0xc8fe('0x9e')]){_0x10d358[_0xc8fe('0x8d')]['push']({'id':0x0,'priority':_0x10d358[_0xc8fe('0x8d')][_0xc8fe('0x58')]+0x1,'app':'close','appdata':'unmanaged','interval':_0xc8fe('0x9f')});}}return db['OpenchannelMessage'][_0xc8fe('0x59')]({'body':_0x38f5b5[_0xc8fe('0x5a')][_0xc8fe('0x5a')],'OpenchannelAccountId':_0x38f5b5[_0xc8fe('0x56')]['id'],'OpenchannelInteractionId':_0x150751['id'],'direction':'in','ContactId':_0x10d358['contact']['id'],'AttachmentId':_0x38f5b5[_0xc8fe('0x5a')][_0xc8fe('0xa0')]});})[_0xc8fe('0x3a')](function(_0x415e13){_0x10d358[_0xc8fe('0x2a')]=_0x415e13;if(_0x10d358[_0xc8fe('0x9c')][_0xc8fe('0xa1')]){return db['User'][_0xc8fe('0x61')]({'attributes':['id',_0xc8fe('0x3c')],'where':{'id':_0x10d358['interaction'][_0xc8fe('0xa1')]}})[_0xc8fe('0x3a')](function(_0x900737){if(_0x900737){_0x10d358[_0xc8fe('0x8d')]['unshift']({'id':0x0,'priority':0x0,'app':'agent','appdata':_0x900737[_0xc8fe('0x3c')]+','+(_0x10d358[_0xc8fe('0x92')][_0xc8fe('0xa2')]||0xa),'interval':_0xc8fe('0x9f')});_0x10d358['forcedOwnership']=![];}return respondWithRpcPromise(_0xc8fe('0xa3'),'startRouting',_0x10d358);});}return respondWithRpcPromise(_0xc8fe('0xa3'),_0xc8fe('0xa4'),_0x10d358);})[_0xc8fe('0x3a')](function(_0x908ebb){respondWithRpcPromise('EventManager',_0xc8fe('0xa5'),{'event':_0xc8fe('0x76'),'message':_0x908ebb},client9002);return _0x908ebb;})[_0xc8fe('0x3a')](respondWithResult(_0x12dc64,null))[_0xc8fe('0x2c')](handleError(_0x12dc64,null));};exports[_0xc8fe('0xa6')]=function(_0x3af2a0,_0x1f11eb,_0xef6063){return db[_0xc8fe('0x51')][_0xc8fe('0x6a')]({'where':{'id':_0x3af2a0['params']['id']}})['then'](handleEntityNotFound(_0x1f11eb,null))[_0xc8fe('0x3a')](function(_0x5aad40){if(_0x5aad40){return db[_0xc8fe('0xa7')][_0xc8fe('0xa8')](function(_0x61d22a){return db[_0xc8fe('0x8b')][_0xc8fe('0x39')]({'where':{'OpenchannelAccountId':_0x3af2a0[_0xc8fe('0x56')]['id']},'transaction':_0x61d22a})[_0xc8fe('0x3a')](function(_0x5c48d3){var _0x32dec3=_['map'](_0x3af2a0['body'],function(_0x38d2c8){_0x38d2c8[_0xc8fe('0x68')]=_0x3af2a0[_0xc8fe('0x56')]['id'];return _0x38d2c8;});return db[_0xc8fe('0x8b')][_0xc8fe('0xa9')](_0x32dec3,{'transaction':_0x61d22a});});})[_0xc8fe('0x3a')](function(){return db[_0xc8fe('0x8b')][_0xc8fe('0xaa')]({'where':{'OpenchannelAccountId':_0x3af2a0['params']['id']},'order':_0xc8fe('0x90')});});}})[_0xc8fe('0x3a')](respondWithResult(_0x1f11eb,null))[_0xc8fe('0x2c')](handleError(_0x1f11eb,null));};exports['getApplications']=function(_0x197874,_0x3bda0c,_0x2da577){var _0x244104={};var _0x527521={};var _0x16504a;var _0x211fb5;return db[_0xc8fe('0x51')][_0xc8fe('0x6a')]({'where':{'id':_0x197874['params']['id']}})[_0xc8fe('0x3a')](handleEntityNotFound(_0x3bda0c,null))[_0xc8fe('0x3a')](function(_0x28e313){if(_0x28e313){_0x16504a=_0x28e313;_0x527521[_0xc8fe('0x42')]=_[_0xc8fe('0x45')](db['OpenchannelApplication'][_0xc8fe('0x6b')]);_0x527521['query']=_['keys'](_0x197874[_0xc8fe('0x44')]);_0x527521[_0xc8fe('0x4b')]=_[_0xc8fe('0x46')](_0x527521[_0xc8fe('0x42')],_0x527521['query']);_0x244104[_0xc8fe('0x47')]=_[_0xc8fe('0x46')](_0x527521[_0xc8fe('0x42')],qs[_0xc8fe('0x57')](_0x197874['query'][_0xc8fe('0x57')]));_0x244104[_0xc8fe('0x47')]=_0x244104[_0xc8fe('0x47')][_0xc8fe('0x58')]?_0x244104[_0xc8fe('0x47')]:_0x527521[_0xc8fe('0x42')];_0x244104[_0xc8fe('0x6c')]=qs[_0xc8fe('0x6d')](_0x197874[_0xc8fe('0x44')][_0xc8fe('0x6d')]);_0x244104[_0xc8fe('0x4a')]=qs[_0xc8fe('0x4b')](_[_0xc8fe('0x4c')](_0x197874['query'],_0x527521[_0xc8fe('0x4b')]));if(_0x197874[_0xc8fe('0x44')][_0xc8fe('0x4d')]){_0x244104[_0xc8fe('0x4a')]=_['merge'](_0x244104[_0xc8fe('0x4a')],{'$or':_[_0xc8fe('0x43')](_0x244104[_0xc8fe('0x47')],function(_0x2c25f2){var _0x135c84={};_0x135c84[_0x2c25f2]={'$like':'%'+_0x197874['query'][_0xc8fe('0x4d')]+'%'};return _0x135c84;})});}_0x244104=_[_0xc8fe('0x4e')]({},_0x244104,_0x197874[_0xc8fe('0x50')]);return _0x16504a[_0xc8fe('0xab')](_0x244104);}})['then'](function(_0x105ad7){if(_0x105ad7){_0x211fb5=_0x105ad7[_0xc8fe('0x58')];if(!_0x197874[_0xc8fe('0x44')]['hasOwnProperty'](_0xc8fe('0x49'))){_0x244104[_0xc8fe('0x33')]=qs['limit'](_0x197874[_0xc8fe('0x44')][_0xc8fe('0x33')]);_0x244104[_0xc8fe('0x30')]=qs['offset'](_0x197874[_0xc8fe('0x44')][_0xc8fe('0x30')]);}return _0x16504a[_0xc8fe('0xab')](_0x244104);}})[_0xc8fe('0x3a')](function(_0x1726f1){if(_0x1726f1){return _0x1726f1?{'count':_0x211fb5,'rows':_0x1726f1}:null;}})[_0xc8fe('0x3a')](respondWithResult(_0x3bda0c,null))[_0xc8fe('0x2c')](handleError(_0x3bda0c,null));};exports[_0xc8fe('0xac')]=function(_0x2440e3,_0x369646,_0x44808f){var _0x18ccf7={'raw':![],'where':{}};var _0x5cc8b8={};var _0x5da132={'count':0x0,'rows':[]};return db[_0xc8fe('0x51')][_0xc8fe('0x6a')]({'where':{'id':_0x2440e3[_0xc8fe('0x56')]['id']}})[_0xc8fe('0x3a')](handleEntityNotFound(_0x369646,null))['then'](function(_0x1d7ae6){if(_0x1d7ae6){_0x5cc8b8[_0xc8fe('0x42')]=_[_0xc8fe('0x45')](db['OpenchannelInteraction'][_0xc8fe('0x6b')]);_0x5cc8b8[_0xc8fe('0x44')]=_[_0xc8fe('0x45')](_0x2440e3[_0xc8fe('0x44')]);_0x5cc8b8[_0xc8fe('0x4b')]=_[_0xc8fe('0x46')](_0x5cc8b8['model'],_0x5cc8b8[_0xc8fe('0x44')]);_0x18ccf7[_0xc8fe('0x47')]=_[_0xc8fe('0x46')](_0x5cc8b8[_0xc8fe('0x42')],qs[_0xc8fe('0x57')](_0x2440e3['query'][_0xc8fe('0x57')]));_0x18ccf7['attributes']=_0x18ccf7[_0xc8fe('0x47')][_0xc8fe('0x58')]?_0x18ccf7['attributes']:_0x5cc8b8['model'];if(!_0x2440e3[_0xc8fe('0x44')]['hasOwnProperty'](_0xc8fe('0x49'))){_0x18ccf7[_0xc8fe('0x33')]=qs['limit'](_0x2440e3[_0xc8fe('0x44')]['limit']);_0x18ccf7[_0xc8fe('0x30')]=qs['offset'](_0x2440e3[_0xc8fe('0x44')]['offset']);}_0x18ccf7[_0xc8fe('0x6c')]=qs[_0xc8fe('0x6d')](_0x2440e3['query']['sort']);_0x18ccf7[_0xc8fe('0x4a')]=qs[_0xc8fe('0x4b')](_['pick'](_0x2440e3[_0xc8fe('0x44')],_0x5cc8b8[_0xc8fe('0x4b')]));_0x18ccf7[_0xc8fe('0x4a')][_0xc8fe('0x68')]=_0x1d7ae6['id'];if(_0x2440e3[_0xc8fe('0x44')][_0xc8fe('0x4d')]){_0x18ccf7[_0xc8fe('0x4a')]=_['merge'](_0x18ccf7[_0xc8fe('0x4a')],{'$or':_[_0xc8fe('0x43')](_0x18ccf7['attributes'],function(_0xaf3438){var _0x4a809e={};_0x4a809e[_0xaf3438]={'$like':'%'+_0x2440e3['query'][_0xc8fe('0x4d')]+'%'};return _0x4a809e;})});}_0x18ccf7=_['merge']({},_0x18ccf7,_0x2440e3[_0xc8fe('0x50')]);return db[_0xc8fe('0x98')][_0xc8fe('0x32')]({'where':_0x18ccf7['where']})[_0xc8fe('0x3a')](function(_0x3b24e6){_0x5da132[_0xc8fe('0x32')]=_0x3b24e6;if(_0x2440e3[_0xc8fe('0x44')]['includeAll']){_0x18ccf7[_0xc8fe('0x53')]=[{'model':db[_0xc8fe('0x77')],'as':'Contact','required':![]},{'model':db[_0xc8fe('0xad')],'as':'Owner','attributes':['name',_0xc8fe('0xae'),_0xc8fe('0xaf')],'required':![]},{'model':db[_0xc8fe('0xb0')],'as':_0xc8fe('0xb1'),'attributes':['id',_0xc8fe('0x3c'),_0xc8fe('0xb2')],'where':_0x2440e3[_0xc8fe('0x44')][_0xc8fe('0xb3')]?{'id':_0x2440e3[_0xc8fe('0x44')][_0xc8fe('0xb3')]}:undefined,'required':_0x2440e3[_0xc8fe('0x44')]['tag']?!![]:![]}];}return db['OpenchannelInteraction'][_0xc8fe('0x54')](_0x18ccf7);})[_0xc8fe('0x3a')](function(_0x584fec){_0x5da132[_0xc8fe('0x6f')]=_0x584fec;return _0x5da132;});}})[_0xc8fe('0x3a')](respondWithFilteredResult(_0x369646,_0x18ccf7))[_0xc8fe('0x2c')](handleError(_0x369646,null));};exports['addAgents']=function(_0xa00d48,_0x10b5d3,_0x555a5a){return db[_0xc8fe('0x51')][_0xc8fe('0x61')]({'where':{'id':_0xa00d48['params']['id']}})[_0xc8fe('0x3a')](handleEntityNotFound(_0x10b5d3,null))[_0xc8fe('0x3a')](function(_0x192240){if(_0x192240){return _0x192240['addAgents'](_0xa00d48['body'][_0xc8fe('0x71')],_['omit'](_0xa00d48[_0xc8fe('0x5a')],[_0xc8fe('0x71'),'id'])||{})[_0xc8fe('0x9a')](function(_0x4116b0){for(var _0x57f60a=0x0;_0x57f60a<_0xa00d48[_0xc8fe('0x5a')][_0xc8fe('0x71')][_0xc8fe('0x58')];_0x57f60a+=0x1){socket['emit']('userOpenchannelAccount:save',{'UserId':Number(_0xa00d48[_0xc8fe('0x5a')]['ids'][_0x57f60a]),'OpenchannelAccountId':Number(_0xa00d48[_0xc8fe('0x56')]['id'])});}return _0x4116b0;});}})[_0xc8fe('0x3a')](respondWithResult(_0x10b5d3,null))[_0xc8fe('0x2c')](handleError(_0x10b5d3,null));};exports[_0xc8fe('0xb4')]=function(_0x59643e,_0x28d95c,_0x51f7d0){return db[_0xc8fe('0x51')][_0xc8fe('0x61')]({'where':{'id':_0x59643e[_0xc8fe('0x56')]['id']}})[_0xc8fe('0x3a')](handleEntityNotFound(_0x28d95c,null))['then'](function(_0x5fe7ed){if(_0x5fe7ed){return _0x5fe7ed[_0xc8fe('0xb4')](_0x59643e['query'][_0xc8fe('0x71')])['then'](function(){if(_[_0xc8fe('0xb5')](_0x59643e[_0xc8fe('0x44')][_0xc8fe('0x71')])){for(var _0x25efdc=0x0;_0x25efdc<_0x59643e[_0xc8fe('0x44')][_0xc8fe('0x71')][_0xc8fe('0x58')];_0x25efdc+=0x1){socket[_0xc8fe('0xb6')]('userOpenchannelAccount:remove',{'UserId':Number(_0x59643e['query'][_0xc8fe('0x71')][_0x25efdc]),'OpenchannelAccountId':Number(_0x59643e[_0xc8fe('0x56')]['id'])});}}else{socket[_0xc8fe('0xb6')]('userOpenchannelAccount:remove',{'UserId':Number(_0x59643e[_0xc8fe('0x44')][_0xc8fe('0x71')]),'OpenchannelAccountId':Number(_0x59643e[_0xc8fe('0x56')]['id'])});}});}})['then'](respondWithStatusCode(_0x28d95c,null))[_0xc8fe('0x2c')](handleError(_0x28d95c,null));};exports['getAgents']=function(_0x5f2654,_0x300506,_0x90efca){var _0x1fbea8={};var _0x54a951={};var _0x472aeb;var _0x38f2cf;return db[_0xc8fe('0x51')]['findOne']({'where':{'id':_0x5f2654['params']['id']}})[_0xc8fe('0x3a')](handleEntityNotFound(_0x300506,null))[_0xc8fe('0x3a')](function(_0x26fc82){if(_0x26fc82){_0x472aeb=_0x26fc82;_0x54a951[_0xc8fe('0x42')]=_[_0xc8fe('0x45')](db[_0xc8fe('0xad')][_0xc8fe('0x6b')]);_0x54a951[_0xc8fe('0x44')]=_['keys'](_0x5f2654['query']);_0x54a951[_0xc8fe('0x4b')]=_['intersection'](_0x54a951[_0xc8fe('0x42')],_0x54a951[_0xc8fe('0x44')]);_0x1fbea8[_0xc8fe('0x47')]=_[_0xc8fe('0x46')](_0x54a951[_0xc8fe('0x42')],qs[_0xc8fe('0x57')](_0x5f2654[_0xc8fe('0x44')][_0xc8fe('0x57')]));_0x1fbea8[_0xc8fe('0x47')]=_0x1fbea8[_0xc8fe('0x47')][_0xc8fe('0x58')]?_0x1fbea8[_0xc8fe('0x47')]:_0x54a951[_0xc8fe('0x42')];_0x1fbea8['order']=qs[_0xc8fe('0x6d')](_0x5f2654[_0xc8fe('0x44')][_0xc8fe('0x6d')]);_0x1fbea8[_0xc8fe('0x4a')]=qs['filters'](_[_0xc8fe('0x4c')](_0x5f2654[_0xc8fe('0x44')],_0x54a951[_0xc8fe('0x4b')]));if(_0x5f2654[_0xc8fe('0x44')][_0xc8fe('0x4d')]){_0x1fbea8[_0xc8fe('0x4a')]=_[_0xc8fe('0x4e')](_0x1fbea8[_0xc8fe('0x4a')],{'$or':_[_0xc8fe('0x43')](_0x1fbea8[_0xc8fe('0x47')],function(_0x370488){var _0x36bfac={};_0x36bfac[_0x370488]={'$like':'%'+_0x5f2654[_0xc8fe('0x44')][_0xc8fe('0x4d')]+'%'};return _0x36bfac;})});}_0x1fbea8=_[_0xc8fe('0x4e')]({},_0x1fbea8,_0x5f2654['options']);return _0x472aeb[_0xc8fe('0xb7')](_0x1fbea8);}})[_0xc8fe('0x3a')](function(_0x449068){if(_0x449068){_0x38f2cf=_0x449068[_0xc8fe('0x58')];if(!_0x5f2654[_0xc8fe('0x44')][_0xc8fe('0x48')]('nolimit')){_0x1fbea8[_0xc8fe('0x33')]=qs[_0xc8fe('0x33')](_0x5f2654['query'][_0xc8fe('0x33')]);_0x1fbea8[_0xc8fe('0x30')]=qs[_0xc8fe('0x30')](_0x5f2654['query']['offset']);}return _0x472aeb[_0xc8fe('0xb7')](_0x1fbea8);}})[_0xc8fe('0x3a')](function(_0x1ad145){if(_0x1ad145){return _0x1ad145?{'count':_0x38f2cf,'rows':_0x1ad145}:null;}})['then'](respondWithResult(_0x300506,null))[_0xc8fe('0x2c')](handleError(_0x300506,null));};exports[_0xc8fe('0xb8')]=function(_0x57a450,_0x3ce324,_0x5276d7){var _0x2ed039,_0x4b6391,_0x108025;if(_[_0xc8fe('0x7f')](_0x57a450['body'][_0xc8fe('0x5a')])||_0x57a450[_0xc8fe('0x5a')][_0xc8fe('0x5a')]===''){throw new db[(_0xc8fe('0x78'))][(_0xc8fe('0x81'))](_0xc8fe('0x83'));}if(_[_0xc8fe('0x7f')](_0x57a450[_0xc8fe('0x5a')]['to'])){}_0x2ed039=_0x57a450[_0xc8fe('0x5a')]['to'];return db[_0xc8fe('0x51')]['findOne']({'where':{'id':_0x57a450[_0xc8fe('0x56')]['id']}})['then'](handleEntityNotFound(_0x3ce324,null))[_0xc8fe('0x3a')](function(_0x2c2c4f){if(_0x2c2c4f){return db[_0xc8fe('0x51')][_0xc8fe('0x61')]({'where':{'id':_0x2c2c4f['id']},'include':[{'model':db[_0xc8fe('0x87')],'as':'List','include':[{'model':db[_0xc8fe('0x77')],'as':_0xc8fe('0x89'),'where':{[_0x2c2c4f[_0xc8fe('0x84')]]:_0x2ed039},'limit':0x1,'order':[['updatedAt',_0xc8fe('0x8a')]]}]}]})[_0xc8fe('0x3a')](handleEntityNotFound(_0x3ce324,null))[_0xc8fe('0x3a')](function(_0x3a9296){if(_0x3a9296&&_0x3a9296[_0xc8fe('0x88')]){_0x4b6391=_0x3a9296[_0xc8fe('0x5e')]({'plain':!![]});if(_0x4b6391[_0xc8fe('0x88')]&&_0x4b6391['List'][_0xc8fe('0x89')][_0xc8fe('0x58')]){return _0x4b6391['List'][_0xc8fe('0x89')][0x0];}return db['CmContact'][_0xc8fe('0x59')](_[_0xc8fe('0x1e')](_0x57a450[_0xc8fe('0x5a')],{'firstName':_0x2ed039,[_0x3a9296['mapKey']]:_0x2ed039,'phone':_0x2ed039,'ListId':_0x4b6391[_0xc8fe('0x7e')]}));}})[_0xc8fe('0x3a')](handleEntityNotFound(_0x3ce324,null))[_0xc8fe('0x3a')](function(_0x532c4a){if(_0x532c4a){_0x108025=_0x532c4a;return db['OpenchannelInteraction'][_0xc8fe('0x61')]({'where':{'ContactId':_0x108025['id'],'closed':![],'OpenchannelAccountId':_0x4b6391['id']}})[_0xc8fe('0x3a')](function(_0x3d5416){if(_0x3d5416){return[_0x3d5416,![]];}return db['OpenchannelInteraction'][_0xc8fe('0x59')]({'UserId':_0x57a450[_0xc8fe('0x5d')]['id'],'ContactId':_0x108025['id'],'OpenchannelAccountId':_0x4b6391['id'],'lastMsgDirection':_0xc8fe('0xb9'),'Messages':[_[_0xc8fe('0x4e')](_0x57a450['body'],{'read':![],'body':_0x57a450[_0xc8fe('0x5a')][_0xc8fe('0x5a')],'OpenchannelAccountId':_0x4b6391['id'],'UserId':_0x57a450[_0xc8fe('0x5d')]['id'],'ContactId':_0x108025['id']})]},{'include':[{'model':db['OpenchannelMessage'],'as':'Messages'}]})[_0xc8fe('0x3a')](function(_0x386c09){return[_0x386c09,!![]];});});}})[_0xc8fe('0x9a')](function(_0x1ee1d3,_0x44edec){if(_0x44edec){return _0x1ee1d3;}return db[_0xc8fe('0xba')][_0xc8fe('0x59')](_['merge'](_0x57a450['body'],{'read':![],'body':_0x57a450[_0xc8fe('0x5a')][_0xc8fe('0x5a')],'OpenchannelAccountId':_0x4b6391['id'],'OpenchannelInteractionId':_0x1ee1d3['id'],'UserId':_0x57a450[_0xc8fe('0x5d')]['id'],'ContactId':_0x108025['id']}))[_0xc8fe('0x3a')](function(_0x4a9493){_0x1ee1d3['dataValues'][_0xc8fe('0xbb')]=[];_0x1ee1d3[_0xc8fe('0xbc')][_0xc8fe('0xbb')][_0xc8fe('0xbd')](_0x4a9493[_0xc8fe('0xbc')]);return _0x1ee1d3;});});}})['then'](respondWithResult(_0x3ce324,null))[_0xc8fe('0x2c')](handleError(_0x3ce324,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4522=['OpenchannelAccount','setMaxListeners','save','remove','emit','hasOwnProperty','hook','exports'];(function(_0x28ba95,_0x40139f){var _0x5b5a62=function(_0x568a1a){while(--_0x568a1a){_0x28ba95['push'](_0x28ba95['shift']());}};_0x5b5a62(++_0x40139f);}(_0x4522,0x1a0));var _0x2452=function(_0x34fc44,_0x289794){_0x34fc44=_0x34fc44-0x0;var _0x277fdc=_0x4522[_0x34fc44];return _0x277fdc;};'use strict';var EventEmitter=require('events');var OpenchannelAccount=require('../../mysqldb')['db'][_0x2452('0x0')];var OpenchannelAccountEvents=new EventEmitter();OpenchannelAccountEvents[_0x2452('0x1')](0x0);var events={'afterCreate':_0x2452('0x2'),'afterUpdate':'update','afterDestroy':_0x2452('0x3')};function emitEvent(_0x1fdf5b){return function(_0x35e30a,_0x2f21dc,_0x34ff44){OpenchannelAccountEvents[_0x2452('0x4')](_0x1fdf5b+':'+_0x35e30a['id'],_0x35e30a);OpenchannelAccountEvents[_0x2452('0x4')](_0x1fdf5b,_0x35e30a);_0x34ff44(null);};}for(var e in events){if(events[_0x2452('0x5')](e)){var event=events[e];OpenchannelAccount[_0x2452('0x6')](e,emitEvent(event));}}module[_0x2452('0x7')]=OpenchannelAccountEvents;
\ No newline at end of file
+var _0x91a7=['../../mysqldb','OpenchannelAccount','setMaxListeners','update','emit','hasOwnProperty','exports'];(function(_0x2c91e9,_0x2fb965){var _0x13f0ff=function(_0xb39edf){while(--_0xb39edf){_0x2c91e9['push'](_0x2c91e9['shift']());}};_0x13f0ff(++_0x2fb965);}(_0x91a7,0xe7));var _0x791a=function(_0xd4fd33,_0x3b2f86){_0xd4fd33=_0xd4fd33-0x0;var _0x1e0c47=_0x91a7[_0xd4fd33];return _0x1e0c47;};'use strict';var EventEmitter=require('events');var OpenchannelAccount=require(_0x791a('0x0'))['db'][_0x791a('0x1')];var OpenchannelAccountEvents=new EventEmitter();OpenchannelAccountEvents[_0x791a('0x2')](0x0);var events={'afterCreate':'save','afterUpdate':_0x791a('0x3'),'afterDestroy':'remove'};function emitEvent(_0x2f6392){return function(_0x535640,_0x50ab29,_0x32fe2b){OpenchannelAccountEvents[_0x791a('0x4')](_0x2f6392+':'+_0x535640['id'],_0x535640);OpenchannelAccountEvents['emit'](_0x2f6392,_0x535640);_0x32fe2b(null);};}for(var e in events){if(events[_0x791a('0x5')](e)){var event=events[e];OpenchannelAccount['hook'](e,emitEvent(event));}}module[_0x791a('0x6')]=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(_0x33fabb,_0x296c62){var _0x1d257b=function(_0x56f20f){while(--_0x56f20f){_0x33fabb['push'](_0x33fabb['shift']());}};_0x1d257b(++_0x296c62);}(_0xa9e0,0x123));var _0x0a9e=function(_0xbca1b1,_0x33f0ce){_0xbca1b1=_0xbca1b1-0x0;var _0x4e1686=_0xa9e0[_0xbca1b1];return _0x4e1686;};'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(_0x4012a6,_0x3f8b84){var _0x246128=function(_0x583f28){while(--_0x583f28){_0x4012a6['push'](_0x4012a6['shift']());}};_0x246128(++_0x3f8b84);}(_0xa9e0,0x123));var _0x0a9e=function(_0x4243a3,_0x447337){_0x4243a3=_0x4243a3-0x0;var _0x1b2a33=_0xa9e0[_0x4243a3];return _0x1b2a33;};'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 _0xf290=['../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','http','redis','defaults','localhost','socket.io-emitter','./openchannelAccount.socket','register','request','OpenchannelAccount,\x20%s,\x20%s','request\x20sent','debug','OpenchannelAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','util','bluebird','ioredis'];(function(_0x5a636f,_0x3fec2b){var _0x6a8cfb=function(_0x20e6ca){while(--_0x20e6ca){_0x5a636f['push'](_0x5a636f['shift']());}};_0x6a8cfb(++_0x3fec2b);}(_0xf290,0xde));var _0x0f29=function(_0x54eab6,_0x5e262f){_0x54eab6=_0x54eab6-0x0;var _0x1e7435=_0xf290[_0x54eab6];return _0x1e7435;};'use strict';var _=require('lodash');var util=require(_0x0f29('0x0'));var moment=require('moment');var BPromise=require(_0x0f29('0x1'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x0f29('0x2'));var db=require(_0x0f29('0x3'))['db'];var utils=require(_0x0f29('0x4'));var logger=require(_0x0f29('0x5'))(_0x0f29('0x6'));var config=require('../../config/environment');var jayson=require(_0x0f29('0x7'));var client=jayson['client'][_0x0f29('0x8')]({'port':0x232a});config[_0x0f29('0x9')]=_[_0x0f29('0xa')](config[_0x0f29('0x9')],{'host':_0x0f29('0xb'),'port':0x18eb});var socket=require(_0x0f29('0xc'))(new Redis(config[_0x0f29('0x9')]));require(_0x0f29('0xd'))[_0x0f29('0xe')](socket);function respondWithRpcPromise(_0x139c65,_0xd4d3af,_0x3574fb){return new BPromise(function(_0x1499b7,_0xbcdea8){return client[_0x0f29('0xf')](_0x139c65,_0x3574fb)['then'](function(_0x38eb8f){logger['info'](_0x0f29('0x10'),_0xd4d3af,_0x0f29('0x11'));logger[_0x0f29('0x12')](_0x0f29('0x13'),_0xd4d3af,_0x0f29('0x11'),JSON[_0x0f29('0x14')](_0x38eb8f));if(_0x38eb8f['error']){if(_0x38eb8f[_0x0f29('0x15')][_0x0f29('0x16')]===0x1f4){logger[_0x0f29('0x15')](_0x0f29('0x10'),_0xd4d3af,_0x38eb8f[_0x0f29('0x15')][_0x0f29('0x17')]);return _0xbcdea8(_0x38eb8f[_0x0f29('0x15')][_0x0f29('0x17')]);}logger['error']('OpenchannelAccount,\x20%s,\x20%s',_0xd4d3af,_0x38eb8f[_0x0f29('0x15')][_0x0f29('0x17')]);return _0x1499b7(_0x38eb8f[_0x0f29('0x15')][_0x0f29('0x17')]);}else{logger['info'](_0x0f29('0x10'),_0xd4d3af,'request\x20sent');_0x1499b7(_0x38eb8f[_0x0f29('0x18')]['message']);}})['catch'](function(_0x5eb0cf){logger[_0x0f29('0x15')](_0x0f29('0x10'),_0xd4d3af,_0x5eb0cf);_0xbcdea8(_0x5eb0cf);});});}
\ No newline at end of file
+var _0x16d2=['request\x20sent','debug','error','message','result','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','./openchannelAccount.socket','register','then','info','OpenchannelAccount,\x20%s,\x20%s'];(function(_0x25c160,_0x20a861){var _0x7e7d6c=function(_0x39956c){while(--_0x39956c){_0x25c160['push'](_0x25c160['shift']());}};_0x7e7d6c(++_0x20a861);}(_0x16d2,0x123));var _0x216d=function(_0x2a5421,_0x1b2d0e){_0x2a5421=_0x2a5421-0x0;var _0x442ef4=_0x16d2[_0x2a5421];return _0x442ef4;};'use strict';var _=require(_0x216d('0x0'));var util=require(_0x216d('0x1'));var moment=require(_0x216d('0x2'));var BPromise=require(_0x216d('0x3'));var rs=require(_0x216d('0x4'));var fs=require('fs');var Redis=require(_0x216d('0x5'));var db=require(_0x216d('0x6'))['db'];var utils=require(_0x216d('0x7'));var logger=require(_0x216d('0x8'))('rpc');var config=require(_0x216d('0x9'));var jayson=require(_0x216d('0xa'));var client=jayson[_0x216d('0xb')][_0x216d('0xc')]({'port':0x232a});config[_0x216d('0xd')]=_[_0x216d('0xe')](config[_0x216d('0xd')],{'host':_0x216d('0xf'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x216d('0xd')]));require(_0x216d('0x10'))[_0x216d('0x11')](socket);function respondWithRpcPromise(_0x227c46,_0x301058,_0x729bdf){return new BPromise(function(_0x5682cc,_0x7ca9c9){return client['request'](_0x227c46,_0x729bdf)[_0x216d('0x12')](function(_0x2e02ce){logger[_0x216d('0x13')](_0x216d('0x14'),_0x301058,_0x216d('0x15'));logger[_0x216d('0x16')]('OpenchannelAccount,\x20%s,\x20%s,\x20%s',_0x301058,_0x216d('0x15'),JSON['stringify'](_0x2e02ce));if(_0x2e02ce[_0x216d('0x17')]){if(_0x2e02ce[_0x216d('0x17')]['code']===0x1f4){logger[_0x216d('0x17')](_0x216d('0x14'),_0x301058,_0x2e02ce['error'][_0x216d('0x18')]);return _0x7ca9c9(_0x2e02ce['error'][_0x216d('0x18')]);}logger[_0x216d('0x17')](_0x216d('0x14'),_0x301058,_0x2e02ce[_0x216d('0x17')][_0x216d('0x18')]);return _0x5682cc(_0x2e02ce[_0x216d('0x17')][_0x216d('0x18')]);}else{logger[_0x216d('0x13')](_0x216d('0x14'),_0x301058,'request\x20sent');_0x5682cc(_0x2e02ce[_0x216d('0x19')]['message']);}})['catch'](function(_0x133838){logger[_0x216d('0x17')]('OpenchannelAccount,\x20%s,\x20%s',_0x301058,_0x133838);_0x7ca9c9(_0x133838);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0fd9=['register','length','openchannelAccount:','save','remove','update','emit','removeListener'];(function(_0x400b43,_0x55da4e){var _0x3c330f=function(_0x5bbd52){while(--_0x5bbd52){_0x400b43['push'](_0x400b43['shift']());}};_0x3c330f(++_0x55da4e);}(_0x0fd9,0xa3));var _0x90fd=function(_0x35af23,_0x9190f6){_0x35af23=_0x35af23-0x0;var _0x340506=_0x0fd9[_0x35af23];return _0x340506;};'use strict';var OpenchannelAccountEvents=require('./openchannelAccount.events');var events=[_0x90fd('0x0'),_0x90fd('0x1'),_0x90fd('0x2')];function createListener(_0x32f6b6,_0x546a58){return function(_0x4acbd9){_0x546a58[_0x90fd('0x3')](_0x32f6b6,_0x4acbd9);};}function removeListener(_0x2a5f76,_0xb7cf6){return function(){OpenchannelAccountEvents[_0x90fd('0x4')](_0x2a5f76,_0xb7cf6);};}exports[_0x90fd('0x5')]=function(_0x23e11b){for(var _0x5e2107=0x0,_0x4ff2d4=events[_0x90fd('0x6')];_0x5e2107<_0x4ff2d4;_0x5e2107++){var _0x50c778=events[_0x5e2107];var _0x5a604a=createListener(_0x90fd('0x7')+_0x50c778,_0x23e11b);OpenchannelAccountEvents['on'](_0x50c778,_0x5a604a);}};
\ No newline at end of file
+var _0xe2cc=['./openchannelAccount.events','save','emit','removeListener','register','length','openchannelAccount:'];(function(_0x49f5e0,_0x3dccda){var _0x335d80=function(_0x2ab9cc){while(--_0x2ab9cc){_0x49f5e0['push'](_0x49f5e0['shift']());}};_0x335d80(++_0x3dccda);}(_0xe2cc,0x69));var _0xce2c=function(_0x21a9d9,_0x4d5ac8){_0x21a9d9=_0x21a9d9-0x0;var _0x46adce=_0xe2cc[_0x21a9d9];return _0x46adce;};'use strict';var OpenchannelAccountEvents=require(_0xce2c('0x0'));var events=[_0xce2c('0x1'),'remove','update'];function createListener(_0x3e19dc,_0x1e5b84){return function(_0x2279d5){_0x1e5b84[_0xce2c('0x2')](_0x3e19dc,_0x2279d5);};}function removeListener(_0x25e41a,_0x1a7c4e){return function(){OpenchannelAccountEvents[_0xce2c('0x3')](_0x25e41a,_0x1a7c4e);};}exports[_0xce2c('0x4')]=function(_0x592e10){for(var _0x51e5d0=0x0,_0x14bb4e=events[_0xce2c('0x5')];_0x51e5d0<_0x14bb4e;_0x51e5d0++){var _0x23f678=events[_0x51e5d0];var _0x29632b=createListener(_0xce2c('0x6')+_0x23f678,_0x592e10);OpenchannelAccountEvents['on'](_0x23f678,_0x29632b);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x675a=['exports','util','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','post','put','update','delete','/:id','destroy'];(function(_0x6fd8ad,_0x597818){var _0x257d21=function(_0x2aad69){while(--_0x2aad69){_0x6fd8ad['push'](_0x6fd8ad['shift']());}};_0x257d21(++_0x597818);}(_0x675a,0x144));var _0xa675=function(_0x427249,_0x360587){_0x427249=_0x427249-0x0;var _0x5ad328=_0x675a[_0x427249];return _0x5ad328;};'use strict';var multer=require('multer');var util=require(_0xa675('0x0'));var path=require('path');var timeout=require('connect-timeout');var express=require(_0xa675('0x1'));var router=express[_0xa675('0x2')]();var fs_extra=require(_0xa675('0x3'));var auth=require(_0xa675('0x4'));var interaction=require(_0xa675('0x5'));var config=require(_0xa675('0x6'));var controller=require('./openchannelApplication.controller');router[_0xa675('0x7')]('/',auth[_0xa675('0x8')](),controller[_0xa675('0x9')]);router[_0xa675('0x7')]('/:id',auth[_0xa675('0x8')](),controller['show']);router[_0xa675('0xa')]('/',auth[_0xa675('0x8')](),controller['create']);router[_0xa675('0xb')]('/:id',auth['isAuthenticated'](),controller[_0xa675('0xc')]);router[_0xa675('0xd')](_0xa675('0xe'),auth[_0xa675('0x8')](),controller[_0xa675('0xf')]);module[_0xa675('0x10')]=router;
\ No newline at end of file
+var _0x8250=['isAuthenticated','index','/:id','show','post','delete','destroy','exports','multer','util','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./openchannelApplication.controller','get'];(function(_0xc478e8,_0x58d9bf){var _0x2a5821=function(_0x32439a){while(--_0x32439a){_0xc478e8['push'](_0xc478e8['shift']());}};_0x2a5821(++_0x58d9bf);}(_0x8250,0x1e3));var _0x0825=function(_0x1ec017,_0x366697){_0x1ec017=_0x1ec017-0x0;var _0x372b6f=_0x8250[_0x1ec017];return _0x372b6f;};'use strict';var multer=require(_0x0825('0x0'));var util=require(_0x0825('0x1'));var path=require('path');var timeout=require(_0x0825('0x2'));var express=require(_0x0825('0x3'));var router=express[_0x0825('0x4')]();var fs_extra=require(_0x0825('0x5'));var auth=require(_0x0825('0x6'));var interaction=require(_0x0825('0x7'));var config=require(_0x0825('0x8'));var controller=require(_0x0825('0x9'));router[_0x0825('0xa')]('/',auth[_0x0825('0xb')](),controller[_0x0825('0xc')]);router[_0x0825('0xa')](_0x0825('0xd'),auth[_0x0825('0xb')](),controller[_0x0825('0xe')]);router[_0x0825('0xf')]('/',auth[_0x0825('0xb')](),controller['create']);router['put'](_0x0825('0xd'),auth['isAuthenticated'](),controller['update']);router[_0x0825('0x10')](_0x0825('0xd'),auth[_0x0825('0xb')](),controller[_0x0825('0x11')]);module[_0x0825('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb29f=['noop','TEXT','*,*,*,*','sequelize','INTEGER','STRING'];(function(_0x45df30,_0xa1316d){var _0x2d7f4b=function(_0x1fd945){while(--_0x1fd945){_0x45df30['push'](_0x45df30['shift']());}};_0x2d7f4b(++_0xa1316d);}(_0xb29f,0xc9));var _0xfb29=function(_0x435157,_0x369502){_0x435157=_0x435157-0x0;var _0x345a7c=_0xb29f[_0x435157];return _0x345a7c;};'use strict';var Sequelize=require(_0xfb29('0x0'));module['exports']={'priority':{'type':Sequelize[_0xfb29('0x1')],'allowNull':![]},'app':{'type':Sequelize[_0xfb29('0x2')],'allowNull':![],'defaultValue':_0xfb29('0x3')},'appdata':{'type':Sequelize[_0xfb29('0x4')]()},'description':{'type':Sequelize[_0xfb29('0x2')]},'interval':{'type':Sequelize[_0xfb29('0x2')],'defaultValue':_0xfb29('0x5')}};
\ No newline at end of file
+var _0xbaf2=['exports','INTEGER','STRING','noop','*,*,*,*','sequelize'];(function(_0x5db2e9,_0x421aaa){var _0x69a52f=function(_0x49a301){while(--_0x49a301){_0x5db2e9['push'](_0x5db2e9['shift']());}};_0x69a52f(++_0x421aaa);}(_0xbaf2,0xad));var _0x2baf=function(_0x47fd36,_0x41535d){_0x47fd36=_0x47fd36-0x0;var _0x21a0fc=_0xbaf2[_0x47fd36];return _0x21a0fc;};'use strict';var Sequelize=require(_0x2baf('0x0'));module[_0x2baf('0x1')]={'priority':{'type':Sequelize[_0x2baf('0x2')],'allowNull':![]},'app':{'type':Sequelize[_0x2baf('0x3')],'allowNull':![],'defaultValue':_0x2baf('0x4')},'appdata':{'type':Sequelize['TEXT']()},'description':{'type':Sequelize[_0x2baf('0x3')]},'interval':{'type':Sequelize['STRING'],'defaultValue':_0x2baf('0x5')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x66f8=['end','json','offset','undefined','limit','count','set','apply','reject','save','update','destroy','then','error','stack','name','OpenchannelApplication','rawAttributes','fieldName','type','key','model','map','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','filter','merge','where','VIRTUAL','options','rows','catch','params','includeAll','include','find','create','body','rimraf','fast-json-patch','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','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status'];(function(_0x17954d,_0x1ecf9d){var _0x31d886=function(_0x3997a3){while(--_0x3997a3){_0x17954d['push'](_0x17954d['shift']());}};_0x31d886(++_0x1ecf9d);}(_0x66f8,0x1f2));var _0x866f=function(_0x48e48f,_0x306c71){_0x48e48f=_0x48e48f-0x0;var _0x4539c0=_0x66f8[_0x48e48f];return _0x4539c0;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x866f('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x866f('0x1'));var rp=require('request-promise');var moment=require(_0x866f('0x2'));var BPromise=require(_0x866f('0x3'));var Mustache=require(_0x866f('0x4'));var util=require(_0x866f('0x5'));var path=require(_0x866f('0x6'));var sox=require(_0x866f('0x7'));var csv=require(_0x866f('0x8'));var ejs=require(_0x866f('0x9'));var fs=require('fs');var fs_extra=require(_0x866f('0xa'));var _=require(_0x866f('0xb'));var squel=require(_0x866f('0xc'));var crypto=require(_0x866f('0xd'));var jsforce=require(_0x866f('0xe'));var deskjs=require(_0x866f('0xf'));var toCsv=require('to-csv');var querystring=require(_0x866f('0x10'));var Papa=require(_0x866f('0x11'));var Redis=require('ioredis');var authService=require(_0x866f('0x12'));var qs=require(_0x866f('0x13'));var as=require(_0x866f('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x866f('0x15'));var utils=require(_0x866f('0x16'));var config=require(_0x866f('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0x866f('0x18'))['db'];function respondWithStatusCode(_0x5de986,_0x22c04e){_0x22c04e=_0x22c04e||0xcc;return function(_0x46c105){if(_0x46c105){return _0x5de986[_0x866f('0x19')](_0x22c04e);}return _0x5de986[_0x866f('0x1a')](_0x22c04e)[_0x866f('0x1b')]();};}function respondWithResult(_0x10321d,_0x40f609){_0x40f609=_0x40f609||0xc8;return function(_0x46057a){if(_0x46057a){return _0x10321d[_0x866f('0x1a')](_0x40f609)[_0x866f('0x1c')](_0x46057a);}};}function respondWithFilteredResult(_0x151cf4,_0x36d8f4){return function(_0x14ab26){if(_0x14ab26){var _0x17c5e4=typeof _0x36d8f4[_0x866f('0x1d')]===_0x866f('0x1e')&&typeof _0x36d8f4[_0x866f('0x1f')]===_0x866f('0x1e');var _0x1aa5cf=_0x14ab26[_0x866f('0x20')];var _0x13a23b=_0x17c5e4?0x0:_0x36d8f4[_0x866f('0x1d')];var _0x3aae7e=_0x17c5e4?_0x14ab26[_0x866f('0x20')]:_0x36d8f4[_0x866f('0x1d')]+_0x36d8f4[_0x866f('0x1f')];var _0x395af8;if(_0x3aae7e>=_0x1aa5cf){_0x3aae7e=_0x1aa5cf;_0x395af8=0xc8;}else{_0x395af8=0xce;}_0x151cf4[_0x866f('0x1a')](_0x395af8);return _0x151cf4[_0x866f('0x21')]('Content-Range',_0x13a23b+'-'+_0x3aae7e+'/'+_0x1aa5cf)[_0x866f('0x1c')](_0x14ab26);}return null;};}function patchUpdates(_0x1ea7cc){return function(_0x401066){try{jsonpatch[_0x866f('0x22')](_0x401066,_0x1ea7cc,!![]);}catch(_0x4dfa52){return BPromise[_0x866f('0x23')](_0x4dfa52);}return _0x401066[_0x866f('0x24')]();};}function saveUpdates(_0x5c4eb3,_0x36b866){return function(_0x1ebc49){if(_0x1ebc49){return _0x1ebc49[_0x866f('0x25')](_0x5c4eb3)['then'](function(_0x29ff91){return _0x29ff91;});}return null;};}function removeEntity(_0x580258,_0x1a6b4a){return function(_0xc9dd2){if(_0xc9dd2){return _0xc9dd2[_0x866f('0x26')]()[_0x866f('0x27')](function(){_0x580258[_0x866f('0x1a')](0xcc)[_0x866f('0x1b')]();});}};}function handleEntityNotFound(_0x53aa3f,_0x1f39b3){return function(_0x4b7279){if(!_0x4b7279){_0x53aa3f[_0x866f('0x19')](0x194);}return _0x4b7279;};}function handleError(_0x20760e,_0x5119fb){_0x5119fb=_0x5119fb||0x1f4;return function(_0x15cf78){logger[_0x866f('0x28')](_0x15cf78[_0x866f('0x29')]);if(_0x15cf78['name']){delete _0x15cf78[_0x866f('0x2a')];}_0x20760e[_0x866f('0x1a')](_0x5119fb)['send'](_0x15cf78);};}exports['index']=function(_0x2f5d0e,_0x44f169){var _0x5f2542={},_0xadbeef={},_0x34f836={'count':0x0,'rows':[]};var _0x29f19e=_['map'](db[_0x866f('0x2b')][_0x866f('0x2c')],function(_0x390a54){return{'name':_0x390a54[_0x866f('0x2d')],'type':_0x390a54[_0x866f('0x2e')][_0x866f('0x2f')]};});_0xadbeef[_0x866f('0x30')]=_[_0x866f('0x31')](_0x29f19e,_0x866f('0x2a'));_0xadbeef['query']=_[_0x866f('0x32')](_0x2f5d0e[_0x866f('0x33')]);_0xadbeef[_0x866f('0x34')]=_[_0x866f('0x35')](_0xadbeef[_0x866f('0x30')],_0xadbeef['query']);_0x5f2542[_0x866f('0x36')]=_[_0x866f('0x35')](_0xadbeef['model'],qs[_0x866f('0x37')](_0x2f5d0e[_0x866f('0x33')]['fields']));_0x5f2542[_0x866f('0x36')]=_0x5f2542[_0x866f('0x36')][_0x866f('0x38')]?_0x5f2542[_0x866f('0x36')]:_0xadbeef[_0x866f('0x30')];if(!_0x2f5d0e[_0x866f('0x33')][_0x866f('0x39')](_0x866f('0x3a'))){_0x5f2542['limit']=qs[_0x866f('0x1f')](_0x2f5d0e[_0x866f('0x33')][_0x866f('0x1f')]);_0x5f2542['offset']=qs[_0x866f('0x1d')](_0x2f5d0e[_0x866f('0x33')][_0x866f('0x1d')]);}_0x5f2542[_0x866f('0x3b')]=qs[_0x866f('0x3c')](_0x2f5d0e[_0x866f('0x33')]['sort']);_0x5f2542['where']=qs[_0x866f('0x34')](_[_0x866f('0x3d')](_0x2f5d0e[_0x866f('0x33')],_0xadbeef[_0x866f('0x34')]),_0x29f19e);if(_0x2f5d0e[_0x866f('0x33')][_0x866f('0x3e')]){_0x5f2542['where']=_[_0x866f('0x3f')](_0x5f2542[_0x866f('0x40')],{'$or':_[_0x866f('0x31')](_0x29f19e,function(_0x199f69){if(_0x199f69[_0x866f('0x2e')]!==_0x866f('0x41')){var _0x2bdf46={};_0x2bdf46[_0x199f69[_0x866f('0x2a')]]={'$like':'%'+_0x2f5d0e[_0x866f('0x33')]['filter']+'%'};return _0x2bdf46;}})});}_0x5f2542=_[_0x866f('0x3f')]({},_0x5f2542,_0x2f5d0e[_0x866f('0x42')]);var _0x4697bf={'where':_0x5f2542[_0x866f('0x40')]};return db[_0x866f('0x2b')][_0x866f('0x20')](_0x4697bf)[_0x866f('0x27')](function(_0xfc4d3e){_0x34f836['count']=_0xfc4d3e;if(_0x2f5d0e['query']['includeAll']){_0x5f2542['include']=[{'all':!![]}];}return db['OpenchannelApplication']['findAll'](_0x5f2542);})[_0x866f('0x27')](function(_0x32cc33){_0x34f836[_0x866f('0x43')]=_0x32cc33;return _0x34f836;})['then'](respondWithFilteredResult(_0x44f169,_0x5f2542))[_0x866f('0x44')](handleError(_0x44f169,null));};exports['show']=function(_0x44e3aa,_0x130818){var _0x474597={'raw':!![],'where':{'id':_0x44e3aa[_0x866f('0x45')]['id']}},_0x1b2ba8={};_0x1b2ba8['model']=_[_0x866f('0x32')](db[_0x866f('0x2b')]['rawAttributes']);_0x1b2ba8[_0x866f('0x33')]=_[_0x866f('0x32')](_0x44e3aa[_0x866f('0x33')]);_0x1b2ba8['filters']=_[_0x866f('0x35')](_0x1b2ba8[_0x866f('0x30')],_0x1b2ba8[_0x866f('0x33')]);_0x474597['attributes']=_['intersection'](_0x1b2ba8[_0x866f('0x30')],qs[_0x866f('0x37')](_0x44e3aa[_0x866f('0x33')][_0x866f('0x37')]));_0x474597[_0x866f('0x36')]=_0x474597[_0x866f('0x36')][_0x866f('0x38')]?_0x474597[_0x866f('0x36')]:_0x1b2ba8[_0x866f('0x30')];if(_0x44e3aa['query'][_0x866f('0x46')]){_0x474597[_0x866f('0x47')]=[{'all':!![]}];}_0x474597=_[_0x866f('0x3f')]({},_0x474597,_0x44e3aa[_0x866f('0x42')]);return db[_0x866f('0x2b')][_0x866f('0x48')](_0x474597)[_0x866f('0x27')](handleEntityNotFound(_0x130818,null))['then'](respondWithResult(_0x130818,null))[_0x866f('0x44')](handleError(_0x130818,null));};exports['create']=function(_0x14ea29,_0x8580b9){return db[_0x866f('0x2b')][_0x866f('0x49')](_0x14ea29[_0x866f('0x4a')],{})['then'](respondWithResult(_0x8580b9,0xc9))[_0x866f('0x44')](handleError(_0x8580b9,null));};exports[_0x866f('0x25')]=function(_0x384a3d,_0x4aedde){if(_0x384a3d['body']['id']){delete _0x384a3d[_0x866f('0x4a')]['id'];}return db[_0x866f('0x2b')][_0x866f('0x48')]({'where':{'id':_0x384a3d['params']['id']}})[_0x866f('0x27')](handleEntityNotFound(_0x4aedde,null))[_0x866f('0x27')](saveUpdates(_0x384a3d['body'],null))['then'](respondWithResult(_0x4aedde,null))[_0x866f('0x44')](handleError(_0x4aedde,null));};exports[_0x866f('0x26')]=function(_0x44aea7,_0x2ce8c4){return db[_0x866f('0x2b')][_0x866f('0x48')]({'where':{'id':_0x44aea7['params']['id']}})[_0x866f('0x27')](handleEntityNotFound(_0x2ce8c4,null))['then'](removeEntity(_0x2ce8c4,null))['catch'](handleError(_0x2ce8c4,null));};
\ No newline at end of file
+var _0x37ec=['merge','type','VIRTUAL','name','filter','include','findAll','rows','catch','show','includeAll','options','create','body','find','params','eml-format','zip-dir','request-promise','bluebird','mustache','util','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','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','update','then','destroy','send','index','map','OpenchannelApplication','rawAttributes','fieldName','key','model','query','keys','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','pick','filters','where'];(function(_0x296994,_0xa61895){var _0x3241ca=function(_0xe0e1bf){while(--_0xe0e1bf){_0x296994['push'](_0x296994['shift']());}};_0x3241ca(++_0xa61895);}(_0x37ec,0x1e4));var _0xc37e=function(_0x2ed769,_0xa2209f){_0x2ed769=_0x2ed769-0x0;var _0x4bdd36=_0x37ec[_0x2ed769];return _0x4bdd36;};'use strict';var emlformat=require(_0xc37e('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xc37e('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xc37e('0x2'));var moment=require('moment');var BPromise=require(_0xc37e('0x3'));var Mustache=require(_0xc37e('0x4'));var util=require(_0xc37e('0x5'));var path=require('path');var sox=require(_0xc37e('0x6'));var csv=require(_0xc37e('0x7'));var ejs=require(_0xc37e('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xc37e('0x9'));var squel=require(_0xc37e('0xa'));var crypto=require(_0xc37e('0xb'));var jsforce=require(_0xc37e('0xc'));var deskjs=require(_0xc37e('0xd'));var toCsv=require('to-csv');var querystring=require(_0xc37e('0xe'));var Papa=require(_0xc37e('0xf'));var Redis=require(_0xc37e('0x10'));var authService=require(_0xc37e('0x11'));var qs=require(_0xc37e('0x12'));var as=require(_0xc37e('0x13'));var hardwareService=require(_0xc37e('0x14'));var logger=require(_0xc37e('0x15'))(_0xc37e('0x16'));var utils=require(_0xc37e('0x17'));var config=require(_0xc37e('0x18'));var licenseUtil=require('../../config/license/util');var db=require(_0xc37e('0x19'))['db'];function respondWithStatusCode(_0x47f9cb,_0x349d6d){_0x349d6d=_0x349d6d||0xcc;return function(_0x357b36){if(_0x357b36){return _0x47f9cb[_0xc37e('0x1a')](_0x349d6d);}return _0x47f9cb[_0xc37e('0x1b')](_0x349d6d)[_0xc37e('0x1c')]();};}function respondWithResult(_0x115817,_0x6a3898){_0x6a3898=_0x6a3898||0xc8;return function(_0x4438f7){if(_0x4438f7){return _0x115817[_0xc37e('0x1b')](_0x6a3898)[_0xc37e('0x1d')](_0x4438f7);}};}function respondWithFilteredResult(_0x4880aa,_0xeec848){return function(_0x1340b7){if(_0x1340b7){var _0x1055e7=typeof _0xeec848[_0xc37e('0x1e')]===_0xc37e('0x1f')&&typeof _0xeec848[_0xc37e('0x20')]===_0xc37e('0x1f');var _0x5ec0ff=_0x1340b7[_0xc37e('0x21')];var _0xe8d7f9=_0x1055e7?0x0:_0xeec848[_0xc37e('0x1e')];var _0x18c39a=_0x1055e7?_0x1340b7[_0xc37e('0x21')]:_0xeec848[_0xc37e('0x1e')]+_0xeec848['limit'];var _0x79c050;if(_0x18c39a>=_0x5ec0ff){_0x18c39a=_0x5ec0ff;_0x79c050=0xc8;}else{_0x79c050=0xce;}_0x4880aa['status'](_0x79c050);return _0x4880aa[_0xc37e('0x22')](_0xc37e('0x23'),_0xe8d7f9+'-'+_0x18c39a+'/'+_0x5ec0ff)[_0xc37e('0x1d')](_0x1340b7);}return null;};}function patchUpdates(_0x19a552){return function(_0x8651e1){try{jsonpatch[_0xc37e('0x24')](_0x8651e1,_0x19a552,!![]);}catch(_0x2c3758){return BPromise[_0xc37e('0x25')](_0x2c3758);}return _0x8651e1['save']();};}function saveUpdates(_0x16b133,_0x566695){return function(_0x506b8b){if(_0x506b8b){return _0x506b8b[_0xc37e('0x26')](_0x16b133)[_0xc37e('0x27')](function(_0xa72e15){return _0xa72e15;});}return null;};}function removeEntity(_0x3e0f8f,_0x2297b8){return function(_0x1895a8){if(_0x1895a8){return _0x1895a8[_0xc37e('0x28')]()['then'](function(){_0x3e0f8f[_0xc37e('0x1b')](0xcc)[_0xc37e('0x1c')]();});}};}function handleEntityNotFound(_0x5ee28d,_0x25dbe9){return function(_0x3ccd5f){if(!_0x3ccd5f){_0x5ee28d[_0xc37e('0x1a')](0x194);}return _0x3ccd5f;};}function handleError(_0x4621f8,_0x607f21){_0x607f21=_0x607f21||0x1f4;return function(_0x52ffb3){logger['error'](_0x52ffb3['stack']);if(_0x52ffb3['name']){delete _0x52ffb3['name'];}_0x4621f8[_0xc37e('0x1b')](_0x607f21)[_0xc37e('0x29')](_0x52ffb3);};}exports[_0xc37e('0x2a')]=function(_0x26c501,_0xd112bd){var _0x490f25={},_0x514ef9={},_0xd374dd={'count':0x0,'rows':[]};var _0x31914d=_[_0xc37e('0x2b')](db[_0xc37e('0x2c')][_0xc37e('0x2d')],function(_0x3b7b72){return{'name':_0x3b7b72[_0xc37e('0x2e')],'type':_0x3b7b72['type'][_0xc37e('0x2f')]};});_0x514ef9[_0xc37e('0x30')]=_['map'](_0x31914d,'name');_0x514ef9[_0xc37e('0x31')]=_[_0xc37e('0x32')](_0x26c501[_0xc37e('0x31')]);_0x514ef9['filters']=_['intersection'](_0x514ef9[_0xc37e('0x30')],_0x514ef9[_0xc37e('0x31')]);_0x490f25[_0xc37e('0x33')]=_[_0xc37e('0x34')](_0x514ef9[_0xc37e('0x30')],qs[_0xc37e('0x35')](_0x26c501[_0xc37e('0x31')]['fields']));_0x490f25[_0xc37e('0x33')]=_0x490f25[_0xc37e('0x33')][_0xc37e('0x36')]?_0x490f25[_0xc37e('0x33')]:_0x514ef9[_0xc37e('0x30')];if(!_0x26c501[_0xc37e('0x31')][_0xc37e('0x37')](_0xc37e('0x38'))){_0x490f25[_0xc37e('0x20')]=qs[_0xc37e('0x20')](_0x26c501[_0xc37e('0x31')]['limit']);_0x490f25[_0xc37e('0x1e')]=qs[_0xc37e('0x1e')](_0x26c501[_0xc37e('0x31')]['offset']);}_0x490f25[_0xc37e('0x39')]=qs[_0xc37e('0x3a')](_0x26c501[_0xc37e('0x31')][_0xc37e('0x3a')]);_0x490f25['where']=qs['filters'](_[_0xc37e('0x3b')](_0x26c501[_0xc37e('0x31')],_0x514ef9[_0xc37e('0x3c')]),_0x31914d);if(_0x26c501[_0xc37e('0x31')]['filter']){_0x490f25[_0xc37e('0x3d')]=_[_0xc37e('0x3e')](_0x490f25[_0xc37e('0x3d')],{'$or':_[_0xc37e('0x2b')](_0x31914d,function(_0x2f62c3){if(_0x2f62c3[_0xc37e('0x3f')]!==_0xc37e('0x40')){var _0x4c95dd={};_0x4c95dd[_0x2f62c3[_0xc37e('0x41')]]={'$like':'%'+_0x26c501[_0xc37e('0x31')][_0xc37e('0x42')]+'%'};return _0x4c95dd;}})});}_0x490f25=_[_0xc37e('0x3e')]({},_0x490f25,_0x26c501['options']);var _0x5a304d={'where':_0x490f25[_0xc37e('0x3d')]};return db[_0xc37e('0x2c')][_0xc37e('0x21')](_0x5a304d)[_0xc37e('0x27')](function(_0x55be1f){_0xd374dd[_0xc37e('0x21')]=_0x55be1f;if(_0x26c501[_0xc37e('0x31')]['includeAll']){_0x490f25[_0xc37e('0x43')]=[{'all':!![]}];}return db['OpenchannelApplication'][_0xc37e('0x44')](_0x490f25);})[_0xc37e('0x27')](function(_0x1dc63a){_0xd374dd[_0xc37e('0x45')]=_0x1dc63a;return _0xd374dd;})[_0xc37e('0x27')](respondWithFilteredResult(_0xd112bd,_0x490f25))[_0xc37e('0x46')](handleError(_0xd112bd,null));};exports[_0xc37e('0x47')]=function(_0x1fc8b7,_0x2a0a4f){var _0x3e27e2={'raw':!![],'where':{'id':_0x1fc8b7['params']['id']}},_0x2e85d0={};_0x2e85d0[_0xc37e('0x30')]=_[_0xc37e('0x32')](db['OpenchannelApplication'][_0xc37e('0x2d')]);_0x2e85d0[_0xc37e('0x31')]=_['keys'](_0x1fc8b7[_0xc37e('0x31')]);_0x2e85d0[_0xc37e('0x3c')]=_[_0xc37e('0x34')](_0x2e85d0[_0xc37e('0x30')],_0x2e85d0[_0xc37e('0x31')]);_0x3e27e2[_0xc37e('0x33')]=_[_0xc37e('0x34')](_0x2e85d0[_0xc37e('0x30')],qs[_0xc37e('0x35')](_0x1fc8b7[_0xc37e('0x31')][_0xc37e('0x35')]));_0x3e27e2[_0xc37e('0x33')]=_0x3e27e2[_0xc37e('0x33')][_0xc37e('0x36')]?_0x3e27e2['attributes']:_0x2e85d0[_0xc37e('0x30')];if(_0x1fc8b7['query'][_0xc37e('0x48')]){_0x3e27e2[_0xc37e('0x43')]=[{'all':!![]}];}_0x3e27e2=_['merge']({},_0x3e27e2,_0x1fc8b7[_0xc37e('0x49')]);return db[_0xc37e('0x2c')]['find'](_0x3e27e2)[_0xc37e('0x27')](handleEntityNotFound(_0x2a0a4f,null))[_0xc37e('0x27')](respondWithResult(_0x2a0a4f,null))[_0xc37e('0x46')](handleError(_0x2a0a4f,null));};exports[_0xc37e('0x4a')]=function(_0x382643,_0x45c37d){return db[_0xc37e('0x2c')][_0xc37e('0x4a')](_0x382643[_0xc37e('0x4b')],{})[_0xc37e('0x27')](respondWithResult(_0x45c37d,0xc9))[_0xc37e('0x46')](handleError(_0x45c37d,null));};exports[_0xc37e('0x26')]=function(_0x1d422e,_0x3652fb){if(_0x1d422e[_0xc37e('0x4b')]['id']){delete _0x1d422e[_0xc37e('0x4b')]['id'];}return db[_0xc37e('0x2c')][_0xc37e('0x4c')]({'where':{'id':_0x1d422e['params']['id']}})[_0xc37e('0x27')](handleEntityNotFound(_0x3652fb,null))[_0xc37e('0x27')](saveUpdates(_0x1d422e[_0xc37e('0x4b')],null))[_0xc37e('0x27')](respondWithResult(_0x3652fb,null))[_0xc37e('0x46')](handleError(_0x3652fb,null));};exports[_0xc37e('0x28')]=function(_0xe25f6b,_0x426922){return db[_0xc37e('0x2c')][_0xc37e('0x4c')]({'where':{'id':_0xe25f6b[_0xc37e('0x4d')]['id']}})[_0xc37e('0x27')](handleEntityNotFound(_0x426922,null))['then'](removeEntity(_0x426922,null))['catch'](handleError(_0x426922,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9a62=['utf8mb4_unicode_ci','lodash','util','../../config/logger','moment','bluebird','path','./openchannelApplication.attributes','exports','define','openchannel_applications','utf8mb4'];(function(_0x23b2b4,_0x1af875){var _0x4918ae=function(_0x17829a){while(--_0x17829a){_0x23b2b4['push'](_0x23b2b4['shift']());}};_0x4918ae(++_0x1af875);}(_0x9a62,0x109));var _0x29a6=function(_0x57b54c,_0x54ce0d){_0x57b54c=_0x57b54c-0x0;var _0x59cc19=_0x9a62[_0x57b54c];return _0x59cc19;};'use strict';var _=require(_0x29a6('0x0'));var util=require(_0x29a6('0x1'));var logger=require(_0x29a6('0x2'))('api');var moment=require(_0x29a6('0x3'));var BPromise=require(_0x29a6('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x29a6('0x5'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0x29a6('0x6'));module[_0x29a6('0x7')]=function(_0x118a47,_0x27746b){return _0x118a47[_0x29a6('0x8')]('OpenchannelApplication',attributes,{'tableName':_0x29a6('0x9'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0x29a6('0xa'),'collate':_0x29a6('0xb')});};
\ No newline at end of file
+var _0xe72d=['lodash','util','api','request-promise','rimraf','../../config/environment','./openchannelApplication.attributes','exports','define'];(function(_0x1cb490,_0x4cad6e){var _0x3f22ad=function(_0x51e00c){while(--_0x51e00c){_0x1cb490['push'](_0x1cb490['shift']());}};_0x3f22ad(++_0x4cad6e);}(_0xe72d,0x183));var _0xde72=function(_0x40a045,_0x516f0e){_0x40a045=_0x40a045-0x0;var _0x1a687c=_0xe72d[_0x40a045];return _0x1a687c;};'use strict';var _=require(_0xde72('0x0'));var util=require(_0xde72('0x1'));var logger=require('../../config/logger')(_0xde72('0x2'));var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0xde72('0x3'));var fs=require('fs');var path=require('path');var rimraf=require(_0xde72('0x4'));var config=require(_0xde72('0x5'));var attributes=require(_0xde72('0x6'));module[_0xde72('0x7')]=function(_0x1d6c72,_0x204d54){return _0x1d6c72[_0xde72('0x8')]('OpenchannelApplication',attributes,{'tableName':'openchannel_applications','paranoid':![],'indexes':[],'timestamps':!![],'charset':'utf8mb4','collate':'utf8mb4_unicode_ci'});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa6c1=['body','options','raw','limit','UpdateOpenchannelApplication','lodash','moment','bluebird','ioredis','../../config/logger','rpc','../../config/environment','jayson/promise','request','then','info','OpenchannelApplication,\x20%s,\x20%s','debug','OpenchannelApplication,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message','result','catch','OpenchannelApplication','update'];(function(_0x5b2a3b,_0x5d3785){var _0x301c0a=function(_0x4895e5){while(--_0x4895e5){_0x5b2a3b['push'](_0x5b2a3b['shift']());}};_0x301c0a(++_0x5d3785);}(_0xa6c1,0x149));var _0x1a6c=function(_0x525c7b,_0x488fcc){_0x525c7b=_0x525c7b-0x0;var _0x27b33e=_0xa6c1[_0x525c7b];return _0x27b33e;};'use strict';var _=require(_0x1a6c('0x0'));var util=require('util');var moment=require(_0x1a6c('0x1'));var BPromise=require(_0x1a6c('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x1a6c('0x3'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0x1a6c('0x4'))(_0x1a6c('0x5'));var config=require(_0x1a6c('0x6'));var jayson=require(_0x1a6c('0x7'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x21757a,_0xd1b367,_0x50014){return new BPromise(function(_0x5933ae,_0x27ed9c){return client[_0x1a6c('0x8')](_0x21757a,_0x50014)[_0x1a6c('0x9')](function(_0x190037){logger[_0x1a6c('0xa')](_0x1a6c('0xb'),_0xd1b367,'request\x20sent');logger[_0x1a6c('0xc')](_0x1a6c('0xd'),_0xd1b367,_0x1a6c('0xe'),JSON[_0x1a6c('0xf')](_0x190037));if(_0x190037['error']){if(_0x190037[_0x1a6c('0x10')]['code']===0x1f4){logger['error'](_0x1a6c('0xb'),_0xd1b367,_0x190037['error'][_0x1a6c('0x11')]);return _0x27ed9c(_0x190037[_0x1a6c('0x10')]['message']);}logger[_0x1a6c('0x10')]('OpenchannelApplication,\x20%s,\x20%s',_0xd1b367,_0x190037[_0x1a6c('0x10')][_0x1a6c('0x11')]);return _0x5933ae(_0x190037[_0x1a6c('0x10')]['message']);}else{logger['info'](_0x1a6c('0xb'),_0xd1b367,_0x1a6c('0xe'));_0x5933ae(_0x190037[_0x1a6c('0x12')][_0x1a6c('0x11')]);}})[_0x1a6c('0x13')](function(_0x2770c9){logger[_0x1a6c('0x10')](_0x1a6c('0xb'),_0xd1b367,_0x2770c9);_0x27ed9c(_0x2770c9);});});}exports['UpdateOpenchannelApplication']=function(_0x5e2b84){var _0x4f2748=this;return new Promise(function(_0x2f9dc7,_0x3fc1c4){return db[_0x1a6c('0x14')][_0x1a6c('0x15')](_0x5e2b84[_0x1a6c('0x16')],{'raw':_0x5e2b84[_0x1a6c('0x17')]?_0x5e2b84[_0x1a6c('0x17')][_0x1a6c('0x18')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x5e2b84['options']?_0x5e2b84[_0x1a6c('0x17')]['where']||null:null,'attributes':_0x5e2b84['options']?_0x5e2b84['options']['attributes']||null:null,'limit':_0x5e2b84['options']?_0x5e2b84[_0x1a6c('0x17')][_0x1a6c('0x19')]||null:null})[_0x1a6c('0x9')](function(_0x4afa96){logger['info'](_0x1a6c('0x1a'),_0x5e2b84);logger['debug'](_0x1a6c('0x1a'),_0x5e2b84,JSON[_0x1a6c('0xf')](_0x4afa96));_0x2f9dc7(_0x4afa96);})[_0x1a6c('0x13')](function(_0x90fa4b){logger[_0x1a6c('0x10')](_0x1a6c('0x1a'),_0x90fa4b['message'],_0x5e2b84);_0x3fc1c4(_0x4f2748['error'](0x1f4,_0x90fa4b[_0x1a6c('0x11')]));});});};
\ No newline at end of file
+var _0x9363=['attributes','limit','debug','util','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','../../config/environment','client','http','request','then','info','request\x20sent','OpenchannelApplication,\x20%s,\x20%s,\x20%s','stringify','error','code','OpenchannelApplication,\x20%s,\x20%s','message','catch','UpdateOpenchannelApplication','update','body','options','raw'];(function(_0x4e07c6,_0x5d8c10){var _0x37023e=function(_0x339588){while(--_0x339588){_0x4e07c6['push'](_0x4e07c6['shift']());}};_0x37023e(++_0x5d8c10);}(_0x9363,0x142));var _0x3936=function(_0x3ec333,_0x26bcbe){_0x3ec333=_0x3ec333-0x0;var _0x15ccb8=_0x9363[_0x3ec333];return _0x15ccb8;};'use strict';var _=require('lodash');var util=require(_0x3936('0x0'));var moment=require(_0x3936('0x1'));var BPromise=require(_0x3936('0x2'));var rs=require(_0x3936('0x3'));var fs=require('fs');var Redis=require(_0x3936('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x3936('0x5'));var logger=require(_0x3936('0x6'))('rpc');var config=require(_0x3936('0x7'));var jayson=require('jayson/promise');var client=jayson[_0x3936('0x8')][_0x3936('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x381056,_0x5dd632,_0x3ad603){return new BPromise(function(_0x5360e5,_0x1b46a5){return client[_0x3936('0xa')](_0x381056,_0x3ad603)[_0x3936('0xb')](function(_0x1eefe2){logger[_0x3936('0xc')]('OpenchannelApplication,\x20%s,\x20%s',_0x5dd632,_0x3936('0xd'));logger['debug'](_0x3936('0xe'),_0x5dd632,_0x3936('0xd'),JSON[_0x3936('0xf')](_0x1eefe2));if(_0x1eefe2[_0x3936('0x10')]){if(_0x1eefe2[_0x3936('0x10')][_0x3936('0x11')]===0x1f4){logger[_0x3936('0x10')](_0x3936('0x12'),_0x5dd632,_0x1eefe2[_0x3936('0x10')][_0x3936('0x13')]);return _0x1b46a5(_0x1eefe2[_0x3936('0x10')][_0x3936('0x13')]);}logger[_0x3936('0x10')](_0x3936('0x12'),_0x5dd632,_0x1eefe2[_0x3936('0x10')][_0x3936('0x13')]);return _0x5360e5(_0x1eefe2[_0x3936('0x10')][_0x3936('0x13')]);}else{logger['info'](_0x3936('0x12'),_0x5dd632,_0x3936('0xd'));_0x5360e5(_0x1eefe2['result'][_0x3936('0x13')]);}})[_0x3936('0x14')](function(_0x3dfc11){logger[_0x3936('0x10')](_0x3936('0x12'),_0x5dd632,_0x3dfc11);_0x1b46a5(_0x3dfc11);});});}exports[_0x3936('0x15')]=function(_0x1ac412){var _0x3a117f=this;return new Promise(function(_0x4a817b,_0x5d317c){return db['OpenchannelApplication'][_0x3936('0x16')](_0x1ac412[_0x3936('0x17')],{'raw':_0x1ac412[_0x3936('0x18')]?_0x1ac412[_0x3936('0x18')][_0x3936('0x19')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x1ac412[_0x3936('0x18')]?_0x1ac412[_0x3936('0x18')]['where']||null:null,'attributes':_0x1ac412[_0x3936('0x18')]?_0x1ac412[_0x3936('0x18')][_0x3936('0x1a')]||null:null,'limit':_0x1ac412['options']?_0x1ac412[_0x3936('0x18')][_0x3936('0x1b')]||null:null})[_0x3936('0xb')](function(_0x10e64f){logger[_0x3936('0xc')](_0x3936('0x15'),_0x1ac412);logger[_0x3936('0x1c')](_0x3936('0x15'),_0x1ac412,JSON[_0x3936('0xf')](_0x10e64f));_0x4a817b(_0x10e64f);})[_0x3936('0x14')](function(_0x302c58){logger[_0x3936('0x10')](_0x3936('0x15'),_0x302c58['message'],_0x1ac412);_0x5d317c(_0x3a117f[_0x3936('0x10')](0x1f4,_0x302c58[_0x3936('0x13')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x881c=['create','addMessage','tracked','openchannel','addTags','put','/:id','openchannelinteraction:update','update','delete','openchannelinteraction:destroy','/:id/tags','removeTags','exports','util','path','connect-timeout','express','../../components/auth/service','../../components/interaction/service','./openchannelInteraction.controller','isAuthenticated','index','get','/describe','describe','/:id/messages','getMessages','/:id/download','post'];(function(_0x484287,_0x6bdc4d){var _0x3eaf6b=function(_0xc7d2a8){while(--_0xc7d2a8){_0x484287['push'](_0x484287['shift']());}};_0x3eaf6b(++_0x6bdc4d);}(_0x881c,0x1ee));var _0xc881=function(_0x422bb1,_0x2c194e){_0x422bb1=_0x422bb1-0x0;var _0x4cb1aa=_0x881c[_0x422bb1];return _0x4cb1aa;};'use strict';var multer=require('multer');var util=require(_0xc881('0x0'));var path=require(_0xc881('0x1'));var timeout=require(_0xc881('0x2'));var express=require(_0xc881('0x3'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0xc881('0x4'));var interaction=require(_0xc881('0x5'));var config=require('../../config/environment');var controller=require(_0xc881('0x6'));router['get']('/',auth[_0xc881('0x7')](),controller[_0xc881('0x8')]);router[_0xc881('0x9')](_0xc881('0xa'),auth[_0xc881('0x7')](),controller[_0xc881('0xb')]);router['get']('/:id',auth[_0xc881('0x7')](),controller['show']);router[_0xc881('0x9')](_0xc881('0xc'),auth[_0xc881('0x7')](),controller[_0xc881('0xd')]);router[_0xc881('0x9')](_0xc881('0xe'),auth[_0xc881('0x7')](),controller['download']);router[_0xc881('0xf')]('/',auth[_0xc881('0x7')](),controller[_0xc881('0x10')]);router[_0xc881('0xf')]('/:id/messages',auth[_0xc881('0x7')](),controller[_0xc881('0x11')]);router[_0xc881('0xf')]('/:id/tags',auth[_0xc881('0x7')](),interaction[_0xc881('0x12')](_0xc881('0x13'),'openchannelinteraction:addtags'),controller[_0xc881('0x14')]);router[_0xc881('0x15')](_0xc881('0x16'),auth[_0xc881('0x7')](),interaction[_0xc881('0x12')](_0xc881('0x13'),_0xc881('0x17')),controller[_0xc881('0x18')]);router[_0xc881('0x19')](_0xc881('0x16'),auth[_0xc881('0x7')](),interaction['tracked'](_0xc881('0x13'),_0xc881('0x1a')),controller['destroy']);router[_0xc881('0x19')](_0xc881('0x1b'),auth[_0xc881('0x7')](),controller[_0xc881('0x1c')]);module[_0xc881('0x1d')]=router;
\ No newline at end of file
+var _0xa5e2=['connect-timeout','express','Router','fs-extra','../../config/environment','./openchannelInteraction.controller','get','isAuthenticated','/describe','/:id','show','/:id/messages','getMessages','/:id/download','download','create','post','addMessage','/:id/tags','tracked','openchannel','openchannelinteraction:addtags','addTags','openchannelinteraction:update','update','delete','openchannelinteraction:destroy','destroy','removeTags','exports','multer','util','path'];(function(_0x2dafbe,_0x5d04de){var _0x58a45a=function(_0x50ac96){while(--_0x50ac96){_0x2dafbe['push'](_0x2dafbe['shift']());}};_0x58a45a(++_0x5d04de);}(_0xa5e2,0xc3));var _0x2a5e=function(_0x20a7a7,_0x47c7ea){_0x20a7a7=_0x20a7a7-0x0;var _0x3f5adc=_0xa5e2[_0x20a7a7];return _0x3f5adc;};'use strict';var multer=require(_0x2a5e('0x0'));var util=require(_0x2a5e('0x1'));var path=require(_0x2a5e('0x2'));var timeout=require(_0x2a5e('0x3'));var express=require(_0x2a5e('0x4'));var router=express[_0x2a5e('0x5')]();var fs_extra=require(_0x2a5e('0x6'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x2a5e('0x7'));var controller=require(_0x2a5e('0x8'));router[_0x2a5e('0x9')]('/',auth[_0x2a5e('0xa')](),controller['index']);router['get'](_0x2a5e('0xb'),auth[_0x2a5e('0xa')](),controller['describe']);router[_0x2a5e('0x9')](_0x2a5e('0xc'),auth[_0x2a5e('0xa')](),controller[_0x2a5e('0xd')]);router[_0x2a5e('0x9')](_0x2a5e('0xe'),auth[_0x2a5e('0xa')](),controller[_0x2a5e('0xf')]);router[_0x2a5e('0x9')](_0x2a5e('0x10'),auth[_0x2a5e('0xa')](),controller[_0x2a5e('0x11')]);router['post']('/',auth[_0x2a5e('0xa')](),controller[_0x2a5e('0x12')]);router[_0x2a5e('0x13')](_0x2a5e('0xe'),auth[_0x2a5e('0xa')](),controller[_0x2a5e('0x14')]);router['post'](_0x2a5e('0x15'),auth[_0x2a5e('0xa')](),interaction[_0x2a5e('0x16')](_0x2a5e('0x17'),_0x2a5e('0x18')),controller[_0x2a5e('0x19')]);router['put'](_0x2a5e('0xc'),auth[_0x2a5e('0xa')](),interaction[_0x2a5e('0x16')](_0x2a5e('0x17'),_0x2a5e('0x1a')),controller[_0x2a5e('0x1b')]);router[_0x2a5e('0x1c')](_0x2a5e('0xc'),auth[_0x2a5e('0xa')](),interaction[_0x2a5e('0x16')]('openchannel',_0x2a5e('0x1d')),controller[_0x2a5e('0x1e')]);router[_0x2a5e('0x1c')]('/:id/tags',auth['isAuthenticated'](),controller[_0x2a5e('0x1f')]);module[_0x2a5e('0x20')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4fde=['ENUM','out','sequelize','exports','BOOLEAN','DATE','STRING'];(function(_0x4f7014,_0x3649ef){var _0x8fa130=function(_0x389b8a){while(--_0x389b8a){_0x4f7014['push'](_0x4f7014['shift']());}};_0x8fa130(++_0x3649ef);}(_0x4fde,0x19f));var _0xe4fd=function(_0x256b72,_0x340985){_0x256b72=_0x256b72-0x0;var _0x2183e3=_0x4fde[_0x256b72];return _0x2183e3;};'use strict';var Sequelize=require(_0xe4fd('0x0'));module[_0xe4fd('0x1')]={'closed':{'type':Sequelize[_0xe4fd('0x2')],'defaultValue':![]},'closedAt':{'type':Sequelize[_0xe4fd('0x3')]},'disposition':{'type':Sequelize['STRING']},'secondDisposition':{'type':Sequelize[_0xe4fd('0x4')]},'thirdDisposition':{'type':Sequelize[_0xe4fd('0x4')]},'note':{'type':Sequelize['STRING']},'read1stAt':{'type':Sequelize[_0xe4fd('0x3')]},'threadId':{'type':Sequelize[_0xe4fd('0x4')]},'externalUrl':{'type':Sequelize[_0xe4fd('0x4')]},'lastMsgAt':{'type':Sequelize[_0xe4fd('0x3')]},'lastMsgDirection':{'type':Sequelize[_0xe4fd('0x5')]('in',_0xe4fd('0x6')),'defaultValue':'in','allowNull':![]},'from':{'type':Sequelize[_0xe4fd('0x4')]},'autoreplyExecuted':{'type':Sequelize[_0xe4fd('0x2')],'defaultValue':![]}};
\ No newline at end of file
+var _0xb3ea=['exports','BOOLEAN','STRING','DATE','ENUM','sequelize'];(function(_0x143368,_0x5d0b64){var _0x44c10a=function(_0x30c90c){while(--_0x30c90c){_0x143368['push'](_0x143368['shift']());}};_0x44c10a(++_0x5d0b64);}(_0xb3ea,0x10d));var _0xab3e=function(_0x40c284,_0x3eafe3){_0x40c284=_0x40c284-0x0;var _0x28160e=_0xb3ea[_0x40c284];return _0x28160e;};'use strict';var Sequelize=require(_0xab3e('0x0'));module[_0xab3e('0x1')]={'closed':{'type':Sequelize[_0xab3e('0x2')],'defaultValue':![]},'closedAt':{'type':Sequelize['DATE']},'disposition':{'type':Sequelize[_0xab3e('0x3')]},'secondDisposition':{'type':Sequelize['STRING']},'thirdDisposition':{'type':Sequelize[_0xab3e('0x3')]},'note':{'type':Sequelize['STRING']},'read1stAt':{'type':Sequelize[_0xab3e('0x4')]},'threadId':{'type':Sequelize[_0xab3e('0x3')]},'externalUrl':{'type':Sequelize[_0xab3e('0x3')]},'lastMsgAt':{'type':Sequelize[_0xab3e('0x4')]},'lastMsgDirection':{'type':Sequelize[_0xab3e('0x5')]('in','out'),'defaultValue':'in','allowNull':![]},'from':{'type':Sequelize[_0xab3e('0x3')]},'autoreplyExecuted':{'type':Sequelize['BOOLEAN'],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xab1b=['offset','limit','undefined','count','set','Content-Range','apply','save','destroy','then','error','name','Users','map','fullname','TagIds','Tags','split','push','catch','OpenchannelInteraction','rawAttributes','fieldName','key','model','query','keys','intersection','attributes','fields','nolimit','order','sort','filters','pick','select','field','color','from','tools_tags','u.id','u.fullname','ui.OpenchannelInteractionId','left_join','users','u.id\x20=\x20ui.UserId','cm_contacts','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','o.id\x20=\x20i.UserId','openchannel_accounts','openchannel_messages','me.OpenchannelInteractionId\x20=\x20i.id','openchannel_interaction_has_tags','it.OpenchannelInteractionId\x20=\x20i.id','t.id\x20=\x20it.TagId','expr','parseSearch','search','sqlOperator','length','conditions','value','having','`\x20=\x200','`\x20>\x200','Contact','operator','getFullTextValue','ContactId','buildExpression','type','start','Tag','union','$substring','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','find','UserId','text','some','compact','isEmpty','forEach','OpenchannelAccountId','where','i.OpenchannelAccountId\x20IN\x20?','concat','createdAt','parse','$gte','$lte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','\x20=\x20?','read','`unreadMessages`\x20=\x200','`unreadMessages`\x20>\x200','tag','isArray','filter','replace','isNumeric','i.id\x20LIKE\x20?','MATCH\x20(me.body)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','i.from\x20LIKE\x20?','CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?','i.id','QueryTypes','SELECT','clone','unreadMessages','contactName','DESC','resolve','i.OpenchannelAccountId\x20IS\x20NOT\x20NULL','user','agent','getOpenchannelAccounts','i.OpenchannelAccountId\x20IS\x20NULL','role','sequelize','toString','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','a.key','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','Contact.mobile','c.fax','Contact.fax','o.fullname','Owner.fullname','Owner.internal','ui.OpenchannelInteractionId\x20IN\x20?','groupBy','rows','show','params','merge','options','create','body','describe','addMessage','OpenchannelMessage','ids','omit','getMessages','findOne','hasOwnProperty','OpenchannelInteractionId','YYYY-MM-DD\x20HH:mm:ss','includeAll','include','findAll','addTags','setTags','spread','removeTags','download','join','server','files','attachments','format','transcript-%d-%s.zip','User','CmContact','Attachment','Messages','direction','secret','OpenchannelAccount','get','mkdirSync','Openchannel','Account','Owner','N.A.','closed','closedAt','disposition','threadId','Public','Private','basename','existsSync','pipe','out','System','firstName','lastName','root','views','createPdfFromHTML','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','ejs','fs-extra','lodash','squel','crypto','jsforce','papaparse','ioredis','../../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','redis','defaults','localhost','./openchannelInteraction.socket','register','sendStatus','status','end','json'];(function(_0x2b9120,_0x4cba82){var _0x459db0=function(_0x5753b5){while(--_0x5753b5){_0x2b9120['push'](_0x2b9120['shift']());}};_0x459db0(++_0x4cba82);}(_0xab1b,0xca));var _0xbab1=function(_0x295f2a,_0x17bff8){_0x295f2a=_0x295f2a-0x0;var _0xbec635=_0xab1b[_0x295f2a];return _0xbec635;};'use strict';var emlformat=require(_0xbab1('0x0'));var rimraf=require(_0xbab1('0x1'));var zipdir=require(_0xbab1('0x2'));var jsonpatch=require(_0xbab1('0x3'));var rp=require(_0xbab1('0x4'));var moment=require(_0xbab1('0x5'));var BPromise=require(_0xbab1('0x6'));var Mustache=require(_0xbab1('0x7'));var util=require('util');var path=require(_0xbab1('0x8'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0xbab1('0x9'));var fs=require('fs');var fs_extra=require(_0xbab1('0xa'));var _=require(_0xbab1('0xb'));var squel=require(_0xbab1('0xc'));var crypto=require(_0xbab1('0xd'));var jsforce=require(_0xbab1('0xe'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xbab1('0xf'));var Redis=require(_0xbab1('0x10'));var authService=require(_0xbab1('0x11'));var qs=require(_0xbab1('0x12'));var as=require(_0xbab1('0x13'));var pdf=require(_0xbab1('0x14'));var hardwareService=require(_0xbab1('0x15'));var logger=require(_0xbab1('0x16'))(_0xbab1('0x17'));var utils=require(_0xbab1('0x18'));var config=require(_0xbab1('0x19'));var licenseUtil=require(_0xbab1('0x1a'));var db=require('../../mysqldb')['db'];config[_0xbab1('0x1b')]=_[_0xbab1('0x1c')](config[_0xbab1('0x1b')],{'host':_0xbab1('0x1d'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xbab1('0x1b')]));require(_0xbab1('0x1e'))[_0xbab1('0x1f')](socket);function respondWithStatusCode(_0x2e887e,_0x2f204b){_0x2f204b=_0x2f204b||0xcc;return function(_0x32ee37){if(_0x32ee37){return _0x2e887e[_0xbab1('0x20')](_0x2f204b);}return _0x2e887e[_0xbab1('0x21')](_0x2f204b)[_0xbab1('0x22')]();};}function respondWithResult(_0x3e50f0,_0x1bee67){_0x1bee67=_0x1bee67||0xc8;return function(_0x2c7984){if(_0x2c7984){return _0x3e50f0[_0xbab1('0x21')](_0x1bee67)[_0xbab1('0x23')](_0x2c7984);}};}function respondWithFilteredResult(_0x2f1af2,_0x34fe4b){return function(_0x1ffdea){if(_0x1ffdea){var _0x25c873=typeof _0x34fe4b[_0xbab1('0x24')]==='undefined'&&typeof _0x34fe4b[_0xbab1('0x25')]===_0xbab1('0x26');var _0x296af6=_0x1ffdea[_0xbab1('0x27')];var _0x3bd099=_0x25c873?0x0:_0x34fe4b[_0xbab1('0x24')];var _0x5dc6f6=_0x25c873?_0x1ffdea[_0xbab1('0x27')]:_0x34fe4b[_0xbab1('0x24')]+_0x34fe4b[_0xbab1('0x25')];var _0x3870b2;if(_0x5dc6f6>=_0x296af6){_0x5dc6f6=_0x296af6;_0x3870b2=0xc8;}else{_0x3870b2=0xce;}_0x2f1af2[_0xbab1('0x21')](_0x3870b2);return _0x2f1af2[_0xbab1('0x28')](_0xbab1('0x29'),_0x3bd099+'-'+_0x5dc6f6+'/'+_0x296af6)[_0xbab1('0x23')](_0x1ffdea);}return null;};}function patchUpdates(_0xe20b62){return function(_0x396809){try{jsonpatch[_0xbab1('0x2a')](_0x396809,_0xe20b62,!![]);}catch(_0x3f4a99){return BPromise['reject'](_0x3f4a99);}return _0x396809[_0xbab1('0x2b')]();};}function saveUpdates(_0x434ed8,_0x44a03d){return function(_0x47136f){if(_0x47136f){return _0x47136f['update'](_0x434ed8)['then'](function(_0x58066f){return _0x58066f;});}return null;};}function removeEntity(_0x463eb3,_0x19346b){return function(_0x8b2c41){if(_0x8b2c41){return _0x8b2c41[_0xbab1('0x2c')]()[_0xbab1('0x2d')](function(){_0x463eb3[_0xbab1('0x21')](0xcc)[_0xbab1('0x22')]();});}};}function handleEntityNotFound(_0x3cdd68,_0x385c59){return function(_0x5e1d64){if(!_0x5e1d64){_0x3cdd68['sendStatus'](0x194);}return _0x5e1d64;};}function handleError(_0x2fbb7e,_0x61f6a2){_0x61f6a2=_0x61f6a2||0x1f4;return function(_0x174f76){logger[_0xbab1('0x2e')](_0x174f76['stack']);if(_0x174f76[_0xbab1('0x2f')]){delete _0x174f76['name'];}_0x2fbb7e[_0xbab1('0x21')](_0x61f6a2)['send'](_0x174f76);};}function getInteractionUsers(_0x1aef1a,_0x387206){return new BPromise(function(_0x2f4def,_0x22e496){try{if(_0x387206[_0x1aef1a['id']]){_0x1aef1a[_0xbab1('0x30')]=_[_0xbab1('0x31')](_0x387206[_0x1aef1a['id']],function(_0x2a910d){return{'id':_0x2a910d['id'],'fullname':_0x2a910d[_0xbab1('0x32')]};});}}catch(_0x17bee4){_0x22e496(_0x17bee4);}_0x2f4def(_0x1aef1a);});}function getInteractionTags(_0x3b6855,_0x242bec){return new BPromise(function(_0x5a8f2a,_0x3d2df2){try{if(_0x3b6855[_0xbab1('0x33')]){_0x3b6855[_0xbab1('0x34')]=[];_0x3b6855[_0xbab1('0x33')][_0xbab1('0x35')](',')['forEach'](function(_0x520bce){_0x3b6855[_0xbab1('0x34')][_0xbab1('0x36')](_0x242bec[_0x520bce]);});}delete _0x3b6855[_0xbab1('0x33')];}catch(_0x363998){_0x3d2df2(_0x363998);}_0x5a8f2a(_0x3b6855);});}function updateOpenchannelInteraction(_0x21c7ac,_0x5b9875,_0x1fc2dd){return new BPromise(function(_0x478f86,_0x5eecfc){return getInteractionUsers(_0x21c7ac,_0x1fc2dd)['then'](function(_0x204654){return getInteractionTags(_0x204654,_0x5b9875);})[_0xbab1('0x2d')](function(_0x1fe2bd){_0x478f86(_0x1fe2bd);})[_0xbab1('0x37')](function(_0x31dd1e){_0x5eecfc(_0x31dd1e);});});}exports['index']=function(_0x2ab6e,_0x5993e4){var _0x5c30e3={},_0x4c2dd8={},_0x5649c5={'count':0x0,'rows':[]};var _0x1057a4=_[_0xbab1('0x31')](db[_0xbab1('0x38')][_0xbab1('0x39')],function(_0x2b49a6){return{'name':_0x2b49a6[_0xbab1('0x3a')],'type':_0x2b49a6['type'][_0xbab1('0x3b')]};});_0x4c2dd8[_0xbab1('0x3c')]=_['map'](_0x1057a4,'name');_0x4c2dd8[_0xbab1('0x3d')]=_[_0xbab1('0x3e')](_0x2ab6e['query']);_0x4c2dd8['filters']=_[_0xbab1('0x3f')](_0x4c2dd8[_0xbab1('0x3c')],_0x4c2dd8[_0xbab1('0x3d')]);_0x5c30e3[_0xbab1('0x40')]=_[_0xbab1('0x3f')](_0x4c2dd8['model'],qs['fields'](_0x2ab6e['query'][_0xbab1('0x41')]));_0x5c30e3[_0xbab1('0x40')]=_0x5c30e3[_0xbab1('0x40')]['length']?_0x5c30e3[_0xbab1('0x40')]:_0x4c2dd8[_0xbab1('0x3c')];if(!_0x2ab6e[_0xbab1('0x3d')]['hasOwnProperty'](_0xbab1('0x42'))){_0x5c30e3['limit']=qs[_0xbab1('0x25')](_0x2ab6e[_0xbab1('0x3d')][_0xbab1('0x25')]);_0x5c30e3[_0xbab1('0x24')]=qs[_0xbab1('0x24')](_0x2ab6e[_0xbab1('0x3d')][_0xbab1('0x24')]);}_0x5c30e3[_0xbab1('0x43')]=qs['sort'](_0x2ab6e['query'][_0xbab1('0x44')]);_0x5c30e3['where']=qs[_0xbab1('0x45')](_[_0xbab1('0x46')](_0x2ab6e['query'],_0x4c2dd8[_0xbab1('0x45')]),_0x1057a4);var _0x59cbe9=[];var _0x213c81=squel[_0xbab1('0x47')]()[_0xbab1('0x48')]('id')[_0xbab1('0x48')](_0xbab1('0x2f'))[_0xbab1('0x48')](_0xbab1('0x49'))[_0xbab1('0x4a')](_0xbab1('0x4b'));var _0x239fb3=squel[_0xbab1('0x47')]()[_0xbab1('0x48')](_0xbab1('0x4c'))[_0xbab1('0x48')](_0xbab1('0x4d'))['field'](_0xbab1('0x4e'))['from']('user_has_openchannel_interactions','ui')[_0xbab1('0x4f')](_0xbab1('0x50'),'u',_0xbab1('0x51'));var _0x3723b3=squel[_0xbab1('0x47')]()['from']('openchannel_interactions','i')[_0xbab1('0x4f')](_0xbab1('0x52'),'c',_0xbab1('0x53'))['left_join'](_0xbab1('0x50'),'o',_0xbab1('0x54'))['left_join'](_0xbab1('0x55'),'a','a.id\x20=\x20i.OpenchannelAccountId')['left_join'](_0xbab1('0x56'),'me',_0xbab1('0x57'))[_0xbab1('0x4f')](_0xbab1('0x58'),'it',_0xbab1('0x59'))['left_join'](_0xbab1('0x4b'),'t',_0xbab1('0x5a'));var _0x55ba84=squel[_0xbab1('0x5b')]();var _0x501e46=[];var _0x12619c=squel['expr']();var _0x37fbe9;if(_0x2ab6e[_0xbab1('0x3d')]['search']){_0x37fbe9=as[_0xbab1('0x5c')](_0x2ab6e[_0xbab1('0x3d')][_0xbab1('0x5d')]);var _0x89f15a=_0x37fbe9[_0xbab1('0x5e')];for(var _0x59248a=0x0;_0x59248a<_0x37fbe9['conditions'][_0xbab1('0x5f')];_0x59248a++){var _0x7c4beb=_0x37fbe9[_0xbab1('0x60')][_0x59248a];var _0x14913d='i';var _0x358d60=_['find'](_0x1057a4,[_0xbab1('0x2f'),_0x7c4beb[_0xbab1('0x48')]]);if(!_0x358d60){switch(_0x7c4beb[_0xbab1('0x48')]){case'unreadMessages':if(_0x7c4beb[_0xbab1('0x61')]==0x1){_0x3723b3[_0xbab1('0x62')]('`'+_0x7c4beb[_0xbab1('0x48')]+_0xbab1('0x63'));}else{_0x3723b3[_0xbab1('0x62')]('`'+_0x7c4beb[_0xbab1('0x48')]+_0xbab1('0x64'));}break;case _0xbab1('0x65'):if(_0x7c4beb[_0xbab1('0x66')]==='$substring'){if(_0x7c4beb[_0xbab1('0x61')][_0xbab1('0x35')]('\x20')['length']>0x1){_0x55ba84[_0x89f15a]('MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs[_0xbab1('0x67')](_0x7c4beb[_0xbab1('0x61')]),null);}else{var _0x46db41='%'+_0x7c4beb[_0xbab1('0x61')]+'%';_0x55ba84[_0x89f15a]('c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?',_0x46db41,_0x46db41,_0x46db41);}}else{_0x358d60=_['find'](_0x1057a4,[_0xbab1('0x2f'),'ContactId']);_0x7c4beb[_0xbab1('0x48')]=_0xbab1('0x68');_0x189b91=as[_0xbab1('0x69')](_0x14913d,_0x358d60[_0xbab1('0x6a')],_0x7c4beb);_0x55ba84[_0x89f15a](_0x189b91['text'],_0x189b91['value'][_0xbab1('0x6b')],_0x189b91[_0xbab1('0x61')][_0xbab1('0x22')]);}break;case _0xbab1('0x6c'):var _0x48fcab=_0x7c4beb[_0xbab1('0x61')][_0xbab1('0x35')](',')[_0xbab1('0x31')](function(_0x58d8f0){return Number(_0x58d8f0);});_0x48fcab['forEach'](function(_0xb7f5c9){_0x12619c['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0xb7f5c9+',%');});_0x501e46=_[_0xbab1('0x6d')](_0x501e46,_0x48fcab);break;case'User':if(_0x7c4beb[_0xbab1('0x66')]===_0xbab1('0x6e')){_0x55ba84[_0x89f15a](_0xbab1('0x6f'),'%'+_0x7c4beb['value']+'%',null);}else{_0x358d60=_[_0xbab1('0x70')](_0x1057a4,[_0xbab1('0x2f'),'UserId']);_0x7c4beb[_0xbab1('0x48')]=_0xbab1('0x71');_0x189b91=as[_0xbab1('0x69')](_0x14913d,_0x358d60[_0xbab1('0x6a')],_0x7c4beb);_0x55ba84[_0x89f15a](_0x189b91['text'],_0x189b91[_0xbab1('0x61')]['start'],_0x189b91[_0xbab1('0x61')]['end']);}break;case'body':_0x189b91=as[_0xbab1('0x69')]('me',null,_0x7c4beb);_0x55ba84[_0x89f15a](_0x189b91[_0xbab1('0x72')],_0x189b91[_0xbab1('0x61')]['start'],_0x189b91[_0xbab1('0x61')][_0xbab1('0x22')]);break;}}else{var _0x189b91=as['buildExpression'](_0x14913d,_0x358d60[_0xbab1('0x6a')],_0x7c4beb);_0x55ba84[_0x89f15a](_0x189b91['text'],_0x189b91[_0xbab1('0x61')][_0xbab1('0x6b')],_0x189b91[_0xbab1('0x61')][_0xbab1('0x22')]);}}}else{var _0x2a0fdb=_(_0x2ab6e['query'])['keys']()[_0xbab1('0x31')](function(_0x231cd0){return _[_0xbab1('0x73')](_0x1057a4,[_0xbab1('0x2f'),_0x231cd0])?_0x231cd0:undefined;})[_0xbab1('0x74')]()[_0xbab1('0x61')]();if(!_[_0xbab1('0x75')](_0x2a0fdb)){_0x2a0fdb[_0xbab1('0x76')](function(_0x63bfdd){if(_0x63bfdd===_0xbab1('0x77')){_0x3723b3[_0xbab1('0x78')](_0xbab1('0x79'),[][_0xbab1('0x7a')](_0x2ab6e[_0xbab1('0x3d')][_0x63bfdd]));}else if(_0x63bfdd===_0xbab1('0x7b')){var _0x47bb9f=JSON[_0xbab1('0x7c')](_0x2ab6e[_0xbab1('0x3d')][_0x63bfdd])[_0xbab1('0x7d')];var _0x55ac0a=JSON[_0xbab1('0x7c')](_0x2ab6e[_0xbab1('0x3d')][_0x63bfdd])[_0xbab1('0x7e')];_0x3723b3[_0xbab1('0x78')](_0xbab1('0x7f'),_0x47bb9f,_0x55ac0a);}else{if(_0x2ab6e[_0xbab1('0x3d')][_0x63bfdd]===_0xbab1('0x80')){_0x3723b3[_0xbab1('0x78')]('i.'+_0x63bfdd+'\x20IS\x20NULL');}else{_0x3723b3[_0xbab1('0x78')]('i.'+_0x63bfdd+_0xbab1('0x81'),_0x2ab6e[_0xbab1('0x3d')][_0x63bfdd]);}}});}if(_0x2ab6e[_0xbab1('0x3d')][_0xbab1('0x82')]){if(_0x2ab6e[_0xbab1('0x3d')][_0xbab1('0x82')]==0x1){_0x3723b3['having'](_0xbab1('0x83'));}else{_0x3723b3[_0xbab1('0x62')](_0xbab1('0x84'));}}if(_0x2ab6e[_0xbab1('0x3d')][_0xbab1('0x85')]){_0x501e46=_[_0xbab1('0x86')](_0x2ab6e[_0xbab1('0x3d')][_0xbab1('0x85')])?_0x2ab6e['query'][_0xbab1('0x85')]:new Array(_0x2ab6e[_0xbab1('0x3d')][_0xbab1('0x85')]);_0x501e46[_0xbab1('0x76')](function(_0x42b80f){_0x12619c['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x42b80f+',%');});}if(_0x2ab6e[_0xbab1('0x3d')][_0xbab1('0x87')]){var _0x892cdb=_0x2ab6e['query'][_0xbab1('0x87')]['replace']('\x5c','\x5c\x5c')[_0xbab1('0x88')](/'/g,'\x27\x27');if(qs[_0xbab1('0x89')](_0x892cdb)){_0x55ba84['or'](_0xbab1('0x8a'),_0x892cdb+'%');}else{_0x55ba84['or'](_0xbab1('0x8b'),qs[_0xbab1('0x67')](_0x892cdb))['or'](_0xbab1('0x8c'),_0x892cdb+'%')['or'](_0xbab1('0x8d'),_0x892cdb+'%');}}}_0x3723b3[_0xbab1('0x78')](_0x55ba84);_0x3723b3['group'](_0xbab1('0x8e'));var _0x33953e={'type':db['Sequelize'][_0xbab1('0x8f')][_0xbab1('0x90')],'raw':!![]};var _0x2d9573=_0x3723b3[_0xbab1('0x91')]();_0x2d9573['field'](_0xbab1('0x8e'));_0x2d9573[_0xbab1('0x48')]('SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)',_0xbab1('0x92'));if(_0x5c30e3['order']){_0x5c30e3['order'][_0xbab1('0x76')](function(_0x4e1b5d){var _0x3b19bf=_0x4e1b5d[0x0]===_0xbab1('0x93')?_0x4e1b5d[0x0]:'i.'+_0x4e1b5d[0x0];_0x3723b3[_0xbab1('0x43')](_0x3b19bf,_0x4e1b5d[0x1]===_0xbab1('0x94')?![]:!![]);});}if(!_[_0xbab1('0x75')](_0x501e46)){_0x3723b3[_0xbab1('0x62')](_0x12619c);_0x2d9573['where']('t.id\x20IN\x20?',_0x501e46);}BPromise[_0xbab1('0x95')]()[_0xbab1('0x2d')](function(){if(!_0x37fbe9){if(_0x2ab6e[_0xbab1('0x3d')][_0xbab1('0x77')])return;_0x2d9573[_0xbab1('0x78')](_0xbab1('0x96'));_0x3723b3[_0xbab1('0x78')](_0xbab1('0x96'));return;}if(_0x2ab6e[_0xbab1('0x97')]['role']!==_0xbab1('0x98'))return;return _0x2ab6e[_0xbab1('0x97')][_0xbab1('0x99')]({'attributes':['id'],'raw':!![]})[_0xbab1('0x2d')](function(_0x497dd5){if(_[_0xbab1('0x75')](_0x497dd5)){_0x2d9573[_0xbab1('0x78')](_0xbab1('0x9a'));_0x3723b3[_0xbab1('0x78')](_0xbab1('0x9a'));}else{_0x2d9573['where']('i.OpenchannelAccountId\x20IN\x20?',_[_0xbab1('0x31')](_0x497dd5,'id'));_0x3723b3['where'](_0xbab1('0x79'),_[_0xbab1('0x31')](_0x497dd5,'id'));}});})[_0xbab1('0x2d')](function(){if(_0x2ab6e[_0xbab1('0x97')][_0xbab1('0x9b')]===_0xbab1('0x98')&&!_0x37fbe9&&!_0x2ab6e[_0xbab1('0x3d')][_0xbab1('0x77')])return[];return db[_0xbab1('0x9c')][_0xbab1('0x3d')](_0x2d9573[_0xbab1('0x9d')](),_0x33953e);})[_0xbab1('0x2d')](function(_0x43d01d){_0x5649c5[_0xbab1('0x27')]=_0x43d01d['length'];if(_0x5649c5['count']===0x0)return[];return db['sequelize'][_0xbab1('0x3d')](_0x213c81[_0xbab1('0x9d')](),_0x33953e)[_0xbab1('0x2d')](function(_0x3495c8){_0x59cbe9=_['keyBy'](_0x3495c8,'id');_0x33953e=_['merge'](_0x33953e,{'model':db[_0xbab1('0x38')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x2ab6e[_0xbab1('0x3d')][_0xbab1('0x41')]){_0x5c30e3[_0xbab1('0x40')]['forEach'](function(_0x1bed0a){_0x3723b3[_0xbab1('0x48')]('i.'+_0x1bed0a);});}else{_0x3723b3[_0xbab1('0x48')](_0xbab1('0x9e'),_0xbab1('0x92'));_0x3723b3[_0xbab1('0x48')](_0xbab1('0x9f'),'Account.key');_0x3723b3[_0xbab1('0x48')]('a.mandatoryDisposition','Account.mandatoryDisposition');_0x3723b3[_0xbab1('0x48')](_0xbab1('0xa0'),_0xbab1('0x93'));_0x3723b3[_0xbab1('0x48')](_0xbab1('0xa1'));_0x3723b3[_0xbab1('0x48')](_0xbab1('0xa2'),_0xbab1('0xa3'));_0x3723b3[_0xbab1('0x48')](_0xbab1('0xa4'),_0xbab1('0xa5'));_0x3723b3[_0xbab1('0x48')](_0xbab1('0xa6'),_0xbab1('0xa7'));_0x3723b3[_0xbab1('0x48')](_0xbab1('0xa8'),_0xbab1('0xa9'));_0x3723b3['field']('c.mobile',_0xbab1('0xaa'));_0x3723b3[_0xbab1('0x48')](_0xbab1('0xab'),_0xbab1('0xac'));_0x3723b3[_0xbab1('0x48')](_0xbab1('0xad'),_0xbab1('0xae'));_0x3723b3['field']('o.internal',_0xbab1('0xaf'));_0x3723b3[_0xbab1('0x48')]('GROUP_CONCAT(DISTINCT\x20t.id)',_0xbab1('0x33'));}if(_0x5c30e3['limit'])_0x3723b3[_0xbab1('0x25')](_0x5c30e3['limit']);if(_0x5c30e3[_0xbab1('0x24')])_0x3723b3[_0xbab1('0x24')](_0x5c30e3['offset']);return db[_0xbab1('0x9c')][_0xbab1('0x3d')](_0x3723b3[_0xbab1('0x9d')](),_0x33953e);})[_0xbab1('0x2d')](function(_0x1977d9){if(_0x1977d9[_0xbab1('0x5f')]>0x0)_0x239fb3[_0xbab1('0x78')](_0xbab1('0xb0'),_['map'](_0x1977d9,'id'));return db[_0xbab1('0x9c')][_0xbab1('0x3d')](_0x239fb3[_0xbab1('0x9d')](),_0x33953e)['then'](function(_0x30be07){var _0x57b6d1=_[_0xbab1('0xb1')](_0x30be07,'OpenchannelInteractionId');var _0x4c72b4=[];_0x1977d9[_0xbab1('0x76')](function(_0x144da8){_0x4c72b4['push'](updateOpenchannelInteraction(_0x144da8,_0x59cbe9,_0x57b6d1));});return BPromise['all'](_0x4c72b4);});});})[_0xbab1('0x2d')](function(_0x2a7220){_0x5649c5[_0xbab1('0xb2')]=_0x2a7220;return _0x5649c5;})['then'](respondWithFilteredResult(_0x5993e4,_0x5c30e3))[_0xbab1('0x37')](handleError(_0x5993e4,null));};exports[_0xbab1('0xb3')]=function(_0x2b4736,_0x49aec0){var _0x414edf={};if(_0x2b4736['query']['type']&&_0x2b4736[_0xbab1('0x3d')][_0xbab1('0x6a')]===_0xbab1('0x4a')){_0x414edf[_0xbab1('0x4a')]=_0x2b4736[_0xbab1('0xb4')]['id'];}else{_0x414edf['id']=_0x2b4736[_0xbab1('0xb4')]['id'];}var _0x4e0fba={'raw':![],'where':_0x414edf},_0x2696f7={};_0x2696f7[_0xbab1('0x3c')]=_[_0xbab1('0x3e')](db[_0xbab1('0x38')][_0xbab1('0x39')]);_0x2696f7[_0xbab1('0x3d')]=_['keys'](_0x2b4736['query']);_0x2696f7[_0xbab1('0x45')]=_[_0xbab1('0x3f')](_0x2696f7[_0xbab1('0x3c')],_0x2696f7['query']);_0x4e0fba['attributes']=_['intersection'](_0x2696f7[_0xbab1('0x3c')],qs[_0xbab1('0x41')](_0x2b4736['query'][_0xbab1('0x41')]));_0x4e0fba[_0xbab1('0x40')]=_0x4e0fba[_0xbab1('0x40')][_0xbab1('0x5f')]?_0x4e0fba[_0xbab1('0x40')]:_0x2696f7['model'];if(_0x2b4736[_0xbab1('0x3d')]['includeAll']){_0x4e0fba['include']=[{'all':!![]}];}_0x4e0fba=_[_0xbab1('0xb5')]({},_0x4e0fba,_0x2b4736[_0xbab1('0xb6')]);return db[_0xbab1('0x38')][_0xbab1('0x70')](_0x4e0fba)[_0xbab1('0x2d')](handleEntityNotFound(_0x49aec0,null))['then'](respondWithResult(_0x49aec0,null))['catch'](handleError(_0x49aec0,null));};exports[_0xbab1('0xb7')]=function(_0x1f1dd7,_0x4e0d9c){return db[_0xbab1('0x38')]['create'](_0x1f1dd7['body'],{})[_0xbab1('0x2d')](respondWithResult(_0x4e0d9c,0xc9))['catch'](handleError(_0x4e0d9c,null));};exports['update']=function(_0x1becf7,_0x2e39a9){if(_0x1becf7[_0xbab1('0xb8')]['id']){delete _0x1becf7['body']['id'];}return db['OpenchannelInteraction'][_0xbab1('0x70')]({'where':{'id':_0x1becf7['params']['id']}})[_0xbab1('0x2d')](handleEntityNotFound(_0x2e39a9,null))[_0xbab1('0x2d')](saveUpdates(_0x1becf7['body'],null))['then'](respondWithResult(_0x2e39a9,null))[_0xbab1('0x37')](handleError(_0x2e39a9,null));};exports[_0xbab1('0x2c')]=function(_0x1beae,_0x5c2c4d){return db['OpenchannelInteraction'][_0xbab1('0x70')]({'where':{'id':_0x1beae['params']['id']}})[_0xbab1('0x2d')](handleEntityNotFound(_0x5c2c4d,null))[_0xbab1('0x2d')](removeEntity(_0x5c2c4d,null))['catch'](handleError(_0x5c2c4d,null));};exports['describe']=function(_0x5403f4,_0x3055c){return db[_0xbab1('0x38')][_0xbab1('0xb9')]()[_0xbab1('0x2d')](respondWithResult(_0x3055c,null))[_0xbab1('0x37')](handleError(_0x3055c,null));};exports[_0xbab1('0xba')]=function(_0x4ee573,_0x81012e,_0x5d8069){return db[_0xbab1('0xbb')][_0xbab1('0x70')]({'where':{'id':_0x4ee573['params']['id']}})[_0xbab1('0x2d')](handleEntityNotFound(_0x81012e,null))[_0xbab1('0x2d')](function(_0x52e589){if(_0x52e589){return _0x52e589[_0xbab1('0xba')](_0x4ee573['body'][_0xbab1('0xbc')],_[_0xbab1('0xbd')](_0x4ee573['body'],[_0xbab1('0xbc'),'id'])||{});}})['then'](respondWithResult(_0x81012e,null))[_0xbab1('0x37')](handleError(_0x81012e,null));};exports[_0xbab1('0xbe')]=function(_0x31190f,_0x511dbe,_0x12a5fa){var _0x2fda5c={'raw':![],'where':{}};var _0x21df95={};var _0x1182a7={'count':0x0,'rows':[]};return db[_0xbab1('0x38')][_0xbab1('0xbf')]({'where':{'id':_0x31190f['params']['id']}})[_0xbab1('0x2d')](handleEntityNotFound(_0x511dbe,null))['then'](function(_0x24c7f3){if(_0x24c7f3){_0x21df95[_0xbab1('0x3c')]=_[_0xbab1('0x3e')](db['OpenchannelMessage'][_0xbab1('0x39')]);_0x21df95[_0xbab1('0x3d')]=_['keys'](_0x31190f[_0xbab1('0x3d')]);_0x21df95[_0xbab1('0x45')]=_[_0xbab1('0x3f')](_0x21df95[_0xbab1('0x3c')],_0x21df95[_0xbab1('0x3d')]);_0x2fda5c[_0xbab1('0x40')]=_[_0xbab1('0x3f')](_0x21df95[_0xbab1('0x3c')],qs['fields'](_0x31190f[_0xbab1('0x3d')][_0xbab1('0x41')]));_0x2fda5c[_0xbab1('0x40')]=_0x2fda5c[_0xbab1('0x40')]['length']?_0x2fda5c[_0xbab1('0x40')]:_0x21df95['model'];if(!_0x31190f[_0xbab1('0x3d')][_0xbab1('0xc0')](_0xbab1('0x42'))){_0x2fda5c[_0xbab1('0x25')]=qs['limit'](_0x31190f[_0xbab1('0x3d')]['limit']);_0x2fda5c[_0xbab1('0x24')]=qs[_0xbab1('0x24')](_0x31190f[_0xbab1('0x3d')][_0xbab1('0x24')]);}_0x2fda5c['order']=qs[_0xbab1('0x44')](_0x31190f[_0xbab1('0x3d')][_0xbab1('0x44')]);_0x2fda5c[_0xbab1('0x78')]=qs['filters'](_[_0xbab1('0x46')](_0x31190f[_0xbab1('0x3d')],_0x21df95[_0xbab1('0x45')]));_0x2fda5c[_0xbab1('0x78')][_0xbab1('0xc1')]=_0x24c7f3['id'];if(_0x31190f[_0xbab1('0x3d')][_0xbab1('0x87')]){_0x2fda5c['where']=_[_0xbab1('0xb5')](_0x2fda5c['where'],{'$or':_['map'](_0x2fda5c[_0xbab1('0x40')],function(_0x101433){var _0x5a0eca={};_0x5a0eca[_0x101433]={'$like':'%'+_0x31190f[_0xbab1('0x3d')][_0xbab1('0x87')]+'%'};return _0x5a0eca;})});}if(_0x31190f[_0xbab1('0x3d')]['$gte']){var _0x41bf6f=_0x31190f[_0xbab1('0x3d')][_0xbab1('0x7d')][_0xbab1('0x35')](',');var _0x1709d0={};_0x1709d0[_0x41bf6f[0x0]]={'$gte':moment(_0x41bf6f[0x1])['format'](_0xbab1('0xc2'))};_0x2fda5c[_0xbab1('0x78')]=_['merge'](_0x2fda5c[_0xbab1('0x78')],_0x1709d0);}_0x2fda5c=_[_0xbab1('0xb5')]({},_0x2fda5c,_0x31190f[_0xbab1('0xb6')]);return db['OpenchannelMessage'][_0xbab1('0x27')]({'where':_0x2fda5c[_0xbab1('0x78')]})[_0xbab1('0x2d')](function(_0x3b72a0){_0x1182a7[_0xbab1('0x27')]=_0x3b72a0;if(_0x31190f[_0xbab1('0x3d')][_0xbab1('0xc3')]){_0x2fda5c[_0xbab1('0xc4')]=[{'all':!![]}];}return db[_0xbab1('0xbb')][_0xbab1('0xc5')](_0x2fda5c);})[_0xbab1('0x2d')](function(_0x1fa914){_0x1182a7[_0xbab1('0xb2')]=_0x1fa914;return _0x1182a7;});}})['then'](respondWithFilteredResult(_0x511dbe,_0x2fda5c))[_0xbab1('0x37')](handleError(_0x511dbe,null));};exports[_0xbab1('0xc6')]=function(_0x3620ee,_0x370c0f,_0x4e7d8f){return db[_0xbab1('0x38')][_0xbab1('0x70')]({'where':{'id':_0x3620ee[_0xbab1('0xb4')]['id']}})[_0xbab1('0x2d')](handleEntityNotFound(_0x370c0f,null))[_0xbab1('0x2d')](function(_0x7c39f8){if(_0x7c39f8){return _0x7c39f8[_0xbab1('0xc7')](_0x3620ee['body'][_0xbab1('0xbc')],_[_0xbab1('0xbd')](_0x3620ee[_0xbab1('0xb8')],[_0xbab1('0xbc'),'id'])||{})[_0xbab1('0xc8')](function(){return db[_0xbab1('0x6c')][_0xbab1('0xc5')]({'attributes':['id',_0xbab1('0x2f'),_0xbab1('0x49')],'where':{'id':_0x3620ee[_0xbab1('0xb8')][_0xbab1('0xbc')]}});})[_0xbab1('0x2d')](function(_0x1f0e7d){socket['emit']('openchannelInteractionTags:save',{'id':Number(_0x3620ee[_0xbab1('0xb4')]['id']),'tags':_0x1f0e7d||[]});return{'id':Number(_0x3620ee[_0xbab1('0xb4')]['id']),'tags':_0x1f0e7d||[]};});}})[_0xbab1('0x2d')](respondWithResult(_0x370c0f,null))[_0xbab1('0x37')](handleError(_0x370c0f,null));};exports[_0xbab1('0xc9')]=function(_0x4a6cc1,_0x5ee6d0,_0x235fda){return db['OpenchannelInteraction'][_0xbab1('0x70')]({'where':{'id':_0x4a6cc1['params']['id']}})[_0xbab1('0x2d')](handleEntityNotFound(_0x5ee6d0,null))[_0xbab1('0x2d')](function(_0x190b9b){if(_0x190b9b){return _0x190b9b['removeTags'](_0x4a6cc1['query']['ids']);}})[_0xbab1('0x2d')](respondWithStatusCode(_0x5ee6d0,null))['catch'](handleError(_0x5ee6d0,null));};exports[_0xbab1('0xca')]=function(_0x5bcafe,_0xd4120d){var _0x4b0b25=moment()['unix']()[_0xbab1('0x9d')]();var _0x15205a=path[_0xbab1('0xcb')](config['root'],_0xbab1('0xcc'),_0xbab1('0xcd'),'tmp');var _0xb0e0bb=path[_0xbab1('0xcb')](config['root'],'server',_0xbab1('0xcd'),_0xbab1('0xce'));var _0x45f1ed=path[_0xbab1('0xcb')](_0x15205a,_0x4b0b25);var _0x4f1685=util[_0xbab1('0xcf')](_0xbab1('0xd0'),_0x5bcafe['params']['id'],_0x4b0b25);var _0x1719c9=path[_0xbab1('0xcb')](_0x15205a,_0x4f1685);var _0x1bf132=[];_0x1bf132[_0xbab1('0x36')]({'model':db[_0xbab1('0xd1')],'as':_0xbab1('0xd1'),'attributes':['id',_0xbab1('0x32')],'raw':!![]});_0x1bf132['push']({'model':db[_0xbab1('0xd2')],'as':_0xbab1('0x65'),'attributes':['id','firstName','lastName'],'raw':!![]});if(_0x5bcafe[_0xbab1('0x3d')][_0xbab1('0xce')]){_0x1bf132[_0xbab1('0x36')]({'model':db['Attachment'],'as':_0xbab1('0xd3'),'raw':!![]});}var _0x41feb1=[{'model':db[_0xbab1('0xbb')],'as':_0xbab1('0xd4'),'attributes':['id',_0xbab1('0xb8'),_0xbab1('0x7b'),_0xbab1('0xd5'),_0xbab1('0xd6'),_0xbab1('0x82')],'include':_0x1bf132}];_0x41feb1[_0xbab1('0x36')]({'model':db[_0xbab1('0xd7')],'as':'Account','attributes':['id',_0xbab1('0x2f')]});_0x41feb1['push']({'model':db[_0xbab1('0xd1')],'as':'Owner','attributes':['id',_0xbab1('0x32')]});return db[_0xbab1('0x38')][_0xbab1('0x70')]({'where':{'id':_0x5bcafe[_0xbab1('0xb4')]['id']},'include':_0x41feb1})['then'](handleEntityNotFound(_0xd4120d,null))[_0xbab1('0x2d')](function(_0x48ccac){if(_0x48ccac){var _0x13a344=_0x48ccac[_0xbab1('0xd8')]({'plain':!![]});fs[_0xbab1('0xd9')](_0x45f1ed);var _0x2c2f32={'channel':_0xbab1('0xda'),'account':_0x13a344[_0xbab1('0xdb')][_0xbab1('0x2f')],'agent':_0x13a344['Owner']?_0x13a344[_0xbab1('0xdc')]['fullname']:_0xbab1('0xdd'),'createdAt':moment(_0x13a344[_0xbab1('0x7b')])[_0xbab1('0xcf')](_0xbab1('0xc2'))[_0xbab1('0x9d')](),'closedAt':_0x13a344[_0xbab1('0xde')]?moment(_0x13a344[_0xbab1('0xdf')])[_0xbab1('0xcf')](_0xbab1('0xc2'))[_0xbab1('0x9d')]():'','disposition':_0x13a344[_0xbab1('0xe0')],'visibility':_0x13a344[_0xbab1('0xe1')]?_0xbab1('0xe2'):_0xbab1('0xe3'),'messages':_(_0x13a344[_0xbab1('0xd4')])[_0xbab1('0x87')]({'secret':![]})[_0xbab1('0x31')](function(_0x430c52){if(_0x430c52['Attachment']){var _0x304328=path[_0xbab1('0xcb')](_0xb0e0bb,_0x430c52[_0xbab1('0xd3')][_0xbab1('0xe4')]);if(fs[_0xbab1('0xe5')](_0x304328)){fs['createReadStream'](_0x304328)[_0xbab1('0xe6')](fs['createWriteStream'](path[_0xbab1('0xcb')](_0x45f1ed,_0x430c52[_0xbab1('0xd3')][_0xbab1('0xe4')])));}}return{'date':moment(_0x430c52['createdAt'])[_0xbab1('0xcf')](_0xbab1('0xc2'))['toString'](),'sender':_0x430c52['direction']===_0xbab1('0xe7')?_0x430c52[_0xbab1('0xd1')]?_0x430c52[_0xbab1('0xd1')][_0xbab1('0x32')]:_0xbab1('0xe8'):_0x430c52[_0xbab1('0x65')][_0xbab1('0xe9')]+(_0x430c52[_0xbab1('0x65')][_0xbab1('0xea')]?'\x20'+_0x430c52[_0xbab1('0x65')][_0xbab1('0xea')]:''),'body':_0x430c52['Attachment']?_0x430c52[_0xbab1('0xd3')]['basename']:_0x430c52[_0xbab1('0xb8')],'direction':_0x430c52[_0xbab1('0xd5')]===_0xbab1('0xe7')?'A':'C','secret':_0x430c52[_0xbab1('0xd6')],'read':_0x430c52[_0xbab1('0x82')],'attachment':_0x430c52[_0xbab1('0xd3')]};})[_0xbab1('0x61')]()};return ejs['renderFile'](path[_0xbab1('0xcb')](config[_0xbab1('0xeb')],_0xbab1('0xcc'),_0xbab1('0xec'),'downloadInteraction.ejs'),{'interaction':_0x2c2f32})[_0xbab1('0x2d')](function(_0x5e73cc){var _0x19bfb5=path[_0xbab1('0xcb')](_0x45f1ed,'transcript-'+_0x13a344['id']+'-'+_0x4b0b25+'.pdf');var _0x1e3446={'path':_0x19bfb5,'channel':'Openchannel','interactionId':_0x13a344['id']};return pdf[_0xbab1('0xed')](_0x5e73cc,_0x1e3446);})['then'](function(){return new BPromise(function(_0x9659f1,_0x3e5e33){zipdir(_0x45f1ed,{'saveTo':_0x1719c9},function(_0x36476d,_0x17d0b4){if(_0x36476d)return _0x3e5e33(_0x36476d);return _0x9659f1(_0x17d0b4);});})[_0xbab1('0x2d')](function(){return new BPromise(function(_0x542717,_0x10f284){rimraf(_0x45f1ed,function(_0x29983b){if(_0x29983b)_0x10f284(_0x29983b);return _0x542717();});});})['then'](function(){return _0xd4120d[_0xbab1('0xca')](_0x1719c9,_0x4f1685,function(_0x315476){if(_0x315476){console['log']('err',_0x315476);}else{fs['unlinkSync'](_0x1719c9);}});});});}else{return _0xd4120d[_0xbab1('0x20')](0xc8);}})[_0xbab1('0x37')](handleError(_0xd4120d,null));};
\ No newline at end of file
+var _0xd5ed=['querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../components/export/pdf','../../config/license/hardware','api','../../config/utils','../../config/environment','../../mysqldb','redis','defaults','localhost','./openchannelInteraction.socket','register','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','then','destroy','sendStatus','error','stack','send','Users','map','fullname','TagIds','Tags','push','catch','index','OpenchannelInteraction','rawAttributes','fieldName','type','model','name','query','intersection','attributes','fields','length','hasOwnProperty','sort','where','filters','pick','select','field','color','from','tools_tags','u.fullname','ui.OpenchannelInteractionId','user_has_openchannel_interactions','left_join','u.id\x20=\x20ui.UserId','openchannel_interactions','cm_contacts','users','o.id\x20=\x20i.UserId','openchannel_accounts','openchannel_interaction_has_tags','it.OpenchannelInteractionId\x20=\x20i.id','t.id\x20=\x20it.TagId','expr','parseSearch','search','sqlOperator','conditions','find','unreadMessages','value','having','`\x20=\x200','`\x20>\x200','Contact','$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','forEach','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','User','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','UserId','body','keys','isEmpty','i.OpenchannelAccountId\x20IN\x20?','concat','createdAt','parse','$gte','$lte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','\x20IS\x20NULL','\x20=\x20?','`unreadMessages`\x20=\x200','`unreadMessages`\x20>\x200','tag','isArray','filter','replace','isNumeric','i.id\x20LIKE\x20?','MATCH\x20(me.body)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','i.from\x20LIKE\x20?','CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?','Sequelize','QueryTypes','SELECT','clone','i.id','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','order','contactName','DESC','t.id\x20IN\x20?','i.OpenchannelAccountId\x20IS\x20NOT\x20NULL','role','getOpenchannelAccounts','i.OpenchannelAccountId\x20IS\x20NULL','user','agent','OpenchannelAccountId','sequelize','toString','keyBy','merge','a.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','Contact.lastName','c.email','Contact.email','c.phone','Contact.phone','Contact.mobile','Contact.fax','Owner.fullname','o.internal','Owner.internal','OpenchannelInteractionId','show','params','includeAll','include','options','create','describe','addMessage','OpenchannelMessage','omit','ids','getMessages','nolimit','format','YYYY-MM-DD\x20HH:mm:ss','addTags','spread','Tag','findAll','emit','removeTags','download','unix','join','root','files','tmp','server','attachments','transcript-%d-%s.zip','lastName','Attachment','Messages','direction','read','OpenchannelAccount','Account','Owner','get','Openchannel','N.A.','closedAt','disposition','threadId','Public','basename','pipe','createWriteStream','out','renderFile','views','transcript-','.pdf','createPdfFromHTML','log','err','unlinkSync','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','path','fs-extra','lodash','crypto','jsforce','desk.js','to-csv'];(function(_0x3947c9,_0x4d6c97){var _0x2e7871=function(_0x1236cc){while(--_0x1236cc){_0x3947c9['push'](_0x3947c9['shift']());}};_0x2e7871(++_0x4d6c97);}(_0xd5ed,0x1c7));var _0xdd5e=function(_0x2215c5,_0x22076e){_0x2215c5=_0x2215c5-0x0;var _0x1f5e68=_0xd5ed[_0x2215c5];return _0x1f5e68;};'use strict';var emlformat=require(_0xdd5e('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xdd5e('0x1'));var jsonpatch=require(_0xdd5e('0x2'));var rp=require(_0xdd5e('0x3'));var moment=require(_0xdd5e('0x4'));var BPromise=require(_0xdd5e('0x5'));var Mustache=require('mustache');var util=require('util');var path=require(_0xdd5e('0x6'));var sox=require('sox');var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xdd5e('0x7'));var _=require(_0xdd5e('0x8'));var squel=require('squel');var crypto=require(_0xdd5e('0x9'));var jsforce=require(_0xdd5e('0xa'));var deskjs=require(_0xdd5e('0xb'));var toCsv=require(_0xdd5e('0xc'));var querystring=require(_0xdd5e('0xd'));var Papa=require(_0xdd5e('0xe'));var Redis=require(_0xdd5e('0xf'));var authService=require(_0xdd5e('0x10'));var qs=require(_0xdd5e('0x11'));var as=require(_0xdd5e('0x12'));var pdf=require(_0xdd5e('0x13'));var hardwareService=require(_0xdd5e('0x14'));var logger=require('../../config/logger')(_0xdd5e('0x15'));var utils=require(_0xdd5e('0x16'));var config=require(_0xdd5e('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0xdd5e('0x18'))['db'];config[_0xdd5e('0x19')]=_[_0xdd5e('0x1a')](config[_0xdd5e('0x19')],{'host':_0xdd5e('0x1b'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0xdd5e('0x1c'))[_0xdd5e('0x1d')](socket);function respondWithStatusCode(_0x43b11b,_0x16bb13){_0x16bb13=_0x16bb13||0xcc;return function(_0x1e9510){if(_0x1e9510){return _0x43b11b['sendStatus'](_0x16bb13);}return _0x43b11b[_0xdd5e('0x1e')](_0x16bb13)[_0xdd5e('0x1f')]();};}function respondWithResult(_0xf90f35,_0x2eba39){_0x2eba39=_0x2eba39||0xc8;return function(_0x6fe359){if(_0x6fe359){return _0xf90f35[_0xdd5e('0x1e')](_0x2eba39)[_0xdd5e('0x20')](_0x6fe359);}};}function respondWithFilteredResult(_0x560a00,_0x45dc32){return function(_0x598b3b){if(_0x598b3b){var _0x30cbce=typeof _0x45dc32[_0xdd5e('0x21')]===_0xdd5e('0x22')&&typeof _0x45dc32[_0xdd5e('0x23')]===_0xdd5e('0x22');var _0x53f452=_0x598b3b['count'];var _0x21456a=_0x30cbce?0x0:_0x45dc32['offset'];var _0x595c3f=_0x30cbce?_0x598b3b[_0xdd5e('0x24')]:_0x45dc32['offset']+_0x45dc32[_0xdd5e('0x23')];var _0xb1662f;if(_0x595c3f>=_0x53f452){_0x595c3f=_0x53f452;_0xb1662f=0xc8;}else{_0xb1662f=0xce;}_0x560a00[_0xdd5e('0x1e')](_0xb1662f);return _0x560a00[_0xdd5e('0x25')](_0xdd5e('0x26'),_0x21456a+'-'+_0x595c3f+'/'+_0x53f452)[_0xdd5e('0x20')](_0x598b3b);}return null;};}function patchUpdates(_0x29df4e){return function(_0xbd5ddb){try{jsonpatch[_0xdd5e('0x27')](_0xbd5ddb,_0x29df4e,!![]);}catch(_0x5e89b4){return BPromise[_0xdd5e('0x28')](_0x5e89b4);}return _0xbd5ddb[_0xdd5e('0x29')]();};}function saveUpdates(_0x28ad7f,_0x361e84){return function(_0x3ddd18){if(_0x3ddd18){return _0x3ddd18['update'](_0x28ad7f)[_0xdd5e('0x2a')](function(_0x5b46bf){return _0x5b46bf;});}return null;};}function removeEntity(_0x41e741,_0x373a48){return function(_0x292096){if(_0x292096){return _0x292096[_0xdd5e('0x2b')]()[_0xdd5e('0x2a')](function(){_0x41e741[_0xdd5e('0x1e')](0xcc)[_0xdd5e('0x1f')]();});}};}function handleEntityNotFound(_0x3b44b2,_0x589137){return function(_0x1490ec){if(!_0x1490ec){_0x3b44b2[_0xdd5e('0x2c')](0x194);}return _0x1490ec;};}function handleError(_0x29d415,_0x447f62){_0x447f62=_0x447f62||0x1f4;return function(_0x55d34a){logger[_0xdd5e('0x2d')](_0x55d34a[_0xdd5e('0x2e')]);if(_0x55d34a['name']){delete _0x55d34a['name'];}_0x29d415[_0xdd5e('0x1e')](_0x447f62)[_0xdd5e('0x2f')](_0x55d34a);};}function getInteractionUsers(_0x3d8025,_0x1d26e2){return new BPromise(function(_0x3188c1,_0x2d2833){try{if(_0x1d26e2[_0x3d8025['id']]){_0x3d8025[_0xdd5e('0x30')]=_[_0xdd5e('0x31')](_0x1d26e2[_0x3d8025['id']],function(_0xc57a3e){return{'id':_0xc57a3e['id'],'fullname':_0xc57a3e[_0xdd5e('0x32')]};});}}catch(_0x3c7142){_0x2d2833(_0x3c7142);}_0x3188c1(_0x3d8025);});}function getInteractionTags(_0x476f23,_0x521f18){return new BPromise(function(_0x342663,_0x2bf80c){try{if(_0x476f23[_0xdd5e('0x33')]){_0x476f23['Tags']=[];_0x476f23[_0xdd5e('0x33')]['split'](',')['forEach'](function(_0x2e2aeb){_0x476f23[_0xdd5e('0x34')][_0xdd5e('0x35')](_0x521f18[_0x2e2aeb]);});}delete _0x476f23[_0xdd5e('0x33')];}catch(_0x218f21){_0x2bf80c(_0x218f21);}_0x342663(_0x476f23);});}function updateOpenchannelInteraction(_0x4101fa,_0x10d12e,_0x23d843){return new BPromise(function(_0xa2c429,_0x98df34){return getInteractionUsers(_0x4101fa,_0x23d843)['then'](function(_0x5649b4){return getInteractionTags(_0x5649b4,_0x10d12e);})['then'](function(_0x553dac){_0xa2c429(_0x553dac);})[_0xdd5e('0x36')](function(_0x4651a4){_0x98df34(_0x4651a4);});});}exports[_0xdd5e('0x37')]=function(_0x461071,_0x4259b7){var _0x59fd82={},_0x1f36e5={},_0x440cd9={'count':0x0,'rows':[]};var _0x1f7d87=_[_0xdd5e('0x31')](db[_0xdd5e('0x38')][_0xdd5e('0x39')],function(_0x1f02ba){return{'name':_0x1f02ba[_0xdd5e('0x3a')],'type':_0x1f02ba[_0xdd5e('0x3b')]['key']};});_0x1f36e5[_0xdd5e('0x3c')]=_[_0xdd5e('0x31')](_0x1f7d87,_0xdd5e('0x3d'));_0x1f36e5[_0xdd5e('0x3e')]=_['keys'](_0x461071['query']);_0x1f36e5['filters']=_[_0xdd5e('0x3f')](_0x1f36e5[_0xdd5e('0x3c')],_0x1f36e5[_0xdd5e('0x3e')]);_0x59fd82[_0xdd5e('0x40')]=_[_0xdd5e('0x3f')](_0x1f36e5['model'],qs[_0xdd5e('0x41')](_0x461071[_0xdd5e('0x3e')]['fields']));_0x59fd82[_0xdd5e('0x40')]=_0x59fd82[_0xdd5e('0x40')][_0xdd5e('0x42')]?_0x59fd82[_0xdd5e('0x40')]:_0x1f36e5[_0xdd5e('0x3c')];if(!_0x461071[_0xdd5e('0x3e')][_0xdd5e('0x43')]('nolimit')){_0x59fd82['limit']=qs[_0xdd5e('0x23')](_0x461071[_0xdd5e('0x3e')]['limit']);_0x59fd82[_0xdd5e('0x21')]=qs[_0xdd5e('0x21')](_0x461071[_0xdd5e('0x3e')][_0xdd5e('0x21')]);}_0x59fd82['order']=qs['sort'](_0x461071[_0xdd5e('0x3e')][_0xdd5e('0x44')]);_0x59fd82[_0xdd5e('0x45')]=qs[_0xdd5e('0x46')](_[_0xdd5e('0x47')](_0x461071[_0xdd5e('0x3e')],_0x1f36e5[_0xdd5e('0x46')]),_0x1f7d87);var _0x5e1c56=[];var _0x3425ad=squel[_0xdd5e('0x48')]()[_0xdd5e('0x49')]('id')[_0xdd5e('0x49')](_0xdd5e('0x3d'))[_0xdd5e('0x49')](_0xdd5e('0x4a'))[_0xdd5e('0x4b')](_0xdd5e('0x4c'));var _0x59ce6b=squel[_0xdd5e('0x48')]()['field']('u.id')[_0xdd5e('0x49')](_0xdd5e('0x4d'))[_0xdd5e('0x49')](_0xdd5e('0x4e'))['from'](_0xdd5e('0x4f'),'ui')[_0xdd5e('0x50')]('users','u',_0xdd5e('0x51'));var _0x4427b7=squel[_0xdd5e('0x48')]()[_0xdd5e('0x4b')](_0xdd5e('0x52'),'i')[_0xdd5e('0x50')](_0xdd5e('0x53'),'c','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL')[_0xdd5e('0x50')](_0xdd5e('0x54'),'o',_0xdd5e('0x55'))[_0xdd5e('0x50')](_0xdd5e('0x56'),'a','a.id\x20=\x20i.OpenchannelAccountId')['left_join']('openchannel_messages','me','me.OpenchannelInteractionId\x20=\x20i.id')[_0xdd5e('0x50')](_0xdd5e('0x57'),'it',_0xdd5e('0x58'))[_0xdd5e('0x50')](_0xdd5e('0x4c'),'t',_0xdd5e('0x59'));var _0x82c90c=squel[_0xdd5e('0x5a')]();var _0x14f062=[];var _0x585af6=squel[_0xdd5e('0x5a')]();var _0x2365e7;if(_0x461071['query']['search']){_0x2365e7=as[_0xdd5e('0x5b')](_0x461071[_0xdd5e('0x3e')][_0xdd5e('0x5c')]);var _0x18acad=_0x2365e7[_0xdd5e('0x5d')];for(var _0x32ac85=0x0;_0x32ac85<_0x2365e7[_0xdd5e('0x5e')]['length'];_0x32ac85++){var _0x52fe09=_0x2365e7[_0xdd5e('0x5e')][_0x32ac85];var _0x3b76d8='i';var _0x43bf83=_[_0xdd5e('0x5f')](_0x1f7d87,['name',_0x52fe09['field']]);if(!_0x43bf83){switch(_0x52fe09[_0xdd5e('0x49')]){case _0xdd5e('0x60'):if(_0x52fe09[_0xdd5e('0x61')]==0x1){_0x4427b7[_0xdd5e('0x62')]('`'+_0x52fe09[_0xdd5e('0x49')]+_0xdd5e('0x63'));}else{_0x4427b7[_0xdd5e('0x62')]('`'+_0x52fe09['field']+_0xdd5e('0x64'));}break;case _0xdd5e('0x65'):if(_0x52fe09['operator']===_0xdd5e('0x66')){if(_0x52fe09[_0xdd5e('0x61')][_0xdd5e('0x67')]('\x20')[_0xdd5e('0x42')]>0x1){_0x82c90c[_0x18acad](_0xdd5e('0x68'),qs[_0xdd5e('0x69')](_0x52fe09[_0xdd5e('0x61')]),null);}else{var _0x3b16f1='%'+_0x52fe09[_0xdd5e('0x61')]+'%';_0x82c90c[_0x18acad]('c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?',_0x3b16f1,_0x3b16f1,_0x3b16f1);}}else{_0x43bf83=_['find'](_0x1f7d87,[_0xdd5e('0x3d'),_0xdd5e('0x6a')]);_0x52fe09[_0xdd5e('0x49')]=_0xdd5e('0x6a');_0xd303bd=as[_0xdd5e('0x6b')](_0x3b76d8,_0x43bf83[_0xdd5e('0x3b')],_0x52fe09);_0x82c90c[_0x18acad](_0xd303bd[_0xdd5e('0x6c')],_0xd303bd['value'][_0xdd5e('0x6d')],_0xd303bd[_0xdd5e('0x61')]['end']);}break;case'Tag':var _0x568149=_0x52fe09[_0xdd5e('0x61')][_0xdd5e('0x67')](',')[_0xdd5e('0x31')](function(_0x124f67){return Number(_0x124f67);});_0x568149[_0xdd5e('0x6e')](function(_0x27ef6c){_0x585af6['or'](_0xdd5e('0x6f'),'%,'+_0x27ef6c+',%');});_0x14f062=_['union'](_0x14f062,_0x568149);break;case _0xdd5e('0x70'):if(_0x52fe09['operator']==='$substring'){_0x82c90c[_0x18acad](_0xdd5e('0x71'),'%'+_0x52fe09['value']+'%',null);}else{_0x43bf83=_[_0xdd5e('0x5f')](_0x1f7d87,[_0xdd5e('0x3d'),_0xdd5e('0x72')]);_0x52fe09['field']=_0xdd5e('0x72');_0xd303bd=as[_0xdd5e('0x6b')](_0x3b76d8,_0x43bf83['type'],_0x52fe09);_0x82c90c[_0x18acad](_0xd303bd[_0xdd5e('0x6c')],_0xd303bd[_0xdd5e('0x61')][_0xdd5e('0x6d')],_0xd303bd[_0xdd5e('0x61')][_0xdd5e('0x1f')]);}break;case _0xdd5e('0x73'):_0xd303bd=as[_0xdd5e('0x6b')]('me',null,_0x52fe09);_0x82c90c[_0x18acad](_0xd303bd[_0xdd5e('0x6c')],_0xd303bd['value'][_0xdd5e('0x6d')],_0xd303bd['value'][_0xdd5e('0x1f')]);break;}}else{var _0xd303bd=as['buildExpression'](_0x3b76d8,_0x43bf83[_0xdd5e('0x3b')],_0x52fe09);_0x82c90c[_0x18acad](_0xd303bd[_0xdd5e('0x6c')],_0xd303bd[_0xdd5e('0x61')][_0xdd5e('0x6d')],_0xd303bd[_0xdd5e('0x61')][_0xdd5e('0x1f')]);}}}else{var _0x4fdbc6=_(_0x461071[_0xdd5e('0x3e')])[_0xdd5e('0x74')]()['map'](function(_0x2ee87e){return _['some'](_0x1f7d87,['name',_0x2ee87e])?_0x2ee87e:undefined;})['compact']()[_0xdd5e('0x61')]();if(!_[_0xdd5e('0x75')](_0x4fdbc6)){_0x4fdbc6['forEach'](function(_0x14f0e4){if(_0x14f0e4==='OpenchannelAccountId'){_0x4427b7[_0xdd5e('0x45')](_0xdd5e('0x76'),[][_0xdd5e('0x77')](_0x461071[_0xdd5e('0x3e')][_0x14f0e4]));}else if(_0x14f0e4===_0xdd5e('0x78')){var _0x3a5591=JSON[_0xdd5e('0x79')](_0x461071[_0xdd5e('0x3e')][_0x14f0e4])[_0xdd5e('0x7a')];var _0x54062d=JSON['parse'](_0x461071['query'][_0x14f0e4])[_0xdd5e('0x7b')];_0x4427b7[_0xdd5e('0x45')](_0xdd5e('0x7c'),_0x3a5591,_0x54062d);}else{if(_0x461071['query'][_0x14f0e4]===_0xdd5e('0x7d')){_0x4427b7[_0xdd5e('0x45')]('i.'+_0x14f0e4+_0xdd5e('0x7e'));}else{_0x4427b7[_0xdd5e('0x45')]('i.'+_0x14f0e4+_0xdd5e('0x7f'),_0x461071[_0xdd5e('0x3e')][_0x14f0e4]);}}});}if(_0x461071[_0xdd5e('0x3e')]['read']){if(_0x461071['query']['read']==0x1){_0x4427b7[_0xdd5e('0x62')](_0xdd5e('0x80'));}else{_0x4427b7['having'](_0xdd5e('0x81'));}}if(_0x461071[_0xdd5e('0x3e')][_0xdd5e('0x82')]){_0x14f062=_[_0xdd5e('0x83')](_0x461071['query']['tag'])?_0x461071['query']['tag']:new Array(_0x461071[_0xdd5e('0x3e')][_0xdd5e('0x82')]);_0x14f062[_0xdd5e('0x6e')](function(_0x3a082c){_0x585af6['or'](_0xdd5e('0x6f'),'%,'+_0x3a082c+',%');});}if(_0x461071['query'][_0xdd5e('0x84')]){var _0x584d81=_0x461071['query']['filter'][_0xdd5e('0x85')]('\x5c','\x5c\x5c')[_0xdd5e('0x85')](/'/g,'\x27\x27');if(qs[_0xdd5e('0x86')](_0x584d81)){_0x82c90c['or'](_0xdd5e('0x87'),_0x584d81+'%');}else{_0x82c90c['or'](_0xdd5e('0x88'),qs['getFullTextValue'](_0x584d81))['or'](_0xdd5e('0x89'),_0x584d81+'%')['or'](_0xdd5e('0x8a'),_0x584d81+'%');}}}_0x4427b7[_0xdd5e('0x45')](_0x82c90c);_0x4427b7['group']('i.id');var _0x3b19c7={'type':db[_0xdd5e('0x8b')][_0xdd5e('0x8c')][_0xdd5e('0x8d')],'raw':!![]};var _0x4aef5a=_0x4427b7[_0xdd5e('0x8e')]();_0x4aef5a['field'](_0xdd5e('0x8f'));_0x4aef5a[_0xdd5e('0x49')](_0xdd5e('0x90'),_0xdd5e('0x60'));if(_0x59fd82[_0xdd5e('0x91')]){_0x59fd82[_0xdd5e('0x91')][_0xdd5e('0x6e')](function(_0x1f31d7){var _0x101938=_0x1f31d7[0x0]===_0xdd5e('0x92')?_0x1f31d7[0x0]:'i.'+_0x1f31d7[0x0];_0x4427b7[_0xdd5e('0x91')](_0x101938,_0x1f31d7[0x1]===_0xdd5e('0x93')?![]:!![]);});}if(!_[_0xdd5e('0x75')](_0x14f062)){_0x4427b7['having'](_0x585af6);_0x4aef5a[_0xdd5e('0x45')](_0xdd5e('0x94'),_0x14f062);}BPromise['resolve']()[_0xdd5e('0x2a')](function(){if(!_0x2365e7){if(_0x461071['query']['OpenchannelAccountId'])return;_0x4aef5a[_0xdd5e('0x45')](_0xdd5e('0x95'));_0x4427b7[_0xdd5e('0x45')](_0xdd5e('0x95'));return;}if(_0x461071['user'][_0xdd5e('0x96')]!=='agent')return;return _0x461071['user'][_0xdd5e('0x97')]({'attributes':['id'],'raw':!![]})[_0xdd5e('0x2a')](function(_0xf30c8b){if(_[_0xdd5e('0x75')](_0xf30c8b)){_0x4aef5a['where'](_0xdd5e('0x98'));_0x4427b7[_0xdd5e('0x45')]('i.OpenchannelAccountId\x20IS\x20NULL');}else{_0x4aef5a[_0xdd5e('0x45')](_0xdd5e('0x76'),_['map'](_0xf30c8b,'id'));_0x4427b7[_0xdd5e('0x45')]('i.OpenchannelAccountId\x20IN\x20?',_[_0xdd5e('0x31')](_0xf30c8b,'id'));}});})[_0xdd5e('0x2a')](function(){if(_0x461071[_0xdd5e('0x99')]['role']===_0xdd5e('0x9a')&&!_0x2365e7&&!_0x461071[_0xdd5e('0x3e')][_0xdd5e('0x9b')])return[];return db[_0xdd5e('0x9c')]['query'](_0x4aef5a[_0xdd5e('0x9d')](),_0x3b19c7);})[_0xdd5e('0x2a')](function(_0x5156ab){_0x440cd9[_0xdd5e('0x24')]=_0x5156ab[_0xdd5e('0x42')];if(_0x440cd9['count']===0x0)return[];return db[_0xdd5e('0x9c')][_0xdd5e('0x3e')](_0x3425ad[_0xdd5e('0x9d')](),_0x3b19c7)[_0xdd5e('0x2a')](function(_0x4a6ce1){_0x5e1c56=_[_0xdd5e('0x9e')](_0x4a6ce1,'id');_0x3b19c7=_[_0xdd5e('0x9f')](_0x3b19c7,{'model':db[_0xdd5e('0x38')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x461071[_0xdd5e('0x3e')][_0xdd5e('0x41')]){_0x59fd82['attributes'][_0xdd5e('0x6e')](function(_0x1f7d80){_0x4427b7[_0xdd5e('0x49')]('i.'+_0x1f7d80);});}else{_0x4427b7[_0xdd5e('0x49')](_0xdd5e('0x90'),_0xdd5e('0x60'));_0x4427b7[_0xdd5e('0x49')](_0xdd5e('0xa0'),'Account.key');_0x4427b7[_0xdd5e('0x49')](_0xdd5e('0xa1'),'Account.mandatoryDisposition');_0x4427b7[_0xdd5e('0x49')](_0xdd5e('0xa2'),_0xdd5e('0x92'));_0x4427b7[_0xdd5e('0x49')](_0xdd5e('0xa3'));_0x4427b7['field'](_0xdd5e('0xa4'),_0xdd5e('0xa5'));_0x4427b7[_0xdd5e('0x49')]('c.lastName',_0xdd5e('0xa6'));_0x4427b7[_0xdd5e('0x49')](_0xdd5e('0xa7'),_0xdd5e('0xa8'));_0x4427b7[_0xdd5e('0x49')](_0xdd5e('0xa9'),_0xdd5e('0xaa'));_0x4427b7[_0xdd5e('0x49')]('c.mobile',_0xdd5e('0xab'));_0x4427b7[_0xdd5e('0x49')]('c.fax',_0xdd5e('0xac'));_0x4427b7['field']('o.fullname',_0xdd5e('0xad'));_0x4427b7['field'](_0xdd5e('0xae'),_0xdd5e('0xaf'));_0x4427b7[_0xdd5e('0x49')]('GROUP_CONCAT(DISTINCT\x20t.id)','TagIds');}if(_0x59fd82[_0xdd5e('0x23')])_0x4427b7['limit'](_0x59fd82[_0xdd5e('0x23')]);if(_0x59fd82[_0xdd5e('0x21')])_0x4427b7[_0xdd5e('0x21')](_0x59fd82[_0xdd5e('0x21')]);return db[_0xdd5e('0x9c')][_0xdd5e('0x3e')](_0x4427b7[_0xdd5e('0x9d')](),_0x3b19c7);})['then'](function(_0x15a5ec){if(_0x15a5ec[_0xdd5e('0x42')]>0x0)_0x59ce6b[_0xdd5e('0x45')]('ui.OpenchannelInteractionId\x20IN\x20?',_['map'](_0x15a5ec,'id'));return db[_0xdd5e('0x9c')]['query'](_0x59ce6b[_0xdd5e('0x9d')](),_0x3b19c7)['then'](function(_0x321612){var _0x5cdce6=_['groupBy'](_0x321612,_0xdd5e('0xb0'));var _0x25577c=[];_0x15a5ec[_0xdd5e('0x6e')](function(_0x3597a9){_0x25577c[_0xdd5e('0x35')](updateOpenchannelInteraction(_0x3597a9,_0x5e1c56,_0x5cdce6));});return BPromise['all'](_0x25577c);});});})[_0xdd5e('0x2a')](function(_0x27f073){_0x440cd9['rows']=_0x27f073;return _0x440cd9;})[_0xdd5e('0x2a')](respondWithFilteredResult(_0x4259b7,_0x59fd82))[_0xdd5e('0x36')](handleError(_0x4259b7,null));};exports[_0xdd5e('0xb1')]=function(_0x432486,_0x3d00bc){var _0x4cb4e6={};if(_0x432486['query'][_0xdd5e('0x3b')]&&_0x432486[_0xdd5e('0x3e')][_0xdd5e('0x3b')]===_0xdd5e('0x4b')){_0x4cb4e6[_0xdd5e('0x4b')]=_0x432486[_0xdd5e('0xb2')]['id'];}else{_0x4cb4e6['id']=_0x432486[_0xdd5e('0xb2')]['id'];}var _0x3184c0={'raw':![],'where':_0x4cb4e6},_0x4c521b={};_0x4c521b[_0xdd5e('0x3c')]=_[_0xdd5e('0x74')](db[_0xdd5e('0x38')][_0xdd5e('0x39')]);_0x4c521b['query']=_[_0xdd5e('0x74')](_0x432486[_0xdd5e('0x3e')]);_0x4c521b[_0xdd5e('0x46')]=_['intersection'](_0x4c521b[_0xdd5e('0x3c')],_0x4c521b[_0xdd5e('0x3e')]);_0x3184c0[_0xdd5e('0x40')]=_['intersection'](_0x4c521b['model'],qs[_0xdd5e('0x41')](_0x432486[_0xdd5e('0x3e')][_0xdd5e('0x41')]));_0x3184c0[_0xdd5e('0x40')]=_0x3184c0[_0xdd5e('0x40')][_0xdd5e('0x42')]?_0x3184c0['attributes']:_0x4c521b[_0xdd5e('0x3c')];if(_0x432486[_0xdd5e('0x3e')][_0xdd5e('0xb3')]){_0x3184c0[_0xdd5e('0xb4')]=[{'all':!![]}];}_0x3184c0=_[_0xdd5e('0x9f')]({},_0x3184c0,_0x432486[_0xdd5e('0xb5')]);return db[_0xdd5e('0x38')]['find'](_0x3184c0)[_0xdd5e('0x2a')](handleEntityNotFound(_0x3d00bc,null))['then'](respondWithResult(_0x3d00bc,null))[_0xdd5e('0x36')](handleError(_0x3d00bc,null));};exports[_0xdd5e('0xb6')]=function(_0x1c4981,_0x501aed){return db[_0xdd5e('0x38')][_0xdd5e('0xb6')](_0x1c4981['body'],{})[_0xdd5e('0x2a')](respondWithResult(_0x501aed,0xc9))[_0xdd5e('0x36')](handleError(_0x501aed,null));};exports['update']=function(_0x1f50e6,_0x2ad629){if(_0x1f50e6[_0xdd5e('0x73')]['id']){delete _0x1f50e6['body']['id'];}return db[_0xdd5e('0x38')][_0xdd5e('0x5f')]({'where':{'id':_0x1f50e6['params']['id']}})['then'](handleEntityNotFound(_0x2ad629,null))[_0xdd5e('0x2a')](saveUpdates(_0x1f50e6[_0xdd5e('0x73')],null))[_0xdd5e('0x2a')](respondWithResult(_0x2ad629,null))[_0xdd5e('0x36')](handleError(_0x2ad629,null));};exports[_0xdd5e('0x2b')]=function(_0x3ddd72,_0x35d4b5){return db[_0xdd5e('0x38')][_0xdd5e('0x5f')]({'where':{'id':_0x3ddd72[_0xdd5e('0xb2')]['id']}})[_0xdd5e('0x2a')](handleEntityNotFound(_0x35d4b5,null))[_0xdd5e('0x2a')](removeEntity(_0x35d4b5,null))[_0xdd5e('0x36')](handleError(_0x35d4b5,null));};exports[_0xdd5e('0xb7')]=function(_0x5e4cf2,_0x503049){return db[_0xdd5e('0x38')][_0xdd5e('0xb7')]()[_0xdd5e('0x2a')](respondWithResult(_0x503049,null))[_0xdd5e('0x36')](handleError(_0x503049,null));};exports[_0xdd5e('0xb8')]=function(_0xaebea2,_0xbcaf6c,_0x491551){return db[_0xdd5e('0xb9')][_0xdd5e('0x5f')]({'where':{'id':_0xaebea2[_0xdd5e('0xb2')]['id']}})[_0xdd5e('0x2a')](handleEntityNotFound(_0xbcaf6c,null))[_0xdd5e('0x2a')](function(_0x3808bc){if(_0x3808bc){return _0x3808bc['addMessage'](_0xaebea2[_0xdd5e('0x73')]['ids'],_[_0xdd5e('0xba')](_0xaebea2[_0xdd5e('0x73')],[_0xdd5e('0xbb'),'id'])||{});}})['then'](respondWithResult(_0xbcaf6c,null))[_0xdd5e('0x36')](handleError(_0xbcaf6c,null));};exports[_0xdd5e('0xbc')]=function(_0x988134,_0xb53fb6,_0x4b23c2){var _0x2d74a0={'raw':![],'where':{}};var _0x3085af={};var _0x24518e={'count':0x0,'rows':[]};return db[_0xdd5e('0x38')]['findOne']({'where':{'id':_0x988134[_0xdd5e('0xb2')]['id']}})[_0xdd5e('0x2a')](handleEntityNotFound(_0xb53fb6,null))[_0xdd5e('0x2a')](function(_0x5424c1){if(_0x5424c1){_0x3085af[_0xdd5e('0x3c')]=_[_0xdd5e('0x74')](db[_0xdd5e('0xb9')][_0xdd5e('0x39')]);_0x3085af[_0xdd5e('0x3e')]=_['keys'](_0x988134[_0xdd5e('0x3e')]);_0x3085af['filters']=_['intersection'](_0x3085af[_0xdd5e('0x3c')],_0x3085af[_0xdd5e('0x3e')]);_0x2d74a0[_0xdd5e('0x40')]=_[_0xdd5e('0x3f')](_0x3085af['model'],qs['fields'](_0x988134['query'][_0xdd5e('0x41')]));_0x2d74a0['attributes']=_0x2d74a0['attributes'][_0xdd5e('0x42')]?_0x2d74a0[_0xdd5e('0x40')]:_0x3085af['model'];if(!_0x988134[_0xdd5e('0x3e')][_0xdd5e('0x43')](_0xdd5e('0xbd'))){_0x2d74a0[_0xdd5e('0x23')]=qs[_0xdd5e('0x23')](_0x988134['query'][_0xdd5e('0x23')]);_0x2d74a0[_0xdd5e('0x21')]=qs[_0xdd5e('0x21')](_0x988134['query'][_0xdd5e('0x21')]);}_0x2d74a0['order']=qs[_0xdd5e('0x44')](_0x988134[_0xdd5e('0x3e')]['sort']);_0x2d74a0[_0xdd5e('0x45')]=qs['filters'](_[_0xdd5e('0x47')](_0x988134[_0xdd5e('0x3e')],_0x3085af[_0xdd5e('0x46')]));_0x2d74a0['where'][_0xdd5e('0xb0')]=_0x5424c1['id'];if(_0x988134[_0xdd5e('0x3e')][_0xdd5e('0x84')]){_0x2d74a0[_0xdd5e('0x45')]=_[_0xdd5e('0x9f')](_0x2d74a0[_0xdd5e('0x45')],{'$or':_[_0xdd5e('0x31')](_0x2d74a0[_0xdd5e('0x40')],function(_0x46b83d){var _0x28929b={};_0x28929b[_0x46b83d]={'$like':'%'+_0x988134[_0xdd5e('0x3e')][_0xdd5e('0x84')]+'%'};return _0x28929b;})});}if(_0x988134['query'][_0xdd5e('0x7a')]){var _0x522d21=_0x988134[_0xdd5e('0x3e')][_0xdd5e('0x7a')][_0xdd5e('0x67')](',');var _0x244473={};_0x244473[_0x522d21[0x0]]={'$gte':moment(_0x522d21[0x1])[_0xdd5e('0xbe')](_0xdd5e('0xbf'))};_0x2d74a0[_0xdd5e('0x45')]=_[_0xdd5e('0x9f')](_0x2d74a0['where'],_0x244473);}_0x2d74a0=_[_0xdd5e('0x9f')]({},_0x2d74a0,_0x988134[_0xdd5e('0xb5')]);return db['OpenchannelMessage'][_0xdd5e('0x24')]({'where':_0x2d74a0[_0xdd5e('0x45')]})[_0xdd5e('0x2a')](function(_0x553694){_0x24518e[_0xdd5e('0x24')]=_0x553694;if(_0x988134[_0xdd5e('0x3e')][_0xdd5e('0xb3')]){_0x2d74a0[_0xdd5e('0xb4')]=[{'all':!![]}];}return db['OpenchannelMessage']['findAll'](_0x2d74a0);})['then'](function(_0x612075){_0x24518e['rows']=_0x612075;return _0x24518e;});}})[_0xdd5e('0x2a')](respondWithFilteredResult(_0xb53fb6,_0x2d74a0))[_0xdd5e('0x36')](handleError(_0xb53fb6,null));};exports[_0xdd5e('0xc0')]=function(_0x35f43b,_0x283121,_0xb57b7d){return db[_0xdd5e('0x38')][_0xdd5e('0x5f')]({'where':{'id':_0x35f43b[_0xdd5e('0xb2')]['id']}})[_0xdd5e('0x2a')](handleEntityNotFound(_0x283121,null))[_0xdd5e('0x2a')](function(_0x5102a0){if(_0x5102a0){return _0x5102a0['setTags'](_0x35f43b[_0xdd5e('0x73')]['ids'],_[_0xdd5e('0xba')](_0x35f43b[_0xdd5e('0x73')],['ids','id'])||{})[_0xdd5e('0xc1')](function(){return db[_0xdd5e('0xc2')][_0xdd5e('0xc3')]({'attributes':['id',_0xdd5e('0x3d'),_0xdd5e('0x4a')],'where':{'id':_0x35f43b[_0xdd5e('0x73')][_0xdd5e('0xbb')]}});})['then'](function(_0x2a2785){socket[_0xdd5e('0xc4')]('openchannelInteractionTags:save',{'id':Number(_0x35f43b[_0xdd5e('0xb2')]['id']),'tags':_0x2a2785||[]});return{'id':Number(_0x35f43b[_0xdd5e('0xb2')]['id']),'tags':_0x2a2785||[]};});}})[_0xdd5e('0x2a')](respondWithResult(_0x283121,null))[_0xdd5e('0x36')](handleError(_0x283121,null));};exports['removeTags']=function(_0x4ab092,_0x508ed8,_0x36fd8c){return db['OpenchannelInteraction']['find']({'where':{'id':_0x4ab092[_0xdd5e('0xb2')]['id']}})[_0xdd5e('0x2a')](handleEntityNotFound(_0x508ed8,null))[_0xdd5e('0x2a')](function(_0x43e92c){if(_0x43e92c){return _0x43e92c[_0xdd5e('0xc5')](_0x4ab092[_0xdd5e('0x3e')]['ids']);}})[_0xdd5e('0x2a')](respondWithStatusCode(_0x508ed8,null))[_0xdd5e('0x36')](handleError(_0x508ed8,null));};exports[_0xdd5e('0xc6')]=function(_0x305d14,_0xb49e49){var _0x4998a7=moment()[_0xdd5e('0xc7')]()[_0xdd5e('0x9d')]();var _0x439d3c=path[_0xdd5e('0xc8')](config[_0xdd5e('0xc9')],'server',_0xdd5e('0xca'),_0xdd5e('0xcb'));var _0x36737f=path[_0xdd5e('0xc8')](config[_0xdd5e('0xc9')],_0xdd5e('0xcc'),_0xdd5e('0xca'),_0xdd5e('0xcd'));var _0xa79564=path[_0xdd5e('0xc8')](_0x439d3c,_0x4998a7);var _0x49f3f0=util[_0xdd5e('0xbe')](_0xdd5e('0xce'),_0x305d14[_0xdd5e('0xb2')]['id'],_0x4998a7);var _0x37b5e8=path[_0xdd5e('0xc8')](_0x439d3c,_0x49f3f0);var _0x16fea7=[];_0x16fea7['push']({'model':db[_0xdd5e('0x70')],'as':_0xdd5e('0x70'),'attributes':['id','fullname'],'raw':!![]});_0x16fea7[_0xdd5e('0x35')]({'model':db['CmContact'],'as':_0xdd5e('0x65'),'attributes':['id','firstName',_0xdd5e('0xcf')],'raw':!![]});if(_0x305d14[_0xdd5e('0x3e')][_0xdd5e('0xcd')]){_0x16fea7[_0xdd5e('0x35')]({'model':db[_0xdd5e('0xd0')],'as':_0xdd5e('0xd0'),'raw':!![]});}var _0x4288f8=[{'model':db[_0xdd5e('0xb9')],'as':_0xdd5e('0xd1'),'attributes':['id',_0xdd5e('0x73'),_0xdd5e('0x78'),_0xdd5e('0xd2'),'secret',_0xdd5e('0xd3')],'include':_0x16fea7}];_0x4288f8[_0xdd5e('0x35')]({'model':db[_0xdd5e('0xd4')],'as':_0xdd5e('0xd5'),'attributes':['id','name']});_0x4288f8['push']({'model':db[_0xdd5e('0x70')],'as':_0xdd5e('0xd6'),'attributes':['id',_0xdd5e('0x32')]});return db['OpenchannelInteraction'][_0xdd5e('0x5f')]({'where':{'id':_0x305d14[_0xdd5e('0xb2')]['id']},'include':_0x4288f8})[_0xdd5e('0x2a')](handleEntityNotFound(_0xb49e49,null))[_0xdd5e('0x2a')](function(_0x54ac4f){if(_0x54ac4f){var _0x52ed60=_0x54ac4f[_0xdd5e('0xd7')]({'plain':!![]});fs['mkdirSync'](_0xa79564);var _0x47e0ff={'channel':_0xdd5e('0xd8'),'account':_0x52ed60[_0xdd5e('0xd5')][_0xdd5e('0x3d')],'agent':_0x52ed60[_0xdd5e('0xd6')]?_0x52ed60[_0xdd5e('0xd6')]['fullname']:_0xdd5e('0xd9'),'createdAt':moment(_0x52ed60[_0xdd5e('0x78')])[_0xdd5e('0xbe')](_0xdd5e('0xbf'))[_0xdd5e('0x9d')](),'closedAt':_0x52ed60['closed']?moment(_0x52ed60[_0xdd5e('0xda')])[_0xdd5e('0xbe')](_0xdd5e('0xbf'))[_0xdd5e('0x9d')]():'','disposition':_0x52ed60[_0xdd5e('0xdb')],'visibility':_0x52ed60[_0xdd5e('0xdc')]?_0xdd5e('0xdd'):'Private','messages':_(_0x52ed60[_0xdd5e('0xd1')])['filter']({'secret':![]})[_0xdd5e('0x31')](function(_0x5926cb){if(_0x5926cb[_0xdd5e('0xd0')]){var _0x12fb8c=path[_0xdd5e('0xc8')](_0x36737f,_0x5926cb[_0xdd5e('0xd0')][_0xdd5e('0xde')]);if(fs['existsSync'](_0x12fb8c)){fs['createReadStream'](_0x12fb8c)[_0xdd5e('0xdf')](fs[_0xdd5e('0xe0')](path[_0xdd5e('0xc8')](_0xa79564,_0x5926cb[_0xdd5e('0xd0')][_0xdd5e('0xde')])));}}return{'date':moment(_0x5926cb[_0xdd5e('0x78')])['format'](_0xdd5e('0xbf'))[_0xdd5e('0x9d')](),'sender':_0x5926cb['direction']===_0xdd5e('0xe1')?_0x5926cb['User']?_0x5926cb[_0xdd5e('0x70')][_0xdd5e('0x32')]:'System':_0x5926cb[_0xdd5e('0x65')]['firstName']+(_0x5926cb[_0xdd5e('0x65')][_0xdd5e('0xcf')]?'\x20'+_0x5926cb[_0xdd5e('0x65')]['lastName']:''),'body':_0x5926cb[_0xdd5e('0xd0')]?_0x5926cb['Attachment'][_0xdd5e('0xde')]:_0x5926cb[_0xdd5e('0x73')],'direction':_0x5926cb[_0xdd5e('0xd2')]===_0xdd5e('0xe1')?'A':'C','secret':_0x5926cb['secret'],'read':_0x5926cb[_0xdd5e('0xd3')],'attachment':_0x5926cb[_0xdd5e('0xd0')]};})['value']()};return ejs[_0xdd5e('0xe2')](path[_0xdd5e('0xc8')](config[_0xdd5e('0xc9')],_0xdd5e('0xcc'),_0xdd5e('0xe3'),'downloadInteraction.ejs'),{'interaction':_0x47e0ff})[_0xdd5e('0x2a')](function(_0x429fff){var _0x276ad9=path['join'](_0xa79564,_0xdd5e('0xe4')+_0x52ed60['id']+'-'+_0x4998a7+_0xdd5e('0xe5'));var _0x100063={'path':_0x276ad9,'channel':_0xdd5e('0xd8'),'interactionId':_0x52ed60['id']};return pdf[_0xdd5e('0xe6')](_0x429fff,_0x100063);})['then'](function(){return new BPromise(function(_0x1782db,_0x20f820){zipdir(_0xa79564,{'saveTo':_0x37b5e8},function(_0x3a4afd,_0x6b2655){if(_0x3a4afd)return _0x20f820(_0x3a4afd);return _0x1782db(_0x6b2655);});})[_0xdd5e('0x2a')](function(){return new BPromise(function(_0x2696e9,_0x143655){rimraf(_0xa79564,function(_0x16611e){if(_0x16611e)_0x143655(_0x16611e);return _0x2696e9();});});})[_0xdd5e('0x2a')](function(){return _0xb49e49['download'](_0x37b5e8,_0x49f3f0,function(_0x2d970a){if(_0x2d970a){console[_0xdd5e('0xe7')](_0xdd5e('0xe8'),_0x2d970a);}else{fs[_0xdd5e('0xe9')](_0x37b5e8);}});});});}else{return _0xb49e49[_0xdd5e('0x2c')](0xc8);}})['catch'](handleError(_0xb49e49,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7415=['OpenchannelInteraction','OpenchannelMessage','setMaxListeners','save','update','remove','getUsers','Users','findAll','setDataValue','unreadMessages','length','emit','catch','hasOwnProperty','hook','exports','events','../../mysqldb'];(function(_0x58dfc6,_0x4b3d43){var _0x4d307e=function(_0x2b4d97){while(--_0x2b4d97){_0x58dfc6['push'](_0x58dfc6['shift']());}};_0x4d307e(++_0x4b3d43);}(_0x7415,0x1a0));var _0x5741=function(_0x1cb8f9,_0x31482d){_0x1cb8f9=_0x1cb8f9-0x0;var _0x152e87=_0x7415[_0x1cb8f9];return _0x152e87;};'use strict';var EventEmitter=require(_0x5741('0x0'));var OpenchannelInteraction=require(_0x5741('0x1'))['db'][_0x5741('0x2')];var OpenchannelMessage=require(_0x5741('0x1'))['db'][_0x5741('0x3')];var OpenchannelInteractionEvents=new EventEmitter();OpenchannelInteractionEvents[_0x5741('0x4')](0x0);var events={'afterCreate':_0x5741('0x5'),'afterUpdate':_0x5741('0x6'),'afterDestroy':_0x5741('0x7')};function emitEvent(_0x482922){return function(_0x8b034e,_0x4ebf67,_0x4de5e6){_0x8b034e[_0x5741('0x8')]({'attributes':['id'],'raw':!![]})['then'](function(_0x36a4d9){_0x8b034e['setDataValue'](_0x5741('0x9'),_0x36a4d9['map'](function(_0x353887){return{'id':_0x353887['id']};}));return OpenchannelMessage[_0x5741('0xa')]({'where':{'OpenchannelInteractionId':_0x8b034e['id'],'direction':'in','read':![]},'raw':!![]});})['then'](function(_0x3d06ee){_0x8b034e[_0x5741('0xb')](_0x5741('0xc'),_0x3d06ee[_0x5741('0xd')]);OpenchannelInteractionEvents[_0x5741('0xe')](_0x482922+':'+_0x8b034e['id'],_0x8b034e);OpenchannelInteractionEvents['emit'](_0x482922,_0x8b034e);_0x4de5e6(null);})[_0x5741('0xf')](_0x4de5e6(null));};}for(var e in events){if(events[_0x5741('0x10')](e)){var event=events[e];OpenchannelInteraction[_0x5741('0x11')](e,emitEvent(event));}}module[_0x5741('0x12')]=OpenchannelInteractionEvents;
\ No newline at end of file
+var _0xcf2b=['exports','events','../../mysqldb','setMaxListeners','update','remove','getUsers','then','setDataValue','Users','unreadMessages','length','emit','catch','hasOwnProperty'];(function(_0x32f26d,_0x2c0b5d){var _0x5d9ddc=function(_0x1f0e26){while(--_0x1f0e26){_0x32f26d['push'](_0x32f26d['shift']());}};_0x5d9ddc(++_0x2c0b5d);}(_0xcf2b,0x1a5));var _0xbcf2=function(_0x32e649,_0x228649){_0x32e649=_0x32e649-0x0;var _0x14d386=_0xcf2b[_0x32e649];return _0x14d386;};'use strict';var EventEmitter=require(_0xbcf2('0x0'));var OpenchannelInteraction=require(_0xbcf2('0x1'))['db']['OpenchannelInteraction'];var OpenchannelMessage=require(_0xbcf2('0x1'))['db']['OpenchannelMessage'];var OpenchannelInteractionEvents=new EventEmitter();OpenchannelInteractionEvents[_0xbcf2('0x2')](0x0);var events={'afterCreate':'save','afterUpdate':_0xbcf2('0x3'),'afterDestroy':_0xbcf2('0x4')};function emitEvent(_0x245c1a){return function(_0x274ad0,_0x127580,_0x5451a6){_0x274ad0[_0xbcf2('0x5')]({'attributes':['id'],'raw':!![]})[_0xbcf2('0x6')](function(_0x19a1d5){_0x274ad0[_0xbcf2('0x7')](_0xbcf2('0x8'),_0x19a1d5['map'](function(_0x492e80){return{'id':_0x492e80['id']};}));return OpenchannelMessage['findAll']({'where':{'OpenchannelInteractionId':_0x274ad0['id'],'direction':'in','read':![]},'raw':!![]});})[_0xbcf2('0x6')](function(_0xf730a1){_0x274ad0[_0xbcf2('0x7')](_0xbcf2('0x9'),_0xf730a1[_0xbcf2('0xa')]);OpenchannelInteractionEvents[_0xbcf2('0xb')](_0x245c1a+':'+_0x274ad0['id'],_0x274ad0);OpenchannelInteractionEvents[_0xbcf2('0xb')](_0x245c1a,_0x274ad0);_0x5451a6(null);})[_0xbcf2('0xc')](_0x5451a6(null));};}for(var e in events){if(events[_0xbcf2('0xd')](e)){var event=events[e];OpenchannelInteraction['hook'](e,emitEvent(event));}}module[_0xbcf2('0xe')]=OpenchannelInteractionEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa984=['closed','closedAt','format','YYYY-MM-DD\x20HH:mm:ss','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./openchannelInteraction.attributes','exports','openchannel_interactions','utf8mb4_unicode_ci','changed'];(function(_0x541547,_0x23079b){var _0x33adb0=function(_0x35a450){while(--_0x35a450){_0x541547['push'](_0x541547['shift']());}};_0x33adb0(++_0x23079b);}(_0xa984,0x15a));var _0x4a98=function(_0x36b535,_0x2fb432){_0x36b535=_0x36b535-0x0;var _0xd347ec=_0xa984[_0x36b535];return _0xd347ec;};'use strict';var _=require(_0x4a98('0x0'));var util=require(_0x4a98('0x1'));var logger=require(_0x4a98('0x2'))(_0x4a98('0x3'));var moment=require(_0x4a98('0x4'));var BPromise=require(_0x4a98('0x5'));var rp=require(_0x4a98('0x6'));var fs=require('fs');var path=require(_0x4a98('0x7'));var rimraf=require(_0x4a98('0x8'));var config=require(_0x4a98('0x9'));var attributes=require(_0x4a98('0xa'));module[_0x4a98('0xb')]=function(_0x35e7f4,_0x310c98){return _0x35e7f4['define']('OpenchannelInteraction',attributes,{'tableName':_0x4a98('0xc'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':'utf8mb4','collate':_0x4a98('0xd'),'hooks':{'beforeUpdate':function(_0x59e3a5,_0x62ec0,_0x4eda68){if(_0x59e3a5[_0x4a98('0xe')](_0x4a98('0xf'))){_0x59e3a5[_0x4a98('0x10')]=moment()[_0x4a98('0x11')](_0x4a98('0x12'));}_0x4eda68(null,_0x59e3a5);}}});};
\ No newline at end of file
+var _0xec03=['util','../../config/logger','api','moment','bluebird','request-promise','rimraf','exports','define','OpenchannelInteraction','utf8mb4_unicode_ci','closed','closedAt','format','YYYY-MM-DD\x20HH:mm:ss'];(function(_0x35ce23,_0x551bf5){var _0x249594=function(_0x403642){while(--_0x403642){_0x35ce23['push'](_0x35ce23['shift']());}};_0x249594(++_0x551bf5);}(_0xec03,0x96));var _0x3ec0=function(_0x4d61ac,_0x1dc587){_0x4d61ac=_0x4d61ac-0x0;var _0x5ae48b=_0xec03[_0x4d61ac];return _0x5ae48b;};'use strict';var _=require('lodash');var util=require(_0x3ec0('0x0'));var logger=require(_0x3ec0('0x1'))(_0x3ec0('0x2'));var moment=require(_0x3ec0('0x3'));var BPromise=require(_0x3ec0('0x4'));var rp=require(_0x3ec0('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0x3ec0('0x6'));var config=require('../../config/environment');var attributes=require('./openchannelInteraction.attributes');module[_0x3ec0('0x7')]=function(_0x48802b,_0x9a73eb){return _0x48802b[_0x3ec0('0x8')](_0x3ec0('0x9'),attributes,{'tableName':'openchannel_interactions','paranoid':![],'indexes':[],'timestamps':!![],'charset':'utf8mb4','collate':_0x3ec0('0xa'),'hooks':{'beforeUpdate':function(_0x23440a,_0x50b58e,_0x31fb37){if(_0x23440a['changed'](_0x3ec0('0xb'))){_0x23440a[_0x3ec0('0xc')]=moment()[_0x3ec0('0xd')](_0x3ec0('0xe'));}_0x31fb37(null,_0x23440a);}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfdda=['OpenchannelInteraction,\x20%s,\x20%s,\x20%s','stringify','error','message','request\x20sent','result','catch','OpenchannelInteraction','body','options','where','attributes','limit','UpdateOpenchannelInteraction','addTags','ids','omit','spread','AddTags','bluebird','randomstring','../../mysqldb','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','./openchannelInteraction.socket','request','then','info','OpenchannelInteraction,\x20%s,\x20%s','debug'];(function(_0x19950b,_0x53d0d7){var _0x3c6b41=function(_0x3924ad){while(--_0x3924ad){_0x19950b['push'](_0x19950b['shift']());}};_0x3c6b41(++_0x53d0d7);}(_0xfdda,0xc7));var _0xafdd=function(_0x2e87e4,_0x591ef7){_0x2e87e4=_0x2e87e4-0x0;var _0x3c9855=_0xfdda[_0x2e87e4];return _0x3c9855;};'use strict';var _=require('lodash');var util=require('util');var moment=require('moment');var BPromise=require(_0xafdd('0x0'));var rs=require(_0xafdd('0x1'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xafdd('0x2'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')('rpc');var config=require(_0xafdd('0x3'));var jayson=require(_0xafdd('0x4'));var client=jayson[_0xafdd('0x5')][_0xafdd('0x6')]({'port':0x232a});config[_0xafdd('0x7')]=_[_0xafdd('0x8')](config[_0xafdd('0x7')],{'host':_0xafdd('0x9'),'port':0x18eb});var socket=require(_0xafdd('0xa'))(new Redis(config[_0xafdd('0x7')]));require(_0xafdd('0xb'))['register'](socket);function respondWithRpcPromise(_0xd204b1,_0x29d7d8,_0x4bbef6){return new BPromise(function(_0x2c2840,_0x5af658){return client[_0xafdd('0xc')](_0xd204b1,_0x4bbef6)[_0xafdd('0xd')](function(_0x1221f3){logger[_0xafdd('0xe')](_0xafdd('0xf'),_0x29d7d8,'request\x20sent');logger[_0xafdd('0x10')](_0xafdd('0x11'),_0x29d7d8,'request\x20sent',JSON[_0xafdd('0x12')](_0x1221f3));if(_0x1221f3[_0xafdd('0x13')]){if(_0x1221f3[_0xafdd('0x13')]['code']===0x1f4){logger['error'](_0xafdd('0xf'),_0x29d7d8,_0x1221f3[_0xafdd('0x13')]['message']);return _0x5af658(_0x1221f3[_0xafdd('0x13')][_0xafdd('0x14')]);}logger['error']('OpenchannelInteraction,\x20%s,\x20%s',_0x29d7d8,_0x1221f3[_0xafdd('0x13')][_0xafdd('0x14')]);return _0x2c2840(_0x1221f3['error'][_0xafdd('0x14')]);}else{logger[_0xafdd('0xe')](_0xafdd('0xf'),_0x29d7d8,_0xafdd('0x15'));_0x2c2840(_0x1221f3[_0xafdd('0x16')][_0xafdd('0x14')]);}})[_0xafdd('0x17')](function(_0x430a1e){logger['error'](_0xafdd('0xf'),_0x29d7d8,_0x430a1e);_0x5af658(_0x430a1e);});});}exports['UpdateOpenchannelInteraction']=function(_0x44290c){var _0x29d59a=this;return new Promise(function(_0x5c9155,_0xc41d0b){return db[_0xafdd('0x18')]['update'](_0x44290c[_0xafdd('0x19')],{'raw':_0x44290c[_0xafdd('0x1a')]?_0x44290c[_0xafdd('0x1a')]['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x44290c[_0xafdd('0x1a')]?_0x44290c[_0xafdd('0x1a')][_0xafdd('0x1b')]||null:null,'attributes':_0x44290c[_0xafdd('0x1a')]?_0x44290c['options'][_0xafdd('0x1c')]||null:null,'limit':_0x44290c[_0xafdd('0x1a')]?_0x44290c[_0xafdd('0x1a')][_0xafdd('0x1d')]||null:null})[_0xafdd('0xd')](function(_0x2433c9){logger[_0xafdd('0xe')](_0xafdd('0x1e'),_0x44290c);logger[_0xafdd('0x10')]('UpdateOpenchannelInteraction',_0x44290c,JSON['stringify'](_0x2433c9));_0x5c9155(_0x2433c9);})[_0xafdd('0x17')](function(_0x44d1cf){logger[_0xafdd('0x13')](_0xafdd('0x1e'),_0x44d1cf[_0xafdd('0x14')],_0x44290c);_0xc41d0b(_0x29d59a[_0xafdd('0x13')](0x1f4,_0x44d1cf[_0xafdd('0x14')]));});});};exports['AddTagsToOpenchannelInteraction']=function(_0x1764ae){return new Promise(function(_0x5728c5,_0x55b051){return db[_0xafdd('0x18')]['find']({'where':_0x1764ae[_0xafdd('0x1a')]?_0x1764ae[_0xafdd('0x1a')]['where']||null:null})[_0xafdd('0xd')](function(_0x43fd2e){if(_0x43fd2e){return _0x43fd2e[_0xafdd('0x1f')](_0x1764ae['body'][_0xafdd('0x20')],_[_0xafdd('0x21')](_0x1764ae[_0xafdd('0x19')],[_0xafdd('0x20'),'id'])||{});}})[_0xafdd('0x22')](function(_0x5d601f){logger[_0xafdd('0xe')](_0xafdd('0x23'),_0x1764ae);logger['debug']('AddTags',_0x1764ae,JSON[_0xafdd('0x12')](_0x5d601f));_0x5728c5(_0x5d601f);})[_0xafdd('0x17')](function(_0x120734){logger[_0xafdd('0x13')](_0xafdd('0x23'),_0x120734['message'],_0x1764ae);_0x55b051(_this[_0xafdd('0x13')](0x1f4,_0x120734[_0xafdd('0x14')]));});});};
\ No newline at end of file
+var _0x040e=['omit','spread','AddTags','debug','lodash','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/environment','client','http','defaults','redis','localhost','socket.io-emitter','./openchannelInteraction.socket','register','request','info','OpenchannelInteraction,\x20%s,\x20%s','OpenchannelInteraction,\x20%s,\x20%s,\x20%s','stringify','error','code','message','request\x20sent','result','catch','UpdateOpenchannelInteraction','update','body','options','raw','where','limit','then','AddTagsToOpenchannelInteraction','find','ids'];(function(_0x382e89,_0x4768c0){var _0x3a1318=function(_0x79e1ce){while(--_0x79e1ce){_0x382e89['push'](_0x382e89['shift']());}};_0x3a1318(++_0x4768c0);}(_0x040e,0x1f0));var _0xe040=function(_0x25cb2a,_0x249563){_0x25cb2a=_0x25cb2a-0x0;var _0x1ff8a8=_0x040e[_0x25cb2a];return _0x1ff8a8;};'use strict';var _=require(_0xe040('0x0'));var util=require('util');var moment=require(_0xe040('0x1'));var BPromise=require(_0xe040('0x2'));var rs=require(_0xe040('0x3'));var fs=require('fs');var Redis=require(_0xe040('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0xe040('0x5'));var logger=require('../../config/logger')('rpc');var config=require(_0xe040('0x6'));var jayson=require('jayson/promise');var client=jayson[_0xe040('0x7')][_0xe040('0x8')]({'port':0x232a});config['redis']=_[_0xe040('0x9')](config[_0xe040('0xa')],{'host':_0xe040('0xb'),'port':0x18eb});var socket=require(_0xe040('0xc'))(new Redis(config[_0xe040('0xa')]));require(_0xe040('0xd'))[_0xe040('0xe')](socket);function respondWithRpcPromise(_0x502123,_0x17d1b8,_0x35e531){return new BPromise(function(_0x14bf56,_0x2c25f3){return client[_0xe040('0xf')](_0x502123,_0x35e531)['then'](function(_0x58fd58){logger[_0xe040('0x10')](_0xe040('0x11'),_0x17d1b8,'request\x20sent');logger['debug'](_0xe040('0x12'),_0x17d1b8,'request\x20sent',JSON[_0xe040('0x13')](_0x58fd58));if(_0x58fd58[_0xe040('0x14')]){if(_0x58fd58['error'][_0xe040('0x15')]===0x1f4){logger[_0xe040('0x14')](_0xe040('0x11'),_0x17d1b8,_0x58fd58[_0xe040('0x14')]['message']);return _0x2c25f3(_0x58fd58[_0xe040('0x14')]['message']);}logger['error']('OpenchannelInteraction,\x20%s,\x20%s',_0x17d1b8,_0x58fd58[_0xe040('0x14')][_0xe040('0x16')]);return _0x14bf56(_0x58fd58[_0xe040('0x14')][_0xe040('0x16')]);}else{logger[_0xe040('0x10')](_0xe040('0x11'),_0x17d1b8,_0xe040('0x17'));_0x14bf56(_0x58fd58[_0xe040('0x18')][_0xe040('0x16')]);}})[_0xe040('0x19')](function(_0x5e8ab2){logger['error'](_0xe040('0x11'),_0x17d1b8,_0x5e8ab2);_0x2c25f3(_0x5e8ab2);});});}exports[_0xe040('0x1a')]=function(_0x34a3a8){var _0x2f8aff=this;return new Promise(function(_0x473607,_0x2ce35f){return db['OpenchannelInteraction'][_0xe040('0x1b')](_0x34a3a8[_0xe040('0x1c')],{'raw':_0x34a3a8[_0xe040('0x1d')]?_0x34a3a8[_0xe040('0x1d')][_0xe040('0x1e')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x34a3a8[_0xe040('0x1d')]?_0x34a3a8[_0xe040('0x1d')][_0xe040('0x1f')]||null:null,'attributes':_0x34a3a8[_0xe040('0x1d')]?_0x34a3a8[_0xe040('0x1d')]['attributes']||null:null,'limit':_0x34a3a8['options']?_0x34a3a8['options'][_0xe040('0x20')]||null:null})[_0xe040('0x21')](function(_0x64ed82){logger[_0xe040('0x10')]('UpdateOpenchannelInteraction',_0x34a3a8);logger['debug'](_0xe040('0x1a'),_0x34a3a8,JSON[_0xe040('0x13')](_0x64ed82));_0x473607(_0x64ed82);})['catch'](function(_0x53e395){logger[_0xe040('0x14')](_0xe040('0x1a'),_0x53e395[_0xe040('0x16')],_0x34a3a8);_0x2ce35f(_0x2f8aff[_0xe040('0x14')](0x1f4,_0x53e395[_0xe040('0x16')]));});});};exports[_0xe040('0x22')]=function(_0x2f2943){return new Promise(function(_0x2a1f5f,_0x13e5b4){return db['OpenchannelInteraction'][_0xe040('0x23')]({'where':_0x2f2943[_0xe040('0x1d')]?_0x2f2943[_0xe040('0x1d')][_0xe040('0x1f')]||null:null})['then'](function(_0x6926a3){if(_0x6926a3){return _0x6926a3['addTags'](_0x2f2943['body'][_0xe040('0x24')],_[_0xe040('0x25')](_0x2f2943[_0xe040('0x1c')],[_0xe040('0x24'),'id'])||{});}})[_0xe040('0x26')](function(_0x400cb9){logger[_0xe040('0x10')](_0xe040('0x27'),_0x2f2943);logger[_0xe040('0x28')](_0xe040('0x27'),_0x2f2943,JSON['stringify'](_0x400cb9));_0x2a1f5f(_0x400cb9);})[_0xe040('0x19')](function(_0x1622b4){logger[_0xe040('0x14')]('AddTags',_0x1622b4[_0xe040('0x16')],_0x2f2943);_0x13e5b4(_this['error'](0x1f4,_0x1622b4[_0xe040('0x16')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9a5=['removeListener','register','length','./openchannelInteraction.events','save','remove','emit'];(function(_0x375c0b,_0x567d67){var _0x4c4bec=function(_0x560ca1){while(--_0x560ca1){_0x375c0b['push'](_0x375c0b['shift']());}};_0x4c4bec(++_0x567d67);}(_0xa9a5,0x13e));var _0x5a9a=function(_0x3c3bd8,_0x1a6b31){_0x3c3bd8=_0x3c3bd8-0x0;var _0x20c7b5=_0xa9a5[_0x3c3bd8];return _0x20c7b5;};'use strict';var OpenchannelInteractionEvents=require(_0x5a9a('0x0'));var events=[_0x5a9a('0x1'),_0x5a9a('0x2'),'update'];function createListener(_0x371e16,_0x642a6e){return function(_0x18d437){_0x642a6e[_0x5a9a('0x3')](_0x371e16,_0x18d437);};}function removeListener(_0x238642,_0x5fbc6d){return function(){OpenchannelInteractionEvents[_0x5a9a('0x4')](_0x238642,_0x5fbc6d);};}exports[_0x5a9a('0x5')]=function(_0x2b864d){for(var _0x43d537=0x0,_0x10e547=events[_0x5a9a('0x6')];_0x43d537<_0x10e547;_0x43d537++){var _0x554dc0=events[_0x43d537];var _0x597f86=createListener('openchannelInteraction:'+_0x554dc0,_0x2b864d);OpenchannelInteractionEvents['on'](_0x554dc0,_0x597f86);}};
\ No newline at end of file
+var _0x086f=['./openchannelInteraction.events','save','remove','update','emit','removeListener','register','length','openchannelInteraction:'];(function(_0x1cb18a,_0x33167a){var _0x22442e=function(_0x46c611){while(--_0x46c611){_0x1cb18a['push'](_0x1cb18a['shift']());}};_0x22442e(++_0x33167a);}(_0x086f,0x13b));var _0xf086=function(_0x1b224f,_0x552ee3){_0x1b224f=_0x1b224f-0x0;var _0x2a13fb=_0x086f[_0x1b224f];return _0x2a13fb;};'use strict';var OpenchannelInteractionEvents=require(_0xf086('0x0'));var events=[_0xf086('0x1'),_0xf086('0x2'),_0xf086('0x3')];function createListener(_0x2d2fe8,_0x5ec3bc){return function(_0x5c3666){_0x5ec3bc[_0xf086('0x4')](_0x2d2fe8,_0x5c3666);};}function removeListener(_0x786968,_0x2d8bce){return function(){OpenchannelInteractionEvents[_0xf086('0x5')](_0x786968,_0x2d8bce);};}exports[_0xf086('0x6')]=function(_0x3bcf10){for(var _0x177b13=0x0,_0x252d70=events[_0xf086('0x7')];_0x177b13<_0x252d70;_0x177b13++){var _0x356c19=events[_0x177b13];var _0x1d085e=createListener(_0xf086('0x8')+_0x356c19,_0x3bcf10);OpenchannelInteractionEvents['on'](_0x356c19,_0x1d085e);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xedd9=['util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./openchannelMessage.controller','get','isAuthenticated','index','/describe','describe','/:id','post','tracked','openchannel','create','put','update','/:id/accept','accept','/:id/reject','reject','delete','destroy','exports'];(function(_0x28885a,_0x8565d7){var _0x377a35=function(_0xf59c12){while(--_0xf59c12){_0x28885a['push'](_0x28885a['shift']());}};_0x377a35(++_0x8565d7);}(_0xedd9,0xfc));var _0x9edd=function(_0x1d31ab,_0x37e95d){_0x1d31ab=_0x1d31ab-0x0;var _0x142721=_0xedd9[_0x1d31ab];return _0x142721;};'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('0x9')](_0x9edd('0xe'),auth[_0x9edd('0xa')](),controller['show']);router[_0x9edd('0xf')]('/',auth['isAuthenticated'](),interaction[_0x9edd('0x10')](_0x9edd('0x11'),'openchannelmessage:create'),controller[_0x9edd('0x12')]);router[_0x9edd('0x13')]('/:id',auth[_0x9edd('0xa')](),controller[_0x9edd('0x14')]);router[_0x9edd('0x13')](_0x9edd('0x15'),auth[_0x9edd('0xa')](),controller[_0x9edd('0x16')]);router[_0x9edd('0x13')](_0x9edd('0x17'),auth['isAuthenticated'](),controller[_0x9edd('0x18')]);router[_0x9edd('0x19')](_0x9edd('0xe'),auth[_0x9edd('0xa')](),controller[_0x9edd('0x1a')]);module[_0x9edd('0x1b')]=router;
\ No newline at end of file
+var _0x0713=['get','isAuthenticated','index','/describe','describe','/:id','post','tracked','openchannel','openchannelmessage:create','put','update','accept','/:id/reject','delete','destroy','exports','path','connect-timeout','express','Router','fs-extra','../../components/interaction/service','../../config/environment','./openchannelMessage.controller'];(function(_0x4b369d,_0x265eb8){var _0x571a98=function(_0x56341a){while(--_0x56341a){_0x4b369d['push'](_0x4b369d['shift']());}};_0x571a98(++_0x265eb8);}(_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'));var controller=require(_0x3071('0x7'));router[_0x3071('0x8')]('/',auth[_0x3071('0x9')](),controller[_0x3071('0xa')]);router[_0x3071('0x8')](_0x3071('0xb'),auth[_0x3071('0x9')](),controller[_0x3071('0xc')]);router[_0x3071('0x8')](_0x3071('0xd'),auth[_0x3071('0x9')](),controller['show']);router[_0x3071('0xe')]('/',auth[_0x3071('0x9')](),interaction[_0x3071('0xf')](_0x3071('0x10'),_0x3071('0x11')),controller['create']);router[_0x3071('0x12')](_0x3071('0xd'),auth[_0x3071('0x9')](),controller[_0x3071('0x13')]);router[_0x3071('0x12')]('/:id/accept',auth['isAuthenticated'](),controller[_0x3071('0x14')]);router['put'](_0x3071('0x15'),auth[_0x3071('0x9')](),controller['reject']);router[_0x3071('0x16')]('/:id',auth[_0x3071('0x9')](),controller[_0x3071('0x17')]);module[_0x3071('0x18')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5eb1=['ENUM','out','DATE','STRING','exports','TEXT','medium','BOOLEAN'];(function(_0xa98302,_0x844f27){var _0x1ad8e3=function(_0x57e51d){while(--_0x57e51d){_0xa98302['push'](_0xa98302['shift']());}};_0x1ad8e3(++_0x844f27);}(_0x5eb1,0x7c));var _0x15eb=function(_0x2af29a,_0x4f44bc){_0x2af29a=_0x2af29a-0x0;var _0x5ef02f=_0x5eb1[_0x2af29a];return _0x5ef02f;};'use strict';var Sequelize=require('sequelize');module[_0x15eb('0x0')]={'body':{'type':Sequelize[_0x15eb('0x1')](_0x15eb('0x2')),'allowNull':![]},'read':{'type':Sequelize[_0x15eb('0x3')],'defaultValue':![]},'secret':{'type':Sequelize[_0x15eb('0x3')],'defaultValue':![]},'direction':{'type':Sequelize[_0x15eb('0x4')]('in','out'),'defaultValue':_0x15eb('0x5'),'allowNull':![]},'readAt':{'type':Sequelize[_0x15eb('0x6')]},'providerName':{'type':Sequelize[_0x15eb('0x7')]},'providerResponse':{'type':Sequelize[_0x15eb('0x1')]}};
\ No newline at end of file
+var _0x0102=['exports','TEXT','medium','BOOLEAN','STRING'];(function(_0x268cd1,_0x46fe2d){var _0x7066cd=function(_0x21921c){while(--_0x21921c){_0x268cd1['push'](_0x268cd1['shift']());}};_0x7066cd(++_0x46fe2d);}(_0x0102,0x186));var _0x2010=function(_0x2ec459,_0x2ad940){_0x2ec459=_0x2ec459-0x0;var _0x2a0bae=_0x0102[_0x2ec459];return _0x2a0bae;};'use strict';var Sequelize=require('sequelize');module[_0x2010('0x0')]={'body':{'type':Sequelize[_0x2010('0x1')](_0x2010('0x2')),'allowNull':![]},'read':{'type':Sequelize[_0x2010('0x3')],'defaultValue':![]},'secret':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'direction':{'type':Sequelize['ENUM']('in','out'),'defaultValue':'out','allowNull':![]},'readAt':{'type':Sequelize['DATE']},'providerName':{'type':Sequelize[_0x2010('0x4')]},'providerResponse':{'type':Sequelize[_0x2010('0x1')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x31ce=['acceptMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','ContactId','sequelize','Sequelize','QueryTypes','SELECT','contact','User','fullname','email','internal','manual','interface','channel','event','accept','EventManager','acceptmessage','reject','[OPENCHANNELMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','rejectMessage','rejectmessage','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','path','sox','to-csv','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','defaults','localhost','socket.io-emitter','redis','./openchannelMessage.socket','register','jayson/promise','http','client','request','info','debug','OpenchannelMessage,\x20%s,\x20%s,\x20%s','stringify','error','message','OpenchannelMessage,\x20%s,\x20%s','result','catch','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','save','then','stack','name','map','OpenchannelMessage','fieldName','type','key','model','keys','query','filters','intersection','fields','attributes','length','sort','where','pick','merge','VIRTUAL','options','includeAll','include','rows','show','params','rawAttributes','create','body','find','destroy','describe','../../config/logger','openchannel-interactions','openchannel','read','readAt','format','UserId','agent','get','OpenchannelInteraction','OpenchannelInteractionId','update','isNil','read1stAt','YYYY-MM-DD\x20HH:mm:ss','interaction','user','role','null'];(function(_0x10e1b2,_0x142ddc){var _0x32f43f=function(_0x5dc0ff){while(--_0x5dc0ff){_0x10e1b2['push'](_0x10e1b2['shift']());}};_0x32f43f(++_0x142ddc);}(_0x31ce,0x99));var _0xe31c=function(_0xd98ca3,_0x38fbd9){_0xd98ca3=_0xd98ca3-0x0;var _0x35960d=_0x31ce[_0xd98ca3];return _0x35960d;};'use strict';var emlformat=require(_0xe31c('0x0'));var rimraf=require(_0xe31c('0x1'));var zipdir=require(_0xe31c('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xe31c('0x3'));var moment=require(_0xe31c('0x4'));var BPromise=require(_0xe31c('0x5'));var Mustache=require(_0xe31c('0x6'));var util=require('util');var path=require(_0xe31c('0x7'));var sox=require(_0xe31c('0x8'));var csv=require(_0xe31c('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xe31c('0xa'));var _=require(_0xe31c('0xb'));var squel=require('squel');var crypto=require(_0xe31c('0xc'));var jsforce=require(_0xe31c('0xd'));var deskjs=require(_0xe31c('0xe'));var toCsv=require('to-csv');var querystring=require(_0xe31c('0xf'));var Papa=require(_0xe31c('0x10'));var Redis=require('ioredis');var authService=require(_0xe31c('0x11'));var qs=require(_0xe31c('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xe31c('0x13'));var logger=require('../../config/logger')(_0xe31c('0x14'));var utils=require(_0xe31c('0x15'));var config=require(_0xe31c('0x16'));var licenseUtil=require(_0xe31c('0x17'));var db=require('../../mysqldb')['db'];config['redis']=_[_0xe31c('0x18')](config['redis'],{'host':_0xe31c('0x19'),'port':0x18eb});var socket=require(_0xe31c('0x1a'))(new Redis(config[_0xe31c('0x1b')]));require(_0xe31c('0x1c'))[_0xe31c('0x1d')](socket);var jayson=require(_0xe31c('0x1e'));var client=jayson['client'][_0xe31c('0x1f')]({'port':0x232c});var client9002=jayson[_0xe31c('0x20')][_0xe31c('0x1f')]({'port':0x232a});function respondWithRpcPromise(_0x2814e5,_0x4f817f,_0xfc3c46,_0x5d9c7e){return new BPromise(function(_0x2fd5e7,_0xaac899){var _0x1a69c0=_0x5d9c7e||client;return _0x1a69c0[_0xe31c('0x21')](_0x2814e5,_0xfc3c46)['then'](function(_0x55b88e){logger[_0xe31c('0x22')]('OpenchannelMessage,\x20%s,\x20%s',_0x4f817f,'request\x20sent');logger[_0xe31c('0x23')](_0xe31c('0x24'),_0x4f817f,'request\x20sent',JSON[_0xe31c('0x25')](_0x55b88e));if(_0x55b88e['error']){if(_0x55b88e[_0xe31c('0x26')]['code']===0x1f4){logger[_0xe31c('0x26')]('OpenchannelMessage,\x20%s,\x20%s',_0x4f817f,_0x55b88e[_0xe31c('0x26')][_0xe31c('0x27')]);return _0xaac899(_0x55b88e['error']['message']);}logger[_0xe31c('0x26')](_0xe31c('0x28'),_0x4f817f,_0x55b88e[_0xe31c('0x26')][_0xe31c('0x27')]);return _0x2fd5e7(_0x55b88e[_0xe31c('0x26')]['message']);}else{logger[_0xe31c('0x22')](_0xe31c('0x28'),_0x4f817f,'request\x20sent');_0x2fd5e7(_0x55b88e[_0xe31c('0x29')][_0xe31c('0x27')]);}})[_0xe31c('0x2a')](function(_0x3180ae){logger[_0xe31c('0x26')](_0xe31c('0x28'),_0x4f817f,_0x3180ae);_0xaac899(_0x3180ae);});});}function respondWithStatusCode(_0x26d1b2,_0x1b198b){_0x1b198b=_0x1b198b||0xcc;return function(_0x40923d){if(_0x40923d){return _0x26d1b2[_0xe31c('0x2b')](_0x1b198b);}return _0x26d1b2[_0xe31c('0x2c')](_0x1b198b)[_0xe31c('0x2d')]();};}function respondWithResult(_0x5a5b86,_0x599d56){_0x599d56=_0x599d56||0xc8;return function(_0x56076a){if(_0x56076a){return _0x5a5b86['status'](_0x599d56)[_0xe31c('0x2e')](_0x56076a);}};}function respondWithFilteredResult(_0xe43f93,_0x562387){return function(_0x1f99de){if(_0x1f99de){var _0x28bbfd=typeof _0x562387[_0xe31c('0x2f')]===_0xe31c('0x30')&&typeof _0x562387[_0xe31c('0x31')]===_0xe31c('0x30');var _0x5c56de=_0x1f99de[_0xe31c('0x32')];var _0x32f724=_0x28bbfd?0x0:_0x562387['offset'];var _0x1d08b4=_0x28bbfd?_0x1f99de[_0xe31c('0x32')]:_0x562387['offset']+_0x562387['limit'];var _0x37c889;if(_0x1d08b4>=_0x5c56de){_0x1d08b4=_0x5c56de;_0x37c889=0xc8;}else{_0x37c889=0xce;}_0xe43f93['status'](_0x37c889);return _0xe43f93[_0xe31c('0x33')](_0xe31c('0x34'),_0x32f724+'-'+_0x1d08b4+'/'+_0x5c56de)[_0xe31c('0x2e')](_0x1f99de);}return null;};}function patchUpdates(_0x4e9b43){return function(_0x5efc14){try{jsonpatch[_0xe31c('0x35')](_0x5efc14,_0x4e9b43,!![]);}catch(_0x5bc8d6){return BPromise['reject'](_0x5bc8d6);}return _0x5efc14[_0xe31c('0x36')]();};}function saveUpdates(_0x56b0c0,_0x1da80e){return function(_0x3597f1){if(_0x3597f1){return _0x3597f1['update'](_0x56b0c0)[_0xe31c('0x37')](function(_0x135703){return _0x135703;});}return null;};}function removeEntity(_0x57f7c5,_0xe79295){return function(_0x48a24d){if(_0x48a24d){return _0x48a24d['destroy']()[_0xe31c('0x37')](function(){_0x57f7c5[_0xe31c('0x2c')](0xcc)[_0xe31c('0x2d')]();});}};}function handleEntityNotFound(_0x33ad15,_0xb977c8){return function(_0x4f6dc5){if(!_0x4f6dc5){_0x33ad15[_0xe31c('0x2b')](0x194);}return _0x4f6dc5;};}function handleError(_0x33ba38,_0x60a122){_0x60a122=_0x60a122||0x1f4;return function(_0x3c7f6a){logger[_0xe31c('0x26')](_0x3c7f6a[_0xe31c('0x38')]);if(_0x3c7f6a[_0xe31c('0x39')]){delete _0x3c7f6a['name'];}_0x33ba38[_0xe31c('0x2c')](_0x60a122)['send'](_0x3c7f6a);};}exports['index']=function(_0x35946e,_0x227106){var _0x19deee={},_0x46eb6d={},_0x31a468={'count':0x0,'rows':[]};var _0x1f9e02=_[_0xe31c('0x3a')](db[_0xe31c('0x3b')]['rawAttributes'],function(_0x2d75ad){return{'name':_0x2d75ad[_0xe31c('0x3c')],'type':_0x2d75ad[_0xe31c('0x3d')][_0xe31c('0x3e')]};});_0x46eb6d[_0xe31c('0x3f')]=_[_0xe31c('0x3a')](_0x1f9e02,_0xe31c('0x39'));_0x46eb6d['query']=_[_0xe31c('0x40')](_0x35946e[_0xe31c('0x41')]);_0x46eb6d[_0xe31c('0x42')]=_[_0xe31c('0x43')](_0x46eb6d[_0xe31c('0x3f')],_0x46eb6d[_0xe31c('0x41')]);_0x19deee['attributes']=_[_0xe31c('0x43')](_0x46eb6d[_0xe31c('0x3f')],qs[_0xe31c('0x44')](_0x35946e['query']['fields']));_0x19deee['attributes']=_0x19deee[_0xe31c('0x45')][_0xe31c('0x46')]?_0x19deee[_0xe31c('0x45')]:_0x46eb6d[_0xe31c('0x3f')];if(!_0x35946e[_0xe31c('0x41')]['hasOwnProperty']('nolimit')){_0x19deee[_0xe31c('0x31')]=qs[_0xe31c('0x31')](_0x35946e[_0xe31c('0x41')][_0xe31c('0x31')]);_0x19deee[_0xe31c('0x2f')]=qs[_0xe31c('0x2f')](_0x35946e[_0xe31c('0x41')][_0xe31c('0x2f')]);}_0x19deee['order']=qs[_0xe31c('0x47')](_0x35946e[_0xe31c('0x41')][_0xe31c('0x47')]);_0x19deee[_0xe31c('0x48')]=qs[_0xe31c('0x42')](_[_0xe31c('0x49')](_0x35946e['query'],_0x46eb6d['filters']),_0x1f9e02);if(_0x35946e[_0xe31c('0x41')]['filter']){_0x19deee[_0xe31c('0x48')]=_[_0xe31c('0x4a')](_0x19deee[_0xe31c('0x48')],{'$or':_[_0xe31c('0x3a')](_0x1f9e02,function(_0xf0108b){if(_0xf0108b['type']!==_0xe31c('0x4b')){var _0x487abb={};_0x487abb[_0xf0108b['name']]={'$like':'%'+_0x35946e['query']['filter']+'%'};return _0x487abb;}})});}_0x19deee=_['merge']({},_0x19deee,_0x35946e[_0xe31c('0x4c')]);var _0x4c8dbc={'where':_0x19deee[_0xe31c('0x48')]};return db[_0xe31c('0x3b')][_0xe31c('0x32')](_0x4c8dbc)[_0xe31c('0x37')](function(_0x6ad238){_0x31a468['count']=_0x6ad238;if(_0x35946e[_0xe31c('0x41')][_0xe31c('0x4d')]){_0x19deee[_0xe31c('0x4e')]=[{'all':!![]}];}return db[_0xe31c('0x3b')]['findAll'](_0x19deee);})['then'](function(_0x326728){_0x31a468[_0xe31c('0x4f')]=_0x326728;return _0x31a468;})[_0xe31c('0x37')](respondWithFilteredResult(_0x227106,_0x19deee))[_0xe31c('0x2a')](handleError(_0x227106,null));};exports[_0xe31c('0x50')]=function(_0xe0cc0a,_0x291370){var _0x254a94={'raw':!![],'where':{'id':_0xe0cc0a[_0xe31c('0x51')]['id']}},_0x515a81={};_0x515a81[_0xe31c('0x3f')]=_['keys'](db[_0xe31c('0x3b')][_0xe31c('0x52')]);_0x515a81[_0xe31c('0x41')]=_[_0xe31c('0x40')](_0xe0cc0a['query']);_0x515a81[_0xe31c('0x42')]=_[_0xe31c('0x43')](_0x515a81[_0xe31c('0x3f')],_0x515a81[_0xe31c('0x41')]);_0x254a94[_0xe31c('0x45')]=_[_0xe31c('0x43')](_0x515a81[_0xe31c('0x3f')],qs[_0xe31c('0x44')](_0xe0cc0a[_0xe31c('0x41')][_0xe31c('0x44')]));_0x254a94[_0xe31c('0x45')]=_0x254a94[_0xe31c('0x45')][_0xe31c('0x46')]?_0x254a94[_0xe31c('0x45')]:_0x515a81['model'];if(_0xe0cc0a[_0xe31c('0x41')][_0xe31c('0x4d')]){_0x254a94['include']=[{'all':!![]}];}_0x254a94=_[_0xe31c('0x4a')]({},_0x254a94,_0xe0cc0a[_0xe31c('0x4c')]);return db['OpenchannelMessage']['find'](_0x254a94)[_0xe31c('0x37')](handleEntityNotFound(_0x291370,null))[_0xe31c('0x37')](respondWithResult(_0x291370,null))[_0xe31c('0x2a')](handleError(_0x291370,null));};exports['create']=function(_0x37b3a7,_0x48cba2){return db[_0xe31c('0x3b')][_0xe31c('0x53')](_0x37b3a7[_0xe31c('0x54')],{})[_0xe31c('0x37')](respondWithResult(_0x48cba2,0xc9))['catch'](handleError(_0x48cba2,null));};exports['update']=function(_0x33a6c1,_0x22f07c){if(_0x33a6c1[_0xe31c('0x54')]['id']){delete _0x33a6c1[_0xe31c('0x54')]['id'];}return db['OpenchannelMessage'][_0xe31c('0x55')]({'where':{'id':_0x33a6c1[_0xe31c('0x51')]['id']}})['then'](handleEntityNotFound(_0x22f07c,null))['then'](saveUpdates(_0x33a6c1['body'],null))['then'](respondWithResult(_0x22f07c,null))[_0xe31c('0x2a')](handleError(_0x22f07c,null));};exports[_0xe31c('0x56')]=function(_0x3a9fe2,_0x55861d){return db[_0xe31c('0x3b')][_0xe31c('0x55')]({'where':{'id':_0x3a9fe2[_0xe31c('0x51')]['id']}})[_0xe31c('0x37')](handleEntityNotFound(_0x55861d,null))[_0xe31c('0x37')](removeEntity(_0x55861d,null))['catch'](handleError(_0x55861d,null));};exports[_0xe31c('0x57')]=function(_0x5e3b30,_0x12e007){return db[_0xe31c('0x3b')][_0xe31c('0x57')]()[_0xe31c('0x37')](respondWithResult(_0x12e007,null))[_0xe31c('0x2a')](handleError(_0x12e007,null));};var interaction_log=require(_0xe31c('0x58'))(_0xe31c('0x59'));exports['accept']=function(_0x423d98,_0x277c1a,_0x2eb85d){var _0xe09e65={'agent':{},'channel':_0xe31c('0x5a')};if(_0x423d98[_0xe31c('0x54')]['id']){delete _0x423d98[_0xe31c('0x54')]['id'];}_0x423d98['body'][_0xe31c('0x5b')]=!![];_0x423d98[_0xe31c('0x54')][_0xe31c('0x5c')]=moment()[_0xe31c('0x5d')]('YYYY-MM-DD\x20HH:mm:ss');_0x423d98[_0xe31c('0x54')][_0xe31c('0x5e')]=_0x423d98[_0xe31c('0x54')][_0xe31c('0x5e')]||_0x423d98['user']['id'];_0xe09e65[_0xe31c('0x5f')]['id']=_0x423d98['body']['UserId'];return db['OpenchannelMessage']['find']({'where':{'id':_0x423d98[_0xe31c('0x51')]['id'],'UserId':null}})[_0xe31c('0x37')](handleEntityNotFound(_0x277c1a,null))['then'](saveUpdates(_0x423d98['body'],null))[_0xe31c('0x37')](function(_0x2ef4cd){if(_0x2ef4cd){_0xe09e65['message']=_0x2ef4cd[_0xe31c('0x60')]({'plain':!![]});return db[_0xe31c('0x61')]['find']({'where':{'id':_0x2ef4cd[_0xe31c('0x62')]}});}return null;})[_0xe31c('0x37')](handleEntityNotFound(_0x277c1a,null))[_0xe31c('0x37')](function(_0x4eb540){if(_0x4eb540){return _0x4eb540[_0xe31c('0x63')]({'UserId':_0x423d98[_0xe31c('0x54')][_0xe31c('0x5e')],'read1stAt':_[_0xe31c('0x64')](_0x4eb540[_0xe31c('0x65')])?moment()[_0xe31c('0x5d')](_0xe31c('0x66')):undefined});}return null;})[_0xe31c('0x37')](function(_0x2cf016){if(_0x2cf016){_0xe09e65[_0xe31c('0x67')]=_0x2cf016[_0xe31c('0x60')]({'plain':!![]});interaction_log['info']('[OPENCHANNELMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x423d98[_0xe31c('0x68')]['id'],_0x423d98[_0xe31c('0x68')][_0xe31c('0x39')],_0x423d98[_0xe31c('0x68')][_0xe31c('0x69')],_0xe09e65[_0xe31c('0x67')]['id'],_0x423d98[_0xe31c('0x54')]?JSON[_0xe31c('0x25')](_0x423d98[_0xe31c('0x54')]):_0xe31c('0x6a'));return respondWithRpcPromise('AcceptMessage',_0xe31c('0x6b'),_0xe09e65);}return null;})[_0xe31c('0x37')](function(_0x53b422){var _0x3358f5=_0xe31c('0x6c')+_0x53b422[_0xe31c('0x27')][_0xe31c('0x6d')];return db[_0xe31c('0x6e')][_0xe31c('0x41')](_0x3358f5,{'type':db[_0xe31c('0x6f')][_0xe31c('0x70')][_0xe31c('0x71')],'raw':!![]})[_0xe31c('0x37')](function(_0x36ec43){return _0x36ec43;});})[_0xe31c('0x37')](function(_0x108caf){if(_0x108caf){_0xe09e65[_0xe31c('0x27')][_0xe31c('0x72')]=_0x108caf[0x0];if(!_0x423d98[_0xe31c('0x54')][_0xe31c('0x5e')])return;return db[_0xe31c('0x73')][_0xe31c('0x55')]({'where':{'id':_0x423d98[_0xe31c('0x54')][_0xe31c('0x5e')],'role':'agent'},'attributes':['id',_0xe31c('0x39'),_0xe31c('0x74'),_0xe31c('0x75'),_0xe31c('0x76')],'raw':!![]});}return null;})[_0xe31c('0x37')](function(_0x5b8d3c){if(!_0x5b8d3c)return null;_0xe09e65[_0xe31c('0x27')]['agent']=_0x5b8d3c;return _0xe09e65;})[_0xe31c('0x37')](function(_0x496e4d){if(_0x496e4d){if(_0x423d98[_0xe31c('0x54')][_0xe31c('0x77')]){_0xe09e65[_0xe31c('0x27')][_0xe31c('0x78')]=util[_0xe31c('0x5d')]('SIP/%s',_0x423d98['user'][_0xe31c('0x39')]);_0xe09e65['message'][_0xe31c('0x79')]=_0xe09e65[_0xe31c('0x79')];_0xe09e65[_0xe31c('0x27')][_0xe31c('0x7a')]=_0xe31c('0x7b');return respondWithRpcPromise(_0xe31c('0x7c'),'EventManager',{'event':_0xe31c('0x7d'),'message':_0xe09e65[_0xe31c('0x27')]},client9002)['then'](function(){return _0xe09e65;});}return _0xe09e65;}return null;})[_0xe31c('0x37')](respondWithResult(_0x277c1a,null))['catch'](handleError(_0x277c1a,null));};var interaction_log=require(_0xe31c('0x58'))(_0xe31c('0x59'));exports[_0xe31c('0x7e')]=function(_0x3657b7,_0x24d44c,_0x22464f){var _0x1389bc={'agent':{},'channel':_0xe31c('0x5a')};if(_0x3657b7[_0xe31c('0x54')]['id']){delete _0x3657b7[_0xe31c('0x54')]['id'];}_0x3657b7[_0xe31c('0x54')]['UserId']=_0x3657b7['body'][_0xe31c('0x5e')]||_0x3657b7[_0xe31c('0x68')]['id'];_0x1389bc[_0xe31c('0x5f')]['id']=_0x3657b7['body'][_0xe31c('0x5e')];return db[_0xe31c('0x3b')]['find']({'where':{'id':_0x3657b7[_0xe31c('0x51')]['id'],'UserId':null}})[_0xe31c('0x37')](handleEntityNotFound(_0x24d44c,null))['then'](function(_0x3e574f){if(_0x3e574f){_0x1389bc['message']=_0x3e574f[_0xe31c('0x60')]({'plain':!![]});return db[_0xe31c('0x61')][_0xe31c('0x55')]({'where':{'id':_0x3e574f[_0xe31c('0x62')]}});}return null;})['then'](handleEntityNotFound(_0x24d44c,null))[_0xe31c('0x37')](function(_0x695df2){if(_0x695df2){_0x1389bc['interaction']=_0x695df2[_0xe31c('0x60')]({'plain':!![]});interaction_log[_0xe31c('0x22')](_0xe31c('0x7f'),_0x3657b7['user']['id'],_0x3657b7[_0xe31c('0x68')][_0xe31c('0x39')],_0x3657b7[_0xe31c('0x68')]['role'],_0x1389bc[_0xe31c('0x67')]['id'],_0x3657b7[_0xe31c('0x54')]?JSON[_0xe31c('0x25')](_0x3657b7[_0xe31c('0x54')]):_0xe31c('0x6a'));return respondWithRpcPromise('RejectMessage',_0xe31c('0x80'),_0x1389bc);}return null;})[_0xe31c('0x37')](function(_0x1e1e13){var _0x1be02a=_0xe31c('0x6c')+_0x1e1e13[_0xe31c('0x27')][_0xe31c('0x6d')];return db['sequelize'][_0xe31c('0x41')](_0x1be02a,{'type':db['Sequelize'][_0xe31c('0x70')][_0xe31c('0x71')],'raw':!![]})[_0xe31c('0x37')](function(_0x42c5af){return _0x42c5af;});})[_0xe31c('0x37')](function(_0x2a9c87){if(_0x2a9c87){_0x1389bc[_0xe31c('0x27')]['contact']=_0x2a9c87[0x0];if(!_0x3657b7[_0xe31c('0x54')][_0xe31c('0x5e')])return;return db[_0xe31c('0x73')][_0xe31c('0x55')]({'where':{'id':_0x3657b7[_0xe31c('0x54')][_0xe31c('0x5e')],'role':_0xe31c('0x5f')},'attributes':['id',_0xe31c('0x39'),_0xe31c('0x74'),_0xe31c('0x75'),_0xe31c('0x76')],'raw':!![]});}return null;})[_0xe31c('0x37')](function(_0x2dc67b){if(!_0x2dc67b)return null;_0x1389bc[_0xe31c('0x27')]['agent']=_0x2dc67b;return _0x1389bc;})['then'](function(_0x55eb50){if(_0x55eb50){_0x55eb50[_0xe31c('0x27')][_0xe31c('0x78')]=util[_0xe31c('0x5d')]('SIP/%s',_0x3657b7['user'][_0xe31c('0x39')]);_0x55eb50[_0xe31c('0x27')]['channel']=_0x1389bc[_0xe31c('0x79')];_0x55eb50['message'][_0xe31c('0x7a')]=_0xe31c('0x7e');respondWithRpcPromise(_0xe31c('0x7c'),_0xe31c('0x7c'),{'event':_0xe31c('0x81'),'message':_0x55eb50[_0xe31c('0x27')]},client9002);return _0x1389bc;}return null;})['then'](respondWithResult(_0x24d44c,null))['catch'](handleError(_0x24d44c,null));};
\ No newline at end of file
+var _0xa1a9=['SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','ContactId','sequelize','Sequelize','QueryTypes','SELECT','contact','User','agent','email','internal','manual','interface','SIP/%s','channel','event','accept','EventManager','reject','[OPENCHANNELMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','RejectMessage','rejectMessage','fullname','motionChannel','rejectmessage','eml-format','fast-json-patch','moment','bluebird','sox','ejs','fs-extra','squel','desk.js','querystring','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','localhost','socket.io-emitter','./openchannelMessage.socket','jayson/promise','http','client','then','info','OpenchannelMessage,\x20%s,\x20%s','request\x20sent','debug','OpenchannelMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','sendStatus','status','end','json','offset','undefined','limit','count','set','save','update','destroy','stack','name','send','index','map','OpenchannelMessage','rawAttributes','type','key','model','intersection','query','attributes','fields','length','hasOwnProperty','nolimit','sort','where','filters','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','keys','find','create','body','params','describe','openchannel-interactions','openchannel','read','readAt','format','UserId','user','get','OpenchannelInteraction','OpenchannelInteractionId','read1stAt','YYYY-MM-DD\x20HH:mm:ss','interaction','[OPENCHANNELMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','null','AcceptMessage'];(function(_0x89a001,_0x3a9a8c){var _0x5f3ec2=function(_0x3e849b){while(--_0x3e849b){_0x89a001['push'](_0x89a001['shift']());}};_0x5f3ec2(++_0x3a9a8c);}(_0xa1a9,0x9b));var _0x9a1a=function(_0x14f46e,_0xc258fd){_0x14f46e=_0x14f46e-0x0;var _0x1f5e82=_0xa1a9[_0x14f46e];return _0x1f5e82;};'use strict';var emlformat=require(_0x9a1a('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x9a1a('0x1'));var rp=require('request-promise');var moment=require(_0x9a1a('0x2'));var BPromise=require(_0x9a1a('0x3'));var Mustache=require('mustache');var util=require('util');var path=require('path');var sox=require(_0x9a1a('0x4'));var csv=require('to-csv');var ejs=require(_0x9a1a('0x5'));var fs=require('fs');var fs_extra=require(_0x9a1a('0x6'));var _=require('lodash');var squel=require(_0x9a1a('0x7'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x9a1a('0x8'));var toCsv=require('to-csv');var querystring=require(_0x9a1a('0x9'));var Papa=require('papaparse');var Redis=require(_0x9a1a('0xa'));var authService=require(_0x9a1a('0xb'));var qs=require(_0x9a1a('0xc'));var as=require(_0x9a1a('0xd'));var hardwareService=require(_0x9a1a('0xe'));var logger=require(_0x9a1a('0xf'))('api');var utils=require(_0x9a1a('0x10'));var config=require(_0x9a1a('0x11'));var licenseUtil=require(_0x9a1a('0x12'));var db=require(_0x9a1a('0x13'))['db'];config[_0x9a1a('0x14')]=_[_0x9a1a('0x15')](config[_0x9a1a('0x14')],{'host':_0x9a1a('0x16'),'port':0x18eb});var socket=require(_0x9a1a('0x17'))(new Redis(config[_0x9a1a('0x14')]));require(_0x9a1a('0x18'))['register'](socket);var jayson=require(_0x9a1a('0x19'));var client=jayson['client'][_0x9a1a('0x1a')]({'port':0x232c});var client9002=jayson[_0x9a1a('0x1b')]['http']({'port':0x232a});function respondWithRpcPromise(_0xac3ecd,_0x1f5cda,_0x2e99c9,_0x2cabc5){return new BPromise(function(_0xbcc4da,_0x42a72d){var _0x43b017=_0x2cabc5||client;return _0x43b017['request'](_0xac3ecd,_0x2e99c9)[_0x9a1a('0x1c')](function(_0xd3b76b){logger[_0x9a1a('0x1d')](_0x9a1a('0x1e'),_0x1f5cda,_0x9a1a('0x1f'));logger[_0x9a1a('0x20')](_0x9a1a('0x21'),_0x1f5cda,'request\x20sent',JSON[_0x9a1a('0x22')](_0xd3b76b));if(_0xd3b76b[_0x9a1a('0x23')]){if(_0xd3b76b['error'][_0x9a1a('0x24')]===0x1f4){logger[_0x9a1a('0x23')](_0x9a1a('0x1e'),_0x1f5cda,_0xd3b76b['error']['message']);return _0x42a72d(_0xd3b76b[_0x9a1a('0x23')][_0x9a1a('0x25')]);}logger[_0x9a1a('0x23')](_0x9a1a('0x1e'),_0x1f5cda,_0xd3b76b[_0x9a1a('0x23')][_0x9a1a('0x25')]);return _0xbcc4da(_0xd3b76b[_0x9a1a('0x23')][_0x9a1a('0x25')]);}else{logger[_0x9a1a('0x1d')](_0x9a1a('0x1e'),_0x1f5cda,_0x9a1a('0x1f'));_0xbcc4da(_0xd3b76b[_0x9a1a('0x26')][_0x9a1a('0x25')]);}})['catch'](function(_0x4ba38b){logger[_0x9a1a('0x23')](_0x9a1a('0x1e'),_0x1f5cda,_0x4ba38b);_0x42a72d(_0x4ba38b);});});}function respondWithStatusCode(_0x34982f,_0x35255b){_0x35255b=_0x35255b||0xcc;return function(_0x16027f){if(_0x16027f){return _0x34982f[_0x9a1a('0x27')](_0x35255b);}return _0x34982f[_0x9a1a('0x28')](_0x35255b)[_0x9a1a('0x29')]();};}function respondWithResult(_0x39a16b,_0x14d5a1){_0x14d5a1=_0x14d5a1||0xc8;return function(_0x5c68e8){if(_0x5c68e8){return _0x39a16b['status'](_0x14d5a1)[_0x9a1a('0x2a')](_0x5c68e8);}};}function respondWithFilteredResult(_0x56458b,_0x59239f){return function(_0x2eaa45){if(_0x2eaa45){var _0x566a4d=typeof _0x59239f[_0x9a1a('0x2b')]===_0x9a1a('0x2c')&&typeof _0x59239f[_0x9a1a('0x2d')]===_0x9a1a('0x2c');var _0x23be0a=_0x2eaa45[_0x9a1a('0x2e')];var _0x3c0963=_0x566a4d?0x0:_0x59239f[_0x9a1a('0x2b')];var _0x20b909=_0x566a4d?_0x2eaa45[_0x9a1a('0x2e')]:_0x59239f[_0x9a1a('0x2b')]+_0x59239f[_0x9a1a('0x2d')];var _0x5af6c7;if(_0x20b909>=_0x23be0a){_0x20b909=_0x23be0a;_0x5af6c7=0xc8;}else{_0x5af6c7=0xce;}_0x56458b[_0x9a1a('0x28')](_0x5af6c7);return _0x56458b[_0x9a1a('0x2f')]('Content-Range',_0x3c0963+'-'+_0x20b909+'/'+_0x23be0a)[_0x9a1a('0x2a')](_0x2eaa45);}return null;};}function patchUpdates(_0x51754d){return function(_0x451c8f){try{jsonpatch['apply'](_0x451c8f,_0x51754d,!![]);}catch(_0x59db7a){return BPromise['reject'](_0x59db7a);}return _0x451c8f[_0x9a1a('0x30')]();};}function saveUpdates(_0x2b0cb7,_0x3c99cf){return function(_0x50969f){if(_0x50969f){return _0x50969f[_0x9a1a('0x31')](_0x2b0cb7)[_0x9a1a('0x1c')](function(_0x195eb4){return _0x195eb4;});}return null;};}function removeEntity(_0x3fae66,_0x1866fd){return function(_0x1615a4){if(_0x1615a4){return _0x1615a4[_0x9a1a('0x32')]()[_0x9a1a('0x1c')](function(){_0x3fae66['status'](0xcc)[_0x9a1a('0x29')]();});}};}function handleEntityNotFound(_0x3e322c,_0x43b2e6){return function(_0x45774a){if(!_0x45774a){_0x3e322c[_0x9a1a('0x27')](0x194);}return _0x45774a;};}function handleError(_0x60a1b,_0xc6eb56){_0xc6eb56=_0xc6eb56||0x1f4;return function(_0x29813c){logger[_0x9a1a('0x23')](_0x29813c[_0x9a1a('0x33')]);if(_0x29813c[_0x9a1a('0x34')]){delete _0x29813c[_0x9a1a('0x34')];}_0x60a1b[_0x9a1a('0x28')](_0xc6eb56)[_0x9a1a('0x35')](_0x29813c);};}exports[_0x9a1a('0x36')]=function(_0x2f392d,_0x3923e8){var _0x7207e9={},_0x2f2b94={},_0x221bb9={'count':0x0,'rows':[]};var _0x381ef4=_[_0x9a1a('0x37')](db[_0x9a1a('0x38')][_0x9a1a('0x39')],function(_0x18d061){return{'name':_0x18d061['fieldName'],'type':_0x18d061[_0x9a1a('0x3a')][_0x9a1a('0x3b')]};});_0x2f2b94[_0x9a1a('0x3c')]=_[_0x9a1a('0x37')](_0x381ef4,_0x9a1a('0x34'));_0x2f2b94['query']=_['keys'](_0x2f392d['query']);_0x2f2b94['filters']=_[_0x9a1a('0x3d')](_0x2f2b94[_0x9a1a('0x3c')],_0x2f2b94[_0x9a1a('0x3e')]);_0x7207e9[_0x9a1a('0x3f')]=_[_0x9a1a('0x3d')](_0x2f2b94[_0x9a1a('0x3c')],qs[_0x9a1a('0x40')](_0x2f392d[_0x9a1a('0x3e')][_0x9a1a('0x40')]));_0x7207e9[_0x9a1a('0x3f')]=_0x7207e9[_0x9a1a('0x3f')][_0x9a1a('0x41')]?_0x7207e9[_0x9a1a('0x3f')]:_0x2f2b94[_0x9a1a('0x3c')];if(!_0x2f392d[_0x9a1a('0x3e')][_0x9a1a('0x42')](_0x9a1a('0x43'))){_0x7207e9['limit']=qs[_0x9a1a('0x2d')](_0x2f392d[_0x9a1a('0x3e')][_0x9a1a('0x2d')]);_0x7207e9[_0x9a1a('0x2b')]=qs['offset'](_0x2f392d[_0x9a1a('0x3e')][_0x9a1a('0x2b')]);}_0x7207e9['order']=qs[_0x9a1a('0x44')](_0x2f392d[_0x9a1a('0x3e')][_0x9a1a('0x44')]);_0x7207e9[_0x9a1a('0x45')]=qs[_0x9a1a('0x46')](_[_0x9a1a('0x47')](_0x2f392d['query'],_0x2f2b94[_0x9a1a('0x46')]),_0x381ef4);if(_0x2f392d['query'][_0x9a1a('0x48')]){_0x7207e9[_0x9a1a('0x45')]=_[_0x9a1a('0x49')](_0x7207e9[_0x9a1a('0x45')],{'$or':_[_0x9a1a('0x37')](_0x381ef4,function(_0x32ec72){if(_0x32ec72[_0x9a1a('0x3a')]!==_0x9a1a('0x4a')){var _0x34ecfe={};_0x34ecfe[_0x32ec72[_0x9a1a('0x34')]]={'$like':'%'+_0x2f392d['query']['filter']+'%'};return _0x34ecfe;}})});}_0x7207e9=_[_0x9a1a('0x49')]({},_0x7207e9,_0x2f392d[_0x9a1a('0x4b')]);var _0x2a0adb={'where':_0x7207e9[_0x9a1a('0x45')]};return db[_0x9a1a('0x38')][_0x9a1a('0x2e')](_0x2a0adb)[_0x9a1a('0x1c')](function(_0x5c13a0){_0x221bb9[_0x9a1a('0x2e')]=_0x5c13a0;if(_0x2f392d[_0x9a1a('0x3e')][_0x9a1a('0x4c')]){_0x7207e9[_0x9a1a('0x4d')]=[{'all':!![]}];}return db[_0x9a1a('0x38')][_0x9a1a('0x4e')](_0x7207e9);})[_0x9a1a('0x1c')](function(_0x406ac4){_0x221bb9[_0x9a1a('0x4f')]=_0x406ac4;return _0x221bb9;})[_0x9a1a('0x1c')](respondWithFilteredResult(_0x3923e8,_0x7207e9))[_0x9a1a('0x50')](handleError(_0x3923e8,null));};exports[_0x9a1a('0x51')]=function(_0x5c95f4,_0x56add1){var _0x2f9976={'raw':!![],'where':{'id':_0x5c95f4['params']['id']}},_0x911de={};_0x911de[_0x9a1a('0x3c')]=_[_0x9a1a('0x52')](db[_0x9a1a('0x38')][_0x9a1a('0x39')]);_0x911de[_0x9a1a('0x3e')]=_[_0x9a1a('0x52')](_0x5c95f4['query']);_0x911de[_0x9a1a('0x46')]=_[_0x9a1a('0x3d')](_0x911de[_0x9a1a('0x3c')],_0x911de[_0x9a1a('0x3e')]);_0x2f9976['attributes']=_['intersection'](_0x911de[_0x9a1a('0x3c')],qs['fields'](_0x5c95f4[_0x9a1a('0x3e')][_0x9a1a('0x40')]));_0x2f9976['attributes']=_0x2f9976['attributes']['length']?_0x2f9976[_0x9a1a('0x3f')]:_0x911de[_0x9a1a('0x3c')];if(_0x5c95f4[_0x9a1a('0x3e')][_0x9a1a('0x4c')]){_0x2f9976[_0x9a1a('0x4d')]=[{'all':!![]}];}_0x2f9976=_[_0x9a1a('0x49')]({},_0x2f9976,_0x5c95f4['options']);return db[_0x9a1a('0x38')][_0x9a1a('0x53')](_0x2f9976)[_0x9a1a('0x1c')](handleEntityNotFound(_0x56add1,null))[_0x9a1a('0x1c')](respondWithResult(_0x56add1,null))[_0x9a1a('0x50')](handleError(_0x56add1,null));};exports[_0x9a1a('0x54')]=function(_0x128296,_0x2da70e){return db[_0x9a1a('0x38')][_0x9a1a('0x54')](_0x128296[_0x9a1a('0x55')],{})[_0x9a1a('0x1c')](respondWithResult(_0x2da70e,0xc9))[_0x9a1a('0x50')](handleError(_0x2da70e,null));};exports[_0x9a1a('0x31')]=function(_0x58605b,_0x1df87e){if(_0x58605b['body']['id']){delete _0x58605b[_0x9a1a('0x55')]['id'];}return db[_0x9a1a('0x38')][_0x9a1a('0x53')]({'where':{'id':_0x58605b[_0x9a1a('0x56')]['id']}})[_0x9a1a('0x1c')](handleEntityNotFound(_0x1df87e,null))[_0x9a1a('0x1c')](saveUpdates(_0x58605b[_0x9a1a('0x55')],null))[_0x9a1a('0x1c')](respondWithResult(_0x1df87e,null))['catch'](handleError(_0x1df87e,null));};exports[_0x9a1a('0x32')]=function(_0x3d77fa,_0x3823a8){return db['OpenchannelMessage'][_0x9a1a('0x53')]({'where':{'id':_0x3d77fa[_0x9a1a('0x56')]['id']}})[_0x9a1a('0x1c')](handleEntityNotFound(_0x3823a8,null))['then'](removeEntity(_0x3823a8,null))['catch'](handleError(_0x3823a8,null));};exports[_0x9a1a('0x57')]=function(_0x7dc8d0,_0x5325bd){return db[_0x9a1a('0x38')][_0x9a1a('0x57')]()[_0x9a1a('0x1c')](respondWithResult(_0x5325bd,null))[_0x9a1a('0x50')](handleError(_0x5325bd,null));};var interaction_log=require('../../config/logger')(_0x9a1a('0x58'));exports['accept']=function(_0x584af7,_0x17e4cb,_0xf27853){var _0x2c71f6={'agent':{},'channel':_0x9a1a('0x59')};if(_0x584af7[_0x9a1a('0x55')]['id']){delete _0x584af7[_0x9a1a('0x55')]['id'];}_0x584af7[_0x9a1a('0x55')][_0x9a1a('0x5a')]=!![];_0x584af7[_0x9a1a('0x55')][_0x9a1a('0x5b')]=moment()[_0x9a1a('0x5c')]('YYYY-MM-DD\x20HH:mm:ss');_0x584af7[_0x9a1a('0x55')][_0x9a1a('0x5d')]=_0x584af7[_0x9a1a('0x55')][_0x9a1a('0x5d')]||_0x584af7[_0x9a1a('0x5e')]['id'];_0x2c71f6['agent']['id']=_0x584af7[_0x9a1a('0x55')][_0x9a1a('0x5d')];return db[_0x9a1a('0x38')][_0x9a1a('0x53')]({'where':{'id':_0x584af7[_0x9a1a('0x56')]['id'],'UserId':null}})['then'](handleEntityNotFound(_0x17e4cb,null))[_0x9a1a('0x1c')](saveUpdates(_0x584af7['body'],null))['then'](function(_0x1a3719){if(_0x1a3719){_0x2c71f6[_0x9a1a('0x25')]=_0x1a3719[_0x9a1a('0x5f')]({'plain':!![]});return db[_0x9a1a('0x60')]['find']({'where':{'id':_0x1a3719[_0x9a1a('0x61')]}});}return null;})[_0x9a1a('0x1c')](handleEntityNotFound(_0x17e4cb,null))[_0x9a1a('0x1c')](function(_0x5c454e){if(_0x5c454e){return _0x5c454e[_0x9a1a('0x31')]({'UserId':_0x584af7['body'][_0x9a1a('0x5d')],'read1stAt':_['isNil'](_0x5c454e[_0x9a1a('0x62')])?moment()[_0x9a1a('0x5c')](_0x9a1a('0x63')):undefined});}return null;})[_0x9a1a('0x1c')](function(_0x952716){if(_0x952716){_0x2c71f6[_0x9a1a('0x64')]=_0x952716['get']({'plain':!![]});interaction_log[_0x9a1a('0x1d')](_0x9a1a('0x65'),_0x584af7[_0x9a1a('0x5e')]['id'],_0x584af7[_0x9a1a('0x5e')]['name'],_0x584af7[_0x9a1a('0x5e')][_0x9a1a('0x66')],_0x2c71f6['interaction']['id'],_0x584af7['body']?JSON['stringify'](_0x584af7['body']):_0x9a1a('0x67'));return respondWithRpcPromise(_0x9a1a('0x68'),'acceptMessage',_0x2c71f6);}return null;})[_0x9a1a('0x1c')](function(_0x591723){var _0x118944=_0x9a1a('0x69')+_0x591723[_0x9a1a('0x25')][_0x9a1a('0x6a')];return db[_0x9a1a('0x6b')][_0x9a1a('0x3e')](_0x118944,{'type':db[_0x9a1a('0x6c')][_0x9a1a('0x6d')][_0x9a1a('0x6e')],'raw':!![]})[_0x9a1a('0x1c')](function(_0x3a3b44){return _0x3a3b44;});})[_0x9a1a('0x1c')](function(_0x2b9a93){if(_0x2b9a93){_0x2c71f6[_0x9a1a('0x25')][_0x9a1a('0x6f')]=_0x2b9a93[0x0];if(!_0x584af7['body'][_0x9a1a('0x5d')])return;return db[_0x9a1a('0x70')]['find']({'where':{'id':_0x584af7[_0x9a1a('0x55')]['UserId'],'role':_0x9a1a('0x71')},'attributes':['id',_0x9a1a('0x34'),'fullname',_0x9a1a('0x72'),_0x9a1a('0x73')],'raw':!![]});}return null;})[_0x9a1a('0x1c')](function(_0x1ffc5c){if(!_0x1ffc5c)return null;_0x2c71f6[_0x9a1a('0x25')][_0x9a1a('0x71')]=_0x1ffc5c;return _0x2c71f6;})[_0x9a1a('0x1c')](function(_0x172bc9){if(_0x172bc9){if(_0x584af7['body'][_0x9a1a('0x74')]){_0x2c71f6[_0x9a1a('0x25')][_0x9a1a('0x75')]=util['format'](_0x9a1a('0x76'),_0x584af7[_0x9a1a('0x5e')][_0x9a1a('0x34')]);_0x2c71f6[_0x9a1a('0x25')][_0x9a1a('0x77')]=_0x2c71f6[_0x9a1a('0x77')];_0x2c71f6[_0x9a1a('0x25')]['motionChannel']=_0x2c71f6['channel'];_0x2c71f6['message'][_0x9a1a('0x78')]=_0x9a1a('0x79');return respondWithRpcPromise(_0x9a1a('0x7a'),'EventManager',{'event':'acceptmessage','message':_0x2c71f6['message']},client9002)['then'](function(){return _0x2c71f6;});}return _0x2c71f6;}return null;})['then'](respondWithResult(_0x17e4cb,null))[_0x9a1a('0x50')](handleError(_0x17e4cb,null));};var interaction_log=require('../../config/logger')(_0x9a1a('0x58'));exports[_0x9a1a('0x7b')]=function(_0x37dc6c,_0xfa2a74,_0x3bc8bb){var _0x34e630={'agent':{},'channel':_0x9a1a('0x59')};if(_0x37dc6c[_0x9a1a('0x55')]['id']){delete _0x37dc6c[_0x9a1a('0x55')]['id'];}_0x37dc6c['body'][_0x9a1a('0x5d')]=_0x37dc6c[_0x9a1a('0x55')][_0x9a1a('0x5d')]||_0x37dc6c[_0x9a1a('0x5e')]['id'];_0x34e630[_0x9a1a('0x71')]['id']=_0x37dc6c[_0x9a1a('0x55')][_0x9a1a('0x5d')];return db['OpenchannelMessage'][_0x9a1a('0x53')]({'where':{'id':_0x37dc6c['params']['id'],'UserId':null}})[_0x9a1a('0x1c')](handleEntityNotFound(_0xfa2a74,null))['then'](function(_0x174a92){if(_0x174a92){_0x34e630['message']=_0x174a92[_0x9a1a('0x5f')]({'plain':!![]});return db[_0x9a1a('0x60')][_0x9a1a('0x53')]({'where':{'id':_0x174a92[_0x9a1a('0x61')]}});}return null;})[_0x9a1a('0x1c')](handleEntityNotFound(_0xfa2a74,null))['then'](function(_0x3dabdd){if(_0x3dabdd){_0x34e630[_0x9a1a('0x64')]=_0x3dabdd[_0x9a1a('0x5f')]({'plain':!![]});interaction_log[_0x9a1a('0x1d')](_0x9a1a('0x7c'),_0x37dc6c['user']['id'],_0x37dc6c[_0x9a1a('0x5e')][_0x9a1a('0x34')],_0x37dc6c[_0x9a1a('0x5e')]['role'],_0x34e630[_0x9a1a('0x64')]['id'],_0x37dc6c['body']?JSON['stringify'](_0x37dc6c[_0x9a1a('0x55')]):'null');return respondWithRpcPromise(_0x9a1a('0x7d'),_0x9a1a('0x7e'),_0x34e630);}return null;})[_0x9a1a('0x1c')](function(_0x142326){var _0x34eeb5=_0x9a1a('0x69')+_0x142326[_0x9a1a('0x25')][_0x9a1a('0x6a')];return db[_0x9a1a('0x6b')][_0x9a1a('0x3e')](_0x34eeb5,{'type':db[_0x9a1a('0x6c')][_0x9a1a('0x6d')]['SELECT'],'raw':!![]})['then'](function(_0x29df76){return _0x29df76;});})['then'](function(_0x45d432){if(_0x45d432){_0x34e630[_0x9a1a('0x25')][_0x9a1a('0x6f')]=_0x45d432[0x0];if(!_0x37dc6c[_0x9a1a('0x55')][_0x9a1a('0x5d')])return;return db[_0x9a1a('0x70')][_0x9a1a('0x53')]({'where':{'id':_0x37dc6c[_0x9a1a('0x55')]['UserId'],'role':_0x9a1a('0x71')},'attributes':['id','name',_0x9a1a('0x7f'),'email',_0x9a1a('0x73')],'raw':!![]});}return null;})[_0x9a1a('0x1c')](function(_0x38a0a5){if(!_0x38a0a5)return null;_0x34e630['message']['agent']=_0x38a0a5;return _0x34e630;})[_0x9a1a('0x1c')](function(_0x2a5e2a){if(_0x2a5e2a){_0x2a5e2a['message'][_0x9a1a('0x75')]=util[_0x9a1a('0x5c')]('SIP/%s',_0x37dc6c[_0x9a1a('0x5e')]['name']);_0x2a5e2a[_0x9a1a('0x25')][_0x9a1a('0x77')]=_0x34e630[_0x9a1a('0x77')];_0x2a5e2a[_0x9a1a('0x25')][_0x9a1a('0x80')]=_0x34e630[_0x9a1a('0x77')];_0x2a5e2a[_0x9a1a('0x25')][_0x9a1a('0x78')]=_0x9a1a('0x7b');respondWithRpcPromise('EventManager',_0x9a1a('0x7a'),{'event':_0x9a1a('0x81'),'message':_0x2a5e2a['message']},client9002);return _0x34e630;}return null;})[_0x9a1a('0x1c')](respondWithResult(_0xfa2a74,null))['catch'](handleError(_0xfa2a74,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf82a=['save','update','remove','emit','exports','../../mysqldb','OpenchannelMessage'];(function(_0x3f7598,_0x212e37){var _0x51fb16=function(_0x4a5c0b){while(--_0x4a5c0b){_0x3f7598['push'](_0x3f7598['shift']());}};_0x51fb16(++_0x212e37);}(_0xf82a,0x1be));var _0xaf82=function(_0x475000,_0x11ede6){_0x475000=_0x475000-0x0;var _0x419dd8=_0xf82a[_0x475000];return _0x419dd8;};'use strict';var EventEmitter=require('events');var OpenchannelMessage=require(_0xaf82('0x0'))['db'][_0xaf82('0x1')];var OpenchannelMessageEvents=new EventEmitter();OpenchannelMessageEvents['setMaxListeners'](0x0);var events={'afterCreate':_0xaf82('0x2'),'afterUpdate':_0xaf82('0x3'),'afterDestroy':_0xaf82('0x4')};function emitEvent(_0x1219de){return function(_0x42b915,_0x15b30a,_0x491ca4){OpenchannelMessageEvents[_0xaf82('0x5')](_0x1219de+':'+_0x42b915['id'],_0x42b915);OpenchannelMessageEvents[_0xaf82('0x5')](_0x1219de,_0x42b915);_0x491ca4(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];OpenchannelMessage['hook'](e,emitEvent(event));}}module[_0xaf82('0x6')]=OpenchannelMessageEvents;
\ No newline at end of file
+var _0xb3b1=['update','remove','emit','hasOwnProperty','hook','exports','events','../../mysqldb','setMaxListeners','save'];(function(_0x260073,_0xbe6af9){var _0x4ff033=function(_0x4a7c64){while(--_0x4a7c64){_0x260073['push'](_0x260073['shift']());}};_0x4ff033(++_0xbe6af9);}(_0xb3b1,0x146));var _0x1b3b=function(_0x2c6a92,_0x1c1d89){_0x2c6a92=_0x2c6a92-0x0;var _0x296bed=_0xb3b1[_0x2c6a92];return _0x296bed;};'use strict';var EventEmitter=require(_0x1b3b('0x0'));var OpenchannelMessage=require(_0x1b3b('0x1'))['db']['OpenchannelMessage'];var OpenchannelMessageEvents=new EventEmitter();OpenchannelMessageEvents[_0x1b3b('0x2')](0x0);var events={'afterCreate':_0x1b3b('0x3'),'afterUpdate':_0x1b3b('0x4'),'afterDestroy':_0x1b3b('0x5')};function emitEvent(_0x337415){return function(_0x4ee6a1,_0x5e958c,_0x93e524){OpenchannelMessageEvents[_0x1b3b('0x6')](_0x337415+':'+_0x4ee6a1['id'],_0x4ee6a1);OpenchannelMessageEvents[_0x1b3b('0x6')](_0x337415,_0x4ee6a1);_0x93e524(null);};}for(var e in events){if(events[_0x1b3b('0x7')](e)){var event=events[e];OpenchannelMessage[_0x1b3b('0x8')](e,emitEvent(event));}}module[_0x1b3b('0x9')]=OpenchannelMessageEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe511=['define','fti_openchannel_messages','body','models','get','toLowerCase','direction','out','secret','isNil','OpenchannelInteraction','findOne','OpenchannelInteractionId','then','update','createdAt','catch','error','OpenchannelAccount','find','OpenchannelAccountId','Contact','keys','afterCreate','Forwarding\x20message\x20%d\x20to\x20%s','replyUri','Interactions','length','Interaction','omit','POST','info','format','threadId','OpenchannelMessage,\x20%s,\x20%s','inspect','finally','utf8mb4_unicode_ci','lodash','util','api','bluebird','request-promise','rimraf','../../config/environment','./openchannelMessage.attributes','exports'];(function(_0x559739,_0x5236bd){var _0x654710=function(_0x1f5895){while(--_0x1f5895){_0x559739['push'](_0x559739['shift']());}};_0x654710(++_0x5236bd);}(_0xe511,0x16f));var _0x1e51=function(_0x845fcc,_0x518cfb){_0x845fcc=_0x845fcc-0x0;var _0x3a0e79=_0xe511[_0x845fcc];return _0x3a0e79;};'use strict';var _=require(_0x1e51('0x0'));var util=require(_0x1e51('0x1'));var logger=require('../../config/logger')(_0x1e51('0x2'));var moment=require('moment');var BPromise=require(_0x1e51('0x3'));var rp=require(_0x1e51('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0x1e51('0x5'));var config=require(_0x1e51('0x6'));var attributes=require(_0x1e51('0x7'));module[_0x1e51('0x8')]=function(_0x480cca,_0x26b22c){return _0x480cca[_0x1e51('0x9')]('OpenchannelMessage',attributes,{'tableName':'openchannel_messages','paranoid':![],'indexes':[{'name':_0x1e51('0xa'),'fields':[_0x1e51('0xb')],'type':'FULLTEXT'}],'timestamps':!![],'hooks':{'afterCreate':function(_0x49d359,_0x658941,_0x2712e0){var _0x29da1f=_0x480cca[_0x1e51('0xc')];var _0x4241a6=_0x49d359[_0x1e51('0xd')]({'plain':!![]});if(_0x4241a6['direction'][_0x1e51('0xe')]()==='in'||_0x4241a6[_0x1e51('0xf')][_0x1e51('0xe')]()===_0x1e51('0x10')&&!_0x4241a6[_0x1e51('0x11')]&&!_[_0x1e51('0x12')](_0x4241a6['UserId'])){_0x29da1f[_0x1e51('0x13')][_0x1e51('0x14')]({'where':{'id':_0x4241a6[_0x1e51('0x15')]}})[_0x1e51('0x16')](function(_0x21bcbd){if(_0x21bcbd){_0x21bcbd[_0x1e51('0x17')]({'lastMsgAt':_0x4241a6[_0x1e51('0x18')],'lastMsgDirection':_0x4241a6[_0x1e51('0xf')][_0x1e51('0xe')]()});}})[_0x1e51('0x19')](function(_0x5a5c07){console[_0x1e51('0x1a')](_0x5a5c07);});}if(_0x4241a6[_0x1e51('0xf')]===_0x1e51('0x10')&&!_0x4241a6['secret']){var _0xa3b410;_0x29da1f['CmContact']['describe']()[_0x1e51('0x16')](function(_0x27dcad){return _0x29da1f[_0x1e51('0x1b')][_0x1e51('0x1c')]({'where':{'id':_0x4241a6[_0x1e51('0x1d')]},'include':[{'model':_0x29da1f[_0x1e51('0x13')],'as':'Interactions','where':{'id':_0x4241a6[_0x1e51('0x15')]},'limit':0x1,'include':[{'model':_0x29da1f['CmContact'],'as':_0x1e51('0x1e'),'attributes':_[_0x1e51('0x1f')](_0x27dcad)}]}]});})[_0x1e51('0x16')](function(_0x183a95){_0xa3b410=_0x183a95['get']({'plain':!![]});if(_0xa3b410&&_0xa3b410['replyUri']){logger['info']('OpenchannelMessage,\x20%s,\x20%s',_0x1e51('0x20'),util['format'](_0x1e51('0x21'),_0x4241a6['id'],_0xa3b410[_0x1e51('0x22')]));if(_0xa3b410[_0x1e51('0x23')]&&_0xa3b410[_0x1e51('0x23')][_0x1e51('0x24')]){_0x4241a6[_0x1e51('0x25')]=_[_0x1e51('0x26')](_0xa3b410[_0x1e51('0x23')][0x0],'Contact');_0x4241a6['Contact']=_0xa3b410[_0x1e51('0x23')][0x0][_0x1e51('0x1e')];}var _0x658941={'method':_0x1e51('0x27'),'uri':encodeURI(_0xa3b410['replyUri']),'json':!![],'resolveWithFullResponse':!![]};switch(_0x658941['method']){case'GET':_0x658941['qs']=_0x4241a6;break;case _0x1e51('0x27'):_0x658941[_0x1e51('0xb')]=_0x4241a6;break;}return rp(_0x658941)[_0x1e51('0x16')](function(_0x5412bc){logger[_0x1e51('0x28')]('OpenchannelMessage,\x20%s,\x20%s','afterCreate',util[_0x1e51('0x29')]('Message\x20%d\x20forwarded\x20to\x20%s',_0x4241a6['id'],_0xa3b410[_0x1e51('0x22')]));if(_0x5412bc[_0x1e51('0xb')]['threadId']&&_0x5412bc[_0x1e51('0xb')][_0x1e51('0x2a')]!=_0x4241a6[_0x1e51('0x25')][_0x1e51('0x2a')]){return _0x29da1f['OpenchannelInteraction']['update']({'threadId':_0x5412bc['body'][_0x1e51('0x2a')]},{'logging':!![],'where':{'id':_0x4241a6[_0x1e51('0x25')]['id']}});}else{return;}})[_0x1e51('0x16')](function(){return _0x49d359[_0x1e51('0x17')]({'read':!![]});})[_0x1e51('0x19')](function(_0x27d9a2){logger[_0x1e51('0x1a')](_0x1e51('0x2b'),_0x1e51('0x20'),util[_0x1e51('0x2c')](_0x27d9a2,{'showHidden':![],'depth':null}));_0x2712e0();});}else{_0x2712e0();}})[_0x1e51('0x2d')](function(){_0x2712e0();});}else{_0x2712e0();}}},'charset':'utf8mb4','collate':_0x1e51('0x2e')});};
\ No newline at end of file
+var _0x14a0=['fti_openchannel_messages','direction','toLowerCase','out','secret','isNil','UserId','OpenchannelInteraction','findOne','OpenchannelInteractionId','then','update','createdAt','catch','error','CmContact','describe','OpenchannelAccount','find','OpenchannelAccountId','Interactions','Contact','get','replyUri','info','OpenchannelMessage,\x20%s,\x20%s','afterCreate','format','Forwarding\x20message\x20%d\x20to\x20%s','length','Interaction','omit','GET','POST','Message\x20%d\x20forwarded\x20to\x20%s','body','threadId','inspect','finally','utf8mb4_unicode_ci','util','../../config/logger','api','moment','bluebird','request-promise','path','./openchannelMessage.attributes','exports','OpenchannelMessage','openchannel_messages'];(function(_0x451b6a,_0x527a62){var _0x58d03d=function(_0x589bbc){while(--_0x589bbc){_0x451b6a['push'](_0x451b6a['shift']());}};_0x58d03d(++_0x527a62);}(_0x14a0,0x8e));var _0x014a=function(_0x8c75e9,_0x3221f9){_0x8c75e9=_0x8c75e9-0x0;var _0x365703=_0x14a0[_0x8c75e9];return _0x365703;};'use strict';var _=require('lodash');var util=require(_0x014a('0x0'));var logger=require(_0x014a('0x1'))(_0x014a('0x2'));var moment=require(_0x014a('0x3'));var BPromise=require(_0x014a('0x4'));var rp=require(_0x014a('0x5'));var fs=require('fs');var path=require(_0x014a('0x6'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0x014a('0x7'));module[_0x014a('0x8')]=function(_0x38a22c,_0x5ec84d){return _0x38a22c['define'](_0x014a('0x9'),attributes,{'tableName':_0x014a('0xa'),'paranoid':![],'indexes':[{'name':_0x014a('0xb'),'fields':['body'],'type':'FULLTEXT'}],'timestamps':!![],'hooks':{'afterCreate':function(_0x2519e3,_0x4f5506,_0x490ea2){var _0x5aa52f=_0x38a22c['models'];var _0x330469=_0x2519e3['get']({'plain':!![]});if(_0x330469[_0x014a('0xc')][_0x014a('0xd')]()==='in'||_0x330469['direction'][_0x014a('0xd')]()===_0x014a('0xe')&&!_0x330469[_0x014a('0xf')]&&!_[_0x014a('0x10')](_0x330469[_0x014a('0x11')])){_0x5aa52f[_0x014a('0x12')][_0x014a('0x13')]({'where':{'id':_0x330469[_0x014a('0x14')]}})[_0x014a('0x15')](function(_0x71535d){if(_0x71535d){_0x71535d[_0x014a('0x16')]({'lastMsgAt':_0x330469[_0x014a('0x17')],'lastMsgDirection':_0x330469['direction'][_0x014a('0xd')]()});}})[_0x014a('0x18')](function(_0x59f207){console[_0x014a('0x19')](_0x59f207);});}if(_0x330469[_0x014a('0xc')]==='out'&&!_0x330469[_0x014a('0xf')]){var _0x17e4be;_0x5aa52f[_0x014a('0x1a')][_0x014a('0x1b')]()[_0x014a('0x15')](function(_0x12d339){return _0x5aa52f[_0x014a('0x1c')][_0x014a('0x1d')]({'where':{'id':_0x330469[_0x014a('0x1e')]},'include':[{'model':_0x5aa52f[_0x014a('0x12')],'as':_0x014a('0x1f'),'where':{'id':_0x330469[_0x014a('0x14')]},'limit':0x1,'include':[{'model':_0x5aa52f[_0x014a('0x1a')],'as':_0x014a('0x20'),'attributes':_['keys'](_0x12d339)}]}]});})[_0x014a('0x15')](function(_0x109a9c){_0x17e4be=_0x109a9c[_0x014a('0x21')]({'plain':!![]});if(_0x17e4be&&_0x17e4be[_0x014a('0x22')]){logger[_0x014a('0x23')](_0x014a('0x24'),_0x014a('0x25'),util[_0x014a('0x26')](_0x014a('0x27'),_0x330469['id'],_0x17e4be['replyUri']));if(_0x17e4be[_0x014a('0x1f')]&&_0x17e4be['Interactions'][_0x014a('0x28')]){_0x330469[_0x014a('0x29')]=_[_0x014a('0x2a')](_0x17e4be[_0x014a('0x1f')][0x0],_0x014a('0x20'));_0x330469[_0x014a('0x20')]=_0x17e4be[_0x014a('0x1f')][0x0][_0x014a('0x20')];}var _0x4f5506={'method':'POST','uri':encodeURI(_0x17e4be[_0x014a('0x22')]),'json':!![],'resolveWithFullResponse':!![]};switch(_0x4f5506['method']){case _0x014a('0x2b'):_0x4f5506['qs']=_0x330469;break;case _0x014a('0x2c'):_0x4f5506['body']=_0x330469;break;}return rp(_0x4f5506)['then'](function(_0x9a901f){logger[_0x014a('0x23')](_0x014a('0x24'),'afterCreate',util[_0x014a('0x26')](_0x014a('0x2d'),_0x330469['id'],_0x17e4be['replyUri']));if(_0x9a901f[_0x014a('0x2e')][_0x014a('0x2f')]&&_0x9a901f['body']['threadId']!=_0x330469[_0x014a('0x29')][_0x014a('0x2f')]){return _0x5aa52f[_0x014a('0x12')][_0x014a('0x16')]({'threadId':_0x9a901f['body'][_0x014a('0x2f')]},{'logging':!![],'where':{'id':_0x330469[_0x014a('0x29')]['id']}});}else{return;}})[_0x014a('0x15')](function(){return _0x2519e3[_0x014a('0x16')]({'read':!![]});})[_0x014a('0x18')](function(_0x1eb007){logger[_0x014a('0x19')](_0x014a('0x24'),_0x014a('0x25'),util[_0x014a('0x30')](_0x1eb007,{'showHidden':![],'depth':null}));_0x490ea2();});}else{_0x490ea2();}})[_0x014a('0x31')](function(){_0x490ea2();});}else{_0x490ea2();}}},'charset':'utf8mb4','collate':_0x014a('0x32')});};
\ 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(_0xca82ce,_0x23e733){var _0x382100=function(_0x2f73e7){while(--_0x2f73e7){_0xca82ce['push'](_0xca82ce['shift']());}};_0x382100(++_0x23e733);}(_0x5f66,0x1a0));var _0x65f6=function(_0x4cf98e,_0xba4b79){_0x4cf98e=_0x4cf98e-0x0;var _0x1623ac=_0x5f66[_0x4cf98e];return _0x1623ac;};'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 _0x7a54=['../../config/environment','jayson/promise','http','defaults','redis','socket.io-emitter','then','info','OpenchannelMessage,\x20%s,\x20%s','request\x20sent','debug','OpenchannelMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','CreateOpenchannelMessage','OpenchannelMessage','body','options','lodash','util','moment','randomstring','ioredis','../../config/utils','../../config/logger','rpc'];(function(_0x180629,_0x5bbb89){var _0x4b6f01=function(_0x43c638){while(--_0x43c638){_0x180629['push'](_0x180629['shift']());}};_0x4b6f01(++_0x5bbb89);}(_0x7a54,0x106));var _0x47a5=function(_0x3adf7e,_0x13703a){_0x3adf7e=_0x3adf7e-0x0;var _0x534565=_0x7a54[_0x3adf7e];return _0x534565;};'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});config['redis']=_[_0x47a5('0xb')](config[_0x47a5('0xc')],{'host':'localhost','port':0x18eb});var socket=require(_0x47a5('0xd'))(new Redis(config['redis']));require('./openchannelMessage.socket')['register'](socket);function respondWithRpcPromise(_0x2a0e98,_0x2baee7,_0x5e31dd){return new BPromise(function(_0x2eb0dd,_0x49e844){return client['request'](_0x2a0e98,_0x5e31dd)[_0x47a5('0xe')](function(_0x69e4d4){logger[_0x47a5('0xf')](_0x47a5('0x10'),_0x2baee7,_0x47a5('0x11'));logger[_0x47a5('0x12')](_0x47a5('0x13'),_0x2baee7,'request\x20sent',JSON[_0x47a5('0x14')](_0x69e4d4));if(_0x69e4d4[_0x47a5('0x15')]){if(_0x69e4d4[_0x47a5('0x15')][_0x47a5('0x16')]===0x1f4){logger[_0x47a5('0x15')](_0x47a5('0x10'),_0x2baee7,_0x69e4d4[_0x47a5('0x15')][_0x47a5('0x17')]);return _0x49e844(_0x69e4d4['error'][_0x47a5('0x17')]);}logger[_0x47a5('0x15')](_0x47a5('0x10'),_0x2baee7,_0x69e4d4[_0x47a5('0x15')][_0x47a5('0x17')]);return _0x2eb0dd(_0x69e4d4['error']['message']);}else{logger[_0x47a5('0xf')]('OpenchannelMessage,\x20%s,\x20%s',_0x2baee7,'request\x20sent');_0x2eb0dd(_0x69e4d4[_0x47a5('0x18')][_0x47a5('0x17')]);}})[_0x47a5('0x19')](function(_0x1ef371){logger[_0x47a5('0x15')](_0x47a5('0x10'),_0x2baee7,_0x1ef371);_0x49e844(_0x1ef371);});});}exports[_0x47a5('0x1a')]=function(_0xe3c618){var _0x3aed38=this;return new Promise(function(_0x4a9fcb,_0x1570bc){return db[_0x47a5('0x1b')]['create'](_0xe3c618[_0x47a5('0x1c')],{'raw':_0xe3c618[_0x47a5('0x1d')]?_0xe3c618[_0x47a5('0x1d')]['raw']===undefined?!![]:![]:!![]})[_0x47a5('0xe')](function(_0x2f142b){logger[_0x47a5('0xf')](_0x47a5('0x1a'),_0xe3c618);logger['debug'](_0x47a5('0x1a'),_0xe3c618,JSON[_0x47a5('0x14')](_0x2f142b));_0x4a9fcb(_0x2f142b);})['catch'](function(_0x28747d){logger[_0x47a5('0x15')](_0x47a5('0x1a'),_0x28747d[_0x47a5('0x17')],_0xe3c618);_0x1570bc(_0x3aed38[_0x47a5('0x15')](0x1f4,_0x28747d['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x46bc=['update','emit','register','save'];(function(_0x207d2f,_0x44400f){var _0x3c3498=function(_0x57fdfb){while(--_0x57fdfb){_0x207d2f['push'](_0x207d2f['shift']());}};_0x3c3498(++_0x44400f);}(_0x46bc,0x1b3));var _0xc46b=function(_0x195c21,_0x332612){_0x195c21=_0x195c21-0x0;var _0x3576a8=_0x46bc[_0x195c21];return _0x3576a8;};'use strict';var OpenchannelMessageEvents=require('./openchannelMessage.events');var events=[_0xc46b('0x0'),'remove',_0xc46b('0x1')];function createListener(_0x4c7660,_0x562426){return function(_0x3d19b4){_0x562426[_0xc46b('0x2')](_0x4c7660,_0x3d19b4);};}function removeListener(_0x43e40a,_0x452065){return function(){OpenchannelMessageEvents['removeListener'](_0x43e40a,_0x452065);};}exports[_0xc46b('0x3')]=function(_0x5cc4e8){for(var _0x5ae58c=0x0,_0x5c994d=events['length'];_0x5ae58c<_0x5c994d;_0x5ae58c++){var _0x171a7a=events[_0x5ae58c];var _0x498274=createListener('openchannelMessage:'+_0x171a7a,_0x5cc4e8);OpenchannelMessageEvents['on'](_0x171a7a,_0x498274);}};
\ No newline at end of file
+var _0xcf81=['length','./openchannelMessage.events','save','remove','update','register'];(function(_0x5798c4,_0x1dfdcf){var _0x2fcfc1=function(_0x4c771f){while(--_0x4c771f){_0x5798c4['push'](_0x5798c4['shift']());}};_0x2fcfc1(++_0x1dfdcf);}(_0xcf81,0x199));var _0x1cf8=function(_0x15b086,_0x209ce4){_0x15b086=_0x15b086-0x0;var _0x32e24d=_0xcf81[_0x15b086];return _0x32e24d;};'use strict';var OpenchannelMessageEvents=require(_0x1cf8('0x0'));var events=[_0x1cf8('0x1'),_0x1cf8('0x2'),_0x1cf8('0x3')];function createListener(_0x538073,_0x58c781){return function(_0x1f591){_0x58c781['emit'](_0x538073,_0x1f591);};}function removeListener(_0x6d1583,_0x288172){return function(){OpenchannelMessageEvents['removeListener'](_0x6d1583,_0x288172);};}exports[_0x1cf8('0x4')]=function(_0x314ab5){for(var _0x44e6c0=0x0,_0x4fce03=events[_0x1cf8('0x5')];_0x44e6c0<_0x4fce03;_0x44e6c0++){var _0x30193b=events[_0x44e6c0];var _0x46f8ee=createListener('openchannelMessage:'+_0x30193b,_0x314ab5);OpenchannelMessageEvents['on'](_0x30193b,_0x46f8ee);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2e1f=['create','addTeams','addAgents','put','update','delete','removeTeams','removeAgents','exports','multer','util','path','Router','fs-extra','../../components/auth/service','../../config/environment','get','index','isAuthenticated','describe','/:id','show','getMembers','/:id/teams','getTeams','/:id/users','post'];(function(_0x4c38a2,_0x582777){var _0x59432e=function(_0x41eae9){while(--_0x41eae9){_0x4c38a2['push'](_0x4c38a2['shift']());}};_0x59432e(++_0x582777);}(_0x2e1f,0x117));var _0xf2e1=function(_0x5d6c3e,_0x409a3e){_0x5d6c3e=_0x5d6c3e-0x0;var _0x44ecb7=_0x2e1f[_0x5d6c3e];return _0x44ecb7;};'use strict';var multer=require(_0xf2e1('0x0'));var util=require(_0xf2e1('0x1'));var path=require(_0xf2e1('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0xf2e1('0x3')]();var fs_extra=require(_0xf2e1('0x4'));var auth=require(_0xf2e1('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0xf2e1('0x6'));var controller=require('./openchannelQueue.controller');router[_0xf2e1('0x7')]('/',auth['isAuthenticated'](),controller[_0xf2e1('0x8')]);router['get']('/describe',auth[_0xf2e1('0x9')](),controller[_0xf2e1('0xa')]);router[_0xf2e1('0x7')](_0xf2e1('0xb'),auth[_0xf2e1('0x9')](),controller[_0xf2e1('0xc')]);router[_0xf2e1('0x7')]('/:id/members',auth[_0xf2e1('0x9')](),controller[_0xf2e1('0xd')]);router['get'](_0xf2e1('0xe'),auth['isAuthenticated'](),controller[_0xf2e1('0xf')]);router[_0xf2e1('0x7')](_0xf2e1('0x10'),auth['isAuthenticated'](),controller['getAgents']);router[_0xf2e1('0x11')]('/',auth[_0xf2e1('0x9')](),controller[_0xf2e1('0x12')]);router['post'](_0xf2e1('0xe'),auth[_0xf2e1('0x9')](),controller[_0xf2e1('0x13')]);router[_0xf2e1('0x11')](_0xf2e1('0x10'),auth[_0xf2e1('0x9')](),controller[_0xf2e1('0x14')]);router[_0xf2e1('0x15')](_0xf2e1('0xb'),auth[_0xf2e1('0x9')](),controller[_0xf2e1('0x16')]);router[_0xf2e1('0x17')](_0xf2e1('0xb'),auth[_0xf2e1('0x9')](),controller['destroy']);router[_0xf2e1('0x17')]('/:id/teams',auth[_0xf2e1('0x9')](),controller[_0xf2e1('0x18')]);router[_0xf2e1('0x17')](_0xf2e1('0x10'),auth[_0xf2e1('0x9')](),controller[_0xf2e1('0x19')]);module[_0xf2e1('0x1a')]=router;
\ No newline at end of file
+var _0xc466=['get','isAuthenticated','index','/:id','show','/:id/members','getMembers','/:id/teams','/:id/users','post','create','addTeams','put','update','destroy','removeTeams','delete','removeAgents','multer','util','express','Router','../../components/interaction/service','../../config/environment','./openchannelQueue.controller'];(function(_0x9e1606,_0x9571f5){var _0x115f2c=function(_0x292403){while(--_0x292403){_0x9e1606['push'](_0x9e1606['shift']());}};_0x115f2c(++_0x9571f5);}(_0xc466,0x189));var _0x6c46=function(_0x4b7704,_0x20467a){_0x4b7704=_0x4b7704-0x0;var _0x5bfae9=_0xc466[_0x4b7704];return _0x5bfae9;};'use strict';var multer=require(_0x6c46('0x0'));var util=require(_0x6c46('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require(_0x6c46('0x2'));var router=express[_0x6c46('0x3')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0x6c46('0x4'));var config=require(_0x6c46('0x5'));var controller=require(_0x6c46('0x6'));router[_0x6c46('0x7')]('/',auth[_0x6c46('0x8')](),controller[_0x6c46('0x9')]);router['get']('/describe',auth[_0x6c46('0x8')](),controller['describe']);router[_0x6c46('0x7')](_0x6c46('0xa'),auth[_0x6c46('0x8')](),controller[_0x6c46('0xb')]);router[_0x6c46('0x7')](_0x6c46('0xc'),auth[_0x6c46('0x8')](),controller[_0x6c46('0xd')]);router[_0x6c46('0x7')](_0x6c46('0xe'),auth[_0x6c46('0x8')](),controller['getTeams']);router[_0x6c46('0x7')](_0x6c46('0xf'),auth[_0x6c46('0x8')](),controller['getAgents']);router[_0x6c46('0x10')]('/',auth[_0x6c46('0x8')](),controller[_0x6c46('0x11')]);router[_0x6c46('0x10')](_0x6c46('0xe'),auth[_0x6c46('0x8')](),controller[_0x6c46('0x12')]);router[_0x6c46('0x10')](_0x6c46('0xf'),auth[_0x6c46('0x8')](),controller['addAgents']);router[_0x6c46('0x13')](_0x6c46('0xa'),auth['isAuthenticated'](),controller[_0x6c46('0x14')]);router['delete'](_0x6c46('0xa'),auth['isAuthenticated'](),controller[_0x6c46('0x15')]);router['delete']('/:id/teams',auth[_0x6c46('0x8')](),controller[_0x6c46('0x16')]);router[_0x6c46('0x17')](_0x6c46('0xf'),auth['isAuthenticated'](),controller[_0x6c46('0x18')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcb7a=['sequelize','exports','STRING','ENUM','rrmemory'];(function(_0xcfed91,_0x29b51b){var _0x42e245=function(_0x1a131c){while(--_0x1a131c){_0xcfed91['push'](_0xcfed91['shift']());}};_0x42e245(++_0x29b51b);}(_0xcb7a,0xa5));var _0xacb7=function(_0x32800c,_0xa2dbcd){_0x32800c=_0x32800c-0x0;var _0x31912b=_0xcb7a[_0x32800c];return _0x31912b;};'use strict';var Sequelize=require(_0xacb7('0x0'));module[_0xacb7('0x1')]={'name':{'type':Sequelize[_0xacb7('0x2')],'unique':'name','validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'description':{'type':Sequelize[_0xacb7('0x2')]},'timeout':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize[_0xacb7('0x3')](_0xacb7('0x4'),'beepall','roundrobin')}};
\ No newline at end of file
+var _0xbe42=['STRING','INTEGER','ENUM','rrmemory','beepall','roundrobin','exports'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xbe42,0x1e2));var _0x2be4=function(_0x46a671,_0x758e9a){_0x46a671=_0x46a671-0x0;var _0x526d75=_0xbe42[_0x46a671];return _0x526d75;};'use strict';var Sequelize=require('sequelize');module[_0x2be4('0x0')]={'name':{'type':Sequelize[_0x2be4('0x1')],'unique':'name','validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'description':{'type':Sequelize['STRING']},'timeout':{'type':Sequelize[_0x2be4('0x2')],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize[_0x2be4('0x3')](_0x2be4('0x4'),_0x2be4('0x5'),_0x2be4('0x6'))}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8fe8=['UserProfileResource','destroy','error','stack','name','send','index','map','OpenchannelQueue','rawAttributes','fieldName','type','key','model','keys','query','filters','attributes','intersection','fields','nolimit','order','sort','where','pick','filter','merge','options','includeAll','rows','catch','show','params','length','include','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','find','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','describe','findOne','UserOpenchannelQueue','hasOwnProperty','findAll','User','findAndCountAll','UserId','agent','createdAt','format','%s/%s','SIP','openchannelPause','updatedAt','getTeams','Team','ids','Agents','interface','flatMap','sequelize','transaction','addTeams','findOrCreate','forEach','userOpenchannelQueue:save','select','field','team_has_openchannel_queues','join','ut.TeamId\x20=\x20tq.TeamId','OpenchannelQueueId\x20=\x20?','ut.UserId\x20=\x20?','push','QueryTypes','SELECT','every','includes','all','compact','value','isEmpty','removeAgents','userOpenchannelQueue:remove','addAgents','spread','isArray','emit','getAgents','eml-format','zip-dir','fast-json-patch','moment','mustache','sox','ejs','lodash','squel','desk.js','to-csv','querystring','papaparse','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','defaults','redis','localhost','socket.io-emitter','./openchannelQueue.socket','register','sendStatus','status','end','json','offset','undefined','count','limit','apply','reject','save','update','then','get','OpenchannelQueues'];(function(_0x1fc3fd,_0x2c74f6){var _0x3a9727=function(_0x1ecc38){while(--_0x1ecc38){_0x1fc3fd['push'](_0x1fc3fd['shift']());}};_0x3a9727(++_0x2c74f6);}(_0x8fe8,0x168));var _0x88fe=function(_0x9c8aeb,_0x3cd206){_0x9c8aeb=_0x9c8aeb-0x0;var _0x18529f=_0x8fe8[_0x9c8aeb];return _0x18529f;};'use strict';var emlformat=require(_0x88fe('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x88fe('0x1'));var jsonpatch=require(_0x88fe('0x2'));var rp=require('request-promise');var moment=require(_0x88fe('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x88fe('0x4'));var util=require('util');var path=require('path');var sox=require(_0x88fe('0x5'));var csv=require('to-csv');var ejs=require(_0x88fe('0x6'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x88fe('0x7'));var squel=require(_0x88fe('0x8'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x88fe('0x9'));var toCsv=require(_0x88fe('0xa'));var querystring=require(_0x88fe('0xb'));var Papa=require(_0x88fe('0xc'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x88fe('0xd'));var logger=require('../../config/logger')(_0x88fe('0xe'));var utils=require(_0x88fe('0xf'));var config=require(_0x88fe('0x10'));var licenseUtil=require(_0x88fe('0x11'));var db=require('../../mysqldb')['db'];config['redis']=_[_0x88fe('0x12')](config[_0x88fe('0x13')],{'host':_0x88fe('0x14'),'port':0x18eb});var socket=require(_0x88fe('0x15'))(new Redis(config[_0x88fe('0x13')]));require(_0x88fe('0x16'))[_0x88fe('0x17')](socket);function respondWithStatusCode(_0x1afd4d,_0x13f5f6){_0x13f5f6=_0x13f5f6||0xcc;return function(_0x24cf0e){if(_0x24cf0e){return _0x1afd4d[_0x88fe('0x18')](_0x13f5f6);}return _0x1afd4d[_0x88fe('0x19')](_0x13f5f6)[_0x88fe('0x1a')]();};}function respondWithResult(_0x56ea87,_0x11dc22){_0x11dc22=_0x11dc22||0xc8;return function(_0x207403){if(_0x207403){return _0x56ea87[_0x88fe('0x19')](_0x11dc22)[_0x88fe('0x1b')](_0x207403);}};}function respondWithFilteredResult(_0x4d1a6d,_0x42fdb8){return function(_0x1ffde3){if(_0x1ffde3){var _0x782a99=typeof _0x42fdb8[_0x88fe('0x1c')]===_0x88fe('0x1d')&&typeof _0x42fdb8['limit']===_0x88fe('0x1d');var _0x12c084=_0x1ffde3[_0x88fe('0x1e')];var _0x50271f=_0x782a99?0x0:_0x42fdb8['offset'];var _0xbc4a28=_0x782a99?_0x1ffde3['count']:_0x42fdb8[_0x88fe('0x1c')]+_0x42fdb8[_0x88fe('0x1f')];var _0xa4a1b6;if(_0xbc4a28>=_0x12c084){_0xbc4a28=_0x12c084;_0xa4a1b6=0xc8;}else{_0xa4a1b6=0xce;}_0x4d1a6d[_0x88fe('0x19')](_0xa4a1b6);return _0x4d1a6d['set']('Content-Range',_0x50271f+'-'+_0xbc4a28+'/'+_0x12c084)[_0x88fe('0x1b')](_0x1ffde3);}return null;};}function patchUpdates(_0x23b4a6){return function(_0x409d14){try{jsonpatch[_0x88fe('0x20')](_0x409d14,_0x23b4a6,!![]);}catch(_0x4b5cc6){return BPromise[_0x88fe('0x21')](_0x4b5cc6);}return _0x409d14[_0x88fe('0x22')]();};}function saveUpdates(_0x11b556,_0x335090){return function(_0x4b30b8){if(_0x4b30b8){return _0x4b30b8[_0x88fe('0x23')](_0x11b556)[_0x88fe('0x24')](function(_0x1b73d3){return _0x1b73d3;});}return null;};}function removeEntity(_0x3b8578,_0x25ee53){return function(_0xe5afdf){if(_0xe5afdf){return _0xe5afdf['destroy']()['then'](function(){var _0x1b1f14=_0xe5afdf[_0x88fe('0x25')]({'plain':!![]});var _0x8c2ccf=_0x88fe('0x26');return db[_0x88fe('0x27')][_0x88fe('0x28')]({'where':{'type':_0x8c2ccf,'resourceId':_0x1b1f14['id']}})['then'](function(){return _0xe5afdf;});})['then'](function(){_0x3b8578[_0x88fe('0x19')](0xcc)[_0x88fe('0x1a')]();});}};}function handleEntityNotFound(_0x3b689d,_0x286702){return function(_0x4bd84b){if(!_0x4bd84b){_0x3b689d[_0x88fe('0x18')](0x194);}return _0x4bd84b;};}function handleError(_0x110779,_0x4fbc55){_0x4fbc55=_0x4fbc55||0x1f4;return function(_0x360ded){logger[_0x88fe('0x29')](_0x360ded[_0x88fe('0x2a')]);if(_0x360ded['name']){delete _0x360ded[_0x88fe('0x2b')];}_0x110779[_0x88fe('0x19')](_0x4fbc55)[_0x88fe('0x2c')](_0x360ded);};}exports[_0x88fe('0x2d')]=function(_0x4f5c65,_0x5d66dd){var _0x3d8e1f={},_0x48c4f9={},_0xf6ba6d={'count':0x0,'rows':[]};var _0x2afc54=_[_0x88fe('0x2e')](db[_0x88fe('0x2f')][_0x88fe('0x30')],function(_0x4d3395){return{'name':_0x4d3395[_0x88fe('0x31')],'type':_0x4d3395[_0x88fe('0x32')][_0x88fe('0x33')]};});_0x48c4f9[_0x88fe('0x34')]=_[_0x88fe('0x2e')](_0x2afc54,_0x88fe('0x2b'));_0x48c4f9['query']=_[_0x88fe('0x35')](_0x4f5c65[_0x88fe('0x36')]);_0x48c4f9[_0x88fe('0x37')]=_['intersection'](_0x48c4f9['model'],_0x48c4f9[_0x88fe('0x36')]);_0x3d8e1f[_0x88fe('0x38')]=_[_0x88fe('0x39')](_0x48c4f9[_0x88fe('0x34')],qs[_0x88fe('0x3a')](_0x4f5c65[_0x88fe('0x36')]['fields']));_0x3d8e1f['attributes']=_0x3d8e1f[_0x88fe('0x38')]['length']?_0x3d8e1f[_0x88fe('0x38')]:_0x48c4f9[_0x88fe('0x34')];if(!_0x4f5c65[_0x88fe('0x36')]['hasOwnProperty'](_0x88fe('0x3b'))){_0x3d8e1f[_0x88fe('0x1f')]=qs[_0x88fe('0x1f')](_0x4f5c65[_0x88fe('0x36')][_0x88fe('0x1f')]);_0x3d8e1f[_0x88fe('0x1c')]=qs[_0x88fe('0x1c')](_0x4f5c65[_0x88fe('0x36')]['offset']);}_0x3d8e1f[_0x88fe('0x3c')]=qs[_0x88fe('0x3d')](_0x4f5c65[_0x88fe('0x36')]['sort']);_0x3d8e1f[_0x88fe('0x3e')]=qs[_0x88fe('0x37')](_[_0x88fe('0x3f')](_0x4f5c65[_0x88fe('0x36')],_0x48c4f9[_0x88fe('0x37')]),_0x2afc54);if(_0x4f5c65[_0x88fe('0x36')][_0x88fe('0x40')]){_0x3d8e1f[_0x88fe('0x3e')]=_[_0x88fe('0x41')](_0x3d8e1f[_0x88fe('0x3e')],{'$or':_[_0x88fe('0x2e')](_0x2afc54,function(_0x1feb2a){if(_0x1feb2a[_0x88fe('0x32')]!=='VIRTUAL'){var _0x344d8e={};_0x344d8e[_0x1feb2a[_0x88fe('0x2b')]]={'$like':'%'+_0x4f5c65['query'][_0x88fe('0x40')]+'%'};return _0x344d8e;}})});}_0x3d8e1f=_[_0x88fe('0x41')]({},_0x3d8e1f,_0x4f5c65[_0x88fe('0x42')]);var _0x46c497={'where':_0x3d8e1f[_0x88fe('0x3e')]};return db[_0x88fe('0x2f')][_0x88fe('0x1e')](_0x46c497)[_0x88fe('0x24')](function(_0x191eb7){_0xf6ba6d[_0x88fe('0x1e')]=_0x191eb7;if(_0x4f5c65[_0x88fe('0x36')][_0x88fe('0x43')]){_0x3d8e1f['include']=[{'all':!![]}];}return db['OpenchannelQueue']['findAll'](_0x3d8e1f);})[_0x88fe('0x24')](function(_0x300592){_0xf6ba6d[_0x88fe('0x44')]=_0x300592;return _0xf6ba6d;})[_0x88fe('0x24')](respondWithFilteredResult(_0x5d66dd,_0x3d8e1f))[_0x88fe('0x45')](handleError(_0x5d66dd,null));};exports[_0x88fe('0x46')]=function(_0x61eebc,_0x19f7d3){var _0x2f0636={'raw':!![],'where':{'id':_0x61eebc[_0x88fe('0x47')]['id']}},_0x13f6eb={};_0x13f6eb[_0x88fe('0x34')]=_[_0x88fe('0x35')](db['OpenchannelQueue'][_0x88fe('0x30')]);_0x13f6eb[_0x88fe('0x36')]=_[_0x88fe('0x35')](_0x61eebc['query']);_0x13f6eb[_0x88fe('0x37')]=_[_0x88fe('0x39')](_0x13f6eb[_0x88fe('0x34')],_0x13f6eb['query']);_0x2f0636['attributes']=_[_0x88fe('0x39')](_0x13f6eb[_0x88fe('0x34')],qs[_0x88fe('0x3a')](_0x61eebc[_0x88fe('0x36')][_0x88fe('0x3a')]));_0x2f0636[_0x88fe('0x38')]=_0x2f0636['attributes'][_0x88fe('0x48')]?_0x2f0636[_0x88fe('0x38')]:_0x13f6eb[_0x88fe('0x34')];if(_0x61eebc[_0x88fe('0x36')][_0x88fe('0x43')]){_0x2f0636[_0x88fe('0x49')]=[{'all':!![]}];}_0x2f0636=_[_0x88fe('0x41')]({},_0x2f0636,_0x61eebc[_0x88fe('0x42')]);return db['OpenchannelQueue']['find'](_0x2f0636)[_0x88fe('0x24')](handleEntityNotFound(_0x19f7d3,null))['then'](respondWithResult(_0x19f7d3,null))[_0x88fe('0x45')](handleError(_0x19f7d3,null));};exports[_0x88fe('0x4a')]=function(_0x191a12,_0x22e815){return db[_0x88fe('0x2f')]['create'](_0x191a12[_0x88fe('0x4b')],{})[_0x88fe('0x24')](function(_0x1a712d){var _0x30660b=_0x191a12[_0x88fe('0x4c')][_0x88fe('0x25')]({'plain':!![]});if(!_0x30660b)throw new Error(_0x88fe('0x4d'));if(_0x30660b[_0x88fe('0x4e')]===_0x88fe('0x4c')){var _0x21038e=_0x1a712d[_0x88fe('0x25')]({'plain':!![]});var _0x35217c=_0x88fe('0x26');return db[_0x88fe('0x4f')][_0x88fe('0x50')]({'where':{'name':_0x35217c,'userProfileId':_0x30660b[_0x88fe('0x51')]},'raw':!![]})[_0x88fe('0x24')](function(_0x17a755){if(_0x17a755&&_0x17a755['autoAssociation']===0x0){return db['UserProfileResource'][_0x88fe('0x4a')]({'name':_0x21038e[_0x88fe('0x2b')],'resourceId':_0x21038e['id'],'type':_0x17a755[_0x88fe('0x2b')],'sectionId':_0x17a755['id']},{})['then'](function(){return _0x1a712d;});}else{return _0x1a712d;}})[_0x88fe('0x45')](function(_0x2b70e6){logger['error'](_0x88fe('0x52'),_0x2b70e6);throw _0x2b70e6;});}return _0x1a712d;})[_0x88fe('0x24')](respondWithResult(_0x22e815,0xc9))['catch'](handleError(_0x22e815,null));};exports[_0x88fe('0x23')]=function(_0x1e2779,_0x5ace3d){if(_0x1e2779[_0x88fe('0x4b')]['id']){delete _0x1e2779[_0x88fe('0x4b')]['id'];}return db[_0x88fe('0x2f')][_0x88fe('0x50')]({'where':{'id':_0x1e2779[_0x88fe('0x47')]['id']}})['then'](handleEntityNotFound(_0x5ace3d,null))[_0x88fe('0x24')](saveUpdates(_0x1e2779['body'],null))[_0x88fe('0x24')](respondWithResult(_0x5ace3d,null))[_0x88fe('0x45')](handleError(_0x5ace3d,null));};exports[_0x88fe('0x28')]=function(_0xa2ef1f,_0x4666e7){return db[_0x88fe('0x2f')][_0x88fe('0x50')]({'where':{'id':_0xa2ef1f[_0x88fe('0x47')]['id']}})['then'](handleEntityNotFound(_0x4666e7,null))['then'](removeEntity(_0x4666e7,null))['catch'](handleError(_0x4666e7,null));};exports[_0x88fe('0x53')]=function(_0x19cbb5,_0x3e139e){return db['OpenchannelQueue'][_0x88fe('0x53')]()[_0x88fe('0x24')](respondWithResult(_0x3e139e,null))[_0x88fe('0x45')](handleError(_0x3e139e,null));};exports['getMembers']=function(_0x1e48f8,_0x12c3f6,_0x403158){var _0x5e26c0={'raw':!![],'where':{}},_0x3b9843={},_0x5c3ff9;return db[_0x88fe('0x2f')][_0x88fe('0x54')]({'where':{'id':_0x1e48f8[_0x88fe('0x47')]['id']}})[_0x88fe('0x24')](handleEntityNotFound(_0x12c3f6,null))[_0x88fe('0x24')](function(_0x42066b){if(_0x42066b){_0x5c3ff9=_0x42066b['get']({'plain':!![]});_0x3b9843[_0x88fe('0x34')]=_[_0x88fe('0x35')](db[_0x88fe('0x55')][_0x88fe('0x30')]);_0x3b9843[_0x88fe('0x36')]=_[_0x88fe('0x35')](_0x1e48f8[_0x88fe('0x36')]);_0x3b9843[_0x88fe('0x37')]=_[_0x88fe('0x39')](_0x3b9843[_0x88fe('0x34')],_0x3b9843['query']);_0x5e26c0[_0x88fe('0x38')]=_[_0x88fe('0x39')](_0x3b9843[_0x88fe('0x34')],qs[_0x88fe('0x3a')](_0x1e48f8['query'][_0x88fe('0x3a')]));_0x5e26c0[_0x88fe('0x38')]=_0x5e26c0[_0x88fe('0x38')][_0x88fe('0x48')]?_0x5e26c0[_0x88fe('0x38')]:_0x3b9843['model'];if(!_0x1e48f8[_0x88fe('0x36')][_0x88fe('0x56')]('nolimit')){_0x5e26c0[_0x88fe('0x1f')]=qs['limit'](_0x1e48f8[_0x88fe('0x36')]['limit']);_0x5e26c0['offset']=qs[_0x88fe('0x1c')](_0x1e48f8['query'][_0x88fe('0x1c')]);}_0x5e26c0['order']=qs[_0x88fe('0x3d')](_0x1e48f8[_0x88fe('0x36')][_0x88fe('0x3d')]);_0x5e26c0['where']=qs[_0x88fe('0x37')](_[_0x88fe('0x3f')](_0x1e48f8[_0x88fe('0x36')],_0x3b9843[_0x88fe('0x37')]));_0x5e26c0[_0x88fe('0x3e')]['OpenchannelQueueId']=_0x42066b['id'];if(_0x1e48f8['query'][_0x88fe('0x40')]){_0x5e26c0[_0x88fe('0x3e')]=_[_0x88fe('0x41')](_0x5e26c0[_0x88fe('0x3e')],{'$or':_[_0x88fe('0x2e')](_0x5e26c0[_0x88fe('0x38')],function(_0x26392a){var _0xf0930b={};_0xf0930b[_0x26392a]={'$like':'%'+_0x1e48f8[_0x88fe('0x36')]['filter']+'%'};return _0xf0930b;})});}_0x5e26c0=_['merge']({},_0x5e26c0,_0x1e48f8[_0x88fe('0x42')]);return db[_0x88fe('0x55')][_0x88fe('0x57')](_0x5e26c0);}})[_0x88fe('0x24')](function(_0x29fa2c){if(_0x29fa2c){return db[_0x88fe('0x58')][_0x88fe('0x59')]({'where':{'id':_[_0x88fe('0x2e')](_0x29fa2c,_0x88fe('0x5a')),'role':_0x88fe('0x5b')},'attributes':['id',_0x88fe('0x2b'),'openchannelPause','updatedAt',_0x88fe('0x5c')]});}})[_0x88fe('0x24')](function(_0x4679e3){if(_0x4679e3){return{'count':_0x4679e3[_0x88fe('0x1e')],'rows':_[_0x88fe('0x2e')](_0x4679e3[_0x88fe('0x44')],function(_0x21a9e2){return{'membername':_0x21a9e2[_0x88fe('0x2b')],'UserId':_0x21a9e2['id'],'queue_name':_0x5c3ff9[_0x88fe('0x2b')],'OpenchannelQueueId':_0x5c3ff9['id'],'interface':util[_0x88fe('0x5d')](_0x88fe('0x5e'),_0x88fe('0x5f'),_0x21a9e2[_0x88fe('0x2b')]),'penalty':0x0,'paused':_0x21a9e2[_0x88fe('0x60')],'createdAt':_0x21a9e2[_0x88fe('0x5c')],'updatedAt':_0x21a9e2[_0x88fe('0x61')]};})};}else{return{'count':0x0,'rows':[]};}})[_0x88fe('0x24')](respondWithFilteredResult(_0x12c3f6,_0x5e26c0))[_0x88fe('0x45')](handleError(_0x12c3f6,null));};exports[_0x88fe('0x62')]=function(_0x3a353f,_0x2bb2e2,_0x4853a4){var _0xe010a9={};var _0xbd03ba={};var _0x32edf4;var _0x15ba53;return db['OpenchannelQueue']['findOne']({'where':{'id':_0x3a353f[_0x88fe('0x47')]['id']}})[_0x88fe('0x24')](handleEntityNotFound(_0x2bb2e2,null))[_0x88fe('0x24')](function(_0x1b3ad4){if(_0x1b3ad4){_0x32edf4=_0x1b3ad4;_0xbd03ba['model']=_['keys'](db[_0x88fe('0x63')][_0x88fe('0x30')]);_0xbd03ba['query']=_[_0x88fe('0x35')](_0x3a353f[_0x88fe('0x36')]);_0xbd03ba['filters']=_[_0x88fe('0x39')](_0xbd03ba['model'],_0xbd03ba[_0x88fe('0x36')]);_0xe010a9['attributes']=_[_0x88fe('0x39')](_0xbd03ba[_0x88fe('0x34')],qs[_0x88fe('0x3a')](_0x3a353f['query']['fields']));_0xe010a9['attributes']=_0xe010a9[_0x88fe('0x38')]['length']?_0xe010a9[_0x88fe('0x38')]:_0xbd03ba['model'];_0xe010a9[_0x88fe('0x3c')]=qs['sort'](_0x3a353f['query'][_0x88fe('0x3d')]);_0xe010a9[_0x88fe('0x3e')]=qs[_0x88fe('0x37')](_[_0x88fe('0x3f')](_0x3a353f[_0x88fe('0x36')],_0xbd03ba[_0x88fe('0x37')]));if(_0x3a353f[_0x88fe('0x36')]['filter']){_0xe010a9[_0x88fe('0x3e')]=_['merge'](_0xe010a9['where'],{'$or':_[_0x88fe('0x2e')](_0xe010a9[_0x88fe('0x38')],function(_0x12e3d7){var _0x56c67f={};_0x56c67f[_0x12e3d7]={'$like':'%'+_0x3a353f[_0x88fe('0x36')][_0x88fe('0x40')]+'%'};return _0x56c67f;})});}_0xe010a9=_[_0x88fe('0x41')]({},_0xe010a9,_0x3a353f[_0x88fe('0x42')]);return _0x32edf4[_0x88fe('0x62')](_0xe010a9);}})[_0x88fe('0x24')](function(_0x1d4764){if(_0x1d4764){_0x15ba53=_0x1d4764[_0x88fe('0x48')];if(!_0x3a353f[_0x88fe('0x36')]['hasOwnProperty'](_0x88fe('0x3b'))){_0xe010a9[_0x88fe('0x1f')]=qs[_0x88fe('0x1f')](_0x3a353f[_0x88fe('0x36')][_0x88fe('0x1f')]);_0xe010a9[_0x88fe('0x1c')]=qs[_0x88fe('0x1c')](_0x3a353f[_0x88fe('0x36')][_0x88fe('0x1c')]);}return _0x32edf4['getTeams'](_0xe010a9);}})[_0x88fe('0x24')](function(_0x55379e){if(_0x55379e){return _0x55379e?{'count':_0x15ba53,'rows':_0x55379e}:null;}})[_0x88fe('0x24')](respondWithResult(_0x2bb2e2,null))[_0x88fe('0x45')](handleError(_0x2bb2e2,null));};exports['addTeams']=function(_0x9cbc24,_0x164855,_0x24a222){var _0x5681b0=_0x9cbc24[_0x88fe('0x4b')][_0x88fe('0x64')];return db[_0x88fe('0x63')][_0x88fe('0x57')]({'where':{'id':_0x5681b0},'attributes':['id'],'include':[{'model':db[_0x88fe('0x58')],'as':_0x88fe('0x65'),'attributes':['id','name','online','voicePause',_0x88fe('0x66')],'raw':!![]}]})[_0x88fe('0x24')](function(_0x1835ce){if(_0x1835ce){var _0x12e6c1=_[_0x88fe('0x67')](_0x1835ce,function(_0x2ffe42){var _0x429a95=_0x2ffe42['get']({'plain':!![]});return _0x429a95[_0x88fe('0x65')];});return db[_0x88fe('0x2f')][_0x88fe('0x50')]({'where':{'id':_0x9cbc24[_0x88fe('0x47')]['id']}})['then'](function(_0x429124){return db[_0x88fe('0x68')][_0x88fe('0x69')](function(_0x23d110){return _0x429124[_0x88fe('0x6a')](_0x5681b0,{'transaction':_0x23d110})[_0x88fe('0x24')](function(){return BPromise['each'](_0x12e6c1,function(_0x10d033){return db[_0x88fe('0x55')][_0x88fe('0x6b')]({'where':{'UserId':_0x10d033['id'],'OpenchannelQueueId':_0x9cbc24[_0x88fe('0x47')]['id']},'transaction':_0x23d110});});})[_0x88fe('0x24')](function(){_0x12e6c1[_0x88fe('0x6c')](function(_0x21c640){socket['emit'](_0x88fe('0x6d'),{'UserId':_0x21c640['id'],'OpenchannelQueueId':_0x429124['id']});});});});});}})[_0x88fe('0x24')](respondWithStatusCode(_0x164855,null))[_0x88fe('0x45')](handleError(_0x164855,null));};exports['removeTeams']=function(_0x1f4fee,_0x1de455,_0x5442e0){return db['Team'][_0x88fe('0x57')]({'where':{'id':_0x1f4fee[_0x88fe('0x36')]['ids']},'attributes':['id'],'include':[{'model':db['User'],'as':_0x88fe('0x65'),'attributes':['id'],'raw':!![]}]})[_0x88fe('0x24')](handleEntityNotFound(_0x1de455,null))[_0x88fe('0x24')](function(_0xb2392f){var _0x5225f6=_['map'](_0xb2392f,'id');var _0x2a3646=[];var _0x733ab0=[];var _0x248d57=squel[_0x88fe('0x6e')]();_0x248d57[_0x88fe('0x6f')]('tq.TeamId')['from'](_0x88fe('0x70'),'tq')[_0x88fe('0x71')]('user_has_teams','ut',_0x88fe('0x72'))[_0x88fe('0x3e')](_0x88fe('0x73'),_0x1f4fee[_0x88fe('0x47')]['id']);for(var _0x56af29=0x0;_0x56af29<_0xb2392f['length'];_0x56af29+=0x1){let _0x4091b1=_0xb2392f[_0x56af29];for(var _0x2a73aa=0x0;_0x2a73aa<_0x4091b1[_0x88fe('0x65')][_0x88fe('0x48')];_0x2a73aa+=0x1){let _0x1ddab9=_0x4091b1[_0x88fe('0x65')][_0x2a73aa];var _0x4e7d36=_0x248d57['clone']();_0x4e7d36['where'](_0x88fe('0x74'),_0x1ddab9['id']);_0x733ab0[_0x88fe('0x75')](db[_0x88fe('0x68')][_0x88fe('0x36')](_0x4e7d36['toString'](),{'type':db['sequelize'][_0x88fe('0x76')][_0x88fe('0x77')]})['then'](function(_0x3dbe40){if(_0x3dbe40['length']===0x1){return _0x1ddab9['id'];}else{var _0x450929=_[_0x88fe('0x78')](_[_0x88fe('0x2e')](_0x3dbe40,'TeamId'),function(_0x4c794a){return _[_0x88fe('0x79')](_0x5225f6,_0x4c794a);});if(_0x450929){return _0x1ddab9['id'];}}}));}}return BPromise[_0x88fe('0x7a')](_0x733ab0)['then'](function(_0x559312){_0x2a3646=_(_0x2a3646)['union'](_0x559312)[_0x88fe('0x7b')]()[_0x88fe('0x7c')]();return db[_0x88fe('0x2f')][_0x88fe('0x50')]({'where':{'id':_0x1f4fee['params']['id']}})[_0x88fe('0x24')](function(_0x120d05){return db[_0x88fe('0x68')][_0x88fe('0x69')](function(_0x2cac24){return _0x120d05['removeTeams'](_0x1f4fee[_0x88fe('0x36')][_0x88fe('0x64')],{'transaction':_0x2cac24})[_0x88fe('0x24')](function(){if(!_[_0x88fe('0x7d')](_0x2a3646)){return _0x120d05[_0x88fe('0x7e')](_0x2a3646,{'transaction':_0x2cac24});}})[_0x88fe('0x24')](function(){_0x2a3646[_0x88fe('0x6c')](function(_0x525ffd){socket['emit'](_0x88fe('0x7f'),{'UserId':_0x525ffd,'OpenchannelQueueId':_0x120d05['id']});});});});});});})['then'](respondWithStatusCode(_0x1de455,null))[_0x88fe('0x45')](handleError(_0x1de455,null));};exports[_0x88fe('0x80')]=function(_0x1b42df,_0x52cd4a,_0x224c53){return db['OpenchannelQueue']['find']({'where':{'id':_0x1b42df['params']['id']}})[_0x88fe('0x24')](handleEntityNotFound(_0x52cd4a,null))[_0x88fe('0x24')](function(_0x426c2f){if(_0x426c2f){return _0x426c2f[_0x88fe('0x80')](_0x1b42df['body'][_0x88fe('0x64')],_['omit'](_0x1b42df[_0x88fe('0x4b')],[_0x88fe('0x64'),'id'])||{})[_0x88fe('0x81')](function(_0xfb994f){for(var _0x492d9c=0x0;_0x492d9c<_0x1b42df[_0x88fe('0x4b')][_0x88fe('0x64')]['length'];_0x492d9c+=0x1){socket['emit'](_0x88fe('0x6d'),{'UserId':Number(_0x1b42df[_0x88fe('0x4b')][_0x88fe('0x64')][_0x492d9c]),'OpenchannelQueueId':Number(_0x1b42df[_0x88fe('0x47')]['id'])});}return _0xfb994f;});}})[_0x88fe('0x24')](respondWithResult(_0x52cd4a,null))[_0x88fe('0x45')](handleError(_0x52cd4a,null));};exports['removeAgents']=function(_0x48330c,_0x13da05,_0x45d1e2){return db[_0x88fe('0x2f')][_0x88fe('0x50')]({'where':{'id':_0x48330c[_0x88fe('0x47')]['id']}})[_0x88fe('0x24')](handleEntityNotFound(_0x13da05,null))[_0x88fe('0x24')](function(_0x1ccdbb){if(_0x1ccdbb){return _0x1ccdbb[_0x88fe('0x7e')](_0x48330c['query'][_0x88fe('0x64')])[_0x88fe('0x24')](function(){if(_[_0x88fe('0x82')](_0x48330c[_0x88fe('0x36')][_0x88fe('0x64')])){for(var _0x34a5ed=0x0;_0x34a5ed<_0x48330c['query'][_0x88fe('0x64')][_0x88fe('0x48')];_0x34a5ed+=0x1){socket['emit'](_0x88fe('0x7f'),{'UserId':Number(_0x48330c[_0x88fe('0x36')][_0x88fe('0x64')][_0x34a5ed]),'OpenchannelQueueId':Number(_0x48330c[_0x88fe('0x47')]['id'])});}}else{socket[_0x88fe('0x83')](_0x88fe('0x7f'),{'UserId':Number(_0x48330c[_0x88fe('0x36')][_0x88fe('0x64')]),'OpenchannelQueueId':Number(_0x48330c[_0x88fe('0x47')]['id'])});}});}})[_0x88fe('0x24')](respondWithStatusCode(_0x13da05,null))[_0x88fe('0x45')](handleError(_0x13da05,null));};exports[_0x88fe('0x84')]=function(_0x1a94d3,_0x26220c,_0x19f61f){var _0x3ea08c={};var _0x30c218={};var _0x24c89a;var _0x1364a4;return db['OpenchannelQueue']['findOne']({'where':{'id':_0x1a94d3[_0x88fe('0x47')]['id']}})[_0x88fe('0x24')](handleEntityNotFound(_0x26220c,null))['then'](function(_0x2e5aee){if(_0x2e5aee){_0x24c89a=_0x2e5aee;_0x30c218['model']=_[_0x88fe('0x35')](db[_0x88fe('0x58')][_0x88fe('0x30')]);_0x30c218[_0x88fe('0x36')]=_['keys'](_0x1a94d3['query']);_0x30c218['filters']=_['intersection'](_0x30c218['model'],_0x30c218[_0x88fe('0x36')]);_0x3ea08c[_0x88fe('0x38')]=_[_0x88fe('0x39')](_0x30c218[_0x88fe('0x34')],qs['fields'](_0x1a94d3[_0x88fe('0x36')][_0x88fe('0x3a')]));_0x3ea08c[_0x88fe('0x38')]=_0x3ea08c[_0x88fe('0x38')]['length']?_0x3ea08c[_0x88fe('0x38')]:_0x30c218['model'];_0x3ea08c[_0x88fe('0x3c')]=qs[_0x88fe('0x3d')](_0x1a94d3['query']['sort']);_0x3ea08c['where']=qs['filters'](_[_0x88fe('0x3f')](_0x1a94d3[_0x88fe('0x36')],_0x30c218[_0x88fe('0x37')]));if(_0x1a94d3[_0x88fe('0x36')]['filter']){_0x3ea08c[_0x88fe('0x3e')]=_[_0x88fe('0x41')](_0x3ea08c[_0x88fe('0x3e')],{'$or':_[_0x88fe('0x2e')](_0x3ea08c[_0x88fe('0x38')],function(_0x3a454a){var _0x1da12a={};_0x1da12a[_0x3a454a]={'$like':'%'+_0x1a94d3[_0x88fe('0x36')][_0x88fe('0x40')]+'%'};return _0x1da12a;})});}_0x3ea08c=_[_0x88fe('0x41')]({},_0x3ea08c,_0x1a94d3[_0x88fe('0x42')]);return _0x24c89a[_0x88fe('0x84')](_0x3ea08c);}})['then'](function(_0x487cea){if(_0x487cea){_0x1364a4=_0x487cea[_0x88fe('0x48')];if(!_0x1a94d3['query'][_0x88fe('0x56')](_0x88fe('0x3b'))){_0x3ea08c['limit']=qs['limit'](_0x1a94d3[_0x88fe('0x36')][_0x88fe('0x1f')]);_0x3ea08c['offset']=qs[_0x88fe('0x1c')](_0x1a94d3[_0x88fe('0x36')][_0x88fe('0x1c')]);}return _0x24c89a[_0x88fe('0x84')](_0x3ea08c);}})[_0x88fe('0x24')](function(_0x269b9f){if(_0x269b9f){return _0x269b9f?{'count':_0x1364a4,'rows':_0x269b9f}:null;}})[_0x88fe('0x24')](respondWithResult(_0x26220c,null))[_0x88fe('0x45')](handleError(_0x26220c,null));};
\ No newline at end of file
+var _0x5e6c=['UserProfileResource','destroy','error','stack','name','send','index','OpenchannelQueue','rawAttributes','fieldName','type','key','keys','intersection','model','query','attributes','fields','length','hasOwnProperty','nolimit','limit','order','sort','filters','filter','where','map','merge','options','findAll','rows','catch','show','params','includeAll','include','create','role','user','UserProfileSection','find','userProfileId','autoAssociation','body','describe','getMembers','findOne','UserOpenchannelQueue','pick','OpenchannelQueueId','User','UserId','agent','format','%s/%s','SIP','openchannelPause','createdAt','updatedAt','getTeams','Team','ids','Agents','online','voicePause','interface','transaction','each','findOrCreate','userOpenchannelQueue:save','removeTeams','select','tq.TeamId','team_has_openchannel_queues','join','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','OpenchannelQueueId\x20=\x20?','clone','ut.UserId\x20=\x20?','push','sequelize','toString','QueryTypes','SELECT','includes','all','union','compact','isEmpty','forEach','emit','addAgents','spread','removeAgents','userOpenchannelQueue:remove','getAgents','eml-format','rimraf','zip-dir','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./openchannelQueue.socket','register','sendStatus','status','end','json','offset','undefined','count','set','Content-Range','apply','save','update','then','get','OpenchannelQueues'];(function(_0x507c81,_0x3e1b56){var _0x368a25=function(_0x1e7519){while(--_0x1e7519){_0x507c81['push'](_0x507c81['shift']());}};_0x368a25(++_0x3e1b56);}(_0x5e6c,0x184));var _0xc5e6=function(_0x593f4d,_0x260f28){_0x593f4d=_0x593f4d-0x0;var _0x57dc2f=_0x5e6c[_0x593f4d];return _0x57dc2f;};'use strict';var emlformat=require(_0xc5e6('0x0'));var rimraf=require(_0xc5e6('0x1'));var zipdir=require(_0xc5e6('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xc5e6('0x3'));var moment=require('moment');var BPromise=require(_0xc5e6('0x4'));var Mustache=require(_0xc5e6('0x5'));var util=require(_0xc5e6('0x6'));var path=require(_0xc5e6('0x7'));var sox=require(_0xc5e6('0x8'));var csv=require(_0xc5e6('0x9'));var ejs=require(_0xc5e6('0xa'));var fs=require('fs');var fs_extra=require(_0xc5e6('0xb'));var _=require(_0xc5e6('0xc'));var squel=require(_0xc5e6('0xd'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0xc5e6('0xe'));var toCsv=require('to-csv');var querystring=require(_0xc5e6('0xf'));var Papa=require('papaparse');var Redis=require(_0xc5e6('0x10'));var authService=require(_0xc5e6('0x11'));var qs=require(_0xc5e6('0x12'));var as=require(_0xc5e6('0x13'));var hardwareService=require(_0xc5e6('0x14'));var logger=require(_0xc5e6('0x15'))(_0xc5e6('0x16'));var utils=require(_0xc5e6('0x17'));var config=require('../../config/environment');var licenseUtil=require(_0xc5e6('0x18'));var db=require(_0xc5e6('0x19'))['db'];config[_0xc5e6('0x1a')]=_[_0xc5e6('0x1b')](config[_0xc5e6('0x1a')],{'host':_0xc5e6('0x1c'),'port':0x18eb});var socket=require(_0xc5e6('0x1d'))(new Redis(config[_0xc5e6('0x1a')]));require(_0xc5e6('0x1e'))[_0xc5e6('0x1f')](socket);function respondWithStatusCode(_0x57b5e6,_0x229821){_0x229821=_0x229821||0xcc;return function(_0x260899){if(_0x260899){return _0x57b5e6[_0xc5e6('0x20')](_0x229821);}return _0x57b5e6[_0xc5e6('0x21')](_0x229821)[_0xc5e6('0x22')]();};}function respondWithResult(_0x18dc99,_0x50aabd){_0x50aabd=_0x50aabd||0xc8;return function(_0xb1e5cb){if(_0xb1e5cb){return _0x18dc99['status'](_0x50aabd)[_0xc5e6('0x23')](_0xb1e5cb);}};}function respondWithFilteredResult(_0x5c0397,_0x3cb20b){return function(_0x226d61){if(_0x226d61){var _0x5aa59b=typeof _0x3cb20b[_0xc5e6('0x24')]===_0xc5e6('0x25')&&typeof _0x3cb20b['limit']===_0xc5e6('0x25');var _0x367e50=_0x226d61['count'];var _0x13c458=_0x5aa59b?0x0:_0x3cb20b[_0xc5e6('0x24')];var _0x3d7fcc=_0x5aa59b?_0x226d61[_0xc5e6('0x26')]:_0x3cb20b[_0xc5e6('0x24')]+_0x3cb20b['limit'];var _0x608c9e;if(_0x3d7fcc>=_0x367e50){_0x3d7fcc=_0x367e50;_0x608c9e=0xc8;}else{_0x608c9e=0xce;}_0x5c0397[_0xc5e6('0x21')](_0x608c9e);return _0x5c0397[_0xc5e6('0x27')](_0xc5e6('0x28'),_0x13c458+'-'+_0x3d7fcc+'/'+_0x367e50)[_0xc5e6('0x23')](_0x226d61);}return null;};}function patchUpdates(_0x2dd65){return function(_0x163416){try{jsonpatch[_0xc5e6('0x29')](_0x163416,_0x2dd65,!![]);}catch(_0x30603b){return BPromise['reject'](_0x30603b);}return _0x163416[_0xc5e6('0x2a')]();};}function saveUpdates(_0x50c59e,_0x11c338){return function(_0x1ab905){if(_0x1ab905){return _0x1ab905[_0xc5e6('0x2b')](_0x50c59e)[_0xc5e6('0x2c')](function(_0x216aa6){return _0x216aa6;});}return null;};}function removeEntity(_0x44c748,_0x37f7e0){return function(_0x3fdb45){if(_0x3fdb45){return _0x3fdb45['destroy']()[_0xc5e6('0x2c')](function(){var _0x5e355a=_0x3fdb45[_0xc5e6('0x2d')]({'plain':!![]});var _0x2a0719=_0xc5e6('0x2e');return db[_0xc5e6('0x2f')][_0xc5e6('0x30')]({'where':{'type':_0x2a0719,'resourceId':_0x5e355a['id']}})[_0xc5e6('0x2c')](function(){return _0x3fdb45;});})[_0xc5e6('0x2c')](function(){_0x44c748[_0xc5e6('0x21')](0xcc)['end']();});}};}function handleEntityNotFound(_0x5a4815,_0x562d15){return function(_0x835f76){if(!_0x835f76){_0x5a4815[_0xc5e6('0x20')](0x194);}return _0x835f76;};}function handleError(_0x113e08,_0xae2269){_0xae2269=_0xae2269||0x1f4;return function(_0xbf2a46){logger[_0xc5e6('0x31')](_0xbf2a46[_0xc5e6('0x32')]);if(_0xbf2a46['name']){delete _0xbf2a46[_0xc5e6('0x33')];}_0x113e08[_0xc5e6('0x21')](_0xae2269)[_0xc5e6('0x34')](_0xbf2a46);};}exports[_0xc5e6('0x35')]=function(_0x508525,_0x35742d){var _0x391d2a={},_0x23ac5d={},_0x37069e={'count':0x0,'rows':[]};var _0x240484=_['map'](db[_0xc5e6('0x36')][_0xc5e6('0x37')],function(_0x4301f4){return{'name':_0x4301f4[_0xc5e6('0x38')],'type':_0x4301f4[_0xc5e6('0x39')][_0xc5e6('0x3a')]};});_0x23ac5d['model']=_['map'](_0x240484,_0xc5e6('0x33'));_0x23ac5d['query']=_[_0xc5e6('0x3b')](_0x508525['query']);_0x23ac5d['filters']=_[_0xc5e6('0x3c')](_0x23ac5d[_0xc5e6('0x3d')],_0x23ac5d[_0xc5e6('0x3e')]);_0x391d2a[_0xc5e6('0x3f')]=_[_0xc5e6('0x3c')](_0x23ac5d[_0xc5e6('0x3d')],qs[_0xc5e6('0x40')](_0x508525[_0xc5e6('0x3e')][_0xc5e6('0x40')]));_0x391d2a[_0xc5e6('0x3f')]=_0x391d2a[_0xc5e6('0x3f')][_0xc5e6('0x41')]?_0x391d2a[_0xc5e6('0x3f')]:_0x23ac5d[_0xc5e6('0x3d')];if(!_0x508525['query'][_0xc5e6('0x42')](_0xc5e6('0x43'))){_0x391d2a[_0xc5e6('0x44')]=qs[_0xc5e6('0x44')](_0x508525['query'][_0xc5e6('0x44')]);_0x391d2a[_0xc5e6('0x24')]=qs[_0xc5e6('0x24')](_0x508525['query'][_0xc5e6('0x24')]);}_0x391d2a[_0xc5e6('0x45')]=qs[_0xc5e6('0x46')](_0x508525[_0xc5e6('0x3e')][_0xc5e6('0x46')]);_0x391d2a['where']=qs[_0xc5e6('0x47')](_['pick'](_0x508525[_0xc5e6('0x3e')],_0x23ac5d[_0xc5e6('0x47')]),_0x240484);if(_0x508525[_0xc5e6('0x3e')][_0xc5e6('0x48')]){_0x391d2a[_0xc5e6('0x49')]=_['merge'](_0x391d2a[_0xc5e6('0x49')],{'$or':_[_0xc5e6('0x4a')](_0x240484,function(_0x2a6980){if(_0x2a6980[_0xc5e6('0x39')]!=='VIRTUAL'){var _0x40318d={};_0x40318d[_0x2a6980[_0xc5e6('0x33')]]={'$like':'%'+_0x508525[_0xc5e6('0x3e')][_0xc5e6('0x48')]+'%'};return _0x40318d;}})});}_0x391d2a=_[_0xc5e6('0x4b')]({},_0x391d2a,_0x508525[_0xc5e6('0x4c')]);var _0x3d3ff7={'where':_0x391d2a[_0xc5e6('0x49')]};return db[_0xc5e6('0x36')]['count'](_0x3d3ff7)[_0xc5e6('0x2c')](function(_0x3dc37e){_0x37069e[_0xc5e6('0x26')]=_0x3dc37e;if(_0x508525[_0xc5e6('0x3e')]['includeAll']){_0x391d2a['include']=[{'all':!![]}];}return db[_0xc5e6('0x36')][_0xc5e6('0x4d')](_0x391d2a);})[_0xc5e6('0x2c')](function(_0x140521){_0x37069e[_0xc5e6('0x4e')]=_0x140521;return _0x37069e;})['then'](respondWithFilteredResult(_0x35742d,_0x391d2a))[_0xc5e6('0x4f')](handleError(_0x35742d,null));};exports[_0xc5e6('0x50')]=function(_0xc52a33,_0x166baf){var _0x3cc8ac={'raw':!![],'where':{'id':_0xc52a33[_0xc5e6('0x51')]['id']}},_0x4f74c8={};_0x4f74c8[_0xc5e6('0x3d')]=_[_0xc5e6('0x3b')](db[_0xc5e6('0x36')][_0xc5e6('0x37')]);_0x4f74c8[_0xc5e6('0x3e')]=_['keys'](_0xc52a33[_0xc5e6('0x3e')]);_0x4f74c8['filters']=_['intersection'](_0x4f74c8[_0xc5e6('0x3d')],_0x4f74c8[_0xc5e6('0x3e')]);_0x3cc8ac[_0xc5e6('0x3f')]=_[_0xc5e6('0x3c')](_0x4f74c8['model'],qs[_0xc5e6('0x40')](_0xc52a33[_0xc5e6('0x3e')][_0xc5e6('0x40')]));_0x3cc8ac[_0xc5e6('0x3f')]=_0x3cc8ac[_0xc5e6('0x3f')][_0xc5e6('0x41')]?_0x3cc8ac['attributes']:_0x4f74c8[_0xc5e6('0x3d')];if(_0xc52a33['query'][_0xc5e6('0x52')]){_0x3cc8ac[_0xc5e6('0x53')]=[{'all':!![]}];}_0x3cc8ac=_[_0xc5e6('0x4b')]({},_0x3cc8ac,_0xc52a33[_0xc5e6('0x4c')]);return db['OpenchannelQueue']['find'](_0x3cc8ac)['then'](handleEntityNotFound(_0x166baf,null))[_0xc5e6('0x2c')](respondWithResult(_0x166baf,null))[_0xc5e6('0x4f')](handleError(_0x166baf,null));};exports[_0xc5e6('0x54')]=function(_0x53bc7e,_0x9cfb0f){return db[_0xc5e6('0x36')][_0xc5e6('0x54')](_0x53bc7e['body'],{})[_0xc5e6('0x2c')](function(_0x46f157){var _0x38d9e0=_0x53bc7e['user'][_0xc5e6('0x2d')]({'plain':!![]});if(!_0x38d9e0)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x38d9e0[_0xc5e6('0x55')]===_0xc5e6('0x56')){var _0x18b847=_0x46f157[_0xc5e6('0x2d')]({'plain':!![]});var _0x1c0fb9=_0xc5e6('0x2e');return db[_0xc5e6('0x57')][_0xc5e6('0x58')]({'where':{'name':_0x1c0fb9,'userProfileId':_0x38d9e0[_0xc5e6('0x59')]},'raw':!![]})[_0xc5e6('0x2c')](function(_0x239a67){if(_0x239a67&&_0x239a67[_0xc5e6('0x5a')]===0x0){return db[_0xc5e6('0x2f')][_0xc5e6('0x54')]({'name':_0x18b847[_0xc5e6('0x33')],'resourceId':_0x18b847['id'],'type':_0x239a67['name'],'sectionId':_0x239a67['id']},{})[_0xc5e6('0x2c')](function(){return _0x46f157;});}else{return _0x46f157;}})[_0xc5e6('0x4f')](function(_0x3da5be){logger[_0xc5e6('0x31')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x3da5be);throw _0x3da5be;});}return _0x46f157;})[_0xc5e6('0x2c')](respondWithResult(_0x9cfb0f,0xc9))[_0xc5e6('0x4f')](handleError(_0x9cfb0f,null));};exports[_0xc5e6('0x2b')]=function(_0x2656ed,_0x573c1b){if(_0x2656ed[_0xc5e6('0x5b')]['id']){delete _0x2656ed['body']['id'];}return db['OpenchannelQueue']['find']({'where':{'id':_0x2656ed[_0xc5e6('0x51')]['id']}})['then'](handleEntityNotFound(_0x573c1b,null))['then'](saveUpdates(_0x2656ed[_0xc5e6('0x5b')],null))[_0xc5e6('0x2c')](respondWithResult(_0x573c1b,null))[_0xc5e6('0x4f')](handleError(_0x573c1b,null));};exports['destroy']=function(_0x22d136,_0x4b664b){return db[_0xc5e6('0x36')][_0xc5e6('0x58')]({'where':{'id':_0x22d136[_0xc5e6('0x51')]['id']}})[_0xc5e6('0x2c')](handleEntityNotFound(_0x4b664b,null))[_0xc5e6('0x2c')](removeEntity(_0x4b664b,null))[_0xc5e6('0x4f')](handleError(_0x4b664b,null));};exports[_0xc5e6('0x5c')]=function(_0x299655,_0x4ed713){return db[_0xc5e6('0x36')][_0xc5e6('0x5c')]()[_0xc5e6('0x2c')](respondWithResult(_0x4ed713,null))[_0xc5e6('0x4f')](handleError(_0x4ed713,null));};exports[_0xc5e6('0x5d')]=function(_0x28b01f,_0x284d13,_0xa99c02){var _0x4cbe25={'raw':!![],'where':{}},_0x3531de={},_0x4d2a64;return db[_0xc5e6('0x36')][_0xc5e6('0x5e')]({'where':{'id':_0x28b01f[_0xc5e6('0x51')]['id']}})[_0xc5e6('0x2c')](handleEntityNotFound(_0x284d13,null))[_0xc5e6('0x2c')](function(_0x5ab172){if(_0x5ab172){_0x4d2a64=_0x5ab172[_0xc5e6('0x2d')]({'plain':!![]});_0x3531de['model']=_['keys'](db[_0xc5e6('0x5f')][_0xc5e6('0x37')]);_0x3531de[_0xc5e6('0x3e')]=_[_0xc5e6('0x3b')](_0x28b01f['query']);_0x3531de[_0xc5e6('0x47')]=_[_0xc5e6('0x3c')](_0x3531de[_0xc5e6('0x3d')],_0x3531de[_0xc5e6('0x3e')]);_0x4cbe25[_0xc5e6('0x3f')]=_['intersection'](_0x3531de[_0xc5e6('0x3d')],qs[_0xc5e6('0x40')](_0x28b01f['query'][_0xc5e6('0x40')]));_0x4cbe25[_0xc5e6('0x3f')]=_0x4cbe25[_0xc5e6('0x3f')][_0xc5e6('0x41')]?_0x4cbe25[_0xc5e6('0x3f')]:_0x3531de['model'];if(!_0x28b01f[_0xc5e6('0x3e')][_0xc5e6('0x42')]('nolimit')){_0x4cbe25[_0xc5e6('0x44')]=qs[_0xc5e6('0x44')](_0x28b01f[_0xc5e6('0x3e')]['limit']);_0x4cbe25[_0xc5e6('0x24')]=qs['offset'](_0x28b01f[_0xc5e6('0x3e')][_0xc5e6('0x24')]);}_0x4cbe25['order']=qs[_0xc5e6('0x46')](_0x28b01f[_0xc5e6('0x3e')][_0xc5e6('0x46')]);_0x4cbe25[_0xc5e6('0x49')]=qs[_0xc5e6('0x47')](_[_0xc5e6('0x60')](_0x28b01f[_0xc5e6('0x3e')],_0x3531de[_0xc5e6('0x47')]));_0x4cbe25['where'][_0xc5e6('0x61')]=_0x5ab172['id'];if(_0x28b01f[_0xc5e6('0x3e')][_0xc5e6('0x48')]){_0x4cbe25['where']=_[_0xc5e6('0x4b')](_0x4cbe25[_0xc5e6('0x49')],{'$or':_[_0xc5e6('0x4a')](_0x4cbe25['attributes'],function(_0x25eb3e){var _0x5b8e3b={};_0x5b8e3b[_0x25eb3e]={'$like':'%'+_0x28b01f[_0xc5e6('0x3e')][_0xc5e6('0x48')]+'%'};return _0x5b8e3b;})});}_0x4cbe25=_[_0xc5e6('0x4b')]({},_0x4cbe25,_0x28b01f[_0xc5e6('0x4c')]);return db[_0xc5e6('0x5f')][_0xc5e6('0x4d')](_0x4cbe25);}})[_0xc5e6('0x2c')](function(_0x391070){if(_0x391070){return db[_0xc5e6('0x62')]['findAndCountAll']({'where':{'id':_[_0xc5e6('0x4a')](_0x391070,_0xc5e6('0x63')),'role':_0xc5e6('0x64')},'attributes':['id','name','openchannelPause','updatedAt','createdAt']});}})['then'](function(_0x18b4f0){if(_0x18b4f0){return{'count':_0x18b4f0[_0xc5e6('0x26')],'rows':_[_0xc5e6('0x4a')](_0x18b4f0[_0xc5e6('0x4e')],function(_0x539029){return{'membername':_0x539029[_0xc5e6('0x33')],'UserId':_0x539029['id'],'queue_name':_0x4d2a64[_0xc5e6('0x33')],'OpenchannelQueueId':_0x4d2a64['id'],'interface':util[_0xc5e6('0x65')](_0xc5e6('0x66'),_0xc5e6('0x67'),_0x539029['name']),'penalty':0x0,'paused':_0x539029[_0xc5e6('0x68')],'createdAt':_0x539029[_0xc5e6('0x69')],'updatedAt':_0x539029[_0xc5e6('0x6a')]};})};}else{return{'count':0x0,'rows':[]};}})['then'](respondWithFilteredResult(_0x284d13,_0x4cbe25))['catch'](handleError(_0x284d13,null));};exports[_0xc5e6('0x6b')]=function(_0x41f101,_0x5d00b1,_0x210f42){var _0x257722={};var _0x4eac6e={};var _0x48c1f5;var _0x5726aa;return db[_0xc5e6('0x36')]['findOne']({'where':{'id':_0x41f101['params']['id']}})[_0xc5e6('0x2c')](handleEntityNotFound(_0x5d00b1,null))[_0xc5e6('0x2c')](function(_0x5725a1){if(_0x5725a1){_0x48c1f5=_0x5725a1;_0x4eac6e[_0xc5e6('0x3d')]=_['keys'](db[_0xc5e6('0x6c')][_0xc5e6('0x37')]);_0x4eac6e[_0xc5e6('0x3e')]=_[_0xc5e6('0x3b')](_0x41f101[_0xc5e6('0x3e')]);_0x4eac6e[_0xc5e6('0x47')]=_[_0xc5e6('0x3c')](_0x4eac6e['model'],_0x4eac6e[_0xc5e6('0x3e')]);_0x257722[_0xc5e6('0x3f')]=_[_0xc5e6('0x3c')](_0x4eac6e[_0xc5e6('0x3d')],qs[_0xc5e6('0x40')](_0x41f101[_0xc5e6('0x3e')][_0xc5e6('0x40')]));_0x257722['attributes']=_0x257722[_0xc5e6('0x3f')][_0xc5e6('0x41')]?_0x257722[_0xc5e6('0x3f')]:_0x4eac6e['model'];_0x257722[_0xc5e6('0x45')]=qs[_0xc5e6('0x46')](_0x41f101[_0xc5e6('0x3e')]['sort']);_0x257722[_0xc5e6('0x49')]=qs['filters'](_['pick'](_0x41f101[_0xc5e6('0x3e')],_0x4eac6e[_0xc5e6('0x47')]));if(_0x41f101[_0xc5e6('0x3e')][_0xc5e6('0x48')]){_0x257722[_0xc5e6('0x49')]=_['merge'](_0x257722[_0xc5e6('0x49')],{'$or':_[_0xc5e6('0x4a')](_0x257722[_0xc5e6('0x3f')],function(_0x506bbd){var _0x2246ed={};_0x2246ed[_0x506bbd]={'$like':'%'+_0x41f101[_0xc5e6('0x3e')][_0xc5e6('0x48')]+'%'};return _0x2246ed;})});}_0x257722=_['merge']({},_0x257722,_0x41f101['options']);return _0x48c1f5[_0xc5e6('0x6b')](_0x257722);}})[_0xc5e6('0x2c')](function(_0x256933){if(_0x256933){_0x5726aa=_0x256933['length'];if(!_0x41f101[_0xc5e6('0x3e')][_0xc5e6('0x42')](_0xc5e6('0x43'))){_0x257722['limit']=qs[_0xc5e6('0x44')](_0x41f101['query'][_0xc5e6('0x44')]);_0x257722['offset']=qs['offset'](_0x41f101[_0xc5e6('0x3e')]['offset']);}return _0x48c1f5[_0xc5e6('0x6b')](_0x257722);}})[_0xc5e6('0x2c')](function(_0x4bb63e){if(_0x4bb63e){return _0x4bb63e?{'count':_0x5726aa,'rows':_0x4bb63e}:null;}})[_0xc5e6('0x2c')](respondWithResult(_0x5d00b1,null))[_0xc5e6('0x4f')](handleError(_0x5d00b1,null));};exports['addTeams']=function(_0x13f5f1,_0x576725,_0xcd4912){var _0x51d1fb=_0x13f5f1[_0xc5e6('0x5b')][_0xc5e6('0x6d')];return db[_0xc5e6('0x6c')][_0xc5e6('0x4d')]({'where':{'id':_0x51d1fb},'attributes':['id'],'include':[{'model':db['User'],'as':_0xc5e6('0x6e'),'attributes':['id',_0xc5e6('0x33'),_0xc5e6('0x6f'),_0xc5e6('0x70'),_0xc5e6('0x71')],'raw':!![]}]})['then'](function(_0x42045c){if(_0x42045c){var _0x53b1d2=_['flatMap'](_0x42045c,function(_0x4dcb5e){var _0x56c19a=_0x4dcb5e[_0xc5e6('0x2d')]({'plain':!![]});return _0x56c19a[_0xc5e6('0x6e')];});return db[_0xc5e6('0x36')][_0xc5e6('0x58')]({'where':{'id':_0x13f5f1['params']['id']}})[_0xc5e6('0x2c')](function(_0x254a6a){return db['sequelize'][_0xc5e6('0x72')](function(_0x4d5d31){return _0x254a6a['addTeams'](_0x51d1fb,{'transaction':_0x4d5d31})[_0xc5e6('0x2c')](function(){return BPromise[_0xc5e6('0x73')](_0x53b1d2,function(_0x349779){return db[_0xc5e6('0x5f')][_0xc5e6('0x74')]({'where':{'UserId':_0x349779['id'],'OpenchannelQueueId':_0x13f5f1[_0xc5e6('0x51')]['id']},'transaction':_0x4d5d31});});})[_0xc5e6('0x2c')](function(){_0x53b1d2['forEach'](function(_0xe8e6f6){socket['emit'](_0xc5e6('0x75'),{'UserId':_0xe8e6f6['id'],'OpenchannelQueueId':_0x254a6a['id']});});});});});}})[_0xc5e6('0x2c')](respondWithStatusCode(_0x576725,null))[_0xc5e6('0x4f')](handleError(_0x576725,null));};exports[_0xc5e6('0x76')]=function(_0xd98ba6,_0x291f36,_0x7056c0){return db[_0xc5e6('0x6c')][_0xc5e6('0x4d')]({'where':{'id':_0xd98ba6[_0xc5e6('0x3e')][_0xc5e6('0x6d')]},'attributes':['id'],'include':[{'model':db['User'],'as':_0xc5e6('0x6e'),'attributes':['id'],'raw':!![]}]})[_0xc5e6('0x2c')](handleEntityNotFound(_0x291f36,null))[_0xc5e6('0x2c')](function(_0x1c824a){var _0x56a7b3=_[_0xc5e6('0x4a')](_0x1c824a,'id');var _0xb25a54=[];var _0x374d36=[];var _0x184e2a=squel[_0xc5e6('0x77')]();_0x184e2a['field'](_0xc5e6('0x78'))['from'](_0xc5e6('0x79'),'tq')[_0xc5e6('0x7a')](_0xc5e6('0x7b'),'ut',_0xc5e6('0x7c'))['where'](_0xc5e6('0x7d'),_0xd98ba6[_0xc5e6('0x51')]['id']);for(var _0x145c24=0x0;_0x145c24<_0x1c824a[_0xc5e6('0x41')];_0x145c24+=0x1){let _0x4ec1db=_0x1c824a[_0x145c24];for(var _0x129bbb=0x0;_0x129bbb<_0x4ec1db[_0xc5e6('0x6e')][_0xc5e6('0x41')];_0x129bbb+=0x1){let _0x2c8597=_0x4ec1db[_0xc5e6('0x6e')][_0x129bbb];var _0x1c48ef=_0x184e2a[_0xc5e6('0x7e')]();_0x1c48ef['where'](_0xc5e6('0x7f'),_0x2c8597['id']);_0x374d36[_0xc5e6('0x80')](db[_0xc5e6('0x81')][_0xc5e6('0x3e')](_0x1c48ef[_0xc5e6('0x82')](),{'type':db[_0xc5e6('0x81')][_0xc5e6('0x83')][_0xc5e6('0x84')]})[_0xc5e6('0x2c')](function(_0x38840c){if(_0x38840c['length']===0x1){return _0x2c8597['id'];}else{var _0x330942=_['every'](_[_0xc5e6('0x4a')](_0x38840c,'TeamId'),function(_0x106f67){return _[_0xc5e6('0x85')](_0x56a7b3,_0x106f67);});if(_0x330942){return _0x2c8597['id'];}}}));}}return BPromise[_0xc5e6('0x86')](_0x374d36)['then'](function(_0x14570e){_0xb25a54=_(_0xb25a54)[_0xc5e6('0x87')](_0x14570e)[_0xc5e6('0x88')]()['value']();return db['OpenchannelQueue'][_0xc5e6('0x58')]({'where':{'id':_0xd98ba6[_0xc5e6('0x51')]['id']}})[_0xc5e6('0x2c')](function(_0x2d5912){return db[_0xc5e6('0x81')]['transaction'](function(_0x13dfd2){return _0x2d5912[_0xc5e6('0x76')](_0xd98ba6[_0xc5e6('0x3e')][_0xc5e6('0x6d')],{'transaction':_0x13dfd2})['then'](function(){if(!_[_0xc5e6('0x89')](_0xb25a54)){return _0x2d5912['removeAgents'](_0xb25a54,{'transaction':_0x13dfd2});}})[_0xc5e6('0x2c')](function(){_0xb25a54[_0xc5e6('0x8a')](function(_0x25a792){socket[_0xc5e6('0x8b')]('userOpenchannelQueue:remove',{'UserId':_0x25a792,'OpenchannelQueueId':_0x2d5912['id']});});});});});});})[_0xc5e6('0x2c')](respondWithStatusCode(_0x291f36,null))[_0xc5e6('0x4f')](handleError(_0x291f36,null));};exports[_0xc5e6('0x8c')]=function(_0x55a083,_0x47e745,_0x5880ef){return db['OpenchannelQueue'][_0xc5e6('0x58')]({'where':{'id':_0x55a083[_0xc5e6('0x51')]['id']}})[_0xc5e6('0x2c')](handleEntityNotFound(_0x47e745,null))['then'](function(_0xc02159){if(_0xc02159){return _0xc02159[_0xc5e6('0x8c')](_0x55a083[_0xc5e6('0x5b')]['ids'],_['omit'](_0x55a083[_0xc5e6('0x5b')],[_0xc5e6('0x6d'),'id'])||{})[_0xc5e6('0x8d')](function(_0x4bbf07){for(var _0x27182e=0x0;_0x27182e<_0x55a083[_0xc5e6('0x5b')]['ids'][_0xc5e6('0x41')];_0x27182e+=0x1){socket[_0xc5e6('0x8b')](_0xc5e6('0x75'),{'UserId':Number(_0x55a083[_0xc5e6('0x5b')][_0xc5e6('0x6d')][_0x27182e]),'OpenchannelQueueId':Number(_0x55a083[_0xc5e6('0x51')]['id'])});}return _0x4bbf07;});}})[_0xc5e6('0x2c')](respondWithResult(_0x47e745,null))[_0xc5e6('0x4f')](handleError(_0x47e745,null));};exports[_0xc5e6('0x8e')]=function(_0x1062db,_0x4045ad,_0x1b5940){return db[_0xc5e6('0x36')]['find']({'where':{'id':_0x1062db[_0xc5e6('0x51')]['id']}})[_0xc5e6('0x2c')](handleEntityNotFound(_0x4045ad,null))['then'](function(_0x4774de){if(_0x4774de){return _0x4774de[_0xc5e6('0x8e')](_0x1062db[_0xc5e6('0x3e')][_0xc5e6('0x6d')])[_0xc5e6('0x2c')](function(){if(_['isArray'](_0x1062db['query'][_0xc5e6('0x6d')])){for(var _0x20f623=0x0;_0x20f623<_0x1062db[_0xc5e6('0x3e')][_0xc5e6('0x6d')][_0xc5e6('0x41')];_0x20f623+=0x1){socket[_0xc5e6('0x8b')](_0xc5e6('0x8f'),{'UserId':Number(_0x1062db['query'][_0xc5e6('0x6d')][_0x20f623]),'OpenchannelQueueId':Number(_0x1062db[_0xc5e6('0x51')]['id'])});}}else{socket['emit']('userOpenchannelQueue:remove',{'UserId':Number(_0x1062db['query'][_0xc5e6('0x6d')]),'OpenchannelQueueId':Number(_0x1062db[_0xc5e6('0x51')]['id'])});}});}})[_0xc5e6('0x2c')](respondWithStatusCode(_0x4045ad,null))['catch'](handleError(_0x4045ad,null));};exports[_0xc5e6('0x90')]=function(_0xcc69e6,_0x8d0895,_0x4fd598){var _0x474c91={};var _0x312b65={};var _0x4a9886;var _0x462df5;return db[_0xc5e6('0x36')][_0xc5e6('0x5e')]({'where':{'id':_0xcc69e6['params']['id']}})[_0xc5e6('0x2c')](handleEntityNotFound(_0x8d0895,null))[_0xc5e6('0x2c')](function(_0x56d8d8){if(_0x56d8d8){_0x4a9886=_0x56d8d8;_0x312b65[_0xc5e6('0x3d')]=_[_0xc5e6('0x3b')](db[_0xc5e6('0x62')][_0xc5e6('0x37')]);_0x312b65[_0xc5e6('0x3e')]=_[_0xc5e6('0x3b')](_0xcc69e6[_0xc5e6('0x3e')]);_0x312b65[_0xc5e6('0x47')]=_['intersection'](_0x312b65[_0xc5e6('0x3d')],_0x312b65[_0xc5e6('0x3e')]);_0x474c91['attributes']=_[_0xc5e6('0x3c')](_0x312b65[_0xc5e6('0x3d')],qs[_0xc5e6('0x40')](_0xcc69e6['query']['fields']));_0x474c91[_0xc5e6('0x3f')]=_0x474c91[_0xc5e6('0x3f')][_0xc5e6('0x41')]?_0x474c91[_0xc5e6('0x3f')]:_0x312b65[_0xc5e6('0x3d')];_0x474c91[_0xc5e6('0x45')]=qs[_0xc5e6('0x46')](_0xcc69e6[_0xc5e6('0x3e')][_0xc5e6('0x46')]);_0x474c91['where']=qs[_0xc5e6('0x47')](_['pick'](_0xcc69e6[_0xc5e6('0x3e')],_0x312b65[_0xc5e6('0x47')]));if(_0xcc69e6['query'][_0xc5e6('0x48')]){_0x474c91['where']=_['merge'](_0x474c91['where'],{'$or':_['map'](_0x474c91[_0xc5e6('0x3f')],function(_0x32fc34){var _0x52f156={};_0x52f156[_0x32fc34]={'$like':'%'+_0xcc69e6['query'][_0xc5e6('0x48')]+'%'};return _0x52f156;})});}_0x474c91=_[_0xc5e6('0x4b')]({},_0x474c91,_0xcc69e6['options']);return _0x4a9886[_0xc5e6('0x90')](_0x474c91);}})[_0xc5e6('0x2c')](function(_0x32332a){if(_0x32332a){_0x462df5=_0x32332a['length'];if(!_0xcc69e6['query'][_0xc5e6('0x42')](_0xc5e6('0x43'))){_0x474c91[_0xc5e6('0x44')]=qs[_0xc5e6('0x44')](_0xcc69e6[_0xc5e6('0x3e')][_0xc5e6('0x44')]);_0x474c91[_0xc5e6('0x24')]=qs[_0xc5e6('0x24')](_0xcc69e6[_0xc5e6('0x3e')][_0xc5e6('0x24')]);}return _0x4a9886['getAgents'](_0x474c91);}})[_0xc5e6('0x2c')](function(_0x2c0941){if(_0x2c0941){return _0x2c0941?{'count':_0x462df5,'rows':_0x2c0941}:null;}})[_0xc5e6('0x2c')](respondWithResult(_0x8d0895,null))[_0xc5e6('0x4f')](handleError(_0x8d0895,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x74f0=['save','update','remove','emit','hook','exports','../../mysqldb','OpenchannelQueue','setMaxListeners'];(function(_0x32d0b8,_0x194734){var _0xa084a6=function(_0x5f0aea){while(--_0x5f0aea){_0x32d0b8['push'](_0x32d0b8['shift']());}};_0xa084a6(++_0x194734);}(_0x74f0,0x1d1));var _0x074f=function(_0x3e8930,_0x154364){_0x3e8930=_0x3e8930-0x0;var _0x15b38f=_0x74f0[_0x3e8930];return _0x15b38f;};'use strict';var EventEmitter=require('events');var OpenchannelQueue=require(_0x074f('0x0'))['db'][_0x074f('0x1')];var OpenchannelQueueEvents=new EventEmitter();OpenchannelQueueEvents[_0x074f('0x2')](0x0);var events={'afterCreate':_0x074f('0x3'),'afterUpdate':_0x074f('0x4'),'afterDestroy':_0x074f('0x5')};function emitEvent(_0xaef8a1){return function(_0x1e1e9f,_0x55ee74,_0x464695){OpenchannelQueueEvents['emit'](_0xaef8a1+':'+_0x1e1e9f['id'],_0x1e1e9f);OpenchannelQueueEvents[_0x074f('0x6')](_0xaef8a1,_0x1e1e9f);_0x464695(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];OpenchannelQueue[_0x074f('0x7')](e,emitEvent(event));}}module[_0x074f('0x8')]=OpenchannelQueueEvents;
\ No newline at end of file
+var _0xa253=['setMaxListeners','save','update','remove','emit','hook','exports','events','../../mysqldb'];(function(_0x432682,_0x253044){var _0x463d05=function(_0xa73403){while(--_0xa73403){_0x432682['push'](_0x432682['shift']());}};_0x463d05(++_0x253044);}(_0xa253,0x18a));var _0x3a25=function(_0x52c4f6,_0x5b3ecc){_0x52c4f6=_0x52c4f6-0x0;var _0x34cabb=_0xa253[_0x52c4f6];return _0x34cabb;};'use strict';var EventEmitter=require(_0x3a25('0x0'));var OpenchannelQueue=require(_0x3a25('0x1'))['db']['OpenchannelQueue'];var OpenchannelQueueEvents=new EventEmitter();OpenchannelQueueEvents[_0x3a25('0x2')](0x0);var events={'afterCreate':_0x3a25('0x3'),'afterUpdate':_0x3a25('0x4'),'afterDestroy':_0x3a25('0x5')};function emitEvent(_0x885f45){return function(_0x6ff995,_0x3b51a1,_0x2ef73c){OpenchannelQueueEvents['emit'](_0x885f45+':'+_0x6ff995['id'],_0x6ff995);OpenchannelQueueEvents[_0x3a25('0x6')](_0x885f45,_0x6ff995);_0x2ef73c(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];OpenchannelQueue[_0x3a25('0x7')](e,emitEvent(event));}}module[_0x3a25('0x8')]=OpenchannelQueueEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xce0f=['lodash','util','../../config/logger','moment','bluebird','rimraf','../../config/environment','./openchannelQueue.attributes','exports','define','OpenchannelQueue'];(function(_0x3010db,_0x4ddbe7){var _0x3bc350=function(_0x38a2f5){while(--_0x38a2f5){_0x3010db['push'](_0x3010db['shift']());}};_0x3bc350(++_0x4ddbe7);}(_0xce0f,0x11e));var _0xfce0=function(_0x2cf33f,_0x39b482){_0x2cf33f=_0x2cf33f-0x0;var _0x73a624=_0xce0f[_0x2cf33f];return _0x73a624;};'use strict';var _=require(_0xfce0('0x0'));var util=require(_0xfce0('0x1'));var logger=require(_0xfce0('0x2'))('api');var moment=require(_0xfce0('0x3'));var BPromise=require(_0xfce0('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0xfce0('0x5'));var config=require(_0xfce0('0x6'));var attributes=require(_0xfce0('0x7'));module[_0xfce0('0x8')]=function(_0x332a5e,_0x531fa8){return _0x332a5e[_0xfce0('0x9')](_0xfce0('0xa'),attributes,{'tableName':'openchannel_queues','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xcc56=['lodash','api','moment','bluebird','request-promise','path','../../config/environment','./openchannelQueue.attributes','exports','define','OpenchannelQueue','openchannel_queues'];(function(_0x465028,_0x4570ac){var _0xb783d4=function(_0x5458c5){while(--_0x5458c5){_0x465028['push'](_0x465028['shift']());}};_0xb783d4(++_0x4570ac);}(_0xcc56,0x108));var _0x6cc5=function(_0x40baad,_0x5863ae){_0x40baad=_0x40baad-0x0;var _0x5244b7=_0xcc56[_0x40baad];return _0x5244b7;};'use strict';var _=require(_0x6cc5('0x0'));var util=require('util');var logger=require('../../config/logger')(_0x6cc5('0x1'));var moment=require(_0x6cc5('0x2'));var BPromise=require(_0x6cc5('0x3'));var rp=require(_0x6cc5('0x4'));var fs=require('fs');var path=require(_0x6cc5('0x5'));var rimraf=require('rimraf');var config=require(_0x6cc5('0x6'));var attributes=require(_0x6cc5('0x7'));module[_0x6cc5('0x8')]=function(_0x4a14ba,_0x287c99){return _0x4a14ba[_0x6cc5('0x9')](_0x6cc5('0xa'),attributes,{'tableName':_0x6cc5('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2b0b=['ioredis','../../mysqldb','../../config/logger','../../config/environment','jayson/promise','http','redis','localhost','./openchannelQueue.socket','register','request','then','info','OpenchannelQueue,\x20%s,\x20%s','request\x20sent','OpenchannelQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','OpenchannelQueue','findAll','options','where','attributes','limit','include','map','model','GetOpenchannelQueue','debug','ShowOpenchannelQueue','raw','lodash','util','moment'];(function(_0x85d81,_0x545d3b){var _0x826650=function(_0x3df806){while(--_0x3df806){_0x85d81['push'](_0x85d81['shift']());}};_0x826650(++_0x545d3b);}(_0x2b0b,0x1c5));var _0xb2b0=function(_0x499a49,_0x3498c9){_0x499a49=_0x499a49-0x0;var _0x41793c=_0x2b0b[_0x499a49];return _0x41793c;};'use strict';var _=require(_0xb2b0('0x0'));var util=require(_0xb2b0('0x1'));var moment=require(_0xb2b0('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xb2b0('0x3'));var db=require(_0xb2b0('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0xb2b0('0x5'))('rpc');var config=require(_0xb2b0('0x6'));var jayson=require(_0xb2b0('0x7'));var client=jayson['client'][_0xb2b0('0x8')]({'port':0x232a});config[_0xb2b0('0x9')]=_['defaults'](config[_0xb2b0('0x9')],{'host':_0xb2b0('0xa'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0xb2b0('0xb'))[_0xb2b0('0xc')](socket);function respondWithRpcPromise(_0x45edcb,_0x14e437,_0x2b92f2){return new BPromise(function(_0x4cf675,_0x226fbd){return client[_0xb2b0('0xd')](_0x45edcb,_0x2b92f2)[_0xb2b0('0xe')](function(_0x438de8){logger[_0xb2b0('0xf')](_0xb2b0('0x10'),_0x14e437,_0xb2b0('0x11'));logger['debug'](_0xb2b0('0x12'),_0x14e437,_0xb2b0('0x11'),JSON[_0xb2b0('0x13')](_0x438de8));if(_0x438de8[_0xb2b0('0x14')]){if(_0x438de8[_0xb2b0('0x14')][_0xb2b0('0x15')]===0x1f4){logger[_0xb2b0('0x14')](_0xb2b0('0x10'),_0x14e437,_0x438de8[_0xb2b0('0x14')][_0xb2b0('0x16')]);return _0x226fbd(_0x438de8['error'][_0xb2b0('0x16')]);}logger[_0xb2b0('0x14')](_0xb2b0('0x10'),_0x14e437,_0x438de8['error'][_0xb2b0('0x16')]);return _0x4cf675(_0x438de8['error'][_0xb2b0('0x16')]);}else{logger[_0xb2b0('0xf')](_0xb2b0('0x10'),_0x14e437,_0xb2b0('0x11'));_0x4cf675(_0x438de8[_0xb2b0('0x17')][_0xb2b0('0x16')]);}})[_0xb2b0('0x18')](function(_0xd926d2){logger[_0xb2b0('0x14')]('OpenchannelQueue,\x20%s,\x20%s',_0x14e437,_0xd926d2);_0x226fbd(_0xd926d2);});});}exports['GetOpenchannelQueue']=function(_0x59cba0){var _0x45b0c3=this;return new Promise(function(_0x41f41c,_0x240bd9){return db[_0xb2b0('0x19')][_0xb2b0('0x1a')]({'raw':_0x59cba0[_0xb2b0('0x1b')]?_0x59cba0[_0xb2b0('0x1b')]['raw']===undefined?!![]:![]:!![],'where':_0x59cba0['options']?_0x59cba0[_0xb2b0('0x1b')][_0xb2b0('0x1c')]||null:null,'attributes':_0x59cba0[_0xb2b0('0x1b')]?_0x59cba0[_0xb2b0('0x1b')][_0xb2b0('0x1d')]||null:null,'limit':_0x59cba0[_0xb2b0('0x1b')]?_0x59cba0[_0xb2b0('0x1b')][_0xb2b0('0x1e')]||null:null,'include':_0x59cba0[_0xb2b0('0x1b')]?_0x59cba0['options'][_0xb2b0('0x1f')]?_[_0xb2b0('0x20')](_0x59cba0[_0xb2b0('0x1b')][_0xb2b0('0x1f')],function(_0x5155b9){return{'model':db[_0x5155b9[_0xb2b0('0x21')]],'as':_0x5155b9['as'],'attributes':_0x5155b9['attributes'],'include':_0x5155b9[_0xb2b0('0x1f')]?_['map'](_0x5155b9[_0xb2b0('0x1f')],function(_0x3f4307){return{'model':db[_0x3f4307[_0xb2b0('0x21')]],'as':_0x3f4307['as'],'attributes':_0x3f4307[_0xb2b0('0x1d')],'include':_0x3f4307[_0xb2b0('0x1f')]?_[_0xb2b0('0x20')](_0x3f4307['include'],function(_0x30f681){return{'model':db[_0x30f681[_0xb2b0('0x21')]],'as':_0x30f681['as'],'attributes':_0x30f681[_0xb2b0('0x1d')]};}):[]};}):[]};}):[]:[]})[_0xb2b0('0xe')](function(_0xae677d){logger[_0xb2b0('0xf')](_0xb2b0('0x22'),_0x59cba0);logger[_0xb2b0('0x23')](_0xb2b0('0x22'),_0x59cba0,JSON[_0xb2b0('0x13')](_0xae677d));_0x41f41c(_0xae677d);})[_0xb2b0('0x18')](function(_0x3dc0a8){logger['error']('GetOpenchannelQueue',_0x3dc0a8[_0xb2b0('0x16')],_0x59cba0);_0x240bd9(_0x45b0c3[_0xb2b0('0x14')](0x1f4,_0x3dc0a8['message']));});});};exports[_0xb2b0('0x24')]=function(_0x46c02f){var _0x1aa7b3=this;return new Promise(function(_0x127101,_0x324fd9){return db[_0xb2b0('0x19')]['find']({'raw':_0x46c02f['options']?_0x46c02f[_0xb2b0('0x1b')][_0xb2b0('0x25')]===undefined?!![]:![]:!![],'where':_0x46c02f[_0xb2b0('0x1b')]?_0x46c02f[_0xb2b0('0x1b')][_0xb2b0('0x1c')]||null:null,'attributes':_0x46c02f[_0xb2b0('0x1b')]?_0x46c02f[_0xb2b0('0x1b')]['attributes']||null:null,'include':_0x46c02f['options']?_0x46c02f[_0xb2b0('0x1b')]['include']?_['map'](_0x46c02f[_0xb2b0('0x1b')]['include'],function(_0x16396a){return{'model':db[_0x16396a[_0xb2b0('0x21')]],'as':_0x16396a['as'],'attributes':_0x16396a[_0xb2b0('0x1d')],'include':_0x16396a['include']?_[_0xb2b0('0x20')](_0x16396a[_0xb2b0('0x1f')],function(_0x5ba295){return{'model':db[_0x5ba295[_0xb2b0('0x21')]],'as':_0x5ba295['as'],'attributes':_0x5ba295[_0xb2b0('0x1d')],'include':_0x5ba295[_0xb2b0('0x1f')]?_[_0xb2b0('0x20')](_0x5ba295['include'],function(_0x5a08d1){return{'model':db[_0x5a08d1[_0xb2b0('0x21')]],'as':_0x5a08d1['as'],'attributes':_0x5a08d1[_0xb2b0('0x1d')]};}):[]};}):[]};}):[]:[]})[_0xb2b0('0xe')](function(_0x4f8390){logger['info'](_0xb2b0('0x24'),_0x46c02f);logger[_0xb2b0('0x23')](_0xb2b0('0x24'),_0x46c02f,JSON[_0xb2b0('0x13')](_0x4f8390));_0x127101(_0x4f8390);})[_0xb2b0('0x18')](function(_0x45cb07){logger[_0xb2b0('0x14')](_0xb2b0('0x24'),_0x45cb07[_0xb2b0('0x16')],_0x46c02f);_0x324fd9(_0x1aa7b3[_0xb2b0('0x14')](0x1f4,_0x45cb07[_0xb2b0('0x16')]));});});};
\ No newline at end of file
+var _0x7a98=['model','attributes','ShowOpenchannelQueue','find','stringify','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','redis','defaults','socket.io-emitter','register','request','then','info','OpenchannelQueue,\x20%s,\x20%s','request\x20sent','debug','OpenchannelQueue,\x20%s,\x20%s,\x20%s','error','code','message','result','catch','GetOpenchannelQueue','OpenchannelQueue','findAll','options','raw','where','include','map'];(function(_0x19611a,_0x26736e){var _0xe7ab99=function(_0x544e04){while(--_0x544e04){_0x19611a['push'](_0x19611a['shift']());}};_0xe7ab99(++_0x26736e);}(_0x7a98,0x18b));var _0x87a9=function(_0x328670,_0x35309a){_0x328670=_0x328670-0x0;var _0x2e60f8=_0x7a98[_0x328670];return _0x2e60f8;};'use strict';var _=require('lodash');var util=require(_0x87a9('0x0'));var moment=require('moment');var BPromise=require(_0x87a9('0x1'));var rs=require(_0x87a9('0x2'));var fs=require('fs');var Redis=require(_0x87a9('0x3'));var db=require(_0x87a9('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0x87a9('0x5'))(_0x87a9('0x6'));var config=require(_0x87a9('0x7'));var jayson=require(_0x87a9('0x8'));var client=jayson[_0x87a9('0x9')]['http']({'port':0x232a});config[_0x87a9('0xa')]=_[_0x87a9('0xb')](config[_0x87a9('0xa')],{'host':'localhost','port':0x18eb});var socket=require(_0x87a9('0xc'))(new Redis(config['redis']));require('./openchannelQueue.socket')[_0x87a9('0xd')](socket);function respondWithRpcPromise(_0x55063c,_0x292842,_0x547ca4){return new BPromise(function(_0x2cfbbe,_0x29e874){return client[_0x87a9('0xe')](_0x55063c,_0x547ca4)[_0x87a9('0xf')](function(_0x2a1d89){logger[_0x87a9('0x10')](_0x87a9('0x11'),_0x292842,_0x87a9('0x12'));logger[_0x87a9('0x13')](_0x87a9('0x14'),_0x292842,_0x87a9('0x12'),JSON['stringify'](_0x2a1d89));if(_0x2a1d89[_0x87a9('0x15')]){if(_0x2a1d89[_0x87a9('0x15')][_0x87a9('0x16')]===0x1f4){logger[_0x87a9('0x15')](_0x87a9('0x11'),_0x292842,_0x2a1d89[_0x87a9('0x15')][_0x87a9('0x17')]);return _0x29e874(_0x2a1d89[_0x87a9('0x15')][_0x87a9('0x17')]);}logger[_0x87a9('0x15')](_0x87a9('0x11'),_0x292842,_0x2a1d89[_0x87a9('0x15')][_0x87a9('0x17')]);return _0x2cfbbe(_0x2a1d89[_0x87a9('0x15')][_0x87a9('0x17')]);}else{logger[_0x87a9('0x10')]('OpenchannelQueue,\x20%s,\x20%s',_0x292842,_0x87a9('0x12'));_0x2cfbbe(_0x2a1d89[_0x87a9('0x18')][_0x87a9('0x17')]);}})[_0x87a9('0x19')](function(_0x3a0acf){logger[_0x87a9('0x15')](_0x87a9('0x11'),_0x292842,_0x3a0acf);_0x29e874(_0x3a0acf);});});}exports[_0x87a9('0x1a')]=function(_0x197fd1){var _0x395021=this;return new Promise(function(_0x291812,_0x21bc5d){return db[_0x87a9('0x1b')][_0x87a9('0x1c')]({'raw':_0x197fd1[_0x87a9('0x1d')]?_0x197fd1['options'][_0x87a9('0x1e')]===undefined?!![]:![]:!![],'where':_0x197fd1[_0x87a9('0x1d')]?_0x197fd1[_0x87a9('0x1d')][_0x87a9('0x1f')]||null:null,'attributes':_0x197fd1[_0x87a9('0x1d')]?_0x197fd1[_0x87a9('0x1d')]['attributes']||null:null,'limit':_0x197fd1['options']?_0x197fd1['options']['limit']||null:null,'include':_0x197fd1[_0x87a9('0x1d')]?_0x197fd1[_0x87a9('0x1d')][_0x87a9('0x20')]?_[_0x87a9('0x21')](_0x197fd1['options'][_0x87a9('0x20')],function(_0x1fb7ee){return{'model':db[_0x1fb7ee[_0x87a9('0x22')]],'as':_0x1fb7ee['as'],'attributes':_0x1fb7ee[_0x87a9('0x23')],'include':_0x1fb7ee[_0x87a9('0x20')]?_[_0x87a9('0x21')](_0x1fb7ee['include'],function(_0x47cabf){return{'model':db[_0x47cabf[_0x87a9('0x22')]],'as':_0x47cabf['as'],'attributes':_0x47cabf[_0x87a9('0x23')],'include':_0x47cabf[_0x87a9('0x20')]?_[_0x87a9('0x21')](_0x47cabf[_0x87a9('0x20')],function(_0x10c0b6){return{'model':db[_0x10c0b6[_0x87a9('0x22')]],'as':_0x10c0b6['as'],'attributes':_0x10c0b6[_0x87a9('0x23')]};}):[]};}):[]};}):[]:[]})[_0x87a9('0xf')](function(_0x5c94d7){logger['info'](_0x87a9('0x1a'),_0x197fd1);logger[_0x87a9('0x13')](_0x87a9('0x1a'),_0x197fd1,JSON['stringify'](_0x5c94d7));_0x291812(_0x5c94d7);})['catch'](function(_0x32054b){logger[_0x87a9('0x15')](_0x87a9('0x1a'),_0x32054b[_0x87a9('0x17')],_0x197fd1);_0x21bc5d(_0x395021[_0x87a9('0x15')](0x1f4,_0x32054b['message']));});});};exports[_0x87a9('0x24')]=function(_0x49d296){var _0x472a2a=this;return new Promise(function(_0x42e8b6,_0x3067c1){return db['OpenchannelQueue'][_0x87a9('0x25')]({'raw':_0x49d296[_0x87a9('0x1d')]?_0x49d296[_0x87a9('0x1d')][_0x87a9('0x1e')]===undefined?!![]:![]:!![],'where':_0x49d296[_0x87a9('0x1d')]?_0x49d296[_0x87a9('0x1d')][_0x87a9('0x1f')]||null:null,'attributes':_0x49d296[_0x87a9('0x1d')]?_0x49d296['options'][_0x87a9('0x23')]||null:null,'include':_0x49d296[_0x87a9('0x1d')]?_0x49d296[_0x87a9('0x1d')][_0x87a9('0x20')]?_[_0x87a9('0x21')](_0x49d296[_0x87a9('0x1d')][_0x87a9('0x20')],function(_0x10316e){return{'model':db[_0x10316e[_0x87a9('0x22')]],'as':_0x10316e['as'],'attributes':_0x10316e['attributes'],'include':_0x10316e['include']?_[_0x87a9('0x21')](_0x10316e[_0x87a9('0x20')],function(_0xea5fc3){return{'model':db[_0xea5fc3[_0x87a9('0x22')]],'as':_0xea5fc3['as'],'attributes':_0xea5fc3[_0x87a9('0x23')],'include':_0xea5fc3[_0x87a9('0x20')]?_[_0x87a9('0x21')](_0xea5fc3['include'],function(_0x118fb9){return{'model':db[_0x118fb9['model']],'as':_0x118fb9['as'],'attributes':_0x118fb9[_0x87a9('0x23')]};}):[]};}):[]};}):[]:[]})[_0x87a9('0xf')](function(_0x29aa86){logger[_0x87a9('0x10')](_0x87a9('0x24'),_0x49d296);logger[_0x87a9('0x13')]('ShowOpenchannelQueue',_0x49d296,JSON[_0x87a9('0x26')](_0x29aa86));_0x42e8b6(_0x29aa86);})[_0x87a9('0x19')](function(_0x7d2f04){logger[_0x87a9('0x15')](_0x87a9('0x24'),_0x7d2f04[_0x87a9('0x17')],_0x49d296);_0x3067c1(_0x472a2a['error'](0x1f4,_0x7d2f04[_0x87a9('0x17')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x24ad=['removeListener','length','./openchannelQueue.events','remove','emit'];(function(_0x2e1b25,_0x1e397c){var _0x4427c7=function(_0x520f7c){while(--_0x520f7c){_0x2e1b25['push'](_0x2e1b25['shift']());}};_0x4427c7(++_0x1e397c);}(_0x24ad,0xf2));var _0xd24a=function(_0x42044c,_0x5cc104){_0x42044c=_0x42044c-0x0;var _0x40d082=_0x24ad[_0x42044c];return _0x40d082;};'use strict';var OpenchannelQueueEvents=require(_0xd24a('0x0'));var events=['save',_0xd24a('0x1'),'update'];function createListener(_0x2c3426,_0x3b28f1){return function(_0x11d0e1){_0x3b28f1[_0xd24a('0x2')](_0x2c3426,_0x11d0e1);};}function removeListener(_0x149ed9,_0x399458){return function(){OpenchannelQueueEvents[_0xd24a('0x3')](_0x149ed9,_0x399458);};}exports['register']=function(_0xa64a05){for(var _0x18ce8d=0x0,_0xc9b029=events[_0xd24a('0x4')];_0x18ce8d<_0xc9b029;_0x18ce8d++){var _0x37a063=events[_0x18ce8d];var _0x494384=createListener('openchannelQueue:'+_0x37a063,_0xa64a05);OpenchannelQueueEvents['on'](_0x37a063,_0x494384);}};
\ No newline at end of file
+var _0xade7=['openchannelQueue:','./openchannelQueue.events','emit','removeListener','register','length'];(function(_0x1ba69f,_0x25af8c){var _0xb39f3=function(_0x37a713){while(--_0x37a713){_0x1ba69f['push'](_0x1ba69f['shift']());}};_0xb39f3(++_0x25af8c);}(_0xade7,0x67));var _0x7ade=function(_0x16337a,_0x4789a1){_0x16337a=_0x16337a-0x0;var _0x422365=_0xade7[_0x16337a];return _0x422365;};'use strict';var OpenchannelQueueEvents=require(_0x7ade('0x0'));var events=['save','remove','update'];function createListener(_0x4917fe,_0xd0268c){return function(_0x5cbe4e){_0xd0268c[_0x7ade('0x1')](_0x4917fe,_0x5cbe4e);};}function removeListener(_0x512aba,_0x260ee0){return function(){OpenchannelQueueEvents[_0x7ade('0x2')](_0x512aba,_0x260ee0);};}exports[_0x7ade('0x3')]=function(_0x107ca5){for(var _0x11d484=0x0,_0x585173=events[_0x7ade('0x4')];_0x11d484<_0x585173;_0x11d484++){var _0x3948f2=events[_0x11d484];var _0x563cd6=createListener(_0x7ade('0x5')+_0x3948f2,_0x107ca5);OpenchannelQueueEvents['on'](_0x3948f2,_0x563cd6);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa84e=['../../components/interaction/service','../../config/environment','./openchannelQueueReport.controller','get','isAuthenticated','index','/:id','show','put','update','destroy','exports','multer','util','connect-timeout','express','fs-extra','../../components/auth/service'];(function(_0x452dca,_0x2085e7){var _0x171265=function(_0x513edb){while(--_0x513edb){_0x452dca['push'](_0x452dca['shift']());}};_0x171265(++_0x2085e7);}(_0xa84e,0x108));var _0xea84=function(_0x350396,_0x391ad2){_0x350396=_0x350396-0x0;var _0xf306b1=_0xa84e[_0x350396];return _0xf306b1;};'use strict';var multer=require(_0xea84('0x0'));var util=require(_0xea84('0x1'));var path=require('path');var timeout=require(_0xea84('0x2'));var express=require(_0xea84('0x3'));var router=express['Router']();var fs_extra=require(_0xea84('0x4'));var auth=require(_0xea84('0x5'));var interaction=require(_0xea84('0x6'));var config=require(_0xea84('0x7'));var controller=require(_0xea84('0x8'));router[_0xea84('0x9')]('/',auth[_0xea84('0xa')](),controller[_0xea84('0xb')]);router['get']('/describe',auth[_0xea84('0xa')](),controller['describe']);router[_0xea84('0x9')](_0xea84('0xc'),auth[_0xea84('0xa')](),controller[_0xea84('0xd')]);router['post']('/',auth[_0xea84('0xa')](),controller['create']);router[_0xea84('0xe')](_0xea84('0xc'),auth[_0xea84('0xa')](),controller[_0xea84('0xf')]);router['delete'](_0xea84('0xc'),auth['isAuthenticated'](),controller[_0xea84('0x10')]);module[_0xea84('0x11')]=router;
\ No newline at end of file
+var _0xdbc4=['create','/:id','update','delete','destroy','exports','multer','util','path','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./openchannelQueueReport.controller','get','isAuthenticated','index','describe','show'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xdbc4,0x7e));var _0x4dbc=function(_0x564ac5,_0x5ebf99){_0x564ac5=_0x564ac5-0x0;var _0xfb8ac1=_0xdbc4[_0x564ac5];return _0xfb8ac1;};'use strict';var multer=require(_0x4dbc('0x0'));var util=require(_0x4dbc('0x1'));var path=require(_0x4dbc('0x2'));var timeout=require('connect-timeout');var express=require(_0x4dbc('0x3'));var router=express[_0x4dbc('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0x4dbc('0x5'));var interaction=require(_0x4dbc('0x6'));var config=require(_0x4dbc('0x7'));var controller=require(_0x4dbc('0x8'));router[_0x4dbc('0x9')]('/',auth[_0x4dbc('0xa')](),controller[_0x4dbc('0xb')]);router[_0x4dbc('0x9')]('/describe',auth[_0x4dbc('0xa')](),controller[_0x4dbc('0xc')]);router[_0x4dbc('0x9')]('/:id',auth[_0x4dbc('0xa')](),controller[_0x4dbc('0xd')]);router['post']('/',auth['isAuthenticated'](),controller[_0x4dbc('0xe')]);router['put'](_0x4dbc('0xf'),auth['isAuthenticated'](),controller[_0x4dbc('0x10')]);router[_0x4dbc('0x11')](_0x4dbc('0xf'),auth[_0x4dbc('0xa')](),controller[_0x4dbc('0x12')]);module[_0x4dbc('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe9c1=['sequelize','STRING','DATE','moment'];(function(_0x1791eb,_0x1d1ae1){var _0x199cbe=function(_0x464bc4){while(--_0x464bc4){_0x1791eb['push'](_0x1791eb['shift']());}};_0x199cbe(++_0x1d1ae1);}(_0xe9c1,0x1a7));var _0x1e9c=function(_0x4268e5,_0x4e5679){_0x4268e5=_0x4268e5-0x0;var _0x394656=_0xe9c1[_0x4268e5];return _0x394656;};'use strict';var moment=require(_0x1e9c('0x0'));var Sequelize=require(_0x1e9c('0x1'));module['exports']={'uniqueid':{'type':Sequelize['STRING'],'allowNull':![]},'from':{'type':Sequelize[_0x1e9c('0x2')]},'joinAt':{'type':Sequelize[_0x1e9c('0x3')]},'leaveAt':{'type':Sequelize[_0x1e9c('0x3')]},'acceptAt':{'type':Sequelize[_0x1e9c('0x3')]},'exitAt':{'type':Sequelize[_0x1e9c('0x3')]},'reason':{'type':Sequelize[_0x1e9c('0x2')]}};
\ No newline at end of file
+var _0x10c4=['exports','STRING','DATE','moment'];(function(_0x3d37b3,_0x252695){var _0x4c3538=function(_0xcc187e){while(--_0xcc187e){_0x3d37b3['push'](_0x3d37b3['shift']());}};_0x4c3538(++_0x252695);}(_0x10c4,0x16b));var _0x410c=function(_0x27ff71,_0x1dd019){_0x27ff71=_0x27ff71-0x0;var _0x7333c5=_0x10c4[_0x27ff71];return _0x7333c5;};'use strict';var moment=require(_0x410c('0x0'));var Sequelize=require('sequelize');module[_0x410c('0x1')]={'uniqueid':{'type':Sequelize[_0x410c('0x2')],'allowNull':![]},'from':{'type':Sequelize[_0x410c('0x2')]},'joinAt':{'type':Sequelize[_0x410c('0x3')]},'leaveAt':{'type':Sequelize[_0x410c('0x3')]},'acceptAt':{'type':Sequelize[_0x410c('0x3')]},'exitAt':{'type':Sequelize['DATE']},'reason':{'type':Sequelize[_0x410c('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe7cf=['sort','pick','merge','where','VIRTUAL','filter','options','OpenchannelQueueReport','includeAll','include','rows','catch','params','length','find','create','body','describe','eml-format','zip-dir','fast-json-patch','moment','bluebird','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','../../config/utils','../../mysqldb','sendStatus','status','end','offset','undefined','count','limit','set','Content-Range','json','apply','save','update','then','destroy','error','name','send','map','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','fields','attributes','hasOwnProperty','nolimit','order'];(function(_0x490e61,_0x7f848e){var _0x169bc6=function(_0x1c70bf){while(--_0x1c70bf){_0x490e61['push'](_0x490e61['shift']());}};_0x169bc6(++_0x7f848e);}(_0xe7cf,0x13e));var _0xfe7c=function(_0x566760,_0x1f7104){_0x566760=_0x566760-0x0;var _0x30ca6d=_0xe7cf[_0x566760];return _0x30ca6d;};'use strict';var emlformat=require(_0xfe7c('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xfe7c('0x1'));var jsonpatch=require(_0xfe7c('0x2'));var rp=require('request-promise');var moment=require(_0xfe7c('0x3'));var BPromise=require(_0xfe7c('0x4'));var Mustache=require(_0xfe7c('0x5'));var util=require(_0xfe7c('0x6'));var path=require(_0xfe7c('0x7'));var sox=require(_0xfe7c('0x8'));var csv=require(_0xfe7c('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xfe7c('0xa'));var _=require(_0xfe7c('0xb'));var squel=require(_0xfe7c('0xc'));var crypto=require(_0xfe7c('0xd'));var jsforce=require('jsforce');var deskjs=require(_0xfe7c('0xe'));var toCsv=require('to-csv');var querystring=require(_0xfe7c('0xf'));var Papa=require(_0xfe7c('0x10'));var Redis=require(_0xfe7c('0x11'));var authService=require(_0xfe7c('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0xfe7c('0x13'));var hardwareService=require(_0xfe7c('0x14'));var logger=require(_0xfe7c('0x15'))('api');var utils=require(_0xfe7c('0x16'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0xfe7c('0x17'))['db'];function respondWithStatusCode(_0xe33cac,_0x1fd0b6){_0x1fd0b6=_0x1fd0b6||0xcc;return function(_0x465bf9){if(_0x465bf9){return _0xe33cac[_0xfe7c('0x18')](_0x1fd0b6);}return _0xe33cac[_0xfe7c('0x19')](_0x1fd0b6)[_0xfe7c('0x1a')]();};}function respondWithResult(_0x37d9df,_0x81b9d6){_0x81b9d6=_0x81b9d6||0xc8;return function(_0x245e6e){if(_0x245e6e){return _0x37d9df[_0xfe7c('0x19')](_0x81b9d6)['json'](_0x245e6e);}};}function respondWithFilteredResult(_0x325310,_0x2a3126){return function(_0x260b07){if(_0x260b07){var _0x2e1e20=typeof _0x2a3126[_0xfe7c('0x1b')]===_0xfe7c('0x1c')&&typeof _0x2a3126['limit']===_0xfe7c('0x1c');var _0x1d7731=_0x260b07[_0xfe7c('0x1d')];var _0x75f71d=_0x2e1e20?0x0:_0x2a3126[_0xfe7c('0x1b')];var _0x2acde5=_0x2e1e20?_0x260b07[_0xfe7c('0x1d')]:_0x2a3126[_0xfe7c('0x1b')]+_0x2a3126[_0xfe7c('0x1e')];var _0x12f997;if(_0x2acde5>=_0x1d7731){_0x2acde5=_0x1d7731;_0x12f997=0xc8;}else{_0x12f997=0xce;}_0x325310[_0xfe7c('0x19')](_0x12f997);return _0x325310[_0xfe7c('0x1f')](_0xfe7c('0x20'),_0x75f71d+'-'+_0x2acde5+'/'+_0x1d7731)[_0xfe7c('0x21')](_0x260b07);}return null;};}function patchUpdates(_0x4cc41f){return function(_0x3d5bcd){try{jsonpatch[_0xfe7c('0x22')](_0x3d5bcd,_0x4cc41f,!![]);}catch(_0x5b36d0){return BPromise['reject'](_0x5b36d0);}return _0x3d5bcd[_0xfe7c('0x23')]();};}function saveUpdates(_0x5462b4,_0x1e6380){return function(_0x47b52e){if(_0x47b52e){return _0x47b52e[_0xfe7c('0x24')](_0x5462b4)[_0xfe7c('0x25')](function(_0x4bde4f){return _0x4bde4f;});}return null;};}function removeEntity(_0x23fbdb,_0x50bbe7){return function(_0x3fb93e){if(_0x3fb93e){return _0x3fb93e[_0xfe7c('0x26')]()[_0xfe7c('0x25')](function(){_0x23fbdb['status'](0xcc)[_0xfe7c('0x1a')]();});}};}function handleEntityNotFound(_0x515d37,_0x569143){return function(_0x383526){if(!_0x383526){_0x515d37[_0xfe7c('0x18')](0x194);}return _0x383526;};}function handleError(_0x23e5fe,_0x4d875e){_0x4d875e=_0x4d875e||0x1f4;return function(_0x43b135){logger[_0xfe7c('0x27')](_0x43b135['stack']);if(_0x43b135['name']){delete _0x43b135[_0xfe7c('0x28')];}_0x23e5fe[_0xfe7c('0x19')](_0x4d875e)[_0xfe7c('0x29')](_0x43b135);};}exports['index']=function(_0x2c3d76,_0x2070ee){var _0x425f61={},_0x360551={},_0x2c9a3e={'count':0x0,'rows':[]};var _0x42ce26=_[_0xfe7c('0x2a')](db['OpenchannelQueueReport'][_0xfe7c('0x2b')],function(_0x1ec14c){return{'name':_0x1ec14c[_0xfe7c('0x2c')],'type':_0x1ec14c[_0xfe7c('0x2d')][_0xfe7c('0x2e')]};});_0x360551[_0xfe7c('0x2f')]=_[_0xfe7c('0x2a')](_0x42ce26,_0xfe7c('0x28'));_0x360551[_0xfe7c('0x30')]=_[_0xfe7c('0x31')](_0x2c3d76[_0xfe7c('0x30')]);_0x360551[_0xfe7c('0x32')]=_[_0xfe7c('0x33')](_0x360551[_0xfe7c('0x2f')],_0x360551[_0xfe7c('0x30')]);_0x425f61['attributes']=_[_0xfe7c('0x33')](_0x360551[_0xfe7c('0x2f')],qs['fields'](_0x2c3d76[_0xfe7c('0x30')][_0xfe7c('0x34')]));_0x425f61['attributes']=_0x425f61['attributes']['length']?_0x425f61[_0xfe7c('0x35')]:_0x360551[_0xfe7c('0x2f')];if(!_0x2c3d76[_0xfe7c('0x30')][_0xfe7c('0x36')](_0xfe7c('0x37'))){_0x425f61['limit']=qs[_0xfe7c('0x1e')](_0x2c3d76['query'][_0xfe7c('0x1e')]);_0x425f61[_0xfe7c('0x1b')]=qs[_0xfe7c('0x1b')](_0x2c3d76['query']['offset']);}_0x425f61[_0xfe7c('0x38')]=qs[_0xfe7c('0x39')](_0x2c3d76[_0xfe7c('0x30')]['sort']);_0x425f61['where']=qs['filters'](_[_0xfe7c('0x3a')](_0x2c3d76[_0xfe7c('0x30')],_0x360551[_0xfe7c('0x32')]),_0x42ce26);if(_0x2c3d76[_0xfe7c('0x30')]['filter']){_0x425f61['where']=_[_0xfe7c('0x3b')](_0x425f61[_0xfe7c('0x3c')],{'$or':_[_0xfe7c('0x2a')](_0x42ce26,function(_0x3a5d00){if(_0x3a5d00[_0xfe7c('0x2d')]!==_0xfe7c('0x3d')){var _0x135bae={};_0x135bae[_0x3a5d00[_0xfe7c('0x28')]]={'$like':'%'+_0x2c3d76['query'][_0xfe7c('0x3e')]+'%'};return _0x135bae;}})});}_0x425f61=_[_0xfe7c('0x3b')]({},_0x425f61,_0x2c3d76[_0xfe7c('0x3f')]);var _0x5542f6={'where':_0x425f61[_0xfe7c('0x3c')]};return db[_0xfe7c('0x40')][_0xfe7c('0x1d')](_0x5542f6)[_0xfe7c('0x25')](function(_0x1ac681){_0x2c9a3e[_0xfe7c('0x1d')]=_0x1ac681;if(_0x2c3d76['query'][_0xfe7c('0x41')]){_0x425f61[_0xfe7c('0x42')]=[{'all':!![]}];}return db[_0xfe7c('0x40')]['findAll'](_0x425f61);})['then'](function(_0x3b829c){_0x2c9a3e[_0xfe7c('0x43')]=_0x3b829c;return _0x2c9a3e;})['then'](respondWithFilteredResult(_0x2070ee,_0x425f61))[_0xfe7c('0x44')](handleError(_0x2070ee,null));};exports['show']=function(_0x4bda91,_0x3c383f){var _0x521bf7={'raw':!![],'where':{'id':_0x4bda91[_0xfe7c('0x45')]['id']}},_0x5d3a62={};_0x5d3a62[_0xfe7c('0x2f')]=_[_0xfe7c('0x31')](db['OpenchannelQueueReport'][_0xfe7c('0x2b')]);_0x5d3a62['query']=_['keys'](_0x4bda91[_0xfe7c('0x30')]);_0x5d3a62[_0xfe7c('0x32')]=_[_0xfe7c('0x33')](_0x5d3a62[_0xfe7c('0x2f')],_0x5d3a62[_0xfe7c('0x30')]);_0x521bf7['attributes']=_[_0xfe7c('0x33')](_0x5d3a62[_0xfe7c('0x2f')],qs[_0xfe7c('0x34')](_0x4bda91[_0xfe7c('0x30')]['fields']));_0x521bf7[_0xfe7c('0x35')]=_0x521bf7[_0xfe7c('0x35')][_0xfe7c('0x46')]?_0x521bf7[_0xfe7c('0x35')]:_0x5d3a62['model'];if(_0x4bda91[_0xfe7c('0x30')][_0xfe7c('0x41')]){_0x521bf7[_0xfe7c('0x42')]=[{'all':!![]}];}_0x521bf7=_[_0xfe7c('0x3b')]({},_0x521bf7,_0x4bda91['options']);return db[_0xfe7c('0x40')][_0xfe7c('0x47')](_0x521bf7)[_0xfe7c('0x25')](handleEntityNotFound(_0x3c383f,null))[_0xfe7c('0x25')](respondWithResult(_0x3c383f,null))[_0xfe7c('0x44')](handleError(_0x3c383f,null));};exports['create']=function(_0x3d5bb4,_0x191c96){return db[_0xfe7c('0x40')][_0xfe7c('0x48')](_0x3d5bb4[_0xfe7c('0x49')],{})[_0xfe7c('0x25')](respondWithResult(_0x191c96,0xc9))[_0xfe7c('0x44')](handleError(_0x191c96,null));};exports['update']=function(_0x2fc8ff,_0x461d1f){if(_0x2fc8ff[_0xfe7c('0x49')]['id']){delete _0x2fc8ff[_0xfe7c('0x49')]['id'];}return db[_0xfe7c('0x40')][_0xfe7c('0x47')]({'where':{'id':_0x2fc8ff[_0xfe7c('0x45')]['id']}})[_0xfe7c('0x25')](handleEntityNotFound(_0x461d1f,null))['then'](saveUpdates(_0x2fc8ff[_0xfe7c('0x49')],null))[_0xfe7c('0x25')](respondWithResult(_0x461d1f,null))[_0xfe7c('0x44')](handleError(_0x461d1f,null));};exports[_0xfe7c('0x26')]=function(_0x31522c,_0x42b6dc){return db['OpenchannelQueueReport']['find']({'where':{'id':_0x31522c['params']['id']}})[_0xfe7c('0x25')](handleEntityNotFound(_0x42b6dc,null))['then'](removeEntity(_0x42b6dc,null))[_0xfe7c('0x44')](handleError(_0x42b6dc,null));};exports[_0xfe7c('0x4a')]=function(_0x1a92d2,_0x3aec46){return db['OpenchannelQueueReport'][_0xfe7c('0x4a')]()[_0xfe7c('0x25')](respondWithResult(_0x3aec46,null))['catch'](handleError(_0x3aec46,null));};
\ No newline at end of file
+var _0x4682=['to-csv','lodash','squel','crypto','jsforce','desk.js','querystring','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','undefined','limit','count','set','Content-Range','reject','save','then','destroy','stack','name','index','OpenchannelQueueReport','fieldName','type','key','model','map','keys','query','intersection','fields','attributes','length','order','sort','where','filters','pick','VIRTUAL','filter','merge','options','includeAll','include','findAll','rows','catch','params','rawAttributes','find','create','body','update','describe','eml-format','rimraf','fast-json-patch','moment','util','path','sox'];(function(_0xdba10e,_0x5495db){var _0x5a0a5c=function(_0x32392f){while(--_0x32392f){_0xdba10e['push'](_0xdba10e['shift']());}};_0x5a0a5c(++_0x5495db);}(_0x4682,0x11d));var _0x2468=function(_0x52e0ee,_0x52f7c1){_0x52e0ee=_0x52e0ee-0x0;var _0x32534c=_0x4682[_0x52e0ee];return _0x32534c;};'use strict';var emlformat=require(_0x2468('0x0'));var rimraf=require(_0x2468('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x2468('0x2'));var rp=require('request-promise');var moment=require(_0x2468('0x3'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x2468('0x4'));var path=require(_0x2468('0x5'));var sox=require(_0x2468('0x6'));var csv=require(_0x2468('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x2468('0x8'));var squel=require(_0x2468('0x9'));var crypto=require(_0x2468('0xa'));var jsforce=require(_0x2468('0xb'));var deskjs=require(_0x2468('0xc'));var toCsv=require(_0x2468('0x7'));var querystring=require(_0x2468('0xd'));var Papa=require('papaparse');var Redis=require(_0x2468('0xe'));var authService=require(_0x2468('0xf'));var qs=require(_0x2468('0x10'));var as=require(_0x2468('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x2468('0x12'))('api');var utils=require(_0x2468('0x13'));var config=require(_0x2468('0x14'));var licenseUtil=require(_0x2468('0x15'));var db=require(_0x2468('0x16'))['db'];function respondWithStatusCode(_0x5f3589,_0x103c2e){_0x103c2e=_0x103c2e||0xcc;return function(_0x144920){if(_0x144920){return _0x5f3589[_0x2468('0x17')](_0x103c2e);}return _0x5f3589[_0x2468('0x18')](_0x103c2e)[_0x2468('0x19')]();};}function respondWithResult(_0x1fd3b7,_0x1a606a){_0x1a606a=_0x1a606a||0xc8;return function(_0x5865fc){if(_0x5865fc){return _0x1fd3b7[_0x2468('0x18')](_0x1a606a)[_0x2468('0x1a')](_0x5865fc);}};}function respondWithFilteredResult(_0x5ed0de,_0x3351c1){return function(_0x113fbf){if(_0x113fbf){var _0x122398=typeof _0x3351c1[_0x2468('0x1b')]===_0x2468('0x1c')&&typeof _0x3351c1[_0x2468('0x1d')]===_0x2468('0x1c');var _0x31e6d1=_0x113fbf['count'];var _0x27d00b=_0x122398?0x0:_0x3351c1[_0x2468('0x1b')];var _0x331c16=_0x122398?_0x113fbf[_0x2468('0x1e')]:_0x3351c1[_0x2468('0x1b')]+_0x3351c1['limit'];var _0x407525;if(_0x331c16>=_0x31e6d1){_0x331c16=_0x31e6d1;_0x407525=0xc8;}else{_0x407525=0xce;}_0x5ed0de[_0x2468('0x18')](_0x407525);return _0x5ed0de[_0x2468('0x1f')](_0x2468('0x20'),_0x27d00b+'-'+_0x331c16+'/'+_0x31e6d1)['json'](_0x113fbf);}return null;};}function patchUpdates(_0x2c0932){return function(_0x367a02){try{jsonpatch['apply'](_0x367a02,_0x2c0932,!![]);}catch(_0x20be0b){return BPromise[_0x2468('0x21')](_0x20be0b);}return _0x367a02[_0x2468('0x22')]();};}function saveUpdates(_0x3d5bd2,_0x531634){return function(_0x4b7f94){if(_0x4b7f94){return _0x4b7f94['update'](_0x3d5bd2)[_0x2468('0x23')](function(_0x4d4bf4){return _0x4d4bf4;});}return null;};}function removeEntity(_0x1a0629,_0x2eb1f9){return function(_0x57a377){if(_0x57a377){return _0x57a377[_0x2468('0x24')]()[_0x2468('0x23')](function(){_0x1a0629['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x175827,_0x38d663){return function(_0x1decbe){if(!_0x1decbe){_0x175827[_0x2468('0x17')](0x194);}return _0x1decbe;};}function handleError(_0x283ebd,_0x21abae){_0x21abae=_0x21abae||0x1f4;return function(_0x6d10cc){logger['error'](_0x6d10cc[_0x2468('0x25')]);if(_0x6d10cc[_0x2468('0x26')]){delete _0x6d10cc[_0x2468('0x26')];}_0x283ebd[_0x2468('0x18')](_0x21abae)['send'](_0x6d10cc);};}exports[_0x2468('0x27')]=function(_0x492e78,_0x26e0ea){var _0x45a50c={},_0x5d9e98={},_0x2c0124={'count':0x0,'rows':[]};var _0x3379b9=_['map'](db[_0x2468('0x28')]['rawAttributes'],function(_0x4d5401){return{'name':_0x4d5401[_0x2468('0x29')],'type':_0x4d5401[_0x2468('0x2a')][_0x2468('0x2b')]};});_0x5d9e98[_0x2468('0x2c')]=_[_0x2468('0x2d')](_0x3379b9,_0x2468('0x26'));_0x5d9e98['query']=_[_0x2468('0x2e')](_0x492e78[_0x2468('0x2f')]);_0x5d9e98['filters']=_[_0x2468('0x30')](_0x5d9e98[_0x2468('0x2c')],_0x5d9e98['query']);_0x45a50c['attributes']=_[_0x2468('0x30')](_0x5d9e98[_0x2468('0x2c')],qs['fields'](_0x492e78[_0x2468('0x2f')][_0x2468('0x31')]));_0x45a50c[_0x2468('0x32')]=_0x45a50c[_0x2468('0x32')][_0x2468('0x33')]?_0x45a50c['attributes']:_0x5d9e98[_0x2468('0x2c')];if(!_0x492e78['query']['hasOwnProperty']('nolimit')){_0x45a50c['limit']=qs[_0x2468('0x1d')](_0x492e78[_0x2468('0x2f')][_0x2468('0x1d')]);_0x45a50c[_0x2468('0x1b')]=qs[_0x2468('0x1b')](_0x492e78[_0x2468('0x2f')][_0x2468('0x1b')]);}_0x45a50c[_0x2468('0x34')]=qs[_0x2468('0x35')](_0x492e78[_0x2468('0x2f')][_0x2468('0x35')]);_0x45a50c[_0x2468('0x36')]=qs[_0x2468('0x37')](_[_0x2468('0x38')](_0x492e78[_0x2468('0x2f')],_0x5d9e98[_0x2468('0x37')]),_0x3379b9);if(_0x492e78['query']['filter']){_0x45a50c['where']=_['merge'](_0x45a50c[_0x2468('0x36')],{'$or':_[_0x2468('0x2d')](_0x3379b9,function(_0x3a3384){if(_0x3a3384[_0x2468('0x2a')]!==_0x2468('0x39')){var _0x646168={};_0x646168[_0x3a3384[_0x2468('0x26')]]={'$like':'%'+_0x492e78[_0x2468('0x2f')][_0x2468('0x3a')]+'%'};return _0x646168;}})});}_0x45a50c=_[_0x2468('0x3b')]({},_0x45a50c,_0x492e78[_0x2468('0x3c')]);var _0x354d50={'where':_0x45a50c[_0x2468('0x36')]};return db[_0x2468('0x28')][_0x2468('0x1e')](_0x354d50)[_0x2468('0x23')](function(_0x921a33){_0x2c0124[_0x2468('0x1e')]=_0x921a33;if(_0x492e78[_0x2468('0x2f')][_0x2468('0x3d')]){_0x45a50c[_0x2468('0x3e')]=[{'all':!![]}];}return db[_0x2468('0x28')][_0x2468('0x3f')](_0x45a50c);})[_0x2468('0x23')](function(_0x3ffc21){_0x2c0124[_0x2468('0x40')]=_0x3ffc21;return _0x2c0124;})['then'](respondWithFilteredResult(_0x26e0ea,_0x45a50c))[_0x2468('0x41')](handleError(_0x26e0ea,null));};exports['show']=function(_0x2fbfe1,_0x645c06){var _0x4d9777={'raw':!![],'where':{'id':_0x2fbfe1[_0x2468('0x42')]['id']}},_0x1d939b={};_0x1d939b['model']=_[_0x2468('0x2e')](db[_0x2468('0x28')][_0x2468('0x43')]);_0x1d939b[_0x2468('0x2f')]=_[_0x2468('0x2e')](_0x2fbfe1[_0x2468('0x2f')]);_0x1d939b[_0x2468('0x37')]=_[_0x2468('0x30')](_0x1d939b[_0x2468('0x2c')],_0x1d939b[_0x2468('0x2f')]);_0x4d9777[_0x2468('0x32')]=_['intersection'](_0x1d939b[_0x2468('0x2c')],qs[_0x2468('0x31')](_0x2fbfe1['query'][_0x2468('0x31')]));_0x4d9777['attributes']=_0x4d9777[_0x2468('0x32')][_0x2468('0x33')]?_0x4d9777['attributes']:_0x1d939b[_0x2468('0x2c')];if(_0x2fbfe1['query'][_0x2468('0x3d')]){_0x4d9777['include']=[{'all':!![]}];}_0x4d9777=_['merge']({},_0x4d9777,_0x2fbfe1[_0x2468('0x3c')]);return db[_0x2468('0x28')][_0x2468('0x44')](_0x4d9777)[_0x2468('0x23')](handleEntityNotFound(_0x645c06,null))[_0x2468('0x23')](respondWithResult(_0x645c06,null))['catch'](handleError(_0x645c06,null));};exports[_0x2468('0x45')]=function(_0x55edb2,_0x113591){return db[_0x2468('0x28')]['create'](_0x55edb2[_0x2468('0x46')],{})[_0x2468('0x23')](respondWithResult(_0x113591,0xc9))[_0x2468('0x41')](handleError(_0x113591,null));};exports[_0x2468('0x47')]=function(_0x292e96,_0x5425ca){if(_0x292e96['body']['id']){delete _0x292e96[_0x2468('0x46')]['id'];}return db[_0x2468('0x28')][_0x2468('0x44')]({'where':{'id':_0x292e96[_0x2468('0x42')]['id']}})[_0x2468('0x23')](handleEntityNotFound(_0x5425ca,null))[_0x2468('0x23')](saveUpdates(_0x292e96[_0x2468('0x46')],null))['then'](respondWithResult(_0x5425ca,null))[_0x2468('0x41')](handleError(_0x5425ca,null));};exports['destroy']=function(_0x523bf8,_0x5cc033){return db[_0x2468('0x28')][_0x2468('0x44')]({'where':{'id':_0x523bf8[_0x2468('0x42')]['id']}})['then'](handleEntityNotFound(_0x5cc033,null))[_0x2468('0x23')](removeEntity(_0x5cc033,null))[_0x2468('0x41')](handleError(_0x5cc033,null));};exports[_0x2468('0x48')]=function(_0x57f758,_0x2b3b6a){return db['OpenchannelQueueReport'][_0x2468('0x48')]()['then'](respondWithResult(_0x2b3b6a,null))[_0x2468('0x41')](handleError(_0x2b3b6a,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1261=['../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./openchannelQueueReport.attributes','define','report_openchannel_queue','uniqueid','util'];(function(_0x1321a4,_0x172cd2){var _0x17bd4a=function(_0x549d49){while(--_0x549d49){_0x1321a4['push'](_0x1321a4['shift']());}};_0x17bd4a(++_0x172cd2);}(_0x1261,0x144));var _0x1126=function(_0x16d991,_0x3f07cc){_0x16d991=_0x16d991-0x0;var _0x4f41c3=_0x1261[_0x16d991];return _0x4f41c3;};'use strict';var _=require('lodash');var util=require(_0x1126('0x0'));var logger=require(_0x1126('0x1'))(_0x1126('0x2'));var moment=require(_0x1126('0x3'));var BPromise=require(_0x1126('0x4'));var rp=require(_0x1126('0x5'));var fs=require('fs');var path=require(_0x1126('0x6'));var rimraf=require(_0x1126('0x7'));var config=require(_0x1126('0x8'));var attributes=require(_0x1126('0x9'));module['exports']=function(_0x5c68c8,_0x40ba58){return _0x5c68c8[_0x1126('0xa')]('OpenchannelQueueReport',attributes,{'tableName':_0x1126('0xb'),'paranoid':![],'indexes':[{'name':_0x1126('0xc'),'fields':[_0x1126('0xc')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0xc4aa=['bluebird','../../config/environment','./openchannelQueueReport.attributes','exports','define','OpenchannelQueueReport','report_openchannel_queue','lodash','util','../../config/logger','api','moment'];(function(_0x463dd2,_0x4e817e){var _0x2f099f=function(_0x380bb3){while(--_0x380bb3){_0x463dd2['push'](_0x463dd2['shift']());}};_0x2f099f(++_0x4e817e);}(_0xc4aa,0x1b7));var _0xac4a=function(_0x4d613c,_0x55f220){_0x4d613c=_0x4d613c-0x0;var _0x301fe3=_0xc4aa[_0x4d613c];return _0x301fe3;};'use strict';var _=require(_0xac4a('0x0'));var util=require(_0xac4a('0x1'));var logger=require(_0xac4a('0x2'))(_0xac4a('0x3'));var moment=require(_0xac4a('0x4'));var BPromise=require(_0xac4a('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0xac4a('0x6'));var attributes=require(_0xac4a('0x7'));module[_0xac4a('0x8')]=function(_0x215f39,_0x96be2b){return _0x215f39[_0xac4a('0x9')](_0xac4a('0xa'),attributes,{'tableName':_0xac4a('0xb'),'paranoid':![],'indexes':[{'name':'uniqueid','fields':['uniqueid']}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4213=['request\x20sent','OpenchannelQueueReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','OpenchannelQueueReport,\x20%s,\x20%s','info','result','catch','CreateOpenchannelQueueReport','OpenchannelQueueReport','create','body','options','then','debug','raw','where','attributes','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','../../config/environment','jayson/promise','client','http','request'];(function(_0x105fbf,_0x45d1de){var _0x340e66=function(_0x1257ac){while(--_0x1257ac){_0x105fbf['push'](_0x105fbf['shift']());}};_0x340e66(++_0x45d1de);}(_0x4213,0x77));var _0x3421=function(_0x15c818,_0x22bc5a){_0x15c818=_0x15c818-0x0;var _0x26c610=_0x4213[_0x15c818];return _0x26c610;};'use strict';var _=require(_0x3421('0x0'));var util=require(_0x3421('0x1'));var moment=require(_0x3421('0x2'));var BPromise=require(_0x3421('0x3'));var rs=require(_0x3421('0x4'));var fs=require('fs');var Redis=require(_0x3421('0x5'));var db=require(_0x3421('0x6'))['db'];var utils=require('../../config/utils');var logger=require(_0x3421('0x7'))('rpc');var config=require(_0x3421('0x8'));var jayson=require(_0x3421('0x9'));var client=jayson[_0x3421('0xa')][_0x3421('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x5469d8,_0x50e464,_0x1b152f){return new BPromise(function(_0x130625,_0x1cf6a0){return client[_0x3421('0xc')](_0x5469d8,_0x1b152f)['then'](function(_0x1f20cf){logger['info']('OpenchannelQueueReport,\x20%s,\x20%s',_0x50e464,_0x3421('0xd'));logger['debug'](_0x3421('0xe'),_0x50e464,_0x3421('0xd'),JSON[_0x3421('0xf')](_0x1f20cf));if(_0x1f20cf[_0x3421('0x10')]){if(_0x1f20cf[_0x3421('0x10')][_0x3421('0x11')]===0x1f4){logger[_0x3421('0x10')]('OpenchannelQueueReport,\x20%s,\x20%s',_0x50e464,_0x1f20cf[_0x3421('0x10')][_0x3421('0x12')]);return _0x1cf6a0(_0x1f20cf[_0x3421('0x10')][_0x3421('0x12')]);}logger[_0x3421('0x10')](_0x3421('0x13'),_0x50e464,_0x1f20cf[_0x3421('0x10')]['message']);return _0x130625(_0x1f20cf[_0x3421('0x10')]['message']);}else{logger[_0x3421('0x14')](_0x3421('0x13'),_0x50e464,'request\x20sent');_0x130625(_0x1f20cf[_0x3421('0x15')]['message']);}})[_0x3421('0x16')](function(_0x23694b){logger['error'](_0x3421('0x13'),_0x50e464,_0x23694b);_0x1cf6a0(_0x23694b);});});}exports[_0x3421('0x17')]=function(_0x130d3c){var _0x104cc5=this;return new Promise(function(_0x18acc1,_0x200fdd){return db[_0x3421('0x18')][_0x3421('0x19')](_0x130d3c[_0x3421('0x1a')],{'raw':_0x130d3c[_0x3421('0x1b')]?_0x130d3c[_0x3421('0x1b')]['raw']===undefined?!![]:![]:!![]})[_0x3421('0x1c')](function(_0x4b59a5){logger['info']('CreateOpenchannelQueueReport',_0x130d3c);logger[_0x3421('0x1d')](_0x3421('0x17'),_0x130d3c,JSON[_0x3421('0xf')](_0x4b59a5));_0x18acc1(_0x4b59a5);})[_0x3421('0x16')](function(_0x132e8e){logger[_0x3421('0x10')](_0x3421('0x17'),_0x132e8e[_0x3421('0x12')],_0x130d3c);_0x200fdd(_0x104cc5[_0x3421('0x10')](0x1f4,_0x132e8e[_0x3421('0x12')]));});});};exports['UpdateOpenchannelQueueReport']=function(_0x57a4af){var _0x494423=this;return new Promise(function(_0x3fef90,_0x958899){return db[_0x3421('0x18')]['update'](_0x57a4af['body'],{'raw':_0x57a4af[_0x3421('0x1b')]?_0x57a4af['options'][_0x3421('0x1e')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x57a4af['options']?_0x57a4af[_0x3421('0x1b')][_0x3421('0x1f')]||null:null,'attributes':_0x57a4af[_0x3421('0x1b')]?_0x57a4af[_0x3421('0x1b')][_0x3421('0x20')]||null:null,'limit':_0x57a4af['options']?_0x57a4af[_0x3421('0x1b')]['limit']||null:null})['then'](function(_0x17f501){logger['info']('UpdateOpenchannelQueueReport',_0x57a4af);logger[_0x3421('0x1d')]('UpdateOpenchannelQueueReport',_0x57a4af,JSON[_0x3421('0xf')](_0x17f501));_0x3fef90(_0x17f501);})['catch'](function(_0xc7f9fb){logger[_0x3421('0x10')]('UpdateOpenchannelQueueReport',_0xc7f9fb[_0x3421('0x12')],_0x57a4af);_0x958899(_0x494423[_0x3421('0x10')](0x1f4,_0xc7f9fb[_0x3421('0x12')]));});});};
\ No newline at end of file
+var _0x7894=['request\x20sent','stringify','error','message','CreateOpenchannelQueueReport','OpenchannelQueueReport','body','options','raw','then','catch','update','where','attributes','limit','UpdateOpenchannelQueueReport','lodash','util','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','request','info','OpenchannelQueueReport,\x20%s,\x20%s','debug'];(function(_0x365878,_0x2ea81f){var _0x1af044=function(_0x459e48){while(--_0x459e48){_0x365878['push'](_0x365878['shift']());}};_0x1af044(++_0x2ea81f);}(_0x7894,0x170));var _0x4789=function(_0x2235ea,_0xd646ed){_0x2235ea=_0x2235ea-0x0;var _0x5cf5e1=_0x7894[_0x2235ea];return _0x5cf5e1;};'use strict';var _=require(_0x4789('0x0'));var util=require(_0x4789('0x1'));var moment=require(_0x4789('0x2'));var BPromise=require(_0x4789('0x3'));var rs=require(_0x4789('0x4'));var fs=require('fs');var Redis=require(_0x4789('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0x4789('0x6'));var logger=require(_0x4789('0x7'))('rpc');var config=require(_0x4789('0x8'));var jayson=require(_0x4789('0x9'));var client=jayson[_0x4789('0xa')][_0x4789('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x114a90,_0x298902,_0x13b7f6){return new BPromise(function(_0x5a45ae,_0x49d256){return client[_0x4789('0xc')](_0x114a90,_0x13b7f6)['then'](function(_0x2e8038){logger[_0x4789('0xd')](_0x4789('0xe'),_0x298902,'request\x20sent');logger[_0x4789('0xf')]('OpenchannelQueueReport,\x20%s,\x20%s,\x20%s',_0x298902,_0x4789('0x10'),JSON[_0x4789('0x11')](_0x2e8038));if(_0x2e8038[_0x4789('0x12')]){if(_0x2e8038['error']['code']===0x1f4){logger[_0x4789('0x12')]('OpenchannelQueueReport,\x20%s,\x20%s',_0x298902,_0x2e8038[_0x4789('0x12')]['message']);return _0x49d256(_0x2e8038[_0x4789('0x12')][_0x4789('0x13')]);}logger['error'](_0x4789('0xe'),_0x298902,_0x2e8038['error'][_0x4789('0x13')]);return _0x5a45ae(_0x2e8038[_0x4789('0x12')][_0x4789('0x13')]);}else{logger['info'](_0x4789('0xe'),_0x298902,_0x4789('0x10'));_0x5a45ae(_0x2e8038['result'][_0x4789('0x13')]);}})['catch'](function(_0x118f97){logger[_0x4789('0x12')]('OpenchannelQueueReport,\x20%s,\x20%s',_0x298902,_0x118f97);_0x49d256(_0x118f97);});});}exports[_0x4789('0x14')]=function(_0x5af7b3){var _0x2f1511=this;return new Promise(function(_0x56d799,_0x19dc59){return db[_0x4789('0x15')]['create'](_0x5af7b3[_0x4789('0x16')],{'raw':_0x5af7b3[_0x4789('0x17')]?_0x5af7b3[_0x4789('0x17')][_0x4789('0x18')]===undefined?!![]:![]:!![]})[_0x4789('0x19')](function(_0x3a707d){logger[_0x4789('0xd')](_0x4789('0x14'),_0x5af7b3);logger[_0x4789('0xf')](_0x4789('0x14'),_0x5af7b3,JSON[_0x4789('0x11')](_0x3a707d));_0x56d799(_0x3a707d);})[_0x4789('0x1a')](function(_0x4f7ceb){logger[_0x4789('0x12')](_0x4789('0x14'),_0x4f7ceb['message'],_0x5af7b3);_0x19dc59(_0x2f1511[_0x4789('0x12')](0x1f4,_0x4f7ceb[_0x4789('0x13')]));});});};exports['UpdateOpenchannelQueueReport']=function(_0xff56dd){var _0x1ca6ca=this;return new Promise(function(_0x54d9c1,_0xd8601e){return db['OpenchannelQueueReport'][_0x4789('0x1b')](_0xff56dd[_0x4789('0x16')],{'raw':_0xff56dd[_0x4789('0x17')]?_0xff56dd[_0x4789('0x17')][_0x4789('0x18')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0xff56dd[_0x4789('0x17')]?_0xff56dd[_0x4789('0x17')][_0x4789('0x1c')]||null:null,'attributes':_0xff56dd[_0x4789('0x17')]?_0xff56dd[_0x4789('0x17')][_0x4789('0x1d')]||null:null,'limit':_0xff56dd[_0x4789('0x17')]?_0xff56dd[_0x4789('0x17')][_0x4789('0x1e')]||null:null})[_0x4789('0x19')](function(_0x3095a1){logger[_0x4789('0xd')](_0x4789('0x1f'),_0xff56dd);logger['debug']('UpdateOpenchannelQueueReport',_0xff56dd,JSON[_0x4789('0x11')](_0x3095a1));_0x54d9c1(_0x3095a1);})['catch'](function(_0x490ea3){logger['error'](_0x4789('0x1f'),_0x490ea3[_0x4789('0x13')],_0xff56dd);_0xd8601e(_0x1ca6ca[_0x4789('0x12')](0x1f4,_0x490ea3[_0x4789('0x13')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3ae7=['describe','show','post','create','put','/:id','update','delete','destroy','exports','multer','path','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','/describe'];(function(_0x4a7134,_0x4dac33){var _0x4f7011=function(_0x184386){while(--_0x184386){_0x4a7134['push'](_0x4a7134['shift']());}};_0x4f7011(++_0x4dac33);}(_0x3ae7,0x180));var _0x73ae=function(_0x3ecf7c,_0x5a4516){_0x3ecf7c=_0x3ecf7c-0x0;var _0x381def=_0x3ae7[_0x3ecf7c];return _0x381def;};'use strict';var multer=require(_0x73ae('0x0'));var util=require('util');var path=require(_0x73ae('0x1'));var timeout=require(_0x73ae('0x2'));var express=require(_0x73ae('0x3'));var router=express['Router']();var fs_extra=require(_0x73ae('0x4'));var auth=require(_0x73ae('0x5'));var interaction=require(_0x73ae('0x6'));var config=require(_0x73ae('0x7'));var controller=require('./openchannelTransferReport.controller');router[_0x73ae('0x8')]('/',auth[_0x73ae('0x9')](),controller[_0x73ae('0xa')]);router[_0x73ae('0x8')](_0x73ae('0xb'),auth[_0x73ae('0x9')](),controller[_0x73ae('0xc')]);router[_0x73ae('0x8')]('/:id',auth['isAuthenticated'](),controller[_0x73ae('0xd')]);router[_0x73ae('0xe')]('/',auth[_0x73ae('0x9')](),controller[_0x73ae('0xf')]);router[_0x73ae('0x10')](_0x73ae('0x11'),auth[_0x73ae('0x9')](),controller[_0x73ae('0x12')]);router[_0x73ae('0x13')](_0x73ae('0x11'),auth[_0x73ae('0x9')](),controller[_0x73ae('0x14')]);module[_0x73ae('0x15')]=router;
\ No newline at end of file
+var _0x3360=['update','delete','exports','multer','util','path','express','fs-extra','../../components/auth/service','./openchannelTransferReport.controller','isAuthenticated','index','/describe','/:id','show','create'];(function(_0x10c290,_0x298b09){var _0x53e59f=function(_0x413234){while(--_0x413234){_0x10c290['push'](_0x10c290['shift']());}};_0x53e59f(++_0x298b09);}(_0x3360,0x113));var _0x0336=function(_0x984a53,_0x46ba0b){_0x984a53=_0x984a53-0x0;var _0x3db8c1=_0x3360[_0x984a53];return _0x3db8c1;};'use strict';var multer=require(_0x0336('0x0'));var util=require(_0x0336('0x1'));var path=require(_0x0336('0x2'));var timeout=require('connect-timeout');var express=require(_0x0336('0x3'));var router=express['Router']();var fs_extra=require(_0x0336('0x4'));var auth=require(_0x0336('0x5'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0x0336('0x6'));router['get']('/',auth[_0x0336('0x7')](),controller[_0x0336('0x8')]);router['get'](_0x0336('0x9'),auth[_0x0336('0x7')](),controller['describe']);router['get'](_0x0336('0xa'),auth[_0x0336('0x7')](),controller[_0x0336('0xb')]);router['post']('/',auth[_0x0336('0x7')](),controller[_0x0336('0xc')]);router['put'](_0x0336('0xa'),auth['isAuthenticated'](),controller[_0x0336('0xd')]);router[_0x0336('0xe')](_0x0336('0xa'),auth['isAuthenticated'](),controller['destroy']);module[_0x0336('0xf')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4b84=['moment','sequelize','ENUM','queue','DATE'];(function(_0xbab33a,_0x1d65cd){var _0x142d57=function(_0x4f6b29){while(--_0x4f6b29){_0xbab33a['push'](_0xbab33a['shift']());}};_0x142d57(++_0x1d65cd);}(_0x4b84,0x1cc));var _0x44b8=function(_0x32c012,_0xe3c576){_0x32c012=_0x32c012-0x0;var _0x48562e=_0x4b84[_0x32c012];return _0x48562e;};'use strict';var moment=require(_0x44b8('0x0'));var Sequelize=require(_0x44b8('0x1'));module['exports']={'uniqueid':{'type':Sequelize['STRING'],'allowNull':![]},'type':{'type':Sequelize[_0x44b8('0x2')]('account','agent',_0x44b8('0x3')),'allowNull':![],'defaultValue':_0x44b8('0x3')},'transferredAt':{'type':Sequelize[_0x44b8('0x4')],'allowNull':![],'defaultValue':Sequelize['NOW']}};
\ No newline at end of file
+var _0x00bb=['moment','sequelize','exports','ENUM','agent','queue','DATE','NOW'];(function(_0x425c44,_0x5df4c3){var _0x35cfe6=function(_0x31e0bf){while(--_0x31e0bf){_0x425c44['push'](_0x425c44['shift']());}};_0x35cfe6(++_0x5df4c3);}(_0x00bb,0x1d8));var _0xb00b=function(_0x23e7c1,_0x35110c){_0x23e7c1=_0x23e7c1-0x0;var _0x1add43=_0x00bb[_0x23e7c1];return _0x1add43;};'use strict';var moment=require(_0xb00b('0x0'));var Sequelize=require(_0xb00b('0x1'));module[_0xb00b('0x2')]={'uniqueid':{'type':Sequelize['STRING'],'allowNull':![]},'type':{'type':Sequelize[_0xb00b('0x3')]('account',_0xb00b('0x4'),_0xb00b('0x5')),'allowNull':![],'defaultValue':'queue'},'transferredAt':{'type':Sequelize[_0xb00b('0x6')],'allowNull':![],'defaultValue':Sequelize[_0xb00b('0x7')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe191=['length','options','create','body','update','find','describe','rimraf','zip-dir','fast-json-patch','request-promise','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','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','json','undefined','count','offset','limit','Content-Range','apply','reject','save','then','destroy','name','send','index','map','OpenchannelTransferReport','rawAttributes','fieldName','type','key','model','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','sort','where','pick','filter','VIRTUAL','merge','includeAll','include','rows','catch','show','params','keys'];(function(_0x318c16,_0x18f27b){var _0x3a72d7=function(_0x322a63){while(--_0x322a63){_0x318c16['push'](_0x318c16['shift']());}};_0x3a72d7(++_0x18f27b);}(_0xe191,0xa3));var _0x1e19=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xe191[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x1e19('0x0'));var zipdir=require(_0x1e19('0x1'));var jsonpatch=require(_0x1e19('0x2'));var rp=require(_0x1e19('0x3'));var moment=require('moment');var BPromise=require(_0x1e19('0x4'));var Mustache=require(_0x1e19('0x5'));var util=require(_0x1e19('0x6'));var path=require(_0x1e19('0x7'));var sox=require(_0x1e19('0x8'));var csv=require(_0x1e19('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x1e19('0xa'));var _=require(_0x1e19('0xb'));var squel=require(_0x1e19('0xc'));var crypto=require(_0x1e19('0xd'));var jsforce=require(_0x1e19('0xe'));var deskjs=require(_0x1e19('0xf'));var toCsv=require(_0x1e19('0x9'));var querystring=require(_0x1e19('0x10'));var Papa=require(_0x1e19('0x11'));var Redis=require(_0x1e19('0x12'));var authService=require(_0x1e19('0x13'));var qs=require(_0x1e19('0x14'));var as=require(_0x1e19('0x15'));var hardwareService=require(_0x1e19('0x16'));var logger=require('../../config/logger')(_0x1e19('0x17'));var utils=require(_0x1e19('0x18'));var config=require('../../config/environment');var licenseUtil=require(_0x1e19('0x19'));var db=require(_0x1e19('0x1a'))['db'];function respondWithStatusCode(_0x2a0b81,_0x424949){_0x424949=_0x424949||0xcc;return function(_0x19256e){if(_0x19256e){return _0x2a0b81[_0x1e19('0x1b')](_0x424949);}return _0x2a0b81[_0x1e19('0x1c')](_0x424949)[_0x1e19('0x1d')]();};}function respondWithResult(_0x114000,_0x3016f6){_0x3016f6=_0x3016f6||0xc8;return function(_0x254081){if(_0x254081){return _0x114000[_0x1e19('0x1c')](_0x3016f6)[_0x1e19('0x1e')](_0x254081);}};}function respondWithFilteredResult(_0x591bc5,_0x358d48){return function(_0x3f108c){if(_0x3f108c){var _0x5f0f92=typeof _0x358d48['offset']===_0x1e19('0x1f')&&typeof _0x358d48['limit']==='undefined';var _0x3350ee=_0x3f108c[_0x1e19('0x20')];var _0x2a0e2e=_0x5f0f92?0x0:_0x358d48[_0x1e19('0x21')];var _0x9ac4e5=_0x5f0f92?_0x3f108c[_0x1e19('0x20')]:_0x358d48['offset']+_0x358d48[_0x1e19('0x22')];var _0x2356e5;if(_0x9ac4e5>=_0x3350ee){_0x9ac4e5=_0x3350ee;_0x2356e5=0xc8;}else{_0x2356e5=0xce;}_0x591bc5[_0x1e19('0x1c')](_0x2356e5);return _0x591bc5['set'](_0x1e19('0x23'),_0x2a0e2e+'-'+_0x9ac4e5+'/'+_0x3350ee)['json'](_0x3f108c);}return null;};}function patchUpdates(_0x44a950){return function(_0x363259){try{jsonpatch[_0x1e19('0x24')](_0x363259,_0x44a950,!![]);}catch(_0x414c8a){return BPromise[_0x1e19('0x25')](_0x414c8a);}return _0x363259[_0x1e19('0x26')]();};}function saveUpdates(_0x1683b4,_0x47dd1f){return function(_0x23dcdf){if(_0x23dcdf){return _0x23dcdf['update'](_0x1683b4)[_0x1e19('0x27')](function(_0x1259c5){return _0x1259c5;});}return null;};}function removeEntity(_0x50a6ed,_0x2922ca){return function(_0x4511d0){if(_0x4511d0){return _0x4511d0[_0x1e19('0x28')]()[_0x1e19('0x27')](function(){_0x50a6ed[_0x1e19('0x1c')](0xcc)[_0x1e19('0x1d')]();});}};}function handleEntityNotFound(_0x2b8ab1,_0x2a6aca){return function(_0x1cfbdd){if(!_0x1cfbdd){_0x2b8ab1[_0x1e19('0x1b')](0x194);}return _0x1cfbdd;};}function handleError(_0x178fec,_0x3b0a13){_0x3b0a13=_0x3b0a13||0x1f4;return function(_0x5ce9ce){logger['error'](_0x5ce9ce['stack']);if(_0x5ce9ce[_0x1e19('0x29')]){delete _0x5ce9ce['name'];}_0x178fec[_0x1e19('0x1c')](_0x3b0a13)[_0x1e19('0x2a')](_0x5ce9ce);};}exports[_0x1e19('0x2b')]=function(_0x3577b4,_0x544d3b){var _0x28bed4={},_0x21edbf={},_0x3a9a26={'count':0x0,'rows':[]};var _0x58acac=_[_0x1e19('0x2c')](db[_0x1e19('0x2d')][_0x1e19('0x2e')],function(_0x4a0732){return{'name':_0x4a0732[_0x1e19('0x2f')],'type':_0x4a0732[_0x1e19('0x30')][_0x1e19('0x31')]};});_0x21edbf[_0x1e19('0x32')]=_[_0x1e19('0x2c')](_0x58acac,'name');_0x21edbf[_0x1e19('0x33')]=_['keys'](_0x3577b4[_0x1e19('0x33')]);_0x21edbf[_0x1e19('0x34')]=_[_0x1e19('0x35')](_0x21edbf[_0x1e19('0x32')],_0x21edbf[_0x1e19('0x33')]);_0x28bed4[_0x1e19('0x36')]=_[_0x1e19('0x35')](_0x21edbf[_0x1e19('0x32')],qs['fields'](_0x3577b4[_0x1e19('0x33')][_0x1e19('0x37')]));_0x28bed4[_0x1e19('0x36')]=_0x28bed4[_0x1e19('0x36')]['length']?_0x28bed4[_0x1e19('0x36')]:_0x21edbf[_0x1e19('0x32')];if(!_0x3577b4[_0x1e19('0x33')][_0x1e19('0x38')](_0x1e19('0x39'))){_0x28bed4['limit']=qs['limit'](_0x3577b4['query']['limit']);_0x28bed4[_0x1e19('0x21')]=qs[_0x1e19('0x21')](_0x3577b4['query'][_0x1e19('0x21')]);}_0x28bed4['order']=qs[_0x1e19('0x3a')](_0x3577b4['query'][_0x1e19('0x3a')]);_0x28bed4[_0x1e19('0x3b')]=qs[_0x1e19('0x34')](_[_0x1e19('0x3c')](_0x3577b4[_0x1e19('0x33')],_0x21edbf[_0x1e19('0x34')]),_0x58acac);if(_0x3577b4['query'][_0x1e19('0x3d')]){_0x28bed4[_0x1e19('0x3b')]=_['merge'](_0x28bed4[_0x1e19('0x3b')],{'$or':_[_0x1e19('0x2c')](_0x58acac,function(_0x45d28d){if(_0x45d28d[_0x1e19('0x30')]!==_0x1e19('0x3e')){var _0x1ab578={};_0x1ab578[_0x45d28d[_0x1e19('0x29')]]={'$like':'%'+_0x3577b4[_0x1e19('0x33')][_0x1e19('0x3d')]+'%'};return _0x1ab578;}})});}_0x28bed4=_[_0x1e19('0x3f')]({},_0x28bed4,_0x3577b4['options']);var _0x17e70e={'where':_0x28bed4['where']};return db[_0x1e19('0x2d')]['count'](_0x17e70e)['then'](function(_0x331097){_0x3a9a26[_0x1e19('0x20')]=_0x331097;if(_0x3577b4['query'][_0x1e19('0x40')]){_0x28bed4[_0x1e19('0x41')]=[{'all':!![]}];}return db['OpenchannelTransferReport']['findAll'](_0x28bed4);})['then'](function(_0x4850b7){_0x3a9a26[_0x1e19('0x42')]=_0x4850b7;return _0x3a9a26;})[_0x1e19('0x27')](respondWithFilteredResult(_0x544d3b,_0x28bed4))[_0x1e19('0x43')](handleError(_0x544d3b,null));};exports[_0x1e19('0x44')]=function(_0x19da26,_0x4e69d7){var _0x44a909={'raw':!![],'where':{'id':_0x19da26[_0x1e19('0x45')]['id']}},_0x3b668d={};_0x3b668d['model']=_[_0x1e19('0x46')](db[_0x1e19('0x2d')][_0x1e19('0x2e')]);_0x3b668d['query']=_['keys'](_0x19da26[_0x1e19('0x33')]);_0x3b668d['filters']=_['intersection'](_0x3b668d[_0x1e19('0x32')],_0x3b668d[_0x1e19('0x33')]);_0x44a909[_0x1e19('0x36')]=_['intersection'](_0x3b668d[_0x1e19('0x32')],qs['fields'](_0x19da26[_0x1e19('0x33')]['fields']));_0x44a909['attributes']=_0x44a909[_0x1e19('0x36')][_0x1e19('0x47')]?_0x44a909[_0x1e19('0x36')]:_0x3b668d[_0x1e19('0x32')];if(_0x19da26['query'][_0x1e19('0x40')]){_0x44a909['include']=[{'all':!![]}];}_0x44a909=_[_0x1e19('0x3f')]({},_0x44a909,_0x19da26[_0x1e19('0x48')]);return db['OpenchannelTransferReport']['find'](_0x44a909)[_0x1e19('0x27')](handleEntityNotFound(_0x4e69d7,null))[_0x1e19('0x27')](respondWithResult(_0x4e69d7,null))[_0x1e19('0x43')](handleError(_0x4e69d7,null));};exports[_0x1e19('0x49')]=function(_0xc1b4ab,_0x483be4){return db[_0x1e19('0x2d')]['create'](_0xc1b4ab[_0x1e19('0x4a')],{})['then'](respondWithResult(_0x483be4,0xc9))['catch'](handleError(_0x483be4,null));};exports[_0x1e19('0x4b')]=function(_0x46d08f,_0x7381a5){if(_0x46d08f[_0x1e19('0x4a')]['id']){delete _0x46d08f[_0x1e19('0x4a')]['id'];}return db[_0x1e19('0x2d')][_0x1e19('0x4c')]({'where':{'id':_0x46d08f['params']['id']}})[_0x1e19('0x27')](handleEntityNotFound(_0x7381a5,null))['then'](saveUpdates(_0x46d08f[_0x1e19('0x4a')],null))[_0x1e19('0x27')](respondWithResult(_0x7381a5,null))[_0x1e19('0x43')](handleError(_0x7381a5,null));};exports[_0x1e19('0x28')]=function(_0x4077fa,_0x221290){return db[_0x1e19('0x2d')][_0x1e19('0x4c')]({'where':{'id':_0x4077fa[_0x1e19('0x45')]['id']}})['then'](handleEntityNotFound(_0x221290,null))[_0x1e19('0x27')](removeEntity(_0x221290,null))[_0x1e19('0x43')](handleError(_0x221290,null));};exports[_0x1e19('0x4d')]=function(_0x175bd3,_0x4a7b64){return db[_0x1e19('0x2d')][_0x1e19('0x4d')]()[_0x1e19('0x27')](respondWithResult(_0x4a7b64,null))['catch'](handleError(_0x4a7b64,null));};
\ No newline at end of file
+var _0x78fa=['json','offset','undefined','limit','count','set','Content-Range','save','update','then','stack','name','send','index','map','rawAttributes','type','key','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','filter','where','VIRTUAL','include','OpenchannelTransferReport','findAll','rows','catch','params','keys','merge','options','find','create','body','destroy','describe','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','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end'];(function(_0x167cc1,_0x56ef5a){var _0x10bc4b=function(_0xd6a255){while(--_0xd6a255){_0x167cc1['push'](_0x167cc1['shift']());}};_0x10bc4b(++_0x56ef5a);}(_0x78fa,0x77));var _0xa78f=function(_0x23bd0e,_0x37529f){_0x23bd0e=_0x23bd0e-0x0;var _0x48fa0f=_0x78fa[_0x23bd0e];return _0x48fa0f;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xa78f('0x0'));var zipdir=require(_0xa78f('0x1'));var jsonpatch=require(_0xa78f('0x2'));var rp=require('request-promise');var moment=require(_0xa78f('0x3'));var BPromise=require(_0xa78f('0x4'));var Mustache=require(_0xa78f('0x5'));var util=require('util');var path=require(_0xa78f('0x6'));var sox=require(_0xa78f('0x7'));var csv=require('to-csv');var ejs=require(_0xa78f('0x8'));var fs=require('fs');var fs_extra=require(_0xa78f('0x9'));var _=require('lodash');var squel=require(_0xa78f('0xa'));var crypto=require(_0xa78f('0xb'));var jsforce=require(_0xa78f('0xc'));var deskjs=require(_0xa78f('0xd'));var toCsv=require(_0xa78f('0xe'));var querystring=require(_0xa78f('0xf'));var Papa=require('papaparse');var Redis=require(_0xa78f('0x10'));var authService=require(_0xa78f('0x11'));var qs=require(_0xa78f('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xa78f('0x13'));var logger=require(_0xa78f('0x14'))(_0xa78f('0x15'));var utils=require(_0xa78f('0x16'));var config=require(_0xa78f('0x17'));var licenseUtil=require(_0xa78f('0x18'));var db=require(_0xa78f('0x19'))['db'];function respondWithStatusCode(_0x2d9be7,_0x291995){_0x291995=_0x291995||0xcc;return function(_0x35cbde){if(_0x35cbde){return _0x2d9be7[_0xa78f('0x1a')](_0x291995);}return _0x2d9be7[_0xa78f('0x1b')](_0x291995)[_0xa78f('0x1c')]();};}function respondWithResult(_0x563613,_0x1c9e6a){_0x1c9e6a=_0x1c9e6a||0xc8;return function(_0x47dcb6){if(_0x47dcb6){return _0x563613[_0xa78f('0x1b')](_0x1c9e6a)[_0xa78f('0x1d')](_0x47dcb6);}};}function respondWithFilteredResult(_0x35c133,_0x4b713c){return function(_0x10e094){if(_0x10e094){var _0x5739fe=typeof _0x4b713c[_0xa78f('0x1e')]===_0xa78f('0x1f')&&typeof _0x4b713c[_0xa78f('0x20')]==='undefined';var _0x1e0890=_0x10e094['count'];var _0x2bd9ad=_0x5739fe?0x0:_0x4b713c[_0xa78f('0x1e')];var _0x1f15bd=_0x5739fe?_0x10e094[_0xa78f('0x21')]:_0x4b713c[_0xa78f('0x1e')]+_0x4b713c[_0xa78f('0x20')];var _0x2cb87f;if(_0x1f15bd>=_0x1e0890){_0x1f15bd=_0x1e0890;_0x2cb87f=0xc8;}else{_0x2cb87f=0xce;}_0x35c133[_0xa78f('0x1b')](_0x2cb87f);return _0x35c133[_0xa78f('0x22')](_0xa78f('0x23'),_0x2bd9ad+'-'+_0x1f15bd+'/'+_0x1e0890)['json'](_0x10e094);}return null;};}function patchUpdates(_0x558197){return function(_0x51f3a4){try{jsonpatch['apply'](_0x51f3a4,_0x558197,!![]);}catch(_0x130250){return BPromise['reject'](_0x130250);}return _0x51f3a4[_0xa78f('0x24')]();};}function saveUpdates(_0x3c7b4b,_0x3969f8){return function(_0x52ec6e){if(_0x52ec6e){return _0x52ec6e[_0xa78f('0x25')](_0x3c7b4b)[_0xa78f('0x26')](function(_0x43ad05){return _0x43ad05;});}return null;};}function removeEntity(_0x5be72b,_0x54d582){return function(_0x5ec41e){if(_0x5ec41e){return _0x5ec41e['destroy']()[_0xa78f('0x26')](function(){_0x5be72b[_0xa78f('0x1b')](0xcc)[_0xa78f('0x1c')]();});}};}function handleEntityNotFound(_0x2331ee,_0x31ea12){return function(_0x415796){if(!_0x415796){_0x2331ee[_0xa78f('0x1a')](0x194);}return _0x415796;};}function handleError(_0x4b28f3,_0x327a42){_0x327a42=_0x327a42||0x1f4;return function(_0x23d717){logger['error'](_0x23d717[_0xa78f('0x27')]);if(_0x23d717[_0xa78f('0x28')]){delete _0x23d717[_0xa78f('0x28')];}_0x4b28f3['status'](_0x327a42)[_0xa78f('0x29')](_0x23d717);};}exports[_0xa78f('0x2a')]=function(_0x39b503,_0x2bd33f){var _0x37fcb9={},_0x22fd23={},_0x49a910={'count':0x0,'rows':[]};var _0x11b889=_[_0xa78f('0x2b')](db['OpenchannelTransferReport'][_0xa78f('0x2c')],function(_0x3f76b8){return{'name':_0x3f76b8['fieldName'],'type':_0x3f76b8[_0xa78f('0x2d')][_0xa78f('0x2e')]};});_0x22fd23[_0xa78f('0x2f')]=_[_0xa78f('0x2b')](_0x11b889,_0xa78f('0x28'));_0x22fd23[_0xa78f('0x30')]=_['keys'](_0x39b503['query']);_0x22fd23[_0xa78f('0x31')]=_[_0xa78f('0x32')](_0x22fd23[_0xa78f('0x2f')],_0x22fd23[_0xa78f('0x30')]);_0x37fcb9[_0xa78f('0x33')]=_[_0xa78f('0x32')](_0x22fd23[_0xa78f('0x2f')],qs[_0xa78f('0x34')](_0x39b503[_0xa78f('0x30')]['fields']));_0x37fcb9[_0xa78f('0x33')]=_0x37fcb9[_0xa78f('0x33')][_0xa78f('0x35')]?_0x37fcb9[_0xa78f('0x33')]:_0x22fd23[_0xa78f('0x2f')];if(!_0x39b503[_0xa78f('0x30')][_0xa78f('0x36')](_0xa78f('0x37'))){_0x37fcb9[_0xa78f('0x20')]=qs[_0xa78f('0x20')](_0x39b503[_0xa78f('0x30')][_0xa78f('0x20')]);_0x37fcb9[_0xa78f('0x1e')]=qs[_0xa78f('0x1e')](_0x39b503['query'][_0xa78f('0x1e')]);}_0x37fcb9['order']=qs[_0xa78f('0x38')](_0x39b503['query'][_0xa78f('0x38')]);_0x37fcb9['where']=qs[_0xa78f('0x31')](_['pick'](_0x39b503[_0xa78f('0x30')],_0x22fd23[_0xa78f('0x31')]),_0x11b889);if(_0x39b503['query'][_0xa78f('0x39')]){_0x37fcb9[_0xa78f('0x3a')]=_['merge'](_0x37fcb9['where'],{'$or':_[_0xa78f('0x2b')](_0x11b889,function(_0x37b41d){if(_0x37b41d[_0xa78f('0x2d')]!==_0xa78f('0x3b')){var _0x565739={};_0x565739[_0x37b41d[_0xa78f('0x28')]]={'$like':'%'+_0x39b503[_0xa78f('0x30')][_0xa78f('0x39')]+'%'};return _0x565739;}})});}_0x37fcb9=_['merge']({},_0x37fcb9,_0x39b503['options']);var _0x1bffa9={'where':_0x37fcb9['where']};return db['OpenchannelTransferReport'][_0xa78f('0x21')](_0x1bffa9)[_0xa78f('0x26')](function(_0x1510df){_0x49a910[_0xa78f('0x21')]=_0x1510df;if(_0x39b503[_0xa78f('0x30')]['includeAll']){_0x37fcb9[_0xa78f('0x3c')]=[{'all':!![]}];}return db[_0xa78f('0x3d')][_0xa78f('0x3e')](_0x37fcb9);})[_0xa78f('0x26')](function(_0x4049ae){_0x49a910[_0xa78f('0x3f')]=_0x4049ae;return _0x49a910;})[_0xa78f('0x26')](respondWithFilteredResult(_0x2bd33f,_0x37fcb9))[_0xa78f('0x40')](handleError(_0x2bd33f,null));};exports['show']=function(_0x35d55b,_0x1b9001){var _0x31ce02={'raw':!![],'where':{'id':_0x35d55b[_0xa78f('0x41')]['id']}},_0x1afa0c={};_0x1afa0c[_0xa78f('0x2f')]=_['keys'](db[_0xa78f('0x3d')]['rawAttributes']);_0x1afa0c[_0xa78f('0x30')]=_[_0xa78f('0x42')](_0x35d55b[_0xa78f('0x30')]);_0x1afa0c[_0xa78f('0x31')]=_[_0xa78f('0x32')](_0x1afa0c[_0xa78f('0x2f')],_0x1afa0c[_0xa78f('0x30')]);_0x31ce02[_0xa78f('0x33')]=_['intersection'](_0x1afa0c[_0xa78f('0x2f')],qs['fields'](_0x35d55b['query'][_0xa78f('0x34')]));_0x31ce02[_0xa78f('0x33')]=_0x31ce02[_0xa78f('0x33')]['length']?_0x31ce02[_0xa78f('0x33')]:_0x1afa0c[_0xa78f('0x2f')];if(_0x35d55b[_0xa78f('0x30')]['includeAll']){_0x31ce02[_0xa78f('0x3c')]=[{'all':!![]}];}_0x31ce02=_[_0xa78f('0x43')]({},_0x31ce02,_0x35d55b[_0xa78f('0x44')]);return db[_0xa78f('0x3d')][_0xa78f('0x45')](_0x31ce02)[_0xa78f('0x26')](handleEntityNotFound(_0x1b9001,null))[_0xa78f('0x26')](respondWithResult(_0x1b9001,null))[_0xa78f('0x40')](handleError(_0x1b9001,null));};exports['create']=function(_0x12fc11,_0x221f81){return db[_0xa78f('0x3d')][_0xa78f('0x46')](_0x12fc11[_0xa78f('0x47')],{})['then'](respondWithResult(_0x221f81,0xc9))[_0xa78f('0x40')](handleError(_0x221f81,null));};exports[_0xa78f('0x25')]=function(_0x1079ab,_0x4005fc){if(_0x1079ab[_0xa78f('0x47')]['id']){delete _0x1079ab[_0xa78f('0x47')]['id'];}return db[_0xa78f('0x3d')][_0xa78f('0x45')]({'where':{'id':_0x1079ab[_0xa78f('0x41')]['id']}})[_0xa78f('0x26')](handleEntityNotFound(_0x4005fc,null))[_0xa78f('0x26')](saveUpdates(_0x1079ab['body'],null))[_0xa78f('0x26')](respondWithResult(_0x4005fc,null))['catch'](handleError(_0x4005fc,null));};exports[_0xa78f('0x48')]=function(_0x2091a2,_0xe0c6b3){return db[_0xa78f('0x3d')]['find']({'where':{'id':_0x2091a2['params']['id']}})[_0xa78f('0x26')](handleEntityNotFound(_0xe0c6b3,null))['then'](removeEntity(_0xe0c6b3,null))[_0xa78f('0x40')](handleError(_0xe0c6b3,null));};exports[_0xa78f('0x49')]=function(_0x361005,_0x5d1af3){return db['OpenchannelTransferReport'][_0xa78f('0x49')]()[_0xa78f('0x26')](respondWithResult(_0x5d1af3,null))['catch'](handleError(_0x5d1af3,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe656=['api','moment','request-promise','path','./openchannelTransferReport.attributes','exports','OpenchannelTransferReport','report_openchannel_transfer','lodash','util','../../config/logger'];(function(_0x368122,_0x46061b){var _0x1bb312=function(_0x343a08){while(--_0x343a08){_0x368122['push'](_0x368122['shift']());}};_0x1bb312(++_0x46061b);}(_0xe656,0xc3));var _0x6e65=function(_0x1a84b0,_0x1c5e62){_0x1a84b0=_0x1a84b0-0x0;var _0xa715b2=_0xe656[_0x1a84b0];return _0xa715b2;};'use strict';var _=require(_0x6e65('0x0'));var util=require(_0x6e65('0x1'));var logger=require(_0x6e65('0x2'))(_0x6e65('0x3'));var moment=require(_0x6e65('0x4'));var BPromise=require('bluebird');var rp=require(_0x6e65('0x5'));var fs=require('fs');var path=require(_0x6e65('0x6'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0x6e65('0x7'));module[_0x6e65('0x8')]=function(_0x1009df,_0xd2b723){return _0x1009df['define'](_0x6e65('0x9'),attributes,{'tableName':_0x6e65('0xa'),'paranoid':![],'indexes':[{'name':'uniqueid','fields':['uniqueid']}],'timestamps':!![]});};
\ No newline at end of file
+var _0x730c=['moment','bluebird','path','rimraf','exports','define','OpenchannelTransferReport','report_openchannel_transfer','lodash','util','../../config/logger','api'];(function(_0x471003,_0x4b934f){var _0x516d5d=function(_0x3fbf7b){while(--_0x3fbf7b){_0x471003['push'](_0x471003['shift']());}};_0x516d5d(++_0x4b934f);}(_0x730c,0x194));var _0xc730=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x730c[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0xc730('0x0'));var util=require(_0xc730('0x1'));var logger=require(_0xc730('0x2'))(_0xc730('0x3'));var moment=require(_0xc730('0x4'));var BPromise=require(_0xc730('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xc730('0x6'));var rimraf=require(_0xc730('0x7'));var config=require('../../config/environment');var attributes=require('./openchannelTransferReport.attributes');module[_0xc730('0x8')]=function(_0x1cc977,_0x45db89){return _0x1cc977[_0xc730('0x9')](_0xc730('0xa'),attributes,{'tableName':_0xc730('0xb'),'paranoid':![],'indexes':[{'name':'uniqueid','fields':['uniqueid']}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x236d=['lodash','util','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','jayson/promise','client','http','then','OpenchannelTransferReport,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','info','result','catch'];(function(_0x13ac10,_0x46e79e){var _0x28eda2=function(_0x169ef0){while(--_0x169ef0){_0x13ac10['push'](_0x13ac10['shift']());}};_0x28eda2(++_0x46e79e);}(_0x236d,0x7e));var _0xd236=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x236d[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0xd236('0x0'));var util=require(_0xd236('0x1'));var moment=require('moment');var BPromise=require(_0xd236('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xd236('0x3'));var db=require(_0xd236('0x4'))['db'];var utils=require(_0xd236('0x5'));var logger=require(_0xd236('0x6'))('rpc');var config=require('../../config/environment');var jayson=require(_0xd236('0x7'));var client=jayson[_0xd236('0x8')][_0xd236('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x1aedc6,_0x58c59e,_0x54ac9c){return new BPromise(function(_0x2d9025,_0x18d969){return client['request'](_0x1aedc6,_0x54ac9c)[_0xd236('0xa')](function(_0x110545){logger['info'](_0xd236('0xb'),_0x58c59e,_0xd236('0xc'));logger[_0xd236('0xd')]('OpenchannelTransferReport,\x20%s,\x20%s,\x20%s',_0x58c59e,_0xd236('0xc'),JSON[_0xd236('0xe')](_0x110545));if(_0x110545[_0xd236('0xf')]){if(_0x110545['error'][_0xd236('0x10')]===0x1f4){logger[_0xd236('0xf')](_0xd236('0xb'),_0x58c59e,_0x110545[_0xd236('0xf')][_0xd236('0x11')]);return _0x18d969(_0x110545[_0xd236('0xf')][_0xd236('0x11')]);}logger[_0xd236('0xf')](_0xd236('0xb'),_0x58c59e,_0x110545[_0xd236('0xf')][_0xd236('0x11')]);return _0x2d9025(_0x110545[_0xd236('0xf')][_0xd236('0x11')]);}else{logger[_0xd236('0x12')](_0xd236('0xb'),_0x58c59e,_0xd236('0xc'));_0x2d9025(_0x110545[_0xd236('0x13')][_0xd236('0x11')]);}})[_0xd236('0x14')](function(_0x1956a4){logger['error']('OpenchannelTransferReport,\x20%s,\x20%s',_0x58c59e,_0x1956a4);_0x18d969(_0x1956a4);});});}
\ No newline at end of file
+var _0xc818=['message','result','catch','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','request','then','info','OpenchannelTransferReport,\x20%s,\x20%s','request\x20sent','OpenchannelTransferReport,\x20%s,\x20%s,\x20%s','stringify','error','code'];(function(_0x27e811,_0x1fad22){var _0x1bfe61=function(_0x2d8d02){while(--_0x2d8d02){_0x27e811['push'](_0x27e811['shift']());}};_0x1bfe61(++_0x1fad22);}(_0xc818,0x1e3));var _0x8c81=function(_0x263c58,_0xc2f3cf){_0x263c58=_0x263c58-0x0;var _0x39490c=_0xc818[_0x263c58];return _0x39490c;};'use strict';var _=require(_0x8c81('0x0'));var util=require(_0x8c81('0x1'));var moment=require(_0x8c81('0x2'));var BPromise=require(_0x8c81('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x8c81('0x4'));var db=require(_0x8c81('0x5'))['db'];var utils=require(_0x8c81('0x6'));var logger=require(_0x8c81('0x7'))(_0x8c81('0x8'));var config=require(_0x8c81('0x9'));var jayson=require(_0x8c81('0xa'));var client=jayson['client'][_0x8c81('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x3d663e,_0x32cf31,_0x43d142){return new BPromise(function(_0x501240,_0x1173cf){return client[_0x8c81('0xc')](_0x3d663e,_0x43d142)[_0x8c81('0xd')](function(_0x15ebff){logger[_0x8c81('0xe')](_0x8c81('0xf'),_0x32cf31,_0x8c81('0x10'));logger['debug'](_0x8c81('0x11'),_0x32cf31,_0x8c81('0x10'),JSON[_0x8c81('0x12')](_0x15ebff));if(_0x15ebff[_0x8c81('0x13')]){if(_0x15ebff['error'][_0x8c81('0x14')]===0x1f4){logger[_0x8c81('0x13')](_0x8c81('0xf'),_0x32cf31,_0x15ebff[_0x8c81('0x13')][_0x8c81('0x15')]);return _0x1173cf(_0x15ebff[_0x8c81('0x13')][_0x8c81('0x15')]);}logger[_0x8c81('0x13')](_0x8c81('0xf'),_0x32cf31,_0x15ebff['error']['message']);return _0x501240(_0x15ebff[_0x8c81('0x13')][_0x8c81('0x15')]);}else{logger[_0x8c81('0xe')](_0x8c81('0xf'),_0x32cf31,_0x8c81('0x10'));_0x501240(_0x15ebff[_0x8c81('0x16')]['message']);}})[_0x8c81('0x17')](function(_0x29ccb0){logger[_0x8c81('0x13')](_0x8c81('0xf'),_0x32cf31,_0x29ccb0);_0x1173cf(_0x29ccb0);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x396e=['util','path','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./pause.controller','get','index','/:id','isAuthenticated','show','post','create','put','delete','exports'];(function(_0x5017ba,_0x5e5b58){var _0x42d56e=function(_0x13855d){while(--_0x13855d){_0x5017ba['push'](_0x5017ba['shift']());}};_0x42d56e(++_0x5e5b58);}(_0x396e,0x90));var _0xe396=function(_0x449640,_0x5a38e8){_0x449640=_0x449640-0x0;var _0x4e1fbb=_0x396e[_0x449640];return _0x4e1fbb;};'use strict';var multer=require('multer');var util=require(_0xe396('0x0'));var path=require(_0xe396('0x1'));var timeout=require('connect-timeout');var express=require(_0xe396('0x2'));var router=express[_0xe396('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0xe396('0x4'));var interaction=require(_0xe396('0x5'));var config=require(_0xe396('0x6'));var controller=require(_0xe396('0x7'));router[_0xe396('0x8')]('/',auth['isAuthenticated'](),controller[_0xe396('0x9')]);router[_0xe396('0x8')](_0xe396('0xa'),auth[_0xe396('0xb')](),controller[_0xe396('0xc')]);router[_0xe396('0xd')]('/',auth[_0xe396('0xb')](),controller[_0xe396('0xe')]);router[_0xe396('0xf')]('/:id',auth[_0xe396('0xb')](),controller['update']);router[_0xe396('0x10')](_0xe396('0xa'),auth[_0xe396('0xb')](),controller['destroy']);module[_0xe396('0x11')]=router;
\ No newline at end of file
+var _0xae7b=['isAuthenticated','index','/:id','show','post','put','update','delete','destroy','exports','multer','util','path','Router','fs-extra','../../components/auth/service','../../components/interaction/service','get'];(function(_0x2285f1,_0x2a5e3b){var _0x3d07ae=function(_0x23c435){while(--_0x23c435){_0x2285f1['push'](_0x2285f1['shift']());}};_0x3d07ae(++_0x2a5e3b);}(_0xae7b,0xbe));var _0xbae7=function(_0x5e21c6,_0x4937a5){_0x5e21c6=_0x5e21c6-0x0;var _0x5e1922=_0xae7b[_0x5e21c6];return _0x5e1922;};'use strict';var multer=require(_0xbae7('0x0'));var util=require(_0xbae7('0x1'));var path=require(_0xbae7('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0xbae7('0x3')]();var fs_extra=require(_0xbae7('0x4'));var auth=require(_0xbae7('0x5'));var interaction=require(_0xbae7('0x6'));var config=require('../../config/environment');var controller=require('./pause.controller');router[_0xbae7('0x7')]('/',auth[_0xbae7('0x8')](),controller[_0xbae7('0x9')]);router['get'](_0xbae7('0xa'),auth['isAuthenticated'](),controller[_0xbae7('0xb')]);router[_0xbae7('0xc')]('/',auth[_0xbae7('0x8')](),controller['create']);router[_0xbae7('0xd')]('/:id',auth[_0xbae7('0x8')](),controller[_0xbae7('0xe')]);router[_0xbae7('0xf')](_0xbae7('0xa'),auth['isAuthenticated'](),controller[_0xbae7('0x10')]);module[_0xbae7('0x11')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x73a9=['STRING','name','sequelize','exports'];(function(_0x51effc,_0x39f756){var _0x14d8ad=function(_0x191fc6){while(--_0x191fc6){_0x51effc['push'](_0x51effc['shift']());}};_0x14d8ad(++_0x39f756);}(_0x73a9,0x186));var _0x973a=function(_0x2e66ba,_0x154aad){_0x2e66ba=_0x2e66ba-0x0;var _0x5ae4d7=_0x73a9[_0x2e66ba];return _0x5ae4d7;};'use strict';var Sequelize=require(_0x973a('0x0'));module[_0x973a('0x1')]={'name':{'type':Sequelize[_0x973a('0x2')],'unique':_0x973a('0x3'),'allowNull':![]},'description':{'type':Sequelize[_0x973a('0x2')]}};
\ No newline at end of file
+var _0xc75b=['exports','name','STRING','sequelize'];(function(_0x36c87d,_0x2ab247){var _0x54dc55=function(_0x2b4112){while(--_0x2b4112){_0x36c87d['push'](_0x36c87d['shift']());}};_0x54dc55(++_0x2ab247);}(_0xc75b,0x6b));var _0xbc75=function(_0x5280f4,_0x3c36d0){_0x5280f4=_0x5280f4-0x0;var _0xba93e7=_0xc75b[_0x5280f4];return _0xba93e7;};'use strict';var Sequelize=require(_0xbc75('0x0'));module[_0xbc75('0x1')]={'name':{'type':Sequelize['STRING'],'unique':_0xbc75('0x2'),'allowNull':![]},'description':{'type':Sequelize[_0xbc75('0x3')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x565b=['../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','end','undefined','limit','offset','count','set','Content-Range','apply','reject','save','then','destroy','Pauses','error','name','send','index','map','fieldName','type','key','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','pick','filter','where','merge','VIRTUAL','options','Pause','includeAll','include','findAll','rows','catch','show','params','rawAttributes','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','get','UserProfileSection','userProfileId','autoAssociation','update','eml-format','request-promise','bluebird','util','path','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch'];(function(_0x556bb1,_0x34830d){var _0x45455f=function(_0x13c6ba){while(--_0x13c6ba){_0x556bb1['push'](_0x556bb1['shift']());}};_0x45455f(++_0x34830d);}(_0x565b,0x96));var _0xb565=function(_0x485c9f,_0x399a20){_0x485c9f=_0x485c9f-0x0;var _0x2ba76e=_0x565b[_0x485c9f];return _0x2ba76e;};'use strict';var emlformat=require(_0xb565('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0xb565('0x1'));var moment=require('moment');var BPromise=require(_0xb565('0x2'));var Mustache=require('mustache');var util=require(_0xb565('0x3'));var path=require(_0xb565('0x4'));var sox=require('sox');var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xb565('0x5'));var _=require(_0xb565('0x6'));var squel=require(_0xb565('0x7'));var crypto=require(_0xb565('0x8'));var jsforce=require(_0xb565('0x9'));var deskjs=require(_0xb565('0xa'));var toCsv=require(_0xb565('0xb'));var querystring=require(_0xb565('0xc'));var Papa=require(_0xb565('0xd'));var Redis=require(_0xb565('0xe'));var authService=require(_0xb565('0xf'));var qs=require(_0xb565('0x10'));var as=require(_0xb565('0x11'));var hardwareService=require(_0xb565('0x12'));var logger=require(_0xb565('0x13'))(_0xb565('0x14'));var utils=require(_0xb565('0x15'));var config=require(_0xb565('0x16'));var licenseUtil=require(_0xb565('0x17'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x38c1ab,_0x4c3f52){_0x4c3f52=_0x4c3f52||0xcc;return function(_0x1c3a12){if(_0x1c3a12){return _0x38c1ab[_0xb565('0x18')](_0x4c3f52);}return _0x38c1ab[_0xb565('0x19')](_0x4c3f52)[_0xb565('0x1a')]();};}function respondWithResult(_0x48e335,_0x4e99eb){_0x4e99eb=_0x4e99eb||0xc8;return function(_0x3bcaa7){if(_0x3bcaa7){return _0x48e335['status'](_0x4e99eb)['json'](_0x3bcaa7);}};}function respondWithFilteredResult(_0x3b02aa,_0x2ef651){return function(_0x119f0f){if(_0x119f0f){var _0x555b7e=typeof _0x2ef651['offset']===_0xb565('0x1b')&&typeof _0x2ef651[_0xb565('0x1c')]===_0xb565('0x1b');var _0x5cb98a=_0x119f0f['count'];var _0xfcb4eb=_0x555b7e?0x0:_0x2ef651[_0xb565('0x1d')];var _0x404a13=_0x555b7e?_0x119f0f[_0xb565('0x1e')]:_0x2ef651['offset']+_0x2ef651[_0xb565('0x1c')];var _0x2d64a9;if(_0x404a13>=_0x5cb98a){_0x404a13=_0x5cb98a;_0x2d64a9=0xc8;}else{_0x2d64a9=0xce;}_0x3b02aa[_0xb565('0x19')](_0x2d64a9);return _0x3b02aa[_0xb565('0x1f')](_0xb565('0x20'),_0xfcb4eb+'-'+_0x404a13+'/'+_0x5cb98a)['json'](_0x119f0f);}return null;};}function patchUpdates(_0x45bdd5){return function(_0x12dbb7){try{jsonpatch[_0xb565('0x21')](_0x12dbb7,_0x45bdd5,!![]);}catch(_0xe1fbf1){return BPromise[_0xb565('0x22')](_0xe1fbf1);}return _0x12dbb7[_0xb565('0x23')]();};}function saveUpdates(_0x1884c2,_0x434b99){return function(_0x4f8945){if(_0x4f8945){return _0x4f8945['update'](_0x1884c2)[_0xb565('0x24')](function(_0x44396d){return _0x44396d;});}return null;};}function removeEntity(_0xa7445b,_0x5c3e83){return function(_0x1c046c){if(_0x1c046c){return _0x1c046c[_0xb565('0x25')]()[_0xb565('0x24')](function(){var _0xb85e55=_0x1c046c['get']({'plain':!![]});var _0x55be9e=_0xb565('0x26');return db['UserProfileResource'][_0xb565('0x25')]({'where':{'type':_0x55be9e,'resourceId':_0xb85e55['id']}})[_0xb565('0x24')](function(){return _0x1c046c;});})['then'](function(){_0xa7445b['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x28a4c5,_0x1b0c42){return function(_0x5a99b3){if(!_0x5a99b3){_0x28a4c5[_0xb565('0x18')](0x194);}return _0x5a99b3;};}function handleError(_0x35ee6a,_0xcbf1dc){_0xcbf1dc=_0xcbf1dc||0x1f4;return function(_0x5afdc0){logger[_0xb565('0x27')](_0x5afdc0['stack']);if(_0x5afdc0[_0xb565('0x28')]){delete _0x5afdc0[_0xb565('0x28')];}_0x35ee6a[_0xb565('0x19')](_0xcbf1dc)[_0xb565('0x29')](_0x5afdc0);};}exports[_0xb565('0x2a')]=function(_0x44c908,_0x1a5542){var _0x129815={},_0x5b4d8c={},_0x3533d9={'count':0x0,'rows':[]};var _0x62cb6e=_[_0xb565('0x2b')](db['Pause']['rawAttributes'],function(_0x376934){return{'name':_0x376934[_0xb565('0x2c')],'type':_0x376934[_0xb565('0x2d')][_0xb565('0x2e')]};});_0x5b4d8c[_0xb565('0x2f')]=_[_0xb565('0x2b')](_0x62cb6e,'name');_0x5b4d8c[_0xb565('0x30')]=_[_0xb565('0x31')](_0x44c908[_0xb565('0x30')]);_0x5b4d8c[_0xb565('0x32')]=_[_0xb565('0x33')](_0x5b4d8c['model'],_0x5b4d8c[_0xb565('0x30')]);_0x129815['attributes']=_[_0xb565('0x33')](_0x5b4d8c[_0xb565('0x2f')],qs[_0xb565('0x34')](_0x44c908[_0xb565('0x30')][_0xb565('0x34')]));_0x129815[_0xb565('0x35')]=_0x129815[_0xb565('0x35')][_0xb565('0x36')]?_0x129815[_0xb565('0x35')]:_0x5b4d8c[_0xb565('0x2f')];if(!_0x44c908[_0xb565('0x30')][_0xb565('0x37')](_0xb565('0x38'))){_0x129815[_0xb565('0x1c')]=qs[_0xb565('0x1c')](_0x44c908[_0xb565('0x30')][_0xb565('0x1c')]);_0x129815[_0xb565('0x1d')]=qs['offset'](_0x44c908['query']['offset']);}_0x129815[_0xb565('0x39')]=qs['sort'](_0x44c908['query'][_0xb565('0x3a')]);_0x129815['where']=qs[_0xb565('0x32')](_[_0xb565('0x3b')](_0x44c908['query'],_0x5b4d8c['filters']),_0x62cb6e);if(_0x44c908['query'][_0xb565('0x3c')]){_0x129815[_0xb565('0x3d')]=_[_0xb565('0x3e')](_0x129815['where'],{'$or':_[_0xb565('0x2b')](_0x62cb6e,function(_0x40fb16){if(_0x40fb16['type']!==_0xb565('0x3f')){var _0x14515d={};_0x14515d[_0x40fb16[_0xb565('0x28')]]={'$like':'%'+_0x44c908[_0xb565('0x30')][_0xb565('0x3c')]+'%'};return _0x14515d;}})});}_0x129815=_[_0xb565('0x3e')]({},_0x129815,_0x44c908[_0xb565('0x40')]);var _0x12e796={'where':_0x129815[_0xb565('0x3d')]};return db[_0xb565('0x41')][_0xb565('0x1e')](_0x12e796)[_0xb565('0x24')](function(_0x21dd45){_0x3533d9[_0xb565('0x1e')]=_0x21dd45;if(_0x44c908[_0xb565('0x30')][_0xb565('0x42')]){_0x129815[_0xb565('0x43')]=[{'all':!![]}];}return db[_0xb565('0x41')][_0xb565('0x44')](_0x129815);})['then'](function(_0x1cc4d1){_0x3533d9[_0xb565('0x45')]=_0x1cc4d1;return _0x3533d9;})[_0xb565('0x24')](respondWithFilteredResult(_0x1a5542,_0x129815))[_0xb565('0x46')](handleError(_0x1a5542,null));};exports[_0xb565('0x47')]=function(_0x173dc1,_0x408f12){var _0x8acf45={'raw':!![],'where':{'id':_0x173dc1[_0xb565('0x48')]['id']}},_0x523f39={};_0x523f39[_0xb565('0x2f')]=_[_0xb565('0x31')](db['Pause'][_0xb565('0x49')]);_0x523f39['query']=_[_0xb565('0x31')](_0x173dc1['query']);_0x523f39[_0xb565('0x32')]=_[_0xb565('0x33')](_0x523f39['model'],_0x523f39[_0xb565('0x30')]);_0x8acf45[_0xb565('0x35')]=_[_0xb565('0x33')](_0x523f39[_0xb565('0x2f')],qs[_0xb565('0x34')](_0x173dc1[_0xb565('0x30')][_0xb565('0x34')]));_0x8acf45[_0xb565('0x35')]=_0x8acf45[_0xb565('0x35')][_0xb565('0x36')]?_0x8acf45[_0xb565('0x35')]:_0x523f39[_0xb565('0x2f')];if(_0x173dc1[_0xb565('0x30')]['includeAll']){_0x8acf45['include']=[{'all':!![]}];}_0x8acf45=_[_0xb565('0x3e')]({},_0x8acf45,_0x173dc1[_0xb565('0x40')]);return db[_0xb565('0x41')][_0xb565('0x4a')](_0x8acf45)['then'](handleEntityNotFound(_0x408f12,null))[_0xb565('0x24')](respondWithResult(_0x408f12,null))[_0xb565('0x46')](handleError(_0x408f12,null));};exports['create']=function(_0x54abfa,_0x45bc76){return db['Pause'][_0xb565('0x4b')](_0x54abfa[_0xb565('0x4c')],{})['then'](function(_0x3af142){var _0x4db92d=_0x54abfa[_0xb565('0x4d')]['get']({'plain':!![]});if(!_0x4db92d)throw new Error(_0xb565('0x4e'));if(_0x4db92d['role']===_0xb565('0x4d')){var _0x36c7f5=_0x3af142[_0xb565('0x4f')]({'plain':!![]});var _0x41f73d=_0xb565('0x26');return db[_0xb565('0x50')]['find']({'where':{'name':_0x41f73d,'userProfileId':_0x4db92d[_0xb565('0x51')]},'raw':!![]})[_0xb565('0x24')](function(_0x1fafce){if(_0x1fafce&&_0x1fafce[_0xb565('0x52')]===0x0){return db['UserProfileResource']['create']({'name':_0x36c7f5[_0xb565('0x28')],'resourceId':_0x36c7f5['id'],'type':_0x1fafce[_0xb565('0x28')],'sectionId':_0x1fafce['id']},{})[_0xb565('0x24')](function(){return _0x3af142;});}else{return _0x3af142;}})[_0xb565('0x46')](function(_0x5b6fb7){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x5b6fb7);throw _0x5b6fb7;});}return _0x3af142;})[_0xb565('0x24')](respondWithResult(_0x45bc76,0xc9))[_0xb565('0x46')](handleError(_0x45bc76,null));};exports[_0xb565('0x53')]=function(_0x1bbc16,_0x21bf70){if(_0x1bbc16[_0xb565('0x4c')]['id']){delete _0x1bbc16[_0xb565('0x4c')]['id'];}return db['Pause'][_0xb565('0x4a')]({'where':{'id':_0x1bbc16['params']['id']}})[_0xb565('0x24')](handleEntityNotFound(_0x21bf70,null))[_0xb565('0x24')](saveUpdates(_0x1bbc16['body'],null))[_0xb565('0x24')](respondWithResult(_0x21bf70,null))['catch'](handleError(_0x21bf70,null));};exports[_0xb565('0x25')]=function(_0x93e3ef,_0x286984){return db['Pause'][_0xb565('0x4a')]({'where':{'id':_0x93e3ef['params']['id']}})[_0xb565('0x24')](handleEntityNotFound(_0x286984,null))[_0xb565('0x24')](removeEntity(_0x286984,null))['catch'](handleError(_0x286984,null));};
\ No newline at end of file
+var _0xbac4=['Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','limit','set','Content-Range','apply','reject','save','update','then','destroy','get','Pauses','stack','name','send','index','map','Pause','key','model','query','keys','intersection','fields','attributes','hasOwnProperty','nolimit','order','sort','pick','filters','where','merge','type','filter','options','count','include','findAll','rows','catch','params','rawAttributes','length','includeAll','find','create','body','user'];(function(_0x5b5659,_0x232015){var _0x5727e9=function(_0x20b63d){while(--_0x20b63d){_0x5b5659['push'](_0x5b5659['shift']());}};_0x5727e9(++_0x232015);}(_0xbac4,0x1aa));var _0x4bac=function(_0x3c089f,_0x396298){_0x3c089f=_0x3c089f-0x0;var _0x3aa0f2=_0xbac4[_0x3c089f];return _0x3aa0f2;};'use strict';var emlformat=require(_0x4bac('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x4bac('0x1'));var jsonpatch=require(_0x4bac('0x2'));var rp=require(_0x4bac('0x3'));var moment=require(_0x4bac('0x4'));var BPromise=require(_0x4bac('0x5'));var Mustache=require(_0x4bac('0x6'));var util=require(_0x4bac('0x7'));var path=require(_0x4bac('0x8'));var sox=require('sox');var csv=require(_0x4bac('0x9'));var ejs=require(_0x4bac('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x4bac('0xb'));var squel=require(_0x4bac('0xc'));var crypto=require(_0x4bac('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x4bac('0xe'));var toCsv=require('to-csv');var querystring=require(_0x4bac('0xf'));var Papa=require(_0x4bac('0x10'));var Redis=require(_0x4bac('0x11'));var authService=require(_0x4bac('0x12'));var qs=require(_0x4bac('0x13'));var as=require(_0x4bac('0x14'));var hardwareService=require(_0x4bac('0x15'));var logger=require('../../config/logger')('api');var utils=require(_0x4bac('0x16'));var config=require(_0x4bac('0x17'));var licenseUtil=require(_0x4bac('0x18'));var db=require(_0x4bac('0x19'))['db'];function respondWithStatusCode(_0x38162f,_0x29cccb){_0x29cccb=_0x29cccb||0xcc;return function(_0x18c04a){if(_0x18c04a){return _0x38162f[_0x4bac('0x1a')](_0x29cccb);}return _0x38162f[_0x4bac('0x1b')](_0x29cccb)['end']();};}function respondWithResult(_0x3ed4cf,_0x38ae46){_0x38ae46=_0x38ae46||0xc8;return function(_0x5aa905){if(_0x5aa905){return _0x3ed4cf[_0x4bac('0x1b')](_0x38ae46)[_0x4bac('0x1c')](_0x5aa905);}};}function respondWithFilteredResult(_0x42dd33,_0x2b9077){return function(_0x2511f8){if(_0x2511f8){var _0x33be6d=typeof _0x2b9077['offset']==='undefined'&&typeof _0x2b9077['limit']==='undefined';var _0x252c10=_0x2511f8['count'];var _0x5ef7dd=_0x33be6d?0x0:_0x2b9077[_0x4bac('0x1d')];var _0x1b1ff8=_0x33be6d?_0x2511f8['count']:_0x2b9077[_0x4bac('0x1d')]+_0x2b9077[_0x4bac('0x1e')];var _0x1546eb;if(_0x1b1ff8>=_0x252c10){_0x1b1ff8=_0x252c10;_0x1546eb=0xc8;}else{_0x1546eb=0xce;}_0x42dd33['status'](_0x1546eb);return _0x42dd33[_0x4bac('0x1f')](_0x4bac('0x20'),_0x5ef7dd+'-'+_0x1b1ff8+'/'+_0x252c10)[_0x4bac('0x1c')](_0x2511f8);}return null;};}function patchUpdates(_0x4e0cfb){return function(_0x512982){try{jsonpatch[_0x4bac('0x21')](_0x512982,_0x4e0cfb,!![]);}catch(_0x205d35){return BPromise[_0x4bac('0x22')](_0x205d35);}return _0x512982[_0x4bac('0x23')]();};}function saveUpdates(_0x100d1b,_0x4ab8c7){return function(_0x37377c){if(_0x37377c){return _0x37377c[_0x4bac('0x24')](_0x100d1b)[_0x4bac('0x25')](function(_0xf77cdf){return _0xf77cdf;});}return null;};}function removeEntity(_0x5aba8b,_0x3372ef){return function(_0x2f2af8){if(_0x2f2af8){return _0x2f2af8[_0x4bac('0x26')]()['then'](function(){var _0x45be99=_0x2f2af8[_0x4bac('0x27')]({'plain':!![]});var _0x3efa25=_0x4bac('0x28');return db['UserProfileResource'][_0x4bac('0x26')]({'where':{'type':_0x3efa25,'resourceId':_0x45be99['id']}})[_0x4bac('0x25')](function(){return _0x2f2af8;});})[_0x4bac('0x25')](function(){_0x5aba8b['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x30ac9b,_0x231c80){return function(_0x25d1b8){if(!_0x25d1b8){_0x30ac9b['sendStatus'](0x194);}return _0x25d1b8;};}function handleError(_0xe34a81,_0x322f5e){_0x322f5e=_0x322f5e||0x1f4;return function(_0x37ca84){logger['error'](_0x37ca84[_0x4bac('0x29')]);if(_0x37ca84[_0x4bac('0x2a')]){delete _0x37ca84[_0x4bac('0x2a')];}_0xe34a81[_0x4bac('0x1b')](_0x322f5e)[_0x4bac('0x2b')](_0x37ca84);};}exports[_0x4bac('0x2c')]=function(_0x58b564,_0x594298){var _0x33d456={},_0x40f2b4={},_0x5694b8={'count':0x0,'rows':[]};var _0x22feb4=_[_0x4bac('0x2d')](db[_0x4bac('0x2e')]['rawAttributes'],function(_0x5c04d9){return{'name':_0x5c04d9['fieldName'],'type':_0x5c04d9['type'][_0x4bac('0x2f')]};});_0x40f2b4[_0x4bac('0x30')]=_[_0x4bac('0x2d')](_0x22feb4,_0x4bac('0x2a'));_0x40f2b4[_0x4bac('0x31')]=_[_0x4bac('0x32')](_0x58b564[_0x4bac('0x31')]);_0x40f2b4['filters']=_[_0x4bac('0x33')](_0x40f2b4[_0x4bac('0x30')],_0x40f2b4[_0x4bac('0x31')]);_0x33d456['attributes']=_[_0x4bac('0x33')](_0x40f2b4['model'],qs[_0x4bac('0x34')](_0x58b564['query']['fields']));_0x33d456['attributes']=_0x33d456[_0x4bac('0x35')]['length']?_0x33d456[_0x4bac('0x35')]:_0x40f2b4[_0x4bac('0x30')];if(!_0x58b564[_0x4bac('0x31')][_0x4bac('0x36')](_0x4bac('0x37'))){_0x33d456[_0x4bac('0x1e')]=qs[_0x4bac('0x1e')](_0x58b564[_0x4bac('0x31')][_0x4bac('0x1e')]);_0x33d456['offset']=qs['offset'](_0x58b564[_0x4bac('0x31')][_0x4bac('0x1d')]);}_0x33d456[_0x4bac('0x38')]=qs[_0x4bac('0x39')](_0x58b564[_0x4bac('0x31')]['sort']);_0x33d456['where']=qs['filters'](_[_0x4bac('0x3a')](_0x58b564['query'],_0x40f2b4[_0x4bac('0x3b')]),_0x22feb4);if(_0x58b564[_0x4bac('0x31')]['filter']){_0x33d456[_0x4bac('0x3c')]=_[_0x4bac('0x3d')](_0x33d456[_0x4bac('0x3c')],{'$or':_[_0x4bac('0x2d')](_0x22feb4,function(_0x12c6c0){if(_0x12c6c0[_0x4bac('0x3e')]!=='VIRTUAL'){var _0x42bbd9={};_0x42bbd9[_0x12c6c0['name']]={'$like':'%'+_0x58b564[_0x4bac('0x31')][_0x4bac('0x3f')]+'%'};return _0x42bbd9;}})});}_0x33d456=_[_0x4bac('0x3d')]({},_0x33d456,_0x58b564[_0x4bac('0x40')]);var _0x2b3c8c={'where':_0x33d456['where']};return db['Pause'][_0x4bac('0x41')](_0x2b3c8c)['then'](function(_0xa8f5c8){_0x5694b8[_0x4bac('0x41')]=_0xa8f5c8;if(_0x58b564[_0x4bac('0x31')]['includeAll']){_0x33d456[_0x4bac('0x42')]=[{'all':!![]}];}return db[_0x4bac('0x2e')][_0x4bac('0x43')](_0x33d456);})[_0x4bac('0x25')](function(_0x4fbd14){_0x5694b8[_0x4bac('0x44')]=_0x4fbd14;return _0x5694b8;})['then'](respondWithFilteredResult(_0x594298,_0x33d456))[_0x4bac('0x45')](handleError(_0x594298,null));};exports['show']=function(_0x2d1271,_0x11f018){var _0x3ffb11={'raw':!![],'where':{'id':_0x2d1271[_0x4bac('0x46')]['id']}},_0x38f46c={};_0x38f46c['model']=_[_0x4bac('0x32')](db[_0x4bac('0x2e')][_0x4bac('0x47')]);_0x38f46c[_0x4bac('0x31')]=_['keys'](_0x2d1271[_0x4bac('0x31')]);_0x38f46c[_0x4bac('0x3b')]=_['intersection'](_0x38f46c['model'],_0x38f46c['query']);_0x3ffb11[_0x4bac('0x35')]=_[_0x4bac('0x33')](_0x38f46c['model'],qs[_0x4bac('0x34')](_0x2d1271[_0x4bac('0x31')][_0x4bac('0x34')]));_0x3ffb11['attributes']=_0x3ffb11[_0x4bac('0x35')][_0x4bac('0x48')]?_0x3ffb11[_0x4bac('0x35')]:_0x38f46c['model'];if(_0x2d1271['query'][_0x4bac('0x49')]){_0x3ffb11[_0x4bac('0x42')]=[{'all':!![]}];}_0x3ffb11=_[_0x4bac('0x3d')]({},_0x3ffb11,_0x2d1271[_0x4bac('0x40')]);return db[_0x4bac('0x2e')][_0x4bac('0x4a')](_0x3ffb11)['then'](handleEntityNotFound(_0x11f018,null))[_0x4bac('0x25')](respondWithResult(_0x11f018,null))[_0x4bac('0x45')](handleError(_0x11f018,null));};exports['create']=function(_0x2e12b5,_0x16ab3f){return db[_0x4bac('0x2e')][_0x4bac('0x4b')](_0x2e12b5[_0x4bac('0x4c')],{})[_0x4bac('0x25')](function(_0x1052c9){var _0x1b628b=_0x2e12b5[_0x4bac('0x4d')][_0x4bac('0x27')]({'plain':!![]});if(!_0x1b628b)throw new Error(_0x4bac('0x4e'));if(_0x1b628b['role']===_0x4bac('0x4d')){var _0x3a6ea9=_0x1052c9[_0x4bac('0x27')]({'plain':!![]});var _0x1895a2='Pauses';return db[_0x4bac('0x4f')][_0x4bac('0x4a')]({'where':{'name':_0x1895a2,'userProfileId':_0x1b628b[_0x4bac('0x50')]},'raw':!![]})['then'](function(_0x93ddba){if(_0x93ddba&&_0x93ddba[_0x4bac('0x51')]===0x0){return db['UserProfileResource'][_0x4bac('0x4b')]({'name':_0x3a6ea9[_0x4bac('0x2a')],'resourceId':_0x3a6ea9['id'],'type':_0x93ddba[_0x4bac('0x2a')],'sectionId':_0x93ddba['id']},{})['then'](function(){return _0x1052c9;});}else{return _0x1052c9;}})[_0x4bac('0x45')](function(_0x3025f9){logger[_0x4bac('0x52')](_0x4bac('0x53'),_0x3025f9);throw _0x3025f9;});}return _0x1052c9;})['then'](respondWithResult(_0x16ab3f,0xc9))[_0x4bac('0x45')](handleError(_0x16ab3f,null));};exports['update']=function(_0x2f6dd6,_0x4c71c4){if(_0x2f6dd6['body']['id']){delete _0x2f6dd6[_0x4bac('0x4c')]['id'];}return db[_0x4bac('0x2e')][_0x4bac('0x4a')]({'where':{'id':_0x2f6dd6[_0x4bac('0x46')]['id']}})[_0x4bac('0x25')](handleEntityNotFound(_0x4c71c4,null))[_0x4bac('0x25')](saveUpdates(_0x2f6dd6['body'],null))['then'](respondWithResult(_0x4c71c4,null))[_0x4bac('0x45')](handleError(_0x4c71c4,null));};exports['destroy']=function(_0x34131f,_0x386d24){return db[_0x4bac('0x2e')][_0x4bac('0x4a')]({'where':{'id':_0x34131f['params']['id']}})[_0x4bac('0x25')](handleEntityNotFound(_0x386d24,null))[_0x4bac('0x25')](removeEntity(_0x386d24,null))[_0x4bac('0x45')](handleError(_0x386d24,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x814b=['define','Pause','lodash','util','../../config/logger','api','moment','bluebird','path','rimraf','../../config/environment','./pause.attributes','exports'];(function(_0x46a0e2,_0x2dc1a5){var _0x3c413b=function(_0x1a84f2){while(--_0x1a84f2){_0x46a0e2['push'](_0x46a0e2['shift']());}};_0x3c413b(++_0x2dc1a5);}(_0x814b,0x1a2));var _0xb814=function(_0x584291,_0x24b5b3){_0x584291=_0x584291-0x0;var _0x4e7d08=_0x814b[_0x584291];return _0x4e7d08;};'use strict';var _=require(_0xb814('0x0'));var util=require(_0xb814('0x1'));var logger=require(_0xb814('0x2'))(_0xb814('0x3'));var moment=require(_0xb814('0x4'));var BPromise=require(_0xb814('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xb814('0x6'));var rimraf=require(_0xb814('0x7'));var config=require(_0xb814('0x8'));var attributes=require(_0xb814('0x9'));module[_0xb814('0xa')]=function(_0x322a70,_0x53e507){return _0x322a70[_0xb814('0xb')](_0xb814('0xc'),attributes,{'tableName':'tools_pauses','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x326f=['tools_pauses','lodash','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./pause.attributes','exports','define','Pause'];(function(_0x1c8ee7,_0x1b6f4e){var _0x980ac0=function(_0xc7f838){while(--_0xc7f838){_0x1c8ee7['push'](_0x1c8ee7['shift']());}};_0x980ac0(++_0x1b6f4e);}(_0x326f,0xd1));var _0xf326=function(_0x4140f9,_0x55e47d){_0x4140f9=_0x4140f9-0x0;var _0x33fc49=_0x326f[_0x4140f9];return _0x33fc49;};'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
// * 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(_0x263cec,_0x53007f){var _0x230a76=function(_0x3205e1){while(--_0x3205e1){_0x263cec['push'](_0x263cec['shift']());}};_0x230a76(++_0x53007f);}(_0x7a54,0x106));var _0x47a5=function(_0x29832e,_0x3d3905){_0x29832e=_0x29832e-0x0;var _0x141b2a=_0x7a54[_0x29832e];return _0x141b2a;};'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(_0xba3b4f,_0x26ca26){var _0x178c2f=function(_0xd6b9e8){while(--_0xd6b9e8){_0xba3b4f['push'](_0xba3b4f['shift']());}};_0x178c2f(++_0x26ca26);}(_0xb10b,0x12a));var _0xbb10=function(_0x13c98c,_0x10f298){_0x13c98c=_0x13c98c-0x0;var _0x474cbb=_0xb10b[_0x13c98c];return _0x474cbb;};'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 _0x524a=['show','/:id/download','diskStorage','join','root','server/files/plugins','originalname','format','basename','now','extname','post','single','file','/webhook','webhookPost','put','/:id','update','delete','exports','multer','util','path','connect-timeout','Router','fs-extra','../../components/auth/service','./plugin.controller','get','isAuthenticated','webhookGet'];(function(_0x5aa0a6,_0x121f94){var _0xaa0850=function(_0x262686){while(--_0x262686){_0x5aa0a6['push'](_0x5aa0a6['shift']());}};_0xaa0850(++_0x121f94);}(_0x524a,0xf5));var _0xa524=function(_0x2c87cf,_0x37601f){_0x2c87cf=_0x2c87cf-0x0;var _0x5a8018=_0x524a[_0x2c87cf];return _0x5a8018;};'use strict';var multer=require(_0xa524('0x0'));var util=require(_0xa524('0x1'));var path=require(_0xa524('0x2'));var timeout=require(_0xa524('0x3'));var express=require('express');var router=express[_0xa524('0x4')]();var fs_extra=require(_0xa524('0x5'));var auth=require(_0xa524('0x6'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0xa524('0x7'));router[_0xa524('0x8')]('/',auth[_0xa524('0x9')](),controller['index']);router[_0xa524('0x8')]('/webhook',controller[_0xa524('0xa')]);router[_0xa524('0x8')]('/:id',auth[_0xa524('0x9')](),controller[_0xa524('0xb')]);router[_0xa524('0x8')](_0xa524('0xc'),auth[_0xa524('0x9')](),controller['download']);var upload=multer({'storage':multer[_0xa524('0xd')]({'destination':function(_0x2ebea2,_0x59660a,_0x565fab){_0x565fab(null,path[_0xa524('0xe')](config[_0xa524('0xf')],_0xa524('0x10')));},'filename':function(_0x4936fa,_0x55117f,_0x14a0d6){_0x55117f['originalname']=_0x55117f[_0xa524('0x11')]['replace'](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-');_0x14a0d6(null,util[_0xa524('0x12')]('%s-%s%s',path[_0xa524('0x13')](_0x55117f[_0xa524('0x11')],path['extname'](_0x55117f[_0xa524('0x11')])),Date[_0xa524('0x14')](),path[_0xa524('0x15')](_0x55117f[_0xa524('0x11')])));}})});router[_0xa524('0x16')]('/',upload[_0xa524('0x17')](_0xa524('0x18')),controller['upload']);router[_0xa524('0x16')](_0xa524('0x19'),controller[_0xa524('0x1a')]);router[_0xa524('0x1b')](_0xa524('0x1c'),auth[_0xa524('0x9')](),controller[_0xa524('0x1d')]);router[_0xa524('0x1e')]('/:id',auth[_0xa524('0x9')](),controller[_0xa524('0x1e')]);module[_0xa524('0x1f')]=router;
\ No newline at end of file
+var _0xb903=['replace','basename','originalname','now','extname','post','single','/webhook','put','update','delete','exports','multer','util','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./plugin.controller','get','index','webhookGet','/:id','isAuthenticated','join','root'];(function(_0x261f64,_0x38ec16){var _0x5434dc=function(_0x579c66){while(--_0x579c66){_0x261f64['push'](_0x261f64['shift']());}};_0x5434dc(++_0x38ec16);}(_0xb903,0x185));var _0x3b90=function(_0x5c5d56,_0xd52cbe){_0x5c5d56=_0x5c5d56-0x0;var _0x33beca=_0xb903[_0x5c5d56];return _0x33beca;};'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']('/webhook',controller[_0x3b90('0xc')]);router[_0x3b90('0xa')](_0x3b90('0xd'),auth[_0x3b90('0xe')](),controller['show']);router['get']('/:id/download',auth['isAuthenticated'](),controller['download']);var upload=multer({'storage':multer['diskStorage']({'destination':function(_0x336913,_0x5af39c,_0x574955){_0x574955(null,path[_0x3b90('0xf')](config[_0x3b90('0x10')],'server/files/plugins'));},'filename':function(_0x45b75f,_0x174c0d,_0x43c08c){_0x174c0d['originalname']=_0x174c0d['originalname'][_0x3b90('0x11')](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-');_0x43c08c(null,util['format']('%s-%s%s',path[_0x3b90('0x12')](_0x174c0d[_0x3b90('0x13')],path['extname'](_0x174c0d['originalname'])),Date[_0x3b90('0x14')](),path[_0x3b90('0x15')](_0x174c0d[_0x3b90('0x13')])));}})});router[_0x3b90('0x16')]('/',upload[_0x3b90('0x17')]('file'),controller['upload']);router[_0x3b90('0x16')](_0x3b90('0x18'),controller['webhookPost']);router[_0x3b90('0x19')](_0x3b90('0xd'),auth[_0x3b90('0xe')](),controller[_0x3b90('0x1a')]);router['delete'](_0x3b90('0xd'),auth['isAuthenticated'](),controller[_0x3b90('0x1b')]);module[_0x3b90('0x1c')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe305=['exports','STRING','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.','sequelize'];(function(_0x5c8ade,_0x457685){var _0x294ebc=function(_0x410582){while(--_0x410582){_0x5c8ade['push'](_0x5c8ade['shift']());}};_0x294ebc(++_0x457685);}(_0xe305,0x15d));var _0x5e30=function(_0x1c962e,_0xcfb220){_0x1c962e=_0x1c962e-0x0;var _0x2ecb50=_0xe305[_0x1c962e];return _0x2ecb50;};'use strict';var Sequelize=require(_0x5e30('0x0'));module[_0x5e30('0x1')]={'name':{'type':Sequelize[_0x5e30('0x2')]},'type':{'type':Sequelize[_0x5e30('0x3')]('html',_0x5e30('0x4'))},'description':{'type':Sequelize[_0x5e30('0x5')]},'version':{'type':Sequelize[_0x5e30('0x5')]},'path':{'type':Sequelize[_0x5e30('0x2')],'comment':_0x5e30('0x6')},'active':{'type':Sequelize[_0x5e30('0x7')],'defaultValue':0x0,'comment':_0x5e30('0x8')},'sidebar':{'type':Sequelize[_0x5e30('0x3')](_0x5e30('0x9'),_0x5e30('0xa'),_0x5e30('0xb'),_0x5e30('0xc')),'defaultValue':'always','comment':_0x5e30('0xd')},'icon':{'type':Sequelize[_0x5e30('0x2')]},'adminUrl':{'type':Sequelize[_0x5e30('0x2')]},'agentUrl':{'type':Sequelize[_0x5e30('0x2')]},'scriptName':{'type':Sequelize[_0x5e30('0x2')]},'scriptPath':{'type':Sequelize[_0x5e30('0x2')]}};
\ No newline at end of file
+var _0x105d=['sequelize','exports','ENUM','html','script','TEXT','The\x20physical\x20path\x20where\x20the\x20plugin\x20is\x20stored.','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.','STRING'];(function(_0x432682,_0x253044){var _0x463d05=function(_0xa73403){while(--_0xa73403){_0x432682['push'](_0x432682['shift']());}};_0x463d05(++_0x253044);}(_0x105d,0x126));var _0xd105=function(_0x22b059,_0x563a7d){_0x22b059=_0x22b059-0x0;var _0x470f15=_0x105d[_0x22b059];return _0x470f15;};'use strict';var Sequelize=require(_0xd105('0x0'));module[_0xd105('0x1')]={'name':{'type':Sequelize['STRING']},'type':{'type':Sequelize[_0xd105('0x2')](_0xd105('0x3'),_0xd105('0x4'))},'description':{'type':Sequelize[_0xd105('0x5')]},'version':{'type':Sequelize[_0xd105('0x5')]},'path':{'type':Sequelize['STRING'],'comment':_0xd105('0x6')},'active':{'type':Sequelize['BOOLEAN'],'defaultValue':0x0,'comment':_0xd105('0x7')},'sidebar':{'type':Sequelize[_0xd105('0x2')](_0xd105('0x8'),_0xd105('0x9'),_0xd105('0xa'),_0xd105('0xb')),'defaultValue':_0xd105('0xa'),'comment':_0xd105('0xc')},'icon':{'type':Sequelize[_0xd105('0xd')]},'adminUrl':{'type':Sequelize[_0xd105('0xd')]},'agentUrl':{'type':Sequelize[_0xd105('0xd')]},'scriptName':{'type':Sequelize['STRING']},'scriptPath':{'type':Sequelize[_0xd105('0xd')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xad17=['Plugins','UserProfileResource','then','end','error','stack','name','send','index','map','Plugin','rawAttributes','type','key','model','query','keys','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','merge','options','includeAll','include','rows','catch','show','params','intersection','find','download','join','root','format','%s.zip','basename','createWriteStream','zip','warning','code','ENOENT','Sequelize','Error\x20while\x20generating\x20the\x20zip\x20archive','Error','pipe','glob','**/*','server/files/plugins','dirname','node_modules/**/*','attachments/**/*','close','existsSync','unlinkSync','info','Temporary\x20file\x20removed','upload','file','filename','extname','Plugin\x20upload\x20filepath:\x20%s','Plugin\x20upload\x20destination:\x20%s','chmodSync','0777','isFile','Invalid\x20plugin\x20structure','isDirectory','manifest.json','readFileSync','parse','Invalid\x20manifest:\x20name\x20missing','Invalid\x20manifest:\x20type\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','Invalid\x20manifest:\x20invalid\x20type','description','sidebar','icon','icon-apps','test','plugins','Warning:\x20agent\x20view\x20not\x20specified','create','role','body','user','UserProfileSection','userProfileId','autoAssociation','Zip\x20archive\x20removed','Extracted\x20folder\x20removed','delete','webhookGet','resolve','\x27PATH\x27\x20parameter\x20not\x20specified','\x27PORT\x27\x20parameter\x20not\x20specified','hostname','port','encoding','%s%s','headers','content-length','content-type','endsWith','statusCode','webhookPost','http://localhost:','method','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','extract-zip','archiver','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','sendStatus','status','undefined','limit','count','offset','set','Content-Range','json','apply','reject','save','destroy','get'];(function(_0x5a7f64,_0x347d57){var _0x3d30f1=function(_0x4bd1d6){while(--_0x4bd1d6){_0x5a7f64['push'](_0x5a7f64['shift']());}};_0x3d30f1(++_0x347d57);}(_0xad17,0x131));var _0x7ad1=function(_0x272638,_0x42b993){_0x272638=_0x272638-0x0;var _0x19d027=_0xad17[_0x272638];return _0x19d027;};'use strict';var emlformat=require(_0x7ad1('0x0'));var rimraf=require(_0x7ad1('0x1'));var zipdir=require(_0x7ad1('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x7ad1('0x3'));var moment=require(_0x7ad1('0x4'));var BPromise=require(_0x7ad1('0x5'));var Mustache=require(_0x7ad1('0x6'));var util=require(_0x7ad1('0x7'));var path=require(_0x7ad1('0x8'));var sox=require(_0x7ad1('0x9'));var csv=require(_0x7ad1('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x7ad1('0xb'));var _=require(_0x7ad1('0xc'));var squel=require(_0x7ad1('0xd'));var crypto=require(_0x7ad1('0xe'));var jsforce=require(_0x7ad1('0xf'));var deskjs=require(_0x7ad1('0x10'));var toCsv=require(_0x7ad1('0xa'));var querystring=require(_0x7ad1('0x11'));var Papa=require(_0x7ad1('0x12'));var extract=require(_0x7ad1('0x13'));var rimraf=require(_0x7ad1('0x1'));var archiver=require(_0x7ad1('0x14'));var Redis=require('ioredis');var authService=require(_0x7ad1('0x15'));var qs=require(_0x7ad1('0x16'));var as=require(_0x7ad1('0x17'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x7ad1('0x18'))(_0x7ad1('0x19'));var utils=require('../../config/utils');var config=require(_0x7ad1('0x1a'));var licenseUtil=require(_0x7ad1('0x1b'));var db=require(_0x7ad1('0x1c'))['db'];config[_0x7ad1('0x1d')]=_[_0x7ad1('0x1e')](config[_0x7ad1('0x1d')],{'host':_0x7ad1('0x1f'),'port':0x18eb});var socket=require(_0x7ad1('0x20'))(new Redis(config['redis']));require('./plugin.socket')['register'](socket);function respondWithStatusCode(_0x4210bb,_0x5486db){_0x5486db=_0x5486db||0xcc;return function(_0x39f329){if(_0x39f329){return _0x4210bb[_0x7ad1('0x21')](_0x5486db);}return _0x4210bb[_0x7ad1('0x22')](_0x5486db)['end']();};}function respondWithResult(_0x1d222b,_0x47253c){_0x47253c=_0x47253c||0xc8;return function(_0x278915){if(_0x278915){return _0x1d222b[_0x7ad1('0x22')](_0x47253c)['json'](_0x278915);}};}function respondWithFilteredResult(_0x2f9539,_0x21ae54){return function(_0x371b74){if(_0x371b74){var _0x2d4b66=typeof _0x21ae54['offset']===_0x7ad1('0x23')&&typeof _0x21ae54[_0x7ad1('0x24')]===_0x7ad1('0x23');var _0x1ca60f=_0x371b74[_0x7ad1('0x25')];var _0x2afe10=_0x2d4b66?0x0:_0x21ae54[_0x7ad1('0x26')];var _0x2ae4bc=_0x2d4b66?_0x371b74['count']:_0x21ae54['offset']+_0x21ae54[_0x7ad1('0x24')];var _0x595208;if(_0x2ae4bc>=_0x1ca60f){_0x2ae4bc=_0x1ca60f;_0x595208=0xc8;}else{_0x595208=0xce;}_0x2f9539[_0x7ad1('0x22')](_0x595208);return _0x2f9539[_0x7ad1('0x27')](_0x7ad1('0x28'),_0x2afe10+'-'+_0x2ae4bc+'/'+_0x1ca60f)[_0x7ad1('0x29')](_0x371b74);}return null;};}function patchUpdates(_0x23d667){return function(_0x135cc3){try{jsonpatch[_0x7ad1('0x2a')](_0x135cc3,_0x23d667,!![]);}catch(_0x3e727b){return BPromise[_0x7ad1('0x2b')](_0x3e727b);}return _0x135cc3[_0x7ad1('0x2c')]();};}function saveUpdates(_0x2dca3d,_0x3e9dfc){return function(_0x55d81b){if(_0x55d81b){return _0x55d81b['update'](_0x2dca3d)['then'](function(_0x1ecc0b){return _0x1ecc0b;});}return null;};}function removeEntity(_0x2ebf60,_0x485d68){return function(_0x2fac46){if(_0x2fac46){return _0x2fac46[_0x7ad1('0x2d')]()['then'](function(){var _0x567b86=_0x2fac46[_0x7ad1('0x2e')]({'plain':!![]});var _0x2ce858=_0x7ad1('0x2f');return db[_0x7ad1('0x30')]['destroy']({'where':{'type':_0x2ce858,'resourceId':_0x567b86['id']}})[_0x7ad1('0x31')](function(){return _0x2fac46;});})[_0x7ad1('0x31')](function(){_0x2ebf60[_0x7ad1('0x22')](0xcc)[_0x7ad1('0x32')]();});}};}function handleEntityNotFound(_0x23d053,_0x32f2f5){return function(_0x3a9b2e){if(!_0x3a9b2e){_0x23d053[_0x7ad1('0x21')](0x194);}return _0x3a9b2e;};}function handleError(_0x2472f5,_0x5ef79b){_0x5ef79b=_0x5ef79b||0x1f4;return function(_0x4373ee){logger[_0x7ad1('0x33')](_0x4373ee[_0x7ad1('0x34')]);if(_0x4373ee[_0x7ad1('0x35')]){delete _0x4373ee['name'];}_0x2472f5[_0x7ad1('0x22')](_0x5ef79b)[_0x7ad1('0x36')](_0x4373ee);};}exports[_0x7ad1('0x37')]=function(_0x33277b,_0x3eb77f){var _0xe8634f={},_0x37f748={},_0x2708a8={'count':0x0,'rows':[]};var _0x4bca72=_[_0x7ad1('0x38')](db[_0x7ad1('0x39')][_0x7ad1('0x3a')],function(_0x5c74dd){return{'name':_0x5c74dd['fieldName'],'type':_0x5c74dd[_0x7ad1('0x3b')][_0x7ad1('0x3c')]};});_0x37f748[_0x7ad1('0x3d')]=_[_0x7ad1('0x38')](_0x4bca72,_0x7ad1('0x35'));_0x37f748[_0x7ad1('0x3e')]=_[_0x7ad1('0x3f')](_0x33277b[_0x7ad1('0x3e')]);_0x37f748['filters']=_['intersection'](_0x37f748[_0x7ad1('0x3d')],_0x37f748['query']);_0xe8634f[_0x7ad1('0x40')]=_['intersection'](_0x37f748[_0x7ad1('0x3d')],qs[_0x7ad1('0x41')](_0x33277b[_0x7ad1('0x3e')][_0x7ad1('0x41')]));_0xe8634f[_0x7ad1('0x40')]=_0xe8634f[_0x7ad1('0x40')][_0x7ad1('0x42')]?_0xe8634f[_0x7ad1('0x40')]:_0x37f748['model'];if(!_0x33277b[_0x7ad1('0x3e')][_0x7ad1('0x43')](_0x7ad1('0x44'))){_0xe8634f[_0x7ad1('0x24')]=qs['limit'](_0x33277b[_0x7ad1('0x3e')][_0x7ad1('0x24')]);_0xe8634f[_0x7ad1('0x26')]=qs[_0x7ad1('0x26')](_0x33277b[_0x7ad1('0x3e')][_0x7ad1('0x26')]);}_0xe8634f[_0x7ad1('0x45')]=qs[_0x7ad1('0x46')](_0x33277b['query']['sort']);_0xe8634f[_0x7ad1('0x47')]=qs[_0x7ad1('0x48')](_[_0x7ad1('0x49')](_0x33277b[_0x7ad1('0x3e')],_0x37f748[_0x7ad1('0x48')]),_0x4bca72);if(_0x33277b['query'][_0x7ad1('0x4a')]){_0xe8634f['where']=_[_0x7ad1('0x4b')](_0xe8634f[_0x7ad1('0x47')],{'$or':_[_0x7ad1('0x38')](_0x4bca72,function(_0x4ab150){if(_0x4ab150[_0x7ad1('0x3b')]!=='VIRTUAL'){var _0x6d8f1b={};_0x6d8f1b[_0x4ab150[_0x7ad1('0x35')]]={'$like':'%'+_0x33277b[_0x7ad1('0x3e')][_0x7ad1('0x4a')]+'%'};return _0x6d8f1b;}})});}_0xe8634f=_[_0x7ad1('0x4b')]({},_0xe8634f,_0x33277b[_0x7ad1('0x4c')]);var _0x5dec30={'where':_0xe8634f[_0x7ad1('0x47')]};return db[_0x7ad1('0x39')][_0x7ad1('0x25')](_0x5dec30)[_0x7ad1('0x31')](function(_0x7509f1){_0x2708a8[_0x7ad1('0x25')]=_0x7509f1;if(_0x33277b[_0x7ad1('0x3e')][_0x7ad1('0x4d')]){_0xe8634f[_0x7ad1('0x4e')]=[{'all':!![]}];}return db[_0x7ad1('0x39')]['findAll'](_0xe8634f);})[_0x7ad1('0x31')](function(_0x246325){_0x2708a8[_0x7ad1('0x4f')]=_0x246325;return _0x2708a8;})[_0x7ad1('0x31')](respondWithFilteredResult(_0x3eb77f,_0xe8634f))[_0x7ad1('0x50')](handleError(_0x3eb77f,null));};exports[_0x7ad1('0x51')]=function(_0x117e62,_0x42bd5d){var _0x4f6abb={'raw':!![],'where':{'id':_0x117e62[_0x7ad1('0x52')]['id']}},_0x394f51={};_0x394f51[_0x7ad1('0x3d')]=_['keys'](db[_0x7ad1('0x39')][_0x7ad1('0x3a')]);_0x394f51['query']=_[_0x7ad1('0x3f')](_0x117e62[_0x7ad1('0x3e')]);_0x394f51[_0x7ad1('0x48')]=_['intersection'](_0x394f51[_0x7ad1('0x3d')],_0x394f51[_0x7ad1('0x3e')]);_0x4f6abb[_0x7ad1('0x40')]=_[_0x7ad1('0x53')](_0x394f51['model'],qs['fields'](_0x117e62[_0x7ad1('0x3e')][_0x7ad1('0x41')]));_0x4f6abb['attributes']=_0x4f6abb[_0x7ad1('0x40')][_0x7ad1('0x42')]?_0x4f6abb[_0x7ad1('0x40')]:_0x394f51[_0x7ad1('0x3d')];if(_0x117e62[_0x7ad1('0x3e')][_0x7ad1('0x4d')]){_0x4f6abb[_0x7ad1('0x4e')]=[{'all':!![]}];}_0x4f6abb=_[_0x7ad1('0x4b')]({},_0x4f6abb,_0x117e62['options']);return db[_0x7ad1('0x39')][_0x7ad1('0x54')](_0x4f6abb)[_0x7ad1('0x31')](handleEntityNotFound(_0x42bd5d,null))[_0x7ad1('0x31')](respondWithResult(_0x42bd5d,null))[_0x7ad1('0x50')](handleError(_0x42bd5d,null));};exports[_0x7ad1('0x55')]=function(_0x6453f6,_0x16e0b2,_0x5da4a9){return db[_0x7ad1('0x39')][_0x7ad1('0x54')]({'where':{'id':_0x6453f6[_0x7ad1('0x52')]['id']},'attributes':['name',_0x7ad1('0x8')],'raw':!![]})[_0x7ad1('0x31')](handleEntityNotFound(_0x16e0b2,null))[_0x7ad1('0x31')](function(_0x4c9b51){if(_0x4c9b51){var _0x153b20=path[_0x7ad1('0x56')](config[_0x7ad1('0x57')],'server/files/plugins',util[_0x7ad1('0x58')](_0x7ad1('0x59'),path[_0x7ad1('0x5a')](_0x4c9b51[_0x7ad1('0x8')])));var _0x2ee5d5=fs[_0x7ad1('0x5b')](_0x153b20);var _0xed44fd=archiver(_0x7ad1('0x5c'),{'zlib':{'level':0x9}});_0xed44fd['on'](_0x7ad1('0x5d'),function(_0x12bf17){if(_0x12bf17[_0x7ad1('0x5e')]===_0x7ad1('0x5f')){logger['error'](_0x12bf17);}else{throw new db[(_0x7ad1('0x60'))]['Error'](_0x7ad1('0x61'));}});_0xed44fd['on'](_0x7ad1('0x33'),function(_0x4d80d0){throw new db['Sequelize'][(_0x7ad1('0x62'))](_0x7ad1('0x61'));});_0xed44fd[_0x7ad1('0x63')](_0x2ee5d5);_0xed44fd[_0x7ad1('0x64')](_0x7ad1('0x65'),{'cwd':path[_0x7ad1('0x56')](config[_0x7ad1('0x57')],_0x7ad1('0x66'),path[_0x7ad1('0x67')](_0x4c9b51[_0x7ad1('0x8')])),'ignore':[path[_0x7ad1('0x56')](path['basename'](_0x4c9b51[_0x7ad1('0x8')]),_0x7ad1('0x68')),path[_0x7ad1('0x56')](path[_0x7ad1('0x5a')](_0x4c9b51[_0x7ad1('0x8')]),_0x7ad1('0x69'))],'nodir':!![]})['finalize']();_0x2ee5d5['on'](_0x7ad1('0x6a'),function(){if(!fs[_0x7ad1('0x6b')](_0x153b20)){throw new db[(_0x7ad1('0x60'))][(_0x7ad1('0x62'))]('Plugin\x20not\x20found');}return _0x16e0b2[_0x7ad1('0x55')](_0x153b20,util[_0x7ad1('0x58')]('%s.zip',path[_0x7ad1('0x5a')](_0x4c9b51[_0x7ad1('0x8')])),function(_0x588908){if(_0x588908){throw new db[(_0x7ad1('0x60'))][(_0x7ad1('0x62'))]('Error\x20while\x20downloading\x20the\x20plugin');}fs[_0x7ad1('0x6c')](_0x153b20);logger[_0x7ad1('0x6d')]('Download\x20completed');logger[_0x7ad1('0x6d')](_0x7ad1('0x6e'));});});}return null;})[_0x7ad1('0x50')](handleError(_0x16e0b2,null));};exports[_0x7ad1('0x6f')]=function(_0x4a31f2,_0x4acd24,_0x43c852){var _0x42392a=path['basename'](_0x4a31f2[_0x7ad1('0x70')][_0x7ad1('0x71')],path[_0x7ad1('0x72')](_0x4a31f2[_0x7ad1('0x70')][_0x7ad1('0x71')]));var _0x25129b=path[_0x7ad1('0x56')](config['root'],_0x7ad1('0x66'),_0x4a31f2[_0x7ad1('0x70')][_0x7ad1('0x71')]);var _0x1bb74a=path[_0x7ad1('0x56')](config[_0x7ad1('0x57')],_0x7ad1('0x66'),_0x42392a);logger[_0x7ad1('0x6d')](_0x7ad1('0x73'),_0x25129b);logger[_0x7ad1('0x6d')](_0x7ad1('0x74'),_0x1bb74a);try{fs[_0x7ad1('0x75')](_0x25129b,parseInt(_0x7ad1('0x76'),0x8));extract(_0x25129b,{'dir':_0x1bb74a},function(_0xb38ea8){if(_0xb38ea8){logger[_0x7ad1('0x33')](_0xb38ea8);handleError(_0xb38ea8,!![]);};var _0x1ac5be=fs['readdirSync'](_0x1bb74a);if(_0x1ac5be[_0x7ad1('0x42')]>0x1){removeReferences(_0x25129b,_0x1bb74a);logger[_0x7ad1('0x33')]('Invalid\x20plugin\x20structure');return _0x43c852(new Error('Invalid\x20plugin\x20structure'));}var _0xa9e1dc=fs['lstatSync'](path[_0x7ad1('0x56')](_0x1bb74a,_0x1ac5be[0x0]));if(_0xa9e1dc[_0x7ad1('0x77')]()){removeReferences(_0x25129b,_0x1bb74a);logger[_0x7ad1('0x33')](_0x7ad1('0x78'));return _0x43c852(new Error(_0x7ad1('0x78')));}if(_0xa9e1dc[_0x7ad1('0x79')]()){var _0x18c454=fs['readdirSync'](path[_0x7ad1('0x56')](_0x1bb74a,_0x1ac5be[0x0]));if(_0x18c454[_0x7ad1('0x42')]===0x0){removeReferences(_0x25129b,_0x1bb74a);logger[_0x7ad1('0x33')](_0x7ad1('0x78'));return _0x43c852(new Error(_0x7ad1('0x78')));}var _0x1c87ac=_0x18c454['some'](function(_0x23b2e5){return _0x23b2e5===_0x7ad1('0x7a');});if(!_0x1c87ac){return _0x43c852(new Error('Plugin\x20manifest\x20missing'));}var _0xf4e3f0=fs[_0x7ad1('0x7b')](path[_0x7ad1('0x56')](_0x1bb74a,_0x1ac5be[0x0],_0x7ad1('0x7a')));var _0x35b614=JSON[_0x7ad1('0x7c')](_0xf4e3f0);if(_0x7ad1('0x23')==typeof _0x35b614['name']){return _0x43c852(new Error(_0x7ad1('0x7d')));}if(_0x7ad1('0x23')==typeof _0x35b614[_0x7ad1('0x3b')]){return _0x43c852(new Error(_0x7ad1('0x7e')));}if(_0x7ad1('0x23')==typeof _0x35b614[_0x7ad1('0x7f')]){return _0x43c852(new Error(_0x7ad1('0x80')));}if('undefined'==typeof _0x35b614[_0x7ad1('0x81')]){return _0x43c852(new Error(_0x7ad1('0x82')));}if(_0x35b614[_0x7ad1('0x3b')]===_0x7ad1('0x83')){if(_0x7ad1('0x23')==typeof _0x35b614[_0x7ad1('0x81')][_0x7ad1('0x84')]){return _0x43c852(new Error(_0x7ad1('0x85')));}if(_0x7ad1('0x23')==typeof _0x35b614[_0x7ad1('0x81')][_0x7ad1('0x84')][_0x7ad1('0x86')]&&_0x7ad1('0x23')==typeof _0x35b614[_0x7ad1('0x81')][_0x7ad1('0x84')][_0x7ad1('0x87')]){return _0x43c852(new Error(_0x7ad1('0x88')));}}else if(_0x35b614[_0x7ad1('0x3b')]===_0x7ad1('0x89')){if(_0x7ad1('0x23')==typeof _0x35b614[_0x7ad1('0x81')][_0x7ad1('0x8a')]){return _0x43c852(new Error(_0x7ad1('0x8b')));}if(_0x7ad1('0x23')==typeof _0x35b614[_0x7ad1('0x81')][_0x7ad1('0x8c')]){return _0x43c852(new Error(_0x7ad1('0x8d')));}}else{return _0x43c852(new Error(_0x7ad1('0x8e')));}var _0x5dba51=_0x35b614['name'];var _0x35b510=_0x35b614[_0x7ad1('0x8f')];var _0x1016b4=_0x35b614[_0x7ad1('0x3b')];var _0xa0b3ac=_0x35b614[_0x7ad1('0x90')]?_0x35b614['sidebar']:'always';var _0x2c2341=_0x35b614['icon']?_0x35b614[_0x7ad1('0x91')]:_0x7ad1('0x92');var _0x1d18ae='';var _0x3b0ef3='';var _0xd55e93='';var _0x2582c7='';var _0x5047b2=_0x35b614['version'];if(_0x1016b4===_0x7ad1('0x83')){if(_0x7ad1('0x23')!=typeof _0x35b614['parameters'][_0x7ad1('0x84')]['admin']){var _0x2d2956=_0x35b614[_0x7ad1('0x81')][_0x7ad1('0x84')]['admin'];if(!/^(f|ht)tps?:\/\//i[_0x7ad1('0x93')](_0x2d2956)){_0x1d18ae=path['join'](_0x7ad1('0x94'),_0x42392a,_0x1ac5be[0x0],_0x2d2956);}else{_0x1d18ae=_0x2d2956;}}else{logger[_0x7ad1('0x6d')]('Warning:\x20admin\x20view\x20not\x20specified');}if(_0x7ad1('0x23')!=typeof _0x35b614[_0x7ad1('0x81')][_0x7ad1('0x84')]['agent']){var _0x4e9dcb=_0x35b614[_0x7ad1('0x81')][_0x7ad1('0x84')][_0x7ad1('0x87')];if(!/^(f|ht)tps?:\/\//i[_0x7ad1('0x93')](_0x4e9dcb)){_0x3b0ef3=path[_0x7ad1('0x56')](_0x7ad1('0x94'),_0x42392a,_0x1ac5be[0x0],_0x4e9dcb);}else{_0x3b0ef3=_0x4e9dcb;}}else{logger[_0x7ad1('0x6d')](_0x7ad1('0x95'));}}else if(_0x1016b4===_0x7ad1('0x89')){_0xd55e93=_0x35b614['parameters'][_0x7ad1('0x8a')];_0x2582c7=_0x35b614['parameters']['scriptPath'];if(_0x7ad1('0x23')!=typeof _0x35b614['parameters'][_0x7ad1('0x84')]){if(_0x7ad1('0x23')!=typeof _0x35b614[_0x7ad1('0x81')][_0x7ad1('0x84')][_0x7ad1('0x86')]){var _0x2d2956=_0x35b614[_0x7ad1('0x81')][_0x7ad1('0x84')][_0x7ad1('0x86')];if(!/^(f|ht)tps?:\/\//i[_0x7ad1('0x93')](_0x2d2956)){_0x1d18ae=path[_0x7ad1('0x56')](_0x7ad1('0x94'),_0x42392a,_0x1ac5be[0x0],_0x2d2956);}else{_0x1d18ae=_0x2d2956;}}if(_0x7ad1('0x23')!=typeof _0x35b614['parameters']['views'][_0x7ad1('0x87')]){var _0x4e9dcb=_0x35b614[_0x7ad1('0x81')][_0x7ad1('0x84')][_0x7ad1('0x87')];if(!/^(f|ht)tps?:\/\//i[_0x7ad1('0x93')](_0x4e9dcb)){_0x3b0ef3=path['join'](_0x7ad1('0x94'),_0x42392a,_0x1ac5be[0x0],_0x4e9dcb);}else{_0x3b0ef3=_0x4e9dcb;}}}}var _0x3dddc0={'name':_0x5dba51,'description':_0x35b510,'path':path['join'](_0x42392a,_0x1ac5be[0x0]),'type':_0x1016b4,'sidebar':_0xa0b3ac,'icon':_0x2c2341,'adminUrl':_0x1d18ae,'agentUrl':_0x3b0ef3,'scriptName':_0xd55e93,'scriptPath':_0x2582c7,'version':_0x5047b2};removeReferences(_0x25129b,null);return db[_0x7ad1('0x39')][_0x7ad1('0x96')](_0x3dddc0)['then'](function(_0xfd1abc){var _0xce1e16={'role':_0x4a31f2['body'][_0x7ad1('0x97')],'userProfileId':_0x4a31f2[_0x7ad1('0x98')]['userProfileId']};if(!_0xce1e16)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0xce1e16[_0x7ad1('0x97')]===_0x7ad1('0x99')){var _0x4e5d37=_0xfd1abc[_0x7ad1('0x2e')]({'plain':!![]});return db[_0x7ad1('0x9a')][_0x7ad1('0x54')]({'where':{'name':'Plugins','userProfileId':_0xce1e16[_0x7ad1('0x9b')]},'raw':!![]})['then'](function(_0x33833b){if(_0x33833b&&_0x33833b[_0x7ad1('0x9c')]===0x0){return db[_0x7ad1('0x30')][_0x7ad1('0x96')]({'name':_0x4e5d37[_0x7ad1('0x35')],'resourceId':_0x4e5d37['id'],'type':_0x33833b['name'],'sectionId':_0x33833b['id']},{})['then'](function(){return _0xfd1abc;});}else{return _0xfd1abc;}})[_0x7ad1('0x50')](function(_0x52d139){logger[_0x7ad1('0x33')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x52d139);throw _0x52d139;});}return _0xfd1abc;})[_0x7ad1('0x31')](respondWithResult(_0x4acd24,null))[_0x7ad1('0x50')](handleError(_0x4acd24,null));}});}catch(_0x4e30bd){_0x4acd24[_0x7ad1('0x22')](0x1f4)[_0x7ad1('0x36')](_0x4e30bd);}};function removeReferences(_0x3ca706,_0xaed33a){try{if(_0x3ca706){fs[_0x7ad1('0x6c')](_0x3ca706);logger['info'](_0x7ad1('0x9d'));}if(_0xaed33a){rimraf(_0xaed33a,function(){});logger[_0x7ad1('0x6d')](_0x7ad1('0x9e'));}}catch(_0x15329c){logger[_0x7ad1('0x33')](_0x15329c);}}exports['update']=function(_0x1af550,_0x49d13f,_0x2e1bec){return db[_0x7ad1('0x39')][_0x7ad1('0x54')]({'where':{'id':_0x1af550[_0x7ad1('0x52')]['id']}})[_0x7ad1('0x31')](handleEntityNotFound(_0x49d13f,null))[_0x7ad1('0x31')](saveUpdates(_0x1af550[_0x7ad1('0x98')],null))[_0x7ad1('0x31')](respondWithResult(_0x49d13f,null))[_0x7ad1('0x50')](handleError(_0x49d13f,null));};exports[_0x7ad1('0x9f')]=function(_0x58e514,_0x588688,_0x3ae7e1){return db[_0x7ad1('0x39')][_0x7ad1('0x54')]({'where':{'id':_0x58e514[_0x7ad1('0x52')]['id']}})[_0x7ad1('0x31')](function(_0x12b88b){if(_0x12b88b){return _0x12b88b[_0x7ad1('0x2d')]();}})[_0x7ad1('0x31')](function(_0x38aa3c){rimraf(path['join'](config[_0x7ad1('0x57')],'server/files/plugins',path[_0x7ad1('0x67')](_0x38aa3c[_0x7ad1('0x8')])),function(){});return _0x38aa3c;})['then'](handleEntityNotFound(_0x588688,null))[_0x7ad1('0x31')](respondWithStatusCode(_0x588688,null))[_0x7ad1('0x50')](handleError(_0x588688,null));};exports[_0x7ad1('0xa0')]=function(_0x2b4f03,_0x451895,_0x2f4b1c){return BPromise[_0x7ad1('0xa1')]()[_0x7ad1('0x31')](function(){if(!_0x2b4f03[_0x7ad1('0x3e')][_0x7ad1('0x8')]){throw new Error(_0x7ad1('0xa2'));}if(!_0x2b4f03[_0x7ad1('0x3e')]['port']){throw new Error(_0x7ad1('0xa3'));}var _0x476411=_0x2b4f03[_0x7ad1('0x3e')][_0x7ad1('0xa4')]?_0x2b4f03[_0x7ad1('0x3e')][_0x7ad1('0xa4')]+':'+_0x2b4f03['query']['port']:'http://localhost:'+_0x2b4f03[_0x7ad1('0x3e')][_0x7ad1('0xa5')];var _0x1605a9=_0x2b4f03['query'][_0x7ad1('0x29')]?_0x2b4f03[_0x7ad1('0x3e')]['json']:!![];var _0x522d9e=_0x2b4f03['query'][_0x7ad1('0xa6')]?_0x2b4f03[_0x7ad1('0x3e')][_0x7ad1('0xa6')]:null;var _0x1807b8={'method':_0x2b4f03['method'],'uri':util[_0x7ad1('0x58')](_0x7ad1('0xa7'),_0x476411,_0x2b4f03[_0x7ad1('0x3e')]['path']),'json':_0x1605a9,'resolveWithFullResponse':!![],'encoding':_0x522d9e,'qs':_0x2b4f03['query']};if(_0x2b4f03['headers']){_0x1807b8['headers']=_0x2b4f03[_0x7ad1('0xa8')];if(_0x1807b8['headers']['content-length']){delete _0x1807b8[_0x7ad1('0xa8')][_0x7ad1('0xa9')];}}if(_0x1807b8['headers'][_0x7ad1('0xaa')]){delete _0x1807b8[_0x7ad1('0xa8')][_0x7ad1('0xaa')];}return rp(_0x1807b8);})[_0x7ad1('0x31')](function(_0x22aa47){if(_0x22aa47){_0x451895[_0x7ad1('0x27')](_0x22aa47[_0x7ad1('0xa8')]);logger[_0x7ad1('0x6d')](_0x22aa47[_0x7ad1('0x98')]);if(_[_0x7ad1('0xab')](_0x2b4f03['query']['path'],_0x7ad1('0x55'))&&_0x22aa47[_0x7ad1('0xac')]==0x1f4){return _0x451895['sendStatus'](_0x22aa47[_0x7ad1('0xac')]);}else{return _0x451895['status'](_0x22aa47['statusCode'])[_0x7ad1('0x36')](_0x22aa47[_0x7ad1('0x98')]);}}else{return _0x451895['sendStatus'](0xc8);}})[_0x7ad1('0x50')](handleError(_0x451895,null));};exports[_0x7ad1('0xad')]=function(_0x3b9eaa,_0x5429dd,_0x3afe76){return BPromise[_0x7ad1('0xa1')]()['then'](function(){if(!_0x3b9eaa['query'][_0x7ad1('0x8')]){throw new Error(_0x7ad1('0xa2'));}if(!_0x3b9eaa[_0x7ad1('0x3e')][_0x7ad1('0xa5')]){throw new Error('\x27PORT\x27\x20parameter\x20not\x20specified');}var _0x56c67d=_0x3b9eaa['query']['hostname']?_0x3b9eaa[_0x7ad1('0x3e')][_0x7ad1('0xa4')]+':'+_0x3b9eaa[_0x7ad1('0x3e')][_0x7ad1('0xa5')]:_0x7ad1('0xae')+_0x3b9eaa[_0x7ad1('0x3e')][_0x7ad1('0xa5')];var _0x4c74fe=_0x3b9eaa[_0x7ad1('0x3e')][_0x7ad1('0x29')]?_0x3b9eaa[_0x7ad1('0x3e')][_0x7ad1('0x29')]:!![];var _0x4f4c21=_0x3b9eaa[_0x7ad1('0x3e')][_0x7ad1('0xa6')]?_0x3b9eaa['query'][_0x7ad1('0xa6')]:null;var _0x368515={'method':_0x3b9eaa[_0x7ad1('0xaf')],'uri':util[_0x7ad1('0x58')](_0x7ad1('0xa7'),_0x56c67d,_0x3b9eaa[_0x7ad1('0x3e')]['path']),'json':_0x4c74fe,'resolveWithFullResponse':!![],'encoding':_0x4f4c21,'body':_0x3b9eaa[_0x7ad1('0x98')]};if(_0x3b9eaa[_0x7ad1('0xa8')]){_0x368515[_0x7ad1('0xa8')]=_0x3b9eaa[_0x7ad1('0xa8')];if(_0x368515[_0x7ad1('0xa8')][_0x7ad1('0xa9')]){delete _0x368515['headers'][_0x7ad1('0xa9')];}}if(_0x368515[_0x7ad1('0xa8')][_0x7ad1('0xaa')]){delete _0x368515[_0x7ad1('0xa8')][_0x7ad1('0xaa')];}return rp(_0x368515);})[_0x7ad1('0x31')](function(_0x4d7d9a){if(_0x4d7d9a){_0x5429dd[_0x7ad1('0x27')](_0x4d7d9a['headers']);logger[_0x7ad1('0x6d')](_0x4d7d9a[_0x7ad1('0x98')]);return _0x5429dd[_0x7ad1('0x22')](_0x4d7d9a[_0x7ad1('0xac')])['send'](_0x4d7d9a['body']);}else{return _0x5429dd[_0x7ad1('0x21')](0xc8);}})['catch'](handleError(_0x5429dd,null));};
\ No newline at end of file
+var _0x40cc=['order','sort','where','filters','pick','merge','type','VIRTUAL','filter','options','includeAll','rows','catch','show','params','keys','fields','include','find','download','root','server/files/plugins','format','basename','createWriteStream','zip','warning','code','ENOENT','Sequelize','Error\x20while\x20generating\x20the\x20zip\x20archive','Error','pipe','glob','join','dirname','node_modules/**/*','attachments/**/*','finalize','close','existsSync','Plugin\x20not\x20found','Error\x20while\x20downloading\x20the\x20plugin','info','Download\x20completed','Temporary\x20file\x20removed','upload','file','filename','Plugin\x20upload\x20destination:\x20%s','0777','readdirSync','Invalid\x20plugin\x20structure','lstatSync','isFile','Plugin\x20manifest\x20missing','readFileSync','manifest.json','parse','Invalid\x20manifest:\x20name\x20missing','Invalid\x20manifest:\x20type\x20missing','version','Invalid\x20manifest:\x20version\x20not\x20specified','parameters','Invalid\x20manifest:\x20parameters\x20missing','html','Invalid\x20manifest:\x20views\x20missing','views','admin','agent','script','scriptName','Invalid\x20manifest:\x20script\x20name\x20missing','scriptPath','Invalid\x20manifest:\x20script\x20path\x20missing','description','sidebar','icon','icon-apps','test','plugins','Warning:\x20admin\x20view\x20not\x20specified','Warning:\x20agent\x20view\x20not\x20specified','body','role','userProfileId','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','UserProfileSection','autoAssociation','create','unlinkSync','Zip\x20archive\x20removed','Extracted\x20folder\x20removed','update','delete','webhookGet','resolve','\x27PATH\x27\x20parameter\x20not\x20specified','port','\x27PORT\x27\x20parameter\x20not\x20specified','hostname','http://localhost:','encoding','method','%s%s','headers','content-length','content-type','statusCode','zip-dir','fast-json-patch','bluebird','mustache','path','sox','to-csv','ejs','lodash','squel','jsforce','desk.js','querystring','papaparse','extract-zip','rimraf','archiver','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','redis','defaults','socket.io-emitter','./plugin.socket','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','save','destroy','then','get','UserProfileResource','error','stack','name','send','Plugin','rawAttributes','fieldName','key','model','map','query','intersection','attributes','length','hasOwnProperty','nolimit'];(function(_0x3f57c5,_0x202b16){var _0x2907f1=function(_0x1a9a5d){while(--_0x1a9a5d){_0x3f57c5['push'](_0x3f57c5['shift']());}};_0x2907f1(++_0x202b16);}(_0x40cc,0x6e));var _0xc40c=function(_0x35c2fc,_0xabea37){_0x35c2fc=_0x35c2fc-0x0;var _0x4727fd=_0x40cc[_0x35c2fc];return _0x4727fd;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0xc40c('0x0'));var jsonpatch=require(_0xc40c('0x1'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0xc40c('0x2'));var Mustache=require(_0xc40c('0x3'));var util=require('util');var path=require(_0xc40c('0x4'));var sox=require(_0xc40c('0x5'));var csv=require(_0xc40c('0x6'));var ejs=require(_0xc40c('0x7'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xc40c('0x8'));var squel=require(_0xc40c('0x9'));var crypto=require('crypto');var jsforce=require(_0xc40c('0xa'));var deskjs=require(_0xc40c('0xb'));var toCsv=require(_0xc40c('0x6'));var querystring=require(_0xc40c('0xc'));var Papa=require(_0xc40c('0xd'));var extract=require(_0xc40c('0xe'));var rimraf=require(_0xc40c('0xf'));var archiver=require(_0xc40c('0x10'));var Redis=require(_0xc40c('0x11'));var authService=require(_0xc40c('0x12'));var qs=require(_0xc40c('0x13'));var as=require(_0xc40c('0x14'));var hardwareService=require(_0xc40c('0x15'));var logger=require(_0xc40c('0x16'))(_0xc40c('0x17'));var utils=require(_0xc40c('0x18'));var config=require('../../config/environment');var licenseUtil=require(_0xc40c('0x19'));var db=require(_0xc40c('0x1a'))['db'];config[_0xc40c('0x1b')]=_[_0xc40c('0x1c')](config[_0xc40c('0x1b')],{'host':'localhost','port':0x18eb});var socket=require(_0xc40c('0x1d'))(new Redis(config[_0xc40c('0x1b')]));require(_0xc40c('0x1e'))['register'](socket);function respondWithStatusCode(_0x2abbe0,_0x2525d6){_0x2525d6=_0x2525d6||0xcc;return function(_0x3c5ef6){if(_0x3c5ef6){return _0x2abbe0[_0xc40c('0x1f')](_0x2525d6);}return _0x2abbe0[_0xc40c('0x20')](_0x2525d6)[_0xc40c('0x21')]();};}function respondWithResult(_0x287bba,_0xc69d7f){_0xc69d7f=_0xc69d7f||0xc8;return function(_0x4d61df){if(_0x4d61df){return _0x287bba['status'](_0xc69d7f)[_0xc40c('0x22')](_0x4d61df);}};}function respondWithFilteredResult(_0x3c97c7,_0x2f4319){return function(_0x5a9b23){if(_0x5a9b23){var _0x170cef=typeof _0x2f4319[_0xc40c('0x23')]===_0xc40c('0x24')&&typeof _0x2f4319[_0xc40c('0x25')]==='undefined';var _0x5c93a8=_0x5a9b23[_0xc40c('0x26')];var _0x53ed6a=_0x170cef?0x0:_0x2f4319[_0xc40c('0x23')];var _0xc68f55=_0x170cef?_0x5a9b23['count']:_0x2f4319[_0xc40c('0x23')]+_0x2f4319['limit'];var _0x3ed365;if(_0xc68f55>=_0x5c93a8){_0xc68f55=_0x5c93a8;_0x3ed365=0xc8;}else{_0x3ed365=0xce;}_0x3c97c7[_0xc40c('0x20')](_0x3ed365);return _0x3c97c7[_0xc40c('0x27')](_0xc40c('0x28'),_0x53ed6a+'-'+_0xc68f55+'/'+_0x5c93a8)[_0xc40c('0x22')](_0x5a9b23);}return null;};}function patchUpdates(_0x11f150){return function(_0x5aeb3e){try{jsonpatch[_0xc40c('0x29')](_0x5aeb3e,_0x11f150,!![]);}catch(_0x555f44){return BPromise['reject'](_0x555f44);}return _0x5aeb3e[_0xc40c('0x2a')]();};}function saveUpdates(_0x18c12b,_0x3a04cb){return function(_0x5cf86a){if(_0x5cf86a){return _0x5cf86a['update'](_0x18c12b)['then'](function(_0x47fd30){return _0x47fd30;});}return null;};}function removeEntity(_0x57405e,_0x508ba7){return function(_0x562d6b){if(_0x562d6b){return _0x562d6b[_0xc40c('0x2b')]()[_0xc40c('0x2c')](function(){var _0x30ab5d=_0x562d6b[_0xc40c('0x2d')]({'plain':!![]});var _0x2deac9='Plugins';return db[_0xc40c('0x2e')]['destroy']({'where':{'type':_0x2deac9,'resourceId':_0x30ab5d['id']}})[_0xc40c('0x2c')](function(){return _0x562d6b;});})[_0xc40c('0x2c')](function(){_0x57405e[_0xc40c('0x20')](0xcc)[_0xc40c('0x21')]();});}};}function handleEntityNotFound(_0x8d171f,_0xd57da5){return function(_0x4a0a6e){if(!_0x4a0a6e){_0x8d171f[_0xc40c('0x1f')](0x194);}return _0x4a0a6e;};}function handleError(_0x3fe3d5,_0x2f5184){_0x2f5184=_0x2f5184||0x1f4;return function(_0x3c6563){logger[_0xc40c('0x2f')](_0x3c6563[_0xc40c('0x30')]);if(_0x3c6563[_0xc40c('0x31')]){delete _0x3c6563[_0xc40c('0x31')];}_0x3fe3d5[_0xc40c('0x20')](_0x2f5184)[_0xc40c('0x32')](_0x3c6563);};}exports['index']=function(_0x265880,_0x3332f3){var _0x575c17={},_0x423375={},_0x43beaf={'count':0x0,'rows':[]};var _0x4d59f3=_['map'](db[_0xc40c('0x33')][_0xc40c('0x34')],function(_0x4af89c){return{'name':_0x4af89c[_0xc40c('0x35')],'type':_0x4af89c['type'][_0xc40c('0x36')]};});_0x423375[_0xc40c('0x37')]=_[_0xc40c('0x38')](_0x4d59f3,_0xc40c('0x31'));_0x423375[_0xc40c('0x39')]=_['keys'](_0x265880[_0xc40c('0x39')]);_0x423375['filters']=_[_0xc40c('0x3a')](_0x423375[_0xc40c('0x37')],_0x423375[_0xc40c('0x39')]);_0x575c17[_0xc40c('0x3b')]=_['intersection'](_0x423375[_0xc40c('0x37')],qs['fields'](_0x265880[_0xc40c('0x39')]['fields']));_0x575c17[_0xc40c('0x3b')]=_0x575c17[_0xc40c('0x3b')][_0xc40c('0x3c')]?_0x575c17[_0xc40c('0x3b')]:_0x423375['model'];if(!_0x265880[_0xc40c('0x39')][_0xc40c('0x3d')](_0xc40c('0x3e'))){_0x575c17[_0xc40c('0x25')]=qs['limit'](_0x265880[_0xc40c('0x39')][_0xc40c('0x25')]);_0x575c17[_0xc40c('0x23')]=qs['offset'](_0x265880[_0xc40c('0x39')][_0xc40c('0x23')]);}_0x575c17[_0xc40c('0x3f')]=qs[_0xc40c('0x40')](_0x265880[_0xc40c('0x39')][_0xc40c('0x40')]);_0x575c17[_0xc40c('0x41')]=qs[_0xc40c('0x42')](_[_0xc40c('0x43')](_0x265880['query'],_0x423375[_0xc40c('0x42')]),_0x4d59f3);if(_0x265880[_0xc40c('0x39')]['filter']){_0x575c17[_0xc40c('0x41')]=_[_0xc40c('0x44')](_0x575c17[_0xc40c('0x41')],{'$or':_[_0xc40c('0x38')](_0x4d59f3,function(_0x574013){if(_0x574013[_0xc40c('0x45')]!==_0xc40c('0x46')){var _0x2338a4={};_0x2338a4[_0x574013[_0xc40c('0x31')]]={'$like':'%'+_0x265880[_0xc40c('0x39')][_0xc40c('0x47')]+'%'};return _0x2338a4;}})});}_0x575c17=_['merge']({},_0x575c17,_0x265880[_0xc40c('0x48')]);var _0x50a087={'where':_0x575c17[_0xc40c('0x41')]};return db[_0xc40c('0x33')][_0xc40c('0x26')](_0x50a087)[_0xc40c('0x2c')](function(_0x510fee){_0x43beaf[_0xc40c('0x26')]=_0x510fee;if(_0x265880[_0xc40c('0x39')][_0xc40c('0x49')]){_0x575c17['include']=[{'all':!![]}];}return db['Plugin']['findAll'](_0x575c17);})['then'](function(_0x448cd6){_0x43beaf[_0xc40c('0x4a')]=_0x448cd6;return _0x43beaf;})[_0xc40c('0x2c')](respondWithFilteredResult(_0x3332f3,_0x575c17))[_0xc40c('0x4b')](handleError(_0x3332f3,null));};exports[_0xc40c('0x4c')]=function(_0x4658f5,_0x50bcfa){var _0x766100={'raw':!![],'where':{'id':_0x4658f5[_0xc40c('0x4d')]['id']}},_0x574e4e={};_0x574e4e[_0xc40c('0x37')]=_[_0xc40c('0x4e')](db[_0xc40c('0x33')][_0xc40c('0x34')]);_0x574e4e['query']=_[_0xc40c('0x4e')](_0x4658f5['query']);_0x574e4e[_0xc40c('0x42')]=_[_0xc40c('0x3a')](_0x574e4e[_0xc40c('0x37')],_0x574e4e[_0xc40c('0x39')]);_0x766100['attributes']=_[_0xc40c('0x3a')](_0x574e4e[_0xc40c('0x37')],qs[_0xc40c('0x4f')](_0x4658f5[_0xc40c('0x39')][_0xc40c('0x4f')]));_0x766100[_0xc40c('0x3b')]=_0x766100[_0xc40c('0x3b')][_0xc40c('0x3c')]?_0x766100[_0xc40c('0x3b')]:_0x574e4e[_0xc40c('0x37')];if(_0x4658f5[_0xc40c('0x39')][_0xc40c('0x49')]){_0x766100[_0xc40c('0x50')]=[{'all':!![]}];}_0x766100=_[_0xc40c('0x44')]({},_0x766100,_0x4658f5[_0xc40c('0x48')]);return db[_0xc40c('0x33')][_0xc40c('0x51')](_0x766100)[_0xc40c('0x2c')](handleEntityNotFound(_0x50bcfa,null))[_0xc40c('0x2c')](respondWithResult(_0x50bcfa,null))[_0xc40c('0x4b')](handleError(_0x50bcfa,null));};exports[_0xc40c('0x52')]=function(_0x129654,_0x3002bc,_0x1a0dc4){return db['Plugin']['find']({'where':{'id':_0x129654[_0xc40c('0x4d')]['id']},'attributes':[_0xc40c('0x31'),_0xc40c('0x4')],'raw':!![]})[_0xc40c('0x2c')](handleEntityNotFound(_0x3002bc,null))[_0xc40c('0x2c')](function(_0x7632d5){if(_0x7632d5){var _0x22f11a=path['join'](config[_0xc40c('0x53')],_0xc40c('0x54'),util[_0xc40c('0x55')]('%s.zip',path[_0xc40c('0x56')](_0x7632d5[_0xc40c('0x4')])));var _0x4bed60=fs[_0xc40c('0x57')](_0x22f11a);var _0x3e3741=archiver(_0xc40c('0x58'),{'zlib':{'level':0x9}});_0x3e3741['on'](_0xc40c('0x59'),function(_0x20a948){if(_0x20a948[_0xc40c('0x5a')]===_0xc40c('0x5b')){logger[_0xc40c('0x2f')](_0x20a948);}else{throw new db[(_0xc40c('0x5c'))]['Error'](_0xc40c('0x5d'));}});_0x3e3741['on'](_0xc40c('0x2f'),function(_0xa7e720){throw new db[(_0xc40c('0x5c'))][(_0xc40c('0x5e'))](_0xc40c('0x5d'));});_0x3e3741[_0xc40c('0x5f')](_0x4bed60);_0x3e3741[_0xc40c('0x60')]('**/*',{'cwd':path[_0xc40c('0x61')](config[_0xc40c('0x53')],_0xc40c('0x54'),path[_0xc40c('0x62')](_0x7632d5[_0xc40c('0x4')])),'ignore':[path[_0xc40c('0x61')](path[_0xc40c('0x56')](_0x7632d5[_0xc40c('0x4')]),_0xc40c('0x63')),path['join'](path['basename'](_0x7632d5[_0xc40c('0x4')]),_0xc40c('0x64'))],'nodir':!![]})[_0xc40c('0x65')]();_0x4bed60['on'](_0xc40c('0x66'),function(){if(!fs[_0xc40c('0x67')](_0x22f11a)){throw new db[(_0xc40c('0x5c'))]['Error'](_0xc40c('0x68'));}return _0x3002bc[_0xc40c('0x52')](_0x22f11a,util[_0xc40c('0x55')]('%s.zip',path['basename'](_0x7632d5['path'])),function(_0x4efdf4){if(_0x4efdf4){throw new db[(_0xc40c('0x5c'))]['Error'](_0xc40c('0x69'));}fs['unlinkSync'](_0x22f11a);logger[_0xc40c('0x6a')](_0xc40c('0x6b'));logger['info'](_0xc40c('0x6c'));});});}return null;})[_0xc40c('0x4b')](handleError(_0x3002bc,null));};exports[_0xc40c('0x6d')]=function(_0x10c060,_0x21ba43,_0x449376){var _0x35d947=path[_0xc40c('0x56')](_0x10c060[_0xc40c('0x6e')][_0xc40c('0x6f')],path['extname'](_0x10c060['file']['filename']));var _0x1cbc3e=path[_0xc40c('0x61')](config[_0xc40c('0x53')],_0xc40c('0x54'),_0x10c060[_0xc40c('0x6e')]['filename']);var _0x45c15c=path[_0xc40c('0x61')](config['root'],'server/files/plugins',_0x35d947);logger['info']('Plugin\x20upload\x20filepath:\x20%s',_0x1cbc3e);logger[_0xc40c('0x6a')](_0xc40c('0x70'),_0x45c15c);try{fs['chmodSync'](_0x1cbc3e,parseInt(_0xc40c('0x71'),0x8));extract(_0x1cbc3e,{'dir':_0x45c15c},function(_0x1c198c){if(_0x1c198c){logger[_0xc40c('0x2f')](_0x1c198c);handleError(_0x1c198c,!![]);};var _0x42f16d=fs[_0xc40c('0x72')](_0x45c15c);if(_0x42f16d[_0xc40c('0x3c')]>0x1){removeReferences(_0x1cbc3e,_0x45c15c);logger['error'](_0xc40c('0x73'));return _0x449376(new Error(_0xc40c('0x73')));}var _0x34ff7e=fs[_0xc40c('0x74')](path[_0xc40c('0x61')](_0x45c15c,_0x42f16d[0x0]));if(_0x34ff7e[_0xc40c('0x75')]()){removeReferences(_0x1cbc3e,_0x45c15c);logger['error'](_0xc40c('0x73'));return _0x449376(new Error('Invalid\x20plugin\x20structure'));}if(_0x34ff7e['isDirectory']()){var _0x3985ab=fs[_0xc40c('0x72')](path[_0xc40c('0x61')](_0x45c15c,_0x42f16d[0x0]));if(_0x3985ab[_0xc40c('0x3c')]===0x0){removeReferences(_0x1cbc3e,_0x45c15c);logger[_0xc40c('0x2f')]('Invalid\x20plugin\x20structure');return _0x449376(new Error(_0xc40c('0x73')));}var _0x376f67=_0x3985ab['some'](function(_0x59baf8){return _0x59baf8==='manifest.json';});if(!_0x376f67){return _0x449376(new Error(_0xc40c('0x76')));}var _0x5a7af5=fs[_0xc40c('0x77')](path['join'](_0x45c15c,_0x42f16d[0x0],_0xc40c('0x78')));var _0x58275b=JSON[_0xc40c('0x79')](_0x5a7af5);if(_0xc40c('0x24')==typeof _0x58275b[_0xc40c('0x31')]){return _0x449376(new Error(_0xc40c('0x7a')));}if(_0xc40c('0x24')==typeof _0x58275b[_0xc40c('0x45')]){return _0x449376(new Error(_0xc40c('0x7b')));}if(_0xc40c('0x24')==typeof _0x58275b[_0xc40c('0x7c')]){return _0x449376(new Error(_0xc40c('0x7d')));}if(_0xc40c('0x24')==typeof _0x58275b[_0xc40c('0x7e')]){return _0x449376(new Error(_0xc40c('0x7f')));}if(_0x58275b[_0xc40c('0x45')]===_0xc40c('0x80')){if(_0xc40c('0x24')==typeof _0x58275b['parameters']['views']){return _0x449376(new Error(_0xc40c('0x81')));}if(_0xc40c('0x24')==typeof _0x58275b['parameters'][_0xc40c('0x82')][_0xc40c('0x83')]&&_0xc40c('0x24')==typeof _0x58275b[_0xc40c('0x7e')]['views'][_0xc40c('0x84')]){return _0x449376(new Error('Invalid\x20manifest:\x20no\x20view\x20specified'));}}else if(_0x58275b[_0xc40c('0x45')]===_0xc40c('0x85')){if(_0xc40c('0x24')==typeof _0x58275b['parameters'][_0xc40c('0x86')]){return _0x449376(new Error(_0xc40c('0x87')));}if('undefined'==typeof _0x58275b[_0xc40c('0x7e')][_0xc40c('0x88')]){return _0x449376(new Error(_0xc40c('0x89')));}}else{return _0x449376(new Error('Invalid\x20manifest:\x20invalid\x20type'));}var _0xfe387=_0x58275b[_0xc40c('0x31')];var _0x4c54b0=_0x58275b[_0xc40c('0x8a')];var _0x390fac=_0x58275b[_0xc40c('0x45')];var _0x5e4073=_0x58275b[_0xc40c('0x8b')]?_0x58275b[_0xc40c('0x8b')]:'always';var _0x4cc30e=_0x58275b[_0xc40c('0x8c')]?_0x58275b[_0xc40c('0x8c')]:_0xc40c('0x8d');var _0x363e70='';var _0x3c1472='';var _0x4db24e='';var _0x30ac43='';var _0x89fa3b=_0x58275b[_0xc40c('0x7c')];if(_0x390fac===_0xc40c('0x80')){if('undefined'!=typeof _0x58275b['parameters']['views'][_0xc40c('0x83')]){var _0x531e89=_0x58275b[_0xc40c('0x7e')][_0xc40c('0x82')][_0xc40c('0x83')];if(!/^(f|ht)tps?:\/\//i[_0xc40c('0x8e')](_0x531e89)){_0x363e70=path[_0xc40c('0x61')](_0xc40c('0x8f'),_0x35d947,_0x42f16d[0x0],_0x531e89);}else{_0x363e70=_0x531e89;}}else{logger['info'](_0xc40c('0x90'));}if(_0xc40c('0x24')!=typeof _0x58275b[_0xc40c('0x7e')][_0xc40c('0x82')][_0xc40c('0x84')]){var _0x2f776c=_0x58275b[_0xc40c('0x7e')]['views'][_0xc40c('0x84')];if(!/^(f|ht)tps?:\/\//i[_0xc40c('0x8e')](_0x2f776c)){_0x3c1472=path['join'](_0xc40c('0x8f'),_0x35d947,_0x42f16d[0x0],_0x2f776c);}else{_0x3c1472=_0x2f776c;}}else{logger['info'](_0xc40c('0x91'));}}else if(_0x390fac===_0xc40c('0x85')){_0x4db24e=_0x58275b[_0xc40c('0x7e')][_0xc40c('0x86')];_0x30ac43=_0x58275b[_0xc40c('0x7e')][_0xc40c('0x88')];if(_0xc40c('0x24')!=typeof _0x58275b['parameters'][_0xc40c('0x82')]){if(_0xc40c('0x24')!=typeof _0x58275b[_0xc40c('0x7e')][_0xc40c('0x82')][_0xc40c('0x83')]){var _0x531e89=_0x58275b[_0xc40c('0x7e')][_0xc40c('0x82')][_0xc40c('0x83')];if(!/^(f|ht)tps?:\/\//i[_0xc40c('0x8e')](_0x531e89)){_0x363e70=path['join'](_0xc40c('0x8f'),_0x35d947,_0x42f16d[0x0],_0x531e89);}else{_0x363e70=_0x531e89;}}if(_0xc40c('0x24')!=typeof _0x58275b['parameters']['views'][_0xc40c('0x84')]){var _0x2f776c=_0x58275b[_0xc40c('0x7e')][_0xc40c('0x82')][_0xc40c('0x84')];if(!/^(f|ht)tps?:\/\//i[_0xc40c('0x8e')](_0x2f776c)){_0x3c1472=path[_0xc40c('0x61')](_0xc40c('0x8f'),_0x35d947,_0x42f16d[0x0],_0x2f776c);}else{_0x3c1472=_0x2f776c;}}}}var _0x2dbdb={'name':_0xfe387,'description':_0x4c54b0,'path':path[_0xc40c('0x61')](_0x35d947,_0x42f16d[0x0]),'type':_0x390fac,'sidebar':_0x5e4073,'icon':_0x4cc30e,'adminUrl':_0x363e70,'agentUrl':_0x3c1472,'scriptName':_0x4db24e,'scriptPath':_0x30ac43,'version':_0x89fa3b};removeReferences(_0x1cbc3e,null);return db[_0xc40c('0x33')]['create'](_0x2dbdb)[_0xc40c('0x2c')](function(_0x10919d){var _0x55731d={'role':_0x10c060[_0xc40c('0x92')][_0xc40c('0x93')],'userProfileId':_0x10c060['body'][_0xc40c('0x94')]};if(!_0x55731d)throw new Error(_0xc40c('0x95'));if(_0x55731d[_0xc40c('0x93')]===_0xc40c('0x96')){var _0x15d490=_0x10919d[_0xc40c('0x2d')]({'plain':!![]});return db[_0xc40c('0x97')]['find']({'where':{'name':'Plugins','userProfileId':_0x55731d['userProfileId']},'raw':!![]})[_0xc40c('0x2c')](function(_0x46ace6){if(_0x46ace6&&_0x46ace6[_0xc40c('0x98')]===0x0){return db[_0xc40c('0x2e')][_0xc40c('0x99')]({'name':_0x15d490[_0xc40c('0x31')],'resourceId':_0x15d490['id'],'type':_0x46ace6[_0xc40c('0x31')],'sectionId':_0x46ace6['id']},{})['then'](function(){return _0x10919d;});}else{return _0x10919d;}})['catch'](function(_0xbf3fec){logger[_0xc40c('0x2f')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0xbf3fec);throw _0xbf3fec;});}return _0x10919d;})[_0xc40c('0x2c')](respondWithResult(_0x21ba43,null))['catch'](handleError(_0x21ba43,null));}});}catch(_0x244823){_0x21ba43[_0xc40c('0x20')](0x1f4)[_0xc40c('0x32')](_0x244823);}};function removeReferences(_0x5e75fd,_0x1f5ead){try{if(_0x5e75fd){fs[_0xc40c('0x9a')](_0x5e75fd);logger[_0xc40c('0x6a')](_0xc40c('0x9b'));}if(_0x1f5ead){rimraf(_0x1f5ead,function(){});logger[_0xc40c('0x6a')](_0xc40c('0x9c'));}}catch(_0x5a3e98){logger[_0xc40c('0x2f')](_0x5a3e98);}}exports[_0xc40c('0x9d')]=function(_0x2b0157,_0xb27092,_0x7f410d){return db[_0xc40c('0x33')][_0xc40c('0x51')]({'where':{'id':_0x2b0157[_0xc40c('0x4d')]['id']}})[_0xc40c('0x2c')](handleEntityNotFound(_0xb27092,null))[_0xc40c('0x2c')](saveUpdates(_0x2b0157['body'],null))[_0xc40c('0x2c')](respondWithResult(_0xb27092,null))[_0xc40c('0x4b')](handleError(_0xb27092,null));};exports[_0xc40c('0x9e')]=function(_0x8b4f0a,_0x40a050,_0x1133f3){return db[_0xc40c('0x33')][_0xc40c('0x51')]({'where':{'id':_0x8b4f0a[_0xc40c('0x4d')]['id']}})[_0xc40c('0x2c')](function(_0x33ba86){if(_0x33ba86){return _0x33ba86[_0xc40c('0x2b')]();}})[_0xc40c('0x2c')](function(_0x4bd26a){rimraf(path[_0xc40c('0x61')](config[_0xc40c('0x53')],_0xc40c('0x54'),path['dirname'](_0x4bd26a[_0xc40c('0x4')])),function(){});return _0x4bd26a;})[_0xc40c('0x2c')](handleEntityNotFound(_0x40a050,null))[_0xc40c('0x2c')](respondWithStatusCode(_0x40a050,null))[_0xc40c('0x4b')](handleError(_0x40a050,null));};exports[_0xc40c('0x9f')]=function(_0x5988f4,_0x29bda4,_0x19718b){return BPromise[_0xc40c('0xa0')]()[_0xc40c('0x2c')](function(){if(!_0x5988f4[_0xc40c('0x39')][_0xc40c('0x4')]){throw new Error(_0xc40c('0xa1'));}if(!_0x5988f4[_0xc40c('0x39')][_0xc40c('0xa2')]){throw new Error(_0xc40c('0xa3'));}var _0x5e56c8=_0x5988f4[_0xc40c('0x39')][_0xc40c('0xa4')]?_0x5988f4[_0xc40c('0x39')][_0xc40c('0xa4')]+':'+_0x5988f4[_0xc40c('0x39')][_0xc40c('0xa2')]:_0xc40c('0xa5')+_0x5988f4[_0xc40c('0x39')]['port'];var _0x132704=_0x5988f4[_0xc40c('0x39')][_0xc40c('0x22')]?_0x5988f4[_0xc40c('0x39')][_0xc40c('0x22')]:!![];var _0x308ac8=_0x5988f4[_0xc40c('0x39')][_0xc40c('0xa6')]?_0x5988f4['query'][_0xc40c('0xa6')]:null;var _0x46813a={'method':_0x5988f4[_0xc40c('0xa7')],'uri':util[_0xc40c('0x55')](_0xc40c('0xa8'),_0x5e56c8,_0x5988f4['query'][_0xc40c('0x4')]),'json':_0x132704,'resolveWithFullResponse':!![],'encoding':_0x308ac8,'qs':_0x5988f4[_0xc40c('0x39')]};if(_0x5988f4[_0xc40c('0xa9')]){_0x46813a[_0xc40c('0xa9')]=_0x5988f4[_0xc40c('0xa9')];if(_0x46813a[_0xc40c('0xa9')][_0xc40c('0xaa')]){delete _0x46813a['headers'][_0xc40c('0xaa')];}}if(_0x46813a[_0xc40c('0xa9')][_0xc40c('0xab')]){delete _0x46813a[_0xc40c('0xa9')][_0xc40c('0xab')];}return rp(_0x46813a);})[_0xc40c('0x2c')](function(_0x298d01){if(_0x298d01){_0x29bda4[_0xc40c('0x27')](_0x298d01[_0xc40c('0xa9')]);logger['info'](_0x298d01['body']);if(_['endsWith'](_0x5988f4[_0xc40c('0x39')]['path'],_0xc40c('0x52'))&&_0x298d01['statusCode']==0x1f4){return _0x29bda4[_0xc40c('0x1f')](_0x298d01['statusCode']);}else{return _0x29bda4[_0xc40c('0x20')](_0x298d01[_0xc40c('0xac')])[_0xc40c('0x32')](_0x298d01['body']);}}else{return _0x29bda4[_0xc40c('0x1f')](0xc8);}})[_0xc40c('0x4b')](handleError(_0x29bda4,null));};exports['webhookPost']=function(_0x381c9d,_0x1bc116,_0xe4f2e3){return BPromise['resolve']()[_0xc40c('0x2c')](function(){if(!_0x381c9d[_0xc40c('0x39')][_0xc40c('0x4')]){throw new Error('\x27PATH\x27\x20parameter\x20not\x20specified');}if(!_0x381c9d[_0xc40c('0x39')]['port']){throw new Error(_0xc40c('0xa3'));}var _0x25971e=_0x381c9d[_0xc40c('0x39')]['hostname']?_0x381c9d[_0xc40c('0x39')][_0xc40c('0xa4')]+':'+_0x381c9d[_0xc40c('0x39')][_0xc40c('0xa2')]:'http://localhost:'+_0x381c9d[_0xc40c('0x39')][_0xc40c('0xa2')];var _0x255aa9=_0x381c9d[_0xc40c('0x39')][_0xc40c('0x22')]?_0x381c9d[_0xc40c('0x39')]['json']:!![];var _0x50ad63=_0x381c9d[_0xc40c('0x39')][_0xc40c('0xa6')]?_0x381c9d[_0xc40c('0x39')][_0xc40c('0xa6')]:null;var _0x27978a={'method':_0x381c9d[_0xc40c('0xa7')],'uri':util[_0xc40c('0x55')](_0xc40c('0xa8'),_0x25971e,_0x381c9d[_0xc40c('0x39')][_0xc40c('0x4')]),'json':_0x255aa9,'resolveWithFullResponse':!![],'encoding':_0x50ad63,'body':_0x381c9d[_0xc40c('0x92')]};if(_0x381c9d[_0xc40c('0xa9')]){_0x27978a[_0xc40c('0xa9')]=_0x381c9d[_0xc40c('0xa9')];if(_0x27978a[_0xc40c('0xa9')][_0xc40c('0xaa')]){delete _0x27978a[_0xc40c('0xa9')][_0xc40c('0xaa')];}}if(_0x27978a['headers'][_0xc40c('0xab')]){delete _0x27978a[_0xc40c('0xa9')]['content-type'];}return rp(_0x27978a);})[_0xc40c('0x2c')](function(_0x779f6f){if(_0x779f6f){_0x1bc116[_0xc40c('0x27')](_0x779f6f['headers']);logger['info'](_0x779f6f[_0xc40c('0x92')]);return _0x1bc116[_0xc40c('0x20')](_0x779f6f['statusCode'])[_0xc40c('0x32')](_0x779f6f['body']);}else{return _0x1bc116[_0xc40c('0x1f')](0xc8);}})[_0xc40c('0x4b')](handleError(_0x1bc116,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xeae8=['hasOwnProperty','hook','exports','events','../../mysqldb','Plugin','save','remove','emit'];(function(_0x5d9bc3,_0x4d72fd){var _0x772da3=function(_0x1b5bd6){while(--_0x1b5bd6){_0x5d9bc3['push'](_0x5d9bc3['shift']());}};_0x772da3(++_0x4d72fd);}(_0xeae8,0x66));var _0x8eae=function(_0x564813,_0x25e82e){_0x564813=_0x564813-0x0;var _0x1ae46a=_0xeae8[_0x564813];return _0x1ae46a;};'use strict';var EventEmitter=require(_0x8eae('0x0'));var Plugin=require(_0x8eae('0x1'))['db'][_0x8eae('0x2')];var PluginEvents=new EventEmitter();PluginEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x8eae('0x3'),'afterUpdate':'update','afterDestroy':_0x8eae('0x4')};function emitEvent(_0x5f311f){return function(_0x355d48,_0x18cccf,_0x30e4cc){PluginEvents[_0x8eae('0x5')](_0x5f311f+':'+_0x355d48['id'],_0x355d48);PluginEvents[_0x8eae('0x5')](_0x5f311f,_0x355d48);_0x30e4cc(null);};}for(var e in events){if(events[_0x8eae('0x6')](e)){var event=events[e];Plugin[_0x8eae('0x7')](e,emitEvent(event));}}module[_0x8eae('0x8')]=PluginEvents;
\ No newline at end of file
+var _0xc677=['remove','emit','hasOwnProperty','exports','../../mysqldb','Plugin','setMaxListeners','save','update'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0xc677,0x16c));var _0x7c67=function(_0x2641f9,_0x26715f){_0x2641f9=_0x2641f9-0x0;var _0x585741=_0xc677[_0x2641f9];return _0x585741;};'use strict';var EventEmitter=require('events');var Plugin=require(_0x7c67('0x0'))['db'][_0x7c67('0x1')];var PluginEvents=new EventEmitter();PluginEvents[_0x7c67('0x2')](0x0);var events={'afterCreate':_0x7c67('0x3'),'afterUpdate':_0x7c67('0x4'),'afterDestroy':_0x7c67('0x5')};function emitEvent(_0x2e14c5){return function(_0x5a3d34,_0x51560f,_0x566892){PluginEvents['emit'](_0x2e14c5+':'+_0x5a3d34['id'],_0x5a3d34);PluginEvents[_0x7c67('0x6')](_0x2e14c5,_0x5a3d34);_0x566892(null);};}for(var e in events){if(events[_0x7c67('0x7')](e)){var event=events[e];Plugin['hook'](e,emitEvent(event));}}module[_0x7c67('0x8')]=PluginEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x20c9=['lodash','util','../../config/logger','api','moment','bluebird','request-promise','rimraf','../../config/environment','./plugin.attributes','Plugin'];(function(_0x5c2eac,_0x566843){var _0x7f47f9=function(_0x19612c){while(--_0x19612c){_0x5c2eac['push'](_0x5c2eac['shift']());}};_0x7f47f9(++_0x566843);}(_0x20c9,0x108));var _0x920c=function(_0x2ae2ad,_0xac5b0c){_0x2ae2ad=_0x2ae2ad-0x0;var _0x26dbd7=_0x20c9[_0x2ae2ad];return _0x26dbd7;};'use strict';var _=require(_0x920c('0x0'));var util=require(_0x920c('0x1'));var logger=require(_0x920c('0x2'))(_0x920c('0x3'));var moment=require(_0x920c('0x4'));var BPromise=require(_0x920c('0x5'));var rp=require(_0x920c('0x6'));var fs=require('fs');var path=require('path');var rimraf=require(_0x920c('0x7'));var config=require(_0x920c('0x8'));var attributes=require(_0x920c('0x9'));module['exports']=function(_0x23b468,_0x12acf8){return _0x23b468['define'](_0x920c('0xa'),attributes,{'tableName':'plugins','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xc3c2=['bluebird','request-promise','path','rimraf','./plugin.attributes','exports','define','util','../../config/logger','api','moment'];(function(_0x242326,_0x19a73d){var _0xa2fbed=function(_0x3963ca){while(--_0x3963ca){_0x242326['push'](_0x242326['shift']());}};_0xa2fbed(++_0x19a73d);}(_0xc3c2,0x75));var _0x2c3c=function(_0x4d35f9,_0x9cf3f5){_0x4d35f9=_0x4d35f9-0x0;var _0x34afe1=_0xc3c2[_0x4d35f9];return _0x34afe1;};'use strict';var _=require('lodash');var util=require(_0x2c3c('0x0'));var logger=require(_0x2c3c('0x1'))(_0x2c3c('0x2'));var moment=require(_0x2c3c('0x3'));var BPromise=require(_0x2c3c('0x4'));var rp=require(_0x2c3c('0x5'));var fs=require('fs');var path=require(_0x2c3c('0x6'));var rimraf=require(_0x2c3c('0x7'));var config=require('../../config/environment');var attributes=require(_0x2c3c('0x8'));module[_0x2c3c('0x9')]=function(_0x5ceebd,_0x43ad9a){return _0x5ceebd[_0x2c3c('0xa')]('Plugin',attributes,{'tableName':'plugins','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1a3e=['options','raw','debug','lodash','util','moment','bluebird','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','./plugin.socket','then','info','request\x20sent','Plugin,\x20%s,\x20%s,\x20%s','stringify','error','code','Plugin,\x20%s,\x20%s','message','result','catch','CreatePlugin','Plugin','create','body'];(function(_0x43d653,_0x5119bb){var _0x22b710=function(_0x210b7b){while(--_0x210b7b){_0x43d653['push'](_0x43d653['shift']());}};_0x22b710(++_0x5119bb);}(_0x1a3e,0xad));var _0xe1a3=function(_0x505572,_0xeaf84a){_0x505572=_0x505572-0x0;var _0x374cbe=_0x1a3e[_0x505572];return _0x374cbe;};'use strict';var _=require(_0xe1a3('0x0'));var util=require(_0xe1a3('0x1'));var moment=require(_0xe1a3('0x2'));var BPromise=require(_0xe1a3('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0xe1a3('0x4'))['db'];var utils=require(_0xe1a3('0x5'));var logger=require(_0xe1a3('0x6'))(_0xe1a3('0x7'));var config=require('../../config/environment');var jayson=require(_0xe1a3('0x8'));var client=jayson[_0xe1a3('0x9')][_0xe1a3('0xa')]({'port':0x232a});config[_0xe1a3('0xb')]=_[_0xe1a3('0xc')](config['redis'],{'host':_0xe1a3('0xd'),'port':0x18eb});var socket=require(_0xe1a3('0xe'))(new Redis(config[_0xe1a3('0xb')]));require(_0xe1a3('0xf'))['register'](socket);function respondWithRpcPromise(_0x5d5e7e,_0x1c63da,_0x3b53aa){return new BPromise(function(_0x19cc49,_0x37e1f2){return client['request'](_0x5d5e7e,_0x3b53aa)[_0xe1a3('0x10')](function(_0x18af47){logger[_0xe1a3('0x11')]('Plugin,\x20%s,\x20%s',_0x1c63da,_0xe1a3('0x12'));logger['debug'](_0xe1a3('0x13'),_0x1c63da,_0xe1a3('0x12'),JSON[_0xe1a3('0x14')](_0x18af47));if(_0x18af47[_0xe1a3('0x15')]){if(_0x18af47[_0xe1a3('0x15')][_0xe1a3('0x16')]===0x1f4){logger[_0xe1a3('0x15')](_0xe1a3('0x17'),_0x1c63da,_0x18af47['error'][_0xe1a3('0x18')]);return _0x37e1f2(_0x18af47[_0xe1a3('0x15')][_0xe1a3('0x18')]);}logger[_0xe1a3('0x15')](_0xe1a3('0x17'),_0x1c63da,_0x18af47[_0xe1a3('0x15')][_0xe1a3('0x18')]);return _0x19cc49(_0x18af47[_0xe1a3('0x15')][_0xe1a3('0x18')]);}else{logger[_0xe1a3('0x11')](_0xe1a3('0x17'),_0x1c63da,_0xe1a3('0x12'));_0x19cc49(_0x18af47[_0xe1a3('0x19')][_0xe1a3('0x18')]);}})[_0xe1a3('0x1a')](function(_0x1792ca){logger[_0xe1a3('0x15')]('Plugin,\x20%s,\x20%s',_0x1c63da,_0x1792ca);_0x37e1f2(_0x1792ca);});});}exports[_0xe1a3('0x1b')]=function(_0x2e0b28){var _0x494cc0=this;return new Promise(function(_0x66e08c,_0x3adf78){return db[_0xe1a3('0x1c')][_0xe1a3('0x1d')](_0x2e0b28[_0xe1a3('0x1e')],{'raw':_0x2e0b28['options']?_0x2e0b28[_0xe1a3('0x1f')][_0xe1a3('0x20')]===undefined?!![]:![]:!![]})[_0xe1a3('0x10')](function(_0x479791){logger['info']('CreatePlugin',_0x2e0b28);logger[_0xe1a3('0x21')](_0xe1a3('0x1b'),_0x2e0b28,JSON['stringify'](_0x479791));_0x66e08c(_0x479791);})[_0xe1a3('0x1a')](function(_0x117d99){logger[_0xe1a3('0x15')](_0xe1a3('0x1b'),_0x117d99[_0xe1a3('0x18')],_0x2e0b28);_0x3adf78(_0x494cc0['error'](0x1f4,_0x117d99[_0xe1a3('0x18')]));});});};
\ No newline at end of file
+var _0xef74=['socket.io-emitter','./plugin.socket','register','then','info','Plugin,\x20%s,\x20%s,\x20%s','request\x20sent','error','Plugin,\x20%s,\x20%s','message','result','catch','CreatePlugin','Plugin','create','options','raw','lodash','util','moment','bluebird','ioredis','../../mysqldb','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','localhost'];(function(_0x4e098c,_0x457cec){var _0x207b16=function(_0x3cbc44){while(--_0x3cbc44){_0x4e098c['push'](_0x4e098c['shift']());}};_0x207b16(++_0x457cec);}(_0xef74,0x8d));var _0x4ef7=function(_0x20ef64,_0x4a8fe9){_0x20ef64=_0x20ef64-0x0;var _0x3707d8=_0xef74[_0x20ef64];return _0x3707d8;};'use strict';var _=require(_0x4ef7('0x0'));var util=require(_0x4ef7('0x1'));var moment=require(_0x4ef7('0x2'));var BPromise=require(_0x4ef7('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x4ef7('0x4'));var db=require(_0x4ef7('0x5'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0x4ef7('0x6'));var config=require(_0x4ef7('0x7'));var jayson=require(_0x4ef7('0x8'));var client=jayson[_0x4ef7('0x9')][_0x4ef7('0xa')]({'port':0x232a});config[_0x4ef7('0xb')]=_[_0x4ef7('0xc')](config[_0x4ef7('0xb')],{'host':_0x4ef7('0xd'),'port':0x18eb});var socket=require(_0x4ef7('0xe'))(new Redis(config['redis']));require(_0x4ef7('0xf'))[_0x4ef7('0x10')](socket);function respondWithRpcPromise(_0xbc780a,_0x3852f9,_0x1fce73){return new BPromise(function(_0x2104bd,_0x3d1f08){return client['request'](_0xbc780a,_0x1fce73)[_0x4ef7('0x11')](function(_0x6c06c){logger[_0x4ef7('0x12')]('Plugin,\x20%s,\x20%s',_0x3852f9,'request\x20sent');logger['debug'](_0x4ef7('0x13'),_0x3852f9,_0x4ef7('0x14'),JSON['stringify'](_0x6c06c));if(_0x6c06c[_0x4ef7('0x15')]){if(_0x6c06c[_0x4ef7('0x15')]['code']===0x1f4){logger[_0x4ef7('0x15')](_0x4ef7('0x16'),_0x3852f9,_0x6c06c['error']['message']);return _0x3d1f08(_0x6c06c[_0x4ef7('0x15')][_0x4ef7('0x17')]);}logger[_0x4ef7('0x15')](_0x4ef7('0x16'),_0x3852f9,_0x6c06c[_0x4ef7('0x15')][_0x4ef7('0x17')]);return _0x2104bd(_0x6c06c[_0x4ef7('0x15')][_0x4ef7('0x17')]);}else{logger[_0x4ef7('0x12')]('Plugin,\x20%s,\x20%s',_0x3852f9,_0x4ef7('0x14'));_0x2104bd(_0x6c06c[_0x4ef7('0x18')][_0x4ef7('0x17')]);}})[_0x4ef7('0x19')](function(_0x40fd77){logger[_0x4ef7('0x15')](_0x4ef7('0x16'),_0x3852f9,_0x40fd77);_0x3d1f08(_0x40fd77);});});}exports[_0x4ef7('0x1a')]=function(_0x523f05){var _0x43f73b=this;return new Promise(function(_0x4faff3,_0x34745d){return db[_0x4ef7('0x1b')][_0x4ef7('0x1c')](_0x523f05['body'],{'raw':_0x523f05[_0x4ef7('0x1d')]?_0x523f05[_0x4ef7('0x1d')][_0x4ef7('0x1e')]===undefined?!![]:![]:!![]})['then'](function(_0x20f65d){logger[_0x4ef7('0x12')]('CreatePlugin',_0x523f05);logger['debug'](_0x4ef7('0x1a'),_0x523f05,JSON['stringify'](_0x20f65d));_0x4faff3(_0x20f65d);})[_0x4ef7('0x19')](function(_0x5f2370){logger['error'](_0x4ef7('0x1a'),_0x5f2370[_0x4ef7('0x17')],_0x523f05);_0x34745d(_0x43f73b['error'](0x1f4,_0x5f2370[_0x4ef7('0x17')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa572=['length','plugin:','remove','update','emit','removeListener'];(function(_0x57d500,_0xf52c67){var _0x142c14=function(_0x4b2055){while(--_0x4b2055){_0x57d500['push'](_0x57d500['shift']());}};_0x142c14(++_0xf52c67);}(_0xa572,0x104));var _0x2a57=function(_0x368bba,_0x1f625b){_0x368bba=_0x368bba-0x0;var _0x409f8f=_0xa572[_0x368bba];return _0x409f8f;};'use strict';var PluginEvents=require('./plugin.events');var events=['save',_0x2a57('0x0'),_0x2a57('0x1')];function createListener(_0x49b806,_0x2cf53a){return function(_0x3f14e8){_0x2cf53a[_0x2a57('0x2')](_0x49b806,_0x3f14e8);};}function removeListener(_0x31e7b8,_0x36e42f){return function(){PluginEvents[_0x2a57('0x3')](_0x31e7b8,_0x36e42f);};}exports['register']=function(_0x249118){for(var _0x42f9e3=0x0,_0x4dcb3d=events[_0x2a57('0x4')];_0x42f9e3<_0x4dcb3d;_0x42f9e3++){var _0x4396a7=events[_0x42f9e3];var _0x3cfef1=createListener(_0x2a57('0x5')+_0x4396a7,_0x249118);PluginEvents['on'](_0x4396a7,_0x3cfef1);}};
\ No newline at end of file
+var _0x8f05=['register','length','plugin:','./plugin.events','save','remove','update','removeListener'];(function(_0x307d86,_0x9264f2){var _0x361745=function(_0x1b64e1){while(--_0x1b64e1){_0x307d86['push'](_0x307d86['shift']());}};_0x361745(++_0x9264f2);}(_0x8f05,0x14b));var _0x58f0=function(_0x250dd0,_0x14539f){_0x250dd0=_0x250dd0-0x0;var _0x3cf3c1=_0x8f05[_0x250dd0];return _0x3cf3c1;};'use strict';var PluginEvents=require(_0x58f0('0x0'));var events=[_0x58f0('0x1'),_0x58f0('0x2'),_0x58f0('0x3')];function createListener(_0x26d21d,_0x3ceeee){return function(_0x1be5cb){_0x3ceeee['emit'](_0x26d21d,_0x1be5cb);};}function removeListener(_0x129805,_0x442e4b){return function(){PluginEvents[_0x58f0('0x4')](_0x129805,_0x442e4b);};}exports[_0x58f0('0x5')]=function(_0x21a1e5){for(var _0x3b1612=0x0,_0x2a5e01=events[_0x58f0('0x6')];_0x3b1612<_0x2a5e01;_0x3b1612++){var _0x388797=events[_0x3b1612];var _0x351a01=createListener(_0x58f0('0x7')+_0x388797,_0x21a1e5);PluginEvents['on'](_0x388797,_0x351a01);}};
\ 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(_0x560384,_0x3a5270){var _0x8dd816=function(_0x540c64){while(--_0x540c64){_0x560384['push'](_0x560384['shift']());}};_0x8dd816(++_0x3a5270);}(_0xa9e0,0x123));var _0x0a9e=function(_0x2160a9,_0x3cbd9e){_0x2160a9=_0x2160a9-0x0;var _0xa88cf7=_0xa9e0[_0x2160a9];return _0xa88cf7;};'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(_0x112c76,_0x5baa35){var _0xe1314=function(_0x5065dc){while(--_0x5065dc){_0x112c76['push'](_0x112c76['shift']());}};_0xe1314(++_0x5baa35);}(_0xa9e0,0x123));var _0x0a9e=function(_0x1ddedd,_0x485606){_0x1ddedd=_0x1ddedd-0x0;var _0xa3e1ac=_0xa9e0[_0x1ddedd];return _0xa3e1ac;};'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 _0xc788=['body','script','join','../../files/plugins','chdir','dirname','start','dump','send','update','stop','hasOwnProperty','Unknown\x20status','params','delete','Unknown\x20id','lodash','../../config/pm2','../../config/logger','child_process','exec','bluebird','sendStatus','status','error','stack','name','info','index','list','then','reject','motion2','catch','show','describe'];(function(_0x5aaf95,_0x5e8f9b){var _0x1eb0c5=function(_0x593d43){while(--_0x593d43){_0x5aaf95['push'](_0x5aaf95['shift']());}};_0x1eb0c5(++_0x5e8f9b);}(_0xc788,0xc4));var _0x8c78=function(_0x4ef7bc,_0x1e8207){_0x4ef7bc=_0x4ef7bc-0x0;var _0x30a74f=_0xc788[_0x4ef7bc];return _0x30a74f;};'use strict';var _=require(_0x8c78('0x0'));var pm2=require(_0x8c78('0x1'));var logger=require(_0x8c78('0x2'))('api');var path=require('path');var exec=require(_0x8c78('0x3'))[_0x8c78('0x4')];var BPromise=require(_0x8c78('0x5'));function handleEntityNotFound(_0x1d0670,_0x386f0a){return function(_0x5498f9){if(!_0x5498f9){_0x1d0670[_0x8c78('0x6')](0x194);;}return _0x5498f9;};}function respondWithResult(_0x4555da,_0x329152){_0x329152=_0x329152||0xc8;return function(_0x1ac27f){if(_0x1ac27f){return _0x4555da[_0x8c78('0x7')](_0x329152)['json'](_0x1ac27f);}return null;};}function handleError(_0x247188,_0x299d9d){_0x299d9d=_0x299d9d||0x1f4;return function(_0x9bc075){logger[_0x8c78('0x8')](_0x9bc075[_0x8c78('0x9')]);if(_0x9bc075[_0x8c78('0xa')]){delete _0x9bc075['name'];}_0x247188[_0x8c78('0x7')](_0x299d9d)['send'](_0x9bc075);};}function execChildProcess(){return new BPromise(function(_0x3d55f0,_0x45935a){exec('npm\x20install',function(_0x1a05a7,_0x95e78e,_0x5ee642){logger[_0x8c78('0xb')](_0x95e78e);logger['info'](_0x5ee642);if(_0x1a05a7){logger['error'](_0x1a05a7);return _0x45935a(_0x1a05a7);}return _0x3d55f0(_0x95e78e);});});}exports[_0x8c78('0xc')]=function(_0x1b1d0e,_0x26178c){return pm2[_0x8c78('0xd')]()[_0x8c78('0xe')](function(_0x3d1306){if(_0x3d1306){var _0xe5f8ae=_[_0x8c78('0xf')](_0x3d1306,function(_0x2f44af){return _0x2f44af[_0x8c78('0xa')]==='express'||_0x2f44af[_0x8c78('0xa')]===_0x8c78('0x10');});return{'rows':_0xe5f8ae,'count':_0xe5f8ae['length']};}return null;})[_0x8c78('0xe')](respondWithResult(_0x26178c,null))[_0x8c78('0x11')](handleError(_0x26178c,null));};exports[_0x8c78('0x12')]=function(_0x23824e,_0x2a982c){return pm2[_0x8c78('0x13')](_0x23824e['params']['id'])['then'](respondWithResult(_0x2a982c,null))[_0x8c78('0xe')](handleEntityNotFound(_0x2a982c,null))['catch'](handleError(_0x2a982c,null));};exports['create']=function(_0xece4f0,_0x56c191){if(_0xece4f0[_0x8c78('0x14')][_0x8c78('0xa')]&&_0xece4f0['body'][_0x8c78('0x15')]){var _0x5b111b=path[_0x8c78('0x16')](__dirname,_0x8c78('0x17'),_0xece4f0['body'][_0x8c78('0x15')]);var _0x188cc3=process['cwd']();process[_0x8c78('0x18')](path[_0x8c78('0x19')](_0x5b111b));return execChildProcess()[_0x8c78('0xe')](function(_0x9581c6){process[_0x8c78('0x18')](_0x188cc3);return pm2[_0x8c78('0x1a')]({'name':_0xece4f0[_0x8c78('0x14')][_0x8c78('0xa')],'script':_0x5b111b});})[_0x8c78('0xe')](function(_0x4a7d20){pm2[_0x8c78('0x1b')]();return _0x4a7d20[0x0];})[_0x8c78('0xe')](respondWithResult(_0x56c191,0xc9))[_0x8c78('0x11')](handleError(_0x56c191,null));}else{return _0x56c191['status'](0x1f4)[_0x8c78('0x1c')]({'message':'Missing\x20name\x20and/or\x20path'});}};exports[_0x8c78('0x1d')]=function(_0x24f9a7,_0x8d9ff9){if(_0x24f9a7['body']['id']){delete _0x24f9a7[_0x8c78('0x14')]['id'];}var _0x2568d5={'online':'restart','stopped':_0x8c78('0x1e')};if(_0x2568d5[_0x8c78('0x1f')](_0x24f9a7[_0x8c78('0x14')][_0x8c78('0x7')])){return pm2[_0x2568d5[_0x24f9a7[_0x8c78('0x14')][_0x8c78('0x7')]]](_0x24f9a7['params']['id'])[_0x8c78('0xe')](respondWithResult(_0x8d9ff9,0xc8))['catch'](handleError(_0x8d9ff9,null));}else{return _0x8d9ff9[_0x8c78('0x7')](0x1f4)[_0x8c78('0x1c')]({'message':_0x8c78('0x20')});}};exports['destroy']=function(_0x1f1a0c,_0x3816d2){if(_0x1f1a0c['body']['id']){delete _0x1f1a0c[_0x8c78('0x14')]['id'];}if(_0x1f1a0c[_0x8c78('0x21')]['id']){return pm2[_0x8c78('0x22')](_0x1f1a0c['params']['id'])[_0x8c78('0xe')](function(_0x63307e){pm2[_0x8c78('0x1b')]();return _0x63307e[0x0];})['then'](respondWithResult(_0x3816d2,null))[_0x8c78('0x11')](handleError(_0x3816d2,null));}else{return _0x3816d2[_0x8c78('0x7')](0x1f4)['send']({'message':_0x8c78('0x23')});}};
\ No newline at end of file
+var _0x68fc=['join','../../files/plugins','script','cwd','chdir','dirname','start','dump','Missing\x20name\x20and/or\x20path','restart','stop','Unknown\x20status','destroy','lodash','../../config/pm2','../../config/logger','child_process','bluebird','sendStatus','json','error','stack','name','status','send','npm\x20install','info','index','then','reject','express','motion2','catch','show','describe','params','create','body'];(function(_0x391b5d,_0x45a753){var _0x5e6ff1=function(_0x420ce9){while(--_0x420ce9){_0x391b5d['push'](_0x391b5d['shift']());}};_0x5e6ff1(++_0x45a753);}(_0x68fc,0xa5));var _0xc68f=function(_0x260a9a,_0x39861f){_0x260a9a=_0x260a9a-0x0;var _0x5b59e5=_0x68fc[_0x260a9a];return _0x5b59e5;};'use strict';var _=require(_0xc68f('0x0'));var pm2=require(_0xc68f('0x1'));var logger=require(_0xc68f('0x2'))('api');var path=require('path');var exec=require(_0xc68f('0x3'))['exec'];var BPromise=require(_0xc68f('0x4'));function handleEntityNotFound(_0x593648,_0x5899ea){return function(_0x3b2744){if(!_0x3b2744){_0x593648[_0xc68f('0x5')](0x194);;}return _0x3b2744;};}function respondWithResult(_0x1c6df9,_0x363cdf){_0x363cdf=_0x363cdf||0xc8;return function(_0x4fcce4){if(_0x4fcce4){return _0x1c6df9['status'](_0x363cdf)[_0xc68f('0x6')](_0x4fcce4);}return null;};}function handleError(_0x2bf3fd,_0x370977){_0x370977=_0x370977||0x1f4;return function(_0x17aaaa){logger[_0xc68f('0x7')](_0x17aaaa[_0xc68f('0x8')]);if(_0x17aaaa[_0xc68f('0x9')]){delete _0x17aaaa[_0xc68f('0x9')];}_0x2bf3fd[_0xc68f('0xa')](_0x370977)[_0xc68f('0xb')](_0x17aaaa);};}function execChildProcess(){return new BPromise(function(_0x5777f9,_0x3b1a43){exec(_0xc68f('0xc'),function(_0x1f2758,_0x1d4ae4,_0x2f0694){logger[_0xc68f('0xd')](_0x1d4ae4);logger[_0xc68f('0xd')](_0x2f0694);if(_0x1f2758){logger[_0xc68f('0x7')](_0x1f2758);return _0x3b1a43(_0x1f2758);}return _0x5777f9(_0x1d4ae4);});});}exports[_0xc68f('0xe')]=function(_0x4112df,_0x31fb86){return pm2['list']()[_0xc68f('0xf')](function(_0x90ccbd){if(_0x90ccbd){var _0x2b1d30=_[_0xc68f('0x10')](_0x90ccbd,function(_0x286ed4){return _0x286ed4[_0xc68f('0x9')]===_0xc68f('0x11')||_0x286ed4[_0xc68f('0x9')]===_0xc68f('0x12');});return{'rows':_0x2b1d30,'count':_0x2b1d30['length']};}return null;})['then'](respondWithResult(_0x31fb86,null))[_0xc68f('0x13')](handleError(_0x31fb86,null));};exports[_0xc68f('0x14')]=function(_0x171eea,_0x3714f7){return pm2[_0xc68f('0x15')](_0x171eea[_0xc68f('0x16')]['id'])['then'](respondWithResult(_0x3714f7,null))[_0xc68f('0xf')](handleEntityNotFound(_0x3714f7,null))[_0xc68f('0x13')](handleError(_0x3714f7,null));};exports[_0xc68f('0x17')]=function(_0x2c058c,_0x5068fd){if(_0x2c058c[_0xc68f('0x18')][_0xc68f('0x9')]&&_0x2c058c[_0xc68f('0x18')]['script']){var _0xcc11a3=path[_0xc68f('0x19')](__dirname,_0xc68f('0x1a'),_0x2c058c['body'][_0xc68f('0x1b')]);var _0x1daac5=process[_0xc68f('0x1c')]();process[_0xc68f('0x1d')](path[_0xc68f('0x1e')](_0xcc11a3));return execChildProcess()[_0xc68f('0xf')](function(_0x2412a9){process['chdir'](_0x1daac5);return pm2[_0xc68f('0x1f')]({'name':_0x2c058c[_0xc68f('0x18')]['name'],'script':_0xcc11a3});})[_0xc68f('0xf')](function(_0x8399e6){pm2[_0xc68f('0x20')]();return _0x8399e6[0x0];})[_0xc68f('0xf')](respondWithResult(_0x5068fd,0xc9))[_0xc68f('0x13')](handleError(_0x5068fd,null));}else{return _0x5068fd['status'](0x1f4)[_0xc68f('0xb')]({'message':_0xc68f('0x21')});}};exports['update']=function(_0x38b935,_0x27e5b8){if(_0x38b935['body']['id']){delete _0x38b935[_0xc68f('0x18')]['id'];}var _0xdde47e={'online':_0xc68f('0x22'),'stopped':_0xc68f('0x23')};if(_0xdde47e['hasOwnProperty'](_0x38b935[_0xc68f('0x18')][_0xc68f('0xa')])){return pm2[_0xdde47e[_0x38b935[_0xc68f('0x18')][_0xc68f('0xa')]]](_0x38b935[_0xc68f('0x16')]['id'])[_0xc68f('0xf')](respondWithResult(_0x27e5b8,0xc8))[_0xc68f('0x13')](handleError(_0x27e5b8,null));}else{return _0x27e5b8[_0xc68f('0xa')](0x1f4)['send']({'message':_0xc68f('0x24')});}};exports[_0xc68f('0x25')]=function(_0x4b64da,_0x323677){if(_0x4b64da[_0xc68f('0x18')]['id']){delete _0x4b64da[_0xc68f('0x18')]['id'];}if(_0x4b64da[_0xc68f('0x16')]['id']){return pm2['delete'](_0x4b64da[_0xc68f('0x16')]['id'])[_0xc68f('0xf')](function(_0x56a82e){pm2[_0xc68f('0x20')]();return _0x56a82e[0x0];})[_0xc68f('0xf')](respondWithResult(_0x323677,null))[_0xc68f('0x13')](handleError(_0x323677,null));}else{return _0x323677[_0xc68f('0xa')](0x1f4)[_0xc68f('0xb')]({'message':'Unknown\x20id'});}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xed20=['../../components/auth/service','get','/queues','isAuthenticated','getQueues','exports','express','Router'];(function(_0x35a2c4,_0x4522a2){var _0x5766dd=function(_0x221b74){while(--_0x221b74){_0x35a2c4['push'](_0x35a2c4['shift']());}};_0x5766dd(++_0x4522a2);}(_0xed20,0xce));var _0x0ed2=function(_0x2a569d,_0x20710d){_0x2a569d=_0x2a569d-0x0;var _0x46e56c=_0xed20[_0x2a569d];return _0x46e56c;};'use strict';var express=require(_0x0ed2('0x0'));var router=express[_0x0ed2('0x1')]();var auth=require(_0x0ed2('0x2'));var controller=require('./realtime.controller');router[_0x0ed2('0x3')](_0x0ed2('0x4'),auth[_0x0ed2('0x5')](),controller[_0x0ed2('0x6')]);module[_0x0ed2('0x7')]=router;
\ No newline at end of file
+var _0xde1a=['get','/queues','isAuthenticated','getQueues','exports','Router','../../components/auth/service','./realtime.controller'];(function(_0x243b2f,_0x30aa15){var _0xcb3c2d=function(_0x213bb2){while(--_0x213bb2){_0x243b2f['push'](_0x243b2f['shift']());}};_0xcb3c2d(++_0x30aa15);}(_0xde1a,0xfd));var _0xade1=function(_0x3a3fc6,_0x493a6a){_0x3a3fc6=_0x3a3fc6-0x0;var _0x200f78=_0xde1a[_0x3a3fc6];return _0x200f78;};'use strict';var express=require('express');var router=express[_0xade1('0x0')]();var auth=require(_0xade1('0x1'));var controller=require(_0xade1('0x2'));router[_0xade1('0x3')](_0xade1('0x4'),auth[_0xade1('0x5')](),controller[_0xade1('0x6')]);module[_0xade1('0x7')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8ca9=['name','send','getQueues','mail','chat','sms','openchannel','whatsapp','voice','resolve','then','query','channel','includes','toLowerCase','startCase','Queue','rawAttributes','type','getOptions','user','role','userProfileId','outbound','QueueCampaigns','Queues','filter','getResources','findAndCountAll','request','available','talking','paused','push','pTalking','message','dialActive','dialMethod','Trunk','startPredictive','erlangCalls','erlangCallToSecond','erlangBusyFactor','dialPredictiveInterval','dialPredictiveIntervalMaxThreshold','predictiveIntervalAvailable','predictiveIntervalTotalCalls','predictiveIntervalAnsweredCalls','predictiveIntervalDroppedCallsCallersExit','predictiveIntervalAvgHoldtime','predictiveIntervalAvgTalktime','map','loggedInDb','loggedIn','waiting','originated','agents','find','rows','merge','pick','online','getMembers','length','UserId','User','Pause','findAll','QueueId','agent','util','lodash','jayson/promise','../../components/parsers/qs','../../config/logger','api','../../mysqldb','client','offset','undefined','limit','count','status','set','Content-Range','error'];(function(_0x41aeaa,_0x4fb8d1){var _0x4a30e5=function(_0x3ae1b0){while(--_0x3ae1b0){_0x41aeaa['push'](_0x41aeaa['shift']());}};_0x4a30e5(++_0x4fb8d1);}(_0x8ca9,0x9c));var _0x98ca=function(_0x4481e7,_0x15e72d){_0x4481e7=_0x4481e7-0x0;var _0x1fadef=_0x8ca9[_0x4481e7];return _0x1fadef;};'use strict';var util=require(_0x98ca('0x0'));var _=require(_0x98ca('0x1'));var jayson=require(_0x98ca('0x2'));var qs=require(_0x98ca('0x3'));var logger=require(_0x98ca('0x4'))(_0x98ca('0x5'));var db=require(_0x98ca('0x6'))['db'];var client=jayson['client']['http']({'port':0x232a});var routingClient=jayson[_0x98ca('0x7')]['http']({'port':0x232c});function respondWithFilteredResult(_0x442519,_0x48415d){return function(_0x219619){if(_0x219619){var _0xca4097=typeof _0x48415d[_0x98ca('0x8')]===_0x98ca('0x9')&&typeof _0x48415d[_0x98ca('0xa')]===_0x98ca('0x9');var _0x162bd0=_0x219619[_0x98ca('0xb')];var _0x277c29=_0xca4097?0x0:_0x48415d[_0x98ca('0x8')];var _0x572858=_0xca4097?_0x219619[_0x98ca('0xb')]:_0x48415d[_0x98ca('0x8')]+_0x48415d[_0x98ca('0xa')];var _0x220a97;if(_0x572858>=_0x162bd0){_0x572858=_0x162bd0;_0x220a97=0xc8;}else{_0x220a97=0xce;}_0x442519[_0x98ca('0xc')](_0x220a97);return _0x442519[_0x98ca('0xd')](_0x98ca('0xe'),_0x277c29+'-'+_0x572858+'/'+_0x162bd0)['json'](_0x219619);}return null;};}function handleError(_0x16221a,_0x44b65b){_0x44b65b=_0x44b65b||0x1f4;return function(_0xba3887){logger[_0x98ca('0xf')](_0xba3887['stack']);if(_0xba3887[_0x98ca('0x10')]){delete _0xba3887[_0x98ca('0x10')];}_0x16221a[_0x98ca('0xc')](_0x44b65b)[_0x98ca('0x11')](_0xba3887);};}exports[_0x98ca('0x12')]=function(_0x1f7590,_0x58d07a){var _0x4940ca=[_0x98ca('0x13'),_0x98ca('0x14'),_0x98ca('0x15'),_0x98ca('0x16'),'fax',_0x98ca('0x17'),_0x98ca('0x18')];var _0xe9f8ad={'count':0x0,'rows':[]},_0x1ce43a={},_0x4523bb;Promise[_0x98ca('0x19')]()[_0x98ca('0x1a')](function(){if(_0x1f7590[_0x98ca('0x1b')][_0x98ca('0x1c')]){if(!_[_0x98ca('0x1d')](_0x4940ca,_0x1f7590[_0x98ca('0x1b')]['channel'][_0x98ca('0x1e')]()))throw new Error('Invalid\x20channel');_0x4523bb=_0x1f7590[_0x98ca('0x1b')][_0x98ca('0x1c')]['toLowerCase']();}var _0x5ca905=_[_0x98ca('0x1f')](_0x4523bb)+_0x98ca('0x20');var _0x130544=_['map'](db[_0x5ca905][_0x98ca('0x21')],function(_0xc23332){return{'name':_0xc23332['fieldName'],'type':_0xc23332[_0x98ca('0x22')]['key']};});_0x1ce43a=qs[_0x98ca('0x23')](_0x130544,_0x1f7590);if(_0x1f7590[_0x98ca('0x24')][_0x98ca('0x25')]===_0x98ca('0x24')){var _0x8d669d={'params':{'id':_0x1f7590[_0x98ca('0x24')][_0x98ca('0x26')]},'query':{'section':_0x4523bb==='voice'&&_0x1f7590[_0x98ca('0x1b')]['type']===_0x98ca('0x27')?_0x98ca('0x28'):_['startCase'](_0x4523bb)+_0x98ca('0x29'),'type':_0x1f7590['query'][_0x98ca('0x22')],'nolimit':!![],'sort':'name','filter':_0x1f7590['query'][_0x98ca('0x2a')]}};return db['UserProfile'][_0x98ca('0x2b')](_0x8d669d);}return db[_0x5ca905][_0x98ca('0x2c')](_0x1ce43a);})[_0x98ca('0x1a')](function(_0x21a12a){_0xe9f8ad[_0x98ca('0xb')]=_0x21a12a[_0x98ca('0xb')];var _0x11389a=_0x4523bb===_0x98ca('0x18')?client:routingClient;return _0x11389a[_0x98ca('0x2d')](_['startCase'](_0x4523bb)+_0x98ca('0x29'),_0x1f7590)['then'](function(_0xb873c5){if(_0xb873c5[_0x98ca('0xf')])throw new Error(util['format']('Unable\x20to\x20retrieve\x20RPC\x20%s\x20queues',_0x4523bb));var _0x5adf7d=_0xb873c5['result'];var _0x3990d7=['loggedIn',_0x98ca('0x2e'),'waiting',_0x98ca('0x2f'),_0x98ca('0x30')];if(_0x4523bb==='voice'&&_0x1f7590[_0x98ca('0x1b')][_0x98ca('0x22')]==='outbound'){_0x3990d7[_0x98ca('0x31')](_0x98ca('0x32'),'originated',_0x98ca('0x33'),_0x98ca('0x34'),_0x98ca('0x35'),_0x98ca('0x36'),_0x98ca('0x37'),'startProgressive',_0x98ca('0x38'),_0x98ca('0x39'),'erlangAbandonmentRate',_0x98ca('0x3a'),_0x98ca('0x3b'),_0x98ca('0x3c'),'dialPredictiveIntervalMinThreshold',_0x98ca('0x3d'),_0x98ca('0x3e'),_0x98ca('0x3f'),'predictiveIntervalDroppedCallsTimeout',_0x98ca('0x40'),_0x98ca('0x41'),_0x98ca('0x42'));}var _0x48be6c=_0x21a12a['rows'][_0x98ca('0x43')](function(_0xe77d02){var _0x3b13f9=_0xe77d02['get']({'plain':!![]});_0x3b13f9[_0x98ca('0x30')]=0x0;_0x3b13f9[_0x98ca('0x44')]=0x0;_0x3b13f9[_0x98ca('0x45')]=0x0;_0x3b13f9['available']=0x0;_0x3b13f9[_0x98ca('0x30')]=0x0;_0x3b13f9[_0x98ca('0x46')]=0x0;if(_0x4523bb===_0x98ca('0x18')){_0x3b13f9[_0x98ca('0x2f')]=0x0;if(_0x1f7590[_0x98ca('0x1b')]['type']==='outbound'){_0x3b13f9['pTalking']=0x0;_0x3b13f9[_0x98ca('0x47')]=0x0;}}_0x3b13f9[_0x98ca('0x48')]=[];var _0x397de0=_[_0x98ca('0x49')](_0x5adf7d[_0x98ca('0x4a')],['id',_0x3b13f9['id']]);if(_0x397de0)_[_0x98ca('0x4b')](_0x3b13f9,_[_0x98ca('0x4c')](_0x397de0,_0x3990d7));if(_0x4523bb==='voice'){return _0xe77d02['getAgents']({'attributes':['id',_0x98ca('0x10'),_0x98ca('0x4d')],'joinTableAttributes':[],'raw':!![]})[_0x98ca('0x1a')](function(_0x382989){return _0xe77d02[_0x98ca('0x4e')]({'raw':!![]})['then'](function(_0x55161f){for(var _0x5c0d50=0x0;_0x5c0d50<_0x382989[_0x98ca('0x4f')];_0x5c0d50++){var _0x16a6d0=_[_0x98ca('0x49')](_0x55161f,[_0x98ca('0x50'),_0x382989[_0x5c0d50]['id']]);var _0x4ede34={'id':_0x382989[_0x5c0d50]['id'],'name':_0x382989[_0x5c0d50]['name'],'online':Boolean(_0x382989[_0x5c0d50][_0x98ca('0x4d')]),'paused':_0x16a6d0?Boolean(_0x16a6d0[_0x98ca('0x30')]):![]};if(_0x4ede34[_0x98ca('0x4d')])_0x3b13f9[_0x98ca('0x44')]++;if(_0x4ede34[_0x98ca('0x30')])_0x3b13f9[_0x98ca('0x30')]++;_0x3b13f9[_0x98ca('0x48')][_0x98ca('0x31')](_0x4ede34);}return _0x3b13f9;});});}else{var _0x182300=_0x98ca('0x51')+_[_0x98ca('0x1f')](_0x4523bb)+'Queue';var _0x385e86=_0x4523bb+_0x98ca('0x52');return db[_0x182300][_0x98ca('0x53')]({'where':{[_[_0x98ca('0x1f')](_0x4523bb)+_0x98ca('0x54')]:_0xe77d02['id']},'raw':!![]})[_0x98ca('0x1a')](function(_0x167264){return db[_0x98ca('0x51')][_0x98ca('0x53')]({'attributes':['id','name',_0x98ca('0x4d'),_0x385e86],'where':{'id':_[_0x98ca('0x43')](_0x167264,'UserId'),'role':_0x98ca('0x55')},'raw':!![]});})['then'](function(_0x3946b3){for(var _0x39f4fd=0x0;_0x39f4fd<_0x3946b3[_0x98ca('0x4f')];_0x39f4fd++){var _0x1dbf62={'id':_0x3946b3[_0x39f4fd]['id'],'name':_0x3946b3[_0x39f4fd][_0x98ca('0x10')],'online':Boolean(_0x3946b3[_0x39f4fd][_0x98ca('0x4d')]),'paused':Boolean(_0x3946b3[_0x39f4fd][_0x385e86])};if(_0x1dbf62[_0x98ca('0x4d')])_0x3b13f9[_0x98ca('0x44')]++;if(_0x1dbf62[_0x98ca('0x30')])_0x3b13f9[_0x98ca('0x30')]++;_0x3b13f9[_0x98ca('0x48')][_0x98ca('0x31')](_0x1dbf62);}return _0x3b13f9;});}});return Promise['all'](_0x48be6c);});})[_0x98ca('0x1a')](function(_0x1fa4f8){_0xe9f8ad[_0x98ca('0x4a')]=_0x1fa4f8;return _0xe9f8ad;})[_0x98ca('0x1a')](respondWithFilteredResult(_0x58d07a,_0x1ce43a))['catch'](handleError(_0x58d07a,null));};
\ No newline at end of file
+var _0xf2e3=['fax','whatsapp','voice','resolve','query','channel','includes','toLowerCase','startCase','Queue','rawAttributes','key','user','role','userProfileId','type','QueueCampaigns','Queues','UserProfile','getResources','request','format','result','loggedIn','available','waiting','paused','outbound','push','pTalking','message','dialActive','dialMethod','Trunk','erlangCalls','erlangCallToSecond','erlangAbandonmentRate','erlangBusyFactor','dialPredictiveInterval','dialPredictiveIntervalMaxThreshold','dialPredictiveIntervalMinThreshold','predictiveIntervalAvailable','predictiveIntervalTotalCalls','predictiveIntervalAnsweredCalls','predictiveIntervalDroppedCallsCallersExit','predictiveIntervalAvgHoldtime','predictiveIntervalAvgTalktime','map','get','loggedInDb','talking','agents','rows','merge','pick','online','getMembers','then','length','find','UserId','findAll','QueueId','User','all','catch','util','jayson/promise','../../components/parsers/qs','../../config/logger','api','../../mysqldb','client','http','offset','undefined','limit','count','status','set','Content-Range','error','stack','name','getQueues','mail','chat','sms','openchannel'];(function(_0x4226d6,_0x3864ca){var _0x19655b=function(_0x1d43a1){while(--_0x1d43a1){_0x4226d6['push'](_0x4226d6['shift']());}};_0x19655b(++_0x3864ca);}(_0xf2e3,0x9b));var _0x3f2e=function(_0x2be8c2,_0x14a4b5){_0x2be8c2=_0x2be8c2-0x0;var _0x97f531=_0xf2e3[_0x2be8c2];return _0x97f531;};'use strict';var util=require(_0x3f2e('0x0'));var _=require('lodash');var jayson=require(_0x3f2e('0x1'));var qs=require(_0x3f2e('0x2'));var logger=require(_0x3f2e('0x3'))(_0x3f2e('0x4'));var db=require(_0x3f2e('0x5'))['db'];var client=jayson[_0x3f2e('0x6')][_0x3f2e('0x7')]({'port':0x232a});var routingClient=jayson[_0x3f2e('0x6')][_0x3f2e('0x7')]({'port':0x232c});function respondWithFilteredResult(_0x5f254a,_0x33a3b7){return function(_0xdd6b3e){if(_0xdd6b3e){var _0x3c0864=typeof _0x33a3b7[_0x3f2e('0x8')]===_0x3f2e('0x9')&&typeof _0x33a3b7[_0x3f2e('0xa')]===_0x3f2e('0x9');var _0x434e0c=_0xdd6b3e[_0x3f2e('0xb')];var _0x29a6cc=_0x3c0864?0x0:_0x33a3b7[_0x3f2e('0x8')];var _0x32902a=_0x3c0864?_0xdd6b3e[_0x3f2e('0xb')]:_0x33a3b7[_0x3f2e('0x8')]+_0x33a3b7[_0x3f2e('0xa')];var _0x305861;if(_0x32902a>=_0x434e0c){_0x32902a=_0x434e0c;_0x305861=0xc8;}else{_0x305861=0xce;}_0x5f254a[_0x3f2e('0xc')](_0x305861);return _0x5f254a[_0x3f2e('0xd')](_0x3f2e('0xe'),_0x29a6cc+'-'+_0x32902a+'/'+_0x434e0c)['json'](_0xdd6b3e);}return null;};}function handleError(_0x27c697,_0xaa6ef5){_0xaa6ef5=_0xaa6ef5||0x1f4;return function(_0x5471f9){logger[_0x3f2e('0xf')](_0x5471f9[_0x3f2e('0x10')]);if(_0x5471f9[_0x3f2e('0x11')]){delete _0x5471f9[_0x3f2e('0x11')];}_0x27c697[_0x3f2e('0xc')](_0xaa6ef5)['send'](_0x5471f9);};}exports[_0x3f2e('0x12')]=function(_0xfee068,_0x2d2fac){var _0x4f2e38=[_0x3f2e('0x13'),_0x3f2e('0x14'),_0x3f2e('0x15'),_0x3f2e('0x16'),_0x3f2e('0x17'),_0x3f2e('0x18'),_0x3f2e('0x19')];var _0x155411={'count':0x0,'rows':[]},_0x178283={},_0xc00add;Promise[_0x3f2e('0x1a')]()['then'](function(){if(_0xfee068[_0x3f2e('0x1b')][_0x3f2e('0x1c')]){if(!_[_0x3f2e('0x1d')](_0x4f2e38,_0xfee068[_0x3f2e('0x1b')][_0x3f2e('0x1c')]['toLowerCase']()))throw new Error('Invalid\x20channel');_0xc00add=_0xfee068[_0x3f2e('0x1b')][_0x3f2e('0x1c')][_0x3f2e('0x1e')]();}var _0x2ac500=_[_0x3f2e('0x1f')](_0xc00add)+_0x3f2e('0x20');var _0x552443=_['map'](db[_0x2ac500][_0x3f2e('0x21')],function(_0x37dab2){return{'name':_0x37dab2['fieldName'],'type':_0x37dab2['type'][_0x3f2e('0x22')]};});_0x178283=qs['getOptions'](_0x552443,_0xfee068);if(_0xfee068[_0x3f2e('0x23')][_0x3f2e('0x24')]==='user'){var _0x584169={'params':{'id':_0xfee068['user'][_0x3f2e('0x25')]},'query':{'section':_0xc00add===_0x3f2e('0x19')&&_0xfee068['query'][_0x3f2e('0x26')]==='outbound'?_0x3f2e('0x27'):_['startCase'](_0xc00add)+_0x3f2e('0x28'),'type':_0xfee068[_0x3f2e('0x1b')][_0x3f2e('0x26')],'nolimit':!![],'sort':_0x3f2e('0x11'),'filter':_0xfee068[_0x3f2e('0x1b')]['filter']}};return db[_0x3f2e('0x29')][_0x3f2e('0x2a')](_0x584169);}return db[_0x2ac500]['findAndCountAll'](_0x178283);})['then'](function(_0x2b9fda){_0x155411[_0x3f2e('0xb')]=_0x2b9fda[_0x3f2e('0xb')];var _0x22e6ad=_0xc00add==='voice'?client:routingClient;return _0x22e6ad[_0x3f2e('0x2b')](_[_0x3f2e('0x1f')](_0xc00add)+_0x3f2e('0x28'),_0xfee068)['then'](function(_0x349ed4){if(_0x349ed4[_0x3f2e('0xf')])throw new Error(util[_0x3f2e('0x2c')]('Unable\x20to\x20retrieve\x20RPC\x20%s\x20queues',_0xc00add));var _0x298c77=_0x349ed4[_0x3f2e('0x2d')];var _0x71568e=[_0x3f2e('0x2e'),_0x3f2e('0x2f'),_0x3f2e('0x30'),'talking',_0x3f2e('0x31')];if(_0xc00add===_0x3f2e('0x19')&&_0xfee068[_0x3f2e('0x1b')][_0x3f2e('0x26')]===_0x3f2e('0x32')){_0x71568e[_0x3f2e('0x33')](_0x3f2e('0x34'),'originated',_0x3f2e('0x35'),_0x3f2e('0x36'),_0x3f2e('0x37'),_0x3f2e('0x38'),'startPredictive','startProgressive',_0x3f2e('0x39'),_0x3f2e('0x3a'),_0x3f2e('0x3b'),_0x3f2e('0x3c'),_0x3f2e('0x3d'),_0x3f2e('0x3e'),_0x3f2e('0x3f'),_0x3f2e('0x40'),_0x3f2e('0x41'),_0x3f2e('0x42'),'predictiveIntervalDroppedCallsTimeout',_0x3f2e('0x43'),_0x3f2e('0x44'),_0x3f2e('0x45'));}var _0x2f50a5=_0x2b9fda['rows'][_0x3f2e('0x46')](function(_0x1c7eed){var _0x3f41af=_0x1c7eed[_0x3f2e('0x47')]({'plain':!![]});_0x3f41af[_0x3f2e('0x31')]=0x0;_0x3f41af[_0x3f2e('0x48')]=0x0;_0x3f41af[_0x3f2e('0x2e')]=0x0;_0x3f41af[_0x3f2e('0x2f')]=0x0;_0x3f41af['paused']=0x0;_0x3f41af[_0x3f2e('0x30')]=0x0;if(_0xc00add===_0x3f2e('0x19')){_0x3f41af[_0x3f2e('0x49')]=0x0;if(_0xfee068[_0x3f2e('0x1b')]['type']===_0x3f2e('0x32')){_0x3f41af[_0x3f2e('0x34')]=0x0;_0x3f41af['originated']=0x0;}}_0x3f41af[_0x3f2e('0x4a')]=[];var _0x257314=_['find'](_0x298c77[_0x3f2e('0x4b')],['id',_0x3f41af['id']]);if(_0x257314)_[_0x3f2e('0x4c')](_0x3f41af,_[_0x3f2e('0x4d')](_0x257314,_0x71568e));if(_0xc00add===_0x3f2e('0x19')){return _0x1c7eed['getAgents']({'attributes':['id',_0x3f2e('0x11'),_0x3f2e('0x4e')],'joinTableAttributes':[],'raw':!![]})['then'](function(_0x5a6cbe){return _0x1c7eed[_0x3f2e('0x4f')]({'raw':!![]})[_0x3f2e('0x50')](function(_0xe67d03){for(var _0x5b5dc2=0x0;_0x5b5dc2<_0x5a6cbe[_0x3f2e('0x51')];_0x5b5dc2++){var _0x2c122d=_[_0x3f2e('0x52')](_0xe67d03,[_0x3f2e('0x53'),_0x5a6cbe[_0x5b5dc2]['id']]);var _0x24df56={'id':_0x5a6cbe[_0x5b5dc2]['id'],'name':_0x5a6cbe[_0x5b5dc2][_0x3f2e('0x11')],'online':Boolean(_0x5a6cbe[_0x5b5dc2][_0x3f2e('0x4e')]),'paused':_0x2c122d?Boolean(_0x2c122d[_0x3f2e('0x31')]):![]};if(_0x24df56[_0x3f2e('0x4e')])_0x3f41af[_0x3f2e('0x48')]++;if(_0x24df56['paused'])_0x3f41af['paused']++;_0x3f41af[_0x3f2e('0x4a')][_0x3f2e('0x33')](_0x24df56);}return _0x3f41af;});});}else{var _0x564ae3='User'+_[_0x3f2e('0x1f')](_0xc00add)+_0x3f2e('0x20');var _0x367282=_0xc00add+'Pause';return db[_0x564ae3][_0x3f2e('0x54')]({'where':{[_[_0x3f2e('0x1f')](_0xc00add)+_0x3f2e('0x55')]:_0x1c7eed['id']},'raw':!![]})['then'](function(_0x155fec){return db[_0x3f2e('0x56')][_0x3f2e('0x54')]({'attributes':['id','name',_0x3f2e('0x4e'),_0x367282],'where':{'id':_[_0x3f2e('0x46')](_0x155fec,_0x3f2e('0x53')),'role':'agent'},'raw':!![]});})[_0x3f2e('0x50')](function(_0x568dfc){for(var _0x3dc995=0x0;_0x3dc995<_0x568dfc['length'];_0x3dc995++){var _0x5b0419={'id':_0x568dfc[_0x3dc995]['id'],'name':_0x568dfc[_0x3dc995][_0x3f2e('0x11')],'online':Boolean(_0x568dfc[_0x3dc995][_0x3f2e('0x4e')]),'paused':Boolean(_0x568dfc[_0x3dc995][_0x367282])};if(_0x5b0419[_0x3f2e('0x4e')])_0x3f41af[_0x3f2e('0x48')]++;if(_0x5b0419[_0x3f2e('0x31')])_0x3f41af['paused']++;_0x3f41af['agents'][_0x3f2e('0x33')](_0x5b0419);}return _0x3f41af;});}});return Promise[_0x3f2e('0x57')](_0x2f50a5);});})[_0x3f2e('0x50')](function(_0x19bcea){_0x155411[_0x3f2e('0x4b')]=_0x19bcea;return _0x155411;})[_0x3f2e('0x50')](respondWithFilteredResult(_0x2d2fac,_0x178283))[_0x3f2e('0x58')](handleError(_0x2d2fac,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9c44=['express','Router','fs-extra','../../components/auth/service','exports','path','connect-timeout'];(function(_0x86bf72,_0x3bb497){var _0x4e8131=function(_0x3f4cfe){while(--_0x3f4cfe){_0x86bf72['push'](_0x86bf72['shift']());}};_0x4e8131(++_0x3bb497);}(_0x9c44,0x178));var _0x49c4=function(_0x4fde08,_0x463a36){_0x4fde08=_0x4fde08-0x0;var _0x12e725=_0x9c44[_0x4fde08];return _0x12e725;};'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
+var _0xedd9=['util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','exports'];(function(_0x5cbc6f,_0x2a25bf){var _0x2ee47c=function(_0x3f8b14){while(--_0x3f8b14){_0x5cbc6f['push'](_0x5cbc6f['shift']());}};_0x2ee47c(++_0x2a25bf);}(_0xedd9,0xfc));var _0x9edd=function(_0x3975d9,_0x2913f4){_0x3975d9=_0x3975d9-0x0;var _0x115b33=_0xedd9[_0x3975d9];return _0x115b33;};'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');module[_0x9edd('0x8')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6f7b=['exports','INTEGER','STRING','DATE'];(function(_0x2641f9,_0x26715f){var _0x585741=function(_0x2d1462){while(--_0x2d1462){_0x2641f9['push'](_0x2641f9['shift']());}};_0x585741(++_0x26715f);}(_0x6f7b,0x168));var _0xb6f7=function(_0x31d0cc,_0x2f8696){_0x31d0cc=_0x31d0cc-0x0;var _0x3f0e66=_0x6f7b[_0x31d0cc];return _0x3f0e66;};'use strict';var Sequelize=require('sequelize');module[_0xb6f7('0x0')]={'state':{'type':Sequelize[_0xb6f7('0x1')](0x2)},'statedesc':{'type':Sequelize[_0xb6f7('0x2')]},'scheduledat':{'type':Sequelize[_0xb6f7('0x3')]},'uniqueid':{'type':Sequelize[_0xb6f7('0x2')]},'starttime':{'type':Sequelize[_0xb6f7('0x3')]},'responsetime':{'type':Sequelize[_0xb6f7('0x3')]},'ringtime':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'campaign':{'type':Sequelize[_0xb6f7('0x2')]},'campaigntype':{'type':Sequelize['STRING']},'membername':{'type':Sequelize[_0xb6f7('0x2')]}};
\ No newline at end of file
+var _0x0c75=['DATE','INTEGER','exports','STRING'];(function(_0x18a79d,_0x57bd2c){var _0x4f8848=function(_0x28af80){while(--_0x28af80){_0x18a79d['push'](_0x18a79d['shift']());}};_0x4f8848(++_0x57bd2c);}(_0x0c75,0x6a));var _0x50c7=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x0c75[_0x321bb2];return _0x9c12ed;};'use strict';var Sequelize=require('sequelize');module[_0x50c7('0x0')]={'state':{'type':Sequelize['INTEGER'](0x2)},'statedesc':{'type':Sequelize[_0x50c7('0x1')]},'scheduledat':{'type':Sequelize[_0x50c7('0x2')]},'uniqueid':{'type':Sequelize[_0x50c7('0x1')]},'starttime':{'type':Sequelize[_0x50c7('0x2')]},'responsetime':{'type':Sequelize[_0x50c7('0x2')]},'ringtime':{'type':Sequelize[_0x50c7('0x3')],'defaultValue':0x0},'campaign':{'type':Sequelize[_0x50c7('0x1')]},'campaigntype':{'type':Sequelize['STRING']},'membername':{'type':Sequelize[_0x50c7('0x1')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8e4a=['../../config/environment','./reportAgentPreview.attributes','define','ReportAgentPreview','report_agent_preview','lodash','util','../../config/logger','moment','bluebird','request-promise','path','rimraf'];(function(_0x47fc41,_0x408524){var _0x4d0d5f=function(_0x435ba6){while(--_0x435ba6){_0x47fc41['push'](_0x47fc41['shift']());}};_0x4d0d5f(++_0x408524);}(_0x8e4a,0x18b));var _0xa8e4=function(_0x14ae75,_0x40c21d){_0x14ae75=_0x14ae75-0x0;var _0x30cd21=_0x8e4a[_0x14ae75];return _0x30cd21;};'use strict';var _=require(_0xa8e4('0x0'));var util=require(_0xa8e4('0x1'));var logger=require(_0xa8e4('0x2'))('api');var moment=require(_0xa8e4('0x3'));var BPromise=require(_0xa8e4('0x4'));var rp=require(_0xa8e4('0x5'));var fs=require('fs');var path=require(_0xa8e4('0x6'));var rimraf=require(_0xa8e4('0x7'));var config=require(_0xa8e4('0x8'));var attributes=require(_0xa8e4('0x9'));module['exports']=function(_0x29c2d7,_0xedf2cc){return _0x29c2d7[_0xa8e4('0xa')](_0xa8e4('0xb'),attributes,{'tableName':_0xa8e4('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xd328=['define','ReportAgentPreview','report_agent_preview','lodash','util','api','moment','bluebird','path','rimraf','../../config/environment','./reportAgentPreview.attributes','exports'];(function(_0x2b179a,_0x3498c9){var _0xcd150a=function(_0x2b298b){while(--_0x2b298b){_0x2b179a['push'](_0x2b179a['shift']());}};_0xcd150a(++_0x3498c9);}(_0xd328,0xc6));var _0x8d32=function(_0x8febdf,_0x4ef604){_0x8febdf=_0x8febdf-0x0;var _0x15eed4=_0xd328[_0x8febdf];return _0x15eed4;};'use strict';var _=require(_0x8d32('0x0'));var util=require(_0x8d32('0x1'));var logger=require('../../config/logger')(_0x8d32('0x2'));var moment=require(_0x8d32('0x3'));var BPromise=require(_0x8d32('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x8d32('0x5'));var rimraf=require(_0x8d32('0x6'));var config=require(_0x8d32('0x7'));var attributes=require(_0x8d32('0x8'));module[_0x8d32('0x9')]=function(_0xd2e790,_0x43c1f0){return _0xd2e790[_0x8d32('0xa')](_0x8d32('0xb'),attributes,{'tableName':_0x8d32('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x50c1=['ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','http','request','then','info','request\x20sent','debug','stringify','code','error','message','ReportAgentPreview,\x20%s,\x20%s','catch','CreateReportAgentPreview','ReportAgentPreview','create','options','raw','util'];(function(_0x2c91e9,_0x2fb965){var _0x13f0ff=function(_0xb39edf){while(--_0xb39edf){_0x2c91e9['push'](_0x2c91e9['shift']());}};_0x13f0ff(++_0x2fb965);}(_0x50c1,0x17f));var _0x150c=function(_0x14a551,_0x3115c6){_0x14a551=_0x14a551-0x0;var _0x36971c=_0x50c1[_0x14a551];return _0x36971c;};'use strict';var _=require('lodash');var util=require(_0x150c('0x0'));var moment=require('moment');var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x150c('0x1'));var db=require(_0x150c('0x2'))['db'];var utils=require('../../config/utils');var logger=require(_0x150c('0x3'))(_0x150c('0x4'));var config=require(_0x150c('0x5'));var jayson=require(_0x150c('0x6'));var client=jayson['client'][_0x150c('0x7')]({'port':0x232a});function respondWithRpcPromise(_0x160737,_0xfc1633,_0x4d6dc4){return new BPromise(function(_0x1650e6,_0x278823){return client[_0x150c('0x8')](_0x160737,_0x4d6dc4)[_0x150c('0x9')](function(_0x2f3cc2){logger[_0x150c('0xa')]('ReportAgentPreview,\x20%s,\x20%s',_0xfc1633,_0x150c('0xb'));logger[_0x150c('0xc')]('ReportAgentPreview,\x20%s,\x20%s,\x20%s',_0xfc1633,_0x150c('0xb'),JSON[_0x150c('0xd')](_0x2f3cc2));if(_0x2f3cc2['error']){if(_0x2f3cc2['error'][_0x150c('0xe')]===0x1f4){logger[_0x150c('0xf')]('ReportAgentPreview,\x20%s,\x20%s',_0xfc1633,_0x2f3cc2[_0x150c('0xf')][_0x150c('0x10')]);return _0x278823(_0x2f3cc2[_0x150c('0xf')][_0x150c('0x10')]);}logger['error'](_0x150c('0x11'),_0xfc1633,_0x2f3cc2[_0x150c('0xf')][_0x150c('0x10')]);return _0x1650e6(_0x2f3cc2[_0x150c('0xf')][_0x150c('0x10')]);}else{logger[_0x150c('0xa')](_0x150c('0x11'),_0xfc1633,_0x150c('0xb'));_0x1650e6(_0x2f3cc2['result'][_0x150c('0x10')]);}})[_0x150c('0x12')](function(_0x3129ee){logger[_0x150c('0xf')]('ReportAgentPreview,\x20%s,\x20%s',_0xfc1633,_0x3129ee);_0x278823(_0x3129ee);});});}exports[_0x150c('0x13')]=function(_0xdd9b60){var _0x1606b1=this;return new Promise(function(_0x5f24c5,_0x320239){return db[_0x150c('0x14')][_0x150c('0x15')](_0xdd9b60['body'],{'raw':_0xdd9b60[_0x150c('0x16')]?_0xdd9b60[_0x150c('0x16')][_0x150c('0x17')]===undefined?!![]:![]:!![]})['then'](function(_0x23bb9b){logger[_0x150c('0xa')](_0x150c('0x13'),_0xdd9b60);logger['debug'](_0x150c('0x13'),_0xdd9b60,JSON[_0x150c('0xd')](_0x23bb9b));_0x5f24c5(_0x23bb9b);})[_0x150c('0x12')](function(_0x375444){logger[_0x150c('0xf')](_0x150c('0x13'),_0x375444[_0x150c('0x10')],_0xdd9b60);_0x320239(_0x1606b1['error'](0x1f4,_0x375444['message']));});});};
\ No newline at end of file
+var _0x0bd3=['result','CreateReportAgentPreview','ReportAgentPreview','body','options','raw','catch','lodash','util','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','then','info','request\x20sent','ReportAgentPreview,\x20%s,\x20%s,\x20%s','stringify','error','code','ReportAgentPreview,\x20%s,\x20%s','message'];(function(_0x4b5f91,_0x26c295){var _0x3c3a04=function(_0x25dbb6){while(--_0x25dbb6){_0x4b5f91['push'](_0x4b5f91['shift']());}};_0x3c3a04(++_0x26c295);}(_0x0bd3,0x173));var _0x30bd=function(_0x1a0c59,_0x3b4dcc){_0x1a0c59=_0x1a0c59-0x0;var _0xed67c9=_0x0bd3[_0x1a0c59];return _0xed67c9;};'use strict';var _=require(_0x30bd('0x0'));var util=require(_0x30bd('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0x30bd('0x2'));var fs=require('fs');var Redis=require(_0x30bd('0x3'));var db=require(_0x30bd('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0x30bd('0x5'))(_0x30bd('0x6'));var config=require(_0x30bd('0x7'));var jayson=require(_0x30bd('0x8'));var client=jayson[_0x30bd('0x9')]['http']({'port':0x232a});function respondWithRpcPromise(_0x3423e7,_0x2717a9,_0x2ae6e9){return new BPromise(function(_0x3bbec2,_0x3dbb0c){return client['request'](_0x3423e7,_0x2ae6e9)[_0x30bd('0xa')](function(_0x2f97d1){logger[_0x30bd('0xb')]('ReportAgentPreview,\x20%s,\x20%s',_0x2717a9,_0x30bd('0xc'));logger['debug'](_0x30bd('0xd'),_0x2717a9,_0x30bd('0xc'),JSON[_0x30bd('0xe')](_0x2f97d1));if(_0x2f97d1[_0x30bd('0xf')]){if(_0x2f97d1[_0x30bd('0xf')][_0x30bd('0x10')]===0x1f4){logger[_0x30bd('0xf')](_0x30bd('0x11'),_0x2717a9,_0x2f97d1[_0x30bd('0xf')][_0x30bd('0x12')]);return _0x3dbb0c(_0x2f97d1[_0x30bd('0xf')][_0x30bd('0x12')]);}logger[_0x30bd('0xf')](_0x30bd('0x11'),_0x2717a9,_0x2f97d1[_0x30bd('0xf')][_0x30bd('0x12')]);return _0x3bbec2(_0x2f97d1[_0x30bd('0xf')][_0x30bd('0x12')]);}else{logger[_0x30bd('0xb')](_0x30bd('0x11'),_0x2717a9,_0x30bd('0xc'));_0x3bbec2(_0x2f97d1[_0x30bd('0x13')][_0x30bd('0x12')]);}})['catch'](function(_0x1133dd){logger['error']('ReportAgentPreview,\x20%s,\x20%s',_0x2717a9,_0x1133dd);_0x3dbb0c(_0x1133dd);});});}exports[_0x30bd('0x14')]=function(_0x5102fa){var _0x499f7c=this;return new Promise(function(_0xc1ed72,_0x4a8c76){return db[_0x30bd('0x15')]['create'](_0x5102fa[_0x30bd('0x16')],{'raw':_0x5102fa[_0x30bd('0x17')]?_0x5102fa[_0x30bd('0x17')][_0x30bd('0x18')]===undefined?!![]:![]:!![]})['then'](function(_0x26d5c6){logger['info'](_0x30bd('0x14'),_0x5102fa);logger['debug']('CreateReportAgentPreview',_0x5102fa,JSON[_0x30bd('0xe')](_0x26d5c6));_0xc1ed72(_0x26d5c6);})[_0x30bd('0x19')](function(_0x2e0cc9){logger[_0x30bd('0xf')](_0x30bd('0x14'),_0x2e0cc9[_0x30bd('0x12')],_0x5102fa);_0x4a8c76(_0x499f7c[_0x30bd('0xf')](0x1f4,_0x2e0cc9[_0x30bd('0x12')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf5ea=['voiceQueuesChannelRedirect','/voice/queues/:id','showVoiceQueues','put','updateVoiceQueue','/outbound','outbound','/outbound/channels','/agents','agents','/agents/:id/capacity','agentCapacity','/telephones','telephones','trunks','/campaigns','campaigns','/fax/accounts','faxAccounts','/chat/queues/waitinginteractions','/mail/queues/waitinginteractions','mailQueuesWaitingInteractions','openchannelQueuesWaitingInteractions','smsQueuesWaitingInteractions','/fax/queues/waitinginteractions','post','/mail/queues/:id/notify','queueNotify','mail','/mail/queues/:id','showMailQueues','/chat/queues/:id/notify','chat','/chat/queues/:id','showChatQueues','/fax/queues/:id/notify','fax','/openchannel/queues/:id/notify','openchannel','/openchannel/queues/:id','showOpenchannelQueues','/sms/queues/:id/notify','sms','/whatsapp/queues/:id/notify','/sms/queues/:id','showSmsQueues','showWhatsappQueues','/agents/:id/notify','agentNotify','exports','multer','util','path','express','../../components/auth/service','./rpc.controller','/voice/channels','isAuthenticated','voiceChannels','get','/voice/channels/:uniqueid/mixmonitor','voiceChannelMixMonitor','/voice/channels/:uniqueid/stopmixmonitor','/voice/queues','/mail/queues','mailQueues','/mail/accounts','mailAccounts','/openchannel/queues','openchannelQueues','/sms/queues','smsQueues','/whatsapp/queues','/fax/queues','faxQueues','/voice/queues/preview/:id','voiceQueuesPreview','/voice/queues/channels','/voice/queues/channels/:uniqueid','voiceQueuesChannel','/voice/queues/channels/:uniqueid/hangup','voiceQueuesChannelHangup'];(function(_0x614ef4,_0x28a060){var _0x35e8e2=function(_0x55e81b){while(--_0x55e81b){_0x614ef4['push'](_0x614ef4['shift']());}};_0x35e8e2(++_0x28a060);}(_0xf5ea,0xd6));var _0xaf5e=function(_0x1facfa,_0x1acf7d){_0x1facfa=_0x1facfa-0x0;var _0x9ec701=_0xf5ea[_0x1facfa];return _0x9ec701;};'use strict';var multer=require(_0xaf5e('0x0'));var util=require(_0xaf5e('0x1'));var path=require(_0xaf5e('0x2'));var express=require(_0xaf5e('0x3'));var router=express['Router']();var auth=require(_0xaf5e('0x4'));var controller=require(_0xaf5e('0x5'));router['get'](_0xaf5e('0x6'),auth[_0xaf5e('0x7')](),controller[_0xaf5e('0x8')]);router[_0xaf5e('0x9')](_0xaf5e('0xa'),auth['isAuthenticated'](),controller[_0xaf5e('0xb')]);router['get'](_0xaf5e('0xc'),auth[_0xaf5e('0x7')](),controller['voiceChannelStopMixMonitor']);router[_0xaf5e('0x9')](_0xaf5e('0xd'),auth[_0xaf5e('0x7')](),controller['voiceQueues']);router[_0xaf5e('0x9')]('/chat/queues',auth[_0xaf5e('0x7')](),controller['chatQueues']);router[_0xaf5e('0x9')](_0xaf5e('0xe'),auth['isAuthenticated'](),controller[_0xaf5e('0xf')]);router[_0xaf5e('0x9')](_0xaf5e('0x10'),auth['isAuthenticated'](),controller[_0xaf5e('0x11')]);router[_0xaf5e('0x9')](_0xaf5e('0x12'),auth['isAuthenticated'](),controller[_0xaf5e('0x13')]);router[_0xaf5e('0x9')](_0xaf5e('0x14'),auth[_0xaf5e('0x7')](),controller[_0xaf5e('0x15')]);router['get'](_0xaf5e('0x16'),auth[_0xaf5e('0x7')](),controller['whatsappQueues']);router['get'](_0xaf5e('0x17'),auth[_0xaf5e('0x7')](),controller[_0xaf5e('0x18')]);router[_0xaf5e('0x9')](_0xaf5e('0x19'),auth[_0xaf5e('0x7')](),controller[_0xaf5e('0x1a')]);router['get'](_0xaf5e('0x1b'),auth['isAuthenticated'](),controller['voiceQueuesChannels']);router[_0xaf5e('0x9')](_0xaf5e('0x1c'),auth[_0xaf5e('0x7')](),controller[_0xaf5e('0x1d')]);router['get'](_0xaf5e('0x1e'),auth['isAuthenticated'](),controller[_0xaf5e('0x1f')]);router[_0xaf5e('0x9')]('/voice/queues/channels/:uniqueid/redirect/:exten',auth['isAuthenticated'](),controller[_0xaf5e('0x20')]);router[_0xaf5e('0x9')](_0xaf5e('0x21'),auth[_0xaf5e('0x7')](),controller[_0xaf5e('0x22')]);router[_0xaf5e('0x23')](_0xaf5e('0x21'),auth[_0xaf5e('0x7')](),controller[_0xaf5e('0x24')]);router[_0xaf5e('0x9')](_0xaf5e('0x25'),auth[_0xaf5e('0x7')](),controller[_0xaf5e('0x26')]);router[_0xaf5e('0x9')](_0xaf5e('0x27'),auth[_0xaf5e('0x7')](),controller['outboundChannels']);router[_0xaf5e('0x9')](_0xaf5e('0x28'),auth[_0xaf5e('0x7')](),controller[_0xaf5e('0x29')]);router['put'](_0xaf5e('0x2a'),auth[_0xaf5e('0x7')](),controller[_0xaf5e('0x2b')]);router['get'](_0xaf5e('0x2c'),auth['isAuthenticated'](),controller[_0xaf5e('0x2d')]);router[_0xaf5e('0x9')]('/trunks',auth[_0xaf5e('0x7')](),controller[_0xaf5e('0x2e')]);router[_0xaf5e('0x9')](_0xaf5e('0x2f'),auth[_0xaf5e('0x7')](),controller[_0xaf5e('0x30')]);router[_0xaf5e('0x9')](_0xaf5e('0x31'),auth[_0xaf5e('0x7')](),controller[_0xaf5e('0x32')]);router[_0xaf5e('0x9')](_0xaf5e('0x33'),auth[_0xaf5e('0x7')](),controller['chatQueuesWaitingInteractions']);router['get'](_0xaf5e('0x34'),auth[_0xaf5e('0x7')](),controller[_0xaf5e('0x35')]);router[_0xaf5e('0x9')]('/openchannel/queues/waitinginteractions',auth[_0xaf5e('0x7')](),controller[_0xaf5e('0x36')]);router[_0xaf5e('0x9')]('/openchannel/queues/:id/waitinginteractions',auth['isAuthenticated'](),controller['openchannelQueuesIdWaitingInteractions']);router[_0xaf5e('0x9')]('/sms/queues/waitinginteractions',auth[_0xaf5e('0x7')](),controller[_0xaf5e('0x37')]);router[_0xaf5e('0x9')]('/whatsapp/queues/waitinginteractions',auth[_0xaf5e('0x7')](),controller['whatsappQueuesWaitingInteractions']);router['get'](_0xaf5e('0x38'),auth['isAuthenticated'](),controller['faxQueuesWaitingInteractions']);router[_0xaf5e('0x39')](_0xaf5e('0x3a'),auth[_0xaf5e('0x7')](),controller[_0xaf5e('0x3b')](_0xaf5e('0x3c')));router['get'](_0xaf5e('0x3d'),auth['isAuthenticated'](),controller[_0xaf5e('0x3e')]);router['post'](_0xaf5e('0x3f'),auth[_0xaf5e('0x7')](),controller['queueNotify'](_0xaf5e('0x40')));router['get'](_0xaf5e('0x41'),auth['isAuthenticated'](),controller[_0xaf5e('0x42')]);router[_0xaf5e('0x39')](_0xaf5e('0x43'),auth['isAuthenticated'](),controller[_0xaf5e('0x3b')](_0xaf5e('0x44')));router[_0xaf5e('0x9')]('/fax/queues/:id',auth[_0xaf5e('0x7')](),controller['showFaxQueues']);router[_0xaf5e('0x39')](_0xaf5e('0x45'),auth[_0xaf5e('0x7')](),controller[_0xaf5e('0x3b')](_0xaf5e('0x46')));router[_0xaf5e('0x9')](_0xaf5e('0x47'),auth['isAuthenticated'](),controller[_0xaf5e('0x48')]);router[_0xaf5e('0x39')](_0xaf5e('0x49'),auth[_0xaf5e('0x7')](),controller[_0xaf5e('0x3b')](_0xaf5e('0x4a')));router[_0xaf5e('0x39')](_0xaf5e('0x4b'),auth[_0xaf5e('0x7')](),controller[_0xaf5e('0x3b')]('whatsapp'));router['get'](_0xaf5e('0x4c'),auth[_0xaf5e('0x7')](),controller[_0xaf5e('0x4d')]);router[_0xaf5e('0x9')]('/whatsapp/queues/:id',auth['isAuthenticated'](),controller[_0xaf5e('0x4e')]);router[_0xaf5e('0x39')](_0xaf5e('0x4f'),auth['isAuthenticated'](),controller[_0xaf5e('0x50')]);module[_0xaf5e('0x51')]=router;
\ No newline at end of file
+var _0xe296=['/whatsapp/queues','whatsappQueues','/fax/queues','/voice/queues/preview/:id','voiceQueuesPreview','/voice/queues/channels','voiceQueuesChannels','/voice/queues/channels/:uniqueid','voiceQueuesChannel','/voice/queues/channels/:uniqueid/hangup','voiceQueuesChannelHangup','/voice/queues/channels/:uniqueid/redirect/:exten','voiceQueuesChannelRedirect','/voice/queues/:id','put','updateVoiceQueue','/outbound','outbound','/outbound/channels','outboundChannels','/agents','/agents/:id/capacity','/telephones','telephones','/trunks','trunks','/fax/accounts','chatQueuesWaitingInteractions','mailQueuesWaitingInteractions','/openchannel/queues/waitinginteractions','openchannelQueuesWaitingInteractions','smsQueuesWaitingInteractions','/whatsapp/queues/waitinginteractions','whatsappQueuesWaitingInteractions','faxQueuesWaitingInteractions','post','/mail/queues/:id/notify','queueNotify','mail','/mail/queues/:id','showMailQueues','/chat/queues/:id/notify','chat','/chat/queues/:id','showChatQueues','/fax/queues/:id/notify','/fax/queues/:id','/openchannel/queues/:id/notify','openchannel','showOpenchannelQueues','/sms/queues/:id/notify','/whatsapp/queues/:id/notify','whatsapp','/sms/queues/:id','showSmsQueues','/whatsapp/queues/:id','showWhatsappQueues','/agents/:id/notify','agentNotify','exports','multer','util','path','express','Router','../../components/auth/service','./rpc.controller','/voice/channels','voiceChannels','isAuthenticated','voiceChannelMixMonitor','get','/voice/channels/:uniqueid/stopmixmonitor','voiceChannelStopMixMonitor','/chat/queues','chatQueues','/mail/queues','mailQueues','mailAccounts','openchannelQueues','/sms/queues'];(function(_0xc5cd18,_0x251c74){var _0x37a5cb=function(_0x40474b){while(--_0x40474b){_0xc5cd18['push'](_0xc5cd18['shift']());}};_0x37a5cb(++_0x251c74);}(_0xe296,0x1d1));var _0x6e29=function(_0x8f8669,_0x41a6fb){_0x8f8669=_0x8f8669-0x0;var _0x59f91a=_0xe296[_0x8f8669];return _0x59f91a;};'use strict';var multer=require(_0x6e29('0x0'));var util=require(_0x6e29('0x1'));var path=require(_0x6e29('0x2'));var express=require(_0x6e29('0x3'));var router=express[_0x6e29('0x4')]();var auth=require(_0x6e29('0x5'));var controller=require(_0x6e29('0x6'));router['get'](_0x6e29('0x7'),auth['isAuthenticated'](),controller[_0x6e29('0x8')]);router['get']('/voice/channels/:uniqueid/mixmonitor',auth[_0x6e29('0x9')](),controller[_0x6e29('0xa')]);router[_0x6e29('0xb')](_0x6e29('0xc'),auth[_0x6e29('0x9')](),controller[_0x6e29('0xd')]);router[_0x6e29('0xb')]('/voice/queues',auth['isAuthenticated'](),controller['voiceQueues']);router['get'](_0x6e29('0xe'),auth[_0x6e29('0x9')](),controller[_0x6e29('0xf')]);router[_0x6e29('0xb')](_0x6e29('0x10'),auth['isAuthenticated'](),controller[_0x6e29('0x11')]);router['get']('/mail/accounts',auth['isAuthenticated'](),controller[_0x6e29('0x12')]);router[_0x6e29('0xb')]('/openchannel/queues',auth[_0x6e29('0x9')](),controller[_0x6e29('0x13')]);router[_0x6e29('0xb')](_0x6e29('0x14'),auth[_0x6e29('0x9')](),controller['smsQueues']);router['get'](_0x6e29('0x15'),auth['isAuthenticated'](),controller[_0x6e29('0x16')]);router[_0x6e29('0xb')](_0x6e29('0x17'),auth[_0x6e29('0x9')](),controller['faxQueues']);router[_0x6e29('0xb')](_0x6e29('0x18'),auth[_0x6e29('0x9')](),controller[_0x6e29('0x19')]);router[_0x6e29('0xb')](_0x6e29('0x1a'),auth[_0x6e29('0x9')](),controller[_0x6e29('0x1b')]);router['get'](_0x6e29('0x1c'),auth[_0x6e29('0x9')](),controller[_0x6e29('0x1d')]);router[_0x6e29('0xb')](_0x6e29('0x1e'),auth['isAuthenticated'](),controller[_0x6e29('0x1f')]);router[_0x6e29('0xb')](_0x6e29('0x20'),auth[_0x6e29('0x9')](),controller[_0x6e29('0x21')]);router['get'](_0x6e29('0x22'),auth['isAuthenticated'](),controller['showVoiceQueues']);router[_0x6e29('0x23')](_0x6e29('0x22'),auth[_0x6e29('0x9')](),controller[_0x6e29('0x24')]);router[_0x6e29('0xb')](_0x6e29('0x25'),auth['isAuthenticated'](),controller[_0x6e29('0x26')]);router[_0x6e29('0xb')](_0x6e29('0x27'),auth[_0x6e29('0x9')](),controller[_0x6e29('0x28')]);router[_0x6e29('0xb')](_0x6e29('0x29'),auth['isAuthenticated'](),controller['agents']);router['put'](_0x6e29('0x2a'),auth[_0x6e29('0x9')](),controller['agentCapacity']);router['get'](_0x6e29('0x2b'),auth['isAuthenticated'](),controller[_0x6e29('0x2c')]);router[_0x6e29('0xb')](_0x6e29('0x2d'),auth['isAuthenticated'](),controller[_0x6e29('0x2e')]);router[_0x6e29('0xb')]('/campaigns',auth['isAuthenticated'](),controller['campaigns']);router[_0x6e29('0xb')](_0x6e29('0x2f'),auth[_0x6e29('0x9')](),controller['faxAccounts']);router[_0x6e29('0xb')]('/chat/queues/waitinginteractions',auth[_0x6e29('0x9')](),controller[_0x6e29('0x30')]);router[_0x6e29('0xb')]('/mail/queues/waitinginteractions',auth[_0x6e29('0x9')](),controller[_0x6e29('0x31')]);router[_0x6e29('0xb')](_0x6e29('0x32'),auth[_0x6e29('0x9')](),controller[_0x6e29('0x33')]);router[_0x6e29('0xb')]('/openchannel/queues/:id/waitinginteractions',auth[_0x6e29('0x9')](),controller['openchannelQueuesIdWaitingInteractions']);router['get']('/sms/queues/waitinginteractions',auth['isAuthenticated'](),controller[_0x6e29('0x34')]);router['get'](_0x6e29('0x35'),auth[_0x6e29('0x9')](),controller[_0x6e29('0x36')]);router[_0x6e29('0xb')]('/fax/queues/waitinginteractions',auth[_0x6e29('0x9')](),controller[_0x6e29('0x37')]);router[_0x6e29('0x38')](_0x6e29('0x39'),auth['isAuthenticated'](),controller[_0x6e29('0x3a')](_0x6e29('0x3b')));router['get'](_0x6e29('0x3c'),auth[_0x6e29('0x9')](),controller[_0x6e29('0x3d')]);router['post'](_0x6e29('0x3e'),auth[_0x6e29('0x9')](),controller[_0x6e29('0x3a')](_0x6e29('0x3f')));router[_0x6e29('0xb')](_0x6e29('0x40'),auth[_0x6e29('0x9')](),controller[_0x6e29('0x41')]);router['post'](_0x6e29('0x42'),auth[_0x6e29('0x9')](),controller[_0x6e29('0x3a')]('fax'));router[_0x6e29('0xb')](_0x6e29('0x43'),auth[_0x6e29('0x9')](),controller['showFaxQueues']);router['post'](_0x6e29('0x44'),auth[_0x6e29('0x9')](),controller['queueNotify'](_0x6e29('0x45')));router[_0x6e29('0xb')]('/openchannel/queues/:id',auth[_0x6e29('0x9')](),controller[_0x6e29('0x46')]);router[_0x6e29('0x38')](_0x6e29('0x47'),auth[_0x6e29('0x9')](),controller[_0x6e29('0x3a')]('sms'));router[_0x6e29('0x38')](_0x6e29('0x48'),auth[_0x6e29('0x9')](),controller['queueNotify'](_0x6e29('0x49')));router[_0x6e29('0xb')](_0x6e29('0x4a'),auth[_0x6e29('0x9')](),controller[_0x6e29('0x4b')]);router[_0x6e29('0xb')](_0x6e29('0x4c'),auth[_0x6e29('0x9')](),controller[_0x6e29('0x4d')]);router[_0x6e29('0x38')](_0x6e29('0x4e'),auth[_0x6e29('0x9')](),controller[_0x6e29('0x4f')]);module[_0x6e29('0x50')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7c09=['update','MessageId','agent','agentTransferTimeout','moment','lodash','../../mysqldb','../../config/logger','api','jayson/promise','client','http','request','error','message','result','catch','status','json','sendStatus','name','send','isNil','find','rows','voiceChannels','VoiceChannels','query','then','VoiceChannelMixMonitor','merge','params','voiceChannelStopMixMonitor','VoiceChannelStopMixMonitor','VoiceQueues','UpdateVoiceQueue','body','voiceQueuesPreview','VoiceQueuesPreview','VoiceQueuesChannels','voiceQueuesChannel','VoiceQueuesChannel','VoiceQueuesChannelHangup','VoiceQueuesChannelRedirect','outbound','Outbound','outboundChannels','OutboundChannels','agents','Agents','agentCapacity','interaction','user','hasOwnProperty','MemberReport','findAll','length','format','YYYY-MM-DD\x20HH:mm:ss','updateAttributes','findOrCreate','INTERACTION','interface','SIP/%s','AgentCapacity','telephones','Telephones','trunks','Trunks','campaigns','Campaigns','chatQueues','showChatQueues','ChatQueues','mailQueues','MailQueues','showMailQueues','mailAccounts','MailAccounts','openchannelQueues','OpenchannelQueues','showOpenchannelQueues','SmsQueues','showSmsQueues','showWhatsappQueues','faxQueues','FaxQueues','showFaxQueues','faxAccounts','FaxAccounts','chatQueuesWaitingInteractions','mailQueuesWaitingInteractions','MailQueuesWaitingInteractions','openchannelQueuesIdWaitingInteractions','OpenchannelQueuesWaitingInteractions','type','filter','map','queue_id','uniq','value','indexOf','faxQueuesWaitingInteractions','FaxQueuesWaitingInteractions','capitalize','chat','Website','Account','findOne','\x20Queue\x20not\x20found','Message','messageId','Interaction','\x20Message\x20not\x20found','InteractionId','From','QueueId','TransferReport','create','Start','queue','queueTransferTimeout','*,*,*,*','agentNotify','channel','Channel\x20field\x20is\x20mandatory','User'];(function(_0x3bc953,_0x44904c){var _0x5e4b62=function(_0x566aa5){while(--_0x566aa5){_0x3bc953['push'](_0x3bc953['shift']());}};_0x5e4b62(++_0x44904c);}(_0x7c09,0x102));var _0x97c0=function(_0x4c5e05,_0x41f780){_0x4c5e05=_0x4c5e05-0x0;var _0x30d826=_0x7c09[_0x4c5e05];return _0x30d826;};'use strict';var BPromise=require('bluebird');var moment=require(_0x97c0('0x0'));var _=require(_0x97c0('0x1'));var util=require('util');var db=require(_0x97c0('0x2'))['db'];var logger=require(_0x97c0('0x3'))(_0x97c0('0x4'));var jayson=require(_0x97c0('0x5'));var amiClient=jayson[_0x97c0('0x6')][_0x97c0('0x7')]({'port':0x232a});var mailClient=jayson[_0x97c0('0x6')]['http']({'port':0x232b});var routingClient=jayson['client']['http']({'port':0x232c});function respondWithRpcPromise(_0x46fdd9,_0x42c6c7,_0x2c19fa){return new BPromise(function(_0x109bc8,_0x293785){var _0x57661a=_0x2c19fa?_0x2c19fa:amiClient;return _0x57661a[_0x97c0('0x8')](_0x46fdd9,_0x42c6c7)['then'](function(_0x2d5507){if(_0x2d5507[_0x97c0('0x9')]){if(_0x2d5507['error']['code']===0x1f4){return _0x293785(_0x2d5507[_0x97c0('0x9')][_0x97c0('0xa')]);}return _0x109bc8(_0x2d5507[_0x97c0('0x9')][_0x97c0('0xa')]);}else{_0x109bc8(_0x2d5507[_0x97c0('0xb')]);}})[_0x97c0('0xc')](function(_0x7fc93){_0x293785(_0x7fc93);});});}function respondWithResult(_0x39a3b4,_0x9ca3c1){_0x9ca3c1=_0x9ca3c1||0xc8;return function(_0x2ecf34){if(_0x2ecf34){return _0x39a3b4[_0x97c0('0xd')](_0x9ca3c1)[_0x97c0('0xe')](_0x2ecf34);}return _0x39a3b4[_0x97c0('0xf')](0x194);};}function handleError(_0x514782,_0x3f2fc2){_0x3f2fc2=_0x3f2fc2||0x1f4;return function(_0x15b336){logger[_0x97c0('0x9')](_0x15b336['stack']);if(_0x15b336[_0x97c0('0x10')]){delete _0x15b336[_0x97c0('0x10')];}_0x514782[_0x97c0('0xd')](_0x3f2fc2)[_0x97c0('0x11')](_0x15b336);};}function findById(_0x482be5){return function(_0x13d46e){if(!_['isNil'](_0x482be5)&&!_[_0x97c0('0x12')](_0x13d46e)&&!_[_0x97c0('0x12')](_0x13d46e['rows'])){return _[_0x97c0('0x13')](_0x13d46e[_0x97c0('0x14')],function(_0x179d43){return _0x179d43['id']==_0x482be5;});}return null;};}exports[_0x97c0('0x15')]=function(_0x183e2e,_0x3e7a52){return respondWithRpcPromise(_0x97c0('0x16'),_0x183e2e[_0x97c0('0x17')])[_0x97c0('0x18')](respondWithResult(_0x3e7a52,null))[_0x97c0('0xc')](handleError(_0x3e7a52,null));};exports['voiceChannelMixMonitor']=function(_0x554122,_0x2b74a2){return respondWithRpcPromise(_0x97c0('0x19'),_[_0x97c0('0x1a')](_0x554122['query'],_0x554122[_0x97c0('0x1b')]))[_0x97c0('0x18')](respondWithResult(_0x2b74a2,null))[_0x97c0('0xc')](handleError(_0x2b74a2,null));};exports[_0x97c0('0x1c')]=function(_0x30fba2,_0x3a0bfb){return respondWithRpcPromise(_0x97c0('0x1d'),_['merge'](_0x30fba2[_0x97c0('0x17')],_0x30fba2[_0x97c0('0x1b')]))[_0x97c0('0x18')](respondWithResult(_0x3a0bfb,null))[_0x97c0('0xc')](handleError(_0x3a0bfb,null));};exports['voiceQueues']=function(_0x2bda6c,_0x14cada){return respondWithRpcPromise('VoiceQueues',_0x2bda6c[_0x97c0('0x17')])[_0x97c0('0x18')](respondWithResult(_0x14cada,null))[_0x97c0('0xc')](handleError(_0x14cada,null));};exports['showVoiceQueues']=function(_0x4f11ba,_0x51f258){return respondWithRpcPromise(_0x97c0('0x1e'),_0x4f11ba[_0x97c0('0x17')])[_0x97c0('0x18')](findById(_0x4f11ba[_0x97c0('0x1b')]['id']))[_0x97c0('0x18')](respondWithResult(_0x51f258,null))[_0x97c0('0xc')](handleError(_0x51f258,null));};exports['updateVoiceQueue']=function(_0x10e47e,_0x1c183f){return respondWithRpcPromise(_0x97c0('0x1f'),_['merge'](_0x10e47e[_0x97c0('0x20')],_0x10e47e[_0x97c0('0x1b')]))[_0x97c0('0x18')](respondWithResult(_0x1c183f,null))[_0x97c0('0xc')](handleError(_0x1c183f,null));};exports[_0x97c0('0x21')]=function(_0x5c4e4e,_0x59abbb){return respondWithRpcPromise(_0x97c0('0x22'),_[_0x97c0('0x1a')](_0x5c4e4e[_0x97c0('0x17')],_0x5c4e4e['params']))[_0x97c0('0x18')](respondWithResult(_0x59abbb,null))[_0x97c0('0xc')](handleError(_0x59abbb,null));};exports['voiceQueuesChannels']=function(_0x30147b,_0x22833e){return respondWithRpcPromise(_0x97c0('0x23'),_0x30147b[_0x97c0('0x17')])[_0x97c0('0x18')](respondWithResult(_0x22833e,null))[_0x97c0('0xc')](handleError(_0x22833e,null));};exports[_0x97c0('0x24')]=function(_0x1a6c4b,_0x30b927){return respondWithRpcPromise(_0x97c0('0x25'),_[_0x97c0('0x1a')](_0x1a6c4b[_0x97c0('0x17')],_0x1a6c4b[_0x97c0('0x1b')]))[_0x97c0('0x18')](respondWithResult(_0x30b927,null))[_0x97c0('0xc')](handleError(_0x30b927,null));};exports['voiceQueuesChannelHangup']=function(_0x292560,_0x1548b6){return respondWithRpcPromise(_0x97c0('0x26'),_[_0x97c0('0x1a')](_0x292560[_0x97c0('0x17')],_0x292560[_0x97c0('0x1b')]))[_0x97c0('0x18')](respondWithResult(_0x1548b6,null))[_0x97c0('0xc')](handleError(_0x1548b6,null));};exports['voiceQueuesChannelRedirect']=function(_0xd72d47,_0x4bf42a){return respondWithRpcPromise(_0x97c0('0x27'),_[_0x97c0('0x1a')](_0xd72d47[_0x97c0('0x17')],_0xd72d47[_0x97c0('0x1b')]))[_0x97c0('0x18')](respondWithResult(_0x4bf42a,null))[_0x97c0('0xc')](handleError(_0x4bf42a,null));};exports[_0x97c0('0x28')]=function(_0x225ca4,_0x38f37a){return respondWithRpcPromise(_0x97c0('0x29'),_0x225ca4[_0x97c0('0x17')])['then'](respondWithResult(_0x38f37a,null))[_0x97c0('0xc')](handleError(_0x38f37a,null));};exports[_0x97c0('0x2a')]=function(_0x4d47b1,_0x137ee1){return respondWithRpcPromise(_0x97c0('0x2b'),_0x4d47b1[_0x97c0('0x17')])[_0x97c0('0x18')](respondWithResult(_0x137ee1,null))['catch'](handleError(_0x137ee1,null));};exports[_0x97c0('0x2c')]=function(_0x4f1629,_0x1acf31){var _0x64cfcd;return respondWithRpcPromise('Agents',_0x4f1629[_0x97c0('0x17')])[_0x97c0('0x18')](function(_0xd728dd){_0x64cfcd=_0xd728dd;return respondWithRpcPromise(_0x97c0('0x2d'),_0x4f1629[_0x97c0('0x17')],routingClient);})[_0x97c0('0x18')](function(_0x36b3d0){return _[_0x97c0('0x1a')]({},_0x36b3d0,_0x64cfcd);})[_0x97c0('0x18')](respondWithResult(_0x1acf31,null))[_0x97c0('0xc')](handleError(_0x1acf31,null));};exports[_0x97c0('0x2e')]=function(_0x2cca4c,_0x1351d2){if(_0x2cca4c['body']&&_0x2cca4c[_0x97c0('0x20')][_0x97c0('0x2f')]&&_0x2cca4c[_0x97c0('0x30')]&&_0x2cca4c[_0x97c0('0x30')][_0x97c0('0x10')]){for(var _0x375ebc in _0x2cca4c[_0x97c0('0x20')]['interaction']){if(_0x2cca4c['body'][_0x97c0('0x2f')][_0x97c0('0x31')](_0x375ebc)){db[_0x97c0('0x32')][_0x97c0('0x33')]({'where':{'channel':_0x375ebc,'membername':_0x2cca4c[_0x97c0('0x30')]['name'],'type':'INTERACTION','exitAt':null,'uniqueid':_0x2cca4c['body'][_0x97c0('0x2f')][_0x375ebc]&&_0x2cca4c['body']['interaction'][_0x375ebc][_0x97c0('0x34')]?{'$notIn':_0x2cca4c[_0x97c0('0x20')][_0x97c0('0x2f')][_0x375ebc]}:{'$ne':null}}})[_0x97c0('0x18')](function(_0x2f538b){var _0x483656=moment()[_0x97c0('0x35')](_0x97c0('0x36'));for(var _0x342eeb=0x0,_0x10a8ea=_0x2f538b[_0x97c0('0x34')];_0x342eeb<_0x10a8ea;_0x342eeb+=0x1){_0x2f538b[_0x342eeb][_0x97c0('0x37')]({'exitAt':_0x483656});}});for(var _0x444e41=0x0;_0x444e41<_0x2cca4c[_0x97c0('0x20')][_0x97c0('0x2f')][_0x375ebc][_0x97c0('0x34')];_0x444e41+=0x1){db['MemberReport'][_0x97c0('0x38')]({'where':{'channel':_0x375ebc,'membername':_0x2cca4c[_0x97c0('0x30')][_0x97c0('0x10')],'type':_0x97c0('0x39'),'uniqueid':_0x2cca4c['body']['interaction'][_0x375ebc][_0x444e41],'exitAt':null},'defaults':{'channel':_0x375ebc,'membername':_0x2cca4c[_0x97c0('0x30')][_0x97c0('0x10')],'interface':_[_0x97c0('0x12')](_0x2cca4c['user'][_0x97c0('0x3a')])?util[_0x97c0('0x35')](_0x97c0('0x3b'),_0x2cca4c[_0x97c0('0x30')][_0x97c0('0x10')]):_0x2cca4c['user'][_0x97c0('0x3a')],'type':_0x97c0('0x39'),'enterAt':moment()[_0x97c0('0x35')]('YYYY-MM-DD\x20HH:mm:ss'),'role':'agent','internal':_0x2cca4c[_0x97c0('0x30')]['internal'],'uniqueid':_0x2cca4c['body'][_0x97c0('0x2f')][_0x375ebc][_0x444e41]}});}}}}return respondWithRpcPromise(_0x97c0('0x3c'),{'id':_0x2cca4c[_0x97c0('0x1b')]['id'],'capacity':_0x2cca4c['body']['capacity']},routingClient)['then'](respondWithResult(_0x1351d2,null))[_0x97c0('0xc')](handleError(_0x1351d2,null));};exports[_0x97c0('0x3d')]=function(_0x3afef4,_0xdb2767){return respondWithRpcPromise(_0x97c0('0x3e'),_0x3afef4[_0x97c0('0x17')])[_0x97c0('0x18')](respondWithResult(_0xdb2767,null))['catch'](handleError(_0xdb2767,null));};exports[_0x97c0('0x3f')]=function(_0x3f074b,_0x20cd9c){return respondWithRpcPromise(_0x97c0('0x40'),_0x3f074b[_0x97c0('0x17')])[_0x97c0('0x18')](respondWithResult(_0x20cd9c,null))['catch'](handleError(_0x20cd9c,null));};exports[_0x97c0('0x41')]=function(_0x86a497,_0x4fbc1e){return respondWithRpcPromise(_0x97c0('0x42'),_0x86a497[_0x97c0('0x17')])[_0x97c0('0x18')](respondWithResult(_0x4fbc1e,null))[_0x97c0('0xc')](handleError(_0x4fbc1e,null));};exports[_0x97c0('0x43')]=function(_0x18992d,_0x47298f){return respondWithRpcPromise('ChatQueues',_0x18992d[_0x97c0('0x17')],routingClient)[_0x97c0('0x18')](respondWithResult(_0x47298f,null))[_0x97c0('0xc')](handleError(_0x47298f,null));};exports[_0x97c0('0x44')]=function(_0x154317,_0x2f1571){return respondWithRpcPromise(_0x97c0('0x45'),_0x154317[_0x97c0('0x17')],routingClient)[_0x97c0('0x18')](findById(_0x154317[_0x97c0('0x1b')]['id']))[_0x97c0('0x18')](respondWithResult(_0x2f1571,null))[_0x97c0('0xc')](handleError(_0x2f1571,null));};exports[_0x97c0('0x46')]=function(_0x57766f,_0x771495){return respondWithRpcPromise(_0x97c0('0x47'),_0x57766f[_0x97c0('0x17')],routingClient)[_0x97c0('0x18')](respondWithResult(_0x771495,null))[_0x97c0('0xc')](handleError(_0x771495,null));};exports[_0x97c0('0x48')]=function(_0x481f5b,_0x18a6c0){return respondWithRpcPromise(_0x97c0('0x47'),_0x481f5b['query'],routingClient)[_0x97c0('0x18')](findById(_0x481f5b[_0x97c0('0x1b')]['id']))[_0x97c0('0x18')](respondWithResult(_0x18a6c0,null))['catch'](handleError(_0x18a6c0,null));};exports[_0x97c0('0x49')]=function(_0x4c4fb2,_0x25c750){return respondWithRpcPromise(_0x97c0('0x4a'),_0x4c4fb2[_0x97c0('0x17')],mailClient)[_0x97c0('0x18')](respondWithResult(_0x25c750,null))[_0x97c0('0xc')](handleError(_0x25c750,null));};exports[_0x97c0('0x4b')]=function(_0x52643e,_0x3349df){return respondWithRpcPromise(_0x97c0('0x4c'),_0x52643e[_0x97c0('0x17')],routingClient)[_0x97c0('0x18')](respondWithResult(_0x3349df,null))['catch'](handleError(_0x3349df,null));};exports[_0x97c0('0x4d')]=function(_0x3795db,_0x102f68){return respondWithRpcPromise(_0x97c0('0x4c'),_0x3795db['query'],routingClient)[_0x97c0('0x18')](findById(_0x3795db[_0x97c0('0x1b')]['id']))[_0x97c0('0x18')](respondWithResult(_0x102f68,null))[_0x97c0('0xc')](handleError(_0x102f68,null));};exports['smsQueues']=function(_0x32881c,_0x3c4c27){return respondWithRpcPromise(_0x97c0('0x4e'),_0x32881c['query'],routingClient)[_0x97c0('0x18')](respondWithResult(_0x3c4c27,null))[_0x97c0('0xc')](handleError(_0x3c4c27,null));};exports[_0x97c0('0x4f')]=function(_0x32e392,_0x373c34){return respondWithRpcPromise(_0x97c0('0x4e'),_0x32e392[_0x97c0('0x17')],routingClient)['then'](findById(_0x32e392['params']['id']))[_0x97c0('0x18')](respondWithResult(_0x373c34,null))[_0x97c0('0xc')](handleError(_0x373c34,null));};exports['whatsappQueues']=function(_0x366a01,_0x5a4738){return respondWithRpcPromise('WhatsappQueues',_0x366a01[_0x97c0('0x17')],routingClient)['then'](respondWithResult(_0x5a4738,null))[_0x97c0('0xc')](handleError(_0x5a4738,null));};exports[_0x97c0('0x50')]=function(_0x56be23,_0x496336){return respondWithRpcPromise('WhatsappQueues',_0x56be23[_0x97c0('0x17')],routingClient)['then'](findById(_0x56be23[_0x97c0('0x1b')]['id']))[_0x97c0('0x18')](respondWithResult(_0x496336,null))[_0x97c0('0xc')](handleError(_0x496336,null));};exports[_0x97c0('0x51')]=function(_0x400a8d,_0x321460){return respondWithRpcPromise(_0x97c0('0x52'),_0x400a8d[_0x97c0('0x17')],routingClient)[_0x97c0('0x18')](respondWithResult(_0x321460,null))[_0x97c0('0xc')](handleError(_0x321460,null));};exports[_0x97c0('0x53')]=function(_0x536f72,_0x1c1182){return respondWithRpcPromise(_0x97c0('0x52'),_0x536f72[_0x97c0('0x17')],routingClient)[_0x97c0('0x18')](findById(_0x536f72[_0x97c0('0x1b')]['id']))['then'](respondWithResult(_0x1c1182,null))[_0x97c0('0xc')](handleError(_0x1c1182,null));};exports[_0x97c0('0x54')]=function(_0x579f54,_0x4116c9){return respondWithRpcPromise(_0x97c0('0x55'),_0x579f54[_0x97c0('0x17')])['then'](respondWithResult(_0x4116c9,null))[_0x97c0('0xc')](handleError(_0x4116c9,null));};exports[_0x97c0('0x56')]=function(_0x10f1aa,_0x165c72){return respondWithRpcPromise('ChatQueuesWaitingInteractions',_0x10f1aa['query'],routingClient)['then'](respondWithResult(_0x165c72,null))[_0x97c0('0xc')](handleError(_0x165c72,null));};exports[_0x97c0('0x57')]=function(_0x442bba,_0x41f8e7){return respondWithRpcPromise(_0x97c0('0x58'),_0x442bba[_0x97c0('0x17')],routingClient)[_0x97c0('0x18')](respondWithResult(_0x41f8e7,null))[_0x97c0('0xc')](handleError(_0x41f8e7,null));};exports['openchannelQueuesWaitingInteractions']=function(_0x52d9d9,_0x199abc){return respondWithRpcPromise('OpenchannelQueuesWaitingInteractions',_0x52d9d9['query'],routingClient)['then'](respondWithResult(_0x199abc,null))[_0x97c0('0xc')](handleError(_0x199abc,null));};exports[_0x97c0('0x59')]=function(_0x123a99,_0x30968e){return respondWithRpcPromise(_0x97c0('0x5a'),_0x123a99['query'],routingClient)['then'](function(_0x35ced3){if(_0x123a99[_0x97c0('0x17')][_0x97c0('0x5b')]!==undefined){var _0x3a8ac0=_(_0x35ced3['rows'])[_0x97c0('0x5c')]([_0x123a99['query'][_0x97c0('0x5b')],_0x123a99[_0x97c0('0x1b')]['id']])[_0x97c0('0x5d')](_0x97c0('0x5e'))[_0x97c0('0x5f')]()[_0x97c0('0x60')]();return _0x35ced3[_0x97c0('0x14')][_0x97c0('0x5c')](function(_0x465a92){return _0x3a8ac0[_0x97c0('0x61')](_0x465a92['queue_id'])>-0x1;});}else{return _0x35ced3[_0x97c0('0x14')]['filter'](function(_0x5b8ebd){return _0x5b8ebd[_0x97c0('0x5e')]===parseInt(_0x123a99[_0x97c0('0x1b')]['id']);});}})['then'](respondWithResult(_0x30968e,null))[_0x97c0('0xc')](handleError(_0x30968e,null));};exports['smsQueuesWaitingInteractions']=function(_0x1f2380,_0x24a81c){return respondWithRpcPromise('SmsQueuesWaitingInteractions',_0x1f2380[_0x97c0('0x17')],routingClient)['then'](respondWithResult(_0x24a81c,null))['catch'](handleError(_0x24a81c,null));};exports['whatsappQueuesWaitingInteractions']=function(_0xab71f4,_0x12bb6e){return respondWithRpcPromise('WhatsappQueuesWaitingInteractions',_0xab71f4[_0x97c0('0x17')],routingClient)[_0x97c0('0x18')](respondWithResult(_0x12bb6e,null))[_0x97c0('0xc')](handleError(_0x12bb6e,null));};exports[_0x97c0('0x62')]=function(_0x41b864,_0x11db50){return respondWithRpcPromise(_0x97c0('0x63'),_0x41b864[_0x97c0('0x17')],routingClient)['then'](respondWithResult(_0x11db50,null))[_0x97c0('0xc')](handleError(_0x11db50,null));};exports['queueNotify']=function(_0x597cd1){return function(_0x4062f8,_0x4f9307){var _0x3f69a6,_0x15f953;var _0x567e15=_[_0x97c0('0x64')](_0x597cd1);var _0x344d5f=_0x597cd1===_0x97c0('0x65')?_0x97c0('0x66'):_0x97c0('0x67');return db[_0x567e15+'Queue'][_0x97c0('0x68')]({'raw':!![],'where':{'id':_0x4062f8[_0x97c0('0x1b')]['id']}})[_0x97c0('0x18')](function(_0x58e7c0){if(_[_0x97c0('0x12')](_0x58e7c0)){throw new Error(_0x567e15+_0x97c0('0x69'));}_0x3f69a6=_0x58e7c0;return db[_0x567e15+_0x97c0('0x6a')][_0x97c0('0x68')]({'where':{'id':_0x4062f8['body'][_0x97c0('0x6b')]},'include':[{'model':db[_0x567e15+_0x97c0('0x6c')],'as':_0x97c0('0x6c')},{'model':db[_0x567e15+_0x344d5f],'as':_0x97c0('0x67')}]});})[_0x97c0('0x18')](function(_0x5828f7){if(_[_0x97c0('0x12')](_0x5828f7)){throw new Error(_0x567e15+_0x97c0('0x6d'));}_0x15f953=_0x5828f7;return _0x5828f7['update']({'read':0x0,'readAt':null,'UserId':null});})['then'](function(){var _0x372415={'uniqueid':_0x597cd1+'.'+_0x15f953['id']+'.'+_0x15f953[_0x97c0('0x6c')]['id'],'FromUserId':_0x4062f8[_0x97c0('0x30')]['id'],'type':'queue'};_0x372415[_0x567e15+'MessageId']=_0x15f953['id'];_0x372415[_0x567e15+_0x97c0('0x6e')]=_0x15f953['Interaction']['id'];_0x372415[_0x97c0('0x6f')+_0x567e15+_0x344d5f+'Id']=_0x15f953[_0x97c0('0x67')]['id'];_0x372415['To'+_0x567e15+_0x97c0('0x70')]=_0x3f69a6['id'];return db[_0x567e15+_0x97c0('0x71')][_0x97c0('0x72')](_0x372415);})[_0x97c0('0x18')](function(){return respondWithRpcPromise(_0x97c0('0x73'),{'channel':_0x597cd1,'interaction':_0x15f953['Interaction'],'message':_0x15f953,'account':_0x15f953[_0x97c0('0x67')],'applications':[{'id':0x0,'priority':0x1,'app':_0x97c0('0x74'),'appdata':_0x3f69a6[_0x97c0('0x10')]+','+(_0x15f953[_0x97c0('0x67')][_0x97c0('0x75')]||0x12c),'interval':_0x97c0('0x76')}]},routingClient);})[_0x97c0('0x18')](respondWithResult(_0x4f9307,null))[_0x97c0('0xc')](handleError(_0x4f9307,null));};};exports[_0x97c0('0x77')]=function(_0x15b27f,_0x1cc32c){var _0x1b2e52,_0x3c4c8e;if(_[_0x97c0('0x12')](_0x15b27f['body'][_0x97c0('0x78')])){throw new Error(_0x97c0('0x79'));}var _0x2f9ffe=_0x15b27f[_0x97c0('0x20')]['channel'];var _0x1eb0c7=_[_0x97c0('0x64')](_0x2f9ffe);var _0x6b955=_0x2f9ffe===_0x97c0('0x65')?_0x97c0('0x66'):_0x97c0('0x67');return db[_0x97c0('0x7a')]['findOne']({'raw':!![],'where':{'id':_0x15b27f[_0x97c0('0x1b')]['id'],'role':'agent'}})[_0x97c0('0x18')](function(_0x1822b5){if(_[_0x97c0('0x12')](_0x1822b5)){throw new Error('Agent\x20not\x20found');}_0x1b2e52=_0x1822b5;return db[_0x1eb0c7+_0x97c0('0x6a')][_0x97c0('0x68')]({'where':{'id':_0x15b27f[_0x97c0('0x20')][_0x97c0('0x6b')]},'include':[{'model':db[_0x1eb0c7+_0x97c0('0x6c')],'as':'Interaction'},{'model':db[_0x1eb0c7+_0x6b955],'as':_0x97c0('0x67')}]});})['then'](function(_0x2db5b0){if(_[_0x97c0('0x12')](_0x2db5b0)){throw new Error(_0x1eb0c7+'\x20Message\x20not\x20found');}_0x3c4c8e=_0x2db5b0;return _0x2db5b0[_0x97c0('0x7b')]({'read':0x0,'readAt':null,'UserId':null});})[_0x97c0('0x18')](function(){var _0x1419cd={'uniqueid':_0x2f9ffe+'.'+_0x3c4c8e['id']+'.'+_0x3c4c8e[_0x97c0('0x6c')]['id'],'FromUserId':_0x15b27f[_0x97c0('0x30')]['id'],'type':_0x97c0('0x74'),'ToUserId':_0x1b2e52['id']};_0x1419cd[_0x1eb0c7+_0x97c0('0x7c')]=_0x3c4c8e['id'];_0x1419cd[_0x1eb0c7+_0x97c0('0x6e')]=_0x3c4c8e['Interaction']['id'];_0x1419cd[_0x97c0('0x6f')+_0x1eb0c7+_0x6b955+'Id']=_0x3c4c8e[_0x97c0('0x67')]['id'];return db[_0x1eb0c7+_0x97c0('0x71')]['create'](_0x1419cd);})['then'](function(){return respondWithRpcPromise(_0x97c0('0x73'),{'channel':_0x2f9ffe,'interaction':_0x3c4c8e[_0x97c0('0x6c')],'message':_0x3c4c8e,'account':_0x3c4c8e[_0x97c0('0x67')],'applications':[{'id':0x0,'priority':0x1,'app':_0x97c0('0x7d'),'appdata':_0x1b2e52[_0x97c0('0x10')]+','+(_0x3c4c8e[_0x97c0('0x67')][_0x97c0('0x7e')]||0x12c),'interval':_0x97c0('0x76')}]},routingClient);})[_0x97c0('0x18')](respondWithResult(_0x1cc32c,null))[_0x97c0('0xc')](handleError(_0x1cc32c,null));};
\ No newline at end of file
+var _0xac9d=['SIP/%s','INTERACTION','internal','AgentCapacity','capacity','Telephones','trunks','Trunks','campaigns','Campaigns','chatQueues','ChatQueues','showChatQueues','mailQueues','showMailQueues','MailQueues','mailAccounts','MailAccounts','openchannelQueues','showOpenchannelQueues','OpenchannelQueues','smsQueues','SmsQueues','whatsappQueues','WhatsappQueues','showWhatsappQueues','faxQueues','FaxQueues','faxAccounts','FaxAccounts','chatQueuesWaitingInteractions','ChatQueuesWaitingInteractions','mailQueuesWaitingInteractions','openchannelQueuesWaitingInteractions','OpenchannelQueuesWaitingInteractions','type','filter','uniq','indexOf','queue_id','SmsQueuesWaitingInteractions','whatsappQueuesWaitingInteractions','faxQueuesWaitingInteractions','FaxQueuesWaitingInteractions','queueNotify','chat','Website','Account','findOne','\x20Queue\x20not\x20found','messageId','Interaction','queue','MessageId','InteractionId','From','QueueId','TransferReport','create','Start','queueTransferTimeout','*,*,*,*','agentNotify','channel','Channel\x20field\x20is\x20mandatory','User','\x20Message\x20not\x20found','update','agentTransferTimeout','bluebird','moment','lodash','util','../../mysqldb','../../config/logger','api','jayson/promise','http','client','request','then','error','code','message','result','catch','json','sendStatus','stack','name','status','send','isNil','find','rows','voiceChannels','VoiceChannels','voiceChannelMixMonitor','merge','query','params','voiceChannelStopMixMonitor','VoiceChannelStopMixMonitor','voiceQueues','showVoiceQueues','VoiceQueues','updateVoiceQueue','UpdateVoiceQueue','body','voiceQueuesPreview','VoiceQueuesPreview','voiceQueuesChannels','VoiceQueuesChannels','VoiceQueuesChannel','voiceQueuesChannelHangup','VoiceQueuesChannelHangup','voiceQueuesChannelRedirect','outbound','Outbound','outboundChannels','OutboundChannels','Agents','agentCapacity','interaction','user','hasOwnProperty','MemberReport','findAll','length','findOrCreate','interface','format'];(function(_0x56c70f,_0x4e4493){var _0x3812ed=function(_0x25460f){while(--_0x25460f){_0x56c70f['push'](_0x56c70f['shift']());}};_0x3812ed(++_0x4e4493);}(_0xac9d,0x14d));var _0xdac9=function(_0xd34c38,_0x455c59){_0xd34c38=_0xd34c38-0x0;var _0xd180d6=_0xac9d[_0xd34c38];return _0xd180d6;};'use strict';var BPromise=require(_0xdac9('0x0'));var moment=require(_0xdac9('0x1'));var _=require(_0xdac9('0x2'));var util=require(_0xdac9('0x3'));var db=require(_0xdac9('0x4'))['db'];var logger=require(_0xdac9('0x5'))(_0xdac9('0x6'));var jayson=require(_0xdac9('0x7'));var amiClient=jayson['client'][_0xdac9('0x8')]({'port':0x232a});var mailClient=jayson['client'][_0xdac9('0x8')]({'port':0x232b});var routingClient=jayson[_0xdac9('0x9')][_0xdac9('0x8')]({'port':0x232c});function respondWithRpcPromise(_0x776b6c,_0x1c78c5,_0x39f560){return new BPromise(function(_0x5531af,_0x2b1d6f){var _0x47d9fd=_0x39f560?_0x39f560:amiClient;return _0x47d9fd[_0xdac9('0xa')](_0x776b6c,_0x1c78c5)[_0xdac9('0xb')](function(_0x39c92c){if(_0x39c92c[_0xdac9('0xc')]){if(_0x39c92c[_0xdac9('0xc')][_0xdac9('0xd')]===0x1f4){return _0x2b1d6f(_0x39c92c[_0xdac9('0xc')][_0xdac9('0xe')]);}return _0x5531af(_0x39c92c[_0xdac9('0xc')]['message']);}else{_0x5531af(_0x39c92c[_0xdac9('0xf')]);}})[_0xdac9('0x10')](function(_0x5a9bde){_0x2b1d6f(_0x5a9bde);});});}function respondWithResult(_0x3d8e97,_0xeddbc1){_0xeddbc1=_0xeddbc1||0xc8;return function(_0xbfe6d8){if(_0xbfe6d8){return _0x3d8e97['status'](_0xeddbc1)[_0xdac9('0x11')](_0xbfe6d8);}return _0x3d8e97[_0xdac9('0x12')](0x194);};}function handleError(_0x9e1bf6,_0x5f0bbd){_0x5f0bbd=_0x5f0bbd||0x1f4;return function(_0x5dd536){logger[_0xdac9('0xc')](_0x5dd536[_0xdac9('0x13')]);if(_0x5dd536['name']){delete _0x5dd536[_0xdac9('0x14')];}_0x9e1bf6[_0xdac9('0x15')](_0x5f0bbd)[_0xdac9('0x16')](_0x5dd536);};}function findById(_0x5b2f1b){return function(_0x2221f8){if(!_[_0xdac9('0x17')](_0x5b2f1b)&&!_[_0xdac9('0x17')](_0x2221f8)&&!_[_0xdac9('0x17')](_0x2221f8['rows'])){return _[_0xdac9('0x18')](_0x2221f8[_0xdac9('0x19')],function(_0x571e07){return _0x571e07['id']==_0x5b2f1b;});}return null;};}exports[_0xdac9('0x1a')]=function(_0xa57f2d,_0x171df1){return respondWithRpcPromise(_0xdac9('0x1b'),_0xa57f2d['query'])['then'](respondWithResult(_0x171df1,null))[_0xdac9('0x10')](handleError(_0x171df1,null));};exports[_0xdac9('0x1c')]=function(_0x2b9d91,_0x395ec7){return respondWithRpcPromise('VoiceChannelMixMonitor',_[_0xdac9('0x1d')](_0x2b9d91[_0xdac9('0x1e')],_0x2b9d91[_0xdac9('0x1f')]))[_0xdac9('0xb')](respondWithResult(_0x395ec7,null))[_0xdac9('0x10')](handleError(_0x395ec7,null));};exports[_0xdac9('0x20')]=function(_0x41335a,_0xa1f726){return respondWithRpcPromise(_0xdac9('0x21'),_[_0xdac9('0x1d')](_0x41335a['query'],_0x41335a[_0xdac9('0x1f')]))[_0xdac9('0xb')](respondWithResult(_0xa1f726,null))[_0xdac9('0x10')](handleError(_0xa1f726,null));};exports[_0xdac9('0x22')]=function(_0x5ca076,_0x1e631a){return respondWithRpcPromise('VoiceQueues',_0x5ca076[_0xdac9('0x1e')])[_0xdac9('0xb')](respondWithResult(_0x1e631a,null))['catch'](handleError(_0x1e631a,null));};exports[_0xdac9('0x23')]=function(_0x5105f1,_0x450f91){return respondWithRpcPromise(_0xdac9('0x24'),_0x5105f1[_0xdac9('0x1e')])[_0xdac9('0xb')](findById(_0x5105f1['params']['id']))['then'](respondWithResult(_0x450f91,null))[_0xdac9('0x10')](handleError(_0x450f91,null));};exports[_0xdac9('0x25')]=function(_0x4fe3bd,_0x4c4e21){return respondWithRpcPromise(_0xdac9('0x26'),_[_0xdac9('0x1d')](_0x4fe3bd[_0xdac9('0x27')],_0x4fe3bd[_0xdac9('0x1f')]))[_0xdac9('0xb')](respondWithResult(_0x4c4e21,null))[_0xdac9('0x10')](handleError(_0x4c4e21,null));};exports[_0xdac9('0x28')]=function(_0x2cda4d,_0x406ed0){return respondWithRpcPromise(_0xdac9('0x29'),_[_0xdac9('0x1d')](_0x2cda4d[_0xdac9('0x1e')],_0x2cda4d[_0xdac9('0x1f')]))[_0xdac9('0xb')](respondWithResult(_0x406ed0,null))[_0xdac9('0x10')](handleError(_0x406ed0,null));};exports[_0xdac9('0x2a')]=function(_0x372f02,_0x44eff2){return respondWithRpcPromise(_0xdac9('0x2b'),_0x372f02[_0xdac9('0x1e')])[_0xdac9('0xb')](respondWithResult(_0x44eff2,null))['catch'](handleError(_0x44eff2,null));};exports['voiceQueuesChannel']=function(_0x1e6832,_0x416501){return respondWithRpcPromise(_0xdac9('0x2c'),_[_0xdac9('0x1d')](_0x1e6832[_0xdac9('0x1e')],_0x1e6832['params']))[_0xdac9('0xb')](respondWithResult(_0x416501,null))['catch'](handleError(_0x416501,null));};exports[_0xdac9('0x2d')]=function(_0x2a611e,_0x5cfebf){return respondWithRpcPromise(_0xdac9('0x2e'),_['merge'](_0x2a611e['query'],_0x2a611e[_0xdac9('0x1f')]))[_0xdac9('0xb')](respondWithResult(_0x5cfebf,null))[_0xdac9('0x10')](handleError(_0x5cfebf,null));};exports[_0xdac9('0x2f')]=function(_0x3bab10,_0x363d93){return respondWithRpcPromise('VoiceQueuesChannelRedirect',_[_0xdac9('0x1d')](_0x3bab10[_0xdac9('0x1e')],_0x3bab10['params']))[_0xdac9('0xb')](respondWithResult(_0x363d93,null))[_0xdac9('0x10')](handleError(_0x363d93,null));};exports[_0xdac9('0x30')]=function(_0x27bdfb,_0x35aa58){return respondWithRpcPromise(_0xdac9('0x31'),_0x27bdfb[_0xdac9('0x1e')])['then'](respondWithResult(_0x35aa58,null))[_0xdac9('0x10')](handleError(_0x35aa58,null));};exports[_0xdac9('0x32')]=function(_0x238769,_0x4b6b09){return respondWithRpcPromise(_0xdac9('0x33'),_0x238769[_0xdac9('0x1e')])[_0xdac9('0xb')](respondWithResult(_0x4b6b09,null))[_0xdac9('0x10')](handleError(_0x4b6b09,null));};exports['agents']=function(_0x58fd14,_0x1d0243){var _0xe47a3c;return respondWithRpcPromise(_0xdac9('0x34'),_0x58fd14[_0xdac9('0x1e')])[_0xdac9('0xb')](function(_0x579581){_0xe47a3c=_0x579581;return respondWithRpcPromise(_0xdac9('0x34'),_0x58fd14['query'],routingClient);})[_0xdac9('0xb')](function(_0xaca43c){return _[_0xdac9('0x1d')]({},_0xaca43c,_0xe47a3c);})[_0xdac9('0xb')](respondWithResult(_0x1d0243,null))[_0xdac9('0x10')](handleError(_0x1d0243,null));};exports[_0xdac9('0x35')]=function(_0x413fb1,_0xb176e0){if(_0x413fb1[_0xdac9('0x27')]&&_0x413fb1[_0xdac9('0x27')][_0xdac9('0x36')]&&_0x413fb1[_0xdac9('0x37')]&&_0x413fb1[_0xdac9('0x37')][_0xdac9('0x14')]){for(var _0x5335ae in _0x413fb1[_0xdac9('0x27')][_0xdac9('0x36')]){if(_0x413fb1['body'][_0xdac9('0x36')][_0xdac9('0x38')](_0x5335ae)){db[_0xdac9('0x39')][_0xdac9('0x3a')]({'where':{'channel':_0x5335ae,'membername':_0x413fb1[_0xdac9('0x37')][_0xdac9('0x14')],'type':'INTERACTION','exitAt':null,'uniqueid':_0x413fb1[_0xdac9('0x27')]['interaction'][_0x5335ae]&&_0x413fb1[_0xdac9('0x27')][_0xdac9('0x36')][_0x5335ae][_0xdac9('0x3b')]?{'$notIn':_0x413fb1[_0xdac9('0x27')]['interaction'][_0x5335ae]}:{'$ne':null}}})['then'](function(_0x585f08){var _0xcb7b82=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');for(var _0x4159fd=0x0,_0x15c332=_0x585f08['length'];_0x4159fd<_0x15c332;_0x4159fd+=0x1){_0x585f08[_0x4159fd]['updateAttributes']({'exitAt':_0xcb7b82});}});for(var _0x1666c5=0x0;_0x1666c5<_0x413fb1[_0xdac9('0x27')][_0xdac9('0x36')][_0x5335ae][_0xdac9('0x3b')];_0x1666c5+=0x1){db[_0xdac9('0x39')][_0xdac9('0x3c')]({'where':{'channel':_0x5335ae,'membername':_0x413fb1[_0xdac9('0x37')][_0xdac9('0x14')],'type':'INTERACTION','uniqueid':_0x413fb1[_0xdac9('0x27')][_0xdac9('0x36')][_0x5335ae][_0x1666c5],'exitAt':null},'defaults':{'channel':_0x5335ae,'membername':_0x413fb1[_0xdac9('0x37')][_0xdac9('0x14')],'interface':_[_0xdac9('0x17')](_0x413fb1[_0xdac9('0x37')][_0xdac9('0x3d')])?util[_0xdac9('0x3e')](_0xdac9('0x3f'),_0x413fb1[_0xdac9('0x37')][_0xdac9('0x14')]):_0x413fb1[_0xdac9('0x37')][_0xdac9('0x3d')],'type':_0xdac9('0x40'),'enterAt':moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'role':'agent','internal':_0x413fb1[_0xdac9('0x37')][_0xdac9('0x41')],'uniqueid':_0x413fb1['body'][_0xdac9('0x36')][_0x5335ae][_0x1666c5]}});}}}}return respondWithRpcPromise(_0xdac9('0x42'),{'id':_0x413fb1[_0xdac9('0x1f')]['id'],'capacity':_0x413fb1['body'][_0xdac9('0x43')]},routingClient)[_0xdac9('0xb')](respondWithResult(_0xb176e0,null))['catch'](handleError(_0xb176e0,null));};exports['telephones']=function(_0x46f1c0,_0x4469d8){return respondWithRpcPromise(_0xdac9('0x44'),_0x46f1c0[_0xdac9('0x1e')])[_0xdac9('0xb')](respondWithResult(_0x4469d8,null))[_0xdac9('0x10')](handleError(_0x4469d8,null));};exports[_0xdac9('0x45')]=function(_0x3a77e3,_0x298c72){return respondWithRpcPromise(_0xdac9('0x46'),_0x3a77e3[_0xdac9('0x1e')])[_0xdac9('0xb')](respondWithResult(_0x298c72,null))[_0xdac9('0x10')](handleError(_0x298c72,null));};exports[_0xdac9('0x47')]=function(_0x35a378,_0x5d0b43){return respondWithRpcPromise(_0xdac9('0x48'),_0x35a378[_0xdac9('0x1e')])[_0xdac9('0xb')](respondWithResult(_0x5d0b43,null))[_0xdac9('0x10')](handleError(_0x5d0b43,null));};exports[_0xdac9('0x49')]=function(_0x3a391a,_0x4b118e){return respondWithRpcPromise(_0xdac9('0x4a'),_0x3a391a[_0xdac9('0x1e')],routingClient)[_0xdac9('0xb')](respondWithResult(_0x4b118e,null))[_0xdac9('0x10')](handleError(_0x4b118e,null));};exports[_0xdac9('0x4b')]=function(_0x2a5bf9,_0x1eec39){return respondWithRpcPromise(_0xdac9('0x4a'),_0x2a5bf9[_0xdac9('0x1e')],routingClient)['then'](findById(_0x2a5bf9[_0xdac9('0x1f')]['id']))[_0xdac9('0xb')](respondWithResult(_0x1eec39,null))[_0xdac9('0x10')](handleError(_0x1eec39,null));};exports[_0xdac9('0x4c')]=function(_0x2ca15d,_0x21ab3d){return respondWithRpcPromise('MailQueues',_0x2ca15d['query'],routingClient)[_0xdac9('0xb')](respondWithResult(_0x21ab3d,null))[_0xdac9('0x10')](handleError(_0x21ab3d,null));};exports[_0xdac9('0x4d')]=function(_0x46017d,_0x1c1f5f){return respondWithRpcPromise(_0xdac9('0x4e'),_0x46017d['query'],routingClient)['then'](findById(_0x46017d['params']['id']))[_0xdac9('0xb')](respondWithResult(_0x1c1f5f,null))[_0xdac9('0x10')](handleError(_0x1c1f5f,null));};exports[_0xdac9('0x4f')]=function(_0x2f581b,_0x52ad7b){return respondWithRpcPromise(_0xdac9('0x50'),_0x2f581b[_0xdac9('0x1e')],mailClient)[_0xdac9('0xb')](respondWithResult(_0x52ad7b,null))[_0xdac9('0x10')](handleError(_0x52ad7b,null));};exports[_0xdac9('0x51')]=function(_0x496d9c,_0x19a46e){return respondWithRpcPromise('OpenchannelQueues',_0x496d9c[_0xdac9('0x1e')],routingClient)['then'](respondWithResult(_0x19a46e,null))[_0xdac9('0x10')](handleError(_0x19a46e,null));};exports[_0xdac9('0x52')]=function(_0x2fd7c8,_0x360499){return respondWithRpcPromise(_0xdac9('0x53'),_0x2fd7c8[_0xdac9('0x1e')],routingClient)[_0xdac9('0xb')](findById(_0x2fd7c8['params']['id']))['then'](respondWithResult(_0x360499,null))['catch'](handleError(_0x360499,null));};exports[_0xdac9('0x54')]=function(_0x42ba53,_0x830d54){return respondWithRpcPromise(_0xdac9('0x55'),_0x42ba53[_0xdac9('0x1e')],routingClient)[_0xdac9('0xb')](respondWithResult(_0x830d54,null))[_0xdac9('0x10')](handleError(_0x830d54,null));};exports['showSmsQueues']=function(_0x2d81fc,_0x5b63d8){return respondWithRpcPromise('SmsQueues',_0x2d81fc[_0xdac9('0x1e')],routingClient)['then'](findById(_0x2d81fc['params']['id']))[_0xdac9('0xb')](respondWithResult(_0x5b63d8,null))[_0xdac9('0x10')](handleError(_0x5b63d8,null));};exports[_0xdac9('0x56')]=function(_0x55ce14,_0x552cac){return respondWithRpcPromise(_0xdac9('0x57'),_0x55ce14[_0xdac9('0x1e')],routingClient)['then'](respondWithResult(_0x552cac,null))[_0xdac9('0x10')](handleError(_0x552cac,null));};exports[_0xdac9('0x58')]=function(_0x26b9b5,_0x272f14){return respondWithRpcPromise(_0xdac9('0x57'),_0x26b9b5[_0xdac9('0x1e')],routingClient)[_0xdac9('0xb')](findById(_0x26b9b5[_0xdac9('0x1f')]['id']))[_0xdac9('0xb')](respondWithResult(_0x272f14,null))[_0xdac9('0x10')](handleError(_0x272f14,null));};exports[_0xdac9('0x59')]=function(_0x1e2e7b,_0x5401e6){return respondWithRpcPromise(_0xdac9('0x5a'),_0x1e2e7b['query'],routingClient)[_0xdac9('0xb')](respondWithResult(_0x5401e6,null))[_0xdac9('0x10')](handleError(_0x5401e6,null));};exports['showFaxQueues']=function(_0x3a6c78,_0x3bee81){return respondWithRpcPromise(_0xdac9('0x5a'),_0x3a6c78[_0xdac9('0x1e')],routingClient)[_0xdac9('0xb')](findById(_0x3a6c78[_0xdac9('0x1f')]['id']))[_0xdac9('0xb')](respondWithResult(_0x3bee81,null))[_0xdac9('0x10')](handleError(_0x3bee81,null));};exports[_0xdac9('0x5b')]=function(_0x45f183,_0x263b84){return respondWithRpcPromise(_0xdac9('0x5c'),_0x45f183[_0xdac9('0x1e')])[_0xdac9('0xb')](respondWithResult(_0x263b84,null))[_0xdac9('0x10')](handleError(_0x263b84,null));};exports[_0xdac9('0x5d')]=function(_0x4c4a7b,_0x3a457b){return respondWithRpcPromise(_0xdac9('0x5e'),_0x4c4a7b[_0xdac9('0x1e')],routingClient)[_0xdac9('0xb')](respondWithResult(_0x3a457b,null))['catch'](handleError(_0x3a457b,null));};exports[_0xdac9('0x5f')]=function(_0x31f56e,_0x1b6a68){return respondWithRpcPromise('MailQueuesWaitingInteractions',_0x31f56e[_0xdac9('0x1e')],routingClient)[_0xdac9('0xb')](respondWithResult(_0x1b6a68,null))['catch'](handleError(_0x1b6a68,null));};exports[_0xdac9('0x60')]=function(_0x1b8ad9,_0x2a4d12){return respondWithRpcPromise('OpenchannelQueuesWaitingInteractions',_0x1b8ad9[_0xdac9('0x1e')],routingClient)[_0xdac9('0xb')](respondWithResult(_0x2a4d12,null))[_0xdac9('0x10')](handleError(_0x2a4d12,null));};exports['openchannelQueuesIdWaitingInteractions']=function(_0x5c39e9,_0x108e03){return respondWithRpcPromise(_0xdac9('0x61'),_0x5c39e9[_0xdac9('0x1e')],routingClient)[_0xdac9('0xb')](function(_0x4110da){if(_0x5c39e9[_0xdac9('0x1e')][_0xdac9('0x62')]!==undefined){var _0x2de535=_(_0x4110da[_0xdac9('0x19')])[_0xdac9('0x63')]([_0x5c39e9[_0xdac9('0x1e')][_0xdac9('0x62')],_0x5c39e9[_0xdac9('0x1f')]['id']])['map']('queue_id')[_0xdac9('0x64')]()['value']();return _0x4110da['rows'][_0xdac9('0x63')](function(_0x199518){return _0x2de535[_0xdac9('0x65')](_0x199518[_0xdac9('0x66')])>-0x1;});}else{return _0x4110da['rows'][_0xdac9('0x63')](function(_0xff5be){return _0xff5be[_0xdac9('0x66')]===parseInt(_0x5c39e9['params']['id']);});}})[_0xdac9('0xb')](respondWithResult(_0x108e03,null))[_0xdac9('0x10')](handleError(_0x108e03,null));};exports['smsQueuesWaitingInteractions']=function(_0x3cc0f9,_0x59b5b2){return respondWithRpcPromise(_0xdac9('0x67'),_0x3cc0f9['query'],routingClient)[_0xdac9('0xb')](respondWithResult(_0x59b5b2,null))[_0xdac9('0x10')](handleError(_0x59b5b2,null));};exports[_0xdac9('0x68')]=function(_0x251011,_0x9981f){return respondWithRpcPromise('WhatsappQueuesWaitingInteractions',_0x251011[_0xdac9('0x1e')],routingClient)[_0xdac9('0xb')](respondWithResult(_0x9981f,null))[_0xdac9('0x10')](handleError(_0x9981f,null));};exports[_0xdac9('0x69')]=function(_0x13be64,_0x227857){return respondWithRpcPromise(_0xdac9('0x6a'),_0x13be64[_0xdac9('0x1e')],routingClient)[_0xdac9('0xb')](respondWithResult(_0x227857,null))['catch'](handleError(_0x227857,null));};exports[_0xdac9('0x6b')]=function(_0x300738){return function(_0x12c15b,_0x4f7f63){var _0x571130,_0x5650d1;var _0x5adc83=_['capitalize'](_0x300738);var _0x325407=_0x300738===_0xdac9('0x6c')?_0xdac9('0x6d'):_0xdac9('0x6e');return db[_0x5adc83+'Queue'][_0xdac9('0x6f')]({'raw':!![],'where':{'id':_0x12c15b['params']['id']}})[_0xdac9('0xb')](function(_0x750de7){if(_[_0xdac9('0x17')](_0x750de7)){throw new Error(_0x5adc83+_0xdac9('0x70'));}_0x571130=_0x750de7;return db[_0x5adc83+'Message'][_0xdac9('0x6f')]({'where':{'id':_0x12c15b[_0xdac9('0x27')][_0xdac9('0x71')]},'include':[{'model':db[_0x5adc83+_0xdac9('0x72')],'as':'Interaction'},{'model':db[_0x5adc83+_0x325407],'as':'Account'}]});})[_0xdac9('0xb')](function(_0x414f8a){if(_[_0xdac9('0x17')](_0x414f8a)){throw new Error(_0x5adc83+'\x20Message\x20not\x20found');}_0x5650d1=_0x414f8a;return _0x414f8a['update']({'read':0x0,'readAt':null,'UserId':null});})[_0xdac9('0xb')](function(){var _0x111bff={'uniqueid':_0x300738+'.'+_0x5650d1['id']+'.'+_0x5650d1[_0xdac9('0x72')]['id'],'FromUserId':_0x12c15b[_0xdac9('0x37')]['id'],'type':_0xdac9('0x73')};_0x111bff[_0x5adc83+_0xdac9('0x74')]=_0x5650d1['id'];_0x111bff[_0x5adc83+_0xdac9('0x75')]=_0x5650d1[_0xdac9('0x72')]['id'];_0x111bff[_0xdac9('0x76')+_0x5adc83+_0x325407+'Id']=_0x5650d1[_0xdac9('0x6e')]['id'];_0x111bff['To'+_0x5adc83+_0xdac9('0x77')]=_0x571130['id'];return db[_0x5adc83+_0xdac9('0x78')][_0xdac9('0x79')](_0x111bff);})['then'](function(){return respondWithRpcPromise(_0xdac9('0x7a'),{'channel':_0x300738,'interaction':_0x5650d1[_0xdac9('0x72')],'message':_0x5650d1,'account':_0x5650d1['Account'],'applications':[{'id':0x0,'priority':0x1,'app':_0xdac9('0x73'),'appdata':_0x571130['name']+','+(_0x5650d1[_0xdac9('0x6e')][_0xdac9('0x7b')]||0x12c),'interval':_0xdac9('0x7c')}]},routingClient);})[_0xdac9('0xb')](respondWithResult(_0x4f7f63,null))[_0xdac9('0x10')](handleError(_0x4f7f63,null));};};exports[_0xdac9('0x7d')]=function(_0x232876,_0x4463ca){var _0x171d38,_0x328fa2;if(_[_0xdac9('0x17')](_0x232876['body'][_0xdac9('0x7e')])){throw new Error(_0xdac9('0x7f'));}var _0x284247=_0x232876[_0xdac9('0x27')][_0xdac9('0x7e')];var _0x4d7208=_['capitalize'](_0x284247);var _0x363541=_0x284247==='chat'?'Website':_0xdac9('0x6e');return db[_0xdac9('0x80')][_0xdac9('0x6f')]({'raw':!![],'where':{'id':_0x232876[_0xdac9('0x1f')]['id'],'role':'agent'}})[_0xdac9('0xb')](function(_0x8f37df){if(_[_0xdac9('0x17')](_0x8f37df)){throw new Error('Agent\x20not\x20found');}_0x171d38=_0x8f37df;return db[_0x4d7208+'Message'][_0xdac9('0x6f')]({'where':{'id':_0x232876[_0xdac9('0x27')]['messageId']},'include':[{'model':db[_0x4d7208+'Interaction'],'as':'Interaction'},{'model':db[_0x4d7208+_0x363541],'as':_0xdac9('0x6e')}]});})[_0xdac9('0xb')](function(_0x131c78){if(_['isNil'](_0x131c78)){throw new Error(_0x4d7208+_0xdac9('0x81'));}_0x328fa2=_0x131c78;return _0x131c78[_0xdac9('0x82')]({'read':0x0,'readAt':null,'UserId':null});})[_0xdac9('0xb')](function(){var _0x2ab89f={'uniqueid':_0x284247+'.'+_0x328fa2['id']+'.'+_0x328fa2[_0xdac9('0x72')]['id'],'FromUserId':_0x232876['user']['id'],'type':_0xdac9('0x73'),'ToUserId':_0x171d38['id']};_0x2ab89f[_0x4d7208+_0xdac9('0x74')]=_0x328fa2['id'];_0x2ab89f[_0x4d7208+'InteractionId']=_0x328fa2[_0xdac9('0x72')]['id'];_0x2ab89f[_0xdac9('0x76')+_0x4d7208+_0x363541+'Id']=_0x328fa2[_0xdac9('0x6e')]['id'];return db[_0x4d7208+_0xdac9('0x78')]['create'](_0x2ab89f);})['then'](function(){return respondWithRpcPromise(_0xdac9('0x7a'),{'channel':_0x284247,'interaction':_0x328fa2[_0xdac9('0x72')],'message':_0x328fa2,'account':_0x328fa2['Account'],'applications':[{'id':0x0,'priority':0x1,'app':'agent','appdata':_0x171d38[_0xdac9('0x14')]+','+(_0x328fa2['Account'][_0xdac9('0x83')]||0x12c),'interval':'*,*,*,*'}]},routingClient);})['then'](respondWithResult(_0x4463ca,null))[_0xdac9('0x10')](handleError(_0x4463ca,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc619=['put','/:id','update','delete','destroy','exports','util','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./schedule.controller','get','isAuthenticated','index','/:id/run','run','post'];(function(_0x5b4f24,_0x17f535){var _0x1cec35=function(_0x4e7995){while(--_0x4e7995){_0x5b4f24['push'](_0x5b4f24['shift']());}};_0x1cec35(++_0x17f535);}(_0xc619,0x10a));var _0x9c61=function(_0x1377d8,_0x455246){_0x1377d8=_0x1377d8-0x0;var _0x3bbee0=_0xc619[_0x1377d8];return _0x3bbee0;};'use strict';var multer=require('multer');var util=require(_0x9c61('0x0'));var path=require('path');var timeout=require(_0x9c61('0x1'));var express=require(_0x9c61('0x2'));var router=express[_0x9c61('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x9c61('0x4'));var interaction=require(_0x9c61('0x5'));var config=require(_0x9c61('0x6'));var controller=require(_0x9c61('0x7'));router[_0x9c61('0x8')]('/',auth[_0x9c61('0x9')](),controller[_0x9c61('0xa')]);router['get']('/:id',auth[_0x9c61('0x9')](),controller['show']);router['get'](_0x9c61('0xb'),auth[_0x9c61('0x9')](),controller[_0x9c61('0xc')]);router[_0x9c61('0xd')]('/',auth[_0x9c61('0x9')](),controller['create']);router[_0x9c61('0xe')](_0x9c61('0xf'),auth[_0x9c61('0x9')](),controller[_0x9c61('0x10')]);router[_0x9c61('0x11')]('/:id',auth[_0x9c61('0x9')](),controller[_0x9c61('0x12')]);module[_0x9c61('0x13')]=router;
\ No newline at end of file
+var _0xb212=['../../config/environment','./schedule.controller','get','isAuthenticated','index','/:id','show','/:id/run','run','post','create','put','delete','destroy','multer','util','path','connect-timeout','express','Router','../../components/interaction/service'];(function(_0x3bf83f,_0x181cac){var _0x22c4a9=function(_0xb3ff0d){while(--_0xb3ff0d){_0x3bf83f['push'](_0x3bf83f['shift']());}};_0x22c4a9(++_0x181cac);}(_0xb212,0x149));var _0x2b21=function(_0x1c4ddd,_0x175e5e){_0x1c4ddd=_0x1c4ddd-0x0;var _0x7b3c46=_0xb212[_0x1c4ddd];return _0x7b3c46;};'use strict';var multer=require(_0x2b21('0x0'));var util=require(_0x2b21('0x1'));var path=require(_0x2b21('0x2'));var timeout=require(_0x2b21('0x3'));var express=require(_0x2b21('0x4'));var router=express[_0x2b21('0x5')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0x2b21('0x6'));var config=require(_0x2b21('0x7'));var controller=require(_0x2b21('0x8'));router[_0x2b21('0x9')]('/',auth[_0x2b21('0xa')](),controller[_0x2b21('0xb')]);router[_0x2b21('0x9')](_0x2b21('0xc'),auth[_0x2b21('0xa')](),controller[_0x2b21('0xd')]);router[_0x2b21('0x9')](_0x2b21('0xe'),auth['isAuthenticated'](),controller[_0x2b21('0xf')]);router[_0x2b21('0x10')]('/',auth[_0x2b21('0xa')](),controller[_0x2b21('0x11')]);router[_0x2b21('0x12')](_0x2b21('0xc'),auth[_0x2b21('0xa')](),controller['update']);router[_0x2b21('0x13')](_0x2b21('0xc'),auth[_0x2b21('0xa')](),controller[_0x2b21('0x14')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xab6e=['weeks','days','minutes','ENUM','csv','pdf','xlsx','custom','default','BOOLEAN','exports','STRING','0\x200\x20*\x20*\x20*','DATE','years','quarters','months'];(function(_0x324dab,_0x4bf102){var _0x5638f8=function(_0x55fb3d){while(--_0x55fb3d){_0x324dab['push'](_0x324dab['shift']());}};_0x5638f8(++_0x4bf102);}(_0xab6e,0x12b));var _0xeab6=function(_0x26ac27,_0x574b86){_0x26ac27=_0x26ac27-0x0;var _0x44a599=_0xab6e[_0x26ac27];return _0x44a599;};'use strict';var Sequelize=require('sequelize');module[_0xeab6('0x0')]={'name':{'type':Sequelize[_0xeab6('0x1')],'allowNull':![]},'description':{'type':Sequelize['STRING']},'active':{'type':Sequelize['BOOLEAN'],'allowNull':![],'defaultValue':![]},'cron':{'type':Sequelize[_0xeab6('0x1')],'allowNull':![],'defaultValue':_0xeab6('0x2')},'startAt':{'type':Sequelize[_0xeab6('0x3')],'allowNull':![]},'endAt':{'type':Sequelize[_0xeab6('0x3')],'allowNull':![]},'subtractNumber':{'type':Sequelize['INTEGER'],'allowNull':![],'defaultValue':0x1,'validate':{'min':0x1}},'subtractUnit':{'type':Sequelize['ENUM'](_0xeab6('0x4'),_0xeab6('0x5'),_0xeab6('0x6'),_0xeab6('0x7'),_0xeab6('0x8'),'hours',_0xeab6('0x9')),'allowNull':![],'defaultValue':_0xeab6('0x8')},'output':{'type':Sequelize[_0xeab6('0xa')](_0xeab6('0xb'),_0xeab6('0xc'),_0xeab6('0xd')),'allowNull':![],'defaultValue':'csv'},'type':{'type':Sequelize[_0xeab6('0xa')](_0xeab6('0xe'),_0xeab6('0xf')),'allowNull':![],'defaultValue':'custom'},'sendMail':{'type':Sequelize[_0xeab6('0x10')],'defaultValue':![]},'email':{'type':Sequelize[_0xeab6('0x1')]},'cc':{'type':Sequelize['TEXT']},'bcc':{'type':Sequelize['TEXT']},'sendIfEmpty':{'type':Sequelize[_0xeab6('0x10')],'defaultValue':!![]}};
\ No newline at end of file
+var _0x47cc=['INTEGER','ENUM','years','quarters','months','weeks','days','hours','csv','custom','default','TEXT','sequelize','exports','STRING','BOOLEAN','0\x200\x20*\x20*\x20*','DATE'];(function(_0x2e327e,_0x55b54d){var _0x444a5d=function(_0x27651f){while(--_0x27651f){_0x2e327e['push'](_0x2e327e['shift']());}};_0x444a5d(++_0x55b54d);}(_0x47cc,0xd2));var _0xc47c=function(_0x3ad98c,_0x1f4f9f){_0x3ad98c=_0x3ad98c-0x0;var _0x3f7516=_0x47cc[_0x3ad98c];return _0x3f7516;};'use strict';var Sequelize=require(_0xc47c('0x0'));module[_0xc47c('0x1')]={'name':{'type':Sequelize[_0xc47c('0x2')],'allowNull':![]},'description':{'type':Sequelize[_0xc47c('0x2')]},'active':{'type':Sequelize[_0xc47c('0x3')],'allowNull':![],'defaultValue':![]},'cron':{'type':Sequelize[_0xc47c('0x2')],'allowNull':![],'defaultValue':_0xc47c('0x4')},'startAt':{'type':Sequelize[_0xc47c('0x5')],'allowNull':![]},'endAt':{'type':Sequelize[_0xc47c('0x5')],'allowNull':![]},'subtractNumber':{'type':Sequelize[_0xc47c('0x6')],'allowNull':![],'defaultValue':0x1,'validate':{'min':0x1}},'subtractUnit':{'type':Sequelize[_0xc47c('0x7')](_0xc47c('0x8'),_0xc47c('0x9'),_0xc47c('0xa'),_0xc47c('0xb'),_0xc47c('0xc'),_0xc47c('0xd'),'minutes'),'allowNull':![],'defaultValue':_0xc47c('0xc')},'output':{'type':Sequelize[_0xc47c('0x7')]('csv','pdf','xlsx'),'allowNull':![],'defaultValue':_0xc47c('0xe')},'type':{'type':Sequelize[_0xc47c('0x7')](_0xc47c('0xf'),_0xc47c('0x10')),'allowNull':![],'defaultValue':_0xc47c('0xf')},'sendMail':{'type':Sequelize[_0xc47c('0x3')],'defaultValue':![]},'email':{'type':Sequelize[_0xc47c('0x2')]},'cc':{'type':Sequelize[_0xc47c('0x11')]},'bcc':{'type':Sequelize['TEXT']},'sendIfEmpty':{'type':Sequelize[_0xc47c('0x3')],'defaultValue':!![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xab65=['destroy','get','Scheduler','UserProfileResource','sendStatus','error','stack','send','map','Schedule','rawAttributes','fieldName','key','model','name','keys','query','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','filters','pick','filter','merge','where','type','VIRTUAL','options','include','findAll','catch','show','params','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','autoAssociation','run','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','lodash','squel','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','offset','count','limit','set','Content-Range','apply','reject','update','then'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0xab65,0x183));var _0x5ab6=function(_0x532113,_0x1bbe00){_0x532113=_0x532113-0x0;var _0x50f34d=_0xab65[_0x532113];return _0x50f34d;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x5ab6('0x0'));var zipdir=require(_0x5ab6('0x1'));var jsonpatch=require(_0x5ab6('0x2'));var rp=require(_0x5ab6('0x3'));var moment=require(_0x5ab6('0x4'));var BPromise=require(_0x5ab6('0x5'));var Mustache=require('mustache');var util=require(_0x5ab6('0x6'));var path=require(_0x5ab6('0x7'));var sox=require(_0x5ab6('0x8'));var csv=require(_0x5ab6('0x9'));var ejs=require(_0x5ab6('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x5ab6('0xb'));var squel=require(_0x5ab6('0xc'));var crypto=require(_0x5ab6('0xd'));var jsforce=require(_0x5ab6('0xe'));var deskjs=require(_0x5ab6('0xf'));var toCsv=require(_0x5ab6('0x9'));var querystring=require(_0x5ab6('0x10'));var Papa=require('papaparse');var Redis=require(_0x5ab6('0x11'));var authService=require('../../components/auth/service');var qs=require(_0x5ab6('0x12'));var as=require(_0x5ab6('0x13'));var hardwareService=require(_0x5ab6('0x14'));var logger=require('../../config/logger')(_0x5ab6('0x15'));var utils=require(_0x5ab6('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0x5ab6('0x17'));var db=require(_0x5ab6('0x18'))['db'];function respondWithStatusCode(_0x257e28,_0x1cf545){_0x1cf545=_0x1cf545||0xcc;return function(_0x22c829){if(_0x22c829){return _0x257e28['sendStatus'](_0x1cf545);}return _0x257e28[_0x5ab6('0x19')](_0x1cf545)[_0x5ab6('0x1a')]();};}function respondWithResult(_0x19692a,_0x225dfe){_0x225dfe=_0x225dfe||0xc8;return function(_0x1df457){if(_0x1df457){return _0x19692a['status'](_0x225dfe)[_0x5ab6('0x1b')](_0x1df457);}};}function respondWithFilteredResult(_0x28eece,_0x4d2f95){return function(_0x200f3f){if(_0x200f3f){var _0x47dd3b=typeof _0x4d2f95['offset']==='undefined'&&typeof _0x4d2f95['limit']===_0x5ab6('0x1c');var _0x2bb729=_0x200f3f['count'];var _0x4fc729=_0x47dd3b?0x0:_0x4d2f95[_0x5ab6('0x1d')];var _0x5b9927=_0x47dd3b?_0x200f3f[_0x5ab6('0x1e')]:_0x4d2f95[_0x5ab6('0x1d')]+_0x4d2f95[_0x5ab6('0x1f')];var _0x1bedfc;if(_0x5b9927>=_0x2bb729){_0x5b9927=_0x2bb729;_0x1bedfc=0xc8;}else{_0x1bedfc=0xce;}_0x28eece[_0x5ab6('0x19')](_0x1bedfc);return _0x28eece[_0x5ab6('0x20')](_0x5ab6('0x21'),_0x4fc729+'-'+_0x5b9927+'/'+_0x2bb729)[_0x5ab6('0x1b')](_0x200f3f);}return null;};}function patchUpdates(_0x23f6be){return function(_0xb406ab){try{jsonpatch[_0x5ab6('0x22')](_0xb406ab,_0x23f6be,!![]);}catch(_0x497034){return BPromise[_0x5ab6('0x23')](_0x497034);}return _0xb406ab['save']();};}function saveUpdates(_0x2c9806,_0x356845){return function(_0xf8ef7d){if(_0xf8ef7d){return _0xf8ef7d[_0x5ab6('0x24')](_0x2c9806)[_0x5ab6('0x25')](function(_0x11c283){return _0x11c283;});}return null;};}function removeEntity(_0x4bfab8,_0x4fd257){return function(_0x5226ac){if(_0x5226ac){return _0x5226ac[_0x5ab6('0x26')]()[_0x5ab6('0x25')](function(){var _0x525dbc=_0x5226ac[_0x5ab6('0x27')]({'plain':!![]});var _0x54ca68=_0x5ab6('0x28');return db[_0x5ab6('0x29')][_0x5ab6('0x26')]({'where':{'type':_0x54ca68,'resourceId':_0x525dbc['id']}})['then'](function(){return _0x5226ac;});})[_0x5ab6('0x25')](function(){_0x4bfab8['status'](0xcc)[_0x5ab6('0x1a')]();});}};}function handleEntityNotFound(_0x532c9a,_0x453df0){return function(_0x49199f){if(!_0x49199f){_0x532c9a[_0x5ab6('0x2a')](0x194);}return _0x49199f;};}function handleError(_0x34d79e,_0x2434dc){_0x2434dc=_0x2434dc||0x1f4;return function(_0x5575ca){logger[_0x5ab6('0x2b')](_0x5575ca[_0x5ab6('0x2c')]);if(_0x5575ca['name']){delete _0x5575ca['name'];}_0x34d79e[_0x5ab6('0x19')](_0x2434dc)[_0x5ab6('0x2d')](_0x5575ca);};}exports['index']=function(_0x52d48c,_0x121030){var _0x48b5f2={},_0x3dce88={},_0x194e94={'count':0x0,'rows':[]};var _0x2bc42b=_[_0x5ab6('0x2e')](db[_0x5ab6('0x2f')][_0x5ab6('0x30')],function(_0x14627d){return{'name':_0x14627d[_0x5ab6('0x31')],'type':_0x14627d['type'][_0x5ab6('0x32')]};});_0x3dce88[_0x5ab6('0x33')]=_[_0x5ab6('0x2e')](_0x2bc42b,_0x5ab6('0x34'));_0x3dce88['query']=_[_0x5ab6('0x35')](_0x52d48c[_0x5ab6('0x36')]);_0x3dce88['filters']=_[_0x5ab6('0x37')](_0x3dce88['model'],_0x3dce88[_0x5ab6('0x36')]);_0x48b5f2[_0x5ab6('0x38')]=_[_0x5ab6('0x37')](_0x3dce88[_0x5ab6('0x33')],qs[_0x5ab6('0x39')](_0x52d48c[_0x5ab6('0x36')][_0x5ab6('0x39')]));_0x48b5f2['attributes']=_0x48b5f2['attributes'][_0x5ab6('0x3a')]?_0x48b5f2['attributes']:_0x3dce88[_0x5ab6('0x33')];if(!_0x52d48c[_0x5ab6('0x36')][_0x5ab6('0x3b')](_0x5ab6('0x3c'))){_0x48b5f2[_0x5ab6('0x1f')]=qs[_0x5ab6('0x1f')](_0x52d48c[_0x5ab6('0x36')][_0x5ab6('0x1f')]);_0x48b5f2[_0x5ab6('0x1d')]=qs[_0x5ab6('0x1d')](_0x52d48c[_0x5ab6('0x36')]['offset']);}_0x48b5f2[_0x5ab6('0x3d')]=qs[_0x5ab6('0x3e')](_0x52d48c[_0x5ab6('0x36')][_0x5ab6('0x3e')]);_0x48b5f2['where']=qs[_0x5ab6('0x3f')](_[_0x5ab6('0x40')](_0x52d48c[_0x5ab6('0x36')],_0x3dce88['filters']),_0x2bc42b);if(_0x52d48c[_0x5ab6('0x36')][_0x5ab6('0x41')]){_0x48b5f2['where']=_[_0x5ab6('0x42')](_0x48b5f2[_0x5ab6('0x43')],{'$or':_[_0x5ab6('0x2e')](_0x2bc42b,function(_0x11a560){if(_0x11a560[_0x5ab6('0x44')]!==_0x5ab6('0x45')){var _0x318ddf={};_0x318ddf[_0x11a560[_0x5ab6('0x34')]]={'$like':'%'+_0x52d48c['query']['filter']+'%'};return _0x318ddf;}})});}_0x48b5f2=_[_0x5ab6('0x42')]({},_0x48b5f2,_0x52d48c[_0x5ab6('0x46')]);var _0x4d24d6={'where':_0x48b5f2['where']};return db[_0x5ab6('0x2f')]['count'](_0x4d24d6)[_0x5ab6('0x25')](function(_0x22f8a1){_0x194e94['count']=_0x22f8a1;if(_0x52d48c[_0x5ab6('0x36')]['includeAll']){_0x48b5f2[_0x5ab6('0x47')]=[{'all':!![]}];}return db['Schedule'][_0x5ab6('0x48')](_0x48b5f2);})[_0x5ab6('0x25')](function(_0x166fb8){_0x194e94['rows']=_0x166fb8;return _0x194e94;})[_0x5ab6('0x25')](respondWithFilteredResult(_0x121030,_0x48b5f2))[_0x5ab6('0x49')](handleError(_0x121030,null));};exports[_0x5ab6('0x4a')]=function(_0x5dbb6b,_0x39b64e){var _0x4a70b7={'raw':![],'where':{'id':_0x5dbb6b[_0x5ab6('0x4b')]['id']}},_0x20d014={};_0x20d014[_0x5ab6('0x33')]=_['keys'](db[_0x5ab6('0x2f')][_0x5ab6('0x30')]);_0x20d014[_0x5ab6('0x36')]=_['keys'](_0x5dbb6b[_0x5ab6('0x36')]);_0x20d014[_0x5ab6('0x3f')]=_[_0x5ab6('0x37')](_0x20d014[_0x5ab6('0x33')],_0x20d014['query']);_0x4a70b7[_0x5ab6('0x38')]=_[_0x5ab6('0x37')](_0x20d014['model'],qs[_0x5ab6('0x39')](_0x5dbb6b['query']['fields']));_0x4a70b7['attributes']=_0x4a70b7[_0x5ab6('0x38')][_0x5ab6('0x3a')]?_0x4a70b7[_0x5ab6('0x38')]:_0x20d014[_0x5ab6('0x33')];if(_0x5dbb6b['query']['includeAll']){_0x4a70b7[_0x5ab6('0x47')]=[{'all':!![]}];}_0x4a70b7=_[_0x5ab6('0x42')]({},_0x4a70b7,_0x5dbb6b[_0x5ab6('0x46')]);return db[_0x5ab6('0x2f')][_0x5ab6('0x4c')](_0x4a70b7)[_0x5ab6('0x25')](handleEntityNotFound(_0x39b64e,null))[_0x5ab6('0x25')](respondWithResult(_0x39b64e,null))[_0x5ab6('0x49')](handleError(_0x39b64e,null));};exports[_0x5ab6('0x4d')]=function(_0x4dd46e,_0x3357db){return db['Schedule']['create'](_0x4dd46e[_0x5ab6('0x4e')],{})[_0x5ab6('0x25')](function(_0xdce9ca){var _0x440bf1=_0x4dd46e[_0x5ab6('0x4f')]['get']({'plain':!![]});if(!_0x440bf1)throw new Error(_0x5ab6('0x50'));if(_0x440bf1['role']===_0x5ab6('0x4f')){var _0x16b4cf=_0xdce9ca[_0x5ab6('0x27')]({'plain':!![]});var _0x35d7a5=_0x5ab6('0x28');return db[_0x5ab6('0x51')][_0x5ab6('0x4c')]({'where':{'name':_0x35d7a5,'userProfileId':_0x440bf1[_0x5ab6('0x52')]},'raw':!![]})[_0x5ab6('0x25')](function(_0x3d20fa){if(_0x3d20fa&&_0x3d20fa[_0x5ab6('0x53')]===0x0){return db[_0x5ab6('0x29')][_0x5ab6('0x4d')]({'name':_0x16b4cf[_0x5ab6('0x34')],'resourceId':_0x16b4cf['id'],'type':_0x3d20fa['name'],'sectionId':_0x3d20fa['id']},{})[_0x5ab6('0x25')](function(){return _0xdce9ca;});}else{return _0xdce9ca;}})[_0x5ab6('0x49')](function(_0x16e5dd){logger[_0x5ab6('0x2b')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x16e5dd);throw _0x16e5dd;});}return _0xdce9ca;})[_0x5ab6('0x25')](respondWithResult(_0x3357db,0xc9))['catch'](handleError(_0x3357db,null));};exports['update']=function(_0x36529d,_0x361e1d){if(_0x36529d[_0x5ab6('0x4e')]['id']){delete _0x36529d['body']['id'];}return db[_0x5ab6('0x2f')][_0x5ab6('0x4c')]({'where':{'id':_0x36529d['params']['id']}})[_0x5ab6('0x25')](handleEntityNotFound(_0x361e1d,null))[_0x5ab6('0x25')](saveUpdates(_0x36529d[_0x5ab6('0x4e')],null))[_0x5ab6('0x25')](respondWithResult(_0x361e1d,null))[_0x5ab6('0x49')](handleError(_0x361e1d,null));};exports[_0x5ab6('0x26')]=function(_0x1b639f,_0x1b9550){return db[_0x5ab6('0x2f')]['find']({'where':{'id':_0x1b639f[_0x5ab6('0x4b')]['id']}})['then'](handleEntityNotFound(_0x1b9550,null))[_0x5ab6('0x25')](removeEntity(_0x1b9550,null))[_0x5ab6('0x49')](handleError(_0x1b9550,null));};exports[_0x5ab6('0x54')]=function(_0x2703ce,_0x3bc8d5,_0x47e432){var _0x6d7188=require('../../config/schedule');return db['Schedule'][_0x5ab6('0x4c')]({'where':{'id':_0x2703ce[_0x5ab6('0x4b')]['id']},'raw':!![]})[_0x5ab6('0x25')](handleEntityNotFound(_0x3bc8d5,null))['then'](function(){_0x6d7188[_0x5ab6('0x54')](_0x2703ce[_0x5ab6('0x4b')]['id']);})[_0x5ab6('0x25')](respondWithStatusCode(_0x3bc8d5,null))[_0x5ab6('0x49')](handleError(_0x3bc8d5,null));};
\ No newline at end of file
+var _0xbefb=['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','status','end','json','offset','undefined','limit','count','Content-Range','apply','reject','destroy','then','get','UserProfileResource','sendStatus','error','stack','name','send','index','map','Schedule','rawAttributes','fieldName','type','key','query','keys','filters','intersection','model','attributes','fields','hasOwnProperty','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','show','params','length','find','catch','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','Scheduler','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','run','../../config/schedule','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','ejs'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xbefb,0x19e));var _0xbbef=function(_0x473afa,_0x51fe26){_0x473afa=_0x473afa-0x0;var _0x3efb72=_0xbefb[_0x473afa];return _0x3efb72;};'use strict';var emlformat=require(_0xbbef('0x0'));var rimraf=require(_0xbbef('0x1'));var zipdir=require(_0xbbef('0x2'));var jsonpatch=require(_0xbbef('0x3'));var rp=require('request-promise');var moment=require(_0xbbef('0x4'));var BPromise=require(_0xbbef('0x5'));var Mustache=require(_0xbbef('0x6'));var util=require(_0xbbef('0x7'));var path=require(_0xbbef('0x8'));var sox=require(_0xbbef('0x9'));var csv=require('to-csv');var ejs=require(_0xbbef('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0xbbef('0xb'));var crypto=require(_0xbbef('0xc'));var jsforce=require('jsforce');var deskjs=require(_0xbbef('0xd'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xbbef('0xe'));var Redis=require(_0xbbef('0xf'));var authService=require(_0xbbef('0x10'));var qs=require(_0xbbef('0x11'));var as=require(_0xbbef('0x12'));var hardwareService=require(_0xbbef('0x13'));var logger=require(_0xbbef('0x14'))('api');var utils=require(_0xbbef('0x15'));var config=require(_0xbbef('0x16'));var licenseUtil=require(_0xbbef('0x17'));var db=require(_0xbbef('0x18'))['db'];function respondWithStatusCode(_0x3fbd61,_0x441389){_0x441389=_0x441389||0xcc;return function(_0x274e2c){if(_0x274e2c){return _0x3fbd61['sendStatus'](_0x441389);}return _0x3fbd61[_0xbbef('0x19')](_0x441389)[_0xbbef('0x1a')]();};}function respondWithResult(_0x5021ef,_0x1a9594){_0x1a9594=_0x1a9594||0xc8;return function(_0x37e6db){if(_0x37e6db){return _0x5021ef[_0xbbef('0x19')](_0x1a9594)[_0xbbef('0x1b')](_0x37e6db);}};}function respondWithFilteredResult(_0x3550cc,_0x561639){return function(_0x5a3bd7){if(_0x5a3bd7){var _0x5d3c0c=typeof _0x561639[_0xbbef('0x1c')]===_0xbbef('0x1d')&&typeof _0x561639[_0xbbef('0x1e')]==='undefined';var _0x40fd29=_0x5a3bd7['count'];var _0x5e3ce1=_0x5d3c0c?0x0:_0x561639[_0xbbef('0x1c')];var _0x4e4f9b=_0x5d3c0c?_0x5a3bd7[_0xbbef('0x1f')]:_0x561639[_0xbbef('0x1c')]+_0x561639['limit'];var _0x3f25a3;if(_0x4e4f9b>=_0x40fd29){_0x4e4f9b=_0x40fd29;_0x3f25a3=0xc8;}else{_0x3f25a3=0xce;}_0x3550cc[_0xbbef('0x19')](_0x3f25a3);return _0x3550cc['set'](_0xbbef('0x20'),_0x5e3ce1+'-'+_0x4e4f9b+'/'+_0x40fd29)['json'](_0x5a3bd7);}return null;};}function patchUpdates(_0x43f95e){return function(_0xdcb03e){try{jsonpatch[_0xbbef('0x21')](_0xdcb03e,_0x43f95e,!![]);}catch(_0x3d24ae){return BPromise[_0xbbef('0x22')](_0x3d24ae);}return _0xdcb03e['save']();};}function saveUpdates(_0x33544e,_0x389d08){return function(_0x158099){if(_0x158099){return _0x158099['update'](_0x33544e)['then'](function(_0x1e97fc){return _0x1e97fc;});}return null;};}function removeEntity(_0x532b85,_0x28853b){return function(_0xcaeeb9){if(_0xcaeeb9){return _0xcaeeb9[_0xbbef('0x23')]()[_0xbbef('0x24')](function(){var _0x11fd96=_0xcaeeb9[_0xbbef('0x25')]({'plain':!![]});var _0x53076e='Scheduler';return db[_0xbbef('0x26')][_0xbbef('0x23')]({'where':{'type':_0x53076e,'resourceId':_0x11fd96['id']}})['then'](function(){return _0xcaeeb9;});})[_0xbbef('0x24')](function(){_0x532b85[_0xbbef('0x19')](0xcc)[_0xbbef('0x1a')]();});}};}function handleEntityNotFound(_0xdf8c23,_0x44ae3){return function(_0x359d44){if(!_0x359d44){_0xdf8c23[_0xbbef('0x27')](0x194);}return _0x359d44;};}function handleError(_0x1e809a,_0x2091c0){_0x2091c0=_0x2091c0||0x1f4;return function(_0x3b89f3){logger[_0xbbef('0x28')](_0x3b89f3[_0xbbef('0x29')]);if(_0x3b89f3[_0xbbef('0x2a')]){delete _0x3b89f3[_0xbbef('0x2a')];}_0x1e809a['status'](_0x2091c0)[_0xbbef('0x2b')](_0x3b89f3);};}exports[_0xbbef('0x2c')]=function(_0x20f053,_0x30f4dd){var _0xba9d21={},_0x1965ab={},_0x54a156={'count':0x0,'rows':[]};var _0x159532=_[_0xbbef('0x2d')](db[_0xbbef('0x2e')][_0xbbef('0x2f')],function(_0x151ec3){return{'name':_0x151ec3[_0xbbef('0x30')],'type':_0x151ec3[_0xbbef('0x31')][_0xbbef('0x32')]};});_0x1965ab['model']=_[_0xbbef('0x2d')](_0x159532,'name');_0x1965ab[_0xbbef('0x33')]=_[_0xbbef('0x34')](_0x20f053[_0xbbef('0x33')]);_0x1965ab[_0xbbef('0x35')]=_[_0xbbef('0x36')](_0x1965ab[_0xbbef('0x37')],_0x1965ab[_0xbbef('0x33')]);_0xba9d21[_0xbbef('0x38')]=_['intersection'](_0x1965ab[_0xbbef('0x37')],qs['fields'](_0x20f053[_0xbbef('0x33')][_0xbbef('0x39')]));_0xba9d21['attributes']=_0xba9d21[_0xbbef('0x38')]['length']?_0xba9d21['attributes']:_0x1965ab[_0xbbef('0x37')];if(!_0x20f053[_0xbbef('0x33')][_0xbbef('0x3a')]('nolimit')){_0xba9d21['limit']=qs['limit'](_0x20f053[_0xbbef('0x33')]['limit']);_0xba9d21['offset']=qs[_0xbbef('0x1c')](_0x20f053[_0xbbef('0x33')]['offset']);}_0xba9d21['order']=qs[_0xbbef('0x3b')](_0x20f053[_0xbbef('0x33')]['sort']);_0xba9d21[_0xbbef('0x3c')]=qs[_0xbbef('0x35')](_[_0xbbef('0x3d')](_0x20f053['query'],_0x1965ab[_0xbbef('0x35')]),_0x159532);if(_0x20f053[_0xbbef('0x33')][_0xbbef('0x3e')]){_0xba9d21[_0xbbef('0x3c')]=_[_0xbbef('0x3f')](_0xba9d21['where'],{'$or':_['map'](_0x159532,function(_0x1ae3af){if(_0x1ae3af['type']!==_0xbbef('0x40')){var _0x26cc89={};_0x26cc89[_0x1ae3af[_0xbbef('0x2a')]]={'$like':'%'+_0x20f053[_0xbbef('0x33')][_0xbbef('0x3e')]+'%'};return _0x26cc89;}})});}_0xba9d21=_[_0xbbef('0x3f')]({},_0xba9d21,_0x20f053[_0xbbef('0x41')]);var _0x5d6d70={'where':_0xba9d21[_0xbbef('0x3c')]};return db['Schedule'][_0xbbef('0x1f')](_0x5d6d70)[_0xbbef('0x24')](function(_0x3b0842){_0x54a156[_0xbbef('0x1f')]=_0x3b0842;if(_0x20f053[_0xbbef('0x33')][_0xbbef('0x42')]){_0xba9d21[_0xbbef('0x43')]=[{'all':!![]}];}return db[_0xbbef('0x2e')][_0xbbef('0x44')](_0xba9d21);})[_0xbbef('0x24')](function(_0x43f059){_0x54a156[_0xbbef('0x45')]=_0x43f059;return _0x54a156;})[_0xbbef('0x24')](respondWithFilteredResult(_0x30f4dd,_0xba9d21))['catch'](handleError(_0x30f4dd,null));};exports[_0xbbef('0x46')]=function(_0x11a73a,_0x1f264e){var _0x5d285b={'raw':![],'where':{'id':_0x11a73a[_0xbbef('0x47')]['id']}},_0x5a1c8e={};_0x5a1c8e[_0xbbef('0x37')]=_[_0xbbef('0x34')](db[_0xbbef('0x2e')][_0xbbef('0x2f')]);_0x5a1c8e['query']=_['keys'](_0x11a73a['query']);_0x5a1c8e[_0xbbef('0x35')]=_['intersection'](_0x5a1c8e['model'],_0x5a1c8e[_0xbbef('0x33')]);_0x5d285b[_0xbbef('0x38')]=_['intersection'](_0x5a1c8e['model'],qs['fields'](_0x11a73a['query'][_0xbbef('0x39')]));_0x5d285b[_0xbbef('0x38')]=_0x5d285b[_0xbbef('0x38')][_0xbbef('0x48')]?_0x5d285b['attributes']:_0x5a1c8e['model'];if(_0x11a73a['query']['includeAll']){_0x5d285b['include']=[{'all':!![]}];}_0x5d285b=_[_0xbbef('0x3f')]({},_0x5d285b,_0x11a73a['options']);return db['Schedule'][_0xbbef('0x49')](_0x5d285b)[_0xbbef('0x24')](handleEntityNotFound(_0x1f264e,null))[_0xbbef('0x24')](respondWithResult(_0x1f264e,null))[_0xbbef('0x4a')](handleError(_0x1f264e,null));};exports[_0xbbef('0x4b')]=function(_0x547a9a,_0x5c19e6){return db[_0xbbef('0x2e')][_0xbbef('0x4b')](_0x547a9a[_0xbbef('0x4c')],{})[_0xbbef('0x24')](function(_0xd55135){var _0x827a68=_0x547a9a[_0xbbef('0x4d')][_0xbbef('0x25')]({'plain':!![]});if(!_0x827a68)throw new Error(_0xbbef('0x4e'));if(_0x827a68['role']===_0xbbef('0x4d')){var _0x251402=_0xd55135[_0xbbef('0x25')]({'plain':!![]});var _0xd11ba5=_0xbbef('0x4f');return db['UserProfileSection'][_0xbbef('0x49')]({'where':{'name':_0xd11ba5,'userProfileId':_0x827a68[_0xbbef('0x50')]},'raw':!![]})['then'](function(_0x12d38a){if(_0x12d38a&&_0x12d38a['autoAssociation']===0x0){return db[_0xbbef('0x26')]['create']({'name':_0x251402[_0xbbef('0x2a')],'resourceId':_0x251402['id'],'type':_0x12d38a['name'],'sectionId':_0x12d38a['id']},{})[_0xbbef('0x24')](function(){return _0xd55135;});}else{return _0xd55135;}})[_0xbbef('0x4a')](function(_0x264d0f){logger[_0xbbef('0x28')](_0xbbef('0x51'),_0x264d0f);throw _0x264d0f;});}return _0xd55135;})[_0xbbef('0x24')](respondWithResult(_0x5c19e6,0xc9))[_0xbbef('0x4a')](handleError(_0x5c19e6,null));};exports[_0xbbef('0x52')]=function(_0x5cfe1d,_0x26591f){if(_0x5cfe1d[_0xbbef('0x4c')]['id']){delete _0x5cfe1d[_0xbbef('0x4c')]['id'];}return db[_0xbbef('0x2e')][_0xbbef('0x49')]({'where':{'id':_0x5cfe1d[_0xbbef('0x47')]['id']}})[_0xbbef('0x24')](handleEntityNotFound(_0x26591f,null))[_0xbbef('0x24')](saveUpdates(_0x5cfe1d[_0xbbef('0x4c')],null))[_0xbbef('0x24')](respondWithResult(_0x26591f,null))[_0xbbef('0x4a')](handleError(_0x26591f,null));};exports[_0xbbef('0x23')]=function(_0x50cafe,_0xe68f46){return db[_0xbbef('0x2e')][_0xbbef('0x49')]({'where':{'id':_0x50cafe['params']['id']}})[_0xbbef('0x24')](handleEntityNotFound(_0xe68f46,null))['then'](removeEntity(_0xe68f46,null))[_0xbbef('0x4a')](handleError(_0xe68f46,null));};exports[_0xbbef('0x53')]=function(_0x24619b,_0x3bf595,_0x4fb4a7){var _0x3b2674=require(_0xbbef('0x54'));return db[_0xbbef('0x2e')][_0xbbef('0x49')]({'where':{'id':_0x24619b[_0xbbef('0x47')]['id']},'raw':!![]})['then'](handleEntityNotFound(_0x3bf595,null))[_0xbbef('0x24')](function(){_0x3b2674[_0xbbef('0x53')](_0x24619b[_0xbbef('0x47')]['id']);})['then'](respondWithStatusCode(_0x3bf595,null))[_0xbbef('0x4a')](handleError(_0x3bf595,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x56a0=['api','moment','bluebird','request-promise','path','./schedule.attributes','Schedule','tools_schedules'];(function(_0x8eb4eb,_0xa70079){var _0x1ff8e3=function(_0x1e118e){while(--_0x1e118e){_0x8eb4eb['push'](_0x8eb4eb['shift']());}};_0x1ff8e3(++_0xa70079);}(_0x56a0,0xe0));var _0x056a=function(_0x391154,_0x40fb12){_0x391154=_0x391154-0x0;var _0x4b7767=_0x56a0[_0x391154];return _0x4b7767;};'use strict';var _=require('lodash');var util=require('util');var logger=require('../../config/logger')(_0x056a('0x0'));var moment=require(_0x056a('0x1'));var BPromise=require(_0x056a('0x2'));var rp=require(_0x056a('0x3'));var fs=require('fs');var path=require(_0x056a('0x4'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0x056a('0x5'));module['exports']=function(_0x546753,_0xaf0ce1){return _0x546753['define'](_0x056a('0x6'),attributes,{'tableName':_0x056a('0x7'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xe06c=['../../config/environment','./schedule.attributes','exports','Schedule','lodash','../../config/logger','api','bluebird','path'];(function(_0x32d457,_0x1a39c9){var _0x338386=function(_0x199d7a){while(--_0x199d7a){_0x32d457['push'](_0x32d457['shift']());}};_0x338386(++_0x1a39c9);}(_0xe06c,0x70));var _0xce06=function(_0x185f28,_0x3eb7ef){_0x185f28=_0x185f28-0x0;var _0x3dba97=_0xe06c[_0x185f28];return _0x3dba97;};'use strict';var _=require(_0xce06('0x0'));var util=require('util');var logger=require(_0xce06('0x1'))(_0xce06('0x2'));var moment=require('moment');var BPromise=require(_0xce06('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xce06('0x4'));var rimraf=require('rimraf');var config=require(_0xce06('0x5'));var attributes=require(_0xce06('0x6'));module[_0xce06('0x7')]=function(_0x32045b,_0x50de35){return _0x32045b['define'](_0xce06('0x8'),attributes,{'tableName':'tools_schedules','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x173a=['../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','Schedule,\x20%s,\x20%s','request\x20sent','debug','Schedule,\x20%s,\x20%s,\x20%s','stringify','error','message','result','lodash','util','moment','bluebird','randomstring','ioredis'];(function(_0x37dd7b,_0x29619d){var _0x548856=function(_0x5f62ff){while(--_0x5f62ff){_0x37dd7b['push'](_0x37dd7b['shift']());}};_0x548856(++_0x29619d);}(_0x173a,0x17a));var _0xa173=function(_0x21a366,_0x3a187c){_0x21a366=_0x21a366-0x0;var _0x539849=_0x173a[_0x21a366];return _0x539849;};'use strict';var _=require(_0xa173('0x0'));var util=require(_0xa173('0x1'));var moment=require(_0xa173('0x2'));var BPromise=require(_0xa173('0x3'));var rs=require(_0xa173('0x4'));var fs=require('fs');var Redis=require(_0xa173('0x5'));var db=require(_0xa173('0x6'))['db'];var utils=require(_0xa173('0x7'));var logger=require(_0xa173('0x8'))(_0xa173('0x9'));var config=require(_0xa173('0xa'));var jayson=require(_0xa173('0xb'));var client=jayson[_0xa173('0xc')][_0xa173('0xd')]({'port':0x232a});function respondWithRpcPromise(_0x1d94f0,_0x720cbc,_0x51b42c){return new BPromise(function(_0x41dd5d,_0x7264ba){return client[_0xa173('0xe')](_0x1d94f0,_0x51b42c)[_0xa173('0xf')](function(_0x39dd74){logger['info'](_0xa173('0x10'),_0x720cbc,_0xa173('0x11'));logger[_0xa173('0x12')](_0xa173('0x13'),_0x720cbc,_0xa173('0x11'),JSON[_0xa173('0x14')](_0x39dd74));if(_0x39dd74[_0xa173('0x15')]){if(_0x39dd74['error']['code']===0x1f4){logger[_0xa173('0x15')](_0xa173('0x10'),_0x720cbc,_0x39dd74['error'][_0xa173('0x16')]);return _0x7264ba(_0x39dd74[_0xa173('0x15')][_0xa173('0x16')]);}logger['error'](_0xa173('0x10'),_0x720cbc,_0x39dd74[_0xa173('0x15')][_0xa173('0x16')]);return _0x41dd5d(_0x39dd74[_0xa173('0x15')][_0xa173('0x16')]);}else{logger['info'](_0xa173('0x10'),_0x720cbc,'request\x20sent');_0x41dd5d(_0x39dd74[_0xa173('0x17')][_0xa173('0x16')]);}})['catch'](function(_0x25f464){logger[_0xa173('0x15')](_0xa173('0x10'),_0x720cbc,_0x25f464);_0x7264ba(_0x25f464);});});}
\ No newline at end of file
+var _0xf487=['../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','Schedule,\x20%s,\x20%s','request\x20sent','Schedule,\x20%s,\x20%s,\x20%s','stringify','code','error','message','lodash','moment','bluebird','randomstring','ioredis'];(function(_0x3a441a,_0x43eb56){var _0x3128a2=function(_0x5d5a17){while(--_0x5d5a17){_0x3a441a['push'](_0x3a441a['shift']());}};_0x3128a2(++_0x43eb56);}(_0xf487,0xa3));var _0x7f48=function(_0x5d85e9,_0x540fd8){_0x5d85e9=_0x5d85e9-0x0;var _0x13e7ab=_0xf487[_0x5d85e9];return _0x13e7ab;};'use strict';var _=require(_0x7f48('0x0'));var util=require('util');var moment=require(_0x7f48('0x1'));var BPromise=require(_0x7f48('0x2'));var rs=require(_0x7f48('0x3'));var fs=require('fs');var Redis=require(_0x7f48('0x4'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0x7f48('0x5'))(_0x7f48('0x6'));var config=require(_0x7f48('0x7'));var jayson=require(_0x7f48('0x8'));var client=jayson[_0x7f48('0x9')][_0x7f48('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x30fee2,_0x534e66,_0x590fd3){return new BPromise(function(_0x127c19,_0x44f632){return client[_0x7f48('0xb')](_0x30fee2,_0x590fd3)[_0x7f48('0xc')](function(_0x364235){logger[_0x7f48('0xd')](_0x7f48('0xe'),_0x534e66,_0x7f48('0xf'));logger['debug'](_0x7f48('0x10'),_0x534e66,_0x7f48('0xf'),JSON[_0x7f48('0x11')](_0x364235));if(_0x364235['error']){if(_0x364235['error'][_0x7f48('0x12')]===0x1f4){logger[_0x7f48('0x13')](_0x7f48('0xe'),_0x534e66,_0x364235[_0x7f48('0x13')][_0x7f48('0x14')]);return _0x44f632(_0x364235[_0x7f48('0x13')][_0x7f48('0x14')]);}logger['error']('Schedule,\x20%s,\x20%s',_0x534e66,_0x364235[_0x7f48('0x13')][_0x7f48('0x14')]);return _0x127c19(_0x364235[_0x7f48('0x13')][_0x7f48('0x14')]);}else{logger[_0x7f48('0xd')](_0x7f48('0xe'),_0x534e66,_0x7f48('0xf'));_0x127c19(_0x364235['result'][_0x7f48('0x14')]);}})['catch'](function(_0x2a534d){logger[_0x7f48('0x13')]('Schedule,\x20%s,\x20%s',_0x534e66,_0x2a534d);_0x44f632(_0x2a534d);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf655=['index','/describe','describe','/:id','/:id/download','download','post','create','update','destroy','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./screenRecording.controller','get','isAuthenticated'];(function(_0x5d1825,_0x413c33){var _0x201c90=function(_0x3ab6e5){while(--_0x3ab6e5){_0x5d1825['push'](_0x5d1825['shift']());}};_0x201c90(++_0x413c33);}(_0xf655,0x15b));var _0x5f65=function(_0xfee6dd,_0x56c4f5){_0xfee6dd=_0xfee6dd-0x0;var _0x1fb833=_0xf655[_0xfee6dd];return _0x1fb833;};'use strict';var multer=require(_0x5f65('0x0'));var util=require(_0x5f65('0x1'));var path=require(_0x5f65('0x2'));var timeout=require(_0x5f65('0x3'));var express=require(_0x5f65('0x4'));var router=express[_0x5f65('0x5')]();var fs_extra=require(_0x5f65('0x6'));var auth=require(_0x5f65('0x7'));var interaction=require(_0x5f65('0x8'));var config=require(_0x5f65('0x9'));var controller=require(_0x5f65('0xa'));router[_0x5f65('0xb')]('/',auth[_0x5f65('0xc')](),controller[_0x5f65('0xd')]);router[_0x5f65('0xb')](_0x5f65('0xe'),auth[_0x5f65('0xc')](),controller[_0x5f65('0xf')]);router[_0x5f65('0xb')](_0x5f65('0x10'),auth[_0x5f65('0xc')](),controller['show']);router[_0x5f65('0xb')](_0x5f65('0x11'),auth[_0x5f65('0xc')](),controller[_0x5f65('0x12')]);router[_0x5f65('0x13')]('/',auth['isAuthenticated'](),controller[_0x5f65('0x14')]);router['put'](_0x5f65('0x10'),auth[_0x5f65('0xc')](),controller[_0x5f65('0x15')]);router['delete'](_0x5f65('0x10'),auth['isAuthenticated'](),controller[_0x5f65('0x16')]);module[_0x5f65('0x17')]=router;
\ No newline at end of file
+var _0x8a86=['update','delete','exports','multer','util','path','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./screenRecording.controller','get','isAuthenticated','index','describe','/:id','show','/:id/download','download','post','create','put'];(function(_0x4c7632,_0x1d2a9b){var _0x16c26f=function(_0x5ddef4){while(--_0x5ddef4){_0x4c7632['push'](_0x4c7632['shift']());}};_0x16c26f(++_0x1d2a9b);}(_0x8a86,0xc3));var _0x68a8=function(_0x579f9b,_0xe3bbf5){_0x579f9b=_0x579f9b-0x0;var _0x48cb98=_0x8a86[_0x579f9b];return _0x48cb98;};'use strict';var multer=require(_0x68a8('0x0'));var util=require(_0x68a8('0x1'));var path=require(_0x68a8('0x2'));var timeout=require('connect-timeout');var express=require(_0x68a8('0x3'));var router=express[_0x68a8('0x4')]();var fs_extra=require(_0x68a8('0x5'));var auth=require(_0x68a8('0x6'));var interaction=require(_0x68a8('0x7'));var config=require(_0x68a8('0x8'));var controller=require(_0x68a8('0x9'));router[_0x68a8('0xa')]('/',auth[_0x68a8('0xb')](),controller[_0x68a8('0xc')]);router['get']('/describe',auth[_0x68a8('0xb')](),controller[_0x68a8('0xd')]);router[_0x68a8('0xa')](_0x68a8('0xe'),auth[_0x68a8('0xb')](),controller[_0x68a8('0xf')]);router['get'](_0x68a8('0x10'),auth[_0x68a8('0xb')](),controller[_0x68a8('0x11')]);router[_0x68a8('0x12')]('/',auth[_0x68a8('0xb')](),controller[_0x68a8('0x13')]);router[_0x68a8('0x14')](_0x68a8('0xe'),auth[_0x68a8('0xb')](),controller[_0x68a8('0x15')]);router[_0x68a8('0x16')](_0x68a8('0xe'),auth['isAuthenticated'](),controller['destroy']);module[_0x68a8('0x17')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x20d6=['moment','path','../../config/environment','VIRTUAL','getDataValue','value','extname','STRING','setDataValue','INTEGER','startedAt','subtract','duration','format','MM-DD-YYYY\x20HH:mm','toString','DATE','closedAt','createdAt','updatedAt','sequelize'];(function(_0x229672,_0x3d731a){var _0x290745=function(_0x23cc83){while(--_0x23cc83){_0x229672['push'](_0x229672['shift']());}};_0x290745(++_0x3d731a);}(_0x20d6,0x1b8));var _0x620d=function(_0x19e35c,_0x29cd1e){_0x19e35c=_0x19e35c-0x0;var _0x3e1fe8=_0x20d6[_0x19e35c];return _0x3e1fe8;};'use strict';var Sequelize=require(_0x620d('0x0'));var moment=require(_0x620d('0x1'));var path=require(_0x620d('0x2'));var config=require(_0x620d('0x3'));module['exports']={'format':{'type':Sequelize[_0x620d('0x4')],'get':function(){return this[_0x620d('0x5')](_0x620d('0x6'))?path[_0x620d('0x7')](this[_0x620d('0x5')](_0x620d('0x6'))):undefined;}},'interactionid':{'type':Sequelize[_0x620d('0x8')]},'channel':{'type':Sequelize[_0x620d('0x8')]},'value':{'type':Sequelize[_0x620d('0x8')],'set':function(_0x3aa4f3){var _0x260d43=_0x3aa4f3['replace'](/\\/g,'/');this[_0x620d('0x9')]('value',_0x260d43);}},'rating':{'type':Sequelize['INTEGER'],'validate':{'max':0x5,'min':0x0}},'duration':{'type':Sequelize[_0x620d('0xa')],'set':function(_0x473790){this[_0x620d('0x9')](_0x620d('0xb'),moment()[_0x620d('0xc')](_0x473790,'ms'));this[_0x620d('0x9')]('closedAt',moment());this[_0x620d('0x9')](_0x620d('0xd'),_0x473790);}},'startedAt':{'type':Sequelize['DATE'],'get':function(){return moment(this[_0x620d('0x5')](_0x620d('0xb')))[_0x620d('0xe')](_0x620d('0xf'))[_0x620d('0x10')]();}},'closedAt':{'type':Sequelize[_0x620d('0x11')],'get':function(){return moment(this[_0x620d('0x5')](_0x620d('0x12')))['format'](_0x620d('0xf'))[_0x620d('0x10')]();}},'createdAt':{'type':Sequelize[_0x620d('0x11')],'get':function(){return moment(this[_0x620d('0x5')](_0x620d('0x13')))['format']('MM-DD-YYYY\x20HH:mm')['toString']();}},'updatedAt':{'type':Sequelize[_0x620d('0x11')],'get':function(){return moment(this['getDataValue'](_0x620d('0x14')))[_0x620d('0xe')](_0x620d('0xf'))[_0x620d('0x10')]();}}};
\ No newline at end of file
+var _0xa24d=['subtract','setDataValue','closedAt','DATE','format','toString','createdAt','updatedAt','MM-DD-YYYY\x20HH:mm','sequelize','moment','path','../../config/environment','exports','VIRTUAL','getDataValue','extname','value','STRING','replace','INTEGER','startedAt'];(function(_0x4c9d8a,_0x26fb83){var _0x102c69=function(_0x114b14){while(--_0x114b14){_0x4c9d8a['push'](_0x4c9d8a['shift']());}};_0x102c69(++_0x26fb83);}(_0xa24d,0x1c1));var _0xda24=function(_0xc492a3,_0x2b42ee){_0xc492a3=_0xc492a3-0x0;var _0x414593=_0xa24d[_0xc492a3];return _0x414593;};'use strict';var Sequelize=require(_0xda24('0x0'));var moment=require(_0xda24('0x1'));var path=require(_0xda24('0x2'));var config=require(_0xda24('0x3'));module[_0xda24('0x4')]={'format':{'type':Sequelize[_0xda24('0x5')],'get':function(){return this[_0xda24('0x6')]('value')?path[_0xda24('0x7')](this[_0xda24('0x6')](_0xda24('0x8'))):undefined;}},'interactionid':{'type':Sequelize[_0xda24('0x9')]},'channel':{'type':Sequelize['STRING']},'value':{'type':Sequelize[_0xda24('0x9')],'set':function(_0xdba54e){var _0x5868af=_0xdba54e[_0xda24('0xa')](/\\/g,'/');this['setDataValue'](_0xda24('0x8'),_0x5868af);}},'rating':{'type':Sequelize[_0xda24('0xb')],'validate':{'max':0x5,'min':0x0}},'duration':{'type':Sequelize[_0xda24('0xb')],'set':function(_0x1dccb2){this['setDataValue'](_0xda24('0xc'),moment()[_0xda24('0xd')](_0x1dccb2,'ms'));this[_0xda24('0xe')](_0xda24('0xf'),moment());this[_0xda24('0xe')]('duration',_0x1dccb2);}},'startedAt':{'type':Sequelize[_0xda24('0x10')],'get':function(){return moment(this['getDataValue'](_0xda24('0xc')))[_0xda24('0x11')]('MM-DD-YYYY\x20HH:mm')['toString']();}},'closedAt':{'type':Sequelize[_0xda24('0x10')],'get':function(){return moment(this[_0xda24('0x6')](_0xda24('0xf')))[_0xda24('0x11')]('MM-DD-YYYY\x20HH:mm')[_0xda24('0x12')]();}},'createdAt':{'type':Sequelize['DATE'],'get':function(){return moment(this[_0xda24('0x6')](_0xda24('0x13')))['format']('MM-DD-YYYY\x20HH:mm')[_0xda24('0x12')]();}},'updatedAt':{'type':Sequelize[_0xda24('0x10')],'get':function(){return moment(this[_0xda24('0x6')](_0xda24('0x14')))[_0xda24('0x11')](_0xda24('0x15'))[_0xda24('0x12')]();}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5fd1=['body','duration','createdAt','closedAt','describe','../../components/encryptor','uniqueid','join','value','format','%s.cypher','decryptFile','secrets','recording','root','server/files/screen_recordings','existsSync','Sequelize','filename','download','extname','unlink','message','ScreenRecording\x20not\x20found','Not\x20found','info','cancellazione\x20fisica\x20documento\x20%s','isNil','File:\x20\x22','\x22\x20trovato\x20eseguo\x20la\x20cancellazione','unlinkSync','.cypher','eml-format','zip-dir','fast-json-patch','request-promise','mustache','util','path','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','papaparse','../../components/auth/service','../../components/parsers/qs','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','limit','offset','set','Content-Range','apply','update','then','destroy','end','error','name','send','index','map','ScreenRecording','fieldName','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','where','type','VIRTUAL','filter','options','count','include','findAll','rows','catch','show','params','rawAttributes','merge','find','create'];(function(_0x24783a,_0x75041){var _0x227a77=function(_0x2b736d){while(--_0x2b736d){_0x24783a['push'](_0x24783a['shift']());}};_0x227a77(++_0x75041);}(_0x5fd1,0x155));var _0x15fd=function(_0x41ed33,_0x38ddff){_0x41ed33=_0x41ed33-0x0;var _0x444b=_0x5fd1[_0x41ed33];return _0x444b;};'use strict';var emlformat=require(_0x15fd('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x15fd('0x1'));var jsonpatch=require(_0x15fd('0x2'));var rp=require(_0x15fd('0x3'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x15fd('0x4'));var util=require(_0x15fd('0x5'));var path=require(_0x15fd('0x6'));var sox=require('sox');var csv=require(_0x15fd('0x7'));var ejs=require(_0x15fd('0x8'));var fs=require('fs');var fs_extra=require(_0x15fd('0x9'));var _=require(_0x15fd('0xa'));var squel=require(_0x15fd('0xb'));var crypto=require('crypto');var jsforce=require(_0x15fd('0xc'));var deskjs=require(_0x15fd('0xd'));var toCsv=require(_0x15fd('0x7'));var querystring=require('querystring');var Papa=require(_0x15fd('0xe'));var Redis=require('ioredis');var authService=require(_0x15fd('0xf'));var qs=require(_0x15fd('0x10'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x15fd('0x11'));var utils=require(_0x15fd('0x12'));var config=require(_0x15fd('0x13'));var licenseUtil=require(_0x15fd('0x14'));var db=require(_0x15fd('0x15'))['db'];function respondWithStatusCode(_0x2e18ec,_0x346ab1){_0x346ab1=_0x346ab1||0xcc;return function(_0x2660db){if(_0x2660db){return _0x2e18ec[_0x15fd('0x16')](_0x346ab1);}return _0x2e18ec['status'](_0x346ab1)['end']();};}function respondWithResult(_0x5784a3,_0x3fda60){_0x3fda60=_0x3fda60||0xc8;return function(_0x135a15){if(_0x135a15){return _0x5784a3[_0x15fd('0x17')](_0x3fda60)[_0x15fd('0x18')](_0x135a15);}};}function respondWithFilteredResult(_0x44eae6,_0x2ffa03){return function(_0x2c5375){if(_0x2c5375){var _0x44a63a=typeof _0x2ffa03['offset']==='undefined'&&typeof _0x2ffa03[_0x15fd('0x19')]==='undefined';var _0x7afe9c=_0x2c5375['count'];var _0x917fe4=_0x44a63a?0x0:_0x2ffa03[_0x15fd('0x1a')];var _0x855bae=_0x44a63a?_0x2c5375['count']:_0x2ffa03[_0x15fd('0x1a')]+_0x2ffa03[_0x15fd('0x19')];var _0x8b7b9e;if(_0x855bae>=_0x7afe9c){_0x855bae=_0x7afe9c;_0x8b7b9e=0xc8;}else{_0x8b7b9e=0xce;}_0x44eae6[_0x15fd('0x17')](_0x8b7b9e);return _0x44eae6[_0x15fd('0x1b')](_0x15fd('0x1c'),_0x917fe4+'-'+_0x855bae+'/'+_0x7afe9c)[_0x15fd('0x18')](_0x2c5375);}return null;};}function patchUpdates(_0x2f46f1){return function(_0x1b8b9f){try{jsonpatch[_0x15fd('0x1d')](_0x1b8b9f,_0x2f46f1,!![]);}catch(_0x3ff307){return BPromise['reject'](_0x3ff307);}return _0x1b8b9f['save']();};}function saveUpdates(_0x293d7b,_0x36b21e){return function(_0x252a1c){if(_0x252a1c){return _0x252a1c[_0x15fd('0x1e')](_0x293d7b)[_0x15fd('0x1f')](function(_0x11496a){return _0x11496a;});}return null;};}function removeEntity(_0x2073da,_0x50d493){return function(_0x40d43){if(_0x40d43){return _0x40d43[_0x15fd('0x20')]()[_0x15fd('0x1f')](function(){_0x2073da['status'](0xcc)[_0x15fd('0x21')]();});}};}function handleEntityNotFound(_0x49062f,_0x3d1835){return function(_0x1fc24f){if(!_0x1fc24f){_0x49062f[_0x15fd('0x16')](0x194);}return _0x1fc24f;};}function handleError(_0x4c9708,_0x16b87c){_0x16b87c=_0x16b87c||0x1f4;return function(_0x1cbf2c){logger[_0x15fd('0x22')](_0x1cbf2c['stack']);if(_0x1cbf2c[_0x15fd('0x23')]){delete _0x1cbf2c['name'];}_0x4c9708[_0x15fd('0x17')](_0x16b87c)[_0x15fd('0x24')](_0x1cbf2c);};}exports[_0x15fd('0x25')]=function(_0x27d2c4,_0x233ed3){var _0x6c213b={},_0x218034={},_0xe650a3={'count':0x0,'rows':[]};var _0x4590a1=_[_0x15fd('0x26')](db[_0x15fd('0x27')]['rawAttributes'],function(_0x47c22c){return{'name':_0x47c22c[_0x15fd('0x28')],'type':_0x47c22c['type'][_0x15fd('0x29')]};});_0x218034[_0x15fd('0x2a')]=_['differenceBy'](_[_0x15fd('0x26')](_0x4590a1,_0x15fd('0x23')),['format']);_0x218034[_0x15fd('0x2b')]=_[_0x15fd('0x2c')](_0x27d2c4[_0x15fd('0x2b')]);_0x218034[_0x15fd('0x2d')]=_[_0x15fd('0x2e')](_0x218034[_0x15fd('0x2a')],_0x218034['query']);_0x6c213b[_0x15fd('0x2f')]=_[_0x15fd('0x2e')](_0x218034[_0x15fd('0x2a')],qs[_0x15fd('0x30')](_0x27d2c4['query'][_0x15fd('0x30')]));_0x6c213b[_0x15fd('0x2f')]=_0x6c213b[_0x15fd('0x2f')][_0x15fd('0x31')]?_0x6c213b[_0x15fd('0x2f')]:_0x218034[_0x15fd('0x2a')];if(!_0x27d2c4['query'][_0x15fd('0x32')](_0x15fd('0x33'))){_0x6c213b['limit']=qs[_0x15fd('0x19')](_0x27d2c4[_0x15fd('0x2b')][_0x15fd('0x19')]);_0x6c213b['offset']=qs[_0x15fd('0x1a')](_0x27d2c4[_0x15fd('0x2b')][_0x15fd('0x1a')]);}_0x6c213b[_0x15fd('0x34')]=qs[_0x15fd('0x35')](_0x27d2c4[_0x15fd('0x2b')]['sort']);_0x6c213b['where']=qs['filters'](_[_0x15fd('0x36')](_0x27d2c4[_0x15fd('0x2b')],_0x218034[_0x15fd('0x2d')]),_0x4590a1);if(_0x27d2c4['query']['filter']){_0x6c213b[_0x15fd('0x37')]=_['merge'](_0x6c213b['where'],{'$or':_['map'](_0x4590a1,function(_0x2edb0d){if(_0x2edb0d[_0x15fd('0x38')]!==_0x15fd('0x39')){var _0x59d0d7={};_0x59d0d7[_0x2edb0d[_0x15fd('0x23')]]={'$like':'%'+_0x27d2c4[_0x15fd('0x2b')][_0x15fd('0x3a')]+'%'};return _0x59d0d7;}})});}_0x6c213b=_['merge']({},_0x6c213b,_0x27d2c4[_0x15fd('0x3b')]);var _0x1c4d40={'where':_0x6c213b[_0x15fd('0x37')]};return db[_0x15fd('0x27')][_0x15fd('0x3c')](_0x1c4d40)[_0x15fd('0x1f')](function(_0x19a29f){_0xe650a3[_0x15fd('0x3c')]=_0x19a29f;if(_0x27d2c4[_0x15fd('0x2b')]['includeAll']){_0x6c213b[_0x15fd('0x3d')]=[{'all':!![]}];}return db[_0x15fd('0x27')][_0x15fd('0x3e')](_0x6c213b);})[_0x15fd('0x1f')](function(_0x2d2b6f){_0xe650a3[_0x15fd('0x3f')]=_0x2d2b6f;return _0xe650a3;})[_0x15fd('0x1f')](respondWithFilteredResult(_0x233ed3,_0x6c213b))[_0x15fd('0x40')](handleError(_0x233ed3,null));};exports[_0x15fd('0x41')]=function(_0x104eef,_0x2eb6b6){var _0x145eab={'raw':![],'where':{'id':_0x104eef[_0x15fd('0x42')]['id']}},_0x269aae={};_0x269aae[_0x15fd('0x2a')]=_['keys'](db[_0x15fd('0x27')][_0x15fd('0x43')]);_0x269aae[_0x15fd('0x2b')]=_[_0x15fd('0x2c')](_0x104eef[_0x15fd('0x2b')]);_0x269aae[_0x15fd('0x2d')]=_[_0x15fd('0x2e')](_0x269aae[_0x15fd('0x2a')],_0x269aae['query']);_0x145eab['attributes']=_[_0x15fd('0x2e')](_0x269aae['model'],qs[_0x15fd('0x30')](_0x104eef[_0x15fd('0x2b')]['fields']));_0x145eab[_0x15fd('0x2f')]=_0x145eab[_0x15fd('0x2f')][_0x15fd('0x31')]?_0x145eab[_0x15fd('0x2f')]:_0x269aae[_0x15fd('0x2a')];if(_0x104eef[_0x15fd('0x2b')]['includeAll']){_0x145eab[_0x15fd('0x3d')]=[{'all':!![]}];}_0x145eab=_[_0x15fd('0x44')]({},_0x145eab,_0x104eef[_0x15fd('0x3b')]);return db[_0x15fd('0x27')][_0x15fd('0x45')](_0x145eab)[_0x15fd('0x1f')](handleEntityNotFound(_0x2eb6b6,null))[_0x15fd('0x1f')](respondWithResult(_0x2eb6b6,null))[_0x15fd('0x40')](handleError(_0x2eb6b6,null));};exports[_0x15fd('0x46')]=function(_0x1d3beb,_0x16b4f5){return db[_0x15fd('0x27')]['create'](_0x1d3beb[_0x15fd('0x47')],{})['then'](respondWithResult(_0x16b4f5,0xc9))[_0x15fd('0x40')](handleError(_0x16b4f5,null));};exports[_0x15fd('0x1e')]=function(_0xeb1e06,_0x5a1f32){if(_0xeb1e06[_0x15fd('0x47')]['id']){delete _0xeb1e06[_0x15fd('0x47')]['id'];}delete _0xeb1e06[_0x15fd('0x47')][_0x15fd('0x48')];delete _0xeb1e06['body'][_0x15fd('0x49')];delete _0xeb1e06[_0x15fd('0x47')][_0x15fd('0x4a')];delete _0xeb1e06[_0x15fd('0x47')]['value'];return db[_0x15fd('0x27')][_0x15fd('0x45')]({'where':{'id':_0xeb1e06['params']['id']}})['then'](handleEntityNotFound(_0x5a1f32,null))['then'](saveUpdates(_0xeb1e06[_0x15fd('0x47')],null))[_0x15fd('0x1f')](respondWithResult(_0x5a1f32,null))[_0x15fd('0x40')](handleError(_0x5a1f32,null));};exports[_0x15fd('0x4b')]=function(_0x292174,_0x33a128){return db['ScreenRecording'][_0x15fd('0x4b')]()[_0x15fd('0x1f')](respondWithResult(_0x33a128,null))[_0x15fd('0x40')](handleError(_0x33a128,null));};exports['download']=function(_0x30c4e3,_0x4dd1d5,_0x3a48e7){var _0x2886e3=require(_0x15fd('0x4c'));var _0x42d4de=![];var _0x332df7={};if(_0x30c4e3[_0x15fd('0x2b')][_0x15fd('0x38')]&&_0x30c4e3[_0x15fd('0x2b')][_0x15fd('0x38')]===_0x15fd('0x4d')){_0x332df7[_0x15fd('0x4d')]=_0x30c4e3[_0x15fd('0x42')]['id'];}else{_0x332df7['id']=_0x30c4e3[_0x15fd('0x42')]['id'];}return db['ScreenRecording'][_0x15fd('0x45')]({'where':_0x332df7,'attributes':['id','value'],'raw':!![]})[_0x15fd('0x1f')](handleEntityNotFound(_0x4dd1d5,null))['then'](function(_0x25bdea){if(_0x25bdea){var _0x1fac7f=path[_0x15fd('0x4e')](config['root'],'server/files/screen_recordings',_0x25bdea[_0x15fd('0x4f')]);var _0xc9c5ef=util[_0x15fd('0x50')](_0x15fd('0x51'),_0x1fac7f);if(fs['existsSync'](_0xc9c5ef)){_0x42d4de=!![];return _0x2886e3[_0x15fd('0x52')](_0xc9c5ef,_0x1fac7f,config[_0x15fd('0x53')][_0x15fd('0x54')])[_0x15fd('0x1f')](function(){return _0x25bdea;});}return _0x25bdea;}})[_0x15fd('0x1f')](function(_0x321fe7){if(_0x321fe7){var _0x59b3b4=path[_0x15fd('0x4e')](config[_0x15fd('0x55')],_0x15fd('0x56'),_0x321fe7[_0x15fd('0x4f')]);if(!fs[_0x15fd('0x57')](_0x59b3b4)){throw new db[(_0x15fd('0x58'))]['ValidationError']('ScreenRecording\x20not\x20found');}if(_0x321fe7[_0x15fd('0x59')]){return _0x4dd1d5[_0x15fd('0x5a')](_0x59b3b4,_0x321fe7['filename']+path[_0x15fd('0x5b')](_0x59b3b4),function(){if(_0x42d4de){fs[_0x15fd('0x5c')](_0x59b3b4);}});}else{return _0x4dd1d5['download'](_0x59b3b4,function(_0x285fd5){if(_0x42d4de){fs[_0x15fd('0x5c')](_0x59b3b4);}});}}})[_0x15fd('0x40')](function(_0x53bfd7){if(_0x53bfd7[_0x15fd('0x5d')]===_0x15fd('0x5e')){_0x4dd1d5[_0x15fd('0x17')](0x194)[_0x15fd('0x24')](_0x15fd('0x5f'));}else{return handleError(_0x4dd1d5,null);}});};exports[_0x15fd('0x20')]=function(_0xa1bb5c,_0x290497){return db[_0x15fd('0x27')][_0x15fd('0x45')]({'where':{'id':_0xa1bb5c['params']['id']}})[_0x15fd('0x1f')](function(_0x3a26c8){if(_['isNil'](_0x3a26c8)){throw new ReferenceError('Entity\x20not\x20found');}return _0x3a26c8;})[_0x15fd('0x1f')](function(_0x39e6ee){var _0x2bd6ef=path[_0x15fd('0x4e')](config[_0x15fd('0x55')],_0x15fd('0x56'),_0x39e6ee['value']);logger[_0x15fd('0x60')](_0x15fd('0x61'),_0x2bd6ef);if(!_[_0x15fd('0x62')](_0x39e6ee[_0x15fd('0x4f')])&&fs[_0x15fd('0x57')](_0x2bd6ef)){logger[_0x15fd('0x60')](_0x15fd('0x63')+_0x2bd6ef+_0x15fd('0x64'));fs[_0x15fd('0x65')](_0x2bd6ef);}_0x2bd6ef=_0x2bd6ef+_0x15fd('0x66');if(!_[_0x15fd('0x62')](_0x39e6ee['value'])&&fs['existsSync'](_0x2bd6ef)){logger[_0x15fd('0x60')](_0x15fd('0x63')+_0x2bd6ef+_0x15fd('0x64'));fs[_0x15fd('0x65')](_0x2bd6ef);}return _0x39e6ee;})[_0x15fd('0x1f')](function(_0xfa3aa1){if(!_0xfa3aa1)throw new InternalError();return _0xfa3aa1[_0x15fd('0x20')]();})['then'](function(){_0x290497[_0x15fd('0x17')](0xcc)['end']();})[_0x15fd('0x40')](handleError(_0x290497,null));};
\ No newline at end of file
+var _0x032e=['status','json','offset','undefined','limit','count','Content-Range','apply','reject','update','then','error','name','send','rawAttributes','fieldName','type','model','differenceBy','map','format','keys','query','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','ScreenRecording','rows','catch','show','find','create','body','createdAt','closedAt','value','params','describe','download','../../components/encryptor','uniqueid','join','root','server/files/screen_recordings','%s.cypher','existsSync','decryptFile','secrets','recording','ValidationError','ScreenRecording\x20not\x20found','filename','extname','unlink','message','Not\x20found','isNil','Entity\x20not\x20found','info','cancellazione\x20fisica\x20documento\x20%s','File:\x20\x22','\x22\x20trovato\x20eseguo\x20la\x20cancellazione','.cypher','unlinkSync','destroy','eml-format','zip-dir','fast-json-patch','bluebird','mustache','util','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','sendStatus','end'];(function(_0x1b16a9,_0x1c1324){var _0x57668c=function(_0x11603d){while(--_0x11603d){_0x1b16a9['push'](_0x1b16a9['shift']());}};_0x57668c(++_0x1c1324);}(_0x032e,0x124));var _0xe032=function(_0x40ac5e,_0x2de228){_0x40ac5e=_0x40ac5e-0x0;var _0x2839d6=_0x032e[_0x40ac5e];return _0x2839d6;};'use strict';var emlformat=require(_0xe032('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xe032('0x1'));var jsonpatch=require(_0xe032('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0xe032('0x3'));var Mustache=require(_0xe032('0x4'));var util=require(_0xe032('0x5'));var path=require(_0xe032('0x6'));var sox=require(_0xe032('0x7'));var csv=require(_0xe032('0x8'));var ejs=require(_0xe032('0x9'));var fs=require('fs');var fs_extra=require(_0xe032('0xa'));var _=require(_0xe032('0xb'));var squel=require(_0xe032('0xc'));var crypto=require(_0xe032('0xd'));var jsforce=require(_0xe032('0xe'));var deskjs=require(_0xe032('0xf'));var toCsv=require(_0xe032('0x8'));var querystring=require(_0xe032('0x10'));var Papa=require(_0xe032('0x11'));var Redis=require(_0xe032('0x12'));var authService=require(_0xe032('0x13'));var qs=require('../../components/parsers/qs');var as=require(_0xe032('0x14'));var hardwareService=require(_0xe032('0x15'));var logger=require(_0xe032('0x16'))(_0xe032('0x17'));var utils=require(_0xe032('0x18'));var config=require(_0xe032('0x19'));var licenseUtil=require(_0xe032('0x1a'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x646979,_0x266d71){_0x266d71=_0x266d71||0xcc;return function(_0x28c2b6){if(_0x28c2b6){return _0x646979[_0xe032('0x1b')](_0x266d71);}return _0x646979['status'](_0x266d71)[_0xe032('0x1c')]();};}function respondWithResult(_0x2e267b,_0x176547){_0x176547=_0x176547||0xc8;return function(_0x422e96){if(_0x422e96){return _0x2e267b[_0xe032('0x1d')](_0x176547)[_0xe032('0x1e')](_0x422e96);}};}function respondWithFilteredResult(_0x2bf528,_0x4da5b7){return function(_0x231c35){if(_0x231c35){var _0x749018=typeof _0x4da5b7[_0xe032('0x1f')]===_0xe032('0x20')&&typeof _0x4da5b7[_0xe032('0x21')]===_0xe032('0x20');var _0x4cdab3=_0x231c35[_0xe032('0x22')];var _0x25cedb=_0x749018?0x0:_0x4da5b7[_0xe032('0x1f')];var _0x41d2a5=_0x749018?_0x231c35[_0xe032('0x22')]:_0x4da5b7['offset']+_0x4da5b7['limit'];var _0x484e6c;if(_0x41d2a5>=_0x4cdab3){_0x41d2a5=_0x4cdab3;_0x484e6c=0xc8;}else{_0x484e6c=0xce;}_0x2bf528[_0xe032('0x1d')](_0x484e6c);return _0x2bf528['set'](_0xe032('0x23'),_0x25cedb+'-'+_0x41d2a5+'/'+_0x4cdab3)[_0xe032('0x1e')](_0x231c35);}return null;};}function patchUpdates(_0x3f0257){return function(_0x2aa342){try{jsonpatch[_0xe032('0x24')](_0x2aa342,_0x3f0257,!![]);}catch(_0x256f71){return BPromise[_0xe032('0x25')](_0x256f71);}return _0x2aa342['save']();};}function saveUpdates(_0x32f8b6,_0x866c81){return function(_0x232e8f){if(_0x232e8f){return _0x232e8f[_0xe032('0x26')](_0x32f8b6)[_0xe032('0x27')](function(_0x33d89a){return _0x33d89a;});}return null;};}function removeEntity(_0x22831a,_0xe89aa7){return function(_0x499da5){if(_0x499da5){return _0x499da5['destroy']()['then'](function(){_0x22831a[_0xe032('0x1d')](0xcc)[_0xe032('0x1c')]();});}};}function handleEntityNotFound(_0x302559,_0x2a56e5){return function(_0x2bfe8f){if(!_0x2bfe8f){_0x302559[_0xe032('0x1b')](0x194);}return _0x2bfe8f;};}function handleError(_0x36ece7,_0x2b6ffa){_0x2b6ffa=_0x2b6ffa||0x1f4;return function(_0x4dcbf1){logger[_0xe032('0x28')](_0x4dcbf1['stack']);if(_0x4dcbf1[_0xe032('0x29')]){delete _0x4dcbf1[_0xe032('0x29')];}_0x36ece7[_0xe032('0x1d')](_0x2b6ffa)[_0xe032('0x2a')](_0x4dcbf1);};}exports['index']=function(_0x5573e4,_0x3e2575){var _0x38e7ea={},_0x469290={},_0xae116e={'count':0x0,'rows':[]};var _0x4e8b72=_['map'](db['ScreenRecording'][_0xe032('0x2b')],function(_0x1dd34f){return{'name':_0x1dd34f[_0xe032('0x2c')],'type':_0x1dd34f[_0xe032('0x2d')]['key']};});_0x469290[_0xe032('0x2e')]=_[_0xe032('0x2f')](_[_0xe032('0x30')](_0x4e8b72,_0xe032('0x29')),[_0xe032('0x31')]);_0x469290['query']=_[_0xe032('0x32')](_0x5573e4[_0xe032('0x33')]);_0x469290[_0xe032('0x34')]=_[_0xe032('0x35')](_0x469290['model'],_0x469290[_0xe032('0x33')]);_0x38e7ea['attributes']=_[_0xe032('0x35')](_0x469290['model'],qs[_0xe032('0x36')](_0x5573e4['query'][_0xe032('0x36')]));_0x38e7ea['attributes']=_0x38e7ea[_0xe032('0x37')][_0xe032('0x38')]?_0x38e7ea['attributes']:_0x469290[_0xe032('0x2e')];if(!_0x5573e4[_0xe032('0x33')][_0xe032('0x39')](_0xe032('0x3a'))){_0x38e7ea['limit']=qs[_0xe032('0x21')](_0x5573e4['query'][_0xe032('0x21')]);_0x38e7ea[_0xe032('0x1f')]=qs['offset'](_0x5573e4[_0xe032('0x33')][_0xe032('0x1f')]);}_0x38e7ea['order']=qs[_0xe032('0x3b')](_0x5573e4[_0xe032('0x33')][_0xe032('0x3b')]);_0x38e7ea[_0xe032('0x3c')]=qs[_0xe032('0x34')](_[_0xe032('0x3d')](_0x5573e4[_0xe032('0x33')],_0x469290[_0xe032('0x34')]),_0x4e8b72);if(_0x5573e4[_0xe032('0x33')][_0xe032('0x3e')]){_0x38e7ea[_0xe032('0x3c')]=_[_0xe032('0x3f')](_0x38e7ea[_0xe032('0x3c')],{'$or':_[_0xe032('0x30')](_0x4e8b72,function(_0x39af44){if(_0x39af44[_0xe032('0x2d')]!==_0xe032('0x40')){var _0x555914={};_0x555914[_0x39af44[_0xe032('0x29')]]={'$like':'%'+_0x5573e4['query'][_0xe032('0x3e')]+'%'};return _0x555914;}})});}_0x38e7ea=_[_0xe032('0x3f')]({},_0x38e7ea,_0x5573e4[_0xe032('0x41')]);var _0x119790={'where':_0x38e7ea[_0xe032('0x3c')]};return db['ScreenRecording'][_0xe032('0x22')](_0x119790)['then'](function(_0x46ea84){_0xae116e['count']=_0x46ea84;if(_0x5573e4[_0xe032('0x33')][_0xe032('0x42')]){_0x38e7ea[_0xe032('0x43')]=[{'all':!![]}];}return db[_0xe032('0x44')]['findAll'](_0x38e7ea);})[_0xe032('0x27')](function(_0x5a6450){_0xae116e[_0xe032('0x45')]=_0x5a6450;return _0xae116e;})[_0xe032('0x27')](respondWithFilteredResult(_0x3e2575,_0x38e7ea))[_0xe032('0x46')](handleError(_0x3e2575,null));};exports[_0xe032('0x47')]=function(_0x4b58eb,_0x513b0c){var _0x45345d={'raw':![],'where':{'id':_0x4b58eb['params']['id']}},_0x203021={};_0x203021[_0xe032('0x2e')]=_[_0xe032('0x32')](db[_0xe032('0x44')][_0xe032('0x2b')]);_0x203021[_0xe032('0x33')]=_['keys'](_0x4b58eb[_0xe032('0x33')]);_0x203021[_0xe032('0x34')]=_[_0xe032('0x35')](_0x203021[_0xe032('0x2e')],_0x203021[_0xe032('0x33')]);_0x45345d[_0xe032('0x37')]=_[_0xe032('0x35')](_0x203021[_0xe032('0x2e')],qs['fields'](_0x4b58eb['query'][_0xe032('0x36')]));_0x45345d['attributes']=_0x45345d[_0xe032('0x37')][_0xe032('0x38')]?_0x45345d[_0xe032('0x37')]:_0x203021[_0xe032('0x2e')];if(_0x4b58eb[_0xe032('0x33')][_0xe032('0x42')]){_0x45345d[_0xe032('0x43')]=[{'all':!![]}];}_0x45345d=_[_0xe032('0x3f')]({},_0x45345d,_0x4b58eb[_0xe032('0x41')]);return db['ScreenRecording'][_0xe032('0x48')](_0x45345d)['then'](handleEntityNotFound(_0x513b0c,null))['then'](respondWithResult(_0x513b0c,null))[_0xe032('0x46')](handleError(_0x513b0c,null));};exports[_0xe032('0x49')]=function(_0x62bfc8,_0x1e54d3){return db['ScreenRecording'][_0xe032('0x49')](_0x62bfc8[_0xe032('0x4a')],{})[_0xe032('0x27')](respondWithResult(_0x1e54d3,0xc9))[_0xe032('0x46')](handleError(_0x1e54d3,null));};exports[_0xe032('0x26')]=function(_0x233d9e,_0x3774bc){if(_0x233d9e['body']['id']){delete _0x233d9e[_0xe032('0x4a')]['id'];}delete _0x233d9e[_0xe032('0x4a')]['duration'];delete _0x233d9e[_0xe032('0x4a')][_0xe032('0x4b')];delete _0x233d9e[_0xe032('0x4a')][_0xe032('0x4c')];delete _0x233d9e[_0xe032('0x4a')][_0xe032('0x4d')];return db[_0xe032('0x44')][_0xe032('0x48')]({'where':{'id':_0x233d9e[_0xe032('0x4e')]['id']}})[_0xe032('0x27')](handleEntityNotFound(_0x3774bc,null))[_0xe032('0x27')](saveUpdates(_0x233d9e[_0xe032('0x4a')],null))[_0xe032('0x27')](respondWithResult(_0x3774bc,null))[_0xe032('0x46')](handleError(_0x3774bc,null));};exports['describe']=function(_0x1c8b32,_0x53c8b2){return db[_0xe032('0x44')][_0xe032('0x4f')]()[_0xe032('0x27')](respondWithResult(_0x53c8b2,null))[_0xe032('0x46')](handleError(_0x53c8b2,null));};exports[_0xe032('0x50')]=function(_0x1b7a91,_0x2e29d3,_0xa98ee6){var _0x16c91e=require(_0xe032('0x51'));var _0x1b9012=![];var _0x564fe0={};if(_0x1b7a91[_0xe032('0x33')][_0xe032('0x2d')]&&_0x1b7a91['query'][_0xe032('0x2d')]==='uniqueid'){_0x564fe0[_0xe032('0x52')]=_0x1b7a91[_0xe032('0x4e')]['id'];}else{_0x564fe0['id']=_0x1b7a91[_0xe032('0x4e')]['id'];}return db[_0xe032('0x44')][_0xe032('0x48')]({'where':_0x564fe0,'attributes':['id','value'],'raw':!![]})[_0xe032('0x27')](handleEntityNotFound(_0x2e29d3,null))[_0xe032('0x27')](function(_0x1e1277){if(_0x1e1277){var _0x21a32f=path[_0xe032('0x53')](config[_0xe032('0x54')],_0xe032('0x55'),_0x1e1277['value']);var _0x3f46c0=util[_0xe032('0x31')](_0xe032('0x56'),_0x21a32f);if(fs[_0xe032('0x57')](_0x3f46c0)){_0x1b9012=!![];return _0x16c91e[_0xe032('0x58')](_0x3f46c0,_0x21a32f,config[_0xe032('0x59')][_0xe032('0x5a')])[_0xe032('0x27')](function(){return _0x1e1277;});}return _0x1e1277;}})[_0xe032('0x27')](function(_0x54c0b0){if(_0x54c0b0){var _0x795a58=path[_0xe032('0x53')](config[_0xe032('0x54')],'server/files/screen_recordings',_0x54c0b0[_0xe032('0x4d')]);if(!fs[_0xe032('0x57')](_0x795a58)){throw new db['Sequelize'][(_0xe032('0x5b'))](_0xe032('0x5c'));}if(_0x54c0b0[_0xe032('0x5d')]){return _0x2e29d3[_0xe032('0x50')](_0x795a58,_0x54c0b0[_0xe032('0x5d')]+path[_0xe032('0x5e')](_0x795a58),function(){if(_0x1b9012){fs[_0xe032('0x5f')](_0x795a58);}});}else{return _0x2e29d3[_0xe032('0x50')](_0x795a58,function(_0x1aa18e){if(_0x1b9012){fs[_0xe032('0x5f')](_0x795a58);}});}}})[_0xe032('0x46')](function(_0x505986){if(_0x505986[_0xe032('0x60')]===_0xe032('0x5c')){_0x2e29d3[_0xe032('0x1d')](0x194)[_0xe032('0x2a')](_0xe032('0x61'));}else{return handleError(_0x2e29d3,null);}});};exports['destroy']=function(_0x2b6ef8,_0x55e6b0){return db[_0xe032('0x44')][_0xe032('0x48')]({'where':{'id':_0x2b6ef8[_0xe032('0x4e')]['id']}})[_0xe032('0x27')](function(_0x3c5eb8){if(_[_0xe032('0x62')](_0x3c5eb8)){throw new ReferenceError(_0xe032('0x63'));}return _0x3c5eb8;})[_0xe032('0x27')](function(_0x22fd01){var _0x536510=path['join'](config['root'],_0xe032('0x55'),_0x22fd01[_0xe032('0x4d')]);logger[_0xe032('0x64')](_0xe032('0x65'),_0x536510);if(!_[_0xe032('0x62')](_0x22fd01[_0xe032('0x4d')])&&fs['existsSync'](_0x536510)){logger[_0xe032('0x64')](_0xe032('0x66')+_0x536510+_0xe032('0x67'));fs['unlinkSync'](_0x536510);}_0x536510=_0x536510+_0xe032('0x68');if(!_['isNil'](_0x22fd01[_0xe032('0x4d')])&&fs[_0xe032('0x57')](_0x536510)){logger['info']('File:\x20\x22'+_0x536510+'\x22\x20trovato\x20eseguo\x20la\x20cancellazione');fs[_0xe032('0x69')](_0x536510);}return _0x22fd01;})['then'](function(_0x5157f7){if(!_0x5157f7)throw new InternalError();return _0x5157f7[_0xe032('0x6a')]();})[_0xe032('0x27')](function(){_0x55e6b0[_0xe032('0x1d')](0xcc)['end']();})[_0xe032('0x46')](handleError(_0x55e6b0,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf583=['../../config/environment','./screenRecording.attributes','exports','define','interactionid','lodash','api','moment','bluebird','request-promise','path'];(function(_0x56dee6,_0x3b2360){var _0x2bd58d=function(_0x2446e8){while(--_0x2446e8){_0x56dee6['push'](_0x56dee6['shift']());}};_0x2bd58d(++_0x3b2360);}(_0xf583,0x15a));var _0x3f58=function(_0x202d24,_0x5e8641){_0x202d24=_0x202d24-0x0;var _0x2b3a8e=_0xf583[_0x202d24];return _0x2b3a8e;};'use strict';var _=require(_0x3f58('0x0'));var util=require('util');var logger=require('../../config/logger')(_0x3f58('0x1'));var moment=require(_0x3f58('0x2'));var BPromise=require(_0x3f58('0x3'));var rp=require(_0x3f58('0x4'));var fs=require('fs');var path=require(_0x3f58('0x5'));var rimraf=require('rimraf');var config=require(_0x3f58('0x6'));var attributes=require(_0x3f58('0x7'));module[_0x3f58('0x8')]=function(_0x4b8014,_0x56f209){return _0x4b8014[_0x3f58('0x9')]('ScreenRecording',attributes,{'tableName':'screen_recordings','paranoid':![],'indexes':[{'name':_0x3f58('0xa'),'fields':['interactionid']}],'timestamps':!![]});};
\ No newline at end of file
+var _0xc9b6=['../../config/environment','./screenRecording.attributes','exports','ScreenRecording','interactionid','lodash','util','../../config/logger','api','moment','bluebird','request-promise','rimraf'];(function(_0x203c0a,_0x9ba4f7){var _0x46d53b=function(_0x197446){while(--_0x197446){_0x203c0a['push'](_0x203c0a['shift']());}};_0x46d53b(++_0x9ba4f7);}(_0xc9b6,0x87));var _0x6c9b=function(_0x4d2938,_0x332d65){_0x4d2938=_0x4d2938-0x0;var _0x5e7d9b=_0xc9b6[_0x4d2938];return _0x5e7d9b;};'use strict';var _=require(_0x6c9b('0x0'));var util=require(_0x6c9b('0x1'));var logger=require(_0x6c9b('0x2'))(_0x6c9b('0x3'));var moment=require(_0x6c9b('0x4'));var BPromise=require(_0x6c9b('0x5'));var rp=require(_0x6c9b('0x6'));var fs=require('fs');var path=require('path');var rimraf=require(_0x6c9b('0x7'));var config=require(_0x6c9b('0x8'));var attributes=require(_0x6c9b('0x9'));module[_0x6c9b('0xa')]=function(_0x516146,_0x5bb843){return _0x516146['define'](_0x6c9b('0xb'),attributes,{'tableName':'screen_recordings','paranoid':![],'indexes':[{'name':'interactionid','fields':[_0x6c9b('0xc')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6a20=['then','info','request\x20sent','ScreenRecording,\x20%s,\x20%s,\x20%s','error','code','ScreenRecording,\x20%s,\x20%s','message','lodash','util','bluebird','randomstring','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','client','http'];(function(_0x563973,_0x48b9f6){var _0x21b5ab=function(_0x36f68b){while(--_0x36f68b){_0x563973['push'](_0x563973['shift']());}};_0x21b5ab(++_0x48b9f6);}(_0x6a20,0x112));var _0x06a2=function(_0xa132f9,_0x32f20d){_0xa132f9=_0xa132f9-0x0;var _0x342190=_0x6a20[_0xa132f9];return _0x342190;};'use strict';var _=require(_0x06a2('0x0'));var util=require(_0x06a2('0x1'));var moment=require('moment');var BPromise=require(_0x06a2('0x2'));var rs=require(_0x06a2('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x06a2('0x4'))['db'];var utils=require(_0x06a2('0x5'));var logger=require('../../config/logger')(_0x06a2('0x6'));var config=require(_0x06a2('0x7'));var jayson=require(_0x06a2('0x8'));var client=jayson[_0x06a2('0x9')][_0x06a2('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x39b7e2,_0x5e8ae2,_0xc71549){return new BPromise(function(_0x5b24e1,_0x43663e){return client['request'](_0x39b7e2,_0xc71549)[_0x06a2('0xb')](function(_0x23eb59){logger[_0x06a2('0xc')]('ScreenRecording,\x20%s,\x20%s',_0x5e8ae2,_0x06a2('0xd'));logger['debug'](_0x06a2('0xe'),_0x5e8ae2,_0x06a2('0xd'),JSON['stringify'](_0x23eb59));if(_0x23eb59[_0x06a2('0xf')]){if(_0x23eb59[_0x06a2('0xf')][_0x06a2('0x10')]===0x1f4){logger[_0x06a2('0xf')](_0x06a2('0x11'),_0x5e8ae2,_0x23eb59[_0x06a2('0xf')][_0x06a2('0x12')]);return _0x43663e(_0x23eb59[_0x06a2('0xf')][_0x06a2('0x12')]);}logger['error']('ScreenRecording,\x20%s,\x20%s',_0x5e8ae2,_0x23eb59[_0x06a2('0xf')]['message']);return _0x5b24e1(_0x23eb59[_0x06a2('0xf')][_0x06a2('0x12')]);}else{logger[_0x06a2('0xc')](_0x06a2('0x11'),_0x5e8ae2,_0x06a2('0xd'));_0x5b24e1(_0x23eb59['result'][_0x06a2('0x12')]);}})['catch'](function(_0x11513f){logger['error'](_0x06a2('0x11'),_0x5e8ae2,_0x11513f);_0x43663e(_0x11513f);});});}
\ No newline at end of file
+var _0x1a4f=['randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','request\x20sent','debug','ScreenRecording,\x20%s,\x20%s,\x20%s','stringify','error','code','ScreenRecording,\x20%s,\x20%s','message','result','catch','lodash','util','moment','bluebird'];(function(_0x57be81,_0x3e94be){var _0x6f0476=function(_0x548e98){while(--_0x548e98){_0x57be81['push'](_0x57be81['shift']());}};_0x6f0476(++_0x3e94be);}(_0x1a4f,0xb2));var _0xf1a4=function(_0x3bf5e9,_0x509efe){_0x3bf5e9=_0x3bf5e9-0x0;var _0x3577a0=_0x1a4f[_0x3bf5e9];return _0x3577a0;};'use strict';var _=require(_0xf1a4('0x0'));var util=require(_0xf1a4('0x1'));var moment=require(_0xf1a4('0x2'));var BPromise=require(_0xf1a4('0x3'));var rs=require(_0xf1a4('0x4'));var fs=require('fs');var Redis=require(_0xf1a4('0x5'));var db=require(_0xf1a4('0x6'))['db'];var utils=require('../../config/utils');var logger=require(_0xf1a4('0x7'))(_0xf1a4('0x8'));var config=require(_0xf1a4('0x9'));var jayson=require(_0xf1a4('0xa'));var client=jayson[_0xf1a4('0xb')][_0xf1a4('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x3e9e9e,_0x27077e,_0x4d65aa){return new BPromise(function(_0x35cfb4,_0x1754cb){return client[_0xf1a4('0xd')](_0x3e9e9e,_0x4d65aa)[_0xf1a4('0xe')](function(_0x487b26){logger[_0xf1a4('0xf')]('ScreenRecording,\x20%s,\x20%s',_0x27077e,_0xf1a4('0x10'));logger[_0xf1a4('0x11')](_0xf1a4('0x12'),_0x27077e,_0xf1a4('0x10'),JSON[_0xf1a4('0x13')](_0x487b26));if(_0x487b26[_0xf1a4('0x14')]){if(_0x487b26[_0xf1a4('0x14')][_0xf1a4('0x15')]===0x1f4){logger[_0xf1a4('0x14')](_0xf1a4('0x16'),_0x27077e,_0x487b26[_0xf1a4('0x14')][_0xf1a4('0x17')]);return _0x1754cb(_0x487b26[_0xf1a4('0x14')][_0xf1a4('0x17')]);}logger['error']('ScreenRecording,\x20%s,\x20%s',_0x27077e,_0x487b26[_0xf1a4('0x14')][_0xf1a4('0x17')]);return _0x35cfb4(_0x487b26[_0xf1a4('0x14')][_0xf1a4('0x17')]);}else{logger[_0xf1a4('0xf')](_0xf1a4('0x16'),_0x27077e,'request\x20sent');_0x35cfb4(_0x487b26[_0xf1a4('0x18')][_0xf1a4('0x17')]);}})[_0xf1a4('0x19')](function(_0x37eb8a){logger[_0xf1a4('0x14')](_0xf1a4('0x16'),_0x27077e,_0x37eb8a);_0x1754cb(_0x37eb8a);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x23de=['Router','../../components/interaction/service','./setting.controller','get','index','getDate','show','/:id/logo','getLogo','/:id/logo_login','/:id/gdpr','gdpr','/:id/preferred','getPreferred','/:id/favicon','diskStorage','join','root','server/files/images/logos/','format','logo','extname','originalname','post','file','addLogo','logologin','addLogoLogin','%s%s','preferred','favicon','single','addFavicon','/:id','isAuthenticated','update','exports','multer','util','path','connect-timeout','express'];(function(_0x2b45b5,_0x474458){var _0x1d9c06=function(_0x9a3264){while(--_0x9a3264){_0x2b45b5['push'](_0x2b45b5['shift']());}};_0x1d9c06(++_0x474458);}(_0x23de,0x19f));var _0xe23d=function(_0x19d350,_0x3c843f){_0x19d350=_0x19d350-0x0;var _0x3bfc8d=_0x23de[_0x19d350];return _0x3bfc8d;};'use strict';var multer=require(_0xe23d('0x0'));var util=require(_0xe23d('0x1'));var path=require(_0xe23d('0x2'));var timeout=require(_0xe23d('0x3'));var express=require(_0xe23d('0x4'));var router=express[_0xe23d('0x5')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0xe23d('0x6'));var config=require('../../config/environment');var controller=require(_0xe23d('0x7'));router[_0xe23d('0x8')]('/',auth['isAuthenticated'](),controller[_0xe23d('0x9')]);router['get']('/now',controller[_0xe23d('0xa')]);router[_0xe23d('0x8')]('/:id',controller[_0xe23d('0xb')]);router[_0xe23d('0x8')](_0xe23d('0xc'),controller[_0xe23d('0xd')]);router[_0xe23d('0x8')](_0xe23d('0xe'),controller['getLogoLogin']);router[_0xe23d('0x8')](_0xe23d('0xf'),controller[_0xe23d('0x10')]);router[_0xe23d('0x8')](_0xe23d('0x11'),controller[_0xe23d('0x12')]);router['get'](_0xe23d('0x13'),controller['getFavicon']);var upload=multer({'storage':multer[_0xe23d('0x14')]({'destination':function(_0x521590,_0x416578,_0x2c7c0b){_0x2c7c0b(null,path[_0xe23d('0x15')](config[_0xe23d('0x16')],_0xe23d('0x17')));},'filename':function(_0x1a5c70,_0x484e58,_0x3097b5){_0x3097b5(null,util[_0xe23d('0x18')]('%s%s',_0xe23d('0x19'),path[_0xe23d('0x1a')](_0x484e58[_0xe23d('0x1b')])));}})});router[_0xe23d('0x1c')]('/:id/logo',upload['single'](_0xe23d('0x1d')),controller[_0xe23d('0x1e')]);var upload=multer({'storage':multer[_0xe23d('0x14')]({'destination':function(_0x2da612,_0x1f0614,_0x128d6b){_0x128d6b(null,path[_0xe23d('0x15')](config[_0xe23d('0x16')],_0xe23d('0x17')));},'filename':function(_0x318905,_0x281d78,_0x446417){_0x446417(null,util[_0xe23d('0x18')]('%s%s',_0xe23d('0x1f'),path[_0xe23d('0x1a')](_0x281d78[_0xe23d('0x1b')])));}})});router[_0xe23d('0x1c')](_0xe23d('0xe'),upload['single'](_0xe23d('0x1d')),controller[_0xe23d('0x20')]);var upload=multer({'storage':multer[_0xe23d('0x14')]({'destination':function(_0x58eed7,_0x2095de,_0x2435bd){_0x2435bd(null,path[_0xe23d('0x15')](config[_0xe23d('0x16')],_0xe23d('0x17')));},'filename':function(_0x3142a1,_0x4625e4,_0x155e3a){_0x155e3a(null,util[_0xe23d('0x18')](_0xe23d('0x21'),_0xe23d('0x22'),path[_0xe23d('0x1a')](_0x4625e4[_0xe23d('0x1b')])));}})});router['post'](_0xe23d('0x11'),upload['single'](_0xe23d('0x1d')),controller['addPreferred']);var upload=multer({'storage':multer[_0xe23d('0x14')]({'destination':function(_0x5409d4,_0x1b1a11,_0x8eef00){_0x8eef00(null,path['join'](config[_0xe23d('0x16')],_0xe23d('0x17')));},'filename':function(_0x1f523e,_0x790d76,_0x8a679){_0x8a679(null,util['format'](_0xe23d('0x21'),_0xe23d('0x23'),path['extname'](_0x790d76[_0xe23d('0x1b')])));}})});router['post']('/:id/favicon',upload[_0xe23d('0x24')](_0xe23d('0x1d')),controller[_0xe23d('0x25')]);router['put'](_0xe23d('0x26'),auth[_0xe23d('0x27')](),controller[_0xe23d('0x28')]);module[_0xe23d('0x29')]=router;
\ No newline at end of file
+var _0x94d4=['exports','multer','util','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./setting.controller','get','isAuthenticated','index','/:id','/:id/logo','getLogo','/:id/logo_login','getLogoLogin','/:id/gdpr','/:id/preferred','getFavicon','diskStorage','join','root','server/files/images/logos/','%s%s','logo','extname','originalname','post','single','file','addLogo','format','logologin','addLogoLogin','preferred','addPreferred','favicon','/:id/favicon','addFavicon'];(function(_0x3bf83f,_0x181cac){var _0x22c4a9=function(_0xb3ff0d){while(--_0xb3ff0d){_0x3bf83f['push'](_0x3bf83f['shift']());}};_0x22c4a9(++_0x181cac);}(_0x94d4,0xa5));var _0x494d=function(_0x102a48,_0xa47f8a){_0x102a48=_0x102a48-0x0;var _0x4dddb6=_0x94d4[_0x102a48];return _0x4dddb6;};'use strict';var multer=require(_0x494d('0x0'));var util=require(_0x494d('0x1'));var path=require('path');var timeout=require(_0x494d('0x2'));var express=require(_0x494d('0x3'));var router=express[_0x494d('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0x494d('0x5'));var interaction=require(_0x494d('0x6'));var config=require(_0x494d('0x7'));var controller=require(_0x494d('0x8'));router[_0x494d('0x9')]('/',auth[_0x494d('0xa')](),controller[_0x494d('0xb')]);router['get']('/now',controller['getDate']);router[_0x494d('0x9')](_0x494d('0xc'),controller['show']);router['get'](_0x494d('0xd'),controller[_0x494d('0xe')]);router['get'](_0x494d('0xf'),controller[_0x494d('0x10')]);router[_0x494d('0x9')](_0x494d('0x11'),controller['gdpr']);router[_0x494d('0x9')](_0x494d('0x12'),controller['getPreferred']);router['get']('/:id/favicon',controller[_0x494d('0x13')]);var upload=multer({'storage':multer[_0x494d('0x14')]({'destination':function(_0xfba01a,_0x25f188,_0x3bc5c9){_0x3bc5c9(null,path[_0x494d('0x15')](config[_0x494d('0x16')],_0x494d('0x17')));},'filename':function(_0x2fe493,_0x441d77,_0x263405){_0x263405(null,util['format'](_0x494d('0x18'),_0x494d('0x19'),path[_0x494d('0x1a')](_0x441d77[_0x494d('0x1b')])));}})});router[_0x494d('0x1c')](_0x494d('0xd'),upload[_0x494d('0x1d')](_0x494d('0x1e')),controller[_0x494d('0x1f')]);var upload=multer({'storage':multer[_0x494d('0x14')]({'destination':function(_0x12a484,_0xd67ea4,_0xb2fc39){_0xb2fc39(null,path[_0x494d('0x15')](config[_0x494d('0x16')],_0x494d('0x17')));},'filename':function(_0x134632,_0x5bf90b,_0x2be3b5){_0x2be3b5(null,util[_0x494d('0x20')](_0x494d('0x18'),_0x494d('0x21'),path['extname'](_0x5bf90b['originalname'])));}})});router[_0x494d('0x1c')](_0x494d('0xf'),upload['single']('file'),controller[_0x494d('0x22')]);var upload=multer({'storage':multer['diskStorage']({'destination':function(_0x1dec57,_0x52f26d,_0x2be6f0){_0x2be6f0(null,path[_0x494d('0x15')](config['root'],_0x494d('0x17')));},'filename':function(_0xc107f4,_0x2ca20c,_0x2ab88b){_0x2ab88b(null,util[_0x494d('0x20')]('%s%s',_0x494d('0x23'),path[_0x494d('0x1a')](_0x2ca20c['originalname'])));}})});router['post'](_0x494d('0x12'),upload[_0x494d('0x1d')](_0x494d('0x1e')),controller[_0x494d('0x24')]);var upload=multer({'storage':multer[_0x494d('0x14')]({'destination':function(_0x3a181b,_0x1a2ccd,_0x347c58){_0x347c58(null,path[_0x494d('0x15')](config[_0x494d('0x16')],_0x494d('0x17')));},'filename':function(_0x44f757,_0x5f0318,_0x58769b){_0x58769b(null,util[_0x494d('0x20')](_0x494d('0x18'),_0x494d('0x25'),path[_0x494d('0x1a')](_0x5f0318[_0x494d('0x1b')])));}})});router[_0x494d('0x1c')](_0x494d('0x26'),upload[_0x494d('0x1d')](_0x494d('0x1e')),controller[_0x494d('0x27')]);router['put'](_0x494d('0xc'),auth[_0x494d('0xa')](),controller['update']);module[_0x494d('0x28')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7a54=['UNSIGNED','sequelize','exports','INTEGER','min_mailbox','STRING','/var/opt/motion2/server/files/sounds/converted','BOOLEAN','alternate'];(function(_0x20a52b,_0x2d0f51){var _0x27cf7a=function(_0x513496){while(--_0x513496){_0x20a52b['push'](_0x20a52b['shift']());}};_0x27cf7a(++_0x2d0f51);}(_0x7a54,0x106));var _0x47a5=function(_0x460aa4,_0x425a50){_0x460aa4=_0x460aa4-0x0;var _0x360c8b=_0x7a54[_0x460aa4];return _0x360c8b;};'use strict';var Sequelize=require(_0x47a5('0x0'));module[_0x47a5('0x1')]={'min_internal':{'type':Sequelize[_0x47a5('0x2')](0xb),'unique':'min_internal','defaultValue':0x3e8},'min_mailbox':{'type':Sequelize[_0x47a5('0x2')](0xb),'unique':_0x47a5('0x3'),'defaultValue':0x3e8},'agi_port':{'type':Sequelize['INTEGER'](0xb),'defaultValue':0x11dd},'soundPath':{'type':Sequelize[_0x47a5('0x4')],'defaultValue':_0x47a5('0x5')},'logo':{'type':Sequelize[_0x47a5('0x4')]},'defaultLogo':{'type':Sequelize[_0x47a5('0x6')],'defaultValue':!![]},'loginLogo':{'type':Sequelize[_0x47a5('0x4')]},'defaultLoginLogo':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'headerWhiteLabel':{'type':Sequelize[_0x47a5('0x4')]},'defaultHeaderWhiteLabel':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'securePassword':{'type':Sequelize[_0x47a5('0x6')],'defaultValue':!![]},'firstSetup':{'type':Sequelize[_0x47a5('0x6')],'defaultValue':!![]},'stunaddr':{'type':Sequelize['STRING']},'turnaddr':{'type':Sequelize[_0x47a5('0x4')]},'turnusername':{'type':Sequelize['STRING']},'turnpassword':{'type':Sequelize['STRING']},'pageTitle':{'type':Sequelize['STRING']},'defaultPageTitle':{'type':Sequelize[_0x47a5('0x6')],'defaultValue':!![]},'callRecordingEncryption':{'type':Sequelize[_0x47a5('0x6')],'defaultValue':![]},'passwordExpiresDays':{'type':Sequelize['INTEGER'](0xb),'defaultValue':0x5a},'phoneBarAutoUpdater':{'type':Sequelize[_0x47a5('0x6')],'defaultValue':!![]},'phoneBarAutoUpdaterUrl':{'type':Sequelize['STRING'],'defaultValue':'https://www.xcally.com/bar/phonebar/autoupdater.xml'},'enableEmailPreview':{'type':Sequelize[_0x47a5('0x6')],'defaultValue':![]},'split':{'type':Sequelize[_0x47a5('0x6')],'defaultValue':!![]},'splitSizeCsv':{'type':Sequelize[_0x47a5('0x2')],'defaultValue':0x1388},'splitSizePdf':{'type':Sequelize[_0x47a5('0x2')],'defaultValue':0x1388},'splitSizeXlsx':{'type':Sequelize[_0x47a5('0x2')],'defaultValue':0x1388},'messagesAlignment':{'type':Sequelize[_0x47a5('0x4')],'defaultValue':_0x47a5('0x7')},'chatTimeout':{'type':Sequelize['INTEGER'],'defaultValue':0x1e},'phoneBarRememberMeEnabled':{'type':Sequelize[_0x47a5('0x6')],'defaultValue':!![]},'preferred':{'type':Sequelize[_0x47a5('0x4')]},'defaultPreferred':{'type':Sequelize[_0x47a5('0x6')],'defaultValue':!![]},'rtlSupport':{'type':Sequelize[_0x47a5('0x6')],'defaultValue':![]},'defaultScreenRecordingPath':{'type':Sequelize[_0x47a5('0x4')]},'allowedLoginAttempts':{'type':Sequelize[_0x47a5('0x2')],'defaultValue':0x5},'blockDuration':{'type':Sequelize[_0x47a5('0x2')],'defaultValue':0xa},'favicon':{'type':Sequelize[_0x47a5('0x4')]},'defaultFavicon':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'loginMailFrequency':{'type':Sequelize[_0x47a5('0x2')],'defaultValue':0xa,'validate':{'min':0xa}},'transcribe':{'type':Sequelize[_0x47a5('0x6')],'defaultValue':![]},'automaticTranscribe':{'type':Sequelize[_0x47a5('0x6')],'defaultValue':![]},'transcribeAccountId':{'type':Sequelize[_0x47a5('0x2')]},'transcribeRegion':{'type':Sequelize[_0x47a5('0x4')]},'sentiment':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'automaticSentiment':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'sentimentAccountId':{'type':Sequelize[_0x47a5('0x2')]},'sentimentRegion':{'type':Sequelize['STRING']},'language':{'type':Sequelize['STRING']},'bucket':{'type':Sequelize[_0x47a5('0x4')]},'googleSsoEnabled':{'type':Sequelize[_0x47a5('0x6')],'defaultValue':![]},'enforcePasswordHistory':{'type':Sequelize[_0x47a5('0x6')],'defaultValue':!![]},'passwordHistoryLimit':{'type':Sequelize[_0x47a5('0x2')](0x2)[_0x47a5('0x8')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x5}},'privacyPolicyEmail':{'type':Sequelize[_0x47a5('0x2')](0x2)[_0x47a5('0x8')],'defaultValue':0x0},'privacyPolicyName':{'type':Sequelize[_0x47a5('0x2')](0x2)[_0x47a5('0x8')],'defaultValue':0x0},'privacyPolicyNumber':{'type':Sequelize['INTEGER'](0x2)[_0x47a5('0x8')],'defaultValue':0x0},'searchOnEnterKey':{'type':Sequelize[_0x47a5('0x6')],'defaultValue':!![]},'chatInteractionsReloadTimeout':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'mailInteractionsReloadTimeout':{'type':Sequelize[_0x47a5('0x2')],'defaultValue':0x0},'openchannelInteractionsReloadTimeout':{'type':Sequelize[_0x47a5('0x2')],'defaultValue':0x0},'smsInteractionsReloadTimeout':{'type':Sequelize[_0x47a5('0x2')],'defaultValue':0x0},'whatsappInteractionsReloadTimeout':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'stopRecordingOnTransfer':{'type':Sequelize[_0x47a5('0x6')],'defaultValue':![]}};
\ No newline at end of file
+var _0x5f66=['STRING','BOOLEAN','UNSIGNED','exports','min_internal','INTEGER','min_mailbox'];(function(_0x45d55e,_0x2fede3){var _0x29812a=function(_0x3c6830){while(--_0x3c6830){_0x45d55e['push'](_0x45d55e['shift']());}};_0x29812a(++_0x2fede3);}(_0x5f66,0x1a0));var _0x65f6=function(_0x3e5086,_0x48f4a2){_0x3e5086=_0x3e5086-0x0;var _0xfeb102=_0x5f66[_0x3e5086];return _0xfeb102;};'use strict';var Sequelize=require('sequelize');module[_0x65f6('0x0')]={'min_internal':{'type':Sequelize['INTEGER'](0xb),'unique':_0x65f6('0x1'),'defaultValue':0x3e8},'min_mailbox':{'type':Sequelize[_0x65f6('0x2')](0xb),'unique':_0x65f6('0x3'),'defaultValue':0x3e8},'agi_port':{'type':Sequelize[_0x65f6('0x2')](0xb),'defaultValue':0x11dd},'soundPath':{'type':Sequelize[_0x65f6('0x4')],'defaultValue':'/var/opt/motion2/server/files/sounds/converted'},'logo':{'type':Sequelize[_0x65f6('0x4')]},'defaultLogo':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'loginLogo':{'type':Sequelize[_0x65f6('0x4')]},'defaultLoginLogo':{'type':Sequelize[_0x65f6('0x5')],'defaultValue':!![]},'headerWhiteLabel':{'type':Sequelize['STRING']},'defaultHeaderWhiteLabel':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'securePassword':{'type':Sequelize[_0x65f6('0x5')],'defaultValue':!![]},'firstSetup':{'type':Sequelize[_0x65f6('0x5')],'defaultValue':!![]},'stunaddr':{'type':Sequelize[_0x65f6('0x4')]},'turnaddr':{'type':Sequelize[_0x65f6('0x4')]},'turnusername':{'type':Sequelize[_0x65f6('0x4')]},'turnpassword':{'type':Sequelize[_0x65f6('0x4')]},'pageTitle':{'type':Sequelize['STRING']},'defaultPageTitle':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'callRecordingEncryption':{'type':Sequelize[_0x65f6('0x5')],'defaultValue':![]},'passwordExpiresDays':{'type':Sequelize[_0x65f6('0x2')](0xb),'defaultValue':0x5a},'phoneBarAutoUpdater':{'type':Sequelize[_0x65f6('0x5')],'defaultValue':!![]},'phoneBarAutoUpdaterUrl':{'type':Sequelize[_0x65f6('0x4')],'defaultValue':'https://www.xcally.com/bar/phonebar/autoupdater.xml'},'enableEmailPreview':{'type':Sequelize[_0x65f6('0x5')],'defaultValue':![]},'split':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'splitSizeCsv':{'type':Sequelize['INTEGER'],'defaultValue':0x1388},'splitSizePdf':{'type':Sequelize[_0x65f6('0x2')],'defaultValue':0x1388},'splitSizeXlsx':{'type':Sequelize['INTEGER'],'defaultValue':0x1388},'messagesAlignment':{'type':Sequelize[_0x65f6('0x4')],'defaultValue':'alternate'},'chatTimeout':{'type':Sequelize[_0x65f6('0x2')],'defaultValue':0x1e},'phoneBarRememberMeEnabled':{'type':Sequelize[_0x65f6('0x5')],'defaultValue':!![]},'preferred':{'type':Sequelize[_0x65f6('0x4')]},'defaultPreferred':{'type':Sequelize[_0x65f6('0x5')],'defaultValue':!![]},'rtlSupport':{'type':Sequelize[_0x65f6('0x5')],'defaultValue':![]},'defaultScreenRecordingPath':{'type':Sequelize[_0x65f6('0x4')]},'allowedLoginAttempts':{'type':Sequelize[_0x65f6('0x2')],'defaultValue':0x5},'blockDuration':{'type':Sequelize[_0x65f6('0x2')],'defaultValue':0xa},'favicon':{'type':Sequelize[_0x65f6('0x4')]},'defaultFavicon':{'type':Sequelize[_0x65f6('0x5')],'defaultValue':!![]},'loginMailFrequency':{'type':Sequelize['INTEGER'],'defaultValue':0xa,'validate':{'min':0xa}},'transcribe':{'type':Sequelize[_0x65f6('0x5')],'defaultValue':![]},'automaticTranscribe':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'transcribeAccountId':{'type':Sequelize['INTEGER']},'transcribeRegion':{'type':Sequelize[_0x65f6('0x4')]},'sentiment':{'type':Sequelize[_0x65f6('0x5')],'defaultValue':![]},'automaticSentiment':{'type':Sequelize[_0x65f6('0x5')],'defaultValue':![]},'sentimentAccountId':{'type':Sequelize[_0x65f6('0x2')]},'sentimentRegion':{'type':Sequelize[_0x65f6('0x4')]},'language':{'type':Sequelize[_0x65f6('0x4')]},'bucket':{'type':Sequelize[_0x65f6('0x4')]},'googleSsoEnabled':{'type':Sequelize[_0x65f6('0x5')],'defaultValue':![]},'enforcePasswordHistory':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'passwordHistoryLimit':{'type':Sequelize['INTEGER'](0x2)[_0x65f6('0x6')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x5}},'privacyPolicyEmail':{'type':Sequelize['INTEGER'](0x2)['UNSIGNED'],'defaultValue':0x0},'privacyPolicyName':{'type':Sequelize['INTEGER'](0x2)[_0x65f6('0x6')],'defaultValue':0x0},'privacyPolicyNumber':{'type':Sequelize[_0x65f6('0x2')](0x2)['UNSIGNED'],'defaultValue':0x0},'searchOnEnterKey':{'type':Sequelize[_0x65f6('0x5')],'defaultValue':!![]},'chatInteractionsReloadTimeout':{'type':Sequelize[_0x65f6('0x2')],'defaultValue':0x0},'mailInteractionsReloadTimeout':{'type':Sequelize[_0x65f6('0x2')],'defaultValue':0x0},'openchannelInteractionsReloadTimeout':{'type':Sequelize[_0x65f6('0x2')],'defaultValue':0x0},'smsInteractionsReloadTimeout':{'type':Sequelize[_0x65f6('0x2')],'defaultValue':0x0},'whatsappInteractionsReloadTimeout':{'type':Sequelize[_0x65f6('0x2')],'defaultValue':0x0},'stopRecordingOnTransfer':{'type':Sequelize['BOOLEAN'],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x862f=['index','rawAttributes','fieldName','model','map','query','keys','filters','intersection','attributes','fields','length','sort','where','filter','merge','type','VIRTUAL','include','findAll','rows','show','params','includeAll','Setting','find','body','file','filename','logo','addLogoLogin','loginLogo','getLogo','getLicense','preferred','defaultLoginLogo','defaultPreferred','root','toLower','join','default_logo.svg','default','upperFirst','existsSync','Sequelize','ValidationError','\x20not\x20found','download','server/files/images/logos','favicon','defaultLogo','defaultFavicon','default_loginLogo.svg','custom','gdpr','securePassword','addPreferred','default_preferred.png','addFavicon','getFavicon','default_favicon.ico','getDate','utcOffset','format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','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/environment','../../config/license/util','../../mysqldb','jayson/promise','http','request','info','debug','Setting,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','Setting,\x20%s,\x20%s','message','result','catch','sendStatus','status','json','undefined','limit','count','offset','set','Content-Range','apply','reject','save','update','destroy','then','end','stack','name','send'];(function(_0x1da67e,_0x20fa64){var _0xd96fb1=function(_0x3fdb24){while(--_0x3fdb24){_0x1da67e['push'](_0x1da67e['shift']());}};_0xd96fb1(++_0x20fa64);}(_0x862f,0xba));var _0xf862=function(_0x1d6265,_0x5dbaae){_0x1d6265=_0x1d6265-0x0;var _0x3bed33=_0x862f[_0x1d6265];return _0x3bed33;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xf862('0x0'));var zipdir=require(_0xf862('0x1'));var jsonpatch=require(_0xf862('0x2'));var rp=require(_0xf862('0x3'));var moment=require('moment');var BPromise=require(_0xf862('0x4'));var Mustache=require(_0xf862('0x5'));var util=require('util');var path=require('path');var sox=require(_0xf862('0x6'));var csv=require(_0xf862('0x7'));var ejs=require(_0xf862('0x8'));var fs=require('fs');var fs_extra=require(_0xf862('0x9'));var _=require('lodash');var squel=require(_0xf862('0xa'));var crypto=require(_0xf862('0xb'));var jsforce=require(_0xf862('0xc'));var deskjs=require(_0xf862('0xd'));var toCsv=require(_0xf862('0x7'));var querystring=require(_0xf862('0xe'));var Papa=require(_0xf862('0xf'));var Redis=require('ioredis');var authService=require(_0xf862('0x10'));var qs=require(_0xf862('0x11'));var as=require(_0xf862('0x12'));var hardwareService=require(_0xf862('0x13'));var logger=require(_0xf862('0x14'))(_0xf862('0x15'));var utils=require('../../config/utils');var config=require(_0xf862('0x16'));var licenseUtil=require(_0xf862('0x17'));var db=require(_0xf862('0x18'))['db'];var jayson=require(_0xf862('0x19'));var client=jayson['client'][_0xf862('0x1a')]({'port':0x232a});function respondWithRpcPromise(_0x4a7979,_0xcdd9f5,_0x2dfd25,_0x33490b){return new BPromise(function(_0x31e8ac,_0x4eed6b){var _0xb0c054=_0x33490b||client;return _0xb0c054[_0xf862('0x1b')](_0x4a7979,_0x2dfd25)['then'](function(_0x1dce1e){logger[_0xf862('0x1c')]('Setting,\x20%s,\x20%s',_0xcdd9f5,'request\x20sent');logger[_0xf862('0x1d')](_0xf862('0x1e'),_0xcdd9f5,_0xf862('0x1f'),JSON[_0xf862('0x20')](_0x1dce1e));if(_0x1dce1e[_0xf862('0x21')]){if(_0x1dce1e[_0xf862('0x21')][_0xf862('0x22')]===0x1f4){logger['error'](_0xf862('0x23'),_0xcdd9f5,_0x1dce1e['error']['message']);return _0x4eed6b(_0x1dce1e['error']['message']);}logger[_0xf862('0x21')](_0xf862('0x23'),_0xcdd9f5,_0x1dce1e[_0xf862('0x21')][_0xf862('0x24')]);return _0x31e8ac(_0x1dce1e['error'][_0xf862('0x24')]);}else{logger[_0xf862('0x1c')]('Setting,\x20%s,\x20%s',_0xcdd9f5,'request\x20sent');_0x31e8ac(_0x1dce1e[_0xf862('0x25')][_0xf862('0x24')]);}})[_0xf862('0x26')](function(_0x11faa4){logger[_0xf862('0x21')]('Setting,\x20%s,\x20%s',_0xcdd9f5,_0x11faa4);_0x4eed6b(_0x11faa4);});});}function respondWithStatusCode(_0x58a33c,_0x102398){_0x102398=_0x102398||0xcc;return function(_0x30c9a7){if(_0x30c9a7){return _0x58a33c[_0xf862('0x27')](_0x102398);}return _0x58a33c[_0xf862('0x28')](_0x102398)['end']();};}function respondWithResult(_0x572a80,_0x1f1f55){_0x1f1f55=_0x1f1f55||0xc8;return function(_0xd3f8b6){if(_0xd3f8b6){return _0x572a80[_0xf862('0x28')](_0x1f1f55)[_0xf862('0x29')](_0xd3f8b6);}};}function respondWithFilteredResult(_0x3b57e9,_0x215ad1){return function(_0x26ae56){if(_0x26ae56){var _0x5dd858=typeof _0x215ad1['offset']===_0xf862('0x2a')&&typeof _0x215ad1[_0xf862('0x2b')]===_0xf862('0x2a');var _0x48c755=_0x26ae56[_0xf862('0x2c')];var _0x2891a2=_0x5dd858?0x0:_0x215ad1['offset'];var _0x3282f5=_0x5dd858?_0x26ae56[_0xf862('0x2c')]:_0x215ad1[_0xf862('0x2d')]+_0x215ad1['limit'];var _0x4f80c6;if(_0x3282f5>=_0x48c755){_0x3282f5=_0x48c755;_0x4f80c6=0xc8;}else{_0x4f80c6=0xce;}_0x3b57e9[_0xf862('0x28')](_0x4f80c6);return _0x3b57e9[_0xf862('0x2e')](_0xf862('0x2f'),_0x2891a2+'-'+_0x3282f5+'/'+_0x48c755)['json'](_0x26ae56);}return null;};}function patchUpdates(_0x5c31b8){return function(_0x547ce9){try{jsonpatch[_0xf862('0x30')](_0x547ce9,_0x5c31b8,!![]);}catch(_0x45de26){return BPromise[_0xf862('0x31')](_0x45de26);}return _0x547ce9[_0xf862('0x32')]();};}function saveUpdates(_0x2d84d1,_0x4f4fe8){return function(_0x55fe7d){if(_0x55fe7d){return _0x55fe7d[_0xf862('0x33')](_0x2d84d1)['then'](function(_0x5b5ff2){return _0x5b5ff2;});}return null;};}function removeEntity(_0x38f526,_0x2c3c40){return function(_0x5254b5){if(_0x5254b5){return _0x5254b5[_0xf862('0x34')]()[_0xf862('0x35')](function(){_0x38f526[_0xf862('0x28')](0xcc)[_0xf862('0x36')]();});}};}function handleEntityNotFound(_0x30ada1,_0x28a513){return function(_0x25389e){if(!_0x25389e){_0x30ada1['sendStatus'](0x194);}return _0x25389e;};}function handleError(_0x423de2,_0x21ec59){_0x21ec59=_0x21ec59||0x1f4;return function(_0x82afd9){logger[_0xf862('0x21')](_0x82afd9[_0xf862('0x37')]);if(_0x82afd9[_0xf862('0x38')]){delete _0x82afd9[_0xf862('0x38')];}_0x423de2[_0xf862('0x28')](_0x21ec59)[_0xf862('0x39')](_0x82afd9);};}exports[_0xf862('0x3a')]=function(_0x59278a,_0x52263e){var _0x3ff314={},_0x5bd98d={},_0x5ffb0f={'count':0x0,'rows':[]};var _0x1e5f1a=_['map'](db['Setting'][_0xf862('0x3b')],function(_0x89c571){return{'name':_0x89c571[_0xf862('0x3c')],'type':_0x89c571['type']['key']};});_0x5bd98d[_0xf862('0x3d')]=_[_0xf862('0x3e')](_0x1e5f1a,'name');_0x5bd98d[_0xf862('0x3f')]=_[_0xf862('0x40')](_0x59278a[_0xf862('0x3f')]);_0x5bd98d[_0xf862('0x41')]=_[_0xf862('0x42')](_0x5bd98d[_0xf862('0x3d')],_0x5bd98d[_0xf862('0x3f')]);_0x3ff314[_0xf862('0x43')]=_[_0xf862('0x42')](_0x5bd98d[_0xf862('0x3d')],qs[_0xf862('0x44')](_0x59278a[_0xf862('0x3f')][_0xf862('0x44')]));_0x3ff314[_0xf862('0x43')]=_0x3ff314[_0xf862('0x43')][_0xf862('0x45')]?_0x3ff314[_0xf862('0x43')]:_0x5bd98d[_0xf862('0x3d')];if(!_0x59278a['query']['hasOwnProperty']('nolimit')){_0x3ff314[_0xf862('0x2b')]=qs['limit'](_0x59278a[_0xf862('0x3f')]['limit']);_0x3ff314[_0xf862('0x2d')]=qs[_0xf862('0x2d')](_0x59278a[_0xf862('0x3f')][_0xf862('0x2d')]);}_0x3ff314['order']=qs['sort'](_0x59278a[_0xf862('0x3f')][_0xf862('0x46')]);_0x3ff314[_0xf862('0x47')]=qs[_0xf862('0x41')](_['pick'](_0x59278a[_0xf862('0x3f')],_0x5bd98d['filters']),_0x1e5f1a);if(_0x59278a['query'][_0xf862('0x48')]){_0x3ff314['where']=_[_0xf862('0x49')](_0x3ff314['where'],{'$or':_[_0xf862('0x3e')](_0x1e5f1a,function(_0x499d93){if(_0x499d93[_0xf862('0x4a')]!==_0xf862('0x4b')){var _0x1b14fc={};_0x1b14fc[_0x499d93[_0xf862('0x38')]]={'$like':'%'+_0x59278a['query'][_0xf862('0x48')]+'%'};return _0x1b14fc;}})});}_0x3ff314=_[_0xf862('0x49')]({},_0x3ff314,_0x59278a['options']);var _0x2cba51={'where':_0x3ff314[_0xf862('0x47')]};return db['Setting']['count'](_0x2cba51)[_0xf862('0x35')](function(_0x54be21){_0x5ffb0f['count']=_0x54be21;if(_0x59278a[_0xf862('0x3f')]['includeAll']){_0x3ff314[_0xf862('0x4c')]=[{'all':!![]}];}return db['Setting'][_0xf862('0x4d')](_0x3ff314);})[_0xf862('0x35')](function(_0x4bccf0){_0x5ffb0f[_0xf862('0x4e')]=_0x4bccf0;return _0x5ffb0f;})['then'](respondWithFilteredResult(_0x52263e,_0x3ff314))[_0xf862('0x26')](handleError(_0x52263e,null));};exports[_0xf862('0x4f')]=function(_0x46c0f2,_0xe395d6){var _0x18d322={'raw':![],'where':{'id':_0x46c0f2[_0xf862('0x50')]['id']}},_0x36a544={};_0x36a544[_0xf862('0x3d')]=_['keys'](db['Setting'][_0xf862('0x3b')]);_0x36a544[_0xf862('0x3f')]=_[_0xf862('0x40')](_0x46c0f2[_0xf862('0x3f')]);_0x36a544['filters']=_[_0xf862('0x42')](_0x36a544[_0xf862('0x3d')],_0x36a544[_0xf862('0x3f')]);_0x18d322[_0xf862('0x43')]=_[_0xf862('0x42')](_0x36a544[_0xf862('0x3d')],qs[_0xf862('0x44')](_0x46c0f2['query'][_0xf862('0x44')]));_0x18d322['attributes']=_0x18d322['attributes'][_0xf862('0x45')]?_0x18d322[_0xf862('0x43')]:_0x36a544['model'];if(_0x46c0f2[_0xf862('0x3f')][_0xf862('0x51')]){_0x18d322[_0xf862('0x4c')]=[{'all':!![]}];}_0x18d322=_[_0xf862('0x49')]({},_0x18d322,_0x46c0f2['options']);return db[_0xf862('0x52')][_0xf862('0x53')](_0x18d322)[_0xf862('0x35')](handleEntityNotFound(_0xe395d6,null))['then'](respondWithResult(_0xe395d6,null))[_0xf862('0x26')](handleError(_0xe395d6,null));};exports[_0xf862('0x33')]=function(_0x45782d,_0x305cee){if(_0x45782d[_0xf862('0x54')]['id']){delete _0x45782d[_0xf862('0x54')]['id'];}return db['Setting'][_0xf862('0x53')]({'where':{'id':_0x45782d[_0xf862('0x50')]['id']}})['then'](handleEntityNotFound(_0x305cee,null))['then'](saveUpdates(_0x45782d[_0xf862('0x54')],null))['then'](respondWithResult(_0x305cee,null))[_0xf862('0x26')](handleError(_0x305cee,null));};exports['addLogo']=function(_0x5238e4,_0x35c1c0,_0x3639bd){if(_0x5238e4['file']&&_0x5238e4[_0xf862('0x55')][_0xf862('0x56')]){_0x5238e4[_0xf862('0x54')][_0xf862('0x57')]=_0x5238e4[_0xf862('0x55')][_0xf862('0x56')];}return db[_0xf862('0x52')][_0xf862('0x53')]({'where':{'id':_0x5238e4[_0xf862('0x50')]['id']}})['then'](handleEntityNotFound(_0x35c1c0,null))[_0xf862('0x35')](saveUpdates(_0x5238e4[_0xf862('0x54')],null))[_0xf862('0x35')](respondWithResult(_0x35c1c0,null))[_0xf862('0x26')](handleError(_0x35c1c0,null));};exports[_0xf862('0x58')]=function(_0x5c5d13,_0x575e00,_0x11c927){if(_0x5c5d13[_0xf862('0x55')]&&_0x5c5d13[_0xf862('0x55')][_0xf862('0x56')]){_0x5c5d13[_0xf862('0x54')][_0xf862('0x59')]=_0x5c5d13[_0xf862('0x55')][_0xf862('0x56')];}return db['Setting'][_0xf862('0x53')]({'where':{'id':_0x5c5d13[_0xf862('0x50')]['id']}})[_0xf862('0x35')](handleEntityNotFound(_0x575e00,null))[_0xf862('0x35')](saveUpdates(_0x5c5d13[_0xf862('0x54')],null))[_0xf862('0x35')](respondWithResult(_0x575e00,null))['catch'](handleError(_0x575e00,null));};var utilLicense=require(_0xf862('0x17'));exports[_0xf862('0x5a')]=function(_0x49bc1e,_0x5c8cf8,_0x54d59c){var _0x13feb6='server/files/images/logos';var _0x25d730={'custom':![]};return utilLicense[_0xf862('0x5b')]()[_0xf862('0x35')](function(_0x432f78){if(_0x432f78){_0x25d730=_0x432f78;}return db[_0xf862('0x52')][_0xf862('0x53')]({'where':{'id':_0x49bc1e[_0xf862('0x50')]['id']},'attributes':['logo',_0xf862('0x59'),_0xf862('0x5c'),'favicon','defaultLogo',_0xf862('0x5d'),_0xf862('0x5e'),'defaultFavicon'],'raw':!![]});})[_0xf862('0x35')](handleEntityNotFound(_0x5c8cf8,null))[_0xf862('0x35')](function(_0x4853cd){if(_0x4853cd){var _0x47534e=_0x4853cd[_0xf862('0x57')]&&fs['existsSync'](path['join'](config[_0xf862('0x5f')],_0x13feb6,_[_0xf862('0x60')](_0x4853cd[_0xf862('0x57')])))?path[_0xf862('0x61')](config['root'],_0x13feb6,_[_0xf862('0x60')](_0x4853cd[_0xf862('0x57')])):path[_0xf862('0x61')](config['root'],_0x13feb6,_['toLower'](_0xf862('0x62')));var _0x5470d3=_0xf862('0x63')+_[_0xf862('0x64')](_0xf862('0x57'));if(_0x4853cd[_0x5470d3]||!_0x25d730['custom']){_0x47534e=path[_0xf862('0x61')](config['root'],_0x13feb6,_['toLower'](_0xf862('0x62')));}if(!fs[_0xf862('0x65')](_0x47534e)){throw new db[(_0xf862('0x66'))][(_0xf862('0x67'))](_['upperFirst'](_0xf862('0x57'))+_0xf862('0x68'));}return _0x5c8cf8[_0xf862('0x69')](_0x47534e);}})[_0xf862('0x26')](handleError(_0x5c8cf8,null));};var utilLicense=require(_0xf862('0x17'));exports['getLogoLogin']=function(_0x223b40,_0x1ff407,_0x1caf6e){var _0x17761a=_0xf862('0x6a');var _0x1fd540={'custom':![]};return utilLicense[_0xf862('0x5b')]()[_0xf862('0x35')](function(_0xac2b8f){if(_0xac2b8f){_0x1fd540=_0xac2b8f;}return db[_0xf862('0x52')]['find']({'where':{'id':_0x223b40[_0xf862('0x50')]['id']},'attributes':[_0xf862('0x57'),_0xf862('0x59'),_0xf862('0x5c'),_0xf862('0x6b'),_0xf862('0x6c'),_0xf862('0x5d'),_0xf862('0x5e'),_0xf862('0x6d')],'raw':!![]});})[_0xf862('0x35')](handleEntityNotFound(_0x1ff407,null))['then'](function(_0x45ec49){if(_0x45ec49){var _0x338729=_0x45ec49[_0xf862('0x59')]&&fs[_0xf862('0x65')](path[_0xf862('0x61')](config[_0xf862('0x5f')],_0x17761a,_[_0xf862('0x60')](_0x45ec49[_0xf862('0x59')])))?path['join'](config[_0xf862('0x5f')],_0x17761a,_[_0xf862('0x60')](_0x45ec49[_0xf862('0x59')])):path[_0xf862('0x61')](config[_0xf862('0x5f')],_0x17761a,_[_0xf862('0x60')](_0xf862('0x6e')));var _0x1b8c05=_0xf862('0x63')+_[_0xf862('0x64')]('loginLogo');if(_0x45ec49[_0x1b8c05]||!_0x1fd540[_0xf862('0x6f')]){_0x338729=path[_0xf862('0x61')](config['root'],_0x17761a,_[_0xf862('0x60')](_0xf862('0x6e')));}if(!fs['existsSync'](_0x338729)){throw new db['Sequelize'][(_0xf862('0x67'))](_['upperFirst']('loginLogo')+_0xf862('0x68'));}return _0x1ff407[_0xf862('0x69')](_0x338729);}})['catch'](handleError(_0x1ff407,null));};exports[_0xf862('0x70')]=function(_0x24fd84,_0xf8e1d5){return db[_0xf862('0x52')][_0xf862('0x53')]({'where':{'id':_0x24fd84[_0xf862('0x50')]['id']},'attributes':[_0xf862('0x71')]})[_0xf862('0x35')](respondWithResult(_0xf8e1d5,null))['catch'](handleError(_0xf8e1d5,null));};exports[_0xf862('0x72')]=function(_0x3ca7c4,_0x55f806,_0x15ebd1){if(_0x3ca7c4['file']&&_0x3ca7c4['file']['filename']){_0x3ca7c4[_0xf862('0x54')]['preferred']=_0x3ca7c4['file']['filename'];}return db['Setting'][_0xf862('0x53')]({'where':{'id':_0x3ca7c4['params']['id']}})['then'](handleEntityNotFound(_0x55f806,null))[_0xf862('0x35')](saveUpdates(_0x3ca7c4['body'],null))[_0xf862('0x35')](respondWithResult(_0x55f806,null))[_0xf862('0x26')](handleError(_0x55f806,null));};var utilLicense=require(_0xf862('0x17'));exports['getPreferred']=function(_0x478f7a,_0xf3aa22,_0x514f22){var _0x5b04f2=_0xf862('0x6a');var _0x5bb5e2={'custom':![]};return utilLicense[_0xf862('0x5b')]()[_0xf862('0x35')](function(_0x9ddd33){if(_0x9ddd33){_0x5bb5e2=_0x9ddd33;}return db[_0xf862('0x52')][_0xf862('0x53')]({'where':{'id':_0x478f7a['params']['id']},'attributes':[_0xf862('0x57'),_0xf862('0x59'),_0xf862('0x5c'),'favicon',_0xf862('0x6c'),_0xf862('0x5d'),_0xf862('0x5e'),_0xf862('0x6d')],'raw':!![]});})['then'](handleEntityNotFound(_0xf3aa22,null))[_0xf862('0x35')](function(_0xde27d3){if(_0xde27d3){var _0x59c4ab=_0xde27d3[_0xf862('0x5c')]&&fs[_0xf862('0x65')](path[_0xf862('0x61')](config[_0xf862('0x5f')],_0x5b04f2,_['toLower'](_0xde27d3['preferred'])))?path[_0xf862('0x61')](config[_0xf862('0x5f')],_0x5b04f2,_['toLower'](_0xde27d3[_0xf862('0x5c')])):path[_0xf862('0x61')](config[_0xf862('0x5f')],_0x5b04f2,_[_0xf862('0x60')](_0xf862('0x73')));var _0x464745='default'+_['upperFirst'](_0xf862('0x5c'));if(_0xde27d3[_0x464745]||!_0x5bb5e2['custom']||!_0x5bb5e2[_0xf862('0x5c')]){_0x59c4ab=path[_0xf862('0x61')](config[_0xf862('0x5f')],_0x5b04f2,_[_0xf862('0x60')](_0xf862('0x73')));}if(!fs[_0xf862('0x65')](_0x59c4ab)){throw new db[(_0xf862('0x66'))][(_0xf862('0x67'))](_[_0xf862('0x64')](_0xf862('0x5c'))+'\x20not\x20found');}return _0xf3aa22['download'](_0x59c4ab);}})[_0xf862('0x26')](handleError(_0xf3aa22,null));};exports[_0xf862('0x74')]=function(_0xb1037f,_0x24cac8,_0x2b1ee0){if(_0xb1037f[_0xf862('0x55')]&&_0xb1037f[_0xf862('0x55')][_0xf862('0x56')]){_0xb1037f[_0xf862('0x54')][_0xf862('0x6b')]=_0xb1037f['file'][_0xf862('0x56')];}return db[_0xf862('0x52')][_0xf862('0x53')]({'where':{'id':_0xb1037f[_0xf862('0x50')]['id']}})[_0xf862('0x35')](handleEntityNotFound(_0x24cac8,null))['then'](saveUpdates(_0xb1037f[_0xf862('0x54')],null))['then'](respondWithResult(_0x24cac8,null))[_0xf862('0x26')](handleError(_0x24cac8,null));};var utilLicense=require(_0xf862('0x17'));exports[_0xf862('0x75')]=function(_0x2fe08f,_0x2365f5,_0x453e09){var _0x35294c=_0xf862('0x6a');var _0x5ba94a={'custom':![]};return utilLicense[_0xf862('0x5b')]()['then'](function(_0x4bd347){if(_0x4bd347){_0x5ba94a=_0x4bd347;}return db[_0xf862('0x52')]['find']({'where':{'id':_0x2fe08f['params']['id']},'attributes':['logo','loginLogo',_0xf862('0x5c'),_0xf862('0x6b'),_0xf862('0x6c'),'defaultLoginLogo','defaultPreferred',_0xf862('0x6d')],'raw':!![]});})[_0xf862('0x35')](handleEntityNotFound(_0x2365f5,null))[_0xf862('0x35')](function(_0xfbf9e3){if(_0xfbf9e3){var _0x261d74=_0xfbf9e3[_0xf862('0x6b')]&&fs[_0xf862('0x65')](path[_0xf862('0x61')](config[_0xf862('0x5f')],_0x35294c,_[_0xf862('0x60')](_0xfbf9e3[_0xf862('0x6b')])))?path[_0xf862('0x61')](config['root'],_0x35294c,_['toLower'](_0xfbf9e3[_0xf862('0x6b')])):path[_0xf862('0x61')](config['root'],_0x35294c,_[_0xf862('0x60')](_0xf862('0x76')));var _0x2c18c4=_0xf862('0x63')+_[_0xf862('0x64')](_0xf862('0x6b'));if(_0xfbf9e3[_0x2c18c4]||!_0x5ba94a[_0xf862('0x6f')]){_0x261d74=path[_0xf862('0x61')](config[_0xf862('0x5f')],_0x35294c,_[_0xf862('0x60')](_0xf862('0x76')));}if(!fs['existsSync'](_0x261d74)){throw new db[(_0xf862('0x66'))][(_0xf862('0x67'))](_[_0xf862('0x64')]('favicon')+_0xf862('0x68'));}return _0x2365f5[_0xf862('0x69')](_0x261d74);}})[_0xf862('0x26')](handleError(_0x2365f5,null));};exports[_0xf862('0x77')]=function(_0x135db4,_0x5d3ceb){var _0x443414={'offset':moment()['utcOffset']()};_0x443414['now']=moment()[_0xf862('0x78')](_0x443414[_0xf862('0x2d')])[_0xf862('0x79')]('YYYY-MM-DD\x20HH:mm:ss:SSS');return _0x5d3ceb['status'](0xc8)['send'](_0x443414);};
\ No newline at end of file
+var _0x1b2b=['querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','jayson/promise','client','request','then','info','debug','Setting,\x20%s,\x20%s,\x20%s','request\x20sent','error','Setting,\x20%s,\x20%s','message','result','catch','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','json','reject','update','destroy','stack','name','map','Setting','fieldName','type','query','keys','filters','intersection','model','attributes','fields','hasOwnProperty','sort','where','pick','filter','merge','options','includeAll','include','findAll','rows','length','body','find','params','addLogo','file','filename','loginLogo','getLogo','server/files/images/logos','getLicense','logo','preferred','defaultLogo','defaultLoginLogo','defaultPreferred','existsSync','join','root','toLower','default','upperFirst','custom','Sequelize','ValidationError','\x20not\x20found','download','getLogoLogin','favicon','defaultFavicon','default_loginLogo.svg','gdpr','securePassword','getPreferred','default_preferred.png','addFavicon','getFavicon','default_favicon.ico','getDate','now','utcOffset','format','YYYY-MM-DD\x20HH:mm:ss:SSS','send','eml-format','rimraf','zip-dir','fast-json-patch','moment','mustache','sox','ejs','fs-extra','lodash','crypto','jsforce','desk.js','to-csv'];(function(_0x318840,_0x561b1e){var _0x223da4=function(_0x510071){while(--_0x510071){_0x318840['push'](_0x318840['shift']());}};_0x223da4(++_0x561b1e);}(_0x1b2b,0x69));var _0xb1b2=function(_0x463683,_0x403c60){_0x463683=_0x463683-0x0;var _0x1c7fa1=_0x1b2b[_0x463683];return _0x1c7fa1;};'use strict';var emlformat=require(_0xb1b2('0x0'));var rimraf=require(_0xb1b2('0x1'));var zipdir=require(_0xb1b2('0x2'));var jsonpatch=require(_0xb1b2('0x3'));var rp=require('request-promise');var moment=require(_0xb1b2('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xb1b2('0x5'));var util=require('util');var path=require('path');var sox=require(_0xb1b2('0x6'));var csv=require('to-csv');var ejs=require(_0xb1b2('0x7'));var fs=require('fs');var fs_extra=require(_0xb1b2('0x8'));var _=require(_0xb1b2('0x9'));var squel=require('squel');var crypto=require(_0xb1b2('0xa'));var jsforce=require(_0xb1b2('0xb'));var deskjs=require(_0xb1b2('0xc'));var toCsv=require(_0xb1b2('0xd'));var querystring=require(_0xb1b2('0xe'));var Papa=require(_0xb1b2('0xf'));var Redis=require(_0xb1b2('0x10'));var authService=require(_0xb1b2('0x11'));var qs=require(_0xb1b2('0x12'));var as=require(_0xb1b2('0x13'));var hardwareService=require(_0xb1b2('0x14'));var logger=require(_0xb1b2('0x15'))('api');var utils=require(_0xb1b2('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0xb1b2('0x17'));var db=require(_0xb1b2('0x18'))['db'];var jayson=require(_0xb1b2('0x19'));var client=jayson[_0xb1b2('0x1a')]['http']({'port':0x232a});function respondWithRpcPromise(_0x4c4844,_0xa9b40c,_0x5325fa,_0x59d3d5){return new BPromise(function(_0x2fe2e6,_0x59df50){var _0x5d8588=_0x59d3d5||client;return _0x5d8588[_0xb1b2('0x1b')](_0x4c4844,_0x5325fa)[_0xb1b2('0x1c')](function(_0x5eec95){logger[_0xb1b2('0x1d')]('Setting,\x20%s,\x20%s',_0xa9b40c,'request\x20sent');logger[_0xb1b2('0x1e')](_0xb1b2('0x1f'),_0xa9b40c,_0xb1b2('0x20'),JSON['stringify'](_0x5eec95));if(_0x5eec95[_0xb1b2('0x21')]){if(_0x5eec95[_0xb1b2('0x21')]['code']===0x1f4){logger[_0xb1b2('0x21')](_0xb1b2('0x22'),_0xa9b40c,_0x5eec95[_0xb1b2('0x21')][_0xb1b2('0x23')]);return _0x59df50(_0x5eec95[_0xb1b2('0x21')]['message']);}logger[_0xb1b2('0x21')](_0xb1b2('0x22'),_0xa9b40c,_0x5eec95['error']['message']);return _0x2fe2e6(_0x5eec95[_0xb1b2('0x21')][_0xb1b2('0x23')]);}else{logger['info'](_0xb1b2('0x22'),_0xa9b40c,_0xb1b2('0x20'));_0x2fe2e6(_0x5eec95[_0xb1b2('0x24')][_0xb1b2('0x23')]);}})[_0xb1b2('0x25')](function(_0x8776bd){logger['error']('Setting,\x20%s,\x20%s',_0xa9b40c,_0x8776bd);_0x59df50(_0x8776bd);});});}function respondWithStatusCode(_0x535d7b,_0x5912dc){_0x5912dc=_0x5912dc||0xcc;return function(_0x3c6c5c){if(_0x3c6c5c){return _0x535d7b[_0xb1b2('0x26')](_0x5912dc);}return _0x535d7b[_0xb1b2('0x27')](_0x5912dc)[_0xb1b2('0x28')]();};}function respondWithResult(_0x546793,_0x1fc0a9){_0x1fc0a9=_0x1fc0a9||0xc8;return function(_0xc3f1a0){if(_0xc3f1a0){return _0x546793[_0xb1b2('0x27')](_0x1fc0a9)['json'](_0xc3f1a0);}};}function respondWithFilteredResult(_0x2735a1,_0x5bed8b){return function(_0x2e1f31){if(_0x2e1f31){var _0x237cc3=typeof _0x5bed8b[_0xb1b2('0x29')]===_0xb1b2('0x2a')&&typeof _0x5bed8b[_0xb1b2('0x2b')]==='undefined';var _0x58b106=_0x2e1f31[_0xb1b2('0x2c')];var _0x3d125b=_0x237cc3?0x0:_0x5bed8b[_0xb1b2('0x29')];var _0x1dacc8=_0x237cc3?_0x2e1f31[_0xb1b2('0x2c')]:_0x5bed8b['offset']+_0x5bed8b[_0xb1b2('0x2b')];var _0x419a54;if(_0x1dacc8>=_0x58b106){_0x1dacc8=_0x58b106;_0x419a54=0xc8;}else{_0x419a54=0xce;}_0x2735a1[_0xb1b2('0x27')](_0x419a54);return _0x2735a1[_0xb1b2('0x2d')](_0xb1b2('0x2e'),_0x3d125b+'-'+_0x1dacc8+'/'+_0x58b106)[_0xb1b2('0x2f')](_0x2e1f31);}return null;};}function patchUpdates(_0x501b50){return function(_0xa22e6d){try{jsonpatch['apply'](_0xa22e6d,_0x501b50,!![]);}catch(_0x389684){return BPromise[_0xb1b2('0x30')](_0x389684);}return _0xa22e6d['save']();};}function saveUpdates(_0x46df1a,_0x3d31f9){return function(_0x5b9da8){if(_0x5b9da8){return _0x5b9da8[_0xb1b2('0x31')](_0x46df1a)[_0xb1b2('0x1c')](function(_0x591718){return _0x591718;});}return null;};}function removeEntity(_0x4284f7,_0x377f35){return function(_0x1ecb7e){if(_0x1ecb7e){return _0x1ecb7e[_0xb1b2('0x32')]()[_0xb1b2('0x1c')](function(){_0x4284f7[_0xb1b2('0x27')](0xcc)[_0xb1b2('0x28')]();});}};}function handleEntityNotFound(_0x555a69,_0x5b7b15){return function(_0x383621){if(!_0x383621){_0x555a69[_0xb1b2('0x26')](0x194);}return _0x383621;};}function handleError(_0x1c6826,_0x289773){_0x289773=_0x289773||0x1f4;return function(_0xae67ad){logger[_0xb1b2('0x21')](_0xae67ad[_0xb1b2('0x33')]);if(_0xae67ad[_0xb1b2('0x34')]){delete _0xae67ad[_0xb1b2('0x34')];}_0x1c6826[_0xb1b2('0x27')](_0x289773)['send'](_0xae67ad);};}exports['index']=function(_0x1969f3,_0x23e0b0){var _0x17a6ba={},_0x4dc09c={},_0x176b7e={'count':0x0,'rows':[]};var _0x44e409=_[_0xb1b2('0x35')](db[_0xb1b2('0x36')]['rawAttributes'],function(_0x17b815){return{'name':_0x17b815[_0xb1b2('0x37')],'type':_0x17b815[_0xb1b2('0x38')]['key']};});_0x4dc09c['model']=_[_0xb1b2('0x35')](_0x44e409,_0xb1b2('0x34'));_0x4dc09c[_0xb1b2('0x39')]=_[_0xb1b2('0x3a')](_0x1969f3['query']);_0x4dc09c[_0xb1b2('0x3b')]=_[_0xb1b2('0x3c')](_0x4dc09c[_0xb1b2('0x3d')],_0x4dc09c[_0xb1b2('0x39')]);_0x17a6ba[_0xb1b2('0x3e')]=_[_0xb1b2('0x3c')](_0x4dc09c[_0xb1b2('0x3d')],qs[_0xb1b2('0x3f')](_0x1969f3['query']['fields']));_0x17a6ba[_0xb1b2('0x3e')]=_0x17a6ba[_0xb1b2('0x3e')]['length']?_0x17a6ba[_0xb1b2('0x3e')]:_0x4dc09c[_0xb1b2('0x3d')];if(!_0x1969f3[_0xb1b2('0x39')][_0xb1b2('0x40')]('nolimit')){_0x17a6ba[_0xb1b2('0x2b')]=qs[_0xb1b2('0x2b')](_0x1969f3[_0xb1b2('0x39')][_0xb1b2('0x2b')]);_0x17a6ba[_0xb1b2('0x29')]=qs[_0xb1b2('0x29')](_0x1969f3['query'][_0xb1b2('0x29')]);}_0x17a6ba['order']=qs[_0xb1b2('0x41')](_0x1969f3[_0xb1b2('0x39')][_0xb1b2('0x41')]);_0x17a6ba[_0xb1b2('0x42')]=qs[_0xb1b2('0x3b')](_[_0xb1b2('0x43')](_0x1969f3['query'],_0x4dc09c[_0xb1b2('0x3b')]),_0x44e409);if(_0x1969f3[_0xb1b2('0x39')][_0xb1b2('0x44')]){_0x17a6ba[_0xb1b2('0x42')]=_[_0xb1b2('0x45')](_0x17a6ba[_0xb1b2('0x42')],{'$or':_[_0xb1b2('0x35')](_0x44e409,function(_0x365ac9){if(_0x365ac9['type']!=='VIRTUAL'){var _0x536c25={};_0x536c25[_0x365ac9[_0xb1b2('0x34')]]={'$like':'%'+_0x1969f3[_0xb1b2('0x39')][_0xb1b2('0x44')]+'%'};return _0x536c25;}})});}_0x17a6ba=_[_0xb1b2('0x45')]({},_0x17a6ba,_0x1969f3[_0xb1b2('0x46')]);var _0x3f0c40={'where':_0x17a6ba['where']};return db[_0xb1b2('0x36')][_0xb1b2('0x2c')](_0x3f0c40)[_0xb1b2('0x1c')](function(_0x354175){_0x176b7e[_0xb1b2('0x2c')]=_0x354175;if(_0x1969f3[_0xb1b2('0x39')][_0xb1b2('0x47')]){_0x17a6ba[_0xb1b2('0x48')]=[{'all':!![]}];}return db[_0xb1b2('0x36')][_0xb1b2('0x49')](_0x17a6ba);})[_0xb1b2('0x1c')](function(_0x3c78af){_0x176b7e[_0xb1b2('0x4a')]=_0x3c78af;return _0x176b7e;})[_0xb1b2('0x1c')](respondWithFilteredResult(_0x23e0b0,_0x17a6ba))[_0xb1b2('0x25')](handleError(_0x23e0b0,null));};exports['show']=function(_0x333c9f,_0x2a3386){var _0x2f9e6b={'raw':![],'where':{'id':_0x333c9f['params']['id']}},_0x48eaa0={};_0x48eaa0[_0xb1b2('0x3d')]=_[_0xb1b2('0x3a')](db[_0xb1b2('0x36')]['rawAttributes']);_0x48eaa0['query']=_[_0xb1b2('0x3a')](_0x333c9f[_0xb1b2('0x39')]);_0x48eaa0[_0xb1b2('0x3b')]=_[_0xb1b2('0x3c')](_0x48eaa0[_0xb1b2('0x3d')],_0x48eaa0[_0xb1b2('0x39')]);_0x2f9e6b['attributes']=_[_0xb1b2('0x3c')](_0x48eaa0[_0xb1b2('0x3d')],qs[_0xb1b2('0x3f')](_0x333c9f[_0xb1b2('0x39')][_0xb1b2('0x3f')]));_0x2f9e6b[_0xb1b2('0x3e')]=_0x2f9e6b[_0xb1b2('0x3e')][_0xb1b2('0x4b')]?_0x2f9e6b['attributes']:_0x48eaa0[_0xb1b2('0x3d')];if(_0x333c9f[_0xb1b2('0x39')][_0xb1b2('0x47')]){_0x2f9e6b['include']=[{'all':!![]}];}_0x2f9e6b=_[_0xb1b2('0x45')]({},_0x2f9e6b,_0x333c9f[_0xb1b2('0x46')]);return db['Setting']['find'](_0x2f9e6b)[_0xb1b2('0x1c')](handleEntityNotFound(_0x2a3386,null))[_0xb1b2('0x1c')](respondWithResult(_0x2a3386,null))[_0xb1b2('0x25')](handleError(_0x2a3386,null));};exports[_0xb1b2('0x31')]=function(_0x6be7b2,_0x2d9c5b){if(_0x6be7b2[_0xb1b2('0x4c')]['id']){delete _0x6be7b2['body']['id'];}return db[_0xb1b2('0x36')][_0xb1b2('0x4d')]({'where':{'id':_0x6be7b2[_0xb1b2('0x4e')]['id']}})[_0xb1b2('0x1c')](handleEntityNotFound(_0x2d9c5b,null))[_0xb1b2('0x1c')](saveUpdates(_0x6be7b2[_0xb1b2('0x4c')],null))[_0xb1b2('0x1c')](respondWithResult(_0x2d9c5b,null))[_0xb1b2('0x25')](handleError(_0x2d9c5b,null));};exports[_0xb1b2('0x4f')]=function(_0x120947,_0x5cd236,_0x530881){if(_0x120947[_0xb1b2('0x50')]&&_0x120947[_0xb1b2('0x50')]['filename']){_0x120947[_0xb1b2('0x4c')]['logo']=_0x120947[_0xb1b2('0x50')][_0xb1b2('0x51')];}return db[_0xb1b2('0x36')][_0xb1b2('0x4d')]({'where':{'id':_0x120947[_0xb1b2('0x4e')]['id']}})[_0xb1b2('0x1c')](handleEntityNotFound(_0x5cd236,null))[_0xb1b2('0x1c')](saveUpdates(_0x120947[_0xb1b2('0x4c')],null))[_0xb1b2('0x1c')](respondWithResult(_0x5cd236,null))[_0xb1b2('0x25')](handleError(_0x5cd236,null));};exports['addLogoLogin']=function(_0x13ccfa,_0x149143,_0x4dedcc){if(_0x13ccfa[_0xb1b2('0x50')]&&_0x13ccfa[_0xb1b2('0x50')][_0xb1b2('0x51')]){_0x13ccfa[_0xb1b2('0x4c')][_0xb1b2('0x52')]=_0x13ccfa['file'][_0xb1b2('0x51')];}return db[_0xb1b2('0x36')][_0xb1b2('0x4d')]({'where':{'id':_0x13ccfa[_0xb1b2('0x4e')]['id']}})[_0xb1b2('0x1c')](handleEntityNotFound(_0x149143,null))[_0xb1b2('0x1c')](saveUpdates(_0x13ccfa[_0xb1b2('0x4c')],null))[_0xb1b2('0x1c')](respondWithResult(_0x149143,null))[_0xb1b2('0x25')](handleError(_0x149143,null));};var utilLicense=require(_0xb1b2('0x17'));exports[_0xb1b2('0x53')]=function(_0x444c17,_0x351a3c,_0x22edc9){var _0x2c6e08=_0xb1b2('0x54');var _0x364f00={'custom':![]};return utilLicense[_0xb1b2('0x55')]()[_0xb1b2('0x1c')](function(_0x4f2335){if(_0x4f2335){_0x364f00=_0x4f2335;}return db[_0xb1b2('0x36')][_0xb1b2('0x4d')]({'where':{'id':_0x444c17[_0xb1b2('0x4e')]['id']},'attributes':[_0xb1b2('0x56'),_0xb1b2('0x52'),_0xb1b2('0x57'),'favicon',_0xb1b2('0x58'),_0xb1b2('0x59'),_0xb1b2('0x5a'),'defaultFavicon'],'raw':!![]});})[_0xb1b2('0x1c')](handleEntityNotFound(_0x351a3c,null))[_0xb1b2('0x1c')](function(_0x3058ba){if(_0x3058ba){var _0x30d3ac=_0x3058ba[_0xb1b2('0x56')]&&fs[_0xb1b2('0x5b')](path[_0xb1b2('0x5c')](config[_0xb1b2('0x5d')],_0x2c6e08,_[_0xb1b2('0x5e')](_0x3058ba[_0xb1b2('0x56')])))?path[_0xb1b2('0x5c')](config[_0xb1b2('0x5d')],_0x2c6e08,_['toLower'](_0x3058ba['logo'])):path[_0xb1b2('0x5c')](config['root'],_0x2c6e08,_['toLower']('default_logo.svg'));var _0x1341a8=_0xb1b2('0x5f')+_[_0xb1b2('0x60')]('logo');if(_0x3058ba[_0x1341a8]||!_0x364f00[_0xb1b2('0x61')]){_0x30d3ac=path[_0xb1b2('0x5c')](config['root'],_0x2c6e08,_[_0xb1b2('0x5e')]('default_logo.svg'));}if(!fs[_0xb1b2('0x5b')](_0x30d3ac)){throw new db[(_0xb1b2('0x62'))][(_0xb1b2('0x63'))](_[_0xb1b2('0x60')](_0xb1b2('0x56'))+_0xb1b2('0x64'));}return _0x351a3c[_0xb1b2('0x65')](_0x30d3ac);}})[_0xb1b2('0x25')](handleError(_0x351a3c,null));};var utilLicense=require(_0xb1b2('0x17'));exports[_0xb1b2('0x66')]=function(_0x256e62,_0x5c1f96,_0x5e26bf){var _0x46b8a4=_0xb1b2('0x54');var _0x5bd403={'custom':![]};return utilLicense[_0xb1b2('0x55')]()[_0xb1b2('0x1c')](function(_0x21d6f9){if(_0x21d6f9){_0x5bd403=_0x21d6f9;}return db[_0xb1b2('0x36')][_0xb1b2('0x4d')]({'where':{'id':_0x256e62[_0xb1b2('0x4e')]['id']},'attributes':[_0xb1b2('0x56'),_0xb1b2('0x52'),'preferred',_0xb1b2('0x67'),_0xb1b2('0x58'),_0xb1b2('0x59'),'defaultPreferred',_0xb1b2('0x68')],'raw':!![]});})[_0xb1b2('0x1c')](handleEntityNotFound(_0x5c1f96,null))[_0xb1b2('0x1c')](function(_0x33f98d){if(_0x33f98d){var _0x3a8cd4=_0x33f98d[_0xb1b2('0x52')]&&fs['existsSync'](path[_0xb1b2('0x5c')](config[_0xb1b2('0x5d')],_0x46b8a4,_['toLower'](_0x33f98d['loginLogo'])))?path[_0xb1b2('0x5c')](config[_0xb1b2('0x5d')],_0x46b8a4,_[_0xb1b2('0x5e')](_0x33f98d[_0xb1b2('0x52')])):path[_0xb1b2('0x5c')](config[_0xb1b2('0x5d')],_0x46b8a4,_[_0xb1b2('0x5e')](_0xb1b2('0x69')));var _0x18a45f=_0xb1b2('0x5f')+_[_0xb1b2('0x60')](_0xb1b2('0x52'));if(_0x33f98d[_0x18a45f]||!_0x5bd403[_0xb1b2('0x61')]){_0x3a8cd4=path[_0xb1b2('0x5c')](config['root'],_0x46b8a4,_['toLower']('default_loginLogo.svg'));}if(!fs[_0xb1b2('0x5b')](_0x3a8cd4)){throw new db[(_0xb1b2('0x62'))][(_0xb1b2('0x63'))](_[_0xb1b2('0x60')](_0xb1b2('0x52'))+'\x20not\x20found');}return _0x5c1f96[_0xb1b2('0x65')](_0x3a8cd4);}})[_0xb1b2('0x25')](handleError(_0x5c1f96,null));};exports[_0xb1b2('0x6a')]=function(_0x78d77f,_0x134a8d){return db['Setting'][_0xb1b2('0x4d')]({'where':{'id':_0x78d77f[_0xb1b2('0x4e')]['id']},'attributes':[_0xb1b2('0x6b')]})['then'](respondWithResult(_0x134a8d,null))['catch'](handleError(_0x134a8d,null));};exports['addPreferred']=function(_0x2826dd,_0x4db75d,_0x1a9e65){if(_0x2826dd['file']&&_0x2826dd[_0xb1b2('0x50')]['filename']){_0x2826dd[_0xb1b2('0x4c')]['preferred']=_0x2826dd['file'][_0xb1b2('0x51')];}return db['Setting'][_0xb1b2('0x4d')]({'where':{'id':_0x2826dd[_0xb1b2('0x4e')]['id']}})[_0xb1b2('0x1c')](handleEntityNotFound(_0x4db75d,null))[_0xb1b2('0x1c')](saveUpdates(_0x2826dd[_0xb1b2('0x4c')],null))[_0xb1b2('0x1c')](respondWithResult(_0x4db75d,null))['catch'](handleError(_0x4db75d,null));};var utilLicense=require('../../config/license/util');exports[_0xb1b2('0x6c')]=function(_0x50cfd5,_0x215cbf,_0x2ba641){var _0x5aafae='server/files/images/logos';var _0x3aa39c={'custom':![]};return utilLicense[_0xb1b2('0x55')]()[_0xb1b2('0x1c')](function(_0x2e6964){if(_0x2e6964){_0x3aa39c=_0x2e6964;}return db[_0xb1b2('0x36')][_0xb1b2('0x4d')]({'where':{'id':_0x50cfd5[_0xb1b2('0x4e')]['id']},'attributes':[_0xb1b2('0x56'),_0xb1b2('0x52'),_0xb1b2('0x57'),_0xb1b2('0x67'),_0xb1b2('0x58'),_0xb1b2('0x59'),_0xb1b2('0x5a'),_0xb1b2('0x68')],'raw':!![]});})[_0xb1b2('0x1c')](handleEntityNotFound(_0x215cbf,null))['then'](function(_0x5760bd){if(_0x5760bd){var _0x5a620c=_0x5760bd[_0xb1b2('0x57')]&&fs[_0xb1b2('0x5b')](path[_0xb1b2('0x5c')](config[_0xb1b2('0x5d')],_0x5aafae,_[_0xb1b2('0x5e')](_0x5760bd[_0xb1b2('0x57')])))?path[_0xb1b2('0x5c')](config[_0xb1b2('0x5d')],_0x5aafae,_[_0xb1b2('0x5e')](_0x5760bd[_0xb1b2('0x57')])):path[_0xb1b2('0x5c')](config[_0xb1b2('0x5d')],_0x5aafae,_['toLower'](_0xb1b2('0x6d')));var _0x40563f=_0xb1b2('0x5f')+_[_0xb1b2('0x60')](_0xb1b2('0x57'));if(_0x5760bd[_0x40563f]||!_0x3aa39c[_0xb1b2('0x61')]||!_0x3aa39c[_0xb1b2('0x57')]){_0x5a620c=path[_0xb1b2('0x5c')](config[_0xb1b2('0x5d')],_0x5aafae,_[_0xb1b2('0x5e')]('default_preferred.png'));}if(!fs[_0xb1b2('0x5b')](_0x5a620c)){throw new db['Sequelize'][(_0xb1b2('0x63'))](_[_0xb1b2('0x60')](_0xb1b2('0x57'))+_0xb1b2('0x64'));}return _0x215cbf['download'](_0x5a620c);}})[_0xb1b2('0x25')](handleError(_0x215cbf,null));};exports[_0xb1b2('0x6e')]=function(_0x14a279,_0x173773,_0x566f52){if(_0x14a279[_0xb1b2('0x50')]&&_0x14a279[_0xb1b2('0x50')]['filename']){_0x14a279[_0xb1b2('0x4c')][_0xb1b2('0x67')]=_0x14a279['file'][_0xb1b2('0x51')];}return db[_0xb1b2('0x36')][_0xb1b2('0x4d')]({'where':{'id':_0x14a279[_0xb1b2('0x4e')]['id']}})[_0xb1b2('0x1c')](handleEntityNotFound(_0x173773,null))[_0xb1b2('0x1c')](saveUpdates(_0x14a279[_0xb1b2('0x4c')],null))[_0xb1b2('0x1c')](respondWithResult(_0x173773,null))[_0xb1b2('0x25')](handleError(_0x173773,null));};var utilLicense=require(_0xb1b2('0x17'));exports[_0xb1b2('0x6f')]=function(_0x2aef8c,_0xb9162f,_0x1991e2){var _0x22407f='server/files/images/logos';var _0x259e5a={'custom':![]};return utilLicense[_0xb1b2('0x55')]()[_0xb1b2('0x1c')](function(_0x262a10){if(_0x262a10){_0x259e5a=_0x262a10;}return db[_0xb1b2('0x36')][_0xb1b2('0x4d')]({'where':{'id':_0x2aef8c[_0xb1b2('0x4e')]['id']},'attributes':['logo',_0xb1b2('0x52'),_0xb1b2('0x57'),'favicon',_0xb1b2('0x58'),_0xb1b2('0x59'),_0xb1b2('0x5a'),'defaultFavicon'],'raw':!![]});})[_0xb1b2('0x1c')](handleEntityNotFound(_0xb9162f,null))[_0xb1b2('0x1c')](function(_0x4db0f8){if(_0x4db0f8){var _0x4538e3=_0x4db0f8[_0xb1b2('0x67')]&&fs[_0xb1b2('0x5b')](path[_0xb1b2('0x5c')](config[_0xb1b2('0x5d')],_0x22407f,_[_0xb1b2('0x5e')](_0x4db0f8[_0xb1b2('0x67')])))?path[_0xb1b2('0x5c')](config[_0xb1b2('0x5d')],_0x22407f,_[_0xb1b2('0x5e')](_0x4db0f8[_0xb1b2('0x67')])):path[_0xb1b2('0x5c')](config[_0xb1b2('0x5d')],_0x22407f,_[_0xb1b2('0x5e')]('default_favicon.ico'));var _0xe33195=_0xb1b2('0x5f')+_['upperFirst'](_0xb1b2('0x67'));if(_0x4db0f8[_0xe33195]||!_0x259e5a[_0xb1b2('0x61')]){_0x4538e3=path[_0xb1b2('0x5c')](config[_0xb1b2('0x5d')],_0x22407f,_[_0xb1b2('0x5e')](_0xb1b2('0x70')));}if(!fs[_0xb1b2('0x5b')](_0x4538e3)){throw new db['Sequelize'][(_0xb1b2('0x63'))](_[_0xb1b2('0x60')](_0xb1b2('0x67'))+_0xb1b2('0x64'));}return _0xb9162f[_0xb1b2('0x65')](_0x4538e3);}})[_0xb1b2('0x25')](handleError(_0xb9162f,null));};exports[_0xb1b2('0x71')]=function(_0x365a28,_0x3bee03){var _0x490694={'offset':moment()['utcOffset']()};_0x490694[_0xb1b2('0x72')]=moment()[_0xb1b2('0x73')](_0x490694[_0xb1b2('0x29')])[_0xb1b2('0x74')](_0xb1b2('0x75'));return _0x3bee03[_0xb1b2('0x27')](0xc8)[_0xb1b2('0x76')](_0x490694);};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x008c=['define','settings','lodash','util','../../config/logger','api','moment','request-promise','path','rimraf','../../config/environment','./setting.attributes','exports'];(function(_0x39609a,_0x28a563){var _0xecd92=function(_0x57241a){while(--_0x57241a){_0x39609a['push'](_0x39609a['shift']());}};_0xecd92(++_0x28a563);}(_0x008c,0x188));var _0xc008=function(_0x1288db,_0x211057){_0x1288db=_0x1288db-0x0;var _0x1df750=_0x008c[_0x1288db];return _0x1df750;};'use strict';var _=require(_0xc008('0x0'));var util=require(_0xc008('0x1'));var logger=require(_0xc008('0x2'))(_0xc008('0x3'));var moment=require(_0xc008('0x4'));var BPromise=require('bluebird');var rp=require(_0xc008('0x5'));var fs=require('fs');var path=require(_0xc008('0x6'));var rimraf=require(_0xc008('0x7'));var config=require(_0xc008('0x8'));var attributes=require(_0xc008('0x9'));module[_0xc008('0xa')]=function(_0x13aa7,_0x39bb5e){return _0x13aa7[_0xc008('0xb')]('Setting',attributes,{'tableName':_0xc008('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x008c=['define','settings','lodash','util','../../config/logger','api','moment','request-promise','path','rimraf','../../config/environment','./setting.attributes','exports'];(function(_0x522c6d,_0x4d250d){var _0x26300d=function(_0x3ab228){while(--_0x3ab228){_0x522c6d['push'](_0x522c6d['shift']());}};_0x26300d(++_0x4d250d);}(_0x008c,0x188));var _0xc008=function(_0xd1d19a,_0x1933f0){_0xd1d19a=_0xd1d19a-0x0;var _0x52a79d=_0x008c[_0xd1d19a];return _0x52a79d;};'use strict';var _=require(_0xc008('0x0'));var util=require(_0xc008('0x1'));var logger=require(_0xc008('0x2'))(_0xc008('0x3'));var moment=require(_0xc008('0x4'));var BPromise=require('bluebird');var rp=require(_0xc008('0x5'));var fs=require('fs');var path=require(_0xc008('0x6'));var rimraf=require(_0xc008('0x7'));var config=require(_0xc008('0x8'));var attributes=require(_0xc008('0x9'));module[_0xc008('0xa')]=function(_0x13aa7,_0x39bb5e){return _0x13aa7[_0xc008('0xb')]('Setting',attributes,{'tableName':_0xc008('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xccf0=['randomstring','../../config/utils','rpc','../../config/environment','jayson/promise','client','http','request','Setting,\x20%s,\x20%s','debug','Setting,\x20%s,\x20%s,\x20%s','request\x20sent','error','code','message','info','result','catch','ShowSetting','Setting','find','options','raw','where','attributes','include','model','map','then','stringify','util','moment'];(function(_0x1cb18a,_0x33167a){var _0x22442e=function(_0x46c611){while(--_0x46c611){_0x1cb18a['push'](_0x1cb18a['shift']());}};_0x22442e(++_0x33167a);}(_0xccf0,0x13e));var _0x0ccf=function(_0x2f959d,_0x9a9afd){_0x2f959d=_0x2f959d-0x0;var _0x1ef86f=_0xccf0[_0x2f959d];return _0x1ef86f;};'use strict';var _=require('lodash');var util=require(_0x0ccf('0x0'));var moment=require(_0x0ccf('0x1'));var BPromise=require('bluebird');var rs=require(_0x0ccf('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0x0ccf('0x3'));var logger=require('../../config/logger')(_0x0ccf('0x4'));var config=require(_0x0ccf('0x5'));var jayson=require(_0x0ccf('0x6'));var client=jayson[_0x0ccf('0x7')][_0x0ccf('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x4ae3bf,_0x11b6f1,_0x126270){return new BPromise(function(_0xdf03ab,_0x48e4c2){return client[_0x0ccf('0x9')](_0x4ae3bf,_0x126270)['then'](function(_0x2eeb65){logger['info'](_0x0ccf('0xa'),_0x11b6f1,'request\x20sent');logger[_0x0ccf('0xb')](_0x0ccf('0xc'),_0x11b6f1,_0x0ccf('0xd'),JSON['stringify'](_0x2eeb65));if(_0x2eeb65[_0x0ccf('0xe')]){if(_0x2eeb65['error'][_0x0ccf('0xf')]===0x1f4){logger[_0x0ccf('0xe')](_0x0ccf('0xa'),_0x11b6f1,_0x2eeb65[_0x0ccf('0xe')][_0x0ccf('0x10')]);return _0x48e4c2(_0x2eeb65[_0x0ccf('0xe')][_0x0ccf('0x10')]);}logger[_0x0ccf('0xe')]('Setting,\x20%s,\x20%s',_0x11b6f1,_0x2eeb65[_0x0ccf('0xe')][_0x0ccf('0x10')]);return _0xdf03ab(_0x2eeb65[_0x0ccf('0xe')][_0x0ccf('0x10')]);}else{logger[_0x0ccf('0x11')](_0x0ccf('0xa'),_0x11b6f1,_0x0ccf('0xd'));_0xdf03ab(_0x2eeb65[_0x0ccf('0x12')]['message']);}})[_0x0ccf('0x13')](function(_0x173003){logger[_0x0ccf('0xe')](_0x0ccf('0xa'),_0x11b6f1,_0x173003);_0x48e4c2(_0x173003);});});}exports[_0x0ccf('0x14')]=function(_0x2506f9){var _0x11419f=this;return new Promise(function(_0x50d69b,_0x380fee){return db[_0x0ccf('0x15')][_0x0ccf('0x16')]({'raw':_0x2506f9['options']?_0x2506f9[_0x0ccf('0x17')][_0x0ccf('0x18')]===undefined?!![]:![]:!![],'where':_0x2506f9['options']?_0x2506f9[_0x0ccf('0x17')][_0x0ccf('0x19')]||null:null,'attributes':_0x2506f9[_0x0ccf('0x17')]?_0x2506f9[_0x0ccf('0x17')][_0x0ccf('0x1a')]||null:null,'include':_0x2506f9['options']?_0x2506f9[_0x0ccf('0x17')][_0x0ccf('0x1b')]?_['map'](_0x2506f9[_0x0ccf('0x17')][_0x0ccf('0x1b')],function(_0x2e47d4){return{'model':db[_0x2e47d4[_0x0ccf('0x1c')]],'as':_0x2e47d4['as'],'attributes':_0x2e47d4[_0x0ccf('0x1a')],'include':_0x2e47d4[_0x0ccf('0x1b')]?_[_0x0ccf('0x1d')](_0x2e47d4[_0x0ccf('0x1b')],function(_0x1968eb){return{'model':db[_0x1968eb[_0x0ccf('0x1c')]],'as':_0x1968eb['as'],'attributes':_0x1968eb[_0x0ccf('0x1a')],'include':_0x1968eb[_0x0ccf('0x1b')]?_[_0x0ccf('0x1d')](_0x1968eb[_0x0ccf('0x1b')],function(_0x218ad6){return{'model':db[_0x218ad6[_0x0ccf('0x1c')]],'as':_0x218ad6['as'],'attributes':_0x218ad6[_0x0ccf('0x1a')]};}):[]};}):[]};}):[]:[]})[_0x0ccf('0x1e')](function(_0x5d647f){logger[_0x0ccf('0x11')]('ShowSetting',_0x2506f9);logger['debug'](_0x0ccf('0x14'),_0x2506f9,JSON[_0x0ccf('0x1f')](_0x5d647f));_0x50d69b(_0x5d647f);})['catch'](function(_0x249e5d){logger[_0x0ccf('0xe')](_0x0ccf('0x14'),_0x249e5d[_0x0ccf('0x10')],_0x2506f9);_0x380fee(_0x11419f[_0x0ccf('0xe')](0x1f4,_0x249e5d[_0x0ccf('0x10')]));});});};
\ No newline at end of file
+var _0x690f=['catch','ShowSetting','find','options','where','attributes','include','model','map','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','client','request','then','info','Setting,\x20%s,\x20%s','request\x20sent','debug','Setting,\x20%s,\x20%s,\x20%s','stringify','error','message','result'];(function(_0x437ea9,_0x55c4cd){var _0x5c04b4=function(_0x8d7a4a){while(--_0x8d7a4a){_0x437ea9['push'](_0x437ea9['shift']());}};_0x5c04b4(++_0x55c4cd);}(_0x690f,0x101));var _0xf690=function(_0xfb1896,_0x5e9c9d){_0xfb1896=_0xfb1896-0x0;var _0x2254c5=_0x690f[_0xfb1896];return _0x2254c5;};'use strict';var _=require('lodash');var util=require(_0xf690('0x0'));var moment=require(_0xf690('0x1'));var BPromise=require(_0xf690('0x2'));var rs=require(_0xf690('0x3'));var fs=require('fs');var Redis=require(_0xf690('0x4'));var db=require(_0xf690('0x5'))['db'];var utils=require(_0xf690('0x6'));var logger=require('../../config/logger')(_0xf690('0x7'));var config=require(_0xf690('0x8'));var jayson=require(_0xf690('0x9'));var client=jayson[_0xf690('0xa')]['http']({'port':0x232a});function respondWithRpcPromise(_0x15af52,_0x679392,_0x4c80e4){return new BPromise(function(_0x224896,_0x34534c){return client[_0xf690('0xb')](_0x15af52,_0x4c80e4)[_0xf690('0xc')](function(_0x3c9cd3){logger[_0xf690('0xd')](_0xf690('0xe'),_0x679392,_0xf690('0xf'));logger[_0xf690('0x10')](_0xf690('0x11'),_0x679392,'request\x20sent',JSON[_0xf690('0x12')](_0x3c9cd3));if(_0x3c9cd3[_0xf690('0x13')]){if(_0x3c9cd3[_0xf690('0x13')]['code']===0x1f4){logger[_0xf690('0x13')]('Setting,\x20%s,\x20%s',_0x679392,_0x3c9cd3[_0xf690('0x13')][_0xf690('0x14')]);return _0x34534c(_0x3c9cd3['error'][_0xf690('0x14')]);}logger['error']('Setting,\x20%s,\x20%s',_0x679392,_0x3c9cd3[_0xf690('0x13')][_0xf690('0x14')]);return _0x224896(_0x3c9cd3['error'][_0xf690('0x14')]);}else{logger['info'](_0xf690('0xe'),_0x679392,_0xf690('0xf'));_0x224896(_0x3c9cd3[_0xf690('0x15')][_0xf690('0x14')]);}})[_0xf690('0x16')](function(_0x3893ad){logger[_0xf690('0x13')](_0xf690('0xe'),_0x679392,_0x3893ad);_0x34534c(_0x3893ad);});});}exports[_0xf690('0x17')]=function(_0x15f25b){var _0x3fcddc=this;return new Promise(function(_0x5b1d96,_0x5f1641){return db['Setting'][_0xf690('0x18')]({'raw':_0x15f25b[_0xf690('0x19')]?_0x15f25b[_0xf690('0x19')]['raw']===undefined?!![]:![]:!![],'where':_0x15f25b[_0xf690('0x19')]?_0x15f25b[_0xf690('0x19')][_0xf690('0x1a')]||null:null,'attributes':_0x15f25b[_0xf690('0x19')]?_0x15f25b['options'][_0xf690('0x1b')]||null:null,'include':_0x15f25b[_0xf690('0x19')]?_0x15f25b[_0xf690('0x19')][_0xf690('0x1c')]?_['map'](_0x15f25b['options'][_0xf690('0x1c')],function(_0x48d05d){return{'model':db[_0x48d05d[_0xf690('0x1d')]],'as':_0x48d05d['as'],'attributes':_0x48d05d[_0xf690('0x1b')],'include':_0x48d05d[_0xf690('0x1c')]?_[_0xf690('0x1e')](_0x48d05d[_0xf690('0x1c')],function(_0x54793d){return{'model':db[_0x54793d[_0xf690('0x1d')]],'as':_0x54793d['as'],'attributes':_0x54793d[_0xf690('0x1b')],'include':_0x54793d[_0xf690('0x1c')]?_[_0xf690('0x1e')](_0x54793d[_0xf690('0x1c')],function(_0x4bf32a){return{'model':db[_0x4bf32a[_0xf690('0x1d')]],'as':_0x4bf32a['as'],'attributes':_0x4bf32a[_0xf690('0x1b')]};}):[]};}):[]};}):[]:[]})[_0xf690('0xc')](function(_0x3b5da4){logger[_0xf690('0xd')](_0xf690('0x17'),_0x15f25b);logger['debug']('ShowSetting',_0x15f25b,JSON[_0xf690('0x12')](_0x3b5da4));_0x5b1d96(_0x3b5da4);})[_0xf690('0x16')](function(_0x34096e){logger[_0xf690('0x13')]('ShowSetting',_0x34096e[_0xf690('0x14')],_0x15f25b);_0x5f1641(_0x3fcddc[_0xf690('0x13')](0x1f4,_0x34096e[_0xf690('0x14')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7217=['/:id/send','status','put','update','delete','removeDispositions','removeAnswers','multer','path','connect-timeout','express','Router','fs-extra','../../config/environment','./smsAccount.controller','get','isAuthenticated','index','/describe','describe','/:id','show','/:id/dispositions','getDispositions','/:id/canned_answers','getAnswers','/:id/applications','/:id/interactions','getInteractions','/:id/status','statusGet','/:id/users','create','post','/:id/notify','notify','addApplications'];(function(_0x432682,_0x253044){var _0x463d05=function(_0xa73403){while(--_0xa73403){_0x432682['push'](_0x432682['shift']());}};_0x463d05(++_0x253044);}(_0x7217,0x19e));var _0x7721=function(_0x173d7e,_0x3242fd){_0x173d7e=_0x173d7e-0x0;var _0x2220d6=_0x7217[_0x173d7e];return _0x2220d6;};'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('0x8')](_0x7721('0xd'),auth[_0x7721('0x9')](),controller[_0x7721('0xe')]);router[_0x7721('0x8')](_0x7721('0xf'),auth['isAuthenticated'](),controller[_0x7721('0x10')]);router[_0x7721('0x8')](_0x7721('0x11'),auth[_0x7721('0x9')](),controller[_0x7721('0x12')]);router[_0x7721('0x8')](_0x7721('0x13'),auth[_0x7721('0x9')](),controller['getApplications']);router[_0x7721('0x8')](_0x7721('0x14'),auth['isAuthenticated'](),controller[_0x7721('0x15')]);router[_0x7721('0x8')](_0x7721('0x16'),controller[_0x7721('0x17')]);router['get'](_0x7721('0x18'),auth[_0x7721('0x9')](),controller['getAgents']);router['post']('/',auth['isAuthenticated'](),controller[_0x7721('0x19')]);router[_0x7721('0x1a')](_0x7721('0xf'),auth[_0x7721('0x9')](),controller['addDisposition']);router[_0x7721('0x1a')]('/:id/canned_answers',auth[_0x7721('0x9')](),controller['addAnswer']);router[_0x7721('0x1a')](_0x7721('0x1b'),controller[_0x7721('0x1c')]);router[_0x7721('0x1a')](_0x7721('0x13'),auth[_0x7721('0x9')](),controller[_0x7721('0x1d')]);router[_0x7721('0x1a')](_0x7721('0x1e'),auth[_0x7721('0x9')](),controller['send']);router[_0x7721('0x1a')](_0x7721('0x16'),controller[_0x7721('0x1f')]);router[_0x7721('0x1a')]('/:id/users',auth[_0x7721('0x9')](),controller['addAgents']);router[_0x7721('0x20')](_0x7721('0xd'),auth[_0x7721('0x9')](),controller[_0x7721('0x21')]);router[_0x7721('0x22')](_0x7721('0xd'),auth[_0x7721('0x9')](),controller['destroy']);router[_0x7721('0x22')](_0x7721('0xf'),auth[_0x7721('0x9')](),controller[_0x7721('0x23')]);router[_0x7721('0x22')](_0x7721('0x11'),auth[_0x7721('0x9')](),controller[_0x7721('0x24')]);router[_0x7721('0x22')]('/:id/users',auth[_0x7721('0x9')](),controller['removeAgents']);module['exports']=router;
\ No newline at end of file
+var _0xc4aa=['statusGet','/:id/users','getAgents','post','addDisposition','addAnswer','notify','addApplications','/:id/send','send','status','put','update','destroy','delete','removeDispositions','removeAnswers','removeAgents','exports','multer','util','path','connect-timeout','express','Router','../../config/environment','./smsAccount.controller','get','isAuthenticated','index','/describe','/:id','show','/:id/dispositions','getDispositions','/:id/canned_answers','getAnswers','/:id/applications','getApplications','/:id/interactions','getInteractions','/:id/status'];(function(_0xbb89b3,_0x9eb330){var _0x50f28f=function(_0x3cd076){while(--_0x3cd076){_0xbb89b3['push'](_0xbb89b3['shift']());}};_0x50f28f(++_0x9eb330);}(_0xc4aa,0x1b7));var _0xac4a=function(_0x53ccf2,_0x13cb67){_0x53ccf2=_0x53ccf2-0x0;var _0x5a2964=_0xc4aa[_0x53ccf2];return _0x5a2964;};'use strict';var multer=require(_0xac4a('0x0'));var util=require(_0xac4a('0x1'));var path=require(_0xac4a('0x2'));var timeout=require(_0xac4a('0x3'));var express=require(_0xac4a('0x4'));var router=express[_0xac4a('0x5')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0xac4a('0x6'));var controller=require(_0xac4a('0x7'));router[_0xac4a('0x8')]('/',auth[_0xac4a('0x9')](),controller[_0xac4a('0xa')]);router[_0xac4a('0x8')](_0xac4a('0xb'),auth[_0xac4a('0x9')](),controller['describe']);router['get'](_0xac4a('0xc'),auth[_0xac4a('0x9')](),controller[_0xac4a('0xd')]);router['get'](_0xac4a('0xe'),auth[_0xac4a('0x9')](),controller[_0xac4a('0xf')]);router['get'](_0xac4a('0x10'),auth['isAuthenticated'](),controller[_0xac4a('0x11')]);router['get'](_0xac4a('0x12'),auth[_0xac4a('0x9')](),controller[_0xac4a('0x13')]);router['get'](_0xac4a('0x14'),auth[_0xac4a('0x9')](),controller[_0xac4a('0x15')]);router[_0xac4a('0x8')](_0xac4a('0x16'),controller[_0xac4a('0x17')]);router[_0xac4a('0x8')](_0xac4a('0x18'),auth[_0xac4a('0x9')](),controller[_0xac4a('0x19')]);router[_0xac4a('0x1a')]('/',auth[_0xac4a('0x9')](),controller['create']);router[_0xac4a('0x1a')](_0xac4a('0xe'),auth[_0xac4a('0x9')](),controller[_0xac4a('0x1b')]);router[_0xac4a('0x1a')](_0xac4a('0x10'),auth[_0xac4a('0x9')](),controller[_0xac4a('0x1c')]);router['post']('/:id/notify',controller[_0xac4a('0x1d')]);router[_0xac4a('0x1a')](_0xac4a('0x12'),auth['isAuthenticated'](),controller[_0xac4a('0x1e')]);router[_0xac4a('0x1a')](_0xac4a('0x1f'),auth[_0xac4a('0x9')](),controller[_0xac4a('0x20')]);router[_0xac4a('0x1a')](_0xac4a('0x16'),controller[_0xac4a('0x21')]);router['post'](_0xac4a('0x18'),auth[_0xac4a('0x9')](),controller['addAgents']);router[_0xac4a('0x22')](_0xac4a('0xc'),auth[_0xac4a('0x9')](),controller[_0xac4a('0x23')]);router['delete'](_0xac4a('0xc'),auth[_0xac4a('0x9')](),controller[_0xac4a('0x24')]);router[_0xac4a('0x25')](_0xac4a('0xe'),auth[_0xac4a('0x9')](),controller[_0xac4a('0x26')]);router[_0xac4a('0x25')](_0xac4a('0x10'),auth[_0xac4a('0x9')](),controller[_0xac4a('0x27')]);router[_0xac4a('0x25')](_0xac4a('0x18'),auth[_0xac4a('0x9')](),controller[_0xac4a('0x28')]);module[_0xac4a('0x29')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb717=['mandatoryDispositionPauseId','mandatoryDisposition','sequelize','randomstring','exports','name','STRING','twilio','connectel','clicksend','plivo','clickatell','bandwidth','csc','infobip','intelepeer','ENUM','BOOLEAN','TEXT','INTEGER','Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','setDataValue'];(function(_0x465028,_0x4570ac){var _0xb783d4=function(_0x5458c5){while(--_0x5458c5){_0x465028['push'](_0x465028['shift']());}};_0xb783d4(++_0x4570ac);}(_0xb717,0x1d0));var _0x7b71=function(_0x4df326,_0x3ad2aa){_0x4df326=_0x4df326-0x0;var _0x3c673c=_0xb717[_0x4df326];return _0x3c673c;};'use strict';var Sequelize=require(_0x7b71('0x0'));var rs=require(_0x7b71('0x1'));module[_0x7b71('0x2')]={'name':{'type':Sequelize['STRING'],'unique':_0x7b71('0x3'),'allowNull':![]},'key':{'type':Sequelize[_0x7b71('0x4')],'allowNull':![]},'remote':{'type':Sequelize['STRING'],'allowNull':![]},'token':{'type':Sequelize[_0x7b71('0x4')],'defaultValue':function(){return rs['generate']();}},'phone':{'type':Sequelize[_0x7b71('0x4')]},'type':{'type':Sequelize['ENUM'](_0x7b71('0x5'),'skebby',_0x7b71('0x6'),_0x7b71('0x7'),_0x7b71('0x8'),_0x7b71('0x9'),_0x7b71('0xa'),_0x7b71('0xb'),_0x7b71('0xc'),_0x7b71('0xd'))},'accountSid':{'type':Sequelize[_0x7b71('0x4')]},'authId':{'type':Sequelize[_0x7b71('0x4')]},'authToken':{'type':Sequelize[_0x7b71('0x4')]},'smsMethod':{'type':Sequelize[_0x7b71('0xe')]('SI','TI','GP')},'username':{'type':Sequelize[_0x7b71('0x4')]},'password':{'type':Sequelize['STRING']},'apiKey':{'type':Sequelize[_0x7b71('0x4')]},'applicationId':{'type':Sequelize[_0x7b71('0x4')]},'accountId':{'type':Sequelize[_0x7b71('0x4')]},'senderString':{'type':Sequelize['STRING']},'deliveryReport':{'type':Sequelize[_0x7b71('0xf')],'defaultValue':![]},'description':{'type':Sequelize['STRING']},'notificationTemplate':{'type':Sequelize[_0x7b71('0x10')],'defaultValue':function(){return'Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}';}},'notificationSound':{'type':Sequelize[_0x7b71('0xf')],'defaultValue':!![]},'notificationShake':{'type':Sequelize[_0x7b71('0xf')],'defaultValue':![]},'waitForTheAssignedAgent':{'type':Sequelize[_0x7b71('0x11')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'queueTransfer':{'type':Sequelize[_0x7b71('0xf')],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize[_0x7b71('0x11')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize[_0x7b71('0x11')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'baseUrl':{'type':Sequelize[_0x7b71('0x4')]},'mandatoryDispositionPauseId':{'type':Sequelize['INTEGER'],'comment':'Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled'},'mandatoryDisposition':{'type':Sequelize[_0x7b71('0xf')],'defaultValue':![],'comment':_0x7b71('0x12'),'set':function(_0x5837ab){if(!_0x5837ab)this[_0x7b71('0x13')](_0x7b71('0x14'),null);this[_0x7b71('0x13')](_0x7b71('0x15'),_0x5837ab);}}};
\ No newline at end of file
+var _0xa873=['connectel','clicksend','plivo','csc','infobip','intelepeer','BOOLEAN','TEXT','Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled','Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','mandatoryDispositionPauseId','mandatoryDisposition','randomstring','STRING','generate','ENUM','twilio','skebby'];(function(_0x3bf83f,_0x181cac){var _0x22c4a9=function(_0xb3ff0d){while(--_0xb3ff0d){_0x3bf83f['push'](_0x3bf83f['shift']());}};_0x22c4a9(++_0x181cac);}(_0xa873,0x66));var _0x3a87=function(_0x2b64a3,_0x1971c5){_0x2b64a3=_0x2b64a3-0x0;var _0x3c95ba=_0xa873[_0x2b64a3];return _0x3c95ba;};'use strict';var Sequelize=require('sequelize');var rs=require(_0x3a87('0x0'));module['exports']={'name':{'type':Sequelize['STRING'],'unique':'name','allowNull':![]},'key':{'type':Sequelize[_0x3a87('0x1')],'allowNull':![]},'remote':{'type':Sequelize[_0x3a87('0x1')],'allowNull':![]},'token':{'type':Sequelize[_0x3a87('0x1')],'defaultValue':function(){return rs[_0x3a87('0x2')]();}},'phone':{'type':Sequelize[_0x3a87('0x1')]},'type':{'type':Sequelize[_0x3a87('0x3')](_0x3a87('0x4'),_0x3a87('0x5'),_0x3a87('0x6'),_0x3a87('0x7'),_0x3a87('0x8'),'clickatell','bandwidth',_0x3a87('0x9'),_0x3a87('0xa'),_0x3a87('0xb'))},'accountSid':{'type':Sequelize[_0x3a87('0x1')]},'authId':{'type':Sequelize[_0x3a87('0x1')]},'authToken':{'type':Sequelize[_0x3a87('0x1')]},'smsMethod':{'type':Sequelize[_0x3a87('0x3')]('SI','TI','GP')},'username':{'type':Sequelize[_0x3a87('0x1')]},'password':{'type':Sequelize['STRING']},'apiKey':{'type':Sequelize[_0x3a87('0x1')]},'applicationId':{'type':Sequelize[_0x3a87('0x1')]},'accountId':{'type':Sequelize[_0x3a87('0x1')]},'senderString':{'type':Sequelize[_0x3a87('0x1')]},'deliveryReport':{'type':Sequelize[_0x3a87('0xc')],'defaultValue':![]},'description':{'type':Sequelize[_0x3a87('0x1')]},'notificationTemplate':{'type':Sequelize[_0x3a87('0xd')],'defaultValue':function(){return'Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}';}},'notificationSound':{'type':Sequelize[_0x3a87('0xc')],'defaultValue':!![]},'notificationShake':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'waitForTheAssignedAgent':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'queueTransfer':{'type':Sequelize[_0x3a87('0xc')],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize[_0x3a87('0xc')],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'baseUrl':{'type':Sequelize[_0x3a87('0x1')]},'mandatoryDispositionPauseId':{'type':Sequelize['INTEGER'],'comment':_0x3a87('0xe')},'mandatoryDisposition':{'type':Sequelize[_0x3a87('0xc')],'defaultValue':![],'comment':_0x3a87('0xf'),'set':function(_0x52d90d){if(!_0x52d90d)this['setDataValue'](_0x3a87('0x10'),null);this['setDataValue'](_0x3a87('0x11'),_0x52d90d);}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc2c5=['request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','register','jayson/promise','client','http','request','then','info','SmsAccount,\x20%s,\x20%s','request\x20sent','SmsAccount,\x20%s,\x20%s,\x20%s','stringify','error','message','result','sendStatus','status','end','json','offset','undefined','limit','count','Content-Range','reject','UserProfileResource','stack','name','send','index','mandatoryDispositionPause','SmsAccount','rawAttributes','fieldName','type','key','map','keys','query','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','sort','where','VIRTUAL','filter','merge','options','include','findAll','rows','catch','show','params','includeAll','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','SmsAccounts','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','find','Pause','destroy','describe','addDisposition','Disposition','getDispositions','findOne','pick','SmsAccountId','removeDispositions','ids','addAnswer','CannedAnswer','order','removeAnswers','notify','sms','SmsApplication','Applications','applications','orderBy','priority','asc','account','CmContact','ValidationError','difference','createdAt','updatedAt','CompanyId','ListId','twilio','from','From','Body','messageId','MessageSid','skebby','connectel','clicksend','message_id','Text','MessageUUID','infobip','results','text','csc','originatingAddress','fromNumber','replyMessageId','bandwidth','refid','isNil','Sequelize','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','CmList','Contacts','list','SmsInteraction','interaction','created','autoclose','push','close','unmanaged','*,*,*,*','ContactId','AttachmentId','UserId','User','agent','waitForTheAssignedAgent','Start','startRouting','entity\x20found','debug','text/xml','sequelize','bulkCreate','findAndCountAll','getApplications','getInteractions','Contact','Owner','internal','Tag','Tags','color','tag','body\x20is\x20mandatory\x20and\x20not\x20empty','to\x20is\x20mandatory','List','DESC','out','SmsMessage','dataValues','Messages','received\x20delivery\x20report\x20from','inspect','statusInt','requestid','status_code','groupName','DELIVERED','clickatell','intelepeer','error_code','DELIVERED_TO_GATEWAY','RECEIVED_BY_RECIPIENT','message-delivered','DELIVRD','ACCEPTD','message-id','state','addAgents','omit','spread','emit','removeAgents','isArray','userSmsAccount:remove','getAgents','eml-format','rimraf','zip-dir','fast-json-patch'];(function(_0x3cdc4e,_0x279d3f){var _0x2092c1=function(_0x1522f1){while(--_0x1522f1){_0x3cdc4e['push'](_0x3cdc4e['shift']());}};_0x2092c1(++_0x279d3f);}(_0xc2c5,0x1c2));var _0x5c2c=function(_0x372047,_0x7f5c2b){_0x372047=_0x372047-0x0;var _0x44f282=_0xc2c5[_0x372047];return _0x44f282;};'use strict';var emlformat=require(_0x5c2c('0x0'));var rimraf=require(_0x5c2c('0x1'));var zipdir=require(_0x5c2c('0x2'));var jsonpatch=require(_0x5c2c('0x3'));var rp=require(_0x5c2c('0x4'));var moment=require('moment');var BPromise=require(_0x5c2c('0x5'));var Mustache=require(_0x5c2c('0x6'));var util=require(_0x5c2c('0x7'));var path=require(_0x5c2c('0x8'));var sox=require(_0x5c2c('0x9'));var csv=require(_0x5c2c('0xa'));var ejs=require(_0x5c2c('0xb'));var fs=require('fs');var fs_extra=require(_0x5c2c('0xc'));var _=require(_0x5c2c('0xd'));var squel=require('squel');var crypto=require(_0x5c2c('0xe'));var jsforce=require(_0x5c2c('0xf'));var deskjs=require(_0x5c2c('0x10'));var toCsv=require(_0x5c2c('0xa'));var querystring=require(_0x5c2c('0x11'));var Papa=require(_0x5c2c('0x12'));var Redis=require(_0x5c2c('0x13'));var authService=require(_0x5c2c('0x14'));var qs=require(_0x5c2c('0x15'));var as=require(_0x5c2c('0x16'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x5c2c('0x17'))(_0x5c2c('0x18'));var utils=require('../../config/utils');var config=require(_0x5c2c('0x19'));var licenseUtil=require('../../config/license/util');var db=require(_0x5c2c('0x1a'))['db'];config[_0x5c2c('0x1b')]=_[_0x5c2c('0x1c')](config[_0x5c2c('0x1b')],{'host':_0x5c2c('0x1d'),'port':0x18eb});var socket=require(_0x5c2c('0x1e'))(new Redis(config['redis']));require('./smsAccount.socket')[_0x5c2c('0x1f')](socket);var jayson=require(_0x5c2c('0x20'));var client=jayson[_0x5c2c('0x21')][_0x5c2c('0x22')]({'port':0x232c});function respondWithRpcPromise(_0x2ef9ef,_0x52cc53,_0x142800,_0x5769c5){return new BPromise(function(_0x2cfcd9,_0x5eb220){var _0x1dab61=_0x5769c5||client;return _0x1dab61[_0x5c2c('0x23')](_0x2ef9ef,_0x142800)[_0x5c2c('0x24')](function(_0x20d8ee){logger[_0x5c2c('0x25')](_0x5c2c('0x26'),_0x52cc53,_0x5c2c('0x27'));logger['debug'](_0x5c2c('0x28'),_0x52cc53,'request\x20sent',JSON[_0x5c2c('0x29')](_0x20d8ee));if(_0x20d8ee['error']){if(_0x20d8ee[_0x5c2c('0x2a')]['code']===0x1f4){logger[_0x5c2c('0x2a')]('SmsAccount,\x20%s,\x20%s',_0x52cc53,_0x20d8ee[_0x5c2c('0x2a')][_0x5c2c('0x2b')]);return _0x5eb220(_0x20d8ee[_0x5c2c('0x2a')][_0x5c2c('0x2b')]);}logger['error']('SmsAccount,\x20%s,\x20%s',_0x52cc53,_0x20d8ee[_0x5c2c('0x2a')][_0x5c2c('0x2b')]);return _0x2cfcd9(_0x20d8ee['error'][_0x5c2c('0x2b')]);}else{logger['info'](_0x5c2c('0x26'),_0x52cc53,_0x5c2c('0x27'));_0x2cfcd9(_0x20d8ee[_0x5c2c('0x2c')]['message']);}})['catch'](function(_0x33270c){logger['error'](_0x5c2c('0x26'),_0x52cc53,_0x33270c);_0x5eb220(_0x33270c);});});}function respondWithStatusCode(_0x360e8b,_0x2c14b3){_0x2c14b3=_0x2c14b3||0xcc;return function(_0x33ee97){if(_0x33ee97){return _0x360e8b[_0x5c2c('0x2d')](_0x2c14b3);}return _0x360e8b[_0x5c2c('0x2e')](_0x2c14b3)[_0x5c2c('0x2f')]();};}function respondWithResult(_0x97efef,_0xd98944){_0xd98944=_0xd98944||0xc8;return function(_0x2ab257){if(_0x2ab257){return _0x97efef['status'](_0xd98944)[_0x5c2c('0x30')](_0x2ab257);}};}function respondWithFilteredResult(_0x58fb10,_0x33f554){return function(_0xa80e36){if(_0xa80e36){var _0xe70cb8=typeof _0x33f554[_0x5c2c('0x31')]===_0x5c2c('0x32')&&typeof _0x33f554[_0x5c2c('0x33')]===_0x5c2c('0x32');var _0x14fd76=_0xa80e36['count'];var _0x272737=_0xe70cb8?0x0:_0x33f554[_0x5c2c('0x31')];var _0x506a6f=_0xe70cb8?_0xa80e36[_0x5c2c('0x34')]:_0x33f554[_0x5c2c('0x31')]+_0x33f554[_0x5c2c('0x33')];var _0xde546e;if(_0x506a6f>=_0x14fd76){_0x506a6f=_0x14fd76;_0xde546e=0xc8;}else{_0xde546e=0xce;}_0x58fb10[_0x5c2c('0x2e')](_0xde546e);return _0x58fb10['set'](_0x5c2c('0x35'),_0x272737+'-'+_0x506a6f+'/'+_0x14fd76)[_0x5c2c('0x30')](_0xa80e36);}return null;};}function patchUpdates(_0x1b5066){return function(_0x8892c3){try{jsonpatch['apply'](_0x8892c3,_0x1b5066,!![]);}catch(_0x322e1a){return BPromise[_0x5c2c('0x36')](_0x322e1a);}return _0x8892c3['save']();};}function saveUpdates(_0x9c7eed,_0x2b1c0d){return function(_0x7be7d2){if(_0x7be7d2){return _0x7be7d2['update'](_0x9c7eed)[_0x5c2c('0x24')](function(_0x323bd5){return _0x323bd5;});}return null;};}function removeEntity(_0x446d9b,_0xec62f8){return function(_0x1dc15b){if(_0x1dc15b){return _0x1dc15b['destroy']()[_0x5c2c('0x24')](function(){var _0x415e48=_0x1dc15b['get']({'plain':!![]});var _0x1a1ff9='SmsAccounts';return db[_0x5c2c('0x37')]['destroy']({'where':{'type':_0x1a1ff9,'resourceId':_0x415e48['id']}})['then'](function(){return _0x1dc15b;});})[_0x5c2c('0x24')](function(){_0x446d9b['status'](0xcc)[_0x5c2c('0x2f')]();});}};}function handleEntityNotFound(_0x57977e,_0x524ff6){return function(_0x55e77d){if(!_0x55e77d){_0x57977e[_0x5c2c('0x2d')](0x194);}return _0x55e77d;};}function handleError(_0x127b33,_0x131d9c){_0x131d9c=_0x131d9c||0x1f4;return function(_0x3224fa){logger[_0x5c2c('0x2a')](_0x3224fa[_0x5c2c('0x38')]);if(_0x3224fa[_0x5c2c('0x39')]){delete _0x3224fa['name'];}_0x127b33[_0x5c2c('0x2e')](_0x131d9c)[_0x5c2c('0x3a')](_0x3224fa);};}exports[_0x5c2c('0x3b')]=function(_0x5d0ae2,_0x1c5492){var _0x3bfae9={'include':[{'model':db['Pause'],'as':_0x5c2c('0x3c')}]},_0x4be6a9={},_0x286272={'count':0x0,'rows':[]};var _0xc56226=_['map'](db[_0x5c2c('0x3d')][_0x5c2c('0x3e')],function(_0x32ade4){return{'name':_0x32ade4[_0x5c2c('0x3f')],'type':_0x32ade4[_0x5c2c('0x40')][_0x5c2c('0x41')]};});_0x4be6a9['model']=_[_0x5c2c('0x42')](_0xc56226,'name');_0x4be6a9['query']=_[_0x5c2c('0x43')](_0x5d0ae2[_0x5c2c('0x44')]);_0x4be6a9[_0x5c2c('0x45')]=_[_0x5c2c('0x46')](_0x4be6a9[_0x5c2c('0x47')],_0x4be6a9['query']);_0x3bfae9[_0x5c2c('0x48')]=_[_0x5c2c('0x46')](_0x4be6a9['model'],qs[_0x5c2c('0x49')](_0x5d0ae2[_0x5c2c('0x44')][_0x5c2c('0x49')]));_0x3bfae9[_0x5c2c('0x48')]=_0x3bfae9[_0x5c2c('0x48')][_0x5c2c('0x4a')]?_0x3bfae9[_0x5c2c('0x48')]:_0x4be6a9[_0x5c2c('0x47')];if(!_0x5d0ae2['query'][_0x5c2c('0x4b')](_0x5c2c('0x4c'))){_0x3bfae9['limit']=qs['limit'](_0x5d0ae2[_0x5c2c('0x44')][_0x5c2c('0x33')]);_0x3bfae9[_0x5c2c('0x31')]=qs[_0x5c2c('0x31')](_0x5d0ae2[_0x5c2c('0x44')]['offset']);}_0x3bfae9['order']=qs[_0x5c2c('0x4d')](_0x5d0ae2[_0x5c2c('0x44')][_0x5c2c('0x4d')]);_0x3bfae9[_0x5c2c('0x4e')]=qs[_0x5c2c('0x45')](_['pick'](_0x5d0ae2[_0x5c2c('0x44')],_0x4be6a9[_0x5c2c('0x45')]),_0xc56226);if(_0x5d0ae2[_0x5c2c('0x44')]['filter']){_0x3bfae9[_0x5c2c('0x4e')]=_['merge'](_0x3bfae9[_0x5c2c('0x4e')],{'$or':_[_0x5c2c('0x42')](_0xc56226,function(_0x34df7f){if(_0x34df7f[_0x5c2c('0x40')]!==_0x5c2c('0x4f')){var _0x1886f8={};_0x1886f8[_0x34df7f[_0x5c2c('0x39')]]={'$like':'%'+_0x5d0ae2[_0x5c2c('0x44')][_0x5c2c('0x50')]+'%'};return _0x1886f8;}})});}_0x3bfae9=_[_0x5c2c('0x51')]({},_0x3bfae9,_0x5d0ae2[_0x5c2c('0x52')]);var _0x54269e={'where':_0x3bfae9[_0x5c2c('0x4e')]};return db['SmsAccount'][_0x5c2c('0x34')](_0x54269e)[_0x5c2c('0x24')](function(_0x45e704){_0x286272[_0x5c2c('0x34')]=_0x45e704;if(_0x5d0ae2[_0x5c2c('0x44')]['includeAll']){_0x3bfae9[_0x5c2c('0x53')]=[{'all':!![]}];}return db[_0x5c2c('0x3d')][_0x5c2c('0x54')](_0x3bfae9);})['then'](function(_0x3b5fc9){_0x286272[_0x5c2c('0x55')]=_0x3b5fc9;return _0x286272;})['then'](respondWithFilteredResult(_0x1c5492,_0x3bfae9))[_0x5c2c('0x56')](handleError(_0x1c5492,null));};exports[_0x5c2c('0x57')]=function(_0x2615d2,_0x47851a){var _0x4af574={'raw':![],'where':{'id':_0x2615d2[_0x5c2c('0x58')]['id']},'include':[{'model':db['Pause'],'as':_0x5c2c('0x3c')}]},_0x2c5b8e={};_0x2c5b8e[_0x5c2c('0x47')]=_[_0x5c2c('0x43')](db[_0x5c2c('0x3d')][_0x5c2c('0x3e')]);_0x2c5b8e[_0x5c2c('0x44')]=_[_0x5c2c('0x43')](_0x2615d2[_0x5c2c('0x44')]);_0x2c5b8e[_0x5c2c('0x45')]=_['intersection'](_0x2c5b8e[_0x5c2c('0x47')],_0x2c5b8e[_0x5c2c('0x44')]);_0x4af574[_0x5c2c('0x48')]=_[_0x5c2c('0x46')](_0x2c5b8e[_0x5c2c('0x47')],qs[_0x5c2c('0x49')](_0x2615d2['query'][_0x5c2c('0x49')]));_0x4af574[_0x5c2c('0x48')]=_0x4af574[_0x5c2c('0x48')]['length']?_0x4af574[_0x5c2c('0x48')]:_0x2c5b8e[_0x5c2c('0x47')];if(_0x2615d2[_0x5c2c('0x44')][_0x5c2c('0x59')]){_0x4af574[_0x5c2c('0x53')]=[{'all':!![]}];}_0x4af574=_[_0x5c2c('0x51')]({},_0x4af574,_0x2615d2[_0x5c2c('0x52')]);return db[_0x5c2c('0x3d')]['find'](_0x4af574)[_0x5c2c('0x24')](handleEntityNotFound(_0x47851a,null))[_0x5c2c('0x24')](respondWithResult(_0x47851a,null))[_0x5c2c('0x56')](handleError(_0x47851a,null));};exports[_0x5c2c('0x5a')]=function(_0x35673e,_0x51901d){return db[_0x5c2c('0x3d')][_0x5c2c('0x5a')](_0x35673e[_0x5c2c('0x5b')],{})['then'](function(_0x1bc0c3){var _0x3d6363=_0x35673e[_0x5c2c('0x5c')][_0x5c2c('0x5d')]({'plain':!![]});if(!_0x3d6363)throw new Error(_0x5c2c('0x5e'));if(_0x3d6363[_0x5c2c('0x5f')]===_0x5c2c('0x5c')){var _0x129f86=_0x1bc0c3[_0x5c2c('0x5d')]({'plain':!![]});var _0x557274=_0x5c2c('0x60');return db['UserProfileSection']['find']({'where':{'name':_0x557274,'userProfileId':_0x3d6363[_0x5c2c('0x61')]},'raw':!![]})[_0x5c2c('0x24')](function(_0x133dbf){if(_0x133dbf&&_0x133dbf[_0x5c2c('0x62')]===0x0){return db[_0x5c2c('0x37')][_0x5c2c('0x5a')]({'name':_0x129f86[_0x5c2c('0x39')],'resourceId':_0x129f86['id'],'type':_0x133dbf[_0x5c2c('0x39')],'sectionId':_0x133dbf['id']},{})[_0x5c2c('0x24')](function(){return _0x1bc0c3;});}else{return _0x1bc0c3;}})['catch'](function(_0x3fa070){logger[_0x5c2c('0x2a')](_0x5c2c('0x63'),_0x3fa070);throw _0x3fa070;});}return _0x1bc0c3;})[_0x5c2c('0x24')](respondWithResult(_0x51901d,0xc9))['catch'](handleError(_0x51901d,null));};exports[_0x5c2c('0x64')]=function(_0x262cd3,_0x288bc2){if(_0x262cd3[_0x5c2c('0x5b')]['id']){delete _0x262cd3[_0x5c2c('0x5b')]['id'];}return db[_0x5c2c('0x3d')][_0x5c2c('0x65')]({'where':{'id':_0x262cd3[_0x5c2c('0x58')]['id']},'include':[{'model':db[_0x5c2c('0x66')],'as':_0x5c2c('0x3c')}]})[_0x5c2c('0x24')](handleEntityNotFound(_0x288bc2,null))[_0x5c2c('0x24')](saveUpdates(_0x262cd3[_0x5c2c('0x5b')],null))[_0x5c2c('0x24')](respondWithResult(_0x288bc2,null))[_0x5c2c('0x56')](handleError(_0x288bc2,null));};exports[_0x5c2c('0x67')]=function(_0x405f66,_0x26dfd7){return db[_0x5c2c('0x3d')][_0x5c2c('0x65')]({'where':{'id':_0x405f66[_0x5c2c('0x58')]['id']}})[_0x5c2c('0x24')](handleEntityNotFound(_0x26dfd7,null))[_0x5c2c('0x24')](removeEntity(_0x26dfd7,null))[_0x5c2c('0x56')](handleError(_0x26dfd7,null));};exports[_0x5c2c('0x68')]=function(_0x12b030,_0x489bb8){return db[_0x5c2c('0x3d')][_0x5c2c('0x68')]()[_0x5c2c('0x24')](respondWithResult(_0x489bb8,null))[_0x5c2c('0x56')](handleError(_0x489bb8,null));};exports[_0x5c2c('0x69')]=function(_0x26cd8e,_0x582fb3,_0x781b9b){if(_0x26cd8e[_0x5c2c('0x5b')]['id']){delete _0x26cd8e[_0x5c2c('0x5b')]['id'];}return db[_0x5c2c('0x3d')][_0x5c2c('0x65')]({'where':{'id':_0x26cd8e[_0x5c2c('0x58')]['id']}})[_0x5c2c('0x24')](handleEntityNotFound(_0x582fb3,null))['then'](function(_0x4f20b4){if(_0x4f20b4){_0x26cd8e[_0x5c2c('0x5b')]['SmsAccountId']=_0x4f20b4['id'];return db[_0x5c2c('0x6a')][_0x5c2c('0x5a')](_0x26cd8e[_0x5c2c('0x5b')]);}})[_0x5c2c('0x24')](respondWithResult(_0x582fb3,null))[_0x5c2c('0x56')](handleError(_0x582fb3,null));};exports[_0x5c2c('0x6b')]=function(_0x3c21a1,_0x8540e0,_0x1edd80){var _0x225cbf={'raw':![],'where':{}};var _0x568910={};var _0x2276bf={'count':0x0,'rows':[]};return db['SmsAccount'][_0x5c2c('0x6c')]({'where':{'id':_0x3c21a1[_0x5c2c('0x58')]['id']}})[_0x5c2c('0x24')](handleEntityNotFound(_0x8540e0,null))[_0x5c2c('0x24')](function(_0x326895){if(_0x326895){_0x568910[_0x5c2c('0x47')]=_[_0x5c2c('0x43')](db[_0x5c2c('0x6a')][_0x5c2c('0x3e')]);_0x568910[_0x5c2c('0x44')]=_[_0x5c2c('0x43')](_0x3c21a1[_0x5c2c('0x44')]);_0x568910[_0x5c2c('0x45')]=_[_0x5c2c('0x46')](_0x568910['model'],_0x568910[_0x5c2c('0x44')]);_0x225cbf[_0x5c2c('0x48')]=_[_0x5c2c('0x46')](_0x568910['model'],qs[_0x5c2c('0x49')](_0x3c21a1[_0x5c2c('0x44')][_0x5c2c('0x49')]));_0x225cbf[_0x5c2c('0x48')]=_0x225cbf[_0x5c2c('0x48')][_0x5c2c('0x4a')]?_0x225cbf[_0x5c2c('0x48')]:_0x568910[_0x5c2c('0x47')];if(!_0x3c21a1[_0x5c2c('0x44')]['hasOwnProperty'](_0x5c2c('0x4c'))){_0x225cbf[_0x5c2c('0x33')]=qs[_0x5c2c('0x33')](_0x3c21a1['query']['limit']);_0x225cbf[_0x5c2c('0x31')]=qs[_0x5c2c('0x31')](_0x3c21a1[_0x5c2c('0x44')][_0x5c2c('0x31')]);}_0x225cbf['order']=qs[_0x5c2c('0x4d')](_0x3c21a1[_0x5c2c('0x44')][_0x5c2c('0x4d')]);_0x225cbf[_0x5c2c('0x4e')]=qs[_0x5c2c('0x45')](_[_0x5c2c('0x6d')](_0x3c21a1[_0x5c2c('0x44')],_0x568910['filters']));_0x225cbf['where'][_0x5c2c('0x6e')]=_0x326895['id'];if(_0x3c21a1['query'][_0x5c2c('0x50')]){_0x225cbf['where']=_['merge'](_0x225cbf[_0x5c2c('0x4e')],{'$or':_['map'](_0x225cbf[_0x5c2c('0x48')],function(_0x59e1ef){var _0xf7c29a={};_0xf7c29a[_0x59e1ef]={'$like':'%'+_0x3c21a1[_0x5c2c('0x44')][_0x5c2c('0x50')]+'%'};return _0xf7c29a;})});}_0x225cbf=_[_0x5c2c('0x51')]({},_0x225cbf,_0x3c21a1[_0x5c2c('0x52')]);return db['Disposition'][_0x5c2c('0x34')]({'where':_0x225cbf[_0x5c2c('0x4e')]})[_0x5c2c('0x24')](function(_0x52baed){_0x2276bf['count']=_0x52baed;if(_0x3c21a1['query'][_0x5c2c('0x59')]){_0x225cbf['include']=[{'all':!![]}];}return db[_0x5c2c('0x6a')][_0x5c2c('0x54')](_0x225cbf);})[_0x5c2c('0x24')](function(_0xe61bbd){_0x2276bf[_0x5c2c('0x55')]=_0xe61bbd;return _0x2276bf;});}})[_0x5c2c('0x24')](respondWithFilteredResult(_0x8540e0,_0x225cbf))[_0x5c2c('0x56')](handleError(_0x8540e0,null));};exports[_0x5c2c('0x6f')]=function(_0x4805f4,_0x484a69,_0x2501e4){return db[_0x5c2c('0x3d')]['find']({'where':{'id':_0x4805f4[_0x5c2c('0x58')]['id']}})[_0x5c2c('0x24')](handleEntityNotFound(_0x484a69,null))[_0x5c2c('0x24')](function(_0x28b122){if(_0x28b122){return _0x28b122[_0x5c2c('0x6f')](_0x4805f4[_0x5c2c('0x44')][_0x5c2c('0x70')]);}})[_0x5c2c('0x24')](respondWithStatusCode(_0x484a69,null))['catch'](handleError(_0x484a69,null));};exports[_0x5c2c('0x71')]=function(_0x4d744e,_0x1175fa,_0x50b16b){if(_0x4d744e[_0x5c2c('0x5b')]['id']){delete _0x4d744e[_0x5c2c('0x5b')]['id'];}return db[_0x5c2c('0x3d')][_0x5c2c('0x65')]({'where':{'id':_0x4d744e[_0x5c2c('0x58')]['id']}})['then'](handleEntityNotFound(_0x1175fa,null))[_0x5c2c('0x24')](function(_0x55e3ff){if(_0x55e3ff){_0x4d744e['body']['SmsAccountId']=_0x55e3ff['id'];return db[_0x5c2c('0x72')][_0x5c2c('0x5a')](_0x4d744e['body']);}})[_0x5c2c('0x24')](respondWithResult(_0x1175fa,null))['catch'](handleError(_0x1175fa,null));};exports['getAnswers']=function(_0x49ebd1,_0x3634c5,_0x2a0e22){var _0x44808c={'raw':![],'where':{}};var _0x1751b7={};var _0x48b329={'count':0x0,'rows':[]};return db['SmsAccount']['findOne']({'where':{'id':_0x49ebd1['params']['id']}})[_0x5c2c('0x24')](handleEntityNotFound(_0x3634c5,null))['then'](function(_0x3b0705){if(_0x3b0705){_0x1751b7[_0x5c2c('0x47')]=_[_0x5c2c('0x43')](db[_0x5c2c('0x72')][_0x5c2c('0x3e')]);_0x1751b7[_0x5c2c('0x44')]=_['keys'](_0x49ebd1[_0x5c2c('0x44')]);_0x1751b7[_0x5c2c('0x45')]=_[_0x5c2c('0x46')](_0x1751b7[_0x5c2c('0x47')],_0x1751b7[_0x5c2c('0x44')]);_0x44808c['attributes']=_[_0x5c2c('0x46')](_0x1751b7[_0x5c2c('0x47')],qs['fields'](_0x49ebd1[_0x5c2c('0x44')][_0x5c2c('0x49')]));_0x44808c[_0x5c2c('0x48')]=_0x44808c[_0x5c2c('0x48')][_0x5c2c('0x4a')]?_0x44808c['attributes']:_0x1751b7[_0x5c2c('0x47')];if(!_0x49ebd1[_0x5c2c('0x44')][_0x5c2c('0x4b')]('nolimit')){_0x44808c[_0x5c2c('0x33')]=qs['limit'](_0x49ebd1[_0x5c2c('0x44')][_0x5c2c('0x33')]);_0x44808c['offset']=qs['offset'](_0x49ebd1[_0x5c2c('0x44')]['offset']);}_0x44808c[_0x5c2c('0x73')]=qs[_0x5c2c('0x4d')](_0x49ebd1[_0x5c2c('0x44')]['sort']);_0x44808c['where']=qs['filters'](_[_0x5c2c('0x6d')](_0x49ebd1[_0x5c2c('0x44')],_0x1751b7['filters']));_0x44808c[_0x5c2c('0x4e')][_0x5c2c('0x6e')]=_0x3b0705['id'];if(_0x49ebd1[_0x5c2c('0x44')][_0x5c2c('0x50')]){_0x44808c['where']=_['merge'](_0x44808c[_0x5c2c('0x4e')],{'$or':_['map'](_0x44808c[_0x5c2c('0x48')],function(_0x5a7f9e){var _0x55c668={};_0x55c668[_0x5a7f9e]={'$like':'%'+_0x49ebd1['query'][_0x5c2c('0x50')]+'%'};return _0x55c668;})});}_0x44808c=_[_0x5c2c('0x51')]({},_0x44808c,_0x49ebd1[_0x5c2c('0x52')]);return db[_0x5c2c('0x72')][_0x5c2c('0x34')]({'where':_0x44808c[_0x5c2c('0x4e')]})['then'](function(_0x45a0ee){_0x48b329[_0x5c2c('0x34')]=_0x45a0ee;if(_0x49ebd1[_0x5c2c('0x44')]['includeAll']){_0x44808c[_0x5c2c('0x53')]=[{'all':!![]}];}return db[_0x5c2c('0x72')][_0x5c2c('0x54')](_0x44808c);})['then'](function(_0x55a74c){_0x48b329[_0x5c2c('0x55')]=_0x55a74c;return _0x48b329;});}})[_0x5c2c('0x24')](respondWithFilteredResult(_0x3634c5,_0x44808c))['catch'](handleError(_0x3634c5,null));};exports[_0x5c2c('0x74')]=function(_0x8dd951,_0x4b8d8f,_0x1598f6){return db[_0x5c2c('0x3d')]['find']({'where':{'id':_0x8dd951[_0x5c2c('0x58')]['id']}})['then'](handleEntityNotFound(_0x4b8d8f,null))[_0x5c2c('0x24')](function(_0x4c73ca){if(_0x4c73ca){return _0x4c73ca[_0x5c2c('0x74')](_0x8dd951['query']['ids']);}})[_0x5c2c('0x24')](respondWithStatusCode(_0x4b8d8f,null))['catch'](handleError(_0x4b8d8f,null));};exports[_0x5c2c('0x75')]=function(_0x34b9ed,_0x168f0d,_0x455b73){var _0x58e348={'channel':_0x5c2c('0x76')};var _0x10ffc8=[];var _0x4137c8=[];var _0x475c01={};return db[_0x5c2c('0x3d')][_0x5c2c('0x65')]({'where':{'id':_0x34b9ed[_0x5c2c('0x58')]['id']},'include':[{'model':db[_0x5c2c('0x77')],'as':_0x5c2c('0x78')}]})[_0x5c2c('0x24')](handleEntityNotFound(_0x168f0d,null))[_0x5c2c('0x24')](function(_0x13adc7){_0x58e348['account']=_0x13adc7;_0x58e348[_0x5c2c('0x79')]=_[_0x5c2c('0x7a')](_0x13adc7[_0x5c2c('0x78')],[_0x5c2c('0x7b')],[_0x5c2c('0x7c')]);if(_0x58e348[_0x5c2c('0x7d')]['Applications']){delete _0x58e348[_0x5c2c('0x7d')]['Applications'];}return db[_0x5c2c('0x7e')][_0x5c2c('0x68')]();})[_0x5c2c('0x24')](function(_0x40809a){if(!_0x40809a){throw new db['Sequelize'][(_0x5c2c('0x7f'))]('no\x20available\x20attributes');}_0x10ffc8=_[_0x5c2c('0x80')](_[_0x5c2c('0x43')](_0x40809a),[_0x5c2c('0x81'),'updatedAt']);_0x4137c8=_[_0x5c2c('0x80')](_['keys'](_0x40809a),['createdAt',_0x5c2c('0x82'),_0x5c2c('0x83'),_0x5c2c('0x84')]);_0x58e348[_0x5c2c('0x5b')]={'mapKey':'mobile'};if(_0x58e348[_0x5c2c('0x7d')][_0x5c2c('0x40')]){switch(_0x58e348['account'][_0x5c2c('0x40')]){case _0x5c2c('0x85'):_0x58e348[_0x5c2c('0x5b')][_0x5c2c('0x86')]=_0x34b9ed['body'][_0x5c2c('0x87')];_0x58e348[_0x5c2c('0x5b')][_0x5c2c('0x5b')]=_0x34b9ed['body'][_0x5c2c('0x88')];_0x58e348[_0x5c2c('0x5b')][_0x5c2c('0x89')]=_0x34b9ed['body'][_0x5c2c('0x8a')];break;case _0x5c2c('0x8b'):_0x58e348[_0x5c2c('0x5b')][_0x5c2c('0x86')]='+'+_0x34b9ed[_0x5c2c('0x5b')]['sender'];_0x58e348[_0x5c2c('0x5b')][_0x5c2c('0x5b')]=_0x34b9ed[_0x5c2c('0x5b')]['text'];break;case _0x5c2c('0x8c'):_0x58e348[_0x5c2c('0x5b')][_0x5c2c('0x86')]=_0x34b9ed['body'][_0x5c2c('0x86')];_0x58e348['body'][_0x5c2c('0x5b')]=_0x34b9ed[_0x5c2c('0x5b')][_0x5c2c('0x2b')];break;case _0x5c2c('0x8d'):_0x58e348[_0x5c2c('0x5b')][_0x5c2c('0x86')]=_0x34b9ed[_0x5c2c('0x5b')]['from'];_0x58e348[_0x5c2c('0x5b')][_0x5c2c('0x5b')]=_0x34b9ed[_0x5c2c('0x5b')][_0x5c2c('0x5b')];_0x58e348[_0x5c2c('0x5b')][_0x5c2c('0x89')]=_0x34b9ed[_0x5c2c('0x5b')][_0x5c2c('0x8e')];break;case'plivo':_0x58e348[_0x5c2c('0x5b')][_0x5c2c('0x86')]=_0x34b9ed['body'][_0x5c2c('0x87')];_0x58e348[_0x5c2c('0x5b')][_0x5c2c('0x5b')]=_0x34b9ed[_0x5c2c('0x5b')][_0x5c2c('0x8f')];_0x58e348['body'][_0x5c2c('0x89')]=_0x34b9ed['body'][_0x5c2c('0x90')];break;case _0x5c2c('0x91'):_0x58e348[_0x5c2c('0x5b')][_0x5c2c('0x86')]='+'+_0x34b9ed[_0x5c2c('0x5b')]['results'][0x0][_0x5c2c('0x86')];_0x58e348[_0x5c2c('0x5b')][_0x5c2c('0x5b')]=_0x34b9ed[_0x5c2c('0x5b')][_0x5c2c('0x92')][0x0][_0x5c2c('0x93')];_0x58e348[_0x5c2c('0x5b')][_0x5c2c('0x89')]=_0x34b9ed['body'][_0x5c2c('0x92')][0x0][_0x5c2c('0x89')];break;case _0x5c2c('0x94'):_0x58e348['body'][_0x5c2c('0x86')]=_0x34b9ed[_0x5c2c('0x5b')][_0x5c2c('0x95')];_0x58e348[_0x5c2c('0x5b')][_0x5c2c('0x5b')]=_0x34b9ed[_0x5c2c('0x5b')]['segmentedMessage'][_0x5c2c('0x2b')];break;case'clickatell':_0x58e348[_0x5c2c('0x5b')][_0x5c2c('0x86')]=_0x34b9ed[_0x5c2c('0x5b')][_0x5c2c('0x96')];_0x58e348[_0x5c2c('0x5b')]['body']=_0x34b9ed[_0x5c2c('0x5b')][_0x5c2c('0x93')];_0x58e348['body'][_0x5c2c('0x89')]=_0x34b9ed[_0x5c2c('0x5b')][_0x5c2c('0x97')];break;case _0x5c2c('0x98'):_0x58e348[_0x5c2c('0x5b')][_0x5c2c('0x89')]=_0x34b9ed[_0x5c2c('0x5b')][0x0][_0x5c2c('0x2b')]['id'];_0x58e348[_0x5c2c('0x5b')]['from']=_0x34b9ed[_0x5c2c('0x5b')][0x0][_0x5c2c('0x2b')][_0x5c2c('0x86')];_0x58e348['body'][_0x5c2c('0x5b')]=_0x34b9ed[_0x5c2c('0x5b')][0x0][_0x5c2c('0x2b')][_0x5c2c('0x93')];break;case'intelepeer':_0x58e348['body'][_0x5c2c('0x86')]=_0x34b9ed[_0x5c2c('0x5b')][_0x5c2c('0x86')];_0x58e348[_0x5c2c('0x5b')][_0x5c2c('0x5b')]=_0x34b9ed['body'][_0x5c2c('0x2b')];_0x58e348['body']['messageId']=_0x34b9ed['body'][_0x5c2c('0x99')];break;}}if(_0x58e348[_0x5c2c('0x5b')]['id']){delete _0x58e348[_0x5c2c('0x5b')]['id'];}if(_[_0x5c2c('0x9a')](_0x58e348[_0x5c2c('0x5b')]['from'])){throw new db[(_0x5c2c('0x9b'))][(_0x5c2c('0x7f'))]('from\x20is\x20mandatory');}if(_['isNil'](_0x58e348[_0x5c2c('0x5b')][_0x5c2c('0x5b')])||_0x58e348[_0x5c2c('0x5b')][_0x5c2c('0x5b')]===''){throw new db[(_0x5c2c('0x9b'))][(_0x5c2c('0x7f'))]('body\x20is\x20mandatory\x20and\x20not\x20empty');}if(_[_0x5c2c('0x9a')](_0x58e348[_0x5c2c('0x5b')][_0x5c2c('0x9c')])){throw new db[(_0x5c2c('0x9b'))][(_0x5c2c('0x7f'))](_0x5c2c('0x9d')+_0x4137c8);}if(!_[_0x5c2c('0x9e')](_0x4137c8,_0x58e348[_0x5c2c('0x5b')][_0x5c2c('0x9c')])){throw new db[(_0x5c2c('0x9b'))][(_0x5c2c('0x7f'))](_0x5c2c('0x9f')+_0x4137c8);}_0x475c01[_0x58e348[_0x5c2c('0x5b')]['mapKey']]=_0x58e348[_0x5c2c('0x5b')]['from'];return db[_0x5c2c('0xa0')][_0x5c2c('0x65')]({'where':{'id':_0x58e348[_0x5c2c('0x7d')]['ListId']},'include':[{'model':db[_0x5c2c('0x7e')],'as':_0x5c2c('0xa1'),'where':_0x475c01,'limit':0x1,'order':[[_0x5c2c('0x82'),'DESC']]}]});})['then'](handleEntityNotFound(_0x168f0d,null))[_0x5c2c('0x24')](function(_0x16f3a9){if(_0x16f3a9){_0x58e348[_0x5c2c('0xa2')]=_['omit'](_0x16f3a9,['Contacts']);if(_0x16f3a9[_0x5c2c('0xa1')][_0x5c2c('0x4a')]){return _0x16f3a9[_0x5c2c('0xa1')][0x0];}var _0x5e0709=_[_0x5c2c('0x1c')](_0x58e348['body'],{'firstName':_0x58e348[_0x5c2c('0x5b')][_0x5c2c('0x86')],'ListId':_0x16f3a9['id']});_0x5e0709[_0x58e348[_0x5c2c('0x5b')][_0x5c2c('0x9c')]]=_0x58e348[_0x5c2c('0x5b')][_0x5c2c('0x86')];return db[_0x5c2c('0x7e')][_0x5c2c('0x5a')](_0x5e0709,{'fields':_0x10ffc8,'raw':!![]});}})[_0x5c2c('0x24')](handleEntityNotFound(_0x168f0d,null))[_0x5c2c('0x24')](function(_0x5a2c91){if(_0x5a2c91){_0x58e348['contact']=_0x5a2c91;var _0x37833a={'ContactId':_0x5a2c91['id'],'phone':_0x58e348['body'][_0x5c2c('0x86')],'SmsAccountId':_0x34b9ed['params']['id']};var _0x15a51a={'ContactId':_0x5a2c91['id'],'SmsAccountId':_0x34b9ed[_0x5c2c('0x58')]['id'],'closed':![]};return db[_0x5c2c('0xa3')][_0x5c2c('0x65')]({'where':_0x15a51a})[_0x5c2c('0x24')](function(_0x5e6a96){if(_0x5e6a96){return[_0x5e6a96,![]];}return db[_0x5c2c('0xa3')][_0x5c2c('0x5a')](_0x37833a)[_0x5c2c('0x24')](function(_0x3cf658){return[_0x3cf658,!![]];});});}})['spread'](function(_0x24f1e3,_0x16a1aa){_0x58e348[_0x5c2c('0xa4')]=_0x24f1e3[_0x5c2c('0x5d')]({'plain':!![]});_0x58e348[_0x5c2c('0xa4')][_0x5c2c('0xa5')]=![];if(_0x16a1aa){if(_0x58e348[_0x5c2c('0x7d')][_0x5c2c('0xa6')]){_0x58e348['applications'][_0x5c2c('0xa7')]({'id':0x0,'priority':_0x58e348[_0x5c2c('0x79')][_0x5c2c('0x4a')]+0x1,'app':_0x5c2c('0xa8'),'appdata':_0x5c2c('0xa9'),'interval':_0x5c2c('0xaa')});}_0x58e348[_0x5c2c('0xa4')][_0x5c2c('0xa5')]=!![];}return db['SmsMessage'][_0x5c2c('0x5a')]({'phone':_0x58e348[_0x5c2c('0x5b')][_0x5c2c('0x86')],'messageId':_0x58e348[_0x5c2c('0x5b')][_0x5c2c('0x89')],'body':_0x58e348['body']['body'],'SmsAccountId':_0x34b9ed['params']['id'],'SmsInteractionId':_0x24f1e3['id'],'direction':'in','ContactId':_0x24f1e3[_0x5c2c('0xab')],'AttachmentId':_0x58e348[_0x5c2c('0x5b')][_0x5c2c('0xac')]});})[_0x5c2c('0x24')](function(_0x1c702e){_0x58e348['message']=_0x1c702e;if(_0x58e348[_0x5c2c('0xa4')][_0x5c2c('0xad')]){return db[_0x5c2c('0xae')][_0x5c2c('0x65')]({'attributes':['id',_0x5c2c('0x39')],'where':{'id':_0x58e348[_0x5c2c('0xa4')][_0x5c2c('0xad')]}})[_0x5c2c('0x24')](function(_0x3d8f25){if(_0x3d8f25){_0x58e348[_0x5c2c('0x79')]['unshift']({'id':0x0,'priority':0x0,'app':_0x5c2c('0xaf'),'appdata':_0x3d8f25['name']+','+(_0x58e348[_0x5c2c('0x7d')][_0x5c2c('0xb0')]||0xa),'interval':_0x5c2c('0xaa')});}return respondWithRpcPromise(_0x5c2c('0xb1'),_0x5c2c('0xb2'),_0x58e348);});}return respondWithRpcPromise('Start',_0x5c2c('0xb2'),_0x58e348);})[_0x5c2c('0x24')](function(_0x3753fe){if(_0x3753fe){var _0x5c0408=0xc8;var _0xa3200f='receiveMessage';logger[_0x5c2c('0x25')](_0x5c2c('0x28'),_0xa3200f,_0x5c0408,_0x5c2c('0xb3'));logger[_0x5c2c('0xb4')]('SmsAccount,\x20%s,\x20%s,\x20%s,\x20%s',_0xa3200f,_0x5c0408,_0x5c2c('0xb3'),JSON[_0x5c2c('0x29')](_0x3753fe));if(_0x58e348[_0x5c2c('0x7d')]['type']===_0x5c2c('0x85')){return _0x168f0d['status'](_0x5c0408)['set']('Content-Type',_0x5c2c('0xb5'))[_0x5c2c('0x3a')]('<?xml\x20version=\x221.0\x22\x20encoding=\x22UTF-8\x22?>\x0a<Response></Response>');}else{return _0x168f0d[_0x5c2c('0x2e')](_0x5c0408)[_0x5c2c('0x30')](_0x3753fe);}}})[_0x5c2c('0x56')](handleError(_0x168f0d,null));};exports['addApplications']=function(_0x163dbd,_0x2f2939,_0x4d4f0f){return db[_0x5c2c('0x3d')]['findOne']({'where':{'id':_0x163dbd[_0x5c2c('0x58')]['id']}})[_0x5c2c('0x24')](handleEntityNotFound(_0x2f2939,null))[_0x5c2c('0x24')](function(_0xa4233f){if(_0xa4233f){return db[_0x5c2c('0xb6')]['transaction'](function(_0x119680){return db[_0x5c2c('0x77')][_0x5c2c('0x67')]({'where':{'SmsAccountId':_0x163dbd[_0x5c2c('0x58')]['id']},'transaction':_0x119680})[_0x5c2c('0x24')](function(_0x42c8d9){var _0x46a41a=_[_0x5c2c('0x42')](_0x163dbd[_0x5c2c('0x5b')],function(_0x3fdbd3){_0x3fdbd3[_0x5c2c('0x6e')]=_0x163dbd[_0x5c2c('0x58')]['id'];return _0x3fdbd3;});return db[_0x5c2c('0x77')][_0x5c2c('0xb7')](_0x46a41a,{'transaction':_0x119680});});})[_0x5c2c('0x24')](function(){return db['SmsApplication'][_0x5c2c('0xb8')]({'where':{'SmsAccountId':_0x163dbd[_0x5c2c('0x58')]['id']},'order':'priority'});});}})[_0x5c2c('0x24')](respondWithResult(_0x2f2939,null))['catch'](handleError(_0x2f2939,null));};exports[_0x5c2c('0xb9')]=function(_0x5c570c,_0x320340,_0x2985dd){var _0x1aa1b9={};var _0xb74a5f={};var _0x17215c;var _0x321700;return db['SmsAccount']['findOne']({'where':{'id':_0x5c570c[_0x5c2c('0x58')]['id']}})['then'](handleEntityNotFound(_0x320340,null))[_0x5c2c('0x24')](function(_0x52f9b5){if(_0x52f9b5){_0x17215c=_0x52f9b5;_0xb74a5f[_0x5c2c('0x47')]=_[_0x5c2c('0x43')](db[_0x5c2c('0x77')][_0x5c2c('0x3e')]);_0xb74a5f[_0x5c2c('0x44')]=_[_0x5c2c('0x43')](_0x5c570c[_0x5c2c('0x44')]);_0xb74a5f['filters']=_['intersection'](_0xb74a5f[_0x5c2c('0x47')],_0xb74a5f['query']);_0x1aa1b9[_0x5c2c('0x48')]=_[_0x5c2c('0x46')](_0xb74a5f[_0x5c2c('0x47')],qs[_0x5c2c('0x49')](_0x5c570c[_0x5c2c('0x44')][_0x5c2c('0x49')]));_0x1aa1b9['attributes']=_0x1aa1b9['attributes'][_0x5c2c('0x4a')]?_0x1aa1b9[_0x5c2c('0x48')]:_0xb74a5f[_0x5c2c('0x47')];_0x1aa1b9[_0x5c2c('0x73')]=qs['sort'](_0x5c570c['query']['sort']);_0x1aa1b9['where']=qs[_0x5c2c('0x45')](_[_0x5c2c('0x6d')](_0x5c570c[_0x5c2c('0x44')],_0xb74a5f[_0x5c2c('0x45')]));if(_0x5c570c[_0x5c2c('0x44')]['filter']){_0x1aa1b9[_0x5c2c('0x4e')]=_[_0x5c2c('0x51')](_0x1aa1b9['where'],{'$or':_['map'](_0x1aa1b9[_0x5c2c('0x48')],function(_0x1bbf54){var _0x443f64={};_0x443f64[_0x1bbf54]={'$like':'%'+_0x5c570c['query'][_0x5c2c('0x50')]+'%'};return _0x443f64;})});}_0x1aa1b9=_[_0x5c2c('0x51')]({},_0x1aa1b9,_0x5c570c['options']);return _0x17215c['getApplications'](_0x1aa1b9);}})[_0x5c2c('0x24')](function(_0x1e7920){if(_0x1e7920){_0x321700=_0x1e7920[_0x5c2c('0x4a')];if(!_0x5c570c[_0x5c2c('0x44')]['hasOwnProperty']('nolimit')){_0x1aa1b9[_0x5c2c('0x33')]=qs[_0x5c2c('0x33')](_0x5c570c[_0x5c2c('0x44')][_0x5c2c('0x33')]);_0x1aa1b9[_0x5c2c('0x31')]=qs['offset'](_0x5c570c[_0x5c2c('0x44')][_0x5c2c('0x31')]);}return _0x17215c['getApplications'](_0x1aa1b9);}})[_0x5c2c('0x24')](function(_0x42f7b0){if(_0x42f7b0){return _0x42f7b0?{'count':_0x321700,'rows':_0x42f7b0}:null;}})[_0x5c2c('0x24')](respondWithResult(_0x320340,null))[_0x5c2c('0x56')](handleError(_0x320340,null));};exports[_0x5c2c('0xba')]=function(_0x298546,_0x5dd7c5,_0x31b4af){var _0x2824f0={'raw':![],'where':{}};var _0xb5a934={};var _0x42f8f5={'count':0x0,'rows':[]};return db[_0x5c2c('0x3d')][_0x5c2c('0x6c')]({'where':{'id':_0x298546['params']['id']}})[_0x5c2c('0x24')](handleEntityNotFound(_0x5dd7c5,null))['then'](function(_0xfdb4d3){if(_0xfdb4d3){_0xb5a934[_0x5c2c('0x47')]=_['keys'](db['SmsInteraction'][_0x5c2c('0x3e')]);_0xb5a934[_0x5c2c('0x44')]=_[_0x5c2c('0x43')](_0x298546['query']);_0xb5a934['filters']=_[_0x5c2c('0x46')](_0xb5a934[_0x5c2c('0x47')],_0xb5a934['query']);_0x2824f0[_0x5c2c('0x48')]=_[_0x5c2c('0x46')](_0xb5a934[_0x5c2c('0x47')],qs['fields'](_0x298546['query'][_0x5c2c('0x49')]));_0x2824f0[_0x5c2c('0x48')]=_0x2824f0[_0x5c2c('0x48')][_0x5c2c('0x4a')]?_0x2824f0[_0x5c2c('0x48')]:_0xb5a934[_0x5c2c('0x47')];if(!_0x298546[_0x5c2c('0x44')][_0x5c2c('0x4b')](_0x5c2c('0x4c'))){_0x2824f0[_0x5c2c('0x33')]=qs[_0x5c2c('0x33')](_0x298546[_0x5c2c('0x44')][_0x5c2c('0x33')]);_0x2824f0[_0x5c2c('0x31')]=qs['offset'](_0x298546['query'][_0x5c2c('0x31')]);}_0x2824f0[_0x5c2c('0x73')]=qs[_0x5c2c('0x4d')](_0x298546['query']['sort']);_0x2824f0[_0x5c2c('0x4e')]=qs[_0x5c2c('0x45')](_['pick'](_0x298546['query'],_0xb5a934[_0x5c2c('0x45')]));_0x2824f0[_0x5c2c('0x4e')][_0x5c2c('0x6e')]=_0xfdb4d3['id'];if(_0x298546['query'][_0x5c2c('0x50')]){_0x2824f0['where']=_[_0x5c2c('0x51')](_0x2824f0['where'],{'$or':_[_0x5c2c('0x42')](_0x2824f0[_0x5c2c('0x48')],function(_0x87f6c0){var _0x33ea5b={};_0x33ea5b[_0x87f6c0]={'$like':'%'+_0x298546[_0x5c2c('0x44')][_0x5c2c('0x50')]+'%'};return _0x33ea5b;})});}_0x2824f0=_['merge']({},_0x2824f0,_0x298546[_0x5c2c('0x52')]);return db[_0x5c2c('0xa3')][_0x5c2c('0x34')]({'where':_0x2824f0['where']})['then'](function(_0x4c0564){_0x42f8f5[_0x5c2c('0x34')]=_0x4c0564;if(_0x298546['query'][_0x5c2c('0x59')]){_0x2824f0[_0x5c2c('0x53')]=[{'model':db[_0x5c2c('0x7e')],'as':_0x5c2c('0xbb'),'required':![]},{'model':db[_0x5c2c('0xae')],'as':_0x5c2c('0xbc'),'attributes':[_0x5c2c('0x39'),'fullname',_0x5c2c('0xbd')],'required':![]},{'model':db[_0x5c2c('0xbe')],'as':_0x5c2c('0xbf'),'attributes':['id',_0x5c2c('0x39'),_0x5c2c('0xc0')],'where':_0x298546[_0x5c2c('0x44')][_0x5c2c('0xc1')]?{'id':_0x298546['query'][_0x5c2c('0xc1')]}:undefined,'required':_0x298546[_0x5c2c('0x44')][_0x5c2c('0xc1')]?!![]:![]}];}return db[_0x5c2c('0xa3')][_0x5c2c('0x54')](_0x2824f0);})[_0x5c2c('0x24')](function(_0x45269b){_0x42f8f5['rows']=_0x45269b;return _0x42f8f5;});}})[_0x5c2c('0x24')](respondWithFilteredResult(_0x5dd7c5,_0x2824f0))[_0x5c2c('0x56')](handleError(_0x5dd7c5,null));};exports[_0x5c2c('0x3a')]=function(_0x48afec,_0xf5f9ca,_0x2d6ee7){var _0x383859,_0x2ff4cc,_0x2bcce2;if(_[_0x5c2c('0x9a')](_0x48afec[_0x5c2c('0x5b')][_0x5c2c('0x5b')])||_0x48afec[_0x5c2c('0x5b')][_0x5c2c('0x5b')]===''){throw new db[(_0x5c2c('0x9b'))][(_0x5c2c('0x7f'))](_0x5c2c('0xc2'));}if(_[_0x5c2c('0x9a')](_0x48afec[_0x5c2c('0x5b')]['to'])){throw new db['Sequelize'][(_0x5c2c('0x7f'))](_0x5c2c('0xc3'));}_0x383859=_0x48afec[_0x5c2c('0x5b')]['to'];return db[_0x5c2c('0x3d')][_0x5c2c('0x65')]({'where':{'id':_0x48afec[_0x5c2c('0x58')]['id']},'include':[{'model':db[_0x5c2c('0xa0')],'as':_0x5c2c('0xc4'),'include':[{'model':db[_0x5c2c('0x7e')],'as':_0x5c2c('0xa1'),'where':{'mobile':_0x383859},'limit':0x1,'order':[[_0x5c2c('0x82'),_0x5c2c('0xc5')]]}]}]})[_0x5c2c('0x24')](handleEntityNotFound(_0xf5f9ca,null))[_0x5c2c('0x24')](function(_0x48cfa7){if(_0x48cfa7&&_0x48cfa7[_0x5c2c('0xc4')]){_0x2ff4cc=_0x48cfa7['get']({'plain':!![]});if(_0x2ff4cc[_0x5c2c('0xc4')]&&_0x2ff4cc[_0x5c2c('0xc4')][_0x5c2c('0xa1')][_0x5c2c('0x4a')]){return _0x2ff4cc[_0x5c2c('0xc4')][_0x5c2c('0xa1')][0x0];}return db[_0x5c2c('0x7e')]['create'](_[_0x5c2c('0x1c')](_0x48afec[_0x5c2c('0x5b')],{'firstName':_0x383859,'mobile':_0x383859,'phone':_0x383859,'ListId':_0x2ff4cc['ListId']}));}})[_0x5c2c('0x24')](handleEntityNotFound(_0xf5f9ca,null))[_0x5c2c('0x24')](function(_0x36cc3a){if(_0x36cc3a){_0x2bcce2=_0x36cc3a;return db[_0x5c2c('0xa3')]['find']({'where':{'ContactId':_0x2bcce2['id'],'closed':![],'SmsAccountId':_0x2ff4cc['id']}})[_0x5c2c('0x24')](function(_0x2c245b){if(_0x2c245b){return[_0x2c245b,![]];}return db[_0x5c2c('0xa3')][_0x5c2c('0x5a')]({'UserId':_0x48afec[_0x5c2c('0x5c')]['id'],'ContactId':_0x2bcce2['id'],'SmsAccountId':_0x2ff4cc['id'],'phone':_0x383859,'firstMsgDirection':_0x5c2c('0xc6'),'Messages':[_[_0x5c2c('0x51')](_0x48afec[_0x5c2c('0x5b')],{'read':![],'body':_0x48afec['body'][_0x5c2c('0x5b')],'phone':_0x383859,'SmsAccountId':_0x2ff4cc['id'],'UserId':_0x48afec[_0x5c2c('0x5c')]['id'],'ContactId':_0x2bcce2['id']})]},{'include':[{'model':db[_0x5c2c('0xc7')],'as':'Messages'}]})[_0x5c2c('0x24')](function(_0x1a9e3f){return[_0x1a9e3f,!![]];});});}})['spread'](function(_0x16a519,_0x4bdd8d){if(_0x4bdd8d){return _0x16a519;}return db[_0x5c2c('0xc7')][_0x5c2c('0x5a')](_[_0x5c2c('0x51')](_0x48afec[_0x5c2c('0x5b')],{'read':![],'body':_0x48afec[_0x5c2c('0x5b')][_0x5c2c('0x5b')],'phone':_0x383859,'SmsAccountId':_0x2ff4cc['id'],'SmsInteractionId':_0x16a519['id'],'UserId':_0x48afec[_0x5c2c('0x5c')]['id'],'ContactId':_0x2bcce2['id']}))[_0x5c2c('0x24')](function(_0x5330af){_0x16a519[_0x5c2c('0xc8')][_0x5c2c('0xc9')]=[];_0x16a519[_0x5c2c('0xc8')][_0x5c2c('0xc9')][_0x5c2c('0xa7')](_0x5330af[_0x5c2c('0xc8')]);return _0x16a519;});})[_0x5c2c('0x24')](respondWithResult(_0xf5f9ca,null))[_0x5c2c('0x56')](handleError(_0xf5f9ca,null));};exports['status']=function(_0x5c2dd7,_0xe486e1,_0xe68f8f){if(_0x5c2dd7[_0x5c2c('0x5b')]['id']){delete _0x5c2dd7[_0x5c2c('0x5b')]['id'];}var _0x354dc3,_0x22d0de,_0x10a53d;return db[_0x5c2c('0x3d')][_0x5c2c('0x65')]({'where':{'id':_0x5c2dd7[_0x5c2c('0x58')]['id']}})['then'](handleEntityNotFound(_0xe486e1,null))[_0x5c2c('0x24')](function(_0x290b77){if(_0x290b77){_0x10a53d=_0x290b77;logger['debug'](_0x5c2c('0x28'),_0x5c2c('0x2e'),_0x5c2c('0xca'),_0x290b77[_0x5c2c('0x40')],util[_0x5c2c('0xcb')](_0x5c2dd7[_0x5c2c('0x5b')],{'showHidden':![],'depth':null}));switch(_0x290b77[_0x5c2c('0x40')]){case _0x5c2c('0x8b'):if(_0x5c2dd7[_0x5c2c('0x5b')]['skebby_dispatch_id']&&_0x5c2dd7[_0x5c2c('0x5b')][_0x5c2c('0x2e')]){_0x22d0de=_0x5c2dd7['body'][_0x5c2c('0x2e')];return db[_0x5c2c('0xc7')][_0x5c2c('0x65')]({'where':{'messageId':_0x5c2dd7[_0x5c2c('0x5b')]['skebby_dispatch_id']}});}break;case'connectel':if(_0x5c2dd7[_0x5c2c('0x5b')]['requestid']&&_0x5c2dd7['body'][_0x5c2c('0xcc')]){_0x22d0de=_0x5c2dd7[_0x5c2c('0x5b')]['statusInt'];return db[_0x5c2c('0xc7')][_0x5c2c('0x65')]({'where':{'messageId':_0x5c2dd7[_0x5c2c('0x5b')][_0x5c2c('0xcd')]}});}break;case _0x5c2c('0x8d'):if(_0x5c2dd7[_0x5c2c('0x5b')][_0x5c2c('0x8e')]&&_0x5c2dd7[_0x5c2c('0x5b')][_0x5c2c('0xce')]){_0x22d0de=_0x5c2dd7[_0x5c2c('0x5b')][_0x5c2c('0xce')];return db[_0x5c2c('0xc7')][_0x5c2c('0x65')]({'where':{'messageId':_0x5c2dd7[_0x5c2c('0x5b')][_0x5c2c('0x8e')]}});}break;case _0x5c2c('0x91'):var _0x2adbb7=_0x5c2dd7[_0x5c2c('0x5b')][_0x5c2c('0x92')][0x0];if(_0x2adbb7[_0x5c2c('0x89')]&&_0x2adbb7[_0x5c2c('0x2e')][_0x5c2c('0xcf')]===_0x5c2c('0xd0')){_0x22d0de=_0x2adbb7[_0x5c2c('0x2e')]['groupName'];return db[_0x5c2c('0xc7')][_0x5c2c('0x65')]({'where':{'messageId':_0x2adbb7[_0x5c2c('0x89')]}});}break;case _0x5c2c('0xd1'):if(_0x5c2dd7[_0x5c2c('0x5b')][_0x5c2c('0x89')]&&_0x5c2dd7[_0x5c2c('0x5b')][_0x5c2c('0x2e')]){_0x22d0de=_0x5c2dd7['body'][_0x5c2c('0x2e')];return db['SmsMessage'][_0x5c2c('0x65')]({'where':{'messageId':_0x5c2dd7[_0x5c2c('0x5b')][_0x5c2c('0x89')]}});}break;case _0x5c2c('0x98'):if(_0x5c2dd7[_0x5c2c('0x5b')][0x0][_0x5c2c('0x2b')]['id']){_0x22d0de=_0x5c2dd7[_0x5c2c('0x5b')][0x0][_0x5c2c('0x40')];return db[_0x5c2c('0xc7')][_0x5c2c('0x65')]({'where':{'messageId':_0x5c2dd7['body'][0x0][_0x5c2c('0x2b')]['id']}});}break;case _0x5c2c('0xd2'):if(_0x5c2dd7[_0x5c2c('0x5b')]['redif']&&_0x5c2dd7[_0x5c2c('0x5b')]['status']){_0x22d0de=_0x5c2dd7[_0x5c2c('0x5b')][_0x5c2c('0x2e')];return db[_0x5c2c('0xc7')][_0x5c2c('0x65')]({'where':{'messageId':_0x5c2dd7[_0x5c2c('0x5b')]['redif']}});}break;}}})['then'](handleEntityNotFound(_0xe486e1,null))['then'](function(_0x43ebef){if(_0x43ebef){_0x354dc3=_0x43ebef;switch(_0x10a53d[_0x5c2c('0x40')]){case _0x5c2c('0x8b'):if(_0x22d0de===_0x5c2c('0xd0')){return _0x354dc3['update']({'read':!![]});}else{logger['error'](_0x5c2c('0x28'),_0x5c2c('0x2e'),_0x5c2c('0x8b'),util[_0x5c2c('0xcb')](_0x5c2dd7[_0x5c2c('0x5b')],{'showHidden':![],'depth':null}));}break;case _0x5c2c('0x8c'):if(_0x22d0de==='1'){return _0x354dc3[_0x5c2c('0x64')]({'read':!![]});}else{logger[_0x5c2c('0x2a')](_0x5c2c('0x28'),_0x5c2c('0x2e'),'skebby',util['inspect'](_0x5c2dd7[_0x5c2c('0x5b')],{'showHidden':![],'depth':null}));}break;case _0x5c2c('0x8d'):if(!_0x5c2dd7[_0x5c2c('0x5b')][_0x5c2c('0xd3')]&&_0x22d0de>=0xc8&&_0x22d0de<=0xce){return _0x354dc3['update']({'read':!![]});}else{logger[_0x5c2c('0x2a')](_0x5c2c('0x28'),'status',_0x5c2c('0x8d'),util[_0x5c2c('0xcb')](_0x5c2dd7[_0x5c2c('0x5b')],{'showHidden':![],'depth':null}));}break;case _0x5c2c('0x91'):var _0xb60f98=_0x5c2dd7[_0x5c2c('0x5b')][_0x5c2c('0x92')][0x0];if(_0xb60f98[_0x5c2c('0x2e')][_0x5c2c('0xcf')]===_0x5c2c('0xd0')){return _0x354dc3[_0x5c2c('0x64')]({'read':!![]});}else{logger[_0x5c2c('0x2a')]('SmsAccount,\x20%s,\x20%s,\x20%s','status',_0x5c2c('0x91'),util[_0x5c2c('0xcb')](_0x5c2dd7[_0x5c2c('0x5b')],{'showHidden':![],'depth':null}));}break;case _0x5c2c('0xd1'):if(_0x22d0de==_0x5c2c('0xd4')||_0x22d0de==_0x5c2c('0xd5')){return _0x354dc3[_0x5c2c('0x64')]({'read':!![]});}else{logger[_0x5c2c('0x2a')](_0x5c2c('0x28'),_0x5c2c('0x2e'),_0x5c2c('0xd1'),util['inspect'](_0x5c2dd7['body'],{'showHidden':![],'depth':null}));}break;case _0x5c2c('0x98'):if(_0x22d0de==_0x5c2c('0xd6')){return _0x354dc3[_0x5c2c('0x64')]({'read':!![]});}else{logger['error'](_0x5c2c('0x28'),'status',_0x5c2c('0x98'),util[_0x5c2c('0xcb')](_0x5c2dd7[_0x5c2c('0x5b')],{'showHidden':![],'depth':null}));}break;case'intelepeer':if(_0x22d0de===_0x5c2c('0xd7')||_0x22d0de===_0x5c2c('0xd8')){return _0x354dc3[_0x5c2c('0x64')]({'read':!![]});}else{logger[_0x5c2c('0x2a')](_0x5c2c('0x28'),_0x5c2c('0x2e'),_0x5c2c('0xd2'),util[_0x5c2c('0xcb')](_0x5c2dd7['body'],{'showHidden':![],'depth':null}));}break;}return _0x354dc3;}})[_0x5c2c('0x24')](respondWithResult(_0xe486e1,null))[_0x5c2c('0x56')](handleError(_0xe486e1,null));};exports['statusGet']=function(_0xdc35a9,_0x276179,_0x24ce98){var _0x4e77c4,_0x1d9c41,_0x2a83be;return db[_0x5c2c('0x3d')][_0x5c2c('0x65')]({'where':{'id':_0xdc35a9[_0x5c2c('0x58')]['id']}})['then'](handleEntityNotFound(_0x276179,null))[_0x5c2c('0x24')](function(_0x2a2574){if(_0x2a2574){_0x2a83be=_0x2a2574;logger[_0x5c2c('0xb4')](_0x5c2c('0x28'),'status','received\x20delivery\x20report\x20from',_0x2a2574[_0x5c2c('0x40')],util[_0x5c2c('0xcb')](_0xdc35a9[_0x5c2c('0x44')],{'showHidden':![],'depth':null}));switch(_0x2a2574[_0x5c2c('0x40')]){case'csc':if(_0xdc35a9[_0x5c2c('0x44')][_0x5c2c('0xd9')]&&_0xdc35a9[_0x5c2c('0x44')][_0x5c2c('0xda')]){_0x1d9c41=_0xdc35a9[_0x5c2c('0x44')][_0x5c2c('0xda')];return db['SmsMessage']['find']({'where':{'messageId':_0xdc35a9[_0x5c2c('0x44')]['message-id']}});}break;}}})['then'](handleEntityNotFound(_0x276179,null))[_0x5c2c('0x24')](function(_0x414b63){if(_0x414b63){_0x4e77c4=_0x414b63;switch(_0x2a83be[_0x5c2c('0x40')]){case _0x5c2c('0x94'):if(_0x1d9c41==='2'||_0x1d9c41==='6'){return _0x4e77c4['update']({'read':!![]});}else{logger[_0x5c2c('0x2a')](_0x5c2c('0x28'),_0x5c2c('0x2e'),'csc',util['inspect'](_0xdc35a9[_0x5c2c('0x44')],{'showHidden':![],'depth':null}));};break;}return _0x4e77c4;}})[_0x5c2c('0x24')](respondWithResult(_0x276179,null))[_0x5c2c('0x56')](handleError(_0x276179,null));};exports[_0x5c2c('0xdb')]=function(_0x41a0ff,_0x249e86,_0x53641f){return db[_0x5c2c('0x3d')]['find']({'where':{'id':_0x41a0ff['params']['id']}})[_0x5c2c('0x24')](handleEntityNotFound(_0x249e86,null))[_0x5c2c('0x24')](function(_0x38d026){if(_0x38d026){return _0x38d026[_0x5c2c('0xdb')](_0x41a0ff[_0x5c2c('0x5b')][_0x5c2c('0x70')],_[_0x5c2c('0xdc')](_0x41a0ff['body'],[_0x5c2c('0x70'),'id'])||{})[_0x5c2c('0xdd')](function(_0x70debf){for(var _0x503b52=0x0;_0x503b52<_0x41a0ff[_0x5c2c('0x5b')]['ids'][_0x5c2c('0x4a')];_0x503b52+=0x1){socket[_0x5c2c('0xde')]('userSmsAccount:save',{'UserId':Number(_0x41a0ff[_0x5c2c('0x5b')][_0x5c2c('0x70')][_0x503b52]),'SmsAccountId':Number(_0x41a0ff[_0x5c2c('0x58')]['id'])});}return _0x70debf;});}})[_0x5c2c('0x24')](respondWithResult(_0x249e86,null))[_0x5c2c('0x56')](handleError(_0x249e86,null));};exports[_0x5c2c('0xdf')]=function(_0x4a96ad,_0x35fa10,_0xe4023b){return db['SmsAccount']['find']({'where':{'id':_0x4a96ad[_0x5c2c('0x58')]['id']}})[_0x5c2c('0x24')](handleEntityNotFound(_0x35fa10,null))[_0x5c2c('0x24')](function(_0x174f89){if(_0x174f89){return _0x174f89['removeAgents'](_0x4a96ad[_0x5c2c('0x44')][_0x5c2c('0x70')])['then'](function(){if(_[_0x5c2c('0xe0')](_0x4a96ad[_0x5c2c('0x44')][_0x5c2c('0x70')])){for(var _0x3e1dcb=0x0;_0x3e1dcb<_0x4a96ad[_0x5c2c('0x44')]['ids'][_0x5c2c('0x4a')];_0x3e1dcb+=0x1){socket[_0x5c2c('0xde')](_0x5c2c('0xe1'),{'UserId':Number(_0x4a96ad[_0x5c2c('0x44')]['ids'][_0x3e1dcb]),'SmsAccountId':Number(_0x4a96ad[_0x5c2c('0x58')]['id'])});}}else{socket['emit']('userSmsAccount:remove',{'UserId':Number(_0x4a96ad[_0x5c2c('0x44')][_0x5c2c('0x70')]),'SmsAccountId':Number(_0x4a96ad[_0x5c2c('0x58')]['id'])});}});}})['then'](respondWithStatusCode(_0x35fa10,null))[_0x5c2c('0x56')](handleError(_0x35fa10,null));};exports[_0x5c2c('0xe2')]=function(_0x27bd56,_0x587c83,_0x1ac016){var _0x31a4af={};var _0x5d613f={};var _0x2708e9;var _0xc7e3b6;return db[_0x5c2c('0x3d')][_0x5c2c('0x6c')]({'where':{'id':_0x27bd56[_0x5c2c('0x58')]['id']}})['then'](handleEntityNotFound(_0x587c83,null))[_0x5c2c('0x24')](function(_0x4dbf46){if(_0x4dbf46){_0x2708e9=_0x4dbf46;_0x5d613f[_0x5c2c('0x47')]=_[_0x5c2c('0x43')](db[_0x5c2c('0xae')][_0x5c2c('0x3e')]);_0x5d613f['query']=_[_0x5c2c('0x43')](_0x27bd56['query']);_0x5d613f['filters']=_[_0x5c2c('0x46')](_0x5d613f[_0x5c2c('0x47')],_0x5d613f[_0x5c2c('0x44')]);_0x31a4af[_0x5c2c('0x48')]=_['intersection'](_0x5d613f['model'],qs[_0x5c2c('0x49')](_0x27bd56['query'][_0x5c2c('0x49')]));_0x31a4af[_0x5c2c('0x48')]=_0x31a4af['attributes'][_0x5c2c('0x4a')]?_0x31a4af[_0x5c2c('0x48')]:_0x5d613f[_0x5c2c('0x47')];_0x31a4af[_0x5c2c('0x73')]=qs[_0x5c2c('0x4d')](_0x27bd56['query'][_0x5c2c('0x4d')]);_0x31a4af[_0x5c2c('0x4e')]=qs[_0x5c2c('0x45')](_['pick'](_0x27bd56[_0x5c2c('0x44')],_0x5d613f[_0x5c2c('0x45')]));if(_0x27bd56[_0x5c2c('0x44')]['filter']){_0x31a4af[_0x5c2c('0x4e')]=_[_0x5c2c('0x51')](_0x31a4af[_0x5c2c('0x4e')],{'$or':_['map'](_0x31a4af[_0x5c2c('0x48')],function(_0x3cdb9e){var _0x23b00f={};_0x23b00f[_0x3cdb9e]={'$like':'%'+_0x27bd56['query'][_0x5c2c('0x50')]+'%'};return _0x23b00f;})});}_0x31a4af=_[_0x5c2c('0x51')]({},_0x31a4af,_0x27bd56[_0x5c2c('0x52')]);return _0x2708e9[_0x5c2c('0xe2')](_0x31a4af);}})['then'](function(_0xca8ac1){if(_0xca8ac1){_0xc7e3b6=_0xca8ac1[_0x5c2c('0x4a')];if(!_0x27bd56[_0x5c2c('0x44')][_0x5c2c('0x4b')](_0x5c2c('0x4c'))){_0x31a4af[_0x5c2c('0x33')]=qs[_0x5c2c('0x33')](_0x27bd56[_0x5c2c('0x44')]['limit']);_0x31a4af[_0x5c2c('0x31')]=qs[_0x5c2c('0x31')](_0x27bd56[_0x5c2c('0x44')][_0x5c2c('0x31')]);}return _0x2708e9[_0x5c2c('0xe2')](_0x31a4af);}})[_0x5c2c('0x24')](function(_0x110b2b){if(_0x110b2b){return _0x110b2b?{'count':_0xc7e3b6,'rows':_0x110b2b}:null;}})['then'](respondWithResult(_0x587c83,null))['catch'](handleError(_0x587c83,null));};
\ No newline at end of file
+var _0xf904=['merge','VIRTUAL','include','findAll','rows','show','params','mandatoryDispositionPause','includeAll','options','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','catch','describe','addDisposition','SmsAccountId','Disposition','getDispositions','findOne','removeDispositions','ids','addAnswer','getAnswers','CannedAnswer','removeAnswers','notify','sms','SmsApplication','Applications','applications','orderBy','asc','account','CmContact','Sequelize','ValidationError','difference','createdAt','updatedAt','CompanyId','ListId','mobile','twilio','MessageSid','skebby','sender','text','connectel','from','clicksend','message_id','plivo','From','Text','messageId','results','csc','originatingAddress','segmentedMessage','clickatell','fromNumber','intelepeer','refid','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','contact','spread','interaction','created','autoclose','push','close','*,*,*,*','ContactId','AttachmentId','User','UserId','unshift','waitForTheAssignedAgent','Start','startRouting','receiveMessage','entity\x20found','SmsAccount,\x20%s,\x20%s,\x20%s,\x20%s','Content-Type','text/xml','send','addApplications','transaction','bulkCreate','findAndCountAll','priority','getApplications','getInteractions','SmsInteraction','Contact','Owner','fullname','internal','Tag','Tags','color','tag','to\x20is\x20mandatory','List','out','SmsMessage','dataValues','Messages','received\x20delivery\x20report\x20from','inspect','skebby_dispatch_id','requestid','statusInt','status_code','infobip','groupName','DELIVERED','bandwidth','redif','DELIVERED_TO_GATEWAY','RECEIVED_BY_RECIPIENT','DELIVRD','ACCEPTD','statusGet','message-id','state','addAgents','userSmsAccount:save','removeAgents','isArray','userSmsAccount:remove','getAgents','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','sox','ejs','lodash','squel','jsforce','desk.js','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','redis','defaults','localhost','socket.io-emitter','./smsAccount.socket','register','jayson/promise','client','http','request','then','info','SmsAccount,\x20%s,\x20%s','debug','SmsAccount,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','destroy','get','SmsAccounts','UserProfileResource','sendStatus','stack','name','index','Pause','map','SmsAccount','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xf904,0x96));var _0x4f90=function(_0x32a2fc,_0x1be7d5){_0x32a2fc=_0x32a2fc-0x0;var _0x3574c5=_0xf904[_0x32a2fc];return _0x3574c5;};'use strict';var emlformat=require(_0x4f90('0x0'));var rimraf=require(_0x4f90('0x1'));var zipdir=require(_0x4f90('0x2'));var jsonpatch=require(_0x4f90('0x3'));var rp=require(_0x4f90('0x4'));var moment=require(_0x4f90('0x5'));var BPromise=require(_0x4f90('0x6'));var Mustache=require(_0x4f90('0x7'));var util=require('util');var path=require('path');var sox=require(_0x4f90('0x8'));var csv=require('to-csv');var ejs=require(_0x4f90('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x4f90('0xa'));var squel=require(_0x4f90('0xb'));var crypto=require('crypto');var jsforce=require(_0x4f90('0xc'));var deskjs=require(_0x4f90('0xd'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x4f90('0xe'));var Redis=require(_0x4f90('0xf'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x4f90('0x10'));var hardwareService=require(_0x4f90('0x11'));var logger=require(_0x4f90('0x12'))('api');var utils=require(_0x4f90('0x13'));var config=require(_0x4f90('0x14'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];config[_0x4f90('0x15')]=_[_0x4f90('0x16')](config[_0x4f90('0x15')],{'host':_0x4f90('0x17'),'port':0x18eb});var socket=require(_0x4f90('0x18'))(new Redis(config[_0x4f90('0x15')]));require(_0x4f90('0x19'))[_0x4f90('0x1a')](socket);var jayson=require(_0x4f90('0x1b'));var client=jayson[_0x4f90('0x1c')][_0x4f90('0x1d')]({'port':0x232c});function respondWithRpcPromise(_0x38418c,_0x58aa58,_0x4783c6,_0x3d0c54){return new BPromise(function(_0x1c2539,_0x68cc71){var _0xec4eef=_0x3d0c54||client;return _0xec4eef[_0x4f90('0x1e')](_0x38418c,_0x4783c6)[_0x4f90('0x1f')](function(_0xf2fbd1){logger[_0x4f90('0x20')](_0x4f90('0x21'),_0x58aa58,'request\x20sent');logger[_0x4f90('0x22')](_0x4f90('0x23'),_0x58aa58,_0x4f90('0x24'),JSON[_0x4f90('0x25')](_0xf2fbd1));if(_0xf2fbd1[_0x4f90('0x26')]){if(_0xf2fbd1['error'][_0x4f90('0x27')]===0x1f4){logger[_0x4f90('0x26')](_0x4f90('0x21'),_0x58aa58,_0xf2fbd1[_0x4f90('0x26')][_0x4f90('0x28')]);return _0x68cc71(_0xf2fbd1['error'][_0x4f90('0x28')]);}logger['error'](_0x4f90('0x21'),_0x58aa58,_0xf2fbd1[_0x4f90('0x26')][_0x4f90('0x28')]);return _0x1c2539(_0xf2fbd1['error'][_0x4f90('0x28')]);}else{logger[_0x4f90('0x20')]('SmsAccount,\x20%s,\x20%s',_0x58aa58,_0x4f90('0x24'));_0x1c2539(_0xf2fbd1[_0x4f90('0x29')][_0x4f90('0x28')]);}})['catch'](function(_0x4f3047){logger[_0x4f90('0x26')](_0x4f90('0x21'),_0x58aa58,_0x4f3047);_0x68cc71(_0x4f3047);});});}function respondWithStatusCode(_0x14ef74,_0xcd3ffa){_0xcd3ffa=_0xcd3ffa||0xcc;return function(_0xd1833a){if(_0xd1833a){return _0x14ef74['sendStatus'](_0xcd3ffa);}return _0x14ef74[_0x4f90('0x2a')](_0xcd3ffa)[_0x4f90('0x2b')]();};}function respondWithResult(_0x295cf4,_0x62332b){_0x62332b=_0x62332b||0xc8;return function(_0x40dfda){if(_0x40dfda){return _0x295cf4[_0x4f90('0x2a')](_0x62332b)[_0x4f90('0x2c')](_0x40dfda);}};}function respondWithFilteredResult(_0x5f4f11,_0xce575e){return function(_0x47e74e){if(_0x47e74e){var _0x43dc2a=typeof _0xce575e[_0x4f90('0x2d')]===_0x4f90('0x2e')&&typeof _0xce575e[_0x4f90('0x2f')]===_0x4f90('0x2e');var _0x270a32=_0x47e74e[_0x4f90('0x30')];var _0x53ca30=_0x43dc2a?0x0:_0xce575e[_0x4f90('0x2d')];var _0x2042fa=_0x43dc2a?_0x47e74e[_0x4f90('0x30')]:_0xce575e[_0x4f90('0x2d')]+_0xce575e['limit'];var _0x3f6f3a;if(_0x2042fa>=_0x270a32){_0x2042fa=_0x270a32;_0x3f6f3a=0xc8;}else{_0x3f6f3a=0xce;}_0x5f4f11['status'](_0x3f6f3a);return _0x5f4f11[_0x4f90('0x31')](_0x4f90('0x32'),_0x53ca30+'-'+_0x2042fa+'/'+_0x270a32)[_0x4f90('0x2c')](_0x47e74e);}return null;};}function patchUpdates(_0x5acbe0){return function(_0x73accb){try{jsonpatch[_0x4f90('0x33')](_0x73accb,_0x5acbe0,!![]);}catch(_0x40a0c5){return BPromise[_0x4f90('0x34')](_0x40a0c5);}return _0x73accb[_0x4f90('0x35')]();};}function saveUpdates(_0x369b30,_0xfde348){return function(_0x4f6d68){if(_0x4f6d68){return _0x4f6d68[_0x4f90('0x36')](_0x369b30)[_0x4f90('0x1f')](function(_0x54bbf8){return _0x54bbf8;});}return null;};}function removeEntity(_0x1ce5f2,_0x3ccafa){return function(_0x4008e0){if(_0x4008e0){return _0x4008e0[_0x4f90('0x37')]()[_0x4f90('0x1f')](function(){var _0xc09997=_0x4008e0[_0x4f90('0x38')]({'plain':!![]});var _0x28a8fe=_0x4f90('0x39');return db[_0x4f90('0x3a')][_0x4f90('0x37')]({'where':{'type':_0x28a8fe,'resourceId':_0xc09997['id']}})['then'](function(){return _0x4008e0;});})[_0x4f90('0x1f')](function(){_0x1ce5f2['status'](0xcc)[_0x4f90('0x2b')]();});}};}function handleEntityNotFound(_0x12ba5b,_0x26e5df){return function(_0x366b1d){if(!_0x366b1d){_0x12ba5b[_0x4f90('0x3b')](0x194);}return _0x366b1d;};}function handleError(_0x5813ed,_0x4ca5e7){_0x4ca5e7=_0x4ca5e7||0x1f4;return function(_0x3629ac){logger['error'](_0x3629ac[_0x4f90('0x3c')]);if(_0x3629ac[_0x4f90('0x3d')]){delete _0x3629ac[_0x4f90('0x3d')];}_0x5813ed['status'](_0x4ca5e7)['send'](_0x3629ac);};}exports[_0x4f90('0x3e')]=function(_0x27143b,_0x572c9d){var _0x446076={'include':[{'model':db[_0x4f90('0x3f')],'as':'mandatoryDispositionPause'}]},_0x34c97b={},_0x219055={'count':0x0,'rows':[]};var _0x49ff22=_[_0x4f90('0x40')](db[_0x4f90('0x41')][_0x4f90('0x42')],function(_0x40a099){return{'name':_0x40a099[_0x4f90('0x43')],'type':_0x40a099[_0x4f90('0x44')][_0x4f90('0x45')]};});_0x34c97b[_0x4f90('0x46')]=_[_0x4f90('0x40')](_0x49ff22,_0x4f90('0x3d'));_0x34c97b[_0x4f90('0x47')]=_[_0x4f90('0x48')](_0x27143b[_0x4f90('0x47')]);_0x34c97b[_0x4f90('0x49')]=_[_0x4f90('0x4a')](_0x34c97b[_0x4f90('0x46')],_0x34c97b['query']);_0x446076[_0x4f90('0x4b')]=_[_0x4f90('0x4a')](_0x34c97b[_0x4f90('0x46')],qs[_0x4f90('0x4c')](_0x27143b[_0x4f90('0x47')][_0x4f90('0x4c')]));_0x446076[_0x4f90('0x4b')]=_0x446076[_0x4f90('0x4b')][_0x4f90('0x4d')]?_0x446076[_0x4f90('0x4b')]:_0x34c97b[_0x4f90('0x46')];if(!_0x27143b[_0x4f90('0x47')][_0x4f90('0x4e')](_0x4f90('0x4f'))){_0x446076[_0x4f90('0x2f')]=qs[_0x4f90('0x2f')](_0x27143b['query'][_0x4f90('0x2f')]);_0x446076['offset']=qs['offset'](_0x27143b['query'][_0x4f90('0x2d')]);}_0x446076[_0x4f90('0x50')]=qs['sort'](_0x27143b['query'][_0x4f90('0x51')]);_0x446076[_0x4f90('0x52')]=qs[_0x4f90('0x49')](_[_0x4f90('0x53')](_0x27143b['query'],_0x34c97b[_0x4f90('0x49')]),_0x49ff22);if(_0x27143b['query'][_0x4f90('0x54')]){_0x446076[_0x4f90('0x52')]=_[_0x4f90('0x55')](_0x446076['where'],{'$or':_[_0x4f90('0x40')](_0x49ff22,function(_0x218d19){if(_0x218d19[_0x4f90('0x44')]!==_0x4f90('0x56')){var _0x3963cd={};_0x3963cd[_0x218d19[_0x4f90('0x3d')]]={'$like':'%'+_0x27143b[_0x4f90('0x47')][_0x4f90('0x54')]+'%'};return _0x3963cd;}})});}_0x446076=_['merge']({},_0x446076,_0x27143b['options']);var _0x4dc729={'where':_0x446076[_0x4f90('0x52')]};return db['SmsAccount'][_0x4f90('0x30')](_0x4dc729)[_0x4f90('0x1f')](function(_0x4fe4f7){_0x219055[_0x4f90('0x30')]=_0x4fe4f7;if(_0x27143b['query']['includeAll']){_0x446076[_0x4f90('0x57')]=[{'all':!![]}];}return db['SmsAccount'][_0x4f90('0x58')](_0x446076);})[_0x4f90('0x1f')](function(_0x4c6513){_0x219055[_0x4f90('0x59')]=_0x4c6513;return _0x219055;})[_0x4f90('0x1f')](respondWithFilteredResult(_0x572c9d,_0x446076))['catch'](handleError(_0x572c9d,null));};exports[_0x4f90('0x5a')]=function(_0x140c55,_0x2a35f9){var _0x4dafa6={'raw':![],'where':{'id':_0x140c55[_0x4f90('0x5b')]['id']},'include':[{'model':db[_0x4f90('0x3f')],'as':_0x4f90('0x5c')}]},_0x1a5ec7={};_0x1a5ec7[_0x4f90('0x46')]=_[_0x4f90('0x48')](db[_0x4f90('0x41')][_0x4f90('0x42')]);_0x1a5ec7['query']=_['keys'](_0x140c55[_0x4f90('0x47')]);_0x1a5ec7[_0x4f90('0x49')]=_[_0x4f90('0x4a')](_0x1a5ec7[_0x4f90('0x46')],_0x1a5ec7['query']);_0x4dafa6[_0x4f90('0x4b')]=_['intersection'](_0x1a5ec7[_0x4f90('0x46')],qs[_0x4f90('0x4c')](_0x140c55['query']['fields']));_0x4dafa6[_0x4f90('0x4b')]=_0x4dafa6[_0x4f90('0x4b')][_0x4f90('0x4d')]?_0x4dafa6[_0x4f90('0x4b')]:_0x1a5ec7['model'];if(_0x140c55['query'][_0x4f90('0x5d')]){_0x4dafa6[_0x4f90('0x57')]=[{'all':!![]}];}_0x4dafa6=_[_0x4f90('0x55')]({},_0x4dafa6,_0x140c55[_0x4f90('0x5e')]);return db[_0x4f90('0x41')][_0x4f90('0x5f')](_0x4dafa6)[_0x4f90('0x1f')](handleEntityNotFound(_0x2a35f9,null))[_0x4f90('0x1f')](respondWithResult(_0x2a35f9,null))['catch'](handleError(_0x2a35f9,null));};exports['create']=function(_0x187885,_0x289b52){return db['SmsAccount'][_0x4f90('0x60')](_0x187885[_0x4f90('0x61')],{})[_0x4f90('0x1f')](function(_0x56a513){var _0x52b410=_0x187885['user'][_0x4f90('0x38')]({'plain':!![]});if(!_0x52b410)throw new Error(_0x4f90('0x62'));if(_0x52b410[_0x4f90('0x63')]===_0x4f90('0x64')){var _0x3ebf67=_0x56a513['get']({'plain':!![]});var _0x351b61=_0x4f90('0x39');return db[_0x4f90('0x65')][_0x4f90('0x5f')]({'where':{'name':_0x351b61,'userProfileId':_0x52b410[_0x4f90('0x66')]},'raw':!![]})[_0x4f90('0x1f')](function(_0x39e4a7){if(_0x39e4a7&&_0x39e4a7[_0x4f90('0x67')]===0x0){return db[_0x4f90('0x3a')]['create']({'name':_0x3ebf67['name'],'resourceId':_0x3ebf67['id'],'type':_0x39e4a7['name'],'sectionId':_0x39e4a7['id']},{})[_0x4f90('0x1f')](function(){return _0x56a513;});}else{return _0x56a513;}})['catch'](function(_0x1217e3){logger[_0x4f90('0x26')](_0x4f90('0x68'),_0x1217e3);throw _0x1217e3;});}return _0x56a513;})[_0x4f90('0x1f')](respondWithResult(_0x289b52,0xc9))[_0x4f90('0x69')](handleError(_0x289b52,null));};exports[_0x4f90('0x36')]=function(_0x18f774,_0x19eed6){if(_0x18f774[_0x4f90('0x61')]['id']){delete _0x18f774[_0x4f90('0x61')]['id'];}return db[_0x4f90('0x41')][_0x4f90('0x5f')]({'where':{'id':_0x18f774[_0x4f90('0x5b')]['id']},'include':[{'model':db[_0x4f90('0x3f')],'as':_0x4f90('0x5c')}]})['then'](handleEntityNotFound(_0x19eed6,null))[_0x4f90('0x1f')](saveUpdates(_0x18f774[_0x4f90('0x61')],null))[_0x4f90('0x1f')](respondWithResult(_0x19eed6,null))[_0x4f90('0x69')](handleError(_0x19eed6,null));};exports[_0x4f90('0x37')]=function(_0x5f523e,_0xe2e938){return db['SmsAccount']['find']({'where':{'id':_0x5f523e['params']['id']}})[_0x4f90('0x1f')](handleEntityNotFound(_0xe2e938,null))[_0x4f90('0x1f')](removeEntity(_0xe2e938,null))[_0x4f90('0x69')](handleError(_0xe2e938,null));};exports['describe']=function(_0x240f10,_0x13ca20){return db['SmsAccount'][_0x4f90('0x6a')]()[_0x4f90('0x1f')](respondWithResult(_0x13ca20,null))['catch'](handleError(_0x13ca20,null));};exports[_0x4f90('0x6b')]=function(_0x3c1c5d,_0x10a47c,_0x33ad18){if(_0x3c1c5d[_0x4f90('0x61')]['id']){delete _0x3c1c5d['body']['id'];}return db[_0x4f90('0x41')][_0x4f90('0x5f')]({'where':{'id':_0x3c1c5d['params']['id']}})['then'](handleEntityNotFound(_0x10a47c,null))['then'](function(_0x98b5df){if(_0x98b5df){_0x3c1c5d[_0x4f90('0x61')][_0x4f90('0x6c')]=_0x98b5df['id'];return db[_0x4f90('0x6d')][_0x4f90('0x60')](_0x3c1c5d[_0x4f90('0x61')]);}})[_0x4f90('0x1f')](respondWithResult(_0x10a47c,null))[_0x4f90('0x69')](handleError(_0x10a47c,null));};exports[_0x4f90('0x6e')]=function(_0x3f9b8a,_0xeab461,_0x6f7e01){var _0x1972c0={'raw':![],'where':{}};var _0x1ef35e={};var _0x3e591d={'count':0x0,'rows':[]};return db[_0x4f90('0x41')][_0x4f90('0x6f')]({'where':{'id':_0x3f9b8a[_0x4f90('0x5b')]['id']}})[_0x4f90('0x1f')](handleEntityNotFound(_0xeab461,null))[_0x4f90('0x1f')](function(_0x14c35b){if(_0x14c35b){_0x1ef35e[_0x4f90('0x46')]=_['keys'](db[_0x4f90('0x6d')][_0x4f90('0x42')]);_0x1ef35e['query']=_[_0x4f90('0x48')](_0x3f9b8a[_0x4f90('0x47')]);_0x1ef35e[_0x4f90('0x49')]=_[_0x4f90('0x4a')](_0x1ef35e[_0x4f90('0x46')],_0x1ef35e[_0x4f90('0x47')]);_0x1972c0['attributes']=_[_0x4f90('0x4a')](_0x1ef35e[_0x4f90('0x46')],qs[_0x4f90('0x4c')](_0x3f9b8a[_0x4f90('0x47')]['fields']));_0x1972c0[_0x4f90('0x4b')]=_0x1972c0[_0x4f90('0x4b')]['length']?_0x1972c0[_0x4f90('0x4b')]:_0x1ef35e[_0x4f90('0x46')];if(!_0x3f9b8a[_0x4f90('0x47')][_0x4f90('0x4e')]('nolimit')){_0x1972c0[_0x4f90('0x2f')]=qs[_0x4f90('0x2f')](_0x3f9b8a[_0x4f90('0x47')][_0x4f90('0x2f')]);_0x1972c0['offset']=qs[_0x4f90('0x2d')](_0x3f9b8a[_0x4f90('0x47')][_0x4f90('0x2d')]);}_0x1972c0[_0x4f90('0x50')]=qs[_0x4f90('0x51')](_0x3f9b8a['query'][_0x4f90('0x51')]);_0x1972c0[_0x4f90('0x52')]=qs[_0x4f90('0x49')](_[_0x4f90('0x53')](_0x3f9b8a['query'],_0x1ef35e[_0x4f90('0x49')]));_0x1972c0[_0x4f90('0x52')][_0x4f90('0x6c')]=_0x14c35b['id'];if(_0x3f9b8a[_0x4f90('0x47')][_0x4f90('0x54')]){_0x1972c0[_0x4f90('0x52')]=_['merge'](_0x1972c0[_0x4f90('0x52')],{'$or':_[_0x4f90('0x40')](_0x1972c0[_0x4f90('0x4b')],function(_0x4778ad){var _0x4c471b={};_0x4c471b[_0x4778ad]={'$like':'%'+_0x3f9b8a[_0x4f90('0x47')][_0x4f90('0x54')]+'%'};return _0x4c471b;})});}_0x1972c0=_[_0x4f90('0x55')]({},_0x1972c0,_0x3f9b8a[_0x4f90('0x5e')]);return db[_0x4f90('0x6d')][_0x4f90('0x30')]({'where':_0x1972c0['where']})['then'](function(_0x29b20d){_0x3e591d[_0x4f90('0x30')]=_0x29b20d;if(_0x3f9b8a[_0x4f90('0x47')][_0x4f90('0x5d')]){_0x1972c0[_0x4f90('0x57')]=[{'all':!![]}];}return db[_0x4f90('0x6d')]['findAll'](_0x1972c0);})['then'](function(_0x55a7dd){_0x3e591d[_0x4f90('0x59')]=_0x55a7dd;return _0x3e591d;});}})[_0x4f90('0x1f')](respondWithFilteredResult(_0xeab461,_0x1972c0))[_0x4f90('0x69')](handleError(_0xeab461,null));};exports[_0x4f90('0x70')]=function(_0x4c737f,_0x55a0a0,_0x1eb139){return db[_0x4f90('0x41')][_0x4f90('0x5f')]({'where':{'id':_0x4c737f[_0x4f90('0x5b')]['id']}})['then'](handleEntityNotFound(_0x55a0a0,null))[_0x4f90('0x1f')](function(_0x569338){if(_0x569338){return _0x569338['removeDispositions'](_0x4c737f[_0x4f90('0x47')][_0x4f90('0x71')]);}})['then'](respondWithStatusCode(_0x55a0a0,null))[_0x4f90('0x69')](handleError(_0x55a0a0,null));};exports[_0x4f90('0x72')]=function(_0x278f0d,_0x683827,_0xe105c2){if(_0x278f0d['body']['id']){delete _0x278f0d[_0x4f90('0x61')]['id'];}return db['SmsAccount'][_0x4f90('0x5f')]({'where':{'id':_0x278f0d['params']['id']}})['then'](handleEntityNotFound(_0x683827,null))[_0x4f90('0x1f')](function(_0x4f107d){if(_0x4f107d){_0x278f0d['body'][_0x4f90('0x6c')]=_0x4f107d['id'];return db['CannedAnswer'][_0x4f90('0x60')](_0x278f0d[_0x4f90('0x61')]);}})[_0x4f90('0x1f')](respondWithResult(_0x683827,null))[_0x4f90('0x69')](handleError(_0x683827,null));};exports[_0x4f90('0x73')]=function(_0x4652ee,_0x122a88,_0x5278a1){var _0x5edc48={'raw':![],'where':{}};var _0x473cad={};var _0x482c43={'count':0x0,'rows':[]};return db[_0x4f90('0x41')][_0x4f90('0x6f')]({'where':{'id':_0x4652ee['params']['id']}})[_0x4f90('0x1f')](handleEntityNotFound(_0x122a88,null))[_0x4f90('0x1f')](function(_0x5ae1f4){if(_0x5ae1f4){_0x473cad[_0x4f90('0x46')]=_[_0x4f90('0x48')](db[_0x4f90('0x74')][_0x4f90('0x42')]);_0x473cad[_0x4f90('0x47')]=_[_0x4f90('0x48')](_0x4652ee[_0x4f90('0x47')]);_0x473cad[_0x4f90('0x49')]=_[_0x4f90('0x4a')](_0x473cad[_0x4f90('0x46')],_0x473cad['query']);_0x5edc48[_0x4f90('0x4b')]=_[_0x4f90('0x4a')](_0x473cad[_0x4f90('0x46')],qs['fields'](_0x4652ee[_0x4f90('0x47')]['fields']));_0x5edc48[_0x4f90('0x4b')]=_0x5edc48[_0x4f90('0x4b')][_0x4f90('0x4d')]?_0x5edc48[_0x4f90('0x4b')]:_0x473cad[_0x4f90('0x46')];if(!_0x4652ee['query']['hasOwnProperty']('nolimit')){_0x5edc48[_0x4f90('0x2f')]=qs[_0x4f90('0x2f')](_0x4652ee['query'][_0x4f90('0x2f')]);_0x5edc48[_0x4f90('0x2d')]=qs[_0x4f90('0x2d')](_0x4652ee['query'][_0x4f90('0x2d')]);}_0x5edc48[_0x4f90('0x50')]=qs['sort'](_0x4652ee[_0x4f90('0x47')][_0x4f90('0x51')]);_0x5edc48[_0x4f90('0x52')]=qs['filters'](_[_0x4f90('0x53')](_0x4652ee[_0x4f90('0x47')],_0x473cad['filters']));_0x5edc48[_0x4f90('0x52')][_0x4f90('0x6c')]=_0x5ae1f4['id'];if(_0x4652ee[_0x4f90('0x47')][_0x4f90('0x54')]){_0x5edc48[_0x4f90('0x52')]=_[_0x4f90('0x55')](_0x5edc48[_0x4f90('0x52')],{'$or':_['map'](_0x5edc48['attributes'],function(_0x236f3f){var _0x28b616={};_0x28b616[_0x236f3f]={'$like':'%'+_0x4652ee['query'][_0x4f90('0x54')]+'%'};return _0x28b616;})});}_0x5edc48=_[_0x4f90('0x55')]({},_0x5edc48,_0x4652ee[_0x4f90('0x5e')]);return db[_0x4f90('0x74')][_0x4f90('0x30')]({'where':_0x5edc48['where']})[_0x4f90('0x1f')](function(_0x364d70){_0x482c43[_0x4f90('0x30')]=_0x364d70;if(_0x4652ee[_0x4f90('0x47')]['includeAll']){_0x5edc48['include']=[{'all':!![]}];}return db['CannedAnswer']['findAll'](_0x5edc48);})[_0x4f90('0x1f')](function(_0x4e6961){_0x482c43[_0x4f90('0x59')]=_0x4e6961;return _0x482c43;});}})['then'](respondWithFilteredResult(_0x122a88,_0x5edc48))['catch'](handleError(_0x122a88,null));};exports[_0x4f90('0x75')]=function(_0x43d35f,_0x3d1fb1,_0x5d8e80){return db[_0x4f90('0x41')][_0x4f90('0x5f')]({'where':{'id':_0x43d35f[_0x4f90('0x5b')]['id']}})['then'](handleEntityNotFound(_0x3d1fb1,null))['then'](function(_0x33e357){if(_0x33e357){return _0x33e357[_0x4f90('0x75')](_0x43d35f[_0x4f90('0x47')][_0x4f90('0x71')]);}})[_0x4f90('0x1f')](respondWithStatusCode(_0x3d1fb1,null))[_0x4f90('0x69')](handleError(_0x3d1fb1,null));};exports[_0x4f90('0x76')]=function(_0x5a229c,_0x3746e0,_0x107387){var _0x5010c7={'channel':_0x4f90('0x77')};var _0x272207=[];var _0x2c3002=[];var _0x5ed786={};return db[_0x4f90('0x41')][_0x4f90('0x5f')]({'where':{'id':_0x5a229c[_0x4f90('0x5b')]['id']},'include':[{'model':db[_0x4f90('0x78')],'as':_0x4f90('0x79')}]})['then'](handleEntityNotFound(_0x3746e0,null))['then'](function(_0xee26e9){_0x5010c7['account']=_0xee26e9;_0x5010c7[_0x4f90('0x7a')]=_[_0x4f90('0x7b')](_0xee26e9[_0x4f90('0x79')],['priority'],[_0x4f90('0x7c')]);if(_0x5010c7['account']['Applications']){delete _0x5010c7[_0x4f90('0x7d')][_0x4f90('0x79')];}return db[_0x4f90('0x7e')]['describe']();})[_0x4f90('0x1f')](function(_0x5758c2){if(!_0x5758c2){throw new db[(_0x4f90('0x7f'))][(_0x4f90('0x80'))]('no\x20available\x20attributes');}_0x272207=_[_0x4f90('0x81')](_[_0x4f90('0x48')](_0x5758c2),[_0x4f90('0x82'),_0x4f90('0x83')]);_0x2c3002=_[_0x4f90('0x81')](_[_0x4f90('0x48')](_0x5758c2),[_0x4f90('0x82'),_0x4f90('0x83'),_0x4f90('0x84'),_0x4f90('0x85')]);_0x5010c7['body']={'mapKey':_0x4f90('0x86')};if(_0x5010c7[_0x4f90('0x7d')]['type']){switch(_0x5010c7[_0x4f90('0x7d')][_0x4f90('0x44')]){case _0x4f90('0x87'):_0x5010c7[_0x4f90('0x61')]['from']=_0x5a229c['body']['From'];_0x5010c7[_0x4f90('0x61')][_0x4f90('0x61')]=_0x5a229c['body']['Body'];_0x5010c7[_0x4f90('0x61')]['messageId']=_0x5a229c[_0x4f90('0x61')][_0x4f90('0x88')];break;case _0x4f90('0x89'):_0x5010c7[_0x4f90('0x61')]['from']='+'+_0x5a229c[_0x4f90('0x61')][_0x4f90('0x8a')];_0x5010c7[_0x4f90('0x61')][_0x4f90('0x61')]=_0x5a229c[_0x4f90('0x61')][_0x4f90('0x8b')];break;case _0x4f90('0x8c'):_0x5010c7[_0x4f90('0x61')][_0x4f90('0x8d')]=_0x5a229c[_0x4f90('0x61')][_0x4f90('0x8d')];_0x5010c7[_0x4f90('0x61')][_0x4f90('0x61')]=_0x5a229c[_0x4f90('0x61')]['message'];break;case _0x4f90('0x8e'):_0x5010c7[_0x4f90('0x61')][_0x4f90('0x8d')]=_0x5a229c['body'][_0x4f90('0x8d')];_0x5010c7['body'][_0x4f90('0x61')]=_0x5a229c['body'][_0x4f90('0x61')];_0x5010c7[_0x4f90('0x61')]['messageId']=_0x5a229c['body'][_0x4f90('0x8f')];break;case _0x4f90('0x90'):_0x5010c7[_0x4f90('0x61')][_0x4f90('0x8d')]=_0x5a229c[_0x4f90('0x61')][_0x4f90('0x91')];_0x5010c7['body'][_0x4f90('0x61')]=_0x5a229c[_0x4f90('0x61')][_0x4f90('0x92')];_0x5010c7[_0x4f90('0x61')][_0x4f90('0x93')]=_0x5a229c['body']['MessageUUID'];break;case'infobip':_0x5010c7[_0x4f90('0x61')][_0x4f90('0x8d')]='+'+_0x5a229c[_0x4f90('0x61')][_0x4f90('0x94')][0x0][_0x4f90('0x8d')];_0x5010c7[_0x4f90('0x61')][_0x4f90('0x61')]=_0x5a229c[_0x4f90('0x61')][_0x4f90('0x94')][0x0][_0x4f90('0x8b')];_0x5010c7[_0x4f90('0x61')][_0x4f90('0x93')]=_0x5a229c[_0x4f90('0x61')][_0x4f90('0x94')][0x0][_0x4f90('0x93')];break;case _0x4f90('0x95'):_0x5010c7['body']['from']=_0x5a229c[_0x4f90('0x61')][_0x4f90('0x96')];_0x5010c7[_0x4f90('0x61')][_0x4f90('0x61')]=_0x5a229c[_0x4f90('0x61')][_0x4f90('0x97')][_0x4f90('0x28')];break;case _0x4f90('0x98'):_0x5010c7[_0x4f90('0x61')][_0x4f90('0x8d')]=_0x5a229c[_0x4f90('0x61')][_0x4f90('0x99')];_0x5010c7[_0x4f90('0x61')][_0x4f90('0x61')]=_0x5a229c[_0x4f90('0x61')][_0x4f90('0x8b')];_0x5010c7[_0x4f90('0x61')]['messageId']=_0x5a229c[_0x4f90('0x61')]['replyMessageId'];break;case'bandwidth':_0x5010c7[_0x4f90('0x61')][_0x4f90('0x93')]=_0x5a229c['body'][0x0][_0x4f90('0x28')]['id'];_0x5010c7[_0x4f90('0x61')][_0x4f90('0x8d')]=_0x5a229c[_0x4f90('0x61')][0x0][_0x4f90('0x28')][_0x4f90('0x8d')];_0x5010c7[_0x4f90('0x61')][_0x4f90('0x61')]=_0x5a229c[_0x4f90('0x61')][0x0][_0x4f90('0x28')][_0x4f90('0x8b')];break;case _0x4f90('0x9a'):_0x5010c7['body'][_0x4f90('0x8d')]=_0x5a229c[_0x4f90('0x61')]['from'];_0x5010c7[_0x4f90('0x61')][_0x4f90('0x61')]=_0x5a229c[_0x4f90('0x61')][_0x4f90('0x28')];_0x5010c7[_0x4f90('0x61')][_0x4f90('0x93')]=_0x5a229c['body'][_0x4f90('0x9b')];break;}}if(_0x5010c7[_0x4f90('0x61')]['id']){delete _0x5010c7[_0x4f90('0x61')]['id'];}if(_[_0x4f90('0x9c')](_0x5010c7[_0x4f90('0x61')][_0x4f90('0x8d')])){throw new db[(_0x4f90('0x7f'))][(_0x4f90('0x80'))]('from\x20is\x20mandatory');}if(_[_0x4f90('0x9c')](_0x5010c7['body'][_0x4f90('0x61')])||_0x5010c7[_0x4f90('0x61')]['body']===''){throw new db[(_0x4f90('0x7f'))]['ValidationError'](_0x4f90('0x9d'));}if(_['isNil'](_0x5010c7[_0x4f90('0x61')]['mapKey'])){throw new db['Sequelize']['ValidationError'](_0x4f90('0x9e')+_0x2c3002);}if(!_[_0x4f90('0x9f')](_0x2c3002,_0x5010c7[_0x4f90('0x61')][_0x4f90('0xa0')])){throw new db['Sequelize'][(_0x4f90('0x80'))](_0x4f90('0xa1')+_0x2c3002);}_0x5ed786[_0x5010c7[_0x4f90('0x61')]['mapKey']]=_0x5010c7[_0x4f90('0x61')][_0x4f90('0x8d')];return db[_0x4f90('0xa2')][_0x4f90('0x5f')]({'where':{'id':_0x5010c7['account'][_0x4f90('0x85')]},'include':[{'model':db[_0x4f90('0x7e')],'as':_0x4f90('0xa3'),'where':_0x5ed786,'limit':0x1,'order':[[_0x4f90('0x83'),_0x4f90('0xa4')]]}]});})[_0x4f90('0x1f')](handleEntityNotFound(_0x3746e0,null))[_0x4f90('0x1f')](function(_0x3ec288){if(_0x3ec288){_0x5010c7[_0x4f90('0xa5')]=_[_0x4f90('0xa6')](_0x3ec288,[_0x4f90('0xa3')]);if(_0x3ec288[_0x4f90('0xa3')]['length']){return _0x3ec288[_0x4f90('0xa3')][0x0];}var _0x7c1caa=_[_0x4f90('0x16')](_0x5010c7[_0x4f90('0x61')],{'firstName':_0x5010c7[_0x4f90('0x61')][_0x4f90('0x8d')],'ListId':_0x3ec288['id']});_0x7c1caa[_0x5010c7[_0x4f90('0x61')]['mapKey']]=_0x5010c7['body']['from'];return db[_0x4f90('0x7e')][_0x4f90('0x60')](_0x7c1caa,{'fields':_0x272207,'raw':!![]});}})[_0x4f90('0x1f')](handleEntityNotFound(_0x3746e0,null))[_0x4f90('0x1f')](function(_0x30014f){if(_0x30014f){_0x5010c7[_0x4f90('0xa7')]=_0x30014f;var _0x245859={'ContactId':_0x30014f['id'],'phone':_0x5010c7['body'][_0x4f90('0x8d')],'SmsAccountId':_0x5a229c['params']['id']};var _0x3704b9={'ContactId':_0x30014f['id'],'SmsAccountId':_0x5a229c[_0x4f90('0x5b')]['id'],'closed':![]};return db['SmsInteraction'][_0x4f90('0x5f')]({'where':_0x3704b9})['then'](function(_0x35a48b){if(_0x35a48b){return[_0x35a48b,![]];}return db['SmsInteraction'][_0x4f90('0x60')](_0x245859)[_0x4f90('0x1f')](function(_0x205f53){return[_0x205f53,!![]];});});}})[_0x4f90('0xa8')](function(_0x5879c1,_0x515ee4){_0x5010c7[_0x4f90('0xa9')]=_0x5879c1[_0x4f90('0x38')]({'plain':!![]});_0x5010c7[_0x4f90('0xa9')][_0x4f90('0xaa')]=![];if(_0x515ee4){if(_0x5010c7[_0x4f90('0x7d')][_0x4f90('0xab')]){_0x5010c7[_0x4f90('0x7a')][_0x4f90('0xac')]({'id':0x0,'priority':_0x5010c7[_0x4f90('0x7a')][_0x4f90('0x4d')]+0x1,'app':_0x4f90('0xad'),'appdata':'unmanaged','interval':_0x4f90('0xae')});}_0x5010c7[_0x4f90('0xa9')][_0x4f90('0xaa')]=!![];}return db['SmsMessage'][_0x4f90('0x60')]({'phone':_0x5010c7['body'][_0x4f90('0x8d')],'messageId':_0x5010c7[_0x4f90('0x61')][_0x4f90('0x93')],'body':_0x5010c7[_0x4f90('0x61')][_0x4f90('0x61')],'SmsAccountId':_0x5a229c[_0x4f90('0x5b')]['id'],'SmsInteractionId':_0x5879c1['id'],'direction':'in','ContactId':_0x5879c1[_0x4f90('0xaf')],'AttachmentId':_0x5010c7[_0x4f90('0x61')][_0x4f90('0xb0')]});})[_0x4f90('0x1f')](function(_0x2db5f2){_0x5010c7[_0x4f90('0x28')]=_0x2db5f2;if(_0x5010c7[_0x4f90('0xa9')]['UserId']){return db[_0x4f90('0xb1')]['find']({'attributes':['id',_0x4f90('0x3d')],'where':{'id':_0x5010c7['interaction'][_0x4f90('0xb2')]}})['then'](function(_0xa3aad0){if(_0xa3aad0){_0x5010c7[_0x4f90('0x7a')][_0x4f90('0xb3')]({'id':0x0,'priority':0x0,'app':'agent','appdata':_0xa3aad0[_0x4f90('0x3d')]+','+(_0x5010c7[_0x4f90('0x7d')][_0x4f90('0xb4')]||0xa),'interval':_0x4f90('0xae')});}return respondWithRpcPromise(_0x4f90('0xb5'),_0x4f90('0xb6'),_0x5010c7);});}return respondWithRpcPromise('Start','startRouting',_0x5010c7);})[_0x4f90('0x1f')](function(_0x506d40){if(_0x506d40){var _0x536dbd=0xc8;var _0x332466=_0x4f90('0xb7');logger[_0x4f90('0x20')](_0x4f90('0x23'),_0x332466,_0x536dbd,_0x4f90('0xb8'));logger[_0x4f90('0x22')](_0x4f90('0xb9'),_0x332466,_0x536dbd,_0x4f90('0xb8'),JSON[_0x4f90('0x25')](_0x506d40));if(_0x5010c7[_0x4f90('0x7d')][_0x4f90('0x44')]==='twilio'){return _0x3746e0[_0x4f90('0x2a')](_0x536dbd)['set'](_0x4f90('0xba'),_0x4f90('0xbb'))[_0x4f90('0xbc')]('<?xml\x20version=\x221.0\x22\x20encoding=\x22UTF-8\x22?>\x0a<Response></Response>');}else{return _0x3746e0[_0x4f90('0x2a')](_0x536dbd)[_0x4f90('0x2c')](_0x506d40);}}})[_0x4f90('0x69')](handleError(_0x3746e0,null));};exports[_0x4f90('0xbd')]=function(_0x2d0243,_0x2c5453,_0x21c87a){return db[_0x4f90('0x41')][_0x4f90('0x6f')]({'where':{'id':_0x2d0243[_0x4f90('0x5b')]['id']}})['then'](handleEntityNotFound(_0x2c5453,null))[_0x4f90('0x1f')](function(_0x1bc909){if(_0x1bc909){return db['sequelize'][_0x4f90('0xbe')](function(_0x10c999){return db[_0x4f90('0x78')][_0x4f90('0x37')]({'where':{'SmsAccountId':_0x2d0243[_0x4f90('0x5b')]['id']},'transaction':_0x10c999})[_0x4f90('0x1f')](function(_0x1d58fe){var _0xc02412=_[_0x4f90('0x40')](_0x2d0243[_0x4f90('0x61')],function(_0x3ddfcd){_0x3ddfcd[_0x4f90('0x6c')]=_0x2d0243[_0x4f90('0x5b')]['id'];return _0x3ddfcd;});return db[_0x4f90('0x78')][_0x4f90('0xbf')](_0xc02412,{'transaction':_0x10c999});});})['then'](function(){return db[_0x4f90('0x78')][_0x4f90('0xc0')]({'where':{'SmsAccountId':_0x2d0243[_0x4f90('0x5b')]['id']},'order':_0x4f90('0xc1')});});}})[_0x4f90('0x1f')](respondWithResult(_0x2c5453,null))['catch'](handleError(_0x2c5453,null));};exports[_0x4f90('0xc2')]=function(_0x230c73,_0x43d08f,_0x112b82){var _0x3bd315={};var _0x55e567={};var _0x11971c;var _0x361224;return db[_0x4f90('0x41')][_0x4f90('0x6f')]({'where':{'id':_0x230c73[_0x4f90('0x5b')]['id']}})[_0x4f90('0x1f')](handleEntityNotFound(_0x43d08f,null))[_0x4f90('0x1f')](function(_0x1a2f9c){if(_0x1a2f9c){_0x11971c=_0x1a2f9c;_0x55e567[_0x4f90('0x46')]=_[_0x4f90('0x48')](db[_0x4f90('0x78')]['rawAttributes']);_0x55e567['query']=_[_0x4f90('0x48')](_0x230c73['query']);_0x55e567[_0x4f90('0x49')]=_[_0x4f90('0x4a')](_0x55e567[_0x4f90('0x46')],_0x55e567[_0x4f90('0x47')]);_0x3bd315[_0x4f90('0x4b')]=_[_0x4f90('0x4a')](_0x55e567[_0x4f90('0x46')],qs[_0x4f90('0x4c')](_0x230c73['query'][_0x4f90('0x4c')]));_0x3bd315['attributes']=_0x3bd315[_0x4f90('0x4b')][_0x4f90('0x4d')]?_0x3bd315[_0x4f90('0x4b')]:_0x55e567[_0x4f90('0x46')];_0x3bd315[_0x4f90('0x50')]=qs[_0x4f90('0x51')](_0x230c73[_0x4f90('0x47')]['sort']);_0x3bd315[_0x4f90('0x52')]=qs[_0x4f90('0x49')](_['pick'](_0x230c73[_0x4f90('0x47')],_0x55e567['filters']));if(_0x230c73['query'][_0x4f90('0x54')]){_0x3bd315['where']=_[_0x4f90('0x55')](_0x3bd315[_0x4f90('0x52')],{'$or':_[_0x4f90('0x40')](_0x3bd315[_0x4f90('0x4b')],function(_0x1d14af){var _0x550b8e={};_0x550b8e[_0x1d14af]={'$like':'%'+_0x230c73[_0x4f90('0x47')][_0x4f90('0x54')]+'%'};return _0x550b8e;})});}_0x3bd315=_['merge']({},_0x3bd315,_0x230c73[_0x4f90('0x5e')]);return _0x11971c['getApplications'](_0x3bd315);}})[_0x4f90('0x1f')](function(_0x17e4dd){if(_0x17e4dd){_0x361224=_0x17e4dd[_0x4f90('0x4d')];if(!_0x230c73['query']['hasOwnProperty'](_0x4f90('0x4f'))){_0x3bd315[_0x4f90('0x2f')]=qs[_0x4f90('0x2f')](_0x230c73[_0x4f90('0x47')][_0x4f90('0x2f')]);_0x3bd315[_0x4f90('0x2d')]=qs[_0x4f90('0x2d')](_0x230c73[_0x4f90('0x47')][_0x4f90('0x2d')]);}return _0x11971c[_0x4f90('0xc2')](_0x3bd315);}})[_0x4f90('0x1f')](function(_0x2ee948){if(_0x2ee948){return _0x2ee948?{'count':_0x361224,'rows':_0x2ee948}:null;}})['then'](respondWithResult(_0x43d08f,null))[_0x4f90('0x69')](handleError(_0x43d08f,null));};exports[_0x4f90('0xc3')]=function(_0x320406,_0x33d55e,_0x1a1d99){var _0x530874={'raw':![],'where':{}};var _0x430aea={};var _0x21831a={'count':0x0,'rows':[]};return db[_0x4f90('0x41')]['findOne']({'where':{'id':_0x320406['params']['id']}})[_0x4f90('0x1f')](handleEntityNotFound(_0x33d55e,null))[_0x4f90('0x1f')](function(_0x234e90){if(_0x234e90){_0x430aea['model']=_[_0x4f90('0x48')](db[_0x4f90('0xc4')][_0x4f90('0x42')]);_0x430aea[_0x4f90('0x47')]=_[_0x4f90('0x48')](_0x320406['query']);_0x430aea[_0x4f90('0x49')]=_[_0x4f90('0x4a')](_0x430aea[_0x4f90('0x46')],_0x430aea[_0x4f90('0x47')]);_0x530874[_0x4f90('0x4b')]=_['intersection'](_0x430aea[_0x4f90('0x46')],qs[_0x4f90('0x4c')](_0x320406[_0x4f90('0x47')]['fields']));_0x530874['attributes']=_0x530874[_0x4f90('0x4b')][_0x4f90('0x4d')]?_0x530874[_0x4f90('0x4b')]:_0x430aea[_0x4f90('0x46')];if(!_0x320406[_0x4f90('0x47')]['hasOwnProperty'](_0x4f90('0x4f'))){_0x530874[_0x4f90('0x2f')]=qs['limit'](_0x320406[_0x4f90('0x47')][_0x4f90('0x2f')]);_0x530874['offset']=qs[_0x4f90('0x2d')](_0x320406[_0x4f90('0x47')][_0x4f90('0x2d')]);}_0x530874['order']=qs[_0x4f90('0x51')](_0x320406[_0x4f90('0x47')][_0x4f90('0x51')]);_0x530874['where']=qs[_0x4f90('0x49')](_[_0x4f90('0x53')](_0x320406[_0x4f90('0x47')],_0x430aea[_0x4f90('0x49')]));_0x530874[_0x4f90('0x52')][_0x4f90('0x6c')]=_0x234e90['id'];if(_0x320406['query'][_0x4f90('0x54')]){_0x530874[_0x4f90('0x52')]=_[_0x4f90('0x55')](_0x530874['where'],{'$or':_[_0x4f90('0x40')](_0x530874[_0x4f90('0x4b')],function(_0x5a5e1f){var _0x262ee5={};_0x262ee5[_0x5a5e1f]={'$like':'%'+_0x320406['query'][_0x4f90('0x54')]+'%'};return _0x262ee5;})});}_0x530874=_[_0x4f90('0x55')]({},_0x530874,_0x320406['options']);return db[_0x4f90('0xc4')][_0x4f90('0x30')]({'where':_0x530874[_0x4f90('0x52')]})[_0x4f90('0x1f')](function(_0x4f3e92){_0x21831a[_0x4f90('0x30')]=_0x4f3e92;if(_0x320406[_0x4f90('0x47')][_0x4f90('0x5d')]){_0x530874[_0x4f90('0x57')]=[{'model':db[_0x4f90('0x7e')],'as':_0x4f90('0xc5'),'required':![]},{'model':db[_0x4f90('0xb1')],'as':_0x4f90('0xc6'),'attributes':[_0x4f90('0x3d'),_0x4f90('0xc7'),_0x4f90('0xc8')],'required':![]},{'model':db[_0x4f90('0xc9')],'as':_0x4f90('0xca'),'attributes':['id',_0x4f90('0x3d'),_0x4f90('0xcb')],'where':_0x320406['query'][_0x4f90('0xcc')]?{'id':_0x320406[_0x4f90('0x47')][_0x4f90('0xcc')]}:undefined,'required':_0x320406['query'][_0x4f90('0xcc')]?!![]:![]}];}return db[_0x4f90('0xc4')][_0x4f90('0x58')](_0x530874);})[_0x4f90('0x1f')](function(_0x489ab9){_0x21831a[_0x4f90('0x59')]=_0x489ab9;return _0x21831a;});}})[_0x4f90('0x1f')](respondWithFilteredResult(_0x33d55e,_0x530874))[_0x4f90('0x69')](handleError(_0x33d55e,null));};exports[_0x4f90('0xbc')]=function(_0x2fc93f,_0x52041e,_0x23ae6d){var _0x302ad6,_0x4f6d42,_0xf75313;if(_[_0x4f90('0x9c')](_0x2fc93f[_0x4f90('0x61')][_0x4f90('0x61')])||_0x2fc93f[_0x4f90('0x61')][_0x4f90('0x61')]===''){throw new db['Sequelize'][(_0x4f90('0x80'))](_0x4f90('0x9d'));}if(_[_0x4f90('0x9c')](_0x2fc93f[_0x4f90('0x61')]['to'])){throw new db['Sequelize']['ValidationError'](_0x4f90('0xcd'));}_0x302ad6=_0x2fc93f[_0x4f90('0x61')]['to'];return db['SmsAccount'][_0x4f90('0x5f')]({'where':{'id':_0x2fc93f[_0x4f90('0x5b')]['id']},'include':[{'model':db[_0x4f90('0xa2')],'as':'List','include':[{'model':db[_0x4f90('0x7e')],'as':_0x4f90('0xa3'),'where':{'mobile':_0x302ad6},'limit':0x1,'order':[[_0x4f90('0x83'),_0x4f90('0xa4')]]}]}]})['then'](handleEntityNotFound(_0x52041e,null))[_0x4f90('0x1f')](function(_0x237a4f){if(_0x237a4f&&_0x237a4f['List']){_0x4f6d42=_0x237a4f[_0x4f90('0x38')]({'plain':!![]});if(_0x4f6d42[_0x4f90('0xce')]&&_0x4f6d42[_0x4f90('0xce')][_0x4f90('0xa3')][_0x4f90('0x4d')]){return _0x4f6d42[_0x4f90('0xce')][_0x4f90('0xa3')][0x0];}return db[_0x4f90('0x7e')][_0x4f90('0x60')](_[_0x4f90('0x16')](_0x2fc93f[_0x4f90('0x61')],{'firstName':_0x302ad6,'mobile':_0x302ad6,'phone':_0x302ad6,'ListId':_0x4f6d42[_0x4f90('0x85')]}));}})[_0x4f90('0x1f')](handleEntityNotFound(_0x52041e,null))[_0x4f90('0x1f')](function(_0x5e8815){if(_0x5e8815){_0xf75313=_0x5e8815;return db['SmsInteraction'][_0x4f90('0x5f')]({'where':{'ContactId':_0xf75313['id'],'closed':![],'SmsAccountId':_0x4f6d42['id']}})['then'](function(_0x118330){if(_0x118330){return[_0x118330,![]];}return db['SmsInteraction'][_0x4f90('0x60')]({'UserId':_0x2fc93f['user']['id'],'ContactId':_0xf75313['id'],'SmsAccountId':_0x4f6d42['id'],'phone':_0x302ad6,'firstMsgDirection':_0x4f90('0xcf'),'Messages':[_[_0x4f90('0x55')](_0x2fc93f[_0x4f90('0x61')],{'read':![],'body':_0x2fc93f['body'][_0x4f90('0x61')],'phone':_0x302ad6,'SmsAccountId':_0x4f6d42['id'],'UserId':_0x2fc93f[_0x4f90('0x64')]['id'],'ContactId':_0xf75313['id']})]},{'include':[{'model':db[_0x4f90('0xd0')],'as':'Messages'}]})[_0x4f90('0x1f')](function(_0x4e068b){return[_0x4e068b,!![]];});});}})['spread'](function(_0x1ab61a,_0x318c19){if(_0x318c19){return _0x1ab61a;}return db[_0x4f90('0xd0')][_0x4f90('0x60')](_[_0x4f90('0x55')](_0x2fc93f['body'],{'read':![],'body':_0x2fc93f[_0x4f90('0x61')][_0x4f90('0x61')],'phone':_0x302ad6,'SmsAccountId':_0x4f6d42['id'],'SmsInteractionId':_0x1ab61a['id'],'UserId':_0x2fc93f[_0x4f90('0x64')]['id'],'ContactId':_0xf75313['id']}))[_0x4f90('0x1f')](function(_0x3b838a){_0x1ab61a[_0x4f90('0xd1')]['Messages']=[];_0x1ab61a[_0x4f90('0xd1')][_0x4f90('0xd2')][_0x4f90('0xac')](_0x3b838a[_0x4f90('0xd1')]);return _0x1ab61a;});})[_0x4f90('0x1f')](respondWithResult(_0x52041e,null))[_0x4f90('0x69')](handleError(_0x52041e,null));};exports[_0x4f90('0x2a')]=function(_0x5517d3,_0x1a5604,_0x4d4a27){if(_0x5517d3[_0x4f90('0x61')]['id']){delete _0x5517d3['body']['id'];}var _0x4d22f7,_0x5288ef,_0x4bbdfb;return db['SmsAccount']['find']({'where':{'id':_0x5517d3[_0x4f90('0x5b')]['id']}})[_0x4f90('0x1f')](handleEntityNotFound(_0x1a5604,null))['then'](function(_0x2d6bd2){if(_0x2d6bd2){_0x4bbdfb=_0x2d6bd2;logger[_0x4f90('0x22')](_0x4f90('0x23'),_0x4f90('0x2a'),_0x4f90('0xd3'),_0x2d6bd2[_0x4f90('0x44')],util[_0x4f90('0xd4')](_0x5517d3[_0x4f90('0x61')],{'showHidden':![],'depth':null}));switch(_0x2d6bd2[_0x4f90('0x44')]){case _0x4f90('0x89'):if(_0x5517d3[_0x4f90('0x61')][_0x4f90('0xd5')]&&_0x5517d3[_0x4f90('0x61')][_0x4f90('0x2a')]){_0x5288ef=_0x5517d3[_0x4f90('0x61')][_0x4f90('0x2a')];return db[_0x4f90('0xd0')][_0x4f90('0x5f')]({'where':{'messageId':_0x5517d3[_0x4f90('0x61')][_0x4f90('0xd5')]}});}break;case _0x4f90('0x8c'):if(_0x5517d3[_0x4f90('0x61')][_0x4f90('0xd6')]&&_0x5517d3[_0x4f90('0x61')][_0x4f90('0xd7')]){_0x5288ef=_0x5517d3[_0x4f90('0x61')][_0x4f90('0xd7')];return db[_0x4f90('0xd0')][_0x4f90('0x5f')]({'where':{'messageId':_0x5517d3[_0x4f90('0x61')][_0x4f90('0xd6')]}});}break;case _0x4f90('0x8e'):if(_0x5517d3['body'][_0x4f90('0x8f')]&&_0x5517d3[_0x4f90('0x61')][_0x4f90('0xd8')]){_0x5288ef=_0x5517d3[_0x4f90('0x61')]['status_code'];return db[_0x4f90('0xd0')][_0x4f90('0x5f')]({'where':{'messageId':_0x5517d3[_0x4f90('0x61')]['message_id']}});}break;case _0x4f90('0xd9'):var _0x2078a5=_0x5517d3[_0x4f90('0x61')][_0x4f90('0x94')][0x0];if(_0x2078a5['messageId']&&_0x2078a5[_0x4f90('0x2a')][_0x4f90('0xda')]===_0x4f90('0xdb')){_0x5288ef=_0x2078a5[_0x4f90('0x2a')]['groupName'];return db[_0x4f90('0xd0')]['find']({'where':{'messageId':_0x2078a5[_0x4f90('0x93')]}});}break;case _0x4f90('0x98'):if(_0x5517d3[_0x4f90('0x61')][_0x4f90('0x93')]&&_0x5517d3[_0x4f90('0x61')]['status']){_0x5288ef=_0x5517d3[_0x4f90('0x61')]['status'];return db[_0x4f90('0xd0')]['find']({'where':{'messageId':_0x5517d3[_0x4f90('0x61')][_0x4f90('0x93')]}});}break;case _0x4f90('0xdc'):if(_0x5517d3['body'][0x0]['message']['id']){_0x5288ef=_0x5517d3['body'][0x0]['type'];return db[_0x4f90('0xd0')][_0x4f90('0x5f')]({'where':{'messageId':_0x5517d3[_0x4f90('0x61')][0x0]['message']['id']}});}break;case _0x4f90('0x9a'):if(_0x5517d3[_0x4f90('0x61')][_0x4f90('0xdd')]&&_0x5517d3[_0x4f90('0x61')][_0x4f90('0x2a')]){_0x5288ef=_0x5517d3[_0x4f90('0x61')][_0x4f90('0x2a')];return db[_0x4f90('0xd0')][_0x4f90('0x5f')]({'where':{'messageId':_0x5517d3[_0x4f90('0x61')][_0x4f90('0xdd')]}});}break;}}})[_0x4f90('0x1f')](handleEntityNotFound(_0x1a5604,null))[_0x4f90('0x1f')](function(_0x52046b){if(_0x52046b){_0x4d22f7=_0x52046b;switch(_0x4bbdfb['type']){case'skebby':if(_0x5288ef===_0x4f90('0xdb')){return _0x4d22f7[_0x4f90('0x36')]({'read':!![]});}else{logger['error']('SmsAccount,\x20%s,\x20%s,\x20%s','status',_0x4f90('0x89'),util['inspect'](_0x5517d3[_0x4f90('0x61')],{'showHidden':![],'depth':null}));}break;case'connectel':if(_0x5288ef==='1'){return _0x4d22f7[_0x4f90('0x36')]({'read':!![]});}else{logger[_0x4f90('0x26')](_0x4f90('0x23'),'status',_0x4f90('0x89'),util['inspect'](_0x5517d3[_0x4f90('0x61')],{'showHidden':![],'depth':null}));}break;case _0x4f90('0x8e'):if(!_0x5517d3[_0x4f90('0x61')]['error_code']&&_0x5288ef>=0xc8&&_0x5288ef<=0xce){return _0x4d22f7[_0x4f90('0x36')]({'read':!![]});}else{logger[_0x4f90('0x26')](_0x4f90('0x23'),_0x4f90('0x2a'),'clicksend',util[_0x4f90('0xd4')](_0x5517d3[_0x4f90('0x61')],{'showHidden':![],'depth':null}));}break;case _0x4f90('0xd9'):var _0x4414c1=_0x5517d3[_0x4f90('0x61')]['results'][0x0];if(_0x4414c1[_0x4f90('0x2a')][_0x4f90('0xda')]===_0x4f90('0xdb')){return _0x4d22f7[_0x4f90('0x36')]({'read':!![]});}else{logger['error']('SmsAccount,\x20%s,\x20%s,\x20%s',_0x4f90('0x2a'),'infobip',util[_0x4f90('0xd4')](_0x5517d3[_0x4f90('0x61')],{'showHidden':![],'depth':null}));}break;case _0x4f90('0x98'):if(_0x5288ef==_0x4f90('0xde')||_0x5288ef==_0x4f90('0xdf')){return _0x4d22f7[_0x4f90('0x36')]({'read':!![]});}else{logger['error'](_0x4f90('0x23'),_0x4f90('0x2a'),_0x4f90('0x98'),util[_0x4f90('0xd4')](_0x5517d3[_0x4f90('0x61')],{'showHidden':![],'depth':null}));}break;case _0x4f90('0xdc'):if(_0x5288ef=='message-delivered'){return _0x4d22f7[_0x4f90('0x36')]({'read':!![]});}else{logger[_0x4f90('0x26')](_0x4f90('0x23'),'status','bandwidth',util[_0x4f90('0xd4')](_0x5517d3[_0x4f90('0x61')],{'showHidden':![],'depth':null}));}break;case'intelepeer':if(_0x5288ef===_0x4f90('0xe0')||_0x5288ef===_0x4f90('0xe1')){return _0x4d22f7[_0x4f90('0x36')]({'read':!![]});}else{logger['error'](_0x4f90('0x23'),_0x4f90('0x2a'),_0x4f90('0x9a'),util[_0x4f90('0xd4')](_0x5517d3[_0x4f90('0x61')],{'showHidden':![],'depth':null}));}break;}return _0x4d22f7;}})['then'](respondWithResult(_0x1a5604,null))['catch'](handleError(_0x1a5604,null));};exports[_0x4f90('0xe2')]=function(_0x118197,_0x3bc6b2,_0x17c889){var _0x27e162,_0x3317a3,_0x48155c;return db[_0x4f90('0x41')][_0x4f90('0x5f')]({'where':{'id':_0x118197[_0x4f90('0x5b')]['id']}})[_0x4f90('0x1f')](handleEntityNotFound(_0x3bc6b2,null))[_0x4f90('0x1f')](function(_0x35a516){if(_0x35a516){_0x48155c=_0x35a516;logger[_0x4f90('0x22')](_0x4f90('0x23'),'status','received\x20delivery\x20report\x20from',_0x35a516[_0x4f90('0x44')],util[_0x4f90('0xd4')](_0x118197[_0x4f90('0x47')],{'showHidden':![],'depth':null}));switch(_0x35a516[_0x4f90('0x44')]){case _0x4f90('0x95'):if(_0x118197[_0x4f90('0x47')][_0x4f90('0xe3')]&&_0x118197['query']['state']){_0x3317a3=_0x118197[_0x4f90('0x47')][_0x4f90('0xe4')];return db[_0x4f90('0xd0')][_0x4f90('0x5f')]({'where':{'messageId':_0x118197[_0x4f90('0x47')][_0x4f90('0xe3')]}});}break;}}})[_0x4f90('0x1f')](handleEntityNotFound(_0x3bc6b2,null))[_0x4f90('0x1f')](function(_0x5465b4){if(_0x5465b4){_0x27e162=_0x5465b4;switch(_0x48155c[_0x4f90('0x44')]){case'csc':if(_0x3317a3==='2'||_0x3317a3==='6'){return _0x27e162[_0x4f90('0x36')]({'read':!![]});}else{logger[_0x4f90('0x26')](_0x4f90('0x23'),_0x4f90('0x2a'),'csc',util['inspect'](_0x118197[_0x4f90('0x47')],{'showHidden':![],'depth':null}));};break;}return _0x27e162;}})[_0x4f90('0x1f')](respondWithResult(_0x3bc6b2,null))[_0x4f90('0x69')](handleError(_0x3bc6b2,null));};exports[_0x4f90('0xe5')]=function(_0x5afc13,_0x19c953,_0x13c924){return db[_0x4f90('0x41')][_0x4f90('0x5f')]({'where':{'id':_0x5afc13['params']['id']}})['then'](handleEntityNotFound(_0x19c953,null))[_0x4f90('0x1f')](function(_0x510291){if(_0x510291){return _0x510291['addAgents'](_0x5afc13['body'][_0x4f90('0x71')],_[_0x4f90('0xa6')](_0x5afc13[_0x4f90('0x61')],[_0x4f90('0x71'),'id'])||{})[_0x4f90('0xa8')](function(_0x1f541f){for(var _0x2dd0af=0x0;_0x2dd0af<_0x5afc13[_0x4f90('0x61')][_0x4f90('0x71')]['length'];_0x2dd0af+=0x1){socket['emit'](_0x4f90('0xe6'),{'UserId':Number(_0x5afc13['body'][_0x4f90('0x71')][_0x2dd0af]),'SmsAccountId':Number(_0x5afc13[_0x4f90('0x5b')]['id'])});}return _0x1f541f;});}})[_0x4f90('0x1f')](respondWithResult(_0x19c953,null))[_0x4f90('0x69')](handleError(_0x19c953,null));};exports[_0x4f90('0xe7')]=function(_0x4f55eb,_0x3330b6,_0x2ac807){return db[_0x4f90('0x41')][_0x4f90('0x5f')]({'where':{'id':_0x4f55eb['params']['id']}})[_0x4f90('0x1f')](handleEntityNotFound(_0x3330b6,null))[_0x4f90('0x1f')](function(_0x19b029){if(_0x19b029){return _0x19b029[_0x4f90('0xe7')](_0x4f55eb[_0x4f90('0x47')][_0x4f90('0x71')])['then'](function(){if(_[_0x4f90('0xe8')](_0x4f55eb[_0x4f90('0x47')][_0x4f90('0x71')])){for(var _0x304b59=0x0;_0x304b59<_0x4f55eb[_0x4f90('0x47')][_0x4f90('0x71')][_0x4f90('0x4d')];_0x304b59+=0x1){socket['emit'](_0x4f90('0xe9'),{'UserId':Number(_0x4f55eb[_0x4f90('0x47')][_0x4f90('0x71')][_0x304b59]),'SmsAccountId':Number(_0x4f55eb[_0x4f90('0x5b')]['id'])});}}else{socket['emit'](_0x4f90('0xe9'),{'UserId':Number(_0x4f55eb[_0x4f90('0x47')][_0x4f90('0x71')]),'SmsAccountId':Number(_0x4f55eb['params']['id'])});}});}})['then'](respondWithStatusCode(_0x3330b6,null))[_0x4f90('0x69')](handleError(_0x3330b6,null));};exports[_0x4f90('0xea')]=function(_0x47168d,_0x2d5236,_0xe1f253){var _0xd98d79={};var _0x5a3681={};var _0x124472;var _0x3940a6;return db['SmsAccount'][_0x4f90('0x6f')]({'where':{'id':_0x47168d[_0x4f90('0x5b')]['id']}})[_0x4f90('0x1f')](handleEntityNotFound(_0x2d5236,null))[_0x4f90('0x1f')](function(_0x3dc621){if(_0x3dc621){_0x124472=_0x3dc621;_0x5a3681['model']=_[_0x4f90('0x48')](db[_0x4f90('0xb1')][_0x4f90('0x42')]);_0x5a3681[_0x4f90('0x47')]=_[_0x4f90('0x48')](_0x47168d[_0x4f90('0x47')]);_0x5a3681[_0x4f90('0x49')]=_[_0x4f90('0x4a')](_0x5a3681[_0x4f90('0x46')],_0x5a3681[_0x4f90('0x47')]);_0xd98d79['attributes']=_[_0x4f90('0x4a')](_0x5a3681['model'],qs['fields'](_0x47168d['query'][_0x4f90('0x4c')]));_0xd98d79[_0x4f90('0x4b')]=_0xd98d79[_0x4f90('0x4b')][_0x4f90('0x4d')]?_0xd98d79[_0x4f90('0x4b')]:_0x5a3681[_0x4f90('0x46')];_0xd98d79[_0x4f90('0x50')]=qs[_0x4f90('0x51')](_0x47168d[_0x4f90('0x47')][_0x4f90('0x51')]);_0xd98d79['where']=qs[_0x4f90('0x49')](_['pick'](_0x47168d[_0x4f90('0x47')],_0x5a3681[_0x4f90('0x49')]));if(_0x47168d[_0x4f90('0x47')][_0x4f90('0x54')]){_0xd98d79['where']=_[_0x4f90('0x55')](_0xd98d79['where'],{'$or':_[_0x4f90('0x40')](_0xd98d79[_0x4f90('0x4b')],function(_0x32f4c6){var _0x3b1868={};_0x3b1868[_0x32f4c6]={'$like':'%'+_0x47168d['query'][_0x4f90('0x54')]+'%'};return _0x3b1868;})});}_0xd98d79=_[_0x4f90('0x55')]({},_0xd98d79,_0x47168d[_0x4f90('0x5e')]);return _0x124472[_0x4f90('0xea')](_0xd98d79);}})['then'](function(_0x57977d){if(_0x57977d){_0x3940a6=_0x57977d['length'];if(!_0x47168d[_0x4f90('0x47')][_0x4f90('0x4e')](_0x4f90('0x4f'))){_0xd98d79[_0x4f90('0x2f')]=qs[_0x4f90('0x2f')](_0x47168d[_0x4f90('0x47')][_0x4f90('0x2f')]);_0xd98d79[_0x4f90('0x2d')]=qs['offset'](_0x47168d[_0x4f90('0x47')][_0x4f90('0x2d')]);}return _0x124472[_0x4f90('0xea')](_0xd98d79);}})[_0x4f90('0x1f')](function(_0x109300){if(_0x109300){return _0x109300?{'count':_0x3940a6,'rows':_0x109300}:null;}})[_0x4f90('0x1f')](respondWithResult(_0x2d5236,null))[_0x4f90('0x69')](handleError(_0x2d5236,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd091=['../../mysqldb','SmsAccount','setMaxListeners','save','remove','emit','hasOwnProperty','hook','exports','events'];(function(_0x613122,_0x30e6ef){var _0x5b8413=function(_0x1ae7c4){while(--_0x1ae7c4){_0x613122['push'](_0x613122['shift']());}};_0x5b8413(++_0x30e6ef);}(_0xd091,0x1b7));var _0x1d09=function(_0x564adf,_0x861a9){_0x564adf=_0x564adf-0x0;var _0x506f27=_0xd091[_0x564adf];return _0x506f27;};'use strict';var EventEmitter=require(_0x1d09('0x0'));var SmsAccount=require(_0x1d09('0x1'))['db'][_0x1d09('0x2')];var SmsAccountEvents=new EventEmitter();SmsAccountEvents[_0x1d09('0x3')](0x0);var events={'afterCreate':_0x1d09('0x4'),'afterUpdate':'update','afterDestroy':_0x1d09('0x5')};function emitEvent(_0x511ca5){return function(_0x5e9016,_0x51a289,_0x5b9f0b){SmsAccountEvents[_0x1d09('0x6')](_0x511ca5+':'+_0x5e9016['id'],_0x5e9016);SmsAccountEvents['emit'](_0x511ca5,_0x5e9016);_0x5b9f0b(null);};}for(var e in events){if(events[_0x1d09('0x7')](e)){var event=events[e];SmsAccount[_0x1d09('0x8')](e,emitEvent(event));}}module[_0x1d09('0x9')]=SmsAccountEvents;
\ No newline at end of file
+var _0xc3fe=['update','remove','emit','hasOwnProperty','exports','events','../../mysqldb','SmsAccount','setMaxListeners','save'];(function(_0x3b5c2c,_0x2e182b){var _0xb3063e=function(_0x2995c2){while(--_0x2995c2){_0x3b5c2c['push'](_0x3b5c2c['shift']());}};_0xb3063e(++_0x2e182b);}(_0xc3fe,0x1bd));var _0xec3f=function(_0x2647de,_0x54d5c9){_0x2647de=_0x2647de-0x0;var _0x170eb2=_0xc3fe[_0x2647de];return _0x170eb2;};'use strict';var EventEmitter=require(_0xec3f('0x0'));var SmsAccount=require(_0xec3f('0x1'))['db'][_0xec3f('0x2')];var SmsAccountEvents=new EventEmitter();SmsAccountEvents[_0xec3f('0x3')](0x0);var events={'afterCreate':_0xec3f('0x4'),'afterUpdate':_0xec3f('0x5'),'afterDestroy':_0xec3f('0x6')};function emitEvent(_0x2de12f){return function(_0x2c59bc,_0x3b0a95,_0x280f07){SmsAccountEvents[_0xec3f('0x7')](_0x2de12f+':'+_0x2c59bc['id'],_0x2c59bc);SmsAccountEvents[_0xec3f('0x7')](_0x2de12f,_0x2c59bc);_0x280f07(null);};}for(var e in events){if(events[_0xec3f('0x8')](e)){var event=events[e];SmsAccount['hook'](e,emitEvent(event));}}module[_0xec3f('0x9')]=SmsAccountEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x33ac=['exports','SmsAccount','sms_accounts','util','api','moment','bluebird','request-promise','path','rimraf'];(function(_0x486695,_0x195e9d){var _0x2e5189=function(_0x3b8f75){while(--_0x3b8f75){_0x486695['push'](_0x486695['shift']());}};_0x2e5189(++_0x195e9d);}(_0x33ac,0x7b));var _0xc33a=function(_0x5103ad,_0x53df33){_0x5103ad=_0x5103ad-0x0;var _0x56beaa=_0x33ac[_0x5103ad];return _0x56beaa;};'use strict';var _=require('lodash');var util=require(_0xc33a('0x0'));var logger=require('../../config/logger')(_0xc33a('0x1'));var moment=require(_0xc33a('0x2'));var BPromise=require(_0xc33a('0x3'));var rp=require(_0xc33a('0x4'));var fs=require('fs');var path=require(_0xc33a('0x5'));var rimraf=require(_0xc33a('0x6'));var config=require('../../config/environment');var attributes=require('./smsAccount.attributes');module[_0xc33a('0x7')]=function(_0x4124f6,_0xfb5eb){return _0x4124f6['define'](_0xc33a('0x8'),attributes,{'tableName':_0xc33a('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x17eb=['lodash','../../config/logger','api','moment','request-promise','path','../../config/environment','./smsAccount.attributes','exports','define','sms_accounts'];(function(_0x521e14,_0x229cde){var _0x30959c=function(_0x23e8d3){while(--_0x23e8d3){_0x521e14['push'](_0x521e14['shift']());}};_0x30959c(++_0x229cde);}(_0x17eb,0xfd));var _0xb17e=function(_0x5d42a1,_0x1a045a){_0x5d42a1=_0x5d42a1-0x0;var _0x964bc1=_0x17eb[_0x5d42a1];return _0x964bc1;};'use strict';var _=require(_0xb17e('0x0'));var util=require('util');var logger=require(_0xb17e('0x1'))(_0xb17e('0x2'));var moment=require(_0xb17e('0x3'));var BPromise=require('bluebird');var rp=require(_0xb17e('0x4'));var fs=require('fs');var path=require(_0xb17e('0x5'));var rimraf=require('rimraf');var config=require(_0xb17e('0x6'));var attributes=require(_0xb17e('0x7'));module[_0xb17e('0x8')]=function(_0x3c5209,_0x5e54bd){return _0x3c5209[_0xb17e('0x9')]('SmsAccount',attributes,{'tableName':_0xb17e('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5b17=['SmsAccount,\x20%s,\x20%s','request\x20sent','debug','stringify','error','message','result','catch','ShowSmsAccount','find','options','raw','attributes','include','model','map','lodash','util','moment','randomstring','ioredis','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','localhost','socket.io-emitter','./smsAccount.socket','register','request','then','info'];(function(_0x648163,_0x241576){var _0x199d4d=function(_0x23055d){while(--_0x23055d){_0x648163['push'](_0x648163['shift']());}};_0x199d4d(++_0x241576);}(_0x5b17,0x1b4));var _0x75b1=function(_0xe6b1e5,_0x527d27){_0xe6b1e5=_0xe6b1e5-0x0;var _0x5d0ff2=_0x5b17[_0xe6b1e5];return _0x5d0ff2;};'use strict';var _=require(_0x75b1('0x0'));var util=require(_0x75b1('0x1'));var moment=require(_0x75b1('0x2'));var BPromise=require('bluebird');var rs=require(_0x75b1('0x3'));var fs=require('fs');var Redis=require(_0x75b1('0x4'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0x75b1('0x5'))(_0x75b1('0x6'));var config=require(_0x75b1('0x7'));var jayson=require(_0x75b1('0x8'));var client=jayson[_0x75b1('0x9')][_0x75b1('0xa')]({'port':0x232a});config[_0x75b1('0xb')]=_['defaults'](config['redis'],{'host':_0x75b1('0xc'),'port':0x18eb});var socket=require(_0x75b1('0xd'))(new Redis(config[_0x75b1('0xb')]));require(_0x75b1('0xe'))[_0x75b1('0xf')](socket);function respondWithRpcPromise(_0x6e493e,_0x4e4b62,_0x2f2641){return new BPromise(function(_0x25cc32,_0xe43449){return client[_0x75b1('0x10')](_0x6e493e,_0x2f2641)[_0x75b1('0x11')](function(_0x5058de){logger[_0x75b1('0x12')](_0x75b1('0x13'),_0x4e4b62,_0x75b1('0x14'));logger[_0x75b1('0x15')]('SmsAccount,\x20%s,\x20%s,\x20%s',_0x4e4b62,_0x75b1('0x14'),JSON[_0x75b1('0x16')](_0x5058de));if(_0x5058de[_0x75b1('0x17')]){if(_0x5058de[_0x75b1('0x17')]['code']===0x1f4){logger[_0x75b1('0x17')](_0x75b1('0x13'),_0x4e4b62,_0x5058de['error']['message']);return _0xe43449(_0x5058de['error'][_0x75b1('0x18')]);}logger['error']('SmsAccount,\x20%s,\x20%s',_0x4e4b62,_0x5058de[_0x75b1('0x17')]['message']);return _0x25cc32(_0x5058de['error'][_0x75b1('0x18')]);}else{logger[_0x75b1('0x12')](_0x75b1('0x13'),_0x4e4b62,_0x75b1('0x14'));_0x25cc32(_0x5058de[_0x75b1('0x19')][_0x75b1('0x18')]);}})[_0x75b1('0x1a')](function(_0x3974a1){logger[_0x75b1('0x17')](_0x75b1('0x13'),_0x4e4b62,_0x3974a1);_0xe43449(_0x3974a1);});});}exports[_0x75b1('0x1b')]=function(_0x349dd7){var _0x89a7f7=this;return new Promise(function(_0x41eecd,_0x5e9102){return db['SmsAccount'][_0x75b1('0x1c')]({'raw':_0x349dd7[_0x75b1('0x1d')]?_0x349dd7[_0x75b1('0x1d')][_0x75b1('0x1e')]===undefined?!![]:![]:!![],'where':_0x349dd7[_0x75b1('0x1d')]?_0x349dd7[_0x75b1('0x1d')]['where']||null:null,'attributes':_0x349dd7[_0x75b1('0x1d')]?_0x349dd7[_0x75b1('0x1d')][_0x75b1('0x1f')]||null:null,'include':_0x349dd7[_0x75b1('0x1d')]?_0x349dd7[_0x75b1('0x1d')][_0x75b1('0x20')]?_['map'](_0x349dd7['options']['include'],function(_0x515aa2){return{'model':db[_0x515aa2[_0x75b1('0x21')]],'as':_0x515aa2['as'],'attributes':_0x515aa2['attributes'],'include':_0x515aa2[_0x75b1('0x20')]?_['map'](_0x515aa2[_0x75b1('0x20')],function(_0x3b75cd){return{'model':db[_0x3b75cd[_0x75b1('0x21')]],'as':_0x3b75cd['as'],'attributes':_0x3b75cd[_0x75b1('0x1f')],'include':_0x3b75cd[_0x75b1('0x20')]?_[_0x75b1('0x22')](_0x3b75cd[_0x75b1('0x20')],function(_0x1bfcbe){return{'model':db[_0x1bfcbe[_0x75b1('0x21')]],'as':_0x1bfcbe['as'],'attributes':_0x1bfcbe[_0x75b1('0x1f')]};}):[]};}):[]};}):[]:[]})[_0x75b1('0x11')](function(_0x38af6c){logger[_0x75b1('0x12')](_0x75b1('0x1b'),_0x349dd7);logger[_0x75b1('0x15')]('ShowSmsAccount',_0x349dd7,JSON[_0x75b1('0x16')](_0x38af6c));_0x41eecd(_0x38af6c);})['catch'](function(_0x25c87f){logger['error'](_0x75b1('0x1b'),_0x25c87f[_0x75b1('0x18')],_0x349dd7);_0x5e9102(_0x89a7f7[_0x75b1('0x17')](0x1f4,_0x25c87f['message']));});});};
\ No newline at end of file
+var _0x20f9=['SmsAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','SmsAccount,\x20%s,\x20%s','message','result','catch','SmsAccount','find','options','raw','where','attributes','map','include','model','then','ShowSmsAccount','util','moment','bluebird','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','client','redis','defaults','socket.io-emitter','register','info','request\x20sent','debug'];(function(_0x5ad3b0,_0x15bdad){var _0x3a01f9=function(_0x2ed51a){while(--_0x2ed51a){_0x5ad3b0['push'](_0x5ad3b0['shift']());}};_0x3a01f9(++_0x15bdad);}(_0x20f9,0x1b7));var _0x920f=function(_0xdc37a1,_0x53ebb9){_0xdc37a1=_0xdc37a1-0x0;var _0x99b4fe=_0x20f9[_0xdc37a1];return _0x99b4fe;};'use strict';var _=require('lodash');var util=require(_0x920f('0x0'));var moment=require(_0x920f('0x1'));var BPromise=require(_0x920f('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x920f('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0x920f('0x4'));var logger=require(_0x920f('0x5'))(_0x920f('0x6'));var config=require(_0x920f('0x7'));var jayson=require('jayson/promise');var client=jayson[_0x920f('0x8')]['http']({'port':0x232a});config[_0x920f('0x9')]=_[_0x920f('0xa')](config[_0x920f('0x9')],{'host':'localhost','port':0x18eb});var socket=require(_0x920f('0xb'))(new Redis(config[_0x920f('0x9')]));require('./smsAccount.socket')[_0x920f('0xc')](socket);function respondWithRpcPromise(_0x1b3d3b,_0x37a03a,_0x7ae4b2){return new BPromise(function(_0x579025,_0x3aab96){return client['request'](_0x1b3d3b,_0x7ae4b2)['then'](function(_0x347a74){logger[_0x920f('0xd')]('SmsAccount,\x20%s,\x20%s',_0x37a03a,_0x920f('0xe'));logger[_0x920f('0xf')](_0x920f('0x10'),_0x37a03a,'request\x20sent',JSON[_0x920f('0x11')](_0x347a74));if(_0x347a74[_0x920f('0x12')]){if(_0x347a74[_0x920f('0x12')][_0x920f('0x13')]===0x1f4){logger[_0x920f('0x12')](_0x920f('0x14'),_0x37a03a,_0x347a74[_0x920f('0x12')][_0x920f('0x15')]);return _0x3aab96(_0x347a74[_0x920f('0x12')]['message']);}logger['error'](_0x920f('0x14'),_0x37a03a,_0x347a74[_0x920f('0x12')][_0x920f('0x15')]);return _0x579025(_0x347a74[_0x920f('0x12')][_0x920f('0x15')]);}else{logger[_0x920f('0xd')](_0x920f('0x14'),_0x37a03a,_0x920f('0xe'));_0x579025(_0x347a74[_0x920f('0x16')][_0x920f('0x15')]);}})[_0x920f('0x17')](function(_0x11ed2e){logger['error'](_0x920f('0x14'),_0x37a03a,_0x11ed2e);_0x3aab96(_0x11ed2e);});});}exports['ShowSmsAccount']=function(_0x4c306d){var _0x3ea039=this;return new Promise(function(_0x38164a,_0x2361d1){return db[_0x920f('0x18')][_0x920f('0x19')]({'raw':_0x4c306d['options']?_0x4c306d[_0x920f('0x1a')][_0x920f('0x1b')]===undefined?!![]:![]:!![],'where':_0x4c306d[_0x920f('0x1a')]?_0x4c306d[_0x920f('0x1a')][_0x920f('0x1c')]||null:null,'attributes':_0x4c306d[_0x920f('0x1a')]?_0x4c306d[_0x920f('0x1a')][_0x920f('0x1d')]||null:null,'include':_0x4c306d[_0x920f('0x1a')]?_0x4c306d[_0x920f('0x1a')]['include']?_[_0x920f('0x1e')](_0x4c306d[_0x920f('0x1a')][_0x920f('0x1f')],function(_0x5941d1){return{'model':db[_0x5941d1[_0x920f('0x20')]],'as':_0x5941d1['as'],'attributes':_0x5941d1[_0x920f('0x1d')],'include':_0x5941d1['include']?_[_0x920f('0x1e')](_0x5941d1[_0x920f('0x1f')],function(_0x497ab1){return{'model':db[_0x497ab1[_0x920f('0x20')]],'as':_0x497ab1['as'],'attributes':_0x497ab1[_0x920f('0x1d')],'include':_0x497ab1[_0x920f('0x1f')]?_[_0x920f('0x1e')](_0x497ab1[_0x920f('0x1f')],function(_0x4fce0f){return{'model':db[_0x4fce0f[_0x920f('0x20')]],'as':_0x4fce0f['as'],'attributes':_0x4fce0f[_0x920f('0x1d')]};}):[]};}):[]};}):[]:[]})[_0x920f('0x21')](function(_0x3c467e){logger[_0x920f('0xd')]('ShowSmsAccount',_0x4c306d);logger['debug'](_0x920f('0x22'),_0x4c306d,JSON['stringify'](_0x3c467e));_0x38164a(_0x3c467e);})[_0x920f('0x17')](function(_0x2b9f98){logger[_0x920f('0x12')](_0x920f('0x22'),_0x2b9f98[_0x920f('0x15')],_0x4c306d);_0x2361d1(_0x3ea039[_0x920f('0x12')](0x1f4,_0x2b9f98['message']));});});};
\ 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(_0x59ee6f,_0x450239){var _0x4c0979=function(_0x565e92){while(--_0x565e92){_0x59ee6f['push'](_0x59ee6f['shift']());}};_0x4c0979(++_0x450239);}(_0xa9e0,0x123));var _0x0a9e=function(_0x34bf97,_0xc60f9d){_0x34bf97=_0x34bf97-0x0;var _0x292719=_0xa9e0[_0x34bf97];return _0x292719;};'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(_0x19950b,_0x53d0d7){var _0x3c6b41=function(_0x3924ad){while(--_0x3924ad){_0x19950b['push'](_0x19950b['shift']());}};_0x3c6b41(++_0x53d0d7);}(_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(_0x3fd93a,_0x38a9ef){var _0x4c4319=function(_0x302776){while(--_0x302776){_0x3fd93a['push'](_0x3fd93a['shift']());}};_0x4c4319(++_0x38a9ef);}(_0x7217,0x19e));var _0x7721=function(_0x36dfbd,_0x5bfe2d){_0x36dfbd=_0x36dfbd-0x0;var _0x4ecad9=_0x7217[_0x36dfbd];return _0x4ecad9;};'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(_0x341240,_0xfde9d9){var _0x726c87=function(_0x3e8339){while(--_0x3e8339){_0x341240['push'](_0x341240['shift']());}};_0x726c87(++_0xfde9d9);}(_0xedd9,0xfc));var _0x9edd=function(_0x54c243,_0x2241f6){_0x54c243=_0x54c243-0x0;var _0x4aa28a=_0xedd9[_0x54c243];return _0x4aa28a;};'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 _0x0304=['INTEGER','STRING','noop','*,*,*,*','sequelize','exports'];(function(_0x85438,_0x380b7d){var _0x228cfb=function(_0x33e889){while(--_0x33e889){_0x85438['push'](_0x85438['shift']());}};_0x228cfb(++_0x380b7d);}(_0x0304,0xd6));var _0x4030=function(_0xaa1b3e,_0x47d976){_0xaa1b3e=_0xaa1b3e-0x0;var _0x454d7d=_0x0304[_0xaa1b3e];return _0x454d7d;};'use strict';var Sequelize=require(_0x4030('0x0'));module[_0x4030('0x1')]={'priority':{'type':Sequelize[_0x4030('0x2')],'allowNull':![]},'app':{'type':Sequelize[_0x4030('0x3')],'allowNull':![],'defaultValue':_0x4030('0x4')},'appdata':{'type':Sequelize['TEXT']()},'description':{'type':Sequelize['STRING']},'interval':{'type':Sequelize[_0x4030('0x3')],'defaultValue':_0x4030('0x5')}};
\ No newline at end of file
+var _0xdd3a=['INTEGER','STRING','noop','TEXT','*,*,*,*','sequelize','exports'];(function(_0x4565bf,_0x5ad9d6){var _0x5610ba=function(_0x170988){while(--_0x170988){_0x4565bf['push'](_0x4565bf['shift']());}};_0x5610ba(++_0x5ad9d6);}(_0xdd3a,0x186));var _0xadd3=function(_0x1cec71,_0x10e291){_0x1cec71=_0x1cec71-0x0;var _0x25cf66=_0xdd3a[_0x1cec71];return _0x25cf66;};'use strict';var Sequelize=require(_0xadd3('0x0'));module[_0xadd3('0x1')]={'priority':{'type':Sequelize[_0xadd3('0x2')],'allowNull':![]},'app':{'type':Sequelize[_0xadd3('0x3')],'allowNull':![],'defaultValue':_0xadd3('0x4')},'appdata':{'type':Sequelize[_0xadd3('0x5')]()},'description':{'type':Sequelize[_0xadd3('0x3')]},'interval':{'type':Sequelize[_0xadd3('0x3')],'defaultValue':_0xadd3('0x6')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xeeea=['filters','attributes','intersection','model','fields','length','hasOwnProperty','nolimit','where','filter','merge','VIRTUAL','options','includeAll','SmsApplication','findAll','rows','catch','show','rawAttributes','include','find','create','body','params','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','util','path','sox','ejs','fs-extra','lodash','squel','crypto','desk.js','to-csv','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','undefined','limit','count','offset','set','apply','reject','save','update','destroy','then','end','error','stack','name','send','map','fieldName','type','query','keys'];(function(_0x544b31,_0x5b2203){var _0x3528ed=function(_0x58e037){while(--_0x58e037){_0x544b31['push'](_0x544b31['shift']());}};_0x3528ed(++_0x5b2203);}(_0xeeea,0xf4));var _0xaeee=function(_0x554435,_0x58b7a3){_0x554435=_0x554435-0x0;var _0x1ef31b=_0xeeea[_0x554435];return _0x1ef31b;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xaeee('0x0'));var zipdir=require(_0xaeee('0x1'));var jsonpatch=require(_0xaeee('0x2'));var rp=require(_0xaeee('0x3'));var moment=require('moment');var BPromise=require(_0xaeee('0x4'));var Mustache=require('mustache');var util=require(_0xaeee('0x5'));var path=require(_0xaeee('0x6'));var sox=require(_0xaeee('0x7'));var csv=require('to-csv');var ejs=require(_0xaeee('0x8'));var fs=require('fs');var fs_extra=require(_0xaeee('0x9'));var _=require(_0xaeee('0xa'));var squel=require(_0xaeee('0xb'));var crypto=require(_0xaeee('0xc'));var jsforce=require('jsforce');var deskjs=require(_0xaeee('0xd'));var toCsv=require(_0xaeee('0xe'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0xaeee('0xf'));var authService=require('../../components/auth/service');var qs=require(_0xaeee('0x10'));var as=require(_0xaeee('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xaeee('0x12'))(_0xaeee('0x13'));var utils=require(_0xaeee('0x14'));var config=require(_0xaeee('0x15'));var licenseUtil=require(_0xaeee('0x16'));var db=require(_0xaeee('0x17'))['db'];function respondWithStatusCode(_0xe4d9b9,_0x5799fd){_0x5799fd=_0x5799fd||0xcc;return function(_0xde7d90){if(_0xde7d90){return _0xe4d9b9[_0xaeee('0x18')](_0x5799fd);}return _0xe4d9b9[_0xaeee('0x19')](_0x5799fd)['end']();};}function respondWithResult(_0x2ffef1,_0xb05031){_0xb05031=_0xb05031||0xc8;return function(_0x5646ea){if(_0x5646ea){return _0x2ffef1[_0xaeee('0x19')](_0xb05031)[_0xaeee('0x1a')](_0x5646ea);}};}function respondWithFilteredResult(_0x4926dd,_0x523e15){return function(_0x14b6c5){if(_0x14b6c5){var _0x10acf5=typeof _0x523e15['offset']===_0xaeee('0x1b')&&typeof _0x523e15[_0xaeee('0x1c')]===_0xaeee('0x1b');var _0x24ca5f=_0x14b6c5[_0xaeee('0x1d')];var _0x46dd5b=_0x10acf5?0x0:_0x523e15[_0xaeee('0x1e')];var _0x5a632c=_0x10acf5?_0x14b6c5[_0xaeee('0x1d')]:_0x523e15[_0xaeee('0x1e')]+_0x523e15[_0xaeee('0x1c')];var _0x260df5;if(_0x5a632c>=_0x24ca5f){_0x5a632c=_0x24ca5f;_0x260df5=0xc8;}else{_0x260df5=0xce;}_0x4926dd['status'](_0x260df5);return _0x4926dd[_0xaeee('0x1f')]('Content-Range',_0x46dd5b+'-'+_0x5a632c+'/'+_0x24ca5f)['json'](_0x14b6c5);}return null;};}function patchUpdates(_0x32a504){return function(_0x15b375){try{jsonpatch[_0xaeee('0x20')](_0x15b375,_0x32a504,!![]);}catch(_0x23a78b){return BPromise[_0xaeee('0x21')](_0x23a78b);}return _0x15b375[_0xaeee('0x22')]();};}function saveUpdates(_0x1a6e1d,_0x5c9d8b){return function(_0x2f5a00){if(_0x2f5a00){return _0x2f5a00[_0xaeee('0x23')](_0x1a6e1d)['then'](function(_0x3b62a5){return _0x3b62a5;});}return null;};}function removeEntity(_0x5efa12,_0x263b33){return function(_0x1cca77){if(_0x1cca77){return _0x1cca77[_0xaeee('0x24')]()[_0xaeee('0x25')](function(){_0x5efa12['status'](0xcc)[_0xaeee('0x26')]();});}};}function handleEntityNotFound(_0x279b0d,_0x53e8f3){return function(_0x3dbbe4){if(!_0x3dbbe4){_0x279b0d['sendStatus'](0x194);}return _0x3dbbe4;};}function handleError(_0x366c63,_0x435d53){_0x435d53=_0x435d53||0x1f4;return function(_0x737a8f){logger[_0xaeee('0x27')](_0x737a8f[_0xaeee('0x28')]);if(_0x737a8f[_0xaeee('0x29')]){delete _0x737a8f[_0xaeee('0x29')];}_0x366c63[_0xaeee('0x19')](_0x435d53)[_0xaeee('0x2a')](_0x737a8f);};}exports['index']=function(_0x19bfe8,_0x5efd93){var _0x423ff9={},_0x273253={},_0x29ab73={'count':0x0,'rows':[]};var _0x5bcae0=_[_0xaeee('0x2b')](db['SmsApplication']['rawAttributes'],function(_0x3020a9){return{'name':_0x3020a9[_0xaeee('0x2c')],'type':_0x3020a9[_0xaeee('0x2d')]['key']};});_0x273253['model']=_[_0xaeee('0x2b')](_0x5bcae0,_0xaeee('0x29'));_0x273253[_0xaeee('0x2e')]=_[_0xaeee('0x2f')](_0x19bfe8[_0xaeee('0x2e')]);_0x273253[_0xaeee('0x30')]=_['intersection'](_0x273253['model'],_0x273253[_0xaeee('0x2e')]);_0x423ff9[_0xaeee('0x31')]=_[_0xaeee('0x32')](_0x273253[_0xaeee('0x33')],qs[_0xaeee('0x34')](_0x19bfe8['query'][_0xaeee('0x34')]));_0x423ff9[_0xaeee('0x31')]=_0x423ff9[_0xaeee('0x31')][_0xaeee('0x35')]?_0x423ff9[_0xaeee('0x31')]:_0x273253[_0xaeee('0x33')];if(!_0x19bfe8[_0xaeee('0x2e')][_0xaeee('0x36')](_0xaeee('0x37'))){_0x423ff9['limit']=qs[_0xaeee('0x1c')](_0x19bfe8['query'][_0xaeee('0x1c')]);_0x423ff9['offset']=qs[_0xaeee('0x1e')](_0x19bfe8['query'][_0xaeee('0x1e')]);}_0x423ff9['order']=qs['sort'](_0x19bfe8[_0xaeee('0x2e')]['sort']);_0x423ff9[_0xaeee('0x38')]=qs['filters'](_['pick'](_0x19bfe8[_0xaeee('0x2e')],_0x273253[_0xaeee('0x30')]),_0x5bcae0);if(_0x19bfe8[_0xaeee('0x2e')][_0xaeee('0x39')]){_0x423ff9[_0xaeee('0x38')]=_[_0xaeee('0x3a')](_0x423ff9['where'],{'$or':_['map'](_0x5bcae0,function(_0x3a12be){if(_0x3a12be['type']!==_0xaeee('0x3b')){var _0x117492={};_0x117492[_0x3a12be[_0xaeee('0x29')]]={'$like':'%'+_0x19bfe8['query'][_0xaeee('0x39')]+'%'};return _0x117492;}})});}_0x423ff9=_['merge']({},_0x423ff9,_0x19bfe8[_0xaeee('0x3c')]);var _0x48a465={'where':_0x423ff9[_0xaeee('0x38')]};return db['SmsApplication'][_0xaeee('0x1d')](_0x48a465)[_0xaeee('0x25')](function(_0x2a7441){_0x29ab73[_0xaeee('0x1d')]=_0x2a7441;if(_0x19bfe8['query'][_0xaeee('0x3d')]){_0x423ff9['include']=[{'all':!![]}];}return db[_0xaeee('0x3e')][_0xaeee('0x3f')](_0x423ff9);})[_0xaeee('0x25')](function(_0x1497b7){_0x29ab73[_0xaeee('0x40')]=_0x1497b7;return _0x29ab73;})[_0xaeee('0x25')](respondWithFilteredResult(_0x5efd93,_0x423ff9))[_0xaeee('0x41')](handleError(_0x5efd93,null));};exports[_0xaeee('0x42')]=function(_0x4861ca,_0x3628c1){var _0x26bc59={'raw':!![],'where':{'id':_0x4861ca['params']['id']}},_0x1c9ae6={};_0x1c9ae6[_0xaeee('0x33')]=_[_0xaeee('0x2f')](db['SmsApplication'][_0xaeee('0x43')]);_0x1c9ae6[_0xaeee('0x2e')]=_['keys'](_0x4861ca[_0xaeee('0x2e')]);_0x1c9ae6[_0xaeee('0x30')]=_[_0xaeee('0x32')](_0x1c9ae6['model'],_0x1c9ae6['query']);_0x26bc59[_0xaeee('0x31')]=_[_0xaeee('0x32')](_0x1c9ae6[_0xaeee('0x33')],qs[_0xaeee('0x34')](_0x4861ca['query']['fields']));_0x26bc59[_0xaeee('0x31')]=_0x26bc59[_0xaeee('0x31')][_0xaeee('0x35')]?_0x26bc59['attributes']:_0x1c9ae6['model'];if(_0x4861ca[_0xaeee('0x2e')]['includeAll']){_0x26bc59[_0xaeee('0x44')]=[{'all':!![]}];}_0x26bc59=_[_0xaeee('0x3a')]({},_0x26bc59,_0x4861ca[_0xaeee('0x3c')]);return db['SmsApplication'][_0xaeee('0x45')](_0x26bc59)[_0xaeee('0x25')](handleEntityNotFound(_0x3628c1,null))[_0xaeee('0x25')](respondWithResult(_0x3628c1,null))['catch'](handleError(_0x3628c1,null));};exports[_0xaeee('0x46')]=function(_0x325b2d,_0x1ca759){return db[_0xaeee('0x3e')][_0xaeee('0x46')](_0x325b2d[_0xaeee('0x47')],{})['then'](respondWithResult(_0x1ca759,0xc9))['catch'](handleError(_0x1ca759,null));};exports[_0xaeee('0x23')]=function(_0x1d7498,_0x2315a4){if(_0x1d7498[_0xaeee('0x47')]['id']){delete _0x1d7498[_0xaeee('0x47')]['id'];}return db[_0xaeee('0x3e')][_0xaeee('0x45')]({'where':{'id':_0x1d7498[_0xaeee('0x48')]['id']}})['then'](handleEntityNotFound(_0x2315a4,null))[_0xaeee('0x25')](saveUpdates(_0x1d7498[_0xaeee('0x47')],null))['then'](respondWithResult(_0x2315a4,null))[_0xaeee('0x41')](handleError(_0x2315a4,null));};exports['destroy']=function(_0x321b9c,_0x55f345){return db[_0xaeee('0x3e')][_0xaeee('0x45')]({'where':{'id':_0x321b9c[_0xaeee('0x48')]['id']}})[_0xaeee('0x25')](handleEntityNotFound(_0x55f345,null))[_0xaeee('0x25')](removeEntity(_0x55f345,null))[_0xaeee('0x41')](handleError(_0x55f345,null));};
\ No newline at end of file
+var _0x3a99=['end','error','stack','name','index','map','SmsApplication','rawAttributes','type','model','query','keys','filters','intersection','attributes','fields','length','nolimit','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','catch','show','params','find','create','body','destroy','eml-format','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','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','then'];(function(_0x389be4,_0x566c43){var _0x555b24=function(_0x402361){while(--_0x402361){_0x389be4['push'](_0x389be4['shift']());}};_0x555b24(++_0x566c43);}(_0x3a99,0x104));var _0x93a9=function(_0x5dee2f,_0x2930b8){_0x5dee2f=_0x5dee2f-0x0;var _0x3a47cd=_0x3a99[_0x5dee2f];return _0x3a47cd;};'use strict';var emlformat=require(_0x93a9('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x93a9('0x1'));var jsonpatch=require(_0x93a9('0x2'));var rp=require(_0x93a9('0x3'));var moment=require('moment');var BPromise=require(_0x93a9('0x4'));var Mustache=require(_0x93a9('0x5'));var util=require(_0x93a9('0x6'));var path=require(_0x93a9('0x7'));var sox=require(_0x93a9('0x8'));var csv=require(_0x93a9('0x9'));var ejs=require(_0x93a9('0xa'));var fs=require('fs');var fs_extra=require(_0x93a9('0xb'));var _=require(_0x93a9('0xc'));var squel=require(_0x93a9('0xd'));var crypto=require(_0x93a9('0xe'));var jsforce=require(_0x93a9('0xf'));var deskjs=require(_0x93a9('0x10'));var toCsv=require('to-csv');var querystring=require(_0x93a9('0x11'));var Papa=require(_0x93a9('0x12'));var Redis=require(_0x93a9('0x13'));var authService=require(_0x93a9('0x14'));var qs=require('../../components/parsers/qs');var as=require(_0x93a9('0x15'));var hardwareService=require(_0x93a9('0x16'));var logger=require(_0x93a9('0x17'))(_0x93a9('0x18'));var utils=require(_0x93a9('0x19'));var config=require('../../config/environment');var licenseUtil=require(_0x93a9('0x1a'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x4b6302,_0x1370e3){_0x1370e3=_0x1370e3||0xcc;return function(_0x1b8309){if(_0x1b8309){return _0x4b6302[_0x93a9('0x1b')](_0x1370e3);}return _0x4b6302[_0x93a9('0x1c')](_0x1370e3)['end']();};}function respondWithResult(_0x1e669b,_0xa03f75){_0xa03f75=_0xa03f75||0xc8;return function(_0x524d16){if(_0x524d16){return _0x1e669b[_0x93a9('0x1c')](_0xa03f75)[_0x93a9('0x1d')](_0x524d16);}};}function respondWithFilteredResult(_0x55126c,_0x5305cf){return function(_0x37be79){if(_0x37be79){var _0x32c167=typeof _0x5305cf[_0x93a9('0x1e')]===_0x93a9('0x1f')&&typeof _0x5305cf[_0x93a9('0x20')]===_0x93a9('0x1f');var _0x328654=_0x37be79[_0x93a9('0x21')];var _0x24b828=_0x32c167?0x0:_0x5305cf[_0x93a9('0x1e')];var _0x51a657=_0x32c167?_0x37be79[_0x93a9('0x21')]:_0x5305cf[_0x93a9('0x1e')]+_0x5305cf['limit'];var _0x4e877f;if(_0x51a657>=_0x328654){_0x51a657=_0x328654;_0x4e877f=0xc8;}else{_0x4e877f=0xce;}_0x55126c['status'](_0x4e877f);return _0x55126c[_0x93a9('0x22')](_0x93a9('0x23'),_0x24b828+'-'+_0x51a657+'/'+_0x328654)[_0x93a9('0x1d')](_0x37be79);}return null;};}function patchUpdates(_0x4660c0){return function(_0x587a1d){try{jsonpatch[_0x93a9('0x24')](_0x587a1d,_0x4660c0,!![]);}catch(_0x59a72c){return BPromise[_0x93a9('0x25')](_0x59a72c);}return _0x587a1d[_0x93a9('0x26')]();};}function saveUpdates(_0x477eae,_0x3b87f9){return function(_0x5c93ba){if(_0x5c93ba){return _0x5c93ba['update'](_0x477eae)[_0x93a9('0x27')](function(_0x488d9f){return _0x488d9f;});}return null;};}function removeEntity(_0x6fbaf5,_0x3cb6ad){return function(_0x378a80){if(_0x378a80){return _0x378a80['destroy']()[_0x93a9('0x27')](function(){_0x6fbaf5[_0x93a9('0x1c')](0xcc)[_0x93a9('0x28')]();});}};}function handleEntityNotFound(_0x4d9712,_0x1cc671){return function(_0x3a7d35){if(!_0x3a7d35){_0x4d9712[_0x93a9('0x1b')](0x194);}return _0x3a7d35;};}function handleError(_0x29be63,_0x2a6689){_0x2a6689=_0x2a6689||0x1f4;return function(_0xae7444){logger[_0x93a9('0x29')](_0xae7444[_0x93a9('0x2a')]);if(_0xae7444[_0x93a9('0x2b')]){delete _0xae7444[_0x93a9('0x2b')];}_0x29be63[_0x93a9('0x1c')](_0x2a6689)['send'](_0xae7444);};}exports[_0x93a9('0x2c')]=function(_0x30a97d,_0x48b164){var _0x2b3edf={},_0x4f714c={},_0x29e00f={'count':0x0,'rows':[]};var _0x2fa39f=_[_0x93a9('0x2d')](db[_0x93a9('0x2e')][_0x93a9('0x2f')],function(_0x1ee63a){return{'name':_0x1ee63a['fieldName'],'type':_0x1ee63a[_0x93a9('0x30')]['key']};});_0x4f714c[_0x93a9('0x31')]=_[_0x93a9('0x2d')](_0x2fa39f,_0x93a9('0x2b'));_0x4f714c[_0x93a9('0x32')]=_[_0x93a9('0x33')](_0x30a97d[_0x93a9('0x32')]);_0x4f714c[_0x93a9('0x34')]=_[_0x93a9('0x35')](_0x4f714c['model'],_0x4f714c[_0x93a9('0x32')]);_0x2b3edf[_0x93a9('0x36')]=_[_0x93a9('0x35')](_0x4f714c[_0x93a9('0x31')],qs[_0x93a9('0x37')](_0x30a97d['query'][_0x93a9('0x37')]));_0x2b3edf['attributes']=_0x2b3edf[_0x93a9('0x36')][_0x93a9('0x38')]?_0x2b3edf[_0x93a9('0x36')]:_0x4f714c[_0x93a9('0x31')];if(!_0x30a97d[_0x93a9('0x32')]['hasOwnProperty'](_0x93a9('0x39'))){_0x2b3edf['limit']=qs[_0x93a9('0x20')](_0x30a97d['query'][_0x93a9('0x20')]);_0x2b3edf[_0x93a9('0x1e')]=qs['offset'](_0x30a97d[_0x93a9('0x32')][_0x93a9('0x1e')]);}_0x2b3edf['order']=qs['sort'](_0x30a97d[_0x93a9('0x32')][_0x93a9('0x3a')]);_0x2b3edf[_0x93a9('0x3b')]=qs[_0x93a9('0x34')](_[_0x93a9('0x3c')](_0x30a97d[_0x93a9('0x32')],_0x4f714c[_0x93a9('0x34')]),_0x2fa39f);if(_0x30a97d[_0x93a9('0x32')][_0x93a9('0x3d')]){_0x2b3edf['where']=_[_0x93a9('0x3e')](_0x2b3edf[_0x93a9('0x3b')],{'$or':_[_0x93a9('0x2d')](_0x2fa39f,function(_0x5baf97){if(_0x5baf97[_0x93a9('0x30')]!==_0x93a9('0x3f')){var _0x5888dd={};_0x5888dd[_0x5baf97[_0x93a9('0x2b')]]={'$like':'%'+_0x30a97d[_0x93a9('0x32')][_0x93a9('0x3d')]+'%'};return _0x5888dd;}})});}_0x2b3edf=_[_0x93a9('0x3e')]({},_0x2b3edf,_0x30a97d[_0x93a9('0x40')]);var _0x306d1={'where':_0x2b3edf[_0x93a9('0x3b')]};return db[_0x93a9('0x2e')]['count'](_0x306d1)[_0x93a9('0x27')](function(_0x551816){_0x29e00f[_0x93a9('0x21')]=_0x551816;if(_0x30a97d[_0x93a9('0x32')][_0x93a9('0x41')]){_0x2b3edf[_0x93a9('0x42')]=[{'all':!![]}];}return db[_0x93a9('0x2e')][_0x93a9('0x43')](_0x2b3edf);})[_0x93a9('0x27')](function(_0x2867c8){_0x29e00f['rows']=_0x2867c8;return _0x29e00f;})['then'](respondWithFilteredResult(_0x48b164,_0x2b3edf))[_0x93a9('0x44')](handleError(_0x48b164,null));};exports[_0x93a9('0x45')]=function(_0x5a30da,_0x9b599b){var _0xb3538a={'raw':!![],'where':{'id':_0x5a30da[_0x93a9('0x46')]['id']}},_0x3ab32f={};_0x3ab32f[_0x93a9('0x31')]=_['keys'](db[_0x93a9('0x2e')][_0x93a9('0x2f')]);_0x3ab32f[_0x93a9('0x32')]=_[_0x93a9('0x33')](_0x5a30da[_0x93a9('0x32')]);_0x3ab32f[_0x93a9('0x34')]=_['intersection'](_0x3ab32f[_0x93a9('0x31')],_0x3ab32f[_0x93a9('0x32')]);_0xb3538a[_0x93a9('0x36')]=_[_0x93a9('0x35')](_0x3ab32f['model'],qs['fields'](_0x5a30da['query'][_0x93a9('0x37')]));_0xb3538a['attributes']=_0xb3538a[_0x93a9('0x36')][_0x93a9('0x38')]?_0xb3538a[_0x93a9('0x36')]:_0x3ab32f[_0x93a9('0x31')];if(_0x5a30da[_0x93a9('0x32')][_0x93a9('0x41')]){_0xb3538a[_0x93a9('0x42')]=[{'all':!![]}];}_0xb3538a=_[_0x93a9('0x3e')]({},_0xb3538a,_0x5a30da[_0x93a9('0x40')]);return db[_0x93a9('0x2e')][_0x93a9('0x47')](_0xb3538a)[_0x93a9('0x27')](handleEntityNotFound(_0x9b599b,null))[_0x93a9('0x27')](respondWithResult(_0x9b599b,null))[_0x93a9('0x44')](handleError(_0x9b599b,null));};exports[_0x93a9('0x48')]=function(_0x4cf982,_0x5974e9){return db[_0x93a9('0x2e')][_0x93a9('0x48')](_0x4cf982[_0x93a9('0x49')],{})[_0x93a9('0x27')](respondWithResult(_0x5974e9,0xc9))[_0x93a9('0x44')](handleError(_0x5974e9,null));};exports['update']=function(_0x1faecd,_0x26171a){if(_0x1faecd[_0x93a9('0x49')]['id']){delete _0x1faecd[_0x93a9('0x49')]['id'];}return db[_0x93a9('0x2e')][_0x93a9('0x47')]({'where':{'id':_0x1faecd[_0x93a9('0x46')]['id']}})['then'](handleEntityNotFound(_0x26171a,null))[_0x93a9('0x27')](saveUpdates(_0x1faecd[_0x93a9('0x49')],null))[_0x93a9('0x27')](respondWithResult(_0x26171a,null))['catch'](handleError(_0x26171a,null));};exports[_0x93a9('0x4a')]=function(_0x48f2ea,_0x3fb7b5){return db[_0x93a9('0x2e')]['find']({'where':{'id':_0x48f2ea[_0x93a9('0x46')]['id']}})[_0x93a9('0x27')](handleEntityNotFound(_0x3fb7b5,null))[_0x93a9('0x27')](removeEntity(_0x3fb7b5,null))[_0x93a9('0x44')](handleError(_0x3fb7b5,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xec82=['utf8mb4_unicode_ci','lodash','api','moment','request-promise','path','rimraf','../../config/environment','./smsApplication.attributes','exports','define','SmsApplication','sms_applications'];(function(_0x28d710,_0x1539cf){var _0x26c4c6=function(_0x1b298f){while(--_0x1b298f){_0x28d710['push'](_0x28d710['shift']());}};_0x26c4c6(++_0x1539cf);}(_0xec82,0x83));var _0x2ec8=function(_0x34c9bc,_0xc70988){_0x34c9bc=_0x34c9bc-0x0;var _0x1d0385=_0xec82[_0x34c9bc];return _0x1d0385;};'use strict';var _=require(_0x2ec8('0x0'));var util=require('util');var logger=require('../../config/logger')(_0x2ec8('0x1'));var moment=require(_0x2ec8('0x2'));var BPromise=require('bluebird');var rp=require(_0x2ec8('0x3'));var fs=require('fs');var path=require(_0x2ec8('0x4'));var rimraf=require(_0x2ec8('0x5'));var config=require(_0x2ec8('0x6'));var attributes=require(_0x2ec8('0x7'));module[_0x2ec8('0x8')]=function(_0x3da5fe,_0x5f3342){return _0x3da5fe[_0x2ec8('0x9')](_0x2ec8('0xa'),attributes,{'tableName':_0x2ec8('0xb'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':'utf8mb4','collate':_0x2ec8('0xc')});};
\ No newline at end of file
+var _0x8a00=['util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./smsApplication.attributes','exports','SmsApplication','sms_applications','utf8mb4','utf8mb4_unicode_ci','lodash'];(function(_0x15cc52,_0x167dca){var _0x47224b=function(_0x2046e6){while(--_0x2046e6){_0x15cc52['push'](_0x15cc52['shift']());}};_0x47224b(++_0x167dca);}(_0x8a00,0x1ef));var _0x08a0=function(_0x206303,_0x292f07){_0x206303=_0x206303-0x0;var _0x562388=_0x8a00[_0x206303];return _0x562388;};'use strict';var _=require(_0x08a0('0x0'));var util=require(_0x08a0('0x1'));var logger=require(_0x08a0('0x2'))(_0x08a0('0x3'));var moment=require(_0x08a0('0x4'));var BPromise=require(_0x08a0('0x5'));var rp=require(_0x08a0('0x6'));var fs=require('fs');var path=require(_0x08a0('0x7'));var rimraf=require(_0x08a0('0x8'));var config=require(_0x08a0('0x9'));var attributes=require(_0x08a0('0xa'));module[_0x08a0('0xb')]=function(_0x1dba6e,_0x258c23){return _0x1dba6e['define'](_0x08a0('0xc'),attributes,{'tableName':_0x08a0('0xd'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0x08a0('0xe'),'collate':_0x08a0('0xf')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9805=['message','result','catch','lodash','util','moment','bluebird','../../mysqldb','../../config/utils','../../config/logger','rpc','client','http','request','then','info','SmsApplication,\x20%s,\x20%s','SmsApplication,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code'];(function(_0x31f9a5,_0x445189){var _0x3b55eb=function(_0x7d0057){while(--_0x7d0057){_0x31f9a5['push'](_0x31f9a5['shift']());}};_0x3b55eb(++_0x445189);}(_0x9805,0x18f));var _0x5980=function(_0x241480,_0x47de78){_0x241480=_0x241480-0x0;var _0x181e8d=_0x9805[_0x241480];return _0x181e8d;};'use strict';var _=require(_0x5980('0x0'));var util=require(_0x5980('0x1'));var moment=require(_0x5980('0x2'));var BPromise=require(_0x5980('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0x5980('0x4'))['db'];var utils=require(_0x5980('0x5'));var logger=require(_0x5980('0x6'))(_0x5980('0x7'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0x5980('0x8')][_0x5980('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x326b9b,_0x1d6536,_0x175728){return new BPromise(function(_0x3399a9,_0xf8b3c0){return client[_0x5980('0xa')](_0x326b9b,_0x175728)[_0x5980('0xb')](function(_0x35b0ad){logger[_0x5980('0xc')](_0x5980('0xd'),_0x1d6536,'request\x20sent');logger['debug'](_0x5980('0xe'),_0x1d6536,_0x5980('0xf'),JSON[_0x5980('0x10')](_0x35b0ad));if(_0x35b0ad[_0x5980('0x11')]){if(_0x35b0ad['error'][_0x5980('0x12')]===0x1f4){logger[_0x5980('0x11')]('SmsApplication,\x20%s,\x20%s',_0x1d6536,_0x35b0ad['error'][_0x5980('0x13')]);return _0xf8b3c0(_0x35b0ad[_0x5980('0x11')][_0x5980('0x13')]);}logger[_0x5980('0x11')](_0x5980('0xd'),_0x1d6536,_0x35b0ad[_0x5980('0x11')][_0x5980('0x13')]);return _0x3399a9(_0x35b0ad[_0x5980('0x11')]['message']);}else{logger[_0x5980('0xc')]('SmsApplication,\x20%s,\x20%s',_0x1d6536,_0x5980('0xf'));_0x3399a9(_0x35b0ad[_0x5980('0x14')][_0x5980('0x13')]);}})[_0x5980('0x15')](function(_0x183261){logger['error'](_0x5980('0xd'),_0x1d6536,_0x183261);_0xf8b3c0(_0x183261);});});}
\ No newline at end of file
+var _0x1aab=['SmsApplication,\x20%s,\x20%s','message','result','catch','lodash','util','moment','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','http','request','info','request\x20sent','debug','SmsApplication,\x20%s,\x20%s,\x20%s','stringify','error','code'];(function(_0x54d4a8,_0x585a59){var _0x3b321b=function(_0x245c6a){while(--_0x245c6a){_0x54d4a8['push'](_0x54d4a8['shift']());}};_0x3b321b(++_0x585a59);}(_0x1aab,0x122));var _0xb1aa=function(_0x4df153,_0x56e6ff){_0x4df153=_0x4df153-0x0;var _0x5f5412=_0x1aab[_0x4df153];return _0x5f5412;};'use strict';var _=require(_0xb1aa('0x0'));var util=require(_0xb1aa('0x1'));var moment=require(_0xb1aa('0x2'));var BPromise=require('bluebird');var rs=require(_0xb1aa('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xb1aa('0x4'))['db'];var utils=require(_0xb1aa('0x5'));var logger=require(_0xb1aa('0x6'))(_0xb1aa('0x7'));var config=require(_0xb1aa('0x8'));var jayson=require('jayson/promise');var client=jayson['client'][_0xb1aa('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x277448,_0x13a350,_0x283ad6){return new BPromise(function(_0x3415f7,_0x405387){return client[_0xb1aa('0xa')](_0x277448,_0x283ad6)['then'](function(_0x12067d){logger[_0xb1aa('0xb')]('SmsApplication,\x20%s,\x20%s',_0x13a350,_0xb1aa('0xc'));logger[_0xb1aa('0xd')](_0xb1aa('0xe'),_0x13a350,_0xb1aa('0xc'),JSON[_0xb1aa('0xf')](_0x12067d));if(_0x12067d[_0xb1aa('0x10')]){if(_0x12067d[_0xb1aa('0x10')][_0xb1aa('0x11')]===0x1f4){logger[_0xb1aa('0x10')](_0xb1aa('0x12'),_0x13a350,_0x12067d[_0xb1aa('0x10')][_0xb1aa('0x13')]);return _0x405387(_0x12067d[_0xb1aa('0x10')][_0xb1aa('0x13')]);}logger[_0xb1aa('0x10')]('SmsApplication,\x20%s,\x20%s',_0x13a350,_0x12067d['error'][_0xb1aa('0x13')]);return _0x3415f7(_0x12067d['error'][_0xb1aa('0x13')]);}else{logger['info'](_0xb1aa('0x12'),_0x13a350,'request\x20sent');_0x3415f7(_0x12067d[_0xb1aa('0x14')]['message']);}})[_0xb1aa('0x15')](function(_0x408bf8){logger['error'](_0xb1aa('0x12'),_0x13a350,_0x408bf8);_0x405387(_0x408bf8);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4cf8=['/:id','/:id/messages','getMessages','/:id/download','create','post','addMessage','/:id/tags','tracked','sms','smsinteraction:addtags','addTags','put','smsinteraction:update','delete','smsinteraction:destroy','destroy','removeTags','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./smsInteraction.controller','get','isAuthenticated','describe'];(function(_0x37c56e,_0x1631f6){var _0x14ec4b=function(_0x4a4d4d){while(--_0x4a4d4d){_0x37c56e['push'](_0x37c56e['shift']());}};_0x14ec4b(++_0x1631f6);}(_0x4cf8,0x1e1));var _0x84cf=function(_0x282f9a,_0x63dff){_0x282f9a=_0x282f9a-0x0;var _0x52528c=_0x4cf8[_0x282f9a];return _0x52528c;};'use strict';var multer=require(_0x84cf('0x0'));var util=require(_0x84cf('0x1'));var path=require(_0x84cf('0x2'));var timeout=require(_0x84cf('0x3'));var express=require(_0x84cf('0x4'));var router=express[_0x84cf('0x5')]();var fs_extra=require(_0x84cf('0x6'));var auth=require(_0x84cf('0x7'));var interaction=require(_0x84cf('0x8'));var config=require(_0x84cf('0x9'));var controller=require(_0x84cf('0xa'));router[_0x84cf('0xb')]('/',auth['isAuthenticated'](),controller['index']);router[_0x84cf('0xb')]('/describe',auth[_0x84cf('0xc')](),controller[_0x84cf('0xd')]);router['get'](_0x84cf('0xe'),auth[_0x84cf('0xc')](),controller['show']);router[_0x84cf('0xb')](_0x84cf('0xf'),auth[_0x84cf('0xc')](),controller[_0x84cf('0x10')]);router['get'](_0x84cf('0x11'),auth[_0x84cf('0xc')](),controller['download']);router['post']('/',auth[_0x84cf('0xc')](),controller[_0x84cf('0x12')]);router[_0x84cf('0x13')](_0x84cf('0xf'),auth[_0x84cf('0xc')](),controller[_0x84cf('0x14')]);router[_0x84cf('0x13')](_0x84cf('0x15'),auth[_0x84cf('0xc')](),interaction[_0x84cf('0x16')](_0x84cf('0x17'),_0x84cf('0x18')),controller[_0x84cf('0x19')]);router[_0x84cf('0x1a')](_0x84cf('0xe'),auth[_0x84cf('0xc')](),interaction[_0x84cf('0x16')](_0x84cf('0x17'),_0x84cf('0x1b')),controller['update']);router[_0x84cf('0x1c')](_0x84cf('0xe'),auth[_0x84cf('0xc')](),interaction[_0x84cf('0x16')](_0x84cf('0x17'),_0x84cf('0x1d')),controller[_0x84cf('0x1e')]);router['delete']('/:id/tags',auth[_0x84cf('0xc')](),controller[_0x84cf('0x1f')]);module[_0x84cf('0x20')]=router;
\ No newline at end of file
+var _0xda3f=['/:id/tags','exports','util','path','fs-extra','../../components/interaction/service','../../config/environment','get','isAuthenticated','/describe','describe','/:id','show','/:id/messages','getMessages','download','post','create','addMessage','sms','smsinteraction:addtags','tracked','smsinteraction:update','update','delete','destroy'];(function(_0x28947d,_0x4cc9c6){var _0x12d2ee=function(_0x3f38fc){while(--_0x3f38fc){_0x28947d['push'](_0x28947d['shift']());}};_0x12d2ee(++_0x4cc9c6);}(_0xda3f,0xec));var _0xfda3=function(_0x676330,_0x1985cb){_0x676330=_0x676330-0x0;var _0x148e85=_0xda3f[_0x676330];return _0x148e85;};'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('./smsInteraction.controller');router[_0xfda3('0x5')]('/',auth[_0xfda3('0x6')](),controller['index']);router['get'](_0xfda3('0x7'),auth[_0xfda3('0x6')](),controller[_0xfda3('0x8')]);router[_0xfda3('0x5')](_0xfda3('0x9'),auth[_0xfda3('0x6')](),controller[_0xfda3('0xa')]);router[_0xfda3('0x5')](_0xfda3('0xb'),auth[_0xfda3('0x6')](),controller[_0xfda3('0xc')]);router[_0xfda3('0x5')]('/:id/download',auth[_0xfda3('0x6')](),controller[_0xfda3('0xd')]);router[_0xfda3('0xe')]('/',auth[_0xfda3('0x6')](),controller[_0xfda3('0xf')]);router['post'](_0xfda3('0xb'),auth['isAuthenticated'](),controller[_0xfda3('0x10')]);router[_0xfda3('0xe')]('/:id/tags',auth['isAuthenticated'](),interaction['tracked'](_0xfda3('0x11'),_0xfda3('0x12')),controller['addTags']);router['put']('/:id',auth[_0xfda3('0x6')](),interaction[_0xfda3('0x13')](_0xfda3('0x11'),_0xfda3('0x14')),controller[_0xfda3('0x15')]);router[_0xfda3('0x16')](_0xfda3('0x9'),auth[_0xfda3('0x6')](),interaction[_0xfda3('0x13')](_0xfda3('0x11'),'smsinteraction:destroy'),controller[_0xfda3('0x17')]);router[_0xfda3('0x16')](_0xfda3('0x18'),auth[_0xfda3('0x6')](),controller['removeTags']);module[_0xfda3('0x19')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xaeab=['DATE','STRING','ENUM','out','BOOLEAN','sequelize','exports'];(function(_0x91c4ce,_0x267fd3){var _0x13574d=function(_0x33f1be){while(--_0x33f1be){_0x91c4ce['push'](_0x91c4ce['shift']());}};_0x13574d(++_0x267fd3);}(_0xaeab,0x91));var _0xbaea=function(_0x245291,_0x3ab963){_0x245291=_0x245291-0x0;var _0xd7cc29=_0xaeab[_0x245291];return _0xd7cc29;};'use strict';var Sequelize=require(_0xbaea('0x0'));var moment=require('moment');module[_0xbaea('0x1')]={'closed':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'closedAt':{'type':Sequelize[_0xbaea('0x2')]},'disposition':{'type':Sequelize[_0xbaea('0x3')]},'secondDisposition':{'type':Sequelize[_0xbaea('0x3')]},'thirdDisposition':{'type':Sequelize[_0xbaea('0x3')]},'note':{'type':Sequelize[_0xbaea('0x3')]},'phone':{'type':Sequelize[_0xbaea('0x3')]},'read1stAt':{'type':Sequelize[_0xbaea('0x2')]},'firstMsgDirection':{'type':Sequelize[_0xbaea('0x4')]('in',_0xbaea('0x5')),'defaultValue':'in','allowNull':![]},'lastMsgAt':{'type':Sequelize[_0xbaea('0x2')]},'lastMsgDirection':{'type':Sequelize['ENUM']('in',_0xbaea('0x5')),'defaultValue':'in','allowNull':![]},'autoreplyExecuted':{'type':Sequelize[_0xbaea('0x6')],'defaultValue':![]}};
\ No newline at end of file
+var _0x4074=['ENUM','out','sequelize','moment','exports','DATE','STRING'];(function(_0xabe65e,_0x455177){var _0x3da843=function(_0x2e8c31){while(--_0x2e8c31){_0xabe65e['push'](_0xabe65e['shift']());}};_0x3da843(++_0x455177);}(_0x4074,0xf0));var _0x4407=function(_0x3e2387,_0x28ce9a){_0x3e2387=_0x3e2387-0x0;var _0x28da65=_0x4074[_0x3e2387];return _0x28da65;};'use strict';var Sequelize=require(_0x4407('0x0'));var moment=require(_0x4407('0x1'));module[_0x4407('0x2')]={'closed':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'closedAt':{'type':Sequelize[_0x4407('0x3')]},'disposition':{'type':Sequelize[_0x4407('0x4')]},'secondDisposition':{'type':Sequelize[_0x4407('0x4')]},'thirdDisposition':{'type':Sequelize[_0x4407('0x4')]},'note':{'type':Sequelize[_0x4407('0x4')]},'phone':{'type':Sequelize[_0x4407('0x4')]},'read1stAt':{'type':Sequelize[_0x4407('0x3')]},'firstMsgDirection':{'type':Sequelize[_0x4407('0x5')]('in',_0x4407('0x6')),'defaultValue':'in','allowNull':![]},'lastMsgAt':{'type':Sequelize[_0x4407('0x3')]},'lastMsgDirection':{'type':Sequelize['ENUM']('in',_0x4407('0x6')),'defaultValue':'in','allowNull':![]},'autoreplyExecuted':{'type':Sequelize['BOOLEAN'],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4729=['show','intersection','includeAll','include','merge','options','create','params','describe','addMessage','SmsMessage','ids','getMessages','findOne','nolimit','sort','SmsInteractionId','YYYY-MM-DD\x20HH:mm:ss','findAll','addTags','setTags','spread','Tag','color','emit','smsInteractionTags:save','removeTags','download','root','files','tmp','join','server','attachments','format','firstName','Messages','direction','secret','SmsAccount','Account','Owner','mkdirSync','closed','closedAt','disposition','out','System','lastName','renderFile','views','downloadInteraction.ejs','transcript-','.pdf','Sms','createPdfFromHTML','log','err','unlinkSync','eml-format','zip-dir','moment','bluebird','util','path','sox','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../components/export/pdf','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./smsInteraction.socket','status','end','offset','undefined','limit','count','set','Content-Range','apply','then','destroy','sendStatus','stack','name','send','Users','map','fullname','TagIds','Tags','split','forEach','push','catch','index','SmsInteraction','rawAttributes','fieldName','type','model','query','attributes','length','hasOwnProperty','order','where','filters','pick','field','from','tools_tags','u.id','u.fullname','ui.SmsInteractionId','user_has_sms_interactions','users','u.id\x20=\x20ui.UserId','sms_interactions','left_join','cm_contacts','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','o.id\x20=\x20i.UserId','sms_accounts','a.id\x20=\x20i.SmsAccountId','sms_messages','me.SmsInteractionId\x20=\x20i.id','it.SmsInteractionId\x20=\x20i.id','t.id\x20=\x20it.TagId','expr','search','sqlOperator','conditions','find','unreadMessages','`\x20=\x200','Contact','$substring','value','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','getFullTextValue','ContactId','buildExpression','text','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','User','operator','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','UserId','start','body','keys','some','i.SmsAccountId\x20IN\x20?','concat','createdAt','parse','$gte','$lte','null','\x20IS\x20NULL','\x20=\x20?','read','`unreadMessages`\x20=\x200','having','`unreadMessages`\x20>\x200','isArray','tag','filter','replace','isNumeric','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','QueryTypes','SELECT','clone','contactName','t.id\x20IN\x20?','resolve','SmsAccountId','i.SmsAccountId\x20IS\x20NOT\x20NULL','user','role','agent','getSmsAccounts','isEmpty','i.SmsAccountId\x20IS\x20NULL','toString','sequelize','keyBy','fields','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','a.key','Account.key','Account.mandatoryDisposition','c.firstName','Contact.firstName','c.lastName','Contact.lastName','Contact.email','c.phone','Contact.phone','c.mobile','c.fax','Owner.fullname','o.internal','Owner.internal','ui.SmsInteractionId\x20IN\x20?','all','rows'];(function(_0x510268,_0x3ca0a5){var _0x3a943c=function(_0xcee314){while(--_0xcee314){_0x510268['push'](_0x510268['shift']());}};_0x3a943c(++_0x3ca0a5);}(_0x4729,0x123));var _0x9472=function(_0xfae319,_0xa3a7db){_0xfae319=_0xfae319-0x0;var _0x4f5c6c=_0x4729[_0xfae319];return _0x4f5c6c;};'use strict';var emlformat=require(_0x9472('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x9472('0x1'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x9472('0x2'));var BPromise=require(_0x9472('0x3'));var Mustache=require('mustache');var util=require(_0x9472('0x4'));var path=require(_0x9472('0x5'));var sox=require(_0x9472('0x6'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x9472('0x7'));var _=require(_0x9472('0x8'));var squel=require(_0x9472('0x9'));var crypto=require(_0x9472('0xa'));var jsforce=require(_0x9472('0xb'));var deskjs=require(_0x9472('0xc'));var toCsv=require(_0x9472('0xd'));var querystring=require(_0x9472('0xe'));var Papa=require(_0x9472('0xf'));var Redis=require(_0x9472('0x10'));var authService=require(_0x9472('0x11'));var qs=require(_0x9472('0x12'));var as=require(_0x9472('0x13'));var pdf=require(_0x9472('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x9472('0x15'));var utils=require(_0x9472('0x16'));var config=require(_0x9472('0x17'));var licenseUtil=require(_0x9472('0x18'));var db=require(_0x9472('0x19'))['db'];config[_0x9472('0x1a')]=_[_0x9472('0x1b')](config[_0x9472('0x1a')],{'host':_0x9472('0x1c'),'port':0x18eb});var socket=require(_0x9472('0x1d'))(new Redis(config[_0x9472('0x1a')]));require(_0x9472('0x1e'))['register'](socket);function respondWithStatusCode(_0x2fd882,_0x32c7e3){_0x32c7e3=_0x32c7e3||0xcc;return function(_0x4cc267){if(_0x4cc267){return _0x2fd882['sendStatus'](_0x32c7e3);}return _0x2fd882[_0x9472('0x1f')](_0x32c7e3)[_0x9472('0x20')]();};}function respondWithResult(_0x8f6534,_0x2cc504){_0x2cc504=_0x2cc504||0xc8;return function(_0x3629a0){if(_0x3629a0){return _0x8f6534[_0x9472('0x1f')](_0x2cc504)['json'](_0x3629a0);}};}function respondWithFilteredResult(_0x143143,_0x48aa26){return function(_0x12b461){if(_0x12b461){var _0x5dcb5b=typeof _0x48aa26[_0x9472('0x21')]===_0x9472('0x22')&&typeof _0x48aa26[_0x9472('0x23')]===_0x9472('0x22');var _0x3c7558=_0x12b461['count'];var _0x41140e=_0x5dcb5b?0x0:_0x48aa26['offset'];var _0x1a95aa=_0x5dcb5b?_0x12b461[_0x9472('0x24')]:_0x48aa26['offset']+_0x48aa26[_0x9472('0x23')];var _0x5217a8;if(_0x1a95aa>=_0x3c7558){_0x1a95aa=_0x3c7558;_0x5217a8=0xc8;}else{_0x5217a8=0xce;}_0x143143[_0x9472('0x1f')](_0x5217a8);return _0x143143[_0x9472('0x25')](_0x9472('0x26'),_0x41140e+'-'+_0x1a95aa+'/'+_0x3c7558)['json'](_0x12b461);}return null;};}function patchUpdates(_0x37bcc3){return function(_0x2414b7){try{jsonpatch[_0x9472('0x27')](_0x2414b7,_0x37bcc3,!![]);}catch(_0x2c57d6){return BPromise['reject'](_0x2c57d6);}return _0x2414b7['save']();};}function saveUpdates(_0x59ec73,_0x4fb285){return function(_0x5484dc){if(_0x5484dc){return _0x5484dc['update'](_0x59ec73)[_0x9472('0x28')](function(_0x7744ea){return _0x7744ea;});}return null;};}function removeEntity(_0x341258,_0x50cab3){return function(_0x333ee6){if(_0x333ee6){return _0x333ee6[_0x9472('0x29')]()[_0x9472('0x28')](function(){_0x341258['status'](0xcc)[_0x9472('0x20')]();});}};}function handleEntityNotFound(_0x4206b3,_0x4e327f){return function(_0xb6acd7){if(!_0xb6acd7){_0x4206b3[_0x9472('0x2a')](0x194);}return _0xb6acd7;};}function handleError(_0x4abb92,_0x37a3e6){_0x37a3e6=_0x37a3e6||0x1f4;return function(_0x3c7238){logger['error'](_0x3c7238[_0x9472('0x2b')]);if(_0x3c7238[_0x9472('0x2c')]){delete _0x3c7238[_0x9472('0x2c')];}_0x4abb92[_0x9472('0x1f')](_0x37a3e6)[_0x9472('0x2d')](_0x3c7238);};}function getInteractionUsers(_0x5e7098,_0x5468e4){return new BPromise(function(_0x5cbe05,_0x88920c){try{if(_0x5468e4[_0x5e7098['id']]){_0x5e7098[_0x9472('0x2e')]=_[_0x9472('0x2f')](_0x5468e4[_0x5e7098['id']],function(_0x306f96){return{'id':_0x306f96['id'],'fullname':_0x306f96[_0x9472('0x30')]};});}}catch(_0x445acd){_0x88920c(_0x445acd);}_0x5cbe05(_0x5e7098);});}function getInteractionTags(_0x1ea87b,_0x46ac93){return new BPromise(function(_0x20cacb,_0xb20ae3){try{if(_0x1ea87b[_0x9472('0x31')]){_0x1ea87b[_0x9472('0x32')]=[];_0x1ea87b[_0x9472('0x31')][_0x9472('0x33')](',')[_0x9472('0x34')](function(_0x30492f){_0x1ea87b['Tags'][_0x9472('0x35')](_0x46ac93[_0x30492f]);});}delete _0x1ea87b['TagIds'];}catch(_0x534381){_0xb20ae3(_0x534381);}_0x20cacb(_0x1ea87b);});}function updateSmsInteraction(_0x1c2844,_0x32912e,_0x30068d){return new BPromise(function(_0x1263b8,_0x57e174){return getInteractionUsers(_0x1c2844,_0x30068d)[_0x9472('0x28')](function(_0x3ec8dc){return getInteractionTags(_0x3ec8dc,_0x32912e);})[_0x9472('0x28')](function(_0x4c6ece){_0x1263b8(_0x4c6ece);})[_0x9472('0x36')](function(_0x4b2de2){_0x57e174(_0x4b2de2);});});}exports[_0x9472('0x37')]=function(_0x53c35b,_0x4de1e7){var _0x469de1={},_0x2244bb={},_0x128795={'count':0x0,'rows':[]};var _0x5e84cc=_[_0x9472('0x2f')](db[_0x9472('0x38')][_0x9472('0x39')],function(_0x517ec6){return{'name':_0x517ec6[_0x9472('0x3a')],'type':_0x517ec6[_0x9472('0x3b')]['key']};});_0x2244bb[_0x9472('0x3c')]=_[_0x9472('0x2f')](_0x5e84cc,_0x9472('0x2c'));_0x2244bb[_0x9472('0x3d')]=_['keys'](_0x53c35b['query']);_0x2244bb['filters']=_['intersection'](_0x2244bb['model'],_0x2244bb[_0x9472('0x3d')]);_0x469de1[_0x9472('0x3e')]=_['intersection'](_0x2244bb[_0x9472('0x3c')],qs['fields'](_0x53c35b['query']['fields']));_0x469de1[_0x9472('0x3e')]=_0x469de1[_0x9472('0x3e')][_0x9472('0x3f')]?_0x469de1[_0x9472('0x3e')]:_0x2244bb['model'];if(!_0x53c35b[_0x9472('0x3d')][_0x9472('0x40')]('nolimit')){_0x469de1['limit']=qs[_0x9472('0x23')](_0x53c35b[_0x9472('0x3d')]['limit']);_0x469de1['offset']=qs[_0x9472('0x21')](_0x53c35b[_0x9472('0x3d')]['offset']);}_0x469de1[_0x9472('0x41')]=qs['sort'](_0x53c35b[_0x9472('0x3d')]['sort']);_0x469de1[_0x9472('0x42')]=qs[_0x9472('0x43')](_[_0x9472('0x44')](_0x53c35b[_0x9472('0x3d')],_0x2244bb[_0x9472('0x43')]),_0x5e84cc);var _0x3e581b=[];var _0x41fc18=squel['select']()[_0x9472('0x45')]('id')['field'](_0x9472('0x2c'))[_0x9472('0x45')]('color')[_0x9472('0x46')](_0x9472('0x47'));var _0x4ca3a6=squel['select']()[_0x9472('0x45')](_0x9472('0x48'))['field'](_0x9472('0x49'))['field'](_0x9472('0x4a'))[_0x9472('0x46')](_0x9472('0x4b'),'ui')['left_join'](_0x9472('0x4c'),'u',_0x9472('0x4d'));var _0x22c795=squel['select']()[_0x9472('0x46')](_0x9472('0x4e'),'i')[_0x9472('0x4f')](_0x9472('0x50'),'c',_0x9472('0x51'))[_0x9472('0x4f')](_0x9472('0x4c'),'o',_0x9472('0x52'))[_0x9472('0x4f')](_0x9472('0x53'),'a',_0x9472('0x54'))[_0x9472('0x4f')](_0x9472('0x55'),'me',_0x9472('0x56'))[_0x9472('0x4f')]('sms_interaction_has_tags','it',_0x9472('0x57'))[_0x9472('0x4f')](_0x9472('0x47'),'t',_0x9472('0x58'));var _0x35b723=squel['expr']();var _0x1674bc=[];var _0x552a58=squel[_0x9472('0x59')]();var _0x2b0fe4;if(_0x53c35b['query'][_0x9472('0x5a')]){_0x2b0fe4=as['parseSearch'](_0x53c35b['query']['search']);var _0x552faf=_0x2b0fe4[_0x9472('0x5b')];for(var _0x135094=0x0;_0x135094<_0x2b0fe4[_0x9472('0x5c')][_0x9472('0x3f')];_0x135094++){var _0x432e39=_0x2b0fe4[_0x9472('0x5c')][_0x135094];var _0x199e5b='i';var _0x176216=_[_0x9472('0x5d')](_0x5e84cc,[_0x9472('0x2c'),_0x432e39['field']]);if(!_0x176216){switch(_0x432e39[_0x9472('0x45')]){case _0x9472('0x5e'):if(_0x432e39['value']==0x1){_0x22c795['having']('`'+_0x432e39['field']+_0x9472('0x5f'));}else{_0x22c795['having']('`'+_0x432e39[_0x9472('0x45')]+'`\x20>\x200');}break;case _0x9472('0x60'):if(_0x432e39['operator']===_0x9472('0x61')){if(_0x432e39[_0x9472('0x62')]['split']('\x20')[_0x9472('0x3f')]>0x1){_0x35b723[_0x552faf](_0x9472('0x63'),qs[_0x9472('0x64')](_0x432e39[_0x9472('0x62')]),null);}else{var _0x228433='%'+_0x432e39[_0x9472('0x62')]+'%';_0x35b723[_0x552faf]('c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?',_0x228433,_0x228433,_0x228433);}}else{_0x176216=_[_0x9472('0x5d')](_0x5e84cc,[_0x9472('0x2c'),'ContactId']);_0x432e39[_0x9472('0x45')]=_0x9472('0x65');_0x240cb6=as[_0x9472('0x66')](_0x199e5b,_0x176216[_0x9472('0x3b')],_0x432e39);_0x35b723[_0x552faf](_0x240cb6[_0x9472('0x67')],_0x240cb6[_0x9472('0x62')]['start'],_0x240cb6[_0x9472('0x62')][_0x9472('0x20')]);}break;case'Tag':var _0x5dfba0=_0x432e39[_0x9472('0x62')]['split'](',')[_0x9472('0x2f')](function(_0x3598c4){return Number(_0x3598c4);});_0x5dfba0[_0x9472('0x34')](function(_0x1f51d7){_0x552a58['or'](_0x9472('0x68'),'%,'+_0x1f51d7+',%');});_0x1674bc=_['union'](_0x1674bc,_0x5dfba0);break;case _0x9472('0x69'):if(_0x432e39[_0x9472('0x6a')]===_0x9472('0x61')){_0x35b723[_0x552faf](_0x9472('0x6b'),'%'+_0x432e39['value']+'%',null);}else{_0x176216=_[_0x9472('0x5d')](_0x5e84cc,[_0x9472('0x2c'),_0x9472('0x6c')]);_0x432e39['field']='UserId';_0x240cb6=as[_0x9472('0x66')](_0x199e5b,_0x176216[_0x9472('0x3b')],_0x432e39);_0x35b723[_0x552faf](_0x240cb6[_0x9472('0x67')],_0x240cb6['value'][_0x9472('0x6d')],_0x240cb6['value']['end']);}break;case _0x9472('0x6e'):_0x240cb6=as[_0x9472('0x66')]('me',null,_0x432e39);_0x35b723[_0x552faf](_0x240cb6[_0x9472('0x67')],_0x240cb6[_0x9472('0x62')][_0x9472('0x6d')],_0x240cb6[_0x9472('0x62')][_0x9472('0x20')]);break;}}else{var _0x240cb6=as[_0x9472('0x66')](_0x199e5b,_0x176216[_0x9472('0x3b')],_0x432e39);_0x35b723[_0x552faf](_0x240cb6['text'],_0x240cb6[_0x9472('0x62')][_0x9472('0x6d')],_0x240cb6[_0x9472('0x62')]['end']);}}}else{var _0xb105d8=_(_0x53c35b[_0x9472('0x3d')])[_0x9472('0x6f')]()[_0x9472('0x2f')](function(_0x4ea898){return _[_0x9472('0x70')](_0x5e84cc,[_0x9472('0x2c'),_0x4ea898])?_0x4ea898:undefined;})['compact']()[_0x9472('0x62')]();if(!_['isEmpty'](_0xb105d8)){_0xb105d8[_0x9472('0x34')](function(_0x179971){if(_0x179971==='SmsAccountId'){_0x22c795[_0x9472('0x42')](_0x9472('0x71'),[][_0x9472('0x72')](_0x53c35b[_0x9472('0x3d')][_0x179971]));}else if(_0x179971===_0x9472('0x73')){var _0x238a47=JSON[_0x9472('0x74')](_0x53c35b[_0x9472('0x3d')][_0x179971])[_0x9472('0x75')];var _0x47b8b5=JSON[_0x9472('0x74')](_0x53c35b[_0x9472('0x3d')][_0x179971])[_0x9472('0x76')];_0x22c795[_0x9472('0x42')]('i.createdAt\x20BETWEEN\x20?\x20AND\x20?',_0x238a47,_0x47b8b5);}else{if(_0x53c35b[_0x9472('0x3d')][_0x179971]===_0x9472('0x77')){_0x22c795[_0x9472('0x42')]('i.'+_0x179971+_0x9472('0x78'));}else{_0x22c795[_0x9472('0x42')]('i.'+_0x179971+_0x9472('0x79'),_0x53c35b[_0x9472('0x3d')][_0x179971]);}}});}if(_0x53c35b['query']['read']){if(_0x53c35b['query'][_0x9472('0x7a')]==0x1){_0x22c795['having'](_0x9472('0x7b'));}else{_0x22c795[_0x9472('0x7c')](_0x9472('0x7d'));}}if(_0x53c35b[_0x9472('0x3d')]['tag']){_0x1674bc=_[_0x9472('0x7e')](_0x53c35b[_0x9472('0x3d')]['tag'])?_0x53c35b[_0x9472('0x3d')][_0x9472('0x7f')]:new Array(_0x53c35b[_0x9472('0x3d')][_0x9472('0x7f')]);_0x1674bc[_0x9472('0x34')](function(_0x3b5cbe){_0x552a58['or'](_0x9472('0x68'),'%,'+_0x3b5cbe+',%');});}if(_0x53c35b[_0x9472('0x3d')][_0x9472('0x80')]){var _0x50008a=_0x53c35b[_0x9472('0x3d')][_0x9472('0x80')]['replace']('\x5c','\x5c\x5c')[_0x9472('0x81')](/'/g,'\x27\x27');if(qs[_0x9472('0x82')](_0x50008a)){_0x35b723['or']('i.id\x20LIKE\x20?',_0x50008a+'%')['or'](_0x9472('0x83'),_0x50008a+'%');}else{_0x35b723['or'](_0x9472('0x84'),qs[_0x9472('0x64')](_0x50008a))['or'](_0x9472('0x85'),_0x50008a+'%');}}}_0x22c795[_0x9472('0x42')](_0x35b723);_0x22c795[_0x9472('0x86')](_0x9472('0x87'));var _0x46f0e8={'type':db['Sequelize'][_0x9472('0x88')][_0x9472('0x89')],'raw':!![]};var _0x5854dd=_0x22c795[_0x9472('0x8a')]();_0x5854dd['field'](_0x9472('0x87'));_0x5854dd[_0x9472('0x45')]('SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)',_0x9472('0x5e'));if(_0x469de1[_0x9472('0x41')]){_0x469de1[_0x9472('0x41')][_0x9472('0x34')](function(_0x324119){var _0x2286ec=_0x324119[0x0]===_0x9472('0x8b')?_0x324119[0x0]:'i.'+_0x324119[0x0];_0x22c795['order'](_0x2286ec,_0x324119[0x1]==='DESC'?![]:!![]);});}if(!_['isEmpty'](_0x1674bc)){_0x22c795[_0x9472('0x7c')](_0x552a58);_0x5854dd[_0x9472('0x42')](_0x9472('0x8c'),_0x1674bc);}BPromise[_0x9472('0x8d')]()[_0x9472('0x28')](function(){if(!_0x2b0fe4){if(_0x53c35b[_0x9472('0x3d')][_0x9472('0x8e')])return;_0x5854dd[_0x9472('0x42')]('i.SmsAccountId\x20IS\x20NOT\x20NULL');_0x22c795[_0x9472('0x42')](_0x9472('0x8f'));return;}if(_0x53c35b[_0x9472('0x90')][_0x9472('0x91')]!==_0x9472('0x92'))return;return _0x53c35b[_0x9472('0x90')][_0x9472('0x93')]({'attributes':['id'],'raw':!![]})['then'](function(_0x55fc91){if(_[_0x9472('0x94')](_0x55fc91)){_0x5854dd[_0x9472('0x42')](_0x9472('0x95'));_0x22c795[_0x9472('0x42')]('i.SmsAccountId\x20IS\x20NULL');}else{_0x5854dd[_0x9472('0x42')]('i.SmsAccountId\x20IN\x20?',_[_0x9472('0x2f')](_0x55fc91,'id'));_0x22c795[_0x9472('0x42')](_0x9472('0x71'),_[_0x9472('0x2f')](_0x55fc91,'id'));}});})['then'](function(){if(_0x53c35b['user'][_0x9472('0x91')]===_0x9472('0x92')&&!_0x2b0fe4&&!_0x53c35b['query']['SmsAccountId'])return[];return db['sequelize'][_0x9472('0x3d')](_0x5854dd[_0x9472('0x96')](),_0x46f0e8);})['then'](function(_0x10ceca){_0x128795['count']=_0x10ceca['length'];if(_0x128795['count']===0x0)return[];return db[_0x9472('0x97')][_0x9472('0x3d')](_0x41fc18['toString'](),_0x46f0e8)[_0x9472('0x28')](function(_0x3193a5){_0x3e581b=_[_0x9472('0x98')](_0x3193a5,'id');_0x46f0e8=_['merge'](_0x46f0e8,{'model':db[_0x9472('0x38')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x53c35b[_0x9472('0x3d')][_0x9472('0x99')]){_0x469de1['attributes'][_0x9472('0x34')](function(_0x426686){_0x22c795[_0x9472('0x45')]('i.'+_0x426686);});}else{_0x22c795[_0x9472('0x45')](_0x9472('0x9a'),_0x9472('0x5e'));_0x22c795[_0x9472('0x45')](_0x9472('0x9b'),_0x9472('0x9c'));_0x22c795[_0x9472('0x45')]('a.mandatoryDisposition',_0x9472('0x9d'));_0x22c795['field']('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');_0x22c795[_0x9472('0x45')]('i.*');_0x22c795[_0x9472('0x45')](_0x9472('0x9e'),_0x9472('0x9f'));_0x22c795[_0x9472('0x45')](_0x9472('0xa0'),_0x9472('0xa1'));_0x22c795[_0x9472('0x45')]('c.email',_0x9472('0xa2'));_0x22c795[_0x9472('0x45')](_0x9472('0xa3'),_0x9472('0xa4'));_0x22c795[_0x9472('0x45')](_0x9472('0xa5'),'Contact.mobile');_0x22c795[_0x9472('0x45')](_0x9472('0xa6'),'Contact.fax');_0x22c795[_0x9472('0x45')]('o.fullname',_0x9472('0xa7'));_0x22c795[_0x9472('0x45')](_0x9472('0xa8'),_0x9472('0xa9'));_0x22c795[_0x9472('0x45')]('GROUP_CONCAT(DISTINCT\x20t.id)','TagIds');}if(_0x469de1['limit'])_0x22c795[_0x9472('0x23')](_0x469de1['limit']);if(_0x469de1[_0x9472('0x21')])_0x22c795[_0x9472('0x21')](_0x469de1[_0x9472('0x21')]);return db[_0x9472('0x97')][_0x9472('0x3d')](_0x22c795[_0x9472('0x96')](),_0x46f0e8);})[_0x9472('0x28')](function(_0x44bd49){if(_0x44bd49[_0x9472('0x3f')]>0x0)_0x4ca3a6[_0x9472('0x42')](_0x9472('0xaa'),_[_0x9472('0x2f')](_0x44bd49,'id'));return db[_0x9472('0x97')][_0x9472('0x3d')](_0x4ca3a6['toString'](),_0x46f0e8)[_0x9472('0x28')](function(_0x2ac24a){var _0x4fdfac=_['groupBy'](_0x2ac24a,'SmsInteractionId');var _0x2df3ca=[];_0x44bd49[_0x9472('0x34')](function(_0x2fb900){_0x2df3ca[_0x9472('0x35')](updateSmsInteraction(_0x2fb900,_0x3e581b,_0x4fdfac));});return BPromise[_0x9472('0xab')](_0x2df3ca);});});})[_0x9472('0x28')](function(_0x2e832e){_0x128795[_0x9472('0xac')]=_0x2e832e;return _0x128795;})[_0x9472('0x28')](respondWithFilteredResult(_0x4de1e7,_0x469de1))[_0x9472('0x36')](handleError(_0x4de1e7,null));};exports[_0x9472('0xad')]=function(_0x476a83,_0x442513){var _0x3c369f={'raw':![],'where':{'id':_0x476a83['params']['id']}},_0x42e4f2={};_0x42e4f2[_0x9472('0x3c')]=_[_0x9472('0x6f')](db[_0x9472('0x38')][_0x9472('0x39')]);_0x42e4f2['query']=_['keys'](_0x476a83[_0x9472('0x3d')]);_0x42e4f2[_0x9472('0x43')]=_['intersection'](_0x42e4f2[_0x9472('0x3c')],_0x42e4f2[_0x9472('0x3d')]);_0x3c369f['attributes']=_[_0x9472('0xae')](_0x42e4f2[_0x9472('0x3c')],qs[_0x9472('0x99')](_0x476a83[_0x9472('0x3d')][_0x9472('0x99')]));_0x3c369f[_0x9472('0x3e')]=_0x3c369f[_0x9472('0x3e')][_0x9472('0x3f')]?_0x3c369f[_0x9472('0x3e')]:_0x42e4f2[_0x9472('0x3c')];if(_0x476a83['query'][_0x9472('0xaf')]){_0x3c369f[_0x9472('0xb0')]=[{'all':!![]}];}_0x3c369f=_[_0x9472('0xb1')]({},_0x3c369f,_0x476a83[_0x9472('0xb2')]);return db[_0x9472('0x38')][_0x9472('0x5d')](_0x3c369f)[_0x9472('0x28')](handleEntityNotFound(_0x442513,null))[_0x9472('0x28')](respondWithResult(_0x442513,null))['catch'](handleError(_0x442513,null));};exports[_0x9472('0xb3')]=function(_0x415289,_0x55b380){return db[_0x9472('0x38')][_0x9472('0xb3')](_0x415289[_0x9472('0x6e')],{})[_0x9472('0x28')](respondWithResult(_0x55b380,0xc9))[_0x9472('0x36')](handleError(_0x55b380,null));};exports['update']=function(_0x3d6682,_0x3074bf){if(_0x3d6682['body']['id']){delete _0x3d6682[_0x9472('0x6e')]['id'];}return db[_0x9472('0x38')][_0x9472('0x5d')]({'where':{'id':_0x3d6682[_0x9472('0xb4')]['id']}})[_0x9472('0x28')](handleEntityNotFound(_0x3074bf,null))[_0x9472('0x28')](saveUpdates(_0x3d6682[_0x9472('0x6e')],null))['then'](respondWithResult(_0x3074bf,null))[_0x9472('0x36')](handleError(_0x3074bf,null));};exports[_0x9472('0x29')]=function(_0x8c805a,_0x1b2fc3){return db[_0x9472('0x38')][_0x9472('0x5d')]({'where':{'id':_0x8c805a[_0x9472('0xb4')]['id']}})[_0x9472('0x28')](handleEntityNotFound(_0x1b2fc3,null))[_0x9472('0x28')](removeEntity(_0x1b2fc3,null))['catch'](handleError(_0x1b2fc3,null));};exports[_0x9472('0xb5')]=function(_0x32aae7,_0x5e6cb9){return db[_0x9472('0x38')][_0x9472('0xb5')]()['then'](respondWithResult(_0x5e6cb9,null))[_0x9472('0x36')](handleError(_0x5e6cb9,null));};exports[_0x9472('0xb6')]=function(_0x41ab2c,_0x574f11,_0x2cd40e){return db[_0x9472('0xb7')][_0x9472('0x5d')]({'where':{'id':_0x41ab2c[_0x9472('0xb4')]['id']}})[_0x9472('0x28')](handleEntityNotFound(_0x574f11,null))[_0x9472('0x28')](function(_0x53db6e){if(_0x53db6e){return _0x53db6e[_0x9472('0xb6')](_0x41ab2c[_0x9472('0x6e')][_0x9472('0xb8')],_['omit'](_0x41ab2c['body'],[_0x9472('0xb8'),'id'])||{});}})[_0x9472('0x28')](respondWithResult(_0x574f11,null))[_0x9472('0x36')](handleError(_0x574f11,null));};exports[_0x9472('0xb9')]=function(_0x1e208c,_0x31c6a0,_0x4d13d7){var _0xf56e16={'raw':![],'where':{}};var _0x5b7a46={};var _0x29a93e={'count':0x0,'rows':[]};return db[_0x9472('0x38')][_0x9472('0xba')]({'where':{'id':_0x1e208c[_0x9472('0xb4')]['id']}})['then'](handleEntityNotFound(_0x31c6a0,null))[_0x9472('0x28')](function(_0x45a01d){if(_0x45a01d){_0x5b7a46[_0x9472('0x3c')]=_[_0x9472('0x6f')](db[_0x9472('0xb7')][_0x9472('0x39')]);_0x5b7a46[_0x9472('0x3d')]=_[_0x9472('0x6f')](_0x1e208c['query']);_0x5b7a46['filters']=_[_0x9472('0xae')](_0x5b7a46['model'],_0x5b7a46[_0x9472('0x3d')]);_0xf56e16[_0x9472('0x3e')]=_[_0x9472('0xae')](_0x5b7a46[_0x9472('0x3c')],qs[_0x9472('0x99')](_0x1e208c[_0x9472('0x3d')]['fields']));_0xf56e16[_0x9472('0x3e')]=_0xf56e16[_0x9472('0x3e')][_0x9472('0x3f')]?_0xf56e16[_0x9472('0x3e')]:_0x5b7a46[_0x9472('0x3c')];if(!_0x1e208c[_0x9472('0x3d')][_0x9472('0x40')](_0x9472('0xbb'))){_0xf56e16['limit']=qs['limit'](_0x1e208c[_0x9472('0x3d')]['limit']);_0xf56e16['offset']=qs[_0x9472('0x21')](_0x1e208c[_0x9472('0x3d')][_0x9472('0x21')]);}_0xf56e16[_0x9472('0x41')]=qs[_0x9472('0xbc')](_0x1e208c[_0x9472('0x3d')][_0x9472('0xbc')]);_0xf56e16[_0x9472('0x42')]=qs[_0x9472('0x43')](_['pick'](_0x1e208c[_0x9472('0x3d')],_0x5b7a46[_0x9472('0x43')]));_0xf56e16[_0x9472('0x42')][_0x9472('0xbd')]=_0x45a01d['id'];if(_0x1e208c[_0x9472('0x3d')][_0x9472('0x80')]){_0xf56e16[_0x9472('0x42')]=_['merge'](_0xf56e16['where'],{'$or':_[_0x9472('0x2f')](_0xf56e16['attributes'],function(_0x108680){var _0x223b09={};_0x223b09[_0x108680]={'$like':'%'+_0x1e208c[_0x9472('0x3d')][_0x9472('0x80')]+'%'};return _0x223b09;})});}if(_0x1e208c[_0x9472('0x3d')][_0x9472('0x75')]){var _0x318fc0=_0x1e208c[_0x9472('0x3d')][_0x9472('0x75')][_0x9472('0x33')](',');var _0x10482={};_0x10482[_0x318fc0[0x0]]={'$gte':moment(_0x318fc0[0x1])['format'](_0x9472('0xbe'))};_0xf56e16[_0x9472('0x42')]=_[_0x9472('0xb1')](_0xf56e16[_0x9472('0x42')],_0x10482);}_0xf56e16=_[_0x9472('0xb1')]({},_0xf56e16,_0x1e208c['options']);return db[_0x9472('0xb7')]['count']({'where':_0xf56e16['where']})[_0x9472('0x28')](function(_0x18a671){_0x29a93e['count']=_0x18a671;if(_0x1e208c[_0x9472('0x3d')][_0x9472('0xaf')]){_0xf56e16[_0x9472('0xb0')]=[{'all':!![]}];}return db[_0x9472('0xb7')][_0x9472('0xbf')](_0xf56e16);})[_0x9472('0x28')](function(_0x5c2f96){_0x29a93e[_0x9472('0xac')]=_0x5c2f96;return _0x29a93e;});}})['then'](respondWithFilteredResult(_0x31c6a0,_0xf56e16))[_0x9472('0x36')](handleError(_0x31c6a0,null));};exports[_0x9472('0xc0')]=function(_0x3f981d,_0x539a28,_0x109bfe){return db[_0x9472('0x38')]['find']({'where':{'id':_0x3f981d['params']['id']}})[_0x9472('0x28')](handleEntityNotFound(_0x539a28,null))[_0x9472('0x28')](function(_0x141cb8){if(_0x141cb8){return _0x141cb8[_0x9472('0xc1')](_0x3f981d['body'][_0x9472('0xb8')],_['omit'](_0x3f981d[_0x9472('0x6e')],[_0x9472('0xb8'),'id'])||{})[_0x9472('0xc2')](function(){return db[_0x9472('0xc3')][_0x9472('0xbf')]({'attributes':['id',_0x9472('0x2c'),_0x9472('0xc4')],'where':{'id':_0x3f981d[_0x9472('0x6e')][_0x9472('0xb8')]}});})[_0x9472('0x28')](function(_0x3af717){socket[_0x9472('0xc5')](_0x9472('0xc6'),{'id':Number(_0x3f981d[_0x9472('0xb4')]['id']),'tags':_0x3af717||[]});return{'id':Number(_0x3f981d[_0x9472('0xb4')]['id']),'tags':_0x3af717||[]};});}})[_0x9472('0x28')](respondWithResult(_0x539a28,null))[_0x9472('0x36')](handleError(_0x539a28,null));};exports['removeTags']=function(_0x34665f,_0x53e5e3,_0x4f7fb7){return db[_0x9472('0x38')][_0x9472('0x5d')]({'where':{'id':_0x34665f[_0x9472('0xb4')]['id']}})[_0x9472('0x28')](handleEntityNotFound(_0x53e5e3,null))[_0x9472('0x28')](function(_0x5f525e){if(_0x5f525e){return _0x5f525e[_0x9472('0xc7')](_0x34665f[_0x9472('0x3d')][_0x9472('0xb8')]);}})['then'](respondWithStatusCode(_0x53e5e3,null))[_0x9472('0x36')](handleError(_0x53e5e3,null));};exports[_0x9472('0xc8')]=function(_0x4acc01,_0x1bffa8){var _0x5ba355=moment()['unix']()[_0x9472('0x96')]();var _0x1841e0=path['join'](config[_0x9472('0xc9')],'server',_0x9472('0xca'),_0x9472('0xcb'));var _0x557e37=path[_0x9472('0xcc')](config['root'],_0x9472('0xcd'),_0x9472('0xca'),_0x9472('0xce'));var _0x4ee5c6=path[_0x9472('0xcc')](_0x1841e0,_0x5ba355);var _0xfd6e8c=util[_0x9472('0xcf')]('transcript-%d-%s.zip',_0x4acc01['params']['id'],_0x5ba355);var _0x24d452=path['join'](_0x1841e0,_0xfd6e8c);var _0x2837ae=[];_0x2837ae[_0x9472('0x35')]({'model':db[_0x9472('0x69')],'as':'User','attributes':['id',_0x9472('0x30')],'raw':!![]});_0x2837ae[_0x9472('0x35')]({'model':db['CmContact'],'as':_0x9472('0x60'),'attributes':['id',_0x9472('0xd0'),'lastName'],'raw':!![]});var _0x1fc88e=[{'model':db[_0x9472('0xb7')],'as':_0x9472('0xd1'),'attributes':['id',_0x9472('0x6e'),'createdAt',_0x9472('0xd2'),_0x9472('0xd3'),_0x9472('0x7a')],'include':_0x2837ae}];_0x1fc88e[_0x9472('0x35')]({'model':db[_0x9472('0xd4')],'as':_0x9472('0xd5'),'attributes':['id',_0x9472('0x2c')]});_0x1fc88e['push']({'model':db[_0x9472('0x69')],'as':_0x9472('0xd6'),'attributes':['id',_0x9472('0x30')]});return db[_0x9472('0x38')]['find']({'where':{'id':_0x4acc01['params']['id']},'include':_0x1fc88e})[_0x9472('0x28')](handleEntityNotFound(_0x1bffa8,null))[_0x9472('0x28')](function(_0x49fa17){if(_0x49fa17){var _0x15ec63=_0x49fa17['get']({'plain':!![]});fs[_0x9472('0xd7')](_0x4ee5c6);var _0x42e66f={'channel':'Sms','account':_0x15ec63[_0x9472('0xd5')][_0x9472('0x2c')],'agent':_0x15ec63['Owner']?_0x15ec63['Owner']['fullname']:'N.A.','createdAt':moment(_0x15ec63[_0x9472('0x73')])[_0x9472('0xcf')](_0x9472('0xbe'))[_0x9472('0x96')](),'closedAt':_0x15ec63[_0x9472('0xd8')]?moment(_0x15ec63[_0x9472('0xd9')])['format'](_0x9472('0xbe'))[_0x9472('0x96')]():'','disposition':_0x15ec63[_0x9472('0xda')],'messages':_(_0x15ec63[_0x9472('0xd1')])['filter']({'secret':![]})[_0x9472('0x2f')](function(_0x2a9e48){return{'date':moment(_0x2a9e48[_0x9472('0x73')])[_0x9472('0xcf')](_0x9472('0xbe'))['toString'](),'sender':_0x2a9e48[_0x9472('0xd2')]===_0x9472('0xdb')?_0x2a9e48[_0x9472('0x69')]?_0x2a9e48[_0x9472('0x69')]['fullname']:_0x9472('0xdc'):_0x2a9e48[_0x9472('0x60')]['firstName']+(_0x2a9e48[_0x9472('0x60')][_0x9472('0xdd')]?'\x20'+_0x2a9e48[_0x9472('0x60')][_0x9472('0xdd')]:''),'body':_0x2a9e48[_0x9472('0x6e')],'direction':_0x2a9e48[_0x9472('0xd2')]===_0x9472('0xdb')?'A':'C','secret':_0x2a9e48['secret'],'read':_0x2a9e48['read']};})[_0x9472('0x62')]()};return ejs[_0x9472('0xde')](path[_0x9472('0xcc')](config[_0x9472('0xc9')],_0x9472('0xcd'),_0x9472('0xdf'),_0x9472('0xe0')),{'interaction':_0x42e66f})[_0x9472('0x28')](function(_0x5ce48a){var _0x42329e=path[_0x9472('0xcc')](_0x4ee5c6,_0x9472('0xe1')+_0x15ec63['id']+'-'+_0x5ba355+_0x9472('0xe2'));var _0x106468={'path':_0x42329e,'channel':_0x9472('0xe3'),'interactionId':_0x15ec63['id']};return pdf[_0x9472('0xe4')](_0x5ce48a,_0x106468);})[_0x9472('0x28')](function(){return new BPromise(function(_0x53eef7,_0x1347bf){zipdir(_0x4ee5c6,{'saveTo':_0x24d452},function(_0x6e9ef2,_0x1de8ec){if(_0x6e9ef2)return _0x1347bf(_0x6e9ef2);return _0x53eef7(_0x1de8ec);});})[_0x9472('0x28')](function(){return new BPromise(function(_0x2a864c,_0x2de2c4){rimraf(_0x4ee5c6,function(_0xbbb739){if(_0xbbb739)_0x2de2c4(_0xbbb739);return _0x2a864c();});});})[_0x9472('0x28')](function(){return _0x1bffa8[_0x9472('0xc8')](_0x24d452,_0xfd6e8c,function(_0x217ab5){if(_0x217ab5){console[_0x9472('0xe5')](_0x9472('0xe6'),_0x217ab5);}else{fs[_0x9472('0xe7')](_0x24d452);}});});});}else{return _0x1bffa8[_0x9472('0x2a')](0xc8);}})[_0x9472('0x36')](handleError(_0x1bffa8,null));};
\ No newline at end of file
+var _0x36ab=['compact','isEmpty','SmsAccountId','concat','createdAt','parse','$gte','$lte','null','\x20IS\x20NULL','\x20=\x20?','read','`unreadMessages`\x20>\x200','tag','isArray','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','Sequelize','QueryTypes','SELECT','clone','i.id','contactName','DESC','t.id\x20IN\x20?','i.SmsAccountId\x20IS\x20NOT\x20NULL','user','agent','getSmsAccounts','i.SmsAccountId\x20IS\x20NULL','i.SmsAccountId\x20IN\x20?','role','sequelize','toString','keyBy','merge','a.key','Account.key','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','c.lastName','Contact.lastName','c.email','c.phone','Contact.phone','c.mobile','c.fax','Contact.fax','o.fullname','Owner.fullname','o.internal','Owner.internal','GROUP_CONCAT(DISTINCT\x20t.id)','ui.SmsInteractionId\x20IN\x20?','groupBy','SmsInteractionId','show','params','include','create','describe','addMessage','ids','omit','getMessages','findOne','SmsMessage','YYYY-MM-DD\x20HH:mm:ss','options','includeAll','rows','addTags','setTags','spread','emit','removeTags','download','join','root','server','files','tmp','format','transcript-%d-%s.zip','User','firstName','lastName','Messages','direction','secret','SmsAccount','Account','Owner','mkdirSync','Sms','closed','closedAt','disposition','out','System','transcript-','.pdf','createPdfFromHTML','log','unlinkSync','rimraf','zip-dir','fast-json-patch','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../components/export/pdf','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','socket.io-emitter','./smsInteraction.socket','register','sendStatus','status','undefined','limit','offset','count','set','Content-Range','json','apply','save','update','then','end','error','stack','name','Users','map','fullname','TagIds','Tags','split','forEach','push','catch','SmsInteraction','rawAttributes','fieldName','type','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','field','color','from','tools_tags','u.id','u.fullname','left_join','users','u.id\x20=\x20ui.UserId','select','sms_interactions','cm_contacts','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','o.id\x20=\x20i.UserId','sms_accounts','a.id\x20=\x20i.SmsAccountId','sms_messages','me.SmsInteractionId\x20=\x20i.id','sms_interaction_has_tags','it.SmsInteractionId\x20=\x20i.id','t.id\x20=\x20it.TagId','expr','search','parseSearch','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','c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?','ContactId','text','start','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'];(function(_0x205b6f,_0x5d567c){var _0x3a2872=function(_0x244770){while(--_0x244770){_0x205b6f['push'](_0x205b6f['shift']());}};_0x3a2872(++_0x5d567c);}(_0x36ab,0x157));var _0xb36a=function(_0x1035c1,_0x2d8583){_0x1035c1=_0x1035c1-0x0;var _0x308d67=_0x36ab[_0x1035c1];return _0x308d67;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xb36a('0x0'));var zipdir=require(_0xb36a('0x1'));var jsonpatch=require(_0xb36a('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0xb36a('0x3'));var Mustache=require(_0xb36a('0x4'));var util=require(_0xb36a('0x5'));var path=require(_0xb36a('0x6'));var sox=require(_0xb36a('0x7'));var csv=require(_0xb36a('0x8'));var ejs=require(_0xb36a('0x9'));var fs=require('fs');var fs_extra=require(_0xb36a('0xa'));var _=require(_0xb36a('0xb'));var squel=require(_0xb36a('0xc'));var crypto=require('crypto');var jsforce=require(_0xb36a('0xd'));var deskjs=require(_0xb36a('0xe'));var toCsv=require(_0xb36a('0x8'));var querystring=require('querystring');var Papa=require(_0xb36a('0xf'));var Redis=require(_0xb36a('0x10'));var authService=require(_0xb36a('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0xb36a('0x12'));var pdf=require(_0xb36a('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xb36a('0x14'))(_0xb36a('0x15'));var utils=require(_0xb36a('0x16'));var config=require(_0xb36a('0x17'));var licenseUtil=require(_0xb36a('0x18'));var db=require(_0xb36a('0x19'))['db'];config[_0xb36a('0x1a')]=_['defaults'](config[_0xb36a('0x1a')],{'host':_0xb36a('0x1b'),'port':0x18eb});var socket=require(_0xb36a('0x1c'))(new Redis(config[_0xb36a('0x1a')]));require(_0xb36a('0x1d'))[_0xb36a('0x1e')](socket);function respondWithStatusCode(_0x5dd787,_0x50cd65){_0x50cd65=_0x50cd65||0xcc;return function(_0x34bc6a){if(_0x34bc6a){return _0x5dd787[_0xb36a('0x1f')](_0x50cd65);}return _0x5dd787[_0xb36a('0x20')](_0x50cd65)['end']();};}function respondWithResult(_0x31e0e8,_0x29d0a8){_0x29d0a8=_0x29d0a8||0xc8;return function(_0x343c49){if(_0x343c49){return _0x31e0e8[_0xb36a('0x20')](_0x29d0a8)['json'](_0x343c49);}};}function respondWithFilteredResult(_0x4f5a04,_0xc944ec){return function(_0x3c3b7c){if(_0x3c3b7c){var _0x475249=typeof _0xc944ec['offset']===_0xb36a('0x21')&&typeof _0xc944ec[_0xb36a('0x22')]===_0xb36a('0x21');var _0x508b02=_0x3c3b7c['count'];var _0x2a9169=_0x475249?0x0:_0xc944ec[_0xb36a('0x23')];var _0x17e080=_0x475249?_0x3c3b7c[_0xb36a('0x24')]:_0xc944ec[_0xb36a('0x23')]+_0xc944ec['limit'];var _0x1e0125;if(_0x17e080>=_0x508b02){_0x17e080=_0x508b02;_0x1e0125=0xc8;}else{_0x1e0125=0xce;}_0x4f5a04['status'](_0x1e0125);return _0x4f5a04[_0xb36a('0x25')](_0xb36a('0x26'),_0x2a9169+'-'+_0x17e080+'/'+_0x508b02)[_0xb36a('0x27')](_0x3c3b7c);}return null;};}function patchUpdates(_0x2e8985){return function(_0x476ab6){try{jsonpatch[_0xb36a('0x28')](_0x476ab6,_0x2e8985,!![]);}catch(_0x3e8e3b){return BPromise['reject'](_0x3e8e3b);}return _0x476ab6[_0xb36a('0x29')]();};}function saveUpdates(_0x2cad34,_0x1da58a){return function(_0x41c1a2){if(_0x41c1a2){return _0x41c1a2[_0xb36a('0x2a')](_0x2cad34)[_0xb36a('0x2b')](function(_0x150737){return _0x150737;});}return null;};}function removeEntity(_0x1f6f7f,_0x74140e){return function(_0x272e88){if(_0x272e88){return _0x272e88['destroy']()[_0xb36a('0x2b')](function(){_0x1f6f7f[_0xb36a('0x20')](0xcc)[_0xb36a('0x2c')]();});}};}function handleEntityNotFound(_0x638a13,_0xe4d2e6){return function(_0x15cfa8){if(!_0x15cfa8){_0x638a13[_0xb36a('0x1f')](0x194);}return _0x15cfa8;};}function handleError(_0x264e61,_0x33263d){_0x33263d=_0x33263d||0x1f4;return function(_0x598706){logger[_0xb36a('0x2d')](_0x598706[_0xb36a('0x2e')]);if(_0x598706[_0xb36a('0x2f')]){delete _0x598706['name'];}_0x264e61['status'](_0x33263d)['send'](_0x598706);};}function getInteractionUsers(_0x5054c7,_0x23b731){return new BPromise(function(_0x80f12b,_0x3f4bf8){try{if(_0x23b731[_0x5054c7['id']]){_0x5054c7[_0xb36a('0x30')]=_[_0xb36a('0x31')](_0x23b731[_0x5054c7['id']],function(_0x1a75a9){return{'id':_0x1a75a9['id'],'fullname':_0x1a75a9[_0xb36a('0x32')]};});}}catch(_0x574daa){_0x3f4bf8(_0x574daa);}_0x80f12b(_0x5054c7);});}function getInteractionTags(_0x5affd3,_0x19738e){return new BPromise(function(_0x24259c,_0x465b06){try{if(_0x5affd3[_0xb36a('0x33')]){_0x5affd3[_0xb36a('0x34')]=[];_0x5affd3[_0xb36a('0x33')][_0xb36a('0x35')](',')[_0xb36a('0x36')](function(_0x2874c5){_0x5affd3[_0xb36a('0x34')][_0xb36a('0x37')](_0x19738e[_0x2874c5]);});}delete _0x5affd3[_0xb36a('0x33')];}catch(_0x5abc8d){_0x465b06(_0x5abc8d);}_0x24259c(_0x5affd3);});}function updateSmsInteraction(_0x2274f9,_0x57731b,_0x27cd94){return new BPromise(function(_0x2b8071,_0x378929){return getInteractionUsers(_0x2274f9,_0x27cd94)[_0xb36a('0x2b')](function(_0x590e71){return getInteractionTags(_0x590e71,_0x57731b);})[_0xb36a('0x2b')](function(_0xd47f69){_0x2b8071(_0xd47f69);})[_0xb36a('0x38')](function(_0x355093){_0x378929(_0x355093);});});}exports['index']=function(_0x5e567e,_0x722dc1){var _0x3af529={},_0x12e5dd={},_0xbae8c5={'count':0x0,'rows':[]};var _0x535176=_[_0xb36a('0x31')](db[_0xb36a('0x39')][_0xb36a('0x3a')],function(_0x1433b4){return{'name':_0x1433b4[_0xb36a('0x3b')],'type':_0x1433b4[_0xb36a('0x3c')]['key']};});_0x12e5dd[_0xb36a('0x3d')]=_[_0xb36a('0x31')](_0x535176,_0xb36a('0x2f'));_0x12e5dd[_0xb36a('0x3e')]=_[_0xb36a('0x3f')](_0x5e567e[_0xb36a('0x3e')]);_0x12e5dd['filters']=_[_0xb36a('0x40')](_0x12e5dd[_0xb36a('0x3d')],_0x12e5dd['query']);_0x3af529[_0xb36a('0x41')]=_[_0xb36a('0x40')](_0x12e5dd[_0xb36a('0x3d')],qs[_0xb36a('0x42')](_0x5e567e['query'][_0xb36a('0x42')]));_0x3af529[_0xb36a('0x41')]=_0x3af529[_0xb36a('0x41')][_0xb36a('0x43')]?_0x3af529[_0xb36a('0x41')]:_0x12e5dd[_0xb36a('0x3d')];if(!_0x5e567e[_0xb36a('0x3e')][_0xb36a('0x44')](_0xb36a('0x45'))){_0x3af529[_0xb36a('0x22')]=qs['limit'](_0x5e567e[_0xb36a('0x3e')][_0xb36a('0x22')]);_0x3af529[_0xb36a('0x23')]=qs[_0xb36a('0x23')](_0x5e567e[_0xb36a('0x3e')][_0xb36a('0x23')]);}_0x3af529[_0xb36a('0x46')]=qs['sort'](_0x5e567e['query'][_0xb36a('0x47')]);_0x3af529[_0xb36a('0x48')]=qs[_0xb36a('0x49')](_[_0xb36a('0x4a')](_0x5e567e[_0xb36a('0x3e')],_0x12e5dd[_0xb36a('0x49')]),_0x535176);var _0x2232a0=[];var _0x1145b1=squel['select']()[_0xb36a('0x4b')]('id')[_0xb36a('0x4b')](_0xb36a('0x2f'))[_0xb36a('0x4b')](_0xb36a('0x4c'))[_0xb36a('0x4d')](_0xb36a('0x4e'));var _0x1d3a30=squel['select']()[_0xb36a('0x4b')](_0xb36a('0x4f'))['field'](_0xb36a('0x50'))[_0xb36a('0x4b')]('ui.SmsInteractionId')[_0xb36a('0x4d')]('user_has_sms_interactions','ui')[_0xb36a('0x51')](_0xb36a('0x52'),'u',_0xb36a('0x53'));var _0x48bbb0=squel[_0xb36a('0x54')]()[_0xb36a('0x4d')](_0xb36a('0x55'),'i')[_0xb36a('0x51')](_0xb36a('0x56'),'c',_0xb36a('0x57'))[_0xb36a('0x51')](_0xb36a('0x52'),'o',_0xb36a('0x58'))['left_join'](_0xb36a('0x59'),'a',_0xb36a('0x5a'))['left_join'](_0xb36a('0x5b'),'me',_0xb36a('0x5c'))[_0xb36a('0x51')](_0xb36a('0x5d'),'it',_0xb36a('0x5e'))[_0xb36a('0x51')]('tools_tags','t',_0xb36a('0x5f'));var _0x3851ca=squel[_0xb36a('0x60')]();var _0xfa0aad=[];var _0x31b0a5=squel[_0xb36a('0x60')]();var _0x24f956;if(_0x5e567e[_0xb36a('0x3e')][_0xb36a('0x61')]){_0x24f956=as[_0xb36a('0x62')](_0x5e567e[_0xb36a('0x3e')]['search']);var _0x49c602=_0x24f956['sqlOperator'];for(var _0x325a4b=0x0;_0x325a4b<_0x24f956[_0xb36a('0x63')][_0xb36a('0x43')];_0x325a4b++){var _0x5e84dc=_0x24f956['conditions'][_0x325a4b];var _0x63dadc='i';var _0x48d8ca=_[_0xb36a('0x64')](_0x535176,[_0xb36a('0x2f'),_0x5e84dc['field']]);if(!_0x48d8ca){switch(_0x5e84dc[_0xb36a('0x4b')]){case _0xb36a('0x65'):if(_0x5e84dc[_0xb36a('0x66')]==0x1){_0x48bbb0['having']('`'+_0x5e84dc['field']+_0xb36a('0x67'));}else{_0x48bbb0[_0xb36a('0x68')]('`'+_0x5e84dc[_0xb36a('0x4b')]+'`\x20>\x200');}break;case _0xb36a('0x69'):if(_0x5e84dc[_0xb36a('0x6a')]===_0xb36a('0x6b')){if(_0x5e84dc[_0xb36a('0x66')]['split']('\x20')['length']>0x1){_0x3851ca[_0x49c602](_0xb36a('0x6c'),qs[_0xb36a('0x6d')](_0x5e84dc[_0xb36a('0x66')]),null);}else{var _0x29899a='%'+_0x5e84dc[_0xb36a('0x66')]+'%';_0x3851ca[_0x49c602](_0xb36a('0x6e'),_0x29899a,_0x29899a,_0x29899a);}}else{_0x48d8ca=_['find'](_0x535176,[_0xb36a('0x2f'),_0xb36a('0x6f')]);_0x5e84dc[_0xb36a('0x4b')]=_0xb36a('0x6f');_0x4ea9a2=as['buildExpression'](_0x63dadc,_0x48d8ca[_0xb36a('0x3c')],_0x5e84dc);_0x3851ca[_0x49c602](_0x4ea9a2[_0xb36a('0x70')],_0x4ea9a2[_0xb36a('0x66')][_0xb36a('0x71')],_0x4ea9a2['value'][_0xb36a('0x2c')]);}break;case _0xb36a('0x72'):var _0x488585=_0x5e84dc['value'][_0xb36a('0x35')](',')['map'](function(_0x33ca50){return Number(_0x33ca50);});_0x488585[_0xb36a('0x36')](function(_0x2bd718){_0x31b0a5['or'](_0xb36a('0x73'),'%,'+_0x2bd718+',%');});_0xfa0aad=_[_0xb36a('0x74')](_0xfa0aad,_0x488585);break;case'User':if(_0x5e84dc['operator']==='$substring'){_0x3851ca[_0x49c602](_0xb36a('0x75'),'%'+_0x5e84dc['value']+'%',null);}else{_0x48d8ca=_[_0xb36a('0x64')](_0x535176,[_0xb36a('0x2f'),'UserId']);_0x5e84dc[_0xb36a('0x4b')]=_0xb36a('0x76');_0x4ea9a2=as[_0xb36a('0x77')](_0x63dadc,_0x48d8ca[_0xb36a('0x3c')],_0x5e84dc);_0x3851ca[_0x49c602](_0x4ea9a2[_0xb36a('0x70')],_0x4ea9a2['value']['start'],_0x4ea9a2[_0xb36a('0x66')]['end']);}break;case _0xb36a('0x78'):_0x4ea9a2=as['buildExpression']('me',null,_0x5e84dc);_0x3851ca[_0x49c602](_0x4ea9a2[_0xb36a('0x70')],_0x4ea9a2[_0xb36a('0x66')][_0xb36a('0x71')],_0x4ea9a2[_0xb36a('0x66')]['end']);break;}}else{var _0x4ea9a2=as[_0xb36a('0x77')](_0x63dadc,_0x48d8ca['type'],_0x5e84dc);_0x3851ca[_0x49c602](_0x4ea9a2[_0xb36a('0x70')],_0x4ea9a2[_0xb36a('0x66')]['start'],_0x4ea9a2[_0xb36a('0x66')]['end']);}}}else{var _0x2a52e3=_(_0x5e567e[_0xb36a('0x3e')])[_0xb36a('0x3f')]()[_0xb36a('0x31')](function(_0x3530c3){return _['some'](_0x535176,[_0xb36a('0x2f'),_0x3530c3])?_0x3530c3:undefined;})[_0xb36a('0x79')]()[_0xb36a('0x66')]();if(!_[_0xb36a('0x7a')](_0x2a52e3)){_0x2a52e3[_0xb36a('0x36')](function(_0x3f3188){if(_0x3f3188===_0xb36a('0x7b')){_0x48bbb0[_0xb36a('0x48')]('i.SmsAccountId\x20IN\x20?',[][_0xb36a('0x7c')](_0x5e567e[_0xb36a('0x3e')][_0x3f3188]));}else if(_0x3f3188===_0xb36a('0x7d')){var _0xa37bcc=JSON[_0xb36a('0x7e')](_0x5e567e[_0xb36a('0x3e')][_0x3f3188])[_0xb36a('0x7f')];var _0x456f7b=JSON['parse'](_0x5e567e[_0xb36a('0x3e')][_0x3f3188])[_0xb36a('0x80')];_0x48bbb0[_0xb36a('0x48')]('i.createdAt\x20BETWEEN\x20?\x20AND\x20?',_0xa37bcc,_0x456f7b);}else{if(_0x5e567e['query'][_0x3f3188]===_0xb36a('0x81')){_0x48bbb0[_0xb36a('0x48')]('i.'+_0x3f3188+_0xb36a('0x82'));}else{_0x48bbb0[_0xb36a('0x48')]('i.'+_0x3f3188+_0xb36a('0x83'),_0x5e567e['query'][_0x3f3188]);}}});}if(_0x5e567e[_0xb36a('0x3e')][_0xb36a('0x84')]){if(_0x5e567e[_0xb36a('0x3e')][_0xb36a('0x84')]==0x1){_0x48bbb0['having']('`unreadMessages`\x20=\x200');}else{_0x48bbb0[_0xb36a('0x68')](_0xb36a('0x85'));}}if(_0x5e567e[_0xb36a('0x3e')][_0xb36a('0x86')]){_0xfa0aad=_[_0xb36a('0x87')](_0x5e567e[_0xb36a('0x3e')]['tag'])?_0x5e567e[_0xb36a('0x3e')][_0xb36a('0x86')]:new Array(_0x5e567e[_0xb36a('0x3e')][_0xb36a('0x86')]);_0xfa0aad['forEach'](function(_0x305f41){_0x31b0a5['or'](_0xb36a('0x73'),'%,'+_0x305f41+',%');});}if(_0x5e567e[_0xb36a('0x3e')][_0xb36a('0x88')]){var _0x241ee7=_0x5e567e[_0xb36a('0x3e')][_0xb36a('0x88')][_0xb36a('0x89')]('\x5c','\x5c\x5c')[_0xb36a('0x89')](/'/g,'\x27\x27');if(qs['isNumeric'](_0x241ee7)){_0x3851ca['or'](_0xb36a('0x8a'),_0x241ee7+'%')['or'](_0xb36a('0x8b'),_0x241ee7+'%');}else{_0x3851ca['or'](_0xb36a('0x8c'),qs[_0xb36a('0x6d')](_0x241ee7))['or'](_0xb36a('0x8d'),_0x241ee7+'%');}}}_0x48bbb0[_0xb36a('0x48')](_0x3851ca);_0x48bbb0[_0xb36a('0x8e')]('i.id');var _0x54d4cc={'type':db[_0xb36a('0x8f')][_0xb36a('0x90')][_0xb36a('0x91')],'raw':!![]};var _0x3708ef=_0x48bbb0[_0xb36a('0x92')]();_0x3708ef[_0xb36a('0x4b')](_0xb36a('0x93'));_0x3708ef[_0xb36a('0x4b')]('SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)',_0xb36a('0x65'));if(_0x3af529[_0xb36a('0x46')]){_0x3af529[_0xb36a('0x46')]['forEach'](function(_0x287dba){var _0x26ffe9=_0x287dba[0x0]===_0xb36a('0x94')?_0x287dba[0x0]:'i.'+_0x287dba[0x0];_0x48bbb0[_0xb36a('0x46')](_0x26ffe9,_0x287dba[0x1]===_0xb36a('0x95')?![]:!![]);});}if(!_[_0xb36a('0x7a')](_0xfa0aad)){_0x48bbb0[_0xb36a('0x68')](_0x31b0a5);_0x3708ef[_0xb36a('0x48')](_0xb36a('0x96'),_0xfa0aad);}BPromise['resolve']()[_0xb36a('0x2b')](function(){if(!_0x24f956){if(_0x5e567e[_0xb36a('0x3e')][_0xb36a('0x7b')])return;_0x3708ef[_0xb36a('0x48')](_0xb36a('0x97'));_0x48bbb0[_0xb36a('0x48')](_0xb36a('0x97'));return;}if(_0x5e567e[_0xb36a('0x98')]['role']!==_0xb36a('0x99'))return;return _0x5e567e[_0xb36a('0x98')][_0xb36a('0x9a')]({'attributes':['id'],'raw':!![]})[_0xb36a('0x2b')](function(_0x3ec6f9){if(_[_0xb36a('0x7a')](_0x3ec6f9)){_0x3708ef[_0xb36a('0x48')](_0xb36a('0x9b'));_0x48bbb0['where'](_0xb36a('0x9b'));}else{_0x3708ef['where']('i.SmsAccountId\x20IN\x20?',_[_0xb36a('0x31')](_0x3ec6f9,'id'));_0x48bbb0[_0xb36a('0x48')](_0xb36a('0x9c'),_[_0xb36a('0x31')](_0x3ec6f9,'id'));}});})['then'](function(){if(_0x5e567e[_0xb36a('0x98')][_0xb36a('0x9d')]===_0xb36a('0x99')&&!_0x24f956&&!_0x5e567e[_0xb36a('0x3e')][_0xb36a('0x7b')])return[];return db[_0xb36a('0x9e')]['query'](_0x3708ef[_0xb36a('0x9f')](),_0x54d4cc);})[_0xb36a('0x2b')](function(_0x2f0d9e){_0xbae8c5['count']=_0x2f0d9e['length'];if(_0xbae8c5[_0xb36a('0x24')]===0x0)return[];return db[_0xb36a('0x9e')][_0xb36a('0x3e')](_0x1145b1[_0xb36a('0x9f')](),_0x54d4cc)['then'](function(_0x1e6fa2){_0x2232a0=_[_0xb36a('0xa0')](_0x1e6fa2,'id');_0x54d4cc=_[_0xb36a('0xa1')](_0x54d4cc,{'model':db[_0xb36a('0x39')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x5e567e['query']['fields']){_0x3af529[_0xb36a('0x41')]['forEach'](function(_0x49dae2){_0x48bbb0[_0xb36a('0x4b')]('i.'+_0x49dae2);});}else{_0x48bbb0['field']('SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','unreadMessages');_0x48bbb0['field'](_0xb36a('0xa2'),_0xb36a('0xa3'));_0x48bbb0['field'](_0xb36a('0xa4'),_0xb36a('0xa5'));_0x48bbb0[_0xb36a('0x4b')](_0xb36a('0xa6'),'contactName');_0x48bbb0[_0xb36a('0x4b')]('i.*');_0x48bbb0[_0xb36a('0x4b')]('c.firstName','Contact.firstName');_0x48bbb0['field'](_0xb36a('0xa7'),_0xb36a('0xa8'));_0x48bbb0[_0xb36a('0x4b')](_0xb36a('0xa9'),'Contact.email');_0x48bbb0['field'](_0xb36a('0xaa'),_0xb36a('0xab'));_0x48bbb0[_0xb36a('0x4b')](_0xb36a('0xac'),'Contact.mobile');_0x48bbb0[_0xb36a('0x4b')](_0xb36a('0xad'),_0xb36a('0xae'));_0x48bbb0[_0xb36a('0x4b')](_0xb36a('0xaf'),_0xb36a('0xb0'));_0x48bbb0['field'](_0xb36a('0xb1'),_0xb36a('0xb2'));_0x48bbb0[_0xb36a('0x4b')](_0xb36a('0xb3'),_0xb36a('0x33'));}if(_0x3af529[_0xb36a('0x22')])_0x48bbb0['limit'](_0x3af529[_0xb36a('0x22')]);if(_0x3af529['offset'])_0x48bbb0[_0xb36a('0x23')](_0x3af529['offset']);return db[_0xb36a('0x9e')]['query'](_0x48bbb0[_0xb36a('0x9f')](),_0x54d4cc);})['then'](function(_0x23e6b7){if(_0x23e6b7[_0xb36a('0x43')]>0x0)_0x1d3a30[_0xb36a('0x48')](_0xb36a('0xb4'),_[_0xb36a('0x31')](_0x23e6b7,'id'));return db[_0xb36a('0x9e')]['query'](_0x1d3a30['toString'](),_0x54d4cc)['then'](function(_0x3dd457){var _0x213b74=_[_0xb36a('0xb5')](_0x3dd457,_0xb36a('0xb6'));var _0x4984da=[];_0x23e6b7[_0xb36a('0x36')](function(_0x4698d8){_0x4984da[_0xb36a('0x37')](updateSmsInteraction(_0x4698d8,_0x2232a0,_0x213b74));});return BPromise['all'](_0x4984da);});});})[_0xb36a('0x2b')](function(_0x2914d6){_0xbae8c5['rows']=_0x2914d6;return _0xbae8c5;})[_0xb36a('0x2b')](respondWithFilteredResult(_0x722dc1,_0x3af529))[_0xb36a('0x38')](handleError(_0x722dc1,null));};exports[_0xb36a('0xb7')]=function(_0x1138b6,_0x23517c){var _0x1cc751={'raw':![],'where':{'id':_0x1138b6[_0xb36a('0xb8')]['id']}},_0x3b5cf1={};_0x3b5cf1['model']=_[_0xb36a('0x3f')](db['SmsInteraction']['rawAttributes']);_0x3b5cf1['query']=_['keys'](_0x1138b6[_0xb36a('0x3e')]);_0x3b5cf1[_0xb36a('0x49')]=_[_0xb36a('0x40')](_0x3b5cf1[_0xb36a('0x3d')],_0x3b5cf1[_0xb36a('0x3e')]);_0x1cc751[_0xb36a('0x41')]=_[_0xb36a('0x40')](_0x3b5cf1[_0xb36a('0x3d')],qs[_0xb36a('0x42')](_0x1138b6['query']['fields']));_0x1cc751['attributes']=_0x1cc751['attributes'][_0xb36a('0x43')]?_0x1cc751[_0xb36a('0x41')]:_0x3b5cf1[_0xb36a('0x3d')];if(_0x1138b6['query']['includeAll']){_0x1cc751[_0xb36a('0xb9')]=[{'all':!![]}];}_0x1cc751=_[_0xb36a('0xa1')]({},_0x1cc751,_0x1138b6['options']);return db['SmsInteraction'][_0xb36a('0x64')](_0x1cc751)[_0xb36a('0x2b')](handleEntityNotFound(_0x23517c,null))['then'](respondWithResult(_0x23517c,null))[_0xb36a('0x38')](handleError(_0x23517c,null));};exports[_0xb36a('0xba')]=function(_0x64cf38,_0x55135b){return db[_0xb36a('0x39')]['create'](_0x64cf38['body'],{})[_0xb36a('0x2b')](respondWithResult(_0x55135b,0xc9))[_0xb36a('0x38')](handleError(_0x55135b,null));};exports['update']=function(_0x19b81c,_0x383fc1){if(_0x19b81c[_0xb36a('0x78')]['id']){delete _0x19b81c[_0xb36a('0x78')]['id'];}return db[_0xb36a('0x39')][_0xb36a('0x64')]({'where':{'id':_0x19b81c[_0xb36a('0xb8')]['id']}})[_0xb36a('0x2b')](handleEntityNotFound(_0x383fc1,null))[_0xb36a('0x2b')](saveUpdates(_0x19b81c[_0xb36a('0x78')],null))['then'](respondWithResult(_0x383fc1,null))[_0xb36a('0x38')](handleError(_0x383fc1,null));};exports['destroy']=function(_0x4ff5df,_0x79ee14){return db['SmsInteraction'][_0xb36a('0x64')]({'where':{'id':_0x4ff5df[_0xb36a('0xb8')]['id']}})[_0xb36a('0x2b')](handleEntityNotFound(_0x79ee14,null))[_0xb36a('0x2b')](removeEntity(_0x79ee14,null))[_0xb36a('0x38')](handleError(_0x79ee14,null));};exports[_0xb36a('0xbb')]=function(_0x51f896,_0x3a514b){return db[_0xb36a('0x39')]['describe']()[_0xb36a('0x2b')](respondWithResult(_0x3a514b,null))['catch'](handleError(_0x3a514b,null));};exports[_0xb36a('0xbc')]=function(_0x2e6a3e,_0x1cc06a,_0x5842f3){return db['SmsMessage'][_0xb36a('0x64')]({'where':{'id':_0x2e6a3e[_0xb36a('0xb8')]['id']}})['then'](handleEntityNotFound(_0x1cc06a,null))[_0xb36a('0x2b')](function(_0x73b8be){if(_0x73b8be){return _0x73b8be[_0xb36a('0xbc')](_0x2e6a3e[_0xb36a('0x78')][_0xb36a('0xbd')],_[_0xb36a('0xbe')](_0x2e6a3e[_0xb36a('0x78')],['ids','id'])||{});}})[_0xb36a('0x2b')](respondWithResult(_0x1cc06a,null))['catch'](handleError(_0x1cc06a,null));};exports[_0xb36a('0xbf')]=function(_0x36d38a,_0x259863,_0x47e0ee){var _0x5830c0={'raw':![],'where':{}};var _0x21e509={};var _0x2da5a8={'count':0x0,'rows':[]};return db[_0xb36a('0x39')][_0xb36a('0xc0')]({'where':{'id':_0x36d38a[_0xb36a('0xb8')]['id']}})[_0xb36a('0x2b')](handleEntityNotFound(_0x259863,null))['then'](function(_0x3ec100){if(_0x3ec100){_0x21e509['model']=_[_0xb36a('0x3f')](db[_0xb36a('0xc1')]['rawAttributes']);_0x21e509[_0xb36a('0x3e')]=_[_0xb36a('0x3f')](_0x36d38a['query']);_0x21e509[_0xb36a('0x49')]=_[_0xb36a('0x40')](_0x21e509[_0xb36a('0x3d')],_0x21e509[_0xb36a('0x3e')]);_0x5830c0['attributes']=_[_0xb36a('0x40')](_0x21e509[_0xb36a('0x3d')],qs['fields'](_0x36d38a[_0xb36a('0x3e')][_0xb36a('0x42')]));_0x5830c0['attributes']=_0x5830c0[_0xb36a('0x41')]['length']?_0x5830c0[_0xb36a('0x41')]:_0x21e509[_0xb36a('0x3d')];if(!_0x36d38a[_0xb36a('0x3e')]['hasOwnProperty'](_0xb36a('0x45'))){_0x5830c0[_0xb36a('0x22')]=qs[_0xb36a('0x22')](_0x36d38a['query'][_0xb36a('0x22')]);_0x5830c0[_0xb36a('0x23')]=qs[_0xb36a('0x23')](_0x36d38a[_0xb36a('0x3e')]['offset']);}_0x5830c0['order']=qs['sort'](_0x36d38a[_0xb36a('0x3e')][_0xb36a('0x47')]);_0x5830c0[_0xb36a('0x48')]=qs[_0xb36a('0x49')](_[_0xb36a('0x4a')](_0x36d38a[_0xb36a('0x3e')],_0x21e509[_0xb36a('0x49')]));_0x5830c0[_0xb36a('0x48')][_0xb36a('0xb6')]=_0x3ec100['id'];if(_0x36d38a['query']['filter']){_0x5830c0['where']=_[_0xb36a('0xa1')](_0x5830c0[_0xb36a('0x48')],{'$or':_[_0xb36a('0x31')](_0x5830c0[_0xb36a('0x41')],function(_0x167fed){var _0x2e87e3={};_0x2e87e3[_0x167fed]={'$like':'%'+_0x36d38a[_0xb36a('0x3e')][_0xb36a('0x88')]+'%'};return _0x2e87e3;})});}if(_0x36d38a['query'][_0xb36a('0x7f')]){var _0x3900b0=_0x36d38a[_0xb36a('0x3e')][_0xb36a('0x7f')][_0xb36a('0x35')](',');var _0x393d56={};_0x393d56[_0x3900b0[0x0]]={'$gte':moment(_0x3900b0[0x1])['format'](_0xb36a('0xc2'))};_0x5830c0[_0xb36a('0x48')]=_[_0xb36a('0xa1')](_0x5830c0[_0xb36a('0x48')],_0x393d56);}_0x5830c0=_[_0xb36a('0xa1')]({},_0x5830c0,_0x36d38a[_0xb36a('0xc3')]);return db['SmsMessage'][_0xb36a('0x24')]({'where':_0x5830c0[_0xb36a('0x48')]})['then'](function(_0x107a1f){_0x2da5a8[_0xb36a('0x24')]=_0x107a1f;if(_0x36d38a[_0xb36a('0x3e')][_0xb36a('0xc4')]){_0x5830c0[_0xb36a('0xb9')]=[{'all':!![]}];}return db['SmsMessage']['findAll'](_0x5830c0);})[_0xb36a('0x2b')](function(_0xfe80d){_0x2da5a8[_0xb36a('0xc5')]=_0xfe80d;return _0x2da5a8;});}})[_0xb36a('0x2b')](respondWithFilteredResult(_0x259863,_0x5830c0))['catch'](handleError(_0x259863,null));};exports[_0xb36a('0xc6')]=function(_0x24983f,_0x2b7033,_0x12ee2b){return db['SmsInteraction']['find']({'where':{'id':_0x24983f[_0xb36a('0xb8')]['id']}})[_0xb36a('0x2b')](handleEntityNotFound(_0x2b7033,null))[_0xb36a('0x2b')](function(_0x19a4a1){if(_0x19a4a1){return _0x19a4a1[_0xb36a('0xc7')](_0x24983f['body'][_0xb36a('0xbd')],_[_0xb36a('0xbe')](_0x24983f[_0xb36a('0x78')],['ids','id'])||{})[_0xb36a('0xc8')](function(){return db['Tag']['findAll']({'attributes':['id','name',_0xb36a('0x4c')],'where':{'id':_0x24983f['body']['ids']}});})[_0xb36a('0x2b')](function(_0x4394bf){socket[_0xb36a('0xc9')]('smsInteractionTags:save',{'id':Number(_0x24983f[_0xb36a('0xb8')]['id']),'tags':_0x4394bf||[]});return{'id':Number(_0x24983f[_0xb36a('0xb8')]['id']),'tags':_0x4394bf||[]};});}})[_0xb36a('0x2b')](respondWithResult(_0x2b7033,null))['catch'](handleError(_0x2b7033,null));};exports[_0xb36a('0xca')]=function(_0x9070eb,_0x2aba01,_0x525b2e){return db[_0xb36a('0x39')]['find']({'where':{'id':_0x9070eb[_0xb36a('0xb8')]['id']}})[_0xb36a('0x2b')](handleEntityNotFound(_0x2aba01,null))['then'](function(_0x500444){if(_0x500444){return _0x500444[_0xb36a('0xca')](_0x9070eb[_0xb36a('0x3e')]['ids']);}})[_0xb36a('0x2b')](respondWithStatusCode(_0x2aba01,null))['catch'](handleError(_0x2aba01,null));};exports[_0xb36a('0xcb')]=function(_0x88bb40,_0x589ae5){var _0x41f392=moment()['unix']()[_0xb36a('0x9f')]();var _0x53534b=path[_0xb36a('0xcc')](config[_0xb36a('0xcd')],_0xb36a('0xce'),_0xb36a('0xcf'),_0xb36a('0xd0'));var _0x320b74=path['join'](config[_0xb36a('0xcd')],'server',_0xb36a('0xcf'),'attachments');var _0x40bb63=path[_0xb36a('0xcc')](_0x53534b,_0x41f392);var _0x4331b9=util[_0xb36a('0xd1')](_0xb36a('0xd2'),_0x88bb40[_0xb36a('0xb8')]['id'],_0x41f392);var _0x39631d=path[_0xb36a('0xcc')](_0x53534b,_0x4331b9);var _0x3e4e28=[];_0x3e4e28['push']({'model':db[_0xb36a('0xd3')],'as':_0xb36a('0xd3'),'attributes':['id',_0xb36a('0x32')],'raw':!![]});_0x3e4e28[_0xb36a('0x37')]({'model':db['CmContact'],'as':'Contact','attributes':['id',_0xb36a('0xd4'),_0xb36a('0xd5')],'raw':!![]});var _0x2c87a6=[{'model':db['SmsMessage'],'as':_0xb36a('0xd6'),'attributes':['id','body',_0xb36a('0x7d'),_0xb36a('0xd7'),_0xb36a('0xd8'),_0xb36a('0x84')],'include':_0x3e4e28}];_0x2c87a6['push']({'model':db[_0xb36a('0xd9')],'as':_0xb36a('0xda'),'attributes':['id','name']});_0x2c87a6[_0xb36a('0x37')]({'model':db['User'],'as':_0xb36a('0xdb'),'attributes':['id','fullname']});return db[_0xb36a('0x39')]['find']({'where':{'id':_0x88bb40[_0xb36a('0xb8')]['id']},'include':_0x2c87a6})[_0xb36a('0x2b')](handleEntityNotFound(_0x589ae5,null))[_0xb36a('0x2b')](function(_0x1a7d2b){if(_0x1a7d2b){var _0x2dbe93=_0x1a7d2b['get']({'plain':!![]});fs[_0xb36a('0xdc')](_0x40bb63);var _0x41298b={'channel':_0xb36a('0xdd'),'account':_0x2dbe93[_0xb36a('0xda')][_0xb36a('0x2f')],'agent':_0x2dbe93[_0xb36a('0xdb')]?_0x2dbe93[_0xb36a('0xdb')]['fullname']:'N.A.','createdAt':moment(_0x2dbe93['createdAt'])[_0xb36a('0xd1')]('YYYY-MM-DD\x20HH:mm:ss')[_0xb36a('0x9f')](),'closedAt':_0x2dbe93[_0xb36a('0xde')]?moment(_0x2dbe93[_0xb36a('0xdf')])['format']('YYYY-MM-DD\x20HH:mm:ss')['toString']():'','disposition':_0x2dbe93[_0xb36a('0xe0')],'messages':_(_0x2dbe93[_0xb36a('0xd6')])[_0xb36a('0x88')]({'secret':![]})[_0xb36a('0x31')](function(_0x47e8e7){return{'date':moment(_0x47e8e7[_0xb36a('0x7d')])[_0xb36a('0xd1')](_0xb36a('0xc2'))[_0xb36a('0x9f')](),'sender':_0x47e8e7['direction']===_0xb36a('0xe1')?_0x47e8e7['User']?_0x47e8e7[_0xb36a('0xd3')]['fullname']:_0xb36a('0xe2'):_0x47e8e7[_0xb36a('0x69')][_0xb36a('0xd4')]+(_0x47e8e7[_0xb36a('0x69')][_0xb36a('0xd5')]?'\x20'+_0x47e8e7[_0xb36a('0x69')][_0xb36a('0xd5')]:''),'body':_0x47e8e7[_0xb36a('0x78')],'direction':_0x47e8e7['direction']===_0xb36a('0xe1')?'A':'C','secret':_0x47e8e7[_0xb36a('0xd8')],'read':_0x47e8e7[_0xb36a('0x84')]};})[_0xb36a('0x66')]()};return ejs['renderFile'](path[_0xb36a('0xcc')](config[_0xb36a('0xcd')],_0xb36a('0xce'),'views','downloadInteraction.ejs'),{'interaction':_0x41298b})[_0xb36a('0x2b')](function(_0x4dad02){var _0x74577f=path[_0xb36a('0xcc')](_0x40bb63,_0xb36a('0xe3')+_0x2dbe93['id']+'-'+_0x41f392+_0xb36a('0xe4'));var _0x436201={'path':_0x74577f,'channel':_0xb36a('0xdd'),'interactionId':_0x2dbe93['id']};return pdf[_0xb36a('0xe5')](_0x4dad02,_0x436201);})['then'](function(){return new BPromise(function(_0x234907,_0x11882d){zipdir(_0x40bb63,{'saveTo':_0x39631d},function(_0x68372d,_0x3e59e7){if(_0x68372d)return _0x11882d(_0x68372d);return _0x234907(_0x3e59e7);});})[_0xb36a('0x2b')](function(){return new BPromise(function(_0x272ce8,_0xe652d5){rimraf(_0x40bb63,function(_0x44bf2c){if(_0x44bf2c)_0xe652d5(_0x44bf2c);return _0x272ce8();});});})[_0xb36a('0x2b')](function(){return _0x589ae5[_0xb36a('0xcb')](_0x39631d,_0x4331b9,function(_0x477cc8){if(_0x477cc8){console[_0xb36a('0xe6')]('err',_0x477cc8);}else{fs[_0xb36a('0xe7')](_0x39631d);}});});});}else{return _0x589ae5[_0xb36a('0x1f')](0xc8);}})[_0xb36a('0x38')](handleError(_0x589ae5,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7334=['setMaxListeners','update','remove','getUsers','then','setDataValue','Users','map','findAll','length','emit','catch','hook','exports','events','../../mysqldb','SmsInteraction'];(function(_0x49c54c,_0x54a647){var _0x446225=function(_0x462f62){while(--_0x462f62){_0x49c54c['push'](_0x49c54c['shift']());}};_0x446225(++_0x54a647);}(_0x7334,0x184));var _0x4733=function(_0x2dd16b,_0x589ea5){_0x2dd16b=_0x2dd16b-0x0;var _0x832e78=_0x7334[_0x2dd16b];return _0x832e78;};'use strict';var EventEmitter=require(_0x4733('0x0'));var SmsInteraction=require(_0x4733('0x1'))['db'][_0x4733('0x2')];var SmsMessage=require('../../mysqldb')['db']['SmsMessage'];var SmsInteractionEvents=new EventEmitter();SmsInteractionEvents[_0x4733('0x3')](0x0);var events={'afterCreate':'save','afterUpdate':_0x4733('0x4'),'afterDestroy':_0x4733('0x5')};function emitEvent(_0x3645a2){return function(_0x29d7da,_0x2b146d,_0x449ead){_0x29d7da[_0x4733('0x6')]({'attributes':['id'],'raw':!![]})[_0x4733('0x7')](function(_0x12cafa){_0x29d7da[_0x4733('0x8')](_0x4733('0x9'),_0x12cafa[_0x4733('0xa')](function(_0x4c5c0){return{'id':_0x4c5c0['id']};}));return SmsMessage[_0x4733('0xb')]({'where':{'SmsInteractionId':_0x29d7da['id'],'direction':'in','read':![]},'raw':!![]});})[_0x4733('0x7')](function(_0x1bc511){_0x29d7da[_0x4733('0x8')]('unreadMessages',_0x1bc511[_0x4733('0xc')]);SmsInteractionEvents[_0x4733('0xd')](_0x3645a2+':'+_0x29d7da['id'],_0x29d7da);SmsInteractionEvents['emit'](_0x3645a2,_0x29d7da);_0x449ead(null);})[_0x4733('0xe')](_0x449ead(null));};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];SmsInteraction[_0x4733('0xf')](e,emitEvent(event));}}module[_0x4733('0x10')]=SmsInteractionEvents;
\ No newline at end of file
+var _0x5c3c=['events','../../mysqldb','SmsInteraction','setMaxListeners','save','update','remove','getUsers','Users','map','findAll','then','setDataValue','unreadMessages','emit','catch','hook','exports'];(function(_0x2a1d9d,_0x2f29ca){var _0x3075c6=function(_0x1f4eea){while(--_0x1f4eea){_0x2a1d9d['push'](_0x2a1d9d['shift']());}};_0x3075c6(++_0x2f29ca);}(_0x5c3c,0x132));var _0xc5c3=function(_0x187ee1,_0x3fd1e6){_0x187ee1=_0x187ee1-0x0;var _0x388160=_0x5c3c[_0x187ee1];return _0x388160;};'use strict';var EventEmitter=require(_0xc5c3('0x0'));var SmsInteraction=require(_0xc5c3('0x1'))['db'][_0xc5c3('0x2')];var SmsMessage=require(_0xc5c3('0x1'))['db']['SmsMessage'];var SmsInteractionEvents=new EventEmitter();SmsInteractionEvents[_0xc5c3('0x3')](0x0);var events={'afterCreate':_0xc5c3('0x4'),'afterUpdate':_0xc5c3('0x5'),'afterDestroy':_0xc5c3('0x6')};function emitEvent(_0x2535e0){return function(_0x36525d,_0xe85098,_0x23a6b5){_0x36525d[_0xc5c3('0x7')]({'attributes':['id'],'raw':!![]})['then'](function(_0x4b8404){_0x36525d['setDataValue'](_0xc5c3('0x8'),_0x4b8404[_0xc5c3('0x9')](function(_0x593b35){return{'id':_0x593b35['id']};}));return SmsMessage[_0xc5c3('0xa')]({'where':{'SmsInteractionId':_0x36525d['id'],'direction':'in','read':![]},'raw':!![]});})[_0xc5c3('0xb')](function(_0x52f3eb){_0x36525d[_0xc5c3('0xc')](_0xc5c3('0xd'),_0x52f3eb['length']);SmsInteractionEvents[_0xc5c3('0xe')](_0x2535e0+':'+_0x36525d['id'],_0x36525d);SmsInteractionEvents[_0xc5c3('0xe')](_0x2535e0,_0x36525d);_0x23a6b5(null);})[_0xc5c3('0xf')](_0x23a6b5(null));};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];SmsInteraction[_0xc5c3('0x10')](e,emitEvent(event));}}module[_0xc5c3('0x11')]=SmsInteractionEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4b50=['bluebird','request-promise','path','rimraf','./smsInteraction.attributes','define','SmsInteraction','sms_interactions','changed','closedAt','format','YYYY-MM-DD\x20HH:mm:ss','lodash','../../config/logger','moment'];(function(_0x31acd5,_0x55ad49){var _0x1455b9=function(_0x1529ea){while(--_0x1529ea){_0x31acd5['push'](_0x31acd5['shift']());}};_0x1455b9(++_0x55ad49);}(_0x4b50,0x165));var _0x04b5=function(_0x1f9503,_0x8e450b){_0x1f9503=_0x1f9503-0x0;var _0xaab94f=_0x4b50[_0x1f9503];return _0xaab94f;};'use strict';var _=require(_0x04b5('0x0'));var util=require('util');var logger=require(_0x04b5('0x1'))('api');var moment=require(_0x04b5('0x2'));var BPromise=require(_0x04b5('0x3'));var rp=require(_0x04b5('0x4'));var fs=require('fs');var path=require(_0x04b5('0x5'));var rimraf=require(_0x04b5('0x6'));var config=require('../../config/environment');var attributes=require(_0x04b5('0x7'));module['exports']=function(_0x5b2e42,_0x2020dd){return _0x5b2e42[_0x04b5('0x8')](_0x04b5('0x9'),attributes,{'tableName':_0x04b5('0xa'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeUpdate':function(_0x1823dd,_0x5e100d,_0x77cf3a){if(_0x1823dd[_0x04b5('0xb')]('closed')){_0x1823dd[_0x04b5('0xc')]=moment()[_0x04b5('0xd')](_0x04b5('0xe'));}_0x77cf3a(null,_0x1823dd);}}});};
\ No newline at end of file
+var _0xce49=['util','../../config/logger','api','bluebird','request-promise','rimraf','../../config/environment','./smsInteraction.attributes','exports','define','changed','closed','format','lodash'];(function(_0x46199b,_0x1158b8){var _0x14ce2a=function(_0x4a5571){while(--_0x4a5571){_0x46199b['push'](_0x46199b['shift']());}};_0x14ce2a(++_0x1158b8);}(_0xce49,0x1e9));var _0x9ce4=function(_0x50eeaa,_0x44f444){_0x50eeaa=_0x50eeaa-0x0;var _0x5c462c=_0xce49[_0x50eeaa];return _0x5c462c;};'use strict';var _=require(_0x9ce4('0x0'));var util=require(_0x9ce4('0x1'));var logger=require(_0x9ce4('0x2'))(_0x9ce4('0x3'));var moment=require('moment');var BPromise=require(_0x9ce4('0x4'));var rp=require(_0x9ce4('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0x9ce4('0x6'));var config=require(_0x9ce4('0x7'));var attributes=require(_0x9ce4('0x8'));module[_0x9ce4('0x9')]=function(_0x565802,_0x16e972){return _0x565802[_0x9ce4('0xa')]('SmsInteraction',attributes,{'tableName':'sms_interactions','paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeUpdate':function(_0xe87bbe,_0x20f6b6,_0x15ed44){if(_0xe87bbe[_0x9ce4('0xb')](_0x9ce4('0xc'))){_0xe87bbe['closedAt']=moment()[_0x9ce4('0xd')]('YYYY-MM-DD\x20HH:mm:ss');}_0x15ed44(null,_0xe87bbe);}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x997c=['http','redis','defaults','localhost','socket.io-emitter','./smsInteraction.socket','register','request','info','SmsInteraction,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','catch','UpdateSmsInteraction','update','body','options','where','limit','debug','AddTagsToSmsInteraction','SmsInteraction','omit','ids','spread','AddTags','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client'];(function(_0x40a045,_0x516f0e){var _0x1a687c=function(_0x48c9fe){while(--_0x48c9fe){_0x40a045['push'](_0x40a045['shift']());}};_0x1a687c(++_0x516f0e);}(_0x997c,0x119));var _0xc997=function(_0x1af659,_0xdbb49d){_0x1af659=_0x1af659-0x0;var _0x2aaa95=_0x997c[_0x1af659];return _0x2aaa95;};'use strict';var _=require(_0xc997('0x0'));var util=require(_0xc997('0x1'));var moment=require(_0xc997('0x2'));var BPromise=require(_0xc997('0x3'));var rs=require(_0xc997('0x4'));var fs=require('fs');var Redis=require(_0xc997('0x5'));var db=require(_0xc997('0x6'))['db'];var utils=require(_0xc997('0x7'));var logger=require(_0xc997('0x8'))(_0xc997('0x9'));var config=require(_0xc997('0xa'));var jayson=require(_0xc997('0xb'));var client=jayson[_0xc997('0xc')][_0xc997('0xd')]({'port':0x232a});config[_0xc997('0xe')]=_[_0xc997('0xf')](config['redis'],{'host':_0xc997('0x10'),'port':0x18eb});var socket=require(_0xc997('0x11'))(new Redis(config[_0xc997('0xe')]));require(_0xc997('0x12'))[_0xc997('0x13')](socket);function respondWithRpcPromise(_0x27b11c,_0x1f7cc5,_0x4085a1){return new BPromise(function(_0xe1f0bf,_0x5d64f2){return client[_0xc997('0x14')](_0x27b11c,_0x4085a1)['then'](function(_0x3c3135){logger[_0xc997('0x15')](_0xc997('0x16'),_0x1f7cc5,_0xc997('0x17'));logger['debug']('SmsInteraction,\x20%s,\x20%s,\x20%s',_0x1f7cc5,_0xc997('0x17'),JSON[_0xc997('0x18')](_0x3c3135));if(_0x3c3135[_0xc997('0x19')]){if(_0x3c3135['error'][_0xc997('0x1a')]===0x1f4){logger['error'](_0xc997('0x16'),_0x1f7cc5,_0x3c3135[_0xc997('0x19')][_0xc997('0x1b')]);return _0x5d64f2(_0x3c3135['error'][_0xc997('0x1b')]);}logger[_0xc997('0x19')](_0xc997('0x16'),_0x1f7cc5,_0x3c3135[_0xc997('0x19')][_0xc997('0x1b')]);return _0xe1f0bf(_0x3c3135['error']['message']);}else{logger[_0xc997('0x15')](_0xc997('0x16'),_0x1f7cc5,_0xc997('0x17'));_0xe1f0bf(_0x3c3135['result']['message']);}})[_0xc997('0x1c')](function(_0x40da9f){logger[_0xc997('0x19')]('SmsInteraction,\x20%s,\x20%s',_0x1f7cc5,_0x40da9f);_0x5d64f2(_0x40da9f);});});}exports[_0xc997('0x1d')]=function(_0x3a9e3c){var _0x246108=this;return new Promise(function(_0x12baba,_0xc97722){return db['SmsInteraction'][_0xc997('0x1e')](_0x3a9e3c[_0xc997('0x1f')],{'raw':_0x3a9e3c[_0xc997('0x20')]?_0x3a9e3c[_0xc997('0x20')]['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x3a9e3c[_0xc997('0x20')]?_0x3a9e3c['options'][_0xc997('0x21')]||null:null,'attributes':_0x3a9e3c['options']?_0x3a9e3c[_0xc997('0x20')]['attributes']||null:null,'limit':_0x3a9e3c[_0xc997('0x20')]?_0x3a9e3c[_0xc997('0x20')][_0xc997('0x22')]||null:null})['then'](function(_0x4f744d){logger[_0xc997('0x15')](_0xc997('0x1d'),_0x3a9e3c);logger[_0xc997('0x23')](_0xc997('0x1d'),_0x3a9e3c,JSON[_0xc997('0x18')](_0x4f744d));_0x12baba(_0x4f744d);})[_0xc997('0x1c')](function(_0x3b08a5){logger['error'](_0xc997('0x1d'),_0x3b08a5['message'],_0x3a9e3c);_0xc97722(_0x246108['error'](0x1f4,_0x3b08a5[_0xc997('0x1b')]));});});};exports[_0xc997('0x24')]=function(_0x59e8e3){return new Promise(function(_0x593e32,_0x4590e4){return db[_0xc997('0x25')]['find']({'where':_0x59e8e3[_0xc997('0x20')]?_0x59e8e3[_0xc997('0x20')][_0xc997('0x21')]||null:null})['then'](function(_0x2a15a1){if(_0x2a15a1){return _0x2a15a1['addTags'](_0x59e8e3[_0xc997('0x1f')]['ids'],_[_0xc997('0x26')](_0x59e8e3[_0xc997('0x1f')],[_0xc997('0x27'),'id'])||{});}})[_0xc997('0x28')](function(_0x37d4d6){logger[_0xc997('0x15')](_0xc997('0x29'),_0x59e8e3);logger[_0xc997('0x23')]('AddTags',_0x59e8e3,JSON[_0xc997('0x18')](_0x37d4d6));_0x593e32(_0x37d4d6);})['catch'](function(_0x4e4469){logger[_0xc997('0x19')]('AddTags',_0x4e4469['message'],_0x59e8e3);_0x4590e4(_this['error'](0x1f4,_0x4e4469[_0xc997('0x1b')]));});});};
\ No newline at end of file
+var _0xb27d=['update','body','options','raw','where','attributes','limit','AddTagsToSmsInteraction','find','addTags','ids','omit','spread','AddTags','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','http','defaults','redis','localhost','socket.io-emitter','request','then','info','SmsInteraction,\x20%s,\x20%s','request\x20sent','debug','SmsInteraction,\x20%s,\x20%s,\x20%s','stringify','error','code','message','catch','UpdateSmsInteraction','SmsInteraction'];(function(_0x5102c5,_0x30d7fa){var _0x8a1f4c=function(_0x476081){while(--_0x476081){_0x5102c5['push'](_0x5102c5['shift']());}};_0x8a1f4c(++_0x30d7fa);}(_0xb27d,0xe5));var _0xdb27=function(_0x278e3c,_0x1c9cfd){_0x278e3c=_0x278e3c-0x0;var _0x3e2d9b=_0xb27d[_0x278e3c];return _0x3e2d9b;};'use strict';var _=require(_0xdb27('0x0'));var util=require(_0xdb27('0x1'));var moment=require(_0xdb27('0x2'));var BPromise=require(_0xdb27('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xdb27('0x4'));var db=require(_0xdb27('0x5'))['db'];var utils=require(_0xdb27('0x6'));var logger=require(_0xdb27('0x7'))(_0xdb27('0x8'));var config=require(_0xdb27('0x9'));var jayson=require('jayson/promise');var client=jayson['client'][_0xdb27('0xa')]({'port':0x232a});config['redis']=_[_0xdb27('0xb')](config[_0xdb27('0xc')],{'host':_0xdb27('0xd'),'port':0x18eb});var socket=require(_0xdb27('0xe'))(new Redis(config[_0xdb27('0xc')]));require('./smsInteraction.socket')['register'](socket);function respondWithRpcPromise(_0x544d84,_0xc0af5f,_0x1c585e){return new BPromise(function(_0x278d12,_0x4e25e5){return client[_0xdb27('0xf')](_0x544d84,_0x1c585e)[_0xdb27('0x10')](function(_0x5e3df5){logger[_0xdb27('0x11')](_0xdb27('0x12'),_0xc0af5f,_0xdb27('0x13'));logger[_0xdb27('0x14')](_0xdb27('0x15'),_0xc0af5f,_0xdb27('0x13'),JSON[_0xdb27('0x16')](_0x5e3df5));if(_0x5e3df5[_0xdb27('0x17')]){if(_0x5e3df5['error'][_0xdb27('0x18')]===0x1f4){logger[_0xdb27('0x17')]('SmsInteraction,\x20%s,\x20%s',_0xc0af5f,_0x5e3df5['error'][_0xdb27('0x19')]);return _0x4e25e5(_0x5e3df5[_0xdb27('0x17')][_0xdb27('0x19')]);}logger[_0xdb27('0x17')]('SmsInteraction,\x20%s,\x20%s',_0xc0af5f,_0x5e3df5[_0xdb27('0x17')][_0xdb27('0x19')]);return _0x278d12(_0x5e3df5['error']['message']);}else{logger[_0xdb27('0x11')](_0xdb27('0x12'),_0xc0af5f,'request\x20sent');_0x278d12(_0x5e3df5['result'][_0xdb27('0x19')]);}})[_0xdb27('0x1a')](function(_0x4926be){logger['error']('SmsInteraction,\x20%s,\x20%s',_0xc0af5f,_0x4926be);_0x4e25e5(_0x4926be);});});}exports[_0xdb27('0x1b')]=function(_0x3bbf95){var _0x3e9f47=this;return new Promise(function(_0x5afff3,_0x3d2039){return db[_0xdb27('0x1c')][_0xdb27('0x1d')](_0x3bbf95[_0xdb27('0x1e')],{'raw':_0x3bbf95[_0xdb27('0x1f')]?_0x3bbf95['options'][_0xdb27('0x20')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x3bbf95[_0xdb27('0x1f')]?_0x3bbf95['options'][_0xdb27('0x21')]||null:null,'attributes':_0x3bbf95[_0xdb27('0x1f')]?_0x3bbf95[_0xdb27('0x1f')][_0xdb27('0x22')]||null:null,'limit':_0x3bbf95['options']?_0x3bbf95[_0xdb27('0x1f')][_0xdb27('0x23')]||null:null})[_0xdb27('0x10')](function(_0x4698a6){logger[_0xdb27('0x11')](_0xdb27('0x1b'),_0x3bbf95);logger[_0xdb27('0x14')](_0xdb27('0x1b'),_0x3bbf95,JSON[_0xdb27('0x16')](_0x4698a6));_0x5afff3(_0x4698a6);})[_0xdb27('0x1a')](function(_0x2d146c){logger['error'](_0xdb27('0x1b'),_0x2d146c[_0xdb27('0x19')],_0x3bbf95);_0x3d2039(_0x3e9f47[_0xdb27('0x17')](0x1f4,_0x2d146c[_0xdb27('0x19')]));});});};exports[_0xdb27('0x24')]=function(_0x9971bf){return new Promise(function(_0x2bba7c,_0x192496){return db[_0xdb27('0x1c')][_0xdb27('0x25')]({'where':_0x9971bf[_0xdb27('0x1f')]?_0x9971bf[_0xdb27('0x1f')]['where']||null:null})[_0xdb27('0x10')](function(_0x4518e9){if(_0x4518e9){return _0x4518e9[_0xdb27('0x26')](_0x9971bf['body'][_0xdb27('0x27')],_[_0xdb27('0x28')](_0x9971bf[_0xdb27('0x1e')],[_0xdb27('0x27'),'id'])||{});}})[_0xdb27('0x29')](function(_0x151714){logger[_0xdb27('0x11')]('AddTags',_0x9971bf);logger[_0xdb27('0x14')](_0xdb27('0x2a'),_0x9971bf,JSON[_0xdb27('0x16')](_0x151714));_0x2bba7c(_0x151714);})[_0xdb27('0x1a')](function(_0x1be926){logger[_0xdb27('0x17')](_0xdb27('0x2a'),_0x1be926['message'],_0x9971bf);_0x192496(_this[_0xdb27('0x17')](0x1f4,_0x1be926[_0xdb27('0x19')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x01fb=['removeListener','register','length','smsInteraction:','./smsInteraction.events','save','remove','update'];(function(_0x1fc122,_0x5e2c17){var _0xa2cb13=function(_0x263b13){while(--_0x263b13){_0x1fc122['push'](_0x1fc122['shift']());}};_0xa2cb13(++_0x5e2c17);}(_0x01fb,0xb4));var _0xb01f=function(_0x75c5e3,_0x14511c){_0x75c5e3=_0x75c5e3-0x0;var _0x2adc5c=_0x01fb[_0x75c5e3];return _0x2adc5c;};'use strict';var SmsInteractionEvents=require(_0xb01f('0x0'));var events=[_0xb01f('0x1'),_0xb01f('0x2'),_0xb01f('0x3')];function createListener(_0x8797d9,_0x41852e){return function(_0x517484){_0x41852e['emit'](_0x8797d9,_0x517484);};}function removeListener(_0x4a369b,_0xa5ade1){return function(){SmsInteractionEvents[_0xb01f('0x4')](_0x4a369b,_0xa5ade1);};}exports[_0xb01f('0x5')]=function(_0x4cad36){for(var _0x87b5f=0x0,_0x28f908=events[_0xb01f('0x6')];_0x87b5f<_0x28f908;_0x87b5f++){var _0x225415=events[_0x87b5f];var _0x45cfa0=createListener(_0xb01f('0x7')+_0x225415,_0x4cad36);SmsInteractionEvents['on'](_0x225415,_0x45cfa0);}};
\ No newline at end of file
+var _0xd1e3=['./smsInteraction.events','save','remove','update','removeListener','register','length'];(function(_0x5796ae,_0x464195){var _0xd813c2=function(_0x435a68){while(--_0x435a68){_0x5796ae['push'](_0x5796ae['shift']());}};_0xd813c2(++_0x464195);}(_0xd1e3,0xe7));var _0x3d1e=function(_0x4fecf3,_0x17fdb0){_0x4fecf3=_0x4fecf3-0x0;var _0x50161f=_0xd1e3[_0x4fecf3];return _0x50161f;};'use strict';var SmsInteractionEvents=require(_0x3d1e('0x0'));var events=[_0x3d1e('0x1'),_0x3d1e('0x2'),_0x3d1e('0x3')];function createListener(_0x1c5d24,_0x8bf88e){return function(_0x5a44f1){_0x8bf88e['emit'](_0x1c5d24,_0x5a44f1);};}function removeListener(_0x41c8ff,_0x5845c2){return function(){SmsInteractionEvents[_0x3d1e('0x4')](_0x41c8ff,_0x5845c2);};}exports[_0x3d1e('0x5')]=function(_0xdce759){for(var _0x4b9fe8=0x0,_0x452862=events[_0x3d1e('0x6')];_0x4b9fe8<_0x452862;_0x4b9fe8++){var _0x27836e=events[_0x4b9fe8];var _0x3e572c=createListener('smsInteraction:'+_0x27836e,_0xdce759);SmsInteractionEvents['on'](_0x27836e,_0x3e572c);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4d9b=['tracked','sms','smsmessage:create','create','/:id/status','status','update','put','accept','destroy','connect-timeout','Router','../../components/interaction/service','./smsMessage.controller','get','index','/describe','isAuthenticated','/:id','show','post'];(function(_0x1c7abd,_0xef1c9d){var _0x256d2f=function(_0x1dd3a0){while(--_0x1dd3a0){_0x1c7abd['push'](_0x1c7abd['shift']());}};_0x256d2f(++_0xef1c9d);}(_0x4d9b,0x15a));var _0xb4d9=function(_0x1c4ff0,_0x2c93cb){_0x1c4ff0=_0x1c4ff0-0x0;var _0x392915=_0x4d9b[_0x1c4ff0];return _0x392915;};'use strict';var multer=require('multer');var util=require('util');var path=require('path');var timeout=require(_0xb4d9('0x0'));var express=require('express');var router=express[_0xb4d9('0x1')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0xb4d9('0x2'));var config=require('../../config/environment');var controller=require(_0xb4d9('0x3'));router[_0xb4d9('0x4')]('/',auth['isAuthenticated'](),controller[_0xb4d9('0x5')]);router[_0xb4d9('0x4')](_0xb4d9('0x6'),auth[_0xb4d9('0x7')](),controller['describe']);router[_0xb4d9('0x4')](_0xb4d9('0x8'),auth[_0xb4d9('0x7')](),controller[_0xb4d9('0x9')]);router[_0xb4d9('0xa')]('/',auth[_0xb4d9('0x7')](),interaction[_0xb4d9('0xb')](_0xb4d9('0xc'),_0xb4d9('0xd')),controller[_0xb4d9('0xe')]);router['post'](_0xb4d9('0xf'),controller[_0xb4d9('0x10')]);router['put'](_0xb4d9('0x8'),auth['isAuthenticated'](),controller[_0xb4d9('0x11')]);router[_0xb4d9('0x12')]('/:id/accept',auth[_0xb4d9('0x7')](),controller[_0xb4d9('0x13')]);router[_0xb4d9('0x12')]('/:id/reject',auth[_0xb4d9('0x7')](),controller['reject']);router['delete'](_0xb4d9('0x8'),auth[_0xb4d9('0x7')](),controller[_0xb4d9('0x14')]);module['exports']=router;
\ No newline at end of file
+var _0x991f=['../../config/environment','./smsMessage.controller','get','isAuthenticated','/describe','describe','/:id','show','sms','smsmessage:create','create','/:id/status','put','update','/:id/reject','reject','delete','exports','multer','util','path','connect-timeout','fs-extra','../../components/auth/service','../../components/interaction/service'];(function(_0x594867,_0x2ee5d3){var _0x9ac5b1=function(_0x4609ec){while(--_0x4609ec){_0x594867['push'](_0x594867['shift']());}};_0x9ac5b1(++_0x2ee5d3);}(_0x991f,0x10c));var _0xf991=function(_0x3d7847,_0x4eeb60){_0x3d7847=_0x3d7847-0x0;var _0x1fe107=_0x991f[_0x3d7847];return _0x1fe107;};'use strict';var multer=require(_0xf991('0x0'));var util=require(_0xf991('0x1'));var path=require(_0xf991('0x2'));var timeout=require(_0xf991('0x3'));var express=require('express');var router=express['Router']();var fs_extra=require(_0xf991('0x4'));var auth=require(_0xf991('0x5'));var interaction=require(_0xf991('0x6'));var config=require(_0xf991('0x7'));var controller=require(_0xf991('0x8'));router[_0xf991('0x9')]('/',auth[_0xf991('0xa')](),controller['index']);router[_0xf991('0x9')](_0xf991('0xb'),auth[_0xf991('0xa')](),controller[_0xf991('0xc')]);router['get'](_0xf991('0xd'),auth[_0xf991('0xa')](),controller[_0xf991('0xe')]);router['post']('/',auth[_0xf991('0xa')](),interaction['tracked'](_0xf991('0xf'),_0xf991('0x10')),controller[_0xf991('0x11')]);router['post'](_0xf991('0x12'),controller['status']);router[_0xf991('0x13')](_0xf991('0xd'),auth[_0xf991('0xa')](),controller[_0xf991('0x14')]);router[_0xf991('0x13')]('/:id/accept',auth[_0xf991('0xa')](),controller['accept']);router[_0xf991('0x13')](_0xf991('0x15'),auth[_0xf991('0xa')](),controller[_0xf991('0x16')]);router[_0xf991('0x17')](_0xf991('0xd'),auth[_0xf991('0xa')](),controller['destroy']);module[_0xf991('0x18')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x92df=['out','STRING','DATE','sequelize','exports','TEXT','medium','BOOLEAN'];(function(_0x3bc670,_0xb616b5){var _0x5f2eee=function(_0x1eb03b){while(--_0x1eb03b){_0x3bc670['push'](_0x3bc670['shift']());}};_0x5f2eee(++_0xb616b5);}(_0x92df,0xcb));var _0xf92d=function(_0x230785,_0xe219cd){_0x230785=_0x230785-0x0;var _0x423bc2=_0x92df[_0x230785];return _0x423bc2;};'use strict';var Sequelize=require(_0xf92d('0x0'));module[_0xf92d('0x1')]={'body':{'type':Sequelize[_0xf92d('0x2')](_0xf92d('0x3')),'allowNull':![]},'read':{'type':Sequelize[_0xf92d('0x4')],'defaultValue':![]},'direction':{'type':Sequelize['ENUM']('in','out'),'defaultValue':_0xf92d('0x5'),'allowNull':![]},'messageId':{'type':Sequelize['STRING'](0xbe)},'phone':{'type':Sequelize[_0xf92d('0x6')]},'readAt':{'type':Sequelize[_0xf92d('0x7')]},'secret':{'type':Sequelize[_0xf92d('0x4')],'defaultValue':![]},'providerName':{'type':Sequelize[_0xf92d('0x6')]},'providerResponse':{'type':Sequelize[_0xf92d('0x2')]}};
\ No newline at end of file
+var _0xab3f=['STRING','DATE','sequelize','TEXT','medium','BOOLEAN','ENUM','out'];(function(_0xf3df15,_0x38f812){var _0x126b05=function(_0x5abba3){while(--_0x5abba3){_0xf3df15['push'](_0xf3df15['shift']());}};_0x126b05(++_0x38f812);}(_0xab3f,0x72));var _0xfab3=function(_0x34ef6d,_0x2e13f8){_0x34ef6d=_0x34ef6d-0x0;var _0x2b21ff=_0xab3f[_0x34ef6d];return _0x2b21ff;};'use strict';var Sequelize=require(_0xfab3('0x0'));module['exports']={'body':{'type':Sequelize[_0xfab3('0x1')](_0xfab3('0x2')),'allowNull':![]},'read':{'type':Sequelize[_0xfab3('0x3')],'defaultValue':![]},'direction':{'type':Sequelize[_0xfab3('0x4')]('in',_0xfab3('0x5')),'defaultValue':_0xfab3('0x5'),'allowNull':![]},'messageId':{'type':Sequelize[_0xfab3('0x6')](0xbe)},'phone':{'type':Sequelize[_0xfab3('0x6')]},'readAt':{'type':Sequelize[_0xfab3('0x7')]},'secret':{'type':Sequelize[_0xfab3('0x3')],'defaultValue':![]},'providerName':{'type':Sequelize[_0xfab3('0x6')]},'providerResponse':{'type':Sequelize['TEXT']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5432=['read','format','YYYY-MM-DD\x20HH:mm:ss','UserId','agent','get','SmsInteraction','SmsInteractionId','isNil','read1stAt','interaction','[SMSMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','user','role','stringify','null','AcceptMessage','acceptMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','ContactId','sequelize','Sequelize','QueryTypes','SELECT','contact','fullname','email','internal','manual','SIP/%s','channel','EventManager','acceptmessage','sms','[SMSMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','RejectMessage','User','interface','event','rejectmessage','SmsAccount','SmsAccountId','SmsMessage,\x20%s,\x20%s,\x20%s','received\x20delivery\x20report\x20from','inspect','twilio','MessageSid','messageId','SmsAccount,\x20%s,\x20%s,\x20%s','MessageUUID','sent','delivered','Status','plivio','infobip','groupName','DELIVERED','eml-format','rimraf','zip-dir','fast-json-patch','moment','mustache','util','path','sox','ejs','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','redis','defaults','socket.io-emitter','register','jayson/promise','http','client','request','info','SmsMessage,\x20%s,\x20%s','request\x20sent','debug','error','code','message','result','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','update','then','destroy','end','stack','name','send','index','map','SmsMessage','rawAttributes','fieldName','type','query','keys','filters','model','attributes','fields','length','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','catch','show','params','intersection','create','body','find','describe','sms-interactions','accept'];(function(_0x1e381c,_0x47b5b9){var _0x9b5ea9=function(_0x6d2be5){while(--_0x6d2be5){_0x1e381c['push'](_0x1e381c['shift']());}};_0x9b5ea9(++_0x47b5b9);}(_0x5432,0xd1));var _0x2543=function(_0x3de632,_0xd12351){_0x3de632=_0x3de632-0x0;var _0x28833d=_0x5432[_0x3de632];return _0x28833d;};'use strict';var emlformat=require(_0x2543('0x0'));var rimraf=require(_0x2543('0x1'));var zipdir=require(_0x2543('0x2'));var jsonpatch=require(_0x2543('0x3'));var rp=require('request-promise');var moment=require(_0x2543('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x2543('0x5'));var util=require(_0x2543('0x6'));var path=require(_0x2543('0x7'));var sox=require(_0x2543('0x8'));var csv=require('to-csv');var ejs=require(_0x2543('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x2543('0xa'));var squel=require(_0x2543('0xb'));var crypto=require(_0x2543('0xc'));var jsforce=require(_0x2543('0xd'));var deskjs=require(_0x2543('0xe'));var toCsv=require('to-csv');var querystring=require(_0x2543('0xf'));var Papa=require(_0x2543('0x10'));var Redis=require(_0x2543('0x11'));var authService=require(_0x2543('0x12'));var qs=require(_0x2543('0x13'));var as=require(_0x2543('0x14'));var hardwareService=require(_0x2543('0x15'));var logger=require(_0x2543('0x16'))(_0x2543('0x17'));var utils=require(_0x2543('0x18'));var config=require(_0x2543('0x19'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];config[_0x2543('0x1a')]=_[_0x2543('0x1b')](config[_0x2543('0x1a')],{'host':'localhost','port':0x18eb});var socket=require(_0x2543('0x1c'))(new Redis(config['redis']));require('./smsMessage.socket')[_0x2543('0x1d')](socket);var jayson=require(_0x2543('0x1e'));var client=jayson['client'][_0x2543('0x1f')]({'port':0x232c});var client9002=jayson[_0x2543('0x20')][_0x2543('0x1f')]({'port':0x232a});function respondWithRpcPromise(_0x2eb5fa,_0x5c3710,_0x3d9825,_0x2a1032){return new BPromise(function(_0x46b2c7,_0x585b00){var _0x285ff8=_0x2a1032||client;return _0x285ff8[_0x2543('0x21')](_0x2eb5fa,_0x3d9825)['then'](function(_0x53e31a){logger[_0x2543('0x22')](_0x2543('0x23'),_0x5c3710,_0x2543('0x24'));logger[_0x2543('0x25')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0x5c3710,_0x2543('0x24'),JSON['stringify'](_0x53e31a));if(_0x53e31a[_0x2543('0x26')]){if(_0x53e31a[_0x2543('0x26')][_0x2543('0x27')]===0x1f4){logger[_0x2543('0x26')](_0x2543('0x23'),_0x5c3710,_0x53e31a['error'][_0x2543('0x28')]);return _0x585b00(_0x53e31a[_0x2543('0x26')][_0x2543('0x28')]);}logger[_0x2543('0x26')](_0x2543('0x23'),_0x5c3710,_0x53e31a['error'][_0x2543('0x28')]);return _0x46b2c7(_0x53e31a['error'][_0x2543('0x28')]);}else{logger[_0x2543('0x22')](_0x2543('0x23'),_0x5c3710,_0x2543('0x24'));_0x46b2c7(_0x53e31a[_0x2543('0x29')][_0x2543('0x28')]);}})['catch'](function(_0x17934e){logger['error'](_0x2543('0x23'),_0x5c3710,_0x17934e);_0x585b00(_0x17934e);});});}function respondWithStatusCode(_0x63951f,_0x8672d0){_0x8672d0=_0x8672d0||0xcc;return function(_0x495e58){if(_0x495e58){return _0x63951f[_0x2543('0x2a')](_0x8672d0);}return _0x63951f[_0x2543('0x2b')](_0x8672d0)['end']();};}function respondWithResult(_0x160405,_0x2b5b29){_0x2b5b29=_0x2b5b29||0xc8;return function(_0x4daede){if(_0x4daede){return _0x160405[_0x2543('0x2b')](_0x2b5b29)[_0x2543('0x2c')](_0x4daede);}};}function respondWithFilteredResult(_0x55470d,_0x25cd59){return function(_0x1554b9){if(_0x1554b9){var _0x3f10c1=typeof _0x25cd59[_0x2543('0x2d')]===_0x2543('0x2e')&&typeof _0x25cd59[_0x2543('0x2f')]===_0x2543('0x2e');var _0x2130a4=_0x1554b9[_0x2543('0x30')];var _0x4a288e=_0x3f10c1?0x0:_0x25cd59[_0x2543('0x2d')];var _0x37092c=_0x3f10c1?_0x1554b9['count']:_0x25cd59[_0x2543('0x2d')]+_0x25cd59[_0x2543('0x2f')];var _0x33f5ae;if(_0x37092c>=_0x2130a4){_0x37092c=_0x2130a4;_0x33f5ae=0xc8;}else{_0x33f5ae=0xce;}_0x55470d['status'](_0x33f5ae);return _0x55470d[_0x2543('0x31')](_0x2543('0x32'),_0x4a288e+'-'+_0x37092c+'/'+_0x2130a4)[_0x2543('0x2c')](_0x1554b9);}return null;};}function patchUpdates(_0x568064){return function(_0x28bc41){try{jsonpatch[_0x2543('0x33')](_0x28bc41,_0x568064,!![]);}catch(_0x5d4aa1){return BPromise[_0x2543('0x34')](_0x5d4aa1);}return _0x28bc41['save']();};}function saveUpdates(_0x4bebb4,_0x1704db){return function(_0x39de50){if(_0x39de50){return _0x39de50[_0x2543('0x35')](_0x4bebb4)[_0x2543('0x36')](function(_0x22f2ea){return _0x22f2ea;});}return null;};}function removeEntity(_0x55f0ce,_0x426e2a){return function(_0x5c418e){if(_0x5c418e){return _0x5c418e[_0x2543('0x37')]()['then'](function(){_0x55f0ce[_0x2543('0x2b')](0xcc)[_0x2543('0x38')]();});}};}function handleEntityNotFound(_0x53539e,_0x4f770c){return function(_0x4170de){if(!_0x4170de){_0x53539e[_0x2543('0x2a')](0x194);}return _0x4170de;};}function handleError(_0x1df59f,_0x4aa891){_0x4aa891=_0x4aa891||0x1f4;return function(_0x1ce52c){logger[_0x2543('0x26')](_0x1ce52c[_0x2543('0x39')]);if(_0x1ce52c[_0x2543('0x3a')]){delete _0x1ce52c['name'];}_0x1df59f[_0x2543('0x2b')](_0x4aa891)[_0x2543('0x3b')](_0x1ce52c);};}exports[_0x2543('0x3c')]=function(_0x1768b8,_0x741770){var _0xdb6df0={},_0x5f50d4={},_0x6c1856={'count':0x0,'rows':[]};var _0x511adc=_[_0x2543('0x3d')](db[_0x2543('0x3e')][_0x2543('0x3f')],function(_0x52d45f){return{'name':_0x52d45f[_0x2543('0x40')],'type':_0x52d45f[_0x2543('0x41')]['key']};});_0x5f50d4['model']=_[_0x2543('0x3d')](_0x511adc,_0x2543('0x3a'));_0x5f50d4[_0x2543('0x42')]=_[_0x2543('0x43')](_0x1768b8['query']);_0x5f50d4[_0x2543('0x44')]=_['intersection'](_0x5f50d4[_0x2543('0x45')],_0x5f50d4[_0x2543('0x42')]);_0xdb6df0[_0x2543('0x46')]=_['intersection'](_0x5f50d4[_0x2543('0x45')],qs[_0x2543('0x47')](_0x1768b8[_0x2543('0x42')][_0x2543('0x47')]));_0xdb6df0[_0x2543('0x46')]=_0xdb6df0[_0x2543('0x46')][_0x2543('0x48')]?_0xdb6df0[_0x2543('0x46')]:_0x5f50d4[_0x2543('0x45')];if(!_0x1768b8[_0x2543('0x42')]['hasOwnProperty'](_0x2543('0x49'))){_0xdb6df0[_0x2543('0x2f')]=qs[_0x2543('0x2f')](_0x1768b8[_0x2543('0x42')][_0x2543('0x2f')]);_0xdb6df0[_0x2543('0x2d')]=qs[_0x2543('0x2d')](_0x1768b8[_0x2543('0x42')]['offset']);}_0xdb6df0[_0x2543('0x4a')]=qs[_0x2543('0x4b')](_0x1768b8['query'][_0x2543('0x4b')]);_0xdb6df0[_0x2543('0x4c')]=qs[_0x2543('0x44')](_[_0x2543('0x4d')](_0x1768b8['query'],_0x5f50d4[_0x2543('0x44')]),_0x511adc);if(_0x1768b8['query'][_0x2543('0x4e')]){_0xdb6df0[_0x2543('0x4c')]=_[_0x2543('0x4f')](_0xdb6df0[_0x2543('0x4c')],{'$or':_[_0x2543('0x3d')](_0x511adc,function(_0x59f428){if(_0x59f428[_0x2543('0x41')]!==_0x2543('0x50')){var _0x47e138={};_0x47e138[_0x59f428[_0x2543('0x3a')]]={'$like':'%'+_0x1768b8[_0x2543('0x42')][_0x2543('0x4e')]+'%'};return _0x47e138;}})});}_0xdb6df0=_[_0x2543('0x4f')]({},_0xdb6df0,_0x1768b8[_0x2543('0x51')]);var _0x47fed4={'where':_0xdb6df0[_0x2543('0x4c')]};return db['SmsMessage'][_0x2543('0x30')](_0x47fed4)[_0x2543('0x36')](function(_0x15f4fd){_0x6c1856['count']=_0x15f4fd;if(_0x1768b8['query'][_0x2543('0x52')]){_0xdb6df0[_0x2543('0x53')]=[{'all':!![]}];}return db[_0x2543('0x3e')][_0x2543('0x54')](_0xdb6df0);})[_0x2543('0x36')](function(_0x55a48d){_0x6c1856['rows']=_0x55a48d;return _0x6c1856;})[_0x2543('0x36')](respondWithFilteredResult(_0x741770,_0xdb6df0))[_0x2543('0x55')](handleError(_0x741770,null));};exports[_0x2543('0x56')]=function(_0x17c6f9,_0x55c7f0){var _0x4b67b6={'raw':!![],'where':{'id':_0x17c6f9[_0x2543('0x57')]['id']}},_0x4a2259={};_0x4a2259['model']=_[_0x2543('0x43')](db[_0x2543('0x3e')][_0x2543('0x3f')]);_0x4a2259[_0x2543('0x42')]=_[_0x2543('0x43')](_0x17c6f9[_0x2543('0x42')]);_0x4a2259[_0x2543('0x44')]=_[_0x2543('0x58')](_0x4a2259[_0x2543('0x45')],_0x4a2259[_0x2543('0x42')]);_0x4b67b6[_0x2543('0x46')]=_[_0x2543('0x58')](_0x4a2259[_0x2543('0x45')],qs[_0x2543('0x47')](_0x17c6f9[_0x2543('0x42')][_0x2543('0x47')]));_0x4b67b6[_0x2543('0x46')]=_0x4b67b6['attributes'][_0x2543('0x48')]?_0x4b67b6[_0x2543('0x46')]:_0x4a2259[_0x2543('0x45')];if(_0x17c6f9[_0x2543('0x42')][_0x2543('0x52')]){_0x4b67b6['include']=[{'all':!![]}];}_0x4b67b6=_[_0x2543('0x4f')]({},_0x4b67b6,_0x17c6f9[_0x2543('0x51')]);return db['SmsMessage']['find'](_0x4b67b6)[_0x2543('0x36')](handleEntityNotFound(_0x55c7f0,null))['then'](respondWithResult(_0x55c7f0,null))[_0x2543('0x55')](handleError(_0x55c7f0,null));};exports[_0x2543('0x59')]=function(_0x1791b3,_0x32cb50){return db[_0x2543('0x3e')][_0x2543('0x59')](_0x1791b3[_0x2543('0x5a')],{})[_0x2543('0x36')](respondWithResult(_0x32cb50,0xc9))[_0x2543('0x55')](handleError(_0x32cb50,null));};exports['update']=function(_0x457543,_0x3f0422){if(_0x457543[_0x2543('0x5a')]['id']){delete _0x457543[_0x2543('0x5a')]['id'];}return db[_0x2543('0x3e')][_0x2543('0x5b')]({'where':{'id':_0x457543[_0x2543('0x57')]['id']}})[_0x2543('0x36')](handleEntityNotFound(_0x3f0422,null))[_0x2543('0x36')](saveUpdates(_0x457543[_0x2543('0x5a')],null))[_0x2543('0x36')](respondWithResult(_0x3f0422,null))['catch'](handleError(_0x3f0422,null));};exports[_0x2543('0x37')]=function(_0x43d6b3,_0x132ed2){return db[_0x2543('0x3e')][_0x2543('0x5b')]({'where':{'id':_0x43d6b3[_0x2543('0x57')]['id']}})['then'](handleEntityNotFound(_0x132ed2,null))[_0x2543('0x36')](removeEntity(_0x132ed2,null))[_0x2543('0x55')](handleError(_0x132ed2,null));};exports[_0x2543('0x5c')]=function(_0x4b3516,_0x537e93){return db[_0x2543('0x3e')][_0x2543('0x5c')]()[_0x2543('0x36')](respondWithResult(_0x537e93,null))[_0x2543('0x55')](handleError(_0x537e93,null));};var interaction_log=require(_0x2543('0x16'))(_0x2543('0x5d'));exports[_0x2543('0x5e')]=function(_0x2e0916,_0x4f03b3,_0x34e0eb){var _0x22e82a={'agent':{},'channel':'sms'};if(_0x2e0916['body']['id']){delete _0x2e0916[_0x2543('0x5a')]['id'];}_0x2e0916[_0x2543('0x5a')][_0x2543('0x5f')]=!![];_0x2e0916[_0x2543('0x5a')]['readAt']=moment()[_0x2543('0x60')](_0x2543('0x61'));_0x2e0916['body'][_0x2543('0x62')]=_0x2e0916[_0x2543('0x5a')]['UserId']||_0x2e0916['user']['id'];_0x22e82a[_0x2543('0x63')]['id']=_0x2e0916[_0x2543('0x5a')]['UserId'];return db[_0x2543('0x3e')][_0x2543('0x5b')]({'where':{'id':_0x2e0916[_0x2543('0x57')]['id'],'UserId':null}})['then'](handleEntityNotFound(_0x4f03b3,null))[_0x2543('0x36')](saveUpdates(_0x2e0916['body'],null))[_0x2543('0x36')](function(_0x10fcab){if(_0x10fcab){_0x22e82a[_0x2543('0x28')]=_0x10fcab[_0x2543('0x64')]({'plain':!![]});return db[_0x2543('0x65')][_0x2543('0x5b')]({'where':{'id':_0x10fcab[_0x2543('0x66')]}});}return null;})['then'](handleEntityNotFound(_0x4f03b3,null))[_0x2543('0x36')](function(_0x4e0fd4){if(_0x4e0fd4){return _0x4e0fd4[_0x2543('0x35')]({'UserId':_0x2e0916['body'][_0x2543('0x62')],'read1stAt':_[_0x2543('0x67')](_0x4e0fd4[_0x2543('0x68')])?moment()['format']('YYYY-MM-DD\x20HH:mm:ss'):undefined});}return null;})['then'](function(_0x578ac9){if(_0x578ac9){_0x22e82a[_0x2543('0x69')]=_0x578ac9[_0x2543('0x64')]({'plain':!![]});interaction_log[_0x2543('0x22')](_0x2543('0x6a'),_0x2e0916[_0x2543('0x6b')]['id'],_0x2e0916[_0x2543('0x6b')]['name'],_0x2e0916['user'][_0x2543('0x6c')],_0x22e82a[_0x2543('0x69')]['id'],_0x2e0916[_0x2543('0x5a')]?JSON[_0x2543('0x6d')](_0x2e0916['body']):_0x2543('0x6e'));return respondWithRpcPromise(_0x2543('0x6f'),_0x2543('0x70'),_0x22e82a);}return null;})['then'](function(_0xb937d2){var _0x1d2faf=_0x2543('0x71')+_0xb937d2[_0x2543('0x28')][_0x2543('0x72')];return db[_0x2543('0x73')][_0x2543('0x42')](_0x1d2faf,{'type':db[_0x2543('0x74')][_0x2543('0x75')][_0x2543('0x76')],'raw':!![]})[_0x2543('0x36')](function(_0x25cb43){return _0x25cb43;});})[_0x2543('0x36')](function(_0x5067e3){if(_0x5067e3){_0x22e82a['message'][_0x2543('0x77')]=_0x5067e3[0x0];if(!_0x2e0916[_0x2543('0x5a')]['UserId'])return;return db['User'][_0x2543('0x5b')]({'where':{'id':_0x2e0916['body'][_0x2543('0x62')],'role':_0x2543('0x63')},'attributes':['id',_0x2543('0x3a'),_0x2543('0x78'),_0x2543('0x79'),_0x2543('0x7a')],'raw':!![]});}return null;})[_0x2543('0x36')](function(_0x36ff22){if(!_0x36ff22)return null;_0x22e82a[_0x2543('0x28')][_0x2543('0x63')]=_0x36ff22;return _0x22e82a;})['then'](function(_0x1c48bf){if(_0x1c48bf){if(_0x2e0916['body'][_0x2543('0x7b')]){_0x22e82a[_0x2543('0x28')]['interface']=util['format'](_0x2543('0x7c'),_0x2e0916['user'][_0x2543('0x3a')]);_0x22e82a[_0x2543('0x28')][_0x2543('0x7d')]=_0x22e82a[_0x2543('0x7d')];_0x22e82a[_0x2543('0x28')]['event']=_0x2543('0x5e');return respondWithRpcPromise(_0x2543('0x7e'),_0x2543('0x7e'),{'event':_0x2543('0x7f'),'message':_0x22e82a[_0x2543('0x28')]},client9002)[_0x2543('0x36')](function(){return _0x22e82a;});}return _0x22e82a;}return null;})['then'](respondWithResult(_0x4f03b3,null))[_0x2543('0x55')](handleError(_0x4f03b3,null));};var interaction_log=require('../../config/logger')(_0x2543('0x5d'));exports[_0x2543('0x34')]=function(_0x683864,_0x2ceff7,_0x213b87){var _0x50c91f={'agent':{},'channel':_0x2543('0x80')};if(_0x683864['body']['id']){delete _0x683864[_0x2543('0x5a')]['id'];}_0x683864[_0x2543('0x5a')][_0x2543('0x62')]=_0x683864[_0x2543('0x5a')][_0x2543('0x62')]||_0x683864[_0x2543('0x6b')]['id'];_0x50c91f[_0x2543('0x63')]['id']=_0x683864[_0x2543('0x5a')][_0x2543('0x62')];return db[_0x2543('0x3e')][_0x2543('0x5b')]({'where':{'id':_0x683864[_0x2543('0x57')]['id'],'UserId':null}})[_0x2543('0x36')](handleEntityNotFound(_0x2ceff7,null))[_0x2543('0x36')](function(_0x5836f7){if(_0x5836f7){_0x50c91f[_0x2543('0x28')]=_0x5836f7[_0x2543('0x64')]({'plain':!![]});return db['SmsInteraction']['find']({'where':{'id':_0x5836f7[_0x2543('0x66')]}});}return null;})[_0x2543('0x36')](handleEntityNotFound(_0x2ceff7,null))[_0x2543('0x36')](function(_0x2bf4a2){if(_0x2bf4a2){_0x50c91f['interaction']=_0x2bf4a2[_0x2543('0x64')]({'plain':!![]});interaction_log[_0x2543('0x22')](_0x2543('0x81'),_0x683864['user']['id'],_0x683864[_0x2543('0x6b')][_0x2543('0x3a')],_0x683864[_0x2543('0x6b')][_0x2543('0x6c')],_0x50c91f[_0x2543('0x69')]['id'],_0x683864['body']?JSON[_0x2543('0x6d')](_0x683864[_0x2543('0x5a')]):_0x2543('0x6e'));return respondWithRpcPromise(_0x2543('0x82'),'rejectMessage',_0x50c91f);}return null;})[_0x2543('0x36')](function(_0x1f0f75){var _0x2596c8=_0x2543('0x71')+_0x1f0f75[_0x2543('0x28')]['ContactId'];return db[_0x2543('0x73')]['query'](_0x2596c8,{'type':db[_0x2543('0x74')]['QueryTypes'][_0x2543('0x76')],'raw':!![]})[_0x2543('0x36')](function(_0x190e9e){return _0x190e9e;});})['then'](function(_0x430ef3){if(_0x430ef3){_0x50c91f[_0x2543('0x28')][_0x2543('0x77')]=_0x430ef3[0x0];if(!_0x683864[_0x2543('0x5a')][_0x2543('0x62')])return;return db[_0x2543('0x83')][_0x2543('0x5b')]({'where':{'id':_0x683864[_0x2543('0x5a')][_0x2543('0x62')],'role':'agent'},'attributes':['id',_0x2543('0x3a'),_0x2543('0x78'),'email',_0x2543('0x7a')],'raw':!![]});}return null;})['then'](function(_0x16dcbd){if(!_0x16dcbd)return null;_0x50c91f['message']['agent']=_0x16dcbd;return _0x50c91f;})[_0x2543('0x36')](function(_0x556cad){if(_0x556cad){_0x556cad[_0x2543('0x28')][_0x2543('0x84')]=util[_0x2543('0x60')]('SIP/%s',_0x683864[_0x2543('0x6b')]['name']);_0x556cad['message'][_0x2543('0x7d')]=_0x50c91f['channel'];_0x556cad[_0x2543('0x28')][_0x2543('0x85')]=_0x2543('0x34');respondWithRpcPromise('EventManager',_0x2543('0x7e'),{'event':_0x2543('0x86'),'message':_0x556cad[_0x2543('0x28')]},client9002);return _0x50c91f;}return null;})[_0x2543('0x36')](respondWithResult(_0x2ceff7,null))[_0x2543('0x55')](handleError(_0x2ceff7,null));};exports['status']=function(_0xee9b4a,_0x3866e0,_0x2ddcec){if(_0xee9b4a['body']['id']){delete _0xee9b4a[_0x2543('0x5a')]['id'];}var _0x23158d;return db[_0x2543('0x3e')][_0x2543('0x5b')]({'where':{'id':_0xee9b4a['params']['id']}})[_0x2543('0x36')](handleEntityNotFound(_0x3866e0,null))['then'](function(_0x219661){if(_0x219661){_0x23158d=_0x219661;return db[_0x2543('0x87')][_0x2543('0x5b')]({'where':{'id':_0x219661[_0x2543('0x88')]}});}})[_0x2543('0x36')](handleEntityNotFound(_0x3866e0,null))[_0x2543('0x36')](function(_0x17d54c){if(_0x17d54c){logger[_0x2543('0x25')](_0x2543('0x89'),_0x2543('0x2b'),_0x2543('0x8a'),_0x17d54c[_0x2543('0x41')],util[_0x2543('0x8b')](_0xee9b4a[_0x2543('0x5a')],{'showHidden':![],'depth':null}));switch(_0x17d54c[_0x2543('0x41')]){case _0x2543('0x8c'):if(_0xee9b4a['body'][_0x2543('0x8d')]&&_0xee9b4a[_0x2543('0x5a')][_0x2543('0x8d')]===_0x23158d[_0x2543('0x8e')]){return _0x23158d[_0x2543('0x35')]({'read':!![]});}else{logger[_0x2543('0x26')](_0x2543('0x8f'),_0x2543('0x2b'),_0x2543('0x8c'),util[_0x2543('0x8b')](_0xee9b4a[_0x2543('0x5a')],{'showHidden':![],'depth':null}));}break;case'plivo':if(_0xee9b4a['body'][_0x2543('0x90')]&&_0xee9b4a[_0x2543('0x5a')][_0x2543('0x90')]===_0x23158d['messageId']&&_['indexOf']([_0x2543('0x91'),_0x2543('0x92')],_0xee9b4a[_0x2543('0x5a')][_0x2543('0x93')])>=0x0){return _0x23158d['update']({'read':!![]});}else{logger['error'](_0x2543('0x8f'),_0x2543('0x2b'),_0x2543('0x94'),util['inspect'](_0xee9b4a['body'],{'showHidden':![],'depth':null}));}break;case _0x2543('0x95'):var _0x491339=_0xee9b4a[_0x2543('0x5a')]['results'][0x0];if(_0x491339['status'][_0x2543('0x96')]===_0x2543('0x97')){return _0x23158d['update']({'read':!![]});}else{logger[_0x2543('0x26')]('SmsAccount,\x20%s,\x20%s,\x20%s','status','infobip',util[_0x2543('0x8b')](_0xee9b4a[_0x2543('0x5a')],{'showHidden':![],'depth':null}));}break;}return _0x23158d;}})[_0x2543('0x36')](respondWithResult(_0x3866e0,null))[_0x2543('0x55')](handleError(_0x3866e0,null));};
\ No newline at end of file
+var _0x10ad=['SmsMessage','rawAttributes','type','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','show','params','find','create','update','body','describe','sms-interactions','sms','read','readAt','YYYY-MM-DD\x20HH:mm:ss','UserId','user','get','SmsInteraction','isNil','read1stAt','format','interaction','role','null','acceptMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','ContactId','sequelize','Sequelize','QueryTypes','SELECT','contact','agent','fullname','email','internal','manual','interface','channel','motionChannel','EventManager','acceptmessage','SmsInteractionId','RejectMessage','rejectMessage','User','SIP/%s','event','reject','rejectmessage','SmsAccount','SmsAccountId','debug','SmsMessage,\x20%s,\x20%s,\x20%s','received\x20delivery\x20report\x20from','inspect','MessageSid','messageId','plivo','MessageUUID','indexOf','sent','delivered','SmsAccount,\x20%s,\x20%s,\x20%s','plivio','infobip','results','groupName','DELIVERED','fast-json-patch','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','redis','defaults','localhost','./smsMessage.socket','register','jayson/promise','client','http','request','info','SmsMessage,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','save','then','destroy','sendStatus','stack','name','send','index','map'];(function(_0x4cf769,_0x476fd9){var _0x2232ad=function(_0x56627b){while(--_0x56627b){_0x4cf769['push'](_0x4cf769['shift']());}};_0x2232ad(++_0x476fd9);}(_0x10ad,0xf4));var _0xd10a=function(_0x1741d1,_0x564f1f){_0x1741d1=_0x1741d1-0x0;var _0x2e4acc=_0x10ad[_0x1741d1];return _0x2e4acc;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0xd10a('0x0'));var rp=require('request-promise');var moment=require(_0xd10a('0x1'));var BPromise=require(_0xd10a('0x2'));var Mustache=require(_0xd10a('0x3'));var util=require(_0xd10a('0x4'));var path=require('path');var sox=require(_0xd10a('0x5'));var csv=require(_0xd10a('0x6'));var ejs=require(_0xd10a('0x7'));var fs=require('fs');var fs_extra=require(_0xd10a('0x8'));var _=require(_0xd10a('0x9'));var squel=require(_0xd10a('0xa'));var crypto=require(_0xd10a('0xb'));var jsforce=require(_0xd10a('0xc'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0xd10a('0xd'));var Papa=require('papaparse');var Redis=require(_0xd10a('0xe'));var authService=require(_0xd10a('0xf'));var qs=require(_0xd10a('0x10'));var as=require(_0xd10a('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xd10a('0x12'))(_0xd10a('0x13'));var utils=require(_0xd10a('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0xd10a('0x15'));var db=require(_0xd10a('0x16'))['db'];config[_0xd10a('0x17')]=_[_0xd10a('0x18')](config[_0xd10a('0x17')],{'host':_0xd10a('0x19'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0xd10a('0x1a'))[_0xd10a('0x1b')](socket);var jayson=require(_0xd10a('0x1c'));var client=jayson[_0xd10a('0x1d')]['http']({'port':0x232c});var client9002=jayson['client'][_0xd10a('0x1e')]({'port':0x232a});function respondWithRpcPromise(_0x17fdd7,_0x143557,_0xdc8e2e,_0x5359c2){return new BPromise(function(_0x33bb89,_0x27cd93){var _0x1ec13f=_0x5359c2||client;return _0x1ec13f[_0xd10a('0x1f')](_0x17fdd7,_0xdc8e2e)['then'](function(_0x589fb3){logger[_0xd10a('0x20')](_0xd10a('0x21'),_0x143557,'request\x20sent');logger['debug']('SmsMessage,\x20%s,\x20%s,\x20%s',_0x143557,_0xd10a('0x22'),JSON[_0xd10a('0x23')](_0x589fb3));if(_0x589fb3['error']){if(_0x589fb3[_0xd10a('0x24')][_0xd10a('0x25')]===0x1f4){logger['error']('SmsMessage,\x20%s,\x20%s',_0x143557,_0x589fb3[_0xd10a('0x24')]['message']);return _0x27cd93(_0x589fb3[_0xd10a('0x24')][_0xd10a('0x26')]);}logger[_0xd10a('0x24')](_0xd10a('0x21'),_0x143557,_0x589fb3[_0xd10a('0x24')][_0xd10a('0x26')]);return _0x33bb89(_0x589fb3['error'][_0xd10a('0x26')]);}else{logger[_0xd10a('0x20')](_0xd10a('0x21'),_0x143557,_0xd10a('0x22'));_0x33bb89(_0x589fb3[_0xd10a('0x27')][_0xd10a('0x26')]);}})[_0xd10a('0x28')](function(_0x3715fe){logger['error']('SmsMessage,\x20%s,\x20%s',_0x143557,_0x3715fe);_0x27cd93(_0x3715fe);});});}function respondWithStatusCode(_0x58ff57,_0x2a87ff){_0x2a87ff=_0x2a87ff||0xcc;return function(_0xaf25b5){if(_0xaf25b5){return _0x58ff57['sendStatus'](_0x2a87ff);}return _0x58ff57[_0xd10a('0x29')](_0x2a87ff)[_0xd10a('0x2a')]();};}function respondWithResult(_0x341dfd,_0x152bd5){_0x152bd5=_0x152bd5||0xc8;return function(_0x64ace3){if(_0x64ace3){return _0x341dfd['status'](_0x152bd5)[_0xd10a('0x2b')](_0x64ace3);}};}function respondWithFilteredResult(_0x198715,_0x11de73){return function(_0x3c5f47){if(_0x3c5f47){var _0x41e582=typeof _0x11de73[_0xd10a('0x2c')]===_0xd10a('0x2d')&&typeof _0x11de73[_0xd10a('0x2e')]===_0xd10a('0x2d');var _0x1cc483=_0x3c5f47[_0xd10a('0x2f')];var _0x45e9fd=_0x41e582?0x0:_0x11de73[_0xd10a('0x2c')];var _0xd7741=_0x41e582?_0x3c5f47['count']:_0x11de73['offset']+_0x11de73[_0xd10a('0x2e')];var _0x25fd7b;if(_0xd7741>=_0x1cc483){_0xd7741=_0x1cc483;_0x25fd7b=0xc8;}else{_0x25fd7b=0xce;}_0x198715[_0xd10a('0x29')](_0x25fd7b);return _0x198715[_0xd10a('0x30')](_0xd10a('0x31'),_0x45e9fd+'-'+_0xd7741+'/'+_0x1cc483)[_0xd10a('0x2b')](_0x3c5f47);}return null;};}function patchUpdates(_0x4fc3b7){return function(_0x5e23de){try{jsonpatch[_0xd10a('0x32')](_0x5e23de,_0x4fc3b7,!![]);}catch(_0x52bfee){return BPromise['reject'](_0x52bfee);}return _0x5e23de[_0xd10a('0x33')]();};}function saveUpdates(_0x353a94,_0x342ea8){return function(_0x13cc57){if(_0x13cc57){return _0x13cc57['update'](_0x353a94)[_0xd10a('0x34')](function(_0x4f5f86){return _0x4f5f86;});}return null;};}function removeEntity(_0x3d311e,_0x52afb8){return function(_0x50056b){if(_0x50056b){return _0x50056b[_0xd10a('0x35')]()[_0xd10a('0x34')](function(){_0x3d311e[_0xd10a('0x29')](0xcc)['end']();});}};}function handleEntityNotFound(_0x5092c9,_0x4f42a5){return function(_0x21e083){if(!_0x21e083){_0x5092c9[_0xd10a('0x36')](0x194);}return _0x21e083;};}function handleError(_0x341d07,_0x40c8cd){_0x40c8cd=_0x40c8cd||0x1f4;return function(_0x2e54e1){logger[_0xd10a('0x24')](_0x2e54e1[_0xd10a('0x37')]);if(_0x2e54e1['name']){delete _0x2e54e1[_0xd10a('0x38')];}_0x341d07[_0xd10a('0x29')](_0x40c8cd)[_0xd10a('0x39')](_0x2e54e1);};}exports[_0xd10a('0x3a')]=function(_0x4997b0,_0x3ed3a5){var _0x338f2b={},_0x11c830={},_0x537b4e={'count':0x0,'rows':[]};var _0x47dbe2=_[_0xd10a('0x3b')](db[_0xd10a('0x3c')][_0xd10a('0x3d')],function(_0x1100f0){return{'name':_0x1100f0['fieldName'],'type':_0x1100f0[_0xd10a('0x3e')]['key']};});_0x11c830[_0xd10a('0x3f')]=_[_0xd10a('0x3b')](_0x47dbe2,_0xd10a('0x38'));_0x11c830[_0xd10a('0x40')]=_[_0xd10a('0x41')](_0x4997b0[_0xd10a('0x40')]);_0x11c830[_0xd10a('0x42')]=_['intersection'](_0x11c830[_0xd10a('0x3f')],_0x11c830['query']);_0x338f2b['attributes']=_[_0xd10a('0x43')](_0x11c830[_0xd10a('0x3f')],qs[_0xd10a('0x44')](_0x4997b0[_0xd10a('0x40')]['fields']));_0x338f2b[_0xd10a('0x45')]=_0x338f2b[_0xd10a('0x45')][_0xd10a('0x46')]?_0x338f2b[_0xd10a('0x45')]:_0x11c830[_0xd10a('0x3f')];if(!_0x4997b0[_0xd10a('0x40')][_0xd10a('0x47')](_0xd10a('0x48'))){_0x338f2b[_0xd10a('0x2e')]=qs[_0xd10a('0x2e')](_0x4997b0[_0xd10a('0x40')]['limit']);_0x338f2b[_0xd10a('0x2c')]=qs[_0xd10a('0x2c')](_0x4997b0[_0xd10a('0x40')][_0xd10a('0x2c')]);}_0x338f2b[_0xd10a('0x49')]=qs[_0xd10a('0x4a')](_0x4997b0[_0xd10a('0x40')]['sort']);_0x338f2b[_0xd10a('0x4b')]=qs[_0xd10a('0x42')](_[_0xd10a('0x4c')](_0x4997b0[_0xd10a('0x40')],_0x11c830[_0xd10a('0x42')]),_0x47dbe2);if(_0x4997b0['query'][_0xd10a('0x4d')]){_0x338f2b[_0xd10a('0x4b')]=_[_0xd10a('0x4e')](_0x338f2b[_0xd10a('0x4b')],{'$or':_[_0xd10a('0x3b')](_0x47dbe2,function(_0x31f4bd){if(_0x31f4bd[_0xd10a('0x3e')]!==_0xd10a('0x4f')){var _0x38624e={};_0x38624e[_0x31f4bd[_0xd10a('0x38')]]={'$like':'%'+_0x4997b0[_0xd10a('0x40')][_0xd10a('0x4d')]+'%'};return _0x38624e;}})});}_0x338f2b=_[_0xd10a('0x4e')]({},_0x338f2b,_0x4997b0[_0xd10a('0x50')]);var _0x2f6037={'where':_0x338f2b['where']};return db[_0xd10a('0x3c')][_0xd10a('0x2f')](_0x2f6037)[_0xd10a('0x34')](function(_0x29de10){_0x537b4e[_0xd10a('0x2f')]=_0x29de10;if(_0x4997b0['query'][_0xd10a('0x51')]){_0x338f2b[_0xd10a('0x52')]=[{'all':!![]}];}return db[_0xd10a('0x3c')][_0xd10a('0x53')](_0x338f2b);})[_0xd10a('0x34')](function(_0x146338){_0x537b4e[_0xd10a('0x54')]=_0x146338;return _0x537b4e;})[_0xd10a('0x34')](respondWithFilteredResult(_0x3ed3a5,_0x338f2b))[_0xd10a('0x28')](handleError(_0x3ed3a5,null));};exports[_0xd10a('0x55')]=function(_0x4021ba,_0xa519b9){var _0x3449ef={'raw':!![],'where':{'id':_0x4021ba[_0xd10a('0x56')]['id']}},_0x346be7={};_0x346be7[_0xd10a('0x3f')]=_[_0xd10a('0x41')](db[_0xd10a('0x3c')]['rawAttributes']);_0x346be7['query']=_['keys'](_0x4021ba[_0xd10a('0x40')]);_0x346be7[_0xd10a('0x42')]=_['intersection'](_0x346be7[_0xd10a('0x3f')],_0x346be7[_0xd10a('0x40')]);_0x3449ef[_0xd10a('0x45')]=_[_0xd10a('0x43')](_0x346be7['model'],qs[_0xd10a('0x44')](_0x4021ba['query'][_0xd10a('0x44')]));_0x3449ef[_0xd10a('0x45')]=_0x3449ef[_0xd10a('0x45')]['length']?_0x3449ef[_0xd10a('0x45')]:_0x346be7[_0xd10a('0x3f')];if(_0x4021ba[_0xd10a('0x40')]['includeAll']){_0x3449ef[_0xd10a('0x52')]=[{'all':!![]}];}_0x3449ef=_[_0xd10a('0x4e')]({},_0x3449ef,_0x4021ba[_0xd10a('0x50')]);return db[_0xd10a('0x3c')][_0xd10a('0x57')](_0x3449ef)[_0xd10a('0x34')](handleEntityNotFound(_0xa519b9,null))[_0xd10a('0x34')](respondWithResult(_0xa519b9,null))[_0xd10a('0x28')](handleError(_0xa519b9,null));};exports[_0xd10a('0x58')]=function(_0x5bb9ed,_0x2eda23){return db[_0xd10a('0x3c')][_0xd10a('0x58')](_0x5bb9ed['body'],{})[_0xd10a('0x34')](respondWithResult(_0x2eda23,0xc9))[_0xd10a('0x28')](handleError(_0x2eda23,null));};exports[_0xd10a('0x59')]=function(_0x3ed687,_0x141b1d){if(_0x3ed687[_0xd10a('0x5a')]['id']){delete _0x3ed687[_0xd10a('0x5a')]['id'];}return db[_0xd10a('0x3c')][_0xd10a('0x57')]({'where':{'id':_0x3ed687[_0xd10a('0x56')]['id']}})[_0xd10a('0x34')](handleEntityNotFound(_0x141b1d,null))[_0xd10a('0x34')](saveUpdates(_0x3ed687['body'],null))[_0xd10a('0x34')](respondWithResult(_0x141b1d,null))[_0xd10a('0x28')](handleError(_0x141b1d,null));};exports[_0xd10a('0x35')]=function(_0x711b9,_0x486f7f){return db[_0xd10a('0x3c')][_0xd10a('0x57')]({'where':{'id':_0x711b9['params']['id']}})[_0xd10a('0x34')](handleEntityNotFound(_0x486f7f,null))['then'](removeEntity(_0x486f7f,null))[_0xd10a('0x28')](handleError(_0x486f7f,null));};exports[_0xd10a('0x5b')]=function(_0x22554b,_0x2bb3a4){return db[_0xd10a('0x3c')]['describe']()[_0xd10a('0x34')](respondWithResult(_0x2bb3a4,null))['catch'](handleError(_0x2bb3a4,null));};var interaction_log=require('../../config/logger')(_0xd10a('0x5c'));exports['accept']=function(_0x3d9a02,_0x2a906c,_0x28f673){var _0x55b51a={'agent':{},'channel':_0xd10a('0x5d')};if(_0x3d9a02[_0xd10a('0x5a')]['id']){delete _0x3d9a02['body']['id'];}_0x3d9a02[_0xd10a('0x5a')][_0xd10a('0x5e')]=!![];_0x3d9a02[_0xd10a('0x5a')][_0xd10a('0x5f')]=moment()['format'](_0xd10a('0x60'));_0x3d9a02[_0xd10a('0x5a')][_0xd10a('0x61')]=_0x3d9a02[_0xd10a('0x5a')][_0xd10a('0x61')]||_0x3d9a02[_0xd10a('0x62')]['id'];_0x55b51a['agent']['id']=_0x3d9a02['body'][_0xd10a('0x61')];return db[_0xd10a('0x3c')][_0xd10a('0x57')]({'where':{'id':_0x3d9a02[_0xd10a('0x56')]['id'],'UserId':null}})['then'](handleEntityNotFound(_0x2a906c,null))[_0xd10a('0x34')](saveUpdates(_0x3d9a02[_0xd10a('0x5a')],null))[_0xd10a('0x34')](function(_0x37e5ec){if(_0x37e5ec){_0x55b51a['message']=_0x37e5ec[_0xd10a('0x63')]({'plain':!![]});return db[_0xd10a('0x64')]['find']({'where':{'id':_0x37e5ec['SmsInteractionId']}});}return null;})[_0xd10a('0x34')](handleEntityNotFound(_0x2a906c,null))[_0xd10a('0x34')](function(_0x46e4be){if(_0x46e4be){return _0x46e4be[_0xd10a('0x59')]({'UserId':_0x3d9a02[_0xd10a('0x5a')][_0xd10a('0x61')],'read1stAt':_[_0xd10a('0x65')](_0x46e4be[_0xd10a('0x66')])?moment()[_0xd10a('0x67')]('YYYY-MM-DD\x20HH:mm:ss'):undefined});}return null;})[_0xd10a('0x34')](function(_0x4add52){if(_0x4add52){_0x55b51a[_0xd10a('0x68')]=_0x4add52['get']({'plain':!![]});interaction_log[_0xd10a('0x20')]('[SMSMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x3d9a02[_0xd10a('0x62')]['id'],_0x3d9a02[_0xd10a('0x62')][_0xd10a('0x38')],_0x3d9a02[_0xd10a('0x62')][_0xd10a('0x69')],_0x55b51a['interaction']['id'],_0x3d9a02[_0xd10a('0x5a')]?JSON['stringify'](_0x3d9a02[_0xd10a('0x5a')]):_0xd10a('0x6a'));return respondWithRpcPromise('AcceptMessage',_0xd10a('0x6b'),_0x55b51a);}return null;})['then'](function(_0x129007){var _0x4b21a9=_0xd10a('0x6c')+_0x129007[_0xd10a('0x26')][_0xd10a('0x6d')];return db[_0xd10a('0x6e')][_0xd10a('0x40')](_0x4b21a9,{'type':db[_0xd10a('0x6f')][_0xd10a('0x70')][_0xd10a('0x71')],'raw':!![]})[_0xd10a('0x34')](function(_0x3c6390){return _0x3c6390;});})[_0xd10a('0x34')](function(_0x561c2f){if(_0x561c2f){_0x55b51a[_0xd10a('0x26')][_0xd10a('0x72')]=_0x561c2f[0x0];if(!_0x3d9a02[_0xd10a('0x5a')]['UserId'])return;return db['User']['find']({'where':{'id':_0x3d9a02['body'][_0xd10a('0x61')],'role':_0xd10a('0x73')},'attributes':['id','name',_0xd10a('0x74'),_0xd10a('0x75'),_0xd10a('0x76')],'raw':!![]});}return null;})[_0xd10a('0x34')](function(_0x57dd62){if(!_0x57dd62)return null;_0x55b51a[_0xd10a('0x26')]['agent']=_0x57dd62;return _0x55b51a;})[_0xd10a('0x34')](function(_0x183d4e){if(_0x183d4e){if(_0x3d9a02[_0xd10a('0x5a')][_0xd10a('0x77')]){_0x55b51a[_0xd10a('0x26')][_0xd10a('0x78')]=util['format']('SIP/%s',_0x3d9a02[_0xd10a('0x62')][_0xd10a('0x38')]);_0x55b51a[_0xd10a('0x26')][_0xd10a('0x79')]=_0x55b51a['channel'];_0x55b51a[_0xd10a('0x26')][_0xd10a('0x7a')]=_0x55b51a[_0xd10a('0x79')];_0x55b51a[_0xd10a('0x26')]['event']='accept';return respondWithRpcPromise(_0xd10a('0x7b'),'EventManager',{'event':_0xd10a('0x7c'),'message':_0x55b51a[_0xd10a('0x26')]},client9002)[_0xd10a('0x34')](function(){return _0x55b51a;});}return _0x55b51a;}return null;})[_0xd10a('0x34')](respondWithResult(_0x2a906c,null))[_0xd10a('0x28')](handleError(_0x2a906c,null));};var interaction_log=require(_0xd10a('0x12'))('sms-interactions');exports['reject']=function(_0x2fefd3,_0x453a4b,_0x3c102e){var _0x1d8a8b={'agent':{},'channel':'sms'};if(_0x2fefd3[_0xd10a('0x5a')]['id']){delete _0x2fefd3[_0xd10a('0x5a')]['id'];}_0x2fefd3[_0xd10a('0x5a')][_0xd10a('0x61')]=_0x2fefd3[_0xd10a('0x5a')][_0xd10a('0x61')]||_0x2fefd3[_0xd10a('0x62')]['id'];_0x1d8a8b[_0xd10a('0x73')]['id']=_0x2fefd3[_0xd10a('0x5a')]['UserId'];return db[_0xd10a('0x3c')][_0xd10a('0x57')]({'where':{'id':_0x2fefd3[_0xd10a('0x56')]['id'],'UserId':null}})[_0xd10a('0x34')](handleEntityNotFound(_0x453a4b,null))[_0xd10a('0x34')](function(_0x5b42e7){if(_0x5b42e7){_0x1d8a8b['message']=_0x5b42e7[_0xd10a('0x63')]({'plain':!![]});return db['SmsInteraction'][_0xd10a('0x57')]({'where':{'id':_0x5b42e7[_0xd10a('0x7d')]}});}return null;})['then'](handleEntityNotFound(_0x453a4b,null))[_0xd10a('0x34')](function(_0x5ce6ce){if(_0x5ce6ce){_0x1d8a8b[_0xd10a('0x68')]=_0x5ce6ce[_0xd10a('0x63')]({'plain':!![]});interaction_log[_0xd10a('0x20')]('[SMSMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x2fefd3[_0xd10a('0x62')]['id'],_0x2fefd3[_0xd10a('0x62')][_0xd10a('0x38')],_0x2fefd3[_0xd10a('0x62')][_0xd10a('0x69')],_0x1d8a8b[_0xd10a('0x68')]['id'],_0x2fefd3[_0xd10a('0x5a')]?JSON[_0xd10a('0x23')](_0x2fefd3[_0xd10a('0x5a')]):_0xd10a('0x6a'));return respondWithRpcPromise(_0xd10a('0x7e'),_0xd10a('0x7f'),_0x1d8a8b);}return null;})[_0xd10a('0x34')](function(_0x578f8c){var _0x5e4f6a=_0xd10a('0x6c')+_0x578f8c[_0xd10a('0x26')]['ContactId'];return db[_0xd10a('0x6e')]['query'](_0x5e4f6a,{'type':db['Sequelize']['QueryTypes'][_0xd10a('0x71')],'raw':!![]})['then'](function(_0x9d888d){return _0x9d888d;});})[_0xd10a('0x34')](function(_0xf16674){if(_0xf16674){_0x1d8a8b[_0xd10a('0x26')][_0xd10a('0x72')]=_0xf16674[0x0];if(!_0x2fefd3[_0xd10a('0x5a')][_0xd10a('0x61')])return;return db[_0xd10a('0x80')]['find']({'where':{'id':_0x2fefd3[_0xd10a('0x5a')][_0xd10a('0x61')],'role':'agent'},'attributes':['id',_0xd10a('0x38'),_0xd10a('0x74'),_0xd10a('0x75'),'internal'],'raw':!![]});}return null;})[_0xd10a('0x34')](function(_0x3b13c6){if(!_0x3b13c6)return null;_0x1d8a8b[_0xd10a('0x26')][_0xd10a('0x73')]=_0x3b13c6;return _0x1d8a8b;})[_0xd10a('0x34')](function(_0x2799a2){if(_0x2799a2){_0x2799a2[_0xd10a('0x26')][_0xd10a('0x78')]=util['format'](_0xd10a('0x81'),_0x2fefd3['user'][_0xd10a('0x38')]);_0x2799a2[_0xd10a('0x26')][_0xd10a('0x79')]=_0x1d8a8b[_0xd10a('0x79')];_0x2799a2[_0xd10a('0x26')]['motionChannel']=_0x1d8a8b['channel'];_0x2799a2[_0xd10a('0x26')][_0xd10a('0x82')]=_0xd10a('0x83');respondWithRpcPromise('EventManager','EventManager',{'event':_0xd10a('0x84'),'message':_0x2799a2['message']},client9002);return _0x1d8a8b;}return null;})[_0xd10a('0x34')](respondWithResult(_0x453a4b,null))['catch'](handleError(_0x453a4b,null));};exports[_0xd10a('0x29')]=function(_0x2cde8b,_0x9f7edb,_0x365cf1){if(_0x2cde8b[_0xd10a('0x5a')]['id']){delete _0x2cde8b[_0xd10a('0x5a')]['id'];}var _0x438d10;return db[_0xd10a('0x3c')][_0xd10a('0x57')]({'where':{'id':_0x2cde8b[_0xd10a('0x56')]['id']}})[_0xd10a('0x34')](handleEntityNotFound(_0x9f7edb,null))[_0xd10a('0x34')](function(_0xefe931){if(_0xefe931){_0x438d10=_0xefe931;return db[_0xd10a('0x85')][_0xd10a('0x57')]({'where':{'id':_0xefe931[_0xd10a('0x86')]}});}})[_0xd10a('0x34')](handleEntityNotFound(_0x9f7edb,null))[_0xd10a('0x34')](function(_0x45f6ea){if(_0x45f6ea){logger[_0xd10a('0x87')](_0xd10a('0x88'),_0xd10a('0x29'),_0xd10a('0x89'),_0x45f6ea['type'],util[_0xd10a('0x8a')](_0x2cde8b[_0xd10a('0x5a')],{'showHidden':![],'depth':null}));switch(_0x45f6ea['type']){case'twilio':if(_0x2cde8b['body'][_0xd10a('0x8b')]&&_0x2cde8b[_0xd10a('0x5a')][_0xd10a('0x8b')]===_0x438d10[_0xd10a('0x8c')]){return _0x438d10[_0xd10a('0x59')]({'read':!![]});}else{logger[_0xd10a('0x24')]('SmsAccount,\x20%s,\x20%s,\x20%s',_0xd10a('0x29'),'twilio',util['inspect'](_0x2cde8b[_0xd10a('0x5a')],{'showHidden':![],'depth':null}));}break;case _0xd10a('0x8d'):if(_0x2cde8b['body']['MessageUUID']&&_0x2cde8b[_0xd10a('0x5a')][_0xd10a('0x8e')]===_0x438d10[_0xd10a('0x8c')]&&_[_0xd10a('0x8f')]([_0xd10a('0x90'),_0xd10a('0x91')],_0x2cde8b[_0xd10a('0x5a')]['Status'])>=0x0){return _0x438d10[_0xd10a('0x59')]({'read':!![]});}else{logger[_0xd10a('0x24')](_0xd10a('0x92'),_0xd10a('0x29'),_0xd10a('0x93'),util['inspect'](_0x2cde8b[_0xd10a('0x5a')],{'showHidden':![],'depth':null}));}break;case _0xd10a('0x94'):var _0x1979b1=_0x2cde8b['body'][_0xd10a('0x95')][0x0];if(_0x1979b1['status'][_0xd10a('0x96')]===_0xd10a('0x97')){return _0x438d10[_0xd10a('0x59')]({'read':!![]});}else{logger[_0xd10a('0x24')](_0xd10a('0x92'),_0xd10a('0x29'),_0xd10a('0x94'),util[_0xd10a('0x8a')](_0x2cde8b['body'],{'showHidden':![],'depth':null}));}break;}return _0x438d10;}})[_0xd10a('0x34')](respondWithResult(_0x9f7edb,null))[_0xd10a('0x28')](handleError(_0x9f7edb,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1805=['emit','hook','exports','events','../../mysqldb','SmsMessage','setMaxListeners','save','update','remove'];(function(_0x1d3ebe,_0x20264a){var _0x37c3f0=function(_0x12024b){while(--_0x12024b){_0x1d3ebe['push'](_0x1d3ebe['shift']());}};_0x37c3f0(++_0x20264a);}(_0x1805,0x7b));var _0x5180=function(_0x972269,_0x256b0b){_0x972269=_0x972269-0x0;var _0x5c50df=_0x1805[_0x972269];return _0x5c50df;};'use strict';var EventEmitter=require(_0x5180('0x0'));var SmsMessage=require(_0x5180('0x1'))['db'][_0x5180('0x2')];var SmsMessageEvents=new EventEmitter();SmsMessageEvents[_0x5180('0x3')](0x0);var events={'afterCreate':_0x5180('0x4'),'afterUpdate':_0x5180('0x5'),'afterDestroy':_0x5180('0x6')};function emitEvent(_0x10c9b0){return function(_0x3d4f4e,_0x111de7,_0x351b3c){SmsMessageEvents[_0x5180('0x7')](_0x10c9b0+':'+_0x3d4f4e['id'],_0x3d4f4e);SmsMessageEvents['emit'](_0x10c9b0,_0x3d4f4e);_0x351b3c(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];SmsMessage[_0x5180('0x8')](e,emitEvent(event));}}module[_0x5180('0x9')]=SmsMessageEvents;
\ No newline at end of file
+var _0x5ae0=['events','../../mysqldb','SmsMessage','save','remove','emit','hasOwnProperty','hook','exports'];(function(_0x3f25db,_0x1d3686){var _0x54f29d=function(_0x2963bb){while(--_0x2963bb){_0x3f25db['push'](_0x3f25db['shift']());}};_0x54f29d(++_0x1d3686);}(_0x5ae0,0x1e6));var _0x05ae=function(_0x413cf1,_0x310f0e){_0x413cf1=_0x413cf1-0x0;var _0x515c23=_0x5ae0[_0x413cf1];return _0x515c23;};'use strict';var EventEmitter=require(_0x05ae('0x0'));var SmsMessage=require(_0x05ae('0x1'))['db'][_0x05ae('0x2')];var SmsMessageEvents=new EventEmitter();SmsMessageEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x05ae('0x3'),'afterUpdate':'update','afterDestroy':_0x05ae('0x4')};function emitEvent(_0x7dc420){return function(_0x271cab,_0xe0fdbd,_0x28b621){SmsMessageEvents[_0x05ae('0x5')](_0x7dc420+':'+_0x271cab['id'],_0x271cab);SmsMessageEvents[_0x05ae('0x5')](_0x7dc420,_0x271cab);_0x28b621(null);};}for(var e in events){if(events[_0x05ae('0x6')](e)){var event=events[e];SmsMessage[_0x05ae('0x7')](e,emitEvent(event));}}module[_0x05ae('0x8')]=SmsMessageEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfa7c=['secret','isNil','UserId','SmsInteraction','findOne','SmsInteractionId','direction','catch','error','SmsAccount','SmsAccountId','then','type','twilio','accountSid','authToken','phone','remote','/api/sms/messages/','/status?token=','token','sid','update','SmsMessage,\x20%s,\x20%s,\x20%s','inspect','afterCreate','Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken','skebby','https://api.skebby.it/API/v1.0/REST/','smsMethod','sender','login?username=','username','&password=','password','GET','sms','POST','user_key','total_sent','read','Missing\x20parameters:\x20username,\x20password','connectel','senderString','https://smsapi.connectel.se/api/v2/send/','requestid','Missing\x20parameters:\x20authToken','xCALLY\x20Motion','format','%s:%s','https://rest.clicksend.com/v3/sms/send','Basic\x20%s','toString','http_code','data','queued_count','head','messages','deliveryReport','clickSend','plivo','authId','https://api.plivo.com/v1/Account/%s/Message/','base64','message_uuid','Missing\x20parameters:\x20authId,\x20authToken','infobip','baseUrl','/auth/1/session','/sms/2/text/advanced','crypto','apiKey','login','text','timestamp','keys','sort','length','createHash','hex','signature=','/external/get/send.php?','csc','Missing\x20parameters:\x20apiKey','clickatell','https://platform.clickatell.com/messages','uuid','bandwidth','https://messaging.bandwidth.com/api/v2/users/','accountId','/messages','applicationId','intelepeer','https://api.intelepeer.com/_rest/v4/app/sms/send','Bearer\x20','message','application/json','refid','status','Token\x20not\x20received','finally','utf8mb4','utf8mb4_unicode_ci','lodash','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','exports','define','sms_messages','messageId','fti_sms_messages','body','FULLTEXT','models','toLowerCase','out'];(function(_0x4565bf,_0x5ad9d6){var _0x5610ba=function(_0x170988){while(--_0x170988){_0x4565bf['push'](_0x4565bf['shift']());}};_0x5610ba(++_0x5ad9d6);}(_0xfa7c,0x15b));var _0xcfa7=function(_0x27fbfc,_0x59246d){_0x27fbfc=_0x27fbfc-0x0;var _0x27f833=_0xfa7c[_0x27fbfc];return _0x27f833;};'use strict';var _=require(_0xcfa7('0x0'));var util=require('util');var logger=require(_0xcfa7('0x1'))(_0xcfa7('0x2'));var moment=require(_0xcfa7('0x3'));var BPromise=require(_0xcfa7('0x4'));var rp=require(_0xcfa7('0x5'));var fs=require('fs');var path=require(_0xcfa7('0x6'));var rimraf=require(_0xcfa7('0x7'));var config=require(_0xcfa7('0x8'));var attributes=require('./smsMessage.attributes');module[_0xcfa7('0x9')]=function(_0x3bf816,_0x9d96a2){return _0x3bf816[_0xcfa7('0xa')]('SmsMessage',attributes,{'tableName':_0xcfa7('0xb'),'paranoid':![],'indexes':[{'name':_0xcfa7('0xc'),'fields':[_0xcfa7('0xc')]},{'name':_0xcfa7('0xd'),'fields':[_0xcfa7('0xe')],'type':_0xcfa7('0xf')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x4ae349,_0x1c862b,_0x39ce6a){var _0x43700c=_0x3bf816[_0xcfa7('0x10')];var _0x240b3e=_0x4ae349['get']({'plain':!![]});if(_0x240b3e['direction'][_0xcfa7('0x11')]()==='in'||_0x240b3e['direction'][_0xcfa7('0x11')]()===_0xcfa7('0x12')&&!_0x240b3e[_0xcfa7('0x13')]&&!_[_0xcfa7('0x14')](_0x240b3e[_0xcfa7('0x15')])){_0x43700c[_0xcfa7('0x16')][_0xcfa7('0x17')]({'where':{'id':_0x240b3e[_0xcfa7('0x18')]}})['then'](function(_0x42500c){if(_0x42500c){_0x42500c['update']({'lastMsgAt':_0x240b3e['createdAt'],'lastMsgDirection':_0x240b3e[_0xcfa7('0x19')][_0xcfa7('0x11')]()});}})[_0xcfa7('0x1a')](function(_0x349679){console[_0xcfa7('0x1b')](_0x349679);});}if(_0x240b3e['direction']===_0xcfa7('0x12')&&!_0x240b3e[_0xcfa7('0x13')]){var _0x1236d5;_0x43700c[_0xcfa7('0x1c')]['find']({'where':{'id':_0x240b3e[_0xcfa7('0x1d')]},'raw':!![]})[_0xcfa7('0x1e')](function(_0x558a21){_0x1236d5=_0x558a21;if(_0x1236d5&&_0x1236d5['type']){switch(_0x1236d5[_0xcfa7('0x1f')]){case _0xcfa7('0x20'):var _0x1ce356=require(_0xcfa7('0x20'));if(_0x1236d5[_0xcfa7('0x21')]&&_0x1236d5[_0xcfa7('0x22')]&&_0x1236d5[_0xcfa7('0x23')]){var _0x602f15=new _0x1ce356(_0x1236d5['accountSid'],_0x1236d5[_0xcfa7('0x22')]);_0x602f15['messages']['create']({'body':_0x240b3e['body'],'to':_0x240b3e[_0xcfa7('0x23')],'from':_0x1236d5['phone'],'statusCallback':_0x1236d5[_0xcfa7('0x24')]+_0xcfa7('0x25')+_0x240b3e['id']+_0xcfa7('0x26')+_0x1236d5[_0xcfa7('0x27')]})[_0xcfa7('0x1e')](function(_0x2d00e1){if(_0x2d00e1[_0xcfa7('0x28')]){return _0x4ae349[_0xcfa7('0x29')]({'messageId':_0x2d00e1['sid']});}})[_0xcfa7('0x1a')](function(_0x222ce2){logger[_0xcfa7('0x1b')](_0xcfa7('0x2a'),'afterCreate',_0xcfa7('0x20'),util[_0xcfa7('0x2b')](_0x222ce2,{'showHidden':![],'depth':null}));});}else{logger[_0xcfa7('0x1b')](_0xcfa7('0x2a'),_0xcfa7('0x2c'),'twilio',_0xcfa7('0x2d'));}break;case _0xcfa7('0x2e'):var _0x347d17=_0xcfa7('0x2f');if(_0x1236d5['username']&&_0x1236d5['password']){var _0x569f4e={'recipient':[_0x240b3e[_0xcfa7('0x23')]],'message':_0x240b3e[_0xcfa7('0xe')],'message_type':_0x1236d5[_0xcfa7('0x30')]};if(_0x1236d5['smsMethod']&&_0x1236d5['smsMethod']!=='SI'){_0x569f4e[_0xcfa7('0x31')]=_0x1236d5['phone'];}var _0x22799c={'url':_0x347d17+_0xcfa7('0x32')+_0x1236d5[_0xcfa7('0x33')]+_0xcfa7('0x34')+_0x1236d5[_0xcfa7('0x35')],'method':_0xcfa7('0x36')};rp(_0x22799c)[_0xcfa7('0x1e')](function(_0xdea3ba){var _0x34bb00=_0xdea3ba['split'](';');var _0x4b3f8a={'user_key':_0x34bb00[0x0],'session_key':_0x34bb00[0x1]};_0x22799c={'url':_0x347d17+_0xcfa7('0x37'),'method':_0xcfa7('0x38'),'headers':{'user_key':_0x4b3f8a[_0xcfa7('0x39')],'Session_key':_0x4b3f8a['session_key']},'json':!![],'body':_0x569f4e};return rp(_0x22799c);})['then'](function(_0x204c27){if(_0x204c27[_0xcfa7('0x3a')]>=0x1){var _0x3d12fe={'messageId':_0x204c27['internal_order_id']};if(_0x1236d5[_0xcfa7('0x30')]!=='GP'||!_0x1236d5['deliveryReport']){_0x3d12fe[_0xcfa7('0x3b')]=!![];}return _0x4ae349['update'](_0x3d12fe);}else{return logger[_0xcfa7('0x1b')](_0xcfa7('0x2a'),_0xcfa7('0x2c'),_0xcfa7('0x2e'),util[_0xcfa7('0x2b')](_0x204c27,{'showHidden':![],'depth':null}));}})[_0xcfa7('0x1a')](function(_0x1156fb){return logger['error'](_0xcfa7('0x2a'),_0xcfa7('0x2c'),_0xcfa7('0x2e'),util[_0xcfa7('0x2b')](_0x1156fb,{'showHidden':![],'depth':null}));});}else{logger[_0xcfa7('0x1b')](_0xcfa7('0x2a'),_0xcfa7('0x2c'),_0xcfa7('0x2e'),_0xcfa7('0x3c'));}break;case _0xcfa7('0x3d'):if(_0x1236d5['authToken']){var _0x51678c={'recipient':_0x240b3e[_0xcfa7('0x23')],'message':_0x240b3e['body'],'sender':_0x1236d5[_0xcfa7('0x3e')]||_0x1236d5[_0xcfa7('0x23')],'authorization':_0x1236d5[_0xcfa7('0x22')]};var _0x1c862b={'method':_0xcfa7('0x38'),'uri':_0xcfa7('0x3f'),'body':_0x51678c,'json':!![]};rp(_0x1c862b)['then'](function(_0x118e38){var _0x41b014={'messageId':_0x118e38[_0xcfa7('0x40')]};if(!_0x1236d5['deliveryReport']){_0x41b014[_0xcfa7('0x3b')]=!![];}return _0x4ae349[_0xcfa7('0x29')](_0x41b014);})[_0xcfa7('0x1a')](function(_0x1c8fc6){logger[_0xcfa7('0x1b')](_0xcfa7('0x2a'),'afterCreate',_0xcfa7('0x3d'),util['inspect'](_0x1c8fc6,{'showHidden':![],'depth':null}));});}else{logger[_0xcfa7('0x1b')](_0xcfa7('0x2a'),'afterCreate',_0xcfa7('0x3d'),_0xcfa7('0x41'));}break;case'clicksend':if(_0x1236d5[_0xcfa7('0x33')]&&_0x1236d5['password']){var _0x51678c={'messages':[{'source':_0xcfa7('0x42'),'to':_0x240b3e['phone'],'body':_0x240b3e[_0xcfa7('0xe')],'from':_0x1236d5[_0xcfa7('0x3e')]||_0x1236d5[_0xcfa7('0x23')]}]};var _0x2333e9=util[_0xcfa7('0x43')](_0xcfa7('0x44'),_0x1236d5[_0xcfa7('0x33')],_0x1236d5[_0xcfa7('0x35')]);var _0x1c862b={'method':_0xcfa7('0x38'),'uri':_0xcfa7('0x45'),'body':_0x51678c,'headers':{'Authorization':util[_0xcfa7('0x43')](_0xcfa7('0x46'),new Buffer(_0x2333e9)[_0xcfa7('0x47')]('base64'))},'json':!![]};rp(_0x1c862b)[_0xcfa7('0x1e')](function(_0x4b9358){if(_0x4b9358[_0xcfa7('0x48')]>=0xc8&&_0x4b9358[_0xcfa7('0x48')]<=0xce){if(_0x4b9358[_0xcfa7('0x49')]&&_0x4b9358['data'][_0xcfa7('0x4a')]>0x0){var _0x3b1659=_[_0xcfa7('0x4b')](_0x4b9358[_0xcfa7('0x49')][_0xcfa7('0x4c')]);var _0x433fde={'messageId':_0x3b1659['message_id']};if(!_0x1236d5[_0xcfa7('0x4d')]){_0x433fde[_0xcfa7('0x3b')]=!![];}return _0x4ae349[_0xcfa7('0x29')](_0x433fde);}else{logger[_0xcfa7('0x1b')](_0xcfa7('0x2a'),_0xcfa7('0x2c'),_0xcfa7('0x4e'),util[_0xcfa7('0x2b')](_0x4b9358,{'showHidden':![],'depth':null}));}}else{logger[_0xcfa7('0x1b')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0xcfa7('0x2c'),_0xcfa7('0x4e'),util[_0xcfa7('0x2b')](_0x4b9358,{'showHidden':![],'depth':null}));}})[_0xcfa7('0x1a')](function(_0x63b433){logger[_0xcfa7('0x1b')](_0xcfa7('0x2a'),'afterCreate','clickSend',util[_0xcfa7('0x2b')](_0x63b433,{'showHidden':![],'depth':null}));});}else{logger[_0xcfa7('0x1b')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0xcfa7('0x2c'),_0xcfa7('0x4e'),'Missing\x20parameters:\x20username,\x20password');}break;case _0xcfa7('0x4f'):if(_0x1236d5[_0xcfa7('0x50')]&&_0x1236d5[_0xcfa7('0x22')]){var _0x51678c={'dst':_0x240b3e[_0xcfa7('0x23')],'text':_0x240b3e[_0xcfa7('0xe')],'src':_0x1236d5['senderString']||_0x1236d5[_0xcfa7('0x23')],'url':_0x1236d5[_0xcfa7('0x24')]+_0xcfa7('0x25')+_0x240b3e['id']+_0xcfa7('0x26')+_0x1236d5['token']};var _0x2333e9=util[_0xcfa7('0x43')]('%s:%s',_0x1236d5[_0xcfa7('0x50')],_0x1236d5[_0xcfa7('0x22')]);var _0x1c862b={'method':_0xcfa7('0x38'),'uri':util[_0xcfa7('0x43')](_0xcfa7('0x51'),_0x1236d5['authId']),'body':_0x51678c,'headers':{'Authorization':util[_0xcfa7('0x43')](_0xcfa7('0x46'),new Buffer(_0x2333e9)[_0xcfa7('0x47')](_0xcfa7('0x52')))},'json':!![]};rp(_0x1c862b)['then'](function(_0x3766e7){var _0x56a3f1={'messageId':_0x3766e7[_0xcfa7('0x53')][0x0]};return _0x4ae349[_0xcfa7('0x29')](_0x56a3f1);})[_0xcfa7('0x1a')](function(_0x44f69d){logger[_0xcfa7('0x1b')](_0xcfa7('0x2a'),_0xcfa7('0x2c'),_0xcfa7('0x4f'),util[_0xcfa7('0x2b')](_0x44f69d,{'showHidden':![],'depth':null}));});}else{logger[_0xcfa7('0x1b')]('SmsMessage,\x20%s,\x20%s,\x20%s','afterCreate','plivo',_0xcfa7('0x54'));}break;case _0xcfa7('0x55'):if(_0x1236d5[_0xcfa7('0x33')]&&_0x1236d5[_0xcfa7('0x35')]){if(_0x1236d5[_0xcfa7('0x56')]){var _0x378cd1={'method':_0xcfa7('0x38'),'uri':_0x1236d5['baseUrl']+_0xcfa7('0x57'),'body':{'username':_0x1236d5[_0xcfa7('0x33')],'password':_0x1236d5[_0xcfa7('0x35')]},'json':!![]};return rp(_0x378cd1)[_0xcfa7('0x1e')](function(_0x5ebe68){var _0x558514={'method':_0xcfa7('0x38'),'uri':_0x1236d5[_0xcfa7('0x56')]+_0xcfa7('0x58'),'body':{'messages':[{'from':_0x1236d5[_0xcfa7('0x23')],'destinations':[{'to':_0x240b3e['phone']}],'text':_0x240b3e[_0xcfa7('0xe')],'notifyUrl':_0x1236d5[_0xcfa7('0x24')]+_0xcfa7('0x25')+_0x240b3e['id']+_0xcfa7('0x26')+_0x1236d5[_0xcfa7('0x27')],'notifyContentType':'application/json','callbackData':_0x1236d5[_0xcfa7('0x23')]+';'+_0x240b3e[_0xcfa7('0xe')]}]},'headers':{'Authorization':'IBSSO\x20'+_0x5ebe68[_0xcfa7('0x27')]},'json':!![]};return rp(_0x558514)[_0xcfa7('0x1e')](function(_0x25564a){if(_0x25564a['messages']){var _0x2f94f6={'messageId':_0x25564a['messages'][0x0]['messageId']};if(!_0x1236d5['deliveryReport']){_0x2f94f6[_0xcfa7('0x3b')]=!![];}return _0x4ae349['update'](_0x2f94f6);}else{return logger[_0xcfa7('0x1b')](_0xcfa7('0x2a'),'afterCreate','infobip',util[_0xcfa7('0x2b')](_0x25564a,{'showHidden':![],'depth':null}));}});})[_0xcfa7('0x1a')](function(_0x11ccfc){return logger['error'](_0xcfa7('0x2a'),_0xcfa7('0x2c'),_0xcfa7('0x55'),util[_0xcfa7('0x2b')](_0x11ccfc,{'showHidden':![],'depth':null}));});}else{logger[_0xcfa7('0x1b')](_0xcfa7('0x2a'),_0xcfa7('0x2c'),'infobip','Missing\x20parameters:\x20base_url');}}else{logger[_0xcfa7('0x1b')](_0xcfa7('0x2a'),'afterCreate','infobip',_0xcfa7('0x3c'));}break;case'csc':var _0x259476=require(_0xcfa7('0x59'));if(_0x1236d5[_0xcfa7('0x5a')]){var _0x566733={};_0x566733[_0xcfa7('0x5b')]=_0x1236d5['username'];_0x566733[_0xcfa7('0x23')]=_0x240b3e['phone'];_0x566733[_0xcfa7('0x31')]=_0x1236d5[_0xcfa7('0x23')];_0x566733[_0xcfa7('0x5c')]=_0x240b3e[_0xcfa7('0xe')];_0x566733[_0xcfa7('0x5d')]=+new Date();var _0x52df0a='';var _0x65cf01='';var _0x1657c9=Object[_0xcfa7('0x5e')](_0x566733);_0x1657c9[_0xcfa7('0x5f')]();for(var _0x366483=0x0;_0x366483<_0x1657c9[_0xcfa7('0x60')];_0x366483++){if(_0x52df0a!=''){_0x52df0a+='&';}_0x52df0a+=_0x1657c9[_0x366483]+'='+encodeURIComponent(_0x566733[_0x1657c9[_0x366483]]);_0x65cf01+=_0x566733[_0x1657c9[_0x366483]];}_0x65cf01+=_0x1236d5[_0xcfa7('0x5a')];_0x65cf01=_0x259476[_0xcfa7('0x61')]('md5')[_0xcfa7('0x29')](_0x65cf01)['digest'](_0xcfa7('0x62'));if(_0x52df0a!==''){_0x52df0a+='&';}_0x52df0a+=_0xcfa7('0x63')+_0x65cf01;var _0x22799c={'method':_0xcfa7('0x36'),'uri':_0x1236d5[_0xcfa7('0x56')]+_0xcfa7('0x64')+_0x52df0a,'json':!![]};return rp(_0x22799c)[_0xcfa7('0x1e')](function(_0x47f1f8){var _0x40f218=Object[_0xcfa7('0x5e')](_0x47f1f8);if(_0x47f1f8[_0x40f218[0x0]][_0xcfa7('0x1b')]&&parseInt(_0x47f1f8[_0x40f218[0x0]][_0xcfa7('0x1b')])===0x0){var _0xccb69e={'messageId':_0x47f1f8[_0x40f218[0x0]]['id_sms']};if(!_0x1236d5[_0xcfa7('0x4d')]){_0xccb69e[_0xcfa7('0x3b')]=!![];}return _0x4ae349['update'](_0xccb69e);}else{return logger[_0xcfa7('0x1b')](_0xcfa7('0x2a'),'afterCreate',_0xcfa7('0x65'),util['inspect'](_0x47f1f8['error'],{'showHidden':![],'depth':null}));}})[_0xcfa7('0x1a')](function(_0x3fb1f9){return logger[_0xcfa7('0x1b')](_0xcfa7('0x2a'),_0xcfa7('0x2c'),_0xcfa7('0x65'),util[_0xcfa7('0x2b')](_0x3fb1f9,{'showHidden':![],'depth':null}));});}else{logger[_0xcfa7('0x1b')]('SmsMessage,\x20%s,\x20%s,\x20%s','afterCreate',_0xcfa7('0x65'),_0xcfa7('0x66'));}break;case _0xcfa7('0x67'):if(_0x1236d5[_0xcfa7('0x5a')]){var _0x47f8e0={'method':_0xcfa7('0x38'),'uri':_0xcfa7('0x68'),'headers':{'Authorization':_0x1236d5[_0xcfa7('0x5a')]},'body':{'content':_0x240b3e[_0xcfa7('0xe')],'to':[_0x240b3e[_0xcfa7('0x23')]],'from':_0x1236d5[_0xcfa7('0x23')],'binary':![],'clientMessageId':_0xcfa7('0x69'),'charset':'UTF-8'},'json':!![]};rp(_0x47f8e0)['then'](function(_0x5f368d){if(!_0x5f368d[_0xcfa7('0x1b')]){var _0x1f06f3={'messageId':_0x5f368d[_0xcfa7('0x4c')][0x0]['apiMessageId']};if(!_0x1236d5[_0xcfa7('0x4d')]){_0x1f06f3[_0xcfa7('0x3b')]=!![];}return _0x4ae349[_0xcfa7('0x29')](_0x1f06f3);}else{return logger[_0xcfa7('0x1b')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0xcfa7('0x2c'),'clickatell',util[_0xcfa7('0x2b')](_0x5f368d[_0xcfa7('0x1b')],{'showHidden':![],'depth':null}));}})[_0xcfa7('0x1a')](function(_0x121a1b){return logger[_0xcfa7('0x1b')](_0xcfa7('0x2a'),_0xcfa7('0x2c'),_0xcfa7('0x67'),util[_0xcfa7('0x2b')](_0x121a1b,{'showHidden':![],'depth':null}));});}else{logger[_0xcfa7('0x1b')](_0xcfa7('0x2a'),_0xcfa7('0x2c'),_0xcfa7('0x67'),_0xcfa7('0x66'));}break;case _0xcfa7('0x6a'):if(_0x1236d5['username']&&_0x1236d5[_0xcfa7('0x35')]){var _0x2333e9=util[_0xcfa7('0x43')](_0xcfa7('0x44'),_0x1236d5[_0xcfa7('0x33')],_0x1236d5[_0xcfa7('0x35')]);var _0x1c862b={'method':_0xcfa7('0x38'),'uri':_0xcfa7('0x6b')+_0x1236d5[_0xcfa7('0x6c')]+_0xcfa7('0x6d'),'body':{'to':[_0x240b3e[_0xcfa7('0x23')]],'text':_0x240b3e[_0xcfa7('0xe')],'from':_0x1236d5[_0xcfa7('0x23')],'applicationId':_0x1236d5[_0xcfa7('0x6e')]},'headers':{'Authorization':util['format']('Basic\x20%s',new Buffer(_0x2333e9)['toString'](_0xcfa7('0x52')))},'json':!![]};rp(_0x1c862b)['then'](function(_0x5ae924){if(_0x5ae924['id']){var _0x4d01f9={'messageId':_0x5ae924['id']};return _0x4ae349[_0xcfa7('0x29')](_0x4d01f9);}else{logger[_0xcfa7('0x1b')](_0xcfa7('0x2a'),_0xcfa7('0x2c'),_0xcfa7('0x6a'),util[_0xcfa7('0x2b')](_0x5ae924,{'showHidden':![],'depth':null}));}})['catch'](function(_0x34dcd7){logger['error'](_0xcfa7('0x2a'),_0xcfa7('0x2c'),'bandwidth',util[_0xcfa7('0x2b')](_0x34dcd7,{'showHidden':![],'depth':null}));});}else{logger[_0xcfa7('0x1b')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0xcfa7('0x2c'),_0xcfa7('0x6a'),_0xcfa7('0x3c'));}break;case _0xcfa7('0x6f'):if(_0x1236d5['apiKey']){var _0x5ecbfa={};var _0x22799c={'method':_0xcfa7('0x38'),'uri':_0xcfa7('0x70'),'headers':{'Authorization':_0xcfa7('0x71')+_0x1236d5[_0xcfa7('0x5a')],'Content-Type':'application/json'},'body':{'from':_0x1236d5[_0xcfa7('0x23')],'to':_0x240b3e[_0xcfa7('0x23')],'text':_0x240b3e[_0xcfa7('0xe')]},'json':!![]};return rp(_0x22799c)[_0xcfa7('0x1e')](function(_0x269a6f){if(_0x269a6f['code']==0xca){_0x5ecbfa[_0xcfa7('0x72')]=_0x269a6f;var _0x25f3e9={'method':_0xcfa7('0x38'),'uri':'https://api.intelepeer.com/_rest/v4/app/sms/mdr','headers':{'Authorization':_0xcfa7('0x71')+_0x1236d5[_0xcfa7('0x5a')],'Content-Type':_0xcfa7('0x73')},'body':{'refid':_0x5ecbfa[_0xcfa7('0x72')][_0xcfa7('0x74')]},'json':!![]};return rp(_0x25f3e9)[_0xcfa7('0x1e')](function(_0x369df9){_0x5ecbfa[_0xcfa7('0x75')]=_0x369df9;var _0x548693={'messageId':_0x5ecbfa['message'][_0xcfa7('0x74')],'read':!![]};return _0x4ae349[_0xcfa7('0x29')](_0x548693);});}else{return logger['error'](_0xcfa7('0x2a'),_0xcfa7('0x2c'),_0xcfa7('0x6f'),util[_0xcfa7('0x2b')](_0x269a6f,{'showHidden':![],'depth':null}));}})[_0xcfa7('0x1a')](function(_0x5df130){return logger[_0xcfa7('0x1b')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0xcfa7('0x2c'),_0xcfa7('0x6f'),util['inspect'](_0x5df130,{'showHidden':![],'depth':null}));});}else{return logger[_0xcfa7('0x1b')](_0xcfa7('0x2a'),_0xcfa7('0x2c'),_0xcfa7('0x6f'),_0xcfa7('0x76'));}break;}}})[_0xcfa7('0x77')](function(){_0x39ce6a();});}else{_0x39ce6a();}}},'charset':_0xcfa7('0x78'),'collate':_0xcfa7('0x79')});};
\ No newline at end of file
+var _0xc997=['head','clickSend','authId','https://api.plivo.com/v1/Account/%s/Message/','toString','message_uuid','plivo','Missing\x20parameters:\x20authId,\x20authToken','infobip','baseUrl','/sms/2/text/advanced','remote','application/json','IBSSO\x20','messages','Missing\x20parameters:\x20base_url','csc','crypto','apiKey','login','text','timestamp','keys','sort','length','createHash','md5','digest','hex','signature=','/external/get/send.php?','clickatell','https://platform.clickatell.com/messages','uuid','UTF-8','apiMessageId','Missing\x20parameters:\x20apiKey','accountId','/messages','applicationId','bandwidth','https://api.intelepeer.com/_rest/v4/app/sms/send','message','https://api.intelepeer.com/_rest/v4/app/sms/mdr','Bearer\x20','status','intelepeer','Token\x20not\x20received','utf8mb4','utf8mb4_unicode_ci','util','../../config/logger','api','moment','bluebird','path','rimraf','../../config/environment','./smsMessage.attributes','exports','define','sms_messages','messageId','body','FULLTEXT','get','direction','toLowerCase','out','secret','isNil','UserId','SmsInteraction','findOne','SmsInteractionId','then','update','createdAt','catch','error','SmsAccount','find','SmsAccountId','type','twilio','authToken','phone','/api/sms/messages/','/status?token=','token','sid','SmsMessage,\x20%s,\x20%s,\x20%s','afterCreate','inspect','Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken','https://api.skebby.it/API/v1.0/REST/','username','password','sender','login?username=','&password=','GET','split','POST','session_key','total_sent','internal_order_id','smsMethod','read','skebby','Missing\x20parameters:\x20username,\x20password','connectel','senderString','https://smsapi.connectel.se/api/v2/send/','deliveryReport','Missing\x20parameters:\x20authToken','clicksend','xCALLY\x20Motion','format','%s:%s','https://rest.clicksend.com/v3/sms/send','Basic\x20%s','base64','http_code','data','queued_count'];(function(_0x578349,_0x38b596){var _0x2dc8fc=function(_0x334f23){while(--_0x334f23){_0x578349['push'](_0x578349['shift']());}};_0x2dc8fc(++_0x38b596);}(_0xc997,0x1ac));var _0x7c99=function(_0x3fda2e,_0x5ed0ec){_0x3fda2e=_0x3fda2e-0x0;var _0x1722a0=_0xc997[_0x3fda2e];return _0x1722a0;};'use strict';var _=require('lodash');var util=require(_0x7c99('0x0'));var logger=require(_0x7c99('0x1'))(_0x7c99('0x2'));var moment=require(_0x7c99('0x3'));var BPromise=require(_0x7c99('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x7c99('0x5'));var rimraf=require(_0x7c99('0x6'));var config=require(_0x7c99('0x7'));var attributes=require(_0x7c99('0x8'));module[_0x7c99('0x9')]=function(_0x404ffb,_0x1a21e1){return _0x404ffb[_0x7c99('0xa')]('SmsMessage',attributes,{'tableName':_0x7c99('0xb'),'paranoid':![],'indexes':[{'name':_0x7c99('0xc'),'fields':[_0x7c99('0xc')]},{'name':'fti_sms_messages','fields':[_0x7c99('0xd')],'type':_0x7c99('0xe')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x53f059,_0x8d9e39,_0x5381b5){var _0x3b53d8=_0x404ffb['models'];var _0x4cbf9f=_0x53f059[_0x7c99('0xf')]({'plain':!![]});if(_0x4cbf9f[_0x7c99('0x10')][_0x7c99('0x11')]()==='in'||_0x4cbf9f[_0x7c99('0x10')][_0x7c99('0x11')]()===_0x7c99('0x12')&&!_0x4cbf9f[_0x7c99('0x13')]&&!_[_0x7c99('0x14')](_0x4cbf9f[_0x7c99('0x15')])){_0x3b53d8[_0x7c99('0x16')][_0x7c99('0x17')]({'where':{'id':_0x4cbf9f[_0x7c99('0x18')]}})[_0x7c99('0x19')](function(_0x33bd5f){if(_0x33bd5f){_0x33bd5f[_0x7c99('0x1a')]({'lastMsgAt':_0x4cbf9f[_0x7c99('0x1b')],'lastMsgDirection':_0x4cbf9f[_0x7c99('0x10')][_0x7c99('0x11')]()});}})[_0x7c99('0x1c')](function(_0x43bcd7){console[_0x7c99('0x1d')](_0x43bcd7);});}if(_0x4cbf9f['direction']===_0x7c99('0x12')&&!_0x4cbf9f['secret']){var _0x57e153;_0x3b53d8[_0x7c99('0x1e')][_0x7c99('0x1f')]({'where':{'id':_0x4cbf9f[_0x7c99('0x20')]},'raw':!![]})[_0x7c99('0x19')](function(_0x32306b){_0x57e153=_0x32306b;if(_0x57e153&&_0x57e153[_0x7c99('0x21')]){switch(_0x57e153[_0x7c99('0x21')]){case _0x7c99('0x22'):var _0x14a655=require(_0x7c99('0x22'));if(_0x57e153['accountSid']&&_0x57e153[_0x7c99('0x23')]&&_0x57e153[_0x7c99('0x24')]){var _0x326e8d=new _0x14a655(_0x57e153['accountSid'],_0x57e153['authToken']);_0x326e8d['messages']['create']({'body':_0x4cbf9f['body'],'to':_0x4cbf9f[_0x7c99('0x24')],'from':_0x57e153[_0x7c99('0x24')],'statusCallback':_0x57e153['remote']+_0x7c99('0x25')+_0x4cbf9f['id']+_0x7c99('0x26')+_0x57e153[_0x7c99('0x27')]})[_0x7c99('0x19')](function(_0x5dceaf){if(_0x5dceaf[_0x7c99('0x28')]){return _0x53f059[_0x7c99('0x1a')]({'messageId':_0x5dceaf[_0x7c99('0x28')]});}})[_0x7c99('0x1c')](function(_0x416923){logger[_0x7c99('0x1d')](_0x7c99('0x29'),_0x7c99('0x2a'),_0x7c99('0x22'),util[_0x7c99('0x2b')](_0x416923,{'showHidden':![],'depth':null}));});}else{logger[_0x7c99('0x1d')](_0x7c99('0x29'),'afterCreate',_0x7c99('0x22'),_0x7c99('0x2c'));}break;case'skebby':var _0x588208=_0x7c99('0x2d');if(_0x57e153[_0x7c99('0x2e')]&&_0x57e153[_0x7c99('0x2f')]){var _0x196a57={'recipient':[_0x4cbf9f[_0x7c99('0x24')]],'message':_0x4cbf9f[_0x7c99('0xd')],'message_type':_0x57e153['smsMethod']};if(_0x57e153['smsMethod']&&_0x57e153['smsMethod']!=='SI'){_0x196a57[_0x7c99('0x30')]=_0x57e153[_0x7c99('0x24')];}var _0x1a36ac={'url':_0x588208+_0x7c99('0x31')+_0x57e153[_0x7c99('0x2e')]+_0x7c99('0x32')+_0x57e153[_0x7c99('0x2f')],'method':_0x7c99('0x33')};rp(_0x1a36ac)[_0x7c99('0x19')](function(_0x3a6cdc){var _0x3ab1fc=_0x3a6cdc[_0x7c99('0x34')](';');var _0x4365be={'user_key':_0x3ab1fc[0x0],'session_key':_0x3ab1fc[0x1]};_0x1a36ac={'url':_0x588208+'sms','method':_0x7c99('0x35'),'headers':{'user_key':_0x4365be['user_key'],'Session_key':_0x4365be[_0x7c99('0x36')]},'json':!![],'body':_0x196a57};return rp(_0x1a36ac);})['then'](function(_0x411561){if(_0x411561[_0x7c99('0x37')]>=0x1){var _0x5c22e2={'messageId':_0x411561[_0x7c99('0x38')]};if(_0x57e153[_0x7c99('0x39')]!=='GP'||!_0x57e153['deliveryReport']){_0x5c22e2[_0x7c99('0x3a')]=!![];}return _0x53f059[_0x7c99('0x1a')](_0x5c22e2);}else{return logger[_0x7c99('0x1d')](_0x7c99('0x29'),_0x7c99('0x2a'),_0x7c99('0x3b'),util[_0x7c99('0x2b')](_0x411561,{'showHidden':![],'depth':null}));}})[_0x7c99('0x1c')](function(_0x3ebef3){return logger[_0x7c99('0x1d')](_0x7c99('0x29'),_0x7c99('0x2a'),_0x7c99('0x3b'),util['inspect'](_0x3ebef3,{'showHidden':![],'depth':null}));});}else{logger['error']('SmsMessage,\x20%s,\x20%s,\x20%s',_0x7c99('0x2a'),_0x7c99('0x3b'),_0x7c99('0x3c'));}break;case _0x7c99('0x3d'):if(_0x57e153[_0x7c99('0x23')]){var _0x51bfc2={'recipient':_0x4cbf9f[_0x7c99('0x24')],'message':_0x4cbf9f['body'],'sender':_0x57e153[_0x7c99('0x3e')]||_0x57e153['phone'],'authorization':_0x57e153[_0x7c99('0x23')]};var _0x8d9e39={'method':'POST','uri':_0x7c99('0x3f'),'body':_0x51bfc2,'json':!![]};rp(_0x8d9e39)[_0x7c99('0x19')](function(_0x5d995e){var _0x360e7a={'messageId':_0x5d995e['requestid']};if(!_0x57e153[_0x7c99('0x40')]){_0x360e7a[_0x7c99('0x3a')]=!![];}return _0x53f059[_0x7c99('0x1a')](_0x360e7a);})[_0x7c99('0x1c')](function(_0x42abe7){logger[_0x7c99('0x1d')]('SmsMessage,\x20%s,\x20%s,\x20%s','afterCreate',_0x7c99('0x3d'),util[_0x7c99('0x2b')](_0x42abe7,{'showHidden':![],'depth':null}));});}else{logger['error'](_0x7c99('0x29'),'afterCreate',_0x7c99('0x3d'),_0x7c99('0x41'));}break;case _0x7c99('0x42'):if(_0x57e153[_0x7c99('0x2e')]&&_0x57e153[_0x7c99('0x2f')]){var _0x51bfc2={'messages':[{'source':_0x7c99('0x43'),'to':_0x4cbf9f[_0x7c99('0x24')],'body':_0x4cbf9f[_0x7c99('0xd')],'from':_0x57e153[_0x7c99('0x3e')]||_0x57e153[_0x7c99('0x24')]}]};var _0x5549dc=util[_0x7c99('0x44')](_0x7c99('0x45'),_0x57e153[_0x7c99('0x2e')],_0x57e153['password']);var _0x8d9e39={'method':'POST','uri':_0x7c99('0x46'),'body':_0x51bfc2,'headers':{'Authorization':util[_0x7c99('0x44')](_0x7c99('0x47'),new Buffer(_0x5549dc)['toString'](_0x7c99('0x48')))},'json':!![]};rp(_0x8d9e39)[_0x7c99('0x19')](function(_0xa0130a){if(_0xa0130a['http_code']>=0xc8&&_0xa0130a[_0x7c99('0x49')]<=0xce){if(_0xa0130a[_0x7c99('0x4a')]&&_0xa0130a['data'][_0x7c99('0x4b')]>0x0){var _0x90bd78=_[_0x7c99('0x4c')](_0xa0130a[_0x7c99('0x4a')]['messages']);var _0x3432c7={'messageId':_0x90bd78['message_id']};if(!_0x57e153[_0x7c99('0x40')]){_0x3432c7['read']=!![];}return _0x53f059[_0x7c99('0x1a')](_0x3432c7);}else{logger['error'](_0x7c99('0x29'),_0x7c99('0x2a'),_0x7c99('0x4d'),util['inspect'](_0xa0130a,{'showHidden':![],'depth':null}));}}else{logger[_0x7c99('0x1d')](_0x7c99('0x29'),_0x7c99('0x2a'),_0x7c99('0x4d'),util['inspect'](_0xa0130a,{'showHidden':![],'depth':null}));}})[_0x7c99('0x1c')](function(_0x187548){logger[_0x7c99('0x1d')](_0x7c99('0x29'),_0x7c99('0x2a'),_0x7c99('0x4d'),util[_0x7c99('0x2b')](_0x187548,{'showHidden':![],'depth':null}));});}else{logger[_0x7c99('0x1d')](_0x7c99('0x29'),_0x7c99('0x2a'),_0x7c99('0x4d'),_0x7c99('0x3c'));}break;case'plivo':if(_0x57e153[_0x7c99('0x4e')]&&_0x57e153[_0x7c99('0x23')]){var _0x51bfc2={'dst':_0x4cbf9f[_0x7c99('0x24')],'text':_0x4cbf9f['body'],'src':_0x57e153['senderString']||_0x57e153[_0x7c99('0x24')],'url':_0x57e153['remote']+'/api/sms/messages/'+_0x4cbf9f['id']+_0x7c99('0x26')+_0x57e153[_0x7c99('0x27')]};var _0x5549dc=util[_0x7c99('0x44')](_0x7c99('0x45'),_0x57e153[_0x7c99('0x4e')],_0x57e153['authToken']);var _0x8d9e39={'method':_0x7c99('0x35'),'uri':util[_0x7c99('0x44')](_0x7c99('0x4f'),_0x57e153['authId']),'body':_0x51bfc2,'headers':{'Authorization':util[_0x7c99('0x44')](_0x7c99('0x47'),new Buffer(_0x5549dc)[_0x7c99('0x50')]('base64'))},'json':!![]};rp(_0x8d9e39)[_0x7c99('0x19')](function(_0x3e5ac2){var _0x54c04a={'messageId':_0x3e5ac2[_0x7c99('0x51')][0x0]};return _0x53f059[_0x7c99('0x1a')](_0x54c04a);})['catch'](function(_0x588f14){logger[_0x7c99('0x1d')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0x7c99('0x2a'),_0x7c99('0x52'),util[_0x7c99('0x2b')](_0x588f14,{'showHidden':![],'depth':null}));});}else{logger[_0x7c99('0x1d')](_0x7c99('0x29'),'afterCreate',_0x7c99('0x52'),_0x7c99('0x53'));}break;case _0x7c99('0x54'):if(_0x57e153[_0x7c99('0x2e')]&&_0x57e153[_0x7c99('0x2f')]){if(_0x57e153[_0x7c99('0x55')]){var _0x44ad6c={'method':_0x7c99('0x35'),'uri':_0x57e153[_0x7c99('0x55')]+'/auth/1/session','body':{'username':_0x57e153[_0x7c99('0x2e')],'password':_0x57e153[_0x7c99('0x2f')]},'json':!![]};return rp(_0x44ad6c)['then'](function(_0x4533db){var _0x1c5e36={'method':'POST','uri':_0x57e153[_0x7c99('0x55')]+_0x7c99('0x56'),'body':{'messages':[{'from':_0x57e153[_0x7c99('0x24')],'destinations':[{'to':_0x4cbf9f['phone']}],'text':_0x4cbf9f[_0x7c99('0xd')],'notifyUrl':_0x57e153[_0x7c99('0x57')]+_0x7c99('0x25')+_0x4cbf9f['id']+_0x7c99('0x26')+_0x57e153[_0x7c99('0x27')],'notifyContentType':_0x7c99('0x58'),'callbackData':_0x57e153['phone']+';'+_0x4cbf9f['body']}]},'headers':{'Authorization':_0x7c99('0x59')+_0x4533db['token']},'json':!![]};return rp(_0x1c5e36)[_0x7c99('0x19')](function(_0x3acb23){if(_0x3acb23[_0x7c99('0x5a')]){var _0x276d5c={'messageId':_0x3acb23[_0x7c99('0x5a')][0x0][_0x7c99('0xc')]};if(!_0x57e153[_0x7c99('0x40')]){_0x276d5c['read']=!![];}return _0x53f059[_0x7c99('0x1a')](_0x276d5c);}else{return logger['error'](_0x7c99('0x29'),_0x7c99('0x2a'),_0x7c99('0x54'),util['inspect'](_0x3acb23,{'showHidden':![],'depth':null}));}});})[_0x7c99('0x1c')](function(_0x168a33){return logger[_0x7c99('0x1d')](_0x7c99('0x29'),_0x7c99('0x2a'),_0x7c99('0x54'),util['inspect'](_0x168a33,{'showHidden':![],'depth':null}));});}else{logger['error']('SmsMessage,\x20%s,\x20%s,\x20%s',_0x7c99('0x2a'),'infobip',_0x7c99('0x5b'));}}else{logger[_0x7c99('0x1d')](_0x7c99('0x29'),_0x7c99('0x2a'),_0x7c99('0x54'),_0x7c99('0x3c'));}break;case _0x7c99('0x5c'):var _0x2f1e5d=require(_0x7c99('0x5d'));if(_0x57e153[_0x7c99('0x5e')]){var _0x3f6211={};_0x3f6211[_0x7c99('0x5f')]=_0x57e153[_0x7c99('0x2e')];_0x3f6211[_0x7c99('0x24')]=_0x4cbf9f['phone'];_0x3f6211[_0x7c99('0x30')]=_0x57e153[_0x7c99('0x24')];_0x3f6211[_0x7c99('0x60')]=_0x4cbf9f[_0x7c99('0xd')];_0x3f6211[_0x7c99('0x61')]=+new Date();var _0x350888='';var _0x36d3f5='';var _0x5293d6=Object[_0x7c99('0x62')](_0x3f6211);_0x5293d6[_0x7c99('0x63')]();for(var _0x18c156=0x0;_0x18c156<_0x5293d6[_0x7c99('0x64')];_0x18c156++){if(_0x350888!=''){_0x350888+='&';}_0x350888+=_0x5293d6[_0x18c156]+'='+encodeURIComponent(_0x3f6211[_0x5293d6[_0x18c156]]);_0x36d3f5+=_0x3f6211[_0x5293d6[_0x18c156]];}_0x36d3f5+=_0x57e153[_0x7c99('0x5e')];_0x36d3f5=_0x2f1e5d[_0x7c99('0x65')](_0x7c99('0x66'))[_0x7c99('0x1a')](_0x36d3f5)[_0x7c99('0x67')](_0x7c99('0x68'));if(_0x350888!==''){_0x350888+='&';}_0x350888+=_0x7c99('0x69')+_0x36d3f5;var _0x1a36ac={'method':_0x7c99('0x33'),'uri':_0x57e153[_0x7c99('0x55')]+_0x7c99('0x6a')+_0x350888,'json':!![]};return rp(_0x1a36ac)[_0x7c99('0x19')](function(_0x1d388c){var _0x42db3=Object[_0x7c99('0x62')](_0x1d388c);if(_0x1d388c[_0x42db3[0x0]]['error']&&parseInt(_0x1d388c[_0x42db3[0x0]][_0x7c99('0x1d')])===0x0){var _0x42efba={'messageId':_0x1d388c[_0x42db3[0x0]]['id_sms']};if(!_0x57e153[_0x7c99('0x40')]){_0x42efba[_0x7c99('0x3a')]=!![];}return _0x53f059['update'](_0x42efba);}else{return logger[_0x7c99('0x1d')](_0x7c99('0x29'),_0x7c99('0x2a'),_0x7c99('0x5c'),util[_0x7c99('0x2b')](_0x1d388c['error'],{'showHidden':![],'depth':null}));}})[_0x7c99('0x1c')](function(_0x2caaf0){return logger[_0x7c99('0x1d')]('SmsMessage,\x20%s,\x20%s,\x20%s','afterCreate',_0x7c99('0x5c'),util[_0x7c99('0x2b')](_0x2caaf0,{'showHidden':![],'depth':null}));});}else{logger[_0x7c99('0x1d')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0x7c99('0x2a'),'csc','Missing\x20parameters:\x20apiKey');}break;case _0x7c99('0x6b'):if(_0x57e153[_0x7c99('0x5e')]){var _0x5c814a={'method':_0x7c99('0x35'),'uri':_0x7c99('0x6c'),'headers':{'Authorization':_0x57e153[_0x7c99('0x5e')]},'body':{'content':_0x4cbf9f[_0x7c99('0xd')],'to':[_0x4cbf9f[_0x7c99('0x24')]],'from':_0x57e153['phone'],'binary':![],'clientMessageId':_0x7c99('0x6d'),'charset':_0x7c99('0x6e')},'json':!![]};rp(_0x5c814a)[_0x7c99('0x19')](function(_0x5a6c36){if(!_0x5a6c36[_0x7c99('0x1d')]){var _0xc6bb6b={'messageId':_0x5a6c36[_0x7c99('0x5a')][0x0][_0x7c99('0x6f')]};if(!_0x57e153[_0x7c99('0x40')]){_0xc6bb6b[_0x7c99('0x3a')]=!![];}return _0x53f059[_0x7c99('0x1a')](_0xc6bb6b);}else{return logger[_0x7c99('0x1d')](_0x7c99('0x29'),_0x7c99('0x2a'),_0x7c99('0x6b'),util['inspect'](_0x5a6c36[_0x7c99('0x1d')],{'showHidden':![],'depth':null}));}})[_0x7c99('0x1c')](function(_0x4ecf30){return logger[_0x7c99('0x1d')](_0x7c99('0x29'),_0x7c99('0x2a'),'clickatell',util[_0x7c99('0x2b')](_0x4ecf30,{'showHidden':![],'depth':null}));});}else{logger['error']('SmsMessage,\x20%s,\x20%s,\x20%s',_0x7c99('0x2a'),'clickatell',_0x7c99('0x70'));}break;case'bandwidth':if(_0x57e153['username']&&_0x57e153[_0x7c99('0x2f')]){var _0x5549dc=util[_0x7c99('0x44')](_0x7c99('0x45'),_0x57e153[_0x7c99('0x2e')],_0x57e153['password']);var _0x8d9e39={'method':_0x7c99('0x35'),'uri':'https://messaging.bandwidth.com/api/v2/users/'+_0x57e153[_0x7c99('0x71')]+_0x7c99('0x72'),'body':{'to':[_0x4cbf9f[_0x7c99('0x24')]],'text':_0x4cbf9f['body'],'from':_0x57e153[_0x7c99('0x24')],'applicationId':_0x57e153[_0x7c99('0x73')]},'headers':{'Authorization':util[_0x7c99('0x44')](_0x7c99('0x47'),new Buffer(_0x5549dc)['toString'](_0x7c99('0x48')))},'json':!![]};rp(_0x8d9e39)[_0x7c99('0x19')](function(_0x50bc2e){if(_0x50bc2e['id']){var _0x592faf={'messageId':_0x50bc2e['id']};return _0x53f059[_0x7c99('0x1a')](_0x592faf);}else{logger[_0x7c99('0x1d')](_0x7c99('0x29'),_0x7c99('0x2a'),_0x7c99('0x74'),util[_0x7c99('0x2b')](_0x50bc2e,{'showHidden':![],'depth':null}));}})[_0x7c99('0x1c')](function(_0x4427cd){logger[_0x7c99('0x1d')](_0x7c99('0x29'),_0x7c99('0x2a'),_0x7c99('0x74'),util['inspect'](_0x4427cd,{'showHidden':![],'depth':null}));});}else{logger[_0x7c99('0x1d')](_0x7c99('0x29'),_0x7c99('0x2a'),_0x7c99('0x74'),_0x7c99('0x3c'));}break;case'intelepeer':if(_0x57e153[_0x7c99('0x5e')]){var _0x404f22={};var _0x1a36ac={'method':_0x7c99('0x35'),'uri':_0x7c99('0x75'),'headers':{'Authorization':'Bearer\x20'+_0x57e153['apiKey'],'Content-Type':_0x7c99('0x58')},'body':{'from':_0x57e153[_0x7c99('0x24')],'to':_0x4cbf9f[_0x7c99('0x24')],'text':_0x4cbf9f[_0x7c99('0xd')]},'json':!![]};return rp(_0x1a36ac)[_0x7c99('0x19')](function(_0x380a3a){if(_0x380a3a['code']==0xca){_0x404f22[_0x7c99('0x76')]=_0x380a3a;var _0x974645={'method':_0x7c99('0x35'),'uri':_0x7c99('0x77'),'headers':{'Authorization':_0x7c99('0x78')+_0x57e153[_0x7c99('0x5e')],'Content-Type':_0x7c99('0x58')},'body':{'refid':_0x404f22[_0x7c99('0x76')]['refid']},'json':!![]};return rp(_0x974645)[_0x7c99('0x19')](function(_0x1e1223){_0x404f22[_0x7c99('0x79')]=_0x1e1223;var _0x20023a={'messageId':_0x404f22['message']['refid'],'read':!![]};return _0x53f059['update'](_0x20023a);});}else{return logger[_0x7c99('0x1d')]('SmsMessage,\x20%s,\x20%s,\x20%s','afterCreate',_0x7c99('0x7a'),util['inspect'](_0x380a3a,{'showHidden':![],'depth':null}));}})['catch'](function(_0x3f50a9){return logger[_0x7c99('0x1d')](_0x7c99('0x29'),'afterCreate',_0x7c99('0x7a'),util[_0x7c99('0x2b')](_0x3f50a9,{'showHidden':![],'depth':null}));});}else{return logger['error'](_0x7c99('0x29'),_0x7c99('0x2a'),_0x7c99('0x7a'),_0x7c99('0x7b'));}break;}}})['finally'](function(){_0x5381b5();});}else{_0x5381b5();}}},'charset':_0x7c99('0x7c'),'collate':_0x7c99('0x7d')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd63c=['SmsMessage','create','body','options','then','lodash','util','moment','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','client','http','redis','localhost','socket.io-emitter','./smsMessage.socket','register','info','SmsMessage,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','catch','CreateSmsMessage'];(function(_0x7e7130,_0x4bdbb0){var _0x215526=function(_0x543f85){while(--_0x543f85){_0x7e7130['push'](_0x7e7130['shift']());}};_0x215526(++_0x4bdbb0);}(_0xd63c,0x165));var _0xcd63=function(_0x2fc5db,_0x2253b1){_0x2fc5db=_0x2fc5db-0x0;var _0x1ef11b=_0xd63c[_0x2fc5db];return _0x1ef11b;};'use strict';var _=require(_0xcd63('0x0'));var util=require(_0xcd63('0x1'));var moment=require(_0xcd63('0x2'));var BPromise=require('bluebird');var rs=require(_0xcd63('0x3'));var fs=require('fs');var Redis=require(_0xcd63('0x4'));var db=require(_0xcd63('0x5'))['db'];var utils=require(_0xcd63('0x6'));var logger=require('../../config/logger')(_0xcd63('0x7'));var config=require(_0xcd63('0x8'));var jayson=require('jayson/promise');var client=jayson[_0xcd63('0x9')][_0xcd63('0xa')]({'port':0x232a});config[_0xcd63('0xb')]=_['defaults'](config[_0xcd63('0xb')],{'host':_0xcd63('0xc'),'port':0x18eb});var socket=require(_0xcd63('0xd'))(new Redis(config[_0xcd63('0xb')]));require(_0xcd63('0xe'))[_0xcd63('0xf')](socket);function respondWithRpcPromise(_0x3728c6,_0x44f8d4,_0x3e2c09){return new BPromise(function(_0x34a94e,_0x4e771b){return client['request'](_0x3728c6,_0x3e2c09)['then'](function(_0x256dcd){logger[_0xcd63('0x10')](_0xcd63('0x11'),_0x44f8d4,_0xcd63('0x12'));logger[_0xcd63('0x13')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0x44f8d4,'request\x20sent',JSON[_0xcd63('0x14')](_0x256dcd));if(_0x256dcd[_0xcd63('0x15')]){if(_0x256dcd[_0xcd63('0x15')][_0xcd63('0x16')]===0x1f4){logger[_0xcd63('0x15')]('SmsMessage,\x20%s,\x20%s',_0x44f8d4,_0x256dcd[_0xcd63('0x15')][_0xcd63('0x17')]);return _0x4e771b(_0x256dcd[_0xcd63('0x15')][_0xcd63('0x17')]);}logger['error'](_0xcd63('0x11'),_0x44f8d4,_0x256dcd[_0xcd63('0x15')][_0xcd63('0x17')]);return _0x34a94e(_0x256dcd[_0xcd63('0x15')][_0xcd63('0x17')]);}else{logger['info'](_0xcd63('0x11'),_0x44f8d4,_0xcd63('0x12'));_0x34a94e(_0x256dcd[_0xcd63('0x18')][_0xcd63('0x17')]);}})[_0xcd63('0x19')](function(_0x52d40a){logger[_0xcd63('0x15')](_0xcd63('0x11'),_0x44f8d4,_0x52d40a);_0x4e771b(_0x52d40a);});});}exports[_0xcd63('0x1a')]=function(_0x307529){var _0x5baa98=this;return new Promise(function(_0x4e3f32,_0x120317){return db[_0xcd63('0x1b')][_0xcd63('0x1c')](_0x307529[_0xcd63('0x1d')],{'raw':_0x307529[_0xcd63('0x1e')]?_0x307529[_0xcd63('0x1e')]['raw']===undefined?!![]:![]:!![]})[_0xcd63('0x1f')](function(_0x5bbe15){logger['info'](_0xcd63('0x1a'),_0x307529);logger[_0xcd63('0x13')]('CreateSmsMessage',_0x307529,JSON[_0xcd63('0x14')](_0x5bbe15));_0x4e3f32(_0x5bbe15);})[_0xcd63('0x19')](function(_0x2ec1b3){logger[_0xcd63('0x15')](_0xcd63('0x1a'),_0x2ec1b3['message'],_0x307529);_0x120317(_0x5baa98[_0xcd63('0x15')](0x1f4,_0x2ec1b3[_0xcd63('0x17')]));});});};
\ No newline at end of file
+var _0x36b1=['rpc','jayson/promise','client','http','redis','defaults','localhost','request','then','info','request\x20sent','SmsMessage,\x20%s,\x20%s,\x20%s','error','SmsMessage,\x20%s,\x20%s','message','result','CreateSmsMessage','SmsMessage','create','body','options','raw','debug','stringify','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils'];(function(_0x3816d3,_0x47b62d){var _0x246d28=function(_0x4cd0d7){while(--_0x4cd0d7){_0x3816d3['push'](_0x3816d3['shift']());}};_0x246d28(++_0x47b62d);}(_0x36b1,0x14e));var _0x136b=function(_0x20e8ea,_0x5c4999){_0x20e8ea=_0x20e8ea-0x0;var _0x34c815=_0x36b1[_0x20e8ea];return _0x34c815;};'use strict';var _=require(_0x136b('0x0'));var util=require(_0x136b('0x1'));var moment=require(_0x136b('0x2'));var BPromise=require(_0x136b('0x3'));var rs=require(_0x136b('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x136b('0x5'))['db'];var utils=require(_0x136b('0x6'));var logger=require('../../config/logger')(_0x136b('0x7'));var config=require('../../config/environment');var jayson=require(_0x136b('0x8'));var client=jayson[_0x136b('0x9')][_0x136b('0xa')]({'port':0x232a});config[_0x136b('0xb')]=_[_0x136b('0xc')](config[_0x136b('0xb')],{'host':_0x136b('0xd'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require('./smsMessage.socket')['register'](socket);function respondWithRpcPromise(_0x36f76a,_0x50c96d,_0x1b8b60){return new BPromise(function(_0x9a70ca,_0x42ffe2){return client[_0x136b('0xe')](_0x36f76a,_0x1b8b60)[_0x136b('0xf')](function(_0x2a8221){logger[_0x136b('0x10')]('SmsMessage,\x20%s,\x20%s',_0x50c96d,_0x136b('0x11'));logger['debug'](_0x136b('0x12'),_0x50c96d,'request\x20sent',JSON['stringify'](_0x2a8221));if(_0x2a8221[_0x136b('0x13')]){if(_0x2a8221[_0x136b('0x13')]['code']===0x1f4){logger[_0x136b('0x13')](_0x136b('0x14'),_0x50c96d,_0x2a8221[_0x136b('0x13')][_0x136b('0x15')]);return _0x42ffe2(_0x2a8221['error']['message']);}logger[_0x136b('0x13')](_0x136b('0x14'),_0x50c96d,_0x2a8221[_0x136b('0x13')][_0x136b('0x15')]);return _0x9a70ca(_0x2a8221['error']['message']);}else{logger[_0x136b('0x10')](_0x136b('0x14'),_0x50c96d,'request\x20sent');_0x9a70ca(_0x2a8221[_0x136b('0x16')][_0x136b('0x15')]);}})['catch'](function(_0x351d37){logger[_0x136b('0x13')](_0x136b('0x14'),_0x50c96d,_0x351d37);_0x42ffe2(_0x351d37);});});}exports[_0x136b('0x17')]=function(_0x2e29e8){var _0x459ef1=this;return new Promise(function(_0x49b324,_0xd52340){return db[_0x136b('0x18')][_0x136b('0x19')](_0x2e29e8[_0x136b('0x1a')],{'raw':_0x2e29e8[_0x136b('0x1b')]?_0x2e29e8[_0x136b('0x1b')][_0x136b('0x1c')]===undefined?!![]:![]:!![]})[_0x136b('0xf')](function(_0xac19c1){logger[_0x136b('0x10')]('CreateSmsMessage',_0x2e29e8);logger[_0x136b('0x1d')]('CreateSmsMessage',_0x2e29e8,JSON[_0x136b('0x1e')](_0xac19c1));_0x49b324(_0xac19c1);})['catch'](function(_0x19128e){logger[_0x136b('0x13')](_0x136b('0x17'),_0x19128e[_0x136b('0x15')],_0x2e29e8);_0xd52340(_0x459ef1[_0x136b('0x13')](0x1f4,_0x19128e['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf4d8=['remove','update','emit','length','save'];(function(_0x447e79,_0x1b463d){var _0xa61f36=function(_0x4df2b8){while(--_0x4df2b8){_0x447e79['push'](_0x447e79['shift']());}};_0xa61f36(++_0x1b463d);}(_0xf4d8,0x126));var _0x8f4d=function(_0x40c070,_0x45a06f){_0x40c070=_0x40c070-0x0;var _0x5cab58=_0xf4d8[_0x40c070];return _0x5cab58;};'use strict';var SmsMessageEvents=require('./smsMessage.events');var events=[_0x8f4d('0x0'),_0x8f4d('0x1'),_0x8f4d('0x2')];function createListener(_0x4ad26a,_0x2181f7){return function(_0x343c4f){_0x2181f7[_0x8f4d('0x3')](_0x4ad26a,_0x343c4f);};}function removeListener(_0x1a5600,_0x3875b1){return function(){SmsMessageEvents['removeListener'](_0x1a5600,_0x3875b1);};}exports['register']=function(_0x5cc65d){for(var _0x5e9dd2=0x0,_0x547977=events[_0x8f4d('0x4')];_0x5e9dd2<_0x547977;_0x5e9dd2++){var _0x1d37d3=events[_0x5e9dd2];var _0x103d29=createListener('smsMessage:'+_0x1d37d3,_0x5cc65d);SmsMessageEvents['on'](_0x1d37d3,_0x103d29);}};
\ No newline at end of file
+var _0x2455=['./smsMessage.events','save','remove','update','removeListener','register','length'];(function(_0x5d290b,_0x1ce911){var _0x537865=function(_0x90dbad){while(--_0x90dbad){_0x5d290b['push'](_0x5d290b['shift']());}};_0x537865(++_0x1ce911);}(_0x2455,0xc4));var _0x5245=function(_0x104857,_0x34844c){_0x104857=_0x104857-0x0;var _0x5c7d6d=_0x2455[_0x104857];return _0x5c7d6d;};'use strict';var SmsMessageEvents=require(_0x5245('0x0'));var events=[_0x5245('0x1'),_0x5245('0x2'),_0x5245('0x3')];function createListener(_0x579355,_0xf08d57){return function(_0x423d7a){_0xf08d57['emit'](_0x579355,_0x423d7a);};}function removeListener(_0x1980eb,_0x415509){return function(){SmsMessageEvents[_0x5245('0x4')](_0x1980eb,_0x415509);};}exports[_0x5245('0x5')]=function(_0x552924){for(var _0x31cd85=0x0,_0x3b00ee=events[_0x5245('0x6')];_0x31cd85<_0x3b00ee;_0x31cd85++){var _0x4c2ca9=events[_0x31cd85];var _0x1f3185=createListener('smsMessage:'+_0x4c2ca9,_0x552924);SmsMessageEvents['on'](_0x4c2ca9,_0x1f3185);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa8b0=['path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./smsQueue.controller','get','isAuthenticated','index','/:id','show','getMembers','/:id/teams','/:id/users','getAgents','post','create','addTeams','addAgents','put','update','delete','removeTeams','removeAgents','exports'];(function(_0x5bd1d0,_0x34076f){var _0x3ee487=function(_0x940f3e){while(--_0x940f3e){_0x5bd1d0['push'](_0x5bd1d0['shift']());}};_0x3ee487(++_0x34076f);}(_0xa8b0,0xa8));var _0x0a8b=function(_0xd02bb,_0x26e2d0){_0xd02bb=_0xd02bb-0x0;var _0x1cdf23=_0xa8b0[_0xd02bb];return _0x1cdf23;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x0a8b('0x0'));var timeout=require(_0x0a8b('0x1'));var express=require(_0x0a8b('0x2'));var router=express[_0x0a8b('0x3')]();var fs_extra=require(_0x0a8b('0x4'));var auth=require(_0x0a8b('0x5'));var interaction=require(_0x0a8b('0x6'));var config=require(_0x0a8b('0x7'));var controller=require(_0x0a8b('0x8'));router[_0x0a8b('0x9')]('/',auth[_0x0a8b('0xa')](),controller[_0x0a8b('0xb')]);router['get']('/describe',auth[_0x0a8b('0xa')](),controller['describe']);router['get'](_0x0a8b('0xc'),auth['isAuthenticated'](),controller[_0x0a8b('0xd')]);router[_0x0a8b('0x9')]('/:id/members',auth['isAuthenticated'](),controller[_0x0a8b('0xe')]);router['get'](_0x0a8b('0xf'),auth[_0x0a8b('0xa')](),controller['getTeams']);router[_0x0a8b('0x9')](_0x0a8b('0x10'),auth['isAuthenticated'](),controller[_0x0a8b('0x11')]);router[_0x0a8b('0x12')]('/',auth['isAuthenticated'](),controller[_0x0a8b('0x13')]);router[_0x0a8b('0x12')](_0x0a8b('0xf'),auth['isAuthenticated'](),controller[_0x0a8b('0x14')]);router[_0x0a8b('0x12')](_0x0a8b('0x10'),auth[_0x0a8b('0xa')](),controller[_0x0a8b('0x15')]);router[_0x0a8b('0x16')](_0x0a8b('0xc'),auth[_0x0a8b('0xa')](),controller[_0x0a8b('0x17')]);router[_0x0a8b('0x18')](_0x0a8b('0xc'),auth[_0x0a8b('0xa')](),controller['destroy']);router['delete'](_0x0a8b('0xf'),auth[_0x0a8b('0xa')](),controller[_0x0a8b('0x19')]);router[_0x0a8b('0x18')](_0x0a8b('0x10'),auth['isAuthenticated'](),controller[_0x0a8b('0x1a')]);module[_0x0a8b('0x1b')]=router;
\ No newline at end of file
+var _0xc6a3=['/:id/users','post','create','addTeams','put','destroy','delete','removeTeams','removeAgents','exports','multer','util','path','connect-timeout','Router','../../components/auth/service','../../config/environment','./smsQueue.controller','index','get','isAuthenticated','describe','/:id','show','/:id/members','getMembers','/:id/teams','getTeams'];(function(_0x5e745e,_0xde2931){var _0x122dab=function(_0xe396a5){while(--_0xe396a5){_0x5e745e['push'](_0x5e745e['shift']());}};_0x122dab(++_0xde2931);}(_0xc6a3,0x1ae));var _0x3c6a=function(_0x1ac595,_0x5d2081){_0x1ac595=_0x1ac595-0x0;var _0x455fff=_0xc6a3[_0x1ac595];return _0x455fff;};'use strict';var multer=require(_0x3c6a('0x0'));var util=require(_0x3c6a('0x1'));var path=require(_0x3c6a('0x2'));var timeout=require(_0x3c6a('0x3'));var express=require('express');var router=express[_0x3c6a('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0x3c6a('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0x3c6a('0x6'));var controller=require(_0x3c6a('0x7'));router['get']('/',auth['isAuthenticated'](),controller[_0x3c6a('0x8')]);router[_0x3c6a('0x9')]('/describe',auth[_0x3c6a('0xa')](),controller[_0x3c6a('0xb')]);router[_0x3c6a('0x9')](_0x3c6a('0xc'),auth[_0x3c6a('0xa')](),controller[_0x3c6a('0xd')]);router['get'](_0x3c6a('0xe'),auth[_0x3c6a('0xa')](),controller[_0x3c6a('0xf')]);router[_0x3c6a('0x9')](_0x3c6a('0x10'),auth['isAuthenticated'](),controller[_0x3c6a('0x11')]);router[_0x3c6a('0x9')](_0x3c6a('0x12'),auth[_0x3c6a('0xa')](),controller['getAgents']);router[_0x3c6a('0x13')]('/',auth[_0x3c6a('0xa')](),controller[_0x3c6a('0x14')]);router['post'](_0x3c6a('0x10'),auth[_0x3c6a('0xa')](),controller[_0x3c6a('0x15')]);router['post'](_0x3c6a('0x12'),auth[_0x3c6a('0xa')](),controller['addAgents']);router[_0x3c6a('0x16')](_0x3c6a('0xc'),auth[_0x3c6a('0xa')](),controller['update']);router['delete']('/:id',auth[_0x3c6a('0xa')](),controller[_0x3c6a('0x17')]);router[_0x3c6a('0x18')](_0x3c6a('0x10'),auth[_0x3c6a('0xa')](),controller[_0x3c6a('0x19')]);router[_0x3c6a('0x18')]('/:id/users',auth[_0x3c6a('0xa')](),controller[_0x3c6a('0x1a')]);module[_0x3c6a('0x1b')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xec9c=['ENUM','rrmemory','beepall','roundrobin','sequelize','exports','INTEGER'];(function(_0x26234c,_0x4b9a7e){var _0x287874=function(_0x36b264){while(--_0x36b264){_0x26234c['push'](_0x26234c['shift']());}};_0x287874(++_0x4b9a7e);}(_0xec9c,0xd6));var _0xcec9=function(_0x3219e6,_0x32410d){_0x3219e6=_0x3219e6-0x0;var _0x27f01d=_0xec9c[_0x3219e6];return _0x27f01d;};'use strict';var Sequelize=require(_0xcec9('0x0'));module[_0xcec9('0x1')]={'name':{'type':Sequelize['STRING'],'unique':'name','validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'description':{'type':Sequelize['STRING']},'timeout':{'type':Sequelize[_0xcec9('0x2')],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize[_0xcec9('0x3')](_0xcec9('0x4'),_0xcec9('0x5'),_0xcec9('0x6'))}};
\ No newline at end of file
+var _0xdc41=['beepall','roundrobin','exports','name','STRING','INTEGER','rrmemory'];(function(_0x110c3d,_0x12ee06){var _0x226d67=function(_0x1fb6e1){while(--_0x1fb6e1){_0x110c3d['push'](_0x110c3d['shift']());}};_0x226d67(++_0x12ee06);}(_0xdc41,0xdb));var _0x1dc4=function(_0x3f5445,_0x2fb1ac){_0x3f5445=_0x3f5445-0x0;var _0x1c9d1d=_0xdc41[_0x3f5445];return _0x1c9d1d;};'use strict';var Sequelize=require('sequelize');module[_0x1dc4('0x0')]={'name':{'type':Sequelize['STRING'],'unique':_0x1dc4('0x1'),'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'description':{'type':Sequelize[_0x1dc4('0x2')]},'timeout':{'type':Sequelize[_0x1dc4('0x3')],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize['ENUM'](_0x1dc4('0x4'),_0x1dc4('0x5'),_0x1dc4('0x6'))}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5e36=['SmsQueues','UserProfileSection','userProfileId','autoAssociation','params','describe','getMembers','findOne','UserSmsQueue','SmsQueueId','findAll','User','agent','smsPause','updatedAt','rows','format','%s/%s','SIP','getTeams','Team','order','hasOwnProperty','addTeams','ids','Agents','voicePause','interface','flatMap','sequelize','each','findOrCreate','forEach','emit','userSmsQueue:save','removeTeams','select','field','tq.TeamId','from','join','ut.TeamId\x20=\x20tq.TeamId','SmsQueueId\x20=\x20?','clone','ut.UserId\x20=\x20?','push','toString','QueryTypes','every','TeamId','includes','union','value','isEmpty','removeAgents','userSmsQueue:remove','addAgents','omit','spread','getAgents','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','querystring','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','./smsQueue.socket','register','sendStatus','end','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','update','then','destroy','UserProfileResource','error','stack','name','send','index','SmsQueue','rawAttributes','fieldName','key','model','map','query','filters','intersection','fields','attributes','length','nolimit','sort','where','pick','filter','type','VIRTUAL','options','include','catch','keys','includeAll','merge','find','create','body','user','role','get'];(function(_0x30828c,_0x55d046){var _0x599969=function(_0x3792be){while(--_0x3792be){_0x30828c['push'](_0x30828c['shift']());}};_0x599969(++_0x55d046);}(_0x5e36,0xc8));var _0x65e3=function(_0x43df4b,_0x1a2601){_0x43df4b=_0x43df4b-0x0;var _0x572971=_0x5e36[_0x43df4b];return _0x572971;};'use strict';var emlformat=require(_0x65e3('0x0'));var rimraf=require(_0x65e3('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x65e3('0x2'));var rp=require(_0x65e3('0x3'));var moment=require(_0x65e3('0x4'));var BPromise=require(_0x65e3('0x5'));var Mustache=require(_0x65e3('0x6'));var util=require(_0x65e3('0x7'));var path=require(_0x65e3('0x8'));var sox=require(_0x65e3('0x9'));var csv=require(_0x65e3('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x65e3('0xb'));var _=require(_0x65e3('0xc'));var squel=require(_0x65e3('0xd'));var crypto=require(_0x65e3('0xe'));var jsforce=require(_0x65e3('0xf'));var deskjs=require('desk.js');var toCsv=require(_0x65e3('0xa'));var querystring=require(_0x65e3('0x10'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x65e3('0x11'));var hardwareService=require(_0x65e3('0x12'));var logger=require('../../config/logger')(_0x65e3('0x13'));var utils=require('../../config/utils');var config=require(_0x65e3('0x14'));var licenseUtil=require(_0x65e3('0x15'));var db=require(_0x65e3('0x16'))['db'];config[_0x65e3('0x17')]=_[_0x65e3('0x18')](config[_0x65e3('0x17')],{'host':_0x65e3('0x19'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x65e3('0x17')]));require(_0x65e3('0x1a'))[_0x65e3('0x1b')](socket);function respondWithStatusCode(_0x4ca459,_0x5b40bb){_0x5b40bb=_0x5b40bb||0xcc;return function(_0x48624f){if(_0x48624f){return _0x4ca459[_0x65e3('0x1c')](_0x5b40bb);}return _0x4ca459['status'](_0x5b40bb)[_0x65e3('0x1d')]();};}function respondWithResult(_0x30fa8a,_0x4239cc){_0x4239cc=_0x4239cc||0xc8;return function(_0x43c9e5){if(_0x43c9e5){return _0x30fa8a[_0x65e3('0x1e')](_0x4239cc)[_0x65e3('0x1f')](_0x43c9e5);}};}function respondWithFilteredResult(_0x4e2097,_0xd5bfb3){return function(_0x47af07){if(_0x47af07){var _0x3ce241=typeof _0xd5bfb3[_0x65e3('0x20')]===_0x65e3('0x21')&&typeof _0xd5bfb3[_0x65e3('0x22')]==='undefined';var _0x5dc2d9=_0x47af07[_0x65e3('0x23')];var _0x1826ef=_0x3ce241?0x0:_0xd5bfb3[_0x65e3('0x20')];var _0x29efef=_0x3ce241?_0x47af07[_0x65e3('0x23')]:_0xd5bfb3['offset']+_0xd5bfb3[_0x65e3('0x22')];var _0x16aecb;if(_0x29efef>=_0x5dc2d9){_0x29efef=_0x5dc2d9;_0x16aecb=0xc8;}else{_0x16aecb=0xce;}_0x4e2097[_0x65e3('0x1e')](_0x16aecb);return _0x4e2097[_0x65e3('0x24')](_0x65e3('0x25'),_0x1826ef+'-'+_0x29efef+'/'+_0x5dc2d9)[_0x65e3('0x1f')](_0x47af07);}return null;};}function patchUpdates(_0x346cd4){return function(_0x210c40){try{jsonpatch[_0x65e3('0x26')](_0x210c40,_0x346cd4,!![]);}catch(_0x33cf2e){return BPromise[_0x65e3('0x27')](_0x33cf2e);}return _0x210c40['save']();};}function saveUpdates(_0x3049e9,_0x2a7373){return function(_0x205e0a){if(_0x205e0a){return _0x205e0a[_0x65e3('0x28')](_0x3049e9)[_0x65e3('0x29')](function(_0x57fb76){return _0x57fb76;});}return null;};}function removeEntity(_0xcb4215,_0x57e4a6){return function(_0x225a11){if(_0x225a11){return _0x225a11[_0x65e3('0x2a')]()['then'](function(){var _0x5481d7=_0x225a11['get']({'plain':!![]});var _0x5546b3='SmsQueues';return db[_0x65e3('0x2b')][_0x65e3('0x2a')]({'where':{'type':_0x5546b3,'resourceId':_0x5481d7['id']}})['then'](function(){return _0x225a11;});})['then'](function(){_0xcb4215[_0x65e3('0x1e')](0xcc)[_0x65e3('0x1d')]();});}};}function handleEntityNotFound(_0x273b82,_0x384dfd){return function(_0x21e7a5){if(!_0x21e7a5){_0x273b82['sendStatus'](0x194);}return _0x21e7a5;};}function handleError(_0x2695db,_0xbac588){_0xbac588=_0xbac588||0x1f4;return function(_0x20439a){logger[_0x65e3('0x2c')](_0x20439a[_0x65e3('0x2d')]);if(_0x20439a[_0x65e3('0x2e')]){delete _0x20439a[_0x65e3('0x2e')];}_0x2695db[_0x65e3('0x1e')](_0xbac588)[_0x65e3('0x2f')](_0x20439a);};}exports[_0x65e3('0x30')]=function(_0x328f30,_0x13d89a){var _0x5440ae={},_0x2cc499={},_0x5091ba={'count':0x0,'rows':[]};var _0x23167c=_['map'](db[_0x65e3('0x31')][_0x65e3('0x32')],function(_0x31a246){return{'name':_0x31a246[_0x65e3('0x33')],'type':_0x31a246['type'][_0x65e3('0x34')]};});_0x2cc499[_0x65e3('0x35')]=_[_0x65e3('0x36')](_0x23167c,'name');_0x2cc499[_0x65e3('0x37')]=_['keys'](_0x328f30['query']);_0x2cc499[_0x65e3('0x38')]=_['intersection'](_0x2cc499['model'],_0x2cc499[_0x65e3('0x37')]);_0x5440ae['attributes']=_[_0x65e3('0x39')](_0x2cc499[_0x65e3('0x35')],qs[_0x65e3('0x3a')](_0x328f30['query']['fields']));_0x5440ae[_0x65e3('0x3b')]=_0x5440ae[_0x65e3('0x3b')][_0x65e3('0x3c')]?_0x5440ae[_0x65e3('0x3b')]:_0x2cc499[_0x65e3('0x35')];if(!_0x328f30[_0x65e3('0x37')]['hasOwnProperty'](_0x65e3('0x3d'))){_0x5440ae[_0x65e3('0x22')]=qs['limit'](_0x328f30['query'][_0x65e3('0x22')]);_0x5440ae[_0x65e3('0x20')]=qs['offset'](_0x328f30[_0x65e3('0x37')][_0x65e3('0x20')]);}_0x5440ae['order']=qs['sort'](_0x328f30['query'][_0x65e3('0x3e')]);_0x5440ae[_0x65e3('0x3f')]=qs[_0x65e3('0x38')](_[_0x65e3('0x40')](_0x328f30[_0x65e3('0x37')],_0x2cc499[_0x65e3('0x38')]),_0x23167c);if(_0x328f30[_0x65e3('0x37')][_0x65e3('0x41')]){_0x5440ae[_0x65e3('0x3f')]=_['merge'](_0x5440ae[_0x65e3('0x3f')],{'$or':_[_0x65e3('0x36')](_0x23167c,function(_0x11ecb3){if(_0x11ecb3[_0x65e3('0x42')]!==_0x65e3('0x43')){var _0x44c8cc={};_0x44c8cc[_0x11ecb3[_0x65e3('0x2e')]]={'$like':'%'+_0x328f30['query'][_0x65e3('0x41')]+'%'};return _0x44c8cc;}})});}_0x5440ae=_['merge']({},_0x5440ae,_0x328f30[_0x65e3('0x44')]);var _0x1159ee={'where':_0x5440ae[_0x65e3('0x3f')]};return db[_0x65e3('0x31')][_0x65e3('0x23')](_0x1159ee)['then'](function(_0x48176b){_0x5091ba[_0x65e3('0x23')]=_0x48176b;if(_0x328f30[_0x65e3('0x37')]['includeAll']){_0x5440ae[_0x65e3('0x45')]=[{'all':!![]}];}return db['SmsQueue']['findAll'](_0x5440ae);})[_0x65e3('0x29')](function(_0x2713f9){_0x5091ba['rows']=_0x2713f9;return _0x5091ba;})[_0x65e3('0x29')](respondWithFilteredResult(_0x13d89a,_0x5440ae))[_0x65e3('0x46')](handleError(_0x13d89a,null));};exports['show']=function(_0x4f43f3,_0x127295){var _0x18c1ae={'raw':!![],'where':{'id':_0x4f43f3['params']['id']}},_0x541ca3={};_0x541ca3[_0x65e3('0x35')]=_[_0x65e3('0x47')](db['SmsQueue']['rawAttributes']);_0x541ca3['query']=_[_0x65e3('0x47')](_0x4f43f3[_0x65e3('0x37')]);_0x541ca3[_0x65e3('0x38')]=_[_0x65e3('0x39')](_0x541ca3['model'],_0x541ca3[_0x65e3('0x37')]);_0x18c1ae[_0x65e3('0x3b')]=_[_0x65e3('0x39')](_0x541ca3[_0x65e3('0x35')],qs[_0x65e3('0x3a')](_0x4f43f3[_0x65e3('0x37')][_0x65e3('0x3a')]));_0x18c1ae[_0x65e3('0x3b')]=_0x18c1ae[_0x65e3('0x3b')]['length']?_0x18c1ae[_0x65e3('0x3b')]:_0x541ca3['model'];if(_0x4f43f3[_0x65e3('0x37')][_0x65e3('0x48')]){_0x18c1ae[_0x65e3('0x45')]=[{'all':!![]}];}_0x18c1ae=_[_0x65e3('0x49')]({},_0x18c1ae,_0x4f43f3[_0x65e3('0x44')]);return db[_0x65e3('0x31')][_0x65e3('0x4a')](_0x18c1ae)[_0x65e3('0x29')](handleEntityNotFound(_0x127295,null))[_0x65e3('0x29')](respondWithResult(_0x127295,null))[_0x65e3('0x46')](handleError(_0x127295,null));};exports[_0x65e3('0x4b')]=function(_0x1955e6,_0x4e16f5){return db[_0x65e3('0x31')][_0x65e3('0x4b')](_0x1955e6[_0x65e3('0x4c')],{})[_0x65e3('0x29')](function(_0x201758){var _0x1b493b=_0x1955e6[_0x65e3('0x4d')]['get']({'plain':!![]});if(!_0x1b493b)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x1b493b[_0x65e3('0x4e')]===_0x65e3('0x4d')){var _0xf477c7=_0x201758[_0x65e3('0x4f')]({'plain':!![]});var _0x958baa=_0x65e3('0x50');return db[_0x65e3('0x51')][_0x65e3('0x4a')]({'where':{'name':_0x958baa,'userProfileId':_0x1b493b[_0x65e3('0x52')]},'raw':!![]})['then'](function(_0x516e0b){if(_0x516e0b&&_0x516e0b[_0x65e3('0x53')]===0x0){return db[_0x65e3('0x2b')][_0x65e3('0x4b')]({'name':_0xf477c7[_0x65e3('0x2e')],'resourceId':_0xf477c7['id'],'type':_0x516e0b['name'],'sectionId':_0x516e0b['id']},{})['then'](function(){return _0x201758;});}else{return _0x201758;}})[_0x65e3('0x46')](function(_0x65731f){logger[_0x65e3('0x2c')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x65731f);throw _0x65731f;});}return _0x201758;})[_0x65e3('0x29')](respondWithResult(_0x4e16f5,0xc9))[_0x65e3('0x46')](handleError(_0x4e16f5,null));};exports[_0x65e3('0x28')]=function(_0x3992af,_0x1c05d3){if(_0x3992af[_0x65e3('0x4c')]['id']){delete _0x3992af['body']['id'];}return db[_0x65e3('0x31')][_0x65e3('0x4a')]({'where':{'id':_0x3992af[_0x65e3('0x54')]['id']}})[_0x65e3('0x29')](handleEntityNotFound(_0x1c05d3,null))[_0x65e3('0x29')](saveUpdates(_0x3992af[_0x65e3('0x4c')],null))['then'](respondWithResult(_0x1c05d3,null))['catch'](handleError(_0x1c05d3,null));};exports[_0x65e3('0x2a')]=function(_0x6bb2c9,_0x1f4a3b){return db['SmsQueue'][_0x65e3('0x4a')]({'where':{'id':_0x6bb2c9[_0x65e3('0x54')]['id']}})['then'](handleEntityNotFound(_0x1f4a3b,null))['then'](removeEntity(_0x1f4a3b,null))[_0x65e3('0x46')](handleError(_0x1f4a3b,null));};exports[_0x65e3('0x55')]=function(_0x517d75,_0x11d8af){return db[_0x65e3('0x31')][_0x65e3('0x55')]()['then'](respondWithResult(_0x11d8af,null))[_0x65e3('0x46')](handleError(_0x11d8af,null));};exports[_0x65e3('0x56')]=function(_0x5411a4,_0x56ffef,_0x164498){var _0x161220={'raw':!![],'where':{}},_0x3f8da5={},_0xfe50cd;return db[_0x65e3('0x31')][_0x65e3('0x57')]({'where':{'id':_0x5411a4[_0x65e3('0x54')]['id']}})['then'](handleEntityNotFound(_0x56ffef,null))[_0x65e3('0x29')](function(_0x465cec){if(_0x465cec){_0xfe50cd=_0x465cec[_0x65e3('0x4f')]({'plain':!![]});_0x3f8da5[_0x65e3('0x35')]=_[_0x65e3('0x47')](db[_0x65e3('0x58')][_0x65e3('0x32')]);_0x3f8da5[_0x65e3('0x37')]=_[_0x65e3('0x47')](_0x5411a4[_0x65e3('0x37')]);_0x3f8da5[_0x65e3('0x38')]=_[_0x65e3('0x39')](_0x3f8da5[_0x65e3('0x35')],_0x3f8da5[_0x65e3('0x37')]);_0x161220[_0x65e3('0x3b')]=_[_0x65e3('0x39')](_0x3f8da5[_0x65e3('0x35')],qs['fields'](_0x5411a4[_0x65e3('0x37')][_0x65e3('0x3a')]));_0x161220[_0x65e3('0x3b')]=_0x161220[_0x65e3('0x3b')][_0x65e3('0x3c')]?_0x161220['attributes']:_0x3f8da5[_0x65e3('0x35')];if(!_0x5411a4[_0x65e3('0x37')]['hasOwnProperty'](_0x65e3('0x3d'))){_0x161220['limit']=qs[_0x65e3('0x22')](_0x5411a4[_0x65e3('0x37')][_0x65e3('0x22')]);_0x161220['offset']=qs[_0x65e3('0x20')](_0x5411a4[_0x65e3('0x37')][_0x65e3('0x20')]);}_0x161220['order']=qs[_0x65e3('0x3e')](_0x5411a4[_0x65e3('0x37')]['sort']);_0x161220[_0x65e3('0x3f')]=qs[_0x65e3('0x38')](_['pick'](_0x5411a4['query'],_0x3f8da5[_0x65e3('0x38')]));_0x161220[_0x65e3('0x3f')][_0x65e3('0x59')]=_0x465cec['id'];if(_0x5411a4[_0x65e3('0x37')][_0x65e3('0x41')]){_0x161220[_0x65e3('0x3f')]=_['merge'](_0x161220[_0x65e3('0x3f')],{'$or':_[_0x65e3('0x36')](_0x161220[_0x65e3('0x3b')],function(_0x412dda){var _0x4eb57b={};_0x4eb57b[_0x412dda]={'$like':'%'+_0x5411a4[_0x65e3('0x37')][_0x65e3('0x41')]+'%'};return _0x4eb57b;})});}_0x161220=_['merge']({},_0x161220,_0x5411a4[_0x65e3('0x44')]);return db['UserSmsQueue'][_0x65e3('0x5a')](_0x161220);}})[_0x65e3('0x29')](function(_0x744890){if(_0x744890){return db[_0x65e3('0x5b')]['findAndCountAll']({'where':{'id':_[_0x65e3('0x36')](_0x744890,'UserId'),'role':_0x65e3('0x5c')},'attributes':['id',_0x65e3('0x2e'),_0x65e3('0x5d'),_0x65e3('0x5e'),'createdAt']});}})['then'](function(_0x3fbbaa){if(_0x3fbbaa){return{'count':_0x3fbbaa[_0x65e3('0x23')],'rows':_[_0x65e3('0x36')](_0x3fbbaa[_0x65e3('0x5f')],function(_0x173298){return{'membername':_0x173298[_0x65e3('0x2e')],'UserId':_0x173298['id'],'queue_name':_0xfe50cd[_0x65e3('0x2e')],'SmsQueueId':_0xfe50cd['id'],'interface':util[_0x65e3('0x60')](_0x65e3('0x61'),_0x65e3('0x62'),_0x173298[_0x65e3('0x2e')]),'penalty':0x0,'paused':_0x173298[_0x65e3('0x5d')],'createdAt':_0x173298['createdAt'],'updatedAt':_0x173298[_0x65e3('0x5e')]};})};}else{return{'count':0x0,'rows':[]};}})['then'](respondWithFilteredResult(_0x56ffef,_0x161220))['catch'](handleError(_0x56ffef,null));};exports[_0x65e3('0x63')]=function(_0x5e30b7,_0x1caee2,_0x526154){var _0x33ff96={};var _0x4a3ffc={};var _0x291c56;var _0x115f8c;return db['SmsQueue'][_0x65e3('0x57')]({'where':{'id':_0x5e30b7[_0x65e3('0x54')]['id']}})['then'](handleEntityNotFound(_0x1caee2,null))[_0x65e3('0x29')](function(_0x319f10){if(_0x319f10){_0x291c56=_0x319f10;_0x4a3ffc[_0x65e3('0x35')]=_['keys'](db[_0x65e3('0x64')][_0x65e3('0x32')]);_0x4a3ffc[_0x65e3('0x37')]=_[_0x65e3('0x47')](_0x5e30b7[_0x65e3('0x37')]);_0x4a3ffc[_0x65e3('0x38')]=_['intersection'](_0x4a3ffc['model'],_0x4a3ffc['query']);_0x33ff96[_0x65e3('0x3b')]=_[_0x65e3('0x39')](_0x4a3ffc[_0x65e3('0x35')],qs[_0x65e3('0x3a')](_0x5e30b7['query']['fields']));_0x33ff96[_0x65e3('0x3b')]=_0x33ff96[_0x65e3('0x3b')]['length']?_0x33ff96[_0x65e3('0x3b')]:_0x4a3ffc['model'];_0x33ff96[_0x65e3('0x65')]=qs[_0x65e3('0x3e')](_0x5e30b7[_0x65e3('0x37')][_0x65e3('0x3e')]);_0x33ff96[_0x65e3('0x3f')]=qs[_0x65e3('0x38')](_[_0x65e3('0x40')](_0x5e30b7[_0x65e3('0x37')],_0x4a3ffc[_0x65e3('0x38')]));if(_0x5e30b7[_0x65e3('0x37')][_0x65e3('0x41')]){_0x33ff96[_0x65e3('0x3f')]=_[_0x65e3('0x49')](_0x33ff96[_0x65e3('0x3f')],{'$or':_[_0x65e3('0x36')](_0x33ff96[_0x65e3('0x3b')],function(_0x24c566){var _0x9b919a={};_0x9b919a[_0x24c566]={'$like':'%'+_0x5e30b7[_0x65e3('0x37')][_0x65e3('0x41')]+'%'};return _0x9b919a;})});}_0x33ff96=_[_0x65e3('0x49')]({},_0x33ff96,_0x5e30b7['options']);return _0x291c56[_0x65e3('0x63')](_0x33ff96);}})[_0x65e3('0x29')](function(_0x3e0192){if(_0x3e0192){_0x115f8c=_0x3e0192['length'];if(!_0x5e30b7[_0x65e3('0x37')][_0x65e3('0x66')](_0x65e3('0x3d'))){_0x33ff96['limit']=qs['limit'](_0x5e30b7[_0x65e3('0x37')][_0x65e3('0x22')]);_0x33ff96['offset']=qs['offset'](_0x5e30b7[_0x65e3('0x37')]['offset']);}return _0x291c56[_0x65e3('0x63')](_0x33ff96);}})[_0x65e3('0x29')](function(_0x46a035){if(_0x46a035){return _0x46a035?{'count':_0x115f8c,'rows':_0x46a035}:null;}})[_0x65e3('0x29')](respondWithResult(_0x1caee2,null))[_0x65e3('0x46')](handleError(_0x1caee2,null));};exports[_0x65e3('0x67')]=function(_0x34c0e4,_0xadd257,_0x1d9b98){var _0x1ab90f=_0x34c0e4[_0x65e3('0x4c')][_0x65e3('0x68')];return db[_0x65e3('0x64')][_0x65e3('0x5a')]({'where':{'id':_0x1ab90f},'attributes':['id'],'include':[{'model':db['User'],'as':_0x65e3('0x69'),'attributes':['id','name','online',_0x65e3('0x6a'),_0x65e3('0x6b')],'raw':!![]}]})[_0x65e3('0x29')](function(_0x353bcd){if(_0x353bcd){var _0x547eb7=_[_0x65e3('0x6c')](_0x353bcd,function(_0x3065f7){var _0x54d13e=_0x3065f7['get']({'plain':!![]});return _0x54d13e[_0x65e3('0x69')];});return db[_0x65e3('0x31')][_0x65e3('0x4a')]({'where':{'id':_0x34c0e4['params']['id']}})[_0x65e3('0x29')](function(_0x17e49f){return db[_0x65e3('0x6d')]['transaction'](function(_0x174656){return _0x17e49f[_0x65e3('0x67')](_0x1ab90f,{'transaction':_0x174656})[_0x65e3('0x29')](function(){return BPromise[_0x65e3('0x6e')](_0x547eb7,function(_0x366f85){return db[_0x65e3('0x58')][_0x65e3('0x6f')]({'where':{'UserId':_0x366f85['id'],'SmsQueueId':_0x34c0e4[_0x65e3('0x54')]['id']},'transaction':_0x174656});});})[_0x65e3('0x29')](function(){_0x547eb7[_0x65e3('0x70')](function(_0x3089a0){socket[_0x65e3('0x71')](_0x65e3('0x72'),{'UserId':_0x3089a0['id'],'SmsQueueId':_0x17e49f['id']});});});});});}})[_0x65e3('0x29')](respondWithStatusCode(_0xadd257,null))[_0x65e3('0x46')](handleError(_0xadd257,null));};exports[_0x65e3('0x73')]=function(_0x4dc785,_0x286eb5,_0x246a71){return db['Team'][_0x65e3('0x5a')]({'where':{'id':_0x4dc785[_0x65e3('0x37')]['ids']},'attributes':['id'],'include':[{'model':db[_0x65e3('0x5b')],'as':_0x65e3('0x69'),'attributes':['id'],'raw':!![]}]})[_0x65e3('0x29')](handleEntityNotFound(_0x286eb5,null))[_0x65e3('0x29')](function(_0x3c4e46){var _0x3c868b=_['map'](_0x3c4e46,'id');var _0xc0adab=[];var _0x363f1b=[];var _0x409448=squel[_0x65e3('0x74')]();_0x409448[_0x65e3('0x75')](_0x65e3('0x76'))[_0x65e3('0x77')]('team_has_sms_queues','tq')[_0x65e3('0x78')]('user_has_teams','ut',_0x65e3('0x79'))['where'](_0x65e3('0x7a'),_0x4dc785['params']['id']);for(var _0x4734a6=0x0;_0x4734a6<_0x3c4e46['length'];_0x4734a6+=0x1){let _0x5844a8=_0x3c4e46[_0x4734a6];for(var _0x4843e0=0x0;_0x4843e0<_0x5844a8['Agents'][_0x65e3('0x3c')];_0x4843e0+=0x1){let _0x1569aa=_0x5844a8['Agents'][_0x4843e0];var _0x3a84b0=_0x409448[_0x65e3('0x7b')]();_0x3a84b0[_0x65e3('0x3f')](_0x65e3('0x7c'),_0x1569aa['id']);_0x363f1b[_0x65e3('0x7d')](db[_0x65e3('0x6d')][_0x65e3('0x37')](_0x3a84b0[_0x65e3('0x7e')](),{'type':db[_0x65e3('0x6d')][_0x65e3('0x7f')]['SELECT']})[_0x65e3('0x29')](function(_0x47de78){if(_0x47de78[_0x65e3('0x3c')]===0x1){return _0x1569aa['id'];}else{var _0x4e9c84=_[_0x65e3('0x80')](_[_0x65e3('0x36')](_0x47de78,_0x65e3('0x81')),function(_0x102ab0){return _[_0x65e3('0x82')](_0x3c868b,_0x102ab0);});if(_0x4e9c84){return _0x1569aa['id'];}}}));}}return BPromise['all'](_0x363f1b)[_0x65e3('0x29')](function(_0x4ac330){_0xc0adab=_(_0xc0adab)[_0x65e3('0x83')](_0x4ac330)['compact']()[_0x65e3('0x84')]();return db[_0x65e3('0x31')][_0x65e3('0x4a')]({'where':{'id':_0x4dc785[_0x65e3('0x54')]['id']}})[_0x65e3('0x29')](function(_0x377dac){return db['sequelize']['transaction'](function(_0x475fbb){return _0x377dac[_0x65e3('0x73')](_0x4dc785[_0x65e3('0x37')]['ids'],{'transaction':_0x475fbb})[_0x65e3('0x29')](function(){if(!_[_0x65e3('0x85')](_0xc0adab)){return _0x377dac[_0x65e3('0x86')](_0xc0adab,{'transaction':_0x475fbb});}})[_0x65e3('0x29')](function(){_0xc0adab[_0x65e3('0x70')](function(_0x24f877){socket[_0x65e3('0x71')](_0x65e3('0x87'),{'UserId':_0x24f877,'SmsQueueId':_0x377dac['id']});});});});});});})[_0x65e3('0x29')](respondWithStatusCode(_0x286eb5,null))[_0x65e3('0x46')](handleError(_0x286eb5,null));};exports[_0x65e3('0x88')]=function(_0x5f28e3,_0x4eb6b2,_0x195c0f){return db[_0x65e3('0x31')][_0x65e3('0x4a')]({'where':{'id':_0x5f28e3[_0x65e3('0x54')]['id']}})[_0x65e3('0x29')](handleEntityNotFound(_0x4eb6b2,null))[_0x65e3('0x29')](function(_0x4b1190){if(_0x4b1190){return _0x4b1190[_0x65e3('0x88')](_0x5f28e3[_0x65e3('0x4c')][_0x65e3('0x68')],_[_0x65e3('0x89')](_0x5f28e3[_0x65e3('0x4c')],['ids','id'])||{})[_0x65e3('0x8a')](function(_0x5399a3){for(var _0x4bae17=0x0;_0x4bae17<_0x5f28e3['body'][_0x65e3('0x68')][_0x65e3('0x3c')];_0x4bae17+=0x1){socket[_0x65e3('0x71')]('userSmsQueue:save',{'UserId':Number(_0x5f28e3[_0x65e3('0x4c')][_0x65e3('0x68')][_0x4bae17]),'SmsQueueId':Number(_0x5f28e3[_0x65e3('0x54')]['id'])});}return _0x5399a3;});}})[_0x65e3('0x29')](respondWithResult(_0x4eb6b2,null))[_0x65e3('0x46')](handleError(_0x4eb6b2,null));};exports[_0x65e3('0x86')]=function(_0x521711,_0x9e2f51,_0x182d50){return db[_0x65e3('0x31')]['find']({'where':{'id':_0x521711[_0x65e3('0x54')]['id']}})[_0x65e3('0x29')](handleEntityNotFound(_0x9e2f51,null))['then'](function(_0x584e9b){if(_0x584e9b){return _0x584e9b[_0x65e3('0x86')](_0x521711[_0x65e3('0x37')]['ids'])[_0x65e3('0x29')](function(){if(_['isArray'](_0x521711[_0x65e3('0x37')][_0x65e3('0x68')])){for(var _0x286b59=0x0;_0x286b59<_0x521711['query'][_0x65e3('0x68')][_0x65e3('0x3c')];_0x286b59+=0x1){socket[_0x65e3('0x71')]('userSmsQueue:remove',{'UserId':Number(_0x521711[_0x65e3('0x37')]['ids'][_0x286b59]),'SmsQueueId':Number(_0x521711[_0x65e3('0x54')]['id'])});}}else{socket[_0x65e3('0x71')](_0x65e3('0x87'),{'UserId':Number(_0x521711[_0x65e3('0x37')]['ids']),'SmsQueueId':Number(_0x521711[_0x65e3('0x54')]['id'])});}});}})[_0x65e3('0x29')](respondWithStatusCode(_0x9e2f51,null))[_0x65e3('0x46')](handleError(_0x9e2f51,null));};exports[_0x65e3('0x8b')]=function(_0x290a90,_0x5e0e32,_0x1046d8){var _0x2da6f1={};var _0x75cccd={};var _0x11a510;var _0x55b1ed;return db[_0x65e3('0x31')][_0x65e3('0x57')]({'where':{'id':_0x290a90[_0x65e3('0x54')]['id']}})['then'](handleEntityNotFound(_0x5e0e32,null))[_0x65e3('0x29')](function(_0x1679c0){if(_0x1679c0){_0x11a510=_0x1679c0;_0x75cccd[_0x65e3('0x35')]=_[_0x65e3('0x47')](db[_0x65e3('0x5b')][_0x65e3('0x32')]);_0x75cccd[_0x65e3('0x37')]=_[_0x65e3('0x47')](_0x290a90[_0x65e3('0x37')]);_0x75cccd[_0x65e3('0x38')]=_[_0x65e3('0x39')](_0x75cccd[_0x65e3('0x35')],_0x75cccd['query']);_0x2da6f1[_0x65e3('0x3b')]=_[_0x65e3('0x39')](_0x75cccd[_0x65e3('0x35')],qs[_0x65e3('0x3a')](_0x290a90['query'][_0x65e3('0x3a')]));_0x2da6f1['attributes']=_0x2da6f1['attributes'][_0x65e3('0x3c')]?_0x2da6f1[_0x65e3('0x3b')]:_0x75cccd[_0x65e3('0x35')];_0x2da6f1[_0x65e3('0x65')]=qs['sort'](_0x290a90[_0x65e3('0x37')][_0x65e3('0x3e')]);_0x2da6f1['where']=qs['filters'](_['pick'](_0x290a90[_0x65e3('0x37')],_0x75cccd[_0x65e3('0x38')]));if(_0x290a90[_0x65e3('0x37')][_0x65e3('0x41')]){_0x2da6f1[_0x65e3('0x3f')]=_[_0x65e3('0x49')](_0x2da6f1[_0x65e3('0x3f')],{'$or':_[_0x65e3('0x36')](_0x2da6f1[_0x65e3('0x3b')],function(_0x4608ad){var _0x504c1a={};_0x504c1a[_0x4608ad]={'$like':'%'+_0x290a90['query'][_0x65e3('0x41')]+'%'};return _0x504c1a;})});}_0x2da6f1=_[_0x65e3('0x49')]({},_0x2da6f1,_0x290a90[_0x65e3('0x44')]);return _0x11a510[_0x65e3('0x8b')](_0x2da6f1);}})['then'](function(_0x268c66){if(_0x268c66){_0x55b1ed=_0x268c66[_0x65e3('0x3c')];if(!_0x290a90[_0x65e3('0x37')][_0x65e3('0x66')](_0x65e3('0x3d'))){_0x2da6f1['limit']=qs[_0x65e3('0x22')](_0x290a90[_0x65e3('0x37')][_0x65e3('0x22')]);_0x2da6f1[_0x65e3('0x20')]=qs['offset'](_0x290a90[_0x65e3('0x37')][_0x65e3('0x20')]);}return _0x11a510[_0x65e3('0x8b')](_0x2da6f1);}})['then'](function(_0x2868cf){if(_0x2868cf){return _0x2868cf?{'count':_0x55b1ed,'rows':_0x2868cf}:null;}})[_0x65e3('0x29')](respondWithResult(_0x5e0e32,null))[_0x65e3('0x46')](handleError(_0x5e0e32,null));};
\ No newline at end of file
+var _0x9e9f=['fields','nolimit','sort','pick','filter','where','merge','map','type','VIRTUAL','options','SmsQueue','count','includeAll','include','findAll','rows','catch','show','params','rawAttributes','length','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','find','userProfileId','autoAssociation','UserProfileResource','error','update','describe','getMembers','UserSmsQueue','hasOwnProperty','order','SmsQueueId','User','findAndCountAll','UserId','agent','smsPause','updatedAt','getTeams','Team','addTeams','Agents','online','voicePause','flatMap','transaction','each','findOrCreate','forEach','emit','removeTeams','ids','field','team_has_sms_queues','join','clone','push','toString','sequelize','QueryTypes','SELECT','every','TeamId','all','union','compact','isEmpty','addAgents','omit','removeAgents','isArray','userSmsQueue:remove','getAgents','eml-format','rimraf','zip-dir','moment','bluebird','util','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/license/util','defaults','localhost','socket.io-emitter','redis','register','status','offset','limit','undefined','set','apply','reject','save','destroy','then','get','SmsQueues','stack','name','index','key','model','query','keys','filters','intersection','attributes'];(function(_0x173441,_0x26b0d9){var _0x2423a8=function(_0x4d96c2){while(--_0x4d96c2){_0x173441['push'](_0x173441['shift']());}};_0x2423a8(++_0x26b0d9);}(_0x9e9f,0x1cd));var _0xf9e9=function(_0x421eeb,_0x3d3e3e){_0x421eeb=_0x421eeb-0x0;var _0x2c7371=_0x9e9f[_0x421eeb];return _0x2c7371;};'use strict';var emlformat=require(_0xf9e9('0x0'));var rimraf=require(_0xf9e9('0x1'));var zipdir=require(_0xf9e9('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0xf9e9('0x3'));var BPromise=require(_0xf9e9('0x4'));var Mustache=require('mustache');var util=require(_0xf9e9('0x5'));var path=require('path');var sox=require('sox');var csv=require(_0xf9e9('0x6'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xf9e9('0x7'));var _=require(_0xf9e9('0x8'));var squel=require(_0xf9e9('0x9'));var crypto=require(_0xf9e9('0xa'));var jsforce=require(_0xf9e9('0xb'));var deskjs=require(_0xf9e9('0xc'));var toCsv=require(_0xf9e9('0x6'));var querystring=require(_0xf9e9('0xd'));var Papa=require(_0xf9e9('0xe'));var Redis=require('ioredis');var authService=require(_0xf9e9('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0xf9e9('0x10'));var hardwareService=require(_0xf9e9('0x11'));var logger=require('../../config/logger')('api');var utils=require(_0xf9e9('0x12'));var config=require('../../config/environment');var licenseUtil=require(_0xf9e9('0x13'));var db=require('../../mysqldb')['db'];config['redis']=_[_0xf9e9('0x14')](config['redis'],{'host':_0xf9e9('0x15'),'port':0x18eb});var socket=require(_0xf9e9('0x16'))(new Redis(config[_0xf9e9('0x17')]));require('./smsQueue.socket')[_0xf9e9('0x18')](socket);function respondWithStatusCode(_0x4d510f,_0x2b5657){_0x2b5657=_0x2b5657||0xcc;return function(_0x2d780d){if(_0x2d780d){return _0x4d510f['sendStatus'](_0x2b5657);}return _0x4d510f[_0xf9e9('0x19')](_0x2b5657)['end']();};}function respondWithResult(_0x411612,_0x1f3bbe){_0x1f3bbe=_0x1f3bbe||0xc8;return function(_0x463123){if(_0x463123){return _0x411612['status'](_0x1f3bbe)['json'](_0x463123);}};}function respondWithFilteredResult(_0x3dbf5d,_0x350d5d){return function(_0x47fd6f){if(_0x47fd6f){var _0x333019=typeof _0x350d5d[_0xf9e9('0x1a')]==='undefined'&&typeof _0x350d5d[_0xf9e9('0x1b')]===_0xf9e9('0x1c');var _0xba4f80=_0x47fd6f['count'];var _0x3f3a5d=_0x333019?0x0:_0x350d5d['offset'];var _0xcb89eb=_0x333019?_0x47fd6f['count']:_0x350d5d[_0xf9e9('0x1a')]+_0x350d5d[_0xf9e9('0x1b')];var _0x4cfd03;if(_0xcb89eb>=_0xba4f80){_0xcb89eb=_0xba4f80;_0x4cfd03=0xc8;}else{_0x4cfd03=0xce;}_0x3dbf5d[_0xf9e9('0x19')](_0x4cfd03);return _0x3dbf5d[_0xf9e9('0x1d')]('Content-Range',_0x3f3a5d+'-'+_0xcb89eb+'/'+_0xba4f80)['json'](_0x47fd6f);}return null;};}function patchUpdates(_0x523d76){return function(_0x54e319){try{jsonpatch[_0xf9e9('0x1e')](_0x54e319,_0x523d76,!![]);}catch(_0x1d9c0c){return BPromise[_0xf9e9('0x1f')](_0x1d9c0c);}return _0x54e319[_0xf9e9('0x20')]();};}function saveUpdates(_0x5d8941,_0x469100){return function(_0x39b945){if(_0x39b945){return _0x39b945['update'](_0x5d8941)['then'](function(_0x9c4998){return _0x9c4998;});}return null;};}function removeEntity(_0xecd1f4,_0x41c5ed){return function(_0x56738f){if(_0x56738f){return _0x56738f[_0xf9e9('0x21')]()[_0xf9e9('0x22')](function(){var _0x3f5f97=_0x56738f[_0xf9e9('0x23')]({'plain':!![]});var _0x19a7d3=_0xf9e9('0x24');return db['UserProfileResource'][_0xf9e9('0x21')]({'where':{'type':_0x19a7d3,'resourceId':_0x3f5f97['id']}})['then'](function(){return _0x56738f;});})[_0xf9e9('0x22')](function(){_0xecd1f4[_0xf9e9('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x2c3a16,_0x7450f6){return function(_0x45fcd8){if(!_0x45fcd8){_0x2c3a16['sendStatus'](0x194);}return _0x45fcd8;};}function handleError(_0x1e0bbc,_0x540b44){_0x540b44=_0x540b44||0x1f4;return function(_0x351926){logger['error'](_0x351926[_0xf9e9('0x25')]);if(_0x351926[_0xf9e9('0x26')]){delete _0x351926['name'];}_0x1e0bbc['status'](_0x540b44)['send'](_0x351926);};}exports[_0xf9e9('0x27')]=function(_0x135055,_0x267814){var _0x24befd={},_0x2e380a={},_0xeb93c8={'count':0x0,'rows':[]};var _0x38db0e=_['map'](db['SmsQueue']['rawAttributes'],function(_0x11d579){return{'name':_0x11d579['fieldName'],'type':_0x11d579['type'][_0xf9e9('0x28')]};});_0x2e380a[_0xf9e9('0x29')]=_['map'](_0x38db0e,_0xf9e9('0x26'));_0x2e380a[_0xf9e9('0x2a')]=_[_0xf9e9('0x2b')](_0x135055['query']);_0x2e380a[_0xf9e9('0x2c')]=_[_0xf9e9('0x2d')](_0x2e380a[_0xf9e9('0x29')],_0x2e380a[_0xf9e9('0x2a')]);_0x24befd[_0xf9e9('0x2e')]=_['intersection'](_0x2e380a[_0xf9e9('0x29')],qs['fields'](_0x135055[_0xf9e9('0x2a')][_0xf9e9('0x2f')]));_0x24befd[_0xf9e9('0x2e')]=_0x24befd[_0xf9e9('0x2e')]['length']?_0x24befd[_0xf9e9('0x2e')]:_0x2e380a[_0xf9e9('0x29')];if(!_0x135055[_0xf9e9('0x2a')]['hasOwnProperty'](_0xf9e9('0x30'))){_0x24befd[_0xf9e9('0x1b')]=qs[_0xf9e9('0x1b')](_0x135055[_0xf9e9('0x2a')][_0xf9e9('0x1b')]);_0x24befd[_0xf9e9('0x1a')]=qs[_0xf9e9('0x1a')](_0x135055['query'][_0xf9e9('0x1a')]);}_0x24befd['order']=qs[_0xf9e9('0x31')](_0x135055[_0xf9e9('0x2a')][_0xf9e9('0x31')]);_0x24befd['where']=qs[_0xf9e9('0x2c')](_[_0xf9e9('0x32')](_0x135055[_0xf9e9('0x2a')],_0x2e380a[_0xf9e9('0x2c')]),_0x38db0e);if(_0x135055[_0xf9e9('0x2a')][_0xf9e9('0x33')]){_0x24befd[_0xf9e9('0x34')]=_[_0xf9e9('0x35')](_0x24befd['where'],{'$or':_[_0xf9e9('0x36')](_0x38db0e,function(_0x26072e){if(_0x26072e[_0xf9e9('0x37')]!==_0xf9e9('0x38')){var _0x1d6584={};_0x1d6584[_0x26072e['name']]={'$like':'%'+_0x135055[_0xf9e9('0x2a')][_0xf9e9('0x33')]+'%'};return _0x1d6584;}})});}_0x24befd=_['merge']({},_0x24befd,_0x135055[_0xf9e9('0x39')]);var _0x2bdc87={'where':_0x24befd[_0xf9e9('0x34')]};return db[_0xf9e9('0x3a')]['count'](_0x2bdc87)[_0xf9e9('0x22')](function(_0x5762d3){_0xeb93c8[_0xf9e9('0x3b')]=_0x5762d3;if(_0x135055[_0xf9e9('0x2a')][_0xf9e9('0x3c')]){_0x24befd[_0xf9e9('0x3d')]=[{'all':!![]}];}return db[_0xf9e9('0x3a')][_0xf9e9('0x3e')](_0x24befd);})[_0xf9e9('0x22')](function(_0x2759a9){_0xeb93c8[_0xf9e9('0x3f')]=_0x2759a9;return _0xeb93c8;})['then'](respondWithFilteredResult(_0x267814,_0x24befd))[_0xf9e9('0x40')](handleError(_0x267814,null));};exports[_0xf9e9('0x41')]=function(_0x521b38,_0xce55f6){var _0x2beedf={'raw':!![],'where':{'id':_0x521b38[_0xf9e9('0x42')]['id']}},_0x22fa10={};_0x22fa10['model']=_[_0xf9e9('0x2b')](db[_0xf9e9('0x3a')][_0xf9e9('0x43')]);_0x22fa10[_0xf9e9('0x2a')]=_[_0xf9e9('0x2b')](_0x521b38[_0xf9e9('0x2a')]);_0x22fa10[_0xf9e9('0x2c')]=_[_0xf9e9('0x2d')](_0x22fa10[_0xf9e9('0x29')],_0x22fa10[_0xf9e9('0x2a')]);_0x2beedf['attributes']=_[_0xf9e9('0x2d')](_0x22fa10['model'],qs['fields'](_0x521b38[_0xf9e9('0x2a')][_0xf9e9('0x2f')]));_0x2beedf[_0xf9e9('0x2e')]=_0x2beedf[_0xf9e9('0x2e')][_0xf9e9('0x44')]?_0x2beedf[_0xf9e9('0x2e')]:_0x22fa10[_0xf9e9('0x29')];if(_0x521b38[_0xf9e9('0x2a')][_0xf9e9('0x3c')]){_0x2beedf[_0xf9e9('0x3d')]=[{'all':!![]}];}_0x2beedf=_['merge']({},_0x2beedf,_0x521b38[_0xf9e9('0x39')]);return db['SmsQueue']['find'](_0x2beedf)[_0xf9e9('0x22')](handleEntityNotFound(_0xce55f6,null))[_0xf9e9('0x22')](respondWithResult(_0xce55f6,null))[_0xf9e9('0x40')](handleError(_0xce55f6,null));};exports[_0xf9e9('0x45')]=function(_0x39321c,_0xc0d3a6){return db['SmsQueue'][_0xf9e9('0x45')](_0x39321c[_0xf9e9('0x46')],{})[_0xf9e9('0x22')](function(_0x2a43df){var _0x49e1f2=_0x39321c[_0xf9e9('0x47')][_0xf9e9('0x23')]({'plain':!![]});if(!_0x49e1f2)throw new Error(_0xf9e9('0x48'));if(_0x49e1f2['role']===_0xf9e9('0x47')){var _0x5161e6=_0x2a43df[_0xf9e9('0x23')]({'plain':!![]});var _0x2f6bb0='SmsQueues';return db[_0xf9e9('0x49')][_0xf9e9('0x4a')]({'where':{'name':_0x2f6bb0,'userProfileId':_0x49e1f2[_0xf9e9('0x4b')]},'raw':!![]})[_0xf9e9('0x22')](function(_0x2ebae){if(_0x2ebae&&_0x2ebae[_0xf9e9('0x4c')]===0x0){return db[_0xf9e9('0x4d')][_0xf9e9('0x45')]({'name':_0x5161e6[_0xf9e9('0x26')],'resourceId':_0x5161e6['id'],'type':_0x2ebae[_0xf9e9('0x26')],'sectionId':_0x2ebae['id']},{})[_0xf9e9('0x22')](function(){return _0x2a43df;});}else{return _0x2a43df;}})[_0xf9e9('0x40')](function(_0x44dc39){logger[_0xf9e9('0x4e')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x44dc39);throw _0x44dc39;});}return _0x2a43df;})[_0xf9e9('0x22')](respondWithResult(_0xc0d3a6,0xc9))[_0xf9e9('0x40')](handleError(_0xc0d3a6,null));};exports[_0xf9e9('0x4f')]=function(_0x416adb,_0x1d4575){if(_0x416adb['body']['id']){delete _0x416adb[_0xf9e9('0x46')]['id'];}return db['SmsQueue']['find']({'where':{'id':_0x416adb[_0xf9e9('0x42')]['id']}})[_0xf9e9('0x22')](handleEntityNotFound(_0x1d4575,null))[_0xf9e9('0x22')](saveUpdates(_0x416adb['body'],null))[_0xf9e9('0x22')](respondWithResult(_0x1d4575,null))[_0xf9e9('0x40')](handleError(_0x1d4575,null));};exports[_0xf9e9('0x21')]=function(_0x561706,_0x167836){return db[_0xf9e9('0x3a')][_0xf9e9('0x4a')]({'where':{'id':_0x561706[_0xf9e9('0x42')]['id']}})[_0xf9e9('0x22')](handleEntityNotFound(_0x167836,null))[_0xf9e9('0x22')](removeEntity(_0x167836,null))[_0xf9e9('0x40')](handleError(_0x167836,null));};exports[_0xf9e9('0x50')]=function(_0x438c83,_0x96f83b){return db['SmsQueue'][_0xf9e9('0x50')]()[_0xf9e9('0x22')](respondWithResult(_0x96f83b,null))[_0xf9e9('0x40')](handleError(_0x96f83b,null));};exports[_0xf9e9('0x51')]=function(_0x56f590,_0x511b05,_0x2ce2b6){var _0x25cd35={'raw':!![],'where':{}},_0x24973f={},_0x2c8d00;return db[_0xf9e9('0x3a')]['findOne']({'where':{'id':_0x56f590['params']['id']}})[_0xf9e9('0x22')](handleEntityNotFound(_0x511b05,null))[_0xf9e9('0x22')](function(_0x5cfc7f){if(_0x5cfc7f){_0x2c8d00=_0x5cfc7f[_0xf9e9('0x23')]({'plain':!![]});_0x24973f[_0xf9e9('0x29')]=_['keys'](db[_0xf9e9('0x52')][_0xf9e9('0x43')]);_0x24973f[_0xf9e9('0x2a')]=_[_0xf9e9('0x2b')](_0x56f590[_0xf9e9('0x2a')]);_0x24973f[_0xf9e9('0x2c')]=_[_0xf9e9('0x2d')](_0x24973f[_0xf9e9('0x29')],_0x24973f['query']);_0x25cd35['attributes']=_[_0xf9e9('0x2d')](_0x24973f[_0xf9e9('0x29')],qs['fields'](_0x56f590[_0xf9e9('0x2a')][_0xf9e9('0x2f')]));_0x25cd35[_0xf9e9('0x2e')]=_0x25cd35['attributes'][_0xf9e9('0x44')]?_0x25cd35[_0xf9e9('0x2e')]:_0x24973f[_0xf9e9('0x29')];if(!_0x56f590[_0xf9e9('0x2a')][_0xf9e9('0x53')](_0xf9e9('0x30'))){_0x25cd35[_0xf9e9('0x1b')]=qs[_0xf9e9('0x1b')](_0x56f590[_0xf9e9('0x2a')]['limit']);_0x25cd35[_0xf9e9('0x1a')]=qs[_0xf9e9('0x1a')](_0x56f590[_0xf9e9('0x2a')][_0xf9e9('0x1a')]);}_0x25cd35[_0xf9e9('0x54')]=qs[_0xf9e9('0x31')](_0x56f590[_0xf9e9('0x2a')][_0xf9e9('0x31')]);_0x25cd35['where']=qs['filters'](_[_0xf9e9('0x32')](_0x56f590[_0xf9e9('0x2a')],_0x24973f[_0xf9e9('0x2c')]));_0x25cd35[_0xf9e9('0x34')][_0xf9e9('0x55')]=_0x5cfc7f['id'];if(_0x56f590[_0xf9e9('0x2a')][_0xf9e9('0x33')]){_0x25cd35['where']=_[_0xf9e9('0x35')](_0x25cd35['where'],{'$or':_['map'](_0x25cd35[_0xf9e9('0x2e')],function(_0xd1da13){var _0x4fcf13={};_0x4fcf13[_0xd1da13]={'$like':'%'+_0x56f590[_0xf9e9('0x2a')]['filter']+'%'};return _0x4fcf13;})});}_0x25cd35=_['merge']({},_0x25cd35,_0x56f590[_0xf9e9('0x39')]);return db[_0xf9e9('0x52')]['findAll'](_0x25cd35);}})['then'](function(_0x27ccbb){if(_0x27ccbb){return db[_0xf9e9('0x56')][_0xf9e9('0x57')]({'where':{'id':_['map'](_0x27ccbb,_0xf9e9('0x58')),'role':_0xf9e9('0x59')},'attributes':['id','name',_0xf9e9('0x5a'),_0xf9e9('0x5b'),'createdAt']});}})[_0xf9e9('0x22')](function(_0x42e442){if(_0x42e442){return{'count':_0x42e442[_0xf9e9('0x3b')],'rows':_[_0xf9e9('0x36')](_0x42e442[_0xf9e9('0x3f')],function(_0x42aeb0){return{'membername':_0x42aeb0[_0xf9e9('0x26')],'UserId':_0x42aeb0['id'],'queue_name':_0x2c8d00['name'],'SmsQueueId':_0x2c8d00['id'],'interface':util['format']('%s/%s','SIP',_0x42aeb0[_0xf9e9('0x26')]),'penalty':0x0,'paused':_0x42aeb0[_0xf9e9('0x5a')],'createdAt':_0x42aeb0['createdAt'],'updatedAt':_0x42aeb0[_0xf9e9('0x5b')]};})};}else{return{'count':0x0,'rows':[]};}})['then'](respondWithFilteredResult(_0x511b05,_0x25cd35))[_0xf9e9('0x40')](handleError(_0x511b05,null));};exports[_0xf9e9('0x5c')]=function(_0x21acbf,_0x2f9170,_0x9f5b27){var _0x1eee4f={};var _0x406542={};var _0x410d0f;var _0x1f74ad;return db[_0xf9e9('0x3a')]['findOne']({'where':{'id':_0x21acbf['params']['id']}})[_0xf9e9('0x22')](handleEntityNotFound(_0x2f9170,null))[_0xf9e9('0x22')](function(_0x48b7f1){if(_0x48b7f1){_0x410d0f=_0x48b7f1;_0x406542[_0xf9e9('0x29')]=_[_0xf9e9('0x2b')](db[_0xf9e9('0x5d')][_0xf9e9('0x43')]);_0x406542[_0xf9e9('0x2a')]=_['keys'](_0x21acbf[_0xf9e9('0x2a')]);_0x406542[_0xf9e9('0x2c')]=_['intersection'](_0x406542[_0xf9e9('0x29')],_0x406542[_0xf9e9('0x2a')]);_0x1eee4f[_0xf9e9('0x2e')]=_[_0xf9e9('0x2d')](_0x406542[_0xf9e9('0x29')],qs['fields'](_0x21acbf[_0xf9e9('0x2a')][_0xf9e9('0x2f')]));_0x1eee4f[_0xf9e9('0x2e')]=_0x1eee4f[_0xf9e9('0x2e')]['length']?_0x1eee4f[_0xf9e9('0x2e')]:_0x406542['model'];_0x1eee4f[_0xf9e9('0x54')]=qs[_0xf9e9('0x31')](_0x21acbf[_0xf9e9('0x2a')][_0xf9e9('0x31')]);_0x1eee4f[_0xf9e9('0x34')]=qs['filters'](_['pick'](_0x21acbf[_0xf9e9('0x2a')],_0x406542[_0xf9e9('0x2c')]));if(_0x21acbf['query'][_0xf9e9('0x33')]){_0x1eee4f[_0xf9e9('0x34')]=_['merge'](_0x1eee4f[_0xf9e9('0x34')],{'$or':_[_0xf9e9('0x36')](_0x1eee4f[_0xf9e9('0x2e')],function(_0x50cbbb){var _0x2e9d7e={};_0x2e9d7e[_0x50cbbb]={'$like':'%'+_0x21acbf[_0xf9e9('0x2a')]['filter']+'%'};return _0x2e9d7e;})});}_0x1eee4f=_['merge']({},_0x1eee4f,_0x21acbf[_0xf9e9('0x39')]);return _0x410d0f[_0xf9e9('0x5c')](_0x1eee4f);}})['then'](function(_0x109cfb){if(_0x109cfb){_0x1f74ad=_0x109cfb[_0xf9e9('0x44')];if(!_0x21acbf['query'][_0xf9e9('0x53')](_0xf9e9('0x30'))){_0x1eee4f[_0xf9e9('0x1b')]=qs[_0xf9e9('0x1b')](_0x21acbf['query']['limit']);_0x1eee4f[_0xf9e9('0x1a')]=qs[_0xf9e9('0x1a')](_0x21acbf[_0xf9e9('0x2a')][_0xf9e9('0x1a')]);}return _0x410d0f[_0xf9e9('0x5c')](_0x1eee4f);}})[_0xf9e9('0x22')](function(_0x37e719){if(_0x37e719){return _0x37e719?{'count':_0x1f74ad,'rows':_0x37e719}:null;}})[_0xf9e9('0x22')](respondWithResult(_0x2f9170,null))[_0xf9e9('0x40')](handleError(_0x2f9170,null));};exports[_0xf9e9('0x5e')]=function(_0x199a9e,_0x391d5,_0x2798a9){var _0x48421d=_0x199a9e[_0xf9e9('0x46')]['ids'];return db[_0xf9e9('0x5d')]['findAll']({'where':{'id':_0x48421d},'attributes':['id'],'include':[{'model':db[_0xf9e9('0x56')],'as':_0xf9e9('0x5f'),'attributes':['id',_0xf9e9('0x26'),_0xf9e9('0x60'),_0xf9e9('0x61'),'interface'],'raw':!![]}]})[_0xf9e9('0x22')](function(_0x2fd540){if(_0x2fd540){var _0xfc1430=_[_0xf9e9('0x62')](_0x2fd540,function(_0x2a1b89){var _0xc7e56c=_0x2a1b89[_0xf9e9('0x23')]({'plain':!![]});return _0xc7e56c[_0xf9e9('0x5f')];});return db[_0xf9e9('0x3a')]['find']({'where':{'id':_0x199a9e[_0xf9e9('0x42')]['id']}})[_0xf9e9('0x22')](function(_0x543058){return db['sequelize'][_0xf9e9('0x63')](function(_0x18121f){return _0x543058[_0xf9e9('0x5e')](_0x48421d,{'transaction':_0x18121f})[_0xf9e9('0x22')](function(){return BPromise[_0xf9e9('0x64')](_0xfc1430,function(_0x34cb75){return db[_0xf9e9('0x52')][_0xf9e9('0x65')]({'where':{'UserId':_0x34cb75['id'],'SmsQueueId':_0x199a9e[_0xf9e9('0x42')]['id']},'transaction':_0x18121f});});})[_0xf9e9('0x22')](function(){_0xfc1430[_0xf9e9('0x66')](function(_0x30534f){socket[_0xf9e9('0x67')]('userSmsQueue:save',{'UserId':_0x30534f['id'],'SmsQueueId':_0x543058['id']});});});});});}})[_0xf9e9('0x22')](respondWithStatusCode(_0x391d5,null))[_0xf9e9('0x40')](handleError(_0x391d5,null));};exports[_0xf9e9('0x68')]=function(_0x1ff44c,_0x8ba7cb,_0x3d7a66){return db['Team'][_0xf9e9('0x3e')]({'where':{'id':_0x1ff44c[_0xf9e9('0x2a')][_0xf9e9('0x69')]},'attributes':['id'],'include':[{'model':db[_0xf9e9('0x56')],'as':_0xf9e9('0x5f'),'attributes':['id'],'raw':!![]}]})[_0xf9e9('0x22')](handleEntityNotFound(_0x8ba7cb,null))[_0xf9e9('0x22')](function(_0x4a101f){var _0x13c1a7=_[_0xf9e9('0x36')](_0x4a101f,'id');var _0x3087d5=[];var _0x55e280=[];var _0x524c91=squel['select']();_0x524c91[_0xf9e9('0x6a')]('tq.TeamId')['from'](_0xf9e9('0x6b'),'tq')[_0xf9e9('0x6c')]('user_has_teams','ut','ut.TeamId\x20=\x20tq.TeamId')[_0xf9e9('0x34')]('SmsQueueId\x20=\x20?',_0x1ff44c[_0xf9e9('0x42')]['id']);for(var _0x359f14=0x0;_0x359f14<_0x4a101f[_0xf9e9('0x44')];_0x359f14+=0x1){let _0x56685c=_0x4a101f[_0x359f14];for(var _0x4d8be2=0x0;_0x4d8be2<_0x56685c[_0xf9e9('0x5f')][_0xf9e9('0x44')];_0x4d8be2+=0x1){let _0x3c4032=_0x56685c[_0xf9e9('0x5f')][_0x4d8be2];var _0x1d7f06=_0x524c91[_0xf9e9('0x6d')]();_0x1d7f06[_0xf9e9('0x34')]('ut.UserId\x20=\x20?',_0x3c4032['id']);_0x55e280[_0xf9e9('0x6e')](db['sequelize']['query'](_0x1d7f06[_0xf9e9('0x6f')](),{'type':db[_0xf9e9('0x70')][_0xf9e9('0x71')][_0xf9e9('0x72')]})['then'](function(_0x4a7434){if(_0x4a7434[_0xf9e9('0x44')]===0x1){return _0x3c4032['id'];}else{var _0x453223=_[_0xf9e9('0x73')](_[_0xf9e9('0x36')](_0x4a7434,_0xf9e9('0x74')),function(_0x5a02da){return _['includes'](_0x13c1a7,_0x5a02da);});if(_0x453223){return _0x3c4032['id'];}}}));}}return BPromise[_0xf9e9('0x75')](_0x55e280)[_0xf9e9('0x22')](function(_0x5ac958){_0x3087d5=_(_0x3087d5)[_0xf9e9('0x76')](_0x5ac958)[_0xf9e9('0x77')]()['value']();return db[_0xf9e9('0x3a')][_0xf9e9('0x4a')]({'where':{'id':_0x1ff44c[_0xf9e9('0x42')]['id']}})[_0xf9e9('0x22')](function(_0x4764ba){return db[_0xf9e9('0x70')][_0xf9e9('0x63')](function(_0x255e02){return _0x4764ba[_0xf9e9('0x68')](_0x1ff44c[_0xf9e9('0x2a')]['ids'],{'transaction':_0x255e02})[_0xf9e9('0x22')](function(){if(!_[_0xf9e9('0x78')](_0x3087d5)){return _0x4764ba['removeAgents'](_0x3087d5,{'transaction':_0x255e02});}})[_0xf9e9('0x22')](function(){_0x3087d5['forEach'](function(_0x5156fe){socket[_0xf9e9('0x67')]('userSmsQueue:remove',{'UserId':_0x5156fe,'SmsQueueId':_0x4764ba['id']});});});});});});})['then'](respondWithStatusCode(_0x8ba7cb,null))['catch'](handleError(_0x8ba7cb,null));};exports[_0xf9e9('0x79')]=function(_0x44f86b,_0x3d5895,_0x154ee4){return db[_0xf9e9('0x3a')][_0xf9e9('0x4a')]({'where':{'id':_0x44f86b[_0xf9e9('0x42')]['id']}})[_0xf9e9('0x22')](handleEntityNotFound(_0x3d5895,null))[_0xf9e9('0x22')](function(_0x58eab8){if(_0x58eab8){return _0x58eab8['addAgents'](_0x44f86b[_0xf9e9('0x46')][_0xf9e9('0x69')],_[_0xf9e9('0x7a')](_0x44f86b['body'],[_0xf9e9('0x69'),'id'])||{})['spread'](function(_0x4fe9b8){for(var _0x474aca=0x0;_0x474aca<_0x44f86b[_0xf9e9('0x46')]['ids']['length'];_0x474aca+=0x1){socket[_0xf9e9('0x67')]('userSmsQueue:save',{'UserId':Number(_0x44f86b[_0xf9e9('0x46')][_0xf9e9('0x69')][_0x474aca]),'SmsQueueId':Number(_0x44f86b[_0xf9e9('0x42')]['id'])});}return _0x4fe9b8;});}})[_0xf9e9('0x22')](respondWithResult(_0x3d5895,null))['catch'](handleError(_0x3d5895,null));};exports[_0xf9e9('0x7b')]=function(_0x34b859,_0x242002,_0x3b5542){return db[_0xf9e9('0x3a')]['find']({'where':{'id':_0x34b859[_0xf9e9('0x42')]['id']}})[_0xf9e9('0x22')](handleEntityNotFound(_0x242002,null))[_0xf9e9('0x22')](function(_0x3804bf){if(_0x3804bf){return _0x3804bf[_0xf9e9('0x7b')](_0x34b859[_0xf9e9('0x2a')][_0xf9e9('0x69')])[_0xf9e9('0x22')](function(){if(_[_0xf9e9('0x7c')](_0x34b859[_0xf9e9('0x2a')]['ids'])){for(var _0x388a99=0x0;_0x388a99<_0x34b859[_0xf9e9('0x2a')][_0xf9e9('0x69')][_0xf9e9('0x44')];_0x388a99+=0x1){socket[_0xf9e9('0x67')](_0xf9e9('0x7d'),{'UserId':Number(_0x34b859['query'][_0xf9e9('0x69')][_0x388a99]),'SmsQueueId':Number(_0x34b859[_0xf9e9('0x42')]['id'])});}}else{socket[_0xf9e9('0x67')](_0xf9e9('0x7d'),{'UserId':Number(_0x34b859[_0xf9e9('0x2a')][_0xf9e9('0x69')]),'SmsQueueId':Number(_0x34b859[_0xf9e9('0x42')]['id'])});}});}})[_0xf9e9('0x22')](respondWithStatusCode(_0x242002,null))[_0xf9e9('0x40')](handleError(_0x242002,null));};exports['getAgents']=function(_0x34f48e,_0x2c2d24,_0x3825eb){var _0x7d4c20={};var _0x3529b0={};var _0x166213;var _0x88dc52;return db['SmsQueue']['findOne']({'where':{'id':_0x34f48e[_0xf9e9('0x42')]['id']}})['then'](handleEntityNotFound(_0x2c2d24,null))['then'](function(_0x5e5826){if(_0x5e5826){_0x166213=_0x5e5826;_0x3529b0['model']=_['keys'](db['User']['rawAttributes']);_0x3529b0[_0xf9e9('0x2a')]=_[_0xf9e9('0x2b')](_0x34f48e[_0xf9e9('0x2a')]);_0x3529b0[_0xf9e9('0x2c')]=_['intersection'](_0x3529b0[_0xf9e9('0x29')],_0x3529b0[_0xf9e9('0x2a')]);_0x7d4c20[_0xf9e9('0x2e')]=_[_0xf9e9('0x2d')](_0x3529b0[_0xf9e9('0x29')],qs['fields'](_0x34f48e[_0xf9e9('0x2a')][_0xf9e9('0x2f')]));_0x7d4c20[_0xf9e9('0x2e')]=_0x7d4c20['attributes'][_0xf9e9('0x44')]?_0x7d4c20['attributes']:_0x3529b0[_0xf9e9('0x29')];_0x7d4c20[_0xf9e9('0x54')]=qs['sort'](_0x34f48e[_0xf9e9('0x2a')][_0xf9e9('0x31')]);_0x7d4c20['where']=qs[_0xf9e9('0x2c')](_[_0xf9e9('0x32')](_0x34f48e[_0xf9e9('0x2a')],_0x3529b0[_0xf9e9('0x2c')]));if(_0x34f48e[_0xf9e9('0x2a')][_0xf9e9('0x33')]){_0x7d4c20[_0xf9e9('0x34')]=_['merge'](_0x7d4c20[_0xf9e9('0x34')],{'$or':_[_0xf9e9('0x36')](_0x7d4c20[_0xf9e9('0x2e')],function(_0x37c375){var _0x4e3530={};_0x4e3530[_0x37c375]={'$like':'%'+_0x34f48e[_0xf9e9('0x2a')][_0xf9e9('0x33')]+'%'};return _0x4e3530;})});}_0x7d4c20=_[_0xf9e9('0x35')]({},_0x7d4c20,_0x34f48e['options']);return _0x166213[_0xf9e9('0x7e')](_0x7d4c20);}})['then'](function(_0x1b0d57){if(_0x1b0d57){_0x88dc52=_0x1b0d57[_0xf9e9('0x44')];if(!_0x34f48e['query']['hasOwnProperty'](_0xf9e9('0x30'))){_0x7d4c20[_0xf9e9('0x1b')]=qs[_0xf9e9('0x1b')](_0x34f48e[_0xf9e9('0x2a')][_0xf9e9('0x1b')]);_0x7d4c20[_0xf9e9('0x1a')]=qs[_0xf9e9('0x1a')](_0x34f48e[_0xf9e9('0x2a')][_0xf9e9('0x1a')]);}return _0x166213[_0xf9e9('0x7e')](_0x7d4c20);}})[_0xf9e9('0x22')](function(_0x2e573d){if(_0x2e573d){return _0x2e573d?{'count':_0x88dc52,'rows':_0x2e573d}:null;}})[_0xf9e9('0x22')](respondWithResult(_0x2c2d24,null))['catch'](handleError(_0x2c2d24,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd91a=['setMaxListeners','save','update','remove','emit','hasOwnProperty','hook','exports','../../mysqldb','SmsQueue'];(function(_0x495123,_0x2bf158){var _0x39e1ee=function(_0x226778){while(--_0x226778){_0x495123['push'](_0x495123['shift']());}};_0x39e1ee(++_0x2bf158);}(_0xd91a,0x76));var _0xad91=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xd91a[_0x20a584];return _0x4b41a8;};'use strict';var EventEmitter=require('events');var SmsQueue=require(_0xad91('0x0'))['db'][_0xad91('0x1')];var SmsQueueEvents=new EventEmitter();SmsQueueEvents[_0xad91('0x2')](0x0);var events={'afterCreate':_0xad91('0x3'),'afterUpdate':_0xad91('0x4'),'afterDestroy':_0xad91('0x5')};function emitEvent(_0x47476c){return function(_0x141310,_0xd33012,_0xa9e672){SmsQueueEvents['emit'](_0x47476c+':'+_0x141310['id'],_0x141310);SmsQueueEvents[_0xad91('0x6')](_0x47476c,_0x141310);_0xa9e672(null);};}for(var e in events){if(events[_0xad91('0x7')](e)){var event=events[e];SmsQueue[_0xad91('0x8')](e,emitEvent(event));}}module[_0xad91('0x9')]=SmsQueueEvents;
\ No newline at end of file
+var _0x2674=['emit','hasOwnProperty','hook','exports','events','update','remove'];(function(_0x3e7804,_0x121853){var _0x56efda=function(_0x1996f3){while(--_0x1996f3){_0x3e7804['push'](_0x3e7804['shift']());}};_0x56efda(++_0x121853);}(_0x2674,0x162));var _0x4267=function(_0x19e35c,_0x29cd1e){_0x19e35c=_0x19e35c-0x0;var _0x3e1fe8=_0x2674[_0x19e35c];return _0x3e1fe8;};'use strict';var EventEmitter=require(_0x4267('0x0'));var SmsQueue=require('../../mysqldb')['db']['SmsQueue'];var SmsQueueEvents=new EventEmitter();SmsQueueEvents['setMaxListeners'](0x0);var events={'afterCreate':'save','afterUpdate':_0x4267('0x1'),'afterDestroy':_0x4267('0x2')};function emitEvent(_0x5a2973){return function(_0x3a42c1,_0xc9785d,_0x227e60){SmsQueueEvents['emit'](_0x5a2973+':'+_0x3a42c1['id'],_0x3a42c1);SmsQueueEvents[_0x4267('0x3')](_0x5a2973,_0x3a42c1);_0x227e60(null);};}for(var e in events){if(events[_0x4267('0x4')](e)){var event=events[e];SmsQueue[_0x4267('0x5')](e,emitEvent(event));}}module[_0x4267('0x6')]=SmsQueueEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf089=['api','moment','request-promise','path','rimraf','./smsQueue.attributes','SmsQueue','sms_queues','util'];(function(_0x4b369d,_0x265eb8){var _0x571a98=function(_0x56341a){while(--_0x56341a){_0x4b369d['push'](_0x4b369d['shift']());}};_0x571a98(++_0x265eb8);}(_0xf089,0xe0));var _0x9f08=function(_0x4cfb85,_0x382e47){_0x4cfb85=_0x4cfb85-0x0;var _0x49e2b7=_0xf089[_0x4cfb85];return _0x49e2b7;};'use strict';var _=require('lodash');var util=require(_0x9f08('0x0'));var logger=require('../../config/logger')(_0x9f08('0x1'));var moment=require(_0x9f08('0x2'));var BPromise=require('bluebird');var rp=require(_0x9f08('0x3'));var fs=require('fs');var path=require(_0x9f08('0x4'));var rimraf=require(_0x9f08('0x5'));var config=require('../../config/environment');var attributes=require(_0x9f08('0x6'));module['exports']=function(_0x5c592e,_0x392c23){return _0x5c592e['define'](_0x9f08('0x7'),attributes,{'tableName':_0x9f08('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x3cac=['moment','bluebird','request-promise','path','rimraf','../../config/environment','define','SmsQueue','sms_queues','lodash','../../config/logger','api'];(function(_0x454165,_0x1f3e74){var _0x56db53=function(_0x23388c){while(--_0x23388c){_0x454165['push'](_0x454165['shift']());}};_0x56db53(++_0x1f3e74);}(_0x3cac,0x1d1));var _0xc3ca=function(_0x5bfc6c,_0x274560){_0x5bfc6c=_0x5bfc6c-0x0;var _0x22f3b6=_0x3cac[_0x5bfc6c];return _0x22f3b6;};'use strict';var _=require(_0xc3ca('0x0'));var util=require('util');var logger=require(_0xc3ca('0x1'))(_0xc3ca('0x2'));var moment=require(_0xc3ca('0x3'));var BPromise=require(_0xc3ca('0x4'));var rp=require(_0xc3ca('0x5'));var fs=require('fs');var path=require(_0xc3ca('0x6'));var rimraf=require(_0xc3ca('0x7'));var config=require(_0xc3ca('0x8'));var attributes=require('./smsQueue.attributes');module['exports']=function(_0x3f02ef,_0x596867){return _0x3f02ef[_0xc3ca('0x9')](_0xc3ca('0xa'),attributes,{'tableName':_0xc3ca('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4eab=['SmsQueue,\x20%s,\x20%s','debug','SmsQueue,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message','catch','GetSmsQueue','findAll','options','raw','where','limit','map','include','model','attributes','ShowSmsQueue','find','lodash','util','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','redis','socket.io-emitter','./smsQueue.socket','register','request','then','info'];(function(_0x42cae2,_0x284ef8){var _0x5f256f=function(_0x41abc8){while(--_0x41abc8){_0x42cae2['push'](_0x42cae2['shift']());}};_0x5f256f(++_0x284ef8);}(_0x4eab,0x1c1));var _0xb4ea=function(_0x5b6d6a,_0x595895){_0x5b6d6a=_0x5b6d6a-0x0;var _0x5475d3=_0x4eab[_0x5b6d6a];return _0x5475d3;};'use strict';var _=require(_0xb4ea('0x0'));var util=require(_0xb4ea('0x1'));var moment=require(_0xb4ea('0x2'));var BPromise=require('bluebird');var rs=require(_0xb4ea('0x3'));var fs=require('fs');var Redis=require(_0xb4ea('0x4'));var db=require(_0xb4ea('0x5'))['db'];var utils=require(_0xb4ea('0x6'));var logger=require(_0xb4ea('0x7'))('rpc');var config=require(_0xb4ea('0x8'));var jayson=require(_0xb4ea('0x9'));var client=jayson[_0xb4ea('0xa')][_0xb4ea('0xb')]({'port':0x232a});config[_0xb4ea('0xc')]=_['defaults'](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0xb4ea('0xd'))(new Redis(config['redis']));require(_0xb4ea('0xe'))[_0xb4ea('0xf')](socket);function respondWithRpcPromise(_0x2c8211,_0x3fc5fe,_0x3e341b){return new BPromise(function(_0x591317,_0x2960a8){return client[_0xb4ea('0x10')](_0x2c8211,_0x3e341b)[_0xb4ea('0x11')](function(_0xb46303){logger[_0xb4ea('0x12')](_0xb4ea('0x13'),_0x3fc5fe,'request\x20sent');logger[_0xb4ea('0x14')](_0xb4ea('0x15'),_0x3fc5fe,_0xb4ea('0x16'),JSON[_0xb4ea('0x17')](_0xb46303));if(_0xb46303['error']){if(_0xb46303['error']['code']===0x1f4){logger[_0xb4ea('0x18')](_0xb4ea('0x13'),_0x3fc5fe,_0xb46303[_0xb4ea('0x18')][_0xb4ea('0x19')]);return _0x2960a8(_0xb46303['error'][_0xb4ea('0x19')]);}logger[_0xb4ea('0x18')](_0xb4ea('0x13'),_0x3fc5fe,_0xb46303[_0xb4ea('0x18')]['message']);return _0x591317(_0xb46303[_0xb4ea('0x18')]['message']);}else{logger[_0xb4ea('0x12')]('SmsQueue,\x20%s,\x20%s',_0x3fc5fe,_0xb4ea('0x16'));_0x591317(_0xb46303['result'][_0xb4ea('0x19')]);}})[_0xb4ea('0x1a')](function(_0x97cf1c){logger[_0xb4ea('0x18')](_0xb4ea('0x13'),_0x3fc5fe,_0x97cf1c);_0x2960a8(_0x97cf1c);});});}exports[_0xb4ea('0x1b')]=function(_0x7c67ce){var _0x45b1ff=this;return new Promise(function(_0x4af42f,_0x2a7481){return db['SmsQueue'][_0xb4ea('0x1c')]({'raw':_0x7c67ce[_0xb4ea('0x1d')]?_0x7c67ce[_0xb4ea('0x1d')][_0xb4ea('0x1e')]===undefined?!![]:![]:!![],'where':_0x7c67ce[_0xb4ea('0x1d')]?_0x7c67ce[_0xb4ea('0x1d')][_0xb4ea('0x1f')]||null:null,'attributes':_0x7c67ce[_0xb4ea('0x1d')]?_0x7c67ce[_0xb4ea('0x1d')]['attributes']||null:null,'limit':_0x7c67ce[_0xb4ea('0x1d')]?_0x7c67ce[_0xb4ea('0x1d')][_0xb4ea('0x20')]||null:null,'include':_0x7c67ce['options']?_0x7c67ce['options']['include']?_[_0xb4ea('0x21')](_0x7c67ce['options'][_0xb4ea('0x22')],function(_0x4db14c){return{'model':db[_0x4db14c[_0xb4ea('0x23')]],'as':_0x4db14c['as'],'attributes':_0x4db14c['attributes'],'include':_0x4db14c['include']?_['map'](_0x4db14c['include'],function(_0x427026){return{'model':db[_0x427026[_0xb4ea('0x23')]],'as':_0x427026['as'],'attributes':_0x427026[_0xb4ea('0x24')],'include':_0x427026[_0xb4ea('0x22')]?_[_0xb4ea('0x21')](_0x427026[_0xb4ea('0x22')],function(_0x1fd218){return{'model':db[_0x1fd218['model']],'as':_0x1fd218['as'],'attributes':_0x1fd218[_0xb4ea('0x24')]};}):[]};}):[]};}):[]:[]})[_0xb4ea('0x11')](function(_0x3fd729){logger[_0xb4ea('0x12')](_0xb4ea('0x1b'),_0x7c67ce);logger[_0xb4ea('0x14')](_0xb4ea('0x1b'),_0x7c67ce,JSON[_0xb4ea('0x17')](_0x3fd729));_0x4af42f(_0x3fd729);})[_0xb4ea('0x1a')](function(_0x1df544){logger['error'](_0xb4ea('0x1b'),_0x1df544[_0xb4ea('0x19')],_0x7c67ce);_0x2a7481(_0x45b1ff[_0xb4ea('0x18')](0x1f4,_0x1df544[_0xb4ea('0x19')]));});});};exports[_0xb4ea('0x25')]=function(_0x59f0e9){var _0x255dd7=this;return new Promise(function(_0x52a6dd,_0x473663){return db['SmsQueue'][_0xb4ea('0x26')]({'raw':_0x59f0e9['options']?_0x59f0e9[_0xb4ea('0x1d')][_0xb4ea('0x1e')]===undefined?!![]:![]:!![],'where':_0x59f0e9[_0xb4ea('0x1d')]?_0x59f0e9[_0xb4ea('0x1d')]['where']||null:null,'attributes':_0x59f0e9[_0xb4ea('0x1d')]?_0x59f0e9[_0xb4ea('0x1d')][_0xb4ea('0x24')]||null:null,'include':_0x59f0e9['options']?_0x59f0e9[_0xb4ea('0x1d')][_0xb4ea('0x22')]?_['map'](_0x59f0e9[_0xb4ea('0x1d')][_0xb4ea('0x22')],function(_0x3cc21d){return{'model':db[_0x3cc21d['model']],'as':_0x3cc21d['as'],'attributes':_0x3cc21d['attributes'],'include':_0x3cc21d[_0xb4ea('0x22')]?_[_0xb4ea('0x21')](_0x3cc21d[_0xb4ea('0x22')],function(_0x4225a9){return{'model':db[_0x4225a9[_0xb4ea('0x23')]],'as':_0x4225a9['as'],'attributes':_0x4225a9['attributes'],'include':_0x4225a9[_0xb4ea('0x22')]?_[_0xb4ea('0x21')](_0x4225a9['include'],function(_0x2d1b09){return{'model':db[_0x2d1b09[_0xb4ea('0x23')]],'as':_0x2d1b09['as'],'attributes':_0x2d1b09[_0xb4ea('0x24')]};}):[]};}):[]};}):[]:[]})[_0xb4ea('0x11')](function(_0x44c272){logger[_0xb4ea('0x12')](_0xb4ea('0x25'),_0x59f0e9);logger[_0xb4ea('0x14')](_0xb4ea('0x25'),_0x59f0e9,JSON[_0xb4ea('0x17')](_0x44c272));_0x52a6dd(_0x44c272);})[_0xb4ea('0x1a')](function(_0x3a850b){logger[_0xb4ea('0x18')](_0xb4ea('0x25'),_0x3a850b[_0xb4ea('0x19')],_0x59f0e9);_0x473663(_0x255dd7[_0xb4ea('0x18')](0x1f4,_0x3a850b[_0xb4ea('0x19')]));});});};
\ No newline at end of file
+var _0xffad=['jayson/promise','client','http','redis','localhost','./smsQueue.socket','request','SmsQueue,\x20%s,\x20%s','request\x20sent','SmsQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','GetSmsQueue','SmsQueue','findAll','options','raw','where','limit','include','map','model','attributes','debug','catch','ShowSmsQueue','find','then','lodash','util','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','../../config/environment'];(function(_0x284297,_0xa9a200){var _0x2d93a3=function(_0x13b58e){while(--_0x13b58e){_0x284297['push'](_0x284297['shift']());}};_0x2d93a3(++_0xa9a200);}(_0xffad,0x6d));var _0xdffa=function(_0x40d0bb,_0x27f183){_0x40d0bb=_0x40d0bb-0x0;var _0x14239b=_0xffad[_0x40d0bb];return _0x14239b;};'use strict';var _=require(_0xdffa('0x0'));var util=require(_0xdffa('0x1'));var moment=require('moment');var BPromise=require(_0xdffa('0x2'));var rs=require(_0xdffa('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xdffa('0x4'))['db'];var utils=require(_0xdffa('0x5'));var logger=require(_0xdffa('0x6'))('rpc');var config=require(_0xdffa('0x7'));var jayson=require(_0xdffa('0x8'));var client=jayson[_0xdffa('0x9')][_0xdffa('0xa')]({'port':0x232a});config[_0xdffa('0xb')]=_['defaults'](config['redis'],{'host':_0xdffa('0xc'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xdffa('0xb')]));require(_0xdffa('0xd'))['register'](socket);function respondWithRpcPromise(_0x56b1c1,_0x1d553e,_0x15b792){return new BPromise(function(_0x145c1d,_0x214c42){return client[_0xdffa('0xe')](_0x56b1c1,_0x15b792)['then'](function(_0x1e714e){logger['info'](_0xdffa('0xf'),_0x1d553e,_0xdffa('0x10'));logger['debug'](_0xdffa('0x11'),_0x1d553e,_0xdffa('0x10'),JSON[_0xdffa('0x12')](_0x1e714e));if(_0x1e714e[_0xdffa('0x13')]){if(_0x1e714e['error'][_0xdffa('0x14')]===0x1f4){logger[_0xdffa('0x13')]('SmsQueue,\x20%s,\x20%s',_0x1d553e,_0x1e714e[_0xdffa('0x13')]['message']);return _0x214c42(_0x1e714e[_0xdffa('0x13')][_0xdffa('0x15')]);}logger[_0xdffa('0x13')](_0xdffa('0xf'),_0x1d553e,_0x1e714e[_0xdffa('0x13')][_0xdffa('0x15')]);return _0x145c1d(_0x1e714e[_0xdffa('0x13')][_0xdffa('0x15')]);}else{logger[_0xdffa('0x16')]('SmsQueue,\x20%s,\x20%s',_0x1d553e,_0xdffa('0x10'));_0x145c1d(_0x1e714e['result'][_0xdffa('0x15')]);}})['catch'](function(_0x1c8512){logger[_0xdffa('0x13')](_0xdffa('0xf'),_0x1d553e,_0x1c8512);_0x214c42(_0x1c8512);});});}exports[_0xdffa('0x17')]=function(_0x4670ad){var _0x108ecb=this;return new Promise(function(_0x56bba0,_0x208c84){return db[_0xdffa('0x18')][_0xdffa('0x19')]({'raw':_0x4670ad['options']?_0x4670ad[_0xdffa('0x1a')][_0xdffa('0x1b')]===undefined?!![]:![]:!![],'where':_0x4670ad[_0xdffa('0x1a')]?_0x4670ad[_0xdffa('0x1a')][_0xdffa('0x1c')]||null:null,'attributes':_0x4670ad[_0xdffa('0x1a')]?_0x4670ad['options']['attributes']||null:null,'limit':_0x4670ad['options']?_0x4670ad[_0xdffa('0x1a')][_0xdffa('0x1d')]||null:null,'include':_0x4670ad[_0xdffa('0x1a')]?_0x4670ad['options'][_0xdffa('0x1e')]?_[_0xdffa('0x1f')](_0x4670ad[_0xdffa('0x1a')][_0xdffa('0x1e')],function(_0x17e915){return{'model':db[_0x17e915[_0xdffa('0x20')]],'as':_0x17e915['as'],'attributes':_0x17e915['attributes'],'include':_0x17e915['include']?_[_0xdffa('0x1f')](_0x17e915[_0xdffa('0x1e')],function(_0x1cdef0){return{'model':db[_0x1cdef0[_0xdffa('0x20')]],'as':_0x1cdef0['as'],'attributes':_0x1cdef0[_0xdffa('0x21')],'include':_0x1cdef0[_0xdffa('0x1e')]?_[_0xdffa('0x1f')](_0x1cdef0['include'],function(_0x8b0b97){return{'model':db[_0x8b0b97['model']],'as':_0x8b0b97['as'],'attributes':_0x8b0b97[_0xdffa('0x21')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x17e5c1){logger['info'](_0xdffa('0x17'),_0x4670ad);logger[_0xdffa('0x22')]('GetSmsQueue',_0x4670ad,JSON['stringify'](_0x17e5c1));_0x56bba0(_0x17e5c1);})[_0xdffa('0x23')](function(_0x372780){logger[_0xdffa('0x13')](_0xdffa('0x17'),_0x372780[_0xdffa('0x15')],_0x4670ad);_0x208c84(_0x108ecb[_0xdffa('0x13')](0x1f4,_0x372780[_0xdffa('0x15')]));});});};exports[_0xdffa('0x24')]=function(_0x151439){var _0x4acd85=this;return new Promise(function(_0x5f0dc8,_0x723f8b){return db[_0xdffa('0x18')][_0xdffa('0x25')]({'raw':_0x151439[_0xdffa('0x1a')]?_0x151439[_0xdffa('0x1a')][_0xdffa('0x1b')]===undefined?!![]:![]:!![],'where':_0x151439[_0xdffa('0x1a')]?_0x151439['options'][_0xdffa('0x1c')]||null:null,'attributes':_0x151439['options']?_0x151439[_0xdffa('0x1a')][_0xdffa('0x21')]||null:null,'include':_0x151439[_0xdffa('0x1a')]?_0x151439[_0xdffa('0x1a')][_0xdffa('0x1e')]?_[_0xdffa('0x1f')](_0x151439[_0xdffa('0x1a')][_0xdffa('0x1e')],function(_0x2abbb8){return{'model':db[_0x2abbb8[_0xdffa('0x20')]],'as':_0x2abbb8['as'],'attributes':_0x2abbb8[_0xdffa('0x21')],'include':_0x2abbb8[_0xdffa('0x1e')]?_[_0xdffa('0x1f')](_0x2abbb8[_0xdffa('0x1e')],function(_0x18e88e){return{'model':db[_0x18e88e[_0xdffa('0x20')]],'as':_0x18e88e['as'],'attributes':_0x18e88e[_0xdffa('0x21')],'include':_0x18e88e[_0xdffa('0x1e')]?_[_0xdffa('0x1f')](_0x18e88e[_0xdffa('0x1e')],function(_0x423a2d){return{'model':db[_0x423a2d[_0xdffa('0x20')]],'as':_0x423a2d['as'],'attributes':_0x423a2d[_0xdffa('0x21')]};}):[]};}):[]};}):[]:[]})[_0xdffa('0x26')](function(_0x494a5c){logger[_0xdffa('0x16')](_0xdffa('0x24'),_0x151439);logger[_0xdffa('0x22')](_0xdffa('0x24'),_0x151439,JSON['stringify'](_0x494a5c));_0x5f0dc8(_0x494a5c);})[_0xdffa('0x23')](function(_0x479b98){logger[_0xdffa('0x13')]('ShowSmsQueue',_0x479b98[_0xdffa('0x15')],_0x151439);_0x723f8b(_0x4acd85[_0xdffa('0x13')](0x1f4,_0x479b98[_0xdffa('0x15')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8114=['smsQueue:','./smsQueue.events','save','emit','removeListener','length'];(function(_0x4c8970,_0x20b401){var _0x3d7916=function(_0x5f2a70){while(--_0x5f2a70){_0x4c8970['push'](_0x4c8970['shift']());}};_0x3d7916(++_0x20b401);}(_0x8114,0x169));var _0x4811=function(_0x2e4aa2,_0x11956a){_0x2e4aa2=_0x2e4aa2-0x0;var _0x5e6092=_0x8114[_0x2e4aa2];return _0x5e6092;};'use strict';var SmsQueueEvents=require(_0x4811('0x0'));var events=[_0x4811('0x1'),'remove','update'];function createListener(_0x52bcf1,_0x387618){return function(_0x523fe8){_0x387618[_0x4811('0x2')](_0x52bcf1,_0x523fe8);};}function removeListener(_0x3f7b72,_0x5c7e12){return function(){SmsQueueEvents[_0x4811('0x3')](_0x3f7b72,_0x5c7e12);};}exports['register']=function(_0x9cd02c){for(var _0x5c50ba=0x0,_0x5c67e3=events[_0x4811('0x4')];_0x5c50ba<_0x5c67e3;_0x5c50ba++){var _0x35e66d=events[_0x5c50ba];var _0x5893e4=createListener(_0x4811('0x5')+_0x35e66d,_0x9cd02c);SmsQueueEvents['on'](_0x35e66d,_0x5893e4);}};
\ No newline at end of file
+var _0x5420=['save','remove','update','emit','removeListener','register','smsQueue:','./smsQueue.events'];(function(_0x278a6c,_0x51f6e4){var _0x3d042e=function(_0x4e54e0){while(--_0x4e54e0){_0x278a6c['push'](_0x278a6c['shift']());}};_0x3d042e(++_0x51f6e4);}(_0x5420,0x11f));var _0x0542=function(_0x217bb9,_0x23c624){_0x217bb9=_0x217bb9-0x0;var _0x19c2fd=_0x5420[_0x217bb9];return _0x19c2fd;};'use strict';var SmsQueueEvents=require(_0x0542('0x0'));var events=[_0x0542('0x1'),_0x0542('0x2'),_0x0542('0x3')];function createListener(_0x1b285a,_0x17cda6){return function(_0x31db7c){_0x17cda6[_0x0542('0x4')](_0x1b285a,_0x31db7c);};}function removeListener(_0x1ef095,_0x39bbb1){return function(){SmsQueueEvents[_0x0542('0x5')](_0x1ef095,_0x39bbb1);};}exports[_0x0542('0x6')]=function(_0x1abd84){for(var _0x22ca6f=0x0,_0x4af7f0=events['length'];_0x22ca6f<_0x4af7f0;_0x22ca6f++){var _0xbb9997=events[_0x22ca6f];var _0x547217=createListener(_0x0542('0x7')+_0xbb9997,_0x1abd84);SmsQueueEvents['on'](_0xbb9997,_0x547217);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7f4b=['index','/describe','describe','/:id','show','post','create','put','destroy','exports','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./smsQueueReport.controller','get','isAuthenticated'];(function(_0x636435,_0x3f493c){var _0xe13fa2=function(_0x252930){while(--_0x252930){_0x636435['push'](_0x636435['shift']());}};_0xe13fa2(++_0x3f493c);}(_0x7f4b,0x154));var _0xb7f4=function(_0x144eb9,_0x3d02cf){_0x144eb9=_0x144eb9-0x0;var _0x410544=_0x7f4b[_0x144eb9];return _0x410544;};'use strict';var multer=require('multer');var util=require(_0xb7f4('0x0'));var path=require(_0xb7f4('0x1'));var timeout=require(_0xb7f4('0x2'));var express=require(_0xb7f4('0x3'));var router=express[_0xb7f4('0x4')]();var fs_extra=require(_0xb7f4('0x5'));var auth=require(_0xb7f4('0x6'));var interaction=require(_0xb7f4('0x7'));var config=require(_0xb7f4('0x8'));var controller=require(_0xb7f4('0x9'));router[_0xb7f4('0xa')]('/',auth[_0xb7f4('0xb')](),controller[_0xb7f4('0xc')]);router['get'](_0xb7f4('0xd'),auth[_0xb7f4('0xb')](),controller[_0xb7f4('0xe')]);router['get'](_0xb7f4('0xf'),auth['isAuthenticated'](),controller[_0xb7f4('0x10')]);router[_0xb7f4('0x11')]('/',auth[_0xb7f4('0xb')](),controller[_0xb7f4('0x12')]);router[_0xb7f4('0x13')](_0xb7f4('0xf'),auth[_0xb7f4('0xb')](),controller['update']);router['delete'](_0xb7f4('0xf'),auth[_0xb7f4('0xb')](),controller[_0xb7f4('0x14')]);module[_0xb7f4('0x15')]=router;
\ No newline at end of file
+var _0x46aa=['../../config/environment','./smsQueueReport.controller','get','isAuthenticated','index','describe','/:id','show','post','create','put','update','destroy','exports','util','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service'];(function(_0x5cc71f,_0x4f6f52){var _0x4e1b52=function(_0x1bea3b){while(--_0x1bea3b){_0x5cc71f['push'](_0x5cc71f['shift']());}};_0x4e1b52(++_0x4f6f52);}(_0x46aa,0xcb));var _0xa46a=function(_0x4ae6ef,_0xc2af80){_0x4ae6ef=_0x4ae6ef-0x0;var _0x3cbb4e=_0x46aa[_0x4ae6ef];return _0x3cbb4e;};'use strict';var multer=require('multer');var util=require(_0xa46a('0x0'));var path=require('path');var timeout=require(_0xa46a('0x1'));var express=require(_0xa46a('0x2'));var router=express[_0xa46a('0x3')]();var fs_extra=require(_0xa46a('0x4'));var auth=require(_0xa46a('0x5'));var interaction=require(_0xa46a('0x6'));var config=require(_0xa46a('0x7'));var controller=require(_0xa46a('0x8'));router[_0xa46a('0x9')]('/',auth[_0xa46a('0xa')](),controller[_0xa46a('0xb')]);router[_0xa46a('0x9')]('/describe',auth[_0xa46a('0xa')](),controller[_0xa46a('0xc')]);router[_0xa46a('0x9')](_0xa46a('0xd'),auth['isAuthenticated'](),controller[_0xa46a('0xe')]);router[_0xa46a('0xf')]('/',auth[_0xa46a('0xa')](),controller[_0xa46a('0x10')]);router[_0xa46a('0x11')]('/:id',auth[_0xa46a('0xa')](),controller[_0xa46a('0x12')]);router['delete'](_0xa46a('0xd'),auth[_0xa46a('0xa')](),controller[_0xa46a('0x13')]);module[_0xa46a('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf06b=['exports','STRING','DATE','moment','sequelize'];(function(_0x4a2e9c,_0x162761){var _0x4a6fb5=function(_0x338688){while(--_0x338688){_0x4a2e9c['push'](_0x4a2e9c['shift']());}};_0x4a6fb5(++_0x162761);}(_0xf06b,0x166));var _0xbf06=function(_0x4957de,_0x279096){_0x4957de=_0x4957de-0x0;var _0x1d1522=_0xf06b[_0x4957de];return _0x1d1522;};'use strict';var moment=require(_0xbf06('0x0'));var Sequelize=require(_0xbf06('0x1'));module[_0xbf06('0x2')]={'uniqueid':{'type':Sequelize[_0xbf06('0x3')],'allowNull':![]},'from':{'type':Sequelize[_0xbf06('0x3')]},'joinAt':{'type':Sequelize[_0xbf06('0x4')]},'leaveAt':{'type':Sequelize[_0xbf06('0x4')]},'acceptAt':{'type':Sequelize[_0xbf06('0x4')]},'exitAt':{'type':Sequelize[_0xbf06('0x4')]},'reason':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0x3739=['moment','sequelize','exports','STRING','DATE'];(function(_0xa148b7,_0x2f3eb2){var _0x51efd3=function(_0x34bcec){while(--_0x34bcec){_0xa148b7['push'](_0xa148b7['shift']());}};_0x51efd3(++_0x2f3eb2);}(_0x3739,0xc3));var _0x9373=function(_0x13cff5,_0x532f1e){_0x13cff5=_0x13cff5-0x0;var _0x193fe6=_0x3739[_0x13cff5];return _0x193fe6;};'use strict';var moment=require(_0x9373('0x0'));var Sequelize=require(_0x9373('0x1'));module[_0x9373('0x2')]={'uniqueid':{'type':Sequelize[_0x9373('0x3')],'allowNull':![]},'from':{'type':Sequelize['STRING']},'joinAt':{'type':Sequelize[_0x9373('0x4')]},'leaveAt':{'type':Sequelize['DATE']},'acceptAt':{'type':Sequelize[_0x9373('0x4')]},'exitAt':{'type':Sequelize[_0x9373('0x4')]},'reason':{'type':Sequelize[_0x9373('0x3')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3a70=['options','includeAll','include','rows','catch','show','params','find','create','update','body','describe','eml-format','fast-json-patch','request-promise','moment','bluebird','mustache','path','to-csv','ejs','lodash','squel','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','sendStatus','status','end','json','offset','limit','undefined','count','set','apply','reject','save','then','destroy','name','send','index','map','SmsQueueReport','rawAttributes','fieldName','type','key','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL'];(function(_0x543084,_0x4337f5){var _0x306a57=function(_0x2769ed){while(--_0x2769ed){_0x543084['push'](_0x543084['shift']());}};_0x306a57(++_0x4337f5);}(_0x3a70,0x1da));var _0x03a7=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x3a70[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require(_0x03a7('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x03a7('0x1'));var rp=require(_0x03a7('0x2'));var moment=require(_0x03a7('0x3'));var BPromise=require(_0x03a7('0x4'));var Mustache=require(_0x03a7('0x5'));var util=require('util');var path=require(_0x03a7('0x6'));var sox=require('sox');var csv=require(_0x03a7('0x7'));var ejs=require(_0x03a7('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x03a7('0x9'));var squel=require(_0x03a7('0xa'));var crypto=require('crypto');var jsforce=require(_0x03a7('0xb'));var deskjs=require(_0x03a7('0xc'));var toCsv=require('to-csv');var querystring=require(_0x03a7('0xd'));var Papa=require(_0x03a7('0xe'));var Redis=require(_0x03a7('0xf'));var authService=require(_0x03a7('0x10'));var qs=require(_0x03a7('0x11'));var as=require(_0x03a7('0x12'));var hardwareService=require(_0x03a7('0x13'));var logger=require(_0x03a7('0x14'))(_0x03a7('0x15'));var utils=require(_0x03a7('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0x03a7('0x17'));var db=require(_0x03a7('0x18'))['db'];function respondWithStatusCode(_0x4bf16e,_0x3fe10e){_0x3fe10e=_0x3fe10e||0xcc;return function(_0x22b2ae){if(_0x22b2ae){return _0x4bf16e[_0x03a7('0x19')](_0x3fe10e);}return _0x4bf16e[_0x03a7('0x1a')](_0x3fe10e)[_0x03a7('0x1b')]();};}function respondWithResult(_0x3191b3,_0x1bb0bc){_0x1bb0bc=_0x1bb0bc||0xc8;return function(_0x3a237a){if(_0x3a237a){return _0x3191b3['status'](_0x1bb0bc)[_0x03a7('0x1c')](_0x3a237a);}};}function respondWithFilteredResult(_0x1ae004,_0x19e296){return function(_0x3840ed){if(_0x3840ed){var _0x27ff48=typeof _0x19e296[_0x03a7('0x1d')]==='undefined'&&typeof _0x19e296[_0x03a7('0x1e')]===_0x03a7('0x1f');var _0x5ca661=_0x3840ed[_0x03a7('0x20')];var _0x443ec6=_0x27ff48?0x0:_0x19e296['offset'];var _0x642e8=_0x27ff48?_0x3840ed['count']:_0x19e296['offset']+_0x19e296[_0x03a7('0x1e')];var _0x213170;if(_0x642e8>=_0x5ca661){_0x642e8=_0x5ca661;_0x213170=0xc8;}else{_0x213170=0xce;}_0x1ae004['status'](_0x213170);return _0x1ae004[_0x03a7('0x21')]('Content-Range',_0x443ec6+'-'+_0x642e8+'/'+_0x5ca661)[_0x03a7('0x1c')](_0x3840ed);}return null;};}function patchUpdates(_0x2fc91d){return function(_0xf4970){try{jsonpatch[_0x03a7('0x22')](_0xf4970,_0x2fc91d,!![]);}catch(_0x153b0a){return BPromise[_0x03a7('0x23')](_0x153b0a);}return _0xf4970[_0x03a7('0x24')]();};}function saveUpdates(_0x550cf6,_0x28bd11){return function(_0x5782dd){if(_0x5782dd){return _0x5782dd['update'](_0x550cf6)[_0x03a7('0x25')](function(_0x50b5d6){return _0x50b5d6;});}return null;};}function removeEntity(_0x200646,_0x19bf25){return function(_0x108842){if(_0x108842){return _0x108842[_0x03a7('0x26')]()[_0x03a7('0x25')](function(){_0x200646[_0x03a7('0x1a')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4145c3,_0x3aa555){return function(_0x4d0a62){if(!_0x4d0a62){_0x4145c3[_0x03a7('0x19')](0x194);}return _0x4d0a62;};}function handleError(_0x418691,_0xa31c78){_0xa31c78=_0xa31c78||0x1f4;return function(_0x3b26c4){logger['error'](_0x3b26c4['stack']);if(_0x3b26c4['name']){delete _0x3b26c4[_0x03a7('0x27')];}_0x418691[_0x03a7('0x1a')](_0xa31c78)[_0x03a7('0x28')](_0x3b26c4);};}exports[_0x03a7('0x29')]=function(_0x53e1dd,_0x15653b){var _0x2ab483={},_0x4d803f={},_0x3ce110={'count':0x0,'rows':[]};var _0x3f75a2=_[_0x03a7('0x2a')](db[_0x03a7('0x2b')][_0x03a7('0x2c')],function(_0x55c322){return{'name':_0x55c322[_0x03a7('0x2d')],'type':_0x55c322[_0x03a7('0x2e')][_0x03a7('0x2f')]};});_0x4d803f[_0x03a7('0x30')]=_[_0x03a7('0x2a')](_0x3f75a2,'name');_0x4d803f['query']=_[_0x03a7('0x31')](_0x53e1dd[_0x03a7('0x32')]);_0x4d803f[_0x03a7('0x33')]=_[_0x03a7('0x34')](_0x4d803f[_0x03a7('0x30')],_0x4d803f[_0x03a7('0x32')]);_0x2ab483[_0x03a7('0x35')]=_[_0x03a7('0x34')](_0x4d803f['model'],qs['fields'](_0x53e1dd[_0x03a7('0x32')][_0x03a7('0x36')]));_0x2ab483[_0x03a7('0x35')]=_0x2ab483['attributes'][_0x03a7('0x37')]?_0x2ab483[_0x03a7('0x35')]:_0x4d803f[_0x03a7('0x30')];if(!_0x53e1dd[_0x03a7('0x32')][_0x03a7('0x38')](_0x03a7('0x39'))){_0x2ab483[_0x03a7('0x1e')]=qs[_0x03a7('0x1e')](_0x53e1dd['query']['limit']);_0x2ab483['offset']=qs[_0x03a7('0x1d')](_0x53e1dd[_0x03a7('0x32')]['offset']);}_0x2ab483[_0x03a7('0x3a')]=qs[_0x03a7('0x3b')](_0x53e1dd[_0x03a7('0x32')][_0x03a7('0x3b')]);_0x2ab483[_0x03a7('0x3c')]=qs[_0x03a7('0x33')](_[_0x03a7('0x3d')](_0x53e1dd[_0x03a7('0x32')],_0x4d803f[_0x03a7('0x33')]),_0x3f75a2);if(_0x53e1dd[_0x03a7('0x32')][_0x03a7('0x3e')]){_0x2ab483[_0x03a7('0x3c')]=_[_0x03a7('0x3f')](_0x2ab483['where'],{'$or':_[_0x03a7('0x2a')](_0x3f75a2,function(_0x5b70ca){if(_0x5b70ca['type']!==_0x03a7('0x40')){var _0x4bfe96={};_0x4bfe96[_0x5b70ca[_0x03a7('0x27')]]={'$like':'%'+_0x53e1dd[_0x03a7('0x32')][_0x03a7('0x3e')]+'%'};return _0x4bfe96;}})});}_0x2ab483=_[_0x03a7('0x3f')]({},_0x2ab483,_0x53e1dd[_0x03a7('0x41')]);var _0x222e07={'where':_0x2ab483[_0x03a7('0x3c')]};return db[_0x03a7('0x2b')][_0x03a7('0x20')](_0x222e07)[_0x03a7('0x25')](function(_0x4da2a8){_0x3ce110[_0x03a7('0x20')]=_0x4da2a8;if(_0x53e1dd[_0x03a7('0x32')][_0x03a7('0x42')]){_0x2ab483[_0x03a7('0x43')]=[{'all':!![]}];}return db['SmsQueueReport']['findAll'](_0x2ab483);})[_0x03a7('0x25')](function(_0x2be18b){_0x3ce110[_0x03a7('0x44')]=_0x2be18b;return _0x3ce110;})[_0x03a7('0x25')](respondWithFilteredResult(_0x15653b,_0x2ab483))[_0x03a7('0x45')](handleError(_0x15653b,null));};exports[_0x03a7('0x46')]=function(_0x26fbce,_0x1e0d68){var _0x103f51={'raw':!![],'where':{'id':_0x26fbce[_0x03a7('0x47')]['id']}},_0x1cb5a2={};_0x1cb5a2[_0x03a7('0x30')]=_[_0x03a7('0x31')](db[_0x03a7('0x2b')]['rawAttributes']);_0x1cb5a2[_0x03a7('0x32')]=_[_0x03a7('0x31')](_0x26fbce[_0x03a7('0x32')]);_0x1cb5a2[_0x03a7('0x33')]=_[_0x03a7('0x34')](_0x1cb5a2[_0x03a7('0x30')],_0x1cb5a2[_0x03a7('0x32')]);_0x103f51['attributes']=_[_0x03a7('0x34')](_0x1cb5a2[_0x03a7('0x30')],qs[_0x03a7('0x36')](_0x26fbce[_0x03a7('0x32')][_0x03a7('0x36')]));_0x103f51['attributes']=_0x103f51[_0x03a7('0x35')][_0x03a7('0x37')]?_0x103f51[_0x03a7('0x35')]:_0x1cb5a2[_0x03a7('0x30')];if(_0x26fbce[_0x03a7('0x32')][_0x03a7('0x42')]){_0x103f51[_0x03a7('0x43')]=[{'all':!![]}];}_0x103f51=_[_0x03a7('0x3f')]({},_0x103f51,_0x26fbce['options']);return db[_0x03a7('0x2b')][_0x03a7('0x48')](_0x103f51)[_0x03a7('0x25')](handleEntityNotFound(_0x1e0d68,null))[_0x03a7('0x25')](respondWithResult(_0x1e0d68,null))[_0x03a7('0x45')](handleError(_0x1e0d68,null));};exports[_0x03a7('0x49')]=function(_0x16a568,_0x496672){return db[_0x03a7('0x2b')][_0x03a7('0x49')](_0x16a568['body'],{})['then'](respondWithResult(_0x496672,0xc9))[_0x03a7('0x45')](handleError(_0x496672,null));};exports[_0x03a7('0x4a')]=function(_0x53b800,_0x49890a){if(_0x53b800['body']['id']){delete _0x53b800[_0x03a7('0x4b')]['id'];}return db[_0x03a7('0x2b')]['find']({'where':{'id':_0x53b800['params']['id']}})[_0x03a7('0x25')](handleEntityNotFound(_0x49890a,null))[_0x03a7('0x25')](saveUpdates(_0x53b800[_0x03a7('0x4b')],null))[_0x03a7('0x25')](respondWithResult(_0x49890a,null))[_0x03a7('0x45')](handleError(_0x49890a,null));};exports[_0x03a7('0x26')]=function(_0x843a2b,_0x12b569){return db['SmsQueueReport'][_0x03a7('0x48')]({'where':{'id':_0x843a2b[_0x03a7('0x47')]['id']}})['then'](handleEntityNotFound(_0x12b569,null))[_0x03a7('0x25')](removeEntity(_0x12b569,null))[_0x03a7('0x45')](handleError(_0x12b569,null));};exports[_0x03a7('0x4c')]=function(_0xc7bdd8,_0x44910b){return db['SmsQueueReport'][_0x03a7('0x4c')]()[_0x03a7('0x25')](respondWithResult(_0x44910b,null))['catch'](handleError(_0x44910b,null));};
\ No newline at end of file
+var _0xc255=['util','sox','to-csv','ejs','fs-extra','lodash','squel','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/license/util','sendStatus','status','end','json','offset','undefined','limit','count','Content-Range','apply','reject','save','update','then','destroy','error','stack','name','index','map','SmsQueueReport','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','filter','merge','VIRTUAL','options','includeAll','include','params','rawAttributes','find','catch','create','body','describe','zip-dir','request-promise','moment','mustache'];(function(_0x223628,_0x298af6){var _0x6e02d5=function(_0x3dc37e){while(--_0x3dc37e){_0x223628['push'](_0x223628['shift']());}};_0x6e02d5(++_0x298af6);}(_0xc255,0x15a));var _0x5c25=function(_0x6a27db,_0x2731a7){_0x6a27db=_0x6a27db-0x0;var _0xd814f5=_0xc255[_0x6a27db];return _0xd814f5;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x5c25('0x0'));var jsonpatch=require('fast-json-patch');var rp=require(_0x5c25('0x1'));var moment=require(_0x5c25('0x2'));var BPromise=require('bluebird');var Mustache=require(_0x5c25('0x3'));var util=require(_0x5c25('0x4'));var path=require('path');var sox=require(_0x5c25('0x5'));var csv=require(_0x5c25('0x6'));var ejs=require(_0x5c25('0x7'));var fs=require('fs');var fs_extra=require(_0x5c25('0x8'));var _=require(_0x5c25('0x9'));var squel=require(_0x5c25('0xa'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x5c25('0x6'));var querystring=require(_0x5c25('0xb'));var Papa=require(_0x5c25('0xc'));var Redis=require(_0x5c25('0xd'));var authService=require(_0x5c25('0xe'));var qs=require(_0x5c25('0xf'));var as=require(_0x5c25('0x10'));var hardwareService=require(_0x5c25('0x11'));var logger=require('../../config/logger')(_0x5c25('0x12'));var utils=require(_0x5c25('0x13'));var config=require('../../config/environment');var licenseUtil=require(_0x5c25('0x14'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x4acc5f,_0x42757a){_0x42757a=_0x42757a||0xcc;return function(_0xe97704){if(_0xe97704){return _0x4acc5f[_0x5c25('0x15')](_0x42757a);}return _0x4acc5f[_0x5c25('0x16')](_0x42757a)[_0x5c25('0x17')]();};}function respondWithResult(_0x5fe676,_0xe6e276){_0xe6e276=_0xe6e276||0xc8;return function(_0x51fd73){if(_0x51fd73){return _0x5fe676[_0x5c25('0x16')](_0xe6e276)[_0x5c25('0x18')](_0x51fd73);}};}function respondWithFilteredResult(_0x46317e,_0x14c758){return function(_0x434db2){if(_0x434db2){var _0x4c06ca=typeof _0x14c758[_0x5c25('0x19')]===_0x5c25('0x1a')&&typeof _0x14c758[_0x5c25('0x1b')]===_0x5c25('0x1a');var _0xf5e4fd=_0x434db2[_0x5c25('0x1c')];var _0x45e52d=_0x4c06ca?0x0:_0x14c758['offset'];var _0x17143f=_0x4c06ca?_0x434db2[_0x5c25('0x1c')]:_0x14c758['offset']+_0x14c758[_0x5c25('0x1b')];var _0x5844e9;if(_0x17143f>=_0xf5e4fd){_0x17143f=_0xf5e4fd;_0x5844e9=0xc8;}else{_0x5844e9=0xce;}_0x46317e[_0x5c25('0x16')](_0x5844e9);return _0x46317e['set'](_0x5c25('0x1d'),_0x45e52d+'-'+_0x17143f+'/'+_0xf5e4fd)[_0x5c25('0x18')](_0x434db2);}return null;};}function patchUpdates(_0x283f73){return function(_0x2bd4fd){try{jsonpatch[_0x5c25('0x1e')](_0x2bd4fd,_0x283f73,!![]);}catch(_0x208e6d){return BPromise[_0x5c25('0x1f')](_0x208e6d);}return _0x2bd4fd[_0x5c25('0x20')]();};}function saveUpdates(_0x5d8d28,_0xeaf531){return function(_0x3929e4){if(_0x3929e4){return _0x3929e4[_0x5c25('0x21')](_0x5d8d28)[_0x5c25('0x22')](function(_0x1153b5){return _0x1153b5;});}return null;};}function removeEntity(_0x272165,_0x25a9e4){return function(_0x367031){if(_0x367031){return _0x367031[_0x5c25('0x23')]()[_0x5c25('0x22')](function(){_0x272165['status'](0xcc)[_0x5c25('0x17')]();});}};}function handleEntityNotFound(_0xfba802,_0x203503){return function(_0xbdb8db){if(!_0xbdb8db){_0xfba802[_0x5c25('0x15')](0x194);}return _0xbdb8db;};}function handleError(_0x2873ae,_0x56eb98){_0x56eb98=_0x56eb98||0x1f4;return function(_0x200fd0){logger[_0x5c25('0x24')](_0x200fd0[_0x5c25('0x25')]);if(_0x200fd0[_0x5c25('0x26')]){delete _0x200fd0[_0x5c25('0x26')];}_0x2873ae[_0x5c25('0x16')](_0x56eb98)['send'](_0x200fd0);};}exports[_0x5c25('0x27')]=function(_0x32cc77,_0x2e59dc){var _0x17f4b5={},_0x513f39={},_0x4c9b2b={'count':0x0,'rows':[]};var _0xf1dc96=_[_0x5c25('0x28')](db[_0x5c25('0x29')]['rawAttributes'],function(_0x92b51c){return{'name':_0x92b51c[_0x5c25('0x2a')],'type':_0x92b51c[_0x5c25('0x2b')][_0x5c25('0x2c')]};});_0x513f39[_0x5c25('0x2d')]=_[_0x5c25('0x28')](_0xf1dc96,_0x5c25('0x26'));_0x513f39[_0x5c25('0x2e')]=_[_0x5c25('0x2f')](_0x32cc77[_0x5c25('0x2e')]);_0x513f39[_0x5c25('0x30')]=_[_0x5c25('0x31')](_0x513f39[_0x5c25('0x2d')],_0x513f39['query']);_0x17f4b5[_0x5c25('0x32')]=_[_0x5c25('0x31')](_0x513f39[_0x5c25('0x2d')],qs[_0x5c25('0x33')](_0x32cc77[_0x5c25('0x2e')][_0x5c25('0x33')]));_0x17f4b5[_0x5c25('0x32')]=_0x17f4b5['attributes'][_0x5c25('0x34')]?_0x17f4b5[_0x5c25('0x32')]:_0x513f39[_0x5c25('0x2d')];if(!_0x32cc77[_0x5c25('0x2e')][_0x5c25('0x35')]('nolimit')){_0x17f4b5[_0x5c25('0x1b')]=qs[_0x5c25('0x1b')](_0x32cc77[_0x5c25('0x2e')][_0x5c25('0x1b')]);_0x17f4b5['offset']=qs[_0x5c25('0x19')](_0x32cc77[_0x5c25('0x2e')][_0x5c25('0x19')]);}_0x17f4b5[_0x5c25('0x36')]=qs['sort'](_0x32cc77[_0x5c25('0x2e')][_0x5c25('0x37')]);_0x17f4b5[_0x5c25('0x38')]=qs[_0x5c25('0x30')](_['pick'](_0x32cc77[_0x5c25('0x2e')],_0x513f39[_0x5c25('0x30')]),_0xf1dc96);if(_0x32cc77[_0x5c25('0x2e')][_0x5c25('0x39')]){_0x17f4b5[_0x5c25('0x38')]=_[_0x5c25('0x3a')](_0x17f4b5[_0x5c25('0x38')],{'$or':_[_0x5c25('0x28')](_0xf1dc96,function(_0x1eb6ba){if(_0x1eb6ba[_0x5c25('0x2b')]!==_0x5c25('0x3b')){var _0x55d51d={};_0x55d51d[_0x1eb6ba[_0x5c25('0x26')]]={'$like':'%'+_0x32cc77[_0x5c25('0x2e')][_0x5c25('0x39')]+'%'};return _0x55d51d;}})});}_0x17f4b5=_['merge']({},_0x17f4b5,_0x32cc77[_0x5c25('0x3c')]);var _0x1b9e44={'where':_0x17f4b5[_0x5c25('0x38')]};return db[_0x5c25('0x29')][_0x5c25('0x1c')](_0x1b9e44)[_0x5c25('0x22')](function(_0x2e17e6){_0x4c9b2b[_0x5c25('0x1c')]=_0x2e17e6;if(_0x32cc77[_0x5c25('0x2e')][_0x5c25('0x3d')]){_0x17f4b5[_0x5c25('0x3e')]=[{'all':!![]}];}return db[_0x5c25('0x29')]['findAll'](_0x17f4b5);})[_0x5c25('0x22')](function(_0xb1babd){_0x4c9b2b['rows']=_0xb1babd;return _0x4c9b2b;})[_0x5c25('0x22')](respondWithFilteredResult(_0x2e59dc,_0x17f4b5))['catch'](handleError(_0x2e59dc,null));};exports['show']=function(_0x39ea56,_0x507521){var _0x1b92e9={'raw':!![],'where':{'id':_0x39ea56[_0x5c25('0x3f')]['id']}},_0x242c89={};_0x242c89['model']=_[_0x5c25('0x2f')](db['SmsQueueReport'][_0x5c25('0x40')]);_0x242c89['query']=_['keys'](_0x39ea56[_0x5c25('0x2e')]);_0x242c89[_0x5c25('0x30')]=_['intersection'](_0x242c89[_0x5c25('0x2d')],_0x242c89[_0x5c25('0x2e')]);_0x1b92e9[_0x5c25('0x32')]=_['intersection'](_0x242c89['model'],qs[_0x5c25('0x33')](_0x39ea56[_0x5c25('0x2e')][_0x5c25('0x33')]));_0x1b92e9[_0x5c25('0x32')]=_0x1b92e9[_0x5c25('0x32')]['length']?_0x1b92e9[_0x5c25('0x32')]:_0x242c89[_0x5c25('0x2d')];if(_0x39ea56[_0x5c25('0x2e')][_0x5c25('0x3d')]){_0x1b92e9[_0x5c25('0x3e')]=[{'all':!![]}];}_0x1b92e9=_[_0x5c25('0x3a')]({},_0x1b92e9,_0x39ea56[_0x5c25('0x3c')]);return db[_0x5c25('0x29')][_0x5c25('0x41')](_0x1b92e9)[_0x5c25('0x22')](handleEntityNotFound(_0x507521,null))[_0x5c25('0x22')](respondWithResult(_0x507521,null))[_0x5c25('0x42')](handleError(_0x507521,null));};exports[_0x5c25('0x43')]=function(_0x2d0da1,_0x4e6dd6){return db['SmsQueueReport']['create'](_0x2d0da1['body'],{})[_0x5c25('0x22')](respondWithResult(_0x4e6dd6,0xc9))['catch'](handleError(_0x4e6dd6,null));};exports[_0x5c25('0x21')]=function(_0x117ae4,_0x2bd0e0){if(_0x117ae4[_0x5c25('0x44')]['id']){delete _0x117ae4['body']['id'];}return db[_0x5c25('0x29')][_0x5c25('0x41')]({'where':{'id':_0x117ae4[_0x5c25('0x3f')]['id']}})[_0x5c25('0x22')](handleEntityNotFound(_0x2bd0e0,null))[_0x5c25('0x22')](saveUpdates(_0x117ae4['body'],null))[_0x5c25('0x22')](respondWithResult(_0x2bd0e0,null))[_0x5c25('0x42')](handleError(_0x2bd0e0,null));};exports[_0x5c25('0x23')]=function(_0xd4152e,_0x5eb968){return db[_0x5c25('0x29')][_0x5c25('0x41')]({'where':{'id':_0xd4152e[_0x5c25('0x3f')]['id']}})[_0x5c25('0x22')](handleEntityNotFound(_0x5eb968,null))['then'](removeEntity(_0x5eb968,null))['catch'](handleError(_0x5eb968,null));};exports[_0x5c25('0x45')]=function(_0x386cc0,_0x3ab952){return db[_0x5c25('0x29')]['describe']()[_0x5c25('0x22')](respondWithResult(_0x3ab952,null))['catch'](handleError(_0x3ab952,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(_0x59ee6f,_0x450239){var _0x4c0979=function(_0x565e92){while(--_0x565e92){_0x59ee6f['push'](_0x59ee6f['shift']());}};_0x4c0979(++_0x450239);}(_0xa9e0,0x123));var _0x0a9e=function(_0x5ddb1c,_0x5ea4df){_0x5ddb1c=_0x5ddb1c-0x0;var _0x354adc=_0xa9e0[_0x5ddb1c];return _0x354adc;};'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 _0x0713=['../../config/logger','api','moment','bluebird','request-promise','rimraf','../../config/environment','./smsQueueReport.attributes','exports','define','SmsQueueReport','report_sms_queue','uniqueid'];(function(_0x2b2b33,_0x56606f){var _0x229157=function(_0x52b63e){while(--_0x52b63e){_0x2b2b33['push'](_0x2b2b33['shift']());}};_0x229157(++_0x56606f);}(_0x0713,0x1ba));var _0x3071=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x0713[_0x3dd15e];return _0x231fd0;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x3071('0x0'))(_0x3071('0x1'));var moment=require(_0x3071('0x2'));var BPromise=require(_0x3071('0x3'));var rp=require(_0x3071('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0x3071('0x5'));var config=require(_0x3071('0x6'));var attributes=require(_0x3071('0x7'));module[_0x3071('0x8')]=function(_0xabd7b6,_0x41cf76){return _0xabd7b6[_0x3071('0x9')](_0x3071('0xa'),attributes,{'tableName':_0x3071('0xb'),'paranoid':![],'indexes':[{'name':_0x3071('0xc'),'fields':[_0x3071('0xc')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd634=['moment','bluebird','randomstring','../../mysqldb','../../config/logger','rpc','jayson/promise','client','http','request','then','info','request\x20sent','SmsQueueReport,\x20%s,\x20%s,\x20%s','error','code','SmsQueueReport,\x20%s,\x20%s','message','catch','CreateSmsQueueReport','SmsQueueReport','create','body','options','debug','stringify','UpdateSmsQueueReport','update','where','attributes','limit','lodash','util'];(function(_0x631679,_0xa80199){var _0xd60fce=function(_0x25abbf){while(--_0x25abbf){_0x631679['push'](_0x631679['shift']());}};_0xd60fce(++_0xa80199);}(_0xd634,0x1cc));var _0x4d63=function(_0x1c9c24,_0x2a517b){_0x1c9c24=_0x1c9c24-0x0;var _0x349c69=_0xd634[_0x1c9c24];return _0x349c69;};'use strict';var _=require(_0x4d63('0x0'));var util=require(_0x4d63('0x1'));var moment=require(_0x4d63('0x2'));var BPromise=require(_0x4d63('0x3'));var rs=require(_0x4d63('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x4d63('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0x4d63('0x6'))(_0x4d63('0x7'));var config=require('../../config/environment');var jayson=require(_0x4d63('0x8'));var client=jayson[_0x4d63('0x9')][_0x4d63('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x416603,_0x1c70de,_0x5570a3){return new BPromise(function(_0x39bc8d,_0x15e954){return client[_0x4d63('0xb')](_0x416603,_0x5570a3)[_0x4d63('0xc')](function(_0x37a774){logger[_0x4d63('0xd')]('SmsQueueReport,\x20%s,\x20%s',_0x1c70de,_0x4d63('0xe'));logger['debug'](_0x4d63('0xf'),_0x1c70de,_0x4d63('0xe'),JSON['stringify'](_0x37a774));if(_0x37a774[_0x4d63('0x10')]){if(_0x37a774[_0x4d63('0x10')][_0x4d63('0x11')]===0x1f4){logger['error'](_0x4d63('0x12'),_0x1c70de,_0x37a774[_0x4d63('0x10')]['message']);return _0x15e954(_0x37a774[_0x4d63('0x10')]['message']);}logger[_0x4d63('0x10')](_0x4d63('0x12'),_0x1c70de,_0x37a774[_0x4d63('0x10')][_0x4d63('0x13')]);return _0x39bc8d(_0x37a774['error'][_0x4d63('0x13')]);}else{logger[_0x4d63('0xd')](_0x4d63('0x12'),_0x1c70de,'request\x20sent');_0x39bc8d(_0x37a774['result']['message']);}})[_0x4d63('0x14')](function(_0x20eabf){logger[_0x4d63('0x10')](_0x4d63('0x12'),_0x1c70de,_0x20eabf);_0x15e954(_0x20eabf);});});}exports[_0x4d63('0x15')]=function(_0x442af8){var _0x155841=this;return new Promise(function(_0x2f664f,_0x4b0d20){return db[_0x4d63('0x16')][_0x4d63('0x17')](_0x442af8[_0x4d63('0x18')],{'raw':_0x442af8[_0x4d63('0x19')]?_0x442af8[_0x4d63('0x19')]['raw']===undefined?!![]:![]:!![]})[_0x4d63('0xc')](function(_0x272e07){logger[_0x4d63('0xd')](_0x4d63('0x15'),_0x442af8);logger[_0x4d63('0x1a')](_0x4d63('0x15'),_0x442af8,JSON[_0x4d63('0x1b')](_0x272e07));_0x2f664f(_0x272e07);})[_0x4d63('0x14')](function(_0x18ccf2){logger[_0x4d63('0x10')]('CreateSmsQueueReport',_0x18ccf2['message'],_0x442af8);_0x4b0d20(_0x155841['error'](0x1f4,_0x18ccf2['message']));});});};exports[_0x4d63('0x1c')]=function(_0x396b10){var _0x4cdcd0=this;return new Promise(function(_0x5045b1,_0x1eb796){return db[_0x4d63('0x16')][_0x4d63('0x1d')](_0x396b10[_0x4d63('0x18')],{'raw':_0x396b10['options']?_0x396b10[_0x4d63('0x19')]['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x396b10[_0x4d63('0x19')]?_0x396b10[_0x4d63('0x19')][_0x4d63('0x1e')]||null:null,'attributes':_0x396b10[_0x4d63('0x19')]?_0x396b10[_0x4d63('0x19')][_0x4d63('0x1f')]||null:null,'limit':_0x396b10[_0x4d63('0x19')]?_0x396b10[_0x4d63('0x19')][_0x4d63('0x20')]||null:null})[_0x4d63('0xc')](function(_0x31b967){logger['info'](_0x4d63('0x1c'),_0x396b10);logger[_0x4d63('0x1a')](_0x4d63('0x1c'),_0x396b10,JSON[_0x4d63('0x1b')](_0x31b967));_0x5045b1(_0x31b967);})['catch'](function(_0x2b0909){logger[_0x4d63('0x10')](_0x4d63('0x1c'),_0x2b0909[_0x4d63('0x13')],_0x396b10);_0x1eb796(_0x4cdcd0[_0x4d63('0x10')](0x1f4,_0x2b0909[_0x4d63('0x13')]));});});};
\ No newline at end of file
+var _0xd108=['request','then','info','SmsQueueReport,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','catch','CreateSmsQueueReport','SmsQueueReport','create','options','UpdateSmsQueueReport','body','raw','attributes','util','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','client','http'];(function(_0x2be8c2,_0x14a4b5){var _0x97f531=function(_0xcee58d){while(--_0xcee58d){_0x2be8c2['push'](_0x2be8c2['shift']());}};_0x97f531(++_0x14a4b5);}(_0xd108,0x1c7));var _0x8d10=function(_0x53286a,_0x485c92){_0x53286a=_0x53286a-0x0;var _0x5730ff=_0xd108[_0x53286a];return _0x5730ff;};'use strict';var _=require('lodash');var util=require(_0x8d10('0x0'));var moment=require('moment');var BPromise=require(_0x8d10('0x1'));var rs=require(_0x8d10('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x8d10('0x3'))['db'];var utils=require(_0x8d10('0x4'));var logger=require(_0x8d10('0x5'))('rpc');var config=require(_0x8d10('0x6'));var jayson=require('jayson/promise');var client=jayson[_0x8d10('0x7')][_0x8d10('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x4b2b33,_0x1abfc0,_0x387ca7){return new BPromise(function(_0x31cc0c,_0xd4f09){return client[_0x8d10('0x9')](_0x4b2b33,_0x387ca7)[_0x8d10('0xa')](function(_0x5a3e26){logger[_0x8d10('0xb')](_0x8d10('0xc'),_0x1abfc0,_0x8d10('0xd'));logger[_0x8d10('0xe')]('SmsQueueReport,\x20%s,\x20%s,\x20%s',_0x1abfc0,_0x8d10('0xd'),JSON[_0x8d10('0xf')](_0x5a3e26));if(_0x5a3e26['error']){if(_0x5a3e26[_0x8d10('0x10')][_0x8d10('0x11')]===0x1f4){logger[_0x8d10('0x10')](_0x8d10('0xc'),_0x1abfc0,_0x5a3e26['error'][_0x8d10('0x12')]);return _0xd4f09(_0x5a3e26['error'][_0x8d10('0x12')]);}logger[_0x8d10('0x10')](_0x8d10('0xc'),_0x1abfc0,_0x5a3e26[_0x8d10('0x10')][_0x8d10('0x12')]);return _0x31cc0c(_0x5a3e26[_0x8d10('0x10')][_0x8d10('0x12')]);}else{logger[_0x8d10('0xb')](_0x8d10('0xc'),_0x1abfc0,_0x8d10('0xd'));_0x31cc0c(_0x5a3e26[_0x8d10('0x13')][_0x8d10('0x12')]);}})[_0x8d10('0x14')](function(_0x3ad176){logger[_0x8d10('0x10')](_0x8d10('0xc'),_0x1abfc0,_0x3ad176);_0xd4f09(_0x3ad176);});});}exports[_0x8d10('0x15')]=function(_0x4791fd){var _0x4ce6ea=this;return new Promise(function(_0x70b9d8,_0x3c7391){return db[_0x8d10('0x16')][_0x8d10('0x17')](_0x4791fd['body'],{'raw':_0x4791fd[_0x8d10('0x18')]?_0x4791fd[_0x8d10('0x18')]['raw']===undefined?!![]:![]:!![]})[_0x8d10('0xa')](function(_0x287a41){logger[_0x8d10('0xb')](_0x8d10('0x15'),_0x4791fd);logger[_0x8d10('0xe')](_0x8d10('0x15'),_0x4791fd,JSON[_0x8d10('0xf')](_0x287a41));_0x70b9d8(_0x287a41);})[_0x8d10('0x14')](function(_0x2a8996){logger[_0x8d10('0x10')](_0x8d10('0x15'),_0x2a8996['message'],_0x4791fd);_0x3c7391(_0x4ce6ea[_0x8d10('0x10')](0x1f4,_0x2a8996[_0x8d10('0x12')]));});});};exports[_0x8d10('0x19')]=function(_0x156624){var _0x2edbc6=this;return new Promise(function(_0x38958a,_0x44abc6){return db[_0x8d10('0x16')]['update'](_0x156624[_0x8d10('0x1a')],{'raw':_0x156624['options']?_0x156624[_0x8d10('0x18')][_0x8d10('0x1b')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x156624[_0x8d10('0x18')]?_0x156624['options']['where']||null:null,'attributes':_0x156624[_0x8d10('0x18')]?_0x156624[_0x8d10('0x18')][_0x8d10('0x1c')]||null:null,'limit':_0x156624[_0x8d10('0x18')]?_0x156624['options']['limit']||null:null})[_0x8d10('0xa')](function(_0x32c8c7){logger[_0x8d10('0xb')](_0x8d10('0x19'),_0x156624);logger[_0x8d10('0xe')](_0x8d10('0x19'),_0x156624,JSON['stringify'](_0x32c8c7));_0x38958a(_0x32c8c7);})[_0x8d10('0x14')](function(_0x5e37bb){logger['error']('UpdateSmsQueueReport',_0x5e37bb[_0x8d10('0x12')],_0x156624);_0x44abc6(_0x2edbc6['error'](0x1f4,_0x5e37bb[_0x8d10('0x12')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x55ca=['create','put','update','delete','destroy','multer','util','Router','fs-extra','../../components/interaction/service','../../config/environment','./smsTransferReport.controller','get','isAuthenticated','index','describe','/:id'];(function(_0x294270,_0x14667c){var _0x24d73d=function(_0x56b3d2){while(--_0x56b3d2){_0x294270['push'](_0x294270['shift']());}};_0x24d73d(++_0x14667c);}(_0x55ca,0x126));var _0xa55c=function(_0x5d7227,_0x12aebe){_0x5d7227=_0x5d7227-0x0;var _0x15ac55=_0x55ca[_0x5d7227];return _0x15ac55;};'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['post']('/',auth[_0xa55c('0x8')](),controller[_0xa55c('0xc')]);router[_0xa55c('0xd')](_0xa55c('0xb'),auth[_0xa55c('0x8')](),controller[_0xa55c('0xe')]);router[_0xa55c('0xf')](_0xa55c('0xb'),auth[_0xa55c('0x8')](),controller[_0xa55c('0x10')]);module['exports']=router;
\ No newline at end of file
+var _0x5fc3=['/:id','show','post','create','put','update','multer','util','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../config/environment','./smsTransferReport.controller','get','isAuthenticated','describe'];(function(_0x4159f5,_0x145796){var _0x59a61a=function(_0x36948d){while(--_0x36948d){_0x4159f5['push'](_0x4159f5['shift']());}};_0x59a61a(++_0x145796);}(_0x5fc3,0xa8));var _0x35fc=function(_0x118139,_0x7ce965){_0x118139=_0x118139-0x0;var _0x2fece9=_0x5fc3[_0x118139];return _0x2fece9;};'use strict';var multer=require(_0x35fc('0x0'));var util=require(_0x35fc('0x1'));var path=require('path');var timeout=require(_0x35fc('0x2'));var express=require(_0x35fc('0x3'));var router=express[_0x35fc('0x4')]();var fs_extra=require(_0x35fc('0x5'));var auth=require(_0x35fc('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0x35fc('0x7'));var controller=require(_0x35fc('0x8'));router[_0x35fc('0x9')]('/',auth['isAuthenticated'](),controller['index']);router[_0x35fc('0x9')]('/describe',auth[_0x35fc('0xa')](),controller[_0x35fc('0xb')]);router[_0x35fc('0x9')](_0x35fc('0xc'),auth[_0x35fc('0xa')](),controller[_0x35fc('0xd')]);router[_0x35fc('0xe')]('/',auth['isAuthenticated'](),controller[_0x35fc('0xf')]);router[_0x35fc('0x10')]('/:id',auth[_0x35fc('0xa')](),controller[_0x35fc('0x11')]);router['delete'](_0x35fc('0xc'),auth[_0x35fc('0xa')](),controller['destroy']);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['account','queue','DATE','NOW','moment','sequelize','exports'];(function(_0x172dca,_0xda5041){var _0x2a887f=function(_0x1a6aa5){while(--_0x1a6aa5){_0x172dca['push'](_0x172dca['shift']());}};_0x2a887f(++_0xda5041);}(_0xa9e0,0x123));var _0x0a9e=function(_0x411add,_0x1aed38){_0x411add=_0x411add-0x0;var _0x238242=_0xa9e0[_0x411add];return _0x238242;};'use strict';var moment=require(_0x0a9e('0x0'));var Sequelize=require(_0x0a9e('0x1'));module[_0x0a9e('0x2')]={'uniqueid':{'type':Sequelize['STRING'],'allowNull':![]},'type':{'type':Sequelize['ENUM'](_0x0a9e('0x3'),'agent',_0x0a9e('0x4')),'allowNull':![],'defaultValue':_0x0a9e('0x4')},'transferredAt':{'type':Sequelize[_0x0a9e('0x5')],'allowNull':![],'defaultValue':Sequelize[_0x0a9e('0x6')]}};
\ No newline at end of file
+var _0xcb91=['STRING','ENUM','account','queue','NOW','exports'];(function(_0x2b4a30,_0x422107){var _0x48bcda=function(_0x3909a5){while(--_0x3909a5){_0x2b4a30['push'](_0x2b4a30['shift']());}};_0x48bcda(++_0x422107);}(_0xcb91,0x1a9));var _0x1cb9=function(_0x3a78a0,_0x44985f){_0x3a78a0=_0x3a78a0-0x0;var _0x48e917=_0xcb91[_0x3a78a0];return _0x48e917;};'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 _0xa535=['util','path','to-csv','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','json','offset','undefined','count','limit','set','Content-Range','apply','reject','save','then','end','stack','name','send','index','map','SmsTransferReport','rawAttributes','fieldName','key','query','filters','intersection','model','fields','attributes','length','nolimit','sort','where','filter','merge','type','VIRTUAL','options','include','rows','catch','params','keys','includeAll','create','body','update','destroy','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache'];(function(_0x4717b8,_0x565c94){var _0x3daaa8=function(_0x1f5cf7){while(--_0x1f5cf7){_0x4717b8['push'](_0x4717b8['shift']());}};_0x3daaa8(++_0x565c94);}(_0xa535,0x121));var _0x5a53=function(_0x3ae98c,_0x5bbc64){_0x3ae98c=_0x3ae98c-0x0;var _0x1084ec=_0xa535[_0x3ae98c];return _0x1084ec;};'use strict';var emlformat=require(_0x5a53('0x0'));var rimraf=require(_0x5a53('0x1'));var zipdir=require(_0x5a53('0x2'));var jsonpatch=require(_0x5a53('0x3'));var rp=require(_0x5a53('0x4'));var moment=require(_0x5a53('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x5a53('0x6'));var util=require(_0x5a53('0x7'));var path=require(_0x5a53('0x8'));var sox=require('sox');var csv=require(_0x5a53('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x5a53('0xa'));var _=require(_0x5a53('0xb'));var squel=require(_0x5a53('0xc'));var crypto=require(_0x5a53('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x5a53('0xe'));var toCsv=require('to-csv');var querystring=require(_0x5a53('0xf'));var Papa=require(_0x5a53('0x10'));var Redis=require(_0x5a53('0x11'));var authService=require(_0x5a53('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0x5a53('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x5a53('0x14'))(_0x5a53('0x15'));var utils=require(_0x5a53('0x16'));var config=require(_0x5a53('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0x5a53('0x18'))['db'];function respondWithStatusCode(_0x3d955b,_0x15e091){_0x15e091=_0x15e091||0xcc;return function(_0x52994a){if(_0x52994a){return _0x3d955b[_0x5a53('0x19')](_0x15e091);}return _0x3d955b['status'](_0x15e091)['end']();};}function respondWithResult(_0x5418dc,_0x1ee0fe){_0x1ee0fe=_0x1ee0fe||0xc8;return function(_0x51f2f0){if(_0x51f2f0){return _0x5418dc[_0x5a53('0x1a')](_0x1ee0fe)[_0x5a53('0x1b')](_0x51f2f0);}};}function respondWithFilteredResult(_0x1018ab,_0x86f7fe){return function(_0x5699a6){if(_0x5699a6){var _0x50a38c=typeof _0x86f7fe[_0x5a53('0x1c')]===_0x5a53('0x1d')&&typeof _0x86f7fe['limit']===_0x5a53('0x1d');var _0x45f308=_0x5699a6[_0x5a53('0x1e')];var _0x142bd5=_0x50a38c?0x0:_0x86f7fe['offset'];var _0x1cfb32=_0x50a38c?_0x5699a6[_0x5a53('0x1e')]:_0x86f7fe[_0x5a53('0x1c')]+_0x86f7fe[_0x5a53('0x1f')];var _0x2d46d8;if(_0x1cfb32>=_0x45f308){_0x1cfb32=_0x45f308;_0x2d46d8=0xc8;}else{_0x2d46d8=0xce;}_0x1018ab[_0x5a53('0x1a')](_0x2d46d8);return _0x1018ab[_0x5a53('0x20')](_0x5a53('0x21'),_0x142bd5+'-'+_0x1cfb32+'/'+_0x45f308)[_0x5a53('0x1b')](_0x5699a6);}return null;};}function patchUpdates(_0x84b6af){return function(_0x4fc2da){try{jsonpatch[_0x5a53('0x22')](_0x4fc2da,_0x84b6af,!![]);}catch(_0x152e3c){return BPromise[_0x5a53('0x23')](_0x152e3c);}return _0x4fc2da[_0x5a53('0x24')]();};}function saveUpdates(_0x2b3fe3,_0x216804){return function(_0x67829a){if(_0x67829a){return _0x67829a['update'](_0x2b3fe3)[_0x5a53('0x25')](function(_0x20f297){return _0x20f297;});}return null;};}function removeEntity(_0x501a75,_0x3903bd){return function(_0x125f26){if(_0x125f26){return _0x125f26['destroy']()[_0x5a53('0x25')](function(){_0x501a75['status'](0xcc)[_0x5a53('0x26')]();});}};}function handleEntityNotFound(_0x49fff1,_0x5a3ed0){return function(_0x546407){if(!_0x546407){_0x49fff1[_0x5a53('0x19')](0x194);}return _0x546407;};}function handleError(_0x17ef0b,_0x16c591){_0x16c591=_0x16c591||0x1f4;return function(_0x242438){logger['error'](_0x242438[_0x5a53('0x27')]);if(_0x242438[_0x5a53('0x28')]){delete _0x242438['name'];}_0x17ef0b[_0x5a53('0x1a')](_0x16c591)[_0x5a53('0x29')](_0x242438);};}exports[_0x5a53('0x2a')]=function(_0x38c479,_0x2f9738){var _0x374e02={},_0x4d2e33={},_0xbf3b2c={'count':0x0,'rows':[]};var _0x57d84e=_[_0x5a53('0x2b')](db[_0x5a53('0x2c')][_0x5a53('0x2d')],function(_0xdff037){return{'name':_0xdff037[_0x5a53('0x2e')],'type':_0xdff037['type'][_0x5a53('0x2f')]};});_0x4d2e33['model']=_[_0x5a53('0x2b')](_0x57d84e,_0x5a53('0x28'));_0x4d2e33['query']=_['keys'](_0x38c479[_0x5a53('0x30')]);_0x4d2e33[_0x5a53('0x31')]=_[_0x5a53('0x32')](_0x4d2e33[_0x5a53('0x33')],_0x4d2e33['query']);_0x374e02['attributes']=_[_0x5a53('0x32')](_0x4d2e33['model'],qs['fields'](_0x38c479[_0x5a53('0x30')][_0x5a53('0x34')]));_0x374e02[_0x5a53('0x35')]=_0x374e02['attributes'][_0x5a53('0x36')]?_0x374e02[_0x5a53('0x35')]:_0x4d2e33[_0x5a53('0x33')];if(!_0x38c479[_0x5a53('0x30')]['hasOwnProperty'](_0x5a53('0x37'))){_0x374e02[_0x5a53('0x1f')]=qs[_0x5a53('0x1f')](_0x38c479[_0x5a53('0x30')][_0x5a53('0x1f')]);_0x374e02[_0x5a53('0x1c')]=qs[_0x5a53('0x1c')](_0x38c479[_0x5a53('0x30')]['offset']);}_0x374e02['order']=qs[_0x5a53('0x38')](_0x38c479[_0x5a53('0x30')]['sort']);_0x374e02[_0x5a53('0x39')]=qs[_0x5a53('0x31')](_['pick'](_0x38c479[_0x5a53('0x30')],_0x4d2e33[_0x5a53('0x31')]),_0x57d84e);if(_0x38c479[_0x5a53('0x30')][_0x5a53('0x3a')]){_0x374e02['where']=_[_0x5a53('0x3b')](_0x374e02[_0x5a53('0x39')],{'$or':_[_0x5a53('0x2b')](_0x57d84e,function(_0x4946bb){if(_0x4946bb[_0x5a53('0x3c')]!==_0x5a53('0x3d')){var _0x4af0e4={};_0x4af0e4[_0x4946bb[_0x5a53('0x28')]]={'$like':'%'+_0x38c479['query'][_0x5a53('0x3a')]+'%'};return _0x4af0e4;}})});}_0x374e02=_[_0x5a53('0x3b')]({},_0x374e02,_0x38c479[_0x5a53('0x3e')]);var _0x4d159f={'where':_0x374e02['where']};return db[_0x5a53('0x2c')]['count'](_0x4d159f)['then'](function(_0x324f3d){_0xbf3b2c[_0x5a53('0x1e')]=_0x324f3d;if(_0x38c479[_0x5a53('0x30')]['includeAll']){_0x374e02[_0x5a53('0x3f')]=[{'all':!![]}];}return db[_0x5a53('0x2c')]['findAll'](_0x374e02);})['then'](function(_0x3fa809){_0xbf3b2c[_0x5a53('0x40')]=_0x3fa809;return _0xbf3b2c;})[_0x5a53('0x25')](respondWithFilteredResult(_0x2f9738,_0x374e02))[_0x5a53('0x41')](handleError(_0x2f9738,null));};exports['show']=function(_0x406447,_0x39b402){var _0x184645={'raw':!![],'where':{'id':_0x406447[_0x5a53('0x42')]['id']}},_0x5c82e6={};_0x5c82e6[_0x5a53('0x33')]=_[_0x5a53('0x43')](db[_0x5a53('0x2c')]['rawAttributes']);_0x5c82e6[_0x5a53('0x30')]=_['keys'](_0x406447[_0x5a53('0x30')]);_0x5c82e6[_0x5a53('0x31')]=_['intersection'](_0x5c82e6['model'],_0x5c82e6[_0x5a53('0x30')]);_0x184645[_0x5a53('0x35')]=_[_0x5a53('0x32')](_0x5c82e6['model'],qs[_0x5a53('0x34')](_0x406447['query'][_0x5a53('0x34')]));_0x184645[_0x5a53('0x35')]=_0x184645[_0x5a53('0x35')]['length']?_0x184645[_0x5a53('0x35')]:_0x5c82e6[_0x5a53('0x33')];if(_0x406447[_0x5a53('0x30')][_0x5a53('0x44')]){_0x184645[_0x5a53('0x3f')]=[{'all':!![]}];}_0x184645=_[_0x5a53('0x3b')]({},_0x184645,_0x406447['options']);return db[_0x5a53('0x2c')]['find'](_0x184645)['then'](handleEntityNotFound(_0x39b402,null))[_0x5a53('0x25')](respondWithResult(_0x39b402,null))['catch'](handleError(_0x39b402,null));};exports[_0x5a53('0x45')]=function(_0x2d946c,_0x475e2b){return db[_0x5a53('0x2c')][_0x5a53('0x45')](_0x2d946c[_0x5a53('0x46')],{})['then'](respondWithResult(_0x475e2b,0xc9))[_0x5a53('0x41')](handleError(_0x475e2b,null));};exports[_0x5a53('0x47')]=function(_0x199302,_0x3718a6){if(_0x199302[_0x5a53('0x46')]['id']){delete _0x199302['body']['id'];}return db[_0x5a53('0x2c')]['find']({'where':{'id':_0x199302[_0x5a53('0x42')]['id']}})[_0x5a53('0x25')](handleEntityNotFound(_0x3718a6,null))['then'](saveUpdates(_0x199302[_0x5a53('0x46')],null))[_0x5a53('0x25')](respondWithResult(_0x3718a6,null))[_0x5a53('0x41')](handleError(_0x3718a6,null));};exports[_0x5a53('0x48')]=function(_0x140682,_0x564790){return db['SmsTransferReport']['find']({'where':{'id':_0x140682[_0x5a53('0x42')]['id']}})[_0x5a53('0x25')](handleEntityNotFound(_0x564790,null))[_0x5a53('0x25')](removeEntity(_0x564790,null))[_0x5a53('0x41')](handleError(_0x564790,null));};exports[_0x5a53('0x49')]=function(_0x35eeeb,_0x54e14d){return db['SmsTransferReport']['describe']()['then'](respondWithResult(_0x54e14d,null))[_0x5a53('0x41')](handleError(_0x54e14d,null));};
\ No newline at end of file
+var _0x8419=['crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','set','Content-Range','apply','save','then','destroy','error','name','send','SmsTransferReport','rawAttributes','fieldName','type','key','query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','filter','where','merge','map','options','count','includeAll','rows','catch','show','params','find','create','body','update','describe','eml-format','zip-dir','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','lodash','squel'];(function(_0x29e4a5,_0x1160b1){var _0x201e3c=function(_0x14514c){while(--_0x14514c){_0x29e4a5['push'](_0x29e4a5['shift']());}};_0x201e3c(++_0x1160b1);}(_0x8419,0x1f3));var _0x9841=function(_0x1f634b,_0x37fe51){_0x1f634b=_0x1f634b-0x0;var _0x50b117=_0x8419[_0x1f634b];return _0x50b117;};'use strict';var emlformat=require(_0x9841('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x9841('0x1'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x9841('0x2'));var BPromise=require(_0x9841('0x3'));var Mustache=require('mustache');var util=require(_0x9841('0x4'));var path=require(_0x9841('0x5'));var sox=require(_0x9841('0x6'));var csv=require(_0x9841('0x7'));var ejs=require(_0x9841('0x8'));var fs=require('fs');var fs_extra=require(_0x9841('0x9'));var _=require(_0x9841('0xa'));var squel=require(_0x9841('0xb'));var crypto=require(_0x9841('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x9841('0xd'));var toCsv=require(_0x9841('0x7'));var querystring=require(_0x9841('0xe'));var Papa=require(_0x9841('0xf'));var Redis=require(_0x9841('0x10'));var authService=require(_0x9841('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0x9841('0x12'));var hardwareService=require(_0x9841('0x13'));var logger=require(_0x9841('0x14'))('api');var utils=require(_0x9841('0x15'));var config=require(_0x9841('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0x9841('0x17'))['db'];function respondWithStatusCode(_0x24d41e,_0x4eec5b){_0x4eec5b=_0x4eec5b||0xcc;return function(_0x584114){if(_0x584114){return _0x24d41e[_0x9841('0x18')](_0x4eec5b);}return _0x24d41e[_0x9841('0x19')](_0x4eec5b)[_0x9841('0x1a')]();};}function respondWithResult(_0x5d668a,_0x58330e){_0x58330e=_0x58330e||0xc8;return function(_0x2e8d93){if(_0x2e8d93){return _0x5d668a[_0x9841('0x19')](_0x58330e)[_0x9841('0x1b')](_0x2e8d93);}};}function respondWithFilteredResult(_0x23cf72,_0x2a57dc){return function(_0x55d5e3){if(_0x55d5e3){var _0x14f390=typeof _0x2a57dc[_0x9841('0x1c')]===_0x9841('0x1d')&&typeof _0x2a57dc[_0x9841('0x1e')]===_0x9841('0x1d');var _0x1ebc60=_0x55d5e3['count'];var _0x25761f=_0x14f390?0x0:_0x2a57dc[_0x9841('0x1c')];var _0x439bac=_0x14f390?_0x55d5e3['count']:_0x2a57dc[_0x9841('0x1c')]+_0x2a57dc[_0x9841('0x1e')];var _0x8386e7;if(_0x439bac>=_0x1ebc60){_0x439bac=_0x1ebc60;_0x8386e7=0xc8;}else{_0x8386e7=0xce;}_0x23cf72[_0x9841('0x19')](_0x8386e7);return _0x23cf72[_0x9841('0x1f')](_0x9841('0x20'),_0x25761f+'-'+_0x439bac+'/'+_0x1ebc60)[_0x9841('0x1b')](_0x55d5e3);}return null;};}function patchUpdates(_0x1b25d1){return function(_0x4f4561){try{jsonpatch[_0x9841('0x21')](_0x4f4561,_0x1b25d1,!![]);}catch(_0xc81f8b){return BPromise['reject'](_0xc81f8b);}return _0x4f4561[_0x9841('0x22')]();};}function saveUpdates(_0x222ae9,_0xdf3a03){return function(_0x48f502){if(_0x48f502){return _0x48f502['update'](_0x222ae9)[_0x9841('0x23')](function(_0x40e264){return _0x40e264;});}return null;};}function removeEntity(_0x584214,_0x4842ab){return function(_0x2d95f4){if(_0x2d95f4){return _0x2d95f4[_0x9841('0x24')]()[_0x9841('0x23')](function(){_0x584214[_0x9841('0x19')](0xcc)[_0x9841('0x1a')]();});}};}function handleEntityNotFound(_0x2623b6,_0x5bfdd9){return function(_0x441d73){if(!_0x441d73){_0x2623b6['sendStatus'](0x194);}return _0x441d73;};}function handleError(_0x31fbdc,_0x4858f9){_0x4858f9=_0x4858f9||0x1f4;return function(_0x740ac2){logger[_0x9841('0x25')](_0x740ac2['stack']);if(_0x740ac2[_0x9841('0x26')]){delete _0x740ac2['name'];}_0x31fbdc[_0x9841('0x19')](_0x4858f9)[_0x9841('0x27')](_0x740ac2);};}exports['index']=function(_0x411348,_0x108af2){var _0x25765e={},_0x4e7b0c={},_0x130ca6={'count':0x0,'rows':[]};var _0x1d5c5d=_['map'](db[_0x9841('0x28')][_0x9841('0x29')],function(_0x74498c){return{'name':_0x74498c[_0x9841('0x2a')],'type':_0x74498c[_0x9841('0x2b')][_0x9841('0x2c')]};});_0x4e7b0c['model']=_['map'](_0x1d5c5d,_0x9841('0x26'));_0x4e7b0c[_0x9841('0x2d')]=_[_0x9841('0x2e')](_0x411348[_0x9841('0x2d')]);_0x4e7b0c[_0x9841('0x2f')]=_[_0x9841('0x30')](_0x4e7b0c[_0x9841('0x31')],_0x4e7b0c[_0x9841('0x2d')]);_0x25765e[_0x9841('0x32')]=_[_0x9841('0x30')](_0x4e7b0c['model'],qs[_0x9841('0x33')](_0x411348[_0x9841('0x2d')][_0x9841('0x33')]));_0x25765e[_0x9841('0x32')]=_0x25765e['attributes'][_0x9841('0x34')]?_0x25765e[_0x9841('0x32')]:_0x4e7b0c[_0x9841('0x31')];if(!_0x411348[_0x9841('0x2d')][_0x9841('0x35')](_0x9841('0x36'))){_0x25765e[_0x9841('0x1e')]=qs[_0x9841('0x1e')](_0x411348[_0x9841('0x2d')][_0x9841('0x1e')]);_0x25765e['offset']=qs[_0x9841('0x1c')](_0x411348[_0x9841('0x2d')]['offset']);}_0x25765e[_0x9841('0x37')]=qs[_0x9841('0x38')](_0x411348[_0x9841('0x2d')]['sort']);_0x25765e['where']=qs[_0x9841('0x2f')](_['pick'](_0x411348[_0x9841('0x2d')],_0x4e7b0c['filters']),_0x1d5c5d);if(_0x411348[_0x9841('0x2d')][_0x9841('0x39')]){_0x25765e[_0x9841('0x3a')]=_[_0x9841('0x3b')](_0x25765e[_0x9841('0x3a')],{'$or':_[_0x9841('0x3c')](_0x1d5c5d,function(_0x827c9d){if(_0x827c9d[_0x9841('0x2b')]!=='VIRTUAL'){var _0x12bfbc={};_0x12bfbc[_0x827c9d[_0x9841('0x26')]]={'$like':'%'+_0x411348[_0x9841('0x2d')]['filter']+'%'};return _0x12bfbc;}})});}_0x25765e=_[_0x9841('0x3b')]({},_0x25765e,_0x411348[_0x9841('0x3d')]);var _0x253247={'where':_0x25765e[_0x9841('0x3a')]};return db[_0x9841('0x28')][_0x9841('0x3e')](_0x253247)[_0x9841('0x23')](function(_0x687c76){_0x130ca6['count']=_0x687c76;if(_0x411348[_0x9841('0x2d')][_0x9841('0x3f')]){_0x25765e['include']=[{'all':!![]}];}return db[_0x9841('0x28')]['findAll'](_0x25765e);})[_0x9841('0x23')](function(_0x4fedda){_0x130ca6[_0x9841('0x40')]=_0x4fedda;return _0x130ca6;})[_0x9841('0x23')](respondWithFilteredResult(_0x108af2,_0x25765e))[_0x9841('0x41')](handleError(_0x108af2,null));};exports[_0x9841('0x42')]=function(_0x33be39,_0x5ab7f2){var _0x2839b9={'raw':!![],'where':{'id':_0x33be39[_0x9841('0x43')]['id']}},_0x58ef91={};_0x58ef91['model']=_['keys'](db[_0x9841('0x28')][_0x9841('0x29')]);_0x58ef91[_0x9841('0x2d')]=_['keys'](_0x33be39[_0x9841('0x2d')]);_0x58ef91[_0x9841('0x2f')]=_[_0x9841('0x30')](_0x58ef91[_0x9841('0x31')],_0x58ef91['query']);_0x2839b9[_0x9841('0x32')]=_['intersection'](_0x58ef91[_0x9841('0x31')],qs[_0x9841('0x33')](_0x33be39[_0x9841('0x2d')][_0x9841('0x33')]));_0x2839b9['attributes']=_0x2839b9[_0x9841('0x32')][_0x9841('0x34')]?_0x2839b9[_0x9841('0x32')]:_0x58ef91[_0x9841('0x31')];if(_0x33be39[_0x9841('0x2d')][_0x9841('0x3f')]){_0x2839b9['include']=[{'all':!![]}];}_0x2839b9=_['merge']({},_0x2839b9,_0x33be39[_0x9841('0x3d')]);return db[_0x9841('0x28')][_0x9841('0x44')](_0x2839b9)[_0x9841('0x23')](handleEntityNotFound(_0x5ab7f2,null))['then'](respondWithResult(_0x5ab7f2,null))[_0x9841('0x41')](handleError(_0x5ab7f2,null));};exports[_0x9841('0x45')]=function(_0x161c3c,_0x5cdfba){return db['SmsTransferReport'][_0x9841('0x45')](_0x161c3c[_0x9841('0x46')],{})[_0x9841('0x23')](respondWithResult(_0x5cdfba,0xc9))['catch'](handleError(_0x5cdfba,null));};exports[_0x9841('0x47')]=function(_0x84214d,_0x33a664){if(_0x84214d['body']['id']){delete _0x84214d[_0x9841('0x46')]['id'];}return db[_0x9841('0x28')][_0x9841('0x44')]({'where':{'id':_0x84214d['params']['id']}})[_0x9841('0x23')](handleEntityNotFound(_0x33a664,null))[_0x9841('0x23')](saveUpdates(_0x84214d['body'],null))[_0x9841('0x23')](respondWithResult(_0x33a664,null))[_0x9841('0x41')](handleError(_0x33a664,null));};exports[_0x9841('0x24')]=function(_0x299e3f,_0x213ae9){return db['SmsTransferReport'][_0x9841('0x44')]({'where':{'id':_0x299e3f[_0x9841('0x43')]['id']}})[_0x9841('0x23')](handleEntityNotFound(_0x213ae9,null))[_0x9841('0x23')](removeEntity(_0x213ae9,null))['catch'](handleError(_0x213ae9,null));};exports[_0x9841('0x48')]=function(_0x14c9ac,_0x5b399b){return db[_0x9841('0x28')][_0x9841('0x48')]()[_0x9841('0x23')](respondWithResult(_0x5b399b,null))[_0x9841('0x41')](handleError(_0x5b399b,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb90d=['uniqueid','util','../../config/logger','api','moment','bluebird','request-promise','rimraf','../../config/environment','./smsTransferReport.attributes','define','SmsTransferReport','report_sms_transfer'];(function(_0x4b87b9,_0x120206){var _0x2d5eb9=function(_0x145072){while(--_0x145072){_0x4b87b9['push'](_0x4b87b9['shift']());}};_0x2d5eb9(++_0x120206);}(_0xb90d,0x17a));var _0xdb90=function(_0x3b0d12,_0x581b78){_0x3b0d12=_0x3b0d12-0x0;var _0x44eb08=_0xb90d[_0x3b0d12];return _0x44eb08;};'use strict';var _=require('lodash');var util=require(_0xdb90('0x0'));var logger=require(_0xdb90('0x1'))(_0xdb90('0x2'));var moment=require(_0xdb90('0x3'));var BPromise=require(_0xdb90('0x4'));var rp=require(_0xdb90('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0xdb90('0x6'));var config=require(_0xdb90('0x7'));var attributes=require(_0xdb90('0x8'));module['exports']=function(_0x5a0622,_0x2cc7cd){return _0x5a0622[_0xdb90('0x9')](_0xdb90('0xa'),attributes,{'tableName':_0xdb90('0xb'),'paranoid':![],'indexes':[{'name':'uniqueid','fields':[_0xdb90('0xc')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x0851=['../../config/logger','api','bluebird','request-promise','path','rimraf','../../config/environment','./smsTransferReport.attributes','exports','define','SmsTransferReport','report_sms_transfer','lodash','util'];(function(_0xd21fe7,_0x225a39){var _0x14d570=function(_0x3c0674){while(--_0x3c0674){_0xd21fe7['push'](_0xd21fe7['shift']());}};_0x14d570(++_0x225a39);}(_0x0851,0x8a));var _0x1085=function(_0xf852,_0x4ddd76){_0xf852=_0xf852-0x0;var _0x5b2550=_0x0851[_0xf852];return _0x5b2550;};'use strict';var _=require(_0x1085('0x0'));var util=require(_0x1085('0x1'));var logger=require(_0x1085('0x2'))(_0x1085('0x3'));var moment=require('moment');var BPromise=require(_0x1085('0x4'));var rp=require(_0x1085('0x5'));var fs=require('fs');var path=require(_0x1085('0x6'));var rimraf=require(_0x1085('0x7'));var config=require(_0x1085('0x8'));var attributes=require(_0x1085('0x9'));module[_0x1085('0xa')]=function(_0x1c9e36,_0x152eeb){return _0x1c9e36[_0x1085('0xb')](_0x1085('0xc'),attributes,{'tableName':_0x1085('0xd'),'paranoid':![],'indexes':[{'name':'uniqueid','fields':['uniqueid']}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x723e=['SmsTransferReport,\x20%s,\x20%s','debug','SmsTransferReport,\x20%s,\x20%s,\x20%s','request\x20sent','error','code','message','result','catch','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','request','info'];(function(_0x1176a4,_0x247dc2){var _0x4ae282=function(_0x3bd9e6){while(--_0x3bd9e6){_0x1176a4['push'](_0x1176a4['shift']());}};_0x4ae282(++_0x247dc2);}(_0x723e,0x179));var _0xe723=function(_0x45a472,_0x3fd9f6){_0x45a472=_0x45a472-0x0;var _0x46a410=_0x723e[_0x45a472];return _0x46a410;};'use strict';var _=require('lodash');var util=require(_0xe723('0x0'));var moment=require(_0xe723('0x1'));var BPromise=require(_0xe723('0x2'));var rs=require(_0xe723('0x3'));var fs=require('fs');var Redis=require(_0xe723('0x4'));var db=require(_0xe723('0x5'))['db'];var utils=require(_0xe723('0x6'));var logger=require(_0xe723('0x7'))(_0xe723('0x8'));var config=require(_0xe723('0x9'));var jayson=require('jayson/promise');var client=jayson[_0xe723('0xa')][_0xe723('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x1335cd,_0x3bf082,_0x2aebbd){return new BPromise(function(_0xe50f7,_0x1b46e0){return client[_0xe723('0xc')](_0x1335cd,_0x2aebbd)['then'](function(_0x380444){logger[_0xe723('0xd')](_0xe723('0xe'),_0x3bf082,'request\x20sent');logger[_0xe723('0xf')](_0xe723('0x10'),_0x3bf082,_0xe723('0x11'),JSON['stringify'](_0x380444));if(_0x380444[_0xe723('0x12')]){if(_0x380444[_0xe723('0x12')][_0xe723('0x13')]===0x1f4){logger[_0xe723('0x12')](_0xe723('0xe'),_0x3bf082,_0x380444['error'][_0xe723('0x14')]);return _0x1b46e0(_0x380444['error']['message']);}logger['error']('SmsTransferReport,\x20%s,\x20%s',_0x3bf082,_0x380444[_0xe723('0x12')][_0xe723('0x14')]);return _0xe50f7(_0x380444[_0xe723('0x12')][_0xe723('0x14')]);}else{logger[_0xe723('0xd')]('SmsTransferReport,\x20%s,\x20%s',_0x3bf082,_0xe723('0x11'));_0xe50f7(_0x380444[_0xe723('0x15')][_0xe723('0x14')]);}})[_0xe723('0x16')](function(_0x347fa0){logger[_0xe723('0x12')](_0xe723('0xe'),_0x3bf082,_0x347fa0);_0x1b46e0(_0x347fa0);});});}
\ No newline at end of file
+var _0x8375=['SmsTransferReport,\x20%s,\x20%s','request\x20sent','SmsTransferReport,\x20%s,\x20%s,\x20%s','error','message','result','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','jayson/promise','client','http','request','then','info'];(function(_0xebc1eb,_0x5c5ba3){var _0x1b4bbc=function(_0x5a936c){while(--_0x5a936c){_0xebc1eb['push'](_0xebc1eb['shift']());}};_0x1b4bbc(++_0x5c5ba3);}(_0x8375,0x132));var _0x5837=function(_0x1ddb9a,_0x4cc778){_0x1ddb9a=_0x1ddb9a-0x0;var _0x281b1c=_0x8375[_0x1ddb9a];return _0x281b1c;};'use strict';var _=require('lodash');var util=require(_0x5837('0x0'));var moment=require(_0x5837('0x1'));var BPromise=require(_0x5837('0x2'));var rs=require(_0x5837('0x3'));var fs=require('fs');var Redis=require(_0x5837('0x4'));var db=require(_0x5837('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0x5837('0x6'))(_0x5837('0x7'));var config=require('../../config/environment');var jayson=require(_0x5837('0x8'));var client=jayson[_0x5837('0x9')][_0x5837('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x1e0d00,_0x5e980d,_0x23454c){return new BPromise(function(_0x1f4f78,_0x89657e){return client[_0x5837('0xb')](_0x1e0d00,_0x23454c)[_0x5837('0xc')](function(_0x32e545){logger[_0x5837('0xd')](_0x5837('0xe'),_0x5e980d,_0x5837('0xf'));logger['debug'](_0x5837('0x10'),_0x5e980d,_0x5837('0xf'),JSON['stringify'](_0x32e545));if(_0x32e545[_0x5837('0x11')]){if(_0x32e545[_0x5837('0x11')]['code']===0x1f4){logger[_0x5837('0x11')]('SmsTransferReport,\x20%s,\x20%s',_0x5e980d,_0x32e545[_0x5837('0x11')][_0x5837('0x12')]);return _0x89657e(_0x32e545[_0x5837('0x11')][_0x5837('0x12')]);}logger['error'](_0x5837('0xe'),_0x5e980d,_0x32e545[_0x5837('0x11')][_0x5837('0x12')]);return _0x1f4f78(_0x32e545['error'][_0x5837('0x12')]);}else{logger[_0x5837('0xd')](_0x5837('0xe'),_0x5e980d,_0x5837('0xf'));_0x1f4f78(_0x32e545[_0x5837('0x13')][_0x5837('0x12')]);}})['catch'](function(_0x555ebb){logger['error'](_0x5837('0xe'),_0x5e980d,_0x555ebb);_0x89657e(_0x555ebb);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfae0=['format','%s-%s%s','basename','extname','now','post','single','file','create','put','delete','exports','multer','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./sound.controller','get','isAuthenticated','/:id','download','diskStorage','join','root','server/files/sounds/original/','originalname','replace'];(function(_0x5d76e3,_0x28f63f){var _0x386c2d=function(_0x411f96){while(--_0x411f96){_0x5d76e3['push'](_0x5d76e3['shift']());}};_0x386c2d(++_0x28f63f);}(_0xfae0,0x12c));var _0x0fae=function(_0xb61433,_0x31d758){_0xb61433=_0xb61433-0x0;var _0x123400=_0xfae0[_0xb61433];return _0x123400;};'use strict';var multer=require(_0x0fae('0x0'));var util=require('util');var path=require(_0x0fae('0x1'));var timeout=require(_0x0fae('0x2'));var express=require(_0x0fae('0x3'));var router=express[_0x0fae('0x4')]();var fs_extra=require(_0x0fae('0x5'));var auth=require(_0x0fae('0x6'));var interaction=require(_0x0fae('0x7'));var config=require(_0x0fae('0x8'));var controller=require(_0x0fae('0x9'));router[_0x0fae('0xa')]('/',auth[_0x0fae('0xb')](),controller['index']);router[_0x0fae('0xa')](_0x0fae('0xc'),auth[_0x0fae('0xb')](),controller['show']);router[_0x0fae('0xa')]('/:id/download',auth[_0x0fae('0xb')](),controller[_0x0fae('0xd')]);var upload=multer({'storage':multer[_0x0fae('0xe')]({'destination':function(_0x42c3a9,_0x446fae,_0x17ca95){_0x17ca95(null,path[_0x0fae('0xf')](config[_0x0fae('0x10')],_0x0fae('0x11')));},'filename':function(_0x1bd5ea,_0x29ebf6,_0x5b7778){_0x29ebf6[_0x0fae('0x12')]=_0x29ebf6[_0x0fae('0x12')][_0x0fae('0x13')](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-');_0x5b7778(null,util[_0x0fae('0x14')](_0x0fae('0x15'),path[_0x0fae('0x16')](_0x29ebf6[_0x0fae('0x12')],path[_0x0fae('0x17')](_0x29ebf6[_0x0fae('0x12')])),Date[_0x0fae('0x18')](),path[_0x0fae('0x17')](_0x29ebf6[_0x0fae('0x12')])));}})});router[_0x0fae('0x19')]('/',upload[_0x0fae('0x1a')](_0x0fae('0x1b')),controller[_0x0fae('0x1c')]);router[_0x0fae('0x1d')](_0x0fae('0xc'),auth[_0x0fae('0xb')](),controller['update']);router[_0x0fae('0x1e')](_0x0fae('0xc'),auth[_0x0fae('0xb')](),controller[_0x0fae('0x1e')]);module[_0x0fae('0x1f')]=router;
\ No newline at end of file
+var _0xf331=['show','/:id/download','download','root','server/files/sounds/original/','originalname','format','%s-%s%s','basename','extname','now','post','single','file','put','update','delete','exports','util','path','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./sound.controller','get','isAuthenticated','index','/:id'];(function(_0xce4508,_0xb1a149){var _0x130645=function(_0x53c616){while(--_0x53c616){_0xce4508['push'](_0xce4508['shift']());}};_0x130645(++_0xb1a149);}(_0xf331,0xad));var _0x1f33=function(_0x5af6b8,_0x311ef9){_0x5af6b8=_0x5af6b8-0x0;var _0x20b931=_0xf331[_0x5af6b8];return _0x20b931;};'use strict';var multer=require('multer');var util=require(_0x1f33('0x0'));var path=require(_0x1f33('0x1'));var timeout=require('connect-timeout');var express=require(_0x1f33('0x2'));var router=express[_0x1f33('0x3')]();var fs_extra=require(_0x1f33('0x4'));var auth=require(_0x1f33('0x5'));var interaction=require(_0x1f33('0x6'));var config=require(_0x1f33('0x7'));var controller=require(_0x1f33('0x8'));router[_0x1f33('0x9')]('/',auth[_0x1f33('0xa')](),controller[_0x1f33('0xb')]);router[_0x1f33('0x9')](_0x1f33('0xc'),auth[_0x1f33('0xa')](),controller[_0x1f33('0xd')]);router[_0x1f33('0x9')](_0x1f33('0xe'),auth[_0x1f33('0xa')](),controller[_0x1f33('0xf')]);var upload=multer({'storage':multer['diskStorage']({'destination':function(_0x21eccb,_0x150e85,_0x24f8f5){_0x24f8f5(null,path['join'](config[_0x1f33('0x10')],_0x1f33('0x11')));},'filename':function(_0x156e65,_0x2633dc,_0x301567){_0x2633dc[_0x1f33('0x12')]=_0x2633dc[_0x1f33('0x12')]['replace'](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-');_0x301567(null,util[_0x1f33('0x13')](_0x1f33('0x14'),path[_0x1f33('0x15')](_0x2633dc[_0x1f33('0x12')],path[_0x1f33('0x16')](_0x2633dc[_0x1f33('0x12')])),Date[_0x1f33('0x17')](),path['extname'](_0x2633dc[_0x1f33('0x12')])));}})});router[_0x1f33('0x18')]('/',upload[_0x1f33('0x19')](_0x1f33('0x1a')),controller['create']);router[_0x1f33('0x1b')](_0x1f33('0xc'),auth[_0x1f33('0xa')](),controller[_0x1f33('0x1c')]);router[_0x1f33('0x1d')](_0x1f33('0xc'),auth[_0x1f33('0xa')](),controller['delete']);module[_0x1f33('0x1e')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x43ba=['FLOAT','BIGINT','INTEGER','sequelize','exports','STRING'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x43ba,0xc3));var _0xa43b=function(_0x5ee368,_0x1035f7){_0x5ee368=_0x5ee368-0x0;var _0x188b54=_0x43ba[_0x5ee368];return _0x188b54;};'use strict';var Sequelize=require(_0xa43b('0x0'));module[_0xa43b('0x1')]={'name':{'type':Sequelize['STRING'],'unique':'name','allowNull':![]},'save_name':{'type':Sequelize['STRING']},'display_name':{'type':Sequelize[_0xa43b('0x2')],'defaultValue':''},'description':{'type':Sequelize['STRING']},'original_format':{'type':Sequelize[_0xa43b('0x2')]},'original_duration':{'type':Sequelize[_0xa43b('0x3')]},'original_sampleCount':{'type':Sequelize[_0xa43b('0x4')]},'original_channelCount':{'type':Sequelize[_0xa43b('0x5')]},'original_bitRate':{'type':Sequelize['BIGINT']},'original_sampleRate':{'type':Sequelize[_0xa43b('0x5')]},'converted_format':{'type':Sequelize['STRING']},'converted_duration':{'type':Sequelize[_0xa43b('0x3')]},'converted_sampleCount':{'type':Sequelize[_0xa43b('0x4')]},'converted_channelCount':{'type':Sequelize['INTEGER']},'converted_bitRate':{'type':Sequelize[_0xa43b('0x4')]},'converted_sampleRate':{'type':Sequelize[_0xa43b('0x5')]}};
\ No newline at end of file
+var _0x198d=['INTEGER','exports','STRING','FLOAT','BIGINT'];(function(_0x33f5cb,_0x4c1cd){var _0x182f39=function(_0x178c54){while(--_0x178c54){_0x33f5cb['push'](_0x33f5cb['shift']());}};_0x182f39(++_0x4c1cd);}(_0x198d,0x1b4));var _0xd198=function(_0x50e8e1,_0x39f9ed){_0x50e8e1=_0x50e8e1-0x0;var _0x153ea1=_0x198d[_0x50e8e1];return _0x153ea1;};'use strict';var Sequelize=require('sequelize');module[_0xd198('0x0')]={'name':{'type':Sequelize[_0xd198('0x1')],'unique':'name','allowNull':![]},'save_name':{'type':Sequelize[_0xd198('0x1')]},'display_name':{'type':Sequelize[_0xd198('0x1')],'defaultValue':''},'description':{'type':Sequelize['STRING']},'original_format':{'type':Sequelize['STRING']},'original_duration':{'type':Sequelize[_0xd198('0x2')]},'original_sampleCount':{'type':Sequelize[_0xd198('0x3')]},'original_channelCount':{'type':Sequelize['INTEGER']},'original_bitRate':{'type':Sequelize[_0xd198('0x3')]},'original_sampleRate':{'type':Sequelize[_0xd198('0x4')]},'converted_format':{'type':Sequelize['STRING']},'converted_duration':{'type':Sequelize[_0xd198('0x2')]},'converted_sampleCount':{'type':Sequelize[_0xd198('0x3')]},'converted_channelCount':{'type':Sequelize['INTEGER']},'converted_bitRate':{'type':Sequelize['BIGINT']},'converted_sampleRate':{'type':Sequelize['INTEGER']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf327=['role','user','Sounds','userProfileId','autoAssociation','start','pick','description','delete','server/files/sounds/original','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','ejs','lodash','squel','crypto','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','status','end','json','offset','undefined','limit','count','set','Content-Range','reject','save','update','then','get','UserProfileResource','sendStatus','error','stack','name','send','index','map','rawAttributes','type','model','query','keys','filters','attributes','intersection','fields','hasOwnProperty','order','sort','where','merge','VIRTUAL','filter','options','includeAll','include','findAll','catch','show','params','length','Sound','find','download','save_name','existsSync','join','root','converted_format','Sequelize','ValidationError','Sound\x20not\x20found','format','%s.%s','create','basename','originalname','extname','file','filename','substring','wav','server/files/sounds/converted','info','Sound\x20upload\x20filepath:\x20%s','Sound\x20upload\x20destination:\x20%s','0777','transcode','unlinkSync','src','original_duration','duration','original_sampleCount','sampleCount','original_channelCount','channelCount','original_bitRate','bitRate','original_sampleRate','sampleRate','dest','converted_duration','converted_sampleCount','converted_bitRate','chmodSync','body'];(function(_0x5d7e04,_0xa140){var _0x179210=function(_0x18a808){while(--_0x18a808){_0x5d7e04['push'](_0x5d7e04['shift']());}};_0x179210(++_0xa140);}(_0xf327,0x86));var _0x7f32=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xf327[_0x20a584];return _0x4b41a8;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x7f32('0x0'));var zipdir=require(_0x7f32('0x1'));var jsonpatch=require(_0x7f32('0x2'));var rp=require(_0x7f32('0x3'));var moment=require(_0x7f32('0x4'));var BPromise=require(_0x7f32('0x5'));var Mustache=require(_0x7f32('0x6'));var util=require(_0x7f32('0x7'));var path=require('path');var sox=require(_0x7f32('0x8'));var csv=require('to-csv');var ejs=require(_0x7f32('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x7f32('0xa'));var squel=require(_0x7f32('0xb'));var crypto=require(_0x7f32('0xc'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x7f32('0xd'));var Papa=require(_0x7f32('0xe'));var Redis=require(_0x7f32('0xf'));var authService=require(_0x7f32('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0x7f32('0x11'));var hardwareService=require(_0x7f32('0x12'));var logger=require(_0x7f32('0x13'))(_0x7f32('0x14'));var utils=require(_0x7f32('0x15'));var config=require(_0x7f32('0x16'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x170d8a,_0x112945){_0x112945=_0x112945||0xcc;return function(_0x106226){if(_0x106226){return _0x170d8a['sendStatus'](_0x112945);}return _0x170d8a[_0x7f32('0x17')](_0x112945)[_0x7f32('0x18')]();};}function respondWithResult(_0x23ff4a,_0x530f83){_0x530f83=_0x530f83||0xc8;return function(_0x22cd60){if(_0x22cd60){return _0x23ff4a['status'](_0x530f83)[_0x7f32('0x19')](_0x22cd60);}};}function respondWithFilteredResult(_0x4b29f9,_0x55da65){return function(_0x30fb91){if(_0x30fb91){var _0x448556=typeof _0x55da65[_0x7f32('0x1a')]===_0x7f32('0x1b')&&typeof _0x55da65[_0x7f32('0x1c')]==='undefined';var _0x3a6d48=_0x30fb91['count'];var _0x5df144=_0x448556?0x0:_0x55da65[_0x7f32('0x1a')];var _0x567b93=_0x448556?_0x30fb91[_0x7f32('0x1d')]:_0x55da65[_0x7f32('0x1a')]+_0x55da65[_0x7f32('0x1c')];var _0x2d3be4;if(_0x567b93>=_0x3a6d48){_0x567b93=_0x3a6d48;_0x2d3be4=0xc8;}else{_0x2d3be4=0xce;}_0x4b29f9['status'](_0x2d3be4);return _0x4b29f9[_0x7f32('0x1e')](_0x7f32('0x1f'),_0x5df144+'-'+_0x567b93+'/'+_0x3a6d48)[_0x7f32('0x19')](_0x30fb91);}return null;};}function patchUpdates(_0x195ab0){return function(_0x3f8a00){try{jsonpatch['apply'](_0x3f8a00,_0x195ab0,!![]);}catch(_0x59154d){return BPromise[_0x7f32('0x20')](_0x59154d);}return _0x3f8a00[_0x7f32('0x21')]();};}function saveUpdates(_0x275ec3,_0x4da2e8){return function(_0x217d5e){if(_0x217d5e){return _0x217d5e[_0x7f32('0x22')](_0x275ec3)[_0x7f32('0x23')](function(_0x253a6c){return _0x253a6c;});}return null;};}function removeEntity(_0x40cb36,_0xf9c68f){return function(_0x4311ea){if(_0x4311ea){return _0x4311ea['destroy']()['then'](function(){var _0x120596=_0x4311ea[_0x7f32('0x24')]({'plain':!![]});var _0xa55abe='Sounds';return db[_0x7f32('0x25')]['destroy']({'where':{'type':_0xa55abe,'resourceId':_0x120596['id']}})['then'](function(){return _0x4311ea;});})[_0x7f32('0x23')](function(){_0x40cb36[_0x7f32('0x17')](0xcc)[_0x7f32('0x18')]();});}};}function handleEntityNotFound(_0xec0280,_0xa5903){return function(_0x534059){if(!_0x534059){_0xec0280[_0x7f32('0x26')](0x194);}return _0x534059;};}function handleError(_0x524374,_0x2ca6f8){_0x2ca6f8=_0x2ca6f8||0x1f4;return function(_0x58cc3d){logger[_0x7f32('0x27')](_0x58cc3d[_0x7f32('0x28')]);if(_0x58cc3d[_0x7f32('0x29')]){delete _0x58cc3d[_0x7f32('0x29')];}_0x524374[_0x7f32('0x17')](_0x2ca6f8)[_0x7f32('0x2a')](_0x58cc3d);};}exports[_0x7f32('0x2b')]=function(_0xcd5efc,_0x38001e){var _0x3a288a={},_0x140ffc={},_0x53268b={'count':0x0,'rows':[]};var _0x331389=_[_0x7f32('0x2c')](db['Sound'][_0x7f32('0x2d')],function(_0x960b17){return{'name':_0x960b17['fieldName'],'type':_0x960b17[_0x7f32('0x2e')]['key']};});_0x140ffc[_0x7f32('0x2f')]=_['map'](_0x331389,_0x7f32('0x29'));_0x140ffc[_0x7f32('0x30')]=_[_0x7f32('0x31')](_0xcd5efc[_0x7f32('0x30')]);_0x140ffc[_0x7f32('0x32')]=_['intersection'](_0x140ffc[_0x7f32('0x2f')],_0x140ffc[_0x7f32('0x30')]);_0x3a288a[_0x7f32('0x33')]=_[_0x7f32('0x34')](_0x140ffc[_0x7f32('0x2f')],qs[_0x7f32('0x35')](_0xcd5efc[_0x7f32('0x30')][_0x7f32('0x35')]));_0x3a288a[_0x7f32('0x33')]=_0x3a288a[_0x7f32('0x33')]['length']?_0x3a288a[_0x7f32('0x33')]:_0x140ffc[_0x7f32('0x2f')];if(!_0xcd5efc[_0x7f32('0x30')][_0x7f32('0x36')]('nolimit')){_0x3a288a['limit']=qs[_0x7f32('0x1c')](_0xcd5efc[_0x7f32('0x30')]['limit']);_0x3a288a['offset']=qs['offset'](_0xcd5efc[_0x7f32('0x30')]['offset']);}_0x3a288a[_0x7f32('0x37')]=qs[_0x7f32('0x38')](_0xcd5efc['query'][_0x7f32('0x38')]);_0x3a288a[_0x7f32('0x39')]=qs[_0x7f32('0x32')](_['pick'](_0xcd5efc[_0x7f32('0x30')],_0x140ffc[_0x7f32('0x32')]),_0x331389);if(_0xcd5efc[_0x7f32('0x30')]['filter']){_0x3a288a[_0x7f32('0x39')]=_[_0x7f32('0x3a')](_0x3a288a['where'],{'$or':_[_0x7f32('0x2c')](_0x331389,function(_0x4b9fbc){if(_0x4b9fbc[_0x7f32('0x2e')]!==_0x7f32('0x3b')){var _0xfd676a={};_0xfd676a[_0x4b9fbc[_0x7f32('0x29')]]={'$like':'%'+_0xcd5efc[_0x7f32('0x30')][_0x7f32('0x3c')]+'%'};return _0xfd676a;}})});}_0x3a288a=_[_0x7f32('0x3a')]({},_0x3a288a,_0xcd5efc[_0x7f32('0x3d')]);var _0x57c5e8={'where':_0x3a288a[_0x7f32('0x39')]};return db['Sound']['count'](_0x57c5e8)[_0x7f32('0x23')](function(_0x3a181e){_0x53268b[_0x7f32('0x1d')]=_0x3a181e;if(_0xcd5efc[_0x7f32('0x30')][_0x7f32('0x3e')]){_0x3a288a[_0x7f32('0x3f')]=[{'all':!![]}];}return db['Sound'][_0x7f32('0x40')](_0x3a288a);})[_0x7f32('0x23')](function(_0xecbf73){_0x53268b['rows']=_0xecbf73;return _0x53268b;})['then'](respondWithFilteredResult(_0x38001e,_0x3a288a))[_0x7f32('0x41')](handleError(_0x38001e,null));};exports[_0x7f32('0x42')]=function(_0x52aab6,_0x26cbca){var _0x3674d7={'raw':!![],'where':{'id':_0x52aab6[_0x7f32('0x43')]['id']}},_0x4e5489={};_0x4e5489[_0x7f32('0x2f')]=_[_0x7f32('0x31')](db['Sound']['rawAttributes']);_0x4e5489[_0x7f32('0x30')]=_[_0x7f32('0x31')](_0x52aab6['query']);_0x4e5489[_0x7f32('0x32')]=_[_0x7f32('0x34')](_0x4e5489[_0x7f32('0x2f')],_0x4e5489[_0x7f32('0x30')]);_0x3674d7[_0x7f32('0x33')]=_[_0x7f32('0x34')](_0x4e5489[_0x7f32('0x2f')],qs[_0x7f32('0x35')](_0x52aab6[_0x7f32('0x30')][_0x7f32('0x35')]));_0x3674d7['attributes']=_0x3674d7[_0x7f32('0x33')][_0x7f32('0x44')]?_0x3674d7[_0x7f32('0x33')]:_0x4e5489['model'];if(_0x52aab6['query']['includeAll']){_0x3674d7[_0x7f32('0x3f')]=[{'all':!![]}];}_0x3674d7=_[_0x7f32('0x3a')]({},_0x3674d7,_0x52aab6[_0x7f32('0x3d')]);return db[_0x7f32('0x45')][_0x7f32('0x46')](_0x3674d7)['then'](handleEntityNotFound(_0x26cbca,null))[_0x7f32('0x23')](respondWithResult(_0x26cbca,null))[_0x7f32('0x41')](handleError(_0x26cbca,null));};exports[_0x7f32('0x47')]=function(_0x4d39c6,_0x4aac2d,_0x2bebda){return db[_0x7f32('0x45')][_0x7f32('0x46')]({'where':{'id':_0x4d39c6[_0x7f32('0x43')]['id']},'attributes':['name',_0x7f32('0x48'),'converted_format'],'raw':!![]})[_0x7f32('0x23')](handleEntityNotFound(_0x4aac2d,null))[_0x7f32('0x23')](function(_0x314bcf){if(_0x314bcf){if(!fs[_0x7f32('0x49')](path[_0x7f32('0x4a')](config[_0x7f32('0x4b')],'server/files/sounds/converted',_0x314bcf[_0x7f32('0x48')]+'.'+_0x314bcf[_0x7f32('0x4c')]))){throw new db[(_0x7f32('0x4d'))][(_0x7f32('0x4e'))](_0x7f32('0x4f'));}return _0x4aac2d[_0x7f32('0x47')](path[_0x7f32('0x4a')](config['root'],'server/files/sounds/converted',util[_0x7f32('0x50')](_0x7f32('0x51'),_0x314bcf[_0x7f32('0x48')],_0x314bcf[_0x7f32('0x4c')])),util['format']('%s.%s',_0x314bcf[_0x7f32('0x29')],_0x314bcf['converted_format']));}return null;})[_0x7f32('0x41')](handleError(_0x4aac2d,null));};exports[_0x7f32('0x52')]=function(_0x29e091,_0x350605,_0x569426){var _0x24e3d3={'name':path[_0x7f32('0x53')](_0x29e091['file'][_0x7f32('0x54')],path[_0x7f32('0x55')](_0x29e091[_0x7f32('0x56')][_0x7f32('0x54')])),'save_name':path[_0x7f32('0x53')](_0x29e091[_0x7f32('0x56')][_0x7f32('0x57')],path['extname'](_0x29e091['file']['filename'])),'original_format':path['extname'](_0x29e091[_0x7f32('0x56')][_0x7f32('0x54')])[_0x7f32('0x58')](0x1),'converted_format':_0x7f32('0x59')};var _0x336bcd=path[_0x7f32('0x4a')](config['root'],'server/files/sounds/original',_0x29e091[_0x7f32('0x56')]['filename']);var _0x4c8405=path[_0x7f32('0x4a')](config[_0x7f32('0x4b')],_0x7f32('0x5a'),util[_0x7f32('0x50')](_0x7f32('0x51'),path['basename'](_0x29e091[_0x7f32('0x56')][_0x7f32('0x57')],path['extname'](_0x29e091[_0x7f32('0x56')][_0x7f32('0x57')])),_0x24e3d3[_0x7f32('0x4c')]));logger[_0x7f32('0x5b')](_0x7f32('0x5c'),_0x336bcd);logger[_0x7f32('0x5b')](_0x7f32('0x5d'),_0x4c8405);try{fs['chmodSync'](_0x336bcd,parseInt(_0x7f32('0x5e'),0x8));var _0x4a5548=sox[_0x7f32('0x5f')](_0x336bcd,_0x4c8405,{'sampleRate':0x1f40,'format':_0x7f32('0x59'),'channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x4a5548['on'](_0x7f32('0x27'),function(_0x14297f){fs[_0x7f32('0x60')](_0x336bcd);_0x350605[_0x7f32('0x17')](0x1f4)[_0x7f32('0x2a')](_0x14297f);});_0x4a5548['on'](_0x7f32('0x61'),function(_0x1b2335){_0x24e3d3[_0x7f32('0x62')]=isNaN(_0x1b2335[_0x7f32('0x63')])?null:_0x1b2335['duration']*0x3e8;_0x24e3d3[_0x7f32('0x64')]=isNaN(_0x1b2335[_0x7f32('0x65')])?null:_0x1b2335['sampleCount'];_0x24e3d3[_0x7f32('0x66')]=isNaN(_0x1b2335[_0x7f32('0x67')])?null:_0x1b2335[_0x7f32('0x67')];_0x24e3d3[_0x7f32('0x68')]=isNaN(_0x1b2335[_0x7f32('0x69')])?null:_0x1b2335[_0x7f32('0x69')];_0x24e3d3[_0x7f32('0x6a')]=isNaN(_0x1b2335[_0x7f32('0x6b')])?null:_0x1b2335['sampleRate'];});_0x4a5548['on'](_0x7f32('0x6c'),function(_0x549019){_0x24e3d3[_0x7f32('0x6d')]=isNaN(_0x549019[_0x7f32('0x63')])?null:_0x549019[_0x7f32('0x63')]*0x3e8;_0x24e3d3[_0x7f32('0x6e')]=isNaN(_0x549019['sampleCount'])?null:_0x549019['sampleCount'];_0x24e3d3['converted_channelCount']=isNaN(_0x549019[_0x7f32('0x67')])?null:_0x549019[_0x7f32('0x67')];_0x24e3d3[_0x7f32('0x6f')]=isNaN(_0x549019['bitRate'])?null:_0x549019[_0x7f32('0x69')];_0x24e3d3['converted_sampleRate']=isNaN(_0x549019[_0x7f32('0x6b')])?null:_0x549019['sampleRate'];});_0x4a5548['on']('end',function(){fs[_0x7f32('0x70')](_0x4c8405,parseInt(_0x7f32('0x5e'),0x8));return db['Sound'][_0x7f32('0x52')](_0x24e3d3)['then'](function(_0x6b111f){var _0x5990c1={'role':_0x29e091[_0x7f32('0x71')]['role'],'userProfileId':_0x29e091['body']['userProfileId']};if(!_0x5990c1)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x5990c1[_0x7f32('0x72')]===_0x7f32('0x73')){var _0x2915a5=_0x6b111f[_0x7f32('0x24')]({'plain':!![]});return db['UserProfileSection'][_0x7f32('0x46')]({'where':{'name':_0x7f32('0x74'),'userProfileId':_0x5990c1[_0x7f32('0x75')]},'raw':!![]})[_0x7f32('0x23')](function(_0x593260){if(_0x593260&&_0x593260[_0x7f32('0x76')]===0x0){return db[_0x7f32('0x25')]['create']({'name':_0x2915a5[_0x7f32('0x29')],'resourceId':_0x2915a5['id'],'type':_0x593260['name'],'sectionId':_0x593260['id']},{})[_0x7f32('0x23')](function(){return _0x6b111f;});}else{return _0x6b111f;}})[_0x7f32('0x41')](function(_0x36acfd){logger[_0x7f32('0x27')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x36acfd);throw _0x36acfd;});}return _0x6b111f;})[_0x7f32('0x23')](respondWithResult(_0x350605,null))[_0x7f32('0x41')](handleError(_0x350605,null));});_0x4a5548[_0x7f32('0x77')]();}catch(_0x50b440){_0x350605[_0x7f32('0x17')](0x1f4)[_0x7f32('0x2a')](_0x50b440);}};exports[_0x7f32('0x22')]=function(_0x548b0d,_0x43f561,_0xae9cf0){return db['Sound'][_0x7f32('0x46')]({'where':{'id':_0x548b0d[_0x7f32('0x43')]['id']}})[_0x7f32('0x23')](handleEntityNotFound(_0x43f561,null))[_0x7f32('0x23')](saveUpdates(_[_0x7f32('0x78')](_0x548b0d[_0x7f32('0x71')],[_0x7f32('0x29'),_0x7f32('0x79')]),null))[_0x7f32('0x23')](respondWithResult(_0x43f561,null))[_0x7f32('0x41')](handleError(_0x43f561,null));};exports[_0x7f32('0x7a')]=function(_0xec32de,_0x1384c5,_0x46f872){return db[_0x7f32('0x45')][_0x7f32('0x46')]({'where':{'id':_0xec32de['params']['id']}})[_0x7f32('0x23')](function(_0x43b5df){if(_0x43b5df){return _0x43b5df['destroy']();}})[_0x7f32('0x23')](function(_0x2a5e46){var _0xd7fba9=path[_0x7f32('0x4a')](config[_0x7f32('0x4b')],_0x7f32('0x7b'),util[_0x7f32('0x50')]('%s.%s',_0x2a5e46[_0x7f32('0x48')],_0x2a5e46['original_format']));var _0x4290f1=path['join'](config[_0x7f32('0x4b')],_0x7f32('0x5a'),util[_0x7f32('0x50')](_0x7f32('0x51'),_0x2a5e46[_0x7f32('0x48')],_0x2a5e46[_0x7f32('0x4c')]));fs[_0x7f32('0x60')](_0xd7fba9);fs[_0x7f32('0x60')](_0x4290f1);return _0x2a5e46;})[_0x7f32('0x23')](function(_0x8aeeb9){if(_0x8aeeb9){return _0x1384c5[_0x7f32('0x17')](0xcc)[_0x7f32('0x18')]();}})[_0x7f32('0x23')](handleEntityNotFound(_0x1384c5,null))[_0x7f32('0x41')](handleError(_0x1384c5,null));};
\ No newline at end of file
+var _0x8f8c=['root','server/files/sounds/converted','Sequelize','Sound\x20not\x20found','%s.%s','create','basename','file','originalname','filename','extname','wav','server/files/sounds/original','format','info','chmodSync','0777','transcode','error','unlinkSync','src','original_duration','duration','original_sampleCount','sampleCount','original_channelCount','channelCount','original_bitRate','bitRate','sampleRate','converted_duration','converted_channelCount','body','role','userProfileId','user','UserProfileSection','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','start','update','description','delete','original_format','eml-format','rimraf','fast-json-patch','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/utils','../../config/license/util','sendStatus','status','end','json','limit','undefined','count','offset','set','Content-Range','apply','reject','save','then','destroy','get','Sounds','UserProfileResource','name','send','index','map','Sound','fieldName','type','model','query','keys','filters','intersection','fields','attributes','hasOwnProperty','order','sort','where','pick','VIRTUAL','filter','merge','options','include','rows','catch','show','params','rawAttributes','includeAll','find','download','save_name','converted_format','existsSync','join'];(function(_0x2cd47b,_0x297a07){var _0x10758e=function(_0x232235){while(--_0x232235){_0x2cd47b['push'](_0x2cd47b['shift']());}};_0x10758e(++_0x297a07);}(_0x8f8c,0xa3));var _0xc8f8=function(_0x474bc0,_0x26989c){_0x474bc0=_0x474bc0-0x0;var _0x4b24cf=_0x8f8c[_0x474bc0];return _0x4b24cf;};'use strict';var emlformat=require(_0xc8f8('0x0'));var rimraf=require(_0xc8f8('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xc8f8('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0xc8f8('0x3'));var Mustache=require(_0xc8f8('0x4'));var util=require('util');var path=require(_0xc8f8('0x5'));var sox=require(_0xc8f8('0x6'));var csv=require(_0xc8f8('0x7'));var ejs=require(_0xc8f8('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xc8f8('0x9'));var squel=require('squel');var crypto=require(_0xc8f8('0xa'));var jsforce=require(_0xc8f8('0xb'));var deskjs=require('desk.js');var toCsv=require(_0xc8f8('0x7'));var querystring=require(_0xc8f8('0xc'));var Papa=require(_0xc8f8('0xd'));var Redis=require(_0xc8f8('0xe'));var authService=require(_0xc8f8('0xf'));var qs=require(_0xc8f8('0x10'));var as=require(_0xc8f8('0x11'));var hardwareService=require(_0xc8f8('0x12'));var logger=require(_0xc8f8('0x13'))(_0xc8f8('0x14'));var utils=require(_0xc8f8('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0xc8f8('0x16'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x348733,_0x427569){_0x427569=_0x427569||0xcc;return function(_0x233a00){if(_0x233a00){return _0x348733[_0xc8f8('0x17')](_0x427569);}return _0x348733[_0xc8f8('0x18')](_0x427569)[_0xc8f8('0x19')]();};}function respondWithResult(_0xc2f95e,_0x48cbbc){_0x48cbbc=_0x48cbbc||0xc8;return function(_0x22e5c8){if(_0x22e5c8){return _0xc2f95e[_0xc8f8('0x18')](_0x48cbbc)[_0xc8f8('0x1a')](_0x22e5c8);}};}function respondWithFilteredResult(_0x536ced,_0x3d88b5){return function(_0x335650){if(_0x335650){var _0x2417ee=typeof _0x3d88b5['offset']==='undefined'&&typeof _0x3d88b5[_0xc8f8('0x1b')]===_0xc8f8('0x1c');var _0x18acc5=_0x335650[_0xc8f8('0x1d')];var _0x13a6a5=_0x2417ee?0x0:_0x3d88b5[_0xc8f8('0x1e')];var _0x526072=_0x2417ee?_0x335650['count']:_0x3d88b5[_0xc8f8('0x1e')]+_0x3d88b5[_0xc8f8('0x1b')];var _0x435651;if(_0x526072>=_0x18acc5){_0x526072=_0x18acc5;_0x435651=0xc8;}else{_0x435651=0xce;}_0x536ced[_0xc8f8('0x18')](_0x435651);return _0x536ced[_0xc8f8('0x1f')](_0xc8f8('0x20'),_0x13a6a5+'-'+_0x526072+'/'+_0x18acc5)[_0xc8f8('0x1a')](_0x335650);}return null;};}function patchUpdates(_0x125f49){return function(_0xda18c2){try{jsonpatch[_0xc8f8('0x21')](_0xda18c2,_0x125f49,!![]);}catch(_0x11d65c){return BPromise[_0xc8f8('0x22')](_0x11d65c);}return _0xda18c2[_0xc8f8('0x23')]();};}function saveUpdates(_0x3de469,_0x377854){return function(_0x482940){if(_0x482940){return _0x482940['update'](_0x3de469)[_0xc8f8('0x24')](function(_0x5c7cf4){return _0x5c7cf4;});}return null;};}function removeEntity(_0x2b6a94,_0x5165ad){return function(_0x2c9352){if(_0x2c9352){return _0x2c9352[_0xc8f8('0x25')]()[_0xc8f8('0x24')](function(){var _0xe2c69f=_0x2c9352[_0xc8f8('0x26')]({'plain':!![]});var _0xdf0ec9=_0xc8f8('0x27');return db[_0xc8f8('0x28')]['destroy']({'where':{'type':_0xdf0ec9,'resourceId':_0xe2c69f['id']}})['then'](function(){return _0x2c9352;});})[_0xc8f8('0x24')](function(){_0x2b6a94[_0xc8f8('0x18')](0xcc)[_0xc8f8('0x19')]();});}};}function handleEntityNotFound(_0x54c635,_0x48d85c){return function(_0x2ab6ad){if(!_0x2ab6ad){_0x54c635['sendStatus'](0x194);}return _0x2ab6ad;};}function handleError(_0x2dd22c,_0x2b6687){_0x2b6687=_0x2b6687||0x1f4;return function(_0x214d33){logger['error'](_0x214d33['stack']);if(_0x214d33[_0xc8f8('0x29')]){delete _0x214d33[_0xc8f8('0x29')];}_0x2dd22c[_0xc8f8('0x18')](_0x2b6687)[_0xc8f8('0x2a')](_0x214d33);};}exports[_0xc8f8('0x2b')]=function(_0xf3dadf,_0x44ff7b){var _0x4bcddb={},_0x4568fe={},_0x58182b={'count':0x0,'rows':[]};var _0x5c4fde=_[_0xc8f8('0x2c')](db[_0xc8f8('0x2d')]['rawAttributes'],function(_0x1c4521){return{'name':_0x1c4521[_0xc8f8('0x2e')],'type':_0x1c4521[_0xc8f8('0x2f')]['key']};});_0x4568fe[_0xc8f8('0x30')]=_[_0xc8f8('0x2c')](_0x5c4fde,_0xc8f8('0x29'));_0x4568fe[_0xc8f8('0x31')]=_[_0xc8f8('0x32')](_0xf3dadf[_0xc8f8('0x31')]);_0x4568fe[_0xc8f8('0x33')]=_['intersection'](_0x4568fe[_0xc8f8('0x30')],_0x4568fe[_0xc8f8('0x31')]);_0x4bcddb['attributes']=_[_0xc8f8('0x34')](_0x4568fe['model'],qs[_0xc8f8('0x35')](_0xf3dadf[_0xc8f8('0x31')][_0xc8f8('0x35')]));_0x4bcddb[_0xc8f8('0x36')]=_0x4bcddb['attributes']['length']?_0x4bcddb[_0xc8f8('0x36')]:_0x4568fe[_0xc8f8('0x30')];if(!_0xf3dadf[_0xc8f8('0x31')][_0xc8f8('0x37')]('nolimit')){_0x4bcddb[_0xc8f8('0x1b')]=qs[_0xc8f8('0x1b')](_0xf3dadf['query'][_0xc8f8('0x1b')]);_0x4bcddb[_0xc8f8('0x1e')]=qs[_0xc8f8('0x1e')](_0xf3dadf[_0xc8f8('0x31')][_0xc8f8('0x1e')]);}_0x4bcddb[_0xc8f8('0x38')]=qs[_0xc8f8('0x39')](_0xf3dadf[_0xc8f8('0x31')][_0xc8f8('0x39')]);_0x4bcddb[_0xc8f8('0x3a')]=qs['filters'](_[_0xc8f8('0x3b')](_0xf3dadf['query'],_0x4568fe[_0xc8f8('0x33')]),_0x5c4fde);if(_0xf3dadf['query']['filter']){_0x4bcddb[_0xc8f8('0x3a')]=_['merge'](_0x4bcddb[_0xc8f8('0x3a')],{'$or':_[_0xc8f8('0x2c')](_0x5c4fde,function(_0x5d5786){if(_0x5d5786[_0xc8f8('0x2f')]!==_0xc8f8('0x3c')){var _0x5a48de={};_0x5a48de[_0x5d5786['name']]={'$like':'%'+_0xf3dadf[_0xc8f8('0x31')][_0xc8f8('0x3d')]+'%'};return _0x5a48de;}})});}_0x4bcddb=_[_0xc8f8('0x3e')]({},_0x4bcddb,_0xf3dadf[_0xc8f8('0x3f')]);var _0x238ec9={'where':_0x4bcddb[_0xc8f8('0x3a')]};return db[_0xc8f8('0x2d')][_0xc8f8('0x1d')](_0x238ec9)[_0xc8f8('0x24')](function(_0x4d3847){_0x58182b[_0xc8f8('0x1d')]=_0x4d3847;if(_0xf3dadf['query']['includeAll']){_0x4bcddb[_0xc8f8('0x40')]=[{'all':!![]}];}return db[_0xc8f8('0x2d')]['findAll'](_0x4bcddb);})[_0xc8f8('0x24')](function(_0x40143b){_0x58182b[_0xc8f8('0x41')]=_0x40143b;return _0x58182b;})['then'](respondWithFilteredResult(_0x44ff7b,_0x4bcddb))[_0xc8f8('0x42')](handleError(_0x44ff7b,null));};exports[_0xc8f8('0x43')]=function(_0x1fac1d,_0x109826){var _0x97d196={'raw':!![],'where':{'id':_0x1fac1d[_0xc8f8('0x44')]['id']}},_0x1229bb={};_0x1229bb[_0xc8f8('0x30')]=_['keys'](db[_0xc8f8('0x2d')][_0xc8f8('0x45')]);_0x1229bb[_0xc8f8('0x31')]=_['keys'](_0x1fac1d[_0xc8f8('0x31')]);_0x1229bb[_0xc8f8('0x33')]=_[_0xc8f8('0x34')](_0x1229bb[_0xc8f8('0x30')],_0x1229bb[_0xc8f8('0x31')]);_0x97d196['attributes']=_[_0xc8f8('0x34')](_0x1229bb[_0xc8f8('0x30')],qs[_0xc8f8('0x35')](_0x1fac1d[_0xc8f8('0x31')][_0xc8f8('0x35')]));_0x97d196[_0xc8f8('0x36')]=_0x97d196[_0xc8f8('0x36')]['length']?_0x97d196['attributes']:_0x1229bb[_0xc8f8('0x30')];if(_0x1fac1d[_0xc8f8('0x31')][_0xc8f8('0x46')]){_0x97d196[_0xc8f8('0x40')]=[{'all':!![]}];}_0x97d196=_[_0xc8f8('0x3e')]({},_0x97d196,_0x1fac1d['options']);return db['Sound'][_0xc8f8('0x47')](_0x97d196)[_0xc8f8('0x24')](handleEntityNotFound(_0x109826,null))[_0xc8f8('0x24')](respondWithResult(_0x109826,null))['catch'](handleError(_0x109826,null));};exports[_0xc8f8('0x48')]=function(_0x520828,_0x502363,_0x97d462){return db[_0xc8f8('0x2d')][_0xc8f8('0x47')]({'where':{'id':_0x520828['params']['id']},'attributes':[_0xc8f8('0x29'),_0xc8f8('0x49'),_0xc8f8('0x4a')],'raw':!![]})['then'](handleEntityNotFound(_0x502363,null))['then'](function(_0x40d136){if(_0x40d136){if(!fs[_0xc8f8('0x4b')](path[_0xc8f8('0x4c')](config[_0xc8f8('0x4d')],_0xc8f8('0x4e'),_0x40d136[_0xc8f8('0x49')]+'.'+_0x40d136['converted_format']))){throw new db[(_0xc8f8('0x4f'))]['ValidationError'](_0xc8f8('0x50'));}return _0x502363[_0xc8f8('0x48')](path[_0xc8f8('0x4c')](config[_0xc8f8('0x4d')],_0xc8f8('0x4e'),util['format'](_0xc8f8('0x51'),_0x40d136[_0xc8f8('0x49')],_0x40d136['converted_format'])),util['format'](_0xc8f8('0x51'),_0x40d136[_0xc8f8('0x29')],_0x40d136['converted_format']));}return null;})[_0xc8f8('0x42')](handleError(_0x502363,null));};exports[_0xc8f8('0x52')]=function(_0x3dc73e,_0x40f149,_0x242240){var _0x95cff8={'name':path[_0xc8f8('0x53')](_0x3dc73e[_0xc8f8('0x54')][_0xc8f8('0x55')],path['extname'](_0x3dc73e[_0xc8f8('0x54')][_0xc8f8('0x55')])),'save_name':path['basename'](_0x3dc73e[_0xc8f8('0x54')][_0xc8f8('0x56')],path[_0xc8f8('0x57')](_0x3dc73e[_0xc8f8('0x54')][_0xc8f8('0x56')])),'original_format':path[_0xc8f8('0x57')](_0x3dc73e[_0xc8f8('0x54')][_0xc8f8('0x55')])['substring'](0x1),'converted_format':_0xc8f8('0x58')};var _0x9b30f8=path[_0xc8f8('0x4c')](config['root'],_0xc8f8('0x59'),_0x3dc73e[_0xc8f8('0x54')][_0xc8f8('0x56')]);var _0x1db6e6=path['join'](config[_0xc8f8('0x4d')],_0xc8f8('0x4e'),util[_0xc8f8('0x5a')](_0xc8f8('0x51'),path[_0xc8f8('0x53')](_0x3dc73e[_0xc8f8('0x54')]['filename'],path[_0xc8f8('0x57')](_0x3dc73e['file'][_0xc8f8('0x56')])),_0x95cff8[_0xc8f8('0x4a')]));logger[_0xc8f8('0x5b')]('Sound\x20upload\x20filepath:\x20%s',_0x9b30f8);logger[_0xc8f8('0x5b')]('Sound\x20upload\x20destination:\x20%s',_0x1db6e6);try{fs[_0xc8f8('0x5c')](_0x9b30f8,parseInt(_0xc8f8('0x5d'),0x8));var _0x1e4a9a=sox[_0xc8f8('0x5e')](_0x9b30f8,_0x1db6e6,{'sampleRate':0x1f40,'format':_0xc8f8('0x58'),'channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x1e4a9a['on'](_0xc8f8('0x5f'),function(_0x224f2b){fs[_0xc8f8('0x60')](_0x9b30f8);_0x40f149['status'](0x1f4)['send'](_0x224f2b);});_0x1e4a9a['on'](_0xc8f8('0x61'),function(_0x29635e){_0x95cff8[_0xc8f8('0x62')]=isNaN(_0x29635e[_0xc8f8('0x63')])?null:_0x29635e[_0xc8f8('0x63')]*0x3e8;_0x95cff8[_0xc8f8('0x64')]=isNaN(_0x29635e[_0xc8f8('0x65')])?null:_0x29635e[_0xc8f8('0x65')];_0x95cff8[_0xc8f8('0x66')]=isNaN(_0x29635e[_0xc8f8('0x67')])?null:_0x29635e[_0xc8f8('0x67')];_0x95cff8[_0xc8f8('0x68')]=isNaN(_0x29635e['bitRate'])?null:_0x29635e[_0xc8f8('0x69')];_0x95cff8['original_sampleRate']=isNaN(_0x29635e[_0xc8f8('0x6a')])?null:_0x29635e[_0xc8f8('0x6a')];});_0x1e4a9a['on']('dest',function(_0x3b882d){_0x95cff8[_0xc8f8('0x6b')]=isNaN(_0x3b882d['duration'])?null:_0x3b882d[_0xc8f8('0x63')]*0x3e8;_0x95cff8['converted_sampleCount']=isNaN(_0x3b882d[_0xc8f8('0x65')])?null:_0x3b882d['sampleCount'];_0x95cff8[_0xc8f8('0x6c')]=isNaN(_0x3b882d['channelCount'])?null:_0x3b882d[_0xc8f8('0x67')];_0x95cff8['converted_bitRate']=isNaN(_0x3b882d[_0xc8f8('0x69')])?null:_0x3b882d[_0xc8f8('0x69')];_0x95cff8['converted_sampleRate']=isNaN(_0x3b882d[_0xc8f8('0x6a')])?null:_0x3b882d[_0xc8f8('0x6a')];});_0x1e4a9a['on'](_0xc8f8('0x19'),function(){fs[_0xc8f8('0x5c')](_0x1db6e6,parseInt(_0xc8f8('0x5d'),0x8));return db[_0xc8f8('0x2d')][_0xc8f8('0x52')](_0x95cff8)['then'](function(_0x38658e){var _0x126d17={'role':_0x3dc73e[_0xc8f8('0x6d')][_0xc8f8('0x6e')],'userProfileId':_0x3dc73e[_0xc8f8('0x6d')][_0xc8f8('0x6f')]};if(!_0x126d17)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x126d17[_0xc8f8('0x6e')]===_0xc8f8('0x70')){var _0x378924=_0x38658e[_0xc8f8('0x26')]({'plain':!![]});return db[_0xc8f8('0x71')][_0xc8f8('0x47')]({'where':{'name':_0xc8f8('0x27'),'userProfileId':_0x126d17[_0xc8f8('0x6f')]},'raw':!![]})[_0xc8f8('0x24')](function(_0x2714d8){if(_0x2714d8&&_0x2714d8['autoAssociation']===0x0){return db[_0xc8f8('0x28')][_0xc8f8('0x52')]({'name':_0x378924['name'],'resourceId':_0x378924['id'],'type':_0x2714d8[_0xc8f8('0x29')],'sectionId':_0x2714d8['id']},{})[_0xc8f8('0x24')](function(){return _0x38658e;});}else{return _0x38658e;}})[_0xc8f8('0x42')](function(_0x1fe2ae){logger[_0xc8f8('0x5f')](_0xc8f8('0x72'),_0x1fe2ae);throw _0x1fe2ae;});}return _0x38658e;})[_0xc8f8('0x24')](respondWithResult(_0x40f149,null))[_0xc8f8('0x42')](handleError(_0x40f149,null));});_0x1e4a9a[_0xc8f8('0x73')]();}catch(_0x615e33){_0x40f149['status'](0x1f4)[_0xc8f8('0x2a')](_0x615e33);}};exports[_0xc8f8('0x74')]=function(_0x31a6bb,_0x493e68,_0x55931a){return db['Sound'][_0xc8f8('0x47')]({'where':{'id':_0x31a6bb['params']['id']}})[_0xc8f8('0x24')](handleEntityNotFound(_0x493e68,null))[_0xc8f8('0x24')](saveUpdates(_[_0xc8f8('0x3b')](_0x31a6bb['body'],[_0xc8f8('0x29'),_0xc8f8('0x75')]),null))[_0xc8f8('0x24')](respondWithResult(_0x493e68,null))[_0xc8f8('0x42')](handleError(_0x493e68,null));};exports[_0xc8f8('0x76')]=function(_0x37c95,_0x4d655c,_0x3dd579){return db['Sound'][_0xc8f8('0x47')]({'where':{'id':_0x37c95[_0xc8f8('0x44')]['id']}})[_0xc8f8('0x24')](function(_0x336778){if(_0x336778){return _0x336778[_0xc8f8('0x25')]();}})[_0xc8f8('0x24')](function(_0x6b93ce){var _0xffe1c7=path[_0xc8f8('0x4c')](config[_0xc8f8('0x4d')],'server/files/sounds/original',util[_0xc8f8('0x5a')](_0xc8f8('0x51'),_0x6b93ce['save_name'],_0x6b93ce[_0xc8f8('0x77')]));var _0x380c86=path[_0xc8f8('0x4c')](config[_0xc8f8('0x4d')],_0xc8f8('0x4e'),util[_0xc8f8('0x5a')](_0xc8f8('0x51'),_0x6b93ce[_0xc8f8('0x49')],_0x6b93ce[_0xc8f8('0x4a')]));fs[_0xc8f8('0x60')](_0xffe1c7);fs['unlinkSync'](_0x380c86);return _0x6b93ce;})[_0xc8f8('0x24')](function(_0x3058e1){if(_0x3058e1){return _0x4d655c[_0xc8f8('0x18')](0xcc)['end']();}})[_0xc8f8('0x24')](handleEntityNotFound(_0x4d655c,null))[_0xc8f8('0x42')](handleError(_0x4d655c,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x531b=['request-promise','path','rimraf','./sound.attributes','define','Sound','tools_sounds','lodash','util','api','moment','bluebird'];(function(_0x352e95,_0x1b5952){var _0x5e63bf=function(_0x5da935){while(--_0x5da935){_0x352e95['push'](_0x352e95['shift']());}};_0x5e63bf(++_0x1b5952);}(_0x531b,0x97));var _0xb531=function(_0x3936c4,_0x59b4bb){_0x3936c4=_0x3936c4-0x0;var _0x5c2e58=_0x531b[_0x3936c4];return _0x5c2e58;};'use strict';var _=require(_0xb531('0x0'));var util=require(_0xb531('0x1'));var logger=require('../../config/logger')(_0xb531('0x2'));var moment=require(_0xb531('0x3'));var BPromise=require(_0xb531('0x4'));var rp=require(_0xb531('0x5'));var fs=require('fs');var path=require(_0xb531('0x6'));var rimraf=require(_0xb531('0x7'));var config=require('../../config/environment');var attributes=require(_0xb531('0x8'));module['exports']=function(_0x4088c3,_0x537788){return _0x4088c3[_0xb531('0x9')](_0xb531('0xa'),attributes,{'tableName':_0xb531('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x4526=['moment','path','rimraf','../../config/environment','./sound.attributes','define','Sound','tools_sounds','lodash','util','../../config/logger'];(function(_0x443577,_0x3306bb){var _0x1f5644=function(_0x3af6a6){while(--_0x3af6a6){_0x443577['push'](_0x443577['shift']());}};_0x1f5644(++_0x3306bb);}(_0x4526,0x173));var _0x6452=function(_0x3b619d,_0x164bda){_0x3b619d=_0x3b619d-0x0;var _0x514af6=_0x4526[_0x3b619d];return _0x514af6;};'use strict';var _=require(_0x6452('0x0'));var util=require(_0x6452('0x1'));var logger=require(_0x6452('0x2'))('api');var moment=require(_0x6452('0x3'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0x6452('0x4'));var rimraf=require(_0x6452('0x5'));var config=require(_0x6452('0x6'));var attributes=require(_0x6452('0x7'));module['exports']=function(_0x241921,_0x151a22){return _0x241921[_0x6452('0x8')](_0x6452('0x9'),attributes,{'tableName':_0x6452('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x85c4=['attributes','include','map','model','then','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','client','request','info','Sound,\x20%s,\x20%s','request\x20sent','Sound,\x20%s,\x20%s,\x20%s','stringify','error','code','message','ShowSound','Sound','find','options','raw','where'];(function(_0x56916d,_0x37b935){var _0x2b7f1f=function(_0x206eb1){while(--_0x206eb1){_0x56916d['push'](_0x56916d['shift']());}};_0x2b7f1f(++_0x37b935);}(_0x85c4,0x165));var _0x485c=function(_0x1a36a5,_0x746928){_0x1a36a5=_0x1a36a5-0x0;var _0x746243=_0x85c4[_0x1a36a5];return _0x746243;};'use strict';var _=require(_0x485c('0x0'));var util=require(_0x485c('0x1'));var moment=require(_0x485c('0x2'));var BPromise=require(_0x485c('0x3'));var rs=require(_0x485c('0x4'));var fs=require('fs');var Redis=require(_0x485c('0x5'));var db=require(_0x485c('0x6'))['db'];var utils=require(_0x485c('0x7'));var logger=require('../../config/logger')(_0x485c('0x8'));var config=require(_0x485c('0x9'));var jayson=require(_0x485c('0xa'));var client=jayson[_0x485c('0xb')]['http']({'port':0x232a});function respondWithRpcPromise(_0x26a429,_0x58730b,_0x3e5593){return new BPromise(function(_0x16b568,_0x54a309){return client[_0x485c('0xc')](_0x26a429,_0x3e5593)['then'](function(_0x291e48){logger[_0x485c('0xd')](_0x485c('0xe'),_0x58730b,_0x485c('0xf'));logger['debug'](_0x485c('0x10'),_0x58730b,_0x485c('0xf'),JSON[_0x485c('0x11')](_0x291e48));if(_0x291e48[_0x485c('0x12')]){if(_0x291e48[_0x485c('0x12')][_0x485c('0x13')]===0x1f4){logger[_0x485c('0x12')](_0x485c('0xe'),_0x58730b,_0x291e48[_0x485c('0x12')][_0x485c('0x14')]);return _0x54a309(_0x291e48[_0x485c('0x12')]['message']);}logger[_0x485c('0x12')](_0x485c('0xe'),_0x58730b,_0x291e48['error'][_0x485c('0x14')]);return _0x16b568(_0x291e48['error']['message']);}else{logger[_0x485c('0xd')](_0x485c('0xe'),_0x58730b,_0x485c('0xf'));_0x16b568(_0x291e48['result'][_0x485c('0x14')]);}})['catch'](function(_0xf3d6c5){logger[_0x485c('0x12')](_0x485c('0xe'),_0x58730b,_0xf3d6c5);_0x54a309(_0xf3d6c5);});});}exports[_0x485c('0x15')]=function(_0x473bdf){var _0x4c327a=this;return new Promise(function(_0x1cbb56,_0xcf3064){return db[_0x485c('0x16')][_0x485c('0x17')]({'raw':_0x473bdf[_0x485c('0x18')]?_0x473bdf[_0x485c('0x18')][_0x485c('0x19')]===undefined?!![]:![]:!![],'where':_0x473bdf[_0x485c('0x18')]?_0x473bdf[_0x485c('0x18')][_0x485c('0x1a')]||null:null,'attributes':_0x473bdf[_0x485c('0x18')]?_0x473bdf[_0x485c('0x18')][_0x485c('0x1b')]||null:null,'include':_0x473bdf[_0x485c('0x18')]?_0x473bdf[_0x485c('0x18')][_0x485c('0x1c')]?_[_0x485c('0x1d')](_0x473bdf['options'][_0x485c('0x1c')],function(_0x5d4e3e){return{'model':db[_0x5d4e3e[_0x485c('0x1e')]],'as':_0x5d4e3e['as'],'attributes':_0x5d4e3e[_0x485c('0x1b')],'include':_0x5d4e3e['include']?_[_0x485c('0x1d')](_0x5d4e3e[_0x485c('0x1c')],function(_0x2e6c4c){return{'model':db[_0x2e6c4c['model']],'as':_0x2e6c4c['as'],'attributes':_0x2e6c4c[_0x485c('0x1b')],'include':_0x2e6c4c[_0x485c('0x1c')]?_[_0x485c('0x1d')](_0x2e6c4c[_0x485c('0x1c')],function(_0x3f6aa7){return{'model':db[_0x3f6aa7['model']],'as':_0x3f6aa7['as'],'attributes':_0x3f6aa7['attributes']};}):[]};}):[]};}):[]:[]})[_0x485c('0x1f')](function(_0x16d562){logger[_0x485c('0xd')](_0x485c('0x15'),_0x473bdf);logger['debug'](_0x485c('0x15'),_0x473bdf,JSON[_0x485c('0x11')](_0x16d562));_0x1cbb56(_0x16d562);})['catch'](function(_0x433f73){logger[_0x485c('0x12')]('ShowSound',_0x433f73[_0x485c('0x14')],_0x473bdf);_0xcf3064(_0x4c327a[_0x485c('0x12')](0x1f4,_0x433f73[_0x485c('0x14')]));});});};
\ No newline at end of file
+var _0xd96f=['util','randomstring','../../mysqldb','../../config/utils','rpc','jayson/promise','http','request','Sound,\x20%s,\x20%s','request\x20sent','Sound,\x20%s,\x20%s,\x20%s','stringify','error','code','message','catch','Sound','options','where','attributes','map','model','include','then','ShowSound','debug'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0xd96f,0x11e));var _0xfd96=function(_0x57ba86,_0x217daf){_0x57ba86=_0x57ba86-0x0;var _0x490f0c=_0xd96f[_0x57ba86];return _0x490f0c;};'use strict';var _=require('lodash');var util=require(_0xfd96('0x0'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0xfd96('0x1'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xfd96('0x2'))['db'];var utils=require(_0xfd96('0x3'));var logger=require('../../config/logger')(_0xfd96('0x4'));var config=require('../../config/environment');var jayson=require(_0xfd96('0x5'));var client=jayson['client'][_0xfd96('0x6')]({'port':0x232a});function respondWithRpcPromise(_0x1935c4,_0x3b92dd,_0x10061e){return new BPromise(function(_0x1dba3d,_0x3bb1f1){return client[_0xfd96('0x7')](_0x1935c4,_0x10061e)['then'](function(_0x363b78){logger['info'](_0xfd96('0x8'),_0x3b92dd,_0xfd96('0x9'));logger['debug'](_0xfd96('0xa'),_0x3b92dd,'request\x20sent',JSON[_0xfd96('0xb')](_0x363b78));if(_0x363b78[_0xfd96('0xc')]){if(_0x363b78['error'][_0xfd96('0xd')]===0x1f4){logger[_0xfd96('0xc')]('Sound,\x20%s,\x20%s',_0x3b92dd,_0x363b78[_0xfd96('0xc')][_0xfd96('0xe')]);return _0x3bb1f1(_0x363b78[_0xfd96('0xc')]['message']);}logger[_0xfd96('0xc')](_0xfd96('0x8'),_0x3b92dd,_0x363b78[_0xfd96('0xc')][_0xfd96('0xe')]);return _0x1dba3d(_0x363b78[_0xfd96('0xc')][_0xfd96('0xe')]);}else{logger['info'](_0xfd96('0x8'),_0x3b92dd,_0xfd96('0x9'));_0x1dba3d(_0x363b78['result'][_0xfd96('0xe')]);}})[_0xfd96('0xf')](function(_0x9691b1){logger[_0xfd96('0xc')](_0xfd96('0x8'),_0x3b92dd,_0x9691b1);_0x3bb1f1(_0x9691b1);});});}exports['ShowSound']=function(_0x224c08){var _0x2a061c=this;return new Promise(function(_0x291861,_0x1da3ee){return db[_0xfd96('0x10')]['find']({'raw':_0x224c08[_0xfd96('0x11')]?_0x224c08['options']['raw']===undefined?!![]:![]:!![],'where':_0x224c08[_0xfd96('0x11')]?_0x224c08[_0xfd96('0x11')][_0xfd96('0x12')]||null:null,'attributes':_0x224c08[_0xfd96('0x11')]?_0x224c08[_0xfd96('0x11')][_0xfd96('0x13')]||null:null,'include':_0x224c08[_0xfd96('0x11')]?_0x224c08['options']['include']?_[_0xfd96('0x14')](_0x224c08['options']['include'],function(_0x16269){return{'model':db[_0x16269[_0xfd96('0x15')]],'as':_0x16269['as'],'attributes':_0x16269[_0xfd96('0x13')],'include':_0x16269[_0xfd96('0x16')]?_[_0xfd96('0x14')](_0x16269['include'],function(_0xe9ee8b){return{'model':db[_0xe9ee8b['model']],'as':_0xe9ee8b['as'],'attributes':_0xe9ee8b[_0xfd96('0x13')],'include':_0xe9ee8b[_0xfd96('0x16')]?_[_0xfd96('0x14')](_0xe9ee8b[_0xfd96('0x16')],function(_0x5af068){return{'model':db[_0x5af068[_0xfd96('0x15')]],'as':_0x5af068['as'],'attributes':_0x5af068[_0xfd96('0x13')]};}):[]};}):[]};}):[]:[]})[_0xfd96('0x17')](function(_0x26d2dc){logger['info'](_0xfd96('0x18'),_0x224c08);logger[_0xfd96('0x19')](_0xfd96('0x18'),_0x224c08,JSON['stringify'](_0x26d2dc));_0x291861(_0x26d2dc);})[_0xfd96('0xf')](function(_0x194dad){logger['error']('ShowSound',_0x194dad[_0xfd96('0xe')],_0x224c08);_0x1da3ee(_0x2a061c[_0xfd96('0xc')](0x1f4,_0x194dad[_0xfd96('0xe')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9ffd=['util','path','express','Router','fs-extra','../../components/auth/service','../../config/environment','./squareMessage.controller','isAuthenticated','index','get','/:id','show','post','create','delete','destroy','exports','multer'];(function(_0x393d69,_0x3a8c83){var _0x3cee37=function(_0x462682){while(--_0x462682){_0x393d69['push'](_0x393d69['shift']());}};_0x3cee37(++_0x3a8c83);}(_0x9ffd,0xaa));var _0xd9ff=function(_0x40796f,_0xd860b){_0x40796f=_0x40796f-0x0;var _0x1fd8dc=_0x9ffd[_0x40796f];return _0x1fd8dc;};'use strict';var multer=require(_0xd9ff('0x0'));var util=require(_0xd9ff('0x1'));var path=require(_0xd9ff('0x2'));var timeout=require('connect-timeout');var express=require(_0xd9ff('0x3'));var router=express[_0xd9ff('0x4')]();var fs_extra=require(_0xd9ff('0x5'));var auth=require(_0xd9ff('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0xd9ff('0x7'));var controller=require(_0xd9ff('0x8'));router['get']('/',auth[_0xd9ff('0x9')](),controller[_0xd9ff('0xa')]);router[_0xd9ff('0xb')](_0xd9ff('0xc'),auth[_0xd9ff('0x9')](),controller[_0xd9ff('0xd')]);router[_0xd9ff('0xe')]('/',auth[_0xd9ff('0x9')](),controller[_0xd9ff('0xf')]);router['put']('/:id',auth['isAuthenticated'](),controller['update']);router[_0xd9ff('0x10')](_0xd9ff('0xc'),auth[_0xd9ff('0x9')](),controller[_0xd9ff('0x11')]);module[_0xd9ff('0x12')]=router;
\ No newline at end of file
+var _0x8603=['../../components/interaction/service','./squareMessage.controller','isAuthenticated','index','get','/:id','create','put','update','exports','util','path','connect-timeout','fs-extra','../../components/auth/service'];(function(_0x2a1e2d,_0x195473){var _0x32b8cc=function(_0x57582d){while(--_0x57582d){_0x2a1e2d['push'](_0x2a1e2d['shift']());}};_0x32b8cc(++_0x195473);}(_0x8603,0x190));var _0x3860=function(_0x43aafc,_0x310e66){_0x43aafc=_0x43aafc-0x0;var _0x489eb3=_0x8603[_0x43aafc];return _0x489eb3;};'use strict';var multer=require('multer');var util=require(_0x3860('0x0'));var path=require(_0x3860('0x1'));var timeout=require(_0x3860('0x2'));var express=require('express');var router=express['Router']();var fs_extra=require(_0x3860('0x3'));var auth=require(_0x3860('0x4'));var interaction=require(_0x3860('0x5'));var config=require('../../config/environment');var controller=require(_0x3860('0x6'));router['get']('/',auth[_0x3860('0x7')](),controller[_0x3860('0x8')]);router[_0x3860('0x9')](_0x3860('0xa'),auth[_0x3860('0x7')](),controller['show']);router['post']('/',auth['isAuthenticated'](),controller[_0x3860('0xb')]);router[_0x3860('0xc')]('/:id',auth[_0x3860('0x7')](),controller[_0x3860('0xd')]);router['delete'](_0x3860('0xa'),auth[_0x3860('0x7')](),controller['destroy']);module[_0x3860('0xe')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6b60=['ENUM','out','exports','STRING','TEXT','medium'];(function(_0x353292,_0x2d0c58){var _0x59e6d0=function(_0x3d17ea){while(--_0x3d17ea){_0x353292['push'](_0x353292['shift']());}};_0x59e6d0(++_0x2d0c58);}(_0x6b60,0x10a));var _0x06b6=function(_0x42bc91,_0x41f40a){_0x42bc91=_0x42bc91-0x0;var _0x3f5507=_0x6b60[_0x42bc91];return _0x3f5507;};'use strict';var Sequelize=require('sequelize');module[_0x06b6('0x0')]={'uniqueid':{'type':Sequelize[_0x06b6('0x1')]},'body':{'type':Sequelize[_0x06b6('0x2')](_0x06b6('0x3')),'allowNull':![]},'direction':{'type':Sequelize[_0x06b6('0x4')]('in',_0x06b6('0x5')),'defaultValue':'out','allowNull':![]},'providerName':{'type':Sequelize[_0x06b6('0x1')]},'providerResponse':{'type':Sequelize[_0x06b6('0x2')]}};
\ No newline at end of file
+var _0x2b79=['exports','STRING','medium','ENUM','out','TEXT','sequelize'];(function(_0x1daa67,_0x4a94e4){var _0xe09dc3=function(_0x391063){while(--_0x391063){_0x1daa67['push'](_0x1daa67['shift']());}};_0xe09dc3(++_0x4a94e4);}(_0x2b79,0x7d));var _0x92b7=function(_0x934425,_0x5af72f){_0x934425=_0x934425-0x0;var _0x31d596=_0x2b79[_0x934425];return _0x31d596;};'use strict';var Sequelize=require(_0x92b7('0x0'));module[_0x92b7('0x1')]={'uniqueid':{'type':Sequelize[_0x92b7('0x2')]},'body':{'type':Sequelize['TEXT'](_0x92b7('0x3')),'allowNull':![]},'direction':{'type':Sequelize[_0x92b7('0x4')]('in',_0x92b7('0x5')),'defaultValue':_0x92b7('0x5'),'allowNull':![]},'providerName':{'type':Sequelize[_0x92b7('0x2')]},'providerResponse':{'type':Sequelize[_0x92b7('0x6')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd81e=['limit','count','status','set','Content-Range','json','apply','save','then','error','stack','name','send','index','map','SquareMessage','rawAttributes','fieldName','type','key','model','keys','query','filters','intersection','attributes','length','nolimit','order','sort','where','pick','merge','filter','options','includeAll','include','findAll','rows','catch','show','params','fields','find','create','body','update','destroy','eml-format','zip-dir','fast-json-patch','request-promise','moment','util','path','sox','ejs','lodash','crypto','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','offset'];(function(_0x4d04ea,_0x3e4742){var _0xaba6ba=function(_0x49a42f){while(--_0x49a42f){_0x4d04ea['push'](_0x4d04ea['shift']());}};_0xaba6ba(++_0x3e4742);}(_0xd81e,0x7b));var _0xed81=function(_0x5b4d09,_0x1b045b){_0x5b4d09=_0x5b4d09-0x0;var _0x23189b=_0xd81e[_0x5b4d09];return _0x23189b;};'use strict';var emlformat=require(_0xed81('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xed81('0x1'));var jsonpatch=require(_0xed81('0x2'));var rp=require(_0xed81('0x3'));var moment=require(_0xed81('0x4'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xed81('0x5'));var path=require(_0xed81('0x6'));var sox=require(_0xed81('0x7'));var csv=require('to-csv');var ejs=require(_0xed81('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xed81('0x9'));var squel=require('squel');var crypto=require(_0xed81('0xa'));var jsforce=require(_0xed81('0xb'));var deskjs=require(_0xed81('0xc'));var toCsv=require('to-csv');var querystring=require(_0xed81('0xd'));var Papa=require(_0xed81('0xe'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0xed81('0xf'));var as=require(_0xed81('0x10'));var hardwareService=require(_0xed81('0x11'));var logger=require(_0xed81('0x12'))(_0xed81('0x13'));var utils=require(_0xed81('0x14'));var config=require(_0xed81('0x15'));var licenseUtil=require(_0xed81('0x16'));var db=require(_0xed81('0x17'))['db'];function respondWithStatusCode(_0x214d87,_0x27e6c5){_0x27e6c5=_0x27e6c5||0xcc;return function(_0xde35d4){if(_0xde35d4){return _0x214d87[_0xed81('0x18')](_0x27e6c5);}return _0x214d87['status'](_0x27e6c5)[_0xed81('0x19')]();};}function respondWithResult(_0x146c70,_0xceb36c){_0xceb36c=_0xceb36c||0xc8;return function(_0x5b8a92){if(_0x5b8a92){return _0x146c70['status'](_0xceb36c)['json'](_0x5b8a92);}};}function respondWithFilteredResult(_0x4939af,_0x4f19cf){return function(_0x577fd7){if(_0x577fd7){var _0x4f580e=typeof _0x4f19cf[_0xed81('0x1a')]==='undefined'&&typeof _0x4f19cf[_0xed81('0x1b')]==='undefined';var _0x52187d=_0x577fd7[_0xed81('0x1c')];var _0x16d513=_0x4f580e?0x0:_0x4f19cf['offset'];var _0x5cb5a=_0x4f580e?_0x577fd7[_0xed81('0x1c')]:_0x4f19cf[_0xed81('0x1a')]+_0x4f19cf[_0xed81('0x1b')];var _0x27581c;if(_0x5cb5a>=_0x52187d){_0x5cb5a=_0x52187d;_0x27581c=0xc8;}else{_0x27581c=0xce;}_0x4939af[_0xed81('0x1d')](_0x27581c);return _0x4939af[_0xed81('0x1e')](_0xed81('0x1f'),_0x16d513+'-'+_0x5cb5a+'/'+_0x52187d)[_0xed81('0x20')](_0x577fd7);}return null;};}function patchUpdates(_0x244596){return function(_0x22922f){try{jsonpatch[_0xed81('0x21')](_0x22922f,_0x244596,!![]);}catch(_0x192b9b){return BPromise['reject'](_0x192b9b);}return _0x22922f[_0xed81('0x22')]();};}function saveUpdates(_0x3762a5,_0x53ff01){return function(_0x43a252){if(_0x43a252){return _0x43a252['update'](_0x3762a5)[_0xed81('0x23')](function(_0x51f070){return _0x51f070;});}return null;};}function removeEntity(_0x26a3b0,_0x4aa7e8){return function(_0x5baa7e){if(_0x5baa7e){return _0x5baa7e['destroy']()[_0xed81('0x23')](function(){_0x26a3b0['status'](0xcc)[_0xed81('0x19')]();});}};}function handleEntityNotFound(_0x14c8f7,_0x2d4a6f){return function(_0x3ca1fc){if(!_0x3ca1fc){_0x14c8f7['sendStatus'](0x194);}return _0x3ca1fc;};}function handleError(_0x343480,_0x5c456f){_0x5c456f=_0x5c456f||0x1f4;return function(_0x5e758e){logger[_0xed81('0x24')](_0x5e758e[_0xed81('0x25')]);if(_0x5e758e[_0xed81('0x26')]){delete _0x5e758e['name'];}_0x343480['status'](_0x5c456f)[_0xed81('0x27')](_0x5e758e);};}exports[_0xed81('0x28')]=function(_0x10d5d1,_0x40c269){var _0x51da28={},_0x19e7dd={},_0x826f00={'count':0x0,'rows':[]};var _0x5dfffa=_[_0xed81('0x29')](db[_0xed81('0x2a')][_0xed81('0x2b')],function(_0x332a3a){return{'name':_0x332a3a[_0xed81('0x2c')],'type':_0x332a3a[_0xed81('0x2d')][_0xed81('0x2e')]};});_0x19e7dd[_0xed81('0x2f')]=_[_0xed81('0x29')](_0x5dfffa,_0xed81('0x26'));_0x19e7dd['query']=_[_0xed81('0x30')](_0x10d5d1[_0xed81('0x31')]);_0x19e7dd[_0xed81('0x32')]=_[_0xed81('0x33')](_0x19e7dd[_0xed81('0x2f')],_0x19e7dd[_0xed81('0x31')]);_0x51da28[_0xed81('0x34')]=_[_0xed81('0x33')](_0x19e7dd[_0xed81('0x2f')],qs['fields'](_0x10d5d1['query']['fields']));_0x51da28['attributes']=_0x51da28[_0xed81('0x34')][_0xed81('0x35')]?_0x51da28[_0xed81('0x34')]:_0x19e7dd[_0xed81('0x2f')];if(!_0x10d5d1[_0xed81('0x31')]['hasOwnProperty'](_0xed81('0x36'))){_0x51da28['limit']=qs[_0xed81('0x1b')](_0x10d5d1[_0xed81('0x31')]['limit']);_0x51da28['offset']=qs[_0xed81('0x1a')](_0x10d5d1[_0xed81('0x31')][_0xed81('0x1a')]);}_0x51da28[_0xed81('0x37')]=qs[_0xed81('0x38')](_0x10d5d1[_0xed81('0x31')][_0xed81('0x38')]);_0x51da28[_0xed81('0x39')]=qs[_0xed81('0x32')](_[_0xed81('0x3a')](_0x10d5d1[_0xed81('0x31')],_0x19e7dd['filters']),_0x5dfffa);if(_0x10d5d1[_0xed81('0x31')]['filter']){_0x51da28[_0xed81('0x39')]=_[_0xed81('0x3b')](_0x51da28[_0xed81('0x39')],{'$or':_[_0xed81('0x29')](_0x5dfffa,function(_0x515533){if(_0x515533[_0xed81('0x2d')]!=='VIRTUAL'){var _0x25cd9c={};_0x25cd9c[_0x515533[_0xed81('0x26')]]={'$like':'%'+_0x10d5d1['query'][_0xed81('0x3c')]+'%'};return _0x25cd9c;}})});}_0x51da28=_[_0xed81('0x3b')]({},_0x51da28,_0x10d5d1[_0xed81('0x3d')]);var _0x5b5690={'where':_0x51da28[_0xed81('0x39')]};return db[_0xed81('0x2a')][_0xed81('0x1c')](_0x5b5690)[_0xed81('0x23')](function(_0xa312dc){_0x826f00['count']=_0xa312dc;if(_0x10d5d1['query'][_0xed81('0x3e')]){_0x51da28[_0xed81('0x3f')]=[{'all':!![]}];}return db[_0xed81('0x2a')][_0xed81('0x40')](_0x51da28);})[_0xed81('0x23')](function(_0x25c0f2){_0x826f00[_0xed81('0x41')]=_0x25c0f2;return _0x826f00;})['then'](respondWithFilteredResult(_0x40c269,_0x51da28))[_0xed81('0x42')](handleError(_0x40c269,null));};exports[_0xed81('0x43')]=function(_0x51449d,_0x2ab74c){var _0xa6156b={'raw':!![],'where':{'id':_0x51449d[_0xed81('0x44')]['id']}},_0x372e8a={};_0x372e8a['model']=_[_0xed81('0x30')](db[_0xed81('0x2a')]['rawAttributes']);_0x372e8a[_0xed81('0x31')]=_[_0xed81('0x30')](_0x51449d[_0xed81('0x31')]);_0x372e8a[_0xed81('0x32')]=_[_0xed81('0x33')](_0x372e8a['model'],_0x372e8a[_0xed81('0x31')]);_0xa6156b['attributes']=_['intersection'](_0x372e8a['model'],qs[_0xed81('0x45')](_0x51449d[_0xed81('0x31')][_0xed81('0x45')]));_0xa6156b[_0xed81('0x34')]=_0xa6156b[_0xed81('0x34')][_0xed81('0x35')]?_0xa6156b[_0xed81('0x34')]:_0x372e8a[_0xed81('0x2f')];if(_0x51449d[_0xed81('0x31')]['includeAll']){_0xa6156b[_0xed81('0x3f')]=[{'all':!![]}];}_0xa6156b=_['merge']({},_0xa6156b,_0x51449d['options']);return db[_0xed81('0x2a')][_0xed81('0x46')](_0xa6156b)['then'](handleEntityNotFound(_0x2ab74c,null))[_0xed81('0x23')](respondWithResult(_0x2ab74c,null))[_0xed81('0x42')](handleError(_0x2ab74c,null));};exports['create']=function(_0x42b576,_0x21030e){return db[_0xed81('0x2a')][_0xed81('0x47')](_0x42b576[_0xed81('0x48')],{})['then'](respondWithResult(_0x21030e,0xc9))[_0xed81('0x42')](handleError(_0x21030e,null));};exports[_0xed81('0x49')]=function(_0x5ddba6,_0x1bd78c){if(_0x5ddba6[_0xed81('0x48')]['id']){delete _0x5ddba6['body']['id'];}return db[_0xed81('0x2a')][_0xed81('0x46')]({'where':{'id':_0x5ddba6['params']['id']}})['then'](handleEntityNotFound(_0x1bd78c,null))['then'](saveUpdates(_0x5ddba6[_0xed81('0x48')],null))[_0xed81('0x23')](respondWithResult(_0x1bd78c,null))[_0xed81('0x42')](handleError(_0x1bd78c,null));};exports[_0xed81('0x4a')]=function(_0x11fb2d,_0x5f2234){return db[_0xed81('0x2a')]['find']({'where':{'id':_0x11fb2d['params']['id']}})[_0xed81('0x23')](handleEntityNotFound(_0x5f2234,null))['then'](removeEntity(_0x5f2234,null))[_0xed81('0x42')](handleError(_0x5f2234,null));};
\ No newline at end of file
+var _0x0d94=['update','destroy','stack','name','index','map','rawAttributes','fieldName','type','key','query','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','filter','merge','where','VIRTUAL','options','SquareMessage','then','include','findAll','rows','catch','show','keys','includeAll','find','create','body','params','eml-format','rimraf','fast-json-patch','request-promise','bluebird','path','to-csv','ejs','fs-extra','lodash','jsforce','querystring','ioredis','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0x0d94,0xb5));var _0x40d9=function(_0x5cafed,_0x35f48c){_0x5cafed=_0x5cafed-0x0;var _0x8affd6=_0x0d94[_0x5cafed];return _0x8affd6;};'use strict';var emlformat=require(_0x40d9('0x0'));var rimraf=require(_0x40d9('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x40d9('0x2'));var rp=require(_0x40d9('0x3'));var moment=require('moment');var BPromise=require(_0x40d9('0x4'));var Mustache=require('mustache');var util=require('util');var path=require(_0x40d9('0x5'));var sox=require('sox');var csv=require(_0x40d9('0x6'));var ejs=require(_0x40d9('0x7'));var fs=require('fs');var fs_extra=require(_0x40d9('0x8'));var _=require(_0x40d9('0x9'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x40d9('0xa'));var deskjs=require('desk.js');var toCsv=require(_0x40d9('0x6'));var querystring=require(_0x40d9('0xb'));var Papa=require('papaparse');var Redis=require(_0x40d9('0xc'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x40d9('0xd'));var logger=require(_0x40d9('0xe'))(_0x40d9('0xf'));var utils=require(_0x40d9('0x10'));var config=require('../../config/environment');var licenseUtil=require(_0x40d9('0x11'));var db=require(_0x40d9('0x12'))['db'];function respondWithStatusCode(_0x5ec2b2,_0x19deec){_0x19deec=_0x19deec||0xcc;return function(_0x2f4251){if(_0x2f4251){return _0x5ec2b2[_0x40d9('0x13')](_0x19deec);}return _0x5ec2b2[_0x40d9('0x14')](_0x19deec)[_0x40d9('0x15')]();};}function respondWithResult(_0x16c7a8,_0x156acf){_0x156acf=_0x156acf||0xc8;return function(_0x20d5a9){if(_0x20d5a9){return _0x16c7a8[_0x40d9('0x14')](_0x156acf)[_0x40d9('0x16')](_0x20d5a9);}};}function respondWithFilteredResult(_0x3f8f78,_0x4f01b4){return function(_0x4257bb){if(_0x4257bb){var _0x2127ae=typeof _0x4f01b4[_0x40d9('0x17')]===_0x40d9('0x18')&&typeof _0x4f01b4[_0x40d9('0x19')]===_0x40d9('0x18');var _0x5c9da4=_0x4257bb[_0x40d9('0x1a')];var _0x540483=_0x2127ae?0x0:_0x4f01b4[_0x40d9('0x17')];var _0x2bfebe=_0x2127ae?_0x4257bb[_0x40d9('0x1a')]:_0x4f01b4[_0x40d9('0x17')]+_0x4f01b4[_0x40d9('0x19')];var _0x363e75;if(_0x2bfebe>=_0x5c9da4){_0x2bfebe=_0x5c9da4;_0x363e75=0xc8;}else{_0x363e75=0xce;}_0x3f8f78[_0x40d9('0x14')](_0x363e75);return _0x3f8f78[_0x40d9('0x1b')](_0x40d9('0x1c'),_0x540483+'-'+_0x2bfebe+'/'+_0x5c9da4)['json'](_0x4257bb);}return null;};}function patchUpdates(_0x38637a){return function(_0x143077){try{jsonpatch[_0x40d9('0x1d')](_0x143077,_0x38637a,!![]);}catch(_0x30ee97){return BPromise[_0x40d9('0x1e')](_0x30ee97);}return _0x143077[_0x40d9('0x1f')]();};}function saveUpdates(_0x2953dd,_0x3e3ee1){return function(_0xdb703d){if(_0xdb703d){return _0xdb703d[_0x40d9('0x20')](_0x2953dd)['then'](function(_0x4ca295){return _0x4ca295;});}return null;};}function removeEntity(_0x3233a2,_0x9e17b5){return function(_0x33c94a){if(_0x33c94a){return _0x33c94a[_0x40d9('0x21')]()['then'](function(){_0x3233a2['status'](0xcc)[_0x40d9('0x15')]();});}};}function handleEntityNotFound(_0x1c5562,_0x53c239){return function(_0x2279b7){if(!_0x2279b7){_0x1c5562['sendStatus'](0x194);}return _0x2279b7;};}function handleError(_0x5682d8,_0x5efa48){_0x5efa48=_0x5efa48||0x1f4;return function(_0x2c49d2){logger['error'](_0x2c49d2[_0x40d9('0x22')]);if(_0x2c49d2['name']){delete _0x2c49d2[_0x40d9('0x23')];}_0x5682d8[_0x40d9('0x14')](_0x5efa48)['send'](_0x2c49d2);};}exports[_0x40d9('0x24')]=function(_0x1e1fcf,_0x4cf8f7){var _0x3a63d8={},_0x37e9c1={},_0x3fdb69={'count':0x0,'rows':[]};var _0x2cdf83=_[_0x40d9('0x25')](db['SquareMessage'][_0x40d9('0x26')],function(_0xeeee5c){return{'name':_0xeeee5c[_0x40d9('0x27')],'type':_0xeeee5c[_0x40d9('0x28')][_0x40d9('0x29')]};});_0x37e9c1['model']=_['map'](_0x2cdf83,_0x40d9('0x23'));_0x37e9c1['query']=_['keys'](_0x1e1fcf[_0x40d9('0x2a')]);_0x37e9c1[_0x40d9('0x2b')]=_[_0x40d9('0x2c')](_0x37e9c1[_0x40d9('0x2d')],_0x37e9c1[_0x40d9('0x2a')]);_0x3a63d8[_0x40d9('0x2e')]=_[_0x40d9('0x2c')](_0x37e9c1[_0x40d9('0x2d')],qs[_0x40d9('0x2f')](_0x1e1fcf[_0x40d9('0x2a')][_0x40d9('0x2f')]));_0x3a63d8['attributes']=_0x3a63d8[_0x40d9('0x2e')][_0x40d9('0x30')]?_0x3a63d8[_0x40d9('0x2e')]:_0x37e9c1[_0x40d9('0x2d')];if(!_0x1e1fcf[_0x40d9('0x2a')][_0x40d9('0x31')](_0x40d9('0x32'))){_0x3a63d8[_0x40d9('0x19')]=qs[_0x40d9('0x19')](_0x1e1fcf[_0x40d9('0x2a')][_0x40d9('0x19')]);_0x3a63d8[_0x40d9('0x17')]=qs[_0x40d9('0x17')](_0x1e1fcf[_0x40d9('0x2a')][_0x40d9('0x17')]);}_0x3a63d8[_0x40d9('0x33')]=qs[_0x40d9('0x34')](_0x1e1fcf[_0x40d9('0x2a')][_0x40d9('0x34')]);_0x3a63d8['where']=qs[_0x40d9('0x2b')](_['pick'](_0x1e1fcf[_0x40d9('0x2a')],_0x37e9c1[_0x40d9('0x2b')]),_0x2cdf83);if(_0x1e1fcf[_0x40d9('0x2a')][_0x40d9('0x35')]){_0x3a63d8['where']=_[_0x40d9('0x36')](_0x3a63d8[_0x40d9('0x37')],{'$or':_[_0x40d9('0x25')](_0x2cdf83,function(_0x52079d){if(_0x52079d[_0x40d9('0x28')]!==_0x40d9('0x38')){var _0x42a967={};_0x42a967[_0x52079d[_0x40d9('0x23')]]={'$like':'%'+_0x1e1fcf[_0x40d9('0x2a')][_0x40d9('0x35')]+'%'};return _0x42a967;}})});}_0x3a63d8=_[_0x40d9('0x36')]({},_0x3a63d8,_0x1e1fcf[_0x40d9('0x39')]);var _0xa6a7d6={'where':_0x3a63d8[_0x40d9('0x37')]};return db[_0x40d9('0x3a')][_0x40d9('0x1a')](_0xa6a7d6)[_0x40d9('0x3b')](function(_0x34c3cb){_0x3fdb69[_0x40d9('0x1a')]=_0x34c3cb;if(_0x1e1fcf[_0x40d9('0x2a')]['includeAll']){_0x3a63d8[_0x40d9('0x3c')]=[{'all':!![]}];}return db[_0x40d9('0x3a')][_0x40d9('0x3d')](_0x3a63d8);})[_0x40d9('0x3b')](function(_0x43414a){_0x3fdb69[_0x40d9('0x3e')]=_0x43414a;return _0x3fdb69;})['then'](respondWithFilteredResult(_0x4cf8f7,_0x3a63d8))[_0x40d9('0x3f')](handleError(_0x4cf8f7,null));};exports[_0x40d9('0x40')]=function(_0x305569,_0x3865f2){var _0x3f1e98={'raw':!![],'where':{'id':_0x305569['params']['id']}},_0x2886cd={};_0x2886cd[_0x40d9('0x2d')]=_[_0x40d9('0x41')](db[_0x40d9('0x3a')][_0x40d9('0x26')]);_0x2886cd['query']=_['keys'](_0x305569[_0x40d9('0x2a')]);_0x2886cd[_0x40d9('0x2b')]=_[_0x40d9('0x2c')](_0x2886cd[_0x40d9('0x2d')],_0x2886cd['query']);_0x3f1e98['attributes']=_[_0x40d9('0x2c')](_0x2886cd[_0x40d9('0x2d')],qs[_0x40d9('0x2f')](_0x305569['query'][_0x40d9('0x2f')]));_0x3f1e98['attributes']=_0x3f1e98[_0x40d9('0x2e')][_0x40d9('0x30')]?_0x3f1e98['attributes']:_0x2886cd['model'];if(_0x305569[_0x40d9('0x2a')][_0x40d9('0x42')]){_0x3f1e98[_0x40d9('0x3c')]=[{'all':!![]}];}_0x3f1e98=_[_0x40d9('0x36')]({},_0x3f1e98,_0x305569['options']);return db['SquareMessage'][_0x40d9('0x43')](_0x3f1e98)[_0x40d9('0x3b')](handleEntityNotFound(_0x3865f2,null))[_0x40d9('0x3b')](respondWithResult(_0x3865f2,null))['catch'](handleError(_0x3865f2,null));};exports[_0x40d9('0x44')]=function(_0x3d984d,_0x4db4ff){return db[_0x40d9('0x3a')][_0x40d9('0x44')](_0x3d984d[_0x40d9('0x45')],{})[_0x40d9('0x3b')](respondWithResult(_0x4db4ff,0xc9))['catch'](handleError(_0x4db4ff,null));};exports[_0x40d9('0x20')]=function(_0x3f30d8,_0x2e3d8a){if(_0x3f30d8[_0x40d9('0x45')]['id']){delete _0x3f30d8[_0x40d9('0x45')]['id'];}return db['SquareMessage'][_0x40d9('0x43')]({'where':{'id':_0x3f30d8[_0x40d9('0x46')]['id']}})[_0x40d9('0x3b')](handleEntityNotFound(_0x2e3d8a,null))[_0x40d9('0x3b')](saveUpdates(_0x3f30d8[_0x40d9('0x45')],null))[_0x40d9('0x3b')](respondWithResult(_0x2e3d8a,null))[_0x40d9('0x3f')](handleError(_0x2e3d8a,null));};exports[_0x40d9('0x21')]=function(_0x20a32f,_0x5937fc){return db[_0x40d9('0x3a')][_0x40d9('0x43')]({'where':{'id':_0x20a32f[_0x40d9('0x46')]['id']}})[_0x40d9('0x3b')](handleEntityNotFound(_0x5937fc,null))[_0x40d9('0x3b')](removeEntity(_0x5937fc,null))['catch'](handleError(_0x5937fc,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5379=['exports','define','SquareMessage','square_messages','util','../../config/logger','api','moment','bluebird','path','rimraf','../../config/environment','./squareMessage.attributes'];(function(_0x306f7d,_0x5b416c){var _0x5916bf=function(_0x107156){while(--_0x107156){_0x306f7d['push'](_0x306f7d['shift']());}};_0x5916bf(++_0x5b416c);}(_0x5379,0x156));var _0x9537=function(_0x148995,_0x2aee82){_0x148995=_0x148995-0x0;var _0x598945=_0x5379[_0x148995];return _0x598945;};'use strict';var _=require('lodash');var util=require(_0x9537('0x0'));var logger=require(_0x9537('0x1'))(_0x9537('0x2'));var moment=require(_0x9537('0x3'));var BPromise=require(_0x9537('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x9537('0x5'));var rimraf=require(_0x9537('0x6'));var config=require(_0x9537('0x7'));var attributes=require(_0x9537('0x8'));module[_0x9537('0x9')]=function(_0x1cfd20,_0x3b1da2){return _0x1cfd20[_0x9537('0xa')](_0x9537('0xb'),attributes,{'tableName':_0x9537('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xb9d7=['exports','define','SquareMessage','square_messages','lodash','util','bluebird','request-promise','path','../../config/environment','./squareMessage.attributes'];(function(_0xfae23b,_0x2be4ba){var _0x200640=function(_0x4ae258){while(--_0x4ae258){_0xfae23b['push'](_0xfae23b['shift']());}};_0x200640(++_0x2be4ba);}(_0xb9d7,0xbf));var _0x7b9d=function(_0x263a74,_0xc31414){_0x263a74=_0x263a74-0x0;var _0x2aa86c=_0xb9d7[_0x263a74];return _0x2aa86c;};'use strict';var _=require(_0x7b9d('0x0'));var util=require(_0x7b9d('0x1'));var logger=require('../../config/logger')('api');var moment=require('moment');var BPromise=require(_0x7b9d('0x2'));var rp=require(_0x7b9d('0x3'));var fs=require('fs');var path=require(_0x7b9d('0x4'));var rimraf=require('rimraf');var config=require(_0x7b9d('0x5'));var attributes=require(_0x7b9d('0x6'));module[_0x7b9d('0x7')]=function(_0xd62c92,_0x3c6e36){return _0xd62c92[_0x7b9d('0x8')](_0x7b9d('0x9'),attributes,{'tableName':_0x7b9d('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb072=['ioredis','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','request','info','SquareMessage,\x20%s,\x20%s','request\x20sent','SquareMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','CreateSquareMessage','SquareMessage','create','body','options','raw','debug','lodash','util','moment','bluebird','randomstring'];(function(_0x1acabc,_0x2a41d6){var _0x425424=function(_0xe78aee){while(--_0xe78aee){_0x1acabc['push'](_0x1acabc['shift']());}};_0x425424(++_0x2a41d6);}(_0xb072,0x181));var _0x2b07=function(_0x5eed89,_0x2b491f){_0x5eed89=_0x5eed89-0x0;var _0x254543=_0xb072[_0x5eed89];return _0x254543;};'use strict';var _=require(_0x2b07('0x0'));var util=require(_0x2b07('0x1'));var moment=require(_0x2b07('0x2'));var BPromise=require(_0x2b07('0x3'));var rs=require(_0x2b07('0x4'));var fs=require('fs');var Redis=require(_0x2b07('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0x2b07('0x6'));var logger=require(_0x2b07('0x7'))(_0x2b07('0x8'));var config=require('../../config/environment');var jayson=require(_0x2b07('0x9'));var client=jayson[_0x2b07('0xa')][_0x2b07('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x27d9d0,_0x359794,_0x2ccae8){return new BPromise(function(_0x212e4d,_0x4c8c11){return client[_0x2b07('0xc')](_0x27d9d0,_0x2ccae8)['then'](function(_0x5e7bdc){logger[_0x2b07('0xd')](_0x2b07('0xe'),_0x359794,_0x2b07('0xf'));logger['debug'](_0x2b07('0x10'),_0x359794,_0x2b07('0xf'),JSON[_0x2b07('0x11')](_0x5e7bdc));if(_0x5e7bdc[_0x2b07('0x12')]){if(_0x5e7bdc[_0x2b07('0x12')][_0x2b07('0x13')]===0x1f4){logger['error'](_0x2b07('0xe'),_0x359794,_0x5e7bdc['error']['message']);return _0x4c8c11(_0x5e7bdc['error'][_0x2b07('0x14')]);}logger[_0x2b07('0x12')](_0x2b07('0xe'),_0x359794,_0x5e7bdc[_0x2b07('0x12')]['message']);return _0x212e4d(_0x5e7bdc[_0x2b07('0x12')]['message']);}else{logger[_0x2b07('0xd')](_0x2b07('0xe'),_0x359794,_0x2b07('0xf'));_0x212e4d(_0x5e7bdc[_0x2b07('0x15')][_0x2b07('0x14')]);}})[_0x2b07('0x16')](function(_0x31418e){logger['error'](_0x2b07('0xe'),_0x359794,_0x31418e);_0x4c8c11(_0x31418e);});});}exports[_0x2b07('0x17')]=function(_0x2d84f3){var _0x1dff3a=this;return new Promise(function(_0x320ecd,_0x4dd35c){return db[_0x2b07('0x18')][_0x2b07('0x19')](_0x2d84f3[_0x2b07('0x1a')],{'raw':_0x2d84f3[_0x2b07('0x1b')]?_0x2d84f3[_0x2b07('0x1b')][_0x2b07('0x1c')]===undefined?!![]:![]:!![]})['then'](function(_0xf4b0a5){logger[_0x2b07('0xd')](_0x2b07('0x17'),_0x2d84f3);logger[_0x2b07('0x1d')](_0x2b07('0x17'),_0x2d84f3,JSON[_0x2b07('0x11')](_0xf4b0a5));_0x320ecd(_0xf4b0a5);})['catch'](function(_0x53ff81){logger[_0x2b07('0x12')](_0x2b07('0x17'),_0x53ff81[_0x2b07('0x14')],_0x2d84f3);_0x4dd35c(_0x1dff3a[_0x2b07('0x12')](0x1f4,_0x53ff81['message']));});});};
\ No newline at end of file
+var _0xb7e6=['ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','info','request\x20sent','debug','SquareMessage,\x20%s,\x20%s,\x20%s','stringify','error','SquareMessage,\x20%s,\x20%s','message','result','catch','CreateSquareMessage','SquareMessage','body','options','then','lodash','util','moment','bluebird','randomstring'];(function(_0xf65a11,_0x18623b){var _0x530b80=function(_0x55497d){while(--_0x55497d){_0xf65a11['push'](_0xf65a11['shift']());}};_0x530b80(++_0x18623b);}(_0xb7e6,0xbf));var _0x6b7e=function(_0x410e3b,_0x3ccf61){_0x410e3b=_0x410e3b-0x0;var _0x2d106d=_0xb7e6[_0x410e3b];return _0x2d106d;};'use strict';var _=require(_0x6b7e('0x0'));var util=require(_0x6b7e('0x1'));var moment=require(_0x6b7e('0x2'));var BPromise=require(_0x6b7e('0x3'));var rs=require(_0x6b7e('0x4'));var fs=require('fs');var Redis=require(_0x6b7e('0x5'));var db=require(_0x6b7e('0x6'))['db'];var utils=require(_0x6b7e('0x7'));var logger=require(_0x6b7e('0x8'))('rpc');var config=require(_0x6b7e('0x9'));var jayson=require(_0x6b7e('0xa'));var client=jayson[_0x6b7e('0xb')][_0x6b7e('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x2d7e19,_0x280c53,_0x2682a8){return new BPromise(function(_0x50cef7,_0x4d1380){return client['request'](_0x2d7e19,_0x2682a8)['then'](function(_0x3a331b){logger[_0x6b7e('0xd')]('SquareMessage,\x20%s,\x20%s',_0x280c53,_0x6b7e('0xe'));logger[_0x6b7e('0xf')](_0x6b7e('0x10'),_0x280c53,_0x6b7e('0xe'),JSON[_0x6b7e('0x11')](_0x3a331b));if(_0x3a331b[_0x6b7e('0x12')]){if(_0x3a331b[_0x6b7e('0x12')]['code']===0x1f4){logger[_0x6b7e('0x12')](_0x6b7e('0x13'),_0x280c53,_0x3a331b[_0x6b7e('0x12')]['message']);return _0x4d1380(_0x3a331b[_0x6b7e('0x12')]['message']);}logger['error'](_0x6b7e('0x13'),_0x280c53,_0x3a331b[_0x6b7e('0x12')]['message']);return _0x50cef7(_0x3a331b[_0x6b7e('0x12')][_0x6b7e('0x14')]);}else{logger['info'](_0x6b7e('0x13'),_0x280c53,_0x6b7e('0xe'));_0x50cef7(_0x3a331b[_0x6b7e('0x15')][_0x6b7e('0x14')]);}})[_0x6b7e('0x16')](function(_0x35f40c){logger[_0x6b7e('0x12')](_0x6b7e('0x13'),_0x280c53,_0x35f40c);_0x4d1380(_0x35f40c);});});}exports[_0x6b7e('0x17')]=function(_0x478385){var _0x4f0daa=this;return new Promise(function(_0x35e3df,_0x19b5f2){return db[_0x6b7e('0x18')]['create'](_0x478385[_0x6b7e('0x19')],{'raw':_0x478385[_0x6b7e('0x1a')]?_0x478385[_0x6b7e('0x1a')]['raw']===undefined?!![]:![]:!![]})[_0x6b7e('0x1b')](function(_0x574531){logger['info']('CreateSquareMessage',_0x478385);logger['debug'](_0x6b7e('0x17'),_0x478385,JSON[_0x6b7e('0x11')](_0x574531));_0x35e3df(_0x574531);})[_0x6b7e('0x16')](function(_0x3b2a4a){logger[_0x6b7e('0x12')](_0x6b7e('0x17'),_0x3b2a4a[_0x6b7e('0x14')],_0x478385);_0x19b5f2(_0x4f0daa[_0x6b7e('0x12')](0x1f4,_0x3b2a4a[_0x6b7e('0x14')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xff88=['get','isAuthenticated','index','/:id','show','/:id/test','15s','put','delete','destroy','exports','multer','util','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./squareOdbc.controller'];(function(_0x33da7b,_0x4c984c){var _0x205c55=function(_0x198d0c){while(--_0x198d0c){_0x33da7b['push'](_0x33da7b['shift']());}};_0x205c55(++_0x4c984c);}(_0xff88,0xf2));var _0x8ff8=function(_0x1c221f,_0x3dd020){_0x1c221f=_0x1c221f-0x0;var _0x5f4854=_0xff88[_0x1c221f];return _0x5f4854;};'use strict';var multer=require(_0x8ff8('0x0'));var util=require(_0x8ff8('0x1'));var path=require('path');var timeout=require(_0x8ff8('0x2'));var express=require(_0x8ff8('0x3'));var router=express[_0x8ff8('0x4')]();var fs_extra=require(_0x8ff8('0x5'));var auth=require(_0x8ff8('0x6'));var interaction=require(_0x8ff8('0x7'));var config=require(_0x8ff8('0x8'));var controller=require(_0x8ff8('0x9'));router[_0x8ff8('0xa')]('/',auth[_0x8ff8('0xb')](),controller[_0x8ff8('0xc')]);router[_0x8ff8('0xa')](_0x8ff8('0xd'),auth[_0x8ff8('0xb')](),controller[_0x8ff8('0xe')]);router[_0x8ff8('0xa')](_0x8ff8('0xf'),auth['isAuthenticated'](),timeout(_0x8ff8('0x10')),controller['test']);router['post']('/',auth[_0x8ff8('0xb')](),controller['create']);router[_0x8ff8('0x11')](_0x8ff8('0xd'),auth[_0x8ff8('0xb')](),controller['update']);router[_0x8ff8('0x12')](_0x8ff8('0xd'),auth['isAuthenticated'](),controller[_0x8ff8('0x13')]);module[_0x8ff8('0x14')]=router;
\ No newline at end of file
+var _0xd8a7=['test','create','put','/:id','update','delete','destroy','exports','multer','path','express','Router','fs-extra','../../components/interaction/service','../../config/environment','./squareOdbc.controller','get','index','isAuthenticated','show','/:id/test'];(function(_0x333767,_0x3e6f9c){var _0x51661b=function(_0x46e5d6){while(--_0x46e5d6){_0x333767['push'](_0x333767['shift']());}};_0x51661b(++_0x3e6f9c);}(_0xd8a7,0xc5));var _0x7d8a=function(_0x26829c,_0x2419cd){_0x26829c=_0x26829c-0x0;var _0x5439a8=_0xd8a7[_0x26829c];return _0x5439a8;};'use strict';var multer=require(_0x7d8a('0x0'));var util=require('util');var path=require(_0x7d8a('0x1'));var timeout=require('connect-timeout');var express=require(_0x7d8a('0x2'));var router=express[_0x7d8a('0x3')]();var fs_extra=require(_0x7d8a('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0x7d8a('0x5'));var config=require(_0x7d8a('0x6'));var controller=require(_0x7d8a('0x7'));router[_0x7d8a('0x8')]('/',auth['isAuthenticated'](),controller[_0x7d8a('0x9')]);router['get']('/:id',auth[_0x7d8a('0xa')](),controller[_0x7d8a('0xb')]);router[_0x7d8a('0x8')](_0x7d8a('0xc'),auth[_0x7d8a('0xa')](),timeout('15s'),controller[_0x7d8a('0xd')]);router['post']('/',auth['isAuthenticated'](),controller[_0x7d8a('0xe')]);router[_0x7d8a('0xf')](_0x7d8a('0x10'),auth[_0x7d8a('0xa')](),controller[_0x7d8a('0x11')]);router[_0x7d8a('0x12')]('/:id',auth['isAuthenticated'](),controller[_0x7d8a('0x13')]);module[_0x7d8a('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x76e1=['exports','STRING','name'];(function(_0x3bd6cf,_0x1f9539){var _0xa30dc8=function(_0x5693be){while(--_0x5693be){_0x3bd6cf['push'](_0x3bd6cf['shift']());}};_0xa30dc8(++_0x1f9539);}(_0x76e1,0x17d));var _0x176e=function(_0xc68810,_0x3a434d){_0xc68810=_0xc68810-0x0;var _0x4d0b8c=_0x76e1[_0xc68810];return _0x4d0b8c;};'use strict';var Sequelize=require('sequelize');module[_0x176e('0x0')]={'name':{'type':Sequelize[_0x176e('0x1')],'unique':_0x176e('0x2'),'allowNull':![]},'dsn':{'type':Sequelize[_0x176e('0x1')]},'description':{'type':Sequelize[_0x176e('0x1')]}};
\ No newline at end of file
+var _0xcf0d=['sequelize','exports','STRING'];(function(_0x168b10,_0x5769da){var _0x5e98cd=function(_0x20868c){while(--_0x20868c){_0x168b10['push'](_0x168b10['shift']());}};_0x5e98cd(++_0x5769da);}(_0xcf0d,0x90));var _0xdcf0=function(_0x5738c4,_0x54bd3b){_0x5738c4=_0x5738c4-0x0;var _0x323b64=_0xcf0d[_0x5738c4];return _0x323b64;};'use strict';var Sequelize=require(_0xdcf0('0x0'));module[_0xdcf0('0x1')]={'name':{'type':Sequelize['STRING'],'unique':'name','allowNull':![]},'dsn':{'type':Sequelize[_0xdcf0('0x2')]},'description':{'type':Sequelize[_0xdcf0('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xab54=['then','destroy','ODBC','UserProfileResource','error','stack','name','send','index','map','SquareOdbc','fieldName','type','key','model','query','attributes','intersection','fields','length','hasOwnProperty','nolimit','where','pick','filters','merge','VIRTUAL','filter','options','includeAll','include','rows','catch','params','keys','find','create','body','user','role','get','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','test','closeSync','eml-format','fast-json-patch','request-promise','moment','mustache','path','sox','lodash','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/environment','../../config/license/util','sendStatus','status','json','undefined','limit','count','offset','set','Content-Range','apply','reject','update'];(function(_0x41d04f,_0x5c83a9){var _0x37b0bd=function(_0x1d808f){while(--_0x1d808f){_0x41d04f['push'](_0x41d04f['shift']());}};_0x37b0bd(++_0x5c83a9);}(_0xab54,0xcc));var _0x4ab5=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xab54[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require(_0x4ab5('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x4ab5('0x1'));var rp=require(_0x4ab5('0x2'));var moment=require(_0x4ab5('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x4ab5('0x4'));var util=require('util');var path=require(_0x4ab5('0x5'));var sox=require(_0x4ab5('0x6'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x4ab5('0x7'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x4ab5('0x8'));var deskjs=require(_0x4ab5('0x9'));var toCsv=require(_0x4ab5('0xa'));var querystring=require(_0x4ab5('0xb'));var Papa=require(_0x4ab5('0xc'));var Redis=require(_0x4ab5('0xd'));var authService=require(_0x4ab5('0xe'));var qs=require(_0x4ab5('0xf'));var as=require(_0x4ab5('0x10'));var hardwareService=require(_0x4ab5('0x11'));var logger=require(_0x4ab5('0x12'))('api');var utils=require('../../config/utils');var config=require(_0x4ab5('0x13'));var licenseUtil=require(_0x4ab5('0x14'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x74c7c7,_0x47f62d){_0x47f62d=_0x47f62d||0xcc;return function(_0x27e7c9){if(_0x27e7c9){return _0x74c7c7[_0x4ab5('0x15')](_0x47f62d);}return _0x74c7c7[_0x4ab5('0x16')](_0x47f62d)['end']();};}function respondWithResult(_0x501c69,_0xb507bd){_0xb507bd=_0xb507bd||0xc8;return function(_0x4670f4){if(_0x4670f4){return _0x501c69[_0x4ab5('0x16')](_0xb507bd)[_0x4ab5('0x17')](_0x4670f4);}};}function respondWithFilteredResult(_0x311b0a,_0x3d5af4){return function(_0x4c8ef2){if(_0x4c8ef2){var _0x436667=typeof _0x3d5af4['offset']===_0x4ab5('0x18')&&typeof _0x3d5af4[_0x4ab5('0x19')]===_0x4ab5('0x18');var _0x2c7c93=_0x4c8ef2[_0x4ab5('0x1a')];var _0x3f3081=_0x436667?0x0:_0x3d5af4[_0x4ab5('0x1b')];var _0x1cf6eb=_0x436667?_0x4c8ef2['count']:_0x3d5af4['offset']+_0x3d5af4[_0x4ab5('0x19')];var _0x4b04df;if(_0x1cf6eb>=_0x2c7c93){_0x1cf6eb=_0x2c7c93;_0x4b04df=0xc8;}else{_0x4b04df=0xce;}_0x311b0a[_0x4ab5('0x16')](_0x4b04df);return _0x311b0a[_0x4ab5('0x1c')](_0x4ab5('0x1d'),_0x3f3081+'-'+_0x1cf6eb+'/'+_0x2c7c93)[_0x4ab5('0x17')](_0x4c8ef2);}return null;};}function patchUpdates(_0x13f761){return function(_0x1df7dd){try{jsonpatch[_0x4ab5('0x1e')](_0x1df7dd,_0x13f761,!![]);}catch(_0x2a48ba){return BPromise[_0x4ab5('0x1f')](_0x2a48ba);}return _0x1df7dd['save']();};}function saveUpdates(_0x34fba3,_0x351e70){return function(_0x5bfe57){if(_0x5bfe57){return _0x5bfe57[_0x4ab5('0x20')](_0x34fba3)[_0x4ab5('0x21')](function(_0x1c36b3){return _0x1c36b3;});}return null;};}function removeEntity(_0x3599b2,_0x1d6518){return function(_0x7e9ee7){if(_0x7e9ee7){return _0x7e9ee7[_0x4ab5('0x22')]()[_0x4ab5('0x21')](function(){var _0x1b3bde=_0x7e9ee7['get']({'plain':!![]});var _0x59d965=_0x4ab5('0x23');return db[_0x4ab5('0x24')]['destroy']({'where':{'type':_0x59d965,'resourceId':_0x1b3bde['id']}})[_0x4ab5('0x21')](function(){return _0x7e9ee7;});})[_0x4ab5('0x21')](function(){_0x3599b2[_0x4ab5('0x16')](0xcc)['end']();});}};}function handleEntityNotFound(_0x9e8fe2,_0x487124){return function(_0x2cb50){if(!_0x2cb50){_0x9e8fe2['sendStatus'](0x194);}return _0x2cb50;};}function handleError(_0x414d04,_0x3f9ba3){_0x3f9ba3=_0x3f9ba3||0x1f4;return function(_0x41491){logger[_0x4ab5('0x25')](_0x41491[_0x4ab5('0x26')]);if(_0x41491['name']){delete _0x41491[_0x4ab5('0x27')];}_0x414d04[_0x4ab5('0x16')](_0x3f9ba3)[_0x4ab5('0x28')](_0x41491);};}exports[_0x4ab5('0x29')]=function(_0x36a0ad,_0x23d66a){var _0xab7370={},_0x3b1c32={},_0xef9c7a={'count':0x0,'rows':[]};var _0x46d8f5=_[_0x4ab5('0x2a')](db[_0x4ab5('0x2b')]['rawAttributes'],function(_0x5b31c6){return{'name':_0x5b31c6[_0x4ab5('0x2c')],'type':_0x5b31c6[_0x4ab5('0x2d')][_0x4ab5('0x2e')]};});_0x3b1c32[_0x4ab5('0x2f')]=_[_0x4ab5('0x2a')](_0x46d8f5,_0x4ab5('0x27'));_0x3b1c32[_0x4ab5('0x30')]=_['keys'](_0x36a0ad[_0x4ab5('0x30')]);_0x3b1c32['filters']=_['intersection'](_0x3b1c32[_0x4ab5('0x2f')],_0x3b1c32[_0x4ab5('0x30')]);_0xab7370[_0x4ab5('0x31')]=_[_0x4ab5('0x32')](_0x3b1c32[_0x4ab5('0x2f')],qs[_0x4ab5('0x33')](_0x36a0ad[_0x4ab5('0x30')][_0x4ab5('0x33')]));_0xab7370['attributes']=_0xab7370[_0x4ab5('0x31')][_0x4ab5('0x34')]?_0xab7370['attributes']:_0x3b1c32[_0x4ab5('0x2f')];if(!_0x36a0ad['query'][_0x4ab5('0x35')](_0x4ab5('0x36'))){_0xab7370[_0x4ab5('0x19')]=qs[_0x4ab5('0x19')](_0x36a0ad[_0x4ab5('0x30')][_0x4ab5('0x19')]);_0xab7370[_0x4ab5('0x1b')]=qs[_0x4ab5('0x1b')](_0x36a0ad[_0x4ab5('0x30')]['offset']);}_0xab7370['order']=qs['sort'](_0x36a0ad[_0x4ab5('0x30')]['sort']);_0xab7370[_0x4ab5('0x37')]=qs['filters'](_[_0x4ab5('0x38')](_0x36a0ad[_0x4ab5('0x30')],_0x3b1c32[_0x4ab5('0x39')]),_0x46d8f5);if(_0x36a0ad[_0x4ab5('0x30')]['filter']){_0xab7370['where']=_[_0x4ab5('0x3a')](_0xab7370[_0x4ab5('0x37')],{'$or':_['map'](_0x46d8f5,function(_0x388660){if(_0x388660[_0x4ab5('0x2d')]!==_0x4ab5('0x3b')){var _0x405758={};_0x405758[_0x388660[_0x4ab5('0x27')]]={'$like':'%'+_0x36a0ad[_0x4ab5('0x30')][_0x4ab5('0x3c')]+'%'};return _0x405758;}})});}_0xab7370=_[_0x4ab5('0x3a')]({},_0xab7370,_0x36a0ad[_0x4ab5('0x3d')]);var _0x3f8919={'where':_0xab7370[_0x4ab5('0x37')]};return db[_0x4ab5('0x2b')]['count'](_0x3f8919)['then'](function(_0x191e0b){_0xef9c7a['count']=_0x191e0b;if(_0x36a0ad['query'][_0x4ab5('0x3e')]){_0xab7370[_0x4ab5('0x3f')]=[{'all':!![]}];}return db[_0x4ab5('0x2b')]['findAll'](_0xab7370);})[_0x4ab5('0x21')](function(_0x1574df){_0xef9c7a[_0x4ab5('0x40')]=_0x1574df;return _0xef9c7a;})[_0x4ab5('0x21')](respondWithFilteredResult(_0x23d66a,_0xab7370))[_0x4ab5('0x41')](handleError(_0x23d66a,null));};exports['show']=function(_0x29f3fc,_0x577dd7){var _0x2e069e={'raw':!![],'where':{'id':_0x29f3fc[_0x4ab5('0x42')]['id']}},_0x5a2a89={};_0x5a2a89[_0x4ab5('0x2f')]=_[_0x4ab5('0x43')](db['SquareOdbc']['rawAttributes']);_0x5a2a89['query']=_['keys'](_0x29f3fc[_0x4ab5('0x30')]);_0x5a2a89[_0x4ab5('0x39')]=_[_0x4ab5('0x32')](_0x5a2a89['model'],_0x5a2a89[_0x4ab5('0x30')]);_0x2e069e[_0x4ab5('0x31')]=_[_0x4ab5('0x32')](_0x5a2a89['model'],qs[_0x4ab5('0x33')](_0x29f3fc['query'][_0x4ab5('0x33')]));_0x2e069e['attributes']=_0x2e069e[_0x4ab5('0x31')][_0x4ab5('0x34')]?_0x2e069e[_0x4ab5('0x31')]:_0x5a2a89[_0x4ab5('0x2f')];if(_0x29f3fc[_0x4ab5('0x30')][_0x4ab5('0x3e')]){_0x2e069e[_0x4ab5('0x3f')]=[{'all':!![]}];}_0x2e069e=_[_0x4ab5('0x3a')]({},_0x2e069e,_0x29f3fc[_0x4ab5('0x3d')]);return db[_0x4ab5('0x2b')][_0x4ab5('0x44')](_0x2e069e)[_0x4ab5('0x21')](handleEntityNotFound(_0x577dd7,null))[_0x4ab5('0x21')](respondWithResult(_0x577dd7,null))[_0x4ab5('0x41')](handleError(_0x577dd7,null));};exports[_0x4ab5('0x45')]=function(_0x27dd46,_0x5ec25d){return db[_0x4ab5('0x2b')]['create'](_0x27dd46[_0x4ab5('0x46')],{})[_0x4ab5('0x21')](function(_0x3e7500){var _0x4b9cd9=_0x27dd46[_0x4ab5('0x47')]['get']({'plain':!![]});if(!_0x4b9cd9)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x4b9cd9[_0x4ab5('0x48')]==='user'){var _0x540cf5=_0x3e7500[_0x4ab5('0x49')]({'plain':!![]});var _0xb9adba=_0x4ab5('0x23');return db[_0x4ab5('0x4a')][_0x4ab5('0x44')]({'where':{'name':_0xb9adba,'userProfileId':_0x4b9cd9['userProfileId']},'raw':!![]})[_0x4ab5('0x21')](function(_0x56e7d2){if(_0x56e7d2&&_0x56e7d2[_0x4ab5('0x4b')]===0x0){return db[_0x4ab5('0x24')][_0x4ab5('0x45')]({'name':_0x540cf5[_0x4ab5('0x27')],'resourceId':_0x540cf5['id'],'type':_0x56e7d2['name'],'sectionId':_0x56e7d2['id']},{})[_0x4ab5('0x21')](function(){return _0x3e7500;});}else{return _0x3e7500;}})[_0x4ab5('0x41')](function(_0x4c994c){logger[_0x4ab5('0x25')](_0x4ab5('0x4c'),_0x4c994c);throw _0x4c994c;});}return _0x3e7500;})[_0x4ab5('0x21')](respondWithResult(_0x5ec25d,0xc9))[_0x4ab5('0x41')](handleError(_0x5ec25d,null));};exports[_0x4ab5('0x20')]=function(_0x48f47e,_0x46afc1){if(_0x48f47e[_0x4ab5('0x46')]['id']){delete _0x48f47e[_0x4ab5('0x46')]['id'];}return db[_0x4ab5('0x2b')][_0x4ab5('0x44')]({'where':{'id':_0x48f47e[_0x4ab5('0x42')]['id']}})[_0x4ab5('0x21')](handleEntityNotFound(_0x46afc1,null))[_0x4ab5('0x21')](saveUpdates(_0x48f47e[_0x4ab5('0x46')],null))[_0x4ab5('0x21')](respondWithResult(_0x46afc1,null))[_0x4ab5('0x41')](handleError(_0x46afc1,null));};exports[_0x4ab5('0x22')]=function(_0x3f7441,_0x8282f1){return db[_0x4ab5('0x2b')][_0x4ab5('0x44')]({'where':{'id':_0x3f7441[_0x4ab5('0x42')]['id']}})[_0x4ab5('0x21')](handleEntityNotFound(_0x8282f1,null))['then'](removeEntity(_0x8282f1,null))[_0x4ab5('0x41')](handleError(_0x8282f1,null));};exports[_0x4ab5('0x4d')]=function(_0xe95634,_0x3c0499,_0x51bef8){var _0x589f57;return db['SquareOdbc']['find']({'where':{'id':_0xe95634[_0x4ab5('0x42')]['id']},'attributes':['id','dsn']})[_0x4ab5('0x21')](handleEntityNotFound(_0x3c0499,null))[_0x4ab5('0x21')](function(_0x443663){if(_0x443663){var _0x690684=require('odbc')();_0x690684['openSync'](_0x443663['dsn']);_0x690684[_0x4ab5('0x4e')]();return _0x443663;}})['then'](respondWithResult(_0x3c0499,null))[_0x4ab5('0x41')](handleError(_0x3c0499,null));};
\ No newline at end of file
+var _0x7ca2=['params','keys','fields','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','autoAssociation','test','dsn','odbc','openSync','closeSync','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','undefined','limit','set','json','apply','reject','save','update','then','destroy','get','ODBC','UserProfileResource','error','name','index','SquareOdbc','rawAttributes','type','key','model','query','filters','attributes','intersection','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','map','VIRTUAL','options','count','includeAll','include','findAll','rows','catch','show'];(function(_0x555943,_0x44f643){var _0x419a83=function(_0x730a18){while(--_0x730a18){_0x555943['push'](_0x555943['shift']());}};_0x419a83(++_0x44f643);}(_0x7ca2,0x16b));var _0x27ca=function(_0x290c52,_0x40dc50){_0x290c52=_0x290c52-0x0;var _0x369311=_0x7ca2[_0x290c52];return _0x369311;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x27ca('0x0'));var zipdir=require(_0x27ca('0x1'));var jsonpatch=require(_0x27ca('0x2'));var rp=require(_0x27ca('0x3'));var moment=require('moment');var BPromise=require(_0x27ca('0x4'));var Mustache=require('mustache');var util=require(_0x27ca('0x5'));var path=require(_0x27ca('0x6'));var sox=require(_0x27ca('0x7'));var csv=require(_0x27ca('0x8'));var ejs=require(_0x27ca('0x9'));var fs=require('fs');var fs_extra=require(_0x27ca('0xa'));var _=require(_0x27ca('0xb'));var squel=require(_0x27ca('0xc'));var crypto=require(_0x27ca('0xd'));var jsforce=require(_0x27ca('0xe'));var deskjs=require('desk.js');var toCsv=require(_0x27ca('0x8'));var querystring=require('querystring');var Papa=require(_0x27ca('0xf'));var Redis=require(_0x27ca('0x10'));var authService=require(_0x27ca('0x11'));var qs=require(_0x27ca('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x27ca('0x13'));var logger=require('../../config/logger')('api');var utils=require(_0x27ca('0x14'));var config=require(_0x27ca('0x15'));var licenseUtil=require(_0x27ca('0x16'));var db=require(_0x27ca('0x17'))['db'];function respondWithStatusCode(_0x26bd36,_0x5e5ad){_0x5e5ad=_0x5e5ad||0xcc;return function(_0x19c906){if(_0x19c906){return _0x26bd36[_0x27ca('0x18')](_0x5e5ad);}return _0x26bd36[_0x27ca('0x19')](_0x5e5ad)[_0x27ca('0x1a')]();};}function respondWithResult(_0x23222a,_0x1cf9b8){_0x1cf9b8=_0x1cf9b8||0xc8;return function(_0x1484a0){if(_0x1484a0){return _0x23222a[_0x27ca('0x19')](_0x1cf9b8)['json'](_0x1484a0);}};}function respondWithFilteredResult(_0x4752ec,_0x341731){return function(_0x5b84d4){if(_0x5b84d4){var _0xfbd058=typeof _0x341731[_0x27ca('0x1b')]===_0x27ca('0x1c')&&typeof _0x341731[_0x27ca('0x1d')]==='undefined';var _0xb6a74c=_0x5b84d4['count'];var _0x541a58=_0xfbd058?0x0:_0x341731[_0x27ca('0x1b')];var _0x27046e=_0xfbd058?_0x5b84d4['count']:_0x341731['offset']+_0x341731[_0x27ca('0x1d')];var _0x4fbf73;if(_0x27046e>=_0xb6a74c){_0x27046e=_0xb6a74c;_0x4fbf73=0xc8;}else{_0x4fbf73=0xce;}_0x4752ec[_0x27ca('0x19')](_0x4fbf73);return _0x4752ec[_0x27ca('0x1e')]('Content-Range',_0x541a58+'-'+_0x27046e+'/'+_0xb6a74c)[_0x27ca('0x1f')](_0x5b84d4);}return null;};}function patchUpdates(_0x1befd1){return function(_0x2be012){try{jsonpatch[_0x27ca('0x20')](_0x2be012,_0x1befd1,!![]);}catch(_0x1dd8bd){return BPromise[_0x27ca('0x21')](_0x1dd8bd);}return _0x2be012[_0x27ca('0x22')]();};}function saveUpdates(_0xa91395,_0x2c54fc){return function(_0x3801cb){if(_0x3801cb){return _0x3801cb[_0x27ca('0x23')](_0xa91395)[_0x27ca('0x24')](function(_0x4d05c6){return _0x4d05c6;});}return null;};}function removeEntity(_0x1d1b4c,_0x3ca0a0){return function(_0xe57034){if(_0xe57034){return _0xe57034[_0x27ca('0x25')]()[_0x27ca('0x24')](function(){var _0x3c61c3=_0xe57034[_0x27ca('0x26')]({'plain':!![]});var _0x1d0a6d=_0x27ca('0x27');return db[_0x27ca('0x28')]['destroy']({'where':{'type':_0x1d0a6d,'resourceId':_0x3c61c3['id']}})[_0x27ca('0x24')](function(){return _0xe57034;});})[_0x27ca('0x24')](function(){_0x1d1b4c[_0x27ca('0x19')](0xcc)[_0x27ca('0x1a')]();});}};}function handleEntityNotFound(_0x55b5c0,_0x1b5bd6){return function(_0xc0520b){if(!_0xc0520b){_0x55b5c0['sendStatus'](0x194);}return _0xc0520b;};}function handleError(_0x4a35bd,_0x49b707){_0x49b707=_0x49b707||0x1f4;return function(_0x5ad224){logger[_0x27ca('0x29')](_0x5ad224['stack']);if(_0x5ad224[_0x27ca('0x2a')]){delete _0x5ad224['name'];}_0x4a35bd['status'](_0x49b707)['send'](_0x5ad224);};}exports[_0x27ca('0x2b')]=function(_0x506fca,_0xef1c95){var _0x31e385={},_0x23ed9d={},_0x4af8a2={'count':0x0,'rows':[]};var _0x471b7e=_['map'](db[_0x27ca('0x2c')][_0x27ca('0x2d')],function(_0x5403aa){return{'name':_0x5403aa['fieldName'],'type':_0x5403aa[_0x27ca('0x2e')][_0x27ca('0x2f')]};});_0x23ed9d[_0x27ca('0x30')]=_['map'](_0x471b7e,_0x27ca('0x2a'));_0x23ed9d['query']=_['keys'](_0x506fca[_0x27ca('0x31')]);_0x23ed9d[_0x27ca('0x32')]=_['intersection'](_0x23ed9d[_0x27ca('0x30')],_0x23ed9d[_0x27ca('0x31')]);_0x31e385[_0x27ca('0x33')]=_[_0x27ca('0x34')](_0x23ed9d['model'],qs['fields'](_0x506fca[_0x27ca('0x31')]['fields']));_0x31e385[_0x27ca('0x33')]=_0x31e385[_0x27ca('0x33')][_0x27ca('0x35')]?_0x31e385[_0x27ca('0x33')]:_0x23ed9d[_0x27ca('0x30')];if(!_0x506fca[_0x27ca('0x31')][_0x27ca('0x36')](_0x27ca('0x37'))){_0x31e385[_0x27ca('0x1d')]=qs[_0x27ca('0x1d')](_0x506fca['query']['limit']);_0x31e385[_0x27ca('0x1b')]=qs[_0x27ca('0x1b')](_0x506fca['query']['offset']);}_0x31e385[_0x27ca('0x38')]=qs[_0x27ca('0x39')](_0x506fca[_0x27ca('0x31')][_0x27ca('0x39')]);_0x31e385[_0x27ca('0x3a')]=qs[_0x27ca('0x32')](_[_0x27ca('0x3b')](_0x506fca['query'],_0x23ed9d[_0x27ca('0x32')]),_0x471b7e);if(_0x506fca[_0x27ca('0x31')][_0x27ca('0x3c')]){_0x31e385[_0x27ca('0x3a')]=_[_0x27ca('0x3d')](_0x31e385[_0x27ca('0x3a')],{'$or':_[_0x27ca('0x3e')](_0x471b7e,function(_0x4bdef0){if(_0x4bdef0[_0x27ca('0x2e')]!==_0x27ca('0x3f')){var _0x37d71f={};_0x37d71f[_0x4bdef0[_0x27ca('0x2a')]]={'$like':'%'+_0x506fca[_0x27ca('0x31')][_0x27ca('0x3c')]+'%'};return _0x37d71f;}})});}_0x31e385=_[_0x27ca('0x3d')]({},_0x31e385,_0x506fca[_0x27ca('0x40')]);var _0x42a08b={'where':_0x31e385[_0x27ca('0x3a')]};return db['SquareOdbc'][_0x27ca('0x41')](_0x42a08b)[_0x27ca('0x24')](function(_0x34149f){_0x4af8a2[_0x27ca('0x41')]=_0x34149f;if(_0x506fca[_0x27ca('0x31')][_0x27ca('0x42')]){_0x31e385[_0x27ca('0x43')]=[{'all':!![]}];}return db[_0x27ca('0x2c')][_0x27ca('0x44')](_0x31e385);})['then'](function(_0x3bb57d){_0x4af8a2[_0x27ca('0x45')]=_0x3bb57d;return _0x4af8a2;})['then'](respondWithFilteredResult(_0xef1c95,_0x31e385))[_0x27ca('0x46')](handleError(_0xef1c95,null));};exports[_0x27ca('0x47')]=function(_0x38628b,_0x431d38){var _0x43c6ed={'raw':!![],'where':{'id':_0x38628b[_0x27ca('0x48')]['id']}},_0x19d804={};_0x19d804['model']=_[_0x27ca('0x49')](db['SquareOdbc'][_0x27ca('0x2d')]);_0x19d804[_0x27ca('0x31')]=_['keys'](_0x38628b[_0x27ca('0x31')]);_0x19d804['filters']=_[_0x27ca('0x34')](_0x19d804[_0x27ca('0x30')],_0x19d804[_0x27ca('0x31')]);_0x43c6ed[_0x27ca('0x33')]=_[_0x27ca('0x34')](_0x19d804[_0x27ca('0x30')],qs[_0x27ca('0x4a')](_0x38628b['query'][_0x27ca('0x4a')]));_0x43c6ed[_0x27ca('0x33')]=_0x43c6ed[_0x27ca('0x33')][_0x27ca('0x35')]?_0x43c6ed[_0x27ca('0x33')]:_0x19d804[_0x27ca('0x30')];if(_0x38628b[_0x27ca('0x31')][_0x27ca('0x42')]){_0x43c6ed['include']=[{'all':!![]}];}_0x43c6ed=_[_0x27ca('0x3d')]({},_0x43c6ed,_0x38628b[_0x27ca('0x40')]);return db['SquareOdbc'][_0x27ca('0x4b')](_0x43c6ed)[_0x27ca('0x24')](handleEntityNotFound(_0x431d38,null))[_0x27ca('0x24')](respondWithResult(_0x431d38,null))[_0x27ca('0x46')](handleError(_0x431d38,null));};exports['create']=function(_0x157cfa,_0x13f7d1){return db[_0x27ca('0x2c')][_0x27ca('0x4c')](_0x157cfa[_0x27ca('0x4d')],{})[_0x27ca('0x24')](function(_0x533245){var _0x42f2f9=_0x157cfa[_0x27ca('0x4e')]['get']({'plain':!![]});if(!_0x42f2f9)throw new Error(_0x27ca('0x4f'));if(_0x42f2f9['role']===_0x27ca('0x4e')){var _0x3ca94c=_0x533245[_0x27ca('0x26')]({'plain':!![]});var _0x191880=_0x27ca('0x27');return db[_0x27ca('0x50')][_0x27ca('0x4b')]({'where':{'name':_0x191880,'userProfileId':_0x42f2f9['userProfileId']},'raw':!![]})['then'](function(_0x4679e1){if(_0x4679e1&&_0x4679e1[_0x27ca('0x51')]===0x0){return db[_0x27ca('0x28')][_0x27ca('0x4c')]({'name':_0x3ca94c[_0x27ca('0x2a')],'resourceId':_0x3ca94c['id'],'type':_0x4679e1['name'],'sectionId':_0x4679e1['id']},{})[_0x27ca('0x24')](function(){return _0x533245;});}else{return _0x533245;}})[_0x27ca('0x46')](function(_0x376a6c){logger[_0x27ca('0x29')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x376a6c);throw _0x376a6c;});}return _0x533245;})[_0x27ca('0x24')](respondWithResult(_0x13f7d1,0xc9))['catch'](handleError(_0x13f7d1,null));};exports[_0x27ca('0x23')]=function(_0x303561,_0x278465){if(_0x303561[_0x27ca('0x4d')]['id']){delete _0x303561[_0x27ca('0x4d')]['id'];}return db[_0x27ca('0x2c')][_0x27ca('0x4b')]({'where':{'id':_0x303561[_0x27ca('0x48')]['id']}})['then'](handleEntityNotFound(_0x278465,null))[_0x27ca('0x24')](saveUpdates(_0x303561['body'],null))['then'](respondWithResult(_0x278465,null))[_0x27ca('0x46')](handleError(_0x278465,null));};exports[_0x27ca('0x25')]=function(_0x211794,_0x218648){return db['SquareOdbc'][_0x27ca('0x4b')]({'where':{'id':_0x211794['params']['id']}})[_0x27ca('0x24')](handleEntityNotFound(_0x218648,null))[_0x27ca('0x24')](removeEntity(_0x218648,null))[_0x27ca('0x46')](handleError(_0x218648,null));};exports[_0x27ca('0x52')]=function(_0x924765,_0x1950aa,_0x4288d5){var _0x5e62aa;return db['SquareOdbc']['find']({'where':{'id':_0x924765[_0x27ca('0x48')]['id']},'attributes':['id',_0x27ca('0x53')]})['then'](handleEntityNotFound(_0x1950aa,null))[_0x27ca('0x24')](function(_0x4250a4){if(_0x4250a4){var _0xc9a47c=require(_0x27ca('0x54'))();_0xc9a47c[_0x27ca('0x55')](_0x4250a4[_0x27ca('0x53')]);_0xc9a47c[_0x27ca('0x56')]();return _0x4250a4;}})[_0x27ca('0x24')](respondWithResult(_0x1950aa,null))[_0x27ca('0x46')](handleError(_0x1950aa,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe5cd=['bluebird','request-promise','path','rimraf','./squareOdbc.attributes','exports','define','lodash','util','../../config/logger','api','moment'];(function(_0x1b4f09,_0x608d8e){var _0x57a182=function(_0x4ef635){while(--_0x4ef635){_0x1b4f09['push'](_0x1b4f09['shift']());}};_0x57a182(++_0x608d8e);}(_0xe5cd,0x13f));var _0xde5c=function(_0x45dfdc,_0x2334c0){_0x45dfdc=_0x45dfdc-0x0;var _0x35f15b=_0xe5cd[_0x45dfdc];return _0x35f15b;};'use strict';var _=require(_0xde5c('0x0'));var util=require(_0xde5c('0x1'));var logger=require(_0xde5c('0x2'))(_0xde5c('0x3'));var moment=require(_0xde5c('0x4'));var BPromise=require(_0xde5c('0x5'));var rp=require(_0xde5c('0x6'));var fs=require('fs');var path=require(_0xde5c('0x7'));var rimraf=require(_0xde5c('0x8'));var config=require('../../config/environment');var attributes=require(_0xde5c('0x9'));module[_0xde5c('0xa')]=function(_0x33576f,_0xfbf181){return _0x33576f[_0xde5c('0xb')]('SquareOdbc',attributes,{'tableName':'square_odbc','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xeff9=['api','moment','request-promise','rimraf','../../config/environment','./squareOdbc.attributes','define','SquareOdbc','square_odbc','lodash','util'];(function(_0x58999b,_0xea4695){var _0x5efc3a=function(_0x98de31){while(--_0x98de31){_0x58999b['push'](_0x58999b['shift']());}};_0x5efc3a(++_0xea4695);}(_0xeff9,0xa3));var _0x9eff=function(_0x465cd7,_0x317626){_0x465cd7=_0x465cd7-0x0;var _0x255fea=_0xeff9[_0x465cd7];return _0x255fea;};'use strict';var _=require(_0x9eff('0x0'));var util=require(_0x9eff('0x1'));var logger=require('../../config/logger')(_0x9eff('0x2'));var moment=require(_0x9eff('0x3'));var BPromise=require('bluebird');var rp=require(_0x9eff('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0x9eff('0x5'));var config=require(_0x9eff('0x6'));var attributes=require(_0x9eff('0x7'));module['exports']=function(_0xa41633,_0x277f3b){return _0xa41633[_0x9eff('0x8')](_0x9eff('0x9'),attributes,{'tableName':_0x9eff('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8d21=['options','where','attributes','model','include','map','debug','catch','util','moment','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','request','then','info','SquareOdbc,\x20%s,\x20%s','request\x20sent','SquareOdbc,\x20%s,\x20%s,\x20%s','stringify','error','message','result','ShowSquareOdbc','SquareOdbc','find','raw'];(function(_0x259139,_0x1f2bbd){var _0x16455d=function(_0x135c31){while(--_0x135c31){_0x259139['push'](_0x259139['shift']());}};_0x16455d(++_0x1f2bbd);}(_0x8d21,0x188));var _0x18d2=function(_0x4a7673,_0x53039c){_0x4a7673=_0x4a7673-0x0;var _0x1e2250=_0x8d21[_0x4a7673];return _0x1e2250;};'use strict';var _=require('lodash');var util=require(_0x18d2('0x0'));var moment=require(_0x18d2('0x1'));var BPromise=require('bluebird');var rs=require(_0x18d2('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x18d2('0x3'))['db'];var utils=require(_0x18d2('0x4'));var logger=require(_0x18d2('0x5'))(_0x18d2('0x6'));var config=require('../../config/environment');var jayson=require(_0x18d2('0x7'));var client=jayson[_0x18d2('0x8')][_0x18d2('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x3eb833,_0xc1b082,_0x24012c){return new BPromise(function(_0x3eeee6,_0x386bd8){return client[_0x18d2('0xa')](_0x3eb833,_0x24012c)[_0x18d2('0xb')](function(_0x3097cc){logger[_0x18d2('0xc')](_0x18d2('0xd'),_0xc1b082,_0x18d2('0xe'));logger['debug'](_0x18d2('0xf'),_0xc1b082,_0x18d2('0xe'),JSON[_0x18d2('0x10')](_0x3097cc));if(_0x3097cc[_0x18d2('0x11')]){if(_0x3097cc['error']['code']===0x1f4){logger[_0x18d2('0x11')](_0x18d2('0xd'),_0xc1b082,_0x3097cc[_0x18d2('0x11')][_0x18d2('0x12')]);return _0x386bd8(_0x3097cc[_0x18d2('0x11')][_0x18d2('0x12')]);}logger[_0x18d2('0x11')](_0x18d2('0xd'),_0xc1b082,_0x3097cc['error'][_0x18d2('0x12')]);return _0x3eeee6(_0x3097cc['error'][_0x18d2('0x12')]);}else{logger['info'](_0x18d2('0xd'),_0xc1b082,_0x18d2('0xe'));_0x3eeee6(_0x3097cc[_0x18d2('0x13')]['message']);}})['catch'](function(_0x3c6a84){logger[_0x18d2('0x11')]('SquareOdbc,\x20%s,\x20%s',_0xc1b082,_0x3c6a84);_0x386bd8(_0x3c6a84);});});}exports[_0x18d2('0x14')]=function(_0x3fd08d){var _0x4f06fa=this;return new Promise(function(_0x5e08cb,_0x594c01){return db[_0x18d2('0x15')][_0x18d2('0x16')]({'raw':_0x3fd08d['options']?_0x3fd08d['options'][_0x18d2('0x17')]===undefined?!![]:![]:!![],'where':_0x3fd08d['options']?_0x3fd08d[_0x18d2('0x18')][_0x18d2('0x19')]||null:null,'attributes':_0x3fd08d[_0x18d2('0x18')]?_0x3fd08d[_0x18d2('0x18')][_0x18d2('0x1a')]||null:null,'include':_0x3fd08d[_0x18d2('0x18')]?_0x3fd08d['options']['include']?_['map'](_0x3fd08d[_0x18d2('0x18')]['include'],function(_0x5c75ed){return{'model':db[_0x5c75ed[_0x18d2('0x1b')]],'as':_0x5c75ed['as'],'attributes':_0x5c75ed[_0x18d2('0x1a')],'include':_0x5c75ed[_0x18d2('0x1c')]?_[_0x18d2('0x1d')](_0x5c75ed[_0x18d2('0x1c')],function(_0x49ff84){return{'model':db[_0x49ff84['model']],'as':_0x49ff84['as'],'attributes':_0x49ff84[_0x18d2('0x1a')],'include':_0x49ff84[_0x18d2('0x1c')]?_[_0x18d2('0x1d')](_0x49ff84[_0x18d2('0x1c')],function(_0x47be59){return{'model':db[_0x47be59['model']],'as':_0x47be59['as'],'attributes':_0x47be59[_0x18d2('0x1a')]};}):[]};}):[]};}):[]:[]})[_0x18d2('0xb')](function(_0x2b3c3c){logger[_0x18d2('0xc')]('ShowSquareOdbc',_0x3fd08d);logger[_0x18d2('0x1e')](_0x18d2('0x14'),_0x3fd08d,JSON['stringify'](_0x2b3c3c));_0x5e08cb(_0x2b3c3c);})[_0x18d2('0x1f')](function(_0x973740){logger['error'](_0x18d2('0x14'),_0x973740['message'],_0x3fd08d);_0x594c01(_0x4f06fa[_0x18d2('0x11')](0x1f4,_0x973740[_0x18d2('0x12')]));});});};
\ No newline at end of file
+var _0x0e7a=['find','options','raw','include','map','attributes','model','ShowSquareOdbc','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','request','then','info','SquareOdbc,\x20%s,\x20%s','debug','SquareOdbc,\x20%s,\x20%s,\x20%s','stringify','error','code','message','SquareOdbc'];(function(_0x243b59,_0x3f9495){var _0x3e1676=function(_0x354052){while(--_0x354052){_0x243b59['push'](_0x243b59['shift']());}};_0x3e1676(++_0x3f9495);}(_0x0e7a,0x132));var _0xa0e7=function(_0x69d91e,_0x12fec6){_0x69d91e=_0x69d91e-0x0;var _0x381436=_0x0e7a[_0x69d91e];return _0x381436;};'use strict';var _=require(_0xa0e7('0x0'));var util=require(_0xa0e7('0x1'));var moment=require(_0xa0e7('0x2'));var BPromise=require(_0xa0e7('0x3'));var rs=require(_0xa0e7('0x4'));var fs=require('fs');var Redis=require(_0xa0e7('0x5'));var db=require(_0xa0e7('0x6'))['db'];var utils=require(_0xa0e7('0x7'));var logger=require(_0xa0e7('0x8'))(_0xa0e7('0x9'));var config=require(_0xa0e7('0xa'));var jayson=require(_0xa0e7('0xb'));var client=jayson[_0xa0e7('0xc')]['http']({'port':0x232a});function respondWithRpcPromise(_0x2a0fe3,_0x1f8b67,_0x13666d){return new BPromise(function(_0x986d80,_0x254a9d){return client[_0xa0e7('0xd')](_0x2a0fe3,_0x13666d)[_0xa0e7('0xe')](function(_0x5dad59){logger[_0xa0e7('0xf')](_0xa0e7('0x10'),_0x1f8b67,'request\x20sent');logger[_0xa0e7('0x11')](_0xa0e7('0x12'),_0x1f8b67,'request\x20sent',JSON[_0xa0e7('0x13')](_0x5dad59));if(_0x5dad59[_0xa0e7('0x14')]){if(_0x5dad59['error'][_0xa0e7('0x15')]===0x1f4){logger[_0xa0e7('0x14')]('SquareOdbc,\x20%s,\x20%s',_0x1f8b67,_0x5dad59[_0xa0e7('0x14')][_0xa0e7('0x16')]);return _0x254a9d(_0x5dad59[_0xa0e7('0x14')][_0xa0e7('0x16')]);}logger[_0xa0e7('0x14')](_0xa0e7('0x10'),_0x1f8b67,_0x5dad59[_0xa0e7('0x14')][_0xa0e7('0x16')]);return _0x986d80(_0x5dad59[_0xa0e7('0x14')][_0xa0e7('0x16')]);}else{logger[_0xa0e7('0xf')]('SquareOdbc,\x20%s,\x20%s',_0x1f8b67,'request\x20sent');_0x986d80(_0x5dad59['result'][_0xa0e7('0x16')]);}})['catch'](function(_0x2bac30){logger[_0xa0e7('0x14')](_0xa0e7('0x10'),_0x1f8b67,_0x2bac30);_0x254a9d(_0x2bac30);});});}exports['ShowSquareOdbc']=function(_0xd7bcac){var _0x30e82b=this;return new Promise(function(_0x1b72e6,_0x3e02e2){return db[_0xa0e7('0x17')][_0xa0e7('0x18')]({'raw':_0xd7bcac[_0xa0e7('0x19')]?_0xd7bcac[_0xa0e7('0x19')][_0xa0e7('0x1a')]===undefined?!![]:![]:!![],'where':_0xd7bcac['options']?_0xd7bcac[_0xa0e7('0x19')]['where']||null:null,'attributes':_0xd7bcac[_0xa0e7('0x19')]?_0xd7bcac[_0xa0e7('0x19')]['attributes']||null:null,'include':_0xd7bcac['options']?_0xd7bcac['options'][_0xa0e7('0x1b')]?_[_0xa0e7('0x1c')](_0xd7bcac[_0xa0e7('0x19')]['include'],function(_0x42ec33){return{'model':db[_0x42ec33['model']],'as':_0x42ec33['as'],'attributes':_0x42ec33[_0xa0e7('0x1d')],'include':_0x42ec33['include']?_[_0xa0e7('0x1c')](_0x42ec33[_0xa0e7('0x1b')],function(_0x4b7db4){return{'model':db[_0x4b7db4[_0xa0e7('0x1e')]],'as':_0x4b7db4['as'],'attributes':_0x4b7db4[_0xa0e7('0x1d')],'include':_0x4b7db4['include']?_[_0xa0e7('0x1c')](_0x4b7db4[_0xa0e7('0x1b')],function(_0x26ecc6){return{'model':db[_0x26ecc6['model']],'as':_0x26ecc6['as'],'attributes':_0x26ecc6[_0xa0e7('0x1d')]};}):[]};}):[]};}):[]:[]})[_0xa0e7('0xe')](function(_0x3b9e98){logger[_0xa0e7('0xf')](_0xa0e7('0x1f'),_0xd7bcac);logger[_0xa0e7('0x11')](_0xa0e7('0x1f'),_0xd7bcac,JSON[_0xa0e7('0x13')](_0x3b9e98));_0x1b72e6(_0x3b9e98);})[_0xa0e7('0x20')](function(_0x12081f){logger['error'](_0xa0e7('0x1f'),_0x12081f['message'],_0xd7bcac);_0x3e02e2(_0x30e82b[_0xa0e7('0x14')](0x1f4,_0x12081f[_0xa0e7('0x16')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb01c=['addUsers','put','delete','destroy','removeUsers','exports','multer','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./squareProject.controller','get','isAuthenticated','index','/:id','/:id/users','getUsers','create','post'];(function(_0x432682,_0x253044){var _0x463d05=function(_0xa73403){while(--_0xa73403){_0x432682['push'](_0x432682['shift']());}};_0x463d05(++_0x253044);}(_0xb01c,0xbe));var _0xcb01=function(_0x4e5c73,_0x4e5ae6){_0x4e5c73=_0x4e5c73-0x0;var _0x50d566=_0xb01c[_0x4e5c73];return _0x50d566;};'use strict';var multer=require(_0xcb01('0x0'));var util=require('util');var path=require(_0xcb01('0x1'));var timeout=require(_0xcb01('0x2'));var express=require(_0xcb01('0x3'));var router=express[_0xcb01('0x4')]();var fs_extra=require(_0xcb01('0x5'));var auth=require(_0xcb01('0x6'));var interaction=require(_0xcb01('0x7'));var config=require('../../config/environment');var controller=require(_0xcb01('0x8'));router[_0xcb01('0x9')]('/',auth[_0xcb01('0xa')](),controller[_0xcb01('0xb')]);router[_0xcb01('0x9')](_0xcb01('0xc'),auth[_0xcb01('0xa')](),controller['show']);router[_0xcb01('0x9')](_0xcb01('0xd'),auth[_0xcb01('0xa')](),controller[_0xcb01('0xe')]);router['post']('/',auth[_0xcb01('0xa')](),controller[_0xcb01('0xf')]);router[_0xcb01('0x10')]('/:id/users',auth[_0xcb01('0xa')](),controller[_0xcb01('0x11')]);router[_0xcb01('0x12')](_0xcb01('0xc'),auth[_0xcb01('0xa')](),controller['update']);router[_0xcb01('0x13')](_0xcb01('0xc'),auth[_0xcb01('0xa')](),controller[_0xcb01('0x14')]);router[_0xcb01('0x13')](_0xcb01('0xd'),auth[_0xcb01('0xa')](),controller[_0xcb01('0x15')]);module[_0xcb01('0x16')]=router;
\ No newline at end of file
+var _0x5ed9=['/:id','show','/:id/users','getUsers','post','addUsers','put','removeUsers','exports','multer','util','connect-timeout','express','Router','fs-extra','../../components/interaction/service','../../config/environment','./squareProject.controller','isAuthenticated','get'];(function(_0x1a9fcb,_0x4363f3){var _0x4eb37b=function(_0x344a2d){while(--_0x344a2d){_0x1a9fcb['push'](_0x1a9fcb['shift']());}};_0x4eb37b(++_0x4363f3);}(_0x5ed9,0x1e9));var _0x95ed=function(_0x3e5086,_0x48f4a2){_0x3e5086=_0x3e5086-0x0;var _0xfeb102=_0x5ed9[_0x3e5086];return _0xfeb102;};'use strict';var multer=require(_0x95ed('0x0'));var util=require(_0x95ed('0x1'));var path=require('path');var timeout=require(_0x95ed('0x2'));var express=require(_0x95ed('0x3'));var router=express[_0x95ed('0x4')]();var fs_extra=require(_0x95ed('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0x95ed('0x6'));var config=require(_0x95ed('0x7'));var controller=require(_0x95ed('0x8'));router['get']('/',auth[_0x95ed('0x9')](),controller['index']);router[_0x95ed('0xa')](_0x95ed('0xb'),auth[_0x95ed('0x9')](),controller[_0x95ed('0xc')]);router[_0x95ed('0xa')](_0x95ed('0xd'),auth['isAuthenticated'](),controller[_0x95ed('0xe')]);router[_0x95ed('0xf')]('/',auth[_0x95ed('0x9')](),controller['create']);router[_0x95ed('0xf')]('/:id/users',auth[_0x95ed('0x9')](),controller[_0x95ed('0x10')]);router[_0x95ed('0x11')](_0x95ed('0xb'),auth[_0x95ed('0x9')](),controller['update']);router['delete'](_0x95ed('0xb'),auth[_0x95ed('0x9')](),controller['destroy']);router['delete'](_0x95ed('0xd'),auth[_0x95ed('0x9')](),controller[_0x95ed('0x12')]);module[_0x95ed('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4627=['toString','production','utf8','DATE','sequelize','exports','STRING','name','TEXT','BLOB','long','getDataValue','preproduction'];(function(_0x261038,_0x2fab28){var _0x2fd230=function(_0x429660){while(--_0x429660){_0x261038['push'](_0x261038['shift']());}};_0x2fd230(++_0x2fab28);}(_0x4627,0xa0));var _0x7462=function(_0x45d55e,_0x2fede3){_0x45d55e=_0x45d55e-0x0;var _0x29812a=_0x4627[_0x45d55e];return _0x29812a;};'use strict';var Sequelize=require(_0x7462('0x0'));module[_0x7462('0x1')]={'name':{'type':Sequelize[_0x7462('0x2')],'unique':_0x7462('0x3'),'allowNull':![]},'description':{'type':Sequelize[_0x7462('0x2')]},'notes':{'type':Sequelize[_0x7462('0x4')]},'preproduction':{'type':Sequelize[_0x7462('0x5')](_0x7462('0x6')),'get':function(){if(this[_0x7462('0x7')](_0x7462('0x8'))){return this['getDataValue'](_0x7462('0x8'))[_0x7462('0x9')]('utf8');}}},'production':{'type':Sequelize['BLOB'](_0x7462('0x6')),'get':function(){if(this[_0x7462('0x7')](_0x7462('0xa'))){return this[_0x7462('0x7')](_0x7462('0xa'))[_0x7462('0x9')](_0x7462('0xb'));}}},'savedAt':{'type':Sequelize[_0x7462('0xc')]},'publishedAt':{'type':Sequelize[_0x7462('0xc')]}};
\ No newline at end of file
+var _0x4e39=['preproduction','toString','utf8','production','DATE','sequelize','name','STRING','TEXT','BLOB','long','getDataValue'];(function(_0x24a721,_0x4312a2){var _0x3a78bf=function(_0x2830f3){while(--_0x2830f3){_0x24a721['push'](_0x24a721['shift']());}};_0x3a78bf(++_0x4312a2);}(_0x4e39,0x95));var _0x94e3=function(_0x1558ab,_0x39d1de){_0x1558ab=_0x1558ab-0x0;var _0x53b64a=_0x4e39[_0x1558ab];return _0x53b64a;};'use strict';var Sequelize=require(_0x94e3('0x0'));module['exports']={'name':{'type':Sequelize['STRING'],'unique':_0x94e3('0x1'),'allowNull':![]},'description':{'type':Sequelize[_0x94e3('0x2')]},'notes':{'type':Sequelize[_0x94e3('0x3')]},'preproduction':{'type':Sequelize[_0x94e3('0x4')](_0x94e3('0x5')),'get':function(){if(this[_0x94e3('0x6')](_0x94e3('0x7'))){return this[_0x94e3('0x6')](_0x94e3('0x7'))[_0x94e3('0x8')](_0x94e3('0x9'));}}},'production':{'type':Sequelize[_0x94e3('0x4')]('long'),'get':function(){if(this[_0x94e3('0x6')](_0x94e3('0xa'))){return this[_0x94e3('0x6')](_0x94e3('0xa'))[_0x94e3('0x8')](_0x94e3('0x9'));}}},'savedAt':{'type':Sequelize['DATE']},'publishedAt':{'type':Sequelize[_0x94e3('0xb')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0697=['role','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','addUsers','ids','omit','userSquareProject:remove','emit','getUsers','findOne','order','pick','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','fs-extra','lodash','squel','crypto','jsforce','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','defaults','localhost','register','sendStatus','status','end','json','undefined','limit','count','offset','set','Content-Range','apply','update','then','destroy','get','SquareProjects','UserProfileResource','error','stack','name','send','index','map','SquareProject','rawAttributes','fieldName','key','model','query','keys','filters','intersection','fields','attributes','hasOwnProperty','nolimit','sort','where','merge','type','VIRTUAL','filter','options','findAll','rows','catch','show','params','length','include','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user'];(function(_0x3cf45b,_0x25d151){var _0x54ea43=function(_0x22a8c0){while(--_0x22a8c0){_0x3cf45b['push'](_0x3cf45b['shift']());}};_0x54ea43(++_0x25d151);}(_0x0697,0x199));var _0x7069=function(_0x24061a,_0x1c9f4d){_0x24061a=_0x24061a-0x0;var _0x82054e=_0x0697[_0x24061a];return _0x82054e;};'use strict';var emlformat=require(_0x7069('0x0'));var rimraf=require(_0x7069('0x1'));var zipdir=require(_0x7069('0x2'));var jsonpatch=require(_0x7069('0x3'));var rp=require(_0x7069('0x4'));var moment=require(_0x7069('0x5'));var BPromise=require(_0x7069('0x6'));var Mustache=require(_0x7069('0x7'));var util=require(_0x7069('0x8'));var path=require(_0x7069('0x9'));var sox=require('sox');var csv=require(_0x7069('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x7069('0xb'));var _=require(_0x7069('0xc'));var squel=require(_0x7069('0xd'));var crypto=require(_0x7069('0xe'));var jsforce=require(_0x7069('0xf'));var deskjs=require('desk.js');var toCsv=require(_0x7069('0xa'));var querystring=require(_0x7069('0x10'));var Papa=require(_0x7069('0x11'));var Redis=require(_0x7069('0x12'));var authService=require(_0x7069('0x13'));var qs=require(_0x7069('0x14'));var as=require(_0x7069('0x15'));var hardwareService=require(_0x7069('0x16'));var logger=require(_0x7069('0x17'))('api');var utils=require(_0x7069('0x18'));var config=require(_0x7069('0x19'));var licenseUtil=require(_0x7069('0x1a'));var db=require(_0x7069('0x1b'))['db'];config['redis']=_[_0x7069('0x1c')](config['redis'],{'host':_0x7069('0x1d'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require('./squareProject.socket')[_0x7069('0x1e')](socket);function respondWithStatusCode(_0x2ba9b3,_0x1025f8){_0x1025f8=_0x1025f8||0xcc;return function(_0x398ad1){if(_0x398ad1){return _0x2ba9b3[_0x7069('0x1f')](_0x1025f8);}return _0x2ba9b3[_0x7069('0x20')](_0x1025f8)[_0x7069('0x21')]();};}function respondWithResult(_0x372fde,_0x22eea8){_0x22eea8=_0x22eea8||0xc8;return function(_0x4a1aa4){if(_0x4a1aa4){return _0x372fde[_0x7069('0x20')](_0x22eea8)[_0x7069('0x22')](_0x4a1aa4);}};}function respondWithFilteredResult(_0x38fc57,_0x3cf8f5){return function(_0x382b1c){if(_0x382b1c){var _0x1f612d=typeof _0x3cf8f5['offset']===_0x7069('0x23')&&typeof _0x3cf8f5[_0x7069('0x24')]===_0x7069('0x23');var _0xfc11fe=_0x382b1c[_0x7069('0x25')];var _0x5f1c57=_0x1f612d?0x0:_0x3cf8f5[_0x7069('0x26')];var _0x17ecf4=_0x1f612d?_0x382b1c[_0x7069('0x25')]:_0x3cf8f5[_0x7069('0x26')]+_0x3cf8f5['limit'];var _0x3e6ccb;if(_0x17ecf4>=_0xfc11fe){_0x17ecf4=_0xfc11fe;_0x3e6ccb=0xc8;}else{_0x3e6ccb=0xce;}_0x38fc57[_0x7069('0x20')](_0x3e6ccb);return _0x38fc57[_0x7069('0x27')](_0x7069('0x28'),_0x5f1c57+'-'+_0x17ecf4+'/'+_0xfc11fe)[_0x7069('0x22')](_0x382b1c);}return null;};}function patchUpdates(_0x4c3eda){return function(_0x5967c6){try{jsonpatch[_0x7069('0x29')](_0x5967c6,_0x4c3eda,!![]);}catch(_0x5269b5){return BPromise['reject'](_0x5269b5);}return _0x5967c6['save']();};}function saveUpdates(_0x2d29ec,_0xdbb888){return function(_0x3fe79a){if(_0x3fe79a){return _0x3fe79a[_0x7069('0x2a')](_0x2d29ec)[_0x7069('0x2b')](function(_0x51e971){return _0x51e971;});}return null;};}function removeEntity(_0x55929f,_0x2dd4b3){return function(_0x4a50ce){if(_0x4a50ce){return _0x4a50ce[_0x7069('0x2c')]()[_0x7069('0x2b')](function(){var _0x1ec8a5=_0x4a50ce[_0x7069('0x2d')]({'plain':!![]});var _0x55122e=_0x7069('0x2e');return db[_0x7069('0x2f')][_0x7069('0x2c')]({'where':{'type':_0x55122e,'resourceId':_0x1ec8a5['id']}})[_0x7069('0x2b')](function(){return _0x4a50ce;});})[_0x7069('0x2b')](function(){_0x55929f[_0x7069('0x20')](0xcc)[_0x7069('0x21')]();});}};}function handleEntityNotFound(_0x174a61,_0x4bda9c){return function(_0x16f807){if(!_0x16f807){_0x174a61[_0x7069('0x1f')](0x194);}return _0x16f807;};}function handleError(_0x221b28,_0x4d3c0f){_0x4d3c0f=_0x4d3c0f||0x1f4;return function(_0x49170d){logger[_0x7069('0x30')](_0x49170d[_0x7069('0x31')]);if(_0x49170d[_0x7069('0x32')]){delete _0x49170d[_0x7069('0x32')];}_0x221b28[_0x7069('0x20')](_0x4d3c0f)[_0x7069('0x33')](_0x49170d);};}exports[_0x7069('0x34')]=function(_0x2fabb9,_0x20a09a){var _0x21140b={},_0x395076={},_0x3331ea={'count':0x0,'rows':[]};var _0x120381=_[_0x7069('0x35')](db[_0x7069('0x36')][_0x7069('0x37')],function(_0x26e776){return{'name':_0x26e776[_0x7069('0x38')],'type':_0x26e776['type'][_0x7069('0x39')]};});_0x395076[_0x7069('0x3a')]=_[_0x7069('0x35')](_0x120381,_0x7069('0x32'));_0x395076[_0x7069('0x3b')]=_[_0x7069('0x3c')](_0x2fabb9[_0x7069('0x3b')]);_0x395076[_0x7069('0x3d')]=_[_0x7069('0x3e')](_0x395076[_0x7069('0x3a')],_0x395076[_0x7069('0x3b')]);_0x21140b['attributes']=_[_0x7069('0x3e')](_0x395076['model'],qs[_0x7069('0x3f')](_0x2fabb9[_0x7069('0x3b')][_0x7069('0x3f')]));_0x21140b[_0x7069('0x40')]=_0x21140b['attributes']['length']?_0x21140b[_0x7069('0x40')]:_0x395076[_0x7069('0x3a')];if(!_0x2fabb9['query'][_0x7069('0x41')](_0x7069('0x42'))){_0x21140b[_0x7069('0x24')]=qs[_0x7069('0x24')](_0x2fabb9['query']['limit']);_0x21140b[_0x7069('0x26')]=qs[_0x7069('0x26')](_0x2fabb9['query']['offset']);}_0x21140b['order']=qs[_0x7069('0x43')](_0x2fabb9['query'][_0x7069('0x43')]);_0x21140b[_0x7069('0x44')]=qs[_0x7069('0x3d')](_['pick'](_0x2fabb9[_0x7069('0x3b')],_0x395076['filters']),_0x120381);if(_0x2fabb9[_0x7069('0x3b')]['filter']){_0x21140b['where']=_[_0x7069('0x45')](_0x21140b['where'],{'$or':_[_0x7069('0x35')](_0x120381,function(_0x45a8fb){if(_0x45a8fb[_0x7069('0x46')]!==_0x7069('0x47')){var _0x1bb231={};_0x1bb231[_0x45a8fb[_0x7069('0x32')]]={'$like':'%'+_0x2fabb9[_0x7069('0x3b')][_0x7069('0x48')]+'%'};return _0x1bb231;}})});}_0x21140b=_[_0x7069('0x45')]({},_0x21140b,_0x2fabb9[_0x7069('0x49')]);var _0x3618a3={'where':_0x21140b[_0x7069('0x44')]};return db[_0x7069('0x36')][_0x7069('0x25')](_0x3618a3)[_0x7069('0x2b')](function(_0x56ab0d){_0x3331ea[_0x7069('0x25')]=_0x56ab0d;if(_0x2fabb9[_0x7069('0x3b')]['includeAll']){_0x21140b['include']=[{'all':!![]}];}return db[_0x7069('0x36')][_0x7069('0x4a')](_0x21140b);})['then'](function(_0x7a436d){_0x3331ea[_0x7069('0x4b')]=_0x7a436d;return _0x3331ea;})[_0x7069('0x2b')](respondWithFilteredResult(_0x20a09a,_0x21140b))[_0x7069('0x4c')](handleError(_0x20a09a,null));};exports[_0x7069('0x4d')]=function(_0x5e9f91,_0x533168){var _0x35d4c6={'raw':![],'where':{'id':_0x5e9f91[_0x7069('0x4e')]['id']}},_0x3ca687={};_0x3ca687['model']=_[_0x7069('0x3c')](db[_0x7069('0x36')][_0x7069('0x37')]);_0x3ca687[_0x7069('0x3b')]=_[_0x7069('0x3c')](_0x5e9f91[_0x7069('0x3b')]);_0x3ca687[_0x7069('0x3d')]=_[_0x7069('0x3e')](_0x3ca687[_0x7069('0x3a')],_0x3ca687[_0x7069('0x3b')]);_0x35d4c6['attributes']=_['intersection'](_0x3ca687[_0x7069('0x3a')],qs[_0x7069('0x3f')](_0x5e9f91[_0x7069('0x3b')]['fields']));_0x35d4c6[_0x7069('0x40')]=_0x35d4c6[_0x7069('0x40')][_0x7069('0x4f')]?_0x35d4c6[_0x7069('0x40')]:_0x3ca687[_0x7069('0x3a')];if(_0x5e9f91['query']['includeAll']){_0x35d4c6[_0x7069('0x50')]=[{'all':!![]}];}_0x35d4c6=_[_0x7069('0x45')]({},_0x35d4c6,_0x5e9f91[_0x7069('0x49')]);return db['SquareProject'][_0x7069('0x51')](_0x35d4c6)[_0x7069('0x2b')](handleEntityNotFound(_0x533168,null))[_0x7069('0x2b')](respondWithResult(_0x533168,null))[_0x7069('0x4c')](handleError(_0x533168,null));};exports[_0x7069('0x52')]=function(_0x1273a1,_0x3de324){return db[_0x7069('0x36')][_0x7069('0x52')](_0x1273a1[_0x7069('0x53')],{})[_0x7069('0x2b')](function(_0x44f0dd){var _0x368c78=_0x1273a1[_0x7069('0x54')][_0x7069('0x2d')]({'plain':!![]});if(!_0x368c78)throw new Error(_0x7069('0x55'));if(_0x368c78[_0x7069('0x56')]===_0x7069('0x54')){var _0x5951b0=_0x44f0dd['get']({'plain':!![]});var _0x253b90=_0x7069('0x2e');return db[_0x7069('0x57')][_0x7069('0x51')]({'where':{'name':_0x253b90,'userProfileId':_0x368c78['userProfileId']},'raw':!![]})['then'](function(_0x14df4d){if(_0x14df4d&&_0x14df4d[_0x7069('0x58')]===0x0){return db[_0x7069('0x2f')]['create']({'name':_0x5951b0['name'],'resourceId':_0x5951b0['id'],'type':_0x14df4d[_0x7069('0x32')],'sectionId':_0x14df4d['id']},{})[_0x7069('0x2b')](function(){return _0x44f0dd;});}else{return _0x44f0dd;}})[_0x7069('0x4c')](function(_0x5376e1){logger[_0x7069('0x30')](_0x7069('0x59'),_0x5376e1);throw _0x5376e1;});}return _0x44f0dd;})[_0x7069('0x2b')](respondWithResult(_0x3de324,0xc9))[_0x7069('0x4c')](handleError(_0x3de324,null));};exports['update']=function(_0x5a6bed,_0x49833a){if(_0x5a6bed[_0x7069('0x53')]['id']){delete _0x5a6bed[_0x7069('0x53')]['id'];}return db[_0x7069('0x36')][_0x7069('0x51')]({'where':{'id':_0x5a6bed[_0x7069('0x4e')]['id']}})['then'](handleEntityNotFound(_0x49833a,null))[_0x7069('0x2b')](saveUpdates(_0x5a6bed[_0x7069('0x53')],null))[_0x7069('0x2b')](respondWithResult(_0x49833a,null))[_0x7069('0x4c')](handleError(_0x49833a,null));};exports[_0x7069('0x2c')]=function(_0x4dd916,_0x2541d8){return db[_0x7069('0x36')][_0x7069('0x51')]({'where':{'id':_0x4dd916[_0x7069('0x4e')]['id']}})[_0x7069('0x2b')](handleEntityNotFound(_0x2541d8,null))[_0x7069('0x2b')](removeEntity(_0x2541d8,null))[_0x7069('0x4c')](handleError(_0x2541d8,null));};exports[_0x7069('0x5a')]=function(_0x2f818d,_0x7e56ce,_0x386506){return db[_0x7069('0x36')][_0x7069('0x51')]({'where':{'id':_0x2f818d[_0x7069('0x4e')]['id']}})[_0x7069('0x2b')](handleEntityNotFound(_0x7e56ce,null))[_0x7069('0x2b')](function(_0x4ea8f1){if(_0x4ea8f1){return _0x4ea8f1[_0x7069('0x5a')](_0x2f818d[_0x7069('0x53')][_0x7069('0x5b')],_[_0x7069('0x5c')](_0x2f818d['body'],[_0x7069('0x5b'),'id'])||{});}})[_0x7069('0x2b')](respondWithResult(_0x7e56ce,null))[_0x7069('0x4c')](handleError(_0x7e56ce,null));};exports['removeUsers']=function(_0x33d902,_0x43c868,_0x43f55d){return db[_0x7069('0x36')][_0x7069('0x51')]({'where':{'id':_0x33d902['params']['id']}})[_0x7069('0x2b')](handleEntityNotFound(_0x43c868,null))[_0x7069('0x2b')](function(_0x5aab16){if(_0x5aab16){return _0x5aab16['removeUsers'](_0x33d902[_0x7069('0x3b')][_0x7069('0x5b')])[_0x7069('0x2b')](function(){if(_['isArray'](_0x33d902[_0x7069('0x3b')][_0x7069('0x5b')])){for(var _0x184aa4=0x0;_0x184aa4<_0x33d902[_0x7069('0x3b')][_0x7069('0x5b')]['length'];_0x184aa4+=0x1){socket['emit'](_0x7069('0x5d'),{'UserId':Number(_0x33d902['query'][_0x7069('0x5b')][_0x184aa4]),'SquareProjectId':Number(_0x33d902[_0x7069('0x4e')]['id'])});}}else{socket[_0x7069('0x5e')](_0x7069('0x5d'),{'UserId':Number(_0x33d902[_0x7069('0x3b')][_0x7069('0x5b')]),'SquareProjectId':Number(_0x33d902[_0x7069('0x4e')]['id'])});}});}})['then'](respondWithStatusCode(_0x43c868,null))[_0x7069('0x4c')](handleError(_0x43c868,null));};exports[_0x7069('0x5f')]=function(_0x9a976b,_0x5e167e,_0x4c9b95){var _0x3d37ef={};var _0x463489={};var _0x35f4ea;var _0x1eaab6;return db[_0x7069('0x36')][_0x7069('0x60')]({'where':{'id':_0x9a976b['params']['id']}})[_0x7069('0x2b')](handleEntityNotFound(_0x5e167e,null))['then'](function(_0x86e634){if(_0x86e634){_0x35f4ea=_0x86e634;_0x463489['model']=_[_0x7069('0x3c')](db['User'][_0x7069('0x37')]);_0x463489[_0x7069('0x3b')]=_[_0x7069('0x3c')](_0x9a976b['query']);_0x463489[_0x7069('0x3d')]=_[_0x7069('0x3e')](_0x463489[_0x7069('0x3a')],_0x463489[_0x7069('0x3b')]);_0x3d37ef[_0x7069('0x40')]=_['intersection'](_0x463489[_0x7069('0x3a')],qs[_0x7069('0x3f')](_0x9a976b['query']['fields']));_0x3d37ef[_0x7069('0x40')]=_0x3d37ef['attributes'][_0x7069('0x4f')]?_0x3d37ef[_0x7069('0x40')]:_0x463489['model'];_0x3d37ef[_0x7069('0x61')]=qs[_0x7069('0x43')](_0x9a976b[_0x7069('0x3b')][_0x7069('0x43')]);_0x3d37ef[_0x7069('0x44')]=qs[_0x7069('0x3d')](_[_0x7069('0x62')](_0x9a976b[_0x7069('0x3b')],_0x463489[_0x7069('0x3d')]));if(_0x9a976b[_0x7069('0x3b')][_0x7069('0x48')]){_0x3d37ef[_0x7069('0x44')]=_['merge'](_0x3d37ef['where'],{'$or':_['map'](_0x3d37ef[_0x7069('0x40')],function(_0x29b5b6){var _0x4cba3d={};_0x4cba3d[_0x29b5b6]={'$like':'%'+_0x9a976b['query'][_0x7069('0x48')]+'%'};return _0x4cba3d;})});}_0x3d37ef=_['merge']({},_0x3d37ef,_0x9a976b['options']);return _0x35f4ea[_0x7069('0x5f')](_0x3d37ef);}})['then'](function(_0x1c2415){if(_0x1c2415){_0x1eaab6=_0x1c2415[_0x7069('0x4f')];if(!_0x9a976b[_0x7069('0x3b')][_0x7069('0x41')](_0x7069('0x42'))){_0x3d37ef['limit']=qs[_0x7069('0x24')](_0x9a976b[_0x7069('0x3b')][_0x7069('0x24')]);_0x3d37ef[_0x7069('0x26')]=qs[_0x7069('0x26')](_0x9a976b['query'][_0x7069('0x26')]);}return _0x35f4ea['getUsers'](_0x3d37ef);}})['then'](function(_0x193b22){if(_0x193b22){return _0x193b22?{'count':_0x1eaab6,'rows':_0x193b22}:null;}})[_0x7069('0x2b')](respondWithResult(_0x5e167e,null))[_0x7069('0x4c')](handleError(_0x5e167e,null));};
\ No newline at end of file
+var _0xe7ba=['apply','reject','save','update','then','destroy','get','UserProfileResource','sendStatus','error','stack','name','send','index','map','SquareProject','rawAttributes','fieldName','type','key','query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','sort','where','filter','merge','VIRTUAL','options','include','catch','params','includeAll','find','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','SquareProjects','addUsers','ids','removeUsers','isArray','emit','userSquareProject:remove','findOne','User','order','pick','getUsers','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','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','redis','defaults','localhost','socket.io-emitter','register','end','status','json','offset','undefined','limit','count','set','Content-Range'];(function(_0x363cf6,_0x15910c){var _0x49fccf=function(_0x29a5fa){while(--_0x29a5fa){_0x363cf6['push'](_0x363cf6['shift']());}};_0x49fccf(++_0x15910c);}(_0xe7ba,0x1ce));var _0xae7b=function(_0x488816,_0x3f89e1){_0x488816=_0x488816-0x0;var _0x3d18a4=_0xe7ba[_0x488816];return _0x3d18a4;};'use strict';var emlformat=require(_0xae7b('0x0'));var rimraf=require(_0xae7b('0x1'));var zipdir=require(_0xae7b('0x2'));var jsonpatch=require(_0xae7b('0x3'));var rp=require(_0xae7b('0x4'));var moment=require(_0xae7b('0x5'));var BPromise=require(_0xae7b('0x6'));var Mustache=require(_0xae7b('0x7'));var util=require(_0xae7b('0x8'));var path=require(_0xae7b('0x9'));var sox=require(_0xae7b('0xa'));var csv=require(_0xae7b('0xb'));var ejs=require(_0xae7b('0xc'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0xae7b('0xd'));var crypto=require(_0xae7b('0xe'));var jsforce=require(_0xae7b('0xf'));var deskjs=require(_0xae7b('0x10'));var toCsv=require('to-csv');var querystring=require(_0xae7b('0x11'));var Papa=require(_0xae7b('0x12'));var Redis=require(_0xae7b('0x13'));var authService=require(_0xae7b('0x14'));var qs=require('../../components/parsers/qs');var as=require(_0xae7b('0x15'));var hardwareService=require(_0xae7b('0x16'));var logger=require(_0xae7b('0x17'))(_0xae7b('0x18'));var utils=require(_0xae7b('0x19'));var config=require(_0xae7b('0x1a'));var licenseUtil=require(_0xae7b('0x1b'));var db=require(_0xae7b('0x1c'))['db'];config[_0xae7b('0x1d')]=_[_0xae7b('0x1e')](config[_0xae7b('0x1d')],{'host':_0xae7b('0x1f'),'port':0x18eb});var socket=require(_0xae7b('0x20'))(new Redis(config[_0xae7b('0x1d')]));require('./squareProject.socket')[_0xae7b('0x21')](socket);function respondWithStatusCode(_0x32ee85,_0x44b655){_0x44b655=_0x44b655||0xcc;return function(_0x1b9275){if(_0x1b9275){return _0x32ee85['sendStatus'](_0x44b655);}return _0x32ee85['status'](_0x44b655)[_0xae7b('0x22')]();};}function respondWithResult(_0x4f06b2,_0xb3483b){_0xb3483b=_0xb3483b||0xc8;return function(_0x2b9be2){if(_0x2b9be2){return _0x4f06b2[_0xae7b('0x23')](_0xb3483b)[_0xae7b('0x24')](_0x2b9be2);}};}function respondWithFilteredResult(_0x49d7ba,_0x2e0ff5){return function(_0x890d24){if(_0x890d24){var _0x1d0d52=typeof _0x2e0ff5[_0xae7b('0x25')]===_0xae7b('0x26')&&typeof _0x2e0ff5[_0xae7b('0x27')]==='undefined';var _0xc3a259=_0x890d24[_0xae7b('0x28')];var _0x42ead3=_0x1d0d52?0x0:_0x2e0ff5[_0xae7b('0x25')];var _0x214f71=_0x1d0d52?_0x890d24['count']:_0x2e0ff5[_0xae7b('0x25')]+_0x2e0ff5[_0xae7b('0x27')];var _0x52c9dc;if(_0x214f71>=_0xc3a259){_0x214f71=_0xc3a259;_0x52c9dc=0xc8;}else{_0x52c9dc=0xce;}_0x49d7ba[_0xae7b('0x23')](_0x52c9dc);return _0x49d7ba[_0xae7b('0x29')](_0xae7b('0x2a'),_0x42ead3+'-'+_0x214f71+'/'+_0xc3a259)[_0xae7b('0x24')](_0x890d24);}return null;};}function patchUpdates(_0x41cee4){return function(_0x445ef4){try{jsonpatch[_0xae7b('0x2b')](_0x445ef4,_0x41cee4,!![]);}catch(_0x14f202){return BPromise[_0xae7b('0x2c')](_0x14f202);}return _0x445ef4[_0xae7b('0x2d')]();};}function saveUpdates(_0x14e135,_0x2df63e){return function(_0x2138dc){if(_0x2138dc){return _0x2138dc[_0xae7b('0x2e')](_0x14e135)[_0xae7b('0x2f')](function(_0x3faa14){return _0x3faa14;});}return null;};}function removeEntity(_0x5e45b4,_0x3903e3){return function(_0x4753cd){if(_0x4753cd){return _0x4753cd[_0xae7b('0x30')]()[_0xae7b('0x2f')](function(){var _0x594266=_0x4753cd[_0xae7b('0x31')]({'plain':!![]});var _0xab834e='SquareProjects';return db[_0xae7b('0x32')][_0xae7b('0x30')]({'where':{'type':_0xab834e,'resourceId':_0x594266['id']}})[_0xae7b('0x2f')](function(){return _0x4753cd;});})[_0xae7b('0x2f')](function(){_0x5e45b4[_0xae7b('0x23')](0xcc)[_0xae7b('0x22')]();});}};}function handleEntityNotFound(_0xb3097a,_0x580629){return function(_0x1c259a){if(!_0x1c259a){_0xb3097a[_0xae7b('0x33')](0x194);}return _0x1c259a;};}function handleError(_0x29b579,_0x2192ba){_0x2192ba=_0x2192ba||0x1f4;return function(_0x53ab71){logger[_0xae7b('0x34')](_0x53ab71[_0xae7b('0x35')]);if(_0x53ab71[_0xae7b('0x36')]){delete _0x53ab71['name'];}_0x29b579[_0xae7b('0x23')](_0x2192ba)[_0xae7b('0x37')](_0x53ab71);};}exports[_0xae7b('0x38')]=function(_0x23ca6e,_0x151149){var _0x414f06={},_0x3415ed={},_0x2c7acf={'count':0x0,'rows':[]};var _0x1448dc=_[_0xae7b('0x39')](db[_0xae7b('0x3a')][_0xae7b('0x3b')],function(_0x397fb1){return{'name':_0x397fb1[_0xae7b('0x3c')],'type':_0x397fb1[_0xae7b('0x3d')][_0xae7b('0x3e')]};});_0x3415ed['model']=_[_0xae7b('0x39')](_0x1448dc,'name');_0x3415ed[_0xae7b('0x3f')]=_[_0xae7b('0x40')](_0x23ca6e[_0xae7b('0x3f')]);_0x3415ed[_0xae7b('0x41')]=_[_0xae7b('0x42')](_0x3415ed[_0xae7b('0x43')],_0x3415ed['query']);_0x414f06[_0xae7b('0x44')]=_[_0xae7b('0x42')](_0x3415ed[_0xae7b('0x43')],qs['fields'](_0x23ca6e['query'][_0xae7b('0x45')]));_0x414f06[_0xae7b('0x44')]=_0x414f06['attributes'][_0xae7b('0x46')]?_0x414f06[_0xae7b('0x44')]:_0x3415ed[_0xae7b('0x43')];if(!_0x23ca6e[_0xae7b('0x3f')][_0xae7b('0x47')](_0xae7b('0x48'))){_0x414f06[_0xae7b('0x27')]=qs[_0xae7b('0x27')](_0x23ca6e[_0xae7b('0x3f')][_0xae7b('0x27')]);_0x414f06[_0xae7b('0x25')]=qs[_0xae7b('0x25')](_0x23ca6e[_0xae7b('0x3f')][_0xae7b('0x25')]);}_0x414f06['order']=qs[_0xae7b('0x49')](_0x23ca6e['query'][_0xae7b('0x49')]);_0x414f06[_0xae7b('0x4a')]=qs[_0xae7b('0x41')](_['pick'](_0x23ca6e['query'],_0x3415ed[_0xae7b('0x41')]),_0x1448dc);if(_0x23ca6e[_0xae7b('0x3f')][_0xae7b('0x4b')]){_0x414f06['where']=_[_0xae7b('0x4c')](_0x414f06[_0xae7b('0x4a')],{'$or':_[_0xae7b('0x39')](_0x1448dc,function(_0x1ee0e4){if(_0x1ee0e4[_0xae7b('0x3d')]!==_0xae7b('0x4d')){var _0x340b94={};_0x340b94[_0x1ee0e4['name']]={'$like':'%'+_0x23ca6e[_0xae7b('0x3f')][_0xae7b('0x4b')]+'%'};return _0x340b94;}})});}_0x414f06=_[_0xae7b('0x4c')]({},_0x414f06,_0x23ca6e[_0xae7b('0x4e')]);var _0x9af54f={'where':_0x414f06[_0xae7b('0x4a')]};return db[_0xae7b('0x3a')]['count'](_0x9af54f)[_0xae7b('0x2f')](function(_0x19a786){_0x2c7acf['count']=_0x19a786;if(_0x23ca6e[_0xae7b('0x3f')]['includeAll']){_0x414f06[_0xae7b('0x4f')]=[{'all':!![]}];}return db['SquareProject']['findAll'](_0x414f06);})[_0xae7b('0x2f')](function(_0x10dea4){_0x2c7acf['rows']=_0x10dea4;return _0x2c7acf;})['then'](respondWithFilteredResult(_0x151149,_0x414f06))[_0xae7b('0x50')](handleError(_0x151149,null));};exports['show']=function(_0x35df9a,_0x500728){var _0xba6ccc={'raw':![],'where':{'id':_0x35df9a[_0xae7b('0x51')]['id']}},_0x539dc6={};_0x539dc6['model']=_['keys'](db[_0xae7b('0x3a')][_0xae7b('0x3b')]);_0x539dc6[_0xae7b('0x3f')]=_[_0xae7b('0x40')](_0x35df9a['query']);_0x539dc6[_0xae7b('0x41')]=_[_0xae7b('0x42')](_0x539dc6['model'],_0x539dc6['query']);_0xba6ccc[_0xae7b('0x44')]=_[_0xae7b('0x42')](_0x539dc6[_0xae7b('0x43')],qs[_0xae7b('0x45')](_0x35df9a['query'][_0xae7b('0x45')]));_0xba6ccc[_0xae7b('0x44')]=_0xba6ccc['attributes'][_0xae7b('0x46')]?_0xba6ccc[_0xae7b('0x44')]:_0x539dc6['model'];if(_0x35df9a[_0xae7b('0x3f')][_0xae7b('0x52')]){_0xba6ccc[_0xae7b('0x4f')]=[{'all':!![]}];}_0xba6ccc=_[_0xae7b('0x4c')]({},_0xba6ccc,_0x35df9a['options']);return db[_0xae7b('0x3a')][_0xae7b('0x53')](_0xba6ccc)['then'](handleEntityNotFound(_0x500728,null))[_0xae7b('0x2f')](respondWithResult(_0x500728,null))[_0xae7b('0x50')](handleError(_0x500728,null));};exports[_0xae7b('0x54')]=function(_0x2df61e,_0x192f42){return db['SquareProject'][_0xae7b('0x54')](_0x2df61e[_0xae7b('0x55')],{})[_0xae7b('0x2f')](function(_0x278b8a){var _0x40c788=_0x2df61e['user']['get']({'plain':!![]});if(!_0x40c788)throw new Error(_0xae7b('0x56'));if(_0x40c788[_0xae7b('0x57')]===_0xae7b('0x58')){var _0x4c5813=_0x278b8a[_0xae7b('0x31')]({'plain':!![]});var _0x138b41=_0xae7b('0x59');return db['UserProfileSection'][_0xae7b('0x53')]({'where':{'name':_0x138b41,'userProfileId':_0x40c788['userProfileId']},'raw':!![]})[_0xae7b('0x2f')](function(_0x544fb4){if(_0x544fb4&&_0x544fb4['autoAssociation']===0x0){return db[_0xae7b('0x32')][_0xae7b('0x54')]({'name':_0x4c5813['name'],'resourceId':_0x4c5813['id'],'type':_0x544fb4[_0xae7b('0x36')],'sectionId':_0x544fb4['id']},{})[_0xae7b('0x2f')](function(){return _0x278b8a;});}else{return _0x278b8a;}})['catch'](function(_0x50174f){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x50174f);throw _0x50174f;});}return _0x278b8a;})[_0xae7b('0x2f')](respondWithResult(_0x192f42,0xc9))[_0xae7b('0x50')](handleError(_0x192f42,null));};exports[_0xae7b('0x2e')]=function(_0x1dbc8a,_0x1f7614){if(_0x1dbc8a[_0xae7b('0x55')]['id']){delete _0x1dbc8a[_0xae7b('0x55')]['id'];}return db[_0xae7b('0x3a')][_0xae7b('0x53')]({'where':{'id':_0x1dbc8a['params']['id']}})['then'](handleEntityNotFound(_0x1f7614,null))[_0xae7b('0x2f')](saveUpdates(_0x1dbc8a['body'],null))[_0xae7b('0x2f')](respondWithResult(_0x1f7614,null))[_0xae7b('0x50')](handleError(_0x1f7614,null));};exports['destroy']=function(_0x50d6d8,_0x41a1e8){return db[_0xae7b('0x3a')][_0xae7b('0x53')]({'where':{'id':_0x50d6d8[_0xae7b('0x51')]['id']}})[_0xae7b('0x2f')](handleEntityNotFound(_0x41a1e8,null))[_0xae7b('0x2f')](removeEntity(_0x41a1e8,null))[_0xae7b('0x50')](handleError(_0x41a1e8,null));};exports[_0xae7b('0x5a')]=function(_0xc0300d,_0x34c512,_0x9dba70){return db['SquareProject'][_0xae7b('0x53')]({'where':{'id':_0xc0300d[_0xae7b('0x51')]['id']}})[_0xae7b('0x2f')](handleEntityNotFound(_0x34c512,null))[_0xae7b('0x2f')](function(_0x24848f){if(_0x24848f){return _0x24848f[_0xae7b('0x5a')](_0xc0300d[_0xae7b('0x55')][_0xae7b('0x5b')],_['omit'](_0xc0300d[_0xae7b('0x55')],[_0xae7b('0x5b'),'id'])||{});}})[_0xae7b('0x2f')](respondWithResult(_0x34c512,null))[_0xae7b('0x50')](handleError(_0x34c512,null));};exports['removeUsers']=function(_0x1687fe,_0x2c92e1,_0x17f7b4){return db['SquareProject'][_0xae7b('0x53')]({'where':{'id':_0x1687fe['params']['id']}})[_0xae7b('0x2f')](handleEntityNotFound(_0x2c92e1,null))[_0xae7b('0x2f')](function(_0x4d73ea){if(_0x4d73ea){return _0x4d73ea[_0xae7b('0x5c')](_0x1687fe[_0xae7b('0x3f')]['ids'])[_0xae7b('0x2f')](function(){if(_[_0xae7b('0x5d')](_0x1687fe[_0xae7b('0x3f')][_0xae7b('0x5b')])){for(var _0x5070b7=0x0;_0x5070b7<_0x1687fe['query'][_0xae7b('0x5b')][_0xae7b('0x46')];_0x5070b7+=0x1){socket['emit']('userSquareProject:remove',{'UserId':Number(_0x1687fe[_0xae7b('0x3f')][_0xae7b('0x5b')][_0x5070b7]),'SquareProjectId':Number(_0x1687fe[_0xae7b('0x51')]['id'])});}}else{socket[_0xae7b('0x5e')](_0xae7b('0x5f'),{'UserId':Number(_0x1687fe['query']['ids']),'SquareProjectId':Number(_0x1687fe[_0xae7b('0x51')]['id'])});}});}})[_0xae7b('0x2f')](respondWithStatusCode(_0x2c92e1,null))['catch'](handleError(_0x2c92e1,null));};exports['getUsers']=function(_0x4cc97f,_0x267fa3,_0x512ec5){var _0x52e6ca={};var _0x444756={};var _0x349b38;var _0x7ba87e;return db['SquareProject'][_0xae7b('0x60')]({'where':{'id':_0x4cc97f['params']['id']}})['then'](handleEntityNotFound(_0x267fa3,null))['then'](function(_0x53d9f3){if(_0x53d9f3){_0x349b38=_0x53d9f3;_0x444756[_0xae7b('0x43')]=_[_0xae7b('0x40')](db[_0xae7b('0x61')][_0xae7b('0x3b')]);_0x444756['query']=_[_0xae7b('0x40')](_0x4cc97f[_0xae7b('0x3f')]);_0x444756[_0xae7b('0x41')]=_['intersection'](_0x444756[_0xae7b('0x43')],_0x444756[_0xae7b('0x3f')]);_0x52e6ca[_0xae7b('0x44')]=_[_0xae7b('0x42')](_0x444756[_0xae7b('0x43')],qs[_0xae7b('0x45')](_0x4cc97f[_0xae7b('0x3f')][_0xae7b('0x45')]));_0x52e6ca[_0xae7b('0x44')]=_0x52e6ca[_0xae7b('0x44')][_0xae7b('0x46')]?_0x52e6ca[_0xae7b('0x44')]:_0x444756['model'];_0x52e6ca[_0xae7b('0x62')]=qs['sort'](_0x4cc97f[_0xae7b('0x3f')][_0xae7b('0x49')]);_0x52e6ca['where']=qs['filters'](_[_0xae7b('0x63')](_0x4cc97f[_0xae7b('0x3f')],_0x444756[_0xae7b('0x41')]));if(_0x4cc97f[_0xae7b('0x3f')][_0xae7b('0x4b')]){_0x52e6ca[_0xae7b('0x4a')]=_[_0xae7b('0x4c')](_0x52e6ca[_0xae7b('0x4a')],{'$or':_[_0xae7b('0x39')](_0x52e6ca['attributes'],function(_0x3e1092){var _0x5f4ddc={};_0x5f4ddc[_0x3e1092]={'$like':'%'+_0x4cc97f[_0xae7b('0x3f')][_0xae7b('0x4b')]+'%'};return _0x5f4ddc;})});}_0x52e6ca=_[_0xae7b('0x4c')]({},_0x52e6ca,_0x4cc97f[_0xae7b('0x4e')]);return _0x349b38[_0xae7b('0x64')](_0x52e6ca);}})[_0xae7b('0x2f')](function(_0x5d9f00){if(_0x5d9f00){_0x7ba87e=_0x5d9f00[_0xae7b('0x46')];if(!_0x4cc97f[_0xae7b('0x3f')][_0xae7b('0x47')](_0xae7b('0x48'))){_0x52e6ca[_0xae7b('0x27')]=qs[_0xae7b('0x27')](_0x4cc97f['query']['limit']);_0x52e6ca[_0xae7b('0x25')]=qs['offset'](_0x4cc97f[_0xae7b('0x3f')]['offset']);}return _0x349b38[_0xae7b('0x64')](_0x52e6ca);}})[_0xae7b('0x2f')](function(_0x5681c2){if(_0x5681c2){return _0x5681c2?{'count':_0x7ba87e,'rows':_0x5681c2}:null;}})[_0xae7b('0x2f')](respondWithResult(_0x267fa3,null))[_0xae7b('0x50')](handleError(_0x267fa3,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x78f1=['hook','events','../../mysqldb','SquareProject','update','remove','emit','hasOwnProperty'];(function(_0x49dc1f,_0x4ca715){var _0x2f9312=function(_0x21855a){while(--_0x21855a){_0x49dc1f['push'](_0x49dc1f['shift']());}};_0x2f9312(++_0x4ca715);}(_0x78f1,0xd1));var _0x178f=function(_0x432682,_0x253044){_0x432682=_0x432682-0x0;var _0x463d05=_0x78f1[_0x432682];return _0x463d05;};'use strict';var EventEmitter=require(_0x178f('0x0'));var SquareProject=require(_0x178f('0x1'))['db'][_0x178f('0x2')];var SquareProjectEvents=new EventEmitter();SquareProjectEvents['setMaxListeners'](0x0);var events={'afterCreate':'save','afterUpdate':_0x178f('0x3'),'afterDestroy':_0x178f('0x4')};function emitEvent(_0x382670){return function(_0x120448,_0x1a6b74,_0x2b31b9){SquareProjectEvents[_0x178f('0x5')](_0x382670+':'+_0x120448['id'],_0x120448);SquareProjectEvents[_0x178f('0x5')](_0x382670,_0x120448);_0x2b31b9(null);};}for(var e in events){if(events[_0x178f('0x6')](e)){var event=events[e];SquareProject[_0x178f('0x7')](e,emitEvent(event));}}module['exports']=SquareProjectEvents;
\ No newline at end of file
+var _0xc8b6=['../../mysqldb','SquareProject','save','emit','hook'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xc8b6,0xdc));var _0x6c8b=function(_0x134c2e,_0x3573c4){_0x134c2e=_0x134c2e-0x0;var _0x2825db=_0xc8b6[_0x134c2e];return _0x2825db;};'use strict';var EventEmitter=require('events');var SquareProject=require(_0x6c8b('0x0'))['db'][_0x6c8b('0x1')];var SquareProjectEvents=new EventEmitter();SquareProjectEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x6c8b('0x2'),'afterUpdate':'update','afterDestroy':'remove'};function emitEvent(_0x3afa0f){return function(_0x3cde6d,_0x1318a5,_0x2cbd83){SquareProjectEvents[_0x6c8b('0x3')](_0x3afa0f+':'+_0x3cde6d['id'],_0x3cde6d);SquareProjectEvents[_0x6c8b('0x3')](_0x3afa0f,_0x3cde6d);_0x2cbd83(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];SquareProject[_0x6c8b('0x4')](e,emitEvent(event));}}module['exports']=SquareProjectEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcde8=['production','publishedAt','lodash','moment','request-promise','path','../../config/environment','define','SquareProject','square_projects','changed','savedAt','format','YYYY-MM-DD\x20HH:mm:ss'];(function(_0x59916a,_0xd35e0c){var _0x2d6562=function(_0x52eda6){while(--_0x52eda6){_0x59916a['push'](_0x59916a['shift']());}};_0x2d6562(++_0xd35e0c);}(_0xcde8,0x8e));var _0x8cde=function(_0x4e716a,_0x2a8e96){_0x4e716a=_0x4e716a-0x0;var _0x59f2b7=_0xcde8[_0x4e716a];return _0x59f2b7;};'use strict';var _=require(_0x8cde('0x0'));var util=require('util');var logger=require('../../config/logger')('api');var moment=require(_0x8cde('0x1'));var BPromise=require('bluebird');var rp=require(_0x8cde('0x2'));var fs=require('fs');var path=require(_0x8cde('0x3'));var rimraf=require('rimraf');var config=require(_0x8cde('0x4'));var attributes=require('./squareProject.attributes');module['exports']=function(_0x3197d3,_0x509860){return _0x3197d3[_0x8cde('0x5')](_0x8cde('0x6'),attributes,{'tableName':_0x8cde('0x7'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeUpdate':function(_0x457332,_0x3fa4b3,_0x3e9c3f){if(_0x457332[_0x8cde('0x8')]('preproduction')){_0x457332[_0x8cde('0x9')]=moment()[_0x8cde('0xa')](_0x8cde('0xb'));}if(_0x457332[_0x8cde('0x8')](_0x8cde('0xc'))){_0x457332[_0x8cde('0xd')]=moment()['format'](_0x8cde('0xb'));}_0x3e9c3f(null,_0x457332);}}});};
\ No newline at end of file
+var _0x687e=['publishedAt','format','YYYY-MM-DD\x20HH:mm:ss','lodash','../../config/logger','moment','bluebird','rimraf','../../config/environment','./squareProject.attributes','define','SquareProject','square_projects','changed','preproduction','savedAt','production'];(function(_0x4b043b,_0x598b17){var _0x398f5a=function(_0x59bea2){while(--_0x59bea2){_0x4b043b['push'](_0x4b043b['shift']());}};_0x398f5a(++_0x598b17);}(_0x687e,0x1df));var _0xe687=function(_0x199572,_0x33e667){_0x199572=_0x199572-0x0;var _0x13cfa3=_0x687e[_0x199572];return _0x13cfa3;};'use strict';var _=require(_0xe687('0x0'));var util=require('util');var logger=require(_0xe687('0x1'))('api');var moment=require(_0xe687('0x2'));var BPromise=require(_0xe687('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0xe687('0x4'));var config=require(_0xe687('0x5'));var attributes=require(_0xe687('0x6'));module['exports']=function(_0x2b26cc,_0xbbcc56){return _0x2b26cc[_0xe687('0x7')](_0xe687('0x8'),attributes,{'tableName':_0xe687('0x9'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeUpdate':function(_0x16e7d1,_0x3e3516,_0x516643){if(_0x16e7d1[_0xe687('0xa')](_0xe687('0xb'))){_0x16e7d1[_0xe687('0xc')]=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');}if(_0x16e7d1[_0xe687('0xa')](_0xe687('0xd'))){_0x16e7d1[_0xe687('0xe')]=moment()[_0xe687('0xf')](_0xe687('0x10'));}_0x516643(null,_0x16e7d1);}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x510f=['util','moment','bluebird','randomstring','ioredis','../../mysqldb','rpc','../../config/environment','jayson/promise','http','redis','defaults','localhost','socket.io-emitter','./squareProject.socket','register','request','info','SquareProject,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','ShowSquareProject','find','options','raw','where','attributes','map','include','model','then','catch'];(function(_0x231e16,_0x67347b){var _0x570a7c=function(_0x2c35b4){while(--_0x2c35b4){_0x231e16['push'](_0x231e16['shift']());}};_0x570a7c(++_0x67347b);}(_0x510f,0x172));var _0xf510=function(_0x3a9fdb,_0x205d53){_0x3a9fdb=_0x3a9fdb-0x0;var _0x18fc17=_0x510f[_0x3a9fdb];return _0x18fc17;};'use strict';var _=require('lodash');var util=require(_0xf510('0x0'));var moment=require(_0xf510('0x1'));var BPromise=require(_0xf510('0x2'));var rs=require(_0xf510('0x3'));var fs=require('fs');var Redis=require(_0xf510('0x4'));var db=require(_0xf510('0x5'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0xf510('0x6'));var config=require(_0xf510('0x7'));var jayson=require(_0xf510('0x8'));var client=jayson['client'][_0xf510('0x9')]({'port':0x232a});config[_0xf510('0xa')]=_[_0xf510('0xb')](config[_0xf510('0xa')],{'host':_0xf510('0xc'),'port':0x18eb});var socket=require(_0xf510('0xd'))(new Redis(config['redis']));require(_0xf510('0xe'))[_0xf510('0xf')](socket);function respondWithRpcPromise(_0x3a2079,_0x33ec06,_0x8dd445){return new BPromise(function(_0x1a8ef4,_0x28d649){return client[_0xf510('0x10')](_0x3a2079,_0x8dd445)['then'](function(_0x79e588){logger[_0xf510('0x11')](_0xf510('0x12'),_0x33ec06,_0xf510('0x13'));logger[_0xf510('0x14')]('SquareProject,\x20%s,\x20%s,\x20%s',_0x33ec06,_0xf510('0x13'),JSON[_0xf510('0x15')](_0x79e588));if(_0x79e588[_0xf510('0x16')]){if(_0x79e588[_0xf510('0x16')][_0xf510('0x17')]===0x1f4){logger[_0xf510('0x16')]('SquareProject,\x20%s,\x20%s',_0x33ec06,_0x79e588[_0xf510('0x16')]['message']);return _0x28d649(_0x79e588['error'][_0xf510('0x18')]);}logger[_0xf510('0x16')](_0xf510('0x12'),_0x33ec06,_0x79e588['error'][_0xf510('0x18')]);return _0x1a8ef4(_0x79e588[_0xf510('0x16')][_0xf510('0x18')]);}else{logger[_0xf510('0x11')](_0xf510('0x12'),_0x33ec06,'request\x20sent');_0x1a8ef4(_0x79e588[_0xf510('0x19')]['message']);}})['catch'](function(_0x58d82c){logger[_0xf510('0x16')](_0xf510('0x12'),_0x33ec06,_0x58d82c);_0x28d649(_0x58d82c);});});}exports[_0xf510('0x1a')]=function(_0x55e9f2){var _0x1e5e51=this;return new Promise(function(_0x583c06,_0x1cef48){return db['SquareProject'][_0xf510('0x1b')]({'raw':_0x55e9f2['options']?_0x55e9f2[_0xf510('0x1c')][_0xf510('0x1d')]===undefined?!![]:![]:!![],'where':_0x55e9f2[_0xf510('0x1c')]?_0x55e9f2[_0xf510('0x1c')][_0xf510('0x1e')]||null:null,'attributes':_0x55e9f2[_0xf510('0x1c')]?_0x55e9f2[_0xf510('0x1c')][_0xf510('0x1f')]||null:null,'include':_0x55e9f2['options']?_0x55e9f2['options']['include']?_[_0xf510('0x20')](_0x55e9f2[_0xf510('0x1c')][_0xf510('0x21')],function(_0x553276){return{'model':db[_0x553276[_0xf510('0x22')]],'as':_0x553276['as'],'attributes':_0x553276[_0xf510('0x1f')],'include':_0x553276[_0xf510('0x21')]?_[_0xf510('0x20')](_0x553276['include'],function(_0x23b849){return{'model':db[_0x23b849[_0xf510('0x22')]],'as':_0x23b849['as'],'attributes':_0x23b849[_0xf510('0x1f')],'include':_0x23b849['include']?_['map'](_0x23b849[_0xf510('0x21')],function(_0x5e72b){return{'model':db[_0x5e72b[_0xf510('0x22')]],'as':_0x5e72b['as'],'attributes':_0x5e72b['attributes']};}):[]};}):[]};}):[]:[]})[_0xf510('0x23')](function(_0x3f58f6){logger[_0xf510('0x11')]('ShowSquareProject',_0x55e9f2);logger[_0xf510('0x14')](_0xf510('0x1a'),_0x55e9f2,JSON[_0xf510('0x15')](_0x3f58f6));_0x583c06(_0x3f58f6);})[_0xf510('0x24')](function(_0x32db28){logger['error'](_0xf510('0x1a'),_0x32db28[_0xf510('0x18')],_0x55e9f2);_0x1cef48(_0x1e5e51[_0xf510('0x16')](0x1f4,_0x32db28['message']));});});};
\ No newline at end of file
+var _0x63ea=['code','message','ShowSquareProject','SquareProject','find','options','raw','where','attributes','include','model','map','stringify','catch','lodash','util','moment','ioredis','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','redis','localhost','socket.io-emitter','./squareProject.socket','register','request','then','info','SquareProject,\x20%s,\x20%s','request\x20sent','debug','error'];(function(_0x500690,_0x285294){var _0x35d308=function(_0x1472dd){while(--_0x1472dd){_0x500690['push'](_0x500690['shift']());}};_0x35d308(++_0x285294);}(_0x63ea,0x152));var _0xa63e=function(_0x48ac82,_0x32af54){_0x48ac82=_0x48ac82-0x0;var _0x3540c7=_0x63ea[_0x48ac82];return _0x3540c7;};'use strict';var _=require(_0xa63e('0x0'));var util=require(_0xa63e('0x1'));var moment=require(_0xa63e('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xa63e('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0xa63e('0x4'));var logger=require(_0xa63e('0x5'))('rpc');var config=require(_0xa63e('0x6'));var jayson=require(_0xa63e('0x7'));var client=jayson[_0xa63e('0x8')][_0xa63e('0x9')]({'port':0x232a});config[_0xa63e('0xa')]=_['defaults'](config[_0xa63e('0xa')],{'host':_0xa63e('0xb'),'port':0x18eb});var socket=require(_0xa63e('0xc'))(new Redis(config['redis']));require(_0xa63e('0xd'))[_0xa63e('0xe')](socket);function respondWithRpcPromise(_0x4cc88b,_0x5c1d9b,_0x3b659e){return new BPromise(function(_0xfe4f24,_0x24ee1f){return client[_0xa63e('0xf')](_0x4cc88b,_0x3b659e)[_0xa63e('0x10')](function(_0x436c09){logger[_0xa63e('0x11')](_0xa63e('0x12'),_0x5c1d9b,_0xa63e('0x13'));logger[_0xa63e('0x14')]('SquareProject,\x20%s,\x20%s,\x20%s',_0x5c1d9b,_0xa63e('0x13'),JSON['stringify'](_0x436c09));if(_0x436c09[_0xa63e('0x15')]){if(_0x436c09[_0xa63e('0x15')][_0xa63e('0x16')]===0x1f4){logger['error'](_0xa63e('0x12'),_0x5c1d9b,_0x436c09[_0xa63e('0x15')][_0xa63e('0x17')]);return _0x24ee1f(_0x436c09['error'][_0xa63e('0x17')]);}logger[_0xa63e('0x15')](_0xa63e('0x12'),_0x5c1d9b,_0x436c09[_0xa63e('0x15')]['message']);return _0xfe4f24(_0x436c09[_0xa63e('0x15')]['message']);}else{logger['info'](_0xa63e('0x12'),_0x5c1d9b,_0xa63e('0x13'));_0xfe4f24(_0x436c09['result']['message']);}})['catch'](function(_0x119ecb){logger['error'](_0xa63e('0x12'),_0x5c1d9b,_0x119ecb);_0x24ee1f(_0x119ecb);});});}exports[_0xa63e('0x18')]=function(_0x27b7b6){var _0x10ae50=this;return new Promise(function(_0x26f014,_0x29ca05){return db[_0xa63e('0x19')][_0xa63e('0x1a')]({'raw':_0x27b7b6[_0xa63e('0x1b')]?_0x27b7b6[_0xa63e('0x1b')][_0xa63e('0x1c')]===undefined?!![]:![]:!![],'where':_0x27b7b6[_0xa63e('0x1b')]?_0x27b7b6['options'][_0xa63e('0x1d')]||null:null,'attributes':_0x27b7b6[_0xa63e('0x1b')]?_0x27b7b6[_0xa63e('0x1b')][_0xa63e('0x1e')]||null:null,'include':_0x27b7b6[_0xa63e('0x1b')]?_0x27b7b6[_0xa63e('0x1b')]['include']?_['map'](_0x27b7b6[_0xa63e('0x1b')][_0xa63e('0x1f')],function(_0x51e16c){return{'model':db[_0x51e16c[_0xa63e('0x20')]],'as':_0x51e16c['as'],'attributes':_0x51e16c[_0xa63e('0x1e')],'include':_0x51e16c[_0xa63e('0x1f')]?_[_0xa63e('0x21')](_0x51e16c[_0xa63e('0x1f')],function(_0xc21b47){return{'model':db[_0xc21b47[_0xa63e('0x20')]],'as':_0xc21b47['as'],'attributes':_0xc21b47[_0xa63e('0x1e')],'include':_0xc21b47[_0xa63e('0x1f')]?_['map'](_0xc21b47[_0xa63e('0x1f')],function(_0x16444f){return{'model':db[_0x16444f['model']],'as':_0x16444f['as'],'attributes':_0x16444f[_0xa63e('0x1e')]};}):[]};}):[]};}):[]:[]})[_0xa63e('0x10')](function(_0x451d17){logger[_0xa63e('0x11')](_0xa63e('0x18'),_0x27b7b6);logger['debug']('ShowSquareProject',_0x27b7b6,JSON[_0xa63e('0x22')](_0x451d17));_0x26f014(_0x451d17);})[_0xa63e('0x23')](function(_0x146ab1){logger[_0xa63e('0x15')]('ShowSquareProject',_0x146ab1[_0xa63e('0x17')],_0x27b7b6);_0x29ca05(_0x10ae50[_0xa63e('0x15')](0x1f4,_0x146ab1['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc04c=['removeListener','register','length','remove','update'];(function(_0x3c51d4,_0x36ba53){var _0x53c45f=function(_0x3d6683){while(--_0x3d6683){_0x3c51d4['push'](_0x3c51d4['shift']());}};_0x53c45f(++_0x36ba53);}(_0xc04c,0x80));var _0xcc04=function(_0x3b829d,_0x4969d4){_0x3b829d=_0x3b829d-0x0;var _0x19e135=_0xc04c[_0x3b829d];return _0x19e135;};'use strict';var SquareProjectEvents=require('./squareProject.events');var events=['save',_0xcc04('0x0'),_0xcc04('0x1')];function createListener(_0x348c3a,_0x3e61b){return function(_0x42029b){_0x3e61b['emit'](_0x348c3a,_0x42029b);};}function removeListener(_0x5650fb,_0x5a9604){return function(){SquareProjectEvents[_0xcc04('0x2')](_0x5650fb,_0x5a9604);};}exports[_0xcc04('0x3')]=function(_0x22cb1a){for(var _0x4b534c=0x0,_0x596f6d=events[_0xcc04('0x4')];_0x4b534c<_0x596f6d;_0x4b534c++){var _0x367ffb=events[_0x4b534c];var _0x96104=createListener('squareProject:'+_0x367ffb,_0x22cb1a);SquareProjectEvents['on'](_0x367ffb,_0x96104);}};
\ No newline at end of file
+var _0x8dab=['./squareProject.events','save','update','register'];(function(_0x513d65,_0x156ef6){var _0x307aa9=function(_0x3885d3){while(--_0x3885d3){_0x513d65['push'](_0x513d65['shift']());}};_0x307aa9(++_0x156ef6);}(_0x8dab,0x164));var _0xb8da=function(_0x17f7e1,_0x561bf4){_0x17f7e1=_0x17f7e1-0x0;var _0x556d66=_0x8dab[_0x17f7e1];return _0x556d66;};'use strict';var SquareProjectEvents=require(_0xb8da('0x0'));var events=[_0xb8da('0x1'),'remove',_0xb8da('0x2')];function createListener(_0x1c51f2,_0x42df9e){return function(_0x2adf88){_0x42df9e['emit'](_0x1c51f2,_0x2adf88);};}function removeListener(_0x241046,_0x5d3832){return function(){SquareProjectEvents['removeListener'](_0x241046,_0x5d3832);};}exports[_0xb8da('0x3')]=function(_0x5616ff){for(var _0x34f2f6=0x0,_0x10cebd=events['length'];_0x34f2f6<_0x10cebd;_0x34f2f6++){var _0x2454f2=events[_0x34f2f6];var _0x3994b1=createListener('squareProject:'+_0x2454f2,_0x5616ff);SquareProjectEvents['on'](_0x2454f2,_0x3994b1);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7217=['../../config/environment','./squareRecording.controller','get','isAuthenticated','index','/:id','show','/:id/download','download','post','put','update','delete','destroy','multer','path','connect-timeout','express','Router','fs-extra'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x7217,0x19e));var _0x7721=function(_0x3899d1,_0x4aa04c){_0x3899d1=_0x3899d1-0x0;var _0xeb4a7d=_0x7217[_0x3899d1];return _0xeb4a7d;};'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('0x8')](_0x7721('0xd'),auth[_0x7721('0x9')](),controller[_0x7721('0xe')]);router[_0x7721('0xf')]('/',auth[_0x7721('0x9')](),controller['create']);router[_0x7721('0x10')](_0x7721('0xb'),auth[_0x7721('0x9')](),controller[_0x7721('0x11')]);router[_0x7721('0x12')](_0x7721('0xb'),auth[_0x7721('0x9')](),controller[_0x7721('0x13')]);module['exports']=router;
\ No newline at end of file
+var _0x326f=['multer','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./squareRecording.controller','get','isAuthenticated','/:id','show','download','post','create','put','delete','exports'];(function(_0x28cff0,_0x589001){var _0x3f57f9=function(_0x146185){while(--_0x146185){_0x28cff0['push'](_0x28cff0['shift']());}};_0x3f57f9(++_0x589001);}(_0x326f,0xd1));var _0xf326=function(_0x143e6c,_0x2ab6cf){_0x143e6c=_0x143e6c-0x0;var _0x44124d=_0x326f[_0x143e6c];return _0x44124d;};'use strict';var multer=require(_0xf326('0x0'));var util=require('util');var path=require('path');var timeout=require(_0xf326('0x1'));var express=require(_0xf326('0x2'));var router=express[_0xf326('0x3')]();var fs_extra=require(_0xf326('0x4'));var auth=require(_0xf326('0x5'));var interaction=require(_0xf326('0x6'));var config=require(_0xf326('0x7'));var controller=require(_0xf326('0x8'));router[_0xf326('0x9')]('/',auth[_0xf326('0xa')](),controller['index']);router[_0xf326('0x9')](_0xf326('0xb'),auth[_0xf326('0xa')](),controller[_0xf326('0xc')]);router['get']('/:id/download',auth['isAuthenticated'](),controller[_0xf326('0xd')]);router[_0xf326('0xe')]('/',auth[_0xf326('0xa')](),controller[_0xf326('0xf')]);router[_0xf326('0x10')]('/:id',auth[_0xf326('0xa')](),controller['update']);router[_0xf326('0x11')]('/:id',auth[_0xf326('0xa')](),controller['destroy']);module[_0xf326('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x33c5=['STRING','VIRTUAL','getDataValue','savePath','substring','lastIndexOf','exports'];(function(_0x3bf4f0,_0x316456){var _0x2c6a5c=function(_0x412cf){while(--_0x412cf){_0x3bf4f0['push'](_0x3bf4f0['shift']());}};_0x2c6a5c(++_0x316456);}(_0x33c5,0xe6));var _0x533c=function(_0x4cd21c,_0x35fa45){_0x4cd21c=_0x4cd21c-0x0;var _0x5d8e5e=_0x33c5[_0x4cd21c];return _0x5d8e5e;};'use strict';var Sequelize=require('sequelize');module[_0x533c('0x0')]={'uniqueid':{'type':Sequelize[_0x533c('0x1')]},'callerid':{'type':Sequelize['STRING']},'calleridname':{'type':Sequelize[_0x533c('0x1')]},'context':{'type':Sequelize[_0x533c('0x1')]},'extension':{'type':Sequelize[_0x533c('0x1')]},'priority':{'type':Sequelize[_0x533c('0x1')]},'accountcode':{'type':Sequelize[_0x533c('0x1')]},'dnid':{'type':Sequelize['STRING']},'projectName':{'type':Sequelize[_0x533c('0x1')]},'saveName':{'type':Sequelize[_0x533c('0x1')]},'filename':{'type':Sequelize[_0x533c('0x1')]},'savePath':{'type':Sequelize[_0x533c('0x1')]},'format':{'type':Sequelize[_0x533c('0x2')],'get':function(){var _0x1699d5='';var _0x3a009b=this[_0x533c('0x3')](_0x533c('0x4'));if(_0x3a009b){_0x1699d5=_0x3a009b[_0x533c('0x5')](_0x3a009b[_0x533c('0x6')]('.'));}return _0x1699d5;}}};
\ No newline at end of file
+var _0x6aa7=['VIRTUAL','savePath','substring','lastIndexOf','sequelize','STRING'];(function(_0xc8db78,_0x58b5a7){var _0x3483f3=function(_0x2089ee){while(--_0x2089ee){_0xc8db78['push'](_0xc8db78['shift']());}};_0x3483f3(++_0x58b5a7);}(_0x6aa7,0x178));var _0x76aa=function(_0x219c4f,_0x471beb){_0x219c4f=_0x219c4f-0x0;var _0x409cd1=_0x6aa7[_0x219c4f];return _0x409cd1;};'use strict';var Sequelize=require(_0x76aa('0x0'));module['exports']={'uniqueid':{'type':Sequelize[_0x76aa('0x1')]},'callerid':{'type':Sequelize[_0x76aa('0x1')]},'calleridname':{'type':Sequelize[_0x76aa('0x1')]},'context':{'type':Sequelize[_0x76aa('0x1')]},'extension':{'type':Sequelize['STRING']},'priority':{'type':Sequelize[_0x76aa('0x1')]},'accountcode':{'type':Sequelize[_0x76aa('0x1')]},'dnid':{'type':Sequelize[_0x76aa('0x1')]},'projectName':{'type':Sequelize['STRING']},'saveName':{'type':Sequelize['STRING']},'filename':{'type':Sequelize[_0x76aa('0x1')]},'savePath':{'type':Sequelize['STRING']},'format':{'type':Sequelize[_0x76aa('0x2')],'get':function(){var _0x36d12b='';var _0xa9b695=this['getDataValue'](_0x76aa('0x3'));if(_0xa9b695){_0x36d12b=_0xa9b695[_0x76aa('0x4')](_0xa9b695[_0x76aa('0x5')]('.'));}return _0x36d12b;}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x98ad=['to-csv','ejs','fs-extra','lodash','squel','crypto','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','count','limit','set','Content-Range','apply','update','then','destroy','sendStatus','stack','name','index','SquareRecording','rawAttributes','fieldName','type','key','model','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','pick','filter','merge','where','map','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','keys','length','find','create','body','download','uniqueid','savePath','filename','format','%s.cypher','existsSync','decryptFile','secrets','recording','Sequelize','SquareRecording\x20not\x20found','extname','unlink','message','send','Not\x20found','isNil','Entity\x20not\x20found','info','\x22\x20trovato\x20eseguo\x20la\x20cancellazione','.cypher','File:\x20\x22','request-promise','moment','bluebird','mustache','util','sox'];(function(_0x474d0a,_0x3d3e43){var _0x1efff6=function(_0x33238c){while(--_0x33238c){_0x474d0a['push'](_0x474d0a['shift']());}};_0x1efff6(++_0x3d3e43);}(_0x98ad,0x11d));var _0xd98a=function(_0x397e5f,_0x454c8f){_0x397e5f=_0x397e5f-0x0;var _0x5302b8=_0x98ad[_0x397e5f];return _0x5302b8;};'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(_0xd98a('0x0'));var moment=require(_0xd98a('0x1'));var BPromise=require(_0xd98a('0x2'));var Mustache=require(_0xd98a('0x3'));var util=require(_0xd98a('0x4'));var path=require('path');var sox=require(_0xd98a('0x5'));var csv=require(_0xd98a('0x6'));var ejs=require(_0xd98a('0x7'));var fs=require('fs');var fs_extra=require(_0xd98a('0x8'));var _=require(_0xd98a('0x9'));var squel=require(_0xd98a('0xa'));var crypto=require(_0xd98a('0xb'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0xd98a('0xc'));var Papa=require(_0xd98a('0xd'));var Redis=require(_0xd98a('0xe'));var authService=require(_0xd98a('0xf'));var qs=require(_0xd98a('0x10'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xd98a('0x11'));var logger=require('../../config/logger')(_0xd98a('0x12'));var utils=require(_0xd98a('0x13'));var config=require(_0xd98a('0x14'));var licenseUtil=require(_0xd98a('0x15'));var db=require(_0xd98a('0x16'))['db'];function respondWithStatusCode(_0xc12db0,_0x148af1){_0x148af1=_0x148af1||0xcc;return function(_0x20e40e){if(_0x20e40e){return _0xc12db0['sendStatus'](_0x148af1);}return _0xc12db0[_0xd98a('0x17')](_0x148af1)[_0xd98a('0x18')]();};}function respondWithResult(_0x341a67,_0x5d1cd7){_0x5d1cd7=_0x5d1cd7||0xc8;return function(_0x26d2c6){if(_0x26d2c6){return _0x341a67[_0xd98a('0x17')](_0x5d1cd7)[_0xd98a('0x19')](_0x26d2c6);}};}function respondWithFilteredResult(_0x18ce77,_0x2fb250){return function(_0x1aab5a){if(_0x1aab5a){var _0x33c08b=typeof _0x2fb250[_0xd98a('0x1a')]===_0xd98a('0x1b')&&typeof _0x2fb250['limit']===_0xd98a('0x1b');var _0x1cc791=_0x1aab5a['count'];var _0x4f9dfa=_0x33c08b?0x0:_0x2fb250[_0xd98a('0x1a')];var _0x158ce3=_0x33c08b?_0x1aab5a[_0xd98a('0x1c')]:_0x2fb250[_0xd98a('0x1a')]+_0x2fb250[_0xd98a('0x1d')];var _0x226fec;if(_0x158ce3>=_0x1cc791){_0x158ce3=_0x1cc791;_0x226fec=0xc8;}else{_0x226fec=0xce;}_0x18ce77[_0xd98a('0x17')](_0x226fec);return _0x18ce77[_0xd98a('0x1e')](_0xd98a('0x1f'),_0x4f9dfa+'-'+_0x158ce3+'/'+_0x1cc791)['json'](_0x1aab5a);}return null;};}function patchUpdates(_0x10008d){return function(_0x40e2fd){try{jsonpatch[_0xd98a('0x20')](_0x40e2fd,_0x10008d,!![]);}catch(_0x413589){return BPromise['reject'](_0x413589);}return _0x40e2fd['save']();};}function saveUpdates(_0x401363,_0x1a51b8){return function(_0x4275fe){if(_0x4275fe){return _0x4275fe[_0xd98a('0x21')](_0x401363)[_0xd98a('0x22')](function(_0x1ec694){return _0x1ec694;});}return null;};}function removeEntity(_0x323baf,_0x2e629e){return function(_0x5f2607){if(_0x5f2607){return _0x5f2607[_0xd98a('0x23')]()['then'](function(){_0x323baf[_0xd98a('0x17')](0xcc)[_0xd98a('0x18')]();});}};}function handleEntityNotFound(_0x205463,_0x1fa771){return function(_0x283e48){if(!_0x283e48){_0x205463[_0xd98a('0x24')](0x194);}return _0x283e48;};}function handleError(_0x2b402a,_0x4a73c5){_0x4a73c5=_0x4a73c5||0x1f4;return function(_0x3ee13a){logger['error'](_0x3ee13a[_0xd98a('0x25')]);if(_0x3ee13a[_0xd98a('0x26')]){delete _0x3ee13a[_0xd98a('0x26')];}_0x2b402a[_0xd98a('0x17')](_0x4a73c5)['send'](_0x3ee13a);};}exports[_0xd98a('0x27')]=function(_0x1fca0c,_0x7027e9){var _0x2d3171={},_0x12aa38={},_0x34fb59={'count':0x0,'rows':[]};var _0x27b247=_['map'](db[_0xd98a('0x28')][_0xd98a('0x29')],function(_0x89eeab){return{'name':_0x89eeab[_0xd98a('0x2a')],'type':_0x89eeab[_0xd98a('0x2b')][_0xd98a('0x2c')]};});_0x12aa38[_0xd98a('0x2d')]=_['map'](_0x27b247,_0xd98a('0x26'));_0x12aa38['query']=_['keys'](_0x1fca0c[_0xd98a('0x2e')]);_0x12aa38[_0xd98a('0x2f')]=_[_0xd98a('0x30')](_0x12aa38[_0xd98a('0x2d')],_0x12aa38[_0xd98a('0x2e')]);_0x2d3171[_0xd98a('0x31')]=_[_0xd98a('0x30')](_0x12aa38[_0xd98a('0x2d')],qs['fields'](_0x1fca0c[_0xd98a('0x2e')][_0xd98a('0x32')]));_0x2d3171[_0xd98a('0x31')]=_0x2d3171[_0xd98a('0x31')]['length']?_0x2d3171[_0xd98a('0x31')]:_0x12aa38['model'];if(!_0x1fca0c[_0xd98a('0x2e')][_0xd98a('0x33')](_0xd98a('0x34'))){_0x2d3171[_0xd98a('0x1d')]=qs[_0xd98a('0x1d')](_0x1fca0c[_0xd98a('0x2e')][_0xd98a('0x1d')]);_0x2d3171['offset']=qs[_0xd98a('0x1a')](_0x1fca0c[_0xd98a('0x2e')][_0xd98a('0x1a')]);}_0x2d3171[_0xd98a('0x35')]=qs[_0xd98a('0x36')](_0x1fca0c[_0xd98a('0x2e')][_0xd98a('0x36')]);_0x2d3171['where']=qs[_0xd98a('0x2f')](_[_0xd98a('0x37')](_0x1fca0c['query'],_0x12aa38[_0xd98a('0x2f')]),_0x27b247);if(_0x1fca0c[_0xd98a('0x2e')][_0xd98a('0x38')]){_0x2d3171['where']=_[_0xd98a('0x39')](_0x2d3171[_0xd98a('0x3a')],{'$or':_[_0xd98a('0x3b')](_0x27b247,function(_0xacee3c){if(_0xacee3c[_0xd98a('0x2b')]!==_0xd98a('0x3c')){var _0x7f3dfa={};_0x7f3dfa[_0xacee3c[_0xd98a('0x26')]]={'$like':'%'+_0x1fca0c[_0xd98a('0x2e')][_0xd98a('0x38')]+'%'};return _0x7f3dfa;}})});}_0x2d3171=_[_0xd98a('0x39')]({},_0x2d3171,_0x1fca0c[_0xd98a('0x3d')]);var _0x21fe6b={'where':_0x2d3171[_0xd98a('0x3a')]};return db[_0xd98a('0x28')][_0xd98a('0x1c')](_0x21fe6b)['then'](function(_0x1bc581){_0x34fb59['count']=_0x1bc581;if(_0x1fca0c[_0xd98a('0x2e')][_0xd98a('0x3e')]){_0x2d3171[_0xd98a('0x3f')]=[{'all':!![]}];}return db[_0xd98a('0x28')][_0xd98a('0x40')](_0x2d3171);})[_0xd98a('0x22')](function(_0x157f53){_0x34fb59[_0xd98a('0x41')]=_0x157f53;return _0x34fb59;})[_0xd98a('0x22')](respondWithFilteredResult(_0x7027e9,_0x2d3171))[_0xd98a('0x42')](handleError(_0x7027e9,null));};exports[_0xd98a('0x43')]=function(_0x2ae6fc,_0x36fe3f){var _0x4aaf6d={'raw':!![],'where':{'id':_0x2ae6fc[_0xd98a('0x44')]['id']}},_0x33ff13={};_0x33ff13[_0xd98a('0x2d')]=_[_0xd98a('0x45')](db[_0xd98a('0x28')]['rawAttributes']);_0x33ff13[_0xd98a('0x2e')]=_[_0xd98a('0x45')](_0x2ae6fc[_0xd98a('0x2e')]);_0x33ff13[_0xd98a('0x2f')]=_[_0xd98a('0x30')](_0x33ff13[_0xd98a('0x2d')],_0x33ff13[_0xd98a('0x2e')]);_0x4aaf6d[_0xd98a('0x31')]=_['intersection'](_0x33ff13[_0xd98a('0x2d')],qs['fields'](_0x2ae6fc[_0xd98a('0x2e')]['fields']));_0x4aaf6d['attributes']=_0x4aaf6d[_0xd98a('0x31')][_0xd98a('0x46')]?_0x4aaf6d[_0xd98a('0x31')]:_0x33ff13['model'];if(_0x2ae6fc[_0xd98a('0x2e')][_0xd98a('0x3e')]){_0x4aaf6d[_0xd98a('0x3f')]=[{'all':!![]}];}_0x4aaf6d=_[_0xd98a('0x39')]({},_0x4aaf6d,_0x2ae6fc[_0xd98a('0x3d')]);return db[_0xd98a('0x28')][_0xd98a('0x47')](_0x4aaf6d)[_0xd98a('0x22')](handleEntityNotFound(_0x36fe3f,null))['then'](respondWithResult(_0x36fe3f,null))['catch'](handleError(_0x36fe3f,null));};exports[_0xd98a('0x48')]=function(_0x501b09,_0x3334a2){return db['SquareRecording'][_0xd98a('0x48')](_0x501b09[_0xd98a('0x49')],{})[_0xd98a('0x22')](respondWithResult(_0x3334a2,0xc9))[_0xd98a('0x42')](handleError(_0x3334a2,null));};exports['update']=function(_0x4928a3,_0x28345e){if(_0x4928a3[_0xd98a('0x49')]['id']){delete _0x4928a3[_0xd98a('0x49')]['id'];}return db[_0xd98a('0x28')][_0xd98a('0x47')]({'where':{'id':_0x4928a3[_0xd98a('0x44')]['id']}})['then'](handleEntityNotFound(_0x28345e,null))['then'](saveUpdates(_0x4928a3[_0xd98a('0x49')],null))[_0xd98a('0x22')](respondWithResult(_0x28345e,null))[_0xd98a('0x42')](handleError(_0x28345e,null));};exports[_0xd98a('0x4a')]=function(_0x57e159,_0x57603a,_0x492790){var _0x2c2885=require('../../components/encryptor');var _0x432f3d=![];var _0x13a7d6={};if(_0x57e159[_0xd98a('0x2e')][_0xd98a('0x2b')]&&_0x57e159[_0xd98a('0x2e')][_0xd98a('0x2b')]===_0xd98a('0x4b')){_0x13a7d6[_0xd98a('0x4b')]=_0x57e159[_0xd98a('0x44')]['id'];}else{_0x13a7d6['id']=_0x57e159[_0xd98a('0x44')]['id'];}return db[_0xd98a('0x28')][_0xd98a('0x47')]({'where':_0x13a7d6,'attributes':['id',_0xd98a('0x4c'),_0xd98a('0x4d')],'raw':!![]})[_0xd98a('0x22')](handleEntityNotFound(_0x57603a,null))[_0xd98a('0x22')](function(_0xe17f55){if(_0xe17f55){var _0x494ee0=_0xe17f55['savePath'];var _0x4ab853=util[_0xd98a('0x4e')](_0xd98a('0x4f'),_0x494ee0);if(fs[_0xd98a('0x50')](_0x4ab853)){_0x432f3d=!![];return _0x2c2885[_0xd98a('0x51')](_0x4ab853,_0x494ee0,config[_0xd98a('0x52')][_0xd98a('0x53')])[_0xd98a('0x22')](function(){return _0xe17f55;});}return _0xe17f55;}})[_0xd98a('0x22')](function(_0x102536){if(_0x102536){var _0x44c78e=_0x102536[_0xd98a('0x4c')];if(!fs[_0xd98a('0x50')](_0x44c78e)){throw new db[(_0xd98a('0x54'))]['ValidationError'](_0xd98a('0x55'));}if(_0x102536[_0xd98a('0x4d')]){return _0x57603a[_0xd98a('0x4a')](_0x44c78e,_0x102536['filename']+path[_0xd98a('0x56')](_0x44c78e),function(){if(_0x432f3d){fs['unlink'](_0x44c78e);}});}else{return _0x57603a[_0xd98a('0x4a')](_0x44c78e,function(_0x38eeb1){if(_0x432f3d){fs[_0xd98a('0x57')](_0x44c78e);}});}}})[_0xd98a('0x42')](function(_0x1b6203){if(_0x1b6203[_0xd98a('0x58')]===_0xd98a('0x55')){_0x57603a[_0xd98a('0x17')](0x194)[_0xd98a('0x59')](_0xd98a('0x5a'));}else{return handleError(_0x57603a,null);}});};exports[_0xd98a('0x23')]=function(_0x1fe981,_0x127212){return db[_0xd98a('0x28')][_0xd98a('0x47')]({'where':{'id':_0x1fe981[_0xd98a('0x44')]['id']}})['then'](function(_0x54ae1a){if(_[_0xd98a('0x5b')](_0x54ae1a)){throw new ReferenceError(_0xd98a('0x5c'));}return _0x54ae1a;})[_0xd98a('0x22')](function(_0x39b997){var _0x4f3d8c=_0x39b997['savePath'];logger['info']('cancellazione\x20fisica\x20documento\x20%s',_0x4f3d8c);if(!_[_0xd98a('0x5b')](_0x39b997[_0xd98a('0x4c')])&&fs[_0xd98a('0x50')](_0x4f3d8c)){logger[_0xd98a('0x5d')]('File:\x20\x22'+_0x4f3d8c+_0xd98a('0x5e'));fs['unlinkSync'](_0x4f3d8c);}_0x4f3d8c=_0x4f3d8c+_0xd98a('0x5f');if(!_[_0xd98a('0x5b')](_0x39b997['savePath'])&&fs[_0xd98a('0x50')](_0x4f3d8c)){logger[_0xd98a('0x5d')](_0xd98a('0x60')+_0x4f3d8c+'\x22\x20trovato\x20eseguo\x20la\x20cancellazione');fs['unlinkSync'](_0x4f3d8c);}return _0x39b997;})[_0xd98a('0x22')](function(_0x3fcdeb){if(!_0x3fcdeb)throw new InternalError();return _0x3fcdeb[_0xd98a('0x23')]();})['then'](function(){_0x127212[_0xd98a('0x17')](0xcc)[_0xd98a('0x18')]();})[_0xd98a('0x42')](handleError(_0x127212,null));};
\ No newline at end of file
+var _0x0615=['count','limit','json','apply','reject','save','then','destroy','error','name','send','index','SquareRecording','rawAttributes','fieldName','type','model','map','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','catch','params','keys','length','create','body','update','find','download','../../components/encryptor','uniqueid','savePath','filename','format','%s.cypher','existsSync','decryptFile','secrets','Sequelize','ValidationError','SquareRecording\x20not\x20found','extname','unlink','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','path','sox','ejs','crypto','jsforce','to-csv','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','undefined'];(function(_0xa464c9,_0x7c86d8){var _0x3d73c4=function(_0x5c2056){while(--_0x5c2056){_0xa464c9['push'](_0xa464c9['shift']());}};_0x3d73c4(++_0x7c86d8);}(_0x0615,0x101));var _0x5061=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0x0615[_0x14add3];return _0x4a174f;};'use strict';var emlformat=require(_0x5061('0x0'));var rimraf=require(_0x5061('0x1'));var zipdir=require(_0x5061('0x2'));var jsonpatch=require(_0x5061('0x3'));var rp=require('request-promise');var moment=require(_0x5061('0x4'));var BPromise=require(_0x5061('0x5'));var Mustache=require('mustache');var util=require('util');var path=require(_0x5061('0x6'));var sox=require(_0x5061('0x7'));var csv=require('to-csv');var ejs=require(_0x5061('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require('squel');var crypto=require(_0x5061('0x9'));var jsforce=require(_0x5061('0xa'));var deskjs=require('desk.js');var toCsv=require(_0x5061('0xb'));var querystring=require(_0x5061('0xc'));var Papa=require(_0x5061('0xd'));var Redis=require(_0x5061('0xe'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x5061('0xf'));var hardwareService=require(_0x5061('0x10'));var logger=require(_0x5061('0x11'))(_0x5061('0x12'));var utils=require(_0x5061('0x13'));var config=require(_0x5061('0x14'));var licenseUtil=require(_0x5061('0x15'));var db=require(_0x5061('0x16'))['db'];function respondWithStatusCode(_0x2c7ef3,_0x516231){_0x516231=_0x516231||0xcc;return function(_0x312acc){if(_0x312acc){return _0x2c7ef3[_0x5061('0x17')](_0x516231);}return _0x2c7ef3[_0x5061('0x18')](_0x516231)[_0x5061('0x19')]();};}function respondWithResult(_0x4ec6a9,_0xb3690d){_0xb3690d=_0xb3690d||0xc8;return function(_0x4253dc){if(_0x4253dc){return _0x4ec6a9[_0x5061('0x18')](_0xb3690d)['json'](_0x4253dc);}};}function respondWithFilteredResult(_0xe5119d,_0x43db6f){return function(_0x11ae80){if(_0x11ae80){var _0x49586e=typeof _0x43db6f[_0x5061('0x1a')]===_0x5061('0x1b')&&typeof _0x43db6f['limit']===_0x5061('0x1b');var _0x348d31=_0x11ae80['count'];var _0x4204b2=_0x49586e?0x0:_0x43db6f['offset'];var _0x3568f9=_0x49586e?_0x11ae80[_0x5061('0x1c')]:_0x43db6f[_0x5061('0x1a')]+_0x43db6f[_0x5061('0x1d')];var _0x89892a;if(_0x3568f9>=_0x348d31){_0x3568f9=_0x348d31;_0x89892a=0xc8;}else{_0x89892a=0xce;}_0xe5119d[_0x5061('0x18')](_0x89892a);return _0xe5119d['set']('Content-Range',_0x4204b2+'-'+_0x3568f9+'/'+_0x348d31)[_0x5061('0x1e')](_0x11ae80);}return null;};}function patchUpdates(_0x594cae){return function(_0x530e67){try{jsonpatch[_0x5061('0x1f')](_0x530e67,_0x594cae,!![]);}catch(_0x554b5e){return BPromise[_0x5061('0x20')](_0x554b5e);}return _0x530e67[_0x5061('0x21')]();};}function saveUpdates(_0x27a0c8,_0x1c32ad){return function(_0x355e6f){if(_0x355e6f){return _0x355e6f['update'](_0x27a0c8)[_0x5061('0x22')](function(_0x4918d2){return _0x4918d2;});}return null;};}function removeEntity(_0x3529f8,_0x3dee17){return function(_0x1a16fc){if(_0x1a16fc){return _0x1a16fc[_0x5061('0x23')]()[_0x5061('0x22')](function(){_0x3529f8[_0x5061('0x18')](0xcc)[_0x5061('0x19')]();});}};}function handleEntityNotFound(_0x581c99,_0x278bf5){return function(_0x1752f3){if(!_0x1752f3){_0x581c99[_0x5061('0x17')](0x194);}return _0x1752f3;};}function handleError(_0x2586df,_0x1cc480){_0x1cc480=_0x1cc480||0x1f4;return function(_0x84b60d){logger[_0x5061('0x24')](_0x84b60d['stack']);if(_0x84b60d[_0x5061('0x25')]){delete _0x84b60d[_0x5061('0x25')];}_0x2586df[_0x5061('0x18')](_0x1cc480)[_0x5061('0x26')](_0x84b60d);};}exports[_0x5061('0x27')]=function(_0x13cf02,_0x5951af){var _0x50ca9d={},_0x46cf1f={},_0x5d3ac2={'count':0x0,'rows':[]};var _0xdcb7de=_['map'](db[_0x5061('0x28')][_0x5061('0x29')],function(_0x4bdb83){return{'name':_0x4bdb83[_0x5061('0x2a')],'type':_0x4bdb83[_0x5061('0x2b')]['key']};});_0x46cf1f[_0x5061('0x2c')]=_[_0x5061('0x2d')](_0xdcb7de,_0x5061('0x25'));_0x46cf1f[_0x5061('0x2e')]=_['keys'](_0x13cf02[_0x5061('0x2e')]);_0x46cf1f[_0x5061('0x2f')]=_[_0x5061('0x30')](_0x46cf1f[_0x5061('0x2c')],_0x46cf1f[_0x5061('0x2e')]);_0x50ca9d[_0x5061('0x31')]=_[_0x5061('0x30')](_0x46cf1f['model'],qs[_0x5061('0x32')](_0x13cf02[_0x5061('0x2e')]['fields']));_0x50ca9d[_0x5061('0x31')]=_0x50ca9d['attributes']['length']?_0x50ca9d[_0x5061('0x31')]:_0x46cf1f[_0x5061('0x2c')];if(!_0x13cf02[_0x5061('0x2e')][_0x5061('0x33')](_0x5061('0x34'))){_0x50ca9d[_0x5061('0x1d')]=qs['limit'](_0x13cf02[_0x5061('0x2e')][_0x5061('0x1d')]);_0x50ca9d[_0x5061('0x1a')]=qs[_0x5061('0x1a')](_0x13cf02[_0x5061('0x2e')]['offset']);}_0x50ca9d[_0x5061('0x35')]=qs['sort'](_0x13cf02['query'][_0x5061('0x36')]);_0x50ca9d[_0x5061('0x37')]=qs['filters'](_[_0x5061('0x38')](_0x13cf02['query'],_0x46cf1f[_0x5061('0x2f')]),_0xdcb7de);if(_0x13cf02[_0x5061('0x2e')][_0x5061('0x39')]){_0x50ca9d['where']=_[_0x5061('0x3a')](_0x50ca9d['where'],{'$or':_[_0x5061('0x2d')](_0xdcb7de,function(_0x10c2a0){if(_0x10c2a0[_0x5061('0x2b')]!==_0x5061('0x3b')){var _0x2e88fc={};_0x2e88fc[_0x10c2a0[_0x5061('0x25')]]={'$like':'%'+_0x13cf02['query'][_0x5061('0x39')]+'%'};return _0x2e88fc;}})});}_0x50ca9d=_[_0x5061('0x3a')]({},_0x50ca9d,_0x13cf02[_0x5061('0x3c')]);var _0x28e531={'where':_0x50ca9d[_0x5061('0x37')]};return db['SquareRecording'][_0x5061('0x1c')](_0x28e531)[_0x5061('0x22')](function(_0x28223b){_0x5d3ac2[_0x5061('0x1c')]=_0x28223b;if(_0x13cf02[_0x5061('0x2e')][_0x5061('0x3d')]){_0x50ca9d[_0x5061('0x3e')]=[{'all':!![]}];}return db[_0x5061('0x28')][_0x5061('0x3f')](_0x50ca9d);})['then'](function(_0x9fcf8c){_0x5d3ac2['rows']=_0x9fcf8c;return _0x5d3ac2;})[_0x5061('0x22')](respondWithFilteredResult(_0x5951af,_0x50ca9d))[_0x5061('0x40')](handleError(_0x5951af,null));};exports['show']=function(_0x49f72f,_0x1a555d){var _0x370ed3={'raw':!![],'where':{'id':_0x49f72f[_0x5061('0x41')]['id']}},_0x409fcd={};_0x409fcd[_0x5061('0x2c')]=_[_0x5061('0x42')](db[_0x5061('0x28')]['rawAttributes']);_0x409fcd[_0x5061('0x2e')]=_['keys'](_0x49f72f[_0x5061('0x2e')]);_0x409fcd['filters']=_[_0x5061('0x30')](_0x409fcd['model'],_0x409fcd[_0x5061('0x2e')]);_0x370ed3[_0x5061('0x31')]=_[_0x5061('0x30')](_0x409fcd[_0x5061('0x2c')],qs[_0x5061('0x32')](_0x49f72f['query']['fields']));_0x370ed3[_0x5061('0x31')]=_0x370ed3[_0x5061('0x31')][_0x5061('0x43')]?_0x370ed3[_0x5061('0x31')]:_0x409fcd[_0x5061('0x2c')];if(_0x49f72f['query'][_0x5061('0x3d')]){_0x370ed3[_0x5061('0x3e')]=[{'all':!![]}];}_0x370ed3=_[_0x5061('0x3a')]({},_0x370ed3,_0x49f72f[_0x5061('0x3c')]);return db['SquareRecording']['find'](_0x370ed3)[_0x5061('0x22')](handleEntityNotFound(_0x1a555d,null))['then'](respondWithResult(_0x1a555d,null))['catch'](handleError(_0x1a555d,null));};exports[_0x5061('0x44')]=function(_0x56dcd0,_0x485e21){return db[_0x5061('0x28')][_0x5061('0x44')](_0x56dcd0[_0x5061('0x45')],{})[_0x5061('0x22')](respondWithResult(_0x485e21,0xc9))[_0x5061('0x40')](handleError(_0x485e21,null));};exports[_0x5061('0x46')]=function(_0xcf5300,_0x503b43){if(_0xcf5300[_0x5061('0x45')]['id']){delete _0xcf5300[_0x5061('0x45')]['id'];}return db[_0x5061('0x28')][_0x5061('0x47')]({'where':{'id':_0xcf5300['params']['id']}})['then'](handleEntityNotFound(_0x503b43,null))['then'](saveUpdates(_0xcf5300[_0x5061('0x45')],null))['then'](respondWithResult(_0x503b43,null))['catch'](handleError(_0x503b43,null));};exports[_0x5061('0x48')]=function(_0x37037b,_0x398629,_0xaace8e){var _0x6dd2e0=require(_0x5061('0x49'));var _0x11b718=![];var _0x389c1e={};if(_0x37037b[_0x5061('0x2e')][_0x5061('0x2b')]&&_0x37037b[_0x5061('0x2e')][_0x5061('0x2b')]===_0x5061('0x4a')){_0x389c1e[_0x5061('0x4a')]=_0x37037b[_0x5061('0x41')]['id'];}else{_0x389c1e['id']=_0x37037b['params']['id'];}return db[_0x5061('0x28')]['find']({'where':_0x389c1e,'attributes':['id',_0x5061('0x4b'),_0x5061('0x4c')],'raw':!![]})[_0x5061('0x22')](handleEntityNotFound(_0x398629,null))[_0x5061('0x22')](function(_0x4d39c1){if(_0x4d39c1){var _0x3e9ec7=_0x4d39c1[_0x5061('0x4b')];var _0x2524bd=util[_0x5061('0x4d')](_0x5061('0x4e'),_0x3e9ec7);if(fs[_0x5061('0x4f')](_0x2524bd)){_0x11b718=!![];return _0x6dd2e0[_0x5061('0x50')](_0x2524bd,_0x3e9ec7,config[_0x5061('0x51')]['recording'])[_0x5061('0x22')](function(){return _0x4d39c1;});}return _0x4d39c1;}})[_0x5061('0x22')](function(_0x417180){if(_0x417180){var _0x2acc6e=_0x417180['savePath'];if(!fs['existsSync'](_0x2acc6e)){throw new db[(_0x5061('0x52'))][(_0x5061('0x53'))](_0x5061('0x54'));}if(_0x417180[_0x5061('0x4c')]){return _0x398629[_0x5061('0x48')](_0x2acc6e,_0x417180[_0x5061('0x4c')]+path[_0x5061('0x55')](_0x2acc6e),function(){if(_0x11b718){fs[_0x5061('0x56')](_0x2acc6e);}});}else{return _0x398629[_0x5061('0x48')](_0x2acc6e,function(_0x551bc5){if(_0x11b718){fs[_0x5061('0x56')](_0x2acc6e);}});}}})[_0x5061('0x40')](function(_0xb48568){if(_0xb48568['message']==='SquareRecording\x20not\x20found'){_0x398629[_0x5061('0x18')](0x194)[_0x5061('0x26')](_0x5061('0x57'));}else{return handleError(_0x398629,null);}});};exports[_0x5061('0x23')]=function(_0x532136,_0x35456b){return db['SquareRecording'][_0x5061('0x47')]({'where':{'id':_0x532136[_0x5061('0x41')]['id']}})[_0x5061('0x22')](function(_0x5d61bd){if(_[_0x5061('0x58')](_0x5d61bd)){throw new ReferenceError(_0x5061('0x59'));}return _0x5d61bd;})[_0x5061('0x22')](function(_0x16e4a0){var _0x1e8193=_0x16e4a0[_0x5061('0x4b')];logger[_0x5061('0x5a')](_0x5061('0x5b'),_0x1e8193);if(!_[_0x5061('0x58')](_0x16e4a0[_0x5061('0x4b')])&&fs[_0x5061('0x4f')](_0x1e8193)){logger[_0x5061('0x5a')](_0x5061('0x5c')+_0x1e8193+'\x22\x20trovato\x20eseguo\x20la\x20cancellazione');fs['unlinkSync'](_0x1e8193);}_0x1e8193=_0x1e8193+_0x5061('0x5d');if(!_['isNil'](_0x16e4a0[_0x5061('0x4b')])&&fs[_0x5061('0x4f')](_0x1e8193)){logger['info'](_0x5061('0x5c')+_0x1e8193+_0x5061('0x5e'));fs['unlinkSync'](_0x1e8193);}return _0x16e4a0;})[_0x5061('0x22')](function(_0x3c229f){if(!_0x3c229f)throw new InternalError();return _0x3c229f[_0x5061('0x23')]();})[_0x5061('0x22')](function(){_0x35456b['status'](0xcc)[_0x5061('0x19')]();})[_0x5061('0x40')](handleError(_0x35456b,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9536=['lodash','util','../../config/logger','api','bluebird','path','rimraf','../../config/environment','./squareRecording.attributes','exports','define','SquareRecording','square_recordings'];(function(_0x1efb64,_0xb996c6){var _0x1d4cfa=function(_0x2bdc48){while(--_0x2bdc48){_0x1efb64['push'](_0x1efb64['shift']());}};_0x1d4cfa(++_0xb996c6);}(_0x9536,0x179));var _0x6953=function(_0x374ada,_0x27b3a5){_0x374ada=_0x374ada-0x0;var _0x449ed8=_0x9536[_0x374ada];return _0x449ed8;};'use strict';var _=require(_0x6953('0x0'));var util=require(_0x6953('0x1'));var logger=require(_0x6953('0x2'))(_0x6953('0x3'));var moment=require('moment');var BPromise=require(_0x6953('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x6953('0x5'));var rimraf=require(_0x6953('0x6'));var config=require(_0x6953('0x7'));var attributes=require(_0x6953('0x8'));module[_0x6953('0x9')]=function(_0x494ac2,_0x2b273e){return _0x494ac2[_0x6953('0xa')](_0x6953('0xb'),attributes,{'tableName':_0x6953('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x1c23=['square_recordings','lodash','util','../../config/logger','api','moment','bluebird','path','rimraf','./squareRecording.attributes','exports','define'];(function(_0x132f36,_0x3f303b){var _0x5d80db=function(_0x373a67){while(--_0x373a67){_0x132f36['push'](_0x132f36['shift']());}};_0x5d80db(++_0x3f303b);}(_0x1c23,0x1d5));var _0x31c2=function(_0x328c70,_0xf451ae){_0x328c70=_0x328c70-0x0;var _0x355ea2=_0x1c23[_0x328c70];return _0x355ea2;};'use strict';var _=require(_0x31c2('0x0'));var util=require(_0x31c2('0x1'));var logger=require(_0x31c2('0x2'))(_0x31c2('0x3'));var moment=require(_0x31c2('0x4'));var BPromise=require(_0x31c2('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x31c2('0x6'));var rimraf=require(_0x31c2('0x7'));var config=require('../../config/environment');var attributes=require(_0x31c2('0x8'));module[_0x31c2('0x9')]=function(_0x12c3d3,_0x21dbdc){return _0x12c3d3[_0x31c2('0xa')]('SquareRecording',attributes,{'tableName':_0x31c2('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3276=['ioredis','../../mysqldb','../../config/logger','rpc','jayson/promise','http','then','request\x20sent','debug','SquareRecording,\x20%s,\x20%s,\x20%s','stringify','error','code','SquareRecording,\x20%s,\x20%s','message','info','result','CreateSquareRecording','SquareRecording','create','body','options','raw','catch','lodash','util','moment','bluebird'];(function(_0x574d45,_0x1bb779){var _0xdef3cb=function(_0x438bd9){while(--_0x438bd9){_0x574d45['push'](_0x574d45['shift']());}};_0xdef3cb(++_0x1bb779);}(_0x3276,0xdc));var _0x6327=function(_0xfee2a7,_0x15884d){_0xfee2a7=_0xfee2a7-0x0;var _0x34d1fa=_0x3276[_0xfee2a7];return _0x34d1fa;};'use strict';var _=require(_0x6327('0x0'));var util=require(_0x6327('0x1'));var moment=require(_0x6327('0x2'));var BPromise=require(_0x6327('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x6327('0x4'));var db=require(_0x6327('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0x6327('0x6'))(_0x6327('0x7'));var config=require('../../config/environment');var jayson=require(_0x6327('0x8'));var client=jayson['client'][_0x6327('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x24160d,_0x156013,_0xe4250c){return new BPromise(function(_0x1d8b88,_0x242221){return client['request'](_0x24160d,_0xe4250c)[_0x6327('0xa')](function(_0x5634eb){logger['info']('SquareRecording,\x20%s,\x20%s',_0x156013,_0x6327('0xb'));logger[_0x6327('0xc')](_0x6327('0xd'),_0x156013,_0x6327('0xb'),JSON[_0x6327('0xe')](_0x5634eb));if(_0x5634eb[_0x6327('0xf')]){if(_0x5634eb[_0x6327('0xf')][_0x6327('0x10')]===0x1f4){logger['error'](_0x6327('0x11'),_0x156013,_0x5634eb[_0x6327('0xf')][_0x6327('0x12')]);return _0x242221(_0x5634eb[_0x6327('0xf')]['message']);}logger[_0x6327('0xf')](_0x6327('0x11'),_0x156013,_0x5634eb['error'][_0x6327('0x12')]);return _0x1d8b88(_0x5634eb[_0x6327('0xf')][_0x6327('0x12')]);}else{logger[_0x6327('0x13')]('SquareRecording,\x20%s,\x20%s',_0x156013,_0x6327('0xb'));_0x1d8b88(_0x5634eb[_0x6327('0x14')][_0x6327('0x12')]);}})['catch'](function(_0x2dc459){logger[_0x6327('0xf')](_0x6327('0x11'),_0x156013,_0x2dc459);_0x242221(_0x2dc459);});});}exports[_0x6327('0x15')]=function(_0x524fcb){var _0x783359=this;return new Promise(function(_0x584aad,_0x55d8ca){return db[_0x6327('0x16')][_0x6327('0x17')](_0x524fcb[_0x6327('0x18')],{'raw':_0x524fcb[_0x6327('0x19')]?_0x524fcb[_0x6327('0x19')][_0x6327('0x1a')]===undefined?!![]:![]:!![]})['then'](function(_0x57e255){logger[_0x6327('0x13')]('CreateSquareRecording',_0x524fcb);logger[_0x6327('0xc')](_0x6327('0x15'),_0x524fcb,JSON[_0x6327('0xe')](_0x57e255));_0x584aad(_0x57e255);})[_0x6327('0x1b')](function(_0x23a200){logger[_0x6327('0xf')](_0x6327('0x15'),_0x23a200['message'],_0x524fcb);_0x55d8ca(_0x783359[_0x6327('0xf')](0x1f4,_0x23a200[_0x6327('0x12')]));});});};
\ No newline at end of file
+var _0x7b05=['debug','stringify','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','SquareRecording,\x20%s,\x20%s','SquareRecording,\x20%s,\x20%s,\x20%s','request\x20sent','error','code','message','result','catch','CreateSquareRecording','SquareRecording','create','body','options','raw'];(function(_0xd0b415,_0x149675){var _0x2bdf2c=function(_0x59fbfa){while(--_0x59fbfa){_0xd0b415['push'](_0xd0b415['shift']());}};_0x2bdf2c(++_0x149675);}(_0x7b05,0xc2));var _0x57b0=function(_0x16a637,_0x5eb627){_0x16a637=_0x16a637-0x0;var _0x25126d=_0x7b05[_0x16a637];return _0x25126d;};'use strict';var _=require(_0x57b0('0x0'));var util=require(_0x57b0('0x1'));var moment=require(_0x57b0('0x2'));var BPromise=require(_0x57b0('0x3'));var rs=require(_0x57b0('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x57b0('0x5'))['db'];var utils=require(_0x57b0('0x6'));var logger=require(_0x57b0('0x7'))(_0x57b0('0x8'));var config=require(_0x57b0('0x9'));var jayson=require(_0x57b0('0xa'));var client=jayson[_0x57b0('0xb')][_0x57b0('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x46e3df,_0xb07d2,_0x25f286){return new BPromise(function(_0x15d130,_0x11bac4){return client[_0x57b0('0xd')](_0x46e3df,_0x25f286)[_0x57b0('0xe')](function(_0x293d84){logger[_0x57b0('0xf')](_0x57b0('0x10'),_0xb07d2,'request\x20sent');logger['debug'](_0x57b0('0x11'),_0xb07d2,_0x57b0('0x12'),JSON['stringify'](_0x293d84));if(_0x293d84[_0x57b0('0x13')]){if(_0x293d84[_0x57b0('0x13')][_0x57b0('0x14')]===0x1f4){logger[_0x57b0('0x13')](_0x57b0('0x10'),_0xb07d2,_0x293d84[_0x57b0('0x13')][_0x57b0('0x15')]);return _0x11bac4(_0x293d84[_0x57b0('0x13')][_0x57b0('0x15')]);}logger[_0x57b0('0x13')](_0x57b0('0x10'),_0xb07d2,_0x293d84['error']['message']);return _0x15d130(_0x293d84[_0x57b0('0x13')][_0x57b0('0x15')]);}else{logger[_0x57b0('0xf')](_0x57b0('0x10'),_0xb07d2,_0x57b0('0x12'));_0x15d130(_0x293d84[_0x57b0('0x16')][_0x57b0('0x15')]);}})[_0x57b0('0x17')](function(_0x4493b4){logger[_0x57b0('0x13')](_0x57b0('0x10'),_0xb07d2,_0x4493b4);_0x11bac4(_0x4493b4);});});}exports[_0x57b0('0x18')]=function(_0x110daf){var _0x585249=this;return new Promise(function(_0x3c9157,_0x2d2a04){return db[_0x57b0('0x19')][_0x57b0('0x1a')](_0x110daf[_0x57b0('0x1b')],{'raw':_0x110daf[_0x57b0('0x1c')]?_0x110daf[_0x57b0('0x1c')][_0x57b0('0x1d')]===undefined?!![]:![]:!![]})[_0x57b0('0xe')](function(_0xc2dc17){logger['info'](_0x57b0('0x18'),_0x110daf);logger[_0x57b0('0x1e')](_0x57b0('0x18'),_0x110daf,JSON[_0x57b0('0x1f')](_0xc2dc17));_0x3c9157(_0xc2dc17);})[_0x57b0('0x17')](function(_0x3ec429){logger[_0x57b0('0x13')](_0x57b0('0x18'),_0x3ec429['message'],_0x110daf);_0x2d2a04(_0x585249[_0x57b0('0x13')](0x1f4,_0x3ec429[_0x57b0('0x15')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd8b0=['destroy','exports','multer','util','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','isAuthenticated','index','get','describe','/:id','show','post','create','put','update'];(function(_0x24c55d,_0x35e9f0){var _0x3776ba=function(_0x45c5e0){while(--_0x45c5e0){_0x24c55d['push'](_0x24c55d['shift']());}};_0x3776ba(++_0x35e9f0);}(_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'));var controller=require('./squareReport.controller');router['get']('/',auth[_0x0d8b('0x7')](),controller[_0x0d8b('0x8')]);router[_0x0d8b('0x9')]('/describe',auth[_0x0d8b('0x7')](),controller[_0x0d8b('0xa')]);router['get'](_0x0d8b('0xb'),auth[_0x0d8b('0x7')](),controller[_0x0d8b('0xc')]);router[_0x0d8b('0xd')]('/',auth[_0x0d8b('0x7')](),controller[_0x0d8b('0xe')]);router[_0x0d8b('0xf')](_0x0d8b('0xb'),auth['isAuthenticated'](),controller[_0x0d8b('0x10')]);router['delete'](_0x0d8b('0xb'),auth[_0x0d8b('0x7')](),controller[_0x0d8b('0x11')]);module[_0x0d8b('0x12')]=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(_0x4e9a79,_0x230572){var _0x214622=function(_0x55ade9){while(--_0x55ade9){_0x4e9a79['push'](_0x4e9a79['shift']());}};_0x214622(++_0x230572);}(_0xbaf0,0x12a));var _0x0baf=function(_0x501510,_0x61caa9){_0x501510=_0x501510-0x0;var _0x1e6ee5=_0xbaf0[_0x501510];return _0x1e6ee5;};'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 _0xed27=['DATE','BOOLEAN','sequelize','exports','STRING'];(function(_0x31814c,_0x127a54){var _0x43ca9b=function(_0x378fc6){while(--_0x378fc6){_0x31814c['push'](_0x31814c['shift']());}};_0x43ca9b(++_0x127a54);}(_0xed27,0x183));var _0x7ed2=function(_0x3e10c1,_0x4130f9){_0x3e10c1=_0x3e10c1-0x0;var _0x290c32=_0xed27[_0x3e10c1];return _0x290c32;};'use strict';var Sequelize=require(_0x7ed2('0x0'));module[_0x7ed2('0x1')]={'network':{'type':Sequelize[_0x7ed2('0x2')]},'network_script':{'type':Sequelize['STRING']},'request':{'type':Sequelize[_0x7ed2('0x2')]},'channel':{'type':Sequelize[_0x7ed2('0x2')]},'language':{'type':Sequelize[_0x7ed2('0x2')]},'type':{'type':Sequelize[_0x7ed2('0x2')]},'uniqueid':{'type':Sequelize[_0x7ed2('0x2')]},'version':{'type':Sequelize['STRING']},'callerid':{'type':Sequelize[_0x7ed2('0x2')]},'calleridname':{'type':Sequelize[_0x7ed2('0x2')]},'callingpres':{'type':Sequelize[_0x7ed2('0x2')]},'callingani2':{'type':Sequelize[_0x7ed2('0x2')]},'callington':{'type':Sequelize[_0x7ed2('0x2')]},'callingtns':{'type':Sequelize[_0x7ed2('0x2')]},'dnid':{'type':Sequelize[_0x7ed2('0x2')]},'rdnis':{'type':Sequelize[_0x7ed2('0x2')]},'context':{'type':Sequelize[_0x7ed2('0x2')]},'extension':{'type':Sequelize[_0x7ed2('0x2')]},'priority':{'type':Sequelize['STRING']},'enhanced':{'type':Sequelize[_0x7ed2('0x2')]},'accountcode':{'type':Sequelize['STRING']},'threadid':{'type':Sequelize[_0x7ed2('0x2')]},'project_name':{'type':Sequelize['STRING']},'joinAt':{'type':Sequelize['DATE']},'leaveAt':{'type':Sequelize[_0x7ed2('0x3')]},'bot':{'type':Sequelize[_0x7ed2('0x4')],'defaultValue':![]}};
\ No newline at end of file
+var _0x5482=['STRING','DATE','BOOLEAN','sequelize'];(function(_0x3ac769,_0x2825df){var _0x2185eb=function(_0x43cc1d){while(--_0x43cc1d){_0x3ac769['push'](_0x3ac769['shift']());}};_0x2185eb(++_0x2825df);}(_0x5482,0x113));var _0x2548=function(_0x23cc7d,_0x553e85){_0x23cc7d=_0x23cc7d-0x0;var _0x41abb3=_0x5482[_0x23cc7d];return _0x41abb3;};'use strict';var Sequelize=require(_0x2548('0x0'));module['exports']={'network':{'type':Sequelize['STRING']},'network_script':{'type':Sequelize['STRING']},'request':{'type':Sequelize[_0x2548('0x1')]},'channel':{'type':Sequelize[_0x2548('0x1')]},'language':{'type':Sequelize[_0x2548('0x1')]},'type':{'type':Sequelize['STRING']},'uniqueid':{'type':Sequelize['STRING']},'version':{'type':Sequelize['STRING']},'callerid':{'type':Sequelize[_0x2548('0x1')]},'calleridname':{'type':Sequelize[_0x2548('0x1')]},'callingpres':{'type':Sequelize['STRING']},'callingani2':{'type':Sequelize[_0x2548('0x1')]},'callington':{'type':Sequelize[_0x2548('0x1')]},'callingtns':{'type':Sequelize[_0x2548('0x1')]},'dnid':{'type':Sequelize[_0x2548('0x1')]},'rdnis':{'type':Sequelize[_0x2548('0x1')]},'context':{'type':Sequelize['STRING']},'extension':{'type':Sequelize['STRING']},'priority':{'type':Sequelize[_0x2548('0x1')]},'enhanced':{'type':Sequelize[_0x2548('0x1')]},'accountcode':{'type':Sequelize['STRING']},'threadid':{'type':Sequelize[_0x2548('0x1')]},'project_name':{'type':Sequelize['STRING']},'joinAt':{'type':Sequelize[_0x2548('0x2')]},'leaveAt':{'type':Sequelize[_0x2548('0x2')]},'bot':{'type':Sequelize[_0x2548('0x3')],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xaf76=['destroy','stack','name','send','index','map','SquareReport','rawAttributes','fieldName','type','key','model','query','filters','intersection','fields','length','attributes','hasOwnProperty','order','sort','where','pick','filter','merge','options','count','includeAll','include','catch','params','keys','find','create','body','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../mysqldb','sendStatus','status','end','offset','undefined','limit','set','Content-Range','json','apply','reject','save','update','then'];(function(_0x59447b,_0x2ec4f5){var _0x1abe40=function(_0x1b2169){while(--_0x1b2169){_0x59447b['push'](_0x59447b['shift']());}};_0x1abe40(++_0x2ec4f5);}(_0xaf76,0x1f2));var _0x6af7=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xaf76[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require(_0x6af7('0x0'));var rimraf=require(_0x6af7('0x1'));var zipdir=require(_0x6af7('0x2'));var jsonpatch=require(_0x6af7('0x3'));var rp=require(_0x6af7('0x4'));var moment=require('moment');var BPromise=require(_0x6af7('0x5'));var Mustache=require(_0x6af7('0x6'));var util=require(_0x6af7('0x7'));var path=require(_0x6af7('0x8'));var sox=require(_0x6af7('0x9'));var csv=require(_0x6af7('0xa'));var ejs=require(_0x6af7('0xb'));var fs=require('fs');var fs_extra=require(_0x6af7('0xc'));var _=require(_0x6af7('0xd'));var squel=require(_0x6af7('0xe'));var crypto=require('crypto');var jsforce=require(_0x6af7('0xf'));var deskjs=require(_0x6af7('0x10'));var toCsv=require(_0x6af7('0xa'));var querystring=require(_0x6af7('0x11'));var Papa=require(_0x6af7('0x12'));var Redis=require(_0x6af7('0x13'));var authService=require('../../components/auth/service');var qs=require(_0x6af7('0x14'));var as=require(_0x6af7('0x15'));var hardwareService=require(_0x6af7('0x16'));var logger=require(_0x6af7('0x17'))(_0x6af7('0x18'));var utils=require(_0x6af7('0x19'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x6af7('0x1a'))['db'];function respondWithStatusCode(_0x53075c,_0x1b2278){_0x1b2278=_0x1b2278||0xcc;return function(_0x1d6910){if(_0x1d6910){return _0x53075c[_0x6af7('0x1b')](_0x1b2278);}return _0x53075c[_0x6af7('0x1c')](_0x1b2278)[_0x6af7('0x1d')]();};}function respondWithResult(_0x2c8e52,_0x589a6f){_0x589a6f=_0x589a6f||0xc8;return function(_0x4acc31){if(_0x4acc31){return _0x2c8e52[_0x6af7('0x1c')](_0x589a6f)['json'](_0x4acc31);}};}function respondWithFilteredResult(_0x3d7e5e,_0x400a95){return function(_0x3a50cd){if(_0x3a50cd){var _0x7f9275=typeof _0x400a95[_0x6af7('0x1e')]===_0x6af7('0x1f')&&typeof _0x400a95['limit']===_0x6af7('0x1f');var _0x28a468=_0x3a50cd['count'];var _0x269300=_0x7f9275?0x0:_0x400a95[_0x6af7('0x1e')];var _0xb3fdf0=_0x7f9275?_0x3a50cd['count']:_0x400a95['offset']+_0x400a95[_0x6af7('0x20')];var _0x5c6d7a;if(_0xb3fdf0>=_0x28a468){_0xb3fdf0=_0x28a468;_0x5c6d7a=0xc8;}else{_0x5c6d7a=0xce;}_0x3d7e5e[_0x6af7('0x1c')](_0x5c6d7a);return _0x3d7e5e[_0x6af7('0x21')](_0x6af7('0x22'),_0x269300+'-'+_0xb3fdf0+'/'+_0x28a468)[_0x6af7('0x23')](_0x3a50cd);}return null;};}function patchUpdates(_0x308f98){return function(_0x5ee9fd){try{jsonpatch[_0x6af7('0x24')](_0x5ee9fd,_0x308f98,!![]);}catch(_0x3a4c91){return BPromise[_0x6af7('0x25')](_0x3a4c91);}return _0x5ee9fd[_0x6af7('0x26')]();};}function saveUpdates(_0x232b59,_0x3ebee4){return function(_0x34eca1){if(_0x34eca1){return _0x34eca1[_0x6af7('0x27')](_0x232b59)[_0x6af7('0x28')](function(_0x330984){return _0x330984;});}return null;};}function removeEntity(_0xbe92ed,_0x872af1){return function(_0xd23d11){if(_0xd23d11){return _0xd23d11[_0x6af7('0x29')]()[_0x6af7('0x28')](function(){_0xbe92ed[_0x6af7('0x1c')](0xcc)[_0x6af7('0x1d')]();});}};}function handleEntityNotFound(_0x49a17d,_0x515baf){return function(_0x1b11f7){if(!_0x1b11f7){_0x49a17d['sendStatus'](0x194);}return _0x1b11f7;};}function handleError(_0x19e0f3,_0x37a1f6){_0x37a1f6=_0x37a1f6||0x1f4;return function(_0xc270d0){logger['error'](_0xc270d0[_0x6af7('0x2a')]);if(_0xc270d0[_0x6af7('0x2b')]){delete _0xc270d0[_0x6af7('0x2b')];}_0x19e0f3[_0x6af7('0x1c')](_0x37a1f6)[_0x6af7('0x2c')](_0xc270d0);};}exports[_0x6af7('0x2d')]=function(_0x3b07e8,_0x35f2c7){var _0x163ce8={},_0x26fbbb={},_0x1db942={'count':0x0,'rows':[]};var _0x2fc1ad=_[_0x6af7('0x2e')](db[_0x6af7('0x2f')][_0x6af7('0x30')],function(_0x1541cc){return{'name':_0x1541cc[_0x6af7('0x31')],'type':_0x1541cc[_0x6af7('0x32')][_0x6af7('0x33')]};});_0x26fbbb[_0x6af7('0x34')]=_['map'](_0x2fc1ad,'name');_0x26fbbb[_0x6af7('0x35')]=_['keys'](_0x3b07e8['query']);_0x26fbbb[_0x6af7('0x36')]=_[_0x6af7('0x37')](_0x26fbbb[_0x6af7('0x34')],_0x26fbbb['query']);_0x163ce8['attributes']=_[_0x6af7('0x37')](_0x26fbbb[_0x6af7('0x34')],qs[_0x6af7('0x38')](_0x3b07e8[_0x6af7('0x35')][_0x6af7('0x38')]));_0x163ce8['attributes']=_0x163ce8['attributes'][_0x6af7('0x39')]?_0x163ce8[_0x6af7('0x3a')]:_0x26fbbb['model'];if(!_0x3b07e8[_0x6af7('0x35')][_0x6af7('0x3b')]('nolimit')){_0x163ce8['limit']=qs['limit'](_0x3b07e8[_0x6af7('0x35')][_0x6af7('0x20')]);_0x163ce8['offset']=qs['offset'](_0x3b07e8[_0x6af7('0x35')][_0x6af7('0x1e')]);}_0x163ce8[_0x6af7('0x3c')]=qs[_0x6af7('0x3d')](_0x3b07e8['query'][_0x6af7('0x3d')]);_0x163ce8[_0x6af7('0x3e')]=qs[_0x6af7('0x36')](_[_0x6af7('0x3f')](_0x3b07e8[_0x6af7('0x35')],_0x26fbbb[_0x6af7('0x36')]),_0x2fc1ad);if(_0x3b07e8[_0x6af7('0x35')][_0x6af7('0x40')]){_0x163ce8[_0x6af7('0x3e')]=_[_0x6af7('0x41')](_0x163ce8[_0x6af7('0x3e')],{'$or':_[_0x6af7('0x2e')](_0x2fc1ad,function(_0x36b676){if(_0x36b676[_0x6af7('0x32')]!=='VIRTUAL'){var _0x3aed6a={};_0x3aed6a[_0x36b676[_0x6af7('0x2b')]]={'$like':'%'+_0x3b07e8[_0x6af7('0x35')][_0x6af7('0x40')]+'%'};return _0x3aed6a;}})});}_0x163ce8=_[_0x6af7('0x41')]({},_0x163ce8,_0x3b07e8[_0x6af7('0x42')]);var _0x59b70a={'where':_0x163ce8['where']};return db['SquareReport'][_0x6af7('0x43')](_0x59b70a)['then'](function(_0x53de2b){_0x1db942[_0x6af7('0x43')]=_0x53de2b;if(_0x3b07e8[_0x6af7('0x35')][_0x6af7('0x44')]){_0x163ce8[_0x6af7('0x45')]=[{'all':!![]}];}return db[_0x6af7('0x2f')]['findAll'](_0x163ce8);})[_0x6af7('0x28')](function(_0x412a33){_0x1db942['rows']=_0x412a33;return _0x1db942;})['then'](respondWithFilteredResult(_0x35f2c7,_0x163ce8))[_0x6af7('0x46')](handleError(_0x35f2c7,null));};exports['show']=function(_0x646da6,_0x19985d){var _0x2ab69b={'raw':!![],'where':{'id':_0x646da6[_0x6af7('0x47')]['id']}},_0x6d1a2a={};_0x6d1a2a[_0x6af7('0x34')]=_[_0x6af7('0x48')](db[_0x6af7('0x2f')][_0x6af7('0x30')]);_0x6d1a2a[_0x6af7('0x35')]=_[_0x6af7('0x48')](_0x646da6[_0x6af7('0x35')]);_0x6d1a2a[_0x6af7('0x36')]=_[_0x6af7('0x37')](_0x6d1a2a['model'],_0x6d1a2a[_0x6af7('0x35')]);_0x2ab69b['attributes']=_['intersection'](_0x6d1a2a[_0x6af7('0x34')],qs[_0x6af7('0x38')](_0x646da6[_0x6af7('0x35')][_0x6af7('0x38')]));_0x2ab69b[_0x6af7('0x3a')]=_0x2ab69b[_0x6af7('0x3a')]['length']?_0x2ab69b[_0x6af7('0x3a')]:_0x6d1a2a[_0x6af7('0x34')];if(_0x646da6[_0x6af7('0x35')][_0x6af7('0x44')]){_0x2ab69b[_0x6af7('0x45')]=[{'all':!![]}];}_0x2ab69b=_['merge']({},_0x2ab69b,_0x646da6[_0x6af7('0x42')]);return db[_0x6af7('0x2f')][_0x6af7('0x49')](_0x2ab69b)[_0x6af7('0x28')](handleEntityNotFound(_0x19985d,null))[_0x6af7('0x28')](respondWithResult(_0x19985d,null))[_0x6af7('0x46')](handleError(_0x19985d,null));};exports[_0x6af7('0x4a')]=function(_0x326bd9,_0x18320f){return db[_0x6af7('0x2f')]['create'](_0x326bd9['body'],{})['then'](respondWithResult(_0x18320f,0xc9))[_0x6af7('0x46')](handleError(_0x18320f,null));};exports[_0x6af7('0x27')]=function(_0x574ba7,_0x4c0ef9){if(_0x574ba7[_0x6af7('0x4b')]['id']){delete _0x574ba7[_0x6af7('0x4b')]['id'];}return db[_0x6af7('0x2f')]['find']({'where':{'id':_0x574ba7[_0x6af7('0x47')]['id']}})[_0x6af7('0x28')](handleEntityNotFound(_0x4c0ef9,null))[_0x6af7('0x28')](saveUpdates(_0x574ba7[_0x6af7('0x4b')],null))[_0x6af7('0x28')](respondWithResult(_0x4c0ef9,null))['catch'](handleError(_0x4c0ef9,null));};exports[_0x6af7('0x29')]=function(_0x401085,_0x455b5f){return db[_0x6af7('0x2f')][_0x6af7('0x49')]({'where':{'id':_0x401085[_0x6af7('0x47')]['id']}})[_0x6af7('0x28')](handleEntityNotFound(_0x455b5f,null))[_0x6af7('0x28')](removeEntity(_0x455b5f,null))['catch'](handleError(_0x455b5f,null));};exports[_0x6af7('0x4c')]=function(_0x1e0df9,_0x38896e){return db[_0x6af7('0x2f')][_0x6af7('0x4c')]()[_0x6af7('0x28')](respondWithResult(_0x38896e,null))[_0x6af7('0x46')](handleError(_0x38896e,null));};
\ No newline at end of file
+var _0x5197=['count','Content-Range','apply','reject','save','update','then','error','name','send','index','map','SquareReport','rawAttributes','fieldName','query','filters','intersection','attributes','fields','nolimit','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','catch','show','params','model','keys','length','find','create','body','destroy','describe','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','ejs','fs-extra','desk.js','querystring','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit'];(function(_0x28b7ab,_0x16a764){var _0x56791b=function(_0x25d20d){while(--_0x25d20d){_0x28b7ab['push'](_0x28b7ab['shift']());}};_0x56791b(++_0x16a764);}(_0x5197,0x135));var _0x7519=function(_0x54d4a8,_0x585a59){_0x54d4a8=_0x54d4a8-0x0;var _0x3b321b=_0x5197[_0x54d4a8];return _0x3b321b;};'use strict';var emlformat=require(_0x7519('0x0'));var rimraf=require(_0x7519('0x1'));var zipdir=require(_0x7519('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x7519('0x3'));var moment=require(_0x7519('0x4'));var BPromise=require(_0x7519('0x5'));var Mustache=require(_0x7519('0x6'));var util=require(_0x7519('0x7'));var path=require(_0x7519('0x8'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x7519('0x9'));var fs=require('fs');var fs_extra=require(_0x7519('0xa'));var _=require('lodash');var squel=require('squel');var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x7519('0xb'));var toCsv=require('to-csv');var querystring=require(_0x7519('0xc'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x7519('0xd'));var qs=require('../../components/parsers/qs');var as=require(_0x7519('0xe'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x7519('0xf'))(_0x7519('0x10'));var utils=require(_0x7519('0x11'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x7519('0x12'))['db'];function respondWithStatusCode(_0x378862,_0x194602){_0x194602=_0x194602||0xcc;return function(_0x1f3f41){if(_0x1f3f41){return _0x378862[_0x7519('0x13')](_0x194602);}return _0x378862[_0x7519('0x14')](_0x194602)[_0x7519('0x15')]();};}function respondWithResult(_0x3995d8,_0x114027){_0x114027=_0x114027||0xc8;return function(_0x495a46){if(_0x495a46){return _0x3995d8[_0x7519('0x14')](_0x114027)[_0x7519('0x16')](_0x495a46);}};}function respondWithFilteredResult(_0x213ee3,_0x527170){return function(_0x425018){if(_0x425018){var _0xc1a4d0=typeof _0x527170[_0x7519('0x17')]===_0x7519('0x18')&&typeof _0x527170[_0x7519('0x19')]===_0x7519('0x18');var _0x2f114f=_0x425018[_0x7519('0x1a')];var _0x4e962c=_0xc1a4d0?0x0:_0x527170[_0x7519('0x17')];var _0x520a84=_0xc1a4d0?_0x425018[_0x7519('0x1a')]:_0x527170[_0x7519('0x17')]+_0x527170[_0x7519('0x19')];var _0x44bf35;if(_0x520a84>=_0x2f114f){_0x520a84=_0x2f114f;_0x44bf35=0xc8;}else{_0x44bf35=0xce;}_0x213ee3[_0x7519('0x14')](_0x44bf35);return _0x213ee3['set'](_0x7519('0x1b'),_0x4e962c+'-'+_0x520a84+'/'+_0x2f114f)[_0x7519('0x16')](_0x425018);}return null;};}function patchUpdates(_0x5b1686){return function(_0x27eb13){try{jsonpatch[_0x7519('0x1c')](_0x27eb13,_0x5b1686,!![]);}catch(_0x17efbb){return BPromise[_0x7519('0x1d')](_0x17efbb);}return _0x27eb13[_0x7519('0x1e')]();};}function saveUpdates(_0x1d7727,_0xfe3803){return function(_0x2dd1b2){if(_0x2dd1b2){return _0x2dd1b2[_0x7519('0x1f')](_0x1d7727)[_0x7519('0x20')](function(_0x31f5aa){return _0x31f5aa;});}return null;};}function removeEntity(_0xb5f93,_0xba88be){return function(_0x2d34fe){if(_0x2d34fe){return _0x2d34fe['destroy']()[_0x7519('0x20')](function(){_0xb5f93[_0x7519('0x14')](0xcc)['end']();});}};}function handleEntityNotFound(_0x26ba23,_0x1c258c){return function(_0x2c3c1e){if(!_0x2c3c1e){_0x26ba23[_0x7519('0x13')](0x194);}return _0x2c3c1e;};}function handleError(_0x594140,_0x3197f5){_0x3197f5=_0x3197f5||0x1f4;return function(_0x1ac75b){logger[_0x7519('0x21')](_0x1ac75b['stack']);if(_0x1ac75b['name']){delete _0x1ac75b[_0x7519('0x22')];}_0x594140[_0x7519('0x14')](_0x3197f5)[_0x7519('0x23')](_0x1ac75b);};}exports[_0x7519('0x24')]=function(_0x2d8b07,_0x573ebc){var _0x2dd39a={},_0x417151={},_0x4d2faa={'count':0x0,'rows':[]};var _0x4f115d=_[_0x7519('0x25')](db[_0x7519('0x26')][_0x7519('0x27')],function(_0x5f187d){return{'name':_0x5f187d[_0x7519('0x28')],'type':_0x5f187d['type']['key']};});_0x417151['model']=_[_0x7519('0x25')](_0x4f115d,_0x7519('0x22'));_0x417151['query']=_['keys'](_0x2d8b07[_0x7519('0x29')]);_0x417151[_0x7519('0x2a')]=_[_0x7519('0x2b')](_0x417151['model'],_0x417151[_0x7519('0x29')]);_0x2dd39a[_0x7519('0x2c')]=_['intersection'](_0x417151['model'],qs[_0x7519('0x2d')](_0x2d8b07[_0x7519('0x29')][_0x7519('0x2d')]));_0x2dd39a[_0x7519('0x2c')]=_0x2dd39a[_0x7519('0x2c')]['length']?_0x2dd39a[_0x7519('0x2c')]:_0x417151['model'];if(!_0x2d8b07[_0x7519('0x29')]['hasOwnProperty'](_0x7519('0x2e'))){_0x2dd39a[_0x7519('0x19')]=qs['limit'](_0x2d8b07[_0x7519('0x29')][_0x7519('0x19')]);_0x2dd39a[_0x7519('0x17')]=qs[_0x7519('0x17')](_0x2d8b07[_0x7519('0x29')][_0x7519('0x17')]);}_0x2dd39a['order']=qs['sort'](_0x2d8b07[_0x7519('0x29')][_0x7519('0x2f')]);_0x2dd39a[_0x7519('0x30')]=qs[_0x7519('0x2a')](_[_0x7519('0x31')](_0x2d8b07[_0x7519('0x29')],_0x417151[_0x7519('0x2a')]),_0x4f115d);if(_0x2d8b07[_0x7519('0x29')][_0x7519('0x32')]){_0x2dd39a[_0x7519('0x30')]=_[_0x7519('0x33')](_0x2dd39a[_0x7519('0x30')],{'$or':_[_0x7519('0x25')](_0x4f115d,function(_0x38a1b3){if(_0x38a1b3['type']!==_0x7519('0x34')){var _0x5459d5={};_0x5459d5[_0x38a1b3[_0x7519('0x22')]]={'$like':'%'+_0x2d8b07[_0x7519('0x29')][_0x7519('0x32')]+'%'};return _0x5459d5;}})});}_0x2dd39a=_[_0x7519('0x33')]({},_0x2dd39a,_0x2d8b07[_0x7519('0x35')]);var _0x114cff={'where':_0x2dd39a[_0x7519('0x30')]};return db['SquareReport'][_0x7519('0x1a')](_0x114cff)['then'](function(_0x3e3cc7){_0x4d2faa[_0x7519('0x1a')]=_0x3e3cc7;if(_0x2d8b07['query'][_0x7519('0x36')]){_0x2dd39a[_0x7519('0x37')]=[{'all':!![]}];}return db[_0x7519('0x26')]['findAll'](_0x2dd39a);})[_0x7519('0x20')](function(_0xeb6bfa){_0x4d2faa['rows']=_0xeb6bfa;return _0x4d2faa;})[_0x7519('0x20')](respondWithFilteredResult(_0x573ebc,_0x2dd39a))[_0x7519('0x38')](handleError(_0x573ebc,null));};exports[_0x7519('0x39')]=function(_0x44a10e,_0x4a46fa){var _0x3fd1d3={'raw':!![],'where':{'id':_0x44a10e[_0x7519('0x3a')]['id']}},_0x159558={};_0x159558[_0x7519('0x3b')]=_[_0x7519('0x3c')](db[_0x7519('0x26')][_0x7519('0x27')]);_0x159558['query']=_[_0x7519('0x3c')](_0x44a10e[_0x7519('0x29')]);_0x159558[_0x7519('0x2a')]=_[_0x7519('0x2b')](_0x159558[_0x7519('0x3b')],_0x159558[_0x7519('0x29')]);_0x3fd1d3['attributes']=_[_0x7519('0x2b')](_0x159558[_0x7519('0x3b')],qs[_0x7519('0x2d')](_0x44a10e['query'][_0x7519('0x2d')]));_0x3fd1d3[_0x7519('0x2c')]=_0x3fd1d3[_0x7519('0x2c')][_0x7519('0x3d')]?_0x3fd1d3[_0x7519('0x2c')]:_0x159558['model'];if(_0x44a10e[_0x7519('0x29')]['includeAll']){_0x3fd1d3[_0x7519('0x37')]=[{'all':!![]}];}_0x3fd1d3=_[_0x7519('0x33')]({},_0x3fd1d3,_0x44a10e[_0x7519('0x35')]);return db[_0x7519('0x26')][_0x7519('0x3e')](_0x3fd1d3)['then'](handleEntityNotFound(_0x4a46fa,null))[_0x7519('0x20')](respondWithResult(_0x4a46fa,null))[_0x7519('0x38')](handleError(_0x4a46fa,null));};exports['create']=function(_0x305ca7,_0x3901ca){return db[_0x7519('0x26')][_0x7519('0x3f')](_0x305ca7['body'],{})[_0x7519('0x20')](respondWithResult(_0x3901ca,0xc9))[_0x7519('0x38')](handleError(_0x3901ca,null));};exports[_0x7519('0x1f')]=function(_0x5d7d52,_0x1e73b0){if(_0x5d7d52[_0x7519('0x40')]['id']){delete _0x5d7d52['body']['id'];}return db[_0x7519('0x26')]['find']({'where':{'id':_0x5d7d52[_0x7519('0x3a')]['id']}})[_0x7519('0x20')](handleEntityNotFound(_0x1e73b0,null))['then'](saveUpdates(_0x5d7d52[_0x7519('0x40')],null))[_0x7519('0x20')](respondWithResult(_0x1e73b0,null))[_0x7519('0x38')](handleError(_0x1e73b0,null));};exports[_0x7519('0x41')]=function(_0x4c6b92,_0x4bbca6){return db[_0x7519('0x26')][_0x7519('0x3e')]({'where':{'id':_0x4c6b92[_0x7519('0x3a')]['id']}})[_0x7519('0x20')](handleEntityNotFound(_0x4bbca6,null))[_0x7519('0x20')](removeEntity(_0x4bbca6,null))['catch'](handleError(_0x4bbca6,null));};exports[_0x7519('0x42')]=function(_0x1aeb22,_0x3aa9c3){return db[_0x7519('0x26')][_0x7519('0x42')]()['then'](respondWithResult(_0x3aa9c3,null))[_0x7519('0x38')](handleError(_0x3aa9c3,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7b88=['api','request-promise','path','../../config/environment','exports','SquareReport','report_square','uid_pname','uniqueid','project_name','leaveAt','lodash','util','../../config/logger'];(function(_0x397e5f,_0x454c8f){var _0x5302b8=function(_0x1a29ef){while(--_0x1a29ef){_0x397e5f['push'](_0x397e5f['shift']());}};_0x5302b8(++_0x454c8f);}(_0x7b88,0xeb));var _0x87b8=function(_0x40a825,_0x3bac79){_0x40a825=_0x40a825-0x0;var _0x273a54=_0x7b88[_0x40a825];return _0x273a54;};'use strict';var _=require(_0x87b8('0x0'));var util=require(_0x87b8('0x1'));var logger=require(_0x87b8('0x2'))(_0x87b8('0x3'));var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0x87b8('0x4'));var fs=require('fs');var path=require(_0x87b8('0x5'));var rimraf=require('rimraf');var config=require(_0x87b8('0x6'));var attributes=require('./squareReport.attributes');module[_0x87b8('0x7')]=function(_0x28553c,_0x2f5663){return _0x28553c['define'](_0x87b8('0x8'),attributes,{'tableName':_0x87b8('0x9'),'paranoid':![],'indexes':[{'name':_0x87b8('0xa'),'fields':[_0x87b8('0xb'),_0x87b8('0xc')]},{'name':_0x87b8('0xd'),'fields':[_0x87b8('0xd')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0xfdc1=['util','../../config/logger','api','bluebird','request-promise','path','rimraf','../../config/environment','exports','SquareReport','report_square','uid_pname','leaveAt'];(function(_0xf51c06,_0x388e5b){var _0x1d5420=function(_0x5e077b){while(--_0x5e077b){_0xf51c06['push'](_0xf51c06['shift']());}};_0x1d5420(++_0x388e5b);}(_0xfdc1,0x1ee));var _0x1fdc=function(_0x1ae5ab,_0xc5d441){_0x1ae5ab=_0x1ae5ab-0x0;var _0x1ce001=_0xfdc1[_0x1ae5ab];return _0x1ce001;};'use strict';var _=require('lodash');var util=require(_0x1fdc('0x0'));var logger=require(_0x1fdc('0x1'))(_0x1fdc('0x2'));var moment=require('moment');var BPromise=require(_0x1fdc('0x3'));var rp=require(_0x1fdc('0x4'));var fs=require('fs');var path=require(_0x1fdc('0x5'));var rimraf=require(_0x1fdc('0x6'));var config=require(_0x1fdc('0x7'));var attributes=require('./squareReport.attributes');module[_0x1fdc('0x8')]=function(_0x13f661,_0x26cd21){return _0x13f661['define'](_0x1fdc('0x9'),attributes,{'tableName':_0x1fdc('0xa'),'paranoid':![],'indexes':[{'name':_0x1fdc('0xb'),'fields':['uniqueid','project_name']},{'name':_0x1fdc('0xc'),'fields':[_0x1fdc('0xc')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5100=['SquareReport,\x20%s,\x20%s','message','catch','CreateSquareReport','SquareReport','create','options','UpdateSquareReport','raw','where','attributes','limit','lodash','util','bluebird','ioredis','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','then','info','request\x20sent','debug','stringify','error','code'];(function(_0x4fde08,_0x463a36){var _0x12e725=function(_0x2670c5){while(--_0x2670c5){_0x4fde08['push'](_0x4fde08['shift']());}};_0x12e725(++_0x463a36);}(_0x5100,0x1bf));var _0x0510=function(_0x3857e7,_0x123da3){_0x3857e7=_0x3857e7-0x0;var _0x17c307=_0x5100[_0x3857e7];return _0x17c307;};'use strict';var _=require(_0x0510('0x0'));var util=require(_0x0510('0x1'));var moment=require('moment');var BPromise=require(_0x0510('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x0510('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0x0510('0x4'));var logger=require(_0x0510('0x5'))('rpc');var config=require(_0x0510('0x6'));var jayson=require(_0x0510('0x7'));var client=jayson[_0x0510('0x8')][_0x0510('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x14ea28,_0x576d09,_0x1fd537){return new BPromise(function(_0x4aceb8,_0x58235b){return client['request'](_0x14ea28,_0x1fd537)[_0x0510('0xa')](function(_0x53b137){logger[_0x0510('0xb')]('SquareReport,\x20%s,\x20%s',_0x576d09,_0x0510('0xc'));logger[_0x0510('0xd')]('SquareReport,\x20%s,\x20%s,\x20%s',_0x576d09,_0x0510('0xc'),JSON[_0x0510('0xe')](_0x53b137));if(_0x53b137[_0x0510('0xf')]){if(_0x53b137[_0x0510('0xf')][_0x0510('0x10')]===0x1f4){logger[_0x0510('0xf')](_0x0510('0x11'),_0x576d09,_0x53b137[_0x0510('0xf')]['message']);return _0x58235b(_0x53b137[_0x0510('0xf')][_0x0510('0x12')]);}logger['error'](_0x0510('0x11'),_0x576d09,_0x53b137[_0x0510('0xf')][_0x0510('0x12')]);return _0x4aceb8(_0x53b137[_0x0510('0xf')][_0x0510('0x12')]);}else{logger[_0x0510('0xb')](_0x0510('0x11'),_0x576d09,'request\x20sent');_0x4aceb8(_0x53b137['result'][_0x0510('0x12')]);}})[_0x0510('0x13')](function(_0x58920b){logger['error']('SquareReport,\x20%s,\x20%s',_0x576d09,_0x58920b);_0x58235b(_0x58920b);});});}exports[_0x0510('0x14')]=function(_0xa3e29){var _0x1240ca=this;return new Promise(function(_0x5a2f4c,_0x2bfa2f){return db[_0x0510('0x15')][_0x0510('0x16')](_0xa3e29['body'],{'raw':_0xa3e29[_0x0510('0x17')]?_0xa3e29[_0x0510('0x17')]['raw']===undefined?!![]:![]:!![]})[_0x0510('0xa')](function(_0x271bf6){logger[_0x0510('0xb')](_0x0510('0x14'),_0xa3e29);logger[_0x0510('0xd')](_0x0510('0x14'),_0xa3e29,JSON[_0x0510('0xe')](_0x271bf6));_0x5a2f4c(_0x271bf6);})[_0x0510('0x13')](function(_0x45665f){logger[_0x0510('0xf')]('CreateSquareReport',_0x45665f[_0x0510('0x12')],_0xa3e29);_0x2bfa2f(_0x1240ca[_0x0510('0xf')](0x1f4,_0x45665f['message']));});});};exports[_0x0510('0x18')]=function(_0x565bb4){var _0x44e3c3=this;return new Promise(function(_0x287760,_0x40e193){return db[_0x0510('0x15')]['update'](_0x565bb4['body'],{'raw':_0x565bb4[_0x0510('0x17')]?_0x565bb4[_0x0510('0x17')][_0x0510('0x19')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x565bb4['options']?_0x565bb4[_0x0510('0x17')][_0x0510('0x1a')]||null:null,'attributes':_0x565bb4['options']?_0x565bb4[_0x0510('0x17')][_0x0510('0x1b')]||null:null,'limit':_0x565bb4[_0x0510('0x17')]?_0x565bb4[_0x0510('0x17')][_0x0510('0x1c')]||null:null})[_0x0510('0xa')](function(_0x194089){logger[_0x0510('0xb')](_0x0510('0x18'),_0x565bb4);logger['debug'](_0x0510('0x18'),_0x565bb4,JSON[_0x0510('0xe')](_0x194089));_0x287760(_0x194089);})[_0x0510('0x13')](function(_0xfdd6f7){logger[_0x0510('0xf')](_0x0510('0x18'),_0xfdd6f7['message'],_0x565bb4);_0x40e193(_0x44e3c3['error'](0x1f4,_0xfdd6f7[_0x0510('0x12')]));});});};
\ No newline at end of file
+var _0x20da=['catch','CreateSquareReport','SquareReport','create','body','options','raw','UpdateSquareReport','where','attributes','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','request','then','request\x20sent','debug','SquareReport,\x20%s,\x20%s,\x20%s','stringify','error','code','SquareReport,\x20%s,\x20%s','message','info','result'];(function(_0x10004e,_0xd701e6){var _0x5af990=function(_0x4bab6a){while(--_0x4bab6a){_0x10004e['push'](_0x10004e['shift']());}};_0x5af990(++_0xd701e6);}(_0x20da,0xd0));var _0xa20d=function(_0xe61e1e,_0x44bbcf){_0xe61e1e=_0xe61e1e-0x0;var _0x54f1ac=_0x20da[_0xe61e1e];return _0x54f1ac;};'use strict';var _=require(_0xa20d('0x0'));var util=require('util');var moment=require(_0xa20d('0x1'));var BPromise=require(_0xa20d('0x2'));var rs=require(_0xa20d('0x3'));var fs=require('fs');var Redis=require(_0xa20d('0x4'));var db=require(_0xa20d('0x5'))['db'];var utils=require(_0xa20d('0x6'));var logger=require(_0xa20d('0x7'))(_0xa20d('0x8'));var config=require('../../config/environment');var jayson=require(_0xa20d('0x9'));var client=jayson[_0xa20d('0xa')]['http']({'port':0x232a});function respondWithRpcPromise(_0x3f1049,_0x15ce5e,_0x17ab41){return new BPromise(function(_0x238c38,_0x368ebe){return client[_0xa20d('0xb')](_0x3f1049,_0x17ab41)[_0xa20d('0xc')](function(_0x5a8491){logger['info']('SquareReport,\x20%s,\x20%s',_0x15ce5e,_0xa20d('0xd'));logger[_0xa20d('0xe')](_0xa20d('0xf'),_0x15ce5e,_0xa20d('0xd'),JSON[_0xa20d('0x10')](_0x5a8491));if(_0x5a8491[_0xa20d('0x11')]){if(_0x5a8491[_0xa20d('0x11')][_0xa20d('0x12')]===0x1f4){logger['error'](_0xa20d('0x13'),_0x15ce5e,_0x5a8491['error'][_0xa20d('0x14')]);return _0x368ebe(_0x5a8491[_0xa20d('0x11')][_0xa20d('0x14')]);}logger[_0xa20d('0x11')](_0xa20d('0x13'),_0x15ce5e,_0x5a8491[_0xa20d('0x11')][_0xa20d('0x14')]);return _0x238c38(_0x5a8491['error'][_0xa20d('0x14')]);}else{logger[_0xa20d('0x15')](_0xa20d('0x13'),_0x15ce5e,'request\x20sent');_0x238c38(_0x5a8491[_0xa20d('0x16')]['message']);}})[_0xa20d('0x17')](function(_0x15cfc0){logger[_0xa20d('0x11')]('SquareReport,\x20%s,\x20%s',_0x15ce5e,_0x15cfc0);_0x368ebe(_0x15cfc0);});});}exports[_0xa20d('0x18')]=function(_0x4a1568){var _0x225ac9=this;return new Promise(function(_0x36b36f,_0x529cf0){return db[_0xa20d('0x19')][_0xa20d('0x1a')](_0x4a1568[_0xa20d('0x1b')],{'raw':_0x4a1568[_0xa20d('0x1c')]?_0x4a1568[_0xa20d('0x1c')][_0xa20d('0x1d')]===undefined?!![]:![]:!![]})[_0xa20d('0xc')](function(_0x4cff0f){logger[_0xa20d('0x15')](_0xa20d('0x18'),_0x4a1568);logger[_0xa20d('0xe')](_0xa20d('0x18'),_0x4a1568,JSON[_0xa20d('0x10')](_0x4cff0f));_0x36b36f(_0x4cff0f);})[_0xa20d('0x17')](function(_0x37c8f0){logger['error'](_0xa20d('0x18'),_0x37c8f0[_0xa20d('0x14')],_0x4a1568);_0x529cf0(_0x225ac9['error'](0x1f4,_0x37c8f0['message']));});});};exports[_0xa20d('0x1e')]=function(_0x43bee6){var _0x282877=this;return new Promise(function(_0x29d605,_0x164fce){return db['SquareReport']['update'](_0x43bee6[_0xa20d('0x1b')],{'raw':_0x43bee6['options']?_0x43bee6['options'][_0xa20d('0x1d')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x43bee6[_0xa20d('0x1c')]?_0x43bee6['options'][_0xa20d('0x1f')]||null:null,'attributes':_0x43bee6[_0xa20d('0x1c')]?_0x43bee6[_0xa20d('0x1c')][_0xa20d('0x20')]||null:null,'limit':_0x43bee6[_0xa20d('0x1c')]?_0x43bee6[_0xa20d('0x1c')]['limit']||null:null})[_0xa20d('0xc')](function(_0x32bca8){logger['info'](_0xa20d('0x1e'),_0x43bee6);logger['debug'](_0xa20d('0x1e'),_0x43bee6,JSON['stringify'](_0x32bca8));_0x29d605(_0x32bca8);})[_0xa20d('0x17')](function(_0x4ef605){logger['error']('UpdateSquareReport',_0x4ef605[_0xa20d('0x14')],_0x43bee6);_0x164fce(_0x282877[_0xa20d('0x11')](0x1f4,_0x4ef605[_0xa20d('0x14')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb903=['post','create','put','update','delete','/:id','destroy','exports','multer','util','path','connect-timeout','express','../../components/auth/service','../../components/interaction/service','../../config/environment','./squareReportDetail.controller','index','/describe','isAuthenticated','describe','get','show'];(function(_0xa5b19d,_0x4b4750){var _0x28049e=function(_0x27169){while(--_0x27169){_0xa5b19d['push'](_0xa5b19d['shift']());}};_0x28049e(++_0x4b4750);}(_0xb903,0x133));var _0x3b90=function(_0x45b6f0,_0x495245){_0x45b6f0=_0x45b6f0-0x0;var _0x19dbca=_0xb903[_0x45b6f0];return _0x19dbca;};'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(_0x3b90('0x4'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0x3b90('0x5'));var interaction=require(_0x3b90('0x6'));var config=require(_0x3b90('0x7'));var controller=require(_0x3b90('0x8'));router['get']('/',auth['isAuthenticated'](),controller[_0x3b90('0x9')]);router['get'](_0x3b90('0xa'),auth[_0x3b90('0xb')](),controller[_0x3b90('0xc')]);router[_0x3b90('0xd')]('/:id',auth[_0x3b90('0xb')](),controller[_0x3b90('0xe')]);router[_0x3b90('0xf')]('/',auth[_0x3b90('0xb')](),controller[_0x3b90('0x10')]);router[_0x3b90('0x11')]('/:id',auth[_0x3b90('0xb')](),controller[_0x3b90('0x12')]);router[_0x3b90('0x13')](_0x3b90('0x14'),auth[_0x3b90('0xb')](),controller[_0x3b90('0x15')]);module[_0x3b90('0x16')]=router;
\ No newline at end of file
+var _0xd6e8=['put','update','delete','destroy','exports','multer','util','path','connect-timeout','express','fs-extra','../../components/interaction/service','./squareReportDetail.controller','get','isAuthenticated','index','/describe','describe','/:id','show','post','create'];(function(_0x38e97c,_0x1f05fc){var _0x435809=function(_0x5c4e07){while(--_0x5c4e07){_0x38e97c['push'](_0x38e97c['shift']());}};_0x435809(++_0x1f05fc);}(_0xd6e8,0x17b));var _0x8d6e=function(_0xce4604,_0x5e98ad){_0xce4604=_0xce4604-0x0;var _0x474352=_0xd6e8[_0xce4604];return _0x474352;};'use strict';var multer=require(_0x8d6e('0x0'));var util=require(_0x8d6e('0x1'));var path=require(_0x8d6e('0x2'));var timeout=require(_0x8d6e('0x3'));var express=require(_0x8d6e('0x4'));var router=express['Router']();var fs_extra=require(_0x8d6e('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0x8d6e('0x6'));var config=require('../../config/environment');var controller=require(_0x8d6e('0x7'));router[_0x8d6e('0x8')]('/',auth[_0x8d6e('0x9')](),controller[_0x8d6e('0xa')]);router[_0x8d6e('0x8')](_0x8d6e('0xb'),auth[_0x8d6e('0x9')](),controller[_0x8d6e('0xc')]);router[_0x8d6e('0x8')](_0x8d6e('0xd'),auth['isAuthenticated'](),controller[_0x8d6e('0xe')]);router[_0x8d6e('0xf')]('/',auth['isAuthenticated'](),controller[_0x8d6e('0x10')]);router[_0x8d6e('0x11')]('/:id',auth[_0x8d6e('0x9')](),controller[_0x8d6e('0x12')]);router[_0x8d6e('0x13')](_0x8d6e('0xd'),auth['isAuthenticated'](),controller[_0x8d6e('0x14')]);module[_0x8d6e('0x15')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9dcb=['STRING','sequelize','exports'];(function(_0x12b8ec,_0x1655be){var _0x21af77=function(_0xe59f){while(--_0xe59f){_0x12b8ec['push'](_0x12b8ec['shift']());}};_0x21af77(++_0x1655be);}(_0x9dcb,0x94));var _0xb9dc=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0x9dcb[_0x14add3];return _0x4a174f;};'use strict';var Sequelize=require(_0xb9dc('0x0'));module[_0xb9dc('0x1')]={'uniqueid':{'type':Sequelize[_0xb9dc('0x2')]},'node':{'type':Sequelize[_0xb9dc('0x2')]},'application':{'type':Sequelize[_0xb9dc('0x2')]},'data':{'type':Sequelize['TEXT']},'project_name':{'type':Sequelize[_0xb9dc('0x2')]},'callerid':{'type':Sequelize[_0xb9dc('0x2')]}};
\ No newline at end of file
+var _0x3298=['STRING','sequelize'];(function(_0x1909f9,_0x1795ef){var _0x4fc488=function(_0x4fb79a){while(--_0x4fb79a){_0x1909f9['push'](_0x1909f9['shift']());}};_0x4fc488(++_0x1795ef);}(_0x3298,0x1bd));var _0x8329=function(_0x467dc1,_0x1cb7b6){_0x467dc1=_0x467dc1-0x0;var _0x1c25d9=_0x3298[_0x467dc1];return _0x1c25d9;};'use strict';var Sequelize=require(_0x8329('0x0'));module['exports']={'uniqueid':{'type':Sequelize[_0x8329('0x1')]},'node':{'type':Sequelize[_0x8329('0x1')]},'application':{'type':Sequelize[_0x8329('0x1')]},'data':{'type':Sequelize['TEXT']},'project_name':{'type':Sequelize[_0x8329('0x1')]},'callerid':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x83b0=['undefined','limit','count','set','Content-Range','apply','reject','save','update','then','destroy','error','stack','name','send','index','SquareDetailsReport','fieldName','type','key','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','pick','filter','where','merge','VIRTUAL','options','includeAll','findAll','rows','show','rawAttributes','include','find','create','body','catch','params','describe','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','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'];(function(_0x2b6d5d,_0xe6a33f){var _0x4d7a0d=function(_0x1dc02f){while(--_0x1dc02f){_0x2b6d5d['push'](_0x2b6d5d['shift']());}};_0x4d7a0d(++_0xe6a33f);}(_0x83b0,0x125));var _0x083b=function(_0x5c3d1e,_0x1fa8c1){_0x5c3d1e=_0x5c3d1e-0x0;var _0x4d731a=_0x83b0[_0x5c3d1e];return _0x4d731a;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x083b('0x0'));var zipdir=require(_0x083b('0x1'));var jsonpatch=require(_0x083b('0x2'));var rp=require(_0x083b('0x3'));var moment=require(_0x083b('0x4'));var BPromise=require(_0x083b('0x5'));var Mustache=require(_0x083b('0x6'));var util=require('util');var path=require(_0x083b('0x7'));var sox=require(_0x083b('0x8'));var csv=require(_0x083b('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x083b('0xa'));var squel=require(_0x083b('0xb'));var crypto=require(_0x083b('0xc'));var jsforce=require(_0x083b('0xd'));var deskjs=require(_0x083b('0xe'));var toCsv=require(_0x083b('0x9'));var querystring=require(_0x083b('0xf'));var Papa=require(_0x083b('0x10'));var Redis=require(_0x083b('0x11'));var authService=require(_0x083b('0x12'));var qs=require(_0x083b('0x13'));var as=require(_0x083b('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x083b('0x15'))('api');var utils=require(_0x083b('0x16'));var config=require(_0x083b('0x17'));var licenseUtil=require(_0x083b('0x18'));var db=require(_0x083b('0x19'))['db'];function respondWithStatusCode(_0x548c27,_0x54e327){_0x54e327=_0x54e327||0xcc;return function(_0x531f17){if(_0x531f17){return _0x548c27[_0x083b('0x1a')](_0x54e327);}return _0x548c27[_0x083b('0x1b')](_0x54e327)[_0x083b('0x1c')]();};}function respondWithResult(_0x59d291,_0x3a5958){_0x3a5958=_0x3a5958||0xc8;return function(_0x55e56f){if(_0x55e56f){return _0x59d291[_0x083b('0x1b')](_0x3a5958)[_0x083b('0x1d')](_0x55e56f);}};}function respondWithFilteredResult(_0x47f006,_0x49c4e6){return function(_0x108cd7){if(_0x108cd7){var _0x58d500=typeof _0x49c4e6[_0x083b('0x1e')]===_0x083b('0x1f')&&typeof _0x49c4e6[_0x083b('0x20')]===_0x083b('0x1f');var _0x1ba778=_0x108cd7[_0x083b('0x21')];var _0x50886b=_0x58d500?0x0:_0x49c4e6[_0x083b('0x1e')];var _0x47f729=_0x58d500?_0x108cd7[_0x083b('0x21')]:_0x49c4e6['offset']+_0x49c4e6[_0x083b('0x20')];var _0x155e11;if(_0x47f729>=_0x1ba778){_0x47f729=_0x1ba778;_0x155e11=0xc8;}else{_0x155e11=0xce;}_0x47f006['status'](_0x155e11);return _0x47f006[_0x083b('0x22')](_0x083b('0x23'),_0x50886b+'-'+_0x47f729+'/'+_0x1ba778)[_0x083b('0x1d')](_0x108cd7);}return null;};}function patchUpdates(_0x547e07){return function(_0x10f57e){try{jsonpatch[_0x083b('0x24')](_0x10f57e,_0x547e07,!![]);}catch(_0x1e50e2){return BPromise[_0x083b('0x25')](_0x1e50e2);}return _0x10f57e[_0x083b('0x26')]();};}function saveUpdates(_0x23747b,_0x3f6a89){return function(_0x208cce){if(_0x208cce){return _0x208cce[_0x083b('0x27')](_0x23747b)[_0x083b('0x28')](function(_0x29ea7c){return _0x29ea7c;});}return null;};}function removeEntity(_0x51327d,_0x4c3085){return function(_0x471248){if(_0x471248){return _0x471248[_0x083b('0x29')]()[_0x083b('0x28')](function(){_0x51327d[_0x083b('0x1b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x522690,_0x917914){return function(_0x2abf11){if(!_0x2abf11){_0x522690[_0x083b('0x1a')](0x194);}return _0x2abf11;};}function handleError(_0x308d51,_0x2dcb72){_0x2dcb72=_0x2dcb72||0x1f4;return function(_0x24222a){logger[_0x083b('0x2a')](_0x24222a[_0x083b('0x2b')]);if(_0x24222a['name']){delete _0x24222a[_0x083b('0x2c')];}_0x308d51['status'](_0x2dcb72)[_0x083b('0x2d')](_0x24222a);};}exports[_0x083b('0x2e')]=function(_0x2db86d,_0x4c53ed){var _0x4d1269={},_0x40241b={},_0x46a07f={'count':0x0,'rows':[]};var _0x4b416a=_['map'](db[_0x083b('0x2f')]['rawAttributes'],function(_0x5128b4){return{'name':_0x5128b4[_0x083b('0x30')],'type':_0x5128b4[_0x083b('0x31')][_0x083b('0x32')]};});_0x40241b[_0x083b('0x33')]=_['map'](_0x4b416a,_0x083b('0x2c'));_0x40241b[_0x083b('0x34')]=_[_0x083b('0x35')](_0x2db86d[_0x083b('0x34')]);_0x40241b[_0x083b('0x36')]=_[_0x083b('0x37')](_0x40241b[_0x083b('0x33')],_0x40241b[_0x083b('0x34')]);_0x4d1269['attributes']=_['intersection'](_0x40241b['model'],qs[_0x083b('0x38')](_0x2db86d[_0x083b('0x34')]['fields']));_0x4d1269[_0x083b('0x39')]=_0x4d1269['attributes'][_0x083b('0x3a')]?_0x4d1269[_0x083b('0x39')]:_0x40241b[_0x083b('0x33')];if(!_0x2db86d[_0x083b('0x34')][_0x083b('0x3b')](_0x083b('0x3c'))){_0x4d1269[_0x083b('0x20')]=qs[_0x083b('0x20')](_0x2db86d[_0x083b('0x34')][_0x083b('0x20')]);_0x4d1269[_0x083b('0x1e')]=qs['offset'](_0x2db86d[_0x083b('0x34')]['offset']);}_0x4d1269[_0x083b('0x3d')]=qs[_0x083b('0x3e')](_0x2db86d[_0x083b('0x34')][_0x083b('0x3e')]);_0x4d1269['where']=qs['filters'](_[_0x083b('0x3f')](_0x2db86d[_0x083b('0x34')],_0x40241b['filters']),_0x4b416a);if(_0x2db86d['query'][_0x083b('0x40')]){_0x4d1269[_0x083b('0x41')]=_[_0x083b('0x42')](_0x4d1269[_0x083b('0x41')],{'$or':_['map'](_0x4b416a,function(_0x5f5045){if(_0x5f5045[_0x083b('0x31')]!==_0x083b('0x43')){var _0x5d0670={};_0x5d0670[_0x5f5045['name']]={'$like':'%'+_0x2db86d[_0x083b('0x34')][_0x083b('0x40')]+'%'};return _0x5d0670;}})});}_0x4d1269=_[_0x083b('0x42')]({},_0x4d1269,_0x2db86d[_0x083b('0x44')]);var _0x4414c6={'where':_0x4d1269[_0x083b('0x41')]};return db[_0x083b('0x2f')][_0x083b('0x21')](_0x4414c6)[_0x083b('0x28')](function(_0x3110d1){_0x46a07f[_0x083b('0x21')]=_0x3110d1;if(_0x2db86d[_0x083b('0x34')][_0x083b('0x45')]){_0x4d1269['include']=[{'all':!![]}];}return db[_0x083b('0x2f')][_0x083b('0x46')](_0x4d1269);})[_0x083b('0x28')](function(_0x2de2cb){_0x46a07f[_0x083b('0x47')]=_0x2de2cb;return _0x46a07f;})[_0x083b('0x28')](respondWithFilteredResult(_0x4c53ed,_0x4d1269))['catch'](handleError(_0x4c53ed,null));};exports[_0x083b('0x48')]=function(_0x551f83,_0x1e478d){var _0x2c0cfc={'raw':!![],'where':{'id':_0x551f83['params']['id']}},_0x6f1a1c={};_0x6f1a1c['model']=_['keys'](db[_0x083b('0x2f')][_0x083b('0x49')]);_0x6f1a1c[_0x083b('0x34')]=_[_0x083b('0x35')](_0x551f83[_0x083b('0x34')]);_0x6f1a1c[_0x083b('0x36')]=_['intersection'](_0x6f1a1c[_0x083b('0x33')],_0x6f1a1c[_0x083b('0x34')]);_0x2c0cfc[_0x083b('0x39')]=_['intersection'](_0x6f1a1c[_0x083b('0x33')],qs[_0x083b('0x38')](_0x551f83[_0x083b('0x34')]['fields']));_0x2c0cfc[_0x083b('0x39')]=_0x2c0cfc[_0x083b('0x39')][_0x083b('0x3a')]?_0x2c0cfc['attributes']:_0x6f1a1c[_0x083b('0x33')];if(_0x551f83[_0x083b('0x34')][_0x083b('0x45')]){_0x2c0cfc[_0x083b('0x4a')]=[{'all':!![]}];}_0x2c0cfc=_[_0x083b('0x42')]({},_0x2c0cfc,_0x551f83[_0x083b('0x44')]);return db[_0x083b('0x2f')][_0x083b('0x4b')](_0x2c0cfc)[_0x083b('0x28')](handleEntityNotFound(_0x1e478d,null))['then'](respondWithResult(_0x1e478d,null))['catch'](handleError(_0x1e478d,null));};exports[_0x083b('0x4c')]=function(_0x4d00a5,_0x56a865){return db[_0x083b('0x2f')][_0x083b('0x4c')](_0x4d00a5[_0x083b('0x4d')],{})[_0x083b('0x28')](respondWithResult(_0x56a865,0xc9))[_0x083b('0x4e')](handleError(_0x56a865,null));};exports[_0x083b('0x27')]=function(_0x5f4663,_0x4bb361){if(_0x5f4663[_0x083b('0x4d')]['id']){delete _0x5f4663[_0x083b('0x4d')]['id'];}return db['SquareDetailsReport'][_0x083b('0x4b')]({'where':{'id':_0x5f4663['params']['id']}})['then'](handleEntityNotFound(_0x4bb361,null))['then'](saveUpdates(_0x5f4663[_0x083b('0x4d')],null))[_0x083b('0x28')](respondWithResult(_0x4bb361,null))['catch'](handleError(_0x4bb361,null));};exports[_0x083b('0x29')]=function(_0x94588b,_0x8fc08a){return db[_0x083b('0x2f')][_0x083b('0x4b')]({'where':{'id':_0x94588b[_0x083b('0x4f')]['id']}})[_0x083b('0x28')](handleEntityNotFound(_0x8fc08a,null))['then'](removeEntity(_0x8fc08a,null))[_0x083b('0x4e')](handleError(_0x8fc08a,null));};exports[_0x083b('0x50')]=function(_0x4f01a8,_0x5e71e4){return db[_0x083b('0x2f')]['describe']()[_0x083b('0x28')](respondWithResult(_0x5e71e4,null))[_0x083b('0x4e')](handleError(_0x5e71e4,null));};
\ No newline at end of file
+var _0x828d=['include','findAll','rows','catch','params','find','create','body','describe','eml-format','fast-json-patch','bluebird','mustache','util','sox','fs-extra','lodash','squel','desk.js','to-csv','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','end','status','json','undefined','limit','count','offset','set','Content-Range','apply','reject','save','update','then','destroy','error','stack','name','send','index','map','SquareDetailsReport','rawAttributes','fieldName','query','keys','filters','model','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','where','pick','merge','type','VIRTUAL','filter','includeAll'];(function(_0x1100d2,_0xb82b43){var _0x249698=function(_0x3e0429){while(--_0x3e0429){_0x1100d2['push'](_0x1100d2['shift']());}};_0x249698(++_0xb82b43);}(_0x828d,0x131));var _0xd828=function(_0xc87d08,_0x59c9be){_0xc87d08=_0xc87d08-0x0;var _0x30a714=_0x828d[_0xc87d08];return _0x30a714;};'use strict';var emlformat=require(_0xd828('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0xd828('0x1'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0xd828('0x2'));var Mustache=require(_0xd828('0x3'));var util=require(_0xd828('0x4'));var path=require('path');var sox=require(_0xd828('0x5'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xd828('0x6'));var _=require(_0xd828('0x7'));var squel=require(_0xd828('0x8'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0xd828('0x9'));var toCsv=require(_0xd828('0xa'));var querystring=require('querystring');var Papa=require(_0xd828('0xb'));var Redis=require(_0xd828('0xc'));var authService=require(_0xd828('0xd'));var qs=require(_0xd828('0xe'));var as=require(_0xd828('0xf'));var hardwareService=require(_0xd828('0x10'));var logger=require(_0xd828('0x11'))(_0xd828('0x12'));var utils=require(_0xd828('0x13'));var config=require('../../config/environment');var licenseUtil=require(_0xd828('0x14'));var db=require(_0xd828('0x15'))['db'];function respondWithStatusCode(_0x22e12c,_0x3665cb){_0x3665cb=_0x3665cb||0xcc;return function(_0x1c87ce){if(_0x1c87ce){return _0x22e12c[_0xd828('0x16')](_0x3665cb);}return _0x22e12c['status'](_0x3665cb)[_0xd828('0x17')]();};}function respondWithResult(_0x5b7937,_0x2e02c4){_0x2e02c4=_0x2e02c4||0xc8;return function(_0x1d62b3){if(_0x1d62b3){return _0x5b7937[_0xd828('0x18')](_0x2e02c4)[_0xd828('0x19')](_0x1d62b3);}};}function respondWithFilteredResult(_0x3d9000,_0x5a9d52){return function(_0x12119a){if(_0x12119a){var _0x369d0f=typeof _0x5a9d52['offset']===_0xd828('0x1a')&&typeof _0x5a9d52[_0xd828('0x1b')]==='undefined';var _0xc386a5=_0x12119a[_0xd828('0x1c')];var _0x262396=_0x369d0f?0x0:_0x5a9d52[_0xd828('0x1d')];var _0x35651b=_0x369d0f?_0x12119a[_0xd828('0x1c')]:_0x5a9d52[_0xd828('0x1d')]+_0x5a9d52[_0xd828('0x1b')];var _0x36fa62;if(_0x35651b>=_0xc386a5){_0x35651b=_0xc386a5;_0x36fa62=0xc8;}else{_0x36fa62=0xce;}_0x3d9000[_0xd828('0x18')](_0x36fa62);return _0x3d9000[_0xd828('0x1e')](_0xd828('0x1f'),_0x262396+'-'+_0x35651b+'/'+_0xc386a5)[_0xd828('0x19')](_0x12119a);}return null;};}function patchUpdates(_0x173102){return function(_0x5179d5){try{jsonpatch[_0xd828('0x20')](_0x5179d5,_0x173102,!![]);}catch(_0x18a889){return BPromise[_0xd828('0x21')](_0x18a889);}return _0x5179d5[_0xd828('0x22')]();};}function saveUpdates(_0x150f2c,_0x5a67cd){return function(_0x17b1d4){if(_0x17b1d4){return _0x17b1d4[_0xd828('0x23')](_0x150f2c)[_0xd828('0x24')](function(_0x1a7204){return _0x1a7204;});}return null;};}function removeEntity(_0x300df9,_0xfd44a3){return function(_0xecb244){if(_0xecb244){return _0xecb244[_0xd828('0x25')]()[_0xd828('0x24')](function(){_0x300df9[_0xd828('0x18')](0xcc)[_0xd828('0x17')]();});}};}function handleEntityNotFound(_0x5c7bfe,_0x3e161e){return function(_0x1fdc16){if(!_0x1fdc16){_0x5c7bfe['sendStatus'](0x194);}return _0x1fdc16;};}function handleError(_0x172cfd,_0x520ebc){_0x520ebc=_0x520ebc||0x1f4;return function(_0x470950){logger[_0xd828('0x26')](_0x470950[_0xd828('0x27')]);if(_0x470950[_0xd828('0x28')]){delete _0x470950[_0xd828('0x28')];}_0x172cfd[_0xd828('0x18')](_0x520ebc)[_0xd828('0x29')](_0x470950);};}exports[_0xd828('0x2a')]=function(_0x5adbdb,_0x271072){var _0x2057e8={},_0x190681={},_0x59c5c2={'count':0x0,'rows':[]};var _0x2f977a=_[_0xd828('0x2b')](db[_0xd828('0x2c')][_0xd828('0x2d')],function(_0xb1e929){return{'name':_0xb1e929[_0xd828('0x2e')],'type':_0xb1e929['type']['key']};});_0x190681['model']=_[_0xd828('0x2b')](_0x2f977a,_0xd828('0x28'));_0x190681[_0xd828('0x2f')]=_[_0xd828('0x30')](_0x5adbdb['query']);_0x190681[_0xd828('0x31')]=_['intersection'](_0x190681[_0xd828('0x32')],_0x190681['query']);_0x2057e8['attributes']=_[_0xd828('0x33')](_0x190681['model'],qs[_0xd828('0x34')](_0x5adbdb[_0xd828('0x2f')]['fields']));_0x2057e8[_0xd828('0x35')]=_0x2057e8[_0xd828('0x35')][_0xd828('0x36')]?_0x2057e8['attributes']:_0x190681[_0xd828('0x32')];if(!_0x5adbdb[_0xd828('0x2f')][_0xd828('0x37')](_0xd828('0x38'))){_0x2057e8['limit']=qs[_0xd828('0x1b')](_0x5adbdb[_0xd828('0x2f')][_0xd828('0x1b')]);_0x2057e8[_0xd828('0x1d')]=qs[_0xd828('0x1d')](_0x5adbdb[_0xd828('0x2f')]['offset']);}_0x2057e8[_0xd828('0x39')]=qs['sort'](_0x5adbdb[_0xd828('0x2f')]['sort']);_0x2057e8[_0xd828('0x3a')]=qs['filters'](_[_0xd828('0x3b')](_0x5adbdb[_0xd828('0x2f')],_0x190681[_0xd828('0x31')]),_0x2f977a);if(_0x5adbdb[_0xd828('0x2f')]['filter']){_0x2057e8[_0xd828('0x3a')]=_[_0xd828('0x3c')](_0x2057e8[_0xd828('0x3a')],{'$or':_[_0xd828('0x2b')](_0x2f977a,function(_0x2a4926){if(_0x2a4926[_0xd828('0x3d')]!==_0xd828('0x3e')){var _0x90ffec={};_0x90ffec[_0x2a4926[_0xd828('0x28')]]={'$like':'%'+_0x5adbdb[_0xd828('0x2f')][_0xd828('0x3f')]+'%'};return _0x90ffec;}})});}_0x2057e8=_[_0xd828('0x3c')]({},_0x2057e8,_0x5adbdb['options']);var _0x282e95={'where':_0x2057e8[_0xd828('0x3a')]};return db[_0xd828('0x2c')][_0xd828('0x1c')](_0x282e95)[_0xd828('0x24')](function(_0x2c5488){_0x59c5c2[_0xd828('0x1c')]=_0x2c5488;if(_0x5adbdb[_0xd828('0x2f')][_0xd828('0x40')]){_0x2057e8[_0xd828('0x41')]=[{'all':!![]}];}return db[_0xd828('0x2c')][_0xd828('0x42')](_0x2057e8);})[_0xd828('0x24')](function(_0x276f4b){_0x59c5c2[_0xd828('0x43')]=_0x276f4b;return _0x59c5c2;})[_0xd828('0x24')](respondWithFilteredResult(_0x271072,_0x2057e8))[_0xd828('0x44')](handleError(_0x271072,null));};exports['show']=function(_0x4327f0,_0x577325){var _0x4c4641={'raw':!![],'where':{'id':_0x4327f0[_0xd828('0x45')]['id']}},_0xb5d73={};_0xb5d73[_0xd828('0x32')]=_[_0xd828('0x30')](db[_0xd828('0x2c')]['rawAttributes']);_0xb5d73[_0xd828('0x2f')]=_[_0xd828('0x30')](_0x4327f0[_0xd828('0x2f')]);_0xb5d73[_0xd828('0x31')]=_[_0xd828('0x33')](_0xb5d73[_0xd828('0x32')],_0xb5d73[_0xd828('0x2f')]);_0x4c4641[_0xd828('0x35')]=_['intersection'](_0xb5d73[_0xd828('0x32')],qs[_0xd828('0x34')](_0x4327f0[_0xd828('0x2f')]['fields']));_0x4c4641[_0xd828('0x35')]=_0x4c4641[_0xd828('0x35')]['length']?_0x4c4641['attributes']:_0xb5d73[_0xd828('0x32')];if(_0x4327f0[_0xd828('0x2f')][_0xd828('0x40')]){_0x4c4641[_0xd828('0x41')]=[{'all':!![]}];}_0x4c4641=_[_0xd828('0x3c')]({},_0x4c4641,_0x4327f0['options']);return db[_0xd828('0x2c')][_0xd828('0x46')](_0x4c4641)[_0xd828('0x24')](handleEntityNotFound(_0x577325,null))[_0xd828('0x24')](respondWithResult(_0x577325,null))[_0xd828('0x44')](handleError(_0x577325,null));};exports[_0xd828('0x47')]=function(_0x3a5859,_0x2c9863){return db[_0xd828('0x2c')][_0xd828('0x47')](_0x3a5859[_0xd828('0x48')],{})[_0xd828('0x24')](respondWithResult(_0x2c9863,0xc9))[_0xd828('0x44')](handleError(_0x2c9863,null));};exports['update']=function(_0x3a95a7,_0x5d4dab){if(_0x3a95a7[_0xd828('0x48')]['id']){delete _0x3a95a7[_0xd828('0x48')]['id'];}return db[_0xd828('0x2c')]['find']({'where':{'id':_0x3a95a7[_0xd828('0x45')]['id']}})[_0xd828('0x24')](handleEntityNotFound(_0x5d4dab,null))[_0xd828('0x24')](saveUpdates(_0x3a95a7['body'],null))[_0xd828('0x24')](respondWithResult(_0x5d4dab,null))[_0xd828('0x44')](handleError(_0x5d4dab,null));};exports[_0xd828('0x25')]=function(_0x3da556,_0x1b1eac){return db[_0xd828('0x2c')][_0xd828('0x46')]({'where':{'id':_0x3da556[_0xd828('0x45')]['id']}})[_0xd828('0x24')](handleEntityNotFound(_0x1b1eac,null))[_0xd828('0x24')](removeEntity(_0x1b1eac,null))[_0xd828('0x44')](handleError(_0x1b1eac,null));};exports[_0xd828('0x49')]=function(_0x2976ae,_0x48357f){return db[_0xd828('0x2c')][_0xd828('0x49')]()['then'](respondWithResult(_0x48357f,null))[_0xd828('0x44')](handleError(_0x48357f,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x124a=['../../config/environment','exports','define','report_square_details','lodash','util','../../config/logger','moment','bluebird','request-promise','path'];(function(_0x53ee43,_0x2a63ec){var _0x58b2ca=function(_0x35e8a0){while(--_0x35e8a0){_0x53ee43['push'](_0x53ee43['shift']());}};_0x58b2ca(++_0x2a63ec);}(_0x124a,0x12d));var _0xa124=function(_0x3edc22,_0x243990){_0x3edc22=_0x3edc22-0x0;var _0x1ddf50=_0x124a[_0x3edc22];return _0x1ddf50;};'use strict';var _=require(_0xa124('0x0'));var util=require(_0xa124('0x1'));var logger=require(_0xa124('0x2'))('api');var moment=require(_0xa124('0x3'));var BPromise=require(_0xa124('0x4'));var rp=require(_0xa124('0x5'));var fs=require('fs');var path=require(_0xa124('0x6'));var rimraf=require('rimraf');var config=require(_0xa124('0x7'));var attributes=require('./squareReportDetail.attributes');module[_0xa124('0x8')]=function(_0x4e9ca3,_0x4af136){return _0x4e9ca3[_0xa124('0x9')]('SquareDetailsReport',attributes,{'tableName':_0xa124('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xe212=['request-promise','path','../../config/environment','./squareReportDetail.attributes','exports','define','SquareDetailsReport','report_square_details','lodash','util','../../config/logger','moment'];(function(_0x3ccd15,_0x42bd84){var _0x40658a=function(_0x4f0624){while(--_0x4f0624){_0x3ccd15['push'](_0x3ccd15['shift']());}};_0x40658a(++_0x42bd84);}(_0xe212,0xb0));var _0x2e21=function(_0x100e36,_0x4da225){_0x100e36=_0x100e36-0x0;var _0x1df0c9=_0xe212[_0x100e36];return _0x1df0c9;};'use strict';var _=require(_0x2e21('0x0'));var util=require(_0x2e21('0x1'));var logger=require(_0x2e21('0x2'))('api');var moment=require(_0x2e21('0x3'));var BPromise=require('bluebird');var rp=require(_0x2e21('0x4'));var fs=require('fs');var path=require(_0x2e21('0x5'));var rimraf=require('rimraf');var config=require(_0x2e21('0x6'));var attributes=require(_0x2e21('0x7'));module[_0x2e21('0x8')]=function(_0x4211a2,_0x4b8400){return _0x4211a2[_0x2e21('0x9')](_0x2e21('0xa'),attributes,{'tableName':_0x2e21('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x58a4=['ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','request','info','SquareDetailsReport,\x20%s,\x20%s','request\x20sent','debug','SquareDetailsReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','catch','CreateSquareDetailsReport','body','options','raw','lodash','util','moment','bluebird','randomstring'];(function(_0x5af053,_0x21708b){var _0x495a23=function(_0x17cc81){while(--_0x17cc81){_0x5af053['push'](_0x5af053['shift']());}};_0x495a23(++_0x21708b);}(_0x58a4,0xbf));var _0x458a=function(_0x4283c0,_0xc694d5){_0x4283c0=_0x4283c0-0x0;var _0x6b47ab=_0x58a4[_0x4283c0];return _0x6b47ab;};'use strict';var _=require(_0x458a('0x0'));var util=require(_0x458a('0x1'));var moment=require(_0x458a('0x2'));var BPromise=require(_0x458a('0x3'));var rs=require(_0x458a('0x4'));var fs=require('fs');var Redis=require(_0x458a('0x5'));var db=require(_0x458a('0x6'))['db'];var utils=require(_0x458a('0x7'));var logger=require(_0x458a('0x8'))(_0x458a('0x9'));var config=require(_0x458a('0xa'));var jayson=require(_0x458a('0xb'));var client=jayson[_0x458a('0xc')]['http']({'port':0x232a});function respondWithRpcPromise(_0x5358c2,_0x30b095,_0x11fcaa){return new BPromise(function(_0x2029bc,_0x1e658e){return client[_0x458a('0xd')](_0x5358c2,_0x11fcaa)['then'](function(_0x4bedce){logger[_0x458a('0xe')](_0x458a('0xf'),_0x30b095,_0x458a('0x10'));logger[_0x458a('0x11')](_0x458a('0x12'),_0x30b095,'request\x20sent',JSON[_0x458a('0x13')](_0x4bedce));if(_0x4bedce[_0x458a('0x14')]){if(_0x4bedce['error'][_0x458a('0x15')]===0x1f4){logger[_0x458a('0x14')](_0x458a('0xf'),_0x30b095,_0x4bedce[_0x458a('0x14')][_0x458a('0x16')]);return _0x1e658e(_0x4bedce['error']['message']);}logger[_0x458a('0x14')]('SquareDetailsReport,\x20%s,\x20%s',_0x30b095,_0x4bedce[_0x458a('0x14')][_0x458a('0x16')]);return _0x2029bc(_0x4bedce[_0x458a('0x14')][_0x458a('0x16')]);}else{logger[_0x458a('0xe')](_0x458a('0xf'),_0x30b095,'request\x20sent');_0x2029bc(_0x4bedce['result']['message']);}})[_0x458a('0x17')](function(_0x3fd6d4){logger[_0x458a('0x14')]('SquareDetailsReport,\x20%s,\x20%s',_0x30b095,_0x3fd6d4);_0x1e658e(_0x3fd6d4);});});}exports[_0x458a('0x18')]=function(_0x260c87){var _0x18504d=this;return new Promise(function(_0x392986,_0xa91473){return db['SquareDetailsReport']['create'](_0x260c87[_0x458a('0x19')],{'raw':_0x260c87['options']?_0x260c87[_0x458a('0x1a')][_0x458a('0x1b')]===undefined?!![]:![]:!![]})['then'](function(_0x468416){logger['info'](_0x458a('0x18'),_0x260c87);logger[_0x458a('0x11')]('CreateSquareDetailsReport',_0x260c87,JSON[_0x458a('0x13')](_0x468416));_0x392986(_0x468416);})[_0x458a('0x17')](function(_0x5a2bcb){logger[_0x458a('0x14')]('CreateSquareDetailsReport',_0x5a2bcb[_0x458a('0x16')],_0x260c87);_0xa91473(_0x18504d['error'](0x1f4,_0x5a2bcb[_0x458a('0x16')]));});});};
\ No newline at end of file
+var _0x19e1=['create','body','options','raw','lodash','util','moment','bluebird','../../mysqldb','../../config/utils','rpc','../../config/environment','client','request','then','request\x20sent','debug','SquareDetailsReport,\x20%s,\x20%s,\x20%s','stringify','error','SquareDetailsReport,\x20%s,\x20%s','message','info','result','catch','CreateSquareDetailsReport','SquareDetailsReport'];(function(_0x17d9e3,_0x1f969c){var _0x14192d=function(_0x159745){while(--_0x159745){_0x17d9e3['push'](_0x17d9e3['shift']());}};_0x14192d(++_0x1f969c);}(_0x19e1,0x163));var _0x119e=function(_0x492221,_0x9e2521){_0x492221=_0x492221-0x0;var _0x398bf9=_0x19e1[_0x492221];return _0x398bf9;};'use strict';var _=require(_0x119e('0x0'));var util=require(_0x119e('0x1'));var moment=require(_0x119e('0x2'));var BPromise=require(_0x119e('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0x119e('0x4'))['db'];var utils=require(_0x119e('0x5'));var logger=require('../../config/logger')(_0x119e('0x6'));var config=require(_0x119e('0x7'));var jayson=require('jayson/promise');var client=jayson[_0x119e('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0x1b5306,_0x25e166,_0x16a2ee){return new BPromise(function(_0x1b3797,_0x53d5b7){return client[_0x119e('0x9')](_0x1b5306,_0x16a2ee)[_0x119e('0xa')](function(_0x1a6747){logger['info']('SquareDetailsReport,\x20%s,\x20%s',_0x25e166,_0x119e('0xb'));logger[_0x119e('0xc')](_0x119e('0xd'),_0x25e166,_0x119e('0xb'),JSON[_0x119e('0xe')](_0x1a6747));if(_0x1a6747[_0x119e('0xf')]){if(_0x1a6747[_0x119e('0xf')]['code']===0x1f4){logger[_0x119e('0xf')](_0x119e('0x10'),_0x25e166,_0x1a6747[_0x119e('0xf')][_0x119e('0x11')]);return _0x53d5b7(_0x1a6747[_0x119e('0xf')][_0x119e('0x11')]);}logger['error'](_0x119e('0x10'),_0x25e166,_0x1a6747[_0x119e('0xf')][_0x119e('0x11')]);return _0x1b3797(_0x1a6747[_0x119e('0xf')][_0x119e('0x11')]);}else{logger[_0x119e('0x12')](_0x119e('0x10'),_0x25e166,_0x119e('0xb'));_0x1b3797(_0x1a6747[_0x119e('0x13')][_0x119e('0x11')]);}})[_0x119e('0x14')](function(_0x54c326){logger[_0x119e('0xf')](_0x119e('0x10'),_0x25e166,_0x54c326);_0x53d5b7(_0x54c326);});});}exports[_0x119e('0x15')]=function(_0xb3375c){var _0x348ae3=this;return new Promise(function(_0xedc945,_0x2848fa){return db[_0x119e('0x16')][_0x119e('0x17')](_0xb3375c[_0x119e('0x18')],{'raw':_0xb3375c[_0x119e('0x19')]?_0xb3375c['options'][_0x119e('0x1a')]===undefined?!![]:![]:!![]})['then'](function(_0xd4c2d5){logger['info'](_0x119e('0x15'),_0xb3375c);logger[_0x119e('0xc')]('CreateSquareDetailsReport',_0xb3375c,JSON['stringify'](_0xd4c2d5));_0xedc945(_0xd4c2d5);})[_0x119e('0x14')](function(_0x29de19){logger[_0x119e('0xf')]('CreateSquareDetailsReport',_0x29de19['message'],_0xb3375c);_0x2848fa(_0x348ae3[_0x119e('0xf')](0x1f4,_0x29de19['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xce05=['killProcess','express','../../components/auth/service','./system.controller','get','isAuthenticated','index','/process/:pid/kill'];(function(_0x3d5e4a,_0x1e7acd){var _0x542881=function(_0x329e36){while(--_0x329e36){_0x3d5e4a['push'](_0x3d5e4a['shift']());}};_0x542881(++_0x1e7acd);}(_0xce05,0xf9));var _0x5ce0=function(_0x2f9a65,_0x2b25f8){_0x2f9a65=_0x2f9a65-0x0;var _0x39ff82=_0xce05[_0x2f9a65];return _0x39ff82;};'use strict';var express=require(_0x5ce0('0x0'));var router=express['Router']();var auth=require(_0x5ce0('0x1'));var controller=require(_0x5ce0('0x2'));router[_0x5ce0('0x3')]('/',auth[_0x5ce0('0x4')](),controller[_0x5ce0('0x5')]);router['get'](_0x5ce0('0x6'),auth[_0x5ce0('0x4')](),controller[_0x5ce0('0x7')]);module['exports']=router;
\ No newline at end of file
+var _0x05b5=['../../components/auth/service','get','index','/process/:pid/kill','isAuthenticated','exports','Router'];(function(_0x120904,_0x59de58){var _0x36f4f1=function(_0x5d2769){while(--_0x5d2769){_0x120904['push'](_0x120904['shift']());}};_0x36f4f1(++_0x59de58);}(_0x05b5,0x1b8));var _0x505b=function(_0x263a74,_0xc31414){_0x263a74=_0x263a74-0x0;var _0x2aa86c=_0x05b5[_0x263a74];return _0x2aa86c;};'use strict';var express=require('express');var router=express[_0x505b('0x0')]();var auth=require(_0x505b('0x1'));var controller=require('./system.controller');router[_0x505b('0x2')]('/',auth['isAuthenticated'](),controller[_0x505b('0x3')]);router['get'](_0x505b('0x4'),auth[_0x505b('0x5')](),controller['killProcess']);module[_0x505b('0x6')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdace=['systeminformation','child_process','bluebird','lodash','error','<%-\x20name\x20%>,\x20%s,\x20%s,\x20%s','inspect','send','then','status','json','catch','killProcess','components/import/cm','format','ps\x20-p\x20%s\x20-ww\x20-o\x20args','params','pid','split','length','indexOf','Process\x20with\x20pid\x20%s\x20not\x20found!','SIGINT'];(function(_0x55a8d8,_0xec73e1){var _0x1d72a9=function(_0x35298a){while(--_0x35298a){_0x55a8d8['push'](_0x55a8d8['shift']());}};_0x1d72a9(++_0xec73e1);}(_0xdace,0x159));var _0xedac=function(_0x3f6565,_0x12a8bb){_0x3f6565=_0x3f6565-0x0;var _0x4abd23=_0xdace[_0x3f6565];return _0x4abd23;};'use strict';var info=require(_0xedac('0x0'));var exec=require(_0xedac('0x1'))['exec'];var logger=require('../../config/logger')('api');var util=require('util');var BPromise=require(_0xedac('0x2'));var _=require(_0xedac('0x3'));function handleError(_0xa4fecd,_0xdcfc6e,_0x5c7d4e){_0xdcfc6e=_0xdcfc6e||0x1f4;return function(_0x5b216c){logger[_0xedac('0x4')](_0xedac('0x5'),_0x5c7d4e,_0xdcfc6e,util[_0xedac('0x6')](_0x5b216c,{'showHidden':![],'depth':null}));delete _0x5b216c['name'];_0xa4fecd['status'](_0xdcfc6e)[_0xedac('0x7')](_0x5b216c);};}exports['index']=function(_0x47b21a,_0x14f875){return info['getAllData']()[_0xedac('0x8')](function(_0x558eb3){return _0x14f875[_0xedac('0x9')](0xc8)[_0xedac('0xa')](_0x558eb3);})[_0xedac('0xb')](function(_0x4bcdc1){return _0x14f875['status'](0x1f4)[_0xedac('0xa')](_0x4bcdc1);});};exports[_0xedac('0xc')]=function(_0x3942fc,_0x132bd4){var _0x160a34=[_0xedac('0xd')];return new BPromise(function(_0x4d3e7e,_0x3796e1){return exec(util[_0xedac('0xe')](_0xedac('0xf'),_0x3942fc[_0xedac('0x10')][_0xedac('0x11')]),function(_0x384fcc,_0x4bd8c2,_0x2bacb7){if(_0x384fcc){return _0x3796e1(_0x384fcc);}return _0x4d3e7e(_0x4bd8c2);});})[_0xedac('0x8')](function(_0x285185){var _0x836434=![];var _0x119182=_0x285185[_0xedac('0x12')](/\n/);for(var _0x350b36=0x0,_0x48842b=_0x160a34[_0xedac('0x13')];_0x350b36<_0x48842b,_0x836434===![];_0x350b36+=0x1){if(_0x285185[_0xedac('0x14')](_0x160a34[_0x350b36])>=0x0){_0x836434=!![];}}if(!_0x836434){throw new Error(util[_0xedac('0xe')](_0xedac('0x15'),_0x3942fc[_0xedac('0x10')][_0xedac('0x11')]));}process['kill'](_0x3942fc[_0xedac('0x10')][_0xedac('0x11')],_0xedac('0x16'));return _0x132bd4['status'](0xc8)[_0xedac('0xa')]({'message':util[_0xedac('0xe')]('Process\x20with\x20pid\x20%s\x20killed\x20correctly',_0x3942fc['params'][_0xedac('0x11')])});})[_0xedac('0xb')](handleError(_0x132bd4,null,_0xedac('0xc')));};
\ No newline at end of file
+var _0x98dc=['getAllData','then','catch','json','format','ps\x20-p\x20%s\x20-ww\x20-o\x20args','params','pid','split','length','indexOf','Process\x20with\x20pid\x20%s\x20not\x20found!','kill','SIGINT','Process\x20with\x20pid\x20%s\x20killed\x20correctly','killProcess','child_process','../../config/logger','api','util','bluebird','lodash','<%-\x20name\x20%>,\x20%s,\x20%s,\x20%s','inspect','status','index'];(function(_0x4a88ff,_0x2b1717){var _0x109dc6=function(_0x5abcc0){while(--_0x5abcc0){_0x4a88ff['push'](_0x4a88ff['shift']());}};_0x109dc6(++_0x2b1717);}(_0x98dc,0x1ca));var _0xc98d=function(_0x3fe1e3,_0x474f28){_0x3fe1e3=_0x3fe1e3-0x0;var _0x2f1998=_0x98dc[_0x3fe1e3];return _0x2f1998;};'use strict';var info=require('systeminformation');var exec=require(_0xc98d('0x0'))['exec'];var logger=require(_0xc98d('0x1'))(_0xc98d('0x2'));var util=require(_0xc98d('0x3'));var BPromise=require(_0xc98d('0x4'));var _=require(_0xc98d('0x5'));function handleError(_0x40a830,_0x124e54,_0x31a174){_0x124e54=_0x124e54||0x1f4;return function(_0x2554f0){logger['error'](_0xc98d('0x6'),_0x31a174,_0x124e54,util[_0xc98d('0x7')](_0x2554f0,{'showHidden':![],'depth':null}));delete _0x2554f0['name'];_0x40a830[_0xc98d('0x8')](_0x124e54)['send'](_0x2554f0);};}exports[_0xc98d('0x9')]=function(_0x586a7b,_0x5842fd){return info[_0xc98d('0xa')]()[_0xc98d('0xb')](function(_0x260a74){return _0x5842fd[_0xc98d('0x8')](0xc8)['json'](_0x260a74);})[_0xc98d('0xc')](function(_0xeec62c){return _0x5842fd[_0xc98d('0x8')](0x1f4)[_0xc98d('0xd')](_0xeec62c);});};exports['killProcess']=function(_0x4869c3,_0x3c571b){var _0x2c79a7=['components/import/cm'];return new BPromise(function(_0xfb6ce1,_0x4742ed){return exec(util[_0xc98d('0xe')](_0xc98d('0xf'),_0x4869c3[_0xc98d('0x10')][_0xc98d('0x11')]),function(_0x3b4f3d,_0x21a4d9,_0x3a6842){if(_0x3b4f3d){return _0x4742ed(_0x3b4f3d);}return _0xfb6ce1(_0x21a4d9);});})[_0xc98d('0xb')](function(_0x309cdb){var _0x4e4fd0=![];var _0x4a0201=_0x309cdb[_0xc98d('0x12')](/\n/);for(var _0x523c7f=0x0,_0x726ca7=_0x2c79a7[_0xc98d('0x13')];_0x523c7f<_0x726ca7,_0x4e4fd0===![];_0x523c7f+=0x1){if(_0x309cdb[_0xc98d('0x14')](_0x2c79a7[_0x523c7f])>=0x0){_0x4e4fd0=!![];}}if(!_0x4e4fd0){throw new Error(util['format'](_0xc98d('0x15'),_0x4869c3[_0xc98d('0x10')][_0xc98d('0x11')]));}process[_0xc98d('0x16')](_0x4869c3['params'][_0xc98d('0x11')],_0xc98d('0x17'));return _0x3c571b['status'](0xc8)[_0xc98d('0xd')]({'message':util['format'](_0xc98d('0x18'),_0x4869c3['params'][_0xc98d('0x11')])});})[_0xc98d('0xc')](handleError(_0x3c571b,null,_0xc98d('0x19')));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7a55=['delete','/:id','destroy','exports','multer','util','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','isAuthenticated','get','show','post','create','put','update'];(function(_0x14ad11,_0x2e1ec9){var _0x3a1f06=function(_0x594d7a){while(--_0x594d7a){_0x14ad11['push'](_0x14ad11['shift']());}};_0x3a1f06(++_0x2e1ec9);}(_0x7a55,0xcc));var _0x57a5=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0x7a55[_0x20a584];return _0x4b41a8;};'use strict';var multer=require(_0x57a5('0x0'));var util=require(_0x57a5('0x1'));var path=require(_0x57a5('0x2'));var timeout=require(_0x57a5('0x3'));var express=require(_0x57a5('0x4'));var router=express[_0x57a5('0x5')]();var fs_extra=require('fs-extra');var auth=require(_0x57a5('0x6'));var interaction=require(_0x57a5('0x7'));var config=require(_0x57a5('0x8'));var controller=require('./tag.controller');router['get']('/',auth[_0x57a5('0x9')](),controller['index']);router[_0x57a5('0xa')]('/:id',auth[_0x57a5('0x9')](),controller[_0x57a5('0xb')]);router[_0x57a5('0xc')]('/',auth['isAuthenticated'](),controller[_0x57a5('0xd')]);router[_0x57a5('0xe')]('/:id',auth[_0x57a5('0x9')](),controller[_0x57a5('0xf')]);router[_0x57a5('0x10')](_0x57a5('0x11'),auth[_0x57a5('0x9')](),controller[_0x57a5('0x12')]);module[_0x57a5('0x13')]=router;
\ No newline at end of file
+var _0xf7e2=['put','/:id','delete','destroy','exports','util','path','express','fs-extra','../../components/auth/service','../../config/environment','./tag.controller','isAuthenticated','index','get','show','post','create'];(function(_0x40782e,_0x40b04b){var _0x37a5bf=function(_0x543643){while(--_0x543643){_0x40782e['push'](_0x40782e['shift']());}};_0x37a5bf(++_0x40b04b);}(_0xf7e2,0x191));var _0x2f7e=function(_0x594fcd,_0x574df0){_0x594fcd=_0x594fcd-0x0;var _0x9e9309=_0xf7e2[_0x594fcd];return _0x9e9309;};'use strict';var multer=require('multer');var util=require(_0x2f7e('0x0'));var path=require(_0x2f7e('0x1'));var timeout=require('connect-timeout');var express=require(_0x2f7e('0x2'));var router=express['Router']();var fs_extra=require(_0x2f7e('0x3'));var auth=require(_0x2f7e('0x4'));var interaction=require('../../components/interaction/service');var config=require(_0x2f7e('0x5'));var controller=require(_0x2f7e('0x6'));router['get']('/',auth[_0x2f7e('0x7')](),controller[_0x2f7e('0x8')]);router[_0x2f7e('0x9')]('/:id',auth[_0x2f7e('0x7')](),controller[_0x2f7e('0xa')]);router[_0x2f7e('0xb')]('/',auth[_0x2f7e('0x7')](),controller[_0x2f7e('0xc')]);router[_0x2f7e('0xd')](_0x2f7e('0xe'),auth[_0x2f7e('0x7')](),controller['update']);router[_0x2f7e('0xf')](_0x2f7e('0xe'),auth['isAuthenticated'](),controller[_0x2f7e('0x10')]);module[_0x2f7e('0x11')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4065=['STRING','name','#0091EA'];(function(_0x17908b,_0x4738dd){var _0x37074c=function(_0x11fec9){while(--_0x11fec9){_0x17908b['push'](_0x17908b['shift']());}};_0x37074c(++_0x4738dd);}(_0x4065,0xdc));var _0x5406=function(_0x565e53,_0x2a229f){_0x565e53=_0x565e53-0x0;var _0x26d811=_0x4065[_0x565e53];return _0x26d811;};'use strict';var Sequelize=require('sequelize');module['exports']={'name':{'type':Sequelize['STRING'],'unique':_0x5406('0x0'),'allowNull':![],'validate':{'is':/[A-Za-z0-9._\\+*!-]+/,'notEmpty':!![]}},'color':{'type':Sequelize['STRING'],'defaultValue':_0x5406('0x1')},'description':{'type':Sequelize[_0x5406('0x2')]}};
\ No newline at end of file
+var _0x96cc=['#0091EA','sequelize','STRING'];(function(_0x1d83db,_0x89d115){var _0x2dc1d1=function(_0x13fdc3){while(--_0x13fdc3){_0x1d83db['push'](_0x1d83db['shift']());}};_0x2dc1d1(++_0x89d115);}(_0x96cc,0x16c));var _0xc96c=function(_0x293201,_0x36b763){_0x293201=_0x293201-0x0;var _0x2b7dfe=_0x96cc[_0x293201];return _0x2b7dfe;};'use strict';var Sequelize=require(_0xc96c('0x0'));module['exports']={'name':{'type':Sequelize[_0xc96c('0x1')],'unique':'name','allowNull':![],'validate':{'is':/[A-Za-z0-9._\\+*!-]+/,'notEmpty':!![]}},'color':{'type':Sequelize[_0xc96c('0x1')],'defaultValue':_0xc96c('0x2')},'description':{'type':Sequelize[_0xc96c('0x1')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x89c3=['find','userProfileId','autoAssociation','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','to-csv','lodash','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','end','json','offset','undefined','limit','status','set','Content-Range','reject','save','then','destroy','get','Tags','UserProfileResource','error','stack','name','send','index','map','Tag','rawAttributes','fieldName','type','key','query','intersection','model','attributes','fields','hasOwnProperty','nolimit','order','sort','where','filters','pick','merge','VIRTUAL','options','count','includeAll','include','findAll','rows','show','params','keys','length','catch','create','body','user','role','UserProfileSection'];(function(_0x28958d,_0xfa5f9f){var _0x439c72=function(_0x280df5){while(--_0x280df5){_0x28958d['push'](_0x28958d['shift']());}};_0x439c72(++_0xfa5f9f);}(_0x89c3,0xff));var _0x389c=function(_0x5ee8db,_0x5e7faa){_0x5ee8db=_0x5ee8db-0x0;var _0x3bd3ec=_0x89c3[_0x5ee8db];return _0x3bd3ec;};'use strict';var emlformat=require(_0x389c('0x0'));var rimraf=require(_0x389c('0x1'));var zipdir=require(_0x389c('0x2'));var jsonpatch=require(_0x389c('0x3'));var rp=require(_0x389c('0x4'));var moment=require(_0x389c('0x5'));var BPromise=require(_0x389c('0x6'));var Mustache=require(_0x389c('0x7'));var util=require('util');var path=require(_0x389c('0x8'));var sox=require('sox');var csv=require(_0x389c('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x389c('0xa'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x389c('0xb'));var deskjs=require(_0x389c('0xc'));var toCsv=require(_0x389c('0x9'));var querystring=require(_0x389c('0xd'));var Papa=require(_0x389c('0xe'));var Redis=require(_0x389c('0xf'));var authService=require(_0x389c('0x10'));var qs=require(_0x389c('0x11'));var as=require(_0x389c('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x389c('0x13'))(_0x389c('0x14'));var utils=require(_0x389c('0x15'));var config=require(_0x389c('0x16'));var licenseUtil=require(_0x389c('0x17'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x5d7aa7,_0x2a2d7d){_0x2a2d7d=_0x2a2d7d||0xcc;return function(_0x1de33a){if(_0x1de33a){return _0x5d7aa7[_0x389c('0x18')](_0x2a2d7d);}return _0x5d7aa7['status'](_0x2a2d7d)[_0x389c('0x19')]();};}function respondWithResult(_0x4bde6d,_0x36e855){_0x36e855=_0x36e855||0xc8;return function(_0x1b1618){if(_0x1b1618){return _0x4bde6d['status'](_0x36e855)[_0x389c('0x1a')](_0x1b1618);}};}function respondWithFilteredResult(_0x205e4f,_0x36c118){return function(_0x5c0756){if(_0x5c0756){var _0x4238e6=typeof _0x36c118[_0x389c('0x1b')]===_0x389c('0x1c')&&typeof _0x36c118[_0x389c('0x1d')]===_0x389c('0x1c');var _0x555481=_0x5c0756['count'];var _0x5a2b10=_0x4238e6?0x0:_0x36c118[_0x389c('0x1b')];var _0x2e23d2=_0x4238e6?_0x5c0756['count']:_0x36c118[_0x389c('0x1b')]+_0x36c118[_0x389c('0x1d')];var _0x421f5f;if(_0x2e23d2>=_0x555481){_0x2e23d2=_0x555481;_0x421f5f=0xc8;}else{_0x421f5f=0xce;}_0x205e4f[_0x389c('0x1e')](_0x421f5f);return _0x205e4f[_0x389c('0x1f')](_0x389c('0x20'),_0x5a2b10+'-'+_0x2e23d2+'/'+_0x555481)[_0x389c('0x1a')](_0x5c0756);}return null;};}function patchUpdates(_0x3110c1){return function(_0x239de1){try{jsonpatch['apply'](_0x239de1,_0x3110c1,!![]);}catch(_0x3d5fd1){return BPromise[_0x389c('0x21')](_0x3d5fd1);}return _0x239de1[_0x389c('0x22')]();};}function saveUpdates(_0xef720,_0x34bd04){return function(_0x2e1012){if(_0x2e1012){return _0x2e1012['update'](_0xef720)[_0x389c('0x23')](function(_0x152ba7){return _0x152ba7;});}return null;};}function removeEntity(_0xfe443c,_0x2dcd88){return function(_0x54869a){if(_0x54869a){return _0x54869a[_0x389c('0x24')]()[_0x389c('0x23')](function(){var _0x4e09c0=_0x54869a[_0x389c('0x25')]({'plain':!![]});var _0x5d1c4b=_0x389c('0x26');return db[_0x389c('0x27')][_0x389c('0x24')]({'where':{'type':_0x5d1c4b,'resourceId':_0x4e09c0['id']}})[_0x389c('0x23')](function(){return _0x54869a;});})[_0x389c('0x23')](function(){_0xfe443c['status'](0xcc)[_0x389c('0x19')]();});}};}function handleEntityNotFound(_0xcc1b60,_0x29e9f8){return function(_0x23382f){if(!_0x23382f){_0xcc1b60[_0x389c('0x18')](0x194);}return _0x23382f;};}function handleError(_0x48c79e,_0x3846a3){_0x3846a3=_0x3846a3||0x1f4;return function(_0x4e30da){logger[_0x389c('0x28')](_0x4e30da[_0x389c('0x29')]);if(_0x4e30da[_0x389c('0x2a')]){delete _0x4e30da[_0x389c('0x2a')];}_0x48c79e['status'](_0x3846a3)[_0x389c('0x2b')](_0x4e30da);};}exports[_0x389c('0x2c')]=function(_0x594f6a,_0x6f0166){var _0x3c13dd={},_0x3e13a2={},_0xa1cf2b={'count':0x0,'rows':[]};var _0x174c89=_[_0x389c('0x2d')](db[_0x389c('0x2e')][_0x389c('0x2f')],function(_0x22220d){return{'name':_0x22220d[_0x389c('0x30')],'type':_0x22220d[_0x389c('0x31')][_0x389c('0x32')]};});_0x3e13a2['model']=_['map'](_0x174c89,'name');_0x3e13a2[_0x389c('0x33')]=_['keys'](_0x594f6a[_0x389c('0x33')]);_0x3e13a2['filters']=_[_0x389c('0x34')](_0x3e13a2[_0x389c('0x35')],_0x3e13a2[_0x389c('0x33')]);_0x3c13dd[_0x389c('0x36')]=_['intersection'](_0x3e13a2[_0x389c('0x35')],qs[_0x389c('0x37')](_0x594f6a[_0x389c('0x33')][_0x389c('0x37')]));_0x3c13dd[_0x389c('0x36')]=_0x3c13dd[_0x389c('0x36')]['length']?_0x3c13dd['attributes']:_0x3e13a2[_0x389c('0x35')];if(!_0x594f6a[_0x389c('0x33')][_0x389c('0x38')](_0x389c('0x39'))){_0x3c13dd[_0x389c('0x1d')]=qs[_0x389c('0x1d')](_0x594f6a[_0x389c('0x33')][_0x389c('0x1d')]);_0x3c13dd[_0x389c('0x1b')]=qs[_0x389c('0x1b')](_0x594f6a[_0x389c('0x33')][_0x389c('0x1b')]);}_0x3c13dd[_0x389c('0x3a')]=qs['sort'](_0x594f6a['query'][_0x389c('0x3b')]);_0x3c13dd[_0x389c('0x3c')]=qs[_0x389c('0x3d')](_[_0x389c('0x3e')](_0x594f6a[_0x389c('0x33')],_0x3e13a2[_0x389c('0x3d')]),_0x174c89);if(_0x594f6a['query']['filter']){_0x3c13dd[_0x389c('0x3c')]=_[_0x389c('0x3f')](_0x3c13dd[_0x389c('0x3c')],{'$or':_['map'](_0x174c89,function(_0x39dcd6){if(_0x39dcd6[_0x389c('0x31')]!==_0x389c('0x40')){var _0x3f85de={};_0x3f85de[_0x39dcd6[_0x389c('0x2a')]]={'$like':'%'+_0x594f6a[_0x389c('0x33')]['filter']+'%'};return _0x3f85de;}})});}_0x3c13dd=_[_0x389c('0x3f')]({},_0x3c13dd,_0x594f6a[_0x389c('0x41')]);var _0x3bb25e={'where':_0x3c13dd[_0x389c('0x3c')]};return db['Tag'][_0x389c('0x42')](_0x3bb25e)['then'](function(_0x2dbce5){_0xa1cf2b[_0x389c('0x42')]=_0x2dbce5;if(_0x594f6a[_0x389c('0x33')][_0x389c('0x43')]){_0x3c13dd[_0x389c('0x44')]=[{'all':!![]}];}return db[_0x389c('0x2e')][_0x389c('0x45')](_0x3c13dd);})[_0x389c('0x23')](function(_0x2fc644){_0xa1cf2b[_0x389c('0x46')]=_0x2fc644;return _0xa1cf2b;})[_0x389c('0x23')](respondWithFilteredResult(_0x6f0166,_0x3c13dd))['catch'](handleError(_0x6f0166,null));};exports[_0x389c('0x47')]=function(_0x415534,_0x515905){var _0x38995f={'raw':!![],'where':{'id':_0x415534[_0x389c('0x48')]['id']}},_0x59df4f={};_0x59df4f[_0x389c('0x35')]=_[_0x389c('0x49')](db[_0x389c('0x2e')][_0x389c('0x2f')]);_0x59df4f[_0x389c('0x33')]=_[_0x389c('0x49')](_0x415534[_0x389c('0x33')]);_0x59df4f[_0x389c('0x3d')]=_[_0x389c('0x34')](_0x59df4f[_0x389c('0x35')],_0x59df4f[_0x389c('0x33')]);_0x38995f[_0x389c('0x36')]=_['intersection'](_0x59df4f['model'],qs[_0x389c('0x37')](_0x415534[_0x389c('0x33')][_0x389c('0x37')]));_0x38995f['attributes']=_0x38995f[_0x389c('0x36')][_0x389c('0x4a')]?_0x38995f[_0x389c('0x36')]:_0x59df4f[_0x389c('0x35')];if(_0x415534['query']['includeAll']){_0x38995f['include']=[{'all':!![]}];}_0x38995f=_['merge']({},_0x38995f,_0x415534[_0x389c('0x41')]);return db['Tag']['find'](_0x38995f)[_0x389c('0x23')](handleEntityNotFound(_0x515905,null))[_0x389c('0x23')](respondWithResult(_0x515905,null))[_0x389c('0x4b')](handleError(_0x515905,null));};exports[_0x389c('0x4c')]=function(_0x153db2,_0xd37a48){return db[_0x389c('0x2e')]['create'](_0x153db2[_0x389c('0x4d')],{})[_0x389c('0x23')](function(_0x28e449){var _0x10581a=_0x153db2[_0x389c('0x4e')][_0x389c('0x25')]({'plain':!![]});if(!_0x10581a)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x10581a[_0x389c('0x4f')]==='user'){var _0xf56fb2=_0x28e449['get']({'plain':!![]});var _0x26936d=_0x389c('0x26');return db[_0x389c('0x50')][_0x389c('0x51')]({'where':{'name':_0x26936d,'userProfileId':_0x10581a[_0x389c('0x52')]},'raw':!![]})[_0x389c('0x23')](function(_0x5ad065){if(_0x5ad065&&_0x5ad065[_0x389c('0x53')]===0x0){return db[_0x389c('0x27')]['create']({'name':_0xf56fb2[_0x389c('0x2a')],'resourceId':_0xf56fb2['id'],'type':_0x5ad065[_0x389c('0x2a')],'sectionId':_0x5ad065['id']},{})[_0x389c('0x23')](function(){return _0x28e449;});}else{return _0x28e449;}})['catch'](function(_0x393daa){logger[_0x389c('0x28')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x393daa);throw _0x393daa;});}return _0x28e449;})[_0x389c('0x23')](respondWithResult(_0xd37a48,0xc9))[_0x389c('0x4b')](handleError(_0xd37a48,null));};exports['update']=function(_0x165d81,_0x6bd59d){if(_0x165d81[_0x389c('0x4d')]['id']){delete _0x165d81[_0x389c('0x4d')]['id'];}return db[_0x389c('0x2e')][_0x389c('0x51')]({'where':{'id':_0x165d81[_0x389c('0x48')]['id']}})[_0x389c('0x23')](handleEntityNotFound(_0x6bd59d,null))[_0x389c('0x23')](saveUpdates(_0x165d81[_0x389c('0x4d')],null))['then'](respondWithResult(_0x6bd59d,null))[_0x389c('0x4b')](handleError(_0x6bd59d,null));};exports[_0x389c('0x24')]=function(_0x3c2469,_0x5edc1c){return db[_0x389c('0x2e')]['find']({'where':{'id':_0x3c2469['params']['id']}})[_0x389c('0x23')](handleEntityNotFound(_0x5edc1c,null))[_0x389c('0x23')](removeEntity(_0x5edc1c,null))[_0x389c('0x4b')](handleError(_0x5edc1c,null));};
\ No newline at end of file
+var _0x765e=['end','status','undefined','limit','count','offset','set','json','apply','update','then','destroy','UserProfileResource','error','stack','name','send','index','map','Tag','rawAttributes','type','key','model','query','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','VIRTUAL','merge','options','includeAll','findAll','show','params','keys','include','catch','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','get','find','userProfileId','autoAssociation','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../mysqldb','sendStatus'];(function(_0x2ef44b,_0x553359){var _0x2405b9=function(_0x278290){while(--_0x278290){_0x2ef44b['push'](_0x2ef44b['shift']());}};_0x2405b9(++_0x553359);}(_0x765e,0x131));var _0xe765=function(_0x55db9f,_0x11adf4){_0x55db9f=_0x55db9f-0x0;var _0x4d615c=_0x765e[_0x55db9f];return _0x4d615c;};'use strict';var emlformat=require(_0xe765('0x0'));var rimraf=require(_0xe765('0x1'));var zipdir=require(_0xe765('0x2'));var jsonpatch=require(_0xe765('0x3'));var rp=require(_0xe765('0x4'));var moment=require(_0xe765('0x5'));var BPromise=require(_0xe765('0x6'));var Mustache=require(_0xe765('0x7'));var util=require(_0xe765('0x8'));var path=require(_0xe765('0x9'));var sox=require(_0xe765('0xa'));var csv=require(_0xe765('0xb'));var ejs=require(_0xe765('0xc'));var fs=require('fs');var fs_extra=require(_0xe765('0xd'));var _=require(_0xe765('0xe'));var squel=require('squel');var crypto=require(_0xe765('0xf'));var jsforce=require(_0xe765('0x10'));var deskjs=require(_0xe765('0x11'));var toCsv=require(_0xe765('0xb'));var querystring=require(_0xe765('0x12'));var Papa=require(_0xe765('0x13'));var Redis=require(_0xe765('0x14'));var authService=require('../../components/auth/service');var qs=require(_0xe765('0x15'));var as=require(_0xe765('0x16'));var hardwareService=require(_0xe765('0x17'));var logger=require('../../config/logger')(_0xe765('0x18'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0xe765('0x19'))['db'];function respondWithStatusCode(_0x18177f,_0x9411a0){_0x9411a0=_0x9411a0||0xcc;return function(_0x27456b){if(_0x27456b){return _0x18177f[_0xe765('0x1a')](_0x9411a0);}return _0x18177f['status'](_0x9411a0)[_0xe765('0x1b')]();};}function respondWithResult(_0x3a26d8,_0x395312){_0x395312=_0x395312||0xc8;return function(_0x58dc37){if(_0x58dc37){return _0x3a26d8[_0xe765('0x1c')](_0x395312)['json'](_0x58dc37);}};}function respondWithFilteredResult(_0x50e2ab,_0x2f673b){return function(_0x1b1cfe){if(_0x1b1cfe){var _0x3c887b=typeof _0x2f673b['offset']===_0xe765('0x1d')&&typeof _0x2f673b[_0xe765('0x1e')]===_0xe765('0x1d');var _0x1db3ca=_0x1b1cfe[_0xe765('0x1f')];var _0xf93371=_0x3c887b?0x0:_0x2f673b[_0xe765('0x20')];var _0x2a95a9=_0x3c887b?_0x1b1cfe[_0xe765('0x1f')]:_0x2f673b['offset']+_0x2f673b[_0xe765('0x1e')];var _0x56905c;if(_0x2a95a9>=_0x1db3ca){_0x2a95a9=_0x1db3ca;_0x56905c=0xc8;}else{_0x56905c=0xce;}_0x50e2ab[_0xe765('0x1c')](_0x56905c);return _0x50e2ab[_0xe765('0x21')]('Content-Range',_0xf93371+'-'+_0x2a95a9+'/'+_0x1db3ca)[_0xe765('0x22')](_0x1b1cfe);}return null;};}function patchUpdates(_0x59118f){return function(_0x1c73c8){try{jsonpatch[_0xe765('0x23')](_0x1c73c8,_0x59118f,!![]);}catch(_0x1efb96){return BPromise['reject'](_0x1efb96);}return _0x1c73c8['save']();};}function saveUpdates(_0x4b789b,_0x1c6de4){return function(_0x2a4427){if(_0x2a4427){return _0x2a4427[_0xe765('0x24')](_0x4b789b)[_0xe765('0x25')](function(_0x54b59c){return _0x54b59c;});}return null;};}function removeEntity(_0x50cfcb,_0x18ba77){return function(_0x2e2a34){if(_0x2e2a34){return _0x2e2a34[_0xe765('0x26')]()[_0xe765('0x25')](function(){var _0xad34a7=_0x2e2a34['get']({'plain':!![]});var _0x1aacbc='Tags';return db[_0xe765('0x27')][_0xe765('0x26')]({'where':{'type':_0x1aacbc,'resourceId':_0xad34a7['id']}})[_0xe765('0x25')](function(){return _0x2e2a34;});})[_0xe765('0x25')](function(){_0x50cfcb[_0xe765('0x1c')](0xcc)[_0xe765('0x1b')]();});}};}function handleEntityNotFound(_0x471d57,_0x530838){return function(_0x55086d){if(!_0x55086d){_0x471d57[_0xe765('0x1a')](0x194);}return _0x55086d;};}function handleError(_0x4bc5c1,_0xf19724){_0xf19724=_0xf19724||0x1f4;return function(_0x3f7493){logger[_0xe765('0x28')](_0x3f7493[_0xe765('0x29')]);if(_0x3f7493[_0xe765('0x2a')]){delete _0x3f7493['name'];}_0x4bc5c1[_0xe765('0x1c')](_0xf19724)[_0xe765('0x2b')](_0x3f7493);};}exports[_0xe765('0x2c')]=function(_0x5b4a3f,_0x5947c1){var _0x315322={},_0x47d7e7={},_0x477eef={'count':0x0,'rows':[]};var _0xe81d01=_[_0xe765('0x2d')](db[_0xe765('0x2e')][_0xe765('0x2f')],function(_0x56127d){return{'name':_0x56127d['fieldName'],'type':_0x56127d[_0xe765('0x30')][_0xe765('0x31')]};});_0x47d7e7[_0xe765('0x32')]=_[_0xe765('0x2d')](_0xe81d01,_0xe765('0x2a'));_0x47d7e7['query']=_['keys'](_0x5b4a3f[_0xe765('0x33')]);_0x47d7e7['filters']=_[_0xe765('0x34')](_0x47d7e7[_0xe765('0x32')],_0x47d7e7[_0xe765('0x33')]);_0x315322[_0xe765('0x35')]=_[_0xe765('0x34')](_0x47d7e7[_0xe765('0x32')],qs[_0xe765('0x36')](_0x5b4a3f['query']['fields']));_0x315322['attributes']=_0x315322[_0xe765('0x35')][_0xe765('0x37')]?_0x315322[_0xe765('0x35')]:_0x47d7e7[_0xe765('0x32')];if(!_0x5b4a3f['query'][_0xe765('0x38')](_0xe765('0x39'))){_0x315322[_0xe765('0x1e')]=qs[_0xe765('0x1e')](_0x5b4a3f['query'][_0xe765('0x1e')]);_0x315322['offset']=qs[_0xe765('0x20')](_0x5b4a3f[_0xe765('0x33')][_0xe765('0x20')]);}_0x315322[_0xe765('0x3a')]=qs[_0xe765('0x3b')](_0x5b4a3f[_0xe765('0x33')][_0xe765('0x3b')]);_0x315322[_0xe765('0x3c')]=qs[_0xe765('0x3d')](_[_0xe765('0x3e')](_0x5b4a3f['query'],_0x47d7e7[_0xe765('0x3d')]),_0xe81d01);if(_0x5b4a3f[_0xe765('0x33')][_0xe765('0x3f')]){_0x315322['where']=_['merge'](_0x315322['where'],{'$or':_[_0xe765('0x2d')](_0xe81d01,function(_0x5898b3){if(_0x5898b3[_0xe765('0x30')]!==_0xe765('0x40')){var _0x3be7d7={};_0x3be7d7[_0x5898b3[_0xe765('0x2a')]]={'$like':'%'+_0x5b4a3f['query'][_0xe765('0x3f')]+'%'};return _0x3be7d7;}})});}_0x315322=_[_0xe765('0x41')]({},_0x315322,_0x5b4a3f[_0xe765('0x42')]);var _0x4199ea={'where':_0x315322[_0xe765('0x3c')]};return db[_0xe765('0x2e')][_0xe765('0x1f')](_0x4199ea)[_0xe765('0x25')](function(_0xb92246){_0x477eef[_0xe765('0x1f')]=_0xb92246;if(_0x5b4a3f['query'][_0xe765('0x43')]){_0x315322['include']=[{'all':!![]}];}return db[_0xe765('0x2e')][_0xe765('0x44')](_0x315322);})['then'](function(_0x3977e5){_0x477eef['rows']=_0x3977e5;return _0x477eef;})['then'](respondWithFilteredResult(_0x5947c1,_0x315322))['catch'](handleError(_0x5947c1,null));};exports[_0xe765('0x45')]=function(_0xb77b5e,_0x1ded88){var _0x54833a={'raw':!![],'where':{'id':_0xb77b5e[_0xe765('0x46')]['id']}},_0x2de9de={};_0x2de9de[_0xe765('0x32')]=_[_0xe765('0x47')](db[_0xe765('0x2e')][_0xe765('0x2f')]);_0x2de9de[_0xe765('0x33')]=_[_0xe765('0x47')](_0xb77b5e[_0xe765('0x33')]);_0x2de9de['filters']=_[_0xe765('0x34')](_0x2de9de['model'],_0x2de9de['query']);_0x54833a[_0xe765('0x35')]=_['intersection'](_0x2de9de[_0xe765('0x32')],qs[_0xe765('0x36')](_0xb77b5e[_0xe765('0x33')]['fields']));_0x54833a[_0xe765('0x35')]=_0x54833a['attributes'][_0xe765('0x37')]?_0x54833a[_0xe765('0x35')]:_0x2de9de[_0xe765('0x32')];if(_0xb77b5e['query'][_0xe765('0x43')]){_0x54833a[_0xe765('0x48')]=[{'all':!![]}];}_0x54833a=_[_0xe765('0x41')]({},_0x54833a,_0xb77b5e[_0xe765('0x42')]);return db['Tag']['find'](_0x54833a)['then'](handleEntityNotFound(_0x1ded88,null))[_0xe765('0x25')](respondWithResult(_0x1ded88,null))[_0xe765('0x49')](handleError(_0x1ded88,null));};exports[_0xe765('0x4a')]=function(_0x58310d,_0x14834c){return db['Tag'][_0xe765('0x4a')](_0x58310d[_0xe765('0x4b')],{})[_0xe765('0x25')](function(_0x29e661){var _0x7f132f=_0x58310d[_0xe765('0x4c')]['get']({'plain':!![]});if(!_0x7f132f)throw new Error(_0xe765('0x4d'));if(_0x7f132f[_0xe765('0x4e')]===_0xe765('0x4c')){var _0x1214a8=_0x29e661[_0xe765('0x4f')]({'plain':!![]});var _0x182957='Tags';return db['UserProfileSection'][_0xe765('0x50')]({'where':{'name':_0x182957,'userProfileId':_0x7f132f[_0xe765('0x51')]},'raw':!![]})[_0xe765('0x25')](function(_0x5199b2){if(_0x5199b2&&_0x5199b2[_0xe765('0x52')]===0x0){return db[_0xe765('0x27')][_0xe765('0x4a')]({'name':_0x1214a8[_0xe765('0x2a')],'resourceId':_0x1214a8['id'],'type':_0x5199b2[_0xe765('0x2a')],'sectionId':_0x5199b2['id']},{})[_0xe765('0x25')](function(){return _0x29e661;});}else{return _0x29e661;}})[_0xe765('0x49')](function(_0x292177){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x292177);throw _0x292177;});}return _0x29e661;})[_0xe765('0x25')](respondWithResult(_0x14834c,0xc9))['catch'](handleError(_0x14834c,null));};exports[_0xe765('0x24')]=function(_0x125b04,_0x8bcddb){if(_0x125b04['body']['id']){delete _0x125b04[_0xe765('0x4b')]['id'];}return db[_0xe765('0x2e')]['find']({'where':{'id':_0x125b04[_0xe765('0x46')]['id']}})[_0xe765('0x25')](handleEntityNotFound(_0x8bcddb,null))[_0xe765('0x25')](saveUpdates(_0x125b04[_0xe765('0x4b')],null))[_0xe765('0x25')](respondWithResult(_0x8bcddb,null))[_0xe765('0x49')](handleError(_0x8bcddb,null));};exports[_0xe765('0x26')]=function(_0x361e36,_0x45be53){return db[_0xe765('0x2e')][_0xe765('0x50')]({'where':{'id':_0x361e36[_0xe765('0x46')]['id']}})[_0xe765('0x25')](handleEntityNotFound(_0x45be53,null))['then'](removeEntity(_0x45be53,null))[_0xe765('0x49')](handleError(_0x45be53,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb247=['util','moment','bluebird','request-promise','path','rimraf','../../config/environment','./tag.attributes','exports','Tag','tools_tags','lodash'];(function(_0x391e9a,_0x307733){var _0x295b1d=function(_0xc3b445){while(--_0xc3b445){_0x391e9a['push'](_0x391e9a['shift']());}};_0x295b1d(++_0x307733);}(_0xb247,0x107));var _0x7b24=function(_0x2a83af,_0x4fa9ed){_0x2a83af=_0x2a83af-0x0;var _0x2e1648=_0xb247[_0x2a83af];return _0x2e1648;};'use strict';var _=require(_0x7b24('0x0'));var util=require(_0x7b24('0x1'));var logger=require('../../config/logger')('api');var moment=require(_0x7b24('0x2'));var BPromise=require(_0x7b24('0x3'));var rp=require(_0x7b24('0x4'));var fs=require('fs');var path=require(_0x7b24('0x5'));var rimraf=require(_0x7b24('0x6'));var config=require(_0x7b24('0x7'));var attributes=require(_0x7b24('0x8'));module[_0x7b24('0x9')]=function(_0x1044d6,_0x1a4799){return _0x1044d6['define'](_0x7b24('0xa'),attributes,{'tableName':_0x7b24('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xd19f=['../../config/environment','exports','define','Tag','lodash','util','../../config/logger','api','moment','bluebird','path','rimraf'];(function(_0x5a9f8b,_0x2bbb7b){var _0x54ffe6=function(_0x55b947){while(--_0x55b947){_0x5a9f8b['push'](_0x5a9f8b['shift']());}};_0x54ffe6(++_0x2bbb7b);}(_0xd19f,0x1e4));var _0xfd19=function(_0x266618,_0x18f637){_0x266618=_0x266618-0x0;var _0x54dbf5=_0xd19f[_0x266618];return _0x54dbf5;};'use strict';var _=require(_0xfd19('0x0'));var util=require(_0xfd19('0x1'));var logger=require(_0xfd19('0x2'))(_0xfd19('0x3'));var moment=require(_0xfd19('0x4'));var BPromise=require(_0xfd19('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xfd19('0x6'));var rimraf=require(_0xfd19('0x7'));var config=require(_0xfd19('0x8'));var attributes=require('./tag.attributes');module[_0xfd19('0x9')]=function(_0x247604,_0x172f28){return _0x247604[_0xfd19('0xa')](_0xfd19('0xb'),attributes,{'tableName':'tools_tags','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xec56=['http','request','then','Tag,\x20%s,\x20%s','request\x20sent','debug','Tag,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','catch','lodash','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client'];(function(_0x255d5b,_0x4f6f35){var _0x3e141a=function(_0x249ee2){while(--_0x249ee2){_0x255d5b['push'](_0x255d5b['shift']());}};_0x3e141a(++_0x4f6f35);}(_0xec56,0x1bd));var _0x6ec5=function(_0x34b1fd,_0x4a46dd){_0x34b1fd=_0x34b1fd-0x0;var _0x58fd08=_0xec56[_0x34b1fd];return _0x58fd08;};'use strict';var _=require(_0x6ec5('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0x6ec5('0x1'));var rs=require(_0x6ec5('0x2'));var fs=require('fs');var Redis=require(_0x6ec5('0x3'));var db=require(_0x6ec5('0x4'))['db'];var utils=require(_0x6ec5('0x5'));var logger=require(_0x6ec5('0x6'))(_0x6ec5('0x7'));var config=require(_0x6ec5('0x8'));var jayson=require(_0x6ec5('0x9'));var client=jayson[_0x6ec5('0xa')][_0x6ec5('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x3bb683,_0x35be4e,_0x1f59cd){return new BPromise(function(_0x3dd891,_0x225d2f){return client[_0x6ec5('0xc')](_0x3bb683,_0x1f59cd)[_0x6ec5('0xd')](function(_0x3ff17c){logger['info'](_0x6ec5('0xe'),_0x35be4e,_0x6ec5('0xf'));logger[_0x6ec5('0x10')](_0x6ec5('0x11'),_0x35be4e,_0x6ec5('0xf'),JSON[_0x6ec5('0x12')](_0x3ff17c));if(_0x3ff17c[_0x6ec5('0x13')]){if(_0x3ff17c['error'][_0x6ec5('0x14')]===0x1f4){logger[_0x6ec5('0x13')](_0x6ec5('0xe'),_0x35be4e,_0x3ff17c[_0x6ec5('0x13')][_0x6ec5('0x15')]);return _0x225d2f(_0x3ff17c[_0x6ec5('0x13')][_0x6ec5('0x15')]);}logger[_0x6ec5('0x13')]('Tag,\x20%s,\x20%s',_0x35be4e,_0x3ff17c[_0x6ec5('0x13')]['message']);return _0x3dd891(_0x3ff17c[_0x6ec5('0x13')][_0x6ec5('0x15')]);}else{logger[_0x6ec5('0x16')](_0x6ec5('0xe'),_0x35be4e,_0x6ec5('0xf'));_0x3dd891(_0x3ff17c['result'][_0x6ec5('0x15')]);}})[_0x6ec5('0x17')](function(_0x125ae6){logger[_0x6ec5('0x13')](_0x6ec5('0xe'),_0x35be4e,_0x125ae6);_0x225d2f(_0x125ae6);});});}
\ No newline at end of file
+var _0xb43b=['debug','Tag,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','request','then','Tag,\x20%s,\x20%s','request\x20sent'];(function(_0x69062,_0x231f82){var _0x3dabab=function(_0xc96141){while(--_0xc96141){_0x69062['push'](_0x69062['shift']());}};_0x3dabab(++_0x231f82);}(_0xb43b,0xbf));var _0xbb43=function(_0x1f980d,_0x54260e){_0x1f980d=_0x1f980d-0x0;var _0x59886d=_0xb43b[_0x1f980d];return _0x59886d;};'use strict';var _=require(_0xbb43('0x0'));var util=require('util');var moment=require(_0xbb43('0x1'));var BPromise=require(_0xbb43('0x2'));var rs=require(_0xbb43('0x3'));var fs=require('fs');var Redis=require(_0xbb43('0x4'));var db=require(_0xbb43('0x5'))['db'];var utils=require(_0xbb43('0x6'));var logger=require(_0xbb43('0x7'))(_0xbb43('0x8'));var config=require(_0xbb43('0x9'));var jayson=require(_0xbb43('0xa'));var client=jayson[_0xbb43('0xb')]['http']({'port':0x232a});function respondWithRpcPromise(_0x16fc1c,_0x4a070c,_0x54806a){return new BPromise(function(_0x33f9a8,_0x120d67){return client[_0xbb43('0xc')](_0x16fc1c,_0x54806a)[_0xbb43('0xd')](function(_0x117f4d){logger['info'](_0xbb43('0xe'),_0x4a070c,_0xbb43('0xf'));logger[_0xbb43('0x10')](_0xbb43('0x11'),_0x4a070c,'request\x20sent',JSON[_0xbb43('0x12')](_0x117f4d));if(_0x117f4d[_0xbb43('0x13')]){if(_0x117f4d['error']['code']===0x1f4){logger['error'](_0xbb43('0xe'),_0x4a070c,_0x117f4d['error'][_0xbb43('0x14')]);return _0x120d67(_0x117f4d['error'][_0xbb43('0x14')]);}logger[_0xbb43('0x13')](_0xbb43('0xe'),_0x4a070c,_0x117f4d[_0xbb43('0x13')][_0xbb43('0x14')]);return _0x33f9a8(_0x117f4d['error'][_0xbb43('0x14')]);}else{logger['info'](_0xbb43('0xe'),_0x4a070c,_0xbb43('0xf'));_0x33f9a8(_0x117f4d[_0xbb43('0x15')][_0xbb43('0x14')]);}})[_0xbb43('0x16')](function(_0x126f61){logger[_0xbb43('0x13')](_0xbb43('0xe'),_0x4a070c,_0x126f61);_0x120d67(_0x126f61);});});}
\ 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(_0x46e363,_0x45d7e2){var _0x3fb059=function(_0x5e6274){while(--_0x5e6274){_0x46e363['push'](_0x46e363['shift']());}};_0x3fb059(++_0x45d7e2);}(_0xa9e0,0x123));var _0x0a9e=function(_0x187ee1,_0x3fd1e6){_0x187ee1=_0x187ee1-0x0;var _0x388160=_0xa9e0[_0x187ee1];return _0x388160;};'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(_0x57b54c,_0x54ce0d){var _0x59cc19=function(_0xa33bc6){while(--_0xa33bc6){_0x57b54c['push'](_0x57b54c['shift']());}};_0x59cc19(++_0x54ce0d);}(_0xa9e0,0x123));var _0x0a9e=function(_0x387777,_0x356171){_0x387777=_0x387777-0x0;var _0x3f84c0=_0xa9e0[_0x387777];return _0x3f84c0;};'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 _0xb10b=['name','sequelize','STRING'];(function(_0x352ede,_0x4b1322){var _0x26a517=function(_0x3481b2){while(--_0x3481b2){_0x352ede['push'](_0x352ede['shift']());}};_0x26a517(++_0x4b1322);}(_0xb10b,0x12a));var _0xbb10=function(_0x1fc82b,_0x5150a6){_0x1fc82b=_0x1fc82b-0x0;var _0x4c6679=_0xb10b[_0x1fc82b];return _0x4c6679;};'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 _0xe706=['STRING','sequelize','exports'];(function(_0xb0f7c3,_0x4eae95){var _0x28ea68=function(_0x4395a7){while(--_0x4395a7){_0xb0f7c3['push'](_0xb0f7c3['shift']());}};_0x28ea68(++_0x4eae95);}(_0xe706,0xa3));var _0x6e70=function(_0x2ebd68,_0x10e9cc){_0x2ebd68=_0x2ebd68-0x0;var _0x2e68d5=_0xe706[_0x2ebd68];return _0x2e68d5;};'use strict';var Sequelize=require(_0x6e70('0x0'));module[_0x6e70('0x1')]={'name':{'type':Sequelize[_0x6e70('0x2')],'allowNull':![],'unique':'name'},'description':{'type':Sequelize[_0x6e70('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa936=['TeamVoiceQueue','all','addAgents','removeAgents','Whatsapp','transaction','parse','Queue:remove','getAgents','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','redis','defaults','socket.io-emitter','./team.socket','register','sendStatus','status','json','offset','undefined','count','set','Content-Range','reject','save','update','destroy','then','get','Teams','UserProfileResource','error','stack','name','index','rawAttributes','fieldName','type','key','model','map','query','keys','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','limit','order','sort','where','filter','merge','VIRTUAL','options','Team','includeAll','include','findAll','catch','params','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','findOne','channel','isValidChannel','Queue','pick','toLowerCase','Queues','ValidationError','Unknown\x20channel','removeQueues','Sequelize','remove','capitalize','ids','Voice','Chat','Mail','Sms','Openchannel','sequelize','through','penalty','QueueId','findOrCreate','emit','Queue:save','User','online','voicePause','interface','isNil','format','SIP/%s'];(function(_0x521b9c,_0xad4ad7){var _0x44100a=function(_0x4f4f88){while(--_0x4f4f88){_0x521b9c['push'](_0x521b9c['shift']());}};_0x44100a(++_0xad4ad7);}(_0xa936,0x107));var _0x6a93=function(_0x36c5b0,_0x5001da){_0x36c5b0=_0x36c5b0-0x0;var _0xf19333=_0xa936[_0x36c5b0];return _0xf19333;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x6a93('0x0'));var jsonpatch=require(_0x6a93('0x1'));var rp=require(_0x6a93('0x2'));var moment=require('moment');var BPromise=require(_0x6a93('0x3'));var Mustache=require(_0x6a93('0x4'));var util=require(_0x6a93('0x5'));var path=require('path');var sox=require(_0x6a93('0x6'));var csv=require('to-csv');var ejs=require(_0x6a93('0x7'));var fs=require('fs');var fs_extra=require(_0x6a93('0x8'));var _=require(_0x6a93('0x9'));var squel=require(_0x6a93('0xa'));var crypto=require(_0x6a93('0xb'));var jsforce=require(_0x6a93('0xc'));var deskjs=require('desk.js');var toCsv=require(_0x6a93('0xd'));var querystring=require(_0x6a93('0xe'));var Papa=require(_0x6a93('0xf'));var Redis=require(_0x6a93('0x10'));var authService=require(_0x6a93('0x11'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x6a93('0x12'));var logger=require(_0x6a93('0x13'))(_0x6a93('0x14'));var utils=require(_0x6a93('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0x6a93('0x16'));var db=require('../../mysqldb')['db'];config[_0x6a93('0x17')]=_[_0x6a93('0x18')](config[_0x6a93('0x17')],{'host':'localhost','port':0x18eb});var socket=require(_0x6a93('0x19'))(new Redis(config['redis']));require(_0x6a93('0x1a'))[_0x6a93('0x1b')](socket);function respondWithStatusCode(_0x4aeeb6,_0x11a459){_0x11a459=_0x11a459||0xcc;return function(_0x3ce929){if(_0x3ce929){return _0x4aeeb6[_0x6a93('0x1c')](_0x11a459);}return _0x4aeeb6['status'](_0x11a459)['end']();};}function respondWithResult(_0x3e87c9,_0x274f1d){_0x274f1d=_0x274f1d||0xc8;return function(_0x366ac0){if(_0x366ac0){return _0x3e87c9[_0x6a93('0x1d')](_0x274f1d)[_0x6a93('0x1e')](_0x366ac0);}};}function respondWithFilteredResult(_0x32a018,_0x364ea7){return function(_0x4f2139){if(_0x4f2139){var _0x41fcac=typeof _0x364ea7[_0x6a93('0x1f')]===_0x6a93('0x20')&&typeof _0x364ea7['limit']===_0x6a93('0x20');var _0x401402=_0x4f2139[_0x6a93('0x21')];var _0x529e82=_0x41fcac?0x0:_0x364ea7['offset'];var _0xf75c0a=_0x41fcac?_0x4f2139[_0x6a93('0x21')]:_0x364ea7[_0x6a93('0x1f')]+_0x364ea7['limit'];var _0x236a08;if(_0xf75c0a>=_0x401402){_0xf75c0a=_0x401402;_0x236a08=0xc8;}else{_0x236a08=0xce;}_0x32a018[_0x6a93('0x1d')](_0x236a08);return _0x32a018[_0x6a93('0x22')](_0x6a93('0x23'),_0x529e82+'-'+_0xf75c0a+'/'+_0x401402)[_0x6a93('0x1e')](_0x4f2139);}return null;};}function patchUpdates(_0x50bf3e){return function(_0x259f79){try{jsonpatch['apply'](_0x259f79,_0x50bf3e,!![]);}catch(_0x4b8786){return BPromise[_0x6a93('0x24')](_0x4b8786);}return _0x259f79[_0x6a93('0x25')]();};}function saveUpdates(_0x25e3e1,_0xc51e83){return function(_0x13fb85){if(_0x13fb85){return _0x13fb85[_0x6a93('0x26')](_0x25e3e1)['then'](function(_0x5c5cb6){return _0x5c5cb6;});}return null;};}function removeEntity(_0x2c6bde,_0x5a6734){return function(_0x15e7d4){if(_0x15e7d4){return _0x15e7d4[_0x6a93('0x27')]()[_0x6a93('0x28')](function(){var _0x97259=_0x15e7d4[_0x6a93('0x29')]({'plain':!![]});var _0x12bb4b=_0x6a93('0x2a');return db[_0x6a93('0x2b')][_0x6a93('0x27')]({'where':{'type':_0x12bb4b,'resourceId':_0x97259['id']}})[_0x6a93('0x28')](function(){return _0x15e7d4;});})['then'](function(){_0x2c6bde[_0x6a93('0x1d')](0xcc)['end']();});}};}function handleEntityNotFound(_0xca6b7b,_0x3db08f){return function(_0x2ee77d){if(!_0x2ee77d){_0xca6b7b[_0x6a93('0x1c')](0x194);}return _0x2ee77d;};}function handleError(_0x423c9f,_0xde547c){_0xde547c=_0xde547c||0x1f4;return function(_0x3e27ac){logger[_0x6a93('0x2c')](_0x3e27ac[_0x6a93('0x2d')]);if(_0x3e27ac[_0x6a93('0x2e')]){delete _0x3e27ac['name'];}_0x423c9f[_0x6a93('0x1d')](_0xde547c)['send'](_0x3e27ac);};}exports[_0x6a93('0x2f')]=function(_0x35705e,_0x44de88){var _0x5d2136={},_0x13636e={},_0x153b3a={'count':0x0,'rows':[]};var _0x25dc20=_['map'](db['Team'][_0x6a93('0x30')],function(_0x3dd611){return{'name':_0x3dd611[_0x6a93('0x31')],'type':_0x3dd611[_0x6a93('0x32')][_0x6a93('0x33')]};});_0x13636e[_0x6a93('0x34')]=_[_0x6a93('0x35')](_0x25dc20,'name');_0x13636e[_0x6a93('0x36')]=_[_0x6a93('0x37')](_0x35705e[_0x6a93('0x36')]);_0x13636e[_0x6a93('0x38')]=_['intersection'](_0x13636e[_0x6a93('0x34')],_0x13636e[_0x6a93('0x36')]);_0x5d2136[_0x6a93('0x39')]=_[_0x6a93('0x3a')](_0x13636e[_0x6a93('0x34')],qs[_0x6a93('0x3b')](_0x35705e[_0x6a93('0x36')][_0x6a93('0x3b')]));_0x5d2136[_0x6a93('0x39')]=_0x5d2136[_0x6a93('0x39')][_0x6a93('0x3c')]?_0x5d2136[_0x6a93('0x39')]:_0x13636e[_0x6a93('0x34')];if(!_0x35705e['query'][_0x6a93('0x3d')](_0x6a93('0x3e'))){_0x5d2136[_0x6a93('0x3f')]=qs[_0x6a93('0x3f')](_0x35705e['query']['limit']);_0x5d2136['offset']=qs[_0x6a93('0x1f')](_0x35705e[_0x6a93('0x36')]['offset']);}_0x5d2136[_0x6a93('0x40')]=qs['sort'](_0x35705e[_0x6a93('0x36')][_0x6a93('0x41')]);_0x5d2136[_0x6a93('0x42')]=qs[_0x6a93('0x38')](_['pick'](_0x35705e[_0x6a93('0x36')],_0x13636e['filters']),_0x25dc20);if(_0x35705e[_0x6a93('0x36')][_0x6a93('0x43')]){_0x5d2136['where']=_[_0x6a93('0x44')](_0x5d2136[_0x6a93('0x42')],{'$or':_[_0x6a93('0x35')](_0x25dc20,function(_0x2d6cf3){if(_0x2d6cf3[_0x6a93('0x32')]!==_0x6a93('0x45')){var _0x1e1cef={};_0x1e1cef[_0x2d6cf3['name']]={'$like':'%'+_0x35705e[_0x6a93('0x36')][_0x6a93('0x43')]+'%'};return _0x1e1cef;}})});}_0x5d2136=_[_0x6a93('0x44')]({},_0x5d2136,_0x35705e[_0x6a93('0x46')]);var _0x184359={'where':_0x5d2136[_0x6a93('0x42')]};return db[_0x6a93('0x47')]['count'](_0x184359)['then'](function(_0x52a500){_0x153b3a[_0x6a93('0x21')]=_0x52a500;if(_0x35705e[_0x6a93('0x36')][_0x6a93('0x48')]){_0x5d2136[_0x6a93('0x49')]=[{'all':!![]}];}return db[_0x6a93('0x47')][_0x6a93('0x4a')](_0x5d2136);})[_0x6a93('0x28')](function(_0x307f1e){_0x153b3a['rows']=_0x307f1e;return _0x153b3a;})['then'](respondWithFilteredResult(_0x44de88,_0x5d2136))[_0x6a93('0x4b')](handleError(_0x44de88,null));};exports['show']=function(_0x422020,_0x50d5af){var _0x4f78f7={'raw':![],'where':{'id':_0x422020[_0x6a93('0x4c')]['id']}},_0x54275b={};_0x54275b[_0x6a93('0x34')]=_[_0x6a93('0x37')](db[_0x6a93('0x47')][_0x6a93('0x30')]);_0x54275b[_0x6a93('0x36')]=_[_0x6a93('0x37')](_0x422020['query']);_0x54275b['filters']=_[_0x6a93('0x3a')](_0x54275b['model'],_0x54275b[_0x6a93('0x36')]);_0x4f78f7[_0x6a93('0x39')]=_[_0x6a93('0x3a')](_0x54275b['model'],qs['fields'](_0x422020[_0x6a93('0x36')][_0x6a93('0x3b')]));_0x4f78f7[_0x6a93('0x39')]=_0x4f78f7[_0x6a93('0x39')][_0x6a93('0x3c')]?_0x4f78f7[_0x6a93('0x39')]:_0x54275b['model'];if(_0x422020['query'][_0x6a93('0x48')]){_0x4f78f7[_0x6a93('0x49')]=[{'all':!![]}];}_0x4f78f7=_[_0x6a93('0x44')]({},_0x4f78f7,_0x422020[_0x6a93('0x46')]);return db[_0x6a93('0x47')][_0x6a93('0x4d')](_0x4f78f7)['then'](handleEntityNotFound(_0x50d5af,null))[_0x6a93('0x28')](respondWithResult(_0x50d5af,null))[_0x6a93('0x4b')](handleError(_0x50d5af,null));};exports[_0x6a93('0x4e')]=function(_0x4d4fb6,_0x3b28a9){return db[_0x6a93('0x47')][_0x6a93('0x4e')](_0x4d4fb6['body'],{})[_0x6a93('0x28')](function(_0x2e7f7b){var _0x1c1854=_0x4d4fb6[_0x6a93('0x4f')]['get']({'plain':!![]});if(!_0x1c1854)throw new Error(_0x6a93('0x50'));if(_0x1c1854[_0x6a93('0x51')]===_0x6a93('0x4f')){var _0x56fc93=_0x2e7f7b[_0x6a93('0x29')]({'plain':!![]});var _0x3a99b5=_0x6a93('0x2a');return db['UserProfileSection']['find']({'where':{'name':_0x3a99b5,'userProfileId':_0x1c1854['userProfileId']},'raw':!![]})['then'](function(_0x200ec7){if(_0x200ec7&&_0x200ec7[_0x6a93('0x52')]===0x0){return db[_0x6a93('0x2b')][_0x6a93('0x4e')]({'name':_0x56fc93[_0x6a93('0x2e')],'resourceId':_0x56fc93['id'],'type':_0x200ec7['name'],'sectionId':_0x200ec7['id']},{})[_0x6a93('0x28')](function(){return _0x2e7f7b;});}else{return _0x2e7f7b;}})[_0x6a93('0x4b')](function(_0x2fc68c){logger[_0x6a93('0x2c')](_0x6a93('0x53'),_0x2fc68c);throw _0x2fc68c;});}return _0x2e7f7b;})[_0x6a93('0x28')](respondWithResult(_0x3b28a9,0xc9))[_0x6a93('0x4b')](handleError(_0x3b28a9,null));};exports['update']=function(_0x5a5a43,_0x1c681f){if(_0x5a5a43[_0x6a93('0x54')]['id']){delete _0x5a5a43[_0x6a93('0x54')]['id'];}return db['Team'][_0x6a93('0x4d')]({'where':{'id':_0x5a5a43[_0x6a93('0x4c')]['id']}})[_0x6a93('0x28')](handleEntityNotFound(_0x1c681f,null))[_0x6a93('0x28')](saveUpdates(_0x5a5a43[_0x6a93('0x54')],null))[_0x6a93('0x28')](respondWithResult(_0x1c681f,null))[_0x6a93('0x4b')](handleError(_0x1c681f,null));};exports['destroy']=function(_0x4b8602,_0x6ec244){return db[_0x6a93('0x47')][_0x6a93('0x4d')]({'where':{'id':_0x4b8602[_0x6a93('0x4c')]['id']}})[_0x6a93('0x28')](handleEntityNotFound(_0x6ec244,null))[_0x6a93('0x28')](removeEntity(_0x6ec244,null))['catch'](handleError(_0x6ec244,null));};exports['getQueues']=function(_0x266047,_0x44ed79,_0x479e12){return db[_0x6a93('0x47')][_0x6a93('0x55')]({'where':{'id':_0x266047[_0x6a93('0x4c')]['id']}})[_0x6a93('0x28')](handleEntityNotFound(_0x44ed79,null))['then'](function(_0x59ffd4){if(!_0x266047[_0x6a93('0x36')][_0x6a93('0x56')]||!utils[_0x6a93('0x57')](_0x266047[_0x6a93('0x36')][_0x6a93('0x56')])){throw new db['Sequelize']['ValidationError']('Unknown\x20channel');}var _0x446980={};var _0x4dc859={};_0x4dc859['model']=_['keys'](db[_['capitalize'](_0x266047[_0x6a93('0x36')][_0x6a93('0x56')]['toLowerCase']())+_0x6a93('0x58')][_0x6a93('0x30')]);_0x4dc859['query']=_[_0x6a93('0x37')](_0x266047[_0x6a93('0x36')]);_0x4dc859[_0x6a93('0x38')]=_[_0x6a93('0x3a')](_0x4dc859[_0x6a93('0x34')],_0x4dc859[_0x6a93('0x36')]);_0x446980[_0x6a93('0x39')]=_[_0x6a93('0x3a')](_0x4dc859[_0x6a93('0x34')],qs[_0x6a93('0x3b')](_0x266047[_0x6a93('0x36')]['fields']));_0x446980[_0x6a93('0x39')]=_0x446980['attributes'][_0x6a93('0x3c')]?_0x446980[_0x6a93('0x39')]:_0x4dc859[_0x6a93('0x34')];_0x446980[_0x6a93('0x3f')]=qs[_0x6a93('0x3f')](_0x266047['query']['limit']);_0x446980[_0x6a93('0x1f')]=qs[_0x6a93('0x1f')](_0x266047['query'][_0x6a93('0x1f')]);_0x446980[_0x6a93('0x40')]=qs[_0x6a93('0x41')](_0x266047[_0x6a93('0x36')][_0x6a93('0x41')]);_0x446980[_0x6a93('0x42')]=qs[_0x6a93('0x38')](_[_0x6a93('0x59')](_0x266047[_0x6a93('0x36')],_0x4dc859[_0x6a93('0x38')]));_0x446980=_[_0x6a93('0x44')]({},_0x446980,_0x266047[_0x6a93('0x46')]);return _0x59ffd4[_0x6a93('0x29')+_['capitalize'](_0x266047[_0x6a93('0x36')]['channel'][_0x6a93('0x5a')]())+_0x6a93('0x5b')](_0x446980);})[_0x6a93('0x28')](respondWithResult(_0x44ed79,null))['catch'](handleError(_0x44ed79,null));};exports['addQueues']=function(_0xe6b6dd,_0x1faa69,_0x3a517f){return db[_0x6a93('0x47')][_0x6a93('0x55')]({'where':{'id':_0xe6b6dd[_0x6a93('0x4c')]['id']}})[_0x6a93('0x28')](function(_0x35de4a){if(_0x35de4a){if(!_0xe6b6dd[_0x6a93('0x54')][_0x6a93('0x56')]||!utils[_0x6a93('0x57')](_0xe6b6dd[_0x6a93('0x54')][_0x6a93('0x56')])){throw new db['Sequelize'][(_0x6a93('0x5c'))](_0x6a93('0x5d'));}return _0x35de4a['add'+_['capitalize'](_0xe6b6dd['body']['channel']['toLowerCase']())+_0x6a93('0x5b')](_0xe6b6dd[_0x6a93('0x54')]['ids']);}return null;})['then'](handleEntityNotFound(_0x1faa69,null))[_0x6a93('0x28')](respondWithStatusCode(_0x1faa69,null))[_0x6a93('0x4b')](handleError(_0x1faa69,null));};exports[_0x6a93('0x5e')]=function(_0x595a84,_0x22d2d3,_0x496330){return db[_0x6a93('0x47')][_0x6a93('0x55')]({'where':{'id':_0x595a84[_0x6a93('0x4c')]['id']}})[_0x6a93('0x28')](function(_0x15f545){if(_0x15f545){if(!_0x595a84[_0x6a93('0x36')][_0x6a93('0x56')]||!utils[_0x6a93('0x57')](_0x595a84[_0x6a93('0x36')]['channel'])){throw new db[(_0x6a93('0x5f'))][(_0x6a93('0x5c'))](_0x6a93('0x5d'));}return _0x15f545[_0x6a93('0x60')+_[_0x6a93('0x61')](_0x595a84[_0x6a93('0x36')][_0x6a93('0x56')][_0x6a93('0x5a')]())+'Queues'](_0x595a84[_0x6a93('0x36')][_0x6a93('0x62')]);}return null;})[_0x6a93('0x28')](handleEntityNotFound(_0x22d2d3,null))['then'](respondWithStatusCode(_0x22d2d3,null))[_0x6a93('0x4b')](handleError(_0x22d2d3,null));};exports['addAgents']=function(_0x54a70e,_0x21e74a){return db[_0x6a93('0x47')][_0x6a93('0x4d')]({'where':{'id':_0x54a70e[_0x6a93('0x4c')]['id']}})[_0x6a93('0x28')](handleEntityNotFound(_0x21e74a,null))[_0x6a93('0x28')](function(_0x364881){if(_0x364881){var _0x36c059=[_0x6a93('0x63'),_0x6a93('0x64'),_0x6a93('0x65'),_0x6a93('0x66'),'Fax',_0x6a93('0x67'),'Whatsapp'];return db[_0x6a93('0x68')]['transaction'](function(_0x2df9f9){var _0x342faf=_[_0x6a93('0x35')](_0x36c059,function(_0x16313e){var _0x31dd46={'attributes':['id',_0x6a93('0x2e')]};if(_0x16313e===_0x6a93('0x63')){_0x31dd46[_0x6a93('0x69')]={'attributes':[_0x6a93('0x6a')]};}return _0x364881[_0x6a93('0x29')+_0x16313e+_0x6a93('0x5b')](_0x31dd46)[_0x6a93('0x28')](function(_0x39b3f3){var _0x289221=_[_0x6a93('0x35')](_0x39b3f3,function(_0x554480){var _0x4ff5ce=_[_0x6a93('0x35')](_0x54a70e['body']['ids'],function(_0x2b21a3){var _0x3cf9a8={'where':{'UserId':_0x2b21a3,[_0x16313e+_0x6a93('0x6b')]:_0x554480['id']},'transaction':_0x2df9f9};if(_0x16313e===_0x6a93('0x63')){_0x3cf9a8[_0x6a93('0x18')]={'penalty':_0x554480['TeamVoiceQueue'][_0x6a93('0x6a')]};}return db['User'+_0x16313e+_0x6a93('0x58')][_0x6a93('0x6c')](_0x3cf9a8)[_0x6a93('0x28')](function(){socket[_0x6a93('0x6d')]('user'+_0x16313e+_0x6a93('0x6e'),{'UserId':_0x2b21a3,[_0x16313e+_0x6a93('0x6b')]:_0x554480['id']});if(_0x16313e!==_0x6a93('0x63'))return;return db[_0x6a93('0x6f')][_0x6a93('0x4a')]({'where':{'id':_0x54a70e[_0x6a93('0x54')][_0x6a93('0x62')],'online':0x1},'attributes':['id',_0x6a93('0x2e'),_0x6a93('0x70'),_0x6a93('0x71'),_0x6a93('0x72')],'raw':!![]})[_0x6a93('0x28')](function(_0x4b7d8f){var _0x2a4956=_[_0x6a93('0x35')](_0x4b7d8f,function(_0x43c7d4){return db['UserVoiceQueueRt']['upsert']({'membername':_0x43c7d4[_0x6a93('0x2e')],'UserId':_0x43c7d4['id'],'queue_name':_0x554480[_0x6a93('0x2e')],'VoiceQueueId':_0x554480['id'],'interface':_[_0x6a93('0x73')](_0x43c7d4[_0x6a93('0x72')])?util[_0x6a93('0x74')](_0x6a93('0x75'),_0x43c7d4[_0x6a93('0x2e')]):_0x43c7d4['interface'],'paused':_0x43c7d4['voicePause']||![],'penalty':_0x554480[_0x6a93('0x76')]['penalty']},{'transaction':_0x2df9f9});});return Promise[_0x6a93('0x77')](_0x2a4956);});});});return Promise['all'](_0x4ff5ce);});return Promise['all'](_0x289221);});});return Promise[_0x6a93('0x77')](_0x342faf)[_0x6a93('0x28')](function(){return _0x364881[_0x6a93('0x78')](_0x54a70e['body']['ids'],{'transaction':_0x2df9f9})['spread'](function(_0x557dc0){return _0x557dc0;});});});}})['then'](respondWithResult(_0x21e74a,null))[_0x6a93('0x4b')](handleError(_0x21e74a,null));};exports[_0x6a93('0x79')]=function(_0x491c50,_0x262863){return db[_0x6a93('0x47')][_0x6a93('0x4d')]({'where':{'id':_0x491c50['params']['id']}})[_0x6a93('0x28')](handleEntityNotFound(_0x262863,null))[_0x6a93('0x28')](function(_0x40a91f){if(_0x40a91f){var _0x1f45b4=[_0x6a93('0x63'),_0x6a93('0x64'),_0x6a93('0x65'),'Sms','Fax',_0x6a93('0x67'),_0x6a93('0x7a')];return db[_0x6a93('0x68')][_0x6a93('0x7b')](function(_0x2b3428){var _0x288362=_['map'](_0x1f45b4,function(_0x525a34){var _0x45636a={'attributes':['id',_0x6a93('0x2e')]};return _0x40a91f[_0x6a93('0x29')+_0x525a34+_0x6a93('0x5b')](_0x45636a)[_0x6a93('0x28')](function(_0x3cce2b){var _0x32850c=_[_0x6a93('0x35')](_0x3cce2b,function(_0x1d8a77){return _0x1d8a77['removeAgents'](_0x491c50['query']['ids'],{'transaction':_0x2b3428})['then'](function(){var _0x1f51e4=JSON[_0x6a93('0x7c')]('['+_0x491c50['query'][_0x6a93('0x62')]+']');var _0x5afd14=_['map'](_0x1f51e4,function(_0x5b47a4){socket[_0x6a93('0x6d')](_0x6a93('0x4f')+_0x525a34+_0x6a93('0x7d'),{'UserId':Number(_0x5b47a4),[_0x525a34+'QueueId']:_0x1d8a77['id']});if(_0x525a34!==_0x6a93('0x63'))return;return db['UserVoiceQueueRt'][_0x6a93('0x27')]({'where':{'VoiceQueueId':_0x1d8a77['id'],'UserId':_0x5b47a4},'transaction':_0x2b3428});});return Promise[_0x6a93('0x77')](_0x5afd14);});});return Promise[_0x6a93('0x77')](_0x32850c);});});return Promise[_0x6a93('0x77')](_0x288362)[_0x6a93('0x28')](function(){return _0x40a91f['removeAgents'](_0x491c50[_0x6a93('0x36')]['ids'],{'transaction':_0x2b3428});});});}})[_0x6a93('0x28')](respondWithStatusCode(_0x262863,null))[_0x6a93('0x4b')](handleError(_0x262863,null));};exports['getAgents']=function(_0x32493b,_0x3028aa,_0x4a9161){var _0xb400d0={};var _0x2cf9c2={};var _0x22d820;var _0x52f5fc;return db[_0x6a93('0x47')][_0x6a93('0x55')]({'where':{'id':_0x32493b[_0x6a93('0x4c')]['id']}})[_0x6a93('0x28')](handleEntityNotFound(_0x3028aa,null))[_0x6a93('0x28')](function(_0x5d549d){if(_0x5d549d){_0x22d820=_0x5d549d;_0x2cf9c2[_0x6a93('0x34')]=_[_0x6a93('0x37')](db[_0x6a93('0x6f')]['rawAttributes']);_0x2cf9c2[_0x6a93('0x36')]=_[_0x6a93('0x37')](_0x32493b[_0x6a93('0x36')]);_0x2cf9c2[_0x6a93('0x38')]=_[_0x6a93('0x3a')](_0x2cf9c2[_0x6a93('0x34')],_0x2cf9c2['query']);_0xb400d0['attributes']=_[_0x6a93('0x3a')](_0x2cf9c2[_0x6a93('0x34')],qs[_0x6a93('0x3b')](_0x32493b[_0x6a93('0x36')][_0x6a93('0x3b')]));_0xb400d0['attributes']=_0xb400d0[_0x6a93('0x39')][_0x6a93('0x3c')]?_0xb400d0['attributes']:_0x2cf9c2[_0x6a93('0x34')];_0xb400d0[_0x6a93('0x40')]=qs[_0x6a93('0x41')](_0x32493b[_0x6a93('0x36')]['sort']);_0xb400d0[_0x6a93('0x42')]=qs[_0x6a93('0x38')](_[_0x6a93('0x59')](_0x32493b['query'],_0x2cf9c2[_0x6a93('0x38')]));if(_0x32493b[_0x6a93('0x36')][_0x6a93('0x43')]){_0xb400d0[_0x6a93('0x42')]=_[_0x6a93('0x44')](_0xb400d0[_0x6a93('0x42')],{'$or':_[_0x6a93('0x35')](_0xb400d0[_0x6a93('0x39')],function(_0x264ca9){var _0x21aa64={};_0x21aa64[_0x264ca9]={'$like':'%'+_0x32493b[_0x6a93('0x36')]['filter']+'%'};return _0x21aa64;})});}_0xb400d0=_[_0x6a93('0x44')]({},_0xb400d0,_0x32493b[_0x6a93('0x46')]);return _0x22d820[_0x6a93('0x7e')](_0xb400d0);}})['then'](function(_0x5ec82d){if(_0x5ec82d){_0x52f5fc=_0x5ec82d['length'];if(!_0x32493b['query'][_0x6a93('0x3d')](_0x6a93('0x3e'))){_0xb400d0[_0x6a93('0x3f')]=qs[_0x6a93('0x3f')](_0x32493b[_0x6a93('0x36')][_0x6a93('0x3f')]);_0xb400d0[_0x6a93('0x1f')]=qs[_0x6a93('0x1f')](_0x32493b[_0x6a93('0x36')][_0x6a93('0x1f')]);}return _0x22d820['getAgents'](_0xb400d0);}})['then'](function(_0x4e9cca){if(_0x4e9cca){return _0x4e9cca?{'count':_0x52f5fc,'rows':_0x4e9cca}:null;}})[_0x6a93('0x28')](respondWithResult(_0x3028aa,null))[_0x6a93('0x4b')](handleError(_0x3028aa,null));};
\ No newline at end of file
+var _0x34e8=['QueueId','online','interface','UserVoiceQueueRt','upsert','format','SIP/%s','voicePause','all','TeamVoicePrefix','UserVoicePrefix','VoicePrefixId','spread','removeAgents','Mail','transaction','Queue:remove','getAgents','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','fs-extra','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','./team.socket','sendStatus','end','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','destroy','get','Teams','UserProfileResource','error','stack','name','send','map','Team','rawAttributes','fieldName','type','model','query','filters','attributes','intersection','fields','hasOwnProperty','nolimit','order','sort','pick','where','merge','filter','then','includeAll','rows','show','params','keys','length','include','options','find','catch','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','getQueues','findOne','channel','isValidChannel','Sequelize','ValidationError','Unknown\x20channel','capitalize','toLowerCase','Queue','addQueues','add','remove','Queues','ids','addAgents','isArray','Chat','Sms','Fax','Openchannel','sequelize','Voice','through','penalty','TeamVoiceQueue','User','findOrCreate','emit','Queue:save'];(function(_0x15fb0b,_0x44b92d){var _0x423f50=function(_0x32b8c5){while(--_0x32b8c5){_0x15fb0b['push'](_0x15fb0b['shift']());}};_0x423f50(++_0x44b92d);}(_0x34e8,0x12c));var _0x834e=function(_0x471c3d,_0x2fc18a){_0x471c3d=_0x471c3d-0x0;var _0xb93577=_0x34e8[_0x471c3d];return _0xb93577;};'use strict';var emlformat=require(_0x834e('0x0'));var rimraf=require(_0x834e('0x1'));var zipdir=require(_0x834e('0x2'));var jsonpatch=require(_0x834e('0x3'));var rp=require('request-promise');var moment=require(_0x834e('0x4'));var BPromise=require(_0x834e('0x5'));var Mustache=require(_0x834e('0x6'));var util=require(_0x834e('0x7'));var path=require(_0x834e('0x8'));var sox=require(_0x834e('0x9'));var csv=require(_0x834e('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x834e('0xb'));var _=require('lodash');var squel=require(_0x834e('0xc'));var crypto=require(_0x834e('0xd'));var jsforce=require(_0x834e('0xe'));var deskjs=require(_0x834e('0xf'));var toCsv=require(_0x834e('0xa'));var querystring=require(_0x834e('0x10'));var Papa=require(_0x834e('0x11'));var Redis=require(_0x834e('0x12'));var authService=require(_0x834e('0x13'));var qs=require(_0x834e('0x14'));var as=require(_0x834e('0x15'));var hardwareService=require(_0x834e('0x16'));var logger=require(_0x834e('0x17'))(_0x834e('0x18'));var utils=require(_0x834e('0x19'));var config=require(_0x834e('0x1a'));var licenseUtil=require(_0x834e('0x1b'));var db=require('../../mysqldb')['db'];config[_0x834e('0x1c')]=_[_0x834e('0x1d')](config['redis'],{'host':_0x834e('0x1e'),'port':0x18eb});var socket=require(_0x834e('0x1f'))(new Redis(config[_0x834e('0x1c')]));require(_0x834e('0x20'))['register'](socket);function respondWithStatusCode(_0x43156c,_0x302cbd){_0x302cbd=_0x302cbd||0xcc;return function(_0x57274a){if(_0x57274a){return _0x43156c[_0x834e('0x21')](_0x302cbd);}return _0x43156c['status'](_0x302cbd)[_0x834e('0x22')]();};}function respondWithResult(_0x36d443,_0x478afe){_0x478afe=_0x478afe||0xc8;return function(_0x43ac41){if(_0x43ac41){return _0x36d443[_0x834e('0x23')](_0x478afe)[_0x834e('0x24')](_0x43ac41);}};}function respondWithFilteredResult(_0x50b3f6,_0x283e56){return function(_0x211e9a){if(_0x211e9a){var _0x34e41a=typeof _0x283e56[_0x834e('0x25')]===_0x834e('0x26')&&typeof _0x283e56[_0x834e('0x27')]===_0x834e('0x26');var _0x595515=_0x211e9a[_0x834e('0x28')];var _0x1fd2c6=_0x34e41a?0x0:_0x283e56[_0x834e('0x25')];var _0x325a99=_0x34e41a?_0x211e9a['count']:_0x283e56[_0x834e('0x25')]+_0x283e56[_0x834e('0x27')];var _0x5a05c0;if(_0x325a99>=_0x595515){_0x325a99=_0x595515;_0x5a05c0=0xc8;}else{_0x5a05c0=0xce;}_0x50b3f6[_0x834e('0x23')](_0x5a05c0);return _0x50b3f6[_0x834e('0x29')](_0x834e('0x2a'),_0x1fd2c6+'-'+_0x325a99+'/'+_0x595515)['json'](_0x211e9a);}return null;};}function patchUpdates(_0x4e3f48){return function(_0x231619){try{jsonpatch[_0x834e('0x2b')](_0x231619,_0x4e3f48,!![]);}catch(_0x589dde){return BPromise[_0x834e('0x2c')](_0x589dde);}return _0x231619[_0x834e('0x2d')]();};}function saveUpdates(_0x58f4fd,_0x3bc4f7){return function(_0x2e1983){if(_0x2e1983){return _0x2e1983[_0x834e('0x2e')](_0x58f4fd)['then'](function(_0x24fcf7){return _0x24fcf7;});}return null;};}function removeEntity(_0x3e310f,_0x5e1cc5){return function(_0x5bef62){if(_0x5bef62){return _0x5bef62[_0x834e('0x2f')]()['then'](function(){var _0x2826ec=_0x5bef62[_0x834e('0x30')]({'plain':!![]});var _0x3db026=_0x834e('0x31');return db[_0x834e('0x32')][_0x834e('0x2f')]({'where':{'type':_0x3db026,'resourceId':_0x2826ec['id']}})['then'](function(){return _0x5bef62;});})['then'](function(){_0x3e310f['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x2c7a8d,_0x567cea){return function(_0x106d6a){if(!_0x106d6a){_0x2c7a8d['sendStatus'](0x194);}return _0x106d6a;};}function handleError(_0xb5bc06,_0x11f1ce){_0x11f1ce=_0x11f1ce||0x1f4;return function(_0x1f3671){logger[_0x834e('0x33')](_0x1f3671[_0x834e('0x34')]);if(_0x1f3671[_0x834e('0x35')]){delete _0x1f3671[_0x834e('0x35')];}_0xb5bc06[_0x834e('0x23')](_0x11f1ce)[_0x834e('0x36')](_0x1f3671);};}exports['index']=function(_0xef9ec2,_0x5cad11){var _0x2c75c2={},_0x3787b0={},_0x9ab921={'count':0x0,'rows':[]};var _0x2b3418=_[_0x834e('0x37')](db[_0x834e('0x38')][_0x834e('0x39')],function(_0x38cd29){return{'name':_0x38cd29[_0x834e('0x3a')],'type':_0x38cd29[_0x834e('0x3b')]['key']};});_0x3787b0[_0x834e('0x3c')]=_[_0x834e('0x37')](_0x2b3418,_0x834e('0x35'));_0x3787b0[_0x834e('0x3d')]=_['keys'](_0xef9ec2[_0x834e('0x3d')]);_0x3787b0[_0x834e('0x3e')]=_['intersection'](_0x3787b0['model'],_0x3787b0['query']);_0x2c75c2[_0x834e('0x3f')]=_[_0x834e('0x40')](_0x3787b0[_0x834e('0x3c')],qs[_0x834e('0x41')](_0xef9ec2[_0x834e('0x3d')][_0x834e('0x41')]));_0x2c75c2['attributes']=_0x2c75c2[_0x834e('0x3f')]['length']?_0x2c75c2[_0x834e('0x3f')]:_0x3787b0[_0x834e('0x3c')];if(!_0xef9ec2['query'][_0x834e('0x42')](_0x834e('0x43'))){_0x2c75c2['limit']=qs['limit'](_0xef9ec2[_0x834e('0x3d')][_0x834e('0x27')]);_0x2c75c2[_0x834e('0x25')]=qs[_0x834e('0x25')](_0xef9ec2[_0x834e('0x3d')]['offset']);}_0x2c75c2[_0x834e('0x44')]=qs['sort'](_0xef9ec2['query'][_0x834e('0x45')]);_0x2c75c2['where']=qs[_0x834e('0x3e')](_[_0x834e('0x46')](_0xef9ec2[_0x834e('0x3d')],_0x3787b0[_0x834e('0x3e')]),_0x2b3418);if(_0xef9ec2[_0x834e('0x3d')]['filter']){_0x2c75c2[_0x834e('0x47')]=_[_0x834e('0x48')](_0x2c75c2[_0x834e('0x47')],{'$or':_['map'](_0x2b3418,function(_0x35380e){if(_0x35380e[_0x834e('0x3b')]!=='VIRTUAL'){var _0x1e3e71={};_0x1e3e71[_0x35380e['name']]={'$like':'%'+_0xef9ec2[_0x834e('0x3d')][_0x834e('0x49')]+'%'};return _0x1e3e71;}})});}_0x2c75c2=_['merge']({},_0x2c75c2,_0xef9ec2['options']);var _0x22ea21={'where':_0x2c75c2[_0x834e('0x47')]};return db[_0x834e('0x38')][_0x834e('0x28')](_0x22ea21)[_0x834e('0x4a')](function(_0x23feea){_0x9ab921[_0x834e('0x28')]=_0x23feea;if(_0xef9ec2['query'][_0x834e('0x4b')]){_0x2c75c2['include']=[{'all':!![]}];}return db[_0x834e('0x38')]['findAll'](_0x2c75c2);})[_0x834e('0x4a')](function(_0x5a5807){_0x9ab921[_0x834e('0x4c')]=_0x5a5807;return _0x9ab921;})[_0x834e('0x4a')](respondWithFilteredResult(_0x5cad11,_0x2c75c2))['catch'](handleError(_0x5cad11,null));};exports[_0x834e('0x4d')]=function(_0x3f2321,_0xa880cb){var _0xd55cc3={'raw':![],'where':{'id':_0x3f2321[_0x834e('0x4e')]['id']}},_0x252ea0={};_0x252ea0[_0x834e('0x3c')]=_[_0x834e('0x4f')](db[_0x834e('0x38')][_0x834e('0x39')]);_0x252ea0['query']=_[_0x834e('0x4f')](_0x3f2321[_0x834e('0x3d')]);_0x252ea0['filters']=_[_0x834e('0x40')](_0x252ea0[_0x834e('0x3c')],_0x252ea0[_0x834e('0x3d')]);_0xd55cc3[_0x834e('0x3f')]=_[_0x834e('0x40')](_0x252ea0[_0x834e('0x3c')],qs['fields'](_0x3f2321['query'][_0x834e('0x41')]));_0xd55cc3[_0x834e('0x3f')]=_0xd55cc3[_0x834e('0x3f')][_0x834e('0x50')]?_0xd55cc3[_0x834e('0x3f')]:_0x252ea0[_0x834e('0x3c')];if(_0x3f2321[_0x834e('0x3d')][_0x834e('0x4b')]){_0xd55cc3[_0x834e('0x51')]=[{'all':!![]}];}_0xd55cc3=_[_0x834e('0x48')]({},_0xd55cc3,_0x3f2321[_0x834e('0x52')]);return db[_0x834e('0x38')][_0x834e('0x53')](_0xd55cc3)[_0x834e('0x4a')](handleEntityNotFound(_0xa880cb,null))[_0x834e('0x4a')](respondWithResult(_0xa880cb,null))[_0x834e('0x54')](handleError(_0xa880cb,null));};exports[_0x834e('0x55')]=function(_0x32b8f7,_0x420841){return db[_0x834e('0x38')]['create'](_0x32b8f7[_0x834e('0x56')],{})[_0x834e('0x4a')](function(_0x4e73e0){var _0x3c00a3=_0x32b8f7[_0x834e('0x57')]['get']({'plain':!![]});if(!_0x3c00a3)throw new Error(_0x834e('0x58'));if(_0x3c00a3[_0x834e('0x59')]===_0x834e('0x57')){var _0x35636e=_0x4e73e0[_0x834e('0x30')]({'plain':!![]});var _0xb77aab=_0x834e('0x31');return db['UserProfileSection'][_0x834e('0x53')]({'where':{'name':_0xb77aab,'userProfileId':_0x3c00a3[_0x834e('0x5a')]},'raw':!![]})[_0x834e('0x4a')](function(_0x363675){if(_0x363675&&_0x363675[_0x834e('0x5b')]===0x0){return db[_0x834e('0x32')][_0x834e('0x55')]({'name':_0x35636e[_0x834e('0x35')],'resourceId':_0x35636e['id'],'type':_0x363675['name'],'sectionId':_0x363675['id']},{})[_0x834e('0x4a')](function(){return _0x4e73e0;});}else{return _0x4e73e0;}})['catch'](function(_0x2f4bde){logger['error'](_0x834e('0x5c'),_0x2f4bde);throw _0x2f4bde;});}return _0x4e73e0;})['then'](respondWithResult(_0x420841,0xc9))['catch'](handleError(_0x420841,null));};exports[_0x834e('0x2e')]=function(_0x3e1bee,_0x5291ae){if(_0x3e1bee['body']['id']){delete _0x3e1bee[_0x834e('0x56')]['id'];}return db[_0x834e('0x38')][_0x834e('0x53')]({'where':{'id':_0x3e1bee[_0x834e('0x4e')]['id']}})[_0x834e('0x4a')](handleEntityNotFound(_0x5291ae,null))[_0x834e('0x4a')](saveUpdates(_0x3e1bee[_0x834e('0x56')],null))[_0x834e('0x4a')](respondWithResult(_0x5291ae,null))['catch'](handleError(_0x5291ae,null));};exports[_0x834e('0x2f')]=function(_0x3c70bf,_0x5d5ac2){return db[_0x834e('0x38')]['find']({'where':{'id':_0x3c70bf[_0x834e('0x4e')]['id']}})[_0x834e('0x4a')](handleEntityNotFound(_0x5d5ac2,null))['then'](removeEntity(_0x5d5ac2,null))[_0x834e('0x54')](handleError(_0x5d5ac2,null));};exports[_0x834e('0x5d')]=function(_0x2de29a,_0x25f720,_0x5a2924){return db[_0x834e('0x38')][_0x834e('0x5e')]({'where':{'id':_0x2de29a[_0x834e('0x4e')]['id']}})['then'](handleEntityNotFound(_0x25f720,null))[_0x834e('0x4a')](function(_0x1fcae9){if(!_0x2de29a[_0x834e('0x3d')][_0x834e('0x5f')]||!utils[_0x834e('0x60')](_0x2de29a[_0x834e('0x3d')][_0x834e('0x5f')])){throw new db[(_0x834e('0x61'))][(_0x834e('0x62'))](_0x834e('0x63'));}var _0x1e4310={};var _0x1dfa95={};_0x1dfa95[_0x834e('0x3c')]=_[_0x834e('0x4f')](db[_[_0x834e('0x64')](_0x2de29a[_0x834e('0x3d')][_0x834e('0x5f')][_0x834e('0x65')]())+_0x834e('0x66')][_0x834e('0x39')]);_0x1dfa95[_0x834e('0x3d')]=_[_0x834e('0x4f')](_0x2de29a['query']);_0x1dfa95[_0x834e('0x3e')]=_[_0x834e('0x40')](_0x1dfa95[_0x834e('0x3c')],_0x1dfa95[_0x834e('0x3d')]);_0x1e4310['attributes']=_[_0x834e('0x40')](_0x1dfa95['model'],qs['fields'](_0x2de29a[_0x834e('0x3d')][_0x834e('0x41')]));_0x1e4310[_0x834e('0x3f')]=_0x1e4310[_0x834e('0x3f')][_0x834e('0x50')]?_0x1e4310[_0x834e('0x3f')]:_0x1dfa95[_0x834e('0x3c')];_0x1e4310[_0x834e('0x27')]=qs['limit'](_0x2de29a[_0x834e('0x3d')]['limit']);_0x1e4310[_0x834e('0x25')]=qs[_0x834e('0x25')](_0x2de29a['query']['offset']);_0x1e4310[_0x834e('0x44')]=qs[_0x834e('0x45')](_0x2de29a[_0x834e('0x3d')][_0x834e('0x45')]);_0x1e4310[_0x834e('0x47')]=qs['filters'](_[_0x834e('0x46')](_0x2de29a[_0x834e('0x3d')],_0x1dfa95[_0x834e('0x3e')]));_0x1e4310=_[_0x834e('0x48')]({},_0x1e4310,_0x2de29a[_0x834e('0x52')]);return _0x1fcae9[_0x834e('0x30')+_[_0x834e('0x64')](_0x2de29a[_0x834e('0x3d')][_0x834e('0x5f')][_0x834e('0x65')]())+'Queues'](_0x1e4310);})[_0x834e('0x4a')](respondWithResult(_0x25f720,null))[_0x834e('0x54')](handleError(_0x25f720,null));};exports[_0x834e('0x67')]=function(_0x5b5d6f,_0x51cfab,_0x46fa0d){return db['Team']['findOne']({'where':{'id':_0x5b5d6f['params']['id']}})[_0x834e('0x4a')](function(_0x332d8f){if(_0x332d8f){if(!_0x5b5d6f['body'][_0x834e('0x5f')]||!utils[_0x834e('0x60')](_0x5b5d6f['body'][_0x834e('0x5f')])){throw new db[(_0x834e('0x61'))]['ValidationError']('Unknown\x20channel');}return _0x332d8f[_0x834e('0x68')+_[_0x834e('0x64')](_0x5b5d6f[_0x834e('0x56')][_0x834e('0x5f')][_0x834e('0x65')]())+'Queues'](_0x5b5d6f[_0x834e('0x56')]['ids']);}return null;})[_0x834e('0x4a')](handleEntityNotFound(_0x51cfab,null))[_0x834e('0x4a')](respondWithStatusCode(_0x51cfab,null))[_0x834e('0x54')](handleError(_0x51cfab,null));};exports['removeQueues']=function(_0x33a3cd,_0x11f6f0,_0x48521f){return db[_0x834e('0x38')][_0x834e('0x5e')]({'where':{'id':_0x33a3cd[_0x834e('0x4e')]['id']}})['then'](function(_0x214014){if(_0x214014){if(!_0x33a3cd[_0x834e('0x3d')][_0x834e('0x5f')]||!utils[_0x834e('0x60')](_0x33a3cd[_0x834e('0x3d')][_0x834e('0x5f')])){throw new db[(_0x834e('0x61'))][(_0x834e('0x62'))](_0x834e('0x63'));}return _0x214014[_0x834e('0x69')+_['capitalize'](_0x33a3cd['query']['channel'][_0x834e('0x65')]())+_0x834e('0x6a')](_0x33a3cd[_0x834e('0x3d')][_0x834e('0x6b')]);}return null;})[_0x834e('0x4a')](handleEntityNotFound(_0x11f6f0,null))['then'](respondWithStatusCode(_0x11f6f0,null))['catch'](handleError(_0x11f6f0,null));};exports[_0x834e('0x6c')]=function(_0x1ad428,_0x23ad7c){var _0x18ddac=_[_0x834e('0x6d')](_0x1ad428['body'][_0x834e('0x6b')])?_0x1ad428[_0x834e('0x56')][_0x834e('0x6b')]:[_0x1ad428['body'][_0x834e('0x6b')]];var _0x18fde1=_0x1ad428[_0x834e('0x4e')]['id'];return db[_0x834e('0x38')][_0x834e('0x53')]({'where':{'id':_0x18fde1}})['then'](handleEntityNotFound(_0x23ad7c,null))['then'](function(_0x227797){if(_0x227797){var _0x40a872=['Voice',_0x834e('0x6e'),'Mail',_0x834e('0x6f'),_0x834e('0x70'),_0x834e('0x71'),'Whatsapp'];return db[_0x834e('0x72')]['transaction'](function(_0x5b2621){var _0x4d599d=_[_0x834e('0x37')](_0x40a872,function(_0x4627ac){var _0x1d7bab={'attributes':['id',_0x834e('0x35')]};if(_0x4627ac===_0x834e('0x73')){_0x1d7bab[_0x834e('0x74')]={'attributes':[_0x834e('0x75')]};}return _0x227797[_0x834e('0x30')+_0x4627ac+_0x834e('0x6a')](_0x1d7bab)['then'](function(_0x2f775a){var _0x54e70d=_[_0x834e('0x37')](_0x2f775a,function(_0x97c1a6){var _0x38bfa4=_[_0x834e('0x37')](_0x18ddac,function(_0x1d1877){var _0x116830={'where':{'UserId':_0x1d1877,[_0x4627ac+'QueueId']:_0x97c1a6['id']},'transaction':_0x5b2621};if(_0x4627ac==='Voice'){_0x116830[_0x834e('0x1d')]={'penalty':_0x97c1a6[_0x834e('0x76')]['penalty']};}return db[_0x834e('0x77')+_0x4627ac+_0x834e('0x66')][_0x834e('0x78')](_0x116830)[_0x834e('0x4a')](function(){socket[_0x834e('0x79')]('user'+_0x4627ac+_0x834e('0x7a'),{'UserId':_0x1d1877,[_0x4627ac+_0x834e('0x7b')]:_0x97c1a6['id']});if(_0x4627ac!=='Voice'){return;}return db['User']['findAll']({'where':{'id':_0x18ddac,'online':0x1},'attributes':['id',_0x834e('0x35'),_0x834e('0x7c'),'voicePause',_0x834e('0x7d')],'raw':!![]})[_0x834e('0x4a')](function(_0x49b480){var _0xfb93b1=_['map'](_0x49b480,function(_0x4813a8){return db[_0x834e('0x7e')][_0x834e('0x7f')]({'membername':_0x4813a8[_0x834e('0x35')],'UserId':_0x4813a8['id'],'queue_name':_0x97c1a6[_0x834e('0x35')],'VoiceQueueId':_0x97c1a6['id'],'interface':_['isNil'](_0x4813a8[_0x834e('0x7d')])?util[_0x834e('0x80')](_0x834e('0x81'),_0x4813a8[_0x834e('0x35')]):_0x4813a8[_0x834e('0x7d')],'paused':_0x4813a8[_0x834e('0x82')]||![],'penalty':_0x97c1a6[_0x834e('0x76')][_0x834e('0x75')]},{'transaction':_0x5b2621});});return Promise[_0x834e('0x83')](_0xfb93b1);});});});return Promise[_0x834e('0x83')](_0x38bfa4);});return Promise[_0x834e('0x83')](_0x54e70d);})[_0x834e('0x4a')](function(){return db[_0x834e('0x84')][_0x834e('0x5e')]({'where':{'teamId':_0x18fde1}})[_0x834e('0x4a')](function(_0x35bb19){if(_0x35bb19){var _0x3453c7=_[_0x834e('0x37')](_0x18ddac,function(_0x2db7b7){db[_0x834e('0x85')][_0x834e('0x7f')]({'UserId':_0x2db7b7,'VoicePrefixId':_0x35bb19[_0x834e('0x86')]});});return Promise['all'](_0x3453c7);}});});});return Promise[_0x834e('0x83')](_0x4d599d)[_0x834e('0x4a')](function(){return _0x227797[_0x834e('0x6c')](_0x18ddac,{'transaction':_0x5b2621})[_0x834e('0x87')](function(_0x14b603){return _0x14b603;});});});}})[_0x834e('0x4a')](respondWithResult(_0x23ad7c,null))[_0x834e('0x54')](handleError(_0x23ad7c,null));};exports[_0x834e('0x88')]=function(_0x11ca03,_0x4d226b){var _0x5ce790=_['isArray'](_0x11ca03[_0x834e('0x3d')]['ids'])?_0x11ca03[_0x834e('0x3d')][_0x834e('0x6b')]:[_0x11ca03[_0x834e('0x3d')]['ids']];var _0xae00f=_0x11ca03[_0x834e('0x4e')]['id'];return db[_0x834e('0x38')][_0x834e('0x53')]({'where':{'id':_0xae00f}})[_0x834e('0x4a')](handleEntityNotFound(_0x4d226b,null))[_0x834e('0x4a')](function(_0x528052){if(_0x528052){var _0x10dd7b=[_0x834e('0x73'),_0x834e('0x6e'),_0x834e('0x89'),_0x834e('0x6f'),'Fax','Openchannel','Whatsapp'];return db['sequelize'][_0x834e('0x8a')](function(_0x2ccdde){var _0x56fc05=_[_0x834e('0x37')](_0x10dd7b,function(_0xf9fec9){var _0x4fb709={'attributes':['id',_0x834e('0x35')]};return _0x528052[_0x834e('0x30')+_0xf9fec9+_0x834e('0x6a')](_0x4fb709)[_0x834e('0x4a')](function(_0x1d1075){var _0x404bab=_['map'](_0x1d1075,function(_0x5a49fc){return _0x5a49fc[_0x834e('0x88')](_0x5ce790,{'transaction':_0x2ccdde})[_0x834e('0x4a')](function(){var _0x1d2e12=_['map'](_0x5ce790,function(_0x34fb30){socket[_0x834e('0x79')]('user'+_0xf9fec9+_0x834e('0x8b'),{'UserId':Number(_0x34fb30),[_0xf9fec9+_0x834e('0x7b')]:_0x5a49fc['id']});if(_0xf9fec9!==_0x834e('0x73')){return;}return db[_0x834e('0x7e')]['destroy']({'where':{'VoiceQueueId':_0x5a49fc['id'],'UserId':_0x34fb30},'transaction':_0x2ccdde});});return Promise[_0x834e('0x83')](_0x1d2e12);});});return Promise['all'](_0x404bab);});});return Promise['all'](_0x56fc05)[_0x834e('0x4a')](function(){return _0x528052[_0x834e('0x88')](_0x5ce790,{'transaction':_0x2ccdde});})[_0x834e('0x4a')](function(){return db[_0x834e('0x84')][_0x834e('0x5e')]({'where':{'teamId':_0xae00f}})[_0x834e('0x4a')](function(_0x5bceba){if(_0x5bceba){var _0x591fab=_[_0x834e('0x37')](_0x5ce790,function(_0x2e040e){db[_0x834e('0x85')][_0x834e('0x2f')]({'where':{'UserId':_0x2e040e,'VoicePrefixId':_0x5bceba[_0x834e('0x86')]}});});return Promise[_0x834e('0x83')](_0x591fab);}});});});}})[_0x834e('0x4a')](respondWithStatusCode(_0x4d226b,null))['catch'](handleError(_0x4d226b,null));};exports[_0x834e('0x8c')]=function(_0xf25875,_0x56f28b,_0x4278ab){var _0x6a507a={};var _0xa0af07={};var _0x2a3ca4;var _0x284a75;return db[_0x834e('0x38')][_0x834e('0x5e')]({'where':{'id':_0xf25875[_0x834e('0x4e')]['id']}})[_0x834e('0x4a')](handleEntityNotFound(_0x56f28b,null))[_0x834e('0x4a')](function(_0x496709){if(_0x496709){_0x2a3ca4=_0x496709;_0xa0af07[_0x834e('0x3c')]=_[_0x834e('0x4f')](db[_0x834e('0x77')]['rawAttributes']);_0xa0af07[_0x834e('0x3d')]=_[_0x834e('0x4f')](_0xf25875['query']);_0xa0af07[_0x834e('0x3e')]=_['intersection'](_0xa0af07[_0x834e('0x3c')],_0xa0af07['query']);_0x6a507a[_0x834e('0x3f')]=_['intersection'](_0xa0af07[_0x834e('0x3c')],qs[_0x834e('0x41')](_0xf25875[_0x834e('0x3d')][_0x834e('0x41')]));_0x6a507a['attributes']=_0x6a507a[_0x834e('0x3f')][_0x834e('0x50')]?_0x6a507a[_0x834e('0x3f')]:_0xa0af07[_0x834e('0x3c')];_0x6a507a[_0x834e('0x44')]=qs[_0x834e('0x45')](_0xf25875[_0x834e('0x3d')][_0x834e('0x45')]);_0x6a507a[_0x834e('0x47')]=qs[_0x834e('0x3e')](_[_0x834e('0x46')](_0xf25875[_0x834e('0x3d')],_0xa0af07[_0x834e('0x3e')]));if(_0xf25875[_0x834e('0x3d')][_0x834e('0x49')]){_0x6a507a[_0x834e('0x47')]=_[_0x834e('0x48')](_0x6a507a['where'],{'$or':_['map'](_0x6a507a[_0x834e('0x3f')],function(_0x349685){var _0x3f52b9={};_0x3f52b9[_0x349685]={'$like':'%'+_0xf25875[_0x834e('0x3d')][_0x834e('0x49')]+'%'};return _0x3f52b9;})});}_0x6a507a=_[_0x834e('0x48')]({},_0x6a507a,_0xf25875[_0x834e('0x52')]);return _0x2a3ca4[_0x834e('0x8c')](_0x6a507a);}})[_0x834e('0x4a')](function(_0x58cd3b){if(_0x58cd3b){_0x284a75=_0x58cd3b[_0x834e('0x50')];if(!_0xf25875[_0x834e('0x3d')]['hasOwnProperty'](_0x834e('0x43'))){_0x6a507a['limit']=qs[_0x834e('0x27')](_0xf25875[_0x834e('0x3d')][_0x834e('0x27')]);_0x6a507a['offset']=qs[_0x834e('0x25')](_0xf25875[_0x834e('0x3d')]['offset']);}return _0x2a3ca4['getAgents'](_0x6a507a);}})[_0x834e('0x4a')](function(_0x3b7b1a){if(_0x3b7b1a){return _0x3b7b1a?{'count':_0x284a75,'rows':_0x3b7b1a}:null;}})['then'](respondWithResult(_0x56f28b,null))[_0x834e('0x54')](handleError(_0x56f28b,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe668=['update','remove','hasOwnProperty','hook','exports','events','Team','setMaxListeners'];(function(_0x2deb0a,_0x1bc555){var _0x3db0f8=function(_0x13060a){while(--_0x13060a){_0x2deb0a['push'](_0x2deb0a['shift']());}};_0x3db0f8(++_0x1bc555);}(_0xe668,0xd5));var _0x8e66=function(_0x44c5c1,_0x4d9d55){_0x44c5c1=_0x44c5c1-0x0;var _0x467172=_0xe668[_0x44c5c1];return _0x467172;};'use strict';var EventEmitter=require(_0x8e66('0x0'));var Team=require('../../mysqldb')['db'][_0x8e66('0x1')];var TeamEvents=new EventEmitter();TeamEvents[_0x8e66('0x2')](0x0);var events={'afterCreate':'save','afterUpdate':_0x8e66('0x3'),'afterDestroy':_0x8e66('0x4')};function emitEvent(_0x66a20b){return function(_0x20782c,_0x1456ab,_0xdd654f){TeamEvents['emit'](_0x66a20b+':'+_0x20782c['id'],_0x20782c);TeamEvents['emit'](_0x66a20b,_0x20782c);_0xdd654f(null);};}for(var e in events){if(events[_0x8e66('0x5')](e)){var event=events[e];Team[_0x8e66('0x6')](e,emitEvent(event));}}module[_0x8e66('0x7')]=TeamEvents;
\ No newline at end of file
+var _0x8ea9=['remove','emit','hasOwnProperty','exports','events','Team','save','update'];(function(_0x4a53d,_0x58a95e){var _0x27410e=function(_0x38fc90){while(--_0x38fc90){_0x4a53d['push'](_0x4a53d['shift']());}};_0x27410e(++_0x58a95e);}(_0x8ea9,0x1ec));var _0x98ea=function(_0x1576a6,_0xf9883b){_0x1576a6=_0x1576a6-0x0;var _0x317d1b=_0x8ea9[_0x1576a6];return _0x317d1b;};'use strict';var EventEmitter=require(_0x98ea('0x0'));var Team=require('../../mysqldb')['db'][_0x98ea('0x1')];var TeamEvents=new EventEmitter();TeamEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x98ea('0x2'),'afterUpdate':_0x98ea('0x3'),'afterDestroy':_0x98ea('0x4')};function emitEvent(_0x24f6b2){return function(_0x525853,_0x1f7467,_0xf7b053){TeamEvents[_0x98ea('0x5')](_0x24f6b2+':'+_0x525853['id'],_0x525853);TeamEvents[_0x98ea('0x5')](_0x24f6b2,_0x525853);_0xf7b053(null);};}for(var e in events){if(events[_0x98ea('0x6')](e)){var event=events[e];Team['hook'](e,emitEvent(event));}}module[_0x98ea('0x7')]=TeamEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6eae=['bluebird','request-promise','path','rimraf','../../config/environment','./team.attributes','define','Team','lodash','util'];(function(_0x540f0d,_0x2a093b){var _0x5d2fc3=function(_0x155552){while(--_0x155552){_0x540f0d['push'](_0x540f0d['shift']());}};_0x5d2fc3(++_0x2a093b);}(_0x6eae,0x6c));var _0xe6ea=function(_0x31e91e,_0x9fb723){_0x31e91e=_0x31e91e-0x0;var _0x2ab804=_0x6eae[_0x31e91e];return _0x2ab804;};'use strict';var _=require(_0xe6ea('0x0'));var util=require(_0xe6ea('0x1'));var logger=require('../../config/logger')('api');var moment=require('moment');var BPromise=require(_0xe6ea('0x2'));var rp=require(_0xe6ea('0x3'));var fs=require('fs');var path=require(_0xe6ea('0x4'));var rimraf=require(_0xe6ea('0x5'));var config=require(_0xe6ea('0x6'));var attributes=require(_0xe6ea('0x7'));module['exports']=function(_0x5eda38,_0xea5e76){return _0x5eda38[_0xe6ea('0x8')](_0xe6ea('0x9'),attributes,{'tableName':'teams','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x2253=['api','moment','request-promise','../../config/environment','exports','define','Team','teams','lodash','../../config/logger'];(function(_0x491a7f,_0x28bb80){var _0x3d8f44=function(_0xdaa716){while(--_0xdaa716){_0x491a7f['push'](_0x491a7f['shift']());}};_0x3d8f44(++_0x28bb80);}(_0x2253,0xee));var _0x3225=function(_0x4c7670,_0x476d4e){_0x4c7670=_0x4c7670-0x0;var _0x5a19fe=_0x2253[_0x4c7670];return _0x5a19fe;};'use strict';var _=require(_0x3225('0x0'));var util=require('util');var logger=require(_0x3225('0x1'))(_0x3225('0x2'));var moment=require(_0x3225('0x3'));var BPromise=require('bluebird');var rp=require(_0x3225('0x4'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0x3225('0x5'));var attributes=require('./team.attributes');module[_0x3225('0x6')]=function(_0x52d07b,_0x28f369){return _0x52d07b[_0x3225('0x7')](_0x3225('0x8'),attributes,{'tableName':_0x3225('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa1fc=['debug','Team,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','http','redis','defaults','localhost','socket.io-emitter','./team.socket','register','request','then','info','Team,\x20%s,\x20%s'];(function(_0x16041e,_0x2be4d2){var _0x316a1b=function(_0x3ed40a){while(--_0x3ed40a){_0x16041e['push'](_0x16041e['shift']());}};_0x316a1b(++_0x2be4d2);}(_0xa1fc,0xb1));var _0xca1f=function(_0x54736,_0x157c7a){_0x54736=_0x54736-0x0;var _0x26e8f6=_0xa1fc[_0x54736];return _0x26e8f6;};'use strict';var _=require('lodash');var util=require(_0xca1f('0x0'));var moment=require('moment');var BPromise=require(_0xca1f('0x1'));var rs=require(_0xca1f('0x2'));var fs=require('fs');var Redis=require(_0xca1f('0x3'));var db=require(_0xca1f('0x4'))['db'];var utils=require(_0xca1f('0x5'));var logger=require(_0xca1f('0x6'))(_0xca1f('0x7'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson['client'][_0xca1f('0x8')]({'port':0x232a});config[_0xca1f('0x9')]=_[_0xca1f('0xa')](config[_0xca1f('0x9')],{'host':_0xca1f('0xb'),'port':0x18eb});var socket=require(_0xca1f('0xc'))(new Redis(config['redis']));require(_0xca1f('0xd'))[_0xca1f('0xe')](socket);function respondWithRpcPromise(_0x220f4e,_0x38b10a,_0x25b593){return new BPromise(function(_0x12f148,_0xbaad30){return client[_0xca1f('0xf')](_0x220f4e,_0x25b593)[_0xca1f('0x10')](function(_0x4d8ffc){logger[_0xca1f('0x11')](_0xca1f('0x12'),_0x38b10a,'request\x20sent');logger[_0xca1f('0x13')](_0xca1f('0x14'),_0x38b10a,_0xca1f('0x15'),JSON[_0xca1f('0x16')](_0x4d8ffc));if(_0x4d8ffc[_0xca1f('0x17')]){if(_0x4d8ffc[_0xca1f('0x17')][_0xca1f('0x18')]===0x1f4){logger[_0xca1f('0x17')]('Team,\x20%s,\x20%s',_0x38b10a,_0x4d8ffc['error'][_0xca1f('0x19')]);return _0xbaad30(_0x4d8ffc['error'][_0xca1f('0x19')]);}logger[_0xca1f('0x17')](_0xca1f('0x12'),_0x38b10a,_0x4d8ffc[_0xca1f('0x17')][_0xca1f('0x19')]);return _0x12f148(_0x4d8ffc[_0xca1f('0x17')][_0xca1f('0x19')]);}else{logger[_0xca1f('0x11')](_0xca1f('0x12'),_0x38b10a,_0xca1f('0x15'));_0x12f148(_0x4d8ffc[_0xca1f('0x1a')][_0xca1f('0x19')]);}})[_0xca1f('0x1b')](function(_0x11c651){logger[_0xca1f('0x17')]('Team,\x20%s,\x20%s',_0x38b10a,_0x11c651);_0xbaad30(_0x11c651);});});}
\ No newline at end of file
+var _0x85b3=['localhost','./team.socket','register','request','then','info','Team,\x20%s,\x20%s','debug','request\x20sent','stringify','error','code','message','result','lodash','moment','randomstring','ioredis','../../config/utils','rpc','../../config/environment','jayson/promise','client','http','redis','defaults'];(function(_0x7909f0,_0x47b01d){var _0x48f94c=function(_0x5fd604){while(--_0x5fd604){_0x7909f0['push'](_0x7909f0['shift']());}};_0x48f94c(++_0x47b01d);}(_0x85b3,0x90));var _0x385b=function(_0x107b21,_0xe1babd){_0x107b21=_0x107b21-0x0;var _0x1c371b=_0x85b3[_0x107b21];return _0x1c371b;};'use strict';var _=require(_0x385b('0x0'));var util=require('util');var moment=require(_0x385b('0x1'));var BPromise=require('bluebird');var rs=require(_0x385b('0x2'));var fs=require('fs');var Redis=require(_0x385b('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0x385b('0x4'));var logger=require('../../config/logger')(_0x385b('0x5'));var config=require(_0x385b('0x6'));var jayson=require(_0x385b('0x7'));var client=jayson[_0x385b('0x8')][_0x385b('0x9')]({'port':0x232a});config[_0x385b('0xa')]=_[_0x385b('0xb')](config[_0x385b('0xa')],{'host':_0x385b('0xc'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x385b('0xa')]));require(_0x385b('0xd'))[_0x385b('0xe')](socket);function respondWithRpcPromise(_0x59cf7a,_0x85fa28,_0x25a07a){return new BPromise(function(_0x5dd952,_0x37a6e9){return client[_0x385b('0xf')](_0x59cf7a,_0x25a07a)[_0x385b('0x10')](function(_0xbb991f){logger[_0x385b('0x11')](_0x385b('0x12'),_0x85fa28,'request\x20sent');logger[_0x385b('0x13')]('Team,\x20%s,\x20%s,\x20%s',_0x85fa28,_0x385b('0x14'),JSON[_0x385b('0x15')](_0xbb991f));if(_0xbb991f[_0x385b('0x16')]){if(_0xbb991f[_0x385b('0x16')][_0x385b('0x17')]===0x1f4){logger[_0x385b('0x16')](_0x385b('0x12'),_0x85fa28,_0xbb991f[_0x385b('0x16')][_0x385b('0x18')]);return _0x37a6e9(_0xbb991f['error'][_0x385b('0x18')]);}logger['error']('Team,\x20%s,\x20%s',_0x85fa28,_0xbb991f[_0x385b('0x16')][_0x385b('0x18')]);return _0x5dd952(_0xbb991f[_0x385b('0x16')][_0x385b('0x18')]);}else{logger[_0x385b('0x11')](_0x385b('0x12'),_0x85fa28,_0x385b('0x14'));_0x5dd952(_0xbb991f[_0x385b('0x19')]['message']);}})['catch'](function(_0xd28fb4){logger['error']('Team,\x20%s,\x20%s',_0x85fa28,_0xd28fb4);_0x37a6e9(_0xd28fb4);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0e01=['update','register','team:','./team.events'];(function(_0x2f8602,_0x4e28e3){var _0x233b15=function(_0xc7c10){while(--_0xc7c10){_0x2f8602['push'](_0x2f8602['shift']());}};_0x233b15(++_0x4e28e3);}(_0x0e01,0x87));var _0x10e0=function(_0x15f162,_0x721bcd){_0x15f162=_0x15f162-0x0;var _0x3b5e16=_0x0e01[_0x15f162];return _0x3b5e16;};'use strict';var TeamEvents=require(_0x10e0('0x0'));var events=['save','remove',_0x10e0('0x1')];function createListener(_0x125632,_0x9b45fd){return function(_0x4a9762){_0x9b45fd['emit'](_0x125632,_0x4a9762);};}function removeListener(_0x11c098,_0x512bd1){return function(){TeamEvents['removeListener'](_0x11c098,_0x512bd1);};}exports[_0x10e0('0x2')]=function(_0x4a9f5f){for(var _0x684dac=0x0,_0xffd3b0=events['length'];_0x684dac<_0xffd3b0;_0x684dac++){var _0x45a00d=events[_0x684dac];var _0x187b24=createListener(_0x10e0('0x3')+_0x45a00d,_0x4a9f5f);TeamEvents['on'](_0x45a00d,_0x187b24);}};
\ No newline at end of file
+var _0x6b6b=['save','remove','update','emit','removeListener','register','./team.events'];(function(_0x15cdcb,_0x4340e9){var _0x37b069=function(_0x304cfb){while(--_0x304cfb){_0x15cdcb['push'](_0x15cdcb['shift']());}};_0x37b069(++_0x4340e9);}(_0x6b6b,0x16b));var _0xb6b6=function(_0x1fca3d,_0x14e904){_0x1fca3d=_0x1fca3d-0x0;var _0x5972bc=_0x6b6b[_0x1fca3d];return _0x5972bc;};'use strict';var TeamEvents=require(_0xb6b6('0x0'));var events=[_0xb6b6('0x1'),_0xb6b6('0x2'),_0xb6b6('0x3')];function createListener(_0x115a55,_0x6289d0){return function(_0x373b7c){_0x6289d0[_0xb6b6('0x4')](_0x115a55,_0x373b7c);};}function removeListener(_0x395c35,_0x357018){return function(){TeamEvents[_0xb6b6('0x5')](_0x395c35,_0x357018);};}exports[_0xb6b6('0x6')]=function(_0x521272){for(var _0x48c97c=0x0,_0x233d84=events['length'];_0x48c97c<_0x233d84;_0x48c97c++){var _0x3f7915=events[_0x48c97c];var _0x12e3d2=createListener('team:'+_0x3f7915,_0x521272);TeamEvents['on'](_0x3f7915,_0x12e3d2);}};
\ 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 _0x9d11=['sequelize','exports','INTEGER'];(function(_0x4cf98e,_0xba4b79){var _0x1623ac=function(_0x459bc0){while(--_0x459bc0){_0x4cf98e['push'](_0x4cf98e['shift']());}};_0x1623ac(++_0xba4b79);}(_0x9d11,0xb7));var _0x19d1=function(_0x1f239e,_0x367b43){_0x1f239e=_0x1f239e-0x0;var _0x826971=_0x9d11[_0x1f239e];return _0x826971;};'use strict';var Sequelize=require(_0x19d1('0x0'));module[_0x19d1('0x1')]={'TeamId':{'type':Sequelize[_0x19d1('0x2')]},'VoicePrefixId':{'type':Sequelize[_0x19d1('0x2')]}};
\ 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 _0x574d=['moment','bluebird','request-promise','rimraf','../../config/environment','./teamVoicePrefix.attributes','exports','define','TeamVoicePrefix','team_has_voice_prefixes','lodash','util','../../config/logger','api'];(function(_0x3abab1,_0x58775e){var _0x5ba7d9=function(_0x54e815){while(--_0x54e815){_0x3abab1['push'](_0x3abab1['shift']());}};_0x5ba7d9(++_0x58775e);}(_0x574d,0xc0));var _0xd574=function(_0x17b6e3,_0x4522ed){_0x17b6e3=_0x17b6e3-0x0;var _0x3906f3=_0x574d[_0x17b6e3];return _0x3906f3;};'use strict';var _=require(_0xd574('0x0'));var util=require(_0xd574('0x1'));var logger=require(_0xd574('0x2'))(_0xd574('0x3'));var moment=require(_0xd574('0x4'));var BPromise=require(_0xd574('0x5'));var rp=require(_0xd574('0x6'));var fs=require('fs');var path=require('path');var rimraf=require(_0xd574('0x7'));var config=require(_0xd574('0x8'));var attributes=require(_0xd574('0x9'));module[_0xd574('0xa')]=function(_0x56ecee,_0x16a152){return _0x56ecee[_0xd574('0xb')](_0xd574('0xc'),attributes,{'tableName':_0xd574('0xd'),'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(_0x1b5f00,_0x2bba5a){var _0x235948=function(_0x367ee1){while(--_0x367ee1){_0x1b5f00['push'](_0x1b5f00['shift']());}};_0x235948(++_0x2bba5a);}(_0xa9e0,0x123));var _0x0a9e=function(_0x4243a3,_0x447337){_0x4243a3=_0x4243a3-0x0;var _0x1b2a33=_0xa9e0[_0x4243a3];return _0x1b2a33;};'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 _0xa9e0=['../../components/interaction/service','../../config/environment','exports','multer','util','path','Router','../../components/auth/service'];(function(_0x1f9369,_0x530417){var _0x38c7ba=function(_0x489d67){while(--_0x489d67){_0x1f9369['push'](_0x1f9369['shift']());}};_0x38c7ba(++_0x530417);}(_0xa9e0,0x123));var _0x0a9e=function(_0x411add,_0x1aed38){_0x411add=_0x411add-0x0;var _0x238242=_0xa9e0[_0x411add];return _0x238242;};'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 _0xe86b=['INTEGER','sequelize','exports'];(function(_0x34bf97,_0xc60f9d){var _0x292719=function(_0x31354e){while(--_0x31354e){_0x34bf97['push'](_0x34bf97['shift']());}};_0x292719(++_0xc60f9d);}(_0xe86b,0x1c9));var _0xbe86=function(_0x4a9fb1,_0x273043){_0x4a9fb1=_0x4a9fb1-0x0;var _0x348672=_0xe86b[_0x4a9fb1];return _0x348672;};'use strict';var Sequelize=require(_0xbe86('0x0'));module[_0xbe86('0x1')]={'penalty':{'type':Sequelize[_0xbe86('0x2')],'defaultValue':0x0}};
\ No newline at end of file
+var _0x0fc0=['exports','INTEGER','sequelize'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0x0fc0,0x13a));var _0x00fc=function(_0x27af45,_0x1b57aa){_0x27af45=_0x27af45-0x0;var _0x18df21=_0x0fc0[_0x27af45];return _0x18df21;};'use strict';var Sequelize=require(_0x00fc('0x0'));module[_0x00fc('0x1')]={'penalty':{'type':Sequelize[_0x00fc('0x2')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6753=['bluebird','request-promise','rimraf','../../config/environment','define','TeamVoiceQueue','team_has_voice_queues','lodash','util','../../config/logger','api'];(function(_0x1b2d3b,_0x21138e){var _0x24808d=function(_0x23755b){while(--_0x23755b){_0x1b2d3b['push'](_0x1b2d3b['shift']());}};_0x24808d(++_0x21138e);}(_0x6753,0xa1));var _0x3675=function(_0x2b041e,_0x10bb99){_0x2b041e=_0x2b041e-0x0;var _0x34540e=_0x6753[_0x2b041e];return _0x34540e;};'use strict';var _=require(_0x3675('0x0'));var util=require(_0x3675('0x1'));var logger=require(_0x3675('0x2'))(_0x3675('0x3'));var moment=require('moment');var BPromise=require(_0x3675('0x4'));var rp=require(_0x3675('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0x3675('0x6'));var config=require(_0x3675('0x7'));var attributes=require('./teamVoiceQueue.attributes');module['exports']=function(_0x4e4e73,_0x396a35){return _0x4e4e73[_0x3675('0x8')](_0x3675('0x9'),attributes,{'tableName':_0x3675('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x447b=['lodash','util','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./teamVoiceQueue.attributes','exports','TeamVoiceQueue'];(function(_0x29a450,_0x2052e9){var _0x3ab566=function(_0x40210a){while(--_0x40210a){_0x29a450['push'](_0x29a450['shift']());}};_0x3ab566(++_0x2052e9);}(_0x447b,0xe4));var _0xb447=function(_0x234606,_0x38306d){_0x234606=_0x234606-0x0;var _0x565687=_0x447b[_0x234606];return _0x565687;};'use strict';var _=require(_0xb447('0x0'));var util=require(_0xb447('0x1'));var logger=require('../../config/logger')(_0xb447('0x2'));var moment=require(_0xb447('0x3'));var BPromise=require(_0xb447('0x4'));var rp=require(_0xb447('0x5'));var fs=require('fs');var path=require(_0xb447('0x6'));var rimraf=require(_0xb447('0x7'));var config=require(_0xb447('0x8'));var attributes=require(_0xb447('0x9'));module[_0xb447('0xa')]=function(_0x1f132a,_0x514a91){return _0x1f132a['define'](_0xb447('0xb'),attributes,{'tableName':'team_has_voice_queues','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6484=['lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','request','then','info','TeamVoiceQueue,\x20%s,\x20%s','request\x20sent','debug','TeamVoiceQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','message','catch'];(function(_0x39bf84,_0x1f6ee9){var _0x50727b=function(_0x128c1c){while(--_0x128c1c){_0x39bf84['push'](_0x39bf84['shift']());}};_0x50727b(++_0x1f6ee9);}(_0x6484,0x64));var _0x4648=function(_0x348a81,_0x513489){_0x348a81=_0x348a81-0x0;var _0x469c18=_0x6484[_0x348a81];return _0x469c18;};'use strict';var _=require(_0x4648('0x0'));var util=require(_0x4648('0x1'));var moment=require(_0x4648('0x2'));var BPromise=require(_0x4648('0x3'));var rs=require(_0x4648('0x4'));var fs=require('fs');var Redis=require(_0x4648('0x5'));var db=require(_0x4648('0x6'))['db'];var utils=require(_0x4648('0x7'));var logger=require(_0x4648('0x8'))(_0x4648('0x9'));var config=require('../../config/environment');var jayson=require(_0x4648('0xa'));var client=jayson[_0x4648('0xb')][_0x4648('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x37efab,_0x284f92,_0x467e26){return new BPromise(function(_0x598072,_0xdd8612){return client[_0x4648('0xd')](_0x37efab,_0x467e26)[_0x4648('0xe')](function(_0x5ea0e2){logger[_0x4648('0xf')](_0x4648('0x10'),_0x284f92,_0x4648('0x11'));logger[_0x4648('0x12')](_0x4648('0x13'),_0x284f92,_0x4648('0x11'),JSON[_0x4648('0x14')](_0x5ea0e2));if(_0x5ea0e2[_0x4648('0x15')]){if(_0x5ea0e2[_0x4648('0x15')][_0x4648('0x16')]===0x1f4){logger[_0x4648('0x15')](_0x4648('0x10'),_0x284f92,_0x5ea0e2[_0x4648('0x15')][_0x4648('0x17')]);return _0xdd8612(_0x5ea0e2[_0x4648('0x15')][_0x4648('0x17')]);}logger[_0x4648('0x15')]('TeamVoiceQueue,\x20%s,\x20%s',_0x284f92,_0x5ea0e2[_0x4648('0x15')]['message']);return _0x598072(_0x5ea0e2[_0x4648('0x15')][_0x4648('0x17')]);}else{logger[_0x4648('0xf')]('TeamVoiceQueue,\x20%s,\x20%s',_0x284f92,_0x4648('0x11'));_0x598072(_0x5ea0e2['result'][_0x4648('0x17')]);}})[_0x4648('0x18')](function(_0x5890a7){logger['error']('TeamVoiceQueue,\x20%s,\x20%s',_0x284f92,_0x5890a7);_0xdd8612(_0x5890a7);});});}
\ No newline at end of file
+var _0x795a=['then','info','TeamVoiceQueue,\x20%s,\x20%s','request\x20sent','debug','TeamVoiceQueue,\x20%s,\x20%s,\x20%s','error','code','message','catch','util','moment','randomstring','../../mysqldb','../../config/utils','../../config/environment','jayson/promise','client','http'];(function(_0x7d9312,_0xe097dc){var _0x59a4b=function(_0x56a03e){while(--_0x56a03e){_0x7d9312['push'](_0x7d9312['shift']());}};_0x59a4b(++_0xe097dc);}(_0x795a,0xa2));var _0xa795=function(_0x5bf397,_0x461965){_0x5bf397=_0x5bf397-0x0;var _0x4923e1=_0x795a[_0x5bf397];return _0x4923e1;};'use strict';var _=require('lodash');var util=require(_0xa795('0x0'));var moment=require(_0xa795('0x1'));var BPromise=require('bluebird');var rs=require(_0xa795('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xa795('0x3'))['db'];var utils=require(_0xa795('0x4'));var logger=require('../../config/logger')('rpc');var config=require(_0xa795('0x5'));var jayson=require(_0xa795('0x6'));var client=jayson[_0xa795('0x7')][_0xa795('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x553cf3,_0x44fc10,_0x58d69c){return new BPromise(function(_0x36a3a9,_0x5027d1){return client['request'](_0x553cf3,_0x58d69c)[_0xa795('0x9')](function(_0x3f8c04){logger[_0xa795('0xa')](_0xa795('0xb'),_0x44fc10,_0xa795('0xc'));logger[_0xa795('0xd')](_0xa795('0xe'),_0x44fc10,_0xa795('0xc'),JSON['stringify'](_0x3f8c04));if(_0x3f8c04['error']){if(_0x3f8c04[_0xa795('0xf')][_0xa795('0x10')]===0x1f4){logger[_0xa795('0xf')]('TeamVoiceQueue,\x20%s,\x20%s',_0x44fc10,_0x3f8c04[_0xa795('0xf')][_0xa795('0x11')]);return _0x5027d1(_0x3f8c04['error'][_0xa795('0x11')]);}logger[_0xa795('0xf')](_0xa795('0xb'),_0x44fc10,_0x3f8c04[_0xa795('0xf')][_0xa795('0x11')]);return _0x36a3a9(_0x3f8c04[_0xa795('0xf')][_0xa795('0x11')]);}else{logger['info'](_0xa795('0xb'),_0x44fc10,_0xa795('0xc'));_0x36a3a9(_0x3f8c04['result']['message']);}})[_0xa795('0x12')](function(_0x56db2c){logger[_0xa795('0xf')](_0xa795('0xb'),_0x44fc10,_0x56db2c);_0x5027d1(_0x56db2c);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6edc=['show','post','create','update','destroy','exports','multer','util','path','connect-timeout','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','/:id'];(function(_0x2dde74,_0x2fb64b){var _0x16d53b=function(_0xaf13c7){while(--_0xaf13c7){_0x2dde74['push'](_0x2dde74['shift']());}};_0x16d53b(++_0x2fb64b);}(_0x6edc,0x138));var _0xc6ed=function(_0x27cf96,_0x13e80a){_0x27cf96=_0x27cf96-0x0;var _0x2d2ab5=_0x6edc[_0x27cf96];return _0x2d2ab5;};'use strict';var multer=require(_0xc6ed('0x0'));var util=require(_0xc6ed('0x1'));var path=require(_0xc6ed('0x2'));var timeout=require(_0xc6ed('0x3'));var express=require('express');var router=express['Router']();var fs_extra=require(_0xc6ed('0x4'));var auth=require(_0xc6ed('0x5'));var interaction=require(_0xc6ed('0x6'));var config=require(_0xc6ed('0x7'));var controller=require('./template.controller');router[_0xc6ed('0x8')]('/',auth[_0xc6ed('0x9')](),controller[_0xc6ed('0xa')]);router['get'](_0xc6ed('0xb'),auth['isAuthenticated'](),controller[_0xc6ed('0xc')]);router[_0xc6ed('0xd')]('/',auth[_0xc6ed('0x9')](),controller[_0xc6ed('0xe')]);router['put'](_0xc6ed('0xb'),auth[_0xc6ed('0x9')](),controller[_0xc6ed('0xf')]);router['delete']('/:id',auth[_0xc6ed('0x9')](),controller[_0xc6ed('0x10')]);module[_0xc6ed('0x11')]=router;
\ No newline at end of file
+var _0x20de=['destroy','exports','multer','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./template.controller','get','isAuthenticated','post','create','/:id','delete'];(function(_0x146db4,_0x397208){var _0x10834e=function(_0xdb17b){while(--_0xdb17b){_0x146db4['push'](_0x146db4['shift']());}};_0x10834e(++_0x397208);}(_0x20de,0x134));var _0xe20d=function(_0x5627e1,_0x1b2dbf){_0x5627e1=_0x5627e1-0x0;var _0x2f013f=_0x20de[_0x5627e1];return _0x2f013f;};'use strict';var multer=require(_0xe20d('0x0'));var util=require('util');var path=require(_0xe20d('0x1'));var timeout=require(_0xe20d('0x2'));var express=require(_0xe20d('0x3'));var router=express[_0xe20d('0x4')]();var fs_extra=require(_0xe20d('0x5'));var auth=require(_0xe20d('0x6'));var interaction=require(_0xe20d('0x7'));var config=require(_0xe20d('0x8'));var controller=require(_0xe20d('0x9'));router[_0xe20d('0xa')]('/',auth[_0xe20d('0xb')](),controller['index']);router[_0xe20d('0xa')]('/:id',auth['isAuthenticated'](),controller['show']);router[_0xe20d('0xc')]('/',auth[_0xe20d('0xb')](),controller[_0xe20d('0xd')]);router['put'](_0xe20d('0xe'),auth[_0xe20d('0xb')](),controller['update']);router[_0xe20d('0xf')](_0xe20d('0xe'),auth['isAuthenticated'](),controller[_0xe20d('0x10')]);module[_0xe20d('0x11')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6b24=['exports','TEXT','sequelize'];(function(_0x87d439,_0x47fe5a){var _0x57360e=function(_0x35707f){while(--_0x35707f){_0x87d439['push'](_0x87d439['shift']());}};_0x57360e(++_0x47fe5a);}(_0x6b24,0x89));var _0x46b2=function(_0x33bb07,_0x5b1849){_0x33bb07=_0x33bb07-0x0;var _0x481c81=_0x6b24[_0x33bb07];return _0x481c81;};'use strict';var Sequelize=require(_0x46b2('0x0'));module[_0x46b2('0x1')]={'name':{'type':Sequelize['STRING']},'description':{'type':Sequelize['STRING']},'html':{'type':Sequelize[_0x46b2('0x2')]}};
\ No newline at end of file
+var _0xab6b=['STRING','sequelize','exports'];(function(_0x2e1cbf,_0x4fd6e9){var _0x3a9c44=function(_0x4b9531){while(--_0x4b9531){_0x2e1cbf['push'](_0x2e1cbf['shift']());}};_0x3a9c44(++_0x4fd6e9);}(_0xab6b,0x1c3));var _0xbab6=function(_0x5c3a22,_0xf9eb07){_0x5c3a22=_0x5c3a22-0x0;var _0x2e8fb8=_0xab6b[_0x5c3a22];return _0x2e8fb8;};'use strict';var Sequelize=require(_0xbab6('0x0'));module[_0xbab6('0x1')]={'name':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0xbab6('0x2')]},'html':{'type':Sequelize['TEXT']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x16b2=['../../components/parsers/advancedSearch','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','undefined','limit','count','set','Content-Range','apply','save','update','destroy','then','get','UserProfileResource','end','stack','name','send','index','Template','model','query','keys','filters','intersection','fields','length','hasOwnProperty','nolimit','offset','order','sort','where','filter','merge','map','type','VIRTUAL','options','includeAll','include','findAll','catch','show','params','attributes','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','Templates','find','userProfileId','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs'];(function(_0x22fe5c,_0x28645c){var _0x17a217=function(_0x1306f0){while(--_0x1306f0){_0x22fe5c['push'](_0x22fe5c['shift']());}};_0x17a217(++_0x28645c);}(_0x16b2,0x193));var _0x216b=function(_0x5c38cd,_0x5a6b4e){_0x5c38cd=_0x5c38cd-0x0;var _0xc985ef=_0x16b2[_0x5c38cd];return _0xc985ef;};'use strict';var emlformat=require(_0x216b('0x0'));var rimraf=require(_0x216b('0x1'));var zipdir=require(_0x216b('0x2'));var jsonpatch=require(_0x216b('0x3'));var rp=require(_0x216b('0x4'));var moment=require(_0x216b('0x5'));var BPromise=require(_0x216b('0x6'));var Mustache=require(_0x216b('0x7'));var util=require(_0x216b('0x8'));var path=require(_0x216b('0x9'));var sox=require(_0x216b('0xa'));var csv=require(_0x216b('0xb'));var ejs=require(_0x216b('0xc'));var fs=require('fs');var fs_extra=require(_0x216b('0xd'));var _=require(_0x216b('0xe'));var squel=require(_0x216b('0xf'));var crypto=require(_0x216b('0x10'));var jsforce=require('jsforce');var deskjs=require(_0x216b('0x11'));var toCsv=require(_0x216b('0xb'));var querystring=require(_0x216b('0x12'));var Papa=require(_0x216b('0x13'));var Redis=require('ioredis');var authService=require(_0x216b('0x14'));var qs=require(_0x216b('0x15'));var as=require(_0x216b('0x16'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')('api');var utils=require(_0x216b('0x17'));var config=require(_0x216b('0x18'));var licenseUtil=require(_0x216b('0x19'));var db=require(_0x216b('0x1a'))['db'];function respondWithStatusCode(_0x132bab,_0x47d2d0){_0x47d2d0=_0x47d2d0||0xcc;return function(_0x4f8390){if(_0x4f8390){return _0x132bab[_0x216b('0x1b')](_0x47d2d0);}return _0x132bab[_0x216b('0x1c')](_0x47d2d0)['end']();};}function respondWithResult(_0x12a4ef,_0x5ea068){_0x5ea068=_0x5ea068||0xc8;return function(_0x23ceca){if(_0x23ceca){return _0x12a4ef[_0x216b('0x1c')](_0x5ea068)[_0x216b('0x1d')](_0x23ceca);}};}function respondWithFilteredResult(_0x50d7f3,_0xfbdaa7){return function(_0x42cc97){if(_0x42cc97){var _0x3836fc=typeof _0xfbdaa7['offset']===_0x216b('0x1e')&&typeof _0xfbdaa7[_0x216b('0x1f')]===_0x216b('0x1e');var _0x1793d8=_0x42cc97['count'];var _0x3bf4fb=_0x3836fc?0x0:_0xfbdaa7['offset'];var _0x36e9d4=_0x3836fc?_0x42cc97[_0x216b('0x20')]:_0xfbdaa7['offset']+_0xfbdaa7['limit'];var _0x58c811;if(_0x36e9d4>=_0x1793d8){_0x36e9d4=_0x1793d8;_0x58c811=0xc8;}else{_0x58c811=0xce;}_0x50d7f3[_0x216b('0x1c')](_0x58c811);return _0x50d7f3[_0x216b('0x21')](_0x216b('0x22'),_0x3bf4fb+'-'+_0x36e9d4+'/'+_0x1793d8)[_0x216b('0x1d')](_0x42cc97);}return null;};}function patchUpdates(_0x45a307){return function(_0x29112d){try{jsonpatch[_0x216b('0x23')](_0x29112d,_0x45a307,!![]);}catch(_0x1c7dd6){return BPromise['reject'](_0x1c7dd6);}return _0x29112d[_0x216b('0x24')]();};}function saveUpdates(_0x358685,_0x1bc8cc){return function(_0x281795){if(_0x281795){return _0x281795[_0x216b('0x25')](_0x358685)['then'](function(_0x574bd8){return _0x574bd8;});}return null;};}function removeEntity(_0x40ce10,_0x4f6068){return function(_0x5405d2){if(_0x5405d2){return _0x5405d2[_0x216b('0x26')]()[_0x216b('0x27')](function(){var _0x6580c4=_0x5405d2[_0x216b('0x28')]({'plain':!![]});var _0x4980d4='Templates';return db[_0x216b('0x29')][_0x216b('0x26')]({'where':{'type':_0x4980d4,'resourceId':_0x6580c4['id']}})[_0x216b('0x27')](function(){return _0x5405d2;});})[_0x216b('0x27')](function(){_0x40ce10[_0x216b('0x1c')](0xcc)[_0x216b('0x2a')]();});}};}function handleEntityNotFound(_0x2a4365,_0x155e1f){return function(_0x1c1cf3){if(!_0x1c1cf3){_0x2a4365[_0x216b('0x1b')](0x194);}return _0x1c1cf3;};}function handleError(_0x4f878e,_0x2e96d0){_0x2e96d0=_0x2e96d0||0x1f4;return function(_0xf908bb){logger['error'](_0xf908bb[_0x216b('0x2b')]);if(_0xf908bb[_0x216b('0x2c')]){delete _0xf908bb['name'];}_0x4f878e[_0x216b('0x1c')](_0x2e96d0)[_0x216b('0x2d')](_0xf908bb);};}exports[_0x216b('0x2e')]=function(_0x3e1788,_0xf11c53){var _0x10c930={},_0x4afad6={},_0x4ab693={'count':0x0,'rows':[]};var _0x55a40b=_['map'](db[_0x216b('0x2f')]['rawAttributes'],function(_0x282231){return{'name':_0x282231['fieldName'],'type':_0x282231['type']['key']};});_0x4afad6[_0x216b('0x30')]=_['map'](_0x55a40b,'name');_0x4afad6[_0x216b('0x31')]=_[_0x216b('0x32')](_0x3e1788[_0x216b('0x31')]);_0x4afad6[_0x216b('0x33')]=_[_0x216b('0x34')](_0x4afad6[_0x216b('0x30')],_0x4afad6[_0x216b('0x31')]);_0x10c930['attributes']=_['intersection'](_0x4afad6[_0x216b('0x30')],qs['fields'](_0x3e1788[_0x216b('0x31')][_0x216b('0x35')]));_0x10c930['attributes']=_0x10c930['attributes'][_0x216b('0x36')]?_0x10c930['attributes']:_0x4afad6[_0x216b('0x30')];if(!_0x3e1788[_0x216b('0x31')][_0x216b('0x37')](_0x216b('0x38'))){_0x10c930['limit']=qs[_0x216b('0x1f')](_0x3e1788[_0x216b('0x31')][_0x216b('0x1f')]);_0x10c930[_0x216b('0x39')]=qs['offset'](_0x3e1788['query'][_0x216b('0x39')]);}_0x10c930[_0x216b('0x3a')]=qs[_0x216b('0x3b')](_0x3e1788[_0x216b('0x31')][_0x216b('0x3b')]);_0x10c930[_0x216b('0x3c')]=qs['filters'](_['pick'](_0x3e1788[_0x216b('0x31')],_0x4afad6['filters']),_0x55a40b);if(_0x3e1788[_0x216b('0x31')][_0x216b('0x3d')]){_0x10c930['where']=_[_0x216b('0x3e')](_0x10c930[_0x216b('0x3c')],{'$or':_[_0x216b('0x3f')](_0x55a40b,function(_0x545e7b){if(_0x545e7b[_0x216b('0x40')]!==_0x216b('0x41')){var _0x55eb52={};_0x55eb52[_0x545e7b[_0x216b('0x2c')]]={'$like':'%'+_0x3e1788['query'][_0x216b('0x3d')]+'%'};return _0x55eb52;}})});}_0x10c930=_[_0x216b('0x3e')]({},_0x10c930,_0x3e1788[_0x216b('0x42')]);var _0x4dcdbf={'where':_0x10c930['where']};return db[_0x216b('0x2f')][_0x216b('0x20')](_0x4dcdbf)[_0x216b('0x27')](function(_0x489cad){_0x4ab693[_0x216b('0x20')]=_0x489cad;if(_0x3e1788[_0x216b('0x31')][_0x216b('0x43')]){_0x10c930[_0x216b('0x44')]=[{'all':!![]}];}return db[_0x216b('0x2f')][_0x216b('0x45')](_0x10c930);})[_0x216b('0x27')](function(_0x2bbcf6){_0x4ab693['rows']=_0x2bbcf6;return _0x4ab693;})['then'](respondWithFilteredResult(_0xf11c53,_0x10c930))[_0x216b('0x46')](handleError(_0xf11c53,null));};exports[_0x216b('0x47')]=function(_0x46b223,_0x20e596){var _0x49054a={'raw':!![],'where':{'id':_0x46b223[_0x216b('0x48')]['id']}},_0x548ed7={};_0x548ed7[_0x216b('0x30')]=_[_0x216b('0x32')](db[_0x216b('0x2f')]['rawAttributes']);_0x548ed7['query']=_[_0x216b('0x32')](_0x46b223[_0x216b('0x31')]);_0x548ed7[_0x216b('0x33')]=_[_0x216b('0x34')](_0x548ed7[_0x216b('0x30')],_0x548ed7[_0x216b('0x31')]);_0x49054a[_0x216b('0x49')]=_[_0x216b('0x34')](_0x548ed7[_0x216b('0x30')],qs[_0x216b('0x35')](_0x46b223[_0x216b('0x31')]['fields']));_0x49054a['attributes']=_0x49054a[_0x216b('0x49')][_0x216b('0x36')]?_0x49054a[_0x216b('0x49')]:_0x548ed7[_0x216b('0x30')];if(_0x46b223[_0x216b('0x31')][_0x216b('0x43')]){_0x49054a[_0x216b('0x44')]=[{'all':!![]}];}_0x49054a=_[_0x216b('0x3e')]({},_0x49054a,_0x46b223[_0x216b('0x42')]);return db[_0x216b('0x2f')]['find'](_0x49054a)[_0x216b('0x27')](handleEntityNotFound(_0x20e596,null))['then'](respondWithResult(_0x20e596,null))[_0x216b('0x46')](handleError(_0x20e596,null));};exports[_0x216b('0x4a')]=function(_0x11e8ec,_0x340469){return db[_0x216b('0x2f')][_0x216b('0x4a')](_0x11e8ec[_0x216b('0x4b')],{})[_0x216b('0x27')](function(_0x2e25c3){var _0x596c70=_0x11e8ec['user'][_0x216b('0x28')]({'plain':!![]});if(!_0x596c70)throw new Error(_0x216b('0x4c'));if(_0x596c70[_0x216b('0x4d')]===_0x216b('0x4e')){var _0x29337d=_0x2e25c3[_0x216b('0x28')]({'plain':!![]});var _0x10163c=_0x216b('0x4f');return db['UserProfileSection'][_0x216b('0x50')]({'where':{'name':_0x10163c,'userProfileId':_0x596c70[_0x216b('0x51')]},'raw':!![]})[_0x216b('0x27')](function(_0x1b83f6){if(_0x1b83f6&&_0x1b83f6[_0x216b('0x52')]===0x0){return db[_0x216b('0x29')][_0x216b('0x4a')]({'name':_0x29337d['name'],'resourceId':_0x29337d['id'],'type':_0x1b83f6[_0x216b('0x2c')],'sectionId':_0x1b83f6['id']},{})[_0x216b('0x27')](function(){return _0x2e25c3;});}else{return _0x2e25c3;}})[_0x216b('0x46')](function(_0x48e556){logger[_0x216b('0x53')](_0x216b('0x54'),_0x48e556);throw _0x48e556;});}return _0x2e25c3;})['then'](respondWithResult(_0x340469,0xc9))['catch'](handleError(_0x340469,null));};exports['update']=function(_0x3667eb,_0x3b31f4){if(_0x3667eb[_0x216b('0x4b')]['id']){delete _0x3667eb[_0x216b('0x4b')]['id'];}return db[_0x216b('0x2f')]['find']({'where':{'id':_0x3667eb[_0x216b('0x48')]['id']}})[_0x216b('0x27')](handleEntityNotFound(_0x3b31f4,null))['then'](saveUpdates(_0x3667eb['body'],null))[_0x216b('0x27')](respondWithResult(_0x3b31f4,null))['catch'](handleError(_0x3b31f4,null));};exports[_0x216b('0x26')]=function(_0x10280e,_0x37a795){return db[_0x216b('0x2f')][_0x216b('0x50')]({'where':{'id':_0x10280e[_0x216b('0x48')]['id']}})['then'](handleEntityNotFound(_0x37a795,null))[_0x216b('0x27')](removeEntity(_0x37a795,null))[_0x216b('0x46')](handleError(_0x37a795,null));};
\ No newline at end of file
+var _0x9023=['sendStatus','status','end','json','limit','undefined','count','offset','apply','save','update','then','destroy','get','Templates','error','name','send','map','rawAttributes','fieldName','type','key','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','filters','pick','filter','merge','VIRTUAL','options','Template','findAll','catch','includeAll','include','find','create','body','role','user','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','eml-format','rimraf','zip-dir','fast-json-patch','moment','mustache','path','to-csv','ejs','fs-extra','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','../../mysqldb'];(function(_0x2c2412,_0x88cd4a){var _0x32d422=function(_0x2cffd2){while(--_0x2cffd2){_0x2c2412['push'](_0x2c2412['shift']());}};_0x32d422(++_0x88cd4a);}(_0x9023,0x1cd));var _0x3902=function(_0x5c2698,_0x359256){_0x5c2698=_0x5c2698-0x0;var _0x308399=_0x9023[_0x5c2698];return _0x308399;};'use strict';var emlformat=require(_0x3902('0x0'));var rimraf=require(_0x3902('0x1'));var zipdir=require(_0x3902('0x2'));var jsonpatch=require(_0x3902('0x3'));var rp=require('request-promise');var moment=require(_0x3902('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x3902('0x5'));var util=require('util');var path=require(_0x3902('0x6'));var sox=require('sox');var csv=require(_0x3902('0x7'));var ejs=require(_0x3902('0x8'));var fs=require('fs');var fs_extra=require(_0x3902('0x9'));var _=require('lodash');var squel=require(_0x3902('0xa'));var crypto=require(_0x3902('0xb'));var jsforce=require(_0x3902('0xc'));var deskjs=require(_0x3902('0xd'));var toCsv=require(_0x3902('0x7'));var querystring=require(_0x3902('0xe'));var Papa=require(_0x3902('0xf'));var Redis=require(_0x3902('0x10'));var authService=require(_0x3902('0x11'));var qs=require(_0x3902('0x12'));var as=require(_0x3902('0x13'));var hardwareService=require(_0x3902('0x14'));var logger=require(_0x3902('0x15'))(_0x3902('0x16'));var utils=require('../../config/utils');var config=require(_0x3902('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0x3902('0x18'))['db'];function respondWithStatusCode(_0x1bdb83,_0x10739c){_0x10739c=_0x10739c||0xcc;return function(_0x39ca0d){if(_0x39ca0d){return _0x1bdb83[_0x3902('0x19')](_0x10739c);}return _0x1bdb83[_0x3902('0x1a')](_0x10739c)[_0x3902('0x1b')]();};}function respondWithResult(_0x40cf46,_0x40c779){_0x40c779=_0x40c779||0xc8;return function(_0xbf975f){if(_0xbf975f){return _0x40cf46[_0x3902('0x1a')](_0x40c779)[_0x3902('0x1c')](_0xbf975f);}};}function respondWithFilteredResult(_0x1db3ec,_0x2290a2){return function(_0x2c367d){if(_0x2c367d){var _0x2ba157=typeof _0x2290a2['offset']==='undefined'&&typeof _0x2290a2[_0x3902('0x1d')]===_0x3902('0x1e');var _0x5beb99=_0x2c367d[_0x3902('0x1f')];var _0xc92fca=_0x2ba157?0x0:_0x2290a2[_0x3902('0x20')];var _0x43d311=_0x2ba157?_0x2c367d[_0x3902('0x1f')]:_0x2290a2[_0x3902('0x20')]+_0x2290a2[_0x3902('0x1d')];var _0x3f4bb0;if(_0x43d311>=_0x5beb99){_0x43d311=_0x5beb99;_0x3f4bb0=0xc8;}else{_0x3f4bb0=0xce;}_0x1db3ec[_0x3902('0x1a')](_0x3f4bb0);return _0x1db3ec['set']('Content-Range',_0xc92fca+'-'+_0x43d311+'/'+_0x5beb99)[_0x3902('0x1c')](_0x2c367d);}return null;};}function patchUpdates(_0xacc066){return function(_0x5db8fc){try{jsonpatch[_0x3902('0x21')](_0x5db8fc,_0xacc066,!![]);}catch(_0x588873){return BPromise['reject'](_0x588873);}return _0x5db8fc[_0x3902('0x22')]();};}function saveUpdates(_0x3e5c1f,_0xff6415){return function(_0x1a87a1){if(_0x1a87a1){return _0x1a87a1[_0x3902('0x23')](_0x3e5c1f)[_0x3902('0x24')](function(_0x5994b3){return _0x5994b3;});}return null;};}function removeEntity(_0xb8e4e9,_0x231655){return function(_0x366496){if(_0x366496){return _0x366496[_0x3902('0x25')]()[_0x3902('0x24')](function(){var _0x59d1dc=_0x366496[_0x3902('0x26')]({'plain':!![]});var _0x4b2d54=_0x3902('0x27');return db['UserProfileResource'][_0x3902('0x25')]({'where':{'type':_0x4b2d54,'resourceId':_0x59d1dc['id']}})[_0x3902('0x24')](function(){return _0x366496;});})[_0x3902('0x24')](function(){_0xb8e4e9['status'](0xcc)[_0x3902('0x1b')]();});}};}function handleEntityNotFound(_0x224a4a,_0x2fd6c7){return function(_0x50be60){if(!_0x50be60){_0x224a4a['sendStatus'](0x194);}return _0x50be60;};}function handleError(_0x41dd90,_0x3c41d4){_0x3c41d4=_0x3c41d4||0x1f4;return function(_0x105ef4){logger[_0x3902('0x28')](_0x105ef4['stack']);if(_0x105ef4[_0x3902('0x29')]){delete _0x105ef4[_0x3902('0x29')];}_0x41dd90[_0x3902('0x1a')](_0x3c41d4)[_0x3902('0x2a')](_0x105ef4);};}exports['index']=function(_0x1215a1,_0x1455f7){var _0x3f144e={},_0x33a115={},_0x5a8933={'count':0x0,'rows':[]};var _0x4eff8c=_[_0x3902('0x2b')](db['Template'][_0x3902('0x2c')],function(_0x5e2b8a){return{'name':_0x5e2b8a[_0x3902('0x2d')],'type':_0x5e2b8a[_0x3902('0x2e')][_0x3902('0x2f')]};});_0x33a115[_0x3902('0x30')]=_[_0x3902('0x2b')](_0x4eff8c,_0x3902('0x29'));_0x33a115[_0x3902('0x31')]=_[_0x3902('0x32')](_0x1215a1['query']);_0x33a115['filters']=_[_0x3902('0x33')](_0x33a115[_0x3902('0x30')],_0x33a115[_0x3902('0x31')]);_0x3f144e[_0x3902('0x34')]=_[_0x3902('0x33')](_0x33a115[_0x3902('0x30')],qs[_0x3902('0x35')](_0x1215a1[_0x3902('0x31')][_0x3902('0x35')]));_0x3f144e[_0x3902('0x34')]=_0x3f144e[_0x3902('0x34')][_0x3902('0x36')]?_0x3f144e[_0x3902('0x34')]:_0x33a115[_0x3902('0x30')];if(!_0x1215a1[_0x3902('0x31')][_0x3902('0x37')]('nolimit')){_0x3f144e[_0x3902('0x1d')]=qs[_0x3902('0x1d')](_0x1215a1[_0x3902('0x31')][_0x3902('0x1d')]);_0x3f144e[_0x3902('0x20')]=qs['offset'](_0x1215a1[_0x3902('0x31')][_0x3902('0x20')]);}_0x3f144e[_0x3902('0x38')]=qs[_0x3902('0x39')](_0x1215a1['query']['sort']);_0x3f144e[_0x3902('0x3a')]=qs[_0x3902('0x3b')](_[_0x3902('0x3c')](_0x1215a1[_0x3902('0x31')],_0x33a115[_0x3902('0x3b')]),_0x4eff8c);if(_0x1215a1[_0x3902('0x31')][_0x3902('0x3d')]){_0x3f144e[_0x3902('0x3a')]=_[_0x3902('0x3e')](_0x3f144e[_0x3902('0x3a')],{'$or':_[_0x3902('0x2b')](_0x4eff8c,function(_0x1e8e78){if(_0x1e8e78['type']!==_0x3902('0x3f')){var _0x1ef8ee={};_0x1ef8ee[_0x1e8e78['name']]={'$like':'%'+_0x1215a1[_0x3902('0x31')]['filter']+'%'};return _0x1ef8ee;}})});}_0x3f144e=_[_0x3902('0x3e')]({},_0x3f144e,_0x1215a1[_0x3902('0x40')]);var _0x326422={'where':_0x3f144e['where']};return db[_0x3902('0x41')][_0x3902('0x1f')](_0x326422)['then'](function(_0x525c0b){_0x5a8933[_0x3902('0x1f')]=_0x525c0b;if(_0x1215a1[_0x3902('0x31')]['includeAll']){_0x3f144e['include']=[{'all':!![]}];}return db[_0x3902('0x41')][_0x3902('0x42')](_0x3f144e);})['then'](function(_0x4d5551){_0x5a8933['rows']=_0x4d5551;return _0x5a8933;})[_0x3902('0x24')](respondWithFilteredResult(_0x1455f7,_0x3f144e))[_0x3902('0x43')](handleError(_0x1455f7,null));};exports['show']=function(_0x2132fa,_0x228dd3){var _0x3ecb69={'raw':!![],'where':{'id':_0x2132fa['params']['id']}},_0x1c53f1={};_0x1c53f1['model']=_['keys'](db[_0x3902('0x41')][_0x3902('0x2c')]);_0x1c53f1[_0x3902('0x31')]=_['keys'](_0x2132fa['query']);_0x1c53f1[_0x3902('0x3b')]=_[_0x3902('0x33')](_0x1c53f1[_0x3902('0x30')],_0x1c53f1[_0x3902('0x31')]);_0x3ecb69[_0x3902('0x34')]=_[_0x3902('0x33')](_0x1c53f1[_0x3902('0x30')],qs[_0x3902('0x35')](_0x2132fa[_0x3902('0x31')][_0x3902('0x35')]));_0x3ecb69[_0x3902('0x34')]=_0x3ecb69['attributes'][_0x3902('0x36')]?_0x3ecb69[_0x3902('0x34')]:_0x1c53f1[_0x3902('0x30')];if(_0x2132fa[_0x3902('0x31')][_0x3902('0x44')]){_0x3ecb69[_0x3902('0x45')]=[{'all':!![]}];}_0x3ecb69=_[_0x3902('0x3e')]({},_0x3ecb69,_0x2132fa[_0x3902('0x40')]);return db[_0x3902('0x41')][_0x3902('0x46')](_0x3ecb69)[_0x3902('0x24')](handleEntityNotFound(_0x228dd3,null))[_0x3902('0x24')](respondWithResult(_0x228dd3,null))[_0x3902('0x43')](handleError(_0x228dd3,null));};exports[_0x3902('0x47')]=function(_0x7083dd,_0x3f12d1){return db[_0x3902('0x41')][_0x3902('0x47')](_0x7083dd[_0x3902('0x48')],{})[_0x3902('0x24')](function(_0x1a1190){var _0x578b2a=_0x7083dd['user'][_0x3902('0x26')]({'plain':!![]});if(!_0x578b2a)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x578b2a[_0x3902('0x49')]===_0x3902('0x4a')){var _0x2241cb=_0x1a1190[_0x3902('0x26')]({'plain':!![]});var _0x5f5f8c=_0x3902('0x27');return db[_0x3902('0x4b')][_0x3902('0x46')]({'where':{'name':_0x5f5f8c,'userProfileId':_0x578b2a[_0x3902('0x4c')]},'raw':!![]})[_0x3902('0x24')](function(_0x473ab1){if(_0x473ab1&&_0x473ab1[_0x3902('0x4d')]===0x0){return db[_0x3902('0x4e')]['create']({'name':_0x2241cb['name'],'resourceId':_0x2241cb['id'],'type':_0x473ab1[_0x3902('0x29')],'sectionId':_0x473ab1['id']},{})['then'](function(){return _0x1a1190;});}else{return _0x1a1190;}})[_0x3902('0x43')](function(_0x21708f){logger[_0x3902('0x28')](_0x3902('0x4f'),_0x21708f);throw _0x21708f;});}return _0x1a1190;})[_0x3902('0x24')](respondWithResult(_0x3f12d1,0xc9))[_0x3902('0x43')](handleError(_0x3f12d1,null));};exports[_0x3902('0x23')]=function(_0xde92dc,_0x493aff){if(_0xde92dc[_0x3902('0x48')]['id']){delete _0xde92dc[_0x3902('0x48')]['id'];}return db[_0x3902('0x41')][_0x3902('0x46')]({'where':{'id':_0xde92dc[_0x3902('0x50')]['id']}})[_0x3902('0x24')](handleEntityNotFound(_0x493aff,null))[_0x3902('0x24')](saveUpdates(_0xde92dc[_0x3902('0x48')],null))[_0x3902('0x24')](respondWithResult(_0x493aff,null))[_0x3902('0x43')](handleError(_0x493aff,null));};exports[_0x3902('0x25')]=function(_0x4e2963,_0x455800){return db['Template'][_0x3902('0x46')]({'where':{'id':_0x4e2963[_0x3902('0x50')]['id']}})[_0x3902('0x24')](handleEntityNotFound(_0x455800,null))['then'](removeEntity(_0x455800,null))['catch'](handleError(_0x455800,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb4da=['../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./template.attributes','define','Template','tools_templates','lodash','util'];(function(_0x20501d,_0x4d7d5a){var _0x1092d0=function(_0x3e7027){while(--_0x3e7027){_0x20501d['push'](_0x20501d['shift']());}};_0x1092d0(++_0x4d7d5a);}(_0xb4da,0x98));var _0xab4d=function(_0x55d631,_0x431039){_0x55d631=_0x55d631-0x0;var _0x32278a=_0xb4da[_0x55d631];return _0x32278a;};'use strict';var _=require(_0xab4d('0x0'));var util=require(_0xab4d('0x1'));var logger=require(_0xab4d('0x2'))(_0xab4d('0x3'));var moment=require(_0xab4d('0x4'));var BPromise=require(_0xab4d('0x5'));var rp=require(_0xab4d('0x6'));var fs=require('fs');var path=require(_0xab4d('0x7'));var rimraf=require(_0xab4d('0x8'));var config=require(_0xab4d('0x9'));var attributes=require(_0xab4d('0xa'));module['exports']=function(_0x241173,_0x5413dc){return _0x241173[_0xab4d('0xb')](_0xab4d('0xc'),attributes,{'tableName':_0xab4d('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xbc75=['Template','tools_templates','util','../../config/logger','api','moment','bluebird','path','rimraf','../../config/environment','./template.attributes','define'];(function(_0x37185c,_0x360464){var _0x62d340=function(_0x1b599a){while(--_0x1b599a){_0x37185c['push'](_0x37185c['shift']());}};_0x62d340(++_0x360464);}(_0xbc75,0xf2));var _0x5bc7=function(_0x3d8e97,_0x22ed17){_0x3d8e97=_0x3d8e97-0x0;var _0x23d0dd=_0xbc75[_0x3d8e97];return _0x23d0dd;};'use strict';var _=require('lodash');var util=require(_0x5bc7('0x0'));var logger=require(_0x5bc7('0x1'))(_0x5bc7('0x2'));var moment=require(_0x5bc7('0x3'));var BPromise=require(_0x5bc7('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x5bc7('0x5'));var rimraf=require(_0x5bc7('0x6'));var config=require(_0x5bc7('0x7'));var attributes=require(_0x5bc7('0x8'));module['exports']=function(_0x5b3365,_0x22de7f){return _0x5b3365[_0x5bc7('0x9')](_0x5bc7('0xa'),attributes,{'tableName':_0x5bc7('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9e00=['then','info','request\x20sent','debug','stringify','error','code','message','result','catch','Template,\x20%s,\x20%s','Template','findAll','options','where','attributes','include','model','map','GetTemplate','lodash','util','bluebird','../../config/logger','../../config/environment','client','http','request'];(function(_0x4a5f95,_0x1553d3){var _0x4dcfa5=function(_0x1afbcf){while(--_0x1afbcf){_0x4a5f95['push'](_0x4a5f95['shift']());}};_0x4dcfa5(++_0x1553d3);}(_0x9e00,0x1b8));var _0x09e0=function(_0xa464c9,_0x7c86d8){_0xa464c9=_0xa464c9-0x0;var _0x3d73c4=_0x9e00[_0xa464c9];return _0x3d73c4;};'use strict';var _=require(_0x09e0('0x0'));var util=require(_0x09e0('0x1'));var moment=require('moment');var BPromise=require(_0x09e0('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0x09e0('0x3'))('rpc');var config=require(_0x09e0('0x4'));var jayson=require('jayson/promise');var client=jayson[_0x09e0('0x5')][_0x09e0('0x6')]({'port':0x232a});function respondWithRpcPromise(_0x1db303,_0x214ee9,_0x170417){return new BPromise(function(_0x46de3d,_0x133120){return client[_0x09e0('0x7')](_0x1db303,_0x170417)[_0x09e0('0x8')](function(_0x4a5ecc){logger[_0x09e0('0x9')]('Template,\x20%s,\x20%s',_0x214ee9,_0x09e0('0xa'));logger[_0x09e0('0xb')]('Template,\x20%s,\x20%s,\x20%s',_0x214ee9,_0x09e0('0xa'),JSON[_0x09e0('0xc')](_0x4a5ecc));if(_0x4a5ecc[_0x09e0('0xd')]){if(_0x4a5ecc['error'][_0x09e0('0xe')]===0x1f4){logger[_0x09e0('0xd')]('Template,\x20%s,\x20%s',_0x214ee9,_0x4a5ecc[_0x09e0('0xd')][_0x09e0('0xf')]);return _0x133120(_0x4a5ecc[_0x09e0('0xd')]['message']);}logger[_0x09e0('0xd')]('Template,\x20%s,\x20%s',_0x214ee9,_0x4a5ecc['error'][_0x09e0('0xf')]);return _0x46de3d(_0x4a5ecc[_0x09e0('0xd')]['message']);}else{logger[_0x09e0('0x9')]('Template,\x20%s,\x20%s',_0x214ee9,'request\x20sent');_0x46de3d(_0x4a5ecc[_0x09e0('0x10')][_0x09e0('0xf')]);}})[_0x09e0('0x11')](function(_0x5e86da){logger[_0x09e0('0xd')](_0x09e0('0x12'),_0x214ee9,_0x5e86da);_0x133120(_0x5e86da);});});}exports['GetTemplate']=function(_0x410694){var _0x48f473=this;return new Promise(function(_0x59afed,_0x199b66){return db[_0x09e0('0x13')][_0x09e0('0x14')]({'raw':_0x410694['options']?_0x410694[_0x09e0('0x15')]['raw']===undefined?!![]:![]:!![],'where':_0x410694[_0x09e0('0x15')]?_0x410694[_0x09e0('0x15')][_0x09e0('0x16')]||null:null,'attributes':_0x410694['options']?_0x410694['options'][_0x09e0('0x17')]||null:null,'limit':_0x410694[_0x09e0('0x15')]?_0x410694['options']['limit']||null:null,'include':_0x410694[_0x09e0('0x15')]?_0x410694['options'][_0x09e0('0x18')]?_['map'](_0x410694['options'][_0x09e0('0x18')],function(_0x47ba07){return{'model':db[_0x47ba07[_0x09e0('0x19')]],'as':_0x47ba07['as'],'attributes':_0x47ba07[_0x09e0('0x17')],'include':_0x47ba07[_0x09e0('0x18')]?_[_0x09e0('0x1a')](_0x47ba07[_0x09e0('0x18')],function(_0x539754){return{'model':db[_0x539754[_0x09e0('0x19')]],'as':_0x539754['as'],'attributes':_0x539754[_0x09e0('0x17')],'include':_0x539754[_0x09e0('0x18')]?_[_0x09e0('0x1a')](_0x539754['include'],function(_0x8f6eb3){return{'model':db[_0x8f6eb3[_0x09e0('0x19')]],'as':_0x8f6eb3['as'],'attributes':_0x8f6eb3[_0x09e0('0x17')]};}):[]};}):[]};}):[]:[]})[_0x09e0('0x8')](function(_0x2e8924){logger[_0x09e0('0x9')](_0x09e0('0x1b'),_0x410694);logger[_0x09e0('0xb')](_0x09e0('0x1b'),_0x410694,JSON[_0x09e0('0xc')](_0x2e8924));_0x59afed(_0x2e8924);})[_0x09e0('0x11')](function(_0x3ba412){logger[_0x09e0('0xd')](_0x09e0('0x1b'),_0x3ba412[_0x09e0('0xf')],_0x410694);_0x199b66(_0x48f473[_0x09e0('0xd')](0x1f4,_0x3ba412[_0x09e0('0xf')]));});});};
\ No newline at end of file
+var _0xa713=['message','catch','findAll','options','raw','where','attributes','include','map','model','then','GetTemplate','stringify','lodash','bluebird','../../mysqldb','../../config/logger','../../config/environment','jayson/promise','http','request','info','Template,\x20%s,\x20%s','request\x20sent','debug','Template,\x20%s,\x20%s,\x20%s','error','code'];(function(_0x29d580,_0x216d7c){var _0x3ef25c=function(_0x8cebdc){while(--_0x8cebdc){_0x29d580['push'](_0x29d580['shift']());}};_0x3ef25c(++_0x216d7c);}(_0xa713,0x7d));var _0x3a71=function(_0x3af277,_0x311822){_0x3af277=_0x3af277-0x0;var _0x1a61f0=_0xa713[_0x3af277];return _0x1a61f0;};'use strict';var _=require(_0x3a71('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0x3a71('0x1'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0x3a71('0x2'))['db'];var utils=require('../../config/utils');var logger=require(_0x3a71('0x3'))('rpc');var config=require(_0x3a71('0x4'));var jayson=require(_0x3a71('0x5'));var client=jayson['client'][_0x3a71('0x6')]({'port':0x232a});function respondWithRpcPromise(_0x48b695,_0x435eaf,_0x8d742d){return new BPromise(function(_0x33ce27,_0x1f2fc3){return client[_0x3a71('0x7')](_0x48b695,_0x8d742d)['then'](function(_0x46a52b){logger[_0x3a71('0x8')](_0x3a71('0x9'),_0x435eaf,_0x3a71('0xa'));logger[_0x3a71('0xb')](_0x3a71('0xc'),_0x435eaf,'request\x20sent',JSON['stringify'](_0x46a52b));if(_0x46a52b[_0x3a71('0xd')]){if(_0x46a52b[_0x3a71('0xd')][_0x3a71('0xe')]===0x1f4){logger[_0x3a71('0xd')](_0x3a71('0x9'),_0x435eaf,_0x46a52b['error'][_0x3a71('0xf')]);return _0x1f2fc3(_0x46a52b[_0x3a71('0xd')]['message']);}logger['error'](_0x3a71('0x9'),_0x435eaf,_0x46a52b[_0x3a71('0xd')][_0x3a71('0xf')]);return _0x33ce27(_0x46a52b[_0x3a71('0xd')]['message']);}else{logger[_0x3a71('0x8')]('Template,\x20%s,\x20%s',_0x435eaf,_0x3a71('0xa'));_0x33ce27(_0x46a52b['result'][_0x3a71('0xf')]);}})[_0x3a71('0x10')](function(_0xb92be0){logger['error'](_0x3a71('0x9'),_0x435eaf,_0xb92be0);_0x1f2fc3(_0xb92be0);});});}exports['GetTemplate']=function(_0x46bf7f){var _0xd27a33=this;return new Promise(function(_0x525725,_0x3190f6){return db['Template'][_0x3a71('0x11')]({'raw':_0x46bf7f[_0x3a71('0x12')]?_0x46bf7f['options'][_0x3a71('0x13')]===undefined?!![]:![]:!![],'where':_0x46bf7f[_0x3a71('0x12')]?_0x46bf7f[_0x3a71('0x12')][_0x3a71('0x14')]||null:null,'attributes':_0x46bf7f[_0x3a71('0x12')]?_0x46bf7f[_0x3a71('0x12')][_0x3a71('0x15')]||null:null,'limit':_0x46bf7f[_0x3a71('0x12')]?_0x46bf7f[_0x3a71('0x12')]['limit']||null:null,'include':_0x46bf7f['options']?_0x46bf7f[_0x3a71('0x12')][_0x3a71('0x16')]?_[_0x3a71('0x17')](_0x46bf7f[_0x3a71('0x12')]['include'],function(_0xf29710){return{'model':db[_0xf29710[_0x3a71('0x18')]],'as':_0xf29710['as'],'attributes':_0xf29710[_0x3a71('0x15')],'include':_0xf29710['include']?_[_0x3a71('0x17')](_0xf29710['include'],function(_0x5978d2){return{'model':db[_0x5978d2[_0x3a71('0x18')]],'as':_0x5978d2['as'],'attributes':_0x5978d2['attributes'],'include':_0x5978d2[_0x3a71('0x16')]?_['map'](_0x5978d2[_0x3a71('0x16')],function(_0xf30b84){return{'model':db[_0xf30b84['model']],'as':_0xf30b84['as'],'attributes':_0xf30b84[_0x3a71('0x15')]};}):[]};}):[]};}):[]:[]})[_0x3a71('0x19')](function(_0x2f65ac){logger[_0x3a71('0x8')](_0x3a71('0x1a'),_0x46bf7f);logger[_0x3a71('0xb')]('GetTemplate',_0x46bf7f,JSON[_0x3a71('0x1b')](_0x2f65ac));_0x525725(_0x2f65ac);})[_0x3a71('0x10')](function(_0x4c003e){logger[_0x3a71('0xd')](_0x3a71('0x1a'),_0x4c003e['message'],_0x46bf7f);_0x3190f6(_0xd27a33[_0x3a71('0xd')](0x1f4,_0x4c003e[_0x3a71('0xf')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x562b=['/:id/any_conditions','getAnyConditions','/:id/actions','getActions','create','post','addAllCondition','addAnyCondition','addAction','put','delete','destroy','exports','multer','path','express','fs-extra','../../components/interaction/service','../../config/environment','./trigger.controller','isAuthenticated','index','/:id','show','/:id/all_conditions','getAllConditions'];(function(_0xa148b7,_0x2f3eb2){var _0x51efd3=function(_0x34bcec){while(--_0x34bcec){_0xa148b7['push'](_0xa148b7['shift']());}};_0x51efd3(++_0x2f3eb2);}(_0x562b,0x1ad));var _0xb562=function(_0x403c20,_0x4a7b99){_0x403c20=_0x403c20-0x0;var _0x2b271a=_0x562b[_0x403c20];return _0x2b271a;};'use strict';var multer=require(_0xb562('0x0'));var util=require('util');var path=require(_0xb562('0x1'));var timeout=require('connect-timeout');var express=require(_0xb562('0x2'));var router=express['Router']();var fs_extra=require(_0xb562('0x3'));var auth=require('../../components/auth/service');var interaction=require(_0xb562('0x4'));var config=require(_0xb562('0x5'));var controller=require(_0xb562('0x6'));router['get']('/',auth[_0xb562('0x7')](),controller[_0xb562('0x8')]);router['get'](_0xb562('0x9'),auth['isAuthenticated'](),controller[_0xb562('0xa')]);router['get'](_0xb562('0xb'),auth['isAuthenticated'](),controller[_0xb562('0xc')]);router['get'](_0xb562('0xd'),auth[_0xb562('0x7')](),controller[_0xb562('0xe')]);router['get'](_0xb562('0xf'),auth['isAuthenticated'](),controller[_0xb562('0x10')]);router['post']('/',auth[_0xb562('0x7')](),controller[_0xb562('0x11')]);router[_0xb562('0x12')](_0xb562('0xb'),auth[_0xb562('0x7')](),controller[_0xb562('0x13')]);router['post'](_0xb562('0xd'),auth[_0xb562('0x7')](),controller[_0xb562('0x14')]);router[_0xb562('0x12')](_0xb562('0xf'),auth[_0xb562('0x7')](),controller[_0xb562('0x15')]);router[_0xb562('0x16')](_0xb562('0x9'),auth[_0xb562('0x7')](),controller['update']);router[_0xb562('0x17')]('/:id',auth[_0xb562('0x7')](),controller[_0xb562('0x18')]);module[_0xb562('0x19')]=router;
\ No newline at end of file
+var _0x8632=['/:id/actions','getActions','post','create','addAllCondition','addAnyCondition','put','destroy','exports','util','path','connect-timeout','express','Router','fs-extra','../../components/interaction/service','../../config/environment','./trigger.controller','get','isAuthenticated','index','show','/:id/all_conditions','/:id/any_conditions','getAnyConditions'];(function(_0x116b35,_0x329554){var _0x431135=function(_0x432d90){while(--_0x432d90){_0x116b35['push'](_0x116b35['shift']());}};_0x431135(++_0x329554);}(_0x8632,0x167));var _0x2863=function(_0x5c6299,_0x11bd28){_0x5c6299=_0x5c6299-0x0;var _0x23b564=_0x8632[_0x5c6299];return _0x23b564;};'use strict';var multer=require('multer');var util=require(_0x2863('0x0'));var path=require(_0x2863('0x1'));var timeout=require(_0x2863('0x2'));var express=require(_0x2863('0x3'));var router=express[_0x2863('0x4')]();var fs_extra=require(_0x2863('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0x2863('0x6'));var config=require(_0x2863('0x7'));var controller=require(_0x2863('0x8'));router[_0x2863('0x9')]('/',auth[_0x2863('0xa')](),controller[_0x2863('0xb')]);router[_0x2863('0x9')]('/:id',auth[_0x2863('0xa')](),controller[_0x2863('0xc')]);router[_0x2863('0x9')](_0x2863('0xd'),auth[_0x2863('0xa')](),controller['getAllConditions']);router[_0x2863('0x9')](_0x2863('0xe'),auth[_0x2863('0xa')](),controller[_0x2863('0xf')]);router[_0x2863('0x9')](_0x2863('0x10'),auth[_0x2863('0xa')](),controller[_0x2863('0x11')]);router[_0x2863('0x12')]('/',auth[_0x2863('0xa')](),controller[_0x2863('0x13')]);router[_0x2863('0x12')](_0x2863('0xd'),auth[_0x2863('0xa')](),controller[_0x2863('0x14')]);router['post'](_0x2863('0xe'),auth[_0x2863('0xa')](),controller[_0x2863('0x15')]);router['post'](_0x2863('0x10'),auth['isAuthenticated'](),controller['addAction']);router[_0x2863('0x16')]('/:id',auth[_0x2863('0xa')](),controller['update']);router['delete']('/:id',auth[_0x2863('0xa')](),controller[_0x2863('0x17')]);module[_0x2863('0x18')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3641=['STRING','BOOLEAN','exports'];(function(_0x324c13,_0x10cdc2){var _0x5b878c=function(_0x2bbf07){while(--_0x2bbf07){_0x324c13['push'](_0x324c13['shift']());}};_0x5b878c(++_0x10cdc2);}(_0x3641,0x173));var _0x1364=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x3641[_0x3dd15e];return _0x231fd0;};'use strict';var Sequelize=require('sequelize');module[_0x1364('0x0')]={'name':{'type':Sequelize['STRING']},'channel':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0x1364('0x1')]},'status':{'type':Sequelize[_0x1364('0x2')],'defaultValue':![]}};
\ No newline at end of file
+var _0x6c34=['BOOLEAN','sequelize','STRING'];(function(_0x2a7b60,_0x1f02cd){var _0x24c849=function(_0x166060){while(--_0x166060){_0x2a7b60['push'](_0x2a7b60['shift']());}};_0x24c849(++_0x1f02cd);}(_0x6c34,0xd3));var _0x46c3=function(_0x42fb32,_0x3e472c){_0x42fb32=_0x42fb32-0x0;var _0x2005cb=_0x6c34[_0x42fb32];return _0x2005cb;};'use strict';var Sequelize=require(_0x46c3('0x0'));module['exports']={'name':{'type':Sequelize[_0x46c3('0x1')]},'channel':{'type':Sequelize[_0x46c3('0x1')]},'description':{'type':Sequelize[_0x46c3('0x1')]},'status':{'type':Sequelize[_0x46c3('0x2')],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbdc6=['squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/environment','../../config/license/util','sendStatus','status','end','offset','undefined','limit','count','set','json','apply','reject','save','update','then','destroy','Triggers','send','index','map','Trigger','type','model','name','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','sort','where','pick','filter','merge','VIRTUAL','includeAll','findAll','rows','catch','params','keys','rawAttributes','include','options','find','create','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','userProfileId','autoAssociation','UserProfileResource','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','addAllCondition','TriggerAllId','addAnyCondition','TriggerAnyId','getAllConditions','Condition','length','order','getAnyConditions','findOne','addAction','TriggerId','Action','getActions','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra'];(function(_0x30bc87,_0x413705){var _0x2cd2dc=function(_0x1de787){while(--_0x1de787){_0x30bc87['push'](_0x30bc87['shift']());}};_0x2cd2dc(++_0x413705);}(_0xbdc6,0x1cf));var _0x6bdc=function(_0x115294,_0x16c3f8){_0x115294=_0x115294-0x0;var _0x28ae4a=_0xbdc6[_0x115294];return _0x28ae4a;};'use strict';var emlformat=require(_0x6bdc('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x6bdc('0x1'));var jsonpatch=require(_0x6bdc('0x2'));var rp=require(_0x6bdc('0x3'));var moment=require(_0x6bdc('0x4'));var BPromise=require(_0x6bdc('0x5'));var Mustache=require('mustache');var util=require(_0x6bdc('0x6'));var path=require(_0x6bdc('0x7'));var sox=require(_0x6bdc('0x8'));var csv=require(_0x6bdc('0x9'));var ejs=require(_0x6bdc('0xa'));var fs=require('fs');var fs_extra=require(_0x6bdc('0xb'));var _=require('lodash');var squel=require(_0x6bdc('0xc'));var crypto=require(_0x6bdc('0xd'));var jsforce=require(_0x6bdc('0xe'));var deskjs=require(_0x6bdc('0xf'));var toCsv=require(_0x6bdc('0x9'));var querystring=require(_0x6bdc('0x10'));var Papa=require('papaparse');var Redis=require(_0x6bdc('0x11'));var authService=require(_0x6bdc('0x12'));var qs=require(_0x6bdc('0x13'));var as=require(_0x6bdc('0x14'));var hardwareService=require(_0x6bdc('0x15'));var logger=require(_0x6bdc('0x16'))('api');var utils=require('../../config/utils');var config=require(_0x6bdc('0x17'));var licenseUtil=require(_0x6bdc('0x18'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x5ef2ef,_0x2cb849){_0x2cb849=_0x2cb849||0xcc;return function(_0x2ba931){if(_0x2ba931){return _0x5ef2ef[_0x6bdc('0x19')](_0x2cb849);}return _0x5ef2ef[_0x6bdc('0x1a')](_0x2cb849)[_0x6bdc('0x1b')]();};}function respondWithResult(_0x5525ca,_0xd6b21){_0xd6b21=_0xd6b21||0xc8;return function(_0x14d496){if(_0x14d496){return _0x5525ca[_0x6bdc('0x1a')](_0xd6b21)['json'](_0x14d496);}};}function respondWithFilteredResult(_0x3e3247,_0x49c4ae){return function(_0xf5dcb2){if(_0xf5dcb2){var _0xf78ca7=typeof _0x49c4ae[_0x6bdc('0x1c')]===_0x6bdc('0x1d')&&typeof _0x49c4ae[_0x6bdc('0x1e')]===_0x6bdc('0x1d');var _0x58ddee=_0xf5dcb2[_0x6bdc('0x1f')];var _0x445bd5=_0xf78ca7?0x0:_0x49c4ae[_0x6bdc('0x1c')];var _0x391dea=_0xf78ca7?_0xf5dcb2[_0x6bdc('0x1f')]:_0x49c4ae[_0x6bdc('0x1c')]+_0x49c4ae[_0x6bdc('0x1e')];var _0x3e7c7f;if(_0x391dea>=_0x58ddee){_0x391dea=_0x58ddee;_0x3e7c7f=0xc8;}else{_0x3e7c7f=0xce;}_0x3e3247['status'](_0x3e7c7f);return _0x3e3247[_0x6bdc('0x20')]('Content-Range',_0x445bd5+'-'+_0x391dea+'/'+_0x58ddee)[_0x6bdc('0x21')](_0xf5dcb2);}return null;};}function patchUpdates(_0x721d18){return function(_0x3c3b76){try{jsonpatch[_0x6bdc('0x22')](_0x3c3b76,_0x721d18,!![]);}catch(_0x395227){return BPromise[_0x6bdc('0x23')](_0x395227);}return _0x3c3b76[_0x6bdc('0x24')]();};}function saveUpdates(_0x33407f,_0x29c6c7){return function(_0x5cf8fc){if(_0x5cf8fc){return _0x5cf8fc[_0x6bdc('0x25')](_0x33407f)[_0x6bdc('0x26')](function(_0x472a0e){return _0x472a0e;});}return null;};}function removeEntity(_0x1242cc,_0x38c626){return function(_0x400058){if(_0x400058){return _0x400058[_0x6bdc('0x27')]()['then'](function(){var _0x559620=_0x400058['get']({'plain':!![]});var _0x2c8de2=_0x6bdc('0x28');return db['UserProfileResource'][_0x6bdc('0x27')]({'where':{'type':_0x2c8de2,'resourceId':_0x559620['id']}})[_0x6bdc('0x26')](function(){return _0x400058;});})[_0x6bdc('0x26')](function(){_0x1242cc[_0x6bdc('0x1a')](0xcc)[_0x6bdc('0x1b')]();});}};}function handleEntityNotFound(_0x1f0abb,_0x8f42){return function(_0x2768f8){if(!_0x2768f8){_0x1f0abb['sendStatus'](0x194);}return _0x2768f8;};}function handleError(_0x31fabf,_0x477a21){_0x477a21=_0x477a21||0x1f4;return function(_0x1ba168){logger['error'](_0x1ba168['stack']);if(_0x1ba168['name']){delete _0x1ba168['name'];}_0x31fabf['status'](_0x477a21)[_0x6bdc('0x29')](_0x1ba168);};}exports[_0x6bdc('0x2a')]=function(_0xbcb78a,_0x143888){var _0x498b36={},_0x22bca5={},_0x3fae51={'count':0x0,'rows':[]};var _0xf08069=_[_0x6bdc('0x2b')](db[_0x6bdc('0x2c')]['rawAttributes'],function(_0xb542b2){return{'name':_0xb542b2['fieldName'],'type':_0xb542b2[_0x6bdc('0x2d')]['key']};});_0x22bca5[_0x6bdc('0x2e')]=_[_0x6bdc('0x2b')](_0xf08069,_0x6bdc('0x2f'));_0x22bca5[_0x6bdc('0x30')]=_['keys'](_0xbcb78a[_0x6bdc('0x30')]);_0x22bca5[_0x6bdc('0x31')]=_[_0x6bdc('0x32')](_0x22bca5['model'],_0x22bca5[_0x6bdc('0x30')]);_0x498b36[_0x6bdc('0x33')]=_[_0x6bdc('0x32')](_0x22bca5[_0x6bdc('0x2e')],qs[_0x6bdc('0x34')](_0xbcb78a[_0x6bdc('0x30')][_0x6bdc('0x34')]));_0x498b36[_0x6bdc('0x33')]=_0x498b36[_0x6bdc('0x33')]['length']?_0x498b36[_0x6bdc('0x33')]:_0x22bca5[_0x6bdc('0x2e')];if(!_0xbcb78a[_0x6bdc('0x30')][_0x6bdc('0x35')](_0x6bdc('0x36'))){_0x498b36[_0x6bdc('0x1e')]=qs[_0x6bdc('0x1e')](_0xbcb78a[_0x6bdc('0x30')][_0x6bdc('0x1e')]);_0x498b36['offset']=qs[_0x6bdc('0x1c')](_0xbcb78a[_0x6bdc('0x30')][_0x6bdc('0x1c')]);}_0x498b36['order']=qs[_0x6bdc('0x37')](_0xbcb78a[_0x6bdc('0x30')][_0x6bdc('0x37')]);_0x498b36[_0x6bdc('0x38')]=qs[_0x6bdc('0x31')](_[_0x6bdc('0x39')](_0xbcb78a[_0x6bdc('0x30')],_0x22bca5[_0x6bdc('0x31')]),_0xf08069);if(_0xbcb78a[_0x6bdc('0x30')][_0x6bdc('0x3a')]){_0x498b36[_0x6bdc('0x38')]=_[_0x6bdc('0x3b')](_0x498b36[_0x6bdc('0x38')],{'$or':_[_0x6bdc('0x2b')](_0xf08069,function(_0x160590){if(_0x160590[_0x6bdc('0x2d')]!==_0x6bdc('0x3c')){var _0x568e7f={};_0x568e7f[_0x160590[_0x6bdc('0x2f')]]={'$like':'%'+_0xbcb78a[_0x6bdc('0x30')]['filter']+'%'};return _0x568e7f;}})});}_0x498b36=_[_0x6bdc('0x3b')]({},_0x498b36,_0xbcb78a['options']);var _0xeb16d0={'where':_0x498b36[_0x6bdc('0x38')]};return db[_0x6bdc('0x2c')][_0x6bdc('0x1f')](_0xeb16d0)[_0x6bdc('0x26')](function(_0x51b540){_0x3fae51[_0x6bdc('0x1f')]=_0x51b540;if(_0xbcb78a['query'][_0x6bdc('0x3d')]){_0x498b36['include']=[{'all':!![]}];}return db[_0x6bdc('0x2c')][_0x6bdc('0x3e')](_0x498b36);})[_0x6bdc('0x26')](function(_0x1aef64){_0x3fae51[_0x6bdc('0x3f')]=_0x1aef64;return _0x3fae51;})[_0x6bdc('0x26')](respondWithFilteredResult(_0x143888,_0x498b36))[_0x6bdc('0x40')](handleError(_0x143888,null));};exports['show']=function(_0x31d722,_0x2d8755){var _0x5808bd={'raw':![],'where':{'id':_0x31d722[_0x6bdc('0x41')]['id']}},_0x148a80={};_0x148a80[_0x6bdc('0x2e')]=_[_0x6bdc('0x42')](db[_0x6bdc('0x2c')][_0x6bdc('0x43')]);_0x148a80[_0x6bdc('0x30')]=_['keys'](_0x31d722[_0x6bdc('0x30')]);_0x148a80[_0x6bdc('0x31')]=_[_0x6bdc('0x32')](_0x148a80[_0x6bdc('0x2e')],_0x148a80[_0x6bdc('0x30')]);_0x5808bd[_0x6bdc('0x33')]=_[_0x6bdc('0x32')](_0x148a80[_0x6bdc('0x2e')],qs['fields'](_0x31d722[_0x6bdc('0x30')][_0x6bdc('0x34')]));_0x5808bd['attributes']=_0x5808bd[_0x6bdc('0x33')]['length']?_0x5808bd[_0x6bdc('0x33')]:_0x148a80[_0x6bdc('0x2e')];if(_0x31d722['query'][_0x6bdc('0x3d')]){_0x5808bd[_0x6bdc('0x44')]=[{'all':!![]}];}_0x5808bd=_[_0x6bdc('0x3b')]({},_0x5808bd,_0x31d722[_0x6bdc('0x45')]);return db[_0x6bdc('0x2c')][_0x6bdc('0x46')](_0x5808bd)[_0x6bdc('0x26')](handleEntityNotFound(_0x2d8755,null))[_0x6bdc('0x26')](respondWithResult(_0x2d8755,null))[_0x6bdc('0x40')](handleError(_0x2d8755,null));};exports['create']=function(_0x48b184,_0x47c6e6){return db['Trigger'][_0x6bdc('0x47')](_0x48b184['body'],{})['then'](function(_0x215cad){var _0x300461=_0x48b184[_0x6bdc('0x48')][_0x6bdc('0x49')]({'plain':!![]});if(!_0x300461)throw new Error(_0x6bdc('0x4a'));if(_0x300461['role']===_0x6bdc('0x48')){var _0x2641c1=_0x215cad[_0x6bdc('0x49')]({'plain':!![]});var _0x2fa3c5=_0x6bdc('0x28');return db['UserProfileSection'][_0x6bdc('0x46')]({'where':{'name':_0x2fa3c5,'userProfileId':_0x300461[_0x6bdc('0x4b')]},'raw':!![]})[_0x6bdc('0x26')](function(_0x3748f9){if(_0x3748f9&&_0x3748f9[_0x6bdc('0x4c')]===0x0){return db[_0x6bdc('0x4d')][_0x6bdc('0x47')]({'name':_0x2641c1[_0x6bdc('0x2f')],'resourceId':_0x2641c1['id'],'type':_0x3748f9[_0x6bdc('0x2f')],'sectionId':_0x3748f9['id']},{})[_0x6bdc('0x26')](function(){return _0x215cad;});}else{return _0x215cad;}})[_0x6bdc('0x40')](function(_0x5700b3){logger[_0x6bdc('0x4e')](_0x6bdc('0x4f'),_0x5700b3);throw _0x5700b3;});}return _0x215cad;})[_0x6bdc('0x26')](respondWithResult(_0x47c6e6,0xc9))[_0x6bdc('0x40')](handleError(_0x47c6e6,null));};exports[_0x6bdc('0x25')]=function(_0x11219d,_0x5c0b89){if(_0x11219d['body']['id']){delete _0x11219d['body']['id'];}return db['Trigger'][_0x6bdc('0x46')]({'where':{'id':_0x11219d['params']['id']}})[_0x6bdc('0x26')](handleEntityNotFound(_0x5c0b89,null))[_0x6bdc('0x26')](saveUpdates(_0x11219d[_0x6bdc('0x50')],null))[_0x6bdc('0x26')](respondWithResult(_0x5c0b89,null))[_0x6bdc('0x40')](handleError(_0x5c0b89,null));};exports['destroy']=function(_0x5e1976,_0x4e73fe){return db[_0x6bdc('0x2c')]['find']({'where':{'id':_0x5e1976['params']['id']}})[_0x6bdc('0x26')](handleEntityNotFound(_0x4e73fe,null))[_0x6bdc('0x26')](removeEntity(_0x4e73fe,null))[_0x6bdc('0x40')](handleError(_0x4e73fe,null));};exports[_0x6bdc('0x51')]=function(_0x48990c,_0x5d6e40,_0x3ad3f1){if(_0x48990c['body']['id']){delete _0x48990c[_0x6bdc('0x50')]['id'];}return db[_0x6bdc('0x2c')][_0x6bdc('0x46')]({'where':{'id':_0x48990c['params']['id']}})[_0x6bdc('0x26')](handleEntityNotFound(_0x5d6e40,null))[_0x6bdc('0x26')](function(_0x114067){if(_0x114067){_0x48990c[_0x6bdc('0x50')][_0x6bdc('0x52')]=_0x114067['id'];return db['Condition']['create'](_0x48990c[_0x6bdc('0x50')]);}})[_0x6bdc('0x26')](respondWithResult(_0x5d6e40,null))['catch'](handleError(_0x5d6e40,null));};exports[_0x6bdc('0x53')]=function(_0x6ae37e,_0x86852a,_0x405367){if(_0x6ae37e['body']['id']){delete _0x6ae37e[_0x6bdc('0x50')]['id'];}return db['Trigger'][_0x6bdc('0x46')]({'where':{'id':_0x6ae37e['params']['id']}})[_0x6bdc('0x26')](handleEntityNotFound(_0x86852a,null))[_0x6bdc('0x26')](function(_0x4f061d){if(_0x4f061d){_0x6ae37e[_0x6bdc('0x50')][_0x6bdc('0x54')]=_0x4f061d['id'];return db['Condition']['create'](_0x6ae37e[_0x6bdc('0x50')]);}})['then'](respondWithResult(_0x86852a,null))[_0x6bdc('0x40')](handleError(_0x86852a,null));};exports[_0x6bdc('0x55')]=function(_0x46d26e,_0x4e946d,_0x59f716){var _0xccb389={};var _0x46811a={};var _0x279ba0;var _0x34efe5;return db[_0x6bdc('0x2c')]['findOne']({'where':{'id':_0x46d26e[_0x6bdc('0x41')]['id']}})[_0x6bdc('0x26')](handleEntityNotFound(_0x4e946d,null))['then'](function(_0x4c5792){if(_0x4c5792){_0x279ba0=_0x4c5792;_0x46811a[_0x6bdc('0x2e')]=_[_0x6bdc('0x42')](db[_0x6bdc('0x56')][_0x6bdc('0x43')]);_0x46811a[_0x6bdc('0x30')]=_[_0x6bdc('0x42')](_0x46d26e[_0x6bdc('0x30')]);_0x46811a['filters']=_[_0x6bdc('0x32')](_0x46811a[_0x6bdc('0x2e')],_0x46811a[_0x6bdc('0x30')]);_0xccb389[_0x6bdc('0x33')]=_[_0x6bdc('0x32')](_0x46811a['model'],qs[_0x6bdc('0x34')](_0x46d26e[_0x6bdc('0x30')][_0x6bdc('0x34')]));_0xccb389[_0x6bdc('0x33')]=_0xccb389['attributes'][_0x6bdc('0x57')]?_0xccb389[_0x6bdc('0x33')]:_0x46811a['model'];_0xccb389[_0x6bdc('0x58')]=qs[_0x6bdc('0x37')](_0x46d26e[_0x6bdc('0x30')][_0x6bdc('0x37')]);_0xccb389['where']=qs['filters'](_[_0x6bdc('0x39')](_0x46d26e[_0x6bdc('0x30')],_0x46811a['filters']));if(_0x46d26e[_0x6bdc('0x30')][_0x6bdc('0x3a')]){_0xccb389[_0x6bdc('0x38')]=_['merge'](_0xccb389[_0x6bdc('0x38')],{'$or':_[_0x6bdc('0x2b')](_0xccb389[_0x6bdc('0x33')],function(_0x229767){var _0x4eb43c={};_0x4eb43c[_0x229767]={'$like':'%'+_0x46d26e[_0x6bdc('0x30')][_0x6bdc('0x3a')]+'%'};return _0x4eb43c;})});}_0xccb389=_[_0x6bdc('0x3b')]({},_0xccb389,_0x46d26e[_0x6bdc('0x45')]);return _0x279ba0[_0x6bdc('0x55')](_0xccb389);}})[_0x6bdc('0x26')](function(_0x5b8171){if(_0x5b8171){_0x34efe5=_0x5b8171[_0x6bdc('0x57')];if(!_0x46d26e[_0x6bdc('0x30')][_0x6bdc('0x35')]('nolimit')){_0xccb389[_0x6bdc('0x1e')]=qs[_0x6bdc('0x1e')](_0x46d26e[_0x6bdc('0x30')][_0x6bdc('0x1e')]);_0xccb389[_0x6bdc('0x1c')]=qs[_0x6bdc('0x1c')](_0x46d26e[_0x6bdc('0x30')][_0x6bdc('0x1c')]);}return _0x279ba0['getAllConditions'](_0xccb389);}})[_0x6bdc('0x26')](function(_0x569fe9){if(_0x569fe9){return _0x569fe9?{'count':_0x34efe5,'rows':_0x569fe9}:null;}})['then'](respondWithResult(_0x4e946d,null))[_0x6bdc('0x40')](handleError(_0x4e946d,null));};exports[_0x6bdc('0x59')]=function(_0x3d1cc5,_0x29187e,_0xed6bda){var _0x1e4667={};var _0x18d94a={};var _0x5a5a1e;var _0x458f08;return db['Trigger'][_0x6bdc('0x5a')]({'where':{'id':_0x3d1cc5['params']['id']}})[_0x6bdc('0x26')](handleEntityNotFound(_0x29187e,null))[_0x6bdc('0x26')](function(_0x39218c){if(_0x39218c){_0x5a5a1e=_0x39218c;_0x18d94a['model']=_[_0x6bdc('0x42')](db[_0x6bdc('0x56')][_0x6bdc('0x43')]);_0x18d94a[_0x6bdc('0x30')]=_['keys'](_0x3d1cc5[_0x6bdc('0x30')]);_0x18d94a[_0x6bdc('0x31')]=_['intersection'](_0x18d94a[_0x6bdc('0x2e')],_0x18d94a['query']);_0x1e4667[_0x6bdc('0x33')]=_[_0x6bdc('0x32')](_0x18d94a['model'],qs['fields'](_0x3d1cc5[_0x6bdc('0x30')][_0x6bdc('0x34')]));_0x1e4667[_0x6bdc('0x33')]=_0x1e4667[_0x6bdc('0x33')][_0x6bdc('0x57')]?_0x1e4667[_0x6bdc('0x33')]:_0x18d94a['model'];_0x1e4667['order']=qs[_0x6bdc('0x37')](_0x3d1cc5[_0x6bdc('0x30')]['sort']);_0x1e4667[_0x6bdc('0x38')]=qs['filters'](_[_0x6bdc('0x39')](_0x3d1cc5[_0x6bdc('0x30')],_0x18d94a['filters']));if(_0x3d1cc5[_0x6bdc('0x30')][_0x6bdc('0x3a')]){_0x1e4667[_0x6bdc('0x38')]=_['merge'](_0x1e4667[_0x6bdc('0x38')],{'$or':_[_0x6bdc('0x2b')](_0x1e4667[_0x6bdc('0x33')],function(_0x3d55d4){var _0x20cfd8={};_0x20cfd8[_0x3d55d4]={'$like':'%'+_0x3d1cc5[_0x6bdc('0x30')][_0x6bdc('0x3a')]+'%'};return _0x20cfd8;})});}_0x1e4667=_[_0x6bdc('0x3b')]({},_0x1e4667,_0x3d1cc5[_0x6bdc('0x45')]);return _0x5a5a1e[_0x6bdc('0x59')](_0x1e4667);}})['then'](function(_0xc9d1b4){if(_0xc9d1b4){_0x458f08=_0xc9d1b4[_0x6bdc('0x57')];if(!_0x3d1cc5[_0x6bdc('0x30')]['hasOwnProperty'](_0x6bdc('0x36'))){_0x1e4667[_0x6bdc('0x1e')]=qs['limit'](_0x3d1cc5['query'][_0x6bdc('0x1e')]);_0x1e4667[_0x6bdc('0x1c')]=qs[_0x6bdc('0x1c')](_0x3d1cc5[_0x6bdc('0x30')][_0x6bdc('0x1c')]);}return _0x5a5a1e['getAnyConditions'](_0x1e4667);}})[_0x6bdc('0x26')](function(_0x560b10){if(_0x560b10){return _0x560b10?{'count':_0x458f08,'rows':_0x560b10}:null;}})['then'](respondWithResult(_0x29187e,null))[_0x6bdc('0x40')](handleError(_0x29187e,null));};exports[_0x6bdc('0x5b')]=function(_0x2fc993,_0x50a93e,_0x1e3033){if(_0x2fc993[_0x6bdc('0x50')]['id']){delete _0x2fc993['body']['id'];}return db[_0x6bdc('0x2c')][_0x6bdc('0x46')]({'where':{'id':_0x2fc993['params']['id']}})[_0x6bdc('0x26')](handleEntityNotFound(_0x50a93e,null))['then'](function(_0x121d36){if(_0x121d36){_0x2fc993[_0x6bdc('0x50')][_0x6bdc('0x5c')]=_0x121d36['id'];return db[_0x6bdc('0x5d')][_0x6bdc('0x47')](_0x2fc993['body']);}})[_0x6bdc('0x26')](respondWithResult(_0x50a93e,null))[_0x6bdc('0x40')](handleError(_0x50a93e,null));};exports[_0x6bdc('0x5e')]=function(_0x31c4f8,_0x3fd761,_0x4d9bb6){var _0x444f18={};var _0x1862df={};var _0x3511b6;var _0x2199aa;return db[_0x6bdc('0x2c')]['findOne']({'where':{'id':_0x31c4f8[_0x6bdc('0x41')]['id']}})[_0x6bdc('0x26')](handleEntityNotFound(_0x3fd761,null))[_0x6bdc('0x26')](function(_0x3f687c){if(_0x3f687c){_0x3511b6=_0x3f687c;_0x1862df[_0x6bdc('0x2e')]=_[_0x6bdc('0x42')](db[_0x6bdc('0x5d')][_0x6bdc('0x43')]);_0x1862df[_0x6bdc('0x30')]=_[_0x6bdc('0x42')](_0x31c4f8['query']);_0x1862df['filters']=_['intersection'](_0x1862df[_0x6bdc('0x2e')],_0x1862df['query']);_0x444f18[_0x6bdc('0x33')]=_['intersection'](_0x1862df[_0x6bdc('0x2e')],qs['fields'](_0x31c4f8['query']['fields']));_0x444f18[_0x6bdc('0x33')]=_0x444f18[_0x6bdc('0x33')][_0x6bdc('0x57')]?_0x444f18[_0x6bdc('0x33')]:_0x1862df[_0x6bdc('0x2e')];_0x444f18[_0x6bdc('0x58')]=qs[_0x6bdc('0x37')](_0x31c4f8[_0x6bdc('0x30')][_0x6bdc('0x37')]);_0x444f18[_0x6bdc('0x38')]=qs[_0x6bdc('0x31')](_['pick'](_0x31c4f8[_0x6bdc('0x30')],_0x1862df[_0x6bdc('0x31')]));if(_0x31c4f8['query'][_0x6bdc('0x3a')]){_0x444f18[_0x6bdc('0x38')]=_[_0x6bdc('0x3b')](_0x444f18[_0x6bdc('0x38')],{'$or':_['map'](_0x444f18['attributes'],function(_0x26e7da){var _0x340e12={};_0x340e12[_0x26e7da]={'$like':'%'+_0x31c4f8[_0x6bdc('0x30')][_0x6bdc('0x3a')]+'%'};return _0x340e12;})});}_0x444f18=_[_0x6bdc('0x3b')]({},_0x444f18,_0x31c4f8[_0x6bdc('0x45')]);return _0x3511b6['getActions'](_0x444f18);}})[_0x6bdc('0x26')](function(_0x16fda8){if(_0x16fda8){_0x2199aa=_0x16fda8[_0x6bdc('0x57')];if(!_0x31c4f8[_0x6bdc('0x30')][_0x6bdc('0x35')]('nolimit')){_0x444f18[_0x6bdc('0x1e')]=qs[_0x6bdc('0x1e')](_0x31c4f8[_0x6bdc('0x30')]['limit']);_0x444f18[_0x6bdc('0x1c')]=qs[_0x6bdc('0x1c')](_0x31c4f8['query']['offset']);}return _0x3511b6[_0x6bdc('0x5e')](_0x444f18);}})['then'](function(_0x480a1d){if(_0x480a1d){return _0x480a1d?{'count':_0x2199aa,'rows':_0x480a1d}:null;}})[_0x6bdc('0x26')](respondWithResult(_0x3fd761,null))[_0x6bdc('0x40')](handleError(_0x3fd761,null));};
\ No newline at end of file
+var _0x42d9=['json','offset','undefined','limit','count','Content-Range','save','update','then','destroy','get','Triggers','UserProfileResource','error','stack','name','send','index','rawAttributes','type','key','model','map','keys','query','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filters','filter','includeAll','include','Trigger','findAll','rows','catch','show','params','merge','options','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','find','addAllCondition','Condition','TriggerAnyId','findOne','getAllConditions','getAnyConditions','addAction','TriggerId','Action','rimraf','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','querystring','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end'];(function(_0x3cd6cf,_0x1d0ff7){var _0x1a214f=function(_0x3138a8){while(--_0x3138a8){_0x3cd6cf['push'](_0x3cd6cf['shift']());}};_0x1a214f(++_0x1d0ff7);}(_0x42d9,0x9e));var _0x942d=function(_0x1f803d,_0x1c966e){_0x1f803d=_0x1f803d-0x0;var _0x549186=_0x42d9[_0x1f803d];return _0x549186;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x942d('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x942d('0x1'));var rp=require(_0x942d('0x2'));var moment=require('moment');var BPromise=require(_0x942d('0x3'));var Mustache=require(_0x942d('0x4'));var util=require(_0x942d('0x5'));var path=require(_0x942d('0x6'));var sox=require(_0x942d('0x7'));var csv=require(_0x942d('0x8'));var ejs=require(_0x942d('0x9'));var fs=require('fs');var fs_extra=require(_0x942d('0xa'));var _=require(_0x942d('0xb'));var squel=require('squel');var crypto=require(_0x942d('0xc'));var jsforce=require(_0x942d('0xd'));var deskjs=require(_0x942d('0xe'));var toCsv=require(_0x942d('0x8'));var querystring=require(_0x942d('0xf'));var Papa=require('papaparse');var Redis=require(_0x942d('0x10'));var authService=require('../../components/auth/service');var qs=require(_0x942d('0x11'));var as=require(_0x942d('0x12'));var hardwareService=require(_0x942d('0x13'));var logger=require(_0x942d('0x14'))(_0x942d('0x15'));var utils=require(_0x942d('0x16'));var config=require(_0x942d('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0x942d('0x18'))['db'];function respondWithStatusCode(_0x4696f4,_0x1b25ff){_0x1b25ff=_0x1b25ff||0xcc;return function(_0x5e6f7d){if(_0x5e6f7d){return _0x4696f4[_0x942d('0x19')](_0x1b25ff);}return _0x4696f4[_0x942d('0x1a')](_0x1b25ff)[_0x942d('0x1b')]();};}function respondWithResult(_0x3570b7,_0x540a38){_0x540a38=_0x540a38||0xc8;return function(_0x231c35){if(_0x231c35){return _0x3570b7[_0x942d('0x1a')](_0x540a38)[_0x942d('0x1c')](_0x231c35);}};}function respondWithFilteredResult(_0x23c2f6,_0x382433){return function(_0x60ff6c){if(_0x60ff6c){var _0x48178f=typeof _0x382433[_0x942d('0x1d')]===_0x942d('0x1e')&&typeof _0x382433[_0x942d('0x1f')]==='undefined';var _0x474109=_0x60ff6c[_0x942d('0x20')];var _0x1b67df=_0x48178f?0x0:_0x382433[_0x942d('0x1d')];var _0x3240ea=_0x48178f?_0x60ff6c[_0x942d('0x20')]:_0x382433[_0x942d('0x1d')]+_0x382433[_0x942d('0x1f')];var _0x5f14aa;if(_0x3240ea>=_0x474109){_0x3240ea=_0x474109;_0x5f14aa=0xc8;}else{_0x5f14aa=0xce;}_0x23c2f6[_0x942d('0x1a')](_0x5f14aa);return _0x23c2f6['set'](_0x942d('0x21'),_0x1b67df+'-'+_0x3240ea+'/'+_0x474109)[_0x942d('0x1c')](_0x60ff6c);}return null;};}function patchUpdates(_0x4937ce){return function(_0x1a2b54){try{jsonpatch['apply'](_0x1a2b54,_0x4937ce,!![]);}catch(_0xca96f){return BPromise['reject'](_0xca96f);}return _0x1a2b54[_0x942d('0x22')]();};}function saveUpdates(_0xf002d5,_0x78b163){return function(_0xd56439){if(_0xd56439){return _0xd56439[_0x942d('0x23')](_0xf002d5)[_0x942d('0x24')](function(_0x4cbc62){return _0x4cbc62;});}return null;};}function removeEntity(_0x5d25c7,_0xc13002){return function(_0x2a8d72){if(_0x2a8d72){return _0x2a8d72[_0x942d('0x25')]()['then'](function(){var _0x125a4e=_0x2a8d72[_0x942d('0x26')]({'plain':!![]});var _0x33ec19=_0x942d('0x27');return db[_0x942d('0x28')][_0x942d('0x25')]({'where':{'type':_0x33ec19,'resourceId':_0x125a4e['id']}})['then'](function(){return _0x2a8d72;});})['then'](function(){_0x5d25c7[_0x942d('0x1a')](0xcc)[_0x942d('0x1b')]();});}};}function handleEntityNotFound(_0x1684c0,_0x2d239f){return function(_0x32dc04){if(!_0x32dc04){_0x1684c0[_0x942d('0x19')](0x194);}return _0x32dc04;};}function handleError(_0x5e5a9c,_0x456f72){_0x456f72=_0x456f72||0x1f4;return function(_0x215461){logger[_0x942d('0x29')](_0x215461[_0x942d('0x2a')]);if(_0x215461[_0x942d('0x2b')]){delete _0x215461[_0x942d('0x2b')];}_0x5e5a9c[_0x942d('0x1a')](_0x456f72)[_0x942d('0x2c')](_0x215461);};}exports[_0x942d('0x2d')]=function(_0x2ddc76,_0x3e8a1c){var _0xe0ec98={},_0x57b263={},_0x33d7d6={'count':0x0,'rows':[]};var _0x35614e=_['map'](db['Trigger'][_0x942d('0x2e')],function(_0x2e5a58){return{'name':_0x2e5a58['fieldName'],'type':_0x2e5a58[_0x942d('0x2f')][_0x942d('0x30')]};});_0x57b263[_0x942d('0x31')]=_[_0x942d('0x32')](_0x35614e,_0x942d('0x2b'));_0x57b263['query']=_[_0x942d('0x33')](_0x2ddc76[_0x942d('0x34')]);_0x57b263['filters']=_[_0x942d('0x35')](_0x57b263[_0x942d('0x31')],_0x57b263[_0x942d('0x34')]);_0xe0ec98[_0x942d('0x36')]=_[_0x942d('0x35')](_0x57b263[_0x942d('0x31')],qs[_0x942d('0x37')](_0x2ddc76['query'][_0x942d('0x37')]));_0xe0ec98[_0x942d('0x36')]=_0xe0ec98[_0x942d('0x36')][_0x942d('0x38')]?_0xe0ec98['attributes']:_0x57b263['model'];if(!_0x2ddc76['query'][_0x942d('0x39')](_0x942d('0x3a'))){_0xe0ec98[_0x942d('0x1f')]=qs['limit'](_0x2ddc76[_0x942d('0x34')][_0x942d('0x1f')]);_0xe0ec98['offset']=qs['offset'](_0x2ddc76['query'][_0x942d('0x1d')]);}_0xe0ec98[_0x942d('0x3b')]=qs['sort'](_0x2ddc76['query'][_0x942d('0x3c')]);_0xe0ec98[_0x942d('0x3d')]=qs['filters'](_[_0x942d('0x3e')](_0x2ddc76[_0x942d('0x34')],_0x57b263[_0x942d('0x3f')]),_0x35614e);if(_0x2ddc76[_0x942d('0x34')][_0x942d('0x40')]){_0xe0ec98[_0x942d('0x3d')]=_['merge'](_0xe0ec98[_0x942d('0x3d')],{'$or':_[_0x942d('0x32')](_0x35614e,function(_0xe2bf11){if(_0xe2bf11['type']!=='VIRTUAL'){var _0x11e2e0={};_0x11e2e0[_0xe2bf11['name']]={'$like':'%'+_0x2ddc76['query'][_0x942d('0x40')]+'%'};return _0x11e2e0;}})});}_0xe0ec98=_['merge']({},_0xe0ec98,_0x2ddc76['options']);var _0x32562e={'where':_0xe0ec98[_0x942d('0x3d')]};return db['Trigger']['count'](_0x32562e)[_0x942d('0x24')](function(_0x4c2bf0){_0x33d7d6['count']=_0x4c2bf0;if(_0x2ddc76['query'][_0x942d('0x41')]){_0xe0ec98[_0x942d('0x42')]=[{'all':!![]}];}return db[_0x942d('0x43')][_0x942d('0x44')](_0xe0ec98);})[_0x942d('0x24')](function(_0x19a482){_0x33d7d6[_0x942d('0x45')]=_0x19a482;return _0x33d7d6;})[_0x942d('0x24')](respondWithFilteredResult(_0x3e8a1c,_0xe0ec98))[_0x942d('0x46')](handleError(_0x3e8a1c,null));};exports[_0x942d('0x47')]=function(_0x525654,_0x3ee3d9){var _0x3fba7c={'raw':![],'where':{'id':_0x525654[_0x942d('0x48')]['id']}},_0x231f93={};_0x231f93[_0x942d('0x31')]=_['keys'](db[_0x942d('0x43')]['rawAttributes']);_0x231f93[_0x942d('0x34')]=_[_0x942d('0x33')](_0x525654['query']);_0x231f93[_0x942d('0x3f')]=_[_0x942d('0x35')](_0x231f93[_0x942d('0x31')],_0x231f93[_0x942d('0x34')]);_0x3fba7c[_0x942d('0x36')]=_['intersection'](_0x231f93['model'],qs[_0x942d('0x37')](_0x525654[_0x942d('0x34')]['fields']));_0x3fba7c[_0x942d('0x36')]=_0x3fba7c[_0x942d('0x36')][_0x942d('0x38')]?_0x3fba7c[_0x942d('0x36')]:_0x231f93['model'];if(_0x525654[_0x942d('0x34')][_0x942d('0x41')]){_0x3fba7c[_0x942d('0x42')]=[{'all':!![]}];}_0x3fba7c=_[_0x942d('0x49')]({},_0x3fba7c,_0x525654[_0x942d('0x4a')]);return db['Trigger']['find'](_0x3fba7c)[_0x942d('0x24')](handleEntityNotFound(_0x3ee3d9,null))[_0x942d('0x24')](respondWithResult(_0x3ee3d9,null))['catch'](handleError(_0x3ee3d9,null));};exports[_0x942d('0x4b')]=function(_0x38845c,_0x5d537d){return db[_0x942d('0x43')][_0x942d('0x4b')](_0x38845c[_0x942d('0x4c')],{})['then'](function(_0x46f550){var _0x10098b=_0x38845c[_0x942d('0x4d')][_0x942d('0x26')]({'plain':!![]});if(!_0x10098b)throw new Error(_0x942d('0x4e'));if(_0x10098b[_0x942d('0x4f')]==='user'){var _0x49d203=_0x46f550[_0x942d('0x26')]({'plain':!![]});var _0x1d3d77=_0x942d('0x27');return db[_0x942d('0x50')]['find']({'where':{'name':_0x1d3d77,'userProfileId':_0x10098b[_0x942d('0x51')]},'raw':!![]})[_0x942d('0x24')](function(_0x1eb7cc){if(_0x1eb7cc&&_0x1eb7cc['autoAssociation']===0x0){return db[_0x942d('0x28')][_0x942d('0x4b')]({'name':_0x49d203[_0x942d('0x2b')],'resourceId':_0x49d203['id'],'type':_0x1eb7cc[_0x942d('0x2b')],'sectionId':_0x1eb7cc['id']},{})[_0x942d('0x24')](function(){return _0x46f550;});}else{return _0x46f550;}})['catch'](function(_0x195e82){logger[_0x942d('0x29')](_0x942d('0x52'),_0x195e82);throw _0x195e82;});}return _0x46f550;})[_0x942d('0x24')](respondWithResult(_0x5d537d,0xc9))['catch'](handleError(_0x5d537d,null));};exports[_0x942d('0x23')]=function(_0x2ae1a7,_0x36b6c7){if(_0x2ae1a7[_0x942d('0x4c')]['id']){delete _0x2ae1a7[_0x942d('0x4c')]['id'];}return db['Trigger'][_0x942d('0x53')]({'where':{'id':_0x2ae1a7['params']['id']}})[_0x942d('0x24')](handleEntityNotFound(_0x36b6c7,null))['then'](saveUpdates(_0x2ae1a7['body'],null))[_0x942d('0x24')](respondWithResult(_0x36b6c7,null))['catch'](handleError(_0x36b6c7,null));};exports[_0x942d('0x25')]=function(_0x2a4f11,_0x51f02f){return db[_0x942d('0x43')]['find']({'where':{'id':_0x2a4f11['params']['id']}})[_0x942d('0x24')](handleEntityNotFound(_0x51f02f,null))[_0x942d('0x24')](removeEntity(_0x51f02f,null))[_0x942d('0x46')](handleError(_0x51f02f,null));};exports[_0x942d('0x54')]=function(_0x23371c,_0x519b58,_0xec702){if(_0x23371c['body']['id']){delete _0x23371c[_0x942d('0x4c')]['id'];}return db[_0x942d('0x43')][_0x942d('0x53')]({'where':{'id':_0x23371c['params']['id']}})[_0x942d('0x24')](handleEntityNotFound(_0x519b58,null))['then'](function(_0x2cdd68){if(_0x2cdd68){_0x23371c[_0x942d('0x4c')]['TriggerAllId']=_0x2cdd68['id'];return db[_0x942d('0x55')]['create'](_0x23371c[_0x942d('0x4c')]);}})[_0x942d('0x24')](respondWithResult(_0x519b58,null))['catch'](handleError(_0x519b58,null));};exports['addAnyCondition']=function(_0x40ed73,_0x55f8a2,_0x4315e4){if(_0x40ed73['body']['id']){delete _0x40ed73['body']['id'];}return db[_0x942d('0x43')]['find']({'where':{'id':_0x40ed73[_0x942d('0x48')]['id']}})[_0x942d('0x24')](handleEntityNotFound(_0x55f8a2,null))[_0x942d('0x24')](function(_0x47e2d9){if(_0x47e2d9){_0x40ed73[_0x942d('0x4c')][_0x942d('0x56')]=_0x47e2d9['id'];return db['Condition'][_0x942d('0x4b')](_0x40ed73['body']);}})[_0x942d('0x24')](respondWithResult(_0x55f8a2,null))[_0x942d('0x46')](handleError(_0x55f8a2,null));};exports['getAllConditions']=function(_0x5a1220,_0x14ac57,_0x34a457){var _0x36855d={};var _0x30fa60={};var _0x2c5999;var _0x349529;return db['Trigger'][_0x942d('0x57')]({'where':{'id':_0x5a1220[_0x942d('0x48')]['id']}})[_0x942d('0x24')](handleEntityNotFound(_0x14ac57,null))['then'](function(_0x4e1777){if(_0x4e1777){_0x2c5999=_0x4e1777;_0x30fa60[_0x942d('0x31')]=_[_0x942d('0x33')](db[_0x942d('0x55')][_0x942d('0x2e')]);_0x30fa60[_0x942d('0x34')]=_[_0x942d('0x33')](_0x5a1220['query']);_0x30fa60[_0x942d('0x3f')]=_[_0x942d('0x35')](_0x30fa60['model'],_0x30fa60[_0x942d('0x34')]);_0x36855d[_0x942d('0x36')]=_['intersection'](_0x30fa60['model'],qs[_0x942d('0x37')](_0x5a1220[_0x942d('0x34')]['fields']));_0x36855d[_0x942d('0x36')]=_0x36855d[_0x942d('0x36')]['length']?_0x36855d[_0x942d('0x36')]:_0x30fa60[_0x942d('0x31')];_0x36855d[_0x942d('0x3b')]=qs['sort'](_0x5a1220['query'][_0x942d('0x3c')]);_0x36855d[_0x942d('0x3d')]=qs[_0x942d('0x3f')](_[_0x942d('0x3e')](_0x5a1220[_0x942d('0x34')],_0x30fa60[_0x942d('0x3f')]));if(_0x5a1220[_0x942d('0x34')][_0x942d('0x40')]){_0x36855d[_0x942d('0x3d')]=_[_0x942d('0x49')](_0x36855d[_0x942d('0x3d')],{'$or':_[_0x942d('0x32')](_0x36855d['attributes'],function(_0x53b45b){var _0x50d8cf={};_0x50d8cf[_0x53b45b]={'$like':'%'+_0x5a1220[_0x942d('0x34')][_0x942d('0x40')]+'%'};return _0x50d8cf;})});}_0x36855d=_[_0x942d('0x49')]({},_0x36855d,_0x5a1220[_0x942d('0x4a')]);return _0x2c5999[_0x942d('0x58')](_0x36855d);}})['then'](function(_0x3bba1e){if(_0x3bba1e){_0x349529=_0x3bba1e['length'];if(!_0x5a1220['query']['hasOwnProperty'](_0x942d('0x3a'))){_0x36855d['limit']=qs[_0x942d('0x1f')](_0x5a1220[_0x942d('0x34')]['limit']);_0x36855d[_0x942d('0x1d')]=qs[_0x942d('0x1d')](_0x5a1220[_0x942d('0x34')][_0x942d('0x1d')]);}return _0x2c5999['getAllConditions'](_0x36855d);}})[_0x942d('0x24')](function(_0xdf8b2f){if(_0xdf8b2f){return _0xdf8b2f?{'count':_0x349529,'rows':_0xdf8b2f}:null;}})['then'](respondWithResult(_0x14ac57,null))[_0x942d('0x46')](handleError(_0x14ac57,null));};exports['getAnyConditions']=function(_0x30f237,_0x1d1511,_0x34eb34){var _0x5a55fd={};var _0x122cbd={};var _0x3f2c2f;var _0xe5e569;return db['Trigger'][_0x942d('0x57')]({'where':{'id':_0x30f237[_0x942d('0x48')]['id']}})['then'](handleEntityNotFound(_0x1d1511,null))[_0x942d('0x24')](function(_0x150c0b){if(_0x150c0b){_0x3f2c2f=_0x150c0b;_0x122cbd[_0x942d('0x31')]=_[_0x942d('0x33')](db[_0x942d('0x55')][_0x942d('0x2e')]);_0x122cbd[_0x942d('0x34')]=_[_0x942d('0x33')](_0x30f237[_0x942d('0x34')]);_0x122cbd[_0x942d('0x3f')]=_[_0x942d('0x35')](_0x122cbd[_0x942d('0x31')],_0x122cbd[_0x942d('0x34')]);_0x5a55fd['attributes']=_[_0x942d('0x35')](_0x122cbd[_0x942d('0x31')],qs[_0x942d('0x37')](_0x30f237['query'][_0x942d('0x37')]));_0x5a55fd[_0x942d('0x36')]=_0x5a55fd['attributes'][_0x942d('0x38')]?_0x5a55fd['attributes']:_0x122cbd[_0x942d('0x31')];_0x5a55fd[_0x942d('0x3b')]=qs[_0x942d('0x3c')](_0x30f237['query'][_0x942d('0x3c')]);_0x5a55fd[_0x942d('0x3d')]=qs['filters'](_[_0x942d('0x3e')](_0x30f237[_0x942d('0x34')],_0x122cbd[_0x942d('0x3f')]));if(_0x30f237[_0x942d('0x34')]['filter']){_0x5a55fd['where']=_[_0x942d('0x49')](_0x5a55fd[_0x942d('0x3d')],{'$or':_[_0x942d('0x32')](_0x5a55fd[_0x942d('0x36')],function(_0x5ed14a){var _0x485c39={};_0x485c39[_0x5ed14a]={'$like':'%'+_0x30f237[_0x942d('0x34')][_0x942d('0x40')]+'%'};return _0x485c39;})});}_0x5a55fd=_[_0x942d('0x49')]({},_0x5a55fd,_0x30f237['options']);return _0x3f2c2f[_0x942d('0x59')](_0x5a55fd);}})[_0x942d('0x24')](function(_0x47ae7e){if(_0x47ae7e){_0xe5e569=_0x47ae7e[_0x942d('0x38')];if(!_0x30f237['query'][_0x942d('0x39')](_0x942d('0x3a'))){_0x5a55fd[_0x942d('0x1f')]=qs['limit'](_0x30f237[_0x942d('0x34')][_0x942d('0x1f')]);_0x5a55fd[_0x942d('0x1d')]=qs[_0x942d('0x1d')](_0x30f237[_0x942d('0x34')][_0x942d('0x1d')]);}return _0x3f2c2f['getAnyConditions'](_0x5a55fd);}})['then'](function(_0x50033c){if(_0x50033c){return _0x50033c?{'count':_0xe5e569,'rows':_0x50033c}:null;}})[_0x942d('0x24')](respondWithResult(_0x1d1511,null))[_0x942d('0x46')](handleError(_0x1d1511,null));};exports[_0x942d('0x5a')]=function(_0x2e046b,_0xdbfde8,_0x4816a9){if(_0x2e046b['body']['id']){delete _0x2e046b[_0x942d('0x4c')]['id'];}return db[_0x942d('0x43')][_0x942d('0x53')]({'where':{'id':_0x2e046b[_0x942d('0x48')]['id']}})[_0x942d('0x24')](handleEntityNotFound(_0xdbfde8,null))['then'](function(_0x3d7f11){if(_0x3d7f11){_0x2e046b[_0x942d('0x4c')][_0x942d('0x5b')]=_0x3d7f11['id'];return db[_0x942d('0x5c')][_0x942d('0x4b')](_0x2e046b[_0x942d('0x4c')]);}})[_0x942d('0x24')](respondWithResult(_0xdbfde8,null))[_0x942d('0x46')](handleError(_0xdbfde8,null));};exports['getActions']=function(_0x381f13,_0x1a75b4,_0x364041){var _0xd8e039={};var _0x547d36={};var _0x2168f9;var _0x2ab080;return db[_0x942d('0x43')][_0x942d('0x57')]({'where':{'id':_0x381f13['params']['id']}})['then'](handleEntityNotFound(_0x1a75b4,null))[_0x942d('0x24')](function(_0x350efd){if(_0x350efd){_0x2168f9=_0x350efd;_0x547d36[_0x942d('0x31')]=_[_0x942d('0x33')](db[_0x942d('0x5c')][_0x942d('0x2e')]);_0x547d36[_0x942d('0x34')]=_[_0x942d('0x33')](_0x381f13[_0x942d('0x34')]);_0x547d36[_0x942d('0x3f')]=_[_0x942d('0x35')](_0x547d36[_0x942d('0x31')],_0x547d36[_0x942d('0x34')]);_0xd8e039[_0x942d('0x36')]=_['intersection'](_0x547d36[_0x942d('0x31')],qs[_0x942d('0x37')](_0x381f13['query'][_0x942d('0x37')]));_0xd8e039[_0x942d('0x36')]=_0xd8e039[_0x942d('0x36')]['length']?_0xd8e039[_0x942d('0x36')]:_0x547d36[_0x942d('0x31')];_0xd8e039[_0x942d('0x3b')]=qs[_0x942d('0x3c')](_0x381f13['query'][_0x942d('0x3c')]);_0xd8e039['where']=qs[_0x942d('0x3f')](_[_0x942d('0x3e')](_0x381f13['query'],_0x547d36[_0x942d('0x3f')]));if(_0x381f13[_0x942d('0x34')][_0x942d('0x40')]){_0xd8e039[_0x942d('0x3d')]=_[_0x942d('0x49')](_0xd8e039[_0x942d('0x3d')],{'$or':_[_0x942d('0x32')](_0xd8e039['attributes'],function(_0x5a8a27){var _0x5cc339={};_0x5cc339[_0x5a8a27]={'$like':'%'+_0x381f13[_0x942d('0x34')][_0x942d('0x40')]+'%'};return _0x5cc339;})});}_0xd8e039=_[_0x942d('0x49')]({},_0xd8e039,_0x381f13[_0x942d('0x4a')]);return _0x2168f9['getActions'](_0xd8e039);}})[_0x942d('0x24')](function(_0x4efd93){if(_0x4efd93){_0x2ab080=_0x4efd93['length'];if(!_0x381f13[_0x942d('0x34')][_0x942d('0x39')](_0x942d('0x3a'))){_0xd8e039['limit']=qs[_0x942d('0x1f')](_0x381f13[_0x942d('0x34')][_0x942d('0x1f')]);_0xd8e039[_0x942d('0x1d')]=qs[_0x942d('0x1d')](_0x381f13[_0x942d('0x34')][_0x942d('0x1d')]);}return _0x2168f9['getActions'](_0xd8e039);}})[_0x942d('0x24')](function(_0x35eb30){if(_0x35eb30){return _0x35eb30?{'count':_0x2ab080,'rows':_0x35eb30}:null;}})[_0x942d('0x24')](respondWithResult(_0x1a75b4,null))[_0x942d('0x46')](handleError(_0x1a75b4,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5044=['request-promise','path','rimraf','../../config/environment','./trigger.attributes','define','Trigger','tools_triggers','util','api','moment','bluebird'];(function(_0x30d7a4,_0x39fc14){var _0x419c1d=function(_0x2d63c7){while(--_0x2d63c7){_0x30d7a4['push'](_0x30d7a4['shift']());}};_0x419c1d(++_0x39fc14);}(_0x5044,0xc8));var _0x4504=function(_0xbd32a7,_0x2da8bd){_0xbd32a7=_0xbd32a7-0x0;var _0x10cc54=_0x5044[_0xbd32a7];return _0x10cc54;};'use strict';var _=require('lodash');var util=require(_0x4504('0x0'));var logger=require('../../config/logger')(_0x4504('0x1'));var moment=require(_0x4504('0x2'));var BPromise=require(_0x4504('0x3'));var rp=require(_0x4504('0x4'));var fs=require('fs');var path=require(_0x4504('0x5'));var rimraf=require(_0x4504('0x6'));var config=require(_0x4504('0x7'));var attributes=require(_0x4504('0x8'));module['exports']=function(_0x10b50f,_0x40195b){return _0x10b50f[_0x4504('0x9')](_0x4504('0xa'),attributes,{'tableName':_0x4504('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xc560=['../../config/environment','./trigger.attributes','define','Trigger','lodash','../../config/logger','moment','path','rimraf'];(function(_0x2a1637,_0x3fe937){var _0x3f6597=function(_0x1c6a0e){while(--_0x1c6a0e){_0x2a1637['push'](_0x2a1637['shift']());}};_0x3f6597(++_0x3fe937);}(_0xc560,0x82));var _0x0c56=function(_0x17fbca,_0x5b2e7c){_0x17fbca=_0x17fbca-0x0;var _0x5405fc=_0xc560[_0x17fbca];return _0x5405fc;};'use strict';var _=require(_0x0c56('0x0'));var util=require('util');var logger=require(_0x0c56('0x1'))('api');var moment=require(_0x0c56('0x2'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0x0c56('0x3'));var rimraf=require(_0x0c56('0x4'));var config=require(_0x0c56('0x5'));var attributes=require(_0x0c56('0x6'));module['exports']=function(_0x2b5654,_0x2bc0a0){return _0x2b5654[_0x0c56('0x7')](_0x0c56('0x8'),attributes,{'tableName':'tools_triggers','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc237=['model','catch','find','ShowTrigger','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','request','then','info','debug','Trigger,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','Trigger,\x20%s,\x20%s','message','result','GetTrigger','Trigger','findAll','options','raw','where','attributes','limit','include','map'];(function(_0x14a5da,_0x4a4ab5){var _0x1d0ff5=function(_0x46679){while(--_0x46679){_0x14a5da['push'](_0x14a5da['shift']());}};_0x1d0ff5(++_0x4a4ab5);}(_0xc237,0x180));var _0x7c23=function(_0x1badd4,_0x5012d5){_0x1badd4=_0x1badd4-0x0;var _0xde8d2f=_0xc237[_0x1badd4];return _0xde8d2f;};'use strict';var _=require(_0x7c23('0x0'));var util=require(_0x7c23('0x1'));var moment=require(_0x7c23('0x2'));var BPromise=require(_0x7c23('0x3'));var rs=require(_0x7c23('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x7c23('0x5'))['db'];var utils=require(_0x7c23('0x6'));var logger=require(_0x7c23('0x7'))(_0x7c23('0x8'));var config=require(_0x7c23('0x9'));var jayson=require(_0x7c23('0xa'));var client=jayson[_0x7c23('0xb')]['http']({'port':0x232a});function respondWithRpcPromise(_0x51711d,_0x2e82ec,_0xa17d24){return new BPromise(function(_0x7864aa,_0x4e5f58){return client[_0x7c23('0xc')](_0x51711d,_0xa17d24)[_0x7c23('0xd')](function(_0x1edff9){logger[_0x7c23('0xe')]('Trigger,\x20%s,\x20%s',_0x2e82ec,'request\x20sent');logger[_0x7c23('0xf')](_0x7c23('0x10'),_0x2e82ec,_0x7c23('0x11'),JSON[_0x7c23('0x12')](_0x1edff9));if(_0x1edff9[_0x7c23('0x13')]){if(_0x1edff9[_0x7c23('0x13')][_0x7c23('0x14')]===0x1f4){logger[_0x7c23('0x13')](_0x7c23('0x15'),_0x2e82ec,_0x1edff9['error'][_0x7c23('0x16')]);return _0x4e5f58(_0x1edff9['error'][_0x7c23('0x16')]);}logger['error']('Trigger,\x20%s,\x20%s',_0x2e82ec,_0x1edff9['error'][_0x7c23('0x16')]);return _0x7864aa(_0x1edff9[_0x7c23('0x13')][_0x7c23('0x16')]);}else{logger[_0x7c23('0xe')](_0x7c23('0x15'),_0x2e82ec,_0x7c23('0x11'));_0x7864aa(_0x1edff9[_0x7c23('0x17')][_0x7c23('0x16')]);}})['catch'](function(_0xaafbf3){logger[_0x7c23('0x13')]('Trigger,\x20%s,\x20%s',_0x2e82ec,_0xaafbf3);_0x4e5f58(_0xaafbf3);});});}exports[_0x7c23('0x18')]=function(_0x760800){var _0x2239ac=this;return new Promise(function(_0xbc674e,_0x18a594){return db[_0x7c23('0x19')][_0x7c23('0x1a')]({'raw':_0x760800[_0x7c23('0x1b')]?_0x760800['options'][_0x7c23('0x1c')]===undefined?!![]:![]:!![],'where':_0x760800[_0x7c23('0x1b')]?_0x760800[_0x7c23('0x1b')][_0x7c23('0x1d')]||null:null,'attributes':_0x760800[_0x7c23('0x1b')]?_0x760800[_0x7c23('0x1b')][_0x7c23('0x1e')]||null:null,'limit':_0x760800[_0x7c23('0x1b')]?_0x760800['options'][_0x7c23('0x1f')]||null:null,'include':_0x760800[_0x7c23('0x1b')]?_0x760800[_0x7c23('0x1b')][_0x7c23('0x20')]?_[_0x7c23('0x21')](_0x760800[_0x7c23('0x1b')]['include'],function(_0xd3d67a){return{'model':db[_0xd3d67a[_0x7c23('0x22')]],'as':_0xd3d67a['as'],'attributes':_0xd3d67a['attributes'],'include':_0xd3d67a[_0x7c23('0x20')]?_[_0x7c23('0x21')](_0xd3d67a[_0x7c23('0x20')],function(_0x5ed43a){return{'model':db[_0x5ed43a[_0x7c23('0x22')]],'as':_0x5ed43a['as'],'attributes':_0x5ed43a[_0x7c23('0x1e')],'include':_0x5ed43a['include']?_[_0x7c23('0x21')](_0x5ed43a['include'],function(_0x36f22b){return{'model':db[_0x36f22b[_0x7c23('0x22')]],'as':_0x36f22b['as'],'attributes':_0x36f22b[_0x7c23('0x1e')]};}):[]};}):[]};}):[]:[]})[_0x7c23('0xd')](function(_0x5e260a){logger[_0x7c23('0xe')]('GetTrigger',_0x760800);logger[_0x7c23('0xf')]('GetTrigger',_0x760800,JSON['stringify'](_0x5e260a));_0xbc674e(_0x5e260a);})[_0x7c23('0x23')](function(_0x3e8958){logger[_0x7c23('0x13')]('GetTrigger',_0x3e8958[_0x7c23('0x16')],_0x760800);_0x18a594(_0x2239ac['error'](0x1f4,_0x3e8958['message']));});});};exports['ShowTrigger']=function(_0x16d59f){var _0x26bb6a=this;return new Promise(function(_0x16186a,_0x8b3567){return db[_0x7c23('0x19')][_0x7c23('0x24')]({'raw':_0x16d59f[_0x7c23('0x1b')]?_0x16d59f['options'][_0x7c23('0x1c')]===undefined?!![]:![]:!![],'where':_0x16d59f[_0x7c23('0x1b')]?_0x16d59f['options']['where']||null:null,'attributes':_0x16d59f[_0x7c23('0x1b')]?_0x16d59f[_0x7c23('0x1b')][_0x7c23('0x1e')]||null:null,'include':_0x16d59f[_0x7c23('0x1b')]?_0x16d59f[_0x7c23('0x1b')][_0x7c23('0x20')]?_[_0x7c23('0x21')](_0x16d59f[_0x7c23('0x1b')][_0x7c23('0x20')],function(_0x1ee699){return{'model':db[_0x1ee699[_0x7c23('0x22')]],'as':_0x1ee699['as'],'attributes':_0x1ee699[_0x7c23('0x1e')],'include':_0x1ee699[_0x7c23('0x20')]?_[_0x7c23('0x21')](_0x1ee699[_0x7c23('0x20')],function(_0x2c8dfa){return{'model':db[_0x2c8dfa[_0x7c23('0x22')]],'as':_0x2c8dfa['as'],'attributes':_0x2c8dfa[_0x7c23('0x1e')],'include':_0x2c8dfa[_0x7c23('0x20')]?_[_0x7c23('0x21')](_0x2c8dfa[_0x7c23('0x20')],function(_0x109510){return{'model':db[_0x109510[_0x7c23('0x22')]],'as':_0x109510['as'],'attributes':_0x109510['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x532b98){logger['info']('ShowTrigger',_0x16d59f);logger[_0x7c23('0xf')](_0x7c23('0x25'),_0x16d59f,JSON[_0x7c23('0x12')](_0x532b98));_0x16186a(_0x532b98);})['catch'](function(_0x25e500){logger['error'](_0x7c23('0x25'),_0x25e500['message'],_0x16d59f);_0x8b3567(_0x26bb6a[_0x7c23('0x13')](0x1f4,_0x25e500[_0x7c23('0x16')]));});});};
\ No newline at end of file
+var _0xb481=['../../mysqldb','../../config/utils','../../config/environment','client','http','request','then','info','debug','stringify','error','code','Trigger,\x20%s,\x20%s','message','request\x20sent','result','catch','options','raw','where','attributes','include','map','model','GetTrigger','ShowTrigger','Trigger','find','lodash','util','moment','bluebird','randomstring','ioredis'];(function(_0x32b30c,_0x2d5ec8){var _0xcfc212=function(_0x42e668){while(--_0x42e668){_0x32b30c['push'](_0x32b30c['shift']());}};_0xcfc212(++_0x2d5ec8);}(_0xb481,0x192));var _0x1b48=function(_0x2584bc,_0x35d9f5){_0x2584bc=_0x2584bc-0x0;var _0x405f2c=_0xb481[_0x2584bc];return _0x405f2c;};'use strict';var _=require(_0x1b48('0x0'));var util=require(_0x1b48('0x1'));var moment=require(_0x1b48('0x2'));var BPromise=require(_0x1b48('0x3'));var rs=require(_0x1b48('0x4'));var fs=require('fs');var Redis=require(_0x1b48('0x5'));var db=require(_0x1b48('0x6'))['db'];var utils=require(_0x1b48('0x7'));var logger=require('../../config/logger')('rpc');var config=require(_0x1b48('0x8'));var jayson=require('jayson/promise');var client=jayson[_0x1b48('0x9')][_0x1b48('0xa')]({'port':0x232a});function respondWithRpcPromise(_0xff0f15,_0x4a16a2,_0x2a3b75){return new BPromise(function(_0x2bb0c0,_0x31bfab){return client[_0x1b48('0xb')](_0xff0f15,_0x2a3b75)[_0x1b48('0xc')](function(_0x28480d){logger[_0x1b48('0xd')]('Trigger,\x20%s,\x20%s',_0x4a16a2,'request\x20sent');logger[_0x1b48('0xe')]('Trigger,\x20%s,\x20%s,\x20%s',_0x4a16a2,'request\x20sent',JSON[_0x1b48('0xf')](_0x28480d));if(_0x28480d[_0x1b48('0x10')]){if(_0x28480d['error'][_0x1b48('0x11')]===0x1f4){logger[_0x1b48('0x10')](_0x1b48('0x12'),_0x4a16a2,_0x28480d['error'][_0x1b48('0x13')]);return _0x31bfab(_0x28480d[_0x1b48('0x10')][_0x1b48('0x13')]);}logger[_0x1b48('0x10')](_0x1b48('0x12'),_0x4a16a2,_0x28480d[_0x1b48('0x10')][_0x1b48('0x13')]);return _0x2bb0c0(_0x28480d['error'][_0x1b48('0x13')]);}else{logger[_0x1b48('0xd')]('Trigger,\x20%s,\x20%s',_0x4a16a2,_0x1b48('0x14'));_0x2bb0c0(_0x28480d[_0x1b48('0x15')][_0x1b48('0x13')]);}})[_0x1b48('0x16')](function(_0x4acc46){logger[_0x1b48('0x10')](_0x1b48('0x12'),_0x4a16a2,_0x4acc46);_0x31bfab(_0x4acc46);});});}exports['GetTrigger']=function(_0x288fb7){var _0x2ebc34=this;return new Promise(function(_0x2cc882,_0x4fae0f){return db['Trigger']['findAll']({'raw':_0x288fb7[_0x1b48('0x17')]?_0x288fb7[_0x1b48('0x17')][_0x1b48('0x18')]===undefined?!![]:![]:!![],'where':_0x288fb7[_0x1b48('0x17')]?_0x288fb7[_0x1b48('0x17')][_0x1b48('0x19')]||null:null,'attributes':_0x288fb7['options']?_0x288fb7[_0x1b48('0x17')][_0x1b48('0x1a')]||null:null,'limit':_0x288fb7['options']?_0x288fb7['options']['limit']||null:null,'include':_0x288fb7[_0x1b48('0x17')]?_0x288fb7['options'][_0x1b48('0x1b')]?_[_0x1b48('0x1c')](_0x288fb7[_0x1b48('0x17')]['include'],function(_0x1a51b5){return{'model':db[_0x1a51b5[_0x1b48('0x1d')]],'as':_0x1a51b5['as'],'attributes':_0x1a51b5[_0x1b48('0x1a')],'include':_0x1a51b5[_0x1b48('0x1b')]?_['map'](_0x1a51b5['include'],function(_0x573d1b){return{'model':db[_0x573d1b[_0x1b48('0x1d')]],'as':_0x573d1b['as'],'attributes':_0x573d1b[_0x1b48('0x1a')],'include':_0x573d1b['include']?_[_0x1b48('0x1c')](_0x573d1b[_0x1b48('0x1b')],function(_0x123ea0){return{'model':db[_0x123ea0[_0x1b48('0x1d')]],'as':_0x123ea0['as'],'attributes':_0x123ea0[_0x1b48('0x1a')]};}):[]};}):[]};}):[]:[]})[_0x1b48('0xc')](function(_0xc00126){logger[_0x1b48('0xd')](_0x1b48('0x1e'),_0x288fb7);logger[_0x1b48('0xe')](_0x1b48('0x1e'),_0x288fb7,JSON[_0x1b48('0xf')](_0xc00126));_0x2cc882(_0xc00126);})['catch'](function(_0x4ba758){logger[_0x1b48('0x10')](_0x1b48('0x1e'),_0x4ba758[_0x1b48('0x13')],_0x288fb7);_0x4fae0f(_0x2ebc34[_0x1b48('0x10')](0x1f4,_0x4ba758['message']));});});};exports[_0x1b48('0x1f')]=function(_0x5bf77a){var _0x3ea581=this;return new Promise(function(_0x360f1a,_0x24afde){return db[_0x1b48('0x20')][_0x1b48('0x21')]({'raw':_0x5bf77a[_0x1b48('0x17')]?_0x5bf77a[_0x1b48('0x17')][_0x1b48('0x18')]===undefined?!![]:![]:!![],'where':_0x5bf77a['options']?_0x5bf77a['options'][_0x1b48('0x19')]||null:null,'attributes':_0x5bf77a[_0x1b48('0x17')]?_0x5bf77a[_0x1b48('0x17')][_0x1b48('0x1a')]||null:null,'include':_0x5bf77a[_0x1b48('0x17')]?_0x5bf77a[_0x1b48('0x17')][_0x1b48('0x1b')]?_[_0x1b48('0x1c')](_0x5bf77a[_0x1b48('0x17')][_0x1b48('0x1b')],function(_0x2c89a2){return{'model':db[_0x2c89a2[_0x1b48('0x1d')]],'as':_0x2c89a2['as'],'attributes':_0x2c89a2['attributes'],'include':_0x2c89a2['include']?_[_0x1b48('0x1c')](_0x2c89a2[_0x1b48('0x1b')],function(_0x23091f){return{'model':db[_0x23091f[_0x1b48('0x1d')]],'as':_0x23091f['as'],'attributes':_0x23091f[_0x1b48('0x1a')],'include':_0x23091f[_0x1b48('0x1b')]?_['map'](_0x23091f[_0x1b48('0x1b')],function(_0x4a0567){return{'model':db[_0x4a0567['model']],'as':_0x4a0567['as'],'attributes':_0x4a0567[_0x1b48('0x1a')]};}):[]};}):[]};}):[]:[]})[_0x1b48('0xc')](function(_0x55f3f2){logger[_0x1b48('0xd')](_0x1b48('0x1f'),_0x5bf77a);logger[_0x1b48('0xe')](_0x1b48('0x1f'),_0x5bf77a,JSON['stringify'](_0x55f3f2));_0x360f1a(_0x55f3f2);})[_0x1b48('0x16')](function(_0x5da511){logger['error'](_0x1b48('0x1f'),_0x5da511['message'],_0x5bf77a);_0x24afde(_0x3ea581[_0x1b48('0x10')](0x1f4,_0x5da511[_0x1b48('0x13')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x56f7=['Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','isAuthenticated','index','/:id','show','post','/:id/clone','clone','put','update','delete','destroy','multer','util','path','connect-timeout','express'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x56f7,0x8e));var _0x756f=function(_0x34febf,_0x291d12){_0x34febf=_0x34febf-0x0;var _0x806c16=_0x56f7[_0x34febf];return _0x806c16;};'use strict';var multer=require(_0x756f('0x0'));var util=require(_0x756f('0x1'));var path=require(_0x756f('0x2'));var timeout=require(_0x756f('0x3'));var express=require(_0x756f('0x4'));var router=express[_0x756f('0x5')]();var fs_extra=require(_0x756f('0x6'));var auth=require(_0x756f('0x7'));var interaction=require(_0x756f('0x8'));var config=require(_0x756f('0x9'));var controller=require('./trunk.controller');router['get']('/',auth[_0x756f('0xa')](),controller[_0x756f('0xb')]);router['get'](_0x756f('0xc'),auth[_0x756f('0xa')](),controller[_0x756f('0xd')]);router[_0x756f('0xe')](_0x756f('0xf'),auth[_0x756f('0xa')](),controller[_0x756f('0x10')]);router[_0x756f('0xe')]('/',auth[_0x756f('0xa')](),controller['create']);router[_0x756f('0x11')]('/:id',auth['isAuthenticated'](),controller[_0x756f('0x12')]);router[_0x756f('0x13')]('/:id',auth[_0x756f('0xa')](),controller[_0x756f('0x14')]);module['exports']=router;
\ No newline at end of file
+var _0xa8d2=['update','delete','exports','util','connect-timeout','express','../../components/auth/service','../../components/interaction/service','../../config/environment','./trunk.controller','get','/:id','isAuthenticated','show','post','clone','create','put'];(function(_0x3b0731,_0xcf9925){var _0x4204d7=function(_0x635ac5){while(--_0x635ac5){_0x3b0731['push'](_0x3b0731['shift']());}};_0x4204d7(++_0xcf9925);}(_0xa8d2,0x18f));var _0x2a8d=function(_0x2e9686,_0x29d5eb){_0x2e9686=_0x2e9686-0x0;var _0xaa5d7b=_0xa8d2[_0x2e9686];return _0xaa5d7b;};'use strict';var multer=require('multer');var util=require(_0x2a8d('0x0'));var path=require('path');var timeout=require(_0x2a8d('0x1'));var express=require(_0x2a8d('0x2'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0x2a8d('0x3'));var interaction=require(_0x2a8d('0x4'));var config=require(_0x2a8d('0x5'));var controller=require(_0x2a8d('0x6'));router[_0x2a8d('0x7')]('/',auth['isAuthenticated'](),controller['index']);router[_0x2a8d('0x7')](_0x2a8d('0x8'),auth[_0x2a8d('0x9')](),controller[_0x2a8d('0xa')]);router[_0x2a8d('0xb')]('/:id/clone',auth['isAuthenticated'](),controller[_0x2a8d('0xc')]);router[_0x2a8d('0xb')]('/',auth[_0x2a8d('0x9')](),controller[_0x2a8d('0xd')]);router[_0x2a8d('0xe')](_0x2a8d('0x8'),auth['isAuthenticated'](),controller[_0x2a8d('0xf')]);router[_0x2a8d('0x10')]('/:id',auth[_0x2a8d('0x9')](),controller['destroy']);module[_0x2a8d('0x11')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xce18=['getDataValue','split','String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22udp\x22,\x20\x22tcp\x22]','rfc2833','info','shortinfo','auto','yes','nonat','update','outgoing','force_rport,comedia','nat','String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22force_rport\x22,\x20\x22comedia\x22]','ulaw;alaw;gsm','allow','port,invite','insecure','String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22port\x22,\x20\x22invite\x22]','never','INTEGER','accept','refuse','originate','uas','pai','fingerprint','passive','dynamic','update,nonat','BOOLEAN','sequelize','exports','STRING','name','user','peer','from-voip-provider','ENUM','ALLOWED_NOT_SCREENED','ALLOWED_PASSED_SCREEN','ALLOWED_FAILED_SCREEN','ALLOWED','PROHIB_NOT_SCREENED','PROHIB_PASSED_SCREEN','PROHIB_FAILED_SCREEN','PROHIB','udp','setDataValue','transport','join'];(function(_0x18e0ea,_0x661c33){var _0x322c49=function(_0x235638){while(--_0x235638){_0x18e0ea['push'](_0x18e0ea['shift']());}};_0x322c49(++_0x661c33);}(_0xce18,0x11e));var _0x8ce1=function(_0x31854f,_0x2c09fd){_0x31854f=_0x31854f-0x0;var _0x2cb805=_0xce18[_0x31854f];return _0x2cb805;};'use strict';var Sequelize=require(_0x8ce1('0x0'));module[_0x8ce1('0x1')]={'name':{'type':Sequelize[_0x8ce1('0x2')],'allowNull':![],'unique':_0x8ce1('0x3'),'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'type':{'type':Sequelize['ENUM']('friend',_0x8ce1('0x4'),_0x8ce1('0x5')),'allowNull':![],'defaultValue':'friend'},'context':{'type':Sequelize[_0x8ce1('0x2')],'allowNull':![],'defaultValue':_0x8ce1('0x6')},'callingpres':{'type':Sequelize[_0x8ce1('0x7')](_0x8ce1('0x8'),_0x8ce1('0x9'),_0x8ce1('0xa'),_0x8ce1('0xb'),_0x8ce1('0xc'),_0x8ce1('0xd'),_0x8ce1('0xe'),_0x8ce1('0xf'))},'deny':{'type':Sequelize['STRING']},'permit':{'type':Sequelize[_0x8ce1('0x2')]},'secret':{'type':Sequelize[_0x8ce1('0x2')]},'md5secret':{'type':Sequelize[_0x8ce1('0x2')]},'remotesecret':{'type':Sequelize[_0x8ce1('0x2')]},'transport':{'type':Sequelize[_0x8ce1('0x2')],'defaultValue':_0x8ce1('0x10'),'set':function(_0x2775f5){this[_0x8ce1('0x11')](_0x8ce1('0x12'),_0x2775f5?_0x2775f5[_0x8ce1('0x13')](','):null);},'get':function(){return this[_0x8ce1('0x14')](_0x8ce1('0x12'))?this[_0x8ce1('0x14')](_0x8ce1('0x12'))[_0x8ce1('0x15')](','):null;},'comment':_0x8ce1('0x16')},'dtmfmode':{'type':Sequelize[_0x8ce1('0x7')](_0x8ce1('0x17'),_0x8ce1('0x18'),_0x8ce1('0x19'),'inband',_0x8ce1('0x1a')),'defaultValue':_0x8ce1('0x17')},'directmedia':{'type':Sequelize[_0x8ce1('0x7')](_0x8ce1('0x1b'),'no',_0x8ce1('0x1c'),_0x8ce1('0x1d'),_0x8ce1('0x1e')),'defaultValue':'no'},'directrtpsetup':{'type':Sequelize['ENUM'](_0x8ce1('0x1b'),'no'),'defaultValue':'no'},'directmediapermit':{'type':Sequelize[_0x8ce1('0x2')]},'directmediadeny':{'type':Sequelize['STRING']},'nat':{'type':Sequelize[_0x8ce1('0x2')],'defaultValue':_0x8ce1('0x1f'),'set':function(_0x3451e){this[_0x8ce1('0x11')](_0x8ce1('0x20'),_0x3451e?_0x3451e[_0x8ce1('0x13')](','):null);},'get':function(){return this[_0x8ce1('0x14')](_0x8ce1('0x20'))?this[_0x8ce1('0x14')](_0x8ce1('0x20'))[_0x8ce1('0x15')](','):null;},'comment':_0x8ce1('0x21')},'callgroup':{'type':Sequelize[_0x8ce1('0x2')]},'namedcallgroup':{'type':Sequelize[_0x8ce1('0x2')]},'pickupgroup':{'type':Sequelize[_0x8ce1('0x2')]},'namedpickupgroup':{'type':Sequelize[_0x8ce1('0x2')]},'language':{'type':Sequelize[_0x8ce1('0x2')],'defaultValue':'en'},'tonezone':{'type':Sequelize[_0x8ce1('0x2')],'allowNull':!![]},'disallow':{'type':Sequelize[_0x8ce1('0x2')],'defaultValue':'all'},'allow':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':'ulaw;alaw;gsm','set':function(_0x49c639){this[_0x8ce1('0x11')]('allow',_0x49c639?_0x49c639[_0x8ce1('0x13')](';'):_0x8ce1('0x22'));},'get':function(){return this[_0x8ce1('0x14')](_0x8ce1('0x23'))?this[_0x8ce1('0x14')](_0x8ce1('0x23'))[_0x8ce1('0x15')](';'):null;},'comment':'String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22ulaw\x22,\x20\x22alaw\x22,\x20\x22alaw\x22]'},'autoframing':{'type':Sequelize[_0x8ce1('0x7')](_0x8ce1('0x1b'),'no')},'insecure':{'type':Sequelize['STRING'],'defaultValue':_0x8ce1('0x24'),'set':function(_0xa788b){this[_0x8ce1('0x11')](_0x8ce1('0x25'),_0xa788b?_0xa788b[_0x8ce1('0x13')](','):null);},'get':function(){return this[_0x8ce1('0x14')](_0x8ce1('0x25'))?this[_0x8ce1('0x14')](_0x8ce1('0x25'))[_0x8ce1('0x15')](','):null;},'comment':_0x8ce1('0x26')},'trustrpid':{'type':Sequelize[_0x8ce1('0x7')]('yes','no'),'defaultValue':'no'},'trust_id_outbound':{'type':Sequelize['ENUM'](_0x8ce1('0x1b'),'no'),'defaultValue':'no'},'progressinband':{'type':Sequelize[_0x8ce1('0x7')](_0x8ce1('0x1b'),'no',_0x8ce1('0x27'))},'promiscredir':{'type':Sequelize[_0x8ce1('0x7')](_0x8ce1('0x1b'),'no')},'useclientcode':{'type':Sequelize[_0x8ce1('0x7')](_0x8ce1('0x1b'),'no')},'accountcode':{'type':Sequelize[_0x8ce1('0x28')](0xb)},'setvar':{'type':Sequelize[_0x8ce1('0x2')]},'callerid':{'type':Sequelize[_0x8ce1('0x2')],'defaultValue':'\x22\x22\x20<>'},'amaflags':{'type':Sequelize[_0x8ce1('0x2')]},'callcounter':{'type':Sequelize[_0x8ce1('0x7')](_0x8ce1('0x1b'),'no'),'defaultValue':_0x8ce1('0x1b')},'busylevel':{'type':Sequelize['INTEGER'](0xb)},'allowoverlap':{'type':Sequelize['ENUM']('yes','no')},'allowsubscribe':{'type':Sequelize['ENUM'](_0x8ce1('0x1b'),'no')},'allowtransfer':{'type':Sequelize[_0x8ce1('0x7')](_0x8ce1('0x1b'),'no')},'ignoresdpversion':{'type':Sequelize['ENUM'](_0x8ce1('0x1b'),'no')},'subscribecontext':{'type':Sequelize[_0x8ce1('0x2')]},'template':{'type':Sequelize['STRING']},'videosupport':{'type':Sequelize[_0x8ce1('0x7')](_0x8ce1('0x1b'),'no','always'),'defaultValue':'no'},'maxcallbitrate':{'type':Sequelize[_0x8ce1('0x28')](0xb)},'rfc2833compensate':{'type':Sequelize[_0x8ce1('0x7')](_0x8ce1('0x1b'),'no')},'mailbox':{'type':Sequelize[_0x8ce1('0x2')]},'session_timers':{'type':Sequelize['ENUM'](_0x8ce1('0x29'),_0x8ce1('0x2a'),_0x8ce1('0x2b'))},'session_expires':{'type':Sequelize['INTEGER'](0xb)},'session_minse':{'type':Sequelize[_0x8ce1('0x28')](0xb)},'session_refresher':{'type':Sequelize[_0x8ce1('0x7')]('uac',_0x8ce1('0x2c')),'defaultValue':'uas'},'t38pt_usertpsource':{'type':Sequelize[_0x8ce1('0x2')]},'regexten':{'type':Sequelize['STRING']},'fromdomain':{'type':Sequelize[_0x8ce1('0x2')]},'fromuser':{'type':Sequelize[_0x8ce1('0x2')]},'port':{'type':Sequelize[_0x8ce1('0x28')](0x5)},'qualify':{'type':Sequelize['ENUM'](_0x8ce1('0x1b'),'no'),'defaultValue':_0x8ce1('0x1b')},'keepalive':{'type':Sequelize[_0x8ce1('0x28')](0xb)},'defaultip':{'type':Sequelize[_0x8ce1('0x2')]},'defaultuser':{'type':Sequelize[_0x8ce1('0x2')]},'rtptimeout':{'type':Sequelize['INTEGER'](0xb)},'rtpholdtimeout':{'type':Sequelize[_0x8ce1('0x28')](0xb)},'rtpkeepalive':{'type':Sequelize[_0x8ce1('0x28')](0xb)},'sendrpid':{'type':Sequelize[_0x8ce1('0x7')]('yes','no',_0x8ce1('0x2d')),'defaultValue':'no'},'outboundproxy':{'type':Sequelize[_0x8ce1('0x2')]},'callbackextension':{'type':Sequelize[_0x8ce1('0x2')]},'timert1':{'type':Sequelize[_0x8ce1('0x28')](0xb)},'timerb':{'type':Sequelize['INTEGER'](0xb)},'qualifyfreq':{'type':Sequelize[_0x8ce1('0x28')](0xb)},'contactpermit':{'type':Sequelize[_0x8ce1('0x2')]},'contactdeny':{'type':Sequelize[_0x8ce1('0x2')]},'contactacl':{'type':Sequelize[_0x8ce1('0x2')]},'unsolicited_mailbox':{'type':Sequelize[_0x8ce1('0x2')]},'use_q850_reason':{'type':Sequelize['STRING']},'maxforwards':{'type':Sequelize[_0x8ce1('0x28')](0xb)},'encryption':{'type':Sequelize[_0x8ce1('0x7')](_0x8ce1('0x1b'),'no'),'defaultValue':'no'},'avpf':{'type':Sequelize['ENUM']('yes','no')},'force_avp':{'type':Sequelize[_0x8ce1('0x7')](_0x8ce1('0x1b'),'no')},'icesupport':{'type':Sequelize['ENUM'](_0x8ce1('0x1b'),'no')},'dtlsenable':{'type':Sequelize[_0x8ce1('0x7')](_0x8ce1('0x1b'),'no')},'dtlsverify':{'type':Sequelize[_0x8ce1('0x7')](_0x8ce1('0x1b'),'no',_0x8ce1('0x2e'),'certificate')},'dtlsrekey':{'type':Sequelize[_0x8ce1('0x28')](0xb)},'dtlscertfile':{'type':Sequelize[_0x8ce1('0x2')]},'dtlsprivatekey':{'type':Sequelize[_0x8ce1('0x2')]},'dtlscipher':{'type':Sequelize[_0x8ce1('0x2')]},'dtlscafile':{'type':Sequelize[_0x8ce1('0x2')]},'dtlscapath':{'type':Sequelize[_0x8ce1('0x2')]},'dtlssetup':{'type':Sequelize[_0x8ce1('0x7')]('active',_0x8ce1('0x2f'),'actpass'),'allowNull':!![]},'dtlsfingerprint':{'type':Sequelize[_0x8ce1('0x2')]},'usereqphone':{'type':Sequelize['ENUM'](_0x8ce1('0x1b'),'no'),'defaultValue':'no'},'recordonfeature':{'type':Sequelize[_0x8ce1('0x2')]},'recordofffeature':{'type':Sequelize['STRING']},'call_limit':{'type':Sequelize['INTEGER'](0xb),'defaultValue':0x3e8},'registertrying':{'type':Sequelize['ENUM'](_0x8ce1('0x1b'),'no')},'subscribemwi':{'type':Sequelize[_0x8ce1('0x7')]('yes','no')},'vmexten':{'type':Sequelize[_0x8ce1('0x2')]},'mohinterpret':{'type':Sequelize['STRING']},'mohsuggest':{'type':Sequelize['STRING']},'parkinglot':{'type':Sequelize[_0x8ce1('0x2')]},'description':{'type':Sequelize[_0x8ce1('0x2')]},'host':{'type':Sequelize[_0x8ce1('0x2')],'defaultValue':_0x8ce1('0x30')},'canreinvite':{'type':Sequelize[_0x8ce1('0x7')](_0x8ce1('0x1b'),'no',_0x8ce1('0x1c'),'update',_0x8ce1('0x31')),'defaultValue':'no'},'registry':{'type':Sequelize[_0x8ce1('0x2')]},'otherFields':{'type':Sequelize[_0x8ce1('0x2')]},'active':{'type':Sequelize[_0x8ce1('0x32')],'allowNull':![],'defaultValue':!![]},'t38pt_udptl':{'type':Sequelize[_0x8ce1('0x2')],'defaultValue':'no'}};
\ No newline at end of file
+var _0xb402=['split','rfc2833','info','shortinfo','inband','auto','yes','nonat','update','outgoing','force_rport,comedia','setDataValue','nat','ulaw;alaw;gsm','allow','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','always','accept','refuse','originate','uac','pai','certificate','active','passive','actpass','dynamic','update,nonat','BOOLEAN','sequelize','STRING','name','ENUM','friend','peer','from-voip-provider','ALLOWED_PASSED_SCREEN','ALLOWED_FAILED_SCREEN','ALLOWED','PROHIB_NOT_SCREENED','PROHIB_PASSED_SCREEN','PROHIB_FAILED_SCREEN','PROHIB','transport','join','getDataValue'];(function(_0x5cb1af,_0x4bdc8c){var _0x8d7940=function(_0x3db70a){while(--_0x3db70a){_0x5cb1af['push'](_0x5cb1af['shift']());}};_0x8d7940(++_0x4bdc8c);}(_0xb402,0x1c3));var _0x2b40=function(_0x305c31,_0x466b17){_0x305c31=_0x305c31-0x0;var _0x17f39f=_0xb402[_0x305c31];return _0x17f39f;};'use strict';var Sequelize=require(_0x2b40('0x0'));module['exports']={'name':{'type':Sequelize[_0x2b40('0x1')],'allowNull':![],'unique':_0x2b40('0x2'),'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'type':{'type':Sequelize[_0x2b40('0x3')](_0x2b40('0x4'),'user',_0x2b40('0x5')),'allowNull':![],'defaultValue':'friend'},'context':{'type':Sequelize[_0x2b40('0x1')],'allowNull':![],'defaultValue':_0x2b40('0x6')},'callingpres':{'type':Sequelize[_0x2b40('0x3')]('ALLOWED_NOT_SCREENED',_0x2b40('0x7'),_0x2b40('0x8'),_0x2b40('0x9'),_0x2b40('0xa'),_0x2b40('0xb'),_0x2b40('0xc'),_0x2b40('0xd'))},'deny':{'type':Sequelize[_0x2b40('0x1')]},'permit':{'type':Sequelize[_0x2b40('0x1')]},'secret':{'type':Sequelize['STRING']},'md5secret':{'type':Sequelize[_0x2b40('0x1')]},'remotesecret':{'type':Sequelize[_0x2b40('0x1')]},'transport':{'type':Sequelize['STRING'],'defaultValue':'udp','set':function(_0x21cf41){this['setDataValue'](_0x2b40('0xe'),_0x21cf41?_0x21cf41[_0x2b40('0xf')](','):null);},'get':function(){return this[_0x2b40('0x10')](_0x2b40('0xe'))?this['getDataValue'](_0x2b40('0xe'))[_0x2b40('0x11')](','):null;},'comment':'String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22udp\x22,\x20\x22tcp\x22]'},'dtmfmode':{'type':Sequelize[_0x2b40('0x3')](_0x2b40('0x12'),_0x2b40('0x13'),_0x2b40('0x14'),_0x2b40('0x15'),_0x2b40('0x16')),'defaultValue':'rfc2833'},'directmedia':{'type':Sequelize[_0x2b40('0x3')](_0x2b40('0x17'),'no',_0x2b40('0x18'),_0x2b40('0x19'),_0x2b40('0x1a')),'defaultValue':'no'},'directrtpsetup':{'type':Sequelize[_0x2b40('0x3')](_0x2b40('0x17'),'no'),'defaultValue':'no'},'directmediapermit':{'type':Sequelize[_0x2b40('0x1')]},'directmediadeny':{'type':Sequelize[_0x2b40('0x1')]},'nat':{'type':Sequelize[_0x2b40('0x1')],'defaultValue':_0x2b40('0x1b'),'set':function(_0x2aac42){this[_0x2b40('0x1c')]('nat',_0x2aac42?_0x2aac42['join'](','):null);},'get':function(){return this[_0x2b40('0x10')](_0x2b40('0x1d'))?this[_0x2b40('0x10')](_0x2b40('0x1d'))[_0x2b40('0x11')](','):null;},'comment':'String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22force_rport\x22,\x20\x22comedia\x22]'},'callgroup':{'type':Sequelize[_0x2b40('0x1')]},'namedcallgroup':{'type':Sequelize['STRING']},'pickupgroup':{'type':Sequelize[_0x2b40('0x1')]},'namedpickupgroup':{'type':Sequelize[_0x2b40('0x1')]},'language':{'type':Sequelize[_0x2b40('0x1')],'defaultValue':'en'},'tonezone':{'type':Sequelize[_0x2b40('0x1')],'allowNull':!![]},'disallow':{'type':Sequelize[_0x2b40('0x1')],'defaultValue':'all'},'allow':{'type':Sequelize[_0x2b40('0x1')],'allowNull':![],'defaultValue':_0x2b40('0x1e'),'set':function(_0x18b075){this[_0x2b40('0x1c')]('allow',_0x18b075?_0x18b075[_0x2b40('0xf')](';'):_0x2b40('0x1e'));},'get':function(){return this[_0x2b40('0x10')](_0x2b40('0x1f'))?this[_0x2b40('0x10')](_0x2b40('0x1f'))['split'](';'):null;},'comment':_0x2b40('0x20')},'autoframing':{'type':Sequelize[_0x2b40('0x3')](_0x2b40('0x17'),'no')},'insecure':{'type':Sequelize[_0x2b40('0x1')],'defaultValue':_0x2b40('0x21'),'set':function(_0x5854d4){this[_0x2b40('0x1c')](_0x2b40('0x22'),_0x5854d4?_0x5854d4[_0x2b40('0xf')](','):null);},'get':function(){return this[_0x2b40('0x10')](_0x2b40('0x22'))?this[_0x2b40('0x10')]('insecure')[_0x2b40('0x11')](','):null;},'comment':_0x2b40('0x23')},'trustrpid':{'type':Sequelize[_0x2b40('0x3')](_0x2b40('0x17'),'no'),'defaultValue':'no'},'trust_id_outbound':{'type':Sequelize['ENUM'](_0x2b40('0x17'),'no'),'defaultValue':'no'},'progressinband':{'type':Sequelize['ENUM'](_0x2b40('0x17'),'no',_0x2b40('0x24'))},'promiscredir':{'type':Sequelize[_0x2b40('0x3')](_0x2b40('0x17'),'no')},'useclientcode':{'type':Sequelize[_0x2b40('0x3')](_0x2b40('0x17'),'no')},'accountcode':{'type':Sequelize['INTEGER'](0xb)},'setvar':{'type':Sequelize[_0x2b40('0x1')]},'callerid':{'type':Sequelize[_0x2b40('0x1')],'defaultValue':_0x2b40('0x25')},'amaflags':{'type':Sequelize['STRING']},'callcounter':{'type':Sequelize[_0x2b40('0x3')](_0x2b40('0x17'),'no'),'defaultValue':'yes'},'busylevel':{'type':Sequelize[_0x2b40('0x26')](0xb)},'allowoverlap':{'type':Sequelize[_0x2b40('0x3')](_0x2b40('0x17'),'no')},'allowsubscribe':{'type':Sequelize[_0x2b40('0x3')](_0x2b40('0x17'),'no')},'allowtransfer':{'type':Sequelize['ENUM']('yes','no')},'ignoresdpversion':{'type':Sequelize['ENUM'](_0x2b40('0x17'),'no')},'subscribecontext':{'type':Sequelize[_0x2b40('0x1')]},'template':{'type':Sequelize[_0x2b40('0x1')]},'videosupport':{'type':Sequelize[_0x2b40('0x3')](_0x2b40('0x17'),'no',_0x2b40('0x27')),'defaultValue':'no'},'maxcallbitrate':{'type':Sequelize['INTEGER'](0xb)},'rfc2833compensate':{'type':Sequelize['ENUM'](_0x2b40('0x17'),'no')},'mailbox':{'type':Sequelize[_0x2b40('0x1')]},'session_timers':{'type':Sequelize[_0x2b40('0x3')](_0x2b40('0x28'),_0x2b40('0x29'),_0x2b40('0x2a'))},'session_expires':{'type':Sequelize['INTEGER'](0xb)},'session_minse':{'type':Sequelize[_0x2b40('0x26')](0xb)},'session_refresher':{'type':Sequelize[_0x2b40('0x3')](_0x2b40('0x2b'),'uas'),'defaultValue':'uas'},'t38pt_usertpsource':{'type':Sequelize['STRING']},'regexten':{'type':Sequelize[_0x2b40('0x1')]},'fromdomain':{'type':Sequelize[_0x2b40('0x1')]},'fromuser':{'type':Sequelize['STRING']},'port':{'type':Sequelize['INTEGER'](0x5)},'qualify':{'type':Sequelize[_0x2b40('0x3')]('yes','no'),'defaultValue':'yes'},'keepalive':{'type':Sequelize['INTEGER'](0xb)},'defaultip':{'type':Sequelize[_0x2b40('0x1')]},'defaultuser':{'type':Sequelize[_0x2b40('0x1')]},'rtptimeout':{'type':Sequelize[_0x2b40('0x26')](0xb)},'rtpholdtimeout':{'type':Sequelize[_0x2b40('0x26')](0xb)},'rtpkeepalive':{'type':Sequelize[_0x2b40('0x26')](0xb)},'sendrpid':{'type':Sequelize[_0x2b40('0x3')](_0x2b40('0x17'),'no',_0x2b40('0x2c')),'defaultValue':'no'},'outboundproxy':{'type':Sequelize['STRING']},'callbackextension':{'type':Sequelize['STRING']},'timert1':{'type':Sequelize[_0x2b40('0x26')](0xb)},'timerb':{'type':Sequelize[_0x2b40('0x26')](0xb)},'qualifyfreq':{'type':Sequelize[_0x2b40('0x26')](0xb)},'contactpermit':{'type':Sequelize[_0x2b40('0x1')]},'contactdeny':{'type':Sequelize[_0x2b40('0x1')]},'contactacl':{'type':Sequelize[_0x2b40('0x1')]},'unsolicited_mailbox':{'type':Sequelize['STRING']},'use_q850_reason':{'type':Sequelize['STRING']},'maxforwards':{'type':Sequelize[_0x2b40('0x26')](0xb)},'encryption':{'type':Sequelize['ENUM'](_0x2b40('0x17'),'no'),'defaultValue':'no'},'avpf':{'type':Sequelize[_0x2b40('0x3')](_0x2b40('0x17'),'no')},'force_avp':{'type':Sequelize['ENUM'](_0x2b40('0x17'),'no')},'icesupport':{'type':Sequelize[_0x2b40('0x3')](_0x2b40('0x17'),'no')},'dtlsenable':{'type':Sequelize[_0x2b40('0x3')](_0x2b40('0x17'),'no')},'dtlsverify':{'type':Sequelize['ENUM'](_0x2b40('0x17'),'no','fingerprint',_0x2b40('0x2d'))},'dtlsrekey':{'type':Sequelize[_0x2b40('0x26')](0xb)},'dtlscertfile':{'type':Sequelize['STRING']},'dtlsprivatekey':{'type':Sequelize[_0x2b40('0x1')]},'dtlscipher':{'type':Sequelize[_0x2b40('0x1')]},'dtlscafile':{'type':Sequelize['STRING']},'dtlscapath':{'type':Sequelize[_0x2b40('0x1')]},'dtlssetup':{'type':Sequelize[_0x2b40('0x3')](_0x2b40('0x2e'),_0x2b40('0x2f'),_0x2b40('0x30')),'allowNull':!![]},'dtlsfingerprint':{'type':Sequelize['STRING']},'usereqphone':{'type':Sequelize[_0x2b40('0x3')](_0x2b40('0x17'),'no'),'defaultValue':'no'},'recordonfeature':{'type':Sequelize[_0x2b40('0x1')]},'recordofffeature':{'type':Sequelize[_0x2b40('0x1')]},'call_limit':{'type':Sequelize[_0x2b40('0x26')](0xb),'defaultValue':0x3e8},'registertrying':{'type':Sequelize[_0x2b40('0x3')](_0x2b40('0x17'),'no')},'subscribemwi':{'type':Sequelize[_0x2b40('0x3')](_0x2b40('0x17'),'no')},'vmexten':{'type':Sequelize[_0x2b40('0x1')]},'mohinterpret':{'type':Sequelize[_0x2b40('0x1')]},'mohsuggest':{'type':Sequelize['STRING']},'parkinglot':{'type':Sequelize[_0x2b40('0x1')]},'description':{'type':Sequelize[_0x2b40('0x1')]},'host':{'type':Sequelize[_0x2b40('0x1')],'defaultValue':_0x2b40('0x31')},'canreinvite':{'type':Sequelize[_0x2b40('0x3')](_0x2b40('0x17'),'no',_0x2b40('0x18'),_0x2b40('0x19'),_0x2b40('0x32')),'defaultValue':'no'},'registry':{'type':Sequelize[_0x2b40('0x1')]},'otherFields':{'type':Sequelize[_0x2b40('0x1')]},'active':{'type':Sequelize[_0x2b40('0x33')],'allowNull':![],'defaultValue':!![]},'t38pt_udptl':{'type':Sequelize[_0x2b40('0x1')],'defaultValue':'no'}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3e74=['map','Trunk','rawAttributes','fieldName','key','model','keys','query','filters','intersection','fields','attributes','length','nolimit','order','sort','pick','where','type','filter','merge','options','includeAll','include','findAll','params','clone','find','get','omit','createdAt','body','updatedAt','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','create','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','join','root','server/files/templates/trunk.ejs','utf8','readFileSync','server/files/templates/registry.ejs','render','/etc/asterisk/sip_xcally_trunks.conf','registry','/etc/asterisk/sip_xcally_registers.conf','Reload','chan_sip.so','writeFileSync','eml-format','zip-dir','fast-json-patch','request-promise','mustache','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','jayson/promise','client','http','request','then','info','debug','Trunk,\x20%s,\x20%s,\x20%s','request\x20sent','error','code','Trunk,\x20%s,\x20%s','message','result','catch','sendStatus','status','json','undefined','count','offset','limit','set','Content-Range','apply','reject','update','destroy','Trunks','UserProfileResource','stack','name','send','index'];(function(_0x18cb09,_0x520017){var _0x430651=function(_0x187245){while(--_0x187245){_0x18cb09['push'](_0x18cb09['shift']());}};_0x430651(++_0x520017);}(_0x3e74,0x175));var _0x43e7=function(_0x54c539,_0x154091){_0x54c539=_0x54c539-0x0;var _0x4f9ed3=_0x3e74[_0x54c539];return _0x4f9ed3;};'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'];var jayson=require(_0x43e7('0x15'));var client=jayson[_0x43e7('0x16')][_0x43e7('0x17')]({'port':0x232a});function respondWithRpcPromise(_0x4e008c,_0x583d85,_0x2fcb36,_0x21fdd3){return new BPromise(function(_0x44b0bd,_0x51b974){var _0x5e641c=_0x21fdd3||client;return _0x5e641c[_0x43e7('0x18')](_0x4e008c,_0x2fcb36)[_0x43e7('0x19')](function(_0x203378){logger[_0x43e7('0x1a')]('Trunk,\x20%s,\x20%s',_0x583d85,'request\x20sent');logger[_0x43e7('0x1b')](_0x43e7('0x1c'),_0x583d85,_0x43e7('0x1d'),JSON['stringify'](_0x203378));if(_0x203378['error']){if(_0x203378[_0x43e7('0x1e')][_0x43e7('0x1f')]===0x1f4){logger[_0x43e7('0x1e')](_0x43e7('0x20'),_0x583d85,_0x203378[_0x43e7('0x1e')][_0x43e7('0x21')]);return _0x51b974(_0x203378[_0x43e7('0x1e')][_0x43e7('0x21')]);}logger[_0x43e7('0x1e')](_0x43e7('0x20'),_0x583d85,_0x203378[_0x43e7('0x1e')][_0x43e7('0x21')]);return _0x44b0bd(_0x203378['error'][_0x43e7('0x21')]);}else{logger[_0x43e7('0x1a')]('Trunk,\x20%s,\x20%s',_0x583d85,_0x43e7('0x1d'));_0x44b0bd(_0x203378[_0x43e7('0x22')][_0x43e7('0x21')]);}})[_0x43e7('0x23')](function(_0x4077fb){logger[_0x43e7('0x1e')]('Trunk,\x20%s,\x20%s',_0x583d85,_0x4077fb);_0x51b974(_0x4077fb);});});}function respondWithStatusCode(_0x454359,_0x4eea52){_0x4eea52=_0x4eea52||0xcc;return function(_0x4c9df3){if(_0x4c9df3){return _0x454359[_0x43e7('0x24')](_0x4eea52);}return _0x454359[_0x43e7('0x25')](_0x4eea52)['end']();};}function respondWithResult(_0x1f0673,_0x4ca5cf){_0x4ca5cf=_0x4ca5cf||0xc8;return function(_0x326dab){if(_0x326dab){return _0x1f0673['status'](_0x4ca5cf)[_0x43e7('0x26')](_0x326dab);}};}function respondWithFilteredResult(_0x1b5f50,_0x20888b){return function(_0x405f85){if(_0x405f85){var _0x51f4d7=typeof _0x20888b['offset']===_0x43e7('0x27')&&typeof _0x20888b['limit']===_0x43e7('0x27');var _0x40dc8f=_0x405f85[_0x43e7('0x28')];var _0xb1fc63=_0x51f4d7?0x0:_0x20888b['offset'];var _0x33a1a5=_0x51f4d7?_0x405f85[_0x43e7('0x28')]:_0x20888b[_0x43e7('0x29')]+_0x20888b[_0x43e7('0x2a')];var _0x442c3b;if(_0x33a1a5>=_0x40dc8f){_0x33a1a5=_0x40dc8f;_0x442c3b=0xc8;}else{_0x442c3b=0xce;}_0x1b5f50[_0x43e7('0x25')](_0x442c3b);return _0x1b5f50[_0x43e7('0x2b')](_0x43e7('0x2c'),_0xb1fc63+'-'+_0x33a1a5+'/'+_0x40dc8f)[_0x43e7('0x26')](_0x405f85);}return null;};}function patchUpdates(_0x35dbcd){return function(_0x17df44){try{jsonpatch[_0x43e7('0x2d')](_0x17df44,_0x35dbcd,!![]);}catch(_0x2bde44){return BPromise[_0x43e7('0x2e')](_0x2bde44);}return _0x17df44['save']();};}function saveUpdates(_0x238321,_0x44f6b0){return function(_0x3b8f78){if(_0x3b8f78){return _0x3b8f78[_0x43e7('0x2f')](_0x238321)[_0x43e7('0x19')](function(_0x4c8650){return _0x4c8650;});}return null;};}function removeEntity(_0x1eba65,_0x49b83d){return function(_0x30d47e){if(_0x30d47e){return _0x30d47e[_0x43e7('0x30')]()['then'](function(){var _0x5a7342=_0x30d47e['get']({'plain':!![]});var _0xf8320=_0x43e7('0x31');return db[_0x43e7('0x32')][_0x43e7('0x30')]({'where':{'type':_0xf8320,'resourceId':_0x5a7342['id']}})[_0x43e7('0x19')](function(){return _0x30d47e;});})[_0x43e7('0x19')](function(){_0x1eba65['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x4ac23d,_0x59e5b2){return function(_0x4e8e86){if(!_0x4e8e86){_0x4ac23d['sendStatus'](0x194);}return _0x4e8e86;};}function handleError(_0x5cb753,_0x14d888){_0x14d888=_0x14d888||0x1f4;return function(_0x49cda6){logger[_0x43e7('0x1e')](_0x49cda6[_0x43e7('0x33')]);if(_0x49cda6[_0x43e7('0x34')]){delete _0x49cda6[_0x43e7('0x34')];}_0x5cb753[_0x43e7('0x25')](_0x14d888)[_0x43e7('0x35')](_0x49cda6);};}exports[_0x43e7('0x36')]=function(_0x4f1a5f,_0x5332d9){var _0x5d84f4={},_0xfa0474={},_0xfe70e9={'count':0x0,'rows':[]};var _0x199ff6=_[_0x43e7('0x37')](db[_0x43e7('0x38')][_0x43e7('0x39')],function(_0x1d4589){return{'name':_0x1d4589[_0x43e7('0x3a')],'type':_0x1d4589['type'][_0x43e7('0x3b')]};});_0xfa0474[_0x43e7('0x3c')]=_['map'](_0x199ff6,_0x43e7('0x34'));_0xfa0474['query']=_[_0x43e7('0x3d')](_0x4f1a5f[_0x43e7('0x3e')]);_0xfa0474[_0x43e7('0x3f')]=_[_0x43e7('0x40')](_0xfa0474[_0x43e7('0x3c')],_0xfa0474[_0x43e7('0x3e')]);_0x5d84f4['attributes']=_['intersection'](_0xfa0474[_0x43e7('0x3c')],qs[_0x43e7('0x41')](_0x4f1a5f[_0x43e7('0x3e')][_0x43e7('0x41')]));_0x5d84f4[_0x43e7('0x42')]=_0x5d84f4['attributes'][_0x43e7('0x43')]?_0x5d84f4[_0x43e7('0x42')]:_0xfa0474['model'];if(!_0x4f1a5f[_0x43e7('0x3e')]['hasOwnProperty'](_0x43e7('0x44'))){_0x5d84f4['limit']=qs[_0x43e7('0x2a')](_0x4f1a5f[_0x43e7('0x3e')][_0x43e7('0x2a')]);_0x5d84f4[_0x43e7('0x29')]=qs['offset'](_0x4f1a5f['query'][_0x43e7('0x29')]);}_0x5d84f4[_0x43e7('0x45')]=qs[_0x43e7('0x46')](_0x4f1a5f[_0x43e7('0x3e')]['sort']);_0x5d84f4['where']=qs['filters'](_[_0x43e7('0x47')](_0x4f1a5f['query'],_0xfa0474[_0x43e7('0x3f')]),_0x199ff6);if(_0x4f1a5f['query']['filter']){_0x5d84f4[_0x43e7('0x48')]=_['merge'](_0x5d84f4[_0x43e7('0x48')],{'$or':_[_0x43e7('0x37')](_0x199ff6,function(_0x257bd8){if(_0x257bd8[_0x43e7('0x49')]!=='VIRTUAL'){var _0x91f1e4={};_0x91f1e4[_0x257bd8[_0x43e7('0x34')]]={'$like':'%'+_0x4f1a5f[_0x43e7('0x3e')][_0x43e7('0x4a')]+'%'};return _0x91f1e4;}})});}_0x5d84f4=_[_0x43e7('0x4b')]({},_0x5d84f4,_0x4f1a5f[_0x43e7('0x4c')]);var _0x51eef4={'where':_0x5d84f4['where']};return db[_0x43e7('0x38')][_0x43e7('0x28')](_0x51eef4)[_0x43e7('0x19')](function(_0x4c00a8){_0xfe70e9['count']=_0x4c00a8;if(_0x4f1a5f['query'][_0x43e7('0x4d')]){_0x5d84f4[_0x43e7('0x4e')]=[{'all':!![]}];}return db['Trunk'][_0x43e7('0x4f')](_0x5d84f4);})[_0x43e7('0x19')](function(_0x3c96fe){_0xfe70e9['rows']=_0x3c96fe;return _0xfe70e9;})['then'](respondWithFilteredResult(_0x5332d9,_0x5d84f4))['catch'](handleError(_0x5332d9,null));};exports['show']=function(_0x214e7e,_0xe955fc){var _0x52fea5={'raw':![],'where':{'id':_0x214e7e[_0x43e7('0x50')]['id']}},_0x23e7cb={};_0x23e7cb[_0x43e7('0x3c')]=_[_0x43e7('0x3d')](db['Trunk'][_0x43e7('0x39')]);_0x23e7cb['query']=_['keys'](_0x214e7e[_0x43e7('0x3e')]);_0x23e7cb[_0x43e7('0x3f')]=_[_0x43e7('0x40')](_0x23e7cb[_0x43e7('0x3c')],_0x23e7cb[_0x43e7('0x3e')]);_0x52fea5[_0x43e7('0x42')]=_[_0x43e7('0x40')](_0x23e7cb[_0x43e7('0x3c')],qs[_0x43e7('0x41')](_0x214e7e[_0x43e7('0x3e')]['fields']));_0x52fea5[_0x43e7('0x42')]=_0x52fea5[_0x43e7('0x42')]['length']?_0x52fea5[_0x43e7('0x42')]:_0x23e7cb['model'];if(_0x214e7e[_0x43e7('0x3e')][_0x43e7('0x4d')]){_0x52fea5[_0x43e7('0x4e')]=[{'all':!![]}];}_0x52fea5=_[_0x43e7('0x4b')]({},_0x52fea5,_0x214e7e[_0x43e7('0x4c')]);return db['Trunk']['find'](_0x52fea5)[_0x43e7('0x19')](handleEntityNotFound(_0xe955fc,null))[_0x43e7('0x19')](respondWithResult(_0xe955fc,null))[_0x43e7('0x23')](handleError(_0xe955fc,null));};exports[_0x43e7('0x51')]=function(_0x23d835,_0x25bb44){var _0xa47464={'where':{'id':_0x23d835[_0x43e7('0x50')]['id']}},_0x44f8a0={};_0x44f8a0[_0x43e7('0x3c')]=_[_0x43e7('0x3d')](db['Trunk'][_0x43e7('0x39')]);_0xa47464[_0x43e7('0x42')]=_['intersection'](_0x44f8a0[_0x43e7('0x3c')],qs[_0x43e7('0x41')](_0x23d835[_0x43e7('0x3e')]['fields']));_0xa47464['attributes']=_0xa47464[_0x43e7('0x42')][_0x43e7('0x43')]?_0xa47464['attributes']:_0x44f8a0[_0x43e7('0x3c')];if(_0x23d835['query']['includeAll']){_0xa47464[_0x43e7('0x4e')]=[{'all':!![]}];}_0xa47464=_[_0x43e7('0x4b')]({},_0xa47464,_0x23d835[_0x43e7('0x4c')]);return db[_0x43e7('0x38')][_0x43e7('0x52')](_0xa47464)['then'](handleEntityNotFound(_0x25bb44,null))[_0x43e7('0x19')](function(_0xdb9fbe){if(_0xdb9fbe){var _0x4d89bd=_0xdb9fbe[_0x43e7('0x53')]({'plain':!![]});_0x4d89bd=qs[_0x43e7('0x54')](_0x4d89bd,['id',_0x43e7('0x55'),'updatedAt']);_0x23d835['body']=_['omit'](_0x23d835[_0x43e7('0x56')],['id',_0x43e7('0x55'),_0x43e7('0x57')]);return db[_0x43e7('0x38')]['create'](_['merge'](_0x4d89bd,_0x23d835[_0x43e7('0x56')]),{'include':_0x23d835[_0x43e7('0x3e')][_0x43e7('0x4d')]?[{'all':!![]}]:undefined})[_0x43e7('0x19')](function(_0x5ea0db){var _0x4438c0=_0x23d835[_0x43e7('0x58')][_0x43e7('0x53')]({'plain':!![]});if(!_0x4438c0)throw new Error(_0x43e7('0x59'));if(_0x4438c0[_0x43e7('0x5a')]===_0x43e7('0x58')){var _0x4665db=_0x5ea0db[_0x43e7('0x53')]({'plain':!![]});var _0x406155=_0x43e7('0x31');return db[_0x43e7('0x5b')]['find']({'where':{'name':_0x406155,'userProfileId':_0x4438c0['userProfileId']},'raw':!![]})[_0x43e7('0x19')](function(_0x58a3a8){if(_0x58a3a8&&_0x58a3a8['autoAssociation']===0x0){return db['UserProfileResource'][_0x43e7('0x5c')]({'name':_0x4665db[_0x43e7('0x34')],'resourceId':_0x4665db['id'],'type':_0x58a3a8['name'],'sectionId':_0x58a3a8['id']},{})[_0x43e7('0x19')](function(){return _0x5ea0db;});}else{return _0x5ea0db;}})[_0x43e7('0x23')](function(_0x1d8438){logger['error'](_0x43e7('0x5d'),_0x1d8438);throw _0x1d8438;});}return _0x5ea0db;});}})[_0x43e7('0x19')](respondWithResult(_0x25bb44,0xc9))[_0x43e7('0x23')](handleError(_0x25bb44,null));};exports[_0x43e7('0x5c')]=function(_0x2f43d7,_0x472a19,_0x1e02fa){var _0x515f01;return db[_0x43e7('0x38')][_0x43e7('0x5c')](_0x2f43d7[_0x43e7('0x56')],{'raw':!![]})['then'](function(_0x56b06d){_0x515f01=_0x56b06d;return db[_0x43e7('0x38')]['findAll']({'raw':!![]});})['then'](function(_0x1b793d){var _0x154e47=fs['readFileSync'](path[_0x43e7('0x5e')](config[_0x43e7('0x5f')],_0x43e7('0x60')),_0x43e7('0x61'));var _0x16499c=fs[_0x43e7('0x62')](path[_0x43e7('0x5e')](config['root'],_0x43e7('0x63')),_0x43e7('0x61'));var _0x4e5956=ejs[_0x43e7('0x64')](_0x154e47,{'trunks':_0x1b793d||[]});fs['writeFileSync'](_0x43e7('0x65'),_0x4e5956);if(_0x515f01[_0x43e7('0x66')]){var _0x37301b=ejs[_0x43e7('0x64')](_0x16499c,{'trunks':_0x1b793d||[]});fs['writeFileSync'](_0x43e7('0x67'),_0x37301b);}})[_0x43e7('0x19')](function(){return respondWithRpcPromise(_0x43e7('0x68'),'create',{'module':_0x43e7('0x69')});})[_0x43e7('0x19')](function(){var _0x219dc6=_0x2f43d7[_0x43e7('0x58')][_0x43e7('0x53')]({'plain':!![]});if(!_0x219dc6)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x219dc6[_0x43e7('0x5a')]===_0x43e7('0x58')){var _0x35d133=_0x515f01[_0x43e7('0x53')]({'plain':!![]});return db[_0x43e7('0x5b')][_0x43e7('0x52')]({'where':{'name':_0x43e7('0x31'),'userProfileId':_0x219dc6['userProfileId']},'raw':!![]})['then'](function(_0x405faa){if(_0x405faa&&_0x405faa['autoAssociation']===0x0){return db['UserProfileResource']['create']({'name':_0x35d133[_0x43e7('0x34')],'resourceId':_0x35d133['id'],'type':_0x405faa[_0x43e7('0x34')],'sectionId':_0x405faa['id']},{})[_0x43e7('0x19')](function(){return _0x515f01;});}else{return _0x515f01;}})[_0x43e7('0x23')](function(_0x18713b){logger[_0x43e7('0x1e')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x18713b);throw _0x18713b;});}return _0x515f01;})[_0x43e7('0x19')](respondWithResult(_0x472a19,0xc9))[_0x43e7('0x23')](handleError(_0x472a19,null));};exports[_0x43e7('0x2f')]=function(_0x5b4c76,_0x2abca0,_0xea84ec){var _0x184ae3;return db[_0x43e7('0x38')][_0x43e7('0x52')]({'where':{'id':_0x5b4c76[_0x43e7('0x50')]['id']}})[_0x43e7('0x19')](handleEntityNotFound(_0x2abca0,null))[_0x43e7('0x19')](saveUpdates(_0x5b4c76['body'],null))['then'](function(_0x55990c){if(_0x55990c){_0x184ae3=_0x55990c;return db[_0x43e7('0x38')][_0x43e7('0x4f')]({'raw':!![]});}})['then'](function(_0x3fe23f){if(_0x3fe23f){var _0x39a787=fs[_0x43e7('0x62')](path[_0x43e7('0x5e')](config['root'],'server/files/templates/trunk.ejs'),'utf8');var _0x177a7a=fs[_0x43e7('0x62')](path['join'](config['root'],_0x43e7('0x63')),_0x43e7('0x61'));var _0x3b7e5b=ejs['render'](_0x39a787,{'trunks':_0x3fe23f||[]});fs[_0x43e7('0x6a')](_0x43e7('0x65'),_0x3b7e5b);var _0x401654=ejs[_0x43e7('0x64')](_0x177a7a,{'trunks':_0x3fe23f||[]});fs['writeFileSync'](_0x43e7('0x67'),_0x401654);return respondWithRpcPromise('Reload',_0x43e7('0x2f'),{'module':_0x43e7('0x69')});}return null;})[_0x43e7('0x19')](function(_0x90667c){if(_0x90667c){return _0x184ae3;}})[_0x43e7('0x19')](respondWithResult(_0x2abca0,null))[_0x43e7('0x23')](handleError(_0x2abca0,null));};exports[_0x43e7('0x30')]=function(_0x5e8d4e,_0x109c86,_0x40257e){var _0x1aea4e;return db[_0x43e7('0x38')]['find']({'where':{'id':_0x5e8d4e['params']['id']}})['then'](handleEntityNotFound(_0x109c86,null))[_0x43e7('0x19')](removeEntity(_0x109c86,null))['then'](function(){return db[_0x43e7('0x38')][_0x43e7('0x4f')]({'raw':!![]});})[_0x43e7('0x19')](function(_0x7387f6){var _0xa75254=fs[_0x43e7('0x62')](path[_0x43e7('0x5e')](config[_0x43e7('0x5f')],_0x43e7('0x60')),_0x43e7('0x61'));var _0x3de22e=fs['readFileSync'](path[_0x43e7('0x5e')](config[_0x43e7('0x5f')],_0x43e7('0x63')),_0x43e7('0x61'));var _0x206e54=ejs['render'](_0xa75254,{'trunks':_0x7387f6});var _0x5e04ec=ejs[_0x43e7('0x64')](_0x3de22e,{'trunks':_0x7387f6});fs[_0x43e7('0x6a')]('/etc/asterisk/sip_xcally_trunks.conf',_0x206e54);fs[_0x43e7('0x6a')](_0x43e7('0x67'),_0x5e04ec);return respondWithRpcPromise('Reload','destroy',{'module':_0x43e7('0x69')});})[_0x43e7('0x23')](handleError(_0x109c86,null));};
\ No newline at end of file
+var _0xf3cd=['length','limit','sort','where','filter','merge','options','Trunk','includeAll','include','findAll','show','find','clone','createdAt','updatedAt','omit','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Trunks','UserProfileSection','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','readFileSync','join','root','server/files/templates/trunk.ejs','server/files/templates/registry.ejs','utf8','writeFileSync','/etc/asterisk/sip_xcally_trunks.conf','render','/etc/asterisk/sip_xcally_registers.conf','Reload','chan_sip.so','userProfileId','autoAssociation','params','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','jayson/promise','client','http','request','then','info','Trunk,\x20%s,\x20%s','request\x20sent','debug','Trunk,\x20%s,\x20%s,\x20%s','error','code','message','result','catch','sendStatus','status','end','undefined','offset','count','json','reject','save','update','get','UserProfileResource','destroy','name','send','index','map','rawAttributes','type','model','query','keys','filters','intersection','attributes','fields'];(function(_0x4c20ce,_0x3e458b){var _0x23572e=function(_0x3966f5){while(--_0x3966f5){_0x4c20ce['push'](_0x4c20ce['shift']());}};_0x23572e(++_0x3e458b);}(_0xf3cd,0xfe));var _0xdf3c=function(_0x56085e,_0x5c69e9){_0x56085e=_0x56085e-0x0;var _0x4de130=_0xf3cd[_0x56085e];return _0x4de130;};'use strict';var emlformat=require(_0xdf3c('0x0'));var rimraf=require(_0xdf3c('0x1'));var zipdir=require(_0xdf3c('0x2'));var jsonpatch=require(_0xdf3c('0x3'));var rp=require(_0xdf3c('0x4'));var moment=require(_0xdf3c('0x5'));var BPromise=require('bluebird');var Mustache=require(_0xdf3c('0x6'));var util=require(_0xdf3c('0x7'));var path=require(_0xdf3c('0x8'));var sox=require('sox');var csv=require(_0xdf3c('0x9'));var ejs=require(_0xdf3c('0xa'));var fs=require('fs');var fs_extra=require(_0xdf3c('0xb'));var _=require(_0xdf3c('0xc'));var squel=require(_0xdf3c('0xd'));var crypto=require(_0xdf3c('0xe'));var jsforce=require('jsforce');var deskjs=require(_0xdf3c('0xf'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xdf3c('0x10'));var Redis=require(_0xdf3c('0x11'));var authService=require('../../components/auth/service');var qs=require(_0xdf3c('0x12'));var as=require(_0xdf3c('0x13'));var hardwareService=require(_0xdf3c('0x14'));var logger=require(_0xdf3c('0x15'))(_0xdf3c('0x16'));var utils=require(_0xdf3c('0x17'));var config=require(_0xdf3c('0x18'));var licenseUtil=require(_0xdf3c('0x19'));var db=require('../../mysqldb')['db'];var jayson=require(_0xdf3c('0x1a'));var client=jayson[_0xdf3c('0x1b')][_0xdf3c('0x1c')]({'port':0x232a});function respondWithRpcPromise(_0x17319c,_0x59e431,_0x2ae4ad,_0x461079){return new BPromise(function(_0x13ea5f,_0x5e0047){var _0x18aafa=_0x461079||client;return _0x18aafa[_0xdf3c('0x1d')](_0x17319c,_0x2ae4ad)[_0xdf3c('0x1e')](function(_0x4274fd){logger[_0xdf3c('0x1f')](_0xdf3c('0x20'),_0x59e431,_0xdf3c('0x21'));logger[_0xdf3c('0x22')](_0xdf3c('0x23'),_0x59e431,_0xdf3c('0x21'),JSON['stringify'](_0x4274fd));if(_0x4274fd[_0xdf3c('0x24')]){if(_0x4274fd[_0xdf3c('0x24')][_0xdf3c('0x25')]===0x1f4){logger[_0xdf3c('0x24')](_0xdf3c('0x20'),_0x59e431,_0x4274fd[_0xdf3c('0x24')][_0xdf3c('0x26')]);return _0x5e0047(_0x4274fd[_0xdf3c('0x24')][_0xdf3c('0x26')]);}logger[_0xdf3c('0x24')](_0xdf3c('0x20'),_0x59e431,_0x4274fd[_0xdf3c('0x24')][_0xdf3c('0x26')]);return _0x13ea5f(_0x4274fd['error']['message']);}else{logger[_0xdf3c('0x1f')]('Trunk,\x20%s,\x20%s',_0x59e431,_0xdf3c('0x21'));_0x13ea5f(_0x4274fd[_0xdf3c('0x27')][_0xdf3c('0x26')]);}})[_0xdf3c('0x28')](function(_0x33652f){logger[_0xdf3c('0x24')]('Trunk,\x20%s,\x20%s',_0x59e431,_0x33652f);_0x5e0047(_0x33652f);});});}function respondWithStatusCode(_0x22a164,_0x213d75){_0x213d75=_0x213d75||0xcc;return function(_0x13e3ca){if(_0x13e3ca){return _0x22a164[_0xdf3c('0x29')](_0x213d75);}return _0x22a164[_0xdf3c('0x2a')](_0x213d75)[_0xdf3c('0x2b')]();};}function respondWithResult(_0xef54cb,_0x155f54){_0x155f54=_0x155f54||0xc8;return function(_0x18cb46){if(_0x18cb46){return _0xef54cb[_0xdf3c('0x2a')](_0x155f54)['json'](_0x18cb46);}};}function respondWithFilteredResult(_0xd284d7,_0x153daa){return function(_0x4b57a4){if(_0x4b57a4){var _0xdc8962=typeof _0x153daa['offset']==='undefined'&&typeof _0x153daa['limit']===_0xdf3c('0x2c');var _0x186bba=_0x4b57a4['count'];var _0x5c3b5a=_0xdc8962?0x0:_0x153daa[_0xdf3c('0x2d')];var _0x1f2ce4=_0xdc8962?_0x4b57a4[_0xdf3c('0x2e')]:_0x153daa[_0xdf3c('0x2d')]+_0x153daa['limit'];var _0x43ce06;if(_0x1f2ce4>=_0x186bba){_0x1f2ce4=_0x186bba;_0x43ce06=0xc8;}else{_0x43ce06=0xce;}_0xd284d7[_0xdf3c('0x2a')](_0x43ce06);return _0xd284d7['set']('Content-Range',_0x5c3b5a+'-'+_0x1f2ce4+'/'+_0x186bba)[_0xdf3c('0x2f')](_0x4b57a4);}return null;};}function patchUpdates(_0x46f0e3){return function(_0x36937e){try{jsonpatch['apply'](_0x36937e,_0x46f0e3,!![]);}catch(_0x2355f6){return BPromise[_0xdf3c('0x30')](_0x2355f6);}return _0x36937e[_0xdf3c('0x31')]();};}function saveUpdates(_0x10099e,_0x575ae1){return function(_0xda0de0){if(_0xda0de0){return _0xda0de0[_0xdf3c('0x32')](_0x10099e)['then'](function(_0x40ae3d){return _0x40ae3d;});}return null;};}function removeEntity(_0x3daeda,_0x217a65){return function(_0x2287f){if(_0x2287f){return _0x2287f['destroy']()[_0xdf3c('0x1e')](function(){var _0x360d5c=_0x2287f[_0xdf3c('0x33')]({'plain':!![]});var _0x3b9ce8='Trunks';return db[_0xdf3c('0x34')][_0xdf3c('0x35')]({'where':{'type':_0x3b9ce8,'resourceId':_0x360d5c['id']}})['then'](function(){return _0x2287f;});})['then'](function(){_0x3daeda[_0xdf3c('0x2a')](0xcc)['end']();});}};}function handleEntityNotFound(_0x216115,_0x5e8130){return function(_0x57faba){if(!_0x57faba){_0x216115['sendStatus'](0x194);}return _0x57faba;};}function handleError(_0x44a478,_0x2ee9ad){_0x2ee9ad=_0x2ee9ad||0x1f4;return function(_0x1d0b8a){logger[_0xdf3c('0x24')](_0x1d0b8a['stack']);if(_0x1d0b8a['name']){delete _0x1d0b8a[_0xdf3c('0x36')];}_0x44a478['status'](_0x2ee9ad)[_0xdf3c('0x37')](_0x1d0b8a);};}exports[_0xdf3c('0x38')]=function(_0x3628ae,_0xcdd731){var _0x1004e9={},_0x1e0cf2={},_0x1c7335={'count':0x0,'rows':[]};var _0x809f3d=_[_0xdf3c('0x39')](db['Trunk'][_0xdf3c('0x3a')],function(_0x54e689){return{'name':_0x54e689['fieldName'],'type':_0x54e689[_0xdf3c('0x3b')]['key']};});_0x1e0cf2[_0xdf3c('0x3c')]=_['map'](_0x809f3d,_0xdf3c('0x36'));_0x1e0cf2[_0xdf3c('0x3d')]=_[_0xdf3c('0x3e')](_0x3628ae[_0xdf3c('0x3d')]);_0x1e0cf2[_0xdf3c('0x3f')]=_[_0xdf3c('0x40')](_0x1e0cf2[_0xdf3c('0x3c')],_0x1e0cf2[_0xdf3c('0x3d')]);_0x1004e9[_0xdf3c('0x41')]=_[_0xdf3c('0x40')](_0x1e0cf2[_0xdf3c('0x3c')],qs[_0xdf3c('0x42')](_0x3628ae['query']['fields']));_0x1004e9[_0xdf3c('0x41')]=_0x1004e9['attributes'][_0xdf3c('0x43')]?_0x1004e9[_0xdf3c('0x41')]:_0x1e0cf2[_0xdf3c('0x3c')];if(!_0x3628ae[_0xdf3c('0x3d')]['hasOwnProperty']('nolimit')){_0x1004e9[_0xdf3c('0x44')]=qs[_0xdf3c('0x44')](_0x3628ae[_0xdf3c('0x3d')]['limit']);_0x1004e9[_0xdf3c('0x2d')]=qs[_0xdf3c('0x2d')](_0x3628ae[_0xdf3c('0x3d')][_0xdf3c('0x2d')]);}_0x1004e9['order']=qs[_0xdf3c('0x45')](_0x3628ae[_0xdf3c('0x3d')][_0xdf3c('0x45')]);_0x1004e9[_0xdf3c('0x46')]=qs[_0xdf3c('0x3f')](_['pick'](_0x3628ae[_0xdf3c('0x3d')],_0x1e0cf2[_0xdf3c('0x3f')]),_0x809f3d);if(_0x3628ae[_0xdf3c('0x3d')][_0xdf3c('0x47')]){_0x1004e9[_0xdf3c('0x46')]=_[_0xdf3c('0x48')](_0x1004e9['where'],{'$or':_['map'](_0x809f3d,function(_0x2c6c6d){if(_0x2c6c6d[_0xdf3c('0x3b')]!=='VIRTUAL'){var _0x5c9885={};_0x5c9885[_0x2c6c6d[_0xdf3c('0x36')]]={'$like':'%'+_0x3628ae[_0xdf3c('0x3d')][_0xdf3c('0x47')]+'%'};return _0x5c9885;}})});}_0x1004e9=_[_0xdf3c('0x48')]({},_0x1004e9,_0x3628ae[_0xdf3c('0x49')]);var _0x2dbf54={'where':_0x1004e9[_0xdf3c('0x46')]};return db[_0xdf3c('0x4a')][_0xdf3c('0x2e')](_0x2dbf54)['then'](function(_0x129c2a){_0x1c7335[_0xdf3c('0x2e')]=_0x129c2a;if(_0x3628ae[_0xdf3c('0x3d')][_0xdf3c('0x4b')]){_0x1004e9[_0xdf3c('0x4c')]=[{'all':!![]}];}return db[_0xdf3c('0x4a')][_0xdf3c('0x4d')](_0x1004e9);})['then'](function(_0x1751a8){_0x1c7335['rows']=_0x1751a8;return _0x1c7335;})[_0xdf3c('0x1e')](respondWithFilteredResult(_0xcdd731,_0x1004e9))['catch'](handleError(_0xcdd731,null));};exports[_0xdf3c('0x4e')]=function(_0x28144f,_0x2ec575){var _0x94c5b9={'raw':![],'where':{'id':_0x28144f['params']['id']}},_0x5eef94={};_0x5eef94['model']=_[_0xdf3c('0x3e')](db['Trunk'][_0xdf3c('0x3a')]);_0x5eef94[_0xdf3c('0x3d')]=_[_0xdf3c('0x3e')](_0x28144f[_0xdf3c('0x3d')]);_0x5eef94[_0xdf3c('0x3f')]=_['intersection'](_0x5eef94['model'],_0x5eef94[_0xdf3c('0x3d')]);_0x94c5b9[_0xdf3c('0x41')]=_['intersection'](_0x5eef94[_0xdf3c('0x3c')],qs[_0xdf3c('0x42')](_0x28144f[_0xdf3c('0x3d')][_0xdf3c('0x42')]));_0x94c5b9[_0xdf3c('0x41')]=_0x94c5b9[_0xdf3c('0x41')][_0xdf3c('0x43')]?_0x94c5b9['attributes']:_0x5eef94['model'];if(_0x28144f[_0xdf3c('0x3d')][_0xdf3c('0x4b')]){_0x94c5b9[_0xdf3c('0x4c')]=[{'all':!![]}];}_0x94c5b9=_[_0xdf3c('0x48')]({},_0x94c5b9,_0x28144f[_0xdf3c('0x49')]);return db[_0xdf3c('0x4a')][_0xdf3c('0x4f')](_0x94c5b9)[_0xdf3c('0x1e')](handleEntityNotFound(_0x2ec575,null))[_0xdf3c('0x1e')](respondWithResult(_0x2ec575,null))[_0xdf3c('0x28')](handleError(_0x2ec575,null));};exports[_0xdf3c('0x50')]=function(_0x4cb28f,_0x1eebcf){var _0x47cb74={'where':{'id':_0x4cb28f['params']['id']}},_0x5e7247={};_0x5e7247['model']=_['keys'](db[_0xdf3c('0x4a')][_0xdf3c('0x3a')]);_0x47cb74['attributes']=_[_0xdf3c('0x40')](_0x5e7247[_0xdf3c('0x3c')],qs['fields'](_0x4cb28f[_0xdf3c('0x3d')][_0xdf3c('0x42')]));_0x47cb74[_0xdf3c('0x41')]=_0x47cb74[_0xdf3c('0x41')][_0xdf3c('0x43')]?_0x47cb74[_0xdf3c('0x41')]:_0x5e7247[_0xdf3c('0x3c')];if(_0x4cb28f[_0xdf3c('0x3d')][_0xdf3c('0x4b')]){_0x47cb74[_0xdf3c('0x4c')]=[{'all':!![]}];}_0x47cb74=_[_0xdf3c('0x48')]({},_0x47cb74,_0x4cb28f['options']);return db[_0xdf3c('0x4a')][_0xdf3c('0x4f')](_0x47cb74)[_0xdf3c('0x1e')](handleEntityNotFound(_0x1eebcf,null))['then'](function(_0x245c68){if(_0x245c68){var _0x3e327e=_0x245c68[_0xdf3c('0x33')]({'plain':!![]});_0x3e327e=qs['omit'](_0x3e327e,['id',_0xdf3c('0x51'),_0xdf3c('0x52')]);_0x4cb28f['body']=_[_0xdf3c('0x53')](_0x4cb28f['body'],['id',_0xdf3c('0x51'),_0xdf3c('0x52')]);return db[_0xdf3c('0x4a')][_0xdf3c('0x54')](_[_0xdf3c('0x48')](_0x3e327e,_0x4cb28f[_0xdf3c('0x55')]),{'include':_0x4cb28f[_0xdf3c('0x3d')][_0xdf3c('0x4b')]?[{'all':!![]}]:undefined})[_0xdf3c('0x1e')](function(_0x330730){var _0x283be2=_0x4cb28f[_0xdf3c('0x56')][_0xdf3c('0x33')]({'plain':!![]});if(!_0x283be2)throw new Error(_0xdf3c('0x57'));if(_0x283be2[_0xdf3c('0x58')]===_0xdf3c('0x56')){var _0xd7fb2d=_0x330730['get']({'plain':!![]});var _0x4dade5=_0xdf3c('0x59');return db[_0xdf3c('0x5a')][_0xdf3c('0x4f')]({'where':{'name':_0x4dade5,'userProfileId':_0x283be2['userProfileId']},'raw':!![]})[_0xdf3c('0x1e')](function(_0x5f2765){if(_0x5f2765&&_0x5f2765['autoAssociation']===0x0){return db[_0xdf3c('0x34')][_0xdf3c('0x54')]({'name':_0xd7fb2d[_0xdf3c('0x36')],'resourceId':_0xd7fb2d['id'],'type':_0x5f2765[_0xdf3c('0x36')],'sectionId':_0x5f2765['id']},{})[_0xdf3c('0x1e')](function(){return _0x330730;});}else{return _0x330730;}})[_0xdf3c('0x28')](function(_0x1a31d7){logger[_0xdf3c('0x24')](_0xdf3c('0x5b'),_0x1a31d7);throw _0x1a31d7;});}return _0x330730;});}})[_0xdf3c('0x1e')](respondWithResult(_0x1eebcf,0xc9))[_0xdf3c('0x28')](handleError(_0x1eebcf,null));};exports[_0xdf3c('0x54')]=function(_0x34000c,_0x4be79a,_0x3febac){var _0x2cb0f5;return db[_0xdf3c('0x4a')][_0xdf3c('0x54')](_0x34000c[_0xdf3c('0x55')],{'raw':!![]})['then'](function(_0x18bf4f){_0x2cb0f5=_0x18bf4f;return db[_0xdf3c('0x4a')][_0xdf3c('0x4d')]({'raw':!![]});})[_0xdf3c('0x1e')](function(_0x1efa9c){var _0x50805c=fs[_0xdf3c('0x5c')](path[_0xdf3c('0x5d')](config[_0xdf3c('0x5e')],_0xdf3c('0x5f')),'utf8');var _0xb867a1=fs[_0xdf3c('0x5c')](path[_0xdf3c('0x5d')](config[_0xdf3c('0x5e')],_0xdf3c('0x60')),_0xdf3c('0x61'));var _0x19c851=ejs['render'](_0x50805c,{'trunks':_0x1efa9c||[]});fs[_0xdf3c('0x62')](_0xdf3c('0x63'),_0x19c851);if(_0x2cb0f5['registry']){var _0x52a2e1=ejs[_0xdf3c('0x64')](_0xb867a1,{'trunks':_0x1efa9c||[]});fs[_0xdf3c('0x62')](_0xdf3c('0x65'),_0x52a2e1);}})[_0xdf3c('0x1e')](function(){return respondWithRpcPromise(_0xdf3c('0x66'),_0xdf3c('0x54'),{'module':_0xdf3c('0x67')});})[_0xdf3c('0x1e')](function(){var _0x5e6606=_0x34000c[_0xdf3c('0x56')][_0xdf3c('0x33')]({'plain':!![]});if(!_0x5e6606)throw new Error(_0xdf3c('0x57'));if(_0x5e6606['role']===_0xdf3c('0x56')){var _0x354ff4=_0x2cb0f5[_0xdf3c('0x33')]({'plain':!![]});return db['UserProfileSection'][_0xdf3c('0x4f')]({'where':{'name':_0xdf3c('0x59'),'userProfileId':_0x5e6606[_0xdf3c('0x68')]},'raw':!![]})[_0xdf3c('0x1e')](function(_0xe01538){if(_0xe01538&&_0xe01538[_0xdf3c('0x69')]===0x0){return db['UserProfileResource']['create']({'name':_0x354ff4['name'],'resourceId':_0x354ff4['id'],'type':_0xe01538['name'],'sectionId':_0xe01538['id']},{})['then'](function(){return _0x2cb0f5;});}else{return _0x2cb0f5;}})[_0xdf3c('0x28')](function(_0x3f43a0){logger[_0xdf3c('0x24')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x3f43a0);throw _0x3f43a0;});}return _0x2cb0f5;})[_0xdf3c('0x1e')](respondWithResult(_0x4be79a,0xc9))[_0xdf3c('0x28')](handleError(_0x4be79a,null));};exports[_0xdf3c('0x32')]=function(_0x51e8c6,_0x591936,_0x233718){var _0x4e3517;return db[_0xdf3c('0x4a')]['find']({'where':{'id':_0x51e8c6[_0xdf3c('0x6a')]['id']}})[_0xdf3c('0x1e')](handleEntityNotFound(_0x591936,null))[_0xdf3c('0x1e')](saveUpdates(_0x51e8c6[_0xdf3c('0x55')],null))['then'](function(_0x5148f6){if(_0x5148f6){_0x4e3517=_0x5148f6;return db[_0xdf3c('0x4a')][_0xdf3c('0x4d')]({'raw':!![]});}})[_0xdf3c('0x1e')](function(_0x12a7b0){if(_0x12a7b0){var _0x39d9f0=fs[_0xdf3c('0x5c')](path['join'](config[_0xdf3c('0x5e')],'server/files/templates/trunk.ejs'),_0xdf3c('0x61'));var _0x9c761a=fs[_0xdf3c('0x5c')](path[_0xdf3c('0x5d')](config[_0xdf3c('0x5e')],'server/files/templates/registry.ejs'),_0xdf3c('0x61'));var _0x5c27cc=ejs[_0xdf3c('0x64')](_0x39d9f0,{'trunks':_0x12a7b0||[]});fs['writeFileSync']('/etc/asterisk/sip_xcally_trunks.conf',_0x5c27cc);var _0x53b0c3=ejs['render'](_0x9c761a,{'trunks':_0x12a7b0||[]});fs[_0xdf3c('0x62')](_0xdf3c('0x65'),_0x53b0c3);return respondWithRpcPromise(_0xdf3c('0x66'),_0xdf3c('0x32'),{'module':_0xdf3c('0x67')});}return null;})[_0xdf3c('0x1e')](function(_0x5c8e5e){if(_0x5c8e5e){return _0x4e3517;}})[_0xdf3c('0x1e')](respondWithResult(_0x591936,null))['catch'](handleError(_0x591936,null));};exports[_0xdf3c('0x35')]=function(_0x389708,_0x2e5f82,_0x15a057){var _0x320452;return db[_0xdf3c('0x4a')][_0xdf3c('0x4f')]({'where':{'id':_0x389708[_0xdf3c('0x6a')]['id']}})[_0xdf3c('0x1e')](handleEntityNotFound(_0x2e5f82,null))[_0xdf3c('0x1e')](removeEntity(_0x2e5f82,null))[_0xdf3c('0x1e')](function(){return db[_0xdf3c('0x4a')][_0xdf3c('0x4d')]({'raw':!![]});})[_0xdf3c('0x1e')](function(_0x55fd73){var _0x118ab5=fs[_0xdf3c('0x5c')](path[_0xdf3c('0x5d')](config[_0xdf3c('0x5e')],'server/files/templates/trunk.ejs'),_0xdf3c('0x61'));var _0x1c8fe4=fs['readFileSync'](path['join'](config[_0xdf3c('0x5e')],_0xdf3c('0x60')),_0xdf3c('0x61'));var _0x1aaf8b=ejs[_0xdf3c('0x64')](_0x118ab5,{'trunks':_0x55fd73});var _0x56fc77=ejs[_0xdf3c('0x64')](_0x1c8fe4,{'trunks':_0x55fd73});fs[_0xdf3c('0x62')](_0xdf3c('0x63'),_0x1aaf8b);fs[_0xdf3c('0x62')](_0xdf3c('0x65'),_0x56fc77);return respondWithRpcPromise(_0xdf3c('0x66'),'destroy',{'module':_0xdf3c('0x67')});})[_0xdf3c('0x28')](handleError(_0x2e5f82,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7042=['Trunk','tools_trunks','lodash','../../config/logger','api','bluebird','request-promise','path','../../config/environment'];(function(_0x5868a2,_0x745fb5){var _0x1ab1a0=function(_0x1a7e3c){while(--_0x1a7e3c){_0x5868a2['push'](_0x5868a2['shift']());}};_0x1ab1a0(++_0x745fb5);}(_0x7042,0x92));var _0x2704=function(_0x27ff74,_0x1290fc){_0x27ff74=_0x27ff74-0x0;var _0x325544=_0x7042[_0x27ff74];return _0x325544;};'use strict';var _=require(_0x2704('0x0'));var util=require('util');var logger=require(_0x2704('0x1'))(_0x2704('0x2'));var moment=require('moment');var BPromise=require(_0x2704('0x3'));var rp=require(_0x2704('0x4'));var fs=require('fs');var path=require(_0x2704('0x5'));var rimraf=require('rimraf');var config=require(_0x2704('0x6'));var attributes=require('./trunk.attributes');module['exports']=function(_0x4d9cf6,_0x269a9e){return _0x4d9cf6['define'](_0x2704('0x7'),attributes,{'tableName':_0x2704('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x9d9a=['bluebird','request-promise','path','rimraf','../../config/environment','./trunk.attributes','exports','define','Trunk','tools_trunks','lodash','util','../../config/logger','api'];(function(_0x345a6a,_0x53bbfa){var _0x269b9c=function(_0x2ac309){while(--_0x2ac309){_0x345a6a['push'](_0x345a6a['shift']());}};_0x269b9c(++_0x53bbfa);}(_0x9d9a,0xc0));var _0xa9d9=function(_0x5c7b96,_0x2a6400){_0x5c7b96=_0x5c7b96-0x0;var _0x77ad1d=_0x9d9a[_0x5c7b96];return _0x77ad1d;};'use strict';var _=require(_0xa9d9('0x0'));var util=require(_0xa9d9('0x1'));var logger=require(_0xa9d9('0x2'))(_0xa9d9('0x3'));var moment=require('moment');var BPromise=require(_0xa9d9('0x4'));var rp=require(_0xa9d9('0x5'));var fs=require('fs');var path=require(_0xa9d9('0x6'));var rimraf=require(_0xa9d9('0x7'));var config=require(_0xa9d9('0x8'));var attributes=require(_0xa9d9('0x9'));module[_0xa9d9('0xa')]=function(_0x3ffd4d,_0x9f42a8){return _0x3ffd4d[_0xa9d9('0xb')](_0xa9d9('0xc'),attributes,{'tableName':_0xa9d9('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6f06=['limit','map','include','model','ShowTrunk','Trunk','find','lodash','util','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','client','request','then','info','request\x20sent','debug','Trunk,\x20%s,\x20%s,\x20%s','stringify','error','code','Trunk,\x20%s,\x20%s','message','catch','GetTrunk','findAll','options','raw','where','attributes'];(function(_0x3f4791,_0x49a572){var _0x2e0a15=function(_0x394fda){while(--_0x394fda){_0x3f4791['push'](_0x3f4791['shift']());}};_0x2e0a15(++_0x49a572);}(_0x6f06,0x1b4));var _0x66f0=function(_0x2ed502,_0x3b7fab){_0x2ed502=_0x2ed502-0x0;var _0x191886=_0x6f06[_0x2ed502];return _0x191886;};'use strict';var _=require(_0x66f0('0x0'));var util=require(_0x66f0('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0x66f0('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x66f0('0x3'))['db'];var utils=require(_0x66f0('0x4'));var logger=require(_0x66f0('0x5'))(_0x66f0('0x6'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0x66f0('0x7')]['http']({'port':0x232a});function respondWithRpcPromise(_0x3aa193,_0x7f7b84,_0x163455){return new BPromise(function(_0x41c73e,_0x340853){return client[_0x66f0('0x8')](_0x3aa193,_0x163455)[_0x66f0('0x9')](function(_0x5bbec){logger[_0x66f0('0xa')]('Trunk,\x20%s,\x20%s',_0x7f7b84,_0x66f0('0xb'));logger[_0x66f0('0xc')](_0x66f0('0xd'),_0x7f7b84,_0x66f0('0xb'),JSON[_0x66f0('0xe')](_0x5bbec));if(_0x5bbec[_0x66f0('0xf')]){if(_0x5bbec['error'][_0x66f0('0x10')]===0x1f4){logger[_0x66f0('0xf')](_0x66f0('0x11'),_0x7f7b84,_0x5bbec[_0x66f0('0xf')][_0x66f0('0x12')]);return _0x340853(_0x5bbec[_0x66f0('0xf')][_0x66f0('0x12')]);}logger[_0x66f0('0xf')](_0x66f0('0x11'),_0x7f7b84,_0x5bbec['error'][_0x66f0('0x12')]);return _0x41c73e(_0x5bbec[_0x66f0('0xf')][_0x66f0('0x12')]);}else{logger[_0x66f0('0xa')]('Trunk,\x20%s,\x20%s',_0x7f7b84,'request\x20sent');_0x41c73e(_0x5bbec['result']['message']);}})[_0x66f0('0x13')](function(_0x2ba57f){logger[_0x66f0('0xf')](_0x66f0('0x11'),_0x7f7b84,_0x2ba57f);_0x340853(_0x2ba57f);});});}exports[_0x66f0('0x14')]=function(_0x24a308){var _0x4046fa=this;return new Promise(function(_0x45bd4c,_0x147df1){return db['Trunk'][_0x66f0('0x15')]({'raw':_0x24a308[_0x66f0('0x16')]?_0x24a308[_0x66f0('0x16')][_0x66f0('0x17')]===undefined?!![]:![]:!![],'where':_0x24a308[_0x66f0('0x16')]?_0x24a308[_0x66f0('0x16')][_0x66f0('0x18')]||null:null,'attributes':_0x24a308[_0x66f0('0x16')]?_0x24a308['options'][_0x66f0('0x19')]||null:null,'limit':_0x24a308['options']?_0x24a308[_0x66f0('0x16')][_0x66f0('0x1a')]||null:null,'include':_0x24a308[_0x66f0('0x16')]?_0x24a308[_0x66f0('0x16')]['include']?_[_0x66f0('0x1b')](_0x24a308[_0x66f0('0x16')]['include'],function(_0x1e01bd){return{'model':db[_0x1e01bd['model']],'as':_0x1e01bd['as'],'attributes':_0x1e01bd[_0x66f0('0x19')],'include':_0x1e01bd[_0x66f0('0x1c')]?_[_0x66f0('0x1b')](_0x1e01bd[_0x66f0('0x1c')],function(_0x22aae3){return{'model':db[_0x22aae3[_0x66f0('0x1d')]],'as':_0x22aae3['as'],'attributes':_0x22aae3[_0x66f0('0x19')],'include':_0x22aae3[_0x66f0('0x1c')]?_[_0x66f0('0x1b')](_0x22aae3['include'],function(_0x30437f){return{'model':db[_0x30437f[_0x66f0('0x1d')]],'as':_0x30437f['as'],'attributes':_0x30437f[_0x66f0('0x19')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x497a2e){logger['info'](_0x66f0('0x14'),_0x24a308);logger['debug'](_0x66f0('0x14'),_0x24a308,JSON[_0x66f0('0xe')](_0x497a2e));_0x45bd4c(_0x497a2e);})[_0x66f0('0x13')](function(_0x1ae584){logger[_0x66f0('0xf')](_0x66f0('0x14'),_0x1ae584['message'],_0x24a308);_0x147df1(_0x4046fa['error'](0x1f4,_0x1ae584[_0x66f0('0x12')]));});});};exports[_0x66f0('0x1e')]=function(_0x7b635b){var _0xf8d64e=this;return new Promise(function(_0x790f6b,_0x407368){return db[_0x66f0('0x1f')][_0x66f0('0x20')]({'raw':_0x7b635b[_0x66f0('0x16')]?_0x7b635b[_0x66f0('0x16')][_0x66f0('0x17')]===undefined?!![]:![]:!![],'where':_0x7b635b['options']?_0x7b635b[_0x66f0('0x16')]['where']||null:null,'attributes':_0x7b635b[_0x66f0('0x16')]?_0x7b635b['options'][_0x66f0('0x19')]||null:null,'include':_0x7b635b[_0x66f0('0x16')]?_0x7b635b[_0x66f0('0x16')][_0x66f0('0x1c')]?_[_0x66f0('0x1b')](_0x7b635b['options'][_0x66f0('0x1c')],function(_0x59aef9){return{'model':db[_0x59aef9[_0x66f0('0x1d')]],'as':_0x59aef9['as'],'attributes':_0x59aef9[_0x66f0('0x19')],'include':_0x59aef9[_0x66f0('0x1c')]?_[_0x66f0('0x1b')](_0x59aef9[_0x66f0('0x1c')],function(_0x870957){return{'model':db[_0x870957[_0x66f0('0x1d')]],'as':_0x870957['as'],'attributes':_0x870957['attributes'],'include':_0x870957[_0x66f0('0x1c')]?_['map'](_0x870957['include'],function(_0x537046){return{'model':db[_0x537046[_0x66f0('0x1d')]],'as':_0x537046['as'],'attributes':_0x537046[_0x66f0('0x19')]};}):[]};}):[]};}):[]:[]})[_0x66f0('0x9')](function(_0x2fc330){logger[_0x66f0('0xa')](_0x66f0('0x1e'),_0x7b635b);logger['debug'](_0x66f0('0x1e'),_0x7b635b,JSON['stringify'](_0x2fc330));_0x790f6b(_0x2fc330);})[_0x66f0('0x13')](function(_0x5dd154){logger[_0x66f0('0xf')](_0x66f0('0x1e'),_0x5dd154[_0x66f0('0x12')],_0x7b635b);_0x407368(_0xf8d64e[_0x66f0('0xf')](0x1f4,_0x5dd154[_0x66f0('0x12')]));});});};
\ No newline at end of file
+var _0x8eca=['Trunk,\x20%s,\x20%s','request\x20sent','debug','Trunk,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','GetTrunk','Trunk','options','raw','where','attributes','include','model','map','ShowTrunk','find','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','jayson/promise','client','request','then','info'];(function(_0x1be3b3,_0x4335ee){var _0x4f8b2d=function(_0x1d955f){while(--_0x1d955f){_0x1be3b3['push'](_0x1be3b3['shift']());}};_0x4f8b2d(++_0x4335ee);}(_0x8eca,0x114));var _0xa8ec=function(_0x238d5,_0x113beb){_0x238d5=_0x238d5-0x0;var _0x4de43c=_0x8eca[_0x238d5];return _0x4de43c;};'use strict';var _=require(_0xa8ec('0x0'));var util=require('util');var moment=require(_0xa8ec('0x1'));var BPromise=require(_0xa8ec('0x2'));var rs=require(_0xa8ec('0x3'));var fs=require('fs');var Redis=require(_0xa8ec('0x4'));var db=require(_0xa8ec('0x5'))['db'];var utils=require(_0xa8ec('0x6'));var logger=require('../../config/logger')('rpc');var config=require('../../config/environment');var jayson=require(_0xa8ec('0x7'));var client=jayson[_0xa8ec('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0x3c85a7,_0x888a29,_0x56cf27){return new BPromise(function(_0x245560,_0x4c1d2f){return client[_0xa8ec('0x9')](_0x3c85a7,_0x56cf27)[_0xa8ec('0xa')](function(_0x603fe3){logger[_0xa8ec('0xb')](_0xa8ec('0xc'),_0x888a29,_0xa8ec('0xd'));logger[_0xa8ec('0xe')](_0xa8ec('0xf'),_0x888a29,_0xa8ec('0xd'),JSON[_0xa8ec('0x10')](_0x603fe3));if(_0x603fe3[_0xa8ec('0x11')]){if(_0x603fe3[_0xa8ec('0x11')]['code']===0x1f4){logger[_0xa8ec('0x11')](_0xa8ec('0xc'),_0x888a29,_0x603fe3['error'][_0xa8ec('0x12')]);return _0x4c1d2f(_0x603fe3[_0xa8ec('0x11')][_0xa8ec('0x12')]);}logger[_0xa8ec('0x11')](_0xa8ec('0xc'),_0x888a29,_0x603fe3[_0xa8ec('0x11')][_0xa8ec('0x12')]);return _0x245560(_0x603fe3[_0xa8ec('0x11')][_0xa8ec('0x12')]);}else{logger[_0xa8ec('0xb')](_0xa8ec('0xc'),_0x888a29,'request\x20sent');_0x245560(_0x603fe3[_0xa8ec('0x13')][_0xa8ec('0x12')]);}})[_0xa8ec('0x14')](function(_0xfc643f){logger[_0xa8ec('0x11')](_0xa8ec('0xc'),_0x888a29,_0xfc643f);_0x4c1d2f(_0xfc643f);});});}exports[_0xa8ec('0x15')]=function(_0xa31918){var _0x4a5286=this;return new Promise(function(_0x4ddf5f,_0x555d79){return db[_0xa8ec('0x16')]['findAll']({'raw':_0xa31918[_0xa8ec('0x17')]?_0xa31918['options'][_0xa8ec('0x18')]===undefined?!![]:![]:!![],'where':_0xa31918[_0xa8ec('0x17')]?_0xa31918[_0xa8ec('0x17')][_0xa8ec('0x19')]||null:null,'attributes':_0xa31918['options']?_0xa31918['options'][_0xa8ec('0x1a')]||null:null,'limit':_0xa31918[_0xa8ec('0x17')]?_0xa31918[_0xa8ec('0x17')]['limit']||null:null,'include':_0xa31918[_0xa8ec('0x17')]?_0xa31918[_0xa8ec('0x17')]['include']?_['map'](_0xa31918[_0xa8ec('0x17')][_0xa8ec('0x1b')],function(_0x24d108){return{'model':db[_0x24d108[_0xa8ec('0x1c')]],'as':_0x24d108['as'],'attributes':_0x24d108['attributes'],'include':_0x24d108['include']?_['map'](_0x24d108['include'],function(_0x510528){return{'model':db[_0x510528['model']],'as':_0x510528['as'],'attributes':_0x510528[_0xa8ec('0x1a')],'include':_0x510528[_0xa8ec('0x1b')]?_[_0xa8ec('0x1d')](_0x510528[_0xa8ec('0x1b')],function(_0x152343){return{'model':db[_0x152343[_0xa8ec('0x1c')]],'as':_0x152343['as'],'attributes':_0x152343[_0xa8ec('0x1a')]};}):[]};}):[]};}):[]:[]})[_0xa8ec('0xa')](function(_0x419931){logger['info']('GetTrunk',_0xa31918);logger[_0xa8ec('0xe')]('GetTrunk',_0xa31918,JSON[_0xa8ec('0x10')](_0x419931));_0x4ddf5f(_0x419931);})[_0xa8ec('0x14')](function(_0x411952){logger[_0xa8ec('0x11')](_0xa8ec('0x15'),_0x411952[_0xa8ec('0x12')],_0xa31918);_0x555d79(_0x4a5286[_0xa8ec('0x11')](0x1f4,_0x411952[_0xa8ec('0x12')]));});});};exports[_0xa8ec('0x1e')]=function(_0x2e92e8){var _0x304dc1=this;return new Promise(function(_0x61d4e0,_0x9a0795){return db[_0xa8ec('0x16')][_0xa8ec('0x1f')]({'raw':_0x2e92e8[_0xa8ec('0x17')]?_0x2e92e8['options'][_0xa8ec('0x18')]===undefined?!![]:![]:!![],'where':_0x2e92e8[_0xa8ec('0x17')]?_0x2e92e8[_0xa8ec('0x17')][_0xa8ec('0x19')]||null:null,'attributes':_0x2e92e8[_0xa8ec('0x17')]?_0x2e92e8[_0xa8ec('0x17')][_0xa8ec('0x1a')]||null:null,'include':_0x2e92e8[_0xa8ec('0x17')]?_0x2e92e8['options'][_0xa8ec('0x1b')]?_[_0xa8ec('0x1d')](_0x2e92e8[_0xa8ec('0x17')]['include'],function(_0x20cdd8){return{'model':db[_0x20cdd8[_0xa8ec('0x1c')]],'as':_0x20cdd8['as'],'attributes':_0x20cdd8[_0xa8ec('0x1a')],'include':_0x20cdd8[_0xa8ec('0x1b')]?_[_0xa8ec('0x1d')](_0x20cdd8['include'],function(_0x287db4){return{'model':db[_0x287db4[_0xa8ec('0x1c')]],'as':_0x287db4['as'],'attributes':_0x287db4['attributes'],'include':_0x287db4[_0xa8ec('0x1b')]?_['map'](_0x287db4[_0xa8ec('0x1b')],function(_0x5a110b){return{'model':db[_0x5a110b['model']],'as':_0x5a110b['as'],'attributes':_0x5a110b[_0xa8ec('0x1a')]};}):[]};}):[]};}):[]:[]})[_0xa8ec('0xa')](function(_0x294f5d){logger[_0xa8ec('0xb')](_0xa8ec('0x1e'),_0x2e92e8);logger[_0xa8ec('0xe')](_0xa8ec('0x1e'),_0x2e92e8,JSON[_0xa8ec('0x10')](_0x294f5d));_0x61d4e0(_0x294f5d);})[_0xa8ec('0x14')](function(_0x78b019){logger[_0xa8ec('0x11')](_0xa8ec('0x1e'),_0x78b019[_0xa8ec('0x12')],_0x2e92e8);_0x9a0795(_0x304dc1[_0xa8ec('0x11')](0x1f4,_0x78b019[_0xa8ec('0x12')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0f12=['pause','/:id/unpause','unpause','addTeams','/:id/chat_interactions','addChatInteractions','/:id/mail_interactions','addMailInteractions','/:id/fax_interactions','addFaxInteractions','/:id/sms_interactions','addOpenchannelInteractions','/:id/whatsapp_interactions','addWhatsappInteractions','/:id/fax_accounts','addFaxAccounts','/:id/sms_accounts','addSmsAccounts','addChatWebsites','addWhatsappAccounts','addSquareProjects','put','update','/:id/password','changePassword','delete','removeQueues','removeTeams','destroy','removeMailInteractions','removeFaxInteractions','removeSmsInteractions','/:id/openchannel_interactions','removeOpenchannelInteractions','removeWhatsappInteractions','removeFaxAccounts','removeMailAccounts','removeOpenchannelAccounts','removeSmsAccounts','removeWhatsappAccounts','removeApiKey','exports','multer','util','path','connect-timeout','express','Router','../../components/auth/service','../../config/environment','./user.controller','get','isAuthenticated','index','/describe','/whoami','getPresence','/:id','show','/:id/avatar','/:id/open_tabs','getContacts','getQueues','/:id/queues_rt','/:id/groups','getGroups','/:id/recordings','getRecordings','/:id/screen_recordings','getScreenRecordings','/:id/chat/interactions','getOpenchannelInteractions','/:id/mail/interactions','getMailInteractions','getSmsInteractions','getFaxInteractions','/:id/whatsapp/interactions','/:id/teams','getTeams','/:id/lists','getLists','/:id/agents','getAgents','/:id/mail_accounts','getMailAccounts','/:id/openchannel_accounts','getOpenchannelAccounts','getSmsAccounts','/:id/chat_websites','getChatWebsites','/:id/whatsapp_accounts','/:id/square_projects','/:id/scheduled_calls','getScheduledCalls','/:id/api_key','getApiKey','/:id/contacts','addContacts','post','create','bulkCreate','/:id/queues','diskStorage','join','server/files/images/','format','%s-%s','now','single','file','addAvatar','/:id/login','/:id/logout','logout','/:id/pause'];(function(_0x5f1c73,_0x542f6e){var _0x11abc3=function(_0x1f1cd7){while(--_0x1f1cd7){_0x5f1c73['push'](_0x5f1c73['shift']());}};_0x11abc3(++_0x542f6e);}(_0x0f12,0x183));var _0x20f1=function(_0x42a595,_0x40d2af){_0x42a595=_0x42a595-0x0;var _0x49ee3e=_0x0f12[_0x42a595];return _0x49ee3e;};'use strict';var multer=require(_0x20f1('0x0'));var util=require(_0x20f1('0x1'));var path=require(_0x20f1('0x2'));var timeout=require(_0x20f1('0x3'));var express=require(_0x20f1('0x4'));var router=express[_0x20f1('0x5')]();var fs_extra=require('fs-extra');var auth=require(_0x20f1('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0x20f1('0x7'));var controller=require(_0x20f1('0x8'));router[_0x20f1('0x9')]('/',auth[_0x20f1('0xa')](),controller[_0x20f1('0xb')]);router[_0x20f1('0x9')](_0x20f1('0xc'),auth[_0x20f1('0xa')](),controller['describe']);router[_0x20f1('0x9')](_0x20f1('0xd'),auth[_0x20f1('0xa')](),controller['whoami']);router[_0x20f1('0x9')]('/presence',auth[_0x20f1('0xa')](),controller[_0x20f1('0xe')]);router['get'](_0x20f1('0xf'),auth[_0x20f1('0xa')](),controller[_0x20f1('0x10')]);router[_0x20f1('0x9')](_0x20f1('0x11'),controller['getAvatar']);router[_0x20f1('0x9')](_0x20f1('0x12'),auth[_0x20f1('0xa')](),controller['getOpenTabs']);router['get']('/:id/contacts',auth['isAuthenticated'](),controller[_0x20f1('0x13')]);router['get']('/:id/queues',auth[_0x20f1('0xa')](),controller[_0x20f1('0x14')]);router[_0x20f1('0x9')](_0x20f1('0x15'),auth[_0x20f1('0xa')](),controller['getVoiceQueuesRt']);router[_0x20f1('0x9')](_0x20f1('0x16'),auth[_0x20f1('0xa')](),controller[_0x20f1('0x17')]);router['get'](_0x20f1('0x18'),auth[_0x20f1('0xa')](),controller[_0x20f1('0x19')]);router[_0x20f1('0x9')](_0x20f1('0x1a'),auth['isAuthenticated'](),controller[_0x20f1('0x1b')]);router[_0x20f1('0x9')](_0x20f1('0x1c'),auth[_0x20f1('0xa')](),controller['getChatInteractions']);router[_0x20f1('0x9')]('/:id/openchannel/interactions',auth[_0x20f1('0xa')](),controller[_0x20f1('0x1d')]);router['get'](_0x20f1('0x1e'),auth[_0x20f1('0xa')](),controller[_0x20f1('0x1f')]);router[_0x20f1('0x9')]('/:id/sms/interactions',auth[_0x20f1('0xa')](),controller[_0x20f1('0x20')]);router[_0x20f1('0x9')]('/:id/fax/interactions',auth[_0x20f1('0xa')](),controller[_0x20f1('0x21')]);router[_0x20f1('0x9')](_0x20f1('0x22'),auth[_0x20f1('0xa')](),controller['getWhatsappInteractions']);router[_0x20f1('0x9')](_0x20f1('0x23'),auth[_0x20f1('0xa')](),controller[_0x20f1('0x24')]);router[_0x20f1('0x9')](_0x20f1('0x25'),auth[_0x20f1('0xa')](),controller[_0x20f1('0x26')]);router[_0x20f1('0x9')](_0x20f1('0x27'),auth[_0x20f1('0xa')](),controller[_0x20f1('0x28')]);router['get']('/:id/prefixes',auth[_0x20f1('0xa')](),controller['getVoicePrefixes']);router[_0x20f1('0x9')]('/:id/fax_accounts',auth[_0x20f1('0xa')](),controller['getFaxAccounts']);router['get'](_0x20f1('0x29'),auth[_0x20f1('0xa')](),controller[_0x20f1('0x2a')]);router[_0x20f1('0x9')](_0x20f1('0x2b'),auth['isAuthenticated'](),controller[_0x20f1('0x2c')]);router[_0x20f1('0x9')]('/:id/sms_accounts',auth['isAuthenticated'](),controller[_0x20f1('0x2d')]);router[_0x20f1('0x9')](_0x20f1('0x2e'),auth[_0x20f1('0xa')](),controller[_0x20f1('0x2f')]);router['get'](_0x20f1('0x30'),auth['isAuthenticated'](),controller['getWhatsappAccounts']);router[_0x20f1('0x9')](_0x20f1('0x31'),auth[_0x20f1('0xa')](),controller['getSquareProjects']);router['get'](_0x20f1('0x32'),auth[_0x20f1('0xa')](),controller[_0x20f1('0x33')]);router['get'](_0x20f1('0x34'),auth[_0x20f1('0xa')](),controller[_0x20f1('0x35')]);router['post'](_0x20f1('0x36'),auth['isAuthenticated'](),controller[_0x20f1('0x37')]);router[_0x20f1('0x38')]('/',auth[_0x20f1('0xa')](),controller[_0x20f1('0x39')]);router[_0x20f1('0x38')]('/create_many',auth[_0x20f1('0xa')](),controller[_0x20f1('0x3a')]);router[_0x20f1('0x38')](_0x20f1('0x3b'),auth[_0x20f1('0xa')](),controller['addQueues']);var upload=multer({'storage':multer[_0x20f1('0x3c')]({'destination':function(_0x4eb6d9,_0x84fece,_0x599801){_0x599801(null,path[_0x20f1('0x3d')](config['root'],_0x20f1('0x3e')));},'filename':function(_0x5b257c,_0x4e3845,_0x1c9285){_0x1c9285(null,util[_0x20f1('0x3f')](_0x20f1('0x40'),Date[_0x20f1('0x41')](),_0x4e3845['originalname']));}})});router[_0x20f1('0x38')](_0x20f1('0x11'),upload[_0x20f1('0x42')](_0x20f1('0x43')),controller[_0x20f1('0x44')]);router['post'](_0x20f1('0x45'),auth[_0x20f1('0xa')](),controller['login']);router[_0x20f1('0x38')](_0x20f1('0x46'),auth['isAuthenticated'](),controller[_0x20f1('0x47')]);router[_0x20f1('0x38')](_0x20f1('0x48'),auth[_0x20f1('0xa')](),controller[_0x20f1('0x49')]);router[_0x20f1('0x38')](_0x20f1('0x4a'),auth['isAuthenticated'](),controller[_0x20f1('0x4b')]);router[_0x20f1('0x38')](_0x20f1('0x23'),auth[_0x20f1('0xa')](),controller[_0x20f1('0x4c')]);router['post'](_0x20f1('0x4d'),auth['isAuthenticated'](),controller[_0x20f1('0x4e')]);router[_0x20f1('0x38')](_0x20f1('0x4f'),auth[_0x20f1('0xa')](),controller[_0x20f1('0x50')]);router[_0x20f1('0x38')](_0x20f1('0x51'),auth[_0x20f1('0xa')](),controller[_0x20f1('0x52')]);router[_0x20f1('0x38')](_0x20f1('0x53'),auth[_0x20f1('0xa')](),controller['addSmsInteractions']);router['post']('/:id/openchannel_interactions',auth[_0x20f1('0xa')](),controller[_0x20f1('0x54')]);router[_0x20f1('0x38')](_0x20f1('0x55'),auth[_0x20f1('0xa')](),controller[_0x20f1('0x56')]);router['post'](_0x20f1('0x57'),auth[_0x20f1('0xa')](),controller[_0x20f1('0x58')]);router[_0x20f1('0x38')](_0x20f1('0x29'),auth['isAuthenticated'](),controller['addMailAccounts']);router[_0x20f1('0x38')](_0x20f1('0x2b'),auth[_0x20f1('0xa')](),controller['addOpenchannelAccounts']);router[_0x20f1('0x38')](_0x20f1('0x59'),auth['isAuthenticated'](),controller[_0x20f1('0x5a')]);router[_0x20f1('0x38')](_0x20f1('0x2e'),auth[_0x20f1('0xa')](),controller[_0x20f1('0x5b')]);router['post']('/:id/whatsapp_accounts',auth['isAuthenticated'](),controller[_0x20f1('0x5c')]);router[_0x20f1('0x38')](_0x20f1('0x31'),auth[_0x20f1('0xa')](),controller[_0x20f1('0x5d')]);router[_0x20f1('0x38')]('/:id/api_key',auth[_0x20f1('0xa')](),controller['createApiKey']);router[_0x20f1('0x5e')](_0x20f1('0xf'),auth[_0x20f1('0xa')](),controller[_0x20f1('0x5f')]);router[_0x20f1('0x5e')](_0x20f1('0x60'),auth[_0x20f1('0xa')](),controller[_0x20f1('0x61')]);router[_0x20f1('0x62')](_0x20f1('0x3b'),auth[_0x20f1('0xa')](),controller[_0x20f1('0x63')]);router[_0x20f1('0x62')]('/:id/teams',auth['isAuthenticated'](),controller[_0x20f1('0x64')]);router[_0x20f1('0x62')](_0x20f1('0xf'),auth['isAuthenticated'](),controller[_0x20f1('0x65')]);router['delete'](_0x20f1('0x4d'),auth['isAuthenticated'](),controller['removeChatInteractions']);router[_0x20f1('0x62')]('/:id/mail_interactions',auth[_0x20f1('0xa')](),controller[_0x20f1('0x66')]);router[_0x20f1('0x62')](_0x20f1('0x51'),auth['isAuthenticated'](),controller[_0x20f1('0x67')]);router['delete'](_0x20f1('0x53'),auth[_0x20f1('0xa')](),controller[_0x20f1('0x68')]);router[_0x20f1('0x62')](_0x20f1('0x69'),auth[_0x20f1('0xa')](),controller[_0x20f1('0x6a')]);router[_0x20f1('0x62')]('/:id/whatsapp_interactions',auth['isAuthenticated'](),controller[_0x20f1('0x6b')]);router[_0x20f1('0x62')](_0x20f1('0x57'),auth[_0x20f1('0xa')](),controller[_0x20f1('0x6c')]);router[_0x20f1('0x62')](_0x20f1('0x29'),auth[_0x20f1('0xa')](),controller[_0x20f1('0x6d')]);router['delete']('/:id/openchannel_accounts',auth['isAuthenticated'](),controller[_0x20f1('0x6e')]);router[_0x20f1('0x62')]('/:id/sms_accounts',auth[_0x20f1('0xa')](),controller[_0x20f1('0x6f')]);router[_0x20f1('0x62')](_0x20f1('0x2e'),auth[_0x20f1('0xa')](),controller['removeChatWebsites']);router[_0x20f1('0x62')](_0x20f1('0x30'),auth[_0x20f1('0xa')](),controller[_0x20f1('0x70')]);router[_0x20f1('0x62')](_0x20f1('0x31'),auth[_0x20f1('0xa')](),controller['removeSquareProjects']);router[_0x20f1('0x62')]('/:id/api_key',auth[_0x20f1('0xa')](),controller[_0x20f1('0x71')]);module[_0x20f1('0x72')]=router;
\ No newline at end of file
+var _0x30d5=['root','%s-%s','now','originalname','single','file','/:id/login','login','/:id/logout','logout','/:id/pause','pause','/:id/unpause','addTeams','/:id/chat_interactions','addChatInteractions','/:id/fax_interactions','addFaxInteractions','/:id/sms_interactions','addSmsInteractions','/:id/openchannel_interactions','addOpenchannelInteractions','/:id/whatsapp_interactions','addWhatsappInteractions','addOpenchannelAccounts','addSmsAccounts','addChatWebsites','addWhatsappAccounts','addSquareProjects','/:id/api_key','createApiKey','put','/:id','update','/:id/password','changePassword','delete','/:id/queues','removeQueues','removeTeams','removeChatInteractions','/:id/mail_interactions','removeMailInteractions','removeFaxInteractions','removeOpenchannelInteractions','removeWhatsappInteractions','removeFaxAccounts','removeMailAccounts','removeOpenchannelAccounts','removeChatWebsites','removeWhatsappAccounts','removeSquareProjects','removeApiKey','util','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./user.controller','get','isAuthenticated','index','/describe','describe','/whoami','/presence','show','/:id/avatar','getAvatar','/:id/open_tabs','getOpenTabs','getGroups','/:id/recordings','/:id/screen_recordings','getScreenRecordings','/:id/chat/interactions','getChatInteractions','/:id/openchannel/interactions','getOpenchannelInteractions','/:id/mail/interactions','getMailInteractions','/:id/sms/interactions','/:id/fax/interactions','getFaxInteractions','getWhatsappInteractions','/:id/teams','getTeams','/:id/lists','getLists','/:id/agents','getAgents','/:id/fax_accounts','getFaxAccounts','/:id/mail_accounts','getMailAccounts','/:id/openchannel_accounts','getOpenchannelAccounts','/:id/sms_accounts','getSmsAccounts','/:id/chat_websites','getChatWebsites','/:id/whatsapp_accounts','getWhatsappAccounts','/:id/square_projects','/:id/scheduled_calls','getScheduledCalls','getApiKey','post','/:id/contacts','addContacts','create','/create_many','bulkCreate','addQueues','diskStorage','join'];(function(_0x1a6914,_0x499971){var _0x562ee2=function(_0x5bbb94){while(--_0x5bbb94){_0x1a6914['push'](_0x1a6914['shift']());}};_0x562ee2(++_0x499971);}(_0x30d5,0x194));var _0x530d=function(_0x19950b,_0x53d0d7){_0x19950b=_0x19950b-0x0;var _0x3c6b41=_0x30d5[_0x19950b];return _0x3c6b41;};'use strict';var multer=require('multer');var util=require(_0x530d('0x0'));var path=require('path');var timeout=require('connect-timeout');var express=require('express');var router=express[_0x530d('0x1')]();var fs_extra=require(_0x530d('0x2'));var auth=require(_0x530d('0x3'));var interaction=require(_0x530d('0x4'));var config=require(_0x530d('0x5'));var controller=require(_0x530d('0x6'));router[_0x530d('0x7')]('/',auth[_0x530d('0x8')](),controller[_0x530d('0x9')]);router['get'](_0x530d('0xa'),auth[_0x530d('0x8')](),controller[_0x530d('0xb')]);router[_0x530d('0x7')](_0x530d('0xc'),auth['isAuthenticated'](),controller['whoami']);router[_0x530d('0x7')](_0x530d('0xd'),auth[_0x530d('0x8')](),controller['getPresence']);router[_0x530d('0x7')]('/:id',auth['isAuthenticated'](),controller[_0x530d('0xe')]);router[_0x530d('0x7')](_0x530d('0xf'),controller[_0x530d('0x10')]);router['get'](_0x530d('0x11'),auth['isAuthenticated'](),controller[_0x530d('0x12')]);router[_0x530d('0x7')]('/:id/contacts',auth[_0x530d('0x8')](),controller['getContacts']);router['get']('/:id/queues',auth[_0x530d('0x8')](),controller['getQueues']);router[_0x530d('0x7')]('/:id/queues_rt',auth['isAuthenticated'](),controller['getVoiceQueuesRt']);router[_0x530d('0x7')]('/:id/groups',auth[_0x530d('0x8')](),controller[_0x530d('0x13')]);router[_0x530d('0x7')](_0x530d('0x14'),auth[_0x530d('0x8')](),controller['getRecordings']);router[_0x530d('0x7')](_0x530d('0x15'),auth[_0x530d('0x8')](),controller[_0x530d('0x16')]);router[_0x530d('0x7')](_0x530d('0x17'),auth[_0x530d('0x8')](),controller[_0x530d('0x18')]);router[_0x530d('0x7')](_0x530d('0x19'),auth[_0x530d('0x8')](),controller[_0x530d('0x1a')]);router[_0x530d('0x7')](_0x530d('0x1b'),auth[_0x530d('0x8')](),controller[_0x530d('0x1c')]);router[_0x530d('0x7')](_0x530d('0x1d'),auth[_0x530d('0x8')](),controller['getSmsInteractions']);router[_0x530d('0x7')](_0x530d('0x1e'),auth['isAuthenticated'](),controller[_0x530d('0x1f')]);router[_0x530d('0x7')]('/:id/whatsapp/interactions',auth[_0x530d('0x8')](),controller[_0x530d('0x20')]);router['get'](_0x530d('0x21'),auth[_0x530d('0x8')](),controller[_0x530d('0x22')]);router[_0x530d('0x7')](_0x530d('0x23'),auth['isAuthenticated'](),controller[_0x530d('0x24')]);router[_0x530d('0x7')](_0x530d('0x25'),auth[_0x530d('0x8')](),controller[_0x530d('0x26')]);router[_0x530d('0x7')]('/:id/prefixes',auth['isAuthenticated'](),controller['getVoicePrefixes']);router[_0x530d('0x7')](_0x530d('0x27'),auth['isAuthenticated'](),controller[_0x530d('0x28')]);router[_0x530d('0x7')](_0x530d('0x29'),auth[_0x530d('0x8')](),controller[_0x530d('0x2a')]);router[_0x530d('0x7')](_0x530d('0x2b'),auth[_0x530d('0x8')](),controller[_0x530d('0x2c')]);router['get'](_0x530d('0x2d'),auth[_0x530d('0x8')](),controller[_0x530d('0x2e')]);router[_0x530d('0x7')](_0x530d('0x2f'),auth[_0x530d('0x8')](),controller[_0x530d('0x30')]);router[_0x530d('0x7')](_0x530d('0x31'),auth[_0x530d('0x8')](),controller[_0x530d('0x32')]);router[_0x530d('0x7')](_0x530d('0x33'),auth[_0x530d('0x8')](),controller['getSquareProjects']);router[_0x530d('0x7')](_0x530d('0x34'),auth[_0x530d('0x8')](),controller[_0x530d('0x35')]);router[_0x530d('0x7')]('/:id/api_key',auth[_0x530d('0x8')](),controller[_0x530d('0x36')]);router[_0x530d('0x37')](_0x530d('0x38'),auth[_0x530d('0x8')](),controller[_0x530d('0x39')]);router['post']('/',auth[_0x530d('0x8')](),controller[_0x530d('0x3a')]);router[_0x530d('0x37')](_0x530d('0x3b'),auth[_0x530d('0x8')](),controller[_0x530d('0x3c')]);router[_0x530d('0x37')]('/:id/queues',auth[_0x530d('0x8')](),controller[_0x530d('0x3d')]);var upload=multer({'storage':multer[_0x530d('0x3e')]({'destination':function(_0x151a42,_0x361e8e,_0x2763bd){_0x2763bd(null,path[_0x530d('0x3f')](config[_0x530d('0x40')],'server/files/images/'));},'filename':function(_0x323cd7,_0x4620cd,_0xfa8c85){_0xfa8c85(null,util['format'](_0x530d('0x41'),Date[_0x530d('0x42')](),_0x4620cd[_0x530d('0x43')]));}})});router[_0x530d('0x37')](_0x530d('0xf'),upload[_0x530d('0x44')](_0x530d('0x45')),controller['addAvatar']);router[_0x530d('0x37')](_0x530d('0x46'),auth['isAuthenticated'](),controller[_0x530d('0x47')]);router[_0x530d('0x37')](_0x530d('0x48'),auth['isAuthenticated'](),controller[_0x530d('0x49')]);router['post'](_0x530d('0x4a'),auth[_0x530d('0x8')](),controller[_0x530d('0x4b')]);router['post'](_0x530d('0x4c'),auth[_0x530d('0x8')](),controller['unpause']);router['post'](_0x530d('0x21'),auth[_0x530d('0x8')](),controller[_0x530d('0x4d')]);router['post'](_0x530d('0x4e'),auth['isAuthenticated'](),controller[_0x530d('0x4f')]);router[_0x530d('0x37')]('/:id/mail_interactions',auth['isAuthenticated'](),controller['addMailInteractions']);router[_0x530d('0x37')](_0x530d('0x50'),auth['isAuthenticated'](),controller[_0x530d('0x51')]);router[_0x530d('0x37')](_0x530d('0x52'),auth[_0x530d('0x8')](),controller[_0x530d('0x53')]);router['post'](_0x530d('0x54'),auth[_0x530d('0x8')](),controller[_0x530d('0x55')]);router['post'](_0x530d('0x56'),auth[_0x530d('0x8')](),controller[_0x530d('0x57')]);router[_0x530d('0x37')](_0x530d('0x27'),auth['isAuthenticated'](),controller['addFaxAccounts']);router[_0x530d('0x37')](_0x530d('0x29'),auth[_0x530d('0x8')](),controller['addMailAccounts']);router[_0x530d('0x37')](_0x530d('0x2b'),auth[_0x530d('0x8')](),controller[_0x530d('0x58')]);router[_0x530d('0x37')](_0x530d('0x2d'),auth[_0x530d('0x8')](),controller[_0x530d('0x59')]);router[_0x530d('0x37')](_0x530d('0x2f'),auth[_0x530d('0x8')](),controller[_0x530d('0x5a')]);router[_0x530d('0x37')](_0x530d('0x31'),auth[_0x530d('0x8')](),controller[_0x530d('0x5b')]);router[_0x530d('0x37')](_0x530d('0x33'),auth[_0x530d('0x8')](),controller[_0x530d('0x5c')]);router[_0x530d('0x37')](_0x530d('0x5d'),auth[_0x530d('0x8')](),controller[_0x530d('0x5e')]);router[_0x530d('0x5f')](_0x530d('0x60'),auth[_0x530d('0x8')](),controller[_0x530d('0x61')]);router[_0x530d('0x5f')](_0x530d('0x62'),auth[_0x530d('0x8')](),controller[_0x530d('0x63')]);router[_0x530d('0x64')](_0x530d('0x65'),auth[_0x530d('0x8')](),controller[_0x530d('0x66')]);router[_0x530d('0x64')](_0x530d('0x21'),auth[_0x530d('0x8')](),controller[_0x530d('0x67')]);router[_0x530d('0x64')](_0x530d('0x60'),auth[_0x530d('0x8')](),controller['destroy']);router[_0x530d('0x64')]('/:id/chat_interactions',auth[_0x530d('0x8')](),controller[_0x530d('0x68')]);router[_0x530d('0x64')](_0x530d('0x69'),auth['isAuthenticated'](),controller[_0x530d('0x6a')]);router[_0x530d('0x64')]('/:id/fax_interactions',auth['isAuthenticated'](),controller[_0x530d('0x6b')]);router[_0x530d('0x64')](_0x530d('0x52'),auth[_0x530d('0x8')](),controller['removeSmsInteractions']);router['delete'](_0x530d('0x54'),auth[_0x530d('0x8')](),controller[_0x530d('0x6c')]);router[_0x530d('0x64')](_0x530d('0x56'),auth[_0x530d('0x8')](),controller[_0x530d('0x6d')]);router[_0x530d('0x64')]('/:id/fax_accounts',auth['isAuthenticated'](),controller[_0x530d('0x6e')]);router['delete']('/:id/mail_accounts',auth[_0x530d('0x8')](),controller[_0x530d('0x6f')]);router['delete'](_0x530d('0x2b'),auth[_0x530d('0x8')](),controller[_0x530d('0x70')]);router[_0x530d('0x64')](_0x530d('0x2d'),auth[_0x530d('0x8')](),controller['removeSmsAccounts']);router[_0x530d('0x64')](_0x530d('0x2f'),auth[_0x530d('0x8')](),controller[_0x530d('0x71')]);router[_0x530d('0x64')](_0x530d('0x31'),auth[_0x530d('0x8')](),controller[_0x530d('0x72')]);router['delete'](_0x530d('0x33'),auth[_0x530d('0x8')](),controller[_0x530d('0x73')]);router[_0x530d('0x64')](_0x530d('0x5d'),auth[_0x530d('0x8')](),controller[_0x530d('0x74')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9b0d=['util','lodash','exports','name','setDataValue','defaultuser','The\x20name\x20of\x20the\x20user','STRING','fullname','format','\x22%s\x22\x20<%s>','internal','email','toLowerCase','ENUM','admin','agent','telephone','local','INTEGER','callerid','getDataValue','BOOLEAN','DEFAULT\x20PAUSE','DATE','dynamic','friend','user','peer','from-sip','ALLOWED_NOT_SCREENED','ALLOWED_FAILED_SCREEN','ALLOWED','PROHIB_PASSED_SCREEN','PROHIB_FAILED_SCREEN','udp','transport','join','split','rfc2833','inband','auto','yes','nonat','update','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','String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22ulaw\x22,\x20\x22alaw\x22,\x20\x22gsm\x22]','insecure','String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22port\x22,\x20\x22invite\x22]','never','always','refuse','originate','uac','uas','certificate','active','passive','actpass','update,nonat','TEXT','showWebBar','get','isArray','wss','encryption','avpf','force_avp','icesupport','dtlsenable','dtlscertfile','rtcp_mux','dtlsverify','dtlssetup','dtlsprivatekey','permissions','VIRTUAL','phoneBarEnableScreenRecordingByAgent','string','false','screenrecording','blocked','blockedAt','loginAttempts','UNSIGNED','moment'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x9b0d,0xb7));var _0xd9b0=function(_0x4357a8,_0x185de0){_0x4357a8=_0x4357a8-0x0;var _0x37bc63=_0x9b0d[_0x4357a8];return _0x37bc63;};'use strict';var Sequelize=require('sequelize');var moment=require(_0xd9b0('0x0'));var util=require(_0xd9b0('0x1'));var _=require(_0xd9b0('0x2'));module[_0xd9b0('0x3')]={'name':{'type':Sequelize['STRING'],'allowNull':![],'unique':_0xd9b0('0x4'),'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i},'set':function(_0x32fa05){this[_0xd9b0('0x5')](_0xd9b0('0x4'),_0x32fa05);this['setDataValue'](_0xd9b0('0x6'),_0x32fa05);},'comment':_0xd9b0('0x7')},'fullname':{'type':Sequelize[_0xd9b0('0x8')],'allowNull':![],'set':function(_0x31c012){this[_0xd9b0('0x5')](_0xd9b0('0x9'),_0x31c012);this[_0xd9b0('0x5')]('callerid',util[_0xd9b0('0xa')](_0xd9b0('0xb'),_0x31c012,this['getDataValue'](_0xd9b0('0xc'))));}},'alias':{'type':Sequelize['STRING']},'email':{'type':Sequelize[_0xd9b0('0x8')],'allowNull':![],'unique':'email','validate':{'isEmail':!![]},'set':function(_0x23c72a){if(_0x23c72a){this[_0xd9b0('0x5')](_0xd9b0('0xd'),_0x23c72a[_0xd9b0('0xe')]());}}},'role':{'type':Sequelize[_0xd9b0('0xf')](_0xd9b0('0x10'),'user',_0xd9b0('0x11'),_0xd9b0('0x12')),'allowNull':![]},'password':{'type':Sequelize['STRING'],'allowNull':![],'validate':{'notEmpty':!![]}},'provider':{'type':Sequelize[_0xd9b0('0x8')],'defaultValue':_0xd9b0('0x13')},'internal':{'type':Sequelize[_0xd9b0('0x14')](0xb),'allowNull':![],'unique':_0xd9b0('0xc'),'set':function(_0x2a15b1){this[_0xd9b0('0x5')]('internal',_0x2a15b1);this[_0xd9b0('0x5')]('accountcode',_0x2a15b1);this[_0xd9b0('0x5')](_0xd9b0('0x15'),util[_0xd9b0('0xa')](_0xd9b0('0xb'),this[_0xd9b0('0x16')](_0xd9b0('0x9')),_0x2a15b1));}},'salt':{'type':Sequelize[_0xd9b0('0x8')]},'phone':{'type':Sequelize['STRING']},'mobile':{'type':Sequelize[_0xd9b0('0x8')]},'address':{'type':Sequelize[_0xd9b0('0x8')]},'zipcode':{'type':Sequelize[_0xd9b0('0x8')]},'userpic':{'type':Sequelize[_0xd9b0('0x8')]},'city':{'type':Sequelize[_0xd9b0('0x8')]},'country':{'type':Sequelize[_0xd9b0('0x8')]},'online':{'type':Sequelize[_0xd9b0('0x17')],'defaultValue':![]},'lastLoginAt':{'type':Sequelize['DATE']},'voicePause':{'type':Sequelize[_0xd9b0('0x17')],'defaultValue':![]},'chatPause':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'mailPause':{'type':Sequelize[_0xd9b0('0x17')],'defaultValue':![]},'faxPause':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'smsPause':{'type':Sequelize[_0xd9b0('0x17')],'defaultValue':![]},'whatsappPause':{'type':Sequelize[_0xd9b0('0x17')],'defaultValue':![]},'openchannelPause':{'type':Sequelize[_0xd9b0('0x17')],'defaultValue':![]},'pauseType':{'type':Sequelize[_0xd9b0('0x8')],'defaultValue':_0xd9b0('0x18')},'lastPauseAt':{'type':Sequelize[_0xd9b0('0x19')]},'chatCapacity':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'mailCapacity':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'faxCapacity':{'type':Sequelize[_0xd9b0('0x14')],'defaultValue':0x0},'smsCapacity':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'whatsappCapacity':{'type':Sequelize[_0xd9b0('0x14')],'defaultValue':0x0},'openchannelCapacity':{'type':Sequelize[_0xd9b0('0x14')],'defaultValue':0x0},'phoneBarAutoAnswer':{'type':Sequelize[_0xd9b0('0x17')],'defaultValue':![]},'phoneBarEnableSettings':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'phoneBarListenPort':{'type':Sequelize[_0xd9b0('0x14')](0x5),'defaultValue':0x1428},'phoneBarExpires':{'type':Sequelize['INTEGER'](0x5),'defaultValue':0x78},'phoneBarRemoteControl':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'phoneBarRemoteControlPort':{'type':Sequelize[_0xd9b0('0x14')],'defaultValue':0x26a0},'phoneBarEnableRecording':{'type':Sequelize[_0xd9b0('0x17')],'defaultValue':![]},'phoneBarRingInUse':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'chanspy':{'type':Sequelize[_0xd9b0('0x17')],'defaultValue':![]},'description':{'type':Sequelize['STRING'],'allowNull':!![]},'host':{'type':Sequelize[_0xd9b0('0x8')],'allowNull':!![],'defaultValue':_0xd9b0('0x1a')},'ipaddr':{'type':Sequelize[_0xd9b0('0x8')],'allowNull':!![]},'port':{'type':Sequelize[_0xd9b0('0x14')](0x5),'allowNull':!![]},'regseconds':{'type':Sequelize[_0xd9b0('0x14')](0xb),'allowNull':!![]},'fullcontact':{'type':Sequelize[_0xd9b0('0x8')],'allowNull':!![]},'regserver':{'type':Sequelize[_0xd9b0('0x8')],'allowNull':!![]},'useragent':{'type':Sequelize[_0xd9b0('0x8')],'allowNull':!![]},'lastms':{'type':Sequelize[_0xd9b0('0x14')](0xb),'allowNull':!![]},'type':{'type':Sequelize[_0xd9b0('0xf')](_0xd9b0('0x1b'),_0xd9b0('0x1c'),_0xd9b0('0x1d')),'allowNull':!![],'defaultValue':_0xd9b0('0x1b')},'context':{'type':Sequelize[_0xd9b0('0x8')],'allowNull':!![],'defaultValue':_0xd9b0('0x1e')},'callingpres':{'type':Sequelize['ENUM'](_0xd9b0('0x1f'),'ALLOWED_PASSED_SCREEN',_0xd9b0('0x20'),_0xd9b0('0x21'),'PROHIB_NOT_SCREENED',_0xd9b0('0x22'),_0xd9b0('0x23'),'PROHIB'),'allowNull':!![]},'deny':{'type':Sequelize[_0xd9b0('0x8')],'allowNull':!![]},'permit':{'type':Sequelize[_0xd9b0('0x8')],'allowNull':!![]},'secret':{'type':Sequelize[_0xd9b0('0x8')],'allowNull':!![]},'md5secret':{'type':Sequelize[_0xd9b0('0x8')],'allowNull':!![]},'remotesecret':{'type':Sequelize[_0xd9b0('0x8')],'allowNull':!![]},'transport':{'type':Sequelize[_0xd9b0('0x8')],'allowNull':!![],'defaultValue':_0xd9b0('0x24'),'set':function(_0x35a871){this['setDataValue'](_0xd9b0('0x25'),_0x35a871?_0x35a871[_0xd9b0('0x26')](','):null);},'get':function(){return this[_0xd9b0('0x16')](_0xd9b0('0x25'))?this['getDataValue']('transport')[_0xd9b0('0x27')](','):null;},'comment':'String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22udp\x22,\x20\x22tcp\x22]'},'dtmfmode':{'type':Sequelize[_0xd9b0('0xf')](_0xd9b0('0x28'),'info','shortinfo',_0xd9b0('0x29'),_0xd9b0('0x2a')),'allowNull':!![],'defaultValue':_0xd9b0('0x28')},'directmedia':{'type':Sequelize[_0xd9b0('0xf')](_0xd9b0('0x2b'),'no',_0xd9b0('0x2c'),_0xd9b0('0x2d'),_0xd9b0('0x2e')),'allowNull':!![],'defaultValue':'no'},'directrtpsetup':{'type':Sequelize['ENUM'](_0xd9b0('0x2b'),'no'),'allowNull':!![],'defaultValue':'no'},'directmediapermit':{'type':Sequelize[_0xd9b0('0x8')],'allowNull':!![]},'directmediadeny':{'type':Sequelize[_0xd9b0('0x8')],'allowNull':!![]},'nat':{'type':Sequelize[_0xd9b0('0x8')],'allowNull':!![],'defaultValue':_0xd9b0('0x2f'),'set':function(_0x3e07be){this[_0xd9b0('0x5')](_0xd9b0('0x30'),_0x3e07be?_0x3e07be[_0xd9b0('0x26')](','):null);},'get':function(){return this[_0xd9b0('0x16')](_0xd9b0('0x30'))?this[_0xd9b0('0x16')](_0xd9b0('0x30'))[_0xd9b0('0x27')](','):null;},'comment':_0xd9b0('0x31')},'callgroup':{'type':Sequelize[_0xd9b0('0x8')]},'namedcallgroup':{'type':Sequelize[_0xd9b0('0x8')]},'pickupgroup':{'type':Sequelize[_0xd9b0('0x8')]},'namedpickupgroup':{'type':Sequelize[_0xd9b0('0x8')]},'language':{'type':Sequelize[_0xd9b0('0x8')],'defaultValue':'en'},'tonezone':{'type':Sequelize['STRING']},'disallow':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':_0xd9b0('0x32')},'allow':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':_0xd9b0('0x33'),'set':function(_0x353fd7){this[_0xd9b0('0x5')](_0xd9b0('0x34'),_0x353fd7?_0x353fd7[_0xd9b0('0x26')](';'):_0xd9b0('0x33'));},'get':function(){return this[_0xd9b0('0x16')](_0xd9b0('0x34'))?this[_0xd9b0('0x16')](_0xd9b0('0x34'))['split'](';'):null;},'comment':_0xd9b0('0x35')},'autoframing':{'type':Sequelize[_0xd9b0('0xf')]('yes','no'),'allowNull':!![]},'insecure':{'type':Sequelize[_0xd9b0('0x8')],'allowNull':!![],'set':function(_0x222b59){this[_0xd9b0('0x5')]('insecure',_0x222b59?_0x222b59[_0xd9b0('0x26')](','):null);},'get':function(){return this[_0xd9b0('0x16')](_0xd9b0('0x36'))?this[_0xd9b0('0x16')](_0xd9b0('0x36'))[_0xd9b0('0x27')](','):null;},'comment':_0xd9b0('0x37')},'trustrpid':{'type':Sequelize[_0xd9b0('0xf')](_0xd9b0('0x2b'),'no'),'allowNull':!![],'defaultValue':'no'},'trust_id_outbound':{'type':Sequelize[_0xd9b0('0xf')](_0xd9b0('0x2b'),'no'),'allowNull':!![],'defaultValue':'no'},'progressinband':{'type':Sequelize[_0xd9b0('0xf')](_0xd9b0('0x2b'),'no',_0xd9b0('0x38')),'allowNull':!![]},'promiscredir':{'type':Sequelize[_0xd9b0('0xf')](_0xd9b0('0x2b'),'no'),'allowNull':!![]},'useclientcode':{'type':Sequelize[_0xd9b0('0xf')](_0xd9b0('0x2b'),'no'),'allowNull':!![]},'accountcode':{'type':Sequelize['INTEGER'](0xb),'allowNull':!![]},'setvar':{'type':Sequelize[_0xd9b0('0x8')],'allowNull':!![]},'callerid':{'type':Sequelize[_0xd9b0('0x8')],'allowNull':!![],'defaultValue':'\x22\x22\x20<>'},'amaflags':{'type':Sequelize[_0xd9b0('0x8')],'allowNull':!![]},'callcounter':{'type':Sequelize[_0xd9b0('0xf')](_0xd9b0('0x2b'),'no'),'allowNull':!![],'defaultValue':'yes'},'busylevel':{'type':Sequelize['INTEGER'](0xb),'allowNull':!![]},'allowoverlap':{'type':Sequelize[_0xd9b0('0xf')](_0xd9b0('0x2b'),'no'),'allowNull':!![]},'allowsubscribe':{'type':Sequelize[_0xd9b0('0xf')](_0xd9b0('0x2b'),'no'),'allowNull':!![]},'allowtransfer':{'type':Sequelize[_0xd9b0('0xf')](_0xd9b0('0x2b'),'no'),'allowNull':!![]},'ignoresdpversion':{'type':Sequelize[_0xd9b0('0xf')]('yes','no'),'allowNull':!![]},'subscribecontext':{'type':Sequelize[_0xd9b0('0x8')],'allowNull':!![]},'template':{'type':Sequelize['STRING'],'allowNull':!![]},'videosupport':{'type':Sequelize[_0xd9b0('0xf')](_0xd9b0('0x2b'),'no',_0xd9b0('0x39')),'allowNull':!![],'defaultValue':'no'},'maxcallbitrate':{'type':Sequelize[_0xd9b0('0x14')](0xb),'allowNull':!![]},'rfc2833compensate':{'type':Sequelize[_0xd9b0('0xf')](_0xd9b0('0x2b'),'no'),'allowNull':!![]},'mailbox':{'type':Sequelize[_0xd9b0('0x8')],'allowNull':!![]},'session_timers':{'type':Sequelize[_0xd9b0('0xf')]('accept',_0xd9b0('0x3a'),_0xd9b0('0x3b')),'allowNull':!![]},'session_expires':{'type':Sequelize[_0xd9b0('0x14')](0xb),'allowNull':!![]},'session_minse':{'type':Sequelize[_0xd9b0('0x14')](0xb),'allowNull':!![]},'session_refresher':{'type':Sequelize[_0xd9b0('0xf')](_0xd9b0('0x3c'),_0xd9b0('0x3d')),'allowNull':!![],'defaultValue':_0xd9b0('0x3d')},'t38pt_usertpsource':{'type':Sequelize[_0xd9b0('0x8')],'allowNull':!![]},'regexten':{'type':Sequelize[_0xd9b0('0x8')],'allowNull':!![]},'fromdomain':{'type':Sequelize[_0xd9b0('0x8')],'allowNull':!![]},'fromuser':{'type':Sequelize[_0xd9b0('0x8')],'allowNull':!![]},'qualify':{'type':Sequelize[_0xd9b0('0xf')](_0xd9b0('0x2b'),'no'),'allowNull':!![],'defaultValue':_0xd9b0('0x2b')},'keepalive':{'type':Sequelize[_0xd9b0('0x14')](0xb),'allowNull':!![]},'defaultip':{'type':Sequelize['STRING'],'allowNull':!![]},'defaultuser':{'type':Sequelize[_0xd9b0('0x8')],'allowNull':!![]},'rtptimeout':{'type':Sequelize[_0xd9b0('0x14')](0xb),'allowNull':!![]},'rtpholdtimeout':{'type':Sequelize[_0xd9b0('0x14')](0xb),'allowNull':!![]},'rtpkeepalive':{'type':Sequelize[_0xd9b0('0x14')](0xb),'allowNull':!![]},'sendrpid':{'type':Sequelize[_0xd9b0('0xf')](_0xd9b0('0x2b'),'no'),'allowNull':!![],'defaultValue':'no'},'outboundproxy':{'type':Sequelize['STRING'],'allowNull':!![]},'callbackextension':{'type':Sequelize[_0xd9b0('0x8')],'allowNull':!![]},'timert1':{'type':Sequelize[_0xd9b0('0x14')](0xb),'allowNull':!![]},'timerb':{'type':Sequelize['INTEGER'](0xb),'allowNull':!![]},'qualifyfreq':{'type':Sequelize['INTEGER'](0xb),'allowNull':!![]},'contactpermit':{'type':Sequelize[_0xd9b0('0x8')],'allowNull':!![]},'contactdeny':{'type':Sequelize['STRING'],'allowNull':!![]},'contactacl':{'type':Sequelize[_0xd9b0('0x8')],'allowNull':!![]},'unsolicited_mailbox':{'type':Sequelize[_0xd9b0('0x8')],'allowNull':!![]},'use_q850_reason':{'type':Sequelize[_0xd9b0('0x8')],'allowNull':!![]},'maxforwards':{'type':Sequelize[_0xd9b0('0x14')](0xb),'allowNull':!![]},'encryption':{'type':Sequelize[_0xd9b0('0xf')](_0xd9b0('0x2b'),'no'),'allowNull':!![],'defaultValue':'no'},'avpf':{'type':Sequelize[_0xd9b0('0xf')](_0xd9b0('0x2b'),'no'),'allowNull':!![]},'force_avp':{'type':Sequelize[_0xd9b0('0xf')](_0xd9b0('0x2b'),'no'),'allowNull':!![]},'icesupport':{'type':Sequelize['ENUM']('yes','no'),'allowNull':!![]},'dtlsenable':{'type':Sequelize[_0xd9b0('0xf')](_0xd9b0('0x2b'),'no'),'allowNull':!![]},'dtlsverify':{'type':Sequelize[_0xd9b0('0xf')]('yes','no','fingerprint',_0xd9b0('0x3e')),'allowNull':!![]},'dtlsrekey':{'type':Sequelize[_0xd9b0('0x14')](0xb),'allowNull':!![]},'dtlscertfile':{'type':Sequelize[_0xd9b0('0x8')],'allowNull':!![]},'dtlsprivatekey':{'type':Sequelize[_0xd9b0('0x8')],'allowNull':!![]},'dtlscipher':{'type':Sequelize[_0xd9b0('0x8')],'allowNull':!![]},'dtlscafile':{'type':Sequelize[_0xd9b0('0x8')],'allowNull':!![]},'dtlscapath':{'type':Sequelize['STRING'],'allowNull':!![]},'dtlssetup':{'type':Sequelize['ENUM'](_0xd9b0('0x3f'),_0xd9b0('0x40'),_0xd9b0('0x41')),'allowNull':!![]},'dtlsfingerprint':{'type':Sequelize[_0xd9b0('0x8')],'allowNull':!![]},'usereqphone':{'type':Sequelize['ENUM'](_0xd9b0('0x2b'),'no'),'allowNull':!![],'defaultValue':'no'},'recordonfeature':{'type':Sequelize[_0xd9b0('0x8')],'allowNull':!![]},'recordofffeature':{'type':Sequelize[_0xd9b0('0x8')],'allowNull':!![]},'call_limit':{'type':Sequelize[_0xd9b0('0x14')](0xb),'allowNull':!![],'defaultValue':0xa},'registertrying':{'type':Sequelize[_0xd9b0('0xf')]('yes','no'),'allowNull':!![]},'subscribemwi':{'type':Sequelize['ENUM'](_0xd9b0('0x2b'),'no'),'allowNull':!![]},'vmexten':{'type':Sequelize[_0xd9b0('0x8')],'allowNull':!![]},'mohinterpret':{'type':Sequelize[_0xd9b0('0x8')],'allowNull':!![]},'mohsuggest':{'type':Sequelize[_0xd9b0('0x8')],'allowNull':!![]},'parkinglot':{'type':Sequelize[_0xd9b0('0x8')],'allowNull':!![]},'canreinvite':{'type':Sequelize[_0xd9b0('0xf')](_0xd9b0('0x2b'),'no',_0xd9b0('0x2c'),_0xd9b0('0x2d'),_0xd9b0('0x42')),'allowNull':!![],'defaultValue':'no'},'loginInPause':{'type':Sequelize[_0xd9b0('0x17')],'defaultValue':![]},'resetPasswordToken':{'type':Sequelize[_0xd9b0('0x8')]},'resetPasswordExpires':{'type':Sequelize['DATE']},'passwordResetAt':{'type':Sequelize[_0xd9b0('0x19')],'defaultValue':null},'previousPasswords':{'type':Sequelize[_0xd9b0('0x43')]},'showWebBar':{'type':Sequelize[_0xd9b0('0x14')],'defaultValue':0x0,'set':function(_0x19399e){this[_0xd9b0('0x5')](_0xd9b0('0x44'),_0x19399e);var _0x373373=this[_0xd9b0('0x45')]({'plain':!![]});switch(_0x19399e){case 0x0:case 0x1:var _0x1c1d5b=_0x373373[_0xd9b0('0x25')]?_[_0xd9b0('0x46')](_0x373373[_0xd9b0('0x25')])?_0x373373[_0xd9b0('0x25')]['join']():_0x373373[_0xd9b0('0x25')]:_0xd9b0('0x24');if(_0x1c1d5b===_0xd9b0('0x47')){_0x1c1d5b=_0xd9b0('0x24');}this[_0xd9b0('0x5')](_0xd9b0('0x25'),_0x1c1d5b);this['setDataValue'](_0xd9b0('0x48'),'no');this['setDataValue'](_0xd9b0('0x49'),null);this['setDataValue'](_0xd9b0('0x4a'),null);this[_0xd9b0('0x5')](_0xd9b0('0x4b'),null);this[_0xd9b0('0x5')](_0xd9b0('0x4c'),null);this[_0xd9b0('0x5')]('dtlsverify',null);this[_0xd9b0('0x5')]('dtlssetup',null);this[_0xd9b0('0x5')](_0xd9b0('0x4d'),null);this[_0xd9b0('0x5')]('dtlsprivatekey',null);this[_0xd9b0('0x5')](_0xd9b0('0x4e'),'no');break;case 0x2:this[_0xd9b0('0x5')](_0xd9b0('0x25'),_0xd9b0('0x47'));this[_0xd9b0('0x5')]('encryption',_0xd9b0('0x2b'));this[_0xd9b0('0x5')]('avpf',_0xd9b0('0x2b'));this[_0xd9b0('0x5')]('force_avp',_0xd9b0('0x2b'));this[_0xd9b0('0x5')]('icesupport',_0xd9b0('0x2b'));this['setDataValue'](_0xd9b0('0x4c'),'yes');this[_0xd9b0('0x5')](_0xd9b0('0x4f'),'no');this[_0xd9b0('0x5')](_0xd9b0('0x50'),_0xd9b0('0x41'));this['setDataValue']('dtlscertfile',_0x373373[_0xd9b0('0x4d')]||'/etc/pki/tls/certs/motion.crt');this[_0xd9b0('0x5')](_0xd9b0('0x51'),_0x373373[_0xd9b0('0x51')]||'/etc/pki/tls/private/motion.key');this['setDataValue'](_0xd9b0('0x4e'),_0xd9b0('0x2b'));break;default:}}},'permissions':{'type':Sequelize[_0xd9b0('0x43')],'set':function(_0x59c5f5){this['setDataValue'](_0xd9b0('0x52'),_0x59c5f5?_0x59c5f5[_0xd9b0('0x26')](','):[]);},'get':function(){return this[_0xd9b0('0x16')](_0xd9b0('0x52'))?_['map'](this['getDataValue'](_0xd9b0('0x52'))[_0xd9b0('0x27')](','),function(_0x2cae71){return parseInt(_0x2cae71,0xa);}):[];}},'phoneBarUnconditionalNumber':{'type':Sequelize['STRING']},'phoneBarNoReplyNumber':{'type':Sequelize['STRING']},'phoneBarBusyNumber':{'type':Sequelize[_0xd9b0('0x8')]},'phoneBarUnconditional':{'type':Sequelize[_0xd9b0('0x17')],'defaultValue':![]},'phoneBarNoReply':{'type':Sequelize[_0xd9b0('0x17')],'defaultValue':![]},'phoneBarBusy':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'phoneBarDnd':{'type':Sequelize[_0xd9b0('0x17')],'defaultValue':!![]},'phoneBarUnansweredCallBadge':{'type':Sequelize[_0xd9b0('0x17')],'defaultValue':!![]},'phoneBarEnableDtmfTone':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'phoneBarAutoAnswerDelay':{'type':Sequelize[_0xd9b0('0x14')],'defaultValue':0x0},'extensionMonitor':{'type':Sequelize['STRING'],'defaultValue':''},'crudPermissions':{'type':Sequelize[_0xd9b0('0x14')],'defaultValue':0x0},'rtcp_mux':{'type':Sequelize[_0xd9b0('0xf')](_0xd9b0('0x2b'),'no'),'defaultValue':'no'},'allowmessenger':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'phoneBarOutboundProxy':{'type':Sequelize[_0xd9b0('0x8')]},'phoneBarEnableJaws':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'phoneBarEnableScreenRecordingByAgent':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'phoneBarEnableVideoRecording':{'type':Sequelize[_0xd9b0('0x53')],'get':function(){return this[_0xd9b0('0x16')](_0xd9b0('0x54'))?this['getDataValue'](_0xd9b0('0x54')):![];}},'phoneBarEnableAutomaticScreenRecording':{'type':Sequelize[_0xd9b0('0x17')],'defaultValue':![]},'phoneBarPrefixRequired':{'type':Sequelize[_0xd9b0('0x17')],'defaultValue':![]},'hotdesk':{'type':Sequelize[_0xd9b0('0x17')],'defaultValue':![]},'interface':{'type':Sequelize[_0xd9b0('0x8')],'defaultValue':null},'privacyEnabled':{'type':Sequelize[_0xd9b0('0x17')],'defaultValue':![]},'apiKeyNonce':{'type':Sequelize[_0xd9b0('0x8')],'allowNull':!![]},'apiKeyIat':{'type':Sequelize[_0xd9b0('0x8')],'allowNull':!![]},'screenrecording':{'type':Sequelize[_0xd9b0('0x17')],'defaultValue':![],'set':function(_0x5b8a72){if(typeof _0x5b8a72===_0xd9b0('0x55')){var _0x3e87e6=_0x5b8a72==='1'?!![]:_0x5b8a72==='0'?![]:_0x5b8a72==='true'?!![]:_0x5b8a72===_0xd9b0('0x56')?![]:![];this[_0xd9b0('0x5')]('screenrecording',_0x3e87e6);}else{this[_0xd9b0('0x5')](_0xd9b0('0x57'),_0x5b8a72);}}},'blocked':{'type':Sequelize['BOOLEAN'],'defaultValue':![],'set':function(_0x4f29de){this[_0xd9b0('0x5')](_0xd9b0('0x58'),_0x4f29de);if(_0x4f29de===!![]){this[_0xd9b0('0x5')](_0xd9b0('0x59'),moment());this[_0xd9b0('0x5')](_0xd9b0('0x5a'),0x0);}else{this[_0xd9b0('0x5')](_0xd9b0('0x59'),null);}}},'blockedAt':{'type':Sequelize['DATE'],'defaultValue':null},'loginAttempts':{'type':Sequelize[_0xd9b0('0x14')],'defaultValue':0x0},'disabled':{'type':Sequelize[_0xd9b0('0x17')],'defaultValue':![]},'settingsEnabled':{'type':Sequelize[_0xd9b0('0x17')],'defaultValue':!![]},'wssPort':{'type':Sequelize[_0xd9b0('0x14')](0x5)[_0xd9b0('0x5b')],'defaultValue':0x1f99},'downloadAttachments':{'type':Sequelize[_0xd9b0('0x17')],'defaultValue':!![]},'downloadOmnichannelInteractions':{'type':Sequelize[_0xd9b0('0x17')],'defaultValue':!![]},'downloadVoiceRecordings':{'type':Sequelize[_0xd9b0('0x17')],'defaultValue':!![]}};
\ No newline at end of file
+var _0x770d=['String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22port\x22,\x20\x22invite\x22]','accept','refuse','uac','uas','fingerprint','certificate','active','passive','actpass','update,nonat','isArray','wss','encryption','avpf','icesupport','dtlsverify','rtcp_mux','force_avp','dtlsenable','dtlscertfile','dtlsprivatekey','TEXT','map','permissions','VIRTUAL','phoneBarEnableScreenRecordingByAgent','true','screenrecording','blocked','blockedAt','loginAttempts','sequelize','moment','util','lodash','exports','STRING','name','setDataValue','defaultuser','fullname','callerid','format','\x22%s\x22\x20<%s>','internal','email','toLowerCase','ENUM','admin','user','agent','telephone','INTEGER','accountcode','DATE','BOOLEAN','dynamic','peer','friend','from-sip','ALLOWED_NOT_SCREENED','ALLOWED_PASSED_SCREEN','ALLOWED','PROHIB_FAILED_SCREEN','PROHIB','udp','join','transport','getDataValue','split','String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22udp\x22,\x20\x22tcp\x22]','rfc2833','info','inband','yes','nonat','update','outgoing','force_rport,comedia','nat','all','ulaw;alaw;gsm','allow','String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22ulaw\x22,\x20\x22alaw\x22,\x20\x22gsm\x22]','insecure'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x770d,0x122));var _0xd770=function(_0x261c87,_0x3aeb98){_0x261c87=_0x261c87-0x0;var _0x34f004=_0x770d[_0x261c87];return _0x34f004;};'use strict';var Sequelize=require(_0xd770('0x0'));var moment=require(_0xd770('0x1'));var util=require(_0xd770('0x2'));var _=require(_0xd770('0x3'));module[_0xd770('0x4')]={'name':{'type':Sequelize[_0xd770('0x5')],'allowNull':![],'unique':_0xd770('0x6'),'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i},'set':function(_0x5d67cd){this[_0xd770('0x7')](_0xd770('0x6'),_0x5d67cd);this[_0xd770('0x7')](_0xd770('0x8'),_0x5d67cd);},'comment':'The\x20name\x20of\x20the\x20user'},'fullname':{'type':Sequelize['STRING'],'allowNull':![],'set':function(_0x2d73bd){this[_0xd770('0x7')](_0xd770('0x9'),_0x2d73bd);this[_0xd770('0x7')](_0xd770('0xa'),util[_0xd770('0xb')](_0xd770('0xc'),_0x2d73bd,this['getDataValue'](_0xd770('0xd'))));}},'alias':{'type':Sequelize[_0xd770('0x5')]},'email':{'type':Sequelize[_0xd770('0x5')],'allowNull':![],'unique':_0xd770('0xe'),'validate':{'isEmail':!![]},'set':function(_0x32a6cf){if(_0x32a6cf){this['setDataValue'](_0xd770('0xe'),_0x32a6cf[_0xd770('0xf')]());}}},'role':{'type':Sequelize[_0xd770('0x10')](_0xd770('0x11'),_0xd770('0x12'),_0xd770('0x13'),_0xd770('0x14')),'allowNull':![]},'password':{'type':Sequelize[_0xd770('0x5')],'allowNull':![],'validate':{'notEmpty':!![]}},'provider':{'type':Sequelize['STRING'],'defaultValue':'local'},'internal':{'type':Sequelize[_0xd770('0x15')](0xb),'allowNull':![],'unique':_0xd770('0xd'),'set':function(_0x206000){this[_0xd770('0x7')]('internal',_0x206000);this[_0xd770('0x7')](_0xd770('0x16'),_0x206000);this[_0xd770('0x7')](_0xd770('0xa'),util['format'](_0xd770('0xc'),this['getDataValue'](_0xd770('0x9')),_0x206000));}},'salt':{'type':Sequelize[_0xd770('0x5')]},'phone':{'type':Sequelize[_0xd770('0x5')]},'mobile':{'type':Sequelize[_0xd770('0x5')]},'address':{'type':Sequelize[_0xd770('0x5')]},'zipcode':{'type':Sequelize[_0xd770('0x5')]},'userpic':{'type':Sequelize[_0xd770('0x5')]},'city':{'type':Sequelize[_0xd770('0x5')]},'country':{'type':Sequelize[_0xd770('0x5')]},'online':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'lastLoginAt':{'type':Sequelize[_0xd770('0x17')]},'voicePause':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'chatPause':{'type':Sequelize[_0xd770('0x18')],'defaultValue':![]},'mailPause':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'faxPause':{'type':Sequelize[_0xd770('0x18')],'defaultValue':![]},'smsPause':{'type':Sequelize[_0xd770('0x18')],'defaultValue':![]},'whatsappPause':{'type':Sequelize[_0xd770('0x18')],'defaultValue':![]},'openchannelPause':{'type':Sequelize[_0xd770('0x18')],'defaultValue':![]},'pauseType':{'type':Sequelize[_0xd770('0x5')],'defaultValue':'DEFAULT\x20PAUSE'},'lastPauseAt':{'type':Sequelize[_0xd770('0x17')]},'chatCapacity':{'type':Sequelize[_0xd770('0x15')],'defaultValue':0x0},'mailCapacity':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'faxCapacity':{'type':Sequelize[_0xd770('0x15')],'defaultValue':0x0},'smsCapacity':{'type':Sequelize[_0xd770('0x15')],'defaultValue':0x0},'whatsappCapacity':{'type':Sequelize[_0xd770('0x15')],'defaultValue':0x0},'openchannelCapacity':{'type':Sequelize[_0xd770('0x15')],'defaultValue':0x0},'phoneBarAutoAnswer':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'phoneBarEnableSettings':{'type':Sequelize[_0xd770('0x18')],'defaultValue':!![]},'phoneBarListenPort':{'type':Sequelize[_0xd770('0x15')](0x5),'defaultValue':0x1428},'phoneBarExpires':{'type':Sequelize[_0xd770('0x15')](0x5),'defaultValue':0x78},'phoneBarRemoteControl':{'type':Sequelize[_0xd770('0x18')],'defaultValue':![]},'phoneBarRemoteControlPort':{'type':Sequelize['INTEGER'],'defaultValue':0x26a0},'phoneBarEnableRecording':{'type':Sequelize[_0xd770('0x18')],'defaultValue':![]},'phoneBarRingInUse':{'type':Sequelize[_0xd770('0x18')],'defaultValue':![]},'chanspy':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'description':{'type':Sequelize['STRING'],'allowNull':!![]},'host':{'type':Sequelize[_0xd770('0x5')],'allowNull':!![],'defaultValue':_0xd770('0x19')},'ipaddr':{'type':Sequelize[_0xd770('0x5')],'allowNull':!![]},'port':{'type':Sequelize[_0xd770('0x15')](0x5),'allowNull':!![]},'regseconds':{'type':Sequelize[_0xd770('0x15')](0xb),'allowNull':!![]},'fullcontact':{'type':Sequelize[_0xd770('0x5')],'allowNull':!![]},'regserver':{'type':Sequelize[_0xd770('0x5')],'allowNull':!![]},'useragent':{'type':Sequelize['STRING'],'allowNull':!![]},'lastms':{'type':Sequelize[_0xd770('0x15')](0xb),'allowNull':!![]},'type':{'type':Sequelize[_0xd770('0x10')]('friend','user',_0xd770('0x1a')),'allowNull':!![],'defaultValue':_0xd770('0x1b')},'context':{'type':Sequelize['STRING'],'allowNull':!![],'defaultValue':_0xd770('0x1c')},'callingpres':{'type':Sequelize[_0xd770('0x10')](_0xd770('0x1d'),_0xd770('0x1e'),'ALLOWED_FAILED_SCREEN',_0xd770('0x1f'),'PROHIB_NOT_SCREENED','PROHIB_PASSED_SCREEN',_0xd770('0x20'),_0xd770('0x21')),'allowNull':!![]},'deny':{'type':Sequelize['STRING'],'allowNull':!![]},'permit':{'type':Sequelize['STRING'],'allowNull':!![]},'secret':{'type':Sequelize[_0xd770('0x5')],'allowNull':!![]},'md5secret':{'type':Sequelize[_0xd770('0x5')],'allowNull':!![]},'remotesecret':{'type':Sequelize['STRING'],'allowNull':!![]},'transport':{'type':Sequelize[_0xd770('0x5')],'allowNull':!![],'defaultValue':_0xd770('0x22'),'set':function(_0x476e50){this[_0xd770('0x7')]('transport',_0x476e50?_0x476e50[_0xd770('0x23')](','):null);},'get':function(){return this['getDataValue'](_0xd770('0x24'))?this[_0xd770('0x25')](_0xd770('0x24'))[_0xd770('0x26')](','):null;},'comment':_0xd770('0x27')},'dtmfmode':{'type':Sequelize[_0xd770('0x10')](_0xd770('0x28'),_0xd770('0x29'),'shortinfo',_0xd770('0x2a'),'auto'),'allowNull':!![],'defaultValue':_0xd770('0x28')},'directmedia':{'type':Sequelize['ENUM'](_0xd770('0x2b'),'no',_0xd770('0x2c'),_0xd770('0x2d'),_0xd770('0x2e')),'allowNull':!![],'defaultValue':'no'},'directrtpsetup':{'type':Sequelize[_0xd770('0x10')](_0xd770('0x2b'),'no'),'allowNull':!![],'defaultValue':'no'},'directmediapermit':{'type':Sequelize[_0xd770('0x5')],'allowNull':!![]},'directmediadeny':{'type':Sequelize[_0xd770('0x5')],'allowNull':!![]},'nat':{'type':Sequelize[_0xd770('0x5')],'allowNull':!![],'defaultValue':_0xd770('0x2f'),'set':function(_0x195888){this[_0xd770('0x7')]('nat',_0x195888?_0x195888[_0xd770('0x23')](','):null);},'get':function(){return this[_0xd770('0x25')]('nat')?this[_0xd770('0x25')](_0xd770('0x30'))['split'](','):null;},'comment':'String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22force_rport\x22,\x20\x22comedia\x22]'},'callgroup':{'type':Sequelize[_0xd770('0x5')]},'namedcallgroup':{'type':Sequelize[_0xd770('0x5')]},'pickupgroup':{'type':Sequelize['STRING']},'namedpickupgroup':{'type':Sequelize[_0xd770('0x5')]},'language':{'type':Sequelize[_0xd770('0x5')],'defaultValue':'en'},'tonezone':{'type':Sequelize[_0xd770('0x5')]},'disallow':{'type':Sequelize[_0xd770('0x5')],'allowNull':![],'defaultValue':_0xd770('0x31')},'allow':{'type':Sequelize[_0xd770('0x5')],'allowNull':![],'defaultValue':_0xd770('0x32'),'set':function(_0x52bddd){this['setDataValue'](_0xd770('0x33'),_0x52bddd?_0x52bddd[_0xd770('0x23')](';'):_0xd770('0x32'));},'get':function(){return this[_0xd770('0x25')](_0xd770('0x33'))?this[_0xd770('0x25')]('allow')['split'](';'):null;},'comment':_0xd770('0x34')},'autoframing':{'type':Sequelize[_0xd770('0x10')](_0xd770('0x2b'),'no'),'allowNull':!![]},'insecure':{'type':Sequelize[_0xd770('0x5')],'allowNull':!![],'set':function(_0x4df549){this[_0xd770('0x7')]('insecure',_0x4df549?_0x4df549[_0xd770('0x23')](','):null);},'get':function(){return this['getDataValue'](_0xd770('0x35'))?this['getDataValue'](_0xd770('0x35'))[_0xd770('0x26')](','):null;},'comment':_0xd770('0x36')},'trustrpid':{'type':Sequelize[_0xd770('0x10')](_0xd770('0x2b'),'no'),'allowNull':!![],'defaultValue':'no'},'trust_id_outbound':{'type':Sequelize[_0xd770('0x10')](_0xd770('0x2b'),'no'),'allowNull':!![],'defaultValue':'no'},'progressinband':{'type':Sequelize[_0xd770('0x10')](_0xd770('0x2b'),'no','never'),'allowNull':!![]},'promiscredir':{'type':Sequelize['ENUM'](_0xd770('0x2b'),'no'),'allowNull':!![]},'useclientcode':{'type':Sequelize['ENUM'](_0xd770('0x2b'),'no'),'allowNull':!![]},'accountcode':{'type':Sequelize[_0xd770('0x15')](0xb),'allowNull':!![]},'setvar':{'type':Sequelize[_0xd770('0x5')],'allowNull':!![]},'callerid':{'type':Sequelize[_0xd770('0x5')],'allowNull':!![],'defaultValue':'\x22\x22\x20<>'},'amaflags':{'type':Sequelize[_0xd770('0x5')],'allowNull':!![]},'callcounter':{'type':Sequelize[_0xd770('0x10')](_0xd770('0x2b'),'no'),'allowNull':!![],'defaultValue':_0xd770('0x2b')},'busylevel':{'type':Sequelize[_0xd770('0x15')](0xb),'allowNull':!![]},'allowoverlap':{'type':Sequelize[_0xd770('0x10')](_0xd770('0x2b'),'no'),'allowNull':!![]},'allowsubscribe':{'type':Sequelize[_0xd770('0x10')]('yes','no'),'allowNull':!![]},'allowtransfer':{'type':Sequelize[_0xd770('0x10')](_0xd770('0x2b'),'no'),'allowNull':!![]},'ignoresdpversion':{'type':Sequelize[_0xd770('0x10')](_0xd770('0x2b'),'no'),'allowNull':!![]},'subscribecontext':{'type':Sequelize[_0xd770('0x5')],'allowNull':!![]},'template':{'type':Sequelize['STRING'],'allowNull':!![]},'videosupport':{'type':Sequelize[_0xd770('0x10')](_0xd770('0x2b'),'no','always'),'allowNull':!![],'defaultValue':'no'},'maxcallbitrate':{'type':Sequelize[_0xd770('0x15')](0xb),'allowNull':!![]},'rfc2833compensate':{'type':Sequelize[_0xd770('0x10')]('yes','no'),'allowNull':!![]},'mailbox':{'type':Sequelize[_0xd770('0x5')],'allowNull':!![]},'session_timers':{'type':Sequelize[_0xd770('0x10')](_0xd770('0x37'),_0xd770('0x38'),'originate'),'allowNull':!![]},'session_expires':{'type':Sequelize[_0xd770('0x15')](0xb),'allowNull':!![]},'session_minse':{'type':Sequelize[_0xd770('0x15')](0xb),'allowNull':!![]},'session_refresher':{'type':Sequelize[_0xd770('0x10')](_0xd770('0x39'),_0xd770('0x3a')),'allowNull':!![],'defaultValue':_0xd770('0x3a')},'t38pt_usertpsource':{'type':Sequelize[_0xd770('0x5')],'allowNull':!![]},'regexten':{'type':Sequelize['STRING'],'allowNull':!![]},'fromdomain':{'type':Sequelize[_0xd770('0x5')],'allowNull':!![]},'fromuser':{'type':Sequelize[_0xd770('0x5')],'allowNull':!![]},'qualify':{'type':Sequelize[_0xd770('0x10')]('yes','no'),'allowNull':!![],'defaultValue':_0xd770('0x2b')},'keepalive':{'type':Sequelize[_0xd770('0x15')](0xb),'allowNull':!![]},'defaultip':{'type':Sequelize['STRING'],'allowNull':!![]},'defaultuser':{'type':Sequelize[_0xd770('0x5')],'allowNull':!![]},'rtptimeout':{'type':Sequelize['INTEGER'](0xb),'allowNull':!![]},'rtpholdtimeout':{'type':Sequelize[_0xd770('0x15')](0xb),'allowNull':!![]},'rtpkeepalive':{'type':Sequelize[_0xd770('0x15')](0xb),'allowNull':!![]},'sendrpid':{'type':Sequelize[_0xd770('0x10')](_0xd770('0x2b'),'no'),'allowNull':!![],'defaultValue':'no'},'outboundproxy':{'type':Sequelize[_0xd770('0x5')],'allowNull':!![]},'callbackextension':{'type':Sequelize[_0xd770('0x5')],'allowNull':!![]},'timert1':{'type':Sequelize['INTEGER'](0xb),'allowNull':!![]},'timerb':{'type':Sequelize['INTEGER'](0xb),'allowNull':!![]},'qualifyfreq':{'type':Sequelize['INTEGER'](0xb),'allowNull':!![]},'contactpermit':{'type':Sequelize[_0xd770('0x5')],'allowNull':!![]},'contactdeny':{'type':Sequelize[_0xd770('0x5')],'allowNull':!![]},'contactacl':{'type':Sequelize[_0xd770('0x5')],'allowNull':!![]},'unsolicited_mailbox':{'type':Sequelize[_0xd770('0x5')],'allowNull':!![]},'use_q850_reason':{'type':Sequelize[_0xd770('0x5')],'allowNull':!![]},'maxforwards':{'type':Sequelize['INTEGER'](0xb),'allowNull':!![]},'encryption':{'type':Sequelize[_0xd770('0x10')](_0xd770('0x2b'),'no'),'allowNull':!![],'defaultValue':'no'},'avpf':{'type':Sequelize[_0xd770('0x10')](_0xd770('0x2b'),'no'),'allowNull':!![]},'force_avp':{'type':Sequelize[_0xd770('0x10')](_0xd770('0x2b'),'no'),'allowNull':!![]},'icesupport':{'type':Sequelize[_0xd770('0x10')](_0xd770('0x2b'),'no'),'allowNull':!![]},'dtlsenable':{'type':Sequelize['ENUM']('yes','no'),'allowNull':!![]},'dtlsverify':{'type':Sequelize['ENUM'](_0xd770('0x2b'),'no',_0xd770('0x3b'),_0xd770('0x3c')),'allowNull':!![]},'dtlsrekey':{'type':Sequelize['INTEGER'](0xb),'allowNull':!![]},'dtlscertfile':{'type':Sequelize[_0xd770('0x5')],'allowNull':!![]},'dtlsprivatekey':{'type':Sequelize[_0xd770('0x5')],'allowNull':!![]},'dtlscipher':{'type':Sequelize[_0xd770('0x5')],'allowNull':!![]},'dtlscafile':{'type':Sequelize['STRING'],'allowNull':!![]},'dtlscapath':{'type':Sequelize[_0xd770('0x5')],'allowNull':!![]},'dtlssetup':{'type':Sequelize['ENUM'](_0xd770('0x3d'),_0xd770('0x3e'),_0xd770('0x3f')),'allowNull':!![]},'dtlsfingerprint':{'type':Sequelize[_0xd770('0x5')],'allowNull':!![]},'usereqphone':{'type':Sequelize[_0xd770('0x10')](_0xd770('0x2b'),'no'),'allowNull':!![],'defaultValue':'no'},'recordonfeature':{'type':Sequelize['STRING'],'allowNull':!![]},'recordofffeature':{'type':Sequelize[_0xd770('0x5')],'allowNull':!![]},'call_limit':{'type':Sequelize[_0xd770('0x15')](0xb),'allowNull':!![],'defaultValue':0xa},'registertrying':{'type':Sequelize[_0xd770('0x10')](_0xd770('0x2b'),'no'),'allowNull':!![]},'subscribemwi':{'type':Sequelize[_0xd770('0x10')]('yes','no'),'allowNull':!![]},'vmexten':{'type':Sequelize[_0xd770('0x5')],'allowNull':!![]},'mohinterpret':{'type':Sequelize[_0xd770('0x5')],'allowNull':!![]},'mohsuggest':{'type':Sequelize[_0xd770('0x5')],'allowNull':!![]},'parkinglot':{'type':Sequelize[_0xd770('0x5')],'allowNull':!![]},'canreinvite':{'type':Sequelize['ENUM'](_0xd770('0x2b'),'no','nonat','update',_0xd770('0x40')),'allowNull':!![],'defaultValue':'no'},'loginInPause':{'type':Sequelize[_0xd770('0x18')],'defaultValue':![]},'resetPasswordToken':{'type':Sequelize['STRING']},'resetPasswordExpires':{'type':Sequelize[_0xd770('0x17')]},'passwordResetAt':{'type':Sequelize[_0xd770('0x17')],'defaultValue':null},'previousPasswords':{'type':Sequelize['TEXT']},'showWebBar':{'type':Sequelize[_0xd770('0x15')],'defaultValue':0x0,'set':function(_0x25e559){this[_0xd770('0x7')]('showWebBar',_0x25e559);var _0x2084b6=this['get']({'plain':!![]});switch(_0x25e559){case 0x0:case 0x1:var _0x13df77=_0x2084b6[_0xd770('0x24')]?_[_0xd770('0x41')](_0x2084b6['transport'])?_0x2084b6[_0xd770('0x24')]['join']():_0x2084b6[_0xd770('0x24')]:_0xd770('0x22');if(_0x13df77===_0xd770('0x42')){_0x13df77=_0xd770('0x22');}this[_0xd770('0x7')](_0xd770('0x24'),_0x13df77);this[_0xd770('0x7')](_0xd770('0x43'),'no');this['setDataValue'](_0xd770('0x44'),null);this[_0xd770('0x7')]('force_avp',null);this[_0xd770('0x7')](_0xd770('0x45'),null);this[_0xd770('0x7')]('dtlsenable',null);this['setDataValue'](_0xd770('0x46'),null);this['setDataValue']('dtlssetup',null);this['setDataValue']('dtlscertfile',null);this[_0xd770('0x7')]('dtlsprivatekey',null);this[_0xd770('0x7')](_0xd770('0x47'),'no');break;case 0x2:this['setDataValue'](_0xd770('0x24'),_0xd770('0x42'));this[_0xd770('0x7')](_0xd770('0x43'),_0xd770('0x2b'));this['setDataValue'](_0xd770('0x44'),'yes');this[_0xd770('0x7')](_0xd770('0x48'),_0xd770('0x2b'));this[_0xd770('0x7')](_0xd770('0x45'),_0xd770('0x2b'));this[_0xd770('0x7')](_0xd770('0x49'),_0xd770('0x2b'));this['setDataValue'](_0xd770('0x46'),'no');this[_0xd770('0x7')]('dtlssetup',_0xd770('0x3f'));this[_0xd770('0x7')]('dtlscertfile',_0x2084b6[_0xd770('0x4a')]||'/etc/pki/tls/certs/motion.crt');this[_0xd770('0x7')](_0xd770('0x4b'),_0x2084b6[_0xd770('0x4b')]||'/etc/pki/tls/private/motion.key');this[_0xd770('0x7')](_0xd770('0x47'),_0xd770('0x2b'));break;default:}}},'permissions':{'type':Sequelize[_0xd770('0x4c')],'set':function(_0x3ece22){this['setDataValue']('permissions',_0x3ece22?_0x3ece22[_0xd770('0x23')](','):[]);},'get':function(){return this[_0xd770('0x25')]('permissions')?_[_0xd770('0x4d')](this[_0xd770('0x25')](_0xd770('0x4e'))[_0xd770('0x26')](','),function(_0x55f5db){return parseInt(_0x55f5db,0xa);}):[];}},'phoneBarUnconditionalNumber':{'type':Sequelize[_0xd770('0x5')]},'phoneBarNoReplyNumber':{'type':Sequelize[_0xd770('0x5')]},'phoneBarBusyNumber':{'type':Sequelize['STRING']},'phoneBarUnconditional':{'type':Sequelize[_0xd770('0x18')],'defaultValue':![]},'phoneBarNoReply':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'phoneBarBusy':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'phoneBarDnd':{'type':Sequelize[_0xd770('0x18')],'defaultValue':!![]},'phoneBarUnansweredCallBadge':{'type':Sequelize[_0xd770('0x18')],'defaultValue':!![]},'phoneBarEnableDtmfTone':{'type':Sequelize[_0xd770('0x18')],'defaultValue':![]},'phoneBarAutoAnswerDelay':{'type':Sequelize[_0xd770('0x15')],'defaultValue':0x0},'extensionMonitor':{'type':Sequelize[_0xd770('0x5')],'defaultValue':''},'crudPermissions':{'type':Sequelize[_0xd770('0x15')],'defaultValue':0x0},'rtcp_mux':{'type':Sequelize[_0xd770('0x10')](_0xd770('0x2b'),'no'),'defaultValue':'no'},'allowmessenger':{'type':Sequelize[_0xd770('0x18')],'defaultValue':!![]},'phoneBarOutboundProxy':{'type':Sequelize[_0xd770('0x5')]},'phoneBarEnableJaws':{'type':Sequelize[_0xd770('0x18')],'defaultValue':![]},'phoneBarEnableScreenRecordingByAgent':{'type':Sequelize[_0xd770('0x18')],'defaultValue':![]},'phoneBarEnableVideoRecording':{'type':Sequelize[_0xd770('0x4f')],'get':function(){return this[_0xd770('0x25')](_0xd770('0x50'))?this['getDataValue']('phoneBarEnableScreenRecordingByAgent'):![];}},'phoneBarEnableAutomaticScreenRecording':{'type':Sequelize[_0xd770('0x18')],'defaultValue':![]},'phoneBarPrefixRequired':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'hotdesk':{'type':Sequelize[_0xd770('0x18')],'defaultValue':![]},'interface':{'type':Sequelize[_0xd770('0x5')],'defaultValue':null},'privacyEnabled':{'type':Sequelize[_0xd770('0x18')],'defaultValue':![]},'apiKeyNonce':{'type':Sequelize[_0xd770('0x5')],'allowNull':!![]},'apiKeyIat':{'type':Sequelize['STRING'],'allowNull':!![]},'screenrecording':{'type':Sequelize[_0xd770('0x18')],'defaultValue':![],'set':function(_0x4c3d21){if(typeof _0x4c3d21==='string'){var _0xedc912=_0x4c3d21==='1'?!![]:_0x4c3d21==='0'?![]:_0x4c3d21===_0xd770('0x51')?!![]:_0x4c3d21==='false'?![]:![];this['setDataValue'](_0xd770('0x52'),_0xedc912);}else{this['setDataValue'](_0xd770('0x52'),_0x4c3d21);}}},'blocked':{'type':Sequelize[_0xd770('0x18')],'defaultValue':![],'set':function(_0x9255ea){this[_0xd770('0x7')](_0xd770('0x53'),_0x9255ea);if(_0x9255ea===!![]){this[_0xd770('0x7')](_0xd770('0x54'),moment());this['setDataValue'](_0xd770('0x55'),0x0);}else{this[_0xd770('0x7')]('blockedAt',null);}}},'blockedAt':{'type':Sequelize['DATE'],'defaultValue':null},'loginAttempts':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'disabled':{'type':Sequelize[_0xd770('0x18')],'defaultValue':![]},'settingsEnabled':{'type':Sequelize[_0xd770('0x18')],'defaultValue':!![]},'wssPort':{'type':Sequelize['INTEGER'](0x5)['UNSIGNED'],'defaultValue':0x1f99},'downloadAttachments':{'type':Sequelize[_0xd770('0x18')],'defaultValue':!![]},'downloadOmnichannelInteractions':{'type':Sequelize[_0xd770('0x18')],'defaultValue':!![]},'downloadVoiceRecordings':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf846=['Voice','Chat','getMailQueues','Mail','Sms','getWhatsappQueues','Whatsapp','getFaxQueues','Fax','getOpenchannelQueues','Openchannel','flatten','addAgent','getDataValue','removeTeams','getSmsQueues','transaction','removeAgent','online','getLists','CmList','getAgents','values','addChatInteractions','user_has_chat_interactions:save','removeChatInteractions','user_has_chat_interactions:remove','addMailInteractions','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','addOpenchannelInteractions','user_has_openchannel_interactions:save','user_has_openchannel_interactions:remove','addWhatsappInteractions','user_has_whatsapp_interactions:save','removeWhatsappInteractions','getVoicePrefixes','VoicePrefix','getFaxAccounts','addFaxAccounts','removeFaxAccounts','getMailAccounts','MailAccount','addMailAccounts','removeMailAccounts','OpenchannelAccount','getOpenchannelAccounts','addOpenchannelAccounts','removeOpenchannelAccounts','getSmsAccounts','addSmsAccounts','removeSmsAccounts','getChatWebsites','ChatWebsite','addChatWebsites','removeChatWebsites','getWhatsappAccounts','WhatsappAccount','addWhatsappAccounts','removeWhatsappAccounts','SquareProject','getSquareProjects','addSquareProjects','removeSquareProjects','getScheduledCalls','CmHopper','$and','$or','$gt','$lt','$lte','$ne','$eq','$not','$notBetween','$in','$notIn','$like','$notLike','$iLike','$contains','firstName','lastName','phone','dialActive','getApiKey','retrieveApiKey','token','No\x20API\x20access\x20key\x20found!','generateApiKey','iat','nonce','You\x20don\x27t\x20have\x20sufficient\x20privileges\x20to\x20access\x20this\x20resource.','removeApiKey','apiKeyNonce','apiKeyIat','API\x20key\x20not\x20available','whoami','Unable\x20to\x20retrieve\x20the\x20current\x20user','getPresence','teams','queues','lower','col','toString','asc','substring','uniqBy','orderBy','Unable\x20to\x20retrieve\x20RPC\x20agents\x20(AMI)','offline','unknown','unavailable','ringing','voiceStatus','busy','slice','charAt','toUpperCase','field','ui.','InteractionId','ui.createdAt','user_has_','_interactions','ui.UserId\x20=\x20?','moment','bluebird','util','path','squel','jayson/promise','ioredis','../../components/auth/service','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','./user.socket','register','defaults','client','http','request','then','info','request\x20sent','debug','error','code','User,\x20%s,\x20%s','message','result','catch','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','update','get','role','Users','user','Agents','Telephones','telephone','filter','ignore','map','value','includes','name','UserProfileResource','destroy','stack','send','index','User','type','key','password','getOptions','where','query','includeAll','include','attributes','push','findAll','rows','openTabs','true','length','dataValues','mail','openchannel','whatsapp','all','params','model','keys','rawAttributes','salt','filters','intersection','fields','merge','options','find','sms','fax','body','describe','addContacts','ids','Setting','securePassword','validatePasswordPattern','isNil','internal','min_internal','sequelize','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)','QueryTypes','SELECT','from','voicemail','mailbox','email','agent','permissions','101','103','104','106','107','111','Unauthorized','Unauthorized.\x20You\x20must\x20be\x20an\x20administrator\x20in\x20order\x20to\x20create\x20an\x20user','admin','Unauthorized.\x20You\x20must\x20be\x20an\x20administrator\x20in\x20order\x20to\x20create\x20another\x20administrator','settingsEnabled','userProfileId','create','VoiceMail','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','some','Unauthorized.\x20You\x20must\x20be\x20an\x20administrator\x20in\x20order\x20to\x20create\x20an\x20administrator','each','isEmpty','compact','changePassword','newPassword','Sequelize','ValidationError','Invalid\x20body\x20format.\x20Use\x20oldPassword\x20and\x20newPassword','authenticate','oldPassword','Wrong\x20credentials','New\x20password\x20must\x20be\x20different\x20from\x20old\x20password','Invalid\x20body\x20format.\x20Use\x20newPassword','enforcePasswordHistory','passwordHistoryLimit','previousPasswords','updatePasswordsHistory','loginInPause','voicePause','interface','isValidChannel','Unknown\x20channel','capitalize','toLowerCase','Queues','penalty','spread','QueueId','Queue:save','voice','VoiceQueue','SIP/%s','upsert','channel','remove','isArray','emit','Queue:remove','UserVoiceQueueRt','addAvatar','file','filename','getAvatar','join','root','server/files/images/logos/default_profile.png','userpic','download','existsSync','server/files/images/','getOpenTabs','chat','ChatOpenTabs','CHAT','FaxOpenTabs','FAX','createdAt','OpenchannelOpenTabs','OPENCHANNEL','MailOpenTabs','MAIL','SmsOpenTabs','SMS','WhatsappOpenTabs','CmContact','order','sort','pick','hasOwnProperty','Tag','Tags','color','tag','nolimit','getContacts','findOne','Queue','Unknown\x20role','getVoiceQueuesRt','getGroups','ChatGroup','getRecordings','UserId','VoiceRecording','getScreenRecordings','ScreenRecording','getChatInteractions','ChatInteraction','getOpenchannelInteractions','getMailInteractions','MailInteraction','getSmsInteractions','SmsInteraction','FaxInteraction','getFaxInteractions','getWhatsappInteractions','WhatsappInteraction','mobile','intrf','format','user:forcelogout','headers','connection','remoteAddress','socket','getVoiceQueues','forEach','getChannels','YYYY-MM-DD\x20HH:mm:ss','LOGIN','device','PAUSE','LOGININPAUSE','bulkCreate','concat','isMiddleware','resolve','logout','pause','QueuePause','MemberReport','updateAttributes','DEFAULT\x20PAUSE','unpause','chatPause','faxPause','openchannelPause','smsPause','pauseType','lastPauseAt','manual','%s%s','Team','getTeams','addTeams','omit','setDataValue'];(function(_0xf93b08,_0x2559d7){var _0x12f72e=function(_0x30534b){while(--_0x30534b){_0xf93b08['push'](_0xf93b08['shift']());}};_0x12f72e(++_0x2559d7);}(_0xf846,0x85));var _0x6f84=function(_0x3a9bea,_0x2a78a1){_0x3a9bea=_0x3a9bea-0x0;var _0x542325=_0xf846[_0x3a9bea];return _0x542325;};'use strict';var moment=require(_0x6f84('0x0'));var BPromise=require(_0x6f84('0x1'));var util=require(_0x6f84('0x2'));var path=require(_0x6f84('0x3'));var fs=require('fs');var _=require('lodash');var squel=require(_0x6f84('0x4'));var jayson=require(_0x6f84('0x5'));var Redis=require(_0x6f84('0x6'));var authService=require(_0x6f84('0x7'));var qs=require('../../components/parsers/qs');var logger=require(_0x6f84('0x8'))(_0x6f84('0x9'));var utils=require(_0x6f84('0xa'));var config=require(_0x6f84('0xb'));var licenseUtil=require(_0x6f84('0xc'));var db=require(_0x6f84('0xd'))['db'];var socket=require('socket.io-emitter')(new Redis(config[_0x6f84('0xe')]));require(_0x6f84('0xf'))[_0x6f84('0x10')](socket);config['redis']=_[_0x6f84('0x11')](config[_0x6f84('0xe')],{'host':'localhost','port':0x18eb});var client=jayson[_0x6f84('0x12')][_0x6f84('0x13')]({'port':0x232a});var values;function respondWithRpcPromise(_0x390d9f,_0x43ea55,_0x19a15a,_0x317420){return new BPromise(function(_0x34cf16,_0xbc75){var _0x28986c=_0x317420||client;return _0x28986c[_0x6f84('0x14')](_0x390d9f,_0x19a15a)[_0x6f84('0x15')](function(_0x502d4e){logger[_0x6f84('0x16')]('User,\x20%s,\x20%s',_0x43ea55,_0x6f84('0x17'));logger[_0x6f84('0x18')]('User,\x20%s,\x20%s,\x20%s',_0x43ea55,_0x6f84('0x17'),JSON['stringify'](_0x502d4e));if(_0x502d4e[_0x6f84('0x19')]){if(_0x502d4e['error'][_0x6f84('0x1a')]===0x1f4){logger['error'](_0x6f84('0x1b'),_0x43ea55,_0x502d4e['error'][_0x6f84('0x1c')]);return _0xbc75(_0x502d4e[_0x6f84('0x19')][_0x6f84('0x1c')]);}logger[_0x6f84('0x19')](_0x6f84('0x1b'),_0x43ea55,_0x502d4e[_0x6f84('0x19')]['message']);return _0x34cf16(_0x502d4e[_0x6f84('0x19')]['message']);}else{logger[_0x6f84('0x16')](_0x6f84('0x1b'),_0x43ea55,_0x6f84('0x17'));_0x34cf16(_0x502d4e[_0x6f84('0x1d')][_0x6f84('0x1c')]);}})[_0x6f84('0x1e')](function(_0x3086ff){logger['error']('User,\x20%s,\x20%s',_0x43ea55,_0x3086ff);_0xbc75(_0x3086ff);});});}function respondWithStatusCode(_0x5848f3,_0x584feb){_0x584feb=_0x584feb||0xcc;return function(_0x2b4e8f){if(_0x2b4e8f){return _0x5848f3[_0x6f84('0x1f')](_0x584feb);}return _0x5848f3[_0x6f84('0x20')](_0x584feb)[_0x6f84('0x21')]();};}function respondWithResult(_0x3465e3,_0x1d51c8){_0x1d51c8=_0x1d51c8||0xc8;return function(_0x333e16){if(_0x333e16){return _0x3465e3[_0x6f84('0x20')](_0x1d51c8)[_0x6f84('0x22')](_0x333e16);}};}function respondWithFilteredResult(_0x512320,_0x12a642){return function(_0x493eb5){if(_0x493eb5){var _0x32692d=typeof _0x12a642[_0x6f84('0x23')]===_0x6f84('0x24')&&typeof _0x12a642[_0x6f84('0x25')]===_0x6f84('0x24');var _0x30014e=_0x493eb5[_0x6f84('0x26')];var _0x9bd17d=_0x32692d?0x0:_0x12a642[_0x6f84('0x23')];var _0x31badd=_0x32692d?_0x493eb5[_0x6f84('0x26')]:_0x12a642[_0x6f84('0x23')]+_0x12a642[_0x6f84('0x25')];var _0x2650e7;if(_0x31badd>=_0x30014e){_0x31badd=_0x30014e;_0x2650e7=0xc8;}else{_0x2650e7=0xce;}_0x512320[_0x6f84('0x20')](_0x2650e7);return _0x512320[_0x6f84('0x27')](_0x6f84('0x28'),_0x9bd17d+'-'+_0x31badd+'/'+_0x30014e)['json'](_0x493eb5);}return null;};}function saveUpdates(_0x16cab0){return function(_0x425d16){if(_0x425d16){return _0x425d16[_0x6f84('0x29')](_0x16cab0)['then'](function(_0x4d3469){return _0x4d3469;});}return null;};}function removeEntity(_0x1bdbf3){return function(_0x19f030){if(_0x19f030){return _0x19f030['destroy']()[_0x6f84('0x15')](function(){var _0x9a78c1=_0x19f030[_0x6f84('0x2a')]({'plain':!![]});if(_0x9a78c1[_0x6f84('0x2b')]==='admin')return;var _0x1cfbb4=[{'name':_0x6f84('0x2c'),'value':_0x6f84('0x2d'),'ignore':!![]},{'name':_0x6f84('0x2e'),'value':'agent','ignore':![]},{'name':_0x6f84('0x2f'),'value':_0x6f84('0x30'),'ignore':![]}];var _0x45f959=_(_0x1cfbb4)[_0x6f84('0x31')](_0x6f84('0x32'))[_0x6f84('0x33')](_0x6f84('0x34'))[_0x6f84('0x34')]();if(_[_0x6f84('0x35')](_0x45f959,_0x9a78c1[_0x6f84('0x2b')])){return;}var _0x477652=_['find'](_0x1cfbb4,[_0x6f84('0x34'),_0x9a78c1[_0x6f84('0x2b')]])[_0x6f84('0x36')];return db[_0x6f84('0x37')][_0x6f84('0x38')]({'where':{'type':_0x477652,'resourceId':_0x9a78c1['id']}})['then'](function(){return _0x19f030;});})[_0x6f84('0x15')](function(){_0x1bdbf3['status'](0xcc)[_0x6f84('0x21')]();});}};}function handleEntityNotFound(_0x14a342){return function(_0x426fca){if(!_0x426fca){_0x14a342[_0x6f84('0x1f')](0x194);}return _0x426fca;};}function handleError(_0x40ddb0,_0x191085){_0x191085=_0x191085||0x1f4;return function(_0x140ede){logger[_0x6f84('0x19')](_0x140ede[_0x6f84('0x39')]);if(_0x140ede[_0x6f84('0x36')]){delete _0x140ede[_0x6f84('0x36')];}_0x40ddb0[_0x6f84('0x20')](_0x191085)[_0x6f84('0x3a')](_0x140ede);};}exports[_0x6f84('0x3b')]=function(_0x34b59b,_0x393d1e){var _0xdfdc31={},_0x4be424={'count':0x0,'rows':[]};var _0x409161=_(db[_0x6f84('0x3c')]['rawAttributes'])[_0x6f84('0x33')](function(_0x1d5f4a){return{'name':_0x1d5f4a['fieldName'],'type':_0x1d5f4a[_0x6f84('0x3d')][_0x6f84('0x3e')]};})['filter'](function(_0x4c1d8a){return!_[_0x6f84('0x35')]([_0x6f84('0x3f'),'salt'],_0x4c1d8a['name']);})[_0x6f84('0x34')]();_0xdfdc31=qs[_0x6f84('0x40')](_0x409161,_0x34b59b);var _0x795ff6={'where':_0xdfdc31[_0x6f84('0x41')]};return db[_0x6f84('0x3c')]['count'](_0x795ff6)[_0x6f84('0x15')](function(_0x1e187d){_0x4be424[_0x6f84('0x26')]=_0x1e187d;if(_0x34b59b[_0x6f84('0x42')][_0x6f84('0x43')]){_0xdfdc31[_0x6f84('0x44')]=[{'all':!![]}];}if(!_[_0x6f84('0x35')](_0xdfdc31[_0x6f84('0x45')],'id')){_0xdfdc31['attributes'][_0x6f84('0x46')]('id');}return db['User'][_0x6f84('0x47')](_0xdfdc31);})[_0x6f84('0x15')](function(_0x26efdc){_0x4be424[_0x6f84('0x48')]=_0x26efdc;if(_0x34b59b['query'][_0x6f84('0x49')]===_0x6f84('0x4a')){var _0x26d268=[];for(var _0x5c1111=0x0;_0x5c1111<_0x4be424[_0x6f84('0x48')][_0x6f84('0x4b')];_0x5c1111++){_0x26d268[_0x6f84('0x46')](get_open_tabs('chat',_0x4be424[_0x6f84('0x48')][_0x5c1111][_0x6f84('0x4c')]));_0x26d268[_0x6f84('0x46')](get_open_tabs('sms',_0x4be424['rows'][_0x5c1111]['dataValues']));_0x26d268['push'](get_open_tabs('fax',_0x4be424[_0x6f84('0x48')][_0x5c1111][_0x6f84('0x4c')]));_0x26d268[_0x6f84('0x46')](get_open_tabs(_0x6f84('0x4d'),_0x4be424[_0x6f84('0x48')][_0x5c1111][_0x6f84('0x4c')]));_0x26d268[_0x6f84('0x46')](get_open_tabs(_0x6f84('0x4e'),_0x4be424['rows'][_0x5c1111][_0x6f84('0x4c')]));_0x26d268[_0x6f84('0x46')](get_open_tabs(_0x6f84('0x4f'),_0x4be424[_0x6f84('0x48')][_0x5c1111][_0x6f84('0x4c')]));}return BPromise[_0x6f84('0x50')](_0x26d268)[_0x6f84('0x15')](function(_0x17659b){return _0x4be424;});}else{return _0x4be424;}})[_0x6f84('0x15')](respondWithFilteredResult(_0x393d1e,_0xdfdc31))[_0x6f84('0x1e')](handleError(_0x393d1e,null));};exports['show']=function(_0x225bc1,_0x2f8ed0){var _0x13252b={'raw':![],'where':{'id':_0x225bc1[_0x6f84('0x51')]['id']}},_0x2e202a={};_0x2e202a[_0x6f84('0x52')]=_['differenceBy'](_[_0x6f84('0x53')](db[_0x6f84('0x3c')][_0x6f84('0x54')]),[_0x6f84('0x3f'),_0x6f84('0x55')]);_0x2e202a[_0x6f84('0x42')]=_[_0x6f84('0x53')](_0x225bc1[_0x6f84('0x42')]);_0x2e202a[_0x6f84('0x56')]=_[_0x6f84('0x57')](_0x2e202a[_0x6f84('0x52')],_0x2e202a[_0x6f84('0x42')]);_0x13252b['attributes']=_[_0x6f84('0x57')](_0x2e202a[_0x6f84('0x52')],qs[_0x6f84('0x58')](_0x225bc1[_0x6f84('0x42')][_0x6f84('0x58')]));_0x13252b[_0x6f84('0x45')]=_0x13252b['attributes']['length']?_0x13252b[_0x6f84('0x45')]:_0x2e202a[_0x6f84('0x52')];if(_0x225bc1['query'][_0x6f84('0x43')]){_0x13252b['include']=[{'all':!![]}];}_0x13252b=_[_0x6f84('0x59')]({},_0x13252b,_0x225bc1[_0x6f84('0x5a')]);if(!_[_0x6f84('0x35')](_0x13252b[_0x6f84('0x45')],'id')){_0x13252b[_0x6f84('0x45')]['push']('id');}return db[_0x6f84('0x3c')][_0x6f84('0x5b')](_0x13252b)[_0x6f84('0x15')](handleEntityNotFound(_0x2f8ed0,null))[_0x6f84('0x15')](function(_0x18bccd){var _0x3cf76c=[];values=_0x18bccd;if(_0x225bc1['query'][_0x6f84('0x49')]===_0x6f84('0x4a')){_0x3cf76c[_0x6f84('0x46')](get_open_tabs('chat',_0x18bccd['dataValues']));_0x3cf76c[_0x6f84('0x46')](get_open_tabs(_0x6f84('0x5c'),_0x18bccd[_0x6f84('0x4c')]));_0x3cf76c[_0x6f84('0x46')](get_open_tabs(_0x6f84('0x4e'),_0x18bccd[_0x6f84('0x4c')]));_0x3cf76c['push'](get_open_tabs(_0x6f84('0x4f'),_0x18bccd[_0x6f84('0x4c')]));_0x3cf76c[_0x6f84('0x46')](get_open_tabs(_0x6f84('0x5d'),_0x18bccd[_0x6f84('0x4c')]));_0x3cf76c['push'](get_open_tabs(_0x6f84('0x4d'),_0x18bccd[_0x6f84('0x4c')]));return BPromise[_0x6f84('0x50')](_0x3cf76c);}else{return values;}})['then'](function(_0x50dd6b){return values;})[_0x6f84('0x15')](respondWithResult(_0x2f8ed0,null))[_0x6f84('0x1e')](handleError(_0x2f8ed0,null));};exports[_0x6f84('0x29')]=function(_0x57d912,_0x3ec431){if(_0x57d912[_0x6f84('0x5e')]['id']){delete _0x57d912[_0x6f84('0x5e')]['id'];}delete _0x57d912[_0x6f84('0x5e')][_0x6f84('0x2b')];return db['User'][_0x6f84('0x5b')]({'where':{'id':_0x57d912[_0x6f84('0x51')]['id']}})[_0x6f84('0x15')](handleEntityNotFound(_0x3ec431,null))[_0x6f84('0x15')](saveUpdates(_0x57d912[_0x6f84('0x5e')],null))[_0x6f84('0x15')](respondWithResult(_0x3ec431,null))[_0x6f84('0x1e')](handleError(_0x3ec431,null));};exports['describe']=function(_0x393910,_0x9c21d7){return db['User'][_0x6f84('0x5f')]()[_0x6f84('0x15')](respondWithResult(_0x9c21d7,null))[_0x6f84('0x1e')](handleError(_0x9c21d7,null));};exports[_0x6f84('0x60')]=function(_0x526171,_0x1260bb){return db[_0x6f84('0x3c')][_0x6f84('0x5b')]({'where':{'id':_0x526171['params']['id']}})['then'](handleEntityNotFound(_0x1260bb,null))['then'](function(_0x147668){if(_0x147668){return _0x147668[_0x6f84('0x60')](_0x526171['body'][_0x6f84('0x61')],_['omit'](_0x526171[_0x6f84('0x5e')],[_0x6f84('0x61'),'id'])||{});}})['then'](respondWithResult(_0x1260bb,null))[_0x6f84('0x1e')](handleError(_0x1260bb,null));};function validateUser(_0x5d4bab){return new BPromise(function(_0x5c1903,_0x1ce222){if(_0x5d4bab['internal'])return _0x5c1903(_0x5d4bab);return db[_0x6f84('0x62')]['findById'](0x1)[_0x6f84('0x15')](function(_0x8ca692){if(_0x8ca692[_0x6f84('0x63')])authService[_0x6f84('0x64')](_0x5d4bab[_0x6f84('0x3f')]);db[_0x6f84('0x3c')]['max']('internal')[_0x6f84('0x15')](function(_0x307721){if(_[_0x6f84('0x65')](_0x307721)){_0x5d4bab[_0x6f84('0x66')]=_0x8ca692[_0x6f84('0x67')]||0x1;return;}if(_['isNil'](_0x8ca692[_0x6f84('0x67')])||_0x8ca692[_0x6f84('0x67')]===_0x307721){_0x5d4bab[_0x6f84('0x66')]=_0x307721+0x1;return;}if(_0x8ca692[_0x6f84('0x67')]>_0x307721){_0x5d4bab[_0x6f84('0x66')]=_0x8ca692[_0x6f84('0x67')];return;}return db[_0x6f84('0x68')]['query'](_0x6f84('0x69'),{'type':db['sequelize'][_0x6f84('0x6a')][_0x6f84('0x6b')]})['then'](function(_0xba7b55){if(_0xba7b55&&_0xba7b55['length']){for(var _0xad88c6=0x0,_0x4bef2b=_0xba7b55[_0x6f84('0x4b')];_0xad88c6<_0x4bef2b&&_[_0x6f84('0x65')](_0x5d4bab[_0x6f84('0x66')]);_0xad88c6++){if(_0x8ca692[_0x6f84('0x67')]<=_0xba7b55[_0xad88c6][_0x6f84('0x6c')]){_0x5d4bab[_0x6f84('0x66')]=_0xba7b55[_0xad88c6][_0x6f84('0x6c')];}else if(_0x8ca692[_0x6f84('0x67')]>_0xba7b55[_0xad88c6][_0x6f84('0x6c')]&&_0x8ca692['min_internal']<=_0xba7b55[_0xad88c6]['to']){_0x5d4bab[_0x6f84('0x66')]=_0x8ca692[_0x6f84('0x67')];}}}if(_[_0x6f84('0x65')](_0x5d4bab[_0x6f84('0x66')])){_0x5d4bab[_0x6f84('0x66')]=_0x307721+0x1;}return _0x5c1903(_0x5d4bab);});});})[_0x6f84('0x1e')](function(_0x1e9a55){_0x1ce222(_0x1e9a55);});});}function updateUser(_0x4b8d85){return new BPromise(function(_0x24bd0d,_0x1cdf6c){try{if(_0x4b8d85[_0x6f84('0x6d')]){_0x4b8d85[_0x6f84('0x6e')]=_0x4b8d85[_0x6f84('0x66')];_0x4b8d85['VoiceMail']={'mailbox':_0x4b8d85[_0x6f84('0x66')],'password':_0x4b8d85[_0x6f84('0x3f')],'fullname':_0x4b8d85['fullname'],'email':_0x4b8d85[_0x6f84('0x6f')]};}if(_0x4b8d85[_0x6f84('0x2b')]===_0x6f84('0x70')){if(!_0x4b8d85['permissions'])_0x4b8d85[_0x6f84('0x71')]=[_0x6f84('0x72'),'102',_0x6f84('0x73'),'113','110',_0x6f84('0x74'),'105',_0x6f84('0x75'),_0x6f84('0x76'),'108','109','100',_0x6f84('0x77'),'114','115'];}_0x24bd0d(_0x4b8d85);}catch(_0x4585cd){_0x1cdf6c(_0x4585cd);}});}exports['create']=function(_0x389893,_0x47f9ea){if(_0x389893[_0x6f84('0x2d')][_0x6f84('0x2b')]===_0x6f84('0x70'))throw new Error(_0x6f84('0x78'));if(_0x389893['body'][_0x6f84('0x2b')]==='user'&&_0x389893['user']['role']!=='admin'){throw new Error(_0x6f84('0x79'));}if(_0x389893[_0x6f84('0x5e')][_0x6f84('0x2b')]===_0x6f84('0x7a')&&_0x389893[_0x6f84('0x2d')][_0x6f84('0x2b')]!==_0x6f84('0x7a')){throw new Error(_0x6f84('0x7b'));}return licenseUtil['checkUserLimits']([_0x389893['body']])[_0x6f84('0x15')](function(){return validateUser(_0x389893['body']);})[_0x6f84('0x15')](function(_0x24731d){return updateUser(_0x24731d)[_0x6f84('0x15')](function(_0x45a454){if(_0x45a454[_0x6f84('0x2b')]===_0x6f84('0x7a')){_0x45a454[_0x6f84('0x7c')]=_0x389893[_0x6f84('0x2d')]['settingsEnabled'];delete _0x45a454[_0x6f84('0x7d')];}return _0x45a454;});})[_0x6f84('0x15')](function(_0x54fa0f){return db[_0x6f84('0x3c')][_0x6f84('0x7e')](_0x54fa0f,{'include':[{'model':db[_0x6f84('0x7f')],'as':_0x6f84('0x7f')}]});})[_0x6f84('0x15')](function(_0x3557a8){if(_0x389893[_0x6f84('0x5e')][_0x6f84('0x2b')]==='user')return _0x3557a8;if(_0x389893[_0x6f84('0x2d')][_0x6f84('0x2b')]!==_0x6f84('0x2d'))return _0x3557a8;return db[_0x6f84('0x80')][_0x6f84('0x5b')]({'where':{'name':_0x3557a8[_0x6f84('0x2b')]===_0x6f84('0x70')?'Agents':_0x6f84('0x2f'),'userProfileId':_0x389893['user']['userProfileId']},'raw':!![]})[_0x6f84('0x15')](function(_0x215773){if(!_0x215773||_0x215773[_0x6f84('0x81')]!=0x0)return _0x3557a8;return db[_0x6f84('0x37')][_0x6f84('0x7e')]({'name':_0x3557a8[_0x6f84('0x36')],'resourceId':_0x3557a8['id'],'type':_0x215773[_0x6f84('0x36')],'sectionId':_0x215773['id']},{})[_0x6f84('0x15')](function(){return _0x3557a8;});})[_0x6f84('0x1e')](function(_0x1d57cc){logger[_0x6f84('0x19')](_0x6f84('0x82'),_0x1d57cc);throw _0x1d57cc;});})['then'](respondWithResult(_0x47f9ea,0xc9))[_0x6f84('0x1e')](handleError(_0x47f9ea,null));};exports['bulkCreate']=function(_0x4a0c23,_0x29c93){var _0x79065d=_0x4a0c23[_0x6f84('0x5e')];var _0x4b4fad=[];if(_0x4a0c23[_0x6f84('0x2d')][_0x6f84('0x2b')]===_0x6f84('0x70'))throw new Error('Unauthorized');if(_[_0x6f84('0x83')](_0x79065d,[_0x6f84('0x2b'),'user'])&&_0x4a0c23['user']['role']!==_0x6f84('0x7a')){throw new Error(_0x6f84('0x79'));}if(_['some'](_0x79065d,[_0x6f84('0x2b'),_0x6f84('0x7a')])&&_0x4a0c23[_0x6f84('0x2d')][_0x6f84('0x2b')]!==_0x6f84('0x7a')){throw new Error(_0x6f84('0x84'));}return licenseUtil['checkUserLimits'](_0x79065d)[_0x6f84('0x15')](function(){return validateUser(_0x79065d[0x0]);})[_0x6f84('0x15')](function(){for(var _0x275a94=0x1;_0x275a94<_0x79065d['length'];_0x275a94++){var _0x15f33d=_0x79065d[_0x275a94-0x1][_0x6f84('0x66')];if(!_0x79065d[_0x275a94][_0x6f84('0x66')])_0x79065d[_0x275a94]['internal']=_0x15f33d+0x1;_0x4b4fad[_0x6f84('0x46')](validateUser(_0x79065d[_0x275a94]));}return BPromise[_0x6f84('0x50')](_0x4b4fad);})[_0x6f84('0x15')](function(){_0x4b4fad=[];for(var _0x4f9830=0x0;_0x4f9830<_0x79065d[_0x6f84('0x4b')];_0x4f9830++){_0x4b4fad[_0x6f84('0x46')](updateUser(_0x79065d[_0x4f9830]));}return BPromise['all'](_0x4b4fad);})['then'](function(){return BPromise[_0x6f84('0x85')](_0x79065d,function(_0x5bbeca){return db[_0x6f84('0x3c')][_0x6f84('0x7e')](_0x5bbeca,{'include':[{'model':db[_0x6f84('0x7f')],'as':_0x6f84('0x7f')}]})[_0x6f84('0x15')](function(_0x5ba04c){_0x5bbeca['id']=_0x5ba04c['id'];return _0x5bbeca;});});})['then'](function(_0x1a0d78){if(_0x4a0c23['body'][_0x6f84('0x2b')]===_0x6f84('0x2d'))return _0x1a0d78;if(_0x4a0c23['user'][_0x6f84('0x2b')]!==_0x6f84('0x2d'))return _0x1a0d78;var _0x392a80=_[_0x6f84('0x83')](_0x1a0d78,function(_0x207c31){return _0x207c31['role']===_0x6f84('0x70')||_0x207c31[_0x6f84('0x2b')]===_0x6f84('0x30');});if(!_0x392a80)return _0x1a0d78;return db['UserProfileSection'][_0x6f84('0x47')]({'where':{'name':{'$or':[_0x6f84('0x2e'),_0x6f84('0x2f')]},'userProfileId':_0x4a0c23[_0x6f84('0x2d')]['userProfileId']},'raw':!![]})['then'](function(_0x207634){if(_[_0x6f84('0x86')](_0x207634)||!_[_0x6f84('0x83')](_0x207634,[_0x6f84('0x81'),0x0]))return _0x1a0d78;_0x4b4fad=[];var _0x3c2ff6=_(_0x207634)[_0x6f84('0x33')](function(_0x1059f3){if(_0x1059f3[_0x6f84('0x81')]===0x1)return;return _0x1059f3[_0x6f84('0x36')]===_0x6f84('0x2e')?'agent':_0x6f84('0x30');})[_0x6f84('0x87')]()['value']();for(var _0x421627=0x0;_0x421627<_0x1a0d78[_0x6f84('0x4b')];_0x421627++){if(!_[_0x6f84('0x35')](_0x3c2ff6,_0x1a0d78[_0x421627][_0x6f84('0x2b')]))return;var _0x14c26f=_0x1a0d78[_0x421627]['role']==='agent'?_0x6f84('0x2e'):_0x6f84('0x2f');_0x4b4fad[_0x6f84('0x46')](db[_0x6f84('0x37')][_0x6f84('0x7e')]({'name':_0x1a0d78[_0x421627][_0x6f84('0x36')],'resourceId':_0x1a0d78[_0x421627]['id'],'type':_0x14c26f,'sectionId':_['find'](_0x207634,[_0x6f84('0x36'),_0x14c26f])['id']},{}));}return BPromise[_0x6f84('0x50')](_0x4b4fad);});})['then'](respondWithResult(_0x29c93,0xc9))['catch'](handleError(_0x29c93,null));};exports[_0x6f84('0x88')]=function(_0x325571,_0x1a4971){if(_0x325571[_0x6f84('0x5e')]['id']){delete _0x325571[_0x6f84('0x5e')]['id'];}return db['User'][_0x6f84('0x5b')]({'where':{'id':_0x325571['params']['id']}})[_0x6f84('0x15')](function(_0x5c9189){if(!_0x5c9189)return null;if(_0x5c9189['id']===_0x325571[_0x6f84('0x2d')]['id']){if(!_0x325571[_0x6f84('0x5e')]['oldPassword']||!_0x325571[_0x6f84('0x5e')][_0x6f84('0x89')]){throw new db[(_0x6f84('0x8a'))][(_0x6f84('0x8b'))](_0x6f84('0x8c'));}if(!_0x5c9189[_0x6f84('0x8d')](_0x325571['body'][_0x6f84('0x8e')])){throw new db[(_0x6f84('0x8a'))][(_0x6f84('0x8b'))](_0x6f84('0x8f'));}if(_0x325571['body'][_0x6f84('0x8e')]===_0x325571['body'][_0x6f84('0x89')]){throw new db[(_0x6f84('0x8a'))][(_0x6f84('0x8b'))](_0x6f84('0x90'));}}else if(_0x325571[_0x6f84('0x2d')][_0x6f84('0x2b')]===_0x6f84('0x7a')){if(!_0x325571[_0x6f84('0x5e')]['newPassword']){throw new db[(_0x6f84('0x8a'))][(_0x6f84('0x8b'))](_0x6f84('0x91'));}}else if(_0x325571['user'][_0x6f84('0x2b')]==='user'){if(!_0x325571[_0x6f84('0x5e')][_0x6f84('0x89')]){throw new db['Sequelize'][(_0x6f84('0x8b'))](_0x6f84('0x91'));}if(_0x5c9189[_0x6f84('0x2b')]!==_0x6f84('0x70')){throw new db[(_0x6f84('0x8a'))][(_0x6f84('0x8b'))]('Unauthorized');}}else{throw new db['Sequelize'][(_0x6f84('0x8b'))](_0x6f84('0x78'));}return _0x5c9189;})[_0x6f84('0x15')](handleEntityNotFound(_0x1a4971,null))['then'](function(_0x49b32b){return db['Setting']['findOne']({'attributes':['id',_0x6f84('0x63'),_0x6f84('0x92'),_0x6f84('0x93')]})[_0x6f84('0x15')](function(_0x2a9342){if(_0x2a9342[_0x6f84('0x63')])authService['validatePasswordPattern'](_0x325571['body'][_0x6f84('0x89')]);if(!_0x2a9342[_0x6f84('0x92')]||!_0x49b32b[_0x6f84('0x94')])return _0x49b32b;authService['validatePasswordHistory'](_0x325571[_0x6f84('0x5e')][_0x6f84('0x89')],_0x49b32b[_0x6f84('0x94')],_0x2a9342[_0x6f84('0x93')]);return _0x49b32b;})[_0x6f84('0x15')](saveUpdates({'password':_0x325571[_0x6f84('0x5e')][_0x6f84('0x89')],'passwordResetAt':_0x325571['user']['id']==_0x325571['params']['id']?moment():null,'previousPasswords':authService[_0x6f84('0x95')](_0x325571['body']['newPassword'],_0x49b32b['previousPasswords'])},null));})[_0x6f84('0x15')](respondWithResult(_0x1a4971,null))['catch'](handleError(_0x1a4971,null));};exports['addQueues']=function(_0x4fe1a2,_0x376257){var _0x581df5=_0x4fe1a2[_0x6f84('0x5e')]['channel'];return db['User'][_0x6f84('0x5b')]({'where':{'id':_0x4fe1a2[_0x6f84('0x51')]['id']},'attributes':['id',_0x6f84('0x36'),_0x6f84('0x2b'),'online',_0x6f84('0x96'),_0x6f84('0x97'),_0x6f84('0x98')]})[_0x6f84('0x15')](handleEntityNotFound(_0x376257,null))[_0x6f84('0x15')](function(_0x462967){if(_0x462967){if(!utils[_0x6f84('0x99')](_0x581df5)){throw new db[(_0x6f84('0x8a'))]['ValidationError'](_0x6f84('0x9a'));}return _0x462967['add'+_[_0x6f84('0x9b')](_0x581df5[_0x6f84('0x9c')]())+_0x6f84('0x9d')](_0x4fe1a2[_0x6f84('0x5e')]['ids'],{'penalty':_0x4fe1a2[_0x6f84('0x5e')][_0x6f84('0x9e')]||0x0})[_0x6f84('0x9f')](function(_0x475685){for(var _0x5cc874=0x0;_0x5cc874<_0x4fe1a2[_0x6f84('0x5e')][_0x6f84('0x61')][_0x6f84('0x4b')];_0x5cc874+=0x1){var _0x1f4336={'UserId':Number(_0x4fe1a2[_0x6f84('0x51')]['id'])};_0x1f4336[_[_0x6f84('0x9b')](_0x581df5['toLowerCase']())+_0x6f84('0xa0')]=Number(_0x4fe1a2[_0x6f84('0x5e')][_0x6f84('0x61')][_0x5cc874]);socket['emit'](_0x6f84('0x2d')+_['capitalize'](_0x581df5['toLowerCase']())+_0x6f84('0xa1'),_0x1f4336);}return _0x475685;})[_0x6f84('0x15')](function(){if(_0x581df5===_0x6f84('0xa2')){return db[_0x6f84('0xa3')]['findAll']({'where':{'id':_0x4fe1a2[_0x6f84('0x5e')]['ids']||[]},'raw':!![],'attributes':['id',_0x6f84('0x36')]});}})[_0x6f84('0x15')](function(_0x2b9aac){var _0x469779=_0x462967['get']({'plain':!![]});var _0x5bcd5f=[];if(_0x581df5===_0x6f84('0xa2')&&_0x469779[_0x6f84('0x2b')]===_0x6f84('0x70')&&_0x469779['online']){for(var _0x41d25f=0x0;_0x41d25f<_0x2b9aac['length'];_0x41d25f+=0x1){_0x5bcd5f[_0x6f84('0x46')]({'membername':_0x469779['name'],'UserId':_0x469779['id'],'queue_name':_0x2b9aac[_0x41d25f][_0x6f84('0x36')],'VoiceQueueId':_0x2b9aac[_0x41d25f]['id'],'interface':_[_0x6f84('0x65')](_0x469779['interface'])?util['format'](_0x6f84('0xa4'),_0x469779[_0x6f84('0x36')]):_0x469779[_0x6f84('0x98')],'paused':_0x469779[_0x6f84('0x97')]||![],'penalty':_0x4fe1a2[_0x6f84('0x5e')][_0x6f84('0x9e')]||0x0});}return BPromise[_0x6f84('0x85')](_0x5bcd5f,function(_0x3b6889){return db['UserVoiceQueueRt'][_0x6f84('0xa5')](_0x3b6889);});}return _0x462967;});}})[_0x6f84('0x15')](respondWithStatusCode(_0x376257,null))[_0x6f84('0x1e')](handleError(_0x376257,null));};exports['removeQueues']=function(_0x3ef73a,_0x539537){var _0x242d6d;return db[_0x6f84('0x3c')]['find']({'where':{'id':_0x3ef73a[_0x6f84('0x51')]['id']},'attributes':['id',_0x6f84('0x36'),'role']})[_0x6f84('0x15')](handleEntityNotFound(_0x539537,null))['then'](function(_0x1bff2c){if(_0x1bff2c){_0x242d6d=_0x1bff2c;if(!_0x3ef73a[_0x6f84('0x42')][_0x6f84('0xa6')]||!utils[_0x6f84('0x99')](_0x3ef73a[_0x6f84('0x42')][_0x6f84('0xa6')])){throw new db[(_0x6f84('0x8a'))][(_0x6f84('0x8b'))]('Unknown\x20channel');}return _0x1bff2c[_0x6f84('0xa7')+_[_0x6f84('0x9b')](_0x3ef73a[_0x6f84('0x42')][_0x6f84('0xa6')]['toLowerCase']())+_0x6f84('0x9d')](_0x3ef73a[_0x6f84('0x42')][_0x6f84('0x61')]);}})[_0x6f84('0x15')](function(_0x13dd43){if(_[_0x6f84('0xa8')](_0x3ef73a['query'][_0x6f84('0x61')])){for(var _0x263710=0x0;_0x263710<_0x3ef73a[_0x6f84('0x42')][_0x6f84('0x61')][_0x6f84('0x4b')];_0x263710+=0x1){var _0x159666={'UserId':Number(_0x3ef73a[_0x6f84('0x51')]['id'])};_0x159666[_[_0x6f84('0x9b')](_0x3ef73a['query'][_0x6f84('0xa6')][_0x6f84('0x9c')]())+_0x6f84('0xa0')]=Number(_0x3ef73a[_0x6f84('0x42')]['ids'][_0x263710]);socket[_0x6f84('0xa9')](_0x6f84('0x2d')+_[_0x6f84('0x9b')](_0x3ef73a[_0x6f84('0x42')]['channel'][_0x6f84('0x9c')]())+_0x6f84('0xaa'),_0x159666);}}else{var _0x159666={'UserId':Number(_0x3ef73a[_0x6f84('0x51')]['id'])};_0x159666[_[_0x6f84('0x9b')](_0x3ef73a[_0x6f84('0x42')][_0x6f84('0xa6')]['toLowerCase']())+'QueueId']=Number(_0x3ef73a[_0x6f84('0x42')][_0x6f84('0x61')]);socket[_0x6f84('0xa9')](_0x6f84('0x2d')+_[_0x6f84('0x9b')](_0x3ef73a[_0x6f84('0x42')]['channel'][_0x6f84('0x9c')]())+_0x6f84('0xaa'),_0x159666);}return _0x13dd43;})[_0x6f84('0x15')](function(){if(_0x3ef73a['query'][_0x6f84('0xa6')]===_0x6f84('0xa2')){return db[_0x6f84('0xab')]['destroy']({'where':{'UserId':_0x3ef73a['params']['id'],'VoiceQueueId':_0x3ef73a[_0x6f84('0x42')][_0x6f84('0x61')]},'individualHooks':!![]})['then'](function(){return _0x242d6d;});}return _0x242d6d;})[_0x6f84('0x15')](respondWithStatusCode(_0x539537,null))[_0x6f84('0x1e')](handleError(_0x539537,null));};exports[_0x6f84('0xac')]=function(_0x1598cb,_0x259190){_0x1598cb[_0x6f84('0x5e')]['userpic']=_0x1598cb[_0x6f84('0xad')][_0x6f84('0xae')];return db[_0x6f84('0x3c')]['find']({'where':{'id':_0x1598cb[_0x6f84('0x51')]['id']}})[_0x6f84('0x15')](handleEntityNotFound(_0x259190,null))[_0x6f84('0x15')](saveUpdates(_0x1598cb['body'],null))[_0x6f84('0x15')](respondWithResult(_0x259190,null))[_0x6f84('0x1e')](handleError(_0x259190,null));};exports[_0x6f84('0xaf')]=function(_0x539b9c,_0x286715){var _0x6ca3c0=path[_0x6f84('0xb0')](config[_0x6f84('0xb1')],_0x6f84('0xb2'));return db[_0x6f84('0x3c')][_0x6f84('0x5b')]({'where':{'id':_0x539b9c['params']['id']},'attributes':['id',_0x6f84('0xb3')],'raw':!![]})[_0x6f84('0x15')](handleEntityNotFound(_0x286715,null))[_0x6f84('0x15')](function(_0x2bcedb){if(_0x2bcedb){if(_[_0x6f84('0x65')](_0x2bcedb[_0x6f84('0xb3')])){return _0x286715[_0x6f84('0xb4')](_0x6ca3c0);}else{if(!fs[_0x6f84('0xb5')](path[_0x6f84('0xb0')](config[_0x6f84('0xb1')],_0x6f84('0xb6'),_0x2bcedb[_0x6f84('0xb3')]))){return _0x286715[_0x6f84('0xb4')](_0x6ca3c0);}return _0x286715['download'](path[_0x6f84('0xb0')](config[_0x6f84('0xb1')],_0x6f84('0xb6'),_0x2bcedb[_0x6f84('0xb3')]));}}})[_0x6f84('0x1e')](handleError(_0x286715,null));};exports[_0x6f84('0xb7')]=function(_0x2f65d3,_0x4cfc30){return db['User'][_0x6f84('0x5b')]({'where':{'id':_0x2f65d3[_0x6f84('0x51')]['id']},'attributes':['id']})[_0x6f84('0x15')](handleEntityNotFound(_0x4cfc30,null))['then'](function(_0x3a0c70){var _0x5b8e06=[];values=_0x3a0c70[_0x6f84('0x4c')];_0x5b8e06[_0x6f84('0x46')](get_open_tabs(_0x6f84('0xb8'),_0x3a0c70['dataValues']));_0x5b8e06[_0x6f84('0x46')](get_open_tabs('sms',_0x3a0c70[_0x6f84('0x4c')]));_0x5b8e06['push'](get_open_tabs(_0x6f84('0x4e'),_0x3a0c70['dataValues']));_0x5b8e06[_0x6f84('0x46')](get_open_tabs(_0x6f84('0x4f'),_0x3a0c70[_0x6f84('0x4c')]));_0x5b8e06['push'](get_open_tabs(_0x6f84('0x5d'),_0x3a0c70[_0x6f84('0x4c')]));_0x5b8e06[_0x6f84('0x46')](get_open_tabs(_0x6f84('0x4d'),_0x3a0c70[_0x6f84('0x4c')]));return BPromise[_0x6f84('0x50')](_0x5b8e06);})[_0x6f84('0x15')](function(_0x4dc189){var _0x29d533=[];if(_0x4dc189){for(var _0x4eec56=0x0;_0x4eec56<values[_0x6f84('0xb9')][_0x6f84('0x4b')];_0x4eec56++){var _0x2e8b2f=values['ChatOpenTabs'][_0x4eec56];_0x29d533['push']({'channel':_0x6f84('0xba'),'id':_0x2e8b2f['id'],'createdAt':_0x2e8b2f['createdAt']});}for(var _0x4eec56=0x0;_0x4eec56<values[_0x6f84('0xbb')][_0x6f84('0x4b')];_0x4eec56++){var _0x2e8b2f=values['FaxOpenTabs'][_0x4eec56];_0x29d533[_0x6f84('0x46')]({'channel':_0x6f84('0xbc'),'id':_0x2e8b2f['id'],'createdAt':_0x2e8b2f[_0x6f84('0xbd')]});}for(var _0x4eec56=0x0;_0x4eec56<values[_0x6f84('0xbe')][_0x6f84('0x4b')];_0x4eec56++){var _0x2e8b2f=values[_0x6f84('0xbe')][_0x4eec56];_0x29d533[_0x6f84('0x46')]({'channel':_0x6f84('0xbf'),'id':_0x2e8b2f['id'],'createdAt':_0x2e8b2f[_0x6f84('0xbd')]});}for(var _0x4eec56=0x0;_0x4eec56<values[_0x6f84('0xc0')][_0x6f84('0x4b')];_0x4eec56++){var _0x2e8b2f=values['MailOpenTabs'][_0x4eec56];_0x29d533[_0x6f84('0x46')]({'channel':_0x6f84('0xc1'),'id':_0x2e8b2f['id'],'createdAt':_0x2e8b2f[_0x6f84('0xbd')]});}for(var _0x4eec56=0x0;_0x4eec56<values['SmsOpenTabs'][_0x6f84('0x4b')];_0x4eec56++){var _0x2e8b2f=values[_0x6f84('0xc2')][_0x4eec56];_0x29d533[_0x6f84('0x46')]({'channel':_0x6f84('0xc3'),'id':_0x2e8b2f['id'],'createdAt':_0x2e8b2f[_0x6f84('0xbd')]});}for(var _0x4eec56=0x0;_0x4eec56<values[_0x6f84('0xc4')][_0x6f84('0x4b')];_0x4eec56++){var _0x2e8b2f=values[_0x6f84('0xc4')][_0x4eec56];_0x29d533[_0x6f84('0x46')]({'channel':'WHATSAPP','id':_0x2e8b2f['id'],'createdAt':_0x2e8b2f['createdAt']});}var _0x5cd663={'count':_0x29d533[_0x6f84('0x4b')],'rows':_0x29d533};return _0x5cd663;}else return null;})[_0x6f84('0x15')](respondWithResult(_0x4cfc30,null))[_0x6f84('0x1e')](handleError(_0x4cfc30,null));};exports['getContacts']=function(_0x7f20a9,_0x2bb690){var _0x10a0e2={};var _0x2c0a6c={};var _0x212c22;var _0x3f5fa3;return db['User']['findOne']({'where':{'id':_0x7f20a9['params']['id']}})[_0x6f84('0x15')](handleEntityNotFound(_0x2bb690,null))[_0x6f84('0x15')](function(_0x4394c3){if(_0x4394c3){_0x212c22=_0x4394c3;_0x2c0a6c[_0x6f84('0x52')]=_['keys'](db[_0x6f84('0xc5')][_0x6f84('0x54')]);_0x2c0a6c[_0x6f84('0x42')]=_[_0x6f84('0x53')](_0x7f20a9['query']);_0x2c0a6c[_0x6f84('0x56')]=_[_0x6f84('0x57')](_0x2c0a6c['model'],_0x2c0a6c[_0x6f84('0x42')]);_0x10a0e2['attributes']=_[_0x6f84('0x57')](_0x2c0a6c['model'],qs[_0x6f84('0x58')](_0x7f20a9['query'][_0x6f84('0x58')]));_0x10a0e2[_0x6f84('0x45')]=_0x10a0e2['attributes'][_0x6f84('0x4b')]?_0x10a0e2[_0x6f84('0x45')]:_0x2c0a6c[_0x6f84('0x52')];_0x10a0e2[_0x6f84('0xc6')]=qs[_0x6f84('0xc7')](_0x7f20a9[_0x6f84('0x42')][_0x6f84('0xc7')]);_0x10a0e2[_0x6f84('0x41')]=qs[_0x6f84('0x56')](_[_0x6f84('0xc8')](_0x7f20a9[_0x6f84('0x42')],_0x2c0a6c[_0x6f84('0x56')]));if(_0x7f20a9[_0x6f84('0x42')][_0x6f84('0x31')]){_0x10a0e2['where']=_[_0x6f84('0x59')](_0x10a0e2[_0x6f84('0x41')],{'$or':_[_0x6f84('0x33')](_0x10a0e2[_0x6f84('0x45')],function(_0x145d8b){var _0x583430={};_0x583430[_0x145d8b]={'$like':'%'+_0x7f20a9[_0x6f84('0x42')][_0x6f84('0x31')]+'%'};return _0x583430;})});}_0x10a0e2=_[_0x6f84('0x59')]({},_0x10a0e2,_0x7f20a9[_0x6f84('0x5a')]);return _0x212c22['getContacts'](_0x10a0e2);}})['then'](function(_0x2f8c67){if(_0x2f8c67){_0x3f5fa3=_0x2f8c67[_0x6f84('0x4b')];if(_0x7f20a9['query'][_0x6f84('0xc9')](_0x6f84('0x43'))){_0x10a0e2[_0x6f84('0x44')]=[{'model':db['CmList'],'as':'List','required':![]},{'model':db[_0x6f84('0xca')],'as':_0x6f84('0xcb'),'attributes':['id','name',_0x6f84('0xcc')],'where':_0x7f20a9[_0x6f84('0x42')]['tag']?{'id':_0x7f20a9[_0x6f84('0x42')]['tag']}:undefined,'required':_0x7f20a9['query'][_0x6f84('0xcd')]?!![]:![]}];}if(!_0x7f20a9[_0x6f84('0x42')][_0x6f84('0xc9')](_0x6f84('0xce'))){_0x10a0e2[_0x6f84('0x25')]=qs[_0x6f84('0x25')](_0x7f20a9[_0x6f84('0x42')][_0x6f84('0x25')]);_0x10a0e2[_0x6f84('0x23')]=qs[_0x6f84('0x23')](_0x7f20a9[_0x6f84('0x42')][_0x6f84('0x23')]);}return _0x212c22[_0x6f84('0xcf')](_0x10a0e2);}})[_0x6f84('0x15')](function(_0x7e1002){if(_0x7e1002){return _0x7e1002?{'count':_0x3f5fa3,'rows':_0x7e1002}:null;}})[_0x6f84('0x15')](respondWithResult(_0x2bb690,null))[_0x6f84('0x1e')](handleError(_0x2bb690,null));};exports['getQueues']=function(_0x359fac,_0x282820){var _0x5b8cfc;var _0x4ddcd5;var _0x51c118={};var _0x5b1079;return db[_0x6f84('0x3c')][_0x6f84('0xd0')]({'where':{'id':_0x359fac['params']['id']},'attributes':['id',_0x6f84('0x36'),'role']})['then'](handleEntityNotFound(_0x282820,null))[_0x6f84('0x15')](function(_0xafdc9e){if(!utils[_0x6f84('0x99')](_0x359fac[_0x6f84('0x42')][_0x6f84('0xa6')])){throw new db[(_0x6f84('0x8a'))][(_0x6f84('0x8b'))](_0x6f84('0x9a'));}_0x5b8cfc=_0xafdc9e;var _0x23d418={};_0x23d418[_0x6f84('0x52')]=_['keys'](db[_[_0x6f84('0x9b')](_0x359fac['query'][_0x6f84('0xa6')])+'Queue'][_0x6f84('0x54')]);_0x23d418['query']=_[_0x6f84('0x53')](_0x359fac[_0x6f84('0x42')]);_0x23d418[_0x6f84('0x56')]=_[_0x6f84('0x57')](_0x23d418[_0x6f84('0x52')],_0x23d418[_0x6f84('0x42')]);_0x51c118[_0x6f84('0x45')]=_[_0x6f84('0x57')](_0x23d418[_0x6f84('0x52')],qs[_0x6f84('0x58')](_0x359fac['query'][_0x6f84('0x58')]));_0x51c118[_0x6f84('0x45')]=_0x51c118['attributes']['length']?_0x51c118['attributes']:_0x23d418[_0x6f84('0x52')];_0x51c118['order']=qs['sort'](_0x359fac[_0x6f84('0x42')]['sort']);_0x51c118[_0x6f84('0x41')]=qs[_0x6f84('0x56')](_[_0x6f84('0xc8')](_0x359fac[_0x6f84('0x42')],_0x23d418[_0x6f84('0x56')]));if(_0x359fac[_0x6f84('0x42')][_0x6f84('0x31')]){_0x51c118[_0x6f84('0x41')]=_['merge'](_0x51c118[_0x6f84('0x41')],{'$or':_[_0x6f84('0x33')](_0x51c118['attributes'],function(_0xc148ea){var _0x13b6c1={};_0x13b6c1[_0xc148ea]={'$like':'%'+_0x359fac['query'][_0x6f84('0x31')]+'%'};return _0x13b6c1;})});}_0x51c118=_[_0x6f84('0x59')]({},_0x51c118,_0x359fac[_0x6f84('0x5a')]);switch(_0x5b8cfc['role']){case _0x6f84('0x7a'):return db[_[_0x6f84('0x9b')](_0x359fac[_0x6f84('0x42')][_0x6f84('0xa6')])+_0x6f84('0xd1')]['findAll'](_0x51c118);case'user':case _0x6f84('0x70'):return _0x5b8cfc[_0x6f84('0x2a')+_[_0x6f84('0x9b')](_0x359fac[_0x6f84('0x42')][_0x6f84('0xa6')])+'Queues'](_0x51c118);default:throw new db[(_0x6f84('0x8a'))][(_0x6f84('0x8b'))](_0x6f84('0xd2'));}})[_0x6f84('0x15')](function(_0x4fdfec){_0x5b1079=_0x4fdfec[_0x6f84('0x4b')];if(!_0x359fac[_0x6f84('0x42')]['hasOwnProperty']('nolimit')){_0x51c118[_0x6f84('0x25')]=qs[_0x6f84('0x25')](_0x359fac[_0x6f84('0x42')]['limit']);_0x51c118[_0x6f84('0x23')]=qs[_0x6f84('0x23')](_0x359fac[_0x6f84('0x42')]['offset']);}switch(_0x5b8cfc[_0x6f84('0x2b')]){case _0x6f84('0x7a'):return db[_[_0x6f84('0x9b')](_0x359fac[_0x6f84('0x42')][_0x6f84('0xa6')])+'Queue']['findAll'](_0x51c118);case _0x6f84('0x2d'):case _0x6f84('0x70'):return _0x5b8cfc[_0x6f84('0x2a')+_[_0x6f84('0x9b')](_0x359fac[_0x6f84('0x42')][_0x6f84('0xa6')])+_0x6f84('0x9d')](_0x51c118);}})['then'](function(_0x2e0b50){return{'count':_0x5b1079,'rows':_0x2e0b50};})['then'](respondWithResult(_0x282820,null))[_0x6f84('0x1e')](handleError(_0x282820,null));};exports[_0x6f84('0xd3')]=function(_0x8d208e,_0x582734){var _0x2890a3={};var _0x2e6ed2={};var _0x54cacf;var _0x2b9ec0;return db[_0x6f84('0x3c')][_0x6f84('0xd0')]({'where':{'id':_0x8d208e[_0x6f84('0x51')]['id']}})[_0x6f84('0x15')](handleEntityNotFound(_0x582734,null))['then'](function(_0x510e3f){if(_0x510e3f){_0x54cacf=_0x510e3f;_0x2e6ed2[_0x6f84('0x52')]=_[_0x6f84('0x53')](db[_0x6f84('0xab')][_0x6f84('0x54')]);_0x2e6ed2[_0x6f84('0x42')]=_[_0x6f84('0x53')](_0x8d208e[_0x6f84('0x42')]);_0x2e6ed2[_0x6f84('0x56')]=_['intersection'](_0x2e6ed2[_0x6f84('0x52')],_0x2e6ed2[_0x6f84('0x42')]);_0x2890a3['attributes']=_[_0x6f84('0x57')](_0x2e6ed2[_0x6f84('0x52')],qs[_0x6f84('0x58')](_0x8d208e[_0x6f84('0x42')][_0x6f84('0x58')]));_0x2890a3[_0x6f84('0x45')]=_0x2890a3[_0x6f84('0x45')]['length']?_0x2890a3['attributes']:_0x2e6ed2[_0x6f84('0x52')];_0x2890a3['order']=qs[_0x6f84('0xc7')](_0x8d208e[_0x6f84('0x42')][_0x6f84('0xc7')]);_0x2890a3[_0x6f84('0x41')]=qs[_0x6f84('0x56')](_[_0x6f84('0xc8')](_0x8d208e['query'],_0x2e6ed2[_0x6f84('0x56')]));if(_0x8d208e[_0x6f84('0x42')]['filter']){_0x2890a3[_0x6f84('0x41')]=_[_0x6f84('0x59')](_0x2890a3[_0x6f84('0x41')],{'$or':_[_0x6f84('0x33')](_0x2890a3['attributes'],function(_0x30798a){var _0x49a0ed={};_0x49a0ed[_0x30798a]={'$like':'%'+_0x8d208e[_0x6f84('0x42')]['filter']+'%'};return _0x49a0ed;})});}_0x2890a3=_[_0x6f84('0x59')]({},_0x2890a3,_0x8d208e[_0x6f84('0x5a')]);return _0x54cacf['getVoiceQueuesRt'](_0x2890a3);}})['then'](function(_0x5457e8){if(_0x5457e8){_0x2b9ec0=_0x5457e8[_0x6f84('0x4b')];if(!_0x8d208e[_0x6f84('0x42')][_0x6f84('0xc9')](_0x6f84('0xce'))){_0x2890a3[_0x6f84('0x25')]=qs['limit'](_0x8d208e[_0x6f84('0x42')][_0x6f84('0x25')]);_0x2890a3[_0x6f84('0x23')]=qs[_0x6f84('0x23')](_0x8d208e[_0x6f84('0x42')][_0x6f84('0x23')]);}return _0x54cacf[_0x6f84('0xd3')](_0x2890a3);}})['then'](function(_0x413191){if(_0x413191){return _0x413191?{'count':_0x2b9ec0,'rows':_0x413191}:null;}})['then'](respondWithResult(_0x582734,null))[_0x6f84('0x1e')](handleError(_0x582734,null));};exports[_0x6f84('0xd4')]=function(_0x238463,_0x31db25){var _0x6286d5={};var _0x216f8e={};var _0x531064;var _0x32b559;return db['User'][_0x6f84('0xd0')]({'where':{'id':_0x238463[_0x6f84('0x51')]['id']}})[_0x6f84('0x15')](handleEntityNotFound(_0x31db25,null))[_0x6f84('0x15')](function(_0x7ce28d){if(_0x7ce28d){_0x531064=_0x7ce28d;_0x216f8e[_0x6f84('0x52')]=_['keys'](db[_0x6f84('0xd5')][_0x6f84('0x54')]);_0x216f8e[_0x6f84('0x42')]=_['keys'](_0x238463[_0x6f84('0x42')]);_0x216f8e[_0x6f84('0x56')]=_[_0x6f84('0x57')](_0x216f8e[_0x6f84('0x52')],_0x216f8e['query']);_0x6286d5[_0x6f84('0x45')]=_[_0x6f84('0x57')](_0x216f8e[_0x6f84('0x52')],qs[_0x6f84('0x58')](_0x238463['query'][_0x6f84('0x58')]));_0x6286d5[_0x6f84('0x45')]=_0x6286d5['attributes'][_0x6f84('0x4b')]?_0x6286d5[_0x6f84('0x45')]:_0x216f8e[_0x6f84('0x52')];_0x6286d5[_0x6f84('0xc6')]=qs['sort'](_0x238463['query']['sort']);_0x6286d5['where']=qs[_0x6f84('0x56')](_['pick'](_0x238463[_0x6f84('0x42')],_0x216f8e[_0x6f84('0x56')]));if(_0x238463['query'][_0x6f84('0x31')]){_0x6286d5[_0x6f84('0x41')]=_['merge'](_0x6286d5[_0x6f84('0x41')],{'$or':_[_0x6f84('0x33')](_0x6286d5[_0x6f84('0x45')],function(_0x5a4fcd){var _0x4ab9a3={};_0x4ab9a3[_0x5a4fcd]={'$like':'%'+_0x238463[_0x6f84('0x42')]['filter']+'%'};return _0x4ab9a3;})});}_0x6286d5=_[_0x6f84('0x59')]({},_0x6286d5,_0x238463['options']);return _0x531064[_0x6f84('0xd4')](_0x6286d5);}})[_0x6f84('0x15')](function(_0x2d7bac){if(_0x2d7bac){_0x32b559=_0x2d7bac[_0x6f84('0x4b')];if(!_0x238463[_0x6f84('0x42')][_0x6f84('0xc9')]('nolimit')){_0x6286d5[_0x6f84('0x25')]=qs[_0x6f84('0x25')](_0x238463[_0x6f84('0x42')][_0x6f84('0x25')]);_0x6286d5['offset']=qs[_0x6f84('0x23')](_0x238463['query'][_0x6f84('0x23')]);}return _0x531064['getGroups'](_0x6286d5);}})[_0x6f84('0x15')](function(_0x41600f){if(_0x41600f){return _0x41600f?{'count':_0x32b559,'rows':_0x41600f}:null;}})[_0x6f84('0x15')](respondWithResult(_0x31db25,null))[_0x6f84('0x1e')](handleError(_0x31db25,null));};exports[_0x6f84('0xd6')]=function(_0x54ad42,_0x4788c4){var _0x3580b6={'raw':!![],'where':{}};var _0x4afac0={};var _0x120650={'count':0x0,'rows':[]};return db[_0x6f84('0x3c')][_0x6f84('0xd0')]({'where':{'id':_0x54ad42[_0x6f84('0x51')]['id']}})[_0x6f84('0x15')](handleEntityNotFound(_0x4788c4,null))['then'](function(_0x3a61fc){if(_0x3a61fc){_0x4afac0[_0x6f84('0x52')]=_[_0x6f84('0x53')](db['VoiceRecording']['rawAttributes']);_0x4afac0[_0x6f84('0x42')]=_[_0x6f84('0x53')](_0x54ad42['query']);_0x4afac0['filters']=_[_0x6f84('0x57')](_0x4afac0[_0x6f84('0x52')],_0x4afac0[_0x6f84('0x42')]);_0x3580b6[_0x6f84('0x45')]=_[_0x6f84('0x57')](_0x4afac0[_0x6f84('0x52')],qs[_0x6f84('0x58')](_0x54ad42[_0x6f84('0x42')][_0x6f84('0x58')]));_0x3580b6['attributes']=_0x3580b6[_0x6f84('0x45')][_0x6f84('0x4b')]?_0x3580b6[_0x6f84('0x45')]:_0x4afac0[_0x6f84('0x52')];if(!_0x54ad42['query'][_0x6f84('0xc9')]('nolimit')){_0x3580b6[_0x6f84('0x25')]=qs[_0x6f84('0x25')](_0x54ad42[_0x6f84('0x42')][_0x6f84('0x25')]);_0x3580b6['offset']=qs[_0x6f84('0x23')](_0x54ad42[_0x6f84('0x42')][_0x6f84('0x23')]);}_0x3580b6['order']=qs[_0x6f84('0xc7')](_0x54ad42['query'][_0x6f84('0xc7')]);_0x3580b6[_0x6f84('0x41')]=qs[_0x6f84('0x56')](_['pick'](_0x54ad42[_0x6f84('0x42')],_0x4afac0['filters']));_0x3580b6[_0x6f84('0x41')][_0x6f84('0xd7')]=_0x3a61fc['id'];if(_0x54ad42['query']['filter']){_0x3580b6[_0x6f84('0x41')]=_['merge'](_0x3580b6[_0x6f84('0x41')],{'$or':_[_0x6f84('0x33')](_0x3580b6[_0x6f84('0x45')],function(_0x40dbda){var _0x1ef2cb={};_0x1ef2cb[_0x40dbda]={'$like':'%'+_0x54ad42[_0x6f84('0x42')]['filter']+'%'};return _0x1ef2cb;})});}_0x3580b6=_[_0x6f84('0x59')]({},_0x3580b6,_0x54ad42[_0x6f84('0x5a')]);return db['VoiceRecording'][_0x6f84('0x26')]({'where':_0x3580b6[_0x6f84('0x41')]})[_0x6f84('0x15')](function(_0xc4821f){_0x120650[_0x6f84('0x26')]=_0xc4821f;if(_0x54ad42[_0x6f84('0x42')][_0x6f84('0x43')]){_0x3580b6['include']=[{'all':!![]}];}return db[_0x6f84('0xd8')]['findAll'](_0x3580b6);})[_0x6f84('0x15')](function(_0x4fd69e){_0x120650[_0x6f84('0x48')]=_0x4fd69e;return _0x120650;});}})[_0x6f84('0x15')](respondWithFilteredResult(_0x4788c4,_0x3580b6))[_0x6f84('0x1e')](handleError(_0x4788c4,null));};exports[_0x6f84('0xd9')]=function(_0x28031c,_0x2f864e){var _0x1940cf={'raw':!![],'where':{}};var _0x3fbbc7={};var _0xf58057={'count':0x0,'rows':[]};return db['User'][_0x6f84('0xd0')]({'where':{'id':_0x28031c[_0x6f84('0x51')]['id']}})['then'](handleEntityNotFound(_0x2f864e,null))[_0x6f84('0x15')](function(_0x3b0d32){if(_0x3b0d32){_0x3fbbc7['model']=_[_0x6f84('0x53')](db[_0x6f84('0xda')]['rawAttributes']);_0x3fbbc7[_0x6f84('0x42')]=_[_0x6f84('0x53')](_0x28031c[_0x6f84('0x42')]);_0x3fbbc7[_0x6f84('0x56')]=_['intersection'](_0x3fbbc7[_0x6f84('0x52')],_0x3fbbc7[_0x6f84('0x42')]);_0x1940cf[_0x6f84('0x45')]=_[_0x6f84('0x57')](_0x3fbbc7[_0x6f84('0x52')],qs['fields'](_0x28031c['query'][_0x6f84('0x58')]));_0x1940cf[_0x6f84('0x45')]=_0x1940cf['attributes'][_0x6f84('0x4b')]?_0x1940cf[_0x6f84('0x45')]:_0x3fbbc7[_0x6f84('0x52')];if(!_0x28031c['query'][_0x6f84('0xc9')](_0x6f84('0xce'))){_0x1940cf['limit']=qs['limit'](_0x28031c[_0x6f84('0x42')][_0x6f84('0x25')]);_0x1940cf[_0x6f84('0x23')]=qs[_0x6f84('0x23')](_0x28031c['query'][_0x6f84('0x23')]);}_0x1940cf[_0x6f84('0xc6')]=qs[_0x6f84('0xc7')](_0x28031c[_0x6f84('0x42')][_0x6f84('0xc7')]);_0x1940cf[_0x6f84('0x41')]=qs[_0x6f84('0x56')](_[_0x6f84('0xc8')](_0x28031c[_0x6f84('0x42')],_0x3fbbc7['filters']));_0x1940cf[_0x6f84('0x41')][_0x6f84('0xd7')]=_0x3b0d32['id'];if(_0x28031c['query'][_0x6f84('0x31')]){_0x1940cf[_0x6f84('0x41')]=_[_0x6f84('0x59')](_0x1940cf['where'],{'$or':_['map'](_0x1940cf['attributes'],function(_0x1e85bf){var _0x55103f={};_0x55103f[_0x1e85bf]={'$like':'%'+_0x28031c['query'][_0x6f84('0x31')]+'%'};return _0x55103f;})});}_0x1940cf=_[_0x6f84('0x59')]({},_0x1940cf,_0x28031c[_0x6f84('0x5a')]);return db[_0x6f84('0xda')][_0x6f84('0x26')]({'where':_0x1940cf[_0x6f84('0x41')]})[_0x6f84('0x15')](function(_0x2fc7dd){_0xf58057[_0x6f84('0x26')]=_0x2fc7dd;if(_0x28031c[_0x6f84('0x42')][_0x6f84('0x43')]){_0x1940cf[_0x6f84('0x44')]=[{'all':!![]}];}return db[_0x6f84('0xda')][_0x6f84('0x47')](_0x1940cf);})['then'](function(_0x5544a3){_0xf58057[_0x6f84('0x48')]=_0x5544a3;return _0xf58057;});}})[_0x6f84('0x15')](respondWithFilteredResult(_0x2f864e,_0x1940cf))['catch'](handleError(_0x2f864e,null));};exports[_0x6f84('0xdb')]=function(_0x2481d9,_0x3e8484){var _0x2b1df1={};var _0x3842d0={};var _0xaafb1;var _0x72acfd;return db[_0x6f84('0x3c')][_0x6f84('0xd0')]({'where':{'id':_0x2481d9[_0x6f84('0x51')]['id']}})['then'](handleEntityNotFound(_0x3e8484,null))[_0x6f84('0x15')](function(_0x3f1ea9){if(_0x3f1ea9){_0xaafb1=_0x3f1ea9;_0x3842d0['model']=_[_0x6f84('0x53')](db[_0x6f84('0xdc')][_0x6f84('0x54')]);_0x3842d0[_0x6f84('0x42')]=_[_0x6f84('0x53')](_0x2481d9[_0x6f84('0x42')]);_0x3842d0[_0x6f84('0x56')]=_[_0x6f84('0x57')](_0x3842d0[_0x6f84('0x52')],_0x3842d0[_0x6f84('0x42')]);_0x2b1df1['attributes']=_['intersection'](_0x3842d0[_0x6f84('0x52')],qs[_0x6f84('0x58')](_0x2481d9[_0x6f84('0x42')][_0x6f84('0x58')]));_0x2b1df1[_0x6f84('0x45')]=_0x2b1df1['attributes'][_0x6f84('0x4b')]?_0x2b1df1[_0x6f84('0x45')]:_0x3842d0['model'];_0x2b1df1[_0x6f84('0xc6')]=qs[_0x6f84('0xc7')](_0x2481d9[_0x6f84('0x42')][_0x6f84('0xc7')]);_0x2b1df1[_0x6f84('0x41')]=qs[_0x6f84('0x56')](_[_0x6f84('0xc8')](_0x2481d9[_0x6f84('0x42')],_0x3842d0['filters']));if(_0x2481d9[_0x6f84('0x42')][_0x6f84('0x31')]){_0x2b1df1[_0x6f84('0x41')]=_['merge'](_0x2b1df1[_0x6f84('0x41')],{'$or':_[_0x6f84('0x33')](_0x2b1df1[_0x6f84('0x45')],function(_0x692311){var _0x5caca5={};_0x5caca5[_0x692311]={'$like':'%'+_0x2481d9['query'][_0x6f84('0x31')]+'%'};return _0x5caca5;})});}_0x2b1df1=_[_0x6f84('0x59')]({},_0x2b1df1,_0x2481d9[_0x6f84('0x5a')]);return _0xaafb1[_0x6f84('0xdb')](_0x2b1df1);}})[_0x6f84('0x15')](function(_0xd119a6){if(_0xd119a6){_0x72acfd=_0xd119a6[_0x6f84('0x4b')];if(!_0x2481d9[_0x6f84('0x42')][_0x6f84('0xc9')](_0x6f84('0xce'))){_0x2b1df1[_0x6f84('0x25')]=qs[_0x6f84('0x25')](_0x2481d9[_0x6f84('0x42')][_0x6f84('0x25')]);_0x2b1df1[_0x6f84('0x23')]=qs[_0x6f84('0x23')](_0x2481d9['query'][_0x6f84('0x23')]);}return _0xaafb1[_0x6f84('0xdb')](_0x2b1df1);}})[_0x6f84('0x15')](function(_0x35a542){if(_0x35a542){return _0x35a542?{'count':_0x72acfd,'rows':_0x35a542}:null;}})[_0x6f84('0x15')](respondWithResult(_0x3e8484,null))['catch'](handleError(_0x3e8484,null));};exports[_0x6f84('0xdd')]=function(_0x17804a,_0x1f6819){var _0x95bfed={};var _0x2bd7b7={};var _0x643079;var _0x33edb1;return db[_0x6f84('0x3c')][_0x6f84('0xd0')]({'where':{'id':_0x17804a['params']['id']}})['then'](handleEntityNotFound(_0x1f6819,null))[_0x6f84('0x15')](function(_0x468f0d){if(_0x468f0d){_0x643079=_0x468f0d;_0x2bd7b7[_0x6f84('0x52')]=_[_0x6f84('0x53')](db['OpenchannelInteraction'][_0x6f84('0x54')]);_0x2bd7b7[_0x6f84('0x42')]=_[_0x6f84('0x53')](_0x17804a[_0x6f84('0x42')]);_0x2bd7b7['filters']=_['intersection'](_0x2bd7b7[_0x6f84('0x52')],_0x2bd7b7[_0x6f84('0x42')]);_0x95bfed[_0x6f84('0x45')]=_['intersection'](_0x2bd7b7[_0x6f84('0x52')],qs['fields'](_0x17804a[_0x6f84('0x42')][_0x6f84('0x58')]));_0x95bfed['attributes']=_0x95bfed[_0x6f84('0x45')]['length']?_0x95bfed['attributes']:_0x2bd7b7[_0x6f84('0x52')];_0x95bfed[_0x6f84('0xc6')]=qs['sort'](_0x17804a[_0x6f84('0x42')]['sort']);_0x95bfed[_0x6f84('0x41')]=qs[_0x6f84('0x56')](_[_0x6f84('0xc8')](_0x17804a[_0x6f84('0x42')],_0x2bd7b7[_0x6f84('0x56')]));if(_0x17804a[_0x6f84('0x42')]['filter']){_0x95bfed[_0x6f84('0x41')]=_['merge'](_0x95bfed['where'],{'$or':_['map'](_0x95bfed[_0x6f84('0x45')],function(_0x37eb5e){var _0x569494={};_0x569494[_0x37eb5e]={'$like':'%'+_0x17804a[_0x6f84('0x42')][_0x6f84('0x31')]+'%'};return _0x569494;})});}_0x95bfed=_[_0x6f84('0x59')]({},_0x95bfed,_0x17804a['options']);return _0x643079[_0x6f84('0xdd')](_0x95bfed);}})[_0x6f84('0x15')](function(_0x2eaa7b){if(_0x2eaa7b){_0x33edb1=_0x2eaa7b[_0x6f84('0x4b')];if(!_0x17804a[_0x6f84('0x42')][_0x6f84('0xc9')](_0x6f84('0xce'))){_0x95bfed[_0x6f84('0x25')]=qs['limit'](_0x17804a[_0x6f84('0x42')][_0x6f84('0x25')]);_0x95bfed[_0x6f84('0x23')]=qs[_0x6f84('0x23')](_0x17804a['query']['offset']);}return _0x643079[_0x6f84('0xdd')](_0x95bfed);}})[_0x6f84('0x15')](function(_0x4d3588){if(_0x4d3588){return _0x4d3588?{'count':_0x33edb1,'rows':_0x4d3588}:null;}})[_0x6f84('0x15')](respondWithResult(_0x1f6819,null))[_0x6f84('0x1e')](handleError(_0x1f6819,null));};exports[_0x6f84('0xde')]=function(_0xfb6821,_0x3b88b2){var _0x40d9c3={'raw':!![],'where':{}};var _0x3e6894={};var _0xba3095={'count':0x0,'rows':[]};return db[_0x6f84('0x3c')][_0x6f84('0xd0')]({'where':{'id':_0xfb6821['params']['id']}})[_0x6f84('0x15')](handleEntityNotFound(_0x3b88b2,null))['then'](function(_0x3bb677){if(_0x3bb677){_0x3e6894[_0x6f84('0x52')]=_[_0x6f84('0x53')](db[_0x6f84('0xdf')][_0x6f84('0x54')]);_0x3e6894['query']=_['keys'](_0xfb6821[_0x6f84('0x42')]);_0x3e6894['filters']=_[_0x6f84('0x57')](_0x3e6894[_0x6f84('0x52')],_0x3e6894[_0x6f84('0x42')]);_0x40d9c3[_0x6f84('0x45')]=_[_0x6f84('0x57')](_0x3e6894[_0x6f84('0x52')],qs[_0x6f84('0x58')](_0xfb6821[_0x6f84('0x42')][_0x6f84('0x58')]));_0x40d9c3[_0x6f84('0x45')]=_0x40d9c3[_0x6f84('0x45')][_0x6f84('0x4b')]?_0x40d9c3['attributes']:_0x3e6894['model'];if(!_0xfb6821[_0x6f84('0x42')][_0x6f84('0xc9')](_0x6f84('0xce'))){_0x40d9c3[_0x6f84('0x25')]=qs['limit'](_0xfb6821['query']['limit']);_0x40d9c3['offset']=qs[_0x6f84('0x23')](_0xfb6821[_0x6f84('0x42')][_0x6f84('0x23')]);}_0x40d9c3['order']=qs[_0x6f84('0xc7')](_0xfb6821[_0x6f84('0x42')][_0x6f84('0xc7')]);_0x40d9c3['where']=qs[_0x6f84('0x56')](_[_0x6f84('0xc8')](_0xfb6821[_0x6f84('0x42')],_0x3e6894['filters']));_0x40d9c3['where']['UserId']=_0x3bb677['id'];if(_0xfb6821[_0x6f84('0x42')][_0x6f84('0x31')]){_0x40d9c3['where']=_[_0x6f84('0x59')](_0x40d9c3['where'],{'$or':_[_0x6f84('0x33')](_0x40d9c3[_0x6f84('0x45')],function(_0x54abef){var _0x43d1e1={};_0x43d1e1[_0x54abef]={'$like':'%'+_0xfb6821[_0x6f84('0x42')]['filter']+'%'};return _0x43d1e1;})});}_0x40d9c3=_[_0x6f84('0x59')]({},_0x40d9c3,_0xfb6821[_0x6f84('0x5a')]);return db['MailInteraction']['count']({'where':_0x40d9c3[_0x6f84('0x41')]})[_0x6f84('0x15')](function(_0x1e54f2){_0xba3095['count']=_0x1e54f2;if(_0xfb6821['query']['includeAll']){_0x40d9c3[_0x6f84('0x44')]=[{'all':!![]}];}return db['MailInteraction']['findAll'](_0x40d9c3);})[_0x6f84('0x15')](function(_0x579dd2){_0xba3095['rows']=_0x579dd2;return _0xba3095;});}})[_0x6f84('0x15')](respondWithFilteredResult(_0x3b88b2,_0x40d9c3))['catch'](handleError(_0x3b88b2,null));};exports[_0x6f84('0xe0')]=function(_0x41a973,_0x73a237){var _0x30d171={};var _0x2a1ef3={};var _0x2c850b;var _0x2aa260;return db[_0x6f84('0x3c')][_0x6f84('0xd0')]({'where':{'id':_0x41a973['params']['id']}})[_0x6f84('0x15')](handleEntityNotFound(_0x73a237,null))[_0x6f84('0x15')](function(_0xf6cd60){if(_0xf6cd60){_0x2c850b=_0xf6cd60;_0x2a1ef3[_0x6f84('0x52')]=_[_0x6f84('0x53')](db[_0x6f84('0xe1')][_0x6f84('0x54')]);_0x2a1ef3['query']=_['keys'](_0x41a973[_0x6f84('0x42')]);_0x2a1ef3[_0x6f84('0x56')]=_[_0x6f84('0x57')](_0x2a1ef3[_0x6f84('0x52')],_0x2a1ef3[_0x6f84('0x42')]);_0x30d171[_0x6f84('0x45')]=_[_0x6f84('0x57')](_0x2a1ef3[_0x6f84('0x52')],qs['fields'](_0x41a973[_0x6f84('0x42')][_0x6f84('0x58')]));_0x30d171[_0x6f84('0x45')]=_0x30d171['attributes'][_0x6f84('0x4b')]?_0x30d171[_0x6f84('0x45')]:_0x2a1ef3[_0x6f84('0x52')];_0x30d171['order']=qs[_0x6f84('0xc7')](_0x41a973['query']['sort']);_0x30d171[_0x6f84('0x41')]=qs['filters'](_[_0x6f84('0xc8')](_0x41a973[_0x6f84('0x42')],_0x2a1ef3[_0x6f84('0x56')]));if(_0x41a973[_0x6f84('0x42')][_0x6f84('0x31')]){_0x30d171[_0x6f84('0x41')]=_[_0x6f84('0x59')](_0x30d171['where'],{'$or':_[_0x6f84('0x33')](_0x30d171[_0x6f84('0x45')],function(_0x311a2a){var _0x4635d8={};_0x4635d8[_0x311a2a]={'$like':'%'+_0x41a973[_0x6f84('0x42')][_0x6f84('0x31')]+'%'};return _0x4635d8;})});}_0x30d171=_[_0x6f84('0x59')]({},_0x30d171,_0x41a973[_0x6f84('0x5a')]);return _0x2c850b['getSmsInteractions'](_0x30d171);}})[_0x6f84('0x15')](function(_0x52d670){if(_0x52d670){_0x2aa260=_0x52d670[_0x6f84('0x4b')];if(!_0x41a973[_0x6f84('0x42')]['hasOwnProperty'](_0x6f84('0xce'))){_0x30d171[_0x6f84('0x25')]=qs['limit'](_0x41a973['query'][_0x6f84('0x25')]);_0x30d171['offset']=qs[_0x6f84('0x23')](_0x41a973[_0x6f84('0x42')]['offset']);}return _0x2c850b[_0x6f84('0xe0')](_0x30d171);}})[_0x6f84('0x15')](function(_0x362587){if(_0x362587){return _0x362587?{'count':_0x2aa260,'rows':_0x362587}:null;}})[_0x6f84('0x15')](respondWithResult(_0x73a237,null))[_0x6f84('0x1e')](handleError(_0x73a237,null));};exports['getFaxInteractions']=function(_0x3847b9,_0x2c97a5){var _0x564978={};var _0x3c1439={};var _0x991975;var _0x3d7adc;return db[_0x6f84('0x3c')]['findOne']({'where':{'id':_0x3847b9[_0x6f84('0x51')]['id']}})[_0x6f84('0x15')](handleEntityNotFound(_0x2c97a5,null))[_0x6f84('0x15')](function(_0x54fa96){if(_0x54fa96){_0x991975=_0x54fa96;_0x3c1439['model']=_[_0x6f84('0x53')](db[_0x6f84('0xe2')][_0x6f84('0x54')]);_0x3c1439[_0x6f84('0x42')]=_[_0x6f84('0x53')](_0x3847b9[_0x6f84('0x42')]);_0x3c1439['filters']=_['intersection'](_0x3c1439[_0x6f84('0x52')],_0x3c1439[_0x6f84('0x42')]);_0x564978[_0x6f84('0x45')]=_[_0x6f84('0x57')](_0x3c1439[_0x6f84('0x52')],qs[_0x6f84('0x58')](_0x3847b9[_0x6f84('0x42')]['fields']));_0x564978['attributes']=_0x564978[_0x6f84('0x45')][_0x6f84('0x4b')]?_0x564978['attributes']:_0x3c1439[_0x6f84('0x52')];_0x564978[_0x6f84('0xc6')]=qs['sort'](_0x3847b9[_0x6f84('0x42')][_0x6f84('0xc7')]);_0x564978[_0x6f84('0x41')]=qs[_0x6f84('0x56')](_[_0x6f84('0xc8')](_0x3847b9[_0x6f84('0x42')],_0x3c1439[_0x6f84('0x56')]));if(_0x3847b9[_0x6f84('0x42')][_0x6f84('0x31')]){_0x564978[_0x6f84('0x41')]=_[_0x6f84('0x59')](_0x564978[_0x6f84('0x41')],{'$or':_['map'](_0x564978[_0x6f84('0x45')],function(_0x335b89){var _0xa31d55={};_0xa31d55[_0x335b89]={'$like':'%'+_0x3847b9['query'][_0x6f84('0x31')]+'%'};return _0xa31d55;})});}_0x564978=_[_0x6f84('0x59')]({},_0x564978,_0x3847b9[_0x6f84('0x5a')]);return _0x991975[_0x6f84('0xe3')](_0x564978);}})['then'](function(_0x3f7b76){if(_0x3f7b76){_0x3d7adc=_0x3f7b76[_0x6f84('0x4b')];if(!_0x3847b9[_0x6f84('0x42')]['hasOwnProperty'](_0x6f84('0xce'))){_0x564978[_0x6f84('0x25')]=qs[_0x6f84('0x25')](_0x3847b9['query'][_0x6f84('0x25')]);_0x564978[_0x6f84('0x23')]=qs['offset'](_0x3847b9[_0x6f84('0x42')][_0x6f84('0x23')]);}return _0x991975['getFaxInteractions'](_0x564978);}})[_0x6f84('0x15')](function(_0xa204ad){if(_0xa204ad){return _0xa204ad?{'count':_0x3d7adc,'rows':_0xa204ad}:null;}})[_0x6f84('0x15')](respondWithResult(_0x2c97a5,null))['catch'](handleError(_0x2c97a5,null));};exports[_0x6f84('0xe4')]=function(_0x188b7d,_0x269af0){var _0x40c6c1={};var _0x322081={};var _0x4c9527;var _0x5bc390;return db[_0x6f84('0x3c')][_0x6f84('0xd0')]({'where':{'id':_0x188b7d[_0x6f84('0x51')]['id']}})['then'](handleEntityNotFound(_0x269af0,null))[_0x6f84('0x15')](function(_0x260cb7){if(_0x260cb7){_0x4c9527=_0x260cb7;_0x322081['model']=_['keys'](db[_0x6f84('0xe5')][_0x6f84('0x54')]);_0x322081[_0x6f84('0x42')]=_[_0x6f84('0x53')](_0x188b7d['query']);_0x322081[_0x6f84('0x56')]=_[_0x6f84('0x57')](_0x322081[_0x6f84('0x52')],_0x322081['query']);_0x40c6c1[_0x6f84('0x45')]=_['intersection'](_0x322081[_0x6f84('0x52')],qs[_0x6f84('0x58')](_0x188b7d['query'][_0x6f84('0x58')]));_0x40c6c1['attributes']=_0x40c6c1[_0x6f84('0x45')][_0x6f84('0x4b')]?_0x40c6c1[_0x6f84('0x45')]:_0x322081[_0x6f84('0x52')];_0x40c6c1[_0x6f84('0xc6')]=qs[_0x6f84('0xc7')](_0x188b7d['query'][_0x6f84('0xc7')]);_0x40c6c1[_0x6f84('0x41')]=qs[_0x6f84('0x56')](_[_0x6f84('0xc8')](_0x188b7d[_0x6f84('0x42')],_0x322081[_0x6f84('0x56')]));if(_0x188b7d['query']['filter']){_0x40c6c1[_0x6f84('0x41')]=_[_0x6f84('0x59')](_0x40c6c1[_0x6f84('0x41')],{'$or':_[_0x6f84('0x33')](_0x40c6c1['attributes'],function(_0x4a7896){var _0x4c729e={};_0x4c729e[_0x4a7896]={'$like':'%'+_0x188b7d[_0x6f84('0x42')][_0x6f84('0x31')]+'%'};return _0x4c729e;})});}_0x40c6c1=_[_0x6f84('0x59')]({},_0x40c6c1,_0x188b7d['options']);return _0x4c9527[_0x6f84('0xe4')](_0x40c6c1);}})[_0x6f84('0x15')](function(_0x103c3a){if(_0x103c3a){_0x5bc390=_0x103c3a['length'];if(!_0x188b7d[_0x6f84('0x42')][_0x6f84('0xc9')]('nolimit')){_0x40c6c1[_0x6f84('0x25')]=qs[_0x6f84('0x25')](_0x188b7d[_0x6f84('0x42')]['limit']);_0x40c6c1[_0x6f84('0x23')]=qs['offset'](_0x188b7d[_0x6f84('0x42')][_0x6f84('0x23')]);}return _0x4c9527[_0x6f84('0xe4')](_0x40c6c1);}})[_0x6f84('0x15')](function(_0x32715a){if(_0x32715a){return _0x32715a?{'count':_0x5bc390,'rows':_0x32715a}:null;}})[_0x6f84('0x15')](respondWithResult(_0x269af0,null))[_0x6f84('0x1e')](handleError(_0x269af0,null));};exports['login']=function(_0x30ee34,_0x7a3438,_0x3490d1){var _0xa74104;var _0x36621d;var _0x55a676;var _0x290f40=!_[_0x6f84('0x65')](_0x30ee34['params']['id'])?_0x30ee34['params']['id']:!_[_0x6f84('0x65')](_0x30ee34[_0x6f84('0x2d')]['id'])?_0x30ee34[_0x6f84('0x2d')]['id']:null;return db[_0x6f84('0x3c')]['find']({'where':{'id':_0x290f40,'role':{'$or':[_0x6f84('0x7a'),_0x6f84('0x2d'),_0x6f84('0x70')]}},'attributes':['id',_0x6f84('0x36'),'phone',_0x6f84('0xe6'),_0x6f84('0x2b'),_0x6f84('0x66'),_0x6f84('0x96')]})[_0x6f84('0x15')](function(_0x5a3e20){if(_0x5a3e20){if(_0x5a3e20[_0x6f84('0x2b')]===_0x6f84('0x70')){_0xa74104=_0x5a3e20;if(_0x30ee34['body'][_0x6f84('0x98')]){_0x55a676=util['format']('LOCAL/%s@from-sip/n',_0xa74104[_0x30ee34['body'][_0x6f84('0x98')]]);}else if(_0x30ee34['body'][_0x6f84('0xe7')]){_0x55a676=util[_0x6f84('0xe8')]('SIP/%s',_0x30ee34[_0x6f84('0x5e')][_0x6f84('0xe7')]);}else{_0x55a676=util[_0x6f84('0xe8')]('SIP/%s',_0xa74104[_0x6f84('0x36')]);}socket['to'](util[_0x6f84('0xe8')]('user:%s',_0xa74104[_0x6f84('0x36')]))[_0x6f84('0xa9')](_0x6f84('0xe9'),{'user':{'id':_0xa74104['id'],'name':_0xa74104[_0x6f84('0x36')]},'ip':_0x30ee34[_0x6f84('0xea')]['x-forwarded-for']||_0x30ee34[_0x6f84('0xeb')][_0x6f84('0xec')]||_0x30ee34[_0x6f84('0xed')]['remoteAddress']||_0x30ee34[_0x6f84('0xeb')][_0x6f84('0xed')][_0x6f84('0xec')]});return db[_0x6f84('0xab')]['destroy']({'where':{'membername':_0xa74104[_0x6f84('0x36')]},'individualHooks':!![]});}}else{throw new db[(_0x6f84('0x8a'))][(_0x6f84('0x8b'))]('User\x20not\x20found\x20or\x20not\x20allowed\x20to\x20perform\x20login\x20method');}})[_0x6f84('0x15')](function(){if(_0xa74104){return _0xa74104[_0x6f84('0xee')]({'raw':!![]});}})[_0x6f84('0x15')](function(_0x3e07c5){if(_0xa74104){var _0xe69778=[];if(_0x3e07c5){_0x36621d=_0x3e07c5;if(_0x36621d['length']){for(var _0x323e36=0x0;_0x323e36<_0x36621d['length'];_0x323e36++){_0xe69778[_0x6f84('0x46')]({'membername':_0xa74104[_0x6f84('0x36')],'UserId':_0xa74104['id'],'queue_name':_0x36621d[_0x323e36][_0x6f84('0x36')],'VoiceQueueId':_0x36621d[_0x323e36]['id'],'interface':_0x55a676,'paused':_0xa74104['loginInPause']||![],'penalty':_0x36621d[_0x323e36]['UserVoiceQueue.penalty']||0x0});}return BPromise[_0x6f84('0x85')](_0xe69778,function(_0x351ac0){return db['UserVoiceQueueRt']['upsert'](_0x351ac0);});}}}})[_0x6f84('0x15')](function(){if(_0xa74104){return db['MemberReport']['findAll']({'where':{'membername':_0xa74104[_0x6f84('0x36')],'exitAt':null}});}})['then'](function(_0x460837){if(_0xa74104){var _0x4dec64=[];_0x460837[_0x6f84('0xef')](function(_0x847ec9){_0x4dec64[_0x6f84('0x46')](_0x847ec9[_0x6f84('0x29')]({'exitAt':moment()['format']('YYYY-MM-DD\x20HH:mm:ss')}));});return BPromise[_0x6f84('0x50')](_0x4dec64);}})[_0x6f84('0x15')](function(){if(_0xa74104){var _0x38e237=[];var _0x3ec4cd=[];var _0x5b6811=utils[_0x6f84('0xf0')]();var _0x4c5b46={'membername':_0xa74104[_0x6f84('0x36')],'interface':_0x55a676,'enterAt':moment()['format'](_0x6f84('0xf1')),'role':_0xa74104[_0x6f84('0x2b')],'internal':_0xa74104[_0x6f84('0x66')]};_0x5b6811[_0x6f84('0xef')](function(_0x63bf93){_0x38e237[_0x6f84('0x46')](_[_0x6f84('0x59')]({'channel':_0x63bf93,'type':_0x6f84('0xf2'),'data1':_0x30ee34[_0x6f84('0x5e')][_0x6f84('0xf3')],'data2':_0x55a676},_0x4c5b46));if(_0xa74104[_0x6f84('0x96')]){_0x3ec4cd[_0x6f84('0x46')](_['merge']({'channel':_0x63bf93,'type':_0x6f84('0xf4'),'data1':_0x6f84('0xf5')},_0x4c5b46));}});return db['MemberReport'][_0x6f84('0xf6')](_0x38e237[_0x6f84('0xf7')](_0x3ec4cd),{'individualHooks':!![]});}})[_0x6f84('0x15')](function(){if(_0xa74104){return _0xa74104[_0x6f84('0x29')]({'online':!![],'lastLoginAt':moment()[_0x6f84('0xe8')](_0x6f84('0xf1')),'voicePause':_0xa74104['loginInPause']||![],'mailPause':_0xa74104['loginInPause']||![],'chatPause':_0xa74104[_0x6f84('0x96')]||![],'faxPause':_0xa74104[_0x6f84('0x96')]||![],'smsPause':_0xa74104[_0x6f84('0x96')]||![],'openchannelPause':_0xa74104[_0x6f84('0x96')]||![],'whatsappPause':_0xa74104[_0x6f84('0x96')]||![],'pauseType':_0xa74104[_0x6f84('0x96')]?_0x6f84('0xf5'):null,'interface':_0x55a676,'lastPauseAt':moment()[_0x6f84('0xe8')](_0x6f84('0xf1'))});}})[_0x6f84('0x15')](function(_0x2df644){if(_0x30ee34[_0x6f84('0xf8')]){return _0x3490d1();}else{return BPromise[_0x6f84('0xf9')](_0x2df644)[_0x6f84('0x15')](respondWithResult(_0x7a3438,null));}})[_0x6f84('0x1e')](handleError(_0x7a3438,null));};exports[_0x6f84('0xfa')]=function(_0xae1a53,_0x3bec1f){var _0x4b27f2;return db['User'][_0x6f84('0x5b')]({'where':{'id':_0xae1a53[_0x6f84('0x51')]['id'],'role':_0x6f84('0x70')},'attributes':['id',_0x6f84('0x36'),_0x6f84('0x2b')]})['then'](handleEntityNotFound(_0x3bec1f,null))['then'](function(_0x4b14cb){if(_0x4b14cb){_0x4b27f2=_0x4b14cb;return db[_0x6f84('0xab')]['destroy']({'where':{'membername':_0x4b27f2['name']},'individualHooks':!![]});}})['then'](function(){return db['MemberReport'][_0x6f84('0x47')]({'where':{'membername':_0x4b27f2['name'],'exitAt':null}});})['then'](function(_0x38e4e1){var _0x1a7822=[];_0x38e4e1[_0x6f84('0xef')](function(_0x1f6291){_0x1a7822[_0x6f84('0x46')](_0x1f6291['update']({'exitAt':moment()[_0x6f84('0xe8')]('YYYY-MM-DD\x20HH:mm:ss')}));});return BPromise[_0x6f84('0x50')](_0x1a7822);})[_0x6f84('0x15')](function(){return _0x4b27f2['update']({'online':![],'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![],'whatsappPause':![],'interface':null});})[_0x6f84('0x15')](respondWithResult(_0x3bec1f,null))[_0x6f84('0x1e')](handleError(_0x3bec1f,null));};exports[_0x6f84('0xfb')]=function(_0x1931e1,_0x143328){var _0x221587;return db[_0x6f84('0xab')][_0x6f84('0x29')]({'paused':0x1},{'where':{'UserId':_0x1931e1[_0x6f84('0x51')]['id']},'individualHooks':!![]})['then'](function(){return db[_0x6f84('0x3c')]['find']({'where':{'id':_0x1931e1[_0x6f84('0x51')]['id'],'role':'agent'},'attributes':['id',_0x6f84('0x36'),'role','internal',_0x6f84('0x98')]});})[_0x6f84('0x15')](handleEntityNotFound(_0x143328,null))[_0x6f84('0x15')](function(_0x35cf1b){if(_0x35cf1b){_0x221587=_0x35cf1b;return respondWithRpcPromise(_0x6f84('0xfc'),_0x6f84('0xfb'),{'id':_0x221587['id'],'name':_0x221587[_0x6f84('0x36')],'pause':!![]});}})['then'](function(){if(_0x221587){return db[_0x6f84('0xfd')][_0x6f84('0x47')]({'where':{'membername':_0x221587['name'],'type':_0x6f84('0xf4'),'exitAt':null}});}})['then'](function(_0x32741f){if(_0x32741f[_0x6f84('0x4b')]){var _0xf365bb=moment()[_0x6f84('0xe8')](_0x6f84('0xf1'));for(var _0x324310=0x0,_0x550af1=_0x32741f[_0x6f84('0x4b')];_0x324310<_0x550af1;_0x324310++){_0x32741f[_0x324310][_0x6f84('0xfe')]({'exitAt':_0xf365bb});}}})[_0x6f84('0x15')](function(){var _0x1a9572=[];var _0x10691a=utils['getChannels']();_0x10691a[_0x6f84('0xef')](function(_0x5cd521){_0x1a9572['push']({'channel':_0x5cd521,'membername':_0x221587[_0x6f84('0x36')],'interface':_[_0x6f84('0x65')](_0x221587[_0x6f84('0x98')])?util[_0x6f84('0xe8')](_0x6f84('0xa4'),_0x221587[_0x6f84('0x36')]):_0x221587['interface'],'type':'PAUSE','enterAt':moment()[_0x6f84('0xe8')]('YYYY-MM-DD\x20HH:mm:ss'),'data1':_0x1931e1[_0x6f84('0x5e')][_0x6f84('0x3d')]||_0x6f84('0xff'),'role':_0x221587[_0x6f84('0x2b')],'internal':_0x221587[_0x6f84('0x66')]});});return db[_0x6f84('0xfd')][_0x6f84('0xf6')](_0x1a9572,{'individualHooks':!![]});})[_0x6f84('0x15')](function(){return _0x221587['update']({'voicePause':!![],'mailPause':!![],'chatPause':!![],'faxPause':!![],'smsPause':!![],'whatsappPause':!![],'openchannelPause':!![],'pauseType':_0x1931e1[_0x6f84('0x5e')][_0x6f84('0x3d')]||'DEFAULT\x20PAUSE','lastPauseAt':moment()[_0x6f84('0xe8')](_0x6f84('0xf1'))});})[_0x6f84('0x15')](respondWithResult(_0x143328,null))['catch'](handleError(_0x143328,null));};exports[_0x6f84('0x100')]=function(_0x375fd4,_0x11c19a){var _0x13292f;return db[_0x6f84('0x3c')][_0x6f84('0x5b')]({'where':{'id':_0x375fd4[_0x6f84('0x51')]['id']},'attributes':['id',_0x6f84('0x36'),_0x6f84('0x2b'),'voicePause','mailPause',_0x6f84('0x101'),_0x6f84('0x102'),_0x6f84('0x103'),_0x6f84('0x104'),'whatsapppause',_0x6f84('0x105'),_0x6f84('0x106')]})[_0x6f84('0x15')](handleEntityNotFound(_0x11c19a,null))['then'](function(_0xce0b70){if(_0xce0b70){_0x13292f=_0xce0b70;if(_0x375fd4['body']['channel']&&!utils[_0x6f84('0x99')](_0x375fd4[_0x6f84('0x5e')][_0x6f84('0xa6')])){throw new db[(_0x6f84('0x8a'))][(_0x6f84('0x8b'))](_0x6f84('0x9a'));}switch(_0x375fd4[_0x6f84('0x5e')][_0x6f84('0xa6')]){case _0x6f84('0xa2'):return respondWithRpcPromise(_0x6f84('0xfc'),_0x6f84('0x100'),{'id':_0x13292f['id'],'name':_0x13292f[_0x6f84('0x36')],'pause':![]})['then'](function(){return db['UserVoiceQueueRt'][_0x6f84('0x29')]({'paused':0x0},{'where':{'UserId':_0x13292f['id']},'individualHooks':!![]});})[_0x6f84('0x15')](function(){return db[_0x6f84('0xfd')][_0x6f84('0x5b')]({'where':{'channel':_0x375fd4[_0x6f84('0x5e')][_0x6f84('0xa6')],'membername':_0x13292f[_0x6f84('0x36')],'type':_0x6f84('0xf4'),'exitAt':null}});})[_0x6f84('0x15')](function(_0x5f2eea){if(_0x5f2eea){return _0x5f2eea[_0x6f84('0x29')]({'exitAt':moment()[_0x6f84('0xe8')](_0x6f84('0xf1')),'data2':_0x6f84('0x107')},{'individualHooks':!![]});}return null;})[_0x6f84('0x15')](function(){return _0x13292f[_0x6f84('0x29')]({'voicePause':![]});});case _0x6f84('0x4d'):case _0x6f84('0xb8'):case _0x6f84('0x5d'):case _0x6f84('0x5c'):case _0x6f84('0x4f'):case'openchannel':return db['MemberReport'][_0x6f84('0x5b')]({'where':{'channel':_0x375fd4[_0x6f84('0x5e')][_0x6f84('0xa6')],'membername':_0x13292f[_0x6f84('0x36')],'type':'PAUSE','exitAt':null}})['then'](function(_0xdf2b08){if(_0xdf2b08){return _0xdf2b08[_0x6f84('0x29')]({'exitAt':moment()[_0x6f84('0xe8')](_0x6f84('0xf1')),'data2':_0x6f84('0x107')},{'individualHooks':!![]});}return null;})[_0x6f84('0x15')](function(){var _0x272fb8={};_[_0x6f84('0x27')](_0x272fb8,util['format'](_0x6f84('0x108'),_0x375fd4[_0x6f84('0x5e')][_0x6f84('0xa6')],'Pause'),![]);return _0x13292f[_0x6f84('0x29')](_0x272fb8);});default:return respondWithRpcPromise('QueuePause',_0x6f84('0x100'),{'id':_0x13292f['id'],'name':_0x13292f[_0x6f84('0x36')],'pause':![]})['then'](function(){return db[_0x6f84('0xab')]['update']({'paused':0x0},{'where':{'UserId':_0x13292f['id']}});})[_0x6f84('0x15')](function(){return db[_0x6f84('0xfd')][_0x6f84('0x47')]({'where':{'membername':_0x13292f[_0x6f84('0x36')],'type':_0x6f84('0xf4'),'exitAt':null}});})[_0x6f84('0x15')](function(_0x5ca99b){var _0x4038bf=[];_0x5ca99b['forEach'](function(_0x1134cf){_0x4038bf['push'](_0x1134cf['update']({'exitAt':moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'data2':_0x6f84('0x107')}));});return BPromise[_0x6f84('0x50')](_0x4038bf);})[_0x6f84('0x15')](function(){return _0x13292f[_0x6f84('0x29')]({'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'whatsappPause':![],'openchannelPause':![]});});}}})['then'](respondWithResult(_0x11c19a,null))[_0x6f84('0x1e')](handleError(_0x11c19a,null));};exports['getTeams']=function(_0x437bc0,_0x5337d4){var _0x4ec4f0={};var _0x126c1b={};var _0x1f9c35;var _0x1865a1;return db[_0x6f84('0x3c')][_0x6f84('0xd0')]({'where':{'id':_0x437bc0[_0x6f84('0x51')]['id']}})[_0x6f84('0x15')](handleEntityNotFound(_0x5337d4,null))[_0x6f84('0x15')](function(_0x13982e){if(_0x13982e){_0x1f9c35=_0x13982e;_0x126c1b[_0x6f84('0x52')]=_[_0x6f84('0x53')](db[_0x6f84('0x109')]['rawAttributes']);_0x126c1b[_0x6f84('0x42')]=_[_0x6f84('0x53')](_0x437bc0[_0x6f84('0x42')]);_0x126c1b[_0x6f84('0x56')]=_['intersection'](_0x126c1b[_0x6f84('0x52')],_0x126c1b['query']);_0x4ec4f0['attributes']=_[_0x6f84('0x57')](_0x126c1b['model'],qs[_0x6f84('0x58')](_0x437bc0['query'][_0x6f84('0x58')]));_0x4ec4f0[_0x6f84('0x45')]=_0x4ec4f0[_0x6f84('0x45')][_0x6f84('0x4b')]?_0x4ec4f0[_0x6f84('0x45')]:_0x126c1b[_0x6f84('0x52')];_0x4ec4f0[_0x6f84('0xc6')]=qs[_0x6f84('0xc7')](_0x437bc0['query'][_0x6f84('0xc7')]);_0x4ec4f0[_0x6f84('0x41')]=qs[_0x6f84('0x56')](_[_0x6f84('0xc8')](_0x437bc0[_0x6f84('0x42')],_0x126c1b['filters']));if(_0x437bc0[_0x6f84('0x42')][_0x6f84('0x31')]){_0x4ec4f0[_0x6f84('0x41')]=_[_0x6f84('0x59')](_0x4ec4f0['where'],{'$or':_[_0x6f84('0x33')](_0x4ec4f0['attributes'],function(_0x1e821d){var _0x19d3ae={};_0x19d3ae[_0x1e821d]={'$like':'%'+_0x437bc0[_0x6f84('0x42')][_0x6f84('0x31')]+'%'};return _0x19d3ae;})});}_0x4ec4f0=_[_0x6f84('0x59')]({},_0x4ec4f0,_0x437bc0['options']);return _0x1f9c35[_0x6f84('0x10a')](_0x4ec4f0);}})['then'](function(_0x341c52){if(_0x341c52){_0x1865a1=_0x341c52[_0x6f84('0x4b')];if(!_0x437bc0[_0x6f84('0x42')][_0x6f84('0xc9')](_0x6f84('0xce'))){_0x4ec4f0['limit']=qs[_0x6f84('0x25')](_0x437bc0[_0x6f84('0x42')][_0x6f84('0x25')]);_0x4ec4f0[_0x6f84('0x23')]=qs[_0x6f84('0x23')](_0x437bc0[_0x6f84('0x42')][_0x6f84('0x23')]);}return _0x1f9c35['getTeams'](_0x4ec4f0);}})[_0x6f84('0x15')](function(_0x4830ed){if(_0x4830ed){return _0x4830ed?{'count':_0x1865a1,'rows':_0x4830ed}:null;}})[_0x6f84('0x15')](respondWithResult(_0x5337d4,null))[_0x6f84('0x1e')](handleError(_0x5337d4,null));};exports[_0x6f84('0x10b')]=function(_0x560a89,_0x18ad10){return db[_0x6f84('0x3c')][_0x6f84('0x5b')]({'where':{'id':_0x560a89[_0x6f84('0x51')]['id']}})['then'](handleEntityNotFound(_0x18ad10,null))[_0x6f84('0x15')](function(_0x1acfde){if(_0x1acfde){var _0x3656a4=_0x1acfde[_0x6f84('0x2a')]({'plain':!![]});return _0x1acfde[_0x6f84('0x10b')](_0x560a89[_0x6f84('0x5e')]['ids'],_[_0x6f84('0x10c')](_0x560a89['body'],[_0x6f84('0x61'),'id'])||{})['then'](function(){for(var _0x422c69=0x0;_0x422c69<_0x560a89[_0x6f84('0x5e')][_0x6f84('0x61')]['length'];_0x422c69++){var _0x515961=[];db[_0x6f84('0x109')][_0x6f84('0xd0')]({'where':{'id':_0x560a89[_0x6f84('0x5e')][_0x6f84('0x61')][_0x422c69]}})[_0x6f84('0x15')](function(_0x5ee469){_0x515961[_0x6f84('0x46')](_0x5ee469[_0x6f84('0xee')]()['then'](function(_0x9aeea1){for(var _0x4f1cc8=0x0;_0x4f1cc8<_0x9aeea1[_0x6f84('0x4b')];_0x4f1cc8++){_0x9aeea1[_0x4f1cc8][_0x6f84('0x10d')](_0x6f84('0xa6'),_0x6f84('0x10e'));}return _0x9aeea1;}));_0x515961[_0x6f84('0x46')](_0x5ee469['getChatQueues']()[_0x6f84('0x15')](function(_0x1c41b0){for(var _0x37145c=0x0;_0x37145c<_0x1c41b0[_0x6f84('0x4b')];_0x37145c++){_0x1c41b0[_0x37145c][_0x6f84('0x10d')]('channel',_0x6f84('0x10f'));}return _0x1c41b0;}));_0x515961['push'](_0x5ee469[_0x6f84('0x110')]()[_0x6f84('0x15')](function(_0x2daee1){for(var _0x437442=0x0;_0x437442<_0x2daee1[_0x6f84('0x4b')];_0x437442++){_0x2daee1[_0x437442][_0x6f84('0x10d')](_0x6f84('0xa6'),_0x6f84('0x111'));}return _0x2daee1;}));_0x515961[_0x6f84('0x46')](_0x5ee469['getSmsQueues']()[_0x6f84('0x15')](function(_0x17644d){for(var _0x3b7c36=0x0;_0x3b7c36<_0x17644d['length'];_0x3b7c36++){_0x17644d[_0x3b7c36]['setDataValue'](_0x6f84('0xa6'),_0x6f84('0x112'));}return _0x17644d;}));_0x515961[_0x6f84('0x46')](_0x5ee469[_0x6f84('0x113')]()[_0x6f84('0x15')](function(_0x4d2dd8){for(var _0x3ec912=0x0;_0x3ec912<_0x4d2dd8['length'];_0x3ec912++){_0x4d2dd8[_0x3ec912][_0x6f84('0x10d')](_0x6f84('0xa6'),_0x6f84('0x114'));}return _0x4d2dd8;}));_0x515961[_0x6f84('0x46')](_0x5ee469[_0x6f84('0x115')]()[_0x6f84('0x15')](function(_0x280e72){for(var _0x3f7f0d=0x0;_0x3f7f0d<_0x280e72[_0x6f84('0x4b')];_0x3f7f0d++){_0x280e72[_0x3f7f0d]['setDataValue'](_0x6f84('0xa6'),_0x6f84('0x116'));}return _0x280e72;}));_0x515961[_0x6f84('0x46')](_0x5ee469[_0x6f84('0x117')]()[_0x6f84('0x15')](function(_0x5c2622){for(var _0x574e4d=0x0;_0x574e4d<_0x5c2622[_0x6f84('0x4b')];_0x574e4d++){_0x5c2622[_0x574e4d][_0x6f84('0x10d')](_0x6f84('0xa6'),_0x6f84('0x118'));}return _0x5c2622;}));return BPromise[_0x6f84('0x50')](_0x515961);})[_0x6f84('0x15')](function(_0x58cb74){var _0x176b90=_[_0x6f84('0x119')](_0x58cb74);_0x515961=[];return db[_0x6f84('0x68')]['transaction'](function(_0x5b7ec1){for(var _0x2ae6cf=0x0;_0x2ae6cf<_0x176b90[_0x6f84('0x4b')];_0x2ae6cf++){_0x515961[_0x6f84('0x46')](_0x176b90[_0x2ae6cf][_0x6f84('0x11a')](_0x3656a4['id']),{'transaction':_0x5b7ec1});}return BPromise[_0x6f84('0x50')](_0x515961)[_0x6f84('0x15')](function(){if(_0x3656a4['online']){return BPromise[_0x6f84('0x85')](_[_0x6f84('0x31')](_0x176b90,function(_0x21966a){return _0x21966a[_0x6f84('0x11b')](_0x6f84('0xa6'))===_0x6f84('0x10e');}),function(_0x124c68){return db[_0x6f84('0xab')]['upsert']({'membername':_0x3656a4[_0x6f84('0x36')],'UserId':_0x3656a4['id'],'queue_name':_0x124c68[_0x6f84('0x36')],'VoiceQueueId':_0x124c68['id'],'interface':_[_0x6f84('0x65')](_0x3656a4[_0x6f84('0x98')])?util['format'](_0x6f84('0xa4'),_0x3656a4[_0x6f84('0x36')]):_0x3656a4[_0x6f84('0x98')],'paused':_0x3656a4[_0x6f84('0x97')]||![],'penalty':_0x3656a4[_0x6f84('0x9e')]},{'transaction':_0x5b7ec1});});}else{return;}})['then'](function(){for(var _0x2d2211=0x0;_0x2d2211<_0x176b90[_0x6f84('0x4b')];_0x2d2211++){var _0x1b9d4e=_0x176b90[_0x2d2211][_0x6f84('0x11b')]('channel');var _0x306782=_0x1b9d4e+_0x6f84('0xa0');socket[_0x6f84('0xa9')]('user'+_0x1b9d4e+_0x6f84('0xa1'),{'UserId':_0x3656a4['id'],['queueField']:_0x176b90[_0x2d2211]['id']});}});});});}});}})['then'](respondWithStatusCode(_0x18ad10,null))[_0x6f84('0x1e')](handleError(_0x18ad10,null));};exports[_0x6f84('0x11c')]=function(_0x114b73,_0x3404e6){return db[_0x6f84('0x3c')]['findOne']({'where':{'id':_0x114b73[_0x6f84('0x51')]['id']}})[_0x6f84('0x15')](handleEntityNotFound(_0x3404e6,null))[_0x6f84('0x15')](function(_0x43b4ed){if(_0x43b4ed){var _0x40a2d8=_0x43b4ed['get']({'plain':!![]});var _0x590446=_0x114b73[_0x6f84('0x42')][_0x6f84('0x61')];return _0x43b4ed[_0x6f84('0x11c')](_0x590446)[_0x6f84('0x15')](function(){for(var _0x56a0b8=0x0;_0x56a0b8<_0x590446['length'];_0x56a0b8++){var _0x481dde=[];db[_0x6f84('0x109')]['findOne']({'where':{'id':_0x590446[_0x56a0b8]}})[_0x6f84('0x15')](function(_0x57b07e){_0x481dde[_0x6f84('0x46')](_0x57b07e[_0x6f84('0xee')]()[_0x6f84('0x15')](function(_0x4df8bc){for(var _0x338053=0x0;_0x338053<_0x4df8bc[_0x6f84('0x4b')];_0x338053++){_0x4df8bc[_0x338053][_0x6f84('0x10d')](_0x6f84('0xa6'),'Voice');}return _0x4df8bc;}));_0x481dde['push'](_0x57b07e['getChatQueues']()[_0x6f84('0x15')](function(_0x54f3d8){for(var _0x25ede9=0x0;_0x25ede9<_0x54f3d8[_0x6f84('0x4b')];_0x25ede9++){_0x54f3d8[_0x25ede9]['setDataValue'](_0x6f84('0xa6'),_0x6f84('0x10f'));}return _0x54f3d8;}));_0x481dde[_0x6f84('0x46')](_0x57b07e[_0x6f84('0x110')]()['then'](function(_0x7381c8){for(var _0x2b3319=0x0;_0x2b3319<_0x7381c8['length'];_0x2b3319++){_0x7381c8[_0x2b3319]['setDataValue'](_0x6f84('0xa6'),_0x6f84('0x111'));}return _0x7381c8;}));_0x481dde[_0x6f84('0x46')](_0x57b07e[_0x6f84('0x11d')]()[_0x6f84('0x15')](function(_0x8eeb82){for(var _0x4e755=0x0;_0x4e755<_0x8eeb82['length'];_0x4e755++){_0x8eeb82[_0x4e755]['setDataValue']('channel','Sms');}return _0x8eeb82;}));_0x481dde[_0x6f84('0x46')](_0x57b07e[_0x6f84('0x113')]()[_0x6f84('0x15')](function(_0x440088){for(var _0x530104=0x0;_0x530104<_0x440088[_0x6f84('0x4b')];_0x530104++){_0x440088[_0x530104][_0x6f84('0x10d')]('channel',_0x6f84('0x114'));}return _0x440088;}));_0x481dde[_0x6f84('0x46')](_0x57b07e['getFaxQueues']()[_0x6f84('0x15')](function(_0x40e5e9){for(var _0x35c81b=0x0;_0x35c81b<_0x40e5e9[_0x6f84('0x4b')];_0x35c81b++){_0x40e5e9[_0x35c81b][_0x6f84('0x10d')]('channel',_0x6f84('0x116'));}return _0x40e5e9;}));_0x481dde[_0x6f84('0x46')](_0x57b07e[_0x6f84('0x117')]()[_0x6f84('0x15')](function(_0x29ed6d){for(var _0x1f8d4b=0x0;_0x1f8d4b<_0x29ed6d[_0x6f84('0x4b')];_0x1f8d4b++){_0x29ed6d[_0x1f8d4b][_0x6f84('0x10d')]('channel',_0x6f84('0x118'));}return _0x29ed6d;}));return BPromise[_0x6f84('0x50')](_0x481dde);})[_0x6f84('0x15')](function(_0x5eddc1){var _0x24a5ed=_['flatten'](_0x5eddc1);_0x481dde=[];return db[_0x6f84('0x68')][_0x6f84('0x11e')](function(_0x42f0dc){for(var _0x320e10=0x0;_0x320e10<_0x24a5ed[_0x6f84('0x4b')];_0x320e10++){_0x481dde[_0x6f84('0x46')](_0x24a5ed[_0x320e10][_0x6f84('0x11f')](_0x40a2d8['id']),{'transaction':_0x42f0dc});}return BPromise[_0x6f84('0x50')](_0x481dde)['then'](function(){if(_0x40a2d8[_0x6f84('0x120')]){return BPromise[_0x6f84('0x85')](_['filter'](_0x24a5ed,function(_0x6df3b9){return _0x6df3b9[_0x6f84('0x11b')](_0x6f84('0xa6'))==='Voice';}),function(_0x5a1041){return db['UserVoiceQueueRt'][_0x6f84('0x38')]({'where':{'VoiceQueueId':_0x5a1041['id'],'UserId':_0x40a2d8['id']},'transaction':_0x42f0dc});});}else{return;}})['then'](function(){for(var _0x4d1949=0x0;_0x4d1949<_0x24a5ed[_0x6f84('0x4b')];_0x4d1949++){var _0x41f9b1=_0x24a5ed[_0x4d1949]['getDataValue']('channel');var _0x1fc9da=_0x41f9b1+_0x6f84('0xa0');socket[_0x6f84('0xa9')](_0x6f84('0x2d')+_0x41f9b1+_0x6f84('0xaa'),{'UserId':_0x40a2d8['id'],['queueField']:_0x24a5ed[_0x4d1949]['id']});}});});});}});}})['then'](respondWithStatusCode(_0x3404e6,null))['catch'](handleError(_0x3404e6,null));};exports[_0x6f84('0x121')]=function(_0x2bb0d7,_0x63da62){var _0x4f111b={};var _0x303ecd={};var _0x54837b;var _0xb125e;return db[_0x6f84('0x3c')][_0x6f84('0xd0')]({'where':{'id':_0x2bb0d7[_0x6f84('0x51')]['id']}})[_0x6f84('0x15')](handleEntityNotFound(_0x63da62,null))[_0x6f84('0x15')](function(_0x430c6c){if(_0x430c6c){_0x54837b=_0x430c6c;_0x303ecd['model']=_[_0x6f84('0x53')](db[_0x6f84('0x122')][_0x6f84('0x54')]);_0x303ecd[_0x6f84('0x42')]=_[_0x6f84('0x53')](_0x2bb0d7[_0x6f84('0x42')]);_0x303ecd[_0x6f84('0x56')]=_['intersection'](_0x303ecd['model'],_0x303ecd['query']);_0x4f111b[_0x6f84('0x45')]=_[_0x6f84('0x57')](_0x303ecd[_0x6f84('0x52')],qs[_0x6f84('0x58')](_0x2bb0d7[_0x6f84('0x42')][_0x6f84('0x58')]));_0x4f111b[_0x6f84('0x45')]=_0x4f111b[_0x6f84('0x45')][_0x6f84('0x4b')]?_0x4f111b['attributes']:_0x303ecd[_0x6f84('0x52')];_0x4f111b['order']=qs[_0x6f84('0xc7')](_0x2bb0d7[_0x6f84('0x42')][_0x6f84('0xc7')]);_0x4f111b['where']=qs[_0x6f84('0x56')](_[_0x6f84('0xc8')](_0x2bb0d7['query'],_0x303ecd['filters']));if(_0x2bb0d7[_0x6f84('0x42')][_0x6f84('0x31')]){_0x4f111b[_0x6f84('0x41')]=_[_0x6f84('0x59')](_0x4f111b[_0x6f84('0x41')],{'$or':_[_0x6f84('0x33')](_0x4f111b[_0x6f84('0x45')],function(_0xe75ce7){var _0x5b2a09={};_0x5b2a09[_0xe75ce7]={'$like':'%'+_0x2bb0d7[_0x6f84('0x42')][_0x6f84('0x31')]+'%'};return _0x5b2a09;})});}_0x4f111b=_[_0x6f84('0x59')]({},_0x4f111b,_0x2bb0d7['options']);return _0x54837b[_0x6f84('0x121')](_0x4f111b);}})['then'](function(_0x5664a8){if(_0x5664a8){_0xb125e=_0x5664a8['length'];if(!_0x2bb0d7['query'][_0x6f84('0xc9')](_0x6f84('0xce'))){_0x4f111b[_0x6f84('0x25')]=qs[_0x6f84('0x25')](_0x2bb0d7['query']['limit']);_0x4f111b['offset']=qs[_0x6f84('0x23')](_0x2bb0d7[_0x6f84('0x42')]['offset']);}return _0x54837b[_0x6f84('0x121')](_0x4f111b);}})[_0x6f84('0x15')](function(_0x7963a0){if(_0x7963a0){return _0x7963a0?{'count':_0xb125e,'rows':_0x7963a0}:null;}})['then'](respondWithResult(_0x63da62,null))[_0x6f84('0x1e')](handleError(_0x63da62,null));};exports[_0x6f84('0x123')]=function(_0x448dc2,_0x3d2a9a){var _0x1dca22={};var _0x4678cf={};var _0x156b2f;var _0xc8c4ec;return db['User'][_0x6f84('0xd0')]({'where':{'id':_0x448dc2['params']['id']}})['then'](handleEntityNotFound(_0x3d2a9a,null))[_0x6f84('0x15')](function(_0xac38b7){if(_0xac38b7){_0x156b2f=_0xac38b7;_0x4678cf[_0x6f84('0x52')]=_[_0x6f84('0x53')](db[_0x6f84('0x3c')][_0x6f84('0x54')]);_0x4678cf['query']=_[_0x6f84('0x53')](_0x448dc2[_0x6f84('0x42')]);_0x4678cf['filters']=_[_0x6f84('0x57')](_0x4678cf[_0x6f84('0x52')],_0x4678cf[_0x6f84('0x42')]);_0x1dca22[_0x6f84('0x45')]=_[_0x6f84('0x57')](_0x4678cf['model'],qs[_0x6f84('0x58')](_0x448dc2[_0x6f84('0x42')]['fields']));_0x1dca22[_0x6f84('0x45')]=_0x1dca22[_0x6f84('0x45')][_0x6f84('0x4b')]?_0x1dca22['attributes']:_0x4678cf[_0x6f84('0x52')];_0x1dca22[_0x6f84('0xc6')]=qs[_0x6f84('0xc7')](_0x448dc2[_0x6f84('0x42')]['sort']);_0x1dca22['where']=qs[_0x6f84('0x56')](_[_0x6f84('0xc8')](_0x448dc2[_0x6f84('0x42')],_0x4678cf[_0x6f84('0x56')]));if(_0x448dc2[_0x6f84('0x42')][_0x6f84('0x31')]){_0x1dca22[_0x6f84('0x41')]=_[_0x6f84('0x59')](_0x1dca22[_0x6f84('0x41')],{'$or':_[_0x6f84('0x33')](_0x1dca22[_0x6f84('0x45')],function(_0x223cf8){var _0x2feae4={};_0x2feae4[_0x223cf8]={'$like':'%'+_0x448dc2['query']['filter']+'%'};return _0x2feae4;})});}_0x1dca22[_0x6f84('0x52')]=db[_0x6f84('0x3c')];_0x1dca22['as']=_0x6f84('0x2e');_0x1dca22=_[_0x6f84('0x59')]({},_0x1dca22,_0x448dc2[_0x6f84('0x5a')]);return _0x156b2f['getVoiceQueues']({'include':[_0x1dca22]});}})['then'](function(_0x4989d6){if(_0x4989d6){var _0x2d0468={},_0x512252=[],_0x5626af=0x0;for(var _0x4a0e20=0x0;_0x4a0e20<_0x4989d6[_0x6f84('0x4b')];_0x4a0e20+=0x1){for(var _0x4f0d53=0x0,_0x9aaaca;_0x4f0d53<_0x4989d6[_0x4a0e20][_0x6f84('0x2e')][_0x6f84('0x4b')];_0x4f0d53+=0x1){_0x9aaaca=_0x4989d6[_0x4a0e20]['Agents'][_0x4f0d53]['get']({'plain':!![]});_0x2d0468[_0x9aaaca['id']]=_0x9aaaca;}}_0x2d0468=_[_0x6f84('0x124')](_0x2d0468);for(var _0x322688=qs[_0x6f84('0x23')](_0x448dc2[_0x6f84('0x42')][_0x6f84('0x23')]);_0x322688<_0x2d0468[_0x6f84('0x4b')]&&_0x512252[_0x6f84('0x4b')]<qs[_0x6f84('0x25')](_0x448dc2[_0x6f84('0x42')][_0x6f84('0x25')]);_0x322688+=0x1){if(_0x2d0468[_0x322688]){_0x512252['push'](_0x2d0468[_0x322688]);}}return{'count':_0x2d0468[_0x6f84('0x4b')],'rows':_0x512252};}})[_0x6f84('0x15')](respondWithResult(_0x3d2a9a,null))[_0x6f84('0x1e')](handleError(_0x3d2a9a,null));};exports[_0x6f84('0x38')]=function(_0x314b19,_0x4697c5){if(_0x314b19[_0x6f84('0x2d')]['id']==_0x314b19[_0x6f84('0x51')]['id']){return _0x4697c5['status'](0x1f4)[_0x6f84('0x3a')]({'message':'You\x20can\x27t\x20delete\x20yourself'});}return db[_0x6f84('0x3c')][_0x6f84('0x5b')]({'where':{'id':_0x314b19['params']['id']}})[_0x6f84('0x15')](handleEntityNotFound(_0x4697c5,null))[_0x6f84('0x15')](removeEntity(_0x4697c5,null))[_0x6f84('0x1e')](handleError(_0x4697c5,null));};exports[_0x6f84('0x125')]=function(_0x5309ef,_0x30a429){return db[_0x6f84('0x3c')][_0x6f84('0x5b')]({'where':{'id':_0x5309ef[_0x6f84('0x51')]['id']}})[_0x6f84('0x15')](handleEntityNotFound(_0x30a429,null))['then'](function(_0x5a0ee0){if(_0x5a0ee0){return _0x5a0ee0[_0x6f84('0x125')](_0x5309ef[_0x6f84('0x5e')][_0x6f84('0x61')],_[_0x6f84('0x10c')](_0x5309ef['body'],[_0x6f84('0x61'),'id'])||{})[_0x6f84('0x9f')](function(){for(var _0x5c6dd7=0x0;_0x5c6dd7<_0x5309ef[_0x6f84('0x5e')][_0x6f84('0x61')][_0x6f84('0x4b')];_0x5c6dd7+=0x1){socket[_0x6f84('0xa9')](_0x6f84('0x126'),{'ChatInteractionId':Number(_0x5309ef[_0x6f84('0x5e')][_0x6f84('0x61')][_0x5c6dd7]),'UserId':Number(_0x5309ef[_0x6f84('0x51')]['id'])});}return _0x5309ef[_0x6f84('0x5e')][_0x6f84('0x61')];});}})['then'](respondWithResult(_0x30a429,null))['catch'](handleError(_0x30a429,null));};exports['removeChatInteractions']=function(_0x380aec,_0x3755d){return db['User']['find']({'where':{'id':_0x380aec[_0x6f84('0x51')]['id']}})['then'](handleEntityNotFound(_0x3755d,null))[_0x6f84('0x15')](function(_0x305bc9){if(_0x305bc9){return _0x305bc9[_0x6f84('0x127')](_0x380aec[_0x6f84('0x42')][_0x6f84('0x61')])[_0x6f84('0x15')](function(){if(_['isArray'](_0x380aec['query']['ids'])){for(var _0x4c0316=0x0;_0x4c0316<_0x380aec[_0x6f84('0x42')]['ids']['length'];_0x4c0316+=0x1){socket[_0x6f84('0xa9')]('user_has_chat_interactions:remove',{'ChatInteractionId':Number(_0x380aec[_0x6f84('0x42')][_0x6f84('0x61')][_0x4c0316]),'UserId':Number(_0x380aec[_0x6f84('0x51')]['id'])});}}else{socket['emit'](_0x6f84('0x128'),{'ChatInteractionId':Number(_0x380aec[_0x6f84('0x42')][_0x6f84('0x61')]),'UserId':Number(_0x380aec['params']['id'])});}});}})[_0x6f84('0x15')](respondWithStatusCode(_0x3755d,null))[_0x6f84('0x1e')](handleError(_0x3755d,null));};exports[_0x6f84('0x129')]=function(_0xb04f7a,_0x5438e0){return db[_0x6f84('0x3c')][_0x6f84('0x5b')]({'where':{'id':_0xb04f7a[_0x6f84('0x51')]['id']}})[_0x6f84('0x15')](handleEntityNotFound(_0x5438e0,null))[_0x6f84('0x15')](function(_0x528f40){if(_0x528f40){return _0x528f40['addMailInteractions'](_0xb04f7a[_0x6f84('0x5e')][_0x6f84('0x61')],_[_0x6f84('0x10c')](_0xb04f7a[_0x6f84('0x5e')],[_0x6f84('0x61'),'id'])||{})[_0x6f84('0x9f')](function(){for(var _0x117345=0x0;_0x117345<_0xb04f7a['body'][_0x6f84('0x61')][_0x6f84('0x4b')];_0x117345+=0x1){socket[_0x6f84('0xa9')]('user_has_mail_interactions:save',{'MailInteractionId':Number(_0xb04f7a[_0x6f84('0x5e')][_0x6f84('0x61')][_0x117345]),'UserId':Number(_0xb04f7a[_0x6f84('0x51')]['id'])});}return _0xb04f7a[_0x6f84('0x5e')]['ids'];});}})['then'](respondWithResult(_0x5438e0,null))['catch'](handleError(_0x5438e0,null));};exports[_0x6f84('0x12a')]=function(_0x8be4ca,_0x7ad992){return db['User'][_0x6f84('0x5b')]({'where':{'id':_0x8be4ca[_0x6f84('0x51')]['id']}})['then'](handleEntityNotFound(_0x7ad992,null))['then'](function(_0xe1f3a8){if(_0xe1f3a8){return _0xe1f3a8[_0x6f84('0x12a')](_0x8be4ca[_0x6f84('0x42')][_0x6f84('0x61')])['then'](function(){if(_[_0x6f84('0xa8')](_0x8be4ca[_0x6f84('0x42')][_0x6f84('0x61')])){for(var _0x4f25cd=0x0;_0x4f25cd<_0x8be4ca[_0x6f84('0x42')]['ids'][_0x6f84('0x4b')];_0x4f25cd+=0x1){socket[_0x6f84('0xa9')](_0x6f84('0x12b'),{'MailInteractionId':Number(_0x8be4ca['query']['ids'][_0x4f25cd]),'UserId':Number(_0x8be4ca[_0x6f84('0x51')]['id'])});}}else{socket['emit'](_0x6f84('0x12b'),{'MailInteractionId':Number(_0x8be4ca[_0x6f84('0x42')]['ids']),'UserId':Number(_0x8be4ca[_0x6f84('0x51')]['id'])});}});}})[_0x6f84('0x15')](respondWithStatusCode(_0x7ad992,null))[_0x6f84('0x1e')](handleError(_0x7ad992,null));};exports['addFaxInteractions']=function(_0x41e764,_0x31d6de){return db['User']['find']({'where':{'id':_0x41e764[_0x6f84('0x51')]['id']}})[_0x6f84('0x15')](handleEntityNotFound(_0x31d6de,null))['then'](function(_0x442eb6){if(_0x442eb6){return _0x442eb6[_0x6f84('0x12c')](_0x41e764['body'][_0x6f84('0x61')],_[_0x6f84('0x10c')](_0x41e764[_0x6f84('0x5e')],[_0x6f84('0x61'),'id'])||{})[_0x6f84('0x9f')](function(){for(var _0x34c399=0x0;_0x34c399<_0x41e764[_0x6f84('0x5e')][_0x6f84('0x61')][_0x6f84('0x4b')];_0x34c399+=0x1){socket['emit'](_0x6f84('0x12d'),{'FaxInteractionId':Number(_0x41e764[_0x6f84('0x5e')][_0x6f84('0x61')][_0x34c399]),'UserId':Number(_0x41e764[_0x6f84('0x51')]['id'])});}return _0x41e764[_0x6f84('0x5e')]['ids'];});}})[_0x6f84('0x15')](respondWithResult(_0x31d6de,null))[_0x6f84('0x1e')](handleError(_0x31d6de,null));};exports['removeFaxInteractions']=function(_0x43e934,_0x3a1843){return db[_0x6f84('0x3c')]['find']({'where':{'id':_0x43e934['params']['id']}})[_0x6f84('0x15')](handleEntityNotFound(_0x3a1843,null))[_0x6f84('0x15')](function(_0x50f985){if(_0x50f985){return _0x50f985[_0x6f84('0x12e')](_0x43e934[_0x6f84('0x42')][_0x6f84('0x61')])[_0x6f84('0x15')](function(){if(_['isArray'](_0x43e934[_0x6f84('0x42')][_0x6f84('0x61')])){for(var _0x2277e8=0x0;_0x2277e8<_0x43e934[_0x6f84('0x42')]['ids'][_0x6f84('0x4b')];_0x2277e8+=0x1){socket[_0x6f84('0xa9')]('user_has_fax_interactions:remove',{'FaxInteractionId':Number(_0x43e934[_0x6f84('0x42')][_0x6f84('0x61')][_0x2277e8]),'UserId':Number(_0x43e934[_0x6f84('0x51')]['id'])});}}else{socket[_0x6f84('0xa9')](_0x6f84('0x12f'),{'FaxInteractionId':Number(_0x43e934[_0x6f84('0x42')][_0x6f84('0x61')]),'UserId':Number(_0x43e934[_0x6f84('0x51')]['id'])});}});}})[_0x6f84('0x15')](respondWithStatusCode(_0x3a1843,null))['catch'](handleError(_0x3a1843,null));};exports[_0x6f84('0x130')]=function(_0x13bf49,_0x3f7b1d){return db['User'][_0x6f84('0x5b')]({'where':{'id':_0x13bf49[_0x6f84('0x51')]['id']}})['then'](handleEntityNotFound(_0x3f7b1d,null))[_0x6f84('0x15')](function(_0x285911){if(_0x285911){return _0x285911[_0x6f84('0x130')](_0x13bf49[_0x6f84('0x5e')]['ids'],_[_0x6f84('0x10c')](_0x13bf49[_0x6f84('0x5e')],['ids','id'])||{})[_0x6f84('0x9f')](function(){for(var _0x388472=0x0;_0x388472<_0x13bf49[_0x6f84('0x5e')]['ids'][_0x6f84('0x4b')];_0x388472+=0x1){socket['emit'](_0x6f84('0x131'),{'SmsInteractionId':Number(_0x13bf49[_0x6f84('0x5e')][_0x6f84('0x61')][_0x388472]),'UserId':Number(_0x13bf49[_0x6f84('0x51')]['id'])});}return _0x13bf49[_0x6f84('0x5e')][_0x6f84('0x61')];});}})[_0x6f84('0x15')](respondWithResult(_0x3f7b1d,null))[_0x6f84('0x1e')](handleError(_0x3f7b1d,null));};exports[_0x6f84('0x132')]=function(_0x1879b4,_0x477ac3){return db[_0x6f84('0x3c')][_0x6f84('0x5b')]({'where':{'id':_0x1879b4['params']['id']}})[_0x6f84('0x15')](handleEntityNotFound(_0x477ac3,null))[_0x6f84('0x15')](function(_0x432f10){if(_0x432f10){return _0x432f10[_0x6f84('0x132')](_0x1879b4[_0x6f84('0x42')][_0x6f84('0x61')])[_0x6f84('0x15')](function(){if(_[_0x6f84('0xa8')](_0x1879b4['query'][_0x6f84('0x61')])){for(var _0x3fa266=0x0;_0x3fa266<_0x1879b4[_0x6f84('0x42')][_0x6f84('0x61')][_0x6f84('0x4b')];_0x3fa266+=0x1){socket[_0x6f84('0xa9')]('user_has_sms_interactions:remove',{'SmsInteractionId':Number(_0x1879b4[_0x6f84('0x42')][_0x6f84('0x61')][_0x3fa266]),'UserId':Number(_0x1879b4[_0x6f84('0x51')]['id'])});}}else{socket[_0x6f84('0xa9')]('user_has_sms_interactions:remove',{'SmsInteractionId':Number(_0x1879b4[_0x6f84('0x42')][_0x6f84('0x61')]),'UserId':Number(_0x1879b4[_0x6f84('0x51')]['id'])});}});}})[_0x6f84('0x15')](respondWithStatusCode(_0x477ac3,null))[_0x6f84('0x1e')](handleError(_0x477ac3,null));};exports['addOpenchannelInteractions']=function(_0x1771c7,_0x1917a8){return db[_0x6f84('0x3c')][_0x6f84('0x5b')]({'where':{'id':_0x1771c7[_0x6f84('0x51')]['id']}})[_0x6f84('0x15')](handleEntityNotFound(_0x1917a8,null))[_0x6f84('0x15')](function(_0x2b222b){if(_0x2b222b){return _0x2b222b[_0x6f84('0x133')](_0x1771c7[_0x6f84('0x5e')][_0x6f84('0x61')],_['omit'](_0x1771c7[_0x6f84('0x5e')],[_0x6f84('0x61'),'id'])||{})[_0x6f84('0x9f')](function(){for(var _0x28deed=0x0;_0x28deed<_0x1771c7[_0x6f84('0x5e')][_0x6f84('0x61')]['length'];_0x28deed+=0x1){socket[_0x6f84('0xa9')](_0x6f84('0x134'),{'OpenchannelInteractionId':Number(_0x1771c7['body'][_0x6f84('0x61')][_0x28deed]),'UserId':Number(_0x1771c7[_0x6f84('0x51')]['id'])});}return _0x1771c7['body'][_0x6f84('0x61')];});}})[_0x6f84('0x15')](respondWithResult(_0x1917a8,null))['catch'](handleError(_0x1917a8,null));};exports['removeOpenchannelInteractions']=function(_0x194fc9,_0x5ae798){return db[_0x6f84('0x3c')][_0x6f84('0x5b')]({'where':{'id':_0x194fc9['params']['id']}})[_0x6f84('0x15')](handleEntityNotFound(_0x5ae798,null))[_0x6f84('0x15')](function(_0x52f0d5){if(_0x52f0d5){return _0x52f0d5['removeOpenchannelInteractions'](_0x194fc9[_0x6f84('0x42')][_0x6f84('0x61')])[_0x6f84('0x15')](function(){if(_[_0x6f84('0xa8')](_0x194fc9[_0x6f84('0x42')]['ids'])){for(var _0x1c3bff=0x0;_0x1c3bff<_0x194fc9['query'][_0x6f84('0x61')][_0x6f84('0x4b')];_0x1c3bff+=0x1){socket['emit'](_0x6f84('0x135'),{'OpenchannelInteractionId':Number(_0x194fc9[_0x6f84('0x42')][_0x6f84('0x61')][_0x1c3bff]),'UserId':Number(_0x194fc9[_0x6f84('0x51')]['id'])});}}else{socket[_0x6f84('0xa9')](_0x6f84('0x135'),{'OpenchannelInteractionId':Number(_0x194fc9[_0x6f84('0x42')]['ids']),'UserId':Number(_0x194fc9[_0x6f84('0x51')]['id'])});}});}})[_0x6f84('0x15')](respondWithStatusCode(_0x5ae798,null))[_0x6f84('0x1e')](handleError(_0x5ae798,null));};exports[_0x6f84('0x136')]=function(_0x568b84,_0x5a1080){return db[_0x6f84('0x3c')][_0x6f84('0x5b')]({'where':{'id':_0x568b84[_0x6f84('0x51')]['id']}})[_0x6f84('0x15')](handleEntityNotFound(_0x5a1080,null))[_0x6f84('0x15')](function(_0x24e902){if(_0x24e902){return _0x24e902[_0x6f84('0x136')](_0x568b84[_0x6f84('0x5e')]['ids'],_['omit'](_0x568b84['body'],[_0x6f84('0x61'),'id'])||{})['spread'](function(){for(var _0x5a7018=0x0;_0x5a7018<_0x568b84[_0x6f84('0x5e')]['ids']['length'];_0x5a7018+=0x1){socket[_0x6f84('0xa9')](_0x6f84('0x137'),{'WhatsappInteractionId':Number(_0x568b84[_0x6f84('0x5e')]['ids'][_0x5a7018]),'UserId':Number(_0x568b84[_0x6f84('0x51')]['id'])});}return _0x568b84[_0x6f84('0x5e')][_0x6f84('0x61')];});}})[_0x6f84('0x15')](respondWithResult(_0x5a1080,null))[_0x6f84('0x1e')](handleError(_0x5a1080,null));};exports['removeWhatsappInteractions']=function(_0x459599,_0xfe93c3){return db['User'][_0x6f84('0x5b')]({'where':{'id':_0x459599[_0x6f84('0x51')]['id']}})[_0x6f84('0x15')](handleEntityNotFound(_0xfe93c3,null))['then'](function(_0x5ada3a){if(_0x5ada3a){return _0x5ada3a[_0x6f84('0x138')](_0x459599[_0x6f84('0x42')][_0x6f84('0x61')]);}})[_0x6f84('0x15')](respondWithStatusCode(_0xfe93c3,null))[_0x6f84('0x1e')](handleError(_0xfe93c3,null));};exports[_0x6f84('0x139')]=function(_0x105df9,_0x187cc7){var _0x3b6dd9={};var _0x220246={};var _0x3e994b;var _0x50c525;return db[_0x6f84('0x3c')]['findOne']({'where':{'id':_0x105df9['params']['id']}})[_0x6f84('0x15')](handleEntityNotFound(_0x187cc7,null))[_0x6f84('0x15')](function(_0x2573eb){if(_0x2573eb){_0x3e994b=_0x2573eb;_0x220246[_0x6f84('0x52')]=_[_0x6f84('0x53')](db[_0x6f84('0x13a')][_0x6f84('0x54')]);_0x220246['query']=_[_0x6f84('0x53')](_0x105df9[_0x6f84('0x42')]);_0x220246['filters']=_['intersection'](_0x220246['model'],_0x220246[_0x6f84('0x42')]);_0x3b6dd9[_0x6f84('0x45')]=_[_0x6f84('0x57')](_0x220246[_0x6f84('0x52')],qs['fields'](_0x105df9[_0x6f84('0x42')][_0x6f84('0x58')]));_0x3b6dd9['attributes']=_0x3b6dd9[_0x6f84('0x45')][_0x6f84('0x4b')]?_0x3b6dd9[_0x6f84('0x45')]:_0x220246[_0x6f84('0x52')];_0x3b6dd9[_0x6f84('0xc6')]=qs[_0x6f84('0xc7')](_0x105df9[_0x6f84('0x42')]['sort']);_0x3b6dd9[_0x6f84('0x41')]=qs['filters'](_['pick'](_0x105df9[_0x6f84('0x42')],_0x220246[_0x6f84('0x56')]));if(_0x105df9[_0x6f84('0x42')][_0x6f84('0x31')]){_0x3b6dd9[_0x6f84('0x41')]=_[_0x6f84('0x59')](_0x3b6dd9[_0x6f84('0x41')],{'$or':_[_0x6f84('0x33')](_0x3b6dd9['attributes'],function(_0x13a283){var _0x35bb42={};_0x35bb42[_0x13a283]={'$like':'%'+_0x105df9['query'][_0x6f84('0x31')]+'%'};return _0x35bb42;})});}_0x3b6dd9=_['merge']({},_0x3b6dd9,_0x105df9[_0x6f84('0x5a')]);return _0x3e994b['getVoicePrefixes'](_0x3b6dd9);}})[_0x6f84('0x15')](function(_0x25e654){if(_0x25e654){_0x50c525=_0x25e654[_0x6f84('0x4b')];if(!_0x105df9[_0x6f84('0x42')][_0x6f84('0xc9')](_0x6f84('0xce'))){_0x3b6dd9[_0x6f84('0x25')]=qs[_0x6f84('0x25')](_0x105df9[_0x6f84('0x42')][_0x6f84('0x25')]);_0x3b6dd9[_0x6f84('0x23')]=qs[_0x6f84('0x23')](_0x105df9[_0x6f84('0x42')][_0x6f84('0x23')]);}return _0x3e994b['getVoicePrefixes'](_0x3b6dd9);}})[_0x6f84('0x15')](function(_0x25026d){if(_0x25026d){return _0x25026d?{'count':_0x50c525,'rows':_0x25026d}:null;}})[_0x6f84('0x15')](respondWithResult(_0x187cc7,null))[_0x6f84('0x1e')](handleError(_0x187cc7,null));};exports['getFaxAccounts']=function(_0x1c82d3,_0x4d2c06){var _0x4bdb42={};var _0x2d31b={};var _0x382b51;var _0x2f4f51;return db['User'][_0x6f84('0xd0')]({'where':{'id':_0x1c82d3[_0x6f84('0x51')]['id']}})[_0x6f84('0x15')](handleEntityNotFound(_0x4d2c06,null))[_0x6f84('0x15')](function(_0xc9372c){if(_0xc9372c){_0x382b51=_0xc9372c;_0x2d31b[_0x6f84('0x52')]=_[_0x6f84('0x53')](db['FaxAccount'][_0x6f84('0x54')]);_0x2d31b['query']=_['keys'](_0x1c82d3[_0x6f84('0x42')]);_0x2d31b[_0x6f84('0x56')]=_['intersection'](_0x2d31b[_0x6f84('0x52')],_0x2d31b[_0x6f84('0x42')]);_0x4bdb42[_0x6f84('0x45')]=_[_0x6f84('0x57')](_0x2d31b[_0x6f84('0x52')],qs[_0x6f84('0x58')](_0x1c82d3['query'][_0x6f84('0x58')]));_0x4bdb42['attributes']=_0x4bdb42[_0x6f84('0x45')][_0x6f84('0x4b')]?_0x4bdb42[_0x6f84('0x45')]:_0x2d31b['model'];_0x4bdb42['order']=qs[_0x6f84('0xc7')](_0x1c82d3[_0x6f84('0x42')][_0x6f84('0xc7')]);_0x4bdb42[_0x6f84('0x41')]=qs[_0x6f84('0x56')](_['pick'](_0x1c82d3[_0x6f84('0x42')],_0x2d31b[_0x6f84('0x56')]));if(_0x1c82d3[_0x6f84('0x42')][_0x6f84('0x31')]){_0x4bdb42[_0x6f84('0x41')]=_['merge'](_0x4bdb42['where'],{'$or':_[_0x6f84('0x33')](_0x4bdb42['attributes'],function(_0x56dc1d){var _0x5442f5={};_0x5442f5[_0x56dc1d]={'$like':'%'+_0x1c82d3[_0x6f84('0x42')]['filter']+'%'};return _0x5442f5;})});}_0x4bdb42=_[_0x6f84('0x59')]({},_0x4bdb42,_0x1c82d3[_0x6f84('0x5a')]);return _0x382b51[_0x6f84('0x13b')](_0x4bdb42);}})[_0x6f84('0x15')](function(_0xcfc2f1){if(_0xcfc2f1){_0x2f4f51=_0xcfc2f1[_0x6f84('0x4b')];if(!_0x1c82d3[_0x6f84('0x42')]['hasOwnProperty']('nolimit')){_0x4bdb42[_0x6f84('0x25')]=qs[_0x6f84('0x25')](_0x1c82d3[_0x6f84('0x42')]['limit']);_0x4bdb42[_0x6f84('0x23')]=qs['offset'](_0x1c82d3[_0x6f84('0x42')]['offset']);}return _0x382b51[_0x6f84('0x13b')](_0x4bdb42);}})[_0x6f84('0x15')](function(_0x1e83ed){if(_0x1e83ed){return _0x1e83ed?{'count':_0x2f4f51,'rows':_0x1e83ed}:null;}})['then'](respondWithResult(_0x4d2c06,null))[_0x6f84('0x1e')](handleError(_0x4d2c06,null));};exports[_0x6f84('0x13c')]=function(_0x1039f8,_0x3fa96b){return db[_0x6f84('0x3c')][_0x6f84('0x5b')]({'where':{'id':_0x1039f8[_0x6f84('0x51')]['id']}})[_0x6f84('0x15')](handleEntityNotFound(_0x3fa96b,null))[_0x6f84('0x15')](function(_0x5de8b4){if(_0x5de8b4){return _0x5de8b4['addFaxAccounts'](_0x1039f8[_0x6f84('0x5e')][_0x6f84('0x61')],_['omit'](_0x1039f8[_0x6f84('0x5e')],[_0x6f84('0x61'),'id'])||{});}})['then'](respondWithResult(_0x3fa96b,null))[_0x6f84('0x1e')](handleError(_0x3fa96b,null));};exports[_0x6f84('0x13d')]=function(_0x571917,_0x35ec6e){return db[_0x6f84('0x3c')][_0x6f84('0x5b')]({'where':{'id':_0x571917[_0x6f84('0x51')]['id']}})[_0x6f84('0x15')](handleEntityNotFound(_0x35ec6e,null))[_0x6f84('0x15')](function(_0x3c7bf9){if(_0x3c7bf9){return _0x3c7bf9[_0x6f84('0x13d')](_0x571917[_0x6f84('0x42')][_0x6f84('0x61')]);}})[_0x6f84('0x15')](respondWithStatusCode(_0x35ec6e,null))[_0x6f84('0x1e')](handleError(_0x35ec6e,null));};exports[_0x6f84('0x13e')]=function(_0x152eff,_0x142590){var _0x43783b={};var _0x2500bc={};var _0x1ab5d5;var _0x1a6014;return db[_0x6f84('0x3c')][_0x6f84('0xd0')]({'where':{'id':_0x152eff['params']['id']}})[_0x6f84('0x15')](handleEntityNotFound(_0x142590,null))[_0x6f84('0x15')](function(_0x567533){if(_0x567533){_0x1ab5d5=_0x567533;_0x2500bc[_0x6f84('0x52')]=_[_0x6f84('0x53')](db[_0x6f84('0x13f')][_0x6f84('0x54')]);_0x2500bc[_0x6f84('0x42')]=_[_0x6f84('0x53')](_0x152eff[_0x6f84('0x42')]);_0x2500bc[_0x6f84('0x56')]=_[_0x6f84('0x57')](_0x2500bc[_0x6f84('0x52')],_0x2500bc[_0x6f84('0x42')]);_0x43783b[_0x6f84('0x45')]=_['intersection'](_0x2500bc[_0x6f84('0x52')],qs[_0x6f84('0x58')](_0x152eff['query'][_0x6f84('0x58')]));_0x43783b[_0x6f84('0x45')]=_0x43783b[_0x6f84('0x45')][_0x6f84('0x4b')]?_0x43783b['attributes']:_0x2500bc[_0x6f84('0x52')];_0x43783b[_0x6f84('0xc6')]=qs[_0x6f84('0xc7')](_0x152eff[_0x6f84('0x42')][_0x6f84('0xc7')]);_0x43783b[_0x6f84('0x41')]=qs[_0x6f84('0x56')](_[_0x6f84('0xc8')](_0x152eff['query'],_0x2500bc[_0x6f84('0x56')]));if(_0x152eff[_0x6f84('0x42')][_0x6f84('0x31')]){_0x43783b[_0x6f84('0x41')]=_[_0x6f84('0x59')](_0x43783b[_0x6f84('0x41')],{'$or':_['map'](_0x43783b[_0x6f84('0x45')],function(_0x1061ed){var _0x3f8a67={};_0x3f8a67[_0x1061ed]={'$like':'%'+_0x152eff['query'][_0x6f84('0x31')]+'%'};return _0x3f8a67;})});}_0x43783b=_[_0x6f84('0x59')]({},_0x43783b,_0x152eff[_0x6f84('0x5a')]);return _0x1ab5d5['getMailAccounts'](_0x43783b);}})[_0x6f84('0x15')](function(_0x2df444){if(_0x2df444){_0x1a6014=_0x2df444['length'];if(!_0x152eff[_0x6f84('0x42')][_0x6f84('0xc9')](_0x6f84('0xce'))){_0x43783b[_0x6f84('0x25')]=qs[_0x6f84('0x25')](_0x152eff['query'][_0x6f84('0x25')]);_0x43783b[_0x6f84('0x23')]=qs[_0x6f84('0x23')](_0x152eff[_0x6f84('0x42')]['offset']);}return _0x1ab5d5[_0x6f84('0x13e')](_0x43783b);}})['then'](function(_0x1b29e3){if(_0x1b29e3){return _0x1b29e3?{'count':_0x1a6014,'rows':_0x1b29e3}:null;}})['then'](respondWithResult(_0x142590,null))[_0x6f84('0x1e')](handleError(_0x142590,null));};exports[_0x6f84('0x140')]=function(_0x1734b1,_0x167544){return db[_0x6f84('0x3c')][_0x6f84('0x5b')]({'where':{'id':_0x1734b1['params']['id']}})['then'](handleEntityNotFound(_0x167544,null))['then'](function(_0x40d3d9){if(_0x40d3d9){return _0x40d3d9[_0x6f84('0x140')](_0x1734b1['body']['ids'],_[_0x6f84('0x10c')](_0x1734b1[_0x6f84('0x5e')],[_0x6f84('0x61'),'id'])||{});}})[_0x6f84('0x15')](respondWithResult(_0x167544,null))[_0x6f84('0x1e')](handleError(_0x167544,null));};exports[_0x6f84('0x141')]=function(_0x151999,_0x5b2f9c){return db[_0x6f84('0x3c')]['find']({'where':{'id':_0x151999[_0x6f84('0x51')]['id']}})[_0x6f84('0x15')](handleEntityNotFound(_0x5b2f9c,null))[_0x6f84('0x15')](function(_0x486793){if(_0x486793){return _0x486793[_0x6f84('0x141')](_0x151999[_0x6f84('0x42')][_0x6f84('0x61')]);}})[_0x6f84('0x15')](respondWithStatusCode(_0x5b2f9c,null))[_0x6f84('0x1e')](handleError(_0x5b2f9c,null));};exports['getOpenchannelAccounts']=function(_0x2d097b,_0x11f0db){var _0x3cc3fa={};var _0x3fb2b1={};var _0x119103;var _0x271273;return db[_0x6f84('0x3c')][_0x6f84('0xd0')]({'where':{'id':_0x2d097b[_0x6f84('0x51')]['id']}})[_0x6f84('0x15')](handleEntityNotFound(_0x11f0db,null))[_0x6f84('0x15')](function(_0x2974e6){if(_0x2974e6){_0x119103=_0x2974e6;_0x3fb2b1[_0x6f84('0x52')]=_[_0x6f84('0x53')](db[_0x6f84('0x142')][_0x6f84('0x54')]);_0x3fb2b1[_0x6f84('0x42')]=_[_0x6f84('0x53')](_0x2d097b[_0x6f84('0x42')]);_0x3fb2b1[_0x6f84('0x56')]=_['intersection'](_0x3fb2b1[_0x6f84('0x52')],_0x3fb2b1[_0x6f84('0x42')]);_0x3cc3fa[_0x6f84('0x45')]=_[_0x6f84('0x57')](_0x3fb2b1[_0x6f84('0x52')],qs[_0x6f84('0x58')](_0x2d097b['query']['fields']));_0x3cc3fa[_0x6f84('0x45')]=_0x3cc3fa[_0x6f84('0x45')][_0x6f84('0x4b')]?_0x3cc3fa['attributes']:_0x3fb2b1[_0x6f84('0x52')];_0x3cc3fa['order']=qs[_0x6f84('0xc7')](_0x2d097b[_0x6f84('0x42')][_0x6f84('0xc7')]);_0x3cc3fa['where']=qs[_0x6f84('0x56')](_['pick'](_0x2d097b[_0x6f84('0x42')],_0x3fb2b1[_0x6f84('0x56')]));if(_0x2d097b[_0x6f84('0x42')]['filter']){_0x3cc3fa[_0x6f84('0x41')]=_[_0x6f84('0x59')](_0x3cc3fa[_0x6f84('0x41')],{'$or':_[_0x6f84('0x33')](_0x3cc3fa[_0x6f84('0x45')],function(_0x20a875){var _0x1ac43d={};_0x1ac43d[_0x20a875]={'$like':'%'+_0x2d097b[_0x6f84('0x42')]['filter']+'%'};return _0x1ac43d;})});}_0x3cc3fa=_['merge']({},_0x3cc3fa,_0x2d097b['options']);return _0x119103[_0x6f84('0x143')](_0x3cc3fa);}})['then'](function(_0x1f7a77){if(_0x1f7a77){_0x271273=_0x1f7a77[_0x6f84('0x4b')];if(!_0x2d097b[_0x6f84('0x42')]['hasOwnProperty'](_0x6f84('0xce'))){_0x3cc3fa[_0x6f84('0x25')]=qs[_0x6f84('0x25')](_0x2d097b[_0x6f84('0x42')][_0x6f84('0x25')]);_0x3cc3fa[_0x6f84('0x23')]=qs[_0x6f84('0x23')](_0x2d097b[_0x6f84('0x42')][_0x6f84('0x23')]);}return _0x119103['getOpenchannelAccounts'](_0x3cc3fa);}})[_0x6f84('0x15')](function(_0x498c0c){if(_0x498c0c){return _0x498c0c?{'count':_0x271273,'rows':_0x498c0c}:null;}})[_0x6f84('0x15')](respondWithResult(_0x11f0db,null))['catch'](handleError(_0x11f0db,null));};exports['addOpenchannelAccounts']=function(_0x293fea,_0xd88bae){return db['User'][_0x6f84('0x5b')]({'where':{'id':_0x293fea[_0x6f84('0x51')]['id']}})['then'](handleEntityNotFound(_0xd88bae,null))['then'](function(_0x1361ec){if(_0x1361ec){return _0x1361ec[_0x6f84('0x144')](_0x293fea[_0x6f84('0x5e')][_0x6f84('0x61')],_[_0x6f84('0x10c')](_0x293fea[_0x6f84('0x5e')],[_0x6f84('0x61'),'id'])||{});}})[_0x6f84('0x15')](respondWithResult(_0xd88bae,null))['catch'](handleError(_0xd88bae,null));};exports[_0x6f84('0x145')]=function(_0x5b4d28,_0x598fb5){return db[_0x6f84('0x3c')][_0x6f84('0x5b')]({'where':{'id':_0x5b4d28['params']['id']}})[_0x6f84('0x15')](handleEntityNotFound(_0x598fb5,null))['then'](function(_0x5d1af4){if(_0x5d1af4){return _0x5d1af4[_0x6f84('0x145')](_0x5b4d28[_0x6f84('0x42')][_0x6f84('0x61')]);}})[_0x6f84('0x15')](respondWithStatusCode(_0x598fb5,null))[_0x6f84('0x1e')](handleError(_0x598fb5,null));};exports[_0x6f84('0x146')]=function(_0x10282b,_0x139830){var _0x2ac8b8={};var _0x122d65={};var _0x3df4f4;var _0xf4f65e;return db[_0x6f84('0x3c')][_0x6f84('0xd0')]({'where':{'id':_0x10282b['params']['id']}})[_0x6f84('0x15')](handleEntityNotFound(_0x139830,null))[_0x6f84('0x15')](function(_0x53bd35){if(_0x53bd35){_0x3df4f4=_0x53bd35;_0x122d65[_0x6f84('0x52')]=_[_0x6f84('0x53')](db['SmsAccount'][_0x6f84('0x54')]);_0x122d65[_0x6f84('0x42')]=_['keys'](_0x10282b[_0x6f84('0x42')]);_0x122d65[_0x6f84('0x56')]=_[_0x6f84('0x57')](_0x122d65[_0x6f84('0x52')],_0x122d65[_0x6f84('0x42')]);_0x2ac8b8['attributes']=_[_0x6f84('0x57')](_0x122d65['model'],qs['fields'](_0x10282b['query'][_0x6f84('0x58')]));_0x2ac8b8[_0x6f84('0x45')]=_0x2ac8b8[_0x6f84('0x45')][_0x6f84('0x4b')]?_0x2ac8b8[_0x6f84('0x45')]:_0x122d65[_0x6f84('0x52')];_0x2ac8b8[_0x6f84('0xc6')]=qs[_0x6f84('0xc7')](_0x10282b[_0x6f84('0x42')]['sort']);_0x2ac8b8[_0x6f84('0x41')]=qs[_0x6f84('0x56')](_[_0x6f84('0xc8')](_0x10282b['query'],_0x122d65[_0x6f84('0x56')]));if(_0x10282b['query'][_0x6f84('0x31')]){_0x2ac8b8[_0x6f84('0x41')]=_[_0x6f84('0x59')](_0x2ac8b8[_0x6f84('0x41')],{'$or':_[_0x6f84('0x33')](_0x2ac8b8[_0x6f84('0x45')],function(_0x479062){var _0x101988={};_0x101988[_0x479062]={'$like':'%'+_0x10282b['query'][_0x6f84('0x31')]+'%'};return _0x101988;})});}_0x2ac8b8=_[_0x6f84('0x59')]({},_0x2ac8b8,_0x10282b[_0x6f84('0x5a')]);return _0x3df4f4[_0x6f84('0x146')](_0x2ac8b8);}})[_0x6f84('0x15')](function(_0x36ef33){if(_0x36ef33){_0xf4f65e=_0x36ef33[_0x6f84('0x4b')];if(!_0x10282b[_0x6f84('0x42')][_0x6f84('0xc9')](_0x6f84('0xce'))){_0x2ac8b8['limit']=qs['limit'](_0x10282b[_0x6f84('0x42')][_0x6f84('0x25')]);_0x2ac8b8[_0x6f84('0x23')]=qs[_0x6f84('0x23')](_0x10282b['query'][_0x6f84('0x23')]);}return _0x3df4f4[_0x6f84('0x146')](_0x2ac8b8);}})[_0x6f84('0x15')](function(_0x4816c9){if(_0x4816c9){return _0x4816c9?{'count':_0xf4f65e,'rows':_0x4816c9}:null;}})['then'](respondWithResult(_0x139830,null))[_0x6f84('0x1e')](handleError(_0x139830,null));};exports[_0x6f84('0x147')]=function(_0x83032e,_0xa964e0){return db[_0x6f84('0x3c')][_0x6f84('0x5b')]({'where':{'id':_0x83032e[_0x6f84('0x51')]['id']}})[_0x6f84('0x15')](handleEntityNotFound(_0xa964e0,null))[_0x6f84('0x15')](function(_0x1bfa56){if(_0x1bfa56){return _0x1bfa56[_0x6f84('0x147')](_0x83032e['body']['ids'],_[_0x6f84('0x10c')](_0x83032e[_0x6f84('0x5e')],[_0x6f84('0x61'),'id'])||{});}})[_0x6f84('0x15')](respondWithResult(_0xa964e0,null))[_0x6f84('0x1e')](handleError(_0xa964e0,null));};exports[_0x6f84('0x148')]=function(_0x1f6f38,_0x178215){return db[_0x6f84('0x3c')][_0x6f84('0x5b')]({'where':{'id':_0x1f6f38[_0x6f84('0x51')]['id']}})['then'](handleEntityNotFound(_0x178215,null))['then'](function(_0x3a755a){if(_0x3a755a){return _0x3a755a[_0x6f84('0x148')](_0x1f6f38[_0x6f84('0x42')][_0x6f84('0x61')]);}})[_0x6f84('0x15')](respondWithStatusCode(_0x178215,null))[_0x6f84('0x1e')](handleError(_0x178215,null));};exports[_0x6f84('0x149')]=function(_0x2d8304,_0x559c25){var _0x223bf4={};var _0x16893f={};var _0x26414c;var _0xef768c;return db[_0x6f84('0x3c')][_0x6f84('0xd0')]({'where':{'id':_0x2d8304[_0x6f84('0x51')]['id']}})[_0x6f84('0x15')](handleEntityNotFound(_0x559c25,null))[_0x6f84('0x15')](function(_0x27bbc1){if(_0x27bbc1){_0x26414c=_0x27bbc1;_0x16893f[_0x6f84('0x52')]=_['keys'](db[_0x6f84('0x14a')][_0x6f84('0x54')]);_0x16893f[_0x6f84('0x42')]=_[_0x6f84('0x53')](_0x2d8304['query']);_0x16893f[_0x6f84('0x56')]=_['intersection'](_0x16893f[_0x6f84('0x52')],_0x16893f[_0x6f84('0x42')]);_0x223bf4[_0x6f84('0x45')]=_[_0x6f84('0x57')](_0x16893f[_0x6f84('0x52')],qs['fields'](_0x2d8304[_0x6f84('0x42')]['fields']));_0x223bf4['attributes']=_0x223bf4[_0x6f84('0x45')][_0x6f84('0x4b')]?_0x223bf4[_0x6f84('0x45')]:_0x16893f['model'];_0x223bf4[_0x6f84('0xc6')]=qs[_0x6f84('0xc7')](_0x2d8304[_0x6f84('0x42')][_0x6f84('0xc7')]);_0x223bf4[_0x6f84('0x41')]=qs[_0x6f84('0x56')](_[_0x6f84('0xc8')](_0x2d8304[_0x6f84('0x42')],_0x16893f[_0x6f84('0x56')]));if(_0x2d8304[_0x6f84('0x42')][_0x6f84('0x31')]){_0x223bf4[_0x6f84('0x41')]=_[_0x6f84('0x59')](_0x223bf4[_0x6f84('0x41')],{'$or':_[_0x6f84('0x33')](_0x223bf4[_0x6f84('0x45')],function(_0x224966){var _0x6dcd80={};_0x6dcd80[_0x224966]={'$like':'%'+_0x2d8304['query'][_0x6f84('0x31')]+'%'};return _0x6dcd80;})});}_0x223bf4=_[_0x6f84('0x59')]({},_0x223bf4,_0x2d8304[_0x6f84('0x5a')]);return _0x26414c[_0x6f84('0x149')](_0x223bf4);}})['then'](function(_0x1518b9){if(_0x1518b9){_0xef768c=_0x1518b9[_0x6f84('0x4b')];if(!_0x2d8304[_0x6f84('0x42')][_0x6f84('0xc9')](_0x6f84('0xce'))){_0x223bf4[_0x6f84('0x25')]=qs[_0x6f84('0x25')](_0x2d8304[_0x6f84('0x42')][_0x6f84('0x25')]);_0x223bf4[_0x6f84('0x23')]=qs[_0x6f84('0x23')](_0x2d8304[_0x6f84('0x42')][_0x6f84('0x23')]);}return _0x26414c['getChatWebsites'](_0x223bf4);}})[_0x6f84('0x15')](function(_0x433597){if(_0x433597){return _0x433597?{'count':_0xef768c,'rows':_0x433597}:null;}})['then'](respondWithResult(_0x559c25,null))[_0x6f84('0x1e')](handleError(_0x559c25,null));};exports[_0x6f84('0x14b')]=function(_0x464f16,_0x4efa29){return db[_0x6f84('0x3c')][_0x6f84('0x5b')]({'where':{'id':_0x464f16[_0x6f84('0x51')]['id']}})['then'](handleEntityNotFound(_0x4efa29,null))['then'](function(_0x37a9d2){if(_0x37a9d2){return _0x37a9d2[_0x6f84('0x14b')](_0x464f16[_0x6f84('0x5e')]['ids'],_['omit'](_0x464f16[_0x6f84('0x5e')],[_0x6f84('0x61'),'id'])||{});}})[_0x6f84('0x15')](respondWithResult(_0x4efa29,null))[_0x6f84('0x1e')](handleError(_0x4efa29,null));};exports[_0x6f84('0x14c')]=function(_0x276ac2,_0x309b8b){return db['User']['find']({'where':{'id':_0x276ac2[_0x6f84('0x51')]['id']}})[_0x6f84('0x15')](handleEntityNotFound(_0x309b8b,null))[_0x6f84('0x15')](function(_0x43d583){if(_0x43d583){return _0x43d583[_0x6f84('0x14c')](_0x276ac2[_0x6f84('0x42')][_0x6f84('0x61')]);}})[_0x6f84('0x15')](respondWithStatusCode(_0x309b8b,null))['catch'](handleError(_0x309b8b,null));};exports[_0x6f84('0x14d')]=function(_0x32468f,_0x40386b){var _0x2b8978={};var _0x1f40fd={};var _0x12a4f8;var _0x5d2c10;return db[_0x6f84('0x3c')][_0x6f84('0xd0')]({'where':{'id':_0x32468f[_0x6f84('0x51')]['id']}})[_0x6f84('0x15')](handleEntityNotFound(_0x40386b,null))[_0x6f84('0x15')](function(_0x18fcc1){if(_0x18fcc1){_0x12a4f8=_0x18fcc1;_0x1f40fd[_0x6f84('0x52')]=_[_0x6f84('0x53')](db[_0x6f84('0x14e')][_0x6f84('0x54')]);_0x1f40fd[_0x6f84('0x42')]=_['keys'](_0x32468f['query']);_0x1f40fd[_0x6f84('0x56')]=_[_0x6f84('0x57')](_0x1f40fd[_0x6f84('0x52')],_0x1f40fd[_0x6f84('0x42')]);_0x2b8978['attributes']=_[_0x6f84('0x57')](_0x1f40fd[_0x6f84('0x52')],qs[_0x6f84('0x58')](_0x32468f[_0x6f84('0x42')]['fields']));_0x2b8978['attributes']=_0x2b8978['attributes'][_0x6f84('0x4b')]?_0x2b8978['attributes']:_0x1f40fd[_0x6f84('0x52')];_0x2b8978['order']=qs[_0x6f84('0xc7')](_0x32468f['query']['sort']);_0x2b8978[_0x6f84('0x41')]=qs['filters'](_[_0x6f84('0xc8')](_0x32468f[_0x6f84('0x42')],_0x1f40fd[_0x6f84('0x56')]));if(_0x32468f['query'][_0x6f84('0x31')]){_0x2b8978[_0x6f84('0x41')]=_[_0x6f84('0x59')](_0x2b8978[_0x6f84('0x41')],{'$or':_[_0x6f84('0x33')](_0x2b8978[_0x6f84('0x45')],function(_0xf1dfab){var _0x3dbe60={};_0x3dbe60[_0xf1dfab]={'$like':'%'+_0x32468f[_0x6f84('0x42')]['filter']+'%'};return _0x3dbe60;})});}_0x2b8978=_['merge']({},_0x2b8978,_0x32468f[_0x6f84('0x5a')]);return _0x12a4f8[_0x6f84('0x14d')](_0x2b8978);}})[_0x6f84('0x15')](function(_0x4ce1aa){if(_0x4ce1aa){_0x5d2c10=_0x4ce1aa['length'];if(!_0x32468f[_0x6f84('0x42')]['hasOwnProperty'](_0x6f84('0xce'))){_0x2b8978[_0x6f84('0x25')]=qs[_0x6f84('0x25')](_0x32468f[_0x6f84('0x42')]['limit']);_0x2b8978[_0x6f84('0x23')]=qs['offset'](_0x32468f['query'][_0x6f84('0x23')]);}return _0x12a4f8[_0x6f84('0x14d')](_0x2b8978);}})['then'](function(_0x39fe5e){if(_0x39fe5e){return _0x39fe5e?{'count':_0x5d2c10,'rows':_0x39fe5e}:null;}})[_0x6f84('0x15')](respondWithResult(_0x40386b,null))['catch'](handleError(_0x40386b,null));};exports[_0x6f84('0x14f')]=function(_0x249ae3,_0x4edb7d){return db['User'][_0x6f84('0x5b')]({'where':{'id':_0x249ae3[_0x6f84('0x51')]['id']}})[_0x6f84('0x15')](handleEntityNotFound(_0x4edb7d,null))[_0x6f84('0x15')](function(_0x4b1914){if(_0x4b1914){return _0x4b1914[_0x6f84('0x14f')](_0x249ae3['body'][_0x6f84('0x61')],_['omit'](_0x249ae3[_0x6f84('0x5e')],[_0x6f84('0x61'),'id'])||{});}})['then'](respondWithResult(_0x4edb7d,null))[_0x6f84('0x1e')](handleError(_0x4edb7d,null));};exports[_0x6f84('0x150')]=function(_0x1943f8,_0x4a6d46){return db[_0x6f84('0x3c')][_0x6f84('0x5b')]({'where':{'id':_0x1943f8[_0x6f84('0x51')]['id']}})[_0x6f84('0x15')](handleEntityNotFound(_0x4a6d46,null))['then'](function(_0xada0b4){if(_0xada0b4){return _0xada0b4[_0x6f84('0x150')](_0x1943f8[_0x6f84('0x42')][_0x6f84('0x61')]);}})[_0x6f84('0x15')](respondWithStatusCode(_0x4a6d46,null))['catch'](handleError(_0x4a6d46,null));};exports['getSquareProjects']=function(_0x35a1f6,_0x177c0a){var _0x7b145d={};var _0x5a43d9={};var _0x3ff4ef;var _0xcda4b3;return db[_0x6f84('0x3c')][_0x6f84('0xd0')]({'where':{'id':_0x35a1f6[_0x6f84('0x51')]['id']}})['then'](handleEntityNotFound(_0x177c0a,null))[_0x6f84('0x15')](function(_0x51bcf0){if(_0x51bcf0){_0x3ff4ef=_0x51bcf0;_0x5a43d9[_0x6f84('0x52')]=_[_0x6f84('0x53')](db[_0x6f84('0x151')][_0x6f84('0x54')]);_0x5a43d9[_0x6f84('0x42')]=_['keys'](_0x35a1f6[_0x6f84('0x42')]);_0x5a43d9[_0x6f84('0x56')]=_[_0x6f84('0x57')](_0x5a43d9['model'],_0x5a43d9['query']);_0x7b145d[_0x6f84('0x45')]=_[_0x6f84('0x57')](_0x5a43d9[_0x6f84('0x52')],qs['fields'](_0x35a1f6[_0x6f84('0x42')]['fields']));_0x7b145d[_0x6f84('0x45')]=_0x7b145d[_0x6f84('0x45')]['length']?_0x7b145d['attributes']:_0x5a43d9[_0x6f84('0x52')];_0x7b145d['order']=qs[_0x6f84('0xc7')](_0x35a1f6[_0x6f84('0x42')]['sort']);_0x7b145d['where']=qs[_0x6f84('0x56')](_[_0x6f84('0xc8')](_0x35a1f6[_0x6f84('0x42')],_0x5a43d9[_0x6f84('0x56')]));if(_0x35a1f6[_0x6f84('0x42')]['filter']){_0x7b145d['where']=_[_0x6f84('0x59')](_0x7b145d[_0x6f84('0x41')],{'$or':_['map'](_0x7b145d[_0x6f84('0x45')],function(_0x13d2e5){var _0x13f588={};_0x13f588[_0x13d2e5]={'$like':'%'+_0x35a1f6[_0x6f84('0x42')][_0x6f84('0x31')]+'%'};return _0x13f588;})});}_0x7b145d=_[_0x6f84('0x59')]({},_0x7b145d,_0x35a1f6[_0x6f84('0x5a')]);return _0x3ff4ef[_0x6f84('0x152')](_0x7b145d);}})[_0x6f84('0x15')](function(_0x358ba8){if(_0x358ba8){_0xcda4b3=_0x358ba8[_0x6f84('0x4b')];if(!_0x35a1f6[_0x6f84('0x42')][_0x6f84('0xc9')](_0x6f84('0xce'))){_0x7b145d[_0x6f84('0x25')]=qs[_0x6f84('0x25')](_0x35a1f6[_0x6f84('0x42')][_0x6f84('0x25')]);_0x7b145d['offset']=qs[_0x6f84('0x23')](_0x35a1f6['query'][_0x6f84('0x23')]);}return _0x3ff4ef[_0x6f84('0x152')](_0x7b145d);}})['then'](function(_0xdd6187){if(_0xdd6187){return _0xdd6187?{'count':_0xcda4b3,'rows':_0xdd6187}:null;}})['then'](respondWithResult(_0x177c0a,null))[_0x6f84('0x1e')](handleError(_0x177c0a,null));};exports[_0x6f84('0x153')]=function(_0x348302,_0x17dece){return db[_0x6f84('0x3c')]['find']({'where':{'id':_0x348302[_0x6f84('0x51')]['id']}})[_0x6f84('0x15')](handleEntityNotFound(_0x17dece,null))['then'](function(_0x2780d2){if(_0x2780d2){return _0x2780d2[_0x6f84('0x153')](_0x348302[_0x6f84('0x5e')][_0x6f84('0x61')],_['omit'](_0x348302[_0x6f84('0x5e')],['ids','id'])||{});}})[_0x6f84('0x15')](respondWithResult(_0x17dece,null))['catch'](handleError(_0x17dece,null));};exports[_0x6f84('0x154')]=function(_0x2e9f7e,_0x58e53a){return db['User']['find']({'where':{'id':_0x2e9f7e[_0x6f84('0x51')]['id']}})['then'](handleEntityNotFound(_0x58e53a,null))[_0x6f84('0x15')](function(_0x4f2eee){if(_0x4f2eee){return _0x4f2eee[_0x6f84('0x154')](_0x2e9f7e[_0x6f84('0x42')][_0x6f84('0x61')]);}})[_0x6f84('0x15')](respondWithStatusCode(_0x58e53a,null))[_0x6f84('0x1e')](handleError(_0x58e53a,null));};exports[_0x6f84('0x155')]=function(_0x3c9b0b,_0x3d68fa){var _0x5d7418={},_0x416432={},_0x2da002={'count':0x0,'rows':[]};var _0x14879c=db[_0x6f84('0x156')][_0x6f84('0x54')];_0x416432[_0x6f84('0x52')]=_['keys'](_0x14879c);_0x416432[_0x6f84('0x42')]=_['keys'](_0x3c9b0b[_0x6f84('0x42')]);_0x416432[_0x6f84('0x56')]=_[_0x6f84('0x57')](_0x416432[_0x6f84('0x52')],_0x416432[_0x6f84('0x42')]);_0x416432[_0x6f84('0x56')]=_['concat'](_0x416432[_0x6f84('0x56')],[_0x6f84('0x157'),_0x6f84('0x158'),_0x6f84('0x159'),'$gte',_0x6f84('0x15a'),_0x6f84('0x15b'),_0x6f84('0x15c'),_0x6f84('0x15d'),_0x6f84('0x15e'),'$between',_0x6f84('0x15f'),_0x6f84('0x160'),_0x6f84('0x161'),_0x6f84('0x162'),_0x6f84('0x163'),_0x6f84('0x164'),'$notILike',_0x6f84('0x162'),'$overlap',_0x6f84('0x165'),'$contained','$any']);_0x5d7418['attributes']=_[_0x6f84('0x57')](_0x416432[_0x6f84('0x52')],qs[_0x6f84('0x58')](_0x3c9b0b['query'][_0x6f84('0x58')]));_0x5d7418['attributes']=_0x5d7418[_0x6f84('0x45')][_0x6f84('0x4b')]?_0x5d7418[_0x6f84('0x45')]:_0x416432[_0x6f84('0x52')];if(!_0x3c9b0b[_0x6f84('0x42')]['hasOwnProperty'](_0x6f84('0xce'))){_0x5d7418[_0x6f84('0x25')]=qs['limit'](_0x3c9b0b[_0x6f84('0x42')][_0x6f84('0x25')]);_0x5d7418[_0x6f84('0x23')]=qs[_0x6f84('0x23')](_0x3c9b0b[_0x6f84('0x42')][_0x6f84('0x23')]);}_0x5d7418[_0x6f84('0xc6')]=qs[_0x6f84('0xc7')](_0x3c9b0b[_0x6f84('0x42')]['sort']);_0x5d7418['where']=qs[_0x6f84('0x56')](_[_0x6f84('0xc8')](_0x3c9b0b[_0x6f84('0x42')],_0x416432[_0x6f84('0x56')]));if(_0x3c9b0b[_0x6f84('0x42')][_0x6f84('0x31')]){_0x5d7418[_0x6f84('0x41')]=_[_0x6f84('0x59')](_0x5d7418['where'],{'$or':_[_0x6f84('0x33')](_0x5d7418['attributes'],function(_0x67ec23){var _0x3b0833={};_0x3b0833[_0x67ec23]={'$like':'%'+_0x3c9b0b[_0x6f84('0x42')][_0x6f84('0x31')]+'%'};return _0x3b0833;})});}_0x5d7418[_0x6f84('0x41')]={'$and':[_0x5d7418['where'],{'$or':[{'UserId':_0x3c9b0b[_0x6f84('0x51')]['id']},{'OwnerId':_0x3c9b0b[_0x6f84('0x51')]['id']}]}]};_0x5d7418=_['merge']({},_0x5d7418,_0x3c9b0b[_0x6f84('0x5a')]);var _0x3b32a8={'where':_0x5d7418[_0x6f84('0x41')]};return db[_0x6f84('0x156')][_0x6f84('0x26')](_0x3b32a8)['then'](function(_0x4f74f7){_0x2da002[_0x6f84('0x26')]=_0x4f74f7;if(_0x3c9b0b[_0x6f84('0x42')][_0x6f84('0x43')]){_0x5d7418[_0x6f84('0x44')]=[{'attributes':['id',_0x6f84('0x166'),_0x6f84('0x167'),_0x6f84('0x168')],'model':db[_0x6f84('0xc5')],'as':'Contact'},{'attributes':['id',_0x6f84('0x36'),_0x6f84('0x169')],'model':db[_0x6f84('0xa3')],'as':_0x6f84('0xd1')}];}return db[_0x6f84('0x156')][_0x6f84('0x47')](_0x5d7418);})['then'](function(_0xc89bca){_0x2da002[_0x6f84('0x48')]=_0xc89bca;return _0x2da002;})[_0x6f84('0x15')](respondWithFilteredResult(_0x3d68fa,_0x5d7418))[_0x6f84('0x1e')](handleError(_0x3d68fa,null));};exports[_0x6f84('0x16a')]=function(_0x3b0169,_0x285bdc){if(!_['isNil'](_0x3b0169[_0x6f84('0x2d')]['id'])&&(_0x3b0169[_0x6f84('0x2d')][_0x6f84('0x2b')]==_0x6f84('0x7a')||_0x3b0169[_0x6f84('0x2d')]['role']==_0x6f84('0x2d'))){return db[_0x6f84('0x3c')]['findOne']({'where':{'id':_0x3b0169[_0x6f84('0x51')]['id']},'raw':!![]})[_0x6f84('0x15')](function(_0x4ade84){return authService[_0x6f84('0x16b')](_0x4ade84);})[_0x6f84('0x15')](function(_0x3c307c){if(_0x3c307c){return _0x285bdc[_0x6f84('0x20')](0xc8)[_0x6f84('0x22')]({'api_key':_0x3c307c[_0x6f84('0x16c')]});}else{return _0x285bdc['status'](0xcc)[_0x6f84('0x22')]({'message':_0x6f84('0x16d')});}})['catch'](handleError(_0x285bdc,0x193));}else{return _0x285bdc[_0x6f84('0x20')](0x191)[_0x6f84('0x22')]({'message':'You\x20don\x27t\x20have\x20sufficient\x20privileges\x20to\x20access\x20this\x20resource.'});}};exports['createApiKey']=function(_0x1f5504,_0x1d0d64){if(!_[_0x6f84('0x65')](_0x1f5504[_0x6f84('0x2d')]['id'])&&(_0x1f5504[_0x6f84('0x2d')]['role']==_0x6f84('0x7a')||_0x1f5504[_0x6f84('0x2d')][_0x6f84('0x2b')]==_0x6f84('0x2d'))){return db[_0x6f84('0x3c')][_0x6f84('0x5b')]({'where':{'id':_0x1f5504[_0x6f84('0x51')]['id']}})[_0x6f84('0x15')](function(_0x4d6dea){return authService[_0x6f84('0x16e')](_0x4d6dea);})[_0x6f84('0x15')](function(_0xec9831){return db[_0x6f84('0x3c')]['update']({'apiKeyIat':_0xec9831[_0x6f84('0x16f')],'apiKeyNonce':_0xec9831[_0x6f84('0x170')]},{'where':{'id':_0x1f5504[_0x6f84('0x51')]['id']}})[_0x6f84('0x15')](function(){return _0x1d0d64[_0x6f84('0x20')](0xc8)[_0x6f84('0x22')]({'api_key':_0xec9831[_0x6f84('0x16c')]});});})['catch'](handleError(_0x1d0d64,0x193));}else{return _0x1d0d64['status'](0x191)[_0x6f84('0x22')]({'message':_0x6f84('0x171')});}};exports[_0x6f84('0x172')]=function(_0x4a4267,_0x2b7406){if(!_['isNil'](_0x4a4267[_0x6f84('0x2d')]['id'])&&(_0x4a4267[_0x6f84('0x2d')][_0x6f84('0x2b')]==_0x6f84('0x7a')||_0x4a4267[_0x6f84('0x2d')][_0x6f84('0x2b')]=='user')){return db[_0x6f84('0x3c')][_0x6f84('0x5b')]({'where':{'id':_0x4a4267[_0x6f84('0x51')]['id']}})['then'](handleEntityNotFound(_0x2b7406,null))[_0x6f84('0x15')](function(_0x151f29){if(_0x151f29&&_0x151f29[_0x6f84('0x173')]&&_0x151f29[_0x6f84('0x174')])return _0x151f29;else throw{'message':_0x6f84('0x175')};})['then'](function(_0x17d1df){return db['User'][_0x6f84('0x29')]({'apiKeyNonce':null,'apiKeyIat':null},{'where':{'id':_0x4a4267[_0x6f84('0x51')]['id']}});})[_0x6f84('0x15')](respondWithStatusCode(_0x2b7406,0xc8))[_0x6f84('0x1e')](handleError(_0x2b7406,0x193));}else{return _0x2b7406[_0x6f84('0x20')](0x191)[_0x6f84('0x22')]({'message':'You\x20don\x27t\x20have\x20sufficient\x20privileges\x20to\x20access\x20this\x20resource.'});}};exports[_0x6f84('0x176')]=function(_0x2c9cd4,_0x1ae0e0){var _0x3c3e0f=_0x2c9cd4['user']['get']({'plain':!![]});if(!_0x3c3e0f){return _0x1ae0e0[_0x6f84('0x20')](0x191)['send'](_0x6f84('0x177'));}else{return _0x1ae0e0[_0x6f84('0x20')](0xc8)[_0x6f84('0x22')](_0x3c3e0f);}};exports[_0x6f84('0x178')]=function(_0x12de3a,_0x27ae83){var _0x54c166={'offset':0x0},_0x20009a={'count':0x0,'rows':[]};Promise[_0x6f84('0xf9')]()['then'](function(){if(!_0x12de3a[_0x6f84('0x42')][_0x6f84('0x31')]&&!_0x12de3a[_0x6f84('0x42')][_0x6f84('0x179')]&&!_0x12de3a[_0x6f84('0x42')][_0x6f84('0x17a')])return[];return Promise[_0x6f84('0xf9')]()[_0x6f84('0x15')](function(){var _0x1758da=[];if(!_['isEmpty'](_0x12de3a[_0x6f84('0x42')][_0x6f84('0x179')])){_0x1758da[_0x6f84('0x46')](db[_0x6f84('0x109')][_0x6f84('0x47')]({'attributes':['id','name'],'where':{'id':_0x12de3a[_0x6f84('0x42')][_0x6f84('0x179')]}}));}if(!_[_0x6f84('0x86')](_0x12de3a['query']['queues'])){_0x1758da[_0x6f84('0x46')](db[_0x6f84('0xa3')][_0x6f84('0x47')]({'attributes':['id','name'],'type':'inbound','where':{'id':_0x12de3a[_0x6f84('0x42')]['queues']}}));}return Promise[_0x6f84('0x50')](_0x1758da);})['then'](function(_0x16d710){var _0xecec8f=_['flatten'](_0x16d710)[_0x6f84('0x33')](function(_0x2af8e){return _0x2af8e['getAgents']({'attributes':['id',_0x6f84('0x36'),'internal',_0x6f84('0x120')],'raw':!![]});});return Promise['all'](_0xecec8f);})[_0x6f84('0x15')](function(_0x57bb65){var _0x51ec97=_[_0x6f84('0x119')](_0x57bb65);if(!_0x12de3a[_0x6f84('0x42')][_0x6f84('0x31')])return _0x51ec97;if(_['isEmpty'](_0x51ec97)){return db['User'][_0x6f84('0x47')]({'attributes':['id',_0x6f84('0x36'),'internal',_0x6f84('0x120')],'where':{'role':'agent','$or':[db[_0x6f84('0x68')][_0x6f84('0x41')](db[_0x6f84('0x68')]['fn'](_0x6f84('0x17b'),db['sequelize'][_0x6f84('0x17c')](_0x6f84('0x36'))),{'$like':'%'+_0x12de3a[_0x6f84('0x42')][_0x6f84('0x31')][_0x6f84('0x9c')]()+'%'}),{'internal':{'$like':'%'+_0x12de3a[_0x6f84('0x42')][_0x6f84('0x31')]+'%'}}]},'raw':!![]});}else{return _(_0x51ec97)['flatten']()[_0x6f84('0x31')](function(_0x31630b){return _0x31630b['name'][_0x6f84('0x9c')]()['includes'](_0x12de3a[_0x6f84('0x42')][_0x6f84('0x31')][_0x6f84('0x9c')]())||_0x31630b['internal'][_0x6f84('0x17d')]()[_0x6f84('0x35')](_0x12de3a[_0x6f84('0x42')][_0x6f84('0x31')]);})[_0x6f84('0x34')]();}})[_0x6f84('0x15')](function(_0x3ed3de){var _0x3cf2fb=_0x6f84('0x36');var _0x445154=_0x6f84('0x17e');if(_0x12de3a[_0x6f84('0x42')]['sort']){var _0x445154=_0x12de3a[_0x6f84('0x42')][_0x6f84('0xc7')][0x0]==='-'?'desc':_0x6f84('0x17e');var _0x3cf2fb=_0x445154===_0x6f84('0x17e')?_0x12de3a[_0x6f84('0x42')][_0x6f84('0xc7')]:_0x12de3a[_0x6f84('0x42')]['sort'][_0x6f84('0x17f')](0x1);}return _(_0x3ed3de)[_0x6f84('0x180')]('id')[_0x6f84('0x181')]([function(_0x632b75){return _0x3cf2fb==='name'?_0x632b75[_0x3cf2fb]['toLowerCase']():_0x632b75[_0x3cf2fb];}],[_0x445154])[_0x6f84('0x33')](function(_0x2f83d2){return _[_0x6f84('0xc8')](_0x2f83d2,['id','name',_0x6f84('0x66'),_0x6f84('0x120')]);})[_0x6f84('0x34')]();})[_0x6f84('0x15')](function(_0x3d939a){return client['request'](_0x6f84('0x2e'),_0x12de3a)[_0x6f84('0x15')](function(_0x58e173){if(_0x58e173[_0x6f84('0x19')])throw new Error(_0x6f84('0x182'));var _0x273efb=_0x58e173[_0x6f84('0x1d')];var _0x4b23b7=jayson['client']['http']({'port':0x232c});return _0x4b23b7[_0x6f84('0x14')]('Agents',_0x12de3a)[_0x6f84('0x15')](function(_0x330345){if(_0x330345[_0x6f84('0x19')])throw new Error('Unable\x20to\x20retrieve\x20RPC\x20agents\x20(Routing)');var _0x311eec=_0x330345['result'];return _[_0x6f84('0x59')]({},_0x311eec,_0x273efb);});})[_0x6f84('0x15')](function(_0x2fdcb8){return _[_0x6f84('0x33')](_0x3d939a,function(_0x5e25a5){var _0x5516ab=_[_0x6f84('0x5b')](_0x2fdcb8['rows'],['id',_0x5e25a5['id']]);if(!_0x5516ab||!_0x5e25a5[_0x6f84('0x120')]){_0x5e25a5['status']=_0x6f84('0x183');}else if(_0x5516ab['voicePause']){_0x5e25a5[_0x6f84('0x20')]=_0x6f84('0xfb');}else{_0x5e25a5['status']=_[_0x6f84('0x35')](['idle',_0x6f84('0x184'),_0x6f84('0x185'),_0x6f84('0x186'),null,undefined],_0x5516ab[_0x6f84('0x187')])?_0x6f84('0x120'):_0x6f84('0x188');}return _0x5e25a5;});});});})[_0x6f84('0x15')](function(_0x38c58b){if(!_0x12de3a[_0x6f84('0x42')][_0x6f84('0xc9')]('nolimit')){_0x54c166['limit']=qs['limit'](_0x12de3a[_0x6f84('0x42')][_0x6f84('0x25')]||0xa);_0x54c166['offset']=qs['offset'](_0x12de3a[_0x6f84('0x42')]['offset']);}_0x20009a[_0x6f84('0x26')]=_0x38c58b[_0x6f84('0x4b')];_0x20009a['rows']=_0x54c166[_0x6f84('0x25')]?_0x38c58b[_0x6f84('0x189')](_0x54c166[_0x6f84('0x23')],_0x54c166['offset']+_0x54c166[_0x6f84('0x25')]):_0x38c58b;return _0x20009a;})[_0x6f84('0x15')](respondWithFilteredResult(_0x27ae83,_0x54c166))[_0x6f84('0x1e')](handleError(_0x27ae83,null));};function get_open_tabs(_0xe7e446,_0x22d148){var _0x1c1f58=_0xe7e446[_0x6f84('0x18a')](0x0)[_0x6f84('0x18b')]()+_0xe7e446[_0x6f84('0x189')](0x1);var _0x1ef2b7={'type':db[_0x6f84('0x8a')][_0x6f84('0x6a')][_0x6f84('0x6b')],'raw':!![]};return new BPromise(function(_0x4ff6aa,_0xd6a5b2){var _0x5d6bbc=squel['select']()[_0x6f84('0x18c')](_0x6f84('0x18d')+_0x1c1f58+_0x6f84('0x18e'),'id')[_0x6f84('0x18c')](_0x6f84('0x18f'))[_0x6f84('0x6c')](_0x6f84('0x190')+_0xe7e446+_0x6f84('0x191'),'ui')[_0x6f84('0x41')](_0x6f84('0x192'),_0x22d148['id']);return db[_0x6f84('0x68')][_0x6f84('0x42')](_0x5d6bbc[_0x6f84('0x17d')](),_0x1ef2b7)[_0x6f84('0x15')](function(_0x2b362){_0x22d148[_0x1c1f58+'OpenTabs']=_0x2b362;_0x4ff6aa(_0x2b362);})[_0x6f84('0x1e')](function(_0x50ebc3){_0xd6a5b2(_0x50ebc3);});});};
\ No newline at end of file
+var _0x6df4=['VoicePrefixId','removeTeams','Queue:remove','getLists','getAgents','You\x20can\x27t\x20delete\x20yourself','addChatInteractions','user_has_chat_interactions:save','removeChatInteractions','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','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','getFaxAccounts','FaxAccount','addFaxAccounts','removeFaxAccounts','getMailAccounts','MailAccount','addMailAccounts','removeMailAccounts','getOpenchannelAccounts','addOpenchannelAccounts','removeOpenchannelAccounts','SmsAccount','getSmsAccounts','removeSmsAccounts','getChatWebsites','ChatWebsite','addChatWebsites','removeChatWebsites','getWhatsappAccounts','addWhatsappAccounts','getSquareProjects','SquareProject','addSquareProjects','removeSquareProjects','getScheduledCalls','CmHopper','$or','$gt','$gte','$lt','$lte','$ne','$eq','$not','$in','$notIn','$notLike','$iLike','$like','$overlap','$contains','$contained','$any','firstName','getApiKey','token','json','No\x20API\x20access\x20key\x20found!','generateApiKey','iat','nonce','You\x20don\x27t\x20have\x20sufficient\x20privileges\x20to\x20access\x20this\x20resource.','removeApiKey','apiKeyNonce','API\x20key\x20not\x20available','whoami','Unable\x20to\x20retrieve\x20the\x20current\x20user','getPresence','resolve','queues','teams','isEmpty','inbound','lower','col','asc','substring','uniqBy','orderBy','Unable\x20to\x20retrieve\x20RPC\x20agents\x20(AMI)','request','Unable\x20to\x20retrieve\x20RPC\x20agents\x20(Routing)','offline','idle','unknown','unavailable','ringing','voiceStatus','busy','slice','toUpperCase','select','ui.','InteractionId','field','ui.createdAt','user_has_','ui.UserId\x20=\x20?','toString','OpenTabs','moment','util','path','ioredis','api','../../config/environment','../../config/license/util','socket.io-emitter','redis','./user.socket','register','client','http','info','request\x20sent','stringify','error','code','message','User,\x20%s,\x20%s','result','status','end','offset','undefined','count','set','Content-Range','update','destroy','get','role','admin','user','agent','Telephones','filter','map','value','name','UserProfileResource','then','sendStatus','send','rawAttributes','fieldName','type','key','includes','password','getOptions','where','User','query','include','attributes','push','findAll','true','rows','length','dataValues','sms','fax','mail','openchannel','whatsapp','all','catch','show','differenceBy','keys','salt','intersection','model','fields','includeAll','options','openTabs','body','find','describe','addContacts','params','omit','Setting','findById','validatePasswordPattern','max','internal','min_internal','isNil','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)','sequelize','QueryTypes','SELECT','from','voicemail','mailbox','VoiceMail','fullname','email','permissions','102','103','113','110','104','105','107','109','100','111','115','create','Unauthorized','Unauthorized.\x20You\x20must\x20be\x20an\x20administrator\x20in\x20order\x20to\x20create\x20an\x20user','settingsEnabled','userProfileId','Agents','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','bulkCreate','some','Unauthorized.\x20You\x20must\x20be\x20an\x20administrator\x20in\x20order\x20to\x20create\x20an\x20administrator','each','telephone','UserProfileSection','compact','newPassword','Sequelize','Invalid\x20body\x20format.\x20Use\x20oldPassword\x20and\x20newPassword','oldPassword','ValidationError','Wrong\x20credentials','New\x20password\x20must\x20be\x20different\x20from\x20old\x20password','Invalid\x20body\x20format.\x20Use\x20newPassword','findOne','securePassword','enforcePasswordHistory','passwordHistoryLimit','previousPasswords','validatePasswordHistory','channel','interface','isValidChannel','Unknown\x20channel','add','toLowerCase','spread','capitalize','QueueId','ids','emit','Queue:save','voice','VoiceQueue','online','format','SIP/%s','voicePause','penalty','UserVoiceQueueRt','upsert','remove','Queues','isArray','addAvatar','userpic','file','filename','getAvatar','join','root','download','existsSync','server/files/images/','getOpenTabs','chat','ChatOpenTabs','CHAT','FaxOpenTabs','FAX','OpenchannelOpenTabs','OPENCHANNEL','createdAt','MailOpenTabs','MAIL','SmsOpenTabs','SMS','WhatsappOpenTabs','getContacts','CmContact','filters','order','sort','pick','merge','hasOwnProperty','CmList','Tag','Tags','color','tag','nolimit','limit','Queue','Unknown\x20role','getVoiceQueuesRt','getGroups','ChatGroup','getRecordings','UserId','VoiceRecording','getScreenRecordings','ScreenRecording','ChatInteraction','getChatInteractions','OpenchannelInteraction','getOpenchannelInteractions','getMailInteractions','getSmsInteractions','SmsInteraction','getFaxInteractions','getWhatsappInteractions','WhatsappInteraction','login','phone','mobile','loginInPause','intrf','user:%s','headers','connection','remoteAddress','socket','User\x20not\x20found\x20or\x20not\x20allowed\x20to\x20perform\x20login\x20method','UserVoiceQueue.penalty','MemberReport','forEach','YYYY-MM-DD\x20HH:mm:ss','LOGIN','device','PAUSE','LOGININPAUSE','concat','isMiddleware','logout','pause','QueuePause','updateAttributes','getChannels','DEFAULT\x20PAUSE','unpause','mailPause','chatPause','faxPause','openchannelPause','smsPause','whatsapppause','pauseType','lastPauseAt','manual','%s%s','Pause','getTeams','Team','addTeams','getVoiceQueues','setDataValue','Voice','getMailQueues','Mail','getSmsQueues','Sms','getWhatsappQueues','Whatsapp','getFaxQueues','Fax','Openchannel','flatten','transaction','addAgent','getDataValue','TeamVoicePrefix','UserVoicePrefix'];(function(_0x3729c9,_0x26625c){var _0xababd0=function(_0x184923){while(--_0x184923){_0x3729c9['push'](_0x3729c9['shift']());}};_0xababd0(++_0x26625c);}(_0x6df4,0x78));var _0x46df=function(_0x273dc5,_0x268a81){_0x273dc5=_0x273dc5-0x0;var _0x46dae7=_0x6df4[_0x273dc5];return _0x46dae7;};'use strict';var moment=require(_0x46df('0x0'));var BPromise=require('bluebird');var util=require(_0x46df('0x1'));var path=require(_0x46df('0x2'));var fs=require('fs');var _=require('lodash');var squel=require('squel');var jayson=require('jayson/promise');var Redis=require(_0x46df('0x3'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var logger=require('../../config/logger')(_0x46df('0x4'));var utils=require('../../config/utils');var config=require(_0x46df('0x5'));var licenseUtil=require(_0x46df('0x6'));var db=require('../../mysqldb')['db'];var socket=require(_0x46df('0x7'))(new Redis(config[_0x46df('0x8')]));require(_0x46df('0x9'))[_0x46df('0xa')](socket);config[_0x46df('0x8')]=_['defaults'](config[_0x46df('0x8')],{'host':'localhost','port':0x18eb});var client=jayson[_0x46df('0xb')][_0x46df('0xc')]({'port':0x232a});var values;function respondWithRpcPromise(_0x1d491e,_0x893441,_0x4895b6,_0x1c33a2){return new BPromise(function(_0x104ab3,_0x4447dc){var _0x13e651=_0x1c33a2||client;return _0x13e651['request'](_0x1d491e,_0x4895b6)['then'](function(_0x581c74){logger[_0x46df('0xd')]('User,\x20%s,\x20%s',_0x893441,'request\x20sent');logger['debug']('User,\x20%s,\x20%s,\x20%s',_0x893441,_0x46df('0xe'),JSON[_0x46df('0xf')](_0x581c74));if(_0x581c74[_0x46df('0x10')]){if(_0x581c74[_0x46df('0x10')][_0x46df('0x11')]===0x1f4){logger['error']('User,\x20%s,\x20%s',_0x893441,_0x581c74[_0x46df('0x10')]['message']);return _0x4447dc(_0x581c74[_0x46df('0x10')][_0x46df('0x12')]);}logger[_0x46df('0x10')](_0x46df('0x13'),_0x893441,_0x581c74['error'][_0x46df('0x12')]);return _0x104ab3(_0x581c74['error'][_0x46df('0x12')]);}else{logger[_0x46df('0xd')](_0x46df('0x13'),_0x893441,'request\x20sent');_0x104ab3(_0x581c74[_0x46df('0x14')][_0x46df('0x12')]);}})['catch'](function(_0x15956f){logger[_0x46df('0x10')](_0x46df('0x13'),_0x893441,_0x15956f);_0x4447dc(_0x15956f);});});}function respondWithStatusCode(_0x186d10,_0x83d2ca){_0x83d2ca=_0x83d2ca||0xcc;return function(_0x292a91){if(_0x292a91){return _0x186d10['sendStatus'](_0x83d2ca);}return _0x186d10[_0x46df('0x15')](_0x83d2ca)[_0x46df('0x16')]();};}function respondWithResult(_0x4b7d9d,_0x127726){_0x127726=_0x127726||0xc8;return function(_0x3f231f){if(_0x3f231f){return _0x4b7d9d['status'](_0x127726)['json'](_0x3f231f);}};}function respondWithFilteredResult(_0x35e865,_0x2a5703){return function(_0x9c27d7){if(_0x9c27d7){var _0x75b521=typeof _0x2a5703[_0x46df('0x17')]===_0x46df('0x18')&&typeof _0x2a5703['limit']===_0x46df('0x18');var _0x18abb5=_0x9c27d7[_0x46df('0x19')];var _0x3e9240=_0x75b521?0x0:_0x2a5703['offset'];var _0x51320f=_0x75b521?_0x9c27d7[_0x46df('0x19')]:_0x2a5703[_0x46df('0x17')]+_0x2a5703['limit'];var _0x502656;if(_0x51320f>=_0x18abb5){_0x51320f=_0x18abb5;_0x502656=0xc8;}else{_0x502656=0xce;}_0x35e865['status'](_0x502656);return _0x35e865[_0x46df('0x1a')](_0x46df('0x1b'),_0x3e9240+'-'+_0x51320f+'/'+_0x18abb5)['json'](_0x9c27d7);}return null;};}function saveUpdates(_0x2da249){return function(_0x5185cf){if(_0x5185cf){return _0x5185cf[_0x46df('0x1c')](_0x2da249)['then'](function(_0x10b63b){return _0x10b63b;});}return null;};}function removeEntity(_0x591ba6){return function(_0x5410ee){if(_0x5410ee){return _0x5410ee[_0x46df('0x1d')]()['then'](function(){var _0x55fa3f=_0x5410ee[_0x46df('0x1e')]({'plain':!![]});if(_0x55fa3f[_0x46df('0x1f')]===_0x46df('0x20'))return;var _0x2b3156=[{'name':'Users','value':_0x46df('0x21'),'ignore':!![]},{'name':'Agents','value':_0x46df('0x22'),'ignore':![]},{'name':_0x46df('0x23'),'value':'telephone','ignore':![]}];var _0x54ffff=_(_0x2b3156)[_0x46df('0x24')]('ignore')[_0x46df('0x25')](_0x46df('0x26'))[_0x46df('0x26')]();if(_['includes'](_0x54ffff,_0x55fa3f[_0x46df('0x1f')])){return;}var _0x2a9a34=_['find'](_0x2b3156,[_0x46df('0x26'),_0x55fa3f[_0x46df('0x1f')]])[_0x46df('0x27')];return db[_0x46df('0x28')]['destroy']({'where':{'type':_0x2a9a34,'resourceId':_0x55fa3f['id']}})[_0x46df('0x29')](function(){return _0x5410ee;});})[_0x46df('0x29')](function(){_0x591ba6[_0x46df('0x15')](0xcc)['end']();});}};}function handleEntityNotFound(_0x2823b3){return function(_0x31296f){if(!_0x31296f){_0x2823b3[_0x46df('0x2a')](0x194);}return _0x31296f;};}function handleError(_0x2ac726,_0x3d08ae){_0x3d08ae=_0x3d08ae||0x1f4;return function(_0x582c2b){logger['error'](_0x582c2b['stack']);if(_0x582c2b['name']){delete _0x582c2b[_0x46df('0x27')];}_0x2ac726[_0x46df('0x15')](_0x3d08ae)[_0x46df('0x2b')](_0x582c2b);};}exports['index']=function(_0x2e354c,_0x197d20){var _0x4cee23={},_0x2f29a6={'count':0x0,'rows':[]};var _0x11d9b4=_(db['User'][_0x46df('0x2c')])[_0x46df('0x25')](function(_0x52c516){return{'name':_0x52c516[_0x46df('0x2d')],'type':_0x52c516[_0x46df('0x2e')][_0x46df('0x2f')]};})[_0x46df('0x24')](function(_0x21f336){return!_[_0x46df('0x30')]([_0x46df('0x31'),'salt'],_0x21f336[_0x46df('0x27')]);})['value']();_0x4cee23=qs[_0x46df('0x32')](_0x11d9b4,_0x2e354c);var _0x21adf5={'where':_0x4cee23[_0x46df('0x33')]};return db[_0x46df('0x34')]['count'](_0x21adf5)[_0x46df('0x29')](function(_0xb92f06){_0x2f29a6['count']=_0xb92f06;if(_0x2e354c[_0x46df('0x35')]['includeAll']){_0x4cee23[_0x46df('0x36')]=[{'all':!![]}];}if(!_['includes'](_0x4cee23[_0x46df('0x37')],'id')){_0x4cee23[_0x46df('0x37')][_0x46df('0x38')]('id');}return db[_0x46df('0x34')][_0x46df('0x39')](_0x4cee23);})[_0x46df('0x29')](function(_0x1271cd){_0x2f29a6['rows']=_0x1271cd;if(_0x2e354c['query']['openTabs']===_0x46df('0x3a')){var _0x56cfbc=[];for(var _0x33af18=0x0;_0x33af18<_0x2f29a6[_0x46df('0x3b')][_0x46df('0x3c')];_0x33af18++){_0x56cfbc['push'](get_open_tabs('chat',_0x2f29a6[_0x46df('0x3b')][_0x33af18][_0x46df('0x3d')]));_0x56cfbc[_0x46df('0x38')](get_open_tabs(_0x46df('0x3e'),_0x2f29a6[_0x46df('0x3b')][_0x33af18][_0x46df('0x3d')]));_0x56cfbc['push'](get_open_tabs(_0x46df('0x3f'),_0x2f29a6[_0x46df('0x3b')][_0x33af18][_0x46df('0x3d')]));_0x56cfbc['push'](get_open_tabs(_0x46df('0x40'),_0x2f29a6[_0x46df('0x3b')][_0x33af18][_0x46df('0x3d')]));_0x56cfbc[_0x46df('0x38')](get_open_tabs(_0x46df('0x41'),_0x2f29a6[_0x46df('0x3b')][_0x33af18]['dataValues']));_0x56cfbc[_0x46df('0x38')](get_open_tabs(_0x46df('0x42'),_0x2f29a6[_0x46df('0x3b')][_0x33af18]['dataValues']));}return BPromise[_0x46df('0x43')](_0x56cfbc)[_0x46df('0x29')](function(_0x74a9c3){return _0x2f29a6;});}else{return _0x2f29a6;}})['then'](respondWithFilteredResult(_0x197d20,_0x4cee23))[_0x46df('0x44')](handleError(_0x197d20,null));};exports[_0x46df('0x45')]=function(_0xba6179,_0x4136b8){var _0x2327fd={'raw':![],'where':{'id':_0xba6179['params']['id']}},_0x75315d={};_0x75315d['model']=_[_0x46df('0x46')](_[_0x46df('0x47')](db[_0x46df('0x34')]['rawAttributes']),[_0x46df('0x31'),_0x46df('0x48')]);_0x75315d[_0x46df('0x35')]=_[_0x46df('0x47')](_0xba6179[_0x46df('0x35')]);_0x75315d['filters']=_[_0x46df('0x49')](_0x75315d[_0x46df('0x4a')],_0x75315d['query']);_0x2327fd[_0x46df('0x37')]=_[_0x46df('0x49')](_0x75315d[_0x46df('0x4a')],qs[_0x46df('0x4b')](_0xba6179['query'][_0x46df('0x4b')]));_0x2327fd[_0x46df('0x37')]=_0x2327fd[_0x46df('0x37')][_0x46df('0x3c')]?_0x2327fd['attributes']:_0x75315d[_0x46df('0x4a')];if(_0xba6179['query'][_0x46df('0x4c')]){_0x2327fd['include']=[{'all':!![]}];}_0x2327fd=_['merge']({},_0x2327fd,_0xba6179[_0x46df('0x4d')]);if(!_[_0x46df('0x30')](_0x2327fd[_0x46df('0x37')],'id')){_0x2327fd[_0x46df('0x37')][_0x46df('0x38')]('id');}return db[_0x46df('0x34')]['find'](_0x2327fd)['then'](handleEntityNotFound(_0x4136b8,null))[_0x46df('0x29')](function(_0x2ac54d){var _0x5b1fd6=[];values=_0x2ac54d;if(_0xba6179[_0x46df('0x35')][_0x46df('0x4e')]===_0x46df('0x3a')){_0x5b1fd6[_0x46df('0x38')](get_open_tabs('chat',_0x2ac54d['dataValues']));_0x5b1fd6[_0x46df('0x38')](get_open_tabs(_0x46df('0x3e'),_0x2ac54d[_0x46df('0x3d')]));_0x5b1fd6[_0x46df('0x38')](get_open_tabs(_0x46df('0x41'),_0x2ac54d[_0x46df('0x3d')]));_0x5b1fd6[_0x46df('0x38')](get_open_tabs('whatsapp',_0x2ac54d[_0x46df('0x3d')]));_0x5b1fd6[_0x46df('0x38')](get_open_tabs('fax',_0x2ac54d[_0x46df('0x3d')]));_0x5b1fd6[_0x46df('0x38')](get_open_tabs(_0x46df('0x40'),_0x2ac54d['dataValues']));return BPromise[_0x46df('0x43')](_0x5b1fd6);}else{return values;}})[_0x46df('0x29')](function(_0x4d5dc6){return values;})[_0x46df('0x29')](respondWithResult(_0x4136b8,null))['catch'](handleError(_0x4136b8,null));};exports[_0x46df('0x1c')]=function(_0x431f6b,_0x4e7933){if(_0x431f6b[_0x46df('0x4f')]['id']){delete _0x431f6b[_0x46df('0x4f')]['id'];}delete _0x431f6b['body']['role'];return db[_0x46df('0x34')][_0x46df('0x50')]({'where':{'id':_0x431f6b['params']['id']}})[_0x46df('0x29')](handleEntityNotFound(_0x4e7933,null))[_0x46df('0x29')](saveUpdates(_0x431f6b['body'],null))[_0x46df('0x29')](respondWithResult(_0x4e7933,null))[_0x46df('0x44')](handleError(_0x4e7933,null));};exports[_0x46df('0x51')]=function(_0x5cf1fc,_0x36ecc0){return db[_0x46df('0x34')]['describe']()[_0x46df('0x29')](respondWithResult(_0x36ecc0,null))['catch'](handleError(_0x36ecc0,null));};exports[_0x46df('0x52')]=function(_0x3ae80d,_0x44675b){return db[_0x46df('0x34')][_0x46df('0x50')]({'where':{'id':_0x3ae80d[_0x46df('0x53')]['id']}})[_0x46df('0x29')](handleEntityNotFound(_0x44675b,null))[_0x46df('0x29')](function(_0x4c502d){if(_0x4c502d){return _0x4c502d[_0x46df('0x52')](_0x3ae80d[_0x46df('0x4f')]['ids'],_[_0x46df('0x54')](_0x3ae80d[_0x46df('0x4f')],['ids','id'])||{});}})[_0x46df('0x29')](respondWithResult(_0x44675b,null))[_0x46df('0x44')](handleError(_0x44675b,null));};function validateUser(_0x894fbf){return new BPromise(function(_0x4a5aba,_0x53dacd){if(_0x894fbf['internal'])return _0x4a5aba(_0x894fbf);return db[_0x46df('0x55')][_0x46df('0x56')](0x1)['then'](function(_0x352377){if(_0x352377['securePassword'])authService[_0x46df('0x57')](_0x894fbf['password']);db[_0x46df('0x34')][_0x46df('0x58')](_0x46df('0x59'))[_0x46df('0x29')](function(_0x4b7042){if(_['isNil'](_0x4b7042)){_0x894fbf[_0x46df('0x59')]=_0x352377[_0x46df('0x5a')]||0x1;return;}if(_[_0x46df('0x5b')](_0x352377['min_internal'])||_0x352377['min_internal']===_0x4b7042){_0x894fbf[_0x46df('0x59')]=_0x4b7042+0x1;return;}if(_0x352377[_0x46df('0x5a')]>_0x4b7042){_0x894fbf[_0x46df('0x59')]=_0x352377[_0x46df('0x5a')];return;}return db['sequelize']['query'](_0x46df('0x5c'),{'type':db[_0x46df('0x5d')][_0x46df('0x5e')][_0x46df('0x5f')]})[_0x46df('0x29')](function(_0x54ab53){if(_0x54ab53&&_0x54ab53['length']){for(var _0x30b7c1=0x0,_0x34bd2e=_0x54ab53[_0x46df('0x3c')];_0x30b7c1<_0x34bd2e&&_['isNil'](_0x894fbf[_0x46df('0x59')]);_0x30b7c1++){if(_0x352377[_0x46df('0x5a')]<=_0x54ab53[_0x30b7c1][_0x46df('0x60')]){_0x894fbf[_0x46df('0x59')]=_0x54ab53[_0x30b7c1][_0x46df('0x60')];}else if(_0x352377[_0x46df('0x5a')]>_0x54ab53[_0x30b7c1][_0x46df('0x60')]&&_0x352377[_0x46df('0x5a')]<=_0x54ab53[_0x30b7c1]['to']){_0x894fbf[_0x46df('0x59')]=_0x352377['min_internal'];}}}if(_['isNil'](_0x894fbf['internal'])){_0x894fbf[_0x46df('0x59')]=_0x4b7042+0x1;}return _0x4a5aba(_0x894fbf);});});})[_0x46df('0x44')](function(_0x198ebb){_0x53dacd(_0x198ebb);});});}function updateUser(_0x6e9ae9){return new BPromise(function(_0x3a5e3d,_0x1b8c61){try{if(_0x6e9ae9[_0x46df('0x61')]){_0x6e9ae9[_0x46df('0x62')]=_0x6e9ae9[_0x46df('0x59')];_0x6e9ae9[_0x46df('0x63')]={'mailbox':_0x6e9ae9['internal'],'password':_0x6e9ae9['password'],'fullname':_0x6e9ae9[_0x46df('0x64')],'email':_0x6e9ae9[_0x46df('0x65')]};}if(_0x6e9ae9['role']===_0x46df('0x22')){if(!_0x6e9ae9[_0x46df('0x66')])_0x6e9ae9['permissions']=['101',_0x46df('0x67'),_0x46df('0x68'),_0x46df('0x69'),_0x46df('0x6a'),_0x46df('0x6b'),_0x46df('0x6c'),'106',_0x46df('0x6d'),'108',_0x46df('0x6e'),_0x46df('0x6f'),_0x46df('0x70'),'114',_0x46df('0x71')];}_0x3a5e3d(_0x6e9ae9);}catch(_0x4d2d71){_0x1b8c61(_0x4d2d71);}});}exports[_0x46df('0x72')]=function(_0x280b95,_0x44d1bb){if(_0x280b95[_0x46df('0x21')][_0x46df('0x1f')]===_0x46df('0x22'))throw new Error(_0x46df('0x73'));if(_0x280b95[_0x46df('0x4f')][_0x46df('0x1f')]===_0x46df('0x21')&&_0x280b95['user'][_0x46df('0x1f')]!==_0x46df('0x20')){throw new Error(_0x46df('0x74'));}if(_0x280b95[_0x46df('0x4f')]['role']==='admin'&&_0x280b95[_0x46df('0x21')][_0x46df('0x1f')]!=='admin'){throw new Error('Unauthorized.\x20You\x20must\x20be\x20an\x20administrator\x20in\x20order\x20to\x20create\x20another\x20administrator');}return licenseUtil['checkUserLimits']([_0x280b95['body']])[_0x46df('0x29')](function(){return validateUser(_0x280b95[_0x46df('0x4f')]);})[_0x46df('0x29')](function(_0x15ae7f){return updateUser(_0x15ae7f)['then'](function(_0x289eb1){if(_0x289eb1[_0x46df('0x1f')]==='admin'){_0x289eb1[_0x46df('0x75')]=_0x280b95[_0x46df('0x21')]['settingsEnabled'];delete _0x289eb1[_0x46df('0x76')];}return _0x289eb1;});})[_0x46df('0x29')](function(_0x369e1d){return db[_0x46df('0x34')][_0x46df('0x72')](_0x369e1d,{'include':[{'model':db[_0x46df('0x63')],'as':_0x46df('0x63')}]});})[_0x46df('0x29')](function(_0x201841){if(_0x280b95[_0x46df('0x4f')]['role']===_0x46df('0x21'))return _0x201841;if(_0x280b95[_0x46df('0x21')][_0x46df('0x1f')]!==_0x46df('0x21'))return _0x201841;return db['UserProfileSection'][_0x46df('0x50')]({'where':{'name':_0x201841[_0x46df('0x1f')]===_0x46df('0x22')?_0x46df('0x77'):_0x46df('0x23'),'userProfileId':_0x280b95[_0x46df('0x21')]['userProfileId']},'raw':!![]})[_0x46df('0x29')](function(_0xc76278){if(!_0xc76278||_0xc76278[_0x46df('0x78')]!=0x0)return _0x201841;return db[_0x46df('0x28')][_0x46df('0x72')]({'name':_0x201841['name'],'resourceId':_0x201841['id'],'type':_0xc76278[_0x46df('0x27')],'sectionId':_0xc76278['id']},{})['then'](function(){return _0x201841;});})[_0x46df('0x44')](function(_0x390686){logger['error'](_0x46df('0x79'),_0x390686);throw _0x390686;});})['then'](respondWithResult(_0x44d1bb,0xc9))[_0x46df('0x44')](handleError(_0x44d1bb,null));};exports[_0x46df('0x7a')]=function(_0x2b15ed,_0x2257d6){var _0x2f9a66=_0x2b15ed[_0x46df('0x4f')];var _0x3f5417=[];if(_0x2b15ed['user']['role']==='agent')throw new Error(_0x46df('0x73'));if(_[_0x46df('0x7b')](_0x2f9a66,[_0x46df('0x1f'),_0x46df('0x21')])&&_0x2b15ed[_0x46df('0x21')][_0x46df('0x1f')]!==_0x46df('0x20')){throw new Error('Unauthorized.\x20You\x20must\x20be\x20an\x20administrator\x20in\x20order\x20to\x20create\x20an\x20user');}if(_[_0x46df('0x7b')](_0x2f9a66,[_0x46df('0x1f'),_0x46df('0x20')])&&_0x2b15ed[_0x46df('0x21')][_0x46df('0x1f')]!==_0x46df('0x20')){throw new Error(_0x46df('0x7c'));}return licenseUtil['checkUserLimits'](_0x2f9a66)['then'](function(){return validateUser(_0x2f9a66[0x0]);})[_0x46df('0x29')](function(){for(var _0x3fefe2=0x1;_0x3fefe2<_0x2f9a66[_0x46df('0x3c')];_0x3fefe2++){var _0x5da377=_0x2f9a66[_0x3fefe2-0x1][_0x46df('0x59')];if(!_0x2f9a66[_0x3fefe2]['internal'])_0x2f9a66[_0x3fefe2][_0x46df('0x59')]=_0x5da377+0x1;_0x3f5417[_0x46df('0x38')](validateUser(_0x2f9a66[_0x3fefe2]));}return BPromise[_0x46df('0x43')](_0x3f5417);})[_0x46df('0x29')](function(){_0x3f5417=[];for(var _0x3e042d=0x0;_0x3e042d<_0x2f9a66['length'];_0x3e042d++){_0x3f5417[_0x46df('0x38')](updateUser(_0x2f9a66[_0x3e042d]));}return BPromise[_0x46df('0x43')](_0x3f5417);})['then'](function(){return BPromise[_0x46df('0x7d')](_0x2f9a66,function(_0x29c812){return db[_0x46df('0x34')][_0x46df('0x72')](_0x29c812,{'include':[{'model':db[_0x46df('0x63')],'as':'VoiceMail'}]})['then'](function(_0x4bf8ce){_0x29c812['id']=_0x4bf8ce['id'];return _0x29c812;});});})[_0x46df('0x29')](function(_0x296815){if(_0x2b15ed[_0x46df('0x4f')][_0x46df('0x1f')]===_0x46df('0x21'))return _0x296815;if(_0x2b15ed['user'][_0x46df('0x1f')]!==_0x46df('0x21'))return _0x296815;var _0x243476=_['some'](_0x296815,function(_0x441816){return _0x441816[_0x46df('0x1f')]==='agent'||_0x441816[_0x46df('0x1f')]===_0x46df('0x7e');});if(!_0x243476)return _0x296815;return db[_0x46df('0x7f')][_0x46df('0x39')]({'where':{'name':{'$or':[_0x46df('0x77'),_0x46df('0x23')]},'userProfileId':_0x2b15ed[_0x46df('0x21')][_0x46df('0x76')]},'raw':!![]})[_0x46df('0x29')](function(_0x6e2375){if(_['isEmpty'](_0x6e2375)||!_['some'](_0x6e2375,['autoAssociation',0x0]))return _0x296815;_0x3f5417=[];var _0x44feed=_(_0x6e2375)['map'](function(_0x398f8b){if(_0x398f8b[_0x46df('0x78')]===0x1)return;return _0x398f8b[_0x46df('0x27')]===_0x46df('0x77')?_0x46df('0x22'):_0x46df('0x7e');})[_0x46df('0x80')]()[_0x46df('0x26')]();for(var _0x1d473c=0x0;_0x1d473c<_0x296815[_0x46df('0x3c')];_0x1d473c++){if(!_[_0x46df('0x30')](_0x44feed,_0x296815[_0x1d473c][_0x46df('0x1f')]))return;var _0x3433d8=_0x296815[_0x1d473c][_0x46df('0x1f')]===_0x46df('0x22')?_0x46df('0x77'):'Telephones';_0x3f5417[_0x46df('0x38')](db[_0x46df('0x28')][_0x46df('0x72')]({'name':_0x296815[_0x1d473c][_0x46df('0x27')],'resourceId':_0x296815[_0x1d473c]['id'],'type':_0x3433d8,'sectionId':_[_0x46df('0x50')](_0x6e2375,['name',_0x3433d8])['id']},{}));}return BPromise[_0x46df('0x43')](_0x3f5417);});})[_0x46df('0x29')](respondWithResult(_0x2257d6,0xc9))[_0x46df('0x44')](handleError(_0x2257d6,null));};exports['changePassword']=function(_0x27cf21,_0x35628c){if(_0x27cf21[_0x46df('0x4f')]['id']){delete _0x27cf21[_0x46df('0x4f')]['id'];}return db['User']['find']({'where':{'id':_0x27cf21[_0x46df('0x53')]['id']}})[_0x46df('0x29')](function(_0x390e7c){if(!_0x390e7c)return null;if(_0x390e7c['id']===_0x27cf21['user']['id']){if(!_0x27cf21['body']['oldPassword']||!_0x27cf21[_0x46df('0x4f')][_0x46df('0x81')]){throw new db[(_0x46df('0x82'))]['ValidationError'](_0x46df('0x83'));}if(!_0x390e7c['authenticate'](_0x27cf21[_0x46df('0x4f')][_0x46df('0x84')])){throw new db[(_0x46df('0x82'))][(_0x46df('0x85'))](_0x46df('0x86'));}if(_0x27cf21[_0x46df('0x4f')][_0x46df('0x84')]===_0x27cf21[_0x46df('0x4f')][_0x46df('0x81')]){throw new db[(_0x46df('0x82'))]['ValidationError'](_0x46df('0x87'));}}else if(_0x27cf21[_0x46df('0x21')][_0x46df('0x1f')]===_0x46df('0x20')){if(!_0x27cf21['body'][_0x46df('0x81')]){throw new db['Sequelize'][(_0x46df('0x85'))](_0x46df('0x88'));}}else if(_0x27cf21[_0x46df('0x21')][_0x46df('0x1f')]===_0x46df('0x21')){if(!_0x27cf21[_0x46df('0x4f')]['newPassword']){throw new db[(_0x46df('0x82'))][(_0x46df('0x85'))](_0x46df('0x88'));}if(_0x390e7c[_0x46df('0x1f')]!==_0x46df('0x22')){throw new db[(_0x46df('0x82'))][(_0x46df('0x85'))](_0x46df('0x73'));}}else{throw new db[(_0x46df('0x82'))][(_0x46df('0x85'))]('Unauthorized');}return _0x390e7c;})[_0x46df('0x29')](handleEntityNotFound(_0x35628c,null))[_0x46df('0x29')](function(_0x445a77){return db[_0x46df('0x55')][_0x46df('0x89')]({'attributes':['id',_0x46df('0x8a'),_0x46df('0x8b'),_0x46df('0x8c')]})[_0x46df('0x29')](function(_0x19b764){if(_0x19b764[_0x46df('0x8a')])authService['validatePasswordPattern'](_0x27cf21[_0x46df('0x4f')][_0x46df('0x81')]);if(!_0x19b764[_0x46df('0x8b')]||!_0x445a77[_0x46df('0x8d')])return _0x445a77;authService[_0x46df('0x8e')](_0x27cf21['body'][_0x46df('0x81')],_0x445a77[_0x46df('0x8d')],_0x19b764[_0x46df('0x8c')]);return _0x445a77;})[_0x46df('0x29')](saveUpdates({'password':_0x27cf21[_0x46df('0x4f')][_0x46df('0x81')],'passwordResetAt':_0x27cf21[_0x46df('0x21')]['id']==_0x27cf21['params']['id']?moment():null,'previousPasswords':authService['updatePasswordsHistory'](_0x27cf21[_0x46df('0x4f')]['newPassword'],_0x445a77[_0x46df('0x8d')])},null));})[_0x46df('0x29')](respondWithResult(_0x35628c,null))[_0x46df('0x44')](handleError(_0x35628c,null));};exports['addQueues']=function(_0x586ab0,_0x57e82f){var _0x1f6841=_0x586ab0['body'][_0x46df('0x8f')];return db[_0x46df('0x34')]['find']({'where':{'id':_0x586ab0[_0x46df('0x53')]['id']},'attributes':['id',_0x46df('0x27'),'role','online','loginInPause','voicePause',_0x46df('0x90')]})['then'](handleEntityNotFound(_0x57e82f,null))[_0x46df('0x29')](function(_0x46e401){if(_0x46e401){if(!utils[_0x46df('0x91')](_0x1f6841)){throw new db[(_0x46df('0x82'))]['ValidationError'](_0x46df('0x92'));}return _0x46e401[_0x46df('0x93')+_['capitalize'](_0x1f6841[_0x46df('0x94')]())+'Queues'](_0x586ab0['body']['ids'],{'penalty':_0x586ab0[_0x46df('0x4f')]['penalty']||0x0})[_0x46df('0x95')](function(_0x5b5a05){for(var _0x44c1b1=0x0;_0x44c1b1<_0x586ab0[_0x46df('0x4f')]['ids']['length'];_0x44c1b1+=0x1){var _0xf440bc={'UserId':Number(_0x586ab0[_0x46df('0x53')]['id'])};_0xf440bc[_[_0x46df('0x96')](_0x1f6841[_0x46df('0x94')]())+_0x46df('0x97')]=Number(_0x586ab0[_0x46df('0x4f')][_0x46df('0x98')][_0x44c1b1]);socket[_0x46df('0x99')](_0x46df('0x21')+_[_0x46df('0x96')](_0x1f6841['toLowerCase']())+_0x46df('0x9a'),_0xf440bc);}return _0x5b5a05;})[_0x46df('0x29')](function(){if(_0x1f6841===_0x46df('0x9b')){return db[_0x46df('0x9c')][_0x46df('0x39')]({'where':{'id':_0x586ab0[_0x46df('0x4f')]['ids']||[]},'raw':!![],'attributes':['id',_0x46df('0x27')]});}})[_0x46df('0x29')](function(_0x2fd0c3){var _0x5f5bda=_0x46e401[_0x46df('0x1e')]({'plain':!![]});var _0x23499b=[];if(_0x1f6841==='voice'&&_0x5f5bda[_0x46df('0x1f')]===_0x46df('0x22')&&_0x5f5bda[_0x46df('0x9d')]){for(var _0x4137f0=0x0;_0x4137f0<_0x2fd0c3[_0x46df('0x3c')];_0x4137f0+=0x1){_0x23499b[_0x46df('0x38')]({'membername':_0x5f5bda[_0x46df('0x27')],'UserId':_0x5f5bda['id'],'queue_name':_0x2fd0c3[_0x4137f0][_0x46df('0x27')],'VoiceQueueId':_0x2fd0c3[_0x4137f0]['id'],'interface':_[_0x46df('0x5b')](_0x5f5bda[_0x46df('0x90')])?util[_0x46df('0x9e')](_0x46df('0x9f'),_0x5f5bda[_0x46df('0x27')]):_0x5f5bda['interface'],'paused':_0x5f5bda[_0x46df('0xa0')]||![],'penalty':_0x586ab0[_0x46df('0x4f')][_0x46df('0xa1')]||0x0});}return BPromise[_0x46df('0x7d')](_0x23499b,function(_0x3ac55d){return db[_0x46df('0xa2')][_0x46df('0xa3')](_0x3ac55d);});}return _0x46e401;});}})[_0x46df('0x29')](respondWithStatusCode(_0x57e82f,null))['catch'](handleError(_0x57e82f,null));};exports['removeQueues']=function(_0x272971,_0x4e4573){var _0x97fb01;return db[_0x46df('0x34')][_0x46df('0x50')]({'where':{'id':_0x272971[_0x46df('0x53')]['id']},'attributes':['id',_0x46df('0x27'),'role']})[_0x46df('0x29')](handleEntityNotFound(_0x4e4573,null))[_0x46df('0x29')](function(_0x334d5a){if(_0x334d5a){_0x97fb01=_0x334d5a;if(!_0x272971[_0x46df('0x35')]['channel']||!utils['isValidChannel'](_0x272971[_0x46df('0x35')][_0x46df('0x8f')])){throw new db['Sequelize']['ValidationError'](_0x46df('0x92'));}return _0x334d5a[_0x46df('0xa4')+_[_0x46df('0x96')](_0x272971[_0x46df('0x35')][_0x46df('0x8f')][_0x46df('0x94')]())+_0x46df('0xa5')](_0x272971[_0x46df('0x35')][_0x46df('0x98')]);}})[_0x46df('0x29')](function(_0x114742){if(_[_0x46df('0xa6')](_0x272971[_0x46df('0x35')][_0x46df('0x98')])){for(var _0x2055aa=0x0;_0x2055aa<_0x272971[_0x46df('0x35')]['ids'][_0x46df('0x3c')];_0x2055aa+=0x1){var _0x36a42d={'UserId':Number(_0x272971[_0x46df('0x53')]['id'])};_0x36a42d[_[_0x46df('0x96')](_0x272971['query'][_0x46df('0x8f')]['toLowerCase']())+'QueueId']=Number(_0x272971[_0x46df('0x35')][_0x46df('0x98')][_0x2055aa]);socket[_0x46df('0x99')](_0x46df('0x21')+_[_0x46df('0x96')](_0x272971[_0x46df('0x35')][_0x46df('0x8f')][_0x46df('0x94')]())+'Queue:remove',_0x36a42d);}}else{var _0x36a42d={'UserId':Number(_0x272971['params']['id'])};_0x36a42d[_[_0x46df('0x96')](_0x272971['query']['channel'][_0x46df('0x94')]())+_0x46df('0x97')]=Number(_0x272971[_0x46df('0x35')]['ids']);socket[_0x46df('0x99')](_0x46df('0x21')+_[_0x46df('0x96')](_0x272971[_0x46df('0x35')]['channel'][_0x46df('0x94')]())+'Queue:remove',_0x36a42d);}return _0x114742;})['then'](function(){if(_0x272971['query'][_0x46df('0x8f')]===_0x46df('0x9b')){return db['UserVoiceQueueRt'][_0x46df('0x1d')]({'where':{'UserId':_0x272971[_0x46df('0x53')]['id'],'VoiceQueueId':_0x272971[_0x46df('0x35')][_0x46df('0x98')]},'individualHooks':!![]})['then'](function(){return _0x97fb01;});}return _0x97fb01;})['then'](respondWithStatusCode(_0x4e4573,null))[_0x46df('0x44')](handleError(_0x4e4573,null));};exports[_0x46df('0xa7')]=function(_0x11465a,_0x5f15b1){_0x11465a[_0x46df('0x4f')][_0x46df('0xa8')]=_0x11465a[_0x46df('0xa9')][_0x46df('0xaa')];return db[_0x46df('0x34')][_0x46df('0x50')]({'where':{'id':_0x11465a[_0x46df('0x53')]['id']}})['then'](handleEntityNotFound(_0x5f15b1,null))[_0x46df('0x29')](saveUpdates(_0x11465a[_0x46df('0x4f')],null))['then'](respondWithResult(_0x5f15b1,null))[_0x46df('0x44')](handleError(_0x5f15b1,null));};exports[_0x46df('0xab')]=function(_0x1e3b3b,_0x7b2242){var _0x3a1eed=path[_0x46df('0xac')](config[_0x46df('0xad')],'server/files/images/logos/default_profile.png');return db[_0x46df('0x34')][_0x46df('0x50')]({'where':{'id':_0x1e3b3b[_0x46df('0x53')]['id']},'attributes':['id',_0x46df('0xa8')],'raw':!![]})[_0x46df('0x29')](handleEntityNotFound(_0x7b2242,null))[_0x46df('0x29')](function(_0x1d561b){if(_0x1d561b){if(_[_0x46df('0x5b')](_0x1d561b[_0x46df('0xa8')])){return _0x7b2242[_0x46df('0xae')](_0x3a1eed);}else{if(!fs[_0x46df('0xaf')](path[_0x46df('0xac')](config[_0x46df('0xad')],_0x46df('0xb0'),_0x1d561b[_0x46df('0xa8')]))){return _0x7b2242[_0x46df('0xae')](_0x3a1eed);}return _0x7b2242[_0x46df('0xae')](path[_0x46df('0xac')](config[_0x46df('0xad')],_0x46df('0xb0'),_0x1d561b[_0x46df('0xa8')]));}}})['catch'](handleError(_0x7b2242,null));};exports[_0x46df('0xb1')]=function(_0x160a42,_0x4bb786){return db[_0x46df('0x34')][_0x46df('0x50')]({'where':{'id':_0x160a42['params']['id']},'attributes':['id']})[_0x46df('0x29')](handleEntityNotFound(_0x4bb786,null))['then'](function(_0x2fae55){var _0x1ece82=[];values=_0x2fae55[_0x46df('0x3d')];_0x1ece82[_0x46df('0x38')](get_open_tabs(_0x46df('0xb2'),_0x2fae55[_0x46df('0x3d')]));_0x1ece82[_0x46df('0x38')](get_open_tabs(_0x46df('0x3e'),_0x2fae55[_0x46df('0x3d')]));_0x1ece82[_0x46df('0x38')](get_open_tabs(_0x46df('0x41'),_0x2fae55['dataValues']));_0x1ece82['push'](get_open_tabs(_0x46df('0x42'),_0x2fae55['dataValues']));_0x1ece82[_0x46df('0x38')](get_open_tabs('fax',_0x2fae55[_0x46df('0x3d')]));_0x1ece82[_0x46df('0x38')](get_open_tabs('mail',_0x2fae55['dataValues']));return BPromise[_0x46df('0x43')](_0x1ece82);})[_0x46df('0x29')](function(_0x1d02a2){var _0x292e75=[];if(_0x1d02a2){for(var _0x5ee602=0x0;_0x5ee602<values[_0x46df('0xb3')][_0x46df('0x3c')];_0x5ee602++){var _0x3b7af4=values[_0x46df('0xb3')][_0x5ee602];_0x292e75['push']({'channel':_0x46df('0xb4'),'id':_0x3b7af4['id'],'createdAt':_0x3b7af4['createdAt']});}for(var _0x5ee602=0x0;_0x5ee602<values[_0x46df('0xb5')]['length'];_0x5ee602++){var _0x3b7af4=values[_0x46df('0xb5')][_0x5ee602];_0x292e75[_0x46df('0x38')]({'channel':_0x46df('0xb6'),'id':_0x3b7af4['id'],'createdAt':_0x3b7af4['createdAt']});}for(var _0x5ee602=0x0;_0x5ee602<values[_0x46df('0xb7')][_0x46df('0x3c')];_0x5ee602++){var _0x3b7af4=values[_0x46df('0xb7')][_0x5ee602];_0x292e75[_0x46df('0x38')]({'channel':_0x46df('0xb8'),'id':_0x3b7af4['id'],'createdAt':_0x3b7af4[_0x46df('0xb9')]});}for(var _0x5ee602=0x0;_0x5ee602<values[_0x46df('0xba')][_0x46df('0x3c')];_0x5ee602++){var _0x3b7af4=values[_0x46df('0xba')][_0x5ee602];_0x292e75['push']({'channel':_0x46df('0xbb'),'id':_0x3b7af4['id'],'createdAt':_0x3b7af4[_0x46df('0xb9')]});}for(var _0x5ee602=0x0;_0x5ee602<values[_0x46df('0xbc')][_0x46df('0x3c')];_0x5ee602++){var _0x3b7af4=values['SmsOpenTabs'][_0x5ee602];_0x292e75['push']({'channel':_0x46df('0xbd'),'id':_0x3b7af4['id'],'createdAt':_0x3b7af4['createdAt']});}for(var _0x5ee602=0x0;_0x5ee602<values[_0x46df('0xbe')][_0x46df('0x3c')];_0x5ee602++){var _0x3b7af4=values[_0x46df('0xbe')][_0x5ee602];_0x292e75[_0x46df('0x38')]({'channel':'WHATSAPP','id':_0x3b7af4['id'],'createdAt':_0x3b7af4[_0x46df('0xb9')]});}var _0x318530={'count':_0x292e75['length'],'rows':_0x292e75};return _0x318530;}else return null;})[_0x46df('0x29')](respondWithResult(_0x4bb786,null))[_0x46df('0x44')](handleError(_0x4bb786,null));};exports[_0x46df('0xbf')]=function(_0x7b1f38,_0x34afef){var _0x5e866f={};var _0x5a25d6={};var _0x43843a;var _0x125693;return db[_0x46df('0x34')]['findOne']({'where':{'id':_0x7b1f38['params']['id']}})[_0x46df('0x29')](handleEntityNotFound(_0x34afef,null))[_0x46df('0x29')](function(_0x2213d8){if(_0x2213d8){_0x43843a=_0x2213d8;_0x5a25d6[_0x46df('0x4a')]=_[_0x46df('0x47')](db[_0x46df('0xc0')][_0x46df('0x2c')]);_0x5a25d6[_0x46df('0x35')]=_[_0x46df('0x47')](_0x7b1f38[_0x46df('0x35')]);_0x5a25d6[_0x46df('0xc1')]=_[_0x46df('0x49')](_0x5a25d6[_0x46df('0x4a')],_0x5a25d6['query']);_0x5e866f[_0x46df('0x37')]=_['intersection'](_0x5a25d6['model'],qs[_0x46df('0x4b')](_0x7b1f38[_0x46df('0x35')][_0x46df('0x4b')]));_0x5e866f['attributes']=_0x5e866f['attributes'][_0x46df('0x3c')]?_0x5e866f[_0x46df('0x37')]:_0x5a25d6['model'];_0x5e866f[_0x46df('0xc2')]=qs['sort'](_0x7b1f38[_0x46df('0x35')][_0x46df('0xc3')]);_0x5e866f[_0x46df('0x33')]=qs[_0x46df('0xc1')](_[_0x46df('0xc4')](_0x7b1f38[_0x46df('0x35')],_0x5a25d6[_0x46df('0xc1')]));if(_0x7b1f38[_0x46df('0x35')][_0x46df('0x24')]){_0x5e866f[_0x46df('0x33')]=_[_0x46df('0xc5')](_0x5e866f[_0x46df('0x33')],{'$or':_[_0x46df('0x25')](_0x5e866f['attributes'],function(_0x41adc4){var _0x2cd4e8={};_0x2cd4e8[_0x41adc4]={'$like':'%'+_0x7b1f38[_0x46df('0x35')][_0x46df('0x24')]+'%'};return _0x2cd4e8;})});}_0x5e866f=_[_0x46df('0xc5')]({},_0x5e866f,_0x7b1f38[_0x46df('0x4d')]);return _0x43843a['getContacts'](_0x5e866f);}})[_0x46df('0x29')](function(_0xafaaca){if(_0xafaaca){_0x125693=_0xafaaca[_0x46df('0x3c')];if(_0x7b1f38[_0x46df('0x35')][_0x46df('0xc6')](_0x46df('0x4c'))){_0x5e866f[_0x46df('0x36')]=[{'model':db[_0x46df('0xc7')],'as':'List','required':![]},{'model':db[_0x46df('0xc8')],'as':_0x46df('0xc9'),'attributes':['id','name',_0x46df('0xca')],'where':_0x7b1f38[_0x46df('0x35')][_0x46df('0xcb')]?{'id':_0x7b1f38['query'][_0x46df('0xcb')]}:undefined,'required':_0x7b1f38['query'][_0x46df('0xcb')]?!![]:![]}];}if(!_0x7b1f38['query']['hasOwnProperty'](_0x46df('0xcc'))){_0x5e866f[_0x46df('0xcd')]=qs['limit'](_0x7b1f38['query']['limit']);_0x5e866f[_0x46df('0x17')]=qs[_0x46df('0x17')](_0x7b1f38[_0x46df('0x35')][_0x46df('0x17')]);}return _0x43843a[_0x46df('0xbf')](_0x5e866f);}})[_0x46df('0x29')](function(_0x4d5e6b){if(_0x4d5e6b){return _0x4d5e6b?{'count':_0x125693,'rows':_0x4d5e6b}:null;}})['then'](respondWithResult(_0x34afef,null))[_0x46df('0x44')](handleError(_0x34afef,null));};exports['getQueues']=function(_0x5c843c,_0x3cbc5e){var _0x344560;var _0x10d379;var _0x7b6dba={};var _0x1cab37;return db[_0x46df('0x34')][_0x46df('0x89')]({'where':{'id':_0x5c843c['params']['id']},'attributes':['id','name',_0x46df('0x1f')]})[_0x46df('0x29')](handleEntityNotFound(_0x3cbc5e,null))[_0x46df('0x29')](function(_0x29e7f7){if(!utils[_0x46df('0x91')](_0x5c843c[_0x46df('0x35')][_0x46df('0x8f')])){throw new db[(_0x46df('0x82'))][(_0x46df('0x85'))](_0x46df('0x92'));}_0x344560=_0x29e7f7;var _0x48786c={};_0x48786c[_0x46df('0x4a')]=_[_0x46df('0x47')](db[_['capitalize'](_0x5c843c['query'][_0x46df('0x8f')])+'Queue'][_0x46df('0x2c')]);_0x48786c['query']=_['keys'](_0x5c843c[_0x46df('0x35')]);_0x48786c[_0x46df('0xc1')]=_[_0x46df('0x49')](_0x48786c[_0x46df('0x4a')],_0x48786c[_0x46df('0x35')]);_0x7b6dba[_0x46df('0x37')]=_['intersection'](_0x48786c[_0x46df('0x4a')],qs[_0x46df('0x4b')](_0x5c843c[_0x46df('0x35')][_0x46df('0x4b')]));_0x7b6dba['attributes']=_0x7b6dba[_0x46df('0x37')][_0x46df('0x3c')]?_0x7b6dba[_0x46df('0x37')]:_0x48786c[_0x46df('0x4a')];_0x7b6dba[_0x46df('0xc2')]=qs[_0x46df('0xc3')](_0x5c843c[_0x46df('0x35')][_0x46df('0xc3')]);_0x7b6dba[_0x46df('0x33')]=qs[_0x46df('0xc1')](_[_0x46df('0xc4')](_0x5c843c[_0x46df('0x35')],_0x48786c[_0x46df('0xc1')]));if(_0x5c843c[_0x46df('0x35')][_0x46df('0x24')]){_0x7b6dba['where']=_['merge'](_0x7b6dba[_0x46df('0x33')],{'$or':_[_0x46df('0x25')](_0x7b6dba['attributes'],function(_0x32a7df){var _0xcd291b={};_0xcd291b[_0x32a7df]={'$like':'%'+_0x5c843c[_0x46df('0x35')]['filter']+'%'};return _0xcd291b;})});}_0x7b6dba=_[_0x46df('0xc5')]({},_0x7b6dba,_0x5c843c[_0x46df('0x4d')]);switch(_0x344560[_0x46df('0x1f')]){case _0x46df('0x20'):return db[_[_0x46df('0x96')](_0x5c843c[_0x46df('0x35')][_0x46df('0x8f')])+_0x46df('0xce')][_0x46df('0x39')](_0x7b6dba);case _0x46df('0x21'):case'agent':return _0x344560[_0x46df('0x1e')+_['capitalize'](_0x5c843c[_0x46df('0x35')]['channel'])+_0x46df('0xa5')](_0x7b6dba);default:throw new db[(_0x46df('0x82'))][(_0x46df('0x85'))](_0x46df('0xcf'));}})['then'](function(_0x55847e){_0x1cab37=_0x55847e[_0x46df('0x3c')];if(!_0x5c843c[_0x46df('0x35')]['hasOwnProperty'](_0x46df('0xcc'))){_0x7b6dba[_0x46df('0xcd')]=qs[_0x46df('0xcd')](_0x5c843c[_0x46df('0x35')][_0x46df('0xcd')]);_0x7b6dba[_0x46df('0x17')]=qs[_0x46df('0x17')](_0x5c843c['query'][_0x46df('0x17')]);}switch(_0x344560['role']){case _0x46df('0x20'):return db[_[_0x46df('0x96')](_0x5c843c[_0x46df('0x35')]['channel'])+'Queue']['findAll'](_0x7b6dba);case _0x46df('0x21'):case _0x46df('0x22'):return _0x344560[_0x46df('0x1e')+_[_0x46df('0x96')](_0x5c843c[_0x46df('0x35')]['channel'])+_0x46df('0xa5')](_0x7b6dba);}})['then'](function(_0x3e79c4){return{'count':_0x1cab37,'rows':_0x3e79c4};})['then'](respondWithResult(_0x3cbc5e,null))[_0x46df('0x44')](handleError(_0x3cbc5e,null));};exports['getVoiceQueuesRt']=function(_0xb6b662,_0x3a54b8){var _0x57c5fa={};var _0x280849={};var _0x40abcf;var _0x5777c1;return db[_0x46df('0x34')]['findOne']({'where':{'id':_0xb6b662[_0x46df('0x53')]['id']}})['then'](handleEntityNotFound(_0x3a54b8,null))[_0x46df('0x29')](function(_0x116093){if(_0x116093){_0x40abcf=_0x116093;_0x280849[_0x46df('0x4a')]=_['keys'](db['UserVoiceQueueRt'][_0x46df('0x2c')]);_0x280849[_0x46df('0x35')]=_[_0x46df('0x47')](_0xb6b662[_0x46df('0x35')]);_0x280849[_0x46df('0xc1')]=_[_0x46df('0x49')](_0x280849[_0x46df('0x4a')],_0x280849[_0x46df('0x35')]);_0x57c5fa[_0x46df('0x37')]=_[_0x46df('0x49')](_0x280849[_0x46df('0x4a')],qs[_0x46df('0x4b')](_0xb6b662['query'][_0x46df('0x4b')]));_0x57c5fa[_0x46df('0x37')]=_0x57c5fa['attributes'][_0x46df('0x3c')]?_0x57c5fa[_0x46df('0x37')]:_0x280849[_0x46df('0x4a')];_0x57c5fa[_0x46df('0xc2')]=qs[_0x46df('0xc3')](_0xb6b662['query']['sort']);_0x57c5fa[_0x46df('0x33')]=qs[_0x46df('0xc1')](_[_0x46df('0xc4')](_0xb6b662['query'],_0x280849['filters']));if(_0xb6b662[_0x46df('0x35')]['filter']){_0x57c5fa['where']=_[_0x46df('0xc5')](_0x57c5fa[_0x46df('0x33')],{'$or':_[_0x46df('0x25')](_0x57c5fa[_0x46df('0x37')],function(_0x3b8b20){var _0x2476e8={};_0x2476e8[_0x3b8b20]={'$like':'%'+_0xb6b662[_0x46df('0x35')][_0x46df('0x24')]+'%'};return _0x2476e8;})});}_0x57c5fa=_[_0x46df('0xc5')]({},_0x57c5fa,_0xb6b662[_0x46df('0x4d')]);return _0x40abcf[_0x46df('0xd0')](_0x57c5fa);}})[_0x46df('0x29')](function(_0x3c3f33){if(_0x3c3f33){_0x5777c1=_0x3c3f33[_0x46df('0x3c')];if(!_0xb6b662[_0x46df('0x35')][_0x46df('0xc6')](_0x46df('0xcc'))){_0x57c5fa[_0x46df('0xcd')]=qs[_0x46df('0xcd')](_0xb6b662[_0x46df('0x35')][_0x46df('0xcd')]);_0x57c5fa[_0x46df('0x17')]=qs['offset'](_0xb6b662[_0x46df('0x35')]['offset']);}return _0x40abcf['getVoiceQueuesRt'](_0x57c5fa);}})[_0x46df('0x29')](function(_0x27bfd3){if(_0x27bfd3){return _0x27bfd3?{'count':_0x5777c1,'rows':_0x27bfd3}:null;}})[_0x46df('0x29')](respondWithResult(_0x3a54b8,null))[_0x46df('0x44')](handleError(_0x3a54b8,null));};exports[_0x46df('0xd1')]=function(_0x2106ec,_0x56d5e0){var _0x110458={};var _0x2c6775={};var _0x2e1506;var _0x309c8c;return db['User'][_0x46df('0x89')]({'where':{'id':_0x2106ec[_0x46df('0x53')]['id']}})[_0x46df('0x29')](handleEntityNotFound(_0x56d5e0,null))[_0x46df('0x29')](function(_0x294fdb){if(_0x294fdb){_0x2e1506=_0x294fdb;_0x2c6775['model']=_[_0x46df('0x47')](db[_0x46df('0xd2')][_0x46df('0x2c')]);_0x2c6775[_0x46df('0x35')]=_[_0x46df('0x47')](_0x2106ec[_0x46df('0x35')]);_0x2c6775[_0x46df('0xc1')]=_[_0x46df('0x49')](_0x2c6775[_0x46df('0x4a')],_0x2c6775[_0x46df('0x35')]);_0x110458[_0x46df('0x37')]=_[_0x46df('0x49')](_0x2c6775[_0x46df('0x4a')],qs[_0x46df('0x4b')](_0x2106ec[_0x46df('0x35')]['fields']));_0x110458[_0x46df('0x37')]=_0x110458[_0x46df('0x37')][_0x46df('0x3c')]?_0x110458[_0x46df('0x37')]:_0x2c6775[_0x46df('0x4a')];_0x110458[_0x46df('0xc2')]=qs[_0x46df('0xc3')](_0x2106ec[_0x46df('0x35')][_0x46df('0xc3')]);_0x110458[_0x46df('0x33')]=qs['filters'](_[_0x46df('0xc4')](_0x2106ec['query'],_0x2c6775['filters']));if(_0x2106ec[_0x46df('0x35')][_0x46df('0x24')]){_0x110458[_0x46df('0x33')]=_[_0x46df('0xc5')](_0x110458[_0x46df('0x33')],{'$or':_[_0x46df('0x25')](_0x110458['attributes'],function(_0x2c29bf){var _0x439725={};_0x439725[_0x2c29bf]={'$like':'%'+_0x2106ec['query'][_0x46df('0x24')]+'%'};return _0x439725;})});}_0x110458=_['merge']({},_0x110458,_0x2106ec[_0x46df('0x4d')]);return _0x2e1506['getGroups'](_0x110458);}})[_0x46df('0x29')](function(_0x939e0c){if(_0x939e0c){_0x309c8c=_0x939e0c[_0x46df('0x3c')];if(!_0x2106ec[_0x46df('0x35')]['hasOwnProperty']('nolimit')){_0x110458[_0x46df('0xcd')]=qs[_0x46df('0xcd')](_0x2106ec['query']['limit']);_0x110458[_0x46df('0x17')]=qs[_0x46df('0x17')](_0x2106ec[_0x46df('0x35')][_0x46df('0x17')]);}return _0x2e1506[_0x46df('0xd1')](_0x110458);}})[_0x46df('0x29')](function(_0x332213){if(_0x332213){return _0x332213?{'count':_0x309c8c,'rows':_0x332213}:null;}})['then'](respondWithResult(_0x56d5e0,null))[_0x46df('0x44')](handleError(_0x56d5e0,null));};exports[_0x46df('0xd3')]=function(_0x56c53c,_0x45835c){var _0x267376={'raw':!![],'where':{}};var _0x2e6e2e={};var _0x1a50ab={'count':0x0,'rows':[]};return db[_0x46df('0x34')][_0x46df('0x89')]({'where':{'id':_0x56c53c[_0x46df('0x53')]['id']}})[_0x46df('0x29')](handleEntityNotFound(_0x45835c,null))['then'](function(_0x5cdabd){if(_0x5cdabd){_0x2e6e2e[_0x46df('0x4a')]=_[_0x46df('0x47')](db['VoiceRecording'][_0x46df('0x2c')]);_0x2e6e2e[_0x46df('0x35')]=_[_0x46df('0x47')](_0x56c53c[_0x46df('0x35')]);_0x2e6e2e[_0x46df('0xc1')]=_['intersection'](_0x2e6e2e[_0x46df('0x4a')],_0x2e6e2e[_0x46df('0x35')]);_0x267376['attributes']=_[_0x46df('0x49')](_0x2e6e2e['model'],qs[_0x46df('0x4b')](_0x56c53c['query'][_0x46df('0x4b')]));_0x267376[_0x46df('0x37')]=_0x267376[_0x46df('0x37')]['length']?_0x267376[_0x46df('0x37')]:_0x2e6e2e[_0x46df('0x4a')];if(!_0x56c53c[_0x46df('0x35')][_0x46df('0xc6')]('nolimit')){_0x267376[_0x46df('0xcd')]=qs[_0x46df('0xcd')](_0x56c53c[_0x46df('0x35')][_0x46df('0xcd')]);_0x267376[_0x46df('0x17')]=qs['offset'](_0x56c53c[_0x46df('0x35')]['offset']);}_0x267376[_0x46df('0xc2')]=qs[_0x46df('0xc3')](_0x56c53c[_0x46df('0x35')][_0x46df('0xc3')]);_0x267376[_0x46df('0x33')]=qs['filters'](_[_0x46df('0xc4')](_0x56c53c[_0x46df('0x35')],_0x2e6e2e[_0x46df('0xc1')]));_0x267376[_0x46df('0x33')][_0x46df('0xd4')]=_0x5cdabd['id'];if(_0x56c53c['query'][_0x46df('0x24')]){_0x267376[_0x46df('0x33')]=_[_0x46df('0xc5')](_0x267376[_0x46df('0x33')],{'$or':_[_0x46df('0x25')](_0x267376[_0x46df('0x37')],function(_0x2311a7){var _0x274514={};_0x274514[_0x2311a7]={'$like':'%'+_0x56c53c['query']['filter']+'%'};return _0x274514;})});}_0x267376=_[_0x46df('0xc5')]({},_0x267376,_0x56c53c[_0x46df('0x4d')]);return db['VoiceRecording'][_0x46df('0x19')]({'where':_0x267376[_0x46df('0x33')]})[_0x46df('0x29')](function(_0x3c6acd){_0x1a50ab[_0x46df('0x19')]=_0x3c6acd;if(_0x56c53c[_0x46df('0x35')][_0x46df('0x4c')]){_0x267376[_0x46df('0x36')]=[{'all':!![]}];}return db[_0x46df('0xd5')]['findAll'](_0x267376);})[_0x46df('0x29')](function(_0x273ab4){_0x1a50ab[_0x46df('0x3b')]=_0x273ab4;return _0x1a50ab;});}})[_0x46df('0x29')](respondWithFilteredResult(_0x45835c,_0x267376))[_0x46df('0x44')](handleError(_0x45835c,null));};exports[_0x46df('0xd6')]=function(_0xed975d,_0x4a58b4){var _0x1f8d60={'raw':!![],'where':{}};var _0x3a5ee1={};var _0x12afb2={'count':0x0,'rows':[]};return db[_0x46df('0x34')][_0x46df('0x89')]({'where':{'id':_0xed975d[_0x46df('0x53')]['id']}})[_0x46df('0x29')](handleEntityNotFound(_0x4a58b4,null))[_0x46df('0x29')](function(_0x432ff9){if(_0x432ff9){_0x3a5ee1['model']=_['keys'](db[_0x46df('0xd7')]['rawAttributes']);_0x3a5ee1[_0x46df('0x35')]=_[_0x46df('0x47')](_0xed975d[_0x46df('0x35')]);_0x3a5ee1[_0x46df('0xc1')]=_['intersection'](_0x3a5ee1[_0x46df('0x4a')],_0x3a5ee1['query']);_0x1f8d60['attributes']=_['intersection'](_0x3a5ee1['model'],qs[_0x46df('0x4b')](_0xed975d['query'][_0x46df('0x4b')]));_0x1f8d60['attributes']=_0x1f8d60[_0x46df('0x37')][_0x46df('0x3c')]?_0x1f8d60[_0x46df('0x37')]:_0x3a5ee1[_0x46df('0x4a')];if(!_0xed975d[_0x46df('0x35')][_0x46df('0xc6')](_0x46df('0xcc'))){_0x1f8d60[_0x46df('0xcd')]=qs[_0x46df('0xcd')](_0xed975d[_0x46df('0x35')][_0x46df('0xcd')]);_0x1f8d60[_0x46df('0x17')]=qs[_0x46df('0x17')](_0xed975d[_0x46df('0x35')][_0x46df('0x17')]);}_0x1f8d60[_0x46df('0xc2')]=qs[_0x46df('0xc3')](_0xed975d['query'][_0x46df('0xc3')]);_0x1f8d60[_0x46df('0x33')]=qs[_0x46df('0xc1')](_[_0x46df('0xc4')](_0xed975d['query'],_0x3a5ee1[_0x46df('0xc1')]));_0x1f8d60[_0x46df('0x33')][_0x46df('0xd4')]=_0x432ff9['id'];if(_0xed975d['query'][_0x46df('0x24')]){_0x1f8d60['where']=_[_0x46df('0xc5')](_0x1f8d60['where'],{'$or':_[_0x46df('0x25')](_0x1f8d60[_0x46df('0x37')],function(_0x131c93){var _0x304972={};_0x304972[_0x131c93]={'$like':'%'+_0xed975d[_0x46df('0x35')]['filter']+'%'};return _0x304972;})});}_0x1f8d60=_[_0x46df('0xc5')]({},_0x1f8d60,_0xed975d[_0x46df('0x4d')]);return db[_0x46df('0xd7')][_0x46df('0x19')]({'where':_0x1f8d60[_0x46df('0x33')]})[_0x46df('0x29')](function(_0x4694d1){_0x12afb2[_0x46df('0x19')]=_0x4694d1;if(_0xed975d['query'][_0x46df('0x4c')]){_0x1f8d60[_0x46df('0x36')]=[{'all':!![]}];}return db[_0x46df('0xd7')][_0x46df('0x39')](_0x1f8d60);})[_0x46df('0x29')](function(_0x12744a){_0x12afb2[_0x46df('0x3b')]=_0x12744a;return _0x12afb2;});}})['then'](respondWithFilteredResult(_0x4a58b4,_0x1f8d60))[_0x46df('0x44')](handleError(_0x4a58b4,null));};exports['getChatInteractions']=function(_0x10896e,_0x1983f7){var _0x5144e6={};var _0x2fb435={};var _0x4625af;var _0x5eb5b5;return db[_0x46df('0x34')][_0x46df('0x89')]({'where':{'id':_0x10896e['params']['id']}})['then'](handleEntityNotFound(_0x1983f7,null))[_0x46df('0x29')](function(_0x5c92d4){if(_0x5c92d4){_0x4625af=_0x5c92d4;_0x2fb435['model']=_['keys'](db[_0x46df('0xd8')][_0x46df('0x2c')]);_0x2fb435[_0x46df('0x35')]=_[_0x46df('0x47')](_0x10896e[_0x46df('0x35')]);_0x2fb435['filters']=_[_0x46df('0x49')](_0x2fb435[_0x46df('0x4a')],_0x2fb435[_0x46df('0x35')]);_0x5144e6[_0x46df('0x37')]=_[_0x46df('0x49')](_0x2fb435[_0x46df('0x4a')],qs[_0x46df('0x4b')](_0x10896e['query']['fields']));_0x5144e6[_0x46df('0x37')]=_0x5144e6['attributes'][_0x46df('0x3c')]?_0x5144e6[_0x46df('0x37')]:_0x2fb435[_0x46df('0x4a')];_0x5144e6[_0x46df('0xc2')]=qs[_0x46df('0xc3')](_0x10896e['query'][_0x46df('0xc3')]);_0x5144e6[_0x46df('0x33')]=qs[_0x46df('0xc1')](_[_0x46df('0xc4')](_0x10896e[_0x46df('0x35')],_0x2fb435['filters']));if(_0x10896e['query'][_0x46df('0x24')]){_0x5144e6[_0x46df('0x33')]=_['merge'](_0x5144e6[_0x46df('0x33')],{'$or':_['map'](_0x5144e6[_0x46df('0x37')],function(_0x56ffde){var _0x3ff361={};_0x3ff361[_0x56ffde]={'$like':'%'+_0x10896e[_0x46df('0x35')][_0x46df('0x24')]+'%'};return _0x3ff361;})});}_0x5144e6=_[_0x46df('0xc5')]({},_0x5144e6,_0x10896e[_0x46df('0x4d')]);return _0x4625af['getChatInteractions'](_0x5144e6);}})[_0x46df('0x29')](function(_0x5cfce6){if(_0x5cfce6){_0x5eb5b5=_0x5cfce6[_0x46df('0x3c')];if(!_0x10896e[_0x46df('0x35')][_0x46df('0xc6')](_0x46df('0xcc'))){_0x5144e6[_0x46df('0xcd')]=qs[_0x46df('0xcd')](_0x10896e[_0x46df('0x35')][_0x46df('0xcd')]);_0x5144e6[_0x46df('0x17')]=qs[_0x46df('0x17')](_0x10896e[_0x46df('0x35')]['offset']);}return _0x4625af[_0x46df('0xd9')](_0x5144e6);}})[_0x46df('0x29')](function(_0x469cd7){if(_0x469cd7){return _0x469cd7?{'count':_0x5eb5b5,'rows':_0x469cd7}:null;}})[_0x46df('0x29')](respondWithResult(_0x1983f7,null))[_0x46df('0x44')](handleError(_0x1983f7,null));};exports['getOpenchannelInteractions']=function(_0x1c256d,_0x52962f){var _0x594121={};var _0x46cd8a={};var _0x2a2d20;var _0x120955;return db[_0x46df('0x34')]['findOne']({'where':{'id':_0x1c256d['params']['id']}})[_0x46df('0x29')](handleEntityNotFound(_0x52962f,null))[_0x46df('0x29')](function(_0xd3c568){if(_0xd3c568){_0x2a2d20=_0xd3c568;_0x46cd8a[_0x46df('0x4a')]=_[_0x46df('0x47')](db[_0x46df('0xda')][_0x46df('0x2c')]);_0x46cd8a[_0x46df('0x35')]=_[_0x46df('0x47')](_0x1c256d[_0x46df('0x35')]);_0x46cd8a[_0x46df('0xc1')]=_[_0x46df('0x49')](_0x46cd8a[_0x46df('0x4a')],_0x46cd8a[_0x46df('0x35')]);_0x594121[_0x46df('0x37')]=_[_0x46df('0x49')](_0x46cd8a['model'],qs[_0x46df('0x4b')](_0x1c256d['query']['fields']));_0x594121['attributes']=_0x594121['attributes'][_0x46df('0x3c')]?_0x594121[_0x46df('0x37')]:_0x46cd8a[_0x46df('0x4a')];_0x594121[_0x46df('0xc2')]=qs[_0x46df('0xc3')](_0x1c256d[_0x46df('0x35')]['sort']);_0x594121['where']=qs['filters'](_[_0x46df('0xc4')](_0x1c256d[_0x46df('0x35')],_0x46cd8a[_0x46df('0xc1')]));if(_0x1c256d[_0x46df('0x35')][_0x46df('0x24')]){_0x594121['where']=_[_0x46df('0xc5')](_0x594121[_0x46df('0x33')],{'$or':_[_0x46df('0x25')](_0x594121['attributes'],function(_0x5583fd){var _0x493871={};_0x493871[_0x5583fd]={'$like':'%'+_0x1c256d['query'][_0x46df('0x24')]+'%'};return _0x493871;})});}_0x594121=_[_0x46df('0xc5')]({},_0x594121,_0x1c256d[_0x46df('0x4d')]);return _0x2a2d20[_0x46df('0xdb')](_0x594121);}})[_0x46df('0x29')](function(_0x443e7f){if(_0x443e7f){_0x120955=_0x443e7f[_0x46df('0x3c')];if(!_0x1c256d[_0x46df('0x35')][_0x46df('0xc6')]('nolimit')){_0x594121[_0x46df('0xcd')]=qs['limit'](_0x1c256d['query'][_0x46df('0xcd')]);_0x594121['offset']=qs[_0x46df('0x17')](_0x1c256d[_0x46df('0x35')][_0x46df('0x17')]);}return _0x2a2d20[_0x46df('0xdb')](_0x594121);}})[_0x46df('0x29')](function(_0x1a1ac2){if(_0x1a1ac2){return _0x1a1ac2?{'count':_0x120955,'rows':_0x1a1ac2}:null;}})['then'](respondWithResult(_0x52962f,null))[_0x46df('0x44')](handleError(_0x52962f,null));};exports[_0x46df('0xdc')]=function(_0xcc4c2,_0x22fd3b){var _0x4d3d75={'raw':!![],'where':{}};var _0x2b9c3f={};var _0x3b35ff={'count':0x0,'rows':[]};return db['User'][_0x46df('0x89')]({'where':{'id':_0xcc4c2[_0x46df('0x53')]['id']}})['then'](handleEntityNotFound(_0x22fd3b,null))[_0x46df('0x29')](function(_0x2bce6a){if(_0x2bce6a){_0x2b9c3f[_0x46df('0x4a')]=_[_0x46df('0x47')](db['MailInteraction'][_0x46df('0x2c')]);_0x2b9c3f[_0x46df('0x35')]=_[_0x46df('0x47')](_0xcc4c2[_0x46df('0x35')]);_0x2b9c3f[_0x46df('0xc1')]=_[_0x46df('0x49')](_0x2b9c3f['model'],_0x2b9c3f[_0x46df('0x35')]);_0x4d3d75[_0x46df('0x37')]=_['intersection'](_0x2b9c3f[_0x46df('0x4a')],qs[_0x46df('0x4b')](_0xcc4c2[_0x46df('0x35')]['fields']));_0x4d3d75[_0x46df('0x37')]=_0x4d3d75[_0x46df('0x37')][_0x46df('0x3c')]?_0x4d3d75['attributes']:_0x2b9c3f[_0x46df('0x4a')];if(!_0xcc4c2[_0x46df('0x35')][_0x46df('0xc6')](_0x46df('0xcc'))){_0x4d3d75['limit']=qs[_0x46df('0xcd')](_0xcc4c2['query'][_0x46df('0xcd')]);_0x4d3d75[_0x46df('0x17')]=qs[_0x46df('0x17')](_0xcc4c2[_0x46df('0x35')][_0x46df('0x17')]);}_0x4d3d75[_0x46df('0xc2')]=qs[_0x46df('0xc3')](_0xcc4c2[_0x46df('0x35')][_0x46df('0xc3')]);_0x4d3d75[_0x46df('0x33')]=qs[_0x46df('0xc1')](_[_0x46df('0xc4')](_0xcc4c2[_0x46df('0x35')],_0x2b9c3f[_0x46df('0xc1')]));_0x4d3d75[_0x46df('0x33')][_0x46df('0xd4')]=_0x2bce6a['id'];if(_0xcc4c2[_0x46df('0x35')]['filter']){_0x4d3d75[_0x46df('0x33')]=_[_0x46df('0xc5')](_0x4d3d75['where'],{'$or':_[_0x46df('0x25')](_0x4d3d75[_0x46df('0x37')],function(_0x75290a){var _0x3eac0d={};_0x3eac0d[_0x75290a]={'$like':'%'+_0xcc4c2[_0x46df('0x35')][_0x46df('0x24')]+'%'};return _0x3eac0d;})});}_0x4d3d75=_[_0x46df('0xc5')]({},_0x4d3d75,_0xcc4c2[_0x46df('0x4d')]);return db['MailInteraction']['count']({'where':_0x4d3d75[_0x46df('0x33')]})[_0x46df('0x29')](function(_0x15c399){_0x3b35ff[_0x46df('0x19')]=_0x15c399;if(_0xcc4c2[_0x46df('0x35')][_0x46df('0x4c')]){_0x4d3d75[_0x46df('0x36')]=[{'all':!![]}];}return db['MailInteraction'][_0x46df('0x39')](_0x4d3d75);})[_0x46df('0x29')](function(_0x5999c6){_0x3b35ff['rows']=_0x5999c6;return _0x3b35ff;});}})['then'](respondWithFilteredResult(_0x22fd3b,_0x4d3d75))['catch'](handleError(_0x22fd3b,null));};exports[_0x46df('0xdd')]=function(_0x2ce6a8,_0x53c3e7){var _0xb53db6={};var _0x356500={};var _0x507a8e;var _0xa0c8ce;return db[_0x46df('0x34')][_0x46df('0x89')]({'where':{'id':_0x2ce6a8[_0x46df('0x53')]['id']}})['then'](handleEntityNotFound(_0x53c3e7,null))[_0x46df('0x29')](function(_0x4958c4){if(_0x4958c4){_0x507a8e=_0x4958c4;_0x356500[_0x46df('0x4a')]=_[_0x46df('0x47')](db[_0x46df('0xde')][_0x46df('0x2c')]);_0x356500[_0x46df('0x35')]=_[_0x46df('0x47')](_0x2ce6a8[_0x46df('0x35')]);_0x356500[_0x46df('0xc1')]=_[_0x46df('0x49')](_0x356500[_0x46df('0x4a')],_0x356500[_0x46df('0x35')]);_0xb53db6['attributes']=_['intersection'](_0x356500[_0x46df('0x4a')],qs[_0x46df('0x4b')](_0x2ce6a8['query'][_0x46df('0x4b')]));_0xb53db6[_0x46df('0x37')]=_0xb53db6[_0x46df('0x37')][_0x46df('0x3c')]?_0xb53db6['attributes']:_0x356500[_0x46df('0x4a')];_0xb53db6[_0x46df('0xc2')]=qs[_0x46df('0xc3')](_0x2ce6a8['query']['sort']);_0xb53db6[_0x46df('0x33')]=qs[_0x46df('0xc1')](_['pick'](_0x2ce6a8['query'],_0x356500[_0x46df('0xc1')]));if(_0x2ce6a8[_0x46df('0x35')][_0x46df('0x24')]){_0xb53db6[_0x46df('0x33')]=_[_0x46df('0xc5')](_0xb53db6[_0x46df('0x33')],{'$or':_[_0x46df('0x25')](_0xb53db6[_0x46df('0x37')],function(_0x475f02){var _0x495342={};_0x495342[_0x475f02]={'$like':'%'+_0x2ce6a8[_0x46df('0x35')][_0x46df('0x24')]+'%'};return _0x495342;})});}_0xb53db6=_[_0x46df('0xc5')]({},_0xb53db6,_0x2ce6a8[_0x46df('0x4d')]);return _0x507a8e[_0x46df('0xdd')](_0xb53db6);}})['then'](function(_0x12cf30){if(_0x12cf30){_0xa0c8ce=_0x12cf30['length'];if(!_0x2ce6a8[_0x46df('0x35')][_0x46df('0xc6')](_0x46df('0xcc'))){_0xb53db6[_0x46df('0xcd')]=qs[_0x46df('0xcd')](_0x2ce6a8[_0x46df('0x35')][_0x46df('0xcd')]);_0xb53db6[_0x46df('0x17')]=qs['offset'](_0x2ce6a8[_0x46df('0x35')][_0x46df('0x17')]);}return _0x507a8e[_0x46df('0xdd')](_0xb53db6);}})[_0x46df('0x29')](function(_0x231f9c){if(_0x231f9c){return _0x231f9c?{'count':_0xa0c8ce,'rows':_0x231f9c}:null;}})[_0x46df('0x29')](respondWithResult(_0x53c3e7,null))[_0x46df('0x44')](handleError(_0x53c3e7,null));};exports[_0x46df('0xdf')]=function(_0x50d2c5,_0x411120){var _0x435dcc={};var _0x27dce6={};var _0x198b07;var _0x30daae;return db[_0x46df('0x34')][_0x46df('0x89')]({'where':{'id':_0x50d2c5['params']['id']}})[_0x46df('0x29')](handleEntityNotFound(_0x411120,null))['then'](function(_0xecbaaf){if(_0xecbaaf){_0x198b07=_0xecbaaf;_0x27dce6['model']=_[_0x46df('0x47')](db['FaxInteraction'][_0x46df('0x2c')]);_0x27dce6[_0x46df('0x35')]=_[_0x46df('0x47')](_0x50d2c5[_0x46df('0x35')]);_0x27dce6[_0x46df('0xc1')]=_[_0x46df('0x49')](_0x27dce6[_0x46df('0x4a')],_0x27dce6['query']);_0x435dcc[_0x46df('0x37')]=_['intersection'](_0x27dce6['model'],qs[_0x46df('0x4b')](_0x50d2c5[_0x46df('0x35')][_0x46df('0x4b')]));_0x435dcc['attributes']=_0x435dcc[_0x46df('0x37')][_0x46df('0x3c')]?_0x435dcc[_0x46df('0x37')]:_0x27dce6[_0x46df('0x4a')];_0x435dcc[_0x46df('0xc2')]=qs[_0x46df('0xc3')](_0x50d2c5['query'][_0x46df('0xc3')]);_0x435dcc[_0x46df('0x33')]=qs['filters'](_[_0x46df('0xc4')](_0x50d2c5['query'],_0x27dce6[_0x46df('0xc1')]));if(_0x50d2c5[_0x46df('0x35')]['filter']){_0x435dcc['where']=_[_0x46df('0xc5')](_0x435dcc[_0x46df('0x33')],{'$or':_[_0x46df('0x25')](_0x435dcc[_0x46df('0x37')],function(_0x2c0fcb){var _0xd3fd45={};_0xd3fd45[_0x2c0fcb]={'$like':'%'+_0x50d2c5[_0x46df('0x35')][_0x46df('0x24')]+'%'};return _0xd3fd45;})});}_0x435dcc=_[_0x46df('0xc5')]({},_0x435dcc,_0x50d2c5['options']);return _0x198b07[_0x46df('0xdf')](_0x435dcc);}})['then'](function(_0x399718){if(_0x399718){_0x30daae=_0x399718[_0x46df('0x3c')];if(!_0x50d2c5[_0x46df('0x35')][_0x46df('0xc6')](_0x46df('0xcc'))){_0x435dcc[_0x46df('0xcd')]=qs[_0x46df('0xcd')](_0x50d2c5[_0x46df('0x35')]['limit']);_0x435dcc['offset']=qs['offset'](_0x50d2c5[_0x46df('0x35')][_0x46df('0x17')]);}return _0x198b07[_0x46df('0xdf')](_0x435dcc);}})[_0x46df('0x29')](function(_0x4c41f0){if(_0x4c41f0){return _0x4c41f0?{'count':_0x30daae,'rows':_0x4c41f0}:null;}})[_0x46df('0x29')](respondWithResult(_0x411120,null))[_0x46df('0x44')](handleError(_0x411120,null));};exports[_0x46df('0xe0')]=function(_0x45c0c6,_0x3c248f){var _0xed8a05={};var _0x4735b5={};var _0x595007;var _0x616a7d;return db[_0x46df('0x34')][_0x46df('0x89')]({'where':{'id':_0x45c0c6[_0x46df('0x53')]['id']}})[_0x46df('0x29')](handleEntityNotFound(_0x3c248f,null))[_0x46df('0x29')](function(_0x44dd6b){if(_0x44dd6b){_0x595007=_0x44dd6b;_0x4735b5[_0x46df('0x4a')]=_[_0x46df('0x47')](db[_0x46df('0xe1')][_0x46df('0x2c')]);_0x4735b5['query']=_[_0x46df('0x47')](_0x45c0c6['query']);_0x4735b5[_0x46df('0xc1')]=_['intersection'](_0x4735b5['model'],_0x4735b5[_0x46df('0x35')]);_0xed8a05[_0x46df('0x37')]=_['intersection'](_0x4735b5[_0x46df('0x4a')],qs[_0x46df('0x4b')](_0x45c0c6[_0x46df('0x35')][_0x46df('0x4b')]));_0xed8a05[_0x46df('0x37')]=_0xed8a05['attributes'][_0x46df('0x3c')]?_0xed8a05['attributes']:_0x4735b5['model'];_0xed8a05[_0x46df('0xc2')]=qs[_0x46df('0xc3')](_0x45c0c6[_0x46df('0x35')][_0x46df('0xc3')]);_0xed8a05[_0x46df('0x33')]=qs[_0x46df('0xc1')](_[_0x46df('0xc4')](_0x45c0c6[_0x46df('0x35')],_0x4735b5[_0x46df('0xc1')]));if(_0x45c0c6[_0x46df('0x35')][_0x46df('0x24')]){_0xed8a05['where']=_[_0x46df('0xc5')](_0xed8a05[_0x46df('0x33')],{'$or':_['map'](_0xed8a05[_0x46df('0x37')],function(_0x5aaee7){var _0x11a0dc={};_0x11a0dc[_0x5aaee7]={'$like':'%'+_0x45c0c6[_0x46df('0x35')]['filter']+'%'};return _0x11a0dc;})});}_0xed8a05=_[_0x46df('0xc5')]({},_0xed8a05,_0x45c0c6['options']);return _0x595007[_0x46df('0xe0')](_0xed8a05);}})[_0x46df('0x29')](function(_0x4d96a4){if(_0x4d96a4){_0x616a7d=_0x4d96a4['length'];if(!_0x45c0c6[_0x46df('0x35')]['hasOwnProperty'](_0x46df('0xcc'))){_0xed8a05[_0x46df('0xcd')]=qs[_0x46df('0xcd')](_0x45c0c6['query'][_0x46df('0xcd')]);_0xed8a05[_0x46df('0x17')]=qs[_0x46df('0x17')](_0x45c0c6[_0x46df('0x35')][_0x46df('0x17')]);}return _0x595007[_0x46df('0xe0')](_0xed8a05);}})[_0x46df('0x29')](function(_0x53e5ee){if(_0x53e5ee){return _0x53e5ee?{'count':_0x616a7d,'rows':_0x53e5ee}:null;}})['then'](respondWithResult(_0x3c248f,null))['catch'](handleError(_0x3c248f,null));};exports[_0x46df('0xe2')]=function(_0x2b6510,_0x2ad0f9,_0x4c8fe4){var _0x16a229;var _0x346cd9;var _0x2928f0;var _0x102f8d=!_[_0x46df('0x5b')](_0x2b6510[_0x46df('0x53')]['id'])?_0x2b6510[_0x46df('0x53')]['id']:!_['isNil'](_0x2b6510[_0x46df('0x21')]['id'])?_0x2b6510['user']['id']:null;return db[_0x46df('0x34')][_0x46df('0x50')]({'where':{'id':_0x102f8d,'role':{'$or':[_0x46df('0x20'),_0x46df('0x21'),'agent']}},'attributes':['id',_0x46df('0x27'),_0x46df('0xe3'),_0x46df('0xe4'),_0x46df('0x1f'),_0x46df('0x59'),_0x46df('0xe5')]})[_0x46df('0x29')](function(_0x1e3bde){if(_0x1e3bde){if(_0x1e3bde[_0x46df('0x1f')]==='agent'){_0x16a229=_0x1e3bde;if(_0x2b6510[_0x46df('0x4f')][_0x46df('0x90')]){_0x2928f0=util['format']('LOCAL/%s@from-sip/n',_0x16a229[_0x2b6510[_0x46df('0x4f')]['interface']]);}else if(_0x2b6510[_0x46df('0x4f')][_0x46df('0xe6')]){_0x2928f0=util[_0x46df('0x9e')](_0x46df('0x9f'),_0x2b6510[_0x46df('0x4f')][_0x46df('0xe6')]);}else{_0x2928f0=util[_0x46df('0x9e')]('SIP/%s',_0x16a229['name']);}socket['to'](util['format'](_0x46df('0xe7'),_0x16a229['name']))['emit']('user:forcelogout',{'user':{'id':_0x16a229['id'],'name':_0x16a229[_0x46df('0x27')]},'ip':_0x2b6510[_0x46df('0xe8')]['x-forwarded-for']||_0x2b6510[_0x46df('0xe9')][_0x46df('0xea')]||_0x2b6510[_0x46df('0xeb')][_0x46df('0xea')]||_0x2b6510[_0x46df('0xe9')][_0x46df('0xeb')][_0x46df('0xea')]});return db[_0x46df('0xa2')]['destroy']({'where':{'membername':_0x16a229[_0x46df('0x27')]},'individualHooks':!![]});}}else{throw new db[(_0x46df('0x82'))]['ValidationError'](_0x46df('0xec'));}})[_0x46df('0x29')](function(){if(_0x16a229){return _0x16a229['getVoiceQueues']({'raw':!![]});}})['then'](function(_0x3e96ae){if(_0x16a229){var _0x41b376=[];if(_0x3e96ae){_0x346cd9=_0x3e96ae;if(_0x346cd9[_0x46df('0x3c')]){for(var _0x439596=0x0;_0x439596<_0x346cd9[_0x46df('0x3c')];_0x439596++){_0x41b376[_0x46df('0x38')]({'membername':_0x16a229['name'],'UserId':_0x16a229['id'],'queue_name':_0x346cd9[_0x439596][_0x46df('0x27')],'VoiceQueueId':_0x346cd9[_0x439596]['id'],'interface':_0x2928f0,'paused':_0x16a229[_0x46df('0xe5')]||![],'penalty':_0x346cd9[_0x439596][_0x46df('0xed')]||0x0});}return BPromise[_0x46df('0x7d')](_0x41b376,function(_0x195e01){return db[_0x46df('0xa2')][_0x46df('0xa3')](_0x195e01);});}}}})[_0x46df('0x29')](function(){if(_0x16a229){return db[_0x46df('0xee')][_0x46df('0x39')]({'where':{'membername':_0x16a229[_0x46df('0x27')],'exitAt':null}});}})[_0x46df('0x29')](function(_0x617105){if(_0x16a229){var _0x4472a2=[];_0x617105[_0x46df('0xef')](function(_0x5c692b){_0x4472a2[_0x46df('0x38')](_0x5c692b[_0x46df('0x1c')]({'exitAt':moment()[_0x46df('0x9e')](_0x46df('0xf0'))}));});return BPromise[_0x46df('0x43')](_0x4472a2);}})[_0x46df('0x29')](function(){if(_0x16a229){var _0x3ab763=[];var _0x5e0d28=[];var _0x461c46=utils['getChannels']();var _0x232faa={'membername':_0x16a229[_0x46df('0x27')],'interface':_0x2928f0,'enterAt':moment()['format'](_0x46df('0xf0')),'role':_0x16a229[_0x46df('0x1f')],'internal':_0x16a229[_0x46df('0x59')]};_0x461c46[_0x46df('0xef')](function(_0x1b36d5){_0x3ab763['push'](_[_0x46df('0xc5')]({'channel':_0x1b36d5,'type':_0x46df('0xf1'),'data1':_0x2b6510[_0x46df('0x4f')][_0x46df('0xf2')],'data2':_0x2928f0},_0x232faa));if(_0x16a229[_0x46df('0xe5')]){_0x5e0d28[_0x46df('0x38')](_[_0x46df('0xc5')]({'channel':_0x1b36d5,'type':_0x46df('0xf3'),'data1':_0x46df('0xf4')},_0x232faa));}});return db[_0x46df('0xee')]['bulkCreate'](_0x3ab763[_0x46df('0xf5')](_0x5e0d28),{'individualHooks':!![]});}})[_0x46df('0x29')](function(){if(_0x16a229){return _0x16a229[_0x46df('0x1c')]({'online':!![],'lastLoginAt':moment()['format'](_0x46df('0xf0')),'voicePause':_0x16a229[_0x46df('0xe5')]||![],'mailPause':_0x16a229[_0x46df('0xe5')]||![],'chatPause':_0x16a229['loginInPause']||![],'faxPause':_0x16a229['loginInPause']||![],'smsPause':_0x16a229[_0x46df('0xe5')]||![],'openchannelPause':_0x16a229['loginInPause']||![],'whatsappPause':_0x16a229[_0x46df('0xe5')]||![],'pauseType':_0x16a229[_0x46df('0xe5')]?_0x46df('0xf4'):null,'interface':_0x2928f0,'lastPauseAt':moment()[_0x46df('0x9e')](_0x46df('0xf0'))});}})[_0x46df('0x29')](function(_0x4350a7){if(_0x2b6510[_0x46df('0xf6')]){return _0x4c8fe4();}else{return BPromise['resolve'](_0x4350a7)['then'](respondWithResult(_0x2ad0f9,null));}})['catch'](handleError(_0x2ad0f9,null));};exports[_0x46df('0xf7')]=function(_0x372263,_0x44d157){var _0x3509ac;return db[_0x46df('0x34')][_0x46df('0x50')]({'where':{'id':_0x372263['params']['id'],'role':_0x46df('0x22')},'attributes':['id',_0x46df('0x27'),_0x46df('0x1f')]})[_0x46df('0x29')](handleEntityNotFound(_0x44d157,null))[_0x46df('0x29')](function(_0x82e722){if(_0x82e722){_0x3509ac=_0x82e722;return db['UserVoiceQueueRt'][_0x46df('0x1d')]({'where':{'membername':_0x3509ac[_0x46df('0x27')]},'individualHooks':!![]});}})[_0x46df('0x29')](function(){return db[_0x46df('0xee')]['findAll']({'where':{'membername':_0x3509ac[_0x46df('0x27')],'exitAt':null}});})[_0x46df('0x29')](function(_0xdebd34){var _0x3610ca=[];_0xdebd34[_0x46df('0xef')](function(_0x4cc018){_0x3610ca[_0x46df('0x38')](_0x4cc018['update']({'exitAt':moment()['format'](_0x46df('0xf0'))}));});return BPromise[_0x46df('0x43')](_0x3610ca);})[_0x46df('0x29')](function(){return _0x3509ac[_0x46df('0x1c')]({'online':![],'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![],'whatsappPause':![],'interface':null});})[_0x46df('0x29')](respondWithResult(_0x44d157,null))[_0x46df('0x44')](handleError(_0x44d157,null));};exports[_0x46df('0xf8')]=function(_0x53bd28,_0x5d73cc){var _0x375ac2;return db[_0x46df('0xa2')][_0x46df('0x1c')]({'paused':0x1},{'where':{'UserId':_0x53bd28['params']['id']},'individualHooks':!![]})[_0x46df('0x29')](function(){return db[_0x46df('0x34')][_0x46df('0x50')]({'where':{'id':_0x53bd28['params']['id'],'role':'agent'},'attributes':['id',_0x46df('0x27'),'role',_0x46df('0x59'),_0x46df('0x90')]});})[_0x46df('0x29')](handleEntityNotFound(_0x5d73cc,null))[_0x46df('0x29')](function(_0x16ec72){if(_0x16ec72){_0x375ac2=_0x16ec72;return respondWithRpcPromise(_0x46df('0xf9'),_0x46df('0xf8'),{'id':_0x375ac2['id'],'name':_0x375ac2[_0x46df('0x27')],'pause':!![]});}})[_0x46df('0x29')](function(){if(_0x375ac2){return db['MemberReport'][_0x46df('0x39')]({'where':{'membername':_0x375ac2[_0x46df('0x27')],'type':_0x46df('0xf3'),'exitAt':null}});}})[_0x46df('0x29')](function(_0x59f6c8){if(_0x59f6c8['length']){var _0x17ddfd=moment()[_0x46df('0x9e')](_0x46df('0xf0'));for(var _0x5349fc=0x0,_0x382bce=_0x59f6c8[_0x46df('0x3c')];_0x5349fc<_0x382bce;_0x5349fc++){_0x59f6c8[_0x5349fc][_0x46df('0xfa')]({'exitAt':_0x17ddfd});}}})['then'](function(){var _0x5a9fde=[];var _0x6e03d0=utils[_0x46df('0xfb')]();_0x6e03d0[_0x46df('0xef')](function(_0x25bf42){_0x5a9fde[_0x46df('0x38')]({'channel':_0x25bf42,'membername':_0x375ac2[_0x46df('0x27')],'interface':_[_0x46df('0x5b')](_0x375ac2[_0x46df('0x90')])?util[_0x46df('0x9e')](_0x46df('0x9f'),_0x375ac2[_0x46df('0x27')]):_0x375ac2[_0x46df('0x90')],'type':'PAUSE','enterAt':moment()[_0x46df('0x9e')](_0x46df('0xf0')),'data1':_0x53bd28[_0x46df('0x4f')][_0x46df('0x2e')]||_0x46df('0xfc'),'role':_0x375ac2[_0x46df('0x1f')],'internal':_0x375ac2[_0x46df('0x59')]});});return db[_0x46df('0xee')][_0x46df('0x7a')](_0x5a9fde,{'individualHooks':!![]});})[_0x46df('0x29')](function(){return _0x375ac2['update']({'voicePause':!![],'mailPause':!![],'chatPause':!![],'faxPause':!![],'smsPause':!![],'whatsappPause':!![],'openchannelPause':!![],'pauseType':_0x53bd28['body'][_0x46df('0x2e')]||_0x46df('0xfc'),'lastPauseAt':moment()[_0x46df('0x9e')]('YYYY-MM-DD\x20HH:mm:ss')});})[_0x46df('0x29')](respondWithResult(_0x5d73cc,null))['catch'](handleError(_0x5d73cc,null));};exports[_0x46df('0xfd')]=function(_0x1094fe,_0x46f987){var _0xdf3005;return db[_0x46df('0x34')][_0x46df('0x50')]({'where':{'id':_0x1094fe['params']['id']},'attributes':['id',_0x46df('0x27'),'role',_0x46df('0xa0'),_0x46df('0xfe'),_0x46df('0xff'),_0x46df('0x100'),_0x46df('0x101'),_0x46df('0x102'),_0x46df('0x103'),_0x46df('0x104'),_0x46df('0x105')]})['then'](handleEntityNotFound(_0x46f987,null))[_0x46df('0x29')](function(_0x21d51f){if(_0x21d51f){_0xdf3005=_0x21d51f;if(_0x1094fe[_0x46df('0x4f')]['channel']&&!utils[_0x46df('0x91')](_0x1094fe[_0x46df('0x4f')][_0x46df('0x8f')])){throw new db[(_0x46df('0x82'))][(_0x46df('0x85'))](_0x46df('0x92'));}switch(_0x1094fe[_0x46df('0x4f')][_0x46df('0x8f')]){case _0x46df('0x9b'):return respondWithRpcPromise(_0x46df('0xf9'),_0x46df('0xfd'),{'id':_0xdf3005['id'],'name':_0xdf3005['name'],'pause':![]})['then'](function(){return db['UserVoiceQueueRt'][_0x46df('0x1c')]({'paused':0x0},{'where':{'UserId':_0xdf3005['id']},'individualHooks':!![]});})[_0x46df('0x29')](function(){return db['MemberReport'][_0x46df('0x50')]({'where':{'channel':_0x1094fe[_0x46df('0x4f')][_0x46df('0x8f')],'membername':_0xdf3005[_0x46df('0x27')],'type':_0x46df('0xf3'),'exitAt':null}});})['then'](function(_0x2677c2){if(_0x2677c2){return _0x2677c2['update']({'exitAt':moment()[_0x46df('0x9e')](_0x46df('0xf0')),'data2':_0x46df('0x106')},{'individualHooks':!![]});}return null;})['then'](function(){return _0xdf3005[_0x46df('0x1c')]({'voicePause':![]});});case'mail':case'chat':case'fax':case _0x46df('0x3e'):case'whatsapp':case _0x46df('0x41'):return db['MemberReport'][_0x46df('0x50')]({'where':{'channel':_0x1094fe[_0x46df('0x4f')]['channel'],'membername':_0xdf3005['name'],'type':_0x46df('0xf3'),'exitAt':null}})[_0x46df('0x29')](function(_0x5a8bff){if(_0x5a8bff){return _0x5a8bff[_0x46df('0x1c')]({'exitAt':moment()[_0x46df('0x9e')]('YYYY-MM-DD\x20HH:mm:ss'),'data2':_0x46df('0x106')},{'individualHooks':!![]});}return null;})[_0x46df('0x29')](function(){var _0x33a729={};_[_0x46df('0x1a')](_0x33a729,util[_0x46df('0x9e')](_0x46df('0x107'),_0x1094fe[_0x46df('0x4f')][_0x46df('0x8f')],_0x46df('0x108')),![]);return _0xdf3005[_0x46df('0x1c')](_0x33a729);});default:return respondWithRpcPromise(_0x46df('0xf9'),'unpause',{'id':_0xdf3005['id'],'name':_0xdf3005[_0x46df('0x27')],'pause':![]})[_0x46df('0x29')](function(){return db[_0x46df('0xa2')][_0x46df('0x1c')]({'paused':0x0},{'where':{'UserId':_0xdf3005['id']}});})[_0x46df('0x29')](function(){return db['MemberReport'][_0x46df('0x39')]({'where':{'membername':_0xdf3005[_0x46df('0x27')],'type':_0x46df('0xf3'),'exitAt':null}});})[_0x46df('0x29')](function(_0x4e6219){var _0x2cf8f7=[];_0x4e6219['forEach'](function(_0x42125e){_0x2cf8f7[_0x46df('0x38')](_0x42125e[_0x46df('0x1c')]({'exitAt':moment()[_0x46df('0x9e')](_0x46df('0xf0')),'data2':'manual'}));});return BPromise['all'](_0x2cf8f7);})['then'](function(){return _0xdf3005['update']({'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'whatsappPause':![],'openchannelPause':![]});});}}})[_0x46df('0x29')](respondWithResult(_0x46f987,null))[_0x46df('0x44')](handleError(_0x46f987,null));};exports[_0x46df('0x109')]=function(_0x5aedc3,_0x20eff3){var _0x31e9e5={};var _0x5de6f5={};var _0x4e20ec;var _0x17188b;return db[_0x46df('0x34')][_0x46df('0x89')]({'where':{'id':_0x5aedc3[_0x46df('0x53')]['id']}})['then'](handleEntityNotFound(_0x20eff3,null))[_0x46df('0x29')](function(_0x9c7e7e){if(_0x9c7e7e){_0x4e20ec=_0x9c7e7e;_0x5de6f5[_0x46df('0x4a')]=_[_0x46df('0x47')](db[_0x46df('0x10a')][_0x46df('0x2c')]);_0x5de6f5[_0x46df('0x35')]=_['keys'](_0x5aedc3['query']);_0x5de6f5[_0x46df('0xc1')]=_['intersection'](_0x5de6f5['model'],_0x5de6f5[_0x46df('0x35')]);_0x31e9e5['attributes']=_[_0x46df('0x49')](_0x5de6f5[_0x46df('0x4a')],qs[_0x46df('0x4b')](_0x5aedc3[_0x46df('0x35')][_0x46df('0x4b')]));_0x31e9e5[_0x46df('0x37')]=_0x31e9e5[_0x46df('0x37')][_0x46df('0x3c')]?_0x31e9e5['attributes']:_0x5de6f5[_0x46df('0x4a')];_0x31e9e5[_0x46df('0xc2')]=qs[_0x46df('0xc3')](_0x5aedc3[_0x46df('0x35')][_0x46df('0xc3')]);_0x31e9e5[_0x46df('0x33')]=qs[_0x46df('0xc1')](_['pick'](_0x5aedc3[_0x46df('0x35')],_0x5de6f5[_0x46df('0xc1')]));if(_0x5aedc3[_0x46df('0x35')][_0x46df('0x24')]){_0x31e9e5[_0x46df('0x33')]=_[_0x46df('0xc5')](_0x31e9e5[_0x46df('0x33')],{'$or':_[_0x46df('0x25')](_0x31e9e5[_0x46df('0x37')],function(_0x1d304c){var _0x2d72a8={};_0x2d72a8[_0x1d304c]={'$like':'%'+_0x5aedc3['query'][_0x46df('0x24')]+'%'};return _0x2d72a8;})});}_0x31e9e5=_[_0x46df('0xc5')]({},_0x31e9e5,_0x5aedc3[_0x46df('0x4d')]);return _0x4e20ec['getTeams'](_0x31e9e5);}})[_0x46df('0x29')](function(_0x5ab017){if(_0x5ab017){_0x17188b=_0x5ab017[_0x46df('0x3c')];if(!_0x5aedc3[_0x46df('0x35')][_0x46df('0xc6')](_0x46df('0xcc'))){_0x31e9e5['limit']=qs[_0x46df('0xcd')](_0x5aedc3[_0x46df('0x35')][_0x46df('0xcd')]);_0x31e9e5[_0x46df('0x17')]=qs[_0x46df('0x17')](_0x5aedc3['query']['offset']);}return _0x4e20ec[_0x46df('0x109')](_0x31e9e5);}})['then'](function(_0x15868b){if(_0x15868b){return _0x15868b?{'count':_0x17188b,'rows':_0x15868b}:null;}})[_0x46df('0x29')](respondWithResult(_0x20eff3,null))[_0x46df('0x44')](handleError(_0x20eff3,null));};exports[_0x46df('0x10b')]=function(_0x4d7e93,_0x2629b8){return db[_0x46df('0x34')][_0x46df('0x50')]({'where':{'id':_0x4d7e93['params']['id']}})[_0x46df('0x29')](handleEntityNotFound(_0x2629b8,null))['then'](function(_0x4ba100){if(_0x4ba100){var _0xfa1bcc=_0x4ba100[_0x46df('0x1e')]({'plain':!![]});return _0x4ba100[_0x46df('0x10b')](_0x4d7e93[_0x46df('0x4f')][_0x46df('0x98')],_['omit'](_0x4d7e93[_0x46df('0x4f')],['ids','id'])||{})['then'](function(){for(var _0x3f6dca=0x0;_0x3f6dca<_0x4d7e93[_0x46df('0x4f')][_0x46df('0x98')][_0x46df('0x3c')];_0x3f6dca++){var _0x2008ec=[];var _0x2e6dc6={};db[_0x46df('0x10a')][_0x46df('0x89')]({'where':{'id':_0x4d7e93[_0x46df('0x4f')][_0x46df('0x98')][_0x3f6dca]}})['then'](function(_0x14334e){_0x2e6dc6=_0x14334e[_0x46df('0x3d')];_0x2008ec[_0x46df('0x38')](_0x14334e[_0x46df('0x10c')]()[_0x46df('0x29')](function(_0x5c3771){for(var _0x224e10=0x0;_0x224e10<_0x5c3771['length'];_0x224e10++){_0x5c3771[_0x224e10][_0x46df('0x10d')](_0x46df('0x8f'),_0x46df('0x10e'));}return _0x5c3771;}));_0x2008ec[_0x46df('0x38')](_0x14334e['getChatQueues']()[_0x46df('0x29')](function(_0x4e87f7){for(var _0x557729=0x0;_0x557729<_0x4e87f7[_0x46df('0x3c')];_0x557729++){_0x4e87f7[_0x557729][_0x46df('0x10d')](_0x46df('0x8f'),'Chat');}return _0x4e87f7;}));_0x2008ec['push'](_0x14334e[_0x46df('0x10f')]()['then'](function(_0x4c4d15){for(var _0x53c999=0x0;_0x53c999<_0x4c4d15['length'];_0x53c999++){_0x4c4d15[_0x53c999][_0x46df('0x10d')](_0x46df('0x8f'),_0x46df('0x110'));}return _0x4c4d15;}));_0x2008ec['push'](_0x14334e[_0x46df('0x111')]()[_0x46df('0x29')](function(_0x4223cb){for(var _0xf8b74d=0x0;_0xf8b74d<_0x4223cb[_0x46df('0x3c')];_0xf8b74d++){_0x4223cb[_0xf8b74d]['setDataValue'](_0x46df('0x8f'),_0x46df('0x112'));}return _0x4223cb;}));_0x2008ec[_0x46df('0x38')](_0x14334e[_0x46df('0x113')]()[_0x46df('0x29')](function(_0x4f5ee2){for(var _0x39fbf2=0x0;_0x39fbf2<_0x4f5ee2[_0x46df('0x3c')];_0x39fbf2++){_0x4f5ee2[_0x39fbf2][_0x46df('0x10d')](_0x46df('0x8f'),_0x46df('0x114'));}return _0x4f5ee2;}));_0x2008ec[_0x46df('0x38')](_0x14334e[_0x46df('0x115')]()[_0x46df('0x29')](function(_0x4ac68c){for(var _0x3589d6=0x0;_0x3589d6<_0x4ac68c[_0x46df('0x3c')];_0x3589d6++){_0x4ac68c[_0x3589d6][_0x46df('0x10d')](_0x46df('0x8f'),_0x46df('0x116'));}return _0x4ac68c;}));_0x2008ec[_0x46df('0x38')](_0x14334e['getOpenchannelQueues']()[_0x46df('0x29')](function(_0x4b5b1a){for(var _0x4094df=0x0;_0x4094df<_0x4b5b1a[_0x46df('0x3c')];_0x4094df++){_0x4b5b1a[_0x4094df][_0x46df('0x10d')]('channel',_0x46df('0x117'));}return _0x4b5b1a;}));return BPromise[_0x46df('0x43')](_0x2008ec);})[_0x46df('0x29')](function(_0x547d0c){var _0x45a0a2=_[_0x46df('0x118')](_0x547d0c);_0x2008ec=[];return db['sequelize'][_0x46df('0x119')](function(_0x2b3421){for(var _0x1c32fa=0x0;_0x1c32fa<_0x45a0a2[_0x46df('0x3c')];_0x1c32fa++){_0x2008ec[_0x46df('0x38')](_0x45a0a2[_0x1c32fa][_0x46df('0x11a')](_0xfa1bcc['id']),{'transaction':_0x2b3421});}return BPromise[_0x46df('0x43')](_0x2008ec)[_0x46df('0x29')](function(){if(_0xfa1bcc[_0x46df('0x9d')]){return BPromise[_0x46df('0x7d')](_[_0x46df('0x24')](_0x45a0a2,function(_0x5e52db){return _0x5e52db[_0x46df('0x11b')](_0x46df('0x8f'))===_0x46df('0x10e');}),function(_0x2fbfad){return db[_0x46df('0xa2')][_0x46df('0xa3')]({'membername':_0xfa1bcc[_0x46df('0x27')],'UserId':_0xfa1bcc['id'],'queue_name':_0x2fbfad['name'],'VoiceQueueId':_0x2fbfad['id'],'interface':_[_0x46df('0x5b')](_0xfa1bcc[_0x46df('0x90')])?util[_0x46df('0x9e')](_0x46df('0x9f'),_0xfa1bcc['name']):_0xfa1bcc['interface'],'paused':_0xfa1bcc[_0x46df('0xa0')]||![],'penalty':_0xfa1bcc[_0x46df('0xa1')]},{'transaction':_0x2b3421});});}else{return;}})['then'](function(){for(var _0x9f34ec=0x0;_0x9f34ec<_0x45a0a2[_0x46df('0x3c')];_0x9f34ec++){var _0x294deb=_0x45a0a2[_0x9f34ec][_0x46df('0x11b')]('channel');var _0x339ca1=_0x294deb+_0x46df('0x97');socket[_0x46df('0x99')]('user'+_0x294deb+_0x46df('0x9a'),{'UserId':_0xfa1bcc['id'],['queueField']:_0x45a0a2[_0x9f34ec]['id']});}});});})[_0x46df('0x29')](function(){db[_0x46df('0x11c')][_0x46df('0x89')]({'where':{'teamId':_0x2e6dc6['id']}})[_0x46df('0x29')](function(_0x3e2edd){if(_0x3e2edd){db[_0x46df('0x11d')][_0x46df('0x72')]({'UserId':_0x4d7e93[_0x46df('0x53')]['id'],'VoicePrefixId':_0x3e2edd[_0x46df('0x11e')]});}});});}});}})[_0x46df('0x29')](respondWithStatusCode(_0x2629b8,null))[_0x46df('0x44')](handleError(_0x2629b8,null));};exports[_0x46df('0x11f')]=function(_0x3a105e,_0x32860b){return db[_0x46df('0x34')]['findOne']({'where':{'id':_0x3a105e[_0x46df('0x53')]['id']}})[_0x46df('0x29')](handleEntityNotFound(_0x32860b,null))[_0x46df('0x29')](function(_0x4141ab){if(_0x4141ab){var _0x1a966b=_0x4141ab[_0x46df('0x1e')]({'plain':!![]});var _0x56f269=_0x3a105e[_0x46df('0x35')]['ids'];return _0x4141ab[_0x46df('0x11f')](_0x56f269)[_0x46df('0x29')](function(){for(var _0x352196=0x0;_0x352196<_0x56f269['length'];_0x352196++){var _0x55bd80=[];var _0x142c17={};db['Team'][_0x46df('0x89')]({'where':{'id':_0x56f269[_0x352196]}})[_0x46df('0x29')](function(_0x4ed406){_0x142c17=_0x4ed406[_0x46df('0x3d')];_0x55bd80['push'](_0x4ed406[_0x46df('0x10c')]()[_0x46df('0x29')](function(_0x5efd69){for(var _0x590fba=0x0;_0x590fba<_0x5efd69['length'];_0x590fba++){_0x5efd69[_0x590fba][_0x46df('0x10d')](_0x46df('0x8f'),_0x46df('0x10e'));}return _0x5efd69;}));_0x55bd80[_0x46df('0x38')](_0x4ed406['getChatQueues']()['then'](function(_0x4f8e4f){for(var _0x228d27=0x0;_0x228d27<_0x4f8e4f[_0x46df('0x3c')];_0x228d27++){_0x4f8e4f[_0x228d27][_0x46df('0x10d')](_0x46df('0x8f'),'Chat');}return _0x4f8e4f;}));_0x55bd80[_0x46df('0x38')](_0x4ed406[_0x46df('0x10f')]()[_0x46df('0x29')](function(_0x14c57f){for(var _0x1b2d9d=0x0;_0x1b2d9d<_0x14c57f['length'];_0x1b2d9d++){_0x14c57f[_0x1b2d9d]['setDataValue']('channel','Mail');}return _0x14c57f;}));_0x55bd80['push'](_0x4ed406[_0x46df('0x111')]()['then'](function(_0x1f3fdc){for(var _0x2232b3=0x0;_0x2232b3<_0x1f3fdc['length'];_0x2232b3++){_0x1f3fdc[_0x2232b3][_0x46df('0x10d')]('channel',_0x46df('0x112'));}return _0x1f3fdc;}));_0x55bd80[_0x46df('0x38')](_0x4ed406['getWhatsappQueues']()[_0x46df('0x29')](function(_0x5cee34){for(var _0x3cfa1a=0x0;_0x3cfa1a<_0x5cee34[_0x46df('0x3c')];_0x3cfa1a++){_0x5cee34[_0x3cfa1a][_0x46df('0x10d')]('channel',_0x46df('0x114'));}return _0x5cee34;}));_0x55bd80['push'](_0x4ed406[_0x46df('0x115')]()[_0x46df('0x29')](function(_0xa02077){for(var _0x420268=0x0;_0x420268<_0xa02077[_0x46df('0x3c')];_0x420268++){_0xa02077[_0x420268][_0x46df('0x10d')](_0x46df('0x8f'),_0x46df('0x116'));}return _0xa02077;}));_0x55bd80['push'](_0x4ed406['getOpenchannelQueues']()[_0x46df('0x29')](function(_0x28669a){for(var _0x10bd88=0x0;_0x10bd88<_0x28669a['length'];_0x10bd88++){_0x28669a[_0x10bd88][_0x46df('0x10d')]('channel',_0x46df('0x117'));}return _0x28669a;}));return BPromise['all'](_0x55bd80);})[_0x46df('0x29')](function(_0x3d0931){var _0xad6461=_[_0x46df('0x118')](_0x3d0931);_0x55bd80=[];return db['sequelize'][_0x46df('0x119')](function(_0x27e226){for(var _0x41420b=0x0;_0x41420b<_0xad6461[_0x46df('0x3c')];_0x41420b++){_0x55bd80[_0x46df('0x38')](_0xad6461[_0x41420b]['removeAgent'](_0x1a966b['id']),{'transaction':_0x27e226});}return BPromise[_0x46df('0x43')](_0x55bd80)[_0x46df('0x29')](function(){if(_0x1a966b[_0x46df('0x9d')]){return BPromise[_0x46df('0x7d')](_[_0x46df('0x24')](_0xad6461,function(_0x2b370d){return _0x2b370d['getDataValue'](_0x46df('0x8f'))===_0x46df('0x10e');}),function(_0x6437a4){return db['UserVoiceQueueRt']['destroy']({'where':{'VoiceQueueId':_0x6437a4['id'],'UserId':_0x1a966b['id']},'transaction':_0x27e226});});}else{return;}})[_0x46df('0x29')](function(){db[_0x46df('0x11c')][_0x46df('0x89')]({'where':{'teamId':_0x142c17['id']}})[_0x46df('0x29')](function(_0xcef9ec){if(_0xcef9ec){return db['UserVoicePrefix'][_0x46df('0x1d')]({'where':{'UserId':_0x1a966b['id'],'VoicePrefixId':_0xcef9ec[_0x46df('0x3d')][_0x46df('0x11e')]}});}});})[_0x46df('0x29')](function(){for(var _0x2114bd=0x0;_0x2114bd<_0xad6461[_0x46df('0x3c')];_0x2114bd++){var _0x52ebbb=_0xad6461[_0x2114bd]['getDataValue'](_0x46df('0x8f'));var _0x193691=_0x52ebbb+_0x46df('0x97');socket[_0x46df('0x99')](_0x46df('0x21')+_0x52ebbb+_0x46df('0x120'),{'UserId':_0x1a966b['id'],['queueField']:_0xad6461[_0x2114bd]['id']});}});});});}});}})['then'](respondWithStatusCode(_0x32860b,null))[_0x46df('0x44')](handleError(_0x32860b,null));};exports[_0x46df('0x121')]=function(_0x38ba1a,_0x281594){var _0x4e9261={};var _0x237e46={};var _0x3ee0a2;var _0x1181f2;return db[_0x46df('0x34')][_0x46df('0x89')]({'where':{'id':_0x38ba1a[_0x46df('0x53')]['id']}})[_0x46df('0x29')](handleEntityNotFound(_0x281594,null))[_0x46df('0x29')](function(_0x342eca){if(_0x342eca){_0x3ee0a2=_0x342eca;_0x237e46[_0x46df('0x4a')]=_[_0x46df('0x47')](db[_0x46df('0xc7')]['rawAttributes']);_0x237e46['query']=_['keys'](_0x38ba1a[_0x46df('0x35')]);_0x237e46[_0x46df('0xc1')]=_[_0x46df('0x49')](_0x237e46[_0x46df('0x4a')],_0x237e46[_0x46df('0x35')]);_0x4e9261['attributes']=_['intersection'](_0x237e46['model'],qs[_0x46df('0x4b')](_0x38ba1a[_0x46df('0x35')][_0x46df('0x4b')]));_0x4e9261[_0x46df('0x37')]=_0x4e9261[_0x46df('0x37')][_0x46df('0x3c')]?_0x4e9261[_0x46df('0x37')]:_0x237e46[_0x46df('0x4a')];_0x4e9261[_0x46df('0xc2')]=qs[_0x46df('0xc3')](_0x38ba1a['query'][_0x46df('0xc3')]);_0x4e9261[_0x46df('0x33')]=qs[_0x46df('0xc1')](_[_0x46df('0xc4')](_0x38ba1a['query'],_0x237e46['filters']));if(_0x38ba1a[_0x46df('0x35')][_0x46df('0x24')]){_0x4e9261[_0x46df('0x33')]=_[_0x46df('0xc5')](_0x4e9261[_0x46df('0x33')],{'$or':_['map'](_0x4e9261[_0x46df('0x37')],function(_0x5c930d){var _0x4766b2={};_0x4766b2[_0x5c930d]={'$like':'%'+_0x38ba1a[_0x46df('0x35')]['filter']+'%'};return _0x4766b2;})});}_0x4e9261=_[_0x46df('0xc5')]({},_0x4e9261,_0x38ba1a[_0x46df('0x4d')]);return _0x3ee0a2['getLists'](_0x4e9261);}})[_0x46df('0x29')](function(_0xbbcf7e){if(_0xbbcf7e){_0x1181f2=_0xbbcf7e[_0x46df('0x3c')];if(!_0x38ba1a[_0x46df('0x35')][_0x46df('0xc6')]('nolimit')){_0x4e9261[_0x46df('0xcd')]=qs['limit'](_0x38ba1a[_0x46df('0x35')]['limit']);_0x4e9261[_0x46df('0x17')]=qs[_0x46df('0x17')](_0x38ba1a[_0x46df('0x35')][_0x46df('0x17')]);}return _0x3ee0a2[_0x46df('0x121')](_0x4e9261);}})[_0x46df('0x29')](function(_0x2a569d){if(_0x2a569d){return _0x2a569d?{'count':_0x1181f2,'rows':_0x2a569d}:null;}})[_0x46df('0x29')](respondWithResult(_0x281594,null))['catch'](handleError(_0x281594,null));};exports[_0x46df('0x122')]=function(_0xc35ac6,_0x5b265b){var _0x194a6f={};var _0x18d85f={};var _0x3a00e8;var _0x327515;return db[_0x46df('0x34')][_0x46df('0x89')]({'where':{'id':_0xc35ac6[_0x46df('0x53')]['id']}})[_0x46df('0x29')](handleEntityNotFound(_0x5b265b,null))[_0x46df('0x29')](function(_0x443f7b){if(_0x443f7b){_0x3a00e8=_0x443f7b;_0x18d85f['model']=_[_0x46df('0x47')](db[_0x46df('0x34')][_0x46df('0x2c')]);_0x18d85f[_0x46df('0x35')]=_[_0x46df('0x47')](_0xc35ac6[_0x46df('0x35')]);_0x18d85f['filters']=_[_0x46df('0x49')](_0x18d85f[_0x46df('0x4a')],_0x18d85f['query']);_0x194a6f[_0x46df('0x37')]=_['intersection'](_0x18d85f[_0x46df('0x4a')],qs[_0x46df('0x4b')](_0xc35ac6[_0x46df('0x35')][_0x46df('0x4b')]));_0x194a6f['attributes']=_0x194a6f[_0x46df('0x37')][_0x46df('0x3c')]?_0x194a6f[_0x46df('0x37')]:_0x18d85f[_0x46df('0x4a')];_0x194a6f['order']=qs[_0x46df('0xc3')](_0xc35ac6[_0x46df('0x35')][_0x46df('0xc3')]);_0x194a6f['where']=qs[_0x46df('0xc1')](_[_0x46df('0xc4')](_0xc35ac6['query'],_0x18d85f[_0x46df('0xc1')]));if(_0xc35ac6[_0x46df('0x35')][_0x46df('0x24')]){_0x194a6f['where']=_['merge'](_0x194a6f[_0x46df('0x33')],{'$or':_[_0x46df('0x25')](_0x194a6f[_0x46df('0x37')],function(_0xee5e31){var _0x4fe92f={};_0x4fe92f[_0xee5e31]={'$like':'%'+_0xc35ac6['query'][_0x46df('0x24')]+'%'};return _0x4fe92f;})});}_0x194a6f[_0x46df('0x4a')]=db[_0x46df('0x34')];_0x194a6f['as']=_0x46df('0x77');_0x194a6f=_['merge']({},_0x194a6f,_0xc35ac6['options']);return _0x3a00e8[_0x46df('0x10c')]({'include':[_0x194a6f]});}})[_0x46df('0x29')](function(_0x10c7b7){if(_0x10c7b7){var _0x36864a={},_0x25de8a=[],_0x1a5421=0x0;for(var _0x1d9aa8=0x0;_0x1d9aa8<_0x10c7b7['length'];_0x1d9aa8+=0x1){for(var _0x99f3f2=0x0,_0x5d49d1;_0x99f3f2<_0x10c7b7[_0x1d9aa8][_0x46df('0x77')][_0x46df('0x3c')];_0x99f3f2+=0x1){_0x5d49d1=_0x10c7b7[_0x1d9aa8]['Agents'][_0x99f3f2][_0x46df('0x1e')]({'plain':!![]});_0x36864a[_0x5d49d1['id']]=_0x5d49d1;}}_0x36864a=_['values'](_0x36864a);for(var _0xa0397d=qs['offset'](_0xc35ac6['query'][_0x46df('0x17')]);_0xa0397d<_0x36864a['length']&&_0x25de8a['length']<qs[_0x46df('0xcd')](_0xc35ac6[_0x46df('0x35')][_0x46df('0xcd')]);_0xa0397d+=0x1){if(_0x36864a[_0xa0397d]){_0x25de8a[_0x46df('0x38')](_0x36864a[_0xa0397d]);}}return{'count':_0x36864a[_0x46df('0x3c')],'rows':_0x25de8a};}})[_0x46df('0x29')](respondWithResult(_0x5b265b,null))[_0x46df('0x44')](handleError(_0x5b265b,null));};exports['destroy']=function(_0x2837a3,_0x46eef1){if(_0x2837a3[_0x46df('0x21')]['id']==_0x2837a3[_0x46df('0x53')]['id']){return _0x46eef1['status'](0x1f4)[_0x46df('0x2b')]({'message':_0x46df('0x123')});}return db[_0x46df('0x34')][_0x46df('0x50')]({'where':{'id':_0x2837a3[_0x46df('0x53')]['id']}})[_0x46df('0x29')](handleEntityNotFound(_0x46eef1,null))['then'](removeEntity(_0x46eef1,null))[_0x46df('0x44')](handleError(_0x46eef1,null));};exports[_0x46df('0x124')]=function(_0x3ff921,_0xb021d6){return db[_0x46df('0x34')][_0x46df('0x50')]({'where':{'id':_0x3ff921[_0x46df('0x53')]['id']}})[_0x46df('0x29')](handleEntityNotFound(_0xb021d6,null))[_0x46df('0x29')](function(_0x1f7516){if(_0x1f7516){return _0x1f7516[_0x46df('0x124')](_0x3ff921['body'][_0x46df('0x98')],_['omit'](_0x3ff921[_0x46df('0x4f')],[_0x46df('0x98'),'id'])||{})[_0x46df('0x95')](function(){for(var _0x51eb41=0x0;_0x51eb41<_0x3ff921[_0x46df('0x4f')][_0x46df('0x98')][_0x46df('0x3c')];_0x51eb41+=0x1){socket[_0x46df('0x99')](_0x46df('0x125'),{'ChatInteractionId':Number(_0x3ff921[_0x46df('0x4f')][_0x46df('0x98')][_0x51eb41]),'UserId':Number(_0x3ff921[_0x46df('0x53')]['id'])});}return _0x3ff921['body'][_0x46df('0x98')];});}})[_0x46df('0x29')](respondWithResult(_0xb021d6,null))[_0x46df('0x44')](handleError(_0xb021d6,null));};exports[_0x46df('0x126')]=function(_0x19e0af,_0x4314b4){return db[_0x46df('0x34')][_0x46df('0x50')]({'where':{'id':_0x19e0af['params']['id']}})['then'](handleEntityNotFound(_0x4314b4,null))['then'](function(_0x10625e){if(_0x10625e){return _0x10625e['removeChatInteractions'](_0x19e0af[_0x46df('0x35')]['ids'])['then'](function(){if(_[_0x46df('0xa6')](_0x19e0af[_0x46df('0x35')][_0x46df('0x98')])){for(var _0x3fc93f=0x0;_0x3fc93f<_0x19e0af[_0x46df('0x35')]['ids']['length'];_0x3fc93f+=0x1){socket[_0x46df('0x99')]('user_has_chat_interactions:remove',{'ChatInteractionId':Number(_0x19e0af['query'][_0x46df('0x98')][_0x3fc93f]),'UserId':Number(_0x19e0af[_0x46df('0x53')]['id'])});}}else{socket[_0x46df('0x99')](_0x46df('0x127'),{'ChatInteractionId':Number(_0x19e0af['query'][_0x46df('0x98')]),'UserId':Number(_0x19e0af[_0x46df('0x53')]['id'])});}});}})[_0x46df('0x29')](respondWithStatusCode(_0x4314b4,null))['catch'](handleError(_0x4314b4,null));};exports[_0x46df('0x128')]=function(_0x576414,_0x526141){return db[_0x46df('0x34')][_0x46df('0x50')]({'where':{'id':_0x576414[_0x46df('0x53')]['id']}})[_0x46df('0x29')](handleEntityNotFound(_0x526141,null))[_0x46df('0x29')](function(_0x5020af){if(_0x5020af){return _0x5020af[_0x46df('0x128')](_0x576414[_0x46df('0x4f')][_0x46df('0x98')],_[_0x46df('0x54')](_0x576414[_0x46df('0x4f')],[_0x46df('0x98'),'id'])||{})[_0x46df('0x95')](function(){for(var _0x15bf97=0x0;_0x15bf97<_0x576414[_0x46df('0x4f')][_0x46df('0x98')]['length'];_0x15bf97+=0x1){socket[_0x46df('0x99')](_0x46df('0x129'),{'MailInteractionId':Number(_0x576414[_0x46df('0x4f')][_0x46df('0x98')][_0x15bf97]),'UserId':Number(_0x576414[_0x46df('0x53')]['id'])});}return _0x576414['body'][_0x46df('0x98')];});}})['then'](respondWithResult(_0x526141,null))[_0x46df('0x44')](handleError(_0x526141,null));};exports[_0x46df('0x12a')]=function(_0x51d801,_0x4ef250){return db[_0x46df('0x34')][_0x46df('0x50')]({'where':{'id':_0x51d801[_0x46df('0x53')]['id']}})[_0x46df('0x29')](handleEntityNotFound(_0x4ef250,null))[_0x46df('0x29')](function(_0x8c25ca){if(_0x8c25ca){return _0x8c25ca[_0x46df('0x12a')](_0x51d801[_0x46df('0x35')][_0x46df('0x98')])[_0x46df('0x29')](function(){if(_[_0x46df('0xa6')](_0x51d801[_0x46df('0x35')][_0x46df('0x98')])){for(var _0x1ce4b6=0x0;_0x1ce4b6<_0x51d801[_0x46df('0x35')][_0x46df('0x98')]['length'];_0x1ce4b6+=0x1){socket[_0x46df('0x99')]('user_has_mail_interactions:remove',{'MailInteractionId':Number(_0x51d801['query'][_0x46df('0x98')][_0x1ce4b6]),'UserId':Number(_0x51d801[_0x46df('0x53')]['id'])});}}else{socket[_0x46df('0x99')](_0x46df('0x12b'),{'MailInteractionId':Number(_0x51d801[_0x46df('0x35')][_0x46df('0x98')]),'UserId':Number(_0x51d801['params']['id'])});}});}})[_0x46df('0x29')](respondWithStatusCode(_0x4ef250,null))['catch'](handleError(_0x4ef250,null));};exports[_0x46df('0x12c')]=function(_0x326503,_0x459c87){return db[_0x46df('0x34')][_0x46df('0x50')]({'where':{'id':_0x326503[_0x46df('0x53')]['id']}})[_0x46df('0x29')](handleEntityNotFound(_0x459c87,null))[_0x46df('0x29')](function(_0x23aa1b){if(_0x23aa1b){return _0x23aa1b[_0x46df('0x12c')](_0x326503['body']['ids'],_['omit'](_0x326503[_0x46df('0x4f')],['ids','id'])||{})[_0x46df('0x95')](function(){for(var _0x5ed3bc=0x0;_0x5ed3bc<_0x326503[_0x46df('0x4f')]['ids'][_0x46df('0x3c')];_0x5ed3bc+=0x1){socket[_0x46df('0x99')](_0x46df('0x12d'),{'FaxInteractionId':Number(_0x326503[_0x46df('0x4f')][_0x46df('0x98')][_0x5ed3bc]),'UserId':Number(_0x326503[_0x46df('0x53')]['id'])});}return _0x326503['body'][_0x46df('0x98')];});}})[_0x46df('0x29')](respondWithResult(_0x459c87,null))['catch'](handleError(_0x459c87,null));};exports[_0x46df('0x12e')]=function(_0x5418a4,_0x117fbc){return db[_0x46df('0x34')][_0x46df('0x50')]({'where':{'id':_0x5418a4[_0x46df('0x53')]['id']}})[_0x46df('0x29')](handleEntityNotFound(_0x117fbc,null))[_0x46df('0x29')](function(_0xb1a4eb){if(_0xb1a4eb){return _0xb1a4eb[_0x46df('0x12e')](_0x5418a4[_0x46df('0x35')]['ids'])[_0x46df('0x29')](function(){if(_['isArray'](_0x5418a4['query'][_0x46df('0x98')])){for(var _0x98df11=0x0;_0x98df11<_0x5418a4[_0x46df('0x35')][_0x46df('0x98')][_0x46df('0x3c')];_0x98df11+=0x1){socket[_0x46df('0x99')](_0x46df('0x12f'),{'FaxInteractionId':Number(_0x5418a4['query'][_0x46df('0x98')][_0x98df11]),'UserId':Number(_0x5418a4['params']['id'])});}}else{socket[_0x46df('0x99')](_0x46df('0x12f'),{'FaxInteractionId':Number(_0x5418a4[_0x46df('0x35')]['ids']),'UserId':Number(_0x5418a4[_0x46df('0x53')]['id'])});}});}})[_0x46df('0x29')](respondWithStatusCode(_0x117fbc,null))['catch'](handleError(_0x117fbc,null));};exports['addSmsInteractions']=function(_0x507cb4,_0x399f1e){return db[_0x46df('0x34')]['find']({'where':{'id':_0x507cb4[_0x46df('0x53')]['id']}})[_0x46df('0x29')](handleEntityNotFound(_0x399f1e,null))[_0x46df('0x29')](function(_0xbd548d){if(_0xbd548d){return _0xbd548d['addSmsInteractions'](_0x507cb4['body'][_0x46df('0x98')],_['omit'](_0x507cb4['body'],[_0x46df('0x98'),'id'])||{})['spread'](function(){for(var _0x49f6e3=0x0;_0x49f6e3<_0x507cb4['body'][_0x46df('0x98')][_0x46df('0x3c')];_0x49f6e3+=0x1){socket[_0x46df('0x99')](_0x46df('0x130'),{'SmsInteractionId':Number(_0x507cb4[_0x46df('0x4f')][_0x46df('0x98')][_0x49f6e3]),'UserId':Number(_0x507cb4['params']['id'])});}return _0x507cb4['body'][_0x46df('0x98')];});}})['then'](respondWithResult(_0x399f1e,null))[_0x46df('0x44')](handleError(_0x399f1e,null));};exports[_0x46df('0x131')]=function(_0x58b170,_0x4217e3){return db[_0x46df('0x34')][_0x46df('0x50')]({'where':{'id':_0x58b170[_0x46df('0x53')]['id']}})['then'](handleEntityNotFound(_0x4217e3,null))[_0x46df('0x29')](function(_0x4e4a62){if(_0x4e4a62){return _0x4e4a62[_0x46df('0x131')](_0x58b170['query'][_0x46df('0x98')])['then'](function(){if(_[_0x46df('0xa6')](_0x58b170[_0x46df('0x35')][_0x46df('0x98')])){for(var _0x59efb1=0x0;_0x59efb1<_0x58b170[_0x46df('0x35')][_0x46df('0x98')]['length'];_0x59efb1+=0x1){socket[_0x46df('0x99')](_0x46df('0x132'),{'SmsInteractionId':Number(_0x58b170['query'][_0x46df('0x98')][_0x59efb1]),'UserId':Number(_0x58b170[_0x46df('0x53')]['id'])});}}else{socket['emit']('user_has_sms_interactions:remove',{'SmsInteractionId':Number(_0x58b170[_0x46df('0x35')][_0x46df('0x98')]),'UserId':Number(_0x58b170[_0x46df('0x53')]['id'])});}});}})[_0x46df('0x29')](respondWithStatusCode(_0x4217e3,null))[_0x46df('0x44')](handleError(_0x4217e3,null));};exports[_0x46df('0x133')]=function(_0x1772c8,_0xd854ec){return db['User'][_0x46df('0x50')]({'where':{'id':_0x1772c8[_0x46df('0x53')]['id']}})[_0x46df('0x29')](handleEntityNotFound(_0xd854ec,null))[_0x46df('0x29')](function(_0x50827a){if(_0x50827a){return _0x50827a['addOpenchannelInteractions'](_0x1772c8[_0x46df('0x4f')]['ids'],_['omit'](_0x1772c8['body'],['ids','id'])||{})[_0x46df('0x95')](function(){for(var _0x48b4e9=0x0;_0x48b4e9<_0x1772c8['body'][_0x46df('0x98')][_0x46df('0x3c')];_0x48b4e9+=0x1){socket[_0x46df('0x99')](_0x46df('0x134'),{'OpenchannelInteractionId':Number(_0x1772c8[_0x46df('0x4f')][_0x46df('0x98')][_0x48b4e9]),'UserId':Number(_0x1772c8[_0x46df('0x53')]['id'])});}return _0x1772c8[_0x46df('0x4f')][_0x46df('0x98')];});}})['then'](respondWithResult(_0xd854ec,null))[_0x46df('0x44')](handleError(_0xd854ec,null));};exports[_0x46df('0x135')]=function(_0x478420,_0x4a990b){return db[_0x46df('0x34')][_0x46df('0x50')]({'where':{'id':_0x478420['params']['id']}})[_0x46df('0x29')](handleEntityNotFound(_0x4a990b,null))[_0x46df('0x29')](function(_0xe03dc5){if(_0xe03dc5){return _0xe03dc5['removeOpenchannelInteractions'](_0x478420[_0x46df('0x35')][_0x46df('0x98')])[_0x46df('0x29')](function(){if(_[_0x46df('0xa6')](_0x478420['query']['ids'])){for(var _0x333f78=0x0;_0x333f78<_0x478420[_0x46df('0x35')][_0x46df('0x98')][_0x46df('0x3c')];_0x333f78+=0x1){socket[_0x46df('0x99')](_0x46df('0x136'),{'OpenchannelInteractionId':Number(_0x478420[_0x46df('0x35')][_0x46df('0x98')][_0x333f78]),'UserId':Number(_0x478420[_0x46df('0x53')]['id'])});}}else{socket[_0x46df('0x99')]('user_has_openchannel_interactions:remove',{'OpenchannelInteractionId':Number(_0x478420[_0x46df('0x35')][_0x46df('0x98')]),'UserId':Number(_0x478420[_0x46df('0x53')]['id'])});}});}})['then'](respondWithStatusCode(_0x4a990b,null))[_0x46df('0x44')](handleError(_0x4a990b,null));};exports[_0x46df('0x137')]=function(_0x135f4c,_0x1593e7){return db[_0x46df('0x34')][_0x46df('0x50')]({'where':{'id':_0x135f4c['params']['id']}})[_0x46df('0x29')](handleEntityNotFound(_0x1593e7,null))['then'](function(_0x546259){if(_0x546259){return _0x546259['addWhatsappInteractions'](_0x135f4c['body']['ids'],_[_0x46df('0x54')](_0x135f4c[_0x46df('0x4f')],[_0x46df('0x98'),'id'])||{})['spread'](function(){for(var _0x501b48=0x0;_0x501b48<_0x135f4c[_0x46df('0x4f')][_0x46df('0x98')]['length'];_0x501b48+=0x1){socket[_0x46df('0x99')](_0x46df('0x138'),{'WhatsappInteractionId':Number(_0x135f4c['body'][_0x46df('0x98')][_0x501b48]),'UserId':Number(_0x135f4c[_0x46df('0x53')]['id'])});}return _0x135f4c[_0x46df('0x4f')][_0x46df('0x98')];});}})[_0x46df('0x29')](respondWithResult(_0x1593e7,null))[_0x46df('0x44')](handleError(_0x1593e7,null));};exports[_0x46df('0x139')]=function(_0x1b7091,_0xe898bb){return db['User'][_0x46df('0x50')]({'where':{'id':_0x1b7091[_0x46df('0x53')]['id']}})[_0x46df('0x29')](handleEntityNotFound(_0xe898bb,null))[_0x46df('0x29')](function(_0x307b25){if(_0x307b25){return _0x307b25[_0x46df('0x139')](_0x1b7091[_0x46df('0x35')][_0x46df('0x98')]);}})[_0x46df('0x29')](respondWithStatusCode(_0xe898bb,null))[_0x46df('0x44')](handleError(_0xe898bb,null));};exports['getVoicePrefixes']=function(_0x1de29c,_0x17d8eb){var _0x4b6dcd={};var _0x47bacb={};var _0x594efa;var _0x23b087;return db[_0x46df('0x34')]['findOne']({'where':{'id':_0x1de29c[_0x46df('0x53')]['id']}})[_0x46df('0x29')](handleEntityNotFound(_0x17d8eb,null))[_0x46df('0x29')](function(_0x316c93){if(_0x316c93){_0x594efa=_0x316c93;_0x47bacb['model']=_[_0x46df('0x47')](db[_0x46df('0x13a')][_0x46df('0x2c')]);_0x47bacb[_0x46df('0x35')]=_[_0x46df('0x47')](_0x1de29c['query']);_0x47bacb[_0x46df('0xc1')]=_[_0x46df('0x49')](_0x47bacb[_0x46df('0x4a')],_0x47bacb[_0x46df('0x35')]);_0x4b6dcd['attributes']=_[_0x46df('0x49')](_0x47bacb[_0x46df('0x4a')],qs[_0x46df('0x4b')](_0x1de29c[_0x46df('0x35')][_0x46df('0x4b')]));_0x4b6dcd[_0x46df('0x37')]=_0x4b6dcd[_0x46df('0x37')][_0x46df('0x3c')]?_0x4b6dcd[_0x46df('0x37')]:_0x47bacb['model'];_0x4b6dcd[_0x46df('0xc2')]=qs[_0x46df('0xc3')](_0x1de29c[_0x46df('0x35')][_0x46df('0xc3')]);_0x4b6dcd[_0x46df('0x33')]=qs[_0x46df('0xc1')](_['pick'](_0x1de29c[_0x46df('0x35')],_0x47bacb[_0x46df('0xc1')]));if(_0x1de29c['query'][_0x46df('0x24')]){_0x4b6dcd[_0x46df('0x33')]=_[_0x46df('0xc5')](_0x4b6dcd[_0x46df('0x33')],{'$or':_[_0x46df('0x25')](_0x4b6dcd[_0x46df('0x37')],function(_0x5150fa){var _0x16e284={};_0x16e284[_0x5150fa]={'$like':'%'+_0x1de29c[_0x46df('0x35')][_0x46df('0x24')]+'%'};return _0x16e284;})});}_0x4b6dcd=_['merge']({},_0x4b6dcd,_0x1de29c[_0x46df('0x4d')]);return _0x594efa[_0x46df('0x13b')](_0x4b6dcd);}})[_0x46df('0x29')](function(_0x4ed5ad){if(_0x4ed5ad){_0x23b087=_0x4ed5ad[_0x46df('0x3c')];if(!_0x1de29c[_0x46df('0x35')][_0x46df('0xc6')](_0x46df('0xcc'))){_0x4b6dcd[_0x46df('0xcd')]=qs[_0x46df('0xcd')](_0x1de29c[_0x46df('0x35')]['limit']);_0x4b6dcd[_0x46df('0x17')]=qs[_0x46df('0x17')](_0x1de29c[_0x46df('0x35')][_0x46df('0x17')]);}return _0x594efa[_0x46df('0x13b')](_0x4b6dcd);}})['then'](function(_0x4e782a){if(_0x4e782a){return _0x4e782a?{'count':_0x23b087,'rows':_0x4e782a}:null;}})[_0x46df('0x29')](respondWithResult(_0x17d8eb,null))['catch'](handleError(_0x17d8eb,null));};exports[_0x46df('0x13c')]=function(_0x21e4b4,_0x424f56){var _0x557221={};var _0x5dc395={};var _0x112523;var _0x562ca3;return db['User'][_0x46df('0x89')]({'where':{'id':_0x21e4b4[_0x46df('0x53')]['id']}})['then'](handleEntityNotFound(_0x424f56,null))[_0x46df('0x29')](function(_0x1c1cd7){if(_0x1c1cd7){_0x112523=_0x1c1cd7;_0x5dc395[_0x46df('0x4a')]=_[_0x46df('0x47')](db[_0x46df('0x13d')][_0x46df('0x2c')]);_0x5dc395[_0x46df('0x35')]=_[_0x46df('0x47')](_0x21e4b4[_0x46df('0x35')]);_0x5dc395[_0x46df('0xc1')]=_[_0x46df('0x49')](_0x5dc395[_0x46df('0x4a')],_0x5dc395[_0x46df('0x35')]);_0x557221['attributes']=_[_0x46df('0x49')](_0x5dc395[_0x46df('0x4a')],qs[_0x46df('0x4b')](_0x21e4b4[_0x46df('0x35')][_0x46df('0x4b')]));_0x557221[_0x46df('0x37')]=_0x557221[_0x46df('0x37')][_0x46df('0x3c')]?_0x557221[_0x46df('0x37')]:_0x5dc395[_0x46df('0x4a')];_0x557221[_0x46df('0xc2')]=qs[_0x46df('0xc3')](_0x21e4b4['query'][_0x46df('0xc3')]);_0x557221[_0x46df('0x33')]=qs[_0x46df('0xc1')](_['pick'](_0x21e4b4[_0x46df('0x35')],_0x5dc395[_0x46df('0xc1')]));if(_0x21e4b4['query']['filter']){_0x557221[_0x46df('0x33')]=_[_0x46df('0xc5')](_0x557221[_0x46df('0x33')],{'$or':_[_0x46df('0x25')](_0x557221['attributes'],function(_0x20e681){var _0x35944b={};_0x35944b[_0x20e681]={'$like':'%'+_0x21e4b4[_0x46df('0x35')]['filter']+'%'};return _0x35944b;})});}_0x557221=_[_0x46df('0xc5')]({},_0x557221,_0x21e4b4[_0x46df('0x4d')]);return _0x112523[_0x46df('0x13c')](_0x557221);}})['then'](function(_0x19414f){if(_0x19414f){_0x562ca3=_0x19414f[_0x46df('0x3c')];if(!_0x21e4b4[_0x46df('0x35')][_0x46df('0xc6')](_0x46df('0xcc'))){_0x557221[_0x46df('0xcd')]=qs[_0x46df('0xcd')](_0x21e4b4[_0x46df('0x35')][_0x46df('0xcd')]);_0x557221[_0x46df('0x17')]=qs[_0x46df('0x17')](_0x21e4b4[_0x46df('0x35')][_0x46df('0x17')]);}return _0x112523[_0x46df('0x13c')](_0x557221);}})['then'](function(_0x3f5d3c){if(_0x3f5d3c){return _0x3f5d3c?{'count':_0x562ca3,'rows':_0x3f5d3c}:null;}})['then'](respondWithResult(_0x424f56,null))['catch'](handleError(_0x424f56,null));};exports[_0x46df('0x13e')]=function(_0x2c7f49,_0x2d4384){return db[_0x46df('0x34')][_0x46df('0x50')]({'where':{'id':_0x2c7f49[_0x46df('0x53')]['id']}})[_0x46df('0x29')](handleEntityNotFound(_0x2d4384,null))[_0x46df('0x29')](function(_0x559e6e){if(_0x559e6e){return _0x559e6e[_0x46df('0x13e')](_0x2c7f49['body'][_0x46df('0x98')],_[_0x46df('0x54')](_0x2c7f49['body'],[_0x46df('0x98'),'id'])||{});}})[_0x46df('0x29')](respondWithResult(_0x2d4384,null))[_0x46df('0x44')](handleError(_0x2d4384,null));};exports[_0x46df('0x13f')]=function(_0x305d91,_0x30a49d){return db['User'][_0x46df('0x50')]({'where':{'id':_0x305d91[_0x46df('0x53')]['id']}})['then'](handleEntityNotFound(_0x30a49d,null))['then'](function(_0x4b70d1){if(_0x4b70d1){return _0x4b70d1[_0x46df('0x13f')](_0x305d91[_0x46df('0x35')][_0x46df('0x98')]);}})['then'](respondWithStatusCode(_0x30a49d,null))['catch'](handleError(_0x30a49d,null));};exports[_0x46df('0x140')]=function(_0x41f9d0,_0x2a97a0){var _0x12962e={};var _0x54c16a={};var _0x1bf98b;var _0x534d9e;return db[_0x46df('0x34')][_0x46df('0x89')]({'where':{'id':_0x41f9d0[_0x46df('0x53')]['id']}})[_0x46df('0x29')](handleEntityNotFound(_0x2a97a0,null))[_0x46df('0x29')](function(_0x234c61){if(_0x234c61){_0x1bf98b=_0x234c61;_0x54c16a[_0x46df('0x4a')]=_[_0x46df('0x47')](db[_0x46df('0x141')]['rawAttributes']);_0x54c16a[_0x46df('0x35')]=_['keys'](_0x41f9d0[_0x46df('0x35')]);_0x54c16a[_0x46df('0xc1')]=_[_0x46df('0x49')](_0x54c16a['model'],_0x54c16a[_0x46df('0x35')]);_0x12962e['attributes']=_[_0x46df('0x49')](_0x54c16a['model'],qs['fields'](_0x41f9d0[_0x46df('0x35')][_0x46df('0x4b')]));_0x12962e[_0x46df('0x37')]=_0x12962e[_0x46df('0x37')][_0x46df('0x3c')]?_0x12962e[_0x46df('0x37')]:_0x54c16a['model'];_0x12962e[_0x46df('0xc2')]=qs[_0x46df('0xc3')](_0x41f9d0[_0x46df('0x35')]['sort']);_0x12962e['where']=qs[_0x46df('0xc1')](_['pick'](_0x41f9d0['query'],_0x54c16a[_0x46df('0xc1')]));if(_0x41f9d0['query'][_0x46df('0x24')]){_0x12962e['where']=_[_0x46df('0xc5')](_0x12962e[_0x46df('0x33')],{'$or':_[_0x46df('0x25')](_0x12962e[_0x46df('0x37')],function(_0x142c29){var _0x1200c5={};_0x1200c5[_0x142c29]={'$like':'%'+_0x41f9d0[_0x46df('0x35')][_0x46df('0x24')]+'%'};return _0x1200c5;})});}_0x12962e=_['merge']({},_0x12962e,_0x41f9d0[_0x46df('0x4d')]);return _0x1bf98b['getMailAccounts'](_0x12962e);}})[_0x46df('0x29')](function(_0x1165b7){if(_0x1165b7){_0x534d9e=_0x1165b7[_0x46df('0x3c')];if(!_0x41f9d0['query'][_0x46df('0xc6')](_0x46df('0xcc'))){_0x12962e[_0x46df('0xcd')]=qs[_0x46df('0xcd')](_0x41f9d0['query'][_0x46df('0xcd')]);_0x12962e['offset']=qs[_0x46df('0x17')](_0x41f9d0['query'][_0x46df('0x17')]);}return _0x1bf98b[_0x46df('0x140')](_0x12962e);}})[_0x46df('0x29')](function(_0x4b7ac3){if(_0x4b7ac3){return _0x4b7ac3?{'count':_0x534d9e,'rows':_0x4b7ac3}:null;}})[_0x46df('0x29')](respondWithResult(_0x2a97a0,null))[_0x46df('0x44')](handleError(_0x2a97a0,null));};exports['addMailAccounts']=function(_0x3c4e54,_0x434143){return db[_0x46df('0x34')][_0x46df('0x50')]({'where':{'id':_0x3c4e54['params']['id']}})['then'](handleEntityNotFound(_0x434143,null))[_0x46df('0x29')](function(_0x3b9cfa){if(_0x3b9cfa){return _0x3b9cfa[_0x46df('0x142')](_0x3c4e54['body'][_0x46df('0x98')],_['omit'](_0x3c4e54['body'],[_0x46df('0x98'),'id'])||{});}})[_0x46df('0x29')](respondWithResult(_0x434143,null))[_0x46df('0x44')](handleError(_0x434143,null));};exports[_0x46df('0x143')]=function(_0x142dc9,_0x355380){return db[_0x46df('0x34')]['find']({'where':{'id':_0x142dc9[_0x46df('0x53')]['id']}})[_0x46df('0x29')](handleEntityNotFound(_0x355380,null))['then'](function(_0x5d7aea){if(_0x5d7aea){return _0x5d7aea[_0x46df('0x143')](_0x142dc9['query'][_0x46df('0x98')]);}})[_0x46df('0x29')](respondWithStatusCode(_0x355380,null))[_0x46df('0x44')](handleError(_0x355380,null));};exports['getOpenchannelAccounts']=function(_0x4751d0,_0x5b74b4){var _0x4bb154={};var _0x21555a={};var _0x4f1509;var _0x544357;return db[_0x46df('0x34')][_0x46df('0x89')]({'where':{'id':_0x4751d0[_0x46df('0x53')]['id']}})['then'](handleEntityNotFound(_0x5b74b4,null))[_0x46df('0x29')](function(_0x29453c){if(_0x29453c){_0x4f1509=_0x29453c;_0x21555a[_0x46df('0x4a')]=_[_0x46df('0x47')](db['OpenchannelAccount']['rawAttributes']);_0x21555a[_0x46df('0x35')]=_[_0x46df('0x47')](_0x4751d0['query']);_0x21555a[_0x46df('0xc1')]=_[_0x46df('0x49')](_0x21555a[_0x46df('0x4a')],_0x21555a[_0x46df('0x35')]);_0x4bb154['attributes']=_['intersection'](_0x21555a['model'],qs['fields'](_0x4751d0[_0x46df('0x35')][_0x46df('0x4b')]));_0x4bb154[_0x46df('0x37')]=_0x4bb154[_0x46df('0x37')][_0x46df('0x3c')]?_0x4bb154[_0x46df('0x37')]:_0x21555a[_0x46df('0x4a')];_0x4bb154[_0x46df('0xc2')]=qs[_0x46df('0xc3')](_0x4751d0[_0x46df('0x35')][_0x46df('0xc3')]);_0x4bb154[_0x46df('0x33')]=qs['filters'](_[_0x46df('0xc4')](_0x4751d0[_0x46df('0x35')],_0x21555a['filters']));if(_0x4751d0['query'][_0x46df('0x24')]){_0x4bb154['where']=_[_0x46df('0xc5')](_0x4bb154[_0x46df('0x33')],{'$or':_['map'](_0x4bb154[_0x46df('0x37')],function(_0x1503d7){var _0x171a48={};_0x171a48[_0x1503d7]={'$like':'%'+_0x4751d0[_0x46df('0x35')]['filter']+'%'};return _0x171a48;})});}_0x4bb154=_[_0x46df('0xc5')]({},_0x4bb154,_0x4751d0[_0x46df('0x4d')]);return _0x4f1509[_0x46df('0x144')](_0x4bb154);}})[_0x46df('0x29')](function(_0x1e3ce8){if(_0x1e3ce8){_0x544357=_0x1e3ce8[_0x46df('0x3c')];if(!_0x4751d0[_0x46df('0x35')][_0x46df('0xc6')]('nolimit')){_0x4bb154[_0x46df('0xcd')]=qs['limit'](_0x4751d0['query'][_0x46df('0xcd')]);_0x4bb154['offset']=qs['offset'](_0x4751d0['query'][_0x46df('0x17')]);}return _0x4f1509[_0x46df('0x144')](_0x4bb154);}})[_0x46df('0x29')](function(_0x575345){if(_0x575345){return _0x575345?{'count':_0x544357,'rows':_0x575345}:null;}})[_0x46df('0x29')](respondWithResult(_0x5b74b4,null))[_0x46df('0x44')](handleError(_0x5b74b4,null));};exports[_0x46df('0x145')]=function(_0xb40de3,_0x1d4f4b){return db[_0x46df('0x34')]['find']({'where':{'id':_0xb40de3[_0x46df('0x53')]['id']}})[_0x46df('0x29')](handleEntityNotFound(_0x1d4f4b,null))[_0x46df('0x29')](function(_0xed357c){if(_0xed357c){return _0xed357c[_0x46df('0x145')](_0xb40de3['body']['ids'],_[_0x46df('0x54')](_0xb40de3[_0x46df('0x4f')],['ids','id'])||{});}})[_0x46df('0x29')](respondWithResult(_0x1d4f4b,null))[_0x46df('0x44')](handleError(_0x1d4f4b,null));};exports[_0x46df('0x146')]=function(_0x513cd4,_0x58c357){return db[_0x46df('0x34')]['find']({'where':{'id':_0x513cd4[_0x46df('0x53')]['id']}})['then'](handleEntityNotFound(_0x58c357,null))[_0x46df('0x29')](function(_0x48353a){if(_0x48353a){return _0x48353a['removeOpenchannelAccounts'](_0x513cd4['query'][_0x46df('0x98')]);}})[_0x46df('0x29')](respondWithStatusCode(_0x58c357,null))['catch'](handleError(_0x58c357,null));};exports['getSmsAccounts']=function(_0x3ea8b7,_0x35e489){var _0x317d26={};var _0x522320={};var _0xe9693f;var _0x339021;return db[_0x46df('0x34')][_0x46df('0x89')]({'where':{'id':_0x3ea8b7[_0x46df('0x53')]['id']}})[_0x46df('0x29')](handleEntityNotFound(_0x35e489,null))[_0x46df('0x29')](function(_0x21080d){if(_0x21080d){_0xe9693f=_0x21080d;_0x522320[_0x46df('0x4a')]=_['keys'](db[_0x46df('0x147')][_0x46df('0x2c')]);_0x522320[_0x46df('0x35')]=_[_0x46df('0x47')](_0x3ea8b7[_0x46df('0x35')]);_0x522320[_0x46df('0xc1')]=_[_0x46df('0x49')](_0x522320['model'],_0x522320[_0x46df('0x35')]);_0x317d26[_0x46df('0x37')]=_[_0x46df('0x49')](_0x522320[_0x46df('0x4a')],qs[_0x46df('0x4b')](_0x3ea8b7[_0x46df('0x35')][_0x46df('0x4b')]));_0x317d26[_0x46df('0x37')]=_0x317d26[_0x46df('0x37')]['length']?_0x317d26[_0x46df('0x37')]:_0x522320[_0x46df('0x4a')];_0x317d26[_0x46df('0xc2')]=qs[_0x46df('0xc3')](_0x3ea8b7[_0x46df('0x35')][_0x46df('0xc3')]);_0x317d26[_0x46df('0x33')]=qs[_0x46df('0xc1')](_['pick'](_0x3ea8b7[_0x46df('0x35')],_0x522320['filters']));if(_0x3ea8b7[_0x46df('0x35')][_0x46df('0x24')]){_0x317d26[_0x46df('0x33')]=_[_0x46df('0xc5')](_0x317d26[_0x46df('0x33')],{'$or':_[_0x46df('0x25')](_0x317d26[_0x46df('0x37')],function(_0x1bfdcc){var _0x493a90={};_0x493a90[_0x1bfdcc]={'$like':'%'+_0x3ea8b7[_0x46df('0x35')][_0x46df('0x24')]+'%'};return _0x493a90;})});}_0x317d26=_[_0x46df('0xc5')]({},_0x317d26,_0x3ea8b7[_0x46df('0x4d')]);return _0xe9693f[_0x46df('0x148')](_0x317d26);}})[_0x46df('0x29')](function(_0x5ac501){if(_0x5ac501){_0x339021=_0x5ac501[_0x46df('0x3c')];if(!_0x3ea8b7[_0x46df('0x35')]['hasOwnProperty'](_0x46df('0xcc'))){_0x317d26['limit']=qs['limit'](_0x3ea8b7[_0x46df('0x35')][_0x46df('0xcd')]);_0x317d26['offset']=qs[_0x46df('0x17')](_0x3ea8b7[_0x46df('0x35')][_0x46df('0x17')]);}return _0xe9693f[_0x46df('0x148')](_0x317d26);}})[_0x46df('0x29')](function(_0x39ccfa){if(_0x39ccfa){return _0x39ccfa?{'count':_0x339021,'rows':_0x39ccfa}:null;}})[_0x46df('0x29')](respondWithResult(_0x35e489,null))['catch'](handleError(_0x35e489,null));};exports['addSmsAccounts']=function(_0x3c89f3,_0x38ac4d){return db['User'][_0x46df('0x50')]({'where':{'id':_0x3c89f3[_0x46df('0x53')]['id']}})[_0x46df('0x29')](handleEntityNotFound(_0x38ac4d,null))[_0x46df('0x29')](function(_0x2e4fa7){if(_0x2e4fa7){return _0x2e4fa7['addSmsAccounts'](_0x3c89f3[_0x46df('0x4f')]['ids'],_['omit'](_0x3c89f3[_0x46df('0x4f')],[_0x46df('0x98'),'id'])||{});}})[_0x46df('0x29')](respondWithResult(_0x38ac4d,null))[_0x46df('0x44')](handleError(_0x38ac4d,null));};exports[_0x46df('0x149')]=function(_0x9ae1c5,_0x3e331a){return db[_0x46df('0x34')]['find']({'where':{'id':_0x9ae1c5['params']['id']}})['then'](handleEntityNotFound(_0x3e331a,null))[_0x46df('0x29')](function(_0x2e029d){if(_0x2e029d){return _0x2e029d[_0x46df('0x149')](_0x9ae1c5[_0x46df('0x35')]['ids']);}})[_0x46df('0x29')](respondWithStatusCode(_0x3e331a,null))['catch'](handleError(_0x3e331a,null));};exports[_0x46df('0x14a')]=function(_0x25b8ed,_0x5175c4){var _0x1cc5b9={};var _0x325449={};var _0x56fd84;var _0x466ed9;return db[_0x46df('0x34')][_0x46df('0x89')]({'where':{'id':_0x25b8ed['params']['id']}})[_0x46df('0x29')](handleEntityNotFound(_0x5175c4,null))[_0x46df('0x29')](function(_0xe776bb){if(_0xe776bb){_0x56fd84=_0xe776bb;_0x325449[_0x46df('0x4a')]=_[_0x46df('0x47')](db[_0x46df('0x14b')][_0x46df('0x2c')]);_0x325449['query']=_[_0x46df('0x47')](_0x25b8ed[_0x46df('0x35')]);_0x325449['filters']=_[_0x46df('0x49')](_0x325449[_0x46df('0x4a')],_0x325449[_0x46df('0x35')]);_0x1cc5b9[_0x46df('0x37')]=_[_0x46df('0x49')](_0x325449[_0x46df('0x4a')],qs[_0x46df('0x4b')](_0x25b8ed[_0x46df('0x35')][_0x46df('0x4b')]));_0x1cc5b9['attributes']=_0x1cc5b9[_0x46df('0x37')][_0x46df('0x3c')]?_0x1cc5b9['attributes']:_0x325449[_0x46df('0x4a')];_0x1cc5b9[_0x46df('0xc2')]=qs['sort'](_0x25b8ed[_0x46df('0x35')][_0x46df('0xc3')]);_0x1cc5b9[_0x46df('0x33')]=qs[_0x46df('0xc1')](_[_0x46df('0xc4')](_0x25b8ed[_0x46df('0x35')],_0x325449[_0x46df('0xc1')]));if(_0x25b8ed[_0x46df('0x35')]['filter']){_0x1cc5b9[_0x46df('0x33')]=_[_0x46df('0xc5')](_0x1cc5b9[_0x46df('0x33')],{'$or':_['map'](_0x1cc5b9[_0x46df('0x37')],function(_0x5a531d){var _0x3f5f89={};_0x3f5f89[_0x5a531d]={'$like':'%'+_0x25b8ed[_0x46df('0x35')]['filter']+'%'};return _0x3f5f89;})});}_0x1cc5b9=_[_0x46df('0xc5')]({},_0x1cc5b9,_0x25b8ed[_0x46df('0x4d')]);return _0x56fd84[_0x46df('0x14a')](_0x1cc5b9);}})[_0x46df('0x29')](function(_0x5e92f9){if(_0x5e92f9){_0x466ed9=_0x5e92f9[_0x46df('0x3c')];if(!_0x25b8ed[_0x46df('0x35')][_0x46df('0xc6')](_0x46df('0xcc'))){_0x1cc5b9[_0x46df('0xcd')]=qs[_0x46df('0xcd')](_0x25b8ed[_0x46df('0x35')][_0x46df('0xcd')]);_0x1cc5b9[_0x46df('0x17')]=qs[_0x46df('0x17')](_0x25b8ed[_0x46df('0x35')][_0x46df('0x17')]);}return _0x56fd84[_0x46df('0x14a')](_0x1cc5b9);}})[_0x46df('0x29')](function(_0x50abfd){if(_0x50abfd){return _0x50abfd?{'count':_0x466ed9,'rows':_0x50abfd}:null;}})[_0x46df('0x29')](respondWithResult(_0x5175c4,null))[_0x46df('0x44')](handleError(_0x5175c4,null));};exports[_0x46df('0x14c')]=function(_0x40da96,_0x21422d){return db[_0x46df('0x34')][_0x46df('0x50')]({'where':{'id':_0x40da96[_0x46df('0x53')]['id']}})[_0x46df('0x29')](handleEntityNotFound(_0x21422d,null))['then'](function(_0xdcdb46){if(_0xdcdb46){return _0xdcdb46[_0x46df('0x14c')](_0x40da96[_0x46df('0x4f')][_0x46df('0x98')],_[_0x46df('0x54')](_0x40da96[_0x46df('0x4f')],[_0x46df('0x98'),'id'])||{});}})[_0x46df('0x29')](respondWithResult(_0x21422d,null))['catch'](handleError(_0x21422d,null));};exports[_0x46df('0x14d')]=function(_0x5403b0,_0x2af91f){return db['User'][_0x46df('0x50')]({'where':{'id':_0x5403b0[_0x46df('0x53')]['id']}})[_0x46df('0x29')](handleEntityNotFound(_0x2af91f,null))[_0x46df('0x29')](function(_0x287246){if(_0x287246){return _0x287246[_0x46df('0x14d')](_0x5403b0['query'][_0x46df('0x98')]);}})[_0x46df('0x29')](respondWithStatusCode(_0x2af91f,null))[_0x46df('0x44')](handleError(_0x2af91f,null));};exports['getWhatsappAccounts']=function(_0x4cb61e,_0x2762d5){var _0x5cfa73={};var _0x4de885={};var _0x178609;var _0x33940e;return db[_0x46df('0x34')]['findOne']({'where':{'id':_0x4cb61e[_0x46df('0x53')]['id']}})[_0x46df('0x29')](handleEntityNotFound(_0x2762d5,null))[_0x46df('0x29')](function(_0x26e70b){if(_0x26e70b){_0x178609=_0x26e70b;_0x4de885[_0x46df('0x4a')]=_[_0x46df('0x47')](db['WhatsappAccount'][_0x46df('0x2c')]);_0x4de885[_0x46df('0x35')]=_[_0x46df('0x47')](_0x4cb61e[_0x46df('0x35')]);_0x4de885[_0x46df('0xc1')]=_['intersection'](_0x4de885[_0x46df('0x4a')],_0x4de885[_0x46df('0x35')]);_0x5cfa73[_0x46df('0x37')]=_[_0x46df('0x49')](_0x4de885[_0x46df('0x4a')],qs[_0x46df('0x4b')](_0x4cb61e[_0x46df('0x35')][_0x46df('0x4b')]));_0x5cfa73[_0x46df('0x37')]=_0x5cfa73['attributes']['length']?_0x5cfa73['attributes']:_0x4de885[_0x46df('0x4a')];_0x5cfa73['order']=qs[_0x46df('0xc3')](_0x4cb61e[_0x46df('0x35')][_0x46df('0xc3')]);_0x5cfa73[_0x46df('0x33')]=qs['filters'](_['pick'](_0x4cb61e['query'],_0x4de885[_0x46df('0xc1')]));if(_0x4cb61e[_0x46df('0x35')][_0x46df('0x24')]){_0x5cfa73[_0x46df('0x33')]=_['merge'](_0x5cfa73[_0x46df('0x33')],{'$or':_[_0x46df('0x25')](_0x5cfa73[_0x46df('0x37')],function(_0x354b7b){var _0xf88fed={};_0xf88fed[_0x354b7b]={'$like':'%'+_0x4cb61e['query'][_0x46df('0x24')]+'%'};return _0xf88fed;})});}_0x5cfa73=_[_0x46df('0xc5')]({},_0x5cfa73,_0x4cb61e['options']);return _0x178609[_0x46df('0x14e')](_0x5cfa73);}})['then'](function(_0x44b8c8){if(_0x44b8c8){_0x33940e=_0x44b8c8[_0x46df('0x3c')];if(!_0x4cb61e[_0x46df('0x35')][_0x46df('0xc6')](_0x46df('0xcc'))){_0x5cfa73['limit']=qs[_0x46df('0xcd')](_0x4cb61e[_0x46df('0x35')][_0x46df('0xcd')]);_0x5cfa73['offset']=qs[_0x46df('0x17')](_0x4cb61e[_0x46df('0x35')]['offset']);}return _0x178609[_0x46df('0x14e')](_0x5cfa73);}})['then'](function(_0x36bf57){if(_0x36bf57){return _0x36bf57?{'count':_0x33940e,'rows':_0x36bf57}:null;}})['then'](respondWithResult(_0x2762d5,null))[_0x46df('0x44')](handleError(_0x2762d5,null));};exports['addWhatsappAccounts']=function(_0x53895d,_0x3e45b8){return db[_0x46df('0x34')][_0x46df('0x50')]({'where':{'id':_0x53895d[_0x46df('0x53')]['id']}})[_0x46df('0x29')](handleEntityNotFound(_0x3e45b8,null))[_0x46df('0x29')](function(_0x27740c){if(_0x27740c){return _0x27740c[_0x46df('0x14f')](_0x53895d[_0x46df('0x4f')][_0x46df('0x98')],_[_0x46df('0x54')](_0x53895d[_0x46df('0x4f')],[_0x46df('0x98'),'id'])||{});}})[_0x46df('0x29')](respondWithResult(_0x3e45b8,null))[_0x46df('0x44')](handleError(_0x3e45b8,null));};exports['removeWhatsappAccounts']=function(_0x41eb51,_0x4f5d00){return db['User'][_0x46df('0x50')]({'where':{'id':_0x41eb51[_0x46df('0x53')]['id']}})[_0x46df('0x29')](handleEntityNotFound(_0x4f5d00,null))[_0x46df('0x29')](function(_0x344148){if(_0x344148){return _0x344148['removeWhatsappAccounts'](_0x41eb51['query']['ids']);}})[_0x46df('0x29')](respondWithStatusCode(_0x4f5d00,null))[_0x46df('0x44')](handleError(_0x4f5d00,null));};exports[_0x46df('0x150')]=function(_0x198aa3,_0x37012b){var _0x2cd048={};var _0x3c6716={};var _0x201b77;var _0x38715c;return db[_0x46df('0x34')][_0x46df('0x89')]({'where':{'id':_0x198aa3[_0x46df('0x53')]['id']}})['then'](handleEntityNotFound(_0x37012b,null))[_0x46df('0x29')](function(_0x41b7f0){if(_0x41b7f0){_0x201b77=_0x41b7f0;_0x3c6716[_0x46df('0x4a')]=_['keys'](db[_0x46df('0x151')][_0x46df('0x2c')]);_0x3c6716[_0x46df('0x35')]=_[_0x46df('0x47')](_0x198aa3[_0x46df('0x35')]);_0x3c6716[_0x46df('0xc1')]=_[_0x46df('0x49')](_0x3c6716[_0x46df('0x4a')],_0x3c6716[_0x46df('0x35')]);_0x2cd048['attributes']=_['intersection'](_0x3c6716[_0x46df('0x4a')],qs[_0x46df('0x4b')](_0x198aa3[_0x46df('0x35')]['fields']));_0x2cd048[_0x46df('0x37')]=_0x2cd048[_0x46df('0x37')]['length']?_0x2cd048[_0x46df('0x37')]:_0x3c6716[_0x46df('0x4a')];_0x2cd048['order']=qs['sort'](_0x198aa3[_0x46df('0x35')][_0x46df('0xc3')]);_0x2cd048[_0x46df('0x33')]=qs[_0x46df('0xc1')](_[_0x46df('0xc4')](_0x198aa3[_0x46df('0x35')],_0x3c6716[_0x46df('0xc1')]));if(_0x198aa3[_0x46df('0x35')][_0x46df('0x24')]){_0x2cd048[_0x46df('0x33')]=_[_0x46df('0xc5')](_0x2cd048['where'],{'$or':_['map'](_0x2cd048['attributes'],function(_0x423d22){var _0x457d92={};_0x457d92[_0x423d22]={'$like':'%'+_0x198aa3[_0x46df('0x35')]['filter']+'%'};return _0x457d92;})});}_0x2cd048=_[_0x46df('0xc5')]({},_0x2cd048,_0x198aa3[_0x46df('0x4d')]);return _0x201b77[_0x46df('0x150')](_0x2cd048);}})[_0x46df('0x29')](function(_0x259be3){if(_0x259be3){_0x38715c=_0x259be3[_0x46df('0x3c')];if(!_0x198aa3[_0x46df('0x35')][_0x46df('0xc6')](_0x46df('0xcc'))){_0x2cd048[_0x46df('0xcd')]=qs[_0x46df('0xcd')](_0x198aa3[_0x46df('0x35')]['limit']);_0x2cd048[_0x46df('0x17')]=qs[_0x46df('0x17')](_0x198aa3[_0x46df('0x35')]['offset']);}return _0x201b77[_0x46df('0x150')](_0x2cd048);}})[_0x46df('0x29')](function(_0xd6c0a7){if(_0xd6c0a7){return _0xd6c0a7?{'count':_0x38715c,'rows':_0xd6c0a7}:null;}})['then'](respondWithResult(_0x37012b,null))['catch'](handleError(_0x37012b,null));};exports[_0x46df('0x152')]=function(_0x56417a,_0x2d9d9e){return db[_0x46df('0x34')][_0x46df('0x50')]({'where':{'id':_0x56417a[_0x46df('0x53')]['id']}})['then'](handleEntityNotFound(_0x2d9d9e,null))['then'](function(_0x7d5fb4){if(_0x7d5fb4){return _0x7d5fb4[_0x46df('0x152')](_0x56417a['body'][_0x46df('0x98')],_[_0x46df('0x54')](_0x56417a[_0x46df('0x4f')],['ids','id'])||{});}})[_0x46df('0x29')](respondWithResult(_0x2d9d9e,null))['catch'](handleError(_0x2d9d9e,null));};exports[_0x46df('0x153')]=function(_0x49653f,_0x3f817d){return db[_0x46df('0x34')]['find']({'where':{'id':_0x49653f['params']['id']}})['then'](handleEntityNotFound(_0x3f817d,null))[_0x46df('0x29')](function(_0x16b2c2){if(_0x16b2c2){return _0x16b2c2[_0x46df('0x153')](_0x49653f[_0x46df('0x35')][_0x46df('0x98')]);}})[_0x46df('0x29')](respondWithStatusCode(_0x3f817d,null))[_0x46df('0x44')](handleError(_0x3f817d,null));};exports[_0x46df('0x154')]=function(_0x79a692,_0x3bfec3){var _0x4c4009={},_0x22ce6f={},_0x31bf70={'count':0x0,'rows':[]};var _0xf0175c=db[_0x46df('0x155')][_0x46df('0x2c')];_0x22ce6f[_0x46df('0x4a')]=_[_0x46df('0x47')](_0xf0175c);_0x22ce6f[_0x46df('0x35')]=_[_0x46df('0x47')](_0x79a692[_0x46df('0x35')]);_0x22ce6f['filters']=_['intersection'](_0x22ce6f['model'],_0x22ce6f['query']);_0x22ce6f['filters']=_[_0x46df('0xf5')](_0x22ce6f[_0x46df('0xc1')],['$and',_0x46df('0x156'),_0x46df('0x157'),_0x46df('0x158'),_0x46df('0x159'),_0x46df('0x15a'),_0x46df('0x15b'),_0x46df('0x15c'),_0x46df('0x15d'),'$between','$notBetween',_0x46df('0x15e'),_0x46df('0x15f'),'$like',_0x46df('0x160'),_0x46df('0x161'),'$notILike',_0x46df('0x162'),_0x46df('0x163'),_0x46df('0x164'),_0x46df('0x165'),_0x46df('0x166')]);_0x4c4009['attributes']=_[_0x46df('0x49')](_0x22ce6f[_0x46df('0x4a')],qs[_0x46df('0x4b')](_0x79a692[_0x46df('0x35')][_0x46df('0x4b')]));_0x4c4009[_0x46df('0x37')]=_0x4c4009[_0x46df('0x37')]['length']?_0x4c4009[_0x46df('0x37')]:_0x22ce6f[_0x46df('0x4a')];if(!_0x79a692[_0x46df('0x35')][_0x46df('0xc6')](_0x46df('0xcc'))){_0x4c4009[_0x46df('0xcd')]=qs[_0x46df('0xcd')](_0x79a692[_0x46df('0x35')][_0x46df('0xcd')]);_0x4c4009['offset']=qs[_0x46df('0x17')](_0x79a692[_0x46df('0x35')][_0x46df('0x17')]);}_0x4c4009[_0x46df('0xc2')]=qs[_0x46df('0xc3')](_0x79a692[_0x46df('0x35')][_0x46df('0xc3')]);_0x4c4009[_0x46df('0x33')]=qs['filters'](_[_0x46df('0xc4')](_0x79a692[_0x46df('0x35')],_0x22ce6f[_0x46df('0xc1')]));if(_0x79a692[_0x46df('0x35')][_0x46df('0x24')]){_0x4c4009[_0x46df('0x33')]=_[_0x46df('0xc5')](_0x4c4009[_0x46df('0x33')],{'$or':_[_0x46df('0x25')](_0x4c4009[_0x46df('0x37')],function(_0x46366d){var _0x780d89={};_0x780d89[_0x46366d]={'$like':'%'+_0x79a692[_0x46df('0x35')][_0x46df('0x24')]+'%'};return _0x780d89;})});}_0x4c4009[_0x46df('0x33')]={'$and':[_0x4c4009['where'],{'$or':[{'UserId':_0x79a692[_0x46df('0x53')]['id']},{'OwnerId':_0x79a692[_0x46df('0x53')]['id']}]}]};_0x4c4009=_[_0x46df('0xc5')]({},_0x4c4009,_0x79a692[_0x46df('0x4d')]);var _0x5c6360={'where':_0x4c4009[_0x46df('0x33')]};return db['CmHopper'][_0x46df('0x19')](_0x5c6360)['then'](function(_0x148135){_0x31bf70[_0x46df('0x19')]=_0x148135;if(_0x79a692[_0x46df('0x35')][_0x46df('0x4c')]){_0x4c4009[_0x46df('0x36')]=[{'attributes':['id',_0x46df('0x167'),'lastName','phone'],'model':db[_0x46df('0xc0')],'as':'Contact'},{'attributes':['id','name','dialActive'],'model':db[_0x46df('0x9c')],'as':_0x46df('0xce')}];}return db[_0x46df('0x155')][_0x46df('0x39')](_0x4c4009);})[_0x46df('0x29')](function(_0x4e29f8){_0x31bf70[_0x46df('0x3b')]=_0x4e29f8;return _0x31bf70;})['then'](respondWithFilteredResult(_0x3bfec3,_0x4c4009))['catch'](handleError(_0x3bfec3,null));};exports[_0x46df('0x168')]=function(_0x71300e,_0x35658d){if(!_[_0x46df('0x5b')](_0x71300e[_0x46df('0x21')]['id'])&&(_0x71300e[_0x46df('0x21')][_0x46df('0x1f')]==_0x46df('0x20')||_0x71300e[_0x46df('0x21')][_0x46df('0x1f')]=='user')){return db[_0x46df('0x34')][_0x46df('0x89')]({'where':{'id':_0x71300e['params']['id']},'raw':!![]})[_0x46df('0x29')](function(_0x5dad3d){return authService['retrieveApiKey'](_0x5dad3d);})['then'](function(_0x45ebf6){if(_0x45ebf6){return _0x35658d[_0x46df('0x15')](0xc8)['json']({'api_key':_0x45ebf6[_0x46df('0x169')]});}else{return _0x35658d[_0x46df('0x15')](0xcc)[_0x46df('0x16a')]({'message':_0x46df('0x16b')});}})['catch'](handleError(_0x35658d,0x193));}else{return _0x35658d['status'](0x191)['json']({'message':'You\x20don\x27t\x20have\x20sufficient\x20privileges\x20to\x20access\x20this\x20resource.'});}};exports['createApiKey']=function(_0x7ffa1d,_0x6083ab){if(!_[_0x46df('0x5b')](_0x7ffa1d['user']['id'])&&(_0x7ffa1d['user'][_0x46df('0x1f')]==_0x46df('0x20')||_0x7ffa1d[_0x46df('0x21')]['role']==_0x46df('0x21'))){return db[_0x46df('0x34')][_0x46df('0x50')]({'where':{'id':_0x7ffa1d[_0x46df('0x53')]['id']}})['then'](function(_0x245940){return authService[_0x46df('0x16c')](_0x245940);})[_0x46df('0x29')](function(_0x2457da){return db[_0x46df('0x34')][_0x46df('0x1c')]({'apiKeyIat':_0x2457da[_0x46df('0x16d')],'apiKeyNonce':_0x2457da[_0x46df('0x16e')]},{'where':{'id':_0x7ffa1d[_0x46df('0x53')]['id']}})['then'](function(){return _0x6083ab[_0x46df('0x15')](0xc8)[_0x46df('0x16a')]({'api_key':_0x2457da['token']});});})['catch'](handleError(_0x6083ab,0x193));}else{return _0x6083ab[_0x46df('0x15')](0x191)['json']({'message':_0x46df('0x16f')});}};exports[_0x46df('0x170')]=function(_0x220744,_0xf15732){if(!_[_0x46df('0x5b')](_0x220744['user']['id'])&&(_0x220744[_0x46df('0x21')][_0x46df('0x1f')]==_0x46df('0x20')||_0x220744[_0x46df('0x21')][_0x46df('0x1f')]=='user')){return db['User'][_0x46df('0x50')]({'where':{'id':_0x220744[_0x46df('0x53')]['id']}})[_0x46df('0x29')](handleEntityNotFound(_0xf15732,null))[_0x46df('0x29')](function(_0x861764){if(_0x861764&&_0x861764[_0x46df('0x171')]&&_0x861764['apiKeyIat'])return _0x861764;else throw{'message':_0x46df('0x172')};})[_0x46df('0x29')](function(_0x4d09f9){return db[_0x46df('0x34')]['update']({'apiKeyNonce':null,'apiKeyIat':null},{'where':{'id':_0x220744[_0x46df('0x53')]['id']}});})[_0x46df('0x29')](respondWithStatusCode(_0xf15732,0xc8))['catch'](handleError(_0xf15732,0x193));}else{return _0xf15732[_0x46df('0x15')](0x191)[_0x46df('0x16a')]({'message':_0x46df('0x16f')});}};exports[_0x46df('0x173')]=function(_0x54cbd7,_0x4259eb){var _0x5c2550=_0x54cbd7['user'][_0x46df('0x1e')]({'plain':!![]});if(!_0x5c2550){return _0x4259eb[_0x46df('0x15')](0x191)[_0x46df('0x2b')](_0x46df('0x174'));}else{return _0x4259eb[_0x46df('0x15')](0xc8)[_0x46df('0x16a')](_0x5c2550);}};exports[_0x46df('0x175')]=function(_0x56c5ed,_0x465bf3){var _0x3e0529={'offset':0x0},_0x47c632={'count':0x0,'rows':[]};Promise[_0x46df('0x176')]()[_0x46df('0x29')](function(){if(!_0x56c5ed[_0x46df('0x35')][_0x46df('0x24')]&&!_0x56c5ed[_0x46df('0x35')]['teams']&&!_0x56c5ed[_0x46df('0x35')][_0x46df('0x177')])return[];return Promise[_0x46df('0x176')]()[_0x46df('0x29')](function(){var _0x447d7b=[];if(!_['isEmpty'](_0x56c5ed[_0x46df('0x35')][_0x46df('0x178')])){_0x447d7b['push'](db[_0x46df('0x10a')][_0x46df('0x39')]({'attributes':['id',_0x46df('0x27')],'where':{'id':_0x56c5ed['query'][_0x46df('0x178')]}}));}if(!_[_0x46df('0x179')](_0x56c5ed[_0x46df('0x35')][_0x46df('0x177')])){_0x447d7b[_0x46df('0x38')](db['VoiceQueue']['findAll']({'attributes':['id',_0x46df('0x27')],'type':_0x46df('0x17a'),'where':{'id':_0x56c5ed[_0x46df('0x35')][_0x46df('0x177')]}}));}return Promise['all'](_0x447d7b);})[_0x46df('0x29')](function(_0x525163){var _0x54b8dd=_[_0x46df('0x118')](_0x525163)['map'](function(_0x2cb209){return _0x2cb209[_0x46df('0x122')]({'attributes':['id',_0x46df('0x27'),_0x46df('0x59'),_0x46df('0x9d')],'raw':!![]});});return Promise['all'](_0x54b8dd);})[_0x46df('0x29')](function(_0x5363c5){var _0x1d3cc7=_['flatten'](_0x5363c5);if(!_0x56c5ed['query'][_0x46df('0x24')])return _0x1d3cc7;if(_['isEmpty'](_0x1d3cc7)){return db[_0x46df('0x34')]['findAll']({'attributes':['id','name',_0x46df('0x59'),_0x46df('0x9d')],'where':{'role':_0x46df('0x22'),'$or':[db[_0x46df('0x5d')]['where'](db[_0x46df('0x5d')]['fn'](_0x46df('0x17b'),db[_0x46df('0x5d')][_0x46df('0x17c')](_0x46df('0x27'))),{'$like':'%'+_0x56c5ed[_0x46df('0x35')]['filter'][_0x46df('0x94')]()+'%'}),{'internal':{'$like':'%'+_0x56c5ed['query']['filter']+'%'}}]},'raw':!![]});}else{return _(_0x1d3cc7)[_0x46df('0x118')]()['filter'](function(_0x2c9032){return _0x2c9032[_0x46df('0x27')]['toLowerCase']()[_0x46df('0x30')](_0x56c5ed[_0x46df('0x35')][_0x46df('0x24')][_0x46df('0x94')]())||_0x2c9032['internal']['toString']()[_0x46df('0x30')](_0x56c5ed[_0x46df('0x35')]['filter']);})['value']();}})['then'](function(_0x166a3e){var _0x257a63='name';var _0x112079='asc';if(_0x56c5ed['query']['sort']){var _0x112079=_0x56c5ed[_0x46df('0x35')][_0x46df('0xc3')][0x0]==='-'?'desc':'asc';var _0x257a63=_0x112079===_0x46df('0x17d')?_0x56c5ed[_0x46df('0x35')][_0x46df('0xc3')]:_0x56c5ed[_0x46df('0x35')]['sort'][_0x46df('0x17e')](0x1);}return _(_0x166a3e)[_0x46df('0x17f')]('id')[_0x46df('0x180')]([function(_0x59b0ce){return _0x257a63===_0x46df('0x27')?_0x59b0ce[_0x257a63][_0x46df('0x94')]():_0x59b0ce[_0x257a63];}],[_0x112079])[_0x46df('0x25')](function(_0x508e0f){return _[_0x46df('0xc4')](_0x508e0f,['id',_0x46df('0x27'),_0x46df('0x59'),'online']);})[_0x46df('0x26')]();})[_0x46df('0x29')](function(_0xd78d65){return client['request'](_0x46df('0x77'),_0x56c5ed)[_0x46df('0x29')](function(_0x10a003){if(_0x10a003['error'])throw new Error(_0x46df('0x181'));var _0x5e1e1e=_0x10a003['result'];var _0x59e576=jayson[_0x46df('0xb')][_0x46df('0xc')]({'port':0x232c});return _0x59e576[_0x46df('0x182')]('Agents',_0x56c5ed)[_0x46df('0x29')](function(_0x15a2f1){if(_0x15a2f1['error'])throw new Error(_0x46df('0x183'));var _0x916444=_0x15a2f1['result'];return _[_0x46df('0xc5')]({},_0x916444,_0x5e1e1e);});})['then'](function(_0x13804b){return _[_0x46df('0x25')](_0xd78d65,function(_0x221719){var _0x3da085=_[_0x46df('0x50')](_0x13804b[_0x46df('0x3b')],['id',_0x221719['id']]);if(!_0x3da085||!_0x221719[_0x46df('0x9d')]){_0x221719[_0x46df('0x15')]=_0x46df('0x184');}else if(_0x3da085['voicePause']){_0x221719[_0x46df('0x15')]=_0x46df('0xf8');}else{_0x221719['status']=_[_0x46df('0x30')]([_0x46df('0x185'),_0x46df('0x186'),_0x46df('0x187'),_0x46df('0x188'),null,undefined],_0x3da085[_0x46df('0x189')])?_0x46df('0x9d'):_0x46df('0x18a');}return _0x221719;});});});})['then'](function(_0x4bc49a){if(!_0x56c5ed[_0x46df('0x35')][_0x46df('0xc6')]('nolimit')){_0x3e0529[_0x46df('0xcd')]=qs[_0x46df('0xcd')](_0x56c5ed['query'][_0x46df('0xcd')]||0xa);_0x3e0529['offset']=qs['offset'](_0x56c5ed[_0x46df('0x35')][_0x46df('0x17')]);}_0x47c632[_0x46df('0x19')]=_0x4bc49a[_0x46df('0x3c')];_0x47c632[_0x46df('0x3b')]=_0x3e0529[_0x46df('0xcd')]?_0x4bc49a[_0x46df('0x18b')](_0x3e0529['offset'],_0x3e0529[_0x46df('0x17')]+_0x3e0529[_0x46df('0xcd')]):_0x4bc49a;return _0x47c632;})[_0x46df('0x29')](respondWithFilteredResult(_0x465bf3,_0x3e0529))[_0x46df('0x44')](handleError(_0x465bf3,null));};function get_open_tabs(_0x1d2790,_0x445fd5){var _0x351c2a=_0x1d2790['charAt'](0x0)[_0x46df('0x18c')]()+_0x1d2790[_0x46df('0x18b')](0x1);var _0x13596c={'type':db[_0x46df('0x82')][_0x46df('0x5e')]['SELECT'],'raw':!![]};return new BPromise(function(_0x4cb8f7,_0x1b6ba8){var _0xf3f83c=squel[_0x46df('0x18d')]()['field'](_0x46df('0x18e')+_0x351c2a+_0x46df('0x18f'),'id')[_0x46df('0x190')](_0x46df('0x191'))[_0x46df('0x60')](_0x46df('0x192')+_0x1d2790+'_interactions','ui')[_0x46df('0x33')](_0x46df('0x193'),_0x445fd5['id']);return db['sequelize'][_0x46df('0x35')](_0xf3f83c[_0x46df('0x194')](),_0x13596c)[_0x46df('0x29')](function(_0x38b67c){_0x445fd5[_0x351c2a+_0x46df('0x195')]=_0x38b67c;_0x4cb8f7(_0x38b67c);})[_0x46df('0x44')](function(_0x345d0b){_0x1b6ba8(_0x345d0b);});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x18d1=['remove','exports','events','../../mysqldb','User','setMaxListeners','save','update'];(function(_0x46e490,_0x5b23ea){var _0x37eaa8=function(_0xfb1996){while(--_0xfb1996){_0x46e490['push'](_0x46e490['shift']());}};_0x37eaa8(++_0x5b23ea);}(_0x18d1,0x6a));var _0x118d=function(_0x597b25,_0x271b09){_0x597b25=_0x597b25-0x0;var _0x328257=_0x18d1[_0x597b25];return _0x328257;};'use strict';var EventEmitter=require(_0x118d('0x0'));var User=require(_0x118d('0x1'))['db'][_0x118d('0x2')];var UserEvents=new EventEmitter();UserEvents[_0x118d('0x3')](0x0);var events={'afterCreate':_0x118d('0x4'),'afterUpdate':_0x118d('0x5'),'afterDestroy':_0x118d('0x6')};function emitEvent(_0x2d9135){return function(_0x16271b,_0x313851,_0x46de80){UserEvents['emit'](_0x2d9135+':'+_0x16271b['id'],_0x16271b);UserEvents['emit'](_0x2d9135,_0x16271b);_0x46de80(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];User['hook'](e,emitEvent(event));}}module[_0x118d('0x7')]=UserEvents;
\ No newline at end of file
+var _0x63e6=['emit','hasOwnProperty','hook','../../mysqldb','setMaxListeners','save','update','remove'];(function(_0x27f336,_0x7031a9){var _0x5eb335=function(_0x4723bb){while(--_0x4723bb){_0x27f336['push'](_0x27f336['shift']());}};_0x5eb335(++_0x7031a9);}(_0x63e6,0xcb));var _0x663e=function(_0x2063d2,_0xe490be){_0x2063d2=_0x2063d2-0x0;var _0x1606c6=_0x63e6[_0x2063d2];return _0x1606c6;};'use strict';var EventEmitter=require('events');var User=require(_0x663e('0x0'))['db']['User'];var UserEvents=new EventEmitter();UserEvents[_0x663e('0x1')](0x0);var events={'afterCreate':_0x663e('0x2'),'afterUpdate':_0x663e('0x3'),'afterDestroy':_0x663e('0x4')};function emitEvent(_0x2ad0e6){return function(_0x2e1c26,_0x570943,_0x267680){UserEvents[_0x663e('0x5')](_0x2ad0e6+':'+_0x2e1c26['id'],_0x2e1c26);UserEvents['emit'](_0x2ad0e6,_0x2e1c26);_0x267680(null);};}for(var e in events){if(events[_0x663e('0x6')](e)){var event=events[e];User[_0x663e('0x7')](e,emitEvent(event));}}module['exports']=UserEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc8a4=['auth','Authenticate','password','ChanSpy','SIP/%s,%s','options','join','wav','WAV','gsm','CDR(type)=internal','extensionMonitor','includes','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','_XCALLY_MIXMONITOR_FORMAT=%s','Dial','SIP/%s,,tTxXU(xcally-mixmonitor-context)','SIP/%s,,tTxX','name','VoiceChanSpy','findAll','then','internal','concat','catch','exports','define','utf8','utf8_bin','userProfileId','resolve','UserProfile','privacyEnabled','updatePassword','find','updateMd5Password','bulkCreate','chanspy','VoiceExtension','changed','destroy','encryptPassword','function','Missing\x20Callback','toString','base64','salt','sha1','provider','makeSalt','md5secret',':asterisk:','crypto','md5','lodash','./user.attributes','google','length','context','from-sip','system','format','merge','Set','CDR(type)=%s','record','push','recordingFormat'];(function(_0x32f9ca,_0x2fa8bc){var _0x52e083=function(_0x4fd86a){while(--_0x4fd86a){_0x32f9ca['push'](_0x32f9ca['shift']());}};_0x52e083(++_0x2fa8bc);}(_0xc8a4,0x144));var _0x4c8a=function(_0x56b6bf,_0x4e1bdc){_0x56b6bf=_0x56b6bf-0x0;var _0x163f0f=_0xc8a4[_0x56b6bf];return _0x163f0f;};'use strict';var BPromise=require('bluebird');var crypto=require(_0x4c8a('0x0'));var util=require('util');var md5=require(_0x4c8a('0x1'));var _=require(_0x4c8a('0x2'));var attributes=require(_0x4c8a('0x3'));var authTypes=[_0x4c8a('0x4')];var validatePresenceOf=function(_0x5c6f60){return _0x5c6f60&&_0x5c6f60[_0x4c8a('0x5')];};var getChanSpyApplications=function(_0x539735,_0x38459c,_0x4f66c1){var _0x52b604={'context':_0x539735[_0x4c8a('0x6')]||_0x4c8a('0x7'),'type':_0x4c8a('0x8'),'isApp':![],'UserId':_0x539735['id']};var _0x4b1d48=[];for(var _0x13332d=0x0,_0x576cd7=0x1;_0x13332d<_0x4f66c1[_0x4c8a('0x5')];_0x13332d++,_0x576cd7=0x1){var _0x43afd0={'exten':util[_0x4c8a('0x9')]('%s%s',_0x4f66c1[_0x13332d]['prefix'],_0x38459c),'ChanSpyId':_0x4f66c1[_0x13332d]['id']};_0x4b1d48['push'](_[_0x4c8a('0xa')]({'app':_0x4c8a('0xb'),'appdata':util[_0x4c8a('0x9')](_0x4c8a('0xc'),'chanspy'),'priority':_0x576cd7++},_0x52b604,_0x43afd0));if(_0x4f66c1[_0x13332d][_0x4c8a('0xd')]){_0x4b1d48[_0x4c8a('0xe')](_['merge']({'app':'MixMonitor','appdata':util[_0x4c8a('0x9')]('${UNIQUEID}.%s,a',_0x4f66c1[_0x13332d][_0x4c8a('0xf')]),'priority':_0x576cd7++},_0x52b604,_0x43afd0));}if(_0x4f66c1[_0x13332d][_0x4c8a('0x10')]){_0x4b1d48[_0x4c8a('0xe')](_[_0x4c8a('0xa')]({'app':_0x4c8a('0x11'),'appdata':_0x4f66c1[_0x13332d][_0x4c8a('0x12')],'priority':_0x576cd7++},_0x52b604,_0x43afd0));}_0x4b1d48[_0x4c8a('0xe')](_['merge']({'app':_0x4c8a('0x13'),'appdata':util[_0x4c8a('0x9')](_0x4c8a('0x14'),_0x539735['name'],_0x4f66c1[_0x13332d][_0x4c8a('0x15')]?_0x4f66c1[_0x13332d][_0x4c8a('0x15')][_0x4c8a('0x16')](''):''),'priority':_0x576cd7++},_0x52b604,_0x43afd0));if(_0x4f66c1[_0x13332d][_0x4c8a('0xd')]){_0x4b1d48[_0x4c8a('0xe')](_['merge']({'app':'StopMixMonitor','priority':_0x576cd7++},_0x52b604,_0x43afd0));}}return _0x4b1d48;};var getUserApplications=function(_0x120e8b,_0x22c070){var _0x25fb68=[_0x4c8a('0x17'),_0x4c8a('0x18'),_0x4c8a('0x19')];var _0x349493={'context':_0x120e8b[_0x4c8a('0x6')]||_0x4c8a('0x7'),'exten':_0x22c070,'type':_0x4c8a('0x8'),'isApp':![],'UserId':_0x120e8b['id']};var _0x1299d9=[{'app':_0x4c8a('0xb'),'appdata':_0x4c8a('0x1a')}];if(_0x120e8b[_0x4c8a('0x1b')]&&_[_0x4c8a('0x1c')](_0x25fb68,_0x120e8b[_0x4c8a('0x1b')])){_0x1299d9[_0x4c8a('0xe')]({'app':_0x4c8a('0xb'),'appdata':_0x4c8a('0x1d')});_0x1299d9[_0x4c8a('0xe')]({'app':_0x4c8a('0xb'),'appdata':util['format'](_0x4c8a('0x1e'),_0x120e8b['extensionMonitor'])});_0x1299d9[_0x4c8a('0xe')]({'app':_0x4c8a('0x1f'),'appdata':util['format'](_0x4c8a('0x20'),_0x120e8b['name'])});}else{_0x1299d9[_0x4c8a('0xe')]({'app':'Dial','appdata':util[_0x4c8a('0x9')](_0x4c8a('0x21'),_0x120e8b[_0x4c8a('0x22')])});}_0x1299d9[_0x4c8a('0xe')]({'app':'Hangup'});for(var _0x5dabed=0x0;_0x5dabed<_0x1299d9['length'];_0x5dabed++){_0x1299d9[_0x5dabed]['priority']=_0x5dabed+0x1;_0x1299d9[_0x5dabed]=_['defaults'](_0x1299d9[_0x5dabed],_0x349493);}return _0x1299d9;};var getChanSpyPromise=function(_0x1755c3,_0x380b6f){return new BPromise(function(_0x3e43d8,_0x34309c){return _0x1755c3[_0x4c8a('0x23')][_0x4c8a('0x24')]()[_0x4c8a('0x25')](function(_0x2a4231){if(_0x2a4231){var _0x4ca1bd=getChanSpyApplications(_0x380b6f,_0x380b6f[_0x4c8a('0x26')],_0x2a4231);if(_0x380b6f[_0x4c8a('0x26')]!=_0x380b6f[_0x4c8a('0x22')]){_0x4ca1bd=_0x4ca1bd[_0x4c8a('0x27')](getChanSpyApplications(_0x380b6f,_0x380b6f['name'],_0x2a4231));}return _0x3e43d8(_0x4ca1bd);}return _0x3e43d8([]);})[_0x4c8a('0x28')](function(_0x25c886){_0x34309c(_0x25c886);});});};module[_0x4c8a('0x29')]=function(_0x244c4e,_0x48bce4){var _0x3e2ed4=_0x244c4e['models'];return _0x244c4e[_0x4c8a('0x2a')]('User',attributes,{'tableName':'users','charset':_0x4c8a('0x2b'),'collate':_0x4c8a('0x2c'),'hooks':{'beforeCreate':function(_0x508314,_0x2f296d,_0x2a66fd){var _0x16df99=typeof _0x508314[_0x4c8a('0x2d')]==='undefined'?BPromise[_0x4c8a('0x2e')](null):_0x3e2ed4[_0x4c8a('0x2f')]['find']({'where':{'id':_0x508314['userProfileId']}});_0x16df99['then'](function(_0x271626){if(_0x271626){_0x508314[_0x4c8a('0x30')]=_0x271626[_0x4c8a('0x30')];}})[_0x4c8a('0x25')](function(){_0x508314['updateMd5Password']();_0x508314[_0x4c8a('0x31')](_0x2a66fd);})[_0x4c8a('0x28')](function(_0x2deb0a){_0x2a66fd(_0x2deb0a);});},'beforeUpdate':function(_0x644004,_0x58f8ee,_0x717e28){Promise[_0x4c8a('0x2e')]()[_0x4c8a('0x25')](function(){if(_0x644004['changed']('userProfileId')===![])return;return _0x3e2ed4[_0x4c8a('0x2f')][_0x4c8a('0x32')]({'where':{'id':_0x644004[_0x4c8a('0x2d')]}})[_0x4c8a('0x25')](function(_0x3bca71){if(_0x3bca71)_0x644004[_0x4c8a('0x30')]=_0x3bca71[_0x4c8a('0x30')];return;});})[_0x4c8a('0x25')](function(){if(_0x644004['changed'](_0x4c8a('0x12'))){_0x644004[_0x4c8a('0x33')]();return _0x644004['updatePassword'](_0x717e28);}_0x717e28();})[_0x4c8a('0x28')](function(_0x5bbd6d){_0x717e28(_0x5bbd6d);});},'afterCreate':function(_0x595b1d,_0xc5380d,_0x485532){var _0x57075f=getUserApplications(_0x595b1d,_0x595b1d[_0x4c8a('0x26')]);if(_0x595b1d[_0x4c8a('0x26')]!=_0x595b1d[_0x4c8a('0x22')]){_0x57075f=_0x57075f[_0x4c8a('0x27')](getUserApplications(_0x595b1d,_0x595b1d[_0x4c8a('0x22')]));}return _0x3e2ed4['VoiceExtension'][_0x4c8a('0x34')](_0x57075f)['then'](function(){if(_0x595b1d[_0x4c8a('0x35')]){return getChanSpyPromise(_0x3e2ed4,_0x595b1d);}})['then'](function(_0x472525){if(_0x472525&&_0x472525[_0x4c8a('0x5')]){return _0x3e2ed4[_0x4c8a('0x36')]['bulkCreate'](_0x472525);}})['then'](function(){_0x485532();})[_0x4c8a('0x28')](function(_0x1926c9){_0x485532(_0x1926c9);});},'afterUpdate':function(_0x22a5f4,_0x4b6e15,_0x27a3b7){return BPromise[_0x4c8a('0x2e')]()[_0x4c8a('0x25')](function(){if(_0x22a5f4[_0x4c8a('0x37')](_0x4c8a('0x35'))||_0x22a5f4[_0x4c8a('0x37')]('context')){return _0x3e2ed4[_0x4c8a('0x36')]['destroy']({'where':{'UserId':_0x22a5f4['id'],'type':_0x4c8a('0x8'),'ChanSpyId':{'$ne':null}}})[_0x4c8a('0x25')](function(){if(_0x22a5f4[_0x4c8a('0x35')]){return getChanSpyPromise(_0x3e2ed4,_0x22a5f4)['then'](function(_0x327784){if(_0x327784&&_0x327784[_0x4c8a('0x5')]){return _0x3e2ed4[_0x4c8a('0x36')][_0x4c8a('0x34')](_0x327784);}});}});}})[_0x4c8a('0x25')](function(){if(_0x22a5f4['changed']('extensionMonitor')||_0x22a5f4[_0x4c8a('0x37')]('context')){return _0x3e2ed4[_0x4c8a('0x36')][_0x4c8a('0x38')]({'where':{'UserId':_0x22a5f4['id'],'type':_0x4c8a('0x8'),'ChanSpyId':null}})[_0x4c8a('0x25')](function(){var _0x4f23bf=getUserApplications(_0x22a5f4,_0x22a5f4[_0x4c8a('0x26')]);if(_0x22a5f4['internal']!=_0x22a5f4[_0x4c8a('0x22')]){_0x4f23bf=_0x4f23bf[_0x4c8a('0x27')](getUserApplications(_0x22a5f4,_0x22a5f4[_0x4c8a('0x22')]));}return _0x3e2ed4[_0x4c8a('0x36')]['bulkCreate'](_0x4f23bf);});}})['then'](function(){_0x27a3b7();})[_0x4c8a('0x28')](function(_0x502290){_0x27a3b7(_0x502290);});},'afterDestroy':function(_0x4338d8,_0x2d5691){return _0x3e2ed4['VoiceExtension'][_0x4c8a('0x38')]({'where':{'UserId':_0x4338d8['id'],'type':_0x4c8a('0x8')}});}},'instanceMethods':{'authenticate':function(_0x12ac51,_0x427533){if(!_0x427533){return this[_0x4c8a('0x12')]===this['encryptPassword'](_0x12ac51);}var _0x26f498=this;this[_0x4c8a('0x39')](_0x12ac51,function(_0x10e293,_0x5b85af){if(_0x10e293){_0x427533(_0x10e293);}if(_0x26f498[_0x4c8a('0x12')]===_0x5b85af){_0x427533(null,!![]);}else{_0x427533(null,![]);}});},'makeSalt':function(_0x51a874,_0x411f7c){var _0x48f957=0x10;if(typeof arguments[0x0]===_0x4c8a('0x3a')){_0x411f7c=arguments[0x0];_0x51a874=_0x48f957;}else if(typeof arguments[0x1]===_0x4c8a('0x3a')){_0x411f7c=arguments[0x1];}else{throw new Error(_0x4c8a('0x3b'));}if(!_0x51a874){_0x51a874=_0x48f957;}return crypto['randomBytes'](_0x51a874,function(_0x4291dc,_0x26f6f1){if(_0x4291dc){_0x411f7c(_0x4291dc);}return _0x411f7c(null,_0x26f6f1[_0x4c8a('0x3c')](_0x4c8a('0x3d')));});},'encryptPassword':function(_0x13f431,_0x1bab49){if(!_0x13f431||!this[_0x4c8a('0x3e')]){return _0x1bab49?_0x1bab49(null):null;}var _0x4600ab=0x2710;var _0x4a9658=0x40;var _0x20ac11=new Buffer(this[_0x4c8a('0x3e')],_0x4c8a('0x3d'));if(!_0x1bab49){return crypto['pbkdf2Sync'](_0x13f431,_0x20ac11,_0x4600ab,_0x4a9658,_0x4c8a('0x3f'))[_0x4c8a('0x3c')](_0x4c8a('0x3d'));}return crypto['pbkdf2'](_0x13f431,_0x20ac11,_0x4600ab,_0x4a9658,'sha1',function(_0x3193d7,_0x5700b3){if(_0x3193d7){_0x1bab49(_0x3193d7);}return _0x1bab49(null,_0x5700b3[_0x4c8a('0x3c')]('base64'));});},'updatePassword':function(_0x2c27a6){if(!this['password']){return _0x2c27a6(null);}if(!validatePresenceOf(this['password'])&&authTypes['indexOf'](this[_0x4c8a('0x40')])===-0x1){_0x2c27a6(new Error('Invalid\x20password'));}var _0x3009ac=this;this[_0x4c8a('0x41')](function(_0xb87a51,_0x4b9feb){if(_0xb87a51){return _0x2c27a6(_0xb87a51);}_0x3009ac[_0x4c8a('0x3e')]=_0x4b9feb;_0x3009ac[_0x4c8a('0x39')](_0x3009ac[_0x4c8a('0x12')],function(_0x28e041,_0x31e17a){if(_0x28e041){_0x2c27a6(_0x28e041);}_0x3009ac[_0x4c8a('0x12')]=_0x31e17a;_0x2c27a6(null);});});},'updateMd5Password':function(){this[_0x4c8a('0x42')]=md5(this[_0x4c8a('0x22')]+_0x4c8a('0x43')+this['password']);return this[_0x4c8a('0x42')];}}});};
\ No newline at end of file
+var _0xa453=['auth','Authenticate','password','SIP/%s,%s','options','join','record','StopMixMonitor','WAV','gsm','from-sip','system','CDR(type)=internal','extensionMonitor','includes','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','_XCALLY_MIXMONITOR_FORMAT=%s','SIP/%s,,tTxXU(xcally-mixmonitor-context)','Dial','name','VoiceChanSpy','findAll','internal','concat','catch','models','define','User','users','userProfileId','undefined','resolve','UserProfile','then','privacyEnabled','updateMd5Password','updatePassword','changed','find','VoiceExtension','bulkCreate','chanspy','destroy','encryptPassword','function','Missing\x20Callback','randomBytes','base64','salt','pbkdf2Sync','sha1','toString','pbkdf2','indexOf','provider','Invalid\x20password','makeSalt','md5secret',':asterisk:','bluebird','crypto','util','md5','lodash','./user.attributes','length','context','format','prefix','push','Set','CDR(type)=%s','merge','MixMonitor','${UNIQUEID}.%s,a','recordingFormat'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xa453,0x11f));var _0x3a45=function(_0x38fa2d,_0x298dcd){_0x38fa2d=_0x38fa2d-0x0;var _0x9eee97=_0xa453[_0x38fa2d];return _0x9eee97;};'use strict';var BPromise=require(_0x3a45('0x0'));var crypto=require(_0x3a45('0x1'));var util=require(_0x3a45('0x2'));var md5=require(_0x3a45('0x3'));var _=require(_0x3a45('0x4'));var attributes=require(_0x3a45('0x5'));var authTypes=['google'];var validatePresenceOf=function(_0x5ec332){return _0x5ec332&&_0x5ec332[_0x3a45('0x6')];};var getChanSpyApplications=function(_0x125219,_0x1535e8,_0x2956f8){var _0x18d49f={'context':_0x125219[_0x3a45('0x7')]||'from-sip','type':'system','isApp':![],'UserId':_0x125219['id']};var _0x4785c5=[];for(var _0x52882d=0x0,_0x546425=0x1;_0x52882d<_0x2956f8['length'];_0x52882d++,_0x546425=0x1){var _0x1afc91={'exten':util[_0x3a45('0x8')]('%s%s',_0x2956f8[_0x52882d][_0x3a45('0x9')],_0x1535e8),'ChanSpyId':_0x2956f8[_0x52882d]['id']};_0x4785c5[_0x3a45('0xa')](_['merge']({'app':_0x3a45('0xb'),'appdata':util[_0x3a45('0x8')](_0x3a45('0xc'),'chanspy'),'priority':_0x546425++},_0x18d49f,_0x1afc91));if(_0x2956f8[_0x52882d]['record']){_0x4785c5[_0x3a45('0xa')](_[_0x3a45('0xd')]({'app':_0x3a45('0xe'),'appdata':util[_0x3a45('0x8')](_0x3a45('0xf'),_0x2956f8[_0x52882d][_0x3a45('0x10')]),'priority':_0x546425++},_0x18d49f,_0x1afc91));}if(_0x2956f8[_0x52882d][_0x3a45('0x11')]){_0x4785c5[_0x3a45('0xa')](_[_0x3a45('0xd')]({'app':_0x3a45('0x12'),'appdata':_0x2956f8[_0x52882d][_0x3a45('0x13')],'priority':_0x546425++},_0x18d49f,_0x1afc91));}_0x4785c5[_0x3a45('0xa')](_[_0x3a45('0xd')]({'app':'ChanSpy','appdata':util[_0x3a45('0x8')](_0x3a45('0x14'),_0x125219['name'],_0x2956f8[_0x52882d]['options']?_0x2956f8[_0x52882d][_0x3a45('0x15')][_0x3a45('0x16')](''):''),'priority':_0x546425++},_0x18d49f,_0x1afc91));if(_0x2956f8[_0x52882d][_0x3a45('0x17')]){_0x4785c5[_0x3a45('0xa')](_[_0x3a45('0xd')]({'app':_0x3a45('0x18'),'priority':_0x546425++},_0x18d49f,_0x1afc91));}}return _0x4785c5;};var getUserApplications=function(_0x5cbe95,_0x1964a1){var _0x10cc1f=['wav',_0x3a45('0x19'),_0x3a45('0x1a')];var _0x2cd5f4={'context':_0x5cbe95[_0x3a45('0x7')]||_0x3a45('0x1b'),'exten':_0x1964a1,'type':_0x3a45('0x1c'),'isApp':![],'UserId':_0x5cbe95['id']};var _0x30f02f=[{'app':_0x3a45('0xb'),'appdata':_0x3a45('0x1d')}];if(_0x5cbe95[_0x3a45('0x1e')]&&_[_0x3a45('0x1f')](_0x10cc1f,_0x5cbe95[_0x3a45('0x1e')])){_0x30f02f['push']({'app':_0x3a45('0xb'),'appdata':_0x3a45('0x20')});_0x30f02f[_0x3a45('0xa')]({'app':'Set','appdata':util[_0x3a45('0x8')](_0x3a45('0x21'),_0x5cbe95['extensionMonitor'])});_0x30f02f[_0x3a45('0xa')]({'app':'Dial','appdata':util['format'](_0x3a45('0x22'),_0x5cbe95['name'])});}else{_0x30f02f[_0x3a45('0xa')]({'app':_0x3a45('0x23'),'appdata':util[_0x3a45('0x8')]('SIP/%s,,tTxX',_0x5cbe95[_0x3a45('0x24')])});}_0x30f02f[_0x3a45('0xa')]({'app':'Hangup'});for(var _0x5bbc97=0x0;_0x5bbc97<_0x30f02f['length'];_0x5bbc97++){_0x30f02f[_0x5bbc97]['priority']=_0x5bbc97+0x1;_0x30f02f[_0x5bbc97]=_['defaults'](_0x30f02f[_0x5bbc97],_0x2cd5f4);}return _0x30f02f;};var getChanSpyPromise=function(_0x3fff03,_0x1e7004){return new BPromise(function(_0x4480e9,_0x28828a){return _0x3fff03[_0x3a45('0x25')][_0x3a45('0x26')]()['then'](function(_0x335663){if(_0x335663){var _0x294ad8=getChanSpyApplications(_0x1e7004,_0x1e7004[_0x3a45('0x27')],_0x335663);if(_0x1e7004[_0x3a45('0x27')]!=_0x1e7004[_0x3a45('0x24')]){_0x294ad8=_0x294ad8[_0x3a45('0x28')](getChanSpyApplications(_0x1e7004,_0x1e7004[_0x3a45('0x24')],_0x335663));}return _0x4480e9(_0x294ad8);}return _0x4480e9([]);})[_0x3a45('0x29')](function(_0x34d5ca){_0x28828a(_0x34d5ca);});});};module['exports']=function(_0x26e3b8,_0x6c10e3){var _0x8769d5=_0x26e3b8[_0x3a45('0x2a')];return _0x26e3b8[_0x3a45('0x2b')](_0x3a45('0x2c'),attributes,{'tableName':_0x3a45('0x2d'),'charset':'utf8','collate':'utf8_bin','hooks':{'beforeCreate':function(_0x47799f,_0x257bc1,_0x4df9ed){var _0x2c9584=typeof _0x47799f[_0x3a45('0x2e')]===_0x3a45('0x2f')?BPromise[_0x3a45('0x30')](null):_0x8769d5[_0x3a45('0x31')]['find']({'where':{'id':_0x47799f['userProfileId']}});_0x2c9584[_0x3a45('0x32')](function(_0x1f7610){if(_0x1f7610){_0x47799f[_0x3a45('0x33')]=_0x1f7610['privacyEnabled'];}})[_0x3a45('0x32')](function(){_0x47799f[_0x3a45('0x34')]();_0x47799f[_0x3a45('0x35')](_0x4df9ed);})[_0x3a45('0x29')](function(_0x2aa6d1){_0x4df9ed(_0x2aa6d1);});},'beforeUpdate':function(_0x3d54ac,_0xb50d6e,_0x302d4a){Promise['resolve']()[_0x3a45('0x32')](function(){if(_0x3d54ac[_0x3a45('0x36')]('userProfileId')===![])return;return _0x8769d5[_0x3a45('0x31')][_0x3a45('0x37')]({'where':{'id':_0x3d54ac[_0x3a45('0x2e')]}})[_0x3a45('0x32')](function(_0x209e69){if(_0x209e69)_0x3d54ac[_0x3a45('0x33')]=_0x209e69['privacyEnabled'];return;});})[_0x3a45('0x32')](function(){if(_0x3d54ac[_0x3a45('0x36')](_0x3a45('0x13'))){_0x3d54ac[_0x3a45('0x34')]();return _0x3d54ac[_0x3a45('0x35')](_0x302d4a);}_0x302d4a();})[_0x3a45('0x29')](function(_0x4e6037){_0x302d4a(_0x4e6037);});},'afterCreate':function(_0x2513fe,_0x482c58,_0x4111f3){var _0x289d45=getUserApplications(_0x2513fe,_0x2513fe[_0x3a45('0x27')]);if(_0x2513fe[_0x3a45('0x27')]!=_0x2513fe[_0x3a45('0x24')]){_0x289d45=_0x289d45[_0x3a45('0x28')](getUserApplications(_0x2513fe,_0x2513fe[_0x3a45('0x24')]));}return _0x8769d5[_0x3a45('0x38')][_0x3a45('0x39')](_0x289d45)[_0x3a45('0x32')](function(){if(_0x2513fe[_0x3a45('0x3a')]){return getChanSpyPromise(_0x8769d5,_0x2513fe);}})[_0x3a45('0x32')](function(_0x3f598b){if(_0x3f598b&&_0x3f598b[_0x3a45('0x6')]){return _0x8769d5['VoiceExtension'][_0x3a45('0x39')](_0x3f598b);}})[_0x3a45('0x32')](function(){_0x4111f3();})[_0x3a45('0x29')](function(_0x54e95f){_0x4111f3(_0x54e95f);});},'afterUpdate':function(_0x55bfc7,_0x5ba7d9,_0x21fac0){return BPromise['resolve']()[_0x3a45('0x32')](function(){if(_0x55bfc7[_0x3a45('0x36')](_0x3a45('0x3a'))||_0x55bfc7[_0x3a45('0x36')](_0x3a45('0x7'))){return _0x8769d5[_0x3a45('0x38')][_0x3a45('0x3b')]({'where':{'UserId':_0x55bfc7['id'],'type':'system','ChanSpyId':{'$ne':null}}})[_0x3a45('0x32')](function(){if(_0x55bfc7[_0x3a45('0x3a')]){return getChanSpyPromise(_0x8769d5,_0x55bfc7)[_0x3a45('0x32')](function(_0x4ab1db){if(_0x4ab1db&&_0x4ab1db[_0x3a45('0x6')]){return _0x8769d5[_0x3a45('0x38')][_0x3a45('0x39')](_0x4ab1db);}});}});}})[_0x3a45('0x32')](function(){if(_0x55bfc7[_0x3a45('0x36')]('extensionMonitor')||_0x55bfc7[_0x3a45('0x36')](_0x3a45('0x7'))){return _0x8769d5['VoiceExtension'][_0x3a45('0x3b')]({'where':{'UserId':_0x55bfc7['id'],'type':'system','ChanSpyId':null}})[_0x3a45('0x32')](function(){var _0x258d44=getUserApplications(_0x55bfc7,_0x55bfc7[_0x3a45('0x27')]);if(_0x55bfc7[_0x3a45('0x27')]!=_0x55bfc7[_0x3a45('0x24')]){_0x258d44=_0x258d44[_0x3a45('0x28')](getUserApplications(_0x55bfc7,_0x55bfc7['name']));}return _0x8769d5[_0x3a45('0x38')]['bulkCreate'](_0x258d44);});}})[_0x3a45('0x32')](function(){_0x21fac0();})[_0x3a45('0x29')](function(_0x549eb3){_0x21fac0(_0x549eb3);});},'afterDestroy':function(_0x145a90,_0x25a3b0){return _0x8769d5[_0x3a45('0x38')][_0x3a45('0x3b')]({'where':{'UserId':_0x145a90['id'],'type':'system'}});}},'instanceMethods':{'authenticate':function(_0x2666e3,_0x2a6451){if(!_0x2a6451){return this[_0x3a45('0x13')]===this[_0x3a45('0x3c')](_0x2666e3);}var _0x1c4be5=this;this[_0x3a45('0x3c')](_0x2666e3,function(_0x43618a,_0x2a774c){if(_0x43618a){_0x2a6451(_0x43618a);}if(_0x1c4be5[_0x3a45('0x13')]===_0x2a774c){_0x2a6451(null,!![]);}else{_0x2a6451(null,![]);}});},'makeSalt':function(_0x402d47,_0xba499a){var _0x134f5a=0x10;if(typeof arguments[0x0]===_0x3a45('0x3d')){_0xba499a=arguments[0x0];_0x402d47=_0x134f5a;}else if(typeof arguments[0x1]===_0x3a45('0x3d')){_0xba499a=arguments[0x1];}else{throw new Error(_0x3a45('0x3e'));}if(!_0x402d47){_0x402d47=_0x134f5a;}return crypto[_0x3a45('0x3f')](_0x402d47,function(_0xa13c01,_0x1b1695){if(_0xa13c01){_0xba499a(_0xa13c01);}return _0xba499a(null,_0x1b1695['toString'](_0x3a45('0x40')));});},'encryptPassword':function(_0x3c227d,_0x2db27e){if(!_0x3c227d||!this[_0x3a45('0x41')]){return _0x2db27e?_0x2db27e(null):null;}var _0x11cd92=0x2710;var _0x278c03=0x40;var _0xf70bb0=new Buffer(this[_0x3a45('0x41')],_0x3a45('0x40'));if(!_0x2db27e){return crypto[_0x3a45('0x42')](_0x3c227d,_0xf70bb0,_0x11cd92,_0x278c03,_0x3a45('0x43'))[_0x3a45('0x44')](_0x3a45('0x40'));}return crypto[_0x3a45('0x45')](_0x3c227d,_0xf70bb0,_0x11cd92,_0x278c03,'sha1',function(_0x1f5635,_0x3d3441){if(_0x1f5635){_0x2db27e(_0x1f5635);}return _0x2db27e(null,_0x3d3441[_0x3a45('0x44')]('base64'));});},'updatePassword':function(_0x213c75){if(!this['password']){return _0x213c75(null);}if(!validatePresenceOf(this['password'])&&authTypes[_0x3a45('0x46')](this[_0x3a45('0x47')])===-0x1){_0x213c75(new Error(_0x3a45('0x48')));}var _0x23f372=this;this[_0x3a45('0x49')](function(_0x3e82c2,_0x48e073){if(_0x3e82c2){return _0x213c75(_0x3e82c2);}_0x23f372[_0x3a45('0x41')]=_0x48e073;_0x23f372[_0x3a45('0x3c')](_0x23f372[_0x3a45('0x13')],function(_0xd3e16a,_0x3a58a7){if(_0xd3e16a){_0x213c75(_0xd3e16a);}_0x23f372[_0x3a45('0x13')]=_0x3a58a7;_0x213c75(null);});});},'updateMd5Password':function(){this[_0x3a45('0x4a')]=md5(this[_0x3a45('0x24')]+_0x3a45('0x4b')+this[_0x3a45('0x13')]);return this[_0x3a45('0x4a')];}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb72e=['socket.io-emitter','./user.socket','register','request','then','User,\x20%s,\x20%s','request\x20sent','debug','User,\x20%s,\x20%s,\x20%s','error','code','message','result','catch','GetUser','findAll','options','where','attributes','limit','include','map','model','info','stringify','User','raw','ShowUser','find','name','interface','UserVoiceQueueRt','update','MemberReport','PAUSE','format','length','updateAttributes','getChannels','push','isNil','SIP/%s','YYYY-MM-DD\x20HH:mm:ss','body','DEFAULT\x20PAUSE','role','internal','bulkCreate','type','UnpauseUser','findOne','channel','Unknown\x20channel','voice','system','mail','chat','fax','sms','openchannel','whatsapp','set','Pause','forEach','all','LogoutUser','destroy','LoginUser','loginInPause','count','agent','../../config/license/util','getLicense','agents','Maximum\x20login\x20has\x20been\x20reached','getVoiceQueues','upsert','UserVoiceQueue.penalty','LOGIN','merge','LOGININPAUSE','concat','lodash','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','defaults'];(function(_0x45fc6a,_0x166adb){var _0x14bcfd=function(_0x3ba718){while(--_0x3ba718){_0x45fc6a['push'](_0x45fc6a['shift']());}};_0x14bcfd(++_0x166adb);}(_0xb72e,0x1d2));var _0xeb72=function(_0xdd5407,_0x5571da){_0xdd5407=_0xdd5407-0x0;var _0x3e4ffe=_0xb72e[_0xdd5407];return _0x3e4ffe;};'use strict';var _=require(_0xeb72('0x0'));var util=require(_0xeb72('0x1'));var moment=require('moment');var BPromise=require(_0xeb72('0x2'));var rs=require(_0xeb72('0x3'));var fs=require('fs');var Redis=require(_0xeb72('0x4'));var db=require(_0xeb72('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0xeb72('0x6'))(_0xeb72('0x7'));var config=require(_0xeb72('0x8'));var jayson=require(_0xeb72('0x9'));var client=jayson[_0xeb72('0xa')][_0xeb72('0xb')]({'port':0x232a});config[_0xeb72('0xc')]=_[_0xeb72('0xd')](config[_0xeb72('0xc')],{'host':'localhost','port':0x18eb});var socket=require(_0xeb72('0xe'))(new Redis(config[_0xeb72('0xc')]));require(_0xeb72('0xf'))[_0xeb72('0x10')](socket);function respondWithRpcPromise(_0x1c5389,_0x54f52b,_0x1bc21f){return new BPromise(function(_0x36423c,_0x369479){return client[_0xeb72('0x11')](_0x1c5389,_0x1bc21f)[_0xeb72('0x12')](function(_0x82edb2){logger['info'](_0xeb72('0x13'),_0x54f52b,_0xeb72('0x14'));logger[_0xeb72('0x15')](_0xeb72('0x16'),_0x54f52b,_0xeb72('0x14'),JSON['stringify'](_0x82edb2));if(_0x82edb2['error']){if(_0x82edb2[_0xeb72('0x17')][_0xeb72('0x18')]===0x1f4){logger[_0xeb72('0x17')](_0xeb72('0x13'),_0x54f52b,_0x82edb2[_0xeb72('0x17')][_0xeb72('0x19')]);return _0x369479(_0x82edb2[_0xeb72('0x17')][_0xeb72('0x19')]);}logger['error'](_0xeb72('0x13'),_0x54f52b,_0x82edb2[_0xeb72('0x17')][_0xeb72('0x19')]);return _0x36423c(_0x82edb2['error'][_0xeb72('0x19')]);}else{logger['info'](_0xeb72('0x13'),_0x54f52b,_0xeb72('0x14'));_0x36423c(_0x82edb2[_0xeb72('0x1a')]['message']);}})[_0xeb72('0x1b')](function(_0x1482ed){logger[_0xeb72('0x17')](_0xeb72('0x13'),_0x54f52b,_0x1482ed);_0x369479(_0x1482ed);});});}exports[_0xeb72('0x1c')]=function(_0x41c0c7){var _0x15f423=this;return new Promise(function(_0x5ef69e,_0x5228ed){return db['User'][_0xeb72('0x1d')]({'raw':_0x41c0c7[_0xeb72('0x1e')]?_0x41c0c7[_0xeb72('0x1e')]['raw']===undefined?!![]:![]:!![],'where':_0x41c0c7[_0xeb72('0x1e')]?_0x41c0c7['options'][_0xeb72('0x1f')]||null:null,'attributes':_0x41c0c7[_0xeb72('0x1e')]?_0x41c0c7[_0xeb72('0x1e')][_0xeb72('0x20')]||null:null,'limit':_0x41c0c7[_0xeb72('0x1e')]?_0x41c0c7[_0xeb72('0x1e')][_0xeb72('0x21')]||null:null,'include':_0x41c0c7[_0xeb72('0x1e')]?_0x41c0c7[_0xeb72('0x1e')][_0xeb72('0x22')]?_[_0xeb72('0x23')](_0x41c0c7['options']['include'],function(_0x1031e6){return{'model':db[_0x1031e6['model']],'as':_0x1031e6['as'],'attributes':_0x1031e6['attributes'],'include':_0x1031e6[_0xeb72('0x22')]?_[_0xeb72('0x23')](_0x1031e6[_0xeb72('0x22')],function(_0xc98fb9){return{'model':db[_0xc98fb9[_0xeb72('0x24')]],'as':_0xc98fb9['as'],'attributes':_0xc98fb9[_0xeb72('0x20')],'include':_0xc98fb9['include']?_[_0xeb72('0x23')](_0xc98fb9[_0xeb72('0x22')],function(_0x16b448){return{'model':db[_0x16b448[_0xeb72('0x24')]],'as':_0x16b448['as'],'attributes':_0x16b448[_0xeb72('0x20')]};}):[]};}):[]};}):[]:[]})[_0xeb72('0x12')](function(_0x472c96){logger[_0xeb72('0x25')](_0xeb72('0x1c'),_0x41c0c7);logger[_0xeb72('0x15')](_0xeb72('0x1c'),_0x41c0c7,JSON[_0xeb72('0x26')](_0x472c96));_0x5ef69e(_0x472c96);})[_0xeb72('0x1b')](function(_0x5a0b34){logger[_0xeb72('0x17')](_0xeb72('0x1c'),_0x5a0b34[_0xeb72('0x19')],_0x41c0c7);_0x5228ed(_0x15f423[_0xeb72('0x17')](0x1f4,_0x5a0b34[_0xeb72('0x19')]));});});};exports['ShowUser']=function(_0x1af8d2){var _0x15dc7b=this;return new Promise(function(_0x3190bf,_0x5bc880){return db[_0xeb72('0x27')]['find']({'raw':_0x1af8d2[_0xeb72('0x1e')]?_0x1af8d2[_0xeb72('0x1e')][_0xeb72('0x28')]===undefined?!![]:![]:!![],'where':_0x1af8d2['options']?_0x1af8d2[_0xeb72('0x1e')]['where']||null:null,'attributes':_0x1af8d2[_0xeb72('0x1e')]?_0x1af8d2[_0xeb72('0x1e')][_0xeb72('0x20')]||null:null,'include':_0x1af8d2[_0xeb72('0x1e')]?_0x1af8d2['options'][_0xeb72('0x22')]?_[_0xeb72('0x23')](_0x1af8d2['options']['include'],function(_0x1197f0){return{'model':db[_0x1197f0[_0xeb72('0x24')]],'as':_0x1197f0['as'],'attributes':_0x1197f0[_0xeb72('0x20')],'include':_0x1197f0[_0xeb72('0x22')]?_['map'](_0x1197f0[_0xeb72('0x22')],function(_0x29a7c8){return{'model':db[_0x29a7c8[_0xeb72('0x24')]],'as':_0x29a7c8['as'],'attributes':_0x29a7c8[_0xeb72('0x20')],'include':_0x29a7c8[_0xeb72('0x22')]?_[_0xeb72('0x23')](_0x29a7c8[_0xeb72('0x22')],function(_0x57cea1){return{'model':db[_0x57cea1[_0xeb72('0x24')]],'as':_0x57cea1['as'],'attributes':_0x57cea1[_0xeb72('0x20')]};}):[]};}):[]};}):[]:[]})[_0xeb72('0x12')](function(_0xa706b7){logger['info']('ShowUser',_0x1af8d2);logger[_0xeb72('0x15')](_0xeb72('0x29'),_0x1af8d2,JSON[_0xeb72('0x26')](_0xa706b7));_0x3190bf(_0xa706b7);})[_0xeb72('0x1b')](function(_0xe5e9){logger['error'](_0xeb72('0x29'),_0xe5e9[_0xeb72('0x19')],_0x1af8d2);_0x5bc880(_0x15dc7b[_0xeb72('0x17')](0x1f4,_0xe5e9['message']));});});};exports['PauseUser']=function(_0xe50189){var _0x4f436d=this;return new Promise(function(_0x4d043f,_0x4ad4be){var _0x9e0564;return db[_0xeb72('0x27')][_0xeb72('0x2a')]({'where':_0xe50189['options'][_0xeb72('0x1f')]||{},'attributes':['id',_0xeb72('0x2b'),'role','internal',_0xeb72('0x2c')]})['then'](function(_0xea8a96){if(_0xea8a96){_0x9e0564=_0xea8a96;return db[_0xeb72('0x2d')][_0xeb72('0x2e')]({'paused':0x1},{'where':{'UserId':_0x9e0564['id']},'individualHooks':!![]});}})[_0xeb72('0x12')](function(){if(_0x9e0564){return db[_0xeb72('0x2f')][_0xeb72('0x1d')]({'where':{'membername':_0x9e0564[_0xeb72('0x2b')],'type':_0xeb72('0x30'),'exitAt':null}});}})['then'](function(_0x55aaf4){if(_0x9e0564){if(_0x55aaf4&&_0x55aaf4['length']){var _0x298a1c=moment()[_0xeb72('0x31')]('YYYY-MM-DD\x20HH:mm:ss');for(var _0x114f78=0x0,_0x1eae05=_0x55aaf4[_0xeb72('0x32')];_0x114f78<_0x1eae05;_0x114f78++){_0x55aaf4[_0x114f78][_0xeb72('0x33')]({'exitAt':_0x298a1c});}}}})[_0xeb72('0x12')](function(){if(_0x9e0564){var _0x4c5e3c=[];var _0x3ed332=utils[_0xeb72('0x34')]();_0x3ed332['forEach'](function(_0xbf326a){_0x4c5e3c[_0xeb72('0x35')]({'channel':_0xbf326a,'membername':_0x9e0564['name'],'interface':_[_0xeb72('0x36')](_0x9e0564[_0xeb72('0x2c')])?util[_0xeb72('0x31')](_0xeb72('0x37'),_0x9e0564[_0xeb72('0x2b')]):_0x9e0564['interface'],'type':_0xeb72('0x30'),'enterAt':moment()['format'](_0xeb72('0x38')),'data1':_0xe50189[_0xeb72('0x39')]['type']||_0xeb72('0x3a'),'role':_0x9e0564[_0xeb72('0x3b')],'internal':_0x9e0564[_0xeb72('0x3c')],'uniqueid':_0xe50189[_0xeb72('0x39')]['uniqueid']||null});});return db[_0xeb72('0x2f')][_0xeb72('0x3d')](_0x4c5e3c,{'individualHooks':!![]});}})[_0xeb72('0x12')](function(){if(_0x9e0564){return _0x9e0564[_0xeb72('0x2e')]({'voicePause':!![],'mailPause':!![],'chatPause':!![],'faxPause':!![],'smsPause':!![],'openchannelPause':!![],'whatsappPause':!![],'pauseType':_0xe50189['body'][_0xeb72('0x3e')]||_0xeb72('0x3a'),'lastPauseAt':moment()['format']('YYYY-MM-DD\x20HH:mm:ss')});}})[_0xeb72('0x12')](function(_0x167554){_0x4d043f(_0x167554);})['catch'](function(_0x344649){_0x4ad4be(_0x4f436d[_0xeb72('0x17')](0x1f4,_0x344649['message']));});});};exports[_0xeb72('0x3f')]=function(_0x3d49ca){var _0x52499b=this;return new Promise(function(_0xa83f77,_0x3ba547){var _0x85ac4a;return db[_0xeb72('0x27')][_0xeb72('0x40')]({'where':_0x3d49ca[_0xeb72('0x1e')][_0xeb72('0x1f')]||{},'attributes':['id','name']})['then'](function(_0x58e391){if(_0x58e391){_0x85ac4a=_0x58e391;if(_0x3d49ca[_0xeb72('0x39')][_0xeb72('0x41')]&&!utils['isValidChannel'](_0x3d49ca[_0xeb72('0x39')]['channel'])){throw new Error(_0xeb72('0x42'));}switch(_0x3d49ca[_0xeb72('0x39')][_0xeb72('0x41')]){case _0xeb72('0x43'):return db[_0xeb72('0x2d')][_0xeb72('0x2e')]({'paused':0x0},{'where':{'UserId':_0x85ac4a['id']}})[_0xeb72('0x12')](function(){return db[_0xeb72('0x2f')]['find']({'where':{'channel':_0x3d49ca[_0xeb72('0x39')][_0xeb72('0x41')],'membername':_0x85ac4a['name'],'type':_0xeb72('0x30'),'exitAt':null}});})[_0xeb72('0x12')](function(_0xfd27bf){if(_0xfd27bf){return _0xfd27bf[_0xeb72('0x2e')]({'exitAt':moment()['format'](_0xeb72('0x38')),'data2':_0xeb72('0x44')},{'individualHooks':!![]});}return null;})[_0xeb72('0x12')](function(){return _0x85ac4a[_0xeb72('0x2e')]({'voicePause':![]});});case _0xeb72('0x45'):case _0xeb72('0x46'):case _0xeb72('0x47'):case _0xeb72('0x48'):case _0xeb72('0x49'):case _0xeb72('0x4a'):return db[_0xeb72('0x2f')][_0xeb72('0x2a')]({'where':{'channel':_0x3d49ca['body'][_0xeb72('0x41')],'membername':_0x85ac4a[_0xeb72('0x2b')],'type':_0xeb72('0x30'),'exitAt':null}})[_0xeb72('0x12')](function(_0x359676){return _0x359676[_0xeb72('0x2e')]({'exitAt':moment()[_0xeb72('0x31')]('YYYY-MM-DD\x20HH:mm:ss'),'data2':_0xeb72('0x44')},{'individualHooks':!![]});})[_0xeb72('0x12')](function(){var _0x14c4cc={};_[_0xeb72('0x4b')](_0x14c4cc,util['format']('%s%s',_0x3d49ca['body'][_0xeb72('0x41')],_0xeb72('0x4c')),![]);return _0x85ac4a['update'](_0x14c4cc);});default:return db['UserVoiceQueueRt'][_0xeb72('0x2e')]({'paused':0x0},{'where':{'UserId':_0x85ac4a['id']}})[_0xeb72('0x12')](function(){return db[_0xeb72('0x2f')][_0xeb72('0x1d')]({'where':{'membername':_0x85ac4a[_0xeb72('0x2b')],'type':_0xeb72('0x30'),'exitAt':null}});})[_0xeb72('0x12')](function(_0x5a64b5){var _0x207fa6=[];_0x5a64b5[_0xeb72('0x4d')](function(_0x1b6213){_0x207fa6['push'](_0x1b6213[_0xeb72('0x2e')]({'exitAt':moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'data2':'system'}));});return BPromise[_0xeb72('0x4e')](_0x207fa6);})['then'](function(){return _0x85ac4a[_0xeb72('0x2e')]({'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![],'whatsappPause':![]});});}}})[_0xeb72('0x12')](function(_0x3250af){_0xa83f77(_0x3250af);})['catch'](function(_0x2e31b6){_0x3ba547(_0x52499b[_0xeb72('0x17')](0x1f4,_0x2e31b6[_0xeb72('0x19')]));});});};exports[_0xeb72('0x4f')]=function(_0x3329f2){var _0x261f41=this;return new Promise(function(_0x8fa1c2,_0x4c0101){var _0x268473;return db['User'][_0xeb72('0x40')]({'where':_0x3329f2['options']['where']||{},'attributes':['id',_0xeb72('0x2b')]})[_0xeb72('0x12')](function(_0x3fa342){if(_0x3fa342){_0x268473=_0x3fa342;return db[_0xeb72('0x2d')][_0xeb72('0x50')]({'where':{'membername':_0x268473[_0xeb72('0x2b')]},'individualHooks':!![]});}})[_0xeb72('0x12')](function(){if(_0x268473){return db[_0xeb72('0x2f')]['findAll']({'where':{'membername':_0x268473[_0xeb72('0x2b')],'exitAt':null}});}})[_0xeb72('0x12')](function(_0x5c5de2){if(_0x268473){if(_0x5c5de2&&_0x5c5de2[_0xeb72('0x32')]){var _0x2caaa3=[];_0x5c5de2[_0xeb72('0x4d')](function(_0x4d9259){_0x2caaa3[_0xeb72('0x35')](_0x4d9259[_0xeb72('0x2e')]({'exitAt':moment()[_0xeb72('0x31')](_0xeb72('0x38'))}));});return BPromise['all'](_0x2caaa3);}}})[_0xeb72('0x12')](function(){if(_0x268473){return _0x268473[_0xeb72('0x2e')]({'online':![],'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![]});}})[_0xeb72('0x12')](function(_0x37951d){_0x8fa1c2(_0x37951d);})[_0xeb72('0x1b')](function(_0x2bb54c){_0x4c0101(_0x261f41[_0xeb72('0x17')](0x1f4,_0x2bb54c[_0xeb72('0x19')]));});});};exports[_0xeb72('0x51')]=function(_0x19b0a2){var _0x34a646=this;return new Promise(function(_0x36d4ca,_0x12451c){var _0x3666d6;var _0x39f1bd;var _0x320b7c;var _0x3e1982;return db['User']['findOne']({'where':_0x19b0a2['options']['where']||{},'attributes':['id',_0xeb72('0x2b'),_0xeb72('0x3b'),'mobile','phone','internal',_0xeb72('0x52'),_0xeb72('0x2c')]})[_0xeb72('0x12')](function(_0x1ca09d){if(_0x1ca09d){_0x3666d6=_0x1ca09d;_0x3e1982=_0x19b0a2[_0xeb72('0x39')][_0xeb72('0x2c')]?_0x19b0a2[_0xeb72('0x39')][_0xeb72('0x2c')]:util['format'](_0xeb72('0x37'),_0x3666d6[_0xeb72('0x2b')]);return db[_0xeb72('0x27')][_0xeb72('0x53')]({'where':{'role':_0xeb72('0x54'),'online':!![],'id':{'$ne':_0x3666d6['id']}}});}})[_0xeb72('0x12')](function(_0x16f339){if(_0x16f339){_0x320b7c=_0x16f339;return require(_0xeb72('0x55'))[_0xeb72('0x56')]();}})[_0xeb72('0x12')](function(_0x5f4256){if(_0x5f4256&&_0x5f4256['agents']&&_0x320b7c>=_0x5f4256[_0xeb72('0x57')]){throw new Error(_0xeb72('0x58'));}})[_0xeb72('0x12')](function(){if(_0x3666d6){return db[_0xeb72('0x2d')][_0xeb72('0x50')]({'where':{'membername':_0x3666d6[_0xeb72('0x2b')]},'individualHooks':!![]});}})[_0xeb72('0x12')](function(){if(_0x3666d6){return _0x3666d6[_0xeb72('0x59')]({'raw':!![]});}})['then'](function(_0x53cbff){if(_0x3666d6){if(_0x53cbff){var _0x11adae=[];_0x39f1bd=_0x53cbff;if(_0x39f1bd['length']){for(var _0x3fb6d7=0x0;_0x3fb6d7<_0x39f1bd['length'];_0x3fb6d7++){_0x11adae[_0xeb72('0x35')](db['UserVoiceQueueRt'][_0xeb72('0x5a')]({'membername':_0x3666d6[_0xeb72('0x2b')],'UserId':_0x3666d6['id'],'queue_name':_0x39f1bd[_0x3fb6d7][_0xeb72('0x2b')],'VoiceQueueId':_0x39f1bd[_0x3fb6d7]['id'],'interface':_0x3e1982,'paused':_0x3666d6[_0xeb72('0x52')]||![],'penalty':_0x39f1bd[_0x3fb6d7][_0xeb72('0x5b')]||0x0}));}return BPromise[_0xeb72('0x4e')](_0x11adae);}}}})[_0xeb72('0x12')](function(){if(_0x3666d6){return db[_0xeb72('0x2f')][_0xeb72('0x1d')]({'where':{'membername':_0x3666d6[_0xeb72('0x2b')],'exitAt':null}});}})[_0xeb72('0x12')](function(_0x38f4ed){if(_0x3666d6){if(_0x38f4ed&&_0x38f4ed[_0xeb72('0x32')]){var _0x56adf6=[];_0x38f4ed[_0xeb72('0x4d')](function(_0x297643){_0x56adf6[_0xeb72('0x35')](_0x297643[_0xeb72('0x2e')]({'exitAt':moment()[_0xeb72('0x31')](_0xeb72('0x38'))}));});return BPromise[_0xeb72('0x4e')](_0x56adf6);}}})[_0xeb72('0x12')](function(_0x23e253){if(_0x3666d6){var _0x1f9852=[];var _0x4dfbb9=[];var _0x44ee84=utils['getChannels']();var _0x28d40d={'membername':_0x3666d6[_0xeb72('0x2b')],'interface':_0x3e1982,'enterAt':moment()[_0xeb72('0x31')](_0xeb72('0x38')),'role':_0x3666d6['role'],'internal':_0x3666d6[_0xeb72('0x3c')]};_0x44ee84[_0xeb72('0x4d')](function(_0x3daad9){_0x1f9852[_0xeb72('0x35')](_['merge']({'channel':_0x3daad9,'type':_0xeb72('0x5c'),'data1':'callysquare','data2':_0x3e1982},_0x28d40d));if(_0x3666d6[_0xeb72('0x52')]){_0x4dfbb9[_0xeb72('0x35')](_[_0xeb72('0x5d')]({'channel':_0x3daad9,'type':'PAUSE','data1':_0xeb72('0x5e')},_0x28d40d));}});return db[_0xeb72('0x2f')][_0xeb72('0x3d')](_0x1f9852[_0xeb72('0x5f')](_0x4dfbb9),{'individualHooks':!![]});}})[_0xeb72('0x12')](function(){if(_0x3666d6){return _0x3666d6['update']({'online':!![],'lastLoginAt':moment()[_0xeb72('0x31')]('YYYY-MM-DD\x20HH:mm:ss'),'voicePause':_0x3666d6[_0xeb72('0x52')]||![],'mailPause':_0x3666d6[_0xeb72('0x52')]||![],'chatPause':_0x3666d6[_0xeb72('0x52')]||![],'faxPause':_0x3666d6['loginInPause']||![],'smsPause':_0x3666d6[_0xeb72('0x52')]||![],'openchannelPause':_0x3666d6[_0xeb72('0x52')]||![],'pauseType':_0x3666d6[_0xeb72('0x52')]?_0xeb72('0x5e'):null,'lastPauseAt':moment()[_0xeb72('0x31')](_0xeb72('0x38')),'interface':_0x3e1982});}})[_0xeb72('0x12')](function(_0x5645b1){_0x36d4ca(_0x5645b1);})[_0xeb72('0x1b')](function(_0x519d25){_0x12451c(_0x34a646['error'](0x1f4,_0x519d25[_0xeb72('0x19')]));});});};
\ No newline at end of file
+var _0x9c70=['GetUser','ShowUser','PauseUser','find','internal','UserVoiceQueueRt','update','name','format','length','updateAttributes','forEach','push','interface','SIP/%s','PAUSE','body','type','DEFAULT\x20PAUSE','uniqueid','MemberReport','YYYY-MM-DD\x20HH:mm:ss','UnpauseUser','findOne','channel','isValidChannel','Unknown\x20channel','voice','system','mail','chat','fax','sms','openchannel','whatsapp','%s%s','Pause','all','destroy','LoginUser','role','mobile','phone','loginInPause','count','../../config/license/util','getLicense','agents','getVoiceQueues','UserVoiceQueue.penalty','getChannels','merge','LOGIN','callysquare','bulkCreate','concat','LOGININPAUSE','lodash','util','moment','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','redis','socket.io-emitter','./user.socket','then','info','request\x20sent','debug','User,\x20%s,\x20%s,\x20%s','stringify','error','code','User,\x20%s,\x20%s','message','catch','User','findAll','options','raw','where','attributes','limit','model','map','include'];(function(_0x2dafbe,_0x5d04de){var _0x58a45a=function(_0x50ac96){while(--_0x50ac96){_0x2dafbe['push'](_0x2dafbe['shift']());}};_0x58a45a(++_0x5d04de);}(_0x9c70,0xf1));var _0x09c7=function(_0x42be2c,_0x53abc0){_0x42be2c=_0x42be2c-0x0;var _0x37a5fe=_0x9c70[_0x42be2c];return _0x37a5fe;};'use strict';var _=require(_0x09c7('0x0'));var util=require(_0x09c7('0x1'));var moment=require(_0x09c7('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x09c7('0x3'));var db=require(_0x09c7('0x4'))['db'];var utils=require(_0x09c7('0x5'));var logger=require(_0x09c7('0x6'))('rpc');var config=require(_0x09c7('0x7'));var jayson=require(_0x09c7('0x8'));var client=jayson[_0x09c7('0x9')][_0x09c7('0xa')]({'port':0x232a});config['redis']=_['defaults'](config[_0x09c7('0xb')],{'host':'localhost','port':0x18eb});var socket=require(_0x09c7('0xc'))(new Redis(config['redis']));require(_0x09c7('0xd'))['register'](socket);function respondWithRpcPromise(_0x420b85,_0x4fa7f5,_0x20e430){return new BPromise(function(_0x2699a1,_0x2cd079){return client['request'](_0x420b85,_0x20e430)[_0x09c7('0xe')](function(_0x2a4ad8){logger[_0x09c7('0xf')]('User,\x20%s,\x20%s',_0x4fa7f5,_0x09c7('0x10'));logger[_0x09c7('0x11')](_0x09c7('0x12'),_0x4fa7f5,_0x09c7('0x10'),JSON[_0x09c7('0x13')](_0x2a4ad8));if(_0x2a4ad8['error']){if(_0x2a4ad8[_0x09c7('0x14')][_0x09c7('0x15')]===0x1f4){logger['error'](_0x09c7('0x16'),_0x4fa7f5,_0x2a4ad8['error'][_0x09c7('0x17')]);return _0x2cd079(_0x2a4ad8[_0x09c7('0x14')]['message']);}logger[_0x09c7('0x14')]('User,\x20%s,\x20%s',_0x4fa7f5,_0x2a4ad8[_0x09c7('0x14')][_0x09c7('0x17')]);return _0x2699a1(_0x2a4ad8['error']['message']);}else{logger[_0x09c7('0xf')](_0x09c7('0x16'),_0x4fa7f5,_0x09c7('0x10'));_0x2699a1(_0x2a4ad8['result']['message']);}})[_0x09c7('0x18')](function(_0x49126c){logger['error'](_0x09c7('0x16'),_0x4fa7f5,_0x49126c);_0x2cd079(_0x49126c);});});}exports['GetUser']=function(_0x14e6f2){var _0x47c75f=this;return new Promise(function(_0x1cd105,_0x17d930){return db[_0x09c7('0x19')][_0x09c7('0x1a')]({'raw':_0x14e6f2[_0x09c7('0x1b')]?_0x14e6f2[_0x09c7('0x1b')][_0x09c7('0x1c')]===undefined?!![]:![]:!![],'where':_0x14e6f2['options']?_0x14e6f2['options'][_0x09c7('0x1d')]||null:null,'attributes':_0x14e6f2[_0x09c7('0x1b')]?_0x14e6f2[_0x09c7('0x1b')][_0x09c7('0x1e')]||null:null,'limit':_0x14e6f2['options']?_0x14e6f2[_0x09c7('0x1b')][_0x09c7('0x1f')]||null:null,'include':_0x14e6f2[_0x09c7('0x1b')]?_0x14e6f2[_0x09c7('0x1b')]['include']?_['map'](_0x14e6f2[_0x09c7('0x1b')]['include'],function(_0x4bb3f6){return{'model':db[_0x4bb3f6[_0x09c7('0x20')]],'as':_0x4bb3f6['as'],'attributes':_0x4bb3f6[_0x09c7('0x1e')],'include':_0x4bb3f6['include']?_[_0x09c7('0x21')](_0x4bb3f6[_0x09c7('0x22')],function(_0x2cb4d5){return{'model':db[_0x2cb4d5[_0x09c7('0x20')]],'as':_0x2cb4d5['as'],'attributes':_0x2cb4d5[_0x09c7('0x1e')],'include':_0x2cb4d5[_0x09c7('0x22')]?_[_0x09c7('0x21')](_0x2cb4d5['include'],function(_0x3be951){return{'model':db[_0x3be951[_0x09c7('0x20')]],'as':_0x3be951['as'],'attributes':_0x3be951[_0x09c7('0x1e')]};}):[]};}):[]};}):[]:[]})[_0x09c7('0xe')](function(_0x1c2b73){logger[_0x09c7('0xf')]('GetUser',_0x14e6f2);logger[_0x09c7('0x11')]('GetUser',_0x14e6f2,JSON['stringify'](_0x1c2b73));_0x1cd105(_0x1c2b73);})['catch'](function(_0x5d4b78){logger[_0x09c7('0x14')](_0x09c7('0x23'),_0x5d4b78[_0x09c7('0x17')],_0x14e6f2);_0x17d930(_0x47c75f[_0x09c7('0x14')](0x1f4,_0x5d4b78[_0x09c7('0x17')]));});});};exports[_0x09c7('0x24')]=function(_0x35396b){var _0x3ae00c=this;return new Promise(function(_0x2fe9b8,_0x367751){return db[_0x09c7('0x19')]['find']({'raw':_0x35396b[_0x09c7('0x1b')]?_0x35396b[_0x09c7('0x1b')][_0x09c7('0x1c')]===undefined?!![]:![]:!![],'where':_0x35396b[_0x09c7('0x1b')]?_0x35396b[_0x09c7('0x1b')][_0x09c7('0x1d')]||null:null,'attributes':_0x35396b[_0x09c7('0x1b')]?_0x35396b[_0x09c7('0x1b')]['attributes']||null:null,'include':_0x35396b[_0x09c7('0x1b')]?_0x35396b[_0x09c7('0x1b')][_0x09c7('0x22')]?_[_0x09c7('0x21')](_0x35396b['options'][_0x09c7('0x22')],function(_0x559622){return{'model':db[_0x559622[_0x09c7('0x20')]],'as':_0x559622['as'],'attributes':_0x559622[_0x09c7('0x1e')],'include':_0x559622[_0x09c7('0x22')]?_['map'](_0x559622['include'],function(_0x37c770){return{'model':db[_0x37c770[_0x09c7('0x20')]],'as':_0x37c770['as'],'attributes':_0x37c770[_0x09c7('0x1e')],'include':_0x37c770[_0x09c7('0x22')]?_['map'](_0x37c770['include'],function(_0x462b08){return{'model':db[_0x462b08['model']],'as':_0x462b08['as'],'attributes':_0x462b08[_0x09c7('0x1e')]};}):[]};}):[]};}):[]:[]})[_0x09c7('0xe')](function(_0x5acc76){logger[_0x09c7('0xf')](_0x09c7('0x24'),_0x35396b);logger[_0x09c7('0x11')](_0x09c7('0x24'),_0x35396b,JSON[_0x09c7('0x13')](_0x5acc76));_0x2fe9b8(_0x5acc76);})[_0x09c7('0x18')](function(_0x1dafc8){logger[_0x09c7('0x14')](_0x09c7('0x24'),_0x1dafc8[_0x09c7('0x17')],_0x35396b);_0x367751(_0x3ae00c['error'](0x1f4,_0x1dafc8[_0x09c7('0x17')]));});});};exports[_0x09c7('0x25')]=function(_0x16bffc){var _0x5383a5=this;return new Promise(function(_0x57ab96,_0x334905){var _0x3a4d30;return db[_0x09c7('0x19')][_0x09c7('0x26')]({'where':_0x16bffc[_0x09c7('0x1b')]['where']||{},'attributes':['id','name','role',_0x09c7('0x27'),'interface']})['then'](function(_0x18909b){if(_0x18909b){_0x3a4d30=_0x18909b;return db[_0x09c7('0x28')][_0x09c7('0x29')]({'paused':0x1},{'where':{'UserId':_0x3a4d30['id']},'individualHooks':!![]});}})[_0x09c7('0xe')](function(){if(_0x3a4d30){return db['MemberReport']['findAll']({'where':{'membername':_0x3a4d30[_0x09c7('0x2a')],'type':'PAUSE','exitAt':null}});}})[_0x09c7('0xe')](function(_0x263c9f){if(_0x3a4d30){if(_0x263c9f&&_0x263c9f['length']){var _0x3846b0=moment()[_0x09c7('0x2b')]('YYYY-MM-DD\x20HH:mm:ss');for(var _0x32b404=0x0,_0x3951e1=_0x263c9f[_0x09c7('0x2c')];_0x32b404<_0x3951e1;_0x32b404++){_0x263c9f[_0x32b404][_0x09c7('0x2d')]({'exitAt':_0x3846b0});}}}})[_0x09c7('0xe')](function(){if(_0x3a4d30){var _0x1311c1=[];var _0x6f6d06=utils['getChannels']();_0x6f6d06[_0x09c7('0x2e')](function(_0x4be0c9){_0x1311c1[_0x09c7('0x2f')]({'channel':_0x4be0c9,'membername':_0x3a4d30[_0x09c7('0x2a')],'interface':_['isNil'](_0x3a4d30[_0x09c7('0x30')])?util[_0x09c7('0x2b')](_0x09c7('0x31'),_0x3a4d30[_0x09c7('0x2a')]):_0x3a4d30[_0x09c7('0x30')],'type':_0x09c7('0x32'),'enterAt':moment()[_0x09c7('0x2b')]('YYYY-MM-DD\x20HH:mm:ss'),'data1':_0x16bffc[_0x09c7('0x33')][_0x09c7('0x34')]||_0x09c7('0x35'),'role':_0x3a4d30['role'],'internal':_0x3a4d30[_0x09c7('0x27')],'uniqueid':_0x16bffc[_0x09c7('0x33')][_0x09c7('0x36')]||null});});return db[_0x09c7('0x37')]['bulkCreate'](_0x1311c1,{'individualHooks':!![]});}})['then'](function(){if(_0x3a4d30){return _0x3a4d30[_0x09c7('0x29')]({'voicePause':!![],'mailPause':!![],'chatPause':!![],'faxPause':!![],'smsPause':!![],'openchannelPause':!![],'whatsappPause':!![],'pauseType':_0x16bffc[_0x09c7('0x33')][_0x09c7('0x34')]||_0x09c7('0x35'),'lastPauseAt':moment()['format'](_0x09c7('0x38'))});}})[_0x09c7('0xe')](function(_0x21f46b){_0x57ab96(_0x21f46b);})[_0x09c7('0x18')](function(_0xc623f8){_0x334905(_0x5383a5[_0x09c7('0x14')](0x1f4,_0xc623f8[_0x09c7('0x17')]));});});};exports[_0x09c7('0x39')]=function(_0x105819){var _0x273e42=this;return new Promise(function(_0x348e2a,_0x50efaa){var _0x3d5a1c;return db[_0x09c7('0x19')][_0x09c7('0x3a')]({'where':_0x105819[_0x09c7('0x1b')]['where']||{},'attributes':['id','name']})[_0x09c7('0xe')](function(_0x3fcefa){if(_0x3fcefa){_0x3d5a1c=_0x3fcefa;if(_0x105819[_0x09c7('0x33')][_0x09c7('0x3b')]&&!utils[_0x09c7('0x3c')](_0x105819[_0x09c7('0x33')][_0x09c7('0x3b')])){throw new Error(_0x09c7('0x3d'));}switch(_0x105819[_0x09c7('0x33')][_0x09c7('0x3b')]){case _0x09c7('0x3e'):return db[_0x09c7('0x28')]['update']({'paused':0x0},{'where':{'UserId':_0x3d5a1c['id']}})['then'](function(){return db['MemberReport'][_0x09c7('0x26')]({'where':{'channel':_0x105819['body'][_0x09c7('0x3b')],'membername':_0x3d5a1c[_0x09c7('0x2a')],'type':_0x09c7('0x32'),'exitAt':null}});})[_0x09c7('0xe')](function(_0x2d1bd9){if(_0x2d1bd9){return _0x2d1bd9[_0x09c7('0x29')]({'exitAt':moment()[_0x09c7('0x2b')](_0x09c7('0x38')),'data2':_0x09c7('0x3f')},{'individualHooks':!![]});}return null;})[_0x09c7('0xe')](function(){return _0x3d5a1c[_0x09c7('0x29')]({'voicePause':![]});});case _0x09c7('0x40'):case _0x09c7('0x41'):case _0x09c7('0x42'):case _0x09c7('0x43'):case _0x09c7('0x44'):case _0x09c7('0x45'):return db['MemberReport'][_0x09c7('0x26')]({'where':{'channel':_0x105819[_0x09c7('0x33')]['channel'],'membername':_0x3d5a1c[_0x09c7('0x2a')],'type':'PAUSE','exitAt':null}})[_0x09c7('0xe')](function(_0xe70d81){return _0xe70d81[_0x09c7('0x29')]({'exitAt':moment()[_0x09c7('0x2b')](_0x09c7('0x38')),'data2':_0x09c7('0x3f')},{'individualHooks':!![]});})['then'](function(){var _0x1ecd48={};_['set'](_0x1ecd48,util[_0x09c7('0x2b')](_0x09c7('0x46'),_0x105819['body'][_0x09c7('0x3b')],_0x09c7('0x47')),![]);return _0x3d5a1c['update'](_0x1ecd48);});default:return db['UserVoiceQueueRt'][_0x09c7('0x29')]({'paused':0x0},{'where':{'UserId':_0x3d5a1c['id']}})[_0x09c7('0xe')](function(){return db[_0x09c7('0x37')]['findAll']({'where':{'membername':_0x3d5a1c['name'],'type':_0x09c7('0x32'),'exitAt':null}});})['then'](function(_0x4223fc){var _0x322214=[];_0x4223fc[_0x09c7('0x2e')](function(_0x5d1406){_0x322214[_0x09c7('0x2f')](_0x5d1406[_0x09c7('0x29')]({'exitAt':moment()[_0x09c7('0x2b')](_0x09c7('0x38')),'data2':_0x09c7('0x3f')}));});return BPromise[_0x09c7('0x48')](_0x322214);})[_0x09c7('0xe')](function(){return _0x3d5a1c[_0x09c7('0x29')]({'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![],'whatsappPause':![]});});}}})['then'](function(_0x1050db){_0x348e2a(_0x1050db);})['catch'](function(_0xa35197){_0x50efaa(_0x273e42[_0x09c7('0x14')](0x1f4,_0xa35197['message']));});});};exports['LogoutUser']=function(_0x56a8dc){var _0x3a011f=this;return new Promise(function(_0x3dc62e,_0x3d1a81){var _0x122e02;return db[_0x09c7('0x19')][_0x09c7('0x3a')]({'where':_0x56a8dc['options'][_0x09c7('0x1d')]||{},'attributes':['id','name']})['then'](function(_0x6ca0e5){if(_0x6ca0e5){_0x122e02=_0x6ca0e5;return db[_0x09c7('0x28')][_0x09c7('0x49')]({'where':{'membername':_0x122e02[_0x09c7('0x2a')]},'individualHooks':!![]});}})[_0x09c7('0xe')](function(){if(_0x122e02){return db[_0x09c7('0x37')]['findAll']({'where':{'membername':_0x122e02['name'],'exitAt':null}});}})[_0x09c7('0xe')](function(_0x4ddcbf){if(_0x122e02){if(_0x4ddcbf&&_0x4ddcbf[_0x09c7('0x2c')]){var _0x1194c8=[];_0x4ddcbf[_0x09c7('0x2e')](function(_0x515a66){_0x1194c8[_0x09c7('0x2f')](_0x515a66[_0x09c7('0x29')]({'exitAt':moment()[_0x09c7('0x2b')](_0x09c7('0x38'))}));});return BPromise[_0x09c7('0x48')](_0x1194c8);}}})['then'](function(){if(_0x122e02){return _0x122e02['update']({'online':![],'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![]});}})[_0x09c7('0xe')](function(_0xa81e2b){_0x3dc62e(_0xa81e2b);})[_0x09c7('0x18')](function(_0x29de5a){_0x3d1a81(_0x3a011f['error'](0x1f4,_0x29de5a[_0x09c7('0x17')]));});});};exports[_0x09c7('0x4a')]=function(_0x377215){var _0x3472e2=this;return new Promise(function(_0x3af13e,_0x3e5815){var _0x5dc20f;var _0x591b6e;var _0x5b7e74;var _0x4b57b5;return db[_0x09c7('0x19')][_0x09c7('0x3a')]({'where':_0x377215[_0x09c7('0x1b')]['where']||{},'attributes':['id','name',_0x09c7('0x4b'),_0x09c7('0x4c'),_0x09c7('0x4d'),'internal',_0x09c7('0x4e'),_0x09c7('0x30')]})[_0x09c7('0xe')](function(_0x3c8f94){if(_0x3c8f94){_0x5dc20f=_0x3c8f94;_0x4b57b5=_0x377215[_0x09c7('0x33')]['interface']?_0x377215['body'][_0x09c7('0x30')]:util[_0x09c7('0x2b')](_0x09c7('0x31'),_0x5dc20f['name']);return db[_0x09c7('0x19')][_0x09c7('0x4f')]({'where':{'role':'agent','online':!![],'id':{'$ne':_0x5dc20f['id']}}});}})[_0x09c7('0xe')](function(_0x3a8831){if(_0x3a8831){_0x5b7e74=_0x3a8831;return require(_0x09c7('0x50'))[_0x09c7('0x51')]();}})['then'](function(_0x2f9775){if(_0x2f9775&&_0x2f9775[_0x09c7('0x52')]&&_0x5b7e74>=_0x2f9775['agents']){throw new Error('Maximum\x20login\x20has\x20been\x20reached');}})['then'](function(){if(_0x5dc20f){return db[_0x09c7('0x28')][_0x09c7('0x49')]({'where':{'membername':_0x5dc20f['name']},'individualHooks':!![]});}})[_0x09c7('0xe')](function(){if(_0x5dc20f){return _0x5dc20f[_0x09c7('0x53')]({'raw':!![]});}})[_0x09c7('0xe')](function(_0x391241){if(_0x5dc20f){if(_0x391241){var _0x1a51f8=[];_0x591b6e=_0x391241;if(_0x591b6e[_0x09c7('0x2c')]){for(var _0x4b588e=0x0;_0x4b588e<_0x591b6e[_0x09c7('0x2c')];_0x4b588e++){_0x1a51f8[_0x09c7('0x2f')](db[_0x09c7('0x28')]['upsert']({'membername':_0x5dc20f['name'],'UserId':_0x5dc20f['id'],'queue_name':_0x591b6e[_0x4b588e][_0x09c7('0x2a')],'VoiceQueueId':_0x591b6e[_0x4b588e]['id'],'interface':_0x4b57b5,'paused':_0x5dc20f[_0x09c7('0x4e')]||![],'penalty':_0x591b6e[_0x4b588e][_0x09c7('0x54')]||0x0}));}return BPromise[_0x09c7('0x48')](_0x1a51f8);}}}})[_0x09c7('0xe')](function(){if(_0x5dc20f){return db[_0x09c7('0x37')][_0x09c7('0x1a')]({'where':{'membername':_0x5dc20f[_0x09c7('0x2a')],'exitAt':null}});}})[_0x09c7('0xe')](function(_0x4aa0a0){if(_0x5dc20f){if(_0x4aa0a0&&_0x4aa0a0[_0x09c7('0x2c')]){var _0x4f04db=[];_0x4aa0a0[_0x09c7('0x2e')](function(_0x2a28c0){_0x4f04db[_0x09c7('0x2f')](_0x2a28c0[_0x09c7('0x29')]({'exitAt':moment()[_0x09c7('0x2b')](_0x09c7('0x38'))}));});return BPromise[_0x09c7('0x48')](_0x4f04db);}}})[_0x09c7('0xe')](function(_0x3cb7fb){if(_0x5dc20f){var _0x328007=[];var _0x285e82=[];var _0x4f5463=utils[_0x09c7('0x55')]();var _0x45d6b9={'membername':_0x5dc20f[_0x09c7('0x2a')],'interface':_0x4b57b5,'enterAt':moment()[_0x09c7('0x2b')](_0x09c7('0x38')),'role':_0x5dc20f[_0x09c7('0x4b')],'internal':_0x5dc20f[_0x09c7('0x27')]};_0x4f5463[_0x09c7('0x2e')](function(_0x21e658){_0x328007[_0x09c7('0x2f')](_[_0x09c7('0x56')]({'channel':_0x21e658,'type':_0x09c7('0x57'),'data1':_0x09c7('0x58'),'data2':_0x4b57b5},_0x45d6b9));if(_0x5dc20f[_0x09c7('0x4e')]){_0x285e82[_0x09c7('0x2f')](_[_0x09c7('0x56')]({'channel':_0x21e658,'type':_0x09c7('0x32'),'data1':'LOGININPAUSE'},_0x45d6b9));}});return db[_0x09c7('0x37')][_0x09c7('0x59')](_0x328007[_0x09c7('0x5a')](_0x285e82),{'individualHooks':!![]});}})[_0x09c7('0xe')](function(){if(_0x5dc20f){return _0x5dc20f[_0x09c7('0x29')]({'online':!![],'lastLoginAt':moment()[_0x09c7('0x2b')](_0x09c7('0x38')),'voicePause':_0x5dc20f[_0x09c7('0x4e')]||![],'mailPause':_0x5dc20f['loginInPause']||![],'chatPause':_0x5dc20f[_0x09c7('0x4e')]||![],'faxPause':_0x5dc20f[_0x09c7('0x4e')]||![],'smsPause':_0x5dc20f['loginInPause']||![],'openchannelPause':_0x5dc20f[_0x09c7('0x4e')]||![],'pauseType':_0x5dc20f[_0x09c7('0x4e')]?_0x09c7('0x5b'):null,'lastPauseAt':moment()[_0x09c7('0x2b')](_0x09c7('0x38')),'interface':_0x4b57b5});}})[_0x09c7('0xe')](function(_0x1b40d2){_0x3af13e(_0x1b40d2);})[_0x09c7('0x18')](function(_0xf7780a){_0x3e5815(_0x3472e2[_0x09c7('0x14')](0x1f4,_0xf7780a[_0x09c7('0x17')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xda1d=['removeListener','length','./user.events','save','emit'];(function(_0x2641f9,_0x26715f){var _0x585741=function(_0x2d1462){while(--_0x2d1462){_0x2641f9['push'](_0x2641f9['shift']());}};_0x585741(++_0x26715f);}(_0xda1d,0x11f));var _0xdda1=function(_0x162bc9,_0x5c117e){_0x162bc9=_0x162bc9-0x0;var _0x475e2d=_0xda1d[_0x162bc9];return _0x475e2d;};'use strict';var UserEvents=require(_0xdda1('0x0'));var events=[_0xdda1('0x1'),'remove','update'];function createListener(_0x419802,_0x272b73){return function(_0x912ba5){_0x272b73[_0xdda1('0x2')](_0x419802,_0x912ba5);};}function removeListener(_0x4aa9a5,_0x4c46f8){return function(){UserEvents[_0xdda1('0x3')](_0x4aa9a5,_0x4c46f8);};}exports['register']=function(_0x421299){for(var _0x502ad5=0x0,_0x13f93a=events[_0xdda1('0x4')];_0x502ad5<_0x13f93a;_0x502ad5++){var _0xcf6a92=events[_0x502ad5];var _0x3d3e45=createListener('user:'+_0xcf6a92,_0x421299);UserEvents['on'](_0xcf6a92,_0x3d3e45);}};
\ No newline at end of file
+var _0x5814=['update','removeListener','register','length','user:','./user.events','save'];(function(_0x3efa6e,_0x567417){var _0x1a338d=function(_0x301ed7){while(--_0x301ed7){_0x3efa6e['push'](_0x3efa6e['shift']());}};_0x1a338d(++_0x567417);}(_0x5814,0x1cc));var _0x4581=function(_0x36193c,_0x68f223){_0x36193c=_0x36193c-0x0;var _0xa364a8=_0x5814[_0x36193c];return _0xa364a8;};'use strict';var UserEvents=require(_0x4581('0x0'));var events=[_0x4581('0x1'),'remove',_0x4581('0x2')];function createListener(_0x263682,_0x303b0a){return function(_0x429fc2){_0x303b0a['emit'](_0x263682,_0x429fc2);};}function removeListener(_0x2876f6,_0x2e71a4){return function(){UserEvents[_0x4581('0x3')](_0x2876f6,_0x2e71a4);};}exports[_0x4581('0x4')]=function(_0x147961){for(var _0x5e1ed6=0x0,_0x21e968=events[_0x4581('0x5')];_0x5e1ed6<_0x21e968;_0x5e1ed6++){var _0x2f80e9=events[_0x5e1ed6];var _0x203ebe=createListener(_0x4581('0x6')+_0x2f80e9,_0x147961);UserEvents['on'](_0x2f80e9,_0x203ebe);}};
\ 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(_0xc2a56f,_0x122a7b){var _0x55821c=function(_0x25c24b){while(--_0x25c24b){_0xc2a56f['push'](_0xc2a56f['shift']());}};_0x55821c(++_0x122a7b);}(_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(_0x3e750b,_0x2070d9){var _0x1e2ac3=function(_0x214aca){while(--_0x214aca){_0x3e750b['push'](_0x3e750b['shift']());}};_0x1e2ac3(++_0x2070d9);}(_0xa9e0,0x123));var _0x0a9e=function(_0x2d8fc2,_0x1c461d){_0x2d8fc2=_0x2d8fc2-0x0;var _0x3a9e53=_0xa9e0[_0x2d8fc2];return _0x3a9e53;};'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 _0x00ce=['sequelize','exports','INTEGER'];(function(_0x51cd87,_0x23266a){var _0x3631a6=function(_0x37d4f0){while(--_0x37d4f0){_0x51cd87['push'](_0x51cd87['shift']());}};_0x3631a6(++_0x23266a);}(_0x00ce,0x132));var _0xe00c=function(_0x2e5041,_0x4689c5){_0x2e5041=_0x2e5041-0x0;var _0x1edc3b=_0x00ce[_0x2e5041];return _0x1edc3b;};'use strict';var Sequelize=require(_0xe00c('0x0'));module[_0xe00c('0x1')]={'penalty':{'type':Sequelize[_0xe00c('0x2')],'defaultValue':0x0}};
\ No newline at end of file
+var _0x8874=['sequelize','INTEGER'];(function(_0x17a82e,_0x494386){var _0xc216a6=function(_0x222bd4){while(--_0x222bd4){_0x17a82e['push'](_0x17a82e['shift']());}};_0xc216a6(++_0x494386);}(_0x8874,0x98));var _0x4887=function(_0x131c26,_0x316930){_0x131c26=_0x131c26-0x0;var _0x5c393f=_0x8874[_0x131c26];return _0x5c393f;};'use strict';var Sequelize=require(_0x4887('0x0'));module['exports']={'penalty':{'type':Sequelize[_0x4887('0x1')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3b3f=['lodash','util','../../config/logger','api','bluebird','path','../../config/environment','./userChatQueue.attributes','define','UserChatQueue'];(function(_0x35485a,_0x91cdd4){var _0x5148e6=function(_0x27ed1d){while(--_0x27ed1d){_0x35485a['push'](_0x35485a['shift']());}};_0x5148e6(++_0x91cdd4);}(_0x3b3f,0x1d6));var _0xf3b3=function(_0x5b644e,_0x2e5e07){_0x5b644e=_0x5b644e-0x0;var _0x49c6bf=_0x3b3f[_0x5b644e];return _0x49c6bf;};'use strict';var _=require(_0xf3b3('0x0'));var util=require(_0xf3b3('0x1'));var logger=require(_0xf3b3('0x2'))(_0xf3b3('0x3'));var moment=require('moment');var BPromise=require(_0xf3b3('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xf3b3('0x5'));var rimraf=require('rimraf');var config=require(_0xf3b3('0x6'));var attributes=require(_0xf3b3('0x7'));module['exports']=function(_0x3a4627,_0x586f48){return _0x3a4627[_0xf3b3('0x8')](_0xf3b3('0x9'),attributes,{'tableName':'user_has_chat_queues','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xf82e=['rimraf','../../config/environment','./userChatQueue.attributes','UserChatQueue','user_has_chat_queues','lodash','../../config/logger','moment','bluebird','path'];(function(_0x5db657,_0x2f40b3){var _0x2d6e70=function(_0x358ed2){while(--_0x358ed2){_0x5db657['push'](_0x5db657['shift']());}};_0x2d6e70(++_0x2f40b3);}(_0xf82e,0x73));var _0xef82=function(_0xa0ab99,_0x5496c1){_0xa0ab99=_0xa0ab99-0x0;var _0x3bf6b5=_0xf82e[_0xa0ab99];return _0x3bf6b5;};'use strict';var _=require(_0xef82('0x0'));var util=require('util');var logger=require(_0xef82('0x1'))('api');var moment=require(_0xef82('0x2'));var BPromise=require(_0xef82('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xef82('0x4'));var rimraf=require(_0xef82('0x5'));var config=require(_0xef82('0x6'));var attributes=require(_0xef82('0x7'));module['exports']=function(_0x1b6464,_0xa8505a){return _0x1b6464['define'](_0xef82('0x8'),attributes,{'tableName':_0xef82('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4e9a=['info','UserChatQueue,\x20%s,\x20%s','request\x20sent','debug','UserChatQueue,\x20%s,\x20%s,\x20%s','error','code','message','result','lodash','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','request','then'];(function(_0x50a0c2,_0x4befab){var _0x5ebadd=function(_0x3a3342){while(--_0x3a3342){_0x50a0c2['push'](_0x50a0c2['shift']());}};_0x5ebadd(++_0x4befab);}(_0x4e9a,0x65));var _0xa4e9=function(_0x59f0a8,_0x591176){_0x59f0a8=_0x59f0a8-0x0;var _0x3217a4=_0x4e9a[_0x59f0a8];return _0x3217a4;};'use strict';var _=require(_0xa4e9('0x0'));var util=require(_0xa4e9('0x1'));var moment=require('moment');var BPromise=require(_0xa4e9('0x2'));var rs=require(_0xa4e9('0x3'));var fs=require('fs');var Redis=require(_0xa4e9('0x4'));var db=require(_0xa4e9('0x5'))['db'];var utils=require(_0xa4e9('0x6'));var logger=require(_0xa4e9('0x7'))('rpc');var config=require(_0xa4e9('0x8'));var jayson=require(_0xa4e9('0x9'));var client=jayson[_0xa4e9('0xa')][_0xa4e9('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x43652b,_0x268879,_0x31ab4e){return new BPromise(function(_0x596e95,_0x34f48d){return client[_0xa4e9('0xc')](_0x43652b,_0x31ab4e)[_0xa4e9('0xd')](function(_0x4cf3bf){logger[_0xa4e9('0xe')](_0xa4e9('0xf'),_0x268879,_0xa4e9('0x10'));logger[_0xa4e9('0x11')](_0xa4e9('0x12'),_0x268879,_0xa4e9('0x10'),JSON['stringify'](_0x4cf3bf));if(_0x4cf3bf['error']){if(_0x4cf3bf[_0xa4e9('0x13')][_0xa4e9('0x14')]===0x1f4){logger[_0xa4e9('0x13')](_0xa4e9('0xf'),_0x268879,_0x4cf3bf[_0xa4e9('0x13')][_0xa4e9('0x15')]);return _0x34f48d(_0x4cf3bf[_0xa4e9('0x13')][_0xa4e9('0x15')]);}logger['error'](_0xa4e9('0xf'),_0x268879,_0x4cf3bf[_0xa4e9('0x13')]['message']);return _0x596e95(_0x4cf3bf['error'][_0xa4e9('0x15')]);}else{logger[_0xa4e9('0xe')](_0xa4e9('0xf'),_0x268879,'request\x20sent');_0x596e95(_0x4cf3bf[_0xa4e9('0x16')][_0xa4e9('0x15')]);}})['catch'](function(_0x303ed8){logger[_0xa4e9('0x13')]('UserChatQueue,\x20%s,\x20%s',_0x268879,_0x303ed8);_0x34f48d(_0x303ed8);});});}
\ No newline at end of file
+var _0x99e0=['UserChatQueue,\x20%s,\x20%s','result','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','request\x20sent','debug','UserChatQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','message'];(function(_0x1a21da,_0x3cceb6){var _0x1aa193=function(_0x3b8f91){while(--_0x3b8f91){_0x1a21da['push'](_0x1a21da['shift']());}};_0x1aa193(++_0x3cceb6);}(_0x99e0,0xd3));var _0x099e=function(_0x388985,_0x461ff2){_0x388985=_0x388985-0x0;var _0x1e3e88=_0x99e0[_0x388985];return _0x1e3e88;};'use strict';var _=require(_0x099e('0x0'));var util=require(_0x099e('0x1'));var moment=require(_0x099e('0x2'));var BPromise=require(_0x099e('0x3'));var rs=require(_0x099e('0x4'));var fs=require('fs');var Redis=require(_0x099e('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0x099e('0x6'));var logger=require(_0x099e('0x7'))(_0x099e('0x8'));var config=require(_0x099e('0x9'));var jayson=require(_0x099e('0xa'));var client=jayson[_0x099e('0xb')][_0x099e('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x223dce,_0x14dbc9,_0x17db9d){return new BPromise(function(_0x1544c1,_0x52d88b){return client[_0x099e('0xd')](_0x223dce,_0x17db9d)[_0x099e('0xe')](function(_0x32e32f){logger[_0x099e('0xf')]('UserChatQueue,\x20%s,\x20%s',_0x14dbc9,_0x099e('0x10'));logger[_0x099e('0x11')](_0x099e('0x12'),_0x14dbc9,'request\x20sent',JSON[_0x099e('0x13')](_0x32e32f));if(_0x32e32f[_0x099e('0x14')]){if(_0x32e32f[_0x099e('0x14')][_0x099e('0x15')]===0x1f4){logger[_0x099e('0x14')]('UserChatQueue,\x20%s,\x20%s',_0x14dbc9,_0x32e32f[_0x099e('0x14')][_0x099e('0x16')]);return _0x52d88b(_0x32e32f[_0x099e('0x14')][_0x099e('0x16')]);}logger[_0x099e('0x14')](_0x099e('0x17'),_0x14dbc9,_0x32e32f['error']['message']);return _0x1544c1(_0x32e32f[_0x099e('0x14')][_0x099e('0x16')]);}else{logger['info']('UserChatQueue,\x20%s,\x20%s',_0x14dbc9,_0x099e('0x10'));_0x1544c1(_0x32e32f[_0x099e('0x18')][_0x099e('0x16')]);}})[_0x099e('0x19')](function(_0x53ca33){logger[_0x099e('0x14')](_0x099e('0x17'),_0x14dbc9,_0x53ca33);_0x52d88b(_0x53ca33);});});}
\ 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(_0x3c5865,_0xa64b84){var _0x8f5c44=function(_0xc63a04){while(--_0xc63a04){_0x3c5865['push'](_0x3c5865['shift']());}};_0x8f5c44(++_0xa64b84);}(_0xcb91,0x1a9));var _0x1cb9=function(_0x4c7935,_0x4a53fb){_0x4c7935=_0x4c7935-0x0;var _0x30651d=_0xcb91[_0x4c7935];return _0x30651d;};'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 _0xe706=['../../components/interaction/service','../../config/environment','exports','multer','util','path','express','Router','fs-extra','../../components/auth/service'];(function(_0x4b3571,_0x5e6c7d){var _0x1b61d9=function(_0x2d057b){while(--_0x2d057b){_0x4b3571['push'](_0x4b3571['shift']());}};_0x1b61d9(++_0x5e6c7d);}(_0xe706,0xa3));var _0x6e70=function(_0x2f2ed0,_0x1c6435){_0x2f2ed0=_0x2f2ed0-0x0;var _0x250b0d=_0xe706[_0x2f2ed0];return _0x250b0d;};'use strict';var multer=require(_0x6e70('0x0'));var util=require(_0x6e70('0x1'));var path=require(_0x6e70('0x2'));var timeout=require('connect-timeout');var express=require(_0x6e70('0x3'));var router=express[_0x6e70('0x4')]();var fs_extra=require(_0x6e70('0x5'));var auth=require(_0x6e70('0x6'));var interaction=require(_0x6e70('0x7'));var config=require(_0x6e70('0x8'));module[_0x6e70('0x9')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xff90=['INTEGER','STRING','sequelize','exports'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xff90,0x1ee));var _0x0ff9=function(_0x3337b6,_0x42c7f9){_0x3337b6=_0x3337b6-0x0;var _0x568270=_0xff90[_0x3337b6];return _0x568270;};'use strict';var Sequelize=require(_0x0ff9('0x0'));module[_0x0ff9('0x1')]={'penalty':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'assigned':{'type':Sequelize[_0x0ff9('0x2')],'defaultValue':0x0},'queue':{'type':Sequelize[_0x0ff9('0x3')]}};
\ No newline at end of file
+var _0x73da=['INTEGER','STRING','sequelize','exports'];(function(_0x460e6d,_0x26bbf9){var _0x288333=function(_0x3c8211){while(--_0x3c8211){_0x460e6d['push'](_0x460e6d['shift']());}};_0x288333(++_0x26bbf9);}(_0x73da,0x172));var _0xa73d=function(_0x2f45ea,_0x15c656){_0x2f45ea=_0x2f45ea-0x0;var _0x485a84=_0x73da[_0x2f45ea];return _0x485a84;};'use strict';var Sequelize=require(_0xa73d('0x0'));module[_0xa73d('0x1')]={'penalty':{'type':Sequelize[_0xa73d('0x2')],'defaultValue':0x0},'assigned':{'type':Sequelize[_0xa73d('0x2')],'defaultValue':0x0},'queue':{'type':Sequelize[_0xa73d('0x3')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x92d8=['util','../../config/logger','api','request-promise','exports','define','UserFaxQueue','user_has_fax_queues'];(function(_0x152678,_0x11e0ac){var _0x311a9=function(_0x4f5291){while(--_0x4f5291){_0x152678['push'](_0x152678['shift']());}};_0x311a9(++_0x11e0ac);}(_0x92d8,0x118));var _0x892d=function(_0x56315b,_0x1ea19d){_0x56315b=_0x56315b-0x0;var _0x345abd=_0x92d8[_0x56315b];return _0x345abd;};'use strict';var _=require('lodash');var util=require(_0x892d('0x0'));var logger=require(_0x892d('0x1'))(_0x892d('0x2'));var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0x892d('0x3'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require('./userFaxQueue.attributes');module[_0x892d('0x4')]=function(_0x433a68,_0x2b95f8){return _0x433a68[_0x892d('0x5')](_0x892d('0x6'),attributes,{'tableName':_0x892d('0x7'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x35f7=['request-promise','../../config/environment','./userFaxQueue.attributes','exports','define','UserFaxQueue','user_has_fax_queues','lodash','util','api','moment','bluebird'];(function(_0x4243a3,_0x447337){var _0x1b2a33=function(_0x6a8200){while(--_0x6a8200){_0x4243a3['push'](_0x4243a3['shift']());}};_0x1b2a33(++_0x447337);}(_0x35f7,0x1b7));var _0x735f=function(_0x2a13bb,_0x19ab6e){_0x2a13bb=_0x2a13bb-0x0;var _0x1c2540=_0x35f7[_0x2a13bb];return _0x1c2540;};'use strict';var _=require(_0x735f('0x0'));var util=require(_0x735f('0x1'));var logger=require('../../config/logger')(_0x735f('0x2'));var moment=require(_0x735f('0x3'));var BPromise=require(_0x735f('0x4'));var rp=require(_0x735f('0x5'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0x735f('0x6'));var attributes=require(_0x735f('0x7'));module[_0x735f('0x8')]=function(_0x2150a3,_0x15ab03){return _0x2150a3[_0x735f('0x9')](_0x735f('0xa'),attributes,{'tableName':_0x735f('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xeb3b=['request\x20sent','debug','UserFaxQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','then','info','UserFaxQueue,\x20%s,\x20%s'];(function(_0x3015ab,_0x3e3127){var _0x5eea64=function(_0x1f8346){while(--_0x1f8346){_0x3015ab['push'](_0x3015ab['shift']());}};_0x5eea64(++_0x3e3127);}(_0xeb3b,0x111));var _0xbeb3=function(_0x3b5ad9,_0x223867){_0x3b5ad9=_0x3b5ad9-0x0;var _0x611ae9=_0xeb3b[_0x3b5ad9];return _0x611ae9;};'use strict';var _=require(_0xbeb3('0x0'));var util=require(_0xbeb3('0x1'));var moment=require(_0xbeb3('0x2'));var BPromise=require(_0xbeb3('0x3'));var rs=require(_0xbeb3('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xbeb3('0x5'))['db'];var utils=require(_0xbeb3('0x6'));var logger=require(_0xbeb3('0x7'))(_0xbeb3('0x8'));var config=require(_0xbeb3('0x9'));var jayson=require('jayson/promise');var client=jayson[_0xbeb3('0xa')][_0xbeb3('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x4d4a2d,_0x3c4645,_0xdfa491){return new BPromise(function(_0x2fc7e3,_0x3d03fd){return client['request'](_0x4d4a2d,_0xdfa491)[_0xbeb3('0xc')](function(_0x147dc3){logger[_0xbeb3('0xd')](_0xbeb3('0xe'),_0x3c4645,_0xbeb3('0xf'));logger[_0xbeb3('0x10')](_0xbeb3('0x11'),_0x3c4645,_0xbeb3('0xf'),JSON[_0xbeb3('0x12')](_0x147dc3));if(_0x147dc3[_0xbeb3('0x13')]){if(_0x147dc3[_0xbeb3('0x13')][_0xbeb3('0x14')]===0x1f4){logger['error']('UserFaxQueue,\x20%s,\x20%s',_0x3c4645,_0x147dc3[_0xbeb3('0x13')]['message']);return _0x3d03fd(_0x147dc3[_0xbeb3('0x13')][_0xbeb3('0x15')]);}logger['error'](_0xbeb3('0xe'),_0x3c4645,_0x147dc3['error'][_0xbeb3('0x15')]);return _0x2fc7e3(_0x147dc3['error'][_0xbeb3('0x15')]);}else{logger['info']('UserFaxQueue,\x20%s,\x20%s',_0x3c4645,_0xbeb3('0xf'));_0x2fc7e3(_0x147dc3[_0xbeb3('0x16')][_0xbeb3('0x15')]);}})[_0xbeb3('0x17')](function(_0x44e8b2){logger[_0xbeb3('0x13')](_0xbeb3('0xe'),_0x3c4645,_0x44e8b2);_0x3d03fd(_0x44e8b2);});});}
\ No newline at end of file
+var _0x08c5=['../../config/environment','jayson/promise','client','http','request','then','UserFaxQueue,\x20%s,\x20%s','request\x20sent','debug','UserFaxQueue,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../config/logger'];(function(_0x31172e,_0xa59e5){var _0x414ada=function(_0x37ede4){while(--_0x37ede4){_0x31172e['push'](_0x31172e['shift']());}};_0x414ada(++_0xa59e5);}(_0x08c5,0xd5));var _0x508c=function(_0x36c80e,_0x137109){_0x36c80e=_0x36c80e-0x0;var _0x4e459e=_0x08c5[_0x36c80e];return _0x4e459e;};'use strict';var _=require(_0x508c('0x0'));var util=require(_0x508c('0x1'));var moment=require(_0x508c('0x2'));var BPromise=require(_0x508c('0x3'));var rs=require(_0x508c('0x4'));var fs=require('fs');var Redis=require(_0x508c('0x5'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0x508c('0x6'))('rpc');var config=require(_0x508c('0x7'));var jayson=require(_0x508c('0x8'));var client=jayson[_0x508c('0x9')][_0x508c('0xa')]({'port':0x232a});function respondWithRpcPromise(_0xd50e26,_0x11dfb1,_0x5e3fb4){return new BPromise(function(_0x3bca37,_0x2e8eab){return client[_0x508c('0xb')](_0xd50e26,_0x5e3fb4)[_0x508c('0xc')](function(_0x2fb5f0){logger['info'](_0x508c('0xd'),_0x11dfb1,_0x508c('0xe'));logger[_0x508c('0xf')](_0x508c('0x10'),_0x11dfb1,'request\x20sent',JSON[_0x508c('0x11')](_0x2fb5f0));if(_0x2fb5f0[_0x508c('0x12')]){if(_0x2fb5f0[_0x508c('0x12')]['code']===0x1f4){logger[_0x508c('0x12')](_0x508c('0xd'),_0x11dfb1,_0x2fb5f0[_0x508c('0x12')][_0x508c('0x13')]);return _0x2e8eab(_0x2fb5f0['error'][_0x508c('0x13')]);}logger['error'](_0x508c('0xd'),_0x11dfb1,_0x2fb5f0[_0x508c('0x12')][_0x508c('0x13')]);return _0x3bca37(_0x2fb5f0[_0x508c('0x12')][_0x508c('0x13')]);}else{logger['info']('UserFaxQueue,\x20%s,\x20%s',_0x11dfb1,_0x508c('0xe'));_0x3bca37(_0x2fb5f0[_0x508c('0x14')][_0x508c('0x13')]);}})[_0x508c('0x15')](function(_0x298295){logger[_0x508c('0x12')](_0x508c('0xd'),_0x11dfb1,_0x298295);_0x2e8eab(_0x298295);});});}
\ 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(_0x3be60f,_0x4bdfa7){var _0x5763ce=function(_0x50355b){while(--_0x50355b){_0x3be60f['push'](_0x3be60f['shift']());}};_0x5763ce(++_0x4bdfa7);}(_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 _0xe706=['../../components/interaction/service','../../config/environment','exports','multer','util','path','express','Router','fs-extra','../../components/auth/service'];(function(_0x47300d,_0x144208){var _0x14a31b=function(_0x4c891d){while(--_0x4c891d){_0x47300d['push'](_0x47300d['shift']());}};_0x14a31b(++_0x144208);}(_0xe706,0xa3));var _0x6e70=function(_0x17aa7a,_0x2be8e4){_0x17aa7a=_0x17aa7a-0x0;var _0x2321f8=_0xe706[_0x17aa7a];return _0x2321f8;};'use strict';var multer=require(_0x6e70('0x0'));var util=require(_0x6e70('0x1'));var path=require(_0x6e70('0x2'));var timeout=require('connect-timeout');var express=require(_0x6e70('0x3'));var router=express[_0x6e70('0x4')]();var fs_extra=require(_0x6e70('0x5'));var auth=require(_0x6e70('0x6'));var interaction=require(_0x6e70('0x7'));var config=require(_0x6e70('0x8'));module[_0x6e70('0x9')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x25e5=['INTEGER','sequelize','exports'];(function(_0x51989f,_0x3d6340){var _0x4c8405=function(_0x1086bb){while(--_0x1086bb){_0x51989f['push'](_0x51989f['shift']());}};_0x4c8405(++_0x3d6340);}(_0x25e5,0xb5));var _0x525e=function(_0x19dd7a,_0x51de21){_0x19dd7a=_0x19dd7a-0x0;var _0x3feb6a=_0x25e5[_0x19dd7a];return _0x3feb6a;};'use strict';var Sequelize=require(_0x525e('0x0'));module[_0x525e('0x1')]={'penalty':{'type':Sequelize[_0x525e('0x2')],'defaultValue':0x0}};
\ No newline at end of file
+var _0x83f1=['exports'];(function(_0x5a6ef2,_0xf24d96){var _0x321942=function(_0x20e16a){while(--_0x20e16a){_0x5a6ef2['push'](_0x5a6ef2['shift']());}};_0x321942(++_0xf24d96);}(_0x83f1,0xa8));var _0x183f=function(_0x24c98c,_0x19cbc6){_0x24c98c=_0x24c98c-0x0;var _0x3b1ec2=_0x83f1[_0x24c98c];return _0x3b1ec2;};'use strict';var Sequelize=require('sequelize');module[_0x183f('0x0')]={'penalty':{'type':Sequelize['INTEGER'],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9db6=['./userMailQueue.attributes','exports','define','UserMailQueue','util','../../config/logger','moment','request-promise','path','rimraf','../../config/environment'];(function(_0xd64d61,_0x4b7a03){var _0x37dd18=function(_0x16c7c2){while(--_0x16c7c2){_0xd64d61['push'](_0xd64d61['shift']());}};_0x37dd18(++_0x4b7a03);}(_0x9db6,0x1f3));var _0x69db=function(_0x68c979,_0x431cff){_0x68c979=_0x68c979-0x0;var _0x4f0001=_0x9db6[_0x68c979];return _0x4f0001;};'use strict';var _=require('lodash');var util=require(_0x69db('0x0'));var logger=require(_0x69db('0x1'))('api');var moment=require(_0x69db('0x2'));var BPromise=require('bluebird');var rp=require(_0x69db('0x3'));var fs=require('fs');var path=require(_0x69db('0x4'));var rimraf=require(_0x69db('0x5'));var config=require(_0x69db('0x6'));var attributes=require(_0x69db('0x7'));module[_0x69db('0x8')]=function(_0xb5a5bf,_0x208db8){return _0xb5a5bf[_0x69db('0x9')](_0x69db('0xa'),attributes,{'tableName':'user_has_mail_queues','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xb60f=['bluebird','path','rimraf','../../config/environment','./userMailQueue.attributes','user_has_mail_queues','lodash','util','api'];(function(_0x627b1b,_0x462114){var _0x2fd022=function(_0x2059c5){while(--_0x2059c5){_0x627b1b['push'](_0x627b1b['shift']());}};_0x2fd022(++_0x462114);}(_0xb60f,0x69));var _0xfb60=function(_0x311df8,_0x3ec177){_0x311df8=_0x311df8-0x0;var _0x49eb58=_0xb60f[_0x311df8];return _0x49eb58;};'use strict';var _=require(_0xfb60('0x0'));var util=require(_0xfb60('0x1'));var logger=require('../../config/logger')(_0xfb60('0x2'));var moment=require('moment');var BPromise=require(_0xfb60('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xfb60('0x4'));var rimraf=require(_0xfb60('0x5'));var config=require(_0xfb60('0x6'));var attributes=require(_0xfb60('0x7'));module['exports']=function(_0x36705a,_0x117721){return _0x36705a['define']('UserMailQueue',attributes,{'tableName':_0xfb60('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x008c=['../../config/logger','rpc','../../config/environment','jayson/promise','client','http','info','UserMailQueue,\x20%s,\x20%s,\x20%s','request\x20sent','error','code','UserMailQueue,\x20%s,\x20%s','message','catch','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils'];(function(_0x4a9fb1,_0x273043){var _0x348672=function(_0x142b69){while(--_0x142b69){_0x4a9fb1['push'](_0x4a9fb1['shift']());}};_0x348672(++_0x273043);}(_0x008c,0x188));var _0xc008=function(_0x612ce5,_0x3f9440){_0x612ce5=_0x612ce5-0x0;var _0x1558e8=_0x008c[_0x612ce5];return _0x1558e8;};'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});function respondWithRpcPromise(_0x9c8cb2,_0x4af530,_0x428fa9){return new BPromise(function(_0x5aa09b,_0x30be38){return client['request'](_0x9c8cb2,_0x428fa9)['then'](function(_0x27830d){logger[_0xc008('0xd')]('UserMailQueue,\x20%s,\x20%s',_0x4af530,'request\x20sent');logger['debug'](_0xc008('0xe'),_0x4af530,_0xc008('0xf'),JSON['stringify'](_0x27830d));if(_0x27830d[_0xc008('0x10')]){if(_0x27830d[_0xc008('0x10')][_0xc008('0x11')]===0x1f4){logger[_0xc008('0x10')](_0xc008('0x12'),_0x4af530,_0x27830d[_0xc008('0x10')][_0xc008('0x13')]);return _0x30be38(_0x27830d['error']['message']);}logger[_0xc008('0x10')]('UserMailQueue,\x20%s,\x20%s',_0x4af530,_0x27830d[_0xc008('0x10')][_0xc008('0x13')]);return _0x5aa09b(_0x27830d[_0xc008('0x10')][_0xc008('0x13')]);}else{logger[_0xc008('0xd')]('UserMailQueue,\x20%s,\x20%s',_0x4af530,'request\x20sent');_0x5aa09b(_0x27830d['result'][_0xc008('0x13')]);}})[_0xc008('0x14')](function(_0x3cafe3){logger[_0xc008('0x10')]('UserMailQueue,\x20%s,\x20%s',_0x4af530,_0x3cafe3);_0x30be38(_0x3cafe3);});});}
\ No newline at end of file
+var _0x4b84=['../../config/logger','rpc','http','then','info','request\x20sent','debug','UserMailQueue,\x20%s,\x20%s,\x20%s','stringify','error','UserMailQueue,\x20%s,\x20%s','message','lodash','util','randomstring','../../config/utils'];(function(_0x3aec7a,_0xa70ae3){var _0x1bd042=function(_0x1e859b){while(--_0x1e859b){_0x3aec7a['push'](_0x3aec7a['shift']());}};_0x1bd042(++_0xa70ae3);}(_0x4b84,0x1cc));var _0x44b8=function(_0x8c8176,_0x5360a1){_0x8c8176=_0x8c8176-0x0;var _0x4dc47b=_0x4b84[_0x8c8176];return _0x4dc47b;};'use strict';var _=require(_0x44b8('0x0'));var util=require(_0x44b8('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0x44b8('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0x44b8('0x3'));var logger=require(_0x44b8('0x4'))(_0x44b8('0x5'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson['client'][_0x44b8('0x6')]({'port':0x232a});function respondWithRpcPromise(_0x54274b,_0x327f59,_0x5947f7){return new BPromise(function(_0x3e87c5,_0x5a2353){return client['request'](_0x54274b,_0x5947f7)[_0x44b8('0x7')](function(_0x42319d){logger[_0x44b8('0x8')]('UserMailQueue,\x20%s,\x20%s',_0x327f59,_0x44b8('0x9'));logger[_0x44b8('0xa')](_0x44b8('0xb'),_0x327f59,_0x44b8('0x9'),JSON[_0x44b8('0xc')](_0x42319d));if(_0x42319d[_0x44b8('0xd')]){if(_0x42319d[_0x44b8('0xd')]['code']===0x1f4){logger[_0x44b8('0xd')](_0x44b8('0xe'),_0x327f59,_0x42319d['error'][_0x44b8('0xf')]);return _0x5a2353(_0x42319d['error'][_0x44b8('0xf')]);}logger[_0x44b8('0xd')]('UserMailQueue,\x20%s,\x20%s',_0x327f59,_0x42319d[_0x44b8('0xd')]['message']);return _0x3e87c5(_0x42319d['error'][_0x44b8('0xf')]);}else{logger[_0x44b8('0x8')](_0x44b8('0xe'),_0x327f59,_0x44b8('0x9'));_0x3e87c5(_0x42319d['result']['message']);}})['catch'](function(_0x3fe9fb){logger['error'](_0x44b8('0xe'),_0x327f59,_0x3fe9fb);_0x5a2353(_0x3fe9fb);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8f8e=['sendUserNotification','exports','multer','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','isAuthenticated'];(function(_0x68c979,_0x431cff){var _0x4f0001=function(_0xa7595d){while(--_0xa7595d){_0x68c979['push'](_0x68c979['shift']());}};_0x4f0001(++_0x431cff);}(_0x8f8e,0x7b));var _0xe8f8=function(_0x5bf2b3,_0xfcd364){_0x5bf2b3=_0x5bf2b3-0x0;var _0x5e8a9b=_0x8f8e[_0x5bf2b3];return _0x5e8a9b;};'use strict';var multer=require(_0xe8f8('0x0'));var util=require('util');var path=require(_0xe8f8('0x1'));var timeout=require(_0xe8f8('0x2'));var express=require(_0xe8f8('0x3'));var router=express[_0xe8f8('0x4')]();var fs_extra=require(_0xe8f8('0x5'));var auth=require(_0xe8f8('0x6'));var interaction=require(_0xe8f8('0x7'));var config=require('../../config/environment');var controller=require('./userNotification.controller');router['post']('/',auth[_0xe8f8('0x8')](),controller[_0xe8f8('0x9')]);module[_0xe8f8('0xa')]=router;
\ No newline at end of file
+var _0x029b=['isAuthenticated','sendUserNotification','exports','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../config/environment','./userNotification.controller','post'];(function(_0x134a90,_0x2f8e0b){var _0x4e62ca=function(_0x396866){while(--_0x396866){_0x134a90['push'](_0x134a90['shift']());}};_0x4e62ca(++_0x2f8e0b);}(_0x029b,0x87));var _0xb029=function(_0x179294,_0xacfa16){_0x179294=_0x179294-0x0;var _0x469a68=_0x029b[_0x179294];return _0x469a68;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0xb029('0x0'));var timeout=require(_0xb029('0x1'));var express=require('express');var router=express[_0xb029('0x2')]();var fs_extra=require(_0xb029('0x3'));var auth=require(_0xb029('0x4'));var interaction=require('../../components/interaction/service');var config=require(_0xb029('0x5'));var controller=require(_0xb029('0x6'));router[_0xb029('0x7')]('/',auth[_0xb029('0x8')](),controller[_0xb029('0x9')]);module[_0xb029('0xa')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb9d2=['TEXT','STRING','exports'];(function(_0x4a3708,_0x1b0ef0){var _0x5175f7=function(_0xe5d034){while(--_0xe5d034){_0x4a3708['push'](_0x4a3708['shift']());}};_0x5175f7(++_0x1b0ef0);}(_0xb9d2,0x9e));var _0x2b9d=function(_0x1067cb,_0x21d610){_0x1067cb=_0x1067cb-0x0;var _0x2fa954=_0xb9d2[_0x1067cb];return _0x2fa954;};'use strict';var Sequelize=require('sequelize');module[_0x2b9d('0x0')]={'body':{'type':Sequelize[_0x2b9d('0x1')]},'senderName':{'type':Sequelize[_0x2b9d('0x2')]},'recipientsId':{'type':Sequelize[_0x2b9d('0x1')]},'recipientsDescription':{'type':Sequelize[_0x2b9d('0x2')]},'beep':{'type':Sequelize['BOOLEAN']}};
\ No newline at end of file
+var _0xb7fe=['sequelize','exports','TEXT','STRING'];(function(_0x63be08,_0x212345){var _0xd1af9c=function(_0x29e556){while(--_0x29e556){_0x63be08['push'](_0x63be08['shift']());}};_0xd1af9c(++_0x212345);}(_0xb7fe,0x1bc));var _0xeb7f=function(_0x33d020,_0x5249f4){_0x33d020=_0x33d020-0x0;var _0xc3bfca=_0xb7fe[_0x33d020];return _0xc3bfca;};'use strict';var Sequelize=require(_0xeb7f('0x0'));module[_0xeb7f('0x1')]={'body':{'type':Sequelize[_0xeb7f('0x2')]},'senderName':{'type':Sequelize[_0xeb7f('0x3')]},'recipientsId':{'type':Sequelize[_0xeb7f('0x2')]},'recipientsDescription':{'type':Sequelize[_0xeb7f('0x3')]},'beep':{'type':Sequelize['BOOLEAN']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2c9d=['error','stack','name','send','body','hasOwnProperty','TemplateId','Sequelize','Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27','view','ValidationError','Missing\x20\x27view\x27\x20parameter','recipients','parse','Invalid\x20\x27recipients\x27\x20object','chatqueue','faxqueue','mailqueue','smsqueue','voicequeue','team','user','includes','model','senderName','fullname','recipientsDescription','isEmpty','beep','SenderId','recipientsId','join','transaction','create','forEach','recipient','emit','userNotification:send','catch','text','Template','findOne','html','Invalid\x20\x27TemplateId\x27\x20parameter','render','startCase','toLowerCase','User','union','replace','queue','Queue','ids','push','all','flatten','getAgents','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','../../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','json','offset','undefined','count','limit','Content-Range','apply','save','update','then','end'];(function(_0x1aa368,_0x56c31d){var _0x3d9e29=function(_0x32c580){while(--_0x32c580){_0x1aa368['push'](_0x1aa368['shift']());}};_0x3d9e29(++_0x56c31d);}(_0x2c9d,0x9d));var _0xd2c9=function(_0x550d12,_0x5384bd){_0x550d12=_0x550d12-0x0;var _0x12103d=_0x2c9d[_0x550d12];return _0x12103d;};'use strict';var emlformat=require(_0xd2c9('0x0'));var rimraf=require(_0xd2c9('0x1'));var zipdir=require(_0xd2c9('0x2'));var jsonpatch=require(_0xd2c9('0x3'));var rp=require(_0xd2c9('0x4'));var moment=require(_0xd2c9('0x5'));var BPromise=require(_0xd2c9('0x6'));var Mustache=require(_0xd2c9('0x7'));var util=require(_0xd2c9('0x8'));var path=require('path');var sox=require('sox');var csv=require(_0xd2c9('0x9'));var ejs=require(_0xd2c9('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xd2c9('0xb'));var squel=require(_0xd2c9('0xc'));var crypto=require(_0xd2c9('0xd'));var jsforce=require(_0xd2c9('0xe'));var deskjs=require(_0xd2c9('0xf'));var toCsv=require(_0xd2c9('0x9'));var querystring=require(_0xd2c9('0x10'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0xd2c9('0x11'));var qs=require(_0xd2c9('0x12'));var as=require(_0xd2c9('0x13'));var hardwareService=require(_0xd2c9('0x14'));var logger=require(_0xd2c9('0x15'))(_0xd2c9('0x16'));var utils=require(_0xd2c9('0x17'));var config=require(_0xd2c9('0x18'));var licenseUtil=require(_0xd2c9('0x19'));var db=require('../../mysqldb')['db'];config[_0xd2c9('0x1a')]=_['defaults'](config[_0xd2c9('0x1a')],{'host':_0xd2c9('0x1b'),'port':0x18eb});var socket=require(_0xd2c9('0x1c'))(new Redis(config['redis']));require('./userNotification.socket')[_0xd2c9('0x1d')](socket);function respondWithStatusCode(_0x4d54c1,_0x12a48f){_0x12a48f=_0x12a48f||0xcc;return function(_0x1a083c){if(_0x1a083c){return _0x4d54c1[_0xd2c9('0x1e')](_0x12a48f);}return _0x4d54c1[_0xd2c9('0x1f')](_0x12a48f)['end']();};}function respondWithResult(_0x98a166,_0x5f1c00){_0x5f1c00=_0x5f1c00||0xc8;return function(_0xad1ee7){if(_0xad1ee7){return _0x98a166['status'](_0x5f1c00)[_0xd2c9('0x20')](_0xad1ee7);}};}function respondWithFilteredResult(_0x203345,_0x1b17b4){return function(_0x334009){if(_0x334009){var _0x4fa066=typeof _0x1b17b4[_0xd2c9('0x21')]===_0xd2c9('0x22')&&typeof _0x1b17b4['limit']===_0xd2c9('0x22');var _0x40d49e=_0x334009[_0xd2c9('0x23')];var _0x2e1408=_0x4fa066?0x0:_0x1b17b4[_0xd2c9('0x21')];var _0x5373e4=_0x4fa066?_0x334009[_0xd2c9('0x23')]:_0x1b17b4['offset']+_0x1b17b4[_0xd2c9('0x24')];var _0xe38ba0;if(_0x5373e4>=_0x40d49e){_0x5373e4=_0x40d49e;_0xe38ba0=0xc8;}else{_0xe38ba0=0xce;}_0x203345[_0xd2c9('0x1f')](_0xe38ba0);return _0x203345['set'](_0xd2c9('0x25'),_0x2e1408+'-'+_0x5373e4+'/'+_0x40d49e)[_0xd2c9('0x20')](_0x334009);}return null;};}function patchUpdates(_0x575b6f){return function(_0xbcdf){try{jsonpatch[_0xd2c9('0x26')](_0xbcdf,_0x575b6f,!![]);}catch(_0xee2145){return BPromise['reject'](_0xee2145);}return _0xbcdf[_0xd2c9('0x27')]();};}function saveUpdates(_0x46c1f8,_0x1fbd98){return function(_0x10e90f){if(_0x10e90f){return _0x10e90f[_0xd2c9('0x28')](_0x46c1f8)[_0xd2c9('0x29')](function(_0x482273){return _0x482273;});}return null;};}function removeEntity(_0x1b52b8,_0x2cbfa0){return function(_0x168d96){if(_0x168d96){return _0x168d96['destroy']()['then'](function(){_0x1b52b8[_0xd2c9('0x1f')](0xcc)[_0xd2c9('0x2a')]();});}};}function handleEntityNotFound(_0x951a4b,_0x29bd2b){return function(_0x3e6f6e){if(!_0x3e6f6e){_0x951a4b[_0xd2c9('0x1e')](0x194);}return _0x3e6f6e;};}function handleError(_0x35ebb9,_0x2d09a8){_0x2d09a8=_0x2d09a8||0x1f4;return function(_0x91c520){logger[_0xd2c9('0x2b')](_0x91c520[_0xd2c9('0x2c')]);if(_0x91c520['name']){delete _0x91c520[_0xd2c9('0x2d')];}_0x35ebb9[_0xd2c9('0x1f')](_0x2d09a8)[_0xd2c9('0x2e')](_0x91c520);};}exports['sendUserNotification']=function(_0x13bc53,_0x20dfee,_0x5af381){if(!_0x13bc53[_0xd2c9('0x2f')]['hasOwnProperty']('text')&&!_0x13bc53[_0xd2c9('0x2f')][_0xd2c9('0x30')](_0xd2c9('0x31'))){throw new db[(_0xd2c9('0x32'))]['ValidationError'](_0xd2c9('0x33'));}else{if(_0x13bc53['body'][_0xd2c9('0x30')](_0xd2c9('0x31'))&&!_0x13bc53[_0xd2c9('0x2f')]['hasOwnProperty'](_0xd2c9('0x34'))){throw new db[(_0xd2c9('0x32'))][(_0xd2c9('0x35'))](_0xd2c9('0x36'));}if(!_0x13bc53['body'][_0xd2c9('0x30')](_0xd2c9('0x37'))){throw new db[(_0xd2c9('0x32'))][(_0xd2c9('0x35'))]('Missing\x20\x27recipients\x27\x20parameter');}else{try{var _0x569324=JSON[_0xd2c9('0x38')](_0x13bc53[_0xd2c9('0x2f')]['recipients']);}catch(_0x3021f5){logger[_0xd2c9('0x2b')](_0x3021f5);throw new db[(_0xd2c9('0x32'))]['ValidationError'](_0xd2c9('0x39'));}var _0x3132c2=[_0xd2c9('0x3a'),_0xd2c9('0x3b'),_0xd2c9('0x3c'),'openchannelqueue',_0xd2c9('0x3d'),_0xd2c9('0x3e'),'whatsappqueue',_0xd2c9('0x3f'),_0xd2c9('0x40')];if(_['some'](_0x569324,function(_0x4ab3be){return!_[_0xd2c9('0x41')](_0x3132c2,_0x4ab3be[_0xd2c9('0x42')]['toLowerCase']());})){throw new db[(_0xd2c9('0x32'))][(_0xd2c9('0x35'))]('Invalid\x20model\x20in\x20\x27recipients\x27\x20object');}}}var _0x4305be={};_0x4305be['senderName']=_0x13bc53['body'][_0xd2c9('0x30')](_0xd2c9('0x43'))?_0x13bc53[_0xd2c9('0x2f')]['senderName']:_0x13bc53['user'][_0xd2c9('0x44')];_0x4305be[_0xd2c9('0x45')]=_[_0xd2c9('0x46')](_0x13bc53[_0xd2c9('0x2f')][_0xd2c9('0x45')])?null:_0x13bc53['body'][_0xd2c9('0x45')];_0x4305be[_0xd2c9('0x47')]=_0x13bc53[_0xd2c9('0x2f')][_0xd2c9('0x47')]||![];_0x4305be[_0xd2c9('0x48')]=_0x13bc53['user']['id'];return getContent(_0x13bc53[_0xd2c9('0x2f')])[_0xd2c9('0x29')](function(_0x1089e7){_0x4305be[_0xd2c9('0x2f')]=_0x1089e7;return getRecipients(_0x569324);})[_0xd2c9('0x29')](function(_0x519280){_0x4305be[_0xd2c9('0x49')]=_['sortBy'](_0x519280)[_0xd2c9('0x4a')](',');return db['sequelize'][_0xd2c9('0x4b')](function(_0x5ae1c7){return db['UserNotification'][_0xd2c9('0x4c')](_0x4305be,{'raw':!![],'transaction':_0x5ae1c7})['then'](function(_0x588ea2){var _0xe704fd={'sender':_0x4305be[_0xd2c9('0x43')],'description':_0x4305be[_0xd2c9('0x45')],'content':_0x4305be[_0xd2c9('0x2f')],'beep':_0x4305be[_0xd2c9('0x47')]};_0x519280[_0xd2c9('0x4d')](function(_0x23b31e){_0xe704fd[_0xd2c9('0x4e')]=_0x23b31e;socket[_0xd2c9('0x4f')](_0xd2c9('0x50'),_0xe704fd);});return _0x588ea2;});});})[_0xd2c9('0x29')](respondWithResult(_0x20dfee,0xc9))[_0xd2c9('0x51')](handleError(_0x20dfee,null));};function getContent(_0x389352){return new BPromise(function(_0x19d34b,_0x43d1f8){if(_0x389352['text']){_0x19d34b(_0x389352[_0xd2c9('0x52')]);return;}return db[_0xd2c9('0x53')][_0xd2c9('0x54')]({'attributes':[_0xd2c9('0x55')],'where':{'id':_0x389352['TemplateId']},'raw':!![]})[_0xd2c9('0x29')](function(_0x2552ea){if(!_0x2552ea)throw new db[(_0xd2c9('0x32'))][(_0xd2c9('0x35'))](_0xd2c9('0x56'));var _0x19c234=Mustache[_0xd2c9('0x57')](_0x2552ea[_0xd2c9('0x55')],_0x389352[_0xd2c9('0x34')]);_0x19d34b(_0x19c234);})[_0xd2c9('0x51')](function(_0x13d451){_0x43d1f8(_0x13d451);});});}function getRecipients(_0x3a1a7c){return new BPromise(function(_0x106ee5,_0x3d1148){var _0x4196d0=[];var _0x2aac6b=[];_0x3a1a7c[_0xd2c9('0x4d')](function(_0x35b2c8){var _0x519a25=_[_0xd2c9('0x58')](_0x35b2c8[_0xd2c9('0x42')][_0xd2c9('0x59')]());if(_0x519a25===_0xd2c9('0x5a')){_0x4196d0=_[_0xd2c9('0x5b')](_0x4196d0,_0x35b2c8['ids']);}else{if(_[_0xd2c9('0x41')](_0x519a25,'queue'))_0x519a25=_0x519a25[_0xd2c9('0x5c')](_0xd2c9('0x5d'),_0xd2c9('0x5e'));_0x35b2c8[_0xd2c9('0x5f')]['forEach'](function(_0x3838fe){_0x2aac6b[_0xd2c9('0x60')](getAgents(_0x519a25,_0x3838fe));});}});return BPromise[_0xd2c9('0x61')](_0x2aac6b)[_0xd2c9('0x29')](function(_0x28bdeb){_0x4196d0=_[_0xd2c9('0x5b')](_0x4196d0,_[_0xd2c9('0x62')](_0x28bdeb));_0x106ee5(_0x4196d0);})[_0xd2c9('0x51')](function(_0x4f6aea){_0x3d1148(_0x4f6aea);});});}function getAgents(_0x46aaea,_0x3d902d){return new BPromise(function(_0x45b621,_0x10b8fd){return db[_0x46aaea][_0xd2c9('0x54')]({'where':{'id':_0x3d902d}})[_0xd2c9('0x29')](function(_0x29d7e7){return _0x29d7e7[_0xd2c9('0x63')]({'attributes':['id'],'raw':!![]})[_0xd2c9('0x29')](function(_0x1a3a1e){var _0x17015b=_['map'](_0x1a3a1e,'id');_0x45b621(_0x17015b);});})[_0xd2c9('0x51')](function(_0x4b8389){_0x10b8fd(_0x4b8389);});});}
\ No newline at end of file
+var _0x49ef=['../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','socket.io-emitter','./userNotification.socket','register','sendStatus','status','end','json','offset','count','limit','set','Content-Range','apply','reject','save','update','destroy','error','stack','name','send','sendUserNotification','hasOwnProperty','body','TemplateId','Sequelize','Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27','view','ValidationError','Missing\x20\x27view\x27\x20parameter','parse','recipients','mailqueue','smsqueue','team','user','some','includes','model','toLowerCase','Invalid\x20model\x20in\x20\x27recipients\x27\x20object','senderName','fullname','recipientsDescription','isEmpty','beep','then','sequelize','UserNotification','create','recipient','emit','userNotification:send','catch','text','Template','html','Invalid\x20\x27TemplateId\x27\x20parameter','forEach','startCase','User','union','ids','queue','Queue','flatten','findOne','getAgents','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch'];(function(_0x17d9e3,_0x1f969c){var _0x14192d=function(_0x159745){while(--_0x159745){_0x17d9e3['push'](_0x17d9e3['shift']());}};_0x14192d(++_0x1f969c);}(_0x49ef,0x1d9));var _0xf49e=function(_0x42955a,_0xdf88d7){_0x42955a=_0x42955a-0x0;var _0x4f4fc1=_0x49ef[_0x42955a];return _0x4f4fc1;};'use strict';var emlformat=require(_0xf49e('0x0'));var rimraf=require(_0xf49e('0x1'));var zipdir=require(_0xf49e('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xf49e('0x3'));var moment=require(_0xf49e('0x4'));var BPromise=require(_0xf49e('0x5'));var Mustache=require(_0xf49e('0x6'));var util=require(_0xf49e('0x7'));var path=require(_0xf49e('0x8'));var sox=require(_0xf49e('0x9'));var csv=require(_0xf49e('0xa'));var ejs=require(_0xf49e('0xb'));var fs=require('fs');var fs_extra=require(_0xf49e('0xc'));var _=require(_0xf49e('0xd'));var squel=require(_0xf49e('0xe'));var crypto=require(_0xf49e('0xf'));var jsforce=require(_0xf49e('0x10'));var deskjs=require(_0xf49e('0x11'));var toCsv=require(_0xf49e('0xa'));var querystring=require(_0xf49e('0x12'));var Papa=require(_0xf49e('0x13'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0xf49e('0x14'));var as=require(_0xf49e('0x15'));var hardwareService=require(_0xf49e('0x16'));var logger=require(_0xf49e('0x17'))(_0xf49e('0x18'));var utils=require(_0xf49e('0x19'));var config=require(_0xf49e('0x1a'));var licenseUtil=require(_0xf49e('0x1b'));var db=require(_0xf49e('0x1c'))['db'];config[_0xf49e('0x1d')]=_['defaults'](config['redis'],{'host':_0xf49e('0x1e'),'port':0x18eb});var socket=require(_0xf49e('0x1f'))(new Redis(config[_0xf49e('0x1d')]));require(_0xf49e('0x20'))[_0xf49e('0x21')](socket);function respondWithStatusCode(_0x58e286,_0xa6773d){_0xa6773d=_0xa6773d||0xcc;return function(_0x3c2b8b){if(_0x3c2b8b){return _0x58e286[_0xf49e('0x22')](_0xa6773d);}return _0x58e286[_0xf49e('0x23')](_0xa6773d)[_0xf49e('0x24')]();};}function respondWithResult(_0x54c69e,_0x1b423e){_0x1b423e=_0x1b423e||0xc8;return function(_0x2e0e89){if(_0x2e0e89){return _0x54c69e[_0xf49e('0x23')](_0x1b423e)[_0xf49e('0x25')](_0x2e0e89);}};}function respondWithFilteredResult(_0x1b105e,_0x363fd4){return function(_0x38653e){if(_0x38653e){var _0x510169=typeof _0x363fd4[_0xf49e('0x26')]==='undefined'&&typeof _0x363fd4['limit']==='undefined';var _0x2f1f8f=_0x38653e[_0xf49e('0x27')];var _0x3f5464=_0x510169?0x0:_0x363fd4[_0xf49e('0x26')];var _0x4361a1=_0x510169?_0x38653e['count']:_0x363fd4['offset']+_0x363fd4[_0xf49e('0x28')];var _0x19fb59;if(_0x4361a1>=_0x2f1f8f){_0x4361a1=_0x2f1f8f;_0x19fb59=0xc8;}else{_0x19fb59=0xce;}_0x1b105e[_0xf49e('0x23')](_0x19fb59);return _0x1b105e[_0xf49e('0x29')](_0xf49e('0x2a'),_0x3f5464+'-'+_0x4361a1+'/'+_0x2f1f8f)['json'](_0x38653e);}return null;};}function patchUpdates(_0x490151){return function(_0x10439b){try{jsonpatch[_0xf49e('0x2b')](_0x10439b,_0x490151,!![]);}catch(_0x2774ca){return BPromise[_0xf49e('0x2c')](_0x2774ca);}return _0x10439b[_0xf49e('0x2d')]();};}function saveUpdates(_0x570817,_0x237b9c){return function(_0x118a92){if(_0x118a92){return _0x118a92[_0xf49e('0x2e')](_0x570817)['then'](function(_0xef42eb){return _0xef42eb;});}return null;};}function removeEntity(_0x958fdd,_0x42a71c){return function(_0x53adae){if(_0x53adae){return _0x53adae[_0xf49e('0x2f')]()['then'](function(){_0x958fdd[_0xf49e('0x23')](0xcc)['end']();});}};}function handleEntityNotFound(_0x445c4e,_0x3cc8a0){return function(_0x6da55b){if(!_0x6da55b){_0x445c4e[_0xf49e('0x22')](0x194);}return _0x6da55b;};}function handleError(_0x238b75,_0x1015ce){_0x1015ce=_0x1015ce||0x1f4;return function(_0xb0dc7e){logger[_0xf49e('0x30')](_0xb0dc7e[_0xf49e('0x31')]);if(_0xb0dc7e[_0xf49e('0x32')]){delete _0xb0dc7e[_0xf49e('0x32')];}_0x238b75[_0xf49e('0x23')](_0x1015ce)[_0xf49e('0x33')](_0xb0dc7e);};}exports[_0xf49e('0x34')]=function(_0x2a6134,_0x46b61c,_0x2c7f2a){if(!_0x2a6134['body'][_0xf49e('0x35')]('text')&&!_0x2a6134[_0xf49e('0x36')]['hasOwnProperty'](_0xf49e('0x37'))){throw new db[(_0xf49e('0x38'))]['ValidationError'](_0xf49e('0x39'));}else{if(_0x2a6134['body'][_0xf49e('0x35')](_0xf49e('0x37'))&&!_0x2a6134[_0xf49e('0x36')][_0xf49e('0x35')](_0xf49e('0x3a'))){throw new db[(_0xf49e('0x38'))][(_0xf49e('0x3b'))](_0xf49e('0x3c'));}if(!_0x2a6134[_0xf49e('0x36')][_0xf49e('0x35')]('recipients')){throw new db[(_0xf49e('0x38'))]['ValidationError']('Missing\x20\x27recipients\x27\x20parameter');}else{try{var _0x517ac4=JSON[_0xf49e('0x3d')](_0x2a6134[_0xf49e('0x36')][_0xf49e('0x3e')]);}catch(_0x467580){logger[_0xf49e('0x30')](_0x467580);throw new db[(_0xf49e('0x38'))][(_0xf49e('0x3b'))]('Invalid\x20\x27recipients\x27\x20object');}var _0x2db958=['chatqueue','faxqueue',_0xf49e('0x3f'),'openchannelqueue',_0xf49e('0x40'),'voicequeue','whatsappqueue',_0xf49e('0x41'),_0xf49e('0x42')];if(_[_0xf49e('0x43')](_0x517ac4,function(_0x3dcab6){return!_[_0xf49e('0x44')](_0x2db958,_0x3dcab6[_0xf49e('0x45')][_0xf49e('0x46')]());})){throw new db[(_0xf49e('0x38'))][(_0xf49e('0x3b'))](_0xf49e('0x47'));}}}var _0x54c3fd={};_0x54c3fd[_0xf49e('0x48')]=_0x2a6134['body'][_0xf49e('0x35')](_0xf49e('0x48'))?_0x2a6134[_0xf49e('0x36')][_0xf49e('0x48')]:_0x2a6134[_0xf49e('0x42')][_0xf49e('0x49')];_0x54c3fd[_0xf49e('0x4a')]=_[_0xf49e('0x4b')](_0x2a6134[_0xf49e('0x36')][_0xf49e('0x4a')])?null:_0x2a6134[_0xf49e('0x36')]['recipientsDescription'];_0x54c3fd[_0xf49e('0x4c')]=_0x2a6134[_0xf49e('0x36')][_0xf49e('0x4c')]||![];_0x54c3fd['SenderId']=_0x2a6134[_0xf49e('0x42')]['id'];return getContent(_0x2a6134[_0xf49e('0x36')])[_0xf49e('0x4d')](function(_0x3a5ce3){_0x54c3fd[_0xf49e('0x36')]=_0x3a5ce3;return getRecipients(_0x517ac4);})['then'](function(_0x1c6b7a){_0x54c3fd['recipientsId']=_['sortBy'](_0x1c6b7a)['join'](',');return db[_0xf49e('0x4e')]['transaction'](function(_0x525061){return db[_0xf49e('0x4f')][_0xf49e('0x50')](_0x54c3fd,{'raw':!![],'transaction':_0x525061})[_0xf49e('0x4d')](function(_0x4cce40){var _0x339061={'sender':_0x54c3fd[_0xf49e('0x48')],'description':_0x54c3fd[_0xf49e('0x4a')],'content':_0x54c3fd[_0xf49e('0x36')],'beep':_0x54c3fd[_0xf49e('0x4c')]};_0x1c6b7a['forEach'](function(_0x6a3bea){_0x339061[_0xf49e('0x51')]=_0x6a3bea;socket[_0xf49e('0x52')](_0xf49e('0x53'),_0x339061);});return _0x4cce40;});});})[_0xf49e('0x4d')](respondWithResult(_0x46b61c,0xc9))[_0xf49e('0x54')](handleError(_0x46b61c,null));};function getContent(_0x36cffb){return new BPromise(function(_0x26341b,_0x57b8df){if(_0x36cffb['text']){_0x26341b(_0x36cffb[_0xf49e('0x55')]);return;}return db[_0xf49e('0x56')]['findOne']({'attributes':[_0xf49e('0x57')],'where':{'id':_0x36cffb['TemplateId']},'raw':!![]})[_0xf49e('0x4d')](function(_0x5d3801){if(!_0x5d3801)throw new db['Sequelize'][(_0xf49e('0x3b'))](_0xf49e('0x58'));var _0x59ffa6=Mustache['render'](_0x5d3801['html'],_0x36cffb[_0xf49e('0x3a')]);_0x26341b(_0x59ffa6);})[_0xf49e('0x54')](function(_0x27614a){_0x57b8df(_0x27614a);});});}function getRecipients(_0x517273){return new BPromise(function(_0x6f05a8,_0x580e96){var _0x9796a6=[];var _0x4508fe=[];_0x517273[_0xf49e('0x59')](function(_0x359410){var _0x568ccb=_[_0xf49e('0x5a')](_0x359410[_0xf49e('0x45')][_0xf49e('0x46')]());if(_0x568ccb===_0xf49e('0x5b')){_0x9796a6=_[_0xf49e('0x5c')](_0x9796a6,_0x359410[_0xf49e('0x5d')]);}else{if(_[_0xf49e('0x44')](_0x568ccb,_0xf49e('0x5e')))_0x568ccb=_0x568ccb['replace'](_0xf49e('0x5e'),_0xf49e('0x5f'));_0x359410[_0xf49e('0x5d')][_0xf49e('0x59')](function(_0xebfce2){_0x4508fe['push'](getAgents(_0x568ccb,_0xebfce2));});}});return BPromise['all'](_0x4508fe)[_0xf49e('0x4d')](function(_0x4f6613){_0x9796a6=_[_0xf49e('0x5c')](_0x9796a6,_[_0xf49e('0x60')](_0x4f6613));_0x6f05a8(_0x9796a6);})['catch'](function(_0x4229dd){_0x580e96(_0x4229dd);});});}function getAgents(_0x3335ac,_0x332e57){return new BPromise(function(_0x515c9b,_0x549c7d){return db[_0x3335ac][_0xf49e('0x61')]({'where':{'id':_0x332e57}})[_0xf49e('0x4d')](function(_0xb36071){return _0xb36071[_0xf49e('0x62')]({'attributes':['id'],'raw':!![]})[_0xf49e('0x4d')](function(_0x26b031){var _0x59c2fe=_['map'](_0x26b031,'id');_0x515c9b(_0x59c2fe);});})[_0xf49e('0x54')](function(_0x3ce603){_0x549c7d(_0x3ce603);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4f12=['events','../../mysqldb','UserNotification','setMaxListeners','save','remove','emit','hook','exports'];(function(_0xdd4a3f,_0xb880bf){var _0x1af2e9=function(_0x45779c){while(--_0x45779c){_0xdd4a3f['push'](_0xdd4a3f['shift']());}};_0x1af2e9(++_0xb880bf);}(_0x4f12,0x19e));var _0x24f1=function(_0x25d4ab,_0x307164){_0x25d4ab=_0x25d4ab-0x0;var _0x3b31f3=_0x4f12[_0x25d4ab];return _0x3b31f3;};'use strict';var EventEmitter=require(_0x24f1('0x0'));var UserNotification=require(_0x24f1('0x1'))['db'][_0x24f1('0x2')];var UserNotificationEvents=new EventEmitter();UserNotificationEvents[_0x24f1('0x3')](0x0);var events={'afterCreate':_0x24f1('0x4'),'afterUpdate':'update','afterDestroy':_0x24f1('0x5')};function emitEvent(_0x479fb8){return function(_0x3b1fa4,_0x6bf083,_0x2b6b4f){UserNotificationEvents['emit'](_0x479fb8+':'+_0x3b1fa4['id'],_0x3b1fa4);UserNotificationEvents[_0x24f1('0x6')](_0x479fb8,_0x3b1fa4);_0x2b6b4f(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];UserNotification[_0x24f1('0x7')](e,emitEvent(event));}}module[_0x24f1('0x8')]=UserNotificationEvents;
\ No newline at end of file
+var _0xc65c=['save','update','emit','hasOwnProperty','hook','events','../../mysqldb','UserNotification','setMaxListeners'];(function(_0x1f5ee3,_0x42d31b){var _0x2db824=function(_0xa3030b){while(--_0xa3030b){_0x1f5ee3['push'](_0x1f5ee3['shift']());}};_0x2db824(++_0x42d31b);}(_0xc65c,0x1eb));var _0xcc65=function(_0x72fba1,_0x34ab87){_0x72fba1=_0x72fba1-0x0;var _0xffd396=_0xc65c[_0x72fba1];return _0xffd396;};'use strict';var EventEmitter=require(_0xcc65('0x0'));var UserNotification=require(_0xcc65('0x1'))['db'][_0xcc65('0x2')];var UserNotificationEvents=new EventEmitter();UserNotificationEvents[_0xcc65('0x3')](0x0);var events={'afterCreate':_0xcc65('0x4'),'afterUpdate':_0xcc65('0x5'),'afterDestroy':'remove'};function emitEvent(_0x302f2a){return function(_0xfb1d17,_0x37ee27,_0x13aeae){UserNotificationEvents[_0xcc65('0x6')](_0x302f2a+':'+_0xfb1d17['id'],_0xfb1d17);UserNotificationEvents[_0xcc65('0x6')](_0x302f2a,_0xfb1d17);_0x13aeae(null);};}for(var e in events){if(events[_0xcc65('0x7')](e)){var event=events[e];UserNotification[_0xcc65('0x8')](e,emitEvent(event));}}module['exports']=UserNotificationEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1a2c=['utf8mb4_unicode_ci','util','api','request-promise','path','rimraf','../../config/environment','define','UserNotification','userNotifications','utf8mb4'];(function(_0x33e4a7,_0x2e80a2){var _0x598620=function(_0x65d618){while(--_0x65d618){_0x33e4a7['push'](_0x33e4a7['shift']());}};_0x598620(++_0x2e80a2);}(_0x1a2c,0xf3));var _0xc1a2=function(_0x553235,_0x1c8418){_0x553235=_0x553235-0x0;var _0x2698e3=_0x1a2c[_0x553235];return _0x2698e3;};'use strict';var _=require('lodash');var util=require(_0xc1a2('0x0'));var logger=require('../../config/logger')(_0xc1a2('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0xc1a2('0x2'));var fs=require('fs');var path=require(_0xc1a2('0x3'));var rimraf=require(_0xc1a2('0x4'));var config=require(_0xc1a2('0x5'));var attributes=require('./userNotification.attributes');module['exports']=function(_0x550efb,_0x22a15c){return _0x550efb[_0xc1a2('0x6')](_0xc1a2('0x7'),attributes,{'tableName':_0xc1a2('0x8'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0xc1a2('0x9'),'collate':_0xc1a2('0xa')});};
\ No newline at end of file
+var _0x44f3=['request-promise','rimraf','./userNotification.attributes','exports','define','UserNotification','utf8mb4','utf8mb4_unicode_ci','util','api','moment','bluebird'];(function(_0x20a558,_0x160e0e){var _0x53d3f7=function(_0x259bd8){while(--_0x259bd8){_0x20a558['push'](_0x20a558['shift']());}};_0x53d3f7(++_0x160e0e);}(_0x44f3,0x188));var _0x344f=function(_0x15718b,_0x20f12e){_0x15718b=_0x15718b-0x0;var _0x2ca779=_0x44f3[_0x15718b];return _0x2ca779;};'use strict';var _=require('lodash');var util=require(_0x344f('0x0'));var logger=require('../../config/logger')(_0x344f('0x1'));var moment=require(_0x344f('0x2'));var BPromise=require(_0x344f('0x3'));var rp=require(_0x344f('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0x344f('0x5'));var config=require('../../config/environment');var attributes=require(_0x344f('0x6'));module[_0x344f('0x7')]=function(_0x302495,_0x1ff939){return _0x302495[_0x344f('0x8')](_0x344f('0x9'),attributes,{'tableName':'userNotifications','paranoid':![],'indexes':[],'timestamps':!![],'charset':_0x344f('0xa'),'collate':_0x344f('0xb')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe488=['lodash','util','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','./userNotification.socket','request','UserNotification,\x20%s,\x20%s','request\x20sent','debug','UserNotification,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','catch'];(function(_0xa0f14a,_0x71d46d){var _0x1251bb=function(_0x2647f0){while(--_0x2647f0){_0xa0f14a['push'](_0xa0f14a['shift']());}};_0x1251bb(++_0x71d46d);}(_0xe488,0x74));var _0x8e48=function(_0x3c0dcc,_0x18c419){_0x3c0dcc=_0x3c0dcc-0x0;var _0x1a224c=_0xe488[_0x3c0dcc];return _0x1a224c;};'use strict';var _=require(_0x8e48('0x0'));var util=require(_0x8e48('0x1'));var moment=require(_0x8e48('0x2'));var BPromise=require(_0x8e48('0x3'));var rs=require(_0x8e48('0x4'));var fs=require('fs');var Redis=require(_0x8e48('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0x8e48('0x6'));var logger=require(_0x8e48('0x7'))(_0x8e48('0x8'));var config=require(_0x8e48('0x9'));var jayson=require(_0x8e48('0xa'));var client=jayson[_0x8e48('0xb')][_0x8e48('0xc')]({'port':0x232a});config[_0x8e48('0xd')]=_[_0x8e48('0xe')](config[_0x8e48('0xd')],{'host':_0x8e48('0xf'),'port':0x18eb});var socket=require(_0x8e48('0x10'))(new Redis(config['redis']));require(_0x8e48('0x11'))['register'](socket);function respondWithRpcPromise(_0x3e3ba6,_0x905941,_0xc2c3ba){return new BPromise(function(_0x472921,_0x3c6507){return client[_0x8e48('0x12')](_0x3e3ba6,_0xc2c3ba)['then'](function(_0x5107d6){logger['info'](_0x8e48('0x13'),_0x905941,_0x8e48('0x14'));logger[_0x8e48('0x15')](_0x8e48('0x16'),_0x905941,_0x8e48('0x14'),JSON[_0x8e48('0x17')](_0x5107d6));if(_0x5107d6[_0x8e48('0x18')]){if(_0x5107d6[_0x8e48('0x18')][_0x8e48('0x19')]===0x1f4){logger[_0x8e48('0x18')](_0x8e48('0x13'),_0x905941,_0x5107d6[_0x8e48('0x18')]['message']);return _0x3c6507(_0x5107d6[_0x8e48('0x18')][_0x8e48('0x1a')]);}logger['error'](_0x8e48('0x13'),_0x905941,_0x5107d6[_0x8e48('0x18')][_0x8e48('0x1a')]);return _0x472921(_0x5107d6['error']['message']);}else{logger[_0x8e48('0x1b')](_0x8e48('0x13'),_0x905941,_0x8e48('0x14'));_0x472921(_0x5107d6['result']['message']);}})[_0x8e48('0x1c')](function(_0xdf518c){logger[_0x8e48('0x18')](_0x8e48('0x13'),_0x905941,_0xdf518c);_0x3c6507(_0xdf518c);});});}
\ No newline at end of file
+var _0x7c72=['request\x20sent','debug','UserNotification,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','lodash','moment','randomstring','ioredis','../../config/utils','rpc','jayson/promise','client','http','redis','defaults','localhost','./userNotification.socket','register','then','info','UserNotification,\x20%s,\x20%s'];(function(_0x2cd0ba,_0x5258e4){var _0x4eacd8=function(_0x523ae7){while(--_0x523ae7){_0x2cd0ba['push'](_0x2cd0ba['shift']());}};_0x4eacd8(++_0x5258e4);}(_0x7c72,0xe9));var _0x27c7=function(_0x476bf4,_0x2a3755){_0x476bf4=_0x476bf4-0x0;var _0x788ffe=_0x7c72[_0x476bf4];return _0x788ffe;};'use strict';var _=require(_0x27c7('0x0'));var util=require('util');var moment=require(_0x27c7('0x1'));var BPromise=require('bluebird');var rs=require(_0x27c7('0x2'));var fs=require('fs');var Redis=require(_0x27c7('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0x27c7('0x4'));var logger=require('../../config/logger')(_0x27c7('0x5'));var config=require('../../config/environment');var jayson=require(_0x27c7('0x6'));var client=jayson[_0x27c7('0x7')][_0x27c7('0x8')]({'port':0x232a});config[_0x27c7('0x9')]=_[_0x27c7('0xa')](config[_0x27c7('0x9')],{'host':_0x27c7('0xb'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x27c7('0x9')]));require(_0x27c7('0xc'))[_0x27c7('0xd')](socket);function respondWithRpcPromise(_0x29cb82,_0x144849,_0x4ef68b){return new BPromise(function(_0x103989,_0xe9bcdc){return client['request'](_0x29cb82,_0x4ef68b)[_0x27c7('0xe')](function(_0x27292e){logger[_0x27c7('0xf')](_0x27c7('0x10'),_0x144849,_0x27c7('0x11'));logger[_0x27c7('0x12')](_0x27c7('0x13'),_0x144849,_0x27c7('0x11'),JSON[_0x27c7('0x14')](_0x27292e));if(_0x27292e['error']){if(_0x27292e[_0x27c7('0x15')]['code']===0x1f4){logger[_0x27c7('0x15')](_0x27c7('0x10'),_0x144849,_0x27292e[_0x27c7('0x15')][_0x27c7('0x16')]);return _0xe9bcdc(_0x27292e[_0x27c7('0x15')][_0x27c7('0x16')]);}logger[_0x27c7('0x15')]('UserNotification,\x20%s,\x20%s',_0x144849,_0x27292e[_0x27c7('0x15')]['message']);return _0x103989(_0x27292e[_0x27c7('0x15')][_0x27c7('0x16')]);}else{logger[_0x27c7('0xf')](_0x27c7('0x10'),_0x144849,_0x27c7('0x11'));_0x103989(_0x27292e[_0x27c7('0x17')][_0x27c7('0x16')]);}})[_0x27c7('0x18')](function(_0xa1781e){logger['error'](_0x27c7('0x10'),_0x144849,_0xa1781e);_0xe9bcdc(_0xa1781e);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbba7=['register','./userNotification.events','save','update','removeListener'];(function(_0xc16d70,_0x316fbd){var _0x2bdd5a=function(_0xbb3557){while(--_0xbb3557){_0xc16d70['push'](_0xc16d70['shift']());}};_0x2bdd5a(++_0x316fbd);}(_0xbba7,0x88));var _0x7bba=function(_0x1dcf37,_0x150062){_0x1dcf37=_0x1dcf37-0x0;var _0x4323ea=_0xbba7[_0x1dcf37];return _0x4323ea;};'use strict';var UserNotificationEvents=require(_0x7bba('0x0'));var events=[_0x7bba('0x1'),'remove',_0x7bba('0x2')];function createListener(_0xa6162d,_0xecd2d0){return function(_0x13ef25){_0xecd2d0['emit'](_0xa6162d,_0x13ef25);};}function removeListener(_0x4e38cc,_0x26906d){return function(){UserNotificationEvents[_0x7bba('0x3')](_0x4e38cc,_0x26906d);};}exports[_0x7bba('0x4')]=function(_0x4c9242){for(var _0x23406c=0x0,_0x1241b7=events['length'];_0x23406c<_0x1241b7;_0x23406c++){var _0x23aa30=events[_0x23406c];var _0x1a0d13=createListener('userNotification:'+_0x23aa30,_0x4c9242);UserNotificationEvents['on'](_0x23aa30,_0x1a0d13);}};
\ No newline at end of file
+var _0x2e83=['register','./userNotification.events','save','remove','update','emit'];(function(_0x3658e0,_0x43f9fd){var _0x2334e9=function(_0x45fc7a){while(--_0x45fc7a){_0x3658e0['push'](_0x3658e0['shift']());}};_0x2334e9(++_0x43f9fd);}(_0x2e83,0x1e7));var _0x32e8=function(_0x42245d,_0x51758f){_0x42245d=_0x42245d-0x0;var _0x4b211a=_0x2e83[_0x42245d];return _0x4b211a;};'use strict';var UserNotificationEvents=require(_0x32e8('0x0'));var events=[_0x32e8('0x1'),_0x32e8('0x2'),_0x32e8('0x3')];function createListener(_0x45626f,_0x559cdc){return function(_0x5c9a2f){_0x559cdc[_0x32e8('0x4')](_0x45626f,_0x5c9a2f);};}function removeListener(_0x1bb34c,_0x5e4749){return function(){UserNotificationEvents['removeListener'](_0x1bb34c,_0x5e4749);};}exports[_0x32e8('0x5')]=function(_0x13ea08){for(var _0x3d3597=0x0,_0x149e60=events['length'];_0x3d3597<_0x149e60;_0x3d3597++){var _0x553a56=events[_0x3d3597];var _0x43719f=createListener('userNotification:'+_0x553a56,_0x13ea08);UserNotificationEvents['on'](_0x553a56,_0x43719f);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9c44=['express','Router','fs-extra','../../components/auth/service','exports','path','connect-timeout'];(function(_0x105b20,_0x388d13){var _0x357455=function(_0x5b28d7){while(--_0x5b28d7){_0x105b20['push'](_0x105b20['shift']());}};_0x357455(++_0x388d13);}(_0x9c44,0x178));var _0x49c4=function(_0x13e741,_0x5d3c24){_0x13e741=_0x13e741-0x0;var _0x3f8bb3=_0x9c44[_0x13e741];return _0x3f8bb3;};'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
+var _0x9c44=['express','Router','fs-extra','../../components/auth/service','exports','path','connect-timeout'];(function(_0x411c2e,_0x4ece66){var _0x5ed361=function(_0x193b6c){while(--_0x193b6c){_0x411c2e['push'](_0x411c2e['shift']());}};_0x5ed361(++_0x4ece66);}(_0x9c44,0x178));var _0x49c4=function(_0x543084,_0x4337f5){_0x543084=_0x543084-0x0;var _0x306a57=_0x9c44[_0x543084];return _0x306a57;};'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 _0xb1b6=['INTEGER','sequelize','exports'];(function(_0x3c2a69,_0x4c8b41){var _0x596bc8=function(_0x1b4b7c){while(--_0x1b4b7c){_0x3c2a69['push'](_0x3c2a69['shift']());}};_0x596bc8(++_0x4c8b41);}(_0xb1b6,0x9a));var _0x6b1b=function(_0x22e870,_0x2c2662){_0x22e870=_0x22e870-0x0;var _0x528a9f=_0xb1b6[_0x22e870];return _0x528a9f;};'use strict';var Sequelize=require(_0x6b1b('0x0'));module[_0x6b1b('0x1')]={'penalty':{'type':Sequelize[_0x6b1b('0x2')],'defaultValue':0x0}};
\ No newline at end of file
+var _0x2755=['sequelize','INTEGER'];(function(_0x5012a8,_0x42c2e4){var _0x5975e0=function(_0x5c291e){while(--_0x5c291e){_0x5012a8['push'](_0x5012a8['shift']());}};_0x5975e0(++_0x42c2e4);}(_0x2755,0x19a));var _0x5275=function(_0xdac5f,_0x1c39c7){_0xdac5f=_0xdac5f-0x0;var _0x5ea6c3=_0x2755[_0xdac5f];return _0x5ea6c3;};'use strict';var Sequelize=require(_0x5275('0x0'));module['exports']={'penalty':{'type':Sequelize[_0x5275('0x1')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1034=['exports','define','UserOpenchannelQueue','user_has_openchannel_queues','util','moment','bluebird','request-promise','path','rimraf','./userOpenchannelQueue.attributes'];(function(_0x122ef9,_0x451d2a){var _0x42fba0=function(_0x17c9d3){while(--_0x17c9d3){_0x122ef9['push'](_0x122ef9['shift']());}};_0x42fba0(++_0x451d2a);}(_0x1034,0x138));var _0x4103=function(_0x2d93c9,_0x29db64){_0x2d93c9=_0x2d93c9-0x0;var _0x1edab4=_0x1034[_0x2d93c9];return _0x1edab4;};'use strict';var _=require('lodash');var util=require(_0x4103('0x0'));var logger=require('../../config/logger')('api');var moment=require(_0x4103('0x1'));var BPromise=require(_0x4103('0x2'));var rp=require(_0x4103('0x3'));var fs=require('fs');var path=require(_0x4103('0x4'));var rimraf=require(_0x4103('0x5'));var config=require('../../config/environment');var attributes=require(_0x4103('0x6'));module[_0x4103('0x7')]=function(_0x1229e0,_0x213c05){return _0x1229e0[_0x4103('0x8')](_0x4103('0x9'),attributes,{'tableName':_0x4103('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xca2b=['moment','bluebird','request-promise','path','rimraf','../../config/environment','./userOpenchannelQueue.attributes','define','UserOpenchannelQueue','lodash','../../config/logger','api'];(function(_0x573411,_0xe1a6b4){var _0x4d853e=function(_0xfa5db7){while(--_0xfa5db7){_0x573411['push'](_0x573411['shift']());}};_0x4d853e(++_0xe1a6b4);}(_0xca2b,0x165));var _0xbca2=function(_0x4565bf,_0x5ad9d6){_0x4565bf=_0x4565bf-0x0;var _0x5610ba=_0xca2b[_0x4565bf];return _0x5610ba;};'use strict';var _=require(_0xbca2('0x0'));var util=require('util');var logger=require(_0xbca2('0x1'))(_0xbca2('0x2'));var moment=require(_0xbca2('0x3'));var BPromise=require(_0xbca2('0x4'));var rp=require(_0xbca2('0x5'));var fs=require('fs');var path=require(_0xbca2('0x6'));var rimraf=require(_0xbca2('0x7'));var config=require(_0xbca2('0x8'));var attributes=require(_0xbca2('0x9'));module['exports']=function(_0xcc8a2,_0x261085){return _0xcc8a2[_0xbca2('0xa')](_0xbca2('0xb'),attributes,{'tableName':'user_has_openchannel_queues','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa78b=['../../config/environment','jayson/promise','http','request','then','info','UserOpenchannelQueue,\x20%s,\x20%s','debug','UserOpenchannelQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','message','request\x20sent','lodash','util','moment','../../mysqldb','../../config/utils','../../config/logger'];(function(_0x12d033,_0x25fa2f){var _0x3b4e80=function(_0x46c1f4){while(--_0x46c1f4){_0x12d033['push'](_0x12d033['shift']());}};_0x3b4e80(++_0x25fa2f);}(_0xa78b,0x9a));var _0xba78=function(_0x4c8ba7,_0x32938e){_0x4c8ba7=_0x4c8ba7-0x0;var _0x3584dc=_0xa78b[_0x4c8ba7];return _0x3584dc;};'use strict';var _=require(_0xba78('0x0'));var util=require(_0xba78('0x1'));var moment=require(_0xba78('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0xba78('0x3'))['db'];var utils=require(_0xba78('0x4'));var logger=require(_0xba78('0x5'))('rpc');var config=require(_0xba78('0x6'));var jayson=require(_0xba78('0x7'));var client=jayson['client'][_0xba78('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x2f512e,_0x5a4836,_0xef1d84){return new BPromise(function(_0x32d063,_0x52d55f){return client[_0xba78('0x9')](_0x2f512e,_0xef1d84)[_0xba78('0xa')](function(_0x5e627a){logger[_0xba78('0xb')](_0xba78('0xc'),_0x5a4836,'request\x20sent');logger[_0xba78('0xd')](_0xba78('0xe'),_0x5a4836,'request\x20sent',JSON[_0xba78('0xf')](_0x5e627a));if(_0x5e627a[_0xba78('0x10')]){if(_0x5e627a['error'][_0xba78('0x11')]===0x1f4){logger[_0xba78('0x10')](_0xba78('0xc'),_0x5a4836,_0x5e627a[_0xba78('0x10')][_0xba78('0x12')]);return _0x52d55f(_0x5e627a[_0xba78('0x10')][_0xba78('0x12')]);}logger['error'](_0xba78('0xc'),_0x5a4836,_0x5e627a['error']['message']);return _0x32d063(_0x5e627a[_0xba78('0x10')][_0xba78('0x12')]);}else{logger[_0xba78('0xb')](_0xba78('0xc'),_0x5a4836,_0xba78('0x13'));_0x32d063(_0x5e627a['result']['message']);}})['catch'](function(_0x419028){logger[_0xba78('0x10')](_0xba78('0xc'),_0x5a4836,_0x419028);_0x52d55f(_0x419028);});});}
\ No newline at end of file
+var _0xb886=['message','result','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/environment','jayson/promise','client','http','then','info','UserOpenchannelQueue,\x20%s,\x20%s','request\x20sent','stringify','error','code'];(function(_0x38894d,_0x1883d8){var _0x5614fe=function(_0x181989){while(--_0x181989){_0x38894d['push'](_0x38894d['shift']());}};_0x5614fe(++_0x1883d8);}(_0xb886,0xf5));var _0x6b88=function(_0x46383f,_0x5294ea){_0x46383f=_0x46383f-0x0;var _0x17b081=_0xb886[_0x46383f];return _0x17b081;};'use strict';var _=require(_0x6b88('0x0'));var util=require(_0x6b88('0x1'));var moment=require(_0x6b88('0x2'));var BPromise=require(_0x6b88('0x3'));var rs=require(_0x6b88('0x4'));var fs=require('fs');var Redis=require(_0x6b88('0x5'));var db=require(_0x6b88('0x6'))['db'];var utils=require(_0x6b88('0x7'));var logger=require('../../config/logger')('rpc');var config=require(_0x6b88('0x8'));var jayson=require(_0x6b88('0x9'));var client=jayson[_0x6b88('0xa')][_0x6b88('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x2e0afb,_0x44813c,_0x4e15f1){return new BPromise(function(_0x154466,_0x554eb5){return client['request'](_0x2e0afb,_0x4e15f1)[_0x6b88('0xc')](function(_0x256109){logger[_0x6b88('0xd')](_0x6b88('0xe'),_0x44813c,_0x6b88('0xf'));logger['debug']('UserOpenchannelQueue,\x20%s,\x20%s,\x20%s',_0x44813c,_0x6b88('0xf'),JSON[_0x6b88('0x10')](_0x256109));if(_0x256109[_0x6b88('0x11')]){if(_0x256109['error'][_0x6b88('0x12')]===0x1f4){logger[_0x6b88('0x11')](_0x6b88('0xe'),_0x44813c,_0x256109[_0x6b88('0x11')][_0x6b88('0x13')]);return _0x554eb5(_0x256109[_0x6b88('0x11')][_0x6b88('0x13')]);}logger[_0x6b88('0x11')](_0x6b88('0xe'),_0x44813c,_0x256109[_0x6b88('0x11')][_0x6b88('0x13')]);return _0x154466(_0x256109['error']['message']);}else{logger['info'](_0x6b88('0xe'),_0x44813c,'request\x20sent');_0x154466(_0x256109[_0x6b88('0x14')]['message']);}})[_0x6b88('0x15')](function(_0x4139ab){logger[_0x6b88('0x11')]('UserOpenchannelQueue,\x20%s,\x20%s',_0x44813c,_0x4139ab);_0x554eb5(_0x4139ab);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc490=['removeSections','removeResources','exports','util','connect-timeout','express','Router','fs-extra','../../components/interaction/service','../../config/environment','./userProfile.controller','get','isAuthenticated','index','describe','/:id','show','/:id/sections','/:id/resources','getResources','post','addSections','addResources','put','update','destroy','delete'];(function(_0x1293e7,_0x59eceb){var _0x136179=function(_0x483a10){while(--_0x483a10){_0x1293e7['push'](_0x1293e7['shift']());}};_0x136179(++_0x59eceb);}(_0xc490,0xf6));var _0x0c49=function(_0x9e5d25,_0x1180e7){_0x9e5d25=_0x9e5d25-0x0;var _0x30eb63=_0xc490[_0x9e5d25];return _0x30eb63;};'use strict';var multer=require('multer');var util=require(_0x0c49('0x0'));var path=require('path');var timeout=require(_0x0c49('0x1'));var express=require(_0x0c49('0x2'));var router=express[_0x0c49('0x3')]();var fs_extra=require(_0x0c49('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0x0c49('0x5'));var config=require(_0x0c49('0x6'));var controller=require(_0x0c49('0x7'));router[_0x0c49('0x8')]('/',auth[_0x0c49('0x9')](),controller[_0x0c49('0xa')]);router[_0x0c49('0x8')]('/describe',auth['isAuthenticated'](),controller[_0x0c49('0xb')]);router['get'](_0x0c49('0xc'),auth[_0x0c49('0x9')](),controller[_0x0c49('0xd')]);router[_0x0c49('0x8')](_0x0c49('0xe'),auth[_0x0c49('0x9')](),controller['getSections']);router[_0x0c49('0x8')](_0x0c49('0xf'),auth[_0x0c49('0x9')](),controller[_0x0c49('0x10')]);router[_0x0c49('0x11')]('/',auth[_0x0c49('0x9')](),controller['create']);router['post']('/:id/clone',auth['isAuthenticated'](),controller['clone']);router[_0x0c49('0x11')](_0x0c49('0xe'),auth[_0x0c49('0x9')](),controller[_0x0c49('0x12')]);router[_0x0c49('0x11')](_0x0c49('0xf'),auth[_0x0c49('0x9')](),controller[_0x0c49('0x13')]);router[_0x0c49('0x14')](_0x0c49('0xc'),auth['isAuthenticated'](),controller[_0x0c49('0x15')]);router['delete']('/:id',auth[_0x0c49('0x9')](),controller[_0x0c49('0x16')]);router[_0x0c49('0x17')]('/:id/sections',auth['isAuthenticated'](),controller[_0x0c49('0x18')]);router[_0x0c49('0x17')](_0x0c49('0xf'),auth[_0x0c49('0x9')](),controller[_0x0c49('0x19')]);module[_0x0c49('0x1a')]=router;
\ No newline at end of file
+var _0xf240=['isAuthenticated','index','describe','show','/:id/sections','/:id/resources','getResources','post','create','/:id/clone','addSections','put','/:id','delete','destroy','removeSections','removeResources','exports','multer','util','connect-timeout','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./userProfile.controller','get'];(function(_0x189d3c,_0x5efebf){var _0x485959=function(_0x1161da){while(--_0x1161da){_0x189d3c['push'](_0x189d3c['shift']());}};_0x485959(++_0x5efebf);}(_0xf240,0x13b));var _0x0f24=function(_0x5c3505,_0x3770ce){_0x5c3505=_0x5c3505-0x0;var _0x5eec90=_0xf240[_0x5c3505];return _0x5eec90;};'use strict';var multer=require(_0x0f24('0x0'));var util=require(_0x0f24('0x1'));var path=require('path');var timeout=require(_0x0f24('0x2'));var express=require('express');var router=express[_0x0f24('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x0f24('0x4'));var interaction=require(_0x0f24('0x5'));var config=require(_0x0f24('0x6'));var controller=require(_0x0f24('0x7'));router[_0x0f24('0x8')]('/',auth[_0x0f24('0x9')](),controller[_0x0f24('0xa')]);router['get']('/describe',auth[_0x0f24('0x9')](),controller[_0x0f24('0xb')]);router['get']('/:id',auth[_0x0f24('0x9')](),controller[_0x0f24('0xc')]);router[_0x0f24('0x8')](_0x0f24('0xd'),auth[_0x0f24('0x9')](),controller['getSections']);router[_0x0f24('0x8')](_0x0f24('0xe'),auth['isAuthenticated'](),controller[_0x0f24('0xf')]);router[_0x0f24('0x10')]('/',auth[_0x0f24('0x9')](),controller[_0x0f24('0x11')]);router[_0x0f24('0x10')](_0x0f24('0x12'),auth['isAuthenticated'](),controller['clone']);router[_0x0f24('0x10')](_0x0f24('0xd'),auth[_0x0f24('0x9')](),controller[_0x0f24('0x13')]);router[_0x0f24('0x10')](_0x0f24('0xe'),auth[_0x0f24('0x9')](),controller['addResources']);router[_0x0f24('0x14')](_0x0f24('0x15'),auth['isAuthenticated'](),controller['update']);router[_0x0f24('0x16')]('/:id',auth[_0x0f24('0x9')](),controller[_0x0f24('0x17')]);router[_0x0f24('0x16')](_0x0f24('0xd'),auth[_0x0f24('0x9')](),controller[_0x0f24('0x18')]);router['delete']('/:id/resources',auth[_0x0f24('0x9')](),controller[_0x0f24('0x19')]);module[_0x0f24('0x1a')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x67f7=['exports','STRING','setDataValue','join','getDataValue','crudPermissions','split','BOOLEAN','sequelize'];(function(_0x3a2a3c,_0x37bd31){var _0x50ac9a=function(_0x494a7f){while(--_0x494a7f){_0x3a2a3c['push'](_0x3a2a3c['shift']());}};_0x50ac9a(++_0x37bd31);}(_0x67f7,0x1ee));var _0x767f=function(_0x4b2914,_0x466a9b){_0x4b2914=_0x4b2914-0x0;var _0x574da4=_0x67f7[_0x4b2914];return _0x574da4;};'use strict';var Sequelize=require(_0x767f('0x0'));module[_0x767f('0x1')]={'name':{'type':Sequelize[_0x767f('0x2')],'allowNull':![],'unique':'name'},'crudPermissions':{'type':Sequelize['STRING'],'set':function(_0x2169c3){this[_0x767f('0x3')]('crudPermissions',_0x2169c3?_0x2169c3[_0x767f('0x4')](''):[]);},'get':function(){return this[_0x767f('0x5')](_0x767f('0x6'))?this[_0x767f('0x5')]('crudPermissions')[_0x767f('0x7')](''):[];},'allowNull':![],'defaultValue':'r'},'description':{'type':Sequelize['STRING'],'allowNull':!![]},'privacyEnabled':{'type':Sequelize[_0x767f('0x8')],'defaultValue':![]},'downloadAttachments':{'type':Sequelize[_0x767f('0x8')],'defaultValue':!![]},'downloadCallySquareRecordings':{'type':Sequelize[_0x767f('0x8')],'defaultValue':!![]},'downloadContactManagerLists':{'type':Sequelize[_0x767f('0x8')],'defaultValue':!![]},'downloadJscriptySessions':{'type':Sequelize[_0x767f('0x8')],'defaultValue':!![]},'downloadOmnichannelInteractions':{'type':Sequelize[_0x767f('0x8')],'defaultValue':!![]},'downloadScreenRecordings':{'type':Sequelize[_0x767f('0x8')],'defaultValue':!![]},'downloadVoiceRecordings':{'type':Sequelize[_0x767f('0x8')],'defaultValue':!![]}};
\ No newline at end of file
+var _0x40ed=['crudPermissions','join','getDataValue','BOOLEAN','exports','STRING','setDataValue'];(function(_0x23b07c,_0x3c0f96){var _0x45a608=function(_0x102893){while(--_0x102893){_0x23b07c['push'](_0x23b07c['shift']());}};_0x45a608(++_0x3c0f96);}(_0x40ed,0x1af));var _0xd40e=function(_0x567522,_0x401438){_0x567522=_0x567522-0x0;var _0x2cb1af=_0x40ed[_0x567522];return _0x2cb1af;};'use strict';var Sequelize=require('sequelize');module[_0xd40e('0x0')]={'name':{'type':Sequelize[_0xd40e('0x1')],'allowNull':![],'unique':'name'},'crudPermissions':{'type':Sequelize[_0xd40e('0x1')],'set':function(_0x42164f){this[_0xd40e('0x2')](_0xd40e('0x3'),_0x42164f?_0x42164f[_0xd40e('0x4')](''):[]);},'get':function(){return this[_0xd40e('0x5')](_0xd40e('0x3'))?this['getDataValue'](_0xd40e('0x3'))['split'](''):[];},'allowNull':![],'defaultValue':'r'},'description':{'type':Sequelize['STRING'],'allowNull':!![]},'privacyEnabled':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'downloadAttachments':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'downloadCallySquareRecordings':{'type':Sequelize[_0xd40e('0x6')],'defaultValue':!![]},'downloadContactManagerLists':{'type':Sequelize[_0xd40e('0x6')],'defaultValue':!![]},'downloadJscriptySessions':{'type':Sequelize[_0xd40e('0x6')],'defaultValue':!![]},'downloadOmnichannelInteractions':{'type':Sequelize[_0xd40e('0x6')],'defaultValue':!![]},'downloadScreenRecordings':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'downloadVoiceRecordings':{'type':Sequelize[_0xd40e('0x6')],'defaultValue':!![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf0f4=['attributes','intersection','fields','length','hasOwnProperty','nolimit','limit','order','where','pick','filter','VIRTUAL','merge','options','include','findAll','rows','catch','show','params','keys','find','create','body','clone','rawAttributes','includeAll','get','omit','createdAt','updatedAt','sequelize','transaction','autoAssociation','UserProfileResource','sectionId','userProfileId','Resources','UserProfileSection','describe','push','removeSections','getSections','enabled','includes','isEmpty','subsections','Dashboard','resourceId','Plugin','forEach','addResources','bulkCreate','removeResources','ids','getResources','rimraf','request-promise','moment','mustache','util','path','sox','to-csv','ejs','fs-extra','squel','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','register','status','end','json','offset','undefined','count','apply','reject','save','update','then','destroy','sendStatus','error','name','index','map','UserProfile','fieldName','type','key','query','filters','model'];(function(_0x57e207,_0x542df3){var _0x2a6096=function(_0x2dc7d9){while(--_0x2dc7d9){_0x57e207['push'](_0x57e207['shift']());}};_0x2a6096(++_0x542df3);}(_0xf0f4,0x182));var _0x4f0f=function(_0x4eff01,_0x3c979e){_0x4eff01=_0x4eff01-0x0;var _0x1ba302=_0xf0f4[_0x4eff01];return _0x1ba302;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x4f0f('0x0'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x4f0f('0x1'));var moment=require(_0x4f0f('0x2'));var BPromise=require('bluebird');var Mustache=require(_0x4f0f('0x3'));var util=require(_0x4f0f('0x4'));var path=require(_0x4f0f('0x5'));var sox=require(_0x4f0f('0x6'));var csv=require(_0x4f0f('0x7'));var ejs=require(_0x4f0f('0x8'));var fs=require('fs');var fs_extra=require(_0x4f0f('0x9'));var _=require('lodash');var squel=require(_0x4f0f('0xa'));var crypto=require(_0x4f0f('0xb'));var jsforce=require(_0x4f0f('0xc'));var deskjs=require('desk.js');var toCsv=require(_0x4f0f('0x7'));var querystring=require(_0x4f0f('0xd'));var Papa=require(_0x4f0f('0xe'));var Redis=require(_0x4f0f('0xf'));var authService=require(_0x4f0f('0x10'));var qs=require(_0x4f0f('0x11'));var as=require(_0x4f0f('0x12'));var hardwareService=require(_0x4f0f('0x13'));var logger=require('../../config/logger')(_0x4f0f('0x14'));var utils=require(_0x4f0f('0x15'));var config=require(_0x4f0f('0x16'));var licenseUtil=require(_0x4f0f('0x17'));var db=require(_0x4f0f('0x18'))['db'];config[_0x4f0f('0x19')]=_[_0x4f0f('0x1a')](config[_0x4f0f('0x19')],{'host':_0x4f0f('0x1b'),'port':0x18eb});var socket=require(_0x4f0f('0x1c'))(new Redis(config[_0x4f0f('0x19')]));require('./userProfile.socket')[_0x4f0f('0x1d')](socket);function respondWithStatusCode(_0x447238,_0x2c4fb7){_0x2c4fb7=_0x2c4fb7||0xcc;return function(_0x22de68){if(_0x22de68){return _0x447238['sendStatus'](_0x2c4fb7);}return _0x447238[_0x4f0f('0x1e')](_0x2c4fb7)[_0x4f0f('0x1f')]();};}function respondWithResult(_0x5783,_0x1c0aa1){_0x1c0aa1=_0x1c0aa1||0xc8;return function(_0x4038fd){if(_0x4038fd){return _0x5783['status'](_0x1c0aa1)[_0x4f0f('0x20')](_0x4038fd);}};}function respondWithFilteredResult(_0x1942cf,_0x20423e){return function(_0x566049){if(_0x566049){var _0x2ca0b3=typeof _0x20423e[_0x4f0f('0x21')]===_0x4f0f('0x22')&&typeof _0x20423e['limit']===_0x4f0f('0x22');var _0x2455f9=_0x566049[_0x4f0f('0x23')];var _0xe8bb33=_0x2ca0b3?0x0:_0x20423e[_0x4f0f('0x21')];var _0x3bd1b9=_0x2ca0b3?_0x566049['count']:_0x20423e[_0x4f0f('0x21')]+_0x20423e['limit'];var _0x3a6f22;if(_0x3bd1b9>=_0x2455f9){_0x3bd1b9=_0x2455f9;_0x3a6f22=0xc8;}else{_0x3a6f22=0xce;}_0x1942cf[_0x4f0f('0x1e')](_0x3a6f22);return _0x1942cf['set']('Content-Range',_0xe8bb33+'-'+_0x3bd1b9+'/'+_0x2455f9)[_0x4f0f('0x20')](_0x566049);}return null;};}function patchUpdates(_0x55d318){return function(_0x3f2a8e){try{jsonpatch[_0x4f0f('0x24')](_0x3f2a8e,_0x55d318,!![]);}catch(_0x18abde){return BPromise[_0x4f0f('0x25')](_0x18abde);}return _0x3f2a8e[_0x4f0f('0x26')]();};}function saveUpdates(_0x17a9e9,_0x497fd6){return function(_0x1a46dd){if(_0x1a46dd){return _0x1a46dd[_0x4f0f('0x27')](_0x17a9e9)[_0x4f0f('0x28')](function(_0x3bc77d){return _0x3bc77d;});}return null;};}function removeEntity(_0xe969c7,_0x3e6b72){return function(_0x166ea6){if(_0x166ea6){return _0x166ea6[_0x4f0f('0x29')]()[_0x4f0f('0x28')](function(){_0xe969c7[_0x4f0f('0x1e')](0xcc)[_0x4f0f('0x1f')]();});}};}function handleEntityNotFound(_0x394303,_0x381329){return function(_0x5c13d1){if(!_0x5c13d1){_0x394303[_0x4f0f('0x2a')](0x194);}return _0x5c13d1;};}function handleError(_0x269563,_0x2ebabc){_0x2ebabc=_0x2ebabc||0x1f4;return function(_0x58ec43){logger[_0x4f0f('0x2b')](_0x58ec43['stack']);if(_0x58ec43[_0x4f0f('0x2c')]){delete _0x58ec43[_0x4f0f('0x2c')];}_0x269563['status'](_0x2ebabc)['send'](_0x58ec43);};}exports[_0x4f0f('0x2d')]=function(_0x4bf387,_0x1a005e){var _0x9319c0={},_0x514a2c={},_0x3d3762={'count':0x0,'rows':[]};var _0xf7acac=_[_0x4f0f('0x2e')](db[_0x4f0f('0x2f')]['rawAttributes'],function(_0x81a247){return{'name':_0x81a247[_0x4f0f('0x30')],'type':_0x81a247[_0x4f0f('0x31')][_0x4f0f('0x32')]};});_0x514a2c['model']=_[_0x4f0f('0x2e')](_0xf7acac,_0x4f0f('0x2c'));_0x514a2c[_0x4f0f('0x33')]=_['keys'](_0x4bf387[_0x4f0f('0x33')]);_0x514a2c[_0x4f0f('0x34')]=_['intersection'](_0x514a2c[_0x4f0f('0x35')],_0x514a2c[_0x4f0f('0x33')]);_0x9319c0[_0x4f0f('0x36')]=_[_0x4f0f('0x37')](_0x514a2c['model'],qs[_0x4f0f('0x38')](_0x4bf387[_0x4f0f('0x33')][_0x4f0f('0x38')]));_0x9319c0[_0x4f0f('0x36')]=_0x9319c0[_0x4f0f('0x36')][_0x4f0f('0x39')]?_0x9319c0[_0x4f0f('0x36')]:_0x514a2c[_0x4f0f('0x35')];if(!_0x4bf387['query'][_0x4f0f('0x3a')](_0x4f0f('0x3b'))){_0x9319c0[_0x4f0f('0x3c')]=qs[_0x4f0f('0x3c')](_0x4bf387[_0x4f0f('0x33')][_0x4f0f('0x3c')]);_0x9319c0[_0x4f0f('0x21')]=qs['offset'](_0x4bf387[_0x4f0f('0x33')][_0x4f0f('0x21')]);}_0x9319c0[_0x4f0f('0x3d')]=qs['sort'](_0x4bf387[_0x4f0f('0x33')]['sort']);_0x9319c0[_0x4f0f('0x3e')]=qs['filters'](_[_0x4f0f('0x3f')](_0x4bf387[_0x4f0f('0x33')],_0x514a2c['filters']),_0xf7acac);if(_0x4bf387[_0x4f0f('0x33')][_0x4f0f('0x40')]){_0x9319c0[_0x4f0f('0x3e')]=_['merge'](_0x9319c0[_0x4f0f('0x3e')],{'$or':_[_0x4f0f('0x2e')](_0xf7acac,function(_0x3484ce){if(_0x3484ce[_0x4f0f('0x31')]!==_0x4f0f('0x41')){var _0x2f3b4d={};_0x2f3b4d[_0x3484ce[_0x4f0f('0x2c')]]={'$like':'%'+_0x4bf387[_0x4f0f('0x33')][_0x4f0f('0x40')]+'%'};return _0x2f3b4d;}})});}_0x9319c0=_[_0x4f0f('0x42')]({},_0x9319c0,_0x4bf387[_0x4f0f('0x43')]);var _0x4ddeab={'where':_0x9319c0[_0x4f0f('0x3e')]};return db[_0x4f0f('0x2f')][_0x4f0f('0x23')](_0x4ddeab)[_0x4f0f('0x28')](function(_0x419cb4){_0x3d3762[_0x4f0f('0x23')]=_0x419cb4;if(_0x4bf387[_0x4f0f('0x33')]['includeAll']){_0x9319c0[_0x4f0f('0x44')]=[{'all':!![]}];}return db[_0x4f0f('0x2f')][_0x4f0f('0x45')](_0x9319c0);})[_0x4f0f('0x28')](function(_0x1744f9){_0x3d3762[_0x4f0f('0x46')]=_0x1744f9;return _0x3d3762;})['then'](respondWithFilteredResult(_0x1a005e,_0x9319c0))[_0x4f0f('0x47')](handleError(_0x1a005e,null));};exports[_0x4f0f('0x48')]=function(_0x5de2e5,_0x5e9bb8){var _0xda7198={'raw':![],'where':{'id':_0x5de2e5[_0x4f0f('0x49')]['id']}},_0x190ec9={};_0x190ec9['model']=_[_0x4f0f('0x4a')](db['UserProfile']['rawAttributes']);_0x190ec9[_0x4f0f('0x33')]=_[_0x4f0f('0x4a')](_0x5de2e5[_0x4f0f('0x33')]);_0x190ec9[_0x4f0f('0x34')]=_[_0x4f0f('0x37')](_0x190ec9[_0x4f0f('0x35')],_0x190ec9['query']);_0xda7198['attributes']=_[_0x4f0f('0x37')](_0x190ec9[_0x4f0f('0x35')],qs[_0x4f0f('0x38')](_0x5de2e5['query'][_0x4f0f('0x38')]));_0xda7198[_0x4f0f('0x36')]=_0xda7198[_0x4f0f('0x36')]['length']?_0xda7198[_0x4f0f('0x36')]:_0x190ec9['model'];if(_0x5de2e5[_0x4f0f('0x33')]['includeAll']){_0xda7198[_0x4f0f('0x44')]=[{'all':!![]}];}_0xda7198=_[_0x4f0f('0x42')]({},_0xda7198,_0x5de2e5[_0x4f0f('0x43')]);return db[_0x4f0f('0x2f')][_0x4f0f('0x4b')](_0xda7198)['then'](handleEntityNotFound(_0x5e9bb8,null))['then'](respondWithResult(_0x5e9bb8,null))[_0x4f0f('0x47')](handleError(_0x5e9bb8,null));};exports['create']=function(_0x12e587,_0x32d298){return db[_0x4f0f('0x2f')][_0x4f0f('0x4c')](_0x12e587[_0x4f0f('0x4d')],{})[_0x4f0f('0x28')](respondWithResult(_0x32d298,0xc9))[_0x4f0f('0x47')](handleError(_0x32d298,null));};exports[_0x4f0f('0x4e')]=function(_0x5b7a20,_0x37ce22){var _0x2ffb4d={'where':{'id':_0x5b7a20[_0x4f0f('0x49')]['id']}},_0x175c03={};_0x175c03[_0x4f0f('0x35')]=_[_0x4f0f('0x4a')](db[_0x4f0f('0x2f')][_0x4f0f('0x4f')]);_0x2ffb4d[_0x4f0f('0x36')]=_[_0x4f0f('0x37')](_0x175c03['model'],qs[_0x4f0f('0x38')](_0x5b7a20['query'][_0x4f0f('0x38')]));_0x2ffb4d[_0x4f0f('0x36')]=_0x2ffb4d['attributes'][_0x4f0f('0x39')]?_0x2ffb4d[_0x4f0f('0x36')]:_0x175c03[_0x4f0f('0x35')];if(_0x5b7a20[_0x4f0f('0x33')][_0x4f0f('0x50')]){_0x2ffb4d[_0x4f0f('0x44')]=[{'all':!![]}];}_0x2ffb4d=_[_0x4f0f('0x42')]({},_0x2ffb4d,_0x5b7a20[_0x4f0f('0x43')]);return db[_0x4f0f('0x2f')]['find'](_0x2ffb4d)[_0x4f0f('0x28')](handleEntityNotFound(_0x37ce22,null))[_0x4f0f('0x28')](function(_0x482cc){if(_0x482cc){var _0x404000=_0x482cc[_0x4f0f('0x51')]({'plain':!![]});_0x404000=qs[_0x4f0f('0x52')](_0x404000,['id',_0x4f0f('0x53'),'updatedAt','crudPermissions']);_0x5b7a20[_0x4f0f('0x4d')]=_[_0x4f0f('0x52')](_0x5b7a20[_0x4f0f('0x4d')],['id',_0x4f0f('0x53'),_0x4f0f('0x54')]);return db[_0x4f0f('0x55')][_0x4f0f('0x56')](function(_0x418327){return db[_0x4f0f('0x2f')][_0x4f0f('0x4c')](_[_0x4f0f('0x42')](_0x404000,_0x5b7a20[_0x4f0f('0x4d')]),{'include':_0x5b7a20['query'][_0x4f0f('0x50')]?[{'all':!![]}]:undefined,'transaction':_0x418327})['then'](function(_0x2dd87f){var _0xb472c2=_0x2dd87f['get']({'plain':!![]});return db['UserProfileSection']['findAll']({'where':{'userProfileId':_0x5b7a20[_0x4f0f('0x49')]['id']},'raw':!![]})[_0x4f0f('0x28')](function(_0x7fe9d7){if(_0x7fe9d7){return BPromise['each'](_0x7fe9d7,function(_0x5df4e0){return new BPromise(function(_0x4b58ff,_0x185cd3){if(_0x5df4e0[_0x4f0f('0x57')]===null||_0x5df4e0[_0x4f0f('0x57')]===0x1)_0x4b58ff(null);return db[_0x4f0f('0x58')][_0x4f0f('0x45')]({'where':{'sectionId':_0x5df4e0['id']},'raw':!![]})[_0x4f0f('0x28')](function(_0x25ec74){var _0x4952b0=_['map'](_0x25ec74,function(_0x72900e){return qs[_0x4f0f('0x52')](_0x72900e,['id',_0x4f0f('0x53'),'updatedAt',_0x4f0f('0x59')]);});_0x4b58ff(_0x4952b0);})['catch'](function(_0x39b6d7){_0x185cd3(_0x39b6d7);});})['then'](function(_0x17a9b8){var _0x52f5c8=qs[_0x4f0f('0x52')](_0x5df4e0,['id',_0x4f0f('0x53'),_0x4f0f('0x54')]);_0x52f5c8[_0x4f0f('0x5a')]=_0xb472c2['id'];if(_0x17a9b8)_0x52f5c8[_0x4f0f('0x5b')]=_0x17a9b8;return _0x52f5c8;})[_0x4f0f('0x28')](function(_0x2b831d){return db[_0x4f0f('0x5c')]['create'](_0x2b831d,{'include':[{'model':db[_0x4f0f('0x58')],'as':_0x4f0f('0x5b')}],'raw':!![],'transaction':_0x418327});});})[_0x4f0f('0x28')](function(){return _0xb472c2;});}});});});}})[_0x4f0f('0x28')](respondWithResult(_0x37ce22,0xc9))['catch'](handleError(_0x37ce22,null));};exports[_0x4f0f('0x27')]=function(_0x299fa3,_0x522973){if(_0x299fa3['body']['id']){delete _0x299fa3[_0x4f0f('0x4d')]['id'];}return db[_0x4f0f('0x2f')][_0x4f0f('0x4b')]({'where':{'id':_0x299fa3[_0x4f0f('0x49')]['id']}})[_0x4f0f('0x28')](handleEntityNotFound(_0x522973,null))['then'](saveUpdates(_0x299fa3[_0x4f0f('0x4d')],null))[_0x4f0f('0x28')](respondWithResult(_0x522973,null))[_0x4f0f('0x47')](handleError(_0x522973,null));};exports['destroy']=function(_0x28548a,_0x297332){return db[_0x4f0f('0x2f')]['find']({'where':{'id':_0x28548a[_0x4f0f('0x49')]['id']}})[_0x4f0f('0x28')](handleEntityNotFound(_0x297332,null))['then'](removeEntity(_0x297332,null))[_0x4f0f('0x47')](handleError(_0x297332,null));};exports[_0x4f0f('0x5d')]=function(_0x3ef06b,_0x1579d7){return db[_0x4f0f('0x2f')][_0x4f0f('0x5d')]()['then'](respondWithResult(_0x1579d7,null))['catch'](handleError(_0x1579d7,null));};exports['addSections']=function(_0x4a0566,_0x5ade02){var _0x23481e=_0x4a0566[_0x4f0f('0x4d')];return db[_0x4f0f('0x2f')][_0x4f0f('0x4b')]({'where':{'id':_0x4a0566[_0x4f0f('0x49')]['id']}})[_0x4f0f('0x28')](handleEntityNotFound(_0x5ade02,null))[_0x4f0f('0x28')](function(_0x2c697d){if(_0x2c697d){return db[_0x4f0f('0x55')][_0x4f0f('0x56')](function(_0x312712){return db[_0x4f0f('0x5c')][_0x4f0f('0x29')]({'where':{'userProfileId':_0x4a0566[_0x4f0f('0x49')]['id'],'sectionId':_[_0x4f0f('0x2e')](_0x23481e,function(_0x48c733){return _0x48c733[_0x4f0f('0x59')];})},'transaction':_0x312712})[_0x4f0f('0x28')](function(){var _0x294eb3=_[_0x4f0f('0x2e')](_0x23481e,function(_0x1d6d6f){_0x1d6d6f[_0x4f0f('0x5a')]=_0x4a0566['params']['id'];return _0x1d6d6f;});var _0x21ff97=[];return BPromise['each'](_0x294eb3,function(_0x14dfea){return db['UserProfileSection'][_0x4f0f('0x4c')](_0x14dfea,{'include':[{'model':db[_0x4f0f('0x58')],'as':_0x4f0f('0x5b')}],'raw':!![],'transaction':_0x312712})['then'](function(_0xe37fb){_0x21ff97[_0x4f0f('0x5e')](_0xe37fb[_0x4f0f('0x51')]({'plain':!![]}));});})[_0x4f0f('0x28')](function(){return _0x21ff97;});});});}})[_0x4f0f('0x28')](function(_0x523d6c){return _0x523d6c;})[_0x4f0f('0x28')](respondWithResult(_0x5ade02,null))[_0x4f0f('0x47')](handleError(_0x5ade02,null));};exports[_0x4f0f('0x5f')]=function(_0x2ca047,_0x469774){var _0x300cdf;return db[_0x4f0f('0x2f')][_0x4f0f('0x4b')]({'where':{'id':_0x2ca047['params']['id']},'attributes':['id',_0x4f0f('0x2c')]})[_0x4f0f('0x28')](handleEntityNotFound(_0x469774,null))['then'](function(_0x16326c){if(_0x16326c){_0x300cdf=_0x16326c;return db[_0x4f0f('0x5c')][_0x4f0f('0x29')]({'where':{'userProfileId':_0x2ca047['params']['id'],'sectionId':_0x2ca047[_0x4f0f('0x33')]['ids']}});}})[_0x4f0f('0x28')](function(){return _0x300cdf;})[_0x4f0f('0x28')](respondWithStatusCode(_0x469774,null))['catch'](handleError(_0x469774,null));};exports[_0x4f0f('0x60')]=function(_0xd553cb,_0x18ee43){var _0x5a4f36=[];var _0x3355f4=[];return db[_0x4f0f('0x5c')][_0x4f0f('0x45')]({'where':{'userProfileId':_0xd553cb['params']['id']},'raw':!![]})[_0x4f0f('0x28')](function(_0x46bfb5){_0x5a4f36=_['filter'](_0x46bfb5,function(_0x53d5c4){return _0x53d5c4[_0x4f0f('0x61')]===0x1||_[_0x4f0f('0x62')]([0x3eb,0x709],_0x53d5c4['sectionId']);});if(!_[_0x4f0f('0x63')](_0x5a4f36)){return _[_0x4f0f('0x2e')](_0x5a4f36,function(_0x229592){return _0x229592[_0x4f0f('0x59')];});}else{return;}})[_0x4f0f('0x28')](function(_0x5f4d8f){if(_0x5f4d8f)_0x3355f4=_0x5f4d8f;if(_['includes'](_0x3355f4,0x64)){var _0x2023e4=_['find'](_0x5a4f36,{'sectionId':0x64});return hasDefaultDashboard(_0x2023e4)[_0x4f0f('0x28')](function(_0x1e16f5){return _[_0x4f0f('0x2e')](_0x5a4f36,function(_0x5d2077){if(_0x5d2077['sectionId']===0x64){_0x5d2077[_0x4f0f('0x64')]=_0x1e16f5;}return _0x5d2077;});});}else{return;}})[_0x4f0f('0x28')](function(_0x586029){if(_0x586029)_0x5a4f36=_0x586029;if(_[_0x4f0f('0x62')](_0x3355f4,0x3eb)){var _0x25d929=_[_0x4f0f('0x4b')](_0x5a4f36,{'sectionId':0x3eb});return getCustomDashboards(_0x25d929)[_0x4f0f('0x28')](function(_0x509a92){return _['map'](_0x5a4f36,function(_0x3c209a){if(_0x25d929[_0x4f0f('0x61')]){if(_0x3c209a[_0x4f0f('0x59')]===0x3eb){_0x3c209a['subsections']=_0x509a92;}}else{if(_0x3c209a[_0x4f0f('0x59')]===0x64){_0x3c209a['subsections']=_0x509a92;}}return _0x3c209a;});});}else{return;}})['then'](function(_0xf2dc0c){if(_0xf2dc0c)_0x5a4f36=_0xf2dc0c;if(_[_0x4f0f('0x62')](_0x3355f4,0x709)){var _0x339695=_[_0x4f0f('0x4b')](_0x5a4f36,{'sectionId':0x709});return getPlugins(_0x339695)['then'](function(_0x27a3db){if(_0x339695[_0x4f0f('0x61')]){return _['map'](_0x5a4f36,function(_0x507a7c){if(_0x507a7c['sectionId']===0x709){_0x507a7c[_0x4f0f('0x64')]=_0x27a3db;}return _0x507a7c;});}else{var _0x16c877={'sectionId':0x76c,'enabled':0x1,'subsections':_0x27a3db};var _0x55a95d=_[_0x4f0f('0x2e')](_0x5a4f36);_0x55a95d[_0x4f0f('0x5e')](_0x16c877);return _0x55a95d;}});}else{return;}})['then'](function(_0x43ee33){if(_0x43ee33)_0x5a4f36=_0x43ee33;return _[_0x4f0f('0x40')](_0x5a4f36,[_0x4f0f('0x61'),0x1]);})['then'](respondWithResult(_0x18ee43,null))[_0x4f0f('0x47')](handleError(_0x18ee43,null));};function hasDefaultDashboard(_0x26b2fc){var _0x1a4056=[0x65];return new BPromise(function(_0x18ba7d,_0x1ee736){try{if(_0x26b2fc[_0x4f0f('0x57')]){_0x18ba7d(_0x1a4056);}else{return db[_0x4f0f('0x58')]['findOne']({'where':{'sectionId':_0x26b2fc['id']},'raw':!![]})[_0x4f0f('0x28')](function(_0x5a2c5b){_0x5a2c5b?_0x18ba7d(_0x1a4056):_0x18ba7d();});}}catch(_0x517a7b){_0x1ee736(_0x517a7b);}});}function getCustomDashboards(_0x5a049c){var _0x5d8361=[];return new BPromise(function(_0x16b51c,_0x27c34e){try{if(_0x5a049c[_0x4f0f('0x57')]){return db[_0x4f0f('0x65')]['findAll']({'raw':!![]})[_0x4f0f('0x28')](function(_0xebab63){_0xebab63['forEach'](function(_0x5699d4){_0x5d8361[_0x4f0f('0x5e')](_0x5699d4['id']+0x1869f);});_0x16b51c(_0x5d8361);});}else{return db[_0x4f0f('0x58')][_0x4f0f('0x45')]({'where':{'sectionId':_0x5a049c['id']},'raw':!![]})[_0x4f0f('0x28')](function(_0x32cd10){_0x32cd10['forEach'](function(_0x6f412c){_0x5d8361['push'](_0x6f412c[_0x4f0f('0x66')]+0x1869f);});_0x16b51c(_0x5d8361);});}}catch(_0x13ec58){_0x27c34e(_0x13ec58);}});}function getPlugins(_0x109e1b){var _0x4a7880=[];return new BPromise(function(_0x1b8929,_0x4485e3){try{if(_0x109e1b[_0x4f0f('0x57')]){return db[_0x4f0f('0x67')][_0x4f0f('0x45')]({'raw':!![]})[_0x4f0f('0x28')](function(_0x3be65c){_0x3be65c[_0x4f0f('0x68')](function(_0x39c7a8){_0x4a7880[_0x4f0f('0x5e')](_0x39c7a8['id']+0x15b38);});_0x1b8929(_0x4a7880);});}else{return db[_0x4f0f('0x58')][_0x4f0f('0x45')]({'where':{'sectionId':_0x109e1b['id']},'raw':!![]})['then'](function(_0x4501d8){_0x4501d8[_0x4f0f('0x68')](function(_0x4a6f3a){_0x4a7880[_0x4f0f('0x5e')](_0x4a6f3a[_0x4f0f('0x66')]+0x15b38);});_0x1b8929(_0x4a7880);});}}catch(_0x535c0e){_0x4485e3(_0x535c0e);}});}exports[_0x4f0f('0x69')]=function(_0x1e15df,_0x5cb7d0){return db[_0x4f0f('0x2f')]['find']({'where':{'id':_0x1e15df['params']['id']}})[_0x4f0f('0x28')](handleEntityNotFound(_0x5cb7d0,null))[_0x4f0f('0x28')](function(_0x23f092){if(_0x23f092){return db[_0x4f0f('0x55')][_0x4f0f('0x56')](function(_0x2ebe24){return db[_0x4f0f('0x5c')][_0x4f0f('0x45')]({'where':{'userProfileId':_0x1e15df[_0x4f0f('0x49')]['id']},'attributes':['id'],'raw':!![]})[_0x4f0f('0x28')](function(_0x2364af){if(_0x2364af){return db[_0x4f0f('0x5c')][_0x4f0f('0x29')]({'where':{'userProfileId':_0x1e15df[_0x4f0f('0x49')]['id'],'id':_['map'](_0x2364af,function(_0x30b106){return _0x30b106['id'];})},'transaction':_0x2ebe24});}})[_0x4f0f('0x28')](function(_0x4cf08f){var _0x3610f8=_[_0x4f0f('0x2e')](_0x1e15df['body'],function(_0x2d3745){_0x2d3745['userProfileId']=_0x1e15df[_0x4f0f('0x49')]['id'];return _0x2d3745;});return db[_0x4f0f('0x5c')][_0x4f0f('0x6a')](_0x3610f8,{'raw':!![],'transaction':_0x2ebe24});})[_0x4f0f('0x28')](function(_0x240e84){var _0x55090e=_['filter'](_['map'](_0x240e84,function(_0x2b6e5a){return _0x2b6e5a[_0x4f0f('0x51')]({'plain':!![]});}),{'includeAll':![]});if(_0x55090e){return db[_0x4f0f('0x5c')][_0x4f0f('0x45')]({'where':{'userProfileId':_0x1e15df[_0x4f0f('0x49')]['id'],'sectionId':_[_0x4f0f('0x2e')](_0x55090e,function(_0x165d4a){return _0x165d4a[_0x4f0f('0x59')];})},'attributes':['id',_0x4f0f('0x59')],'raw':!![]})[_0x4f0f('0x28')](function(_0x3e0ce9){var _0x2c3843=_['map'](_0x1e15df['body'],function(_0x1bdab1){_0x1bdab1[_0x4f0f('0x5a')]=_0x1e15df[_0x4f0f('0x49')]['id'];return _0x1bdab1;});return db[_0x4f0f('0x58')][_0x4f0f('0x6a')](_0x2c3843,{'raw':!![],'transaction':_0x2ebe24});});}})['catch'](handleError(_0x5cb7d0,null));});}})[_0x4f0f('0x28')](function(_0x3a165d){var _0x3bd267=_[_0x4f0f('0x2e')](_0x3a165d,function(_0x301ff4){return _0x301ff4[_0x4f0f('0x51')]({'plain':!![]});});})[_0x4f0f('0x28')](respondWithResult(_0x5cb7d0,null))[_0x4f0f('0x47')](handleError(_0x5cb7d0,null));};exports[_0x4f0f('0x6b')]=function(_0x109b87,_0x10585b,_0xe85a41){return db['UserProfile'][_0x4f0f('0x4b')]({'where':{'id':_0x109b87[_0x4f0f('0x49')]['id']}})[_0x4f0f('0x28')](handleEntityNotFound(_0x10585b,null))[_0x4f0f('0x28')](function(_0x4c0f88){if(_0x4c0f88){return _0x4c0f88[_0x4f0f('0x6b')](_0x109b87[_0x4f0f('0x33')][_0x4f0f('0x6c')]);}})[_0x4f0f('0x28')](respondWithStatusCode(_0x10585b,null))[_0x4f0f('0x47')](handleError(_0x10585b,null));};exports[_0x4f0f('0x6d')]=function(_0x3537ae,_0x4b35fd){var _0x5ca433={};if(!_0x3537ae[_0x4f0f('0x33')]['section'])throw new Error('Missing\x20section\x20parameter');if(!_0x3537ae[_0x4f0f('0x33')][_0x4f0f('0x3a')](_0x4f0f('0x3b'))){_0x5ca433[_0x4f0f('0x3c')]=qs['limit'](_0x3537ae[_0x4f0f('0x33')][_0x4f0f('0x3c')]);_0x5ca433[_0x4f0f('0x21')]=qs[_0x4f0f('0x21')](_0x3537ae[_0x4f0f('0x33')][_0x4f0f('0x21')]);}return db[_0x4f0f('0x2f')][_0x4f0f('0x4b')]({'where':{'id':_0x3537ae[_0x4f0f('0x49')]['id']}})[_0x4f0f('0x28')](function(_0x526b7c){if(!_0x526b7c)throw new Error('No\x20User\x20Profile\x20found\x20for\x20id\x20'+_0x3537ae[_0x4f0f('0x49')]['id']);return db[_0x4f0f('0x2f')][_0x4f0f('0x6d')](_0x3537ae);})[_0x4f0f('0x28')](respondWithFilteredResult(_0x4b35fd,_0x5ca433))['catch'](handleError(_0x4b35fd,null));};
\ No newline at end of file
+var _0xa321=['show','params','catch','create','body','clone','find','createdAt','crudPermissions','omit','sequelize','transaction','findAll','each','autoAssociation','UserProfileResource','updatedAt','sectionId','Resources','destroy','describe','addSections','UserProfileSection','map','userProfileId','push','removeSections','ids','getSections','enabled','includes','isEmpty','subsections','findOne','Dashboard','forEach','resourceId','bulkCreate','get','removeResources','getResources','section','Missing\x20section\x20parameter','No\x20User\x20Profile\x20found\x20for\x20id\x20','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','util','path','fs-extra','squel','crypto','jsforce','desk.js','to-csv','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','redis','localhost','socket.io-emitter','./userProfile.socket','sendStatus','status','end','json','offset','undefined','limit','count','set','apply','reject','update','then','stack','name','send','index','rawAttributes','type','query','keys','filters','intersection','attributes','model','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','UserProfile','includeAll','include','rows'];(function(_0x16c5c4,_0x2c5c9f){var _0x57c9b9=function(_0xb4211){while(--_0xb4211){_0x16c5c4['push'](_0x16c5c4['shift']());}};_0x57c9b9(++_0x2c5c9f);}(_0xa321,0x9d));var _0x1a32=function(_0x7ea1fb,_0x2f0b74){_0x7ea1fb=_0x7ea1fb-0x0;var _0x478241=_0xa321[_0x7ea1fb];return _0x478241;};'use strict';var emlformat=require(_0x1a32('0x0'));var rimraf=require(_0x1a32('0x1'));var zipdir=require(_0x1a32('0x2'));var jsonpatch=require(_0x1a32('0x3'));var rp=require('request-promise');var moment=require(_0x1a32('0x4'));var BPromise=require(_0x1a32('0x5'));var Mustache=require('mustache');var util=require(_0x1a32('0x6'));var path=require(_0x1a32('0x7'));var sox=require('sox');var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x1a32('0x8'));var _=require('lodash');var squel=require(_0x1a32('0x9'));var crypto=require(_0x1a32('0xa'));var jsforce=require(_0x1a32('0xb'));var deskjs=require(_0x1a32('0xc'));var toCsv=require(_0x1a32('0xd'));var querystring=require('querystring');var Papa=require(_0x1a32('0xe'));var Redis=require(_0x1a32('0xf'));var authService=require('../../components/auth/service');var qs=require(_0x1a32('0x10'));var as=require(_0x1a32('0x11'));var hardwareService=require(_0x1a32('0x12'));var logger=require(_0x1a32('0x13'))(_0x1a32('0x14'));var utils=require(_0x1a32('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0x1a32('0x16'));var db=require(_0x1a32('0x17'))['db'];config[_0x1a32('0x18')]=_['defaults'](config[_0x1a32('0x18')],{'host':_0x1a32('0x19'),'port':0x18eb});var socket=require(_0x1a32('0x1a'))(new Redis(config[_0x1a32('0x18')]));require(_0x1a32('0x1b'))['register'](socket);function respondWithStatusCode(_0x4498c7,_0x456e81){_0x456e81=_0x456e81||0xcc;return function(_0x1838d2){if(_0x1838d2){return _0x4498c7[_0x1a32('0x1c')](_0x456e81);}return _0x4498c7[_0x1a32('0x1d')](_0x456e81)[_0x1a32('0x1e')]();};}function respondWithResult(_0x5c272a,_0x29c53d){_0x29c53d=_0x29c53d||0xc8;return function(_0x463763){if(_0x463763){return _0x5c272a['status'](_0x29c53d)[_0x1a32('0x1f')](_0x463763);}};}function respondWithFilteredResult(_0x1a68ef,_0x2cac28){return function(_0x3b2983){if(_0x3b2983){var _0x43404b=typeof _0x2cac28[_0x1a32('0x20')]===_0x1a32('0x21')&&typeof _0x2cac28[_0x1a32('0x22')]===_0x1a32('0x21');var _0x17fcea=_0x3b2983[_0x1a32('0x23')];var _0x4c1141=_0x43404b?0x0:_0x2cac28[_0x1a32('0x20')];var _0x16896e=_0x43404b?_0x3b2983[_0x1a32('0x23')]:_0x2cac28['offset']+_0x2cac28[_0x1a32('0x22')];var _0xa7c5c1;if(_0x16896e>=_0x17fcea){_0x16896e=_0x17fcea;_0xa7c5c1=0xc8;}else{_0xa7c5c1=0xce;}_0x1a68ef['status'](_0xa7c5c1);return _0x1a68ef[_0x1a32('0x24')]('Content-Range',_0x4c1141+'-'+_0x16896e+'/'+_0x17fcea)[_0x1a32('0x1f')](_0x3b2983);}return null;};}function patchUpdates(_0x3f1409){return function(_0x4bbf42){try{jsonpatch[_0x1a32('0x25')](_0x4bbf42,_0x3f1409,!![]);}catch(_0x33fc4f){return BPromise[_0x1a32('0x26')](_0x33fc4f);}return _0x4bbf42['save']();};}function saveUpdates(_0x2d6637,_0x1fe746){return function(_0x4bf0a0){if(_0x4bf0a0){return _0x4bf0a0[_0x1a32('0x27')](_0x2d6637)[_0x1a32('0x28')](function(_0x533700){return _0x533700;});}return null;};}function removeEntity(_0x41c892,_0x4b3b33){return function(_0x4c183c){if(_0x4c183c){return _0x4c183c['destroy']()['then'](function(){_0x41c892['status'](0xcc)[_0x1a32('0x1e')]();});}};}function handleEntityNotFound(_0x2309b3,_0x4771b7){return function(_0x2094fa){if(!_0x2094fa){_0x2309b3[_0x1a32('0x1c')](0x194);}return _0x2094fa;};}function handleError(_0x35af58,_0x19e0e6){_0x19e0e6=_0x19e0e6||0x1f4;return function(_0x2edc3e){logger['error'](_0x2edc3e[_0x1a32('0x29')]);if(_0x2edc3e[_0x1a32('0x2a')]){delete _0x2edc3e[_0x1a32('0x2a')];}_0x35af58[_0x1a32('0x1d')](_0x19e0e6)[_0x1a32('0x2b')](_0x2edc3e);};}exports[_0x1a32('0x2c')]=function(_0x821dbf,_0x1211e2){var _0x3bc28a={},_0x54b122={},_0x1af0dc={'count':0x0,'rows':[]};var _0x355d7f=_['map'](db['UserProfile'][_0x1a32('0x2d')],function(_0x582606){return{'name':_0x582606['fieldName'],'type':_0x582606[_0x1a32('0x2e')]['key']};});_0x54b122['model']=_['map'](_0x355d7f,'name');_0x54b122[_0x1a32('0x2f')]=_[_0x1a32('0x30')](_0x821dbf[_0x1a32('0x2f')]);_0x54b122[_0x1a32('0x31')]=_[_0x1a32('0x32')](_0x54b122['model'],_0x54b122['query']);_0x3bc28a[_0x1a32('0x33')]=_['intersection'](_0x54b122[_0x1a32('0x34')],qs[_0x1a32('0x35')](_0x821dbf[_0x1a32('0x2f')]['fields']));_0x3bc28a[_0x1a32('0x33')]=_0x3bc28a[_0x1a32('0x33')][_0x1a32('0x36')]?_0x3bc28a[_0x1a32('0x33')]:_0x54b122[_0x1a32('0x34')];if(!_0x821dbf[_0x1a32('0x2f')][_0x1a32('0x37')](_0x1a32('0x38'))){_0x3bc28a[_0x1a32('0x22')]=qs['limit'](_0x821dbf[_0x1a32('0x2f')][_0x1a32('0x22')]);_0x3bc28a[_0x1a32('0x20')]=qs['offset'](_0x821dbf[_0x1a32('0x2f')][_0x1a32('0x20')]);}_0x3bc28a[_0x1a32('0x39')]=qs[_0x1a32('0x3a')](_0x821dbf[_0x1a32('0x2f')][_0x1a32('0x3a')]);_0x3bc28a[_0x1a32('0x3b')]=qs[_0x1a32('0x31')](_[_0x1a32('0x3c')](_0x821dbf[_0x1a32('0x2f')],_0x54b122[_0x1a32('0x31')]),_0x355d7f);if(_0x821dbf[_0x1a32('0x2f')][_0x1a32('0x3d')]){_0x3bc28a[_0x1a32('0x3b')]=_[_0x1a32('0x3e')](_0x3bc28a['where'],{'$or':_['map'](_0x355d7f,function(_0x5daad5){if(_0x5daad5[_0x1a32('0x2e')]!==_0x1a32('0x3f')){var _0x1f1a98={};_0x1f1a98[_0x5daad5[_0x1a32('0x2a')]]={'$like':'%'+_0x821dbf[_0x1a32('0x2f')]['filter']+'%'};return _0x1f1a98;}})});}_0x3bc28a=_[_0x1a32('0x3e')]({},_0x3bc28a,_0x821dbf[_0x1a32('0x40')]);var _0x26e308={'where':_0x3bc28a[_0x1a32('0x3b')]};return db[_0x1a32('0x41')][_0x1a32('0x23')](_0x26e308)['then'](function(_0x2e618e){_0x1af0dc[_0x1a32('0x23')]=_0x2e618e;if(_0x821dbf[_0x1a32('0x2f')][_0x1a32('0x42')]){_0x3bc28a[_0x1a32('0x43')]=[{'all':!![]}];}return db['UserProfile']['findAll'](_0x3bc28a);})['then'](function(_0x5e58f7){_0x1af0dc[_0x1a32('0x44')]=_0x5e58f7;return _0x1af0dc;})[_0x1a32('0x28')](respondWithFilteredResult(_0x1211e2,_0x3bc28a))['catch'](handleError(_0x1211e2,null));};exports[_0x1a32('0x45')]=function(_0x4590ab,_0x3bf186){var _0x370022={'raw':![],'where':{'id':_0x4590ab[_0x1a32('0x46')]['id']}},_0x5bc5bf={};_0x5bc5bf[_0x1a32('0x34')]=_[_0x1a32('0x30')](db[_0x1a32('0x41')][_0x1a32('0x2d')]);_0x5bc5bf[_0x1a32('0x2f')]=_[_0x1a32('0x30')](_0x4590ab[_0x1a32('0x2f')]);_0x5bc5bf['filters']=_[_0x1a32('0x32')](_0x5bc5bf['model'],_0x5bc5bf['query']);_0x370022[_0x1a32('0x33')]=_['intersection'](_0x5bc5bf[_0x1a32('0x34')],qs['fields'](_0x4590ab[_0x1a32('0x2f')][_0x1a32('0x35')]));_0x370022[_0x1a32('0x33')]=_0x370022[_0x1a32('0x33')][_0x1a32('0x36')]?_0x370022[_0x1a32('0x33')]:_0x5bc5bf[_0x1a32('0x34')];if(_0x4590ab[_0x1a32('0x2f')][_0x1a32('0x42')]){_0x370022['include']=[{'all':!![]}];}_0x370022=_[_0x1a32('0x3e')]({},_0x370022,_0x4590ab[_0x1a32('0x40')]);return db[_0x1a32('0x41')]['find'](_0x370022)[_0x1a32('0x28')](handleEntityNotFound(_0x3bf186,null))[_0x1a32('0x28')](respondWithResult(_0x3bf186,null))[_0x1a32('0x47')](handleError(_0x3bf186,null));};exports[_0x1a32('0x48')]=function(_0x18fbef,_0x4a902c){return db[_0x1a32('0x41')][_0x1a32('0x48')](_0x18fbef[_0x1a32('0x49')],{})[_0x1a32('0x28')](respondWithResult(_0x4a902c,0xc9))[_0x1a32('0x47')](handleError(_0x4a902c,null));};exports[_0x1a32('0x4a')]=function(_0x10016c,_0x2f814b){var _0x37048b={'where':{'id':_0x10016c[_0x1a32('0x46')]['id']}},_0x508138={};_0x508138[_0x1a32('0x34')]=_[_0x1a32('0x30')](db['UserProfile'][_0x1a32('0x2d')]);_0x37048b[_0x1a32('0x33')]=_['intersection'](_0x508138[_0x1a32('0x34')],qs[_0x1a32('0x35')](_0x10016c[_0x1a32('0x2f')]['fields']));_0x37048b[_0x1a32('0x33')]=_0x37048b[_0x1a32('0x33')]['length']?_0x37048b[_0x1a32('0x33')]:_0x508138['model'];if(_0x10016c['query'][_0x1a32('0x42')]){_0x37048b['include']=[{'all':!![]}];}_0x37048b=_['merge']({},_0x37048b,_0x10016c[_0x1a32('0x40')]);return db[_0x1a32('0x41')][_0x1a32('0x4b')](_0x37048b)[_0x1a32('0x28')](handleEntityNotFound(_0x2f814b,null))[_0x1a32('0x28')](function(_0x698ad2){if(_0x698ad2){var _0x133067=_0x698ad2['get']({'plain':!![]});_0x133067=qs['omit'](_0x133067,['id',_0x1a32('0x4c'),'updatedAt',_0x1a32('0x4d')]);_0x10016c[_0x1a32('0x49')]=_[_0x1a32('0x4e')](_0x10016c[_0x1a32('0x49')],['id',_0x1a32('0x4c'),'updatedAt']);return db[_0x1a32('0x4f')][_0x1a32('0x50')](function(_0x9ea88e){return db['UserProfile']['create'](_['merge'](_0x133067,_0x10016c[_0x1a32('0x49')]),{'include':_0x10016c[_0x1a32('0x2f')][_0x1a32('0x42')]?[{'all':!![]}]:undefined,'transaction':_0x9ea88e})[_0x1a32('0x28')](function(_0x2dc62d){var _0x427855=_0x2dc62d['get']({'plain':!![]});return db['UserProfileSection'][_0x1a32('0x51')]({'where':{'userProfileId':_0x10016c[_0x1a32('0x46')]['id']},'raw':!![]})[_0x1a32('0x28')](function(_0x206a0a){if(_0x206a0a){return BPromise[_0x1a32('0x52')](_0x206a0a,function(_0x3d1f6a){return new BPromise(function(_0x441910,_0x57dcf2){if(_0x3d1f6a[_0x1a32('0x53')]===null||_0x3d1f6a[_0x1a32('0x53')]===0x1)_0x441910(null);return db[_0x1a32('0x54')][_0x1a32('0x51')]({'where':{'sectionId':_0x3d1f6a['id']},'raw':!![]})['then'](function(_0x2a4246){var _0x308cde=_['map'](_0x2a4246,function(_0x2cdb38){return qs[_0x1a32('0x4e')](_0x2cdb38,['id',_0x1a32('0x4c'),_0x1a32('0x55'),_0x1a32('0x56')]);});_0x441910(_0x308cde);})[_0x1a32('0x47')](function(_0xa21c2d){_0x57dcf2(_0xa21c2d);});})[_0x1a32('0x28')](function(_0x36a2f8){var _0x39b916=qs['omit'](_0x3d1f6a,['id',_0x1a32('0x4c'),_0x1a32('0x55')]);_0x39b916['userProfileId']=_0x427855['id'];if(_0x36a2f8)_0x39b916[_0x1a32('0x57')]=_0x36a2f8;return _0x39b916;})[_0x1a32('0x28')](function(_0x5726cc){return db['UserProfileSection'][_0x1a32('0x48')](_0x5726cc,{'include':[{'model':db[_0x1a32('0x54')],'as':_0x1a32('0x57')}],'raw':!![],'transaction':_0x9ea88e});});})[_0x1a32('0x28')](function(){return _0x427855;});}});});});}})[_0x1a32('0x28')](respondWithResult(_0x2f814b,0xc9))[_0x1a32('0x47')](handleError(_0x2f814b,null));};exports[_0x1a32('0x27')]=function(_0x552536,_0x306644){if(_0x552536[_0x1a32('0x49')]['id']){delete _0x552536['body']['id'];}return db[_0x1a32('0x41')][_0x1a32('0x4b')]({'where':{'id':_0x552536[_0x1a32('0x46')]['id']}})[_0x1a32('0x28')](handleEntityNotFound(_0x306644,null))[_0x1a32('0x28')](saveUpdates(_0x552536[_0x1a32('0x49')],null))[_0x1a32('0x28')](respondWithResult(_0x306644,null))[_0x1a32('0x47')](handleError(_0x306644,null));};exports[_0x1a32('0x58')]=function(_0x2b6426,_0x2c3954){return db[_0x1a32('0x41')]['find']({'where':{'id':_0x2b6426['params']['id']}})[_0x1a32('0x28')](handleEntityNotFound(_0x2c3954,null))[_0x1a32('0x28')](removeEntity(_0x2c3954,null))[_0x1a32('0x47')](handleError(_0x2c3954,null));};exports[_0x1a32('0x59')]=function(_0x27e088,_0x557074){return db['UserProfile'][_0x1a32('0x59')]()[_0x1a32('0x28')](respondWithResult(_0x557074,null))['catch'](handleError(_0x557074,null));};exports[_0x1a32('0x5a')]=function(_0x40cb60,_0x3d32f1){var _0x5d2de7=_0x40cb60['body'];return db[_0x1a32('0x41')][_0x1a32('0x4b')]({'where':{'id':_0x40cb60[_0x1a32('0x46')]['id']}})[_0x1a32('0x28')](handleEntityNotFound(_0x3d32f1,null))[_0x1a32('0x28')](function(_0x53df34){if(_0x53df34){return db['sequelize'][_0x1a32('0x50')](function(_0x125b2){return db[_0x1a32('0x5b')]['destroy']({'where':{'userProfileId':_0x40cb60[_0x1a32('0x46')]['id'],'sectionId':_[_0x1a32('0x5c')](_0x5d2de7,function(_0x2276c1){return _0x2276c1['sectionId'];})},'transaction':_0x125b2})['then'](function(){var _0x53e980=_[_0x1a32('0x5c')](_0x5d2de7,function(_0x21561c){_0x21561c[_0x1a32('0x5d')]=_0x40cb60['params']['id'];return _0x21561c;});var _0x2dae08=[];return BPromise[_0x1a32('0x52')](_0x53e980,function(_0x86b701){return db[_0x1a32('0x5b')][_0x1a32('0x48')](_0x86b701,{'include':[{'model':db[_0x1a32('0x54')],'as':_0x1a32('0x57')}],'raw':!![],'transaction':_0x125b2})[_0x1a32('0x28')](function(_0x242090){_0x2dae08[_0x1a32('0x5e')](_0x242090['get']({'plain':!![]}));});})[_0x1a32('0x28')](function(){return _0x2dae08;});});});}})[_0x1a32('0x28')](function(_0x14c8fd){return _0x14c8fd;})[_0x1a32('0x28')](respondWithResult(_0x3d32f1,null))[_0x1a32('0x47')](handleError(_0x3d32f1,null));};exports[_0x1a32('0x5f')]=function(_0x9892b4,_0x22218f){var _0x1aee45;return db[_0x1a32('0x41')][_0x1a32('0x4b')]({'where':{'id':_0x9892b4[_0x1a32('0x46')]['id']},'attributes':['id',_0x1a32('0x2a')]})[_0x1a32('0x28')](handleEntityNotFound(_0x22218f,null))['then'](function(_0x36d677){if(_0x36d677){_0x1aee45=_0x36d677;return db[_0x1a32('0x5b')]['destroy']({'where':{'userProfileId':_0x9892b4['params']['id'],'sectionId':_0x9892b4[_0x1a32('0x2f')][_0x1a32('0x60')]}});}})[_0x1a32('0x28')](function(){return _0x1aee45;})[_0x1a32('0x28')](respondWithStatusCode(_0x22218f,null))[_0x1a32('0x47')](handleError(_0x22218f,null));};exports[_0x1a32('0x61')]=function(_0x4835bb,_0x16c2f1){var _0x3dd783=[];var _0x16b1c5=[];return db[_0x1a32('0x5b')][_0x1a32('0x51')]({'where':{'userProfileId':_0x4835bb[_0x1a32('0x46')]['id']},'raw':!![]})[_0x1a32('0x28')](function(_0x418556){_0x3dd783=_[_0x1a32('0x3d')](_0x418556,function(_0x468080){return _0x468080[_0x1a32('0x62')]===0x1||_[_0x1a32('0x63')]([0x3eb,0x709],_0x468080[_0x1a32('0x56')]);});if(!_[_0x1a32('0x64')](_0x3dd783)){return _[_0x1a32('0x5c')](_0x3dd783,function(_0x38ec64){return _0x38ec64[_0x1a32('0x56')];});}else{return;}})['then'](function(_0x54ffbc){if(_0x54ffbc)_0x16b1c5=_0x54ffbc;if(_[_0x1a32('0x63')](_0x16b1c5,0x64)){var _0x4f516e=_[_0x1a32('0x4b')](_0x3dd783,{'sectionId':0x64});return hasDefaultDashboard(_0x4f516e)[_0x1a32('0x28')](function(_0xe3086){return _[_0x1a32('0x5c')](_0x3dd783,function(_0x17d6e9){if(_0x17d6e9[_0x1a32('0x56')]===0x64){_0x17d6e9[_0x1a32('0x65')]=_0xe3086;}return _0x17d6e9;});});}else{return;}})['then'](function(_0x275db0){if(_0x275db0)_0x3dd783=_0x275db0;if(_[_0x1a32('0x63')](_0x16b1c5,0x3eb)){var _0xc9c61a=_[_0x1a32('0x4b')](_0x3dd783,{'sectionId':0x3eb});return getCustomDashboards(_0xc9c61a)[_0x1a32('0x28')](function(_0x24dcd2){return _[_0x1a32('0x5c')](_0x3dd783,function(_0x40c75b){if(_0xc9c61a[_0x1a32('0x62')]){if(_0x40c75b[_0x1a32('0x56')]===0x3eb){_0x40c75b[_0x1a32('0x65')]=_0x24dcd2;}}else{if(_0x40c75b['sectionId']===0x64){_0x40c75b['subsections']=_0x24dcd2;}}return _0x40c75b;});});}else{return;}})[_0x1a32('0x28')](function(_0x46137c){if(_0x46137c)_0x3dd783=_0x46137c;if(_[_0x1a32('0x63')](_0x16b1c5,0x709)){var _0x1627ad=_[_0x1a32('0x4b')](_0x3dd783,{'sectionId':0x709});return getPlugins(_0x1627ad)[_0x1a32('0x28')](function(_0x346493){if(_0x1627ad[_0x1a32('0x62')]){return _['map'](_0x3dd783,function(_0x501499){if(_0x501499[_0x1a32('0x56')]===0x709){_0x501499[_0x1a32('0x65')]=_0x346493;}return _0x501499;});}else{var _0x34d8e9={'sectionId':0x76c,'enabled':0x1,'subsections':_0x346493};var _0x5f5bef=_[_0x1a32('0x5c')](_0x3dd783);_0x5f5bef['push'](_0x34d8e9);return _0x5f5bef;}});}else{return;}})[_0x1a32('0x28')](function(_0x4b6412){if(_0x4b6412)_0x3dd783=_0x4b6412;return _[_0x1a32('0x3d')](_0x3dd783,[_0x1a32('0x62'),0x1]);})[_0x1a32('0x28')](respondWithResult(_0x16c2f1,null))[_0x1a32('0x47')](handleError(_0x16c2f1,null));};function hasDefaultDashboard(_0x117f58){var _0x5146ab=[0x65];return new BPromise(function(_0x4ed97b,_0x37dde6){try{if(_0x117f58[_0x1a32('0x53')]){_0x4ed97b(_0x5146ab);}else{return db[_0x1a32('0x54')][_0x1a32('0x66')]({'where':{'sectionId':_0x117f58['id']},'raw':!![]})[_0x1a32('0x28')](function(_0x4ee036){_0x4ee036?_0x4ed97b(_0x5146ab):_0x4ed97b();});}}catch(_0x3b272f){_0x37dde6(_0x3b272f);}});}function getCustomDashboards(_0x2f15e1){var _0x5bd4c9=[];return new BPromise(function(_0x303f0d,_0x1092d8){try{if(_0x2f15e1['autoAssociation']){return db[_0x1a32('0x67')]['findAll']({'raw':!![]})['then'](function(_0x39d121){_0x39d121['forEach'](function(_0x20c316){_0x5bd4c9[_0x1a32('0x5e')](_0x20c316['id']+0x1869f);});_0x303f0d(_0x5bd4c9);});}else{return db['UserProfileResource'][_0x1a32('0x51')]({'where':{'sectionId':_0x2f15e1['id']},'raw':!![]})[_0x1a32('0x28')](function(_0x2b3ca8){_0x2b3ca8[_0x1a32('0x68')](function(_0x270930){_0x5bd4c9[_0x1a32('0x5e')](_0x270930[_0x1a32('0x69')]+0x1869f);});_0x303f0d(_0x5bd4c9);});}}catch(_0x592b38){_0x1092d8(_0x592b38);}});}function getPlugins(_0x543ed8){var _0x23c47c=[];return new BPromise(function(_0x3f7d29,_0x5e1426){try{if(_0x543ed8[_0x1a32('0x53')]){return db['Plugin'][_0x1a32('0x51')]({'raw':!![]})[_0x1a32('0x28')](function(_0x2160c5){_0x2160c5[_0x1a32('0x68')](function(_0x28bb9a){_0x23c47c[_0x1a32('0x5e')](_0x28bb9a['id']+0x15b38);});_0x3f7d29(_0x23c47c);});}else{return db[_0x1a32('0x54')]['findAll']({'where':{'sectionId':_0x543ed8['id']},'raw':!![]})[_0x1a32('0x28')](function(_0x179621){_0x179621[_0x1a32('0x68')](function(_0x2c22f4){_0x23c47c[_0x1a32('0x5e')](_0x2c22f4[_0x1a32('0x69')]+0x15b38);});_0x3f7d29(_0x23c47c);});}}catch(_0x24caf8){_0x5e1426(_0x24caf8);}});}exports['addResources']=function(_0x12dfee,_0x519296){return db['UserProfile'][_0x1a32('0x4b')]({'where':{'id':_0x12dfee[_0x1a32('0x46')]['id']}})[_0x1a32('0x28')](handleEntityNotFound(_0x519296,null))[_0x1a32('0x28')](function(_0x2cbd2f){if(_0x2cbd2f){return db['sequelize'][_0x1a32('0x50')](function(_0x1e48c9){return db[_0x1a32('0x5b')][_0x1a32('0x51')]({'where':{'userProfileId':_0x12dfee[_0x1a32('0x46')]['id']},'attributes':['id'],'raw':!![]})[_0x1a32('0x28')](function(_0x494d2b){if(_0x494d2b){return db['UserProfileSection'][_0x1a32('0x58')]({'where':{'userProfileId':_0x12dfee[_0x1a32('0x46')]['id'],'id':_[_0x1a32('0x5c')](_0x494d2b,function(_0x437f57){return _0x437f57['id'];})},'transaction':_0x1e48c9});}})[_0x1a32('0x28')](function(_0x8fd415){var _0x4af005=_[_0x1a32('0x5c')](_0x12dfee[_0x1a32('0x49')],function(_0x23ce12){_0x23ce12['userProfileId']=_0x12dfee[_0x1a32('0x46')]['id'];return _0x23ce12;});return db['UserProfileSection'][_0x1a32('0x6a')](_0x4af005,{'raw':!![],'transaction':_0x1e48c9});})[_0x1a32('0x28')](function(_0x48f101){var _0x1a470c=_[_0x1a32('0x3d')](_['map'](_0x48f101,function(_0x25dacd){return _0x25dacd[_0x1a32('0x6b')]({'plain':!![]});}),{'includeAll':![]});if(_0x1a470c){return db[_0x1a32('0x5b')][_0x1a32('0x51')]({'where':{'userProfileId':_0x12dfee[_0x1a32('0x46')]['id'],'sectionId':_[_0x1a32('0x5c')](_0x1a470c,function(_0x3088f2){return _0x3088f2[_0x1a32('0x56')];})},'attributes':['id',_0x1a32('0x56')],'raw':!![]})[_0x1a32('0x28')](function(_0x2596ea){var _0x5bee01=_[_0x1a32('0x5c')](_0x12dfee[_0x1a32('0x49')],function(_0x37153a){_0x37153a[_0x1a32('0x5d')]=_0x12dfee[_0x1a32('0x46')]['id'];return _0x37153a;});return db[_0x1a32('0x54')][_0x1a32('0x6a')](_0x5bee01,{'raw':!![],'transaction':_0x1e48c9});});}})[_0x1a32('0x47')](handleError(_0x519296,null));});}})[_0x1a32('0x28')](function(_0xc11127){var _0x2010fc=_[_0x1a32('0x5c')](_0xc11127,function(_0x5ef9f2){return _0x5ef9f2['get']({'plain':!![]});});})[_0x1a32('0x28')](respondWithResult(_0x519296,null))[_0x1a32('0x47')](handleError(_0x519296,null));};exports['removeResources']=function(_0x48b990,_0x42c24c,_0x31d637){return db[_0x1a32('0x41')]['find']({'where':{'id':_0x48b990[_0x1a32('0x46')]['id']}})[_0x1a32('0x28')](handleEntityNotFound(_0x42c24c,null))['then'](function(_0x52dbd9){if(_0x52dbd9){return _0x52dbd9[_0x1a32('0x6c')](_0x48b990[_0x1a32('0x2f')][_0x1a32('0x60')]);}})['then'](respondWithStatusCode(_0x42c24c,null))[_0x1a32('0x47')](handleError(_0x42c24c,null));};exports[_0x1a32('0x6d')]=function(_0x8d83a9,_0x5e7421){var _0x23ef00={};if(!_0x8d83a9[_0x1a32('0x2f')][_0x1a32('0x6e')])throw new Error(_0x1a32('0x6f'));if(!_0x8d83a9[_0x1a32('0x2f')][_0x1a32('0x37')](_0x1a32('0x38'))){_0x23ef00[_0x1a32('0x22')]=qs[_0x1a32('0x22')](_0x8d83a9[_0x1a32('0x2f')][_0x1a32('0x22')]);_0x23ef00['offset']=qs['offset'](_0x8d83a9['query'][_0x1a32('0x20')]);}return db[_0x1a32('0x41')]['find']({'where':{'id':_0x8d83a9[_0x1a32('0x46')]['id']}})[_0x1a32('0x28')](function(_0x49378c){if(!_0x49378c)throw new Error(_0x1a32('0x70')+_0x8d83a9['params']['id']);return db['UserProfile'][_0x1a32('0x6d')](_0x8d83a9);})[_0x1a32('0x28')](respondWithFilteredResult(_0x5e7421,_0x23ef00))[_0x1a32('0x47')](handleError(_0x5e7421,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1623=['emit','hasOwnProperty','exports','events','setMaxListeners','save','update','remove'];(function(_0x543084,_0x4337f5){var _0x306a57=function(_0x2769ed){while(--_0x2769ed){_0x543084['push'](_0x543084['shift']());}};_0x306a57(++_0x4337f5);}(_0x1623,0xab));var _0x3162=function(_0x3415d6,_0x7e739c){_0x3415d6=_0x3415d6-0x0;var _0x343b11=_0x1623[_0x3415d6];return _0x343b11;};'use strict';var EventEmitter=require(_0x3162('0x0'));var UserProfile=require('../../mysqldb')['db']['UserProfile'];var UserProfileEvents=new EventEmitter();UserProfileEvents[_0x3162('0x1')](0x0);var events={'afterCreate':_0x3162('0x2'),'afterUpdate':_0x3162('0x3'),'afterDestroy':_0x3162('0x4')};function emitEvent(_0x428dd7){return function(_0x4ce2bd,_0x5d49d0,_0x7a4559){UserProfileEvents['emit'](_0x428dd7+':'+_0x4ce2bd['id'],_0x4ce2bd);UserProfileEvents[_0x3162('0x5')](_0x428dd7,_0x4ce2bd);_0x7a4559(null);};}for(var e in events){if(events[_0x3162('0x6')](e)){var event=events[e];UserProfile['hook'](e,emitEvent(event));}}module[_0x3162('0x7')]=UserProfileEvents;
\ No newline at end of file
+var _0xf963=['emit','hook','exports','events','setMaxListeners','save'];(function(_0x356d14,_0x335981){var _0x454990=function(_0x1db5a2){while(--_0x1db5a2){_0x356d14['push'](_0x356d14['shift']());}};_0x454990(++_0x335981);}(_0xf963,0x11d));var _0x3f96=function(_0x42245d,_0x51758f){_0x42245d=_0x42245d-0x0;var _0x4b211a=_0xf963[_0x42245d];return _0x4b211a;};'use strict';var EventEmitter=require(_0x3f96('0x0'));var UserProfile=require('../../mysqldb')['db']['UserProfile'];var UserProfileEvents=new EventEmitter();UserProfileEvents[_0x3f96('0x1')](0x0);var events={'afterCreate':_0x3f96('0x2'),'afterUpdate':'update','afterDestroy':'remove'};function emitEvent(_0x1f30a1){return function(_0x1e7cb9,_0x3a6815,_0x1a91ab){UserProfileEvents['emit'](_0x1f30a1+':'+_0x1e7cb9['id'],_0x1e7cb9);UserProfileEvents[_0x3f96('0x3')](_0x1f30a1,_0x1e7cb9);_0x1a91ab(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];UserProfile[_0x3f96('0x4')](e,emitEvent(event));}}module[_0x3f96('0x5')]=UserProfileEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0295=['VoiceContext','voicemails','VoiceMail','voicerecordings','Agents','membername','role','agent','Telephones','User','queue','VoiceQueue','type','inbound','QueueCampaigns','outbound','musiconholds','VoiceMusicOnHold','VoiceChanSpy','voiceprefixes','ivrcampaigns','mailqueues','MailQueue','MailAccount','mailsubstatuses','MailSubstatus','openchannelqueues','OpenchannelQueue','openchannelaccounts','OpenchannelAccount','smsqueues','SmsQueue','smsaccounts','whatsappqueues','WhatsappQueue','whatsappaccounts','teams','Team','voicequeues','queuecampaigns','VoiceQueues','users','agents','telephones','Users','admin','user','zendeskaccounts','ZendeskAccount','salesforceaccounts','SalesforceAccount','freshdeskaccounts','FreshdeskAccount','sugarcrmaccounts','SugarcrmAccount','deskaccounts','DeskAccount','vtigeraccounts','Disposition','customdashboards','intervals','pauses','Pause','Schedule','sounds','Sound','tags','Tag','triggers','trunks','plugins','Plugin','Reports','reportId','metrics','AnalyticMetric','charAt','slice','SELECT','ui.','InteractionId','ui.createdAt','from','where','ui.UserId\x20=\x20?','sequelize','toString','OpenTabs','define','UserProfile','user_profiles','query','section','mergeResources','Invalid\x20section\x20\x27','isEmpty','push','find','ignore','union','autoAssociation','model','all','rawAttributes','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','limit','offset','order','sort','pick','key','foreignKey','forEach','merge','includeAll','default','DefaultReports','custom','count','include','color','tag','openTabs','rows','chat','sms','dataValues','fax','mail','openchannel','whatsapp','lodash','squel','models','filter','value','then','associatedResources','catch','findAll','map','name','resolve','UserProfileResource','field','AnalyticExtractedReport','resourceId','toLowerCase','odbc','childModel','SquareRecording','parentSections','projectName','JscriptyProject','contacts','CmContact','Lists','lists','companies','CmCompany','globalcustomfields','CmCustomField','chatqueues','ChatQueue','chatwebsites','ChatWebsite','faxaccounts','inboundroutes','internalroutes','outboundroutes','VoiceExtension','contexts'];(function(_0xbda0a6,_0x491a18){var _0x35ce06=function(_0x5cf3e7){while(--_0x5cf3e7){_0xbda0a6['push'](_0xbda0a6['shift']());}};_0x35ce06(++_0x491a18);}(_0x0295,0x1f0));var _0x5029=function(_0x53199f,_0x1dac3a){_0x53199f=_0x53199f-0x0;var _0x1f9609=_0x0295[_0x53199f];return _0x1f9609;};'use strict';var _=require(_0x5029('0x0'));var attributes=require('./userProfile.attributes');var qs=require('../../components/parsers/qs');var squel=require(_0x5029('0x1'));module['exports']=function(_0x53c2e1){var _0x315589=_0x53c2e1[_0x5029('0x2')];function _0x157a4f(_0x3d0af1,_0x170504){return new Promise(function(_0x69a497,_0x200217){if(!_0x170504)return _0x69a497(null);var _0x215955=_0x170504[_0x5029('0x3')]?{[_0x170504['filter']['field']]:_0x170504['filter'][_0x5029('0x4')]}:undefined;return _0x315589[_0x3d0af1]['findAll']({'where':_0x215955,'raw':!![]})[_0x5029('0x5')](function(_0x5bccfc){_0x170504[_0x5029('0x6')]=_['map'](_0x5bccfc,'id');_0x69a497(_0x170504);})[_0x5029('0x7')](function(_0x22cfb4){_0x200217(_0x22cfb4);});});}function _0x12834c(_0x52fa95,_0x3f4c48){return new Promise(function(_0xbf61f,_0x3fe6d1){var _0x4f295e=_0x52fa95[_0x5029('0x3')]?{[_0x52fa95[_0x5029('0x3')]['field']]:_0x52fa95['filter']['value']}:undefined;return _0x315589[_0x52fa95['model']][_0x5029('0x8')]({'where':_0x4f295e,'raw':!![]})[_0x5029('0x5')](function(_0x12c237){_0x3f4c48[_0x5029('0x6')]=_[_0x5029('0x9')](_0x12c237,function(_0x11c24b){return _0x11c24b[_0x5029('0xa')];});_0xbf61f(_0x3f4c48);})[_0x5029('0x7')](function(_0x10bf55){_0x3fe6d1(_0x10bf55);});});}function _0x326923(_0x457c73,_0x353cba,_0x3786b5){if(!_0x353cba)return Promise[_0x5029('0xb')](null);return new Promise(function(_0x343918,_0x4f7ab4){return _0x315589[_0x5029('0xc')][_0x5029('0x8')]({'where':{'sectionId':_0x353cba['id']},'raw':!![]})[_0x5029('0x5')](function(_0x4902f3){if(_0x457c73[_0x5029('0xd')]&&_0x457c73[_0x5029('0xd')]!=='id'){_0x353cba[_0x5029('0x6')]=_['map'](_0x4902f3,function(_0x226a5c){return _0x226a5c[_0x457c73['field']];});}else{if(_0x3786b5===_0x5029('0xe')){_0x353cba[_0x5029('0x6')]=_[_0x5029('0x9')](_0x4902f3,function(_0x3cf0fb){return{'id':_0x3cf0fb['resourceId'],'type':_0x3cf0fb['type']};});}else{_0x353cba[_0x5029('0x6')]=_['map'](_0x4902f3,function(_0x3f657d){return _0x3f657d[_0x5029('0xf')];});}}_0x343918(_0x353cba);})[_0x5029('0x7')](function(_0x2bbbcb){_0x4f7ab4(_0x2bbbcb);});});}function _0x16bd22(_0x3a3e52,_0x125c26){var _0x356dac={'parentSections':[]};switch(_0x3a3e52[_0x5029('0x10')]()){case'squareprojects':_0x356dac['childModel']='SquareProject';break;case _0x5029('0x11'):_0x356dac[_0x5029('0x12')]='SquareOdbc';break;case'squarerecordings':_0x356dac[_0x5029('0x12')]=_0x5029('0x13');_0x356dac[_0x5029('0x14')]=[{'name':'SquareProjects','field':_0x5029('0xa'),'foreignKey':_0x5029('0x15')}];break;case'projects':_0x356dac[_0x5029('0x12')]=_0x5029('0x16');break;case _0x5029('0x17'):_0x356dac['childModel']=_0x5029('0x18');_0x356dac[_0x5029('0x14')]=[{'name':_0x5029('0x19'),'field':'id','foreignKey':'ListId'}];break;case _0x5029('0x1a'):_0x356dac[_0x5029('0x12')]='CmList';break;case _0x5029('0x1b'):_0x356dac[_0x5029('0x12')]=_0x5029('0x1c');break;case _0x5029('0x1d'):_0x356dac[_0x5029('0x12')]=_0x5029('0x1e');break;case _0x5029('0x1f'):_0x356dac[_0x5029('0x12')]=_0x5029('0x20');break;case _0x5029('0x21'):_0x356dac[_0x5029('0x12')]=_0x5029('0x22');break;case'faxqueues':_0x356dac[_0x5029('0x12')]='FaxQueue';break;case _0x5029('0x23'):_0x356dac['childModel']='FaxAccount';break;case _0x5029('0x24'):case _0x5029('0x25'):case _0x5029('0x26'):_0x356dac['childModel']=_0x5029('0x27');break;case _0x5029('0x28'):_0x356dac[_0x5029('0x12')]=_0x5029('0x29');break;case _0x5029('0x2a'):_0x356dac[_0x5029('0x12')]=_0x5029('0x2b');break;case _0x5029('0x2c'):_0x356dac[_0x5029('0x12')]='VoiceRecording';_0x356dac[_0x5029('0x14')]=[{'name':_0x5029('0x2d'),'field':_0x5029('0xa'),'foreignKey':_0x5029('0x2e'),'model':'User','filter':{'field':_0x5029('0x2f'),'value':[_0x5029('0x30')]}},{'name':_0x5029('0x31'),'field':'name','foreignKey':'membername','model':_0x5029('0x32'),'filter':{'field':_0x5029('0x2f'),'value':['telephone']}},{'name':'VoiceQueues','field':_0x5029('0xa'),'foreignKey':_0x5029('0x33'),'model':_0x5029('0x34'),'filter':{'field':_0x5029('0x35'),'value':[_0x5029('0x36')]}},{'name':_0x5029('0x37'),'field':_0x5029('0xa'),'foreignKey':_0x5029('0x33'),'model':_0x5029('0x34'),'filter':{'field':_0x5029('0x35'),'value':[_0x5029('0x38')]}}];break;case _0x5029('0x39'):_0x356dac[_0x5029('0x12')]=_0x5029('0x3a');break;case'chanspies':_0x356dac['childModel']=_0x5029('0x3b');break;case _0x5029('0x3c'):_0x356dac[_0x5029('0x12')]='VoicePrefix';break;case _0x5029('0x3d'):_0x356dac[_0x5029('0x12')]='Campaign';break;case _0x5029('0x3e'):_0x356dac['childModel']=_0x5029('0x3f');break;case'mailaccounts':_0x356dac[_0x5029('0x12')]=_0x5029('0x40');break;case _0x5029('0x41'):_0x356dac[_0x5029('0x12')]=_0x5029('0x42');break;case _0x5029('0x43'):_0x356dac[_0x5029('0x12')]=_0x5029('0x44');break;case _0x5029('0x45'):_0x356dac['childModel']=_0x5029('0x46');break;case _0x5029('0x47'):_0x356dac[_0x5029('0x12')]=_0x5029('0x48');break;case _0x5029('0x49'):_0x356dac[_0x5029('0x12')]='SmsAccount';break;case _0x5029('0x4a'):_0x356dac[_0x5029('0x12')]=_0x5029('0x4b');break;case _0x5029('0x4c'):_0x356dac[_0x5029('0x12')]='WhatsappAccount';break;case _0x5029('0x4d'):_0x356dac[_0x5029('0x12')]=_0x5029('0x4e');break;case _0x5029('0x4f'):case _0x5029('0x50'):_0x356dac[_0x5029('0x12')]=_0x5029('0x34');if(_0x125c26){_0x356dac[_0x5029('0x14')]=[{'name':_0x5029('0x51')},{'name':'QueueCampaigns'}];}break;case _0x5029('0x52'):case _0x5029('0x53'):case _0x5029('0x54'):_0x356dac[_0x5029('0x12')]='User';if(_0x125c26){_0x356dac['parentSections']=[{'name':_0x5029('0x55'),'filter':{'field':_0x5029('0x2f'),'value':[_0x5029('0x56'),_0x5029('0x57')]},'ignore':!![]},{'name':_0x5029('0x2d')},{'name':_0x5029('0x31')}];}break;case _0x5029('0x58'):_0x356dac[_0x5029('0x12')]=_0x5029('0x59');break;case _0x5029('0x5a'):_0x356dac[_0x5029('0x12')]=_0x5029('0x5b');break;case _0x5029('0x5c'):_0x356dac[_0x5029('0x12')]=_0x5029('0x5d');break;case _0x5029('0x5e'):_0x356dac[_0x5029('0x12')]=_0x5029('0x5f');break;case _0x5029('0x60'):_0x356dac[_0x5029('0x12')]=_0x5029('0x61');break;case'zohoaccounts':_0x356dac[_0x5029('0x12')]='ZohoAccount';break;case _0x5029('0x62'):_0x356dac[_0x5029('0x12')]='User';break;case'cannedanswers':_0x356dac[_0x5029('0x12')]='CannedAnswer';break;case'dispositions':_0x356dac[_0x5029('0x12')]=_0x5029('0x63');break;case _0x5029('0x64'):_0x356dac['childModel']='Dashboard';break;case _0x5029('0x65'):_0x356dac[_0x5029('0x12')]='Interval';break;case _0x5029('0x66'):_0x356dac['childModel']=_0x5029('0x67');break;case'scheduler':_0x356dac[_0x5029('0x12')]=_0x5029('0x68');break;case _0x5029('0x69'):_0x356dac[_0x5029('0x12')]=_0x5029('0x6a');break;case _0x5029('0x6b'):_0x356dac[_0x5029('0x12')]=_0x5029('0x6c');break;case'templates':_0x356dac[_0x5029('0x12')]='Template';break;case _0x5029('0x6d'):_0x356dac[_0x5029('0x12')]='Trigger';break;case _0x5029('0x6e'):_0x356dac['childModel']='Trunk';break;case'variables':_0x356dac[_0x5029('0x12')]='Variable';break;case _0x5029('0x6f'):_0x356dac[_0x5029('0x12')]=_0x5029('0x70');break;case'extractedreports':_0x356dac[_0x5029('0x12')]='AnalyticExtractedReport';_0x356dac['parentSections']=[{'name':_0x5029('0x71'),'field':'id','foreignKey':_0x5029('0x72')}];break;case _0x5029('0x73'):_0x356dac[_0x5029('0x12')]=_0x5029('0x74');break;}return _0x356dac;}function _0x4e8d9f(_0x450d4d,_0x124634){var _0x1f79b3=_0x450d4d[_0x5029('0x75')](0x0)['toUpperCase']()+_0x450d4d[_0x5029('0x76')](0x1);var _0xfffc0d={'type':_0x315589['Sequelize']['QueryTypes'][_0x5029('0x77')],'raw':!![]};return new Promise(function(_0x4685a6,_0x1263ba){var _0x3b68e1=squel['select']()[_0x5029('0xd')](_0x5029('0x78')+_0x1f79b3+_0x5029('0x79'),'id')[_0x5029('0xd')](_0x5029('0x7a'))[_0x5029('0x7b')]('user_has_'+_0x450d4d+'_interactions','ui')[_0x5029('0x7c')](_0x5029('0x7d'),_0x124634['id']);return _0x315589[_0x5029('0x7e')]['query'](_0x3b68e1[_0x5029('0x7f')](),_0xfffc0d)[_0x5029('0x5')](function(_0x105638){_0x124634[_0x1f79b3+_0x5029('0x80')]=_0x105638;_0x4685a6(_0x105638);})[_0x5029('0x7')](function(_0x5264c6){_0x1263ba(_0x5264c6);});});}return _0x53c2e1[_0x5029('0x81')](_0x5029('0x82'),attributes,{'tableName':_0x5029('0x83'),'paranoid':![],'indexes':[],'timestamps':!![],'classMethods':{'getResources':function(_0x5bf867){var _0x853407={'raw':![],'where':{}};var _0x4e0fe6={};var _0x2a9d12={'count':0x0,'rows':[]};var _0x4f2f0c=_0x5bf867[_0x5029('0x84')][_0x5029('0x85')];var _0x2ad2e3=_0x5bf867[_0x5029('0x84')][_0x5029('0x86')]||![];var _0x2ab5cf=_0x16bd22(_0x4f2f0c,_0x2ad2e3);if(!_0x2ab5cf['childModel'])throw new Error(_0x5029('0x87')+_0x4f2f0c+'\x27');var _0x19220d=[{'name':_0x4f2f0c}];if(!_[_0x5029('0x88')](_0x2ab5cf[_0x5029('0x14')]))_0x19220d=_0x2ab5cf[_0x5029('0x14')];var _0x506f74=[];for(var _0x13ca47=0x0;_0x13ca47<_0x19220d['length'];_0x13ca47++){_0x506f74[_0x5029('0x89')](_0x315589['UserProfileSection'][_0x5029('0x8a')]({'where':{'userProfileId':_0x5bf867['params']['id'],'name':_0x19220d[_0x13ca47][_0x5029('0xa')]},'raw':!![]}));}return Promise['all'](_0x506f74)['then'](function(_0x440658){var _0x575f09=_[_0x5029('0x3')](_0x440658,function(_0xd0175d){return _0xd0175d?_0xd0175d:undefined;});var _0x382994=_['filter'](_0x19220d,[_0x5029('0x8b'),!![]]);var _0x490821=_[_0x5029('0x88')](_0x575f09)&&_[_0x5029('0x88')](_0x382994)?null:_[_0x5029('0x8c')](_0x382994,_0x575f09);if(!_0x490821)return null;var _0x1cca02=[];for(var _0x1deed7=0x0;_0x1deed7<_0x490821['length'];_0x1deed7++){var _0x409034=_[_0x5029('0x8a')](_0x19220d,function(_0x5890ac){return _0x490821[_0x1deed7]?_0x5890ac[_0x5029('0xa')]===_0x490821[_0x1deed7][_0x5029('0xa')]:null;});if(_0x409034){if(_0x490821[_0x1deed7][_0x5029('0x8b')]){_0x1cca02[_0x5029('0x89')](_0x157a4f(_0x2ab5cf[_0x5029('0x12')],_0x490821[_0x1deed7]));}else{if(!_0x490821[_0x1deed7][_0x5029('0x8d')]){_0x1cca02['push'](_0x326923(_0x409034,_0x490821[_0x1deed7],_0x2ab5cf['childModel']));}else{if(_0x409034[_0x5029('0x8e')]){_0x1cca02['push'](_0x12834c(_0x409034,_0x490821[_0x1deed7]));}}}}}return Promise[_0x5029('0x8f')](_0x1cca02);})[_0x5029('0x5')](function(_0x58db57){var _0x181956=_0x58db57;var _0x574d06=null;if(_0x181956){_0x574d06=_0x181956['length']===0x1?_0x181956[0x0]:null;}if(!_0x574d06&&!_0x181956)return _0x2a9d12;var _0x3688d8=_0x315589[_0x2ab5cf[_0x5029('0x12')]][_0x5029('0x90')];_0x4e0fe6[_0x5029('0x8e')]=_['keys'](_0x3688d8);_0x4e0fe6[_0x5029('0x84')]=_[_0x5029('0x91')](_0x5bf867['query']);_0x4e0fe6[_0x5029('0x92')]=_[_0x5029('0x93')](_0x4e0fe6['model'],_0x4e0fe6['query']);_0x853407['attributes']=_[_0x5029('0x93')](_0x4e0fe6[_0x5029('0x8e')],qs[_0x5029('0x94')](_0x5bf867[_0x5029('0x84')][_0x5029('0x94')]));_0x853407[_0x5029('0x95')]=_0x853407[_0x5029('0x95')][_0x5029('0x96')]?_0x853407[_0x5029('0x95')]:_0x4e0fe6['model'];if(!_0x5bf867['query'][_0x5029('0x97')](_0x5029('0x98'))){_0x853407[_0x5029('0x99')]=qs[_0x5029('0x99')](_0x5bf867[_0x5029('0x84')][_0x5029('0x99')]);_0x853407[_0x5029('0x9a')]=qs['offset'](_0x5bf867[_0x5029('0x84')][_0x5029('0x9a')]);}_0x853407[_0x5029('0x9b')]=qs['sort'](_0x5bf867[_0x5029('0x84')][_0x5029('0x9c')]);_0x853407[_0x5029('0x7c')]=qs['filters'](_[_0x5029('0x9d')](_0x5bf867[_0x5029('0x84')],_0x4e0fe6[_0x5029('0x92')]));if(_0x5bf867['query'][_0x5029('0x3')]){_0x853407[_0x5029('0x7c')]=_['merge'](_0x853407[_0x5029('0x7c')],{'$or':_[_0x5029('0x9')](_0x3688d8,function(_0x3f3118){if(_0x3f3118[_0x5029('0x35')][_0x5029('0x9e')]!=='VIRTUAL'){var _0x29d5bf={};_0x29d5bf[_0x3f3118[_0x5029('0xd')]]={'$like':'%'+_0x5bf867[_0x5029('0x84')][_0x5029('0x3')]+'%'};return _0x29d5bf;}})});}var _0x153cdc=[];var _0x5e7f50=null;var _0x455464={};if(_0x574d06){_0x5e7f50=_[_0x5029('0x8a')](_0x19220d,[_0x5029('0xa'),_0x574d06['name']]);if(_0x5e7f50[_0x5029('0xd')]){_0x455464={};if(_0x2ab5cf[_0x5029('0x12')]===_0x5029('0xe')){_0x455464[_0x5e7f50[_0x5029('0x9f')]]=_[_0x5029('0x9')](_0x574d06[_0x5029('0x6')],'id');}else{_0x455464[_0x5e7f50[_0x5029('0x9f')]]=_0x574d06['associatedResources'];}_0x153cdc[_0x5029('0x89')](_0x455464);}else{_0x853407[_0x5029('0x7c')]['id']=_0x574d06[_0x5029('0x6')];}}else{for(var _0xde6006=0x0;_0xde6006<_0x181956[_0x5029('0x96')];_0xde6006++){_0x5e7f50=_['find'](_0x19220d,[_0x5029('0xa'),_0x181956[_0xde6006][_0x5029('0xa')]]);if(_0x5e7f50[_0x5029('0xd')]){_0x455464={};_0x455464[_0x5e7f50['foreignKey']]=_0x181956[_0xde6006][_0x5029('0x6')];_0x153cdc[_0x5029('0x89')](_0x455464);}else{if(!_0x853407['where']['id'])_0x853407['where']['id']=[];_0x181956[_0xde6006]['associatedResources'][_0x5029('0xa0')](function(_0x46c738){_0x853407[_0x5029('0x7c')]['id'][_0x5029('0x89')](_0x46c738);});}}}if(!_[_0x5029('0x88')](_0x153cdc)){_0x853407['where']=_[_0x5029('0xa1')](_0x853407[_0x5029('0x7c')],{'$and':{'$or':_0x153cdc}});}_0x853407=_[_0x5029('0xa1')]({},_0x853407,_0x5bf867['options']);if(_0x574d06&&!_0x574d06['autoAssociation']&&_0x2ab5cf[_0x5029('0x12')]===_0x5029('0xe')){if(_0x5bf867[_0x5029('0x84')][_0x5029('0xa2')]){_0x853407['include']=[{'all':!![]}];}return _0x315589[_0x2ab5cf[_0x5029('0x12')]][_0x5029('0x8')](_0x853407)[_0x5029('0x5')](function(_0x3295ba){var _0x49f6b8=[];_0x3295ba[_0x5029('0xa0')](function(_0x308860){var _0xe4b730;switch(_0x308860['reportType']){case _0x5029('0xa3'):_0xe4b730=_['find'](_0x574d06['associatedResources'],function(_0x3e3150){return _0x3e3150['id']===_0x308860['reportId']&&_0x3e3150[_0x5029('0x35')]===_0x5029('0xa4');});break;case _0x5029('0xa5'):_0xe4b730=_[_0x5029('0x8a')](_0x574d06[_0x5029('0x6')],function(_0x227d13){return _0x227d13['id']===_0x308860[_0x5029('0x72')]&&_0x227d13[_0x5029('0x35')]==='CustomReports';});break;}if(_0xe4b730)_0x49f6b8['push'](_0x308860);});_0x2a9d12[_0x5029('0xa6')]=_0x49f6b8['length'];_0x2a9d12['rows']=_0x49f6b8;return _0x2a9d12;});}else{return _0x315589[_0x2ab5cf[_0x5029('0x12')]]['count']({'where':_0x853407['where']})[_0x5029('0x5')](function(_0xb8da0b){_0x2a9d12[_0x5029('0xa6')]=_0xb8da0b;if(_0x5bf867[_0x5029('0x84')][_0x5029('0xa2')]){if(_0x2ab5cf['childModel']===_0x5029('0x18')){_0x853407[_0x5029('0xa7')]=[{'model':_0x315589[_0x5029('0x6c')],'as':'Tags','attributes':['id',_0x5029('0xa'),_0x5029('0xa8')],'required':_0x5bf867[_0x5029('0x84')][_0x5029('0xa9')]?!![]:![]},{'model':_0x315589[_0x5029('0x6c')],'as':'ThroughTags','attributes':['id','name',_0x5029('0xa8')],'through':_0x5bf867[_0x5029('0x84')]['tag']?{'attributes':[],'where':{'TagId':_0x5bf867[_0x5029('0x84')][_0x5029('0xa9')]||undefined}}:{},'required':_0x5bf867[_0x5029('0x84')][_0x5029('0xa9')]?!![]:![]}];}else{_0x853407[_0x5029('0xa7')]=[{'all':!![]}];}}return _0x315589[_0x2ab5cf[_0x5029('0x12')]][_0x5029('0x8')](_0x853407);})[_0x5029('0x5')](function(_0x51aaad){_0x2a9d12['rows']=_0x51aaad;if(_0x4f2f0c===_0x5029('0x2d')&&_0x5bf867['query'][_0x5029('0xaa')]==='true'){var _0x36fdce=[];for(var _0x37880b=0x0;_0x37880b<_0x2a9d12[_0x5029('0xab')]['length'];_0x37880b++){_0x36fdce[_0x5029('0x89')](_0x4e8d9f(_0x5029('0xac'),_0x2a9d12[_0x5029('0xab')][_0x37880b]['dataValues']));_0x36fdce[_0x5029('0x89')](_0x4e8d9f(_0x5029('0xad'),_0x2a9d12[_0x5029('0xab')][_0x37880b][_0x5029('0xae')]));_0x36fdce[_0x5029('0x89')](_0x4e8d9f(_0x5029('0xaf'),_0x2a9d12[_0x5029('0xab')][_0x37880b][_0x5029('0xae')]));_0x36fdce[_0x5029('0x89')](_0x4e8d9f(_0x5029('0xb0'),_0x2a9d12[_0x5029('0xab')][_0x37880b][_0x5029('0xae')]));_0x36fdce[_0x5029('0x89')](_0x4e8d9f(_0x5029('0xb1'),_0x2a9d12[_0x5029('0xab')][_0x37880b][_0x5029('0xae')]));_0x36fdce[_0x5029('0x89')](_0x4e8d9f(_0x5029('0xb2'),_0x2a9d12['rows'][_0x37880b][_0x5029('0xae')]));}return Promise[_0x5029('0x8f')](_0x36fdce)[_0x5029('0x5')](function(){return _0x2a9d12;});}return _0x2a9d12;});}});}}});};
\ No newline at end of file
+var _0xd117=['pick','VIRTUAL','foreignKey','forEach','merge','options','includeAll','reportType','default','reportId','custom','count','rows','include','Tags','tag','color','openTabs','chat','dataValues','fax','mail','openchannel','whatsapp','lodash','./userProfile.attributes','../../components/parsers/qs','squel','exports','models','filter','value','findAll','associatedResources','map','field','model','then','name','catch','resolve','UserProfileResource','AnalyticExtractedReport','resourceId','type','toLowerCase','squareprojects','childModel','odbc','parentSections','SquareProjects','projects','JscriptyProject','CmContact','Lists','lists','CmList','CmCompany','globalcustomfields','chatqueues','chatwebsites','ChatWebsite','inboundroutes','internalroutes','outboundroutes','contexts','VoiceMail','Agents','User','role','agent','Telephones','membername','telephone','VoiceQueues','queue','QueueCampaigns','VoiceQueue','outbound','musiconholds','VoiceMusicOnHold','voiceprefixes','VoicePrefix','ivrcampaigns','Campaign','MailQueue','mailaccounts','MailAccount','mailsubstatuses','MailSubstatus','openchannelqueues','openchannelaccounts','OpenchannelAccount','smsqueues','SmsQueue','smsaccounts','WhatsappQueue','whatsappaccounts','WhatsappAccount','teams','Team','voicequeues','users','agents','Users','admin','user','zendeskaccounts','SalesforceAccount','freshdeskaccounts','FreshdeskAccount','sugarcrmaccounts','SugarcrmAccount','deskaccounts','DeskAccount','zohoaccounts','vtigeraccounts','CannedAnswer','dispositions','Dashboard','Interval','pauses','scheduler','Schedule','Sound','tags','Tag','templates','Template','triggers','Trigger','Trunk','variables','Variable','plugins','Plugin','extractedreports','metrics','AnalyticMetric','charAt','toUpperCase','slice','Sequelize','QueryTypes','SELECT','ui.createdAt','from','user_has_','_interactions','where','ui.UserId\x20=\x20?','query','OpenTabs','define','UserProfile','user_profiles','section','mergeResources','Invalid\x20section\x20\x27','isEmpty','length','push','UserProfileSection','find','params','all','ignore','union','autoAssociation','rawAttributes','keys','filters','intersection','fields','attributes','hasOwnProperty','nolimit','limit','offset','order','sort'];(function(_0x3f6c27,_0x47ef96){var _0xfc6c2c=function(_0x2ddcb1){while(--_0x2ddcb1){_0x3f6c27['push'](_0x3f6c27['shift']());}};_0xfc6c2c(++_0x47ef96);}(_0xd117,0x182));var _0x7d11=function(_0x52684f,_0xff73fc){_0x52684f=_0x52684f-0x0;var _0x4a55f0=_0xd117[_0x52684f];return _0x4a55f0;};'use strict';var _=require(_0x7d11('0x0'));var attributes=require(_0x7d11('0x1'));var qs=require(_0x7d11('0x2'));var squel=require(_0x7d11('0x3'));module[_0x7d11('0x4')]=function(_0x26e0f0){var _0x306ae4=_0x26e0f0[_0x7d11('0x5')];function _0x3c07be(_0x31fcb0,_0x589c51){return new Promise(function(_0x2689c6,_0x27d7e8){if(!_0x589c51)return _0x2689c6(null);var _0x40c3c4=_0x589c51[_0x7d11('0x6')]?{[_0x589c51[_0x7d11('0x6')]['field']]:_0x589c51[_0x7d11('0x6')][_0x7d11('0x7')]}:undefined;return _0x306ae4[_0x31fcb0][_0x7d11('0x8')]({'where':_0x40c3c4,'raw':!![]})['then'](function(_0x305eef){_0x589c51[_0x7d11('0x9')]=_[_0x7d11('0xa')](_0x305eef,'id');_0x2689c6(_0x589c51);})['catch'](function(_0x37047f){_0x27d7e8(_0x37047f);});});}function _0x48b0f1(_0x58a6fd,_0xb15984){return new Promise(function(_0x5c6d5d,_0x4a8668){var _0xc52a95=_0x58a6fd['filter']?{[_0x58a6fd[_0x7d11('0x6')][_0x7d11('0xb')]]:_0x58a6fd['filter'][_0x7d11('0x7')]}:undefined;return _0x306ae4[_0x58a6fd[_0x7d11('0xc')]]['findAll']({'where':_0xc52a95,'raw':!![]})[_0x7d11('0xd')](function(_0x16949d){_0xb15984[_0x7d11('0x9')]=_[_0x7d11('0xa')](_0x16949d,function(_0x417e2d){return _0x417e2d[_0x7d11('0xe')];});_0x5c6d5d(_0xb15984);})[_0x7d11('0xf')](function(_0xb1669e){_0x4a8668(_0xb1669e);});});}function _0x4aa795(_0x1db0df,_0x12c2ff,_0x169733){if(!_0x12c2ff)return Promise[_0x7d11('0x10')](null);return new Promise(function(_0x45f916,_0x528fdc){return _0x306ae4[_0x7d11('0x11')][_0x7d11('0x8')]({'where':{'sectionId':_0x12c2ff['id']},'raw':!![]})['then'](function(_0x5459df){if(_0x1db0df[_0x7d11('0xb')]&&_0x1db0df['field']!=='id'){_0x12c2ff[_0x7d11('0x9')]=_['map'](_0x5459df,function(_0xbe0a79){return _0xbe0a79[_0x1db0df[_0x7d11('0xb')]];});}else{if(_0x169733===_0x7d11('0x12')){_0x12c2ff[_0x7d11('0x9')]=_[_0x7d11('0xa')](_0x5459df,function(_0x117bb9){return{'id':_0x117bb9[_0x7d11('0x13')],'type':_0x117bb9[_0x7d11('0x14')]};});}else{_0x12c2ff['associatedResources']=_[_0x7d11('0xa')](_0x5459df,function(_0x4a34f4){return _0x4a34f4['resourceId'];});}}_0x45f916(_0x12c2ff);})['catch'](function(_0x27a818){_0x528fdc(_0x27a818);});});}function _0x3545dc(_0x44476c,_0x1a7853){var _0x355d14={'parentSections':[]};switch(_0x44476c[_0x7d11('0x15')]()){case _0x7d11('0x16'):_0x355d14[_0x7d11('0x17')]='SquareProject';break;case _0x7d11('0x18'):_0x355d14['childModel']='SquareOdbc';break;case'squarerecordings':_0x355d14[_0x7d11('0x17')]='SquareRecording';_0x355d14[_0x7d11('0x19')]=[{'name':_0x7d11('0x1a'),'field':_0x7d11('0xe'),'foreignKey':'projectName'}];break;case _0x7d11('0x1b'):_0x355d14[_0x7d11('0x17')]=_0x7d11('0x1c');break;case'contacts':_0x355d14[_0x7d11('0x17')]=_0x7d11('0x1d');_0x355d14[_0x7d11('0x19')]=[{'name':_0x7d11('0x1e'),'field':'id','foreignKey':'ListId'}];break;case _0x7d11('0x1f'):_0x355d14['childModel']=_0x7d11('0x20');break;case'companies':_0x355d14[_0x7d11('0x17')]=_0x7d11('0x21');break;case _0x7d11('0x22'):_0x355d14['childModel']='CmCustomField';break;case _0x7d11('0x23'):_0x355d14[_0x7d11('0x17')]='ChatQueue';break;case _0x7d11('0x24'):_0x355d14[_0x7d11('0x17')]=_0x7d11('0x25');break;case'faxqueues':_0x355d14[_0x7d11('0x17')]='FaxQueue';break;case'faxaccounts':_0x355d14[_0x7d11('0x17')]='FaxAccount';break;case _0x7d11('0x26'):case _0x7d11('0x27'):case _0x7d11('0x28'):_0x355d14[_0x7d11('0x17')]='VoiceExtension';break;case _0x7d11('0x29'):_0x355d14[_0x7d11('0x17')]='VoiceContext';break;case'voicemails':_0x355d14[_0x7d11('0x17')]=_0x7d11('0x2a');break;case'voicerecordings':_0x355d14[_0x7d11('0x17')]='VoiceRecording';_0x355d14['parentSections']=[{'name':_0x7d11('0x2b'),'field':'name','foreignKey':'membername','model':_0x7d11('0x2c'),'filter':{'field':_0x7d11('0x2d'),'value':[_0x7d11('0x2e')]}},{'name':_0x7d11('0x2f'),'field':_0x7d11('0xe'),'foreignKey':_0x7d11('0x30'),'model':_0x7d11('0x2c'),'filter':{'field':_0x7d11('0x2d'),'value':[_0x7d11('0x31')]}},{'name':_0x7d11('0x32'),'field':_0x7d11('0xe'),'foreignKey':_0x7d11('0x33'),'model':'VoiceQueue','filter':{'field':_0x7d11('0x14'),'value':['inbound']}},{'name':_0x7d11('0x34'),'field':_0x7d11('0xe'),'foreignKey':_0x7d11('0x33'),'model':_0x7d11('0x35'),'filter':{'field':'type','value':[_0x7d11('0x36')]}}];break;case _0x7d11('0x37'):_0x355d14[_0x7d11('0x17')]=_0x7d11('0x38');break;case'chanspies':_0x355d14[_0x7d11('0x17')]='VoiceChanSpy';break;case _0x7d11('0x39'):_0x355d14['childModel']=_0x7d11('0x3a');break;case _0x7d11('0x3b'):_0x355d14[_0x7d11('0x17')]=_0x7d11('0x3c');break;case'mailqueues':_0x355d14['childModel']=_0x7d11('0x3d');break;case _0x7d11('0x3e'):_0x355d14['childModel']=_0x7d11('0x3f');break;case _0x7d11('0x40'):_0x355d14[_0x7d11('0x17')]=_0x7d11('0x41');break;case _0x7d11('0x42'):_0x355d14[_0x7d11('0x17')]='OpenchannelQueue';break;case _0x7d11('0x43'):_0x355d14['childModel']=_0x7d11('0x44');break;case _0x7d11('0x45'):_0x355d14[_0x7d11('0x17')]=_0x7d11('0x46');break;case _0x7d11('0x47'):_0x355d14[_0x7d11('0x17')]='SmsAccount';break;case'whatsappqueues':_0x355d14['childModel']=_0x7d11('0x48');break;case _0x7d11('0x49'):_0x355d14[_0x7d11('0x17')]=_0x7d11('0x4a');break;case _0x7d11('0x4b'):_0x355d14['childModel']=_0x7d11('0x4c');break;case _0x7d11('0x4d'):case'queuecampaigns':_0x355d14[_0x7d11('0x17')]=_0x7d11('0x35');if(_0x1a7853){_0x355d14[_0x7d11('0x19')]=[{'name':'VoiceQueues'},{'name':_0x7d11('0x34')}];}break;case _0x7d11('0x4e'):case _0x7d11('0x4f'):case'telephones':_0x355d14[_0x7d11('0x17')]='User';if(_0x1a7853){_0x355d14[_0x7d11('0x19')]=[{'name':_0x7d11('0x50'),'filter':{'field':_0x7d11('0x2d'),'value':[_0x7d11('0x51'),_0x7d11('0x52')]},'ignore':!![]},{'name':_0x7d11('0x2b')},{'name':_0x7d11('0x2f')}];}break;case _0x7d11('0x53'):_0x355d14[_0x7d11('0x17')]='ZendeskAccount';break;case'salesforceaccounts':_0x355d14['childModel']=_0x7d11('0x54');break;case _0x7d11('0x55'):_0x355d14[_0x7d11('0x17')]=_0x7d11('0x56');break;case _0x7d11('0x57'):_0x355d14[_0x7d11('0x17')]=_0x7d11('0x58');break;case _0x7d11('0x59'):_0x355d14[_0x7d11('0x17')]=_0x7d11('0x5a');break;case _0x7d11('0x5b'):_0x355d14[_0x7d11('0x17')]='ZohoAccount';break;case _0x7d11('0x5c'):_0x355d14[_0x7d11('0x17')]=_0x7d11('0x2c');break;case'cannedanswers':_0x355d14['childModel']=_0x7d11('0x5d');break;case _0x7d11('0x5e'):_0x355d14[_0x7d11('0x17')]='Disposition';break;case'customdashboards':_0x355d14[_0x7d11('0x17')]=_0x7d11('0x5f');break;case'intervals':_0x355d14[_0x7d11('0x17')]=_0x7d11('0x60');break;case _0x7d11('0x61'):_0x355d14[_0x7d11('0x17')]='Pause';break;case _0x7d11('0x62'):_0x355d14[_0x7d11('0x17')]=_0x7d11('0x63');break;case'sounds':_0x355d14['childModel']=_0x7d11('0x64');break;case _0x7d11('0x65'):_0x355d14[_0x7d11('0x17')]=_0x7d11('0x66');break;case _0x7d11('0x67'):_0x355d14['childModel']=_0x7d11('0x68');break;case _0x7d11('0x69'):_0x355d14[_0x7d11('0x17')]=_0x7d11('0x6a');break;case'trunks':_0x355d14['childModel']=_0x7d11('0x6b');break;case _0x7d11('0x6c'):_0x355d14[_0x7d11('0x17')]=_0x7d11('0x6d');break;case _0x7d11('0x6e'):_0x355d14[_0x7d11('0x17')]=_0x7d11('0x6f');break;case _0x7d11('0x70'):_0x355d14[_0x7d11('0x17')]=_0x7d11('0x12');_0x355d14['parentSections']=[{'name':'Reports','field':'id','foreignKey':'reportId'}];break;case _0x7d11('0x71'):_0x355d14[_0x7d11('0x17')]=_0x7d11('0x72');break;}return _0x355d14;}function _0x5508cf(_0x45918d,_0x222375){var _0x3b1762=_0x45918d[_0x7d11('0x73')](0x0)[_0x7d11('0x74')]()+_0x45918d[_0x7d11('0x75')](0x1);var _0x505573={'type':_0x306ae4[_0x7d11('0x76')][_0x7d11('0x77')][_0x7d11('0x78')],'raw':!![]};return new Promise(function(_0x4c072b,_0x5e5ac3){var _0x481a64=squel['select']()[_0x7d11('0xb')]('ui.'+_0x3b1762+'InteractionId','id')['field'](_0x7d11('0x79'))[_0x7d11('0x7a')](_0x7d11('0x7b')+_0x45918d+_0x7d11('0x7c'),'ui')[_0x7d11('0x7d')](_0x7d11('0x7e'),_0x222375['id']);return _0x306ae4['sequelize'][_0x7d11('0x7f')](_0x481a64['toString'](),_0x505573)[_0x7d11('0xd')](function(_0x49f904){_0x222375[_0x3b1762+_0x7d11('0x80')]=_0x49f904;_0x4c072b(_0x49f904);})[_0x7d11('0xf')](function(_0x4ce8f2){_0x5e5ac3(_0x4ce8f2);});});}return _0x26e0f0[_0x7d11('0x81')](_0x7d11('0x82'),attributes,{'tableName':_0x7d11('0x83'),'paranoid':![],'indexes':[],'timestamps':!![],'classMethods':{'getResources':function(_0x8201e3){var _0x5581bb={'raw':![],'where':{}};var _0x5afdd5={};var _0xf1a6ab={'count':0x0,'rows':[]};var _0x23b502=_0x8201e3[_0x7d11('0x7f')][_0x7d11('0x84')];var _0x458362=_0x8201e3['query'][_0x7d11('0x85')]||![];var _0x5ad800=_0x3545dc(_0x23b502,_0x458362);if(!_0x5ad800[_0x7d11('0x17')])throw new Error(_0x7d11('0x86')+_0x23b502+'\x27');var _0x3008a6=[{'name':_0x23b502}];if(!_[_0x7d11('0x87')](_0x5ad800['parentSections']))_0x3008a6=_0x5ad800[_0x7d11('0x19')];var _0x5246ca=[];for(var _0x2258dc=0x0;_0x2258dc<_0x3008a6[_0x7d11('0x88')];_0x2258dc++){_0x5246ca[_0x7d11('0x89')](_0x306ae4[_0x7d11('0x8a')][_0x7d11('0x8b')]({'where':{'userProfileId':_0x8201e3[_0x7d11('0x8c')]['id'],'name':_0x3008a6[_0x2258dc][_0x7d11('0xe')]},'raw':!![]}));}return Promise[_0x7d11('0x8d')](_0x5246ca)[_0x7d11('0xd')](function(_0x3f8512){var _0x45cf67=_[_0x7d11('0x6')](_0x3f8512,function(_0x346250){return _0x346250?_0x346250:undefined;});var _0xbda04d=_['filter'](_0x3008a6,[_0x7d11('0x8e'),!![]]);var _0x489121=_[_0x7d11('0x87')](_0x45cf67)&&_['isEmpty'](_0xbda04d)?null:_[_0x7d11('0x8f')](_0xbda04d,_0x45cf67);if(!_0x489121)return null;var _0x181294=[];for(var _0x362030=0x0;_0x362030<_0x489121[_0x7d11('0x88')];_0x362030++){var _0x4aac67=_['find'](_0x3008a6,function(_0x1351ee){return _0x489121[_0x362030]?_0x1351ee[_0x7d11('0xe')]===_0x489121[_0x362030][_0x7d11('0xe')]:null;});if(_0x4aac67){if(_0x489121[_0x362030]['ignore']){_0x181294[_0x7d11('0x89')](_0x3c07be(_0x5ad800[_0x7d11('0x17')],_0x489121[_0x362030]));}else{if(!_0x489121[_0x362030][_0x7d11('0x90')]){_0x181294[_0x7d11('0x89')](_0x4aa795(_0x4aac67,_0x489121[_0x362030],_0x5ad800[_0x7d11('0x17')]));}else{if(_0x4aac67[_0x7d11('0xc')]){_0x181294['push'](_0x48b0f1(_0x4aac67,_0x489121[_0x362030]));}}}}}return Promise[_0x7d11('0x8d')](_0x181294);})['then'](function(_0x1fd598){var _0x4c88c6=_0x1fd598;var _0x48f52c=null;if(_0x4c88c6){_0x48f52c=_0x4c88c6[_0x7d11('0x88')]===0x1?_0x4c88c6[0x0]:null;}if(!_0x48f52c&&!_0x4c88c6)return _0xf1a6ab;var _0x235658=_0x306ae4[_0x5ad800[_0x7d11('0x17')]][_0x7d11('0x91')];_0x5afdd5[_0x7d11('0xc')]=_[_0x7d11('0x92')](_0x235658);_0x5afdd5[_0x7d11('0x7f')]=_[_0x7d11('0x92')](_0x8201e3[_0x7d11('0x7f')]);_0x5afdd5[_0x7d11('0x93')]=_[_0x7d11('0x94')](_0x5afdd5['model'],_0x5afdd5[_0x7d11('0x7f')]);_0x5581bb['attributes']=_[_0x7d11('0x94')](_0x5afdd5[_0x7d11('0xc')],qs[_0x7d11('0x95')](_0x8201e3[_0x7d11('0x7f')][_0x7d11('0x95')]));_0x5581bb[_0x7d11('0x96')]=_0x5581bb[_0x7d11('0x96')]['length']?_0x5581bb['attributes']:_0x5afdd5[_0x7d11('0xc')];if(!_0x8201e3[_0x7d11('0x7f')][_0x7d11('0x97')](_0x7d11('0x98'))){_0x5581bb[_0x7d11('0x99')]=qs['limit'](_0x8201e3[_0x7d11('0x7f')]['limit']);_0x5581bb[_0x7d11('0x9a')]=qs[_0x7d11('0x9a')](_0x8201e3[_0x7d11('0x7f')][_0x7d11('0x9a')]);}_0x5581bb[_0x7d11('0x9b')]=qs[_0x7d11('0x9c')](_0x8201e3[_0x7d11('0x7f')][_0x7d11('0x9c')]);_0x5581bb['where']=qs['filters'](_[_0x7d11('0x9d')](_0x8201e3[_0x7d11('0x7f')],_0x5afdd5[_0x7d11('0x93')]));if(_0x8201e3['query']['filter']){_0x5581bb[_0x7d11('0x7d')]=_['merge'](_0x5581bb[_0x7d11('0x7d')],{'$or':_[_0x7d11('0xa')](_0x235658,function(_0x269ab6){if(_0x269ab6[_0x7d11('0x14')]['key']!==_0x7d11('0x9e')){var _0x3b2c9e={};_0x3b2c9e[_0x269ab6[_0x7d11('0xb')]]={'$like':'%'+_0x8201e3[_0x7d11('0x7f')][_0x7d11('0x6')]+'%'};return _0x3b2c9e;}})});}var _0xb9099d=[];var _0x3e83e0=null;var _0x1b719a={};if(_0x48f52c){_0x3e83e0=_['find'](_0x3008a6,[_0x7d11('0xe'),_0x48f52c[_0x7d11('0xe')]]);if(_0x3e83e0[_0x7d11('0xb')]){_0x1b719a={};if(_0x5ad800[_0x7d11('0x17')]===_0x7d11('0x12')){_0x1b719a[_0x3e83e0['foreignKey']]=_[_0x7d11('0xa')](_0x48f52c[_0x7d11('0x9')],'id');}else{_0x1b719a[_0x3e83e0[_0x7d11('0x9f')]]=_0x48f52c[_0x7d11('0x9')];}_0xb9099d[_0x7d11('0x89')](_0x1b719a);}else{_0x5581bb['where']['id']=_0x48f52c['associatedResources'];}}else{for(var _0x58d114=0x0;_0x58d114<_0x4c88c6[_0x7d11('0x88')];_0x58d114++){_0x3e83e0=_['find'](_0x3008a6,[_0x7d11('0xe'),_0x4c88c6[_0x58d114]['name']]);if(_0x3e83e0['field']){_0x1b719a={};_0x1b719a[_0x3e83e0[_0x7d11('0x9f')]]=_0x4c88c6[_0x58d114][_0x7d11('0x9')];_0xb9099d[_0x7d11('0x89')](_0x1b719a);}else{if(!_0x5581bb[_0x7d11('0x7d')]['id'])_0x5581bb[_0x7d11('0x7d')]['id']=[];_0x4c88c6[_0x58d114][_0x7d11('0x9')][_0x7d11('0xa0')](function(_0x45d970){_0x5581bb[_0x7d11('0x7d')]['id'][_0x7d11('0x89')](_0x45d970);});}}}if(!_['isEmpty'](_0xb9099d)){_0x5581bb[_0x7d11('0x7d')]=_[_0x7d11('0xa1')](_0x5581bb['where'],{'$and':{'$or':_0xb9099d}});}_0x5581bb=_[_0x7d11('0xa1')]({},_0x5581bb,_0x8201e3[_0x7d11('0xa2')]);if(_0x48f52c&&!_0x48f52c[_0x7d11('0x90')]&&_0x5ad800[_0x7d11('0x17')]==='AnalyticExtractedReport'){if(_0x8201e3['query'][_0x7d11('0xa3')]){_0x5581bb['include']=[{'all':!![]}];}return _0x306ae4[_0x5ad800[_0x7d11('0x17')]][_0x7d11('0x8')](_0x5581bb)[_0x7d11('0xd')](function(_0x13ccd5){var _0x1565d9=[];_0x13ccd5[_0x7d11('0xa0')](function(_0x238486){var _0x596228;switch(_0x238486[_0x7d11('0xa4')]){case _0x7d11('0xa5'):_0x596228=_[_0x7d11('0x8b')](_0x48f52c[_0x7d11('0x9')],function(_0x5bb85d){return _0x5bb85d['id']===_0x238486[_0x7d11('0xa6')]&&_0x5bb85d[_0x7d11('0x14')]==='DefaultReports';});break;case _0x7d11('0xa7'):_0x596228=_[_0x7d11('0x8b')](_0x48f52c[_0x7d11('0x9')],function(_0x512086){return _0x512086['id']===_0x238486[_0x7d11('0xa6')]&&_0x512086[_0x7d11('0x14')]==='CustomReports';});break;}if(_0x596228)_0x1565d9[_0x7d11('0x89')](_0x238486);});_0xf1a6ab[_0x7d11('0xa8')]=_0x1565d9['length'];_0xf1a6ab[_0x7d11('0xa9')]=_0x1565d9;return _0xf1a6ab;});}else{return _0x306ae4[_0x5ad800['childModel']]['count']({'where':_0x5581bb['where']})['then'](function(_0x526e65){_0xf1a6ab[_0x7d11('0xa8')]=_0x526e65;if(_0x8201e3[_0x7d11('0x7f')][_0x7d11('0xa3')]){if(_0x5ad800[_0x7d11('0x17')]===_0x7d11('0x1d')){_0x5581bb[_0x7d11('0xaa')]=[{'model':_0x306ae4[_0x7d11('0x66')],'as':_0x7d11('0xab'),'attributes':['id',_0x7d11('0xe'),'color'],'required':_0x8201e3['query'][_0x7d11('0xac')]?!![]:![]},{'model':_0x306ae4[_0x7d11('0x66')],'as':'ThroughTags','attributes':['id','name',_0x7d11('0xad')],'through':_0x8201e3[_0x7d11('0x7f')][_0x7d11('0xac')]?{'attributes':[],'where':{'TagId':_0x8201e3[_0x7d11('0x7f')]['tag']||undefined}}:{},'required':_0x8201e3['query']['tag']?!![]:![]}];}else{_0x5581bb[_0x7d11('0xaa')]=[{'all':!![]}];}}return _0x306ae4[_0x5ad800[_0x7d11('0x17')]][_0x7d11('0x8')](_0x5581bb);})['then'](function(_0x3ce304){_0xf1a6ab[_0x7d11('0xa9')]=_0x3ce304;if(_0x23b502==='Agents'&&_0x8201e3[_0x7d11('0x7f')][_0x7d11('0xae')]==='true'){var _0x5e5faf=[];for(var _0xe23940=0x0;_0xe23940<_0xf1a6ab[_0x7d11('0xa9')]['length'];_0xe23940++){_0x5e5faf['push'](_0x5508cf(_0x7d11('0xaf'),_0xf1a6ab[_0x7d11('0xa9')][_0xe23940][_0x7d11('0xb0')]));_0x5e5faf[_0x7d11('0x89')](_0x5508cf('sms',_0xf1a6ab[_0x7d11('0xa9')][_0xe23940][_0x7d11('0xb0')]));_0x5e5faf[_0x7d11('0x89')](_0x5508cf(_0x7d11('0xb1'),_0xf1a6ab['rows'][_0xe23940][_0x7d11('0xb0')]));_0x5e5faf[_0x7d11('0x89')](_0x5508cf(_0x7d11('0xb2'),_0xf1a6ab['rows'][_0xe23940][_0x7d11('0xb0')]));_0x5e5faf['push'](_0x5508cf(_0x7d11('0xb3'),_0xf1a6ab['rows'][_0xe23940][_0x7d11('0xb0')]));_0x5e5faf[_0x7d11('0x89')](_0x5508cf(_0x7d11('0xb4'),_0xf1a6ab[_0x7d11('0xa9')][_0xe23940][_0x7d11('0xb0')]));}return Promise[_0x7d11('0x8d')](_0x5e5faf)['then'](function(){return _0xf1a6ab;});}return _0xf1a6ab;});}});}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x65cb=['result','catch','lodash','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','redis','defaults','localhost','socket.io-emitter','register','then','info','UserProfile,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message'];(function(_0x2834ad,_0x35ee7c){var _0x449a75=function(_0x1c5852){while(--_0x1c5852){_0x2834ad['push'](_0x2834ad['shift']());}};_0x449a75(++_0x35ee7c);}(_0x65cb,0xa4));var _0xb65c=function(_0x52148c,_0x490ca1){_0x52148c=_0x52148c-0x0;var _0x2cca85=_0x65cb[_0x52148c];return _0x2cca85;};'use strict';var _=require(_0xb65c('0x0'));var util=require('util');var moment=require(_0xb65c('0x1'));var BPromise=require(_0xb65c('0x2'));var rs=require(_0xb65c('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xb65c('0x4'))['db'];var utils=require(_0xb65c('0x5'));var logger=require(_0xb65c('0x6'))(_0xb65c('0x7'));var config=require(_0xb65c('0x8'));var jayson=require('jayson/promise');var client=jayson[_0xb65c('0x9')][_0xb65c('0xa')]({'port':0x232a});config[_0xb65c('0xb')]=_[_0xb65c('0xc')](config[_0xb65c('0xb')],{'host':_0xb65c('0xd'),'port':0x18eb});var socket=require(_0xb65c('0xe'))(new Redis(config[_0xb65c('0xb')]));require('./userProfile.socket')[_0xb65c('0xf')](socket);function respondWithRpcPromise(_0x2d9bb1,_0x19e32e,_0xd9b29a){return new BPromise(function(_0x5dec0c,_0x131587){return client['request'](_0x2d9bb1,_0xd9b29a)[_0xb65c('0x10')](function(_0x1697b1){logger[_0xb65c('0x11')](_0xb65c('0x12'),_0x19e32e,_0xb65c('0x13'));logger[_0xb65c('0x14')]('UserProfile,\x20%s,\x20%s,\x20%s',_0x19e32e,_0xb65c('0x13'),JSON[_0xb65c('0x15')](_0x1697b1));if(_0x1697b1[_0xb65c('0x16')]){if(_0x1697b1[_0xb65c('0x16')][_0xb65c('0x17')]===0x1f4){logger[_0xb65c('0x16')](_0xb65c('0x12'),_0x19e32e,_0x1697b1['error'][_0xb65c('0x18')]);return _0x131587(_0x1697b1[_0xb65c('0x16')]['message']);}logger[_0xb65c('0x16')]('UserProfile,\x20%s,\x20%s',_0x19e32e,_0x1697b1[_0xb65c('0x16')][_0xb65c('0x18')]);return _0x5dec0c(_0x1697b1[_0xb65c('0x16')][_0xb65c('0x18')]);}else{logger[_0xb65c('0x11')](_0xb65c('0x12'),_0x19e32e,_0xb65c('0x13'));_0x5dec0c(_0x1697b1[_0xb65c('0x19')][_0xb65c('0x18')]);}})[_0xb65c('0x1a')](function(_0x3fa3bc){logger[_0xb65c('0x16')](_0xb65c('0x12'),_0x19e32e,_0x3fa3bc);_0x131587(_0x3fa3bc);});});}
\ No newline at end of file
+var _0x7c71=['register','request','info','UserProfile,\x20%s,\x20%s','debug','UserProfile,\x20%s,\x20%s,\x20%s','stringify','error','message','request\x20sent','catch','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/environment','jayson/promise','client','http','redis','defaults','socket.io-emitter','./userProfile.socket'];(function(_0x874bfd,_0x5f5857){var _0x4a9709=function(_0x442ca6){while(--_0x442ca6){_0x874bfd['push'](_0x874bfd['shift']());}};_0x4a9709(++_0x5f5857);}(_0x7c71,0x177));var _0x17c7=function(_0x2d3ab3,_0x47d90b){_0x2d3ab3=_0x2d3ab3-0x0;var _0x321f9e=_0x7c71[_0x2d3ab3];return _0x321f9e;};'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});config[_0x17c7('0xb')]=_[_0x17c7('0xc')](config[_0x17c7('0xb')],{'host':'localhost','port':0x18eb});var socket=require(_0x17c7('0xd'))(new Redis(config[_0x17c7('0xb')]));require(_0x17c7('0xe'))[_0x17c7('0xf')](socket);function respondWithRpcPromise(_0xa21ca2,_0x21aa20,_0x2df59d){return new BPromise(function(_0x45dcce,_0x16965c){return client[_0x17c7('0x10')](_0xa21ca2,_0x2df59d)['then'](function(_0x4da796){logger[_0x17c7('0x11')](_0x17c7('0x12'),_0x21aa20,'request\x20sent');logger[_0x17c7('0x13')](_0x17c7('0x14'),_0x21aa20,'request\x20sent',JSON[_0x17c7('0x15')](_0x4da796));if(_0x4da796[_0x17c7('0x16')]){if(_0x4da796['error']['code']===0x1f4){logger[_0x17c7('0x16')](_0x17c7('0x12'),_0x21aa20,_0x4da796[_0x17c7('0x16')][_0x17c7('0x17')]);return _0x16965c(_0x4da796[_0x17c7('0x16')][_0x17c7('0x17')]);}logger[_0x17c7('0x16')](_0x17c7('0x12'),_0x21aa20,_0x4da796[_0x17c7('0x16')][_0x17c7('0x17')]);return _0x45dcce(_0x4da796[_0x17c7('0x16')][_0x17c7('0x17')]);}else{logger['info'](_0x17c7('0x12'),_0x21aa20,_0x17c7('0x18'));_0x45dcce(_0x4da796['result'][_0x17c7('0x17')]);}})[_0x17c7('0x19')](function(_0x2c652c){logger[_0x17c7('0x16')]('UserProfile,\x20%s,\x20%s',_0x21aa20,_0x2c652c);_0x16965c(_0x2c652c);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcc9c=['register','length','userProfile:','./userProfile.events','save','update','emit'];(function(_0x26604b,_0x56d4cc){var _0x16276c=function(_0x34ae98){while(--_0x34ae98){_0x26604b['push'](_0x26604b['shift']());}};_0x16276c(++_0x56d4cc);}(_0xcc9c,0x10d));var _0xccc9=function(_0x54f203,_0xfa2728){_0x54f203=_0x54f203-0x0;var _0xa3beec=_0xcc9c[_0x54f203];return _0xa3beec;};'use strict';var UserProfileEvents=require(_0xccc9('0x0'));var events=[_0xccc9('0x1'),'remove',_0xccc9('0x2')];function createListener(_0x2faca9,_0x2b44e9){return function(_0x23a7ce){_0x2b44e9[_0xccc9('0x3')](_0x2faca9,_0x23a7ce);};}function removeListener(_0xd9dc0a,_0x91cd3d){return function(){UserProfileEvents['removeListener'](_0xd9dc0a,_0x91cd3d);};}exports[_0xccc9('0x4')]=function(_0xd051a4){for(var _0x5e36de=0x0,_0x5e7308=events[_0xccc9('0x5')];_0x5e36de<_0x5e7308;_0x5e36de++){var _0x28595b=events[_0x5e36de];var _0x3570=createListener(_0xccc9('0x6')+_0x28595b,_0xd051a4);UserProfileEvents['on'](_0x28595b,_0x3570);}};
\ No newline at end of file
+var _0xbd17=['update','emit','removeListener','length','userProfile:','./userProfile.events','save','remove'];(function(_0x337266,_0x4a3a65){var _0x57d83c=function(_0x567ad4){while(--_0x567ad4){_0x337266['push'](_0x337266['shift']());}};_0x57d83c(++_0x4a3a65);}(_0xbd17,0x1b5));var _0x7bd1=function(_0x51d585,_0x1da116){_0x51d585=_0x51d585-0x0;var _0x362f08=_0xbd17[_0x51d585];return _0x362f08;};'use strict';var UserProfileEvents=require(_0x7bd1('0x0'));var events=[_0x7bd1('0x1'),_0x7bd1('0x2'),_0x7bd1('0x3')];function createListener(_0x5da294,_0x1c6fe1){return function(_0x507226){_0x1c6fe1[_0x7bd1('0x4')](_0x5da294,_0x507226);};}function removeListener(_0x279e30,_0x3f4851){return function(){UserProfileEvents[_0x7bd1('0x5')](_0x279e30,_0x3f4851);};}exports['register']=function(_0x4744ee){for(var _0x1ea039=0x0,_0x1616ea=events[_0x7bd1('0x6')];_0x1ea039<_0x1616ea;_0x1ea039++){var _0x21f7e9=events[_0x1ea039];var _0x5e7d05=createListener(_0x7bd1('0x7')+_0x21f7e9,_0x4744ee);UserProfileEvents['on'](_0x21f7e9,_0x5e7d05);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb861=['/describe','/:id','show','post','put','update','delete','destroy','exports','multer','util','path','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./userProfileResource.controller','isAuthenticated','index','get'];(function(_0x2f2052,_0x5f972f){var _0x3214c0=function(_0x372174){while(--_0x372174){_0x2f2052['push'](_0x2f2052['shift']());}};_0x3214c0(++_0x5f972f);}(_0xb861,0x9c));var _0x1b86=function(_0x352b44,_0x4a91a1){_0x352b44=_0x352b44-0x0;var _0x3e8baa=_0xb861[_0x352b44];return _0x3e8baa;};'use strict';var multer=require(_0x1b86('0x0'));var util=require(_0x1b86('0x1'));var path=require(_0x1b86('0x2'));var timeout=require('connect-timeout');var express=require(_0x1b86('0x3'));var router=express[_0x1b86('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0x1b86('0x5'));var interaction=require(_0x1b86('0x6'));var config=require(_0x1b86('0x7'));var controller=require(_0x1b86('0x8'));router['get']('/',auth[_0x1b86('0x9')](),controller[_0x1b86('0xa')]);router[_0x1b86('0xb')](_0x1b86('0xc'),auth[_0x1b86('0x9')](),controller['describe']);router[_0x1b86('0xb')](_0x1b86('0xd'),auth[_0x1b86('0x9')](),controller[_0x1b86('0xe')]);router[_0x1b86('0xf')]('/',auth[_0x1b86('0x9')](),controller['create']);router[_0x1b86('0x10')](_0x1b86('0xd'),auth['isAuthenticated'](),controller[_0x1b86('0x11')]);router[_0x1b86('0x12')](_0x1b86('0xd'),auth[_0x1b86('0x9')](),controller[_0x1b86('0x13')]);module[_0x1b86('0x14')]=router;
\ No newline at end of file
+var _0xccef=['isAuthenticated','/describe','describe','/:id','show','create','put','update','delete','util','path','express','Router','fs-extra','../../components/auth/service','../../config/environment','./userProfileResource.controller','get'];(function(_0x4aba21,_0x123f92){var _0x2c98cb=function(_0x45da46){while(--_0x45da46){_0x4aba21['push'](_0x4aba21['shift']());}};_0x2c98cb(++_0x123f92);}(_0xccef,0x14d));var _0xfcce=function(_0x59ee6f,_0x450239){_0x59ee6f=_0x59ee6f-0x0;var _0x4c0979=_0xccef[_0x59ee6f];return _0x4c0979;};'use strict';var multer=require('multer');var util=require(_0xfcce('0x0'));var path=require(_0xfcce('0x1'));var timeout=require('connect-timeout');var express=require(_0xfcce('0x2'));var router=express[_0xfcce('0x3')]();var fs_extra=require(_0xfcce('0x4'));var auth=require(_0xfcce('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0xfcce('0x6'));var controller=require(_0xfcce('0x7'));router[_0xfcce('0x8')]('/',auth[_0xfcce('0x9')](),controller['index']);router['get'](_0xfcce('0xa'),auth['isAuthenticated'](),controller[_0xfcce('0xb')]);router[_0xfcce('0x8')](_0xfcce('0xc'),auth['isAuthenticated'](),controller[_0xfcce('0xd')]);router['post']('/',auth[_0xfcce('0x9')](),controller[_0xfcce('0xe')]);router[_0xfcce('0xf')](_0xfcce('0xc'),auth[_0xfcce('0x9')](),controller[_0xfcce('0x10')]);router[_0xfcce('0x11')](_0xfcce('0xc'),auth['isAuthenticated'](),controller['destroy']);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe72d=['sequelize','STRING','INTEGER'];(function(_0x1e5153,_0x14d1b7){var _0x4c1c44=function(_0x33f8f8){while(--_0x33f8f8){_0x1e5153['push'](_0x1e5153['shift']());}};_0x4c1c44(++_0x14d1b7);}(_0xe72d,0xd5));var _0xde72=function(_0x4e676e,_0x2a7c6d){_0x4e676e=_0x4e676e-0x0;var _0x336a3c=_0xe72d[_0x4e676e];return _0x336a3c;};'use strict';var Sequelize=require(_0xde72('0x0'));module['exports']={'name':{'type':Sequelize[_0xde72('0x1')],'allowNull':![]},'resourceId':{'type':Sequelize[_0xde72('0x2')],'allowNull':![]},'type':{'type':Sequelize['STRING'],'allowNull':![]}};
\ No newline at end of file
+var _0x3aaa=['exports','STRING'];(function(_0x16a511,_0x5039d4){var _0x3a3eb2=function(_0x3cfc12){while(--_0x3cfc12){_0x16a511['push'](_0x16a511['shift']());}};_0x3a3eb2(++_0x5039d4);}(_0x3aaa,0x1c0));var _0xa3aa=function(_0x754812,_0x251fb1){_0x754812=_0x754812-0x0;var _0x1973d9=_0x3aaa[_0x754812];return _0x1973d9;};'use strict';var Sequelize=require('sequelize');module[_0xa3aa('0x0')]={'name':{'type':Sequelize[_0xa3aa('0x1')],'allowNull':![]},'resourceId':{'type':Sequelize['INTEGER'],'allowNull':![]},'type':{'type':Sequelize[_0xa3aa('0x1')],'allowNull':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2a07=['index','map','UserProfileResource','rawAttributes','fieldName','type','key','query','keys','filters','intersection','model','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','count','include','catch','show','params','fields','includeAll','create','body','find','destroy','describe','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','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','Content-Range','apply','reject','save','update','then','error','name','send'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0x2a07,0x74));var _0x72a0=function(_0x517869,_0x1f383b){_0x517869=_0x517869-0x0;var _0x2e6dd7=_0x2a07[_0x517869];return _0x2e6dd7;};'use strict';var emlformat=require(_0x72a0('0x0'));var rimraf=require(_0x72a0('0x1'));var zipdir=require(_0x72a0('0x2'));var jsonpatch=require(_0x72a0('0x3'));var rp=require(_0x72a0('0x4'));var moment=require('moment');var BPromise=require(_0x72a0('0x5'));var Mustache=require(_0x72a0('0x6'));var util=require(_0x72a0('0x7'));var path=require(_0x72a0('0x8'));var sox=require(_0x72a0('0x9'));var csv=require(_0x72a0('0xa'));var ejs=require(_0x72a0('0xb'));var fs=require('fs');var fs_extra=require(_0x72a0('0xc'));var _=require(_0x72a0('0xd'));var squel=require(_0x72a0('0xe'));var crypto=require(_0x72a0('0xf'));var jsforce=require(_0x72a0('0x10'));var deskjs=require(_0x72a0('0x11'));var toCsv=require(_0x72a0('0xa'));var querystring=require(_0x72a0('0x12'));var Papa=require(_0x72a0('0x13'));var Redis=require('ioredis');var authService=require(_0x72a0('0x14'));var qs=require(_0x72a0('0x15'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x72a0('0x16'));var logger=require(_0x72a0('0x17'))(_0x72a0('0x18'));var utils=require(_0x72a0('0x19'));var config=require(_0x72a0('0x1a'));var licenseUtil=require('../../config/license/util');var db=require(_0x72a0('0x1b'))['db'];function respondWithStatusCode(_0x335b9f,_0x123ca4){_0x123ca4=_0x123ca4||0xcc;return function(_0xf91a82){if(_0xf91a82){return _0x335b9f[_0x72a0('0x1c')](_0x123ca4);}return _0x335b9f[_0x72a0('0x1d')](_0x123ca4)[_0x72a0('0x1e')]();};}function respondWithResult(_0x5e0b5f,_0x4930c5){_0x4930c5=_0x4930c5||0xc8;return function(_0xe103dc){if(_0xe103dc){return _0x5e0b5f[_0x72a0('0x1d')](_0x4930c5)[_0x72a0('0x1f')](_0xe103dc);}};}function respondWithFilteredResult(_0x1d1133,_0x23b001){return function(_0x3f3d62){if(_0x3f3d62){var _0x4ab55e=typeof _0x23b001[_0x72a0('0x20')]===_0x72a0('0x21')&&typeof _0x23b001[_0x72a0('0x22')]===_0x72a0('0x21');var _0x2d1e95=_0x3f3d62['count'];var _0x100d8f=_0x4ab55e?0x0:_0x23b001[_0x72a0('0x20')];var _0x131b73=_0x4ab55e?_0x3f3d62['count']:_0x23b001[_0x72a0('0x20')]+_0x23b001[_0x72a0('0x22')];var _0x30899b;if(_0x131b73>=_0x2d1e95){_0x131b73=_0x2d1e95;_0x30899b=0xc8;}else{_0x30899b=0xce;}_0x1d1133[_0x72a0('0x1d')](_0x30899b);return _0x1d1133['set'](_0x72a0('0x23'),_0x100d8f+'-'+_0x131b73+'/'+_0x2d1e95)['json'](_0x3f3d62);}return null;};}function patchUpdates(_0x3d0607){return function(_0x315413){try{jsonpatch[_0x72a0('0x24')](_0x315413,_0x3d0607,!![]);}catch(_0x5c7479){return BPromise[_0x72a0('0x25')](_0x5c7479);}return _0x315413[_0x72a0('0x26')]();};}function saveUpdates(_0x1d22d8,_0x3d1965){return function(_0x5d6145){if(_0x5d6145){return _0x5d6145[_0x72a0('0x27')](_0x1d22d8)[_0x72a0('0x28')](function(_0x1ddd54){return _0x1ddd54;});}return null;};}function removeEntity(_0x23b918,_0x3022b0){return function(_0x174b1b){if(_0x174b1b){return _0x174b1b['destroy']()['then'](function(){_0x23b918[_0x72a0('0x1d')](0xcc)[_0x72a0('0x1e')]();});}};}function handleEntityNotFound(_0x123df4,_0x1504ed){return function(_0xf5cb49){if(!_0xf5cb49){_0x123df4[_0x72a0('0x1c')](0x194);}return _0xf5cb49;};}function handleError(_0xa5bda0,_0x15922a){_0x15922a=_0x15922a||0x1f4;return function(_0xee99e2){logger[_0x72a0('0x29')](_0xee99e2['stack']);if(_0xee99e2[_0x72a0('0x2a')]){delete _0xee99e2[_0x72a0('0x2a')];}_0xa5bda0[_0x72a0('0x1d')](_0x15922a)[_0x72a0('0x2b')](_0xee99e2);};}exports[_0x72a0('0x2c')]=function(_0x177a3a,_0x432179){var _0x12eda2={},_0x23c96a={},_0x916733={'count':0x0,'rows':[]};var _0x4ba037=_[_0x72a0('0x2d')](db[_0x72a0('0x2e')][_0x72a0('0x2f')],function(_0xfbe9b3){return{'name':_0xfbe9b3[_0x72a0('0x30')],'type':_0xfbe9b3[_0x72a0('0x31')][_0x72a0('0x32')]};});_0x23c96a['model']=_[_0x72a0('0x2d')](_0x4ba037,_0x72a0('0x2a'));_0x23c96a[_0x72a0('0x33')]=_[_0x72a0('0x34')](_0x177a3a[_0x72a0('0x33')]);_0x23c96a[_0x72a0('0x35')]=_[_0x72a0('0x36')](_0x23c96a[_0x72a0('0x37')],_0x23c96a['query']);_0x12eda2[_0x72a0('0x38')]=_[_0x72a0('0x36')](_0x23c96a[_0x72a0('0x37')],qs['fields'](_0x177a3a[_0x72a0('0x33')]['fields']));_0x12eda2[_0x72a0('0x38')]=_0x12eda2[_0x72a0('0x38')][_0x72a0('0x39')]?_0x12eda2[_0x72a0('0x38')]:_0x23c96a[_0x72a0('0x37')];if(!_0x177a3a[_0x72a0('0x33')][_0x72a0('0x3a')](_0x72a0('0x3b'))){_0x12eda2[_0x72a0('0x22')]=qs[_0x72a0('0x22')](_0x177a3a[_0x72a0('0x33')][_0x72a0('0x22')]);_0x12eda2['offset']=qs[_0x72a0('0x20')](_0x177a3a['query'][_0x72a0('0x20')]);}_0x12eda2[_0x72a0('0x3c')]=qs[_0x72a0('0x3d')](_0x177a3a[_0x72a0('0x33')][_0x72a0('0x3d')]);_0x12eda2[_0x72a0('0x3e')]=qs[_0x72a0('0x35')](_[_0x72a0('0x3f')](_0x177a3a[_0x72a0('0x33')],_0x23c96a['filters']),_0x4ba037);if(_0x177a3a['query'][_0x72a0('0x40')]){_0x12eda2[_0x72a0('0x3e')]=_[_0x72a0('0x41')](_0x12eda2[_0x72a0('0x3e')],{'$or':_[_0x72a0('0x2d')](_0x4ba037,function(_0x512a06){if(_0x512a06[_0x72a0('0x31')]!==_0x72a0('0x42')){var _0x582c90={};_0x582c90[_0x512a06[_0x72a0('0x2a')]]={'$like':'%'+_0x177a3a['query']['filter']+'%'};return _0x582c90;}})});}_0x12eda2=_['merge']({},_0x12eda2,_0x177a3a[_0x72a0('0x43')]);var _0x49633b={'where':_0x12eda2[_0x72a0('0x3e')]};return db[_0x72a0('0x2e')][_0x72a0('0x44')](_0x49633b)[_0x72a0('0x28')](function(_0x4bf56e){_0x916733['count']=_0x4bf56e;if(_0x177a3a['query']['includeAll']){_0x12eda2[_0x72a0('0x45')]=[{'all':!![]}];}return db[_0x72a0('0x2e')]['findAll'](_0x12eda2);})[_0x72a0('0x28')](function(_0x35d790){_0x916733['rows']=_0x35d790;return _0x916733;})[_0x72a0('0x28')](respondWithFilteredResult(_0x432179,_0x12eda2))[_0x72a0('0x46')](handleError(_0x432179,null));};exports[_0x72a0('0x47')]=function(_0xe4abe1,_0x340153){var _0x341451={'raw':![],'where':{'id':_0xe4abe1[_0x72a0('0x48')]['id']}},_0x50eb7f={};_0x50eb7f['model']=_[_0x72a0('0x34')](db['UserProfileResource'][_0x72a0('0x2f')]);_0x50eb7f[_0x72a0('0x33')]=_['keys'](_0xe4abe1[_0x72a0('0x33')]);_0x50eb7f['filters']=_[_0x72a0('0x36')](_0x50eb7f[_0x72a0('0x37')],_0x50eb7f[_0x72a0('0x33')]);_0x341451['attributes']=_[_0x72a0('0x36')](_0x50eb7f[_0x72a0('0x37')],qs[_0x72a0('0x49')](_0xe4abe1['query']['fields']));_0x341451[_0x72a0('0x38')]=_0x341451['attributes'][_0x72a0('0x39')]?_0x341451[_0x72a0('0x38')]:_0x50eb7f[_0x72a0('0x37')];if(_0xe4abe1[_0x72a0('0x33')][_0x72a0('0x4a')]){_0x341451[_0x72a0('0x45')]=[{'all':!![]}];}_0x341451=_[_0x72a0('0x41')]({},_0x341451,_0xe4abe1[_0x72a0('0x43')]);return db[_0x72a0('0x2e')]['find'](_0x341451)[_0x72a0('0x28')](handleEntityNotFound(_0x340153,null))[_0x72a0('0x28')](respondWithResult(_0x340153,null))[_0x72a0('0x46')](handleError(_0x340153,null));};exports[_0x72a0('0x4b')]=function(_0x3a669d,_0x304400){return db[_0x72a0('0x2e')]['create'](_0x3a669d['body'],{})[_0x72a0('0x28')](respondWithResult(_0x304400,0xc9))[_0x72a0('0x46')](handleError(_0x304400,null));};exports[_0x72a0('0x27')]=function(_0x3cab6a,_0x35a6ad){if(_0x3cab6a[_0x72a0('0x4c')]['id']){delete _0x3cab6a[_0x72a0('0x4c')]['id'];}return db[_0x72a0('0x2e')][_0x72a0('0x4d')]({'where':{'id':_0x3cab6a[_0x72a0('0x48')]['id']}})['then'](handleEntityNotFound(_0x35a6ad,null))[_0x72a0('0x28')](saveUpdates(_0x3cab6a[_0x72a0('0x4c')],null))[_0x72a0('0x28')](respondWithResult(_0x35a6ad,null))[_0x72a0('0x46')](handleError(_0x35a6ad,null));};exports[_0x72a0('0x4e')]=function(_0x5c1570,_0x143410){return db['UserProfileResource']['find']({'where':{'id':_0x5c1570[_0x72a0('0x48')]['id']}})[_0x72a0('0x28')](handleEntityNotFound(_0x143410,null))[_0x72a0('0x28')](removeEntity(_0x143410,null))[_0x72a0('0x46')](handleError(_0x143410,null));};exports[_0x72a0('0x4f')]=function(_0x50c8d7,_0xc0f323){return db[_0x72a0('0x2e')]['describe']()['then'](respondWithResult(_0xc0f323,null))[_0x72a0('0x46')](handleError(_0xc0f323,null));};
\ No newline at end of file
+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(_0xb1ee0e,_0x2126df){var _0x376116=function(_0x44b7ad){while(--_0x44b7ad){_0xb1ee0e['push'](_0xb1ee0e['shift']());}};_0x376116(++_0x2126df);}(_0xdb28,0x106));var _0x8db2=function(_0x41dd90,_0x44531b){_0x41dd90=_0x41dd90-0x0;var _0x11608c=_0xdb28[_0x41dd90];return _0x11608c;};'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
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdc4e=['./userProfileResource.attributes','exports','define','UserProfileResource','compositeIndex','resourceId','sectionId','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path'];(function(_0x552764,_0x9cd982){var _0x166e53=function(_0x5061e5){while(--_0x5061e5){_0x552764['push'](_0x552764['shift']());}};_0x166e53(++_0x9cd982);}(_0xdc4e,0x142));var _0xedc4=function(_0x544f0b,_0x42b408){_0x544f0b=_0x544f0b-0x0;var _0x410631=_0xdc4e[_0x544f0b];return _0x410631;};'use strict';var _=require(_0xedc4('0x0'));var util=require(_0xedc4('0x1'));var logger=require(_0xedc4('0x2'))(_0xedc4('0x3'));var moment=require(_0xedc4('0x4'));var BPromise=require(_0xedc4('0x5'));var rp=require(_0xedc4('0x6'));var fs=require('fs');var path=require(_0xedc4('0x7'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0xedc4('0x8'));module[_0xedc4('0x9')]=function(_0x31cb1c,_0x1b62aa){return _0x31cb1c[_0xedc4('0xa')](_0xedc4('0xb'),attributes,{'tableName':'user_profile_has_resources','paranoid':![],'indexes':[{'name':_0xedc4('0xc'),'fields':[_0xedc4('0xd'),_0xedc4('0xe')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x22e5=['bluebird','request-promise','rimraf','../../config/environment','define','UserProfileResource','user_profile_has_resources','compositeIndex','resourceId','sectionId','lodash','util','../../config/logger'];(function(_0x3f08aa,_0xaea750){var _0x15a3db=function(_0x559709){while(--_0x559709){_0x3f08aa['push'](_0x3f08aa['shift']());}};_0x15a3db(++_0xaea750);}(_0x22e5,0x1de));var _0x522e=function(_0x4612c4,_0x34eb63){_0x4612c4=_0x4612c4-0x0;var _0x33de0e=_0x22e5[_0x4612c4];return _0x33de0e;};'use strict';var _=require(_0x522e('0x0'));var util=require(_0x522e('0x1'));var logger=require(_0x522e('0x2'))('api');var moment=require('moment');var BPromise=require(_0x522e('0x3'));var rp=require(_0x522e('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0x522e('0x5'));var config=require(_0x522e('0x6'));var attributes=require('./userProfileResource.attributes');module['exports']=function(_0x210da1,_0x31afbb){return _0x210da1[_0x522e('0x7')](_0x522e('0x8'),attributes,{'tableName':_0x522e('0x9'),'paranoid':![],'indexes':[{'name':_0x522e('0xa'),'fields':[_0x522e('0xb'),_0x522e('0xc')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x81e7=['request\x20sent','catch','lodash','util','moment','bluebird','../../config/utils','rpc','client','http','request','info','UserProfileResource,\x20%s,\x20%s','debug','UserProfileResource,\x20%s,\x20%s,\x20%s','code','error','message'];(function(_0x2f4d79,_0x240b28){var _0x45f148=function(_0x411e6){while(--_0x411e6){_0x2f4d79['push'](_0x2f4d79['shift']());}};_0x45f148(++_0x240b28);}(_0x81e7,0x17c));var _0x781e=function(_0x122ef9,_0x451d2a){_0x122ef9=_0x122ef9-0x0;var _0x42fba0=_0x81e7[_0x122ef9];return _0x42fba0;};'use strict';var _=require(_0x781e('0x0'));var util=require(_0x781e('0x1'));var moment=require(_0x781e('0x2'));var BPromise=require(_0x781e('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0x781e('0x4'));var logger=require('../../config/logger')(_0x781e('0x5'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0x781e('0x6')][_0x781e('0x7')]({'port':0x232a});function respondWithRpcPromise(_0x692a11,_0x5b91e9,_0x3f6404){return new BPromise(function(_0x128b62,_0x420cae){return client[_0x781e('0x8')](_0x692a11,_0x3f6404)['then'](function(_0x4e21c4){logger[_0x781e('0x9')](_0x781e('0xa'),_0x5b91e9,'request\x20sent');logger[_0x781e('0xb')](_0x781e('0xc'),_0x5b91e9,'request\x20sent',JSON['stringify'](_0x4e21c4));if(_0x4e21c4['error']){if(_0x4e21c4['error'][_0x781e('0xd')]===0x1f4){logger[_0x781e('0xe')]('UserProfileResource,\x20%s,\x20%s',_0x5b91e9,_0x4e21c4[_0x781e('0xe')][_0x781e('0xf')]);return _0x420cae(_0x4e21c4[_0x781e('0xe')]['message']);}logger[_0x781e('0xe')](_0x781e('0xa'),_0x5b91e9,_0x4e21c4['error'][_0x781e('0xf')]);return _0x128b62(_0x4e21c4[_0x781e('0xe')][_0x781e('0xf')]);}else{logger[_0x781e('0x9')](_0x781e('0xa'),_0x5b91e9,_0x781e('0x10'));_0x128b62(_0x4e21c4['result'][_0x781e('0xf')]);}})[_0x781e('0x11')](function(_0x35829d){logger[_0x781e('0xe')](_0x781e('0xa'),_0x5b91e9,_0x35829d);_0x420cae(_0x35829d);});});}
\ No newline at end of file
+var _0xe6f5=['catch','lodash','moment','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','request','info','UserProfileResource,\x20%s,\x20%s','request\x20sent','debug','UserProfileResource,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result'];(function(_0x260478,_0x2040a1){var _0x4048fb=function(_0x49b513){while(--_0x49b513){_0x260478['push'](_0x260478['shift']());}};_0x4048fb(++_0x2040a1);}(_0xe6f5,0x161));var _0x5e6f=function(_0x11619d,_0xe18f17){_0x11619d=_0x11619d-0x0;var _0x385001=_0xe6f5[_0x11619d];return _0x385001;};'use strict';var _=require(_0x5e6f('0x0'));var util=require('util');var moment=require(_0x5e6f('0x1'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x5e6f('0x2'));var db=require(_0x5e6f('0x3'))['db'];var utils=require(_0x5e6f('0x4'));var logger=require(_0x5e6f('0x5'))('rpc');var config=require(_0x5e6f('0x6'));var jayson=require(_0x5e6f('0x7'));var client=jayson[_0x5e6f('0x8')][_0x5e6f('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x4a5b4f,_0x223406,_0x5d3f50){return new BPromise(function(_0x407cd4,_0x2840f6){return client[_0x5e6f('0xa')](_0x4a5b4f,_0x5d3f50)['then'](function(_0x3c90ee){logger[_0x5e6f('0xb')](_0x5e6f('0xc'),_0x223406,_0x5e6f('0xd'));logger[_0x5e6f('0xe')](_0x5e6f('0xf'),_0x223406,_0x5e6f('0xd'),JSON[_0x5e6f('0x10')](_0x3c90ee));if(_0x3c90ee[_0x5e6f('0x11')]){if(_0x3c90ee[_0x5e6f('0x11')][_0x5e6f('0x12')]===0x1f4){logger[_0x5e6f('0x11')](_0x5e6f('0xc'),_0x223406,_0x3c90ee[_0x5e6f('0x11')][_0x5e6f('0x13')]);return _0x2840f6(_0x3c90ee[_0x5e6f('0x11')]['message']);}logger[_0x5e6f('0x11')](_0x5e6f('0xc'),_0x223406,_0x3c90ee['error'][_0x5e6f('0x13')]);return _0x407cd4(_0x3c90ee['error'][_0x5e6f('0x13')]);}else{logger[_0x5e6f('0xb')]('UserProfileResource,\x20%s,\x20%s',_0x223406,_0x5e6f('0xd'));_0x407cd4(_0x3c90ee[_0x5e6f('0x14')][_0x5e6f('0x13')]);}})[_0x5e6f('0x15')](function(_0x36be80){logger[_0x5e6f('0x11')]('UserProfileResource,\x20%s,\x20%s',_0x223406,_0x36be80);_0x2840f6(_0x36be80);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd2e2=['../../components/auth/service','../../components/interaction/service','../../config/environment','./userProfileSection.controller','get','isAuthenticated','index','/describe','describe','/:id','show','post','create','put','update','delete','destroy','multer','path','connect-timeout','express'];(function(_0xd87124,_0x29f268){var _0x4c8bd1=function(_0x564792){while(--_0x564792){_0xd87124['push'](_0xd87124['shift']());}};_0x4c8bd1(++_0x29f268);}(_0xd2e2,0x1b5));var _0x2d2e=function(_0x4fbd79,_0x1d9be1){_0x4fbd79=_0x4fbd79-0x0;var _0x417099=_0xd2e2[_0x4fbd79];return _0x417099;};'use strict';var multer=require(_0x2d2e('0x0'));var util=require('util');var path=require(_0x2d2e('0x1'));var timeout=require(_0x2d2e('0x2'));var express=require(_0x2d2e('0x3'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0x2d2e('0x4'));var interaction=require(_0x2d2e('0x5'));var config=require(_0x2d2e('0x6'));var controller=require(_0x2d2e('0x7'));router[_0x2d2e('0x8')]('/',auth[_0x2d2e('0x9')](),controller[_0x2d2e('0xa')]);router['get'](_0x2d2e('0xb'),auth[_0x2d2e('0x9')](),controller[_0x2d2e('0xc')]);router[_0x2d2e('0x8')](_0x2d2e('0xd'),auth['isAuthenticated'](),controller[_0x2d2e('0xe')]);router[_0x2d2e('0xf')]('/',auth[_0x2d2e('0x9')](),controller[_0x2d2e('0x10')]);router[_0x2d2e('0x11')](_0x2d2e('0xd'),auth[_0x2d2e('0x9')](),controller[_0x2d2e('0x12')]);router[_0x2d2e('0x13')](_0x2d2e('0xd'),auth['isAuthenticated'](),controller[_0x2d2e('0x14')]);module['exports']=router;
\ No newline at end of file
+var _0xd2bc=['isAuthenticated','index','/describe','describe','/:id','show','create','update','delete','destroy','exports','multer','express','../../components/auth/service','../../components/interaction/service','../../config/environment','./userProfileSection.controller','get'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xd2bc,0xbf));var _0xcd2b=function(_0x139a18,_0x174be4){_0x139a18=_0x139a18-0x0;var _0x2f8b8c=_0xd2bc[_0x139a18];return _0x2f8b8c;};'use strict';var multer=require(_0xcd2b('0x0'));var util=require('util');var path=require('path');var timeout=require('connect-timeout');var express=require(_0xcd2b('0x1'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0xcd2b('0x2'));var interaction=require(_0xcd2b('0x3'));var config=require(_0xcd2b('0x4'));var controller=require(_0xcd2b('0x5'));router[_0xcd2b('0x6')]('/',auth[_0xcd2b('0x7')](),controller[_0xcd2b('0x8')]);router[_0xcd2b('0x6')](_0xcd2b('0x9'),auth[_0xcd2b('0x7')](),controller[_0xcd2b('0xa')]);router[_0xcd2b('0x6')](_0xcd2b('0xb'),auth['isAuthenticated'](),controller[_0xcd2b('0xc')]);router['post']('/',auth[_0xcd2b('0x7')](),controller[_0xcd2b('0xd')]);router['put']('/:id',auth[_0xcd2b('0x7')](),controller[_0xcd2b('0xe')]);router[_0xcd2b('0xf')](_0xcd2b('0xb'),auth['isAuthenticated'](),controller[_0xcd2b('0x10')]);module[_0xcd2b('0x11')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x36ee=['getDataValue','STRING','INTEGER','BOOLEAN','setDataValue','crudPermissions','join'];(function(_0x210b93,_0x133e6d){var _0x2b020f=function(_0x3f9601){while(--_0x3f9601){_0x210b93['push'](_0x210b93['shift']());}};_0x2b020f(++_0x133e6d);}(_0x36ee,0xe8));var _0xe36e=function(_0x397e5f,_0x454c8f){_0x397e5f=_0x397e5f-0x0;var _0x5302b8=_0x36ee[_0x397e5f];return _0x5302b8;};'use strict';var Sequelize=require('sequelize');module['exports']={'name':{'type':Sequelize[_0xe36e('0x0')],'allowNull':![]},'category':{'type':Sequelize['STRING'],'allowNull':![]},'sectionId':{'type':Sequelize[_0xe36e('0x1')],'allowNull':![]},'enabled':{'type':Sequelize[_0xe36e('0x2')],'defaultValue':null},'autoAssociation':{'type':Sequelize[_0xe36e('0x2')],'defaultValue':null},'crudPermissions':{'type':Sequelize[_0xe36e('0x0')],'set':function(_0x567a84){this[_0xe36e('0x3')](_0xe36e('0x4'),_0x567a84?_0x567a84[_0xe36e('0x5')](''):[]);},'get':function(){return this[_0xe36e('0x6')](_0xe36e('0x4'))?this[_0xe36e('0x6')](_0xe36e('0x4'))['split'](''):[];}}};
\ No newline at end of file
+var _0x236c=['STRING','INTEGER','BOOLEAN','setDataValue','crudPermissions','join','getDataValue','split','sequelize'];(function(_0x16245b,_0x353df5){var _0x8bbb56=function(_0xee667d){while(--_0xee667d){_0x16245b['push'](_0x16245b['shift']());}};_0x8bbb56(++_0x353df5);}(_0x236c,0x155));var _0xc236=function(_0x1fc35d,_0x1fa569){_0x1fc35d=_0x1fc35d-0x0;var _0x52bcb0=_0x236c[_0x1fc35d];return _0x52bcb0;};'use strict';var Sequelize=require(_0xc236('0x0'));module['exports']={'name':{'type':Sequelize[_0xc236('0x1')],'allowNull':![]},'category':{'type':Sequelize[_0xc236('0x1')],'allowNull':![]},'sectionId':{'type':Sequelize[_0xc236('0x2')],'allowNull':![]},'enabled':{'type':Sequelize[_0xc236('0x3')],'defaultValue':null},'autoAssociation':{'type':Sequelize[_0xc236('0x3')],'defaultValue':null},'crudPermissions':{'type':Sequelize['STRING'],'set':function(_0x3adce9){this[_0xc236('0x4')](_0xc236('0x5'),_0x3adce9?_0x3adce9[_0xc236('0x6')](''):[]);},'get':function(){return this[_0xc236('0x7')](_0xc236('0x5'))?this['getDataValue'](_0xc236('0x5'))[_0xc236('0x8')](''):[];}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf3a0=['sendStatus','status','end','json','undefined','limit','count','offset','set','Content-Range','reject','save','update','then','destroy','stack','name','send','index','map','UserProfileSection','rawAttributes','fieldName','type','model','query','keys','filters','intersection','attributes','fields','length','nolimit','order','sort','where','pick','filter','merge','options','includeAll','include','findAll','rows','catch','show','params','find','create','body','describe','rimraf','request-promise','moment','bluebird','mustache','util','path','sox','ejs','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils','../../mysqldb'];(function(_0x2d0df3,_0x29c307){var _0x10e2ed=function(_0x453783){while(--_0x453783){_0x2d0df3['push'](_0x2d0df3['shift']());}};_0x10e2ed(++_0x29c307);}(_0xf3a0,0x157));var _0x0f3a=function(_0x9ff1c0,_0x207afc){_0x9ff1c0=_0x9ff1c0-0x0;var _0x3e6c23=_0xf3a0[_0x9ff1c0];return _0x3e6c23;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x0f3a('0x0'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x0f3a('0x1'));var moment=require(_0x0f3a('0x2'));var BPromise=require(_0x0f3a('0x3'));var Mustache=require(_0x0f3a('0x4'));var util=require(_0x0f3a('0x5'));var path=require(_0x0f3a('0x6'));var sox=require(_0x0f3a('0x7'));var csv=require('to-csv');var ejs=require(_0x0f3a('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require('squel');var crypto=require(_0x0f3a('0x9'));var jsforce=require(_0x0f3a('0xa'));var deskjs=require(_0x0f3a('0xb'));var toCsv=require(_0x0f3a('0xc'));var querystring=require(_0x0f3a('0xd'));var Papa=require(_0x0f3a('0xe'));var Redis=require(_0x0f3a('0xf'));var authService=require(_0x0f3a('0x10'));var qs=require(_0x0f3a('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x0f3a('0x12'));var logger=require(_0x0f3a('0x13'))('api');var utils=require(_0x0f3a('0x14'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x0f3a('0x15'))['db'];function respondWithStatusCode(_0x389736,_0x116151){_0x116151=_0x116151||0xcc;return function(_0x293d9a){if(_0x293d9a){return _0x389736[_0x0f3a('0x16')](_0x116151);}return _0x389736[_0x0f3a('0x17')](_0x116151)[_0x0f3a('0x18')]();};}function respondWithResult(_0x1d6011,_0x2d1b53){_0x2d1b53=_0x2d1b53||0xc8;return function(_0x337fde){if(_0x337fde){return _0x1d6011[_0x0f3a('0x17')](_0x2d1b53)[_0x0f3a('0x19')](_0x337fde);}};}function respondWithFilteredResult(_0x425f7a,_0x587c87){return function(_0x5b4787){if(_0x5b4787){var _0x5d8073=typeof _0x587c87['offset']===_0x0f3a('0x1a')&&typeof _0x587c87[_0x0f3a('0x1b')]==='undefined';var _0x5ce989=_0x5b4787[_0x0f3a('0x1c')];var _0x12084b=_0x5d8073?0x0:_0x587c87[_0x0f3a('0x1d')];var _0x570962=_0x5d8073?_0x5b4787[_0x0f3a('0x1c')]:_0x587c87[_0x0f3a('0x1d')]+_0x587c87['limit'];var _0xd07e10;if(_0x570962>=_0x5ce989){_0x570962=_0x5ce989;_0xd07e10=0xc8;}else{_0xd07e10=0xce;}_0x425f7a[_0x0f3a('0x17')](_0xd07e10);return _0x425f7a[_0x0f3a('0x1e')](_0x0f3a('0x1f'),_0x12084b+'-'+_0x570962+'/'+_0x5ce989)['json'](_0x5b4787);}return null;};}function patchUpdates(_0x397c9d){return function(_0xfd21c8){try{jsonpatch['apply'](_0xfd21c8,_0x397c9d,!![]);}catch(_0x32624a){return BPromise[_0x0f3a('0x20')](_0x32624a);}return _0xfd21c8[_0x0f3a('0x21')]();};}function saveUpdates(_0x305aee,_0x4a2fe1){return function(_0x20694b){if(_0x20694b){return _0x20694b[_0x0f3a('0x22')](_0x305aee)[_0x0f3a('0x23')](function(_0x1e3df4){return _0x1e3df4;});}return null;};}function removeEntity(_0x23d2d4,_0x48f369){return function(_0xbf7a78){if(_0xbf7a78){return _0xbf7a78[_0x0f3a('0x24')]()[_0x0f3a('0x23')](function(){_0x23d2d4[_0x0f3a('0x17')](0xcc)[_0x0f3a('0x18')]();});}};}function handleEntityNotFound(_0x4155cd,_0x1b2869){return function(_0x27f90b){if(!_0x27f90b){_0x4155cd[_0x0f3a('0x16')](0x194);}return _0x27f90b;};}function handleError(_0xf143c7,_0x318d91){_0x318d91=_0x318d91||0x1f4;return function(_0x43d0f3){logger['error'](_0x43d0f3[_0x0f3a('0x25')]);if(_0x43d0f3[_0x0f3a('0x26')]){delete _0x43d0f3[_0x0f3a('0x26')];}_0xf143c7[_0x0f3a('0x17')](_0x318d91)[_0x0f3a('0x27')](_0x43d0f3);};}exports[_0x0f3a('0x28')]=function(_0x4cb3ad,_0x136cf4){var _0x5389cd={},_0x4cbd3c={},_0x357dfb={'count':0x0,'rows':[]};var _0x42e4fd=_[_0x0f3a('0x29')](db[_0x0f3a('0x2a')][_0x0f3a('0x2b')],function(_0x46cdc0){return{'name':_0x46cdc0[_0x0f3a('0x2c')],'type':_0x46cdc0[_0x0f3a('0x2d')]['key']};});_0x4cbd3c[_0x0f3a('0x2e')]=_['map'](_0x42e4fd,_0x0f3a('0x26'));_0x4cbd3c[_0x0f3a('0x2f')]=_[_0x0f3a('0x30')](_0x4cb3ad[_0x0f3a('0x2f')]);_0x4cbd3c[_0x0f3a('0x31')]=_[_0x0f3a('0x32')](_0x4cbd3c['model'],_0x4cbd3c[_0x0f3a('0x2f')]);_0x5389cd[_0x0f3a('0x33')]=_['intersection'](_0x4cbd3c[_0x0f3a('0x2e')],qs[_0x0f3a('0x34')](_0x4cb3ad[_0x0f3a('0x2f')][_0x0f3a('0x34')]));_0x5389cd[_0x0f3a('0x33')]=_0x5389cd[_0x0f3a('0x33')][_0x0f3a('0x35')]?_0x5389cd[_0x0f3a('0x33')]:_0x4cbd3c['model'];if(!_0x4cb3ad[_0x0f3a('0x2f')]['hasOwnProperty'](_0x0f3a('0x36'))){_0x5389cd[_0x0f3a('0x1b')]=qs[_0x0f3a('0x1b')](_0x4cb3ad[_0x0f3a('0x2f')][_0x0f3a('0x1b')]);_0x5389cd[_0x0f3a('0x1d')]=qs['offset'](_0x4cb3ad['query']['offset']);}_0x5389cd[_0x0f3a('0x37')]=qs[_0x0f3a('0x38')](_0x4cb3ad[_0x0f3a('0x2f')][_0x0f3a('0x38')]);_0x5389cd[_0x0f3a('0x39')]=qs[_0x0f3a('0x31')](_[_0x0f3a('0x3a')](_0x4cb3ad[_0x0f3a('0x2f')],_0x4cbd3c[_0x0f3a('0x31')]),_0x42e4fd);if(_0x4cb3ad[_0x0f3a('0x2f')][_0x0f3a('0x3b')]){_0x5389cd[_0x0f3a('0x39')]=_[_0x0f3a('0x3c')](_0x5389cd['where'],{'$or':_[_0x0f3a('0x29')](_0x42e4fd,function(_0x48bced){if(_0x48bced[_0x0f3a('0x2d')]!=='VIRTUAL'){var _0x26926a={};_0x26926a[_0x48bced[_0x0f3a('0x26')]]={'$like':'%'+_0x4cb3ad[_0x0f3a('0x2f')]['filter']+'%'};return _0x26926a;}})});}_0x5389cd=_['merge']({},_0x5389cd,_0x4cb3ad[_0x0f3a('0x3d')]);var _0xf939e6={'where':_0x5389cd[_0x0f3a('0x39')]};return db[_0x0f3a('0x2a')]['count'](_0xf939e6)[_0x0f3a('0x23')](function(_0x13e4ce){_0x357dfb['count']=_0x13e4ce;if(_0x4cb3ad['query'][_0x0f3a('0x3e')]){_0x5389cd[_0x0f3a('0x3f')]=[{'all':!![]}];}return db[_0x0f3a('0x2a')][_0x0f3a('0x40')](_0x5389cd);})[_0x0f3a('0x23')](function(_0x5a106d){_0x357dfb[_0x0f3a('0x41')]=_0x5a106d;return _0x357dfb;})[_0x0f3a('0x23')](respondWithFilteredResult(_0x136cf4,_0x5389cd))[_0x0f3a('0x42')](handleError(_0x136cf4,null));};exports[_0x0f3a('0x43')]=function(_0x546d8f,_0x454f3f){var _0x187a59={'raw':![],'where':{'id':_0x546d8f[_0x0f3a('0x44')]['id']}},_0x33f9e4={};_0x33f9e4[_0x0f3a('0x2e')]=_[_0x0f3a('0x30')](db['UserProfileSection'][_0x0f3a('0x2b')]);_0x33f9e4[_0x0f3a('0x2f')]=_[_0x0f3a('0x30')](_0x546d8f[_0x0f3a('0x2f')]);_0x33f9e4['filters']=_[_0x0f3a('0x32')](_0x33f9e4[_0x0f3a('0x2e')],_0x33f9e4[_0x0f3a('0x2f')]);_0x187a59[_0x0f3a('0x33')]=_[_0x0f3a('0x32')](_0x33f9e4[_0x0f3a('0x2e')],qs['fields'](_0x546d8f[_0x0f3a('0x2f')][_0x0f3a('0x34')]));_0x187a59[_0x0f3a('0x33')]=_0x187a59[_0x0f3a('0x33')][_0x0f3a('0x35')]?_0x187a59[_0x0f3a('0x33')]:_0x33f9e4[_0x0f3a('0x2e')];if(_0x546d8f['query'][_0x0f3a('0x3e')]){_0x187a59[_0x0f3a('0x3f')]=[{'all':!![]}];}_0x187a59=_[_0x0f3a('0x3c')]({},_0x187a59,_0x546d8f[_0x0f3a('0x3d')]);return db[_0x0f3a('0x2a')][_0x0f3a('0x45')](_0x187a59)['then'](handleEntityNotFound(_0x454f3f,null))[_0x0f3a('0x23')](respondWithResult(_0x454f3f,null))[_0x0f3a('0x42')](handleError(_0x454f3f,null));};exports[_0x0f3a('0x46')]=function(_0x548d9d,_0xd3c0ef){return db[_0x0f3a('0x2a')]['create'](_0x548d9d[_0x0f3a('0x47')],{})['then'](respondWithResult(_0xd3c0ef,0xc9))[_0x0f3a('0x42')](handleError(_0xd3c0ef,null));};exports[_0x0f3a('0x22')]=function(_0x31082b,_0x3ce25d){if(_0x31082b[_0x0f3a('0x47')]['id']){delete _0x31082b['body']['id'];}return db[_0x0f3a('0x2a')][_0x0f3a('0x45')]({'where':{'id':_0x31082b[_0x0f3a('0x44')]['id']}})[_0x0f3a('0x23')](handleEntityNotFound(_0x3ce25d,null))[_0x0f3a('0x23')](saveUpdates(_0x31082b[_0x0f3a('0x47')],null))[_0x0f3a('0x23')](respondWithResult(_0x3ce25d,null))[_0x0f3a('0x42')](handleError(_0x3ce25d,null));};exports[_0x0f3a('0x24')]=function(_0x427a78,_0x31deb7){return db[_0x0f3a('0x2a')]['find']({'where':{'id':_0x427a78['params']['id']}})[_0x0f3a('0x23')](handleEntityNotFound(_0x31deb7,null))[_0x0f3a('0x23')](removeEntity(_0x31deb7,null))[_0x0f3a('0x42')](handleError(_0x31deb7,null));};exports[_0x0f3a('0x48')]=function(_0x51856e,_0xa15390){return db['UserProfileSection']['describe']()[_0x0f3a('0x23')](respondWithResult(_0xa15390,null))[_0x0f3a('0x42')](handleError(_0xa15390,null));};
\ No newline at end of file
+var _0x65ff=['findAll','catch','rawAttributes','options','find','create','body','destroy','describe','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','ejs','fs-extra','lodash','squel','crypto','jsforce','to-csv','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../mysqldb','sendStatus','status','end','json','undefined','offset','count','limit','set','Content-Range','apply','reject','update','then','error','stack','name','send','index','UserProfileSection','type','key','model','map','keys','query','filters','intersection','fields','attributes','length','order','sort','where','pick','filter','merge','VIRTUAL','includeAll','include'];(function(_0x8773e6,_0x35f088){var _0x254c1d=function(_0x3416b9){while(--_0x3416b9){_0x8773e6['push'](_0x8773e6['shift']());}};_0x254c1d(++_0x35f088);}(_0x65ff,0x9f));var _0xf65f=function(_0x459847,_0x3d79f4){_0x459847=_0x459847-0x0;var _0x3720fe=_0x65ff[_0x459847];return _0x3720fe;};'use strict';var emlformat=require(_0xf65f('0x0'));var rimraf=require(_0xf65f('0x1'));var zipdir=require(_0xf65f('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xf65f('0x3'));var moment=require(_0xf65f('0x4'));var BPromise=require(_0xf65f('0x5'));var Mustache=require(_0xf65f('0x6'));var util=require(_0xf65f('0x7'));var path=require(_0xf65f('0x8'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0xf65f('0x9'));var fs=require('fs');var fs_extra=require(_0xf65f('0xa'));var _=require(_0xf65f('0xb'));var squel=require(_0xf65f('0xc'));var crypto=require(_0xf65f('0xd'));var jsforce=require(_0xf65f('0xe'));var deskjs=require('desk.js');var toCsv=require(_0xf65f('0xf'));var querystring=require(_0xf65f('0x10'));var Papa=require(_0xf65f('0x11'));var Redis=require('ioredis');var authService=require(_0xf65f('0x12'));var qs=require(_0xf65f('0x13'));var as=require(_0xf65f('0x14'));var hardwareService=require(_0xf65f('0x15'));var logger=require(_0xf65f('0x16'))(_0xf65f('0x17'));var utils=require('../../config/utils');var config=require(_0xf65f('0x18'));var licenseUtil=require('../../config/license/util');var db=require(_0xf65f('0x19'))['db'];function respondWithStatusCode(_0x1123d7,_0x5541c1){_0x5541c1=_0x5541c1||0xcc;return function(_0x2d16c8){if(_0x2d16c8){return _0x1123d7[_0xf65f('0x1a')](_0x5541c1);}return _0x1123d7[_0xf65f('0x1b')](_0x5541c1)[_0xf65f('0x1c')]();};}function respondWithResult(_0x268ee4,_0x271955){_0x271955=_0x271955||0xc8;return function(_0x5c25c8){if(_0x5c25c8){return _0x268ee4['status'](_0x271955)[_0xf65f('0x1d')](_0x5c25c8);}};}function respondWithFilteredResult(_0x2d905b,_0x16b88d){return function(_0x531aae){if(_0x531aae){var _0x67b806=typeof _0x16b88d['offset']===_0xf65f('0x1e')&&typeof _0x16b88d['limit']===_0xf65f('0x1e');var _0x33bb65=_0x531aae['count'];var _0x34a124=_0x67b806?0x0:_0x16b88d[_0xf65f('0x1f')];var _0x5c80d2=_0x67b806?_0x531aae[_0xf65f('0x20')]:_0x16b88d[_0xf65f('0x1f')]+_0x16b88d[_0xf65f('0x21')];var _0x53774a;if(_0x5c80d2>=_0x33bb65){_0x5c80d2=_0x33bb65;_0x53774a=0xc8;}else{_0x53774a=0xce;}_0x2d905b[_0xf65f('0x1b')](_0x53774a);return _0x2d905b[_0xf65f('0x22')](_0xf65f('0x23'),_0x34a124+'-'+_0x5c80d2+'/'+_0x33bb65)[_0xf65f('0x1d')](_0x531aae);}return null;};}function patchUpdates(_0x37c480){return function(_0x1f9288){try{jsonpatch[_0xf65f('0x24')](_0x1f9288,_0x37c480,!![]);}catch(_0x4cc9e3){return BPromise[_0xf65f('0x25')](_0x4cc9e3);}return _0x1f9288['save']();};}function saveUpdates(_0x3797a6,_0x1b0709){return function(_0x4a6f94){if(_0x4a6f94){return _0x4a6f94[_0xf65f('0x26')](_0x3797a6)[_0xf65f('0x27')](function(_0x3dae49){return _0x3dae49;});}return null;};}function removeEntity(_0x4cd4c6,_0x5674c8){return function(_0x53aeaa){if(_0x53aeaa){return _0x53aeaa['destroy']()[_0xf65f('0x27')](function(){_0x4cd4c6['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x12b793,_0x47c759){return function(_0x3c75b1){if(!_0x3c75b1){_0x12b793['sendStatus'](0x194);}return _0x3c75b1;};}function handleError(_0x2ccbe3,_0x195f23){_0x195f23=_0x195f23||0x1f4;return function(_0x1b15ee){logger[_0xf65f('0x28')](_0x1b15ee[_0xf65f('0x29')]);if(_0x1b15ee[_0xf65f('0x2a')]){delete _0x1b15ee[_0xf65f('0x2a')];}_0x2ccbe3['status'](_0x195f23)[_0xf65f('0x2b')](_0x1b15ee);};}exports[_0xf65f('0x2c')]=function(_0x353a5a,_0x5923cb){var _0x204f1c={},_0x8eb909={},_0x3806c5={'count':0x0,'rows':[]};var _0x444a87=_['map'](db[_0xf65f('0x2d')]['rawAttributes'],function(_0x4a3511){return{'name':_0x4a3511['fieldName'],'type':_0x4a3511[_0xf65f('0x2e')][_0xf65f('0x2f')]};});_0x8eb909[_0xf65f('0x30')]=_[_0xf65f('0x31')](_0x444a87,'name');_0x8eb909['query']=_[_0xf65f('0x32')](_0x353a5a[_0xf65f('0x33')]);_0x8eb909[_0xf65f('0x34')]=_[_0xf65f('0x35')](_0x8eb909['model'],_0x8eb909['query']);_0x204f1c['attributes']=_[_0xf65f('0x35')](_0x8eb909[_0xf65f('0x30')],qs[_0xf65f('0x36')](_0x353a5a[_0xf65f('0x33')][_0xf65f('0x36')]));_0x204f1c[_0xf65f('0x37')]=_0x204f1c[_0xf65f('0x37')][_0xf65f('0x38')]?_0x204f1c['attributes']:_0x8eb909[_0xf65f('0x30')];if(!_0x353a5a['query']['hasOwnProperty']('nolimit')){_0x204f1c[_0xf65f('0x21')]=qs[_0xf65f('0x21')](_0x353a5a[_0xf65f('0x33')][_0xf65f('0x21')]);_0x204f1c[_0xf65f('0x1f')]=qs[_0xf65f('0x1f')](_0x353a5a[_0xf65f('0x33')][_0xf65f('0x1f')]);}_0x204f1c[_0xf65f('0x39')]=qs[_0xf65f('0x3a')](_0x353a5a[_0xf65f('0x33')][_0xf65f('0x3a')]);_0x204f1c[_0xf65f('0x3b')]=qs[_0xf65f('0x34')](_[_0xf65f('0x3c')](_0x353a5a['query'],_0x8eb909[_0xf65f('0x34')]),_0x444a87);if(_0x353a5a[_0xf65f('0x33')][_0xf65f('0x3d')]){_0x204f1c['where']=_[_0xf65f('0x3e')](_0x204f1c[_0xf65f('0x3b')],{'$or':_[_0xf65f('0x31')](_0x444a87,function(_0xec463b){if(_0xec463b[_0xf65f('0x2e')]!==_0xf65f('0x3f')){var _0x3b1c07={};_0x3b1c07[_0xec463b[_0xf65f('0x2a')]]={'$like':'%'+_0x353a5a[_0xf65f('0x33')][_0xf65f('0x3d')]+'%'};return _0x3b1c07;}})});}_0x204f1c=_[_0xf65f('0x3e')]({},_0x204f1c,_0x353a5a['options']);var _0x42d238={'where':_0x204f1c[_0xf65f('0x3b')]};return db[_0xf65f('0x2d')][_0xf65f('0x20')](_0x42d238)[_0xf65f('0x27')](function(_0x33039f){_0x3806c5[_0xf65f('0x20')]=_0x33039f;if(_0x353a5a['query'][_0xf65f('0x40')]){_0x204f1c[_0xf65f('0x41')]=[{'all':!![]}];}return db[_0xf65f('0x2d')][_0xf65f('0x42')](_0x204f1c);})['then'](function(_0x214ef0){_0x3806c5['rows']=_0x214ef0;return _0x3806c5;})[_0xf65f('0x27')](respondWithFilteredResult(_0x5923cb,_0x204f1c))[_0xf65f('0x43')](handleError(_0x5923cb,null));};exports['show']=function(_0x33ea9b,_0x3e922a){var _0x4fc29a={'raw':![],'where':{'id':_0x33ea9b['params']['id']}},_0x59c98c={};_0x59c98c[_0xf65f('0x30')]=_['keys'](db[_0xf65f('0x2d')][_0xf65f('0x44')]);_0x59c98c[_0xf65f('0x33')]=_[_0xf65f('0x32')](_0x33ea9b[_0xf65f('0x33')]);_0x59c98c[_0xf65f('0x34')]=_[_0xf65f('0x35')](_0x59c98c['model'],_0x59c98c[_0xf65f('0x33')]);_0x4fc29a['attributes']=_[_0xf65f('0x35')](_0x59c98c['model'],qs[_0xf65f('0x36')](_0x33ea9b[_0xf65f('0x33')][_0xf65f('0x36')]));_0x4fc29a[_0xf65f('0x37')]=_0x4fc29a['attributes'][_0xf65f('0x38')]?_0x4fc29a[_0xf65f('0x37')]:_0x59c98c[_0xf65f('0x30')];if(_0x33ea9b[_0xf65f('0x33')]['includeAll']){_0x4fc29a[_0xf65f('0x41')]=[{'all':!![]}];}_0x4fc29a=_['merge']({},_0x4fc29a,_0x33ea9b[_0xf65f('0x45')]);return db[_0xf65f('0x2d')][_0xf65f('0x46')](_0x4fc29a)['then'](handleEntityNotFound(_0x3e922a,null))[_0xf65f('0x27')](respondWithResult(_0x3e922a,null))['catch'](handleError(_0x3e922a,null));};exports[_0xf65f('0x47')]=function(_0x3d3e7b,_0x127a1a){return db[_0xf65f('0x2d')][_0xf65f('0x47')](_0x3d3e7b[_0xf65f('0x48')],{})[_0xf65f('0x27')](respondWithResult(_0x127a1a,0xc9))[_0xf65f('0x43')](handleError(_0x127a1a,null));};exports[_0xf65f('0x26')]=function(_0x2cd559,_0x8a8869){if(_0x2cd559['body']['id']){delete _0x2cd559[_0xf65f('0x48')]['id'];}return db['UserProfileSection'][_0xf65f('0x46')]({'where':{'id':_0x2cd559['params']['id']}})[_0xf65f('0x27')](handleEntityNotFound(_0x8a8869,null))['then'](saveUpdates(_0x2cd559[_0xf65f('0x48')],null))[_0xf65f('0x27')](respondWithResult(_0x8a8869,null))[_0xf65f('0x43')](handleError(_0x8a8869,null));};exports[_0xf65f('0x49')]=function(_0x345d27,_0x9cc80a){return db['UserProfileSection'][_0xf65f('0x46')]({'where':{'id':_0x345d27['params']['id']}})[_0xf65f('0x27')](handleEntityNotFound(_0x9cc80a,null))['then'](removeEntity(_0x9cc80a,null))[_0xf65f('0x43')](handleError(_0x9cc80a,null));};exports[_0xf65f('0x4a')]=function(_0x29fa88,_0x38948f){return db[_0xf65f('0x2d')][_0xf65f('0x4a')]()[_0xf65f('0x27')](respondWithResult(_0x38948f,null))[_0xf65f('0x43')](handleError(_0x38948f,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7001=['userProfileId','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','exports','define','user_profile_has_sections','sectionId'];(function(_0xb6c95e,_0x5990fc){var _0x198269=function(_0x7c7971){while(--_0x7c7971){_0xb6c95e['push'](_0xb6c95e['shift']());}};_0x198269(++_0x5990fc);}(_0x7001,0xa6));var _0x1700=function(_0x48d3db,_0x2a4bd4){_0x48d3db=_0x48d3db-0x0;var _0x368cd0=_0x7001[_0x48d3db];return _0x368cd0;};'use strict';var _=require(_0x1700('0x0'));var util=require(_0x1700('0x1'));var logger=require(_0x1700('0x2'))(_0x1700('0x3'));var moment=require(_0x1700('0x4'));var BPromise=require(_0x1700('0x5'));var rp=require(_0x1700('0x6'));var fs=require('fs');var path=require(_0x1700('0x7'));var rimraf=require(_0x1700('0x8'));var config=require(_0x1700('0x9'));var attributes=require('./userProfileSection.attributes');module[_0x1700('0xa')]=function(_0x7e38ce,_0x5068db){return _0x7e38ce[_0x1700('0xb')]('UserProfileSection',attributes,{'tableName':_0x1700('0xc'),'paranoid':![],'indexes':[{'name':'compositeIndex','fields':[_0x1700('0xd'),_0x1700('0xe')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0xf9ae=['util','../../config/logger','moment','bluebird','request-promise','../../config/environment','./userProfileSection.attributes','exports','define','compositeIndex','sectionId','userProfileId','lodash'];(function(_0x33d055,_0x3c6595){var _0x40754c=function(_0x295024){while(--_0x295024){_0x33d055['push'](_0x33d055['shift']());}};_0x40754c(++_0x3c6595);}(_0xf9ae,0x11d));var _0xef9a=function(_0x32abcf,_0x4278b1){_0x32abcf=_0x32abcf-0x0;var _0x5095a7=_0xf9ae[_0x32abcf];return _0x5095a7;};'use strict';var _=require(_0xef9a('0x0'));var util=require(_0xef9a('0x1'));var logger=require(_0xef9a('0x2'))('api');var moment=require(_0xef9a('0x3'));var BPromise=require(_0xef9a('0x4'));var rp=require(_0xef9a('0x5'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0xef9a('0x6'));var attributes=require(_0xef9a('0x7'));module[_0xef9a('0x8')]=function(_0x41eec1,_0x56aab1){return _0x41eec1[_0xef9a('0x9')]('UserProfileSection',attributes,{'tableName':'user_profile_has_sections','paranoid':![],'indexes':[{'name':_0xef9a('0xa'),'fields':[_0xef9a('0xb'),_0xef9a('0xc')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe681=['stringify','error','code','message','info','catch','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','jayson/promise','client','http','request','then','UserProfileSection,\x20%s,\x20%s','UserProfileSection,\x20%s,\x20%s,\x20%s','request\x20sent'];(function(_0x38ced4,_0x24263f){var _0x547c07=function(_0x279fc4){while(--_0x279fc4){_0x38ced4['push'](_0x38ced4['shift']());}};_0x547c07(++_0x24263f);}(_0xe681,0xf8));var _0x1e68=function(_0x1958cf,_0x1e7727){_0x1958cf=_0x1958cf-0x0;var _0x5dcdd4=_0xe681[_0x1958cf];return _0x5dcdd4;};'use strict';var _=require(_0x1e68('0x0'));var util=require(_0x1e68('0x1'));var moment=require(_0x1e68('0x2'));var BPromise=require(_0x1e68('0x3'));var rs=require(_0x1e68('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x1e68('0x5'))['db'];var utils=require(_0x1e68('0x6'));var logger=require(_0x1e68('0x7'))('rpc');var config=require('../../config/environment');var jayson=require(_0x1e68('0x8'));var client=jayson[_0x1e68('0x9')][_0x1e68('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x43644a,_0x50fb13,_0x396fea){return new BPromise(function(_0x3c18d8,_0x39cf90){return client[_0x1e68('0xb')](_0x43644a,_0x396fea)[_0x1e68('0xc')](function(_0x42d42a){logger['info'](_0x1e68('0xd'),_0x50fb13,'request\x20sent');logger['debug'](_0x1e68('0xe'),_0x50fb13,_0x1e68('0xf'),JSON[_0x1e68('0x10')](_0x42d42a));if(_0x42d42a[_0x1e68('0x11')]){if(_0x42d42a[_0x1e68('0x11')][_0x1e68('0x12')]===0x1f4){logger[_0x1e68('0x11')](_0x1e68('0xd'),_0x50fb13,_0x42d42a['error'][_0x1e68('0x13')]);return _0x39cf90(_0x42d42a[_0x1e68('0x11')][_0x1e68('0x13')]);}logger[_0x1e68('0x11')](_0x1e68('0xd'),_0x50fb13,_0x42d42a['error'][_0x1e68('0x13')]);return _0x3c18d8(_0x42d42a[_0x1e68('0x11')][_0x1e68('0x13')]);}else{logger[_0x1e68('0x14')]('UserProfileSection,\x20%s,\x20%s',_0x50fb13,_0x1e68('0xf'));_0x3c18d8(_0x42d42a['result'][_0x1e68('0x13')]);}})[_0x1e68('0x15')](function(_0x5d2c92){logger[_0x1e68('0x11')]('UserProfileSection,\x20%s,\x20%s',_0x50fb13,_0x5d2c92);_0x39cf90(_0x5d2c92);});});}
\ No newline at end of file
+var _0xe187=['../../mysqldb','rpc','../../config/environment','jayson/promise','http','request','then','info','UserProfileSection,\x20%s,\x20%s','request\x20sent','UserProfileSection,\x20%s,\x20%s,\x20%s','stringify','code','error','message','result','lodash','util','moment','bluebird','randomstring','ioredis'];(function(_0x2c91e9,_0x2fb965){var _0x13f0ff=function(_0xb39edf){while(--_0xb39edf){_0x2c91e9['push'](_0x2c91e9['shift']());}};_0x13f0ff(++_0x2fb965);}(_0xe187,0x19c));var _0x7e18=function(_0x1e9a69,_0x4ae521){_0x1e9a69=_0x1e9a69-0x0;var _0x362844=_0xe187[_0x1e9a69];return _0x362844;};'use strict';var _=require(_0x7e18('0x0'));var util=require(_0x7e18('0x1'));var moment=require(_0x7e18('0x2'));var BPromise=require(_0x7e18('0x3'));var rs=require(_0x7e18('0x4'));var fs=require('fs');var Redis=require(_0x7e18('0x5'));var db=require(_0x7e18('0x6'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0x7e18('0x7'));var config=require(_0x7e18('0x8'));var jayson=require(_0x7e18('0x9'));var client=jayson['client'][_0x7e18('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x7cb3ad,_0x59c488,_0x44c655){return new BPromise(function(_0x5d5281,_0x1f8ecf){return client[_0x7e18('0xb')](_0x7cb3ad,_0x44c655)[_0x7e18('0xc')](function(_0x12b271){logger[_0x7e18('0xd')](_0x7e18('0xe'),_0x59c488,_0x7e18('0xf'));logger['debug'](_0x7e18('0x10'),_0x59c488,_0x7e18('0xf'),JSON[_0x7e18('0x11')](_0x12b271));if(_0x12b271['error']){if(_0x12b271['error'][_0x7e18('0x12')]===0x1f4){logger['error'](_0x7e18('0xe'),_0x59c488,_0x12b271[_0x7e18('0x13')][_0x7e18('0x14')]);return _0x1f8ecf(_0x12b271[_0x7e18('0x13')]['message']);}logger[_0x7e18('0x13')]('UserProfileSection,\x20%s,\x20%s',_0x59c488,_0x12b271[_0x7e18('0x13')][_0x7e18('0x14')]);return _0x5d5281(_0x12b271[_0x7e18('0x13')][_0x7e18('0x14')]);}else{logger['info'](_0x7e18('0xe'),_0x59c488,_0x7e18('0xf'));_0x5d5281(_0x12b271[_0x7e18('0x15')][_0x7e18('0x14')]);}})['catch'](function(_0x6590fa){logger['error'](_0x7e18('0xe'),_0x59c488,_0x6590fa);_0x1f8ecf(_0x6590fa);});});}
\ 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(_0x4f3081,_0x2a0a36){var _0xed3027=function(_0x89b3f6){while(--_0x89b3f6){_0x4f3081['push'](_0x4f3081['shift']());}};_0xed3027(++_0x2a0a36);}(_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(_0x4ba425,_0x181dc5){var _0x4a7b61=function(_0x1defd5){while(--_0x1defd5){_0x4ba425['push'](_0x4ba425['shift']());}};_0x4a7b61(++_0x181dc5);}(_0xa9e0,0x123));var _0x0a9e=function(_0x1b349a,_0x22222c){_0x1b349a=_0x1b349a-0x0;var _0x5d1f7c=_0xa9e0[_0x1b349a];return _0x5d1f7c;};'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 _0x407d=['exports','sequelize'];(function(_0x82aa46,_0x5b9b92){var _0x75ea22=function(_0xd226b){while(--_0xd226b){_0x82aa46['push'](_0x82aa46['shift']());}};_0x75ea22(++_0x5b9b92);}(_0x407d,0x19d));var _0xd407=function(_0x2940bf,_0x1a7281){_0x2940bf=_0x2940bf-0x0;var _0x4ca39e=_0x407d[_0x2940bf];return _0x4ca39e;};'use strict';var Sequelize=require(_0xd407('0x0'));module[_0xd407('0x1')]={'penalty':{'type':Sequelize['INTEGER'],'defaultValue':0x0}};
\ No newline at end of file
+var _0xe142=['INTEGER'];(function(_0x48475b,_0x52af80){var _0x35b970=function(_0xbee30e){while(--_0xbee30e){_0x48475b['push'](_0x48475b['shift']());}};_0x35b970(++_0x52af80);}(_0xe142,0xaa));var _0x2e14=function(_0x1599fc,_0x4e661f){_0x1599fc=_0x1599fc-0x0;var _0x996075=_0xe142[_0x1599fc];return _0x996075;};'use strict';var Sequelize=require('sequelize');module['exports']={'penalty':{'type':Sequelize[_0x2e14('0x0')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0eeb=['../../config/environment','./userSmsQueue.attributes','exports','define','user_has_sms_queues','lodash','util','../../config/logger','api','moment','bluebird','rimraf'];(function(_0x24679e,_0x22d9d7){var _0x291f21=function(_0x329529){while(--_0x329529){_0x24679e['push'](_0x24679e['shift']());}};_0x291f21(++_0x22d9d7);}(_0x0eeb,0xc5));var _0xb0ee=function(_0x2c91e9,_0x2fb965){_0x2c91e9=_0x2c91e9-0x0;var _0x13f0ff=_0x0eeb[_0x2c91e9];return _0x13f0ff;};'use strict';var _=require(_0xb0ee('0x0'));var util=require(_0xb0ee('0x1'));var logger=require(_0xb0ee('0x2'))(_0xb0ee('0x3'));var moment=require(_0xb0ee('0x4'));var BPromise=require(_0xb0ee('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0xb0ee('0x6'));var config=require(_0xb0ee('0x7'));var attributes=require(_0xb0ee('0x8'));module[_0xb0ee('0x9')]=function(_0x209dda,_0x453fa4){return _0x209dda[_0xb0ee('0xa')]('UserSmsQueue',attributes,{'tableName':_0xb0ee('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x6691=['define','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','exports'];(function(_0x36ed48,_0x1ee0d4){var _0x51c63a=function(_0x2d0a40){while(--_0x2d0a40){_0x36ed48['push'](_0x36ed48['shift']());}};_0x51c63a(++_0x1ee0d4);}(_0x6691,0x12d));var _0x1669=function(_0x501510,_0x61caa9){_0x501510=_0x501510-0x0;var _0x1e6ee5=_0x6691[_0x501510];return _0x1e6ee5;};'use strict';var _=require(_0x1669('0x0'));var util=require(_0x1669('0x1'));var logger=require(_0x1669('0x2'))(_0x1669('0x3'));var moment=require(_0x1669('0x4'));var BPromise=require(_0x1669('0x5'));var rp=require(_0x1669('0x6'));var fs=require('fs');var path=require(_0x1669('0x7'));var rimraf=require(_0x1669('0x8'));var config=require(_0x1669('0x9'));var attributes=require('./userSmsQueue.attributes');module[_0x1669('0xa')]=function(_0x1bf2c8,_0x30f92c){return _0x1bf2c8[_0x1669('0xb')]('UserSmsQueue',attributes,{'tableName':'user_has_sms_queues','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf298=['message','result','lodash','util','moment','bluebird','randomstring','ioredis','../../config/logger','rpc','../../config/environment','client','http','request','then','info','UserSmsQueue,\x20%s,\x20%s','request\x20sent','debug','UserSmsQueue,\x20%s,\x20%s,\x20%s','code','error'];(function(_0x205ff6,_0x190a26){var _0xa283ed=function(_0x17fb3c){while(--_0x17fb3c){_0x205ff6['push'](_0x205ff6['shift']());}};_0xa283ed(++_0x190a26);}(_0xf298,0x120));var _0x8f29=function(_0x15162d,_0x3b0180){_0x15162d=_0x15162d-0x0;var _0x3e6d96=_0xf298[_0x15162d];return _0x3e6d96;};'use strict';var _=require(_0x8f29('0x0'));var util=require(_0x8f29('0x1'));var moment=require(_0x8f29('0x2'));var BPromise=require(_0x8f29('0x3'));var rs=require(_0x8f29('0x4'));var fs=require('fs');var Redis=require(_0x8f29('0x5'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0x8f29('0x6'))(_0x8f29('0x7'));var config=require(_0x8f29('0x8'));var jayson=require('jayson/promise');var client=jayson[_0x8f29('0x9')][_0x8f29('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x225d75,_0xf27b50,_0x316477){return new BPromise(function(_0x428809,_0x4ea051){return client[_0x8f29('0xb')](_0x225d75,_0x316477)[_0x8f29('0xc')](function(_0x4f4b4a){logger[_0x8f29('0xd')](_0x8f29('0xe'),_0xf27b50,_0x8f29('0xf'));logger[_0x8f29('0x10')](_0x8f29('0x11'),_0xf27b50,_0x8f29('0xf'),JSON['stringify'](_0x4f4b4a));if(_0x4f4b4a['error']){if(_0x4f4b4a['error'][_0x8f29('0x12')]===0x1f4){logger[_0x8f29('0x13')]('UserSmsQueue,\x20%s,\x20%s',_0xf27b50,_0x4f4b4a['error'][_0x8f29('0x14')]);return _0x4ea051(_0x4f4b4a[_0x8f29('0x13')][_0x8f29('0x14')]);}logger[_0x8f29('0x13')](_0x8f29('0xe'),_0xf27b50,_0x4f4b4a[_0x8f29('0x13')][_0x8f29('0x14')]);return _0x428809(_0x4f4b4a[_0x8f29('0x13')][_0x8f29('0x14')]);}else{logger[_0x8f29('0xd')]('UserSmsQueue,\x20%s,\x20%s',_0xf27b50,_0x8f29('0xf'));_0x428809(_0x4f4b4a[_0x8f29('0x15')][_0x8f29('0x14')]);}})['catch'](function(_0x19b61d){logger['error'](_0x8f29('0xe'),_0xf27b50,_0x19b61d);_0x4ea051(_0x19b61d);});});}
\ No newline at end of file
+var _0x41af=['util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','request','then','UserSmsQueue,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','info','result','catch','lodash'];(function(_0x3e8326,_0x5030cc){var _0x5c1f16=function(_0x3de4b8){while(--_0x3de4b8){_0x3e8326['push'](_0x3e8326['shift']());}};_0x5c1f16(++_0x5030cc);}(_0x41af,0x1b4));var _0xf41a=function(_0x1872fd,_0x334843){_0x1872fd=_0x1872fd-0x0;var _0x5a570c=_0x41af[_0x1872fd];return _0x5a570c;};'use strict';var _=require(_0xf41a('0x0'));var util=require(_0xf41a('0x1'));var moment=require(_0xf41a('0x2'));var BPromise=require(_0xf41a('0x3'));var rs=require(_0xf41a('0x4'));var fs=require('fs');var Redis=require(_0xf41a('0x5'));var db=require(_0xf41a('0x6'))['db'];var utils=require(_0xf41a('0x7'));var logger=require(_0xf41a('0x8'))('rpc');var config=require(_0xf41a('0x9'));var jayson=require(_0xf41a('0xa'));var client=jayson[_0xf41a('0xb')]['http']({'port':0x232a});function respondWithRpcPromise(_0x505ea5,_0x3f606a,_0x570802){return new BPromise(function(_0x55a655,_0x5071ba){return client[_0xf41a('0xc')](_0x505ea5,_0x570802)[_0xf41a('0xd')](function(_0x250de9){logger['info'](_0xf41a('0xe'),_0x3f606a,_0xf41a('0xf'));logger['debug']('UserSmsQueue,\x20%s,\x20%s,\x20%s',_0x3f606a,_0xf41a('0xf'),JSON[_0xf41a('0x10')](_0x250de9));if(_0x250de9[_0xf41a('0x11')]){if(_0x250de9[_0xf41a('0x11')][_0xf41a('0x12')]===0x1f4){logger[_0xf41a('0x11')](_0xf41a('0xe'),_0x3f606a,_0x250de9[_0xf41a('0x11')][_0xf41a('0x13')]);return _0x5071ba(_0x250de9['error'][_0xf41a('0x13')]);}logger[_0xf41a('0x11')](_0xf41a('0xe'),_0x3f606a,_0x250de9[_0xf41a('0x11')][_0xf41a('0x13')]);return _0x55a655(_0x250de9[_0xf41a('0x11')][_0xf41a('0x13')]);}else{logger[_0xf41a('0x14')]('UserSmsQueue,\x20%s,\x20%s',_0x3f606a,_0xf41a('0xf'));_0x55a655(_0x250de9[_0xf41a('0x15')][_0xf41a('0x13')]);}})[_0xf41a('0x16')](function(_0x473b55){logger['error'](_0xf41a('0xe'),_0x3f606a,_0x473b55);_0x5071ba(_0x473b55);});});}
\ 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 _0xc73a=['sequelize','exports','INTEGER'];(function(_0x239daa,_0x383dd5){var _0x134556=function(_0x5ec4e6){while(--_0x5ec4e6){_0x239daa['push'](_0x239daa['shift']());}};_0x134556(++_0x383dd5);}(_0xc73a,0x9c));var _0xac73=function(_0x1f7a6d,_0x5e918f){_0x1f7a6d=_0x1f7a6d-0x0;var _0xdcc0ba=_0xc73a[_0x1f7a6d];return _0xdcc0ba;};'use strict';var Sequelize=require(_0xac73('0x0'));module[_0xac73('0x1')]={'UserId':{'type':Sequelize['INTEGER']},'VoicePrefixId':{'type':Sequelize[_0xac73('0x2')]}};
\ 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(_0x10c4f5,_0x2c5907){var _0x543f7d=function(_0x11f4c8){while(--_0x11f4c8){_0x10c4f5['push'](_0x10c4f5['shift']());}};_0x543f7d(++_0x2c5907);}(_0xa9e0,0x123));var _0x0a9e=function(_0x2160a9,_0x3cbd9e){_0x2160a9=_0x2160a9-0x0;var _0xa88cf7=_0xa9e0[_0x2160a9];return _0xa88cf7;};'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 _0xcb91=['express','Router','../../components/auth/service','../../components/interaction/service','exports','path','connect-timeout'];(function(_0xf3b67c,_0x27473f){var _0x1e734e=function(_0x5478cf){while(--_0x5478cf){_0xf3b67c['push'](_0xf3b67c['shift']());}};_0x1e734e(++_0x27473f);}(_0xcb91,0x1a9));var _0x1cb9=function(_0x1cd47d,_0x55bc75){_0x1cd47d=_0x1cd47d-0x0;var _0x29d52f=_0xcb91[_0x1cd47d];return _0x29d52f;};'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(_0x26f081,_0x4277f3){var _0x4bf032=function(_0x1e49d8){while(--_0x1e49d8){_0x26f081['push'](_0x26f081['shift']());}};_0x4bf032(++_0x4277f3);}(_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 _0xbb0d=['exports','sequelize'];(function(_0x15ea8d,_0x132b40){var _0x17e921=function(_0x51ed14){while(--_0x51ed14){_0x15ea8d['push'](_0x15ea8d['shift']());}};_0x17e921(++_0x132b40);}(_0xbb0d,0x1ad));var _0xdbb0=function(_0x3d950e,_0x388843){_0x3d950e=_0x3d950e-0x0;var _0x22f325=_0xbb0d[_0x3d950e];return _0x22f325;};'use strict';var Sequelize=require(_0xdbb0('0x0'));module[_0xdbb0('0x1')]={'penalty':{'type':Sequelize['INTEGER'],'defaultValue':0x0}};
\ No newline at end of file
+var _0x9933=['sequelize','exports','INTEGER'];(function(_0x3dc908,_0x65e399){var _0x4b4f4a=function(_0x273d61){while(--_0x273d61){_0x3dc908['push'](_0x3dc908['shift']());}};_0x4b4f4a(++_0x65e399);}(_0x9933,0x69));var _0x3993=function(_0x53ccf2,_0x13cb67){_0x53ccf2=_0x53ccf2-0x0;var _0x5a2964=_0x9933[_0x53ccf2];return _0x5a2964;};'use strict';var Sequelize=require(_0x3993('0x0'));module[_0x3993('0x1')]={'penalty':{'type':Sequelize[_0x3993('0x2')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb934=['path','rimraf','./userVoiceQueue.attributes','exports','define','UserVoiceQueue','user_has_voice_queues','lodash','util','../../config/logger','moment','request-promise'];(function(_0x5567cd,_0x35ca37){var _0x559621=function(_0x133b94){while(--_0x133b94){_0x5567cd['push'](_0x5567cd['shift']());}};_0x559621(++_0x35ca37);}(_0xb934,0x187));var _0x4b93=function(_0x55b36d,_0x672249){_0x55b36d=_0x55b36d-0x0;var _0x5e250b=_0xb934[_0x55b36d];return _0x5e250b;};'use strict';var _=require(_0x4b93('0x0'));var util=require(_0x4b93('0x1'));var logger=require(_0x4b93('0x2'))('api');var moment=require(_0x4b93('0x3'));var BPromise=require('bluebird');var rp=require(_0x4b93('0x4'));var fs=require('fs');var path=require(_0x4b93('0x5'));var rimraf=require(_0x4b93('0x6'));var config=require('../../config/environment');var attributes=require(_0x4b93('0x7'));module[_0x4b93('0x8')]=function(_0x55a334,_0x576a88){return _0x55a334[_0x4b93('0x9')](_0x4b93('0xa'),attributes,{'tableName':_0x4b93('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x99a6=['lodash','util','../../config/logger','api','bluebird','path','../../config/environment','./userVoiceQueue.attributes','exports','define','UserVoiceQueue','user_has_voice_queues'];(function(_0x1344d6,_0x2181e6){var _0xf45b24=function(_0x2d90c1){while(--_0x2d90c1){_0x1344d6['push'](_0x1344d6['shift']());}};_0xf45b24(++_0x2181e6);}(_0x99a6,0x1e0));var _0x699a=function(_0x86337d,_0x2b57c3){_0x86337d=_0x86337d-0x0;var _0x22b2c6=_0x99a6[_0x86337d];return _0x22b2c6;};'use strict';var _=require(_0x699a('0x0'));var util=require(_0x699a('0x1'));var logger=require(_0x699a('0x2'))(_0x699a('0x3'));var moment=require('moment');var BPromise=require(_0x699a('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x699a('0x5'));var rimraf=require('rimraf');var config=require(_0x699a('0x6'));var attributes=require(_0x699a('0x7'));module[_0x699a('0x8')]=function(_0x84f7d5,_0x2dd9c3){return _0x84f7d5[_0x699a('0x9')](_0x699a('0xa'),attributes,{'tableName':_0x699a('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0bad=['client','http','request','then','info','UserVoiceQueue,\x20%s,\x20%s','request\x20sent','debug','UserVoiceQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','lodash','util','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise'];(function(_0x38d444,_0x628eb2){var _0xdc8603=function(_0x9d102c){while(--_0x9d102c){_0x38d444['push'](_0x38d444['shift']());}};_0xdc8603(++_0x628eb2);}(_0x0bad,0xa4));var _0xd0ba=function(_0x1c1d46,_0x1aee7a){_0x1c1d46=_0x1c1d46-0x0;var _0xdb61b=_0x0bad[_0x1c1d46];return _0xdb61b;};'use strict';var _=require(_0xd0ba('0x0'));var util=require(_0xd0ba('0x1'));var moment=require(_0xd0ba('0x2'));var BPromise=require(_0xd0ba('0x3'));var rs=require(_0xd0ba('0x4'));var fs=require('fs');var Redis=require(_0xd0ba('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0xd0ba('0x6'));var logger=require(_0xd0ba('0x7'))(_0xd0ba('0x8'));var config=require(_0xd0ba('0x9'));var jayson=require(_0xd0ba('0xa'));var client=jayson[_0xd0ba('0xb')][_0xd0ba('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x169276,_0x5590b5,_0x57118){return new BPromise(function(_0x43e705,_0x4896b5){return client[_0xd0ba('0xd')](_0x169276,_0x57118)[_0xd0ba('0xe')](function(_0xaf6dda){logger[_0xd0ba('0xf')](_0xd0ba('0x10'),_0x5590b5,_0xd0ba('0x11'));logger[_0xd0ba('0x12')](_0xd0ba('0x13'),_0x5590b5,_0xd0ba('0x11'),JSON[_0xd0ba('0x14')](_0xaf6dda));if(_0xaf6dda[_0xd0ba('0x15')]){if(_0xaf6dda[_0xd0ba('0x15')][_0xd0ba('0x16')]===0x1f4){logger[_0xd0ba('0x15')](_0xd0ba('0x10'),_0x5590b5,_0xaf6dda['error']['message']);return _0x4896b5(_0xaf6dda[_0xd0ba('0x15')][_0xd0ba('0x17')]);}logger['error'](_0xd0ba('0x10'),_0x5590b5,_0xaf6dda['error']['message']);return _0x43e705(_0xaf6dda[_0xd0ba('0x15')][_0xd0ba('0x17')]);}else{logger[_0xd0ba('0xf')](_0xd0ba('0x10'),_0x5590b5,_0xd0ba('0x11'));_0x43e705(_0xaf6dda[_0xd0ba('0x18')][_0xd0ba('0x17')]);}})['catch'](function(_0x45fba1){logger[_0xd0ba('0x15')]('UserVoiceQueue,\x20%s,\x20%s',_0x5590b5,_0x45fba1);_0x4896b5(_0x45fba1);});});}
\ No newline at end of file
+var _0x0968=['randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','then','UserVoiceQueue,\x20%s,\x20%s','debug','UserVoiceQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','lodash','util','moment','bluebird'];(function(_0x5cc8f0,_0x793be1){var _0x325c11=function(_0x554268){while(--_0x554268){_0x5cc8f0['push'](_0x5cc8f0['shift']());}};_0x325c11(++_0x793be1);}(_0x0968,0xf8));var _0x8096=function(_0x4746c2,_0x56f939){_0x4746c2=_0x4746c2-0x0;var _0x206d86=_0x0968[_0x4746c2];return _0x206d86;};'use strict';var _=require(_0x8096('0x0'));var util=require(_0x8096('0x1'));var moment=require(_0x8096('0x2'));var BPromise=require(_0x8096('0x3'));var rs=require(_0x8096('0x4'));var fs=require('fs');var Redis=require(_0x8096('0x5'));var db=require(_0x8096('0x6'))['db'];var utils=require(_0x8096('0x7'));var logger=require(_0x8096('0x8'))(_0x8096('0x9'));var config=require('../../config/environment');var jayson=require(_0x8096('0xa'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x19509c,_0x723cf6,_0x579d26){return new BPromise(function(_0x4ec596,_0x1d6fc8){return client['request'](_0x19509c,_0x579d26)[_0x8096('0xb')](function(_0x1cc77b){logger['info'](_0x8096('0xc'),_0x723cf6,'request\x20sent');logger[_0x8096('0xd')](_0x8096('0xe'),_0x723cf6,'request\x20sent',JSON[_0x8096('0xf')](_0x1cc77b));if(_0x1cc77b[_0x8096('0x10')]){if(_0x1cc77b['error'][_0x8096('0x11')]===0x1f4){logger[_0x8096('0x10')]('UserVoiceQueue,\x20%s,\x20%s',_0x723cf6,_0x1cc77b[_0x8096('0x10')][_0x8096('0x12')]);return _0x1d6fc8(_0x1cc77b['error'][_0x8096('0x12')]);}logger['error'](_0x8096('0xc'),_0x723cf6,_0x1cc77b[_0x8096('0x10')][_0x8096('0x12')]);return _0x4ec596(_0x1cc77b[_0x8096('0x10')][_0x8096('0x12')]);}else{logger[_0x8096('0x13')]('UserVoiceQueue,\x20%s,\x20%s',_0x723cf6,'request\x20sent');_0x4ec596(_0x1cc77b[_0x8096('0x14')][_0x8096('0x12')]);}})['catch'](function(_0x6fd5db){logger[_0x8096('0x10')](_0x8096('0xc'),_0x723cf6,_0x6fd5db);_0x1d6fc8(_0x6fd5db);});});}
\ 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(_0x36ea36,_0x544f2a){var _0x419659=function(_0x43a55e){while(--_0x43a55e){_0x36ea36['push'](_0x36ea36['shift']());}};_0x419659(++_0x544f2a);}(_0xd8b0,0xad));var _0x0d8b=function(_0xa464c9,_0x7c86d8){_0xa464c9=_0xa464c9-0x0;var _0x3d73c4=_0xd8b0[_0xa464c9];return _0x3d73c4;};'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 _0x9c44=['express','Router','fs-extra','../../components/auth/service','exports','path','connect-timeout'];(function(_0x5016c9,_0x57cdf0){var _0x5371ee=function(_0x494af9){while(--_0x494af9){_0x5016c9['push'](_0x5016c9['shift']());}};_0x5371ee(++_0x57cdf0);}(_0x9c44,0x178));var _0x49c4=function(_0xfae23b,_0x2be4ba){_0xfae23b=_0xfae23b-0x0;var _0x200640=_0x9c44[_0xfae23b];return _0x200640;};'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 _0xadc2=['queue_interface','sequelize','INTEGER','Required\x20by\x20Asterisk','STRING'];(function(_0x493a93,_0x225014){var _0xb803fe=function(_0x99286d){while(--_0x99286d){_0x493a93['push'](_0x493a93['shift']());}};_0xb803fe(++_0x225014);}(_0xadc2,0x187));var _0x2adc=function(_0x3d2345,_0x1fc9ac){_0x3d2345=_0x3d2345-0x0;var _0x3d1f0f=_0xadc2[_0x3d2345];return _0x3d1f0f;};'use strict';var Sequelize=require(_0x2adc('0x0'));module['exports']={'uniqueid':{'type':Sequelize[_0x2adc('0x1')],'primaryKey':!![],'autoIncrement':!![],'comment':_0x2adc('0x2')},'membername':{'type':Sequelize['STRING'],'allowNull':![],'comment':_0x2adc('0x2')},'UserId':{'type':Sequelize[_0x2adc('0x1')],'allowNull':![]},'queue_name':{'type':Sequelize[_0x2adc('0x3')],'allowNull':![],'unique':'queue_interface','comment':'Required\x20by\x20Asterisk'},'VoiceQueueId':{'type':Sequelize[_0x2adc('0x1')],'allowNull':![]},'interface':{'type':Sequelize['STRING'],'allowNull':![],'unique':_0x2adc('0x4'),'comment':'Required\x20by\x20Asterisk'},'penalty':{'type':Sequelize[_0x2adc('0x1')](0xb),'defaultValue':0x0,'comment':_0x2adc('0x2')},'paused':{'type':Sequelize[_0x2adc('0x1')](0xb),'defaultValue':0x0,'comment':_0x2adc('0x2')}};
\ No newline at end of file
+var _0x9b6d=['queue_interface','exports','INTEGER','Required\x20by\x20Asterisk','STRING'];(function(_0x8a969d,_0x339d9f){var _0x1d8dc7=function(_0x283ec0){while(--_0x283ec0){_0x8a969d['push'](_0x8a969d['shift']());}};_0x1d8dc7(++_0x339d9f);}(_0x9b6d,0x105));var _0xd9b6=function(_0x17cf6a,_0x32452a){_0x17cf6a=_0x17cf6a-0x0;var _0x5ac65f=_0x9b6d[_0x17cf6a];return _0x5ac65f;};'use strict';var Sequelize=require('sequelize');module[_0xd9b6('0x0')]={'uniqueid':{'type':Sequelize[_0xd9b6('0x1')],'primaryKey':!![],'autoIncrement':!![],'comment':_0xd9b6('0x2')},'membername':{'type':Sequelize[_0xd9b6('0x3')],'allowNull':![],'comment':_0xd9b6('0x2')},'UserId':{'type':Sequelize[_0xd9b6('0x1')],'allowNull':![]},'queue_name':{'type':Sequelize[_0xd9b6('0x3')],'allowNull':![],'unique':_0xd9b6('0x4'),'comment':_0xd9b6('0x2')},'VoiceQueueId':{'type':Sequelize[_0xd9b6('0x1')],'allowNull':![]},'interface':{'type':Sequelize[_0xd9b6('0x3')],'allowNull':![],'unique':'queue_interface','comment':_0xd9b6('0x2')},'penalty':{'type':Sequelize[_0xd9b6('0x1')](0xb),'defaultValue':0x0,'comment':_0xd9b6('0x2')},'paused':{'type':Sequelize[_0xd9b6('0x1')](0xb),'defaultValue':0x0,'comment':'Required\x20by\x20Asterisk'}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb550=['hasOwnProperty','hook','exports','events','../../mysqldb','setMaxListeners','save','update','remove','emit'];(function(_0x21bed6,_0x1f7be1){var _0x22b40b=function(_0xf538dd){while(--_0xf538dd){_0x21bed6['push'](_0x21bed6['shift']());}};_0x22b40b(++_0x1f7be1);}(_0xb550,0xa3));var _0x0b55=function(_0x1e4494,_0x4258fe){_0x1e4494=_0x1e4494-0x0;var _0x19c6c8=_0xb550[_0x1e4494];return _0x19c6c8;};'use strict';var EventEmitter=require(_0x0b55('0x0'));var UserVoiceQueueRt=require(_0x0b55('0x1'))['db']['UserVoiceQueueRt'];var UserVoiceQueueRtEvents=new EventEmitter();UserVoiceQueueRtEvents[_0x0b55('0x2')](0x0);var events={'afterCreate':_0x0b55('0x3'),'afterUpdate':_0x0b55('0x4'),'afterDestroy':_0x0b55('0x5')};function emitEvent(_0x242121){return function(_0x58c446,_0x51f0a4,_0x29a043){UserVoiceQueueRtEvents[_0x0b55('0x6')](_0x242121+':'+_0x58c446['id'],_0x58c446);UserVoiceQueueRtEvents[_0x0b55('0x6')](_0x242121,_0x58c446);_0x29a043(null);};}for(var e in events){if(events[_0x0b55('0x7')](e)){var event=events[e];UserVoiceQueueRt[_0x0b55('0x8')](e,emitEvent(event));}}module[_0x0b55('0x9')]=UserVoiceQueueRtEvents;
\ No newline at end of file
+var _0x2029=['setMaxListeners','emit','hook','exports','events','../../mysqldb'];(function(_0x422905,_0x3bce3a){var _0x33dc6c=function(_0x4852c9){while(--_0x4852c9){_0x422905['push'](_0x422905['shift']());}};_0x33dc6c(++_0x3bce3a);}(_0x2029,0x124));var _0x9202=function(_0x443f44,_0x387a15){_0x443f44=_0x443f44-0x0;var _0xe56a57=_0x2029[_0x443f44];return _0xe56a57;};'use strict';var EventEmitter=require(_0x9202('0x0'));var UserVoiceQueueRt=require(_0x9202('0x1'))['db']['UserVoiceQueueRt'];var UserVoiceQueueRtEvents=new EventEmitter();UserVoiceQueueRtEvents[_0x9202('0x2')](0x0);var events={'afterCreate':'save','afterUpdate':'update','afterDestroy':'remove'};function emitEvent(_0x87bf8d){return function(_0x2815d3,_0x21ea9d,_0x1c48b6){UserVoiceQueueRtEvents['emit'](_0x87bf8d+':'+_0x2815d3['id'],_0x2815d3);UserVoiceQueueRtEvents[_0x9202('0x3')](_0x87bf8d,_0x2815d3);_0x1c48b6(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];UserVoiceQueueRt[_0x9202('0x4')](e,emitEvent(event));}}module[_0x9202('0x5')]=UserVoiceQueueRtEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbd6f=['./userVoiceQueueRt.attributes','exports','define','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf'];(function(_0x2baa83,_0x1ecc56){var _0xe45121=function(_0x532bd6){while(--_0x532bd6){_0x2baa83['push'](_0x2baa83['shift']());}};_0xe45121(++_0x1ecc56);}(_0xbd6f,0x147));var _0xfbd6=function(_0xe95191,_0x1513c0){_0xe95191=_0xe95191-0x0;var _0x2845cc=_0xbd6f[_0xe95191];return _0x2845cc;};'use strict';var _=require(_0xfbd6('0x0'));var util=require(_0xfbd6('0x1'));var logger=require(_0xfbd6('0x2'))(_0xfbd6('0x3'));var moment=require(_0xfbd6('0x4'));var BPromise=require(_0xfbd6('0x5'));var rp=require(_0xfbd6('0x6'));var fs=require('fs');var path=require(_0xfbd6('0x7'));var rimraf=require(_0xfbd6('0x8'));var config=require('../../config/environment');var attributes=require(_0xfbd6('0x9'));module[_0xfbd6('0xa')]=function(_0x59a08a,_0x1237cc){return _0x59a08a[_0xfbd6('0xb')]('UserVoiceQueueRt',attributes,{'tableName':'user_has_voice_queues_rt','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xe739=['UserVoiceQueueRt','user_has_voice_queues_rt','lodash','../../config/logger','api','moment','request-promise','path','rimraf','../../config/environment','./userVoiceQueueRt.attributes','exports','define'];(function(_0x34315c,_0x33ebf1){var _0x3605b2=function(_0x4dcc98){while(--_0x4dcc98){_0x34315c['push'](_0x34315c['shift']());}};_0x3605b2(++_0x33ebf1);}(_0xe739,0xc5));var _0x9e73=function(_0x484027,_0x4807da){_0x484027=_0x484027-0x0;var _0x7b4bf7=_0xe739[_0x484027];return _0x7b4bf7;};'use strict';var _=require(_0x9e73('0x0'));var util=require('util');var logger=require(_0x9e73('0x1'))(_0x9e73('0x2'));var moment=require(_0x9e73('0x3'));var BPromise=require('bluebird');var rp=require(_0x9e73('0x4'));var fs=require('fs');var path=require(_0x9e73('0x5'));var rimraf=require(_0x9e73('0x6'));var config=require(_0x9e73('0x7'));var attributes=require(_0x9e73('0x8'));module[_0x9e73('0x9')]=function(_0x506ab7,_0x4d0041){return _0x506ab7[_0x9e73('0xa')](_0x9e73('0xb'),attributes,{'tableName':_0x9e73('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x449f=['socket.io-emitter','./userVoiceQueueRt.socket','register','request','info','UserVoiceQueueRt,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','GetVoiceQueueRtPauses','UserVoiceQueueRt','findAll','options','raw','where','sequelize','COUNT','`paused`\x20=\x201,\x201,\x20null','outboundQueuePauses','then','debug','moment','bluebird','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','client','redis','defaults','localhost'];(function(_0x565ed7,_0x398228){var _0x183ad7=function(_0x5a43d7){while(--_0x5a43d7){_0x565ed7['push'](_0x565ed7['shift']());}};_0x183ad7(++_0x398228);}(_0x449f,0x166));var _0xf449=function(_0x211576,_0xcc41af){_0x211576=_0x211576-0x0;var _0x3ce235=_0x449f[_0x211576];return _0x3ce235;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0xf449('0x0'));var BPromise=require(_0xf449('0x1'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xf449('0x2'));var db=require(_0xf449('0x3'))['db'];var utils=require(_0xf449('0x4'));var logger=require('../../config/logger')(_0xf449('0x5'));var config=require(_0xf449('0x6'));var jayson=require(_0xf449('0x7'));var client=jayson[_0xf449('0x8')]['http']({'port':0x232a});config[_0xf449('0x9')]=_[_0xf449('0xa')](config[_0xf449('0x9')],{'host':_0xf449('0xb'),'port':0x18eb});var socket=require(_0xf449('0xc'))(new Redis(config[_0xf449('0x9')]));require(_0xf449('0xd'))[_0xf449('0xe')](socket);function respondWithRpcPromise(_0x4f6315,_0x2c9455,_0x47eb85){return new BPromise(function(_0x5ecab8,_0x16638e){return client[_0xf449('0xf')](_0x4f6315,_0x47eb85)['then'](function(_0x330b8d){logger[_0xf449('0x10')](_0xf449('0x11'),_0x2c9455,_0xf449('0x12'));logger['debug']('UserVoiceQueueRt,\x20%s,\x20%s,\x20%s',_0x2c9455,'request\x20sent',JSON[_0xf449('0x13')](_0x330b8d));if(_0x330b8d[_0xf449('0x14')]){if(_0x330b8d[_0xf449('0x14')][_0xf449('0x15')]===0x1f4){logger[_0xf449('0x14')]('UserVoiceQueueRt,\x20%s,\x20%s',_0x2c9455,_0x330b8d['error'][_0xf449('0x16')]);return _0x16638e(_0x330b8d[_0xf449('0x14')][_0xf449('0x16')]);}logger['error'](_0xf449('0x11'),_0x2c9455,_0x330b8d[_0xf449('0x14')]['message']);return _0x5ecab8(_0x330b8d[_0xf449('0x14')][_0xf449('0x16')]);}else{logger[_0xf449('0x10')](_0xf449('0x11'),_0x2c9455,_0xf449('0x12'));_0x5ecab8(_0x330b8d[_0xf449('0x17')][_0xf449('0x16')]);}})[_0xf449('0x18')](function(_0x5748a7){logger[_0xf449('0x14')](_0xf449('0x11'),_0x2c9455,_0x5748a7);_0x16638e(_0x5748a7);});});}exports[_0xf449('0x19')]=function(_0xe01fcc){var _0x32c3f4=this;return new Promise(function(_0x2c168a,_0x392336){return db[_0xf449('0x1a')][_0xf449('0x1b')]({'raw':_0xe01fcc[_0xf449('0x1c')]?_0xe01fcc[_0xf449('0x1c')][_0xf449('0x1d')]===undefined?!![]:![]:!![],'where':_0xe01fcc[_0xf449('0x1c')]?_0xe01fcc[_0xf449('0x1c')][_0xf449('0x1e')]||null:null,'attributes':[[db[_0xf449('0x1f')]['fn'](_0xf449('0x20'),db[_0xf449('0x1f')]['fn']('IF',db[_0xf449('0x1f')]['literal'](_0xf449('0x21')))),_0xf449('0x22')]]})[_0xf449('0x23')](function(_0x315d4b){logger['info'](_0xf449('0x19'),_0xe01fcc);logger[_0xf449('0x24')](_0xf449('0x19'),_0xe01fcc,JSON[_0xf449('0x13')](_0x315d4b));_0x2c168a(_0x315d4b);})[_0xf449('0x18')](function(_0x48c89a){logger[_0xf449('0x14')](_0xf449('0x19'),_0x48c89a[_0xf449('0x16')],_0xe01fcc);_0x392336(_0x32c3f4['error'](0x1f4,_0x48c89a['message']));});});};
\ No newline at end of file
+var _0x7bf7=['randomstring','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','http','redis','localhost','socket.io-emitter','info','request\x20sent','debug','UserVoiceQueueRt,\x20%s,\x20%s,\x20%s','stringify','error','UserVoiceQueueRt,\x20%s,\x20%s','message','result','catch','GetVoiceQueueRtPauses','UserVoiceQueueRt','options','raw','where','sequelize','literal','`paused`\x20=\x201,\x201,\x20null','outboundQueuePauses','lodash','util','moment','bluebird'];(function(_0x50478e,_0x404854){var _0x190c0e=function(_0x2a767e){while(--_0x2a767e){_0x50478e['push'](_0x50478e['shift']());}};_0x190c0e(++_0x404854);}(_0x7bf7,0x84));var _0x77bf=function(_0x2f0176,_0x3d323a){_0x2f0176=_0x2f0176-0x0;var _0xffc160=_0x7bf7[_0x2f0176];return _0xffc160;};'use strict';var _=require(_0x77bf('0x0'));var util=require(_0x77bf('0x1'));var moment=require(_0x77bf('0x2'));var BPromise=require(_0x77bf('0x3'));var rs=require(_0x77bf('0x4'));var fs=require('fs');var Redis=require(_0x77bf('0x5'));var db=require(_0x77bf('0x6'))['db'];var utils=require(_0x77bf('0x7'));var logger=require('../../config/logger')(_0x77bf('0x8'));var config=require(_0x77bf('0x9'));var jayson=require(_0x77bf('0xa'));var client=jayson['client'][_0x77bf('0xb')]({'port':0x232a});config[_0x77bf('0xc')]=_['defaults'](config[_0x77bf('0xc')],{'host':_0x77bf('0xd'),'port':0x18eb});var socket=require(_0x77bf('0xe'))(new Redis(config[_0x77bf('0xc')]));require('./userVoiceQueueRt.socket')['register'](socket);function respondWithRpcPromise(_0x24210c,_0x406793,_0x4ea4ea){return new BPromise(function(_0x1e6776,_0x12f962){return client['request'](_0x24210c,_0x4ea4ea)['then'](function(_0x146f9a){logger[_0x77bf('0xf')]('UserVoiceQueueRt,\x20%s,\x20%s',_0x406793,_0x77bf('0x10'));logger[_0x77bf('0x11')](_0x77bf('0x12'),_0x406793,_0x77bf('0x10'),JSON[_0x77bf('0x13')](_0x146f9a));if(_0x146f9a[_0x77bf('0x14')]){if(_0x146f9a[_0x77bf('0x14')]['code']===0x1f4){logger[_0x77bf('0x14')](_0x77bf('0x15'),_0x406793,_0x146f9a[_0x77bf('0x14')][_0x77bf('0x16')]);return _0x12f962(_0x146f9a[_0x77bf('0x14')]['message']);}logger['error'](_0x77bf('0x15'),_0x406793,_0x146f9a[_0x77bf('0x14')][_0x77bf('0x16')]);return _0x1e6776(_0x146f9a['error']['message']);}else{logger[_0x77bf('0xf')](_0x77bf('0x15'),_0x406793,_0x77bf('0x10'));_0x1e6776(_0x146f9a[_0x77bf('0x17')][_0x77bf('0x16')]);}})[_0x77bf('0x18')](function(_0x968c8b){logger[_0x77bf('0x14')](_0x77bf('0x15'),_0x406793,_0x968c8b);_0x12f962(_0x968c8b);});});}exports[_0x77bf('0x19')]=function(_0x4b93e4){var _0x3d82de=this;return new Promise(function(_0x2cc87b,_0x5b561d){return db[_0x77bf('0x1a')]['findAll']({'raw':_0x4b93e4[_0x77bf('0x1b')]?_0x4b93e4[_0x77bf('0x1b')][_0x77bf('0x1c')]===undefined?!![]:![]:!![],'where':_0x4b93e4[_0x77bf('0x1b')]?_0x4b93e4[_0x77bf('0x1b')][_0x77bf('0x1d')]||null:null,'attributes':[[db['sequelize']['fn']('COUNT',db['sequelize']['fn']('IF',db[_0x77bf('0x1e')][_0x77bf('0x1f')](_0x77bf('0x20')))),_0x77bf('0x21')]]})['then'](function(_0x1e61d7){logger[_0x77bf('0xf')](_0x77bf('0x19'),_0x4b93e4);logger[_0x77bf('0x11')](_0x77bf('0x19'),_0x4b93e4,JSON[_0x77bf('0x13')](_0x1e61d7));_0x2cc87b(_0x1e61d7);})[_0x77bf('0x18')](function(_0x4d4f06){logger[_0x77bf('0x14')](_0x77bf('0x19'),_0x4d4f06[_0x77bf('0x16')],_0x4b93e4);_0x5b561d(_0x3d82de['error'](0x1f4,_0x4d4f06[_0x77bf('0x16')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x254a=['emit','register','./userVoiceQueueRt.events','save','remove'];(function(_0xef8146,_0x459c34){var _0x5a6cb0=function(_0x2f84ec){while(--_0x2f84ec){_0xef8146['push'](_0xef8146['shift']());}};_0x5a6cb0(++_0x459c34);}(_0x254a,0x138));var _0xa254=function(_0x30a2b4,_0x2fe7b3){_0x30a2b4=_0x30a2b4-0x0;var _0x1b2bef=_0x254a[_0x30a2b4];return _0x1b2bef;};'use strict';var UserVoiceQueueRtEvents=require(_0xa254('0x0'));var events=[_0xa254('0x1'),_0xa254('0x2'),'update'];function createListener(_0xdd386c,_0x3e56d3){return function(_0x34467a){_0x3e56d3[_0xa254('0x3')](_0xdd386c,_0x34467a);};}function removeListener(_0x500e29,_0x8fbfaf){return function(){UserVoiceQueueRtEvents['removeListener'](_0x500e29,_0x8fbfaf);};}exports[_0xa254('0x4')]=function(_0x3d5886){for(var _0x1201ae=0x0,_0x597d72=events['length'];_0x1201ae<_0x597d72;_0x1201ae++){var _0xaeed42=events[_0x1201ae];var _0x352a44=createListener('userVoiceQueueRt:'+_0xaeed42,_0x3d5886);UserVoiceQueueRtEvents['on'](_0xaeed42,_0x352a44);}};
\ No newline at end of file
+var _0x27a8=['removeListener','register','length','userVoiceQueueRt:','remove','update','emit'];(function(_0x169120,_0x1580a8){var _0x3f7068=function(_0x552b21){while(--_0x552b21){_0x169120['push'](_0x169120['shift']());}};_0x3f7068(++_0x1580a8);}(_0x27a8,0x170));var _0x827a=function(_0x477c62,_0x542ea5){_0x477c62=_0x477c62-0x0;var _0x419640=_0x27a8[_0x477c62];return _0x419640;};'use strict';var UserVoiceQueueRtEvents=require('./userVoiceQueueRt.events');var events=['save',_0x827a('0x0'),_0x827a('0x1')];function createListener(_0x7dc5a2,_0xbd0964){return function(_0x252d74){_0xbd0964[_0x827a('0x2')](_0x7dc5a2,_0x252d74);};}function removeListener(_0x18cf5e,_0x215b35){return function(){UserVoiceQueueRtEvents[_0x827a('0x3')](_0x18cf5e,_0x215b35);};}exports[_0x827a('0x4')]=function(_0x19d10d){for(var _0x61767e=0x0,_0xa0df3c=events[_0x827a('0x5')];_0x61767e<_0xa0df3c;_0x61767e++){var _0x2e20da=events[_0x61767e];var _0x2bd7f3=createListener(_0x827a('0x6')+_0x2e20da,_0x19d10d);UserVoiceQueueRtEvents['on'](_0x2e20da,_0x2bd7f3);}};
\ 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(_0x534deb,_0x21de0c){var _0x1b3238=function(_0x5a5406){while(--_0x5a5406){_0x534deb['push'](_0x534deb['shift']());}};_0x1b3238(++_0x21de0c);}(_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 _0xe706=['../../components/interaction/service','../../config/environment','exports','multer','util','path','express','Router','fs-extra','../../components/auth/service'];(function(_0x374aec,_0x31488c){var _0x3b6dc4=function(_0x3641f7){while(--_0x3641f7){_0x374aec['push'](_0x374aec['shift']());}};_0x3b6dc4(++_0x31488c);}(_0xe706,0xa3));var _0x6e70=function(_0x146f3a,_0x373e03){_0x146f3a=_0x146f3a-0x0;var _0x4ebd8a=_0xe706[_0x146f3a];return _0x4ebd8a;};'use strict';var multer=require(_0x6e70('0x0'));var util=require(_0x6e70('0x1'));var path=require(_0x6e70('0x2'));var timeout=require('connect-timeout');var express=require(_0x6e70('0x3'));var router=express[_0x6e70('0x4')]();var fs_extra=require(_0x6e70('0x5'));var auth=require(_0x6e70('0x6'));var interaction=require(_0x6e70('0x7'));var config=require(_0x6e70('0x8'));module[_0x6e70('0x9')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7167=['exports','INTEGER','sequelize'];(function(_0xcbcf85,_0x58d48b){var _0x1b5e10=function(_0x55f6b7){while(--_0x55f6b7){_0xcbcf85['push'](_0xcbcf85['shift']());}};_0x1b5e10(++_0x58d48b);}(_0x7167,0xaa));var _0x7716=function(_0x11d08e,_0x1cd670){_0x11d08e=_0x11d08e-0x0;var _0x19c8cb=_0x7167[_0x11d08e];return _0x19c8cb;};'use strict';var Sequelize=require(_0x7716('0x0'));module[_0x7716('0x1')]={'penalty':{'type':Sequelize[_0x7716('0x2')],'defaultValue':0x0}};
\ No newline at end of file
+var _0xf3d1=['exports','INTEGER'];(function(_0x14ad2c,_0x3f7826){var _0x511d73=function(_0x26facd){while(--_0x26facd){_0x14ad2c['push'](_0x14ad2c['shift']());}};_0x511d73(++_0x3f7826);}(_0xf3d1,0x1da));var _0x1f3d=function(_0x35329c,_0x356496){_0x35329c=_0x35329c-0x0;var _0x57a5d8=_0xf3d1[_0x35329c];return _0x57a5d8;};'use strict';var Sequelize=require('sequelize');module[_0x1f3d('0x0')]={'penalty':{'type':Sequelize[_0x1f3d('0x1')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbfd4=['../../config/logger','api','moment','rimraf','../../config/environment','exports','define','user_has_whatsapp_queues','lodash','util'];(function(_0xa464c9,_0x7c86d8){var _0x3d73c4=function(_0x5c2056){while(--_0x5c2056){_0xa464c9['push'](_0xa464c9['shift']());}};_0x3d73c4(++_0x7c86d8);}(_0xbfd4,0x18e));var _0x4bfd=function(_0x11df96,_0x4feb2d){_0x11df96=_0x11df96-0x0;var _0x3ed49d=_0xbfd4[_0x11df96];return _0x3ed49d;};'use strict';var _=require(_0x4bfd('0x0'));var util=require(_0x4bfd('0x1'));var logger=require(_0x4bfd('0x2'))(_0x4bfd('0x3'));var moment=require(_0x4bfd('0x4'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0x4bfd('0x5'));var config=require(_0x4bfd('0x6'));var attributes=require('./userWhatsappQueue.attributes');module[_0x4bfd('0x7')]=function(_0x242129,_0x32935a){return _0x242129[_0x4bfd('0x8')]('UserWhatsappQueue',attributes,{'tableName':_0x4bfd('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x2398=['moment','bluebird','./userWhatsappQueue.attributes','exports','define','UserWhatsappQueue','user_has_whatsapp_queues','../../config/logger','api'];(function(_0x8b3b4c,_0x2b70ae){var _0xd55f4d=function(_0x4f4e5c){while(--_0x4f4e5c){_0x8b3b4c['push'](_0x8b3b4c['shift']());}};_0xd55f4d(++_0x2b70ae);}(_0x2398,0x1db));var _0x8239=function(_0x50aad7,_0x5275aa){_0x50aad7=_0x50aad7-0x0;var _0x3d6130=_0x2398[_0x50aad7];return _0x3d6130;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x8239('0x0'))(_0x8239('0x1'));var moment=require(_0x8239('0x2'));var BPromise=require(_0x8239('0x3'));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(_0x8239('0x4'));module[_0x8239('0x5')]=function(_0x18bfef,_0x5120df){return _0x18bfef[_0x8239('0x6')](_0x8239('0x7'),attributes,{'tableName':_0x8239('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x47d8=['then','info','UserWhatsappQueue,\x20%s,\x20%s','request\x20sent','debug','UserWhatsappQueue,\x20%s,\x20%s,\x20%s','error','code','message','result','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','jayson/promise','client','http','request'];(function(_0x122ef9,_0x451d2a){var _0x42fba0=function(_0x17c9d3){while(--_0x17c9d3){_0x122ef9['push'](_0x122ef9['shift']());}};_0x42fba0(++_0x451d2a);}(_0x47d8,0x18b));var _0x847d=function(_0x1009a5,_0x15d5d9){_0x1009a5=_0x1009a5-0x0;var _0x1adb64=_0x47d8[_0x1009a5];return _0x1adb64;};'use strict';var _=require(_0x847d('0x0'));var util=require(_0x847d('0x1'));var moment=require(_0x847d('0x2'));var BPromise=require(_0x847d('0x3'));var rs=require(_0x847d('0x4'));var fs=require('fs');var Redis=require(_0x847d('0x5'));var db=require(_0x847d('0x6'))['db'];var utils=require('../../config/utils');var logger=require(_0x847d('0x7'))(_0x847d('0x8'));var config=require('../../config/environment');var jayson=require(_0x847d('0x9'));var client=jayson[_0x847d('0xa')][_0x847d('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x23a05b,_0x3737c3,_0x319585){return new BPromise(function(_0x1370bf,_0x1a83c8){return client[_0x847d('0xc')](_0x23a05b,_0x319585)[_0x847d('0xd')](function(_0x1d5541){logger[_0x847d('0xe')](_0x847d('0xf'),_0x3737c3,_0x847d('0x10'));logger[_0x847d('0x11')](_0x847d('0x12'),_0x3737c3,_0x847d('0x10'),JSON['stringify'](_0x1d5541));if(_0x1d5541[_0x847d('0x13')]){if(_0x1d5541[_0x847d('0x13')][_0x847d('0x14')]===0x1f4){logger[_0x847d('0x13')](_0x847d('0xf'),_0x3737c3,_0x1d5541['error'][_0x847d('0x15')]);return _0x1a83c8(_0x1d5541['error']['message']);}logger[_0x847d('0x13')]('UserWhatsappQueue,\x20%s,\x20%s',_0x3737c3,_0x1d5541[_0x847d('0x13')][_0x847d('0x15')]);return _0x1370bf(_0x1d5541[_0x847d('0x13')]['message']);}else{logger['info'](_0x847d('0xf'),_0x3737c3,_0x847d('0x10'));_0x1370bf(_0x1d5541[_0x847d('0x16')][_0x847d('0x15')]);}})[_0x847d('0x17')](function(_0x32cf06){logger[_0x847d('0x13')]('UserWhatsappQueue,\x20%s,\x20%s',_0x3737c3,_0x32cf06);_0x1a83c8(_0x32cf06);});});}
\ No newline at end of file
+var _0xc82c=['../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','then','info','UserWhatsappQueue,\x20%s,\x20%s','debug','request\x20sent','stringify','error','message','result','catch','lodash','util','moment','randomstring','ioredis','../../mysqldb'];(function(_0x3ed25d,_0x6c37b2){var _0x5e0998=function(_0x3e53a4){while(--_0x3e53a4){_0x3ed25d['push'](_0x3ed25d['shift']());}};_0x5e0998(++_0x6c37b2);}(_0xc82c,0x1c6));var _0xcc82=function(_0x3e5086,_0x48f4a2){_0x3e5086=_0x3e5086-0x0;var _0xfeb102=_0xc82c[_0x3e5086];return _0xfeb102;};'use strict';var _=require(_0xcc82('0x0'));var util=require(_0xcc82('0x1'));var moment=require(_0xcc82('0x2'));var BPromise=require('bluebird');var rs=require(_0xcc82('0x3'));var fs=require('fs');var Redis=require(_0xcc82('0x4'));var db=require(_0xcc82('0x5'))['db'];var utils=require(_0xcc82('0x6'));var logger=require(_0xcc82('0x7'))(_0xcc82('0x8'));var config=require(_0xcc82('0x9'));var jayson=require(_0xcc82('0xa'));var client=jayson[_0xcc82('0xb')][_0xcc82('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x3fedd8,_0x5d25ca,_0x485a0a){return new BPromise(function(_0x427093,_0x299253){return client['request'](_0x3fedd8,_0x485a0a)[_0xcc82('0xd')](function(_0x42eb9e){logger[_0xcc82('0xe')](_0xcc82('0xf'),_0x5d25ca,'request\x20sent');logger[_0xcc82('0x10')]('UserWhatsappQueue,\x20%s,\x20%s,\x20%s',_0x5d25ca,_0xcc82('0x11'),JSON[_0xcc82('0x12')](_0x42eb9e));if(_0x42eb9e[_0xcc82('0x13')]){if(_0x42eb9e[_0xcc82('0x13')]['code']===0x1f4){logger[_0xcc82('0x13')](_0xcc82('0xf'),_0x5d25ca,_0x42eb9e[_0xcc82('0x13')]['message']);return _0x299253(_0x42eb9e[_0xcc82('0x13')][_0xcc82('0x14')]);}logger['error'](_0xcc82('0xf'),_0x5d25ca,_0x42eb9e[_0xcc82('0x13')][_0xcc82('0x14')]);return _0x427093(_0x42eb9e[_0xcc82('0x13')]['message']);}else{logger[_0xcc82('0xe')]('UserWhatsappQueue,\x20%s,\x20%s',_0x5d25ca,'request\x20sent');_0x427093(_0x42eb9e[_0xcc82('0x15')][_0xcc82('0x14')]);}})[_0xcc82('0x16')](function(_0xc4f565){logger[_0xcc82('0x13')](_0xcc82('0xf'),_0x5d25ca,_0xc4f565);_0x299253(_0xc4f565);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe77f=['fs-extra','../../components/auth/service','../../config/environment','./variable.controller','get','isAuthenticated','index','show','post','create','put','update','delete','/:id','exports','multer','util','connect-timeout','express'];(function(_0x443020,_0x1690c5){var _0x13a324=function(_0x534ff2){while(--_0x534ff2){_0x443020['push'](_0x443020['shift']());}};_0x13a324(++_0x1690c5);}(_0xe77f,0xba));var _0xfe77=function(_0x279db3,_0x7d3dca){_0x279db3=_0x279db3-0x0;var _0x547d99=_0xe77f[_0x279db3];return _0x547d99;};'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('0xc')]('/',auth[_0xfe77('0x9')](),controller[_0xfe77('0xd')]);router[_0xfe77('0xe')]('/:id',auth['isAuthenticated'](),controller[_0xfe77('0xf')]);router[_0xfe77('0x10')](_0xfe77('0x11'),auth[_0xfe77('0x9')](),controller['destroy']);module[_0xfe77('0x12')]=router;
\ No newline at end of file
+var _0xac65=['isAuthenticated','index','get','/:id','show','post','create','put','update','delete','destroy','exports','multer','util','path','express','Router','fs-extra','../../components/interaction/service','../../config/environment','./variable.controller'];(function(_0x2084b5,_0x58373a){var _0x55c8ea=function(_0x27a504){while(--_0x27a504){_0x2084b5['push'](_0x2084b5['shift']());}};_0x55c8ea(++_0x58373a);}(_0xac65,0x11d));var _0x5ac6=function(_0x26a0ed,_0x76a8eb){_0x26a0ed=_0x26a0ed-0x0;var _0xedb011=_0xac65[_0x26a0ed];return _0xedb011;};'use strict';var multer=require(_0x5ac6('0x0'));var util=require(_0x5ac6('0x1'));var path=require(_0x5ac6('0x2'));var timeout=require('connect-timeout');var express=require(_0x5ac6('0x3'));var router=express[_0x5ac6('0x4')]();var fs_extra=require(_0x5ac6('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0x5ac6('0x6'));var config=require(_0x5ac6('0x7'));var controller=require(_0x5ac6('0x8'));router['get']('/',auth[_0x5ac6('0x9')](),controller[_0x5ac6('0xa')]);router[_0x5ac6('0xb')](_0x5ac6('0xc'),auth[_0x5ac6('0x9')](),controller[_0x5ac6('0xd')]);router[_0x5ac6('0xe')]('/',auth[_0x5ac6('0x9')](),controller[_0x5ac6('0xf')]);router[_0x5ac6('0x10')](_0x5ac6('0xc'),auth[_0x5ac6('0x9')](),controller[_0x5ac6('0x11')]);router[_0x5ac6('0x12')](_0x5ac6('0xc'),auth[_0x5ac6('0x9')](),controller[_0x5ac6('0x13')]);module[_0x5ac6('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x17da=['STRING','name','sequelize','exports'];(function(_0x3a7447,_0x2df861){var _0x372e7f=function(_0x2c3094){while(--_0x2c3094){_0x3a7447['push'](_0x3a7447['shift']());}};_0x372e7f(++_0x2df861);}(_0x17da,0x18a));var _0xa17d=function(_0x1a68d9,_0x4c21f6){_0x1a68d9=_0x1a68d9-0x0;var _0x4b741a=_0x17da[_0x1a68d9];return _0x4b741a;};'use strict';var Sequelize=require(_0xa17d('0x0'));module[_0xa17d('0x1')]={'name':{'type':Sequelize[_0xa17d('0x2')],'unique':_0xa17d('0x3'),'allowNull':![],'validate':{'notEmpty':!![]}},'description':{'type':Sequelize[_0xa17d('0x2')]}};
\ No newline at end of file
+var _0xda42=['STRING','name','sequelize'];(function(_0x7a3cc,_0x1c500e){var _0x151a87=function(_0x353c9c){while(--_0x353c9c){_0x7a3cc['push'](_0x7a3cc['shift']());}};_0x151a87(++_0x1c500e);}(_0xda42,0x155));var _0x2da4=function(_0xba859c,_0x4f41fe){_0xba859c=_0xba859c-0x0;var _0x55cd4a=_0xda42[_0xba859c];return _0x55cd4a;};'use strict';var Sequelize=require(_0x2da4('0x0'));module['exports']={'name':{'type':Sequelize[_0x2da4('0x1')],'unique':_0x2da4('0x2'),'allowNull':![],'validate':{'notEmpty':!![]}},'description':{'type':Sequelize[_0x2da4('0x1')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe7d8=['offset','limit','undefined','set','Content-Range','json','apply','reject','save','update','then','Variables','UserProfileResource','destroy','stack','name','map','Variable','rawAttributes','fieldName','key','model','query','keys','filters','attributes','fields','nolimit','order','sort','where','pick','merge','options','count','include','catch','show','params','intersection','length','find','create','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','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/logger','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','end'];(function(_0x276cc9,_0x17774c){var _0x31ac6b=function(_0x3197da){while(--_0x3197da){_0x276cc9['push'](_0x276cc9['shift']());}};_0x31ac6b(++_0x17774c);}(_0xe7d8,0x12d));var _0x8e7d=function(_0x3bd52b,_0xbbc735){_0x3bd52b=_0x3bd52b-0x0;var _0x1e5b89=_0xe7d8[_0x3bd52b];return _0x1e5b89;};'use strict';var emlformat=require(_0x8e7d('0x0'));var rimraf=require(_0x8e7d('0x1'));var zipdir=require(_0x8e7d('0x2'));var jsonpatch=require(_0x8e7d('0x3'));var rp=require(_0x8e7d('0x4'));var moment=require(_0x8e7d('0x5'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x8e7d('0x6'));var path=require(_0x8e7d('0x7'));var sox=require(_0x8e7d('0x8'));var csv=require(_0x8e7d('0x9'));var ejs=require(_0x8e7d('0xa'));var fs=require('fs');var fs_extra=require(_0x8e7d('0xb'));var _=require(_0x8e7d('0xc'));var squel=require(_0x8e7d('0xd'));var crypto=require(_0x8e7d('0xe'));var jsforce=require(_0x8e7d('0xf'));var deskjs=require(_0x8e7d('0x10'));var toCsv=require(_0x8e7d('0x9'));var querystring=require(_0x8e7d('0x11'));var Papa=require(_0x8e7d('0x12'));var Redis=require(_0x8e7d('0x13'));var authService=require(_0x8e7d('0x14'));var qs=require(_0x8e7d('0x15'));var as=require(_0x8e7d('0x16'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x8e7d('0x17'))(_0x8e7d('0x18'));var utils=require(_0x8e7d('0x19'));var config=require(_0x8e7d('0x1a'));var licenseUtil=require(_0x8e7d('0x1b'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x75fab0,_0x373671){_0x373671=_0x373671||0xcc;return function(_0x1ba213){if(_0x1ba213){return _0x75fab0[_0x8e7d('0x1c')](_0x373671);}return _0x75fab0[_0x8e7d('0x1d')](_0x373671)[_0x8e7d('0x1e')]();};}function respondWithResult(_0x369f64,_0x5a0179){_0x5a0179=_0x5a0179||0xc8;return function(_0x3278f4){if(_0x3278f4){return _0x369f64[_0x8e7d('0x1d')](_0x5a0179)['json'](_0x3278f4);}};}function respondWithFilteredResult(_0x1aa76f,_0x495634){return function(_0x1d0c86){if(_0x1d0c86){var _0x1d3754=typeof _0x495634[_0x8e7d('0x1f')]==='undefined'&&typeof _0x495634[_0x8e7d('0x20')]===_0x8e7d('0x21');var _0x12d216=_0x1d0c86['count'];var _0x53e903=_0x1d3754?0x0:_0x495634[_0x8e7d('0x1f')];var _0x69bac3=_0x1d3754?_0x1d0c86['count']:_0x495634[_0x8e7d('0x1f')]+_0x495634[_0x8e7d('0x20')];var _0x10fa5e;if(_0x69bac3>=_0x12d216){_0x69bac3=_0x12d216;_0x10fa5e=0xc8;}else{_0x10fa5e=0xce;}_0x1aa76f[_0x8e7d('0x1d')](_0x10fa5e);return _0x1aa76f[_0x8e7d('0x22')](_0x8e7d('0x23'),_0x53e903+'-'+_0x69bac3+'/'+_0x12d216)[_0x8e7d('0x24')](_0x1d0c86);}return null;};}function patchUpdates(_0x40a080){return function(_0x2b82dc){try{jsonpatch[_0x8e7d('0x25')](_0x2b82dc,_0x40a080,!![]);}catch(_0x26c9c7){return BPromise[_0x8e7d('0x26')](_0x26c9c7);}return _0x2b82dc[_0x8e7d('0x27')]();};}function saveUpdates(_0xe112b9,_0xb580eb){return function(_0x1e849b){if(_0x1e849b){return _0x1e849b[_0x8e7d('0x28')](_0xe112b9)[_0x8e7d('0x29')](function(_0x3a28da){return _0x3a28da;});}return null;};}function removeEntity(_0xb7f89e,_0x247375){return function(_0xb8d990){if(_0xb8d990){return _0xb8d990['destroy']()[_0x8e7d('0x29')](function(){var _0x338260=_0xb8d990['get']({'plain':!![]});var _0x3c89be=_0x8e7d('0x2a');return db[_0x8e7d('0x2b')][_0x8e7d('0x2c')]({'where':{'type':_0x3c89be,'resourceId':_0x338260['id']}})[_0x8e7d('0x29')](function(){return _0xb8d990;});})[_0x8e7d('0x29')](function(){_0xb7f89e[_0x8e7d('0x1d')](0xcc)[_0x8e7d('0x1e')]();});}};}function handleEntityNotFound(_0x3ed9c9,_0x123a0b){return function(_0x23e343){if(!_0x23e343){_0x3ed9c9[_0x8e7d('0x1c')](0x194);}return _0x23e343;};}function handleError(_0x2f750a,_0x1edc66){_0x1edc66=_0x1edc66||0x1f4;return function(_0x58ed30){logger['error'](_0x58ed30[_0x8e7d('0x2d')]);if(_0x58ed30[_0x8e7d('0x2e')]){delete _0x58ed30['name'];}_0x2f750a[_0x8e7d('0x1d')](_0x1edc66)['send'](_0x58ed30);};}exports['index']=function(_0x2c4ddb,_0x324501){var _0x48f6f4={},_0x487f22={},_0x59fea2={'count':0x0,'rows':[]};var _0x398c5a=_[_0x8e7d('0x2f')](db[_0x8e7d('0x30')][_0x8e7d('0x31')],function(_0x38af83){return{'name':_0x38af83[_0x8e7d('0x32')],'type':_0x38af83['type'][_0x8e7d('0x33')]};});_0x487f22[_0x8e7d('0x34')]=_[_0x8e7d('0x2f')](_0x398c5a,'name');_0x487f22[_0x8e7d('0x35')]=_[_0x8e7d('0x36')](_0x2c4ddb[_0x8e7d('0x35')]);_0x487f22[_0x8e7d('0x37')]=_['intersection'](_0x487f22[_0x8e7d('0x34')],_0x487f22[_0x8e7d('0x35')]);_0x48f6f4[_0x8e7d('0x38')]=_['intersection'](_0x487f22[_0x8e7d('0x34')],qs[_0x8e7d('0x39')](_0x2c4ddb[_0x8e7d('0x35')][_0x8e7d('0x39')]));_0x48f6f4[_0x8e7d('0x38')]=_0x48f6f4[_0x8e7d('0x38')]['length']?_0x48f6f4[_0x8e7d('0x38')]:_0x487f22[_0x8e7d('0x34')];if(!_0x2c4ddb['query']['hasOwnProperty'](_0x8e7d('0x3a'))){_0x48f6f4[_0x8e7d('0x20')]=qs[_0x8e7d('0x20')](_0x2c4ddb[_0x8e7d('0x35')][_0x8e7d('0x20')]);_0x48f6f4[_0x8e7d('0x1f')]=qs['offset'](_0x2c4ddb['query'][_0x8e7d('0x1f')]);}_0x48f6f4[_0x8e7d('0x3b')]=qs[_0x8e7d('0x3c')](_0x2c4ddb['query'][_0x8e7d('0x3c')]);_0x48f6f4[_0x8e7d('0x3d')]=qs[_0x8e7d('0x37')](_[_0x8e7d('0x3e')](_0x2c4ddb['query'],_0x487f22['filters']),_0x398c5a);if(_0x2c4ddb['query']['filter']){_0x48f6f4[_0x8e7d('0x3d')]=_[_0x8e7d('0x3f')](_0x48f6f4['where'],{'$or':_[_0x8e7d('0x2f')](_0x398c5a,function(_0x24570b){if(_0x24570b['type']!=='VIRTUAL'){var _0x20fa53={};_0x20fa53[_0x24570b[_0x8e7d('0x2e')]]={'$like':'%'+_0x2c4ddb[_0x8e7d('0x35')]['filter']+'%'};return _0x20fa53;}})});}_0x48f6f4=_[_0x8e7d('0x3f')]({},_0x48f6f4,_0x2c4ddb[_0x8e7d('0x40')]);var _0x52a7f8={'where':_0x48f6f4[_0x8e7d('0x3d')]};return db['Variable']['count'](_0x52a7f8)[_0x8e7d('0x29')](function(_0x1f9abe){_0x59fea2[_0x8e7d('0x41')]=_0x1f9abe;if(_0x2c4ddb[_0x8e7d('0x35')]['includeAll']){_0x48f6f4[_0x8e7d('0x42')]=[{'all':!![]}];}return db[_0x8e7d('0x30')]['findAll'](_0x48f6f4);})[_0x8e7d('0x29')](function(_0x4cf6ae){_0x59fea2['rows']=_0x4cf6ae;return _0x59fea2;})[_0x8e7d('0x29')](respondWithFilteredResult(_0x324501,_0x48f6f4))[_0x8e7d('0x43')](handleError(_0x324501,null));};exports[_0x8e7d('0x44')]=function(_0x27db92,_0x2dee5e){var _0xf15d4d={'raw':!![],'where':{'id':_0x27db92[_0x8e7d('0x45')]['id']}},_0x107591={};_0x107591[_0x8e7d('0x34')]=_['keys'](db[_0x8e7d('0x30')][_0x8e7d('0x31')]);_0x107591[_0x8e7d('0x35')]=_[_0x8e7d('0x36')](_0x27db92[_0x8e7d('0x35')]);_0x107591[_0x8e7d('0x37')]=_[_0x8e7d('0x46')](_0x107591[_0x8e7d('0x34')],_0x107591[_0x8e7d('0x35')]);_0xf15d4d[_0x8e7d('0x38')]=_[_0x8e7d('0x46')](_0x107591[_0x8e7d('0x34')],qs[_0x8e7d('0x39')](_0x27db92[_0x8e7d('0x35')][_0x8e7d('0x39')]));_0xf15d4d[_0x8e7d('0x38')]=_0xf15d4d[_0x8e7d('0x38')][_0x8e7d('0x47')]?_0xf15d4d[_0x8e7d('0x38')]:_0x107591[_0x8e7d('0x34')];if(_0x27db92[_0x8e7d('0x35')]['includeAll']){_0xf15d4d['include']=[{'all':!![]}];}_0xf15d4d=_[_0x8e7d('0x3f')]({},_0xf15d4d,_0x27db92[_0x8e7d('0x40')]);return db[_0x8e7d('0x30')][_0x8e7d('0x48')](_0xf15d4d)[_0x8e7d('0x29')](handleEntityNotFound(_0x2dee5e,null))[_0x8e7d('0x29')](respondWithResult(_0x2dee5e,null))[_0x8e7d('0x43')](handleError(_0x2dee5e,null));};exports[_0x8e7d('0x49')]=function(_0x433436,_0x14e31d){return db['Variable'][_0x8e7d('0x49')](_0x433436['body'],{})['then'](function(_0x1746be){var _0x1c7f96=_0x433436[_0x8e7d('0x4a')][_0x8e7d('0x4b')]({'plain':!![]});if(!_0x1c7f96)throw new Error(_0x8e7d('0x4c'));if(_0x1c7f96[_0x8e7d('0x4d')]===_0x8e7d('0x4a')){var _0x4fa87c=_0x1746be['get']({'plain':!![]});var _0x19a7d3=_0x8e7d('0x2a');return db[_0x8e7d('0x4e')]['find']({'where':{'name':_0x19a7d3,'userProfileId':_0x1c7f96['userProfileId']},'raw':!![]})[_0x8e7d('0x29')](function(_0x798841){if(_0x798841&&_0x798841[_0x8e7d('0x4f')]===0x0){return db[_0x8e7d('0x2b')][_0x8e7d('0x49')]({'name':_0x4fa87c[_0x8e7d('0x2e')],'resourceId':_0x4fa87c['id'],'type':_0x798841[_0x8e7d('0x2e')],'sectionId':_0x798841['id']},{})[_0x8e7d('0x29')](function(){return _0x1746be;});}else{return _0x1746be;}})[_0x8e7d('0x43')](function(_0x2c1bc1){logger[_0x8e7d('0x50')](_0x8e7d('0x51'),_0x2c1bc1);throw _0x2c1bc1;});}return _0x1746be;})[_0x8e7d('0x29')](respondWithResult(_0x14e31d,0xc9))[_0x8e7d('0x43')](handleError(_0x14e31d,null));};exports[_0x8e7d('0x28')]=function(_0x424984,_0xdc9314){if(_0x424984[_0x8e7d('0x52')]['id']){delete _0x424984[_0x8e7d('0x52')]['id'];}return db['Variable'][_0x8e7d('0x48')]({'where':{'id':_0x424984[_0x8e7d('0x45')]['id']}})[_0x8e7d('0x29')](handleEntityNotFound(_0xdc9314,null))['then'](saveUpdates(_0x424984['body'],null))['then'](respondWithResult(_0xdc9314,null))[_0x8e7d('0x43')](handleError(_0xdc9314,null));};exports['destroy']=function(_0x51c15e,_0x3f0b17){return db[_0x8e7d('0x30')][_0x8e7d('0x48')]({'where':{'id':_0x51c15e[_0x8e7d('0x45')]['id']}})[_0x8e7d('0x29')](handleEntityNotFound(_0x3f0b17,null))[_0x8e7d('0x29')](removeEntity(_0x3f0b17,null))[_0x8e7d('0x43')](handleError(_0x3f0b17,null));};
\ No newline at end of file
+var _0x5e91=['model','query','keys','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','filter','merge','type','VIRTUAL','Variable','includeAll','include','rows','catch','show','params','intersection','options','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','get','UserProfileSection','userProfileId','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','body','find','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','apply','reject','then','destroy','Variables','UserProfileResource','name','send','map','rawAttributes','key'];(function(_0x27bfd5,_0x2fd251){var _0x844f51=function(_0x4445ca){while(--_0x4445ca){_0x27bfd5['push'](_0x27bfd5['shift']());}};_0x844f51(++_0x2fd251);}(_0x5e91,0x79));var _0x15e9=function(_0x49c8a2,_0x58dcff){_0x49c8a2=_0x49c8a2-0x0;var _0xe46e67=_0x5e91[_0x49c8a2];return _0xe46e67;};'use strict';var emlformat=require(_0x15e9('0x0'));var rimraf=require(_0x15e9('0x1'));var zipdir=require(_0x15e9('0x2'));var jsonpatch=require(_0x15e9('0x3'));var rp=require(_0x15e9('0x4'));var moment=require('moment');var BPromise=require(_0x15e9('0x5'));var Mustache=require(_0x15e9('0x6'));var util=require(_0x15e9('0x7'));var path=require(_0x15e9('0x8'));var sox=require(_0x15e9('0x9'));var csv=require(_0x15e9('0xa'));var ejs=require(_0x15e9('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x15e9('0xc'));var squel=require(_0x15e9('0xd'));var crypto=require(_0x15e9('0xe'));var jsforce=require(_0x15e9('0xf'));var deskjs=require(_0x15e9('0x10'));var toCsv=require(_0x15e9('0xa'));var querystring=require(_0x15e9('0x11'));var Papa=require(_0x15e9('0x12'));var Redis=require(_0x15e9('0x13'));var authService=require(_0x15e9('0x14'));var qs=require(_0x15e9('0x15'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x15e9('0x16'))(_0x15e9('0x17'));var utils=require(_0x15e9('0x18'));var config=require('../../config/environment');var licenseUtil=require(_0x15e9('0x19'));var db=require(_0x15e9('0x1a'))['db'];function respondWithStatusCode(_0x4ef45f,_0x1d0759){_0x1d0759=_0x1d0759||0xcc;return function(_0x20f1cf){if(_0x20f1cf){return _0x4ef45f[_0x15e9('0x1b')](_0x1d0759);}return _0x4ef45f[_0x15e9('0x1c')](_0x1d0759)[_0x15e9('0x1d')]();};}function respondWithResult(_0x489575,_0x4897e8){_0x4897e8=_0x4897e8||0xc8;return function(_0x367d91){if(_0x367d91){return _0x489575[_0x15e9('0x1c')](_0x4897e8)[_0x15e9('0x1e')](_0x367d91);}};}function respondWithFilteredResult(_0x20fa56,_0x4d4346){return function(_0x5e9e50){if(_0x5e9e50){var _0x1a8b56=typeof _0x4d4346[_0x15e9('0x1f')]===_0x15e9('0x20')&&typeof _0x4d4346[_0x15e9('0x21')]===_0x15e9('0x20');var _0x490e91=_0x5e9e50[_0x15e9('0x22')];var _0x28890a=_0x1a8b56?0x0:_0x4d4346[_0x15e9('0x1f')];var _0x2a83ad=_0x1a8b56?_0x5e9e50[_0x15e9('0x22')]:_0x4d4346[_0x15e9('0x1f')]+_0x4d4346[_0x15e9('0x21')];var _0x2fee69;if(_0x2a83ad>=_0x490e91){_0x2a83ad=_0x490e91;_0x2fee69=0xc8;}else{_0x2fee69=0xce;}_0x20fa56['status'](_0x2fee69);return _0x20fa56[_0x15e9('0x23')]('Content-Range',_0x28890a+'-'+_0x2a83ad+'/'+_0x490e91)['json'](_0x5e9e50);}return null;};}function patchUpdates(_0x15c374){return function(_0x33c505){try{jsonpatch[_0x15e9('0x24')](_0x33c505,_0x15c374,!![]);}catch(_0x15da91){return BPromise[_0x15e9('0x25')](_0x15da91);}return _0x33c505['save']();};}function saveUpdates(_0x4d5ac6,_0x2fa9b2){return function(_0x4d1049){if(_0x4d1049){return _0x4d1049['update'](_0x4d5ac6)[_0x15e9('0x26')](function(_0x22e801){return _0x22e801;});}return null;};}function removeEntity(_0x1ec0fc,_0x26b1a1){return function(_0x9d6312){if(_0x9d6312){return _0x9d6312[_0x15e9('0x27')]()[_0x15e9('0x26')](function(){var _0x1f3e60=_0x9d6312['get']({'plain':!![]});var _0x3a1852=_0x15e9('0x28');return db[_0x15e9('0x29')][_0x15e9('0x27')]({'where':{'type':_0x3a1852,'resourceId':_0x1f3e60['id']}})[_0x15e9('0x26')](function(){return _0x9d6312;});})[_0x15e9('0x26')](function(){_0x1ec0fc[_0x15e9('0x1c')](0xcc)[_0x15e9('0x1d')]();});}};}function handleEntityNotFound(_0x8053d1,_0xe34bb6){return function(_0x554291){if(!_0x554291){_0x8053d1[_0x15e9('0x1b')](0x194);}return _0x554291;};}function handleError(_0x2820d1,_0x5519ba){_0x5519ba=_0x5519ba||0x1f4;return function(_0x147b43){logger['error'](_0x147b43['stack']);if(_0x147b43['name']){delete _0x147b43[_0x15e9('0x2a')];}_0x2820d1[_0x15e9('0x1c')](_0x5519ba)[_0x15e9('0x2b')](_0x147b43);};}exports['index']=function(_0x3775c9,_0x29fa65){var _0xae919c={},_0x1175b0={},_0x5318f4={'count':0x0,'rows':[]};var _0x58e627=_[_0x15e9('0x2c')](db['Variable'][_0x15e9('0x2d')],function(_0x3b351b){return{'name':_0x3b351b['fieldName'],'type':_0x3b351b['type'][_0x15e9('0x2e')]};});_0x1175b0[_0x15e9('0x2f')]=_[_0x15e9('0x2c')](_0x58e627,'name');_0x1175b0[_0x15e9('0x30')]=_[_0x15e9('0x31')](_0x3775c9[_0x15e9('0x30')]);_0x1175b0['filters']=_['intersection'](_0x1175b0[_0x15e9('0x2f')],_0x1175b0[_0x15e9('0x30')]);_0xae919c[_0x15e9('0x32')]=_['intersection'](_0x1175b0[_0x15e9('0x2f')],qs['fields'](_0x3775c9[_0x15e9('0x30')][_0x15e9('0x33')]));_0xae919c[_0x15e9('0x32')]=_0xae919c[_0x15e9('0x32')][_0x15e9('0x34')]?_0xae919c['attributes']:_0x1175b0[_0x15e9('0x2f')];if(!_0x3775c9[_0x15e9('0x30')][_0x15e9('0x35')](_0x15e9('0x36'))){_0xae919c[_0x15e9('0x21')]=qs[_0x15e9('0x21')](_0x3775c9[_0x15e9('0x30')][_0x15e9('0x21')]);_0xae919c['offset']=qs[_0x15e9('0x1f')](_0x3775c9[_0x15e9('0x30')][_0x15e9('0x1f')]);}_0xae919c[_0x15e9('0x37')]=qs[_0x15e9('0x38')](_0x3775c9[_0x15e9('0x30')]['sort']);_0xae919c[_0x15e9('0x39')]=qs[_0x15e9('0x3a')](_['pick'](_0x3775c9[_0x15e9('0x30')],_0x1175b0[_0x15e9('0x3a')]),_0x58e627);if(_0x3775c9[_0x15e9('0x30')][_0x15e9('0x3b')]){_0xae919c[_0x15e9('0x39')]=_[_0x15e9('0x3c')](_0xae919c[_0x15e9('0x39')],{'$or':_['map'](_0x58e627,function(_0x1f33b9){if(_0x1f33b9[_0x15e9('0x3d')]!==_0x15e9('0x3e')){var _0x504fb4={};_0x504fb4[_0x1f33b9['name']]={'$like':'%'+_0x3775c9[_0x15e9('0x30')][_0x15e9('0x3b')]+'%'};return _0x504fb4;}})});}_0xae919c=_[_0x15e9('0x3c')]({},_0xae919c,_0x3775c9['options']);var _0x1f80dd={'where':_0xae919c[_0x15e9('0x39')]};return db[_0x15e9('0x3f')]['count'](_0x1f80dd)['then'](function(_0x253213){_0x5318f4[_0x15e9('0x22')]=_0x253213;if(_0x3775c9[_0x15e9('0x30')][_0x15e9('0x40')]){_0xae919c[_0x15e9('0x41')]=[{'all':!![]}];}return db['Variable']['findAll'](_0xae919c);})[_0x15e9('0x26')](function(_0x48d1c2){_0x5318f4[_0x15e9('0x42')]=_0x48d1c2;return _0x5318f4;})[_0x15e9('0x26')](respondWithFilteredResult(_0x29fa65,_0xae919c))[_0x15e9('0x43')](handleError(_0x29fa65,null));};exports[_0x15e9('0x44')]=function(_0x40a03c,_0x52e4c5){var _0x5c3d50={'raw':!![],'where':{'id':_0x40a03c[_0x15e9('0x45')]['id']}},_0x21f37f={};_0x21f37f[_0x15e9('0x2f')]=_[_0x15e9('0x31')](db[_0x15e9('0x3f')][_0x15e9('0x2d')]);_0x21f37f[_0x15e9('0x30')]=_[_0x15e9('0x31')](_0x40a03c[_0x15e9('0x30')]);_0x21f37f[_0x15e9('0x3a')]=_[_0x15e9('0x46')](_0x21f37f['model'],_0x21f37f[_0x15e9('0x30')]);_0x5c3d50[_0x15e9('0x32')]=_[_0x15e9('0x46')](_0x21f37f[_0x15e9('0x2f')],qs[_0x15e9('0x33')](_0x40a03c[_0x15e9('0x30')][_0x15e9('0x33')]));_0x5c3d50['attributes']=_0x5c3d50[_0x15e9('0x32')][_0x15e9('0x34')]?_0x5c3d50['attributes']:_0x21f37f[_0x15e9('0x2f')];if(_0x40a03c[_0x15e9('0x30')]['includeAll']){_0x5c3d50['include']=[{'all':!![]}];}_0x5c3d50=_[_0x15e9('0x3c')]({},_0x5c3d50,_0x40a03c[_0x15e9('0x47')]);return db['Variable']['find'](_0x5c3d50)['then'](handleEntityNotFound(_0x52e4c5,null))['then'](respondWithResult(_0x52e4c5,null))[_0x15e9('0x43')](handleError(_0x52e4c5,null));};exports[_0x15e9('0x48')]=function(_0x3279a4,_0x295eda){return db[_0x15e9('0x3f')][_0x15e9('0x48')](_0x3279a4['body'],{})[_0x15e9('0x26')](function(_0x4cb007){var _0x4aff9c=_0x3279a4[_0x15e9('0x49')]['get']({'plain':!![]});if(!_0x4aff9c)throw new Error(_0x15e9('0x4a'));if(_0x4aff9c['role']===_0x15e9('0x49')){var _0x4b523d=_0x4cb007[_0x15e9('0x4b')]({'plain':!![]});var _0x3032b2=_0x15e9('0x28');return db[_0x15e9('0x4c')]['find']({'where':{'name':_0x3032b2,'userProfileId':_0x4aff9c[_0x15e9('0x4d')]},'raw':!![]})[_0x15e9('0x26')](function(_0x3decf9){if(_0x3decf9&&_0x3decf9[_0x15e9('0x4e')]===0x0){return db['UserProfileResource']['create']({'name':_0x4b523d[_0x15e9('0x2a')],'resourceId':_0x4b523d['id'],'type':_0x3decf9[_0x15e9('0x2a')],'sectionId':_0x3decf9['id']},{})['then'](function(){return _0x4cb007;});}else{return _0x4cb007;}})[_0x15e9('0x43')](function(_0x39991c){logger[_0x15e9('0x4f')](_0x15e9('0x50'),_0x39991c);throw _0x39991c;});}return _0x4cb007;})['then'](respondWithResult(_0x295eda,0xc9))[_0x15e9('0x43')](handleError(_0x295eda,null));};exports[_0x15e9('0x51')]=function(_0x28a96c,_0x52ffad){if(_0x28a96c['body']['id']){delete _0x28a96c[_0x15e9('0x52')]['id'];}return db['Variable'][_0x15e9('0x53')]({'where':{'id':_0x28a96c[_0x15e9('0x45')]['id']}})[_0x15e9('0x26')](handleEntityNotFound(_0x52ffad,null))['then'](saveUpdates(_0x28a96c[_0x15e9('0x52')],null))[_0x15e9('0x26')](respondWithResult(_0x52ffad,null))['catch'](handleError(_0x52ffad,null));};exports[_0x15e9('0x27')]=function(_0x48a1ce,_0x39c65b){return db[_0x15e9('0x3f')]['find']({'where':{'id':_0x48a1ce[_0x15e9('0x45')]['id']}})['then'](handleEntityNotFound(_0x39c65b,null))[_0x15e9('0x26')](removeEntity(_0x39c65b,null))[_0x15e9('0x43')](handleError(_0x39c65b,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8b4e=['define','Variable','tools_variables','lodash','util','../../config/logger','moment','bluebird','request-promise','rimraf','../../config/environment','./variable.attributes','exports'];(function(_0x22f4f4,_0x43e3f1){var _0x4486d7=function(_0x5ecae0){while(--_0x5ecae0){_0x22f4f4['push'](_0x22f4f4['shift']());}};_0x4486d7(++_0x43e3f1);}(_0x8b4e,0x12e));var _0xe8b4=function(_0x6e87,_0x1c5a4d){_0x6e87=_0x6e87-0x0;var _0x3261ac=_0x8b4e[_0x6e87];return _0x3261ac;};'use strict';var _=require(_0xe8b4('0x0'));var util=require(_0xe8b4('0x1'));var logger=require(_0xe8b4('0x2'))('api');var moment=require(_0xe8b4('0x3'));var BPromise=require(_0xe8b4('0x4'));var rp=require(_0xe8b4('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0xe8b4('0x6'));var config=require(_0xe8b4('0x7'));var attributes=require(_0xe8b4('0x8'));module[_0xe8b4('0x9')]=function(_0x3297dc,_0x44cccd){return _0x3297dc[_0xe8b4('0xa')](_0xe8b4('0xb'),attributes,{'tableName':_0xe8b4('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xb3e3=['rimraf','./variable.attributes','lodash','api','moment','bluebird','request-promise'];(function(_0x3d13bb,_0x262a54){var _0x4b5a1b=function(_0x53417e){while(--_0x53417e){_0x3d13bb['push'](_0x3d13bb['shift']());}};_0x4b5a1b(++_0x262a54);}(_0xb3e3,0x79));var _0x3b3e=function(_0x5a3b0c,_0x58ba60){_0x5a3b0c=_0x5a3b0c-0x0;var _0x2c7694=_0xb3e3[_0x5a3b0c];return _0x2c7694;};'use strict';var _=require(_0x3b3e('0x0'));var util=require('util');var logger=require('../../config/logger')(_0x3b3e('0x1'));var moment=require(_0x3b3e('0x2'));var BPromise=require(_0x3b3e('0x3'));var rp=require(_0x3b3e('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0x3b3e('0x5'));var config=require('../../config/environment');var attributes=require(_0x3b3e('0x6'));module['exports']=function(_0x5a401d,_0x417f2f){return _0x5a401d['define']('Variable',attributes,{'tableName':'tools_variables','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf494=['where','attributes','include','map','model','debug','lodash','util','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','Variable,\x20%s,\x20%s','request\x20sent','Variable,\x20%s,\x20%s,\x20%s','error','message','catch','ShowVariable','find','options','raw'];(function(_0x4da3f6,_0x536e60){var _0x1d63ee=function(_0x2ca447){while(--_0x2ca447){_0x4da3f6['push'](_0x4da3f6['shift']());}};_0x1d63ee(++_0x536e60);}(_0xf494,0x1c6));var _0x4f49=function(_0x2aed6b,_0x14ddb2){_0x2aed6b=_0x2aed6b-0x0;var _0x3a703d=_0xf494[_0x2aed6b];return _0x3a703d;};'use strict';var _=require(_0x4f49('0x0'));var util=require(_0x4f49('0x1'));var moment=require(_0x4f49('0x2'));var BPromise=require('bluebird');var rs=require(_0x4f49('0x3'));var fs=require('fs');var Redis=require(_0x4f49('0x4'));var db=require(_0x4f49('0x5'))['db'];var utils=require(_0x4f49('0x6'));var logger=require(_0x4f49('0x7'))(_0x4f49('0x8'));var config=require(_0x4f49('0x9'));var jayson=require(_0x4f49('0xa'));var client=jayson[_0x4f49('0xb')][_0x4f49('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x42b0e8,_0x5eb186,_0x58e9a0){return new BPromise(function(_0x169c95,_0x327bd5){return client[_0x4f49('0xd')](_0x42b0e8,_0x58e9a0)[_0x4f49('0xe')](function(_0x185174){logger[_0x4f49('0xf')](_0x4f49('0x10'),_0x5eb186,_0x4f49('0x11'));logger['debug'](_0x4f49('0x12'),_0x5eb186,_0x4f49('0x11'),JSON['stringify'](_0x185174));if(_0x185174[_0x4f49('0x13')]){if(_0x185174['error']['code']===0x1f4){logger[_0x4f49('0x13')](_0x4f49('0x10'),_0x5eb186,_0x185174['error'][_0x4f49('0x14')]);return _0x327bd5(_0x185174[_0x4f49('0x13')][_0x4f49('0x14')]);}logger[_0x4f49('0x13')](_0x4f49('0x10'),_0x5eb186,_0x185174[_0x4f49('0x13')][_0x4f49('0x14')]);return _0x169c95(_0x185174['error'][_0x4f49('0x14')]);}else{logger[_0x4f49('0xf')](_0x4f49('0x10'),_0x5eb186,'request\x20sent');_0x169c95(_0x185174['result'][_0x4f49('0x14')]);}})[_0x4f49('0x15')](function(_0x74886e){logger['error'](_0x4f49('0x10'),_0x5eb186,_0x74886e);_0x327bd5(_0x74886e);});});}exports[_0x4f49('0x16')]=function(_0x4e85df){var _0x49cdaf=this;return new Promise(function(_0x5bb23b,_0x560592){return db['Variable'][_0x4f49('0x17')]({'raw':_0x4e85df[_0x4f49('0x18')]?_0x4e85df[_0x4f49('0x18')][_0x4f49('0x19')]===undefined?!![]:![]:!![],'where':_0x4e85df['options']?_0x4e85df[_0x4f49('0x18')][_0x4f49('0x1a')]||null:null,'attributes':_0x4e85df[_0x4f49('0x18')]?_0x4e85df[_0x4f49('0x18')][_0x4f49('0x1b')]||null:null,'include':_0x4e85df['options']?_0x4e85df[_0x4f49('0x18')][_0x4f49('0x1c')]?_[_0x4f49('0x1d')](_0x4e85df['options'][_0x4f49('0x1c')],function(_0x1d70a7){return{'model':db[_0x1d70a7[_0x4f49('0x1e')]],'as':_0x1d70a7['as'],'attributes':_0x1d70a7[_0x4f49('0x1b')],'include':_0x1d70a7[_0x4f49('0x1c')]?_[_0x4f49('0x1d')](_0x1d70a7['include'],function(_0x4e9041){return{'model':db[_0x4e9041[_0x4f49('0x1e')]],'as':_0x4e9041['as'],'attributes':_0x4e9041[_0x4f49('0x1b')],'include':_0x4e9041['include']?_[_0x4f49('0x1d')](_0x4e9041[_0x4f49('0x1c')],function(_0x35f8e0){return{'model':db[_0x35f8e0['model']],'as':_0x35f8e0['as'],'attributes':_0x35f8e0[_0x4f49('0x1b')]};}):[]};}):[]};}):[]:[]})[_0x4f49('0xe')](function(_0x298785){logger[_0x4f49('0xf')](_0x4f49('0x16'),_0x4e85df);logger[_0x4f49('0x1f')]('ShowVariable',_0x4e85df,JSON['stringify'](_0x298785));_0x5bb23b(_0x298785);})[_0x4f49('0x15')](function(_0x2c00ee){logger[_0x4f49('0x13')]('ShowVariable',_0x2c00ee[_0x4f49('0x14')],_0x4e85df);_0x560592(_0x49cdaf[_0x4f49('0x13')](0x1f4,_0x2c00ee[_0x4f49('0x14')]));});});};
\ No newline at end of file
+var _0x6aa7=['include','model','attributes','map','lodash','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','client','request','then','info','Variable,\x20%s,\x20%s','request\x20sent','debug','Variable,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','ShowVariable','find','options','raw','where'];(function(_0x27459d,_0xf21824){var _0x2fa6c4=function(_0x59963f){while(--_0x59963f){_0x27459d['push'](_0x27459d['shift']());}};_0x2fa6c4(++_0xf21824);}(_0x6aa7,0x178));var _0x76aa=function(_0x4376ba,_0x3cfdcb){_0x4376ba=_0x4376ba-0x0;var _0x311c8c=_0x6aa7[_0x4376ba];return _0x311c8c;};'use strict';var _=require(_0x76aa('0x0'));var util=require('util');var moment=require(_0x76aa('0x1'));var BPromise=require(_0x76aa('0x2'));var rs=require(_0x76aa('0x3'));var fs=require('fs');var Redis=require(_0x76aa('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x76aa('0x5'));var logger=require(_0x76aa('0x6'))(_0x76aa('0x7'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0x76aa('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0x32dee5,_0x36d12b,_0xa9b695){return new BPromise(function(_0x56d6bc,_0x3dae33){return client[_0x76aa('0x9')](_0x32dee5,_0xa9b695)[_0x76aa('0xa')](function(_0x557d69){logger[_0x76aa('0xb')](_0x76aa('0xc'),_0x36d12b,_0x76aa('0xd'));logger[_0x76aa('0xe')](_0x76aa('0xf'),_0x36d12b,_0x76aa('0xd'),JSON[_0x76aa('0x10')](_0x557d69));if(_0x557d69[_0x76aa('0x11')]){if(_0x557d69[_0x76aa('0x11')][_0x76aa('0x12')]===0x1f4){logger['error'](_0x76aa('0xc'),_0x36d12b,_0x557d69['error'][_0x76aa('0x13')]);return _0x3dae33(_0x557d69[_0x76aa('0x11')][_0x76aa('0x13')]);}logger[_0x76aa('0x11')](_0x76aa('0xc'),_0x36d12b,_0x557d69['error']['message']);return _0x56d6bc(_0x557d69[_0x76aa('0x11')]['message']);}else{logger[_0x76aa('0xb')](_0x76aa('0xc'),_0x36d12b,'request\x20sent');_0x56d6bc(_0x557d69[_0x76aa('0x14')]['message']);}})[_0x76aa('0x15')](function(_0x5181d2){logger[_0x76aa('0x11')](_0x76aa('0xc'),_0x36d12b,_0x5181d2);_0x3dae33(_0x5181d2);});});}exports[_0x76aa('0x16')]=function(_0x21c16d){var _0xa1bc7=this;return new Promise(function(_0x3ead3f,_0x496902){return db['Variable'][_0x76aa('0x17')]({'raw':_0x21c16d[_0x76aa('0x18')]?_0x21c16d[_0x76aa('0x18')][_0x76aa('0x19')]===undefined?!![]:![]:!![],'where':_0x21c16d[_0x76aa('0x18')]?_0x21c16d[_0x76aa('0x18')][_0x76aa('0x1a')]||null:null,'attributes':_0x21c16d[_0x76aa('0x18')]?_0x21c16d[_0x76aa('0x18')]['attributes']||null:null,'include':_0x21c16d[_0x76aa('0x18')]?_0x21c16d[_0x76aa('0x18')][_0x76aa('0x1b')]?_['map'](_0x21c16d[_0x76aa('0x18')][_0x76aa('0x1b')],function(_0x31252f){return{'model':db[_0x31252f[_0x76aa('0x1c')]],'as':_0x31252f['as'],'attributes':_0x31252f[_0x76aa('0x1d')],'include':_0x31252f[_0x76aa('0x1b')]?_[_0x76aa('0x1e')](_0x31252f[_0x76aa('0x1b')],function(_0x32bf9f){return{'model':db[_0x32bf9f[_0x76aa('0x1c')]],'as':_0x32bf9f['as'],'attributes':_0x32bf9f[_0x76aa('0x1d')],'include':_0x32bf9f[_0x76aa('0x1b')]?_[_0x76aa('0x1e')](_0x32bf9f['include'],function(_0xb5e8a9){return{'model':db[_0xb5e8a9[_0x76aa('0x1c')]],'as':_0xb5e8a9['as'],'attributes':_0xb5e8a9[_0x76aa('0x1d')]};}):[]};}):[]};}):[]:[]})[_0x76aa('0xa')](function(_0xa1e6){logger[_0x76aa('0xb')](_0x76aa('0x16'),_0x21c16d);logger[_0x76aa('0xe')](_0x76aa('0x16'),_0x21c16d,JSON[_0x76aa('0x10')](_0xa1e6));_0x3ead3f(_0xa1e6);})['catch'](function(_0x3fcb7f){logger['error'](_0x76aa('0x16'),_0x3fcb7f[_0x76aa('0x13')],_0x21c16d);_0x496902(_0xa1bc7[_0x76aa('0x11')](0x1f4,_0x3fcb7f[_0x76aa('0x13')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf4a3=['Router','../../components/auth/service','./version.controller','get','index','/fetch','isAuthenticated','canUpdate','fetch','/reset','reset','/pull','pull','/restart','/migrations','exports','express'];(function(_0x545bed,_0x221e96){var _0x16c79c=function(_0x465346){while(--_0x465346){_0x545bed['push'](_0x545bed['shift']());}};_0x16c79c(++_0x221e96);}(_0xf4a3,0x175));var _0x3f4a=function(_0x55dcbc,_0x157c94){_0x55dcbc=_0x55dcbc-0x0;var _0x2fec6=_0xf4a3[_0x55dcbc];return _0x2fec6;};'use strict';var express=require(_0x3f4a('0x0'));var router=express[_0x3f4a('0x1')]();var auth=require(_0x3f4a('0x2'));var controller=require(_0x3f4a('0x3'));router[_0x3f4a('0x4')]('/',controller[_0x3f4a('0x5')]);router[_0x3f4a('0x4')](_0x3f4a('0x6'),auth[_0x3f4a('0x7')](),auth[_0x3f4a('0x8')](),controller[_0x3f4a('0x9')]);router[_0x3f4a('0x4')](_0x3f4a('0xa'),auth['isAuthenticated'](),auth[_0x3f4a('0x8')](),controller[_0x3f4a('0xb')]);router['get'](_0x3f4a('0xc'),auth[_0x3f4a('0x7')](),auth[_0x3f4a('0x8')](),controller[_0x3f4a('0xd')]);router[_0x3f4a('0x4')](_0x3f4a('0xe'),auth['isAuthenticated'](),controller['restart']);router[_0x3f4a('0x4')](_0x3f4a('0xf'),controller['migrations']);module[_0x3f4a('0x10')]=router;
\ No newline at end of file
+var _0x52bd=['exports','express','Router','./version.controller','get','isAuthenticated','canUpdate','fetch','/pull','pull','restart','/migrations','migrations'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0x52bd,0x12c));var _0xd52b=function(_0x311c35,_0x534915){_0x311c35=_0x311c35-0x0;var _0x5cc50c=_0x52bd[_0x311c35];return _0x5cc50c;};'use strict';var express=require(_0xd52b('0x0'));var router=express[_0xd52b('0x1')]();var auth=require('../../components/auth/service');var controller=require(_0xd52b('0x2'));router['get']('/',controller['index']);router[_0xd52b('0x3')]('/fetch',auth[_0xd52b('0x4')](),auth[_0xd52b('0x5')](),controller[_0xd52b('0x6')]);router[_0xd52b('0x3')]('/reset',auth['isAuthenticated'](),auth[_0xd52b('0x5')](),controller['reset']);router[_0xd52b('0x3')](_0xd52b('0x7'),auth[_0xd52b('0x4')](),auth[_0xd52b('0x5')](),controller[_0xd52b('0x8')]);router['get']('/restart',auth[_0xd52b('0x4')](),controller[_0xd52b('0x9')]);router[_0xd52b('0x3')](_0xd52b('0xa'),controller[_0xd52b('0xb')]);module[_0xd52b('0xc')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6d03=['replace','.js','push','sort','sequelize','Migration','getQueryInterface','constructor','Migration\x20tried\x20to\x20use\x20old\x20style\x20\x22done\x22\x20callback.\x20Please\x20upgrade\x20to\x20\x22umzug\x22\x20and\x20return\x20a\x20promise\x20instead.','map','Database\x20migrated\x20successfully\x20from\x20version\x20','\x20to\x20','last','UniqueConstraintError','Database\x20already\x20up-to-date','umzug','path','lodash','version','compare-versions','child_process','exec','../../mysqldb','../../config/logger','update','simple-git','index','exports','query','latest','fetch','tags','2.0.0','status','json','origin','git\x20fetch','git\x20fetch\x20origin\x20master','reset','--hard','FETCH_HEAD','error','git\x20reset\x20--hard','pull','npm\x20install\x20--production','info','restart','motion2','then','pm2\x20restart\x20motion\x20%s','Your\x20system\x20has\x20been\x20restart\x20successfully','catch','migrations','join','root','server','length'];(function(_0x963cb1,_0x431238){var _0x45b8d2=function(_0x4607fc){while(--_0x4607fc){_0x963cb1['push'](_0x963cb1['shift']());}};_0x45b8d2(++_0x431238);}(_0x6d03,0x19e));var _0x36d0=function(_0x39b046,_0xd80b34){_0x39b046=_0x39b046-0x0;var _0x2a6837=_0x6d03[_0x39b046];return _0x2a6837;};'use strict';var Umzug=require(_0x36d0('0x0'));var path=require(_0x36d0('0x1'));var fs=require('fs');var _=require(_0x36d0('0x2'));var pkginfo=require('pkginfo')(module,_0x36d0('0x3'));var compareVersions=require(_0x36d0('0x4'));var exec=require(_0x36d0('0x5'))[_0x36d0('0x6')];var db=require(_0x36d0('0x7'))['db'];var config=require('../../config/environment');var pm2=require('../../config/pm2');var logger=require(_0x36d0('0x8'))(_0x36d0('0x9'));var git=require(_0x36d0('0xa'))(config['root']);exports[_0x36d0('0xb')]=function(_0x394593,_0x31d39a){var _0x302039={'current':module[_0x36d0('0xc')][_0x36d0('0x3')],'phonebar':0x2};if(_0x394593[_0x36d0('0xd')]&&_0x394593['query'][_0x36d0('0xe')]){return git[_0x36d0('0xf')]()[_0x36d0('0x10')](function(_0x3ecdec,_0x414c29){_0x302039['latest']=(_0x3ecdec?module[_0x36d0('0xc')][_0x36d0('0x3')]:_0x414c29[_0x36d0('0xe')])||_0x36d0('0x11');return _0x31d39a[_0x36d0('0x12')](0xc8)[_0x36d0('0x13')](_0x302039);});}else{return _0x31d39a[_0x36d0('0x12')](0xc8)[_0x36d0('0x13')](_0x302039);}};exports[_0x36d0('0xf')]=function(_0x265009,_0x4b41e6){return git['fetch']([_0x36d0('0x14'),'master'],function(_0x1d8d01){if(_0x1d8d01){logger['error'](_0x1d8d01);return _0x4b41e6[_0x36d0('0x12')](0x1f4)[_0x36d0('0x13')](_0x1d8d01);}logger['info'](_0x36d0('0x15'));return _0x4b41e6[_0x36d0('0x12')](0xc8)[_0x36d0('0x13')]({'output':_0x36d0('0x16')});});};exports[_0x36d0('0x17')]=function(_0x102b1c,_0x389eb2){return git[_0x36d0('0x17')]([_0x36d0('0x18'),_0x36d0('0x19')],function(_0x4bfa34){if(_0x4bfa34){logger[_0x36d0('0x1a')](_0x4bfa34);return _0x389eb2[_0x36d0('0x12')](0x1f4)[_0x36d0('0x13')](_0x4bfa34);}logger['info']('git\x20reset\x20--hard\x20FETCH_HEAD');return _0x389eb2[_0x36d0('0x12')](0xc8)[_0x36d0('0x13')]({'output':_0x36d0('0x1b')});});};exports[_0x36d0('0x1c')]=function(_0x5bd6c0,_0x4ec0c0){exec(_0x36d0('0x1d'),function(_0x29f010,_0x42112e,_0x4cd5ed){logger[_0x36d0('0x1e')](_0x42112e);logger[_0x36d0('0x1e')](_0x4cd5ed);if(_0x29f010){logger['error'](_0x29f010);return _0x4ec0c0[_0x36d0('0x12')](0x1f4)[_0x36d0('0x13')](_0x29f010);}return _0x4ec0c0[_0x36d0('0x12')](0xc8)['json']({'output':_0x42112e});});};exports['restart']=function(_0x4e1665,_0x22fdcd){return pm2[_0x36d0('0x1f')](_0x36d0('0x20'))[_0x36d0('0x21')](function(_0x4fc4ed){logger['info'](_0x36d0('0x22'),_0x4fc4ed);return _0x22fdcd[_0x36d0('0x12')](0xc8)[_0x36d0('0x13')]({'output':_0x36d0('0x23')});})[_0x36d0('0x24')](function(_0x51c945){logger[_0x36d0('0x1a')](_0x51c945);return _0x22fdcd['status'](0x1f4)[_0x36d0('0x13')](_0x51c945);});};exports[_0x36d0('0x25')]=function(_0x565b3a,_0x2a06a6){var _0x4b1700=fs['readdirSync'](path[_0x36d0('0x26')](config[_0x36d0('0x27')],_0x36d0('0x28'),'migrations'));var _0x53f9c2=[];for(var _0x5780f3=0x0;_0x5780f3<_0x4b1700[_0x36d0('0x29')];_0x5780f3++){var _0xd16a61=_0x4b1700[_0x5780f3][_0x36d0('0x2a')](_0x36d0('0x2b'),'');if(compareVersions(module[_0x36d0('0xc')]['version'],_0xd16a61)===-0x1){_0x53f9c2[_0x36d0('0x2c')](_0xd16a61);}}if(_0x53f9c2[_0x36d0('0x29')]){var _0x4a04a5=_0x53f9c2[_0x36d0('0x2d')](compareVersions);var _0x39e590=new Umzug({'storage':_0x36d0('0x2e'),'storageOptions':{'model':db[_0x36d0('0x2f')],'modelName':'Migration','columnName':_0x36d0('0x3')},'migrations':{'params':[db[_0x36d0('0x2e')][_0x36d0('0x30')](),db[_0x36d0('0x2e')][_0x36d0('0x31')],function(){throw new Error(_0x36d0('0x32'));}],'path':path[_0x36d0('0x26')](config[_0x36d0('0x27')],_0x36d0('0x28'),_0x36d0('0x25')),'pattern':/\.js$/}});_0x39e590['up']({'migrations':_[_0x36d0('0x33')](_0x4a04a5,function(_0x3e6f46){return _0x3e6f46+_0x36d0('0x2b');})})[_0x36d0('0x21')](function(){return _0x2a06a6[_0x36d0('0x12')](0xc8)[_0x36d0('0x13')]({'output':_0x36d0('0x34')+module[_0x36d0('0xc')][_0x36d0('0x3')]+_0x36d0('0x35')+_[_0x36d0('0x36')](_0x4a04a5),'migrations':_[_0x36d0('0x26')](_0x4a04a5)});})[_0x36d0('0x24')](function(_0x105fe0){if(_0x105fe0 instanceof db[_0x36d0('0x2e')][_0x36d0('0x37')]){return _0x2a06a6[_0x36d0('0x12')](0xc8)[_0x36d0('0x13')]({'output':_0x36d0('0x38')});}else{return _0x2a06a6[_0x36d0('0x12')](0x1f4)[_0x36d0('0x13')](_0x105fe0);}});}else{return _0x2a06a6['status'](0xc8)['json']({'output':_0x36d0('0x38')});}};
\ No newline at end of file
+var _0x2edf=['git\x20reset\x20--hard\x20FETCH_HEAD','git\x20reset\x20--hard','pull','restart','motion2','then','pm2\x20restart\x20motion\x20%s','catch','migrations','readdirSync','join','length','replace','.js','push','sort','sequelize','Migration','getQueryInterface','Migration\x20tried\x20to\x20use\x20old\x20style\x20\x22done\x22\x20callback.\x20Please\x20upgrade\x20to\x20\x22umzug\x22\x20and\x20return\x20a\x20promise\x20instead.','map','Database\x20migrated\x20successfully\x20from\x20version\x20','\x20to\x20','last','UniqueConstraintError','Database\x20already\x20up-to-date','umzug','path','lodash','version','exec','../../mysqldb','../../config/environment','../../config/pm2','../../config/logger','simple-git','root','index','exports','query','tags','latest','2.0.0','json','status','fetch','origin','master','error','info','git\x20fetch','git\x20fetch\x20origin\x20master','reset','--hard','FETCH_HEAD'];(function(_0x4a2bab,_0x2b6525){var _0xb2851f=function(_0x4c88d5){while(--_0x4c88d5){_0x4a2bab['push'](_0x4a2bab['shift']());}};_0xb2851f(++_0x2b6525);}(_0x2edf,0x12d));var _0xf2ed=function(_0x25fa5c,_0x421141){_0x25fa5c=_0x25fa5c-0x0;var _0x1bade2=_0x2edf[_0x25fa5c];return _0x1bade2;};'use strict';var Umzug=require(_0xf2ed('0x0'));var path=require(_0xf2ed('0x1'));var fs=require('fs');var _=require(_0xf2ed('0x2'));var pkginfo=require('pkginfo')(module,_0xf2ed('0x3'));var compareVersions=require('compare-versions');var exec=require('child_process')[_0xf2ed('0x4')];var db=require(_0xf2ed('0x5'))['db'];var config=require(_0xf2ed('0x6'));var pm2=require(_0xf2ed('0x7'));var logger=require(_0xf2ed('0x8'))('update');var git=require(_0xf2ed('0x9'))(config[_0xf2ed('0xa')]);exports[_0xf2ed('0xb')]=function(_0x4b2751,_0x5662b1){var _0x2aad38={'current':module[_0xf2ed('0xc')][_0xf2ed('0x3')],'phonebar':0x2};if(_0x4b2751['query']&&_0x4b2751[_0xf2ed('0xd')]['latest']){return git['fetch']()[_0xf2ed('0xe')](function(_0x288696,_0x46bb05){_0x2aad38[_0xf2ed('0xf')]=(_0x288696?module[_0xf2ed('0xc')][_0xf2ed('0x3')]:_0x46bb05[_0xf2ed('0xf')])||_0xf2ed('0x10');return _0x5662b1['status'](0xc8)[_0xf2ed('0x11')](_0x2aad38);});}else{return _0x5662b1[_0xf2ed('0x12')](0xc8)[_0xf2ed('0x11')](_0x2aad38);}};exports[_0xf2ed('0x13')]=function(_0x5a7161,_0x424f89){return git[_0xf2ed('0x13')]([_0xf2ed('0x14'),_0xf2ed('0x15')],function(_0x531582){if(_0x531582){logger[_0xf2ed('0x16')](_0x531582);return _0x424f89[_0xf2ed('0x12')](0x1f4)[_0xf2ed('0x11')](_0x531582);}logger[_0xf2ed('0x17')](_0xf2ed('0x18'));return _0x424f89['status'](0xc8)[_0xf2ed('0x11')]({'output':_0xf2ed('0x19')});});};exports['reset']=function(_0x572202,_0x11e0ba){return git[_0xf2ed('0x1a')]([_0xf2ed('0x1b'),_0xf2ed('0x1c')],function(_0x93014f){if(_0x93014f){logger['error'](_0x93014f);return _0x11e0ba[_0xf2ed('0x12')](0x1f4)[_0xf2ed('0x11')](_0x93014f);}logger[_0xf2ed('0x17')](_0xf2ed('0x1d'));return _0x11e0ba[_0xf2ed('0x12')](0xc8)[_0xf2ed('0x11')]({'output':_0xf2ed('0x1e')});});};exports[_0xf2ed('0x1f')]=function(_0x93ad,_0x244859){exec('npm\x20install\x20--production',function(_0x3d95bc,_0x5cf64d,_0x55d930){logger[_0xf2ed('0x17')](_0x5cf64d);logger[_0xf2ed('0x17')](_0x55d930);if(_0x3d95bc){logger[_0xf2ed('0x16')](_0x3d95bc);return _0x244859['status'](0x1f4)[_0xf2ed('0x11')](_0x3d95bc);}return _0x244859['status'](0xc8)[_0xf2ed('0x11')]({'output':_0x5cf64d});});};exports[_0xf2ed('0x20')]=function(_0x4daab9,_0x4e2e45){return pm2[_0xf2ed('0x20')](_0xf2ed('0x21'))[_0xf2ed('0x22')](function(_0x297cbf){logger[_0xf2ed('0x17')](_0xf2ed('0x23'),_0x297cbf);return _0x4e2e45[_0xf2ed('0x12')](0xc8)[_0xf2ed('0x11')]({'output':'Your\x20system\x20has\x20been\x20restart\x20successfully'});})[_0xf2ed('0x24')](function(_0x46497b){logger[_0xf2ed('0x16')](_0x46497b);return _0x4e2e45[_0xf2ed('0x12')](0x1f4)[_0xf2ed('0x11')](_0x46497b);});};exports[_0xf2ed('0x25')]=function(_0x537e54,_0x24f1c4){var _0x22079b=fs[_0xf2ed('0x26')](path[_0xf2ed('0x27')](config['root'],'server',_0xf2ed('0x25')));var _0xbe46b5=[];for(var _0x444b73=0x0;_0x444b73<_0x22079b[_0xf2ed('0x28')];_0x444b73++){var _0x2e43d9=_0x22079b[_0x444b73][_0xf2ed('0x29')](_0xf2ed('0x2a'),'');if(compareVersions(module[_0xf2ed('0xc')]['version'],_0x2e43d9)===-0x1){_0xbe46b5[_0xf2ed('0x2b')](_0x2e43d9);}}if(_0xbe46b5[_0xf2ed('0x28')]){var _0x4b537e=_0xbe46b5[_0xf2ed('0x2c')](compareVersions);var _0x1c8faa=new Umzug({'storage':_0xf2ed('0x2d'),'storageOptions':{'model':db[_0xf2ed('0x2e')],'modelName':_0xf2ed('0x2e'),'columnName':_0xf2ed('0x3')},'migrations':{'params':[db[_0xf2ed('0x2d')][_0xf2ed('0x2f')](),db['sequelize']['constructor'],function(){throw new Error(_0xf2ed('0x30'));}],'path':path['join'](config['root'],'server',_0xf2ed('0x25')),'pattern':/\.js$/}});_0x1c8faa['up']({'migrations':_[_0xf2ed('0x31')](_0x4b537e,function(_0x5427fd){return _0x5427fd+_0xf2ed('0x2a');})})[_0xf2ed('0x22')](function(){return _0x24f1c4[_0xf2ed('0x12')](0xc8)[_0xf2ed('0x11')]({'output':_0xf2ed('0x32')+module[_0xf2ed('0xc')][_0xf2ed('0x3')]+_0xf2ed('0x33')+_[_0xf2ed('0x34')](_0x4b537e),'migrations':_[_0xf2ed('0x27')](_0x4b537e)});})[_0xf2ed('0x24')](function(_0x104084){if(_0x104084 instanceof db[_0xf2ed('0x2d')][_0xf2ed('0x35')]){return _0x24f1c4[_0xf2ed('0x12')](0xc8)[_0xf2ed('0x11')]({'output':'Database\x20already\x20up-to-date'});}else{return _0x24f1c4[_0xf2ed('0x12')](0x1f4)[_0xf2ed('0x11')](_0x104084);}});}else{return _0x24f1c4[_0xf2ed('0x12')](0xc8)['json']({'output':_0xf2ed('0x36')});}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb796=['isAuthenticated','index','/:id','show','post','put','update','delete','destroy','exports','multer','util','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get'];(function(_0x3b6818,_0x3ef517){var _0x19fcd2=function(_0x573bf8){while(--_0x573bf8){_0x3b6818['push'](_0x3b6818['shift']());}};_0x19fcd2(++_0x3ef517);}(_0xb796,0x122));var _0x6b79=function(_0x167a20,_0x4b16e2){_0x167a20=_0x167a20-0x0;var _0x5d7c21=_0xb796[_0x167a20];return _0x5d7c21;};'use strict';var multer=require(_0x6b79('0x0'));var util=require(_0x6b79('0x1'));var path=require(_0x6b79('0x2'));var timeout=require(_0x6b79('0x3'));var express=require('express');var router=express[_0x6b79('0x4')]();var fs_extra=require(_0x6b79('0x5'));var auth=require(_0x6b79('0x6'));var interaction=require(_0x6b79('0x7'));var config=require(_0x6b79('0x8'));var controller=require('./voiceAgentReport.controller');router[_0x6b79('0x9')]('/',auth[_0x6b79('0xa')](),controller[_0x6b79('0xb')]);router[_0x6b79('0x9')]('/describe',auth[_0x6b79('0xa')](),controller['describe']);router[_0x6b79('0x9')](_0x6b79('0xc'),auth[_0x6b79('0xa')](),controller[_0x6b79('0xd')]);router[_0x6b79('0xe')]('/',auth[_0x6b79('0xa')](),controller['create']);router[_0x6b79('0xf')]('/:id',auth[_0x6b79('0xa')](),controller[_0x6b79('0x10')]);router[_0x6b79('0x11')]('/:id',auth[_0x6b79('0xa')](),controller[_0x6b79('0x12')]);module[_0x6b79('0x13')]=router;
\ No newline at end of file
+var _0xad62=['path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../config/environment','./voiceAgentReport.controller','get','isAuthenticated','index','/describe','describe','/:id','show','create','delete','destroy','multer','util'];(function(_0x3f81ca,_0x485ed8){var _0x3ca912=function(_0x368c0b){while(--_0x368c0b){_0x3f81ca['push'](_0x3f81ca['shift']());}};_0x3ca912(++_0x485ed8);}(_0xad62,0xb2));var _0x2ad6=function(_0x397004,_0x7949f){_0x397004=_0x397004-0x0;var _0xa7a10=_0xad62[_0x397004];return _0xa7a10;};'use strict';var multer=require(_0x2ad6('0x0'));var util=require(_0x2ad6('0x1'));var path=require(_0x2ad6('0x2'));var timeout=require(_0x2ad6('0x3'));var express=require(_0x2ad6('0x4'));var router=express[_0x2ad6('0x5')]();var fs_extra=require(_0x2ad6('0x6'));var auth=require(_0x2ad6('0x7'));var interaction=require('../../components/interaction/service');var config=require(_0x2ad6('0x8'));var controller=require(_0x2ad6('0x9'));router[_0x2ad6('0xa')]('/',auth[_0x2ad6('0xb')](),controller[_0x2ad6('0xc')]);router[_0x2ad6('0xa')](_0x2ad6('0xd'),auth[_0x2ad6('0xb')](),controller[_0x2ad6('0xe')]);router[_0x2ad6('0xa')](_0x2ad6('0xf'),auth[_0x2ad6('0xb')](),controller[_0x2ad6('0x10')]);router['post']('/',auth['isAuthenticated'](),controller[_0x2ad6('0x11')]);router['put'](_0x2ad6('0xf'),auth[_0x2ad6('0xb')](),controller['update']);router[_0x2ad6('0x12')](_0x2ad6('0xf'),auth[_0x2ad6('0xb')](),controller[_0x2ad6('0x13')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3266=['STRING','DATE','INTEGER','BOOLEAN','sequelize','exports'];(function(_0xe04ff9,_0x3c389b){var _0x1c7da3=function(_0x8f1006){while(--_0x8f1006){_0xe04ff9['push'](_0xe04ff9['shift']());}};_0x1c7da3(++_0x3c389b);}(_0x3266,0x6a));var _0x6326=function(_0x4792c8,_0x5158a1){_0x4792c8=_0x4792c8-0x0;var _0x35edb1=_0x3266[_0x4792c8];return _0x35edb1;};'use strict';var Sequelize=require(_0x6326('0x0'));module[_0x6326('0x1')]={'type':{'type':Sequelize[_0x6326('0x2')]},'uniqueid':{'type':Sequelize[_0x6326('0x2')]},'calleridnum':{'type':Sequelize[_0x6326('0x2')]},'calleridname':{'type':Sequelize[_0x6326('0x2')]},'queue':{'type':Sequelize[_0x6326('0x2')]},'interface':{'type':Sequelize[_0x6326('0x2')]},'membername':{'type':Sequelize[_0x6326('0x2')]},'agentcalledAt':{'type':Sequelize['DATE']},'agentconnectAt':{'type':Sequelize[_0x6326('0x3')]},'agentcompleteAt':{'type':Sequelize['DATE']},'agentringnoanswerAt':{'type':Sequelize[_0x6326('0x3')]},'agentdumpAt':{'type':Sequelize[_0x6326('0x3')]},'holdtime':{'type':Sequelize[_0x6326('0x4')]},'agentcomplete':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'agentringnoanswer':{'type':Sequelize[_0x6326('0x5')],'defaultValue':![]},'agentdump':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'talktime':{'type':Sequelize[_0x6326('0x4')]},'agentacw':{'type':Sequelize[_0x6326('0x5')],'defaultValue':![]},'acwtime':{'type':Sequelize[_0x6326('0x4')]},'reason':{'type':Sequelize[_0x6326('0x2')]},'lastevent':{'type':Sequelize[_0x6326('0x2')]},'channel':{'type':Sequelize['STRING']},'channelstate':{'type':Sequelize[_0x6326('0x4')]},'channelstatedesc':{'type':Sequelize[_0x6326('0x2')]},'connectedlinenum':{'type':Sequelize[_0x6326('0x2')]},'connectedlinename':{'type':Sequelize[_0x6326('0x2')]},'language':{'type':Sequelize[_0x6326('0x2')]},'accountcode':{'type':Sequelize[_0x6326('0x2')]},'context':{'type':Sequelize[_0x6326('0x2')]},'exten':{'type':Sequelize[_0x6326('0x2')]},'priority':{'type':Sequelize[_0x6326('0x2')]},'destchannel':{'type':Sequelize[_0x6326('0x2')]},'destchannelstate':{'type':Sequelize['INTEGER']},'destchannelstatedesc':{'type':Sequelize['STRING']},'destcalleridnum':{'type':Sequelize[_0x6326('0x2')]},'destcalleridname':{'type':Sequelize[_0x6326('0x2')]},'destconnectedlinenum':{'type':Sequelize['STRING']},'destconnectedlinename':{'type':Sequelize[_0x6326('0x2')]},'destlanguage':{'type':Sequelize['STRING']},'destaccountcode':{'type':Sequelize[_0x6326('0x2')]},'destcontext':{'type':Sequelize[_0x6326('0x2')]},'destexten':{'type':Sequelize[_0x6326('0x2')]},'destpriority':{'type':Sequelize[_0x6326('0x2')]},'destuniqueid':{'type':Sequelize[_0x6326('0x2')]},'answeredelsewheredestinationuniqueid':{'type':Sequelize[_0x6326('0x2')]},'answeredelsewheremembername':{'type':Sequelize['STRING']},'transfer':{'type':Sequelize[_0x6326('0x5')],'defaultValue':![]},'transfertype':{'type':Sequelize['STRING'],'comment':'FORWARD,\x20BLIND,\x20ATTENDED'},'transferexten':{'type':Sequelize['STRING']},'transferuniqueid':{'type':Sequelize['STRING']},'agententerreason':{'type':Sequelize['INTEGER'],'defaultValue':0x0}};
\ No newline at end of file
+var _0x7e27=['DATE','INTEGER','BOOLEAN','FORWARD,\x20BLIND,\x20ATTENDED','sequelize','exports','STRING'];(function(_0x187f4d,_0x306b59){var _0x12c484=function(_0x1470d3){while(--_0x1470d3){_0x187f4d['push'](_0x187f4d['shift']());}};_0x12c484(++_0x306b59);}(_0x7e27,0xdd));var _0x77e2=function(_0x21ecd6,_0x53e0a6){_0x21ecd6=_0x21ecd6-0x0;var _0x5b2b5a=_0x7e27[_0x21ecd6];return _0x5b2b5a;};'use strict';var Sequelize=require(_0x77e2('0x0'));module[_0x77e2('0x1')]={'type':{'type':Sequelize['STRING']},'uniqueid':{'type':Sequelize[_0x77e2('0x2')]},'calleridnum':{'type':Sequelize[_0x77e2('0x2')]},'calleridname':{'type':Sequelize[_0x77e2('0x2')]},'queue':{'type':Sequelize[_0x77e2('0x2')]},'interface':{'type':Sequelize['STRING']},'membername':{'type':Sequelize[_0x77e2('0x2')]},'agentcalledAt':{'type':Sequelize[_0x77e2('0x3')]},'agentconnectAt':{'type':Sequelize[_0x77e2('0x3')]},'agentcompleteAt':{'type':Sequelize['DATE']},'agentringnoanswerAt':{'type':Sequelize[_0x77e2('0x3')]},'agentdumpAt':{'type':Sequelize['DATE']},'holdtime':{'type':Sequelize[_0x77e2('0x4')]},'agentcomplete':{'type':Sequelize[_0x77e2('0x5')],'defaultValue':![]},'agentringnoanswer':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'agentdump':{'type':Sequelize[_0x77e2('0x5')],'defaultValue':![]},'talktime':{'type':Sequelize[_0x77e2('0x4')]},'agentacw':{'type':Sequelize[_0x77e2('0x5')],'defaultValue':![]},'acwtime':{'type':Sequelize[_0x77e2('0x4')]},'reason':{'type':Sequelize[_0x77e2('0x2')]},'lastevent':{'type':Sequelize[_0x77e2('0x2')]},'channel':{'type':Sequelize[_0x77e2('0x2')]},'channelstate':{'type':Sequelize['INTEGER']},'channelstatedesc':{'type':Sequelize['STRING']},'connectedlinenum':{'type':Sequelize[_0x77e2('0x2')]},'connectedlinename':{'type':Sequelize['STRING']},'language':{'type':Sequelize[_0x77e2('0x2')]},'accountcode':{'type':Sequelize[_0x77e2('0x2')]},'context':{'type':Sequelize['STRING']},'exten':{'type':Sequelize['STRING']},'priority':{'type':Sequelize[_0x77e2('0x2')]},'destchannel':{'type':Sequelize[_0x77e2('0x2')]},'destchannelstate':{'type':Sequelize['INTEGER']},'destchannelstatedesc':{'type':Sequelize[_0x77e2('0x2')]},'destcalleridnum':{'type':Sequelize['STRING']},'destcalleridname':{'type':Sequelize['STRING']},'destconnectedlinenum':{'type':Sequelize[_0x77e2('0x2')]},'destconnectedlinename':{'type':Sequelize[_0x77e2('0x2')]},'destlanguage':{'type':Sequelize[_0x77e2('0x2')]},'destaccountcode':{'type':Sequelize[_0x77e2('0x2')]},'destcontext':{'type':Sequelize[_0x77e2('0x2')]},'destexten':{'type':Sequelize['STRING']},'destpriority':{'type':Sequelize[_0x77e2('0x2')]},'destuniqueid':{'type':Sequelize[_0x77e2('0x2')]},'answeredelsewheredestinationuniqueid':{'type':Sequelize['STRING']},'answeredelsewheremembername':{'type':Sequelize[_0x77e2('0x2')]},'transfer':{'type':Sequelize[_0x77e2('0x5')],'defaultValue':![]},'transfertype':{'type':Sequelize[_0x77e2('0x2')],'comment':_0x77e2('0x6')},'transferexten':{'type':Sequelize[_0x77e2('0x2')]},'transferuniqueid':{'type':Sequelize[_0x77e2('0x2')]},'agententerreason':{'type':Sequelize[_0x77e2('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(_0x1589dd,_0x2b9d22){var _0x1bddd1=function(_0x3687f8){while(--_0x3687f8){_0x1589dd['push'](_0x1589dd['shift']());}};_0x1bddd1(++_0x2b9d22);}(_0xa9e0,0x123));var _0x0a9e=function(_0x3ce3c,_0x319337){_0x3ce3c=_0x3ce3c-0x0;var _0x55a2c9=_0xa9e0[_0x3ce3c];return _0x55a2c9;};'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(_0x46e363,_0x45d7e2){var _0x3fb059=function(_0x5e6274){while(--_0x5e6274){_0x46e363['push'](_0x46e363['shift']());}};_0x3fb059(++_0x45d7e2);}(_0xa9e0,0x123));var _0x0a9e=function(_0x2b4411,_0x2625ed){_0x2b4411=_0x2b4411-0x0;var _0x8e41ef=_0xa9e0[_0x2b4411];return _0x8e41ef;};'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 _0x5fd1=['exports','define','VoiceAgentReport','uniqueid','destuniqueid','lodash','../../config/logger','api','moment','path','rimraf','../../config/environment'];(function(_0x88cd7b,_0x4c884c){var _0x56fcc8=function(_0x513b3d){while(--_0x513b3d){_0x88cd7b['push'](_0x88cd7b['shift']());}};_0x56fcc8(++_0x4c884c);}(_0x5fd1,0x155));var _0x15fd=function(_0x4de9df,_0x1d5c49){_0x4de9df=_0x4de9df-0x0;var _0x58b88b=_0x5fd1[_0x4de9df];return _0x58b88b;};'use strict';var _=require(_0x15fd('0x0'));var util=require('util');var logger=require(_0x15fd('0x1'))(_0x15fd('0x2'));var moment=require(_0x15fd('0x3'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0x15fd('0x4'));var rimraf=require(_0x15fd('0x5'));var config=require(_0x15fd('0x6'));var attributes=require('./voiceAgentReport.attributes');module[_0x15fd('0x7')]=function(_0x386441,_0x18450c){return _0x386441[_0x15fd('0x8')](_0x15fd('0x9'),attributes,{'tableName':'report_agent','paranoid':![],'indexes':[{'fields':[_0x15fd('0xa'),_0x15fd('0xb')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0xb138=['moment','bluebird','request-promise','rimraf','../../config/environment','./voiceAgentReport.attributes','VoiceAgentReport','report_agent','uniqueid','lodash','util','../../config/logger','api'];(function(_0x36884e,_0x48008f){var _0x1cc367=function(_0x388a78){while(--_0x388a78){_0x36884e['push'](_0x36884e['shift']());}};_0x1cc367(++_0x48008f);}(_0xb138,0x1dd));var _0x8b13=function(_0x529b98,_0x3c4df7){_0x529b98=_0x529b98-0x0;var _0x2fbce3=_0xb138[_0x529b98];return _0x2fbce3;};'use strict';var _=require(_0x8b13('0x0'));var util=require(_0x8b13('0x1'));var logger=require(_0x8b13('0x2'))(_0x8b13('0x3'));var moment=require(_0x8b13('0x4'));var BPromise=require(_0x8b13('0x5'));var rp=require(_0x8b13('0x6'));var fs=require('fs');var path=require('path');var rimraf=require(_0x8b13('0x7'));var config=require(_0x8b13('0x8'));var attributes=require(_0x8b13('0x9'));module['exports']=function(_0xd19a0f,_0x13f7bd){return _0xd19a0f['define'](_0x8b13('0xa'),attributes,{'tableName':_0x8b13('0xb'),'paranoid':![],'indexes':[{'fields':[_0x8b13('0xc'),'destuniqueid']}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3812=['message','info','result','catch','CreateVoiceAgentReport','VoiceAgentReport','body','options','UpdateVoiceAgentReport','update','raw','where','attributes','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','client','request','then','VoiceAgentReport,\x20%s,\x20%s','request\x20sent','debug','VoiceAgentReport,\x20%s,\x20%s,\x20%s','stringify','error','code'];(function(_0x5eff00,_0xd00ddc){var _0x2a0943=function(_0x18ad37){while(--_0x18ad37){_0x5eff00['push'](_0x5eff00['shift']());}};_0x2a0943(++_0xd00ddc);}(_0x3812,0x1ad));var _0x2381=function(_0x4c635c,_0x2645e2){_0x4c635c=_0x4c635c-0x0;var _0x1dfc21=_0x3812[_0x4c635c];return _0x1dfc21;};'use strict';var _=require('lodash');var util=require(_0x2381('0x0'));var moment=require(_0x2381('0x1'));var BPromise=require(_0x2381('0x2'));var rs=require(_0x2381('0x3'));var fs=require('fs');var Redis=require(_0x2381('0x4'));var db=require(_0x2381('0x5'))['db'];var utils=require(_0x2381('0x6'));var logger=require(_0x2381('0x7'))('rpc');var config=require(_0x2381('0x8'));var jayson=require('jayson/promise');var client=jayson[_0x2381('0x9')]['http']({'port':0x232a});function respondWithRpcPromise(_0x2c0c94,_0x79fc59,_0x54cab2){return new BPromise(function(_0x174d7e,_0x1a25f4){return client[_0x2381('0xa')](_0x2c0c94,_0x54cab2)[_0x2381('0xb')](function(_0x28e733){logger['info'](_0x2381('0xc'),_0x79fc59,_0x2381('0xd'));logger[_0x2381('0xe')](_0x2381('0xf'),_0x79fc59,'request\x20sent',JSON[_0x2381('0x10')](_0x28e733));if(_0x28e733['error']){if(_0x28e733[_0x2381('0x11')][_0x2381('0x12')]===0x1f4){logger[_0x2381('0x11')](_0x2381('0xc'),_0x79fc59,_0x28e733[_0x2381('0x11')][_0x2381('0x13')]);return _0x1a25f4(_0x28e733['error']['message']);}logger[_0x2381('0x11')](_0x2381('0xc'),_0x79fc59,_0x28e733[_0x2381('0x11')][_0x2381('0x13')]);return _0x174d7e(_0x28e733[_0x2381('0x11')][_0x2381('0x13')]);}else{logger[_0x2381('0x14')](_0x2381('0xc'),_0x79fc59,'request\x20sent');_0x174d7e(_0x28e733[_0x2381('0x15')]['message']);}})[_0x2381('0x16')](function(_0x485666){logger[_0x2381('0x11')]('VoiceAgentReport,\x20%s,\x20%s',_0x79fc59,_0x485666);_0x1a25f4(_0x485666);});});}exports[_0x2381('0x17')]=function(_0x593338){var _0x2639f4=this;return new Promise(function(_0x3e0da6,_0x4a52ac){return db[_0x2381('0x18')]['create'](_0x593338[_0x2381('0x19')],{'raw':_0x593338[_0x2381('0x1a')]?_0x593338[_0x2381('0x1a')]['raw']===undefined?!![]:![]:!![]})[_0x2381('0xb')](function(_0x25e60c){logger[_0x2381('0x14')](_0x2381('0x17'),_0x593338);logger[_0x2381('0xe')](_0x2381('0x17'),_0x593338,JSON[_0x2381('0x10')](_0x25e60c));_0x3e0da6(_0x25e60c);})[_0x2381('0x16')](function(_0x62b344){logger['error'](_0x2381('0x17'),_0x62b344['message'],_0x593338);_0x4a52ac(_0x2639f4[_0x2381('0x11')](0x1f4,_0x62b344[_0x2381('0x13')]));});});};exports[_0x2381('0x1b')]=function(_0x24bb33){var _0x28c5b0=this;return new Promise(function(_0x2c8841,_0x8d39ac){return db[_0x2381('0x18')][_0x2381('0x1c')](_0x24bb33[_0x2381('0x19')],{'raw':_0x24bb33[_0x2381('0x1a')]?_0x24bb33[_0x2381('0x1a')][_0x2381('0x1d')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x24bb33[_0x2381('0x1a')]?_0x24bb33[_0x2381('0x1a')][_0x2381('0x1e')]||null:null,'attributes':_0x24bb33['options']?_0x24bb33[_0x2381('0x1a')][_0x2381('0x1f')]||null:null,'limit':_0x24bb33[_0x2381('0x1a')]?_0x24bb33[_0x2381('0x1a')]['limit']||null:null})['then'](function(_0x10651c){logger[_0x2381('0x14')](_0x2381('0x1b'),_0x24bb33);logger[_0x2381('0xe')](_0x2381('0x1b'),_0x24bb33,JSON[_0x2381('0x10')](_0x10651c));_0x2c8841(_0x10651c);})[_0x2381('0x16')](function(_0x2de2ca){logger[_0x2381('0x11')]('UpdateVoiceAgentReport',_0x2de2ca[_0x2381('0x13')],_0x24bb33);_0x8d39ac(_0x28c5b0[_0x2381('0x11')](0x1f4,_0x2de2ca[_0x2381('0x13')]));});});};
\ No newline at end of file
+var _0xd160=['../../mysqldb','../../config/logger','rpc','client','request','info','VoiceAgentReport,\x20%s,\x20%s','request\x20sent','VoiceAgentReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','CreateVoiceAgentReport','VoiceAgentReport','body','options','raw','then','UpdateVoiceAgentReport','update','where','limit','debug','lodash','moment','bluebird','randomstring','ioredis'];(function(_0x57b54c,_0x54ce0d){var _0x59cc19=function(_0xa33bc6){while(--_0xa33bc6){_0x57b54c['push'](_0x57b54c['shift']());}};_0x59cc19(++_0x54ce0d);}(_0xd160,0xb5));var _0x0d16=function(_0x529abc,_0x17b97e){_0x529abc=_0x529abc-0x0;var _0x453afa=_0xd160[_0x529abc];return _0x453afa;};'use strict';var _=require(_0x0d16('0x0'));var util=require('util');var moment=require(_0x0d16('0x1'));var BPromise=require(_0x0d16('0x2'));var rs=require(_0x0d16('0x3'));var fs=require('fs');var Redis=require(_0x0d16('0x4'));var db=require(_0x0d16('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0x0d16('0x6'))(_0x0d16('0x7'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0x0d16('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0x2f3b5b,_0x25ba58,_0x991bc2){return new BPromise(function(_0x42b8e6,_0x5a6990){return client[_0x0d16('0x9')](_0x2f3b5b,_0x991bc2)['then'](function(_0x48e1a3){logger[_0x0d16('0xa')](_0x0d16('0xb'),_0x25ba58,_0x0d16('0xc'));logger['debug'](_0x0d16('0xd'),_0x25ba58,_0x0d16('0xc'),JSON[_0x0d16('0xe')](_0x48e1a3));if(_0x48e1a3['error']){if(_0x48e1a3[_0x0d16('0xf')][_0x0d16('0x10')]===0x1f4){logger[_0x0d16('0xf')](_0x0d16('0xb'),_0x25ba58,_0x48e1a3['error'][_0x0d16('0x11')]);return _0x5a6990(_0x48e1a3[_0x0d16('0xf')][_0x0d16('0x11')]);}logger['error'](_0x0d16('0xb'),_0x25ba58,_0x48e1a3[_0x0d16('0xf')][_0x0d16('0x11')]);return _0x42b8e6(_0x48e1a3[_0x0d16('0xf')][_0x0d16('0x11')]);}else{logger[_0x0d16('0xa')](_0x0d16('0xb'),_0x25ba58,_0x0d16('0xc'));_0x42b8e6(_0x48e1a3[_0x0d16('0x12')][_0x0d16('0x11')]);}})[_0x0d16('0x13')](function(_0x2086a4){logger[_0x0d16('0xf')](_0x0d16('0xb'),_0x25ba58,_0x2086a4);_0x5a6990(_0x2086a4);});});}exports[_0x0d16('0x14')]=function(_0x1ff59d){var _0x466b4b=this;return new Promise(function(_0x33bbfc,_0x137f65){return db[_0x0d16('0x15')]['create'](_0x1ff59d[_0x0d16('0x16')],{'raw':_0x1ff59d[_0x0d16('0x17')]?_0x1ff59d[_0x0d16('0x17')][_0x0d16('0x18')]===undefined?!![]:![]:!![]})[_0x0d16('0x19')](function(_0x49bdc5){logger[_0x0d16('0xa')](_0x0d16('0x14'),_0x1ff59d);logger['debug'](_0x0d16('0x14'),_0x1ff59d,JSON['stringify'](_0x49bdc5));_0x33bbfc(_0x49bdc5);})[_0x0d16('0x13')](function(_0xa13320){logger[_0x0d16('0xf')]('CreateVoiceAgentReport',_0xa13320['message'],_0x1ff59d);_0x137f65(_0x466b4b[_0x0d16('0xf')](0x1f4,_0xa13320[_0x0d16('0x11')]));});});};exports[_0x0d16('0x1a')]=function(_0x2a9943){var _0x33fbc7=this;return new Promise(function(_0x4aa0e7,_0x586564){return db[_0x0d16('0x15')][_0x0d16('0x1b')](_0x2a9943[_0x0d16('0x16')],{'raw':_0x2a9943[_0x0d16('0x17')]?_0x2a9943[_0x0d16('0x17')]['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x2a9943[_0x0d16('0x17')]?_0x2a9943[_0x0d16('0x17')][_0x0d16('0x1c')]||null:null,'attributes':_0x2a9943[_0x0d16('0x17')]?_0x2a9943['options']['attributes']||null:null,'limit':_0x2a9943['options']?_0x2a9943[_0x0d16('0x17')][_0x0d16('0x1d')]||null:null})['then'](function(_0x4a728e){logger[_0x0d16('0xa')](_0x0d16('0x1a'),_0x2a9943);logger[_0x0d16('0x1e')]('UpdateVoiceAgentReport',_0x2a9943,JSON[_0x0d16('0xe')](_0x4a728e));_0x4aa0e7(_0x4a728e);})[_0x0d16('0x13')](function(_0x57ba63){logger['error'](_0x0d16('0x1a'),_0x57ba63[_0x0d16('0x11')],_0x2a9943);_0x586564(_0x33fbc7[_0x0d16('0xf')](0x1f4,_0x57ba63[_0x0d16('0x11')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf873=['destroy','exports','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','/describe','describe','/:id','post','create','put','update','delete'];(function(_0x4354fb,_0x462678){var _0x261667=function(_0x235dc7){while(--_0x235dc7){_0x4354fb['push'](_0x4354fb['shift']());}};_0x261667(++_0x462678);}(_0xf873,0xb2));var _0x3f87=function(_0x3aea9e,_0x18ea32){_0x3aea9e=_0x3aea9e-0x0;var _0x458175=_0xf873[_0x3aea9e];return _0x458175;};'use strict';var multer=require('multer');var util=require(_0x3f87('0x0'));var path=require(_0x3f87('0x1'));var timeout=require(_0x3f87('0x2'));var express=require(_0x3f87('0x3'));var router=express[_0x3f87('0x4')]();var fs_extra=require(_0x3f87('0x5'));var auth=require(_0x3f87('0x6'));var interaction=require(_0x3f87('0x7'));var config=require(_0x3f87('0x8'));var controller=require('./voiceCallReport.controller');router[_0x3f87('0x9')]('/',auth[_0x3f87('0xa')](),controller[_0x3f87('0xb')]);router['get'](_0x3f87('0xc'),auth[_0x3f87('0xa')](),controller[_0x3f87('0xd')]);router[_0x3f87('0x9')](_0x3f87('0xe'),auth[_0x3f87('0xa')](),controller['show']);router[_0x3f87('0xf')]('/',auth[_0x3f87('0xa')](),controller[_0x3f87('0x10')]);router[_0x3f87('0x11')](_0x3f87('0xe'),auth[_0x3f87('0xa')](),controller[_0x3f87('0x12')]);router[_0x3f87('0x13')](_0x3f87('0xe'),auth[_0x3f87('0xa')](),controller[_0x3f87('0x14')]);module[_0x3f87('0x15')]=router;
\ No newline at end of file
+var _0x6c7b=['./voiceCallReport.controller','get','isAuthenticated','index','describe','/:id','show','post','update','delete','destroy','multer','express','fs-extra','../../components/auth/service','../../components/interaction/service'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x6c7b,0x10b));var _0xb6c7=function(_0x5d7ea1,_0x1091e9){_0x5d7ea1=_0x5d7ea1-0x0;var _0x5724a6=_0x6c7b[_0x5d7ea1];return _0x5724a6;};'use strict';var multer=require(_0xb6c7('0x0'));var util=require('util');var path=require('path');var timeout=require('connect-timeout');var express=require(_0xb6c7('0x1'));var router=express['Router']();var fs_extra=require(_0xb6c7('0x2'));var auth=require(_0xb6c7('0x3'));var interaction=require(_0xb6c7('0x4'));var config=require('../../config/environment');var controller=require(_0xb6c7('0x5'));router[_0xb6c7('0x6')]('/',auth[_0xb6c7('0x7')](),controller[_0xb6c7('0x8')]);router[_0xb6c7('0x6')]('/describe',auth[_0xb6c7('0x7')](),controller[_0xb6c7('0x9')]);router[_0xb6c7('0x6')](_0xb6c7('0xa'),auth[_0xb6c7('0x7')](),controller[_0xb6c7('0xb')]);router[_0xb6c7('0xc')]('/',auth[_0xb6c7('0x7')](),controller['create']);router['put'](_0xb6c7('0xa'),auth[_0xb6c7('0x7')](),controller[_0xb6c7('0xd')]);router[_0xb6c7('0xe')](_0xb6c7('0xa'),auth[_0xb6c7('0x7')](),controller[_0xb6c7('0xf')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x32e7=['inbound','outbound','inbound-fax','outbound-fax','dialer','TEXT','DATE','INTEGER','sequelize','STRING','ENUM'];(function(_0x495aa5,_0x3b8162){var _0xa37725=function(_0x163ff7){while(--_0x163ff7){_0x495aa5['push'](_0x495aa5['shift']());}};_0xa37725(++_0x3b8162);}(_0x32e7,0xc3));var _0x732e=function(_0xb6b21,_0x190507){_0xb6b21=_0xb6b21-0x0;var _0x2c9a27=_0x32e7[_0xb6b21];return _0x2c9a27;};'use strict';var Sequelize=require(_0x732e('0x0'));module['exports']={'uniqueid':{'type':Sequelize[_0x732e('0x1')]},'type':{'type':Sequelize[_0x732e('0x2')](_0x732e('0x3'),'internal',_0x732e('0x4'),_0x732e('0x5'),_0x732e('0x6'),_0x732e('0x7'))},'tag':{'type':Sequelize['STRING']},'accountcode':{'type':Sequelize['STRING']},'source':{'type':Sequelize[_0x732e('0x1')]},'destination':{'type':Sequelize['STRING']},'destinationcontext':{'type':Sequelize[_0x732e('0x1')]},'callerid':{'type':Sequelize[_0x732e('0x1')]},'channel':{'type':Sequelize['STRING']},'destinationchannel':{'type':Sequelize[_0x732e('0x1')]},'lastapplication':{'type':Sequelize[_0x732e('0x1')]},'lastdata':{'type':Sequelize[_0x732e('0x8')]},'starttime':{'type':Sequelize['DATE']},'systemanswertime':{'type':Sequelize[_0x732e('0x9')]},'answertime':{'type':Sequelize['DATE']},'endtime':{'type':Sequelize[_0x732e('0x9')]},'duration':{'type':Sequelize[_0x732e('0xa')]},'billableseconds':{'type':Sequelize[_0x732e('0xa')]},'mohtime':{'type':Sequelize[_0x732e('0xa')],'defaultValue':0x0},'disposition':{'type':Sequelize[_0x732e('0x1')]},'amaflags':{'type':Sequelize['STRING']},'userfield':{'type':Sequelize[_0x732e('0x1')]},'userDisposition':{'type':Sequelize[_0x732e('0x1')]},'userSecondDisposition':{'type':Sequelize[_0x732e('0x1')]},'userThirdDisposition':{'type':Sequelize[_0x732e('0x1')]},'note':{'type':Sequelize['STRING']},'prefix':{'type':Sequelize[_0x732e('0x1')]},'routeid':{'type':Sequelize[_0x732e('0xa')]},'sipcallid':{'type':Sequelize[_0x732e('0x1')]}};
\ No newline at end of file
+var _0xa88f=['outbound','inbound-fax','dialer','TEXT','DATE','INTEGER','sequelize','exports','STRING','ENUM'];(function(_0x41c91d,_0x31d2fe){var _0x467385=function(_0x29a66e){while(--_0x29a66e){_0x41c91d['push'](_0x41c91d['shift']());}};_0x467385(++_0x31d2fe);}(_0xa88f,0x182));var _0xfa88=function(_0x47df29,_0x1f4684){_0x47df29=_0x47df29-0x0;var _0x5cabaf=_0xa88f[_0x47df29];return _0x5cabaf;};'use strict';var Sequelize=require(_0xfa88('0x0'));module[_0xfa88('0x1')]={'uniqueid':{'type':Sequelize[_0xfa88('0x2')]},'type':{'type':Sequelize[_0xfa88('0x3')]('inbound','internal',_0xfa88('0x4'),_0xfa88('0x5'),'outbound-fax',_0xfa88('0x6'))},'tag':{'type':Sequelize[_0xfa88('0x2')]},'accountcode':{'type':Sequelize[_0xfa88('0x2')]},'source':{'type':Sequelize[_0xfa88('0x2')]},'destination':{'type':Sequelize['STRING']},'destinationcontext':{'type':Sequelize['STRING']},'callerid':{'type':Sequelize['STRING']},'channel':{'type':Sequelize[_0xfa88('0x2')]},'destinationchannel':{'type':Sequelize[_0xfa88('0x2')]},'lastapplication':{'type':Sequelize[_0xfa88('0x2')]},'lastdata':{'type':Sequelize[_0xfa88('0x7')]},'starttime':{'type':Sequelize['DATE']},'systemanswertime':{'type':Sequelize['DATE']},'answertime':{'type':Sequelize[_0xfa88('0x8')]},'endtime':{'type':Sequelize[_0xfa88('0x8')]},'duration':{'type':Sequelize[_0xfa88('0x9')]},'billableseconds':{'type':Sequelize['INTEGER']},'mohtime':{'type':Sequelize[_0xfa88('0x9')],'defaultValue':0x0},'disposition':{'type':Sequelize[_0xfa88('0x2')]},'amaflags':{'type':Sequelize['STRING']},'userfield':{'type':Sequelize[_0xfa88('0x2')]},'userDisposition':{'type':Sequelize[_0xfa88('0x2')]},'userSecondDisposition':{'type':Sequelize[_0xfa88('0x2')]},'userThirdDisposition':{'type':Sequelize[_0xfa88('0x2')]},'note':{'type':Sequelize[_0xfa88('0x2')]},'prefix':{'type':Sequelize[_0xfa88('0x2')]},'routeid':{'type':Sequelize['INTEGER']},'sipcallid':{'type':Sequelize[_0xfa88('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-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(_0x5e8b5d,_0x33ac0a){var _0x41d88e=function(_0x54ba79){while(--_0x54ba79){_0x5e8b5d['push'](_0x5e8b5d['shift']());}};_0x41d88e(++_0x33ac0a);}(_0xb10b,0x12a));var _0xbb10=function(_0x545e86,_0x46a2ed){_0x545e86=_0x545e86-0x0;var _0xa98055=_0xb10b[_0x545e86];return _0xa98055;};'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
+var _0x2ef3=['pick','filter','merge','options','VoiceCallReport','then','includeAll','include','fullname','alias','User','findAll','rows','catch','show','params','keys','find','create','destroy','describe','body','uniqueid','user','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','sox','to-csv','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','error','stack','name','send','map','rawAttributes','fieldName','type','key','model','query','filters','attributes','intersection','fields','length','hasOwnProperty','order','sort','where'];(function(_0x58c20f,_0x4cdb1b){var _0x3b0318=function(_0x36fa84){while(--_0x36fa84){_0x58c20f['push'](_0x58c20f['shift']());}};_0x3b0318(++_0x4cdb1b);}(_0x2ef3,0xba));var _0x32ef=function(_0x26c6db,_0x1e6617){_0x26c6db=_0x26c6db-0x0;var _0x398f07=_0x2ef3[_0x26c6db];return _0x398f07;};'use strict';var emlformat=require(_0x32ef('0x0'));var rimraf=require(_0x32ef('0x1'));var zipdir=require(_0x32ef('0x2'));var jsonpatch=require(_0x32ef('0x3'));var rp=require(_0x32ef('0x4'));var moment=require(_0x32ef('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x32ef('0x6'));var util=require(_0x32ef('0x7'));var path=require('path');var sox=require(_0x32ef('0x8'));var csv=require(_0x32ef('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x32ef('0xa'));var squel=require(_0x32ef('0xb'));var crypto=require(_0x32ef('0xc'));var jsforce=require(_0x32ef('0xd'));var deskjs=require(_0x32ef('0xe'));var toCsv=require(_0x32ef('0x9'));var querystring=require(_0x32ef('0xf'));var Papa=require(_0x32ef('0x10'));var Redis=require(_0x32ef('0x11'));var authService=require(_0x32ef('0x12'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x32ef('0x13'));var logger=require(_0x32ef('0x14'))(_0x32ef('0x15'));var utils=require(_0x32ef('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0x32ef('0x17'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x1a5106,_0x49d590){_0x49d590=_0x49d590||0xcc;return function(_0x3e98df){if(_0x3e98df){return _0x1a5106[_0x32ef('0x18')](_0x49d590);}return _0x1a5106['status'](_0x49d590)['end']();};}function respondWithResult(_0x19ce1,_0x4d8009){_0x4d8009=_0x4d8009||0xc8;return function(_0x326fce){if(_0x326fce){return _0x19ce1[_0x32ef('0x19')](_0x4d8009)[_0x32ef('0x1a')](_0x326fce);}};}function respondWithFilteredResult(_0x54c7f5,_0x57aff1){return function(_0x55bf0b){if(_0x55bf0b){var _0x531e30=typeof _0x57aff1[_0x32ef('0x1b')]===_0x32ef('0x1c')&&typeof _0x57aff1[_0x32ef('0x1d')]==='undefined';var _0x5d559b=_0x55bf0b[_0x32ef('0x1e')];var _0x1a9476=_0x531e30?0x0:_0x57aff1[_0x32ef('0x1b')];var _0x57863c=_0x531e30?_0x55bf0b[_0x32ef('0x1e')]:_0x57aff1[_0x32ef('0x1b')]+_0x57aff1['limit'];var _0x304505;if(_0x57863c>=_0x5d559b){_0x57863c=_0x5d559b;_0x304505=0xc8;}else{_0x304505=0xce;}_0x54c7f5[_0x32ef('0x19')](_0x304505);return _0x54c7f5[_0x32ef('0x1f')](_0x32ef('0x20'),_0x1a9476+'-'+_0x57863c+'/'+_0x5d559b)[_0x32ef('0x1a')](_0x55bf0b);}return null;};}function patchUpdates(_0x3aec05){return function(_0x4de441){try{jsonpatch[_0x32ef('0x21')](_0x4de441,_0x3aec05,!![]);}catch(_0x5cc3ef){return BPromise[_0x32ef('0x22')](_0x5cc3ef);}return _0x4de441[_0x32ef('0x23')]();};}function saveUpdates(_0x49f2d8,_0x1af371){return function(_0x97780){if(_0x97780){return _0x97780[_0x32ef('0x24')](_0x49f2d8)['then'](function(_0x57f5e5){return _0x57f5e5;});}return null;};}function removeEntity(_0x22f2d7,_0xb30fab){return function(_0x225feb){if(_0x225feb){return _0x225feb['destroy']()['then'](function(){_0x22f2d7[_0x32ef('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x51a412,_0x278495){return function(_0x14d4b3){if(!_0x14d4b3){_0x51a412[_0x32ef('0x18')](0x194);}return _0x14d4b3;};}function handleError(_0x1dbe98,_0x15ce54){_0x15ce54=_0x15ce54||0x1f4;return function(_0x234175){logger[_0x32ef('0x25')](_0x234175[_0x32ef('0x26')]);if(_0x234175[_0x32ef('0x27')]){delete _0x234175[_0x32ef('0x27')];}_0x1dbe98[_0x32ef('0x19')](_0x15ce54)[_0x32ef('0x28')](_0x234175);};}exports['index']=function(_0xd65fde,_0x2f5d06){var _0x5a04cd={},_0x12de1a={},_0x3c569d={'count':0x0,'rows':[]};var _0x30b250=_[_0x32ef('0x29')](db['VoiceCallReport'][_0x32ef('0x2a')],function(_0x22bf86){return{'name':_0x22bf86[_0x32ef('0x2b')],'type':_0x22bf86[_0x32ef('0x2c')][_0x32ef('0x2d')]};});_0x12de1a[_0x32ef('0x2e')]=_[_0x32ef('0x29')](_0x30b250,'name');_0x12de1a[_0x32ef('0x2f')]=_['keys'](_0xd65fde[_0x32ef('0x2f')]);_0x12de1a[_0x32ef('0x30')]=_['intersection'](_0x12de1a[_0x32ef('0x2e')],_0x12de1a[_0x32ef('0x2f')]);_0x5a04cd[_0x32ef('0x31')]=_[_0x32ef('0x32')](_0x12de1a[_0x32ef('0x2e')],qs['fields'](_0xd65fde['query'][_0x32ef('0x33')]));_0x5a04cd['attributes']=_0x5a04cd[_0x32ef('0x31')][_0x32ef('0x34')]?_0x5a04cd[_0x32ef('0x31')]:_0x12de1a[_0x32ef('0x2e')];if(!_0xd65fde[_0x32ef('0x2f')][_0x32ef('0x35')]('nolimit')){_0x5a04cd['limit']=qs['limit'](_0xd65fde[_0x32ef('0x2f')][_0x32ef('0x1d')]);_0x5a04cd[_0x32ef('0x1b')]=qs['offset'](_0xd65fde['query'][_0x32ef('0x1b')]);}_0x5a04cd[_0x32ef('0x36')]=qs[_0x32ef('0x37')](_0xd65fde['query']['sort']);_0x5a04cd[_0x32ef('0x38')]=qs[_0x32ef('0x30')](_[_0x32ef('0x39')](_0xd65fde[_0x32ef('0x2f')],_0x12de1a[_0x32ef('0x30')]),_0x30b250);if(_0xd65fde[_0x32ef('0x2f')][_0x32ef('0x3a')]){_0x5a04cd[_0x32ef('0x38')]=_[_0x32ef('0x3b')](_0x5a04cd['where'],{'$or':_[_0x32ef('0x29')](_0x30b250,function(_0x36e374){if(_0x36e374[_0x32ef('0x2c')]!=='VIRTUAL'){var _0x365125={};_0x365125[_0x36e374[_0x32ef('0x27')]]={'$like':'%'+_0xd65fde[_0x32ef('0x2f')][_0x32ef('0x3a')]+'%'};return _0x365125;}})});}_0x5a04cd=_[_0x32ef('0x3b')]({},_0x5a04cd,_0xd65fde[_0x32ef('0x3c')]);var _0x256c40={'where':_0x5a04cd[_0x32ef('0x38')]};return db[_0x32ef('0x3d')][_0x32ef('0x1e')](_0x256c40)[_0x32ef('0x3e')](function(_0x4615b4){_0x3c569d['count']=_0x4615b4;if(_0xd65fde[_0x32ef('0x2f')][_0x32ef('0x3f')]){_0x5a04cd[_0x32ef('0x40')]=[{'attributes':['id',_0x32ef('0x27'),_0x32ef('0x41'),_0x32ef('0x42')],'model':db[_0x32ef('0x43')],'as':'User'}];}return db['VoiceCallReport'][_0x32ef('0x44')](_0x5a04cd);})[_0x32ef('0x3e')](function(_0x2a33dd){_0x3c569d[_0x32ef('0x45')]=_0x2a33dd;return _0x3c569d;})['then'](respondWithFilteredResult(_0x2f5d06,_0x5a04cd))[_0x32ef('0x46')](handleError(_0x2f5d06,null));};exports[_0x32ef('0x47')]=function(_0x5d2f06,_0x4744ba){var _0x4bc5bc={'raw':!![],'where':{'id':_0x5d2f06[_0x32ef('0x48')]['id']}},_0xcb3c08={};_0xcb3c08[_0x32ef('0x2e')]=_[_0x32ef('0x49')](db[_0x32ef('0x3d')][_0x32ef('0x2a')]);_0xcb3c08[_0x32ef('0x2f')]=_[_0x32ef('0x49')](_0x5d2f06[_0x32ef('0x2f')]);_0xcb3c08[_0x32ef('0x30')]=_['intersection'](_0xcb3c08[_0x32ef('0x2e')],_0xcb3c08['query']);_0x4bc5bc[_0x32ef('0x31')]=_[_0x32ef('0x32')](_0xcb3c08[_0x32ef('0x2e')],qs['fields'](_0x5d2f06[_0x32ef('0x2f')][_0x32ef('0x33')]));_0x4bc5bc[_0x32ef('0x31')]=_0x4bc5bc[_0x32ef('0x31')][_0x32ef('0x34')]?_0x4bc5bc[_0x32ef('0x31')]:_0xcb3c08[_0x32ef('0x2e')];if(_0x5d2f06['query']['includeAll']){_0x4bc5bc[_0x32ef('0x40')]=[{'all':!![]}];}_0x4bc5bc=_[_0x32ef('0x3b')]({},_0x4bc5bc,_0x5d2f06[_0x32ef('0x3c')]);return db[_0x32ef('0x3d')][_0x32ef('0x4a')](_0x4bc5bc)[_0x32ef('0x3e')](handleEntityNotFound(_0x4744ba,null))[_0x32ef('0x3e')](respondWithResult(_0x4744ba,null))[_0x32ef('0x46')](handleError(_0x4744ba,null));};exports[_0x32ef('0x4b')]=function(_0x1ebedf,_0x35a294){return db[_0x32ef('0x3d')][_0x32ef('0x4b')](_0x1ebedf['body'],{})[_0x32ef('0x3e')](respondWithResult(_0x35a294,0xc9))[_0x32ef('0x46')](handleError(_0x35a294,null));};exports[_0x32ef('0x4c')]=function(_0xd42609,_0x1cc9f3){return db[_0x32ef('0x3d')][_0x32ef('0x4a')]({'where':{'id':_0xd42609[_0x32ef('0x48')]['id']}})[_0x32ef('0x3e')](handleEntityNotFound(_0x1cc9f3,null))[_0x32ef('0x3e')](removeEntity(_0x1cc9f3,null))[_0x32ef('0x46')](handleError(_0x1cc9f3,null));};exports[_0x32ef('0x4d')]=function(_0x272377,_0x326445){return db[_0x32ef('0x3d')][_0x32ef('0x4d')]()[_0x32ef('0x3e')](respondWithResult(_0x326445,null))[_0x32ef('0x46')](handleError(_0x326445,null));};exports['update']=function(_0x515ac9,_0x179c2f){if(_0x515ac9[_0x32ef('0x4e')][_0x32ef('0x4f')]){delete _0x515ac9[_0x32ef('0x4e')][_0x32ef('0x4f')];}return db[_0x32ef('0x3d')][_0x32ef('0x4a')]({'where':{'uniqueid':_0x515ac9[_0x32ef('0x48')]['id'],'UserId':{'$or':[null,_0x515ac9[_0x32ef('0x50')]['id']]}}})[_0x32ef('0x3e')](handleEntityNotFound(_0x179c2f,null))[_0x32ef('0x3e')](saveUpdates(_0x515ac9['body'],null))[_0x32ef('0x3e')](respondWithResult(_0x179c2f,null))[_0x32ef('0x46')](handleError(_0x179c2f,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb7e9=['../../config/logger','api','moment','bluebird','request-promise','rimraf','../../config/environment','exports','define','VoiceCallReport','report_call','lodash','util'];(function(_0x4a209a,_0x575ff9){var _0x4b3c20=function(_0x1a50c1){while(--_0x1a50c1){_0x4a209a['push'](_0x4a209a['shift']());}};_0x4b3c20(++_0x575ff9);}(_0xb7e9,0xf5));var _0x9b7e=function(_0x5b311b,_0x3e0280){_0x5b311b=_0x5b311b-0x0;var _0x4fa0de=_0xb7e9[_0x5b311b];return _0x4fa0de;};'use strict';var _=require(_0x9b7e('0x0'));var util=require(_0x9b7e('0x1'));var logger=require(_0x9b7e('0x2'))(_0x9b7e('0x3'));var moment=require(_0x9b7e('0x4'));var BPromise=require(_0x9b7e('0x5'));var rp=require(_0x9b7e('0x6'));var fs=require('fs');var path=require('path');var rimraf=require(_0x9b7e('0x7'));var config=require(_0x9b7e('0x8'));var attributes=require('./voiceCallReport.attributes');module[_0x9b7e('0x9')]=function(_0x543fb4,_0x7f6db2){return _0x543fb4[_0x9b7e('0xa')](_0x9b7e('0xb'),attributes,{'tableName':_0x9b7e('0xc'),'paranoid':![],'indexes':[{'fields':['uniqueid']}],'timestamps':!![]});};
\ No newline at end of file
+var _0x3098=['./voiceCallReport.attributes','exports','define','report_call','lodash','util','../../config/logger','api','bluebird','request-promise','path','rimraf','../../config/environment'];(function(_0x5cb513,_0x16ed5f){var _0x505007=function(_0x44052c){while(--_0x44052c){_0x5cb513['push'](_0x5cb513['shift']());}};_0x505007(++_0x16ed5f);}(_0x3098,0x86));var _0x8309=function(_0x590b61,_0x4c4335){_0x590b61=_0x590b61-0x0;var _0x1a14dc=_0x3098[_0x590b61];return _0x1a14dc;};'use strict';var _=require(_0x8309('0x0'));var util=require(_0x8309('0x1'));var logger=require(_0x8309('0x2'))(_0x8309('0x3'));var moment=require('moment');var BPromise=require(_0x8309('0x4'));var rp=require(_0x8309('0x5'));var fs=require('fs');var path=require(_0x8309('0x6'));var rimraf=require(_0x8309('0x7'));var config=require(_0x8309('0x8'));var attributes=require(_0x8309('0x9'));module[_0x8309('0xa')]=function(_0x2ddf0b,_0x2aa50b){return _0x2ddf0b[_0x8309('0xb')]('VoiceCallReport',attributes,{'tableName':_0x8309('0xc'),'paranoid':![],'indexes':[{'fields':['uniqueid']}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf22a=['update','UpdateVoiceCallReport','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','jayson/promise','client','request','VoiceCallReport,\x20%s,\x20%s','debug','stringify','code','error','message','info','result','catch','VoiceCallReport','findAll','options','where','attributes','limit','map','include','model','GetVoiceCallReport','CreateVoiceCallReport','create','body','raw','then'];(function(_0x52a483,_0x14d19c){var _0x4ee0e0=function(_0x2ad935){while(--_0x2ad935){_0x52a483['push'](_0x52a483['shift']());}};_0x4ee0e0(++_0x14d19c);}(_0xf22a,0x160));var _0xaf22=function(_0x1eda20,_0x1149f4){_0x1eda20=_0x1eda20-0x0;var _0x31b953=_0xf22a[_0x1eda20];return _0x31b953;};'use strict';var _=require('lodash');var util=require('util');var moment=require('moment');var BPromise=require(_0xaf22('0x0'));var rs=require(_0xaf22('0x1'));var fs=require('fs');var Redis=require(_0xaf22('0x2'));var db=require(_0xaf22('0x3'))['db'];var utils=require(_0xaf22('0x4'));var logger=require(_0xaf22('0x5'))('rpc');var config=require('../../config/environment');var jayson=require(_0xaf22('0x6'));var client=jayson[_0xaf22('0x7')]['http']({'port':0x232a});function respondWithRpcPromise(_0x46156e,_0xc42fa9,_0x32300e){return new BPromise(function(_0x16a993,_0x513b95){return client[_0xaf22('0x8')](_0x46156e,_0x32300e)['then'](function(_0x24581f){logger['info'](_0xaf22('0x9'),_0xc42fa9,'request\x20sent');logger[_0xaf22('0xa')]('VoiceCallReport,\x20%s,\x20%s,\x20%s',_0xc42fa9,'request\x20sent',JSON[_0xaf22('0xb')](_0x24581f));if(_0x24581f['error']){if(_0x24581f['error'][_0xaf22('0xc')]===0x1f4){logger[_0xaf22('0xd')](_0xaf22('0x9'),_0xc42fa9,_0x24581f[_0xaf22('0xd')][_0xaf22('0xe')]);return _0x513b95(_0x24581f[_0xaf22('0xd')][_0xaf22('0xe')]);}logger[_0xaf22('0xd')](_0xaf22('0x9'),_0xc42fa9,_0x24581f['error']['message']);return _0x16a993(_0x24581f['error'][_0xaf22('0xe')]);}else{logger[_0xaf22('0xf')](_0xaf22('0x9'),_0xc42fa9,'request\x20sent');_0x16a993(_0x24581f[_0xaf22('0x10')][_0xaf22('0xe')]);}})[_0xaf22('0x11')](function(_0x3c2077){logger[_0xaf22('0xd')]('VoiceCallReport,\x20%s,\x20%s',_0xc42fa9,_0x3c2077);_0x513b95(_0x3c2077);});});}exports['GetVoiceCallReport']=function(_0x567846){var _0x4a285d=this;return new Promise(function(_0xbd05d3,_0x5479bd){return db[_0xaf22('0x12')][_0xaf22('0x13')]({'raw':_0x567846[_0xaf22('0x14')]?_0x567846[_0xaf22('0x14')]['raw']===undefined?!![]:![]:!![],'where':_0x567846[_0xaf22('0x14')]?_0x567846['options'][_0xaf22('0x15')]||null:null,'attributes':_0x567846[_0xaf22('0x14')]?_0x567846['options'][_0xaf22('0x16')]||null:null,'limit':_0x567846[_0xaf22('0x14')]?_0x567846[_0xaf22('0x14')][_0xaf22('0x17')]||null:null,'include':_0x567846[_0xaf22('0x14')]?_0x567846[_0xaf22('0x14')]['include']?_[_0xaf22('0x18')](_0x567846[_0xaf22('0x14')][_0xaf22('0x19')],function(_0x2a2158){return{'model':db[_0x2a2158[_0xaf22('0x1a')]],'as':_0x2a2158['as'],'attributes':_0x2a2158[_0xaf22('0x16')],'include':_0x2a2158[_0xaf22('0x19')]?_[_0xaf22('0x18')](_0x2a2158[_0xaf22('0x19')],function(_0x4f4fee){return{'model':db[_0x4f4fee['model']],'as':_0x4f4fee['as'],'attributes':_0x4f4fee[_0xaf22('0x16')],'include':_0x4f4fee[_0xaf22('0x19')]?_[_0xaf22('0x18')](_0x4f4fee[_0xaf22('0x19')],function(_0x41b4c0){return{'model':db[_0x41b4c0['model']],'as':_0x41b4c0['as'],'attributes':_0x41b4c0['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x3f104c){logger['info'](_0xaf22('0x1b'),_0x567846);logger[_0xaf22('0xa')](_0xaf22('0x1b'),_0x567846,JSON[_0xaf22('0xb')](_0x3f104c));_0xbd05d3(_0x3f104c);})[_0xaf22('0x11')](function(_0x17761d){logger[_0xaf22('0xd')]('GetVoiceCallReport',_0x17761d[_0xaf22('0xe')],_0x567846);_0x5479bd(_0x4a285d[_0xaf22('0xd')](0x1f4,_0x17761d[_0xaf22('0xe')]));});});};exports[_0xaf22('0x1c')]=function(_0x3a19c0){var _0x362fbb=this;return new Promise(function(_0x335b67,_0x326d9b){return db[_0xaf22('0x12')][_0xaf22('0x1d')](_0x3a19c0[_0xaf22('0x1e')],{'raw':_0x3a19c0[_0xaf22('0x14')]?_0x3a19c0[_0xaf22('0x14')][_0xaf22('0x1f')]===undefined?!![]:![]:!![]})[_0xaf22('0x20')](function(_0x2221a1){logger['info']('CreateVoiceCallReport',_0x3a19c0);logger['debug'](_0xaf22('0x1c'),_0x3a19c0,JSON[_0xaf22('0xb')](_0x2221a1));_0x335b67(_0x2221a1);})[_0xaf22('0x11')](function(_0x2814de){logger[_0xaf22('0xd')](_0xaf22('0x1c'),_0x2814de[_0xaf22('0xe')],_0x3a19c0);_0x326d9b(_0x362fbb[_0xaf22('0xd')](0x1f4,_0x2814de['message']));});});};exports['UpdateVoiceCallReport']=function(_0xdc5e7d){var _0x42adf3=this;return new Promise(function(_0x469e95,_0x501bd3){return db[_0xaf22('0x12')][_0xaf22('0x21')](_0xdc5e7d[_0xaf22('0x1e')],{'raw':_0xdc5e7d[_0xaf22('0x14')]?_0xdc5e7d[_0xaf22('0x14')][_0xaf22('0x1f')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0xdc5e7d['options']?_0xdc5e7d['options'][_0xaf22('0x15')]||null:null,'attributes':_0xdc5e7d['options']?_0xdc5e7d[_0xaf22('0x14')][_0xaf22('0x16')]||null:null,'limit':_0xdc5e7d[_0xaf22('0x14')]?_0xdc5e7d[_0xaf22('0x14')]['limit']||null:null})[_0xaf22('0x20')](function(_0x1c065e){logger[_0xaf22('0xf')](_0xaf22('0x22'),_0xdc5e7d);logger[_0xaf22('0xa')]('UpdateVoiceCallReport',_0xdc5e7d,JSON['stringify'](_0x1c065e));_0x469e95(_0x1c065e);})[_0xaf22('0x11')](function(_0xccb47f){logger['error'](_0xaf22('0x22'),_0xccb47f['message'],_0xdc5e7d);_0x501bd3(_0x42adf3[_0xaf22('0xd')](0x1f4,_0xccb47f[_0xaf22('0xe')]));});});};
\ No newline at end of file
+var _0x444e=['UpdateVoiceCallReport','limit','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','request','then','request\x20sent','debug','stringify','error','code','VoiceCallReport,\x20%s,\x20%s','message','result','catch','VoiceCallReport','findAll','options','raw','where','include','model','map','attributes','GetVoiceCallReport','CreateVoiceCallReport','create','body','info'];(function(_0xf4fa16,_0x22b678){var _0x269f4b=function(_0x409a37){while(--_0x409a37){_0xf4fa16['push'](_0xf4fa16['shift']());}};_0x269f4b(++_0x22b678);}(_0x444e,0x1ba));var _0xe444=function(_0xcbcb62,_0x36d33e){_0xcbcb62=_0xcbcb62-0x0;var _0x52d812=_0x444e[_0xcbcb62];return _0x52d812;};'use strict';var _=require(_0xe444('0x0'));var util=require(_0xe444('0x1'));var moment=require(_0xe444('0x2'));var BPromise=require(_0xe444('0x3'));var rs=require(_0xe444('0x4'));var fs=require('fs');var Redis=require(_0xe444('0x5'));var db=require(_0xe444('0x6'))['db'];var utils=require(_0xe444('0x7'));var logger=require(_0xe444('0x8'))(_0xe444('0x9'));var config=require(_0xe444('0xa'));var jayson=require('jayson/promise');var client=jayson[_0xe444('0xb')][_0xe444('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x35ffec,_0x30ff3f,_0x4cc864){return new BPromise(function(_0x385d6c,_0x131963){return client[_0xe444('0xd')](_0x35ffec,_0x4cc864)[_0xe444('0xe')](function(_0x54993d){logger['info']('VoiceCallReport,\x20%s,\x20%s',_0x30ff3f,_0xe444('0xf'));logger[_0xe444('0x10')]('VoiceCallReport,\x20%s,\x20%s,\x20%s',_0x30ff3f,_0xe444('0xf'),JSON[_0xe444('0x11')](_0x54993d));if(_0x54993d[_0xe444('0x12')]){if(_0x54993d[_0xe444('0x12')][_0xe444('0x13')]===0x1f4){logger['error'](_0xe444('0x14'),_0x30ff3f,_0x54993d[_0xe444('0x12')][_0xe444('0x15')]);return _0x131963(_0x54993d[_0xe444('0x12')][_0xe444('0x15')]);}logger[_0xe444('0x12')](_0xe444('0x14'),_0x30ff3f,_0x54993d['error'][_0xe444('0x15')]);return _0x385d6c(_0x54993d[_0xe444('0x12')][_0xe444('0x15')]);}else{logger['info'](_0xe444('0x14'),_0x30ff3f,'request\x20sent');_0x385d6c(_0x54993d[_0xe444('0x16')]['message']);}})[_0xe444('0x17')](function(_0x5e5cd1){logger[_0xe444('0x12')](_0xe444('0x14'),_0x30ff3f,_0x5e5cd1);_0x131963(_0x5e5cd1);});});}exports['GetVoiceCallReport']=function(_0x5d3d04){var _0x309cc4=this;return new Promise(function(_0x45b1c3,_0x2b51f7){return db[_0xe444('0x18')][_0xe444('0x19')]({'raw':_0x5d3d04[_0xe444('0x1a')]?_0x5d3d04[_0xe444('0x1a')][_0xe444('0x1b')]===undefined?!![]:![]:!![],'where':_0x5d3d04[_0xe444('0x1a')]?_0x5d3d04[_0xe444('0x1a')][_0xe444('0x1c')]||null:null,'attributes':_0x5d3d04['options']?_0x5d3d04['options']['attributes']||null:null,'limit':_0x5d3d04[_0xe444('0x1a')]?_0x5d3d04[_0xe444('0x1a')]['limit']||null:null,'include':_0x5d3d04[_0xe444('0x1a')]?_0x5d3d04[_0xe444('0x1a')][_0xe444('0x1d')]?_['map'](_0x5d3d04[_0xe444('0x1a')][_0xe444('0x1d')],function(_0x3f97a0){return{'model':db[_0x3f97a0[_0xe444('0x1e')]],'as':_0x3f97a0['as'],'attributes':_0x3f97a0['attributes'],'include':_0x3f97a0['include']?_[_0xe444('0x1f')](_0x3f97a0[_0xe444('0x1d')],function(_0x24ea89){return{'model':db[_0x24ea89['model']],'as':_0x24ea89['as'],'attributes':_0x24ea89[_0xe444('0x20')],'include':_0x24ea89['include']?_['map'](_0x24ea89[_0xe444('0x1d')],function(_0xe0b628){return{'model':db[_0xe0b628[_0xe444('0x1e')]],'as':_0xe0b628['as'],'attributes':_0xe0b628['attributes']};}):[]};}):[]};}):[]:[]})[_0xe444('0xe')](function(_0x49f6b5){logger['info'](_0xe444('0x21'),_0x5d3d04);logger[_0xe444('0x10')]('GetVoiceCallReport',_0x5d3d04,JSON['stringify'](_0x49f6b5));_0x45b1c3(_0x49f6b5);})[_0xe444('0x17')](function(_0xb198b8){logger[_0xe444('0x12')](_0xe444('0x21'),_0xb198b8['message'],_0x5d3d04);_0x2b51f7(_0x309cc4[_0xe444('0x12')](0x1f4,_0xb198b8['message']));});});};exports[_0xe444('0x22')]=function(_0x3c672a){var _0x4e8540=this;return new Promise(function(_0x2175a8,_0x44f236){return db[_0xe444('0x18')][_0xe444('0x23')](_0x3c672a[_0xe444('0x24')],{'raw':_0x3c672a['options']?_0x3c672a[_0xe444('0x1a')][_0xe444('0x1b')]===undefined?!![]:![]:!![]})[_0xe444('0xe')](function(_0x508591){logger[_0xe444('0x25')](_0xe444('0x22'),_0x3c672a);logger[_0xe444('0x10')](_0xe444('0x22'),_0x3c672a,JSON['stringify'](_0x508591));_0x2175a8(_0x508591);})[_0xe444('0x17')](function(_0x42b870){logger[_0xe444('0x12')](_0xe444('0x22'),_0x42b870['message'],_0x3c672a);_0x44f236(_0x4e8540[_0xe444('0x12')](0x1f4,_0x42b870['message']));});});};exports[_0xe444('0x26')]=function(_0x1c4dd4){var _0x5c63a7=this;return new Promise(function(_0x14b609,_0x3417af){return db[_0xe444('0x18')]['update'](_0x1c4dd4[_0xe444('0x24')],{'raw':_0x1c4dd4[_0xe444('0x1a')]?_0x1c4dd4[_0xe444('0x1a')][_0xe444('0x1b')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x1c4dd4[_0xe444('0x1a')]?_0x1c4dd4[_0xe444('0x1a')]['where']||null:null,'attributes':_0x1c4dd4['options']?_0x1c4dd4[_0xe444('0x1a')][_0xe444('0x20')]||null:null,'limit':_0x1c4dd4['options']?_0x1c4dd4[_0xe444('0x1a')][_0xe444('0x27')]||null:null})[_0xe444('0xe')](function(_0x5655d){logger[_0xe444('0x25')]('UpdateVoiceCallReport',_0x1c4dd4);logger[_0xe444('0x10')](_0xe444('0x26'),_0x1c4dd4,JSON[_0xe444('0x11')](_0x5655d));_0x14b609(_0x5655d);})[_0xe444('0x17')](function(_0x3f21a7){logger[_0xe444('0x12')]('UpdateVoiceCallReport',_0x3f21a7[_0xe444('0x15')],_0x1c4dd4);_0x3417af(_0x5c63a7[_0xe444('0x12')](0x1f4,_0x3f21a7[_0xe444('0x15')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5d84=['put','/:id','update','delete','exports','multer','util','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service','get','isAuthenticated','show','post'];(function(_0x146837,_0x2aa6a2){var _0x3d7e60=function(_0x1301ac){while(--_0x1301ac){_0x146837['push'](_0x146837['shift']());}};_0x3d7e60(++_0x2aa6a2);}(_0x5d84,0x85));var _0x45d8=function(_0x4378d0,_0x4013ef){_0x4378d0=_0x4378d0-0x0;var _0x219bcd=_0x5d84[_0x4378d0];return _0x219bcd;};'use strict';var multer=require(_0x45d8('0x0'));var util=require(_0x45d8('0x1'));var path=require('path');var timeout=require(_0x45d8('0x2'));var express=require(_0x45d8('0x3'));var router=express['Router']();var fs_extra=require(_0x45d8('0x4'));var auth=require(_0x45d8('0x5'));var interaction=require(_0x45d8('0x6'));var config=require('../../config/environment');var controller=require('./voiceChanSpy.controller');router[_0x45d8('0x7')]('/',auth[_0x45d8('0x8')](),controller['index']);router['get']('/:id',auth[_0x45d8('0x8')](),controller[_0x45d8('0x9')]);router[_0x45d8('0xa')]('/',auth[_0x45d8('0x8')](),controller['create']);router[_0x45d8('0xb')](_0x45d8('0xc'),auth[_0x45d8('0x8')](),controller[_0x45d8('0xd')]);router[_0x45d8('0xe')](_0x45d8('0xc'),auth['isAuthenticated'](),controller['destroy']);module[_0x45d8('0xf')]=router;
\ No newline at end of file
+var _0x1de2=['path','connect-timeout','Router','fs-extra','../../components/auth/service','../../config/environment','get','index','/:id','isAuthenticated','show','post','create','put','update','delete','destroy','exports','multer','util'];(function(_0x17b0d4,_0x377add){var _0x2d02c7=function(_0x56e627){while(--_0x56e627){_0x17b0d4['push'](_0x17b0d4['shift']());}};_0x2d02c7(++_0x377add);}(_0x1de2,0x9e));var _0x21de=function(_0x296923,_0x4adaed){_0x296923=_0x296923-0x0;var _0x29af70=_0x1de2[_0x296923];return _0x29af70;};'use strict';var multer=require(_0x21de('0x0'));var util=require(_0x21de('0x1'));var path=require(_0x21de('0x2'));var timeout=require(_0x21de('0x3'));var express=require('express');var router=express[_0x21de('0x4')]();var fs_extra=require(_0x21de('0x5'));var auth=require(_0x21de('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0x21de('0x7'));var controller=require('./voiceChanSpy.controller');router[_0x21de('0x8')]('/',auth['isAuthenticated'](),controller[_0x21de('0x9')]);router[_0x21de('0x8')](_0x21de('0xa'),auth[_0x21de('0xb')](),controller[_0x21de('0xc')]);router[_0x21de('0xd')]('/',auth[_0x21de('0xb')](),controller[_0x21de('0xe')]);router[_0x21de('0xf')](_0x21de('0xa'),auth[_0x21de('0xb')](),controller[_0x21de('0x10')]);router[_0x21de('0x11')](_0x21de('0xa'),auth[_0x21de('0xb')](),controller[_0x21de('0x12')]);module[_0x21de('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa031=['split','BOOLEAN','sequelize','exports','STRING','name','setDataValue','options','getDataValue'];(function(_0x1a72b8,_0x1e4f4b){var _0x39f72d=function(_0x35aef1){while(--_0x35aef1){_0x1a72b8['push'](_0x1a72b8['shift']());}};_0x39f72d(++_0x1e4f4b);}(_0xa031,0xbf));var _0x1a03=function(_0x2427ed,_0xbe0db){_0x2427ed=_0x2427ed-0x0;var _0x4b1188=_0xa031[_0x2427ed];return _0x4b1188;};'use strict';var Sequelize=require(_0x1a03('0x0'));module[_0x1a03('0x1')]={'name':{'type':Sequelize[_0x1a03('0x2')]},'prefix':{'type':Sequelize['STRING'],'unique':_0x1a03('0x3'),'allowNull':![]},'options':{'type':Sequelize['STRING'],'set':function(_0x429d02){this[_0x1a03('0x4')](_0x1a03('0x5'),_0x429d02?_0x429d02['join'](''):[]);},'get':function(){return this[_0x1a03('0x6')](_0x1a03('0x5'))?this[_0x1a03('0x6')](_0x1a03('0x5'))[_0x1a03('0x7')](''):[];}},'auth':{'type':Sequelize[_0x1a03('0x8')],'defaultValue':![]},'password':{'type':Sequelize['STRING']},'record':{'type':Sequelize[_0x1a03('0x8')],'defaultValue':![]},'recordingFormat':{'type':Sequelize[_0x1a03('0x2')]},'description':{'type':Sequelize[_0x1a03('0x2')]}};
\ No newline at end of file
+var _0x54f9=['options','split','BOOLEAN','sequelize','STRING','name'];(function(_0x1a5f94,_0x19b888){var _0x352348=function(_0x16c899){while(--_0x16c899){_0x1a5f94['push'](_0x1a5f94['shift']());}};_0x352348(++_0x19b888);}(_0x54f9,0x9f));var _0x954f=function(_0x15e77f,_0x339fdd){_0x15e77f=_0x15e77f-0x0;var _0x103dfa=_0x54f9[_0x15e77f];return _0x103dfa;};'use strict';var Sequelize=require(_0x954f('0x0'));module['exports']={'name':{'type':Sequelize[_0x954f('0x1')]},'prefix':{'type':Sequelize['STRING'],'unique':_0x954f('0x2'),'allowNull':![]},'options':{'type':Sequelize[_0x954f('0x1')],'set':function(_0x1b10b9){this['setDataValue'](_0x954f('0x3'),_0x1b10b9?_0x1b10b9['join'](''):[]);},'get':function(){return this['getDataValue'](_0x954f('0x3'))?this['getDataValue'](_0x954f('0x3'))[_0x954f('0x4')](''):[];}},'auth':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'password':{'type':Sequelize[_0x954f('0x1')]},'record':{'type':Sequelize[_0x954f('0x5')],'defaultValue':![]},'recordingFormat':{'type':Sequelize[_0x954f('0x1')]},'description':{'type':Sequelize[_0x954f('0x1')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe9f9=['save','update','then','ChanSpies','destroy','stack','name','send','index','VoiceChanSpy','rawAttributes','fieldName','key','model','map','query','keys','filters','intersection','attributes','fields','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','includeAll','include','findAll','rows','catch','length','find','create','body','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','userProfileId','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','sox','to-csv','fs-extra','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','limit','count','Content-Range','reject'];(function(_0x1644f2,_0x2884e8){var _0x1fcb31=function(_0x41773c){while(--_0x41773c){_0x1644f2['push'](_0x1644f2['shift']());}};_0x1fcb31(++_0x2884e8);}(_0xe9f9,0x174));var _0x9e9f=function(_0xfd7f57,_0x22bde5){_0xfd7f57=_0xfd7f57-0x0;var _0x46639b=_0xe9f9[_0xfd7f57];return _0x46639b;};'use strict';var emlformat=require(_0x9e9f('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x9e9f('0x1'));var jsonpatch=require(_0x9e9f('0x2'));var rp=require(_0x9e9f('0x3'));var moment=require(_0x9e9f('0x4'));var BPromise=require(_0x9e9f('0x5'));var Mustache=require('mustache');var util=require(_0x9e9f('0x6'));var path=require('path');var sox=require(_0x9e9f('0x7'));var csv=require(_0x9e9f('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x9e9f('0x9'));var _=require('lodash');var squel=require(_0x9e9f('0xa'));var crypto=require(_0x9e9f('0xb'));var jsforce=require(_0x9e9f('0xc'));var deskjs=require('desk.js');var toCsv=require(_0x9e9f('0x8'));var querystring=require(_0x9e9f('0xd'));var Papa=require(_0x9e9f('0xe'));var Redis=require(_0x9e9f('0xf'));var authService=require(_0x9e9f('0x10'));var qs=require(_0x9e9f('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x9e9f('0x12'));var logger=require(_0x9e9f('0x13'))(_0x9e9f('0x14'));var utils=require('../../config/utils');var config=require(_0x9e9f('0x15'));var licenseUtil=require(_0x9e9f('0x16'));var db=require(_0x9e9f('0x17'))['db'];function respondWithStatusCode(_0x43603d,_0x1320b2){_0x1320b2=_0x1320b2||0xcc;return function(_0x35a622){if(_0x35a622){return _0x43603d[_0x9e9f('0x18')](_0x1320b2);}return _0x43603d[_0x9e9f('0x19')](_0x1320b2)[_0x9e9f('0x1a')]();};}function respondWithResult(_0x563f55,_0x5433ba){_0x5433ba=_0x5433ba||0xc8;return function(_0x788dbe){if(_0x788dbe){return _0x563f55[_0x9e9f('0x19')](_0x5433ba)[_0x9e9f('0x1b')](_0x788dbe);}};}function respondWithFilteredResult(_0x34dcbb,_0x42c626){return function(_0x4322ce){if(_0x4322ce){var _0x4c5d54=typeof _0x42c626[_0x9e9f('0x1c')]==='undefined'&&typeof _0x42c626[_0x9e9f('0x1d')]==='undefined';var _0x5ba036=_0x4322ce['count'];var _0x3e1c64=_0x4c5d54?0x0:_0x42c626[_0x9e9f('0x1c')];var _0xfadc07=_0x4c5d54?_0x4322ce[_0x9e9f('0x1e')]:_0x42c626['offset']+_0x42c626[_0x9e9f('0x1d')];var _0x35f4f1;if(_0xfadc07>=_0x5ba036){_0xfadc07=_0x5ba036;_0x35f4f1=0xc8;}else{_0x35f4f1=0xce;}_0x34dcbb[_0x9e9f('0x19')](_0x35f4f1);return _0x34dcbb['set'](_0x9e9f('0x1f'),_0x3e1c64+'-'+_0xfadc07+'/'+_0x5ba036)[_0x9e9f('0x1b')](_0x4322ce);}return null;};}function patchUpdates(_0x3d9312){return function(_0x106572){try{jsonpatch['apply'](_0x106572,_0x3d9312,!![]);}catch(_0x5b5fdd){return BPromise[_0x9e9f('0x20')](_0x5b5fdd);}return _0x106572[_0x9e9f('0x21')]();};}function saveUpdates(_0x54f288,_0xae147a){return function(_0x24df03){if(_0x24df03){return _0x24df03[_0x9e9f('0x22')](_0x54f288)[_0x9e9f('0x23')](function(_0x4c8918){return _0x4c8918;});}return null;};}function removeEntity(_0x73314f,_0x1172c2){return function(_0x5937d9){if(_0x5937d9){return _0x5937d9['destroy']()[_0x9e9f('0x23')](function(){var _0x2ea441=_0x5937d9['get']({'plain':!![]});var _0x172dd1=_0x9e9f('0x24');return db['UserProfileResource'][_0x9e9f('0x25')]({'where':{'type':_0x172dd1,'resourceId':_0x2ea441['id']}})[_0x9e9f('0x23')](function(){return _0x5937d9;});})['then'](function(){_0x73314f['status'](0xcc)[_0x9e9f('0x1a')]();});}};}function handleEntityNotFound(_0x72485b,_0x3938c6){return function(_0xc12c4c){if(!_0xc12c4c){_0x72485b['sendStatus'](0x194);}return _0xc12c4c;};}function handleError(_0x139d63,_0x1db606){_0x1db606=_0x1db606||0x1f4;return function(_0x2c8020){logger['error'](_0x2c8020[_0x9e9f('0x26')]);if(_0x2c8020[_0x9e9f('0x27')]){delete _0x2c8020[_0x9e9f('0x27')];}_0x139d63['status'](_0x1db606)[_0x9e9f('0x28')](_0x2c8020);};}exports[_0x9e9f('0x29')]=function(_0x129e8b,_0x41ee84){var _0x3bb899={},_0x3eec7f={},_0x3b3a2a={'count':0x0,'rows':[]};var _0x24c0f3=_['map'](db[_0x9e9f('0x2a')][_0x9e9f('0x2b')],function(_0x2a5d5b){return{'name':_0x2a5d5b[_0x9e9f('0x2c')],'type':_0x2a5d5b['type'][_0x9e9f('0x2d')]};});_0x3eec7f[_0x9e9f('0x2e')]=_[_0x9e9f('0x2f')](_0x24c0f3,_0x9e9f('0x27'));_0x3eec7f[_0x9e9f('0x30')]=_[_0x9e9f('0x31')](_0x129e8b[_0x9e9f('0x30')]);_0x3eec7f[_0x9e9f('0x32')]=_[_0x9e9f('0x33')](_0x3eec7f[_0x9e9f('0x2e')],_0x3eec7f[_0x9e9f('0x30')]);_0x3bb899[_0x9e9f('0x34')]=_[_0x9e9f('0x33')](_0x3eec7f[_0x9e9f('0x2e')],qs[_0x9e9f('0x35')](_0x129e8b[_0x9e9f('0x30')][_0x9e9f('0x35')]));_0x3bb899['attributes']=_0x3bb899['attributes']['length']?_0x3bb899['attributes']:_0x3eec7f[_0x9e9f('0x2e')];if(!_0x129e8b[_0x9e9f('0x30')]['hasOwnProperty'](_0x9e9f('0x36'))){_0x3bb899['limit']=qs[_0x9e9f('0x1d')](_0x129e8b[_0x9e9f('0x30')][_0x9e9f('0x1d')]);_0x3bb899[_0x9e9f('0x1c')]=qs[_0x9e9f('0x1c')](_0x129e8b[_0x9e9f('0x30')][_0x9e9f('0x1c')]);}_0x3bb899[_0x9e9f('0x37')]=qs[_0x9e9f('0x38')](_0x129e8b[_0x9e9f('0x30')][_0x9e9f('0x38')]);_0x3bb899[_0x9e9f('0x39')]=qs[_0x9e9f('0x32')](_[_0x9e9f('0x3a')](_0x129e8b[_0x9e9f('0x30')],_0x3eec7f[_0x9e9f('0x32')]),_0x24c0f3);if(_0x129e8b[_0x9e9f('0x30')][_0x9e9f('0x3b')]){_0x3bb899[_0x9e9f('0x39')]=_[_0x9e9f('0x3c')](_0x3bb899['where'],{'$or':_[_0x9e9f('0x2f')](_0x24c0f3,function(_0x360eee){if(_0x360eee['type']!==_0x9e9f('0x3d')){var _0x210046={};_0x210046[_0x360eee[_0x9e9f('0x27')]]={'$like':'%'+_0x129e8b[_0x9e9f('0x30')][_0x9e9f('0x3b')]+'%'};return _0x210046;}})});}_0x3bb899=_['merge']({},_0x3bb899,_0x129e8b['options']);var _0x43cde9={'where':_0x3bb899['where']};return db[_0x9e9f('0x2a')][_0x9e9f('0x1e')](_0x43cde9)[_0x9e9f('0x23')](function(_0x485813){_0x3b3a2a[_0x9e9f('0x1e')]=_0x485813;if(_0x129e8b['query'][_0x9e9f('0x3e')]){_0x3bb899[_0x9e9f('0x3f')]=[{'all':!![]}];}return db[_0x9e9f('0x2a')][_0x9e9f('0x40')](_0x3bb899);})[_0x9e9f('0x23')](function(_0xad195){_0x3b3a2a[_0x9e9f('0x41')]=_0xad195;return _0x3b3a2a;})[_0x9e9f('0x23')](respondWithFilteredResult(_0x41ee84,_0x3bb899))[_0x9e9f('0x42')](handleError(_0x41ee84,null));};exports['show']=function(_0x2df2fb,_0x3e8e1d){var _0x83e25a={'raw':![],'where':{'id':_0x2df2fb['params']['id']}},_0x169060={};_0x169060['model']=_[_0x9e9f('0x31')](db['VoiceChanSpy']['rawAttributes']);_0x169060[_0x9e9f('0x30')]=_['keys'](_0x2df2fb[_0x9e9f('0x30')]);_0x169060[_0x9e9f('0x32')]=_['intersection'](_0x169060[_0x9e9f('0x2e')],_0x169060['query']);_0x83e25a[_0x9e9f('0x34')]=_[_0x9e9f('0x33')](_0x169060[_0x9e9f('0x2e')],qs[_0x9e9f('0x35')](_0x2df2fb[_0x9e9f('0x30')]['fields']));_0x83e25a[_0x9e9f('0x34')]=_0x83e25a[_0x9e9f('0x34')][_0x9e9f('0x43')]?_0x83e25a[_0x9e9f('0x34')]:_0x169060[_0x9e9f('0x2e')];if(_0x2df2fb[_0x9e9f('0x30')][_0x9e9f('0x3e')]){_0x83e25a[_0x9e9f('0x3f')]=[{'all':!![]}];}_0x83e25a=_[_0x9e9f('0x3c')]({},_0x83e25a,_0x2df2fb['options']);return db['VoiceChanSpy'][_0x9e9f('0x44')](_0x83e25a)[_0x9e9f('0x23')](handleEntityNotFound(_0x3e8e1d,null))['then'](respondWithResult(_0x3e8e1d,null))[_0x9e9f('0x42')](handleError(_0x3e8e1d,null));};exports[_0x9e9f('0x45')]=function(_0x22bec9,_0x1728b9){return db[_0x9e9f('0x2a')][_0x9e9f('0x45')](_0x22bec9[_0x9e9f('0x46')],{})[_0x9e9f('0x23')](function(_0x2f514b){var _0x5bcd58=_0x22bec9['user'][_0x9e9f('0x47')]({'plain':!![]});if(!_0x5bcd58)throw new Error(_0x9e9f('0x48'));if(_0x5bcd58[_0x9e9f('0x49')]===_0x9e9f('0x4a')){var _0x37dbd6=_0x2f514b['get']({'plain':!![]});var _0x11c363=_0x9e9f('0x24');return db[_0x9e9f('0x4b')]['find']({'where':{'name':_0x11c363,'userProfileId':_0x5bcd58[_0x9e9f('0x4c')]},'raw':!![]})['then'](function(_0xe81044){if(_0xe81044&&_0xe81044[_0x9e9f('0x4d')]===0x0){return db['UserProfileResource'][_0x9e9f('0x45')]({'name':_0x37dbd6['name'],'resourceId':_0x37dbd6['id'],'type':_0xe81044['name'],'sectionId':_0xe81044['id']},{})[_0x9e9f('0x23')](function(){return _0x2f514b;});}else{return _0x2f514b;}})['catch'](function(_0x1b41ef){logger[_0x9e9f('0x4e')](_0x9e9f('0x4f'),_0x1b41ef);throw _0x1b41ef;});}return _0x2f514b;})[_0x9e9f('0x23')](respondWithResult(_0x1728b9,0xc9))['catch'](handleError(_0x1728b9,null));};exports[_0x9e9f('0x22')]=function(_0x1665ce,_0x2e9d55){if(_0x1665ce['body']['id']){delete _0x1665ce['body']['id'];}return db[_0x9e9f('0x2a')][_0x9e9f('0x44')]({'where':{'id':_0x1665ce[_0x9e9f('0x50')]['id']}})[_0x9e9f('0x23')](handleEntityNotFound(_0x2e9d55,null))[_0x9e9f('0x23')](saveUpdates(_0x1665ce[_0x9e9f('0x46')],null))[_0x9e9f('0x23')](respondWithResult(_0x2e9d55,null))[_0x9e9f('0x42')](handleError(_0x2e9d55,null));};exports[_0x9e9f('0x25')]=function(_0x50b7f9,_0x55b1a3){return db['VoiceChanSpy'][_0x9e9f('0x44')]({'where':{'id':_0x50b7f9[_0x9e9f('0x50')]['id']}})['then'](handleEntityNotFound(_0x55b1a3,null))[_0x9e9f('0x23')](removeEntity(_0x55b1a3,null))[_0x9e9f('0x42')](handleError(_0x55b1a3,null));};
\ No newline at end of file
+var _0xf2fa=['../../mysqldb','status','end','json','offset','undefined','limit','count','Content-Range','apply','save','update','then','destroy','ChanSpies','UserProfileResource','error','stack','name','index','VoiceChanSpy','rawAttributes','type','model','map','query','keys','filters','attributes','fields','hasOwnProperty','nolimit','sort','where','pick','filter','merge','include','findAll','catch','show','params','intersection','length','includeAll','create','user','role','get','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','find','eml-format','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','ejs','lodash','squel','crypto','jsforce','desk.js','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util'];(function(_0x3af6d3,_0xd6ff2e){var _0xf0c5a8=function(_0x392c56){while(--_0x392c56){_0x3af6d3['push'](_0x3af6d3['shift']());}};_0xf0c5a8(++_0xd6ff2e);}(_0xf2fa,0xd0));var _0xaf2f=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xf2fa[_0x20a584];return _0x4b41a8;};'use strict';var emlformat=require(_0xaf2f('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0xaf2f('0x1'));var rp=require(_0xaf2f('0x2'));var moment=require(_0xaf2f('0x3'));var BPromise=require(_0xaf2f('0x4'));var Mustache=require(_0xaf2f('0x5'));var util=require(_0xaf2f('0x6'));var path=require(_0xaf2f('0x7'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0xaf2f('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xaf2f('0x9'));var squel=require(_0xaf2f('0xa'));var crypto=require(_0xaf2f('0xb'));var jsforce=require(_0xaf2f('0xc'));var deskjs=require(_0xaf2f('0xd'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0xaf2f('0xe'));var authService=require(_0xaf2f('0xf'));var qs=require(_0xaf2f('0x10'));var as=require(_0xaf2f('0x11'));var hardwareService=require(_0xaf2f('0x12'));var logger=require(_0xaf2f('0x13'))(_0xaf2f('0x14'));var utils=require(_0xaf2f('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0xaf2f('0x16'));var db=require(_0xaf2f('0x17'))['db'];function respondWithStatusCode(_0x3dea79,_0x578499){_0x578499=_0x578499||0xcc;return function(_0x57cdb0){if(_0x57cdb0){return _0x3dea79['sendStatus'](_0x578499);}return _0x3dea79[_0xaf2f('0x18')](_0x578499)[_0xaf2f('0x19')]();};}function respondWithResult(_0x580fa6,_0x305755){_0x305755=_0x305755||0xc8;return function(_0x131862){if(_0x131862){return _0x580fa6['status'](_0x305755)[_0xaf2f('0x1a')](_0x131862);}};}function respondWithFilteredResult(_0x4db0fc,_0x402485){return function(_0x30905b){if(_0x30905b){var _0x3d475a=typeof _0x402485[_0xaf2f('0x1b')]===_0xaf2f('0x1c')&&typeof _0x402485[_0xaf2f('0x1d')]===_0xaf2f('0x1c');var _0x2a5d4a=_0x30905b[_0xaf2f('0x1e')];var _0x244435=_0x3d475a?0x0:_0x402485['offset'];var _0x1a2d28=_0x3d475a?_0x30905b[_0xaf2f('0x1e')]:_0x402485['offset']+_0x402485['limit'];var _0xb64c0e;if(_0x1a2d28>=_0x2a5d4a){_0x1a2d28=_0x2a5d4a;_0xb64c0e=0xc8;}else{_0xb64c0e=0xce;}_0x4db0fc[_0xaf2f('0x18')](_0xb64c0e);return _0x4db0fc['set'](_0xaf2f('0x1f'),_0x244435+'-'+_0x1a2d28+'/'+_0x2a5d4a)['json'](_0x30905b);}return null;};}function patchUpdates(_0x2dbd9b){return function(_0x5a6c9d){try{jsonpatch[_0xaf2f('0x20')](_0x5a6c9d,_0x2dbd9b,!![]);}catch(_0xccf664){return BPromise['reject'](_0xccf664);}return _0x5a6c9d[_0xaf2f('0x21')]();};}function saveUpdates(_0x42b7ae,_0x359dc2){return function(_0x19da71){if(_0x19da71){return _0x19da71[_0xaf2f('0x22')](_0x42b7ae)[_0xaf2f('0x23')](function(_0x2fe731){return _0x2fe731;});}return null;};}function removeEntity(_0x1da2bb,_0x4f5018){return function(_0x5f199d){if(_0x5f199d){return _0x5f199d[_0xaf2f('0x24')]()[_0xaf2f('0x23')](function(){var _0x17de64=_0x5f199d['get']({'plain':!![]});var _0x1f7440=_0xaf2f('0x25');return db[_0xaf2f('0x26')][_0xaf2f('0x24')]({'where':{'type':_0x1f7440,'resourceId':_0x17de64['id']}})[_0xaf2f('0x23')](function(){return _0x5f199d;});})[_0xaf2f('0x23')](function(){_0x1da2bb['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x5c86aa,_0x3bbd67){return function(_0x57edba){if(!_0x57edba){_0x5c86aa['sendStatus'](0x194);}return _0x57edba;};}function handleError(_0x43d21f,_0x204abb){_0x204abb=_0x204abb||0x1f4;return function(_0x16eb77){logger[_0xaf2f('0x27')](_0x16eb77[_0xaf2f('0x28')]);if(_0x16eb77['name']){delete _0x16eb77[_0xaf2f('0x29')];}_0x43d21f[_0xaf2f('0x18')](_0x204abb)['send'](_0x16eb77);};}exports[_0xaf2f('0x2a')]=function(_0x133bdc,_0x49b428){var _0x442278={},_0xfec112={},_0x299872={'count':0x0,'rows':[]};var _0x7a09c6=_['map'](db[_0xaf2f('0x2b')][_0xaf2f('0x2c')],function(_0x59cc45){return{'name':_0x59cc45['fieldName'],'type':_0x59cc45[_0xaf2f('0x2d')]['key']};});_0xfec112[_0xaf2f('0x2e')]=_[_0xaf2f('0x2f')](_0x7a09c6,_0xaf2f('0x29'));_0xfec112[_0xaf2f('0x30')]=_[_0xaf2f('0x31')](_0x133bdc['query']);_0xfec112[_0xaf2f('0x32')]=_['intersection'](_0xfec112['model'],_0xfec112[_0xaf2f('0x30')]);_0x442278[_0xaf2f('0x33')]=_['intersection'](_0xfec112['model'],qs[_0xaf2f('0x34')](_0x133bdc[_0xaf2f('0x30')][_0xaf2f('0x34')]));_0x442278[_0xaf2f('0x33')]=_0x442278[_0xaf2f('0x33')]['length']?_0x442278[_0xaf2f('0x33')]:_0xfec112['model'];if(!_0x133bdc[_0xaf2f('0x30')][_0xaf2f('0x35')](_0xaf2f('0x36'))){_0x442278[_0xaf2f('0x1d')]=qs[_0xaf2f('0x1d')](_0x133bdc[_0xaf2f('0x30')][_0xaf2f('0x1d')]);_0x442278[_0xaf2f('0x1b')]=qs['offset'](_0x133bdc['query'][_0xaf2f('0x1b')]);}_0x442278['order']=qs[_0xaf2f('0x37')](_0x133bdc['query'][_0xaf2f('0x37')]);_0x442278[_0xaf2f('0x38')]=qs['filters'](_[_0xaf2f('0x39')](_0x133bdc[_0xaf2f('0x30')],_0xfec112['filters']),_0x7a09c6);if(_0x133bdc[_0xaf2f('0x30')][_0xaf2f('0x3a')]){_0x442278['where']=_[_0xaf2f('0x3b')](_0x442278['where'],{'$or':_[_0xaf2f('0x2f')](_0x7a09c6,function(_0x5a6abc){if(_0x5a6abc['type']!=='VIRTUAL'){var _0x3b506e={};_0x3b506e[_0x5a6abc[_0xaf2f('0x29')]]={'$like':'%'+_0x133bdc['query'][_0xaf2f('0x3a')]+'%'};return _0x3b506e;}})});}_0x442278=_['merge']({},_0x442278,_0x133bdc['options']);var _0x142024={'where':_0x442278[_0xaf2f('0x38')]};return db[_0xaf2f('0x2b')][_0xaf2f('0x1e')](_0x142024)[_0xaf2f('0x23')](function(_0x4ccb76){_0x299872[_0xaf2f('0x1e')]=_0x4ccb76;if(_0x133bdc[_0xaf2f('0x30')]['includeAll']){_0x442278[_0xaf2f('0x3c')]=[{'all':!![]}];}return db[_0xaf2f('0x2b')][_0xaf2f('0x3d')](_0x442278);})[_0xaf2f('0x23')](function(_0x42811f){_0x299872['rows']=_0x42811f;return _0x299872;})[_0xaf2f('0x23')](respondWithFilteredResult(_0x49b428,_0x442278))[_0xaf2f('0x3e')](handleError(_0x49b428,null));};exports[_0xaf2f('0x3f')]=function(_0x3e045a,_0x1d44b3){var _0x49c000={'raw':![],'where':{'id':_0x3e045a[_0xaf2f('0x40')]['id']}},_0x2ca296={};_0x2ca296['model']=_[_0xaf2f('0x31')](db['VoiceChanSpy'][_0xaf2f('0x2c')]);_0x2ca296[_0xaf2f('0x30')]=_['keys'](_0x3e045a[_0xaf2f('0x30')]);_0x2ca296[_0xaf2f('0x32')]=_[_0xaf2f('0x41')](_0x2ca296[_0xaf2f('0x2e')],_0x2ca296['query']);_0x49c000['attributes']=_[_0xaf2f('0x41')](_0x2ca296[_0xaf2f('0x2e')],qs[_0xaf2f('0x34')](_0x3e045a['query']['fields']));_0x49c000[_0xaf2f('0x33')]=_0x49c000['attributes'][_0xaf2f('0x42')]?_0x49c000[_0xaf2f('0x33')]:_0x2ca296['model'];if(_0x3e045a[_0xaf2f('0x30')][_0xaf2f('0x43')]){_0x49c000[_0xaf2f('0x3c')]=[{'all':!![]}];}_0x49c000=_['merge']({},_0x49c000,_0x3e045a['options']);return db[_0xaf2f('0x2b')]['find'](_0x49c000)[_0xaf2f('0x23')](handleEntityNotFound(_0x1d44b3,null))[_0xaf2f('0x23')](respondWithResult(_0x1d44b3,null))['catch'](handleError(_0x1d44b3,null));};exports[_0xaf2f('0x44')]=function(_0x1e609e,_0x2b7d85){return db[_0xaf2f('0x2b')][_0xaf2f('0x44')](_0x1e609e['body'],{})['then'](function(_0x58ded6){var _0x21f0fb=_0x1e609e[_0xaf2f('0x45')]['get']({'plain':!![]});if(!_0x21f0fb)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x21f0fb[_0xaf2f('0x46')]===_0xaf2f('0x45')){var _0x2452d4=_0x58ded6[_0xaf2f('0x47')]({'plain':!![]});var _0x3e7e1c=_0xaf2f('0x25');return db[_0xaf2f('0x48')]['find']({'where':{'name':_0x3e7e1c,'userProfileId':_0x21f0fb['userProfileId']},'raw':!![]})[_0xaf2f('0x23')](function(_0x296be8){if(_0x296be8&&_0x296be8[_0xaf2f('0x49')]===0x0){return db[_0xaf2f('0x26')]['create']({'name':_0x2452d4['name'],'resourceId':_0x2452d4['id'],'type':_0x296be8[_0xaf2f('0x29')],'sectionId':_0x296be8['id']},{})[_0xaf2f('0x23')](function(){return _0x58ded6;});}else{return _0x58ded6;}})[_0xaf2f('0x3e')](function(_0x3f0491){logger[_0xaf2f('0x27')](_0xaf2f('0x4a'),_0x3f0491);throw _0x3f0491;});}return _0x58ded6;})[_0xaf2f('0x23')](respondWithResult(_0x2b7d85,0xc9))[_0xaf2f('0x3e')](handleError(_0x2b7d85,null));};exports[_0xaf2f('0x22')]=function(_0x546bbb,_0x24432a){if(_0x546bbb[_0xaf2f('0x4b')]['id']){delete _0x546bbb[_0xaf2f('0x4b')]['id'];}return db['VoiceChanSpy'][_0xaf2f('0x4c')]({'where':{'id':_0x546bbb[_0xaf2f('0x40')]['id']}})[_0xaf2f('0x23')](handleEntityNotFound(_0x24432a,null))['then'](saveUpdates(_0x546bbb['body'],null))[_0xaf2f('0x23')](respondWithResult(_0x24432a,null))[_0xaf2f('0x3e')](handleError(_0x24432a,null));};exports['destroy']=function(_0x702fc6,_0x4e60ee){return db[_0xaf2f('0x2b')][_0xaf2f('0x4c')]({'where':{'id':_0x702fc6[_0xaf2f('0x40')]['id']}})[_0xaf2f('0x23')](handleEntityNotFound(_0x4e60ee,null))[_0xaf2f('0x23')](removeEntity(_0x4e60ee,null))[_0xaf2f('0x3e')](handleError(_0x4e60ee,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfd28=['then','destroy','lodash','util','./voiceChanSpy.attributes','context','from-sip','format','%s%s','prefix','system','push','Set','CDR(type)=%s','chanspy','record','merge','MixMonitor','${UNIQUEID}.%s,a','auth','Authenticate','ChanSpy','name','options','join','length','concat','internal','User','agent','catch','exports','models','voice_chanspy','VoiceExtension','bulkCreate'];(function(_0x18a397,_0x4f7413){var _0x50a9b7=function(_0x124dfd){while(--_0x124dfd){_0x18a397['push'](_0x18a397['shift']());}};_0x50a9b7(++_0x4f7413);}(_0xfd28,0x122));var _0x8fd2=function(_0x2db12b,_0x30ab1d){_0x2db12b=_0x2db12b-0x0;var _0x20990b=_0xfd28[_0x2db12b];return _0x20990b;};'use strict';var _=require(_0x8fd2('0x0'));var util=require(_0x8fd2('0x1'));var BPromise=require('bluebird');var attributes=require(_0x8fd2('0x2'));var getUserApplications=function(_0x463c20,_0x5e355c,_0x3aca94){var _0x4c9e3b=0x1;var _0x173e58=[];var _0x47d81e={'context':_0x5e355c[_0x8fd2('0x3')]||_0x8fd2('0x4'),'exten':util[_0x8fd2('0x5')](_0x8fd2('0x6'),_0x463c20[_0x8fd2('0x7')],_0x3aca94),'type':_0x8fd2('0x8'),'isApp':![],'ChanSpyId':_0x463c20['id'],'UserId':_0x5e355c['id']};_0x173e58[_0x8fd2('0x9')](_['merge']({'app':_0x8fd2('0xa'),'appdata':util[_0x8fd2('0x5')](_0x8fd2('0xb'),_0x8fd2('0xc')),'priority':_0x4c9e3b++},_0x47d81e));if(_0x463c20[_0x8fd2('0xd')]){_0x173e58[_0x8fd2('0x9')](_[_0x8fd2('0xe')]({'app':_0x8fd2('0xf'),'appdata':util[_0x8fd2('0x5')](_0x8fd2('0x10'),_0x463c20['recordingFormat']),'priority':_0x4c9e3b++},_0x47d81e));}if(_0x463c20[_0x8fd2('0x11')]){_0x173e58[_0x8fd2('0x9')](_[_0x8fd2('0xe')]({'app':_0x8fd2('0x12'),'appdata':_0x463c20['password'],'priority':_0x4c9e3b++},_0x47d81e));}_0x173e58[_0x8fd2('0x9')](_[_0x8fd2('0xe')]({'app':_0x8fd2('0x13'),'appdata':util[_0x8fd2('0x5')]('SIP/%s,%s',_0x5e355c[_0x8fd2('0x14')],_0x463c20[_0x8fd2('0x15')]?_0x463c20[_0x8fd2('0x15')][_0x8fd2('0x16')](''):''),'priority':_0x4c9e3b++},_0x47d81e));if(_0x463c20[_0x8fd2('0xd')]){_0x173e58['push'](_[_0x8fd2('0xe')]({'app':'StopMixMonitor','priority':_0x4c9e3b++},_0x47d81e));}return _0x173e58;};var getChanSpyApplications=function(_0x3ab8b2,_0x35bf81){var _0x4b65b4=[];for(var _0x14f76c=0x0,_0x348ab7=0x1;_0x14f76c<_0x35bf81[_0x8fd2('0x17')];_0x14f76c++,_0x348ab7=0x1){_0x4b65b4=_0x4b65b4[_0x8fd2('0x18')](getUserApplications(_0x3ab8b2,_0x35bf81[_0x14f76c],_0x35bf81[_0x14f76c][_0x8fd2('0x19')]));if(_0x35bf81[_0x14f76c]['internal']!=_0x35bf81[_0x14f76c][_0x8fd2('0x14')]){_0x4b65b4=_0x4b65b4[_0x8fd2('0x18')](getUserApplications(_0x3ab8b2,_0x35bf81[_0x14f76c],_0x35bf81[_0x14f76c][_0x8fd2('0x14')]));}}return _0x4b65b4;};var getChanSpyPromise=function(_0x13d91f,_0x34893a){return new BPromise(function(_0x327528,_0x2bef75){return _0x13d91f[_0x8fd2('0x1a')]['findAll']({'attributes':['id','name',_0x8fd2('0x19')],'where':{'role':_0x8fd2('0x1b'),'chanspy':!![]},'raw':!![]})['then'](function(_0x37b5ed){if(_0x37b5ed){return _0x327528(getChanSpyApplications(_0x34893a,_0x37b5ed));}return _0x327528([]);})[_0x8fd2('0x1c')](function(_0x45530f){_0x2bef75(_0x45530f);});});};module[_0x8fd2('0x1d')]=function(_0xf83af0,_0x2e8eab){var _0x2ad082=_0xf83af0[_0x8fd2('0x1e')];return _0xf83af0['define']('VoiceChanSpy',attributes,{'tableName':_0x8fd2('0x1f'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'afterCreate':function(_0x33658e,_0x5bdc23,_0x2006ec){return getChanSpyPromise(_0x2ad082,_0x33658e)['then'](function(_0x4d63c2){if(_0x4d63c2&&_0x4d63c2[_0x8fd2('0x17')]){return _0x2ad082[_0x8fd2('0x20')][_0x8fd2('0x21')](_0x4d63c2);}})[_0x8fd2('0x22')](function(){_0x2006ec();})[_0x8fd2('0x1c')](function(_0x466ba0){_0x2006ec(_0x466ba0);});},'afterUpdate':function(_0x2147e0,_0x143c1f,_0x86022d){return _0x2ad082[_0x8fd2('0x20')]['destroy']({'where':{'ChanSpyId':_0x2147e0['id']}})[_0x8fd2('0x22')](function(){return getChanSpyPromise(_0x2ad082,_0x2147e0);})['then'](function(_0xaf03e){if(_0xaf03e&&_0xaf03e['length']){return _0x2ad082[_0x8fd2('0x20')][_0x8fd2('0x21')](_0xaf03e);}})['then'](function(){_0x86022d();})[_0x8fd2('0x1c')](function(_0x4b38fc){_0x86022d(_0x4b38fc);});},'afterDestroy':function(_0x65f764,_0x319dc2,_0x3ab37c){return _0x2ad082[_0x8fd2('0x20')][_0x8fd2('0x23')]({'where':{'ChanSpyId':_0x65f764['id']}})[_0x8fd2('0x22')](function(){_0x3ab37c();})[_0x8fd2('0x1c')](function(_0x58f4ce){_0x3ab37c(_0x58f4ce);});}}});};
\ No newline at end of file
+var _0x9fce=['agent','catch','models','define','voice_chanspy','then','length','bulkCreate','VoiceExtension','destroy','lodash','util','bluebird','./voiceChanSpy.attributes','context','from-sip','format','prefix','system','push','merge','Set','CDR(type)=%s','chanspy','record','${UNIQUEID}.%s,a','auth','Authenticate','password','options','join','internal','name','concat','User','findAll'];(function(_0x3f11f5,_0x3aeb5f){var _0x9281f4=function(_0x4eebb8){while(--_0x4eebb8){_0x3f11f5['push'](_0x3f11f5['shift']());}};_0x9281f4(++_0x3aeb5f);}(_0x9fce,0x196));var _0xe9fc=function(_0x4d1ee9,_0x394a78){_0x4d1ee9=_0x4d1ee9-0x0;var _0x9a5456=_0x9fce[_0x4d1ee9];return _0x9a5456;};'use strict';var _=require(_0xe9fc('0x0'));var util=require(_0xe9fc('0x1'));var BPromise=require(_0xe9fc('0x2'));var attributes=require(_0xe9fc('0x3'));var getUserApplications=function(_0x4e0be8,_0x385bb7,_0x4175ce){var _0x115c43=0x1;var _0x3a270a=[];var _0x15f85c={'context':_0x385bb7[_0xe9fc('0x4')]||_0xe9fc('0x5'),'exten':util[_0xe9fc('0x6')]('%s%s',_0x4e0be8[_0xe9fc('0x7')],_0x4175ce),'type':_0xe9fc('0x8'),'isApp':![],'ChanSpyId':_0x4e0be8['id'],'UserId':_0x385bb7['id']};_0x3a270a[_0xe9fc('0x9')](_[_0xe9fc('0xa')]({'app':_0xe9fc('0xb'),'appdata':util[_0xe9fc('0x6')](_0xe9fc('0xc'),_0xe9fc('0xd')),'priority':_0x115c43++},_0x15f85c));if(_0x4e0be8[_0xe9fc('0xe')]){_0x3a270a['push'](_[_0xe9fc('0xa')]({'app':'MixMonitor','appdata':util['format'](_0xe9fc('0xf'),_0x4e0be8['recordingFormat']),'priority':_0x115c43++},_0x15f85c));}if(_0x4e0be8[_0xe9fc('0x10')]){_0x3a270a[_0xe9fc('0x9')](_[_0xe9fc('0xa')]({'app':_0xe9fc('0x11'),'appdata':_0x4e0be8[_0xe9fc('0x12')],'priority':_0x115c43++},_0x15f85c));}_0x3a270a[_0xe9fc('0x9')](_[_0xe9fc('0xa')]({'app':'ChanSpy','appdata':util[_0xe9fc('0x6')]('SIP/%s,%s',_0x385bb7['name'],_0x4e0be8[_0xe9fc('0x13')]?_0x4e0be8[_0xe9fc('0x13')][_0xe9fc('0x14')](''):''),'priority':_0x115c43++},_0x15f85c));if(_0x4e0be8[_0xe9fc('0xe')]){_0x3a270a['push'](_['merge']({'app':'StopMixMonitor','priority':_0x115c43++},_0x15f85c));}return _0x3a270a;};var getChanSpyApplications=function(_0x29dba5,_0x308f67){var _0x5adcd3=[];for(var _0x27bed4=0x0,_0x32f6d2=0x1;_0x27bed4<_0x308f67['length'];_0x27bed4++,_0x32f6d2=0x1){_0x5adcd3=_0x5adcd3['concat'](getUserApplications(_0x29dba5,_0x308f67[_0x27bed4],_0x308f67[_0x27bed4][_0xe9fc('0x15')]));if(_0x308f67[_0x27bed4][_0xe9fc('0x15')]!=_0x308f67[_0x27bed4][_0xe9fc('0x16')]){_0x5adcd3=_0x5adcd3[_0xe9fc('0x17')](getUserApplications(_0x29dba5,_0x308f67[_0x27bed4],_0x308f67[_0x27bed4][_0xe9fc('0x16')]));}}return _0x5adcd3;};var getChanSpyPromise=function(_0x33297f,_0x1e703e){return new BPromise(function(_0xebb9dd,_0x511977){return _0x33297f[_0xe9fc('0x18')][_0xe9fc('0x19')]({'attributes':['id',_0xe9fc('0x16'),'internal'],'where':{'role':_0xe9fc('0x1a'),'chanspy':!![]},'raw':!![]})['then'](function(_0x4f09d9){if(_0x4f09d9){return _0xebb9dd(getChanSpyApplications(_0x1e703e,_0x4f09d9));}return _0xebb9dd([]);})[_0xe9fc('0x1b')](function(_0x17a8bc){_0x511977(_0x17a8bc);});});};module['exports']=function(_0x251e01,_0x138e9d){var _0x48c256=_0x251e01[_0xe9fc('0x1c')];return _0x251e01[_0xe9fc('0x1d')]('VoiceChanSpy',attributes,{'tableName':_0xe9fc('0x1e'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'afterCreate':function(_0x376a84,_0x4a0c24,_0x5f0413){return getChanSpyPromise(_0x48c256,_0x376a84)[_0xe9fc('0x1f')](function(_0x225ce3){if(_0x225ce3&&_0x225ce3[_0xe9fc('0x20')]){return _0x48c256['VoiceExtension'][_0xe9fc('0x21')](_0x225ce3);}})['then'](function(){_0x5f0413();})[_0xe9fc('0x1b')](function(_0x128a99){_0x5f0413(_0x128a99);});},'afterUpdate':function(_0x3bd3c8,_0x4381a3,_0x8a4f82){return _0x48c256[_0xe9fc('0x22')][_0xe9fc('0x23')]({'where':{'ChanSpyId':_0x3bd3c8['id']}})[_0xe9fc('0x1f')](function(){return getChanSpyPromise(_0x48c256,_0x3bd3c8);})[_0xe9fc('0x1f')](function(_0x408395){if(_0x408395&&_0x408395[_0xe9fc('0x20')]){return _0x48c256['VoiceExtension'][_0xe9fc('0x21')](_0x408395);}})[_0xe9fc('0x1f')](function(){_0x8a4f82();})[_0xe9fc('0x1b')](function(_0x5fdcc5){_0x8a4f82(_0x5fdcc5);});},'afterDestroy':function(_0x4f00fd,_0x5b4120,_0x5a42aa){return _0x48c256[_0xe9fc('0x22')]['destroy']({'where':{'ChanSpyId':_0x4f00fd['id']}})[_0xe9fc('0x1f')](function(){_0x5a42aa();})[_0xe9fc('0x1b')](function(_0x4ff911){_0x5a42aa(_0x4ff911);});}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x422f=['bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','debug','VoiceChanSpy,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','VoiceChanSpy,\x20%s,\x20%s','result','catch','util'];(function(_0x4a0801,_0x55b298){var _0x47306d=function(_0x415a91){while(--_0x415a91){_0x4a0801['push'](_0x4a0801['shift']());}};_0x47306d(++_0x55b298);}(_0x422f,0x1c7));var _0xf422=function(_0x22608f,_0x1ce6dd){_0x22608f=_0x22608f-0x0;var _0x3439b2=_0x422f[_0x22608f];return _0x3439b2;};'use strict';var _=require('lodash');var util=require(_0xf422('0x0'));var moment=require('moment');var BPromise=require(_0xf422('0x1'));var rs=require(_0xf422('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xf422('0x3'))['db'];var utils=require(_0xf422('0x4'));var logger=require(_0xf422('0x5'))(_0xf422('0x6'));var config=require(_0xf422('0x7'));var jayson=require(_0xf422('0x8'));var client=jayson[_0xf422('0x9')][_0xf422('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x350b2d,_0x583283,_0x3f4801){return new BPromise(function(_0x1037fa,_0xc2c9f5){return client[_0xf422('0xb')](_0x350b2d,_0x3f4801)[_0xf422('0xc')](function(_0x5f02da){logger[_0xf422('0xd')]('VoiceChanSpy,\x20%s,\x20%s',_0x583283,'request\x20sent');logger[_0xf422('0xe')](_0xf422('0xf'),_0x583283,_0xf422('0x10'),JSON[_0xf422('0x11')](_0x5f02da));if(_0x5f02da[_0xf422('0x12')]){if(_0x5f02da['error'][_0xf422('0x13')]===0x1f4){logger[_0xf422('0x12')]('VoiceChanSpy,\x20%s,\x20%s',_0x583283,_0x5f02da[_0xf422('0x12')][_0xf422('0x14')]);return _0xc2c9f5(_0x5f02da[_0xf422('0x12')][_0xf422('0x14')]);}logger[_0xf422('0x12')](_0xf422('0x15'),_0x583283,_0x5f02da[_0xf422('0x12')][_0xf422('0x14')]);return _0x1037fa(_0x5f02da[_0xf422('0x12')]['message']);}else{logger['info']('VoiceChanSpy,\x20%s,\x20%s',_0x583283,_0xf422('0x10'));_0x1037fa(_0x5f02da[_0xf422('0x16')][_0xf422('0x14')]);}})[_0xf422('0x17')](function(_0x5f3de5){logger[_0xf422('0x12')](_0xf422('0x15'),_0x583283,_0x5f3de5);_0xc2c9f5(_0x5f3de5);});});}
\ No newline at end of file
+var _0xde2c=['VoiceChanSpy,\x20%s,\x20%s,\x20%s','error','code','message','info','result','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','client','http','then','VoiceChanSpy,\x20%s,\x20%s','request\x20sent','debug'];(function(_0x3ed102,_0x1c8326){var _0x4e2a8d=function(_0x638a59){while(--_0x638a59){_0x3ed102['push'](_0x3ed102['shift']());}};_0x4e2a8d(++_0x1c8326);}(_0xde2c,0x7f));var _0xcde2=function(_0x5416db,_0x55683a){_0x5416db=_0x5416db-0x0;var _0x243e35=_0xde2c[_0x5416db];return _0x243e35;};'use strict';var _=require(_0xcde2('0x0'));var util=require(_0xcde2('0x1'));var moment=require(_0xcde2('0x2'));var BPromise=require(_0xcde2('0x3'));var rs=require(_0xcde2('0x4'));var fs=require('fs');var Redis=require(_0xcde2('0x5'));var db=require(_0xcde2('0x6'))['db'];var utils=require(_0xcde2('0x7'));var logger=require('../../config/logger')(_0xcde2('0x8'));var config=require(_0xcde2('0x9'));var jayson=require(_0xcde2('0xa'));var client=jayson[_0xcde2('0xb')][_0xcde2('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x53c558,_0x2b27ef,_0x385e83){return new BPromise(function(_0x9c7036,_0x544235){return client['request'](_0x53c558,_0x385e83)[_0xcde2('0xd')](function(_0x1c8b3c){logger['info'](_0xcde2('0xe'),_0x2b27ef,_0xcde2('0xf'));logger[_0xcde2('0x10')](_0xcde2('0x11'),_0x2b27ef,'request\x20sent',JSON['stringify'](_0x1c8b3c));if(_0x1c8b3c[_0xcde2('0x12')]){if(_0x1c8b3c[_0xcde2('0x12')][_0xcde2('0x13')]===0x1f4){logger[_0xcde2('0x12')](_0xcde2('0xe'),_0x2b27ef,_0x1c8b3c[_0xcde2('0x12')]['message']);return _0x544235(_0x1c8b3c[_0xcde2('0x12')]['message']);}logger[_0xcde2('0x12')]('VoiceChanSpy,\x20%s,\x20%s',_0x2b27ef,_0x1c8b3c['error'][_0xcde2('0x14')]);return _0x9c7036(_0x1c8b3c[_0xcde2('0x12')][_0xcde2('0x14')]);}else{logger[_0xcde2('0x15')](_0xcde2('0xe'),_0x2b27ef,'request\x20sent');_0x9c7036(_0x1c8b3c[_0xcde2('0x16')]['message']);}})[_0xcde2('0x17')](function(_0x198840){logger[_0xcde2('0x12')](_0xcde2('0xe'),_0x2b27ef,_0x198840);_0x544235(_0x198840);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x29ff=['destroy','exports','express','fs-extra','../../components/auth/service','../../components/interaction/service','./voiceContext.controller','get','isAuthenticated','post','create','put','/:id','delete'];(function(_0x5a50b0,_0x470054){var _0x252b37=function(_0x2a752e){while(--_0x2a752e){_0x5a50b0['push'](_0x5a50b0['shift']());}};_0x252b37(++_0x470054);}(_0x29ff,0x144));var _0xf29f=function(_0xd0f72f,_0x144d0d){_0xd0f72f=_0xd0f72f-0x0;var _0x2e9192=_0x29ff[_0xd0f72f];return _0x2e9192;};'use strict';var multer=require('multer');var util=require('util');var path=require('path');var timeout=require('connect-timeout');var express=require(_0xf29f('0x0'));var router=express['Router']();var fs_extra=require(_0xf29f('0x1'));var auth=require(_0xf29f('0x2'));var interaction=require(_0xf29f('0x3'));var config=require('../../config/environment');var controller=require(_0xf29f('0x4'));router[_0xf29f('0x5')]('/',auth[_0xf29f('0x6')](),controller['index']);router[_0xf29f('0x5')]('/:id',auth[_0xf29f('0x6')](),controller['show']);router[_0xf29f('0x7')]('/',auth[_0xf29f('0x6')](),controller[_0xf29f('0x8')]);router[_0xf29f('0x9')](_0xf29f('0xa'),auth[_0xf29f('0x6')](),controller['update']);router[_0xf29f('0xb')](_0xf29f('0xa'),auth[_0xf29f('0x6')](),controller[_0xf29f('0xc')]);module[_0xf29f('0xd')]=router;
\ No newline at end of file
+var _0x91ba=['multer','util','express','fs-extra','../../components/auth/service','../../config/environment','./voiceContext.controller','get','isAuthenticated','index','/:id','show','post','create','put','update','delete','destroy','exports'];(function(_0x44b4fe,_0x5e9b20){var _0x4b4603=function(_0x127362){while(--_0x127362){_0x44b4fe['push'](_0x44b4fe['shift']());}};_0x4b4603(++_0x5e9b20);}(_0x91ba,0xd1));var _0xa91b=function(_0x5ee236,_0x3ed8e4){_0x5ee236=_0x5ee236-0x0;var _0x1563b6=_0x91ba[_0x5ee236];return _0x1563b6;};'use strict';var multer=require(_0xa91b('0x0'));var util=require(_0xa91b('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require(_0xa91b('0x2'));var router=express['Router']();var fs_extra=require(_0xa91b('0x3'));var auth=require(_0xa91b('0x4'));var interaction=require('../../components/interaction/service');var config=require(_0xa91b('0x5'));var controller=require(_0xa91b('0x6'));router[_0xa91b('0x7')]('/',auth[_0xa91b('0x8')](),controller[_0xa91b('0x9')]);router[_0xa91b('0x7')](_0xa91b('0xa'),auth['isAuthenticated'](),controller[_0xa91b('0xb')]);router[_0xa91b('0xc')]('/',auth[_0xa91b('0x8')](),controller[_0xa91b('0xd')]);router[_0xa91b('0xe')]('/:id',auth['isAuthenticated'](),controller[_0xa91b('0xf')]);router[_0xa91b('0x10')]('/:id',auth[_0xa91b('0x8')](),controller[_0xa91b('0x11')]);module[_0xa91b('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd16c=['STRING','name'];(function(_0x3a6c2c,_0x33b1b5){var _0xb93dcc=function(_0x204279){while(--_0x204279){_0x3a6c2c['push'](_0x3a6c2c['shift']());}};_0xb93dcc(++_0x33b1b5);}(_0xd16c,0xcc));var _0xcd16=function(_0x50e24e,_0x31be48){_0x50e24e=_0x50e24e-0x0;var _0x44911e=_0xd16c[_0x50e24e];return _0x44911e;};'use strict';var Sequelize=require('sequelize');module['exports']={'name':{'type':Sequelize[_0xcd16('0x0')],'unique':_0xcd16('0x1')},'description':{'type':Sequelize[_0xcd16('0x0')],'allowNull':!![]},'defaultEntry':{'type':Sequelize['BOOLEAN'],'defaultValue':0x0}};
\ No newline at end of file
+var _0xe97e=['sequelize','exports','STRING','BOOLEAN'];(function(_0x5cb1af,_0x4bdc8c){var _0x8d7940=function(_0x3db70a){while(--_0x3db70a){_0x5cb1af['push'](_0x5cb1af['shift']());}};_0x8d7940(++_0x4bdc8c);}(_0xe97e,0xdc));var _0xee97=function(_0x50fcc7,_0x5d091d){_0x50fcc7=_0x50fcc7-0x0;var _0x5bd44a=_0xe97e[_0x50fcc7];return _0x5bd44a;};'use strict';var Sequelize=require(_0xee97('0x0'));module[_0xee97('0x1')]={'name':{'type':Sequelize[_0xee97('0x2')],'unique':'name'},'description':{'type':Sequelize[_0xee97('0x2')],'allowNull':!![]},'defaultEntry':{'type':Sequelize[_0xee97('0x3')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1ef4=['VoiceContext,\x20%s,\x20%s','request\x20sent','debug','VoiceContext,\x20%s,\x20%s,\x20%s','error','message','sendStatus','status','json','limit','count','offset','set','Content-Range','apply','reject','update','then','destroy','Contexts','UserProfileResource','end','stack','name','send','index','map','VoiceContext','rawAttributes','fieldName','type','model','keys','query','filters','intersection','attributes','length','hasOwnProperty','nolimit','order','sort','where','merge','VIRTUAL','options','includeAll','include','catch','show','params','fields','find','create','findAll','join','root','server/files/templates/context.ejs','utf8','render','writeFileSync','/etc/asterisk/extensions_xcally_contexts.conf','Reload','chan_sip.so','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','readFileSync','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','fs-extra','lodash','crypto','desk.js','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','jayson/promise','client','http','request','info'];(function(_0x1ad2c6,_0x5c73ee){var _0x3d1ece=function(_0x10cdca){while(--_0x10cdca){_0x1ad2c6['push'](_0x1ad2c6['shift']());}};_0x3d1ece(++_0x5c73ee);}(_0x1ef4,0xb0));var _0x41ef=function(_0x31f744,_0x16ddea){_0x31f744=_0x31f744-0x0;var _0x371d2e=_0x1ef4[_0x31f744];return _0x371d2e;};'use strict';var emlformat=require(_0x41ef('0x0'));var rimraf=require(_0x41ef('0x1'));var zipdir=require(_0x41ef('0x2'));var jsonpatch=require(_0x41ef('0x3'));var rp=require(_0x41ef('0x4'));var moment=require(_0x41ef('0x5'));var BPromise=require(_0x41ef('0x6'));var Mustache=require(_0x41ef('0x7'));var util=require(_0x41ef('0x8'));var path=require(_0x41ef('0x9'));var sox=require('sox');var csv=require(_0x41ef('0xa'));var ejs=require(_0x41ef('0xb'));var fs=require('fs');var fs_extra=require(_0x41ef('0xc'));var _=require(_0x41ef('0xd'));var squel=require('squel');var crypto=require(_0x41ef('0xe'));var jsforce=require('jsforce');var deskjs=require(_0x41ef('0xf'));var toCsv=require(_0x41ef('0xa'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x41ef('0x10'));var qs=require(_0x41ef('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x41ef('0x12'))(_0x41ef('0x13'));var utils=require(_0x41ef('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0x41ef('0x15'));var db=require(_0x41ef('0x16'))['db'];var jayson=require(_0x41ef('0x17'));var client=jayson[_0x41ef('0x18')][_0x41ef('0x19')]({'port':0x232a});function respondWithRpcPromise(_0x3f1f95,_0xea2911,_0x5b4cb1,_0x375e54){return new BPromise(function(_0x4873ff,_0x59b3fa){var _0x5c5710=_0x375e54||client;return _0x5c5710[_0x41ef('0x1a')](_0x3f1f95,_0x5b4cb1)['then'](function(_0x51f488){logger[_0x41ef('0x1b')](_0x41ef('0x1c'),_0xea2911,_0x41ef('0x1d'));logger[_0x41ef('0x1e')](_0x41ef('0x1f'),_0xea2911,_0x41ef('0x1d'),JSON['stringify'](_0x51f488));if(_0x51f488[_0x41ef('0x20')]){if(_0x51f488[_0x41ef('0x20')]['code']===0x1f4){logger[_0x41ef('0x20')]('VoiceContext,\x20%s,\x20%s',_0xea2911,_0x51f488[_0x41ef('0x20')][_0x41ef('0x21')]);return _0x59b3fa(_0x51f488[_0x41ef('0x20')][_0x41ef('0x21')]);}logger[_0x41ef('0x20')](_0x41ef('0x1c'),_0xea2911,_0x51f488['error'][_0x41ef('0x21')]);return _0x4873ff(_0x51f488[_0x41ef('0x20')][_0x41ef('0x21')]);}else{logger['info'](_0x41ef('0x1c'),_0xea2911,'request\x20sent');_0x4873ff(_0x51f488['result']['message']);}})['catch'](function(_0x4275d2){logger[_0x41ef('0x20')]('VoiceContext,\x20%s,\x20%s',_0xea2911,_0x4275d2);_0x59b3fa(_0x4275d2);});});}function respondWithStatusCode(_0x504231,_0x5f150c){_0x5f150c=_0x5f150c||0xcc;return function(_0x333395){if(_0x333395){return _0x504231[_0x41ef('0x22')](_0x5f150c);}return _0x504231['status'](_0x5f150c)['end']();};}function respondWithResult(_0x175fd2,_0x581535){_0x581535=_0x581535||0xc8;return function(_0x48bbb6){if(_0x48bbb6){return _0x175fd2[_0x41ef('0x23')](_0x581535)[_0x41ef('0x24')](_0x48bbb6);}};}function respondWithFilteredResult(_0x2e7971,_0x4af08c){return function(_0x2dbb7f){if(_0x2dbb7f){var _0x1f69b1=typeof _0x4af08c['offset']==='undefined'&&typeof _0x4af08c[_0x41ef('0x25')]==='undefined';var _0x10168d=_0x2dbb7f[_0x41ef('0x26')];var _0x34a984=_0x1f69b1?0x0:_0x4af08c[_0x41ef('0x27')];var _0x208fb2=_0x1f69b1?_0x2dbb7f[_0x41ef('0x26')]:_0x4af08c[_0x41ef('0x27')]+_0x4af08c['limit'];var _0x1a22e8;if(_0x208fb2>=_0x10168d){_0x208fb2=_0x10168d;_0x1a22e8=0xc8;}else{_0x1a22e8=0xce;}_0x2e7971['status'](_0x1a22e8);return _0x2e7971[_0x41ef('0x28')](_0x41ef('0x29'),_0x34a984+'-'+_0x208fb2+'/'+_0x10168d)[_0x41ef('0x24')](_0x2dbb7f);}return null;};}function patchUpdates(_0x36c53e){return function(_0x35a374){try{jsonpatch[_0x41ef('0x2a')](_0x35a374,_0x36c53e,!![]);}catch(_0x73e676){return BPromise[_0x41ef('0x2b')](_0x73e676);}return _0x35a374['save']();};}function saveUpdates(_0x522985,_0x5aacbd){return function(_0xaa1d26){if(_0xaa1d26){return _0xaa1d26[_0x41ef('0x2c')](_0x522985)[_0x41ef('0x2d')](function(_0x481a45){return _0x481a45;});}return null;};}function removeEntity(_0x2392a8,_0x8bb8c8){return function(_0xd7b84f){if(_0xd7b84f){return _0xd7b84f[_0x41ef('0x2e')]()['then'](function(){var _0x4283e1=_0xd7b84f['get']({'plain':!![]});var _0xe8a22f=_0x41ef('0x2f');return db[_0x41ef('0x30')][_0x41ef('0x2e')]({'where':{'type':_0xe8a22f,'resourceId':_0x4283e1['id']}})['then'](function(){return _0xd7b84f;});})[_0x41ef('0x2d')](function(){_0x2392a8[_0x41ef('0x23')](0xcc)[_0x41ef('0x31')]();});}};}function handleEntityNotFound(_0x4ade99,_0x1d9468){return function(_0x260185){if(!_0x260185){_0x4ade99['sendStatus'](0x194);}return _0x260185;};}function handleError(_0x3d7983,_0x49c612){_0x49c612=_0x49c612||0x1f4;return function(_0x22b62e){logger['error'](_0x22b62e[_0x41ef('0x32')]);if(_0x22b62e[_0x41ef('0x33')]){delete _0x22b62e[_0x41ef('0x33')];}_0x3d7983[_0x41ef('0x23')](_0x49c612)[_0x41ef('0x34')](_0x22b62e);};}exports[_0x41ef('0x35')]=function(_0x5efc4a,_0x567cf4){var _0x325e48={},_0x3dac4d={},_0x5c960c={'count':0x0,'rows':[]};var _0x5dc4e5=_[_0x41ef('0x36')](db[_0x41ef('0x37')][_0x41ef('0x38')],function(_0x152355){return{'name':_0x152355[_0x41ef('0x39')],'type':_0x152355[_0x41ef('0x3a')]['key']};});_0x3dac4d[_0x41ef('0x3b')]=_[_0x41ef('0x36')](_0x5dc4e5,_0x41ef('0x33'));_0x3dac4d['query']=_[_0x41ef('0x3c')](_0x5efc4a[_0x41ef('0x3d')]);_0x3dac4d[_0x41ef('0x3e')]=_[_0x41ef('0x3f')](_0x3dac4d[_0x41ef('0x3b')],_0x3dac4d[_0x41ef('0x3d')]);_0x325e48[_0x41ef('0x40')]=_[_0x41ef('0x3f')](_0x3dac4d['model'],qs['fields'](_0x5efc4a['query']['fields']));_0x325e48[_0x41ef('0x40')]=_0x325e48[_0x41ef('0x40')][_0x41ef('0x41')]?_0x325e48[_0x41ef('0x40')]:_0x3dac4d[_0x41ef('0x3b')];if(!_0x5efc4a['query'][_0x41ef('0x42')](_0x41ef('0x43'))){_0x325e48['limit']=qs[_0x41ef('0x25')](_0x5efc4a['query'][_0x41ef('0x25')]);_0x325e48[_0x41ef('0x27')]=qs[_0x41ef('0x27')](_0x5efc4a[_0x41ef('0x3d')][_0x41ef('0x27')]);}_0x325e48[_0x41ef('0x44')]=qs[_0x41ef('0x45')](_0x5efc4a[_0x41ef('0x3d')]['sort']);_0x325e48[_0x41ef('0x46')]=qs[_0x41ef('0x3e')](_['pick'](_0x5efc4a[_0x41ef('0x3d')],_0x3dac4d[_0x41ef('0x3e')]),_0x5dc4e5);if(_0x5efc4a[_0x41ef('0x3d')]['filter']){_0x325e48['where']=_[_0x41ef('0x47')](_0x325e48['where'],{'$or':_[_0x41ef('0x36')](_0x5dc4e5,function(_0x403b43){if(_0x403b43[_0x41ef('0x3a')]!==_0x41ef('0x48')){var _0x421f45={};_0x421f45[_0x403b43[_0x41ef('0x33')]]={'$like':'%'+_0x5efc4a[_0x41ef('0x3d')]['filter']+'%'};return _0x421f45;}})});}_0x325e48=_[_0x41ef('0x47')]({},_0x325e48,_0x5efc4a[_0x41ef('0x49')]);var _0xe123f0={'where':_0x325e48[_0x41ef('0x46')]};return db[_0x41ef('0x37')][_0x41ef('0x26')](_0xe123f0)[_0x41ef('0x2d')](function(_0x2ffd98){_0x5c960c[_0x41ef('0x26')]=_0x2ffd98;if(_0x5efc4a[_0x41ef('0x3d')][_0x41ef('0x4a')]){_0x325e48[_0x41ef('0x4b')]=[{'all':!![]}];}return db['VoiceContext']['findAll'](_0x325e48);})['then'](function(_0x7a66b2){_0x5c960c['rows']=_0x7a66b2;return _0x5c960c;})[_0x41ef('0x2d')](respondWithFilteredResult(_0x567cf4,_0x325e48))[_0x41ef('0x4c')](handleError(_0x567cf4,null));};exports[_0x41ef('0x4d')]=function(_0x558ced,_0x223f07){var _0x243c56={'raw':![],'where':{'id':_0x558ced[_0x41ef('0x4e')]['id']}},_0x5b4dcf={};_0x5b4dcf[_0x41ef('0x3b')]=_[_0x41ef('0x3c')](db[_0x41ef('0x37')][_0x41ef('0x38')]);_0x5b4dcf[_0x41ef('0x3d')]=_[_0x41ef('0x3c')](_0x558ced[_0x41ef('0x3d')]);_0x5b4dcf[_0x41ef('0x3e')]=_[_0x41ef('0x3f')](_0x5b4dcf[_0x41ef('0x3b')],_0x5b4dcf['query']);_0x243c56['attributes']=_[_0x41ef('0x3f')](_0x5b4dcf['model'],qs['fields'](_0x558ced[_0x41ef('0x3d')][_0x41ef('0x4f')]));_0x243c56[_0x41ef('0x40')]=_0x243c56['attributes']['length']?_0x243c56[_0x41ef('0x40')]:_0x5b4dcf[_0x41ef('0x3b')];if(_0x558ced['query'][_0x41ef('0x4a')]){_0x243c56[_0x41ef('0x4b')]=[{'all':!![]}];}_0x243c56=_['merge']({},_0x243c56,_0x558ced[_0x41ef('0x49')]);return db[_0x41ef('0x37')][_0x41ef('0x50')](_0x243c56)[_0x41ef('0x2d')](handleEntityNotFound(_0x223f07,null))['then'](respondWithResult(_0x223f07,null))[_0x41ef('0x4c')](handleError(_0x223f07,null));};exports[_0x41ef('0x51')]=function(_0x534fbc,_0x5c7914,_0x12e7cb){var _0x50c702;return db[_0x41ef('0x37')][_0x41ef('0x51')](_0x534fbc['body'],{'raw':!![]})['then'](function(_0x4e1cff){_0x50c702=_0x4e1cff;return db['VoiceContext'][_0x41ef('0x52')]({'raw':!![]});})[_0x41ef('0x2d')](function(_0x9392ab){var _0x103016=fs['readFileSync'](path[_0x41ef('0x53')](config[_0x41ef('0x54')],_0x41ef('0x55')),_0x41ef('0x56'));var _0x81ba06=ejs[_0x41ef('0x57')](_0x103016,{'contexts':_0x9392ab||[]});fs[_0x41ef('0x58')](_0x41ef('0x59'),_0x81ba06);})[_0x41ef('0x2d')](function(){return respondWithRpcPromise(_0x41ef('0x5a'),'create',{'module':_0x41ef('0x5b')});})[_0x41ef('0x2d')](function(){var _0x7aa527=_0x534fbc[_0x41ef('0x5c')][_0x41ef('0x5d')]({'plain':!![]});if(!_0x7aa527)throw new Error(_0x41ef('0x5e'));if(_0x7aa527[_0x41ef('0x5f')]==='user'){var _0x337efb=_0x50c702[_0x41ef('0x5d')]({'plain':!![]});return db[_0x41ef('0x60')][_0x41ef('0x50')]({'where':{'name':_0x41ef('0x2f'),'userProfileId':_0x7aa527[_0x41ef('0x61')]},'raw':!![]})[_0x41ef('0x2d')](function(_0x2adc7e){if(_0x2adc7e&&_0x2adc7e[_0x41ef('0x62')]===0x0){return db[_0x41ef('0x30')][_0x41ef('0x51')]({'name':_0x337efb[_0x41ef('0x33')],'resourceId':_0x337efb['id'],'type':_0x2adc7e[_0x41ef('0x33')],'sectionId':_0x2adc7e['id']},{})[_0x41ef('0x2d')](function(){return _0x50c702;});}else{return _0x50c702;}})[_0x41ef('0x4c')](function(_0x183a69){logger['error'](_0x41ef('0x63'),_0x183a69);throw _0x183a69;});}return _0x50c702;})[_0x41ef('0x2d')](respondWithResult(_0x5c7914,0xc9))['catch'](handleError(_0x5c7914,null));};exports[_0x41ef('0x2c')]=function(_0x26c993,_0x45873e,_0x13d24f){var _0x5bf127;return db[_0x41ef('0x37')][_0x41ef('0x50')]({'where':{'id':_0x26c993[_0x41ef('0x4e')]['id']}})['then'](handleEntityNotFound(_0x45873e,null))['then'](saveUpdates(_0x26c993[_0x41ef('0x64')],null))[_0x41ef('0x2d')](function(_0x3df79d){if(_0x3df79d){_0x5bf127=_0x3df79d;return db[_0x41ef('0x37')][_0x41ef('0x52')]({'raw':!![]});}})[_0x41ef('0x2d')](function(_0x27e075){var _0x100029=fs[_0x41ef('0x65')](path[_0x41ef('0x53')](config[_0x41ef('0x54')],_0x41ef('0x55')),_0x41ef('0x56'));var _0x4e33cb=ejs[_0x41ef('0x57')](_0x100029,{'contexts':_0x27e075||[]});fs[_0x41ef('0x58')]('/etc/asterisk/extensions_xcally_contexts.conf',_0x4e33cb);})[_0x41ef('0x2d')](function(){return respondWithRpcPromise(_0x41ef('0x5a'),_0x41ef('0x2c'),{'module':_0x41ef('0x5b')});})['then'](function(){return _0x5bf127;})['then'](respondWithResult(_0x45873e,null))[_0x41ef('0x4c')](handleError(_0x45873e,null));};exports[_0x41ef('0x2e')]=function(_0x17a2b7,_0x1d401c,_0x37576e){var _0x593e67;return db[_0x41ef('0x37')]['find']({'where':{'id':_0x17a2b7['params']['id']}})[_0x41ef('0x2d')](handleEntityNotFound(_0x1d401c,null))[_0x41ef('0x2d')](removeEntity(_0x1d401c,null))[_0x41ef('0x2d')](function(){return db['VoiceContext'][_0x41ef('0x52')]({'raw':!![]});})['then'](function(_0x5932cd){var _0x271537=fs[_0x41ef('0x65')](path[_0x41ef('0x53')](config[_0x41ef('0x54')],_0x41ef('0x55')),_0x41ef('0x56'));var _0x247dee=ejs[_0x41ef('0x57')](_0x271537,{'contexts':_0x5932cd});fs['writeFileSync'](_0x41ef('0x59'),_0x247dee);return respondWithRpcPromise('Reload',_0x41ef('0x2e'),{'module':_0x41ef('0x5b')});})[_0x41ef('0x4c')](handleError(_0x1d401c,null));};
\ No newline at end of file
+var _0xe636=['params','includeAll','find','create','join','root','server/files/templates/context.ejs','utf8','writeFileSync','/etc/asterisk/extensions_xcally_contexts.conf','Reload','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Contexts','userProfileId','body','readFileSync','chan_sip.so','render','eml-format','rimraf','zip-dir','fast-json-patch','bluebird','mustache','util','path','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','client','http','request','then','info','VoiceContext,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','catch','sendStatus','status','end','json','offset','limit','count','set','apply','reject','save','update','destroy','get','UserProfileResource','stack','name','send','map','VoiceContext','rawAttributes','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','type','VIRTUAL','options','include','findAll','rows','show'];(function(_0x34b6c3,_0x124af2){var _0xacd2a2=function(_0x251262){while(--_0x251262){_0x34b6c3['push'](_0x34b6c3['shift']());}};_0xacd2a2(++_0x124af2);}(_0xe636,0x143));var _0x6e63=function(_0x207d2f,_0x44400f){_0x207d2f=_0x207d2f-0x0;var _0x3c3498=_0xe636[_0x207d2f];return _0x3c3498;};'use strict';var emlformat=require(_0x6e63('0x0'));var rimraf=require(_0x6e63('0x1'));var zipdir=require(_0x6e63('0x2'));var jsonpatch=require(_0x6e63('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x6e63('0x4'));var Mustache=require(_0x6e63('0x5'));var util=require(_0x6e63('0x6'));var path=require(_0x6e63('0x7'));var sox=require('sox');var csv=require(_0x6e63('0x8'));var ejs=require(_0x6e63('0x9'));var fs=require('fs');var fs_extra=require(_0x6e63('0xa'));var _=require(_0x6e63('0xb'));var squel=require(_0x6e63('0xc'));var crypto=require(_0x6e63('0xd'));var jsforce=require(_0x6e63('0xe'));var deskjs=require(_0x6e63('0xf'));var toCsv=require('to-csv');var querystring=require(_0x6e63('0x10'));var Papa=require(_0x6e63('0x11'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x6e63('0x12'));var logger=require(_0x6e63('0x13'))(_0x6e63('0x14'));var utils=require('../../config/utils');var config=require(_0x6e63('0x15'));var licenseUtil=require(_0x6e63('0x16'));var db=require('../../mysqldb')['db'];var jayson=require('jayson/promise');var client=jayson[_0x6e63('0x17')][_0x6e63('0x18')]({'port':0x232a});function respondWithRpcPromise(_0x3cb78a,_0x20928b,_0x57b2f2,_0x5c38ee){return new BPromise(function(_0x39b8ad,_0x3dfa2a){var _0x28d774=_0x5c38ee||client;return _0x28d774[_0x6e63('0x19')](_0x3cb78a,_0x57b2f2)[_0x6e63('0x1a')](function(_0x37fa34){logger[_0x6e63('0x1b')](_0x6e63('0x1c'),_0x20928b,_0x6e63('0x1d'));logger[_0x6e63('0x1e')]('VoiceContext,\x20%s,\x20%s,\x20%s',_0x20928b,'request\x20sent',JSON[_0x6e63('0x1f')](_0x37fa34));if(_0x37fa34[_0x6e63('0x20')]){if(_0x37fa34['error'][_0x6e63('0x21')]===0x1f4){logger[_0x6e63('0x20')](_0x6e63('0x1c'),_0x20928b,_0x37fa34[_0x6e63('0x20')][_0x6e63('0x22')]);return _0x3dfa2a(_0x37fa34[_0x6e63('0x20')]['message']);}logger[_0x6e63('0x20')](_0x6e63('0x1c'),_0x20928b,_0x37fa34[_0x6e63('0x20')][_0x6e63('0x22')]);return _0x39b8ad(_0x37fa34[_0x6e63('0x20')][_0x6e63('0x22')]);}else{logger[_0x6e63('0x1b')](_0x6e63('0x1c'),_0x20928b,_0x6e63('0x1d'));_0x39b8ad(_0x37fa34[_0x6e63('0x23')][_0x6e63('0x22')]);}})[_0x6e63('0x24')](function(_0x1f14d7){logger[_0x6e63('0x20')](_0x6e63('0x1c'),_0x20928b,_0x1f14d7);_0x3dfa2a(_0x1f14d7);});});}function respondWithStatusCode(_0x5e37db,_0x52d86c){_0x52d86c=_0x52d86c||0xcc;return function(_0x505602){if(_0x505602){return _0x5e37db[_0x6e63('0x25')](_0x52d86c);}return _0x5e37db[_0x6e63('0x26')](_0x52d86c)[_0x6e63('0x27')]();};}function respondWithResult(_0x3b22df,_0x2d9144){_0x2d9144=_0x2d9144||0xc8;return function(_0xab71f1){if(_0xab71f1){return _0x3b22df[_0x6e63('0x26')](_0x2d9144)[_0x6e63('0x28')](_0xab71f1);}};}function respondWithFilteredResult(_0x519b08,_0x4edec2){return function(_0x37a3b3){if(_0x37a3b3){var _0x837cee=typeof _0x4edec2[_0x6e63('0x29')]==='undefined'&&typeof _0x4edec2[_0x6e63('0x2a')]==='undefined';var _0x34df8a=_0x37a3b3['count'];var _0xe7ea6=_0x837cee?0x0:_0x4edec2['offset'];var _0xd3a015=_0x837cee?_0x37a3b3[_0x6e63('0x2b')]:_0x4edec2[_0x6e63('0x29')]+_0x4edec2['limit'];var _0x313055;if(_0xd3a015>=_0x34df8a){_0xd3a015=_0x34df8a;_0x313055=0xc8;}else{_0x313055=0xce;}_0x519b08[_0x6e63('0x26')](_0x313055);return _0x519b08[_0x6e63('0x2c')]('Content-Range',_0xe7ea6+'-'+_0xd3a015+'/'+_0x34df8a)[_0x6e63('0x28')](_0x37a3b3);}return null;};}function patchUpdates(_0xc568e9){return function(_0x34a229){try{jsonpatch[_0x6e63('0x2d')](_0x34a229,_0xc568e9,!![]);}catch(_0x4ab592){return BPromise[_0x6e63('0x2e')](_0x4ab592);}return _0x34a229[_0x6e63('0x2f')]();};}function saveUpdates(_0x2a2a88,_0x28fd19){return function(_0x2c4b99){if(_0x2c4b99){return _0x2c4b99[_0x6e63('0x30')](_0x2a2a88)['then'](function(_0x2b5435){return _0x2b5435;});}return null;};}function removeEntity(_0x4e7077,_0x1f94f0){return function(_0x582030){if(_0x582030){return _0x582030[_0x6e63('0x31')]()[_0x6e63('0x1a')](function(){var _0x417f9e=_0x582030[_0x6e63('0x32')]({'plain':!![]});var _0x2588b2='Contexts';return db[_0x6e63('0x33')]['destroy']({'where':{'type':_0x2588b2,'resourceId':_0x417f9e['id']}})['then'](function(){return _0x582030;});})['then'](function(){_0x4e7077['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x292401,_0x160952){return function(_0x336442){if(!_0x336442){_0x292401[_0x6e63('0x25')](0x194);}return _0x336442;};}function handleError(_0x330ada,_0x3bd38d){_0x3bd38d=_0x3bd38d||0x1f4;return function(_0x133a91){logger[_0x6e63('0x20')](_0x133a91[_0x6e63('0x34')]);if(_0x133a91[_0x6e63('0x35')]){delete _0x133a91[_0x6e63('0x35')];}_0x330ada['status'](_0x3bd38d)[_0x6e63('0x36')](_0x133a91);};}exports['index']=function(_0x5d2f40,_0x3951e8){var _0x489182={},_0x5055f3={},_0x136d93={'count':0x0,'rows':[]};var _0xc62dc7=_[_0x6e63('0x37')](db[_0x6e63('0x38')][_0x6e63('0x39')],function(_0x33772d){return{'name':_0x33772d['fieldName'],'type':_0x33772d['type'][_0x6e63('0x3a')]};});_0x5055f3[_0x6e63('0x3b')]=_['map'](_0xc62dc7,'name');_0x5055f3[_0x6e63('0x3c')]=_[_0x6e63('0x3d')](_0x5d2f40[_0x6e63('0x3c')]);_0x5055f3[_0x6e63('0x3e')]=_[_0x6e63('0x3f')](_0x5055f3['model'],_0x5055f3['query']);_0x489182[_0x6e63('0x40')]=_[_0x6e63('0x3f')](_0x5055f3[_0x6e63('0x3b')],qs['fields'](_0x5d2f40[_0x6e63('0x3c')][_0x6e63('0x41')]));_0x489182[_0x6e63('0x40')]=_0x489182[_0x6e63('0x40')][_0x6e63('0x42')]?_0x489182[_0x6e63('0x40')]:_0x5055f3[_0x6e63('0x3b')];if(!_0x5d2f40[_0x6e63('0x3c')][_0x6e63('0x43')](_0x6e63('0x44'))){_0x489182[_0x6e63('0x2a')]=qs['limit'](_0x5d2f40[_0x6e63('0x3c')][_0x6e63('0x2a')]);_0x489182[_0x6e63('0x29')]=qs[_0x6e63('0x29')](_0x5d2f40[_0x6e63('0x3c')][_0x6e63('0x29')]);}_0x489182[_0x6e63('0x45')]=qs[_0x6e63('0x46')](_0x5d2f40['query'][_0x6e63('0x46')]);_0x489182[_0x6e63('0x47')]=qs[_0x6e63('0x3e')](_[_0x6e63('0x48')](_0x5d2f40[_0x6e63('0x3c')],_0x5055f3[_0x6e63('0x3e')]),_0xc62dc7);if(_0x5d2f40['query'][_0x6e63('0x49')]){_0x489182[_0x6e63('0x47')]=_['merge'](_0x489182[_0x6e63('0x47')],{'$or':_[_0x6e63('0x37')](_0xc62dc7,function(_0xcbd5be){if(_0xcbd5be[_0x6e63('0x4a')]!==_0x6e63('0x4b')){var _0x5697ad={};_0x5697ad[_0xcbd5be['name']]={'$like':'%'+_0x5d2f40[_0x6e63('0x3c')]['filter']+'%'};return _0x5697ad;}})});}_0x489182=_['merge']({},_0x489182,_0x5d2f40[_0x6e63('0x4c')]);var _0x150f92={'where':_0x489182[_0x6e63('0x47')]};return db[_0x6e63('0x38')][_0x6e63('0x2b')](_0x150f92)[_0x6e63('0x1a')](function(_0x3e5620){_0x136d93[_0x6e63('0x2b')]=_0x3e5620;if(_0x5d2f40[_0x6e63('0x3c')]['includeAll']){_0x489182[_0x6e63('0x4d')]=[{'all':!![]}];}return db[_0x6e63('0x38')][_0x6e63('0x4e')](_0x489182);})[_0x6e63('0x1a')](function(_0x75af7e){_0x136d93[_0x6e63('0x4f')]=_0x75af7e;return _0x136d93;})['then'](respondWithFilteredResult(_0x3951e8,_0x489182))[_0x6e63('0x24')](handleError(_0x3951e8,null));};exports[_0x6e63('0x50')]=function(_0x1e8923,_0x9c94b8){var _0x1df64a={'raw':![],'where':{'id':_0x1e8923[_0x6e63('0x51')]['id']}},_0xba161b={};_0xba161b['model']=_[_0x6e63('0x3d')](db[_0x6e63('0x38')][_0x6e63('0x39')]);_0xba161b['query']=_[_0x6e63('0x3d')](_0x1e8923[_0x6e63('0x3c')]);_0xba161b['filters']=_['intersection'](_0xba161b['model'],_0xba161b[_0x6e63('0x3c')]);_0x1df64a['attributes']=_[_0x6e63('0x3f')](_0xba161b[_0x6e63('0x3b')],qs[_0x6e63('0x41')](_0x1e8923[_0x6e63('0x3c')]['fields']));_0x1df64a[_0x6e63('0x40')]=_0x1df64a[_0x6e63('0x40')][_0x6e63('0x42')]?_0x1df64a[_0x6e63('0x40')]:_0xba161b[_0x6e63('0x3b')];if(_0x1e8923[_0x6e63('0x3c')][_0x6e63('0x52')]){_0x1df64a[_0x6e63('0x4d')]=[{'all':!![]}];}_0x1df64a=_['merge']({},_0x1df64a,_0x1e8923[_0x6e63('0x4c')]);return db[_0x6e63('0x38')][_0x6e63('0x53')](_0x1df64a)[_0x6e63('0x1a')](handleEntityNotFound(_0x9c94b8,null))['then'](respondWithResult(_0x9c94b8,null))['catch'](handleError(_0x9c94b8,null));};exports[_0x6e63('0x54')]=function(_0x237840,_0x25a91c,_0x36e388){var _0xe94138;return db['VoiceContext'][_0x6e63('0x54')](_0x237840['body'],{'raw':!![]})[_0x6e63('0x1a')](function(_0x3bca3b){_0xe94138=_0x3bca3b;return db['VoiceContext'][_0x6e63('0x4e')]({'raw':!![]});})[_0x6e63('0x1a')](function(_0x806705){var _0x18c781=fs['readFileSync'](path[_0x6e63('0x55')](config[_0x6e63('0x56')],_0x6e63('0x57')),_0x6e63('0x58'));var _0x266b0f=ejs['render'](_0x18c781,{'contexts':_0x806705||[]});fs[_0x6e63('0x59')](_0x6e63('0x5a'),_0x266b0f);})[_0x6e63('0x1a')](function(){return respondWithRpcPromise(_0x6e63('0x5b'),_0x6e63('0x54'),{'module':'chan_sip.so'});})[_0x6e63('0x1a')](function(){var _0x18beb4=_0x237840[_0x6e63('0x5c')][_0x6e63('0x32')]({'plain':!![]});if(!_0x18beb4)throw new Error(_0x6e63('0x5d'));if(_0x18beb4[_0x6e63('0x5e')]==='user'){var _0xdbdc6c=_0xe94138[_0x6e63('0x32')]({'plain':!![]});return db['UserProfileSection']['find']({'where':{'name':_0x6e63('0x5f'),'userProfileId':_0x18beb4[_0x6e63('0x60')]},'raw':!![]})[_0x6e63('0x1a')](function(_0x84374b){if(_0x84374b&&_0x84374b['autoAssociation']===0x0){return db[_0x6e63('0x33')]['create']({'name':_0xdbdc6c[_0x6e63('0x35')],'resourceId':_0xdbdc6c['id'],'type':_0x84374b[_0x6e63('0x35')],'sectionId':_0x84374b['id']},{})['then'](function(){return _0xe94138;});}else{return _0xe94138;}})[_0x6e63('0x24')](function(_0xf8278d){logger[_0x6e63('0x20')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0xf8278d);throw _0xf8278d;});}return _0xe94138;})['then'](respondWithResult(_0x25a91c,0xc9))[_0x6e63('0x24')](handleError(_0x25a91c,null));};exports[_0x6e63('0x30')]=function(_0x385870,_0x3072a1,_0x4470a1){var _0x35f4ee;return db[_0x6e63('0x38')][_0x6e63('0x53')]({'where':{'id':_0x385870[_0x6e63('0x51')]['id']}})[_0x6e63('0x1a')](handleEntityNotFound(_0x3072a1,null))[_0x6e63('0x1a')](saveUpdates(_0x385870[_0x6e63('0x61')],null))[_0x6e63('0x1a')](function(_0x16b0b9){if(_0x16b0b9){_0x35f4ee=_0x16b0b9;return db['VoiceContext'][_0x6e63('0x4e')]({'raw':!![]});}})[_0x6e63('0x1a')](function(_0x150276){var _0x3f7ed7=fs[_0x6e63('0x62')](path['join'](config[_0x6e63('0x56')],_0x6e63('0x57')),_0x6e63('0x58'));var _0x3c518a=ejs['render'](_0x3f7ed7,{'contexts':_0x150276||[]});fs['writeFileSync'](_0x6e63('0x5a'),_0x3c518a);})[_0x6e63('0x1a')](function(){return respondWithRpcPromise(_0x6e63('0x5b'),_0x6e63('0x30'),{'module':_0x6e63('0x63')});})[_0x6e63('0x1a')](function(){return _0x35f4ee;})['then'](respondWithResult(_0x3072a1,null))['catch'](handleError(_0x3072a1,null));};exports[_0x6e63('0x31')]=function(_0x298bae,_0x5e05b3,_0x27b35b){var _0x93727;return db['VoiceContext'][_0x6e63('0x53')]({'where':{'id':_0x298bae['params']['id']}})[_0x6e63('0x1a')](handleEntityNotFound(_0x5e05b3,null))['then'](removeEntity(_0x5e05b3,null))[_0x6e63('0x1a')](function(){return db[_0x6e63('0x38')][_0x6e63('0x4e')]({'raw':!![]});})[_0x6e63('0x1a')](function(_0x4c35df){var _0xbd405e=fs[_0x6e63('0x62')](path[_0x6e63('0x55')](config[_0x6e63('0x56')],_0x6e63('0x57')),_0x6e63('0x58'));var _0x1eed8a=ejs[_0x6e63('0x64')](_0xbd405e,{'contexts':_0x4c35df});fs[_0x6e63('0x59')](_0x6e63('0x5a'),_0x1eed8a);return respondWithRpcPromise(_0x6e63('0x5b'),_0x6e63('0x31'),{'module':'chan_sip.so'});})['catch'](handleError(_0x5e05b3,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x52ed=['../../config/logger','api','moment','request-promise','path','rimraf','../../config/environment','./voiceContext.attributes','voice_contexts','lodash','util'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x52ed,0x132));var _0xd52e=function(_0x191f9d,_0x21976f){_0x191f9d=_0x191f9d-0x0;var _0x58e60d=_0x52ed[_0x191f9d];return _0x58e60d;};'use strict';var _=require(_0xd52e('0x0'));var util=require(_0xd52e('0x1'));var logger=require(_0xd52e('0x2'))(_0xd52e('0x3'));var moment=require(_0xd52e('0x4'));var BPromise=require('bluebird');var rp=require(_0xd52e('0x5'));var fs=require('fs');var path=require(_0xd52e('0x6'));var rimraf=require(_0xd52e('0x7'));var config=require(_0xd52e('0x8'));var attributes=require(_0xd52e('0x9'));module['exports']=function(_0x27a637,_0xb6a24a){return _0x27a637['define']('VoiceContext',attributes,{'tableName':_0xd52e('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xdedd=['bluebird','exports','define','VoiceContext','lodash','util','../../config/logger','api','moment'];(function(_0x466316,_0x46d342){var _0xcfa4a1=function(_0x1c621f){while(--_0x1c621f){_0x466316['push'](_0x466316['shift']());}};_0xcfa4a1(++_0x46d342);}(_0xdedd,0xd3));var _0xdded=function(_0x12167e,_0x2dd3d0){_0x12167e=_0x12167e-0x0;var _0x4df742=_0xdedd[_0x12167e];return _0x4df742;};'use strict';var _=require(_0xdded('0x0'));var util=require(_0xdded('0x1'));var logger=require(_0xdded('0x2'))(_0xdded('0x3'));var moment=require(_0xdded('0x4'));var BPromise=require(_0xdded('0x5'));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('./voiceContext.attributes');module[_0xdded('0x6')]=function(_0x19eeb8,_0x48ca13){return _0x19eeb8[_0xdded('0x7')](_0xdded('0x8'),attributes,{'tableName':'voice_contexts','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x945d=['VoiceContext,\x20%s,\x20%s,\x20%s','stringify','error','code','message','catch','lodash','util','bluebird','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','request','info','VoiceContext,\x20%s,\x20%s','request\x20sent','debug'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x945d,0xe2));var _0xd945=function(_0x1d0dac,_0x324be3){_0x1d0dac=_0x1d0dac-0x0;var _0x55e4f8=_0x945d[_0x1d0dac];return _0x55e4f8;};'use strict';var _=require(_0xd945('0x0'));var util=require(_0xd945('0x1'));var moment=require('moment');var BPromise=require(_0xd945('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0xd945('0x3'));var logger=require(_0xd945('0x4'))(_0xd945('0x5'));var config=require(_0xd945('0x6'));var jayson=require(_0xd945('0x7'));var client=jayson[_0xd945('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0x520a7c,_0x3276e1,_0x4a4763){return new BPromise(function(_0xb9ffca,_0x28e24a){return client[_0xd945('0x9')](_0x520a7c,_0x4a4763)['then'](function(_0x56cbbe){logger[_0xd945('0xa')](_0xd945('0xb'),_0x3276e1,_0xd945('0xc'));logger[_0xd945('0xd')](_0xd945('0xe'),_0x3276e1,_0xd945('0xc'),JSON[_0xd945('0xf')](_0x56cbbe));if(_0x56cbbe['error']){if(_0x56cbbe[_0xd945('0x10')][_0xd945('0x11')]===0x1f4){logger[_0xd945('0x10')](_0xd945('0xb'),_0x3276e1,_0x56cbbe[_0xd945('0x10')][_0xd945('0x12')]);return _0x28e24a(_0x56cbbe[_0xd945('0x10')][_0xd945('0x12')]);}logger[_0xd945('0x10')](_0xd945('0xb'),_0x3276e1,_0x56cbbe['error']['message']);return _0xb9ffca(_0x56cbbe['error']['message']);}else{logger[_0xd945('0xa')]('VoiceContext,\x20%s,\x20%s',_0x3276e1,_0xd945('0xc'));_0xb9ffca(_0x56cbbe['result'][_0xd945('0x12')]);}})[_0xd945('0x13')](function(_0x4cf287){logger['error'](_0xd945('0xb'),_0x3276e1,_0x4cf287);_0x28e24a(_0x4cf287);});});}
\ No newline at end of file
+var _0x5433=['error','code','message','VoiceContext,\x20%s,\x20%s','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','jayson/promise','client','http','request','then','info','request\x20sent','VoiceContext,\x20%s,\x20%s,\x20%s','stringify'];(function(_0x1e522d,_0x3f8472){var _0x106d45=function(_0x44b21a){while(--_0x44b21a){_0x1e522d['push'](_0x1e522d['shift']());}};_0x106d45(++_0x3f8472);}(_0x5433,0x9f));var _0x3543=function(_0x589c9a,_0x5de7df){_0x589c9a=_0x589c9a-0x0;var _0x4fffdd=_0x5433[_0x589c9a];return _0x4fffdd;};'use strict';var _=require(_0x3543('0x0'));var util=require(_0x3543('0x1'));var moment=require(_0x3543('0x2'));var BPromise=require(_0x3543('0x3'));var rs=require(_0x3543('0x4'));var fs=require('fs');var Redis=require(_0x3543('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0x3543('0x6'));var logger=require(_0x3543('0x7'))('rpc');var config=require('../../config/environment');var jayson=require(_0x3543('0x8'));var client=jayson[_0x3543('0x9')][_0x3543('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x34abfe,_0x5e8b5d,_0x24794a){return new BPromise(function(_0x13339f,_0x4b8027){return client[_0x3543('0xb')](_0x34abfe,_0x24794a)[_0x3543('0xc')](function(_0x382389){logger[_0x3543('0xd')]('VoiceContext,\x20%s,\x20%s',_0x5e8b5d,_0x3543('0xe'));logger['debug'](_0x3543('0xf'),_0x5e8b5d,_0x3543('0xe'),JSON[_0x3543('0x10')](_0x382389));if(_0x382389[_0x3543('0x11')]){if(_0x382389[_0x3543('0x11')][_0x3543('0x12')]===0x1f4){logger[_0x3543('0x11')]('VoiceContext,\x20%s,\x20%s',_0x5e8b5d,_0x382389['error'][_0x3543('0x13')]);return _0x4b8027(_0x382389['error'][_0x3543('0x13')]);}logger[_0x3543('0x11')](_0x3543('0x14'),_0x5e8b5d,_0x382389['error'][_0x3543('0x13')]);return _0x13339f(_0x382389['error'][_0x3543('0x13')]);}else{logger[_0x3543('0xd')](_0x3543('0x14'),_0x5e8b5d,_0x3543('0xe'));_0x13339f(_0x382389['result']['message']);}})[_0x3543('0x15')](function(_0xb315bb){logger['error'](_0x3543('0x14'),_0x5e8b5d,_0xb315bb);_0x4b8027(_0xb315bb);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfae8=['path','connect-timeout','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./voiceDialReport.controller','get','isAuthenticated','index','describe','/:id','show','create','put','delete','destroy','exports','multer','util'];(function(_0x63f8ba,_0x94755d){var _0x58cb8f=function(_0x5c8734){while(--_0x5c8734){_0x63f8ba['push'](_0x63f8ba['shift']());}};_0x58cb8f(++_0x94755d);}(_0xfae8,0x76));var _0x8fae=function(_0x1888a3,_0x19ee76){_0x1888a3=_0x1888a3-0x0;var _0x4ba7c0=_0xfae8[_0x1888a3];return _0x4ba7c0;};'use strict';var multer=require(_0x8fae('0x0'));var util=require(_0x8fae('0x1'));var path=require(_0x8fae('0x2'));var timeout=require(_0x8fae('0x3'));var express=require('express');var router=express[_0x8fae('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0x8fae('0x5'));var interaction=require(_0x8fae('0x6'));var config=require(_0x8fae('0x7'));var controller=require(_0x8fae('0x8'));router[_0x8fae('0x9')]('/',auth[_0x8fae('0xa')](),controller[_0x8fae('0xb')]);router['get']('/describe',auth['isAuthenticated'](),controller[_0x8fae('0xc')]);router['get'](_0x8fae('0xd'),auth[_0x8fae('0xa')](),controller[_0x8fae('0xe')]);router['post']('/',auth[_0x8fae('0xa')](),controller[_0x8fae('0xf')]);router[_0x8fae('0x10')](_0x8fae('0xd'),auth[_0x8fae('0xa')](),controller['update']);router[_0x8fae('0x11')](_0x8fae('0xd'),auth[_0x8fae('0xa')](),controller[_0x8fae('0x12')]);module[_0x8fae('0x13')]=router;
\ No newline at end of file
+var _0x354c=['put','update','destroy','exports','multer','util','path','connect-timeout','Router','fs-extra','../../components/interaction/service','../../config/environment','./voiceDialReport.controller','index','get','/describe','isAuthenticated','/:id','post','create'];(function(_0x5eb208,_0x47e375){var _0x47d9d4=function(_0x4a5641){while(--_0x4a5641){_0x5eb208['push'](_0x5eb208['shift']());}};_0x47d9d4(++_0x47e375);}(_0x354c,0x1e4));var _0xc354=function(_0x14919a,_0x258055){_0x14919a=_0x14919a-0x0;var _0x1359af=_0x354c[_0x14919a];return _0x1359af;};'use strict';var multer=require(_0xc354('0x0'));var util=require(_0xc354('0x1'));var path=require(_0xc354('0x2'));var timeout=require(_0xc354('0x3'));var express=require('express');var router=express[_0xc354('0x4')]();var fs_extra=require(_0xc354('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0xc354('0x6'));var config=require(_0xc354('0x7'));var controller=require(_0xc354('0x8'));router['get']('/',auth['isAuthenticated'](),controller[_0xc354('0x9')]);router[_0xc354('0xa')](_0xc354('0xb'),auth[_0xc354('0xc')](),controller['describe']);router[_0xc354('0xa')](_0xc354('0xd'),auth['isAuthenticated'](),controller['show']);router[_0xc354('0xe')]('/',auth['isAuthenticated'](),controller[_0xc354('0xf')]);router[_0xc354('0x10')]('/:id',auth[_0xc354('0xc')](),controller[_0xc354('0x11')]);router['delete'](_0xc354('0xd'),auth['isAuthenticated'](),controller[_0xc354('0x12')]);module[_0xc354('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd6d6=['STRING','INTEGER','DATE','called,connect,complete','sequelize','exports'];(function(_0x28104d,_0x1ddce1){var _0xca609b=function(_0x2b3b26){while(--_0x2b3b26){_0x28104d['push'](_0x28104d['shift']());}};_0xca609b(++_0x1ddce1);}(_0xd6d6,0xbe));var _0x6d6d=function(_0x5cfe96,_0x1d2639){_0x5cfe96=_0x5cfe96-0x0;var _0x36851e=_0xd6d6[_0x5cfe96];return _0x36851e;};'use strict';var Sequelize=require(_0x6d6d('0x0'));module[_0x6d6d('0x1')]={'privilege':{'type':Sequelize[_0x6d6d('0x2')]},'channel':{'type':Sequelize[_0x6d6d('0x2')]},'channelstate':{'type':Sequelize['INTEGER']},'channelstatedesc':{'type':Sequelize[_0x6d6d('0x2')]},'calleridnum':{'type':Sequelize[_0x6d6d('0x2')]},'calleridname':{'type':Sequelize[_0x6d6d('0x2')]},'connectedlinenum':{'type':Sequelize[_0x6d6d('0x2')]},'connectedlinename':{'type':Sequelize[_0x6d6d('0x2')]},'language':{'type':Sequelize[_0x6d6d('0x2')]},'accountcode':{'type':Sequelize[_0x6d6d('0x2')]},'context':{'type':Sequelize['STRING']},'exten':{'type':Sequelize[_0x6d6d('0x2')]},'priority':{'type':Sequelize[_0x6d6d('0x3')]},'uniqueid':{'type':Sequelize[_0x6d6d('0x2')]},'linkedid':{'type':Sequelize[_0x6d6d('0x2')]},'destchannel':{'type':Sequelize[_0x6d6d('0x2')]},'destchannelstate':{'type':Sequelize[_0x6d6d('0x3')]},'destchannelstatedesc':{'type':Sequelize[_0x6d6d('0x2')]},'destcalleridnum':{'type':Sequelize['STRING']},'destcalleridname':{'type':Sequelize['STRING']},'destconnectedlinenum':{'type':Sequelize[_0x6d6d('0x2')]},'destconnectedlinename':{'type':Sequelize[_0x6d6d('0x2')]},'destlanguage':{'type':Sequelize[_0x6d6d('0x2')]},'destaccountcode':{'type':Sequelize[_0x6d6d('0x2')]},'destcontext':{'type':Sequelize[_0x6d6d('0x2')]},'destexten':{'type':Sequelize['STRING']},'destpriority':{'type':Sequelize[_0x6d6d('0x3')]},'destuniqueid':{'type':Sequelize[_0x6d6d('0x2')]},'destlinkedid':{'type':Sequelize['STRING']},'dialstring':{'type':Sequelize['STRING']},'dialstatus':{'type':Sequelize[_0x6d6d('0x2')]},'starttime':{'type':Sequelize[_0x6d6d('0x4')]},'answertime':{'type':Sequelize[_0x6d6d('0x4')]},'endtime':{'type':Sequelize[_0x6d6d('0x4')]},'lastevent':{'type':Sequelize[_0x6d6d('0x2')],'comment':_0x6d6d('0x5')},'routeId':{'type':Sequelize[_0x6d6d('0x3')]},'duration':{'type':Sequelize[_0x6d6d('0x3')]},'holdtime':{'type':Sequelize['INTEGER']},'billableseconds':{'type':Sequelize[_0x6d6d('0x3')]}};
\ No newline at end of file
+var _0x55ca=['exports','STRING','INTEGER','DATE','sequelize'];(function(_0x3dafbd,_0x56bb47){var _0x37b5f4=function(_0x605eac){while(--_0x605eac){_0x3dafbd['push'](_0x3dafbd['shift']());}};_0x37b5f4(++_0x56bb47);}(_0x55ca,0x126));var _0xa55c=function(_0x1af0e5,_0x152990){_0x1af0e5=_0x1af0e5-0x0;var _0x3c444a=_0x55ca[_0x1af0e5];return _0x3c444a;};'use strict';var Sequelize=require(_0xa55c('0x0'));module[_0xa55c('0x1')]={'privilege':{'type':Sequelize['STRING']},'channel':{'type':Sequelize['STRING']},'channelstate':{'type':Sequelize['INTEGER']},'channelstatedesc':{'type':Sequelize[_0xa55c('0x2')]},'calleridnum':{'type':Sequelize[_0xa55c('0x2')]},'calleridname':{'type':Sequelize['STRING']},'connectedlinenum':{'type':Sequelize[_0xa55c('0x2')]},'connectedlinename':{'type':Sequelize[_0xa55c('0x2')]},'language':{'type':Sequelize[_0xa55c('0x2')]},'accountcode':{'type':Sequelize[_0xa55c('0x2')]},'context':{'type':Sequelize[_0xa55c('0x2')]},'exten':{'type':Sequelize[_0xa55c('0x2')]},'priority':{'type':Sequelize[_0xa55c('0x3')]},'uniqueid':{'type':Sequelize['STRING']},'linkedid':{'type':Sequelize[_0xa55c('0x2')]},'destchannel':{'type':Sequelize[_0xa55c('0x2')]},'destchannelstate':{'type':Sequelize['INTEGER']},'destchannelstatedesc':{'type':Sequelize[_0xa55c('0x2')]},'destcalleridnum':{'type':Sequelize[_0xa55c('0x2')]},'destcalleridname':{'type':Sequelize['STRING']},'destconnectedlinenum':{'type':Sequelize['STRING']},'destconnectedlinename':{'type':Sequelize[_0xa55c('0x2')]},'destlanguage':{'type':Sequelize[_0xa55c('0x2')]},'destaccountcode':{'type':Sequelize[_0xa55c('0x2')]},'destcontext':{'type':Sequelize[_0xa55c('0x2')]},'destexten':{'type':Sequelize[_0xa55c('0x2')]},'destpriority':{'type':Sequelize[_0xa55c('0x3')]},'destuniqueid':{'type':Sequelize[_0xa55c('0x2')]},'destlinkedid':{'type':Sequelize[_0xa55c('0x2')]},'dialstring':{'type':Sequelize[_0xa55c('0x2')]},'dialstatus':{'type':Sequelize[_0xa55c('0x2')]},'starttime':{'type':Sequelize['DATE']},'answertime':{'type':Sequelize['DATE']},'endtime':{'type':Sequelize[_0xa55c('0x4')]},'lastevent':{'type':Sequelize['STRING'],'comment':'called,connect,complete'},'routeId':{'type':Sequelize['INTEGER']},'duration':{'type':Sequelize[_0xa55c('0x3')]},'holdtime':{'type':Sequelize[_0xa55c('0x3')]},'billableseconds':{'type':Sequelize[_0xa55c('0x3')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6315=['ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','count','limit','set','Content-Range','reject','update','then','destroy','sendStatus','stack','name','send','index','map','VoiceDialReport','rawAttributes','type','key','keys','filters','intersection','model','attributes','fields','query','length','hasOwnProperty','nolimit','order','sort','pick','filter','merge','where','options','includeAll','include','findAll','rows','catch','show','params','create','body','find','describe','rimraf','zip-dir','moment','mustache','util','path','sox','ejs','fs-extra','desk.js','papaparse'];(function(_0x276468,_0x29685a){var _0x36dc3a=function(_0x291f0a){while(--_0x291f0a){_0x276468['push'](_0x276468['shift']());}};_0x36dc3a(++_0x29685a);}(_0x6315,0x19f));var _0x5631=function(_0x3abe93,_0x380455){_0x3abe93=_0x3abe93-0x0;var _0x44c32d=_0x6315[_0x3abe93];return _0x44c32d;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x5631('0x0'));var zipdir=require(_0x5631('0x1'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x5631('0x2'));var BPromise=require('bluebird');var Mustache=require(_0x5631('0x3'));var util=require(_0x5631('0x4'));var path=require(_0x5631('0x5'));var sox=require(_0x5631('0x6'));var csv=require('to-csv');var ejs=require(_0x5631('0x7'));var fs=require('fs');var fs_extra=require(_0x5631('0x8'));var _=require('lodash');var squel=require('squel');var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x5631('0x9'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x5631('0xa'));var Redis=require(_0x5631('0xb'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x5631('0xc'));var hardwareService=require(_0x5631('0xd'));var logger=require(_0x5631('0xe'))(_0x5631('0xf'));var utils=require(_0x5631('0x10'));var config=require(_0x5631('0x11'));var licenseUtil=require(_0x5631('0x12'));var db=require(_0x5631('0x13'))['db'];function respondWithStatusCode(_0x4e5a4f,_0x15b2a9){_0x15b2a9=_0x15b2a9||0xcc;return function(_0x1f1e96){if(_0x1f1e96){return _0x4e5a4f['sendStatus'](_0x15b2a9);}return _0x4e5a4f[_0x5631('0x14')](_0x15b2a9)[_0x5631('0x15')]();};}function respondWithResult(_0x4d1c3b,_0x2b9259){_0x2b9259=_0x2b9259||0xc8;return function(_0x35ccdf){if(_0x35ccdf){return _0x4d1c3b['status'](_0x2b9259)[_0x5631('0x16')](_0x35ccdf);}};}function respondWithFilteredResult(_0x4ab742,_0xf576d5){return function(_0x1a2871){if(_0x1a2871){var _0x38675b=typeof _0xf576d5[_0x5631('0x17')]===_0x5631('0x18')&&typeof _0xf576d5['limit']===_0x5631('0x18');var _0x22dbdb=_0x1a2871['count'];var _0x5880e7=_0x38675b?0x0:_0xf576d5[_0x5631('0x17')];var _0x293abe=_0x38675b?_0x1a2871[_0x5631('0x19')]:_0xf576d5[_0x5631('0x17')]+_0xf576d5[_0x5631('0x1a')];var _0x42449a;if(_0x293abe>=_0x22dbdb){_0x293abe=_0x22dbdb;_0x42449a=0xc8;}else{_0x42449a=0xce;}_0x4ab742[_0x5631('0x14')](_0x42449a);return _0x4ab742[_0x5631('0x1b')](_0x5631('0x1c'),_0x5880e7+'-'+_0x293abe+'/'+_0x22dbdb)['json'](_0x1a2871);}return null;};}function patchUpdates(_0x297b5b){return function(_0x228f7a){try{jsonpatch['apply'](_0x228f7a,_0x297b5b,!![]);}catch(_0x51693c){return BPromise[_0x5631('0x1d')](_0x51693c);}return _0x228f7a['save']();};}function saveUpdates(_0x51f804,_0xa3f68b){return function(_0x235fa8){if(_0x235fa8){return _0x235fa8[_0x5631('0x1e')](_0x51f804)[_0x5631('0x1f')](function(_0x88e659){return _0x88e659;});}return null;};}function removeEntity(_0x3a69db,_0x7313fa){return function(_0x3fabe2){if(_0x3fabe2){return _0x3fabe2[_0x5631('0x20')]()['then'](function(){_0x3a69db[_0x5631('0x14')](0xcc)[_0x5631('0x15')]();});}};}function handleEntityNotFound(_0x2f7058,_0x42aeaf){return function(_0x3c1fb4){if(!_0x3c1fb4){_0x2f7058[_0x5631('0x21')](0x194);}return _0x3c1fb4;};}function handleError(_0x220d7a,_0x13eaa3){_0x13eaa3=_0x13eaa3||0x1f4;return function(_0x47efe5){logger['error'](_0x47efe5[_0x5631('0x22')]);if(_0x47efe5['name']){delete _0x47efe5[_0x5631('0x23')];}_0x220d7a[_0x5631('0x14')](_0x13eaa3)[_0x5631('0x24')](_0x47efe5);};}exports[_0x5631('0x25')]=function(_0x1b0e60,_0x17e09f){var _0x54272d={},_0x5d6fd={},_0x490d10={'count':0x0,'rows':[]};var _0x146220=_[_0x5631('0x26')](db[_0x5631('0x27')][_0x5631('0x28')],function(_0x54e595){return{'name':_0x54e595['fieldName'],'type':_0x54e595[_0x5631('0x29')][_0x5631('0x2a')]};});_0x5d6fd['model']=_[_0x5631('0x26')](_0x146220,_0x5631('0x23'));_0x5d6fd['query']=_[_0x5631('0x2b')](_0x1b0e60['query']);_0x5d6fd[_0x5631('0x2c')]=_[_0x5631('0x2d')](_0x5d6fd[_0x5631('0x2e')],_0x5d6fd['query']);_0x54272d[_0x5631('0x2f')]=_['intersection'](_0x5d6fd[_0x5631('0x2e')],qs[_0x5631('0x30')](_0x1b0e60[_0x5631('0x31')][_0x5631('0x30')]));_0x54272d[_0x5631('0x2f')]=_0x54272d['attributes'][_0x5631('0x32')]?_0x54272d[_0x5631('0x2f')]:_0x5d6fd[_0x5631('0x2e')];if(!_0x1b0e60['query'][_0x5631('0x33')](_0x5631('0x34'))){_0x54272d[_0x5631('0x1a')]=qs[_0x5631('0x1a')](_0x1b0e60[_0x5631('0x31')][_0x5631('0x1a')]);_0x54272d['offset']=qs[_0x5631('0x17')](_0x1b0e60[_0x5631('0x31')][_0x5631('0x17')]);}_0x54272d[_0x5631('0x35')]=qs[_0x5631('0x36')](_0x1b0e60['query'][_0x5631('0x36')]);_0x54272d['where']=qs[_0x5631('0x2c')](_[_0x5631('0x37')](_0x1b0e60[_0x5631('0x31')],_0x5d6fd[_0x5631('0x2c')]),_0x146220);if(_0x1b0e60[_0x5631('0x31')][_0x5631('0x38')]){_0x54272d['where']=_[_0x5631('0x39')](_0x54272d[_0x5631('0x3a')],{'$or':_[_0x5631('0x26')](_0x146220,function(_0x32739d){if(_0x32739d[_0x5631('0x29')]!=='VIRTUAL'){var _0x30c9a7={};_0x30c9a7[_0x32739d['name']]={'$like':'%'+_0x1b0e60['query'][_0x5631('0x38')]+'%'};return _0x30c9a7;}})});}_0x54272d=_[_0x5631('0x39')]({},_0x54272d,_0x1b0e60[_0x5631('0x3b')]);var _0x175d4d={'where':_0x54272d[_0x5631('0x3a')]};return db[_0x5631('0x27')]['count'](_0x175d4d)[_0x5631('0x1f')](function(_0x199ccb){_0x490d10[_0x5631('0x19')]=_0x199ccb;if(_0x1b0e60[_0x5631('0x31')][_0x5631('0x3c')]){_0x54272d[_0x5631('0x3d')]=[{'all':!![]}];}return db[_0x5631('0x27')][_0x5631('0x3e')](_0x54272d);})[_0x5631('0x1f')](function(_0x30d184){_0x490d10[_0x5631('0x3f')]=_0x30d184;return _0x490d10;})[_0x5631('0x1f')](respondWithFilteredResult(_0x17e09f,_0x54272d))[_0x5631('0x40')](handleError(_0x17e09f,null));};exports[_0x5631('0x41')]=function(_0x1b29ba,_0x56f55c){var _0x2d1b60={'raw':!![],'where':{'id':_0x1b29ba[_0x5631('0x42')]['id']}},_0x275c9d={};_0x275c9d['model']=_[_0x5631('0x2b')](db[_0x5631('0x27')][_0x5631('0x28')]);_0x275c9d['query']=_[_0x5631('0x2b')](_0x1b29ba[_0x5631('0x31')]);_0x275c9d[_0x5631('0x2c')]=_[_0x5631('0x2d')](_0x275c9d[_0x5631('0x2e')],_0x275c9d[_0x5631('0x31')]);_0x2d1b60['attributes']=_[_0x5631('0x2d')](_0x275c9d[_0x5631('0x2e')],qs[_0x5631('0x30')](_0x1b29ba[_0x5631('0x31')][_0x5631('0x30')]));_0x2d1b60[_0x5631('0x2f')]=_0x2d1b60[_0x5631('0x2f')][_0x5631('0x32')]?_0x2d1b60[_0x5631('0x2f')]:_0x275c9d['model'];if(_0x1b29ba['query'][_0x5631('0x3c')]){_0x2d1b60[_0x5631('0x3d')]=[{'all':!![]}];}_0x2d1b60=_[_0x5631('0x39')]({},_0x2d1b60,_0x1b29ba['options']);return db['VoiceDialReport']['find'](_0x2d1b60)[_0x5631('0x1f')](handleEntityNotFound(_0x56f55c,null))['then'](respondWithResult(_0x56f55c,null))[_0x5631('0x40')](handleError(_0x56f55c,null));};exports[_0x5631('0x43')]=function(_0x267560,_0x1eed2b){return db[_0x5631('0x27')]['create'](_0x267560[_0x5631('0x44')],{})['then'](respondWithResult(_0x1eed2b,0xc9))[_0x5631('0x40')](handleError(_0x1eed2b,null));};exports[_0x5631('0x1e')]=function(_0x3920ac,_0x55cd00){if(_0x3920ac['body']['id']){delete _0x3920ac[_0x5631('0x44')]['id'];}return db['VoiceDialReport'][_0x5631('0x45')]({'where':{'id':_0x3920ac[_0x5631('0x42')]['id']}})[_0x5631('0x1f')](handleEntityNotFound(_0x55cd00,null))['then'](saveUpdates(_0x3920ac[_0x5631('0x44')],null))['then'](respondWithResult(_0x55cd00,null))[_0x5631('0x40')](handleError(_0x55cd00,null));};exports[_0x5631('0x20')]=function(_0x3d3f6c,_0x30af12){return db[_0x5631('0x27')][_0x5631('0x45')]({'where':{'id':_0x3d3f6c[_0x5631('0x42')]['id']}})[_0x5631('0x1f')](handleEntityNotFound(_0x30af12,null))[_0x5631('0x1f')](removeEntity(_0x30af12,null))[_0x5631('0x40')](handleError(_0x30af12,null));};exports[_0x5631('0x46')]=function(_0x2402c1,_0x5bce6f){return db['VoiceDialReport'][_0x5631('0x46')]()[_0x5631('0x1f')](respondWithResult(_0x5bce6f,null))[_0x5631('0x40')](handleError(_0x5bce6f,null));};
\ No newline at end of file
+var _0xec3b=['find','create','body','destroy','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../mysqldb','sendStatus','status','end','undefined','count','offset','limit','set','Content-Range','update','then','error','stack','name','send','index','map','VoiceDialReport','rawAttributes','fieldName','type','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','sort','pick','filter','where','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params'];(function(_0x384a69,_0x53148b){var _0x243142=function(_0x26627d){while(--_0x26627d){_0x384a69['push'](_0x384a69['shift']());}};_0x243142(++_0x53148b);}(_0xec3b,0x125));var _0xbec3=function(_0x5546ef,_0x4069a4){_0x5546ef=_0x5546ef-0x0;var _0x484a0f=_0xec3b[_0x5546ef];return _0x484a0f;};'use strict';var emlformat=require(_0xbec3('0x0'));var rimraf=require(_0xbec3('0x1'));var zipdir=require(_0xbec3('0x2'));var jsonpatch=require(_0xbec3('0x3'));var rp=require(_0xbec3('0x4'));var moment=require('moment');var BPromise=require(_0xbec3('0x5'));var Mustache=require(_0xbec3('0x6'));var util=require(_0xbec3('0x7'));var path=require(_0xbec3('0x8'));var sox=require(_0xbec3('0x9'));var csv=require(_0xbec3('0xa'));var ejs=require(_0xbec3('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xbec3('0xc'));var squel=require(_0xbec3('0xd'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xbec3('0xa'));var querystring=require('querystring');var Papa=require(_0xbec3('0xe'));var Redis=require(_0xbec3('0xf'));var authService=require(_0xbec3('0x10'));var qs=require(_0xbec3('0x11'));var as=require(_0xbec3('0x12'));var hardwareService=require(_0xbec3('0x13'));var logger=require(_0xbec3('0x14'))(_0xbec3('0x15'));var utils=require('../../config/utils');var config=require(_0xbec3('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0xbec3('0x17'))['db'];function respondWithStatusCode(_0x22c08c,_0x24b42f){_0x24b42f=_0x24b42f||0xcc;return function(_0x262406){if(_0x262406){return _0x22c08c[_0xbec3('0x18')](_0x24b42f);}return _0x22c08c[_0xbec3('0x19')](_0x24b42f)[_0xbec3('0x1a')]();};}function respondWithResult(_0x332aef,_0x1de5e3){_0x1de5e3=_0x1de5e3||0xc8;return function(_0x425071){if(_0x425071){return _0x332aef[_0xbec3('0x19')](_0x1de5e3)['json'](_0x425071);}};}function respondWithFilteredResult(_0x4e739f,_0x2db12c){return function(_0x2715a3){if(_0x2715a3){var _0x4d2fd0=typeof _0x2db12c['offset']==='undefined'&&typeof _0x2db12c['limit']===_0xbec3('0x1b');var _0x4b2c22=_0x2715a3[_0xbec3('0x1c')];var _0x3f0f14=_0x4d2fd0?0x0:_0x2db12c[_0xbec3('0x1d')];var _0xd6e187=_0x4d2fd0?_0x2715a3[_0xbec3('0x1c')]:_0x2db12c[_0xbec3('0x1d')]+_0x2db12c[_0xbec3('0x1e')];var _0x3c3f0b;if(_0xd6e187>=_0x4b2c22){_0xd6e187=_0x4b2c22;_0x3c3f0b=0xc8;}else{_0x3c3f0b=0xce;}_0x4e739f[_0xbec3('0x19')](_0x3c3f0b);return _0x4e739f[_0xbec3('0x1f')](_0xbec3('0x20'),_0x3f0f14+'-'+_0xd6e187+'/'+_0x4b2c22)['json'](_0x2715a3);}return null;};}function patchUpdates(_0x44ada3){return function(_0x30ad4b){try{jsonpatch['apply'](_0x30ad4b,_0x44ada3,!![]);}catch(_0x641a59){return BPromise['reject'](_0x641a59);}return _0x30ad4b['save']();};}function saveUpdates(_0x4699b3,_0x22a4de){return function(_0x286b1b){if(_0x286b1b){return _0x286b1b[_0xbec3('0x21')](_0x4699b3)[_0xbec3('0x22')](function(_0x2d2e8a){return _0x2d2e8a;});}return null;};}function removeEntity(_0x3271e0,_0x2d0518){return function(_0x171874){if(_0x171874){return _0x171874['destroy']()[_0xbec3('0x22')](function(){_0x3271e0[_0xbec3('0x19')](0xcc)[_0xbec3('0x1a')]();});}};}function handleEntityNotFound(_0x10ca95,_0x4fa54c){return function(_0x48a2e0){if(!_0x48a2e0){_0x10ca95[_0xbec3('0x18')](0x194);}return _0x48a2e0;};}function handleError(_0x52fdef,_0x260384){_0x260384=_0x260384||0x1f4;return function(_0x2cd389){logger[_0xbec3('0x23')](_0x2cd389[_0xbec3('0x24')]);if(_0x2cd389[_0xbec3('0x25')]){delete _0x2cd389['name'];}_0x52fdef[_0xbec3('0x19')](_0x260384)[_0xbec3('0x26')](_0x2cd389);};}exports[_0xbec3('0x27')]=function(_0x37a205,_0xc561d){var _0x11b809={},_0x446ba5={},_0xe06d56={'count':0x0,'rows':[]};var _0x491d0b=_[_0xbec3('0x28')](db[_0xbec3('0x29')][_0xbec3('0x2a')],function(_0x3b6bf4){return{'name':_0x3b6bf4[_0xbec3('0x2b')],'type':_0x3b6bf4[_0xbec3('0x2c')]['key']};});_0x446ba5[_0xbec3('0x2d')]=_[_0xbec3('0x28')](_0x491d0b,_0xbec3('0x25'));_0x446ba5[_0xbec3('0x2e')]=_[_0xbec3('0x2f')](_0x37a205[_0xbec3('0x2e')]);_0x446ba5[_0xbec3('0x30')]=_[_0xbec3('0x31')](_0x446ba5[_0xbec3('0x2d')],_0x446ba5[_0xbec3('0x2e')]);_0x11b809[_0xbec3('0x32')]=_[_0xbec3('0x31')](_0x446ba5[_0xbec3('0x2d')],qs[_0xbec3('0x33')](_0x37a205[_0xbec3('0x2e')][_0xbec3('0x33')]));_0x11b809[_0xbec3('0x32')]=_0x11b809[_0xbec3('0x32')]['length']?_0x11b809[_0xbec3('0x32')]:_0x446ba5[_0xbec3('0x2d')];if(!_0x37a205[_0xbec3('0x2e')][_0xbec3('0x34')]('nolimit')){_0x11b809[_0xbec3('0x1e')]=qs[_0xbec3('0x1e')](_0x37a205[_0xbec3('0x2e')]['limit']);_0x11b809[_0xbec3('0x1d')]=qs[_0xbec3('0x1d')](_0x37a205['query'][_0xbec3('0x1d')]);}_0x11b809['order']=qs[_0xbec3('0x35')](_0x37a205[_0xbec3('0x2e')][_0xbec3('0x35')]);_0x11b809['where']=qs['filters'](_[_0xbec3('0x36')](_0x37a205[_0xbec3('0x2e')],_0x446ba5[_0xbec3('0x30')]),_0x491d0b);if(_0x37a205[_0xbec3('0x2e')][_0xbec3('0x37')]){_0x11b809[_0xbec3('0x38')]=_[_0xbec3('0x39')](_0x11b809[_0xbec3('0x38')],{'$or':_[_0xbec3('0x28')](_0x491d0b,function(_0x32d686){if(_0x32d686[_0xbec3('0x2c')]!==_0xbec3('0x3a')){var _0x310fc8={};_0x310fc8[_0x32d686[_0xbec3('0x25')]]={'$like':'%'+_0x37a205['query'][_0xbec3('0x37')]+'%'};return _0x310fc8;}})});}_0x11b809=_[_0xbec3('0x39')]({},_0x11b809,_0x37a205[_0xbec3('0x3b')]);var _0x1735ce={'where':_0x11b809[_0xbec3('0x38')]};return db[_0xbec3('0x29')]['count'](_0x1735ce)[_0xbec3('0x22')](function(_0x50599a){_0xe06d56['count']=_0x50599a;if(_0x37a205[_0xbec3('0x2e')][_0xbec3('0x3c')]){_0x11b809[_0xbec3('0x3d')]=[{'all':!![]}];}return db['VoiceDialReport'][_0xbec3('0x3e')](_0x11b809);})[_0xbec3('0x22')](function(_0x14ef5f){_0xe06d56[_0xbec3('0x3f')]=_0x14ef5f;return _0xe06d56;})['then'](respondWithFilteredResult(_0xc561d,_0x11b809))[_0xbec3('0x40')](handleError(_0xc561d,null));};exports[_0xbec3('0x41')]=function(_0x1d054d,_0x476560){var _0x50e393={'raw':!![],'where':{'id':_0x1d054d[_0xbec3('0x42')]['id']}},_0x1caf2c={};_0x1caf2c[_0xbec3('0x2d')]=_['keys'](db['VoiceDialReport'][_0xbec3('0x2a')]);_0x1caf2c[_0xbec3('0x2e')]=_[_0xbec3('0x2f')](_0x1d054d['query']);_0x1caf2c['filters']=_['intersection'](_0x1caf2c[_0xbec3('0x2d')],_0x1caf2c[_0xbec3('0x2e')]);_0x50e393[_0xbec3('0x32')]=_[_0xbec3('0x31')](_0x1caf2c[_0xbec3('0x2d')],qs[_0xbec3('0x33')](_0x1d054d['query'][_0xbec3('0x33')]));_0x50e393[_0xbec3('0x32')]=_0x50e393[_0xbec3('0x32')]['length']?_0x50e393[_0xbec3('0x32')]:_0x1caf2c[_0xbec3('0x2d')];if(_0x1d054d[_0xbec3('0x2e')]['includeAll']){_0x50e393[_0xbec3('0x3d')]=[{'all':!![]}];}_0x50e393=_[_0xbec3('0x39')]({},_0x50e393,_0x1d054d['options']);return db[_0xbec3('0x29')][_0xbec3('0x43')](_0x50e393)[_0xbec3('0x22')](handleEntityNotFound(_0x476560,null))['then'](respondWithResult(_0x476560,null))[_0xbec3('0x40')](handleError(_0x476560,null));};exports['create']=function(_0x193a67,_0x400362){return db[_0xbec3('0x29')][_0xbec3('0x44')](_0x193a67[_0xbec3('0x45')],{})[_0xbec3('0x22')](respondWithResult(_0x400362,0xc9))[_0xbec3('0x40')](handleError(_0x400362,null));};exports[_0xbec3('0x21')]=function(_0x17ea4c,_0x1f3e48){if(_0x17ea4c['body']['id']){delete _0x17ea4c[_0xbec3('0x45')]['id'];}return db[_0xbec3('0x29')][_0xbec3('0x43')]({'where':{'id':_0x17ea4c['params']['id']}})[_0xbec3('0x22')](handleEntityNotFound(_0x1f3e48,null))[_0xbec3('0x22')](saveUpdates(_0x17ea4c[_0xbec3('0x45')],null))[_0xbec3('0x22')](respondWithResult(_0x1f3e48,null))[_0xbec3('0x40')](handleError(_0x1f3e48,null));};exports[_0xbec3('0x46')]=function(_0x50dce5,_0x235a78){return db[_0xbec3('0x29')][_0xbec3('0x43')]({'where':{'id':_0x50dce5[_0xbec3('0x42')]['id']}})[_0xbec3('0x22')](handleEntityNotFound(_0x235a78,null))[_0xbec3('0x22')](removeEntity(_0x235a78,null))[_0xbec3('0x40')](handleError(_0x235a78,null));};exports[_0xbec3('0x47')]=function(_0x15e0ae,_0x454606){return db[_0xbec3('0x29')][_0xbec3('0x47')]()[_0xbec3('0x22')](respondWithResult(_0x454606,null))[_0xbec3('0x40')](handleError(_0x454606,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x97d5=['VoiceDialReport','report_dial','uniqueid','lodash','util','../../config/logger','api','moment','bluebird','path','rimraf','../../config/environment','exports','define'];(function(_0x77cb50,_0x5af067){var _0x1124fb=function(_0x46bbf5){while(--_0x46bbf5){_0x77cb50['push'](_0x77cb50['shift']());}};_0x1124fb(++_0x5af067);}(_0x97d5,0x199));var _0x597d=function(_0x4d19c0,_0x1a271d){_0x4d19c0=_0x4d19c0-0x0;var _0x103cb2=_0x97d5[_0x4d19c0];return _0x103cb2;};'use strict';var _=require(_0x597d('0x0'));var util=require(_0x597d('0x1'));var logger=require(_0x597d('0x2'))(_0x597d('0x3'));var moment=require(_0x597d('0x4'));var BPromise=require(_0x597d('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x597d('0x6'));var rimraf=require(_0x597d('0x7'));var config=require(_0x597d('0x8'));var attributes=require('./voiceDialReport.attributes');module[_0x597d('0x9')]=function(_0x2bafef,_0x2a6640){return _0x2bafef[_0x597d('0xa')](_0x597d('0xb'),attributes,{'tableName':_0x597d('0xc'),'paranoid':![],'indexes':[{'fields':[_0x597d('0xd')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x7d28=['../../config/logger','api','moment','bluebird','path','./voiceDialReport.attributes','define','VoiceDialReport','report_dial','uniqueid','lodash','util'];(function(_0x277af0,_0x1f0361){var _0x43bd7c=function(_0x3ad480){while(--_0x3ad480){_0x277af0['push'](_0x277af0['shift']());}};_0x43bd7c(++_0x1f0361);}(_0x7d28,0x112));var _0x87d2=function(_0x11765f,_0x424114){_0x11765f=_0x11765f-0x0;var _0x565e8a=_0x7d28[_0x11765f];return _0x565e8a;};'use strict';var _=require(_0x87d2('0x0'));var util=require(_0x87d2('0x1'));var logger=require(_0x87d2('0x2'))(_0x87d2('0x3'));var moment=require(_0x87d2('0x4'));var BPromise=require(_0x87d2('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x87d2('0x6'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0x87d2('0x7'));module['exports']=function(_0x15bfa4,_0x16bb80){return _0x15bfa4[_0x87d2('0x8')](_0x87d2('0x9'),attributes,{'tableName':_0x87d2('0xa'),'paranoid':![],'indexes':[{'fields':[_0x87d2('0xb')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6d2b=['create','options','raw','VoiceDialReport','update','body','attributes','limit','then','UpdateVoiceDialReport','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','request','info','request\x20sent','debug','VoiceDialReport,\x20%s,\x20%s,\x20%s','stringify','error','code','VoiceDialReport,\x20%s,\x20%s','message','result','catch','CreateVoiceDialReport'];(function(_0x5578ef,_0x4f370b){var _0x5e7486=function(_0x524716){while(--_0x524716){_0x5578ef['push'](_0x5578ef['shift']());}};_0x5e7486(++_0x4f370b);}(_0x6d2b,0xe2));var _0xb6d2=function(_0x1a7fd3,_0x529364){_0x1a7fd3=_0x1a7fd3-0x0;var _0x3074ab=_0x6d2b[_0x1a7fd3];return _0x3074ab;};'use strict';var _=require(_0xb6d2('0x0'));var util=require(_0xb6d2('0x1'));var moment=require(_0xb6d2('0x2'));var BPromise=require(_0xb6d2('0x3'));var rs=require(_0xb6d2('0x4'));var fs=require('fs');var Redis=require(_0xb6d2('0x5'));var db=require(_0xb6d2('0x6'))['db'];var utils=require(_0xb6d2('0x7'));var logger=require(_0xb6d2('0x8'))(_0xb6d2('0x9'));var config=require(_0xb6d2('0xa'));var jayson=require(_0xb6d2('0xb'));var client=jayson[_0xb6d2('0xc')]['http']({'port':0x232a});function respondWithRpcPromise(_0xfdceba,_0x2e9288,_0x27cb4f){return new BPromise(function(_0x4e65ce,_0x551c15){return client[_0xb6d2('0xd')](_0xfdceba,_0x27cb4f)['then'](function(_0x595214){logger[_0xb6d2('0xe')]('VoiceDialReport,\x20%s,\x20%s',_0x2e9288,_0xb6d2('0xf'));logger[_0xb6d2('0x10')](_0xb6d2('0x11'),_0x2e9288,_0xb6d2('0xf'),JSON[_0xb6d2('0x12')](_0x595214));if(_0x595214[_0xb6d2('0x13')]){if(_0x595214[_0xb6d2('0x13')][_0xb6d2('0x14')]===0x1f4){logger[_0xb6d2('0x13')](_0xb6d2('0x15'),_0x2e9288,_0x595214[_0xb6d2('0x13')][_0xb6d2('0x16')]);return _0x551c15(_0x595214[_0xb6d2('0x13')][_0xb6d2('0x16')]);}logger[_0xb6d2('0x13')](_0xb6d2('0x15'),_0x2e9288,_0x595214[_0xb6d2('0x13')][_0xb6d2('0x16')]);return _0x4e65ce(_0x595214[_0xb6d2('0x13')][_0xb6d2('0x16')]);}else{logger[_0xb6d2('0xe')](_0xb6d2('0x15'),_0x2e9288,_0xb6d2('0xf'));_0x4e65ce(_0x595214[_0xb6d2('0x17')][_0xb6d2('0x16')]);}})[_0xb6d2('0x18')](function(_0x380f95){logger[_0xb6d2('0x13')](_0xb6d2('0x15'),_0x2e9288,_0x380f95);_0x551c15(_0x380f95);});});}exports[_0xb6d2('0x19')]=function(_0x498949){var _0x6c7bbf=this;return new Promise(function(_0x164214,_0x24eb04){return db['VoiceDialReport'][_0xb6d2('0x1a')](_0x498949['body'],{'raw':_0x498949[_0xb6d2('0x1b')]?_0x498949[_0xb6d2('0x1b')][_0xb6d2('0x1c')]===undefined?!![]:![]:!![]})['then'](function(_0x2ed524){logger[_0xb6d2('0xe')](_0xb6d2('0x19'),_0x498949);logger[_0xb6d2('0x10')](_0xb6d2('0x19'),_0x498949,JSON[_0xb6d2('0x12')](_0x2ed524));_0x164214(_0x2ed524);})['catch'](function(_0x416330){logger[_0xb6d2('0x13')](_0xb6d2('0x19'),_0x416330['message'],_0x498949);_0x24eb04(_0x6c7bbf[_0xb6d2('0x13')](0x1f4,_0x416330[_0xb6d2('0x16')]));});});};exports['UpdateVoiceDialReport']=function(_0x3708a3){var _0x4f4126=this;return new Promise(function(_0x479404,_0x10d28b){return db[_0xb6d2('0x1d')][_0xb6d2('0x1e')](_0x3708a3[_0xb6d2('0x1f')],{'raw':_0x3708a3[_0xb6d2('0x1b')]?_0x3708a3[_0xb6d2('0x1b')][_0xb6d2('0x1c')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x3708a3[_0xb6d2('0x1b')]?_0x3708a3['options']['where']||null:null,'attributes':_0x3708a3[_0xb6d2('0x1b')]?_0x3708a3['options'][_0xb6d2('0x20')]||null:null,'limit':_0x3708a3[_0xb6d2('0x1b')]?_0x3708a3['options'][_0xb6d2('0x21')]||null:null})[_0xb6d2('0x22')](function(_0x1b7d05){logger[_0xb6d2('0xe')](_0xb6d2('0x23'),_0x3708a3);logger[_0xb6d2('0x10')](_0xb6d2('0x23'),_0x3708a3,JSON[_0xb6d2('0x12')](_0x1b7d05));_0x479404(_0x1b7d05);})['catch'](function(_0x1991e6){logger[_0xb6d2('0x13')]('UpdateVoiceDialReport',_0x1991e6[_0xb6d2('0x16')],_0x3708a3);_0x10d28b(_0x4f4126['error'](0x1f4,_0x1991e6[_0xb6d2('0x16')]));});});};
\ No newline at end of file
+var _0xb64a=['../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','then','info','VoiceDialReport,\x20%s,\x20%s','request\x20sent','VoiceDialReport,\x20%s,\x20%s,\x20%s','error','message','result','catch','CreateVoiceDialReport','VoiceDialReport','options','debug','stringify','update','body','where','limit','UpdateVoiceDialReport','lodash','randomstring','../../mysqldb'];(function(_0x4ed520,_0x21be63){var _0x4415a6=function(_0x14b151){while(--_0x14b151){_0x4ed520['push'](_0x4ed520['shift']());}};_0x4415a6(++_0x21be63);}(_0xb64a,0xab));var _0xab64=function(_0x26302c,_0x5d4155){_0x26302c=_0x26302c-0x0;var _0x29fbac=_0xb64a[_0x26302c];return _0x29fbac;};'use strict';var _=require(_0xab64('0x0'));var util=require('util');var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0xab64('0x1'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xab64('0x2'))['db'];var utils=require(_0xab64('0x3'));var logger=require(_0xab64('0x4'))(_0xab64('0x5'));var config=require(_0xab64('0x6'));var jayson=require(_0xab64('0x7'));var client=jayson[_0xab64('0x8')][_0xab64('0x9')]({'port':0x232a});function respondWithRpcPromise(_0xda8b85,_0x3415ce,_0x20090b){return new BPromise(function(_0x2a72fe,_0x3b9ef9){return client['request'](_0xda8b85,_0x20090b)[_0xab64('0xa')](function(_0xe8b751){logger[_0xab64('0xb')](_0xab64('0xc'),_0x3415ce,_0xab64('0xd'));logger['debug'](_0xab64('0xe'),_0x3415ce,_0xab64('0xd'),JSON['stringify'](_0xe8b751));if(_0xe8b751[_0xab64('0xf')]){if(_0xe8b751['error']['code']===0x1f4){logger[_0xab64('0xf')](_0xab64('0xc'),_0x3415ce,_0xe8b751[_0xab64('0xf')][_0xab64('0x10')]);return _0x3b9ef9(_0xe8b751['error'][_0xab64('0x10')]);}logger[_0xab64('0xf')](_0xab64('0xc'),_0x3415ce,_0xe8b751[_0xab64('0xf')][_0xab64('0x10')]);return _0x2a72fe(_0xe8b751['error']['message']);}else{logger[_0xab64('0xb')](_0xab64('0xc'),_0x3415ce,_0xab64('0xd'));_0x2a72fe(_0xe8b751[_0xab64('0x11')][_0xab64('0x10')]);}})[_0xab64('0x12')](function(_0x4cbe3d){logger['error'](_0xab64('0xc'),_0x3415ce,_0x4cbe3d);_0x3b9ef9(_0x4cbe3d);});});}exports[_0xab64('0x13')]=function(_0x2c79c9){var _0x216a57=this;return new Promise(function(_0x32a17f,_0x2f7a9e){return db[_0xab64('0x14')]['create'](_0x2c79c9['body'],{'raw':_0x2c79c9[_0xab64('0x15')]?_0x2c79c9['options']['raw']===undefined?!![]:![]:!![]})[_0xab64('0xa')](function(_0x2d02da){logger[_0xab64('0xb')](_0xab64('0x13'),_0x2c79c9);logger[_0xab64('0x16')](_0xab64('0x13'),_0x2c79c9,JSON[_0xab64('0x17')](_0x2d02da));_0x32a17f(_0x2d02da);})['catch'](function(_0xa11bac){logger[_0xab64('0xf')]('CreateVoiceDialReport',_0xa11bac[_0xab64('0x10')],_0x2c79c9);_0x2f7a9e(_0x216a57['error'](0x1f4,_0xa11bac[_0xab64('0x10')]));});});};exports['UpdateVoiceDialReport']=function(_0x3275df){var _0x173242=this;return new Promise(function(_0x3b3033,_0x4bfd72){return db[_0xab64('0x14')][_0xab64('0x18')](_0x3275df[_0xab64('0x19')],{'raw':_0x3275df[_0xab64('0x15')]?_0x3275df[_0xab64('0x15')]['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x3275df['options']?_0x3275df[_0xab64('0x15')][_0xab64('0x1a')]||null:null,'attributes':_0x3275df[_0xab64('0x15')]?_0x3275df[_0xab64('0x15')]['attributes']||null:null,'limit':_0x3275df[_0xab64('0x15')]?_0x3275df[_0xab64('0x15')][_0xab64('0x1b')]||null:null})['then'](function(_0xd4a66){logger[_0xab64('0xb')](_0xab64('0x1c'),_0x3275df);logger[_0xab64('0x16')](_0xab64('0x1c'),_0x3275df,JSON[_0xab64('0x17')](_0xd4a66));_0x3b3033(_0xd4a66);})['catch'](function(_0x589127){logger[_0xab64('0xf')](_0xab64('0x1c'),_0x589127['message'],_0x3275df);_0x4bfd72(_0x173242[_0xab64('0xf')](0x1f4,_0x589127[_0xab64('0x10')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x48cf=['exports','multer','util','path','express','Router','../../components/auth/service','../../components/interaction/service','./voiceExtension.controller','get','isAuthenticated','index','/:id','show','post','create','/:id/applications','addApplications','delete'];(function(_0x397e5f,_0x454c8f){var _0x5302b8=function(_0x1a29ef){while(--_0x1a29ef){_0x397e5f['push'](_0x397e5f['shift']());}};_0x5302b8(++_0x454c8f);}(_0x48cf,0x11e));var _0xf48c=function(_0x201739,_0x1a7783){_0x201739=_0x201739-0x0;var _0x18c401=_0x48cf[_0x201739];return _0x18c401;};'use strict';var multer=require(_0xf48c('0x0'));var util=require(_0xf48c('0x1'));var path=require(_0xf48c('0x2'));var timeout=require('connect-timeout');var express=require(_0xf48c('0x3'));var router=express[_0xf48c('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0xf48c('0x5'));var interaction=require(_0xf48c('0x6'));var config=require('../../config/environment');var controller=require(_0xf48c('0x7'));router[_0xf48c('0x8')]('/',auth[_0xf48c('0x9')](),controller[_0xf48c('0xa')]);router[_0xf48c('0x8')](_0xf48c('0xb'),auth[_0xf48c('0x9')](),controller[_0xf48c('0xc')]);router[_0xf48c('0xd')]('/',auth[_0xf48c('0x9')](),controller[_0xf48c('0xe')]);router[_0xf48c('0xd')](_0xf48c('0xf'),auth[_0xf48c('0x9')](),controller[_0xf48c('0x10')]);router['put']('/:id',auth['isAuthenticated'](),controller['update']);router[_0xf48c('0x11')](_0xf48c('0xb'),auth[_0xf48c('0x9')](),controller['destroy']);module[_0xf48c('0x12')]=router;
\ No newline at end of file
+var _0x4f86=['isAuthenticated','index','get','/:id','post','create','/:id/applications','addApplications','put','delete','destroy','exports','multer','util','connect-timeout','express','Router','fs-extra','../../config/environment','./voiceExtension.controller'];(function(_0x29ca8a,_0xbbfc6e){var _0x2a7815=function(_0x580bf7){while(--_0x580bf7){_0x29ca8a['push'](_0x29ca8a['shift']());}};_0x2a7815(++_0xbbfc6e);}(_0x4f86,0x19c));var _0x64f8=function(_0xa464c9,_0x7c86d8){_0xa464c9=_0xa464c9-0x0;var _0x3d73c4=_0x4f86[_0xa464c9];return _0x3d73c4;};'use strict';var multer=require(_0x64f8('0x0'));var util=require(_0x64f8('0x1'));var path=require('path');var timeout=require(_0x64f8('0x2'));var express=require(_0x64f8('0x3'));var router=express[_0x64f8('0x4')]();var fs_extra=require(_0x64f8('0x5'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x64f8('0x6'));var controller=require(_0x64f8('0x7'));router['get']('/',auth[_0x64f8('0x8')](),controller[_0x64f8('0x9')]);router[_0x64f8('0xa')](_0x64f8('0xb'),auth[_0x64f8('0x8')](),controller['show']);router[_0x64f8('0xc')]('/',auth[_0x64f8('0x8')](),controller[_0x64f8('0xd')]);router[_0x64f8('0xc')](_0x64f8('0xe'),auth[_0x64f8('0x8')](),controller[_0x64f8('0xf')]);router[_0x64f8('0x10')](_0x64f8('0xb'),auth[_0x64f8('0x8')](),controller['update']);router[_0x64f8('0x11')]('/:id',auth[_0x64f8('0x8')](),controller[_0x64f8('0x12')]);module[_0x64f8('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3051=['STRING','NoOp','ENUM','inbound','outbound','internal','system','any','*,*,*,*','INTEGER','BOOLEAN','wav','VIRTUAL','getDataValue','exten','exports','compositeIndex'];(function(_0x3579f2,_0x57a87b){var _0xcf6764=function(_0x41eff3){while(--_0x41eff3){_0x3579f2['push'](_0x3579f2['shift']());}};_0xcf6764(++_0x57a87b);}(_0x3051,0x196));var _0x1305=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0x3051[_0x20a584];return _0x4b41a8;};'use strict';var Sequelize=require('sequelize');module[_0x1305('0x0')]={'context':{'type':Sequelize['STRING'],'allowNull':![],'unique':_0x1305('0x1'),'validate':{'notEmpty':!![],'is':/[A-Za-z0-9._\+*!\-\[\]]+$/i}},'exten':{'type':Sequelize['STRING'],'allowNull':![],'unique':_0x1305('0x1')},'priority':{'type':Sequelize[_0x1305('0x2')],'allowNull':![],'defaultValue':'1','unique':_0x1305('0x1')},'tag':{'type':Sequelize[_0x1305('0x2')],'allowNull':![],'defaultValue':'--'},'app':{'type':Sequelize[_0x1305('0x2')],'allowNull':![],'defaultValue':_0x1305('0x3')},'appdata':{'type':Sequelize[_0x1305('0x2')](0x1000),'allowNull':!![],'defaultValue':''},'type':{'type':Sequelize[_0x1305('0x4')](_0x1305('0x5'),_0x1305('0x6'),_0x1305('0x7'),'inbound-fax','outbound-fax',_0x1305('0x8'),_0x1305('0x9')),'allowNull':![]},'description':{'type':Sequelize['STRING']},'interval':{'type':Sequelize[_0x1305('0x2')],'allowNull':![],'defaultValue':_0x1305('0xa')},'IntervalId':{'type':Sequelize[_0x1305('0xb')]},'isApp':{'type':Sequelize['BOOLEAN'],'allowNull':![],'defaultValue':![]},'appType':{'type':Sequelize[_0x1305('0x2')],'defaultValue':null},'callerID':{'type':Sequelize[_0x1305('0x2')],'allowNull':!![]},'record':{'type':Sequelize[_0x1305('0xc')],'defaultValue':![]},'cutdigits':{'type':Sequelize[_0x1305('0xb')]},'recordingFormat':{'type':Sequelize[_0x1305('0x2')],'defaultValue':_0x1305('0xd')},'answer':{'type':Sequelize[_0x1305('0xc')],'defaultValue':!![]},'name':{'type':Sequelize[_0x1305('0xe')],'get':function(_0x3e2747){return this[_0x1305('0xf')](_0x1305('0x10'));}},'alias':{'type':Sequelize['STRING'],'allowNull':!![]}};
\ No newline at end of file
+var _0x716d=['inbound-fax','outbound-fax','system','any','INTEGER','BOOLEAN','VIRTUAL','sequelize','compositeIndex','STRING','NoOp','ENUM','inbound','outbound','internal'];(function(_0x1222fa,_0x39a7b9){var _0x1dcd74=function(_0x18ebbf){while(--_0x18ebbf){_0x1222fa['push'](_0x1222fa['shift']());}};_0x1dcd74(++_0x39a7b9);}(_0x716d,0x1ba));var _0xd716=function(_0x3d1ebf,_0x457e70){_0x3d1ebf=_0x3d1ebf-0x0;var _0x230b4e=_0x716d[_0x3d1ebf];return _0x230b4e;};'use strict';var Sequelize=require(_0xd716('0x0'));module['exports']={'context':{'type':Sequelize['STRING'],'allowNull':![],'unique':_0xd716('0x1'),'validate':{'notEmpty':!![],'is':/[A-Za-z0-9._\+*!\-\[\]]+$/i}},'exten':{'type':Sequelize[_0xd716('0x2')],'allowNull':![],'unique':_0xd716('0x1')},'priority':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':'1','unique':'compositeIndex'},'tag':{'type':Sequelize[_0xd716('0x2')],'allowNull':![],'defaultValue':'--'},'app':{'type':Sequelize[_0xd716('0x2')],'allowNull':![],'defaultValue':_0xd716('0x3')},'appdata':{'type':Sequelize[_0xd716('0x2')](0x1000),'allowNull':!![],'defaultValue':''},'type':{'type':Sequelize[_0xd716('0x4')](_0xd716('0x5'),_0xd716('0x6'),_0xd716('0x7'),_0xd716('0x8'),_0xd716('0x9'),_0xd716('0xa'),_0xd716('0xb')),'allowNull':![]},'description':{'type':Sequelize['STRING']},'interval':{'type':Sequelize[_0xd716('0x2')],'allowNull':![],'defaultValue':'*,*,*,*'},'IntervalId':{'type':Sequelize[_0xd716('0xc')]},'isApp':{'type':Sequelize[_0xd716('0xd')],'allowNull':![],'defaultValue':![]},'appType':{'type':Sequelize[_0xd716('0x2')],'defaultValue':null},'callerID':{'type':Sequelize[_0xd716('0x2')],'allowNull':!![]},'record':{'type':Sequelize[_0xd716('0xd')],'defaultValue':![]},'cutdigits':{'type':Sequelize[_0xd716('0xc')]},'recordingFormat':{'type':Sequelize[_0xd716('0x2')],'defaultValue':'wav'},'answer':{'type':Sequelize[_0xd716('0xd')],'defaultValue':!![]},'name':{'type':Sequelize[_0xd716('0xe')],'get':function(_0x508094){return this['getDataValue']('exten');}},'alias':{'type':Sequelize[_0xd716('0x2')],'allowNull':!![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6c85=['name','send','index','fieldName','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','merge','VIRTUAL','options','includeAll','VoiceExtension','findAll','catch','show','rawAttributes','include','create','body','startsWith','exten','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','UserProfileResource','recordingFormat','cutdigits','mandatoryDisposition','alias','context','addApplications','sequelize','params','rewriteDial','toLowerCase','true','createRouting','bulkCreate','findAndCountAll','cast(priority\x20as\x20unsigned)','eml-format','rimraf','moment','bluebird','mustache','util','sox','to-csv','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','redis','localhost','socket.io-emitter','./voiceExtension.socket','register','sendStatus','status','end','offset','limit','undefined','count','set','Content-Range','reject','save','update','then','get','InboundRoutes','inbound','outbound','InternalRoutes','internal','filter','ignore','map','value','includes','type','find','destroy','error','stack'];(function(_0x3216b7,_0x424861){var _0x3beb31=function(_0x112750){while(--_0x112750){_0x3216b7['push'](_0x3216b7['shift']());}};_0x3beb31(++_0x424861);}(_0x6c85,0x170));var _0x56c8=function(_0x19288f,_0x593b58){_0x19288f=_0x19288f-0x0;var _0x280b73=_0x6c85[_0x19288f];return _0x280b73;};'use strict';var emlformat=require(_0x56c8('0x0'));var rimraf=require(_0x56c8('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x56c8('0x2'));var BPromise=require(_0x56c8('0x3'));var Mustache=require(_0x56c8('0x4'));var util=require(_0x56c8('0x5'));var path=require('path');var sox=require(_0x56c8('0x6'));var csv=require(_0x56c8('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x56c8('0x8'));var _=require(_0x56c8('0x9'));var squel=require(_0x56c8('0xa'));var crypto=require('crypto');var jsforce=require(_0x56c8('0xb'));var deskjs=require(_0x56c8('0xc'));var toCsv=require(_0x56c8('0x7'));var querystring=require(_0x56c8('0xd'));var Papa=require(_0x56c8('0xe'));var Redis=require(_0x56c8('0xf'));var authService=require('../../components/auth/service');var qs=require(_0x56c8('0x10'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x56c8('0x11'));var logger=require(_0x56c8('0x12'))(_0x56c8('0x13'));var utils=require('../../config/utils');var config=require(_0x56c8('0x14'));var licenseUtil=require(_0x56c8('0x15'));var db=require('../../mysqldb')['db'];config[_0x56c8('0x16')]=_['defaults'](config[_0x56c8('0x16')],{'host':_0x56c8('0x17'),'port':0x18eb});var socket=require(_0x56c8('0x18'))(new Redis(config[_0x56c8('0x16')]));require(_0x56c8('0x19'))[_0x56c8('0x1a')](socket);function respondWithStatusCode(_0x1fd751,_0x43fd19){_0x43fd19=_0x43fd19||0xcc;return function(_0x671cba){if(_0x671cba){return _0x1fd751[_0x56c8('0x1b')](_0x43fd19);}return _0x1fd751[_0x56c8('0x1c')](_0x43fd19)[_0x56c8('0x1d')]();};}function respondWithResult(_0x4326b5,_0x3857cb){_0x3857cb=_0x3857cb||0xc8;return function(_0x41f52e){if(_0x41f52e){return _0x4326b5[_0x56c8('0x1c')](_0x3857cb)['json'](_0x41f52e);}};}function respondWithFilteredResult(_0xaa46b5,_0x312ede){return function(_0x54d4bd){if(_0x54d4bd){var _0x24baea=typeof _0x312ede[_0x56c8('0x1e')]==='undefined'&&typeof _0x312ede[_0x56c8('0x1f')]===_0x56c8('0x20');var _0x4c21c8=_0x54d4bd[_0x56c8('0x21')];var _0x270f25=_0x24baea?0x0:_0x312ede[_0x56c8('0x1e')];var _0x1bec44=_0x24baea?_0x54d4bd[_0x56c8('0x21')]:_0x312ede[_0x56c8('0x1e')]+_0x312ede[_0x56c8('0x1f')];var _0x7cf0dc;if(_0x1bec44>=_0x4c21c8){_0x1bec44=_0x4c21c8;_0x7cf0dc=0xc8;}else{_0x7cf0dc=0xce;}_0xaa46b5[_0x56c8('0x1c')](_0x7cf0dc);return _0xaa46b5[_0x56c8('0x22')](_0x56c8('0x23'),_0x270f25+'-'+_0x1bec44+'/'+_0x4c21c8)['json'](_0x54d4bd);}return null;};}function patchUpdates(_0x49adbc){return function(_0x59accb){try{jsonpatch['apply'](_0x59accb,_0x49adbc,!![]);}catch(_0x6bf794){return BPromise[_0x56c8('0x24')](_0x6bf794);}return _0x59accb[_0x56c8('0x25')]();};}function saveUpdates(_0x461175,_0x458684){return function(_0x18f784){if(_0x18f784){return _0x18f784[_0x56c8('0x26')](_0x461175)[_0x56c8('0x27')](function(_0x183041){return _0x183041;});}return null;};}function removeEntity(_0x58cf22,_0x2c9533){return function(_0x3af745){if(_0x3af745){return _0x3af745['destroy']()[_0x56c8('0x27')](function(){var _0x100722=_0x3af745[_0x56c8('0x28')]({'plain':!![]});var _0x5641f4=[{'name':_0x56c8('0x29'),'value':_0x56c8('0x2a'),'ignore':![]},{'name':'OutboundRoutes','value':_0x56c8('0x2b'),'ignore':![]},{'name':_0x56c8('0x2c'),'value':_0x56c8('0x2d'),'ignore':![]}];var _0x2a3c15=_(_0x5641f4)[_0x56c8('0x2e')](_0x56c8('0x2f'))[_0x56c8('0x30')]('value')[_0x56c8('0x31')]();if(_[_0x56c8('0x32')](_0x2a3c15,_0x100722[_0x56c8('0x33')])){return;}var _0x23fd56=_[_0x56c8('0x34')](_0x5641f4,['value',_0x100722[_0x56c8('0x33')]])['name'];return db['UserProfileResource'][_0x56c8('0x35')]({'where':{'type':_0x23fd56,'resourceId':_0x100722['id']}})['then'](function(){return _0x3af745;});})[_0x56c8('0x27')](function(){_0x58cf22[_0x56c8('0x1c')](0xcc)[_0x56c8('0x1d')]();});}};}function handleEntityNotFound(_0x4e2ebf,_0x483424){return function(_0x1cb8e8){if(!_0x1cb8e8){_0x4e2ebf['sendStatus'](0x194);}return _0x1cb8e8;};}function handleError(_0x29070b,_0x2db406){_0x2db406=_0x2db406||0x1f4;return function(_0x5a2e25){logger[_0x56c8('0x36')](_0x5a2e25[_0x56c8('0x37')]);if(_0x5a2e25['name']){delete _0x5a2e25[_0x56c8('0x38')];}_0x29070b['status'](_0x2db406)[_0x56c8('0x39')](_0x5a2e25);};}exports[_0x56c8('0x3a')]=function(_0x3aefd2,_0x58208d){var _0xa371e9={},_0xa2a2e6={},_0x4bbaae={'count':0x0,'rows':[]};var _0x20f2bf=_[_0x56c8('0x30')](db['VoiceExtension']['rawAttributes'],function(_0x57174c){return{'name':_0x57174c[_0x56c8('0x3b')],'type':_0x57174c['type'][_0x56c8('0x3c')]};});_0xa2a2e6[_0x56c8('0x3d')]=_[_0x56c8('0x30')](_0x20f2bf,_0x56c8('0x38'));_0xa2a2e6[_0x56c8('0x3e')]=_[_0x56c8('0x3f')](_0x3aefd2[_0x56c8('0x3e')]);_0xa2a2e6[_0x56c8('0x40')]=_[_0x56c8('0x41')](_0xa2a2e6[_0x56c8('0x3d')],_0xa2a2e6[_0x56c8('0x3e')]);_0xa371e9[_0x56c8('0x42')]=_[_0x56c8('0x41')](_0xa2a2e6[_0x56c8('0x3d')],qs['fields'](_0x3aefd2[_0x56c8('0x3e')][_0x56c8('0x43')]));_0xa371e9['attributes']=_0xa371e9[_0x56c8('0x42')][_0x56c8('0x44')]?_0xa371e9[_0x56c8('0x42')]:_0xa2a2e6[_0x56c8('0x3d')];if(!_0x3aefd2[_0x56c8('0x3e')][_0x56c8('0x45')](_0x56c8('0x46'))){_0xa371e9[_0x56c8('0x1f')]=qs['limit'](_0x3aefd2['query'][_0x56c8('0x1f')]);_0xa371e9[_0x56c8('0x1e')]=qs[_0x56c8('0x1e')](_0x3aefd2['query']['offset']);}_0xa371e9['order']=qs[_0x56c8('0x47')](_0x3aefd2[_0x56c8('0x3e')]['sort']);_0xa371e9[_0x56c8('0x48')]=qs[_0x56c8('0x40')](_['pick'](_0x3aefd2[_0x56c8('0x3e')],_0xa2a2e6['filters']),_0x20f2bf);if(_0x3aefd2[_0x56c8('0x3e')][_0x56c8('0x2e')]){_0xa371e9[_0x56c8('0x48')]=_[_0x56c8('0x49')](_0xa371e9[_0x56c8('0x48')],{'$or':_[_0x56c8('0x30')](_0x20f2bf,function(_0x24f3bb){if(_0x24f3bb[_0x56c8('0x33')]!==_0x56c8('0x4a')){var _0x2f8b3f={};_0x2f8b3f[_0x24f3bb[_0x56c8('0x38')]]={'$like':'%'+_0x3aefd2[_0x56c8('0x3e')]['filter']+'%'};return _0x2f8b3f;}})});}_0xa371e9=_[_0x56c8('0x49')]({},_0xa371e9,_0x3aefd2[_0x56c8('0x4b')]);var _0x490312={'where':_0xa371e9[_0x56c8('0x48')]};return db['VoiceExtension'][_0x56c8('0x21')](_0x490312)[_0x56c8('0x27')](function(_0x213721){_0x4bbaae[_0x56c8('0x21')]=_0x213721;if(_0x3aefd2[_0x56c8('0x3e')][_0x56c8('0x4c')]){_0xa371e9['include']=[{'all':!![]}];}return db[_0x56c8('0x4d')][_0x56c8('0x4e')](_0xa371e9);})['then'](function(_0x55fd64){_0x4bbaae['rows']=_0x55fd64;return _0x4bbaae;})[_0x56c8('0x27')](respondWithFilteredResult(_0x58208d,_0xa371e9))[_0x56c8('0x4f')](handleError(_0x58208d,null));};exports[_0x56c8('0x50')]=function(_0x339101,_0x1b13fc){var _0x83b401={'raw':![],'where':{'id':_0x339101['params']['id']}},_0x1c8335={};_0x1c8335[_0x56c8('0x3d')]=_[_0x56c8('0x3f')](db['VoiceExtension'][_0x56c8('0x51')]);_0x1c8335[_0x56c8('0x3e')]=_['keys'](_0x339101[_0x56c8('0x3e')]);_0x1c8335['filters']=_[_0x56c8('0x41')](_0x1c8335[_0x56c8('0x3d')],_0x1c8335[_0x56c8('0x3e')]);_0x83b401[_0x56c8('0x42')]=_[_0x56c8('0x41')](_0x1c8335[_0x56c8('0x3d')],qs[_0x56c8('0x43')](_0x339101[_0x56c8('0x3e')]['fields']));_0x83b401[_0x56c8('0x42')]=_0x83b401['attributes'][_0x56c8('0x44')]?_0x83b401[_0x56c8('0x42')]:_0x1c8335[_0x56c8('0x3d')];if(_0x339101[_0x56c8('0x3e')][_0x56c8('0x4c')]){_0x83b401[_0x56c8('0x52')]=[{'all':!![]}];}_0x83b401=_[_0x56c8('0x49')]({},_0x83b401,_0x339101[_0x56c8('0x4b')]);return db[_0x56c8('0x4d')][_0x56c8('0x34')](_0x83b401)['then'](handleEntityNotFound(_0x1b13fc,null))[_0x56c8('0x27')](respondWithResult(_0x1b13fc,null))[_0x56c8('0x4f')](handleError(_0x1b13fc,null));};exports['destroy']=function(_0x1e381d,_0x562695){return db[_0x56c8('0x4d')][_0x56c8('0x34')]({'where':{'id':_0x1e381d['params']['id']}})[_0x56c8('0x27')](handleEntityNotFound(_0x562695,null))[_0x56c8('0x27')](removeEntity(_0x562695,null))['catch'](handleError(_0x562695,null));};exports[_0x56c8('0x53')]=function(_0x3d33b4,_0x382f87){if(_0x3d33b4[_0x56c8('0x54')][_0x56c8('0x33')]===_0x56c8('0x2b')&&!_[_0x56c8('0x55')](_0x3d33b4[_0x56c8('0x54')]['exten'],'_')){_0x3d33b4['body'][_0x56c8('0x56')]='_'['concat'](_0x3d33b4[_0x56c8('0x54')][_0x56c8('0x56')]);}return db[_0x56c8('0x4d')][_0x56c8('0x53')](_0x3d33b4[_0x56c8('0x54')],{'raw':![]})['then'](function(_0x45caa7){var _0x433c8f=_0x3d33b4['user'][_0x56c8('0x28')]({'plain':!![]});if(!_0x433c8f)throw new Error(_0x56c8('0x57'));if(_0x433c8f['role']==='user'){var _0x312415=_0x45caa7[_0x56c8('0x28')]({'plain':!![]});var _0x5b7c92=[{'name':_0x56c8('0x29'),'value':_0x56c8('0x2a')},{'name':'OutboundRoutes','value':_0x56c8('0x2b')},{'name':_0x56c8('0x2c'),'value':_0x56c8('0x2d')}];var _0x3e097e=_['find'](_0x5b7c92,[_0x56c8('0x31'),_0x312415[_0x56c8('0x33')]])[_0x56c8('0x38')];return db[_0x56c8('0x58')][_0x56c8('0x34')]({'where':{'name':_0x3e097e,'userProfileId':_0x433c8f[_0x56c8('0x59')]},'raw':!![]})[_0x56c8('0x27')](function(_0x4a8662){if(_0x4a8662&&_0x4a8662['autoAssociation']===0x0){return db[_0x56c8('0x5a')][_0x56c8('0x53')]({'name':_0x312415[_0x56c8('0x38')],'resourceId':_0x312415['id'],'type':_0x4a8662[_0x56c8('0x38')],'sectionId':_0x4a8662['id']},{})[_0x56c8('0x27')](function(){return _0x45caa7;});}else{return _0x45caa7;}})['catch'](function(_0x446548){logger[_0x56c8('0x36')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x446548);throw _0x446548;});}return _0x45caa7;})[_0x56c8('0x27')](respondWithResult(_0x382f87,0xc9))[_0x56c8('0x4f')](handleError(_0x382f87,null));};exports['update']=function(_0x6aa2ef,_0x1029f4){if(_0x6aa2ef[_0x56c8('0x54')]['id']){delete _0x6aa2ef[_0x56c8('0x54')]['id'];}return db[_0x56c8('0x4d')][_0x56c8('0x34')]({'where':{'id':_0x6aa2ef['params']['id']}})[_0x56c8('0x27')](handleEntityNotFound(_0x1029f4,null))['then'](function(_0x3fd2fa){if(_0x3fd2fa){return db[_0x56c8('0x4d')]['update'](_['pick'](_0x6aa2ef['body'],[_0x56c8('0x56'),'context','description',_0x56c8('0x5b'),_0x56c8('0x5c'),_0x56c8('0x5d'),_0x56c8('0x5e')]),{'where':{'context':_0x3fd2fa[_0x56c8('0x5f')],'exten':_0x3fd2fa[_0x56c8('0x56')]},'individualHooks':!![]})['then'](function(_0x4f6d8f){return _0x4f6d8f;});}return null;})[_0x56c8('0x27')](respondWithStatusCode(_0x1029f4,null))[_0x56c8('0x4f')](handleError(_0x1029f4,null));};exports[_0x56c8('0x60')]=function(_0x306085,_0x4635e0){return db[_0x56c8('0x4d')]['findOne']({'where':{'id':_0x306085['params']['id']}})[_0x56c8('0x27')](function(_0x53eb92){if(_0x53eb92){return db[_0x56c8('0x61')]['transaction'](function(_0x26d7b1){return db['VoiceExtension'][_0x56c8('0x35')]({'where':{'VoiceExtensionId':_0x306085['params']['id']},'transaction':_0x26d7b1})[_0x56c8('0x27')](function(){var _0x3aab13=_[_0x56c8('0x30')](_0x306085['body'],function(_0x58fcb0){_0x58fcb0['VoiceExtensionId']=_0x306085[_0x56c8('0x62')]['id'];_0x58fcb0['isApp']=!![];return _0x58fcb0;});var _0x147af5=_0x306085[_0x56c8('0x3e')][_0x56c8('0x63')]&&_0x306085[_0x56c8('0x3e')]['rewriteDial'][_0x56c8('0x64')]()===_0x56c8('0x65')?!![]:![];return _0x53eb92[_0x56c8('0x66')](_0x3aab13,_0x147af5);})['then'](function(_0x16617a){return db['VoiceExtension'][_0x56c8('0x67')](_0x16617a,{'transaction':_0x26d7b1});});})['then'](function(){return db[_0x56c8('0x4d')][_0x56c8('0x68')]({'where':{'isApp':!![],'VoiceExtensionId':_0x306085['params']['id']},'order':_0x56c8('0x69')});});}})['then'](respondWithResult(_0x4635e0,null))[_0x56c8('0x4f')](handleError(_0x4635e0,null));};
\ No newline at end of file
+var _0x903b=['../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','register','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','apply','reject','destroy','InboundRoutes','inbound','OutboundRoutes','InternalRoutes','internal','filter','ignore','value','includes','type','find','name','then','stack','send','index','map','rawAttributes','fieldName','key','query','keys','filters','intersection','model','attributes','length','hasOwnProperty','nolimit','sort','pick','where','merge','options','VoiceExtension','includeAll','findAll','rows','catch','params','include','outbound','startsWith','body','concat','exten','create','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','userProfileId','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','context','description','recordingFormat','cutdigits','mandatoryDisposition','alias','addApplications','transaction','rewriteDial','toLowerCase','true','createRouting','bulkCreate','findAndCountAll','cast(priority\x20as\x20unsigned)','rimraf','fast-json-patch','moment','bluebird','mustache','util','sox','ejs','fs-extra','lodash','squel','jsforce','desk.js','to-csv','querystring','papaparse','ioredis'];(function(_0x1b17db,_0x4d92eb){var _0x148b86=function(_0x5d81dd){while(--_0x5d81dd){_0x1b17db['push'](_0x1b17db['shift']());}};_0x148b86(++_0x4d92eb);}(_0x903b,0x1b3));var _0xb903=function(_0x2da60a,_0x42f7f2){_0x2da60a=_0x2da60a-0x0;var _0x384bf8=_0x903b[_0x2da60a];return _0x384bf8;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xb903('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0xb903('0x1'));var rp=require('request-promise');var moment=require(_0xb903('0x2'));var BPromise=require(_0xb903('0x3'));var Mustache=require(_0xb903('0x4'));var util=require(_0xb903('0x5'));var path=require('path');var sox=require(_0xb903('0x6'));var csv=require('to-csv');var ejs=require(_0xb903('0x7'));var fs=require('fs');var fs_extra=require(_0xb903('0x8'));var _=require(_0xb903('0x9'));var squel=require(_0xb903('0xa'));var crypto=require('crypto');var jsforce=require(_0xb903('0xb'));var deskjs=require(_0xb903('0xc'));var toCsv=require(_0xb903('0xd'));var querystring=require(_0xb903('0xe'));var Papa=require(_0xb903('0xf'));var Redis=require(_0xb903('0x10'));var authService=require(_0xb903('0x11'));var qs=require(_0xb903('0x12'));var as=require(_0xb903('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xb903('0x14'));var utils=require(_0xb903('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0xb903('0x16'));var db=require(_0xb903('0x17'))['db'];config[_0xb903('0x18')]=_[_0xb903('0x19')](config[_0xb903('0x18')],{'host':_0xb903('0x1a'),'port':0x18eb});var socket=require(_0xb903('0x1b'))(new Redis(config[_0xb903('0x18')]));require('./voiceExtension.socket')[_0xb903('0x1c')](socket);function respondWithStatusCode(_0x5cfdbb,_0x536e43){_0x536e43=_0x536e43||0xcc;return function(_0x511e94){if(_0x511e94){return _0x5cfdbb[_0xb903('0x1d')](_0x536e43);}return _0x5cfdbb[_0xb903('0x1e')](_0x536e43)[_0xb903('0x1f')]();};}function respondWithResult(_0x40e282,_0x65b78e){_0x65b78e=_0x65b78e||0xc8;return function(_0x31f37a){if(_0x31f37a){return _0x40e282[_0xb903('0x1e')](_0x65b78e)[_0xb903('0x20')](_0x31f37a);}};}function respondWithFilteredResult(_0x4f6fd1,_0x4e7037){return function(_0x3c4821){if(_0x3c4821){var _0x4c305f=typeof _0x4e7037[_0xb903('0x21')]==='undefined'&&typeof _0x4e7037['limit']===_0xb903('0x22');var _0x5ec2fd=_0x3c4821[_0xb903('0x23')];var _0xbb7dd7=_0x4c305f?0x0:_0x4e7037['offset'];var _0x56a9d7=_0x4c305f?_0x3c4821[_0xb903('0x23')]:_0x4e7037[_0xb903('0x21')]+_0x4e7037[_0xb903('0x24')];var _0x3ea0f7;if(_0x56a9d7>=_0x5ec2fd){_0x56a9d7=_0x5ec2fd;_0x3ea0f7=0xc8;}else{_0x3ea0f7=0xce;}_0x4f6fd1[_0xb903('0x1e')](_0x3ea0f7);return _0x4f6fd1[_0xb903('0x25')](_0xb903('0x26'),_0xbb7dd7+'-'+_0x56a9d7+'/'+_0x5ec2fd)[_0xb903('0x20')](_0x3c4821);}return null;};}function patchUpdates(_0x1a9031){return function(_0xe5f676){try{jsonpatch[_0xb903('0x27')](_0xe5f676,_0x1a9031,!![]);}catch(_0x41da75){return BPromise[_0xb903('0x28')](_0x41da75);}return _0xe5f676['save']();};}function saveUpdates(_0x5ef822,_0x304569){return function(_0x41e264){if(_0x41e264){return _0x41e264['update'](_0x5ef822)['then'](function(_0x1b8e17){return _0x1b8e17;});}return null;};}function removeEntity(_0x44cafd,_0x1c0565){return function(_0x52d2ad){if(_0x52d2ad){return _0x52d2ad[_0xb903('0x29')]()['then'](function(){var _0x4cc9c3=_0x52d2ad['get']({'plain':!![]});var _0x3a82e1=[{'name':_0xb903('0x2a'),'value':_0xb903('0x2b'),'ignore':![]},{'name':_0xb903('0x2c'),'value':'outbound','ignore':![]},{'name':_0xb903('0x2d'),'value':_0xb903('0x2e'),'ignore':![]}];var _0x23b20f=_(_0x3a82e1)[_0xb903('0x2f')](_0xb903('0x30'))['map'](_0xb903('0x31'))[_0xb903('0x31')]();if(_[_0xb903('0x32')](_0x23b20f,_0x4cc9c3[_0xb903('0x33')])){return;}var _0x26475e=_[_0xb903('0x34')](_0x3a82e1,[_0xb903('0x31'),_0x4cc9c3[_0xb903('0x33')]])[_0xb903('0x35')];return db['UserProfileResource']['destroy']({'where':{'type':_0x26475e,'resourceId':_0x4cc9c3['id']}})[_0xb903('0x36')](function(){return _0x52d2ad;});})[_0xb903('0x36')](function(){_0x44cafd[_0xb903('0x1e')](0xcc)[_0xb903('0x1f')]();});}};}function handleEntityNotFound(_0x26c184,_0x3ccf90){return function(_0x29bb8e){if(!_0x29bb8e){_0x26c184[_0xb903('0x1d')](0x194);}return _0x29bb8e;};}function handleError(_0x5b8364,_0x405bc2){_0x405bc2=_0x405bc2||0x1f4;return function(_0x3b8206){logger['error'](_0x3b8206[_0xb903('0x37')]);if(_0x3b8206['name']){delete _0x3b8206[_0xb903('0x35')];}_0x5b8364[_0xb903('0x1e')](_0x405bc2)[_0xb903('0x38')](_0x3b8206);};}exports[_0xb903('0x39')]=function(_0x8f7750,_0x2904e0){var _0x5a4528={},_0x38467d={},_0x2c9941={'count':0x0,'rows':[]};var _0x2449dc=_[_0xb903('0x3a')](db['VoiceExtension'][_0xb903('0x3b')],function(_0x30f102){return{'name':_0x30f102[_0xb903('0x3c')],'type':_0x30f102[_0xb903('0x33')][_0xb903('0x3d')]};});_0x38467d['model']=_[_0xb903('0x3a')](_0x2449dc,_0xb903('0x35'));_0x38467d[_0xb903('0x3e')]=_[_0xb903('0x3f')](_0x8f7750[_0xb903('0x3e')]);_0x38467d[_0xb903('0x40')]=_[_0xb903('0x41')](_0x38467d[_0xb903('0x42')],_0x38467d[_0xb903('0x3e')]);_0x5a4528[_0xb903('0x43')]=_[_0xb903('0x41')](_0x38467d[_0xb903('0x42')],qs['fields'](_0x8f7750[_0xb903('0x3e')]['fields']));_0x5a4528[_0xb903('0x43')]=_0x5a4528[_0xb903('0x43')][_0xb903('0x44')]?_0x5a4528['attributes']:_0x38467d[_0xb903('0x42')];if(!_0x8f7750[_0xb903('0x3e')][_0xb903('0x45')](_0xb903('0x46'))){_0x5a4528[_0xb903('0x24')]=qs['limit'](_0x8f7750[_0xb903('0x3e')][_0xb903('0x24')]);_0x5a4528[_0xb903('0x21')]=qs[_0xb903('0x21')](_0x8f7750[_0xb903('0x3e')][_0xb903('0x21')]);}_0x5a4528['order']=qs[_0xb903('0x47')](_0x8f7750[_0xb903('0x3e')][_0xb903('0x47')]);_0x5a4528['where']=qs['filters'](_[_0xb903('0x48')](_0x8f7750['query'],_0x38467d[_0xb903('0x40')]),_0x2449dc);if(_0x8f7750['query'][_0xb903('0x2f')]){_0x5a4528[_0xb903('0x49')]=_[_0xb903('0x4a')](_0x5a4528[_0xb903('0x49')],{'$or':_[_0xb903('0x3a')](_0x2449dc,function(_0x28c11b){if(_0x28c11b[_0xb903('0x33')]!=='VIRTUAL'){var _0x2caae9={};_0x2caae9[_0x28c11b[_0xb903('0x35')]]={'$like':'%'+_0x8f7750['query'][_0xb903('0x2f')]+'%'};return _0x2caae9;}})});}_0x5a4528=_[_0xb903('0x4a')]({},_0x5a4528,_0x8f7750[_0xb903('0x4b')]);var _0x290e54={'where':_0x5a4528['where']};return db[_0xb903('0x4c')][_0xb903('0x23')](_0x290e54)[_0xb903('0x36')](function(_0x5bad17){_0x2c9941[_0xb903('0x23')]=_0x5bad17;if(_0x8f7750[_0xb903('0x3e')][_0xb903('0x4d')]){_0x5a4528['include']=[{'all':!![]}];}return db[_0xb903('0x4c')][_0xb903('0x4e')](_0x5a4528);})[_0xb903('0x36')](function(_0x391733){_0x2c9941[_0xb903('0x4f')]=_0x391733;return _0x2c9941;})[_0xb903('0x36')](respondWithFilteredResult(_0x2904e0,_0x5a4528))[_0xb903('0x50')](handleError(_0x2904e0,null));};exports['show']=function(_0x204b24,_0x63d386){var _0xe3aa48={'raw':![],'where':{'id':_0x204b24[_0xb903('0x51')]['id']}},_0x1bcc3f={};_0x1bcc3f[_0xb903('0x42')]=_[_0xb903('0x3f')](db[_0xb903('0x4c')][_0xb903('0x3b')]);_0x1bcc3f['query']=_[_0xb903('0x3f')](_0x204b24[_0xb903('0x3e')]);_0x1bcc3f[_0xb903('0x40')]=_[_0xb903('0x41')](_0x1bcc3f[_0xb903('0x42')],_0x1bcc3f[_0xb903('0x3e')]);_0xe3aa48[_0xb903('0x43')]=_[_0xb903('0x41')](_0x1bcc3f[_0xb903('0x42')],qs['fields'](_0x204b24['query']['fields']));_0xe3aa48[_0xb903('0x43')]=_0xe3aa48[_0xb903('0x43')]['length']?_0xe3aa48[_0xb903('0x43')]:_0x1bcc3f['model'];if(_0x204b24[_0xb903('0x3e')][_0xb903('0x4d')]){_0xe3aa48[_0xb903('0x52')]=[{'all':!![]}];}_0xe3aa48=_[_0xb903('0x4a')]({},_0xe3aa48,_0x204b24[_0xb903('0x4b')]);return db[_0xb903('0x4c')]['find'](_0xe3aa48)[_0xb903('0x36')](handleEntityNotFound(_0x63d386,null))[_0xb903('0x36')](respondWithResult(_0x63d386,null))[_0xb903('0x50')](handleError(_0x63d386,null));};exports[_0xb903('0x29')]=function(_0xec6c68,_0x6a78b0){return db[_0xb903('0x4c')][_0xb903('0x34')]({'where':{'id':_0xec6c68[_0xb903('0x51')]['id']}})[_0xb903('0x36')](handleEntityNotFound(_0x6a78b0,null))[_0xb903('0x36')](removeEntity(_0x6a78b0,null))[_0xb903('0x50')](handleError(_0x6a78b0,null));};exports['create']=function(_0x1c156,_0x38315f){if(_0x1c156['body']['type']===_0xb903('0x53')&&!_[_0xb903('0x54')](_0x1c156[_0xb903('0x55')]['exten'],'_')){_0x1c156[_0xb903('0x55')]['exten']='_'[_0xb903('0x56')](_0x1c156[_0xb903('0x55')][_0xb903('0x57')]);}return db[_0xb903('0x4c')][_0xb903('0x58')](_0x1c156[_0xb903('0x55')],{'raw':![]})[_0xb903('0x36')](function(_0x2255cf){var _0x38893d=_0x1c156[_0xb903('0x59')][_0xb903('0x5a')]({'plain':!![]});if(!_0x38893d)throw new Error(_0xb903('0x5b'));if(_0x38893d[_0xb903('0x5c')]===_0xb903('0x59')){var _0x2342fc=_0x2255cf[_0xb903('0x5a')]({'plain':!![]});var _0x3921d1=[{'name':_0xb903('0x2a'),'value':_0xb903('0x2b')},{'name':_0xb903('0x2c'),'value':_0xb903('0x53')},{'name':_0xb903('0x2d'),'value':_0xb903('0x2e')}];var _0x5df831=_['find'](_0x3921d1,[_0xb903('0x31'),_0x2342fc[_0xb903('0x33')]])[_0xb903('0x35')];return db['UserProfileSection'][_0xb903('0x34')]({'where':{'name':_0x5df831,'userProfileId':_0x38893d[_0xb903('0x5d')]},'raw':!![]})[_0xb903('0x36')](function(_0xc622c8){if(_0xc622c8&&_0xc622c8[_0xb903('0x5e')]===0x0){return db['UserProfileResource'][_0xb903('0x58')]({'name':_0x2342fc[_0xb903('0x35')],'resourceId':_0x2342fc['id'],'type':_0xc622c8[_0xb903('0x35')],'sectionId':_0xc622c8['id']},{})[_0xb903('0x36')](function(){return _0x2255cf;});}else{return _0x2255cf;}})[_0xb903('0x50')](function(_0x485090){logger[_0xb903('0x5f')](_0xb903('0x60'),_0x485090);throw _0x485090;});}return _0x2255cf;})[_0xb903('0x36')](respondWithResult(_0x38315f,0xc9))[_0xb903('0x50')](handleError(_0x38315f,null));};exports[_0xb903('0x61')]=function(_0x20f3a1,_0x5100f6){if(_0x20f3a1['body']['id']){delete _0x20f3a1['body']['id'];}return db[_0xb903('0x4c')][_0xb903('0x34')]({'where':{'id':_0x20f3a1['params']['id']}})[_0xb903('0x36')](handleEntityNotFound(_0x5100f6,null))[_0xb903('0x36')](function(_0x3fb600){if(_0x3fb600){return db[_0xb903('0x4c')][_0xb903('0x61')](_[_0xb903('0x48')](_0x20f3a1[_0xb903('0x55')],[_0xb903('0x57'),_0xb903('0x62'),_0xb903('0x63'),_0xb903('0x64'),_0xb903('0x65'),_0xb903('0x66'),_0xb903('0x67')]),{'where':{'context':_0x3fb600['context'],'exten':_0x3fb600['exten']},'individualHooks':!![]})['then'](function(_0xe47994){return _0xe47994;});}return null;})[_0xb903('0x36')](respondWithStatusCode(_0x5100f6,null))[_0xb903('0x50')](handleError(_0x5100f6,null));};exports[_0xb903('0x68')]=function(_0x411012,_0x4a94a2){return db[_0xb903('0x4c')]['findOne']({'where':{'id':_0x411012[_0xb903('0x51')]['id']}})['then'](function(_0x7fe495){if(_0x7fe495){return db['sequelize'][_0xb903('0x69')](function(_0x473d7a){return db[_0xb903('0x4c')][_0xb903('0x29')]({'where':{'VoiceExtensionId':_0x411012[_0xb903('0x51')]['id']},'transaction':_0x473d7a})[_0xb903('0x36')](function(){var _0x39c43c=_[_0xb903('0x3a')](_0x411012[_0xb903('0x55')],function(_0x5717e1){_0x5717e1['VoiceExtensionId']=_0x411012[_0xb903('0x51')]['id'];_0x5717e1['isApp']=!![];return _0x5717e1;});var _0x3c5f9a=_0x411012['query'][_0xb903('0x6a')]&&_0x411012[_0xb903('0x3e')]['rewriteDial'][_0xb903('0x6b')]()===_0xb903('0x6c')?!![]:![];return _0x7fe495[_0xb903('0x6d')](_0x39c43c,_0x3c5f9a);})[_0xb903('0x36')](function(_0x1426f7){return db[_0xb903('0x4c')][_0xb903('0x6e')](_0x1426f7,{'transaction':_0x473d7a});});})[_0xb903('0x36')](function(){return db['VoiceExtension'][_0xb903('0x6f')]({'where':{'isApp':!![],'VoiceExtensionId':_0x411012[_0xb903('0x51')]['id']},'order':_0xb903('0x70')});});}})[_0xb903('0x36')](respondWithResult(_0x4a94a2,null))[_0xb903('0x50')](handleError(_0x4a94a2,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xab04=['emit','hook','exports','events','../../mysqldb','VoiceExtension','save','update','remove'];(function(_0x5d95b2,_0x126016){var _0x2e2846=function(_0x52a491){while(--_0x52a491){_0x5d95b2['push'](_0x5d95b2['shift']());}};_0x2e2846(++_0x126016);}(_0xab04,0x159));var _0x4ab0=function(_0x502773,_0xe55d92){_0x502773=_0x502773-0x0;var _0x568f34=_0xab04[_0x502773];return _0x568f34;};'use strict';var EventEmitter=require(_0x4ab0('0x0'));var VoiceExtension=require(_0x4ab0('0x1'))['db'][_0x4ab0('0x2')];var VoiceExtensionEvents=new EventEmitter();VoiceExtensionEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x4ab0('0x3'),'afterUpdate':_0x4ab0('0x4'),'afterDestroy':_0x4ab0('0x5')};function emitEvent(_0x4c8494){return function(_0x5596fe,_0x53db1d,_0x45c2d9){VoiceExtensionEvents['emit'](_0x4c8494+':'+_0x5596fe['id'],_0x5596fe);VoiceExtensionEvents[_0x4ab0('0x6')](_0x4c8494,_0x5596fe);_0x45c2d9(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];VoiceExtension[_0x4ab0('0x7')](e,emitEvent(event));}}module[_0x4ab0('0x8')]=VoiceExtensionEvents;
\ No newline at end of file
+var _0x031d=['hook','../../mysqldb','setMaxListeners','save','update','emit','hasOwnProperty'];(function(_0x367e5b,_0x5721e4){var _0x4b909e=function(_0x22c6a4){while(--_0x22c6a4){_0x367e5b['push'](_0x367e5b['shift']());}};_0x4b909e(++_0x5721e4);}(_0x031d,0x1f2));var _0xd031=function(_0x28f32c,_0x4cc342){_0x28f32c=_0x28f32c-0x0;var _0x355402=_0x031d[_0x28f32c];return _0x355402;};'use strict';var EventEmitter=require('events');var VoiceExtension=require(_0xd031('0x0'))['db']['VoiceExtension'];var VoiceExtensionEvents=new EventEmitter();VoiceExtensionEvents[_0xd031('0x1')](0x0);var events={'afterCreate':_0xd031('0x2'),'afterUpdate':_0xd031('0x3'),'afterDestroy':'remove'};function emitEvent(_0xbc3c27){return function(_0x5874f5,_0x2f98a8,_0x46afe6){VoiceExtensionEvents[_0xd031('0x4')](_0xbc3c27+':'+_0x5874f5['id'],_0x5874f5);VoiceExtensionEvents[_0xd031('0x4')](_0xbc3c27,_0x5874f5);_0x46afe6(null);};}for(var e in events){if(events[_0xd031('0x5')](e)){var event=events[e];VoiceExtension[_0xd031('0x6')](e,emitEvent(event));}}module['exports']=VoiceExtensionEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3d83=['IntervalId','then','*,*,*,*','intervals','filter','toLowerCase','tag','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):','callerID','answer','queue','playback','app','appType','XCALLY-MOTION-ANSWER=1','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','GotoIfTime',',${EXTEN},','appdata','priority','catch','define','VoiceExtension','voice_extensions','concat','Hangup','util','lodash','./voiceExtension.attributes','exports','models','type','Set','CDR(type)=','context','exten','alias','NoOp','No\x20alias\x20set','inbound','CDR(routeid)=','push','XCALLY-MOTION-ANSWER=0','MONITOR_OPTIONS=ab','outbound','${EXTEN:','cutdigits','ExecIf','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','XCALLY-MOTION-PROGRESS=0','outboundrouteid=','hasOwnProperty','recordingFormat','none','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','trunk','timeout','options','url','split','length','name','param','phone','prefix','SIP','indexOf','U(xcally-mixmonitor-context)','join','isEmpty','Interval','findAll','interval'];(function(_0x381b84,_0x55d045){var _0x5b11dc=function(_0x262e92){while(--_0x262e92){_0x381b84['push'](_0x381b84['shift']());}};_0x5b11dc(++_0x55d045);}(_0x3d83,0xac));var _0x33d8=function(_0x25fc76,_0x3233c5){_0x25fc76=_0x25fc76-0x0;var _0x347e47=_0x3d83[_0x25fc76];return _0x347e47;};'use strict';var util=require(_0x33d8('0x0'));var _=require(_0x33d8('0x1'));var attributes=require(_0x33d8('0x2'));module[_0x33d8('0x3')]=function(_0x53012b){var _0x36c782=_0x53012b[_0x33d8('0x4')];function _0x44b908(_0x3c8ca0){var _0x53947b=0x2;var _0x2e7fd9=[{'type':_0x3c8ca0[_0x33d8('0x5')],'app':_0x33d8('0x6'),'appdata':_0x33d8('0x7')+_0x3c8ca0[_0x33d8('0x5')],'context':_0x3c8ca0[_0x33d8('0x8')],'exten':_0x3c8ca0[_0x33d8('0x9')],'priority':_0x53947b++,'VoiceExtensionId':_0x3c8ca0['id']},{'type':_0x3c8ca0['type'],'app':_0x3c8ca0[_0x33d8('0xa')]?'Set':_0x33d8('0xb'),'appdata':_0x3c8ca0[_0x33d8('0xa')]?'CDR(routeAlias)='+_0x3c8ca0[_0x33d8('0xa')]:_0x33d8('0xc'),'context':_0x3c8ca0[_0x33d8('0x8')],'exten':_0x3c8ca0[_0x33d8('0x9')],'priority':_0x53947b++,'VoiceExtensionId':_0x3c8ca0['id']}];if(_0x3c8ca0['type']===_0x33d8('0xd')){_0x2e7fd9['push']({'type':'inbound','app':'Set','appdata':_0x33d8('0xe')+_0x3c8ca0['id'],'context':_0x3c8ca0[_0x33d8('0x8')],'exten':_0x3c8ca0[_0x33d8('0x9')],'priority':_0x53947b++,'VoiceExtensionId':_0x3c8ca0['id']});}_0x2e7fd9[_0x33d8('0xf')]({'type':_0x3c8ca0[_0x33d8('0x5')],'app':'Set','appdata':_0x33d8('0x10'),'context':_0x3c8ca0['context'],'exten':_0x3c8ca0[_0x33d8('0x9')],'priority':_0x53947b++,'VoiceExtensionId':_0x3c8ca0['id']},{'type':_0x3c8ca0['type'],'app':'Set','appdata':'XCALLY-MOTION-PROGRESS=0','context':_0x3c8ca0[_0x33d8('0x8')],'exten':_0x3c8ca0[_0x33d8('0x9')],'priority':_0x53947b++,'VoiceExtensionId':_0x3c8ca0['id']},{'type':_0x3c8ca0[_0x33d8('0x5')],'app':_0x33d8('0x6'),'appdata':_0x33d8('0x11'),'context':_0x3c8ca0['context'],'exten':_0x3c8ca0[_0x33d8('0x9')],'priority':_0x53947b++,'VoiceExtensionId':_0x3c8ca0['id']});return _0x2e7fd9;}function _0x436202(_0x37c47f){var _0x4ec760=0x2;var _0x2334da=[{'type':_0x33d8('0x12'),'app':'Set','appdata':'CDR(type)=outbound','context':_0x37c47f[_0x33d8('0x8')],'exten':_0x37c47f[_0x33d8('0x9')],'priority':_0x4ec760++,'VoiceExtensionId':_0x37c47f['id']},{'type':_0x33d8('0x12'),'app':_0x37c47f[_0x33d8('0xa')]?_0x33d8('0x6'):_0x33d8('0xb'),'appdata':_0x37c47f['alias']?'CDR(routeAlias)='+_0x37c47f[_0x33d8('0xa')]:_0x33d8('0xc'),'context':_0x37c47f[_0x33d8('0x8')],'exten':_0x37c47f['exten'],'priority':_0x4ec760++,'VoiceExtensionId':_0x37c47f['id']},{'type':'outbound','app':_0x33d8('0x6'),'appdata':'CDR(destination)='+(_0x37c47f['cutdigits']?_0x33d8('0x13')+_0x37c47f[_0x33d8('0x14')]+'}':'${EXTEN}'),'context':_0x37c47f[_0x33d8('0x8')],'exten':_0x37c47f['exten'],'priority':_0x4ec760++,'VoiceExtensionId':_0x37c47f['id']},{'type':_0x33d8('0x12'),'app':_0x33d8('0x6'),'appdata':_0x33d8('0xe')+_0x37c47f['id'],'context':_0x37c47f[_0x33d8('0x8')],'exten':_0x37c47f[_0x33d8('0x9')],'priority':_0x4ec760++,'VoiceExtensionId':_0x37c47f['id']},{'type':_0x33d8('0x12'),'app':_0x33d8('0x15'),'appdata':_0x33d8('0x16')+(_0x4ec760+0x2)+'):Goto('+(_0x4ec760+0x1)+')','context':_0x37c47f[_0x33d8('0x8')],'exten':_0x37c47f[_0x33d8('0x9')],'priority':_0x4ec760++,'VoiceExtensionId':_0x37c47f['id']},{'type':'outbound','app':_0x33d8('0x6'),'appdata':_0x37c47f['cutdigits']?'CDR(prefix)=${EXTEN:0:'+_0x37c47f[_0x33d8('0x14')]+'}':'CDR(prefix)=noprefix','context':_0x37c47f[_0x33d8('0x8')],'exten':_0x37c47f[_0x33d8('0x9')],'priority':_0x4ec760++,'VoiceExtensionId':_0x37c47f['id']},{'type':_0x33d8('0x12'),'app':_0x33d8('0x6'),'appdata':_0x33d8('0x10'),'context':_0x37c47f['context'],'exten':_0x37c47f[_0x33d8('0x9')],'priority':_0x4ec760++,'VoiceExtensionId':_0x37c47f['id']},{'type':_0x33d8('0x12'),'app':'Set','appdata':_0x33d8('0x17'),'context':_0x37c47f[_0x33d8('0x8')],'exten':_0x37c47f[_0x33d8('0x9')],'priority':_0x4ec760++,'VoiceExtensionId':_0x37c47f['id']},{'type':_0x33d8('0x12'),'app':_0x33d8('0x6'),'appdata':'MONITOR_OPTIONS=ab','context':_0x37c47f['context'],'exten':_0x37c47f[_0x33d8('0x9')],'priority':_0x4ec760++,'VoiceExtensionId':_0x37c47f['id']},{'type':_0x33d8('0x12'),'app':'Set','appdata':_0x33d8('0x18')+_0x37c47f['id'],'context':_0x37c47f[_0x33d8('0x8')],'exten':_0x37c47f[_0x33d8('0x9')],'priority':_0x4ec760++,'VoiceExtensionId':_0x37c47f['id']}];if(_0x37c47f[_0x33d8('0x19')](_0x33d8('0x1a'))&&_0x37c47f[_0x33d8('0x1a')]!==_0x33d8('0x1b')){_0x2334da['push']({'type':'outbound','app':_0x33d8('0x6'),'appdata':_0x33d8('0x1c'),'context':_0x37c47f['context'],'exten':_0x37c47f[_0x33d8('0x9')],'priority':_0x4ec760++,'VoiceExtensionId':_0x37c47f['id']},{'type':_0x33d8('0x12'),'app':'Set','appdata':'_XCALLY_MIXMONITOR_FORMAT='+_0x37c47f['recordingFormat']||'wav','context':_0x37c47f[_0x33d8('0x8')],'exten':_0x37c47f[_0x33d8('0x9')],'priority':_0x4ec760++,'VoiceExtensionId':_0x37c47f['id']});}return _0x2334da;}function _0x4f0084(_0x404b76){var _0x5a0c5e=[{'name':_0x33d8('0x1d'),'param':0x0},{'name':_0x33d8('0x1e'),'param':0x1},{'name':_0x33d8('0x1f'),'param':0x2},{'name':_0x33d8('0x20'),'param':0x3}];var _0x38dc96={};var _0x38b714=_0x404b76[_0x33d8('0x21')](',');var _0x443e0b=[];for(var _0x32ecaa=0x0;_0x32ecaa<_0x5a0c5e[_0x33d8('0x22')];_0x32ecaa++){switch(_0x5a0c5e[_0x32ecaa][_0x33d8('0x23')]){case _0x33d8('0x1d'):_0x38dc96[_0x33d8('0x1d')]=_0x38b714[_0x5a0c5e[_0x32ecaa][_0x33d8('0x24')]][_0x33d8('0x21')]('/')[0x1];_0x38dc96[_0x33d8('0x25')]=_0x38b714[_0x5a0c5e[_0x32ecaa][_0x33d8('0x24')]][_0x33d8('0x21')]('/')[0x2];_0x38dc96[_0x33d8('0x26')]=_0x38dc96[_0x33d8('0x25')]?_0x38dc96[_0x33d8('0x25')][_0x33d8('0x21')]('$')[0x0]:undefined;_0x38dc96[_0x33d8('0x25')]=route['cutdigits']?(_0x38dc96[_0x33d8('0x26')]||'')+_0x33d8('0x13')+route[_0x33d8('0x14')]+'}':(_0x38dc96[_0x33d8('0x26')]||'')+'${EXTEN}';_0x443e0b[_0x5a0c5e[_0x32ecaa][_0x33d8('0x24')]]=[_0x33d8('0x27'),_0x38dc96[_0x33d8('0x1d')],_0x38dc96[_0x33d8('0x25')]]['join']('/');break;case _0x33d8('0x1f'):_0x38dc96['options']=_0x38b714[_0x5a0c5e[_0x32ecaa]['param']];if(route[_0x33d8('0x1a')]!==_0x33d8('0x1b')){if(_0x38dc96[_0x33d8('0x1f')][_0x33d8('0x28')]('U(xcally-mixmonitor-context)')<0x0){_0x38dc96['options']+='U(xcally-mixmonitor-context)';}}else{_0x38dc96[_0x33d8('0x1f')]=_0x38dc96[_0x33d8('0x1f')]['replace'](_0x33d8('0x29'),'');}_0x443e0b[_0x5a0c5e[_0x32ecaa][_0x33d8('0x24')]]=_0x38dc96[_0x33d8('0x1f')];break;default:_0x443e0b[_0x5a0c5e[_0x32ecaa][_0x33d8('0x24')]]=_0x38b714[_0x5a0c5e[_0x32ecaa]['param']];}}return _0x443e0b[_0x33d8('0x2a')](',');}function _0x3523cd(_0x3bc3ff,_0xb40638,_0x2005c4,_0x5a0246){return new Promise(function(_0x29608d,_0xe634ef){var _0x4337cb=[];if(_[_0x33d8('0x2b')](_0xb40638))return _0x29608d(_0x4337cb);_0x36c782[_0x33d8('0x2c')][_0x33d8('0x2d')]({'attributes':['id',_0x33d8('0x2e'),_0x33d8('0x2f')],'raw':!![]})[_0x33d8('0x30')](function(_0x3d12ed){for(var _0xd803f2=0x0,_0x1c6ae6=0x0;_0xd803f2<_0xb40638[_0x33d8('0x22')];_0xd803f2++,_0x1c6ae6=0x0){var _0x5d5bfd=_0xb40638[_0xd803f2];var _0x54ea74=[];var _0x22e32e=[];if(_0x5d5bfd['interval']!==_0x33d8('0x31')){_0x5d5bfd[_0x33d8('0x32')]=[_0x5d5bfd['interval']];}else{_0x5d5bfd[_0x33d8('0x32')]=_0x5d5bfd[_0x33d8('0x2f')]?_['map'](_[_0x33d8('0x33')](_0x3d12ed,{'IntervalId':_0x5d5bfd[_0x33d8('0x2f')]}),'interval'):[];}_0x5d5bfd[_0x33d8('0x8')]=_0x3bc3ff['context'];_0x5d5bfd['exten']=_0x3bc3ff['exten'];if(_0x5d5bfd[_0x33d8('0x5')])_0x5d5bfd[_0x33d8('0x5')]=_0x5d5bfd[_0x33d8('0x5')][_0x33d8('0x34')]();if(_0x3bc3ff[_0x33d8('0x5')]===_0x33d8('0x12')){if(_0x5d5bfd[_0x33d8('0x19')]('tag')&&_0x5d5bfd[_0x33d8('0x35')]&&_0x5d5bfd[_0x33d8('0x35')]!=='--'){_0x54ea74[_0x33d8('0xf')]({'type':_0x5d5bfd[_0x33d8('0x5')][_0x33d8('0x34')](),'app':_0x33d8('0x6'),'appdata':'CDR(tag)='+_0x5d5bfd['tag'],'context':_0x3bc3ff[_0x33d8('0x8')],'exten':_0x3bc3ff[_0x33d8('0x9')],'priority':_0x5d5bfd['intervals'][_0x33d8('0x22')]+_0x2005c4+_0x1c6ae6++,'VoiceExtensionId':_0x3bc3ff['id']});}_0x54ea74[_0x33d8('0xf')]({'type':_0x5d5bfd[_0x33d8('0x5')][_0x33d8('0x34')](),'app':_0x33d8('0x15'),'appdata':_0x33d8('0x36')+(_0x5d5bfd['callerID']?'Set(CALLERID(all)='+_0x5d5bfd[_0x33d8('0x37')]+')':'NoOp(No\x20number\x20available)'),'context':_0x3bc3ff[_0x33d8('0x8')],'exten':_0x3bc3ff['exten'],'priority':_0x5d5bfd['intervals']['length']+_0x2005c4+_0x1c6ae6++,'VoiceExtensionId':_0x3bc3ff['id']});}else{if(_0x5d5bfd[_0x33d8('0x19')](_0x33d8('0x38'))){if([_0x33d8('0x39'),_0x33d8('0x3a')]['includes'](_0x5d5bfd[_0x33d8('0x3b')][_0x33d8('0x34')]())&&_0x5d5bfd[_0x33d8('0x3c')]!=='custom'){if(_0x5d5bfd[_0x33d8('0x38')]){_0x54ea74[_0x33d8('0xf')]({'type':_0x5d5bfd[_0x33d8('0x5')][_0x33d8('0x34')](),'app':'ExecIf','appdata':'$[${XCALLY-MOTION-ANSWER}=0]?Answer','context':_0x3bc3ff['context'],'exten':_0x3bc3ff['exten'],'priority':_0x5d5bfd[_0x33d8('0x32')]['length']+_0x2005c4+_0x1c6ae6++,'VoiceExtensionId':_0x3bc3ff['id']});_0x54ea74[_0x33d8('0xf')]({'type':_0x5d5bfd['type'][_0x33d8('0x34')](),'app':'Set','appdata':_0x33d8('0x3d'),'context':_0x3bc3ff[_0x33d8('0x8')],'exten':_0x3bc3ff[_0x33d8('0x9')],'priority':_0x5d5bfd[_0x33d8('0x32')]['length']+_0x2005c4+_0x1c6ae6++,'VoiceExtensionId':_0x3bc3ff['id']});}else{_0x54ea74['push']({'type':_0x5d5bfd['type'][_0x33d8('0x34')](),'app':_0x33d8('0x15'),'appdata':_0x33d8('0x3e'),'context':_0x3bc3ff[_0x33d8('0x8')],'exten':_0x3bc3ff[_0x33d8('0x9')],'priority':_0x5d5bfd['intervals']['length']+_0x2005c4+_0x1c6ae6++,'VoiceExtensionId':_0x3bc3ff['id']});_0x54ea74[_0x33d8('0xf')]({'type':_0x5d5bfd['type'][_0x33d8('0x34')](),'app':_0x33d8('0x6'),'appdata':'XCALLY-MOTION-PROGRESS=1','context':_0x3bc3ff[_0x33d8('0x8')],'exten':_0x3bc3ff[_0x33d8('0x9')],'priority':_0x5d5bfd[_0x33d8('0x32')][_0x33d8('0x22')]+_0x2005c4+_0x1c6ae6++,'VoiceExtensionId':_0x3bc3ff['id']});}}}}for(var _0x592b9a=0x0;_0x592b9a<_0x5d5bfd['intervals'][_0x33d8('0x22')];_0x592b9a++){var _0x194639=_0x2005c4+_0x5d5bfd['intervals'][_0x33d8('0x22')];var _0x2f9978=_0x592b9a===_0x5d5bfd['intervals'][_0x33d8('0x22')]-0x1?_0x2005c4+_0x54ea74[_0x33d8('0x22')]+_0x22e32e['length']+0x2:_0x2005c4+_0x592b9a+0x1;_0x54ea74['splice'](_0x592b9a,0x0,{'type':_0x3bc3ff['type'],'app':_0x33d8('0x3f'),'appdata':_0x5d5bfd[_0x33d8('0x32')][_0x592b9a]+'?'+_0x3bc3ff[_0x33d8('0x8')]+_0x33d8('0x40')+_0x194639+':'+_0x3bc3ff['context']+_0x33d8('0x40')+_0x2f9978,'exten':_0x3bc3ff['exten'],'context':_0x3bc3ff['context'],'priority':_0x2005c4+_0x592b9a,'VoiceExtensionId':_0x3bc3ff['id']});}if(_0x5a0246&&_0x5d5bfd[_0x33d8('0x3c')]==='outboundDial')_0x5d5bfd['appdata']=_0x4f0084(_0x5d5bfd[_0x33d8('0x41')]);_0x5d5bfd['priority']=_0x54ea74[_0x33d8('0x22')]?_['last'](_0x54ea74)[_0x33d8('0x42')]+0x1:_0x2005c4;_0x4337cb=_['concat'](_0x4337cb,_0x54ea74,[_0x5d5bfd],_0x22e32e);_0x2005c4=_['last'](_0x4337cb)[_0x33d8('0x42')]+0x1;}return _0x29608d(_0x4337cb);})[_0x33d8('0x43')](function(_0x26b5e7){_0xe634ef(_0x26b5e7);});});}return _0x53012b[_0x33d8('0x44')](_0x33d8('0x45'),attributes,{'tableName':_0x33d8('0x46'),'paranoid':![],'indexes':[],'timestamps':!![],'instanceMethods':{'createRouting':function(_0x272a55,_0x409bb3){var _0x3eec5d=this;var _0x59b826=_0x3eec5d[_0x33d8('0x5')]===_0x33d8('0x12')?_0x436202(_0x3eec5d):_0x44b908(_0x3eec5d);return _0x3523cd(_0x3eec5d,_0x272a55,_['last'](_0x59b826)[_0x33d8('0x42')]+0x1,_0x409bb3)[_0x33d8('0x30')](function(_0x4f98e3){var _0x5d1c89=_[_0x33d8('0x47')](_0x59b826,_0x4f98e3);_0x5d1c89['push']({'type':_0x3eec5d[_0x33d8('0x5')],'app':_0x33d8('0x48'),'exten':_0x3eec5d[_0x33d8('0x9')],'context':_0x3eec5d['context'],'priority':_['last'](_0x5d1c89)['priority']+0x1,'VoiceExtensionId':_0x3eec5d['id']});return _0x5d1c89;});}}});};
\ No newline at end of file
+var _0xad83=['timeout','options','url','split','length','name','param','phone','prefix','SIP','join','indexOf','U(xcally-mixmonitor-context)','replace','isEmpty','Interval','findAll','interval','IntervalId','*,*,*,*','intervals','map','filter','toLowerCase','tag','CDR(tag)=','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):','callerID','Set(CALLERID(all)=','answer','queue','appType','XCALLY-MOTION-ANSWER=1','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','XCALLY-MOTION-PROGRESS=1','splice','GotoIfTime',',${EXTEN},','outboundDial','appdata','priority','last','concat','catch','define','VoiceExtension','then','util','lodash','./voiceExtension.attributes','models','type','Set','CDR(type)=','context','NoOp','alias','CDR(routeAlias)=','No\x20alias\x20set','exten','inbound','push','CDR(routeid)=','XCALLY-MOTION-ANSWER=0','XCALLY-MOTION-PROGRESS=0','MONITOR_OPTIONS=ab','outbound','CDR(destination)=','cutdigits','${EXTEN:','${EXTEN}','ExecIf','):Goto(','CDR(prefix)=${EXTEN:0:','CDR(prefix)=noprefix','hasOwnProperty','recordingFormat','none','_XCALLY_MIXMONITOR_FORMAT=','wav','trunk'];(function(_0x4bc708,_0x24370f){var _0x2c608e=function(_0x4409f1){while(--_0x4409f1){_0x4bc708['push'](_0x4bc708['shift']());}};_0x2c608e(++_0x24370f);}(_0xad83,0x122));var _0x3ad8=function(_0x5c5a71,_0x2e8e35){_0x5c5a71=_0x5c5a71-0x0;var _0x221053=_0xad83[_0x5c5a71];return _0x221053;};'use strict';var util=require(_0x3ad8('0x0'));var _=require(_0x3ad8('0x1'));var attributes=require(_0x3ad8('0x2'));module['exports']=function(_0xd1cf8b){var _0x52cb1a=_0xd1cf8b[_0x3ad8('0x3')];function _0x4b047a(_0x266bb8){var _0xe457f9=0x2;var _0xb1c06=[{'type':_0x266bb8[_0x3ad8('0x4')],'app':_0x3ad8('0x5'),'appdata':_0x3ad8('0x6')+_0x266bb8[_0x3ad8('0x4')],'context':_0x266bb8[_0x3ad8('0x7')],'exten':_0x266bb8['exten'],'priority':_0xe457f9++,'VoiceExtensionId':_0x266bb8['id']},{'type':_0x266bb8[_0x3ad8('0x4')],'app':_0x266bb8['alias']?_0x3ad8('0x5'):_0x3ad8('0x8'),'appdata':_0x266bb8[_0x3ad8('0x9')]?_0x3ad8('0xa')+_0x266bb8['alias']:_0x3ad8('0xb'),'context':_0x266bb8[_0x3ad8('0x7')],'exten':_0x266bb8[_0x3ad8('0xc')],'priority':_0xe457f9++,'VoiceExtensionId':_0x266bb8['id']}];if(_0x266bb8['type']===_0x3ad8('0xd')){_0xb1c06[_0x3ad8('0xe')]({'type':'inbound','app':_0x3ad8('0x5'),'appdata':_0x3ad8('0xf')+_0x266bb8['id'],'context':_0x266bb8[_0x3ad8('0x7')],'exten':_0x266bb8['exten'],'priority':_0xe457f9++,'VoiceExtensionId':_0x266bb8['id']});}_0xb1c06[_0x3ad8('0xe')]({'type':_0x266bb8[_0x3ad8('0x4')],'app':_0x3ad8('0x5'),'appdata':_0x3ad8('0x10'),'context':_0x266bb8[_0x3ad8('0x7')],'exten':_0x266bb8[_0x3ad8('0xc')],'priority':_0xe457f9++,'VoiceExtensionId':_0x266bb8['id']},{'type':_0x266bb8['type'],'app':_0x3ad8('0x5'),'appdata':_0x3ad8('0x11'),'context':_0x266bb8['context'],'exten':_0x266bb8[_0x3ad8('0xc')],'priority':_0xe457f9++,'VoiceExtensionId':_0x266bb8['id']},{'type':_0x266bb8[_0x3ad8('0x4')],'app':_0x3ad8('0x5'),'appdata':_0x3ad8('0x12'),'context':_0x266bb8[_0x3ad8('0x7')],'exten':_0x266bb8[_0x3ad8('0xc')],'priority':_0xe457f9++,'VoiceExtensionId':_0x266bb8['id']});return _0xb1c06;}function _0x2ab309(_0x36c50b){var _0x20de78=0x2;var _0x6e1ef0=[{'type':_0x3ad8('0x13'),'app':'Set','appdata':'CDR(type)=outbound','context':_0x36c50b['context'],'exten':_0x36c50b['exten'],'priority':_0x20de78++,'VoiceExtensionId':_0x36c50b['id']},{'type':_0x3ad8('0x13'),'app':_0x36c50b[_0x3ad8('0x9')]?_0x3ad8('0x5'):_0x3ad8('0x8'),'appdata':_0x36c50b['alias']?_0x3ad8('0xa')+_0x36c50b[_0x3ad8('0x9')]:_0x3ad8('0xb'),'context':_0x36c50b[_0x3ad8('0x7')],'exten':_0x36c50b[_0x3ad8('0xc')],'priority':_0x20de78++,'VoiceExtensionId':_0x36c50b['id']},{'type':'outbound','app':_0x3ad8('0x5'),'appdata':_0x3ad8('0x14')+(_0x36c50b[_0x3ad8('0x15')]?_0x3ad8('0x16')+_0x36c50b[_0x3ad8('0x15')]+'}':_0x3ad8('0x17')),'context':_0x36c50b[_0x3ad8('0x7')],'exten':_0x36c50b[_0x3ad8('0xc')],'priority':_0x20de78++,'VoiceExtensionId':_0x36c50b['id']},{'type':_0x3ad8('0x13'),'app':_0x3ad8('0x5'),'appdata':_0x3ad8('0xf')+_0x36c50b['id'],'context':_0x36c50b[_0x3ad8('0x7')],'exten':_0x36c50b['exten'],'priority':_0x20de78++,'VoiceExtensionId':_0x36c50b['id']},{'type':_0x3ad8('0x13'),'app':_0x3ad8('0x18'),'appdata':'$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto('+(_0x20de78+0x2)+_0x3ad8('0x19')+(_0x20de78+0x1)+')','context':_0x36c50b[_0x3ad8('0x7')],'exten':_0x36c50b['exten'],'priority':_0x20de78++,'VoiceExtensionId':_0x36c50b['id']},{'type':_0x3ad8('0x13'),'app':'Set','appdata':_0x36c50b[_0x3ad8('0x15')]?_0x3ad8('0x1a')+_0x36c50b['cutdigits']+'}':_0x3ad8('0x1b'),'context':_0x36c50b[_0x3ad8('0x7')],'exten':_0x36c50b[_0x3ad8('0xc')],'priority':_0x20de78++,'VoiceExtensionId':_0x36c50b['id']},{'type':'outbound','app':_0x3ad8('0x5'),'appdata':_0x3ad8('0x10'),'context':_0x36c50b[_0x3ad8('0x7')],'exten':_0x36c50b['exten'],'priority':_0x20de78++,'VoiceExtensionId':_0x36c50b['id']},{'type':'outbound','app':_0x3ad8('0x5'),'appdata':'XCALLY-MOTION-PROGRESS=0','context':_0x36c50b['context'],'exten':_0x36c50b[_0x3ad8('0xc')],'priority':_0x20de78++,'VoiceExtensionId':_0x36c50b['id']},{'type':_0x3ad8('0x13'),'app':_0x3ad8('0x5'),'appdata':_0x3ad8('0x12'),'context':_0x36c50b[_0x3ad8('0x7')],'exten':_0x36c50b[_0x3ad8('0xc')],'priority':_0x20de78++,'VoiceExtensionId':_0x36c50b['id']},{'type':'outbound','app':_0x3ad8('0x5'),'appdata':'outboundrouteid='+_0x36c50b['id'],'context':_0x36c50b[_0x3ad8('0x7')],'exten':_0x36c50b[_0x3ad8('0xc')],'priority':_0x20de78++,'VoiceExtensionId':_0x36c50b['id']}];if(_0x36c50b[_0x3ad8('0x1c')](_0x3ad8('0x1d'))&&_0x36c50b[_0x3ad8('0x1d')]!==_0x3ad8('0x1e')){_0x6e1ef0[_0x3ad8('0xe')]({'type':_0x3ad8('0x13'),'app':_0x3ad8('0x5'),'appdata':'_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','context':_0x36c50b[_0x3ad8('0x7')],'exten':_0x36c50b[_0x3ad8('0xc')],'priority':_0x20de78++,'VoiceExtensionId':_0x36c50b['id']},{'type':_0x3ad8('0x13'),'app':_0x3ad8('0x5'),'appdata':_0x3ad8('0x1f')+_0x36c50b['recordingFormat']||_0x3ad8('0x20'),'context':_0x36c50b[_0x3ad8('0x7')],'exten':_0x36c50b[_0x3ad8('0xc')],'priority':_0x20de78++,'VoiceExtensionId':_0x36c50b['id']});}return _0x6e1ef0;}function _0x2e55ca(_0x10fdc1){var _0xaf8c6b=[{'name':_0x3ad8('0x21'),'param':0x0},{'name':_0x3ad8('0x22'),'param':0x1},{'name':_0x3ad8('0x23'),'param':0x2},{'name':_0x3ad8('0x24'),'param':0x3}];var _0x22e11b={};var _0x4d2bb0=_0x10fdc1[_0x3ad8('0x25')](',');var _0x5bf654=[];for(var _0x6631f8=0x0;_0x6631f8<_0xaf8c6b[_0x3ad8('0x26')];_0x6631f8++){switch(_0xaf8c6b[_0x6631f8][_0x3ad8('0x27')]){case _0x3ad8('0x21'):_0x22e11b[_0x3ad8('0x21')]=_0x4d2bb0[_0xaf8c6b[_0x6631f8]['param']][_0x3ad8('0x25')]('/')[0x1];_0x22e11b['phone']=_0x4d2bb0[_0xaf8c6b[_0x6631f8][_0x3ad8('0x28')]][_0x3ad8('0x25')]('/')[0x2];_0x22e11b['prefix']=_0x22e11b[_0x3ad8('0x29')]?_0x22e11b['phone'][_0x3ad8('0x25')]('$')[0x0]:undefined;_0x22e11b[_0x3ad8('0x29')]=route[_0x3ad8('0x15')]?(_0x22e11b[_0x3ad8('0x2a')]||'')+_0x3ad8('0x16')+route['cutdigits']+'}':(_0x22e11b[_0x3ad8('0x2a')]||'')+_0x3ad8('0x17');_0x5bf654[_0xaf8c6b[_0x6631f8]['param']]=[_0x3ad8('0x2b'),_0x22e11b[_0x3ad8('0x21')],_0x22e11b['phone']][_0x3ad8('0x2c')]('/');break;case _0x3ad8('0x23'):_0x22e11b[_0x3ad8('0x23')]=_0x4d2bb0[_0xaf8c6b[_0x6631f8]['param']];if(route[_0x3ad8('0x1d')]!==_0x3ad8('0x1e')){if(_0x22e11b[_0x3ad8('0x23')][_0x3ad8('0x2d')](_0x3ad8('0x2e'))<0x0){_0x22e11b[_0x3ad8('0x23')]+=_0x3ad8('0x2e');}}else{_0x22e11b[_0x3ad8('0x23')]=_0x22e11b['options'][_0x3ad8('0x2f')](_0x3ad8('0x2e'),'');}_0x5bf654[_0xaf8c6b[_0x6631f8][_0x3ad8('0x28')]]=_0x22e11b[_0x3ad8('0x23')];break;default:_0x5bf654[_0xaf8c6b[_0x6631f8]['param']]=_0x4d2bb0[_0xaf8c6b[_0x6631f8][_0x3ad8('0x28')]];}}return _0x5bf654[_0x3ad8('0x2c')](',');}function _0x4d67a8(_0x1064f8,_0x182850,_0x477666,_0x128483){return new Promise(function(_0x34ef02,_0x1d07e6){var _0x1efa90=[];if(_[_0x3ad8('0x30')](_0x182850))return _0x34ef02(_0x1efa90);_0x52cb1a[_0x3ad8('0x31')][_0x3ad8('0x32')]({'attributes':['id',_0x3ad8('0x33'),_0x3ad8('0x34')],'raw':!![]})['then'](function(_0x1ffdb3){for(var _0x36cd81=0x0,_0x242af0=0x0;_0x36cd81<_0x182850[_0x3ad8('0x26')];_0x36cd81++,_0x242af0=0x0){var _0x344f8f=_0x182850[_0x36cd81];var _0x21878b=[];var _0x4ee923=[];if(_0x344f8f[_0x3ad8('0x33')]!==_0x3ad8('0x35')){_0x344f8f[_0x3ad8('0x36')]=[_0x344f8f[_0x3ad8('0x33')]];}else{_0x344f8f[_0x3ad8('0x36')]=_0x344f8f[_0x3ad8('0x34')]?_[_0x3ad8('0x37')](_[_0x3ad8('0x38')](_0x1ffdb3,{'IntervalId':_0x344f8f[_0x3ad8('0x34')]}),_0x3ad8('0x33')):[];}_0x344f8f['context']=_0x1064f8[_0x3ad8('0x7')];_0x344f8f[_0x3ad8('0xc')]=_0x1064f8[_0x3ad8('0xc')];if(_0x344f8f[_0x3ad8('0x4')])_0x344f8f['type']=_0x344f8f['type'][_0x3ad8('0x39')]();if(_0x1064f8[_0x3ad8('0x4')]===_0x3ad8('0x13')){if(_0x344f8f[_0x3ad8('0x1c')]('tag')&&_0x344f8f['tag']&&_0x344f8f[_0x3ad8('0x3a')]!=='--'){_0x21878b[_0x3ad8('0xe')]({'type':_0x344f8f[_0x3ad8('0x4')]['toLowerCase'](),'app':_0x3ad8('0x5'),'appdata':_0x3ad8('0x3b')+_0x344f8f[_0x3ad8('0x3a')],'context':_0x1064f8[_0x3ad8('0x7')],'exten':_0x1064f8[_0x3ad8('0xc')],'priority':_0x344f8f[_0x3ad8('0x36')][_0x3ad8('0x26')]+_0x477666+_0x242af0++,'VoiceExtensionId':_0x1064f8['id']});}_0x21878b['push']({'type':_0x344f8f['type'][_0x3ad8('0x39')](),'app':_0x3ad8('0x18'),'appdata':_0x3ad8('0x3c')+(_0x344f8f[_0x3ad8('0x3d')]?_0x3ad8('0x3e')+_0x344f8f[_0x3ad8('0x3d')]+')':'NoOp(No\x20number\x20available)'),'context':_0x1064f8[_0x3ad8('0x7')],'exten':_0x1064f8[_0x3ad8('0xc')],'priority':_0x344f8f[_0x3ad8('0x36')]['length']+_0x477666+_0x242af0++,'VoiceExtensionId':_0x1064f8['id']});}else{if(_0x344f8f['hasOwnProperty'](_0x3ad8('0x3f'))){if([_0x3ad8('0x40'),'playback']['includes'](_0x344f8f['app'][_0x3ad8('0x39')]())&&_0x344f8f[_0x3ad8('0x41')]!=='custom'){if(_0x344f8f[_0x3ad8('0x3f')]){_0x21878b['push']({'type':_0x344f8f[_0x3ad8('0x4')][_0x3ad8('0x39')](),'app':'ExecIf','appdata':'$[${XCALLY-MOTION-ANSWER}=0]?Answer','context':_0x1064f8[_0x3ad8('0x7')],'exten':_0x1064f8[_0x3ad8('0xc')],'priority':_0x344f8f[_0x3ad8('0x36')][_0x3ad8('0x26')]+_0x477666+_0x242af0++,'VoiceExtensionId':_0x1064f8['id']});_0x21878b['push']({'type':_0x344f8f[_0x3ad8('0x4')][_0x3ad8('0x39')](),'app':'Set','appdata':_0x3ad8('0x42'),'context':_0x1064f8[_0x3ad8('0x7')],'exten':_0x1064f8[_0x3ad8('0xc')],'priority':_0x344f8f[_0x3ad8('0x36')][_0x3ad8('0x26')]+_0x477666+_0x242af0++,'VoiceExtensionId':_0x1064f8['id']});}else{_0x21878b['push']({'type':_0x344f8f[_0x3ad8('0x4')][_0x3ad8('0x39')](),'app':_0x3ad8('0x18'),'appdata':_0x3ad8('0x43'),'context':_0x1064f8[_0x3ad8('0x7')],'exten':_0x1064f8['exten'],'priority':_0x344f8f['intervals'][_0x3ad8('0x26')]+_0x477666+_0x242af0++,'VoiceExtensionId':_0x1064f8['id']});_0x21878b[_0x3ad8('0xe')]({'type':_0x344f8f[_0x3ad8('0x4')][_0x3ad8('0x39')](),'app':_0x3ad8('0x5'),'appdata':_0x3ad8('0x44'),'context':_0x1064f8[_0x3ad8('0x7')],'exten':_0x1064f8[_0x3ad8('0xc')],'priority':_0x344f8f[_0x3ad8('0x36')][_0x3ad8('0x26')]+_0x477666+_0x242af0++,'VoiceExtensionId':_0x1064f8['id']});}}}}for(var _0x5c9148=0x0;_0x5c9148<_0x344f8f[_0x3ad8('0x36')][_0x3ad8('0x26')];_0x5c9148++){var _0x21238b=_0x477666+_0x344f8f[_0x3ad8('0x36')][_0x3ad8('0x26')];var _0x160754=_0x5c9148===_0x344f8f[_0x3ad8('0x36')]['length']-0x1?_0x477666+_0x21878b[_0x3ad8('0x26')]+_0x4ee923[_0x3ad8('0x26')]+0x2:_0x477666+_0x5c9148+0x1;_0x21878b[_0x3ad8('0x45')](_0x5c9148,0x0,{'type':_0x1064f8[_0x3ad8('0x4')],'app':_0x3ad8('0x46'),'appdata':_0x344f8f[_0x3ad8('0x36')][_0x5c9148]+'?'+_0x1064f8[_0x3ad8('0x7')]+_0x3ad8('0x47')+_0x21238b+':'+_0x1064f8[_0x3ad8('0x7')]+_0x3ad8('0x47')+_0x160754,'exten':_0x1064f8[_0x3ad8('0xc')],'context':_0x1064f8[_0x3ad8('0x7')],'priority':_0x477666+_0x5c9148,'VoiceExtensionId':_0x1064f8['id']});}if(_0x128483&&_0x344f8f[_0x3ad8('0x41')]===_0x3ad8('0x48'))_0x344f8f[_0x3ad8('0x49')]=_0x2e55ca(_0x344f8f[_0x3ad8('0x49')]);_0x344f8f[_0x3ad8('0x4a')]=_0x21878b['length']?_[_0x3ad8('0x4b')](_0x21878b)[_0x3ad8('0x4a')]+0x1:_0x477666;_0x1efa90=_[_0x3ad8('0x4c')](_0x1efa90,_0x21878b,[_0x344f8f],_0x4ee923);_0x477666=_['last'](_0x1efa90)[_0x3ad8('0x4a')]+0x1;}return _0x34ef02(_0x1efa90);})[_0x3ad8('0x4d')](function(_0x212b9b){_0x1d07e6(_0x212b9b);});});}return _0xd1cf8b[_0x3ad8('0x4e')](_0x3ad8('0x4f'),attributes,{'tableName':'voice_extensions','paranoid':![],'indexes':[],'timestamps':!![],'instanceMethods':{'createRouting':function(_0x25d766,_0x384277){var _0x288487=this;var _0x5bfb3d=_0x288487['type']==='outbound'?_0x2ab309(_0x288487):_0x4b047a(_0x288487);return _0x4d67a8(_0x288487,_0x25d766,_[_0x3ad8('0x4b')](_0x5bfb3d)[_0x3ad8('0x4a')]+0x1,_0x384277)[_0x3ad8('0x50')](function(_0x5637ff){var _0x30e81e=_['concat'](_0x5bfb3d,_0x5637ff);_0x30e81e[_0x3ad8('0xe')]({'type':_0x288487[_0x3ad8('0x4')],'app':'Hangup','exten':_0x288487[_0x3ad8('0xc')],'context':_0x288487[_0x3ad8('0x7')],'priority':_['last'](_0x30e81e)[_0x3ad8('0x4a')]+0x1,'VoiceExtensionId':_0x288487['id']});return _0x30e81e;});}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0845=['code','message','result','catch','GetVoiceExtension','VoiceExtension','findAll','options','where','map','include','model','attributes','lodash','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','redis','localhost','socket.io-emitter','register','request','info','VoiceExtension,\x20%s,\x20%s','request\x20sent','debug','VoiceExtension,\x20%s,\x20%s,\x20%s','stringify','error'];(function(_0x3bf83f,_0x181cac){var _0x22c4a9=function(_0xb3ff0d){while(--_0xb3ff0d){_0x3bf83f['push'](_0x3bf83f['shift']());}};_0x22c4a9(++_0x181cac);}(_0x0845,0x125));var _0x5084=function(_0x24fdfe,_0x21861f){_0x24fdfe=_0x24fdfe-0x0;var _0x4b5610=_0x0845[_0x24fdfe];return _0x4b5610;};'use strict';var _=require(_0x5084('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0x5084('0x1'));var rs=require(_0x5084('0x2'));var fs=require('fs');var Redis=require(_0x5084('0x3'));var db=require(_0x5084('0x4'))['db'];var utils=require(_0x5084('0x5'));var logger=require(_0x5084('0x6'))('rpc');var config=require(_0x5084('0x7'));var jayson=require(_0x5084('0x8'));var client=jayson[_0x5084('0x9')]['http']({'port':0x232a});config['redis']=_['defaults'](config[_0x5084('0xa')],{'host':_0x5084('0xb'),'port':0x18eb});var socket=require(_0x5084('0xc'))(new Redis(config['redis']));require('./voiceExtension.socket')[_0x5084('0xd')](socket);function respondWithRpcPromise(_0x773137,_0x10b6e2,_0x5cdf85){return new BPromise(function(_0x1f5c7b,_0x4260bf){return client[_0x5084('0xe')](_0x773137,_0x5cdf85)['then'](function(_0x4ad743){logger[_0x5084('0xf')](_0x5084('0x10'),_0x10b6e2,_0x5084('0x11'));logger[_0x5084('0x12')](_0x5084('0x13'),_0x10b6e2,_0x5084('0x11'),JSON[_0x5084('0x14')](_0x4ad743));if(_0x4ad743[_0x5084('0x15')]){if(_0x4ad743['error'][_0x5084('0x16')]===0x1f4){logger[_0x5084('0x15')](_0x5084('0x10'),_0x10b6e2,_0x4ad743['error'][_0x5084('0x17')]);return _0x4260bf(_0x4ad743[_0x5084('0x15')][_0x5084('0x17')]);}logger[_0x5084('0x15')]('VoiceExtension,\x20%s,\x20%s',_0x10b6e2,_0x4ad743[_0x5084('0x15')]['message']);return _0x1f5c7b(_0x4ad743[_0x5084('0x15')][_0x5084('0x17')]);}else{logger[_0x5084('0xf')](_0x5084('0x10'),_0x10b6e2,_0x5084('0x11'));_0x1f5c7b(_0x4ad743[_0x5084('0x18')][_0x5084('0x17')]);}})[_0x5084('0x19')](function(_0x13e504){logger[_0x5084('0x15')](_0x5084('0x10'),_0x10b6e2,_0x13e504);_0x4260bf(_0x13e504);});});}exports[_0x5084('0x1a')]=function(_0x2180dc){var _0x76ce60=this;return new Promise(function(_0x146e22,_0x2f1889){return db[_0x5084('0x1b')][_0x5084('0x1c')]({'raw':_0x2180dc[_0x5084('0x1d')]?_0x2180dc[_0x5084('0x1d')]['raw']===undefined?!![]:![]:!![],'where':_0x2180dc[_0x5084('0x1d')]?_0x2180dc[_0x5084('0x1d')][_0x5084('0x1e')]||null:null,'attributes':_0x2180dc['options']?_0x2180dc['options']['attributes']||null:null,'limit':_0x2180dc[_0x5084('0x1d')]?_0x2180dc[_0x5084('0x1d')]['limit']||null:null,'include':_0x2180dc[_0x5084('0x1d')]?_0x2180dc[_0x5084('0x1d')]['include']?_[_0x5084('0x1f')](_0x2180dc[_0x5084('0x1d')][_0x5084('0x20')],function(_0x2d01e1){return{'model':db[_0x2d01e1[_0x5084('0x21')]],'as':_0x2d01e1['as'],'attributes':_0x2d01e1[_0x5084('0x22')],'include':_0x2d01e1['include']?_[_0x5084('0x1f')](_0x2d01e1[_0x5084('0x20')],function(_0x5b8ead){return{'model':db[_0x5b8ead[_0x5084('0x21')]],'as':_0x5b8ead['as'],'attributes':_0x5b8ead[_0x5084('0x22')],'include':_0x5b8ead['include']?_['map'](_0x5b8ead['include'],function(_0xca5b2d){return{'model':db[_0xca5b2d[_0x5084('0x21')]],'as':_0xca5b2d['as'],'attributes':_0xca5b2d[_0x5084('0x22')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x14d6f8){logger['info'](_0x5084('0x1a'),_0x2180dc);logger[_0x5084('0x12')](_0x5084('0x1a'),_0x2180dc,JSON[_0x5084('0x14')](_0x14d6f8));_0x146e22(_0x14d6f8);})[_0x5084('0x19')](function(_0x292a54){logger[_0x5084('0x15')](_0x5084('0x1a'),_0x292a54[_0x5084('0x17')],_0x2180dc);_0x2f1889(_0x76ce60[_0x5084('0x15')](0x1f4,_0x292a54[_0x5084('0x17')]));});});};
\ No newline at end of file
+var _0xd6bb=['findAll','options','raw','where','attributes','limit','include','map','model','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','client','http','redis','defaults','localhost','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'];(function(_0xc64fae,_0x5cca85){var _0x1b3b54=function(_0x43de41){while(--_0x43de41){_0xc64fae['push'](_0xc64fae['shift']());}};_0x1b3b54(++_0x5cca85);}(_0xd6bb,0x1cc));var _0xbd6b=function(_0xea8947,_0x1b573d){_0xea8947=_0xea8947-0x0;var _0x2455e9=_0xd6bb[_0xea8947];return _0x2455e9;};'use strict';var _=require(_0xbd6b('0x0'));var util=require('util');var moment=require(_0xbd6b('0x1'));var BPromise=require(_0xbd6b('0x2'));var rs=require(_0xbd6b('0x3'));var fs=require('fs');var Redis=require(_0xbd6b('0x4'));var db=require(_0xbd6b('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0xbd6b('0x6'))(_0xbd6b('0x7'));var config=require(_0xbd6b('0x8'));var jayson=require('jayson/promise');var client=jayson[_0xbd6b('0x9')][_0xbd6b('0xa')]({'port':0x232a});config[_0xbd6b('0xb')]=_[_0xbd6b('0xc')](config[_0xbd6b('0xb')],{'host':_0xbd6b('0xd'),'port':0x18eb});var socket=require(_0xbd6b('0xe'))(new Redis(config[_0xbd6b('0xb')]));require(_0xbd6b('0xf'))[_0xbd6b('0x10')](socket);function respondWithRpcPromise(_0x66952a,_0x5a810b,_0x3c24e5){return new BPromise(function(_0x42c30e,_0x47c02d){return client[_0xbd6b('0x11')](_0x66952a,_0x3c24e5)[_0xbd6b('0x12')](function(_0x531a2a){logger[_0xbd6b('0x13')](_0xbd6b('0x14'),_0x5a810b,_0xbd6b('0x15'));logger[_0xbd6b('0x16')](_0xbd6b('0x17'),_0x5a810b,'request\x20sent',JSON[_0xbd6b('0x18')](_0x531a2a));if(_0x531a2a[_0xbd6b('0x19')]){if(_0x531a2a[_0xbd6b('0x19')][_0xbd6b('0x1a')]===0x1f4){logger['error']('VoiceExtension,\x20%s,\x20%s',_0x5a810b,_0x531a2a[_0xbd6b('0x19')][_0xbd6b('0x1b')]);return _0x47c02d(_0x531a2a[_0xbd6b('0x19')][_0xbd6b('0x1b')]);}logger[_0xbd6b('0x19')](_0xbd6b('0x14'),_0x5a810b,_0x531a2a['error'][_0xbd6b('0x1b')]);return _0x42c30e(_0x531a2a['error']['message']);}else{logger['info'](_0xbd6b('0x14'),_0x5a810b,_0xbd6b('0x15'));_0x42c30e(_0x531a2a[_0xbd6b('0x1c')]['message']);}})[_0xbd6b('0x1d')](function(_0x27ff92){logger['error'](_0xbd6b('0x14'),_0x5a810b,_0x27ff92);_0x47c02d(_0x27ff92);});});}exports[_0xbd6b('0x1e')]=function(_0x2f0982){var _0x2cb7ab=this;return new Promise(function(_0x1dc24e,_0x59aa3f){return db[_0xbd6b('0x1f')][_0xbd6b('0x20')]({'raw':_0x2f0982[_0xbd6b('0x21')]?_0x2f0982[_0xbd6b('0x21')][_0xbd6b('0x22')]===undefined?!![]:![]:!![],'where':_0x2f0982[_0xbd6b('0x21')]?_0x2f0982['options'][_0xbd6b('0x23')]||null:null,'attributes':_0x2f0982['options']?_0x2f0982[_0xbd6b('0x21')][_0xbd6b('0x24')]||null:null,'limit':_0x2f0982[_0xbd6b('0x21')]?_0x2f0982['options'][_0xbd6b('0x25')]||null:null,'include':_0x2f0982['options']?_0x2f0982[_0xbd6b('0x21')][_0xbd6b('0x26')]?_[_0xbd6b('0x27')](_0x2f0982[_0xbd6b('0x21')][_0xbd6b('0x26')],function(_0x450a6e){return{'model':db[_0x450a6e[_0xbd6b('0x28')]],'as':_0x450a6e['as'],'attributes':_0x450a6e[_0xbd6b('0x24')],'include':_0x450a6e[_0xbd6b('0x26')]?_[_0xbd6b('0x27')](_0x450a6e[_0xbd6b('0x26')],function(_0x61c2ed){return{'model':db[_0x61c2ed[_0xbd6b('0x28')]],'as':_0x61c2ed['as'],'attributes':_0x61c2ed[_0xbd6b('0x24')],'include':_0x61c2ed['include']?_[_0xbd6b('0x27')](_0x61c2ed[_0xbd6b('0x26')],function(_0x391b59){return{'model':db[_0x391b59['model']],'as':_0x391b59['as'],'attributes':_0x391b59[_0xbd6b('0x24')]};}):[]};}):[]};}):[]:[]})[_0xbd6b('0x12')](function(_0x890fd0){logger['info'](_0xbd6b('0x1e'),_0x2f0982);logger[_0xbd6b('0x16')](_0xbd6b('0x1e'),_0x2f0982,JSON[_0xbd6b('0x18')](_0x890fd0));_0x1dc24e(_0x890fd0);})[_0xbd6b('0x1d')](function(_0x2a3b2f){logger[_0xbd6b('0x19')](_0xbd6b('0x1e'),_0x2a3b2f[_0xbd6b('0x1b')],_0x2f0982);_0x59aa3f(_0x2cb7ab[_0xbd6b('0x19')](0x1f4,_0x2a3b2f[_0xbd6b('0x1b')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x53ec=['length','voiceExtension:','./voiceExtension.events','save','remove','update','emit','removeListener'];(function(_0x12f379,_0x44d629){var _0x1f9014=function(_0x293aaf){while(--_0x293aaf){_0x12f379['push'](_0x12f379['shift']());}};_0x1f9014(++_0x44d629);}(_0x53ec,0x192));var _0xc53e=function(_0x7f6e9,_0x2cf772){_0x7f6e9=_0x7f6e9-0x0;var _0x5a3124=_0x53ec[_0x7f6e9];return _0x5a3124;};'use strict';var VoiceExtensionEvents=require(_0xc53e('0x0'));var events=[_0xc53e('0x1'),_0xc53e('0x2'),_0xc53e('0x3')];function createListener(_0x1b04cc,_0xe45c6d){return function(_0x51c435){_0xe45c6d[_0xc53e('0x4')](_0x1b04cc,_0x51c435);};}function removeListener(_0x4e954a,_0x2b90f6){return function(){VoiceExtensionEvents[_0xc53e('0x5')](_0x4e954a,_0x2b90f6);};}exports['register']=function(_0x2f1414){for(var _0x4f989b=0x0,_0x41a9e8=events[_0xc53e('0x6')];_0x4f989b<_0x41a9e8;_0x4f989b++){var _0x5d3b28=events[_0x4f989b];var _0x1616ac=createListener(_0xc53e('0x7')+_0x5d3b28,_0x2f1414);VoiceExtensionEvents['on'](_0x5d3b28,_0x1616ac);}};
\ No newline at end of file
+var _0x7fbe=['length','voiceExtension:','remove','update','emit','removeListener','register'];(function(_0x98f9be,_0x11fe92){var _0x59a1a2=function(_0x4c1c43){while(--_0x4c1c43){_0x98f9be['push'](_0x98f9be['shift']());}};_0x59a1a2(++_0x11fe92);}(_0x7fbe,0x1ec));var _0xe7fb=function(_0x1cf1c6,_0x378916){_0x1cf1c6=_0x1cf1c6-0x0;var _0x2e08af=_0x7fbe[_0x1cf1c6];return _0x2e08af;};'use strict';var VoiceExtensionEvents=require('./voiceExtension.events');var events=['save',_0xe7fb('0x0'),_0xe7fb('0x1')];function createListener(_0x294c21,_0x1703d5){return function(_0x517d3a){_0x1703d5[_0xe7fb('0x2')](_0x294c21,_0x517d3a);};}function removeListener(_0x11d2c4,_0x4524ff){return function(){VoiceExtensionEvents[_0xe7fb('0x3')](_0x11d2c4,_0x4524ff);};}exports[_0xe7fb('0x4')]=function(_0x290172){for(var _0x12d1b0=0x0,_0x24cd67=events[_0xe7fb('0x5')];_0x12d1b0<_0x24cd67;_0x12d1b0++){var _0x5ad75b=events[_0x12d1b0];var _0x213ebc=createListener(_0xe7fb('0x6')+_0x5ad75b,_0x290172);VoiceExtensionEvents['on'](_0x5ad75b,_0x213ebc);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0a6b=['fs-extra','../../components/auth/service','../../components/interaction/service','./voiceMail.controller','isAuthenticated','index','/:id','show','getMessages','post','create','delete','destroy','exports','multer','express'];(function(_0x30e626,_0x1523aa){var _0x4c5823=function(_0x2b9ac3){while(--_0x2b9ac3){_0x30e626['push'](_0x30e626['shift']());}};_0x4c5823(++_0x1523aa);}(_0x0a6b,0x18e));var _0xb0a6=function(_0x11b33b,_0x1b41cd){_0x11b33b=_0x11b33b-0x0;var _0x2a4cf6=_0x0a6b[_0x11b33b];return _0x2a4cf6;};'use strict';var multer=require(_0xb0a6('0x0'));var util=require('util');var path=require('path');var timeout=require('connect-timeout');var express=require(_0xb0a6('0x1'));var router=express['Router']();var fs_extra=require(_0xb0a6('0x2'));var auth=require(_0xb0a6('0x3'));var interaction=require(_0xb0a6('0x4'));var config=require('../../config/environment');var controller=require(_0xb0a6('0x5'));router['get']('/',auth[_0xb0a6('0x6')](),controller[_0xb0a6('0x7')]);router['get'](_0xb0a6('0x8'),auth[_0xb0a6('0x6')](),controller[_0xb0a6('0x9')]);router['get']('/:id/messages',auth['isAuthenticated'](),controller[_0xb0a6('0xa')]);router[_0xb0a6('0xb')]('/',auth[_0xb0a6('0x6')](),controller[_0xb0a6('0xc')]);router['put'](_0xb0a6('0x8'),auth[_0xb0a6('0x6')](),controller['update']);router[_0xb0a6('0xd')](_0xb0a6('0x8'),auth[_0xb0a6('0x6')](),controller[_0xb0a6('0xe')]);module[_0xb0a6('0xf')]=router;
\ No newline at end of file
+var _0x9fd4=['post','create','put','/:id','update','destroy','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','get','isAuthenticated','index','show','/:id/messages'];(function(_0x2dafbe,_0x5d04de){var _0x58a45a=function(_0x50ac96){while(--_0x50ac96){_0x2dafbe['push'](_0x2dafbe['shift']());}};_0x58a45a(++_0x5d04de);}(_0x9fd4,0x16c));var _0x49fd=function(_0x473d1e,_0x4df799){_0x473d1e=_0x473d1e-0x0;var _0x503be9=_0x9fd4[_0x473d1e];return _0x503be9;};'use strict';var multer=require(_0x49fd('0x0'));var util=require(_0x49fd('0x1'));var path=require(_0x49fd('0x2'));var timeout=require(_0x49fd('0x3'));var express=require(_0x49fd('0x4'));var router=express[_0x49fd('0x5')]();var fs_extra=require(_0x49fd('0x6'));var auth=require(_0x49fd('0x7'));var interaction=require(_0x49fd('0x8'));var config=require('../../config/environment');var controller=require('./voiceMail.controller');router[_0x49fd('0x9')]('/',auth[_0x49fd('0xa')](),controller[_0x49fd('0xb')]);router[_0x49fd('0x9')]('/:id',auth[_0x49fd('0xa')](),controller[_0x49fd('0xc')]);router[_0x49fd('0x9')](_0x49fd('0xd'),auth[_0x49fd('0xa')](),controller['getMessages']);router[_0x49fd('0xe')]('/',auth[_0x49fd('0xa')](),controller[_0x49fd('0xf')]);router[_0x49fd('0x10')](_0x49fd('0x11'),auth[_0x49fd('0xa')](),controller[_0x49fd('0x12')]);router['delete'](_0x49fd('0x11'),auth[_0x49fd('0xa')](),controller[_0x49fd('0x13')]);module[_0x49fd('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd959=['setDataValue','string','trim','central','ENUM','yes','TINYINT(4)','TIMESTAMP','INTEGER','VIRTUAL','getDataValue','fullname','\x20-\x20','mailbox','sequelize','STRING','from-voicemail','contest_mailbox'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xd959,0x11c));var _0x9d95=function(_0x4b478a,_0x495831){_0x4b478a=_0x4b478a-0x0;var _0x327ca2=_0xd959[_0x4b478a];return _0x327ca2;};'use strict';var Sequelize=require(_0x9d95('0x0'));module['exports']={'customer_id':{'type':Sequelize[_0x9d95('0x1')]},'context':{'type':Sequelize['STRING'],'defaultValue':_0x9d95('0x2'),'unique':_0x9d95('0x3')},'mailbox':{'type':Sequelize[_0x9d95('0x1')],'defaultValue':'','allowNull':![],'unique':_0x9d95('0x3')},'password':{'type':Sequelize[_0x9d95('0x1')]},'fullname':{'type':Sequelize[_0x9d95('0x1')]},'email':{'type':Sequelize[_0x9d95('0x1')],'validate':{'isEmail':!![]},'set':function(_0x5e8a38){this[_0x9d95('0x4')]('email',typeof _0x5e8a38===_0x9d95('0x5')&&_0x5e8a38[_0x9d95('0x6')]()?_0x5e8a38[_0x9d95('0x6')]():null);}},'pager':{'type':Sequelize['STRING']},'tz':{'type':Sequelize[_0x9d95('0x1')],'defaultValue':_0x9d95('0x7')},'attach':{'type':Sequelize[_0x9d95('0x8')]('yes','no'),'defaultValue':_0x9d95('0x9'),'allowNull':![]},'saycid':{'type':Sequelize[_0x9d95('0x8')](_0x9d95('0x9'),'no'),'defaultValue':'yes','allowNull':![]},'dialout':{'type':Sequelize[_0x9d95('0x1')]},'callback':{'type':Sequelize[_0x9d95('0x1')]},'review':{'type':Sequelize[_0x9d95('0x8')]('yes','no'),'defaultValue':'no','allowNull':![]},'operator':{'type':Sequelize['ENUM'](_0x9d95('0x9'),'no'),'defaultValue':'no','allowNull':![]},'envelope':{'type':Sequelize[_0x9d95('0x8')]('yes','no'),'defaultValue':'no','allowNull':![]},'sayduration':{'type':Sequelize[_0x9d95('0x8')](_0x9d95('0x9'),'no'),'defaultValue':'no','allowNull':![]},'saydurationm':{'type':_0x9d95('0xa'),'defaultValue':0x1,'allowNull':![]},'sendvoicemail':{'type':Sequelize[_0x9d95('0x8')]('yes','no'),'defaultValue':'no','allowNull':![]},'delete':{'type':Sequelize[_0x9d95('0x8')](_0x9d95('0x9'),'no'),'defaultValue':'no','allowNull':![]},'nextaftercmd':{'type':Sequelize[_0x9d95('0x8')](_0x9d95('0x9'),'no'),'defaultValue':_0x9d95('0x9'),'allowNull':![]},'forcename':{'type':Sequelize['ENUM']('yes','no'),'defaultValue':'no','allowNull':![]},'forcegreetings':{'type':Sequelize[_0x9d95('0x8')](_0x9d95('0x9'),'no'),'defaultValue':'no','allowNull':![]},'hidefromdir':{'type':Sequelize[_0x9d95('0x8')]('yes','no'),'defaultValue':_0x9d95('0x9'),'allowNull':![]},'stamp':{'type':_0x9d95('0xb')},'emailsubject':{'type':Sequelize['STRING']},'emailbody':{'type':Sequelize[_0x9d95('0x1')]},'maxsecs':{'type':Sequelize[_0x9d95('0xc')](0xff),'defaultValue':0xb4,'allowNull':![]},'maxmsg':{'type':Sequelize[_0x9d95('0xc')](0xff),'defaultValue':0x64,'allowNull':![]},'name':{'type':Sequelize[_0x9d95('0xd')],'get':function(){return this[_0x9d95('0xe')](_0x9d95('0xf'))+_0x9d95('0x10')+this['getDataValue'](_0x9d95('0x11'));}}};
\ No newline at end of file
+var _0x5c97=['ENUM','TINYINT(4)','TIMESTAMP','INTEGER','getDataValue','fullname','\x20-\x20','mailbox','exports','STRING','from-voicemail','contest_mailbox','setDataValue','email','string','trim','yes'];(function(_0x5c9f9c,_0x2193ed){var _0x20350a=function(_0x4b7419){while(--_0x4b7419){_0x5c9f9c['push'](_0x5c9f9c['shift']());}};_0x20350a(++_0x2193ed);}(_0x5c97,0x1b1));var _0x75c9=function(_0x47c2f9,_0x4d8900){_0x47c2f9=_0x47c2f9-0x0;var _0x35096f=_0x5c97[_0x47c2f9];return _0x35096f;};'use strict';var Sequelize=require('sequelize');module[_0x75c9('0x0')]={'customer_id':{'type':Sequelize[_0x75c9('0x1')]},'context':{'type':Sequelize[_0x75c9('0x1')],'defaultValue':_0x75c9('0x2'),'unique':_0x75c9('0x3')},'mailbox':{'type':Sequelize[_0x75c9('0x1')],'defaultValue':'','allowNull':![],'unique':_0x75c9('0x3')},'password':{'type':Sequelize[_0x75c9('0x1')]},'fullname':{'type':Sequelize['STRING']},'email':{'type':Sequelize[_0x75c9('0x1')],'validate':{'isEmail':!![]},'set':function(_0x43dbed){this[_0x75c9('0x4')](_0x75c9('0x5'),typeof _0x43dbed===_0x75c9('0x6')&&_0x43dbed[_0x75c9('0x7')]()?_0x43dbed[_0x75c9('0x7')]():null);}},'pager':{'type':Sequelize['STRING']},'tz':{'type':Sequelize[_0x75c9('0x1')],'defaultValue':'central'},'attach':{'type':Sequelize['ENUM'](_0x75c9('0x8'),'no'),'defaultValue':'yes','allowNull':![]},'saycid':{'type':Sequelize[_0x75c9('0x9')]('yes','no'),'defaultValue':_0x75c9('0x8'),'allowNull':![]},'dialout':{'type':Sequelize[_0x75c9('0x1')]},'callback':{'type':Sequelize[_0x75c9('0x1')]},'review':{'type':Sequelize[_0x75c9('0x9')](_0x75c9('0x8'),'no'),'defaultValue':'no','allowNull':![]},'operator':{'type':Sequelize[_0x75c9('0x9')]('yes','no'),'defaultValue':'no','allowNull':![]},'envelope':{'type':Sequelize[_0x75c9('0x9')](_0x75c9('0x8'),'no'),'defaultValue':'no','allowNull':![]},'sayduration':{'type':Sequelize[_0x75c9('0x9')](_0x75c9('0x8'),'no'),'defaultValue':'no','allowNull':![]},'saydurationm':{'type':_0x75c9('0xa'),'defaultValue':0x1,'allowNull':![]},'sendvoicemail':{'type':Sequelize[_0x75c9('0x9')]('yes','no'),'defaultValue':'no','allowNull':![]},'delete':{'type':Sequelize['ENUM']('yes','no'),'defaultValue':'no','allowNull':![]},'nextaftercmd':{'type':Sequelize['ENUM'](_0x75c9('0x8'),'no'),'defaultValue':_0x75c9('0x8'),'allowNull':![]},'forcename':{'type':Sequelize[_0x75c9('0x9')](_0x75c9('0x8'),'no'),'defaultValue':'no','allowNull':![]},'forcegreetings':{'type':Sequelize[_0x75c9('0x9')](_0x75c9('0x8'),'no'),'defaultValue':'no','allowNull':![]},'hidefromdir':{'type':Sequelize[_0x75c9('0x9')](_0x75c9('0x8'),'no'),'defaultValue':'yes','allowNull':![]},'stamp':{'type':_0x75c9('0xb')},'emailsubject':{'type':Sequelize[_0x75c9('0x1')]},'emailbody':{'type':Sequelize[_0x75c9('0x1')]},'maxsecs':{'type':Sequelize[_0x75c9('0xc')](0xff),'defaultValue':0xb4,'allowNull':![]},'maxmsg':{'type':Sequelize[_0x75c9('0xc')](0xff),'defaultValue':0x64,'allowNull':![]},'name':{'type':Sequelize['VIRTUAL'],'get':function(){return this[_0x75c9('0xd')](_0x75c9('0xe'))+_0x75c9('0xf')+this[_0x75c9('0xd')](_0x75c9('0x10'));}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6324=['then','destroy','get','Voicemails','UserProfileResource','error','stack','name','send','map','VoiceMail','fieldName','type','keys','query','filters','intersection','model','attributes','nolimit','order','where','filter','merge','VIRTUAL','options','include','findAll','catch','show','params','fields','length','includeAll','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','getMessages','findOne','rawAttributes','hasOwnProperty','pick','mailbox','VoiceMailMessage','findAndCountAll','eml-format','rimraf','zip-dir','fast-json-patch','moment','mustache','path','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','../../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','set','Content-Range','apply','reject','save','update'];(function(_0x236c89,_0xd76ba9){var _0x3b2a15=function(_0x89e4f9){while(--_0x89e4f9){_0x236c89['push'](_0x236c89['shift']());}};_0x3b2a15(++_0xd76ba9);}(_0x6324,0x142));var _0x4632=function(_0x343dab,_0x134185){_0x343dab=_0x343dab-0x0;var _0xa7e52d=_0x6324[_0x343dab];return _0xa7e52d;};'use strict';var emlformat=require(_0x4632('0x0'));var rimraf=require(_0x4632('0x1'));var zipdir=require(_0x4632('0x2'));var jsonpatch=require(_0x4632('0x3'));var rp=require('request-promise');var moment=require(_0x4632('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x4632('0x5'));var util=require('util');var path=require(_0x4632('0x6'));var sox=require('sox');var csv=require(_0x4632('0x7'));var ejs=require(_0x4632('0x8'));var fs=require('fs');var fs_extra=require(_0x4632('0x9'));var _=require(_0x4632('0xa'));var squel=require('squel');var crypto=require(_0x4632('0xb'));var jsforce=require(_0x4632('0xc'));var deskjs=require(_0x4632('0xd'));var toCsv=require('to-csv');var querystring=require(_0x4632('0xe'));var Papa=require(_0x4632('0xf'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x4632('0x10'));var as=require(_0x4632('0x11'));var hardwareService=require(_0x4632('0x12'));var logger=require(_0x4632('0x13'))(_0x4632('0x14'));var utils=require(_0x4632('0x15'));var config=require(_0x4632('0x16'));var licenseUtil=require(_0x4632('0x17'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x2b3f0f,_0x499d88){_0x499d88=_0x499d88||0xcc;return function(_0x4719f7){if(_0x4719f7){return _0x2b3f0f[_0x4632('0x18')](_0x499d88);}return _0x2b3f0f[_0x4632('0x19')](_0x499d88)[_0x4632('0x1a')]();};}function respondWithResult(_0x51ee37,_0x3ba361){_0x3ba361=_0x3ba361||0xc8;return function(_0x255882){if(_0x255882){return _0x51ee37[_0x4632('0x19')](_0x3ba361)[_0x4632('0x1b')](_0x255882);}};}function respondWithFilteredResult(_0x1c1be0,_0x5438ab){return function(_0x47b349){if(_0x47b349){var _0x2fd7ae=typeof _0x5438ab[_0x4632('0x1c')]===_0x4632('0x1d')&&typeof _0x5438ab[_0x4632('0x1e')]==='undefined';var _0x158831=_0x47b349[_0x4632('0x1f')];var _0x1a94c0=_0x2fd7ae?0x0:_0x5438ab['offset'];var _0x3cddfa=_0x2fd7ae?_0x47b349[_0x4632('0x1f')]:_0x5438ab['offset']+_0x5438ab['limit'];var _0x1c0523;if(_0x3cddfa>=_0x158831){_0x3cddfa=_0x158831;_0x1c0523=0xc8;}else{_0x1c0523=0xce;}_0x1c1be0[_0x4632('0x19')](_0x1c0523);return _0x1c1be0[_0x4632('0x20')](_0x4632('0x21'),_0x1a94c0+'-'+_0x3cddfa+'/'+_0x158831)[_0x4632('0x1b')](_0x47b349);}return null;};}function patchUpdates(_0x3d2d23){return function(_0x9ab826){try{jsonpatch[_0x4632('0x22')](_0x9ab826,_0x3d2d23,!![]);}catch(_0x29f875){return BPromise[_0x4632('0x23')](_0x29f875);}return _0x9ab826[_0x4632('0x24')]();};}function saveUpdates(_0x2d656a,_0x2ca6a5){return function(_0x263907){if(_0x263907){return _0x263907[_0x4632('0x25')](_0x2d656a)[_0x4632('0x26')](function(_0x4264d5){return _0x4264d5;});}return null;};}function removeEntity(_0x3537ed,_0x380a9f){return function(_0x1e1b86){if(_0x1e1b86){return _0x1e1b86[_0x4632('0x27')]()[_0x4632('0x26')](function(){var _0x3b0823=_0x1e1b86[_0x4632('0x28')]({'plain':!![]});var _0xb074d=_0x4632('0x29');return db[_0x4632('0x2a')][_0x4632('0x27')]({'where':{'type':_0xb074d,'resourceId':_0x3b0823['id']}})[_0x4632('0x26')](function(){return _0x1e1b86;});})[_0x4632('0x26')](function(){_0x3537ed[_0x4632('0x19')](0xcc)[_0x4632('0x1a')]();});}};}function handleEntityNotFound(_0x438354,_0x4d9098){return function(_0x57798a){if(!_0x57798a){_0x438354[_0x4632('0x18')](0x194);}return _0x57798a;};}function handleError(_0x244743,_0x2f6656){_0x2f6656=_0x2f6656||0x1f4;return function(_0x35a533){logger[_0x4632('0x2b')](_0x35a533[_0x4632('0x2c')]);if(_0x35a533[_0x4632('0x2d')]){delete _0x35a533['name'];}_0x244743[_0x4632('0x19')](_0x2f6656)[_0x4632('0x2e')](_0x35a533);};}exports['index']=function(_0x216119,_0x5316f7){var _0x6599ad={},_0x4cb661={},_0x4fda35={'count':0x0,'rows':[]};var _0x1973eb=_[_0x4632('0x2f')](db[_0x4632('0x30')]['rawAttributes'],function(_0x5ed4d6){return{'name':_0x5ed4d6[_0x4632('0x31')],'type':_0x5ed4d6[_0x4632('0x32')]['key']};});_0x4cb661['model']=_[_0x4632('0x2f')](_0x1973eb,_0x4632('0x2d'));_0x4cb661['query']=_[_0x4632('0x33')](_0x216119[_0x4632('0x34')]);_0x4cb661[_0x4632('0x35')]=_[_0x4632('0x36')](_0x4cb661[_0x4632('0x37')],_0x4cb661['query']);_0x6599ad[_0x4632('0x38')]=_[_0x4632('0x36')](_0x4cb661['model'],qs['fields'](_0x216119[_0x4632('0x34')]['fields']));_0x6599ad['attributes']=_0x6599ad[_0x4632('0x38')]['length']?_0x6599ad[_0x4632('0x38')]:_0x4cb661[_0x4632('0x37')];if(!_0x216119[_0x4632('0x34')]['hasOwnProperty'](_0x4632('0x39'))){_0x6599ad[_0x4632('0x1e')]=qs[_0x4632('0x1e')](_0x216119[_0x4632('0x34')][_0x4632('0x1e')]);_0x6599ad['offset']=qs['offset'](_0x216119[_0x4632('0x34')][_0x4632('0x1c')]);}_0x6599ad[_0x4632('0x3a')]=qs['sort'](_0x216119['query']['sort']);_0x6599ad[_0x4632('0x3b')]=qs[_0x4632('0x35')](_['pick'](_0x216119[_0x4632('0x34')],_0x4cb661[_0x4632('0x35')]),_0x1973eb);if(_0x216119[_0x4632('0x34')][_0x4632('0x3c')]){_0x6599ad[_0x4632('0x3b')]=_[_0x4632('0x3d')](_0x6599ad[_0x4632('0x3b')],{'$or':_[_0x4632('0x2f')](_0x1973eb,function(_0x21c6a5){if(_0x21c6a5[_0x4632('0x32')]!==_0x4632('0x3e')){var _0x3b6258={};_0x3b6258[_0x21c6a5['name']]={'$like':'%'+_0x216119[_0x4632('0x34')][_0x4632('0x3c')]+'%'};return _0x3b6258;}})});}_0x6599ad=_['merge']({},_0x6599ad,_0x216119[_0x4632('0x3f')]);var _0x1c39bc={'where':_0x6599ad['where']};return db[_0x4632('0x30')]['count'](_0x1c39bc)[_0x4632('0x26')](function(_0x28df3b){_0x4fda35[_0x4632('0x1f')]=_0x28df3b;if(_0x216119[_0x4632('0x34')]['includeAll']){_0x6599ad[_0x4632('0x40')]=[{'all':!![]}];}return db[_0x4632('0x30')][_0x4632('0x41')](_0x6599ad);})[_0x4632('0x26')](function(_0x5cc716){_0x4fda35['rows']=_0x5cc716;return _0x4fda35;})[_0x4632('0x26')](respondWithFilteredResult(_0x5316f7,_0x6599ad))[_0x4632('0x42')](handleError(_0x5316f7,null));};exports[_0x4632('0x43')]=function(_0x512db1,_0x330f21){var _0x1467c8={'raw':!![],'where':{'id':_0x512db1[_0x4632('0x44')]['id']}},_0x66598d={};_0x66598d[_0x4632('0x37')]=_[_0x4632('0x33')](db[_0x4632('0x30')]['rawAttributes']);_0x66598d[_0x4632('0x34')]=_[_0x4632('0x33')](_0x512db1[_0x4632('0x34')]);_0x66598d[_0x4632('0x35')]=_[_0x4632('0x36')](_0x66598d['model'],_0x66598d['query']);_0x1467c8[_0x4632('0x38')]=_[_0x4632('0x36')](_0x66598d[_0x4632('0x37')],qs[_0x4632('0x45')](_0x512db1['query'][_0x4632('0x45')]));_0x1467c8[_0x4632('0x38')]=_0x1467c8[_0x4632('0x38')][_0x4632('0x46')]?_0x1467c8[_0x4632('0x38')]:_0x66598d['model'];if(_0x512db1[_0x4632('0x34')][_0x4632('0x47')]){_0x1467c8[_0x4632('0x40')]=[{'all':!![]}];}_0x1467c8=_[_0x4632('0x3d')]({},_0x1467c8,_0x512db1[_0x4632('0x3f')]);return db[_0x4632('0x30')][_0x4632('0x48')](_0x1467c8)[_0x4632('0x26')](handleEntityNotFound(_0x330f21,null))[_0x4632('0x26')](respondWithResult(_0x330f21,null))[_0x4632('0x42')](handleError(_0x330f21,null));};exports[_0x4632('0x49')]=function(_0x517584,_0xc3ffd0){return db[_0x4632('0x30')][_0x4632('0x49')](_0x517584['body'],{})[_0x4632('0x26')](function(_0x5f4fb5){var _0x1309aa=_0x517584[_0x4632('0x4a')][_0x4632('0x28')]({'plain':!![]});if(!_0x1309aa)throw new Error(_0x4632('0x4b'));if(_0x1309aa[_0x4632('0x4c')]===_0x4632('0x4a')){var _0x1f43b6=_0x5f4fb5[_0x4632('0x28')]({'plain':!![]});var _0x4e89e3=_0x4632('0x29');return db[_0x4632('0x4d')]['find']({'where':{'name':_0x4e89e3,'userProfileId':_0x1309aa[_0x4632('0x4e')]},'raw':!![]})[_0x4632('0x26')](function(_0x18cc47){if(_0x18cc47&&_0x18cc47[_0x4632('0x4f')]===0x0){return db[_0x4632('0x2a')][_0x4632('0x49')]({'name':_0x1f43b6[_0x4632('0x2d')],'resourceId':_0x1f43b6['id'],'type':_0x18cc47[_0x4632('0x2d')],'sectionId':_0x18cc47['id']},{})[_0x4632('0x26')](function(){return _0x5f4fb5;});}else{return _0x5f4fb5;}})[_0x4632('0x42')](function(_0x3e66d8){logger[_0x4632('0x2b')](_0x4632('0x50'),_0x3e66d8);throw _0x3e66d8;});}return _0x5f4fb5;})[_0x4632('0x26')](respondWithResult(_0xc3ffd0,0xc9))[_0x4632('0x42')](handleError(_0xc3ffd0,null));};exports[_0x4632('0x25')]=function(_0x32cd35,_0x6c2864){if(_0x32cd35[_0x4632('0x51')]['id']){delete _0x32cd35[_0x4632('0x51')]['id'];}return db['VoiceMail'][_0x4632('0x48')]({'where':{'id':_0x32cd35[_0x4632('0x44')]['id']}})[_0x4632('0x26')](handleEntityNotFound(_0x6c2864,null))[_0x4632('0x26')](saveUpdates(_0x32cd35[_0x4632('0x51')],null))[_0x4632('0x26')](respondWithResult(_0x6c2864,null))['catch'](handleError(_0x6c2864,null));};exports[_0x4632('0x27')]=function(_0x433fea,_0x41409d){return db['VoiceMail'][_0x4632('0x48')]({'where':{'id':_0x433fea[_0x4632('0x44')]['id']}})['then'](handleEntityNotFound(_0x41409d,null))[_0x4632('0x26')](removeEntity(_0x41409d,null))[_0x4632('0x42')](handleError(_0x41409d,null));};exports[_0x4632('0x52')]=function(_0x4b91cf,_0x3aeefd,_0x334a8e){return db[_0x4632('0x30')][_0x4632('0x53')]({'where':{'id':_0x4b91cf[_0x4632('0x44')]['id']}})[_0x4632('0x26')](handleEntityNotFound(_0x3aeefd,null))[_0x4632('0x26')](function(_0x4658de){var _0x2965df;var _0x3abcbf={},_0x58d39a={};_0x58d39a[_0x4632('0x37')]=_[_0x4632('0x33')](db['VoiceMailMessage'][_0x4632('0x54')]);_0x58d39a['query']=_['keys'](_0x4b91cf[_0x4632('0x34')]);_0x58d39a[_0x4632('0x35')]=_[_0x4632('0x36')](_0x58d39a[_0x4632('0x37')],_0x58d39a[_0x4632('0x34')]);_0x3abcbf[_0x4632('0x38')]=_[_0x4632('0x36')](_0x58d39a[_0x4632('0x37')],qs[_0x4632('0x45')](_0x4b91cf[_0x4632('0x34')][_0x4632('0x45')]));_0x3abcbf[_0x4632('0x38')]=_0x3abcbf[_0x4632('0x38')][_0x4632('0x46')]?_0x3abcbf['attributes']:_0x58d39a['model'];if(!_0x4b91cf[_0x4632('0x34')][_0x4632('0x55')](_0x4632('0x39'))){_0x3abcbf[_0x4632('0x1e')]=qs[_0x4632('0x1e')](_0x4b91cf[_0x4632('0x34')]['limit']);_0x3abcbf[_0x4632('0x1c')]=qs[_0x4632('0x1c')](_0x4b91cf[_0x4632('0x34')][_0x4632('0x1c')]);}_0x3abcbf['order']=qs['sort'](_0x4b91cf[_0x4632('0x34')]['sort']);_0x3abcbf[_0x4632('0x3b')]=qs[_0x4632('0x35')](_[_0x4632('0x56')](_0x4b91cf[_0x4632('0x34')],_0x58d39a[_0x4632('0x35')]));if(_0x4b91cf['query'][_0x4632('0x3c')]){_0x3abcbf[_0x4632('0x3b')]=_['merge'](_0x3abcbf['where'],{'$or':_[_0x4632('0x2f')](_0x3abcbf[_0x4632('0x38')],function(_0x47391f){var _0x3090d6={};_0x3090d6[_0x47391f]={'$like':'%'+_0x4b91cf['query']['filter']+'%'};return _0x3090d6;})});}_0x3abcbf['where']=_[_0x4632('0x3d')](_0x3abcbf['where'],{'mailboxuser':_0x4658de[_0x4632('0x57')]});_0x3abcbf=_[_0x4632('0x3d')]({},_0x3abcbf,_0x4b91cf[_0x4632('0x3f')]);return db[_0x4632('0x58')][_0x4632('0x59')](_0x3abcbf)[_0x4632('0x26')](respondWithFilteredResult(_0x3aeefd,_0x3abcbf));})[_0x4632('0x42')](handleError(_0x3aeefd,null));};
\ No newline at end of file
+var _0x4ded=['findAll','rows','catch','show','keys','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','getMessages','findOne','VoiceMailMessage','order','sort','findAndCountAll','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','json','limit','undefined','count','offset','Content-Range','reject','save','update','then','destroy','get','Voicemails','UserProfileResource','error','name','index','map','VoiceMail','rawAttributes','type','key','query','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','where','pick','VIRTUAL','filter','merge','options','includeAll','include'];(function(_0xc2efc4,_0x5ab2b1){var _0x582a3b=function(_0x1ea6a2){while(--_0x1ea6a2){_0xc2efc4['push'](_0xc2efc4['shift']());}};_0x582a3b(++_0x5ab2b1);}(_0x4ded,0x116));var _0xd4de=function(_0xd00003,_0xa7f3cd){_0xd00003=_0xd00003-0x0;var _0x5ef07f=_0x4ded[_0xd00003];return _0x5ef07f;};'use strict';var emlformat=require(_0xd4de('0x0'));var rimraf=require(_0xd4de('0x1'));var zipdir=require(_0xd4de('0x2'));var jsonpatch=require(_0xd4de('0x3'));var rp=require(_0xd4de('0x4'));var moment=require(_0xd4de('0x5'));var BPromise=require(_0xd4de('0x6'));var Mustache=require(_0xd4de('0x7'));var util=require(_0xd4de('0x8'));var path=require(_0xd4de('0x9'));var sox=require(_0xd4de('0xa'));var csv=require(_0xd4de('0xb'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xd4de('0xc'));var _=require(_0xd4de('0xd'));var squel=require(_0xd4de('0xe'));var crypto=require(_0xd4de('0xf'));var jsforce=require(_0xd4de('0x10'));var deskjs=require(_0xd4de('0x11'));var toCsv=require('to-csv');var querystring=require(_0xd4de('0x12'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0xd4de('0x13'));var as=require(_0xd4de('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')('api');var utils=require(_0xd4de('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0xd4de('0x16'));var db=require(_0xd4de('0x17'))['db'];function respondWithStatusCode(_0x104dad,_0x2aa09d){_0x2aa09d=_0x2aa09d||0xcc;return function(_0x3ffc72){if(_0x3ffc72){return _0x104dad[_0xd4de('0x18')](_0x2aa09d);}return _0x104dad[_0xd4de('0x19')](_0x2aa09d)[_0xd4de('0x1a')]();};}function respondWithResult(_0x3e3735,_0x37cb9f){_0x37cb9f=_0x37cb9f||0xc8;return function(_0x691ba9){if(_0x691ba9){return _0x3e3735[_0xd4de('0x19')](_0x37cb9f)[_0xd4de('0x1b')](_0x691ba9);}};}function respondWithFilteredResult(_0xbb4f7e,_0x102e5b){return function(_0xa7c18b){if(_0xa7c18b){var _0x325fba=typeof _0x102e5b['offset']==='undefined'&&typeof _0x102e5b[_0xd4de('0x1c')]===_0xd4de('0x1d');var _0x17b377=_0xa7c18b[_0xd4de('0x1e')];var _0x5b1d1c=_0x325fba?0x0:_0x102e5b['offset'];var _0x1e91d5=_0x325fba?_0xa7c18b['count']:_0x102e5b[_0xd4de('0x1f')]+_0x102e5b[_0xd4de('0x1c')];var _0x50b9e3;if(_0x1e91d5>=_0x17b377){_0x1e91d5=_0x17b377;_0x50b9e3=0xc8;}else{_0x50b9e3=0xce;}_0xbb4f7e[_0xd4de('0x19')](_0x50b9e3);return _0xbb4f7e['set'](_0xd4de('0x20'),_0x5b1d1c+'-'+_0x1e91d5+'/'+_0x17b377)[_0xd4de('0x1b')](_0xa7c18b);}return null;};}function patchUpdates(_0x2bad14){return function(_0x8e8712){try{jsonpatch['apply'](_0x8e8712,_0x2bad14,!![]);}catch(_0x318658){return BPromise[_0xd4de('0x21')](_0x318658);}return _0x8e8712[_0xd4de('0x22')]();};}function saveUpdates(_0xdb3fc,_0x1c631a){return function(_0x2d092a){if(_0x2d092a){return _0x2d092a[_0xd4de('0x23')](_0xdb3fc)[_0xd4de('0x24')](function(_0x2f9de6){return _0x2f9de6;});}return null;};}function removeEntity(_0x413f68,_0x534b37){return function(_0xad333f){if(_0xad333f){return _0xad333f[_0xd4de('0x25')]()[_0xd4de('0x24')](function(){var _0x22970c=_0xad333f[_0xd4de('0x26')]({'plain':!![]});var _0x984904=_0xd4de('0x27');return db[_0xd4de('0x28')][_0xd4de('0x25')]({'where':{'type':_0x984904,'resourceId':_0x22970c['id']}})[_0xd4de('0x24')](function(){return _0xad333f;});})[_0xd4de('0x24')](function(){_0x413f68[_0xd4de('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0xe64e4e,_0x35e2fc){return function(_0x5005b0){if(!_0x5005b0){_0xe64e4e[_0xd4de('0x18')](0x194);}return _0x5005b0;};}function handleError(_0x59b3c5,_0x44b710){_0x44b710=_0x44b710||0x1f4;return function(_0x32e407){logger[_0xd4de('0x29')](_0x32e407['stack']);if(_0x32e407[_0xd4de('0x2a')]){delete _0x32e407[_0xd4de('0x2a')];}_0x59b3c5[_0xd4de('0x19')](_0x44b710)['send'](_0x32e407);};}exports[_0xd4de('0x2b')]=function(_0x1804c7,_0x55f9f9){var _0x5103b5={},_0x5706fe={},_0x3f6491={'count':0x0,'rows':[]};var _0x496795=_[_0xd4de('0x2c')](db[_0xd4de('0x2d')][_0xd4de('0x2e')],function(_0x2e08eb){return{'name':_0x2e08eb['fieldName'],'type':_0x2e08eb[_0xd4de('0x2f')][_0xd4de('0x30')]};});_0x5706fe['model']=_[_0xd4de('0x2c')](_0x496795,_0xd4de('0x2a'));_0x5706fe['query']=_['keys'](_0x1804c7[_0xd4de('0x31')]);_0x5706fe[_0xd4de('0x32')]=_[_0xd4de('0x33')](_0x5706fe[_0xd4de('0x34')],_0x5706fe['query']);_0x5103b5[_0xd4de('0x35')]=_[_0xd4de('0x33')](_0x5706fe['model'],qs[_0xd4de('0x36')](_0x1804c7[_0xd4de('0x31')][_0xd4de('0x36')]));_0x5103b5[_0xd4de('0x35')]=_0x5103b5[_0xd4de('0x35')][_0xd4de('0x37')]?_0x5103b5['attributes']:_0x5706fe['model'];if(!_0x1804c7[_0xd4de('0x31')][_0xd4de('0x38')](_0xd4de('0x39'))){_0x5103b5['limit']=qs[_0xd4de('0x1c')](_0x1804c7[_0xd4de('0x31')]['limit']);_0x5103b5[_0xd4de('0x1f')]=qs[_0xd4de('0x1f')](_0x1804c7[_0xd4de('0x31')][_0xd4de('0x1f')]);}_0x5103b5['order']=qs['sort'](_0x1804c7[_0xd4de('0x31')]['sort']);_0x5103b5[_0xd4de('0x3a')]=qs['filters'](_[_0xd4de('0x3b')](_0x1804c7[_0xd4de('0x31')],_0x5706fe[_0xd4de('0x32')]),_0x496795);if(_0x1804c7[_0xd4de('0x31')]['filter']){_0x5103b5[_0xd4de('0x3a')]=_['merge'](_0x5103b5[_0xd4de('0x3a')],{'$or':_[_0xd4de('0x2c')](_0x496795,function(_0x7f17b9){if(_0x7f17b9[_0xd4de('0x2f')]!==_0xd4de('0x3c')){var _0x13c256={};_0x13c256[_0x7f17b9[_0xd4de('0x2a')]]={'$like':'%'+_0x1804c7['query'][_0xd4de('0x3d')]+'%'};return _0x13c256;}})});}_0x5103b5=_[_0xd4de('0x3e')]({},_0x5103b5,_0x1804c7[_0xd4de('0x3f')]);var _0x2ec1fa={'where':_0x5103b5[_0xd4de('0x3a')]};return db['VoiceMail'][_0xd4de('0x1e')](_0x2ec1fa)[_0xd4de('0x24')](function(_0x2294e2){_0x3f6491['count']=_0x2294e2;if(_0x1804c7[_0xd4de('0x31')][_0xd4de('0x40')]){_0x5103b5[_0xd4de('0x41')]=[{'all':!![]}];}return db['VoiceMail'][_0xd4de('0x42')](_0x5103b5);})[_0xd4de('0x24')](function(_0x419c49){_0x3f6491[_0xd4de('0x43')]=_0x419c49;return _0x3f6491;})[_0xd4de('0x24')](respondWithFilteredResult(_0x55f9f9,_0x5103b5))[_0xd4de('0x44')](handleError(_0x55f9f9,null));};exports[_0xd4de('0x45')]=function(_0x5ecbbd,_0x43b542){var _0x164bde={'raw':!![],'where':{'id':_0x5ecbbd['params']['id']}},_0x58082a={};_0x58082a[_0xd4de('0x34')]=_[_0xd4de('0x46')](db[_0xd4de('0x2d')]['rawAttributes']);_0x58082a['query']=_[_0xd4de('0x46')](_0x5ecbbd[_0xd4de('0x31')]);_0x58082a['filters']=_[_0xd4de('0x33')](_0x58082a[_0xd4de('0x34')],_0x58082a[_0xd4de('0x31')]);_0x164bde[_0xd4de('0x35')]=_['intersection'](_0x58082a[_0xd4de('0x34')],qs[_0xd4de('0x36')](_0x5ecbbd[_0xd4de('0x31')][_0xd4de('0x36')]));_0x164bde[_0xd4de('0x35')]=_0x164bde[_0xd4de('0x35')]['length']?_0x164bde[_0xd4de('0x35')]:_0x58082a[_0xd4de('0x34')];if(_0x5ecbbd[_0xd4de('0x31')][_0xd4de('0x40')]){_0x164bde[_0xd4de('0x41')]=[{'all':!![]}];}_0x164bde=_[_0xd4de('0x3e')]({},_0x164bde,_0x5ecbbd[_0xd4de('0x3f')]);return db[_0xd4de('0x2d')][_0xd4de('0x47')](_0x164bde)[_0xd4de('0x24')](handleEntityNotFound(_0x43b542,null))['then'](respondWithResult(_0x43b542,null))[_0xd4de('0x44')](handleError(_0x43b542,null));};exports[_0xd4de('0x48')]=function(_0x178daf,_0x518bfe){return db[_0xd4de('0x2d')][_0xd4de('0x48')](_0x178daf[_0xd4de('0x49')],{})[_0xd4de('0x24')](function(_0x42e58e){var _0xa24bb7=_0x178daf[_0xd4de('0x4a')][_0xd4de('0x26')]({'plain':!![]});if(!_0xa24bb7)throw new Error(_0xd4de('0x4b'));if(_0xa24bb7[_0xd4de('0x4c')]==='user'){var _0x3e4c7f=_0x42e58e[_0xd4de('0x26')]({'plain':!![]});var _0x215f85=_0xd4de('0x27');return db[_0xd4de('0x4d')]['find']({'where':{'name':_0x215f85,'userProfileId':_0xa24bb7['userProfileId']},'raw':!![]})[_0xd4de('0x24')](function(_0x2deedb){if(_0x2deedb&&_0x2deedb['autoAssociation']===0x0){return db['UserProfileResource'][_0xd4de('0x48')]({'name':_0x3e4c7f[_0xd4de('0x2a')],'resourceId':_0x3e4c7f['id'],'type':_0x2deedb[_0xd4de('0x2a')],'sectionId':_0x2deedb['id']},{})[_0xd4de('0x24')](function(){return _0x42e58e;});}else{return _0x42e58e;}})[_0xd4de('0x44')](function(_0x15c8cd){logger[_0xd4de('0x29')](_0xd4de('0x4e'),_0x15c8cd);throw _0x15c8cd;});}return _0x42e58e;})[_0xd4de('0x24')](respondWithResult(_0x518bfe,0xc9))[_0xd4de('0x44')](handleError(_0x518bfe,null));};exports[_0xd4de('0x23')]=function(_0x2e1780,_0x56c13e){if(_0x2e1780[_0xd4de('0x49')]['id']){delete _0x2e1780[_0xd4de('0x49')]['id'];}return db[_0xd4de('0x2d')][_0xd4de('0x47')]({'where':{'id':_0x2e1780[_0xd4de('0x4f')]['id']}})[_0xd4de('0x24')](handleEntityNotFound(_0x56c13e,null))['then'](saveUpdates(_0x2e1780[_0xd4de('0x49')],null))['then'](respondWithResult(_0x56c13e,null))['catch'](handleError(_0x56c13e,null));};exports[_0xd4de('0x25')]=function(_0xd79781,_0x2d1e45){return db[_0xd4de('0x2d')]['find']({'where':{'id':_0xd79781[_0xd4de('0x4f')]['id']}})[_0xd4de('0x24')](handleEntityNotFound(_0x2d1e45,null))[_0xd4de('0x24')](removeEntity(_0x2d1e45,null))[_0xd4de('0x44')](handleError(_0x2d1e45,null));};exports[_0xd4de('0x50')]=function(_0x4bb7df,_0x5496f7,_0x4b55cc){return db[_0xd4de('0x2d')][_0xd4de('0x51')]({'where':{'id':_0x4bb7df[_0xd4de('0x4f')]['id']}})[_0xd4de('0x24')](handleEntityNotFound(_0x5496f7,null))['then'](function(_0x35ba6f){var _0x146eaa;var _0x2e0d76={},_0x17047a={};_0x17047a['model']=_[_0xd4de('0x46')](db[_0xd4de('0x52')][_0xd4de('0x2e')]);_0x17047a[_0xd4de('0x31')]=_['keys'](_0x4bb7df['query']);_0x17047a['filters']=_[_0xd4de('0x33')](_0x17047a[_0xd4de('0x34')],_0x17047a[_0xd4de('0x31')]);_0x2e0d76['attributes']=_[_0xd4de('0x33')](_0x17047a[_0xd4de('0x34')],qs[_0xd4de('0x36')](_0x4bb7df['query'][_0xd4de('0x36')]));_0x2e0d76['attributes']=_0x2e0d76[_0xd4de('0x35')][_0xd4de('0x37')]?_0x2e0d76[_0xd4de('0x35')]:_0x17047a[_0xd4de('0x34')];if(!_0x4bb7df[_0xd4de('0x31')][_0xd4de('0x38')](_0xd4de('0x39'))){_0x2e0d76[_0xd4de('0x1c')]=qs['limit'](_0x4bb7df[_0xd4de('0x31')]['limit']);_0x2e0d76[_0xd4de('0x1f')]=qs[_0xd4de('0x1f')](_0x4bb7df['query'][_0xd4de('0x1f')]);}_0x2e0d76[_0xd4de('0x53')]=qs[_0xd4de('0x54')](_0x4bb7df[_0xd4de('0x31')][_0xd4de('0x54')]);_0x2e0d76[_0xd4de('0x3a')]=qs[_0xd4de('0x32')](_[_0xd4de('0x3b')](_0x4bb7df[_0xd4de('0x31')],_0x17047a[_0xd4de('0x32')]));if(_0x4bb7df[_0xd4de('0x31')][_0xd4de('0x3d')]){_0x2e0d76[_0xd4de('0x3a')]=_['merge'](_0x2e0d76[_0xd4de('0x3a')],{'$or':_[_0xd4de('0x2c')](_0x2e0d76[_0xd4de('0x35')],function(_0x331f08){var _0x25628e={};_0x25628e[_0x331f08]={'$like':'%'+_0x4bb7df[_0xd4de('0x31')][_0xd4de('0x3d')]+'%'};return _0x25628e;})});}_0x2e0d76[_0xd4de('0x3a')]=_['merge'](_0x2e0d76[_0xd4de('0x3a')],{'mailboxuser':_0x35ba6f['mailbox']});_0x2e0d76=_['merge']({},_0x2e0d76,_0x4bb7df['options']);return db[_0xd4de('0x52')][_0xd4de('0x55')](_0x2e0d76)['then'](respondWithFilteredResult(_0x5496f7,_0x2e0d76));})['catch'](handleError(_0x5496f7,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbadb=['VoiceMail','voice_voicemail','mailbox_context','mailbox','context','lodash','util','../../config/logger','api','bluebird','path','rimraf','../../config/environment','./voiceMail.attributes','exports'];(function(_0x283dc5,_0x7e103){var _0x4d1444=function(_0x35f0e5){while(--_0x35f0e5){_0x283dc5['push'](_0x283dc5['shift']());}};_0x4d1444(++_0x7e103);}(_0xbadb,0x122));var _0xbbad=function(_0x68f5f,_0x235a47){_0x68f5f=_0x68f5f-0x0;var _0x1c3bf6=_0xbadb[_0x68f5f];return _0x1c3bf6;};'use strict';var _=require(_0xbbad('0x0'));var util=require(_0xbbad('0x1'));var logger=require(_0xbbad('0x2'))(_0xbbad('0x3'));var moment=require('moment');var BPromise=require(_0xbbad('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xbbad('0x5'));var rimraf=require(_0xbbad('0x6'));var config=require(_0xbbad('0x7'));var attributes=require(_0xbbad('0x8'));module[_0xbbad('0x9')]=function(_0x4f35a8,_0x58f8f3){return _0x4f35a8['define'](_0xbbad('0xa'),attributes,{'tableName':_0xbbad('0xb'),'paranoid':![],'indexes':[{'name':_0xbbad('0xc'),'fields':[_0xbbad('0xd'),_0xbbad('0xe')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x7069=['util','moment','bluebird','request-promise','path','rimraf','../../config/environment','exports','define','VoiceMail','voice_voicemail','mailbox_context','mailbox','context','lodash'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x7069,0x95));var _0x9706=function(_0x55b1c7,_0x3f26e1){_0x55b1c7=_0x55b1c7-0x0;var _0x404034=_0x7069[_0x55b1c7];return _0x404034;};'use strict';var _=require(_0x9706('0x0'));var util=require(_0x9706('0x1'));var logger=require('../../config/logger')('api');var moment=require(_0x9706('0x2'));var BPromise=require(_0x9706('0x3'));var rp=require(_0x9706('0x4'));var fs=require('fs');var path=require(_0x9706('0x5'));var rimraf=require(_0x9706('0x6'));var config=require(_0x9706('0x7'));var attributes=require('./voiceMail.attributes');module[_0x9706('0x8')]=function(_0x3e1cbf,_0x4973a4){return _0x3e1cbf[_0x9706('0x9')](_0x9706('0xa'),attributes,{'tableName':_0x9706('0xb'),'paranoid':![],'indexes':[{'name':_0x9706('0xc'),'fields':[_0x9706('0xd'),_0x9706('0xe')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8831=['jayson/promise','http','then','VoiceMail,\x20%s,\x20%s','debug','VoiceMail,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','info','result','catch','lodash','util','randomstring','../../mysqldb','../../config/utils','../../config/logger','../../config/environment'];(function(_0x4d07cc,_0x587613){var _0x42de3b=function(_0x201f78){while(--_0x201f78){_0x4d07cc['push'](_0x4d07cc['shift']());}};_0x42de3b(++_0x587613);}(_0x8831,0xf5));var _0x1883=function(_0x9729d7,_0x1b79a8){_0x9729d7=_0x9729d7-0x0;var _0x3c4ac6=_0x8831[_0x9729d7];return _0x3c4ac6;};'use strict';var _=require(_0x1883('0x0'));var util=require(_0x1883('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0x1883('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x1883('0x3'))['db'];var utils=require(_0x1883('0x4'));var logger=require(_0x1883('0x5'))('rpc');var config=require(_0x1883('0x6'));var jayson=require(_0x1883('0x7'));var client=jayson['client'][_0x1883('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x12cabe,_0x2be7d0,_0x105245){return new BPromise(function(_0x3cec5e,_0x3f97d3){return client['request'](_0x12cabe,_0x105245)[_0x1883('0x9')](function(_0x52fd41){logger['info'](_0x1883('0xa'),_0x2be7d0,'request\x20sent');logger[_0x1883('0xb')](_0x1883('0xc'),_0x2be7d0,_0x1883('0xd'),JSON[_0x1883('0xe')](_0x52fd41));if(_0x52fd41[_0x1883('0xf')]){if(_0x52fd41[_0x1883('0xf')][_0x1883('0x10')]===0x1f4){logger[_0x1883('0xf')](_0x1883('0xa'),_0x2be7d0,_0x52fd41[_0x1883('0xf')][_0x1883('0x11')]);return _0x3f97d3(_0x52fd41[_0x1883('0xf')][_0x1883('0x11')]);}logger[_0x1883('0xf')](_0x1883('0xa'),_0x2be7d0,_0x52fd41[_0x1883('0xf')][_0x1883('0x11')]);return _0x3cec5e(_0x52fd41[_0x1883('0xf')][_0x1883('0x11')]);}else{logger[_0x1883('0x12')]('VoiceMail,\x20%s,\x20%s',_0x2be7d0,_0x1883('0xd'));_0x3cec5e(_0x52fd41[_0x1883('0x13')]['message']);}})[_0x1883('0x14')](function(_0x5eeecc){logger[_0x1883('0xf')](_0x1883('0xa'),_0x2be7d0,_0x5eeecc);_0x3f97d3(_0x5eeecc);});});}
\ No newline at end of file
+var _0x6ff7=['ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','VoiceMail,\x20%s,\x20%s','request\x20sent','debug','error','message','result','catch','lodash','util','moment','bluebird','randomstring'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0x6ff7,0x8b));var _0x76ff=function(_0x25ad69,_0xcc48db){_0x25ad69=_0x25ad69-0x0;var _0x11722c=_0x6ff7[_0x25ad69];return _0x11722c;};'use strict';var _=require(_0x76ff('0x0'));var util=require(_0x76ff('0x1'));var moment=require(_0x76ff('0x2'));var BPromise=require(_0x76ff('0x3'));var rs=require(_0x76ff('0x4'));var fs=require('fs');var Redis=require(_0x76ff('0x5'));var db=require(_0x76ff('0x6'))['db'];var utils=require(_0x76ff('0x7'));var logger=require(_0x76ff('0x8'))(_0x76ff('0x9'));var config=require(_0x76ff('0xa'));var jayson=require(_0x76ff('0xb'));var client=jayson[_0x76ff('0xc')][_0x76ff('0xd')]({'port':0x232a});function respondWithRpcPromise(_0x650658,_0x573f0e,_0x14f64e){return new BPromise(function(_0x4a19cc,_0x51bc3b){return client[_0x76ff('0xe')](_0x650658,_0x14f64e)[_0x76ff('0xf')](function(_0x599871){logger[_0x76ff('0x10')](_0x76ff('0x11'),_0x573f0e,_0x76ff('0x12'));logger[_0x76ff('0x13')]('VoiceMail,\x20%s,\x20%s,\x20%s',_0x573f0e,_0x76ff('0x12'),JSON['stringify'](_0x599871));if(_0x599871['error']){if(_0x599871[_0x76ff('0x14')]['code']===0x1f4){logger[_0x76ff('0x14')]('VoiceMail,\x20%s,\x20%s',_0x573f0e,_0x599871['error'][_0x76ff('0x15')]);return _0x51bc3b(_0x599871[_0x76ff('0x14')][_0x76ff('0x15')]);}logger[_0x76ff('0x14')](_0x76ff('0x11'),_0x573f0e,_0x599871['error'][_0x76ff('0x15')]);return _0x4a19cc(_0x599871[_0x76ff('0x14')][_0x76ff('0x15')]);}else{logger[_0x76ff('0x10')](_0x76ff('0x11'),_0x573f0e,_0x76ff('0x12'));_0x4a19cc(_0x599871[_0x76ff('0x16')][_0x76ff('0x15')]);}})[_0x76ff('0x17')](function(_0x1152d5){logger[_0x76ff('0x14')](_0x76ff('0x11'),_0x573f0e,_0x1152d5);_0x51bc3b(_0x1152d5);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9c2=['delete','destroy','exports','multer','path','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./voiceMailMessage.controller','get','isAuthenticated','index','/:id','show','/:id/download','post','create'];(function(_0x31dfdd,_0x4b55f9){var _0x30f59b=function(_0x13ae8a){while(--_0x13ae8a){_0x31dfdd['push'](_0x31dfdd['shift']());}};_0x30f59b(++_0x4b55f9);}(_0xa9c2,0x12f));var _0x2a9c=function(_0x5759e6,_0x6eb1dd){_0x5759e6=_0x5759e6-0x0;var _0x4f3cfd=_0xa9c2[_0x5759e6];return _0x4f3cfd;};'use strict';var multer=require(_0x2a9c('0x0'));var util=require('util');var path=require(_0x2a9c('0x1'));var timeout=require(_0x2a9c('0x2'));var express=require(_0x2a9c('0x3'));var router=express['Router']();var fs_extra=require(_0x2a9c('0x4'));var auth=require(_0x2a9c('0x5'));var interaction=require(_0x2a9c('0x6'));var config=require(_0x2a9c('0x7'));var controller=require(_0x2a9c('0x8'));router[_0x2a9c('0x9')]('/',auth[_0x2a9c('0xa')](),controller[_0x2a9c('0xb')]);router[_0x2a9c('0x9')](_0x2a9c('0xc'),auth['isAuthenticated'](),controller[_0x2a9c('0xd')]);router[_0x2a9c('0x9')](_0x2a9c('0xe'),auth[_0x2a9c('0xa')](),controller['download']);router[_0x2a9c('0xf')]('/',auth['isAuthenticated'](),controller[_0x2a9c('0x10')]);router['put'](_0x2a9c('0xc'),auth[_0x2a9c('0xa')](),controller['update']);router[_0x2a9c('0x11')](_0x2a9c('0xc'),auth[_0x2a9c('0xa')](),controller[_0x2a9c('0x12')]);module[_0x2a9c('0x13')]=router;
\ No newline at end of file
+var _0x472d=['delete','destroy','exports','multer','util','path','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','show','/:id/download','download','create','update'];(function(_0x4e9c0f,_0x440a93){var _0x19140c=function(_0x5bf62c){while(--_0x5bf62c){_0x4e9c0f['push'](_0x4e9c0f['shift']());}};_0x19140c(++_0x440a93);}(_0x472d,0x157));var _0xd472=function(_0x35ef23,_0x59a30d){_0x35ef23=_0x35ef23-0x0;var _0x335ea1=_0x472d[_0x35ef23];return _0x335ea1;};'use strict';var multer=require(_0xd472('0x0'));var util=require(_0xd472('0x1'));var path=require(_0xd472('0x2'));var timeout=require(_0xd472('0x3'));var express=require(_0xd472('0x4'));var router=express['Router']();var fs_extra=require(_0xd472('0x5'));var auth=require(_0xd472('0x6'));var interaction=require(_0xd472('0x7'));var config=require(_0xd472('0x8'));var controller=require('./voiceMailMessage.controller');router[_0xd472('0x9')]('/',auth[_0xd472('0xa')](),controller[_0xd472('0xb')]);router[_0xd472('0x9')]('/:id',auth[_0xd472('0xa')](),controller[_0xd472('0xc')]);router[_0xd472('0x9')](_0xd472('0xd'),auth[_0xd472('0xa')](),controller[_0xd472('0xe')]);router['post']('/',auth[_0xd472('0xa')](),controller[_0xd472('0xf')]);router['put']('/:id',auth[_0xd472('0xa')](),controller[_0xd472('0x10')]);router[_0xd472('0x11')]('/:id',auth[_0xd472('0xa')](),controller[_0xd472('0x12')]);module[_0xd472('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9019=['exports','VIRTUAL','getDataValue','INTEGER','STRING','BLOB','long','TIMESTAMP','literal','CURRENT_TIMESTAMP\x20ON\x20UPDATE\x20CURRENT_TIMESTAMP','sequelize'];(function(_0x147497,_0x43e433){var _0x35f45=function(_0x584421){while(--_0x584421){_0x147497['push'](_0x147497['shift']());}};_0x35f45(++_0x43e433);}(_0x9019,0xf1));var _0x9901=function(_0x8d695e,_0x394999){_0x8d695e=_0x8d695e-0x0;var _0x3d156e=_0x9019[_0x8d695e];return _0x3d156e;};'use strict';var Sequelize=require(_0x9901('0x0'));module[_0x9901('0x1')]={'name':{'type':Sequelize[_0x9901('0x2')],'get':function(_0x2b16e2){return this[_0x9901('0x3')]('id');}},'msgnum':{'type':Sequelize[_0x9901('0x4')](0xb),'defaultValue':0x0,'allowNull':![]},'dir':{'type':Sequelize[_0x9901('0x5')],'defaultValue':''},'context':{'type':Sequelize[_0x9901('0x5')],'defaultValue':''},'macrocontext':{'type':Sequelize[_0x9901('0x5')],'defaultValue':''},'callerid':{'type':Sequelize[_0x9901('0x5')],'defaultValue':''},'origtime':{'type':Sequelize['STRING'],'defaultValue':''},'duration':{'type':Sequelize[_0x9901('0x5')],'defaultValue':''},'mailboxuser':{'type':Sequelize[_0x9901('0x5')],'defaultValue':''},'mailboxcontext':{'type':Sequelize[_0x9901('0x5')],'defaultValue':''},'recording':{'type':Sequelize[_0x9901('0x6')](_0x9901('0x7')),'defaultValue':null},'flag':{'type':Sequelize[_0x9901('0x5')],'defaultValue':''},'msg_id':{'type':Sequelize[_0x9901('0x5')],'defaultValue':''},'stamp':{'type':_0x9901('0x8'),'defaultValue':Sequelize[_0x9901('0x9')](_0x9901('0xa'))}};
\ No newline at end of file
+var _0xc183=['VIRTUAL','getDataValue','INTEGER','STRING','BLOB','long','TIMESTAMP','literal','CURRENT_TIMESTAMP\x20ON\x20UPDATE\x20CURRENT_TIMESTAMP','sequelize','exports'];(function(_0xe9c3b4,_0x9f4afa){var _0x56064b=function(_0xbaf683){while(--_0xbaf683){_0xe9c3b4['push'](_0xe9c3b4['shift']());}};_0x56064b(++_0x9f4afa);}(_0xc183,0x17f));var _0x3c18=function(_0x53490d,_0x4de9d7){_0x53490d=_0x53490d-0x0;var _0x114d18=_0xc183[_0x53490d];return _0x114d18;};'use strict';var Sequelize=require(_0x3c18('0x0'));module[_0x3c18('0x1')]={'name':{'type':Sequelize[_0x3c18('0x2')],'get':function(_0x12afca){return this[_0x3c18('0x3')]('id');}},'msgnum':{'type':Sequelize[_0x3c18('0x4')](0xb),'defaultValue':0x0,'allowNull':![]},'dir':{'type':Sequelize[_0x3c18('0x5')],'defaultValue':''},'context':{'type':Sequelize[_0x3c18('0x5')],'defaultValue':''},'macrocontext':{'type':Sequelize[_0x3c18('0x5')],'defaultValue':''},'callerid':{'type':Sequelize[_0x3c18('0x5')],'defaultValue':''},'origtime':{'type':Sequelize['STRING'],'defaultValue':''},'duration':{'type':Sequelize[_0x3c18('0x5')],'defaultValue':''},'mailboxuser':{'type':Sequelize[_0x3c18('0x5')],'defaultValue':''},'mailboxcontext':{'type':Sequelize[_0x3c18('0x5')],'defaultValue':''},'recording':{'type':Sequelize[_0x3c18('0x6')](_0x3c18('0x7')),'defaultValue':null},'flag':{'type':Sequelize[_0x3c18('0x5')],'defaultValue':''},'msg_id':{'type':Sequelize[_0x3c18('0x5')],'defaultValue':''},'stamp':{'type':_0x3c18('0x8'),'defaultValue':Sequelize[_0x3c18('0x9')](_0x3c18('0xa'))}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2982=['rawAttributes','fieldName','type','key','differenceBy','query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','filter','where','VIRTUAL','merge','options','includeAll','include','findAll','rows','catch','params','create','body','find','recording','msg_id','Sequelize','ValidationError','VoiceMailMessage\x20not\x20found','audio/wav','attachment','Content-Disposition','attachment;\x20filename=\x22','.wav\x22','eml-format','rimraf','zip-dir','request-promise','bluebird','mustache','util','path','sox','ejs','fs-extra','lodash','squel','crypto','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','limit','count','set','apply','save','update','then','destroy','end','error','stack','name','send','index','map','VoiceMailMessage'];(function(_0x1afd43,_0x4dd1dc){var _0x577492=function(_0x5512bd){while(--_0x5512bd){_0x1afd43['push'](_0x1afd43['shift']());}};_0x577492(++_0x4dd1dc);}(_0x2982,0x192));var _0x2298=function(_0xca4b9a,_0x5791e7){_0xca4b9a=_0xca4b9a-0x0;var _0x437536=_0x2982[_0xca4b9a];return _0x437536;};'use strict';var emlformat=require(_0x2298('0x0'));var rimraf=require(_0x2298('0x1'));var zipdir=require(_0x2298('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x2298('0x3'));var moment=require('moment');var BPromise=require(_0x2298('0x4'));var Mustache=require(_0x2298('0x5'));var util=require(_0x2298('0x6'));var path=require(_0x2298('0x7'));var sox=require(_0x2298('0x8'));var csv=require('to-csv');var ejs=require(_0x2298('0x9'));var fs=require('fs');var fs_extra=require(_0x2298('0xa'));var _=require(_0x2298('0xb'));var squel=require(_0x2298('0xc'));var crypto=require(_0x2298('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x2298('0xe'));var toCsv=require('to-csv');var querystring=require(_0x2298('0xf'));var Papa=require(_0x2298('0x10'));var Redis=require(_0x2298('0x11'));var authService=require(_0x2298('0x12'));var qs=require(_0x2298('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x2298('0x14'));var logger=require(_0x2298('0x15'))(_0x2298('0x16'));var utils=require(_0x2298('0x17'));var config=require(_0x2298('0x18'));var licenseUtil=require(_0x2298('0x19'));var db=require(_0x2298('0x1a'))['db'];function respondWithStatusCode(_0x38b64c,_0x797643){_0x797643=_0x797643||0xcc;return function(_0x45f0f5){if(_0x45f0f5){return _0x38b64c[_0x2298('0x1b')](_0x797643);}return _0x38b64c[_0x2298('0x1c')](_0x797643)['end']();};}function respondWithResult(_0x5c12d2,_0x23f1fd){_0x23f1fd=_0x23f1fd||0xc8;return function(_0x3c2337){if(_0x3c2337){return _0x5c12d2[_0x2298('0x1c')](_0x23f1fd)[_0x2298('0x1d')](_0x3c2337);}};}function respondWithFilteredResult(_0x46412f,_0xdd9a06){return function(_0xf50a70){if(_0xf50a70){var _0x19ff6a=typeof _0xdd9a06[_0x2298('0x1e')]===_0x2298('0x1f')&&typeof _0xdd9a06[_0x2298('0x20')]===_0x2298('0x1f');var _0x3b4129=_0xf50a70[_0x2298('0x21')];var _0x36341e=_0x19ff6a?0x0:_0xdd9a06[_0x2298('0x1e')];var _0x161df1=_0x19ff6a?_0xf50a70['count']:_0xdd9a06[_0x2298('0x1e')]+_0xdd9a06['limit'];var _0x2c8981;if(_0x161df1>=_0x3b4129){_0x161df1=_0x3b4129;_0x2c8981=0xc8;}else{_0x2c8981=0xce;}_0x46412f[_0x2298('0x1c')](_0x2c8981);return _0x46412f[_0x2298('0x22')]('Content-Range',_0x36341e+'-'+_0x161df1+'/'+_0x3b4129)[_0x2298('0x1d')](_0xf50a70);}return null;};}function patchUpdates(_0x15b278){return function(_0x53f75f){try{jsonpatch[_0x2298('0x23')](_0x53f75f,_0x15b278,!![]);}catch(_0x333d48){return BPromise['reject'](_0x333d48);}return _0x53f75f[_0x2298('0x24')]();};}function saveUpdates(_0x587adc,_0x18d113){return function(_0x39249b){if(_0x39249b){return _0x39249b[_0x2298('0x25')](_0x587adc)[_0x2298('0x26')](function(_0x512ea0){return _0x512ea0;});}return null;};}function removeEntity(_0x175dc2,_0x191aa6){return function(_0xc648b5){if(_0xc648b5){return _0xc648b5[_0x2298('0x27')]()[_0x2298('0x26')](function(){_0x175dc2[_0x2298('0x1c')](0xcc)[_0x2298('0x28')]();});}};}function handleEntityNotFound(_0x43a41f,_0x485775){return function(_0x14b9d1){if(!_0x14b9d1){_0x43a41f[_0x2298('0x1b')](0x194);}return _0x14b9d1;};}function handleError(_0x57106b,_0x4848b9){_0x4848b9=_0x4848b9||0x1f4;return function(_0x27d828){logger[_0x2298('0x29')](_0x27d828[_0x2298('0x2a')]);if(_0x27d828[_0x2298('0x2b')]){delete _0x27d828['name'];}_0x57106b[_0x2298('0x1c')](_0x4848b9)[_0x2298('0x2c')](_0x27d828);};}exports[_0x2298('0x2d')]=function(_0x5b929c,_0x18a5b7){var _0x588cee={},_0x3bfc0d={},_0x1d0ea0={'count':0x0,'rows':[]};var _0x2c807f=_[_0x2298('0x2e')](db[_0x2298('0x2f')][_0x2298('0x30')],function(_0x2335ea){return{'name':_0x2335ea[_0x2298('0x31')],'type':_0x2335ea[_0x2298('0x32')][_0x2298('0x33')]};});_0x3bfc0d['model']=_[_0x2298('0x34')](_['map'](_0x2c807f,_0x2298('0x2b')),[_0x2298('0x2b')]);_0x3bfc0d[_0x2298('0x35')]=_[_0x2298('0x36')](_0x5b929c[_0x2298('0x35')]);_0x3bfc0d[_0x2298('0x37')]=_[_0x2298('0x38')](_0x3bfc0d[_0x2298('0x39')],_0x3bfc0d[_0x2298('0x35')]);_0x588cee[_0x2298('0x3a')]=_[_0x2298('0x38')](_0x3bfc0d['model'],qs[_0x2298('0x3b')](_0x5b929c['query'][_0x2298('0x3b')]));_0x588cee['attributes']=_0x588cee[_0x2298('0x3a')][_0x2298('0x3c')]?_0x588cee[_0x2298('0x3a')]:_0x3bfc0d[_0x2298('0x39')];if(!_0x5b929c[_0x2298('0x35')][_0x2298('0x3d')](_0x2298('0x3e'))){_0x588cee[_0x2298('0x20')]=qs['limit'](_0x5b929c['query']['limit']);_0x588cee[_0x2298('0x1e')]=qs['offset'](_0x5b929c[_0x2298('0x35')][_0x2298('0x1e')]);}_0x588cee[_0x2298('0x3f')]=qs[_0x2298('0x40')](_0x5b929c[_0x2298('0x35')][_0x2298('0x40')]);_0x588cee['where']=qs['filters'](_[_0x2298('0x41')](_0x5b929c[_0x2298('0x35')],_0x3bfc0d[_0x2298('0x37')]),_0x2c807f);if(_0x5b929c[_0x2298('0x35')][_0x2298('0x42')]){_0x588cee[_0x2298('0x43')]=_['merge'](_0x588cee[_0x2298('0x43')],{'$or':_['map'](_0x2c807f,function(_0x54ba6a){if(_0x54ba6a['type']!==_0x2298('0x44')){var _0x3722c8={};_0x3722c8[_0x54ba6a[_0x2298('0x2b')]]={'$like':'%'+_0x5b929c['query'][_0x2298('0x42')]+'%'};return _0x3722c8;}})});}_0x588cee=_[_0x2298('0x45')]({},_0x588cee,_0x5b929c[_0x2298('0x46')]);var _0x374a25={'where':_0x588cee[_0x2298('0x43')]};return db['VoiceMailMessage']['count'](_0x374a25)[_0x2298('0x26')](function(_0x98ac18){_0x1d0ea0['count']=_0x98ac18;if(_0x5b929c[_0x2298('0x35')][_0x2298('0x47')]){_0x588cee[_0x2298('0x48')]=[{'all':!![]}];}return db[_0x2298('0x2f')][_0x2298('0x49')](_0x588cee);})[_0x2298('0x26')](function(_0x16461d){_0x1d0ea0[_0x2298('0x4a')]=_0x16461d;return _0x1d0ea0;})[_0x2298('0x26')](respondWithFilteredResult(_0x18a5b7,_0x588cee))[_0x2298('0x4b')](handleError(_0x18a5b7,null));};exports['show']=function(_0x135a8c,_0x5d4ba1){var _0x37e2fa={'raw':!![],'where':{'id':_0x135a8c[_0x2298('0x4c')]['id']}},_0x42c8a5={};_0x42c8a5[_0x2298('0x39')]=_[_0x2298('0x36')](db[_0x2298('0x2f')][_0x2298('0x30')]);_0x42c8a5[_0x2298('0x35')]=_['keys'](_0x135a8c[_0x2298('0x35')]);_0x42c8a5[_0x2298('0x37')]=_['intersection'](_0x42c8a5[_0x2298('0x39')],_0x42c8a5[_0x2298('0x35')]);_0x37e2fa['attributes']=_[_0x2298('0x38')](_0x42c8a5[_0x2298('0x39')],qs[_0x2298('0x3b')](_0x135a8c[_0x2298('0x35')][_0x2298('0x3b')]));_0x37e2fa[_0x2298('0x3a')]=_0x37e2fa[_0x2298('0x3a')]['length']?_0x37e2fa[_0x2298('0x3a')]:_0x42c8a5[_0x2298('0x39')];if(_0x135a8c['query'][_0x2298('0x47')]){_0x37e2fa[_0x2298('0x48')]=[{'all':!![]}];}_0x37e2fa=_[_0x2298('0x45')]({},_0x37e2fa,_0x135a8c['options']);return db[_0x2298('0x2f')]['find'](_0x37e2fa)[_0x2298('0x26')](handleEntityNotFound(_0x5d4ba1,null))[_0x2298('0x26')](respondWithResult(_0x5d4ba1,null))[_0x2298('0x4b')](handleError(_0x5d4ba1,null));};exports[_0x2298('0x4d')]=function(_0x1ec8f9,_0x2513d7){return db[_0x2298('0x2f')][_0x2298('0x4d')](_0x1ec8f9['body'],{})[_0x2298('0x26')](respondWithResult(_0x2513d7,0xc9))[_0x2298('0x4b')](handleError(_0x2513d7,null));};exports[_0x2298('0x25')]=function(_0x5a06b0,_0x215aa5){if(_0x5a06b0[_0x2298('0x4e')]['id']){delete _0x5a06b0[_0x2298('0x4e')]['id'];}return db[_0x2298('0x2f')]['find']({'where':{'id':_0x5a06b0[_0x2298('0x4c')]['id']}})['then'](handleEntityNotFound(_0x215aa5,null))[_0x2298('0x26')](saveUpdates(_0x5a06b0[_0x2298('0x4e')],null))[_0x2298('0x26')](respondWithResult(_0x215aa5,null))[_0x2298('0x4b')](handleError(_0x215aa5,null));};exports['destroy']=function(_0x37166f,_0x3c03b6){return db[_0x2298('0x2f')][_0x2298('0x4f')]({'where':{'id':_0x37166f[_0x2298('0x4c')]['id']}})[_0x2298('0x26')](handleEntityNotFound(_0x3c03b6,null))[_0x2298('0x26')](removeEntity(_0x3c03b6,null))['catch'](handleError(_0x3c03b6,null));};exports['download']=function(_0x56fb2a,_0x562536,_0x374327){return db[_0x2298('0x2f')][_0x2298('0x4f')]({'where':{'id':_0x56fb2a['params']['id']},'attributes':['id',_0x2298('0x50'),_0x2298('0x51')]})[_0x2298('0x26')](handleEntityNotFound(_0x562536,null))[_0x2298('0x26')](function(_0x394aab){if(_0x394aab){if(!_0x394aab['recording']){throw new db[(_0x2298('0x52'))][(_0x2298('0x53'))](_0x2298('0x54'));}var _0x112940={'Content-Type':_0x2298('0x55'),'Content-Disposition':_0x2298('0x56')};if(_0x394aab[_0x2298('0x51')]){_0x112940[_0x2298('0x57')]=_0x2298('0x58')+_0x394aab[_0x2298('0x51')]+_0x2298('0x59');}_0x562536['set'](_0x112940);return _0x562536['send'](new Buffer(_0x394aab[_0x2298('0x50')]));}})[_0x2298('0x4b')](handleError(_0x562536,null));};
\ No newline at end of file
+var _0x2454=['msg_id','Sequelize','VoiceMailMessage\x20not\x20found','Content-Disposition','attachment;\x20filename=\x22','recording','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','util','path','to-csv','ejs','fs-extra','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/environment','../../config/license/util','sendStatus','status','count','offset','limit','set','Content-Range','json','apply','reject','destroy','end','error','stack','name','send','index','map','VoiceMailMessage','rawAttributes','fieldName','key','model','differenceBy','query','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','filter','where','merge','type','VIRTUAL','options','includeAll','then','rows','catch','show','keys','include','find','create','params','body','download'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x2454,0x15a));var _0x4245=function(_0x4e513f,_0x43a543){_0x4e513f=_0x4e513f-0x0;var _0x5ce20d=_0x2454[_0x4e513f];return _0x5ce20d;};'use strict';var emlformat=require(_0x4245('0x0'));var rimraf=require(_0x4245('0x1'));var zipdir=require(_0x4245('0x2'));var jsonpatch=require(_0x4245('0x3'));var rp=require(_0x4245('0x4'));var moment=require('moment');var BPromise=require(_0x4245('0x5'));var Mustache=require('mustache');var util=require(_0x4245('0x6'));var path=require(_0x4245('0x7'));var sox=require('sox');var csv=require(_0x4245('0x8'));var ejs=require(_0x4245('0x9'));var fs=require('fs');var fs_extra=require(_0x4245('0xa'));var _=require(_0x4245('0xb'));var squel=require(_0x4245('0xc'));var crypto=require(_0x4245('0xd'));var jsforce=require(_0x4245('0xe'));var deskjs=require('desk.js');var toCsv=require(_0x4245('0x8'));var querystring=require(_0x4245('0xf'));var Papa=require(_0x4245('0x10'));var Redis=require(_0x4245('0x11'));var authService=require(_0x4245('0x12'));var qs=require(_0x4245('0x13'));var as=require(_0x4245('0x14'));var hardwareService=require(_0x4245('0x15'));var logger=require(_0x4245('0x16'))(_0x4245('0x17'));var utils=require(_0x4245('0x18'));var config=require(_0x4245('0x19'));var licenseUtil=require(_0x4245('0x1a'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x100711,_0x3855c2){_0x3855c2=_0x3855c2||0xcc;return function(_0x13d52a){if(_0x13d52a){return _0x100711[_0x4245('0x1b')](_0x3855c2);}return _0x100711[_0x4245('0x1c')](_0x3855c2)['end']();};}function respondWithResult(_0x3fccc7,_0x5edd72){_0x5edd72=_0x5edd72||0xc8;return function(_0x3c3794){if(_0x3c3794){return _0x3fccc7['status'](_0x5edd72)['json'](_0x3c3794);}};}function respondWithFilteredResult(_0x4297b0,_0x2b9e96){return function(_0x141e4b){if(_0x141e4b){var _0x2a2a31=typeof _0x2b9e96['offset']==='undefined'&&typeof _0x2b9e96['limit']==='undefined';var _0x3f6779=_0x141e4b[_0x4245('0x1d')];var _0x5d8da9=_0x2a2a31?0x0:_0x2b9e96[_0x4245('0x1e')];var _0x7b153d=_0x2a2a31?_0x141e4b[_0x4245('0x1d')]:_0x2b9e96[_0x4245('0x1e')]+_0x2b9e96[_0x4245('0x1f')];var _0x47a52c;if(_0x7b153d>=_0x3f6779){_0x7b153d=_0x3f6779;_0x47a52c=0xc8;}else{_0x47a52c=0xce;}_0x4297b0[_0x4245('0x1c')](_0x47a52c);return _0x4297b0[_0x4245('0x20')](_0x4245('0x21'),_0x5d8da9+'-'+_0x7b153d+'/'+_0x3f6779)[_0x4245('0x22')](_0x141e4b);}return null;};}function patchUpdates(_0x41f745){return function(_0x3aa369){try{jsonpatch[_0x4245('0x23')](_0x3aa369,_0x41f745,!![]);}catch(_0x2b70f0){return BPromise[_0x4245('0x24')](_0x2b70f0);}return _0x3aa369['save']();};}function saveUpdates(_0x22fb0d,_0x222c12){return function(_0x5553c3){if(_0x5553c3){return _0x5553c3['update'](_0x22fb0d)['then'](function(_0x107b43){return _0x107b43;});}return null;};}function removeEntity(_0x2d3e03,_0x4fee8f){return function(_0x24d745){if(_0x24d745){return _0x24d745[_0x4245('0x25')]()['then'](function(){_0x2d3e03[_0x4245('0x1c')](0xcc)[_0x4245('0x26')]();});}};}function handleEntityNotFound(_0x3ee160,_0x250b6b){return function(_0x354121){if(!_0x354121){_0x3ee160[_0x4245('0x1b')](0x194);}return _0x354121;};}function handleError(_0x117237,_0x7fdaad){_0x7fdaad=_0x7fdaad||0x1f4;return function(_0x31b4c9){logger[_0x4245('0x27')](_0x31b4c9[_0x4245('0x28')]);if(_0x31b4c9['name']){delete _0x31b4c9[_0x4245('0x29')];}_0x117237['status'](_0x7fdaad)[_0x4245('0x2a')](_0x31b4c9);};}exports[_0x4245('0x2b')]=function(_0x2872dd,_0x5ada06){var _0x12d2b8={},_0x27330e={},_0x538d00={'count':0x0,'rows':[]};var _0x5e551e=_[_0x4245('0x2c')](db[_0x4245('0x2d')][_0x4245('0x2e')],function(_0x3f4f3d){return{'name':_0x3f4f3d[_0x4245('0x2f')],'type':_0x3f4f3d['type'][_0x4245('0x30')]};});_0x27330e[_0x4245('0x31')]=_[_0x4245('0x32')](_[_0x4245('0x2c')](_0x5e551e,_0x4245('0x29')),[_0x4245('0x29')]);_0x27330e[_0x4245('0x33')]=_['keys'](_0x2872dd[_0x4245('0x33')]);_0x27330e[_0x4245('0x34')]=_[_0x4245('0x35')](_0x27330e['model'],_0x27330e[_0x4245('0x33')]);_0x12d2b8['attributes']=_[_0x4245('0x35')](_0x27330e['model'],qs[_0x4245('0x36')](_0x2872dd[_0x4245('0x33')][_0x4245('0x36')]));_0x12d2b8[_0x4245('0x37')]=_0x12d2b8[_0x4245('0x37')][_0x4245('0x38')]?_0x12d2b8['attributes']:_0x27330e[_0x4245('0x31')];if(!_0x2872dd['query'][_0x4245('0x39')](_0x4245('0x3a'))){_0x12d2b8[_0x4245('0x1f')]=qs[_0x4245('0x1f')](_0x2872dd[_0x4245('0x33')]['limit']);_0x12d2b8['offset']=qs[_0x4245('0x1e')](_0x2872dd[_0x4245('0x33')][_0x4245('0x1e')]);}_0x12d2b8[_0x4245('0x3b')]=qs[_0x4245('0x3c')](_0x2872dd[_0x4245('0x33')][_0x4245('0x3c')]);_0x12d2b8['where']=qs[_0x4245('0x34')](_['pick'](_0x2872dd[_0x4245('0x33')],_0x27330e['filters']),_0x5e551e);if(_0x2872dd['query'][_0x4245('0x3d')]){_0x12d2b8[_0x4245('0x3e')]=_[_0x4245('0x3f')](_0x12d2b8[_0x4245('0x3e')],{'$or':_['map'](_0x5e551e,function(_0x1c2acf){if(_0x1c2acf[_0x4245('0x40')]!==_0x4245('0x41')){var _0x436d64={};_0x436d64[_0x1c2acf[_0x4245('0x29')]]={'$like':'%'+_0x2872dd[_0x4245('0x33')][_0x4245('0x3d')]+'%'};return _0x436d64;}})});}_0x12d2b8=_[_0x4245('0x3f')]({},_0x12d2b8,_0x2872dd[_0x4245('0x42')]);var _0x5036b6={'where':_0x12d2b8[_0x4245('0x3e')]};return db[_0x4245('0x2d')][_0x4245('0x1d')](_0x5036b6)['then'](function(_0x36a34a){_0x538d00[_0x4245('0x1d')]=_0x36a34a;if(_0x2872dd[_0x4245('0x33')][_0x4245('0x43')]){_0x12d2b8['include']=[{'all':!![]}];}return db['VoiceMailMessage']['findAll'](_0x12d2b8);})[_0x4245('0x44')](function(_0x20f0a2){_0x538d00[_0x4245('0x45')]=_0x20f0a2;return _0x538d00;})[_0x4245('0x44')](respondWithFilteredResult(_0x5ada06,_0x12d2b8))[_0x4245('0x46')](handleError(_0x5ada06,null));};exports[_0x4245('0x47')]=function(_0x5f02e1,_0x91854c){var _0x54c12b={'raw':!![],'where':{'id':_0x5f02e1['params']['id']}},_0x177c3e={};_0x177c3e[_0x4245('0x31')]=_[_0x4245('0x48')](db[_0x4245('0x2d')][_0x4245('0x2e')]);_0x177c3e[_0x4245('0x33')]=_[_0x4245('0x48')](_0x5f02e1[_0x4245('0x33')]);_0x177c3e[_0x4245('0x34')]=_[_0x4245('0x35')](_0x177c3e[_0x4245('0x31')],_0x177c3e['query']);_0x54c12b['attributes']=_[_0x4245('0x35')](_0x177c3e[_0x4245('0x31')],qs[_0x4245('0x36')](_0x5f02e1['query'][_0x4245('0x36')]));_0x54c12b[_0x4245('0x37')]=_0x54c12b[_0x4245('0x37')]['length']?_0x54c12b[_0x4245('0x37')]:_0x177c3e['model'];if(_0x5f02e1[_0x4245('0x33')][_0x4245('0x43')]){_0x54c12b[_0x4245('0x49')]=[{'all':!![]}];}_0x54c12b=_[_0x4245('0x3f')]({},_0x54c12b,_0x5f02e1[_0x4245('0x42')]);return db[_0x4245('0x2d')][_0x4245('0x4a')](_0x54c12b)[_0x4245('0x44')](handleEntityNotFound(_0x91854c,null))['then'](respondWithResult(_0x91854c,null))[_0x4245('0x46')](handleError(_0x91854c,null));};exports['create']=function(_0x300e60,_0x5b57d3){return db[_0x4245('0x2d')][_0x4245('0x4b')](_0x300e60['body'],{})['then'](respondWithResult(_0x5b57d3,0xc9))[_0x4245('0x46')](handleError(_0x5b57d3,null));};exports['update']=function(_0x43c050,_0x411c92){if(_0x43c050['body']['id']){delete _0x43c050['body']['id'];}return db[_0x4245('0x2d')][_0x4245('0x4a')]({'where':{'id':_0x43c050[_0x4245('0x4c')]['id']}})[_0x4245('0x44')](handleEntityNotFound(_0x411c92,null))[_0x4245('0x44')](saveUpdates(_0x43c050[_0x4245('0x4d')],null))[_0x4245('0x44')](respondWithResult(_0x411c92,null))['catch'](handleError(_0x411c92,null));};exports[_0x4245('0x25')]=function(_0x52c4e2,_0x4ee04b){return db[_0x4245('0x2d')][_0x4245('0x4a')]({'where':{'id':_0x52c4e2['params']['id']}})[_0x4245('0x44')](handleEntityNotFound(_0x4ee04b,null))[_0x4245('0x44')](removeEntity(_0x4ee04b,null))[_0x4245('0x46')](handleError(_0x4ee04b,null));};exports[_0x4245('0x4e')]=function(_0x8a38e4,_0xd62d15,_0xb374e5){return db[_0x4245('0x2d')]['find']({'where':{'id':_0x8a38e4[_0x4245('0x4c')]['id']},'attributes':['id','recording',_0x4245('0x4f')]})[_0x4245('0x44')](handleEntityNotFound(_0xd62d15,null))[_0x4245('0x44')](function(_0x410ad6){if(_0x410ad6){if(!_0x410ad6['recording']){throw new db[(_0x4245('0x50'))]['ValidationError'](_0x4245('0x51'));}var _0x3d78c2={'Content-Type':'audio/wav','Content-Disposition':'attachment'};if(_0x410ad6[_0x4245('0x4f')]){_0x3d78c2[_0x4245('0x52')]=_0x4245('0x53')+_0x410ad6['msg_id']+'.wav\x22';}_0xd62d15[_0x4245('0x20')](_0x3d78c2);return _0xd62d15['send'](new Buffer(_0x410ad6[_0x4245('0x54')]));}})[_0x4245('0x46')](handleError(_0xd62d15,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3bd6=['VoiceMailMessage','voice_voicemail_messages','dir','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','./voiceMailMessage.attributes','define'];(function(_0x1ac77d,_0x284186){var _0x3ba777=function(_0x456610){while(--_0x456610){_0x1ac77d['push'](_0x1ac77d['shift']());}};_0x3ba777(++_0x284186);}(_0x3bd6,0x148));var _0x63bd=function(_0x1fa31d,_0x391d4b){_0x1fa31d=_0x1fa31d-0x0;var _0xfab2f4=_0x3bd6[_0x1fa31d];return _0xfab2f4;};'use strict';var _=require(_0x63bd('0x0'));var util=require(_0x63bd('0x1'));var logger=require(_0x63bd('0x2'))(_0x63bd('0x3'));var moment=require(_0x63bd('0x4'));var BPromise=require(_0x63bd('0x5'));var rp=require(_0x63bd('0x6'));var fs=require('fs');var path=require(_0x63bd('0x7'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0x63bd('0x8'));module['exports']=function(_0x1560a8,_0x3920f1){return _0x1560a8[_0x63bd('0x9')](_0x63bd('0xa'),attributes,{'tableName':_0x63bd('0xb'),'paranoid':![],'indexes':[{'name':'dir','fields':[_0x63bd('0xc')]}],'timestamps':![]});};
\ No newline at end of file
+var _0x44e2=['util','../../config/logger','api','moment','bluebird','request-promise','path','../../config/environment','./voiceMailMessage.attributes','exports','VoiceMailMessage','voice_voicemail_messages','dir'];(function(_0x2c19df,_0x2dc25c){var _0x3a4ed5=function(_0x21debf){while(--_0x21debf){_0x2c19df['push'](_0x2c19df['shift']());}};_0x3a4ed5(++_0x2dc25c);}(_0x44e2,0x9c));var _0x244e=function(_0x31b715,_0x1af9b4){_0x31b715=_0x31b715-0x0;var _0x567d82=_0x44e2[_0x31b715];return _0x567d82;};'use strict';var _=require('lodash');var util=require(_0x244e('0x0'));var logger=require(_0x244e('0x1'))(_0x244e('0x2'));var moment=require(_0x244e('0x3'));var BPromise=require(_0x244e('0x4'));var rp=require(_0x244e('0x5'));var fs=require('fs');var path=require(_0x244e('0x6'));var rimraf=require('rimraf');var config=require(_0x244e('0x7'));var attributes=require(_0x244e('0x8'));module[_0x244e('0x9')]=function(_0x1d1bfa,_0x3eaaa0){return _0x1d1bfa['define'](_0x244e('0xa'),attributes,{'tableName':_0x244e('0xb'),'paranoid':![],'indexes':[{'name':'dir','fields':[_0x244e('0xc')]}],'timestamps':![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xda3f=['lodash','util','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','request','VoiceMailMessage,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','catch'];(function(_0x2d7f0e,_0x3e6fbd){var _0x110b07=function(_0x557b00){while(--_0x557b00){_0x2d7f0e['push'](_0x2d7f0e['shift']());}};_0x110b07(++_0x3e6fbd);}(_0xda3f,0xf2));var _0xfda3=function(_0x522356,_0x2fbed8){_0x522356=_0x522356-0x0;var _0x13a64c=_0xda3f[_0x522356];return _0x13a64c;};'use strict';var _=require(_0xfda3('0x0'));var util=require(_0xfda3('0x1'));var moment=require(_0xfda3('0x2'));var BPromise=require(_0xfda3('0x3'));var rs=require(_0xfda3('0x4'));var fs=require('fs');var Redis=require(_0xfda3('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0xfda3('0x6'));var logger=require(_0xfda3('0x7'))(_0xfda3('0x8'));var config=require('../../config/environment');var jayson=require(_0xfda3('0x9'));var client=jayson[_0xfda3('0xa')][_0xfda3('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x4c7fe0,_0x4016af,_0x5be632){return new BPromise(function(_0x547963,_0x18dca1){return client[_0xfda3('0xc')](_0x4c7fe0,_0x5be632)['then'](function(_0x2dea5c){logger['info'](_0xfda3('0xd'),_0x4016af,_0xfda3('0xe'));logger[_0xfda3('0xf')]('VoiceMailMessage,\x20%s,\x20%s,\x20%s',_0x4016af,_0xfda3('0xe'),JSON[_0xfda3('0x10')](_0x2dea5c));if(_0x2dea5c[_0xfda3('0x11')]){if(_0x2dea5c[_0xfda3('0x11')][_0xfda3('0x12')]===0x1f4){logger[_0xfda3('0x11')]('VoiceMailMessage,\x20%s,\x20%s',_0x4016af,_0x2dea5c[_0xfda3('0x11')][_0xfda3('0x13')]);return _0x18dca1(_0x2dea5c[_0xfda3('0x11')][_0xfda3('0x13')]);}logger[_0xfda3('0x11')](_0xfda3('0xd'),_0x4016af,_0x2dea5c['error']['message']);return _0x547963(_0x2dea5c[_0xfda3('0x11')][_0xfda3('0x13')]);}else{logger['info']('VoiceMailMessage,\x20%s,\x20%s',_0x4016af,_0xfda3('0xe'));_0x547963(_0x2dea5c[_0xfda3('0x14')][_0xfda3('0x13')]);}})[_0xfda3('0x15')](function(_0x1b1232){logger[_0xfda3('0x11')]('VoiceMailMessage,\x20%s,\x20%s',_0x4016af,_0x1b1232);_0x18dca1(_0x1b1232);});});}
\ No newline at end of file
+var _0xecd6=['bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','then','info','debug','VoiceMailMessage,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','VoiceMailMessage,\x20%s,\x20%s','message','result','catch','lodash'];(function(_0x191235,_0x5e65b9){var _0x18b224=function(_0x5519ec){while(--_0x5519ec){_0x191235['push'](_0x191235['shift']());}};_0x18b224(++_0x5e65b9);}(_0xecd6,0xce));var _0x6ecd=function(_0x3cb3d0,_0x1501c9){_0x3cb3d0=_0x3cb3d0-0x0;var _0x2f45c9=_0xecd6[_0x3cb3d0];return _0x2f45c9;};'use strict';var _=require(_0x6ecd('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0x6ecd('0x1'));var rs=require(_0x6ecd('0x2'));var fs=require('fs');var Redis=require(_0x6ecd('0x3'));var db=require(_0x6ecd('0x4'))['db'];var utils=require(_0x6ecd('0x5'));var logger=require(_0x6ecd('0x6'))(_0x6ecd('0x7'));var config=require(_0x6ecd('0x8'));var jayson=require('jayson/promise');var client=jayson[_0x6ecd('0x9')][_0x6ecd('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x155322,_0x38751e,_0x69314a){return new BPromise(function(_0x48cdfc,_0x5c33f8){return client['request'](_0x155322,_0x69314a)[_0x6ecd('0xb')](function(_0x3e5ccc){logger[_0x6ecd('0xc')]('VoiceMailMessage,\x20%s,\x20%s',_0x38751e,'request\x20sent');logger[_0x6ecd('0xd')](_0x6ecd('0xe'),_0x38751e,_0x6ecd('0xf'),JSON[_0x6ecd('0x10')](_0x3e5ccc));if(_0x3e5ccc[_0x6ecd('0x11')]){if(_0x3e5ccc['error'][_0x6ecd('0x12')]===0x1f4){logger['error'](_0x6ecd('0x13'),_0x38751e,_0x3e5ccc[_0x6ecd('0x11')][_0x6ecd('0x14')]);return _0x5c33f8(_0x3e5ccc[_0x6ecd('0x11')]['message']);}logger[_0x6ecd('0x11')](_0x6ecd('0x13'),_0x38751e,_0x3e5ccc[_0x6ecd('0x11')]['message']);return _0x48cdfc(_0x3e5ccc[_0x6ecd('0x11')][_0x6ecd('0x14')]);}else{logger['info'](_0x6ecd('0x13'),_0x38751e,_0x6ecd('0xf'));_0x48cdfc(_0x3e5ccc[_0x6ecd('0x15')][_0x6ecd('0x14')]);}})[_0x6ecd('0x16')](function(_0x129098){logger[_0x6ecd('0x11')](_0x6ecd('0x13'),_0x38751e,_0x129098);_0x5c33f8(_0x129098);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3db9=['get','index','/:id','isAuthenticated','show','/:id/sounds','getSounds','post','create','addSound','put','update','delete','destroy','/:id/sounds/:id2','removeSound','multer','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment'];(function(_0x45fe79,_0x23a48b){var _0x23720c=function(_0x1088a1){while(--_0x1088a1){_0x45fe79['push'](_0x45fe79['shift']());}};_0x23720c(++_0x23a48b);}(_0x3db9,0xb1));var _0x93db=function(_0x4f0035,_0x2fcaf6){_0x4f0035=_0x4f0035-0x0;var _0x4ae091=_0x3db9[_0x4f0035];return _0x4ae091;};'use strict';var multer=require(_0x93db('0x0'));var util=require('util');var path=require('path');var timeout=require('connect-timeout');var express=require(_0x93db('0x1'));var router=express[_0x93db('0x2')]();var fs_extra=require(_0x93db('0x3'));var auth=require(_0x93db('0x4'));var interaction=require(_0x93db('0x5'));var config=require(_0x93db('0x6'));var controller=require('./voiceMusicOnHold.controller');router[_0x93db('0x7')]('/',auth['isAuthenticated'](),controller[_0x93db('0x8')]);router[_0x93db('0x7')](_0x93db('0x9'),auth[_0x93db('0xa')](),controller[_0x93db('0xb')]);router[_0x93db('0x7')](_0x93db('0xc'),auth[_0x93db('0xa')](),controller[_0x93db('0xd')]);router[_0x93db('0xe')]('/',auth[_0x93db('0xa')](),controller[_0x93db('0xf')]);router[_0x93db('0xe')](_0x93db('0xc'),auth['isAuthenticated'](),controller[_0x93db('0x10')]);router[_0x93db('0x11')](_0x93db('0x9'),auth[_0x93db('0xa')](),controller[_0x93db('0x12')]);router[_0x93db('0x13')]('/:id',auth['isAuthenticated'](),controller[_0x93db('0x14')]);router[_0x93db('0x13')](_0x93db('0x15'),auth[_0x93db('0xa')](),controller[_0x93db('0x16')]);module['exports']=router;
\ No newline at end of file
+var _0xe1e6=['delete','destroy','/:id/sounds/:id2','removeSound','util','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./voiceMusicOnHold.controller','get','isAuthenticated','index','/:id','show','/:id/sounds','getSounds','post','addSound','put','update'];(function(_0x57a002,_0x1197b9){var _0x278d89=function(_0x3fc91f){while(--_0x3fc91f){_0x57a002['push'](_0x57a002['shift']());}};_0x278d89(++_0x1197b9);}(_0xe1e6,0x184));var _0x6e1e=function(_0x56be81,_0x29c36d){_0x56be81=_0x56be81-0x0;var _0x528a15=_0xe1e6[_0x56be81];return _0x528a15;};'use strict';var multer=require('multer');var util=require(_0x6e1e('0x0'));var path=require(_0x6e1e('0x1'));var timeout=require(_0x6e1e('0x2'));var express=require('express');var router=express[_0x6e1e('0x3')]();var fs_extra=require(_0x6e1e('0x4'));var auth=require(_0x6e1e('0x5'));var interaction=require(_0x6e1e('0x6'));var config=require(_0x6e1e('0x7'));var controller=require(_0x6e1e('0x8'));router[_0x6e1e('0x9')]('/',auth[_0x6e1e('0xa')](),controller[_0x6e1e('0xb')]);router['get'](_0x6e1e('0xc'),auth[_0x6e1e('0xa')](),controller[_0x6e1e('0xd')]);router[_0x6e1e('0x9')](_0x6e1e('0xe'),auth[_0x6e1e('0xa')](),controller[_0x6e1e('0xf')]);router[_0x6e1e('0x10')]('/',auth[_0x6e1e('0xa')](),controller['create']);router[_0x6e1e('0x10')](_0x6e1e('0xe'),auth[_0x6e1e('0xa')](),controller[_0x6e1e('0x11')]);router[_0x6e1e('0x12')]('/:id',auth['isAuthenticated'](),controller[_0x6e1e('0x13')]);router[_0x6e1e('0x14')]('/:id',auth[_0x6e1e('0xa')](),controller[_0x6e1e('0x15')]);router[_0x6e1e('0x14')](_0x6e1e('0x16'),auth[_0x6e1e('0xa')](),controller[_0x6e1e('0x17')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa967=['custom','files','mp3nb','quietmp3nb','quietmp3','mp3','alpha','TIMESTAMP','BOOLEAN','sequelize','STRING','name','ENUM'];(function(_0x110c3d,_0x12ee06){var _0x226d67=function(_0x1fb6e1){while(--_0x1fb6e1){_0x110c3d['push'](_0x110c3d['shift']());}};_0x226d67(++_0x12ee06);}(_0xa967,0x182));var _0x7a96=function(_0x52c444,_0x4dbdbf){_0x52c444=_0x52c444-0x0;var _0x4bba2c=_0xa967[_0x52c444];return _0x4bba2c;};'use strict';var Sequelize=require(_0x7a96('0x0'));module['exports']={'name':{'type':Sequelize[_0x7a96('0x1')],'allowNull':![],'unique':_0x7a96('0x2')},'mode':{'type':Sequelize[_0x7a96('0x3')](_0x7a96('0x4'),_0x7a96('0x5'),_0x7a96('0x6'),_0x7a96('0x7'),_0x7a96('0x8'),_0x7a96('0x9')),'allowNull':!![],'defaultValue':_0x7a96('0x5')},'directory':{'type':Sequelize['STRING'],'allowNull':!![]},'application':{'type':Sequelize[_0x7a96('0x1')],'allowNull':!![]},'digit':{'type':Sequelize['STRING'],'allowNull':!![]},'sort':{'type':Sequelize['STRING'],'allowNull':!![],'defaultValue':_0x7a96('0xa')},'format':{'type':Sequelize[_0x7a96('0x1')],'allowNull':!![]},'stamp':{'type':_0x7a96('0xb')},'defaultEntry':{'type':Sequelize[_0x7a96('0xc')],'defaultValue':0x0}};
\ No newline at end of file
+var _0xb351=['files','sequelize','exports','STRING','ENUM','quietmp3nb','quietmp3','mp3'];(function(_0x4c0c99,_0x10d2a8){var _0x190593=function(_0x3a1df0){while(--_0x3a1df0){_0x4c0c99['push'](_0x4c0c99['shift']());}};_0x190593(++_0x10d2a8);}(_0xb351,0xf9));var _0x1b35=function(_0x4cb1ee,_0x466384){_0x4cb1ee=_0x4cb1ee-0x0;var _0x1367ff=_0xb351[_0x4cb1ee];return _0x1367ff;};'use strict';var Sequelize=require(_0x1b35('0x0'));module[_0x1b35('0x1')]={'name':{'type':Sequelize[_0x1b35('0x2')],'allowNull':![],'unique':'name'},'mode':{'type':Sequelize[_0x1b35('0x3')]('custom','files','mp3nb',_0x1b35('0x4'),_0x1b35('0x5'),_0x1b35('0x6')),'allowNull':!![],'defaultValue':_0x1b35('0x7')},'directory':{'type':Sequelize[_0x1b35('0x2')],'allowNull':!![]},'application':{'type':Sequelize[_0x1b35('0x2')],'allowNull':!![]},'digit':{'type':Sequelize['STRING'],'allowNull':!![]},'sort':{'type':Sequelize[_0x1b35('0x2')],'allowNull':!![],'defaultValue':'alpha'},'format':{'type':Sequelize['STRING'],'allowNull':!![]},'stamp':{'type':'TIMESTAMP'},'defaultEntry':{'type':Sequelize['BOOLEAN'],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x491a=['role','autoAssociation','UserProfileResource','readdirSync','forEach','unlinkSync','rmdirSync','Sequelize','ValidationError','message','addSound','Sound','save_name','converted_format','createdAt','server/files/sounds/converted','format','%s.%s','symlinkSync','removeSound','findOne','id2','getSounds','nolimit','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','to-csv','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','count','set','apply','reject','save','update','then','destroy','get','error','stack','name','send','map','VoiceMusicOnHold','rawAttributes','fieldName','type','query','keys','filters','intersection','attributes','model','fields','hasOwnProperty','limit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','length','find','body','sequelize','transaction','mode','files','directory','join','root','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user'];(function(_0x2f4d41,_0x525047){var _0x3b0bb2=function(_0x19960d){while(--_0x19960d){_0x2f4d41['push'](_0x2f4d41['shift']());}};_0x3b0bb2(++_0x525047);}(_0x491a,0x86));var _0xa491=function(_0xdbb6cb,_0x3b8fda){_0xdbb6cb=_0xdbb6cb-0x0;var _0x476b50=_0x491a[_0xdbb6cb];return _0x476b50;};'use strict';var emlformat=require(_0xa491('0x0'));var rimraf=require(_0xa491('0x1'));var zipdir=require(_0xa491('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xa491('0x3'));var moment=require(_0xa491('0x4'));var BPromise=require(_0xa491('0x5'));var Mustache=require(_0xa491('0x6'));var util=require(_0xa491('0x7'));var path=require('path');var sox=require(_0xa491('0x8'));var csv=require('to-csv');var ejs=require(_0xa491('0x9'));var fs=require('fs');var fs_extra=require(_0xa491('0xa'));var _=require(_0xa491('0xb'));var squel=require(_0xa491('0xc'));var crypto=require(_0xa491('0xd'));var jsforce=require(_0xa491('0xe'));var deskjs=require('desk.js');var toCsv=require(_0xa491('0xf'));var querystring=require(_0xa491('0x10'));var Papa=require(_0xa491('0x11'));var Redis=require(_0xa491('0x12'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0xa491('0x13'));var hardwareService=require(_0xa491('0x14'));var logger=require('../../config/logger')(_0xa491('0x15'));var utils=require(_0xa491('0x16'));var config=require(_0xa491('0x17'));var licenseUtil=require(_0xa491('0x18'));var db=require(_0xa491('0x19'))['db'];function respondWithStatusCode(_0x3fa1b2,_0x36fda7){_0x36fda7=_0x36fda7||0xcc;return function(_0x545c17){if(_0x545c17){return _0x3fa1b2['sendStatus'](_0x36fda7);}return _0x3fa1b2[_0xa491('0x1a')](_0x36fda7)[_0xa491('0x1b')]();};}function respondWithResult(_0x117c1c,_0xe43baf){_0xe43baf=_0xe43baf||0xc8;return function(_0x20b286){if(_0x20b286){return _0x117c1c[_0xa491('0x1a')](_0xe43baf)[_0xa491('0x1c')](_0x20b286);}};}function respondWithFilteredResult(_0x5e2af3,_0x31e9f8){return function(_0x170041){if(_0x170041){var _0x400244=typeof _0x31e9f8[_0xa491('0x1d')]==='undefined'&&typeof _0x31e9f8['limit']===_0xa491('0x1e');var _0x5b98dc=_0x170041['count'];var _0x3fac6d=_0x400244?0x0:_0x31e9f8[_0xa491('0x1d')];var _0x28b510=_0x400244?_0x170041[_0xa491('0x1f')]:_0x31e9f8[_0xa491('0x1d')]+_0x31e9f8['limit'];var _0x4c23ea;if(_0x28b510>=_0x5b98dc){_0x28b510=_0x5b98dc;_0x4c23ea=0xc8;}else{_0x4c23ea=0xce;}_0x5e2af3[_0xa491('0x1a')](_0x4c23ea);return _0x5e2af3[_0xa491('0x20')]('Content-Range',_0x3fac6d+'-'+_0x28b510+'/'+_0x5b98dc)[_0xa491('0x1c')](_0x170041);}return null;};}function patchUpdates(_0x39ff25){return function(_0x76b778){try{jsonpatch[_0xa491('0x21')](_0x76b778,_0x39ff25,!![]);}catch(_0x2a355d){return BPromise[_0xa491('0x22')](_0x2a355d);}return _0x76b778[_0xa491('0x23')]();};}function saveUpdates(_0x33ec29,_0x5de71a){return function(_0x4856eb){if(_0x4856eb){return _0x4856eb[_0xa491('0x24')](_0x33ec29)[_0xa491('0x25')](function(_0x37f91a){return _0x37f91a;});}return null;};}function removeEntity(_0xd0bbd3,_0x46234f){return function(_0x5a4b57){if(_0x5a4b57){return _0x5a4b57[_0xa491('0x26')]()[_0xa491('0x25')](function(){var _0x318250=_0x5a4b57[_0xa491('0x27')]({'plain':!![]});var _0x15b4c8='MusicOnHolds';return db['UserProfileResource'][_0xa491('0x26')]({'where':{'type':_0x15b4c8,'resourceId':_0x318250['id']}})[_0xa491('0x25')](function(){return _0x5a4b57;});})[_0xa491('0x25')](function(){_0xd0bbd3['status'](0xcc)[_0xa491('0x1b')]();});}};}function handleEntityNotFound(_0x124cd0,_0xeaf3e){return function(_0x213afc){if(!_0x213afc){_0x124cd0['sendStatus'](0x194);}return _0x213afc;};}function handleError(_0x3367f2,_0x7c0034){_0x7c0034=_0x7c0034||0x1f4;return function(_0x1aad47){logger[_0xa491('0x28')](_0x1aad47[_0xa491('0x29')]);if(_0x1aad47['name']){delete _0x1aad47[_0xa491('0x2a')];}_0x3367f2[_0xa491('0x1a')](_0x7c0034)[_0xa491('0x2b')](_0x1aad47);};}exports['index']=function(_0x1f9c66,_0x1614d0){var _0x21a26f={},_0x1992a5={},_0x1f1c2f={'count':0x0,'rows':[]};var _0x414195=_[_0xa491('0x2c')](db[_0xa491('0x2d')][_0xa491('0x2e')],function(_0x31df59){return{'name':_0x31df59[_0xa491('0x2f')],'type':_0x31df59[_0xa491('0x30')]['key']};});_0x1992a5['model']=_['map'](_0x414195,'name');_0x1992a5[_0xa491('0x31')]=_[_0xa491('0x32')](_0x1f9c66[_0xa491('0x31')]);_0x1992a5[_0xa491('0x33')]=_[_0xa491('0x34')](_0x1992a5['model'],_0x1992a5[_0xa491('0x31')]);_0x21a26f[_0xa491('0x35')]=_['intersection'](_0x1992a5[_0xa491('0x36')],qs['fields'](_0x1f9c66[_0xa491('0x31')][_0xa491('0x37')]));_0x21a26f['attributes']=_0x21a26f[_0xa491('0x35')]['length']?_0x21a26f[_0xa491('0x35')]:_0x1992a5[_0xa491('0x36')];if(!_0x1f9c66[_0xa491('0x31')][_0xa491('0x38')]('nolimit')){_0x21a26f[_0xa491('0x39')]=qs[_0xa491('0x39')](_0x1f9c66[_0xa491('0x31')][_0xa491('0x39')]);_0x21a26f[_0xa491('0x1d')]=qs[_0xa491('0x1d')](_0x1f9c66['query'][_0xa491('0x1d')]);}_0x21a26f[_0xa491('0x3a')]=qs[_0xa491('0x3b')](_0x1f9c66['query'][_0xa491('0x3b')]);delete _0x1f9c66[_0xa491('0x31')]['sort'];_0x21a26f[_0xa491('0x3c')]=qs[_0xa491('0x33')](_[_0xa491('0x3d')](_0x1f9c66[_0xa491('0x31')],_0x1992a5['filters']),_0x414195);if(_0x1f9c66['query'][_0xa491('0x3e')]){_0x21a26f[_0xa491('0x3c')]=_[_0xa491('0x3f')](_0x21a26f[_0xa491('0x3c')],{'$or':_[_0xa491('0x2c')](_0x414195,function(_0x129e80){if(_0x129e80[_0xa491('0x30')]!==_0xa491('0x40')){var _0x5ddad9={};_0x5ddad9[_0x129e80['name']]={'$like':'%'+_0x1f9c66[_0xa491('0x31')][_0xa491('0x3e')]+'%'};return _0x5ddad9;}})});}_0x21a26f=_[_0xa491('0x3f')]({},_0x21a26f,_0x1f9c66[_0xa491('0x41')]);var _0x33ebd3={'where':_0x21a26f[_0xa491('0x3c')]};return db['VoiceMusicOnHold'][_0xa491('0x1f')](_0x33ebd3)[_0xa491('0x25')](function(_0xe203b0){_0x1f1c2f[_0xa491('0x1f')]=_0xe203b0;if(_0x1f9c66['query'][_0xa491('0x42')]){_0x21a26f[_0xa491('0x43')]=[{'all':!![]}];}return db['VoiceMusicOnHold'][_0xa491('0x44')](_0x21a26f);})[_0xa491('0x25')](function(_0x467aff){_0x1f1c2f[_0xa491('0x45')]=_0x467aff;return _0x1f1c2f;})[_0xa491('0x25')](respondWithFilteredResult(_0x1614d0,_0x21a26f))[_0xa491('0x46')](handleError(_0x1614d0,null));};exports[_0xa491('0x47')]=function(_0x38b64d,_0x5830cc){var _0x165216={'raw':![],'where':{'id':_0x38b64d[_0xa491('0x48')]['id']}},_0x521ea6={};_0x521ea6[_0xa491('0x36')]=_['keys'](db['VoiceMusicOnHold']['rawAttributes']);_0x521ea6['query']=_[_0xa491('0x32')](_0x38b64d[_0xa491('0x31')]);_0x521ea6[_0xa491('0x33')]=_[_0xa491('0x34')](_0x521ea6[_0xa491('0x36')],_0x521ea6[_0xa491('0x31')]);_0x165216[_0xa491('0x35')]=_[_0xa491('0x34')](_0x521ea6['model'],qs[_0xa491('0x37')](_0x38b64d[_0xa491('0x31')]['fields']));_0x165216[_0xa491('0x35')]=_0x165216[_0xa491('0x35')][_0xa491('0x49')]?_0x165216[_0xa491('0x35')]:_0x521ea6[_0xa491('0x36')];if(_0x38b64d['query']['includeAll']){_0x165216['include']=[{'all':!![]}];}_0x165216=_[_0xa491('0x3f')]({},_0x165216,_0x38b64d[_0xa491('0x41')]);return db[_0xa491('0x2d')][_0xa491('0x4a')](_0x165216)[_0xa491('0x25')](handleEntityNotFound(_0x5830cc,null))[_0xa491('0x25')](respondWithResult(_0x5830cc,null))[_0xa491('0x46')](handleError(_0x5830cc,null));};exports[_0xa491('0x24')]=function(_0x32b878,_0x149c52){if(_0x32b878['body']['id']){delete _0x32b878[_0xa491('0x4b')]['id'];}return db[_0xa491('0x2d')][_0xa491('0x4a')]({'where':{'id':_0x32b878[_0xa491('0x48')]['id']}})['then'](handleEntityNotFound(_0x149c52,null))[_0xa491('0x25')](saveUpdates(_0x32b878['body'],null))[_0xa491('0x25')](respondWithResult(_0x149c52,null))[_0xa491('0x46')](handleError(_0x149c52,null));};exports['create']=function(_0xf4a36f,_0x5796ed,_0x40b1f8){return db[_0xa491('0x4c')][_0xa491('0x4d')](function(_0x951ccd){if(_0xf4a36f[_0xa491('0x4b')][_0xa491('0x4e')]===_0xa491('0x4f')){_0xf4a36f['body'][_0xa491('0x50')]=path[_0xa491('0x51')](config[_0xa491('0x52')],'server/files/moh',_0xf4a36f[_0xa491('0x4b')]['name']);}return db['VoiceMusicOnHold'][_0xa491('0x53')](_0xf4a36f[_0xa491('0x4b')],{'transaction':_0x951ccd})[_0xa491('0x25')](function(_0x1b0604){if(_0xf4a36f[_0xa491('0x4b')][_0xa491('0x4e')]===_0xa491('0x4f')){fs['mkdirSync'](_0x1b0604[_0xa491('0x50')],parseInt('0777',0x8));}var _0xc200fd=_0xf4a36f[_0xa491('0x54')][_0xa491('0x27')]({'plain':!![]});if(!_0xc200fd)throw new Error(_0xa491('0x55'));if(_0xc200fd[_0xa491('0x56')]==='user'){var _0x488d4b=_0x1b0604['get']({'plain':!![]});return db['UserProfileSection'][_0xa491('0x4a')]({'where':{'name':'MusicOnHolds','userProfileId':_0xc200fd['userProfileId']},'raw':!![]})[_0xa491('0x25')](function(_0x5b2e62){if(_0x5b2e62&&_0x5b2e62[_0xa491('0x57')]===0x0){return db[_0xa491('0x58')]['create']({'name':_0x488d4b[_0xa491('0x2a')],'resourceId':_0x488d4b['id'],'type':_0x5b2e62[_0xa491('0x2a')],'sectionId':_0x5b2e62['id']},{})[_0xa491('0x25')](function(){return _0x1b0604;});}else{return _0x1b0604;}})[_0xa491('0x46')](function(_0x3c5966){logger[_0xa491('0x28')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x3c5966);});}return _0x1b0604;});})[_0xa491('0x25')](respondWithResult(_0x5796ed,0xc9))[_0xa491('0x46')](handleError(_0x5796ed,null));};exports['destroy']=function(_0x26a071,_0x1ff687,_0x4c6409){var _0xfe4ace;return db[_0xa491('0x2d')][_0xa491('0x4a')]({'where':{'id':_0x26a071[_0xa491('0x48')]['id']}})[_0xa491('0x25')](function(_0x3a49fa){if(_0x3a49fa){return db['sequelize']['transaction'](function(_0x5e1202){return _0x3a49fa[_0xa491('0x26')]({'transaction':_0x5e1202,'raw':!![]})[_0xa491('0x25')](function(_0x1d2f0e){if(_0x1d2f0e['directory']){fs[_0xa491('0x59')](_0x1d2f0e[_0xa491('0x50')])[_0xa491('0x5a')](function(_0x49e63b){fs[_0xa491('0x5b')](path[_0xa491('0x51')](_0x1d2f0e[_0xa491('0x50')],_0x49e63b));});fs[_0xa491('0x5c')](_0x1d2f0e[_0xa491('0x50')]);}return _0x1d2f0e;});})[_0xa491('0x46')](function(_0x1e50dd){throw new db[(_0xa491('0x5d'))][(_0xa491('0x5e'))](_0x1e50dd[_0xa491('0x5f')]);});}})[_0xa491('0x25')](handleEntityNotFound(_0x1ff687,null))[_0xa491('0x25')](removeEntity(_0x1ff687,null))['catch'](handleError(_0x1ff687,null));};exports[_0xa491('0x60')]=function(_0x47c9e0,_0x229a02,_0x27008b){return db[_0xa491('0x4c')]['transaction'](function(_0x48b98b){var _0x1e7104;return db['VoiceMusicOnHold'][_0xa491('0x4a')]({'where':{'id':_0x47c9e0[_0xa491('0x48')]['id']}})[_0xa491('0x25')](function(_0x31f02b){if(_0x31f02b){_0x1e7104=_0x31f02b;return _0x31f02b['addSound'](_0x47c9e0['body']['id'],{'transaction':_0x48b98b});}})[_0xa491('0x25')](function(_0x48a687){if(_0x48a687){return db[_0xa491('0x61')]['findOne']({'where':{'id':_0x47c9e0[_0xa491('0x4b')]['id']},'attributes':['id',_0xa491('0x2a'),_0xa491('0x62'),_0xa491('0x63'),_0xa491('0x64')],'raw':!![]});}})['then'](function(_0x8bf35a){if(_0x8bf35a){var _0x2149bd=path[_0xa491('0x51')](config[_0xa491('0x52')],_0xa491('0x65'),util[_0xa491('0x66')]('%s.%s',path['basename'](_0x8bf35a[_0xa491('0x62')],path['extname'](_0x8bf35a[_0xa491('0x62')])),_0x8bf35a[_0xa491('0x63')]));var _0x4e963e=path[_0xa491('0x51')](config[_0xa491('0x52')],'server/files/moh',_0x1e7104[_0xa491('0x2a')],util[_0xa491('0x66')](_0xa491('0x67'),_0x8bf35a[_0xa491('0x2a')],_0x8bf35a['converted_format']));fs[_0xa491('0x68')](_0x2149bd,_0x4e963e);return _0x8bf35a;}})['catch'](function(_0x32d8f5){throw new db[(_0xa491('0x5d'))]['ValidationError'](_0x32d8f5[_0xa491('0x5f')]);});})[_0xa491('0x25')](handleEntityNotFound(_0x229a02,null))[_0xa491('0x25')](respondWithResult(_0x229a02,0xc9))['catch'](handleError(_0x229a02,null));};exports[_0xa491('0x69')]=function(_0x4c8bca,_0x58e386,_0x2a945a){return db[_0xa491('0x4c')][_0xa491('0x4d')](function(_0x47d4da){var _0x2fe62c;return db['VoiceMusicOnHold'][_0xa491('0x6a')]({'where':{'id':_0x4c8bca[_0xa491('0x48')]['id']}})[_0xa491('0x25')](handleEntityNotFound(_0x58e386,null))[_0xa491('0x25')](function(_0x365ae4){if(_0x365ae4){_0x2fe62c=_0x365ae4;return _0x365ae4['removeSound'](_0x4c8bca[_0xa491('0x48')][_0xa491('0x6b')]);}})[_0xa491('0x25')](function(_0x17c091){if(_0x17c091){return db[_0xa491('0x61')][_0xa491('0x6a')]({'where':{'id':_0x4c8bca[_0xa491('0x48')][_0xa491('0x6b')]},'attributes':['id','name',_0xa491('0x62'),'converted_format','createdAt'],'raw':!![]});}})[_0xa491('0x25')](function(_0xf746c0){if(_0xf746c0){fs[_0xa491('0x5b')](path[_0xa491('0x51')](_0x2fe62c[_0xa491('0x50')],util['format'](_0xa491('0x67'),_0xf746c0[_0xa491('0x2a')],_0xf746c0[_0xa491('0x63')])));return _0xf746c0;}})[_0xa491('0x46')](function(_0x3c623f){throw new db['Sequelize'][(_0xa491('0x5e'))](_0x3c623f[_0xa491('0x5f')]);});})[_0xa491('0x25')](handleEntityNotFound(_0x58e386,null))[_0xa491('0x25')](respondWithStatusCode(_0x58e386,0xcc))[_0xa491('0x46')](handleError(_0x58e386,null));};exports[_0xa491('0x6c')]=function(_0x2fd3a3,_0x45400e,_0x4de521){var _0x52c2c7={};var _0x56963c={};var _0x260f6a;var _0x49c809;return db[_0xa491('0x2d')][_0xa491('0x6a')]({'where':{'id':_0x2fd3a3[_0xa491('0x48')]['id']}})[_0xa491('0x25')](handleEntityNotFound(_0x45400e,null))[_0xa491('0x25')](function(_0x4e683b){if(_0x4e683b){_0x260f6a=_0x4e683b;_0x56963c['model']=_[_0xa491('0x32')](db[_0xa491('0x61')][_0xa491('0x2e')]);_0x56963c['query']=_[_0xa491('0x32')](_0x2fd3a3[_0xa491('0x31')]);_0x56963c[_0xa491('0x33')]=_[_0xa491('0x34')](_0x56963c[_0xa491('0x36')],_0x56963c[_0xa491('0x31')]);_0x52c2c7[_0xa491('0x35')]=_[_0xa491('0x34')](_0x56963c[_0xa491('0x36')],qs[_0xa491('0x37')](_0x2fd3a3[_0xa491('0x31')][_0xa491('0x37')]));_0x52c2c7['attributes']=_0x52c2c7[_0xa491('0x35')][_0xa491('0x49')]?_0x52c2c7[_0xa491('0x35')]:_0x56963c[_0xa491('0x36')];_0x52c2c7['order']=qs['sort'](_0x2fd3a3[_0xa491('0x31')]['sort']);_0x52c2c7[_0xa491('0x3c')]=qs[_0xa491('0x33')](_[_0xa491('0x3d')](_0x2fd3a3['query'],_0x56963c[_0xa491('0x33')]));if(_0x2fd3a3[_0xa491('0x31')][_0xa491('0x3e')]){_0x52c2c7['where']=_[_0xa491('0x3f')](_0x52c2c7[_0xa491('0x3c')],{'$or':_[_0xa491('0x2c')](_0x52c2c7[_0xa491('0x35')],function(_0x143259){var _0x5f00b4={};_0x5f00b4[_0x143259]={'$like':'%'+_0x2fd3a3['query']['filter']+'%'};return _0x5f00b4;})});}_0x52c2c7=_['merge']({},_0x52c2c7,_0x2fd3a3[_0xa491('0x41')]);return _0x260f6a[_0xa491('0x6c')](_0x52c2c7);}})[_0xa491('0x25')](function(_0x3b410a){if(_0x3b410a){_0x49c809=_0x3b410a['length'];if(!_0x2fd3a3[_0xa491('0x31')]['hasOwnProperty'](_0xa491('0x6d'))){_0x52c2c7['limit']=qs[_0xa491('0x39')](_0x2fd3a3['query']['limit']);_0x52c2c7[_0xa491('0x1d')]=qs[_0xa491('0x1d')](_0x2fd3a3[_0xa491('0x31')][_0xa491('0x1d')]);}return _0x260f6a[_0xa491('0x6c')](_0x52c2c7);}})[_0xa491('0x25')](function(_0x20765c){if(_0x20765c){return _0x20765c?{'count':_0x49c809,'rows':_0x20765c}:null;}})[_0xa491('0x25')](respondWithResult(_0x45400e,null))[_0xa491('0x46')](handleError(_0x45400e,null));};
\ No newline at end of file
+var _0xc2f1=['VoiceMusicOnHold','includeAll','include','show','params','find','catch','body','create','sequelize','transaction','mode','files','directory','root','server/files/moh','mkdirSync','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','forEach','join','Sequelize','ValidationError','message','addSound','Sound','findOne','converted_format','server/files/sounds/converted','format','%s.%s','save_name','symlinkSync','removeSound','id2','unlinkSync','order','merge','getSounds','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','end','json','offset','undefined','count','limit','status','Content-Range','apply','save','update','then','destroy','get','MusicOnHolds','error','name','index','map','rawAttributes','type','model','query','keys','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','sort','where','pick','filter','options'];(function(_0x2abc3d,_0x48edca){var _0x252745=function(_0x32bb6f){while(--_0x32bb6f){_0x2abc3d['push'](_0x2abc3d['shift']());}};_0x252745(++_0x48edca);}(_0xc2f1,0x166));var _0x1c2f=function(_0x404845,_0x237a30){_0x404845=_0x404845-0x0;var _0xae65c6=_0xc2f1[_0x404845];return _0xae65c6;};'use strict';var emlformat=require(_0x1c2f('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x1c2f('0x1'));var jsonpatch=require(_0x1c2f('0x2'));var rp=require(_0x1c2f('0x3'));var moment=require(_0x1c2f('0x4'));var BPromise=require(_0x1c2f('0x5'));var Mustache=require(_0x1c2f('0x6'));var util=require(_0x1c2f('0x7'));var path=require('path');var sox=require('sox');var csv=require(_0x1c2f('0x8'));var ejs=require(_0x1c2f('0x9'));var fs=require('fs');var fs_extra=require(_0x1c2f('0xa'));var _=require(_0x1c2f('0xb'));var squel=require(_0x1c2f('0xc'));var crypto=require(_0x1c2f('0xd'));var jsforce=require(_0x1c2f('0xe'));var deskjs=require(_0x1c2f('0xf'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x1c2f('0x10'));var Redis=require(_0x1c2f('0x11'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x1c2f('0x12'));var hardwareService=require(_0x1c2f('0x13'));var logger=require(_0x1c2f('0x14'))(_0x1c2f('0x15'));var utils=require(_0x1c2f('0x16'));var config=require(_0x1c2f('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0x1c2f('0x18'))['db'];function respondWithStatusCode(_0x23e3ad,_0x234441){_0x234441=_0x234441||0xcc;return function(_0x456954){if(_0x456954){return _0x23e3ad[_0x1c2f('0x19')](_0x234441);}return _0x23e3ad['status'](_0x234441)[_0x1c2f('0x1a')]();};}function respondWithResult(_0x9d0ffc,_0x32b382){_0x32b382=_0x32b382||0xc8;return function(_0x4dfd93){if(_0x4dfd93){return _0x9d0ffc['status'](_0x32b382)[_0x1c2f('0x1b')](_0x4dfd93);}};}function respondWithFilteredResult(_0x5c2c8c,_0x23d4e1){return function(_0x53753a){if(_0x53753a){var _0x1a10d5=typeof _0x23d4e1[_0x1c2f('0x1c')]===_0x1c2f('0x1d')&&typeof _0x23d4e1['limit']===_0x1c2f('0x1d');var _0x4ba279=_0x53753a[_0x1c2f('0x1e')];var _0x1d3aba=_0x1a10d5?0x0:_0x23d4e1[_0x1c2f('0x1c')];var _0x43366d=_0x1a10d5?_0x53753a[_0x1c2f('0x1e')]:_0x23d4e1['offset']+_0x23d4e1[_0x1c2f('0x1f')];var _0x854c22;if(_0x43366d>=_0x4ba279){_0x43366d=_0x4ba279;_0x854c22=0xc8;}else{_0x854c22=0xce;}_0x5c2c8c[_0x1c2f('0x20')](_0x854c22);return _0x5c2c8c['set'](_0x1c2f('0x21'),_0x1d3aba+'-'+_0x43366d+'/'+_0x4ba279)[_0x1c2f('0x1b')](_0x53753a);}return null;};}function patchUpdates(_0x2fe088){return function(_0x321c77){try{jsonpatch[_0x1c2f('0x22')](_0x321c77,_0x2fe088,!![]);}catch(_0xfb815f){return BPromise['reject'](_0xfb815f);}return _0x321c77[_0x1c2f('0x23')]();};}function saveUpdates(_0x24af44,_0x50c46e){return function(_0x1ab37c){if(_0x1ab37c){return _0x1ab37c[_0x1c2f('0x24')](_0x24af44)[_0x1c2f('0x25')](function(_0x16eaed){return _0x16eaed;});}return null;};}function removeEntity(_0x21e3ed,_0xdca797){return function(_0x2ce693){if(_0x2ce693){return _0x2ce693[_0x1c2f('0x26')]()[_0x1c2f('0x25')](function(){var _0x17e847=_0x2ce693[_0x1c2f('0x27')]({'plain':!![]});var _0x5091dc=_0x1c2f('0x28');return db['UserProfileResource'][_0x1c2f('0x26')]({'where':{'type':_0x5091dc,'resourceId':_0x17e847['id']}})['then'](function(){return _0x2ce693;});})['then'](function(){_0x21e3ed['status'](0xcc)[_0x1c2f('0x1a')]();});}};}function handleEntityNotFound(_0x57c3c4,_0x5c38ef){return function(_0x4df7ef){if(!_0x4df7ef){_0x57c3c4['sendStatus'](0x194);}return _0x4df7ef;};}function handleError(_0x2d29b1,_0x2c9d01){_0x2c9d01=_0x2c9d01||0x1f4;return function(_0x2e1d34){logger[_0x1c2f('0x29')](_0x2e1d34['stack']);if(_0x2e1d34[_0x1c2f('0x2a')]){delete _0x2e1d34[_0x1c2f('0x2a')];}_0x2d29b1[_0x1c2f('0x20')](_0x2c9d01)['send'](_0x2e1d34);};}exports[_0x1c2f('0x2b')]=function(_0x15ff98,_0x1879b0){var _0x337c55={},_0x3f2689={},_0x1d2e76={'count':0x0,'rows':[]};var _0x1331df=_[_0x1c2f('0x2c')](db['VoiceMusicOnHold'][_0x1c2f('0x2d')],function(_0x51c658){return{'name':_0x51c658['fieldName'],'type':_0x51c658[_0x1c2f('0x2e')]['key']};});_0x3f2689[_0x1c2f('0x2f')]=_[_0x1c2f('0x2c')](_0x1331df,_0x1c2f('0x2a'));_0x3f2689[_0x1c2f('0x30')]=_[_0x1c2f('0x31')](_0x15ff98[_0x1c2f('0x30')]);_0x3f2689[_0x1c2f('0x32')]=_['intersection'](_0x3f2689['model'],_0x3f2689[_0x1c2f('0x30')]);_0x337c55[_0x1c2f('0x33')]=_[_0x1c2f('0x34')](_0x3f2689[_0x1c2f('0x2f')],qs['fields'](_0x15ff98[_0x1c2f('0x30')][_0x1c2f('0x35')]));_0x337c55['attributes']=_0x337c55[_0x1c2f('0x33')][_0x1c2f('0x36')]?_0x337c55[_0x1c2f('0x33')]:_0x3f2689['model'];if(!_0x15ff98['query'][_0x1c2f('0x37')](_0x1c2f('0x38'))){_0x337c55[_0x1c2f('0x1f')]=qs[_0x1c2f('0x1f')](_0x15ff98['query']['limit']);_0x337c55['offset']=qs[_0x1c2f('0x1c')](_0x15ff98[_0x1c2f('0x30')][_0x1c2f('0x1c')]);}_0x337c55['order']=qs[_0x1c2f('0x39')](_0x15ff98[_0x1c2f('0x30')][_0x1c2f('0x39')]);delete _0x15ff98[_0x1c2f('0x30')][_0x1c2f('0x39')];_0x337c55[_0x1c2f('0x3a')]=qs[_0x1c2f('0x32')](_[_0x1c2f('0x3b')](_0x15ff98[_0x1c2f('0x30')],_0x3f2689[_0x1c2f('0x32')]),_0x1331df);if(_0x15ff98['query']['filter']){_0x337c55['where']=_['merge'](_0x337c55[_0x1c2f('0x3a')],{'$or':_[_0x1c2f('0x2c')](_0x1331df,function(_0x512873){if(_0x512873['type']!=='VIRTUAL'){var _0x1de119={};_0x1de119[_0x512873[_0x1c2f('0x2a')]]={'$like':'%'+_0x15ff98['query'][_0x1c2f('0x3c')]+'%'};return _0x1de119;}})});}_0x337c55=_['merge']({},_0x337c55,_0x15ff98[_0x1c2f('0x3d')]);var _0x1541be={'where':_0x337c55[_0x1c2f('0x3a')]};return db[_0x1c2f('0x3e')][_0x1c2f('0x1e')](_0x1541be)[_0x1c2f('0x25')](function(_0x1c529d){_0x1d2e76[_0x1c2f('0x1e')]=_0x1c529d;if(_0x15ff98[_0x1c2f('0x30')][_0x1c2f('0x3f')]){_0x337c55[_0x1c2f('0x40')]=[{'all':!![]}];}return db[_0x1c2f('0x3e')]['findAll'](_0x337c55);})[_0x1c2f('0x25')](function(_0x38c894){_0x1d2e76['rows']=_0x38c894;return _0x1d2e76;})[_0x1c2f('0x25')](respondWithFilteredResult(_0x1879b0,_0x337c55))['catch'](handleError(_0x1879b0,null));};exports[_0x1c2f('0x41')]=function(_0x346598,_0x4badb8){var _0x2b84a2={'raw':![],'where':{'id':_0x346598[_0x1c2f('0x42')]['id']}},_0x49fbc4={};_0x49fbc4['model']=_[_0x1c2f('0x31')](db[_0x1c2f('0x3e')][_0x1c2f('0x2d')]);_0x49fbc4[_0x1c2f('0x30')]=_[_0x1c2f('0x31')](_0x346598[_0x1c2f('0x30')]);_0x49fbc4[_0x1c2f('0x32')]=_[_0x1c2f('0x34')](_0x49fbc4[_0x1c2f('0x2f')],_0x49fbc4[_0x1c2f('0x30')]);_0x2b84a2['attributes']=_[_0x1c2f('0x34')](_0x49fbc4[_0x1c2f('0x2f')],qs[_0x1c2f('0x35')](_0x346598[_0x1c2f('0x30')][_0x1c2f('0x35')]));_0x2b84a2[_0x1c2f('0x33')]=_0x2b84a2[_0x1c2f('0x33')][_0x1c2f('0x36')]?_0x2b84a2[_0x1c2f('0x33')]:_0x49fbc4[_0x1c2f('0x2f')];if(_0x346598['query'][_0x1c2f('0x3f')]){_0x2b84a2[_0x1c2f('0x40')]=[{'all':!![]}];}_0x2b84a2=_['merge']({},_0x2b84a2,_0x346598[_0x1c2f('0x3d')]);return db[_0x1c2f('0x3e')][_0x1c2f('0x43')](_0x2b84a2)['then'](handleEntityNotFound(_0x4badb8,null))[_0x1c2f('0x25')](respondWithResult(_0x4badb8,null))[_0x1c2f('0x44')](handleError(_0x4badb8,null));};exports['update']=function(_0x4dd877,_0xcf2718){if(_0x4dd877[_0x1c2f('0x45')]['id']){delete _0x4dd877[_0x1c2f('0x45')]['id'];}return db[_0x1c2f('0x3e')][_0x1c2f('0x43')]({'where':{'id':_0x4dd877[_0x1c2f('0x42')]['id']}})[_0x1c2f('0x25')](handleEntityNotFound(_0xcf2718,null))[_0x1c2f('0x25')](saveUpdates(_0x4dd877['body'],null))[_0x1c2f('0x25')](respondWithResult(_0xcf2718,null))[_0x1c2f('0x44')](handleError(_0xcf2718,null));};exports[_0x1c2f('0x46')]=function(_0x2d50de,_0x50604d,_0x3fe39b){return db[_0x1c2f('0x47')][_0x1c2f('0x48')](function(_0x4c92bf){if(_0x2d50de[_0x1c2f('0x45')][_0x1c2f('0x49')]===_0x1c2f('0x4a')){_0x2d50de['body'][_0x1c2f('0x4b')]=path['join'](config[_0x1c2f('0x4c')],_0x1c2f('0x4d'),_0x2d50de[_0x1c2f('0x45')][_0x1c2f('0x2a')]);}return db[_0x1c2f('0x3e')][_0x1c2f('0x46')](_0x2d50de[_0x1c2f('0x45')],{'transaction':_0x4c92bf})['then'](function(_0x128b10){if(_0x2d50de[_0x1c2f('0x45')][_0x1c2f('0x49')]===_0x1c2f('0x4a')){fs[_0x1c2f('0x4e')](_0x128b10[_0x1c2f('0x4b')],parseInt('0777',0x8));}var _0x463590=_0x2d50de[_0x1c2f('0x4f')][_0x1c2f('0x27')]({'plain':!![]});if(!_0x463590)throw new Error(_0x1c2f('0x50'));if(_0x463590[_0x1c2f('0x51')]==='user'){var _0x18f7ef=_0x128b10['get']({'plain':!![]});return db[_0x1c2f('0x52')][_0x1c2f('0x43')]({'where':{'name':_0x1c2f('0x28'),'userProfileId':_0x463590['userProfileId']},'raw':!![]})[_0x1c2f('0x25')](function(_0x54ecce){if(_0x54ecce&&_0x54ecce[_0x1c2f('0x53')]===0x0){return db['UserProfileResource']['create']({'name':_0x18f7ef[_0x1c2f('0x2a')],'resourceId':_0x18f7ef['id'],'type':_0x54ecce[_0x1c2f('0x2a')],'sectionId':_0x54ecce['id']},{})[_0x1c2f('0x25')](function(){return _0x128b10;});}else{return _0x128b10;}})[_0x1c2f('0x44')](function(_0x3496cb){logger['error'](_0x1c2f('0x54'),_0x3496cb);});}return _0x128b10;});})[_0x1c2f('0x25')](respondWithResult(_0x50604d,0xc9))['catch'](handleError(_0x50604d,null));};exports['destroy']=function(_0x3b81e1,_0x3f1f35,_0x4cd86d){var _0x3ece4e;return db[_0x1c2f('0x3e')][_0x1c2f('0x43')]({'where':{'id':_0x3b81e1[_0x1c2f('0x42')]['id']}})[_0x1c2f('0x25')](function(_0x226b63){if(_0x226b63){return db[_0x1c2f('0x47')][_0x1c2f('0x48')](function(_0x53540f){return _0x226b63[_0x1c2f('0x26')]({'transaction':_0x53540f,'raw':!![]})['then'](function(_0x319904){if(_0x319904[_0x1c2f('0x4b')]){fs['readdirSync'](_0x319904[_0x1c2f('0x4b')])[_0x1c2f('0x55')](function(_0x3ea0a0){fs['unlinkSync'](path[_0x1c2f('0x56')](_0x319904[_0x1c2f('0x4b')],_0x3ea0a0));});fs['rmdirSync'](_0x319904[_0x1c2f('0x4b')]);}return _0x319904;});})['catch'](function(_0x2e1027){throw new db[(_0x1c2f('0x57'))][(_0x1c2f('0x58'))](_0x2e1027[_0x1c2f('0x59')]);});}})['then'](handleEntityNotFound(_0x3f1f35,null))[_0x1c2f('0x25')](removeEntity(_0x3f1f35,null))[_0x1c2f('0x44')](handleError(_0x3f1f35,null));};exports['addSound']=function(_0x4754c0,_0x2dadbb,_0x374e64){return db[_0x1c2f('0x47')]['transaction'](function(_0x4a82fd){var _0x5cf8f0;return db[_0x1c2f('0x3e')]['find']({'where':{'id':_0x4754c0[_0x1c2f('0x42')]['id']}})[_0x1c2f('0x25')](function(_0x3ce3cb){if(_0x3ce3cb){_0x5cf8f0=_0x3ce3cb;return _0x3ce3cb[_0x1c2f('0x5a')](_0x4754c0['body']['id'],{'transaction':_0x4a82fd});}})[_0x1c2f('0x25')](function(_0x15a311){if(_0x15a311){return db[_0x1c2f('0x5b')][_0x1c2f('0x5c')]({'where':{'id':_0x4754c0[_0x1c2f('0x45')]['id']},'attributes':['id',_0x1c2f('0x2a'),'save_name',_0x1c2f('0x5d'),'createdAt'],'raw':!![]});}})['then'](function(_0xd31a84){if(_0xd31a84){var _0x16c193=path['join'](config[_0x1c2f('0x4c')],_0x1c2f('0x5e'),util[_0x1c2f('0x5f')](_0x1c2f('0x60'),path['basename'](_0xd31a84[_0x1c2f('0x61')],path['extname'](_0xd31a84['save_name'])),_0xd31a84['converted_format']));var _0x1b2dd0=path[_0x1c2f('0x56')](config['root'],_0x1c2f('0x4d'),_0x5cf8f0[_0x1c2f('0x2a')],util[_0x1c2f('0x5f')](_0x1c2f('0x60'),_0xd31a84[_0x1c2f('0x2a')],_0xd31a84['converted_format']));fs[_0x1c2f('0x62')](_0x16c193,_0x1b2dd0);return _0xd31a84;}})[_0x1c2f('0x44')](function(_0xb1c365){throw new db[(_0x1c2f('0x57'))][(_0x1c2f('0x58'))](_0xb1c365[_0x1c2f('0x59')]);});})[_0x1c2f('0x25')](handleEntityNotFound(_0x2dadbb,null))[_0x1c2f('0x25')](respondWithResult(_0x2dadbb,0xc9))[_0x1c2f('0x44')](handleError(_0x2dadbb,null));};exports[_0x1c2f('0x63')]=function(_0xb16167,_0x5c9d01,_0x160c4f){return db[_0x1c2f('0x47')][_0x1c2f('0x48')](function(_0x45bfd0){var _0x11da2c;return db[_0x1c2f('0x3e')][_0x1c2f('0x5c')]({'where':{'id':_0xb16167[_0x1c2f('0x42')]['id']}})['then'](handleEntityNotFound(_0x5c9d01,null))['then'](function(_0x2474e4){if(_0x2474e4){_0x11da2c=_0x2474e4;return _0x2474e4[_0x1c2f('0x63')](_0xb16167['params'][_0x1c2f('0x64')]);}})[_0x1c2f('0x25')](function(_0x40ee67){if(_0x40ee67){return db[_0x1c2f('0x5b')][_0x1c2f('0x5c')]({'where':{'id':_0xb16167['params'][_0x1c2f('0x64')]},'attributes':['id',_0x1c2f('0x2a'),_0x1c2f('0x61'),_0x1c2f('0x5d'),'createdAt'],'raw':!![]});}})['then'](function(_0xbecf46){if(_0xbecf46){fs[_0x1c2f('0x65')](path['join'](_0x11da2c[_0x1c2f('0x4b')],util[_0x1c2f('0x5f')](_0x1c2f('0x60'),_0xbecf46[_0x1c2f('0x2a')],_0xbecf46['converted_format'])));return _0xbecf46;}})[_0x1c2f('0x44')](function(_0x4da84e){throw new db['Sequelize'][(_0x1c2f('0x58'))](_0x4da84e[_0x1c2f('0x59')]);});})[_0x1c2f('0x25')](handleEntityNotFound(_0x5c9d01,null))['then'](respondWithStatusCode(_0x5c9d01,0xcc))['catch'](handleError(_0x5c9d01,null));};exports['getSounds']=function(_0x37ba19,_0xb3243b,_0x467901){var _0x52002d={};var _0x32a9ce={};var _0xd5f52d;var _0x49fc83;return db[_0x1c2f('0x3e')]['findOne']({'where':{'id':_0x37ba19[_0x1c2f('0x42')]['id']}})[_0x1c2f('0x25')](handleEntityNotFound(_0xb3243b,null))[_0x1c2f('0x25')](function(_0x5d1210){if(_0x5d1210){_0xd5f52d=_0x5d1210;_0x32a9ce[_0x1c2f('0x2f')]=_[_0x1c2f('0x31')](db[_0x1c2f('0x5b')]['rawAttributes']);_0x32a9ce['query']=_['keys'](_0x37ba19[_0x1c2f('0x30')]);_0x32a9ce['filters']=_[_0x1c2f('0x34')](_0x32a9ce[_0x1c2f('0x2f')],_0x32a9ce['query']);_0x52002d['attributes']=_['intersection'](_0x32a9ce[_0x1c2f('0x2f')],qs[_0x1c2f('0x35')](_0x37ba19[_0x1c2f('0x30')]['fields']));_0x52002d['attributes']=_0x52002d['attributes'][_0x1c2f('0x36')]?_0x52002d[_0x1c2f('0x33')]:_0x32a9ce[_0x1c2f('0x2f')];_0x52002d[_0x1c2f('0x66')]=qs[_0x1c2f('0x39')](_0x37ba19[_0x1c2f('0x30')]['sort']);_0x52002d['where']=qs['filters'](_['pick'](_0x37ba19[_0x1c2f('0x30')],_0x32a9ce[_0x1c2f('0x32')]));if(_0x37ba19[_0x1c2f('0x30')][_0x1c2f('0x3c')]){_0x52002d['where']=_[_0x1c2f('0x67')](_0x52002d[_0x1c2f('0x3a')],{'$or':_['map'](_0x52002d[_0x1c2f('0x33')],function(_0x2350fd){var _0x481cec={};_0x481cec[_0x2350fd]={'$like':'%'+_0x37ba19[_0x1c2f('0x30')][_0x1c2f('0x3c')]+'%'};return _0x481cec;})});}_0x52002d=_[_0x1c2f('0x67')]({},_0x52002d,_0x37ba19[_0x1c2f('0x3d')]);return _0xd5f52d[_0x1c2f('0x68')](_0x52002d);}})[_0x1c2f('0x25')](function(_0xea4ac8){if(_0xea4ac8){_0x49fc83=_0xea4ac8[_0x1c2f('0x36')];if(!_0x37ba19['query']['hasOwnProperty'](_0x1c2f('0x38'))){_0x52002d['limit']=qs[_0x1c2f('0x1f')](_0x37ba19['query'][_0x1c2f('0x1f')]);_0x52002d[_0x1c2f('0x1c')]=qs[_0x1c2f('0x1c')](_0x37ba19[_0x1c2f('0x30')][_0x1c2f('0x1c')]);}return _0xd5f52d[_0x1c2f('0x68')](_0x52002d);}})[_0x1c2f('0x25')](function(_0x134dc8){if(_0x134dc8){return _0x134dc8?{'count':_0x49fc83,'rows':_0x134dc8}:null;}})[_0x1c2f('0x25')](respondWithResult(_0xb3243b,null))[_0x1c2f('0x44')](handleError(_0xb3243b,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb80a=['api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./voiceMusicOnHold.attributes','define','VoiceMusicOnHold','voice_musiconhold','lodash','../../config/logger'];(function(_0x452bed,_0x128e55){var _0x4bb2cf=function(_0x41f9b1){while(--_0x41f9b1){_0x452bed['push'](_0x452bed['shift']());}};_0x4bb2cf(++_0x128e55);}(_0xb80a,0x1df));var _0xab80=function(_0x5d2590,_0x1a7a33){_0x5d2590=_0x5d2590-0x0;var _0x4bba52=_0xb80a[_0x5d2590];return _0x4bba52;};'use strict';var _=require(_0xab80('0x0'));var util=require('util');var logger=require(_0xab80('0x1'))(_0xab80('0x2'));var moment=require(_0xab80('0x3'));var BPromise=require(_0xab80('0x4'));var rp=require(_0xab80('0x5'));var fs=require('fs');var path=require(_0xab80('0x6'));var rimraf=require(_0xab80('0x7'));var config=require(_0xab80('0x8'));var attributes=require(_0xab80('0x9'));module['exports']=function(_0x57d62c,_0x31e2f9){return _0x57d62c[_0xab80('0xa')](_0xab80('0xb'),attributes,{'tableName':_0xab80('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x1e23=['bluebird','request-promise','path','rimraf','../../config/environment','exports','define','VoiceMusicOnHold','voice_musiconhold','moment'];(function(_0x3a9f3a,_0x4a06d2){var _0x18eb25=function(_0x1a0b90){while(--_0x1a0b90){_0x3a9f3a['push'](_0x3a9f3a['shift']());}};_0x18eb25(++_0x4a06d2);}(_0x1e23,0x1ad));var _0x31e2=function(_0x4fe325,_0x579f82){_0x4fe325=_0x4fe325-0x0;var _0x3ec6cb=_0x1e23[_0x4fe325];return _0x3ec6cb;};'use strict';var _=require('lodash');var util=require('util');var logger=require('../../config/logger')('api');var moment=require(_0x31e2('0x0'));var BPromise=require(_0x31e2('0x1'));var rp=require(_0x31e2('0x2'));var fs=require('fs');var path=require(_0x31e2('0x3'));var rimraf=require(_0x31e2('0x4'));var config=require(_0x31e2('0x5'));var attributes=require('./voiceMusicOnHold.attributes');module[_0x31e2('0x6')]=function(_0x2e1d7a,_0x5d5b9f){return _0x2e1d7a[_0x31e2('0x7')](_0x31e2('0x8'),attributes,{'tableName':_0x31e2('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xedd9=['moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','request','then','info','request\x20sent','debug','stringify','error','code','VoiceMusicOnHold,\x20%s,\x20%s','message','catch','util'];(function(_0x3acf6f,_0x14729f){var _0x876943=function(_0x43c231){while(--_0x43c231){_0x3acf6f['push'](_0x3acf6f['shift']());}};_0x876943(++_0x14729f);}(_0xedd9,0xfc));var _0x9edd=function(_0x9056,_0x4ea22d){_0x9056=_0x9056-0x0;var _0x196705=_0xedd9[_0x9056];return _0x196705;};'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});function respondWithRpcPromise(_0x5319f7,_0xf0b2d8,_0x571af9){return new BPromise(function(_0x172522,_0x190185){return client[_0x9edd('0xc')](_0x5319f7,_0x571af9)[_0x9edd('0xd')](function(_0x49d5e3){logger[_0x9edd('0xe')]('VoiceMusicOnHold,\x20%s,\x20%s',_0xf0b2d8,_0x9edd('0xf'));logger[_0x9edd('0x10')]('VoiceMusicOnHold,\x20%s,\x20%s,\x20%s',_0xf0b2d8,_0x9edd('0xf'),JSON[_0x9edd('0x11')](_0x49d5e3));if(_0x49d5e3['error']){if(_0x49d5e3[_0x9edd('0x12')][_0x9edd('0x13')]===0x1f4){logger[_0x9edd('0x12')](_0x9edd('0x14'),_0xf0b2d8,_0x49d5e3[_0x9edd('0x12')][_0x9edd('0x15')]);return _0x190185(_0x49d5e3[_0x9edd('0x12')][_0x9edd('0x15')]);}logger['error'](_0x9edd('0x14'),_0xf0b2d8,_0x49d5e3[_0x9edd('0x12')][_0x9edd('0x15')]);return _0x172522(_0x49d5e3[_0x9edd('0x12')][_0x9edd('0x15')]);}else{logger[_0x9edd('0xe')](_0x9edd('0x14'),_0xf0b2d8,_0x9edd('0xf'));_0x172522(_0x49d5e3['result'][_0x9edd('0x15')]);}})[_0x9edd('0x16')](function(_0x449cee){logger['error'](_0x9edd('0x14'),_0xf0b2d8,_0x449cee);_0x190185(_0x449cee);});});}
\ No newline at end of file
+var _0x9c44=['randomstring','ioredis','../../mysqldb','../../config/utils','../../config/environment','client','http','request','then','request\x20sent','debug','stringify','code','error','message','VoiceMusicOnHold,\x20%s,\x20%s','info','result','catch','moment','bluebird'];(function(_0x45178a,_0xfd2b61){var _0x319539=function(_0x52a620){while(--_0x52a620){_0x45178a['push'](_0x45178a['shift']());}};_0x319539(++_0xfd2b61);}(_0x9c44,0x178));var _0x49c4=function(_0x4f9b18,_0x2cb5ca){_0x4f9b18=_0x4f9b18-0x0;var _0x29f20c=_0x9c44[_0x4f9b18];return _0x29f20c;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0x49c4('0x0'));var BPromise=require(_0x49c4('0x1'));var rs=require(_0x49c4('0x2'));var fs=require('fs');var Redis=require(_0x49c4('0x3'));var db=require(_0x49c4('0x4'))['db'];var utils=require(_0x49c4('0x5'));var logger=require('../../config/logger')('rpc');var config=require(_0x49c4('0x6'));var jayson=require('jayson/promise');var client=jayson[_0x49c4('0x7')][_0x49c4('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x69bc41,_0x2c4e2e,_0x436234){return new BPromise(function(_0x511d53,_0x11c586){return client[_0x49c4('0x9')](_0x69bc41,_0x436234)[_0x49c4('0xa')](function(_0x4487ca){logger['info']('VoiceMusicOnHold,\x20%s,\x20%s',_0x2c4e2e,_0x49c4('0xb'));logger[_0x49c4('0xc')]('VoiceMusicOnHold,\x20%s,\x20%s,\x20%s',_0x2c4e2e,_0x49c4('0xb'),JSON[_0x49c4('0xd')](_0x4487ca));if(_0x4487ca['error']){if(_0x4487ca['error'][_0x49c4('0xe')]===0x1f4){logger[_0x49c4('0xf')]('VoiceMusicOnHold,\x20%s,\x20%s',_0x2c4e2e,_0x4487ca[_0x49c4('0xf')][_0x49c4('0x10')]);return _0x11c586(_0x4487ca['error'][_0x49c4('0x10')]);}logger[_0x49c4('0xf')](_0x49c4('0x11'),_0x2c4e2e,_0x4487ca[_0x49c4('0xf')][_0x49c4('0x10')]);return _0x511d53(_0x4487ca[_0x49c4('0xf')][_0x49c4('0x10')]);}else{logger[_0x49c4('0x12')]('VoiceMusicOnHold,\x20%s,\x20%s',_0x2c4e2e,_0x49c4('0xb'));_0x511d53(_0x4487ca[_0x49c4('0x13')][_0x49c4('0x10')]);}})[_0x49c4('0x14')](function(_0x2abc78){logger['error'](_0x49c4('0x11'),_0x2c4e2e,_0x2abc78);_0x11c586(_0x2abc78);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5ab5=['../../config/environment','./voicePrefix.controller','get','isAuthenticated','index','/describe','describe','/:id','show','/:id/users','post','create','addAgents','put','update','removeAgents','multer','path','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service'];(function(_0x4362f4,_0x5061c1){var _0x1e259f=function(_0x4b5c4f){while(--_0x4b5c4f){_0x4362f4['push'](_0x4362f4['shift']());}};_0x1e259f(++_0x5061c1);}(_0x5ab5,0x1dc));var _0x55ab=function(_0x14e51e,_0x1f81da){_0x14e51e=_0x14e51e-0x0;var _0x2f2203=_0x5ab5[_0x14e51e];return _0x2f2203;};'use strict';var multer=require(_0x55ab('0x0'));var util=require('util');var path=require(_0x55ab('0x1'));var timeout=require(_0x55ab('0x2'));var express=require(_0x55ab('0x3'));var router=express['Router']();var fs_extra=require(_0x55ab('0x4'));var auth=require(_0x55ab('0x5'));var interaction=require(_0x55ab('0x6'));var config=require(_0x55ab('0x7'));var controller=require(_0x55ab('0x8'));router[_0x55ab('0x9')]('/',auth[_0x55ab('0xa')](),controller[_0x55ab('0xb')]);router[_0x55ab('0x9')](_0x55ab('0xc'),auth[_0x55ab('0xa')](),controller[_0x55ab('0xd')]);router[_0x55ab('0x9')](_0x55ab('0xe'),auth[_0x55ab('0xa')](),controller[_0x55ab('0xf')]);router[_0x55ab('0x9')](_0x55ab('0x10'),auth[_0x55ab('0xa')](),controller['getAgents']);router[_0x55ab('0x11')]('/',auth[_0x55ab('0xa')](),controller[_0x55ab('0x12')]);router['post'](_0x55ab('0x10'),auth['isAuthenticated'](),controller[_0x55ab('0x13')]);router[_0x55ab('0x14')]('/:id',auth[_0x55ab('0xa')](),controller[_0x55ab('0x15')]);router['delete'](_0x55ab('0xe'),auth[_0x55ab('0xa')](),controller['destroy']);router['delete'](_0x55ab('0x10'),auth['isAuthenticated'](),controller[_0x55ab('0x16')]);module['exports']=router;
\ No newline at end of file
+var _0x66d9=['describe','show','/:id/users','/:id/teams','getTeams','post','create','addAgents','addTeams','update','destroy','removeAgents','removeTeams','exports','multer','util','path','connect-timeout','express','../../components/auth/service','../../components/interaction/service','isAuthenticated','index','get','/describe'];(function(_0x20f659,_0x3dbc0b){var _0x2cfd61=function(_0x3b0f11){while(--_0x3b0f11){_0x20f659['push'](_0x20f659['shift']());}};_0x2cfd61(++_0x3dbc0b);}(_0x66d9,0x1e9));var _0x966d=function(_0x27bd20,_0x2f0071){_0x27bd20=_0x27bd20-0x0;var _0x47d7d3=_0x66d9[_0x27bd20];return _0x47d7d3;};'use strict';var multer=require(_0x966d('0x0'));var util=require(_0x966d('0x1'));var path=require(_0x966d('0x2'));var timeout=require(_0x966d('0x3'));var express=require(_0x966d('0x4'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0x966d('0x5'));var interaction=require(_0x966d('0x6'));var config=require('../../config/environment');var controller=require('./voicePrefix.controller');router['get']('/',auth[_0x966d('0x7')](),controller[_0x966d('0x8')]);router[_0x966d('0x9')](_0x966d('0xa'),auth['isAuthenticated'](),controller[_0x966d('0xb')]);router[_0x966d('0x9')]('/:id',auth[_0x966d('0x7')](),controller[_0x966d('0xc')]);router[_0x966d('0x9')](_0x966d('0xd'),auth[_0x966d('0x7')](),controller['getAgents']);router[_0x966d('0x9')](_0x966d('0xe'),auth[_0x966d('0x7')](),controller[_0x966d('0xf')]);router[_0x966d('0x10')]('/',auth[_0x966d('0x7')](),controller[_0x966d('0x11')]);router[_0x966d('0x10')](_0x966d('0xd'),auth['isAuthenticated'](),controller[_0x966d('0x12')]);router[_0x966d('0x10')](_0x966d('0xe'),auth[_0x966d('0x7')](),controller[_0x966d('0x13')]);router['put']('/:id',auth[_0x966d('0x7')](),controller[_0x966d('0x14')]);router['delete']('/:id',auth[_0x966d('0x7')](),controller[_0x966d('0x15')]);router['delete'](_0x966d('0xd'),auth[_0x966d('0x7')](),controller[_0x966d('0x16')]);router['delete'](_0x966d('0xe'),auth[_0x966d('0x7')](),controller[_0x966d('0x17')]);module[_0x966d('0x18')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2767=['STRING','name','VIRTUAL','system-','getDataValue','INTEGER','sequelize','exports'];(function(_0x297fd3,_0x115406){var _0x2af381=function(_0x1dd31b){while(--_0x1dd31b){_0x297fd3['push'](_0x297fd3['shift']());}};_0x2af381(++_0x115406);}(_0x2767,0xae));var _0x7276=function(_0x2cb0fd,_0x590543){_0x2cb0fd=_0x2cb0fd-0x0;var _0x2c48e6=_0x2767[_0x2cb0fd];return _0x2c48e6;};'use strict';var Sequelize=require(_0x7276('0x0'));module[_0x7276('0x1')]={'name':{'type':Sequelize[_0x7276('0x2')],'allowNull':![],'unique':_0x7276('0x3')},'prefix':{'type':Sequelize[_0x7276('0x4')],'get':function(_0x129679){return _0x7276('0x5')+this[_0x7276('0x6')]('name')+'-';}},'description':{'type':Sequelize[_0x7276('0x2')]},'callerIdAll':{'type':Sequelize[_0x7276('0x2')]},'VoiceExtensionId':{'type':Sequelize[_0x7276('0x7')]}};
\ No newline at end of file
+var _0x7f9c=['VIRTUAL','getDataValue','INTEGER','sequelize','exports','STRING','name'];(function(_0x5d4ecb,_0x9bdd07){var _0x451fe0=function(_0x5c2b89){while(--_0x5c2b89){_0x5d4ecb['push'](_0x5d4ecb['shift']());}};_0x451fe0(++_0x9bdd07);}(_0x7f9c,0xff));var _0xc7f9=function(_0x3e476a,_0x49fbc4){_0x3e476a=_0x3e476a-0x0;var _0x50392f=_0x7f9c[_0x3e476a];return _0x50392f;};'use strict';var Sequelize=require(_0xc7f9('0x0'));module[_0xc7f9('0x1')]={'name':{'type':Sequelize[_0xc7f9('0x2')],'allowNull':![],'unique':_0xc7f9('0x3')},'prefix':{'type':Sequelize[_0xc7f9('0x4')],'get':function(_0x31ca35){return'system-'+this[_0xc7f9('0x5')]('name')+'-';}},'description':{'type':Sequelize['STRING']},'callerIdAll':{'type':Sequelize[_0xc7f9('0x2')]},'VoiceExtensionId':{'type':Sequelize[_0xc7f9('0x6')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4965=['../../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','./voicePrefix.socket','register','sendStatus','status','end','json','offset','undefined','count','set','Content-Range','apply','reject','save','update','destroy','then','get','VoicePrefixes','UserProfileResource','error','stack','name','send','map','fieldName','type','key','model','query','intersection','attributes','fields','length','hasOwnProperty','nolimit','limit','order','sort','filters','pick','merge','where','filter','options','includeAll','include','VoicePrefix','findAll','catch','show','keys','rawAttributes','find','params','describe','sequelize','transaction','body','VoiceExtension','VoiceExtensionId','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','create','context','from-sip','exten','app','system','description','Voice\x20Prefix\x20Extension','priority','appdata','Voice\x20Prefix','VoicePrefixId','bulkCreate','prefix','push','Set','callerIdAll','NoOp','No\x20callerid\x20available','charAt','system-','addAgents','ids','spread','emit','userVoicePrefix:save','removeAgents','isArray','userVoicePrefix:remove','getAgents','findOne','User','eml-format','rimraf','zip-dir','bluebird','util','path','sox','ejs','fs-extra','lodash','squel','jsforce','to-csv','querystring','papaparse'];(function(_0x1ecaad,_0xa701f9){var _0x11d118=function(_0x167bed){while(--_0x167bed){_0x1ecaad['push'](_0x1ecaad['shift']());}};_0x11d118(++_0xa701f9);}(_0x4965,0x16e));var _0x5496=function(_0x585ee5,_0x1c9dba){_0x585ee5=_0x585ee5-0x0;var _0x470808=_0x4965[_0x585ee5];return _0x470808;};'use strict';var emlformat=require(_0x5496('0x0'));var rimraf=require(_0x5496('0x1'));var zipdir=require(_0x5496('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x5496('0x3'));var Mustache=require('mustache');var util=require(_0x5496('0x4'));var path=require(_0x5496('0x5'));var sox=require(_0x5496('0x6'));var csv=require('to-csv');var ejs=require(_0x5496('0x7'));var fs=require('fs');var fs_extra=require(_0x5496('0x8'));var _=require(_0x5496('0x9'));var squel=require(_0x5496('0xa'));var crypto=require('crypto');var jsforce=require(_0x5496('0xb'));var deskjs=require('desk.js');var toCsv=require(_0x5496('0xc'));var querystring=require(_0x5496('0xd'));var Papa=require(_0x5496('0xe'));var Redis=require('ioredis');var authService=require(_0x5496('0xf'));var qs=require(_0x5496('0x10'));var as=require(_0x5496('0x11'));var hardwareService=require(_0x5496('0x12'));var logger=require(_0x5496('0x13'))(_0x5496('0x14'));var utils=require(_0x5496('0x15'));var config=require(_0x5496('0x16'));var licenseUtil=require(_0x5496('0x17'));var db=require(_0x5496('0x18'))['db'];config[_0x5496('0x19')]=_[_0x5496('0x1a')](config[_0x5496('0x19')],{'host':_0x5496('0x1b'),'port':0x18eb});var socket=require(_0x5496('0x1c'))(new Redis(config['redis']));require(_0x5496('0x1d'))[_0x5496('0x1e')](socket);function respondWithStatusCode(_0x27072e,_0x35520e){_0x35520e=_0x35520e||0xcc;return function(_0x20814f){if(_0x20814f){return _0x27072e[_0x5496('0x1f')](_0x35520e);}return _0x27072e[_0x5496('0x20')](_0x35520e)[_0x5496('0x21')]();};}function respondWithResult(_0x4c7317,_0x4bf295){_0x4bf295=_0x4bf295||0xc8;return function(_0x1a5deb){if(_0x1a5deb){return _0x4c7317[_0x5496('0x20')](_0x4bf295)[_0x5496('0x22')](_0x1a5deb);}};}function respondWithFilteredResult(_0x33f7d3,_0x333c6d){return function(_0x3496fb){if(_0x3496fb){var _0x165c58=typeof _0x333c6d[_0x5496('0x23')]===_0x5496('0x24')&&typeof _0x333c6d['limit']==='undefined';var _0x41ea77=_0x3496fb[_0x5496('0x25')];var _0x10599a=_0x165c58?0x0:_0x333c6d[_0x5496('0x23')];var _0x4d2a9d=_0x165c58?_0x3496fb[_0x5496('0x25')]:_0x333c6d[_0x5496('0x23')]+_0x333c6d['limit'];var _0x4650db;if(_0x4d2a9d>=_0x41ea77){_0x4d2a9d=_0x41ea77;_0x4650db=0xc8;}else{_0x4650db=0xce;}_0x33f7d3[_0x5496('0x20')](_0x4650db);return _0x33f7d3[_0x5496('0x26')](_0x5496('0x27'),_0x10599a+'-'+_0x4d2a9d+'/'+_0x41ea77)[_0x5496('0x22')](_0x3496fb);}return null;};}function patchUpdates(_0x408716){return function(_0x25a988){try{jsonpatch[_0x5496('0x28')](_0x25a988,_0x408716,!![]);}catch(_0x1bc14d){return BPromise[_0x5496('0x29')](_0x1bc14d);}return _0x25a988[_0x5496('0x2a')]();};}function saveUpdates(_0x1ab3ca,_0x385134){return function(_0x48367e){if(_0x48367e){return _0x48367e[_0x5496('0x2b')](_0x1ab3ca)['then'](function(_0x482324){return _0x482324;});}return null;};}function removeEntity(_0x4bce20,_0xc6e98b){return function(_0x409d64){if(_0x409d64){return _0x409d64[_0x5496('0x2c')]()[_0x5496('0x2d')](function(){var _0x21bad5=_0x409d64[_0x5496('0x2e')]({'plain':!![]});var _0x38ff07=_0x5496('0x2f');return db[_0x5496('0x30')][_0x5496('0x2c')]({'where':{'type':_0x38ff07,'resourceId':_0x21bad5['id']}})['then'](function(){return _0x409d64;});})[_0x5496('0x2d')](function(){_0x4bce20[_0x5496('0x20')](0xcc)['end']();});}};}function handleEntityNotFound(_0x802f78,_0x1ff1a0){return function(_0x119a56){if(!_0x119a56){_0x802f78['sendStatus'](0x194);}return _0x119a56;};}function handleError(_0x57358c,_0x526991){_0x526991=_0x526991||0x1f4;return function(_0x52a183){logger[_0x5496('0x31')](_0x52a183[_0x5496('0x32')]);if(_0x52a183[_0x5496('0x33')]){delete _0x52a183[_0x5496('0x33')];}_0x57358c[_0x5496('0x20')](_0x526991)[_0x5496('0x34')](_0x52a183);};}exports['index']=function(_0x333816,_0x46ddc4){var _0x539489={},_0x2c6514={},_0x903d94={'count':0x0,'rows':[]};var _0xf1b3cf=_[_0x5496('0x35')](db['VoicePrefix']['rawAttributes'],function(_0xf05f50){return{'name':_0xf05f50[_0x5496('0x36')],'type':_0xf05f50[_0x5496('0x37')][_0x5496('0x38')]};});_0x2c6514[_0x5496('0x39')]=_[_0x5496('0x35')](_0xf1b3cf,_0x5496('0x33'));_0x2c6514['query']=_['keys'](_0x333816[_0x5496('0x3a')]);_0x2c6514['filters']=_[_0x5496('0x3b')](_0x2c6514[_0x5496('0x39')],_0x2c6514[_0x5496('0x3a')]);_0x539489[_0x5496('0x3c')]=_[_0x5496('0x3b')](_0x2c6514['model'],qs[_0x5496('0x3d')](_0x333816['query'][_0x5496('0x3d')]));_0x539489[_0x5496('0x3c')]=_0x539489['attributes'][_0x5496('0x3e')]?_0x539489[_0x5496('0x3c')]:_0x2c6514['model'];if(!_0x333816[_0x5496('0x3a')][_0x5496('0x3f')](_0x5496('0x40'))){_0x539489[_0x5496('0x41')]=qs['limit'](_0x333816['query']['limit']);_0x539489[_0x5496('0x23')]=qs['offset'](_0x333816['query'][_0x5496('0x23')]);}_0x539489[_0x5496('0x42')]=qs['sort'](_0x333816[_0x5496('0x3a')][_0x5496('0x43')]);_0x539489['where']=qs[_0x5496('0x44')](_[_0x5496('0x45')](_0x333816[_0x5496('0x3a')],_0x2c6514[_0x5496('0x44')]),_0xf1b3cf);if(_0x333816[_0x5496('0x3a')]['filter']){_0x539489['where']=_[_0x5496('0x46')](_0x539489[_0x5496('0x47')],{'$or':_['map'](_0xf1b3cf,function(_0x119885){if(_0x119885[_0x5496('0x37')]!=='VIRTUAL'){var _0x348f69={};_0x348f69[_0x119885[_0x5496('0x33')]]={'$like':'%'+_0x333816[_0x5496('0x3a')][_0x5496('0x48')]+'%'};return _0x348f69;}})});}_0x539489=_[_0x5496('0x46')]({},_0x539489,_0x333816[_0x5496('0x49')]);var _0x3d95f8={'where':_0x539489['where']};return db['VoicePrefix'][_0x5496('0x25')](_0x3d95f8)[_0x5496('0x2d')](function(_0x4a9701){_0x903d94[_0x5496('0x25')]=_0x4a9701;if(_0x333816[_0x5496('0x3a')][_0x5496('0x4a')]){_0x539489[_0x5496('0x4b')]=[{'all':!![]}];}return db[_0x5496('0x4c')][_0x5496('0x4d')](_0x539489);})[_0x5496('0x2d')](function(_0x1fa3f4){_0x903d94['rows']=_0x1fa3f4;return _0x903d94;})[_0x5496('0x2d')](respondWithFilteredResult(_0x46ddc4,_0x539489))[_0x5496('0x4e')](handleError(_0x46ddc4,null));};exports[_0x5496('0x4f')]=function(_0x138ccd,_0x23d6ca){var _0x1e83ea={'raw':![],'where':{'id':_0x138ccd['params']['id']}},_0x9c5b98={};_0x9c5b98['model']=_[_0x5496('0x50')](db[_0x5496('0x4c')][_0x5496('0x51')]);_0x9c5b98[_0x5496('0x3a')]=_['keys'](_0x138ccd[_0x5496('0x3a')]);_0x9c5b98[_0x5496('0x44')]=_[_0x5496('0x3b')](_0x9c5b98['model'],_0x9c5b98[_0x5496('0x3a')]);_0x1e83ea[_0x5496('0x3c')]=_[_0x5496('0x3b')](_0x9c5b98[_0x5496('0x39')],qs[_0x5496('0x3d')](_0x138ccd[_0x5496('0x3a')][_0x5496('0x3d')]));_0x1e83ea[_0x5496('0x3c')]=_0x1e83ea[_0x5496('0x3c')][_0x5496('0x3e')]?_0x1e83ea['attributes']:_0x9c5b98[_0x5496('0x39')];if(_0x138ccd[_0x5496('0x3a')][_0x5496('0x4a')]){_0x1e83ea[_0x5496('0x4b')]=[{'all':!![]}];}_0x1e83ea=_[_0x5496('0x46')]({},_0x1e83ea,_0x138ccd[_0x5496('0x49')]);return db[_0x5496('0x4c')][_0x5496('0x52')](_0x1e83ea)['then'](handleEntityNotFound(_0x23d6ca,null))['then'](respondWithResult(_0x23d6ca,null))[_0x5496('0x4e')](handleError(_0x23d6ca,null));};exports[_0x5496('0x2c')]=function(_0x2da752,_0x186907){return db['VoicePrefix'][_0x5496('0x52')]({'where':{'id':_0x2da752[_0x5496('0x53')]['id']}})[_0x5496('0x2d')](handleEntityNotFound(_0x186907,null))[_0x5496('0x2d')](removeEntity(_0x186907,null))[_0x5496('0x4e')](handleError(_0x186907,null));};exports[_0x5496('0x54')]=function(_0x39e6b4,_0x462129){return db[_0x5496('0x4c')][_0x5496('0x54')]()[_0x5496('0x2d')](respondWithResult(_0x462129,null))[_0x5496('0x4e')](handleError(_0x462129,null));};exports['create']=function(_0x12e603,_0x383be3){var _0x16486f;return db[_0x5496('0x55')][_0x5496('0x56')](function(_0x43268c){return db[_0x5496('0x4c')]['create'](_0x12e603[_0x5496('0x57')],{'transaction':_0x43268c})[_0x5496('0x2d')](function(_0x5570e7){_0x16486f=_0x5570e7[_0x5496('0x2e')]({'plain':!![]});return db[_0x5496('0x58')][_0x5496('0x52')]({'where':{'id':_0x16486f[_0x5496('0x59')]},'raw':!![]})[_0x5496('0x2d')](function(_0x3a61b7){return createVoicePrefixExtensions(_0x16486f,_0x3a61b7,_0x43268c);});});})[_0x5496('0x2d')](function(){var _0x3371a6=_0x12e603[_0x5496('0x5a')][_0x5496('0x2e')]({'plain':!![]});if(!_0x3371a6)throw new Error(_0x5496('0x5b'));if(_0x3371a6[_0x5496('0x5c')]===_0x5496('0x5a')){var _0xa42c5f=_0x16486f;return db[_0x5496('0x5d')]['find']({'where':{'name':_0x5496('0x2f'),'userProfileId':_0x3371a6[_0x5496('0x5e')]},'raw':!![]})[_0x5496('0x2d')](function(_0x29a5b0){if(_0x29a5b0&&_0x29a5b0['autoAssociation']===0x0){return db['UserProfileResource'][_0x5496('0x5f')]({'name':_0xa42c5f[_0x5496('0x33')],'resourceId':_0xa42c5f['id'],'type':_0x29a5b0[_0x5496('0x33')],'sectionId':_0x29a5b0['id']},{})[_0x5496('0x2d')](function(){return _0x16486f;});}else{return _0x16486f;}})[_0x5496('0x4e')](function(_0x4306b7){logger[_0x5496('0x31')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x4306b7);throw _0x4306b7;});}return _0x16486f;})[_0x5496('0x2d')](respondWithResult(_0x383be3,null))[_0x5496('0x4e')](handleError(_0x383be3,null));};function Extension(_0x1989e1,_0x1485d8,_0x36897d,_0xaf41db){this[_0x5496('0x60')]=_0x5496('0x61');this[_0x5496('0x62')]=_0x1989e1;this[_0x5496('0x63')]=_0x36897d;this['type']=_0x5496('0x64');this[_0x5496('0x65')]=_0x5496('0x66');this[_0x5496('0x67')]=_0x1485d8;this[_0x5496('0x68')]=_0xaf41db;}function createVoicePrefixExtensions(_0x15008f,_0x560658,_0x17f5ca){return new BPromise(function(_0x22ca99,_0x3df54b){var _0x4ac8cb=new Extension(formatPrefixName(_0x15008f['prefix']),0x1,'NoOp',_0x5496('0x69'));_0x4ac8cb[_0x5496('0x6a')]=_0x15008f['id'];return db[_0x5496('0x58')][_0x5496('0x5f')](_0x4ac8cb,{'transaction':_0x17f5ca})[_0x5496('0x2d')](function(_0xe49cfa){var _0x3d3a9c=_0xe49cfa[_0x5496('0x2e')]({'plain':!![]});var _0x49b7e5=_[_0x5496('0x35')](addVoicePrefixExtensions(_0x15008f,_0x560658),function(_0x4e45d3){_0x4e45d3['VoiceExtensionId']=_0x3d3a9c['id'];_0x4e45d3[_0x5496('0x6a')]=_0x15008f['id'];return _0x4e45d3;});return db[_0x5496('0x58')][_0x5496('0x6b')](_0x49b7e5,{'transaction':_0x17f5ca})[_0x5496('0x2d')](function(_0x163417){if(!_0x163417){return _0x3df54b('Extensions\x20creation\x20failed');}else{return _0x22ca99(_0x163417);}})[_0x5496('0x4e')](function(_0x118630){return _0x3df54b(_0x118630);});});;});};function addVoicePrefixExtensions(_0x553e99,_0x9c7959){var _0x28acc0=[];var _0x903c49=formatPrefixName(_0x553e99[_0x5496('0x6c')]);_0x28acc0[_0x5496('0x6d')](new Extension(_0x903c49,0x2,_0x5496('0x6e'),'CDR(prefix)='+_0x553e99['name']));if(_0x553e99[_0x5496('0x6f')]){_0x28acc0[_0x5496('0x6d')](new Extension(_0x903c49,0x3,'Set','PREFIX-CALLERIDALL='+_0x553e99[_0x5496('0x6f')]));}else{_0x28acc0[_0x5496('0x6d')](new Extension(_0x903c49,0x3,_0x5496('0x70'),_0x5496('0x71')));}_0x28acc0[_0x5496('0x6d')](new Extension(_0x903c49,0x4,'goto',_0x9c7959[_0x5496('0x60')]+','+'${EXTEN:'+(0x8+_0x553e99[_0x5496('0x33')]['length'])+'}'+','+0x1));return _0x28acc0;}function formatPrefixName(_0x1b5b6a){var _0x3fce28='_';for(var _0x159f83=0x0;_0x159f83<_0x1b5b6a[_0x5496('0x3e')];_0x159f83++){if(_0x1b5b6a['charAt'](_0x159f83)=='-'){_0x3fce28+=_0x1b5b6a[_0x5496('0x72')](_0x159f83);}else{_0x3fce28+='['+_0x1b5b6a[_0x5496('0x72')](_0x159f83)+']';}}_0x3fce28+='.';return _0x3fce28;}exports[_0x5496('0x2b')]=function(_0x30f477,_0x2ed9f4,_0x4dfa83){var _0x4b6428=_0x30f477['body'];_0x4b6428[_0x5496('0x6c')]=_0x5496('0x73')+_0x4b6428[_0x5496('0x33')]+'-';return db[_0x5496('0x55')][_0x5496('0x56')](function(_0x4d9b94){return db[_0x5496('0x4c')][_0x5496('0x2b')](_0x4b6428,{'where':{'id':_0x4b6428['id']},'transaction':_0x4d9b94})[_0x5496('0x2d')](function(){return db['VoiceExtension']['destroy']({'where':{'VoicePrefixId':_0x4b6428['id']},'transaction':_0x4d9b94})[_0x5496('0x2d')](function(){return db[_0x5496('0x58')][_0x5496('0x52')]({'where':{'id':_0x4b6428[_0x5496('0x59')]},'raw':!![]})[_0x5496('0x2d')](function(_0x777dd0){return createVoicePrefixExtensions(_0x4b6428,_0x777dd0,_0x4d9b94);});});});})['then'](function(){return db[_0x5496('0x4c')]['findById'](_0x4b6428['id']);})[_0x5496('0x2d')](respondWithResult(_0x2ed9f4,null))[_0x5496('0x4e')](handleError(_0x2ed9f4,null));};exports[_0x5496('0x74')]=function(_0x17ccde,_0x3320ad,_0x4c5325){return db[_0x5496('0x4c')][_0x5496('0x52')]({'where':{'id':_0x17ccde[_0x5496('0x53')]['id']}})[_0x5496('0x2d')](handleEntityNotFound(_0x3320ad,null))[_0x5496('0x2d')](function(_0x250da5){if(_0x250da5){return _0x250da5['addAgents'](_0x17ccde[_0x5496('0x57')]['ids'],_['omit'](_0x17ccde[_0x5496('0x57')],[_0x5496('0x75'),'id'])||{})[_0x5496('0x76')](function(_0x585d10){for(var _0x119bf1=0x0;_0x119bf1<_0x17ccde[_0x5496('0x57')][_0x5496('0x75')][_0x5496('0x3e')];_0x119bf1+=0x1){socket[_0x5496('0x77')](_0x5496('0x78'),{'UserId':Number(_0x17ccde[_0x5496('0x57')][_0x5496('0x75')][_0x119bf1]),'VoicePrefixId':Number(_0x17ccde[_0x5496('0x53')]['id'])});}return _0x585d10;});}})[_0x5496('0x2d')](respondWithResult(_0x3320ad,null))[_0x5496('0x4e')](handleError(_0x3320ad,null));};exports['removeAgents']=function(_0x5a05e5,_0x571454,_0x37374e){return db[_0x5496('0x4c')][_0x5496('0x52')]({'where':{'id':_0x5a05e5['params']['id']}})[_0x5496('0x2d')](handleEntityNotFound(_0x571454,null))[_0x5496('0x2d')](function(_0x13ff9a){if(_0x13ff9a){return _0x13ff9a[_0x5496('0x79')](_0x5a05e5[_0x5496('0x3a')][_0x5496('0x75')])['then'](function(){if(_[_0x5496('0x7a')](_0x5a05e5[_0x5496('0x3a')][_0x5496('0x75')])){for(var _0x26176b=0x0;_0x26176b<_0x5a05e5['query'][_0x5496('0x75')][_0x5496('0x3e')];_0x26176b+=0x1){socket[_0x5496('0x77')](_0x5496('0x7b'),{'UserId':Number(_0x5a05e5[_0x5496('0x3a')][_0x5496('0x75')][_0x26176b]),'VoicePrefixId':Number(_0x5a05e5[_0x5496('0x53')]['id'])});}}else{socket[_0x5496('0x77')](_0x5496('0x7b'),{'UserId':Number(_0x5a05e5[_0x5496('0x3a')][_0x5496('0x75')]),'VoicePrefixId':Number(_0x5a05e5['params']['id'])});}});}})['then'](respondWithStatusCode(_0x571454,null))[_0x5496('0x4e')](handleError(_0x571454,null));};exports[_0x5496('0x7c')]=function(_0x35d45d,_0x56a783,_0x2f9c31){var _0x39dc2a={};var _0xecee07={};var _0x5151bc;var _0x414587;return db[_0x5496('0x4c')][_0x5496('0x7d')]({'where':{'id':_0x35d45d[_0x5496('0x53')]['id']}})[_0x5496('0x2d')](handleEntityNotFound(_0x56a783,null))[_0x5496('0x2d')](function(_0x14723c){if(_0x14723c){_0x5151bc=_0x14723c;_0xecee07[_0x5496('0x39')]=_['keys'](db[_0x5496('0x7e')]['rawAttributes']);_0xecee07[_0x5496('0x3a')]=_[_0x5496('0x50')](_0x35d45d[_0x5496('0x3a')]);_0xecee07[_0x5496('0x44')]=_['intersection'](_0xecee07[_0x5496('0x39')],_0xecee07[_0x5496('0x3a')]);_0x39dc2a['attributes']=_[_0x5496('0x3b')](_0xecee07['model'],qs['fields'](_0x35d45d['query']['fields']));_0x39dc2a[_0x5496('0x3c')]=_0x39dc2a[_0x5496('0x3c')][_0x5496('0x3e')]?_0x39dc2a['attributes']:_0xecee07[_0x5496('0x39')];_0x39dc2a[_0x5496('0x42')]=qs[_0x5496('0x43')](_0x35d45d[_0x5496('0x3a')]['sort']);_0x39dc2a[_0x5496('0x47')]=qs[_0x5496('0x44')](_[_0x5496('0x45')](_0x35d45d['query'],_0xecee07[_0x5496('0x44')]));if(_0x35d45d[_0x5496('0x3a')][_0x5496('0x48')]){_0x39dc2a[_0x5496('0x47')]=_[_0x5496('0x46')](_0x39dc2a['where'],{'$or':_[_0x5496('0x35')](_0x39dc2a[_0x5496('0x3c')],function(_0xdc4e74){var _0x1590d2={};_0x1590d2[_0xdc4e74]={'$like':'%'+_0x35d45d[_0x5496('0x3a')][_0x5496('0x48')]+'%'};return _0x1590d2;})});}_0x39dc2a=_[_0x5496('0x46')]({},_0x39dc2a,_0x35d45d[_0x5496('0x49')]);return _0x5151bc[_0x5496('0x7c')](_0x39dc2a);}})['then'](function(_0x5cd353){if(_0x5cd353){_0x414587=_0x5cd353[_0x5496('0x3e')];if(!_0x35d45d['query'][_0x5496('0x3f')](_0x5496('0x40'))){_0x39dc2a[_0x5496('0x41')]=qs[_0x5496('0x41')](_0x35d45d[_0x5496('0x3a')]['limit']);_0x39dc2a['offset']=qs[_0x5496('0x23')](_0x35d45d[_0x5496('0x3a')][_0x5496('0x23')]);}return _0x5151bc['getAgents'](_0x39dc2a);}})['then'](function(_0x2a12a0){if(_0x2a12a0){return _0x2a12a0?{'count':_0x414587,'rows':_0x2a12a0}:null;}})['then'](respondWithResult(_0x56a783,null))[_0x5496('0x4e')](handleError(_0x56a783,null));};
\ No newline at end of file
+var _0x8e3f=['charAt','update','system-','findById','addAgents','ids','omit','userVoicePrefix:save','isArray','emit','userVoicePrefix:remove','getAgents','findOne','User','getTeams','online','voicePause','interface','flatMap','get','Agents','addTeams','each','UserVoicePrefix','forEach','Team','select','field','tq.TeamId','join','VoicePrefixId\x20=\x20?','clone','ut.UserId\x20=\x20?','QueryTypes','every','includes','all','union','compact','removeTeams','isEmpty','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','util','path','to-csv','ejs','fs-extra','lodash','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','redis','defaults','localhost','./voicePrefix.socket','register','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','reject','save','then','destroy','VoicePrefixes','UserProfileResource','error','stack','name','send','index','map','rawAttributes','fieldName','type','query','keys','filters','model','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','VoicePrefix','findAll','catch','includeAll','include','find','params','describe','create','sequelize','transaction','body','VoiceExtension','VoiceExtensionId','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','userProfileId','context','from-sip','exten','app','description','Voice\x20Prefix\x20Extension','priority','prefix','NoOp','VoicePrefixId','bulkCreate','push','Set','CDR(prefix)=','callerIdAll','PREFIX-CALLERIDALL=','No\x20callerid\x20available','goto','${EXTEN:'];(function(_0x5b0177,_0x4a0286){var _0x169b26=function(_0x4c81b4){while(--_0x4c81b4){_0x5b0177['push'](_0x5b0177['shift']());}};_0x169b26(++_0x4a0286);}(_0x8e3f,0xc1));var _0xf8e3=function(_0x2c91e9,_0x2fb965){_0x2c91e9=_0x2c91e9-0x0;var _0x13f0ff=_0x8e3f[_0x2c91e9];return _0x13f0ff;};'use strict';var emlformat=require(_0xf8e3('0x0'));var rimraf=require(_0xf8e3('0x1'));var zipdir=require(_0xf8e3('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xf8e3('0x3'));var moment=require(_0xf8e3('0x4'));var BPromise=require(_0xf8e3('0x5'));var Mustache=require('mustache');var util=require(_0xf8e3('0x6'));var path=require(_0xf8e3('0x7'));var sox=require('sox');var csv=require(_0xf8e3('0x8'));var ejs=require(_0xf8e3('0x9'));var fs=require('fs');var fs_extra=require(_0xf8e3('0xa'));var _=require(_0xf8e3('0xb'));var squel=require('squel');var crypto=require(_0xf8e3('0xc'));var jsforce=require(_0xf8e3('0xd'));var deskjs=require(_0xf8e3('0xe'));var toCsv=require(_0xf8e3('0x8'));var querystring=require(_0xf8e3('0xf'));var Papa=require(_0xf8e3('0x10'));var Redis=require(_0xf8e3('0x11'));var authService=require(_0xf8e3('0x12'));var qs=require(_0xf8e3('0x13'));var as=require(_0xf8e3('0x14'));var hardwareService=require(_0xf8e3('0x15'));var logger=require(_0xf8e3('0x16'))('api');var utils=require(_0xf8e3('0x17'));var config=require(_0xf8e3('0x18'));var licenseUtil=require(_0xf8e3('0x19'));var db=require('../../mysqldb')['db'];config[_0xf8e3('0x1a')]=_[_0xf8e3('0x1b')](config[_0xf8e3('0x1a')],{'host':_0xf8e3('0x1c'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xf8e3('0x1a')]));require(_0xf8e3('0x1d'))[_0xf8e3('0x1e')](socket);function respondWithStatusCode(_0x4af736,_0x44f631){_0x44f631=_0x44f631||0xcc;return function(_0x5136c6){if(_0x5136c6){return _0x4af736[_0xf8e3('0x1f')](_0x44f631);}return _0x4af736[_0xf8e3('0x20')](_0x44f631)[_0xf8e3('0x21')]();};}function respondWithResult(_0x570ee3,_0x529c92){_0x529c92=_0x529c92||0xc8;return function(_0x564f43){if(_0x564f43){return _0x570ee3[_0xf8e3('0x20')](_0x529c92)[_0xf8e3('0x22')](_0x564f43);}};}function respondWithFilteredResult(_0x3b01ac,_0x110a78){return function(_0x11d4cc){if(_0x11d4cc){var _0x7a81c3=typeof _0x110a78[_0xf8e3('0x23')]===_0xf8e3('0x24')&&typeof _0x110a78[_0xf8e3('0x25')]==='undefined';var _0x20cc64=_0x11d4cc[_0xf8e3('0x26')];var _0x24e8d6=_0x7a81c3?0x0:_0x110a78[_0xf8e3('0x23')];var _0x3128ad=_0x7a81c3?_0x11d4cc[_0xf8e3('0x26')]:_0x110a78[_0xf8e3('0x23')]+_0x110a78[_0xf8e3('0x25')];var _0x5b99b1;if(_0x3128ad>=_0x20cc64){_0x3128ad=_0x20cc64;_0x5b99b1=0xc8;}else{_0x5b99b1=0xce;}_0x3b01ac[_0xf8e3('0x20')](_0x5b99b1);return _0x3b01ac[_0xf8e3('0x27')](_0xf8e3('0x28'),_0x24e8d6+'-'+_0x3128ad+'/'+_0x20cc64)[_0xf8e3('0x22')](_0x11d4cc);}return null;};}function patchUpdates(_0x4a1e5f){return function(_0x39df34){try{jsonpatch['apply'](_0x39df34,_0x4a1e5f,!![]);}catch(_0x286059){return BPromise[_0xf8e3('0x29')](_0x286059);}return _0x39df34[_0xf8e3('0x2a')]();};}function saveUpdates(_0x2dc856,_0x1f4b68){return function(_0x3ac384){if(_0x3ac384){return _0x3ac384['update'](_0x2dc856)[_0xf8e3('0x2b')](function(_0x2fc674){return _0x2fc674;});}return null;};}function removeEntity(_0x3373ca,_0x417b42){return function(_0x1f1363){if(_0x1f1363){return _0x1f1363[_0xf8e3('0x2c')]()[_0xf8e3('0x2b')](function(){var _0x157a2d=_0x1f1363['get']({'plain':!![]});var _0x356e0a=_0xf8e3('0x2d');return db[_0xf8e3('0x2e')][_0xf8e3('0x2c')]({'where':{'type':_0x356e0a,'resourceId':_0x157a2d['id']}})[_0xf8e3('0x2b')](function(){return _0x1f1363;});})[_0xf8e3('0x2b')](function(){_0x3373ca[_0xf8e3('0x20')](0xcc)[_0xf8e3('0x21')]();});}};}function handleEntityNotFound(_0x4f2ae9,_0x21e1c0){return function(_0x243e28){if(!_0x243e28){_0x4f2ae9[_0xf8e3('0x1f')](0x194);}return _0x243e28;};}function handleError(_0x28b2f2,_0x567153){_0x567153=_0x567153||0x1f4;return function(_0x2e507c){logger[_0xf8e3('0x2f')](_0x2e507c[_0xf8e3('0x30')]);if(_0x2e507c[_0xf8e3('0x31')]){delete _0x2e507c[_0xf8e3('0x31')];}_0x28b2f2[_0xf8e3('0x20')](_0x567153)[_0xf8e3('0x32')](_0x2e507c);};}exports[_0xf8e3('0x33')]=function(_0x50ad3f,_0x2c07bf){var _0x527337={},_0x4acd6c={},_0x5d2dd5={'count':0x0,'rows':[]};var _0x5cc1ed=_[_0xf8e3('0x34')](db['VoicePrefix'][_0xf8e3('0x35')],function(_0x41faaa){return{'name':_0x41faaa[_0xf8e3('0x36')],'type':_0x41faaa[_0xf8e3('0x37')]['key']};});_0x4acd6c['model']=_[_0xf8e3('0x34')](_0x5cc1ed,_0xf8e3('0x31'));_0x4acd6c[_0xf8e3('0x38')]=_[_0xf8e3('0x39')](_0x50ad3f[_0xf8e3('0x38')]);_0x4acd6c[_0xf8e3('0x3a')]=_['intersection'](_0x4acd6c[_0xf8e3('0x3b')],_0x4acd6c['query']);_0x527337['attributes']=_[_0xf8e3('0x3c')](_0x4acd6c[_0xf8e3('0x3b')],qs[_0xf8e3('0x3d')](_0x50ad3f[_0xf8e3('0x38')]['fields']));_0x527337['attributes']=_0x527337[_0xf8e3('0x3e')][_0xf8e3('0x3f')]?_0x527337['attributes']:_0x4acd6c[_0xf8e3('0x3b')];if(!_0x50ad3f[_0xf8e3('0x38')][_0xf8e3('0x40')](_0xf8e3('0x41'))){_0x527337['limit']=qs['limit'](_0x50ad3f['query'][_0xf8e3('0x25')]);_0x527337[_0xf8e3('0x23')]=qs[_0xf8e3('0x23')](_0x50ad3f[_0xf8e3('0x38')]['offset']);}_0x527337[_0xf8e3('0x42')]=qs['sort'](_0x50ad3f[_0xf8e3('0x38')][_0xf8e3('0x43')]);_0x527337[_0xf8e3('0x44')]=qs[_0xf8e3('0x3a')](_[_0xf8e3('0x45')](_0x50ad3f[_0xf8e3('0x38')],_0x4acd6c[_0xf8e3('0x3a')]),_0x5cc1ed);if(_0x50ad3f[_0xf8e3('0x38')][_0xf8e3('0x46')]){_0x527337['where']=_[_0xf8e3('0x47')](_0x527337['where'],{'$or':_[_0xf8e3('0x34')](_0x5cc1ed,function(_0x1e8917){if(_0x1e8917[_0xf8e3('0x37')]!==_0xf8e3('0x48')){var _0x64bfc6={};_0x64bfc6[_0x1e8917[_0xf8e3('0x31')]]={'$like':'%'+_0x50ad3f[_0xf8e3('0x38')][_0xf8e3('0x46')]+'%'};return _0x64bfc6;}})});}_0x527337=_['merge']({},_0x527337,_0x50ad3f[_0xf8e3('0x49')]);var _0x108b81={'where':_0x527337[_0xf8e3('0x44')]};return db[_0xf8e3('0x4a')][_0xf8e3('0x26')](_0x108b81)[_0xf8e3('0x2b')](function(_0x792190){_0x5d2dd5[_0xf8e3('0x26')]=_0x792190;if(_0x50ad3f['query']['includeAll']){_0x527337['include']=[{'all':!![]}];}return db[_0xf8e3('0x4a')][_0xf8e3('0x4b')](_0x527337);})['then'](function(_0x181908){_0x5d2dd5['rows']=_0x181908;return _0x5d2dd5;})[_0xf8e3('0x2b')](respondWithFilteredResult(_0x2c07bf,_0x527337))[_0xf8e3('0x4c')](handleError(_0x2c07bf,null));};exports['show']=function(_0x1fb64d,_0x4b0791){var _0x679519={'raw':![],'where':{'id':_0x1fb64d['params']['id']}},_0x6875a6={};_0x6875a6[_0xf8e3('0x3b')]=_[_0xf8e3('0x39')](db[_0xf8e3('0x4a')][_0xf8e3('0x35')]);_0x6875a6['query']=_['keys'](_0x1fb64d['query']);_0x6875a6[_0xf8e3('0x3a')]=_[_0xf8e3('0x3c')](_0x6875a6[_0xf8e3('0x3b')],_0x6875a6['query']);_0x679519[_0xf8e3('0x3e')]=_['intersection'](_0x6875a6[_0xf8e3('0x3b')],qs[_0xf8e3('0x3d')](_0x1fb64d['query']['fields']));_0x679519[_0xf8e3('0x3e')]=_0x679519[_0xf8e3('0x3e')][_0xf8e3('0x3f')]?_0x679519[_0xf8e3('0x3e')]:_0x6875a6[_0xf8e3('0x3b')];if(_0x1fb64d[_0xf8e3('0x38')][_0xf8e3('0x4d')]){_0x679519[_0xf8e3('0x4e')]=[{'all':!![]}];}_0x679519=_[_0xf8e3('0x47')]({},_0x679519,_0x1fb64d[_0xf8e3('0x49')]);return db[_0xf8e3('0x4a')]['find'](_0x679519)[_0xf8e3('0x2b')](handleEntityNotFound(_0x4b0791,null))[_0xf8e3('0x2b')](respondWithResult(_0x4b0791,null))[_0xf8e3('0x4c')](handleError(_0x4b0791,null));};exports[_0xf8e3('0x2c')]=function(_0x385a8f,_0x3256e6){return db['VoicePrefix'][_0xf8e3('0x4f')]({'where':{'id':_0x385a8f[_0xf8e3('0x50')]['id']}})[_0xf8e3('0x2b')](handleEntityNotFound(_0x3256e6,null))[_0xf8e3('0x2b')](removeEntity(_0x3256e6,null))[_0xf8e3('0x4c')](handleError(_0x3256e6,null));};exports[_0xf8e3('0x51')]=function(_0x5855f2,_0x260f67){return db[_0xf8e3('0x4a')][_0xf8e3('0x51')]()[_0xf8e3('0x2b')](respondWithResult(_0x260f67,null))[_0xf8e3('0x4c')](handleError(_0x260f67,null));};exports[_0xf8e3('0x52')]=function(_0x5990fc,_0x394e45){var _0x1f425f;return db[_0xf8e3('0x53')][_0xf8e3('0x54')](function(_0x452b00){return db['VoicePrefix'][_0xf8e3('0x52')](_0x5990fc[_0xf8e3('0x55')],{'transaction':_0x452b00})[_0xf8e3('0x2b')](function(_0x53c897){_0x1f425f=_0x53c897['get']({'plain':!![]});return db[_0xf8e3('0x56')][_0xf8e3('0x4f')]({'where':{'id':_0x1f425f[_0xf8e3('0x57')]},'raw':!![]})[_0xf8e3('0x2b')](function(_0x58ad2f){return createVoicePrefixExtensions(_0x1f425f,_0x58ad2f,_0x452b00);});});})[_0xf8e3('0x2b')](function(){var _0x16bddb=_0x5990fc['user']['get']({'plain':!![]});if(!_0x16bddb)throw new Error(_0xf8e3('0x58'));if(_0x16bddb[_0xf8e3('0x59')]===_0xf8e3('0x5a')){var _0x505477=_0x1f425f;return db['UserProfileSection']['find']({'where':{'name':_0xf8e3('0x2d'),'userProfileId':_0x16bddb[_0xf8e3('0x5b')]},'raw':!![]})['then'](function(_0x4937fc){if(_0x4937fc&&_0x4937fc['autoAssociation']===0x0){return db[_0xf8e3('0x2e')][_0xf8e3('0x52')]({'name':_0x505477['name'],'resourceId':_0x505477['id'],'type':_0x4937fc[_0xf8e3('0x31')],'sectionId':_0x4937fc['id']},{})[_0xf8e3('0x2b')](function(){return _0x1f425f;});}else{return _0x1f425f;}})[_0xf8e3('0x4c')](function(_0x560f42){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x560f42);throw _0x560f42;});}return _0x1f425f;})['then'](respondWithResult(_0x394e45,null))[_0xf8e3('0x4c')](handleError(_0x394e45,null));};function Extension(_0x3b120a,_0x3ef144,_0x447efe,_0x442349){this[_0xf8e3('0x5c')]=_0xf8e3('0x5d');this[_0xf8e3('0x5e')]=_0x3b120a;this[_0xf8e3('0x5f')]=_0x447efe;this['type']='system';this[_0xf8e3('0x60')]=_0xf8e3('0x61');this[_0xf8e3('0x62')]=_0x3ef144;this['appdata']=_0x442349;}function createVoicePrefixExtensions(_0x234b06,_0x131c0b,_0x4879c7){return new BPromise(function(_0x48bb3f,_0x256cd5){var _0x4763eb=new Extension(formatPrefixName(_0x234b06[_0xf8e3('0x63')]),0x1,_0xf8e3('0x64'),'Voice\x20Prefix');_0x4763eb['VoicePrefixId']=_0x234b06['id'];return db[_0xf8e3('0x56')][_0xf8e3('0x52')](_0x4763eb,{'transaction':_0x4879c7})[_0xf8e3('0x2b')](function(_0x392d99){var _0x4f1ddb=_0x392d99['get']({'plain':!![]});var _0x324ad5=_[_0xf8e3('0x34')](addVoicePrefixExtensions(_0x234b06,_0x131c0b),function(_0x56a07e){_0x56a07e[_0xf8e3('0x57')]=_0x4f1ddb['id'];_0x56a07e[_0xf8e3('0x65')]=_0x234b06['id'];return _0x56a07e;});return db[_0xf8e3('0x56')][_0xf8e3('0x66')](_0x324ad5,{'transaction':_0x4879c7})['then'](function(_0x11ebb2){if(!_0x11ebb2){return _0x256cd5('Extensions\x20creation\x20failed');}else{return _0x48bb3f(_0x11ebb2);}})[_0xf8e3('0x4c')](function(_0x1cad38){return _0x256cd5(_0x1cad38);});});;});};function addVoicePrefixExtensions(_0x5cbdc6,_0x2ec4f6){var _0x31568b=[];var _0x55418c=formatPrefixName(_0x5cbdc6[_0xf8e3('0x63')]);_0x31568b[_0xf8e3('0x67')](new Extension(_0x55418c,0x2,_0xf8e3('0x68'),_0xf8e3('0x69')+_0x5cbdc6['name']));if(_0x5cbdc6[_0xf8e3('0x6a')]){_0x31568b[_0xf8e3('0x67')](new Extension(_0x55418c,0x3,_0xf8e3('0x68'),_0xf8e3('0x6b')+_0x5cbdc6[_0xf8e3('0x6a')]));}else{_0x31568b[_0xf8e3('0x67')](new Extension(_0x55418c,0x3,_0xf8e3('0x64'),_0xf8e3('0x6c')));}_0x31568b[_0xf8e3('0x67')](new Extension(_0x55418c,0x4,_0xf8e3('0x6d'),_0x2ec4f6[_0xf8e3('0x5c')]+','+_0xf8e3('0x6e')+(0x8+_0x5cbdc6['name']['length'])+'}'+','+0x1));return _0x31568b;}function formatPrefixName(_0x2f6cf4){var _0x32eaab='_';for(var _0x5ccdb2=0x0;_0x5ccdb2<_0x2f6cf4[_0xf8e3('0x3f')];_0x5ccdb2++){if(_0x2f6cf4[_0xf8e3('0x6f')](_0x5ccdb2)=='-'){_0x32eaab+=_0x2f6cf4[_0xf8e3('0x6f')](_0x5ccdb2);}else{_0x32eaab+='['+_0x2f6cf4[_0xf8e3('0x6f')](_0x5ccdb2)+']';}}_0x32eaab+='.';return _0x32eaab;}exports[_0xf8e3('0x70')]=function(_0x5804eb,_0x3e501c,_0x1dcd23){var _0x52e996=_0x5804eb[_0xf8e3('0x55')];_0x52e996['prefix']=_0xf8e3('0x71')+_0x52e996['name']+'-';return db[_0xf8e3('0x53')][_0xf8e3('0x54')](function(_0x45361d){return db[_0xf8e3('0x4a')][_0xf8e3('0x70')](_0x52e996,{'where':{'id':_0x52e996['id']},'transaction':_0x45361d})['then'](function(){return db[_0xf8e3('0x56')][_0xf8e3('0x2c')]({'where':{'VoicePrefixId':_0x52e996['id']},'transaction':_0x45361d})[_0xf8e3('0x2b')](function(){return db[_0xf8e3('0x56')][_0xf8e3('0x4f')]({'where':{'id':_0x52e996[_0xf8e3('0x57')]},'raw':!![]})[_0xf8e3('0x2b')](function(_0x2ccd34){return createVoicePrefixExtensions(_0x52e996,_0x2ccd34,_0x45361d);});});});})[_0xf8e3('0x2b')](function(){return db[_0xf8e3('0x4a')][_0xf8e3('0x72')](_0x52e996['id']);})[_0xf8e3('0x2b')](respondWithResult(_0x3e501c,null))['catch'](handleError(_0x3e501c,null));};exports[_0xf8e3('0x73')]=function(_0x280f06,_0x3dc049,_0x4b69db){return db[_0xf8e3('0x4a')][_0xf8e3('0x4f')]({'where':{'id':_0x280f06[_0xf8e3('0x50')]['id']}})[_0xf8e3('0x2b')](handleEntityNotFound(_0x3dc049,null))[_0xf8e3('0x2b')](function(_0x40174a){if(_0x40174a){return _0x40174a[_0xf8e3('0x73')](_0x280f06[_0xf8e3('0x55')][_0xf8e3('0x74')],_[_0xf8e3('0x75')](_0x280f06[_0xf8e3('0x55')],[_0xf8e3('0x74'),'id'])||{})['spread'](function(_0x118cc6){for(var _0xf7cb3a=0x0;_0xf7cb3a<_0x280f06[_0xf8e3('0x55')][_0xf8e3('0x74')]['length'];_0xf7cb3a+=0x1){socket['emit'](_0xf8e3('0x76'),{'UserId':Number(_0x280f06[_0xf8e3('0x55')]['ids'][_0xf7cb3a]),'VoicePrefixId':Number(_0x280f06['params']['id'])});}return _0x118cc6;});}})[_0xf8e3('0x2b')](respondWithResult(_0x3dc049,null))[_0xf8e3('0x4c')](handleError(_0x3dc049,null));};exports['removeAgents']=function(_0x2a2c6,_0xca5962,_0x16e69a){return db[_0xf8e3('0x4a')][_0xf8e3('0x4f')]({'where':{'id':_0x2a2c6['params']['id']}})[_0xf8e3('0x2b')](handleEntityNotFound(_0xca5962,null))[_0xf8e3('0x2b')](function(_0x54db4e){if(_0x54db4e){return _0x54db4e['removeAgents'](_0x2a2c6[_0xf8e3('0x38')][_0xf8e3('0x74')])[_0xf8e3('0x2b')](function(){if(_[_0xf8e3('0x77')](_0x2a2c6[_0xf8e3('0x38')][_0xf8e3('0x74')])){for(var _0x3823b9=0x0;_0x3823b9<_0x2a2c6[_0xf8e3('0x38')]['ids'][_0xf8e3('0x3f')];_0x3823b9+=0x1){socket[_0xf8e3('0x78')](_0xf8e3('0x79'),{'UserId':Number(_0x2a2c6[_0xf8e3('0x38')][_0xf8e3('0x74')][_0x3823b9]),'VoicePrefixId':Number(_0x2a2c6[_0xf8e3('0x50')]['id'])});}}else{socket['emit'](_0xf8e3('0x79'),{'UserId':Number(_0x2a2c6[_0xf8e3('0x38')][_0xf8e3('0x74')]),'VoicePrefixId':Number(_0x2a2c6['params']['id'])});}});}})['then'](respondWithStatusCode(_0xca5962,null))[_0xf8e3('0x4c')](handleError(_0xca5962,null));};exports[_0xf8e3('0x7a')]=function(_0x25805c,_0xc01ac,_0x4659ed){var _0x5b8840={};var _0x25bf6c={};var _0x1f5a80;var _0x1bfe33;return db[_0xf8e3('0x4a')][_0xf8e3('0x7b')]({'where':{'id':_0x25805c[_0xf8e3('0x50')]['id']}})[_0xf8e3('0x2b')](handleEntityNotFound(_0xc01ac,null))[_0xf8e3('0x2b')](function(_0x40b66c){if(_0x40b66c){_0x1f5a80=_0x40b66c;_0x25bf6c['model']=_[_0xf8e3('0x39')](db[_0xf8e3('0x7c')][_0xf8e3('0x35')]);_0x25bf6c[_0xf8e3('0x38')]=_[_0xf8e3('0x39')](_0x25805c[_0xf8e3('0x38')]);_0x25bf6c[_0xf8e3('0x3a')]=_['intersection'](_0x25bf6c['model'],_0x25bf6c[_0xf8e3('0x38')]);_0x5b8840[_0xf8e3('0x3e')]=_['intersection'](_0x25bf6c[_0xf8e3('0x3b')],qs[_0xf8e3('0x3d')](_0x25805c[_0xf8e3('0x38')][_0xf8e3('0x3d')]));_0x5b8840[_0xf8e3('0x3e')]=_0x5b8840[_0xf8e3('0x3e')][_0xf8e3('0x3f')]?_0x5b8840['attributes']:_0x25bf6c[_0xf8e3('0x3b')];_0x5b8840[_0xf8e3('0x42')]=qs[_0xf8e3('0x43')](_0x25805c[_0xf8e3('0x38')][_0xf8e3('0x43')]);_0x5b8840[_0xf8e3('0x44')]=qs[_0xf8e3('0x3a')](_[_0xf8e3('0x45')](_0x25805c[_0xf8e3('0x38')],_0x25bf6c[_0xf8e3('0x3a')]));if(_0x25805c[_0xf8e3('0x38')]['filter']){_0x5b8840['where']=_[_0xf8e3('0x47')](_0x5b8840['where'],{'$or':_[_0xf8e3('0x34')](_0x5b8840['attributes'],function(_0x1a3843){var _0x1b2249={};_0x1b2249[_0x1a3843]={'$like':'%'+_0x25805c[_0xf8e3('0x38')]['filter']+'%'};return _0x1b2249;})});}_0x5b8840=_[_0xf8e3('0x47')]({},_0x5b8840,_0x25805c[_0xf8e3('0x49')]);return _0x1f5a80[_0xf8e3('0x7a')](_0x5b8840);}})[_0xf8e3('0x2b')](function(_0x3619cd){if(_0x3619cd){_0x1bfe33=_0x3619cd['length'];if(!_0x25805c[_0xf8e3('0x38')]['hasOwnProperty'](_0xf8e3('0x41'))){_0x5b8840[_0xf8e3('0x25')]=qs[_0xf8e3('0x25')](_0x25805c[_0xf8e3('0x38')][_0xf8e3('0x25')]);_0x5b8840[_0xf8e3('0x23')]=qs[_0xf8e3('0x23')](_0x25805c['query'][_0xf8e3('0x23')]);}return _0x1f5a80[_0xf8e3('0x7a')](_0x5b8840);}})[_0xf8e3('0x2b')](function(_0x1a9ba6){if(_0x1a9ba6){return _0x1a9ba6?{'count':_0x1bfe33,'rows':_0x1a9ba6}:null;}})['then'](respondWithResult(_0xc01ac,null))[_0xf8e3('0x4c')](handleError(_0xc01ac,null));};exports[_0xf8e3('0x7d')]=function(_0x3f7c0e,_0x2da8fb,_0x22fa2f){var _0x18fbd2={};var _0x477589={};var _0x1bb12c;var _0x4a5ad8;return db['VoicePrefix'][_0xf8e3('0x7b')]({'where':{'id':_0x3f7c0e[_0xf8e3('0x50')]['id']}})[_0xf8e3('0x2b')](handleEntityNotFound(_0x2da8fb,null))[_0xf8e3('0x2b')](function(_0x131625){if(_0x131625){_0x1bb12c=_0x131625;_0x477589[_0xf8e3('0x3b')]=_[_0xf8e3('0x39')](db['Team'][_0xf8e3('0x35')]);_0x477589['query']=_[_0xf8e3('0x39')](_0x3f7c0e[_0xf8e3('0x38')]);_0x477589[_0xf8e3('0x3a')]=_[_0xf8e3('0x3c')](_0x477589['model'],_0x477589[_0xf8e3('0x38')]);_0x18fbd2['attributes']=_['intersection'](_0x477589[_0xf8e3('0x3b')],qs[_0xf8e3('0x3d')](_0x3f7c0e[_0xf8e3('0x38')][_0xf8e3('0x3d')]));_0x18fbd2['attributes']=_0x18fbd2['attributes'][_0xf8e3('0x3f')]?_0x18fbd2[_0xf8e3('0x3e')]:_0x477589['model'];_0x18fbd2['order']=qs[_0xf8e3('0x43')](_0x3f7c0e[_0xf8e3('0x38')]['sort']);_0x18fbd2[_0xf8e3('0x44')]=qs[_0xf8e3('0x3a')](_[_0xf8e3('0x45')](_0x3f7c0e[_0xf8e3('0x38')],_0x477589[_0xf8e3('0x3a')]));if(_0x3f7c0e[_0xf8e3('0x38')][_0xf8e3('0x46')]){_0x18fbd2['where']=_[_0xf8e3('0x47')](_0x18fbd2[_0xf8e3('0x44')],{'$or':_['map'](_0x18fbd2[_0xf8e3('0x3e')],function(_0x4a8866){var _0x1ca81d={};_0x1ca81d[_0x4a8866]={'$like':'%'+_0x3f7c0e[_0xf8e3('0x38')][_0xf8e3('0x46')]+'%'};return _0x1ca81d;})});}_0x18fbd2=_['merge']({},_0x18fbd2,_0x3f7c0e[_0xf8e3('0x49')]);return _0x1bb12c['getTeams'](_0x18fbd2);}})[_0xf8e3('0x2b')](function(_0x41ca1b){if(_0x41ca1b){_0x4a5ad8=_0x41ca1b[_0xf8e3('0x3f')];if(!_0x3f7c0e[_0xf8e3('0x38')]['hasOwnProperty']('nolimit')){_0x18fbd2[_0xf8e3('0x25')]=qs[_0xf8e3('0x25')](_0x3f7c0e[_0xf8e3('0x38')][_0xf8e3('0x25')]);_0x18fbd2[_0xf8e3('0x23')]=qs[_0xf8e3('0x23')](_0x3f7c0e['query'][_0xf8e3('0x23')]);}return _0x1bb12c[_0xf8e3('0x7d')](_0x18fbd2);}})[_0xf8e3('0x2b')](function(_0x348e59){if(_0x348e59){return _0x348e59?{'count':_0x4a5ad8,'rows':_0x348e59}:null;}})['then'](respondWithResult(_0x2da8fb,null))[_0xf8e3('0x4c')](handleError(_0x2da8fb,null));};exports['addTeams']=function(_0x3b51c7,_0xf88bb2,_0x4b27e3){var _0x108168=_0x3b51c7['body'][_0xf8e3('0x74')];var _0x3fba66;return db['Team'][_0xf8e3('0x4b')]({'where':{'id':_0x108168},'attributes':['id'],'include':[{'model':db[_0xf8e3('0x7c')],'as':'Agents','attributes':['id',_0xf8e3('0x31'),_0xf8e3('0x7e'),_0xf8e3('0x7f'),_0xf8e3('0x80')],'raw':!![]}]})[_0xf8e3('0x2b')](function(_0x3b79e1){if(_0x3b79e1){_0x3fba66=_0x3b79e1;var _0x13f467=_[_0xf8e3('0x81')](_0x3b79e1,function(_0x29c04b){var _0x271ed0=_0x29c04b[_0xf8e3('0x82')]({'plain':!![]});return _0x271ed0[_0xf8e3('0x83')];});return db['VoicePrefix'][_0xf8e3('0x4f')]({'where':{'id':_0x3b51c7[_0xf8e3('0x50')]['id']}})[_0xf8e3('0x2b')](function(_0x48230e){return db[_0xf8e3('0x53')][_0xf8e3('0x54')](function(_0x7e83fd){return _0x48230e[_0xf8e3('0x84')](_0x108168,{'transaction':_0x7e83fd})[_0xf8e3('0x2b')](function(){return BPromise[_0xf8e3('0x85')](_0x3fba66,function(_0x6d4c09){return db['TeamVoicePrefix']['upsert']({'TeamId':_0x6d4c09['id'],'VoicePrefixId':_0x3b51c7[_0xf8e3('0x50')]['id']},{'transaction':_0x7e83fd});});})[_0xf8e3('0x2b')](function(){return BPromise['each'](_0x13f467,function(_0x1a85cf){return db[_0xf8e3('0x86')]['findOrCreate']({'where':{'UserId':_0x1a85cf['id'],'VoicePrefixId':_0x3b51c7[_0xf8e3('0x50')]['id']},'transaction':_0x7e83fd});});})[_0xf8e3('0x2b')](function(){_0x13f467[_0xf8e3('0x87')](function(_0x27d0b6){socket[_0xf8e3('0x78')]('userVoicePrefix:save',{'UserId':_0x27d0b6['id'],'VoicePrefixId':_0x48230e['id']});});});});});}})[_0xf8e3('0x2b')](respondWithStatusCode(_0xf88bb2,null))[_0xf8e3('0x4c')](handleError(_0xf88bb2,null));};exports['removeTeams']=function(_0x4f02bb,_0x237eb6,_0xd9e796){return db[_0xf8e3('0x88')][_0xf8e3('0x4b')]({'where':{'id':_0x4f02bb[_0xf8e3('0x38')][_0xf8e3('0x74')]},'attributes':['id'],'include':[{'model':db['User'],'as':_0xf8e3('0x83'),'attributes':['id'],'raw':!![]}]})[_0xf8e3('0x2b')](handleEntityNotFound(_0x237eb6,null))['then'](function(_0x5ae078){var _0x512d8d=_[_0xf8e3('0x34')](_0x5ae078,'id');var _0x186e42=[];var _0x417af2=[];var _0x29f5d0=squel[_0xf8e3('0x89')]();_0x29f5d0[_0xf8e3('0x8a')](_0xf8e3('0x8b'))['from']('team_has_voice_prefixes','tq')[_0xf8e3('0x8c')]('user_has_teams','ut','ut.TeamId\x20=\x20tq.TeamId')[_0xf8e3('0x44')](_0xf8e3('0x8d'),_0x4f02bb['params']['id']);for(var _0x1cff32=0x0;_0x1cff32<_0x5ae078[_0xf8e3('0x3f')];_0x1cff32+=0x1){let _0x876d0c=_0x5ae078[_0x1cff32];for(var _0x2c4060=0x0;_0x2c4060<_0x876d0c[_0xf8e3('0x83')][_0xf8e3('0x3f')];_0x2c4060+=0x1){let _0x1b8e99=_0x876d0c[_0xf8e3('0x83')][_0x2c4060];var _0x107896=_0x29f5d0[_0xf8e3('0x8e')]();_0x107896[_0xf8e3('0x44')](_0xf8e3('0x8f'),_0x1b8e99['id']);_0x417af2[_0xf8e3('0x67')](db[_0xf8e3('0x53')][_0xf8e3('0x38')](_0x107896['toString'](),{'type':db[_0xf8e3('0x53')][_0xf8e3('0x90')]['SELECT']})[_0xf8e3('0x2b')](function(_0x4e8329){if(_0x4e8329['length']===0x1){return _0x1b8e99['id'];}else{var _0x5a66ee=_[_0xf8e3('0x91')](_[_0xf8e3('0x34')](_0x4e8329,'TeamId'),function(_0x207393){return _[_0xf8e3('0x92')](_0x512d8d,_0x207393);});if(_0x5a66ee){return _0x1b8e99['id'];}}}));}}return BPromise[_0xf8e3('0x93')](_0x417af2)['then'](function(_0x3a39a8){_0x186e42=_(_0x186e42)[_0xf8e3('0x94')](_0x3a39a8)[_0xf8e3('0x95')]()['value']();return db[_0xf8e3('0x4a')][_0xf8e3('0x4f')]({'where':{'id':_0x4f02bb[_0xf8e3('0x50')]['id']}})['then'](function(_0x42d800){return db[_0xf8e3('0x53')][_0xf8e3('0x54')](function(_0x13782d){return _0x42d800[_0xf8e3('0x96')](_0x4f02bb[_0xf8e3('0x38')]['ids'],{'transaction':_0x13782d})[_0xf8e3('0x2b')](function(){if(!_[_0xf8e3('0x97')](_0x186e42)){return _0x42d800['removeAgents'](_0x186e42,{'transaction':_0x13782d});}})[_0xf8e3('0x2b')](function(){_0x186e42[_0xf8e3('0x87')](function(_0xcf534f){socket[_0xf8e3('0x78')]('userVoicePrefix:remove',{'UserId':_0xcf534f,'VoicePrefixId':_0x42d800['id']});});});});});});})[_0xf8e3('0x2b')](respondWithStatusCode(_0x237eb6,null))['catch'](handleError(_0x237eb6,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4120=['save','update','remove','emit','hasOwnProperty','hook','exports','../../mysqldb','VoicePrefix','setMaxListeners'];(function(_0xfad273,_0xca2529){var _0x3d41a2=function(_0x1bc4b9){while(--_0x1bc4b9){_0xfad273['push'](_0xfad273['shift']());}};_0x3d41a2(++_0xca2529);}(_0x4120,0x9d));var _0x0412=function(_0x5ddb1c,_0x5ea4df){_0x5ddb1c=_0x5ddb1c-0x0;var _0x354adc=_0x4120[_0x5ddb1c];return _0x354adc;};'use strict';var EventEmitter=require('events');var VoicePrefix=require(_0x0412('0x0'))['db'][_0x0412('0x1')];var VoicePrefixEvents=new EventEmitter();VoicePrefixEvents[_0x0412('0x2')](0x0);var events={'afterCreate':_0x0412('0x3'),'afterUpdate':_0x0412('0x4'),'afterDestroy':_0x0412('0x5')};function emitEvent(_0x4de350){return function(_0xf228b8,_0x2d3fc0,_0x1d5cad){VoicePrefixEvents[_0x0412('0x6')](_0x4de350+':'+_0xf228b8['id'],_0xf228b8);VoicePrefixEvents[_0x0412('0x6')](_0x4de350,_0xf228b8);_0x1d5cad(null);};}for(var e in events){if(events[_0x0412('0x7')](e)){var event=events[e];VoicePrefix[_0x0412('0x8')](e,emitEvent(event));}}module[_0x0412('0x9')]=VoicePrefixEvents;
\ No newline at end of file
+var _0x97ba=['emit','hasOwnProperty','hook','events','../../mysqldb','VoicePrefix','save','update','remove'];(function(_0x45fcbb,_0x4ba64d){var _0x523b17=function(_0x13edd6){while(--_0x13edd6){_0x45fcbb['push'](_0x45fcbb['shift']());}};_0x523b17(++_0x4ba64d);}(_0x97ba,0x78));var _0xa97b=function(_0x546908,_0x3f17ab){_0x546908=_0x546908-0x0;var _0x139cb2=_0x97ba[_0x546908];return _0x139cb2;};'use strict';var EventEmitter=require(_0xa97b('0x0'));var VoicePrefix=require(_0xa97b('0x1'))['db'][_0xa97b('0x2')];var VoicePrefixEvents=new EventEmitter();VoicePrefixEvents['setMaxListeners'](0x0);var events={'afterCreate':_0xa97b('0x3'),'afterUpdate':_0xa97b('0x4'),'afterDestroy':_0xa97b('0x5')};function emitEvent(_0x1f1604){return function(_0x29eb5a,_0x5b25da,_0x20abd2){VoicePrefixEvents[_0xa97b('0x6')](_0x1f1604+':'+_0x29eb5a['id'],_0x29eb5a);VoicePrefixEvents['emit'](_0x1f1604,_0x29eb5a);_0x20abd2(null);};}for(var e in events){if(events[_0xa97b('0x7')](e)){var event=events[e];VoicePrefix[_0xa97b('0x8')](e,emitEvent(event));}}module['exports']=VoicePrefixEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xee03=['api','rimraf','exports','define','voice_prefixes','lodash','util','../../config/logger'];(function(_0x46e363,_0x45d7e2){var _0x3fb059=function(_0x5e6274){while(--_0x5e6274){_0x46e363['push'](_0x46e363['shift']());}};_0x3fb059(++_0x45d7e2);}(_0xee03,0x105));var _0x3ee0=function(_0x5242f8,_0x576396){_0x5242f8=_0x5242f8-0x0;var _0xd6063b=_0xee03[_0x5242f8];return _0xd6063b;};'use strict';var _=require(_0x3ee0('0x0'));var util=require(_0x3ee0('0x1'));var logger=require(_0x3ee0('0x2'))(_0x3ee0('0x3'));var moment=require('moment');var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0x3ee0('0x4'));var config=require('../../config/environment');var attributes=require('./voicePrefix.attributes');module[_0x3ee0('0x5')]=function(_0x12a758,_0x1a33ea){return _0x12a758[_0x3ee0('0x6')]('VoicePrefix',attributes,{'tableName':_0x3ee0('0x7'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xa0c2=['voice_prefixes','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','../../config/environment','./voicePrefix.attributes','VoicePrefix'];(function(_0x52c5c6,_0x243093){var _0x35dc7d=function(_0x2cd433){while(--_0x2cd433){_0x52c5c6['push'](_0x52c5c6['shift']());}};_0x35dc7d(++_0x243093);}(_0xa0c2,0x115));var _0x2a0c=function(_0x106ce0,_0x3af244){_0x106ce0=_0x106ce0-0x0;var _0x30a965=_0xa0c2[_0x106ce0];return _0x30a965;};'use strict';var _=require(_0x2a0c('0x0'));var util=require(_0x2a0c('0x1'));var logger=require(_0x2a0c('0x2'))(_0x2a0c('0x3'));var moment=require(_0x2a0c('0x4'));var BPromise=require(_0x2a0c('0x5'));var rp=require(_0x2a0c('0x6'));var fs=require('fs');var path=require(_0x2a0c('0x7'));var rimraf=require('rimraf');var config=require(_0x2a0c('0x8'));var attributes=require(_0x2a0c('0x9'));module['exports']=function(_0x2f86e7,_0x203e33){return _0x2f86e7['define'](_0x2a0c('0xa'),attributes,{'tableName':_0x2a0c('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x68fd=['message','result','catch','lodash','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','defaults','redis','localhost','socket.io-emitter','./voicePrefix.socket','register','request','then','info','VoicePrefix,\x20%s,\x20%s','request\x20sent','error'];(function(_0x5c9825,_0x5a42ae){var _0x47e93c=function(_0x377683){while(--_0x377683){_0x5c9825['push'](_0x5c9825['shift']());}};_0x47e93c(++_0x5a42ae);}(_0x68fd,0x1e9));var _0xd68f=function(_0x154b28,_0x1b63e7){_0x154b28=_0x154b28-0x0;var _0x498819=_0x68fd[_0x154b28];return _0x498819;};'use strict';var _=require(_0xd68f('0x0'));var util=require('util');var moment=require(_0xd68f('0x1'));var BPromise=require(_0xd68f('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xd68f('0x3'));var db=require(_0xd68f('0x4'))['db'];var utils=require(_0xd68f('0x5'));var logger=require(_0xd68f('0x6'))(_0xd68f('0x7'));var config=require(_0xd68f('0x8'));var jayson=require(_0xd68f('0x9'));var client=jayson[_0xd68f('0xa')][_0xd68f('0xb')]({'port':0x232a});config['redis']=_[_0xd68f('0xc')](config[_0xd68f('0xd')],{'host':_0xd68f('0xe'),'port':0x18eb});var socket=require(_0xd68f('0xf'))(new Redis(config[_0xd68f('0xd')]));require(_0xd68f('0x10'))[_0xd68f('0x11')](socket);function respondWithRpcPromise(_0x4ff4ee,_0x52514d,_0x1c397a){return new BPromise(function(_0x59ac71,_0x114bda){return client[_0xd68f('0x12')](_0x4ff4ee,_0x1c397a)[_0xd68f('0x13')](function(_0x27001e){logger[_0xd68f('0x14')](_0xd68f('0x15'),_0x52514d,_0xd68f('0x16'));logger['debug']('VoicePrefix,\x20%s,\x20%s,\x20%s',_0x52514d,'request\x20sent',JSON['stringify'](_0x27001e));if(_0x27001e[_0xd68f('0x17')]){if(_0x27001e[_0xd68f('0x17')]['code']===0x1f4){logger[_0xd68f('0x17')](_0xd68f('0x15'),_0x52514d,_0x27001e[_0xd68f('0x17')][_0xd68f('0x18')]);return _0x114bda(_0x27001e[_0xd68f('0x17')][_0xd68f('0x18')]);}logger[_0xd68f('0x17')]('VoicePrefix,\x20%s,\x20%s',_0x52514d,_0x27001e[_0xd68f('0x17')]['message']);return _0x59ac71(_0x27001e['error'][_0xd68f('0x18')]);}else{logger[_0xd68f('0x14')](_0xd68f('0x15'),_0x52514d,_0xd68f('0x16'));_0x59ac71(_0x27001e[_0xd68f('0x19')][_0xd68f('0x18')]);}})[_0xd68f('0x1a')](function(_0x47fdbc){logger['error'](_0xd68f('0x15'),_0x52514d,_0x47fdbc);_0x114bda(_0x47fdbc);});});}
\ No newline at end of file
+var _0x794b=['request\x20sent','debug','VoicePrefix,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','lodash','util','bluebird','randomstring','../../config/utils','../../config/logger','jayson/promise','client','http','redis','defaults','socket.io-emitter','./voicePrefix.socket','register','request','then','info','VoicePrefix,\x20%s,\x20%s'];(function(_0x144c20,_0x579083){var _0x3a270a=function(_0x17fd0c){while(--_0x17fd0c){_0x144c20['push'](_0x144c20['shift']());}};_0x3a270a(++_0x579083);}(_0x794b,0x1c2));var _0xb794=function(_0x6c7198,_0x49532f){_0x6c7198=_0x6c7198-0x0;var _0x2241c0=_0x794b[_0x6c7198];return _0x2241c0;};'use strict';var _=require(_0xb794('0x0'));var util=require(_0xb794('0x1'));var moment=require('moment');var BPromise=require(_0xb794('0x2'));var rs=require(_0xb794('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0xb794('0x4'));var logger=require(_0xb794('0x5'))('rpc');var config=require('../../config/environment');var jayson=require(_0xb794('0x6'));var client=jayson[_0xb794('0x7')][_0xb794('0x8')]({'port':0x232a});config[_0xb794('0x9')]=_[_0xb794('0xa')](config[_0xb794('0x9')],{'host':'localhost','port':0x18eb});var socket=require(_0xb794('0xb'))(new Redis(config[_0xb794('0x9')]));require(_0xb794('0xc'))[_0xb794('0xd')](socket);function respondWithRpcPromise(_0x2d0d36,_0xf87756,_0x13bd3d){return new BPromise(function(_0x1f224a,_0x19cfa0){return client[_0xb794('0xe')](_0x2d0d36,_0x13bd3d)[_0xb794('0xf')](function(_0x1b1cee){logger[_0xb794('0x10')](_0xb794('0x11'),_0xf87756,_0xb794('0x12'));logger[_0xb794('0x13')](_0xb794('0x14'),_0xf87756,_0xb794('0x12'),JSON[_0xb794('0x15')](_0x1b1cee));if(_0x1b1cee[_0xb794('0x16')]){if(_0x1b1cee[_0xb794('0x16')]['code']===0x1f4){logger[_0xb794('0x16')](_0xb794('0x11'),_0xf87756,_0x1b1cee[_0xb794('0x16')][_0xb794('0x17')]);return _0x19cfa0(_0x1b1cee[_0xb794('0x16')][_0xb794('0x17')]);}logger['error'](_0xb794('0x11'),_0xf87756,_0x1b1cee[_0xb794('0x16')]['message']);return _0x1f224a(_0x1b1cee[_0xb794('0x16')][_0xb794('0x17')]);}else{logger['info'](_0xb794('0x11'),_0xf87756,_0xb794('0x12'));_0x1f224a(_0x1b1cee[_0xb794('0x18')]['message']);}})[_0xb794('0x19')](function(_0xa0c655){logger['error'](_0xb794('0x11'),_0xf87756,_0xa0c655);_0x19cfa0(_0xa0c655);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1752=['removeListener','register','length','save','remove','update'];(function(_0x5bc816,_0x3e2634){var _0x204915=function(_0x49ed75){while(--_0x49ed75){_0x5bc816['push'](_0x5bc816['shift']());}};_0x204915(++_0x3e2634);}(_0x1752,0xa5));var _0x2175=function(_0x15b433,_0x53f804){_0x15b433=_0x15b433-0x0;var _0x874349=_0x1752[_0x15b433];return _0x874349;};'use strict';var VoicePrefixEvents=require('./voicePrefix.events');var events=[_0x2175('0x0'),_0x2175('0x1'),_0x2175('0x2')];function createListener(_0x1886b3,_0x1b2344){return function(_0xe2453c){_0x1b2344['emit'](_0x1886b3,_0xe2453c);};}function removeListener(_0x1ee277,_0x22c167){return function(){VoicePrefixEvents[_0x2175('0x3')](_0x1ee277,_0x22c167);};}exports[_0x2175('0x4')]=function(_0x222868){for(var _0x27ff0b=0x0,_0x19ca87=events[_0x2175('0x5')];_0x27ff0b<_0x19ca87;_0x27ff0b++){var _0x339e4d=events[_0x27ff0b];var _0x672ff1=createListener('voicePrefix:'+_0x339e4d,_0x222868);VoicePrefixEvents['on'](_0x339e4d,_0x672ff1);}};
\ No newline at end of file
+var _0x5bc5=['register','length','./voicePrefix.events','save','remove','update','emit','removeListener'];(function(_0xce6f11,_0x3c3137){var _0x35b709=function(_0x1755c6){while(--_0x1755c6){_0xce6f11['push'](_0xce6f11['shift']());}};_0x35b709(++_0x3c3137);}(_0x5bc5,0xb2));var _0x55bc=function(_0xd8aad0,_0x4da2cd){_0xd8aad0=_0xd8aad0-0x0;var _0x570860=_0x5bc5[_0xd8aad0];return _0x570860;};'use strict';var VoicePrefixEvents=require(_0x55bc('0x0'));var events=[_0x55bc('0x1'),_0x55bc('0x2'),_0x55bc('0x3')];function createListener(_0x19006b,_0x2e077d){return function(_0x2ebc5a){_0x2e077d[_0x55bc('0x4')](_0x19006b,_0x2ebc5a);};}function removeListener(_0xa94795,_0x1ea633){return function(){VoicePrefixEvents[_0x55bc('0x5')](_0xa94795,_0x1ea633);};}exports[_0x55bc('0x6')]=function(_0x188eb6){for(var _0x5d5f1d=0x0,_0x4d78d6=events[_0x55bc('0x7')];_0x5d5f1d<_0x4d78d6;_0x5d5f1d++){var _0x2a612b=events[_0x5d5f1d];var _0x38839e=createListener('voicePrefix:'+_0x2a612b,_0x188eb6);VoicePrefixEvents['on'](_0x2a612b,_0x38839e);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0b3e=['/:id/users','getAgents','/:id/members','getMembers','/:id/lists','getLists','/:id/blacklists','getBlackLists','post','create','/:id/clone','addLists','addBlackLists','update','destroy','delete','removeAgents','removeLists','removeBlackLists','exports','multer','path','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./voiceQueue.controller','get','isAuthenticated','/:id','/:id/hoppers','getHoppers','/:id/hopper_finals','getHopperFinals','/:id/hopper_black','getHopperBlacks','/:id/teams','getTeams'];(function(_0x5ab05b,_0x59ba0f){var _0x47b4ac=function(_0x100950){while(--_0x100950){_0x5ab05b['push'](_0x5ab05b['shift']());}};_0x47b4ac(++_0x59ba0f);}(_0x0b3e,0x14c));var _0xe0b3=function(_0x2c7cee,_0x4d727a){_0x2c7cee=_0x2c7cee-0x0;var _0x4dad5a=_0x0b3e[_0x2c7cee];return _0x4dad5a;};'use strict';var multer=require(_0xe0b3('0x0'));var util=require('util');var path=require(_0xe0b3('0x1'));var timeout=require('connect-timeout');var express=require(_0xe0b3('0x2'));var router=express[_0xe0b3('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0xe0b3('0x4'));var interaction=require(_0xe0b3('0x5'));var config=require(_0xe0b3('0x6'));var controller=require(_0xe0b3('0x7'));router[_0xe0b3('0x8')]('/',auth[_0xe0b3('0x9')](),controller['index']);router[_0xe0b3('0x8')](_0xe0b3('0xa'),auth['isAuthenticated'](),controller['show']);router[_0xe0b3('0x8')](_0xe0b3('0xb'),auth[_0xe0b3('0x9')](),controller[_0xe0b3('0xc')]);router['get']('/:id/hopper_histories',auth[_0xe0b3('0x9')](),controller['getHopperHistories']);router['get'](_0xe0b3('0xd'),auth[_0xe0b3('0x9')](),controller[_0xe0b3('0xe')]);router[_0xe0b3('0x8')](_0xe0b3('0xf'),auth[_0xe0b3('0x9')](),controller[_0xe0b3('0x10')]);router[_0xe0b3('0x8')](_0xe0b3('0x11'),auth[_0xe0b3('0x9')](),controller[_0xe0b3('0x12')]);router['get'](_0xe0b3('0x13'),auth['isAuthenticated'](),controller[_0xe0b3('0x14')]);router[_0xe0b3('0x8')](_0xe0b3('0x15'),auth[_0xe0b3('0x9')](),controller[_0xe0b3('0x16')]);router[_0xe0b3('0x8')](_0xe0b3('0x17'),auth[_0xe0b3('0x9')](),controller[_0xe0b3('0x18')]);router[_0xe0b3('0x8')](_0xe0b3('0x19'),auth[_0xe0b3('0x9')](),controller[_0xe0b3('0x1a')]);router[_0xe0b3('0x1b')]('/',auth[_0xe0b3('0x9')](),controller[_0xe0b3('0x1c')]);router[_0xe0b3('0x1b')](_0xe0b3('0x1d'),auth[_0xe0b3('0x9')](),controller['clone']);router[_0xe0b3('0x1b')](_0xe0b3('0x11'),auth[_0xe0b3('0x9')](),controller['addTeams']);router[_0xe0b3('0x1b')]('/:id/users',auth[_0xe0b3('0x9')](),controller['addAgents']);router['post'](_0xe0b3('0x17'),auth['isAuthenticated'](),controller[_0xe0b3('0x1e')]);router[_0xe0b3('0x1b')](_0xe0b3('0x19'),auth[_0xe0b3('0x9')](),controller[_0xe0b3('0x1f')]);router['put'](_0xe0b3('0xa'),auth[_0xe0b3('0x9')](),controller[_0xe0b3('0x20')]);router['delete'](_0xe0b3('0xa'),auth[_0xe0b3('0x9')](),controller[_0xe0b3('0x21')]);router[_0xe0b3('0x22')](_0xe0b3('0x11'),auth[_0xe0b3('0x9')](),controller['removeTeams']);router[_0xe0b3('0x22')]('/:id/users',auth[_0xe0b3('0x9')](),controller[_0xe0b3('0x23')]);router['delete'](_0xe0b3('0x17'),auth[_0xe0b3('0x9')](),controller[_0xe0b3('0x24')]);router[_0xe0b3('0x22')]('/:id/blacklists',auth[_0xe0b3('0x9')](),controller[_0xe0b3('0x25')]);module[_0xe0b3('0x26')]=router;
\ No newline at end of file
+var _0xb9da=['/:id/clone','clone','addTeams','addLists','addBlackLists','put','delete','destroy','removeTeams','removeAgents','removeBlackLists','exports','multer','util','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','/:id','show','/:id/hoppers','getHoppers','/:id/hopper_histories','getHopperHistories','/:id/hopper_finals','getHopperFinals','/:id/hopper_black','getHopperBlacks','/:id/teams','getTeams','/:id/users','getAgents','/:id/members','/:id/lists','getLists','/:id/blacklists','getBlackLists','post','create'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xb9da,0x93));var _0xab9d=function(_0x23ca3a,_0xe44c43){_0x23ca3a=_0x23ca3a-0x0;var _0x5c1aab=_0xb9da[_0x23ca3a];return _0x5c1aab;};'use strict';var multer=require(_0xab9d('0x0'));var util=require(_0xab9d('0x1'));var path=require('path');var timeout=require(_0xab9d('0x2'));var express=require(_0xab9d('0x3'));var router=express[_0xab9d('0x4')]();var fs_extra=require(_0xab9d('0x5'));var auth=require(_0xab9d('0x6'));var interaction=require(_0xab9d('0x7'));var config=require(_0xab9d('0x8'));var controller=require('./voiceQueue.controller');router[_0xab9d('0x9')]('/',auth[_0xab9d('0xa')](),controller[_0xab9d('0xb')]);router['get'](_0xab9d('0xc'),auth['isAuthenticated'](),controller[_0xab9d('0xd')]);router[_0xab9d('0x9')](_0xab9d('0xe'),auth[_0xab9d('0xa')](),controller[_0xab9d('0xf')]);router[_0xab9d('0x9')](_0xab9d('0x10'),auth['isAuthenticated'](),controller[_0xab9d('0x11')]);router['get'](_0xab9d('0x12'),auth[_0xab9d('0xa')](),controller[_0xab9d('0x13')]);router['get'](_0xab9d('0x14'),auth[_0xab9d('0xa')](),controller[_0xab9d('0x15')]);router[_0xab9d('0x9')](_0xab9d('0x16'),auth['isAuthenticated'](),controller[_0xab9d('0x17')]);router[_0xab9d('0x9')](_0xab9d('0x18'),auth['isAuthenticated'](),controller[_0xab9d('0x19')]);router[_0xab9d('0x9')](_0xab9d('0x1a'),auth[_0xab9d('0xa')](),controller['getMembers']);router[_0xab9d('0x9')](_0xab9d('0x1b'),auth[_0xab9d('0xa')](),controller[_0xab9d('0x1c')]);router[_0xab9d('0x9')](_0xab9d('0x1d'),auth[_0xab9d('0xa')](),controller[_0xab9d('0x1e')]);router[_0xab9d('0x1f')]('/',auth[_0xab9d('0xa')](),controller[_0xab9d('0x20')]);router['post'](_0xab9d('0x21'),auth[_0xab9d('0xa')](),controller[_0xab9d('0x22')]);router[_0xab9d('0x1f')](_0xab9d('0x16'),auth['isAuthenticated'](),controller[_0xab9d('0x23')]);router[_0xab9d('0x1f')](_0xab9d('0x18'),auth[_0xab9d('0xa')](),controller['addAgents']);router[_0xab9d('0x1f')](_0xab9d('0x1b'),auth[_0xab9d('0xa')](),controller[_0xab9d('0x24')]);router[_0xab9d('0x1f')](_0xab9d('0x1d'),auth['isAuthenticated'](),controller[_0xab9d('0x25')]);router[_0xab9d('0x26')](_0xab9d('0xc'),auth[_0xab9d('0xa')](),controller['update']);router[_0xab9d('0x27')](_0xab9d('0xc'),auth['isAuthenticated'](),controller[_0xab9d('0x28')]);router[_0xab9d('0x27')](_0xab9d('0x16'),auth[_0xab9d('0xa')](),controller[_0xab9d('0x29')]);router[_0xab9d('0x27')]('/:id/users',auth[_0xab9d('0xa')](),controller[_0xab9d('0x2a')]);router[_0xab9d('0x27')](_0xab9d('0x1b'),auth[_0xab9d('0xa')](),controller['removeLists']);router[_0xab9d('0x27')](_0xab9d('0x1d'),auth[_0xab9d('0xa')](),controller[_0xab9d('0x2b')]);module[_0xab9d('0x2c')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6dc0=['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)','#Abandoned\x20Retry\x20(min:1,\x20max:999)','Abandoned\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#AgentReject\x20Retry\x20(min:1,\x20max:999)','Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','mandatoryDispositionPauseId','mandatoryDisposition','sequelize','STRING','name','ENUM','inbound','outbound','default','ringall','leastrecent','random','linear','wrandom','rrordered','strategy','getDataValue','dialMethod','booked','rrmemory','progressive','predictive','power','INTEGER','yes','all','once','TEXT','setDataValue','periodic_announce','join','split','joinempty','leavewhenempty','acw','wrapuptime','BOOLEAN','Active/Disactive\x20Campaign','preview','UNSIGNED','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','Predictive\x20Optimization\x20Percentage\x20(min:\x201,\x20max:\x2095)','Interval\x20Predictive\x20Minutes\x20(min:5\x20max:30)','Originate\x20Timeout\x20Seconds\x20(min:1,\x20max:999)','tTxX','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\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','NoAnswer\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#Global\x20Max\x20Retry\x20(min:1,\x20max:999)','07:00-22:00,*,*,*','always','never','onlyIfOpen','#AMD\x20Initial\x20Silence','#AMD\x20After\x20Greeting\x20Silence','#AMD\x20Min\x20Word\x20Length','#AMD\x20Maximum\x20Number\x20Of\x20Words','#AMD\x20Maximum\x20Word\x20Length','Active/Disactive\x20Recall\x20In\x20Queue','DESC','ASC','Random\x20Last\x20Digit\x20(min:1,\x20max:15)'];(function(_0x3826ad,_0x49a30d){var _0x17b900=function(_0x38474f){while(--_0x38474f){_0x3826ad['push'](_0x3826ad['shift']());}};_0x17b900(++_0x49a30d);}(_0x6dc0,0x18c));var _0x06dc=function(_0x4445e3,_0x4aba46){_0x4445e3=_0x4445e3-0x0;var _0x3a4867=_0x6dc0[_0x4445e3];return _0x3a4867;};'use strict';var Sequelize=require(_0x06dc('0x0'));module['exports']={'name':{'type':Sequelize[_0x06dc('0x1')],'allowNull':![],'unique':_0x06dc('0x2'),'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'type':{'type':Sequelize[_0x06dc('0x3')](_0x06dc('0x4'),_0x06dc('0x5')),'allowNull':![],'defaultValue':'inbound'},'musiconhold':{'type':Sequelize['STRING'],'defaultValue':_0x06dc('0x6')},'announce':{'type':Sequelize[_0x06dc('0x1')],'defaultValue':''},'strategy':{'type':Sequelize['ENUM']('rr',_0x06dc('0x7'),_0x06dc('0x8'),'fewestcalls',_0x06dc('0x9'),'rrmemory',_0x06dc('0xa'),_0x06dc('0xb'),_0x06dc('0xc')),'allowNull':![],'defaultValue':_0x06dc('0x7'),'set':function(_0x4539c2){this['setDataValue'](_0x06dc('0xd'),_0x4539c2?_0x4539c2:'rrmemory');},'get':function(){var _0xf637f6=this[_0x06dc('0xe')]('type');var _0xbf446f=this[_0x06dc('0xe')](_0x06dc('0xf'));var _0x1ebe6c=this['getDataValue'](_0x06dc('0xd'));if(_0xf637f6===_0x06dc('0x4')){return _0x1ebe6c;}if(_0xbf446f===_0x06dc('0x10')&&_0x1ebe6c===_0x06dc('0x11')||_0xbf446f===_0x06dc('0x10')&&_0x1ebe6c==='roundrobin'){return _0x1ebe6c;}if(_0xbf446f===_0x06dc('0x12')||_0xbf446f===_0x06dc('0x13')||_0xbf446f===_0x06dc('0x14')){return _0x1ebe6c;}return null;}},'servicelevel':{'type':Sequelize[_0x06dc('0x15')](0xb),'defaultValue':0x0},'context':{'type':Sequelize[_0x06dc('0x1')],'defaultValue':null},'penaltymemberslimit':{'type':Sequelize[_0x06dc('0x15')](0xb)},'timeout':{'type':Sequelize[_0x06dc('0x15')](0xb),'defaultValue':0xf},'retry':{'type':Sequelize['INTEGER'](0xb),'defaultValue':0x2},'timeoutpriority':{'type':Sequelize[_0x06dc('0x1')]},'weight':{'type':Sequelize[_0x06dc('0x15')](0xb),'allowNull':!![],'defaultValue':0x0},'wrapuptime':{'type':Sequelize[_0x06dc('0x15')](0xb),'defaultValue':0x0},'autofill':{'type':Sequelize['ENUM'](_0x06dc('0x16'),'no'),'defaultValue':_0x06dc('0x16')},'autopause':{'type':Sequelize[_0x06dc('0x3')](_0x06dc('0x16'),'no',_0x06dc('0x17')),'defaultValue':'no'},'autopausedelay':{'type':Sequelize[_0x06dc('0x15')](0xb)},'autopausebusy':{'type':Sequelize[_0x06dc('0x3')](_0x06dc('0x16'),'no'),'defaultValue':'no'},'autopauseunavail':{'type':Sequelize['ENUM'](_0x06dc('0x16'),'no'),'defaultValue':'no'},'maxlen':{'type':Sequelize['INTEGER'](0xb),'defaultValue':0x0},'setinterfacevar':{'type':Sequelize[_0x06dc('0x3')]('yes','no'),'defaultValue':'no'},'setqueueentryvar':{'type':Sequelize[_0x06dc('0x3')](_0x06dc('0x16'),'no'),'defautValue':'no'},'setqueuevar':{'type':Sequelize[_0x06dc('0x3')](_0x06dc('0x16'),'no'),'defaultValue':'no'},'eventmemberstatus':{'type':Sequelize[_0x06dc('0x3')]('yes','no'),'defaultValue':'no'},'membermacro':{'type':Sequelize['STRING'],'allowNull':!![]},'membergosub':{'type':Sequelize['STRING'],'allowNull':!![]},'announce_frequency':{'type':Sequelize['INTEGER'](0xb),'defaultValue':0x0},'min_announce_frequency':{'type':Sequelize['INTEGER'](0xb),'defaultValue':0x0},'periodic_announce_frequency':{'type':Sequelize[_0x06dc('0x15')](0xb),'defaultValue':0x0},'random_periodic_announce':{'type':Sequelize[_0x06dc('0x3')]('yes','no'),'defaultValue':'no'},'relative_periodic_announce':{'type':Sequelize[_0x06dc('0x3')](_0x06dc('0x16'),'no'),'defaultValue':_0x06dc('0x16')},'announce_holdtime':{'type':Sequelize[_0x06dc('0x3')]('yes','no',_0x06dc('0x18')),'defaultValue':'no'},'announce_position':{'type':Sequelize[_0x06dc('0x1')],'defaultValue':'no'},'announce_to_first_user':{'type':Sequelize[_0x06dc('0x3')](_0x06dc('0x16'),'no')},'announce_position_limit':{'type':Sequelize[_0x06dc('0x15')](0xb)},'announce_round_seconds':{'type':Sequelize['ENUM']('0','5','10','15','20','30'),'defaultValue':'0'},'monitor_format':{'type':Sequelize['STRING'],'defaultValue':''},'monitor_type':{'type':Sequelize[_0x06dc('0x1')]},'queue_youarenext':{'type':Sequelize[_0x06dc('0x1')],'defaultValue':null},'queue_thereare':{'type':Sequelize[_0x06dc('0x1')],'defaultValue':null},'queue_callswaiting':{'type':Sequelize[_0x06dc('0x1')],'defaultValue':null},'queue_holdtime':{'type':Sequelize['STRING'],'defaultValue':null},'queue_minute':{'type':Sequelize[_0x06dc('0x1')],'allowNull':!![],'defaultValue':null},'queue_minutes':{'type':Sequelize[_0x06dc('0x1')],'defaultValue':null},'queue_seconds':{'type':Sequelize['STRING'],'defaultValue':null},'queue_thankyou':{'type':Sequelize['STRING'],'defaultValue':null},'queue_reporthold':{'type':Sequelize[_0x06dc('0x1')]},'queue_quantity1':{'type':Sequelize[_0x06dc('0x1')]},'queue_quantity2':{'type':Sequelize['STRING']},'queue_periodic_announce':{'type':Sequelize[_0x06dc('0x1')]},'queue_less_than':{'type':Sequelize['STRING']},'periodic_announce':{'type':Sequelize[_0x06dc('0x19')],'set':function(_0x40655f){this[_0x06dc('0x1a')](_0x06dc('0x1b'),_0x40655f?_0x40655f[_0x06dc('0x1c')](','):[]);},'get':function(){return this[_0x06dc('0xe')](_0x06dc('0x1b'))?this[_0x06dc('0xe')]('periodic_announce')[_0x06dc('0x1d')](','):[];}},'joinempty':{'type':Sequelize[_0x06dc('0x1')],'defaultValue':_0x06dc('0x16'),'set':function(_0x2b2af1){this[_0x06dc('0x1a')](_0x06dc('0x1e'),_0x2b2af1?_0x2b2af1[_0x06dc('0x1c')](','):undefined);},'get':function(){return this[_0x06dc('0xe')]('joinempty')?this['getDataValue']('joinempty')[_0x06dc('0x1d')](','):undefined;}},'leavewhenempty':{'type':Sequelize[_0x06dc('0x1')],'defaultValue':'no','set':function(_0x4d9d5f){this[_0x06dc('0x1a')](_0x06dc('0x1f'),_0x4d9d5f?_0x4d9d5f[_0x06dc('0x1c')](','):undefined);},'get':function(){return this[_0x06dc('0xe')](_0x06dc('0x1f'))?this[_0x06dc('0xe')]('leavewhenempty')[_0x06dc('0x1d')](','):undefined;}},'reportholdtime':{'type':Sequelize['ENUM'](_0x06dc('0x16'),'no'),'defaultValue':'no'},'ringinuse':{'type':Sequelize['ENUM']('yes','no'),'defaultValue':'no'},'memberdelay':{'type':Sequelize['INTEGER'](0xb),'defaultValue':0x0},'timeoutrestart':{'type':Sequelize[_0x06dc('0x3')](_0x06dc('0x16'),'no'),'defaultValue':'no'},'defaultrule':{'type':Sequelize[_0x06dc('0x1')]},'description':{'type':Sequelize[_0x06dc('0x1')]},'acw':{'type':Sequelize['BOOLEAN'],'defaultValue':0x0,'set':function(_0x51d2e5){this[_0x06dc('0x1a')](_0x06dc('0x20'),_0x51d2e5);if(_0x51d2e5){if(this['getDataValue'](_0x06dc('0x21'))<0x2){this[_0x06dc('0x1a')](_0x06dc('0x21'),0x2);}}}},'acwTimeout':{'type':Sequelize['INTEGER'](0xb),'defaultValue':0xa},'dialActive':{'type':Sequelize[_0x06dc('0x22')],'defaultValue':0x0,'comment':_0x06dc('0x23')},'dialMethod':{'type':Sequelize['ENUM'](_0x06dc('0x24'),'progressive','power',_0x06dc('0x13'),_0x06dc('0x10')),'defaultValue':'progressive','comment':'Dial\x20Method.'},'dialLimitChannel':{'type':Sequelize[_0x06dc('0x15')](0x4)[_0x06dc('0x25')],'defaultValue':0x0,'validate':{'min':0x0,'max':0x270f},'comment':'Max\x209999\x20channels,\x200\x20means\x20unlimited.'},'dialLimitQueue':{'type':Sequelize[_0x06dc('0x15')](0x4)[_0x06dc('0x25')],'defaultValue':0x0,'validate':{'min':0x0,'max':0x270f},'comment':_0x06dc('0x26')},'dialPowerLevel':{'type':Sequelize[_0x06dc('0x27')](0x2)[_0x06dc('0x25')],'defaultValue':0x1,'validate':{'min':0x1,'max':0xa},'comment':_0x06dc('0x28')},'dialPredictiveOptimization':{'type':Sequelize[_0x06dc('0x3')](_0x06dc('0x29'),'dropRate'),'defaultValue':_0x06dc('0x2a'),'comment':'Only\x20for\x20predictive\x20method.'},'dialPredictiveOptimizationPercentage':{'type':Sequelize['FLOAT'](0x2)[_0x06dc('0x25')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x5f},'comment':_0x06dc('0x2b')},'dialPredictiveInterval':{'type':Sequelize[_0x06dc('0x15')](0x3)[_0x06dc('0x25')],'defaultValue':0xa,'validate':{'min':0x5,'max':0x1e},'comment':_0x06dc('0x2c')},'dialOriginateCallerIdName':{'type':Sequelize[_0x06dc('0x1')]},'dialOriginateCallerIdNumber':{'type':Sequelize[_0x06dc('0x1')]},'dialOriginateTimeout':{'type':Sequelize[_0x06dc('0x15')](0x3)['UNSIGNED'],'defaultValue':0x1e,'validate':{'min':0x1,'max':0x3e7},'comment':_0x06dc('0x2d')},'dialQueueOptions':{'type':Sequelize[_0x06dc('0x1')],'defaultValue':_0x06dc('0x2e'),'comment':'https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Application_Queue'},'dialQueueTimeout':{'type':Sequelize[_0x06dc('0x15')](0x3)[_0x06dc('0x25')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':'Queue\x20Timeout\x20Seconds\x20(min:1,\x20max:999)'},'dialQueueProject':{'type':Sequelize[_0x06dc('0x1')],'comment':_0x06dc('0x2f')},'dialCongestionMaxRetry':{'type':Sequelize[_0x06dc('0x15')](0x3)[_0x06dc('0x25')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x06dc('0x30')},'dialCongestionRetryFrequency':{'type':Sequelize[_0x06dc('0x15')](0x5)[_0x06dc('0x25')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x06dc('0x31')},'dialBusyMaxRetry':{'type':Sequelize[_0x06dc('0x15')](0x3)[_0x06dc('0x25')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':'#Busy\x20Retry\x20(min:1,\x20max:999)'},'dialBusyRetryFrequency':{'type':Sequelize[_0x06dc('0x15')](0x5)[_0x06dc('0x25')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x06dc('0x32')},'dialNoAnswerMaxRetry':{'type':Sequelize[_0x06dc('0x15')](0x3)[_0x06dc('0x25')],'defaultValue':0x3,'comment':'#NoAnswer\x20Retry\x20(min:1,\x20max:999)'},'dialNoAnswerRetryFrequency':{'type':Sequelize[_0x06dc('0x15')](0x5)[_0x06dc('0x25')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x06dc('0x33')},'dialGlobalMaxRetry':{'type':Sequelize[_0x06dc('0x15')](0x3)['UNSIGNED'],'validate':{'min':0x1,'max':0x3e7},'defaultValue':0x4,'comment':_0x06dc('0x34')},'dialTimezone':{'type':Sequelize[_0x06dc('0x1')],'defaultValue':null},'dialGlobalInterval':{'type':Sequelize[_0x06dc('0x1')],'defaultValue':_0x06dc('0x35')},'dialPrefix':{'type':Sequelize[_0x06dc('0x1')],'defaultValue':null},'dialCheckDuplicateType':{'type':Sequelize[_0x06dc('0x3')](_0x06dc('0x36'),_0x06dc('0x37'),_0x06dc('0x38')),'defaultValue':'always'},'dialAMDActive':{'type':Sequelize['BOOLEAN'],'defaultValue':0x0,'comment':'Active/Disactive\x20AMD'},'dialAMDInitialSilence':{'type':Sequelize[_0x06dc('0x15')](0x9)[_0x06dc('0x25')],'defaultValue':0x9c4,'validate':{'min':0x0},'comment':_0x06dc('0x39')},'dialAMDGreeting':{'type':Sequelize['INTEGER'](0x9)[_0x06dc('0x25')],'defaultValue':0x5dc,'validate':{'min':0x0},'comment':'#AMD\x20Greeting'},'dialAMDAfterGreetingSilence':{'type':Sequelize[_0x06dc('0x15')](0x9)[_0x06dc('0x25')],'defaultValue':0x320,'validate':{'min':0x0},'comment':_0x06dc('0x3a')},'dialAMDTotalAnalysisTime':{'type':Sequelize['INTEGER'](0x9)['UNSIGNED'],'defaultValue':0x1388,'validate':{'min':0x0},'comment':'#AMD\x20Total\x20Analysis\x20Time'},'dialAMDMinWordLength':{'type':Sequelize[_0x06dc('0x15')](0x9)[_0x06dc('0x25')],'defaultValue':0x64,'validate':{'min':0x0},'comment':_0x06dc('0x3b')},'dialAMDBetweenWordsSilence':{'type':Sequelize['INTEGER'](0x9)[_0x06dc('0x25')],'defaultValue':0x32,'validate':{'min':0x0},'comment':'#AMD\x20Between\x20Words\x20Silence'},'dialAMDMaximumNumberOfWords':{'type':Sequelize[_0x06dc('0x15')](0x9)[_0x06dc('0x25')],'defaultValue':0x3,'validate':{'min':0x0},'comment':_0x06dc('0x3c')},'dialAMDSilenceThreshold':{'type':Sequelize[_0x06dc('0x15')](0x5)[_0x06dc('0x25')],'validate':{'min':0x0,'max':0x7fff},'defaultValue':0x100,'comment':'#AMD\x20Silence\x20Threshold\x20(min:0,\x20max:32767)'},'dialAMDMaximumWordLength':{'type':Sequelize['INTEGER'](0x9)[_0x06dc('0x25')],'defaultValue':0x1388,'validate':{'min':0x0},'comment':_0x06dc('0x3d')},'dialRecallMeTimeout':{'type':Sequelize[_0x06dc('0x15')](0x5)['UNSIGNED'],'validate':{'min':0x1},'defaultValue':0x1e,'comment':'#RecallMe\x20Timeout\x20(min:1)'},'dialRecallInQueue':{'type':Sequelize[_0x06dc('0x22')],'defaultValue':0x0,'comment':_0x06dc('0x3e')},'dialOrderByScheduledAt':{'type':Sequelize[_0x06dc('0x3')](_0x06dc('0x3f'),_0x06dc('0x40')),'defaultValue':_0x06dc('0x3f')},'dialQueueProject2':{'type':Sequelize['STRING'],'comment':'AGI\x20queue\x20option\x20(use:\x20agi://127.0.0.1/square,<project_name>)'},'dialAgiAfterHangupClient':{'type':Sequelize[_0x06dc('0x22')],'defaultValue':![]},'dialAgiAfterHangupAgent':{'type':Sequelize[_0x06dc('0x22')],'defaultValue':![]},'dialRandomLastDigitCallerIdNumber':{'type':Sequelize[_0x06dc('0x15')](0x3)[_0x06dc('0x25')],'validate':{'min':0x0,'max':0xf},'defaultValue':0x0,'comment':_0x06dc('0x41')},'dialCutDigit':{'type':Sequelize[_0x06dc('0x15')](0x3)[_0x06dc('0x25')],'validate':{'min':0x0,'max':0xf},'defaultValue':0x0,'comment':_0x06dc('0x42')},'dialNoSuchNumberMaxRetry':{'type':Sequelize[_0x06dc('0x15')](0x3)['UNSIGNED'],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x06dc('0x43')},'dialNoSuchNumberRetryFrequency':{'type':Sequelize['INTEGER'](0x5)[_0x06dc('0x25')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x06dc('0x44')},'dialDropMaxRetry':{'type':Sequelize['INTEGER'](0x3)[_0x06dc('0x25')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x06dc('0x45')},'dialDropRetryFrequency':{'type':Sequelize[_0x06dc('0x15')](0x5)[_0x06dc('0x25')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x06dc('0x46')},'dialAbandonedMaxRetry':{'type':Sequelize[_0x06dc('0x15')](0x3)['UNSIGNED'],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x06dc('0x47')},'dialAbandonedRetryFrequency':{'type':Sequelize['INTEGER'](0x5)['UNSIGNED'],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x06dc('0x48')},'dialMachineMaxRetry':{'type':Sequelize[_0x06dc('0x15')](0x3)[_0x06dc('0x25')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':'#Machine\x20Retry\x20(min:1,\x20max:999)'},'dialMachineRetryFrequency':{'type':Sequelize[_0x06dc('0x15')](0x5)['UNSIGNED'],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':'Machine\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)'},'dialAgentRejectMaxRetry':{'type':Sequelize['INTEGER'](0x3)[_0x06dc('0x25')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x06dc('0x49')},'dialAgentRejectRetryFrequency':{'type':Sequelize[_0x06dc('0x15')](0x5)[_0x06dc('0x25')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':'AgentReject\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)'},'mandatoryDispositionPauseId':{'type':Sequelize[_0x06dc('0x15')],'allowNull':!![],'comment':'Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled'},'mandatoryDisposition':{'type':Sequelize[_0x06dc('0x22')],'defaultValue':![],'comment':_0x06dc('0x4a'),'set':function(_0x47898f){if(!_0x47898f)this[_0x06dc('0x1a')](_0x06dc('0x4b'),null);this[_0x06dc('0x1a')](_0x06dc('0x4c'),_0x47898f);}},'dialPredictiveIntervalMaxThreshold':{'type':Sequelize[_0x06dc('0x15')](0x3)[_0x06dc('0x25')],'defaultValue':0x14,'validate':{'min':0x1,'max':0x64}},'dialPredictiveIntervalMinThreshold':{'type':Sequelize[_0x06dc('0x15')](0x3)[_0x06dc('0x25')],'defaultValue':0xa,'validate':{'min':0x1,'max':0x64}}};
\ No newline at end of file
+var _0xc57c=['Random\x20Last\x20Digit\x20(min:1,\x20max:15)','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\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#Abandoned\x20Retry\x20(min:1,\x20max:999)','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)','AgentReject\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled','Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','mandatoryDisposition','sequelize','ENUM','inbound','default','STRING','ringall','leastrecent','fewestcalls','random','linear','wrandom','rrordered','setDataValue','strategy','type','getDataValue','dialMethod','booked','rrmemory','roundrobin','progressive','INTEGER','yes','periodic_announce','join','split','joinempty','leavewhenempty','acw','wrapuptime','BOOLEAN','Active/Disactive\x20Campaign','preview','predictive','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.','Predictive\x20Optimization\x20Percentage\x20(min:\x201,\x20max:\x2095)','Interval\x20Predictive\x20Minutes\x20(min:5\x20max:30)','Originate\x20Timeout\x20Seconds\x20(min:1,\x20max:999)','tTxX','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)','Busy\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#Global\x20Max\x20Retry\x20(min:1,\x20max:999)','07:00-22:00,*,*,*','never','onlyIfOpen','always','Active/Disactive\x20AMD','#AMD\x20Initial\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','ASC'];(function(_0x5b644e,_0x2e5e07){var _0x49c6bf=function(_0x3032d9){while(--_0x3032d9){_0x5b644e['push'](_0x5b644e['shift']());}};_0x49c6bf(++_0x2e5e07);}(_0xc57c,0x149));var _0xcc57=function(_0xba552d,_0x30639b){_0xba552d=_0xba552d-0x0;var _0x1a1ce9=_0xc57c[_0xba552d];return _0x1a1ce9;};'use strict';var Sequelize=require(_0xcc57('0x0'));module['exports']={'name':{'type':Sequelize['STRING'],'allowNull':![],'unique':'name','validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'type':{'type':Sequelize[_0xcc57('0x1')]('inbound','outbound'),'allowNull':![],'defaultValue':_0xcc57('0x2')},'musiconhold':{'type':Sequelize['STRING'],'defaultValue':_0xcc57('0x3')},'announce':{'type':Sequelize[_0xcc57('0x4')],'defaultValue':''},'strategy':{'type':Sequelize[_0xcc57('0x1')]('rr',_0xcc57('0x5'),_0xcc57('0x6'),_0xcc57('0x7'),_0xcc57('0x8'),'rrmemory',_0xcc57('0x9'),_0xcc57('0xa'),_0xcc57('0xb')),'allowNull':![],'defaultValue':_0xcc57('0x5'),'set':function(_0x29c1b2){this[_0xcc57('0xc')](_0xcc57('0xd'),_0x29c1b2?_0x29c1b2:'rrmemory');},'get':function(){var _0x4c7e7c=this['getDataValue'](_0xcc57('0xe'));var _0x13a3bb=this[_0xcc57('0xf')](_0xcc57('0x10'));var _0x36f434=this[_0xcc57('0xf')](_0xcc57('0xd'));if(_0x4c7e7c===_0xcc57('0x2')){return _0x36f434;}if(_0x13a3bb===_0xcc57('0x11')&&_0x36f434===_0xcc57('0x12')||_0x13a3bb===_0xcc57('0x11')&&_0x36f434===_0xcc57('0x13')){return _0x36f434;}if(_0x13a3bb===_0xcc57('0x14')||_0x13a3bb==='predictive'||_0x13a3bb==='power'){return _0x36f434;}return null;}},'servicelevel':{'type':Sequelize['INTEGER'](0xb),'defaultValue':0x0},'context':{'type':Sequelize[_0xcc57('0x4')],'defaultValue':null},'penaltymemberslimit':{'type':Sequelize[_0xcc57('0x15')](0xb)},'timeout':{'type':Sequelize[_0xcc57('0x15')](0xb),'defaultValue':0xf},'retry':{'type':Sequelize[_0xcc57('0x15')](0xb),'defaultValue':0x2},'timeoutpriority':{'type':Sequelize[_0xcc57('0x4')]},'weight':{'type':Sequelize['INTEGER'](0xb),'allowNull':!![],'defaultValue':0x0},'wrapuptime':{'type':Sequelize[_0xcc57('0x15')](0xb),'defaultValue':0x0},'autofill':{'type':Sequelize[_0xcc57('0x1')]('yes','no'),'defaultValue':_0xcc57('0x16')},'autopause':{'type':Sequelize['ENUM'](_0xcc57('0x16'),'no','all'),'defaultValue':'no'},'autopausedelay':{'type':Sequelize[_0xcc57('0x15')](0xb)},'autopausebusy':{'type':Sequelize[_0xcc57('0x1')](_0xcc57('0x16'),'no'),'defaultValue':'no'},'autopauseunavail':{'type':Sequelize['ENUM'](_0xcc57('0x16'),'no'),'defaultValue':'no'},'maxlen':{'type':Sequelize['INTEGER'](0xb),'defaultValue':0x0},'setinterfacevar':{'type':Sequelize[_0xcc57('0x1')](_0xcc57('0x16'),'no'),'defaultValue':'no'},'setqueueentryvar':{'type':Sequelize[_0xcc57('0x1')](_0xcc57('0x16'),'no'),'defautValue':'no'},'setqueuevar':{'type':Sequelize[_0xcc57('0x1')](_0xcc57('0x16'),'no'),'defaultValue':'no'},'eventmemberstatus':{'type':Sequelize[_0xcc57('0x1')](_0xcc57('0x16'),'no'),'defaultValue':'no'},'membermacro':{'type':Sequelize[_0xcc57('0x4')],'allowNull':!![]},'membergosub':{'type':Sequelize[_0xcc57('0x4')],'allowNull':!![]},'announce_frequency':{'type':Sequelize[_0xcc57('0x15')](0xb),'defaultValue':0x0},'min_announce_frequency':{'type':Sequelize[_0xcc57('0x15')](0xb),'defaultValue':0x0},'periodic_announce_frequency':{'type':Sequelize[_0xcc57('0x15')](0xb),'defaultValue':0x0},'random_periodic_announce':{'type':Sequelize[_0xcc57('0x1')](_0xcc57('0x16'),'no'),'defaultValue':'no'},'relative_periodic_announce':{'type':Sequelize['ENUM'](_0xcc57('0x16'),'no'),'defaultValue':_0xcc57('0x16')},'announce_holdtime':{'type':Sequelize['ENUM']('yes','no','once'),'defaultValue':'no'},'announce_position':{'type':Sequelize[_0xcc57('0x4')],'defaultValue':'no'},'announce_to_first_user':{'type':Sequelize['ENUM'](_0xcc57('0x16'),'no')},'announce_position_limit':{'type':Sequelize[_0xcc57('0x15')](0xb)},'announce_round_seconds':{'type':Sequelize[_0xcc57('0x1')]('0','5','10','15','20','30'),'defaultValue':'0'},'monitor_format':{'type':Sequelize['STRING'],'defaultValue':''},'monitor_type':{'type':Sequelize[_0xcc57('0x4')]},'queue_youarenext':{'type':Sequelize[_0xcc57('0x4')],'defaultValue':null},'queue_thereare':{'type':Sequelize['STRING'],'defaultValue':null},'queue_callswaiting':{'type':Sequelize[_0xcc57('0x4')],'defaultValue':null},'queue_holdtime':{'type':Sequelize[_0xcc57('0x4')],'defaultValue':null},'queue_minute':{'type':Sequelize[_0xcc57('0x4')],'allowNull':!![],'defaultValue':null},'queue_minutes':{'type':Sequelize[_0xcc57('0x4')],'defaultValue':null},'queue_seconds':{'type':Sequelize['STRING'],'defaultValue':null},'queue_thankyou':{'type':Sequelize[_0xcc57('0x4')],'defaultValue':null},'queue_reporthold':{'type':Sequelize['STRING']},'queue_quantity1':{'type':Sequelize[_0xcc57('0x4')]},'queue_quantity2':{'type':Sequelize[_0xcc57('0x4')]},'queue_periodic_announce':{'type':Sequelize['STRING']},'queue_less_than':{'type':Sequelize[_0xcc57('0x4')]},'periodic_announce':{'type':Sequelize['TEXT'],'set':function(_0xbb060c){this[_0xcc57('0xc')](_0xcc57('0x17'),_0xbb060c?_0xbb060c[_0xcc57('0x18')](','):[]);},'get':function(){return this[_0xcc57('0xf')](_0xcc57('0x17'))?this['getDataValue'](_0xcc57('0x17'))[_0xcc57('0x19')](','):[];}},'joinempty':{'type':Sequelize[_0xcc57('0x4')],'defaultValue':_0xcc57('0x16'),'set':function(_0x5773c4){this[_0xcc57('0xc')](_0xcc57('0x1a'),_0x5773c4?_0x5773c4[_0xcc57('0x18')](','):undefined);},'get':function(){return this[_0xcc57('0xf')](_0xcc57('0x1a'))?this[_0xcc57('0xf')](_0xcc57('0x1a'))[_0xcc57('0x19')](','):undefined;}},'leavewhenempty':{'type':Sequelize[_0xcc57('0x4')],'defaultValue':'no','set':function(_0x58942c){this[_0xcc57('0xc')]('leavewhenempty',_0x58942c?_0x58942c['join'](','):undefined);},'get':function(){return this[_0xcc57('0xf')]('leavewhenempty')?this[_0xcc57('0xf')](_0xcc57('0x1b'))[_0xcc57('0x19')](','):undefined;}},'reportholdtime':{'type':Sequelize[_0xcc57('0x1')](_0xcc57('0x16'),'no'),'defaultValue':'no'},'ringinuse':{'type':Sequelize[_0xcc57('0x1')](_0xcc57('0x16'),'no'),'defaultValue':'no'},'memberdelay':{'type':Sequelize['INTEGER'](0xb),'defaultValue':0x0},'timeoutrestart':{'type':Sequelize[_0xcc57('0x1')](_0xcc57('0x16'),'no'),'defaultValue':'no'},'defaultrule':{'type':Sequelize[_0xcc57('0x4')]},'description':{'type':Sequelize[_0xcc57('0x4')]},'acw':{'type':Sequelize['BOOLEAN'],'defaultValue':0x0,'set':function(_0x4ab9f3){this['setDataValue'](_0xcc57('0x1c'),_0x4ab9f3);if(_0x4ab9f3){if(this[_0xcc57('0xf')](_0xcc57('0x1d'))<0x2){this[_0xcc57('0xc')](_0xcc57('0x1d'),0x2);}}}},'acwTimeout':{'type':Sequelize[_0xcc57('0x15')](0xb),'defaultValue':0xa},'dialActive':{'type':Sequelize[_0xcc57('0x1e')],'defaultValue':0x0,'comment':_0xcc57('0x1f')},'dialMethod':{'type':Sequelize[_0xcc57('0x1')](_0xcc57('0x20'),_0xcc57('0x14'),'power',_0xcc57('0x21'),_0xcc57('0x11')),'defaultValue':_0xcc57('0x14'),'comment':_0xcc57('0x22')},'dialLimitChannel':{'type':Sequelize[_0xcc57('0x15')](0x4)[_0xcc57('0x23')],'defaultValue':0x0,'validate':{'min':0x0,'max':0x270f},'comment':_0xcc57('0x24')},'dialLimitQueue':{'type':Sequelize['INTEGER'](0x4)[_0xcc57('0x23')],'defaultValue':0x0,'validate':{'min':0x0,'max':0x270f},'comment':_0xcc57('0x25')},'dialPowerLevel':{'type':Sequelize[_0xcc57('0x26')](0x2)['UNSIGNED'],'defaultValue':0x1,'validate':{'min':0x1,'max':0xa},'comment':_0xcc57('0x27')},'dialPredictiveOptimization':{'type':Sequelize[_0xcc57('0x1')](_0xcc57('0x28'),'dropRate'),'defaultValue':_0xcc57('0x29'),'comment':_0xcc57('0x2a')},'dialPredictiveOptimizationPercentage':{'type':Sequelize[_0xcc57('0x26')](0x2)[_0xcc57('0x23')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x5f},'comment':_0xcc57('0x2b')},'dialPredictiveInterval':{'type':Sequelize[_0xcc57('0x15')](0x3)[_0xcc57('0x23')],'defaultValue':0xa,'validate':{'min':0x5,'max':0x1e},'comment':_0xcc57('0x2c')},'dialOriginateCallerIdName':{'type':Sequelize[_0xcc57('0x4')]},'dialOriginateCallerIdNumber':{'type':Sequelize[_0xcc57('0x4')]},'dialOriginateTimeout':{'type':Sequelize['INTEGER'](0x3)[_0xcc57('0x23')],'defaultValue':0x1e,'validate':{'min':0x1,'max':0x3e7},'comment':_0xcc57('0x2d')},'dialQueueOptions':{'type':Sequelize[_0xcc57('0x4')],'defaultValue':_0xcc57('0x2e'),'comment':'https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Application_Queue'},'dialQueueTimeout':{'type':Sequelize[_0xcc57('0x15')](0x3)[_0xcc57('0x23')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0xcc57('0x2f')},'dialQueueProject':{'type':Sequelize[_0xcc57('0x4')],'comment':_0xcc57('0x30')},'dialCongestionMaxRetry':{'type':Sequelize[_0xcc57('0x15')](0x3)[_0xcc57('0x23')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0xcc57('0x31')},'dialCongestionRetryFrequency':{'type':Sequelize[_0xcc57('0x15')](0x5)[_0xcc57('0x23')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':'Congestion\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)'},'dialBusyMaxRetry':{'type':Sequelize[_0xcc57('0x15')](0x3)[_0xcc57('0x23')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':'#Busy\x20Retry\x20(min:1,\x20max:999)'},'dialBusyRetryFrequency':{'type':Sequelize['INTEGER'](0x5)[_0xcc57('0x23')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0xcc57('0x32')},'dialNoAnswerMaxRetry':{'type':Sequelize[_0xcc57('0x15')](0x3)[_0xcc57('0x23')],'defaultValue':0x3,'comment':'#NoAnswer\x20Retry\x20(min:1,\x20max:999)'},'dialNoAnswerRetryFrequency':{'type':Sequelize[_0xcc57('0x15')](0x5)[_0xcc57('0x23')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':'NoAnswer\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)'},'dialGlobalMaxRetry':{'type':Sequelize[_0xcc57('0x15')](0x3)[_0xcc57('0x23')],'validate':{'min':0x1,'max':0x3e7},'defaultValue':0x4,'comment':_0xcc57('0x33')},'dialTimezone':{'type':Sequelize[_0xcc57('0x4')],'defaultValue':null},'dialGlobalInterval':{'type':Sequelize['STRING'],'defaultValue':_0xcc57('0x34')},'dialPrefix':{'type':Sequelize['STRING'],'defaultValue':null},'dialCheckDuplicateType':{'type':Sequelize['ENUM']('always',_0xcc57('0x35'),_0xcc57('0x36')),'defaultValue':_0xcc57('0x37')},'dialAMDActive':{'type':Sequelize[_0xcc57('0x1e')],'defaultValue':0x0,'comment':_0xcc57('0x38')},'dialAMDInitialSilence':{'type':Sequelize[_0xcc57('0x15')](0x9)[_0xcc57('0x23')],'defaultValue':0x9c4,'validate':{'min':0x0},'comment':_0xcc57('0x39')},'dialAMDGreeting':{'type':Sequelize['INTEGER'](0x9)[_0xcc57('0x23')],'defaultValue':0x5dc,'validate':{'min':0x0},'comment':'#AMD\x20Greeting'},'dialAMDAfterGreetingSilence':{'type':Sequelize[_0xcc57('0x15')](0x9)[_0xcc57('0x23')],'defaultValue':0x320,'validate':{'min':0x0},'comment':'#AMD\x20After\x20Greeting\x20Silence'},'dialAMDTotalAnalysisTime':{'type':Sequelize[_0xcc57('0x15')](0x9)['UNSIGNED'],'defaultValue':0x1388,'validate':{'min':0x0},'comment':_0xcc57('0x3a')},'dialAMDMinWordLength':{'type':Sequelize[_0xcc57('0x15')](0x9)['UNSIGNED'],'defaultValue':0x64,'validate':{'min':0x0},'comment':_0xcc57('0x3b')},'dialAMDBetweenWordsSilence':{'type':Sequelize[_0xcc57('0x15')](0x9)[_0xcc57('0x23')],'defaultValue':0x32,'validate':{'min':0x0},'comment':_0xcc57('0x3c')},'dialAMDMaximumNumberOfWords':{'type':Sequelize[_0xcc57('0x15')](0x9)[_0xcc57('0x23')],'defaultValue':0x3,'validate':{'min':0x0},'comment':_0xcc57('0x3d')},'dialAMDSilenceThreshold':{'type':Sequelize[_0xcc57('0x15')](0x5)[_0xcc57('0x23')],'validate':{'min':0x0,'max':0x7fff},'defaultValue':0x100,'comment':_0xcc57('0x3e')},'dialAMDMaximumWordLength':{'type':Sequelize['INTEGER'](0x9)[_0xcc57('0x23')],'defaultValue':0x1388,'validate':{'min':0x0},'comment':_0xcc57('0x3f')},'dialRecallMeTimeout':{'type':Sequelize[_0xcc57('0x15')](0x5)[_0xcc57('0x23')],'validate':{'min':0x1},'defaultValue':0x1e,'comment':'#RecallMe\x20Timeout\x20(min:1)'},'dialRecallInQueue':{'type':Sequelize[_0xcc57('0x1e')],'defaultValue':0x0,'comment':'Active/Disactive\x20Recall\x20In\x20Queue'},'dialOrderByScheduledAt':{'type':Sequelize['ENUM'](_0xcc57('0x40'),_0xcc57('0x41')),'defaultValue':'DESC'},'dialQueueProject2':{'type':Sequelize['STRING'],'comment':_0xcc57('0x30')},'dialAgiAfterHangupClient':{'type':Sequelize[_0xcc57('0x1e')],'defaultValue':![]},'dialAgiAfterHangupAgent':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'dialRandomLastDigitCallerIdNumber':{'type':Sequelize[_0xcc57('0x15')](0x3)[_0xcc57('0x23')],'validate':{'min':0x0,'max':0xf},'defaultValue':0x0,'comment':_0xcc57('0x42')},'dialCutDigit':{'type':Sequelize[_0xcc57('0x15')](0x3)['UNSIGNED'],'validate':{'min':0x0,'max':0xf},'defaultValue':0x0,'comment':_0xcc57('0x43')},'dialNoSuchNumberMaxRetry':{'type':Sequelize['INTEGER'](0x3)[_0xcc57('0x23')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0xcc57('0x44')},'dialNoSuchNumberRetryFrequency':{'type':Sequelize[_0xcc57('0x15')](0x5)[_0xcc57('0x23')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0xcc57('0x45')},'dialDropMaxRetry':{'type':Sequelize['INTEGER'](0x3)['UNSIGNED'],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':'#Drop\x20Retry\x20(min:1,\x20max:999)'},'dialDropRetryFrequency':{'type':Sequelize['INTEGER'](0x5)[_0xcc57('0x23')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0xcc57('0x46')},'dialAbandonedMaxRetry':{'type':Sequelize[_0xcc57('0x15')](0x3)[_0xcc57('0x23')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0xcc57('0x47')},'dialAbandonedRetryFrequency':{'type':Sequelize[_0xcc57('0x15')](0x5)[_0xcc57('0x23')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0xcc57('0x48')},'dialMachineMaxRetry':{'type':Sequelize[_0xcc57('0x15')](0x3)[_0xcc57('0x23')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':'#Machine\x20Retry\x20(min:1,\x20max:999)'},'dialMachineRetryFrequency':{'type':Sequelize['INTEGER'](0x5)[_0xcc57('0x23')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0xcc57('0x49')},'dialAgentRejectMaxRetry':{'type':Sequelize[_0xcc57('0x15')](0x3)[_0xcc57('0x23')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0xcc57('0x4a')},'dialAgentRejectRetryFrequency':{'type':Sequelize['INTEGER'](0x5)[_0xcc57('0x23')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0xcc57('0x4b')},'mandatoryDispositionPauseId':{'type':Sequelize[_0xcc57('0x15')],'allowNull':!![],'comment':_0xcc57('0x4c')},'mandatoryDisposition':{'type':Sequelize[_0xcc57('0x1e')],'defaultValue':![],'comment':_0xcc57('0x4d'),'set':function(_0x169b07){if(!_0x169b07)this[_0xcc57('0xc')]('mandatoryDispositionPauseId',null);this['setDataValue'](_0xcc57('0x4e'),_0x169b07);}},'dialPredictiveIntervalMaxThreshold':{'type':Sequelize['INTEGER'](0x3)['UNSIGNED'],'defaultValue':0x14,'validate':{'min':0x1,'max':0x64}},'dialPredictiveIntervalMinThreshold':{'type':Sequelize[_0xcc57('0x15')](0x3)[_0xcc57('0x23')],'defaultValue':0xa,'validate':{'min':0x1,'max':0x64}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcf97=['intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','filter','where','merge','options','VoiceQueue','includeAll','include','rows','catch','show','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','VoiceQueues','QueueCampaigns','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','clone','params','omit','updatedAt','createdAt','role','UserProfileSection','autoAssociation','getHoppers','findOne','CmHopper','pick','VoiceQueueId','getHopperHistories','CmHopperHistory','findAll','CmHopperFinal','getHopperBlacks','CmHopperBlack','getTeams','addTeams','teams','Team','User','online','voicePause','interface','flatMap','Agents','penalty','sequelize','transaction','each','upsert','findOrCreate','format','SIP/%s','forEach','emit','userVoiceQueue:save','ids','select','from','join','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','ut.UserId\x20=\x20?','push','toString','QueryTypes','SELECT','TeamId','union','isEmpty','removeAgents','UserVoiceQueueRt','userVoiceQueue:remove','addAgents','spread','isNil','all','getAgents','getMembers','getLists','addLists','dialCheckDuplicateType','always','insert','into','cm_hopper','phone','ContactId','field','NOW()','scheduledAt','CmListId','ListId','cm_contacts','deletedAt\x20IS\x20NULL','ListId\x20=\x20?','phone\x20IS\x20NOT\x20NULL','phone\x20NOT\x20IN\x20(?)','COALESCE(calleridnum,\x27\x27)','VoiceQueueId\x20=\x20?','onlyIfOpen','fromQuery','COALESCE(phone,\x27\x27)','removeLists','CmList','getBlackLists','addBlackLists','cm_hopper_black','removeBlackLists','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','util','path','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/utils','redis','defaults','localhost','socket.io-emitter','./voiceQueue.socket','json','offset','undefined','limit','count','status','set','Content-Range','save','update','then','destroy','get','inbound','outbound','ignore','value','find','name','UserProfileResource','end','error','stack','send','index','map','rawAttributes','fieldName','type','key','model','query','keys','filters'];(function(_0x5aeff3,_0x390c5f){var _0x19a2d4=function(_0x53d070){while(--_0x53d070){_0x5aeff3['push'](_0x5aeff3['shift']());}};_0x19a2d4(++_0x390c5f);}(_0xcf97,0x77));var _0x7cf9=function(_0x58e469,_0x95ee3e){_0x58e469=_0x58e469-0x0;var _0x4c01c5=_0xcf97[_0x58e469];return _0x4c01c5;};'use strict';var emlformat=require(_0x7cf9('0x0'));var rimraf=require(_0x7cf9('0x1'));var zipdir=require(_0x7cf9('0x2'));var jsonpatch=require(_0x7cf9('0x3'));var rp=require(_0x7cf9('0x4'));var moment=require('moment');var BPromise=require(_0x7cf9('0x5'));var Mustache=require('mustache');var util=require(_0x7cf9('0x6'));var path=require(_0x7cf9('0x7'));var sox=require('sox');var csv=require(_0x7cf9('0x8'));var ejs=require(_0x7cf9('0x9'));var fs=require('fs');var fs_extra=require(_0x7cf9('0xa'));var _=require(_0x7cf9('0xb'));var squel=require(_0x7cf9('0xc'));var crypto=require('crypto');var jsforce=require(_0x7cf9('0xd'));var deskjs=require(_0x7cf9('0xe'));var toCsv=require(_0x7cf9('0x8'));var querystring=require(_0x7cf9('0xf'));var Papa=require(_0x7cf9('0x10'));var Redis=require(_0x7cf9('0x11'));var authService=require(_0x7cf9('0x12'));var qs=require(_0x7cf9('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x7cf9('0x14'))(_0x7cf9('0x15'));var utils=require(_0x7cf9('0x16'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];config[_0x7cf9('0x17')]=_[_0x7cf9('0x18')](config[_0x7cf9('0x17')],{'host':_0x7cf9('0x19'),'port':0x18eb});var socket=require(_0x7cf9('0x1a'))(new Redis(config[_0x7cf9('0x17')]));require(_0x7cf9('0x1b'))['register'](socket);function respondWithStatusCode(_0x15c6a5,_0x36896f){_0x36896f=_0x36896f||0xcc;return function(_0x5b74e4){if(_0x5b74e4){return _0x15c6a5['sendStatus'](_0x36896f);}return _0x15c6a5['status'](_0x36896f)['end']();};}function respondWithResult(_0x41560e,_0x46dff8){_0x46dff8=_0x46dff8||0xc8;return function(_0x1ea4c2){if(_0x1ea4c2){return _0x41560e['status'](_0x46dff8)[_0x7cf9('0x1c')](_0x1ea4c2);}};}function respondWithFilteredResult(_0x2f3f28,_0xefec80){return function(_0x1204e1){if(_0x1204e1){var _0x5ef7bf=typeof _0xefec80[_0x7cf9('0x1d')]===_0x7cf9('0x1e')&&typeof _0xefec80[_0x7cf9('0x1f')]===_0x7cf9('0x1e');var _0x139b47=_0x1204e1['count'];var _0x2e1a7f=_0x5ef7bf?0x0:_0xefec80[_0x7cf9('0x1d')];var _0x2ca487=_0x5ef7bf?_0x1204e1[_0x7cf9('0x20')]:_0xefec80[_0x7cf9('0x1d')]+_0xefec80[_0x7cf9('0x1f')];var _0x5e518e;if(_0x2ca487>=_0x139b47){_0x2ca487=_0x139b47;_0x5e518e=0xc8;}else{_0x5e518e=0xce;}_0x2f3f28[_0x7cf9('0x21')](_0x5e518e);return _0x2f3f28[_0x7cf9('0x22')](_0x7cf9('0x23'),_0x2e1a7f+'-'+_0x2ca487+'/'+_0x139b47)[_0x7cf9('0x1c')](_0x1204e1);}return null;};}function patchUpdates(_0x3b067c){return function(_0x3e5bdf){try{jsonpatch['apply'](_0x3e5bdf,_0x3b067c,!![]);}catch(_0x4f8f9f){return BPromise['reject'](_0x4f8f9f);}return _0x3e5bdf[_0x7cf9('0x24')]();};}function saveUpdates(_0x4e67c1,_0x227bbc){return function(_0x3d30bf){if(_0x3d30bf){return _0x3d30bf[_0x7cf9('0x25')](_0x4e67c1)[_0x7cf9('0x26')](function(_0x300172){return _0x300172;});}return null;};}function removeEntity(_0x30dbb8,_0x37b16f){return function(_0x555a57){if(_0x555a57){return _0x555a57[_0x7cf9('0x27')]()[_0x7cf9('0x26')](function(){var _0x998f2c=_0x555a57[_0x7cf9('0x28')]({'plain':!![]});var _0x43ed33=[{'name':'VoiceQueues','value':_0x7cf9('0x29'),'ignore':![]},{'name':'QueueCampaigns','value':_0x7cf9('0x2a'),'ignore':![]}];var _0x159f82=_(_0x43ed33)['filter'](_0x7cf9('0x2b'))['map'](_0x7cf9('0x2c'))[_0x7cf9('0x2c')]();if(_['includes'](_0x159f82,_0x998f2c['type'])){return;}var _0x400071=_[_0x7cf9('0x2d')](_0x43ed33,[_0x7cf9('0x2c'),_0x998f2c['type']])[_0x7cf9('0x2e')];return db[_0x7cf9('0x2f')]['destroy']({'where':{'type':_0x400071,'resourceId':_0x998f2c['id']}})[_0x7cf9('0x26')](function(){return _0x555a57;});})['then'](function(){_0x30dbb8[_0x7cf9('0x21')](0xcc)[_0x7cf9('0x30')]();});}};}function handleEntityNotFound(_0x5b1d26,_0x5a1da4){return function(_0x21a981){if(!_0x21a981){_0x5b1d26['sendStatus'](0x194);}return _0x21a981;};}function handleError(_0x303b7a,_0x37c327){_0x37c327=_0x37c327||0x1f4;return function(_0x3c8548){logger[_0x7cf9('0x31')](_0x3c8548[_0x7cf9('0x32')]);if(_0x3c8548['name']){delete _0x3c8548[_0x7cf9('0x2e')];}_0x303b7a[_0x7cf9('0x21')](_0x37c327)[_0x7cf9('0x33')](_0x3c8548);};}exports[_0x7cf9('0x34')]=function(_0xba9180,_0x72d685){var _0x2760c9={},_0x38a8fe={},_0x3b648c={'count':0x0,'rows':[]};var _0x406281=_[_0x7cf9('0x35')](db['VoiceQueue'][_0x7cf9('0x36')],function(_0x270fea){return{'name':_0x270fea[_0x7cf9('0x37')],'type':_0x270fea[_0x7cf9('0x38')][_0x7cf9('0x39')]};});_0x38a8fe[_0x7cf9('0x3a')]=_[_0x7cf9('0x35')](_0x406281,_0x7cf9('0x2e'));_0x38a8fe[_0x7cf9('0x3b')]=_[_0x7cf9('0x3c')](_0xba9180[_0x7cf9('0x3b')]);_0x38a8fe[_0x7cf9('0x3d')]=_[_0x7cf9('0x3e')](_0x38a8fe['model'],_0x38a8fe[_0x7cf9('0x3b')]);_0x2760c9[_0x7cf9('0x3f')]=_[_0x7cf9('0x3e')](_0x38a8fe[_0x7cf9('0x3a')],qs[_0x7cf9('0x40')](_0xba9180['query']['fields']));_0x2760c9[_0x7cf9('0x3f')]=_0x2760c9[_0x7cf9('0x3f')][_0x7cf9('0x41')]?_0x2760c9[_0x7cf9('0x3f')]:_0x38a8fe[_0x7cf9('0x3a')];if(!_0xba9180[_0x7cf9('0x3b')][_0x7cf9('0x42')](_0x7cf9('0x43'))){_0x2760c9['limit']=qs[_0x7cf9('0x1f')](_0xba9180[_0x7cf9('0x3b')]['limit']);_0x2760c9['offset']=qs[_0x7cf9('0x1d')](_0xba9180[_0x7cf9('0x3b')][_0x7cf9('0x1d')]);}_0x2760c9[_0x7cf9('0x44')]=qs['sort'](_0xba9180[_0x7cf9('0x3b')][_0x7cf9('0x45')]);_0x2760c9['where']=qs[_0x7cf9('0x3d')](_['pick'](_0xba9180[_0x7cf9('0x3b')],_0x38a8fe[_0x7cf9('0x3d')]),_0x406281);if(_0xba9180['query'][_0x7cf9('0x46')]){_0x2760c9['where']=_['merge'](_0x2760c9[_0x7cf9('0x47')],{'$or':_['map'](_0x406281,function(_0x2394c8){if(_0x2394c8[_0x7cf9('0x38')]!=='VIRTUAL'){var _0x43ed6b={};_0x43ed6b[_0x2394c8[_0x7cf9('0x2e')]]={'$like':'%'+_0xba9180[_0x7cf9('0x3b')][_0x7cf9('0x46')]+'%'};return _0x43ed6b;}})});}_0x2760c9=_[_0x7cf9('0x48')]({},_0x2760c9,_0xba9180[_0x7cf9('0x49')]);var _0x383244={'where':_0x2760c9[_0x7cf9('0x47')]};return db[_0x7cf9('0x4a')][_0x7cf9('0x20')](_0x383244)[_0x7cf9('0x26')](function(_0x382675){_0x3b648c[_0x7cf9('0x20')]=_0x382675;if(_0xba9180[_0x7cf9('0x3b')][_0x7cf9('0x4b')]){_0x2760c9[_0x7cf9('0x4c')]=[{'all':!![]}];}return db[_0x7cf9('0x4a')]['findAll'](_0x2760c9);})[_0x7cf9('0x26')](function(_0x3642f6){_0x3b648c[_0x7cf9('0x4d')]=_0x3642f6;return _0x3b648c;})[_0x7cf9('0x26')](respondWithFilteredResult(_0x72d685,_0x2760c9))[_0x7cf9('0x4e')](handleError(_0x72d685,null));};exports[_0x7cf9('0x4f')]=function(_0x38324c,_0xbd11c8){var _0x2912d4={'raw':![],'where':{'id':_0x38324c['params']['id']}},_0x2fd64f={};_0x2fd64f[_0x7cf9('0x3a')]=_[_0x7cf9('0x3c')](db[_0x7cf9('0x4a')][_0x7cf9('0x36')]);_0x2fd64f[_0x7cf9('0x3b')]=_['keys'](_0x38324c['query']);_0x2fd64f['filters']=_[_0x7cf9('0x3e')](_0x2fd64f[_0x7cf9('0x3a')],_0x2fd64f[_0x7cf9('0x3b')]);_0x2912d4[_0x7cf9('0x3f')]=_['intersection'](_0x2fd64f['model'],qs[_0x7cf9('0x40')](_0x38324c[_0x7cf9('0x3b')][_0x7cf9('0x40')]));_0x2912d4[_0x7cf9('0x3f')]=_0x2912d4[_0x7cf9('0x3f')][_0x7cf9('0x41')]?_0x2912d4['attributes']:_0x2fd64f[_0x7cf9('0x3a')];if(_0x38324c['query'][_0x7cf9('0x4b')]){_0x2912d4[_0x7cf9('0x4c')]=[{'all':!![]}];}_0x2912d4=_[_0x7cf9('0x48')]({},_0x2912d4,_0x38324c[_0x7cf9('0x49')]);return db[_0x7cf9('0x4a')][_0x7cf9('0x2d')](_0x2912d4)[_0x7cf9('0x26')](handleEntityNotFound(_0xbd11c8,null))[_0x7cf9('0x26')](respondWithResult(_0xbd11c8,null))['catch'](handleError(_0xbd11c8,null));};exports[_0x7cf9('0x50')]=function(_0x3fb245,_0x419d7b){return db[_0x7cf9('0x4a')]['create'](_0x3fb245[_0x7cf9('0x51')],{})[_0x7cf9('0x26')](function(_0x392c2c){var _0x2a4fd5=_0x3fb245['user'][_0x7cf9('0x28')]({'plain':!![]});if(!_0x2a4fd5)throw new Error(_0x7cf9('0x52'));if(_0x2a4fd5['role']===_0x7cf9('0x53')){var _0x5243a0=_0x392c2c[_0x7cf9('0x28')]({'plain':!![]});var _0x49dcae=[{'name':_0x7cf9('0x54'),'value':_0x7cf9('0x29')},{'name':_0x7cf9('0x55'),'value':_0x7cf9('0x2a')}];var _0xd5c38d=_['find'](_0x49dcae,[_0x7cf9('0x2c'),_0x5243a0[_0x7cf9('0x38')]])[_0x7cf9('0x2e')];return db['UserProfileSection']['find']({'where':{'name':_0xd5c38d,'userProfileId':_0x2a4fd5[_0x7cf9('0x56')]},'raw':!![]})[_0x7cf9('0x26')](function(_0x21c7d9){if(_0x21c7d9&&_0x21c7d9['autoAssociation']===0x0){return db['UserProfileResource'][_0x7cf9('0x50')]({'name':_0x5243a0[_0x7cf9('0x2e')],'resourceId':_0x5243a0['id'],'type':_0x21c7d9[_0x7cf9('0x2e')],'sectionId':_0x21c7d9['id']},{})[_0x7cf9('0x26')](function(){return _0x392c2c;});}else{return _0x392c2c;}})[_0x7cf9('0x4e')](function(_0x3ce69c){logger[_0x7cf9('0x31')](_0x7cf9('0x57'),_0x3ce69c);throw _0x3ce69c;});}return _0x392c2c;})['then'](respondWithResult(_0x419d7b,0xc9))[_0x7cf9('0x4e')](handleError(_0x419d7b,null));};exports[_0x7cf9('0x58')]=function(_0x5e028d,_0x543210){var _0x30871b={'where':{'id':_0x5e028d[_0x7cf9('0x59')]['id']}},_0x5a7aac={};_0x5a7aac[_0x7cf9('0x3a')]=_[_0x7cf9('0x3c')](db['VoiceQueue'][_0x7cf9('0x36')]);_0x30871b['attributes']=_[_0x7cf9('0x3e')](_0x5a7aac[_0x7cf9('0x3a')],qs[_0x7cf9('0x40')](_0x5e028d[_0x7cf9('0x3b')][_0x7cf9('0x40')]));_0x30871b['attributes']=_0x30871b['attributes'][_0x7cf9('0x41')]?_0x30871b[_0x7cf9('0x3f')]:_0x5a7aac[_0x7cf9('0x3a')];if(_0x5e028d[_0x7cf9('0x3b')][_0x7cf9('0x4b')]){_0x30871b[_0x7cf9('0x4c')]=[{'all':!![]}];}_0x30871b=_['merge']({},_0x30871b,_0x5e028d['options']);return db[_0x7cf9('0x4a')][_0x7cf9('0x2d')](_0x30871b)[_0x7cf9('0x26')](handleEntityNotFound(_0x543210,null))['then'](function(_0x5f1ebf){if(_0x5f1ebf){var _0x353821=_0x5f1ebf['get']({'plain':!![]});_0x353821=qs[_0x7cf9('0x5a')](_0x353821,['id','createdAt',_0x7cf9('0x5b')]);_0x5e028d[_0x7cf9('0x51')]=_['omit'](_0x5e028d[_0x7cf9('0x51')],['id',_0x7cf9('0x5c'),_0x7cf9('0x5b')]);return db[_0x7cf9('0x4a')][_0x7cf9('0x50')](_[_0x7cf9('0x48')](_0x353821,_0x5e028d['body']),{'include':_0x5e028d['query'][_0x7cf9('0x4b')]?[{'all':!![]}]:undefined})['then'](function(_0x6ea15c){var _0x41caf1=_0x5e028d[_0x7cf9('0x53')]['get']({'plain':!![]});if(!_0x41caf1)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x41caf1[_0x7cf9('0x5d')]===_0x7cf9('0x53')){var _0x4be3ad=_0x6ea15c['get']({'plain':!![]});var _0x5b619f=[{'name':_0x7cf9('0x54'),'value':_0x7cf9('0x29')},{'name':_0x7cf9('0x55'),'value':_0x7cf9('0x2a')}];var _0x1589f0=_[_0x7cf9('0x2d')](_0x5b619f,[_0x7cf9('0x2c'),_0x4be3ad[_0x7cf9('0x38')]])[_0x7cf9('0x2e')];return db[_0x7cf9('0x5e')][_0x7cf9('0x2d')]({'where':{'name':_0x1589f0,'userProfileId':_0x41caf1[_0x7cf9('0x56')]},'raw':!![]})[_0x7cf9('0x26')](function(_0x4acea2){if(_0x4acea2&&_0x4acea2[_0x7cf9('0x5f')]===0x0){return db['UserProfileResource'][_0x7cf9('0x50')]({'name':_0x4be3ad[_0x7cf9('0x2e')],'resourceId':_0x4be3ad['id'],'type':_0x4acea2[_0x7cf9('0x2e')],'sectionId':_0x4acea2['id']},{})[_0x7cf9('0x26')](function(){return _0x6ea15c;});}else{return _0x6ea15c;}})[_0x7cf9('0x4e')](function(_0x2449da){logger[_0x7cf9('0x31')](_0x7cf9('0x57'),_0x2449da);throw _0x2449da;});}return _0x6ea15c;});}})[_0x7cf9('0x26')](respondWithResult(_0x543210,0xc9))[_0x7cf9('0x4e')](handleError(_0x543210,null));};exports[_0x7cf9('0x25')]=function(_0x4b4486,_0x370641){if(_0x4b4486[_0x7cf9('0x51')]['id']){delete _0x4b4486['body']['id'];}return db[_0x7cf9('0x4a')][_0x7cf9('0x2d')]({'where':{'id':_0x4b4486['params']['id']}})['then'](handleEntityNotFound(_0x370641,null))[_0x7cf9('0x26')](saveUpdates(_0x4b4486['body'],null))['then'](respondWithResult(_0x370641,null))[_0x7cf9('0x4e')](handleError(_0x370641,null));};exports[_0x7cf9('0x27')]=function(_0x2061f4,_0x198e7c){return db['VoiceQueue'][_0x7cf9('0x2d')]({'where':{'id':_0x2061f4[_0x7cf9('0x59')]['id']}})[_0x7cf9('0x26')](handleEntityNotFound(_0x198e7c,null))[_0x7cf9('0x26')](removeEntity(_0x198e7c,null))[_0x7cf9('0x4e')](handleError(_0x198e7c,null));};exports[_0x7cf9('0x60')]=function(_0x203846,_0x5ca656,_0x5e39a4){var _0x4777b2={'raw':![],'where':{}};var _0x187a29={};var _0x3b6158={'count':0x0,'rows':[]};return db[_0x7cf9('0x4a')][_0x7cf9('0x61')]({'where':{'id':_0x203846[_0x7cf9('0x59')]['id']}})[_0x7cf9('0x26')](handleEntityNotFound(_0x5ca656,null))[_0x7cf9('0x26')](function(_0x543835){if(_0x543835){_0x187a29[_0x7cf9('0x3a')]=_[_0x7cf9('0x3c')](db[_0x7cf9('0x62')][_0x7cf9('0x36')]);_0x187a29[_0x7cf9('0x3b')]=_[_0x7cf9('0x3c')](_0x203846[_0x7cf9('0x3b')]);_0x187a29[_0x7cf9('0x3d')]=_[_0x7cf9('0x3e')](_0x187a29[_0x7cf9('0x3a')],_0x187a29[_0x7cf9('0x3b')]);_0x4777b2[_0x7cf9('0x3f')]=_[_0x7cf9('0x3e')](_0x187a29[_0x7cf9('0x3a')],qs[_0x7cf9('0x40')](_0x203846[_0x7cf9('0x3b')][_0x7cf9('0x40')]));_0x4777b2[_0x7cf9('0x3f')]=_0x4777b2['attributes'][_0x7cf9('0x41')]?_0x4777b2[_0x7cf9('0x3f')]:_0x187a29[_0x7cf9('0x3a')];if(!_0x203846['query'][_0x7cf9('0x42')](_0x7cf9('0x43'))){_0x4777b2[_0x7cf9('0x1f')]=qs[_0x7cf9('0x1f')](_0x203846['query'][_0x7cf9('0x1f')]);_0x4777b2[_0x7cf9('0x1d')]=qs[_0x7cf9('0x1d')](_0x203846[_0x7cf9('0x3b')][_0x7cf9('0x1d')]);}_0x4777b2['order']=qs['sort'](_0x203846[_0x7cf9('0x3b')]['sort']);_0x4777b2[_0x7cf9('0x47')]=qs[_0x7cf9('0x3d')](_[_0x7cf9('0x63')](_0x203846[_0x7cf9('0x3b')],_0x187a29[_0x7cf9('0x3d')]));_0x4777b2[_0x7cf9('0x47')][_0x7cf9('0x64')]=_0x543835['id'];if(_0x203846['query']['filter']){_0x4777b2[_0x7cf9('0x47')]=_['merge'](_0x4777b2['where'],{'$or':_[_0x7cf9('0x35')](_0x4777b2[_0x7cf9('0x3f')],function(_0x821e42){var _0x30f01e={};_0x30f01e[_0x821e42]={'$like':'%'+_0x203846[_0x7cf9('0x3b')][_0x7cf9('0x46')]+'%'};return _0x30f01e;})});}_0x4777b2=_[_0x7cf9('0x48')]({},_0x4777b2,_0x203846[_0x7cf9('0x49')]);return db[_0x7cf9('0x62')][_0x7cf9('0x20')]({'where':_0x4777b2[_0x7cf9('0x47')]})[_0x7cf9('0x26')](function(_0x1e04bc){_0x3b6158[_0x7cf9('0x20')]=_0x1e04bc;if(_0x203846[_0x7cf9('0x3b')][_0x7cf9('0x4b')]){_0x4777b2[_0x7cf9('0x4c')]=[{'all':!![]}];}return db[_0x7cf9('0x62')]['findAll'](_0x4777b2);})[_0x7cf9('0x26')](function(_0x2a5220){_0x3b6158[_0x7cf9('0x4d')]=_0x2a5220;return _0x3b6158;});}})[_0x7cf9('0x26')](respondWithFilteredResult(_0x5ca656,_0x4777b2))['catch'](handleError(_0x5ca656,null));};exports[_0x7cf9('0x65')]=function(_0x3471b5,_0x4065d0,_0x4819cf){var _0x29712a={'raw':!![],'where':{}};var _0x2930e6={};var _0x3e0236={'count':0x0,'rows':[]};return db[_0x7cf9('0x4a')][_0x7cf9('0x61')]({'where':{'id':_0x3471b5[_0x7cf9('0x59')]['id']}})['then'](handleEntityNotFound(_0x4065d0,null))[_0x7cf9('0x26')](function(_0x2bdd5e){if(_0x2bdd5e){_0x2930e6[_0x7cf9('0x3a')]=_[_0x7cf9('0x3c')](db[_0x7cf9('0x66')]['rawAttributes']);_0x2930e6['query']=_[_0x7cf9('0x3c')](_0x3471b5['query']);_0x2930e6[_0x7cf9('0x3d')]=_['intersection'](_0x2930e6[_0x7cf9('0x3a')],_0x2930e6[_0x7cf9('0x3b')]);_0x29712a[_0x7cf9('0x3f')]=_[_0x7cf9('0x3e')](_0x2930e6[_0x7cf9('0x3a')],qs[_0x7cf9('0x40')](_0x3471b5['query'][_0x7cf9('0x40')]));_0x29712a['attributes']=_0x29712a[_0x7cf9('0x3f')][_0x7cf9('0x41')]?_0x29712a[_0x7cf9('0x3f')]:_0x2930e6[_0x7cf9('0x3a')];if(!_0x3471b5[_0x7cf9('0x3b')]['hasOwnProperty'](_0x7cf9('0x43'))){_0x29712a['limit']=qs[_0x7cf9('0x1f')](_0x3471b5['query'][_0x7cf9('0x1f')]);_0x29712a['offset']=qs['offset'](_0x3471b5[_0x7cf9('0x3b')][_0x7cf9('0x1d')]);}_0x29712a[_0x7cf9('0x44')]=qs['sort'](_0x3471b5[_0x7cf9('0x3b')]['sort']);_0x29712a['where']=qs[_0x7cf9('0x3d')](_[_0x7cf9('0x63')](_0x3471b5['query'],_0x2930e6['filters']));_0x29712a['where']['VoiceQueueId']=_0x2bdd5e['id'];if(_0x3471b5[_0x7cf9('0x3b')][_0x7cf9('0x46')]){_0x29712a['where']=_[_0x7cf9('0x48')](_0x29712a[_0x7cf9('0x47')],{'$or':_[_0x7cf9('0x35')](_0x29712a[_0x7cf9('0x3f')],function(_0x28e380){var _0x882a45={};_0x882a45[_0x28e380]={'$like':'%'+_0x3471b5[_0x7cf9('0x3b')][_0x7cf9('0x46')]+'%'};return _0x882a45;})});}_0x29712a=_[_0x7cf9('0x48')]({},_0x29712a,_0x3471b5[_0x7cf9('0x49')]);return db['CmHopperHistory'][_0x7cf9('0x20')]({'where':_0x29712a[_0x7cf9('0x47')]})['then'](function(_0xe5888b){_0x3e0236[_0x7cf9('0x20')]=_0xe5888b;if(_0x3471b5[_0x7cf9('0x3b')][_0x7cf9('0x4b')]){_0x29712a[_0x7cf9('0x4c')]=[{'all':!![]}];}return db['CmHopperHistory'][_0x7cf9('0x67')](_0x29712a);})[_0x7cf9('0x26')](function(_0x48ecf2){_0x3e0236[_0x7cf9('0x4d')]=_0x48ecf2;return _0x3e0236;});}})[_0x7cf9('0x26')](respondWithFilteredResult(_0x4065d0,_0x29712a))['catch'](handleError(_0x4065d0,null));};exports['getHopperFinals']=function(_0x306c0e,_0x1d3405,_0x4ac847){var _0x341352={'raw':!![],'where':{}};var _0x4c9a59={};var _0x207660={'count':0x0,'rows':[]};return db[_0x7cf9('0x4a')][_0x7cf9('0x61')]({'where':{'id':_0x306c0e['params']['id']}})[_0x7cf9('0x26')](handleEntityNotFound(_0x1d3405,null))[_0x7cf9('0x26')](function(_0x57eda4){if(_0x57eda4){_0x4c9a59[_0x7cf9('0x3a')]=_[_0x7cf9('0x3c')](db[_0x7cf9('0x68')][_0x7cf9('0x36')]);_0x4c9a59[_0x7cf9('0x3b')]=_[_0x7cf9('0x3c')](_0x306c0e[_0x7cf9('0x3b')]);_0x4c9a59[_0x7cf9('0x3d')]=_[_0x7cf9('0x3e')](_0x4c9a59['model'],_0x4c9a59['query']);_0x341352['attributes']=_[_0x7cf9('0x3e')](_0x4c9a59[_0x7cf9('0x3a')],qs[_0x7cf9('0x40')](_0x306c0e[_0x7cf9('0x3b')][_0x7cf9('0x40')]));_0x341352['attributes']=_0x341352[_0x7cf9('0x3f')][_0x7cf9('0x41')]?_0x341352[_0x7cf9('0x3f')]:_0x4c9a59['model'];if(!_0x306c0e[_0x7cf9('0x3b')][_0x7cf9('0x42')](_0x7cf9('0x43'))){_0x341352[_0x7cf9('0x1f')]=qs[_0x7cf9('0x1f')](_0x306c0e[_0x7cf9('0x3b')][_0x7cf9('0x1f')]);_0x341352[_0x7cf9('0x1d')]=qs[_0x7cf9('0x1d')](_0x306c0e[_0x7cf9('0x3b')][_0x7cf9('0x1d')]);}_0x341352[_0x7cf9('0x44')]=qs['sort'](_0x306c0e[_0x7cf9('0x3b')]['sort']);_0x341352[_0x7cf9('0x47')]=qs['filters'](_[_0x7cf9('0x63')](_0x306c0e[_0x7cf9('0x3b')],_0x4c9a59['filters']));_0x341352['where'][_0x7cf9('0x64')]=_0x57eda4['id'];if(_0x306c0e['query'][_0x7cf9('0x46')]){_0x341352['where']=_[_0x7cf9('0x48')](_0x341352[_0x7cf9('0x47')],{'$or':_[_0x7cf9('0x35')](_0x341352[_0x7cf9('0x3f')],function(_0x12d511){var _0x2c0b56={};_0x2c0b56[_0x12d511]={'$like':'%'+_0x306c0e[_0x7cf9('0x3b')][_0x7cf9('0x46')]+'%'};return _0x2c0b56;})});}_0x341352=_[_0x7cf9('0x48')]({},_0x341352,_0x306c0e[_0x7cf9('0x49')]);return db[_0x7cf9('0x68')][_0x7cf9('0x20')]({'where':_0x341352[_0x7cf9('0x47')]})[_0x7cf9('0x26')](function(_0x41c1ed){_0x207660[_0x7cf9('0x20')]=_0x41c1ed;if(_0x306c0e[_0x7cf9('0x3b')][_0x7cf9('0x4b')]){_0x341352['include']=[{'all':!![]}];}return db[_0x7cf9('0x68')][_0x7cf9('0x67')](_0x341352);})[_0x7cf9('0x26')](function(_0x2d4d87){_0x207660['rows']=_0x2d4d87;return _0x207660;});}})[_0x7cf9('0x26')](respondWithFilteredResult(_0x1d3405,_0x341352))['catch'](handleError(_0x1d3405,null));};exports[_0x7cf9('0x69')]=function(_0xe96ce6,_0x118c64,_0x1a8935){var _0x473f7c={'raw':!![],'where':{}};var _0x2af6fb={};var _0x182cd5={'count':0x0,'rows':[]};return db['VoiceQueue'][_0x7cf9('0x61')]({'where':{'id':_0xe96ce6[_0x7cf9('0x59')]['id']}})['then'](handleEntityNotFound(_0x118c64,null))[_0x7cf9('0x26')](function(_0x2f1cf8){if(_0x2f1cf8){_0x2af6fb[_0x7cf9('0x3a')]=_['keys'](db[_0x7cf9('0x6a')][_0x7cf9('0x36')]);_0x2af6fb[_0x7cf9('0x3b')]=_[_0x7cf9('0x3c')](_0xe96ce6[_0x7cf9('0x3b')]);_0x2af6fb['filters']=_['intersection'](_0x2af6fb[_0x7cf9('0x3a')],_0x2af6fb[_0x7cf9('0x3b')]);_0x473f7c['attributes']=_[_0x7cf9('0x3e')](_0x2af6fb[_0x7cf9('0x3a')],qs['fields'](_0xe96ce6[_0x7cf9('0x3b')][_0x7cf9('0x40')]));_0x473f7c['attributes']=_0x473f7c[_0x7cf9('0x3f')][_0x7cf9('0x41')]?_0x473f7c['attributes']:_0x2af6fb[_0x7cf9('0x3a')];if(!_0xe96ce6[_0x7cf9('0x3b')]['hasOwnProperty'](_0x7cf9('0x43'))){_0x473f7c[_0x7cf9('0x1f')]=qs['limit'](_0xe96ce6[_0x7cf9('0x3b')]['limit']);_0x473f7c['offset']=qs[_0x7cf9('0x1d')](_0xe96ce6[_0x7cf9('0x3b')][_0x7cf9('0x1d')]);}_0x473f7c[_0x7cf9('0x44')]=qs['sort'](_0xe96ce6['query'][_0x7cf9('0x45')]);_0x473f7c[_0x7cf9('0x47')]=qs[_0x7cf9('0x3d')](_[_0x7cf9('0x63')](_0xe96ce6[_0x7cf9('0x3b')],_0x2af6fb[_0x7cf9('0x3d')]));_0x473f7c[_0x7cf9('0x47')]['VoiceQueueId']=_0x2f1cf8['id'];if(_0xe96ce6[_0x7cf9('0x3b')][_0x7cf9('0x46')]){_0x473f7c['where']=_['merge'](_0x473f7c[_0x7cf9('0x47')],{'$or':_[_0x7cf9('0x35')](_0x473f7c[_0x7cf9('0x3f')],function(_0x10ba07){var _0x15d6b4={};_0x15d6b4[_0x10ba07]={'$like':'%'+_0xe96ce6[_0x7cf9('0x3b')][_0x7cf9('0x46')]+'%'};return _0x15d6b4;})});}_0x473f7c=_['merge']({},_0x473f7c,_0xe96ce6[_0x7cf9('0x49')]);return db[_0x7cf9('0x6a')][_0x7cf9('0x20')]({'where':_0x473f7c[_0x7cf9('0x47')]})['then'](function(_0x3ff07f){_0x182cd5[_0x7cf9('0x20')]=_0x3ff07f;if(_0xe96ce6[_0x7cf9('0x3b')][_0x7cf9('0x4b')]){_0x473f7c[_0x7cf9('0x4c')]=[{'all':!![]}];}return db[_0x7cf9('0x6a')][_0x7cf9('0x67')](_0x473f7c);})[_0x7cf9('0x26')](function(_0x30e06d){_0x182cd5[_0x7cf9('0x4d')]=_0x30e06d;return _0x182cd5;});}})[_0x7cf9('0x26')](respondWithFilteredResult(_0x118c64,_0x473f7c))[_0x7cf9('0x4e')](handleError(_0x118c64,null));};exports[_0x7cf9('0x6b')]=function(_0x3797b1,_0x268cb5,_0x3d7279){var _0x383aac={};var _0x458981={};var _0x1964ed;var _0x2a720a;return db['VoiceQueue'][_0x7cf9('0x61')]({'where':{'id':_0x3797b1['params']['id']}})[_0x7cf9('0x26')](handleEntityNotFound(_0x268cb5,null))[_0x7cf9('0x26')](function(_0xe25a15){if(_0xe25a15){_0x1964ed=_0xe25a15;_0x458981[_0x7cf9('0x3a')]=_[_0x7cf9('0x3c')](db['Team']['rawAttributes']);_0x458981[_0x7cf9('0x3b')]=_['keys'](_0x3797b1[_0x7cf9('0x3b')]);_0x458981[_0x7cf9('0x3d')]=_[_0x7cf9('0x3e')](_0x458981['model'],_0x458981[_0x7cf9('0x3b')]);_0x383aac[_0x7cf9('0x3f')]=_['intersection'](_0x458981['model'],qs[_0x7cf9('0x40')](_0x3797b1['query']['fields']));_0x383aac[_0x7cf9('0x3f')]=_0x383aac[_0x7cf9('0x3f')][_0x7cf9('0x41')]?_0x383aac[_0x7cf9('0x3f')]:_0x458981['model'];_0x383aac[_0x7cf9('0x44')]=qs[_0x7cf9('0x45')](_0x3797b1[_0x7cf9('0x3b')][_0x7cf9('0x45')]);_0x383aac[_0x7cf9('0x47')]=qs[_0x7cf9('0x3d')](_['pick'](_0x3797b1[_0x7cf9('0x3b')],_0x458981[_0x7cf9('0x3d')]));if(_0x3797b1[_0x7cf9('0x3b')][_0x7cf9('0x46')]){_0x383aac[_0x7cf9('0x47')]=_[_0x7cf9('0x48')](_0x383aac['where'],{'$or':_[_0x7cf9('0x35')](_0x383aac[_0x7cf9('0x3f')],function(_0x4c845d){var _0x57ada8={};_0x57ada8[_0x4c845d]={'$like':'%'+_0x3797b1[_0x7cf9('0x3b')][_0x7cf9('0x46')]+'%'};return _0x57ada8;})});}_0x383aac=_['merge']({},_0x383aac,_0x3797b1[_0x7cf9('0x49')]);return _0x1964ed[_0x7cf9('0x6b')](_0x383aac);}})[_0x7cf9('0x26')](function(_0x3cb096){if(_0x3cb096){_0x2a720a=_0x3cb096[_0x7cf9('0x41')];if(!_0x3797b1['query'][_0x7cf9('0x42')]('nolimit')){_0x383aac[_0x7cf9('0x1f')]=qs[_0x7cf9('0x1f')](_0x3797b1[_0x7cf9('0x3b')][_0x7cf9('0x1f')]);_0x383aac['offset']=qs[_0x7cf9('0x1d')](_0x3797b1['query']['offset']);}return _0x1964ed[_0x7cf9('0x6b')](_0x383aac);}})[_0x7cf9('0x26')](function(_0x24fdf6){if(_0x24fdf6){return _0x24fdf6?{'count':_0x2a720a,'rows':_0x24fdf6}:null;}})[_0x7cf9('0x26')](respondWithResult(_0x268cb5,null))['catch'](handleError(_0x268cb5,null));};exports[_0x7cf9('0x6c')]=function(_0xc6d9a5,_0x47e10d,_0x3a2e86){var _0x326017=_0xc6d9a5[_0x7cf9('0x51')][_0x7cf9('0x6d')];var _0x22ee06=_[_0x7cf9('0x35')](_0x326017,'id');return db[_0x7cf9('0x6e')]['findAll']({'where':{'id':_0x22ee06},'attributes':['id'],'include':[{'model':db[_0x7cf9('0x6f')],'as':'Agents','attributes':['id',_0x7cf9('0x2e'),_0x7cf9('0x70'),_0x7cf9('0x71'),_0x7cf9('0x72')],'raw':!![]}]})[_0x7cf9('0x26')](function(_0x3552ca){if(_0x3552ca){var _0x5a1292=_[_0x7cf9('0x73')](_0x3552ca,function(_0xaece97){var _0x305a02=_0xaece97[_0x7cf9('0x28')]({'plain':!![]});_0x305a02[_0x7cf9('0x74')]['forEach'](function(_0x4dcde2){_0x4dcde2[_0x7cf9('0x75')]=_['find'](_0x326017,{'id':_0x305a02['id']})[_0x7cf9('0x75')];});return _0x305a02[_0x7cf9('0x74')];});return db[_0x7cf9('0x4a')]['find']({'where':{'id':_0xc6d9a5['params']['id']}})[_0x7cf9('0x26')](function(_0x45fc0b){return db[_0x7cf9('0x76')][_0x7cf9('0x77')](function(_0x14bfc3){return _0x45fc0b[_0x7cf9('0x6c')](_0x22ee06,{'transaction':_0x14bfc3})[_0x7cf9('0x26')](function(){return BPromise[_0x7cf9('0x78')](_0x326017,function(_0xa9438){return db['TeamVoiceQueue'][_0x7cf9('0x79')]({'TeamId':_0xa9438['id'],'VoiceQueueId':_0xc6d9a5['params']['id'],'penalty':_0xa9438['penalty']},{'transaction':_0x14bfc3});});})[_0x7cf9('0x26')](function(){return BPromise[_0x7cf9('0x78')](_0x5a1292,function(_0x2da04e){return db['UserVoiceQueue'][_0x7cf9('0x7a')]({'where':{'UserId':_0x2da04e['id'],'VoiceQueueId':_0xc6d9a5[_0x7cf9('0x59')]['id']},'defaults':{'penalty':_0x2da04e[_0x7cf9('0x75')]},'transaction':_0x14bfc3});});})[_0x7cf9('0x26')](function(){return BPromise[_0x7cf9('0x78')](_[_0x7cf9('0x46')](_0x5a1292,{'online':!![]}),function(_0x3567fd){return db['UserVoiceQueueRt'][_0x7cf9('0x79')]({'membername':_0x3567fd[_0x7cf9('0x2e')],'UserId':_0x3567fd['id'],'queue_name':_0x45fc0b[_0x7cf9('0x2e')],'VoiceQueueId':_0x45fc0b['id'],'interface':_['isNil'](_0x3567fd[_0x7cf9('0x72')])?util[_0x7cf9('0x7b')](_0x7cf9('0x7c'),_0x3567fd[_0x7cf9('0x2e')]):_0x3567fd[_0x7cf9('0x72')],'paused':_0x3567fd[_0x7cf9('0x71')]||![],'penalty':_0x3567fd[_0x7cf9('0x75')]},{'transaction':_0x14bfc3});});})[_0x7cf9('0x26')](function(){_0x5a1292[_0x7cf9('0x7d')](function(_0x4dbcd1){socket[_0x7cf9('0x7e')](_0x7cf9('0x7f'),{'UserId':_0x4dbcd1['id'],'VoiceQueueId':_0x45fc0b['id']});});});});});}})['then'](respondWithStatusCode(_0x47e10d,null))['catch'](handleError(_0x47e10d,null));};exports['removeTeams']=function(_0x1cd6ae,_0x33198f,_0xdfcff3){return db['Team'][_0x7cf9('0x67')]({'where':{'id':_0x1cd6ae['query'][_0x7cf9('0x80')]},'attributes':['id'],'include':[{'model':db['User'],'as':_0x7cf9('0x74'),'attributes':['id'],'raw':!![]}]})[_0x7cf9('0x26')](handleEntityNotFound(_0x33198f,null))[_0x7cf9('0x26')](function(_0x1089e3){var _0x5293d9=_[_0x7cf9('0x35')](_0x1089e3,'id');var _0x1347c8=[];var _0x5a0bea=[];var _0x4a8feb=squel[_0x7cf9('0x81')]();_0x4a8feb['field']('tq.TeamId')[_0x7cf9('0x82')]('team_has_voice_queues','tq')[_0x7cf9('0x83')](_0x7cf9('0x84'),'ut',_0x7cf9('0x85'))[_0x7cf9('0x47')]('VoiceQueueId\x20=\x20?',_0x1cd6ae[_0x7cf9('0x59')]['id']);for(var _0x17dcfe=0x0;_0x17dcfe<_0x1089e3[_0x7cf9('0x41')];_0x17dcfe+=0x1){let _0x3d9cb1=_0x1089e3[_0x17dcfe];for(var _0x3ce49a=0x0;_0x3ce49a<_0x3d9cb1[_0x7cf9('0x74')]['length'];_0x3ce49a+=0x1){let _0xd14ecf=_0x3d9cb1['Agents'][_0x3ce49a];var _0x3d1c45=_0x4a8feb['clone']();_0x3d1c45[_0x7cf9('0x47')](_0x7cf9('0x86'),_0xd14ecf['id']);_0x5a0bea[_0x7cf9('0x87')](db[_0x7cf9('0x76')][_0x7cf9('0x3b')](_0x3d1c45[_0x7cf9('0x88')](),{'type':db[_0x7cf9('0x76')][_0x7cf9('0x89')][_0x7cf9('0x8a')]})['then'](function(_0x13acca){if(_0x13acca[_0x7cf9('0x41')]===0x1){return _0xd14ecf['id'];}else{var _0x32a706=_['every'](_[_0x7cf9('0x35')](_0x13acca,_0x7cf9('0x8b')),function(_0x14fda3){return _['includes'](_0x5293d9,_0x14fda3);});if(_0x32a706){return _0xd14ecf['id'];}}}));}}return BPromise['all'](_0x5a0bea)[_0x7cf9('0x26')](function(_0x163e61){_0x1347c8=_(_0x1347c8)[_0x7cf9('0x8c')](_0x163e61)['compact']()[_0x7cf9('0x2c')]();return db['VoiceQueue'][_0x7cf9('0x2d')]({'where':{'id':_0x1cd6ae['params']['id']}})[_0x7cf9('0x26')](function(_0x5192b9){return db[_0x7cf9('0x76')][_0x7cf9('0x77')](function(_0x2ea73b){return _0x5192b9['removeTeams'](_0x1cd6ae[_0x7cf9('0x3b')]['ids'],{'transaction':_0x2ea73b})[_0x7cf9('0x26')](function(){if(!_[_0x7cf9('0x8d')](_0x1347c8)){return _0x5192b9[_0x7cf9('0x8e')](_0x1347c8,{'transaction':_0x2ea73b})[_0x7cf9('0x26')](function(){return db[_0x7cf9('0x8f')][_0x7cf9('0x27')]({'where':{'VoiceQueueId':_0x1cd6ae['params']['id'],'UserId':_0x1347c8},'transaction':_0x2ea73b});});}})[_0x7cf9('0x26')](function(){_0x1347c8[_0x7cf9('0x7d')](function(_0x12a9a5){socket[_0x7cf9('0x7e')](_0x7cf9('0x90'),{'UserId':_0x12a9a5,'VoiceQueueId':_0x5192b9['id']});});});});});});})[_0x7cf9('0x26')](respondWithStatusCode(_0x33198f,null))[_0x7cf9('0x4e')](handleError(_0x33198f,null));};exports[_0x7cf9('0x91')]=function(_0x2f4b13,_0x392348,_0x4e6d9b){var _0x1bfc5a,_0xfba8a8;return db['VoiceQueue'][_0x7cf9('0x2d')]({'where':{'id':_0x2f4b13[_0x7cf9('0x59')]['id']}})[_0x7cf9('0x26')](handleEntityNotFound(_0x392348,null))['then'](function(_0x6d8c70){if(_0x6d8c70){_0xfba8a8=_0x6d8c70;return _0x6d8c70[_0x7cf9('0x91')](_0x2f4b13[_0x7cf9('0x51')][_0x7cf9('0x80')],_[_0x7cf9('0x5a')](_0x2f4b13[_0x7cf9('0x51')],[_0x7cf9('0x80'),'id'])||{})[_0x7cf9('0x92')](function(_0x52b9c5){for(var _0x1b61f8=0x0;_0x1b61f8<_0x2f4b13[_0x7cf9('0x51')][_0x7cf9('0x80')]['length'];_0x1b61f8+=0x1){socket[_0x7cf9('0x7e')](_0x7cf9('0x7f'),{'UserId':Number(_0x2f4b13[_0x7cf9('0x51')][_0x7cf9('0x80')][_0x1b61f8]),'VoiceQueueId':Number(_0x2f4b13[_0x7cf9('0x59')]['id'])});}return _0x52b9c5;});}})[_0x7cf9('0x26')](function(_0x3d5f42){_0x1bfc5a=_0x3d5f42||[];if(_0xfba8a8){return db[_0x7cf9('0x6f')][_0x7cf9('0x67')]({'where':{'id':_0x2f4b13[_0x7cf9('0x51')]['ids']},'attributes':['id',_0x7cf9('0x2e'),_0x7cf9('0x70'),_0x7cf9('0x71'),'interface'],'raw':!![]});}})['then'](function(_0x1dc350){if(!_[_0x7cf9('0x8d')](_0x1dc350)){var _0x49589e=[];for(var _0x275ad0=0x0;_0x275ad0<_0x1dc350[_0x7cf9('0x41')];_0x275ad0++){if(_0x1dc350[_0x275ad0][_0x7cf9('0x70')]){_0x49589e['push'](db[_0x7cf9('0x8f')][_0x7cf9('0x79')]({'membername':_0x1dc350[_0x275ad0]['name'],'UserId':_0x1dc350[_0x275ad0]['id'],'queue_name':_0xfba8a8['name'],'VoiceQueueId':_0xfba8a8['id'],'interface':_[_0x7cf9('0x93')](_0x1dc350[_0x275ad0][_0x7cf9('0x72')])?util['format'](_0x7cf9('0x7c'),_0x1dc350[_0x275ad0][_0x7cf9('0x2e')]):_0x1dc350[_0x275ad0][_0x7cf9('0x72')],'paused':_0x1dc350[_0x275ad0][_0x7cf9('0x71')]||![],'penalty':_0x2f4b13[_0x7cf9('0x51')][_0x7cf9('0x75')]||0x0}));}}return BPromise[_0x7cf9('0x94')](_0x49589e);}})['then'](function(){return _0x1bfc5a;})[_0x7cf9('0x26')](respondWithResult(_0x392348,null))[_0x7cf9('0x4e')](handleError(_0x392348,null));};exports[_0x7cf9('0x8e')]=function(_0x3c9339,_0x37a128,_0x3b33bf){return db[_0x7cf9('0x4a')]['find']({'where':{'id':_0x3c9339[_0x7cf9('0x59')]['id']}})['then'](handleEntityNotFound(_0x37a128,null))[_0x7cf9('0x26')](function(_0x4945f8){if(_0x4945f8){return _0x4945f8[_0x7cf9('0x8e')](_0x3c9339['query'][_0x7cf9('0x80')])[_0x7cf9('0x26')](function(){if(_['isArray'](_0x3c9339[_0x7cf9('0x3b')]['ids'])){for(var _0x469933=0x0;_0x469933<_0x3c9339[_0x7cf9('0x3b')][_0x7cf9('0x80')][_0x7cf9('0x41')];_0x469933+=0x1){socket[_0x7cf9('0x7e')]('userVoiceQueue:remove',{'UserId':Number(_0x3c9339[_0x7cf9('0x3b')]['ids'][_0x469933]),'VoiceQueueId':Number(_0x3c9339[_0x7cf9('0x59')]['id'])});}}else{socket[_0x7cf9('0x7e')](_0x7cf9('0x90'),{'UserId':Number(_0x3c9339['query'][_0x7cf9('0x80')]),'VoiceQueueId':Number(_0x3c9339[_0x7cf9('0x59')]['id'])});}});}})['then'](function(_0x31e9b7){return db['UserVoiceQueueRt'][_0x7cf9('0x27')]({'where':{'VoiceQueueId':_0x3c9339[_0x7cf9('0x59')]['id'],'UserId':_0x3c9339[_0x7cf9('0x3b')]['ids']}})['then'](function(){return _0x31e9b7;});})[_0x7cf9('0x26')](respondWithStatusCode(_0x37a128,null))['catch'](handleError(_0x37a128,null));};exports[_0x7cf9('0x95')]=function(_0x460464,_0x2f33a5,_0x669fe1){var _0x155417={};var _0x5226b5={};var _0x522633;var _0x3da284;return db['VoiceQueue'][_0x7cf9('0x61')]({'where':{'id':_0x460464[_0x7cf9('0x59')]['id']}})[_0x7cf9('0x26')](handleEntityNotFound(_0x2f33a5,null))[_0x7cf9('0x26')](function(_0x4cd354){if(_0x4cd354){_0x522633=_0x4cd354;_0x5226b5[_0x7cf9('0x3a')]=_['keys'](db['User'][_0x7cf9('0x36')]);_0x5226b5[_0x7cf9('0x3b')]=_['keys'](_0x460464[_0x7cf9('0x3b')]);_0x5226b5['filters']=_[_0x7cf9('0x3e')](_0x5226b5['model'],_0x5226b5[_0x7cf9('0x3b')]);_0x155417[_0x7cf9('0x3f')]=_[_0x7cf9('0x3e')](_0x5226b5['model'],qs[_0x7cf9('0x40')](_0x460464[_0x7cf9('0x3b')][_0x7cf9('0x40')]));_0x155417['attributes']=_0x155417[_0x7cf9('0x3f')][_0x7cf9('0x41')]?_0x155417[_0x7cf9('0x3f')]:_0x5226b5[_0x7cf9('0x3a')];_0x155417[_0x7cf9('0x44')]=qs['sort'](_0x460464[_0x7cf9('0x3b')]['sort']);_0x155417[_0x7cf9('0x47')]=qs[_0x7cf9('0x3d')](_[_0x7cf9('0x63')](_0x460464[_0x7cf9('0x3b')],_0x5226b5[_0x7cf9('0x3d')]));if(_0x460464[_0x7cf9('0x3b')][_0x7cf9('0x46')]){_0x155417[_0x7cf9('0x47')]=_[_0x7cf9('0x48')](_0x155417['where'],{'$or':_[_0x7cf9('0x35')](_0x155417[_0x7cf9('0x3f')],function(_0x48072e){var _0x57b119={};_0x57b119[_0x48072e]={'$like':'%'+_0x460464[_0x7cf9('0x3b')][_0x7cf9('0x46')]+'%'};return _0x57b119;})});}_0x155417=_[_0x7cf9('0x48')]({},_0x155417,_0x460464['options']);return _0x522633['getAgents'](_0x155417);}})[_0x7cf9('0x26')](function(_0x5090dc){if(_0x5090dc){_0x3da284=_0x5090dc[_0x7cf9('0x41')];if(!_0x460464[_0x7cf9('0x3b')]['hasOwnProperty']('nolimit')){_0x155417[_0x7cf9('0x1f')]=qs[_0x7cf9('0x1f')](_0x460464[_0x7cf9('0x3b')][_0x7cf9('0x1f')]);_0x155417[_0x7cf9('0x1d')]=qs[_0x7cf9('0x1d')](_0x460464[_0x7cf9('0x3b')]['offset']);}return _0x522633[_0x7cf9('0x95')](_0x155417);}})[_0x7cf9('0x26')](function(_0x5c506a){if(_0x5c506a){return _0x5c506a?{'count':_0x3da284,'rows':_0x5c506a}:null;}})['then'](respondWithResult(_0x2f33a5,null))[_0x7cf9('0x4e')](handleError(_0x2f33a5,null));};exports[_0x7cf9('0x96')]=function(_0x5e148f,_0x399193,_0xdcda87){var _0x529caa={};var _0x3c5ec7={};var _0x3c723a;var _0x4c357d;return db[_0x7cf9('0x4a')][_0x7cf9('0x61')]({'where':{'id':_0x5e148f[_0x7cf9('0x59')]['id']}})[_0x7cf9('0x26')](handleEntityNotFound(_0x399193,null))[_0x7cf9('0x26')](function(_0x4997de){if(_0x4997de){_0x3c723a=_0x4997de;_0x3c5ec7[_0x7cf9('0x3a')]=_[_0x7cf9('0x3c')](db[_0x7cf9('0x8f')][_0x7cf9('0x36')]);_0x3c5ec7[_0x7cf9('0x3b')]=_[_0x7cf9('0x3c')](_0x5e148f[_0x7cf9('0x3b')]);_0x3c5ec7['filters']=_[_0x7cf9('0x3e')](_0x3c5ec7[_0x7cf9('0x3a')],_0x3c5ec7[_0x7cf9('0x3b')]);_0x529caa[_0x7cf9('0x3f')]=_['intersection'](_0x3c5ec7[_0x7cf9('0x3a')],qs[_0x7cf9('0x40')](_0x5e148f[_0x7cf9('0x3b')]['fields']));_0x529caa['attributes']=_0x529caa['attributes'][_0x7cf9('0x41')]?_0x529caa[_0x7cf9('0x3f')]:_0x3c5ec7[_0x7cf9('0x3a')];_0x529caa[_0x7cf9('0x44')]=qs[_0x7cf9('0x45')](_0x5e148f['query'][_0x7cf9('0x45')]);_0x529caa[_0x7cf9('0x47')]=qs[_0x7cf9('0x3d')](_[_0x7cf9('0x63')](_0x5e148f[_0x7cf9('0x3b')],_0x3c5ec7['filters']));if(_0x5e148f[_0x7cf9('0x3b')]['filter']){_0x529caa['where']=_[_0x7cf9('0x48')](_0x529caa[_0x7cf9('0x47')],{'$or':_['map'](_0x529caa['attributes'],function(_0x5eef3c){var _0x32ff88={};_0x32ff88[_0x5eef3c]={'$like':'%'+_0x5e148f[_0x7cf9('0x3b')][_0x7cf9('0x46')]+'%'};return _0x32ff88;})});}_0x529caa=_[_0x7cf9('0x48')]({},_0x529caa,_0x5e148f[_0x7cf9('0x49')]);return _0x3c723a[_0x7cf9('0x96')](_0x529caa);}})[_0x7cf9('0x26')](function(_0x2e2476){if(_0x2e2476){_0x4c357d=_0x2e2476[_0x7cf9('0x41')];if(!_0x5e148f[_0x7cf9('0x3b')][_0x7cf9('0x42')](_0x7cf9('0x43'))){_0x529caa['limit']=qs['limit'](_0x5e148f['query'][_0x7cf9('0x1f')]);_0x529caa[_0x7cf9('0x1d')]=qs[_0x7cf9('0x1d')](_0x5e148f[_0x7cf9('0x3b')][_0x7cf9('0x1d')]);}return _0x3c723a[_0x7cf9('0x96')](_0x529caa);}})['then'](function(_0x5a8950){return _0x5a8950?{'count':_0x4c357d,'rows':_0x5a8950}:null;})['then'](respondWithResult(_0x399193,null))[_0x7cf9('0x4e')](handleError(_0x399193,null));};exports[_0x7cf9('0x97')]=function(_0x293f6b,_0x17d718,_0x386cbe){var _0x252092={};var _0x311bf7={};var _0x3e07a2;var _0x19f6bd;return db[_0x7cf9('0x4a')][_0x7cf9('0x61')]({'where':{'id':_0x293f6b['params']['id']}})['then'](handleEntityNotFound(_0x17d718,null))['then'](function(_0xe39a9d){if(_0xe39a9d){_0x3e07a2=_0xe39a9d;_0x311bf7['model']=_['keys'](db['CmList']['rawAttributes']);_0x311bf7['query']=_[_0x7cf9('0x3c')](_0x293f6b[_0x7cf9('0x3b')]);_0x311bf7[_0x7cf9('0x3d')]=_[_0x7cf9('0x3e')](_0x311bf7['model'],_0x311bf7[_0x7cf9('0x3b')]);_0x252092[_0x7cf9('0x3f')]=_['intersection'](_0x311bf7['model'],qs[_0x7cf9('0x40')](_0x293f6b['query'][_0x7cf9('0x40')]));_0x252092[_0x7cf9('0x3f')]=_0x252092[_0x7cf9('0x3f')]['length']?_0x252092['attributes']:_0x311bf7['model'];_0x252092['order']=qs[_0x7cf9('0x45')](_0x293f6b['query'][_0x7cf9('0x45')]);_0x252092[_0x7cf9('0x47')]=qs[_0x7cf9('0x3d')](_[_0x7cf9('0x63')](_0x293f6b[_0x7cf9('0x3b')],_0x311bf7[_0x7cf9('0x3d')]));if(_0x293f6b[_0x7cf9('0x3b')][_0x7cf9('0x46')]){_0x252092[_0x7cf9('0x47')]=_['merge'](_0x252092[_0x7cf9('0x47')],{'$or':_[_0x7cf9('0x35')](_0x252092[_0x7cf9('0x3f')],function(_0x123990){var _0x3a06bb={};_0x3a06bb[_0x123990]={'$like':'%'+_0x293f6b[_0x7cf9('0x3b')]['filter']+'%'};return _0x3a06bb;})});}_0x252092=_[_0x7cf9('0x48')]({},_0x252092,_0x293f6b[_0x7cf9('0x49')]);return _0x3e07a2[_0x7cf9('0x97')](_0x252092);}})[_0x7cf9('0x26')](function(_0x3e5665){if(_0x3e5665){_0x19f6bd=_0x3e5665[_0x7cf9('0x41')];if(!_0x293f6b[_0x7cf9('0x3b')][_0x7cf9('0x42')](_0x7cf9('0x43'))){_0x252092['limit']=qs['limit'](_0x293f6b[_0x7cf9('0x3b')][_0x7cf9('0x1f')]);_0x252092[_0x7cf9('0x1d')]=qs[_0x7cf9('0x1d')](_0x293f6b[_0x7cf9('0x3b')][_0x7cf9('0x1d')]);}return _0x3e07a2[_0x7cf9('0x97')](_0x252092);}})['then'](function(_0x17923e){if(_0x17923e){return _0x17923e?{'count':_0x19f6bd,'rows':_0x17923e}:null;}})[_0x7cf9('0x26')](respondWithResult(_0x17d718,null))[_0x7cf9('0x4e')](handleError(_0x17d718,null));};exports[_0x7cf9('0x98')]=function(_0x2f5b5b,_0x2a250f,_0x1c42b0){var _0x443b22,_0x3ba60c;return db['VoiceQueue']['find']({'where':{'id':_0x2f5b5b['params']['id']}})[_0x7cf9('0x26')](handleEntityNotFound(_0x2a250f,null))[_0x7cf9('0x26')](function(_0x524699){if(_0x524699){_0x3ba60c=_0x524699;return _0x524699['addLists'](_0x2f5b5b[_0x7cf9('0x51')]['ids'],_['omit'](_0x2f5b5b[_0x7cf9('0x51')],[_0x7cf9('0x80'),'id'])||{});}return null;})[_0x7cf9('0x92')](function(_0x460259){var _0x481e43;_0x443b22=_0x460259||[];var _0x37a13a=[];if(_0x460259){for(var _0x42cd82=0x0;_0x42cd82<_0x460259[_0x7cf9('0x41')];_0x42cd82+=0x1){var _0x1188c5=_0x460259[_0x42cd82]['get']({'plain':!![]});_0x3ba60c['dialCheckDuplicateType']=_0x2f5b5b[_0x7cf9('0x51')][_0x7cf9('0x99')]?_0x2f5b5b[_0x7cf9('0x51')][_0x7cf9('0x99')]:_0x3ba60c[_0x7cf9('0x99')];switch(_0x3ba60c['dialCheckDuplicateType']){case _0x7cf9('0x9a'):_0x481e43=squel[_0x7cf9('0x9b')]()[_0x7cf9('0x9c')](_0x7cf9('0x9d'))['fromQuery']([_0x7cf9('0x9e'),'scheduledAt',_0x7cf9('0x9f'),'ListId',_0x7cf9('0x64'),'createdAt','updatedAt'],squel['select']()[_0x7cf9('0xa0')]('phone',_0x7cf9('0x9e'))[_0x7cf9('0xa0')](_0x7cf9('0xa1'),_0x7cf9('0xa2'))[_0x7cf9('0xa0')]('id','ContactId')[_0x7cf9('0xa0')](_0x1188c5[_0x7cf9('0xa3')][_0x7cf9('0x88')](),_0x7cf9('0xa4'))[_0x7cf9('0xa0')](_0x2f5b5b['params']['id'][_0x7cf9('0x88')](),_0x7cf9('0x64'))[_0x7cf9('0xa0')](_0x7cf9('0xa1'),_0x7cf9('0x5c'))[_0x7cf9('0xa0')](_0x7cf9('0xa1'),'updatedAt')[_0x7cf9('0x82')](_0x7cf9('0xa5'))[_0x7cf9('0x47')](_0x7cf9('0xa6'))[_0x7cf9('0x47')](_0x7cf9('0xa7'),_0x1188c5[_0x7cf9('0xa3')][_0x7cf9('0x88')]())[_0x7cf9('0x47')](_0x7cf9('0xa8'))['where'](_0x7cf9('0xa9'),squel[_0x7cf9('0x81')]()['field'](_0x7cf9('0xaa'))[_0x7cf9('0x82')]('cm_hopper_final')[_0x7cf9('0x47')](_0x7cf9('0xab'),_0x2f5b5b[_0x7cf9('0x59')]['id'][_0x7cf9('0x88')]()))[_0x7cf9('0x47')](_0x7cf9('0xa9'),squel[_0x7cf9('0x81')]()[_0x7cf9('0xa0')]('COALESCE(phone,\x27\x27)')['from'](_0x7cf9('0x9d'))[_0x7cf9('0x47')](_0x7cf9('0xab'),_0x2f5b5b[_0x7cf9('0x59')]['id'][_0x7cf9('0x88')]())))[_0x7cf9('0x88')]();break;case _0x7cf9('0xac'):_0x481e43=squel[_0x7cf9('0x9b')]()[_0x7cf9('0x9c')](_0x7cf9('0x9d'))[_0x7cf9('0xad')]([_0x7cf9('0x9e'),_0x7cf9('0xa2'),_0x7cf9('0x9f'),_0x7cf9('0xa4'),'VoiceQueueId','createdAt',_0x7cf9('0x5b')],squel[_0x7cf9('0x81')]()[_0x7cf9('0xa0')](_0x7cf9('0x9e'),_0x7cf9('0x9e'))[_0x7cf9('0xa0')](_0x7cf9('0xa1'),_0x7cf9('0xa2'))[_0x7cf9('0xa0')]('id','ContactId')[_0x7cf9('0xa0')](_0x1188c5[_0x7cf9('0xa3')]['toString'](),'ListId')['field'](_0x2f5b5b[_0x7cf9('0x59')]['id'][_0x7cf9('0x88')](),'VoiceQueueId')[_0x7cf9('0xa0')]('NOW()',_0x7cf9('0x5c'))['field']('NOW()',_0x7cf9('0x5b'))[_0x7cf9('0x82')]('cm_contacts')[_0x7cf9('0x47')](_0x7cf9('0xa6'))[_0x7cf9('0x47')]('ListId\x20=\x20?',_0x1188c5[_0x7cf9('0xa3')]['toString']())[_0x7cf9('0x47')]('phone\x20IS\x20NOT\x20NULL')[_0x7cf9('0x47')](_0x7cf9('0xa9'),squel['select']()[_0x7cf9('0xa0')](_0x7cf9('0xae'))[_0x7cf9('0x82')]('cm_hopper')[_0x7cf9('0x47')](_0x7cf9('0xab'),_0x2f5b5b[_0x7cf9('0x59')]['id'][_0x7cf9('0x88')]())))[_0x7cf9('0x88')]();break;default:_0x481e43=squel[_0x7cf9('0x9b')]()[_0x7cf9('0x9c')](_0x7cf9('0x9d'))['fromQuery']([_0x7cf9('0x9e'),_0x7cf9('0xa2'),_0x7cf9('0x9f'),'ListId',_0x7cf9('0x64'),_0x7cf9('0x5c'),_0x7cf9('0x5b')],squel['select']()[_0x7cf9('0xa0')](_0x7cf9('0x9e'),'phone')[_0x7cf9('0xa0')](_0x7cf9('0xa1'),'scheduledAt')['field']('id',_0x7cf9('0x9f'))['field'](_0x1188c5[_0x7cf9('0xa3')][_0x7cf9('0x88')](),_0x7cf9('0xa4'))['field'](_0x2f5b5b[_0x7cf9('0x59')]['id']['toString'](),_0x7cf9('0x64'))[_0x7cf9('0xa0')](_0x7cf9('0xa1'),'createdAt')[_0x7cf9('0xa0')](_0x7cf9('0xa1'),_0x7cf9('0x5b'))[_0x7cf9('0x82')](_0x7cf9('0xa5'))['where'](_0x7cf9('0xa6'))[_0x7cf9('0x47')](_0x7cf9('0xa7'),_0x1188c5[_0x7cf9('0xa3')]['toString']())[_0x7cf9('0x47')](_0x7cf9('0xa8')))[_0x7cf9('0x88')]();}_0x37a13a[_0x7cf9('0x87')](db[_0x7cf9('0x76')][_0x7cf9('0x3b')](_0x481e43));}return BPromise['all'](_0x37a13a);}})[_0x7cf9('0x26')](function(){return _0x443b22;})[_0x7cf9('0x26')](respondWithResult(_0x2a250f,null))['catch'](handleError(_0x2a250f,null));};exports[_0x7cf9('0xaf')]=function(_0x2b8cb3,_0x4a8fb3,_0x5d6f1c){return db[_0x7cf9('0x4a')][_0x7cf9('0x2d')]({'where':{'id':_0x2b8cb3[_0x7cf9('0x59')]['id']}})[_0x7cf9('0x26')](handleEntityNotFound(_0x4a8fb3,null))[_0x7cf9('0x26')](function(_0x5b4cff){if(_0x5b4cff){return _0x5b4cff[_0x7cf9('0xaf')](_0x2b8cb3[_0x7cf9('0x3b')]['ids']);}})['then'](function(_0x15cad5){if(_0x15cad5){return db['CmHopper'][_0x7cf9('0x27')]({'where':{'ListId':_0x2b8cb3[_0x7cf9('0x3b')]['ids'],'VoiceQueueId':_0x2b8cb3[_0x7cf9('0x59')]['id']}})[_0x7cf9('0x26')](function(){return _0x15cad5;});}})['then'](respondWithStatusCode(_0x4a8fb3,null))[_0x7cf9('0x4e')](handleError(_0x4a8fb3,null));};exports['getBlackLists']=function(_0x212170,_0x5c5fea,_0x2fb527){var _0xe454c={};var _0x185eb0={};var _0x30971f;var _0x28b9bf;return db['VoiceQueue'][_0x7cf9('0x61')]({'where':{'id':_0x212170[_0x7cf9('0x59')]['id']}})[_0x7cf9('0x26')](handleEntityNotFound(_0x5c5fea,null))[_0x7cf9('0x26')](function(_0x2710d8){if(_0x2710d8){_0x30971f=_0x2710d8;_0x185eb0['model']=_[_0x7cf9('0x3c')](db[_0x7cf9('0xb0')][_0x7cf9('0x36')]);_0x185eb0[_0x7cf9('0x3b')]=_[_0x7cf9('0x3c')](_0x212170[_0x7cf9('0x3b')]);_0x185eb0[_0x7cf9('0x3d')]=_['intersection'](_0x185eb0[_0x7cf9('0x3a')],_0x185eb0[_0x7cf9('0x3b')]);_0xe454c[_0x7cf9('0x3f')]=_[_0x7cf9('0x3e')](_0x185eb0[_0x7cf9('0x3a')],qs[_0x7cf9('0x40')](_0x212170[_0x7cf9('0x3b')][_0x7cf9('0x40')]));_0xe454c[_0x7cf9('0x3f')]=_0xe454c[_0x7cf9('0x3f')]['length']?_0xe454c[_0x7cf9('0x3f')]:_0x185eb0[_0x7cf9('0x3a')];_0xe454c[_0x7cf9('0x44')]=qs[_0x7cf9('0x45')](_0x212170['query']['sort']);_0xe454c['where']=qs[_0x7cf9('0x3d')](_['pick'](_0x212170['query'],_0x185eb0[_0x7cf9('0x3d')]));if(_0x212170[_0x7cf9('0x3b')][_0x7cf9('0x46')]){_0xe454c['where']=_[_0x7cf9('0x48')](_0xe454c[_0x7cf9('0x47')],{'$or':_[_0x7cf9('0x35')](_0xe454c['attributes'],function(_0x167ee8){var _0x3c839c={};_0x3c839c[_0x167ee8]={'$like':'%'+_0x212170[_0x7cf9('0x3b')][_0x7cf9('0x46')]+'%'};return _0x3c839c;})});}_0xe454c=_[_0x7cf9('0x48')]({},_0xe454c,_0x212170[_0x7cf9('0x49')]);return _0x30971f[_0x7cf9('0xb1')](_0xe454c);}})[_0x7cf9('0x26')](function(_0x1dc97c){if(_0x1dc97c){_0x28b9bf=_0x1dc97c[_0x7cf9('0x41')];if(!_0x212170[_0x7cf9('0x3b')]['hasOwnProperty'](_0x7cf9('0x43'))){_0xe454c['limit']=qs['limit'](_0x212170[_0x7cf9('0x3b')]['limit']);_0xe454c[_0x7cf9('0x1d')]=qs['offset'](_0x212170[_0x7cf9('0x3b')][_0x7cf9('0x1d')]);}return _0x30971f[_0x7cf9('0xb1')](_0xe454c);}})[_0x7cf9('0x26')](function(_0x5e8ee4){if(_0x5e8ee4){return _0x5e8ee4?{'count':_0x28b9bf,'rows':_0x5e8ee4}:null;}})[_0x7cf9('0x26')](respondWithResult(_0x5c5fea,null))[_0x7cf9('0x4e')](handleError(_0x5c5fea,null));};exports[_0x7cf9('0xb2')]=function(_0x5b6144,_0x5ded69,_0x13b3d7){var _0x5a1d66,_0x2bb1f5;return db[_0x7cf9('0x4a')]['find']({'where':{'id':_0x5b6144[_0x7cf9('0x59')]['id']}})['then'](handleEntityNotFound(_0x5ded69,null))[_0x7cf9('0x26')](function(_0x5a7b19){if(_0x5a7b19){_0x2bb1f5=_0x5a7b19;return _0x5a7b19[_0x7cf9('0xb2')](_0x5b6144['body'][_0x7cf9('0x80')],_[_0x7cf9('0x5a')](_0x5b6144['body'],[_0x7cf9('0x80'),'id'])||{});}return null;})['spread'](function(_0x40a631){var _0xa5f67b;_0x5a1d66=_0x40a631||[];var _0x1270f5=[];if(_0x40a631){for(var _0x4272eb=0x0;_0x4272eb<_0x40a631[_0x7cf9('0x41')];_0x4272eb+=0x1){var _0x798979=_0x40a631[_0x4272eb][_0x7cf9('0x28')]({'plain':!![]});_0xa5f67b=squel[_0x7cf9('0x9b')]()['into'](_0x7cf9('0xb3'))['fromQuery']([_0x7cf9('0x9e'),_0x7cf9('0x9f'),_0x7cf9('0xa4'),_0x7cf9('0x64'),_0x7cf9('0x5c'),'updatedAt'],squel['select']()[_0x7cf9('0xa0')]('phone',_0x7cf9('0x9e'))[_0x7cf9('0xa0')]('id',_0x7cf9('0x9f'))[_0x7cf9('0xa0')](_0x798979[_0x7cf9('0xa3')][_0x7cf9('0x88')](),_0x7cf9('0xa4'))[_0x7cf9('0xa0')](_0x5b6144[_0x7cf9('0x59')]['id']['toString'](),_0x7cf9('0x64'))['field'](_0x7cf9('0xa1'),_0x7cf9('0x5c'))['field'](_0x7cf9('0xa1'),_0x7cf9('0x5b'))[_0x7cf9('0x82')](_0x7cf9('0xa5'))[_0x7cf9('0x47')](_0x7cf9('0xa6'))[_0x7cf9('0x47')](_0x7cf9('0xa7'),_0x798979[_0x7cf9('0xa3')][_0x7cf9('0x88')]())[_0x7cf9('0x47')](_0x7cf9('0xa8')))[_0x7cf9('0x88')]();_0x1270f5[_0x7cf9('0x87')](db[_0x7cf9('0x76')][_0x7cf9('0x3b')](_0xa5f67b));}return BPromise[_0x7cf9('0x94')](_0x1270f5);}})[_0x7cf9('0x26')](function(){return _0x5a1d66;})['then'](respondWithResult(_0x5ded69,null))[_0x7cf9('0x4e')](handleError(_0x5ded69,null));};exports['removeBlackLists']=function(_0x160237,_0x4f11f5,_0xac8234){return db['VoiceQueue']['find']({'where':{'id':_0x160237[_0x7cf9('0x59')]['id']}})['then'](handleEntityNotFound(_0x4f11f5,null))[_0x7cf9('0x26')](function(_0x5d1203){if(_0x5d1203){return _0x5d1203[_0x7cf9('0xb4')](_0x160237['query'][_0x7cf9('0x80')]);}})[_0x7cf9('0x26')](function(_0x3a603d){if(_0x3a603d){return db[_0x7cf9('0x6a')][_0x7cf9('0x27')]({'where':{'ListId':_0x160237['query'][_0x7cf9('0x80')],'VoiceQueueId':_0x160237[_0x7cf9('0x59')]['id']}})[_0x7cf9('0x26')](function(){return _0x3a603d;});}})[_0x7cf9('0x26')](respondWithStatusCode(_0x4f11f5,null))[_0x7cf9('0x4e')](handleError(_0x4f11f5,null));};
\ No newline at end of file
+var _0x1f56=['getTeams','Team','addTeams','teams','User','interface','Agents','forEach','penalty','sequelize','each','upsert','UserVoiceQueue','findOrCreate','UserVoiceQueueRt','isNil','format','SIP/%s','voicePause','emit','userVoiceQueue:save','removeTeams','ids','from','team_has_voice_queues','join','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','VoiceQueueId\x20=\x20?','ut.UserId\x20=\x20?','push','QueryTypes','TeamId','union','compact','isEmpty','userVoiceQueue:remove','addAgents','spread','all','getAgents','getMembers','getLists','CmList','addLists','dialCheckDuplicateType','always','insert','into','fromQuery','scheduledAt','ListId','field','phone','ContactId','toString','NOW()','deletedAt\x20IS\x20NULL','ListId\x20=\x20?','CmListId','phone\x20IS\x20NOT\x20NULL','phone\x20NOT\x20IN\x20(?)','COALESCE(calleridnum,\x27\x27)','cm_hopper_final','select','COALESCE(phone,\x27\x27)','cm_hopper','onlyIfOpen','cm_contacts','removeLists','getBlackLists','addBlackLists','removeBlackLists','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','ejs','fs-extra','squel','crypto','jsforce','to-csv','querystring','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./voiceQueue.socket','register','sendStatus','status','json','undefined','count','offset','Content-Range','reject','save','update','then','get','VoiceQueues','inbound','QueueCampaigns','outbound','filter','ignore','map','value','includes','find','name','UserProfileResource','error','stack','VoiceQueue','fieldName','type','key','model','query','filters','attributes','fields','length','hasOwnProperty','limit','order','sort','where','pick','VIRTUAL','include','findAll','catch','show','rawAttributes','keys','intersection','merge','options','create','user','role','UserProfileSection','userProfileId','autoAssociation','clone','includeAll','omit','createdAt','body','updatedAt','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','destroy','params','findOne','nolimit','VoiceQueueId','CmHopper','rows','CmHopperHistory','getHopperFinals','CmHopperFinal','getHopperBlacks','CmHopperBlack'];(function(_0xbc4659,_0x578fba){var _0x5831f9=function(_0x5eb0eb){while(--_0x5eb0eb){_0xbc4659['push'](_0xbc4659['shift']());}};_0x5831f9(++_0x578fba);}(_0x1f56,0x1af));var _0x61f5=function(_0x1fffd6,_0x4e67c3){_0x1fffd6=_0x1fffd6-0x0;var _0x5a39f8=_0x1f56[_0x1fffd6];return _0x5a39f8;};'use strict';var emlformat=require(_0x61f5('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x61f5('0x1'));var jsonpatch=require(_0x61f5('0x2'));var rp=require(_0x61f5('0x3'));var moment=require(_0x61f5('0x4'));var BPromise=require(_0x61f5('0x5'));var Mustache=require(_0x61f5('0x6'));var util=require(_0x61f5('0x7'));var path=require('path');var sox=require(_0x61f5('0x8'));var csv=require('to-csv');var ejs=require(_0x61f5('0x9'));var fs=require('fs');var fs_extra=require(_0x61f5('0xa'));var _=require('lodash');var squel=require(_0x61f5('0xb'));var crypto=require(_0x61f5('0xc'));var jsforce=require(_0x61f5('0xd'));var deskjs=require('desk.js');var toCsv=require(_0x61f5('0xe'));var querystring=require(_0x61f5('0xf'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x61f5('0x10'));var as=require(_0x61f5('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x61f5('0x12'))(_0x61f5('0x13'));var utils=require(_0x61f5('0x14'));var config=require(_0x61f5('0x15'));var licenseUtil=require('../../config/license/util');var db=require(_0x61f5('0x16'))['db'];config[_0x61f5('0x17')]=_[_0x61f5('0x18')](config['redis'],{'host':_0x61f5('0x19'),'port':0x18eb});var socket=require(_0x61f5('0x1a'))(new Redis(config[_0x61f5('0x17')]));require(_0x61f5('0x1b'))[_0x61f5('0x1c')](socket);function respondWithStatusCode(_0x1a869c,_0x184ded){_0x184ded=_0x184ded||0xcc;return function(_0x370983){if(_0x370983){return _0x1a869c[_0x61f5('0x1d')](_0x184ded);}return _0x1a869c[_0x61f5('0x1e')](_0x184ded)['end']();};}function respondWithResult(_0x5eda0c,_0x5746cf){_0x5746cf=_0x5746cf||0xc8;return function(_0x5a0e1e){if(_0x5a0e1e){return _0x5eda0c[_0x61f5('0x1e')](_0x5746cf)[_0x61f5('0x1f')](_0x5a0e1e);}};}function respondWithFilteredResult(_0x363beb,_0x4e39ac){return function(_0x54bacd){if(_0x54bacd){var _0xa641e9=typeof _0x4e39ac['offset']===_0x61f5('0x20')&&typeof _0x4e39ac['limit']===_0x61f5('0x20');var _0x3a5302=_0x54bacd[_0x61f5('0x21')];var _0x396b64=_0xa641e9?0x0:_0x4e39ac[_0x61f5('0x22')];var _0x583a57=_0xa641e9?_0x54bacd[_0x61f5('0x21')]:_0x4e39ac['offset']+_0x4e39ac['limit'];var _0x433d24;if(_0x583a57>=_0x3a5302){_0x583a57=_0x3a5302;_0x433d24=0xc8;}else{_0x433d24=0xce;}_0x363beb[_0x61f5('0x1e')](_0x433d24);return _0x363beb['set'](_0x61f5('0x23'),_0x396b64+'-'+_0x583a57+'/'+_0x3a5302)[_0x61f5('0x1f')](_0x54bacd);}return null;};}function patchUpdates(_0x5470d2){return function(_0x4bef83){try{jsonpatch['apply'](_0x4bef83,_0x5470d2,!![]);}catch(_0x4cbbeb){return BPromise[_0x61f5('0x24')](_0x4cbbeb);}return _0x4bef83[_0x61f5('0x25')]();};}function saveUpdates(_0x4ef0e7,_0x4643ab){return function(_0x14f204){if(_0x14f204){return _0x14f204[_0x61f5('0x26')](_0x4ef0e7)[_0x61f5('0x27')](function(_0x44da84){return _0x44da84;});}return null;};}function removeEntity(_0x552ccf,_0x1e401d){return function(_0xac724){if(_0xac724){return _0xac724['destroy']()[_0x61f5('0x27')](function(){var _0x3a43c7=_0xac724[_0x61f5('0x28')]({'plain':!![]});var _0xe0f2b2=[{'name':_0x61f5('0x29'),'value':_0x61f5('0x2a'),'ignore':![]},{'name':_0x61f5('0x2b'),'value':_0x61f5('0x2c'),'ignore':![]}];var _0x493133=_(_0xe0f2b2)[_0x61f5('0x2d')](_0x61f5('0x2e'))[_0x61f5('0x2f')]('value')[_0x61f5('0x30')]();if(_[_0x61f5('0x31')](_0x493133,_0x3a43c7['type'])){return;}var _0x1d163f=_[_0x61f5('0x32')](_0xe0f2b2,[_0x61f5('0x30'),_0x3a43c7['type']])[_0x61f5('0x33')];return db[_0x61f5('0x34')]['destroy']({'where':{'type':_0x1d163f,'resourceId':_0x3a43c7['id']}})[_0x61f5('0x27')](function(){return _0xac724;});})[_0x61f5('0x27')](function(){_0x552ccf[_0x61f5('0x1e')](0xcc)['end']();});}};}function handleEntityNotFound(_0x422efe,_0x172e90){return function(_0x3dfdba){if(!_0x3dfdba){_0x422efe[_0x61f5('0x1d')](0x194);}return _0x3dfdba;};}function handleError(_0x49627e,_0x39b409){_0x39b409=_0x39b409||0x1f4;return function(_0x277683){logger[_0x61f5('0x35')](_0x277683[_0x61f5('0x36')]);if(_0x277683[_0x61f5('0x33')]){delete _0x277683[_0x61f5('0x33')];}_0x49627e[_0x61f5('0x1e')](_0x39b409)['send'](_0x277683);};}exports['index']=function(_0x2d120b,_0x49ef57){var _0x31c5d4={},_0x6afcf6={},_0x245f4a={'count':0x0,'rows':[]};var _0x1ca9ed=_[_0x61f5('0x2f')](db[_0x61f5('0x37')]['rawAttributes'],function(_0x2e8b07){return{'name':_0x2e8b07[_0x61f5('0x38')],'type':_0x2e8b07[_0x61f5('0x39')][_0x61f5('0x3a')]};});_0x6afcf6[_0x61f5('0x3b')]=_['map'](_0x1ca9ed,'name');_0x6afcf6[_0x61f5('0x3c')]=_['keys'](_0x2d120b[_0x61f5('0x3c')]);_0x6afcf6[_0x61f5('0x3d')]=_['intersection'](_0x6afcf6[_0x61f5('0x3b')],_0x6afcf6[_0x61f5('0x3c')]);_0x31c5d4[_0x61f5('0x3e')]=_['intersection'](_0x6afcf6['model'],qs['fields'](_0x2d120b[_0x61f5('0x3c')][_0x61f5('0x3f')]));_0x31c5d4[_0x61f5('0x3e')]=_0x31c5d4[_0x61f5('0x3e')][_0x61f5('0x40')]?_0x31c5d4[_0x61f5('0x3e')]:_0x6afcf6[_0x61f5('0x3b')];if(!_0x2d120b[_0x61f5('0x3c')][_0x61f5('0x41')]('nolimit')){_0x31c5d4[_0x61f5('0x42')]=qs[_0x61f5('0x42')](_0x2d120b[_0x61f5('0x3c')][_0x61f5('0x42')]);_0x31c5d4[_0x61f5('0x22')]=qs[_0x61f5('0x22')](_0x2d120b[_0x61f5('0x3c')][_0x61f5('0x22')]);}_0x31c5d4[_0x61f5('0x43')]=qs['sort'](_0x2d120b[_0x61f5('0x3c')][_0x61f5('0x44')]);_0x31c5d4[_0x61f5('0x45')]=qs[_0x61f5('0x3d')](_[_0x61f5('0x46')](_0x2d120b[_0x61f5('0x3c')],_0x6afcf6[_0x61f5('0x3d')]),_0x1ca9ed);if(_0x2d120b['query']['filter']){_0x31c5d4[_0x61f5('0x45')]=_['merge'](_0x31c5d4[_0x61f5('0x45')],{'$or':_[_0x61f5('0x2f')](_0x1ca9ed,function(_0x3a2025){if(_0x3a2025[_0x61f5('0x39')]!==_0x61f5('0x47')){var _0x2b3b16={};_0x2b3b16[_0x3a2025[_0x61f5('0x33')]]={'$like':'%'+_0x2d120b['query'][_0x61f5('0x2d')]+'%'};return _0x2b3b16;}})});}_0x31c5d4=_['merge']({},_0x31c5d4,_0x2d120b['options']);var _0x395d20={'where':_0x31c5d4['where']};return db[_0x61f5('0x37')][_0x61f5('0x21')](_0x395d20)[_0x61f5('0x27')](function(_0x3881be){_0x245f4a[_0x61f5('0x21')]=_0x3881be;if(_0x2d120b[_0x61f5('0x3c')]['includeAll']){_0x31c5d4[_0x61f5('0x48')]=[{'all':!![]}];}return db['VoiceQueue'][_0x61f5('0x49')](_0x31c5d4);})[_0x61f5('0x27')](function(_0x529d6c){_0x245f4a['rows']=_0x529d6c;return _0x245f4a;})[_0x61f5('0x27')](respondWithFilteredResult(_0x49ef57,_0x31c5d4))[_0x61f5('0x4a')](handleError(_0x49ef57,null));};exports[_0x61f5('0x4b')]=function(_0x2312c4,_0x3fb84e){var _0x54738e={'raw':![],'where':{'id':_0x2312c4['params']['id']}},_0x5d1d16={};_0x5d1d16[_0x61f5('0x3b')]=_['keys'](db['VoiceQueue'][_0x61f5('0x4c')]);_0x5d1d16[_0x61f5('0x3c')]=_[_0x61f5('0x4d')](_0x2312c4[_0x61f5('0x3c')]);_0x5d1d16['filters']=_[_0x61f5('0x4e')](_0x5d1d16['model'],_0x5d1d16[_0x61f5('0x3c')]);_0x54738e[_0x61f5('0x3e')]=_[_0x61f5('0x4e')](_0x5d1d16[_0x61f5('0x3b')],qs['fields'](_0x2312c4[_0x61f5('0x3c')][_0x61f5('0x3f')]));_0x54738e['attributes']=_0x54738e[_0x61f5('0x3e')][_0x61f5('0x40')]?_0x54738e[_0x61f5('0x3e')]:_0x5d1d16[_0x61f5('0x3b')];if(_0x2312c4[_0x61f5('0x3c')]['includeAll']){_0x54738e['include']=[{'all':!![]}];}_0x54738e=_[_0x61f5('0x4f')]({},_0x54738e,_0x2312c4[_0x61f5('0x50')]);return db['VoiceQueue'][_0x61f5('0x32')](_0x54738e)[_0x61f5('0x27')](handleEntityNotFound(_0x3fb84e,null))[_0x61f5('0x27')](respondWithResult(_0x3fb84e,null))[_0x61f5('0x4a')](handleError(_0x3fb84e,null));};exports['create']=function(_0x4c0af6,_0x23eff2){return db[_0x61f5('0x37')][_0x61f5('0x51')](_0x4c0af6['body'],{})[_0x61f5('0x27')](function(_0x2be48b){var _0x5dea22=_0x4c0af6[_0x61f5('0x52')][_0x61f5('0x28')]({'plain':!![]});if(!_0x5dea22)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x5dea22[_0x61f5('0x53')]==='user'){var _0x12abd8=_0x2be48b[_0x61f5('0x28')]({'plain':!![]});var _0x5f5149=[{'name':'VoiceQueues','value':_0x61f5('0x2a')},{'name':_0x61f5('0x2b'),'value':_0x61f5('0x2c')}];var _0x526c96=_[_0x61f5('0x32')](_0x5f5149,[_0x61f5('0x30'),_0x12abd8['type']])[_0x61f5('0x33')];return db[_0x61f5('0x54')][_0x61f5('0x32')]({'where':{'name':_0x526c96,'userProfileId':_0x5dea22[_0x61f5('0x55')]},'raw':!![]})[_0x61f5('0x27')](function(_0x3aa422){if(_0x3aa422&&_0x3aa422[_0x61f5('0x56')]===0x0){return db[_0x61f5('0x34')][_0x61f5('0x51')]({'name':_0x12abd8[_0x61f5('0x33')],'resourceId':_0x12abd8['id'],'type':_0x3aa422[_0x61f5('0x33')],'sectionId':_0x3aa422['id']},{})[_0x61f5('0x27')](function(){return _0x2be48b;});}else{return _0x2be48b;}})[_0x61f5('0x4a')](function(_0x1b2055){logger[_0x61f5('0x35')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x1b2055);throw _0x1b2055;});}return _0x2be48b;})[_0x61f5('0x27')](respondWithResult(_0x23eff2,0xc9))['catch'](handleError(_0x23eff2,null));};exports[_0x61f5('0x57')]=function(_0x358bec,_0x4036ba){var _0x8183b5={'where':{'id':_0x358bec['params']['id']}},_0x4cd170={};_0x4cd170[_0x61f5('0x3b')]=_[_0x61f5('0x4d')](db[_0x61f5('0x37')][_0x61f5('0x4c')]);_0x8183b5[_0x61f5('0x3e')]=_[_0x61f5('0x4e')](_0x4cd170[_0x61f5('0x3b')],qs[_0x61f5('0x3f')](_0x358bec['query'][_0x61f5('0x3f')]));_0x8183b5['attributes']=_0x8183b5[_0x61f5('0x3e')][_0x61f5('0x40')]?_0x8183b5[_0x61f5('0x3e')]:_0x4cd170[_0x61f5('0x3b')];if(_0x358bec[_0x61f5('0x3c')][_0x61f5('0x58')]){_0x8183b5['include']=[{'all':!![]}];}_0x8183b5=_[_0x61f5('0x4f')]({},_0x8183b5,_0x358bec[_0x61f5('0x50')]);return db['VoiceQueue'][_0x61f5('0x32')](_0x8183b5)[_0x61f5('0x27')](handleEntityNotFound(_0x4036ba,null))[_0x61f5('0x27')](function(_0x2d7a26){if(_0x2d7a26){var _0x30cae5=_0x2d7a26[_0x61f5('0x28')]({'plain':!![]});_0x30cae5=qs[_0x61f5('0x59')](_0x30cae5,['id',_0x61f5('0x5a'),'updatedAt']);_0x358bec[_0x61f5('0x5b')]=_[_0x61f5('0x59')](_0x358bec[_0x61f5('0x5b')],['id',_0x61f5('0x5a'),_0x61f5('0x5c')]);return db['VoiceQueue'][_0x61f5('0x51')](_[_0x61f5('0x4f')](_0x30cae5,_0x358bec['body']),{'include':_0x358bec[_0x61f5('0x3c')][_0x61f5('0x58')]?[{'all':!![]}]:undefined})['then'](function(_0x3d3501){var _0x57aea9=_0x358bec['user'][_0x61f5('0x28')]({'plain':!![]});if(!_0x57aea9)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x57aea9[_0x61f5('0x53')]===_0x61f5('0x52')){var _0x148f45=_0x3d3501[_0x61f5('0x28')]({'plain':!![]});var _0x1f4f32=[{'name':_0x61f5('0x29'),'value':'inbound'},{'name':'QueueCampaigns','value':_0x61f5('0x2c')}];var _0x4da328=_[_0x61f5('0x32')](_0x1f4f32,[_0x61f5('0x30'),_0x148f45[_0x61f5('0x39')]])[_0x61f5('0x33')];return db['UserProfileSection'][_0x61f5('0x32')]({'where':{'name':_0x4da328,'userProfileId':_0x57aea9[_0x61f5('0x55')]},'raw':!![]})[_0x61f5('0x27')](function(_0x3b3495){if(_0x3b3495&&_0x3b3495[_0x61f5('0x56')]===0x0){return db['UserProfileResource']['create']({'name':_0x148f45[_0x61f5('0x33')],'resourceId':_0x148f45['id'],'type':_0x3b3495[_0x61f5('0x33')],'sectionId':_0x3b3495['id']},{})[_0x61f5('0x27')](function(){return _0x3d3501;});}else{return _0x3d3501;}})[_0x61f5('0x4a')](function(_0x4409c6){logger[_0x61f5('0x35')](_0x61f5('0x5d'),_0x4409c6);throw _0x4409c6;});}return _0x3d3501;});}})['then'](respondWithResult(_0x4036ba,0xc9))[_0x61f5('0x4a')](handleError(_0x4036ba,null));};exports[_0x61f5('0x26')]=function(_0x57c1e9,_0x4730b3){if(_0x57c1e9[_0x61f5('0x5b')]['id']){delete _0x57c1e9[_0x61f5('0x5b')]['id'];}return db[_0x61f5('0x37')][_0x61f5('0x32')]({'where':{'id':_0x57c1e9['params']['id']}})['then'](handleEntityNotFound(_0x4730b3,null))[_0x61f5('0x27')](saveUpdates(_0x57c1e9[_0x61f5('0x5b')],null))['then'](respondWithResult(_0x4730b3,null))[_0x61f5('0x4a')](handleError(_0x4730b3,null));};exports[_0x61f5('0x5e')]=function(_0x11d08a,_0x254e29){return db[_0x61f5('0x37')][_0x61f5('0x32')]({'where':{'id':_0x11d08a[_0x61f5('0x5f')]['id']}})[_0x61f5('0x27')](handleEntityNotFound(_0x254e29,null))['then'](removeEntity(_0x254e29,null))[_0x61f5('0x4a')](handleError(_0x254e29,null));};exports['getHoppers']=function(_0x10a2ea,_0x4c458f,_0x49c252){var _0x31a77c={'raw':![],'where':{}};var _0x108a1c={};var _0x285d72={'count':0x0,'rows':[]};return db[_0x61f5('0x37')][_0x61f5('0x60')]({'where':{'id':_0x10a2ea[_0x61f5('0x5f')]['id']}})[_0x61f5('0x27')](handleEntityNotFound(_0x4c458f,null))[_0x61f5('0x27')](function(_0x10e0e6){if(_0x10e0e6){_0x108a1c['model']=_[_0x61f5('0x4d')](db['CmHopper'][_0x61f5('0x4c')]);_0x108a1c[_0x61f5('0x3c')]=_['keys'](_0x10a2ea[_0x61f5('0x3c')]);_0x108a1c[_0x61f5('0x3d')]=_['intersection'](_0x108a1c[_0x61f5('0x3b')],_0x108a1c[_0x61f5('0x3c')]);_0x31a77c[_0x61f5('0x3e')]=_[_0x61f5('0x4e')](_0x108a1c[_0x61f5('0x3b')],qs[_0x61f5('0x3f')](_0x10a2ea['query']['fields']));_0x31a77c[_0x61f5('0x3e')]=_0x31a77c[_0x61f5('0x3e')][_0x61f5('0x40')]?_0x31a77c[_0x61f5('0x3e')]:_0x108a1c['model'];if(!_0x10a2ea[_0x61f5('0x3c')][_0x61f5('0x41')](_0x61f5('0x61'))){_0x31a77c[_0x61f5('0x42')]=qs[_0x61f5('0x42')](_0x10a2ea[_0x61f5('0x3c')][_0x61f5('0x42')]);_0x31a77c[_0x61f5('0x22')]=qs['offset'](_0x10a2ea[_0x61f5('0x3c')]['offset']);}_0x31a77c[_0x61f5('0x43')]=qs[_0x61f5('0x44')](_0x10a2ea[_0x61f5('0x3c')][_0x61f5('0x44')]);_0x31a77c[_0x61f5('0x45')]=qs['filters'](_[_0x61f5('0x46')](_0x10a2ea[_0x61f5('0x3c')],_0x108a1c['filters']));_0x31a77c[_0x61f5('0x45')][_0x61f5('0x62')]=_0x10e0e6['id'];if(_0x10a2ea[_0x61f5('0x3c')][_0x61f5('0x2d')]){_0x31a77c[_0x61f5('0x45')]=_[_0x61f5('0x4f')](_0x31a77c['where'],{'$or':_[_0x61f5('0x2f')](_0x31a77c[_0x61f5('0x3e')],function(_0xfb1377){var _0x499c71={};_0x499c71[_0xfb1377]={'$like':'%'+_0x10a2ea[_0x61f5('0x3c')]['filter']+'%'};return _0x499c71;})});}_0x31a77c=_[_0x61f5('0x4f')]({},_0x31a77c,_0x10a2ea[_0x61f5('0x50')]);return db[_0x61f5('0x63')]['count']({'where':_0x31a77c[_0x61f5('0x45')]})[_0x61f5('0x27')](function(_0x50235a){_0x285d72['count']=_0x50235a;if(_0x10a2ea[_0x61f5('0x3c')]['includeAll']){_0x31a77c['include']=[{'all':!![]}];}return db['CmHopper'][_0x61f5('0x49')](_0x31a77c);})[_0x61f5('0x27')](function(_0x5e555d){_0x285d72[_0x61f5('0x64')]=_0x5e555d;return _0x285d72;});}})[_0x61f5('0x27')](respondWithFilteredResult(_0x4c458f,_0x31a77c))[_0x61f5('0x4a')](handleError(_0x4c458f,null));};exports['getHopperHistories']=function(_0x117a48,_0x287eac,_0x3955b9){var _0x2942f3={'raw':!![],'where':{}};var _0x392809={};var _0x42d203={'count':0x0,'rows':[]};return db[_0x61f5('0x37')][_0x61f5('0x60')]({'where':{'id':_0x117a48['params']['id']}})[_0x61f5('0x27')](handleEntityNotFound(_0x287eac,null))[_0x61f5('0x27')](function(_0x3f958a){if(_0x3f958a){_0x392809[_0x61f5('0x3b')]=_['keys'](db['CmHopperHistory'][_0x61f5('0x4c')]);_0x392809[_0x61f5('0x3c')]=_[_0x61f5('0x4d')](_0x117a48[_0x61f5('0x3c')]);_0x392809['filters']=_[_0x61f5('0x4e')](_0x392809['model'],_0x392809['query']);_0x2942f3[_0x61f5('0x3e')]=_[_0x61f5('0x4e')](_0x392809[_0x61f5('0x3b')],qs['fields'](_0x117a48[_0x61f5('0x3c')][_0x61f5('0x3f')]));_0x2942f3[_0x61f5('0x3e')]=_0x2942f3[_0x61f5('0x3e')][_0x61f5('0x40')]?_0x2942f3[_0x61f5('0x3e')]:_0x392809[_0x61f5('0x3b')];if(!_0x117a48[_0x61f5('0x3c')]['hasOwnProperty'](_0x61f5('0x61'))){_0x2942f3[_0x61f5('0x42')]=qs[_0x61f5('0x42')](_0x117a48['query'][_0x61f5('0x42')]);_0x2942f3[_0x61f5('0x22')]=qs['offset'](_0x117a48[_0x61f5('0x3c')][_0x61f5('0x22')]);}_0x2942f3[_0x61f5('0x43')]=qs[_0x61f5('0x44')](_0x117a48['query'][_0x61f5('0x44')]);_0x2942f3[_0x61f5('0x45')]=qs[_0x61f5('0x3d')](_[_0x61f5('0x46')](_0x117a48[_0x61f5('0x3c')],_0x392809['filters']));_0x2942f3[_0x61f5('0x45')][_0x61f5('0x62')]=_0x3f958a['id'];if(_0x117a48[_0x61f5('0x3c')][_0x61f5('0x2d')]){_0x2942f3[_0x61f5('0x45')]=_['merge'](_0x2942f3[_0x61f5('0x45')],{'$or':_[_0x61f5('0x2f')](_0x2942f3['attributes'],function(_0x12e8c9){var _0x39014f={};_0x39014f[_0x12e8c9]={'$like':'%'+_0x117a48[_0x61f5('0x3c')][_0x61f5('0x2d')]+'%'};return _0x39014f;})});}_0x2942f3=_[_0x61f5('0x4f')]({},_0x2942f3,_0x117a48['options']);return db[_0x61f5('0x65')][_0x61f5('0x21')]({'where':_0x2942f3[_0x61f5('0x45')]})[_0x61f5('0x27')](function(_0x71dc6a){_0x42d203[_0x61f5('0x21')]=_0x71dc6a;if(_0x117a48[_0x61f5('0x3c')]['includeAll']){_0x2942f3[_0x61f5('0x48')]=[{'all':!![]}];}return db[_0x61f5('0x65')][_0x61f5('0x49')](_0x2942f3);})['then'](function(_0x4f23cc){_0x42d203[_0x61f5('0x64')]=_0x4f23cc;return _0x42d203;});}})[_0x61f5('0x27')](respondWithFilteredResult(_0x287eac,_0x2942f3))[_0x61f5('0x4a')](handleError(_0x287eac,null));};exports[_0x61f5('0x66')]=function(_0x5bf963,_0x2be89f,_0x544910){var _0x3c30c6={'raw':!![],'where':{}};var _0x20537c={};var _0xb26350={'count':0x0,'rows':[]};return db['VoiceQueue'][_0x61f5('0x60')]({'where':{'id':_0x5bf963[_0x61f5('0x5f')]['id']}})[_0x61f5('0x27')](handleEntityNotFound(_0x2be89f,null))['then'](function(_0xf3b46a){if(_0xf3b46a){_0x20537c[_0x61f5('0x3b')]=_[_0x61f5('0x4d')](db['CmHopperFinal']['rawAttributes']);_0x20537c[_0x61f5('0x3c')]=_['keys'](_0x5bf963['query']);_0x20537c[_0x61f5('0x3d')]=_[_0x61f5('0x4e')](_0x20537c[_0x61f5('0x3b')],_0x20537c['query']);_0x3c30c6[_0x61f5('0x3e')]=_['intersection'](_0x20537c['model'],qs['fields'](_0x5bf963[_0x61f5('0x3c')][_0x61f5('0x3f')]));_0x3c30c6['attributes']=_0x3c30c6[_0x61f5('0x3e')][_0x61f5('0x40')]?_0x3c30c6[_0x61f5('0x3e')]:_0x20537c[_0x61f5('0x3b')];if(!_0x5bf963['query']['hasOwnProperty'](_0x61f5('0x61'))){_0x3c30c6[_0x61f5('0x42')]=qs[_0x61f5('0x42')](_0x5bf963[_0x61f5('0x3c')][_0x61f5('0x42')]);_0x3c30c6[_0x61f5('0x22')]=qs[_0x61f5('0x22')](_0x5bf963[_0x61f5('0x3c')][_0x61f5('0x22')]);}_0x3c30c6[_0x61f5('0x43')]=qs[_0x61f5('0x44')](_0x5bf963['query'][_0x61f5('0x44')]);_0x3c30c6[_0x61f5('0x45')]=qs[_0x61f5('0x3d')](_['pick'](_0x5bf963[_0x61f5('0x3c')],_0x20537c['filters']));_0x3c30c6[_0x61f5('0x45')]['VoiceQueueId']=_0xf3b46a['id'];if(_0x5bf963['query'][_0x61f5('0x2d')]){_0x3c30c6['where']=_[_0x61f5('0x4f')](_0x3c30c6['where'],{'$or':_[_0x61f5('0x2f')](_0x3c30c6[_0x61f5('0x3e')],function(_0x28ac4e){var _0xfffeef={};_0xfffeef[_0x28ac4e]={'$like':'%'+_0x5bf963['query']['filter']+'%'};return _0xfffeef;})});}_0x3c30c6=_[_0x61f5('0x4f')]({},_0x3c30c6,_0x5bf963[_0x61f5('0x50')]);return db[_0x61f5('0x67')][_0x61f5('0x21')]({'where':_0x3c30c6[_0x61f5('0x45')]})[_0x61f5('0x27')](function(_0x192fd9){_0xb26350[_0x61f5('0x21')]=_0x192fd9;if(_0x5bf963['query']['includeAll']){_0x3c30c6[_0x61f5('0x48')]=[{'all':!![]}];}return db[_0x61f5('0x67')][_0x61f5('0x49')](_0x3c30c6);})[_0x61f5('0x27')](function(_0xdffd08){_0xb26350[_0x61f5('0x64')]=_0xdffd08;return _0xb26350;});}})['then'](respondWithFilteredResult(_0x2be89f,_0x3c30c6))[_0x61f5('0x4a')](handleError(_0x2be89f,null));};exports[_0x61f5('0x68')]=function(_0x17204e,_0x96798c,_0x27741e){var _0x4d1b5f={'raw':!![],'where':{}};var _0x3ffa10={};var _0x33d0c6={'count':0x0,'rows':[]};return db[_0x61f5('0x37')]['findOne']({'where':{'id':_0x17204e[_0x61f5('0x5f')]['id']}})[_0x61f5('0x27')](handleEntityNotFound(_0x96798c,null))['then'](function(_0x472a45){if(_0x472a45){_0x3ffa10['model']=_['keys'](db[_0x61f5('0x69')]['rawAttributes']);_0x3ffa10[_0x61f5('0x3c')]=_[_0x61f5('0x4d')](_0x17204e[_0x61f5('0x3c')]);_0x3ffa10['filters']=_['intersection'](_0x3ffa10['model'],_0x3ffa10[_0x61f5('0x3c')]);_0x4d1b5f[_0x61f5('0x3e')]=_[_0x61f5('0x4e')](_0x3ffa10[_0x61f5('0x3b')],qs[_0x61f5('0x3f')](_0x17204e[_0x61f5('0x3c')][_0x61f5('0x3f')]));_0x4d1b5f[_0x61f5('0x3e')]=_0x4d1b5f[_0x61f5('0x3e')][_0x61f5('0x40')]?_0x4d1b5f[_0x61f5('0x3e')]:_0x3ffa10[_0x61f5('0x3b')];if(!_0x17204e[_0x61f5('0x3c')][_0x61f5('0x41')](_0x61f5('0x61'))){_0x4d1b5f[_0x61f5('0x42')]=qs[_0x61f5('0x42')](_0x17204e[_0x61f5('0x3c')]['limit']);_0x4d1b5f[_0x61f5('0x22')]=qs[_0x61f5('0x22')](_0x17204e[_0x61f5('0x3c')][_0x61f5('0x22')]);}_0x4d1b5f[_0x61f5('0x43')]=qs[_0x61f5('0x44')](_0x17204e['query'][_0x61f5('0x44')]);_0x4d1b5f[_0x61f5('0x45')]=qs[_0x61f5('0x3d')](_[_0x61f5('0x46')](_0x17204e[_0x61f5('0x3c')],_0x3ffa10[_0x61f5('0x3d')]));_0x4d1b5f[_0x61f5('0x45')][_0x61f5('0x62')]=_0x472a45['id'];if(_0x17204e['query'][_0x61f5('0x2d')]){_0x4d1b5f[_0x61f5('0x45')]=_['merge'](_0x4d1b5f[_0x61f5('0x45')],{'$or':_['map'](_0x4d1b5f[_0x61f5('0x3e')],function(_0x3b9e76){var _0x410764={};_0x410764[_0x3b9e76]={'$like':'%'+_0x17204e['query']['filter']+'%'};return _0x410764;})});}_0x4d1b5f=_[_0x61f5('0x4f')]({},_0x4d1b5f,_0x17204e['options']);return db[_0x61f5('0x69')][_0x61f5('0x21')]({'where':_0x4d1b5f[_0x61f5('0x45')]})[_0x61f5('0x27')](function(_0x45eb6c){_0x33d0c6[_0x61f5('0x21')]=_0x45eb6c;if(_0x17204e[_0x61f5('0x3c')]['includeAll']){_0x4d1b5f[_0x61f5('0x48')]=[{'all':!![]}];}return db[_0x61f5('0x69')]['findAll'](_0x4d1b5f);})['then'](function(_0x54de42){_0x33d0c6['rows']=_0x54de42;return _0x33d0c6;});}})['then'](respondWithFilteredResult(_0x96798c,_0x4d1b5f))[_0x61f5('0x4a')](handleError(_0x96798c,null));};exports[_0x61f5('0x6a')]=function(_0x243d76,_0x22cdac,_0x2db357){var _0xee055b={};var _0x103ba3={};var _0x48ef80;var _0x479fc5;return db['VoiceQueue']['findOne']({'where':{'id':_0x243d76[_0x61f5('0x5f')]['id']}})['then'](handleEntityNotFound(_0x22cdac,null))[_0x61f5('0x27')](function(_0x1e05d9){if(_0x1e05d9){_0x48ef80=_0x1e05d9;_0x103ba3[_0x61f5('0x3b')]=_[_0x61f5('0x4d')](db[_0x61f5('0x6b')][_0x61f5('0x4c')]);_0x103ba3[_0x61f5('0x3c')]=_[_0x61f5('0x4d')](_0x243d76[_0x61f5('0x3c')]);_0x103ba3['filters']=_[_0x61f5('0x4e')](_0x103ba3[_0x61f5('0x3b')],_0x103ba3[_0x61f5('0x3c')]);_0xee055b[_0x61f5('0x3e')]=_[_0x61f5('0x4e')](_0x103ba3[_0x61f5('0x3b')],qs[_0x61f5('0x3f')](_0x243d76[_0x61f5('0x3c')][_0x61f5('0x3f')]));_0xee055b[_0x61f5('0x3e')]=_0xee055b[_0x61f5('0x3e')][_0x61f5('0x40')]?_0xee055b[_0x61f5('0x3e')]:_0x103ba3['model'];_0xee055b['order']=qs['sort'](_0x243d76[_0x61f5('0x3c')][_0x61f5('0x44')]);_0xee055b['where']=qs['filters'](_[_0x61f5('0x46')](_0x243d76[_0x61f5('0x3c')],_0x103ba3[_0x61f5('0x3d')]));if(_0x243d76['query'][_0x61f5('0x2d')]){_0xee055b[_0x61f5('0x45')]=_[_0x61f5('0x4f')](_0xee055b[_0x61f5('0x45')],{'$or':_[_0x61f5('0x2f')](_0xee055b[_0x61f5('0x3e')],function(_0x566807){var _0x3e7666={};_0x3e7666[_0x566807]={'$like':'%'+_0x243d76['query'][_0x61f5('0x2d')]+'%'};return _0x3e7666;})});}_0xee055b=_[_0x61f5('0x4f')]({},_0xee055b,_0x243d76[_0x61f5('0x50')]);return _0x48ef80['getTeams'](_0xee055b);}})[_0x61f5('0x27')](function(_0x29ecb9){if(_0x29ecb9){_0x479fc5=_0x29ecb9[_0x61f5('0x40')];if(!_0x243d76['query']['hasOwnProperty'](_0x61f5('0x61'))){_0xee055b[_0x61f5('0x42')]=qs['limit'](_0x243d76[_0x61f5('0x3c')][_0x61f5('0x42')]);_0xee055b[_0x61f5('0x22')]=qs[_0x61f5('0x22')](_0x243d76[_0x61f5('0x3c')][_0x61f5('0x22')]);}return _0x48ef80[_0x61f5('0x6a')](_0xee055b);}})['then'](function(_0x42e26f){if(_0x42e26f){return _0x42e26f?{'count':_0x479fc5,'rows':_0x42e26f}:null;}})[_0x61f5('0x27')](respondWithResult(_0x22cdac,null))[_0x61f5('0x4a')](handleError(_0x22cdac,null));};exports[_0x61f5('0x6c')]=function(_0x963c03,_0xb6a65a,_0x526294){var _0x1e7f77=_0x963c03[_0x61f5('0x5b')][_0x61f5('0x6d')];var _0x10bbbf=_[_0x61f5('0x2f')](_0x1e7f77,'id');return db[_0x61f5('0x6b')][_0x61f5('0x49')]({'where':{'id':_0x10bbbf},'attributes':['id'],'include':[{'model':db[_0x61f5('0x6e')],'as':'Agents','attributes':['id',_0x61f5('0x33'),'online','voicePause',_0x61f5('0x6f')],'raw':!![]}]})[_0x61f5('0x27')](function(_0x4d8bf8){if(_0x4d8bf8){var _0x40ae1e=_['flatMap'](_0x4d8bf8,function(_0x3ccb50){var _0x564288=_0x3ccb50[_0x61f5('0x28')]({'plain':!![]});_0x564288[_0x61f5('0x70')][_0x61f5('0x71')](function(_0x2a6e49){_0x2a6e49[_0x61f5('0x72')]=_['find'](_0x1e7f77,{'id':_0x564288['id']})[_0x61f5('0x72')];});return _0x564288[_0x61f5('0x70')];});return db['VoiceQueue'][_0x61f5('0x32')]({'where':{'id':_0x963c03[_0x61f5('0x5f')]['id']}})[_0x61f5('0x27')](function(_0x2ff6a3){return db[_0x61f5('0x73')]['transaction'](function(_0x5ced35){return _0x2ff6a3[_0x61f5('0x6c')](_0x10bbbf,{'transaction':_0x5ced35})[_0x61f5('0x27')](function(){return BPromise[_0x61f5('0x74')](_0x1e7f77,function(_0x2beb5d){return db['TeamVoiceQueue'][_0x61f5('0x75')]({'TeamId':_0x2beb5d['id'],'VoiceQueueId':_0x963c03['params']['id'],'penalty':_0x2beb5d[_0x61f5('0x72')]},{'transaction':_0x5ced35});});})[_0x61f5('0x27')](function(){return BPromise[_0x61f5('0x74')](_0x40ae1e,function(_0x39f158){return db[_0x61f5('0x76')][_0x61f5('0x77')]({'where':{'UserId':_0x39f158['id'],'VoiceQueueId':_0x963c03[_0x61f5('0x5f')]['id']},'defaults':{'penalty':_0x39f158[_0x61f5('0x72')]},'transaction':_0x5ced35});});})[_0x61f5('0x27')](function(){return BPromise[_0x61f5('0x74')](_['filter'](_0x40ae1e,{'online':!![]}),function(_0x5acb0f){return db[_0x61f5('0x78')][_0x61f5('0x75')]({'membername':_0x5acb0f[_0x61f5('0x33')],'UserId':_0x5acb0f['id'],'queue_name':_0x2ff6a3[_0x61f5('0x33')],'VoiceQueueId':_0x2ff6a3['id'],'interface':_[_0x61f5('0x79')](_0x5acb0f['interface'])?util[_0x61f5('0x7a')](_0x61f5('0x7b'),_0x5acb0f[_0x61f5('0x33')]):_0x5acb0f['interface'],'paused':_0x5acb0f[_0x61f5('0x7c')]||![],'penalty':_0x5acb0f[_0x61f5('0x72')]},{'transaction':_0x5ced35});});})[_0x61f5('0x27')](function(){_0x40ae1e[_0x61f5('0x71')](function(_0x34567f){socket[_0x61f5('0x7d')](_0x61f5('0x7e'),{'UserId':_0x34567f['id'],'VoiceQueueId':_0x2ff6a3['id']});});});});});}})['then'](respondWithStatusCode(_0xb6a65a,null))[_0x61f5('0x4a')](handleError(_0xb6a65a,null));};exports[_0x61f5('0x7f')]=function(_0x2b9355,_0x4ef069,_0x1adaef){return db[_0x61f5('0x6b')]['findAll']({'where':{'id':_0x2b9355[_0x61f5('0x3c')][_0x61f5('0x80')]},'attributes':['id'],'include':[{'model':db[_0x61f5('0x6e')],'as':'Agents','attributes':['id'],'raw':!![]}]})['then'](handleEntityNotFound(_0x4ef069,null))[_0x61f5('0x27')](function(_0xb875e5){var _0x10bc95=_[_0x61f5('0x2f')](_0xb875e5,'id');var _0x547d69=[];var _0x2fe1c5=[];var _0x1e3cc4=squel['select']();_0x1e3cc4['field']('tq.TeamId')[_0x61f5('0x81')](_0x61f5('0x82'),'tq')[_0x61f5('0x83')](_0x61f5('0x84'),'ut',_0x61f5('0x85'))[_0x61f5('0x45')](_0x61f5('0x86'),_0x2b9355[_0x61f5('0x5f')]['id']);for(var _0x3f759a=0x0;_0x3f759a<_0xb875e5[_0x61f5('0x40')];_0x3f759a+=0x1){let _0x5a1765=_0xb875e5[_0x3f759a];for(var _0x397156=0x0;_0x397156<_0x5a1765[_0x61f5('0x70')][_0x61f5('0x40')];_0x397156+=0x1){let _0x2594d7=_0x5a1765[_0x61f5('0x70')][_0x397156];var _0x41623f=_0x1e3cc4['clone']();_0x41623f['where'](_0x61f5('0x87'),_0x2594d7['id']);_0x2fe1c5[_0x61f5('0x88')](db[_0x61f5('0x73')][_0x61f5('0x3c')](_0x41623f['toString'](),{'type':db[_0x61f5('0x73')][_0x61f5('0x89')]['SELECT']})[_0x61f5('0x27')](function(_0x3c6208){if(_0x3c6208[_0x61f5('0x40')]===0x1){return _0x2594d7['id'];}else{var _0x5b57ff=_['every'](_[_0x61f5('0x2f')](_0x3c6208,_0x61f5('0x8a')),function(_0x465b19){return _[_0x61f5('0x31')](_0x10bc95,_0x465b19);});if(_0x5b57ff){return _0x2594d7['id'];}}}));}}return BPromise['all'](_0x2fe1c5)[_0x61f5('0x27')](function(_0x3751f7){_0x547d69=_(_0x547d69)[_0x61f5('0x8b')](_0x3751f7)[_0x61f5('0x8c')]()['value']();return db['VoiceQueue'][_0x61f5('0x32')]({'where':{'id':_0x2b9355['params']['id']}})[_0x61f5('0x27')](function(_0x193c3b){return db[_0x61f5('0x73')]['transaction'](function(_0x13a907){return _0x193c3b['removeTeams'](_0x2b9355[_0x61f5('0x3c')]['ids'],{'transaction':_0x13a907})['then'](function(){if(!_[_0x61f5('0x8d')](_0x547d69)){return _0x193c3b['removeAgents'](_0x547d69,{'transaction':_0x13a907})[_0x61f5('0x27')](function(){return db[_0x61f5('0x78')][_0x61f5('0x5e')]({'where':{'VoiceQueueId':_0x2b9355[_0x61f5('0x5f')]['id'],'UserId':_0x547d69},'transaction':_0x13a907});});}})[_0x61f5('0x27')](function(){_0x547d69[_0x61f5('0x71')](function(_0x25c382){socket[_0x61f5('0x7d')](_0x61f5('0x8e'),{'UserId':_0x25c382,'VoiceQueueId':_0x193c3b['id']});});});});});});})[_0x61f5('0x27')](respondWithStatusCode(_0x4ef069,null))[_0x61f5('0x4a')](handleError(_0x4ef069,null));};exports[_0x61f5('0x8f')]=function(_0x4905e5,_0x506e8e,_0x58e2ca){var _0x209a6a,_0x784a39;return db[_0x61f5('0x37')]['find']({'where':{'id':_0x4905e5['params']['id']}})[_0x61f5('0x27')](handleEntityNotFound(_0x506e8e,null))['then'](function(_0x4ad81b){if(_0x4ad81b){_0x784a39=_0x4ad81b;return _0x4ad81b[_0x61f5('0x8f')](_0x4905e5['body'][_0x61f5('0x80')],_[_0x61f5('0x59')](_0x4905e5[_0x61f5('0x5b')],['ids','id'])||{})[_0x61f5('0x90')](function(_0xdd33c4){for(var _0x165fd7=0x0;_0x165fd7<_0x4905e5[_0x61f5('0x5b')][_0x61f5('0x80')]['length'];_0x165fd7+=0x1){socket[_0x61f5('0x7d')](_0x61f5('0x7e'),{'UserId':Number(_0x4905e5[_0x61f5('0x5b')][_0x61f5('0x80')][_0x165fd7]),'VoiceQueueId':Number(_0x4905e5['params']['id'])});}return _0xdd33c4;});}})[_0x61f5('0x27')](function(_0x584599){_0x209a6a=_0x584599||[];if(_0x784a39){return db[_0x61f5('0x6e')]['findAll']({'where':{'id':_0x4905e5[_0x61f5('0x5b')][_0x61f5('0x80')]},'attributes':['id',_0x61f5('0x33'),'online',_0x61f5('0x7c'),'interface'],'raw':!![]});}})[_0x61f5('0x27')](function(_0x33f153){if(!_[_0x61f5('0x8d')](_0x33f153)){var _0x2cef3c=[];for(var _0x42a1ed=0x0;_0x42a1ed<_0x33f153[_0x61f5('0x40')];_0x42a1ed++){if(_0x33f153[_0x42a1ed]['online']){_0x2cef3c[_0x61f5('0x88')](db[_0x61f5('0x78')][_0x61f5('0x75')]({'membername':_0x33f153[_0x42a1ed]['name'],'UserId':_0x33f153[_0x42a1ed]['id'],'queue_name':_0x784a39[_0x61f5('0x33')],'VoiceQueueId':_0x784a39['id'],'interface':_[_0x61f5('0x79')](_0x33f153[_0x42a1ed][_0x61f5('0x6f')])?util[_0x61f5('0x7a')]('SIP/%s',_0x33f153[_0x42a1ed][_0x61f5('0x33')]):_0x33f153[_0x42a1ed]['interface'],'paused':_0x33f153[_0x42a1ed][_0x61f5('0x7c')]||![],'penalty':_0x4905e5[_0x61f5('0x5b')][_0x61f5('0x72')]||0x0}));}}return BPromise[_0x61f5('0x91')](_0x2cef3c);}})[_0x61f5('0x27')](function(){return _0x209a6a;})['then'](respondWithResult(_0x506e8e,null))['catch'](handleError(_0x506e8e,null));};exports['removeAgents']=function(_0x4e2fc6,_0x4f6bb9,_0x4bef26){return db[_0x61f5('0x37')]['find']({'where':{'id':_0x4e2fc6['params']['id']}})[_0x61f5('0x27')](handleEntityNotFound(_0x4f6bb9,null))[_0x61f5('0x27')](function(_0x54eda7){if(_0x54eda7){return _0x54eda7['removeAgents'](_0x4e2fc6[_0x61f5('0x3c')]['ids'])[_0x61f5('0x27')](function(){if(_['isArray'](_0x4e2fc6['query'][_0x61f5('0x80')])){for(var _0xd6bf0b=0x0;_0xd6bf0b<_0x4e2fc6[_0x61f5('0x3c')][_0x61f5('0x80')][_0x61f5('0x40')];_0xd6bf0b+=0x1){socket['emit']('userVoiceQueue:remove',{'UserId':Number(_0x4e2fc6[_0x61f5('0x3c')][_0x61f5('0x80')][_0xd6bf0b]),'VoiceQueueId':Number(_0x4e2fc6[_0x61f5('0x5f')]['id'])});}}else{socket['emit'](_0x61f5('0x8e'),{'UserId':Number(_0x4e2fc6[_0x61f5('0x3c')][_0x61f5('0x80')]),'VoiceQueueId':Number(_0x4e2fc6[_0x61f5('0x5f')]['id'])});}});}})[_0x61f5('0x27')](function(_0x4a503d){return db[_0x61f5('0x78')][_0x61f5('0x5e')]({'where':{'VoiceQueueId':_0x4e2fc6[_0x61f5('0x5f')]['id'],'UserId':_0x4e2fc6[_0x61f5('0x3c')][_0x61f5('0x80')]}})[_0x61f5('0x27')](function(){return _0x4a503d;});})[_0x61f5('0x27')](respondWithStatusCode(_0x4f6bb9,null))[_0x61f5('0x4a')](handleError(_0x4f6bb9,null));};exports[_0x61f5('0x92')]=function(_0x115131,_0x4c73ed,_0x412872){var _0x1906f8={};var _0x15c5d2={};var _0xc761ce;var _0x1dd0bd;return db[_0x61f5('0x37')][_0x61f5('0x60')]({'where':{'id':_0x115131[_0x61f5('0x5f')]['id']}})[_0x61f5('0x27')](handleEntityNotFound(_0x4c73ed,null))[_0x61f5('0x27')](function(_0x1e80cd){if(_0x1e80cd){_0xc761ce=_0x1e80cd;_0x15c5d2['model']=_[_0x61f5('0x4d')](db[_0x61f5('0x6e')][_0x61f5('0x4c')]);_0x15c5d2[_0x61f5('0x3c')]=_[_0x61f5('0x4d')](_0x115131[_0x61f5('0x3c')]);_0x15c5d2[_0x61f5('0x3d')]=_[_0x61f5('0x4e')](_0x15c5d2[_0x61f5('0x3b')],_0x15c5d2[_0x61f5('0x3c')]);_0x1906f8['attributes']=_[_0x61f5('0x4e')](_0x15c5d2[_0x61f5('0x3b')],qs[_0x61f5('0x3f')](_0x115131[_0x61f5('0x3c')][_0x61f5('0x3f')]));_0x1906f8[_0x61f5('0x3e')]=_0x1906f8[_0x61f5('0x3e')][_0x61f5('0x40')]?_0x1906f8[_0x61f5('0x3e')]:_0x15c5d2[_0x61f5('0x3b')];_0x1906f8[_0x61f5('0x43')]=qs['sort'](_0x115131[_0x61f5('0x3c')][_0x61f5('0x44')]);_0x1906f8[_0x61f5('0x45')]=qs['filters'](_[_0x61f5('0x46')](_0x115131[_0x61f5('0x3c')],_0x15c5d2[_0x61f5('0x3d')]));if(_0x115131[_0x61f5('0x3c')][_0x61f5('0x2d')]){_0x1906f8[_0x61f5('0x45')]=_['merge'](_0x1906f8[_0x61f5('0x45')],{'$or':_[_0x61f5('0x2f')](_0x1906f8[_0x61f5('0x3e')],function(_0x260feb){var _0x50f657={};_0x50f657[_0x260feb]={'$like':'%'+_0x115131[_0x61f5('0x3c')][_0x61f5('0x2d')]+'%'};return _0x50f657;})});}_0x1906f8=_[_0x61f5('0x4f')]({},_0x1906f8,_0x115131['options']);return _0xc761ce['getAgents'](_0x1906f8);}})[_0x61f5('0x27')](function(_0x3323fb){if(_0x3323fb){_0x1dd0bd=_0x3323fb[_0x61f5('0x40')];if(!_0x115131[_0x61f5('0x3c')][_0x61f5('0x41')](_0x61f5('0x61'))){_0x1906f8[_0x61f5('0x42')]=qs[_0x61f5('0x42')](_0x115131[_0x61f5('0x3c')]['limit']);_0x1906f8[_0x61f5('0x22')]=qs[_0x61f5('0x22')](_0x115131['query'][_0x61f5('0x22')]);}return _0xc761ce['getAgents'](_0x1906f8);}})['then'](function(_0x5e2d8a){if(_0x5e2d8a){return _0x5e2d8a?{'count':_0x1dd0bd,'rows':_0x5e2d8a}:null;}})['then'](respondWithResult(_0x4c73ed,null))[_0x61f5('0x4a')](handleError(_0x4c73ed,null));};exports['getMembers']=function(_0x109051,_0x495dfc,_0x7665a9){var _0x34ac74={};var _0x3fc158={};var _0x419aa0;var _0x5af826;return db['VoiceQueue'][_0x61f5('0x60')]({'where':{'id':_0x109051[_0x61f5('0x5f')]['id']}})[_0x61f5('0x27')](handleEntityNotFound(_0x495dfc,null))[_0x61f5('0x27')](function(_0x53c43a){if(_0x53c43a){_0x419aa0=_0x53c43a;_0x3fc158[_0x61f5('0x3b')]=_[_0x61f5('0x4d')](db[_0x61f5('0x78')]['rawAttributes']);_0x3fc158[_0x61f5('0x3c')]=_[_0x61f5('0x4d')](_0x109051[_0x61f5('0x3c')]);_0x3fc158['filters']=_[_0x61f5('0x4e')](_0x3fc158['model'],_0x3fc158['query']);_0x34ac74['attributes']=_[_0x61f5('0x4e')](_0x3fc158['model'],qs['fields'](_0x109051[_0x61f5('0x3c')][_0x61f5('0x3f')]));_0x34ac74[_0x61f5('0x3e')]=_0x34ac74['attributes'][_0x61f5('0x40')]?_0x34ac74[_0x61f5('0x3e')]:_0x3fc158['model'];_0x34ac74['order']=qs[_0x61f5('0x44')](_0x109051[_0x61f5('0x3c')]['sort']);_0x34ac74['where']=qs[_0x61f5('0x3d')](_[_0x61f5('0x46')](_0x109051['query'],_0x3fc158[_0x61f5('0x3d')]));if(_0x109051[_0x61f5('0x3c')][_0x61f5('0x2d')]){_0x34ac74[_0x61f5('0x45')]=_['merge'](_0x34ac74[_0x61f5('0x45')],{'$or':_['map'](_0x34ac74[_0x61f5('0x3e')],function(_0x7d5e4c){var _0x3cfe31={};_0x3cfe31[_0x7d5e4c]={'$like':'%'+_0x109051[_0x61f5('0x3c')][_0x61f5('0x2d')]+'%'};return _0x3cfe31;})});}_0x34ac74=_['merge']({},_0x34ac74,_0x109051[_0x61f5('0x50')]);return _0x419aa0[_0x61f5('0x93')](_0x34ac74);}})['then'](function(_0x8035dc){if(_0x8035dc){_0x5af826=_0x8035dc[_0x61f5('0x40')];if(!_0x109051['query'][_0x61f5('0x41')](_0x61f5('0x61'))){_0x34ac74['limit']=qs[_0x61f5('0x42')](_0x109051[_0x61f5('0x3c')][_0x61f5('0x42')]);_0x34ac74['offset']=qs[_0x61f5('0x22')](_0x109051['query'][_0x61f5('0x22')]);}return _0x419aa0[_0x61f5('0x93')](_0x34ac74);}})[_0x61f5('0x27')](function(_0x5edb02){return _0x5edb02?{'count':_0x5af826,'rows':_0x5edb02}:null;})[_0x61f5('0x27')](respondWithResult(_0x495dfc,null))[_0x61f5('0x4a')](handleError(_0x495dfc,null));};exports[_0x61f5('0x94')]=function(_0x4ade6c,_0x3bfc6b,_0x3fa14a){var _0x5dbb86={};var _0x29d74c={};var _0x3ce719;var _0x3060dd;return db[_0x61f5('0x37')][_0x61f5('0x60')]({'where':{'id':_0x4ade6c[_0x61f5('0x5f')]['id']}})[_0x61f5('0x27')](handleEntityNotFound(_0x3bfc6b,null))[_0x61f5('0x27')](function(_0x340eed){if(_0x340eed){_0x3ce719=_0x340eed;_0x29d74c[_0x61f5('0x3b')]=_[_0x61f5('0x4d')](db[_0x61f5('0x95')]['rawAttributes']);_0x29d74c['query']=_[_0x61f5('0x4d')](_0x4ade6c[_0x61f5('0x3c')]);_0x29d74c[_0x61f5('0x3d')]=_[_0x61f5('0x4e')](_0x29d74c['model'],_0x29d74c['query']);_0x5dbb86[_0x61f5('0x3e')]=_[_0x61f5('0x4e')](_0x29d74c[_0x61f5('0x3b')],qs[_0x61f5('0x3f')](_0x4ade6c['query'][_0x61f5('0x3f')]));_0x5dbb86[_0x61f5('0x3e')]=_0x5dbb86['attributes']['length']?_0x5dbb86[_0x61f5('0x3e')]:_0x29d74c[_0x61f5('0x3b')];_0x5dbb86[_0x61f5('0x43')]=qs[_0x61f5('0x44')](_0x4ade6c['query'][_0x61f5('0x44')]);_0x5dbb86[_0x61f5('0x45')]=qs['filters'](_['pick'](_0x4ade6c[_0x61f5('0x3c')],_0x29d74c['filters']));if(_0x4ade6c[_0x61f5('0x3c')][_0x61f5('0x2d')]){_0x5dbb86['where']=_['merge'](_0x5dbb86['where'],{'$or':_[_0x61f5('0x2f')](_0x5dbb86[_0x61f5('0x3e')],function(_0x423e87){var _0x5e69a3={};_0x5e69a3[_0x423e87]={'$like':'%'+_0x4ade6c[_0x61f5('0x3c')]['filter']+'%'};return _0x5e69a3;})});}_0x5dbb86=_[_0x61f5('0x4f')]({},_0x5dbb86,_0x4ade6c[_0x61f5('0x50')]);return _0x3ce719['getLists'](_0x5dbb86);}})[_0x61f5('0x27')](function(_0x79bd81){if(_0x79bd81){_0x3060dd=_0x79bd81['length'];if(!_0x4ade6c[_0x61f5('0x3c')][_0x61f5('0x41')](_0x61f5('0x61'))){_0x5dbb86[_0x61f5('0x42')]=qs['limit'](_0x4ade6c[_0x61f5('0x3c')][_0x61f5('0x42')]);_0x5dbb86[_0x61f5('0x22')]=qs['offset'](_0x4ade6c['query']['offset']);}return _0x3ce719[_0x61f5('0x94')](_0x5dbb86);}})['then'](function(_0x5a2f8e){if(_0x5a2f8e){return _0x5a2f8e?{'count':_0x3060dd,'rows':_0x5a2f8e}:null;}})['then'](respondWithResult(_0x3bfc6b,null))[_0x61f5('0x4a')](handleError(_0x3bfc6b,null));};exports['addLists']=function(_0xe13732,_0x4e1615,_0x3e040c){var _0x10f9a3,_0x1df61f;return db['VoiceQueue'][_0x61f5('0x32')]({'where':{'id':_0xe13732['params']['id']}})[_0x61f5('0x27')](handleEntityNotFound(_0x4e1615,null))[_0x61f5('0x27')](function(_0x569edb){if(_0x569edb){_0x1df61f=_0x569edb;return _0x569edb[_0x61f5('0x96')](_0xe13732['body'][_0x61f5('0x80')],_[_0x61f5('0x59')](_0xe13732[_0x61f5('0x5b')],[_0x61f5('0x80'),'id'])||{});}return null;})[_0x61f5('0x90')](function(_0x5522ae){var _0x2b9216;_0x10f9a3=_0x5522ae||[];var _0x3b049c=[];if(_0x5522ae){for(var _0x4d5741=0x0;_0x4d5741<_0x5522ae[_0x61f5('0x40')];_0x4d5741+=0x1){var _0x51045e=_0x5522ae[_0x4d5741]['get']({'plain':!![]});_0x1df61f[_0x61f5('0x97')]=_0xe13732[_0x61f5('0x5b')][_0x61f5('0x97')]?_0xe13732['body'][_0x61f5('0x97')]:_0x1df61f['dialCheckDuplicateType'];switch(_0x1df61f['dialCheckDuplicateType']){case _0x61f5('0x98'):_0x2b9216=squel[_0x61f5('0x99')]()[_0x61f5('0x9a')]('cm_hopper')[_0x61f5('0x9b')](['phone',_0x61f5('0x9c'),'ContactId',_0x61f5('0x9d'),_0x61f5('0x62'),_0x61f5('0x5a'),_0x61f5('0x5c')],squel['select']()[_0x61f5('0x9e')](_0x61f5('0x9f'),_0x61f5('0x9f'))[_0x61f5('0x9e')]('NOW()',_0x61f5('0x9c'))[_0x61f5('0x9e')]('id',_0x61f5('0xa0'))[_0x61f5('0x9e')](_0x51045e['CmListId']['toString'](),_0x61f5('0x9d'))[_0x61f5('0x9e')](_0xe13732[_0x61f5('0x5f')]['id'][_0x61f5('0xa1')](),'VoiceQueueId')[_0x61f5('0x9e')](_0x61f5('0xa2'),_0x61f5('0x5a'))[_0x61f5('0x9e')](_0x61f5('0xa2'),_0x61f5('0x5c'))[_0x61f5('0x81')]('cm_contacts')[_0x61f5('0x45')](_0x61f5('0xa3'))[_0x61f5('0x45')](_0x61f5('0xa4'),_0x51045e[_0x61f5('0xa5')][_0x61f5('0xa1')]())[_0x61f5('0x45')](_0x61f5('0xa6'))[_0x61f5('0x45')](_0x61f5('0xa7'),squel['select']()[_0x61f5('0x9e')](_0x61f5('0xa8'))['from'](_0x61f5('0xa9'))[_0x61f5('0x45')]('VoiceQueueId\x20=\x20?',_0xe13732[_0x61f5('0x5f')]['id'][_0x61f5('0xa1')]()))[_0x61f5('0x45')](_0x61f5('0xa7'),squel[_0x61f5('0xaa')]()[_0x61f5('0x9e')](_0x61f5('0xab'))[_0x61f5('0x81')](_0x61f5('0xac'))[_0x61f5('0x45')](_0x61f5('0x86'),_0xe13732[_0x61f5('0x5f')]['id']['toString']())))[_0x61f5('0xa1')]();break;case _0x61f5('0xad'):_0x2b9216=squel[_0x61f5('0x99')]()['into']('cm_hopper')[_0x61f5('0x9b')](['phone',_0x61f5('0x9c'),_0x61f5('0xa0'),_0x61f5('0x9d'),'VoiceQueueId',_0x61f5('0x5a'),_0x61f5('0x5c')],squel[_0x61f5('0xaa')]()['field'](_0x61f5('0x9f'),_0x61f5('0x9f'))[_0x61f5('0x9e')](_0x61f5('0xa2'),_0x61f5('0x9c'))[_0x61f5('0x9e')]('id',_0x61f5('0xa0'))[_0x61f5('0x9e')](_0x51045e[_0x61f5('0xa5')]['toString'](),_0x61f5('0x9d'))[_0x61f5('0x9e')](_0xe13732[_0x61f5('0x5f')]['id']['toString'](),_0x61f5('0x62'))[_0x61f5('0x9e')](_0x61f5('0xa2'),'createdAt')[_0x61f5('0x9e')]('NOW()',_0x61f5('0x5c'))[_0x61f5('0x81')](_0x61f5('0xae'))[_0x61f5('0x45')](_0x61f5('0xa3'))[_0x61f5('0x45')](_0x61f5('0xa4'),_0x51045e[_0x61f5('0xa5')][_0x61f5('0xa1')]())['where'](_0x61f5('0xa6'))[_0x61f5('0x45')](_0x61f5('0xa7'),squel[_0x61f5('0xaa')]()[_0x61f5('0x9e')](_0x61f5('0xab'))['from'](_0x61f5('0xac'))[_0x61f5('0x45')]('VoiceQueueId\x20=\x20?',_0xe13732[_0x61f5('0x5f')]['id'][_0x61f5('0xa1')]())))[_0x61f5('0xa1')]();break;default:_0x2b9216=squel[_0x61f5('0x99')]()[_0x61f5('0x9a')](_0x61f5('0xac'))['fromQuery']([_0x61f5('0x9f'),'scheduledAt','ContactId','ListId',_0x61f5('0x62'),_0x61f5('0x5a'),'updatedAt'],squel[_0x61f5('0xaa')]()[_0x61f5('0x9e')]('phone',_0x61f5('0x9f'))[_0x61f5('0x9e')](_0x61f5('0xa2'),_0x61f5('0x9c'))[_0x61f5('0x9e')]('id',_0x61f5('0xa0'))['field'](_0x51045e[_0x61f5('0xa5')][_0x61f5('0xa1')](),_0x61f5('0x9d'))[_0x61f5('0x9e')](_0xe13732[_0x61f5('0x5f')]['id'][_0x61f5('0xa1')](),_0x61f5('0x62'))[_0x61f5('0x9e')](_0x61f5('0xa2'),_0x61f5('0x5a'))[_0x61f5('0x9e')]('NOW()',_0x61f5('0x5c'))[_0x61f5('0x81')](_0x61f5('0xae'))['where']('deletedAt\x20IS\x20NULL')['where']('ListId\x20=\x20?',_0x51045e[_0x61f5('0xa5')][_0x61f5('0xa1')]())[_0x61f5('0x45')](_0x61f5('0xa6')))[_0x61f5('0xa1')]();}_0x3b049c[_0x61f5('0x88')](db[_0x61f5('0x73')]['query'](_0x2b9216));}return BPromise[_0x61f5('0x91')](_0x3b049c);}})[_0x61f5('0x27')](function(){return _0x10f9a3;})['then'](respondWithResult(_0x4e1615,null))['catch'](handleError(_0x4e1615,null));};exports[_0x61f5('0xaf')]=function(_0x4d3514,_0x531cde,_0x4d0001){return db[_0x61f5('0x37')][_0x61f5('0x32')]({'where':{'id':_0x4d3514[_0x61f5('0x5f')]['id']}})[_0x61f5('0x27')](handleEntityNotFound(_0x531cde,null))[_0x61f5('0x27')](function(_0x3177a5){if(_0x3177a5){return _0x3177a5[_0x61f5('0xaf')](_0x4d3514[_0x61f5('0x3c')][_0x61f5('0x80')]);}})[_0x61f5('0x27')](function(_0x2f5883){if(_0x2f5883){return db[_0x61f5('0x63')][_0x61f5('0x5e')]({'where':{'ListId':_0x4d3514[_0x61f5('0x3c')][_0x61f5('0x80')],'VoiceQueueId':_0x4d3514[_0x61f5('0x5f')]['id']}})[_0x61f5('0x27')](function(){return _0x2f5883;});}})[_0x61f5('0x27')](respondWithStatusCode(_0x531cde,null))[_0x61f5('0x4a')](handleError(_0x531cde,null));};exports['getBlackLists']=function(_0x4df86b,_0xcae44f,_0x4ab1f2){var _0x54fe8d={};var _0xbffc9a={};var _0x522f34;var _0x17449f;return db[_0x61f5('0x37')]['findOne']({'where':{'id':_0x4df86b[_0x61f5('0x5f')]['id']}})[_0x61f5('0x27')](handleEntityNotFound(_0xcae44f,null))[_0x61f5('0x27')](function(_0xe845a9){if(_0xe845a9){_0x522f34=_0xe845a9;_0xbffc9a[_0x61f5('0x3b')]=_['keys'](db[_0x61f5('0x95')][_0x61f5('0x4c')]);_0xbffc9a[_0x61f5('0x3c')]=_[_0x61f5('0x4d')](_0x4df86b['query']);_0xbffc9a[_0x61f5('0x3d')]=_[_0x61f5('0x4e')](_0xbffc9a[_0x61f5('0x3b')],_0xbffc9a[_0x61f5('0x3c')]);_0x54fe8d['attributes']=_[_0x61f5('0x4e')](_0xbffc9a[_0x61f5('0x3b')],qs[_0x61f5('0x3f')](_0x4df86b['query'][_0x61f5('0x3f')]));_0x54fe8d['attributes']=_0x54fe8d['attributes'][_0x61f5('0x40')]?_0x54fe8d['attributes']:_0xbffc9a['model'];_0x54fe8d[_0x61f5('0x43')]=qs['sort'](_0x4df86b['query'][_0x61f5('0x44')]);_0x54fe8d[_0x61f5('0x45')]=qs[_0x61f5('0x3d')](_[_0x61f5('0x46')](_0x4df86b[_0x61f5('0x3c')],_0xbffc9a['filters']));if(_0x4df86b[_0x61f5('0x3c')][_0x61f5('0x2d')]){_0x54fe8d[_0x61f5('0x45')]=_['merge'](_0x54fe8d[_0x61f5('0x45')],{'$or':_[_0x61f5('0x2f')](_0x54fe8d[_0x61f5('0x3e')],function(_0x3b53f7){var _0x343390={};_0x343390[_0x3b53f7]={'$like':'%'+_0x4df86b[_0x61f5('0x3c')][_0x61f5('0x2d')]+'%'};return _0x343390;})});}_0x54fe8d=_[_0x61f5('0x4f')]({},_0x54fe8d,_0x4df86b['options']);return _0x522f34[_0x61f5('0xb0')](_0x54fe8d);}})[_0x61f5('0x27')](function(_0x4f15c4){if(_0x4f15c4){_0x17449f=_0x4f15c4[_0x61f5('0x40')];if(!_0x4df86b[_0x61f5('0x3c')][_0x61f5('0x41')](_0x61f5('0x61'))){_0x54fe8d[_0x61f5('0x42')]=qs[_0x61f5('0x42')](_0x4df86b[_0x61f5('0x3c')][_0x61f5('0x42')]);_0x54fe8d[_0x61f5('0x22')]=qs[_0x61f5('0x22')](_0x4df86b['query'][_0x61f5('0x22')]);}return _0x522f34[_0x61f5('0xb0')](_0x54fe8d);}})[_0x61f5('0x27')](function(_0x242d67){if(_0x242d67){return _0x242d67?{'count':_0x17449f,'rows':_0x242d67}:null;}})[_0x61f5('0x27')](respondWithResult(_0xcae44f,null))['catch'](handleError(_0xcae44f,null));};exports[_0x61f5('0xb1')]=function(_0x75bfa8,_0x4aac81,_0x409c4a){var _0xe6f101,_0x5a5211;return db[_0x61f5('0x37')]['find']({'where':{'id':_0x75bfa8[_0x61f5('0x5f')]['id']}})['then'](handleEntityNotFound(_0x4aac81,null))[_0x61f5('0x27')](function(_0x2f7611){if(_0x2f7611){_0x5a5211=_0x2f7611;return _0x2f7611[_0x61f5('0xb1')](_0x75bfa8['body'][_0x61f5('0x80')],_['omit'](_0x75bfa8[_0x61f5('0x5b')],[_0x61f5('0x80'),'id'])||{});}return null;})['spread'](function(_0x307149){var _0x410ee6;_0xe6f101=_0x307149||[];var _0x3f3029=[];if(_0x307149){for(var _0x356fc9=0x0;_0x356fc9<_0x307149['length'];_0x356fc9+=0x1){var _0x585f69=_0x307149[_0x356fc9][_0x61f5('0x28')]({'plain':!![]});_0x410ee6=squel[_0x61f5('0x99')]()[_0x61f5('0x9a')]('cm_hopper_black')['fromQuery']([_0x61f5('0x9f'),_0x61f5('0xa0'),_0x61f5('0x9d'),_0x61f5('0x62'),_0x61f5('0x5a'),'updatedAt'],squel[_0x61f5('0xaa')]()['field'](_0x61f5('0x9f'),_0x61f5('0x9f'))[_0x61f5('0x9e')]('id',_0x61f5('0xa0'))['field'](_0x585f69[_0x61f5('0xa5')][_0x61f5('0xa1')](),'ListId')[_0x61f5('0x9e')](_0x75bfa8[_0x61f5('0x5f')]['id'][_0x61f5('0xa1')](),'VoiceQueueId')[_0x61f5('0x9e')](_0x61f5('0xa2'),_0x61f5('0x5a'))[_0x61f5('0x9e')](_0x61f5('0xa2'),'updatedAt')['from']('cm_contacts')[_0x61f5('0x45')]('deletedAt\x20IS\x20NULL')['where'](_0x61f5('0xa4'),_0x585f69[_0x61f5('0xa5')][_0x61f5('0xa1')]())[_0x61f5('0x45')](_0x61f5('0xa6')))['toString']();_0x3f3029[_0x61f5('0x88')](db['sequelize'][_0x61f5('0x3c')](_0x410ee6));}return BPromise[_0x61f5('0x91')](_0x3f3029);}})['then'](function(){return _0xe6f101;})[_0x61f5('0x27')](respondWithResult(_0x4aac81,null))[_0x61f5('0x4a')](handleError(_0x4aac81,null));};exports[_0x61f5('0xb2')]=function(_0x2ea20a,_0x139cc9,_0x165f9c){return db['VoiceQueue'][_0x61f5('0x32')]({'where':{'id':_0x2ea20a[_0x61f5('0x5f')]['id']}})[_0x61f5('0x27')](handleEntityNotFound(_0x139cc9,null))['then'](function(_0x2f3baa){if(_0x2f3baa){return _0x2f3baa[_0x61f5('0xb2')](_0x2ea20a['query']['ids']);}})[_0x61f5('0x27')](function(_0x10e9fb){if(_0x10e9fb){return db[_0x61f5('0x69')][_0x61f5('0x5e')]({'where':{'ListId':_0x2ea20a[_0x61f5('0x3c')]['ids'],'VoiceQueueId':_0x2ea20a[_0x61f5('0x5f')]['id']}})['then'](function(){return _0x10e9fb;});}})['then'](respondWithStatusCode(_0x139cc9,null))[_0x61f5('0x4a')](handleError(_0x139cc9,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1606=['update','emit','hasOwnProperty','hook','events','../../mysqldb','VoiceQueue','save'];(function(_0x1c5385,_0x5cfc42){var _0x4e1a93=function(_0x1ee6e2){while(--_0x1ee6e2){_0x1c5385['push'](_0x1c5385['shift']());}};_0x4e1a93(++_0x5cfc42);}(_0x1606,0x164));var _0x6160=function(_0x316627,_0xbc3af2){_0x316627=_0x316627-0x0;var _0x5825fd=_0x1606[_0x316627];return _0x5825fd;};'use strict';var EventEmitter=require(_0x6160('0x0'));var VoiceQueue=require(_0x6160('0x1'))['db'][_0x6160('0x2')];var VoiceQueueEvents=new EventEmitter();VoiceQueueEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x6160('0x3'),'afterUpdate':_0x6160('0x4'),'afterDestroy':'remove'};function emitEvent(_0x28b510){return function(_0x44197a,_0x2e2226,_0x457e41){VoiceQueueEvents[_0x6160('0x5')](_0x28b510+':'+_0x44197a['id'],_0x44197a);VoiceQueueEvents[_0x6160('0x5')](_0x28b510,_0x44197a);_0x457e41(null);};}for(var e in events){if(events[_0x6160('0x6')](e)){var event=events[e];VoiceQueue[_0x6160('0x7')](e,emitEvent(event));}}module['exports']=VoiceQueueEvents;
\ No newline at end of file
+var _0x73a9=['hook','exports','events','setMaxListeners','save','emit','hasOwnProperty'];(function(_0x1b089d,_0x4a41cc){var _0x24113c=function(_0x298626){while(--_0x298626){_0x1b089d['push'](_0x1b089d['shift']());}};_0x24113c(++_0x4a41cc);}(_0x73a9,0x1de));var _0x973a=function(_0x5b775a,_0x16f461){_0x5b775a=_0x5b775a-0x0;var _0x57a84f=_0x73a9[_0x5b775a];return _0x57a84f;};'use strict';var EventEmitter=require(_0x973a('0x0'));var VoiceQueue=require('../../mysqldb')['db']['VoiceQueue'];var VoiceQueueEvents=new EventEmitter();VoiceQueueEvents[_0x973a('0x1')](0x0);var events={'afterCreate':_0x973a('0x2'),'afterUpdate':'update','afterDestroy':'remove'};function emitEvent(_0x27df47){return function(_0x3a705b,_0x80582d,_0x361cd2){VoiceQueueEvents['emit'](_0x27df47+':'+_0x3a705b['id'],_0x3a705b);VoiceQueueEvents[_0x973a('0x3')](_0x27df47,_0x3a705b);_0x361cd2(null);};}for(var e in events){if(events[_0x973a('0x4')](e)){var event=events[e];VoiceQueue[_0x973a('0x5')](e,emitEvent(event));}}module[_0x973a('0x6')]=VoiceQueueEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x008c=['define','voice_queues','lodash','util','../../config/logger','api','moment','request-promise','path','rimraf','../../config/environment','./voiceQueue.attributes','exports'];(function(_0x1163a0,_0xfed5f4){var _0x1af53e=function(_0x47b447){while(--_0x47b447){_0x1163a0['push'](_0x1163a0['shift']());}};_0x1af53e(++_0xfed5f4);}(_0x008c,0x188));var _0xc008=function(_0x2e1af3,_0x2a077b){_0x2e1af3=_0x2e1af3-0x0;var _0x4150cd=_0x008c[_0x2e1af3];return _0x4150cd;};'use strict';var _=require(_0xc008('0x0'));var util=require(_0xc008('0x1'));var logger=require(_0xc008('0x2'))(_0xc008('0x3'));var moment=require(_0xc008('0x4'));var BPromise=require('bluebird');var rp=require(_0xc008('0x5'));var fs=require('fs');var path=require(_0xc008('0x6'));var rimraf=require(_0xc008('0x7'));var config=require(_0xc008('0x8'));var attributes=require(_0xc008('0x9'));module[_0xc008('0xa')]=function(_0x13aa7,_0x39bb5e){return _0x13aa7[_0xc008('0xb')]('VoiceQueue',attributes,{'tableName':_0xc008('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(_0x68adcb,_0x4330a7){var _0xc9eb71=function(_0x32c589){while(--_0x32c589){_0x68adcb['push'](_0x68adcb['shift']());}};_0xc9eb71(++_0x4330a7);}(_0xedd9,0xfc));var _0x9edd=function(_0x16176f,_0x391ca9){_0x16176f=_0x16176f-0x0;var _0x3c28dc=_0xedd9[_0x16176f];return _0x3c28dc;};'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 _0x664b=['findAll','options','raw','attributes','limit','include','map','model','stringify','ShowVoiceQueue','find','where','lodash','util','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','redis','defaults','localhost','socket.io-emitter','register','request','then','info','VoiceQueue,\x20%s,\x20%s','request\x20sent','debug','error','message','result','catch','GetVoiceQueue'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x664b,0x1c4));var _0xb664=function(_0x2641f9,_0x26715f){_0x2641f9=_0x2641f9-0x0;var _0x585741=_0x664b[_0x2641f9];return _0x585741;};'use strict';var _=require(_0xb664('0x0'));var util=require(_0xb664('0x1'));var moment=require(_0xb664('0x2'));var BPromise=require('bluebird');var rs=require(_0xb664('0x3'));var fs=require('fs');var Redis=require(_0xb664('0x4'));var db=require(_0xb664('0x5'))['db'];var utils=require(_0xb664('0x6'));var logger=require(_0xb664('0x7'))(_0xb664('0x8'));var config=require(_0xb664('0x9'));var jayson=require('jayson/promise');var client=jayson[_0xb664('0xa')][_0xb664('0xb')]({'port':0x232a});config[_0xb664('0xc')]=_[_0xb664('0xd')](config[_0xb664('0xc')],{'host':_0xb664('0xe'),'port':0x18eb});var socket=require(_0xb664('0xf'))(new Redis(config[_0xb664('0xc')]));require('./voiceQueue.socket')[_0xb664('0x10')](socket);function respondWithRpcPromise(_0x4071e6,_0x2c6aa6,_0x46cdb6){return new BPromise(function(_0x464ff8,_0x260b2f){return client[_0xb664('0x11')](_0x4071e6,_0x46cdb6)[_0xb664('0x12')](function(_0x1a6e99){logger[_0xb664('0x13')](_0xb664('0x14'),_0x2c6aa6,_0xb664('0x15'));logger[_0xb664('0x16')]('VoiceQueue,\x20%s,\x20%s,\x20%s',_0x2c6aa6,_0xb664('0x15'),JSON['stringify'](_0x1a6e99));if(_0x1a6e99[_0xb664('0x17')]){if(_0x1a6e99[_0xb664('0x17')]['code']===0x1f4){logger[_0xb664('0x17')](_0xb664('0x14'),_0x2c6aa6,_0x1a6e99[_0xb664('0x17')][_0xb664('0x18')]);return _0x260b2f(_0x1a6e99[_0xb664('0x17')][_0xb664('0x18')]);}logger['error'](_0xb664('0x14'),_0x2c6aa6,_0x1a6e99[_0xb664('0x17')][_0xb664('0x18')]);return _0x464ff8(_0x1a6e99[_0xb664('0x17')][_0xb664('0x18')]);}else{logger[_0xb664('0x13')](_0xb664('0x14'),_0x2c6aa6,_0xb664('0x15'));_0x464ff8(_0x1a6e99[_0xb664('0x19')][_0xb664('0x18')]);}})[_0xb664('0x1a')](function(_0x32b3e2){logger['error'](_0xb664('0x14'),_0x2c6aa6,_0x32b3e2);_0x260b2f(_0x32b3e2);});});}exports[_0xb664('0x1b')]=function(_0x4fda8c){var _0x147724=this;return new Promise(function(_0x5f2c0b,_0x34961a){return db['VoiceQueue'][_0xb664('0x1c')]({'raw':_0x4fda8c[_0xb664('0x1d')]?_0x4fda8c[_0xb664('0x1d')][_0xb664('0x1e')]===undefined?!![]:![]:!![],'where':_0x4fda8c[_0xb664('0x1d')]?_0x4fda8c[_0xb664('0x1d')]['where']||null:null,'attributes':_0x4fda8c[_0xb664('0x1d')]?_0x4fda8c['options'][_0xb664('0x1f')]||null:null,'limit':_0x4fda8c[_0xb664('0x1d')]?_0x4fda8c['options'][_0xb664('0x20')]||null:null,'include':_0x4fda8c[_0xb664('0x1d')]?_0x4fda8c[_0xb664('0x1d')][_0xb664('0x21')]?_[_0xb664('0x22')](_0x4fda8c[_0xb664('0x1d')][_0xb664('0x21')],function(_0x670654){return{'model':db[_0x670654[_0xb664('0x23')]],'as':_0x670654['as'],'attributes':_0x670654[_0xb664('0x1f')],'include':_0x670654[_0xb664('0x21')]?_[_0xb664('0x22')](_0x670654[_0xb664('0x21')],function(_0x40010a){return{'model':db[_0x40010a[_0xb664('0x23')]],'as':_0x40010a['as'],'attributes':_0x40010a[_0xb664('0x1f')],'include':_0x40010a[_0xb664('0x21')]?_[_0xb664('0x22')](_0x40010a[_0xb664('0x21')],function(_0x3257c9){return{'model':db[_0x3257c9[_0xb664('0x23')]],'as':_0x3257c9['as'],'attributes':_0x3257c9['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x1a8324){logger[_0xb664('0x13')](_0xb664('0x1b'),_0x4fda8c);logger[_0xb664('0x16')](_0xb664('0x1b'),_0x4fda8c,JSON[_0xb664('0x24')](_0x1a8324));_0x5f2c0b(_0x1a8324);})[_0xb664('0x1a')](function(_0x6e8d48){logger[_0xb664('0x17')](_0xb664('0x1b'),_0x6e8d48[_0xb664('0x18')],_0x4fda8c);_0x34961a(_0x147724[_0xb664('0x17')](0x1f4,_0x6e8d48[_0xb664('0x18')]));});});};exports[_0xb664('0x25')]=function(_0x47a8e0){var _0x222966=this;return new Promise(function(_0x5970a8,_0x23720d){return db['VoiceQueue'][_0xb664('0x26')]({'raw':_0x47a8e0[_0xb664('0x1d')]?_0x47a8e0[_0xb664('0x1d')][_0xb664('0x1e')]===undefined?!![]:![]:!![],'where':_0x47a8e0[_0xb664('0x1d')]?_0x47a8e0[_0xb664('0x1d')][_0xb664('0x27')]||null:null,'attributes':_0x47a8e0[_0xb664('0x1d')]?_0x47a8e0[_0xb664('0x1d')][_0xb664('0x1f')]||null:null,'include':_0x47a8e0['options']?_0x47a8e0['options'][_0xb664('0x21')]?_[_0xb664('0x22')](_0x47a8e0[_0xb664('0x1d')]['include'],function(_0x4a2f02){return{'model':db[_0x4a2f02['model']],'as':_0x4a2f02['as'],'attributes':_0x4a2f02[_0xb664('0x1f')],'include':_0x4a2f02[_0xb664('0x21')]?_[_0xb664('0x22')](_0x4a2f02[_0xb664('0x21')],function(_0x164698){return{'model':db[_0x164698[_0xb664('0x23')]],'as':_0x164698['as'],'attributes':_0x164698[_0xb664('0x1f')],'include':_0x164698[_0xb664('0x21')]?_[_0xb664('0x22')](_0x164698['include'],function(_0x176a99){return{'model':db[_0x176a99[_0xb664('0x23')]],'as':_0x176a99['as'],'attributes':_0x176a99['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x5db8dc){logger[_0xb664('0x13')](_0xb664('0x25'),_0x47a8e0);logger[_0xb664('0x16')](_0xb664('0x25'),_0x47a8e0,JSON['stringify'](_0x5db8dc));_0x5970a8(_0x5db8dc);})[_0xb664('0x1a')](function(_0x1c2aa2){logger['error'](_0xb664('0x25'),_0x1c2aa2[_0xb664('0x18')],_0x47a8e0);_0x23720d(_0x222966[_0xb664('0x17')](0x1f4,_0x1c2aa2['message']));});});};
\ No newline at end of file
+var _0xa5cd=['GetVoiceQueue','catch','raw','ShowVoiceQueue','stringify','lodash','util','../../mysqldb','../../config/utils','rpc','http','defaults','localhost','redis','./voiceQueue.socket','register','request','info','VoiceQueue,\x20%s,\x20%s','request\x20sent','debug','VoiceQueue,\x20%s,\x20%s,\x20%s','error','code','message','result','VoiceQueue','findAll','options','where','attributes','limit','include','map','model','then'];(function(_0x3b3763,_0x55817f){var _0x4b9048=function(_0x22b5ac){while(--_0x22b5ac){_0x3b3763['push'](_0x3b3763['shift']());}};_0x4b9048(++_0x55817f);}(_0xa5cd,0x1d9));var _0xda5c=function(_0x13b8f3,_0x442821){_0x13b8f3=_0x13b8f3-0x0;var _0x1a6d06=_0xa5cd[_0x13b8f3];return _0x1a6d06;};'use strict';var _=require(_0xda5c('0x0'));var util=require(_0xda5c('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0xda5c('0x2'))['db'];var utils=require(_0xda5c('0x3'));var logger=require('../../config/logger')(_0xda5c('0x4'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson['client'][_0xda5c('0x5')]({'port':0x232a});config['redis']=_[_0xda5c('0x6')](config['redis'],{'host':_0xda5c('0x7'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xda5c('0x8')]));require(_0xda5c('0x9'))[_0xda5c('0xa')](socket);function respondWithRpcPromise(_0x44956c,_0x21901e,_0x3096a7){return new BPromise(function(_0x1ee7d5,_0x38c834){return client[_0xda5c('0xb')](_0x44956c,_0x3096a7)['then'](function(_0x1110ea){logger[_0xda5c('0xc')](_0xda5c('0xd'),_0x21901e,_0xda5c('0xe'));logger[_0xda5c('0xf')](_0xda5c('0x10'),_0x21901e,'request\x20sent',JSON['stringify'](_0x1110ea));if(_0x1110ea[_0xda5c('0x11')]){if(_0x1110ea[_0xda5c('0x11')][_0xda5c('0x12')]===0x1f4){logger['error'](_0xda5c('0xd'),_0x21901e,_0x1110ea[_0xda5c('0x11')][_0xda5c('0x13')]);return _0x38c834(_0x1110ea[_0xda5c('0x11')][_0xda5c('0x13')]);}logger[_0xda5c('0x11')](_0xda5c('0xd'),_0x21901e,_0x1110ea[_0xda5c('0x11')][_0xda5c('0x13')]);return _0x1ee7d5(_0x1110ea['error'][_0xda5c('0x13')]);}else{logger[_0xda5c('0xc')](_0xda5c('0xd'),_0x21901e,'request\x20sent');_0x1ee7d5(_0x1110ea[_0xda5c('0x14')][_0xda5c('0x13')]);}})['catch'](function(_0x4476c0){logger[_0xda5c('0x11')]('VoiceQueue,\x20%s,\x20%s',_0x21901e,_0x4476c0);_0x38c834(_0x4476c0);});});}exports['GetVoiceQueue']=function(_0x5766e3){var _0xc38d4=this;return new Promise(function(_0x31cbc7,_0x2804b4){return db[_0xda5c('0x15')][_0xda5c('0x16')]({'raw':_0x5766e3[_0xda5c('0x17')]?_0x5766e3[_0xda5c('0x17')]['raw']===undefined?!![]:![]:!![],'where':_0x5766e3[_0xda5c('0x17')]?_0x5766e3[_0xda5c('0x17')][_0xda5c('0x18')]||null:null,'attributes':_0x5766e3[_0xda5c('0x17')]?_0x5766e3[_0xda5c('0x17')][_0xda5c('0x19')]||null:null,'limit':_0x5766e3[_0xda5c('0x17')]?_0x5766e3['options'][_0xda5c('0x1a')]||null:null,'include':_0x5766e3['options']?_0x5766e3['options'][_0xda5c('0x1b')]?_[_0xda5c('0x1c')](_0x5766e3[_0xda5c('0x17')][_0xda5c('0x1b')],function(_0x38e3e1){return{'model':db[_0x38e3e1[_0xda5c('0x1d')]],'as':_0x38e3e1['as'],'attributes':_0x38e3e1['attributes'],'include':_0x38e3e1[_0xda5c('0x1b')]?_['map'](_0x38e3e1['include'],function(_0x440c73){return{'model':db[_0x440c73[_0xda5c('0x1d')]],'as':_0x440c73['as'],'attributes':_0x440c73[_0xda5c('0x19')],'include':_0x440c73[_0xda5c('0x1b')]?_[_0xda5c('0x1c')](_0x440c73['include'],function(_0xa61b0){return{'model':db[_0xa61b0[_0xda5c('0x1d')]],'as':_0xa61b0['as'],'attributes':_0xa61b0['attributes']};}):[]};}):[]};}):[]:[]})[_0xda5c('0x1e')](function(_0x287b23){logger[_0xda5c('0xc')](_0xda5c('0x1f'),_0x5766e3);logger['debug'](_0xda5c('0x1f'),_0x5766e3,JSON['stringify'](_0x287b23));_0x31cbc7(_0x287b23);})[_0xda5c('0x20')](function(_0x39b13d){logger[_0xda5c('0x11')](_0xda5c('0x1f'),_0x39b13d[_0xda5c('0x13')],_0x5766e3);_0x2804b4(_0xc38d4[_0xda5c('0x11')](0x1f4,_0x39b13d[_0xda5c('0x13')]));});});};exports['ShowVoiceQueue']=function(_0x5e55d2){var _0x5b9180=this;return new Promise(function(_0x35c93c,_0x4af666){return db[_0xda5c('0x15')]['find']({'raw':_0x5e55d2['options']?_0x5e55d2[_0xda5c('0x17')][_0xda5c('0x21')]===undefined?!![]:![]:!![],'where':_0x5e55d2[_0xda5c('0x17')]?_0x5e55d2[_0xda5c('0x17')][_0xda5c('0x18')]||null:null,'attributes':_0x5e55d2[_0xda5c('0x17')]?_0x5e55d2[_0xda5c('0x17')]['attributes']||null:null,'include':_0x5e55d2[_0xda5c('0x17')]?_0x5e55d2[_0xda5c('0x17')][_0xda5c('0x1b')]?_[_0xda5c('0x1c')](_0x5e55d2[_0xda5c('0x17')][_0xda5c('0x1b')],function(_0x5613f1){return{'model':db[_0x5613f1[_0xda5c('0x1d')]],'as':_0x5613f1['as'],'attributes':_0x5613f1[_0xda5c('0x19')],'include':_0x5613f1['include']?_[_0xda5c('0x1c')](_0x5613f1[_0xda5c('0x1b')],function(_0x4cb6bd){return{'model':db[_0x4cb6bd[_0xda5c('0x1d')]],'as':_0x4cb6bd['as'],'attributes':_0x4cb6bd[_0xda5c('0x19')],'include':_0x4cb6bd[_0xda5c('0x1b')]?_[_0xda5c('0x1c')](_0x4cb6bd[_0xda5c('0x1b')],function(_0x59e8fc){return{'model':db[_0x59e8fc[_0xda5c('0x1d')]],'as':_0x59e8fc['as'],'attributes':_0x59e8fc[_0xda5c('0x19')]};}):[]};}):[]};}):[]:[]})[_0xda5c('0x1e')](function(_0x1e9482){logger[_0xda5c('0xc')](_0xda5c('0x22'),_0x5e55d2);logger[_0xda5c('0xf')](_0xda5c('0x22'),_0x5e55d2,JSON[_0xda5c('0x23')](_0x1e9482));_0x35c93c(_0x1e9482);})[_0xda5c('0x20')](function(_0x1152ec){logger[_0xda5c('0x11')](_0xda5c('0x22'),_0x1152ec[_0xda5c('0x13')],_0x5e55d2);_0x4af666(_0x5b9180[_0xda5c('0x11')](0x1f4,_0x1152ec[_0xda5c('0x13')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa73e=['save','remove','emit','removeListener','voiceQueue:','./voiceQueue.events'];(function(_0x40a045,_0x516f0e){var _0x1a687c=function(_0x48c9fe){while(--_0x48c9fe){_0x40a045['push'](_0x40a045['shift']());}};_0x1a687c(++_0x516f0e);}(_0xa73e,0x131));var _0xea73=function(_0x497c13,_0x235718){_0x497c13=_0x497c13-0x0;var _0x17fbea=_0xa73e[_0x497c13];return _0x17fbea;};'use strict';var VoiceQueueEvents=require(_0xea73('0x0'));var events=[_0xea73('0x1'),_0xea73('0x2'),'update'];function createListener(_0x49d448,_0x185656){return function(_0x4c4c99){_0x185656[_0xea73('0x3')](_0x49d448,_0x4c4c99);};}function removeListener(_0x1a5033,_0x93173f){return function(){VoiceQueueEvents[_0xea73('0x4')](_0x1a5033,_0x93173f);};}exports['register']=function(_0x451c2f){for(var _0x1b906f=0x0,_0x5c3fb9=events['length'];_0x1b906f<_0x5c3fb9;_0x1b906f++){var _0x3dfbbf=events[_0x1b906f];var _0x4ebca5=createListener(_0xea73('0x5')+_0x3dfbbf,_0x451c2f);VoiceQueueEvents['on'](_0x3dfbbf,_0x4ebca5);}};
\ No newline at end of file
+var _0x0b60=['removeListener','length','voiceQueue:','./voiceQueue.events','save','remove','update','emit'];(function(_0x257896,_0x8de612){var _0x1ff242=function(_0x8ea06a){while(--_0x8ea06a){_0x257896['push'](_0x257896['shift']());}};_0x1ff242(++_0x8de612);}(_0x0b60,0x8b));var _0x00b6=function(_0x4caade,_0x549ce1){_0x4caade=_0x4caade-0x0;var _0x2041ff=_0x0b60[_0x4caade];return _0x2041ff;};'use strict';var VoiceQueueEvents=require(_0x00b6('0x0'));var events=[_0x00b6('0x1'),_0x00b6('0x2'),_0x00b6('0x3')];function createListener(_0x290902,_0x4d9209){return function(_0x128716){_0x4d9209[_0x00b6('0x4')](_0x290902,_0x128716);};}function removeListener(_0x2848ab,_0x2467c2){return function(){VoiceQueueEvents[_0x00b6('0x5')](_0x2848ab,_0x2467c2);};}exports['register']=function(_0x3b0bae){for(var _0x29b0ea=0x0,_0x4f9511=events[_0x00b6('0x6')];_0x29b0ea<_0x4f9511;_0x29b0ea++){var _0x40c5b8=events[_0x29b0ea];var _0x3838f6=createListener(_0x00b6('0x7')+_0x40c5b8,_0x3b0bae);VoiceQueueEvents['on'](_0x40c5b8,_0x3838f6);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xac5b=['connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./voiceQueueReport.controller','get','isAuthenticated','/index','getVoiceQueuesReport','/:id','show','post','delete','destroy','exports','util','path'];(function(_0x19f695,_0x3d7001){var _0x36ded1=function(_0x45b881){while(--_0x45b881){_0x19f695['push'](_0x19f695['shift']());}};_0x36ded1(++_0x3d7001);}(_0xac5b,0xb2));var _0xbac5=function(_0x403c20,_0x4a7b99){_0x403c20=_0x403c20-0x0;var _0x2b271a=_0xac5b[_0x403c20];return _0x2b271a;};'use strict';var multer=require('multer');var util=require(_0xbac5('0x0'));var path=require(_0xbac5('0x1'));var timeout=require(_0xbac5('0x2'));var express=require(_0xbac5('0x3'));var router=express[_0xbac5('0x4')]();var fs_extra=require(_0xbac5('0x5'));var auth=require(_0xbac5('0x6'));var interaction=require(_0xbac5('0x7'));var config=require(_0xbac5('0x8'));var controller=require(_0xbac5('0x9'));router[_0xbac5('0xa')]('/',auth[_0xbac5('0xb')](),controller['index']);router[_0xbac5('0xa')]('/describe',auth[_0xbac5('0xb')](),controller['describe']);router['get'](_0xbac5('0xc'),auth[_0xbac5('0xb')](),controller[_0xbac5('0xd')]);router['get'](_0xbac5('0xe'),auth[_0xbac5('0xb')](),controller[_0xbac5('0xf')]);router[_0xbac5('0x10')]('/',auth[_0xbac5('0xb')](),controller['create']);router['put'](_0xbac5('0xe'),auth['isAuthenticated'](),controller['update']);router[_0xbac5('0x11')](_0xbac5('0xe'),auth[_0xbac5('0xb')](),controller[_0xbac5('0x12')]);module[_0xbac5('0x13')]=router;
\ No newline at end of file
+var _0x567d=['/:id','destroy','exports','multer','path','express','fs-extra','../../components/interaction/service','./voiceQueueReport.controller','get','index','/describe','describe','/index','isAuthenticated','show','post','create','put','delete'];(function(_0x5f46e7,_0x62f9f8){var _0x567e95=function(_0x5cb693){while(--_0x5cb693){_0x5f46e7['push'](_0x5f46e7['shift']());}};_0x567e95(++_0x62f9f8);}(_0x567d,0xcb));var _0xd567=function(_0x2f5c21,_0x4b59c7){_0x2f5c21=_0x2f5c21-0x0;var _0x219851=_0x567d[_0x2f5c21];return _0x219851;};'use strict';var multer=require(_0xd567('0x0'));var util=require('util');var path=require(_0xd567('0x1'));var timeout=require('connect-timeout');var express=require(_0xd567('0x2'));var router=express['Router']();var fs_extra=require(_0xd567('0x3'));var auth=require('../../components/auth/service');var interaction=require(_0xd567('0x4'));var config=require('../../config/environment');var controller=require(_0xd567('0x5'));router[_0xd567('0x6')]('/',auth['isAuthenticated'](),controller[_0xd567('0x7')]);router[_0xd567('0x6')](_0xd567('0x8'),auth['isAuthenticated'](),controller[_0xd567('0x9')]);router[_0xd567('0x6')](_0xd567('0xa'),auth[_0xd567('0xb')](),controller['getVoiceQueuesReport']);router[_0xd567('0x6')]('/:id',auth[_0xd567('0xb')](),controller[_0xd567('0xc')]);router[_0xd567('0xd')]('/',auth[_0xd567('0xb')](),controller[_0xd567('0xe')]);router[_0xd567('0xf')]('/:id',auth[_0xd567('0xb')](),controller['update']);router[_0xd567('0x10')](_0xd567('0x11'),auth['isAuthenticated'](),controller[_0xd567('0x12')]);module[_0xd567('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6265=['STRING','DATE','getDataValue','queuecallerjoinAt','format','YYYY-MM-DD\x20HH:mm:ss','diff','seconds','setDataValue','INTEGER','BOOLEAN','COMPLETEDBYCALLER,\x20COMPLETEDBYAGENT,\x20FORWARDTRANFER,\x20BLINDTRANSFER,\x20ATTENDEDTRANSFER,\x20EXITWITHKEY,\x20TIMEOUT','FORWARD,\x20BLIND,\x20ATTENDED','moment'];(function(_0x432fca,_0xb0b1b5){var _0x3adba4=function(_0x5e3ae4){while(--_0x5e3ae4){_0x432fca['push'](_0x432fca['shift']());}};_0x3adba4(++_0xb0b1b5);}(_0x6265,0x15d));var _0x5626=function(_0x69cf2c,_0x209feb){_0x69cf2c=_0x69cf2c-0x0;var _0x5a0817=_0x6265[_0x69cf2c];return _0x5a0817;};'use strict';var Sequelize=require('sequelize');var moment=require(_0x5626('0x0'));module['exports']={'type':{'type':Sequelize[_0x5626('0x1')]},'uniqueid':{'type':Sequelize[_0x5626('0x1')]},'calleridnum':{'type':Sequelize[_0x5626('0x1')]},'calleridname':{'type':Sequelize[_0x5626('0x1')]},'queue':{'type':Sequelize['STRING']},'queuecallerjoinAt':{'type':Sequelize[_0x5626('0x2')]},'queuecallerleaveAt':{'type':Sequelize[_0x5626('0x2')],'set':function(_0x135412){var _0x2116dd=moment(_0x135412);var _0x49e1f0=moment(this[_0x5626('0x3')](_0x5626('0x4')))[_0x5626('0x5')](_0x5626('0x6'));var _0x4bc111=_0x2116dd[_0x5626('0x7')](_0x49e1f0,_0x5626('0x8'));this[_0x5626('0x9')]('queuecallerleaveAt',_0x135412);this['setDataValue']('holdtime',_0x4bc111||null);}},'position':{'type':Sequelize[_0x5626('0xa')]},'count':{'type':Sequelize[_0x5626('0xa')]},'queuecallerabandon':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'queuecallerabandonAt':{'type':Sequelize[_0x5626('0x2')]},'queuecallercomplete':{'type':Sequelize[_0x5626('0xb')],'defaultValue':![]},'queuecallercompleteAt':{'type':Sequelize[_0x5626('0x2')]},'queuecallerexit':{'type':Sequelize[_0x5626('0xb')],'defaultValue':![]},'queuecallerexitAt':{'type':Sequelize['DATE']},'queuecallerexitreason':{'type':Sequelize[_0x5626('0x1')],'comment':_0x5626('0xc')},'originalposition':{'type':Sequelize[_0x5626('0xa')]},'channel':{'type':Sequelize[_0x5626('0x1')]},'connectedlinenum':{'type':Sequelize['STRING']},'connectedlinename':{'type':Sequelize['STRING']},'accountcode':{'type':Sequelize[_0x5626('0x1')]},'context':{'type':Sequelize[_0x5626('0x1')]},'exten':{'type':Sequelize[_0x5626('0x1')]},'priority':{'type':Sequelize[_0x5626('0x1')]},'holdtime':{'type':Sequelize['INTEGER']},'mohtime':{'type':Sequelize[_0x5626('0xa')],'defaultValue':0x0},'assigned':{'type':Sequelize[_0x5626('0xb')],'defaultValue':![]},'lastAssignedTo':{'type':Sequelize[_0x5626('0x1')]},'transfer':{'type':Sequelize[_0x5626('0xb')],'defaultValue':![]},'transfertype':{'type':Sequelize['STRING'],'comment':_0x5626('0xd')},'transferexten':{'type':Sequelize['STRING']},'transferuniqueid':{'type':Sequelize[_0x5626('0x1')]},'disposition':{'type':Sequelize[_0x5626('0x1')]},'secondDisposition':{'type':Sequelize[_0x5626('0x1')]},'thirdDisposition':{'type':Sequelize[_0x5626('0x1')]},'queuecallerenterreason':{'type':Sequelize['INTEGER'],'defaultValue':0x0}};
\ No newline at end of file
+var _0xe72d=['YYYY-MM-DD\x20HH:mm:ss','diff','seconds','setDataValue','queuecallerleaveAt','holdtime','BOOLEAN','COMPLETEDBYCALLER,\x20COMPLETEDBYAGENT,\x20FORWARDTRANFER,\x20BLINDTRANSFER,\x20ATTENDEDTRANSFER,\x20EXITWITHKEY,\x20TIMEOUT','INTEGER','sequelize','moment','exports','STRING','DATE','getDataValue','queuecallerjoinAt','format'];(function(_0x25e109,_0x6ab24c){var _0xc0f7d6=function(_0x2fb92b){while(--_0x2fb92b){_0x25e109['push'](_0x25e109['shift']());}};_0xc0f7d6(++_0x6ab24c);}(_0xe72d,0x1c3));var _0xde72=function(_0x29d94e,_0xf386d6){_0x29d94e=_0x29d94e-0x0;var _0x106237=_0xe72d[_0x29d94e];return _0x106237;};'use strict';var Sequelize=require(_0xde72('0x0'));var moment=require(_0xde72('0x1'));module[_0xde72('0x2')]={'type':{'type':Sequelize['STRING']},'uniqueid':{'type':Sequelize['STRING']},'calleridnum':{'type':Sequelize[_0xde72('0x3')]},'calleridname':{'type':Sequelize[_0xde72('0x3')]},'queue':{'type':Sequelize['STRING']},'queuecallerjoinAt':{'type':Sequelize['DATE']},'queuecallerleaveAt':{'type':Sequelize[_0xde72('0x4')],'set':function(_0x470a5e){var _0x5a613d=moment(_0x470a5e);var _0x5f254f=moment(this[_0xde72('0x5')](_0xde72('0x6')))[_0xde72('0x7')](_0xde72('0x8'));var _0x30a519=_0x5a613d[_0xde72('0x9')](_0x5f254f,_0xde72('0xa'));this[_0xde72('0xb')](_0xde72('0xc'),_0x470a5e);this['setDataValue'](_0xde72('0xd'),_0x30a519||null);}},'position':{'type':Sequelize['INTEGER']},'count':{'type':Sequelize['INTEGER']},'queuecallerabandon':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'queuecallerabandonAt':{'type':Sequelize[_0xde72('0x4')]},'queuecallercomplete':{'type':Sequelize[_0xde72('0xe')],'defaultValue':![]},'queuecallercompleteAt':{'type':Sequelize[_0xde72('0x4')]},'queuecallerexit':{'type':Sequelize[_0xde72('0xe')],'defaultValue':![]},'queuecallerexitAt':{'type':Sequelize[_0xde72('0x4')]},'queuecallerexitreason':{'type':Sequelize[_0xde72('0x3')],'comment':_0xde72('0xf')},'originalposition':{'type':Sequelize[_0xde72('0x10')]},'channel':{'type':Sequelize[_0xde72('0x3')]},'connectedlinenum':{'type':Sequelize[_0xde72('0x3')]},'connectedlinename':{'type':Sequelize[_0xde72('0x3')]},'accountcode':{'type':Sequelize['STRING']},'context':{'type':Sequelize[_0xde72('0x3')]},'exten':{'type':Sequelize[_0xde72('0x3')]},'priority':{'type':Sequelize[_0xde72('0x3')]},'holdtime':{'type':Sequelize[_0xde72('0x10')]},'mohtime':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'assigned':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'lastAssignedTo':{'type':Sequelize['STRING']},'transfer':{'type':Sequelize[_0xde72('0xe')],'defaultValue':![]},'transfertype':{'type':Sequelize[_0xde72('0x3')],'comment':'FORWARD,\x20BLIND,\x20ATTENDED'},'transferexten':{'type':Sequelize['STRING']},'transferuniqueid':{'type':Sequelize['STRING']},'disposition':{'type':Sequelize[_0xde72('0x3')]},'secondDisposition':{'type':Sequelize[_0xde72('0x3')]},'thirdDisposition':{'type':Sequelize['STRING']},'queuecallerenterreason':{'type':Sequelize['INTEGER'],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6a0b=['create','body','describe','getVoiceQueuesReport','nolimit','order','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','util','path','ejs','fs-extra','lodash','to-csv','querystring','papaparse','../../components/auth/service','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','socket.io-emitter','./voiceQueueReport.socket','sendStatus','status','end','json','offset','undefined','limit','count','set','reject','update','then','destroy','error','stack','name','send','index','map','rawAttributes','fieldName','type','query','keys','intersection','model','attributes','fields','length','hasOwnProperty','sort','where','filters','pick','filter','VIRTUAL','merge','options','VoiceQueueReport','includeAll','include','findAll','params','find','catch'];(function(_0x33abed,_0x1fcec5){var _0x501dc1=function(_0x1194c9){while(--_0x1194c9){_0x33abed['push'](_0x33abed['shift']());}};_0x501dc1(++_0x1fcec5);}(_0x6a0b,0x178));var _0xb6a0=function(_0x5aa0b9,_0x4ca92d){_0x5aa0b9=_0x5aa0b9-0x0;var _0x4038c9=_0x6a0b[_0x5aa0b9];return _0x4038c9;};'use strict';var emlformat=require(_0xb6a0('0x0'));var rimraf=require(_0xb6a0('0x1'));var zipdir=require(_0xb6a0('0x2'));var jsonpatch=require(_0xb6a0('0x3'));var rp=require(_0xb6a0('0x4'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xb6a0('0x5'));var path=require(_0xb6a0('0x6'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0xb6a0('0x7'));var fs=require('fs');var fs_extra=require(_0xb6a0('0x8'));var _=require(_0xb6a0('0x9'));var squel=require('squel');var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xb6a0('0xa'));var querystring=require(_0xb6a0('0xb'));var Papa=require(_0xb6a0('0xc'));var Redis=require('ioredis');var authService=require(_0xb6a0('0xd'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xb6a0('0xe'));var logger=require(_0xb6a0('0xf'))('api');var utils=require(_0xb6a0('0x10'));var config=require(_0xb6a0('0x11'));var licenseUtil=require(_0xb6a0('0x12'));var db=require(_0xb6a0('0x13'))['db'];config[_0xb6a0('0x14')]=_['defaults'](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0xb6a0('0x15'))(new Redis(config[_0xb6a0('0x14')]));require(_0xb6a0('0x16'))['register'](socket);function respondWithStatusCode(_0x9a3b4,_0x33b924){_0x33b924=_0x33b924||0xcc;return function(_0x3fd73d){if(_0x3fd73d){return _0x9a3b4[_0xb6a0('0x17')](_0x33b924);}return _0x9a3b4[_0xb6a0('0x18')](_0x33b924)[_0xb6a0('0x19')]();};}function respondWithResult(_0x4f361f,_0x15bb83){_0x15bb83=_0x15bb83||0xc8;return function(_0x5348d4){if(_0x5348d4){return _0x4f361f['status'](_0x15bb83)[_0xb6a0('0x1a')](_0x5348d4);}};}function respondWithFilteredResult(_0x301225,_0x4eddb5){return function(_0x4e62a3){if(_0x4e62a3){var _0x3165b2=typeof _0x4eddb5[_0xb6a0('0x1b')]===_0xb6a0('0x1c')&&typeof _0x4eddb5[_0xb6a0('0x1d')]==='undefined';var _0x469b4d=_0x4e62a3['count'];var _0x3b0183=_0x3165b2?0x0:_0x4eddb5[_0xb6a0('0x1b')];var _0xa60de1=_0x3165b2?_0x4e62a3[_0xb6a0('0x1e')]:_0x4eddb5[_0xb6a0('0x1b')]+_0x4eddb5[_0xb6a0('0x1d')];var _0x28aba8;if(_0xa60de1>=_0x469b4d){_0xa60de1=_0x469b4d;_0x28aba8=0xc8;}else{_0x28aba8=0xce;}_0x301225[_0xb6a0('0x18')](_0x28aba8);return _0x301225[_0xb6a0('0x1f')]('Content-Range',_0x3b0183+'-'+_0xa60de1+'/'+_0x469b4d)[_0xb6a0('0x1a')](_0x4e62a3);}return null;};}function patchUpdates(_0x4f1163){return function(_0x47e78f){try{jsonpatch['apply'](_0x47e78f,_0x4f1163,!![]);}catch(_0x4c7f1c){return BPromise[_0xb6a0('0x20')](_0x4c7f1c);}return _0x47e78f['save']();};}function saveUpdates(_0x364211,_0x3aeac2){return function(_0x16def3){if(_0x16def3){return _0x16def3[_0xb6a0('0x21')](_0x364211)[_0xb6a0('0x22')](function(_0x564f67){return _0x564f67;});}return null;};}function removeEntity(_0x500b1a,_0x30008c){return function(_0xd44176){if(_0xd44176){return _0xd44176[_0xb6a0('0x23')]()[_0xb6a0('0x22')](function(){_0x500b1a['status'](0xcc)[_0xb6a0('0x19')]();});}};}function handleEntityNotFound(_0x59f6e7,_0x543ff7){return function(_0x2261ae){if(!_0x2261ae){_0x59f6e7['sendStatus'](0x194);}return _0x2261ae;};}function handleError(_0x45b33b,_0x2932c9){_0x2932c9=_0x2932c9||0x1f4;return function(_0x16355d){logger[_0xb6a0('0x24')](_0x16355d[_0xb6a0('0x25')]);if(_0x16355d['name']){delete _0x16355d[_0xb6a0('0x26')];}_0x45b33b[_0xb6a0('0x18')](_0x2932c9)[_0xb6a0('0x27')](_0x16355d);};}exports[_0xb6a0('0x28')]=function(_0x5b2ad4,_0x2ec1c8){var _0x35920b={},_0x5c330a={},_0x2d0e4a={'count':0x0,'rows':[]};var _0x2bf3a4=_[_0xb6a0('0x29')](db['VoiceQueueReport'][_0xb6a0('0x2a')],function(_0x4f3433){return{'name':_0x4f3433[_0xb6a0('0x2b')],'type':_0x4f3433[_0xb6a0('0x2c')]['key']};});_0x5c330a['model']=_['map'](_0x2bf3a4,'name');_0x5c330a[_0xb6a0('0x2d')]=_[_0xb6a0('0x2e')](_0x5b2ad4[_0xb6a0('0x2d')]);_0x5c330a['filters']=_[_0xb6a0('0x2f')](_0x5c330a[_0xb6a0('0x30')],_0x5c330a[_0xb6a0('0x2d')]);_0x35920b[_0xb6a0('0x31')]=_['intersection'](_0x5c330a[_0xb6a0('0x30')],qs[_0xb6a0('0x32')](_0x5b2ad4[_0xb6a0('0x2d')][_0xb6a0('0x32')]));_0x35920b['attributes']=_0x35920b[_0xb6a0('0x31')][_0xb6a0('0x33')]?_0x35920b[_0xb6a0('0x31')]:_0x5c330a['model'];if(!_0x5b2ad4[_0xb6a0('0x2d')][_0xb6a0('0x34')]('nolimit')){_0x35920b[_0xb6a0('0x1d')]=qs[_0xb6a0('0x1d')](_0x5b2ad4['query'][_0xb6a0('0x1d')]);_0x35920b[_0xb6a0('0x1b')]=qs[_0xb6a0('0x1b')](_0x5b2ad4[_0xb6a0('0x2d')][_0xb6a0('0x1b')]);}_0x35920b['order']=qs[_0xb6a0('0x35')](_0x5b2ad4[_0xb6a0('0x2d')][_0xb6a0('0x35')]);_0x35920b[_0xb6a0('0x36')]=qs[_0xb6a0('0x37')](_[_0xb6a0('0x38')](_0x5b2ad4['query'],_0x5c330a[_0xb6a0('0x37')]),_0x2bf3a4);if(_0x5b2ad4[_0xb6a0('0x2d')][_0xb6a0('0x39')]){_0x35920b[_0xb6a0('0x36')]=_['merge'](_0x35920b[_0xb6a0('0x36')],{'$or':_[_0xb6a0('0x29')](_0x2bf3a4,function(_0x425b3a){if(_0x425b3a[_0xb6a0('0x2c')]!==_0xb6a0('0x3a')){var _0x236745={};_0x236745[_0x425b3a[_0xb6a0('0x26')]]={'$like':'%'+_0x5b2ad4[_0xb6a0('0x2d')]['filter']+'%'};return _0x236745;}})});}_0x35920b=_[_0xb6a0('0x3b')]({},_0x35920b,_0x5b2ad4[_0xb6a0('0x3c')]);var _0x1ab42c={'where':_0x35920b[_0xb6a0('0x36')]};return db[_0xb6a0('0x3d')][_0xb6a0('0x1e')](_0x1ab42c)[_0xb6a0('0x22')](function(_0x315794){_0x2d0e4a[_0xb6a0('0x1e')]=_0x315794;if(_0x5b2ad4['query'][_0xb6a0('0x3e')]){_0x35920b[_0xb6a0('0x3f')]=[{'all':!![]}];}return db['VoiceQueueReport'][_0xb6a0('0x40')](_0x35920b);})[_0xb6a0('0x22')](function(_0x2c02a4){_0x2d0e4a['rows']=_0x2c02a4;return _0x2d0e4a;})[_0xb6a0('0x22')](respondWithFilteredResult(_0x2ec1c8,_0x35920b))['catch'](handleError(_0x2ec1c8,null));};exports['show']=function(_0x20dd5e,_0x4ef876){var _0x3b0977={'raw':![],'where':{'id':_0x20dd5e[_0xb6a0('0x41')]['id']}},_0x591285={};_0x591285[_0xb6a0('0x30')]=_['keys'](db[_0xb6a0('0x3d')]['rawAttributes']);_0x591285[_0xb6a0('0x2d')]=_[_0xb6a0('0x2e')](_0x20dd5e[_0xb6a0('0x2d')]);_0x591285[_0xb6a0('0x37')]=_['intersection'](_0x591285[_0xb6a0('0x30')],_0x591285[_0xb6a0('0x2d')]);_0x3b0977[_0xb6a0('0x31')]=_[_0xb6a0('0x2f')](_0x591285[_0xb6a0('0x30')],qs[_0xb6a0('0x32')](_0x20dd5e[_0xb6a0('0x2d')][_0xb6a0('0x32')]));_0x3b0977['attributes']=_0x3b0977[_0xb6a0('0x31')][_0xb6a0('0x33')]?_0x3b0977[_0xb6a0('0x31')]:_0x591285['model'];if(_0x20dd5e[_0xb6a0('0x2d')][_0xb6a0('0x3e')]){_0x3b0977['include']=[{'all':!![]}];}_0x3b0977=_[_0xb6a0('0x3b')]({},_0x3b0977,_0x20dd5e[_0xb6a0('0x3c')]);return db[_0xb6a0('0x3d')][_0xb6a0('0x42')](_0x3b0977)[_0xb6a0('0x22')](handleEntityNotFound(_0x4ef876,null))[_0xb6a0('0x22')](respondWithResult(_0x4ef876,null))[_0xb6a0('0x43')](handleError(_0x4ef876,null));};exports[_0xb6a0('0x44')]=function(_0x7a041a,_0x2aa0a3){return db[_0xb6a0('0x3d')]['create'](_0x7a041a['body'],{})[_0xb6a0('0x22')](respondWithResult(_0x2aa0a3,0xc9))[_0xb6a0('0x43')](handleError(_0x2aa0a3,null));};exports[_0xb6a0('0x21')]=function(_0xf1a89d,_0x19f839){if(_0xf1a89d[_0xb6a0('0x45')]['id']){delete _0xf1a89d[_0xb6a0('0x45')]['id'];}return db['VoiceQueueReport'][_0xb6a0('0x42')]({'where':{'id':_0xf1a89d[_0xb6a0('0x41')]['id']}})[_0xb6a0('0x22')](handleEntityNotFound(_0x19f839,null))['then'](saveUpdates(_0xf1a89d[_0xb6a0('0x45')],null))[_0xb6a0('0x22')](respondWithResult(_0x19f839,null))[_0xb6a0('0x43')](handleError(_0x19f839,null));};exports[_0xb6a0('0x23')]=function(_0x5a0d01,_0x263d94){return db[_0xb6a0('0x3d')][_0xb6a0('0x42')]({'where':{'id':_0x5a0d01[_0xb6a0('0x41')]['id']}})[_0xb6a0('0x22')](handleEntityNotFound(_0x263d94,null))[_0xb6a0('0x22')](removeEntity(_0x263d94,null))['catch'](handleError(_0x263d94,null));};exports[_0xb6a0('0x46')]=function(_0x2e0117,_0x35a80a){return db[_0xb6a0('0x3d')]['describe']()['then'](respondWithResult(_0x35a80a,null))[_0xb6a0('0x43')](handleError(_0x35a80a,null));};exports[_0xb6a0('0x47')]=function(_0x27e1a7,_0x4420d2){var _0x1238af={},_0x479ba8={},_0x1cd4d5={'count':0x0,'rows':[]};_0x479ba8[_0xb6a0('0x30')]=_['keys'](db[_0xb6a0('0x3d')][_0xb6a0('0x2a')]);_0x479ba8['query']=_[_0xb6a0('0x2e')](_0x27e1a7[_0xb6a0('0x2d')]);_0x479ba8[_0xb6a0('0x37')]=_[_0xb6a0('0x2f')](_0x479ba8[_0xb6a0('0x30')],_0x479ba8['query']);_0x1238af[_0xb6a0('0x31')]=_[_0xb6a0('0x2f')](_0x479ba8['model'],qs[_0xb6a0('0x32')](_0x27e1a7[_0xb6a0('0x2d')][_0xb6a0('0x32')]));_0x1238af[_0xb6a0('0x31')]=_0x1238af[_0xb6a0('0x31')][_0xb6a0('0x33')]?_0x1238af[_0xb6a0('0x31')]:_0x479ba8['model'];if(!_0x27e1a7['query'][_0xb6a0('0x34')](_0xb6a0('0x48'))){_0x1238af[_0xb6a0('0x1d')]=qs[_0xb6a0('0x1d')](_0x27e1a7[_0xb6a0('0x2d')][_0xb6a0('0x1d')]);_0x1238af[_0xb6a0('0x1b')]=qs[_0xb6a0('0x1b')](_0x27e1a7[_0xb6a0('0x2d')][_0xb6a0('0x1b')]);}_0x1238af[_0xb6a0('0x49')]=qs['sort'](_0x27e1a7['query'][_0xb6a0('0x35')]);_0x1238af[_0xb6a0('0x36')]=qs[_0xb6a0('0x37')](_['pick'](_0x27e1a7[_0xb6a0('0x2d')],_0x479ba8[_0xb6a0('0x37')]));if(_0x27e1a7[_0xb6a0('0x2d')][_0xb6a0('0x39')]){_0x1238af[_0xb6a0('0x36')]=_['merge'](_0x1238af[_0xb6a0('0x36')],{'$or':_['map'](_0x1238af[_0xb6a0('0x31')],function(_0x2515eb){var _0x130b2a={};_0x130b2a[_0x2515eb]={'$like':'%'+_0x27e1a7[_0xb6a0('0x2d')]['filter']+'%'};return _0x130b2a;})});}_0x1238af=_[_0xb6a0('0x3b')]({},_0x1238af,_0x27e1a7[_0xb6a0('0x3c')]);var _0x21c231={'where':_0x1238af[_0xb6a0('0x36')]};return db[_0xb6a0('0x3d')][_0xb6a0('0x1e')](_0x21c231)[_0xb6a0('0x22')](function(_0x4f817f){_0x1cd4d5[_0xb6a0('0x1e')]=_0x4f817f;if(_0x27e1a7[_0xb6a0('0x2d')][_0xb6a0('0x3e')]){_0x1238af['include']=[{'all':!![]}];}return db['VoiceQueueReport'][_0xb6a0('0x40')](_0x1238af);})[_0xb6a0('0x22')](function(_0x1ecf4e){_0x1cd4d5['rows']=_0x1ecf4e;return _0x1cd4d5;})[_0xb6a0('0x22')](respondWithFilteredResult(_0x4420d2,_0x1238af,_0xb6a0('0x47')))[_0xb6a0('0x43')](handleError(_0x4420d2,null,_0xb6a0('0x47')));};
\ No newline at end of file
+var _0xd15f=['includeAll','include','find','create','body','catch','describe','getVoiceQueuesReport','order','pick','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','path','sox','to-csv','lodash','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','redis','localhost','socket.io-emitter','register','sendStatus','status','end','json','limit','undefined','offset','set','Content-Range','apply','reject','save','update','then','destroy','error','stack','name','send','index','map','VoiceQueueReport','rawAttributes','fieldName','type','key','model','filters','intersection','query','attributes','fields','length','hasOwnProperty','sort','where','filter','merge','VIRTUAL','options','count','findAll','rows','params','keys'];(function(_0x363ef8,_0x4ecb1a){var _0x148822=function(_0x232634){while(--_0x232634){_0x363ef8['push'](_0x363ef8['shift']());}};_0x148822(++_0x4ecb1a);}(_0xd15f,0x152));var _0xfd15=function(_0xd02bb,_0x26e2d0){_0xd02bb=_0xd02bb-0x0;var _0x1cdf23=_0xd15f[_0xd02bb];return _0x1cdf23;};'use strict';var emlformat=require(_0xfd15('0x0'));var rimraf=require(_0xfd15('0x1'));var zipdir=require(_0xfd15('0x2'));var jsonpatch=require(_0xfd15('0x3'));var rp=require(_0xfd15('0x4'));var moment=require(_0xfd15('0x5'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require('util');var path=require(_0xfd15('0x6'));var sox=require(_0xfd15('0x7'));var csv=require(_0xfd15('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xfd15('0x9'));var squel=require(_0xfd15('0xa'));var crypto=require(_0xfd15('0xb'));var jsforce=require(_0xfd15('0xc'));var deskjs=require(_0xfd15('0xd'));var toCsv=require('to-csv');var querystring=require(_0xfd15('0xe'));var Papa=require(_0xfd15('0xf'));var Redis=require('ioredis');var authService=require(_0xfd15('0x10'));var qs=require(_0xfd15('0x11'));var as=require(_0xfd15('0x12'));var hardwareService=require(_0xfd15('0x13'));var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require(_0xfd15('0x14'));var licenseUtil=require(_0xfd15('0x15'));var db=require(_0xfd15('0x16'))['db'];config[_0xfd15('0x17')]=_['defaults'](config[_0xfd15('0x17')],{'host':_0xfd15('0x18'),'port':0x18eb});var socket=require(_0xfd15('0x19'))(new Redis(config[_0xfd15('0x17')]));require('./voiceQueueReport.socket')[_0xfd15('0x1a')](socket);function respondWithStatusCode(_0x6c8431,_0x35051e){_0x35051e=_0x35051e||0xcc;return function(_0x1ebd4e){if(_0x1ebd4e){return _0x6c8431[_0xfd15('0x1b')](_0x35051e);}return _0x6c8431[_0xfd15('0x1c')](_0x35051e)[_0xfd15('0x1d')]();};}function respondWithResult(_0x379303,_0x3ba365){_0x3ba365=_0x3ba365||0xc8;return function(_0x4d180b){if(_0x4d180b){return _0x379303[_0xfd15('0x1c')](_0x3ba365)[_0xfd15('0x1e')](_0x4d180b);}};}function respondWithFilteredResult(_0x5a2348,_0x4be5b8){return function(_0x247d9c){if(_0x247d9c){var _0x505bb8=typeof _0x4be5b8['offset']==='undefined'&&typeof _0x4be5b8[_0xfd15('0x1f')]===_0xfd15('0x20');var _0x4c3a27=_0x247d9c['count'];var _0x57033b=_0x505bb8?0x0:_0x4be5b8[_0xfd15('0x21')];var _0x560aeb=_0x505bb8?_0x247d9c['count']:_0x4be5b8[_0xfd15('0x21')]+_0x4be5b8[_0xfd15('0x1f')];var _0x3c4301;if(_0x560aeb>=_0x4c3a27){_0x560aeb=_0x4c3a27;_0x3c4301=0xc8;}else{_0x3c4301=0xce;}_0x5a2348[_0xfd15('0x1c')](_0x3c4301);return _0x5a2348[_0xfd15('0x22')](_0xfd15('0x23'),_0x57033b+'-'+_0x560aeb+'/'+_0x4c3a27)['json'](_0x247d9c);}return null;};}function patchUpdates(_0x465f50){return function(_0x1238d4){try{jsonpatch[_0xfd15('0x24')](_0x1238d4,_0x465f50,!![]);}catch(_0x16f9e3){return BPromise[_0xfd15('0x25')](_0x16f9e3);}return _0x1238d4[_0xfd15('0x26')]();};}function saveUpdates(_0x226fc1,_0x56029e){return function(_0x12cf68){if(_0x12cf68){return _0x12cf68[_0xfd15('0x27')](_0x226fc1)[_0xfd15('0x28')](function(_0x2c2e37){return _0x2c2e37;});}return null;};}function removeEntity(_0x3e56a1,_0x42388e){return function(_0x1096f0){if(_0x1096f0){return _0x1096f0[_0xfd15('0x29')]()[_0xfd15('0x28')](function(){_0x3e56a1[_0xfd15('0x1c')](0xcc)[_0xfd15('0x1d')]();});}};}function handleEntityNotFound(_0x5102c3,_0x353963){return function(_0x72d2f){if(!_0x72d2f){_0x5102c3['sendStatus'](0x194);}return _0x72d2f;};}function handleError(_0x13f23f,_0x3ff394){_0x3ff394=_0x3ff394||0x1f4;return function(_0x941c8f){logger[_0xfd15('0x2a')](_0x941c8f[_0xfd15('0x2b')]);if(_0x941c8f[_0xfd15('0x2c')]){delete _0x941c8f['name'];}_0x13f23f[_0xfd15('0x1c')](_0x3ff394)[_0xfd15('0x2d')](_0x941c8f);};}exports[_0xfd15('0x2e')]=function(_0x514164,_0x496adb){var _0x341c3d={},_0x4d8154={},_0x449846={'count':0x0,'rows':[]};var _0x3cdd98=_[_0xfd15('0x2f')](db[_0xfd15('0x30')][_0xfd15('0x31')],function(_0x39c6e5){return{'name':_0x39c6e5[_0xfd15('0x32')],'type':_0x39c6e5[_0xfd15('0x33')][_0xfd15('0x34')]};});_0x4d8154[_0xfd15('0x35')]=_[_0xfd15('0x2f')](_0x3cdd98,_0xfd15('0x2c'));_0x4d8154['query']=_['keys'](_0x514164['query']);_0x4d8154[_0xfd15('0x36')]=_[_0xfd15('0x37')](_0x4d8154[_0xfd15('0x35')],_0x4d8154[_0xfd15('0x38')]);_0x341c3d[_0xfd15('0x39')]=_['intersection'](_0x4d8154['model'],qs[_0xfd15('0x3a')](_0x514164['query'][_0xfd15('0x3a')]));_0x341c3d[_0xfd15('0x39')]=_0x341c3d[_0xfd15('0x39')][_0xfd15('0x3b')]?_0x341c3d['attributes']:_0x4d8154[_0xfd15('0x35')];if(!_0x514164[_0xfd15('0x38')][_0xfd15('0x3c')]('nolimit')){_0x341c3d['limit']=qs[_0xfd15('0x1f')](_0x514164[_0xfd15('0x38')][_0xfd15('0x1f')]);_0x341c3d[_0xfd15('0x21')]=qs[_0xfd15('0x21')](_0x514164['query'][_0xfd15('0x21')]);}_0x341c3d['order']=qs[_0xfd15('0x3d')](_0x514164[_0xfd15('0x38')]['sort']);_0x341c3d[_0xfd15('0x3e')]=qs['filters'](_['pick'](_0x514164[_0xfd15('0x38')],_0x4d8154[_0xfd15('0x36')]),_0x3cdd98);if(_0x514164[_0xfd15('0x38')][_0xfd15('0x3f')]){_0x341c3d[_0xfd15('0x3e')]=_[_0xfd15('0x40')](_0x341c3d[_0xfd15('0x3e')],{'$or':_[_0xfd15('0x2f')](_0x3cdd98,function(_0x18371f){if(_0x18371f[_0xfd15('0x33')]!==_0xfd15('0x41')){var _0x5f495c={};_0x5f495c[_0x18371f['name']]={'$like':'%'+_0x514164[_0xfd15('0x38')][_0xfd15('0x3f')]+'%'};return _0x5f495c;}})});}_0x341c3d=_['merge']({},_0x341c3d,_0x514164[_0xfd15('0x42')]);var _0x3dfa71={'where':_0x341c3d[_0xfd15('0x3e')]};return db[_0xfd15('0x30')][_0xfd15('0x43')](_0x3dfa71)[_0xfd15('0x28')](function(_0x44ed22){_0x449846[_0xfd15('0x43')]=_0x44ed22;if(_0x514164[_0xfd15('0x38')]['includeAll']){_0x341c3d['include']=[{'all':!![]}];}return db['VoiceQueueReport'][_0xfd15('0x44')](_0x341c3d);})['then'](function(_0x29574a){_0x449846[_0xfd15('0x45')]=_0x29574a;return _0x449846;})[_0xfd15('0x28')](respondWithFilteredResult(_0x496adb,_0x341c3d))['catch'](handleError(_0x496adb,null));};exports['show']=function(_0x2e8ce6,_0x324155){var _0x3efac1={'raw':![],'where':{'id':_0x2e8ce6[_0xfd15('0x46')]['id']}},_0x2799be={};_0x2799be[_0xfd15('0x35')]=_[_0xfd15('0x47')](db[_0xfd15('0x30')][_0xfd15('0x31')]);_0x2799be[_0xfd15('0x38')]=_[_0xfd15('0x47')](_0x2e8ce6[_0xfd15('0x38')]);_0x2799be[_0xfd15('0x36')]=_[_0xfd15('0x37')](_0x2799be[_0xfd15('0x35')],_0x2799be['query']);_0x3efac1[_0xfd15('0x39')]=_[_0xfd15('0x37')](_0x2799be[_0xfd15('0x35')],qs[_0xfd15('0x3a')](_0x2e8ce6[_0xfd15('0x38')]['fields']));_0x3efac1['attributes']=_0x3efac1[_0xfd15('0x39')]['length']?_0x3efac1['attributes']:_0x2799be[_0xfd15('0x35')];if(_0x2e8ce6[_0xfd15('0x38')][_0xfd15('0x48')]){_0x3efac1[_0xfd15('0x49')]=[{'all':!![]}];}_0x3efac1=_[_0xfd15('0x40')]({},_0x3efac1,_0x2e8ce6[_0xfd15('0x42')]);return db['VoiceQueueReport'][_0xfd15('0x4a')](_0x3efac1)['then'](handleEntityNotFound(_0x324155,null))[_0xfd15('0x28')](respondWithResult(_0x324155,null))['catch'](handleError(_0x324155,null));};exports[_0xfd15('0x4b')]=function(_0x401e61,_0xd86b77){return db[_0xfd15('0x30')][_0xfd15('0x4b')](_0x401e61[_0xfd15('0x4c')],{})[_0xfd15('0x28')](respondWithResult(_0xd86b77,0xc9))[_0xfd15('0x4d')](handleError(_0xd86b77,null));};exports['update']=function(_0x37c459,_0x21fae8){if(_0x37c459[_0xfd15('0x4c')]['id']){delete _0x37c459[_0xfd15('0x4c')]['id'];}return db['VoiceQueueReport'][_0xfd15('0x4a')]({'where':{'id':_0x37c459[_0xfd15('0x46')]['id']}})[_0xfd15('0x28')](handleEntityNotFound(_0x21fae8,null))['then'](saveUpdates(_0x37c459[_0xfd15('0x4c')],null))[_0xfd15('0x28')](respondWithResult(_0x21fae8,null))[_0xfd15('0x4d')](handleError(_0x21fae8,null));};exports[_0xfd15('0x29')]=function(_0x3442cf,_0x5b9353){return db['VoiceQueueReport'][_0xfd15('0x4a')]({'where':{'id':_0x3442cf[_0xfd15('0x46')]['id']}})[_0xfd15('0x28')](handleEntityNotFound(_0x5b9353,null))[_0xfd15('0x28')](removeEntity(_0x5b9353,null))['catch'](handleError(_0x5b9353,null));};exports['describe']=function(_0x3083ef,_0x4fb998){return db[_0xfd15('0x30')][_0xfd15('0x4e')]()[_0xfd15('0x28')](respondWithResult(_0x4fb998,null))[_0xfd15('0x4d')](handleError(_0x4fb998,null));};exports[_0xfd15('0x4f')]=function(_0x310349,_0x59bad0){var _0x11b604={},_0x1a3d4d={},_0x3fbcfb={'count':0x0,'rows':[]};_0x1a3d4d[_0xfd15('0x35')]=_[_0xfd15('0x47')](db[_0xfd15('0x30')][_0xfd15('0x31')]);_0x1a3d4d[_0xfd15('0x38')]=_[_0xfd15('0x47')](_0x310349[_0xfd15('0x38')]);_0x1a3d4d[_0xfd15('0x36')]=_[_0xfd15('0x37')](_0x1a3d4d[_0xfd15('0x35')],_0x1a3d4d['query']);_0x11b604[_0xfd15('0x39')]=_[_0xfd15('0x37')](_0x1a3d4d[_0xfd15('0x35')],qs['fields'](_0x310349[_0xfd15('0x38')][_0xfd15('0x3a')]));_0x11b604[_0xfd15('0x39')]=_0x11b604[_0xfd15('0x39')]['length']?_0x11b604['attributes']:_0x1a3d4d['model'];if(!_0x310349[_0xfd15('0x38')][_0xfd15('0x3c')]('nolimit')){_0x11b604[_0xfd15('0x1f')]=qs[_0xfd15('0x1f')](_0x310349[_0xfd15('0x38')][_0xfd15('0x1f')]);_0x11b604[_0xfd15('0x21')]=qs[_0xfd15('0x21')](_0x310349[_0xfd15('0x38')][_0xfd15('0x21')]);}_0x11b604[_0xfd15('0x50')]=qs[_0xfd15('0x3d')](_0x310349[_0xfd15('0x38')][_0xfd15('0x3d')]);_0x11b604[_0xfd15('0x3e')]=qs[_0xfd15('0x36')](_[_0xfd15('0x51')](_0x310349['query'],_0x1a3d4d['filters']));if(_0x310349[_0xfd15('0x38')][_0xfd15('0x3f')]){_0x11b604[_0xfd15('0x3e')]=_[_0xfd15('0x40')](_0x11b604[_0xfd15('0x3e')],{'$or':_[_0xfd15('0x2f')](_0x11b604['attributes'],function(_0x4c89d7){var _0x1962ab={};_0x1962ab[_0x4c89d7]={'$like':'%'+_0x310349[_0xfd15('0x38')][_0xfd15('0x3f')]+'%'};return _0x1962ab;})});}_0x11b604=_[_0xfd15('0x40')]({},_0x11b604,_0x310349[_0xfd15('0x42')]);var _0x1e217d={'where':_0x11b604[_0xfd15('0x3e')]};return db['VoiceQueueReport']['count'](_0x1e217d)[_0xfd15('0x28')](function(_0x896bd8){_0x3fbcfb[_0xfd15('0x43')]=_0x896bd8;if(_0x310349['query'][_0xfd15('0x48')]){_0x11b604[_0xfd15('0x49')]=[{'all':!![]}];}return db[_0xfd15('0x30')][_0xfd15('0x44')](_0x11b604);})[_0xfd15('0x28')](function(_0x3bcac7){_0x3fbcfb['rows']=_0x3bcac7;return _0x3fbcfb;})[_0xfd15('0x28')](respondWithFilteredResult(_0x59bad0,_0x11b604,_0xfd15('0x4f')))[_0xfd15('0x4d')](handleError(_0x59bad0,null,_0xfd15('0x4f')));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2b65=['VoiceQueueReport','save','update','remove','emit','hasOwnProperty','hook','exports','events','../../mysqldb'];(function(_0x5452b9,_0x3e1158){var _0x218041=function(_0x566dd1){while(--_0x566dd1){_0x5452b9['push'](_0x5452b9['shift']());}};_0x218041(++_0x3e1158);}(_0x2b65,0x152));var _0x52b6=function(_0xa1be4f,_0x10a675){_0xa1be4f=_0xa1be4f-0x0;var _0x25bcce=_0x2b65[_0xa1be4f];return _0x25bcce;};'use strict';var EventEmitter=require(_0x52b6('0x0'));var VoiceQueueReport=require(_0x52b6('0x1'))['db'][_0x52b6('0x2')];var VoiceQueueReportEvents=new EventEmitter();VoiceQueueReportEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x52b6('0x3'),'afterUpdate':_0x52b6('0x4'),'afterDestroy':_0x52b6('0x5')};function emitEvent(_0x5e3f54){return function(_0x2da018,_0x5aefef,_0x1ef82f){VoiceQueueReportEvents['emit'](_0x5e3f54+':'+_0x2da018['id'],_0x2da018);VoiceQueueReportEvents[_0x52b6('0x6')](_0x5e3f54,_0x2da018);_0x1ef82f(null);};}for(var e in events){if(events[_0x52b6('0x7')](e)){var event=events[e];VoiceQueueReport[_0x52b6('0x8')](e,emitEvent(event));}}module[_0x52b6('0x9')]=VoiceQueueReportEvents;
\ No newline at end of file
+var _0x7be9=['VoiceQueueReport','setMaxListeners','save','remove','emit','hook','exports','events','../../mysqldb'];(function(_0x6278bf,_0x4aa069){var _0x156118=function(_0x185631){while(--_0x185631){_0x6278bf['push'](_0x6278bf['shift']());}};_0x156118(++_0x4aa069);}(_0x7be9,0x1ed));var _0x97be=function(_0x176329,_0x568c84){_0x176329=_0x176329-0x0;var _0x31997c=_0x7be9[_0x176329];return _0x31997c;};'use strict';var EventEmitter=require(_0x97be('0x0'));var VoiceQueueReport=require(_0x97be('0x1'))['db'][_0x97be('0x2')];var VoiceQueueReportEvents=new EventEmitter();VoiceQueueReportEvents[_0x97be('0x3')](0x0);var events={'afterCreate':_0x97be('0x4'),'afterUpdate':'update','afterDestroy':_0x97be('0x5')};function emitEvent(_0x493073){return function(_0x37314c,_0x448f2,_0x41a7b2){VoiceQueueReportEvents[_0x97be('0x6')](_0x493073+':'+_0x37314c['id'],_0x37314c);VoiceQueueReportEvents[_0x97be('0x6')](_0x493073,_0x37314c);_0x41a7b2(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];VoiceQueueReport[_0x97be('0x7')](e,emitEvent(event));}}module[_0x97be('0x8')]=VoiceQueueReportEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa372=['calleridnum','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./voiceQueueReport.attributes','exports','uniqueid'];(function(_0x12f2bb,_0x27e0d9){var _0x4163c2=function(_0x2849af){while(--_0x2849af){_0x12f2bb['push'](_0x12f2bb['shift']());}};_0x4163c2(++_0x27e0d9);}(_0xa372,0x1dd));var _0x2a37=function(_0x64ba0a,_0x1a09be){_0x64ba0a=_0x64ba0a-0x0;var _0x48cb47=_0xa372[_0x64ba0a];return _0x48cb47;};'use strict';var _=require(_0x2a37('0x0'));var util=require(_0x2a37('0x1'));var logger=require(_0x2a37('0x2'))(_0x2a37('0x3'));var moment=require(_0x2a37('0x4'));var BPromise=require(_0x2a37('0x5'));var rp=require(_0x2a37('0x6'));var fs=require('fs');var path=require(_0x2a37('0x7'));var rimraf=require(_0x2a37('0x8'));var config=require(_0x2a37('0x9'));var attributes=require(_0x2a37('0xa'));module[_0x2a37('0xb')]=function(_0x5e39b3,_0x461b5e){return _0x5e39b3['define']('VoiceQueueReport',attributes,{'tableName':'report_queue','paranoid':![],'indexes':[{'fields':[_0x2a37('0xc')]},{'fields':[_0x2a37('0xd')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x3a0b=['define','VoiceQueueReport','report_queue','lodash','util','../../config/logger','api','moment','request-promise','path','rimraf','../../config/environment','./voiceQueueReport.attributes','exports'];(function(_0x4913a8,_0x5a8cbd){var _0x50a4de=function(_0x31892e){while(--_0x31892e){_0x4913a8['push'](_0x4913a8['shift']());}};_0x50a4de(++_0x5a8cbd);}(_0x3a0b,0x73));var _0xb3a0=function(_0x5f0089,_0x227e2c){_0x5f0089=_0x5f0089-0x0;var _0x193892=_0x3a0b[_0x5f0089];return _0x193892;};'use strict';var _=require(_0xb3a0('0x0'));var util=require(_0xb3a0('0x1'));var logger=require(_0xb3a0('0x2'))(_0xb3a0('0x3'));var moment=require(_0xb3a0('0x4'));var BPromise=require('bluebird');var rp=require(_0xb3a0('0x5'));var fs=require('fs');var path=require(_0xb3a0('0x6'));var rimraf=require(_0xb3a0('0x7'));var config=require(_0xb3a0('0x8'));var attributes=require(_0xb3a0('0x9'));module[_0xb3a0('0xa')]=function(_0x43b04e,_0x395098){return _0x43b04e[_0xb3a0('0xb')](_0xb3a0('0xc'),attributes,{'tableName':_0xb3a0('0xd'),'paranoid':![],'indexes':[{'fields':['uniqueid']},{'fields':['calleridnum']}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7b74=['raw','where','limit','model','attributes','include','map','CreateVoiceQueueReport','body','UpdateVoiceQueueReport','update','lodash','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','client','http','redis','localhost','./voiceQueueReport.socket','register','then','VoiceQueueReport,\x20%s,\x20%s','request\x20sent','debug','VoiceQueueReport,\x20%s,\x20%s,\x20%s','stringify','error','message','info','catch','GetVoiceQueueReport','VoiceQueueReport','findAll','options'];(function(_0x4e676e,_0x2a7c6d){var _0x336a3c=function(_0x4767c4){while(--_0x4767c4){_0x4e676e['push'](_0x4e676e['shift']());}};_0x336a3c(++_0x2a7c6d);}(_0x7b74,0x1df));var _0x47b7=function(_0x22e33a,_0x11848b){_0x22e33a=_0x22e33a-0x0;var _0x24fa54=_0x7b74[_0x22e33a];return _0x24fa54;};'use strict';var _=require(_0x47b7('0x0'));var util=require('util');var moment=require(_0x47b7('0x1'));var BPromise=require('bluebird');var rs=require(_0x47b7('0x2'));var fs=require('fs');var Redis=require(_0x47b7('0x3'));var db=require(_0x47b7('0x4'))['db'];var utils=require(_0x47b7('0x5'));var logger=require(_0x47b7('0x6'))(_0x47b7('0x7'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0x47b7('0x8')][_0x47b7('0x9')]({'port':0x232a});config['redis']=_['defaults'](config[_0x47b7('0xa')],{'host':_0x47b7('0xb'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x47b7('0xa')]));require(_0x47b7('0xc'))[_0x47b7('0xd')](socket);function respondWithRpcPromise(_0x267cb2,_0xafe561,_0x10d9de){return new BPromise(function(_0x51d532,_0x467978){return client['request'](_0x267cb2,_0x10d9de)[_0x47b7('0xe')](function(_0x42b33e){logger['info'](_0x47b7('0xf'),_0xafe561,_0x47b7('0x10'));logger[_0x47b7('0x11')](_0x47b7('0x12'),_0xafe561,_0x47b7('0x10'),JSON[_0x47b7('0x13')](_0x42b33e));if(_0x42b33e[_0x47b7('0x14')]){if(_0x42b33e['error']['code']===0x1f4){logger[_0x47b7('0x14')]('VoiceQueueReport,\x20%s,\x20%s',_0xafe561,_0x42b33e[_0x47b7('0x14')]['message']);return _0x467978(_0x42b33e[_0x47b7('0x14')][_0x47b7('0x15')]);}logger[_0x47b7('0x14')](_0x47b7('0xf'),_0xafe561,_0x42b33e[_0x47b7('0x14')][_0x47b7('0x15')]);return _0x51d532(_0x42b33e[_0x47b7('0x14')][_0x47b7('0x15')]);}else{logger[_0x47b7('0x16')](_0x47b7('0xf'),_0xafe561,_0x47b7('0x10'));_0x51d532(_0x42b33e['result'][_0x47b7('0x15')]);}})[_0x47b7('0x17')](function(_0x181f26){logger[_0x47b7('0x14')](_0x47b7('0xf'),_0xafe561,_0x181f26);_0x467978(_0x181f26);});});}exports[_0x47b7('0x18')]=function(_0x47a611){var _0x73f8ff=this;return new Promise(function(_0x5286e7,_0x5d458c){return db[_0x47b7('0x19')][_0x47b7('0x1a')]({'raw':_0x47a611[_0x47b7('0x1b')]?_0x47a611[_0x47b7('0x1b')][_0x47b7('0x1c')]===undefined?!![]:![]:!![],'where':_0x47a611[_0x47b7('0x1b')]?_0x47a611[_0x47b7('0x1b')][_0x47b7('0x1d')]||null:null,'attributes':_0x47a611[_0x47b7('0x1b')]?_0x47a611['options']['attributes']||null:null,'limit':_0x47a611['options']?_0x47a611[_0x47b7('0x1b')][_0x47b7('0x1e')]||null:null,'include':_0x47a611[_0x47b7('0x1b')]?_0x47a611[_0x47b7('0x1b')]['include']?_['map'](_0x47a611['options']['include'],function(_0x2d8d3f){return{'model':db[_0x2d8d3f[_0x47b7('0x1f')]],'as':_0x2d8d3f['as'],'attributes':_0x2d8d3f[_0x47b7('0x20')],'include':_0x2d8d3f[_0x47b7('0x21')]?_[_0x47b7('0x22')](_0x2d8d3f['include'],function(_0x291fd2){return{'model':db[_0x291fd2[_0x47b7('0x1f')]],'as':_0x291fd2['as'],'attributes':_0x291fd2[_0x47b7('0x20')],'include':_0x291fd2[_0x47b7('0x21')]?_['map'](_0x291fd2[_0x47b7('0x21')],function(_0x22da85){return{'model':db[_0x22da85[_0x47b7('0x1f')]],'as':_0x22da85['as'],'attributes':_0x22da85[_0x47b7('0x20')]};}):[]};}):[]};}):[]:[]})[_0x47b7('0xe')](function(_0x2ecbd6){logger[_0x47b7('0x16')]('GetVoiceQueueReport',_0x47a611);logger[_0x47b7('0x11')](_0x47b7('0x18'),_0x47a611,JSON[_0x47b7('0x13')](_0x2ecbd6));_0x5286e7(_0x2ecbd6);})[_0x47b7('0x17')](function(_0x29bde2){logger[_0x47b7('0x14')]('GetVoiceQueueReport',_0x29bde2['message'],_0x47a611);_0x5d458c(_0x73f8ff[_0x47b7('0x14')](0x1f4,_0x29bde2[_0x47b7('0x15')]));});});};exports[_0x47b7('0x23')]=function(_0x5d9388){var _0x392b8e=this;return new Promise(function(_0x490abc,_0x35a6b0){return db[_0x47b7('0x19')]['create'](_0x5d9388[_0x47b7('0x24')],{'raw':_0x5d9388['options']?_0x5d9388['options'][_0x47b7('0x1c')]===undefined?!![]:![]:!![]})[_0x47b7('0xe')](function(_0x98385a){logger['info'](_0x47b7('0x23'),_0x5d9388);logger[_0x47b7('0x11')]('CreateVoiceQueueReport',_0x5d9388,JSON[_0x47b7('0x13')](_0x98385a));_0x490abc(_0x98385a);})[_0x47b7('0x17')](function(_0x2e47eb){logger[_0x47b7('0x14')]('CreateVoiceQueueReport',_0x2e47eb[_0x47b7('0x15')],_0x5d9388);_0x35a6b0(_0x392b8e['error'](0x1f4,_0x2e47eb[_0x47b7('0x15')]));});});};exports[_0x47b7('0x25')]=function(_0x277e52){var _0x4f3a1a=this;return new Promise(function(_0x4c1962,_0x167f8f){return db[_0x47b7('0x19')][_0x47b7('0x26')](_0x277e52[_0x47b7('0x24')],{'raw':_0x277e52[_0x47b7('0x1b')]?_0x277e52['options']['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x277e52[_0x47b7('0x1b')]?_0x277e52[_0x47b7('0x1b')]['where']||null:null,'attributes':_0x277e52['options']?_0x277e52[_0x47b7('0x1b')]['attributes']||null:null,'limit':_0x277e52['options']?_0x277e52['options'][_0x47b7('0x1e')]||null:null})['then'](function(_0x37098f){logger[_0x47b7('0x16')]('UpdateVoiceQueueReport',_0x277e52);logger[_0x47b7('0x11')](_0x47b7('0x25'),_0x277e52,JSON[_0x47b7('0x13')](_0x37098f));_0x4c1962(_0x37098f);})['catch'](function(_0x4b5a4a){logger['error'](_0x47b7('0x25'),_0x4b5a4a[_0x47b7('0x15')],_0x277e52);_0x167f8f(_0x4f3a1a[_0x47b7('0x14')](0x1f4,_0x4b5a4a[_0x47b7('0x15')]));});});};
\ No newline at end of file
+var _0x353e=['VoiceQueueReport','options','raw','where','attributes','limit','include','map','model','GetVoiceQueueReport','CreateVoiceQueueReport','body','UpdateVoiceQueueReport','update','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','redis','defaults','localhost','socket.io-emitter','./voiceQueueReport.socket','register','then','info','VoiceQueueReport,\x20%s,\x20%s','request\x20sent','debug','VoiceQueueReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch'];(function(_0x6e9a01,_0x41ab36){var _0x238469=function(_0x4811e){while(--_0x4811e){_0x6e9a01['push'](_0x6e9a01['shift']());}};_0x238469(++_0x41ab36);}(_0x353e,0x68));var _0xe353=function(_0x44a998,_0x2e1f91){_0x44a998=_0x44a998-0x0;var _0x1a8c53=_0x353e[_0x44a998];return _0x1a8c53;};'use strict';var _=require(_0xe353('0x0'));var util=require(_0xe353('0x1'));var moment=require(_0xe353('0x2'));var BPromise=require(_0xe353('0x3'));var rs=require(_0xe353('0x4'));var fs=require('fs');var Redis=require(_0xe353('0x5'));var db=require(_0xe353('0x6'))['db'];var utils=require(_0xe353('0x7'));var logger=require(_0xe353('0x8'))(_0xe353('0x9'));var config=require(_0xe353('0xa'));var jayson=require('jayson/promise');var client=jayson[_0xe353('0xb')][_0xe353('0xc')]({'port':0x232a});config[_0xe353('0xd')]=_[_0xe353('0xe')](config['redis'],{'host':_0xe353('0xf'),'port':0x18eb});var socket=require(_0xe353('0x10'))(new Redis(config[_0xe353('0xd')]));require(_0xe353('0x11'))[_0xe353('0x12')](socket);function respondWithRpcPromise(_0x4b2b3d,_0x2682ed,_0x3078e5){return new BPromise(function(_0x57dd0a,_0x32016f){return client['request'](_0x4b2b3d,_0x3078e5)[_0xe353('0x13')](function(_0x567ddf){logger[_0xe353('0x14')](_0xe353('0x15'),_0x2682ed,_0xe353('0x16'));logger[_0xe353('0x17')](_0xe353('0x18'),_0x2682ed,_0xe353('0x16'),JSON[_0xe353('0x19')](_0x567ddf));if(_0x567ddf[_0xe353('0x1a')]){if(_0x567ddf['error'][_0xe353('0x1b')]===0x1f4){logger[_0xe353('0x1a')](_0xe353('0x15'),_0x2682ed,_0x567ddf[_0xe353('0x1a')]['message']);return _0x32016f(_0x567ddf[_0xe353('0x1a')][_0xe353('0x1c')]);}logger[_0xe353('0x1a')]('VoiceQueueReport,\x20%s,\x20%s',_0x2682ed,_0x567ddf[_0xe353('0x1a')][_0xe353('0x1c')]);return _0x57dd0a(_0x567ddf[_0xe353('0x1a')][_0xe353('0x1c')]);}else{logger['info'](_0xe353('0x15'),_0x2682ed,'request\x20sent');_0x57dd0a(_0x567ddf[_0xe353('0x1d')][_0xe353('0x1c')]);}})[_0xe353('0x1e')](function(_0xb7fee1){logger[_0xe353('0x1a')]('VoiceQueueReport,\x20%s,\x20%s',_0x2682ed,_0xb7fee1);_0x32016f(_0xb7fee1);});});}exports['GetVoiceQueueReport']=function(_0x486356){var _0x55b241=this;return new Promise(function(_0x3793f8,_0x26779b){return db[_0xe353('0x1f')]['findAll']({'raw':_0x486356[_0xe353('0x20')]?_0x486356[_0xe353('0x20')][_0xe353('0x21')]===undefined?!![]:![]:!![],'where':_0x486356[_0xe353('0x20')]?_0x486356['options'][_0xe353('0x22')]||null:null,'attributes':_0x486356[_0xe353('0x20')]?_0x486356[_0xe353('0x20')][_0xe353('0x23')]||null:null,'limit':_0x486356['options']?_0x486356[_0xe353('0x20')][_0xe353('0x24')]||null:null,'include':_0x486356[_0xe353('0x20')]?_0x486356[_0xe353('0x20')][_0xe353('0x25')]?_[_0xe353('0x26')](_0x486356['options'][_0xe353('0x25')],function(_0x437651){return{'model':db[_0x437651[_0xe353('0x27')]],'as':_0x437651['as'],'attributes':_0x437651[_0xe353('0x23')],'include':_0x437651['include']?_['map'](_0x437651[_0xe353('0x25')],function(_0x5e4d4d){return{'model':db[_0x5e4d4d['model']],'as':_0x5e4d4d['as'],'attributes':_0x5e4d4d['attributes'],'include':_0x5e4d4d[_0xe353('0x25')]?_[_0xe353('0x26')](_0x5e4d4d[_0xe353('0x25')],function(_0x287cf6){return{'model':db[_0x287cf6[_0xe353('0x27')]],'as':_0x287cf6['as'],'attributes':_0x287cf6[_0xe353('0x23')]};}):[]};}):[]};}):[]:[]})[_0xe353('0x13')](function(_0x266d3d){logger[_0xe353('0x14')]('GetVoiceQueueReport',_0x486356);logger['debug']('GetVoiceQueueReport',_0x486356,JSON['stringify'](_0x266d3d));_0x3793f8(_0x266d3d);})[_0xe353('0x1e')](function(_0x53fe7a){logger[_0xe353('0x1a')](_0xe353('0x28'),_0x53fe7a[_0xe353('0x1c')],_0x486356);_0x26779b(_0x55b241[_0xe353('0x1a')](0x1f4,_0x53fe7a['message']));});});};exports[_0xe353('0x29')]=function(_0x3322fd){var _0x229ab8=this;return new Promise(function(_0x47fe2b,_0x2d20a7){return db[_0xe353('0x1f')]['create'](_0x3322fd[_0xe353('0x2a')],{'raw':_0x3322fd[_0xe353('0x20')]?_0x3322fd[_0xe353('0x20')][_0xe353('0x21')]===undefined?!![]:![]:!![]})[_0xe353('0x13')](function(_0x3488e2){logger[_0xe353('0x14')](_0xe353('0x29'),_0x3322fd);logger[_0xe353('0x17')](_0xe353('0x29'),_0x3322fd,JSON[_0xe353('0x19')](_0x3488e2));_0x47fe2b(_0x3488e2);})[_0xe353('0x1e')](function(_0x41b526){logger[_0xe353('0x1a')](_0xe353('0x29'),_0x41b526['message'],_0x3322fd);_0x2d20a7(_0x229ab8['error'](0x1f4,_0x41b526['message']));});});};exports[_0xe353('0x2b')]=function(_0x47fd5f){var _0x28e8e6=this;return new Promise(function(_0xae5305,_0x5b67d1){return db[_0xe353('0x1f')][_0xe353('0x2c')](_0x47fd5f[_0xe353('0x2a')],{'raw':_0x47fd5f[_0xe353('0x20')]?_0x47fd5f[_0xe353('0x20')]['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x47fd5f['options']?_0x47fd5f['options'][_0xe353('0x22')]||null:null,'attributes':_0x47fd5f['options']?_0x47fd5f[_0xe353('0x20')][_0xe353('0x23')]||null:null,'limit':_0x47fd5f[_0xe353('0x20')]?_0x47fd5f[_0xe353('0x20')][_0xe353('0x24')]||null:null})['then'](function(_0x5dbce7){logger[_0xe353('0x14')]('UpdateVoiceQueueReport',_0x47fd5f);logger['debug'](_0xe353('0x2b'),_0x47fd5f,JSON[_0xe353('0x19')](_0x5dbce7));_0xae5305(_0x5dbce7);})[_0xe353('0x1e')](function(_0x2fa338){logger[_0xe353('0x1a')](_0xe353('0x2b'),_0x2fa338[_0xe353('0x1c')],_0x47fd5f);_0x5b67d1(_0x28e8e6[_0xe353('0x1a')](0x1f4,_0x2fa338['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x744c=['save','remove','update','emit','register','voiceQueueReport:','./voiceQueueReport.events'];(function(_0x3137f1,_0x4bcfaa){var _0x2389d3=function(_0x4678fd){while(--_0x4678fd){_0x3137f1['push'](_0x3137f1['shift']());}};_0x2389d3(++_0x4bcfaa);}(_0x744c,0xa0));var _0xc744=function(_0x2b0f23,_0x152963){_0x2b0f23=_0x2b0f23-0x0;var _0x4e6ecb=_0x744c[_0x2b0f23];return _0x4e6ecb;};'use strict';var VoiceQueueReportEvents=require(_0xc744('0x0'));var events=[_0xc744('0x1'),_0xc744('0x2'),_0xc744('0x3')];function createListener(_0x4b6a83,_0x1f52c6){return function(_0x423eac){_0x1f52c6[_0xc744('0x4')](_0x4b6a83,_0x423eac);};}function removeListener(_0xde4228,_0x4f1c94){return function(){VoiceQueueReportEvents['removeListener'](_0xde4228,_0x4f1c94);};}exports[_0xc744('0x5')]=function(_0x1cc521){for(var _0x471094=0x0,_0x5d5009=events['length'];_0x471094<_0x5d5009;_0x471094++){var _0x5a85d6=events[_0x471094];var _0x2bb565=createListener(_0xc744('0x6')+_0x5a85d6,_0x1cc521);VoiceQueueReportEvents['on'](_0x5a85d6,_0x2bb565);}};
\ No newline at end of file
+var _0x0c9c=['./voiceQueueReport.events','save','remove','update','emit','removeListener','register','length'];(function(_0xc4001c,_0x1bf8f0){var _0x49f7bc=function(_0x1059b8){while(--_0x1059b8){_0xc4001c['push'](_0xc4001c['shift']());}};_0x49f7bc(++_0x1bf8f0);}(_0x0c9c,0x188));var _0xc0c9=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x0c9c[_0x3dd15e];return _0x231fd0;};'use strict';var VoiceQueueReportEvents=require(_0xc0c9('0x0'));var events=[_0xc0c9('0x1'),_0xc0c9('0x2'),_0xc0c9('0x3')];function createListener(_0x4abb6c,_0xe1a7e7){return function(_0x5bc767){_0xe1a7e7[_0xc0c9('0x4')](_0x4abb6c,_0x5bc767);};}function removeListener(_0x7f8ea1,_0x40f245){return function(){VoiceQueueReportEvents[_0xc0c9('0x5')](_0x7f8ea1,_0x40f245);};}exports[_0xc0c9('0x6')]=function(_0x46f5be){for(var _0x439963=0x0,_0x42a744=events[_0xc0c9('0x7')];_0x439963<_0x42a744;_0x439963++){var _0x23d607=events[_0x439963];var _0x785bba=createListener('voiceQueueReport:'+_0x23d607,_0x46f5be);VoiceQueueReportEvents['on'](_0x23d607,_0x785bba);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa88b=['delete','destroy','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./voiceQueuesLog.controller','get','show','create','/:id','isAuthenticated','update'];(function(_0x233812,_0xcd8d6f){var _0x2da12c=function(_0xb314d6){while(--_0xb314d6){_0x233812['push'](_0x233812['shift']());}};_0x2da12c(++_0xcd8d6f);}(_0xa88b,0x157));var _0xba88=function(_0x71e493,_0x4308b7){_0x71e493=_0x71e493-0x0;var _0x3d40ab=_0xa88b[_0x71e493];return _0x3d40ab;};'use strict';var multer=require(_0xba88('0x0'));var util=require(_0xba88('0x1'));var path=require(_0xba88('0x2'));var timeout=require(_0xba88('0x3'));var express=require(_0xba88('0x4'));var router=express[_0xba88('0x5')]();var fs_extra=require(_0xba88('0x6'));var auth=require(_0xba88('0x7'));var interaction=require(_0xba88('0x8'));var config=require(_0xba88('0x9'));var controller=require(_0xba88('0xa'));router[_0xba88('0xb')]('/',auth['isAuthenticated'](),controller['index']);router[_0xba88('0xb')]('/:id',auth['isAuthenticated'](),controller[_0xba88('0xc')]);router['post']('/',auth['isAuthenticated'](),controller[_0xba88('0xd')]);router['put'](_0xba88('0xe'),auth[_0xba88('0xf')](),controller[_0xba88('0x10')]);router[_0xba88('0x11')](_0xba88('0xe'),auth['isAuthenticated'](),controller[_0xba88('0x12')]);module[_0xba88('0x13')]=router;
\ No newline at end of file
+var _0xaafc=['update','delete','exports','multer','path','express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','show','post','create','put','/:id'];(function(_0x59feca,_0x2b26ac){var _0x23caf7=function(_0x3ff599){while(--_0x3ff599){_0x59feca['push'](_0x59feca['shift']());}};_0x23caf7(++_0x2b26ac);}(_0xaafc,0x18f));var _0xcaaf=function(_0x2a2e30,_0x4fd3ee){_0x2a2e30=_0x2a2e30-0x0;var _0x3570c0=_0xaafc[_0x2a2e30];return _0x3570c0;};'use strict';var multer=require(_0xcaaf('0x0'));var util=require('util');var path=require(_0xcaaf('0x1'));var timeout=require('connect-timeout');var express=require(_0xcaaf('0x2'));var router=express['Router']();var fs_extra=require(_0xcaaf('0x3'));var auth=require(_0xcaaf('0x4'));var interaction=require(_0xcaaf('0x5'));var config=require(_0xcaaf('0x6'));var controller=require('./voiceQueuesLog.controller');router[_0xcaaf('0x7')]('/',auth[_0xcaaf('0x8')](),controller[_0xcaaf('0x9')]);router[_0xcaaf('0x7')]('/:id',auth[_0xcaaf('0x8')](),controller[_0xcaaf('0xa')]);router[_0xcaaf('0xb')]('/',auth[_0xcaaf('0x8')](),controller[_0xcaaf('0xc')]);router[_0xcaaf('0xd')](_0xcaaf('0xe'),auth['isAuthenticated'](),controller[_0xcaaf('0xf')]);router[_0xcaaf('0x10')](_0xcaaf('0xe'),auth[_0xcaaf('0x8')](),controller['destroy']);module[_0xcaaf('0x11')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8745=['format','YYYY-MM-DD\x20HH:mm:ss','sequelize','moment','STRING','DATE'];(function(_0x18ab2a,_0x4debcd){var _0x16dcee=function(_0x10107a){while(--_0x10107a){_0x18ab2a['push'](_0x18ab2a['shift']());}};_0x16dcee(++_0x4debcd);}(_0x8745,0xc8));var _0x5874=function(_0x45ceed,_0x196dab){_0x45ceed=_0x45ceed-0x0;var _0x5778ef=_0x8745[_0x45ceed];return _0x5778ef;};'use strict';var Sequelize=require(_0x5874('0x0'));var moment=require(_0x5874('0x1'));module['exports']={'time':{'type':Sequelize[_0x5874('0x2')]},'callid':{'type':Sequelize[_0x5874('0x2')],'allowNull':![],'defaultValue':''},'queuename':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':''},'agent':{'type':Sequelize[_0x5874('0x2')],'allowNull':![],'defaultValue':''},'event':{'type':Sequelize[_0x5874('0x2')],'allowNull':![],'defaultValue':''},'data':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':''},'data1':{'type':Sequelize[_0x5874('0x2')],'allowNull':![],'defaultValue':''},'data2':{'type':Sequelize[_0x5874('0x2')],'allowNull':![],'defaultValue':''},'data3':{'type':Sequelize[_0x5874('0x2')],'allowNull':![],'defaultValue':''},'data4':{'type':Sequelize[_0x5874('0x2')],'allowNull':![],'defaultValue':''},'data5':{'type':Sequelize[_0x5874('0x2')],'allowNull':![],'defaultValue':''},'dtm':{'type':Sequelize[_0x5874('0x3')],'allowNull':![],'defaultValue':moment()[_0x5874('0x4')](_0x5874('0x5'))}};
\ No newline at end of file
+var _0xbf43=['sequelize','moment','exports','STRING','DATE','format','YYYY-MM-DD\x20HH:mm:ss'];(function(_0x5b9fc7,_0x1c2f66){var _0x38751a=function(_0x33c7c3){while(--_0x33c7c3){_0x5b9fc7['push'](_0x5b9fc7['shift']());}};_0x38751a(++_0x1c2f66);}(_0xbf43,0x13b));var _0x3bf4=function(_0x17f0db,_0x521a51){_0x17f0db=_0x17f0db-0x0;var _0x54074a=_0xbf43[_0x17f0db];return _0x54074a;};'use strict';var Sequelize=require(_0x3bf4('0x0'));var moment=require(_0x3bf4('0x1'));module[_0x3bf4('0x2')]={'time':{'type':Sequelize[_0x3bf4('0x3')]},'callid':{'type':Sequelize[_0x3bf4('0x3')],'allowNull':![],'defaultValue':''},'queuename':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':''},'agent':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':''},'event':{'type':Sequelize[_0x3bf4('0x3')],'allowNull':![],'defaultValue':''},'data':{'type':Sequelize[_0x3bf4('0x3')],'allowNull':![],'defaultValue':''},'data1':{'type':Sequelize[_0x3bf4('0x3')],'allowNull':![],'defaultValue':''},'data2':{'type':Sequelize[_0x3bf4('0x3')],'allowNull':![],'defaultValue':''},'data3':{'type':Sequelize[_0x3bf4('0x3')],'allowNull':![],'defaultValue':''},'data4':{'type':Sequelize[_0x3bf4('0x3')],'allowNull':![],'defaultValue':''},'data5':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':''},'dtm':{'type':Sequelize[_0x3bf4('0x4')],'allowNull':![],'defaultValue':moment()[_0x3bf4('0x5')](_0x3bf4('0x6'))}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf7f3=['catch','show','params','VoiceQueuesLog','includeAll','find','create','body','update','rimraf','fast-json-patch','request-promise','moment','bluebird','util','sox','to-csv','lodash','crypto','jsforce','desk.js','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/environment','../../mysqldb','end','status','offset','undefined','limit','count','set','Content-Range','json','apply','then','destroy','sendStatus','stack','name','index','map','rawAttributes','fieldName','type','key','model','query','keys','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','include','findAll','rows'];(function(_0x332a0c,_0x4112d4){var _0x1df3cd=function(_0x439831){while(--_0x439831){_0x332a0c['push'](_0x332a0c['shift']());}};_0x1df3cd(++_0x4112d4);}(_0xf7f3,0x8f));var _0x3f7f=function(_0x1c1a4f,_0x97d520){_0x1c1a4f=_0x1c1a4f-0x0;var _0x2a44f6=_0xf7f3[_0x1c1a4f];return _0x2a44f6;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x3f7f('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x3f7f('0x1'));var rp=require(_0x3f7f('0x2'));var moment=require(_0x3f7f('0x3'));var BPromise=require(_0x3f7f('0x4'));var Mustache=require('mustache');var util=require(_0x3f7f('0x5'));var path=require('path');var sox=require(_0x3f7f('0x6'));var csv=require(_0x3f7f('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x3f7f('0x8'));var squel=require('squel');var crypto=require(_0x3f7f('0x9'));var jsforce=require(_0x3f7f('0xa'));var deskjs=require(_0x3f7f('0xb'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x3f7f('0xc'));var qs=require(_0x3f7f('0xd'));var as=require(_0x3f7f('0xe'));var hardwareService=require(_0x3f7f('0xf'));var logger=require('../../config/logger')('api');var utils=require(_0x3f7f('0x10'));var config=require(_0x3f7f('0x11'));var licenseUtil=require('../../config/license/util');var db=require(_0x3f7f('0x12'))['db'];function respondWithStatusCode(_0x793e1e,_0xf02356){_0xf02356=_0xf02356||0xcc;return function(_0xceeb53){if(_0xceeb53){return _0x793e1e['sendStatus'](_0xf02356);}return _0x793e1e['status'](_0xf02356)[_0x3f7f('0x13')]();};}function respondWithResult(_0x29cf97,_0x364130){_0x364130=_0x364130||0xc8;return function(_0x458e46){if(_0x458e46){return _0x29cf97[_0x3f7f('0x14')](_0x364130)['json'](_0x458e46);}};}function respondWithFilteredResult(_0x1c95da,_0x4f96fd){return function(_0xa23cc9){if(_0xa23cc9){var _0x53c8ee=typeof _0x4f96fd[_0x3f7f('0x15')]===_0x3f7f('0x16')&&typeof _0x4f96fd[_0x3f7f('0x17')]===_0x3f7f('0x16');var _0xbcab36=_0xa23cc9[_0x3f7f('0x18')];var _0x34a879=_0x53c8ee?0x0:_0x4f96fd['offset'];var _0x36fa38=_0x53c8ee?_0xa23cc9[_0x3f7f('0x18')]:_0x4f96fd[_0x3f7f('0x15')]+_0x4f96fd[_0x3f7f('0x17')];var _0x16df77;if(_0x36fa38>=_0xbcab36){_0x36fa38=_0xbcab36;_0x16df77=0xc8;}else{_0x16df77=0xce;}_0x1c95da['status'](_0x16df77);return _0x1c95da[_0x3f7f('0x19')](_0x3f7f('0x1a'),_0x34a879+'-'+_0x36fa38+'/'+_0xbcab36)[_0x3f7f('0x1b')](_0xa23cc9);}return null;};}function patchUpdates(_0x10fdf6){return function(_0x5bb322){try{jsonpatch[_0x3f7f('0x1c')](_0x5bb322,_0x10fdf6,!![]);}catch(_0x39faf4){return BPromise['reject'](_0x39faf4);}return _0x5bb322['save']();};}function saveUpdates(_0x2b5ae3,_0x4dbbeb){return function(_0x3e54c0){if(_0x3e54c0){return _0x3e54c0['update'](_0x2b5ae3)[_0x3f7f('0x1d')](function(_0x1fb7dc){return _0x1fb7dc;});}return null;};}function removeEntity(_0x4ee9e4,_0x3735c4){return function(_0x19f649){if(_0x19f649){return _0x19f649[_0x3f7f('0x1e')]()[_0x3f7f('0x1d')](function(){_0x4ee9e4[_0x3f7f('0x14')](0xcc)[_0x3f7f('0x13')]();});}};}function handleEntityNotFound(_0x1cec4a,_0x2e35b8){return function(_0x374654){if(!_0x374654){_0x1cec4a[_0x3f7f('0x1f')](0x194);}return _0x374654;};}function handleError(_0x273065,_0x578313){_0x578313=_0x578313||0x1f4;return function(_0x4b0936){logger['error'](_0x4b0936[_0x3f7f('0x20')]);if(_0x4b0936[_0x3f7f('0x21')]){delete _0x4b0936[_0x3f7f('0x21')];}_0x273065[_0x3f7f('0x14')](_0x578313)['send'](_0x4b0936);};}exports[_0x3f7f('0x22')]=function(_0x2e6c08,_0x3435b1){var _0x2a8b84={},_0x59ba97={},_0x19f04e={'count':0x0,'rows':[]};var _0x205635=_[_0x3f7f('0x23')](db['VoiceQueuesLog'][_0x3f7f('0x24')],function(_0x53e86c){return{'name':_0x53e86c[_0x3f7f('0x25')],'type':_0x53e86c[_0x3f7f('0x26')][_0x3f7f('0x27')]};});_0x59ba97[_0x3f7f('0x28')]=_['map'](_0x205635,_0x3f7f('0x21'));_0x59ba97[_0x3f7f('0x29')]=_[_0x3f7f('0x2a')](_0x2e6c08[_0x3f7f('0x29')]);_0x59ba97[_0x3f7f('0x2b')]=_['intersection'](_0x59ba97[_0x3f7f('0x28')],_0x59ba97[_0x3f7f('0x29')]);_0x2a8b84[_0x3f7f('0x2c')]=_[_0x3f7f('0x2d')](_0x59ba97['model'],qs[_0x3f7f('0x2e')](_0x2e6c08['query']['fields']));_0x2a8b84[_0x3f7f('0x2c')]=_0x2a8b84['attributes'][_0x3f7f('0x2f')]?_0x2a8b84['attributes']:_0x59ba97[_0x3f7f('0x28')];if(!_0x2e6c08[_0x3f7f('0x29')][_0x3f7f('0x30')](_0x3f7f('0x31'))){_0x2a8b84['limit']=qs[_0x3f7f('0x17')](_0x2e6c08['query']['limit']);_0x2a8b84[_0x3f7f('0x15')]=qs[_0x3f7f('0x15')](_0x2e6c08[_0x3f7f('0x29')][_0x3f7f('0x15')]);}_0x2a8b84[_0x3f7f('0x32')]=qs[_0x3f7f('0x33')](_0x2e6c08[_0x3f7f('0x29')][_0x3f7f('0x33')]);_0x2a8b84[_0x3f7f('0x34')]=qs[_0x3f7f('0x2b')](_[_0x3f7f('0x35')](_0x2e6c08[_0x3f7f('0x29')],_0x59ba97[_0x3f7f('0x2b')]),_0x205635);if(_0x2e6c08[_0x3f7f('0x29')]['filter']){_0x2a8b84[_0x3f7f('0x34')]=_[_0x3f7f('0x36')](_0x2a8b84[_0x3f7f('0x34')],{'$or':_[_0x3f7f('0x23')](_0x205635,function(_0xf465ef){if(_0xf465ef[_0x3f7f('0x26')]!=='VIRTUAL'){var _0x5ac607={};_0x5ac607[_0xf465ef[_0x3f7f('0x21')]]={'$like':'%'+_0x2e6c08[_0x3f7f('0x29')]['filter']+'%'};return _0x5ac607;}})});}_0x2a8b84=_[_0x3f7f('0x36')]({},_0x2a8b84,_0x2e6c08['options']);var _0x1d2b44={'where':_0x2a8b84[_0x3f7f('0x34')]};return db['VoiceQueuesLog'][_0x3f7f('0x18')](_0x1d2b44)[_0x3f7f('0x1d')](function(_0x1eb3c7){_0x19f04e[_0x3f7f('0x18')]=_0x1eb3c7;if(_0x2e6c08[_0x3f7f('0x29')]['includeAll']){_0x2a8b84[_0x3f7f('0x37')]=[{'all':!![]}];}return db['VoiceQueuesLog'][_0x3f7f('0x38')](_0x2a8b84);})[_0x3f7f('0x1d')](function(_0x29d79a){_0x19f04e[_0x3f7f('0x39')]=_0x29d79a;return _0x19f04e;})[_0x3f7f('0x1d')](respondWithFilteredResult(_0x3435b1,_0x2a8b84))[_0x3f7f('0x3a')](handleError(_0x3435b1,null));};exports[_0x3f7f('0x3b')]=function(_0x9d08c,_0x34b303){var _0x2c9936={'raw':!![],'where':{'id':_0x9d08c[_0x3f7f('0x3c')]['id']}},_0x3cc084={};_0x3cc084[_0x3f7f('0x28')]=_[_0x3f7f('0x2a')](db[_0x3f7f('0x3d')][_0x3f7f('0x24')]);_0x3cc084[_0x3f7f('0x29')]=_[_0x3f7f('0x2a')](_0x9d08c[_0x3f7f('0x29')]);_0x3cc084[_0x3f7f('0x2b')]=_[_0x3f7f('0x2d')](_0x3cc084[_0x3f7f('0x28')],_0x3cc084[_0x3f7f('0x29')]);_0x2c9936['attributes']=_['intersection'](_0x3cc084[_0x3f7f('0x28')],qs[_0x3f7f('0x2e')](_0x9d08c['query']['fields']));_0x2c9936[_0x3f7f('0x2c')]=_0x2c9936[_0x3f7f('0x2c')][_0x3f7f('0x2f')]?_0x2c9936[_0x3f7f('0x2c')]:_0x3cc084[_0x3f7f('0x28')];if(_0x9d08c['query'][_0x3f7f('0x3e')]){_0x2c9936[_0x3f7f('0x37')]=[{'all':!![]}];}_0x2c9936=_[_0x3f7f('0x36')]({},_0x2c9936,_0x9d08c['options']);return db[_0x3f7f('0x3d')][_0x3f7f('0x3f')](_0x2c9936)[_0x3f7f('0x1d')](handleEntityNotFound(_0x34b303,null))['then'](respondWithResult(_0x34b303,null))[_0x3f7f('0x3a')](handleError(_0x34b303,null));};exports[_0x3f7f('0x40')]=function(_0x38542c,_0x36d2d9){return db[_0x3f7f('0x3d')][_0x3f7f('0x40')](_0x38542c[_0x3f7f('0x41')],{})[_0x3f7f('0x1d')](respondWithResult(_0x36d2d9,0xc9))['catch'](handleError(_0x36d2d9,null));};exports[_0x3f7f('0x42')]=function(_0x430a79,_0x11c1c7){if(_0x430a79[_0x3f7f('0x41')]['id']){delete _0x430a79[_0x3f7f('0x41')]['id'];}return db['VoiceQueuesLog'][_0x3f7f('0x3f')]({'where':{'id':_0x430a79['params']['id']}})[_0x3f7f('0x1d')](handleEntityNotFound(_0x11c1c7,null))['then'](saveUpdates(_0x430a79[_0x3f7f('0x41')],null))[_0x3f7f('0x1d')](respondWithResult(_0x11c1c7,null))[_0x3f7f('0x3a')](handleError(_0x11c1c7,null));};exports[_0x3f7f('0x1e')]=function(_0x80714e,_0x2c5a68){return db[_0x3f7f('0x3d')]['find']({'where':{'id':_0x80714e[_0x3f7f('0x3c')]['id']}})[_0x3f7f('0x1d')](handleEntityNotFound(_0x2c5a68,null))[_0x3f7f('0x1d')](removeEntity(_0x2c5a68,null))[_0x3f7f('0x3a')](handleError(_0x2c5a68,null));};
\ No newline at end of file
+var _0x9758=['filter','merge','options','includeAll','rows','catch','show','find','create','body','update','params','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','querystring','ioredis','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','then','destroy','end','error','name','map','VoiceQueuesLog','rawAttributes','fieldName','type','key','model','query','keys','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','sort','where','pick'];(function(_0x3f48c8,_0x299d53){var _0x4c7512=function(_0x526393){while(--_0x526393){_0x3f48c8['push'](_0x3f48c8['shift']());}};_0x4c7512(++_0x299d53);}(_0x9758,0x1b6));var _0x8975=function(_0x23ad18,_0x2709fa){_0x23ad18=_0x23ad18-0x0;var _0x1c1774=_0x9758[_0x23ad18];return _0x1c1774;};'use strict';var emlformat=require(_0x8975('0x0'));var rimraf=require(_0x8975('0x1'));var zipdir=require(_0x8975('0x2'));var jsonpatch=require(_0x8975('0x3'));var rp=require('request-promise');var moment=require(_0x8975('0x4'));var BPromise=require(_0x8975('0x5'));var Mustache=require(_0x8975('0x6'));var util=require(_0x8975('0x7'));var path=require(_0x8975('0x8'));var sox=require(_0x8975('0x9'));var csv=require(_0x8975('0xa'));var ejs=require(_0x8975('0xb'));var fs=require('fs');var fs_extra=require(_0x8975('0xc'));var _=require(_0x8975('0xd'));var squel=require(_0x8975('0xe'));var crypto=require(_0x8975('0xf'));var jsforce=require(_0x8975('0x10'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x8975('0x11'));var Papa=require('papaparse');var Redis=require(_0x8975('0x12'));var authService=require('../../components/auth/service');var qs=require(_0x8975('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x8975('0x14'));var logger=require(_0x8975('0x15'))('api');var utils=require(_0x8975('0x16'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x5ef22c,_0x41c3c3){_0x41c3c3=_0x41c3c3||0xcc;return function(_0x49c0c9){if(_0x49c0c9){return _0x5ef22c[_0x8975('0x17')](_0x41c3c3);}return _0x5ef22c[_0x8975('0x18')](_0x41c3c3)['end']();};}function respondWithResult(_0x404f1b,_0x27f701){_0x27f701=_0x27f701||0xc8;return function(_0x4ea46b){if(_0x4ea46b){return _0x404f1b[_0x8975('0x18')](_0x27f701)[_0x8975('0x19')](_0x4ea46b);}};}function respondWithFilteredResult(_0x989ded,_0x15c802){return function(_0x519f16){if(_0x519f16){var _0x1239fc=typeof _0x15c802[_0x8975('0x1a')]===_0x8975('0x1b')&&typeof _0x15c802[_0x8975('0x1c')]===_0x8975('0x1b');var _0x3be03e=_0x519f16['count'];var _0x321649=_0x1239fc?0x0:_0x15c802[_0x8975('0x1a')];var _0x5b3b79=_0x1239fc?_0x519f16[_0x8975('0x1d')]:_0x15c802[_0x8975('0x1a')]+_0x15c802[_0x8975('0x1c')];var _0x55f3bb;if(_0x5b3b79>=_0x3be03e){_0x5b3b79=_0x3be03e;_0x55f3bb=0xc8;}else{_0x55f3bb=0xce;}_0x989ded['status'](_0x55f3bb);return _0x989ded[_0x8975('0x1e')](_0x8975('0x1f'),_0x321649+'-'+_0x5b3b79+'/'+_0x3be03e)[_0x8975('0x19')](_0x519f16);}return null;};}function patchUpdates(_0xc2218e){return function(_0x4fe3ca){try{jsonpatch[_0x8975('0x20')](_0x4fe3ca,_0xc2218e,!![]);}catch(_0xe62bdb){return BPromise[_0x8975('0x21')](_0xe62bdb);}return _0x4fe3ca[_0x8975('0x22')]();};}function saveUpdates(_0x34f837,_0x4f965e){return function(_0x5b3871){if(_0x5b3871){return _0x5b3871['update'](_0x34f837)[_0x8975('0x23')](function(_0x27e03b){return _0x27e03b;});}return null;};}function removeEntity(_0x32b4fd,_0x47d7f0){return function(_0x1d81a9){if(_0x1d81a9){return _0x1d81a9[_0x8975('0x24')]()[_0x8975('0x23')](function(){_0x32b4fd['status'](0xcc)[_0x8975('0x25')]();});}};}function handleEntityNotFound(_0xc2a4a9,_0x4d711d){return function(_0x37cb5d){if(!_0x37cb5d){_0xc2a4a9[_0x8975('0x17')](0x194);}return _0x37cb5d;};}function handleError(_0xccc934,_0x3cb416){_0x3cb416=_0x3cb416||0x1f4;return function(_0x2c4eb0){logger[_0x8975('0x26')](_0x2c4eb0['stack']);if(_0x2c4eb0[_0x8975('0x27')]){delete _0x2c4eb0[_0x8975('0x27')];}_0xccc934['status'](_0x3cb416)['send'](_0x2c4eb0);};}exports['index']=function(_0x43d7db,_0x18bc71){var _0x4a9c5b={},_0x592376={},_0x3676b5={'count':0x0,'rows':[]};var _0x1b0bc2=_[_0x8975('0x28')](db[_0x8975('0x29')][_0x8975('0x2a')],function(_0x10c6ae){return{'name':_0x10c6ae[_0x8975('0x2b')],'type':_0x10c6ae[_0x8975('0x2c')][_0x8975('0x2d')]};});_0x592376[_0x8975('0x2e')]=_[_0x8975('0x28')](_0x1b0bc2,'name');_0x592376[_0x8975('0x2f')]=_[_0x8975('0x30')](_0x43d7db['query']);_0x592376[_0x8975('0x31')]=_['intersection'](_0x592376[_0x8975('0x2e')],_0x592376[_0x8975('0x2f')]);_0x4a9c5b[_0x8975('0x32')]=_[_0x8975('0x33')](_0x592376[_0x8975('0x2e')],qs['fields'](_0x43d7db[_0x8975('0x2f')][_0x8975('0x34')]));_0x4a9c5b[_0x8975('0x32')]=_0x4a9c5b[_0x8975('0x32')][_0x8975('0x35')]?_0x4a9c5b[_0x8975('0x32')]:_0x592376[_0x8975('0x2e')];if(!_0x43d7db[_0x8975('0x2f')][_0x8975('0x36')](_0x8975('0x37'))){_0x4a9c5b[_0x8975('0x1c')]=qs[_0x8975('0x1c')](_0x43d7db['query'][_0x8975('0x1c')]);_0x4a9c5b[_0x8975('0x1a')]=qs[_0x8975('0x1a')](_0x43d7db[_0x8975('0x2f')]['offset']);}_0x4a9c5b['order']=qs['sort'](_0x43d7db['query'][_0x8975('0x38')]);_0x4a9c5b[_0x8975('0x39')]=qs['filters'](_[_0x8975('0x3a')](_0x43d7db[_0x8975('0x2f')],_0x592376[_0x8975('0x31')]),_0x1b0bc2);if(_0x43d7db[_0x8975('0x2f')][_0x8975('0x3b')]){_0x4a9c5b['where']=_['merge'](_0x4a9c5b['where'],{'$or':_[_0x8975('0x28')](_0x1b0bc2,function(_0x26cca6){if(_0x26cca6['type']!=='VIRTUAL'){var _0x1be142={};_0x1be142[_0x26cca6[_0x8975('0x27')]]={'$like':'%'+_0x43d7db[_0x8975('0x2f')][_0x8975('0x3b')]+'%'};return _0x1be142;}})});}_0x4a9c5b=_[_0x8975('0x3c')]({},_0x4a9c5b,_0x43d7db[_0x8975('0x3d')]);var _0x1a9c28={'where':_0x4a9c5b[_0x8975('0x39')]};return db[_0x8975('0x29')]['count'](_0x1a9c28)[_0x8975('0x23')](function(_0x5863b6){_0x3676b5[_0x8975('0x1d')]=_0x5863b6;if(_0x43d7db[_0x8975('0x2f')][_0x8975('0x3e')]){_0x4a9c5b['include']=[{'all':!![]}];}return db[_0x8975('0x29')]['findAll'](_0x4a9c5b);})[_0x8975('0x23')](function(_0x293c12){_0x3676b5[_0x8975('0x3f')]=_0x293c12;return _0x3676b5;})[_0x8975('0x23')](respondWithFilteredResult(_0x18bc71,_0x4a9c5b))[_0x8975('0x40')](handleError(_0x18bc71,null));};exports[_0x8975('0x41')]=function(_0xf6fdf8,_0x11c08f){var _0x46dea9={'raw':!![],'where':{'id':_0xf6fdf8['params']['id']}},_0x30378d={};_0x30378d['model']=_[_0x8975('0x30')](db['VoiceQueuesLog'][_0x8975('0x2a')]);_0x30378d['query']=_[_0x8975('0x30')](_0xf6fdf8[_0x8975('0x2f')]);_0x30378d['filters']=_[_0x8975('0x33')](_0x30378d[_0x8975('0x2e')],_0x30378d[_0x8975('0x2f')]);_0x46dea9[_0x8975('0x32')]=_[_0x8975('0x33')](_0x30378d[_0x8975('0x2e')],qs[_0x8975('0x34')](_0xf6fdf8['query'][_0x8975('0x34')]));_0x46dea9[_0x8975('0x32')]=_0x46dea9[_0x8975('0x32')][_0x8975('0x35')]?_0x46dea9[_0x8975('0x32')]:_0x30378d['model'];if(_0xf6fdf8[_0x8975('0x2f')][_0x8975('0x3e')]){_0x46dea9['include']=[{'all':!![]}];}_0x46dea9=_[_0x8975('0x3c')]({},_0x46dea9,_0xf6fdf8['options']);return db[_0x8975('0x29')][_0x8975('0x42')](_0x46dea9)['then'](handleEntityNotFound(_0x11c08f,null))['then'](respondWithResult(_0x11c08f,null))['catch'](handleError(_0x11c08f,null));};exports['create']=function(_0x2675ea,_0x5e9e2f){return db['VoiceQueuesLog'][_0x8975('0x43')](_0x2675ea[_0x8975('0x44')],{})[_0x8975('0x23')](respondWithResult(_0x5e9e2f,0xc9))['catch'](handleError(_0x5e9e2f,null));};exports[_0x8975('0x45')]=function(_0x37074f,_0x30cb37){if(_0x37074f[_0x8975('0x44')]['id']){delete _0x37074f[_0x8975('0x44')]['id'];}return db['VoiceQueuesLog']['find']({'where':{'id':_0x37074f['params']['id']}})['then'](handleEntityNotFound(_0x30cb37,null))[_0x8975('0x23')](saveUpdates(_0x37074f[_0x8975('0x44')],null))[_0x8975('0x23')](respondWithResult(_0x30cb37,null))[_0x8975('0x40')](handleError(_0x30cb37,null));};exports['destroy']=function(_0x29ee70,_0x2c8b42){return db[_0x8975('0x29')][_0x8975('0x42')]({'where':{'id':_0x29ee70[_0x8975('0x46')]['id']}})[_0x8975('0x23')](handleEntityNotFound(_0x2c8b42,null))['then'](removeEntity(_0x2c8b42,null))[_0x8975('0x40')](handleError(_0x2c8b42,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x00a6=['define','voice_queues_log','event_dtm','event','dtm','util','../../config/logger','api','moment','request-promise','rimraf','../../config/environment','./voiceQueuesLog.attributes'];(function(_0x1469d5,_0xeaca94){var _0x2c2633=function(_0x575860){while(--_0x575860){_0x1469d5['push'](_0x1469d5['shift']());}};_0x2c2633(++_0xeaca94);}(_0x00a6,0x1a5));var _0x600a=function(_0xa26bcd,_0xe23077){_0xa26bcd=_0xa26bcd-0x0;var _0x35a9d2=_0x00a6[_0xa26bcd];return _0x35a9d2;};'use strict';var _=require('lodash');var util=require(_0x600a('0x0'));var logger=require(_0x600a('0x1'))(_0x600a('0x2'));var moment=require(_0x600a('0x3'));var BPromise=require('bluebird');var rp=require(_0x600a('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0x600a('0x5'));var config=require(_0x600a('0x6'));var attributes=require(_0x600a('0x7'));module['exports']=function(_0x244791,_0x5451ac){return _0x244791[_0x600a('0x8')]('VoiceQueuesLog',attributes,{'tableName':_0x600a('0x9'),'paranoid':![],'indexes':[{'name':_0x600a('0xa'),'fields':[_0x600a('0xb'),_0x600a('0xc')]}],'timestamps':![]});};
\ No newline at end of file
+var _0x752a=['VoiceQueuesLog','event_dtm','event','dtm','lodash','util','../../config/logger','api','moment','request-promise','path','rimraf','../../config/environment','./voiceQueuesLog.attributes','define'];(function(_0x395791,_0x38c864){var _0x217514=function(_0x54f54e){while(--_0x54f54e){_0x395791['push'](_0x395791['shift']());}};_0x217514(++_0x38c864);}(_0x752a,0x103));var _0xa752=function(_0x3e531a,_0x28a82a){_0x3e531a=_0x3e531a-0x0;var _0x3c2574=_0x752a[_0x3e531a];return _0x3c2574;};'use strict';var _=require(_0xa752('0x0'));var util=require(_0xa752('0x1'));var logger=require(_0xa752('0x2'))(_0xa752('0x3'));var moment=require(_0xa752('0x4'));var BPromise=require('bluebird');var rp=require(_0xa752('0x5'));var fs=require('fs');var path=require(_0xa752('0x6'));var rimraf=require(_0xa752('0x7'));var config=require(_0xa752('0x8'));var attributes=require(_0xa752('0x9'));module['exports']=function(_0x16a38a,_0xec8970){return _0x16a38a[_0xa752('0xa')](_0xa752('0xb'),attributes,{'tableName':'voice_queues_log','paranoid':![],'indexes':[{'name':_0xa752('0xc'),'fields':[_0xa752('0xd'),_0xa752('0xe')]}],'timestamps':![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3e84=['rpc','../../config/environment','http','then','info','VoiceQueuesLog,\x20%s,\x20%s','debug','VoiceQueuesLog,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger'];(function(_0x2176a2,_0x175437){var _0x28f951=function(_0x598be0){while(--_0x598be0){_0x2176a2['push'](_0x2176a2['shift']());}};_0x28f951(++_0x175437);}(_0x3e84,0xd4));var _0x43e8=function(_0x1a2d1c,_0x4a1873){_0x1a2d1c=_0x1a2d1c-0x0;var _0x56eb67=_0x3e84[_0x1a2d1c];return _0x56eb67;};'use strict';var _=require('lodash');var util=require(_0x43e8('0x0'));var moment=require(_0x43e8('0x1'));var BPromise=require(_0x43e8('0x2'));var rs=require(_0x43e8('0x3'));var fs=require('fs');var Redis=require(_0x43e8('0x4'));var db=require(_0x43e8('0x5'))['db'];var utils=require(_0x43e8('0x6'));var logger=require(_0x43e8('0x7'))(_0x43e8('0x8'));var config=require(_0x43e8('0x9'));var jayson=require('jayson/promise');var client=jayson['client'][_0x43e8('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x4d321d,_0x291bb0,_0x1a97ce){return new BPromise(function(_0x3955c5,_0x5500ea){return client['request'](_0x4d321d,_0x1a97ce)[_0x43e8('0xb')](function(_0x1ede84){logger[_0x43e8('0xc')](_0x43e8('0xd'),_0x291bb0,'request\x20sent');logger[_0x43e8('0xe')](_0x43e8('0xf'),_0x291bb0,_0x43e8('0x10'),JSON[_0x43e8('0x11')](_0x1ede84));if(_0x1ede84[_0x43e8('0x12')]){if(_0x1ede84[_0x43e8('0x12')][_0x43e8('0x13')]===0x1f4){logger['error'](_0x43e8('0xd'),_0x291bb0,_0x1ede84[_0x43e8('0x12')][_0x43e8('0x14')]);return _0x5500ea(_0x1ede84[_0x43e8('0x12')][_0x43e8('0x14')]);}logger['error'](_0x43e8('0xd'),_0x291bb0,_0x1ede84[_0x43e8('0x12')][_0x43e8('0x14')]);return _0x3955c5(_0x1ede84[_0x43e8('0x12')][_0x43e8('0x14')]);}else{logger[_0x43e8('0xc')](_0x43e8('0xd'),_0x291bb0,_0x43e8('0x10'));_0x3955c5(_0x1ede84[_0x43e8('0x15')]['message']);}})['catch'](function(_0x336a5b){logger[_0x43e8('0x12')](_0x43e8('0xd'),_0x291bb0,_0x336a5b);_0x5500ea(_0x336a5b);});});}
\ No newline at end of file
+var _0xfb09=['client','request','then','info','VoiceQueuesLog,\x20%s,\x20%s','request\x20sent','debug','VoiceQueuesLog,\x20%s,\x20%s,\x20%s','error','code','message','result','catch','lodash','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise'];(function(_0x39096d,_0x51f8a0){var _0x13da4f=function(_0x11e6b2){while(--_0x11e6b2){_0x39096d['push'](_0x39096d['shift']());}};_0x13da4f(++_0x51f8a0);}(_0xfb09,0x97));var _0x9fb0=function(_0x3d6a46,_0x11cd29){_0x3d6a46=_0x3d6a46-0x0;var _0x20b4ff=_0xfb09[_0x3d6a46];return _0x20b4ff;};'use strict';var _=require(_0x9fb0('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0x9fb0('0x1'));var rs=require(_0x9fb0('0x2'));var fs=require('fs');var Redis=require(_0x9fb0('0x3'));var db=require(_0x9fb0('0x4'))['db'];var utils=require(_0x9fb0('0x5'));var logger=require(_0x9fb0('0x6'))(_0x9fb0('0x7'));var config=require(_0x9fb0('0x8'));var jayson=require(_0x9fb0('0x9'));var client=jayson[_0x9fb0('0xa')]['http']({'port':0x232a});function respondWithRpcPromise(_0x53b96f,_0x8561e1,_0x5099c5){return new BPromise(function(_0x548f1f,_0x4b7c0e){return client[_0x9fb0('0xb')](_0x53b96f,_0x5099c5)[_0x9fb0('0xc')](function(_0x561503){logger[_0x9fb0('0xd')](_0x9fb0('0xe'),_0x8561e1,_0x9fb0('0xf'));logger[_0x9fb0('0x10')](_0x9fb0('0x11'),_0x8561e1,_0x9fb0('0xf'),JSON['stringify'](_0x561503));if(_0x561503[_0x9fb0('0x12')]){if(_0x561503[_0x9fb0('0x12')][_0x9fb0('0x13')]===0x1f4){logger[_0x9fb0('0x12')](_0x9fb0('0xe'),_0x8561e1,_0x561503[_0x9fb0('0x12')][_0x9fb0('0x14')]);return _0x4b7c0e(_0x561503[_0x9fb0('0x12')][_0x9fb0('0x14')]);}logger[_0x9fb0('0x12')](_0x9fb0('0xe'),_0x8561e1,_0x561503[_0x9fb0('0x12')][_0x9fb0('0x14')]);return _0x548f1f(_0x561503['error'][_0x9fb0('0x14')]);}else{logger[_0x9fb0('0xd')](_0x9fb0('0xe'),_0x8561e1,_0x9fb0('0xf'));_0x548f1f(_0x561503[_0x9fb0('0x15')][_0x9fb0('0x14')]);}})[_0x9fb0('0x16')](function(_0x19ae73){logger[_0x9fb0('0x12')](_0x9fb0('0xe'),_0x8561e1,_0x19ae73);_0x4b7c0e(_0x19ae73);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc9e4=['../../components/auth/service','../../config/environment','get','isAuthenticated','index','/describe','describe','/:id','show','download','/:id/downloads','downloads','/:id/transcribe','post','create','put','update','delete','destroy','exports','Router','fs-extra'];(function(_0x109ff8,_0x221081){var _0x135091=function(_0x3cbba3){while(--_0x3cbba3){_0x109ff8['push'](_0x109ff8['shift']());}};_0x135091(++_0x221081);}(_0xc9e4,0x174));var _0x4c9e=function(_0x47b8d9,_0x2fd2e0){_0x47b8d9=_0x47b8d9-0x0;var _0x48216f=_0xc9e4[_0x47b8d9];return _0x48216f;};'use strict';var multer=require('multer');var util=require('util');var path=require('path');var timeout=require('connect-timeout');var express=require('express');var router=express[_0x4c9e('0x0')]();var fs_extra=require(_0x4c9e('0x1'));var auth=require(_0x4c9e('0x2'));var interaction=require('../../components/interaction/service');var config=require(_0x4c9e('0x3'));var controller=require('./voiceRecording.controller');router[_0x4c9e('0x4')]('/',auth[_0x4c9e('0x5')](),controller[_0x4c9e('0x6')]);router[_0x4c9e('0x4')](_0x4c9e('0x7'),auth['isAuthenticated'](),controller[_0x4c9e('0x8')]);router[_0x4c9e('0x4')](_0x4c9e('0x9'),auth[_0x4c9e('0x5')](),controller[_0x4c9e('0xa')]);router[_0x4c9e('0x4')]('/:id/download',auth[_0x4c9e('0x5')](),controller[_0x4c9e('0xb')]);router[_0x4c9e('0x4')](_0x4c9e('0xc'),controller[_0x4c9e('0xd')]);router[_0x4c9e('0x4')](_0x4c9e('0xe'),auth[_0x4c9e('0x5')](),controller['downloadTranscribe']);router[_0x4c9e('0xf')]('/',auth[_0x4c9e('0x5')](),controller[_0x4c9e('0x10')]);router['post'](_0x4c9e('0xe'),auth['isAuthenticated'](),controller['runTranscribe']);router[_0x4c9e('0x11')](_0x4c9e('0x9'),auth[_0x4c9e('0x5')](),controller[_0x4c9e('0x12')]);router[_0x4c9e('0x13')](_0x4c9e('0x9'),auth[_0x4c9e('0x5')](),controller[_0x4c9e('0x14')]);module[_0x4c9e('0x15')]=router;
\ No newline at end of file
+var _0x7bed=['./voiceRecording.controller','get','isAuthenticated','index','/describe','describe','/:id','download','/:id/downloads','downloads','/:id/transcribe','downloadTranscribe','create','post','runTranscribe','put','update','delete','destroy','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment'];(function(_0x1694f5,_0x49b7c3){var _0x5b4321=function(_0x58c183){while(--_0x58c183){_0x1694f5['push'](_0x1694f5['shift']());}};_0x5b4321(++_0x49b7c3);}(_0x7bed,0xfb));var _0xd7be=function(_0xf2992b,_0x8c0d4c){_0xf2992b=_0xf2992b-0x0;var _0x2e8306=_0x7bed[_0xf2992b];return _0x2e8306;};'use strict';var multer=require(_0xd7be('0x0'));var util=require(_0xd7be('0x1'));var path=require(_0xd7be('0x2'));var timeout=require(_0xd7be('0x3'));var express=require(_0xd7be('0x4'));var router=express[_0xd7be('0x5')]();var fs_extra=require(_0xd7be('0x6'));var auth=require(_0xd7be('0x7'));var interaction=require(_0xd7be('0x8'));var config=require(_0xd7be('0x9'));var controller=require(_0xd7be('0xa'));router[_0xd7be('0xb')]('/',auth[_0xd7be('0xc')](),controller[_0xd7be('0xd')]);router[_0xd7be('0xb')](_0xd7be('0xe'),auth[_0xd7be('0xc')](),controller[_0xd7be('0xf')]);router['get'](_0xd7be('0x10'),auth[_0xd7be('0xc')](),controller['show']);router[_0xd7be('0xb')]('/:id/download',auth[_0xd7be('0xc')](),controller[_0xd7be('0x11')]);router[_0xd7be('0xb')](_0xd7be('0x12'),controller[_0xd7be('0x13')]);router[_0xd7be('0xb')](_0xd7be('0x14'),auth[_0xd7be('0xc')](),controller[_0xd7be('0x15')]);router['post']('/',auth['isAuthenticated'](),controller[_0xd7be('0x16')]);router[_0xd7be('0x17')](_0xd7be('0x14'),auth[_0xd7be('0xc')](),controller[_0xd7be('0x18')]);router[_0xd7be('0x19')]('/:id',auth[_0xd7be('0xc')](),controller[_0xd7be('0x1a')]);router[_0xd7be('0x1b')](_0xd7be('0x10'),auth[_0xd7be('0xc')](),controller[_0xd7be('0x1c')]);module['exports']=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(_0x45d3f0,_0x4be53f){var _0x314b79=function(_0x563d32){while(--_0x563d32){_0x45d3f0['push'](_0x45d3f0['shift']());}};_0x314b79(++_0x4be53f);}(_0xa9e0,0x123));var _0x0a9e=function(_0x5e3b04,_0xbb6795){_0x5e3b04=_0x5e3b04-0x0;var _0x1fc44d=_0xa9e0[_0x5e3b04];return _0x1fc44d;};'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(_0x3e5086,_0x48f4a2){var _0xfeb102=function(_0x5a945f){while(--_0x5a945f){_0x3e5086['push'](_0x3e5086['shift']());}};_0xfeb102(++_0x48f4a2);}(_0xa9e0,0x123));var _0x0a9e=function(_0x481bf7,_0x437f69){_0x481bf7=_0x481bf7-0x0;var _0x461787=_0xa9e0[_0x481bf7];return _0x461787;};'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 _0x13d5=['differenceBy','name','format','query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','filters','pick','filter','map','merge','options','includeAll','include','findAll','rows','catch','params','find','create','body','../../components/encryptor','uniqueid','value','%s.cypher','decryptFile','secrets','recording','existsSync','VoiceRecording\x20not\x20found','filename','download','extname','unlink','message','Not\x20found','downloads','sequelize','col','$and','push','Sequelize','ValidationError','info','cancellazione\x20fisica\x20documento\x20%s','isNil','\x22\x20trovato\x20eseguo\x20la\x20cancellazione','unlinkSync','.cypher','File:\x20\x22','listBuckets','createBucket','TranscribeService','startTranscriptionJob','readFileSync','[RUNTRANSCRIPT][%d]\x20Voice\x20recording\x20uploaded\x20in\x20bucket\x20%s\x20(%s)','Bucket','location','Location','[RUNTRANSCRIPT][%d]\x20Sending\x20transcribe\x20request','[RUNTRANSCRIPT][%d]\x20Transcription\x20job\x20%s\x20created','TranscriptionJob','TranscriptionJobName','transcribeName','transcribeStatus','TranscriptionJobStatus','runTranscribe','findOne','Setting','transcribe','transcribeAccountId','transcribeRegion','bucket','runSentiment','sentiment','language','Sentiment\x20Analysis\x20not\x20configured','Cloud\x20Provider\x20not\x20available','data2','Cloud\x20Provider\x20not\x20configured','data1','Buckets','Name','[RUNTRANSCRIPT][%d]\x20Transcript\x20action\x20already\x20requested','IN_PROGRESS','tempSentiment','updateAttributes','downloadTranscribe','root','/server/files/transcribes/transcribe_','.txt','eml-format','rimraf','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','lodash','desk.js','querystring','papaparse','uuid/v4','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','status','end','json','undefined','limit','count','offset','Content-Range','reject','save','update','destroy','then','sendStatus','error','send','index','VoiceRecording','rawAttributes','fieldName','type','model'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x13d5,0x180));var _0x513d=function(_0xe41747,_0x1869bf){_0xe41747=_0xe41747-0x0;var _0x5780fd=_0x13d5[_0xe41747];return _0x5780fd;};'use strict';var emlformat=require(_0x513d('0x0'));var rimraf=require(_0x513d('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x513d('0x2'));var moment=require(_0x513d('0x3'));var BPromise=require(_0x513d('0x4'));var Mustache=require(_0x513d('0x5'));var util=require(_0x513d('0x6'));var path=require(_0x513d('0x7'));var sox=require(_0x513d('0x8'));var csv=require(_0x513d('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x513d('0xa'));var squel=require('squel');var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x513d('0xb'));var toCsv=require('to-csv');var querystring=require(_0x513d('0xc'));var Papa=require(_0x513d('0xd'));var AWS=require('aws-sdk');var uuidv4=require(_0x513d('0xe'));var Redis=require(_0x513d('0xf'));var authService=require(_0x513d('0x10'));var qs=require(_0x513d('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x513d('0x12'));var logger=require(_0x513d('0x13'))('api');var utils=require(_0x513d('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0x513d('0x15'));var db=require(_0x513d('0x16'))['db'];function respondWithStatusCode(_0x28b017,_0x291b89){_0x291b89=_0x291b89||0xcc;return function(_0x1a8e0e){if(_0x1a8e0e){return _0x28b017['sendStatus'](_0x291b89);}return _0x28b017[_0x513d('0x17')](_0x291b89)[_0x513d('0x18')]();};}function respondWithResult(_0x458a30,_0x284508){_0x284508=_0x284508||0xc8;return function(_0x24ee8a){if(_0x24ee8a){return _0x458a30[_0x513d('0x17')](_0x284508)[_0x513d('0x19')](_0x24ee8a);}};}function respondWithFilteredResult(_0x12451e,_0x1db65c){return function(_0x370054){if(_0x370054){var _0x4cf24d=typeof _0x1db65c['offset']===_0x513d('0x1a')&&typeof _0x1db65c[_0x513d('0x1b')]===_0x513d('0x1a');var _0x434cfc=_0x370054[_0x513d('0x1c')];var _0x1ddc05=_0x4cf24d?0x0:_0x1db65c[_0x513d('0x1d')];var _0x25cc5a=_0x4cf24d?_0x370054[_0x513d('0x1c')]:_0x1db65c[_0x513d('0x1d')]+_0x1db65c['limit'];var _0x4346ed;if(_0x25cc5a>=_0x434cfc){_0x25cc5a=_0x434cfc;_0x4346ed=0xc8;}else{_0x4346ed=0xce;}_0x12451e['status'](_0x4346ed);return _0x12451e['set'](_0x513d('0x1e'),_0x1ddc05+'-'+_0x25cc5a+'/'+_0x434cfc)['json'](_0x370054);}return null;};}function patchUpdates(_0x2007b6){return function(_0x5b2df4){try{jsonpatch['apply'](_0x5b2df4,_0x2007b6,!![]);}catch(_0x58476e){return BPromise[_0x513d('0x1f')](_0x58476e);}return _0x5b2df4[_0x513d('0x20')]();};}function saveUpdates(_0x90cd54,_0x545202){return function(_0x4b0096){if(_0x4b0096){return _0x4b0096[_0x513d('0x21')](_0x90cd54)['then'](function(_0x42f359){return _0x42f359;});}return null;};}function removeEntity(_0x31b68f,_0x5e2a3f){return function(_0x23b4b1){if(_0x23b4b1){return _0x23b4b1[_0x513d('0x22')]()[_0x513d('0x23')](function(){_0x31b68f[_0x513d('0x17')](0xcc)[_0x513d('0x18')]();});}};}function handleEntityNotFound(_0x29b90c,_0x27b4b7){return function(_0xc96130){if(!_0xc96130){_0x29b90c[_0x513d('0x24')](0x194);}return _0xc96130;};}function handleError(_0x35ee5d,_0x2ab4b2){_0x2ab4b2=_0x2ab4b2||0x1f4;return function(_0x8f5a2a){logger[_0x513d('0x25')](_0x8f5a2a['stack']);if(_0x8f5a2a['name']){delete _0x8f5a2a['name'];}_0x35ee5d[_0x513d('0x17')](_0x2ab4b2)[_0x513d('0x26')](_0x8f5a2a);};}exports[_0x513d('0x27')]=function(_0x4770ba,_0x19c7ca){var _0x2581d3={},_0xf23e40={},_0x148229={'count':0x0,'rows':[]};var _0x144d1d=_['map'](db[_0x513d('0x28')][_0x513d('0x29')],function(_0x5b7d77){return{'name':_0x5b7d77[_0x513d('0x2a')],'type':_0x5b7d77[_0x513d('0x2b')]['key']};});_0xf23e40[_0x513d('0x2c')]=_[_0x513d('0x2d')](_['map'](_0x144d1d,_0x513d('0x2e')),[_0x513d('0x2f')]);_0xf23e40[_0x513d('0x30')]=_[_0x513d('0x31')](_0x4770ba[_0x513d('0x30')]);_0xf23e40['filters']=_[_0x513d('0x32')](_0xf23e40[_0x513d('0x2c')],_0xf23e40[_0x513d('0x30')]);_0x2581d3[_0x513d('0x33')]=_[_0x513d('0x32')](_0xf23e40['model'],qs[_0x513d('0x34')](_0x4770ba[_0x513d('0x30')][_0x513d('0x34')]));_0x2581d3[_0x513d('0x33')]=_0x2581d3[_0x513d('0x33')][_0x513d('0x35')]?_0x2581d3[_0x513d('0x33')]:_0xf23e40[_0x513d('0x2c')];if(!_0x4770ba['query'][_0x513d('0x36')](_0x513d('0x37'))){_0x2581d3[_0x513d('0x1b')]=qs[_0x513d('0x1b')](_0x4770ba[_0x513d('0x30')][_0x513d('0x1b')]);_0x2581d3[_0x513d('0x1d')]=qs[_0x513d('0x1d')](_0x4770ba[_0x513d('0x30')][_0x513d('0x1d')]);}_0x2581d3['order']=qs[_0x513d('0x38')](_0x4770ba[_0x513d('0x30')]['sort']);_0x2581d3[_0x513d('0x39')]=qs[_0x513d('0x3a')](_[_0x513d('0x3b')](_0x4770ba[_0x513d('0x30')],_0xf23e40[_0x513d('0x3a')]),_0x144d1d);if(_0x4770ba[_0x513d('0x30')][_0x513d('0x3c')]){_0x2581d3[_0x513d('0x39')]=_['merge'](_0x2581d3[_0x513d('0x39')],{'$or':_[_0x513d('0x3d')](_0x144d1d,function(_0x55c105){if(_0x55c105[_0x513d('0x2b')]!=='VIRTUAL'){var _0x11a5ac={};_0x11a5ac[_0x55c105[_0x513d('0x2e')]]={'$like':'%'+_0x4770ba['query'][_0x513d('0x3c')]+'%'};return _0x11a5ac;}})});}_0x2581d3=_[_0x513d('0x3e')]({},_0x2581d3,_0x4770ba[_0x513d('0x3f')]);var _0x3505b4={'where':_0x2581d3[_0x513d('0x39')]};return db['VoiceRecording'][_0x513d('0x1c')](_0x3505b4)[_0x513d('0x23')](function(_0x3ce08a){_0x148229['count']=_0x3ce08a;if(_0x4770ba[_0x513d('0x30')][_0x513d('0x40')]){_0x2581d3[_0x513d('0x41')]=[{'all':!![]}];}return db[_0x513d('0x28')][_0x513d('0x42')](_0x2581d3);})['then'](function(_0x48f30a){_0x148229[_0x513d('0x43')]=_0x48f30a;return _0x148229;})[_0x513d('0x23')](respondWithFilteredResult(_0x19c7ca,_0x2581d3))[_0x513d('0x44')](handleError(_0x19c7ca,null));};exports['show']=function(_0x13ca29,_0x3c8a06){var _0x104983={'raw':![],'where':{'id':_0x13ca29[_0x513d('0x45')]['id']}},_0x271834={};_0x271834[_0x513d('0x2c')]=_[_0x513d('0x31')](db[_0x513d('0x28')][_0x513d('0x29')]);_0x271834['query']=_['keys'](_0x13ca29[_0x513d('0x30')]);_0x271834[_0x513d('0x3a')]=_[_0x513d('0x32')](_0x271834['model'],_0x271834[_0x513d('0x30')]);_0x104983[_0x513d('0x33')]=_[_0x513d('0x32')](_0x271834[_0x513d('0x2c')],qs[_0x513d('0x34')](_0x13ca29['query'][_0x513d('0x34')]));_0x104983['attributes']=_0x104983['attributes'][_0x513d('0x35')]?_0x104983[_0x513d('0x33')]:_0x271834[_0x513d('0x2c')];if(_0x13ca29[_0x513d('0x30')][_0x513d('0x40')]){_0x104983['include']=[{'all':!![]}];}_0x104983=_[_0x513d('0x3e')]({},_0x104983,_0x13ca29[_0x513d('0x3f')]);return db[_0x513d('0x28')][_0x513d('0x46')](_0x104983)[_0x513d('0x23')](handleEntityNotFound(_0x3c8a06,null))[_0x513d('0x23')](respondWithResult(_0x3c8a06,null))[_0x513d('0x44')](handleError(_0x3c8a06,null));};exports['create']=function(_0x1a621d,_0xbba977){return db['VoiceRecording'][_0x513d('0x47')](_0x1a621d['body'],{})[_0x513d('0x23')](respondWithResult(_0xbba977,0xc9))[_0x513d('0x44')](handleError(_0xbba977,null));};exports[_0x513d('0x21')]=function(_0x100a27,_0x5bc35f){if(_0x100a27[_0x513d('0x48')]['id']){delete _0x100a27[_0x513d('0x48')]['id'];}return db[_0x513d('0x28')][_0x513d('0x46')]({'where':{'id':_0x100a27[_0x513d('0x45')]['id']}})[_0x513d('0x23')](handleEntityNotFound(_0x5bc35f,null))[_0x513d('0x23')](saveUpdates(_0x100a27[_0x513d('0x48')],null))['then'](respondWithResult(_0x5bc35f,null))[_0x513d('0x44')](handleError(_0x5bc35f,null));};exports['describe']=function(_0x2b8599,_0xb579c0){return db[_0x513d('0x28')]['describe']()[_0x513d('0x23')](respondWithResult(_0xb579c0,null))[_0x513d('0x44')](handleError(_0xb579c0,null));};exports['download']=function(_0x3778b3,_0x3d2dd2,_0x163d46){var _0x3e7c10=require(_0x513d('0x49'));var _0x184969=![];var _0x5dbd5d={};if(_0x3778b3['query'][_0x513d('0x2b')]&&_0x3778b3[_0x513d('0x30')][_0x513d('0x2b')]===_0x513d('0x4a')){_0x5dbd5d[_0x513d('0x4a')]=_0x3778b3['params']['id'];}else{_0x5dbd5d['id']=_0x3778b3[_0x513d('0x45')]['id'];}return db[_0x513d('0x28')]['find']({'where':_0x5dbd5d,'attributes':['id',_0x513d('0x4b')],'raw':!![]})[_0x513d('0x23')](handleEntityNotFound(_0x3d2dd2,null))['then'](function(_0x8f4641){if(_0x8f4641){var _0x599735=_0x8f4641[_0x513d('0x4b')];var _0x9c5f81=util[_0x513d('0x2f')](_0x513d('0x4c'),_0x599735);if(fs['existsSync'](_0x9c5f81)){_0x184969=!![];return _0x3e7c10[_0x513d('0x4d')](_0x9c5f81,_0x599735,config[_0x513d('0x4e')][_0x513d('0x4f')])['then'](function(){return _0x8f4641;});}return _0x8f4641;}})[_0x513d('0x23')](function(_0x58c6fa){if(_0x58c6fa){var _0x3003c5=_0x58c6fa[_0x513d('0x4b')];if(!fs[_0x513d('0x50')](_0x3003c5)){throw new db['Sequelize']['ValidationError'](_0x513d('0x51'));}if(_0x58c6fa[_0x513d('0x52')]){return _0x3d2dd2[_0x513d('0x53')](_0x3003c5,_0x58c6fa[_0x513d('0x52')]+path[_0x513d('0x54')](_0x3003c5),function(){if(_0x184969){fs[_0x513d('0x55')](_0x3003c5);}});}else{return _0x3d2dd2['download'](_0x3003c5,function(_0x4e1249){if(_0x184969){fs[_0x513d('0x55')](_0x3003c5);}});}}})[_0x513d('0x44')](function(_0x430f57){if(_0x430f57[_0x513d('0x56')]===_0x513d('0x51')){_0x3d2dd2['status'](0x194)[_0x513d('0x26')](_0x513d('0x57'));}else{return handleError(_0x3d2dd2,null);}});};exports[_0x513d('0x58')]=function(_0x2938ab,_0x4701a6,_0x570764){var _0x2b8f9d=require('../../components/encryptor');var _0x9191dd=![];var _0x29f6bf={'$and':[db['sequelize']['where'](db[_0x513d('0x59')]['fn']('MD5',db[_0x513d('0x59')][_0x513d('0x5a')](_0x513d('0x4a'))),_0x2938ab['query']['token'])]};if(_0x2938ab['query'][_0x513d('0x2b')]&&_0x2938ab[_0x513d('0x30')][_0x513d('0x2b')]===_0x513d('0x4a')){_0x29f6bf[_0x513d('0x5b')][_0x513d('0x5c')]({'uniqueid':_0x2938ab[_0x513d('0x45')]['id']});}else{_0x29f6bf[_0x513d('0x5b')][_0x513d('0x5c')]({'id':_0x2938ab['params']['id']});}return db[_0x513d('0x28')][_0x513d('0x46')]({'where':_0x29f6bf,'attributes':['id',_0x513d('0x4b')],'raw':!![]})[_0x513d('0x23')](handleEntityNotFound(_0x4701a6,null))[_0x513d('0x23')](function(_0xc79e35){if(_0xc79e35){var _0x39de64=util[_0x513d('0x2f')](_0x513d('0x4c'),_0xc79e35[_0x513d('0x4b')]);if(fs[_0x513d('0x50')](_0x39de64)){_0x9191dd=!![];return _0x2b8f9d[_0x513d('0x4d')](_0x39de64,_0xc79e35[_0x513d('0x4b')],config[_0x513d('0x4e')][_0x513d('0x4f')])[_0x513d('0x23')](function(){return _0xc79e35;});}return _0xc79e35;}})[_0x513d('0x23')](function(_0x52e3d9){if(_0x52e3d9){if(!fs[_0x513d('0x50')](_0x52e3d9['value'])){throw new db[(_0x513d('0x5d'))][(_0x513d('0x5e'))](_0x513d('0x51'));}if(_0x52e3d9[_0x513d('0x52')]){return _0x4701a6[_0x513d('0x53')](_0x52e3d9['value'],_0x52e3d9[_0x513d('0x52')]+path[_0x513d('0x54')](_0x52e3d9['value']),function(){if(_0x9191dd){fs[_0x513d('0x55')](_0x52e3d9[_0x513d('0x4b')]);}});}else{return _0x4701a6[_0x513d('0x53')](_0x52e3d9[_0x513d('0x4b')],function(_0x3206f1){if(_0x9191dd){fs[_0x513d('0x55')](_0x52e3d9[_0x513d('0x4b')]);}});}}})[_0x513d('0x44')](handleError(_0x4701a6,null));};exports[_0x513d('0x22')]=function(_0x7692f4,_0x166d96){return db['VoiceRecording']['find']({'where':{'id':_0x7692f4[_0x513d('0x45')]['id']}})['then'](function(_0x34b29c){if(_['isNil'](_0x34b29c)){throw new ReferenceError('Entity\x20not\x20found');}return _0x34b29c;})[_0x513d('0x23')](function(_0x19ce9b){var _0x22a50d=_0x19ce9b[_0x513d('0x4b')];logger[_0x513d('0x5f')](_0x513d('0x60'),_0x22a50d);if(!_[_0x513d('0x61')](_0x19ce9b[_0x513d('0x4b')])&&fs[_0x513d('0x50')](_0x22a50d)){logger[_0x513d('0x5f')]('File:\x20\x22'+_0x22a50d+_0x513d('0x62'));fs[_0x513d('0x63')](_0x22a50d);}_0x22a50d=_0x22a50d+_0x513d('0x64');if(!_[_0x513d('0x61')](_0x19ce9b[_0x513d('0x4b')])&&fs[_0x513d('0x50')](_0x22a50d)){logger[_0x513d('0x5f')](_0x513d('0x65')+_0x22a50d+_0x513d('0x62'));fs[_0x513d('0x63')](_0x22a50d);}return _0x19ce9b;})['then'](function(_0x354dfc){if(!_0x354dfc)throw new InternalError();return _0x354dfc[_0x513d('0x22')]();})[_0x513d('0x23')](function(){_0x166d96['status'](0xcc)['end']();})[_0x513d('0x44')](handleError(_0x166d96,null));};function getBucketslist(_0x5e22aa,_0x46f518,_0x275080){return new Promise(function(_0xe1855c,_0x47a05e){var _0x241f8d=new AWS['S3']({'accessKeyId':_0x46f518,'secretAccessKey':_0x5e22aa,'region':_0x275080});_0x241f8d[_0x513d('0x66')]({},function(_0x5ab7ee,_0x56bed9){if(_0x5ab7ee){return _0x47a05e(_0x5ab7ee);}else{return _0xe1855c(_0x56bed9);}});});}function createBucket(_0x1b694b,_0x34049f,_0x13175e,_0x535cb3){return new Promise(function(_0x2a1058,_0x10657a){var _0x717962=new AWS['S3']({'accessKeyId':_0x34049f,'secretAccessKey':_0x1b694b,'region':_0x13175e});_0x717962[_0x513d('0x67')]({'Bucket':_0x535cb3},function(_0x1e0ed7,_0x352195){if(_0x1e0ed7){return _0x10657a(_0x1e0ed7);}else{return _0x2a1058(_0x352195);}});});}function uploadFile(_0x39acb8,_0x1176fb,_0x370dc4,_0x2d9f9e,_0x3573b6,_0x10914e){return new Promise(function(_0x373787,_0x2da02f){var _0x15866c=new AWS['S3']({'accessKeyId':_0x1176fb,'secretAccessKey':_0x39acb8,'region':_0x370dc4});_0x15866c['upload']({'Bucket':_0x2d9f9e,'Key':_0x3573b6,'Body':_0x10914e},function(_0x30c811,_0x237a8b){if(_0x30c811){return _0x2da02f(_0x30c811);}else{return _0x373787(_0x237a8b);}});});}function startTranscribe(_0x214c27,_0x165946,_0xe949be,_0x27b1a1,_0x1383bd,_0x3af3f5){return new Promise(function(_0x229028,_0x4cf02e){var _0x49bdd5=new AWS[(_0x513d('0x68'))]({'accessKeyId':_0x165946,'secretAccessKey':_0x214c27,'region':_0xe949be});_0x49bdd5[_0x513d('0x69')]({'TranscriptionJobName':_0x27b1a1,'LanguageCode':_0x1383bd,'Media':{'MediaFileUri':_0x3af3f5}},function(_0x29fcca,_0x5e6dd3){if(_0x29fcca){return _0x4cf02e(_0x29fcca);}else{return _0x229028(_0x5e6dd3);}});});}function transcribe(_0x2a0b44,_0x3374cc,_0x2ef22c,_0x4337b9,_0xc494b3,_0x1639ee,_0x5d636f){return new Promise(function(_0x38bab6,_0x140c3b){var _0x202e4b={};logger[_0x513d('0x5f')](util[_0x513d('0x2f')]('[RUNTRANSCRIPT][%d]\x20Starting\x20voice\x20recording\x20upload\x20in\x20bucket\x20%s',_0x2a0b44,_0xc494b3));return uploadFile(_0x3374cc,_0x2ef22c,_0x4337b9,_0xc494b3,path['basename'](_0x1639ee),fs[_0x513d('0x6a')](_0x1639ee))[_0x513d('0x23')](function(_0x5c8722){logger[_0x513d('0x5f')](util[_0x513d('0x2f')](_0x513d('0x6b'),_0x2a0b44,_0xc494b3,_0x5c8722['Location']));_0x202e4b['bucket']=_0x5c8722[_0x513d('0x6c')];_0x202e4b[_0x513d('0x6d')]=_0x5c8722[_0x513d('0x6e')];logger[_0x513d('0x5f')](util[_0x513d('0x2f')](_0x513d('0x6f'),_0x2a0b44));return startTranscribe(_0x3374cc,_0x2ef22c,_0x4337b9,uuidv4(),_0x5d636f,_0x5c8722['Location']);})[_0x513d('0x23')](function(_0x299924){logger[_0x513d('0x5f')](util[_0x513d('0x2f')](_0x513d('0x70'),_0x2a0b44,_0x299924[_0x513d('0x71')][_0x513d('0x72')]));_0x202e4b[_0x513d('0x73')]=_0x299924['TranscriptionJob'][_0x513d('0x72')];_0x202e4b[_0x513d('0x74')]=_0x299924[_0x513d('0x71')][_0x513d('0x75')];return _0x38bab6(_0x202e4b);})[_0x513d('0x44')](function(_0x5cff21){return _0x140c3b(_0x5cff21);});});}exports[_0x513d('0x76')]=function(_0x4d68c8,_0x5c08ee,_0xfc8045){var _0x1935e1;var _0x1dabc6;var _0x538ef2;var _0x101661=require(_0x513d('0x49'));return db['VoiceRecording'][_0x513d('0x77')]({'where':{'id':_0x4d68c8[_0x513d('0x45')]['id']}})[_0x513d('0x23')](function(_0x32c5ef){if(_0x32c5ef){var _0x57776f=util[_0x513d('0x2f')]('%s.cypher',_0x32c5ef[_0x513d('0x4b')]);if(fs[_0x513d('0x50')](_0x57776f)){cypher=!![];return _0x101661[_0x513d('0x4d')](_0x57776f,_0x32c5ef[_0x513d('0x4b')],config['secrets'][_0x513d('0x4f')])['then'](function(){return _0x32c5ef;});}return _0x32c5ef;}})[_0x513d('0x23')](function(_0x30a970){if(!_0x30a970){throw new db[(_0x513d('0x5d'))][(_0x513d('0x5e'))]('Voice\x20Recording\x20not\x20found');}_0x1dabc6=_0x30a970;return db[_0x513d('0x78')][_0x513d('0x77')]({'where':{'id':0x1}});})['then'](handleEntityNotFound(_0x5c08ee,null))['then'](function(_0xaa606b){if(_0xaa606b){_0x1935e1=_0xaa606b;if(!_0x1935e1[_0x513d('0x79')]||!_0x1935e1[_0x513d('0x7a')]||!_0x1935e1[_0x513d('0x7b')]||!_0x1935e1['language']||!_0x1935e1[_0x513d('0x7c')]){throw new db[(_0x513d('0x5d'))][(_0x513d('0x5e'))]('Transcribe\x20not\x20configured');}if(_0x4d68c8['body'][_0x513d('0x7d')]&&(!_0x1935e1[_0x513d('0x7e')]||!_0x1935e1['sentimentAccountId']||!_0x1935e1['sentimentRegion']||!_0x1935e1[_0x513d('0x7f')]||!_0x1935e1['bucket'])){throw new db['Sequelize'][(_0x513d('0x5e'))](_0x513d('0x80'));}return db['CloudProvider'][_0x513d('0x77')]({'where':{'id':_0x1935e1['transcribeAccountId']}});}})[_0x513d('0x23')](function(_0x29a47f){if(!_0x29a47f){throw new db[(_0x513d('0x5d'))]['ValidationError'](_0x513d('0x81'));}if(!_0x29a47f['data1']||!_0x29a47f[_0x513d('0x82')]){throw new db[(_0x513d('0x5d'))]['ValidationError'](_0x513d('0x83'));}_0x538ef2=_0x29a47f;return getBucketslist(_0x538ef2[_0x513d('0x84')],_0x538ef2[_0x513d('0x82')],_0x1935e1[_0x513d('0x7b')]);})[_0x513d('0x23')](function(_0x4d5249){if(_0x4d5249&&_0x4d5249[_0x513d('0x85')]){var _0x1029d6=_['find'](_0x4d5249['Buckets'],function(_0x4f154e){return _0x4f154e[_0x513d('0x86')]===_0x1935e1[_0x513d('0x7c')];});if(!_0x1029d6){logger['info'](util[_0x513d('0x2f')]('[RUNTRANSCRIPT][%d]\x20Bucket\x20%s\x20not\x20available',_0x4d68c8[_0x513d('0x45')]['id'],_0x1935e1[_0x513d('0x7c')]));return createBucket(_0x538ef2[_0x513d('0x84')],_0x538ef2[_0x513d('0x82')],_0x1935e1[_0x513d('0x7b')],_0x1935e1['bucket']);}logger[_0x513d('0x5f')](util['format']('[RUNTRANSCRIPT][%d]\x20Bucket\x20%s\x20available',_0x4d68c8['params']['id'],_0x1935e1[_0x513d('0x7c')]));return;}})[_0x513d('0x23')](function(_0x1c3aa8){if(_0x1dabc6[_0x513d('0x74')]==='NEW'){return transcribe(_0x4d68c8[_0x513d('0x45')]['id'],_0x538ef2[_0x513d('0x84')],_0x538ef2[_0x513d('0x82')],_0x1935e1['transcribeRegion'],_0x1935e1[_0x513d('0x7c')],_0x1dabc6['value'],_0x1935e1[_0x513d('0x7f')]);}else{logger[_0x513d('0x5f')](util[_0x513d('0x2f')](_0x513d('0x87'),_0x4d68c8[_0x513d('0x45')]['id']));return{'transcribeStatus':_0x513d('0x88')};}})['then'](function(_0x568689){if(_0x568689){_0x568689[_0x513d('0x89')]=_0x4d68c8['body'][_0x513d('0x7d')];return _0x1dabc6[_0x513d('0x8a')](_0x568689);}})[_0x513d('0x23')](respondWithResult(_0x5c08ee,null))[_0x513d('0x44')](handleError(_0x5c08ee,null));};function writeFile(_0x98d8f5,_0x2b1086){return new Promise(function(_0x44a7c2,_0x4975e8){fs['writeFile'](_0x2b1086,_0x98d8f5,function(_0x2a02fd,_0x32ddb6){if(_0x2a02fd){return _0x4975e8(_0x2a02fd);}else{return _0x44a7c2(_0x32ddb6);}});});}exports[_0x513d('0x8b')]=function(_0x285074,_0x5dbefe,_0x4bc314){return db['VoiceRecording'][_0x513d('0x77')]({'where':{'id':_0x285074[_0x513d('0x45')]['id']}})[_0x513d('0x23')](handleEntityNotFound(_0x5dbefe))['then'](function(_0x3bafc5){if(_0x3bafc5&&_0x3bafc5['fileText']){var _0x30cf05=_0x3bafc5['fileText'];var _0x3db63b=config[_0x513d('0x8c')]+_0x513d('0x8d')+_0x3bafc5['id']+_0x513d('0x8e');if(fs[_0x513d('0x50')](_0x3db63b)){return _0x3db63b;}return writeFile(_0x30cf05,_0x3db63b)[_0x513d('0x23')](function(){return _0x3db63b;});}else{throw new db[(_0x513d('0x5d'))][(_0x513d('0x5e'))]('Transcript\x20not\x20available');}})[_0x513d('0x23')](function(_0x3f73c0){return _0x5dbefe[_0x513d('0x53')](_0x3f73c0);})[_0x513d('0x44')](handleError(_0x5dbefe));};
\ No newline at end of file
+var _0x547c=['[RUNTRANSCRIPT][%d]\x20Bucket\x20%s\x20available','NEW','[RUNTRANSCRIPT][%d]\x20Transcript\x20action\x20already\x20requested','updateAttributes','writeFile','downloadTranscribe','fileText','root','/server/files/transcribes/transcribe_','.txt','Transcript\x20not\x20available','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','crypto','jsforce','desk.js','papaparse','aws-sdk','uuid/v4','ioredis','../../components/auth/service','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','offset','undefined','limit','count','Content-Range','json','apply','reject','save','update','then','destroy','error','name','send','index','map','VoiceRecording','fieldName','type','key','differenceBy','keys','query','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','VIRTUAL','filter','options','includeAll','findAll','rawAttributes','include','merge','find','catch','create','body','params','describe','download','../../components/encryptor','uniqueid','value','format','%s.cypher','existsSync','secrets','recording','ValidationError','filename','extname','unlink','VoiceRecording\x20not\x20found','Not\x20found','downloads','sequelize','MD5','col','token','$and','push','decryptFile','Entity\x20not\x20found','cancellazione\x20fisica\x20documento\x20%s','info','File:\x20\x22','unlinkSync','.cypher','isNil','createBucket','upload','[RUNTRANSCRIPT][%d]\x20Starting\x20voice\x20recording\x20upload\x20in\x20bucket\x20%s','basename','[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','transcribeName','TranscriptionJobName','transcribeStatus','TranscriptionJob','TranscriptionJobStatus','runTranscribe','findOne','Sequelize','Voice\x20Recording\x20not\x20found','Setting','transcribeRegion','language','runSentiment','sentiment','sentimentAccountId','sentimentRegion','Sentiment\x20Analysis\x20not\x20configured','CloudProvider','transcribeAccountId','Cloud\x20Provider\x20not\x20available','data1','data2','Cloud\x20Provider\x20not\x20configured','Buckets','Name','[RUNTRANSCRIPT][%d]\x20Bucket\x20%s\x20not\x20available'];(function(_0x5bccbf,_0x547e42){var _0x2158c6=function(_0x40f28a){while(--_0x40f28a){_0x5bccbf['push'](_0x5bccbf['shift']());}};_0x2158c6(++_0x547e42);}(_0x547c,0x1d6));var _0xc547=function(_0x58b2f5,_0x203b82){_0x58b2f5=_0x58b2f5-0x0;var _0x41c0db=_0x547c[_0x58b2f5];return _0x41c0db;};'use strict';var emlformat=require(_0xc547('0x0'));var rimraf=require(_0xc547('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xc547('0x2'));var rp=require(_0xc547('0x3'));var moment=require(_0xc547('0x4'));var BPromise=require(_0xc547('0x5'));var Mustache=require(_0xc547('0x6'));var util=require(_0xc547('0x7'));var path=require(_0xc547('0x8'));var sox=require(_0xc547('0x9'));var csv=require(_0xc547('0xa'));var ejs=require(_0xc547('0xb'));var fs=require('fs');var fs_extra=require(_0xc547('0xc'));var _=require('lodash');var squel=require('squel');var crypto=require(_0xc547('0xd'));var jsforce=require(_0xc547('0xe'));var deskjs=require(_0xc547('0xf'));var toCsv=require(_0xc547('0xa'));var querystring=require('querystring');var Papa=require(_0xc547('0x10'));var AWS=require(_0xc547('0x11'));var uuidv4=require(_0xc547('0x12'));var Redis=require(_0xc547('0x13'));var authService=require(_0xc547('0x14'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')('api');var utils=require(_0xc547('0x15'));var config=require(_0xc547('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0xc547('0x17'))['db'];function respondWithStatusCode(_0x2bed6b,_0x18100f){_0x18100f=_0x18100f||0xcc;return function(_0x334f53){if(_0x334f53){return _0x2bed6b[_0xc547('0x18')](_0x18100f);}return _0x2bed6b['status'](_0x18100f)['end']();};}function respondWithResult(_0x3af0e1,_0x5a0d89){_0x5a0d89=_0x5a0d89||0xc8;return function(_0x16fc52){if(_0x16fc52){return _0x3af0e1[_0xc547('0x19')](_0x5a0d89)['json'](_0x16fc52);}};}function respondWithFilteredResult(_0x576248,_0x55098e){return function(_0x3ffaea){if(_0x3ffaea){var _0x3b6b38=typeof _0x55098e[_0xc547('0x1a')]===_0xc547('0x1b')&&typeof _0x55098e[_0xc547('0x1c')]===_0xc547('0x1b');var _0x400920=_0x3ffaea[_0xc547('0x1d')];var _0x422bef=_0x3b6b38?0x0:_0x55098e['offset'];var _0x5f5817=_0x3b6b38?_0x3ffaea[_0xc547('0x1d')]:_0x55098e['offset']+_0x55098e[_0xc547('0x1c')];var _0x1ff612;if(_0x5f5817>=_0x400920){_0x5f5817=_0x400920;_0x1ff612=0xc8;}else{_0x1ff612=0xce;}_0x576248[_0xc547('0x19')](_0x1ff612);return _0x576248['set'](_0xc547('0x1e'),_0x422bef+'-'+_0x5f5817+'/'+_0x400920)[_0xc547('0x1f')](_0x3ffaea);}return null;};}function patchUpdates(_0x370350){return function(_0x40d235){try{jsonpatch[_0xc547('0x20')](_0x40d235,_0x370350,!![]);}catch(_0x42d1bd){return BPromise[_0xc547('0x21')](_0x42d1bd);}return _0x40d235[_0xc547('0x22')]();};}function saveUpdates(_0x46768c,_0x1211f3){return function(_0x3b2239){if(_0x3b2239){return _0x3b2239[_0xc547('0x23')](_0x46768c)[_0xc547('0x24')](function(_0xe1d801){return _0xe1d801;});}return null;};}function removeEntity(_0x4a4595,_0x5bb95b){return function(_0x9ae552){if(_0x9ae552){return _0x9ae552[_0xc547('0x25')]()[_0xc547('0x24')](function(){_0x4a4595['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x2fa5a0,_0x5d4bd3){return function(_0x11a62d){if(!_0x11a62d){_0x2fa5a0[_0xc547('0x18')](0x194);}return _0x11a62d;};}function handleError(_0x57a93d,_0x49d150){_0x49d150=_0x49d150||0x1f4;return function(_0x5af866){logger[_0xc547('0x26')](_0x5af866['stack']);if(_0x5af866[_0xc547('0x27')]){delete _0x5af866[_0xc547('0x27')];}_0x57a93d[_0xc547('0x19')](_0x49d150)[_0xc547('0x28')](_0x5af866);};}exports[_0xc547('0x29')]=function(_0x5d919b,_0x207583){var _0x55463a={},_0x41cafb={},_0x12238d={'count':0x0,'rows':[]};var _0x394aad=_[_0xc547('0x2a')](db[_0xc547('0x2b')]['rawAttributes'],function(_0x219c82){return{'name':_0x219c82[_0xc547('0x2c')],'type':_0x219c82[_0xc547('0x2d')][_0xc547('0x2e')]};});_0x41cafb['model']=_[_0xc547('0x2f')](_[_0xc547('0x2a')](_0x394aad,_0xc547('0x27')),['format']);_0x41cafb['query']=_[_0xc547('0x30')](_0x5d919b[_0xc547('0x31')]);_0x41cafb[_0xc547('0x32')]=_[_0xc547('0x33')](_0x41cafb[_0xc547('0x34')],_0x41cafb[_0xc547('0x31')]);_0x55463a[_0xc547('0x35')]=_[_0xc547('0x33')](_0x41cafb[_0xc547('0x34')],qs[_0xc547('0x36')](_0x5d919b['query']['fields']));_0x55463a[_0xc547('0x35')]=_0x55463a[_0xc547('0x35')][_0xc547('0x37')]?_0x55463a[_0xc547('0x35')]:_0x41cafb['model'];if(!_0x5d919b[_0xc547('0x31')][_0xc547('0x38')](_0xc547('0x39'))){_0x55463a['limit']=qs[_0xc547('0x1c')](_0x5d919b[_0xc547('0x31')]['limit']);_0x55463a[_0xc547('0x1a')]=qs[_0xc547('0x1a')](_0x5d919b['query'][_0xc547('0x1a')]);}_0x55463a[_0xc547('0x3a')]=qs[_0xc547('0x3b')](_0x5d919b[_0xc547('0x31')]['sort']);_0x55463a[_0xc547('0x3c')]=qs[_0xc547('0x32')](_['pick'](_0x5d919b['query'],_0x41cafb[_0xc547('0x32')]),_0x394aad);if(_0x5d919b[_0xc547('0x31')]['filter']){_0x55463a[_0xc547('0x3c')]=_['merge'](_0x55463a[_0xc547('0x3c')],{'$or':_[_0xc547('0x2a')](_0x394aad,function(_0x43cc9d){if(_0x43cc9d[_0xc547('0x2d')]!==_0xc547('0x3d')){var _0x528f24={};_0x528f24[_0x43cc9d['name']]={'$like':'%'+_0x5d919b[_0xc547('0x31')][_0xc547('0x3e')]+'%'};return _0x528f24;}})});}_0x55463a=_['merge']({},_0x55463a,_0x5d919b[_0xc547('0x3f')]);var _0x4e9a86={'where':_0x55463a[_0xc547('0x3c')]};return db['VoiceRecording'][_0xc547('0x1d')](_0x4e9a86)[_0xc547('0x24')](function(_0x2503b9){_0x12238d['count']=_0x2503b9;if(_0x5d919b[_0xc547('0x31')][_0xc547('0x40')]){_0x55463a['include']=[{'all':!![]}];}return db[_0xc547('0x2b')][_0xc547('0x41')](_0x55463a);})[_0xc547('0x24')](function(_0x23ce80){_0x12238d['rows']=_0x23ce80;return _0x12238d;})[_0xc547('0x24')](respondWithFilteredResult(_0x207583,_0x55463a))['catch'](handleError(_0x207583,null));};exports['show']=function(_0x1c3844,_0x53fd3a){var _0x266de6={'raw':![],'where':{'id':_0x1c3844['params']['id']}},_0x3422a0={};_0x3422a0[_0xc547('0x34')]=_[_0xc547('0x30')](db['VoiceRecording'][_0xc547('0x42')]);_0x3422a0[_0xc547('0x31')]=_[_0xc547('0x30')](_0x1c3844[_0xc547('0x31')]);_0x3422a0[_0xc547('0x32')]=_[_0xc547('0x33')](_0x3422a0['model'],_0x3422a0[_0xc547('0x31')]);_0x266de6['attributes']=_[_0xc547('0x33')](_0x3422a0['model'],qs[_0xc547('0x36')](_0x1c3844[_0xc547('0x31')][_0xc547('0x36')]));_0x266de6[_0xc547('0x35')]=_0x266de6['attributes'][_0xc547('0x37')]?_0x266de6[_0xc547('0x35')]:_0x3422a0[_0xc547('0x34')];if(_0x1c3844[_0xc547('0x31')][_0xc547('0x40')]){_0x266de6[_0xc547('0x43')]=[{'all':!![]}];}_0x266de6=_[_0xc547('0x44')]({},_0x266de6,_0x1c3844[_0xc547('0x3f')]);return db[_0xc547('0x2b')][_0xc547('0x45')](_0x266de6)[_0xc547('0x24')](handleEntityNotFound(_0x53fd3a,null))[_0xc547('0x24')](respondWithResult(_0x53fd3a,null))[_0xc547('0x46')](handleError(_0x53fd3a,null));};exports[_0xc547('0x47')]=function(_0x171e70,_0x3be160){return db['VoiceRecording'][_0xc547('0x47')](_0x171e70[_0xc547('0x48')],{})['then'](respondWithResult(_0x3be160,0xc9))[_0xc547('0x46')](handleError(_0x3be160,null));};exports[_0xc547('0x23')]=function(_0x589c30,_0x38a2e1){if(_0x589c30[_0xc547('0x48')]['id']){delete _0x589c30[_0xc547('0x48')]['id'];}return db[_0xc547('0x2b')][_0xc547('0x45')]({'where':{'id':_0x589c30[_0xc547('0x49')]['id']}})[_0xc547('0x24')](handleEntityNotFound(_0x38a2e1,null))[_0xc547('0x24')](saveUpdates(_0x589c30['body'],null))['then'](respondWithResult(_0x38a2e1,null))[_0xc547('0x46')](handleError(_0x38a2e1,null));};exports['describe']=function(_0x2b0a1c,_0x26ba28){return db['VoiceRecording'][_0xc547('0x4a')]()[_0xc547('0x24')](respondWithResult(_0x26ba28,null))[_0xc547('0x46')](handleError(_0x26ba28,null));};exports[_0xc547('0x4b')]=function(_0x172cc6,_0x39d70d,_0x1251af){var _0x2c092b=require(_0xc547('0x4c'));var _0x41d50e=![];var _0x100056={};if(_0x172cc6[_0xc547('0x31')][_0xc547('0x2d')]&&_0x172cc6[_0xc547('0x31')][_0xc547('0x2d')]===_0xc547('0x4d')){_0x100056[_0xc547('0x4d')]=_0x172cc6[_0xc547('0x49')]['id'];}else{_0x100056['id']=_0x172cc6[_0xc547('0x49')]['id'];}return db[_0xc547('0x2b')][_0xc547('0x45')]({'where':_0x100056,'attributes':['id',_0xc547('0x4e')],'raw':!![]})[_0xc547('0x24')](handleEntityNotFound(_0x39d70d,null))['then'](function(_0x2dd01f){if(_0x2dd01f){var _0x1ca80a=_0x2dd01f['value'];var _0x325d22=util[_0xc547('0x4f')](_0xc547('0x50'),_0x1ca80a);if(fs[_0xc547('0x51')](_0x325d22)){_0x41d50e=!![];return _0x2c092b['decryptFile'](_0x325d22,_0x1ca80a,config[_0xc547('0x52')][_0xc547('0x53')])[_0xc547('0x24')](function(){return _0x2dd01f;});}return _0x2dd01f;}})[_0xc547('0x24')](function(_0x317578){if(_0x317578){var _0xf48bd8=_0x317578[_0xc547('0x4e')];if(!fs[_0xc547('0x51')](_0xf48bd8)){throw new db['Sequelize'][(_0xc547('0x54'))]('VoiceRecording\x20not\x20found');}if(_0x317578[_0xc547('0x55')]){return _0x39d70d[_0xc547('0x4b')](_0xf48bd8,_0x317578['filename']+path[_0xc547('0x56')](_0xf48bd8),function(){if(_0x41d50e){fs[_0xc547('0x57')](_0xf48bd8);}});}else{return _0x39d70d[_0xc547('0x4b')](_0xf48bd8,function(_0x25de3b){if(_0x41d50e){fs[_0xc547('0x57')](_0xf48bd8);}});}}})['catch'](function(_0x54ab08){if(_0x54ab08['message']===_0xc547('0x58')){_0x39d70d['status'](0x194)[_0xc547('0x28')](_0xc547('0x59'));}else{return handleError(_0x39d70d,null);}});};exports[_0xc547('0x5a')]=function(_0x5aff6d,_0x15ad6e,_0x5f1591){var _0x8d7d2f=require('../../components/encryptor');var _0x31a746=![];var _0x45aafc={'$and':[db[_0xc547('0x5b')][_0xc547('0x3c')](db['sequelize']['fn'](_0xc547('0x5c'),db[_0xc547('0x5b')][_0xc547('0x5d')](_0xc547('0x4d'))),_0x5aff6d[_0xc547('0x31')][_0xc547('0x5e')])]};if(_0x5aff6d[_0xc547('0x31')][_0xc547('0x2d')]&&_0x5aff6d[_0xc547('0x31')][_0xc547('0x2d')]===_0xc547('0x4d')){_0x45aafc[_0xc547('0x5f')][_0xc547('0x60')]({'uniqueid':_0x5aff6d[_0xc547('0x49')]['id']});}else{_0x45aafc[_0xc547('0x5f')][_0xc547('0x60')]({'id':_0x5aff6d['params']['id']});}return db[_0xc547('0x2b')][_0xc547('0x45')]({'where':_0x45aafc,'attributes':['id','value'],'raw':!![]})['then'](handleEntityNotFound(_0x15ad6e,null))[_0xc547('0x24')](function(_0x5b5c1c){if(_0x5b5c1c){var _0x38079f=util[_0xc547('0x4f')](_0xc547('0x50'),_0x5b5c1c[_0xc547('0x4e')]);if(fs['existsSync'](_0x38079f)){_0x31a746=!![];return _0x8d7d2f[_0xc547('0x61')](_0x38079f,_0x5b5c1c[_0xc547('0x4e')],config[_0xc547('0x52')][_0xc547('0x53')])[_0xc547('0x24')](function(){return _0x5b5c1c;});}return _0x5b5c1c;}})[_0xc547('0x24')](function(_0xa7ddc){if(_0xa7ddc){if(!fs[_0xc547('0x51')](_0xa7ddc['value'])){throw new db['Sequelize'][(_0xc547('0x54'))](_0xc547('0x58'));}if(_0xa7ddc['filename']){return _0x15ad6e[_0xc547('0x4b')](_0xa7ddc['value'],_0xa7ddc[_0xc547('0x55')]+path['extname'](_0xa7ddc[_0xc547('0x4e')]),function(){if(_0x31a746){fs[_0xc547('0x57')](_0xa7ddc[_0xc547('0x4e')]);}});}else{return _0x15ad6e[_0xc547('0x4b')](_0xa7ddc['value'],function(_0x2107de){if(_0x31a746){fs[_0xc547('0x57')](_0xa7ddc['value']);}});}}})[_0xc547('0x46')](handleError(_0x15ad6e,null));};exports[_0xc547('0x25')]=function(_0xda60c8,_0x2c9697){return db[_0xc547('0x2b')][_0xc547('0x45')]({'where':{'id':_0xda60c8[_0xc547('0x49')]['id']}})[_0xc547('0x24')](function(_0x9ee9a1){if(_['isNil'](_0x9ee9a1)){throw new ReferenceError(_0xc547('0x62'));}return _0x9ee9a1;})[_0xc547('0x24')](function(_0x45d8f0){var _0x278770=_0x45d8f0[_0xc547('0x4e')];logger['info'](_0xc547('0x63'),_0x278770);if(!_['isNil'](_0x45d8f0[_0xc547('0x4e')])&&fs['existsSync'](_0x278770)){logger[_0xc547('0x64')](_0xc547('0x65')+_0x278770+'\x22\x20trovato\x20eseguo\x20la\x20cancellazione');fs[_0xc547('0x66')](_0x278770);}_0x278770=_0x278770+_0xc547('0x67');if(!_[_0xc547('0x68')](_0x45d8f0[_0xc547('0x4e')])&&fs['existsSync'](_0x278770)){logger[_0xc547('0x64')]('File:\x20\x22'+_0x278770+'\x22\x20trovato\x20eseguo\x20la\x20cancellazione');fs[_0xc547('0x66')](_0x278770);}return _0x45d8f0;})[_0xc547('0x24')](function(_0x4cbcfe){if(!_0x4cbcfe)throw new InternalError();return _0x4cbcfe[_0xc547('0x25')]();})['then'](function(){_0x2c9697['status'](0xcc)['end']();})['catch'](handleError(_0x2c9697,null));};function getBucketslist(_0x2b40e7,_0x5034e8,_0x4ded75){return new Promise(function(_0xaf379d,_0x2354ef){var _0x389305=new AWS['S3']({'accessKeyId':_0x5034e8,'secretAccessKey':_0x2b40e7,'region':_0x4ded75});_0x389305['listBuckets']({},function(_0x2c91a0,_0x6fcc49){if(_0x2c91a0){return _0x2354ef(_0x2c91a0);}else{return _0xaf379d(_0x6fcc49);}});});}function createBucket(_0x26b987,_0x196006,_0x423b85,_0x1801e1){return new Promise(function(_0x40faa3,_0x220334){var _0x5be355=new AWS['S3']({'accessKeyId':_0x196006,'secretAccessKey':_0x26b987,'region':_0x423b85});_0x5be355[_0xc547('0x69')]({'Bucket':_0x1801e1},function(_0x289a21,_0x1570ee){if(_0x289a21){return _0x220334(_0x289a21);}else{return _0x40faa3(_0x1570ee);}});});}function uploadFile(_0x4617ad,_0x53711f,_0xf0353c,_0x2ca892,_0x5aa634,_0x3ab1d5){return new Promise(function(_0xe80d1,_0x1511fa){var _0x6a22c9=new AWS['S3']({'accessKeyId':_0x53711f,'secretAccessKey':_0x4617ad,'region':_0xf0353c});_0x6a22c9[_0xc547('0x6a')]({'Bucket':_0x2ca892,'Key':_0x5aa634,'Body':_0x3ab1d5},function(_0x3bc61e,_0x2316e2){if(_0x3bc61e){return _0x1511fa(_0x3bc61e);}else{return _0xe80d1(_0x2316e2);}});});}function startTranscribe(_0x5a8021,_0x5668fe,_0x3c13f6,_0x53bed9,_0x7c54c2,_0x58f366){return new Promise(function(_0x3d37f5,_0x5a7c8d){var _0x1f22a7=new AWS['TranscribeService']({'accessKeyId':_0x5668fe,'secretAccessKey':_0x5a8021,'region':_0x3c13f6});_0x1f22a7['startTranscriptionJob']({'TranscriptionJobName':_0x53bed9,'LanguageCode':_0x7c54c2,'Media':{'MediaFileUri':_0x58f366}},function(_0x28fae8,_0x4558dd){if(_0x28fae8){return _0x5a7c8d(_0x28fae8);}else{return _0x3d37f5(_0x4558dd);}});});}function transcribe(_0x1e8303,_0x5d4f6b,_0x5d59bb,_0x305c63,_0x3ffd1c,_0x1a1401,_0x2d913c){return new Promise(function(_0x1b7af1,_0x35ba14){var _0x2819a1={};logger[_0xc547('0x64')](util[_0xc547('0x4f')](_0xc547('0x6b'),_0x1e8303,_0x3ffd1c));return uploadFile(_0x5d4f6b,_0x5d59bb,_0x305c63,_0x3ffd1c,path[_0xc547('0x6c')](_0x1a1401),fs['readFileSync'](_0x1a1401))[_0xc547('0x24')](function(_0x57029e){logger[_0xc547('0x64')](util[_0xc547('0x4f')](_0xc547('0x6d'),_0x1e8303,_0x3ffd1c,_0x57029e[_0xc547('0x6e')]));_0x2819a1[_0xc547('0x6f')]=_0x57029e[_0xc547('0x70')];_0x2819a1[_0xc547('0x71')]=_0x57029e[_0xc547('0x6e')];logger['info'](util['format'](_0xc547('0x72'),_0x1e8303));return startTranscribe(_0x5d4f6b,_0x5d59bb,_0x305c63,uuidv4(),_0x2d913c,_0x57029e[_0xc547('0x6e')]);})[_0xc547('0x24')](function(_0x2433a6){logger[_0xc547('0x64')](util[_0xc547('0x4f')](_0xc547('0x73'),_0x1e8303,_0x2433a6['TranscriptionJob']['TranscriptionJobName']));_0x2819a1[_0xc547('0x74')]=_0x2433a6['TranscriptionJob'][_0xc547('0x75')];_0x2819a1[_0xc547('0x76')]=_0x2433a6[_0xc547('0x77')][_0xc547('0x78')];return _0x1b7af1(_0x2819a1);})[_0xc547('0x46')](function(_0x2c7dda){return _0x35ba14(_0x2c7dda);});});}exports[_0xc547('0x79')]=function(_0x451589,_0x39a127,_0x480400){var _0x45a83d;var _0x486942;var _0x283ec9;var _0x20dd98=require(_0xc547('0x4c'));return db['VoiceRecording'][_0xc547('0x7a')]({'where':{'id':_0x451589[_0xc547('0x49')]['id']}})[_0xc547('0x24')](function(_0x4b86f6){if(_0x4b86f6){var _0x187b0a=util[_0xc547('0x4f')](_0xc547('0x50'),_0x4b86f6[_0xc547('0x4e')]);if(fs[_0xc547('0x51')](_0x187b0a)){cypher=!![];return _0x20dd98[_0xc547('0x61')](_0x187b0a,_0x4b86f6['value'],config[_0xc547('0x52')]['recording'])[_0xc547('0x24')](function(){return _0x4b86f6;});}return _0x4b86f6;}})[_0xc547('0x24')](function(_0x366fd1){if(!_0x366fd1){throw new db[(_0xc547('0x7b'))]['ValidationError'](_0xc547('0x7c'));}_0x486942=_0x366fd1;return db[_0xc547('0x7d')][_0xc547('0x7a')]({'where':{'id':0x1}});})[_0xc547('0x24')](handleEntityNotFound(_0x39a127,null))[_0xc547('0x24')](function(_0x372870){if(_0x372870){_0x45a83d=_0x372870;if(!_0x45a83d['transcribe']||!_0x45a83d['transcribeAccountId']||!_0x45a83d[_0xc547('0x7e')]||!_0x45a83d[_0xc547('0x7f')]||!_0x45a83d['bucket']){throw new db['Sequelize']['ValidationError']('Transcribe\x20not\x20configured');}if(_0x451589[_0xc547('0x48')][_0xc547('0x80')]&&(!_0x45a83d[_0xc547('0x81')]||!_0x45a83d[_0xc547('0x82')]||!_0x45a83d[_0xc547('0x83')]||!_0x45a83d[_0xc547('0x7f')]||!_0x45a83d['bucket'])){throw new db[(_0xc547('0x7b'))][(_0xc547('0x54'))](_0xc547('0x84'));}return db[_0xc547('0x85')][_0xc547('0x7a')]({'where':{'id':_0x45a83d[_0xc547('0x86')]}});}})[_0xc547('0x24')](function(_0x3c7f80){if(!_0x3c7f80){throw new db[(_0xc547('0x7b'))]['ValidationError'](_0xc547('0x87'));}if(!_0x3c7f80[_0xc547('0x88')]||!_0x3c7f80[_0xc547('0x89')]){throw new db[(_0xc547('0x7b'))][(_0xc547('0x54'))](_0xc547('0x8a'));}_0x283ec9=_0x3c7f80;return getBucketslist(_0x283ec9[_0xc547('0x88')],_0x283ec9['data2'],_0x45a83d[_0xc547('0x7e')]);})[_0xc547('0x24')](function(_0x2c64d5){if(_0x2c64d5&&_0x2c64d5[_0xc547('0x8b')]){var _0x239d89=_[_0xc547('0x45')](_0x2c64d5[_0xc547('0x8b')],function(_0x66e15f){return _0x66e15f[_0xc547('0x8c')]===_0x45a83d[_0xc547('0x6f')];});if(!_0x239d89){logger[_0xc547('0x64')](util['format'](_0xc547('0x8d'),_0x451589[_0xc547('0x49')]['id'],_0x45a83d['bucket']));return createBucket(_0x283ec9['data1'],_0x283ec9[_0xc547('0x89')],_0x45a83d['transcribeRegion'],_0x45a83d[_0xc547('0x6f')]);}logger[_0xc547('0x64')](util[_0xc547('0x4f')](_0xc547('0x8e'),_0x451589[_0xc547('0x49')]['id'],_0x45a83d['bucket']));return;}})[_0xc547('0x24')](function(_0x53fc76){if(_0x486942[_0xc547('0x76')]===_0xc547('0x8f')){return transcribe(_0x451589[_0xc547('0x49')]['id'],_0x283ec9[_0xc547('0x88')],_0x283ec9[_0xc547('0x89')],_0x45a83d[_0xc547('0x7e')],_0x45a83d[_0xc547('0x6f')],_0x486942[_0xc547('0x4e')],_0x45a83d[_0xc547('0x7f')]);}else{logger['info'](util[_0xc547('0x4f')](_0xc547('0x90'),_0x451589[_0xc547('0x49')]['id']));return{'transcribeStatus':'IN_PROGRESS'};}})[_0xc547('0x24')](function(_0x57d8b){if(_0x57d8b){_0x57d8b['tempSentiment']=_0x451589[_0xc547('0x48')]['runSentiment'];return _0x486942[_0xc547('0x91')](_0x57d8b);}})[_0xc547('0x24')](respondWithResult(_0x39a127,null))[_0xc547('0x46')](handleError(_0x39a127,null));};function writeFile(_0x3eb687,_0x1086dc){return new Promise(function(_0x2d900b,_0x49582c){fs[_0xc547('0x92')](_0x1086dc,_0x3eb687,function(_0x1e20a4,_0x213a2b){if(_0x1e20a4){return _0x49582c(_0x1e20a4);}else{return _0x2d900b(_0x213a2b);}});});}exports[_0xc547('0x93')]=function(_0x1f3b0e,_0x2d358d,_0x37e064){return db[_0xc547('0x2b')][_0xc547('0x7a')]({'where':{'id':_0x1f3b0e[_0xc547('0x49')]['id']}})['then'](handleEntityNotFound(_0x2d358d))['then'](function(_0x15dd9f){if(_0x15dd9f&&_0x15dd9f[_0xc547('0x94')]){var _0x10808e=_0x15dd9f[_0xc547('0x94')];var _0x5dcbb1=config[_0xc547('0x95')]+_0xc547('0x96')+_0x15dd9f['id']+_0xc547('0x97');if(fs['existsSync'](_0x5dcbb1)){return _0x5dcbb1;}return writeFile(_0x10808e,_0x5dcbb1)[_0xc547('0x24')](function(){return _0x5dcbb1;});}else{throw new db[(_0xc547('0x7b'))][(_0xc547('0x54'))](_0xc547('0x98'));}})[_0xc547('0x24')](function(_0x546052){return _0x2d358d[_0xc547('0x4b')](_0x546052);})[_0xc547('0x46')](handleError(_0x2d358d));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x40ac=['moment','bluebird','request-promise','path','rimraf','./voiceRecording.attributes','exports','VoiceRecording','voice_recordings','uniqueid','lodash','../../config/logger','api'];(function(_0x30baee,_0x4c6c17){var _0x4047c0=function(_0xbc4bf2){while(--_0xbc4bf2){_0x30baee['push'](_0x30baee['shift']());}};_0x4047c0(++_0x4c6c17);}(_0x40ac,0x1de));var _0xc40a=function(_0x1366e4,_0x2893d0){_0x1366e4=_0x1366e4-0x0;var _0x44d1c9=_0x40ac[_0x1366e4];return _0x44d1c9;};'use strict';var _=require(_0xc40a('0x0'));var util=require('util');var logger=require(_0xc40a('0x1'))(_0xc40a('0x2'));var moment=require(_0xc40a('0x3'));var BPromise=require(_0xc40a('0x4'));var rp=require(_0xc40a('0x5'));var fs=require('fs');var path=require(_0xc40a('0x6'));var rimraf=require(_0xc40a('0x7'));var config=require('../../config/environment');var attributes=require(_0xc40a('0x8'));module[_0xc40a('0x9')]=function(_0xd6d891,_0x5e179f){return _0xd6d891['define'](_0xc40a('0xa'),attributes,{'tableName':_0xc40a('0xb'),'paranoid':![],'indexes':[{'name':'uniqueid','fields':[_0xc40a('0xc')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x39ee=['../../config/logger','api','request-promise','path','rimraf','../../config/environment','./voiceRecording.attributes','exports','define','VoiceRecording','uniqueid'];(function(_0x5b25d3,_0x30c363){var _0x16fd30=function(_0x1fac64){while(--_0x1fac64){_0x5b25d3['push'](_0x5b25d3['shift']());}};_0x16fd30(++_0x30c363);}(_0x39ee,0x8f));var _0xe39e=function(_0x2c91e9,_0x2fb965){_0x2c91e9=_0x2c91e9-0x0;var _0x13f0ff=_0x39ee[_0x2c91e9];return _0x13f0ff;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0xe39e('0x0'))(_0xe39e('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0xe39e('0x2'));var fs=require('fs');var path=require(_0xe39e('0x3'));var rimraf=require(_0xe39e('0x4'));var config=require(_0xe39e('0x5'));var attributes=require(_0xe39e('0x6'));module[_0xe39e('0x7')]=function(_0x57292c,_0x254d0c){return _0x57292c[_0xe39e('0x8')](_0xe39e('0x9'),attributes,{'tableName':'voice_recordings','paranoid':![],'indexes':[{'name':_0xe39e('0xa'),'fields':['uniqueid']}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x32f4=['unlink','CreateVoiceRecording\x20file\x20encrypted','CreateVoiceRecording','debug','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','then','info','VoiceRecording,\x20%s,\x20%s','request\x20sent','VoiceRecording,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','UpdateVoiceRecording','VoiceRecording','body','options','raw','where','attributes','../../components/encryptor','findOne','callRecordingEncryption','existsSync','format','encryptFile','value','secrets','recording'];(function(_0x3070dc,_0x40cf11){var _0x431489=function(_0x49bc2a){while(--_0x49bc2a){_0x3070dc['push'](_0x3070dc['shift']());}};_0x431489(++_0x40cf11);}(_0x32f4,0x154));var _0x432f=function(_0x41ee03,_0x1889f8){_0x41ee03=_0x41ee03-0x0;var _0x267456=_0x32f4[_0x41ee03];return _0x267456;};'use strict';var _=require(_0x432f('0x0'));var util=require(_0x432f('0x1'));var moment=require(_0x432f('0x2'));var BPromise=require(_0x432f('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x432f('0x4'));var db=require(_0x432f('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0x432f('0x6'))(_0x432f('0x7'));var config=require(_0x432f('0x8'));var jayson=require(_0x432f('0x9'));var client=jayson[_0x432f('0xa')]['http']({'port':0x232a});function respondWithRpcPromise(_0x5b5f08,_0x2f66fd,_0x32b062){return new BPromise(function(_0x4a5b56,_0x2a2ef6){return client['request'](_0x5b5f08,_0x32b062)[_0x432f('0xb')](function(_0x340fe9){logger[_0x432f('0xc')](_0x432f('0xd'),_0x2f66fd,_0x432f('0xe'));logger['debug'](_0x432f('0xf'),_0x2f66fd,'request\x20sent',JSON[_0x432f('0x10')](_0x340fe9));if(_0x340fe9['error']){if(_0x340fe9[_0x432f('0x11')][_0x432f('0x12')]===0x1f4){logger['error'](_0x432f('0xd'),_0x2f66fd,_0x340fe9[_0x432f('0x11')]['message']);return _0x2a2ef6(_0x340fe9[_0x432f('0x11')][_0x432f('0x13')]);}logger['error']('VoiceRecording,\x20%s,\x20%s',_0x2f66fd,_0x340fe9[_0x432f('0x11')][_0x432f('0x13')]);return _0x4a5b56(_0x340fe9[_0x432f('0x11')][_0x432f('0x13')]);}else{logger[_0x432f('0xc')]('VoiceRecording,\x20%s,\x20%s',_0x2f66fd,_0x432f('0xe'));_0x4a5b56(_0x340fe9[_0x432f('0x14')][_0x432f('0x13')]);}})[_0x432f('0x15')](function(_0x5bae29){logger[_0x432f('0x11')](_0x432f('0xd'),_0x2f66fd,_0x5bae29);_0x2a2ef6(_0x5bae29);});});}exports[_0x432f('0x16')]=function(_0x243cf){var _0x3cd5da=this;return new Promise(function(_0x129582,_0x5ae24e){return db[_0x432f('0x17')]['update'](_0x243cf[_0x432f('0x18')],{'raw':_0x243cf[_0x432f('0x19')]?_0x243cf[_0x432f('0x19')][_0x432f('0x1a')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x243cf[_0x432f('0x19')]?_0x243cf[_0x432f('0x19')][_0x432f('0x1b')]||null:null,'attributes':_0x243cf[_0x432f('0x19')]?_0x243cf[_0x432f('0x19')][_0x432f('0x1c')]||null:null,'limit':_0x243cf[_0x432f('0x19')]?_0x243cf[_0x432f('0x19')]['limit']||null:null})['then'](function(_0x343d13){logger['info'](_0x432f('0x16'),_0x243cf);logger['debug'](_0x432f('0x16'),_0x243cf,JSON[_0x432f('0x10')](_0x343d13));_0x129582(_0x343d13);})[_0x432f('0x15')](function(_0x89ea50){logger[_0x432f('0x11')](_0x432f('0x16'),_0x89ea50['message'],_0x243cf);_0x5ae24e(_0x3cd5da[_0x432f('0x11')](0x1f4,_0x89ea50[_0x432f('0x13')]));});});};exports['CreateVoiceRecording']=function(_0x2cbde9){var _0x3e37ec=this;return new Promise(function(_0x2bcbb4,_0x23347e){var _0x44839=require(_0x432f('0x1d'));var _0x138a6a;return db['Setting'][_0x432f('0x1e')]({'attributes':['id','callRecordingEncryption'],'where':{'id':0x1},'raw':!![]})[_0x432f('0xb')](function(_0x573cc5){_0x138a6a=_0x573cc5;return db[_0x432f('0x17')]['create'](_0x2cbde9[_0x432f('0x18')]);})['then'](function(_0x325a9c){if(_0x138a6a[_0x432f('0x1f')]&&fs[_0x432f('0x20')](_0x325a9c['value'])){var _0x6a116e=util[_0x432f('0x21')]('%s.cypher',_0x325a9c['value']);return _0x44839[_0x432f('0x22')](_0x325a9c[_0x432f('0x23')],_0x6a116e,config[_0x432f('0x24')][_0x432f('0x25')])[_0x432f('0xb')](function(){fs[_0x432f('0x26')](_0x325a9c['value']);logger['info'](_0x432f('0x27'));return _0x325a9c;});}return _0x325a9c;})[_0x432f('0xb')](function(_0x184203){logger['info'](_0x432f('0x28'),_0x2cbde9);logger[_0x432f('0x29')](_0x432f('0x28'),_0x2cbde9,JSON[_0x432f('0x10')](_0x184203));_0x2bcbb4(_0x184203);})[_0x432f('0x15')](function(_0x3ad632){logger[_0x432f('0x11')](_0x432f('0x28'),_0x3ad632['message'],_0x2cbde9);_0x23347e(_0x3e37ec['error'](0x1f4,_0x3ad632[_0x432f('0x13')]));});});};
\ No newline at end of file
+var _0xb016=['options','raw','attributes','limit','debug','CreateVoiceRecording','../../components/encryptor','Setting','findOne','callRecordingEncryption','create','value','format','encryptFile','secrets','recording','unlink','lodash','util','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','then','info','VoiceRecording,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','UpdateVoiceRecording','VoiceRecording','update','body'];(function(_0x599f41,_0x4db732){var _0x2e4d58=function(_0x14c882){while(--_0x14c882){_0x599f41['push'](_0x599f41['shift']());}};_0x2e4d58(++_0x4db732);}(_0xb016,0x159));var _0x6b01=function(_0x57c347,_0x227a57){_0x57c347=_0x57c347-0x0;var _0x20a8b8=_0xb016[_0x57c347];return _0x20a8b8;};'use strict';var _=require(_0x6b01('0x0'));var util=require(_0x6b01('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0x6b01('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x6b01('0x3'))['db'];var utils=require(_0x6b01('0x4'));var logger=require(_0x6b01('0x5'))(_0x6b01('0x6'));var config=require('../../config/environment');var jayson=require(_0x6b01('0x7'));var client=jayson[_0x6b01('0x8')][_0x6b01('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x5759a1,_0x5c5bfb,_0x374aab){return new BPromise(function(_0x39f9fa,_0x526a7d){return client['request'](_0x5759a1,_0x374aab)[_0x6b01('0xa')](function(_0x1cb3a6){logger[_0x6b01('0xb')](_0x6b01('0xc'),_0x5c5bfb,_0x6b01('0xd'));logger['debug']('VoiceRecording,\x20%s,\x20%s,\x20%s',_0x5c5bfb,_0x6b01('0xd'),JSON[_0x6b01('0xe')](_0x1cb3a6));if(_0x1cb3a6[_0x6b01('0xf')]){if(_0x1cb3a6['error'][_0x6b01('0x10')]===0x1f4){logger['error']('VoiceRecording,\x20%s,\x20%s',_0x5c5bfb,_0x1cb3a6[_0x6b01('0xf')]['message']);return _0x526a7d(_0x1cb3a6[_0x6b01('0xf')][_0x6b01('0x11')]);}logger['error'](_0x6b01('0xc'),_0x5c5bfb,_0x1cb3a6['error']['message']);return _0x39f9fa(_0x1cb3a6['error'][_0x6b01('0x11')]);}else{logger['info']('VoiceRecording,\x20%s,\x20%s',_0x5c5bfb,_0x6b01('0xd'));_0x39f9fa(_0x1cb3a6[_0x6b01('0x12')][_0x6b01('0x11')]);}})[_0x6b01('0x13')](function(_0x3d7045){logger[_0x6b01('0xf')](_0x6b01('0xc'),_0x5c5bfb,_0x3d7045);_0x526a7d(_0x3d7045);});});}exports[_0x6b01('0x14')]=function(_0x9c6571){var _0xc4e1b1=this;return new Promise(function(_0x18f336,_0x4f2d08){return db[_0x6b01('0x15')][_0x6b01('0x16')](_0x9c6571[_0x6b01('0x17')],{'raw':_0x9c6571[_0x6b01('0x18')]?_0x9c6571[_0x6b01('0x18')][_0x6b01('0x19')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x9c6571[_0x6b01('0x18')]?_0x9c6571[_0x6b01('0x18')]['where']||null:null,'attributes':_0x9c6571[_0x6b01('0x18')]?_0x9c6571[_0x6b01('0x18')][_0x6b01('0x1a')]||null:null,'limit':_0x9c6571[_0x6b01('0x18')]?_0x9c6571[_0x6b01('0x18')][_0x6b01('0x1b')]||null:null})[_0x6b01('0xa')](function(_0x542fab){logger[_0x6b01('0xb')](_0x6b01('0x14'),_0x9c6571);logger[_0x6b01('0x1c')]('UpdateVoiceRecording',_0x9c6571,JSON[_0x6b01('0xe')](_0x542fab));_0x18f336(_0x542fab);})[_0x6b01('0x13')](function(_0x304393){logger[_0x6b01('0xf')](_0x6b01('0x14'),_0x304393[_0x6b01('0x11')],_0x9c6571);_0x4f2d08(_0xc4e1b1[_0x6b01('0xf')](0x1f4,_0x304393[_0x6b01('0x11')]));});});};exports[_0x6b01('0x1d')]=function(_0x152dda){var _0x3c0607=this;return new Promise(function(_0xa846d8,_0x154dfc){var _0x55ca4b=require(_0x6b01('0x1e'));var _0x220efb;return db[_0x6b01('0x1f')][_0x6b01('0x20')]({'attributes':['id',_0x6b01('0x21')],'where':{'id':0x1},'raw':!![]})['then'](function(_0x54f030){_0x220efb=_0x54f030;return db[_0x6b01('0x15')][_0x6b01('0x22')](_0x152dda[_0x6b01('0x17')]);})[_0x6b01('0xa')](function(_0x2a894e){if(_0x220efb[_0x6b01('0x21')]&&fs['existsSync'](_0x2a894e[_0x6b01('0x23')])){var _0x5482a8=util[_0x6b01('0x24')]('%s.cypher',_0x2a894e[_0x6b01('0x23')]);return _0x55ca4b[_0x6b01('0x25')](_0x2a894e[_0x6b01('0x23')],_0x5482a8,config[_0x6b01('0x26')][_0x6b01('0x27')])['then'](function(){fs[_0x6b01('0x28')](_0x2a894e[_0x6b01('0x23')]);logger[_0x6b01('0xb')]('CreateVoiceRecording\x20file\x20encrypted');return _0x2a894e;});}return _0x2a894e;})['then'](function(_0x3578ef){logger['info'](_0x6b01('0x1d'),_0x152dda);logger[_0x6b01('0x1c')](_0x6b01('0x1d'),_0x152dda,JSON['stringify'](_0x3578ef));_0xa846d8(_0x3578ef);})[_0x6b01('0x13')](function(_0x42d5f7){logger[_0x6b01('0xf')]('CreateVoiceRecording',_0x42d5f7[_0x6b01('0x11')],_0x152dda);_0x154dfc(_0x3c0607[_0x6b01('0xf')](0x1f4,_0x42d5f7[_0x6b01('0x11')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x783e=['index','isAuthenticated','describe','/:id','show','post','create','put','update','delete','destroy','exports','multer','util','path','connect-timeout','express','../../components/auth/service','../../components/interaction/service','./voiceTransferReport.controller','get'];(function(_0x2656a4,_0x28dd1b){var _0x48ce85=function(_0x41d957){while(--_0x41d957){_0x2656a4['push'](_0x2656a4['shift']());}};_0x48ce85(++_0x28dd1b);}(_0x783e,0x108));var _0xe783=function(_0x1f4561,_0x466c03){_0x1f4561=_0x1f4561-0x0;var _0xc26a99=_0x783e[_0x1f4561];return _0xc26a99;};'use strict';var multer=require(_0xe783('0x0'));var util=require(_0xe783('0x1'));var path=require(_0xe783('0x2'));var timeout=require(_0xe783('0x3'));var express=require(_0xe783('0x4'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0xe783('0x5'));var interaction=require(_0xe783('0x6'));var config=require('../../config/environment');var controller=require(_0xe783('0x7'));router[_0xe783('0x8')]('/',auth['isAuthenticated'](),controller[_0xe783('0x9')]);router[_0xe783('0x8')]('/describe',auth[_0xe783('0xa')](),controller[_0xe783('0xb')]);router[_0xe783('0x8')](_0xe783('0xc'),auth[_0xe783('0xa')](),controller[_0xe783('0xd')]);router[_0xe783('0xe')]('/',auth[_0xe783('0xa')](),controller[_0xe783('0xf')]);router[_0xe783('0x10')](_0xe783('0xc'),auth['isAuthenticated'](),controller[_0xe783('0x11')]);router[_0xe783('0x12')](_0xe783('0xc'),auth['isAuthenticated'](),controller[_0xe783('0x13')]);module[_0xe783('0x14')]=router;
\ No newline at end of file
+var _0x889b=['destroy','multer','util','path','connect-timeout','express','../../components/auth/service','../../components/interaction/service','./voiceTransferReport.controller','get','index','/describe','isAuthenticated','/:id','show','post','create','put','update','delete'];(function(_0x46efd7,_0x43f84d){var _0x5637e4=function(_0x54e078){while(--_0x54e078){_0x46efd7['push'](_0x46efd7['shift']());}};_0x5637e4(++_0x43f84d);}(_0x889b,0xb5));var _0xb889=function(_0x2aaeac,_0x30bda5){_0x2aaeac=_0x2aaeac-0x0;var _0x757741=_0x889b[_0x2aaeac];return _0x757741;};'use strict';var multer=require(_0xb889('0x0'));var util=require(_0xb889('0x1'));var path=require(_0xb889('0x2'));var timeout=require(_0xb889('0x3'));var express=require(_0xb889('0x4'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0xb889('0x5'));var interaction=require(_0xb889('0x6'));var config=require('../../config/environment');var controller=require(_0xb889('0x7'));router[_0xb889('0x8')]('/',auth['isAuthenticated'](),controller[_0xb889('0x9')]);router[_0xb889('0x8')](_0xb889('0xa'),auth[_0xb889('0xb')](),controller['describe']);router[_0xb889('0x8')](_0xb889('0xc'),auth['isAuthenticated'](),controller[_0xb889('0xd')]);router[_0xb889('0xe')]('/',auth[_0xb889('0xb')](),controller[_0xb889('0xf')]);router[_0xb889('0x10')](_0xb889('0xc'),auth[_0xb889('0xb')](),controller[_0xb889('0x11')]);router[_0xb889('0x12')](_0xb889('0xc'),auth[_0xb889('0xb')](),controller[_0xb889('0x13')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9a7a=['attended','STRING','ENUM','Yes','sequelize','moment','exports'];(function(_0x2263cd,_0xcaf23e){var _0xd28464=function(_0x536b3c){while(--_0x536b3c){_0x2263cd['push'](_0x2263cd['shift']());}};_0xd28464(++_0xcaf23e);}(_0x9a7a,0x1c4));var _0xa9a7=function(_0x421196,_0x1cbd94){_0x421196=_0x421196-0x0;var _0x2738af=_0x9a7a[_0x421196];return _0x2738af;};'use strict';var Sequelize=require(_0xa9a7('0x0'));var moment=require(_0xa9a7('0x1'));module[_0xa9a7('0x2')]={'type':{'type':Sequelize['ENUM']('blind',_0xa9a7('0x3'))},'result':{'type':Sequelize[_0xa9a7('0x4')]},'transfererchannel':{'type':Sequelize[_0xa9a7('0x4')]},'transferercalleridnum':{'type':Sequelize[_0xa9a7('0x4')]},'transferercalleridname':{'type':Sequelize[_0xa9a7('0x4')]},'transfererconnectedlinenum':{'type':Sequelize[_0xa9a7('0x4')]},'transfererconnectedlinename':{'type':Sequelize['STRING']},'transfereraccountcode':{'type':Sequelize[_0xa9a7('0x4')]},'transferercontext':{'type':Sequelize['STRING']},'transfererexten':{'type':Sequelize['STRING']},'transfererlinkedid':{'type':Sequelize[_0xa9a7('0x4')]},'transfereechannel':{'type':Sequelize[_0xa9a7('0x4')]},'transfereecalleridnum':{'type':Sequelize[_0xa9a7('0x4')]},'transfereecalleridname':{'type':Sequelize[_0xa9a7('0x4')]},'transfereeconnectedlinenum':{'type':Sequelize[_0xa9a7('0x4')]},'transfereeconnectedlinename':{'type':Sequelize['STRING']},'transfereeaccountcode':{'type':Sequelize['STRING']},'transfereecontext':{'type':Sequelize['STRING']},'transfereeexten':{'type':Sequelize[_0xa9a7('0x4')]},'transfereelinkedid':{'type':Sequelize[_0xa9a7('0x4')]},'isexternal':{'type':Sequelize[_0xa9a7('0x5')](_0xa9a7('0x6'),'No')},'context':{'type':Sequelize[_0xa9a7('0x4')]},'extension':{'type':Sequelize[_0xa9a7('0x4')]}};
\ No newline at end of file
+var _0x3e8a=['ENUM','blind','STRING','Yes','sequelize','moment','exports'];(function(_0x4dd4fe,_0x200d4a){var _0x20b374=function(_0x589039){while(--_0x589039){_0x4dd4fe['push'](_0x4dd4fe['shift']());}};_0x20b374(++_0x200d4a);}(_0x3e8a,0x9e));var _0xa3e8=function(_0x223a7c,_0x11ebdc){_0x223a7c=_0x223a7c-0x0;var _0x22e78a=_0x3e8a[_0x223a7c];return _0x22e78a;};'use strict';var Sequelize=require(_0xa3e8('0x0'));var moment=require(_0xa3e8('0x1'));module[_0xa3e8('0x2')]={'type':{'type':Sequelize[_0xa3e8('0x3')](_0xa3e8('0x4'),'attended')},'result':{'type':Sequelize[_0xa3e8('0x5')]},'transfererchannel':{'type':Sequelize['STRING']},'transferercalleridnum':{'type':Sequelize[_0xa3e8('0x5')]},'transferercalleridname':{'type':Sequelize[_0xa3e8('0x5')]},'transfererconnectedlinenum':{'type':Sequelize[_0xa3e8('0x5')]},'transfererconnectedlinename':{'type':Sequelize[_0xa3e8('0x5')]},'transfereraccountcode':{'type':Sequelize[_0xa3e8('0x5')]},'transferercontext':{'type':Sequelize[_0xa3e8('0x5')]},'transfererexten':{'type':Sequelize[_0xa3e8('0x5')]},'transfererlinkedid':{'type':Sequelize['STRING']},'transfereechannel':{'type':Sequelize[_0xa3e8('0x5')]},'transfereecalleridnum':{'type':Sequelize[_0xa3e8('0x5')]},'transfereecalleridname':{'type':Sequelize[_0xa3e8('0x5')]},'transfereeconnectedlinenum':{'type':Sequelize[_0xa3e8('0x5')]},'transfereeconnectedlinename':{'type':Sequelize[_0xa3e8('0x5')]},'transfereeaccountcode':{'type':Sequelize[_0xa3e8('0x5')]},'transfereecontext':{'type':Sequelize[_0xa3e8('0x5')]},'transfereeexten':{'type':Sequelize['STRING']},'transfereelinkedid':{'type':Sequelize[_0xa3e8('0x5')]},'isexternal':{'type':Sequelize[_0xa3e8('0x3')](_0xa3e8('0x6'),'No')},'context':{'type':Sequelize[_0xa3e8('0x5')]},'extension':{'type':Sequelize[_0xa3e8('0x5')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7d7f=['../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','json','apply','update','then','error','stack','name','send','index','map','VoiceTransferReport','rawAttributes','type','key','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','sort','filter','where','merge','VIRTUAL','includeAll','include','findAll','rows','catch','show','params','find','create','body','describe','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','fs-extra','lodash','squel','crypto','desk.js','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware'];(function(_0x549143,_0x560533){var _0x35ad54=function(_0x11eace){while(--_0x11eace){_0x549143['push'](_0x549143['shift']());}};_0x35ad54(++_0x560533);}(_0x7d7f,0x1e5));var _0xf7d7=function(_0x370672,_0x21ecda){_0x370672=_0x370672-0x0;var _0x180ba6=_0x7d7f[_0x370672];return _0x180ba6;};'use strict';var emlformat=require(_0xf7d7('0x0'));var rimraf=require(_0xf7d7('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xf7d7('0x2'));var rp=require(_0xf7d7('0x3'));var moment=require(_0xf7d7('0x4'));var BPromise=require(_0xf7d7('0x5'));var Mustache=require(_0xf7d7('0x6'));var util=require('util');var path=require(_0xf7d7('0x7'));var sox=require(_0xf7d7('0x8'));var csv=require(_0xf7d7('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xf7d7('0xa'));var _=require(_0xf7d7('0xb'));var squel=require(_0xf7d7('0xc'));var crypto=require(_0xf7d7('0xd'));var jsforce=require('jsforce');var deskjs=require(_0xf7d7('0xe'));var toCsv=require(_0xf7d7('0x9'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0xf7d7('0xf'));var authService=require('../../components/auth/service');var qs=require(_0xf7d7('0x10'));var as=require(_0xf7d7('0x11'));var hardwareService=require(_0xf7d7('0x12'));var logger=require(_0xf7d7('0x13'))(_0xf7d7('0x14'));var utils=require(_0xf7d7('0x15'));var config=require(_0xf7d7('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0xf7d7('0x17'))['db'];function respondWithStatusCode(_0x2eda40,_0x5f4309){_0x5f4309=_0x5f4309||0xcc;return function(_0x54dbfa){if(_0x54dbfa){return _0x2eda40[_0xf7d7('0x18')](_0x5f4309);}return _0x2eda40[_0xf7d7('0x19')](_0x5f4309)[_0xf7d7('0x1a')]();};}function respondWithResult(_0x2f4071,_0x33dec7){_0x33dec7=_0x33dec7||0xc8;return function(_0x1a751b){if(_0x1a751b){return _0x2f4071[_0xf7d7('0x19')](_0x33dec7)['json'](_0x1a751b);}};}function respondWithFilteredResult(_0x395501,_0xb02fab){return function(_0x4727b3){if(_0x4727b3){var _0xa72bed=typeof _0xb02fab[_0xf7d7('0x1b')]===_0xf7d7('0x1c')&&typeof _0xb02fab[_0xf7d7('0x1d')]==='undefined';var _0x1d79f6=_0x4727b3['count'];var _0x11cae8=_0xa72bed?0x0:_0xb02fab[_0xf7d7('0x1b')];var _0x18f886=_0xa72bed?_0x4727b3[_0xf7d7('0x1e')]:_0xb02fab[_0xf7d7('0x1b')]+_0xb02fab[_0xf7d7('0x1d')];var _0xf44d1b;if(_0x18f886>=_0x1d79f6){_0x18f886=_0x1d79f6;_0xf44d1b=0xc8;}else{_0xf44d1b=0xce;}_0x395501[_0xf7d7('0x19')](_0xf44d1b);return _0x395501[_0xf7d7('0x1f')](_0xf7d7('0x20'),_0x11cae8+'-'+_0x18f886+'/'+_0x1d79f6)[_0xf7d7('0x21')](_0x4727b3);}return null;};}function patchUpdates(_0x66d686){return function(_0x145cdb){try{jsonpatch[_0xf7d7('0x22')](_0x145cdb,_0x66d686,!![]);}catch(_0x5d9f77){return BPromise['reject'](_0x5d9f77);}return _0x145cdb['save']();};}function saveUpdates(_0xf676dc,_0x4d9d9c){return function(_0x391174){if(_0x391174){return _0x391174[_0xf7d7('0x23')](_0xf676dc)[_0xf7d7('0x24')](function(_0x23871d){return _0x23871d;});}return null;};}function removeEntity(_0x3f2dd1,_0x3f811a){return function(_0x540e98){if(_0x540e98){return _0x540e98['destroy']()[_0xf7d7('0x24')](function(){_0x3f2dd1['status'](0xcc)[_0xf7d7('0x1a')]();});}};}function handleEntityNotFound(_0x5e131e,_0x342690){return function(_0xe364f8){if(!_0xe364f8){_0x5e131e[_0xf7d7('0x18')](0x194);}return _0xe364f8;};}function handleError(_0x5bbe0c,_0x5bdc12){_0x5bdc12=_0x5bdc12||0x1f4;return function(_0x3e6eb3){logger[_0xf7d7('0x25')](_0x3e6eb3[_0xf7d7('0x26')]);if(_0x3e6eb3[_0xf7d7('0x27')]){delete _0x3e6eb3[_0xf7d7('0x27')];}_0x5bbe0c[_0xf7d7('0x19')](_0x5bdc12)[_0xf7d7('0x28')](_0x3e6eb3);};}exports[_0xf7d7('0x29')]=function(_0x57ec68,_0x4fdeea){var _0x4bad1c={},_0x25524f={},_0x363361={'count':0x0,'rows':[]};var _0xd20990=_[_0xf7d7('0x2a')](db[_0xf7d7('0x2b')][_0xf7d7('0x2c')],function(_0x423fa2){return{'name':_0x423fa2['fieldName'],'type':_0x423fa2[_0xf7d7('0x2d')][_0xf7d7('0x2e')]};});_0x25524f[_0xf7d7('0x2f')]=_[_0xf7d7('0x2a')](_0xd20990,_0xf7d7('0x27'));_0x25524f['query']=_[_0xf7d7('0x30')](_0x57ec68[_0xf7d7('0x31')]);_0x25524f[_0xf7d7('0x32')]=_[_0xf7d7('0x33')](_0x25524f[_0xf7d7('0x2f')],_0x25524f['query']);_0x4bad1c[_0xf7d7('0x34')]=_['intersection'](_0x25524f[_0xf7d7('0x2f')],qs['fields'](_0x57ec68['query'][_0xf7d7('0x35')]));_0x4bad1c[_0xf7d7('0x34')]=_0x4bad1c[_0xf7d7('0x34')][_0xf7d7('0x36')]?_0x4bad1c['attributes']:_0x25524f['model'];if(!_0x57ec68[_0xf7d7('0x31')][_0xf7d7('0x37')]('nolimit')){_0x4bad1c['limit']=qs['limit'](_0x57ec68[_0xf7d7('0x31')][_0xf7d7('0x1d')]);_0x4bad1c[_0xf7d7('0x1b')]=qs[_0xf7d7('0x1b')](_0x57ec68[_0xf7d7('0x31')][_0xf7d7('0x1b')]);}_0x4bad1c['order']=qs[_0xf7d7('0x38')](_0x57ec68[_0xf7d7('0x31')]['sort']);_0x4bad1c['where']=qs[_0xf7d7('0x32')](_['pick'](_0x57ec68[_0xf7d7('0x31')],_0x25524f[_0xf7d7('0x32')]),_0xd20990);if(_0x57ec68[_0xf7d7('0x31')][_0xf7d7('0x39')]){_0x4bad1c[_0xf7d7('0x3a')]=_[_0xf7d7('0x3b')](_0x4bad1c[_0xf7d7('0x3a')],{'$or':_[_0xf7d7('0x2a')](_0xd20990,function(_0x52dc3a){if(_0x52dc3a[_0xf7d7('0x2d')]!==_0xf7d7('0x3c')){var _0x2996b1={};_0x2996b1[_0x52dc3a[_0xf7d7('0x27')]]={'$like':'%'+_0x57ec68[_0xf7d7('0x31')]['filter']+'%'};return _0x2996b1;}})});}_0x4bad1c=_[_0xf7d7('0x3b')]({},_0x4bad1c,_0x57ec68['options']);var _0x767fcf={'where':_0x4bad1c['where']};return db['VoiceTransferReport'][_0xf7d7('0x1e')](_0x767fcf)[_0xf7d7('0x24')](function(_0x2e569c){_0x363361[_0xf7d7('0x1e')]=_0x2e569c;if(_0x57ec68[_0xf7d7('0x31')][_0xf7d7('0x3d')]){_0x4bad1c[_0xf7d7('0x3e')]=[{'all':!![]}];}return db['VoiceTransferReport'][_0xf7d7('0x3f')](_0x4bad1c);})[_0xf7d7('0x24')](function(_0x482324){_0x363361[_0xf7d7('0x40')]=_0x482324;return _0x363361;})[_0xf7d7('0x24')](respondWithFilteredResult(_0x4fdeea,_0x4bad1c))[_0xf7d7('0x41')](handleError(_0x4fdeea,null));};exports[_0xf7d7('0x42')]=function(_0x15282c,_0xa033f3){var _0x347f7e={'raw':!![],'where':{'id':_0x15282c[_0xf7d7('0x43')]['id']}},_0x46a474={};_0x46a474[_0xf7d7('0x2f')]=_[_0xf7d7('0x30')](db[_0xf7d7('0x2b')][_0xf7d7('0x2c')]);_0x46a474['query']=_[_0xf7d7('0x30')](_0x15282c['query']);_0x46a474[_0xf7d7('0x32')]=_[_0xf7d7('0x33')](_0x46a474[_0xf7d7('0x2f')],_0x46a474[_0xf7d7('0x31')]);_0x347f7e['attributes']=_[_0xf7d7('0x33')](_0x46a474[_0xf7d7('0x2f')],qs[_0xf7d7('0x35')](_0x15282c[_0xf7d7('0x31')]['fields']));_0x347f7e[_0xf7d7('0x34')]=_0x347f7e[_0xf7d7('0x34')][_0xf7d7('0x36')]?_0x347f7e[_0xf7d7('0x34')]:_0x46a474['model'];if(_0x15282c['query']['includeAll']){_0x347f7e['include']=[{'all':!![]}];}_0x347f7e=_[_0xf7d7('0x3b')]({},_0x347f7e,_0x15282c['options']);return db['VoiceTransferReport'][_0xf7d7('0x44')](_0x347f7e)[_0xf7d7('0x24')](handleEntityNotFound(_0xa033f3,null))[_0xf7d7('0x24')](respondWithResult(_0xa033f3,null))[_0xf7d7('0x41')](handleError(_0xa033f3,null));};exports[_0xf7d7('0x45')]=function(_0x121dae,_0x53fed8){return db['VoiceTransferReport'][_0xf7d7('0x45')](_0x121dae['body'],{})['then'](respondWithResult(_0x53fed8,0xc9))[_0xf7d7('0x41')](handleError(_0x53fed8,null));};exports[_0xf7d7('0x23')]=function(_0x277b9f,_0x78b4f3){if(_0x277b9f['body']['id']){delete _0x277b9f[_0xf7d7('0x46')]['id'];}return db[_0xf7d7('0x2b')][_0xf7d7('0x44')]({'where':{'id':_0x277b9f['params']['id']}})['then'](handleEntityNotFound(_0x78b4f3,null))[_0xf7d7('0x24')](saveUpdates(_0x277b9f[_0xf7d7('0x46')],null))[_0xf7d7('0x24')](respondWithResult(_0x78b4f3,null))[_0xf7d7('0x41')](handleError(_0x78b4f3,null));};exports['destroy']=function(_0xc93a0e,_0x8fe06d){return db[_0xf7d7('0x2b')][_0xf7d7('0x44')]({'where':{'id':_0xc93a0e[_0xf7d7('0x43')]['id']}})[_0xf7d7('0x24')](handleEntityNotFound(_0x8fe06d,null))[_0xf7d7('0x24')](removeEntity(_0x8fe06d,null))['catch'](handleError(_0x8fe06d,null));};exports[_0xf7d7('0x47')]=function(_0x5de4d7,_0x3ec102){return db[_0xf7d7('0x2b')]['describe']()[_0xf7d7('0x24')](respondWithResult(_0x3ec102,null))['catch'](handleError(_0x3ec102,null));};
\ No newline at end of file
+var _0x0ea6=['include','rows','catch','show','find','create','body','params','describe','eml-format','zip-dir','request-promise','moment','bluebird','mustache','util','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','sendStatus','end','status','json','undefined','offset','count','limit','set','Content-Range','reject','save','update','then','destroy','stack','name','send','map','fieldName','key','model','query','intersection','fields','attributes','length','hasOwnProperty','order','sort','filters','pick','where','type','VIRTUAL','filter','merge','options','VoiceTransferReport','includeAll'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x0ea6,0x131));var _0x60ea=function(_0x468b0f,_0x408566){_0x468b0f=_0x468b0f-0x0;var _0x3e74d9=_0x0ea6[_0x468b0f];return _0x3e74d9;};'use strict';var emlformat=require(_0x60ea('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x60ea('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x60ea('0x2'));var moment=require(_0x60ea('0x3'));var BPromise=require(_0x60ea('0x4'));var Mustache=require(_0x60ea('0x5'));var util=require(_0x60ea('0x6'));var path=require('path');var sox=require(_0x60ea('0x7'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x60ea('0x8'));var _=require(_0x60ea('0x9'));var squel=require(_0x60ea('0xa'));var crypto=require(_0x60ea('0xb'));var jsforce=require(_0x60ea('0xc'));var deskjs=require(_0x60ea('0xd'));var toCsv=require('to-csv');var querystring=require(_0x60ea('0xe'));var Papa=require(_0x60ea('0xf'));var Redis=require(_0x60ea('0x10'));var authService=require(_0x60ea('0x11'));var qs=require(_0x60ea('0x12'));var as=require(_0x60ea('0x13'));var hardwareService=require(_0x60ea('0x14'));var logger=require(_0x60ea('0x15'))('api');var utils=require(_0x60ea('0x16'));var config=require(_0x60ea('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0x60ea('0x18'))['db'];function respondWithStatusCode(_0x505a5f,_0x4f4268){_0x4f4268=_0x4f4268||0xcc;return function(_0x1cc65a){if(_0x1cc65a){return _0x505a5f[_0x60ea('0x19')](_0x4f4268);}return _0x505a5f['status'](_0x4f4268)[_0x60ea('0x1a')]();};}function respondWithResult(_0x5db539,_0x30cdc0){_0x30cdc0=_0x30cdc0||0xc8;return function(_0xed1882){if(_0xed1882){return _0x5db539[_0x60ea('0x1b')](_0x30cdc0)[_0x60ea('0x1c')](_0xed1882);}};}function respondWithFilteredResult(_0x1896c8,_0x5100fd){return function(_0x715f61){if(_0x715f61){var _0x33a9d1=typeof _0x5100fd['offset']===_0x60ea('0x1d')&&typeof _0x5100fd['limit']==='undefined';var _0x21f0ba=_0x715f61['count'];var _0x701a45=_0x33a9d1?0x0:_0x5100fd[_0x60ea('0x1e')];var _0x38a9a4=_0x33a9d1?_0x715f61[_0x60ea('0x1f')]:_0x5100fd[_0x60ea('0x1e')]+_0x5100fd[_0x60ea('0x20')];var _0x41b54d;if(_0x38a9a4>=_0x21f0ba){_0x38a9a4=_0x21f0ba;_0x41b54d=0xc8;}else{_0x41b54d=0xce;}_0x1896c8[_0x60ea('0x1b')](_0x41b54d);return _0x1896c8[_0x60ea('0x21')](_0x60ea('0x22'),_0x701a45+'-'+_0x38a9a4+'/'+_0x21f0ba)[_0x60ea('0x1c')](_0x715f61);}return null;};}function patchUpdates(_0x44c5b0){return function(_0x523c76){try{jsonpatch['apply'](_0x523c76,_0x44c5b0,!![]);}catch(_0x274b3f){return BPromise[_0x60ea('0x23')](_0x274b3f);}return _0x523c76[_0x60ea('0x24')]();};}function saveUpdates(_0x294b83,_0x3aefa8){return function(_0x38aee0){if(_0x38aee0){return _0x38aee0[_0x60ea('0x25')](_0x294b83)[_0x60ea('0x26')](function(_0x5cc170){return _0x5cc170;});}return null;};}function removeEntity(_0x2a9758,_0x3831a2){return function(_0x2e175f){if(_0x2e175f){return _0x2e175f[_0x60ea('0x27')]()['then'](function(){_0x2a9758[_0x60ea('0x1b')](0xcc)[_0x60ea('0x1a')]();});}};}function handleEntityNotFound(_0x408037,_0x518407){return function(_0x562fc8){if(!_0x562fc8){_0x408037[_0x60ea('0x19')](0x194);}return _0x562fc8;};}function handleError(_0x2763f2,_0x22bcd3){_0x22bcd3=_0x22bcd3||0x1f4;return function(_0x5174a1){logger['error'](_0x5174a1[_0x60ea('0x28')]);if(_0x5174a1['name']){delete _0x5174a1[_0x60ea('0x29')];}_0x2763f2[_0x60ea('0x1b')](_0x22bcd3)[_0x60ea('0x2a')](_0x5174a1);};}exports['index']=function(_0x3080ca,_0x5cfbf3){var _0x4a80ce={},_0x6102c={},_0x57a00c={'count':0x0,'rows':[]};var _0x24862d=_[_0x60ea('0x2b')](db['VoiceTransferReport']['rawAttributes'],function(_0x4f9552){return{'name':_0x4f9552[_0x60ea('0x2c')],'type':_0x4f9552['type'][_0x60ea('0x2d')]};});_0x6102c[_0x60ea('0x2e')]=_[_0x60ea('0x2b')](_0x24862d,'name');_0x6102c['query']=_['keys'](_0x3080ca[_0x60ea('0x2f')]);_0x6102c['filters']=_[_0x60ea('0x30')](_0x6102c['model'],_0x6102c[_0x60ea('0x2f')]);_0x4a80ce['attributes']=_[_0x60ea('0x30')](_0x6102c[_0x60ea('0x2e')],qs[_0x60ea('0x31')](_0x3080ca[_0x60ea('0x2f')]['fields']));_0x4a80ce[_0x60ea('0x32')]=_0x4a80ce[_0x60ea('0x32')][_0x60ea('0x33')]?_0x4a80ce[_0x60ea('0x32')]:_0x6102c['model'];if(!_0x3080ca[_0x60ea('0x2f')][_0x60ea('0x34')]('nolimit')){_0x4a80ce[_0x60ea('0x20')]=qs[_0x60ea('0x20')](_0x3080ca[_0x60ea('0x2f')][_0x60ea('0x20')]);_0x4a80ce['offset']=qs[_0x60ea('0x1e')](_0x3080ca[_0x60ea('0x2f')][_0x60ea('0x1e')]);}_0x4a80ce[_0x60ea('0x35')]=qs['sort'](_0x3080ca[_0x60ea('0x2f')][_0x60ea('0x36')]);_0x4a80ce['where']=qs[_0x60ea('0x37')](_[_0x60ea('0x38')](_0x3080ca[_0x60ea('0x2f')],_0x6102c[_0x60ea('0x37')]),_0x24862d);if(_0x3080ca[_0x60ea('0x2f')]['filter']){_0x4a80ce[_0x60ea('0x39')]=_['merge'](_0x4a80ce['where'],{'$or':_[_0x60ea('0x2b')](_0x24862d,function(_0x1fc49a){if(_0x1fc49a[_0x60ea('0x3a')]!==_0x60ea('0x3b')){var _0x46b152={};_0x46b152[_0x1fc49a[_0x60ea('0x29')]]={'$like':'%'+_0x3080ca[_0x60ea('0x2f')][_0x60ea('0x3c')]+'%'};return _0x46b152;}})});}_0x4a80ce=_[_0x60ea('0x3d')]({},_0x4a80ce,_0x3080ca[_0x60ea('0x3e')]);var _0x3f9b7f={'where':_0x4a80ce[_0x60ea('0x39')]};return db[_0x60ea('0x3f')][_0x60ea('0x1f')](_0x3f9b7f)['then'](function(_0x38f6c8){_0x57a00c['count']=_0x38f6c8;if(_0x3080ca[_0x60ea('0x2f')][_0x60ea('0x40')]){_0x4a80ce[_0x60ea('0x41')]=[{'all':!![]}];}return db['VoiceTransferReport']['findAll'](_0x4a80ce);})['then'](function(_0x5ac89e){_0x57a00c[_0x60ea('0x42')]=_0x5ac89e;return _0x57a00c;})[_0x60ea('0x26')](respondWithFilteredResult(_0x5cfbf3,_0x4a80ce))[_0x60ea('0x43')](handleError(_0x5cfbf3,null));};exports[_0x60ea('0x44')]=function(_0x1740c2,_0x121f0d){var _0x976567={'raw':!![],'where':{'id':_0x1740c2['params']['id']}},_0xd74504={};_0xd74504[_0x60ea('0x2e')]=_['keys'](db['VoiceTransferReport']['rawAttributes']);_0xd74504['query']=_['keys'](_0x1740c2[_0x60ea('0x2f')]);_0xd74504[_0x60ea('0x37')]=_[_0x60ea('0x30')](_0xd74504[_0x60ea('0x2e')],_0xd74504[_0x60ea('0x2f')]);_0x976567[_0x60ea('0x32')]=_[_0x60ea('0x30')](_0xd74504[_0x60ea('0x2e')],qs[_0x60ea('0x31')](_0x1740c2['query'][_0x60ea('0x31')]));_0x976567[_0x60ea('0x32')]=_0x976567[_0x60ea('0x32')]['length']?_0x976567[_0x60ea('0x32')]:_0xd74504[_0x60ea('0x2e')];if(_0x1740c2[_0x60ea('0x2f')][_0x60ea('0x40')]){_0x976567[_0x60ea('0x41')]=[{'all':!![]}];}_0x976567=_[_0x60ea('0x3d')]({},_0x976567,_0x1740c2[_0x60ea('0x3e')]);return db['VoiceTransferReport'][_0x60ea('0x45')](_0x976567)[_0x60ea('0x26')](handleEntityNotFound(_0x121f0d,null))[_0x60ea('0x26')](respondWithResult(_0x121f0d,null))[_0x60ea('0x43')](handleError(_0x121f0d,null));};exports[_0x60ea('0x46')]=function(_0x4ccb66,_0x2c53f3){return db[_0x60ea('0x3f')]['create'](_0x4ccb66[_0x60ea('0x47')],{})[_0x60ea('0x26')](respondWithResult(_0x2c53f3,0xc9))[_0x60ea('0x43')](handleError(_0x2c53f3,null));};exports[_0x60ea('0x25')]=function(_0x3b2281,_0x437186){if(_0x3b2281[_0x60ea('0x47')]['id']){delete _0x3b2281[_0x60ea('0x47')]['id'];}return db[_0x60ea('0x3f')]['find']({'where':{'id':_0x3b2281[_0x60ea('0x48')]['id']}})[_0x60ea('0x26')](handleEntityNotFound(_0x437186,null))['then'](saveUpdates(_0x3b2281[_0x60ea('0x47')],null))[_0x60ea('0x26')](respondWithResult(_0x437186,null))[_0x60ea('0x43')](handleError(_0x437186,null));};exports[_0x60ea('0x27')]=function(_0xcea27d,_0x4443ce){return db[_0x60ea('0x3f')]['find']({'where':{'id':_0xcea27d[_0x60ea('0x48')]['id']}})['then'](handleEntityNotFound(_0x4443ce,null))[_0x60ea('0x26')](removeEntity(_0x4443ce,null))['catch'](handleError(_0x4443ce,null));};exports[_0x60ea('0x49')]=function(_0x387dd4,_0x3e114){return db[_0x60ea('0x3f')][_0x60ea('0x49')]()[_0x60ea('0x26')](respondWithResult(_0x3e114,null))[_0x60ea('0x43')](handleError(_0x3e114,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdf21=['./voiceTransferReport.attributes','exports','define','VoiceTransferReport','report_call_transfer','lodash','../../config/logger','api','moment','bluebird','request-promise','rimraf','../../config/environment'];(function(_0x9c0b2a,_0x2a31bc){var _0x3fafed=function(_0x413435){while(--_0x413435){_0x9c0b2a['push'](_0x9c0b2a['shift']());}};_0x3fafed(++_0x2a31bc);}(_0xdf21,0xc8));var _0x1df2=function(_0x5e299f,_0x2ec369){_0x5e299f=_0x5e299f-0x0;var _0x5144f9=_0xdf21[_0x5e299f];return _0x5144f9;};'use strict';var _=require(_0x1df2('0x0'));var util=require('util');var logger=require(_0x1df2('0x1'))(_0x1df2('0x2'));var moment=require(_0x1df2('0x3'));var BPromise=require(_0x1df2('0x4'));var rp=require(_0x1df2('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0x1df2('0x6'));var config=require(_0x1df2('0x7'));var attributes=require(_0x1df2('0x8'));module[_0x1df2('0x9')]=function(_0x1b0992,_0x1b33c9){return _0x1b0992[_0x1df2('0xa')](_0x1df2('0xb'),attributes,{'tableName':_0x1df2('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x506a=['../../config/environment','./voiceTransferReport.attributes','exports','define','VoiceTransferReport','report_call_transfer','lodash','util','../../config/logger','moment','bluebird','path','rimraf'];(function(_0x26b1df,_0x44aaf6){var _0x129370=function(_0x2376a2){while(--_0x2376a2){_0x26b1df['push'](_0x26b1df['shift']());}};_0x129370(++_0x44aaf6);}(_0x506a,0x6e));var _0xa506=function(_0x66ce59,_0x26f80a){_0x66ce59=_0x66ce59-0x0;var _0x3a1482=_0x506a[_0x66ce59];return _0x3a1482;};'use strict';var _=require(_0xa506('0x0'));var util=require(_0xa506('0x1'));var logger=require(_0xa506('0x2'))('api');var moment=require(_0xa506('0x3'));var BPromise=require(_0xa506('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xa506('0x5'));var rimraf=require(_0xa506('0x6'));var config=require(_0xa506('0x7'));var attributes=require(_0xa506('0x8'));module[_0xa506('0x9')]=function(_0x639eaf,_0x3a2a89){return _0x639eaf[_0xa506('0xa')](_0xa506('0xb'),attributes,{'tableName':_0xa506('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3658=['jayson/promise','client','http','then','info','VoiceTransferReport,\x20%s,\x20%s','request\x20sent','debug','error','code','message','result','catch','CreateVoiceTransferReport','create','body','options','raw','stringify','util','moment','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment'];(function(_0x52fac6,_0x3e4693){var _0x2a301b=function(_0x200ab0){while(--_0x200ab0){_0x52fac6['push'](_0x52fac6['shift']());}};_0x2a301b(++_0x3e4693);}(_0x3658,0xb5));var _0x8365=function(_0xab5b3,_0x5c6654){_0xab5b3=_0xab5b3-0x0;var _0x2c2f9e=_0x3658[_0xab5b3];return _0x2c2f9e;};'use strict';var _=require('lodash');var util=require(_0x8365('0x0'));var moment=require(_0x8365('0x1'));var BPromise=require('bluebird');var rs=require(_0x8365('0x2'));var fs=require('fs');var Redis=require(_0x8365('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0x8365('0x4'));var logger=require(_0x8365('0x5'))(_0x8365('0x6'));var config=require(_0x8365('0x7'));var jayson=require(_0x8365('0x8'));var client=jayson[_0x8365('0x9')][_0x8365('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x3e9518,_0x27b75e,_0x4744d5){return new BPromise(function(_0x154d91,_0x4d3a48){return client['request'](_0x3e9518,_0x4744d5)[_0x8365('0xb')](function(_0x381a13){logger[_0x8365('0xc')](_0x8365('0xd'),_0x27b75e,_0x8365('0xe'));logger[_0x8365('0xf')]('VoiceTransferReport,\x20%s,\x20%s,\x20%s',_0x27b75e,_0x8365('0xe'),JSON['stringify'](_0x381a13));if(_0x381a13[_0x8365('0x10')]){if(_0x381a13[_0x8365('0x10')][_0x8365('0x11')]===0x1f4){logger[_0x8365('0x10')](_0x8365('0xd'),_0x27b75e,_0x381a13[_0x8365('0x10')][_0x8365('0x12')]);return _0x4d3a48(_0x381a13[_0x8365('0x10')][_0x8365('0x12')]);}logger['error'](_0x8365('0xd'),_0x27b75e,_0x381a13[_0x8365('0x10')]['message']);return _0x154d91(_0x381a13[_0x8365('0x10')]['message']);}else{logger[_0x8365('0xc')]('VoiceTransferReport,\x20%s,\x20%s',_0x27b75e,_0x8365('0xe'));_0x154d91(_0x381a13[_0x8365('0x13')]['message']);}})[_0x8365('0x14')](function(_0x207dc7){logger[_0x8365('0x10')](_0x8365('0xd'),_0x27b75e,_0x207dc7);_0x4d3a48(_0x207dc7);});});}exports[_0x8365('0x15')]=function(_0x166a67){var _0x5d9f47=this;return new Promise(function(_0x44ee55,_0x29ee38){return db['VoiceTransferReport'][_0x8365('0x16')](_0x166a67[_0x8365('0x17')],{'raw':_0x166a67[_0x8365('0x18')]?_0x166a67[_0x8365('0x18')][_0x8365('0x19')]===undefined?!![]:![]:!![]})[_0x8365('0xb')](function(_0x4440a2){logger[_0x8365('0xc')](_0x8365('0x15'),_0x166a67);logger[_0x8365('0xf')]('CreateVoiceTransferReport',_0x166a67,JSON[_0x8365('0x1a')](_0x4440a2));_0x44ee55(_0x4440a2);})['catch'](function(_0x6a2b34){logger[_0x8365('0x10')](_0x8365('0x15'),_0x6a2b34[_0x8365('0x12')],_0x166a67);_0x29ee38(_0x5d9f47[_0x8365('0x10')](0x1f4,_0x6a2b34['message']));});});};
\ No newline at end of file
+var _0x23fe=['CreateVoiceTransferReport','VoiceTransferReport','create','body','options','lodash','util','bluebird','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','info','request\x20sent','debug','stringify','error','code','VoiceTransferReport,\x20%s,\x20%s','message','result','catch'];(function(_0x27e934,_0x5b5749){var _0x25ed5c=function(_0x339364){while(--_0x339364){_0x27e934['push'](_0x27e934['shift']());}};_0x25ed5c(++_0x5b5749);}(_0x23fe,0xa7));var _0xe23f=function(_0x16d10f,_0x2ba2d5){_0x16d10f=_0x16d10f-0x0;var _0x50c823=_0x23fe[_0x16d10f];return _0x50c823;};'use strict';var _=require(_0xe23f('0x0'));var util=require(_0xe23f('0x1'));var moment=require('moment');var BPromise=require(_0xe23f('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xe23f('0x3'));var db=require(_0xe23f('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0xe23f('0x5'))(_0xe23f('0x6'));var config=require(_0xe23f('0x7'));var jayson=require(_0xe23f('0x8'));var client=jayson[_0xe23f('0x9')][_0xe23f('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x22627d,_0x38eac9,_0x7bf940){return new BPromise(function(_0xa7bca9,_0x176871){return client[_0xe23f('0xb')](_0x22627d,_0x7bf940)['then'](function(_0x162c66){logger[_0xe23f('0xc')]('VoiceTransferReport,\x20%s,\x20%s',_0x38eac9,_0xe23f('0xd'));logger[_0xe23f('0xe')]('VoiceTransferReport,\x20%s,\x20%s,\x20%s',_0x38eac9,_0xe23f('0xd'),JSON[_0xe23f('0xf')](_0x162c66));if(_0x162c66[_0xe23f('0x10')]){if(_0x162c66[_0xe23f('0x10')][_0xe23f('0x11')]===0x1f4){logger[_0xe23f('0x10')](_0xe23f('0x12'),_0x38eac9,_0x162c66[_0xe23f('0x10')]['message']);return _0x176871(_0x162c66[_0xe23f('0x10')][_0xe23f('0x13')]);}logger[_0xe23f('0x10')](_0xe23f('0x12'),_0x38eac9,_0x162c66[_0xe23f('0x10')][_0xe23f('0x13')]);return _0xa7bca9(_0x162c66[_0xe23f('0x10')][_0xe23f('0x13')]);}else{logger[_0xe23f('0xc')](_0xe23f('0x12'),_0x38eac9,_0xe23f('0xd'));_0xa7bca9(_0x162c66[_0xe23f('0x14')][_0xe23f('0x13')]);}})[_0xe23f('0x15')](function(_0x481e53){logger['error'](_0xe23f('0x12'),_0x38eac9,_0x481e53);_0x176871(_0x481e53);});});}exports[_0xe23f('0x16')]=function(_0x4849bc){var _0x2452da=this;return new Promise(function(_0x7d9a0c,_0x49781c){return db[_0xe23f('0x17')][_0xe23f('0x18')](_0x4849bc[_0xe23f('0x19')],{'raw':_0x4849bc[_0xe23f('0x1a')]?_0x4849bc[_0xe23f('0x1a')]['raw']===undefined?!![]:![]:!![]})['then'](function(_0x1ce131){logger[_0xe23f('0xc')](_0xe23f('0x16'),_0x4849bc);logger[_0xe23f('0xe')](_0xe23f('0x16'),_0x4849bc,JSON[_0xe23f('0xf')](_0x1ce131));_0x7d9a0c(_0x1ce131);})[_0xe23f('0x15')](function(_0x550b10){logger[_0xe23f('0x10')](_0xe23f('0x16'),_0x550b10['message'],_0x4849bc);_0x49781c(_0x2452da['error'](0x1f4,_0x550b10[_0xe23f('0x13')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa216=['/originate','canUpdate','/hangup','/answer','isAuthenticated','answer','/hold','hold','/unhold','unhold','/calls','calls','transfer','express','../../components/auth/service','./webbar.controller','post'];(function(_0x14cd98,_0x25cced){var _0x3de1b9=function(_0xbabe3c){while(--_0xbabe3c){_0x14cd98['push'](_0x14cd98['shift']());}};_0x3de1b9(++_0x25cced);}(_0xa216,0xfb));var _0x6a21=function(_0x1cddc9,_0x44a903){_0x1cddc9=_0x1cddc9-0x0;var _0xd6d0cf=_0xa216[_0x1cddc9];return _0xd6d0cf;};'use strict';var express=require(_0x6a21('0x0'));var router=express['Router']();var auth=require(_0x6a21('0x1'));var controller=require(_0x6a21('0x2'));router[_0x6a21('0x3')](_0x6a21('0x4'),auth['isAuthenticated'](),auth[_0x6a21('0x5')](),controller['originate']);router[_0x6a21('0x3')](_0x6a21('0x6'),auth['isAuthenticated'](),auth[_0x6a21('0x5')](),controller['hangup']);router[_0x6a21('0x3')](_0x6a21('0x7'),auth[_0x6a21('0x8')](),auth['canUpdate'](),controller[_0x6a21('0x9')]);router['post'](_0x6a21('0xa'),auth[_0x6a21('0x8')](),auth[_0x6a21('0x5')](),controller[_0x6a21('0xb')]);router[_0x6a21('0x3')](_0x6a21('0xc'),auth[_0x6a21('0x8')](),auth[_0x6a21('0x5')](),controller[_0x6a21('0xd')]);router['post'](_0x6a21('0xe'),auth[_0x6a21('0x8')](),auth[_0x6a21('0x5')](),controller[_0x6a21('0xf')]);router[_0x6a21('0x3')]('/transfer',auth[_0x6a21('0x8')](),auth[_0x6a21('0x5')](),controller[_0x6a21('0x10')]);module['exports']=router;
\ No newline at end of file
+var _0x8aea=['unhold','/calls','calls','transfer','exports','express','Router','../../components/auth/service','/originate','isAuthenticated','originate','/hangup','hangup','post','/answer','canUpdate','answer','/hold','hold','/unhold'];(function(_0x400b2e,_0x5c6024){var _0x28792b=function(_0x15d5e2){while(--_0x15d5e2){_0x400b2e['push'](_0x400b2e['shift']());}};_0x28792b(++_0x5c6024);}(_0x8aea,0x69));var _0xa8ae=function(_0x397e5f,_0x454c8f){_0x397e5f=_0x397e5f-0x0;var _0x5302b8=_0x8aea[_0x397e5f];return _0x5302b8;};'use strict';var express=require(_0xa8ae('0x0'));var router=express[_0xa8ae('0x1')]();var auth=require(_0xa8ae('0x2'));var controller=require('./webbar.controller');router['post'](_0xa8ae('0x3'),auth[_0xa8ae('0x4')](),auth['canUpdate'](),controller[_0xa8ae('0x5')]);router['post'](_0xa8ae('0x6'),auth[_0xa8ae('0x4')](),auth['canUpdate'](),controller[_0xa8ae('0x7')]);router[_0xa8ae('0x8')](_0xa8ae('0x9'),auth[_0xa8ae('0x4')](),auth[_0xa8ae('0xa')](),controller[_0xa8ae('0xb')]);router['post'](_0xa8ae('0xc'),auth[_0xa8ae('0x4')](),auth[_0xa8ae('0xa')](),controller[_0xa8ae('0xd')]);router[_0xa8ae('0x8')](_0xa8ae('0xe'),auth[_0xa8ae('0x4')](),auth[_0xa8ae('0xa')](),controller[_0xa8ae('0xf')]);router[_0xa8ae('0x8')](_0xa8ae('0x10'),auth[_0xa8ae('0x4')](),auth[_0xa8ae('0xa')](),controller[_0xa8ae('0x11')]);router[_0xa8ae('0x8')]('/transfer',auth[_0xa8ae('0x4')](),auth[_0xa8ae('0xa')](),controller[_0xa8ae('0x12')]);module[_0xa8ae('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa588=['client','http','../../config/logger','ioredis','redis','defaults','localhost','socket.io-emitter','validate','userId\x20is\x20required','string','callNumber\x20is\x20required','number','sessionId\x20is\x20required','emit','handleError:','error','name','status','send','NotFound','request','then','code','message','result','catch','User','findOne','VoiceChannels','all','filter','rows','UserId','sessionId','length','sessionId\x20','\x20not\x20found!','originate','info','originate\x20fired:','body','json','userId','callNumber','callbackUrl','entityFound:','format','user:%s','webbar:originate','originate\x20executed!','hangup','hangup\x20fired:','webbar:hangup','answer','answer\x20fired:','webbar:answer','hold','hold\x20fired:','webbar:hold','hold\x20executed!','unhold\x20fired:','webbar:unhold','unhold\x20executed!','calls','calls\x20fired:','conference','transfer','transferNumber','webbar:transfer','transfer\x20executed!','lodash','../../mysqldb','../../config/environment','util','bluebird','jayson/promise'];(function(_0x325bc4,_0x4df462){var _0x330091=function(_0x22db60){while(--_0x22db60){_0x325bc4['push'](_0x325bc4['shift']());}};_0x330091(++_0x4df462);}(_0xa588,0xe1));var _0x8a58=function(_0x439f45,_0x542c73){_0x439f45=_0x439f45-0x0;var _0x6aa2e3=_0xa588[_0x439f45];return _0x6aa2e3;};'use strict';var path=require('path');var fs=require('fs');var _=require(_0x8a58('0x0'));var db=require(_0x8a58('0x1'))['db'];var config=require(_0x8a58('0x2'));var util=require(_0x8a58('0x3'));var BPromise=require(_0x8a58('0x4'));var jayson=require(_0x8a58('0x5'));var amiClient=jayson[_0x8a58('0x6')][_0x8a58('0x7')]({'port':0x232a});var logger=require(_0x8a58('0x8'))('webbarapi');var Redis=require(_0x8a58('0x9'));config[_0x8a58('0xa')]=_[_0x8a58('0xb')](config[_0x8a58('0xa')],{'host':_0x8a58('0xc'),'port':0x18eb});var io=require(_0x8a58('0xd'))(new Redis(config[_0x8a58('0xa')]));var Schema=require(_0x8a58('0xe'));var originateValidation=new Schema({'userId':{'type':'number','required':[!![],_0x8a58('0xf')]},'callNumber':{'type':_0x8a58('0x10'),'required':[!![],_0x8a58('0x11')]},'callerId':{'type':_0x8a58('0x10')},'callbackUrl':{'type':_0x8a58('0x10')}});var hangupValidation=new Schema({'userId':{'type':'number','required':[!![],_0x8a58('0xf')]},'sessionId':{'type':_0x8a58('0x10'),'required':![]}});var answerValidation=new Schema({'userId':{'type':_0x8a58('0x12'),'required':[!![],_0x8a58('0xf')]},'sessionId':{'type':'string','required':![]}});var transferValidation=new Schema({'userId':{'type':'number','required':[!![],_0x8a58('0xf')]},'sessionId':{'type':'string','required':[!![],_0x8a58('0x13')]},'transferNumber':{'type':_0x8a58('0x10'),'required':[!![],'transferNumber\x20is\x20required']}});var holdValidation=new Schema({'userId':{'type':_0x8a58('0x12'),'required':[!![],_0x8a58('0xf')]},'sessionId':{'type':'string','required':![]}});var unholdValidation=new Schema({'userId':{'type':_0x8a58('0x12'),'required':[!![],_0x8a58('0xf')]},'sessionId':{'type':'string','required':![]}});var callsValidation=new Schema({'userId':{'type':_0x8a58('0x12'),'required':[!![],_0x8a58('0xf')]}});var conferenceValidation=new Schema({'userId':{'type':_0x8a58('0x12'),'required':[!![],_0x8a58('0xf')]}});function emit(_0x26e3a8,_0xd967db,_0xddfaae){logger['info'](_0x26e3a8,_0xd967db,JSON['stringify'](_0xddfaae));io['to'](_0x26e3a8)[_0x8a58('0x14')](_0xd967db,_0xddfaae);}function handleError(_0x107e0a){return function(_0x18a14d){console['log'](_0x8a58('0x15'),_0x18a14d,_0x18a14d instanceof RangeError);logger[_0x8a58('0x16')](_0x18a14d['stack']);if(_0x18a14d instanceof RangeError){if(_0x18a14d[_0x8a58('0x17')]){delete _0x18a14d[_0x8a58('0x17')];}_0x107e0a[_0x8a58('0x18')](0x194)[_0x8a58('0x19')](_0x18a14d);}else{if(_0x18a14d[_0x8a58('0x17')]){delete _0x18a14d[_0x8a58('0x17')];}_0x107e0a[_0x8a58('0x18')](0x1f4)[_0x8a58('0x19')](_0x18a14d);}};}function checkError(){return function(_0x92951){if(!_0x92951){throw new RangeError(_0x8a58('0x1a'));}return _0x92951;};}function respondWithRpcPromise(_0xb20cfe,_0x844b58){return new BPromise(function(_0x3758fa,_0x34adb8){var _0x561a9a=amiClient;return _0x561a9a[_0x8a58('0x1b')](_0xb20cfe,_0x844b58)[_0x8a58('0x1c')](function(_0x20a6c5){if(_0x20a6c5[_0x8a58('0x16')]){if(_0x20a6c5[_0x8a58('0x16')][_0x8a58('0x1d')]===0x1f4){return _0x34adb8(_0x20a6c5[_0x8a58('0x16')]['message']);}return _0x3758fa(_0x20a6c5[_0x8a58('0x16')][_0x8a58('0x1e')]);}else{_0x3758fa(_0x20a6c5[_0x8a58('0x1f')]);}})[_0x8a58('0x20')](function(_0x4fb0fb){_0x34adb8(_0x4fb0fb);});});}function getAgent(_0x1e9c3b){return db[_0x8a58('0x21')][_0x8a58('0x22')]({'where':{'id':_0x1e9c3b,'role':'agent'}})[_0x8a58('0x1c')](checkError());}function getAgentCheckSession(_0x31abcc,_0x4426ff){return new BPromise(function(_0x27d7c8,_0x367aec){var _0x3e317f=respondWithRpcPromise(_0x8a58('0x23'));var _0x4d5041=getAgent(_0x31abcc);Promise[_0x8a58('0x24')]([_0x3e317f,_0x4d5041])['then'](function(_0x501aa1){var _0x5e7265=_0x501aa1[0x0];var _0x4cfc96=_0x501aa1[0x1];var _0x5a9c53=_[_0x8a58('0x25')](_0x5e7265[_0x8a58('0x26')],function(_0x1b2d9e){return _0x1b2d9e[_0x8a58('0x27')]==_0x4cfc96['id']&&_0x1b2d9e[_0x8a58('0x28')]==_0x4426ff;});if(_0x5a9c53[_0x8a58('0x29')]==0x1){_0x27d7c8(_0x4cfc96);}else{_0x367aec(new RangeError(_0x8a58('0x2a')+_0x4426ff+_0x8a58('0x2b')));}});});}exports[_0x8a58('0x2c')]=function(_0x3d9e3a,_0x8ab99c){logger[_0x8a58('0x2d')](_0x8a58('0x2e'),_0x3d9e3a['body']);var _0x330e8a=originateValidation[_0x8a58('0xe')](_0x3d9e3a[_0x8a58('0x2f')]);if(_0x330e8a[_0x8a58('0x29')]>0x0){return _0x8ab99c[_0x8a58('0x18')](0x190)[_0x8a58('0x30')](_0x330e8a);}var _0x50c73d=_0x3d9e3a[_0x8a58('0x2f')][_0x8a58('0x31')];var _0x25ecd6=_0x3d9e3a[_0x8a58('0x2f')][_0x8a58('0x32')];var _0x264cc7=_0x3d9e3a[_0x8a58('0x2f')]['callerId'];var _0x3d1fb0=_0x3d9e3a[_0x8a58('0x2f')][_0x8a58('0x33')];return getAgent(_0x50c73d)['then'](function(_0x5ecfea){logger['info'](_0x8a58('0x34'),_0x5ecfea[_0x8a58('0x17')]);emit(util[_0x8a58('0x35')](_0x8a58('0x36'),_0x5ecfea['name']),_0x8a58('0x37'),{'callNumber':_0x25ecd6,'callerId':_0x264cc7,'callbackUrl':_0x3d1fb0});return _0x8ab99c[_0x8a58('0x18')](0xc8)[_0x8a58('0x30')]({'error':![],'message':_0x8a58('0x38')});})['catch'](handleError(_0x8ab99c));};exports[_0x8a58('0x39')]=function(_0x2a7c70,_0x5aad83){logger[_0x8a58('0x2d')](_0x8a58('0x3a'),_0x2a7c70[_0x8a58('0x2f')]);var _0x35d930=hangupValidation[_0x8a58('0xe')](_0x2a7c70[_0x8a58('0x2f')]);if(_0x35d930['length']>0x0){return _0x5aad83['status'](0x190)[_0x8a58('0x30')](_0x35d930);}var _0x31b8fe=_0x2a7c70['body'][_0x8a58('0x31')];var _0x2e1d71=_0x2a7c70[_0x8a58('0x2f')][_0x8a58('0x28')];return getAgent(_0x31b8fe)[_0x8a58('0x1c')](function(_0x4e9e04){logger[_0x8a58('0x2d')]('entityFound:',_0x4e9e04[_0x8a58('0x17')]);emit(util[_0x8a58('0x35')](_0x8a58('0x36'),_0x4e9e04[_0x8a58('0x17')]),_0x8a58('0x3b'),{'sessionId':_0x2e1d71});return _0x5aad83[_0x8a58('0x18')](0xc8)[_0x8a58('0x30')]({'error':![],'message':'hangup\x20executed!'});})['catch'](handleError(_0x5aad83));};exports[_0x8a58('0x3c')]=function(_0x54e454,_0x53fd19){logger[_0x8a58('0x2d')](_0x8a58('0x3d'),_0x54e454[_0x8a58('0x2f')]);var _0x573cd3=answerValidation['validate'](_0x54e454[_0x8a58('0x2f')]);if(_0x573cd3['length']>0x0){return _0x53fd19[_0x8a58('0x18')](0x190)[_0x8a58('0x30')](_0x573cd3);}var _0x3feec0=_0x54e454[_0x8a58('0x2f')]['userId'];var _0x417951=_0x54e454[_0x8a58('0x2f')]['sessionId'];return getAgent(_0x3feec0)[_0x8a58('0x1c')](function(_0xba52de){logger[_0x8a58('0x2d')](_0x8a58('0x34'),_0xba52de['name']);emit(util[_0x8a58('0x35')]('user:%s',_0xba52de[_0x8a58('0x17')]),_0x8a58('0x3e'),{'sessionId':_0x417951});return _0x53fd19['status'](0xc8)[_0x8a58('0x30')]({'error':![],'message':'answer\x20executed!'});})['catch'](handleError(_0x53fd19));};exports[_0x8a58('0x3f')]=function(_0x417b08,_0x177ba9){logger[_0x8a58('0x2d')](_0x8a58('0x40'),_0x417b08[_0x8a58('0x2f')]);var _0x507423=holdValidation['validate'](_0x417b08[_0x8a58('0x2f')]);if(_0x507423[_0x8a58('0x29')]>0x0){return _0x177ba9[_0x8a58('0x18')](0x190)[_0x8a58('0x30')](_0x507423);}var _0x1ec51b=_0x417b08[_0x8a58('0x2f')][_0x8a58('0x31')];var _0x903c85=_0x417b08[_0x8a58('0x2f')][_0x8a58('0x28')];return getAgent(_0x1ec51b)[_0x8a58('0x1c')](function(_0x392c32){logger[_0x8a58('0x2d')](_0x8a58('0x34'),_0x392c32['name']);emit(util[_0x8a58('0x35')](_0x8a58('0x36'),_0x392c32[_0x8a58('0x17')]),_0x8a58('0x41'),{'sessionId':_0x903c85});return _0x177ba9[_0x8a58('0x18')](0xc8)[_0x8a58('0x30')]({'error':![],'message':_0x8a58('0x42')});})['catch'](handleError(_0x177ba9));};exports['unhold']=function(_0x5ab682,_0x31e12a){logger[_0x8a58('0x2d')](_0x8a58('0x43'),_0x5ab682['body']);var _0x3883ee=unholdValidation[_0x8a58('0xe')](_0x5ab682[_0x8a58('0x2f')]);if(_0x3883ee[_0x8a58('0x29')]>0x0){return _0x31e12a[_0x8a58('0x18')](0x190)[_0x8a58('0x30')](_0x3883ee);}var _0x22f5aa=_0x5ab682[_0x8a58('0x2f')][_0x8a58('0x31')];var _0x2f48ef=_0x5ab682[_0x8a58('0x2f')][_0x8a58('0x28')];return getAgent(_0x22f5aa)['then'](function(_0xf44eaa){logger[_0x8a58('0x2d')]('entityFound:',_0xf44eaa[_0x8a58('0x17')]);emit(util[_0x8a58('0x35')](_0x8a58('0x36'),_0xf44eaa['name']),_0x8a58('0x44'),{'sessionId':_0x2f48ef});return _0x31e12a['status'](0xc8)[_0x8a58('0x30')]({'error':![],'message':_0x8a58('0x45')});})[_0x8a58('0x20')](handleError(_0x31e12a));};exports[_0x8a58('0x46')]=function(_0x3c7225,_0xfd0229){logger[_0x8a58('0x2d')](_0x8a58('0x47'),_0xfd0229[_0x8a58('0x2f')]);var _0x53fbde=callsValidation[_0x8a58('0xe')](_0x3c7225[_0x8a58('0x2f')]);if(_0x53fbde[_0x8a58('0x29')]>0x0){return _0xfd0229[_0x8a58('0x18')](0x190)[_0x8a58('0x30')](_0x53fbde);}var _0x57adf4=_0x3c7225[_0x8a58('0x2f')][_0x8a58('0x31')];var _0xa01a37=respondWithRpcPromise(_0x8a58('0x23'));var _0x1022d5=getAgent(_0x57adf4);return Promise[_0x8a58('0x24')]([_0xa01a37,_0x1022d5])[_0x8a58('0x1c')](function(_0x38e435){var _0x515f26=_0x38e435[0x0];var _0x415dea=_0x38e435[0x1];var _0xbf6332=_[_0x8a58('0x25')](_0x515f26['rows'],function(_0x229e68){return _0x229e68['UserId']==_0x415dea['id'];});return _0xfd0229[_0x8a58('0x18')](0xc8)[_0x8a58('0x30')]({'count':_0xbf6332[_0x8a58('0x29')],'rows':_0xbf6332});})[_0x8a58('0x20')](handleError(_0xfd0229));};exports[_0x8a58('0x48')]=function(_0x2f653d,_0x1b8292){logger[_0x8a58('0x2d')]('conference\x20fired:',_0x2f653d['body']);var _0x455aeb=conferenceValidation[_0x8a58('0xe')](_0x2f653d[_0x8a58('0x2f')]);if(_0x455aeb[_0x8a58('0x29')]>0x0){return _0x1b8292[_0x8a58('0x18')](0x190)[_0x8a58('0x30')](_0x455aeb);}var _0x1b4f68=_0x2f653d['body'][_0x8a58('0x31')];return getAgent(_0x1b4f68)[_0x8a58('0x1c')](function(_0x493ccd){logger[_0x8a58('0x2d')](_0x8a58('0x34'),_0x493ccd[_0x8a58('0x17')]);emit(util[_0x8a58('0x35')](_0x8a58('0x36'),_0x493ccd[_0x8a58('0x17')]),'webbar:conference');return _0x1b8292[_0x8a58('0x18')](0xc8)[_0x8a58('0x30')]({'error':![],'message':'conference\x20executed!'});})[_0x8a58('0x20')](handleError(_0x1b8292));};exports[_0x8a58('0x49')]=function(_0x19e256,_0x26b333){logger['info']('transfer\x20fired:',_0x19e256[_0x8a58('0x2f')]);var _0x5ce699=transferValidation[_0x8a58('0xe')](_0x19e256[_0x8a58('0x2f')]);if(_0x5ce699[_0x8a58('0x29')]>0x0){return _0x26b333[_0x8a58('0x18')](0x190)['json'](_0x5ce699);}var _0xb0b5da=_0x19e256[_0x8a58('0x2f')][_0x8a58('0x31')];var _0x371930=_0x19e256[_0x8a58('0x2f')][_0x8a58('0x28')];var _0x9046f1=_0x19e256[_0x8a58('0x2f')][_0x8a58('0x4a')];return getAgent(_0xb0b5da)[_0x8a58('0x1c')](function(_0x318acd){logger[_0x8a58('0x2d')](_0x8a58('0x34'),_0x318acd['name']);emit(util[_0x8a58('0x35')](_0x8a58('0x36'),_0x318acd[_0x8a58('0x17')]),_0x8a58('0x4b'),{'sessionId':_0x371930,'transferNumber':_0x9046f1});return _0x26b333[_0x8a58('0x18')](0xc8)[_0x8a58('0x30')]({'error':![],'message':_0x8a58('0x4c')});})[_0x8a58('0x20')](handleError(_0x26b333));};
\ No newline at end of file
+var _0x4d9e=['length','sessionId\x20','\x20not\x20found!','originate\x20fired:','body','json','callNumber','callerId','callbackUrl','then','entityFound:','format','user:%s','webbar:originate','originate\x20executed!','hangup\x20fired:','userId','webbar:hangup','hangup\x20executed!','answer','answer\x20fired:','webbar:answer','answer\x20executed!','hold','hold\x20fired:','hold\x20executed!','unhold\x20fired:','webbar:unhold','unhold\x20executed!','calls','calls\x20fired:','conference','conference\x20fired:','webbar:conference','transfer','transferNumber','path','../../config/environment','bluebird','client','http','webbarapi','ioredis','redis','defaults','localhost','validate','number','userId\x20is\x20required','string','callNumber\x20is\x20required','info','handleError:','stack','name','status','send','NotFound','request','error','code','message','result','catch','findOne','agent','VoiceChannels','all','filter','rows','UserId','sessionId'];(function(_0x173f10,_0x35db61){var _0x53142d=function(_0x37bbef){while(--_0x37bbef){_0x173f10['push'](_0x173f10['shift']());}};_0x53142d(++_0x35db61);}(_0x4d9e,0x18c));var _0xe4d9=function(_0x2f35cf,_0x27f283){_0x2f35cf=_0x2f35cf-0x0;var _0x1b02fd=_0x4d9e[_0x2f35cf];return _0x1b02fd;};'use strict';var path=require(_0xe4d9('0x0'));var fs=require('fs');var _=require('lodash');var db=require('../../mysqldb')['db'];var config=require(_0xe4d9('0x1'));var util=require('util');var BPromise=require(_0xe4d9('0x2'));var jayson=require('jayson/promise');var amiClient=jayson[_0xe4d9('0x3')][_0xe4d9('0x4')]({'port':0x232a});var logger=require('../../config/logger')(_0xe4d9('0x5'));var Redis=require(_0xe4d9('0x6'));config[_0xe4d9('0x7')]=_[_0xe4d9('0x8')](config[_0xe4d9('0x7')],{'host':_0xe4d9('0x9'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0xe4d9('0x7')]));var Schema=require(_0xe4d9('0xa'));var originateValidation=new Schema({'userId':{'type':_0xe4d9('0xb'),'required':[!![],_0xe4d9('0xc')]},'callNumber':{'type':_0xe4d9('0xd'),'required':[!![],_0xe4d9('0xe')]},'callerId':{'type':'string'},'callbackUrl':{'type':_0xe4d9('0xd')}});var hangupValidation=new Schema({'userId':{'type':_0xe4d9('0xb'),'required':[!![],_0xe4d9('0xc')]},'sessionId':{'type':_0xe4d9('0xd'),'required':![]}});var answerValidation=new Schema({'userId':{'type':_0xe4d9('0xb'),'required':[!![],_0xe4d9('0xc')]},'sessionId':{'type':_0xe4d9('0xd'),'required':![]}});var transferValidation=new Schema({'userId':{'type':'number','required':[!![],'userId\x20is\x20required']},'sessionId':{'type':'string','required':[!![],'sessionId\x20is\x20required']},'transferNumber':{'type':'string','required':[!![],'transferNumber\x20is\x20required']}});var holdValidation=new Schema({'userId':{'type':'number','required':[!![],'userId\x20is\x20required']},'sessionId':{'type':_0xe4d9('0xd'),'required':![]}});var unholdValidation=new Schema({'userId':{'type':_0xe4d9('0xb'),'required':[!![],_0xe4d9('0xc')]},'sessionId':{'type':'string','required':![]}});var callsValidation=new Schema({'userId':{'type':_0xe4d9('0xb'),'required':[!![],_0xe4d9('0xc')]}});var conferenceValidation=new Schema({'userId':{'type':_0xe4d9('0xb'),'required':[!![],_0xe4d9('0xc')]}});function emit(_0x58d0cf,_0x331ef3,_0x35cbc2){logger[_0xe4d9('0xf')](_0x58d0cf,_0x331ef3,JSON['stringify'](_0x35cbc2));io['to'](_0x58d0cf)['emit'](_0x331ef3,_0x35cbc2);}function handleError(_0x7abb80){return function(_0x112315){console['log'](_0xe4d9('0x10'),_0x112315,_0x112315 instanceof RangeError);logger['error'](_0x112315[_0xe4d9('0x11')]);if(_0x112315 instanceof RangeError){if(_0x112315[_0xe4d9('0x12')]){delete _0x112315[_0xe4d9('0x12')];}_0x7abb80[_0xe4d9('0x13')](0x194)['send'](_0x112315);}else{if(_0x112315[_0xe4d9('0x12')]){delete _0x112315[_0xe4d9('0x12')];}_0x7abb80[_0xe4d9('0x13')](0x1f4)[_0xe4d9('0x14')](_0x112315);}};}function checkError(){return function(_0x2c6b89){if(!_0x2c6b89){throw new RangeError(_0xe4d9('0x15'));}return _0x2c6b89;};}function respondWithRpcPromise(_0x30d923,_0x29e0c9){return new BPromise(function(_0x562bab,_0x4fed7f){var _0x44f1aa=amiClient;return _0x44f1aa[_0xe4d9('0x16')](_0x30d923,_0x29e0c9)['then'](function(_0x189dad){if(_0x189dad['error']){if(_0x189dad[_0xe4d9('0x17')][_0xe4d9('0x18')]===0x1f4){return _0x4fed7f(_0x189dad['error'][_0xe4d9('0x19')]);}return _0x562bab(_0x189dad[_0xe4d9('0x17')]['message']);}else{_0x562bab(_0x189dad[_0xe4d9('0x1a')]);}})[_0xe4d9('0x1b')](function(_0x36444c){_0x4fed7f(_0x36444c);});});}function getAgent(_0x5bb43b){return db['User'][_0xe4d9('0x1c')]({'where':{'id':_0x5bb43b,'role':_0xe4d9('0x1d')}})['then'](checkError());}function getAgentCheckSession(_0x5dddd2,_0x4954b5){return new BPromise(function(_0x529e2b,_0x221a61){var _0x48d481=respondWithRpcPromise(_0xe4d9('0x1e'));var _0x1f3d90=getAgent(_0x5dddd2);Promise[_0xe4d9('0x1f')]([_0x48d481,_0x1f3d90])['then'](function(_0xec8d64){var _0x2a0d1f=_0xec8d64[0x0];var _0x250de5=_0xec8d64[0x1];var _0x45e8a3=_[_0xe4d9('0x20')](_0x2a0d1f[_0xe4d9('0x21')],function(_0x21b7a9){return _0x21b7a9[_0xe4d9('0x22')]==_0x250de5['id']&&_0x21b7a9[_0xe4d9('0x23')]==_0x4954b5;});if(_0x45e8a3[_0xe4d9('0x24')]==0x1){_0x529e2b(_0x250de5);}else{_0x221a61(new RangeError(_0xe4d9('0x25')+_0x4954b5+_0xe4d9('0x26')));}});});}exports['originate']=function(_0x22efd2,_0x349be3){logger[_0xe4d9('0xf')](_0xe4d9('0x27'),_0x22efd2[_0xe4d9('0x28')]);var _0x12e0ae=originateValidation['validate'](_0x22efd2['body']);if(_0x12e0ae['length']>0x0){return _0x349be3[_0xe4d9('0x13')](0x190)[_0xe4d9('0x29')](_0x12e0ae);}var _0x9f1acf=_0x22efd2['body']['userId'];var _0x5ad794=_0x22efd2['body'][_0xe4d9('0x2a')];var _0x16aaff=_0x22efd2['body'][_0xe4d9('0x2b')];var _0x24c084=_0x22efd2['body'][_0xe4d9('0x2c')];return getAgent(_0x9f1acf)[_0xe4d9('0x2d')](function(_0x945a80){logger[_0xe4d9('0xf')](_0xe4d9('0x2e'),_0x945a80[_0xe4d9('0x12')]);emit(util[_0xe4d9('0x2f')](_0xe4d9('0x30'),_0x945a80[_0xe4d9('0x12')]),_0xe4d9('0x31'),{'callNumber':_0x5ad794,'callerId':_0x16aaff,'callbackUrl':_0x24c084});return _0x349be3[_0xe4d9('0x13')](0xc8)[_0xe4d9('0x29')]({'error':![],'message':_0xe4d9('0x32')});})[_0xe4d9('0x1b')](handleError(_0x349be3));};exports['hangup']=function(_0x35b5f5,_0x20aef6){logger[_0xe4d9('0xf')](_0xe4d9('0x33'),_0x35b5f5[_0xe4d9('0x28')]);var _0x331161=hangupValidation[_0xe4d9('0xa')](_0x35b5f5[_0xe4d9('0x28')]);if(_0x331161[_0xe4d9('0x24')]>0x0){return _0x20aef6['status'](0x190)['json'](_0x331161);}var _0x5f5bc5=_0x35b5f5[_0xe4d9('0x28')][_0xe4d9('0x34')];var _0x32179b=_0x35b5f5[_0xe4d9('0x28')][_0xe4d9('0x23')];return getAgent(_0x5f5bc5)[_0xe4d9('0x2d')](function(_0x392cdd){logger['info']('entityFound:',_0x392cdd['name']);emit(util[_0xe4d9('0x2f')](_0xe4d9('0x30'),_0x392cdd['name']),_0xe4d9('0x35'),{'sessionId':_0x32179b});return _0x20aef6[_0xe4d9('0x13')](0xc8)[_0xe4d9('0x29')]({'error':![],'message':_0xe4d9('0x36')});})['catch'](handleError(_0x20aef6));};exports[_0xe4d9('0x37')]=function(_0x348667,_0x2afa91){logger[_0xe4d9('0xf')](_0xe4d9('0x38'),_0x348667[_0xe4d9('0x28')]);var _0x25b1f0=answerValidation[_0xe4d9('0xa')](_0x348667[_0xe4d9('0x28')]);if(_0x25b1f0[_0xe4d9('0x24')]>0x0){return _0x2afa91[_0xe4d9('0x13')](0x190)['json'](_0x25b1f0);}var _0x429be=_0x348667[_0xe4d9('0x28')][_0xe4d9('0x34')];var _0x2b7e25=_0x348667[_0xe4d9('0x28')]['sessionId'];return getAgent(_0x429be)[_0xe4d9('0x2d')](function(_0x31db47){logger[_0xe4d9('0xf')](_0xe4d9('0x2e'),_0x31db47[_0xe4d9('0x12')]);emit(util[_0xe4d9('0x2f')](_0xe4d9('0x30'),_0x31db47[_0xe4d9('0x12')]),_0xe4d9('0x39'),{'sessionId':_0x2b7e25});return _0x2afa91[_0xe4d9('0x13')](0xc8)['json']({'error':![],'message':_0xe4d9('0x3a')});})[_0xe4d9('0x1b')](handleError(_0x2afa91));};exports[_0xe4d9('0x3b')]=function(_0x54bf07,_0x131e11){logger[_0xe4d9('0xf')](_0xe4d9('0x3c'),_0x54bf07[_0xe4d9('0x28')]);var _0x1e0b7b=holdValidation[_0xe4d9('0xa')](_0x54bf07[_0xe4d9('0x28')]);if(_0x1e0b7b['length']>0x0){return _0x131e11[_0xe4d9('0x13')](0x190)[_0xe4d9('0x29')](_0x1e0b7b);}var _0x38bc8f=_0x54bf07[_0xe4d9('0x28')][_0xe4d9('0x34')];var _0x423881=_0x54bf07['body'][_0xe4d9('0x23')];return getAgent(_0x38bc8f)[_0xe4d9('0x2d')](function(_0x87f230){logger[_0xe4d9('0xf')](_0xe4d9('0x2e'),_0x87f230[_0xe4d9('0x12')]);emit(util['format'](_0xe4d9('0x30'),_0x87f230[_0xe4d9('0x12')]),'webbar:hold',{'sessionId':_0x423881});return _0x131e11[_0xe4d9('0x13')](0xc8)['json']({'error':![],'message':_0xe4d9('0x3d')});})[_0xe4d9('0x1b')](handleError(_0x131e11));};exports['unhold']=function(_0x657961,_0x5e5267){logger[_0xe4d9('0xf')](_0xe4d9('0x3e'),_0x657961[_0xe4d9('0x28')]);var _0x48b9fa=unholdValidation[_0xe4d9('0xa')](_0x657961[_0xe4d9('0x28')]);if(_0x48b9fa['length']>0x0){return _0x5e5267[_0xe4d9('0x13')](0x190)[_0xe4d9('0x29')](_0x48b9fa);}var _0x37af58=_0x657961[_0xe4d9('0x28')]['userId'];var _0x50f513=_0x657961[_0xe4d9('0x28')][_0xe4d9('0x23')];return getAgent(_0x37af58)[_0xe4d9('0x2d')](function(_0x19ebdc){logger[_0xe4d9('0xf')](_0xe4d9('0x2e'),_0x19ebdc['name']);emit(util['format'](_0xe4d9('0x30'),_0x19ebdc[_0xe4d9('0x12')]),_0xe4d9('0x3f'),{'sessionId':_0x50f513});return _0x5e5267[_0xe4d9('0x13')](0xc8)[_0xe4d9('0x29')]({'error':![],'message':_0xe4d9('0x40')});})['catch'](handleError(_0x5e5267));};exports[_0xe4d9('0x41')]=function(_0x291d0c,_0x47596a){logger['info'](_0xe4d9('0x42'),_0x47596a[_0xe4d9('0x28')]);var _0x281fda=callsValidation['validate'](_0x291d0c[_0xe4d9('0x28')]);if(_0x281fda['length']>0x0){return _0x47596a[_0xe4d9('0x13')](0x190)[_0xe4d9('0x29')](_0x281fda);}var _0x175346=_0x291d0c['body']['userId'];var _0x5bd06b=respondWithRpcPromise(_0xe4d9('0x1e'));var _0x588bcb=getAgent(_0x175346);return Promise[_0xe4d9('0x1f')]([_0x5bd06b,_0x588bcb])['then'](function(_0x4d7e81){var _0x3c2196=_0x4d7e81[0x0];var _0x2a4428=_0x4d7e81[0x1];var _0x467c29=_[_0xe4d9('0x20')](_0x3c2196[_0xe4d9('0x21')],function(_0x580bb4){return _0x580bb4['UserId']==_0x2a4428['id'];});return _0x47596a['status'](0xc8)['json']({'count':_0x467c29[_0xe4d9('0x24')],'rows':_0x467c29});})[_0xe4d9('0x1b')](handleError(_0x47596a));};exports[_0xe4d9('0x43')]=function(_0x39e74a,_0x1d522e){logger[_0xe4d9('0xf')](_0xe4d9('0x44'),_0x39e74a['body']);var _0x524e8c=conferenceValidation[_0xe4d9('0xa')](_0x39e74a[_0xe4d9('0x28')]);if(_0x524e8c[_0xe4d9('0x24')]>0x0){return _0x1d522e[_0xe4d9('0x13')](0x190)[_0xe4d9('0x29')](_0x524e8c);}var _0xa7cbad=_0x39e74a[_0xe4d9('0x28')][_0xe4d9('0x34')];return getAgent(_0xa7cbad)[_0xe4d9('0x2d')](function(_0x394635){logger[_0xe4d9('0xf')](_0xe4d9('0x2e'),_0x394635['name']);emit(util[_0xe4d9('0x2f')](_0xe4d9('0x30'),_0x394635[_0xe4d9('0x12')]),_0xe4d9('0x45'));return _0x1d522e['status'](0xc8)['json']({'error':![],'message':'conference\x20executed!'});})[_0xe4d9('0x1b')](handleError(_0x1d522e));};exports[_0xe4d9('0x46')]=function(_0x3ffe34,_0x43b750){logger['info']('transfer\x20fired:',_0x3ffe34[_0xe4d9('0x28')]);var _0xf41d89=transferValidation[_0xe4d9('0xa')](_0x3ffe34[_0xe4d9('0x28')]);if(_0xf41d89[_0xe4d9('0x24')]>0x0){return _0x43b750[_0xe4d9('0x13')](0x190)['json'](_0xf41d89);}var _0x348c8d=_0x3ffe34['body'][_0xe4d9('0x34')];var _0x3be5a4=_0x3ffe34['body'][_0xe4d9('0x23')];var _0xc31086=_0x3ffe34['body'][_0xe4d9('0x47')];return getAgent(_0x348c8d)[_0xe4d9('0x2d')](function(_0x46d795){logger[_0xe4d9('0xf')](_0xe4d9('0x2e'),_0x46d795[_0xe4d9('0x12')]);emit(util['format']('user:%s',_0x46d795[_0xe4d9('0x12')]),'webbar:transfer',{'sessionId':_0x3be5a4,'transferNumber':_0xc31086});return _0x43b750[_0xe4d9('0x13')](0xc8)['json']({'error':![],'message':'transfer\x20executed!'});})[_0xe4d9('0x1b')](handleError(_0x43b750));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0598=['put','update','delete','destroy','/:id/canned_answers','removeAgents','multer','util','connect-timeout','fs-extra','../../components/auth/service','get','isAuthenticated','/describe','describe','show','/:id/dispositions','getDispositions','getAnswers','getAgents','/:id/applications','getApplications','post','addDisposition','/:id/users','addAgents','addApplications','/:id/notify'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0x0598,0x92));var _0x8059=function(_0xa65feb,_0x2bc850){_0xa65feb=_0xa65feb-0x0;var _0x3aeaec=_0x0598[_0xa65feb];return _0x3aeaec;};'use strict';var multer=require(_0x8059('0x0'));var util=require(_0x8059('0x1'));var path=require('path');var timeout=require(_0x8059('0x2'));var express=require('express');var router=express['Router']();var fs_extra=require(_0x8059('0x3'));var auth=require(_0x8059('0x4'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require('./whatsappAccount.controller');router[_0x8059('0x5')]('/',auth[_0x8059('0x6')](),controller['index']);router['get'](_0x8059('0x7'),auth[_0x8059('0x6')](),controller[_0x8059('0x8')]);router[_0x8059('0x5')]('/:id',auth['isAuthenticated'](),controller[_0x8059('0x9')]);router[_0x8059('0x5')](_0x8059('0xa'),auth[_0x8059('0x6')](),controller[_0x8059('0xb')]);router['get']('/:id/canned_answers',auth[_0x8059('0x6')](),controller[_0x8059('0xc')]);router['get']('/:id/users',auth['isAuthenticated'](),controller[_0x8059('0xd')]);router[_0x8059('0x5')](_0x8059('0xe'),auth[_0x8059('0x6')](),controller[_0x8059('0xf')]);router['post']('/',auth[_0x8059('0x6')](),controller['create']);router[_0x8059('0x10')]('/:id/dispositions',auth[_0x8059('0x6')](),controller[_0x8059('0x11')]);router[_0x8059('0x10')]('/:id/canned_answers',auth['isAuthenticated'](),controller['addAnswer']);router[_0x8059('0x10')](_0x8059('0x12'),auth[_0x8059('0x6')](),controller[_0x8059('0x13')]);router[_0x8059('0x10')]('/:id/applications',auth[_0x8059('0x6')](),controller[_0x8059('0x14')]);router[_0x8059('0x10')](_0x8059('0x15'),controller['notify']);router[_0x8059('0x10')]('/:id/send',auth[_0x8059('0x6')](),controller['send']);router[_0x8059('0x16')]('/:id',auth[_0x8059('0x6')](),controller[_0x8059('0x17')]);router[_0x8059('0x18')]('/:id',auth['isAuthenticated'](),controller[_0x8059('0x19')]);router[_0x8059('0x18')](_0x8059('0xa'),auth[_0x8059('0x6')](),controller['removeDispositions']);router[_0x8059('0x18')](_0x8059('0x1a'),auth[_0x8059('0x6')](),controller['removeAnswers']);router[_0x8059('0x18')](_0x8059('0x12'),auth[_0x8059('0x6')](),controller[_0x8059('0x1b')]);module['exports']=router;
\ No newline at end of file
+var _0x1a85=['removeAgents','exports','path','connect-timeout','express','../../components/auth/service','../../components/interaction/service','../../config/environment','get','index','/describe','isAuthenticated','show','/:id/dispositions','getDispositions','/:id/canned_answers','getAnswers','/:id/users','getAgents','/:id/applications','getApplications','create','post','addAnswer','addApplications','/:id/notify','/:id/send','send','put','/:id','update','destroy','delete','removeAnswers'];(function(_0x1e18b1,_0x59ae0f){var _0x5cf8b2=function(_0x5ceeea){while(--_0x5ceeea){_0x1e18b1['push'](_0x1e18b1['shift']());}};_0x5cf8b2(++_0x59ae0f);}(_0x1a85,0x178));var _0x51a8=function(_0x1dae94,_0x239003){_0x1dae94=_0x1dae94-0x0;var _0x36ce2d=_0x1a85[_0x1dae94];return _0x36ce2d;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x51a8('0x0'));var timeout=require(_0x51a8('0x1'));var express=require(_0x51a8('0x2'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0x51a8('0x3'));var interaction=require(_0x51a8('0x4'));var config=require(_0x51a8('0x5'));var controller=require('./whatsappAccount.controller');router[_0x51a8('0x6')]('/',auth['isAuthenticated'](),controller[_0x51a8('0x7')]);router['get'](_0x51a8('0x8'),auth[_0x51a8('0x9')](),controller['describe']);router[_0x51a8('0x6')]('/:id',auth['isAuthenticated'](),controller[_0x51a8('0xa')]);router[_0x51a8('0x6')](_0x51a8('0xb'),auth[_0x51a8('0x9')](),controller[_0x51a8('0xc')]);router[_0x51a8('0x6')](_0x51a8('0xd'),auth[_0x51a8('0x9')](),controller[_0x51a8('0xe')]);router[_0x51a8('0x6')](_0x51a8('0xf'),auth[_0x51a8('0x9')](),controller[_0x51a8('0x10')]);router[_0x51a8('0x6')](_0x51a8('0x11'),auth[_0x51a8('0x9')](),controller[_0x51a8('0x12')]);router['post']('/',auth[_0x51a8('0x9')](),controller[_0x51a8('0x13')]);router[_0x51a8('0x14')]('/:id/dispositions',auth[_0x51a8('0x9')](),controller['addDisposition']);router[_0x51a8('0x14')](_0x51a8('0xd'),auth[_0x51a8('0x9')](),controller[_0x51a8('0x15')]);router[_0x51a8('0x14')](_0x51a8('0xf'),auth[_0x51a8('0x9')](),controller['addAgents']);router[_0x51a8('0x14')](_0x51a8('0x11'),auth[_0x51a8('0x9')](),controller[_0x51a8('0x16')]);router[_0x51a8('0x14')](_0x51a8('0x17'),controller['notify']);router[_0x51a8('0x14')](_0x51a8('0x18'),auth[_0x51a8('0x9')](),controller[_0x51a8('0x19')]);router[_0x51a8('0x1a')](_0x51a8('0x1b'),auth[_0x51a8('0x9')](),controller[_0x51a8('0x1c')]);router['delete'](_0x51a8('0x1b'),auth['isAuthenticated'](),controller[_0x51a8('0x1d')]);router[_0x51a8('0x1e')](_0x51a8('0xb'),auth[_0x51a8('0x9')](),controller['removeDispositions']);router[_0x51a8('0x1e')]('/:id/canned_answers',auth['isAuthenticated'](),controller[_0x51a8('0x1f')]);router['delete'](_0x51a8('0xf'),auth[_0x51a8('0x9')](),controller[_0x51a8('0x20')]);module[_0x51a8('0x21')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc92e=['BOOLEAN','INTEGER','Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled','Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','setDataValue','mandatoryDispositionPauseId','mandatoryDisposition','sequelize','exports','STRING','name','generate','twilio','TEXT','Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}'];(function(_0x522fa8,_0x15eba3){var _0x2d1f6c=function(_0x169608){while(--_0x169608){_0x522fa8['push'](_0x522fa8['shift']());}};_0x2d1f6c(++_0x15eba3);}(_0xc92e,0x1d8));var _0xec92=function(_0x3b6844,_0x2a7f8d){_0x3b6844=_0x3b6844-0x0;var _0x560521=_0xc92e[_0x3b6844];return _0x560521;};'use strict';var Sequelize=require(_0xec92('0x0'));var rs=require('randomstring');module[_0xec92('0x1')]={'name':{'type':Sequelize[_0xec92('0x2')],'unique':_0xec92('0x3'),'allowNull':![]},'key':{'type':Sequelize[_0xec92('0x2')],'allowNull':![]},'remote':{'type':Sequelize[_0xec92('0x2')],'allowNull':![]},'token':{'type':Sequelize[_0xec92('0x2')],'defaultValue':function(){return rs[_0xec92('0x4')]();}},'phone':{'type':Sequelize[_0xec92('0x2')]},'type':{'type':Sequelize['ENUM'](_0xec92('0x5'))},'accountSid':{'type':Sequelize[_0xec92('0x2')]},'authToken':{'type':Sequelize[_0xec92('0x2')]},'notificationTemplate':{'type':Sequelize[_0xec92('0x6')],'defaultValue':function(){return _0xec92('0x7');}},'notificationSound':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'notificationShake':{'type':Sequelize[_0xec92('0x8')],'defaultValue':![]},'waitForTheAssignedAgent':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'queueTransfer':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize[_0xec92('0x9')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize[_0xec92('0x8')],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize[_0xec92('0x9')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'mandatoryDispositionPauseId':{'type':Sequelize[_0xec92('0x9')],'comment':_0xec92('0xa')},'mandatoryDisposition':{'type':Sequelize['BOOLEAN'],'defaultValue':![],'comment':_0xec92('0xb'),'set':function(_0x5eed4e){if(!_0x5eed4e){this[_0xec92('0xc')](_0xec92('0xd'),null);}this['setDataValue'](_0xec92('0xe'),_0x5eed4e);}},'description':{'type':Sequelize[_0xec92('0x2')]}};
\ No newline at end of file
+var _0x6daa=['ENUM','twilio','Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}','BOOLEAN','INTEGER','Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled','Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','setDataValue','mandatoryDispositionPauseId','mandatoryDisposition','randomstring','exports','STRING','generate'];(function(_0x2555d0,_0x4150a6){var _0x3bb486=function(_0x1eb89f){while(--_0x1eb89f){_0x2555d0['push'](_0x2555d0['shift']());}};_0x3bb486(++_0x4150a6);}(_0x6daa,0x6c));var _0xa6da=function(_0x8322a,_0x5c8adc){_0x8322a=_0x8322a-0x0;var _0x470de3=_0x6daa[_0x8322a];return _0x470de3;};'use strict';var Sequelize=require('sequelize');var rs=require(_0xa6da('0x0'));module[_0xa6da('0x1')]={'name':{'type':Sequelize[_0xa6da('0x2')],'unique':'name','allowNull':![]},'key':{'type':Sequelize['STRING'],'allowNull':![]},'remote':{'type':Sequelize[_0xa6da('0x2')],'allowNull':![]},'token':{'type':Sequelize[_0xa6da('0x2')],'defaultValue':function(){return rs[_0xa6da('0x3')]();}},'phone':{'type':Sequelize[_0xa6da('0x2')]},'type':{'type':Sequelize[_0xa6da('0x4')](_0xa6da('0x5'))},'accountSid':{'type':Sequelize[_0xa6da('0x2')]},'authToken':{'type':Sequelize[_0xa6da('0x2')]},'notificationTemplate':{'type':Sequelize['TEXT'],'defaultValue':function(){return _0xa6da('0x6');}},'notificationSound':{'type':Sequelize[_0xa6da('0x7')],'defaultValue':![]},'notificationShake':{'type':Sequelize[_0xa6da('0x7')],'defaultValue':![]},'waitForTheAssignedAgent':{'type':Sequelize[_0xa6da('0x8')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'queueTransfer':{'type':Sequelize[_0xa6da('0x7')],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize[_0xa6da('0x8')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize[_0xa6da('0x7')],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'mandatoryDispositionPauseId':{'type':Sequelize[_0xa6da('0x8')],'comment':_0xa6da('0x9')},'mandatoryDisposition':{'type':Sequelize[_0xa6da('0x7')],'defaultValue':![],'comment':_0xa6da('0xa'),'set':function(_0x1e0d36){if(!_0x1e0d36){this[_0xa6da('0xb')](_0xa6da('0xc'),null);}this[_0xa6da('0xb')](_0xa6da('0xd'),_0x1e0d36);}},'description':{'type':Sequelize[_0xa6da('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfd0c=['filter','merge','VIRTUAL','options','includeAll','include','findAll','show','keys','length','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','params','describe','WhatsappAccountId','Disposition','getDispositions','findOne','removeDispositions','ids','addAnswer','CannedAnswer','removeAnswers','addAgents','omit','spread','emit','userWhatsappAccount:save','removeAgents','isArray','userWhatsappAccount:remove','User','getAgents','sequelize','WhatsappApplication','bulkCreate','priority','getApplications','whatsapp','Applications','account','applications','ValidationError','no\x20available\x20attributes','createdAt','updatedAt','difference','CompanyId','ListId','mobile','twilio','from','replace','whatsapp:','Body','messageId','MessageSid','isNil','Sequelize','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','CmContact','Contacts','list','contact','WhatsappInteraction','interaction','push','close','*,*,*,*','created','WhatsappMessage','ContactId','AttachmentId','UserId','unshift','agent','waitForTheAssignedAgent','Start','startRouting','WhatsappAccount,\x20%s,\x20%s,\x20%s','entity\x20found','WhatsappAccount,\x20%s,\x20%s,\x20%s,\x20%s','Content-Type','<?xml\x20version=\x221.0\x22\x20encoding=\x22UTF-8\x22?>\x0a<Response></Response>','CmList','List','Messages','dataValues','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','defaults','redis','localhost','socket.io-emitter','./whatsappAccount.socket','register','client','request','info','WhatsappAccount,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','catch','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','apply','save','then','destroy','get','WhatsappAccounts','stack','name','send','index','Pause','mandatoryDispositionPause','map','WhatsappAccount','rawAttributes','fieldName','type','key','model','query','filters','intersection','fields','attributes','hasOwnProperty','nolimit','order','sort','where','pick'];(function(_0x4b369d,_0x265eb8){var _0x571a98=function(_0x56341a){while(--_0x56341a){_0x4b369d['push'](_0x4b369d['shift']());}};_0x571a98(++_0x265eb8);}(_0xfd0c,0x1db));var _0xcfd0=function(_0x1e3c16,_0x372caa){_0x1e3c16=_0x1e3c16-0x0;var _0x47a0c9=_0xfd0c[_0x1e3c16];return _0x47a0c9;};'use strict';var emlformat=require(_0xcfd0('0x0'));var rimraf=require(_0xcfd0('0x1'));var zipdir=require(_0xcfd0('0x2'));var jsonpatch=require(_0xcfd0('0x3'));var rp=require(_0xcfd0('0x4'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xcfd0('0x5'));var path=require(_0xcfd0('0x6'));var sox=require(_0xcfd0('0x7'));var csv=require(_0xcfd0('0x8'));var ejs=require(_0xcfd0('0x9'));var fs=require('fs');var fs_extra=require(_0xcfd0('0xa'));var _=require(_0xcfd0('0xb'));var squel=require(_0xcfd0('0xc'));var crypto=require(_0xcfd0('0xd'));var jsforce=require(_0xcfd0('0xe'));var deskjs=require(_0xcfd0('0xf'));var toCsv=require(_0xcfd0('0x8'));var querystring=require('querystring');var Papa=require(_0xcfd0('0x10'));var Redis=require(_0xcfd0('0x11'));var authService=require(_0xcfd0('0x12'));var qs=require(_0xcfd0('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xcfd0('0x14'));var logger=require(_0xcfd0('0x15'))(_0xcfd0('0x16'));var utils=require('../../config/utils');var config=require(_0xcfd0('0x17'));var licenseUtil=require(_0xcfd0('0x18'));var db=require('../../mysqldb')['db'];config['redis']=_[_0xcfd0('0x19')](config[_0xcfd0('0x1a')],{'host':_0xcfd0('0x1b'),'port':0x18eb});var socket=require(_0xcfd0('0x1c'))(new Redis(config['redis']));require(_0xcfd0('0x1d'))[_0xcfd0('0x1e')](socket);var jayson=require('jayson/promise');var client=jayson[_0xcfd0('0x1f')]['http']({'port':0x232c});function respondWithRpcPromise(_0x34d1b8,_0x50c6a0,_0xc342da,_0x5e6d98){return new BPromise(function(_0x13cafb,_0x111f00){var _0x1927ad=_0x5e6d98||client;return _0x1927ad[_0xcfd0('0x20')](_0x34d1b8,_0xc342da)['then'](function(_0x82c96d){logger[_0xcfd0('0x21')](_0xcfd0('0x22'),_0x50c6a0,_0xcfd0('0x23'));logger[_0xcfd0('0x24')]('WhatsappAccount,\x20%s,\x20%s,\x20%s',_0x50c6a0,_0xcfd0('0x23'),JSON[_0xcfd0('0x25')](_0x82c96d));if(_0x82c96d[_0xcfd0('0x26')]){if(_0x82c96d[_0xcfd0('0x26')][_0xcfd0('0x27')]===0x1f4){logger[_0xcfd0('0x26')]('WhatsappAccount,\x20%s,\x20%s',_0x50c6a0,_0x82c96d[_0xcfd0('0x26')][_0xcfd0('0x28')]);return _0x111f00(_0x82c96d[_0xcfd0('0x26')][_0xcfd0('0x28')]);}logger['error'](_0xcfd0('0x22'),_0x50c6a0,_0x82c96d[_0xcfd0('0x26')][_0xcfd0('0x28')]);return _0x13cafb(_0x82c96d[_0xcfd0('0x26')][_0xcfd0('0x28')]);}else{logger[_0xcfd0('0x21')]('WhatsappAccount,\x20%s,\x20%s',_0x50c6a0,_0xcfd0('0x23'));_0x13cafb(_0x82c96d[_0xcfd0('0x29')][_0xcfd0('0x28')]);}})[_0xcfd0('0x2a')](function(_0x1d136f){logger[_0xcfd0('0x26')](_0xcfd0('0x22'),_0x50c6a0,_0x1d136f);_0x111f00(_0x1d136f);});});}function respondWithStatusCode(_0x3dcabc,_0x525ebb){_0x525ebb=_0x525ebb||0xcc;return function(_0x490f0b){if(_0x490f0b){return _0x3dcabc[_0xcfd0('0x2b')](_0x525ebb);}return _0x3dcabc[_0xcfd0('0x2c')](_0x525ebb)[_0xcfd0('0x2d')]();};}function respondWithResult(_0x2261cd,_0x281134){_0x281134=_0x281134||0xc8;return function(_0x48706b){if(_0x48706b){return _0x2261cd[_0xcfd0('0x2c')](_0x281134)[_0xcfd0('0x2e')](_0x48706b);}};}function respondWithFilteredResult(_0x49c702,_0x183449){return function(_0x2f7414){if(_0x2f7414){var _0x235869=typeof _0x183449[_0xcfd0('0x2f')]===_0xcfd0('0x30')&&typeof _0x183449['limit']===_0xcfd0('0x30');var _0x5b191c=_0x2f7414[_0xcfd0('0x31')];var _0x4ff3a7=_0x235869?0x0:_0x183449[_0xcfd0('0x2f')];var _0x13b075=_0x235869?_0x2f7414['count']:_0x183449[_0xcfd0('0x2f')]+_0x183449[_0xcfd0('0x32')];var _0x585a46;if(_0x13b075>=_0x5b191c){_0x13b075=_0x5b191c;_0x585a46=0xc8;}else{_0x585a46=0xce;}_0x49c702['status'](_0x585a46);return _0x49c702[_0xcfd0('0x33')](_0xcfd0('0x34'),_0x4ff3a7+'-'+_0x13b075+'/'+_0x5b191c)[_0xcfd0('0x2e')](_0x2f7414);}return null;};}function patchUpdates(_0xc1ac26){return function(_0x4488e6){try{jsonpatch[_0xcfd0('0x35')](_0x4488e6,_0xc1ac26,!![]);}catch(_0x3c1d09){return BPromise['reject'](_0x3c1d09);}return _0x4488e6[_0xcfd0('0x36')]();};}function saveUpdates(_0x82dabc,_0xd39543){return function(_0x208e22){if(_0x208e22){return _0x208e22['update'](_0x82dabc)[_0xcfd0('0x37')](function(_0x29cba2){return _0x29cba2;});}return null;};}function removeEntity(_0x114db7,_0x23a5c2){return function(_0x321efe){if(_0x321efe){return _0x321efe[_0xcfd0('0x38')]()[_0xcfd0('0x37')](function(){var _0x58e9d2=_0x321efe[_0xcfd0('0x39')]({'plain':!![]});var _0x26d593=_0xcfd0('0x3a');return db['UserProfileResource'][_0xcfd0('0x38')]({'where':{'type':_0x26d593,'resourceId':_0x58e9d2['id']}})[_0xcfd0('0x37')](function(){return _0x321efe;});})[_0xcfd0('0x37')](function(){_0x114db7['status'](0xcc)[_0xcfd0('0x2d')]();});}};}function handleEntityNotFound(_0x3a720d,_0x177286){return function(_0x21f1c4){if(!_0x21f1c4){_0x3a720d[_0xcfd0('0x2b')](0x194);}return _0x21f1c4;};}function handleError(_0x152b70,_0x1d27b1){_0x1d27b1=_0x1d27b1||0x1f4;return function(_0x1b1d2b){logger[_0xcfd0('0x26')](_0x1b1d2b[_0xcfd0('0x3b')]);if(_0x1b1d2b[_0xcfd0('0x3c')]){delete _0x1b1d2b[_0xcfd0('0x3c')];}_0x152b70[_0xcfd0('0x2c')](_0x1d27b1)[_0xcfd0('0x3d')](_0x1b1d2b);};}exports[_0xcfd0('0x3e')]=function(_0x593031,_0x2d4d73){var _0x9d069e={'include':[{'model':db[_0xcfd0('0x3f')],'as':_0xcfd0('0x40')}]},_0xbbc5f5={},_0x1e88c3={'count':0x0,'rows':[]};var _0x3bc00d=_[_0xcfd0('0x41')](db[_0xcfd0('0x42')][_0xcfd0('0x43')],function(_0x370d9d){return{'name':_0x370d9d[_0xcfd0('0x44')],'type':_0x370d9d[_0xcfd0('0x45')][_0xcfd0('0x46')]};});_0xbbc5f5[_0xcfd0('0x47')]=_[_0xcfd0('0x41')](_0x3bc00d,_0xcfd0('0x3c'));_0xbbc5f5[_0xcfd0('0x48')]=_['keys'](_0x593031[_0xcfd0('0x48')]);_0xbbc5f5[_0xcfd0('0x49')]=_[_0xcfd0('0x4a')](_0xbbc5f5[_0xcfd0('0x47')],_0xbbc5f5[_0xcfd0('0x48')]);_0x9d069e['attributes']=_[_0xcfd0('0x4a')](_0xbbc5f5[_0xcfd0('0x47')],qs[_0xcfd0('0x4b')](_0x593031[_0xcfd0('0x48')][_0xcfd0('0x4b')]));_0x9d069e[_0xcfd0('0x4c')]=_0x9d069e[_0xcfd0('0x4c')]['length']?_0x9d069e[_0xcfd0('0x4c')]:_0xbbc5f5[_0xcfd0('0x47')];if(!_0x593031['query'][_0xcfd0('0x4d')](_0xcfd0('0x4e'))){_0x9d069e[_0xcfd0('0x32')]=qs['limit'](_0x593031['query'][_0xcfd0('0x32')]);_0x9d069e[_0xcfd0('0x2f')]=qs['offset'](_0x593031[_0xcfd0('0x48')][_0xcfd0('0x2f')]);}_0x9d069e[_0xcfd0('0x4f')]=qs[_0xcfd0('0x50')](_0x593031[_0xcfd0('0x48')]['sort']);_0x9d069e[_0xcfd0('0x51')]=qs[_0xcfd0('0x49')](_[_0xcfd0('0x52')](_0x593031[_0xcfd0('0x48')],_0xbbc5f5[_0xcfd0('0x49')]),_0x3bc00d);if(_0x593031[_0xcfd0('0x48')][_0xcfd0('0x53')]){_0x9d069e[_0xcfd0('0x51')]=_[_0xcfd0('0x54')](_0x9d069e[_0xcfd0('0x51')],{'$or':_[_0xcfd0('0x41')](_0x3bc00d,function(_0xa3ee1b){if(_0xa3ee1b['type']!==_0xcfd0('0x55')){var _0x491bb7={};_0x491bb7[_0xa3ee1b[_0xcfd0('0x3c')]]={'$like':'%'+_0x593031['query'][_0xcfd0('0x53')]+'%'};return _0x491bb7;}})});}_0x9d069e=_[_0xcfd0('0x54')]({},_0x9d069e,_0x593031[_0xcfd0('0x56')]);var _0x45cc22={'where':_0x9d069e[_0xcfd0('0x51')]};return db[_0xcfd0('0x42')][_0xcfd0('0x31')](_0x45cc22)[_0xcfd0('0x37')](function(_0x42e0cf){_0x1e88c3[_0xcfd0('0x31')]=_0x42e0cf;if(_0x593031[_0xcfd0('0x48')][_0xcfd0('0x57')]){_0x9d069e[_0xcfd0('0x58')]=[{'all':!![]}];}return db[_0xcfd0('0x42')][_0xcfd0('0x59')](_0x9d069e);})['then'](function(_0x1ac09e){_0x1e88c3['rows']=_0x1ac09e;return _0x1e88c3;})[_0xcfd0('0x37')](respondWithFilteredResult(_0x2d4d73,_0x9d069e))['catch'](handleError(_0x2d4d73,null));};exports[_0xcfd0('0x5a')]=function(_0x3f9eed,_0x4162d0){var _0x825ede={'raw':![],'where':{'id':_0x3f9eed['params']['id']},'include':[{'model':db[_0xcfd0('0x3f')],'as':_0xcfd0('0x40')}]},_0x4db250={};_0x4db250['model']=_[_0xcfd0('0x5b')](db[_0xcfd0('0x42')][_0xcfd0('0x43')]);_0x4db250['query']=_[_0xcfd0('0x5b')](_0x3f9eed[_0xcfd0('0x48')]);_0x4db250['filters']=_[_0xcfd0('0x4a')](_0x4db250['model'],_0x4db250[_0xcfd0('0x48')]);_0x825ede[_0xcfd0('0x4c')]=_[_0xcfd0('0x4a')](_0x4db250[_0xcfd0('0x47')],qs['fields'](_0x3f9eed[_0xcfd0('0x48')]['fields']));_0x825ede[_0xcfd0('0x4c')]=_0x825ede[_0xcfd0('0x4c')][_0xcfd0('0x5c')]?_0x825ede[_0xcfd0('0x4c')]:_0x4db250['model'];if(_0x3f9eed[_0xcfd0('0x48')][_0xcfd0('0x57')]){_0x825ede['include']=[{'all':!![]}];}_0x825ede=_[_0xcfd0('0x54')]({},_0x825ede,_0x3f9eed['options']);return db[_0xcfd0('0x42')][_0xcfd0('0x5d')](_0x825ede)[_0xcfd0('0x37')](handleEntityNotFound(_0x4162d0,null))[_0xcfd0('0x37')](respondWithResult(_0x4162d0,null))['catch'](handleError(_0x4162d0,null));};exports[_0xcfd0('0x5e')]=function(_0x3728d4,_0x647bfa){return db[_0xcfd0('0x42')]['create'](_0x3728d4[_0xcfd0('0x5f')],{})[_0xcfd0('0x37')](function(_0x2e8e01){var _0x18dbb1=_0x3728d4[_0xcfd0('0x60')][_0xcfd0('0x39')]({'plain':!![]});if(!_0x18dbb1)throw new Error(_0xcfd0('0x61'));if(_0x18dbb1[_0xcfd0('0x62')]==='user'){var _0x5a00c2=_0x2e8e01[_0xcfd0('0x39')]({'plain':!![]});var _0x52b4b0='WhatsappAccounts';return db[_0xcfd0('0x63')][_0xcfd0('0x5d')]({'where':{'name':_0x52b4b0,'userProfileId':_0x18dbb1[_0xcfd0('0x64')]},'raw':!![]})[_0xcfd0('0x37')](function(_0x1a98f0){if(_0x1a98f0&&_0x1a98f0[_0xcfd0('0x65')]===0x0){return db[_0xcfd0('0x66')][_0xcfd0('0x5e')]({'name':_0x5a00c2[_0xcfd0('0x3c')],'resourceId':_0x5a00c2['id'],'type':_0x1a98f0[_0xcfd0('0x3c')],'sectionId':_0x1a98f0['id']},{})[_0xcfd0('0x37')](function(){return _0x2e8e01;});}else{return _0x2e8e01;}})[_0xcfd0('0x2a')](function(_0x7107d8){logger[_0xcfd0('0x26')](_0xcfd0('0x67'),_0x7107d8);throw _0x7107d8;});}return _0x2e8e01;})['then'](respondWithResult(_0x647bfa,0xc9))[_0xcfd0('0x2a')](handleError(_0x647bfa,null));};exports[_0xcfd0('0x68')]=function(_0x4e677e,_0x4bb366){if(_0x4e677e[_0xcfd0('0x5f')]['id']){delete _0x4e677e[_0xcfd0('0x5f')]['id'];}return db[_0xcfd0('0x42')][_0xcfd0('0x5d')]({'where':{'id':_0x4e677e[_0xcfd0('0x69')]['id']},'include':[{'model':db['Pause'],'as':_0xcfd0('0x40')}]})[_0xcfd0('0x37')](handleEntityNotFound(_0x4bb366,null))[_0xcfd0('0x37')](saveUpdates(_0x4e677e[_0xcfd0('0x5f')],null))['then'](respondWithResult(_0x4bb366,null))[_0xcfd0('0x2a')](handleError(_0x4bb366,null));};exports[_0xcfd0('0x38')]=function(_0x4c5d83,_0x4aeec8){return db[_0xcfd0('0x42')][_0xcfd0('0x5d')]({'where':{'id':_0x4c5d83[_0xcfd0('0x69')]['id']}})[_0xcfd0('0x37')](handleEntityNotFound(_0x4aeec8,null))['then'](removeEntity(_0x4aeec8,null))[_0xcfd0('0x2a')](handleError(_0x4aeec8,null));};exports[_0xcfd0('0x6a')]=function(_0x541d42,_0x209993){return db['WhatsappAccount']['describe']()[_0xcfd0('0x37')](respondWithResult(_0x209993,null))[_0xcfd0('0x2a')](handleError(_0x209993,null));};exports['addDisposition']=function(_0x3d6c94,_0x5ab624,_0x18f1f0){if(_0x3d6c94['body']['id']){delete _0x3d6c94['body']['id'];}return db['WhatsappAccount'][_0xcfd0('0x5d')]({'where':{'id':_0x3d6c94[_0xcfd0('0x69')]['id']}})[_0xcfd0('0x37')](handleEntityNotFound(_0x5ab624,null))['then'](function(_0x3e3fa0){if(_0x3e3fa0){_0x3d6c94['body'][_0xcfd0('0x6b')]=_0x3e3fa0['id'];return db[_0xcfd0('0x6c')][_0xcfd0('0x5e')](_0x3d6c94['body']);}})[_0xcfd0('0x37')](respondWithResult(_0x5ab624,null))['catch'](handleError(_0x5ab624,null));};exports[_0xcfd0('0x6d')]=function(_0x307bc3,_0x4cde79,_0x3a8af1){var _0x2fc6f7={'raw':![],'where':{}};var _0x4257f7={};var _0x4ea401={'count':0x0,'rows':[]};return db[_0xcfd0('0x42')][_0xcfd0('0x6e')]({'where':{'id':_0x307bc3[_0xcfd0('0x69')]['id']}})['then'](handleEntityNotFound(_0x4cde79,null))[_0xcfd0('0x37')](function(_0x201e76){if(_0x201e76){_0x4257f7[_0xcfd0('0x47')]=_[_0xcfd0('0x5b')](db['Disposition'][_0xcfd0('0x43')]);_0x4257f7[_0xcfd0('0x48')]=_['keys'](_0x307bc3[_0xcfd0('0x48')]);_0x4257f7[_0xcfd0('0x49')]=_[_0xcfd0('0x4a')](_0x4257f7['model'],_0x4257f7[_0xcfd0('0x48')]);_0x2fc6f7[_0xcfd0('0x4c')]=_[_0xcfd0('0x4a')](_0x4257f7[_0xcfd0('0x47')],qs[_0xcfd0('0x4b')](_0x307bc3[_0xcfd0('0x48')][_0xcfd0('0x4b')]));_0x2fc6f7[_0xcfd0('0x4c')]=_0x2fc6f7[_0xcfd0('0x4c')][_0xcfd0('0x5c')]?_0x2fc6f7[_0xcfd0('0x4c')]:_0x4257f7[_0xcfd0('0x47')];if(!_0x307bc3['query']['hasOwnProperty'](_0xcfd0('0x4e'))){_0x2fc6f7['limit']=qs[_0xcfd0('0x32')](_0x307bc3[_0xcfd0('0x48')][_0xcfd0('0x32')]);_0x2fc6f7[_0xcfd0('0x2f')]=qs['offset'](_0x307bc3[_0xcfd0('0x48')][_0xcfd0('0x2f')]);}_0x2fc6f7[_0xcfd0('0x4f')]=qs[_0xcfd0('0x50')](_0x307bc3[_0xcfd0('0x48')][_0xcfd0('0x50')]);_0x2fc6f7[_0xcfd0('0x51')]=qs['filters'](_[_0xcfd0('0x52')](_0x307bc3[_0xcfd0('0x48')],_0x4257f7[_0xcfd0('0x49')]));_0x2fc6f7[_0xcfd0('0x51')][_0xcfd0('0x6b')]=_0x201e76['id'];if(_0x307bc3[_0xcfd0('0x48')][_0xcfd0('0x53')]){_0x2fc6f7['where']=_[_0xcfd0('0x54')](_0x2fc6f7[_0xcfd0('0x51')],{'$or':_['map'](_0x2fc6f7[_0xcfd0('0x4c')],function(_0x4dd94a){var _0x534d2a={};_0x534d2a[_0x4dd94a]={'$like':'%'+_0x307bc3['query'][_0xcfd0('0x53')]+'%'};return _0x534d2a;})});}_0x2fc6f7=_[_0xcfd0('0x54')]({},_0x2fc6f7,_0x307bc3[_0xcfd0('0x56')]);return db[_0xcfd0('0x6c')]['count']({'where':_0x2fc6f7['where']})[_0xcfd0('0x37')](function(_0x315a9e){_0x4ea401[_0xcfd0('0x31')]=_0x315a9e;if(_0x307bc3[_0xcfd0('0x48')][_0xcfd0('0x57')]){_0x2fc6f7[_0xcfd0('0x58')]=[{'all':!![]}];}return db['Disposition']['findAll'](_0x2fc6f7);})[_0xcfd0('0x37')](function(_0x490d03){_0x4ea401['rows']=_0x490d03;return _0x4ea401;});}})[_0xcfd0('0x37')](respondWithFilteredResult(_0x4cde79,_0x2fc6f7))[_0xcfd0('0x2a')](handleError(_0x4cde79,null));};exports[_0xcfd0('0x6f')]=function(_0x114122,_0x24b08e,_0x373e4f){return db[_0xcfd0('0x42')][_0xcfd0('0x5d')]({'where':{'id':_0x114122[_0xcfd0('0x69')]['id']}})[_0xcfd0('0x37')](handleEntityNotFound(_0x24b08e,null))[_0xcfd0('0x37')](function(_0x3dfeb5){if(_0x3dfeb5){return _0x3dfeb5[_0xcfd0('0x6f')](_0x114122[_0xcfd0('0x48')][_0xcfd0('0x70')]);}})[_0xcfd0('0x37')](respondWithStatusCode(_0x24b08e,null))[_0xcfd0('0x2a')](handleError(_0x24b08e,null));};exports[_0xcfd0('0x71')]=function(_0x137015,_0x395678,_0x447c14){if(_0x137015['body']['id']){delete _0x137015['body']['id'];}return db[_0xcfd0('0x42')][_0xcfd0('0x5d')]({'where':{'id':_0x137015['params']['id']}})[_0xcfd0('0x37')](handleEntityNotFound(_0x395678,null))[_0xcfd0('0x37')](function(_0x4936c3){if(_0x4936c3){_0x137015[_0xcfd0('0x5f')][_0xcfd0('0x6b')]=_0x4936c3['id'];return db[_0xcfd0('0x72')][_0xcfd0('0x5e')](_0x137015[_0xcfd0('0x5f')]);}})[_0xcfd0('0x37')](respondWithResult(_0x395678,null))[_0xcfd0('0x2a')](handleError(_0x395678,null));};exports['getAnswers']=function(_0x1c205f,_0x57ca90,_0x27bc0a){var _0x55caa8={'raw':![],'where':{}};var _0x10048f={};var _0x52fc0b={'count':0x0,'rows':[]};return db[_0xcfd0('0x42')][_0xcfd0('0x6e')]({'where':{'id':_0x1c205f[_0xcfd0('0x69')]['id']}})['then'](handleEntityNotFound(_0x57ca90,null))[_0xcfd0('0x37')](function(_0x3601aa){if(_0x3601aa){_0x10048f['model']=_[_0xcfd0('0x5b')](db[_0xcfd0('0x72')][_0xcfd0('0x43')]);_0x10048f[_0xcfd0('0x48')]=_[_0xcfd0('0x5b')](_0x1c205f[_0xcfd0('0x48')]);_0x10048f[_0xcfd0('0x49')]=_['intersection'](_0x10048f[_0xcfd0('0x47')],_0x10048f[_0xcfd0('0x48')]);_0x55caa8[_0xcfd0('0x4c')]=_[_0xcfd0('0x4a')](_0x10048f[_0xcfd0('0x47')],qs[_0xcfd0('0x4b')](_0x1c205f[_0xcfd0('0x48')][_0xcfd0('0x4b')]));_0x55caa8[_0xcfd0('0x4c')]=_0x55caa8['attributes'][_0xcfd0('0x5c')]?_0x55caa8[_0xcfd0('0x4c')]:_0x10048f[_0xcfd0('0x47')];if(!_0x1c205f[_0xcfd0('0x48')][_0xcfd0('0x4d')](_0xcfd0('0x4e'))){_0x55caa8['limit']=qs[_0xcfd0('0x32')](_0x1c205f['query'][_0xcfd0('0x32')]);_0x55caa8[_0xcfd0('0x2f')]=qs['offset'](_0x1c205f[_0xcfd0('0x48')]['offset']);}_0x55caa8[_0xcfd0('0x4f')]=qs[_0xcfd0('0x50')](_0x1c205f[_0xcfd0('0x48')][_0xcfd0('0x50')]);_0x55caa8[_0xcfd0('0x51')]=qs[_0xcfd0('0x49')](_['pick'](_0x1c205f[_0xcfd0('0x48')],_0x10048f[_0xcfd0('0x49')]));_0x55caa8[_0xcfd0('0x51')]['WhatsappAccountId']=_0x3601aa['id'];if(_0x1c205f[_0xcfd0('0x48')][_0xcfd0('0x53')]){_0x55caa8[_0xcfd0('0x51')]=_[_0xcfd0('0x54')](_0x55caa8['where'],{'$or':_['map'](_0x55caa8['attributes'],function(_0x9f119f){var _0x541470={};_0x541470[_0x9f119f]={'$like':'%'+_0x1c205f[_0xcfd0('0x48')][_0xcfd0('0x53')]+'%'};return _0x541470;})});}_0x55caa8=_[_0xcfd0('0x54')]({},_0x55caa8,_0x1c205f['options']);return db[_0xcfd0('0x72')][_0xcfd0('0x31')]({'where':_0x55caa8[_0xcfd0('0x51')]})[_0xcfd0('0x37')](function(_0x2b61ba){_0x52fc0b[_0xcfd0('0x31')]=_0x2b61ba;if(_0x1c205f[_0xcfd0('0x48')]['includeAll']){_0x55caa8[_0xcfd0('0x58')]=[{'all':!![]}];}return db['CannedAnswer'][_0xcfd0('0x59')](_0x55caa8);})['then'](function(_0x1336cb){_0x52fc0b['rows']=_0x1336cb;return _0x52fc0b;});}})[_0xcfd0('0x37')](respondWithFilteredResult(_0x57ca90,_0x55caa8))['catch'](handleError(_0x57ca90,null));};exports[_0xcfd0('0x73')]=function(_0x15fb01,_0x51897a,_0x5a4356){return db[_0xcfd0('0x42')][_0xcfd0('0x5d')]({'where':{'id':_0x15fb01[_0xcfd0('0x69')]['id']}})[_0xcfd0('0x37')](handleEntityNotFound(_0x51897a,null))['then'](function(_0x585f26){if(_0x585f26){return _0x585f26[_0xcfd0('0x73')](_0x15fb01[_0xcfd0('0x48')][_0xcfd0('0x70')]);}})[_0xcfd0('0x37')](respondWithStatusCode(_0x51897a,null))[_0xcfd0('0x2a')](handleError(_0x51897a,null));};exports[_0xcfd0('0x74')]=function(_0x5747ad,_0x5e0236,_0x18c21e){return db[_0xcfd0('0x42')][_0xcfd0('0x5d')]({'where':{'id':_0x5747ad[_0xcfd0('0x69')]['id']}})[_0xcfd0('0x37')](handleEntityNotFound(_0x5e0236,null))[_0xcfd0('0x37')](function(_0x23ebb5){if(_0x23ebb5){return _0x23ebb5['addAgents'](_0x5747ad[_0xcfd0('0x5f')][_0xcfd0('0x70')],_[_0xcfd0('0x75')](_0x5747ad['body'],['ids','id'])||{})[_0xcfd0('0x76')](function(_0x1e55f3){for(var _0x1351e2=0x0;_0x1351e2<_0x5747ad[_0xcfd0('0x5f')][_0xcfd0('0x70')][_0xcfd0('0x5c')];_0x1351e2+=0x1){socket[_0xcfd0('0x77')](_0xcfd0('0x78'),{'UserId':Number(_0x5747ad[_0xcfd0('0x5f')][_0xcfd0('0x70')][_0x1351e2]),'WhatsappAccountId':Number(_0x5747ad[_0xcfd0('0x69')]['id'])});}return _0x1e55f3;});}})[_0xcfd0('0x37')](respondWithResult(_0x5e0236,null))[_0xcfd0('0x2a')](handleError(_0x5e0236,null));};exports['removeAgents']=function(_0x3feb19,_0x18b3db,_0x1fa604){return db[_0xcfd0('0x42')][_0xcfd0('0x5d')]({'where':{'id':_0x3feb19[_0xcfd0('0x69')]['id']}})[_0xcfd0('0x37')](handleEntityNotFound(_0x18b3db,null))[_0xcfd0('0x37')](function(_0x42920c){if(_0x42920c){return _0x42920c[_0xcfd0('0x79')](_0x3feb19[_0xcfd0('0x48')]['ids'])['then'](function(){if(_[_0xcfd0('0x7a')](_0x3feb19[_0xcfd0('0x48')][_0xcfd0('0x70')])){for(var _0x5ac5df=0x0;_0x5ac5df<_0x3feb19[_0xcfd0('0x48')][_0xcfd0('0x70')][_0xcfd0('0x5c')];_0x5ac5df+=0x1){socket['emit'](_0xcfd0('0x7b'),{'UserId':Number(_0x3feb19['query'][_0xcfd0('0x70')][_0x5ac5df]),'WhatsappAccountId':Number(_0x3feb19['params']['id'])});}}else{socket['emit']('userWhatsappAccount:remove',{'UserId':Number(_0x3feb19[_0xcfd0('0x48')]['ids']),'WhatsappAccountId':Number(_0x3feb19['params']['id'])});}});}})['then'](respondWithStatusCode(_0x18b3db,null))[_0xcfd0('0x2a')](handleError(_0x18b3db,null));};exports['getAgents']=function(_0x4db410,_0xf804b,_0x5c64ef){var _0x4515e5={};var _0x70e9c5={};var _0x5c5ea3;var _0x2fb56b;return db[_0xcfd0('0x42')]['findOne']({'where':{'id':_0x4db410[_0xcfd0('0x69')]['id']}})[_0xcfd0('0x37')](handleEntityNotFound(_0xf804b,null))['then'](function(_0x3b055e){if(_0x3b055e){_0x5c5ea3=_0x3b055e;_0x70e9c5['model']=_[_0xcfd0('0x5b')](db[_0xcfd0('0x7c')][_0xcfd0('0x43')]);_0x70e9c5[_0xcfd0('0x48')]=_[_0xcfd0('0x5b')](_0x4db410[_0xcfd0('0x48')]);_0x70e9c5[_0xcfd0('0x49')]=_[_0xcfd0('0x4a')](_0x70e9c5[_0xcfd0('0x47')],_0x70e9c5[_0xcfd0('0x48')]);_0x4515e5['attributes']=_[_0xcfd0('0x4a')](_0x70e9c5[_0xcfd0('0x47')],qs[_0xcfd0('0x4b')](_0x4db410[_0xcfd0('0x48')]['fields']));_0x4515e5[_0xcfd0('0x4c')]=_0x4515e5['attributes'][_0xcfd0('0x5c')]?_0x4515e5[_0xcfd0('0x4c')]:_0x70e9c5[_0xcfd0('0x47')];_0x4515e5[_0xcfd0('0x4f')]=qs[_0xcfd0('0x50')](_0x4db410[_0xcfd0('0x48')][_0xcfd0('0x50')]);_0x4515e5[_0xcfd0('0x51')]=qs[_0xcfd0('0x49')](_['pick'](_0x4db410['query'],_0x70e9c5[_0xcfd0('0x49')]));if(_0x4db410[_0xcfd0('0x48')][_0xcfd0('0x53')]){_0x4515e5[_0xcfd0('0x51')]=_['merge'](_0x4515e5[_0xcfd0('0x51')],{'$or':_[_0xcfd0('0x41')](_0x4515e5[_0xcfd0('0x4c')],function(_0x34c5ae){var _0x57ef37={};_0x57ef37[_0x34c5ae]={'$like':'%'+_0x4db410[_0xcfd0('0x48')][_0xcfd0('0x53')]+'%'};return _0x57ef37;})});}_0x4515e5=_[_0xcfd0('0x54')]({},_0x4515e5,_0x4db410[_0xcfd0('0x56')]);return _0x5c5ea3[_0xcfd0('0x7d')](_0x4515e5);}})['then'](function(_0x9abdcf){if(_0x9abdcf){_0x2fb56b=_0x9abdcf[_0xcfd0('0x5c')];if(!_0x4db410[_0xcfd0('0x48')]['hasOwnProperty'](_0xcfd0('0x4e'))){_0x4515e5[_0xcfd0('0x32')]=qs['limit'](_0x4db410[_0xcfd0('0x48')]['limit']);_0x4515e5[_0xcfd0('0x2f')]=qs[_0xcfd0('0x2f')](_0x4db410[_0xcfd0('0x48')][_0xcfd0('0x2f')]);}return _0x5c5ea3[_0xcfd0('0x7d')](_0x4515e5);}})[_0xcfd0('0x37')](function(_0x41796a){if(_0x41796a){return _0x41796a?{'count':_0x2fb56b,'rows':_0x41796a}:null;}})[_0xcfd0('0x37')](respondWithResult(_0xf804b,null))['catch'](handleError(_0xf804b,null));};exports['addApplications']=function(_0x111d73,_0x5d109c,_0x218d0a){return db['WhatsappAccount'][_0xcfd0('0x6e')]({'where':{'id':_0x111d73['params']['id']}})['then'](handleEntityNotFound(_0x5d109c,null))[_0xcfd0('0x37')](function(_0x50c2c7){if(_0x50c2c7){return db[_0xcfd0('0x7e')]['transaction'](function(_0x5d85be){return db['WhatsappApplication'][_0xcfd0('0x38')]({'where':{'WhatsappAccountId':_0x111d73[_0xcfd0('0x69')]['id']},'transaction':_0x5d85be})['then'](function(_0x4d87b6){var _0x557d49=_[_0xcfd0('0x41')](_0x111d73[_0xcfd0('0x5f')],function(_0x11d5ef){_0x11d5ef['WhatsappAccountId']=_0x111d73[_0xcfd0('0x69')]['id'];return _0x11d5ef;});return db[_0xcfd0('0x7f')][_0xcfd0('0x80')](_0x557d49,{'transaction':_0x5d85be});});})['then'](function(){return db['WhatsappApplication']['findAndCountAll']({'where':{'WhatsappAccountId':_0x111d73[_0xcfd0('0x69')]['id']},'order':_0xcfd0('0x81')});});}})[_0xcfd0('0x37')](respondWithResult(_0x5d109c,null))[_0xcfd0('0x2a')](handleError(_0x5d109c,null));};exports[_0xcfd0('0x82')]=function(_0x379154,_0x5b2a53,_0x43d28a){var _0x1f9cfa={};var _0x39e8aa={};var _0x191cda;var _0x18881e;return db[_0xcfd0('0x42')][_0xcfd0('0x6e')]({'where':{'id':_0x379154['params']['id']}})[_0xcfd0('0x37')](handleEntityNotFound(_0x5b2a53,null))[_0xcfd0('0x37')](function(_0x1c2598){if(_0x1c2598){_0x191cda=_0x1c2598;_0x39e8aa[_0xcfd0('0x47')]=_[_0xcfd0('0x5b')](db['WhatsappApplication'][_0xcfd0('0x43')]);_0x39e8aa[_0xcfd0('0x48')]=_[_0xcfd0('0x5b')](_0x379154[_0xcfd0('0x48')]);_0x39e8aa[_0xcfd0('0x49')]=_[_0xcfd0('0x4a')](_0x39e8aa[_0xcfd0('0x47')],_0x39e8aa[_0xcfd0('0x48')]);_0x1f9cfa['attributes']=_[_0xcfd0('0x4a')](_0x39e8aa[_0xcfd0('0x47')],qs['fields'](_0x379154['query'][_0xcfd0('0x4b')]));_0x1f9cfa['attributes']=_0x1f9cfa[_0xcfd0('0x4c')][_0xcfd0('0x5c')]?_0x1f9cfa[_0xcfd0('0x4c')]:_0x39e8aa[_0xcfd0('0x47')];_0x1f9cfa[_0xcfd0('0x4f')]=qs[_0xcfd0('0x50')](_0x379154[_0xcfd0('0x48')]['sort']);_0x1f9cfa[_0xcfd0('0x51')]=qs[_0xcfd0('0x49')](_[_0xcfd0('0x52')](_0x379154[_0xcfd0('0x48')],_0x39e8aa['filters']));if(_0x379154[_0xcfd0('0x48')][_0xcfd0('0x53')]){_0x1f9cfa[_0xcfd0('0x51')]=_[_0xcfd0('0x54')](_0x1f9cfa[_0xcfd0('0x51')],{'$or':_['map'](_0x1f9cfa[_0xcfd0('0x4c')],function(_0x11455f){var _0x544b15={};_0x544b15[_0x11455f]={'$like':'%'+_0x379154[_0xcfd0('0x48')][_0xcfd0('0x53')]+'%'};return _0x544b15;})});}_0x1f9cfa=_[_0xcfd0('0x54')]({},_0x1f9cfa,_0x379154['options']);return _0x191cda[_0xcfd0('0x82')](_0x1f9cfa);}})[_0xcfd0('0x37')](function(_0x472961){if(_0x472961){_0x18881e=_0x472961['length'];if(!_0x379154[_0xcfd0('0x48')][_0xcfd0('0x4d')](_0xcfd0('0x4e'))){_0x1f9cfa['limit']=qs[_0xcfd0('0x32')](_0x379154[_0xcfd0('0x48')][_0xcfd0('0x32')]);_0x1f9cfa[_0xcfd0('0x2f')]=qs[_0xcfd0('0x2f')](_0x379154[_0xcfd0('0x48')][_0xcfd0('0x2f')]);}return _0x191cda[_0xcfd0('0x82')](_0x1f9cfa);}})[_0xcfd0('0x37')](function(_0x3ec781){if(_0x3ec781){return _0x3ec781?{'count':_0x18881e,'rows':_0x3ec781}:null;}})[_0xcfd0('0x37')](respondWithResult(_0x5b2a53,null))['catch'](handleError(_0x5b2a53,null));};exports['notify']=function(_0x53a1a3,_0xc491ac,_0x381dc1){var _0xa47209={'channel':_0xcfd0('0x83')};var _0x419d88=[];var _0x5b2335=[];var _0x2c68e8={};return db[_0xcfd0('0x42')][_0xcfd0('0x5d')]({'where':{'id':_0x53a1a3[_0xcfd0('0x69')]['id']},'include':[{'model':db['WhatsappApplication'],'as':_0xcfd0('0x84')}]})[_0xcfd0('0x37')](handleEntityNotFound(_0xc491ac,null))[_0xcfd0('0x37')](function(_0x2200db){_0xa47209[_0xcfd0('0x85')]=_0x2200db;_0xa47209[_0xcfd0('0x86')]=_['orderBy'](_0x2200db[_0xcfd0('0x84')],['priority'],['asc']);if(_0xa47209[_0xcfd0('0x85')][_0xcfd0('0x84')]){delete _0xa47209[_0xcfd0('0x85')]['Applications'];}return db['CmContact'][_0xcfd0('0x6a')]();})['then'](function(_0x4e1c24){if(!_0x4e1c24){throw new db['Sequelize'][(_0xcfd0('0x87'))](_0xcfd0('0x88'));}_0x419d88=_['difference'](_['keys'](_0x4e1c24),[_0xcfd0('0x89'),_0xcfd0('0x8a')]);_0x5b2335=_[_0xcfd0('0x8b')](_[_0xcfd0('0x5b')](_0x4e1c24),[_0xcfd0('0x89'),_0xcfd0('0x8a'),_0xcfd0('0x8c'),_0xcfd0('0x8d')]);_0xa47209[_0xcfd0('0x5f')]={'mapKey':_0xcfd0('0x8e')};if(_0xa47209['account']['type']&&_0xa47209[_0xcfd0('0x85')][_0xcfd0('0x45')]===_0xcfd0('0x8f')){_0xa47209[_0xcfd0('0x5f')][_0xcfd0('0x90')]=_0x53a1a3[_0xcfd0('0x5f')]['From'][_0xcfd0('0x91')](_0xcfd0('0x92'),'');_0xa47209['body'][_0xcfd0('0x5f')]=_0x53a1a3[_0xcfd0('0x5f')][_0xcfd0('0x93')];_0xa47209[_0xcfd0('0x5f')][_0xcfd0('0x94')]=_0x53a1a3[_0xcfd0('0x5f')][_0xcfd0('0x95')];}if(_0xa47209[_0xcfd0('0x5f')]['id']){delete _0xa47209[_0xcfd0('0x5f')]['id'];}if(_[_0xcfd0('0x96')](_0xa47209[_0xcfd0('0x5f')][_0xcfd0('0x90')])){throw new db[(_0xcfd0('0x97'))]['ValidationError'](_0xcfd0('0x98'));}if(_['isNil'](_0xa47209[_0xcfd0('0x5f')]['body'])||_0xa47209[_0xcfd0('0x5f')]['body']===''){throw new db[(_0xcfd0('0x97'))][(_0xcfd0('0x87'))](_0xcfd0('0x99'));}if(_[_0xcfd0('0x96')](_0xa47209[_0xcfd0('0x5f')][_0xcfd0('0x9a')])){throw new db[(_0xcfd0('0x97'))]['ValidationError'](_0xcfd0('0x9b')+_0x5b2335);}if(!_[_0xcfd0('0x9c')](_0x5b2335,_0xa47209[_0xcfd0('0x5f')][_0xcfd0('0x9a')])){throw new db[(_0xcfd0('0x97'))]['ValidationError'](_0xcfd0('0x9d')+_0x5b2335);}_0x2c68e8[_0xa47209[_0xcfd0('0x5f')][_0xcfd0('0x9a')]]=_0xa47209[_0xcfd0('0x5f')][_0xcfd0('0x90')];return db['CmList'][_0xcfd0('0x5d')]({'where':{'id':_0xa47209[_0xcfd0('0x85')][_0xcfd0('0x8d')]},'include':[{'model':db[_0xcfd0('0x9e')],'as':_0xcfd0('0x9f'),'where':_0x2c68e8,'limit':0x1,'order':[['updatedAt','DESC']]}]});})['then'](handleEntityNotFound(_0xc491ac,null))[_0xcfd0('0x37')](function(_0x19c5f4){if(_0x19c5f4){_0xa47209[_0xcfd0('0xa0')]=_[_0xcfd0('0x75')](_0x19c5f4,[_0xcfd0('0x9f')]);if(_0x19c5f4[_0xcfd0('0x9f')][_0xcfd0('0x5c')]){return _0x19c5f4[_0xcfd0('0x9f')][0x0];}var _0x176397=_[_0xcfd0('0x19')](_0xa47209[_0xcfd0('0x5f')],{'firstName':_0xa47209[_0xcfd0('0x5f')][_0xcfd0('0x90')],'ListId':_0x19c5f4['id']});_0x176397[_0xa47209['body'][_0xcfd0('0x9a')]]=_0xa47209[_0xcfd0('0x5f')][_0xcfd0('0x90')];return db[_0xcfd0('0x9e')][_0xcfd0('0x5e')](_0x176397,{'fields':_0x419d88,'raw':!![]});}})[_0xcfd0('0x37')](handleEntityNotFound(_0xc491ac,null))[_0xcfd0('0x37')](function(_0x47f6be){if(_0x47f6be){_0xa47209[_0xcfd0('0xa1')]=_0x47f6be;var _0x3ebef1={'ContactId':_0x47f6be['id'],'phone':_0xa47209[_0xcfd0('0x5f')][_0xcfd0('0x90')],'WhatsappAccountId':_0x53a1a3['params']['id']};var _0x2f36f5={'ContactId':_0x47f6be['id'],'WhatsappAccountId':_0x53a1a3[_0xcfd0('0x69')]['id'],'closed':![]};return db[_0xcfd0('0xa2')][_0xcfd0('0x5d')]({'where':_0x2f36f5})['then'](function(_0x2e1489){if(_0x2e1489){return[_0x2e1489,![]];}return db[_0xcfd0('0xa2')][_0xcfd0('0x5e')](_0x3ebef1)[_0xcfd0('0x37')](function(_0x247034){return[_0x247034,!![]];});});}})['spread'](function(_0x5f2cd0,_0x426514){_0xa47209[_0xcfd0('0xa3')]=_0x5f2cd0[_0xcfd0('0x39')]({'plain':!![]});_0xa47209[_0xcfd0('0xa3')]['created']=![];if(_0x426514){if(_0xa47209[_0xcfd0('0x85')]['autoclose']){_0xa47209['applications'][_0xcfd0('0xa4')]({'id':0x0,'priority':_0xa47209['applications']['length']+0x1,'app':_0xcfd0('0xa5'),'appdata':'unmanaged','interval':_0xcfd0('0xa6')});}_0xa47209[_0xcfd0('0xa3')][_0xcfd0('0xa7')]=!![];}return db[_0xcfd0('0xa8')][_0xcfd0('0x5e')]({'phone':_0xa47209[_0xcfd0('0x5f')]['from'],'messageId':_0xa47209[_0xcfd0('0x5f')][_0xcfd0('0x94')],'body':_0xa47209[_0xcfd0('0x5f')][_0xcfd0('0x5f')],'WhatsappAccountId':_0x53a1a3[_0xcfd0('0x69')]['id'],'WhatsappInteractionId':_0x5f2cd0['id'],'direction':'in','ContactId':_0x5f2cd0[_0xcfd0('0xa9')],'AttachmentId':_0xa47209[_0xcfd0('0x5f')][_0xcfd0('0xaa')]});})[_0xcfd0('0x37')](function(_0x5e9c36){_0xa47209['message']=_0x5e9c36;if(_0xa47209[_0xcfd0('0xa3')][_0xcfd0('0xab')]){return db[_0xcfd0('0x7c')][_0xcfd0('0x5d')]({'attributes':['id','name'],'where':{'id':_0xa47209[_0xcfd0('0xa3')][_0xcfd0('0xab')]}})[_0xcfd0('0x37')](function(_0x202e07){if(_0x202e07){_0xa47209[_0xcfd0('0x86')][_0xcfd0('0xac')]({'id':0x0,'priority':0x0,'app':_0xcfd0('0xad'),'appdata':_0x202e07[_0xcfd0('0x3c')]+','+(_0xa47209['account'][_0xcfd0('0xae')]||0xa),'interval':_0xcfd0('0xa6')});}return respondWithRpcPromise(_0xcfd0('0xaf'),_0xcfd0('0xb0'),_0xa47209);});}return respondWithRpcPromise(_0xcfd0('0xaf'),_0xcfd0('0xb0'),_0xa47209);})[_0xcfd0('0x37')](function(_0x10d0da){if(_0x10d0da){var _0xfdf6f8=0xc8;var _0x2200aa='receiveMessage';logger[_0xcfd0('0x21')](_0xcfd0('0xb1'),_0x2200aa,_0xfdf6f8,_0xcfd0('0xb2'));logger[_0xcfd0('0x24')](_0xcfd0('0xb3'),_0x2200aa,_0xfdf6f8,_0xcfd0('0xb2'),JSON[_0xcfd0('0x25')](_0x10d0da));if(_0xa47209[_0xcfd0('0x85')][_0xcfd0('0x45')]==='twilio'){return _0xc491ac[_0xcfd0('0x2c')](_0xfdf6f8)[_0xcfd0('0x33')](_0xcfd0('0xb4'),'text/xml')[_0xcfd0('0x3d')](_0xcfd0('0xb5'));}else{return _0xc491ac[_0xcfd0('0x2c')](_0xfdf6f8)[_0xcfd0('0x2e')](_0x10d0da);}}})[_0xcfd0('0x2a')](handleError(_0xc491ac,null));};exports[_0xcfd0('0x3d')]=function(_0x2e2fa5,_0x22d62d,_0x1f95c9){var _0x509da8,_0x22a77b,_0x19dfbf;if(_[_0xcfd0('0x96')](_0x2e2fa5['body'][_0xcfd0('0x5f')])||_0x2e2fa5[_0xcfd0('0x5f')][_0xcfd0('0x5f')]===''){throw new db['Sequelize'][(_0xcfd0('0x87'))]('body\x20is\x20mandatory\x20and\x20not\x20empty');}if(_['isNil'](_0x2e2fa5[_0xcfd0('0x5f')]['to'])){throw new db['Sequelize'][(_0xcfd0('0x87'))]('to\x20is\x20mandatory');}_0x509da8=_0x2e2fa5[_0xcfd0('0x5f')]['to'];return db[_0xcfd0('0x42')][_0xcfd0('0x5d')]({'where':{'id':_0x2e2fa5[_0xcfd0('0x69')]['id']},'include':[{'model':db[_0xcfd0('0xb6')],'as':'List','include':[{'model':db[_0xcfd0('0x9e')],'as':'Contacts','where':{'mobile':_0x509da8},'limit':0x1,'order':[[_0xcfd0('0x8a'),'DESC']]}]}]})['then'](handleEntityNotFound(_0x22d62d,null))[_0xcfd0('0x37')](function(_0x18ec7a){if(_0x18ec7a&&_0x18ec7a[_0xcfd0('0xb7')]){_0x22a77b=_0x18ec7a[_0xcfd0('0x39')]({'plain':!![]});if(_0x22a77b[_0xcfd0('0xb7')]&&_0x22a77b[_0xcfd0('0xb7')][_0xcfd0('0x9f')][_0xcfd0('0x5c')]){return _0x22a77b['List']['Contacts'][0x0];}return db[_0xcfd0('0x9e')][_0xcfd0('0x5e')](_[_0xcfd0('0x19')](_0x2e2fa5[_0xcfd0('0x5f')],{'firstName':_0x509da8,'mobile':_0x509da8,'phone':_0x509da8,'ListId':_0x22a77b[_0xcfd0('0x8d')]}));}})[_0xcfd0('0x37')](handleEntityNotFound(_0x22d62d,null))[_0xcfd0('0x37')](function(_0x26c74d){if(_0x26c74d){_0x19dfbf=_0x26c74d;return db['WhatsappInteraction'][_0xcfd0('0x5d')]({'where':{'ContactId':_0x19dfbf['id'],'closed':![],'WhatsappAccountId':_0x22a77b['id']}})['then'](function(_0x14ea58){if(_0x14ea58){return[_0x14ea58,![]];}return db[_0xcfd0('0xa2')]['create']({'UserId':_0x2e2fa5[_0xcfd0('0x60')]['id'],'ContactId':_0x19dfbf['id'],'WhatsappAccountId':_0x22a77b['id'],'phone':_0x509da8,'firstMsgDirection':'out','Messages':[_[_0xcfd0('0x54')](_0x2e2fa5[_0xcfd0('0x5f')],{'read':![],'body':_0x2e2fa5[_0xcfd0('0x5f')][_0xcfd0('0x5f')],'phone':_0x509da8,'WhatsappAccountId':_0x22a77b['id'],'UserId':_0x2e2fa5[_0xcfd0('0x60')]['id'],'ContactId':_0x19dfbf['id']})]},{'include':[{'model':db[_0xcfd0('0xa8')],'as':_0xcfd0('0xb8')}]})[_0xcfd0('0x37')](function(_0x18d8ae){return[_0x18d8ae,!![]];});});}})['spread'](function(_0x36f598,_0x295072){if(_0x295072){return _0x36f598;}return db[_0xcfd0('0xa8')][_0xcfd0('0x5e')](_[_0xcfd0('0x54')](_0x2e2fa5[_0xcfd0('0x5f')],{'read':![],'body':_0x2e2fa5[_0xcfd0('0x5f')][_0xcfd0('0x5f')],'phone':_0x509da8,'WhatsappAccountId':_0x22a77b['id'],'WhatsappInteractionId':_0x36f598['id'],'UserId':_0x2e2fa5[_0xcfd0('0x60')]['id'],'ContactId':_0x19dfbf['id']}))[_0xcfd0('0x37')](function(_0x182363){_0x36f598[_0xcfd0('0xb9')]['Messages']=[];_0x36f598[_0xcfd0('0xb9')][_0xcfd0('0xb8')][_0xcfd0('0xa4')](_0x182363[_0xcfd0('0xb9')]);return _0x36f598;});})[_0xcfd0('0x37')](respondWithResult(_0x22d62d,null))['catch'](handleError(_0x22d62d,null));};
\ No newline at end of file
+var _0x9d37=['fieldName','type','key','model','query','filters','intersection','fields','attributes','length','limit','order','sort','where','pick','filter','VIRTUAL','merge','options','includeAll','include','findAll','rows','params','keys','create','user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','find','describe','addDisposition','WhatsappAccountId','Disposition','getDispositions','findOne','hasOwnProperty','nolimit','removeDispositions','ids','addAnswer','CannedAnswer','getAnswers','removeAnswers','addAgents','omit','spread','removeAgents','isArray','userWhatsappAccount:remove','emit','User','getAgents','sequelize','transaction','WhatsappApplication','bulkCreate','priority','getApplications','notify','whatsapp','Applications','applications','orderBy','asc','Sequelize','no\x20available\x20attributes','difference','updatedAt','createdAt','ListId','mobile','account','twilio','from','From','whatsapp:','Body','messageId','MessageSid','isNil','ValidationError','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','CmList','Contacts','list','defaults','CmContact','interaction','created','close','WhatsappMessage','ContactId','AttachmentId','UserId','agent','waitForTheAssignedAgent','*,*,*,*','Start','startRouting','receiveMessage','entity\x20found','debug','WhatsappAccount,\x20%s,\x20%s,\x20%s,\x20%s','stringify','Content-Type','text/xml','<?xml\x20version=\x221.0\x22\x20encoding=\x22UTF-8\x22?>\x0a<Response></Response>','to\x20is\x20mandatory','List','DESC','WhatsappInteraction','out','Messages','push','dataValues','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','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','../../mysqldb','redis','localhost','socket.io-emitter','./whatsappAccount.socket','register','jayson/promise','client','request','info','WhatsappAccount,\x20%s,\x20%s','request\x20sent','WhatsappAccount,\x20%s,\x20%s,\x20%s','error','code','message','result','catch','status','end','json','offset','undefined','count','set','Content-Range','apply','reject','save','update','then','destroy','get','WhatsappAccounts','UserProfileResource','sendStatus','stack','name','send','index','Pause','mandatoryDispositionPause','map','WhatsappAccount','rawAttributes'];(function(_0x3df1ca,_0x49fb2a){var _0x5e7db8=function(_0x5aad74){while(--_0x5aad74){_0x3df1ca['push'](_0x3df1ca['shift']());}};_0x5e7db8(++_0x49fb2a);}(_0x9d37,0x13c));var _0x79d3=function(_0x556ea6,_0x207d38){_0x556ea6=_0x556ea6-0x0;var _0x543ac5=_0x9d37[_0x556ea6];return _0x543ac5;};'use strict';var emlformat=require(_0x79d3('0x0'));var rimraf=require(_0x79d3('0x1'));var zipdir=require(_0x79d3('0x2'));var jsonpatch=require(_0x79d3('0x3'));var rp=require(_0x79d3('0x4'));var moment=require(_0x79d3('0x5'));var BPromise=require(_0x79d3('0x6'));var Mustache=require('mustache');var util=require(_0x79d3('0x7'));var path=require(_0x79d3('0x8'));var sox=require(_0x79d3('0x9'));var csv=require(_0x79d3('0xa'));var ejs=require(_0x79d3('0xb'));var fs=require('fs');var fs_extra=require(_0x79d3('0xc'));var _=require(_0x79d3('0xd'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x79d3('0xe'));var deskjs=require(_0x79d3('0xf'));var toCsv=require('to-csv');var querystring=require(_0x79d3('0x10'));var Papa=require(_0x79d3('0x11'));var Redis=require(_0x79d3('0x12'));var authService=require(_0x79d3('0x13'));var qs=require(_0x79d3('0x14'));var as=require(_0x79d3('0x15'));var hardwareService=require(_0x79d3('0x16'));var logger=require(_0x79d3('0x17'))(_0x79d3('0x18'));var utils=require(_0x79d3('0x19'));var config=require(_0x79d3('0x1a'));var licenseUtil=require('../../config/license/util');var db=require(_0x79d3('0x1b'))['db'];config[_0x79d3('0x1c')]=_['defaults'](config[_0x79d3('0x1c')],{'host':_0x79d3('0x1d'),'port':0x18eb});var socket=require(_0x79d3('0x1e'))(new Redis(config['redis']));require(_0x79d3('0x1f'))[_0x79d3('0x20')](socket);var jayson=require(_0x79d3('0x21'));var client=jayson[_0x79d3('0x22')]['http']({'port':0x232c});function respondWithRpcPromise(_0x15d063,_0x2d83df,_0x5d5fc7,_0x3ba99a){return new BPromise(function(_0x13d488,_0x1baf7a){var _0x18273f=_0x3ba99a||client;return _0x18273f[_0x79d3('0x23')](_0x15d063,_0x5d5fc7)['then'](function(_0x4f18e4){logger[_0x79d3('0x24')](_0x79d3('0x25'),_0x2d83df,_0x79d3('0x26'));logger['debug'](_0x79d3('0x27'),_0x2d83df,_0x79d3('0x26'),JSON['stringify'](_0x4f18e4));if(_0x4f18e4[_0x79d3('0x28')]){if(_0x4f18e4['error'][_0x79d3('0x29')]===0x1f4){logger[_0x79d3('0x28')](_0x79d3('0x25'),_0x2d83df,_0x4f18e4[_0x79d3('0x28')][_0x79d3('0x2a')]);return _0x1baf7a(_0x4f18e4[_0x79d3('0x28')][_0x79d3('0x2a')]);}logger['error'](_0x79d3('0x25'),_0x2d83df,_0x4f18e4[_0x79d3('0x28')]['message']);return _0x13d488(_0x4f18e4['error'][_0x79d3('0x2a')]);}else{logger[_0x79d3('0x24')](_0x79d3('0x25'),_0x2d83df,'request\x20sent');_0x13d488(_0x4f18e4[_0x79d3('0x2b')][_0x79d3('0x2a')]);}})[_0x79d3('0x2c')](function(_0x1f45e2){logger['error']('WhatsappAccount,\x20%s,\x20%s',_0x2d83df,_0x1f45e2);_0x1baf7a(_0x1f45e2);});});}function respondWithStatusCode(_0xd0c48d,_0x1868bf){_0x1868bf=_0x1868bf||0xcc;return function(_0x5d6073){if(_0x5d6073){return _0xd0c48d['sendStatus'](_0x1868bf);}return _0xd0c48d[_0x79d3('0x2d')](_0x1868bf)[_0x79d3('0x2e')]();};}function respondWithResult(_0x40e892,_0x3c3aa0){_0x3c3aa0=_0x3c3aa0||0xc8;return function(_0x4a9e5a){if(_0x4a9e5a){return _0x40e892[_0x79d3('0x2d')](_0x3c3aa0)[_0x79d3('0x2f')](_0x4a9e5a);}};}function respondWithFilteredResult(_0x3daa9a,_0x34d15b){return function(_0x33eb6b){if(_0x33eb6b){var _0x2f4ee7=typeof _0x34d15b[_0x79d3('0x30')]===_0x79d3('0x31')&&typeof _0x34d15b['limit']===_0x79d3('0x31');var _0x709e77=_0x33eb6b[_0x79d3('0x32')];var _0x2122c2=_0x2f4ee7?0x0:_0x34d15b[_0x79d3('0x30')];var _0xeb9a9f=_0x2f4ee7?_0x33eb6b[_0x79d3('0x32')]:_0x34d15b['offset']+_0x34d15b['limit'];var _0x332331;if(_0xeb9a9f>=_0x709e77){_0xeb9a9f=_0x709e77;_0x332331=0xc8;}else{_0x332331=0xce;}_0x3daa9a['status'](_0x332331);return _0x3daa9a[_0x79d3('0x33')](_0x79d3('0x34'),_0x2122c2+'-'+_0xeb9a9f+'/'+_0x709e77)['json'](_0x33eb6b);}return null;};}function patchUpdates(_0x6eb597){return function(_0x1af7c9){try{jsonpatch[_0x79d3('0x35')](_0x1af7c9,_0x6eb597,!![]);}catch(_0x5dfb90){return BPromise[_0x79d3('0x36')](_0x5dfb90);}return _0x1af7c9[_0x79d3('0x37')]();};}function saveUpdates(_0x902246,_0x1ec60b){return function(_0xeff9b1){if(_0xeff9b1){return _0xeff9b1[_0x79d3('0x38')](_0x902246)[_0x79d3('0x39')](function(_0x15fa58){return _0x15fa58;});}return null;};}function removeEntity(_0x2f113c,_0xacc032){return function(_0x47f17c){if(_0x47f17c){return _0x47f17c[_0x79d3('0x3a')]()['then'](function(){var _0x4c21b8=_0x47f17c[_0x79d3('0x3b')]({'plain':!![]});var _0x5c79c9=_0x79d3('0x3c');return db[_0x79d3('0x3d')]['destroy']({'where':{'type':_0x5c79c9,'resourceId':_0x4c21b8['id']}})[_0x79d3('0x39')](function(){return _0x47f17c;});})['then'](function(){_0x2f113c[_0x79d3('0x2d')](0xcc)[_0x79d3('0x2e')]();});}};}function handleEntityNotFound(_0x4131ea,_0xb76e5d){return function(_0x25f0d6){if(!_0x25f0d6){_0x4131ea[_0x79d3('0x3e')](0x194);}return _0x25f0d6;};}function handleError(_0xced528,_0x19c506){_0x19c506=_0x19c506||0x1f4;return function(_0x2a37a1){logger[_0x79d3('0x28')](_0x2a37a1[_0x79d3('0x3f')]);if(_0x2a37a1[_0x79d3('0x40')]){delete _0x2a37a1[_0x79d3('0x40')];}_0xced528[_0x79d3('0x2d')](_0x19c506)[_0x79d3('0x41')](_0x2a37a1);};}exports[_0x79d3('0x42')]=function(_0x5d61cf,_0x2bbdcd){var _0x4448a5={'include':[{'model':db[_0x79d3('0x43')],'as':_0x79d3('0x44')}]},_0x1cca44={},_0x1e2520={'count':0x0,'rows':[]};var _0x49d1bc=_[_0x79d3('0x45')](db[_0x79d3('0x46')][_0x79d3('0x47')],function(_0x24f024){return{'name':_0x24f024[_0x79d3('0x48')],'type':_0x24f024[_0x79d3('0x49')][_0x79d3('0x4a')]};});_0x1cca44[_0x79d3('0x4b')]=_['map'](_0x49d1bc,_0x79d3('0x40'));_0x1cca44['query']=_['keys'](_0x5d61cf[_0x79d3('0x4c')]);_0x1cca44[_0x79d3('0x4d')]=_[_0x79d3('0x4e')](_0x1cca44[_0x79d3('0x4b')],_0x1cca44[_0x79d3('0x4c')]);_0x4448a5['attributes']=_['intersection'](_0x1cca44[_0x79d3('0x4b')],qs[_0x79d3('0x4f')](_0x5d61cf['query'][_0x79d3('0x4f')]));_0x4448a5[_0x79d3('0x50')]=_0x4448a5['attributes'][_0x79d3('0x51')]?_0x4448a5[_0x79d3('0x50')]:_0x1cca44[_0x79d3('0x4b')];if(!_0x5d61cf[_0x79d3('0x4c')]['hasOwnProperty']('nolimit')){_0x4448a5[_0x79d3('0x52')]=qs[_0x79d3('0x52')](_0x5d61cf[_0x79d3('0x4c')][_0x79d3('0x52')]);_0x4448a5['offset']=qs[_0x79d3('0x30')](_0x5d61cf[_0x79d3('0x4c')]['offset']);}_0x4448a5[_0x79d3('0x53')]=qs[_0x79d3('0x54')](_0x5d61cf[_0x79d3('0x4c')][_0x79d3('0x54')]);_0x4448a5[_0x79d3('0x55')]=qs[_0x79d3('0x4d')](_[_0x79d3('0x56')](_0x5d61cf[_0x79d3('0x4c')],_0x1cca44[_0x79d3('0x4d')]),_0x49d1bc);if(_0x5d61cf[_0x79d3('0x4c')][_0x79d3('0x57')]){_0x4448a5[_0x79d3('0x55')]=_['merge'](_0x4448a5[_0x79d3('0x55')],{'$or':_[_0x79d3('0x45')](_0x49d1bc,function(_0xbeea8f){if(_0xbeea8f[_0x79d3('0x49')]!==_0x79d3('0x58')){var _0x402726={};_0x402726[_0xbeea8f[_0x79d3('0x40')]]={'$like':'%'+_0x5d61cf[_0x79d3('0x4c')][_0x79d3('0x57')]+'%'};return _0x402726;}})});}_0x4448a5=_[_0x79d3('0x59')]({},_0x4448a5,_0x5d61cf[_0x79d3('0x5a')]);var _0x34a209={'where':_0x4448a5[_0x79d3('0x55')]};return db[_0x79d3('0x46')]['count'](_0x34a209)[_0x79d3('0x39')](function(_0x554a24){_0x1e2520[_0x79d3('0x32')]=_0x554a24;if(_0x5d61cf[_0x79d3('0x4c')][_0x79d3('0x5b')]){_0x4448a5[_0x79d3('0x5c')]=[{'all':!![]}];}return db[_0x79d3('0x46')][_0x79d3('0x5d')](_0x4448a5);})['then'](function(_0x272e8d){_0x1e2520[_0x79d3('0x5e')]=_0x272e8d;return _0x1e2520;})[_0x79d3('0x39')](respondWithFilteredResult(_0x2bbdcd,_0x4448a5))[_0x79d3('0x2c')](handleError(_0x2bbdcd,null));};exports['show']=function(_0x130ca8,_0x383e6e){var _0x49c199={'raw':![],'where':{'id':_0x130ca8[_0x79d3('0x5f')]['id']},'include':[{'model':db[_0x79d3('0x43')],'as':'mandatoryDispositionPause'}]},_0x404f61={};_0x404f61[_0x79d3('0x4b')]=_[_0x79d3('0x60')](db[_0x79d3('0x46')][_0x79d3('0x47')]);_0x404f61[_0x79d3('0x4c')]=_[_0x79d3('0x60')](_0x130ca8[_0x79d3('0x4c')]);_0x404f61[_0x79d3('0x4d')]=_[_0x79d3('0x4e')](_0x404f61[_0x79d3('0x4b')],_0x404f61[_0x79d3('0x4c')]);_0x49c199[_0x79d3('0x50')]=_[_0x79d3('0x4e')](_0x404f61[_0x79d3('0x4b')],qs['fields'](_0x130ca8[_0x79d3('0x4c')]['fields']));_0x49c199[_0x79d3('0x50')]=_0x49c199[_0x79d3('0x50')]['length']?_0x49c199[_0x79d3('0x50')]:_0x404f61[_0x79d3('0x4b')];if(_0x130ca8[_0x79d3('0x4c')]['includeAll']){_0x49c199[_0x79d3('0x5c')]=[{'all':!![]}];}_0x49c199=_['merge']({},_0x49c199,_0x130ca8[_0x79d3('0x5a')]);return db[_0x79d3('0x46')]['find'](_0x49c199)[_0x79d3('0x39')](handleEntityNotFound(_0x383e6e,null))['then'](respondWithResult(_0x383e6e,null))[_0x79d3('0x2c')](handleError(_0x383e6e,null));};exports[_0x79d3('0x61')]=function(_0x37bd60,_0x611af1){return db['WhatsappAccount'][_0x79d3('0x61')](_0x37bd60['body'],{})[_0x79d3('0x39')](function(_0x26046e){var _0x3f2d73=_0x37bd60[_0x79d3('0x62')][_0x79d3('0x3b')]({'plain':!![]});if(!_0x3f2d73)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x3f2d73[_0x79d3('0x63')]==='user'){var _0x34e634=_0x26046e[_0x79d3('0x3b')]({'plain':!![]});var _0x25cbec=_0x79d3('0x3c');return db[_0x79d3('0x64')]['find']({'where':{'name':_0x25cbec,'userProfileId':_0x3f2d73[_0x79d3('0x65')]},'raw':!![]})[_0x79d3('0x39')](function(_0x24911f){if(_0x24911f&&_0x24911f[_0x79d3('0x66')]===0x0){return db['UserProfileResource'][_0x79d3('0x61')]({'name':_0x34e634['name'],'resourceId':_0x34e634['id'],'type':_0x24911f[_0x79d3('0x40')],'sectionId':_0x24911f['id']},{})[_0x79d3('0x39')](function(){return _0x26046e;});}else{return _0x26046e;}})[_0x79d3('0x2c')](function(_0x4b07be){logger[_0x79d3('0x28')](_0x79d3('0x67'),_0x4b07be);throw _0x4b07be;});}return _0x26046e;})[_0x79d3('0x39')](respondWithResult(_0x611af1,0xc9))[_0x79d3('0x2c')](handleError(_0x611af1,null));};exports['update']=function(_0x1168cf,_0x2f171a){if(_0x1168cf[_0x79d3('0x68')]['id']){delete _0x1168cf[_0x79d3('0x68')]['id'];}return db[_0x79d3('0x46')]['find']({'where':{'id':_0x1168cf[_0x79d3('0x5f')]['id']},'include':[{'model':db[_0x79d3('0x43')],'as':_0x79d3('0x44')}]})['then'](handleEntityNotFound(_0x2f171a,null))['then'](saveUpdates(_0x1168cf['body'],null))[_0x79d3('0x39')](respondWithResult(_0x2f171a,null))[_0x79d3('0x2c')](handleError(_0x2f171a,null));};exports[_0x79d3('0x3a')]=function(_0x200fff,_0x2ceb4c){return db[_0x79d3('0x46')][_0x79d3('0x69')]({'where':{'id':_0x200fff['params']['id']}})['then'](handleEntityNotFound(_0x2ceb4c,null))[_0x79d3('0x39')](removeEntity(_0x2ceb4c,null))[_0x79d3('0x2c')](handleError(_0x2ceb4c,null));};exports[_0x79d3('0x6a')]=function(_0x32c38c,_0x4002c3){return db[_0x79d3('0x46')]['describe']()[_0x79d3('0x39')](respondWithResult(_0x4002c3,null))[_0x79d3('0x2c')](handleError(_0x4002c3,null));};exports[_0x79d3('0x6b')]=function(_0x795751,_0x3f930a,_0x75353b){if(_0x795751[_0x79d3('0x68')]['id']){delete _0x795751[_0x79d3('0x68')]['id'];}return db[_0x79d3('0x46')][_0x79d3('0x69')]({'where':{'id':_0x795751[_0x79d3('0x5f')]['id']}})[_0x79d3('0x39')](handleEntityNotFound(_0x3f930a,null))[_0x79d3('0x39')](function(_0x7d0179){if(_0x7d0179){_0x795751[_0x79d3('0x68')][_0x79d3('0x6c')]=_0x7d0179['id'];return db[_0x79d3('0x6d')]['create'](_0x795751[_0x79d3('0x68')]);}})[_0x79d3('0x39')](respondWithResult(_0x3f930a,null))[_0x79d3('0x2c')](handleError(_0x3f930a,null));};exports[_0x79d3('0x6e')]=function(_0x5e839a,_0xfe9ec6,_0x45944c){var _0x3614ea={'raw':![],'where':{}};var _0x3b1900={};var _0x6b5976={'count':0x0,'rows':[]};return db[_0x79d3('0x46')][_0x79d3('0x6f')]({'where':{'id':_0x5e839a['params']['id']}})['then'](handleEntityNotFound(_0xfe9ec6,null))[_0x79d3('0x39')](function(_0x10189c){if(_0x10189c){_0x3b1900['model']=_[_0x79d3('0x60')](db[_0x79d3('0x6d')][_0x79d3('0x47')]);_0x3b1900['query']=_[_0x79d3('0x60')](_0x5e839a['query']);_0x3b1900[_0x79d3('0x4d')]=_[_0x79d3('0x4e')](_0x3b1900[_0x79d3('0x4b')],_0x3b1900[_0x79d3('0x4c')]);_0x3614ea['attributes']=_['intersection'](_0x3b1900[_0x79d3('0x4b')],qs[_0x79d3('0x4f')](_0x5e839a[_0x79d3('0x4c')]['fields']));_0x3614ea[_0x79d3('0x50')]=_0x3614ea['attributes'][_0x79d3('0x51')]?_0x3614ea[_0x79d3('0x50')]:_0x3b1900[_0x79d3('0x4b')];if(!_0x5e839a[_0x79d3('0x4c')][_0x79d3('0x70')](_0x79d3('0x71'))){_0x3614ea['limit']=qs[_0x79d3('0x52')](_0x5e839a['query'][_0x79d3('0x52')]);_0x3614ea[_0x79d3('0x30')]=qs[_0x79d3('0x30')](_0x5e839a[_0x79d3('0x4c')][_0x79d3('0x30')]);}_0x3614ea[_0x79d3('0x53')]=qs[_0x79d3('0x54')](_0x5e839a[_0x79d3('0x4c')][_0x79d3('0x54')]);_0x3614ea[_0x79d3('0x55')]=qs[_0x79d3('0x4d')](_['pick'](_0x5e839a[_0x79d3('0x4c')],_0x3b1900[_0x79d3('0x4d')]));_0x3614ea[_0x79d3('0x55')]['WhatsappAccountId']=_0x10189c['id'];if(_0x5e839a[_0x79d3('0x4c')][_0x79d3('0x57')]){_0x3614ea[_0x79d3('0x55')]=_['merge'](_0x3614ea[_0x79d3('0x55')],{'$or':_[_0x79d3('0x45')](_0x3614ea[_0x79d3('0x50')],function(_0x3162e0){var _0x213b30={};_0x213b30[_0x3162e0]={'$like':'%'+_0x5e839a[_0x79d3('0x4c')][_0x79d3('0x57')]+'%'};return _0x213b30;})});}_0x3614ea=_[_0x79d3('0x59')]({},_0x3614ea,_0x5e839a['options']);return db[_0x79d3('0x6d')]['count']({'where':_0x3614ea[_0x79d3('0x55')]})[_0x79d3('0x39')](function(_0x3c5ea8){_0x6b5976[_0x79d3('0x32')]=_0x3c5ea8;if(_0x5e839a['query'][_0x79d3('0x5b')]){_0x3614ea[_0x79d3('0x5c')]=[{'all':!![]}];}return db[_0x79d3('0x6d')][_0x79d3('0x5d')](_0x3614ea);})[_0x79d3('0x39')](function(_0x6f3124){_0x6b5976[_0x79d3('0x5e')]=_0x6f3124;return _0x6b5976;});}})[_0x79d3('0x39')](respondWithFilteredResult(_0xfe9ec6,_0x3614ea))[_0x79d3('0x2c')](handleError(_0xfe9ec6,null));};exports[_0x79d3('0x72')]=function(_0x4b7e98,_0x27facf,_0x4082e8){return db[_0x79d3('0x46')][_0x79d3('0x69')]({'where':{'id':_0x4b7e98[_0x79d3('0x5f')]['id']}})[_0x79d3('0x39')](handleEntityNotFound(_0x27facf,null))[_0x79d3('0x39')](function(_0x2fbf28){if(_0x2fbf28){return _0x2fbf28[_0x79d3('0x72')](_0x4b7e98[_0x79d3('0x4c')][_0x79d3('0x73')]);}})['then'](respondWithStatusCode(_0x27facf,null))[_0x79d3('0x2c')](handleError(_0x27facf,null));};exports[_0x79d3('0x74')]=function(_0x977aa2,_0x3bafeb,_0xf51cba){if(_0x977aa2['body']['id']){delete _0x977aa2[_0x79d3('0x68')]['id'];}return db[_0x79d3('0x46')][_0x79d3('0x69')]({'where':{'id':_0x977aa2['params']['id']}})[_0x79d3('0x39')](handleEntityNotFound(_0x3bafeb,null))['then'](function(_0x287aaa){if(_0x287aaa){_0x977aa2[_0x79d3('0x68')][_0x79d3('0x6c')]=_0x287aaa['id'];return db[_0x79d3('0x75')]['create'](_0x977aa2[_0x79d3('0x68')]);}})[_0x79d3('0x39')](respondWithResult(_0x3bafeb,null))[_0x79d3('0x2c')](handleError(_0x3bafeb,null));};exports[_0x79d3('0x76')]=function(_0x3a3764,_0x2a6ae1,_0x11477f){var _0x706746={'raw':![],'where':{}};var _0x58c562={};var _0x4232ad={'count':0x0,'rows':[]};return db[_0x79d3('0x46')]['findOne']({'where':{'id':_0x3a3764[_0x79d3('0x5f')]['id']}})[_0x79d3('0x39')](handleEntityNotFound(_0x2a6ae1,null))[_0x79d3('0x39')](function(_0xd13f36){if(_0xd13f36){_0x58c562['model']=_[_0x79d3('0x60')](db[_0x79d3('0x75')]['rawAttributes']);_0x58c562[_0x79d3('0x4c')]=_[_0x79d3('0x60')](_0x3a3764[_0x79d3('0x4c')]);_0x58c562[_0x79d3('0x4d')]=_[_0x79d3('0x4e')](_0x58c562['model'],_0x58c562[_0x79d3('0x4c')]);_0x706746[_0x79d3('0x50')]=_[_0x79d3('0x4e')](_0x58c562[_0x79d3('0x4b')],qs[_0x79d3('0x4f')](_0x3a3764[_0x79d3('0x4c')]['fields']));_0x706746['attributes']=_0x706746[_0x79d3('0x50')][_0x79d3('0x51')]?_0x706746['attributes']:_0x58c562[_0x79d3('0x4b')];if(!_0x3a3764['query'][_0x79d3('0x70')](_0x79d3('0x71'))){_0x706746[_0x79d3('0x52')]=qs['limit'](_0x3a3764[_0x79d3('0x4c')][_0x79d3('0x52')]);_0x706746[_0x79d3('0x30')]=qs[_0x79d3('0x30')](_0x3a3764[_0x79d3('0x4c')]['offset']);}_0x706746[_0x79d3('0x53')]=qs['sort'](_0x3a3764['query'][_0x79d3('0x54')]);_0x706746['where']=qs[_0x79d3('0x4d')](_[_0x79d3('0x56')](_0x3a3764[_0x79d3('0x4c')],_0x58c562[_0x79d3('0x4d')]));_0x706746['where'][_0x79d3('0x6c')]=_0xd13f36['id'];if(_0x3a3764[_0x79d3('0x4c')][_0x79d3('0x57')]){_0x706746['where']=_[_0x79d3('0x59')](_0x706746[_0x79d3('0x55')],{'$or':_['map'](_0x706746[_0x79d3('0x50')],function(_0x2e76e9){var _0x150b3f={};_0x150b3f[_0x2e76e9]={'$like':'%'+_0x3a3764[_0x79d3('0x4c')]['filter']+'%'};return _0x150b3f;})});}_0x706746=_[_0x79d3('0x59')]({},_0x706746,_0x3a3764[_0x79d3('0x5a')]);return db[_0x79d3('0x75')]['count']({'where':_0x706746['where']})[_0x79d3('0x39')](function(_0x9bd7ea){_0x4232ad['count']=_0x9bd7ea;if(_0x3a3764[_0x79d3('0x4c')]['includeAll']){_0x706746[_0x79d3('0x5c')]=[{'all':!![]}];}return db['CannedAnswer']['findAll'](_0x706746);})[_0x79d3('0x39')](function(_0x3013bf){_0x4232ad[_0x79d3('0x5e')]=_0x3013bf;return _0x4232ad;});}})[_0x79d3('0x39')](respondWithFilteredResult(_0x2a6ae1,_0x706746))['catch'](handleError(_0x2a6ae1,null));};exports[_0x79d3('0x77')]=function(_0x267af7,_0x2b80a2,_0x2b6566){return db[_0x79d3('0x46')][_0x79d3('0x69')]({'where':{'id':_0x267af7[_0x79d3('0x5f')]['id']}})['then'](handleEntityNotFound(_0x2b80a2,null))['then'](function(_0xce4f02){if(_0xce4f02){return _0xce4f02[_0x79d3('0x77')](_0x267af7[_0x79d3('0x4c')]['ids']);}})[_0x79d3('0x39')](respondWithStatusCode(_0x2b80a2,null))[_0x79d3('0x2c')](handleError(_0x2b80a2,null));};exports[_0x79d3('0x78')]=function(_0x5d13b7,_0x56c5bb,_0x2852a2){return db[_0x79d3('0x46')][_0x79d3('0x69')]({'where':{'id':_0x5d13b7[_0x79d3('0x5f')]['id']}})[_0x79d3('0x39')](handleEntityNotFound(_0x56c5bb,null))[_0x79d3('0x39')](function(_0x1bb40b){if(_0x1bb40b){return _0x1bb40b[_0x79d3('0x78')](_0x5d13b7['body'][_0x79d3('0x73')],_[_0x79d3('0x79')](_0x5d13b7[_0x79d3('0x68')],[_0x79d3('0x73'),'id'])||{})[_0x79d3('0x7a')](function(_0x1a2a9e){for(var _0x170f8a=0x0;_0x170f8a<_0x5d13b7['body'][_0x79d3('0x73')][_0x79d3('0x51')];_0x170f8a+=0x1){socket['emit']('userWhatsappAccount:save',{'UserId':Number(_0x5d13b7['body'][_0x79d3('0x73')][_0x170f8a]),'WhatsappAccountId':Number(_0x5d13b7[_0x79d3('0x5f')]['id'])});}return _0x1a2a9e;});}})[_0x79d3('0x39')](respondWithResult(_0x56c5bb,null))[_0x79d3('0x2c')](handleError(_0x56c5bb,null));};exports[_0x79d3('0x7b')]=function(_0x52234f,_0x410bc5,_0x31acc2){return db[_0x79d3('0x46')][_0x79d3('0x69')]({'where':{'id':_0x52234f['params']['id']}})[_0x79d3('0x39')](handleEntityNotFound(_0x410bc5,null))[_0x79d3('0x39')](function(_0x5da4cd){if(_0x5da4cd){return _0x5da4cd[_0x79d3('0x7b')](_0x52234f[_0x79d3('0x4c')][_0x79d3('0x73')])[_0x79d3('0x39')](function(){if(_[_0x79d3('0x7c')](_0x52234f[_0x79d3('0x4c')][_0x79d3('0x73')])){for(var _0x24329c=0x0;_0x24329c<_0x52234f['query'][_0x79d3('0x73')][_0x79d3('0x51')];_0x24329c+=0x1){socket['emit'](_0x79d3('0x7d'),{'UserId':Number(_0x52234f[_0x79d3('0x4c')][_0x79d3('0x73')][_0x24329c]),'WhatsappAccountId':Number(_0x52234f[_0x79d3('0x5f')]['id'])});}}else{socket[_0x79d3('0x7e')](_0x79d3('0x7d'),{'UserId':Number(_0x52234f['query']['ids']),'WhatsappAccountId':Number(_0x52234f[_0x79d3('0x5f')]['id'])});}});}})[_0x79d3('0x39')](respondWithStatusCode(_0x410bc5,null))['catch'](handleError(_0x410bc5,null));};exports['getAgents']=function(_0x5ef2ef,_0x2f25fc,_0x599500){var _0x54b276={};var _0x46e257={};var _0x952b9a;var _0x375435;return db[_0x79d3('0x46')][_0x79d3('0x6f')]({'where':{'id':_0x5ef2ef[_0x79d3('0x5f')]['id']}})['then'](handleEntityNotFound(_0x2f25fc,null))['then'](function(_0x144f65){if(_0x144f65){_0x952b9a=_0x144f65;_0x46e257[_0x79d3('0x4b')]=_['keys'](db[_0x79d3('0x7f')][_0x79d3('0x47')]);_0x46e257[_0x79d3('0x4c')]=_[_0x79d3('0x60')](_0x5ef2ef[_0x79d3('0x4c')]);_0x46e257[_0x79d3('0x4d')]=_['intersection'](_0x46e257[_0x79d3('0x4b')],_0x46e257[_0x79d3('0x4c')]);_0x54b276[_0x79d3('0x50')]=_[_0x79d3('0x4e')](_0x46e257['model'],qs[_0x79d3('0x4f')](_0x5ef2ef[_0x79d3('0x4c')][_0x79d3('0x4f')]));_0x54b276['attributes']=_0x54b276[_0x79d3('0x50')][_0x79d3('0x51')]?_0x54b276['attributes']:_0x46e257[_0x79d3('0x4b')];_0x54b276[_0x79d3('0x53')]=qs[_0x79d3('0x54')](_0x5ef2ef[_0x79d3('0x4c')][_0x79d3('0x54')]);_0x54b276[_0x79d3('0x55')]=qs[_0x79d3('0x4d')](_[_0x79d3('0x56')](_0x5ef2ef[_0x79d3('0x4c')],_0x46e257['filters']));if(_0x5ef2ef[_0x79d3('0x4c')][_0x79d3('0x57')]){_0x54b276[_0x79d3('0x55')]=_['merge'](_0x54b276[_0x79d3('0x55')],{'$or':_[_0x79d3('0x45')](_0x54b276[_0x79d3('0x50')],function(_0x397161){var _0x5b90e9={};_0x5b90e9[_0x397161]={'$like':'%'+_0x5ef2ef[_0x79d3('0x4c')][_0x79d3('0x57')]+'%'};return _0x5b90e9;})});}_0x54b276=_[_0x79d3('0x59')]({},_0x54b276,_0x5ef2ef[_0x79d3('0x5a')]);return _0x952b9a[_0x79d3('0x80')](_0x54b276);}})[_0x79d3('0x39')](function(_0x2b615a){if(_0x2b615a){_0x375435=_0x2b615a[_0x79d3('0x51')];if(!_0x5ef2ef[_0x79d3('0x4c')][_0x79d3('0x70')](_0x79d3('0x71'))){_0x54b276[_0x79d3('0x52')]=qs['limit'](_0x5ef2ef[_0x79d3('0x4c')][_0x79d3('0x52')]);_0x54b276[_0x79d3('0x30')]=qs[_0x79d3('0x30')](_0x5ef2ef[_0x79d3('0x4c')][_0x79d3('0x30')]);}return _0x952b9a['getAgents'](_0x54b276);}})[_0x79d3('0x39')](function(_0x5c1b81){if(_0x5c1b81){return _0x5c1b81?{'count':_0x375435,'rows':_0x5c1b81}:null;}})[_0x79d3('0x39')](respondWithResult(_0x2f25fc,null))[_0x79d3('0x2c')](handleError(_0x2f25fc,null));};exports['addApplications']=function(_0x1f82d4,_0x530e8f,_0x31708c){return db['WhatsappAccount'][_0x79d3('0x6f')]({'where':{'id':_0x1f82d4[_0x79d3('0x5f')]['id']}})[_0x79d3('0x39')](handleEntityNotFound(_0x530e8f,null))[_0x79d3('0x39')](function(_0x5cca54){if(_0x5cca54){return db[_0x79d3('0x81')][_0x79d3('0x82')](function(_0x1577fe){return db[_0x79d3('0x83')][_0x79d3('0x3a')]({'where':{'WhatsappAccountId':_0x1f82d4[_0x79d3('0x5f')]['id']},'transaction':_0x1577fe})['then'](function(_0x5e4d3d){var _0x4fe93e=_[_0x79d3('0x45')](_0x1f82d4[_0x79d3('0x68')],function(_0x5967ba){_0x5967ba[_0x79d3('0x6c')]=_0x1f82d4['params']['id'];return _0x5967ba;});return db[_0x79d3('0x83')][_0x79d3('0x84')](_0x4fe93e,{'transaction':_0x1577fe});});})[_0x79d3('0x39')](function(){return db[_0x79d3('0x83')]['findAndCountAll']({'where':{'WhatsappAccountId':_0x1f82d4[_0x79d3('0x5f')]['id']},'order':_0x79d3('0x85')});});}})[_0x79d3('0x39')](respondWithResult(_0x530e8f,null))['catch'](handleError(_0x530e8f,null));};exports[_0x79d3('0x86')]=function(_0x40ff9f,_0x714c83,_0x316074){var _0x53c2b7={};var _0x2986d8={};var _0x4dca91;var _0x5380a6;return db[_0x79d3('0x46')][_0x79d3('0x6f')]({'where':{'id':_0x40ff9f[_0x79d3('0x5f')]['id']}})[_0x79d3('0x39')](handleEntityNotFound(_0x714c83,null))[_0x79d3('0x39')](function(_0x507347){if(_0x507347){_0x4dca91=_0x507347;_0x2986d8[_0x79d3('0x4b')]=_['keys'](db[_0x79d3('0x83')]['rawAttributes']);_0x2986d8[_0x79d3('0x4c')]=_[_0x79d3('0x60')](_0x40ff9f[_0x79d3('0x4c')]);_0x2986d8[_0x79d3('0x4d')]=_[_0x79d3('0x4e')](_0x2986d8[_0x79d3('0x4b')],_0x2986d8['query']);_0x53c2b7[_0x79d3('0x50')]=_['intersection'](_0x2986d8[_0x79d3('0x4b')],qs[_0x79d3('0x4f')](_0x40ff9f[_0x79d3('0x4c')][_0x79d3('0x4f')]));_0x53c2b7[_0x79d3('0x50')]=_0x53c2b7['attributes'][_0x79d3('0x51')]?_0x53c2b7[_0x79d3('0x50')]:_0x2986d8[_0x79d3('0x4b')];_0x53c2b7[_0x79d3('0x53')]=qs[_0x79d3('0x54')](_0x40ff9f[_0x79d3('0x4c')][_0x79d3('0x54')]);_0x53c2b7[_0x79d3('0x55')]=qs[_0x79d3('0x4d')](_['pick'](_0x40ff9f['query'],_0x2986d8[_0x79d3('0x4d')]));if(_0x40ff9f[_0x79d3('0x4c')]['filter']){_0x53c2b7[_0x79d3('0x55')]=_['merge'](_0x53c2b7['where'],{'$or':_[_0x79d3('0x45')](_0x53c2b7[_0x79d3('0x50')],function(_0x300df5){var _0x2081ad={};_0x2081ad[_0x300df5]={'$like':'%'+_0x40ff9f[_0x79d3('0x4c')]['filter']+'%'};return _0x2081ad;})});}_0x53c2b7=_[_0x79d3('0x59')]({},_0x53c2b7,_0x40ff9f[_0x79d3('0x5a')]);return _0x4dca91[_0x79d3('0x86')](_0x53c2b7);}})[_0x79d3('0x39')](function(_0x3a395b){if(_0x3a395b){_0x5380a6=_0x3a395b[_0x79d3('0x51')];if(!_0x40ff9f[_0x79d3('0x4c')][_0x79d3('0x70')](_0x79d3('0x71'))){_0x53c2b7[_0x79d3('0x52')]=qs[_0x79d3('0x52')](_0x40ff9f[_0x79d3('0x4c')][_0x79d3('0x52')]);_0x53c2b7[_0x79d3('0x30')]=qs['offset'](_0x40ff9f[_0x79d3('0x4c')][_0x79d3('0x30')]);}return _0x4dca91[_0x79d3('0x86')](_0x53c2b7);}})[_0x79d3('0x39')](function(_0x435ef7){if(_0x435ef7){return _0x435ef7?{'count':_0x5380a6,'rows':_0x435ef7}:null;}})['then'](respondWithResult(_0x714c83,null))['catch'](handleError(_0x714c83,null));};exports[_0x79d3('0x87')]=function(_0x2638af,_0x3a8689,_0x5e1a46){var _0x28012b={'channel':_0x79d3('0x88')};var _0x5cd2b4=[];var _0x2c0eb8=[];var _0x1deaf0={};return db['WhatsappAccount'][_0x79d3('0x69')]({'where':{'id':_0x2638af['params']['id']},'include':[{'model':db[_0x79d3('0x83')],'as':_0x79d3('0x89')}]})[_0x79d3('0x39')](handleEntityNotFound(_0x3a8689,null))[_0x79d3('0x39')](function(_0x2e84f3){_0x28012b['account']=_0x2e84f3;_0x28012b[_0x79d3('0x8a')]=_[_0x79d3('0x8b')](_0x2e84f3[_0x79d3('0x89')],['priority'],[_0x79d3('0x8c')]);if(_0x28012b['account'][_0x79d3('0x89')]){delete _0x28012b['account'][_0x79d3('0x89')];}return db['CmContact']['describe']();})[_0x79d3('0x39')](function(_0x39fedb){if(!_0x39fedb){throw new db[(_0x79d3('0x8d'))]['ValidationError'](_0x79d3('0x8e'));}_0x5cd2b4=_[_0x79d3('0x8f')](_[_0x79d3('0x60')](_0x39fedb),['createdAt',_0x79d3('0x90')]);_0x2c0eb8=_[_0x79d3('0x8f')](_[_0x79d3('0x60')](_0x39fedb),[_0x79d3('0x91'),_0x79d3('0x90'),'CompanyId',_0x79d3('0x92')]);_0x28012b[_0x79d3('0x68')]={'mapKey':_0x79d3('0x93')};if(_0x28012b[_0x79d3('0x94')][_0x79d3('0x49')]&&_0x28012b[_0x79d3('0x94')][_0x79d3('0x49')]===_0x79d3('0x95')){_0x28012b[_0x79d3('0x68')][_0x79d3('0x96')]=_0x2638af['body'][_0x79d3('0x97')]['replace'](_0x79d3('0x98'),'');_0x28012b[_0x79d3('0x68')][_0x79d3('0x68')]=_0x2638af[_0x79d3('0x68')][_0x79d3('0x99')];_0x28012b[_0x79d3('0x68')][_0x79d3('0x9a')]=_0x2638af[_0x79d3('0x68')][_0x79d3('0x9b')];}if(_0x28012b[_0x79d3('0x68')]['id']){delete _0x28012b[_0x79d3('0x68')]['id'];}if(_[_0x79d3('0x9c')](_0x28012b[_0x79d3('0x68')][_0x79d3('0x96')])){throw new db['Sequelize'][(_0x79d3('0x9d'))]('from\x20is\x20mandatory');}if(_[_0x79d3('0x9c')](_0x28012b['body']['body'])||_0x28012b[_0x79d3('0x68')][_0x79d3('0x68')]===''){throw new db[(_0x79d3('0x8d'))][(_0x79d3('0x9d'))](_0x79d3('0x9e'));}if(_[_0x79d3('0x9c')](_0x28012b['body'][_0x79d3('0x9f')])){throw new db[(_0x79d3('0x8d'))][(_0x79d3('0x9d'))]('mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x2c0eb8);}if(!_['includes'](_0x2c0eb8,_0x28012b[_0x79d3('0x68')][_0x79d3('0x9f')])){throw new db['Sequelize'][(_0x79d3('0x9d'))](_0x79d3('0xa0')+_0x2c0eb8);}_0x1deaf0[_0x28012b[_0x79d3('0x68')][_0x79d3('0x9f')]]=_0x28012b[_0x79d3('0x68')][_0x79d3('0x96')];return db[_0x79d3('0xa1')][_0x79d3('0x69')]({'where':{'id':_0x28012b[_0x79d3('0x94')][_0x79d3('0x92')]},'include':[{'model':db['CmContact'],'as':_0x79d3('0xa2'),'where':_0x1deaf0,'limit':0x1,'order':[[_0x79d3('0x90'),'DESC']]}]});})[_0x79d3('0x39')](handleEntityNotFound(_0x3a8689,null))[_0x79d3('0x39')](function(_0x5cf9bc){if(_0x5cf9bc){_0x28012b[_0x79d3('0xa3')]=_[_0x79d3('0x79')](_0x5cf9bc,['Contacts']);if(_0x5cf9bc['Contacts'][_0x79d3('0x51')]){return _0x5cf9bc[_0x79d3('0xa2')][0x0];}var _0x33220c=_[_0x79d3('0xa4')](_0x28012b['body'],{'firstName':_0x28012b['body'][_0x79d3('0x96')],'ListId':_0x5cf9bc['id']});_0x33220c[_0x28012b[_0x79d3('0x68')][_0x79d3('0x9f')]]=_0x28012b[_0x79d3('0x68')][_0x79d3('0x96')];return db[_0x79d3('0xa5')][_0x79d3('0x61')](_0x33220c,{'fields':_0x5cd2b4,'raw':!![]});}})['then'](handleEntityNotFound(_0x3a8689,null))['then'](function(_0x42b05a){if(_0x42b05a){_0x28012b['contact']=_0x42b05a;var _0x20b6a0={'ContactId':_0x42b05a['id'],'phone':_0x28012b['body'][_0x79d3('0x96')],'WhatsappAccountId':_0x2638af[_0x79d3('0x5f')]['id']};var _0x5420e2={'ContactId':_0x42b05a['id'],'WhatsappAccountId':_0x2638af[_0x79d3('0x5f')]['id'],'closed':![]};return db['WhatsappInteraction']['find']({'where':_0x5420e2})[_0x79d3('0x39')](function(_0x304951){if(_0x304951){return[_0x304951,![]];}return db['WhatsappInteraction'][_0x79d3('0x61')](_0x20b6a0)[_0x79d3('0x39')](function(_0x1996f9){return[_0x1996f9,!![]];});});}})[_0x79d3('0x7a')](function(_0x3fd944,_0x232964){_0x28012b[_0x79d3('0xa6')]=_0x3fd944[_0x79d3('0x3b')]({'plain':!![]});_0x28012b['interaction'][_0x79d3('0xa7')]=![];if(_0x232964){if(_0x28012b[_0x79d3('0x94')]['autoclose']){_0x28012b[_0x79d3('0x8a')]['push']({'id':0x0,'priority':_0x28012b[_0x79d3('0x8a')][_0x79d3('0x51')]+0x1,'app':_0x79d3('0xa8'),'appdata':'unmanaged','interval':'*,*,*,*'});}_0x28012b['interaction'][_0x79d3('0xa7')]=!![];}return db[_0x79d3('0xa9')][_0x79d3('0x61')]({'phone':_0x28012b[_0x79d3('0x68')][_0x79d3('0x96')],'messageId':_0x28012b['body'][_0x79d3('0x9a')],'body':_0x28012b[_0x79d3('0x68')]['body'],'WhatsappAccountId':_0x2638af[_0x79d3('0x5f')]['id'],'WhatsappInteractionId':_0x3fd944['id'],'direction':'in','ContactId':_0x3fd944[_0x79d3('0xaa')],'AttachmentId':_0x28012b['body'][_0x79d3('0xab')]});})['then'](function(_0x526c5f){_0x28012b['message']=_0x526c5f;if(_0x28012b[_0x79d3('0xa6')][_0x79d3('0xac')]){return db[_0x79d3('0x7f')][_0x79d3('0x69')]({'attributes':['id',_0x79d3('0x40')],'where':{'id':_0x28012b[_0x79d3('0xa6')][_0x79d3('0xac')]}})[_0x79d3('0x39')](function(_0x3f72bb){if(_0x3f72bb){_0x28012b[_0x79d3('0x8a')]['unshift']({'id':0x0,'priority':0x0,'app':_0x79d3('0xad'),'appdata':_0x3f72bb['name']+','+(_0x28012b[_0x79d3('0x94')][_0x79d3('0xae')]||0xa),'interval':_0x79d3('0xaf')});}return respondWithRpcPromise(_0x79d3('0xb0'),_0x79d3('0xb1'),_0x28012b);});}return respondWithRpcPromise(_0x79d3('0xb0'),_0x79d3('0xb1'),_0x28012b);})[_0x79d3('0x39')](function(_0x2edcb7){if(_0x2edcb7){var _0x320399=0xc8;var _0x651bac=_0x79d3('0xb2');logger[_0x79d3('0x24')]('WhatsappAccount,\x20%s,\x20%s,\x20%s',_0x651bac,_0x320399,_0x79d3('0xb3'));logger[_0x79d3('0xb4')](_0x79d3('0xb5'),_0x651bac,_0x320399,'entity\x20found',JSON[_0x79d3('0xb6')](_0x2edcb7));if(_0x28012b[_0x79d3('0x94')][_0x79d3('0x49')]===_0x79d3('0x95')){return _0x3a8689['status'](_0x320399)['set'](_0x79d3('0xb7'),_0x79d3('0xb8'))[_0x79d3('0x41')](_0x79d3('0xb9'));}else{return _0x3a8689[_0x79d3('0x2d')](_0x320399)[_0x79d3('0x2f')](_0x2edcb7);}}})[_0x79d3('0x2c')](handleError(_0x3a8689,null));};exports[_0x79d3('0x41')]=function(_0x23ed1e,_0x1ff384,_0x4cc3c9){var _0x5b73a6,_0x521a17,_0x1032da;if(_[_0x79d3('0x9c')](_0x23ed1e['body'][_0x79d3('0x68')])||_0x23ed1e[_0x79d3('0x68')]['body']===''){throw new db[(_0x79d3('0x8d'))][(_0x79d3('0x9d'))](_0x79d3('0x9e'));}if(_[_0x79d3('0x9c')](_0x23ed1e[_0x79d3('0x68')]['to'])){throw new db[(_0x79d3('0x8d'))]['ValidationError'](_0x79d3('0xba'));}_0x5b73a6=_0x23ed1e['body']['to'];return db['WhatsappAccount'][_0x79d3('0x69')]({'where':{'id':_0x23ed1e[_0x79d3('0x5f')]['id']},'include':[{'model':db['CmList'],'as':_0x79d3('0xbb'),'include':[{'model':db[_0x79d3('0xa5')],'as':_0x79d3('0xa2'),'where':{'mobile':_0x5b73a6},'limit':0x1,'order':[[_0x79d3('0x90'),_0x79d3('0xbc')]]}]}]})[_0x79d3('0x39')](handleEntityNotFound(_0x1ff384,null))['then'](function(_0x5bd5f7){if(_0x5bd5f7&&_0x5bd5f7['List']){_0x521a17=_0x5bd5f7['get']({'plain':!![]});if(_0x521a17['List']&&_0x521a17[_0x79d3('0xbb')][_0x79d3('0xa2')][_0x79d3('0x51')]){return _0x521a17[_0x79d3('0xbb')][_0x79d3('0xa2')][0x0];}return db[_0x79d3('0xa5')][_0x79d3('0x61')](_[_0x79d3('0xa4')](_0x23ed1e['body'],{'firstName':_0x5b73a6,'mobile':_0x5b73a6,'phone':_0x5b73a6,'ListId':_0x521a17[_0x79d3('0x92')]}));}})[_0x79d3('0x39')](handleEntityNotFound(_0x1ff384,null))[_0x79d3('0x39')](function(_0x56c0d8){if(_0x56c0d8){_0x1032da=_0x56c0d8;return db['WhatsappInteraction'][_0x79d3('0x69')]({'where':{'ContactId':_0x1032da['id'],'closed':![],'WhatsappAccountId':_0x521a17['id']}})[_0x79d3('0x39')](function(_0x405a44){if(_0x405a44){return[_0x405a44,![]];}return db[_0x79d3('0xbd')][_0x79d3('0x61')]({'UserId':_0x23ed1e[_0x79d3('0x62')]['id'],'ContactId':_0x1032da['id'],'WhatsappAccountId':_0x521a17['id'],'phone':_0x5b73a6,'firstMsgDirection':_0x79d3('0xbe'),'Messages':[_[_0x79d3('0x59')](_0x23ed1e['body'],{'read':![],'body':_0x23ed1e[_0x79d3('0x68')][_0x79d3('0x68')],'phone':_0x5b73a6,'WhatsappAccountId':_0x521a17['id'],'UserId':_0x23ed1e[_0x79d3('0x62')]['id'],'ContactId':_0x1032da['id']})]},{'include':[{'model':db['WhatsappMessage'],'as':_0x79d3('0xbf')}]})[_0x79d3('0x39')](function(_0x50c007){return[_0x50c007,!![]];});});}})[_0x79d3('0x7a')](function(_0x4b25fa,_0x565304){if(_0x565304){return _0x4b25fa;}return db['WhatsappMessage']['create'](_[_0x79d3('0x59')](_0x23ed1e[_0x79d3('0x68')],{'read':![],'body':_0x23ed1e[_0x79d3('0x68')][_0x79d3('0x68')],'phone':_0x5b73a6,'WhatsappAccountId':_0x521a17['id'],'WhatsappInteractionId':_0x4b25fa['id'],'UserId':_0x23ed1e['user']['id'],'ContactId':_0x1032da['id']}))[_0x79d3('0x39')](function(_0x234e36){_0x4b25fa['dataValues'][_0x79d3('0xbf')]=[];_0x4b25fa['dataValues'][_0x79d3('0xbf')][_0x79d3('0xc0')](_0x234e36[_0x79d3('0xc1')]);return _0x4b25fa;});})[_0x79d3('0x39')](respondWithResult(_0x1ff384,null))[_0x79d3('0x2c')](handleError(_0x1ff384,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8d3b=['emit','hasOwnProperty','hook','exports','../../mysqldb','WhatsappAccount','setMaxListeners','save','update','remove'];(function(_0x477ed9,_0x5f2f47){var _0x3c505f=function(_0x28c32c){while(--_0x28c32c){_0x477ed9['push'](_0x477ed9['shift']());}};_0x3c505f(++_0x5f2f47);}(_0x8d3b,0x158));var _0xb8d3=function(_0x12d39e,_0xc9c7c7){_0x12d39e=_0x12d39e-0x0;var _0x1bd418=_0x8d3b[_0x12d39e];return _0x1bd418;};'use strict';var EventEmitter=require('events');var WhatsappAccount=require(_0xb8d3('0x0'))['db'][_0xb8d3('0x1')];var WhatsappAccountEvents=new EventEmitter();WhatsappAccountEvents[_0xb8d3('0x2')](0x0);var events={'afterCreate':_0xb8d3('0x3'),'afterUpdate':_0xb8d3('0x4'),'afterDestroy':_0xb8d3('0x5')};function emitEvent(_0x1a4441){return function(_0x5f2206,_0x4c0426,_0x302570){WhatsappAccountEvents[_0xb8d3('0x6')](_0x1a4441+':'+_0x5f2206['id'],_0x5f2206);WhatsappAccountEvents[_0xb8d3('0x6')](_0x1a4441,_0x5f2206);_0x302570(null);};}for(var e in events){if(events[_0xb8d3('0x7')](e)){var event=events[e];WhatsappAccount[_0xb8d3('0x8')](e,emitEvent(event));}}module[_0xb8d3('0x9')]=WhatsappAccountEvents;
\ No newline at end of file
+var _0xba82=['setMaxListeners','save','update','emit','events','../../mysqldb','WhatsappAccount'];(function(_0x227e24,_0x573dd6){var _0x2ccc99=function(_0x177963){while(--_0x177963){_0x227e24['push'](_0x227e24['shift']());}};_0x2ccc99(++_0x573dd6);}(_0xba82,0xac));var _0x2ba8=function(_0xb8209d,_0x192d67){_0xb8209d=_0xb8209d-0x0;var _0x2cb835=_0xba82[_0xb8209d];return _0x2cb835;};'use strict';var EventEmitter=require(_0x2ba8('0x0'));var WhatsappAccount=require(_0x2ba8('0x1'))['db'][_0x2ba8('0x2')];var WhatsappAccountEvents=new EventEmitter();WhatsappAccountEvents[_0x2ba8('0x3')](0x0);var events={'afterCreate':_0x2ba8('0x4'),'afterUpdate':_0x2ba8('0x5'),'afterDestroy':'remove'};function emitEvent(_0x1d9c15){return function(_0x4f2607,_0x42a327,_0x31db58){WhatsappAccountEvents[_0x2ba8('0x6')](_0x1d9c15+':'+_0x4f2607['id'],_0x4f2607);WhatsappAccountEvents[_0x2ba8('0x6')](_0x1d9c15,_0x4f2607);_0x31db58(null);};}for(var e in events){if(events['hasOwnProperty'](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 _0x4be9=['moment','bluebird','path','rimraf','../../config/environment','./whatsappAccount.attributes','define','WhatsappAccount','whatsapp_accounts','lodash','util','../../config/logger'];(function(_0x4ab5fb,_0x5d3bb7){var _0x3c2731=function(_0x26bbec){while(--_0x26bbec){_0x4ab5fb['push'](_0x4ab5fb['shift']());}};_0x3c2731(++_0x5d3bb7);}(_0x4be9,0x75));var _0x94be=function(_0x14a0a0,_0x45d0cf){_0x14a0a0=_0x14a0a0-0x0;var _0x56b651=_0x4be9[_0x14a0a0];return _0x56b651;};'use strict';var _=require(_0x94be('0x0'));var util=require(_0x94be('0x1'));var logger=require(_0x94be('0x2'))('api');var moment=require(_0x94be('0x3'));var BPromise=require(_0x94be('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x94be('0x5'));var rimraf=require(_0x94be('0x6'));var config=require(_0x94be('0x7'));var attributes=require(_0x94be('0x8'));module['exports']=function(_0x1557fd,_0x384404){return _0x1557fd[_0x94be('0x9')](_0x94be('0xa'),attributes,{'tableName':_0x94be('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x30b7=['bluebird','request-promise','path','../../config/environment','./whatsappAccount.attributes','define','WhatsappAccount','whatsapp_accounts','lodash','../../config/logger','moment'];(function(_0x5d6456,_0x58ecc7){var _0x4d66c1=function(_0x4335e3){while(--_0x4335e3){_0x5d6456['push'](_0x5d6456['shift']());}};_0x4d66c1(++_0x58ecc7);}(_0x30b7,0x1e1));var _0x730b=function(_0x4df3c6,_0x38936a){_0x4df3c6=_0x4df3c6-0x0;var _0x37912a=_0x30b7[_0x4df3c6];return _0x37912a;};'use strict';var _=require(_0x730b('0x0'));var util=require('util');var logger=require(_0x730b('0x1'))('api');var moment=require(_0x730b('0x2'));var BPromise=require(_0x730b('0x3'));var rp=require(_0x730b('0x4'));var fs=require('fs');var path=require(_0x730b('0x5'));var rimraf=require('rimraf');var config=require(_0x730b('0x6'));var attributes=require(_0x730b('0x7'));module['exports']=function(_0xa0623d,_0x5da432){return _0xa0623d[_0x730b('0x8')](_0x730b('0x9'),attributes,{'tableName':_0x730b('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2136=['bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','defaults','localhost','socket.io-emitter','register','request','info','WhatsappAccount,\x20%s,\x20%s','debug','WhatsappAccount,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','ShowWhatsappAccount','WhatsappAccount','find','options','raw','attributes','include','map','model','then','catch','lodash','util','moment'];(function(_0x36a4f9,_0x3f5506){var _0x479588=function(_0x19eac0){while(--_0x19eac0){_0x36a4f9['push'](_0x36a4f9['shift']());}};_0x479588(++_0x3f5506);}(_0x2136,0x1eb));var _0x6213=function(_0x38b3cb,_0x4ad7b3){_0x38b3cb=_0x38b3cb-0x0;var _0x5a9a84=_0x2136[_0x38b3cb];return _0x5a9a84;};'use strict';var _=require(_0x6213('0x0'));var util=require(_0x6213('0x1'));var moment=require(_0x6213('0x2'));var BPromise=require(_0x6213('0x3'));var rs=require(_0x6213('0x4'));var fs=require('fs');var Redis=require(_0x6213('0x5'));var db=require(_0x6213('0x6'))['db'];var utils=require(_0x6213('0x7'));var logger=require(_0x6213('0x8'))(_0x6213('0x9'));var config=require('../../config/environment');var jayson=require(_0x6213('0xa'));var client=jayson[_0x6213('0xb')][_0x6213('0xc')]({'port':0x232a});config['redis']=_[_0x6213('0xd')](config['redis'],{'host':_0x6213('0xe'),'port':0x18eb});var socket=require(_0x6213('0xf'))(new Redis(config['redis']));require('./whatsappAccount.socket')[_0x6213('0x10')](socket);function respondWithRpcPromise(_0x23548f,_0x4082b0,_0x41d1db){return new BPromise(function(_0x1d9bf2,_0x2fd8d4){return client[_0x6213('0x11')](_0x23548f,_0x41d1db)['then'](function(_0xc681fd){logger[_0x6213('0x12')](_0x6213('0x13'),_0x4082b0,'request\x20sent');logger[_0x6213('0x14')](_0x6213('0x15'),_0x4082b0,_0x6213('0x16'),JSON[_0x6213('0x17')](_0xc681fd));if(_0xc681fd[_0x6213('0x18')]){if(_0xc681fd['error'][_0x6213('0x19')]===0x1f4){logger['error'](_0x6213('0x13'),_0x4082b0,_0xc681fd[_0x6213('0x18')][_0x6213('0x1a')]);return _0x2fd8d4(_0xc681fd['error'][_0x6213('0x1a')]);}logger[_0x6213('0x18')]('WhatsappAccount,\x20%s,\x20%s',_0x4082b0,_0xc681fd['error'][_0x6213('0x1a')]);return _0x1d9bf2(_0xc681fd[_0x6213('0x18')]['message']);}else{logger[_0x6213('0x12')](_0x6213('0x13'),_0x4082b0,_0x6213('0x16'));_0x1d9bf2(_0xc681fd['result'][_0x6213('0x1a')]);}})['catch'](function(_0x1a9421){logger[_0x6213('0x18')]('WhatsappAccount,\x20%s,\x20%s',_0x4082b0,_0x1a9421);_0x2fd8d4(_0x1a9421);});});}exports[_0x6213('0x1b')]=function(_0x5c72e0){var _0x12cc52=this;return new Promise(function(_0x40f5ac,_0x1a9e97){return db[_0x6213('0x1c')][_0x6213('0x1d')]({'raw':_0x5c72e0[_0x6213('0x1e')]?_0x5c72e0[_0x6213('0x1e')][_0x6213('0x1f')]===undefined?!![]:![]:!![],'where':_0x5c72e0[_0x6213('0x1e')]?_0x5c72e0[_0x6213('0x1e')]['where']||null:null,'attributes':_0x5c72e0[_0x6213('0x1e')]?_0x5c72e0[_0x6213('0x1e')][_0x6213('0x20')]||null:null,'include':_0x5c72e0[_0x6213('0x1e')]?_0x5c72e0[_0x6213('0x1e')][_0x6213('0x21')]?_[_0x6213('0x22')](_0x5c72e0[_0x6213('0x1e')][_0x6213('0x21')],function(_0x38cbba){return{'model':db[_0x38cbba[_0x6213('0x23')]],'as':_0x38cbba['as'],'attributes':_0x38cbba[_0x6213('0x20')],'include':_0x38cbba[_0x6213('0x21')]?_['map'](_0x38cbba['include'],function(_0xb07dcc){return{'model':db[_0xb07dcc[_0x6213('0x23')]],'as':_0xb07dcc['as'],'attributes':_0xb07dcc[_0x6213('0x20')],'include':_0xb07dcc[_0x6213('0x21')]?_[_0x6213('0x22')](_0xb07dcc[_0x6213('0x21')],function(_0x363af0){return{'model':db[_0x363af0[_0x6213('0x23')]],'as':_0x363af0['as'],'attributes':_0x363af0['attributes']};}):[]};}):[]};}):[]:[]})[_0x6213('0x24')](function(_0x14aa5c){logger['info'](_0x6213('0x1b'),_0x5c72e0);logger[_0x6213('0x14')]('ShowWhatsappAccount',_0x5c72e0,JSON['stringify'](_0x14aa5c));_0x40f5ac(_0x14aa5c);})[_0x6213('0x25')](function(_0x2df3ec){logger[_0x6213('0x18')](_0x6213('0x1b'),_0x2df3ec[_0x6213('0x1a')],_0x5c72e0);_0x1a9e97(_0x12cc52['error'](0x1f4,_0x2df3ec[_0x6213('0x1a')]));});});};
\ No newline at end of file
+var _0x9bcd=['stringify','error','message','result','WhatsappAccount','find','options','raw','where','attributes','include','map','model','ShowWhatsappAccount','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/environment','jayson/promise','client','redis','defaults','localhost','socket.io-emitter','register','then','info','WhatsappAccount,\x20%s,\x20%s','debug','request\x20sent'];(function(_0x44745f,_0x432d7e){var _0xac7f24=function(_0x53038f){while(--_0x53038f){_0x44745f['push'](_0x44745f['shift']());}};_0xac7f24(++_0x432d7e);}(_0x9bcd,0xe7));var _0xd9bc=function(_0x3116c7,_0x15e70a){_0x3116c7=_0x3116c7-0x0;var _0x364947=_0x9bcd[_0x3116c7];return _0x364947;};'use strict';var _=require(_0xd9bc('0x0'));var util=require(_0xd9bc('0x1'));var moment=require(_0xd9bc('0x2'));var BPromise=require(_0xd9bc('0x3'));var rs=require(_0xd9bc('0x4'));var fs=require('fs');var Redis=require(_0xd9bc('0x5'));var db=require(_0xd9bc('0x6'))['db'];var utils=require(_0xd9bc('0x7'));var logger=require('../../config/logger')('rpc');var config=require(_0xd9bc('0x8'));var jayson=require(_0xd9bc('0x9'));var client=jayson[_0xd9bc('0xa')]['http']({'port':0x232a});config[_0xd9bc('0xb')]=_[_0xd9bc('0xc')](config[_0xd9bc('0xb')],{'host':_0xd9bc('0xd'),'port':0x18eb});var socket=require(_0xd9bc('0xe'))(new Redis(config[_0xd9bc('0xb')]));require('./whatsappAccount.socket')[_0xd9bc('0xf')](socket);function respondWithRpcPromise(_0xfba2,_0x355e42,_0x463312){return new BPromise(function(_0x17d36f,_0x3c1678){return client['request'](_0xfba2,_0x463312)[_0xd9bc('0x10')](function(_0x33fb99){logger[_0xd9bc('0x11')](_0xd9bc('0x12'),_0x355e42,'request\x20sent');logger[_0xd9bc('0x13')]('WhatsappAccount,\x20%s,\x20%s,\x20%s',_0x355e42,_0xd9bc('0x14'),JSON[_0xd9bc('0x15')](_0x33fb99));if(_0x33fb99[_0xd9bc('0x16')]){if(_0x33fb99[_0xd9bc('0x16')]['code']===0x1f4){logger['error'](_0xd9bc('0x12'),_0x355e42,_0x33fb99[_0xd9bc('0x16')][_0xd9bc('0x17')]);return _0x3c1678(_0x33fb99[_0xd9bc('0x16')][_0xd9bc('0x17')]);}logger['error'](_0xd9bc('0x12'),_0x355e42,_0x33fb99[_0xd9bc('0x16')][_0xd9bc('0x17')]);return _0x17d36f(_0x33fb99[_0xd9bc('0x16')][_0xd9bc('0x17')]);}else{logger[_0xd9bc('0x11')]('WhatsappAccount,\x20%s,\x20%s',_0x355e42,'request\x20sent');_0x17d36f(_0x33fb99[_0xd9bc('0x18')][_0xd9bc('0x17')]);}})['catch'](function(_0x423ca1){logger[_0xd9bc('0x16')]('WhatsappAccount,\x20%s,\x20%s',_0x355e42,_0x423ca1);_0x3c1678(_0x423ca1);});});}exports['ShowWhatsappAccount']=function(_0x5d2f2a){var _0x1fc669=this;return new Promise(function(_0x26d474,_0x23aa6c){return db[_0xd9bc('0x19')][_0xd9bc('0x1a')]({'raw':_0x5d2f2a[_0xd9bc('0x1b')]?_0x5d2f2a['options'][_0xd9bc('0x1c')]===undefined?!![]:![]:!![],'where':_0x5d2f2a[_0xd9bc('0x1b')]?_0x5d2f2a[_0xd9bc('0x1b')][_0xd9bc('0x1d')]||null:null,'attributes':_0x5d2f2a[_0xd9bc('0x1b')]?_0x5d2f2a[_0xd9bc('0x1b')][_0xd9bc('0x1e')]||null:null,'include':_0x5d2f2a[_0xd9bc('0x1b')]?_0x5d2f2a[_0xd9bc('0x1b')][_0xd9bc('0x1f')]?_[_0xd9bc('0x20')](_0x5d2f2a[_0xd9bc('0x1b')]['include'],function(_0x2b6747){return{'model':db[_0x2b6747['model']],'as':_0x2b6747['as'],'attributes':_0x2b6747['attributes'],'include':_0x2b6747[_0xd9bc('0x1f')]?_['map'](_0x2b6747['include'],function(_0x73a6e6){return{'model':db[_0x73a6e6[_0xd9bc('0x21')]],'as':_0x73a6e6['as'],'attributes':_0x73a6e6[_0xd9bc('0x1e')],'include':_0x73a6e6['include']?_[_0xd9bc('0x20')](_0x73a6e6[_0xd9bc('0x1f')],function(_0x2f0e87){return{'model':db[_0x2f0e87['model']],'as':_0x2f0e87['as'],'attributes':_0x2f0e87[_0xd9bc('0x1e')]};}):[]};}):[]};}):[]:[]})[_0xd9bc('0x10')](function(_0x398279){logger['info'](_0xd9bc('0x22'),_0x5d2f2a);logger['debug'](_0xd9bc('0x22'),_0x5d2f2a,JSON[_0xd9bc('0x15')](_0x398279));_0x26d474(_0x398279);})[_0xd9bc('0x23')](function(_0x2654a5){logger[_0xd9bc('0x16')]('ShowWhatsappAccount',_0x2654a5['message'],_0x5d2f2a);_0x23aa6c(_0x1fc669[_0xd9bc('0x16')](0x1f4,_0x2654a5[_0xd9bc('0x17')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xba4b=['remove','update','emit','removeListener','length','whatsappAccount:','save'];(function(_0x45373b,_0x2cad5e){var _0x266878=function(_0x5573e0){while(--_0x5573e0){_0x45373b['push'](_0x45373b['shift']());}};_0x266878(++_0x2cad5e);}(_0xba4b,0xa7));var _0xbba4=function(_0x4bfb89,_0x3632c4){_0x4bfb89=_0x4bfb89-0x0;var _0x35ac61=_0xba4b[_0x4bfb89];return _0x35ac61;};'use strict';var WhatsappAccountEvents=require('./whatsappAccount.events');var events=[_0xbba4('0x0'),_0xbba4('0x1'),_0xbba4('0x2')];function createListener(_0x3c7c7b,_0x47756c){return function(_0x602aed){_0x47756c[_0xbba4('0x3')](_0x3c7c7b,_0x602aed);};}function removeListener(_0x4a7204,_0x5ce2b5){return function(){WhatsappAccountEvents[_0xbba4('0x4')](_0x4a7204,_0x5ce2b5);};}exports['register']=function(_0x50db04){for(var _0x118e7a=0x0,_0x53c10d=events[_0xbba4('0x5')];_0x118e7a<_0x53c10d;_0x118e7a++){var _0x2372a4=events[_0x118e7a];var _0x4c2c7b=createListener(_0xbba4('0x6')+_0x2372a4,_0x50db04);WhatsappAccountEvents['on'](_0x2372a4,_0x4c2c7b);}};
\ No newline at end of file
+var _0x9287=['removeListener','length','whatsappAccount:','./whatsappAccount.events','update','emit'];(function(_0x225f50,_0x48a77d){var _0x19d003=function(_0x58965d){while(--_0x58965d){_0x225f50['push'](_0x225f50['shift']());}};_0x19d003(++_0x48a77d);}(_0x9287,0x141));var _0x7928=function(_0x18a378,_0x46dc75){_0x18a378=_0x18a378-0x0;var _0x23760a=_0x9287[_0x18a378];return _0x23760a;};'use strict';var WhatsappAccountEvents=require(_0x7928('0x0'));var events=['save','remove',_0x7928('0x1')];function createListener(_0x2bc17d,_0x2de9fa){return function(_0x30f765){_0x2de9fa[_0x7928('0x2')](_0x2bc17d,_0x30f765);};}function removeListener(_0x2a4fda,_0x20e1e0){return function(){WhatsappAccountEvents[_0x7928('0x3')](_0x2a4fda,_0x20e1e0);};}exports['register']=function(_0xa66677){for(var _0x5afbe7=0x0,_0x4ba331=events[_0x7928('0x4')];_0x5afbe7<_0x4ba331;_0x5afbe7++){var _0x5bfad4=events[_0x5afbe7];var _0x4b3d03=createListener(_0x7928('0x5')+_0x5bfad4,_0xa66677);WhatsappAccountEvents['on'](_0x5bfad4,_0x4b3d03);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd811=['connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./whatsappApplication.controller','get','index','/:id','isAuthenticated','show','post','create','update','exports','multer','path'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xd811,0x167));var _0x1d81=function(_0x15b6d2,_0x3bf4be){_0x15b6d2=_0x15b6d2-0x0;var _0x36a1e2=_0xd811[_0x15b6d2];return _0x36a1e2;};'use strict';var multer=require(_0x1d81('0x0'));var util=require('util');var path=require(_0x1d81('0x1'));var timeout=require(_0x1d81('0x2'));var express=require(_0x1d81('0x3'));var router=express[_0x1d81('0x4')]();var fs_extra=require(_0x1d81('0x5'));var auth=require(_0x1d81('0x6'));var interaction=require(_0x1d81('0x7'));var config=require(_0x1d81('0x8'));var controller=require(_0x1d81('0x9'));router[_0x1d81('0xa')]('/',auth['isAuthenticated'](),controller[_0x1d81('0xb')]);router[_0x1d81('0xa')](_0x1d81('0xc'),auth[_0x1d81('0xd')](),controller[_0x1d81('0xe')]);router[_0x1d81('0xf')]('/',auth['isAuthenticated'](),controller[_0x1d81('0x10')]);router['put']('/:id',auth[_0x1d81('0xd')](),controller[_0x1d81('0x11')]);router['delete'](_0x1d81('0xc'),auth[_0x1d81('0xd')](),controller['destroy']);module[_0x1d81('0x12')]=router;
\ No newline at end of file
+var _0x58ea=['Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./whatsappApplication.controller','get','isAuthenticated','/:id','show','post','put','update','delete','destroy','exports','path','express'];(function(_0x42245d,_0x51758f){var _0x4b211a=function(_0x2634e){while(--_0x2634e){_0x42245d['push'](_0x42245d['shift']());}};_0x4b211a(++_0x51758f);}(_0x58ea,0x11e));var _0xa58e=function(_0x555a6d,_0x511aea){_0x555a6d=_0x555a6d-0x0;var _0x3e8c9a=_0x58ea[_0x555a6d];return _0x3e8c9a;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0xa58e('0x0'));var timeout=require('connect-timeout');var express=require(_0xa58e('0x1'));var router=express[_0xa58e('0x2')]();var fs_extra=require(_0xa58e('0x3'));var auth=require(_0xa58e('0x4'));var interaction=require(_0xa58e('0x5'));var config=require(_0xa58e('0x6'));var controller=require(_0xa58e('0x7'));router[_0xa58e('0x8')]('/',auth[_0xa58e('0x9')](),controller['index']);router['get'](_0xa58e('0xa'),auth[_0xa58e('0x9')](),controller[_0xa58e('0xb')]);router[_0xa58e('0xc')]('/',auth['isAuthenticated'](),controller['create']);router[_0xa58e('0xd')]('/:id',auth[_0xa58e('0x9')](),controller[_0xa58e('0xe')]);router[_0xa58e('0xf')](_0xa58e('0xa'),auth[_0xa58e('0x9')](),controller[_0xa58e('0x10')]);module[_0xa58e('0x11')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc306=['INTEGER','STRING','noop','TEXT','*,*,*,*','sequelize'];(function(_0x45eb4a,_0x39819e){var _0x466a71=function(_0x1c6666){while(--_0x1c6666){_0x45eb4a['push'](_0x45eb4a['shift']());}};_0x466a71(++_0x39819e);}(_0xc306,0x1a9));var _0x6c30=function(_0x1e6096,_0x171060){_0x1e6096=_0x1e6096-0x0;var _0x1eea98=_0xc306[_0x1e6096];return _0x1eea98;};'use strict';var Sequelize=require(_0x6c30('0x0'));module['exports']={'priority':{'type':Sequelize[_0x6c30('0x1')],'allowNull':![]},'app':{'type':Sequelize[_0x6c30('0x2')],'allowNull':![],'defaultValue':_0x6c30('0x3')},'appdata':{'type':Sequelize[_0x6c30('0x4')]()},'description':{'type':Sequelize[_0x6c30('0x2')]},'interval':{'type':Sequelize['STRING'],'defaultValue':_0x6c30('0x5')}};
\ No newline at end of file
+var _0x3358=['STRING','TEXT','sequelize','exports','INTEGER'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x3358,0x93));var _0x8335=function(_0x32d639,_0x3b05d9){_0x32d639=_0x32d639-0x0;var _0x41747d=_0x3358[_0x32d639];return _0x41747d;};'use strict';var Sequelize=require(_0x8335('0x0'));module[_0x8335('0x1')]={'priority':{'type':Sequelize[_0x8335('0x2')],'allowNull':![]},'app':{'type':Sequelize[_0x8335('0x3')],'allowNull':![],'defaultValue':'noop'},'appdata':{'type':Sequelize[_0x8335('0x4')]()},'description':{'type':Sequelize['STRING']},'interval':{'type':Sequelize[_0x8335('0x3')],'defaultValue':'*,*,*,*'}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xba38=['intersection','fields','length','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','include','rows','catch','params','includeAll','create','body','find','rimraf','zip-dir','fast-json-patch','moment','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','json','offset','undefined','set','Content-Range','apply','reject','save','update','then','destroy','error','stack','name','send','index','WhatsappApplication','rawAttributes','type','key','model','map','query','keys','filters','attributes'];(function(_0x3eef60,_0x9eb279){var _0x569efe=function(_0xe79c0c){while(--_0xe79c0c){_0x3eef60['push'](_0x3eef60['shift']());}};_0x569efe(++_0x9eb279);}(_0xba38,0x190));var _0x8ba3=function(_0x535627,_0x4a2d4b){_0x535627=_0x535627-0x0;var _0x4ec5f1=_0xba38[_0x535627];return _0x4ec5f1;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x8ba3('0x0'));var zipdir=require(_0x8ba3('0x1'));var jsonpatch=require(_0x8ba3('0x2'));var rp=require('request-promise');var moment=require(_0x8ba3('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x8ba3('0x4'));var util=require(_0x8ba3('0x5'));var path=require(_0x8ba3('0x6'));var sox=require(_0x8ba3('0x7'));var csv=require(_0x8ba3('0x8'));var ejs=require(_0x8ba3('0x9'));var fs=require('fs');var fs_extra=require(_0x8ba3('0xa'));var _=require(_0x8ba3('0xb'));var squel=require(_0x8ba3('0xc'));var crypto=require(_0x8ba3('0xd'));var jsforce=require(_0x8ba3('0xe'));var deskjs=require(_0x8ba3('0xf'));var toCsv=require('to-csv');var querystring=require(_0x8ba3('0x10'));var Papa=require(_0x8ba3('0x11'));var Redis=require('ioredis');var authService=require(_0x8ba3('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0x8ba3('0x13'));var hardwareService=require(_0x8ba3('0x14'));var logger=require(_0x8ba3('0x15'))(_0x8ba3('0x16'));var utils=require(_0x8ba3('0x17'));var config=require(_0x8ba3('0x18'));var licenseUtil=require(_0x8ba3('0x19'));var db=require(_0x8ba3('0x1a'))['db'];function respondWithStatusCode(_0x923aa5,_0x5c8f5b){_0x5c8f5b=_0x5c8f5b||0xcc;return function(_0x1abd6e){if(_0x1abd6e){return _0x923aa5[_0x8ba3('0x1b')](_0x5c8f5b);}return _0x923aa5['status'](_0x5c8f5b)[_0x8ba3('0x1c')]();};}function respondWithResult(_0x4ef1d5,_0x859934){_0x859934=_0x859934||0xc8;return function(_0x59764d){if(_0x59764d){return _0x4ef1d5[_0x8ba3('0x1d')](_0x859934)[_0x8ba3('0x1e')](_0x59764d);}};}function respondWithFilteredResult(_0x57f76d,_0x2842b9){return function(_0x417960){if(_0x417960){var _0x48577c=typeof _0x2842b9[_0x8ba3('0x1f')]===_0x8ba3('0x20')&&typeof _0x2842b9['limit']==='undefined';var _0x47020f=_0x417960['count'];var _0x5a8f04=_0x48577c?0x0:_0x2842b9[_0x8ba3('0x1f')];var _0x563d61=_0x48577c?_0x417960['count']:_0x2842b9[_0x8ba3('0x1f')]+_0x2842b9['limit'];var _0x118c50;if(_0x563d61>=_0x47020f){_0x563d61=_0x47020f;_0x118c50=0xc8;}else{_0x118c50=0xce;}_0x57f76d['status'](_0x118c50);return _0x57f76d[_0x8ba3('0x21')](_0x8ba3('0x22'),_0x5a8f04+'-'+_0x563d61+'/'+_0x47020f)[_0x8ba3('0x1e')](_0x417960);}return null;};}function patchUpdates(_0x5bd852){return function(_0x1a8d6b){try{jsonpatch[_0x8ba3('0x23')](_0x1a8d6b,_0x5bd852,!![]);}catch(_0x2f264d){return BPromise[_0x8ba3('0x24')](_0x2f264d);}return _0x1a8d6b[_0x8ba3('0x25')]();};}function saveUpdates(_0x4a3a50,_0x581daa){return function(_0xb15432){if(_0xb15432){return _0xb15432[_0x8ba3('0x26')](_0x4a3a50)[_0x8ba3('0x27')](function(_0x11e3e7){return _0x11e3e7;});}return null;};}function removeEntity(_0x57f037,_0x543021){return function(_0x10f3e2){if(_0x10f3e2){return _0x10f3e2[_0x8ba3('0x28')]()[_0x8ba3('0x27')](function(){_0x57f037[_0x8ba3('0x1d')](0xcc)['end']();});}};}function handleEntityNotFound(_0x199ad6,_0x56a391){return function(_0x2f253f){if(!_0x2f253f){_0x199ad6[_0x8ba3('0x1b')](0x194);}return _0x2f253f;};}function handleError(_0x80347a,_0x8b2237){_0x8b2237=_0x8b2237||0x1f4;return function(_0x43e306){logger[_0x8ba3('0x29')](_0x43e306[_0x8ba3('0x2a')]);if(_0x43e306[_0x8ba3('0x2b')]){delete _0x43e306[_0x8ba3('0x2b')];}_0x80347a[_0x8ba3('0x1d')](_0x8b2237)[_0x8ba3('0x2c')](_0x43e306);};}exports[_0x8ba3('0x2d')]=function(_0x16d189,_0x2df77c){var _0x309a89={},_0xee2109={},_0x148aac={'count':0x0,'rows':[]};var _0x4570d3=_['map'](db[_0x8ba3('0x2e')][_0x8ba3('0x2f')],function(_0x4f3b2b){return{'name':_0x4f3b2b['fieldName'],'type':_0x4f3b2b[_0x8ba3('0x30')][_0x8ba3('0x31')]};});_0xee2109[_0x8ba3('0x32')]=_[_0x8ba3('0x33')](_0x4570d3,_0x8ba3('0x2b'));_0xee2109[_0x8ba3('0x34')]=_[_0x8ba3('0x35')](_0x16d189[_0x8ba3('0x34')]);_0xee2109[_0x8ba3('0x36')]=_['intersection'](_0xee2109[_0x8ba3('0x32')],_0xee2109[_0x8ba3('0x34')]);_0x309a89[_0x8ba3('0x37')]=_[_0x8ba3('0x38')](_0xee2109[_0x8ba3('0x32')],qs[_0x8ba3('0x39')](_0x16d189[_0x8ba3('0x34')]['fields']));_0x309a89['attributes']=_0x309a89[_0x8ba3('0x37')][_0x8ba3('0x3a')]?_0x309a89[_0x8ba3('0x37')]:_0xee2109[_0x8ba3('0x32')];if(!_0x16d189['query']['hasOwnProperty'](_0x8ba3('0x3b'))){_0x309a89['limit']=qs['limit'](_0x16d189[_0x8ba3('0x34')]['limit']);_0x309a89[_0x8ba3('0x1f')]=qs[_0x8ba3('0x1f')](_0x16d189['query'][_0x8ba3('0x1f')]);}_0x309a89[_0x8ba3('0x3c')]=qs[_0x8ba3('0x3d')](_0x16d189[_0x8ba3('0x34')][_0x8ba3('0x3d')]);_0x309a89[_0x8ba3('0x3e')]=qs[_0x8ba3('0x36')](_[_0x8ba3('0x3f')](_0x16d189[_0x8ba3('0x34')],_0xee2109[_0x8ba3('0x36')]),_0x4570d3);if(_0x16d189[_0x8ba3('0x34')][_0x8ba3('0x40')]){_0x309a89['where']=_[_0x8ba3('0x41')](_0x309a89[_0x8ba3('0x3e')],{'$or':_[_0x8ba3('0x33')](_0x4570d3,function(_0x2ae0ae){if(_0x2ae0ae[_0x8ba3('0x30')]!==_0x8ba3('0x42')){var _0x3d1b84={};_0x3d1b84[_0x2ae0ae[_0x8ba3('0x2b')]]={'$like':'%'+_0x16d189[_0x8ba3('0x34')][_0x8ba3('0x40')]+'%'};return _0x3d1b84;}})});}_0x309a89=_[_0x8ba3('0x41')]({},_0x309a89,_0x16d189[_0x8ba3('0x43')]);var _0x497d1f={'where':_0x309a89[_0x8ba3('0x3e')]};return db['WhatsappApplication']['count'](_0x497d1f)[_0x8ba3('0x27')](function(_0x47870b){_0x148aac['count']=_0x47870b;if(_0x16d189['query']['includeAll']){_0x309a89[_0x8ba3('0x44')]=[{'all':!![]}];}return db['WhatsappApplication']['findAll'](_0x309a89);})[_0x8ba3('0x27')](function(_0x4883b7){_0x148aac[_0x8ba3('0x45')]=_0x4883b7;return _0x148aac;})[_0x8ba3('0x27')](respondWithFilteredResult(_0x2df77c,_0x309a89))[_0x8ba3('0x46')](handleError(_0x2df77c,null));};exports['show']=function(_0x5d979d,_0x5cb74a){var _0x4f524d={'raw':!![],'where':{'id':_0x5d979d[_0x8ba3('0x47')]['id']}},_0x31f5c8={};_0x31f5c8[_0x8ba3('0x32')]=_['keys'](db[_0x8ba3('0x2e')][_0x8ba3('0x2f')]);_0x31f5c8['query']=_[_0x8ba3('0x35')](_0x5d979d[_0x8ba3('0x34')]);_0x31f5c8[_0x8ba3('0x36')]=_['intersection'](_0x31f5c8[_0x8ba3('0x32')],_0x31f5c8[_0x8ba3('0x34')]);_0x4f524d[_0x8ba3('0x37')]=_['intersection'](_0x31f5c8[_0x8ba3('0x32')],qs['fields'](_0x5d979d[_0x8ba3('0x34')][_0x8ba3('0x39')]));_0x4f524d[_0x8ba3('0x37')]=_0x4f524d[_0x8ba3('0x37')][_0x8ba3('0x3a')]?_0x4f524d['attributes']:_0x31f5c8[_0x8ba3('0x32')];if(_0x5d979d['query'][_0x8ba3('0x48')]){_0x4f524d['include']=[{'all':!![]}];}_0x4f524d=_['merge']({},_0x4f524d,_0x5d979d['options']);return db[_0x8ba3('0x2e')]['find'](_0x4f524d)[_0x8ba3('0x27')](handleEntityNotFound(_0x5cb74a,null))[_0x8ba3('0x27')](respondWithResult(_0x5cb74a,null))[_0x8ba3('0x46')](handleError(_0x5cb74a,null));};exports[_0x8ba3('0x49')]=function(_0x2620cd,_0x211933){return db[_0x8ba3('0x2e')][_0x8ba3('0x49')](_0x2620cd['body'],{})[_0x8ba3('0x27')](respondWithResult(_0x211933,0xc9))[_0x8ba3('0x46')](handleError(_0x211933,null));};exports[_0x8ba3('0x26')]=function(_0x4c5571,_0x5b7671){if(_0x4c5571[_0x8ba3('0x4a')]['id']){delete _0x4c5571[_0x8ba3('0x4a')]['id'];}return db[_0x8ba3('0x2e')][_0x8ba3('0x4b')]({'where':{'id':_0x4c5571['params']['id']}})[_0x8ba3('0x27')](handleEntityNotFound(_0x5b7671,null))[_0x8ba3('0x27')](saveUpdates(_0x4c5571[_0x8ba3('0x4a')],null))['then'](respondWithResult(_0x5b7671,null))[_0x8ba3('0x46')](handleError(_0x5b7671,null));};exports[_0x8ba3('0x28')]=function(_0x30d962,_0x2ab289){return db[_0x8ba3('0x2e')][_0x8ba3('0x4b')]({'where':{'id':_0x30d962[_0x8ba3('0x47')]['id']}})['then'](handleEntityNotFound(_0x2ab289,null))[_0x8ba3('0x27')](removeEntity(_0x2ab289,null))[_0x8ba3('0x46')](handleError(_0x2ab289,null));};
\ No newline at end of file
+var _0x50e5=['map','WhatsappApplication','rawAttributes','fieldName','type','key','keys','query','intersection','model','attributes','fields','length','hasOwnProperty','sort','pick','filters','where','merge','VIRTUAL','filter','options','includeAll','include','findAll','rows','catch','show','params','create','body','find','destroy','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','querystring','papaparse','../../components/auth/service','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','undefined','limit','count','offset','set','Content-Range','json','apply','update','then','error','stack','name','index'];(function(_0x23831f,_0x490388){var _0x441049=function(_0x5b6827){while(--_0x5b6827){_0x23831f['push'](_0x23831f['shift']());}};_0x441049(++_0x490388);}(_0x50e5,0xb7));var _0x550e=function(_0x32e75c,_0x450277){_0x32e75c=_0x32e75c-0x0;var _0xb11f25=_0x50e5[_0x32e75c];return _0xb11f25;};'use strict';var emlformat=require(_0x550e('0x0'));var rimraf=require(_0x550e('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x550e('0x2'));var rp=require(_0x550e('0x3'));var moment=require(_0x550e('0x4'));var BPromise=require(_0x550e('0x5'));var Mustache=require(_0x550e('0x6'));var util=require(_0x550e('0x7'));var path=require(_0x550e('0x8'));var sox=require(_0x550e('0x9'));var csv=require(_0x550e('0xa'));var ejs=require(_0x550e('0xb'));var fs=require('fs');var fs_extra=require(_0x550e('0xc'));var _=require(_0x550e('0xd'));var squel=require('squel');var crypto=require(_0x550e('0xe'));var jsforce=require(_0x550e('0xf'));var deskjs=require('desk.js');var toCsv=require(_0x550e('0xa'));var querystring=require(_0x550e('0x10'));var Papa=require(_0x550e('0x11'));var Redis=require('ioredis');var authService=require(_0x550e('0x12'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x550e('0x13'));var logger=require(_0x550e('0x14'))('api');var utils=require(_0x550e('0x15'));var config=require(_0x550e('0x16'));var licenseUtil=require(_0x550e('0x17'));var db=require(_0x550e('0x18'))['db'];function respondWithStatusCode(_0x518cad,_0x335cba){_0x335cba=_0x335cba||0xcc;return function(_0x57214a){if(_0x57214a){return _0x518cad[_0x550e('0x19')](_0x335cba);}return _0x518cad['status'](_0x335cba)[_0x550e('0x1a')]();};}function respondWithResult(_0x4c6070,_0x393055){_0x393055=_0x393055||0xc8;return function(_0x2d4b79){if(_0x2d4b79){return _0x4c6070[_0x550e('0x1b')](_0x393055)['json'](_0x2d4b79);}};}function respondWithFilteredResult(_0x302be0,_0x49787c){return function(_0xf28ba7){if(_0xf28ba7){var _0x49474f=typeof _0x49787c['offset']===_0x550e('0x1c')&&typeof _0x49787c[_0x550e('0x1d')]==='undefined';var _0x4e49bf=_0xf28ba7['count'];var _0x22c264=_0x49474f?0x0:_0x49787c['offset'];var _0x580c6f=_0x49474f?_0xf28ba7[_0x550e('0x1e')]:_0x49787c[_0x550e('0x1f')]+_0x49787c[_0x550e('0x1d')];var _0x846ad;if(_0x580c6f>=_0x4e49bf){_0x580c6f=_0x4e49bf;_0x846ad=0xc8;}else{_0x846ad=0xce;}_0x302be0[_0x550e('0x1b')](_0x846ad);return _0x302be0[_0x550e('0x20')](_0x550e('0x21'),_0x22c264+'-'+_0x580c6f+'/'+_0x4e49bf)[_0x550e('0x22')](_0xf28ba7);}return null;};}function patchUpdates(_0x1b9799){return function(_0x47e6e1){try{jsonpatch[_0x550e('0x23')](_0x47e6e1,_0x1b9799,!![]);}catch(_0x106c68){return BPromise['reject'](_0x106c68);}return _0x47e6e1['save']();};}function saveUpdates(_0x3e9822,_0x2663c7){return function(_0x5769bb){if(_0x5769bb){return _0x5769bb[_0x550e('0x24')](_0x3e9822)[_0x550e('0x25')](function(_0x1762c3){return _0x1762c3;});}return null;};}function removeEntity(_0x317249,_0x3aa1b8){return function(_0x3bbca3){if(_0x3bbca3){return _0x3bbca3['destroy']()[_0x550e('0x25')](function(){_0x317249[_0x550e('0x1b')](0xcc)[_0x550e('0x1a')]();});}};}function handleEntityNotFound(_0x2d10f3,_0x403391){return function(_0xc94de2){if(!_0xc94de2){_0x2d10f3[_0x550e('0x19')](0x194);}return _0xc94de2;};}function handleError(_0x111161,_0x13ca4e){_0x13ca4e=_0x13ca4e||0x1f4;return function(_0x136beb){logger[_0x550e('0x26')](_0x136beb[_0x550e('0x27')]);if(_0x136beb['name']){delete _0x136beb[_0x550e('0x28')];}_0x111161[_0x550e('0x1b')](_0x13ca4e)['send'](_0x136beb);};}exports[_0x550e('0x29')]=function(_0x78f04c,_0x7ae242){var _0x33bc32={},_0x1a4caa={},_0x403472={'count':0x0,'rows':[]};var _0x449da3=_[_0x550e('0x2a')](db[_0x550e('0x2b')][_0x550e('0x2c')],function(_0x25c40a){return{'name':_0x25c40a[_0x550e('0x2d')],'type':_0x25c40a[_0x550e('0x2e')][_0x550e('0x2f')]};});_0x1a4caa['model']=_[_0x550e('0x2a')](_0x449da3,_0x550e('0x28'));_0x1a4caa['query']=_[_0x550e('0x30')](_0x78f04c[_0x550e('0x31')]);_0x1a4caa['filters']=_[_0x550e('0x32')](_0x1a4caa[_0x550e('0x33')],_0x1a4caa[_0x550e('0x31')]);_0x33bc32[_0x550e('0x34')]=_[_0x550e('0x32')](_0x1a4caa[_0x550e('0x33')],qs[_0x550e('0x35')](_0x78f04c[_0x550e('0x31')]['fields']));_0x33bc32[_0x550e('0x34')]=_0x33bc32['attributes'][_0x550e('0x36')]?_0x33bc32[_0x550e('0x34')]:_0x1a4caa['model'];if(!_0x78f04c[_0x550e('0x31')][_0x550e('0x37')]('nolimit')){_0x33bc32['limit']=qs['limit'](_0x78f04c['query'][_0x550e('0x1d')]);_0x33bc32[_0x550e('0x1f')]=qs[_0x550e('0x1f')](_0x78f04c['query']['offset']);}_0x33bc32['order']=qs[_0x550e('0x38')](_0x78f04c[_0x550e('0x31')]['sort']);_0x33bc32['where']=qs['filters'](_[_0x550e('0x39')](_0x78f04c[_0x550e('0x31')],_0x1a4caa[_0x550e('0x3a')]),_0x449da3);if(_0x78f04c['query']['filter']){_0x33bc32[_0x550e('0x3b')]=_[_0x550e('0x3c')](_0x33bc32[_0x550e('0x3b')],{'$or':_[_0x550e('0x2a')](_0x449da3,function(_0x4f4671){if(_0x4f4671[_0x550e('0x2e')]!==_0x550e('0x3d')){var _0x4cfde4={};_0x4cfde4[_0x4f4671['name']]={'$like':'%'+_0x78f04c[_0x550e('0x31')][_0x550e('0x3e')]+'%'};return _0x4cfde4;}})});}_0x33bc32=_[_0x550e('0x3c')]({},_0x33bc32,_0x78f04c[_0x550e('0x3f')]);var _0x5badca={'where':_0x33bc32[_0x550e('0x3b')]};return db[_0x550e('0x2b')][_0x550e('0x1e')](_0x5badca)[_0x550e('0x25')](function(_0x4d7297){_0x403472[_0x550e('0x1e')]=_0x4d7297;if(_0x78f04c[_0x550e('0x31')][_0x550e('0x40')]){_0x33bc32[_0x550e('0x41')]=[{'all':!![]}];}return db[_0x550e('0x2b')][_0x550e('0x42')](_0x33bc32);})['then'](function(_0x2f8cf5){_0x403472[_0x550e('0x43')]=_0x2f8cf5;return _0x403472;})[_0x550e('0x25')](respondWithFilteredResult(_0x7ae242,_0x33bc32))[_0x550e('0x44')](handleError(_0x7ae242,null));};exports[_0x550e('0x45')]=function(_0x4af549,_0x10f18f){var _0x2db9c9={'raw':!![],'where':{'id':_0x4af549[_0x550e('0x46')]['id']}},_0x5ca5fc={};_0x5ca5fc[_0x550e('0x33')]=_[_0x550e('0x30')](db['WhatsappApplication']['rawAttributes']);_0x5ca5fc[_0x550e('0x31')]=_[_0x550e('0x30')](_0x4af549['query']);_0x5ca5fc[_0x550e('0x3a')]=_[_0x550e('0x32')](_0x5ca5fc['model'],_0x5ca5fc[_0x550e('0x31')]);_0x2db9c9[_0x550e('0x34')]=_[_0x550e('0x32')](_0x5ca5fc[_0x550e('0x33')],qs[_0x550e('0x35')](_0x4af549[_0x550e('0x31')]['fields']));_0x2db9c9[_0x550e('0x34')]=_0x2db9c9['attributes'][_0x550e('0x36')]?_0x2db9c9[_0x550e('0x34')]:_0x5ca5fc['model'];if(_0x4af549[_0x550e('0x31')][_0x550e('0x40')]){_0x2db9c9[_0x550e('0x41')]=[{'all':!![]}];}_0x2db9c9=_[_0x550e('0x3c')]({},_0x2db9c9,_0x4af549[_0x550e('0x3f')]);return db[_0x550e('0x2b')]['find'](_0x2db9c9)[_0x550e('0x25')](handleEntityNotFound(_0x10f18f,null))[_0x550e('0x25')](respondWithResult(_0x10f18f,null))[_0x550e('0x44')](handleError(_0x10f18f,null));};exports[_0x550e('0x47')]=function(_0x5a9ef5,_0xbfd031){return db[_0x550e('0x2b')][_0x550e('0x47')](_0x5a9ef5[_0x550e('0x48')],{})[_0x550e('0x25')](respondWithResult(_0xbfd031,0xc9))[_0x550e('0x44')](handleError(_0xbfd031,null));};exports[_0x550e('0x24')]=function(_0xfbad1e,_0x2d233b){if(_0xfbad1e[_0x550e('0x48')]['id']){delete _0xfbad1e[_0x550e('0x48')]['id'];}return db[_0x550e('0x2b')][_0x550e('0x49')]({'where':{'id':_0xfbad1e[_0x550e('0x46')]['id']}})[_0x550e('0x25')](handleEntityNotFound(_0x2d233b,null))[_0x550e('0x25')](saveUpdates(_0xfbad1e[_0x550e('0x48')],null))['then'](respondWithResult(_0x2d233b,null))[_0x550e('0x44')](handleError(_0x2d233b,null));};exports[_0x550e('0x4a')]=function(_0x22dc07,_0x264c4d){return db[_0x550e('0x2b')][_0x550e('0x49')]({'where':{'id':_0x22dc07[_0x550e('0x46')]['id']}})['then'](handleEntityNotFound(_0x264c4d,null))[_0x550e('0x25')](removeEntity(_0x264c4d,null))[_0x550e('0x44')](handleError(_0x264c4d,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe107=['../../config/logger','api','moment','request-promise','../../config/environment','./whatsappApplication.attributes','exports','define','WhatsappApplication','whatsapp_applications','utf8mb4','lodash'];(function(_0xb92b4,_0x12d067){var _0xc4621f=function(_0x5c7869){while(--_0x5c7869){_0xb92b4['push'](_0xb92b4['shift']());}};_0xc4621f(++_0x12d067);}(_0xe107,0xb3));var _0x7e10=function(_0x295a48,_0x5899a9){_0x295a48=_0x295a48-0x0;var _0x4e7d48=_0xe107[_0x295a48];return _0x4e7d48;};'use strict';var _=require(_0x7e10('0x0'));var util=require('util');var logger=require(_0x7e10('0x1'))(_0x7e10('0x2'));var moment=require(_0x7e10('0x3'));var BPromise=require('bluebird');var rp=require(_0x7e10('0x4'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0x7e10('0x5'));var attributes=require(_0x7e10('0x6'));module[_0x7e10('0x7')]=function(_0x5be19f,_0x5f1edf){return _0x5be19f[_0x7e10('0x8')](_0x7e10('0x9'),attributes,{'tableName':_0x7e10('0xa'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0x7e10('0xb'),'collate':'utf8mb4_unicode_ci'});};
\ No newline at end of file
+var _0x423b=['utf8mb4','utf8mb4_unicode_ci','util','api','bluebird','../../config/environment','./whatsappApplication.attributes','define','WhatsappApplication'];(function(_0x981ee0,_0x196d6b){var _0x15ebbe=function(_0x54c5ca){while(--_0x54c5ca){_0x981ee0['push'](_0x981ee0['shift']());}};_0x15ebbe(++_0x196d6b);}(_0x423b,0x12b));var _0xb423=function(_0x4d613c,_0x55f220){_0x4d613c=_0x4d613c-0x0;var _0x301fe3=_0x423b[_0x4d613c];return _0x301fe3;};'use strict';var _=require('lodash');var util=require(_0xb423('0x0'));var logger=require('../../config/logger')(_0xb423('0x1'));var moment=require('moment');var BPromise=require(_0xb423('0x2'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0xb423('0x3'));var attributes=require(_0xb423('0x4'));module['exports']=function(_0x1be92e,_0x3e6b18){return _0x1be92e[_0xb423('0x5')](_0xb423('0x6'),attributes,{'tableName':'whatsapp_applications','paranoid':![],'indexes':[],'timestamps':!![],'charset':_0xb423('0x7'),'collate':_0xb423('0x8')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9f62=['util','bluebird','randomstring','ioredis','../../config/logger','rpc','../../config/environment','jayson/promise','http','info','WhatsappApplication,\x20%s,\x20%s','WhatsappApplication,\x20%s,\x20%s,\x20%s','request\x20sent','error','message','result','catch'];(function(_0x266076,_0x38ab0d){var _0x2563a9=function(_0x57f361){while(--_0x57f361){_0x266076['push'](_0x266076['shift']());}};_0x2563a9(++_0x38ab0d);}(_0x9f62,0x154));var _0x29f6=function(_0x3ca993,_0x1a6dad){_0x3ca993=_0x3ca993-0x0;var _0x3a1397=_0x9f62[_0x3ca993];return _0x3a1397;};'use strict';var _=require('lodash');var util=require(_0x29f6('0x0'));var moment=require('moment');var BPromise=require(_0x29f6('0x1'));var rs=require(_0x29f6('0x2'));var fs=require('fs');var Redis=require(_0x29f6('0x3'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0x29f6('0x4'))(_0x29f6('0x5'));var config=require(_0x29f6('0x6'));var jayson=require(_0x29f6('0x7'));var client=jayson['client'][_0x29f6('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x272876,_0x9a43fe,_0x2ba602){return new BPromise(function(_0x416c6c,_0x5e9945){return client['request'](_0x272876,_0x2ba602)['then'](function(_0x549f64){logger[_0x29f6('0x9')](_0x29f6('0xa'),_0x9a43fe,'request\x20sent');logger['debug'](_0x29f6('0xb'),_0x9a43fe,_0x29f6('0xc'),JSON['stringify'](_0x549f64));if(_0x549f64[_0x29f6('0xd')]){if(_0x549f64[_0x29f6('0xd')]['code']===0x1f4){logger['error']('WhatsappApplication,\x20%s,\x20%s',_0x9a43fe,_0x549f64['error'][_0x29f6('0xe')]);return _0x5e9945(_0x549f64[_0x29f6('0xd')][_0x29f6('0xe')]);}logger[_0x29f6('0xd')](_0x29f6('0xa'),_0x9a43fe,_0x549f64[_0x29f6('0xd')][_0x29f6('0xe')]);return _0x416c6c(_0x549f64[_0x29f6('0xd')][_0x29f6('0xe')]);}else{logger[_0x29f6('0x9')](_0x29f6('0xa'),_0x9a43fe,_0x29f6('0xc'));_0x416c6c(_0x549f64[_0x29f6('0xf')][_0x29f6('0xe')]);}})[_0x29f6('0x10')](function(_0x14dd56){logger[_0x29f6('0xd')]('WhatsappApplication,\x20%s,\x20%s',_0x9a43fe,_0x14dd56);_0x5e9945(_0x14dd56);});});}
\ No newline at end of file
+var _0xd0bb=['debug','stringify','error','code','WhatsappApplication,\x20%s,\x20%s','message','result','catch','lodash','util','moment','randomstring','../../mysqldb','../../config/utils','rpc','jayson/promise','client','http','request','then','request\x20sent'];(function(_0x58c9e5,_0x37b351){var _0x1e7e35=function(_0x4605ad){while(--_0x4605ad){_0x58c9e5['push'](_0x58c9e5['shift']());}};_0x1e7e35(++_0x37b351);}(_0xd0bb,0x1eb));var _0xbd0b=function(_0xbd3a05,_0xe6c6b7){_0xbd3a05=_0xbd3a05-0x0;var _0x101f90=_0xd0bb[_0xbd3a05];return _0x101f90;};'use strict';var _=require(_0xbd0b('0x0'));var util=require(_0xbd0b('0x1'));var moment=require(_0xbd0b('0x2'));var BPromise=require('bluebird');var rs=require(_0xbd0b('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xbd0b('0x4'))['db'];var utils=require(_0xbd0b('0x5'));var logger=require('../../config/logger')(_0xbd0b('0x6'));var config=require('../../config/environment');var jayson=require(_0xbd0b('0x7'));var client=jayson[_0xbd0b('0x8')][_0xbd0b('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x37c205,_0x809599,_0x5eb975){return new BPromise(function(_0x2a4075,_0x4533ff){return client[_0xbd0b('0xa')](_0x37c205,_0x5eb975)[_0xbd0b('0xb')](function(_0x16e185){logger['info']('WhatsappApplication,\x20%s,\x20%s',_0x809599,_0xbd0b('0xc'));logger[_0xbd0b('0xd')]('WhatsappApplication,\x20%s,\x20%s,\x20%s',_0x809599,_0xbd0b('0xc'),JSON[_0xbd0b('0xe')](_0x16e185));if(_0x16e185['error']){if(_0x16e185[_0xbd0b('0xf')][_0xbd0b('0x10')]===0x1f4){logger[_0xbd0b('0xf')](_0xbd0b('0x11'),_0x809599,_0x16e185[_0xbd0b('0xf')][_0xbd0b('0x12')]);return _0x4533ff(_0x16e185[_0xbd0b('0xf')][_0xbd0b('0x12')]);}logger[_0xbd0b('0xf')](_0xbd0b('0x11'),_0x809599,_0x16e185[_0xbd0b('0xf')]['message']);return _0x2a4075(_0x16e185[_0xbd0b('0xf')]['message']);}else{logger['info'](_0xbd0b('0x11'),_0x809599,_0xbd0b('0xc'));_0x2a4075(_0x16e185[_0xbd0b('0x13')][_0xbd0b('0x12')]);}})[_0xbd0b('0x14')](function(_0x546db3){logger['error'](_0xbd0b('0x11'),_0x809599,_0x546db3);_0x4533ff(_0x546db3);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc7a3=['show','/:id/messages','post','create','addMessage','/:id/tags','tracked','whatsappinteraction:addtags','addTags','whatsapp','update','whatsappinteraction:destroy','destroy','removeTags','exports','util','path','connect-timeout','express','Router','fs-extra','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','/describe','describe','/:id'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xc7a3,0xbd));var _0x3c7a=function(_0x4dc775,_0x10b681){_0x4dc775=_0x4dc775-0x0;var _0x3486e1=_0xc7a3[_0x4dc775];return _0x3486e1;};'use strict';var multer=require('multer');var util=require(_0x3c7a('0x0'));var path=require(_0x3c7a('0x1'));var timeout=require(_0x3c7a('0x2'));var express=require(_0x3c7a('0x3'));var router=express[_0x3c7a('0x4')]();var fs_extra=require(_0x3c7a('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0x3c7a('0x6'));var config=require(_0x3c7a('0x7'));var controller=require('./whatsappInteraction.controller');router[_0x3c7a('0x8')]('/',auth[_0x3c7a('0x9')](),controller[_0x3c7a('0xa')]);router['get'](_0x3c7a('0xb'),auth['isAuthenticated'](),controller[_0x3c7a('0xc')]);router['get'](_0x3c7a('0xd'),auth[_0x3c7a('0x9')](),controller[_0x3c7a('0xe')]);router['get'](_0x3c7a('0xf'),auth[_0x3c7a('0x9')](),controller['getMessages']);router[_0x3c7a('0x8')]('/:id/download',auth[_0x3c7a('0x9')](),controller['download']);router[_0x3c7a('0x10')]('/',auth[_0x3c7a('0x9')](),controller[_0x3c7a('0x11')]);router[_0x3c7a('0x10')](_0x3c7a('0xf'),auth['isAuthenticated'](),controller[_0x3c7a('0x12')]);router[_0x3c7a('0x10')](_0x3c7a('0x13'),auth[_0x3c7a('0x9')](),interaction[_0x3c7a('0x14')]('whatsapp',_0x3c7a('0x15')),controller[_0x3c7a('0x16')]);router['put']('/:id',auth[_0x3c7a('0x9')](),interaction[_0x3c7a('0x14')](_0x3c7a('0x17'),'whatsappinteraction:update'),controller[_0x3c7a('0x18')]);router['delete'](_0x3c7a('0xd'),auth[_0x3c7a('0x9')](),interaction[_0x3c7a('0x14')](_0x3c7a('0x17'),_0x3c7a('0x19')),controller[_0x3c7a('0x1a')]);router['delete'](_0x3c7a('0x13'),auth[_0x3c7a('0x9')](),controller[_0x3c7a('0x1b')]);module[_0x3c7a('0x1c')]=router;
\ No newline at end of file
+var _0xb46f=['index','/describe','describe','/:id/messages','getMessages','/:id/download','download','post','create','tracked','whatsappinteraction:addtags','addTags','put','/:id','whatsapp','whatsappinteraction:update','delete','whatsappinteraction:destroy','destroy','/:id/tags','removeTags','exports','multer','util','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../config/environment','get','isAuthenticated'];(function(_0x5b28ef,_0x2abd01){var _0x58ce6a=function(_0x2cad1c){while(--_0x2cad1c){_0x5b28ef['push'](_0x5b28ef['shift']());}};_0x58ce6a(++_0x2abd01);}(_0xb46f,0xb6));var _0xfb46=function(_0x5ac613,_0x1342d7){_0x5ac613=_0x5ac613-0x0;var _0x2445e2=_0xb46f[_0x5ac613];return _0x2445e2;};'use strict';var multer=require(_0xfb46('0x0'));var util=require(_0xfb46('0x1'));var path=require('path');var timeout=require(_0xfb46('0x2'));var express=require(_0xfb46('0x3'));var router=express[_0xfb46('0x4')]();var fs_extra=require(_0xfb46('0x5'));var auth=require(_0xfb46('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0xfb46('0x7'));var controller=require('./whatsappInteraction.controller');router[_0xfb46('0x8')]('/',auth[_0xfb46('0x9')](),controller[_0xfb46('0xa')]);router[_0xfb46('0x8')](_0xfb46('0xb'),auth['isAuthenticated'](),controller[_0xfb46('0xc')]);router[_0xfb46('0x8')]('/:id',auth['isAuthenticated'](),controller['show']);router['get'](_0xfb46('0xd'),auth['isAuthenticated'](),controller[_0xfb46('0xe')]);router[_0xfb46('0x8')](_0xfb46('0xf'),auth[_0xfb46('0x9')](),controller[_0xfb46('0x10')]);router[_0xfb46('0x11')]('/',auth[_0xfb46('0x9')](),controller[_0xfb46('0x12')]);router[_0xfb46('0x11')](_0xfb46('0xd'),auth['isAuthenticated'](),controller['addMessage']);router[_0xfb46('0x11')]('/:id/tags',auth[_0xfb46('0x9')](),interaction[_0xfb46('0x13')]('whatsapp',_0xfb46('0x14')),controller[_0xfb46('0x15')]);router[_0xfb46('0x16')](_0xfb46('0x17'),auth['isAuthenticated'](),interaction[_0xfb46('0x13')](_0xfb46('0x18'),_0xfb46('0x19')),controller['update']);router[_0xfb46('0x1a')](_0xfb46('0x17'),auth['isAuthenticated'](),interaction['tracked'](_0xfb46('0x18'),_0xfb46('0x1b')),controller[_0xfb46('0x1c')]);router[_0xfb46('0x1a')](_0xfb46('0x1d'),auth[_0xfb46('0x9')](),controller[_0xfb46('0x1e')]);module[_0xfb46('0x1f')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa1f6=['BOOLEAN','DATE','STRING','ENUM','out','sequelize','moment','exports'];(function(_0x11d96f,_0xccb1d3){var _0x52bcbf=function(_0x51b445){while(--_0x51b445){_0x11d96f['push'](_0x11d96f['shift']());}};_0x52bcbf(++_0xccb1d3);}(_0xa1f6,0x19d));var _0x6a1f=function(_0x3bfdde,_0x306be4){_0x3bfdde=_0x3bfdde-0x0;var _0x3f752a=_0xa1f6[_0x3bfdde];return _0x3f752a;};'use strict';var Sequelize=require(_0x6a1f('0x0'));var moment=require(_0x6a1f('0x1'));module[_0x6a1f('0x2')]={'closed':{'type':Sequelize[_0x6a1f('0x3')],'defaultValue':![]},'closedAt':{'type':Sequelize[_0x6a1f('0x4')]},'disposition':{'type':Sequelize[_0x6a1f('0x5')]},'secondDisposition':{'type':Sequelize['STRING']},'thirdDisposition':{'type':Sequelize['STRING']},'note':{'type':Sequelize['STRING']},'phone':{'type':Sequelize['STRING']},'read1stAt':{'type':Sequelize['DATE']},'firstMsgDirection':{'type':Sequelize[_0x6a1f('0x6')]('in',_0x6a1f('0x7')),'defaultValue':'in','allowNull':![]},'lastMsgAt':{'type':Sequelize[_0x6a1f('0x4')]},'lastMsgDirection':{'type':Sequelize[_0x6a1f('0x6')]('in',_0x6a1f('0x7')),'defaultValue':'in','allowNull':![]},'autoreplyExecuted':{'type':Sequelize[_0x6a1f('0x3')],'defaultValue':![]}};
\ No newline at end of file
+var _0x448a=['DATE','STRING','ENUM','out','BOOLEAN','moment','exports'];(function(_0x117c9a,_0x3ff6ba){var _0x27a177=function(_0x168a63){while(--_0x168a63){_0x117c9a['push'](_0x117c9a['shift']());}};_0x27a177(++_0x3ff6ba);}(_0x448a,0x1ef));var _0xa448=function(_0x45e05d,_0x19dc4c){_0x45e05d=_0x45e05d-0x0;var _0x52d934=_0x448a[_0x45e05d];return _0x52d934;};'use strict';var Sequelize=require('sequelize');var moment=require(_0xa448('0x0'));module[_0xa448('0x1')]={'closed':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'closedAt':{'type':Sequelize[_0xa448('0x2')]},'disposition':{'type':Sequelize['STRING']},'secondDisposition':{'type':Sequelize['STRING']},'thirdDisposition':{'type':Sequelize[_0xa448('0x3')]},'note':{'type':Sequelize[_0xa448('0x3')]},'phone':{'type':Sequelize['STRING']},'read1stAt':{'type':Sequelize[_0xa448('0x2')]},'firstMsgDirection':{'type':Sequelize[_0xa448('0x4')]('in',_0xa448('0x5')),'defaultValue':'in','allowNull':![]},'lastMsgAt':{'type':Sequelize[_0xa448('0x2')]},'lastMsgDirection':{'type':Sequelize[_0xa448('0x4')]('in',_0xa448('0x5')),'defaultValue':'in','allowNull':![]},'autoreplyExecuted':{'type':Sequelize[_0xa448('0x6')],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5a8c=['err','unlinkSync','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','util','path','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../components/export/pdf','../../config/license/hardware','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','socket.io-emitter','./whatsappInteraction.socket','register','sendStatus','status','end','json','offset','undefined','count','limit','set','apply','reject','update','then','destroy','stack','name','send','Users','map','fullname','TagIds','Tags','split','forEach','push','catch','index','WhatsappInteraction','rawAttributes','fieldName','type','key','query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','pick','select','field','color','from','tools_tags','u.id','u.fullname','user_has_whatsapp_interactions','left_join','u.id\x20=\x20ui.UserId','whatsapp_interactions','cm_contacts','users','whatsapp_accounts','a.id\x20=\x20i.WhatsappAccountId','me.WhatsappInteractionId\x20=\x20i.id','whatsapp_interaction_has_tags','it.WhatsappInteractionId\x20=\x20i.id','expr','parseSearch','sqlOperator','conditions','find','unreadMessages','value','`\x20=\x200','having','`\x20>\x200','Contact','operator','$substring','getFullTextValue','c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?','ContactId','buildExpression','text','start','Tag','union','User','body','some','compact','WhatsappAccountId','i.WhatsappAccountId\x20IN\x20?','parse','$gte','$lte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','\x20IS\x20NULL','read','`unreadMessages`\x20>\x200','tag','isArray','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','filter','replace','i.phone\x20LIKE\x20?','MATCH\x20(me.body)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','where','group','i.id','QueryTypes','SELECT','clone','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','order','DESC','t.id\x20IN\x20?','resolve','i.WhatsappAccountId\x20IS\x20NOT\x20NULL','user','role','getWhatsappAccounts','isEmpty','i.WhatsappAccountId\x20IS\x20NULL','agent','toString','sequelize','keyBy','merge','a.key','Account.key','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','i.*','c.firstName','Contact.firstName','c.lastName','Contact.email','c.phone','c.mobile','Contact.mobile','c.fax','Contact.fax','o.fullname','Owner.fullname','o.internal','Owner.internal','GROUP_CONCAT(DISTINCT\x20t.id)','ui.WhatsappInteractionId\x20IN\x20?','show','includeAll','options','create','params','describe','addMessage','ids','getMessages','findOne','WhatsappMessage','sort','WhatsappInteractionId','format','YYYY-MM-DD\x20HH:mm:ss','findAll','rows','addTags','setTags','omit','spread','removeTags','download','unix','root','server','files','tmp','attachments','join','transcript-%d-%s.zip','CmContact','firstName','lastName','Attachment','secret','WhatsappAccount','Account','Owner','get','mkdirSync','Whatsapp','N.A.','createdAt','disposition','existsSync','createReadStream','createWriteStream','basename','direction','out','renderFile','views','downloadInteraction.ejs','.pdf','createPdfFromHTML','log'];(function(_0xa464c9,_0x7c86d8){var _0x3d73c4=function(_0x5c2056){while(--_0x5c2056){_0xa464c9['push'](_0xa464c9['shift']());}};_0x3d73c4(++_0x7c86d8);}(_0x5a8c,0x1da));var _0xc5a8=function(_0x25fd51,_0x5e4580){_0x25fd51=_0x25fd51-0x0;var _0x48d46e=_0x5a8c[_0x25fd51];return _0x48d46e;};'use strict';var emlformat=require(_0xc5a8('0x0'));var rimraf=require(_0xc5a8('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xc5a8('0x2'));var rp=require(_0xc5a8('0x3'));var moment=require(_0xc5a8('0x4'));var BPromise=require(_0xc5a8('0x5'));var Mustache=require('mustache');var util=require(_0xc5a8('0x6'));var path=require(_0xc5a8('0x7'));var sox=require('sox');var csv=require(_0xc5a8('0x8'));var ejs=require(_0xc5a8('0x9'));var fs=require('fs');var fs_extra=require(_0xc5a8('0xa'));var _=require(_0xc5a8('0xb'));var squel=require(_0xc5a8('0xc'));var crypto=require(_0xc5a8('0xd'));var jsforce=require(_0xc5a8('0xe'));var deskjs=require(_0xc5a8('0xf'));var toCsv=require(_0xc5a8('0x8'));var querystring=require(_0xc5a8('0x10'));var Papa=require(_0xc5a8('0x11'));var Redis=require('ioredis');var authService=require(_0xc5a8('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0xc5a8('0x13'));var pdf=require(_0xc5a8('0x14'));var hardwareService=require(_0xc5a8('0x15'));var logger=require('../../config/logger')('api');var utils=require(_0xc5a8('0x16'));var config=require(_0xc5a8('0x17'));var licenseUtil=require(_0xc5a8('0x18'));var db=require(_0xc5a8('0x19'))['db'];config[_0xc5a8('0x1a')]=_['defaults'](config[_0xc5a8('0x1a')],{'host':_0xc5a8('0x1b'),'port':0x18eb});var socket=require(_0xc5a8('0x1c'))(new Redis(config[_0xc5a8('0x1a')]));require(_0xc5a8('0x1d'))[_0xc5a8('0x1e')](socket);function respondWithStatusCode(_0x365df5,_0x26d87c){_0x26d87c=_0x26d87c||0xcc;return function(_0x168e76){if(_0x168e76){return _0x365df5[_0xc5a8('0x1f')](_0x26d87c);}return _0x365df5[_0xc5a8('0x20')](_0x26d87c)[_0xc5a8('0x21')]();};}function respondWithResult(_0x393e1c,_0x1cb591){_0x1cb591=_0x1cb591||0xc8;return function(_0x1ac555){if(_0x1ac555){return _0x393e1c[_0xc5a8('0x20')](_0x1cb591)[_0xc5a8('0x22')](_0x1ac555);}};}function respondWithFilteredResult(_0x2fb8eb,_0x506c10){return function(_0x134589){if(_0x134589){var _0x184749=typeof _0x506c10[_0xc5a8('0x23')]===_0xc5a8('0x24')&&typeof _0x506c10['limit']===_0xc5a8('0x24');var _0x4e9b87=_0x134589[_0xc5a8('0x25')];var _0x178912=_0x184749?0x0:_0x506c10[_0xc5a8('0x23')];var _0x52ca0a=_0x184749?_0x134589['count']:_0x506c10['offset']+_0x506c10[_0xc5a8('0x26')];var _0x1150b4;if(_0x52ca0a>=_0x4e9b87){_0x52ca0a=_0x4e9b87;_0x1150b4=0xc8;}else{_0x1150b4=0xce;}_0x2fb8eb[_0xc5a8('0x20')](_0x1150b4);return _0x2fb8eb[_0xc5a8('0x27')]('Content-Range',_0x178912+'-'+_0x52ca0a+'/'+_0x4e9b87)[_0xc5a8('0x22')](_0x134589);}return null;};}function patchUpdates(_0x8b6473){return function(_0x133d10){try{jsonpatch[_0xc5a8('0x28')](_0x133d10,_0x8b6473,!![]);}catch(_0x5d8e5e){return BPromise[_0xc5a8('0x29')](_0x5d8e5e);}return _0x133d10['save']();};}function saveUpdates(_0x25e56d,_0x4616ec){return function(_0x2b8a67){if(_0x2b8a67){return _0x2b8a67[_0xc5a8('0x2a')](_0x25e56d)[_0xc5a8('0x2b')](function(_0x3448c1){return _0x3448c1;});}return null;};}function removeEntity(_0x459694,_0x208333){return function(_0x6db15c){if(_0x6db15c){return _0x6db15c[_0xc5a8('0x2c')]()[_0xc5a8('0x2b')](function(){_0x459694[_0xc5a8('0x20')](0xcc)[_0xc5a8('0x21')]();});}};}function handleEntityNotFound(_0x4ebb64,_0x75a5e5){return function(_0x4f6120){if(!_0x4f6120){_0x4ebb64[_0xc5a8('0x1f')](0x194);}return _0x4f6120;};}function handleError(_0x58bd05,_0x19e4f4){_0x19e4f4=_0x19e4f4||0x1f4;return function(_0x18e89e){logger['error'](_0x18e89e[_0xc5a8('0x2d')]);if(_0x18e89e[_0xc5a8('0x2e')]){delete _0x18e89e[_0xc5a8('0x2e')];}_0x58bd05[_0xc5a8('0x20')](_0x19e4f4)[_0xc5a8('0x2f')](_0x18e89e);};}function getInteractionUsers(_0x2d7fae,_0x316ccb){return new BPromise(function(_0x4ec715,_0x106a0b){try{if(_0x316ccb[_0x2d7fae['id']]){_0x2d7fae[_0xc5a8('0x30')]=_[_0xc5a8('0x31')](_0x316ccb[_0x2d7fae['id']],function(_0x27532a){return{'id':_0x27532a['id'],'fullname':_0x27532a[_0xc5a8('0x32')]};});}}catch(_0x3c1b7c){_0x106a0b(_0x3c1b7c);}_0x4ec715(_0x2d7fae);});}function getInteractionTags(_0x434d67,_0x25ebbd){return new BPromise(function(_0x702dba,_0x11a820){try{if(_0x434d67[_0xc5a8('0x33')]){_0x434d67[_0xc5a8('0x34')]=[];_0x434d67[_0xc5a8('0x33')][_0xc5a8('0x35')](',')[_0xc5a8('0x36')](function(_0x490da3){_0x434d67['Tags'][_0xc5a8('0x37')](_0x25ebbd[_0x490da3]);});}delete _0x434d67[_0xc5a8('0x33')];}catch(_0x1ab129){_0x11a820(_0x1ab129);}_0x702dba(_0x434d67);});}function updateWhatsappInteraction(_0x47cc2f,_0x1f7b02,_0x46c035){return new BPromise(function(_0x398d9d,_0x7be5ea){return getInteractionUsers(_0x47cc2f,_0x46c035)['then'](function(_0x47f410){return getInteractionTags(_0x47f410,_0x1f7b02);})['then'](function(_0x148028){_0x398d9d(_0x148028);})[_0xc5a8('0x38')](function(_0x16866b){_0x7be5ea(_0x16866b);});});}exports[_0xc5a8('0x39')]=function(_0x18759c,_0x52b849){var _0x1f8ded={},_0x1d90f3={},_0x53a461={'count':0x0,'rows':[]};var _0x40ead6=_['map'](db[_0xc5a8('0x3a')][_0xc5a8('0x3b')],function(_0x1025a1){return{'name':_0x1025a1[_0xc5a8('0x3c')],'type':_0x1025a1[_0xc5a8('0x3d')][_0xc5a8('0x3e')]};});_0x1d90f3['model']=_[_0xc5a8('0x31')](_0x40ead6,_0xc5a8('0x2e'));_0x1d90f3[_0xc5a8('0x3f')]=_[_0xc5a8('0x40')](_0x18759c[_0xc5a8('0x3f')]);_0x1d90f3[_0xc5a8('0x41')]=_[_0xc5a8('0x42')](_0x1d90f3[_0xc5a8('0x43')],_0x1d90f3['query']);_0x1f8ded[_0xc5a8('0x44')]=_[_0xc5a8('0x42')](_0x1d90f3[_0xc5a8('0x43')],qs[_0xc5a8('0x45')](_0x18759c['query'][_0xc5a8('0x45')]));_0x1f8ded['attributes']=_0x1f8ded[_0xc5a8('0x44')][_0xc5a8('0x46')]?_0x1f8ded[_0xc5a8('0x44')]:_0x1d90f3['model'];if(!_0x18759c[_0xc5a8('0x3f')][_0xc5a8('0x47')](_0xc5a8('0x48'))){_0x1f8ded['limit']=qs['limit'](_0x18759c['query'][_0xc5a8('0x26')]);_0x1f8ded[_0xc5a8('0x23')]=qs[_0xc5a8('0x23')](_0x18759c['query'][_0xc5a8('0x23')]);}_0x1f8ded['order']=qs['sort'](_0x18759c['query']['sort']);_0x1f8ded['where']=qs['filters'](_[_0xc5a8('0x49')](_0x18759c[_0xc5a8('0x3f')],_0x1d90f3[_0xc5a8('0x41')]),_0x40ead6);var _0x36945b=[];var _0x922cc4=squel[_0xc5a8('0x4a')]()[_0xc5a8('0x4b')]('id')[_0xc5a8('0x4b')](_0xc5a8('0x2e'))['field'](_0xc5a8('0x4c'))[_0xc5a8('0x4d')](_0xc5a8('0x4e'));var _0x40e4f8=squel['select']()[_0xc5a8('0x4b')](_0xc5a8('0x4f'))[_0xc5a8('0x4b')](_0xc5a8('0x50'))['field']('ui.WhatsappInteractionId')[_0xc5a8('0x4d')](_0xc5a8('0x51'),'ui')[_0xc5a8('0x52')]('users','u',_0xc5a8('0x53'));var _0xe0f0eb=squel[_0xc5a8('0x4a')]()[_0xc5a8('0x4d')](_0xc5a8('0x54'),'i')['left_join'](_0xc5a8('0x55'),'c','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL')[_0xc5a8('0x52')](_0xc5a8('0x56'),'o','o.id\x20=\x20i.UserId')['left_join'](_0xc5a8('0x57'),'a',_0xc5a8('0x58'))['left_join']('whatsapp_messages','me',_0xc5a8('0x59'))[_0xc5a8('0x52')](_0xc5a8('0x5a'),'it',_0xc5a8('0x5b'))[_0xc5a8('0x52')](_0xc5a8('0x4e'),'t','t.id\x20=\x20it.TagId');var _0x534136=squel['expr']();var _0x5d815e=[];var _0x1066d0=squel[_0xc5a8('0x5c')]();var _0x796f8a;if(_0x18759c['query']['search']){_0x796f8a=as[_0xc5a8('0x5d')](_0x18759c[_0xc5a8('0x3f')]['search']);var _0x5cc537=_0x796f8a[_0xc5a8('0x5e')];for(var _0x43095d=0x0;_0x43095d<_0x796f8a[_0xc5a8('0x5f')]['length'];_0x43095d++){var _0x2718bc=_0x796f8a[_0xc5a8('0x5f')][_0x43095d];var _0x57fd22='i';var _0x486f0e=_[_0xc5a8('0x60')](_0x40ead6,[_0xc5a8('0x2e'),_0x2718bc['field']]);if(!_0x486f0e){switch(_0x2718bc[_0xc5a8('0x4b')]){case _0xc5a8('0x61'):if(_0x2718bc[_0xc5a8('0x62')]==0x1){_0xe0f0eb['having']('`'+_0x2718bc[_0xc5a8('0x4b')]+_0xc5a8('0x63'));}else{_0xe0f0eb[_0xc5a8('0x64')]('`'+_0x2718bc[_0xc5a8('0x4b')]+_0xc5a8('0x65'));}break;case _0xc5a8('0x66'):if(_0x2718bc[_0xc5a8('0x67')]===_0xc5a8('0x68')){if(_0x2718bc[_0xc5a8('0x62')][_0xc5a8('0x35')]('\x20')['length']>0x1){_0x534136[_0x5cc537]('MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs[_0xc5a8('0x69')](_0x2718bc[_0xc5a8('0x62')]),null);}else{var _0x334be6='%'+_0x2718bc[_0xc5a8('0x62')]+'%';_0x534136[_0x5cc537](_0xc5a8('0x6a'),_0x334be6,_0x334be6,_0x334be6);}}else{_0x486f0e=_['find'](_0x40ead6,[_0xc5a8('0x2e'),_0xc5a8('0x6b')]);_0x2718bc['field']=_0xc5a8('0x6b');_0x79a471=as[_0xc5a8('0x6c')](_0x57fd22,_0x486f0e[_0xc5a8('0x3d')],_0x2718bc);_0x534136[_0x5cc537](_0x79a471[_0xc5a8('0x6d')],_0x79a471[_0xc5a8('0x62')][_0xc5a8('0x6e')],_0x79a471[_0xc5a8('0x62')]['end']);}break;case _0xc5a8('0x6f'):var _0x53b074=_0x2718bc[_0xc5a8('0x62')][_0xc5a8('0x35')](',')[_0xc5a8('0x31')](function(_0x3f9458){return Number(_0x3f9458);});_0x53b074[_0xc5a8('0x36')](function(_0x2570d6){_0x1066d0['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x2570d6+',%');});_0x5d815e=_[_0xc5a8('0x70')](_0x5d815e,_0x53b074);break;case _0xc5a8('0x71'):if(_0x2718bc[_0xc5a8('0x67')]===_0xc5a8('0x68')){_0x534136[_0x5cc537]('CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','%'+_0x2718bc['value']+'%',null);}else{_0x486f0e=_['find'](_0x40ead6,[_0xc5a8('0x2e'),'UserId']);_0x2718bc['field']='UserId';_0x79a471=as[_0xc5a8('0x6c')](_0x57fd22,_0x486f0e[_0xc5a8('0x3d')],_0x2718bc);_0x534136[_0x5cc537](_0x79a471[_0xc5a8('0x6d')],_0x79a471[_0xc5a8('0x62')]['start'],_0x79a471[_0xc5a8('0x62')]['end']);}break;case _0xc5a8('0x72'):_0x79a471=as[_0xc5a8('0x6c')]('me',null,_0x2718bc);_0x534136[_0x5cc537](_0x79a471['text'],_0x79a471[_0xc5a8('0x62')][_0xc5a8('0x6e')],_0x79a471['value'][_0xc5a8('0x21')]);break;}}else{var _0x79a471=as[_0xc5a8('0x6c')](_0x57fd22,_0x486f0e[_0xc5a8('0x3d')],_0x2718bc);_0x534136[_0x5cc537](_0x79a471[_0xc5a8('0x6d')],_0x79a471[_0xc5a8('0x62')][_0xc5a8('0x6e')],_0x79a471[_0xc5a8('0x62')][_0xc5a8('0x21')]);}}}else{var _0x19c3ba=_(_0x18759c[_0xc5a8('0x3f')])[_0xc5a8('0x40')]()[_0xc5a8('0x31')](function(_0x441b9f){return _[_0xc5a8('0x73')](_0x40ead6,['name',_0x441b9f])?_0x441b9f:undefined;})[_0xc5a8('0x74')]()[_0xc5a8('0x62')]();if(!_['isEmpty'](_0x19c3ba)){_0x19c3ba[_0xc5a8('0x36')](function(_0x21cb5b){if(_0x21cb5b===_0xc5a8('0x75')){_0xe0f0eb['where'](_0xc5a8('0x76'),[]['concat'](_0x18759c['query'][_0x21cb5b]));}else if(_0x21cb5b==='createdAt'){var _0x426bc8=JSON[_0xc5a8('0x77')](_0x18759c[_0xc5a8('0x3f')][_0x21cb5b])[_0xc5a8('0x78')];var _0x90a31c=JSON[_0xc5a8('0x77')](_0x18759c[_0xc5a8('0x3f')][_0x21cb5b])[_0xc5a8('0x79')];_0xe0f0eb['where'](_0xc5a8('0x7a'),_0x426bc8,_0x90a31c);}else{if(_0x18759c['query'][_0x21cb5b]===_0xc5a8('0x7b')){_0xe0f0eb['where']('i.'+_0x21cb5b+_0xc5a8('0x7c'));}else{_0xe0f0eb['where']('i.'+_0x21cb5b+'\x20=\x20?',_0x18759c[_0xc5a8('0x3f')][_0x21cb5b]);}}});}if(_0x18759c[_0xc5a8('0x3f')]['read']){if(_0x18759c['query'][_0xc5a8('0x7d')]==0x1){_0xe0f0eb[_0xc5a8('0x64')]('`unreadMessages`\x20=\x200');}else{_0xe0f0eb['having'](_0xc5a8('0x7e'));}}if(_0x18759c[_0xc5a8('0x3f')][_0xc5a8('0x7f')]){_0x5d815e=_[_0xc5a8('0x80')](_0x18759c[_0xc5a8('0x3f')][_0xc5a8('0x7f')])?_0x18759c[_0xc5a8('0x3f')][_0xc5a8('0x7f')]:new Array(_0x18759c[_0xc5a8('0x3f')]['tag']);_0x5d815e[_0xc5a8('0x36')](function(_0x358b68){_0x1066d0['or'](_0xc5a8('0x81'),'%,'+_0x358b68+',%');});}if(_0x18759c[_0xc5a8('0x3f')][_0xc5a8('0x82')]){var _0x427011=_0x18759c[_0xc5a8('0x3f')][_0xc5a8('0x82')][_0xc5a8('0x83')]('\x5c','\x5c\x5c')[_0xc5a8('0x83')](/'/g,'\x27\x27');if(qs['isNumeric'](_0x427011)){_0x534136['or']('i.id\x20LIKE\x20?',_0x427011+'%')['or'](_0xc5a8('0x84'),_0x427011+'%');}else{_0x534136['or'](_0xc5a8('0x85'),qs[_0xc5a8('0x69')](_0x427011))['or']('CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?',_0x427011+'%');}}}_0xe0f0eb[_0xc5a8('0x86')](_0x534136);_0xe0f0eb[_0xc5a8('0x87')](_0xc5a8('0x88'));var _0x5a4f99={'type':db['Sequelize'][_0xc5a8('0x89')][_0xc5a8('0x8a')],'raw':!![]};var _0x4507d6=_0xe0f0eb[_0xc5a8('0x8b')]();_0x4507d6['field'](_0xc5a8('0x88'));_0x4507d6[_0xc5a8('0x4b')](_0xc5a8('0x8c'),_0xc5a8('0x61'));if(_0x1f8ded[_0xc5a8('0x8d')]){_0x1f8ded['order'][_0xc5a8('0x36')](function(_0x3810f3){var _0x2d86a3=_0x3810f3[0x0]==='contactName'?_0x3810f3[0x0]:'i.'+_0x3810f3[0x0];_0xe0f0eb['order'](_0x2d86a3,_0x3810f3[0x1]===_0xc5a8('0x8e')?![]:!![]);});}if(!_['isEmpty'](_0x5d815e)){_0xe0f0eb[_0xc5a8('0x64')](_0x1066d0);_0x4507d6[_0xc5a8('0x86')](_0xc5a8('0x8f'),_0x5d815e);}BPromise[_0xc5a8('0x90')]()[_0xc5a8('0x2b')](function(){if(!_0x796f8a){if(_0x18759c[_0xc5a8('0x3f')][_0xc5a8('0x75')])return;_0x4507d6['where'](_0xc5a8('0x91'));_0xe0f0eb['where'](_0xc5a8('0x91'));return;}if(_0x18759c[_0xc5a8('0x92')][_0xc5a8('0x93')]!=='agent')return;return _0x18759c[_0xc5a8('0x92')][_0xc5a8('0x94')]({'attributes':['id'],'raw':!![]})['then'](function(_0x499921){if(_[_0xc5a8('0x95')](_0x499921)){_0x4507d6[_0xc5a8('0x86')](_0xc5a8('0x96'));_0xe0f0eb[_0xc5a8('0x86')](_0xc5a8('0x96'));}else{_0x4507d6['where'](_0xc5a8('0x76'),_[_0xc5a8('0x31')](_0x499921,'id'));_0xe0f0eb[_0xc5a8('0x86')](_0xc5a8('0x76'),_[_0xc5a8('0x31')](_0x499921,'id'));}});})[_0xc5a8('0x2b')](function(){if(_0x18759c[_0xc5a8('0x92')][_0xc5a8('0x93')]===_0xc5a8('0x97')&&!_0x796f8a&&!_0x18759c[_0xc5a8('0x3f')][_0xc5a8('0x75')])return[];return db['sequelize']['query'](_0x4507d6[_0xc5a8('0x98')](),_0x5a4f99);})['then'](function(_0x49815d){_0x53a461[_0xc5a8('0x25')]=_0x49815d[_0xc5a8('0x46')];if(_0x53a461[_0xc5a8('0x25')]===0x0)return[];return db[_0xc5a8('0x99')][_0xc5a8('0x3f')](_0x922cc4[_0xc5a8('0x98')](),_0x5a4f99)[_0xc5a8('0x2b')](function(_0x32395a){_0x36945b=_[_0xc5a8('0x9a')](_0x32395a,'id');_0x5a4f99=_[_0xc5a8('0x9b')](_0x5a4f99,{'model':db[_0xc5a8('0x3a')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x18759c[_0xc5a8('0x3f')]['fields']){_0x1f8ded[_0xc5a8('0x44')]['forEach'](function(_0x3d5c19){_0xe0f0eb[_0xc5a8('0x4b')]('i.'+_0x3d5c19);});}else{_0xe0f0eb[_0xc5a8('0x4b')]('SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)',_0xc5a8('0x61'));_0xe0f0eb[_0xc5a8('0x4b')](_0xc5a8('0x9c'),_0xc5a8('0x9d'));_0xe0f0eb[_0xc5a8('0x4b')](_0xc5a8('0x9e'),_0xc5a8('0x9f'));_0xe0f0eb['field'](_0xc5a8('0xa0'),'contactName');_0xe0f0eb[_0xc5a8('0x4b')](_0xc5a8('0xa1'));_0xe0f0eb[_0xc5a8('0x4b')](_0xc5a8('0xa2'),_0xc5a8('0xa3'));_0xe0f0eb[_0xc5a8('0x4b')](_0xc5a8('0xa4'),'Contact.lastName');_0xe0f0eb['field']('c.email',_0xc5a8('0xa5'));_0xe0f0eb[_0xc5a8('0x4b')](_0xc5a8('0xa6'),'Contact.phone');_0xe0f0eb[_0xc5a8('0x4b')](_0xc5a8('0xa7'),_0xc5a8('0xa8'));_0xe0f0eb[_0xc5a8('0x4b')](_0xc5a8('0xa9'),_0xc5a8('0xaa'));_0xe0f0eb[_0xc5a8('0x4b')](_0xc5a8('0xab'),_0xc5a8('0xac'));_0xe0f0eb[_0xc5a8('0x4b')](_0xc5a8('0xad'),_0xc5a8('0xae'));_0xe0f0eb[_0xc5a8('0x4b')](_0xc5a8('0xaf'),_0xc5a8('0x33'));}if(_0x1f8ded['limit'])_0xe0f0eb[_0xc5a8('0x26')](_0x1f8ded[_0xc5a8('0x26')]);if(_0x1f8ded[_0xc5a8('0x23')])_0xe0f0eb[_0xc5a8('0x23')](_0x1f8ded[_0xc5a8('0x23')]);return db['sequelize']['query'](_0xe0f0eb['toString'](),_0x5a4f99);})[_0xc5a8('0x2b')](function(_0x350bf1){if(_0x350bf1[_0xc5a8('0x46')]>0x0)_0x40e4f8[_0xc5a8('0x86')](_0xc5a8('0xb0'),_[_0xc5a8('0x31')](_0x350bf1,'id'));return db[_0xc5a8('0x99')][_0xc5a8('0x3f')](_0x40e4f8[_0xc5a8('0x98')](),_0x5a4f99)[_0xc5a8('0x2b')](function(_0x1365e1){var _0x596022=_['groupBy'](_0x1365e1,'WhatsappInteractionId');var _0x4407f3=[];_0x350bf1[_0xc5a8('0x36')](function(_0x2e7ed0){_0x4407f3[_0xc5a8('0x37')](updateWhatsappInteraction(_0x2e7ed0,_0x36945b,_0x596022));});return BPromise['all'](_0x4407f3);});});})[_0xc5a8('0x2b')](function(_0x167e24){_0x53a461['rows']=_0x167e24;return _0x53a461;})['then'](respondWithFilteredResult(_0x52b849,_0x1f8ded))['catch'](handleError(_0x52b849,null));};exports[_0xc5a8('0xb1')]=function(_0x37f115,_0x2e9a5d){var _0x26dd09={'raw':![],'where':{'id':_0x37f115['params']['id']}},_0x1e7429={};_0x1e7429['model']=_['keys'](db['WhatsappInteraction'][_0xc5a8('0x3b')]);_0x1e7429[_0xc5a8('0x3f')]=_[_0xc5a8('0x40')](_0x37f115[_0xc5a8('0x3f')]);_0x1e7429[_0xc5a8('0x41')]=_[_0xc5a8('0x42')](_0x1e7429[_0xc5a8('0x43')],_0x1e7429[_0xc5a8('0x3f')]);_0x26dd09[_0xc5a8('0x44')]=_['intersection'](_0x1e7429['model'],qs['fields'](_0x37f115['query']['fields']));_0x26dd09[_0xc5a8('0x44')]=_0x26dd09[_0xc5a8('0x44')][_0xc5a8('0x46')]?_0x26dd09['attributes']:_0x1e7429[_0xc5a8('0x43')];if(_0x37f115[_0xc5a8('0x3f')][_0xc5a8('0xb2')]){_0x26dd09['include']=[{'all':!![]}];}_0x26dd09=_[_0xc5a8('0x9b')]({},_0x26dd09,_0x37f115[_0xc5a8('0xb3')]);return db[_0xc5a8('0x3a')][_0xc5a8('0x60')](_0x26dd09)[_0xc5a8('0x2b')](handleEntityNotFound(_0x2e9a5d,null))[_0xc5a8('0x2b')](respondWithResult(_0x2e9a5d,null))['catch'](handleError(_0x2e9a5d,null));};exports['create']=function(_0x4ca1b9,_0x5ed3ff){return db[_0xc5a8('0x3a')][_0xc5a8('0xb4')](_0x4ca1b9[_0xc5a8('0x72')],{})['then'](respondWithResult(_0x5ed3ff,0xc9))['catch'](handleError(_0x5ed3ff,null));};exports[_0xc5a8('0x2a')]=function(_0x448679,_0x1266ad){if(_0x448679['body']['id']){delete _0x448679['body']['id'];}return db[_0xc5a8('0x3a')][_0xc5a8('0x60')]({'where':{'id':_0x448679['params']['id']}})[_0xc5a8('0x2b')](handleEntityNotFound(_0x1266ad,null))[_0xc5a8('0x2b')](saveUpdates(_0x448679[_0xc5a8('0x72')],null))[_0xc5a8('0x2b')](respondWithResult(_0x1266ad,null))[_0xc5a8('0x38')](handleError(_0x1266ad,null));};exports[_0xc5a8('0x2c')]=function(_0x397d7c,_0x3837d8){return db[_0xc5a8('0x3a')][_0xc5a8('0x60')]({'where':{'id':_0x397d7c[_0xc5a8('0xb5')]['id']}})[_0xc5a8('0x2b')](handleEntityNotFound(_0x3837d8,null))[_0xc5a8('0x2b')](removeEntity(_0x3837d8,null))[_0xc5a8('0x38')](handleError(_0x3837d8,null));};exports['describe']=function(_0x2057a6,_0x5c113e){return db[_0xc5a8('0x3a')][_0xc5a8('0xb6')]()[_0xc5a8('0x2b')](respondWithResult(_0x5c113e,null))[_0xc5a8('0x38')](handleError(_0x5c113e,null));};exports[_0xc5a8('0xb7')]=function(_0x3f1ae5,_0x7808cb,_0x56d13f){return db['WhatsappMessage']['find']({'where':{'id':_0x3f1ae5['params']['id']}})['then'](handleEntityNotFound(_0x7808cb,null))[_0xc5a8('0x2b')](function(_0x811ede){if(_0x811ede){return _0x811ede[_0xc5a8('0xb7')](_0x3f1ae5[_0xc5a8('0x72')][_0xc5a8('0xb8')],_['omit'](_0x3f1ae5[_0xc5a8('0x72')],['ids','id'])||{});}})[_0xc5a8('0x2b')](respondWithResult(_0x7808cb,null))[_0xc5a8('0x38')](handleError(_0x7808cb,null));};exports[_0xc5a8('0xb9')]=function(_0x55784c,_0xe168af,_0x16c1a1){var _0x58c7fd={'raw':![],'where':{}};var _0x3d9bb9={};var _0x3a8eb6={'count':0x0,'rows':[]};return db[_0xc5a8('0x3a')][_0xc5a8('0xba')]({'where':{'id':_0x55784c[_0xc5a8('0xb5')]['id']}})['then'](handleEntityNotFound(_0xe168af,null))['then'](function(_0xbde80){if(_0xbde80){_0x3d9bb9[_0xc5a8('0x43')]=_[_0xc5a8('0x40')](db[_0xc5a8('0xbb')][_0xc5a8('0x3b')]);_0x3d9bb9[_0xc5a8('0x3f')]=_[_0xc5a8('0x40')](_0x55784c[_0xc5a8('0x3f')]);_0x3d9bb9['filters']=_[_0xc5a8('0x42')](_0x3d9bb9['model'],_0x3d9bb9['query']);_0x58c7fd[_0xc5a8('0x44')]=_[_0xc5a8('0x42')](_0x3d9bb9[_0xc5a8('0x43')],qs[_0xc5a8('0x45')](_0x55784c[_0xc5a8('0x3f')][_0xc5a8('0x45')]));_0x58c7fd['attributes']=_0x58c7fd[_0xc5a8('0x44')]['length']?_0x58c7fd[_0xc5a8('0x44')]:_0x3d9bb9[_0xc5a8('0x43')];if(!_0x55784c[_0xc5a8('0x3f')]['hasOwnProperty'](_0xc5a8('0x48'))){_0x58c7fd['limit']=qs[_0xc5a8('0x26')](_0x55784c[_0xc5a8('0x3f')][_0xc5a8('0x26')]);_0x58c7fd[_0xc5a8('0x23')]=qs[_0xc5a8('0x23')](_0x55784c[_0xc5a8('0x3f')][_0xc5a8('0x23')]);}_0x58c7fd[_0xc5a8('0x8d')]=qs[_0xc5a8('0xbc')](_0x55784c[_0xc5a8('0x3f')][_0xc5a8('0xbc')]);_0x58c7fd['where']=qs[_0xc5a8('0x41')](_[_0xc5a8('0x49')](_0x55784c[_0xc5a8('0x3f')],_0x3d9bb9[_0xc5a8('0x41')]));_0x58c7fd['where'][_0xc5a8('0xbd')]=_0xbde80['id'];if(_0x55784c['query'][_0xc5a8('0x82')]){_0x58c7fd[_0xc5a8('0x86')]=_[_0xc5a8('0x9b')](_0x58c7fd[_0xc5a8('0x86')],{'$or':_[_0xc5a8('0x31')](_0x58c7fd[_0xc5a8('0x44')],function(_0x322799){var _0x59b13a={};_0x59b13a[_0x322799]={'$like':'%'+_0x55784c[_0xc5a8('0x3f')][_0xc5a8('0x82')]+'%'};return _0x59b13a;})});}if(_0x55784c['query'][_0xc5a8('0x78')]){var _0x474658=_0x55784c[_0xc5a8('0x3f')][_0xc5a8('0x78')][_0xc5a8('0x35')](',');var _0x23b757={};_0x23b757[_0x474658[0x0]]={'$gte':moment(_0x474658[0x1])[_0xc5a8('0xbe')](_0xc5a8('0xbf'))};_0x58c7fd['where']=_[_0xc5a8('0x9b')](_0x58c7fd[_0xc5a8('0x86')],_0x23b757);}_0x58c7fd=_['merge']({},_0x58c7fd,_0x55784c[_0xc5a8('0xb3')]);return db['WhatsappMessage'][_0xc5a8('0x25')]({'where':_0x58c7fd[_0xc5a8('0x86')]})[_0xc5a8('0x2b')](function(_0x508001){_0x3a8eb6[_0xc5a8('0x25')]=_0x508001;if(_0x55784c[_0xc5a8('0x3f')]['includeAll']){_0x58c7fd['include']=[{'all':!![]}];}return db[_0xc5a8('0xbb')][_0xc5a8('0xc0')](_0x58c7fd);})[_0xc5a8('0x2b')](function(_0x3d5307){_0x3a8eb6[_0xc5a8('0xc1')]=_0x3d5307;return _0x3a8eb6;});}})[_0xc5a8('0x2b')](respondWithFilteredResult(_0xe168af,_0x58c7fd))[_0xc5a8('0x38')](handleError(_0xe168af,null));};exports[_0xc5a8('0xc2')]=function(_0xbb5f3f,_0x5cad68,_0x3b1275){return db[_0xc5a8('0x3a')][_0xc5a8('0x60')]({'where':{'id':_0xbb5f3f[_0xc5a8('0xb5')]['id']}})[_0xc5a8('0x2b')](handleEntityNotFound(_0x5cad68,null))[_0xc5a8('0x2b')](function(_0x577ad8){if(_0x577ad8){return _0x577ad8[_0xc5a8('0xc3')](_0xbb5f3f['body'][_0xc5a8('0xb8')],_[_0xc5a8('0xc4')](_0xbb5f3f['body'],['ids','id'])||{})[_0xc5a8('0xc5')](function(){return db['Tag'][_0xc5a8('0xc0')]({'attributes':['id','name',_0xc5a8('0x4c')],'where':{'id':_0xbb5f3f[_0xc5a8('0x72')][_0xc5a8('0xb8')]}});})[_0xc5a8('0x2b')](function(_0x5e05e4){socket['emit']('whatsappInteractionTags:save',{'id':Number(_0xbb5f3f[_0xc5a8('0xb5')]['id']),'tags':_0x5e05e4||[]});return{'id':Number(_0xbb5f3f['params']['id']),'tags':_0x5e05e4||[]};});}})[_0xc5a8('0x2b')](respondWithResult(_0x5cad68,null))[_0xc5a8('0x38')](handleError(_0x5cad68,null));};exports[_0xc5a8('0xc6')]=function(_0x24f16c,_0x58afc1,_0x4a6810){return db[_0xc5a8('0x3a')]['find']({'where':{'id':_0x24f16c[_0xc5a8('0xb5')]['id']}})[_0xc5a8('0x2b')](handleEntityNotFound(_0x58afc1,null))[_0xc5a8('0x2b')](function(_0x2ff632){if(_0x2ff632){return _0x2ff632[_0xc5a8('0xc6')](_0x24f16c[_0xc5a8('0x3f')]['ids']);}})[_0xc5a8('0x2b')](respondWithStatusCode(_0x58afc1,null))[_0xc5a8('0x38')](handleError(_0x58afc1,null));};exports[_0xc5a8('0xc7')]=function(_0xaa9d47,_0x46d3db){var _0x3d993c=moment()[_0xc5a8('0xc8')]()['toString']();var _0x5925b5=path['join'](config[_0xc5a8('0xc9')],_0xc5a8('0xca'),_0xc5a8('0xcb'),_0xc5a8('0xcc'));var _0x85629d=path['join'](config[_0xc5a8('0xc9')],_0xc5a8('0xca'),_0xc5a8('0xcb'),_0xc5a8('0xcd'));var _0x4d41f0=path[_0xc5a8('0xce')](_0x5925b5,_0x3d993c);var _0x276e95=util[_0xc5a8('0xbe')](_0xc5a8('0xcf'),_0xaa9d47[_0xc5a8('0xb5')]['id'],_0x3d993c);var _0x42eab3=path[_0xc5a8('0xce')](_0x5925b5,_0x276e95);var _0x59e1d9=[];_0x59e1d9[_0xc5a8('0x37')]({'model':db[_0xc5a8('0x71')],'as':_0xc5a8('0x71'),'attributes':['id',_0xc5a8('0x32')],'raw':!![]});_0x59e1d9[_0xc5a8('0x37')]({'model':db[_0xc5a8('0xd0')],'as':_0xc5a8('0x66'),'attributes':['id',_0xc5a8('0xd1'),_0xc5a8('0xd2')],'raw':!![]});if(_0xaa9d47[_0xc5a8('0x3f')][_0xc5a8('0xcd')]){_0x59e1d9[_0xc5a8('0x37')]({'model':db[_0xc5a8('0xd3')],'as':_0xc5a8('0xd3'),'raw':!![]});}var _0x878cf=[{'model':db['WhatsappMessage'],'as':'Messages','attributes':['id','body','createdAt','direction',_0xc5a8('0xd4'),_0xc5a8('0x7d')],'include':_0x59e1d9}];_0x878cf['push']({'model':db[_0xc5a8('0xd5')],'as':_0xc5a8('0xd6'),'attributes':['id',_0xc5a8('0x2e')]});_0x878cf[_0xc5a8('0x37')]({'model':db['User'],'as':_0xc5a8('0xd7'),'attributes':['id',_0xc5a8('0x32')]});return db[_0xc5a8('0x3a')][_0xc5a8('0x60')]({'where':{'id':_0xaa9d47[_0xc5a8('0xb5')]['id']},'include':_0x878cf})['then'](handleEntityNotFound(_0x46d3db,null))[_0xc5a8('0x2b')](function(_0x562ad2){if(_0x562ad2){var _0x4370a1=_0x562ad2[_0xc5a8('0xd8')]({'plain':!![]});fs[_0xc5a8('0xd9')](_0x4d41f0);var _0x27ff80={'channel':_0xc5a8('0xda'),'account':_0x4370a1[_0xc5a8('0xd6')][_0xc5a8('0x2e')],'agent':_0x4370a1['Owner']?_0x4370a1[_0xc5a8('0xd7')][_0xc5a8('0x32')]:_0xc5a8('0xdb'),'createdAt':moment(_0x4370a1[_0xc5a8('0xdc')])[_0xc5a8('0xbe')](_0xc5a8('0xbf'))['toString'](),'closedAt':_0x4370a1['closed']?moment(_0x4370a1['closedAt'])['format'](_0xc5a8('0xbf'))['toString']():'','disposition':_0x4370a1[_0xc5a8('0xdd')],'messages':_(_0x4370a1['Messages'])[_0xc5a8('0x82')]({'secret':![]})[_0xc5a8('0x31')](function(_0x4d2dad){if(_0x4d2dad[_0xc5a8('0xd3')]){var _0x38448c=path['join'](_0x85629d,_0x4d2dad[_0xc5a8('0xd3')]['basename']);if(fs[_0xc5a8('0xde')](_0x38448c)){fs[_0xc5a8('0xdf')](_0x38448c)['pipe'](fs[_0xc5a8('0xe0')](path[_0xc5a8('0xce')](_0x4d41f0,_0x4d2dad[_0xc5a8('0xd3')][_0xc5a8('0xe1')])));}}return{'date':moment(_0x4d2dad[_0xc5a8('0xdc')])[_0xc5a8('0xbe')](_0xc5a8('0xbf'))[_0xc5a8('0x98')](),'sender':_0x4d2dad[_0xc5a8('0xe2')]===_0xc5a8('0xe3')?_0x4d2dad[_0xc5a8('0x71')]?_0x4d2dad[_0xc5a8('0x71')][_0xc5a8('0x32')]:'System':_0x4d2dad[_0xc5a8('0x66')]['firstName']+(_0x4d2dad[_0xc5a8('0x66')][_0xc5a8('0xd2')]?'\x20'+_0x4d2dad[_0xc5a8('0x66')][_0xc5a8('0xd2')]:''),'body':_0x4d2dad[_0xc5a8('0xd3')]?_0x4d2dad['Attachment']['basename']:_0x4d2dad[_0xc5a8('0x72')],'direction':_0x4d2dad[_0xc5a8('0xe2')]===_0xc5a8('0xe3')?'A':'C','secret':_0x4d2dad[_0xc5a8('0xd4')],'read':_0x4d2dad[_0xc5a8('0x7d')],'attachment':_0x4d2dad[_0xc5a8('0xd3')]};})[_0xc5a8('0x62')]()};return ejs[_0xc5a8('0xe4')](path[_0xc5a8('0xce')](config[_0xc5a8('0xc9')],_0xc5a8('0xca'),_0xc5a8('0xe5'),_0xc5a8('0xe6')),{'interaction':_0x27ff80})['then'](function(_0x1c2b46){var _0x29e4aa=path[_0xc5a8('0xce')](_0x4d41f0,'transcript-'+_0x4370a1['id']+'-'+_0x3d993c+_0xc5a8('0xe7'));var _0x187dfe={'path':_0x29e4aa,'channel':_0xc5a8('0xda'),'interactionId':_0x4370a1['id']};return pdf[_0xc5a8('0xe8')](_0x1c2b46,_0x187dfe);})[_0xc5a8('0x2b')](function(){return new BPromise(function(_0x297a27,_0x2ea7b8){zipdir(_0x4d41f0,{'saveTo':_0x42eab3},function(_0x52397b,_0x482186){if(_0x52397b)return _0x2ea7b8(_0x52397b);return _0x297a27(_0x482186);});})[_0xc5a8('0x2b')](function(){return new BPromise(function(_0x4ba772,_0x3f0764){rimraf(_0x4d41f0,function(_0xd707df){if(_0xd707df)_0x3f0764(_0xd707df);return _0x4ba772();});});})[_0xc5a8('0x2b')](function(){return _0x46d3db[_0xc5a8('0xc7')](_0x42eab3,_0x276e95,function(_0x4a9af9){if(_0x4a9af9){console[_0xc5a8('0xe9')](_0xc5a8('0xea'),_0x4a9af9);}else{fs[_0xc5a8('0xeb')](_0x42eab3);}});});});}else{return _0x46d3db[_0xc5a8('0x1f')](0xc8);}})[_0xc5a8('0x38')](handleError(_0x46d3db,null));};
\ No newline at end of file
+var _0x4756=['where','filters','field','color','from','tools_tags','select','u.id','u.fullname','ui.WhatsappInteractionId','user_has_whatsapp_interactions','left_join','users','cm_contacts','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','o.id\x20=\x20i.UserId','a.id\x20=\x20i.WhatsappAccountId','whatsapp_messages','me.WhatsappInteractionId\x20=\x20i.id','whatsapp_interaction_has_tags','t.id\x20=\x20it.TagId','expr','search','parseSearch','conditions','length','find','value','having','operator','$substring','split','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?','ContactId','buildExpression','type','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','text','some','compact','isEmpty','WhatsappAccountId','i.WhatsappAccountId\x20IN\x20?','concat','createdAt','parse','$gte','$lte','null','\x20IS\x20NULL','\x20=\x20?','`unreadMessages`\x20=\x200','`unreadMessages`\x20>\x200','tag','filter','replace','isNumeric','MATCH\x20(me.body)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','getFullTextValue','CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?','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.WhatsappAccountId\x20IS\x20NOT\x20NULL','user','role','getWhatsappAccounts','i.WhatsappAccountId\x20IS\x20NULL','agent','sequelize','toString','keyBy','merge','WhatsappInteraction','a.key','Account.mandatoryDisposition','i.*','c.firstName','Contact.firstName','c.lastName','c.email','c.phone','Contact.phone','c.mobile','Contact.mobile','Contact.fax','Owner.fullname','o.internal','Owner.internal','GROUP_CONCAT(DISTINCT\x20t.id)','groupBy','all','show','params','includeAll','include','create','describe','addMessage','WhatsappMessage','ids','findOne','pick','WhatsappInteractionId','format','YYYY-MM-DD\x20HH:mm:ss','options','rows','setTags','omit','spread','findAll','emit','whatsappInteractionTags:save','removeTags','download','unix','join','root','server','files','attachments','transcript-%d-%s.zip','CmContact','firstName','lastName','Attachment','direction','secret','read','Account','Owner','get','mkdirSync','Whatsapp','N.A.','closed','disposition','Messages','basename','createReadStream','pipe','out','System','Contact','renderFile','downloadInteraction.ejs','.pdf','createPdfFromHTML','log','unlinkSync','eml-format','rimraf','zip-dir','fast-json-patch','bluebird','ejs','fs-extra','lodash','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../components/export/pdf','../../config/license/hardware','api','../../config/utils','../../config/environment','redis','defaults','localhost','socket.io-emitter','register','sendStatus','status','end','json','undefined','limit','count','offset','set','Content-Range','save','then','destroy','error','stack','name','send','Users','map','fullname','TagIds','Tags','forEach','push','catch','index','rawAttributes','key','model','keys','query','intersection','fields','attributes','hasOwnProperty','nolimit','order','sort'];(function(_0x34ee99,_0x264f79){var _0x5a3f2f=function(_0x15a842){while(--_0x15a842){_0x34ee99['push'](_0x34ee99['shift']());}};_0x5a3f2f(++_0x264f79);}(_0x4756,0xa6));var _0x6475=function(_0x3f7bba,_0x48cbd5){_0x3f7bba=_0x3f7bba-0x0;var _0x5aa670=_0x4756[_0x3f7bba];return _0x5aa670;};'use strict';var emlformat=require(_0x6475('0x0'));var rimraf=require(_0x6475('0x1'));var zipdir=require(_0x6475('0x2'));var jsonpatch=require(_0x6475('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x6475('0x4'));var Mustache=require('mustache');var util=require('util');var path=require('path');var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x6475('0x5'));var fs=require('fs');var fs_extra=require(_0x6475('0x6'));var _=require(_0x6475('0x7'));var squel=require('squel');var crypto=require(_0x6475('0x8'));var jsforce=require(_0x6475('0x9'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x6475('0xa'));var Papa=require(_0x6475('0xb'));var Redis=require(_0x6475('0xc'));var authService=require(_0x6475('0xd'));var qs=require(_0x6475('0xe'));var as=require(_0x6475('0xf'));var pdf=require(_0x6475('0x10'));var hardwareService=require(_0x6475('0x11'));var logger=require('../../config/logger')(_0x6475('0x12'));var utils=require(_0x6475('0x13'));var config=require(_0x6475('0x14'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];config[_0x6475('0x15')]=_[_0x6475('0x16')](config[_0x6475('0x15')],{'host':_0x6475('0x17'),'port':0x18eb});var socket=require(_0x6475('0x18'))(new Redis(config[_0x6475('0x15')]));require('./whatsappInteraction.socket')[_0x6475('0x19')](socket);function respondWithStatusCode(_0x47747c,_0x15a1e9){_0x15a1e9=_0x15a1e9||0xcc;return function(_0x33ddb9){if(_0x33ddb9){return _0x47747c[_0x6475('0x1a')](_0x15a1e9);}return _0x47747c[_0x6475('0x1b')](_0x15a1e9)[_0x6475('0x1c')]();};}function respondWithResult(_0x7716ea,_0x144297){_0x144297=_0x144297||0xc8;return function(_0x35ac0a){if(_0x35ac0a){return _0x7716ea[_0x6475('0x1b')](_0x144297)[_0x6475('0x1d')](_0x35ac0a);}};}function respondWithFilteredResult(_0x1a6af8,_0xf4dd7d){return function(_0x44f97b){if(_0x44f97b){var _0x3cc390=typeof _0xf4dd7d['offset']===_0x6475('0x1e')&&typeof _0xf4dd7d[_0x6475('0x1f')]===_0x6475('0x1e');var _0x5b7a8c=_0x44f97b[_0x6475('0x20')];var _0x203846=_0x3cc390?0x0:_0xf4dd7d[_0x6475('0x21')];var _0x336ad8=_0x3cc390?_0x44f97b[_0x6475('0x20')]:_0xf4dd7d[_0x6475('0x21')]+_0xf4dd7d['limit'];var _0x53cb65;if(_0x336ad8>=_0x5b7a8c){_0x336ad8=_0x5b7a8c;_0x53cb65=0xc8;}else{_0x53cb65=0xce;}_0x1a6af8['status'](_0x53cb65);return _0x1a6af8[_0x6475('0x22')](_0x6475('0x23'),_0x203846+'-'+_0x336ad8+'/'+_0x5b7a8c)[_0x6475('0x1d')](_0x44f97b);}return null;};}function patchUpdates(_0x563082){return function(_0x29f94e){try{jsonpatch['apply'](_0x29f94e,_0x563082,!![]);}catch(_0x5b5d89){return BPromise['reject'](_0x5b5d89);}return _0x29f94e[_0x6475('0x24')]();};}function saveUpdates(_0x5b91d0,_0x4ba37d){return function(_0x561fd8){if(_0x561fd8){return _0x561fd8['update'](_0x5b91d0)[_0x6475('0x25')](function(_0x13c0c3){return _0x13c0c3;});}return null;};}function removeEntity(_0x4311ed,_0x577b1a){return function(_0x18ef16){if(_0x18ef16){return _0x18ef16[_0x6475('0x26')]()[_0x6475('0x25')](function(){_0x4311ed['status'](0xcc)[_0x6475('0x1c')]();});}};}function handleEntityNotFound(_0x175763,_0x29f94c){return function(_0x10fe81){if(!_0x10fe81){_0x175763[_0x6475('0x1a')](0x194);}return _0x10fe81;};}function handleError(_0x10f73c,_0xb4a0fb){_0xb4a0fb=_0xb4a0fb||0x1f4;return function(_0x3551d7){logger[_0x6475('0x27')](_0x3551d7[_0x6475('0x28')]);if(_0x3551d7[_0x6475('0x29')]){delete _0x3551d7[_0x6475('0x29')];}_0x10f73c['status'](_0xb4a0fb)[_0x6475('0x2a')](_0x3551d7);};}function getInteractionUsers(_0x418a1d,_0x4c7e6c){return new BPromise(function(_0x41da71,_0x3d0058){try{if(_0x4c7e6c[_0x418a1d['id']]){_0x418a1d[_0x6475('0x2b')]=_[_0x6475('0x2c')](_0x4c7e6c[_0x418a1d['id']],function(_0x42a92b){return{'id':_0x42a92b['id'],'fullname':_0x42a92b[_0x6475('0x2d')]};});}}catch(_0x2c0a73){_0x3d0058(_0x2c0a73);}_0x41da71(_0x418a1d);});}function getInteractionTags(_0x31242f,_0xbe38f){return new BPromise(function(_0x31cdcb,_0x1229d7){try{if(_0x31242f[_0x6475('0x2e')]){_0x31242f[_0x6475('0x2f')]=[];_0x31242f[_0x6475('0x2e')]['split'](',')[_0x6475('0x30')](function(_0x100fd8){_0x31242f[_0x6475('0x2f')][_0x6475('0x31')](_0xbe38f[_0x100fd8]);});}delete _0x31242f[_0x6475('0x2e')];}catch(_0x56b7be){_0x1229d7(_0x56b7be);}_0x31cdcb(_0x31242f);});}function updateWhatsappInteraction(_0x27f1a7,_0x104736,_0x3093c0){return new BPromise(function(_0x15f68c,_0x323f70){return getInteractionUsers(_0x27f1a7,_0x3093c0)[_0x6475('0x25')](function(_0x2597de){return getInteractionTags(_0x2597de,_0x104736);})[_0x6475('0x25')](function(_0x117afa){_0x15f68c(_0x117afa);})[_0x6475('0x32')](function(_0x328ba0){_0x323f70(_0x328ba0);});});}exports[_0x6475('0x33')]=function(_0x5d4e3b,_0xf9192d){var _0x8581fc={},_0x2c786c={},_0x3dfa3b={'count':0x0,'rows':[]};var _0x4ec718=_[_0x6475('0x2c')](db['WhatsappInteraction'][_0x6475('0x34')],function(_0x59af4b){return{'name':_0x59af4b['fieldName'],'type':_0x59af4b['type'][_0x6475('0x35')]};});_0x2c786c[_0x6475('0x36')]=_[_0x6475('0x2c')](_0x4ec718,_0x6475('0x29'));_0x2c786c['query']=_[_0x6475('0x37')](_0x5d4e3b[_0x6475('0x38')]);_0x2c786c['filters']=_[_0x6475('0x39')](_0x2c786c[_0x6475('0x36')],_0x2c786c[_0x6475('0x38')]);_0x8581fc['attributes']=_[_0x6475('0x39')](_0x2c786c[_0x6475('0x36')],qs['fields'](_0x5d4e3b[_0x6475('0x38')][_0x6475('0x3a')]));_0x8581fc[_0x6475('0x3b')]=_0x8581fc[_0x6475('0x3b')]['length']?_0x8581fc['attributes']:_0x2c786c[_0x6475('0x36')];if(!_0x5d4e3b[_0x6475('0x38')][_0x6475('0x3c')](_0x6475('0x3d'))){_0x8581fc[_0x6475('0x1f')]=qs[_0x6475('0x1f')](_0x5d4e3b[_0x6475('0x38')][_0x6475('0x1f')]);_0x8581fc[_0x6475('0x21')]=qs[_0x6475('0x21')](_0x5d4e3b[_0x6475('0x38')][_0x6475('0x21')]);}_0x8581fc[_0x6475('0x3e')]=qs['sort'](_0x5d4e3b[_0x6475('0x38')][_0x6475('0x3f')]);_0x8581fc[_0x6475('0x40')]=qs[_0x6475('0x41')](_['pick'](_0x5d4e3b['query'],_0x2c786c[_0x6475('0x41')]),_0x4ec718);var _0x3d9a83=[];var _0x186ac6=squel['select']()[_0x6475('0x42')]('id')[_0x6475('0x42')](_0x6475('0x29'))['field'](_0x6475('0x43'))[_0x6475('0x44')](_0x6475('0x45'));var _0x55b79b=squel[_0x6475('0x46')]()['field'](_0x6475('0x47'))[_0x6475('0x42')](_0x6475('0x48'))[_0x6475('0x42')](_0x6475('0x49'))['from'](_0x6475('0x4a'),'ui')[_0x6475('0x4b')](_0x6475('0x4c'),'u','u.id\x20=\x20ui.UserId');var _0x37f075=squel[_0x6475('0x46')]()[_0x6475('0x44')]('whatsapp_interactions','i')[_0x6475('0x4b')](_0x6475('0x4d'),'c',_0x6475('0x4e'))[_0x6475('0x4b')](_0x6475('0x4c'),'o',_0x6475('0x4f'))['left_join']('whatsapp_accounts','a',_0x6475('0x50'))[_0x6475('0x4b')](_0x6475('0x51'),'me',_0x6475('0x52'))[_0x6475('0x4b')](_0x6475('0x53'),'it','it.WhatsappInteractionId\x20=\x20i.id')['left_join'](_0x6475('0x45'),'t',_0x6475('0x54'));var _0x3a4c86=squel[_0x6475('0x55')]();var _0x185de5=[];var _0x138383=squel['expr']();var _0x4996c2;if(_0x5d4e3b[_0x6475('0x38')][_0x6475('0x56')]){_0x4996c2=as[_0x6475('0x57')](_0x5d4e3b['query']['search']);var _0x139487=_0x4996c2['sqlOperator'];for(var _0x5ef253=0x0;_0x5ef253<_0x4996c2[_0x6475('0x58')][_0x6475('0x59')];_0x5ef253++){var _0x159a42=_0x4996c2[_0x6475('0x58')][_0x5ef253];var _0xe94591='i';var _0x2e4179=_[_0x6475('0x5a')](_0x4ec718,[_0x6475('0x29'),_0x159a42[_0x6475('0x42')]]);if(!_0x2e4179){switch(_0x159a42[_0x6475('0x42')]){case'unreadMessages':if(_0x159a42[_0x6475('0x5b')]==0x1){_0x37f075['having']('`'+_0x159a42[_0x6475('0x42')]+'`\x20=\x200');}else{_0x37f075[_0x6475('0x5c')]('`'+_0x159a42[_0x6475('0x42')]+'`\x20>\x200');}break;case'Contact':if(_0x159a42[_0x6475('0x5d')]===_0x6475('0x5e')){if(_0x159a42[_0x6475('0x5b')][_0x6475('0x5f')]('\x20')[_0x6475('0x59')]>0x1){_0x3a4c86[_0x139487](_0x6475('0x60'),qs['getFullTextValue'](_0x159a42[_0x6475('0x5b')]),null);}else{var _0x302a23='%'+_0x159a42[_0x6475('0x5b')]+'%';_0x3a4c86[_0x139487](_0x6475('0x61'),_0x302a23,_0x302a23,_0x302a23);}}else{_0x2e4179=_[_0x6475('0x5a')](_0x4ec718,['name','ContactId']);_0x159a42[_0x6475('0x42')]=_0x6475('0x62');_0x41fb28=as[_0x6475('0x63')](_0xe94591,_0x2e4179[_0x6475('0x64')],_0x159a42);_0x3a4c86[_0x139487](_0x41fb28['text'],_0x41fb28['value'][_0x6475('0x65')],_0x41fb28[_0x6475('0x5b')]['end']);}break;case _0x6475('0x66'):var _0x41275c=_0x159a42[_0x6475('0x5b')][_0x6475('0x5f')](',')[_0x6475('0x2c')](function(_0x34f6c4){return Number(_0x34f6c4);});_0x41275c['forEach'](function(_0x20b00d){_0x138383['or'](_0x6475('0x67'),'%,'+_0x20b00d+',%');});_0x185de5=_[_0x6475('0x68')](_0x185de5,_0x41275c);break;case _0x6475('0x69'):if(_0x159a42['operator']==='$substring'){_0x3a4c86[_0x139487](_0x6475('0x6a'),'%'+_0x159a42['value']+'%',null);}else{_0x2e4179=_['find'](_0x4ec718,[_0x6475('0x29'),_0x6475('0x6b')]);_0x159a42[_0x6475('0x42')]=_0x6475('0x6b');_0x41fb28=as[_0x6475('0x63')](_0xe94591,_0x2e4179['type'],_0x159a42);_0x3a4c86[_0x139487](_0x41fb28['text'],_0x41fb28[_0x6475('0x5b')]['start'],_0x41fb28[_0x6475('0x5b')]['end']);}break;case _0x6475('0x6c'):_0x41fb28=as['buildExpression']('me',null,_0x159a42);_0x3a4c86[_0x139487](_0x41fb28[_0x6475('0x6d')],_0x41fb28[_0x6475('0x5b')][_0x6475('0x65')],_0x41fb28[_0x6475('0x5b')][_0x6475('0x1c')]);break;}}else{var _0x41fb28=as[_0x6475('0x63')](_0xe94591,_0x2e4179[_0x6475('0x64')],_0x159a42);_0x3a4c86[_0x139487](_0x41fb28[_0x6475('0x6d')],_0x41fb28[_0x6475('0x5b')][_0x6475('0x65')],_0x41fb28[_0x6475('0x5b')][_0x6475('0x1c')]);}}}else{var _0x2117bf=_(_0x5d4e3b[_0x6475('0x38')])['keys']()[_0x6475('0x2c')](function(_0x2c09fe){return _[_0x6475('0x6e')](_0x4ec718,[_0x6475('0x29'),_0x2c09fe])?_0x2c09fe:undefined;})[_0x6475('0x6f')]()['value']();if(!_[_0x6475('0x70')](_0x2117bf)){_0x2117bf[_0x6475('0x30')](function(_0x398669){if(_0x398669===_0x6475('0x71')){_0x37f075[_0x6475('0x40')](_0x6475('0x72'),[][_0x6475('0x73')](_0x5d4e3b[_0x6475('0x38')][_0x398669]));}else if(_0x398669===_0x6475('0x74')){var _0x542701=JSON[_0x6475('0x75')](_0x5d4e3b['query'][_0x398669])[_0x6475('0x76')];var _0x5b0dee=JSON['parse'](_0x5d4e3b[_0x6475('0x38')][_0x398669])[_0x6475('0x77')];_0x37f075[_0x6475('0x40')]('i.createdAt\x20BETWEEN\x20?\x20AND\x20?',_0x542701,_0x5b0dee);}else{if(_0x5d4e3b[_0x6475('0x38')][_0x398669]===_0x6475('0x78')){_0x37f075['where']('i.'+_0x398669+_0x6475('0x79'));}else{_0x37f075['where']('i.'+_0x398669+_0x6475('0x7a'),_0x5d4e3b[_0x6475('0x38')][_0x398669]);}}});}if(_0x5d4e3b[_0x6475('0x38')]['read']){if(_0x5d4e3b[_0x6475('0x38')]['read']==0x1){_0x37f075[_0x6475('0x5c')](_0x6475('0x7b'));}else{_0x37f075[_0x6475('0x5c')](_0x6475('0x7c'));}}if(_0x5d4e3b[_0x6475('0x38')][_0x6475('0x7d')]){_0x185de5=_['isArray'](_0x5d4e3b[_0x6475('0x38')][_0x6475('0x7d')])?_0x5d4e3b['query'][_0x6475('0x7d')]:new Array(_0x5d4e3b['query'][_0x6475('0x7d')]);_0x185de5[_0x6475('0x30')](function(_0x3b66c1){_0x138383['or'](_0x6475('0x67'),'%,'+_0x3b66c1+',%');});}if(_0x5d4e3b[_0x6475('0x38')][_0x6475('0x7e')]){var _0x495e7e=_0x5d4e3b['query'][_0x6475('0x7e')][_0x6475('0x7f')]('\x5c','\x5c\x5c')[_0x6475('0x7f')](/'/g,'\x27\x27');if(qs[_0x6475('0x80')](_0x495e7e)){_0x3a4c86['or']('i.id\x20LIKE\x20?',_0x495e7e+'%')['or']('i.phone\x20LIKE\x20?',_0x495e7e+'%');}else{_0x3a4c86['or'](_0x6475('0x81'),qs[_0x6475('0x82')](_0x495e7e))['or'](_0x6475('0x83'),_0x495e7e+'%');}}}_0x37f075['where'](_0x3a4c86);_0x37f075['group'](_0x6475('0x84'));var _0x4b8e76={'type':db['Sequelize'][_0x6475('0x85')][_0x6475('0x86')],'raw':!![]};var _0x4298bd=_0x37f075[_0x6475('0x87')]();_0x4298bd[_0x6475('0x42')](_0x6475('0x84'));_0x4298bd[_0x6475('0x42')](_0x6475('0x88'),_0x6475('0x89'));if(_0x8581fc[_0x6475('0x3e')]){_0x8581fc[_0x6475('0x3e')]['forEach'](function(_0x22b8bf){var _0x5a3e55=_0x22b8bf[0x0]===_0x6475('0x8a')?_0x22b8bf[0x0]:'i.'+_0x22b8bf[0x0];_0x37f075[_0x6475('0x3e')](_0x5a3e55,_0x22b8bf[0x1]===_0x6475('0x8b')?![]:!![]);});}if(!_[_0x6475('0x70')](_0x185de5)){_0x37f075[_0x6475('0x5c')](_0x138383);_0x4298bd['where'](_0x6475('0x8c'),_0x185de5);}BPromise[_0x6475('0x8d')]()[_0x6475('0x25')](function(){if(!_0x4996c2){if(_0x5d4e3b[_0x6475('0x38')]['WhatsappAccountId'])return;_0x4298bd[_0x6475('0x40')](_0x6475('0x8e'));_0x37f075[_0x6475('0x40')](_0x6475('0x8e'));return;}if(_0x5d4e3b[_0x6475('0x8f')][_0x6475('0x90')]!=='agent')return;return _0x5d4e3b[_0x6475('0x8f')][_0x6475('0x91')]({'attributes':['id'],'raw':!![]})[_0x6475('0x25')](function(_0x41ed76){if(_[_0x6475('0x70')](_0x41ed76)){_0x4298bd[_0x6475('0x40')](_0x6475('0x92'));_0x37f075[_0x6475('0x40')](_0x6475('0x92'));}else{_0x4298bd[_0x6475('0x40')](_0x6475('0x72'),_[_0x6475('0x2c')](_0x41ed76,'id'));_0x37f075[_0x6475('0x40')]('i.WhatsappAccountId\x20IN\x20?',_['map'](_0x41ed76,'id'));}});})[_0x6475('0x25')](function(){if(_0x5d4e3b[_0x6475('0x8f')][_0x6475('0x90')]===_0x6475('0x93')&&!_0x4996c2&&!_0x5d4e3b[_0x6475('0x38')][_0x6475('0x71')])return[];return db[_0x6475('0x94')][_0x6475('0x38')](_0x4298bd[_0x6475('0x95')](),_0x4b8e76);})[_0x6475('0x25')](function(_0x5deae9){_0x3dfa3b['count']=_0x5deae9[_0x6475('0x59')];if(_0x3dfa3b[_0x6475('0x20')]===0x0)return[];return db[_0x6475('0x94')][_0x6475('0x38')](_0x186ac6[_0x6475('0x95')](),_0x4b8e76)['then'](function(_0x31a57d){_0x3d9a83=_[_0x6475('0x96')](_0x31a57d,'id');_0x4b8e76=_[_0x6475('0x97')](_0x4b8e76,{'model':db[_0x6475('0x98')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x5d4e3b['query'][_0x6475('0x3a')]){_0x8581fc[_0x6475('0x3b')][_0x6475('0x30')](function(_0x20444e){_0x37f075[_0x6475('0x42')]('i.'+_0x20444e);});}else{_0x37f075[_0x6475('0x42')](_0x6475('0x88'),_0x6475('0x89'));_0x37f075['field'](_0x6475('0x99'),'Account.key');_0x37f075[_0x6475('0x42')]('a.mandatoryDisposition',_0x6475('0x9a'));_0x37f075[_0x6475('0x42')]('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',_0x6475('0x8a'));_0x37f075[_0x6475('0x42')](_0x6475('0x9b'));_0x37f075['field'](_0x6475('0x9c'),_0x6475('0x9d'));_0x37f075[_0x6475('0x42')](_0x6475('0x9e'),'Contact.lastName');_0x37f075[_0x6475('0x42')](_0x6475('0x9f'),'Contact.email');_0x37f075[_0x6475('0x42')](_0x6475('0xa0'),_0x6475('0xa1'));_0x37f075[_0x6475('0x42')](_0x6475('0xa2'),_0x6475('0xa3'));_0x37f075['field']('c.fax',_0x6475('0xa4'));_0x37f075[_0x6475('0x42')]('o.fullname',_0x6475('0xa5'));_0x37f075['field'](_0x6475('0xa6'),_0x6475('0xa7'));_0x37f075['field'](_0x6475('0xa8'),_0x6475('0x2e'));}if(_0x8581fc[_0x6475('0x1f')])_0x37f075[_0x6475('0x1f')](_0x8581fc[_0x6475('0x1f')]);if(_0x8581fc['offset'])_0x37f075['offset'](_0x8581fc[_0x6475('0x21')]);return db[_0x6475('0x94')][_0x6475('0x38')](_0x37f075['toString'](),_0x4b8e76);})[_0x6475('0x25')](function(_0x503532){if(_0x503532[_0x6475('0x59')]>0x0)_0x55b79b['where']('ui.WhatsappInteractionId\x20IN\x20?',_['map'](_0x503532,'id'));return db[_0x6475('0x94')][_0x6475('0x38')](_0x55b79b[_0x6475('0x95')](),_0x4b8e76)[_0x6475('0x25')](function(_0x10f605){var _0x3fd11d=_[_0x6475('0xa9')](_0x10f605,'WhatsappInteractionId');var _0x997fb=[];_0x503532[_0x6475('0x30')](function(_0x38229c){_0x997fb[_0x6475('0x31')](updateWhatsappInteraction(_0x38229c,_0x3d9a83,_0x3fd11d));});return BPromise[_0x6475('0xaa')](_0x997fb);});});})[_0x6475('0x25')](function(_0xcd3e46){_0x3dfa3b['rows']=_0xcd3e46;return _0x3dfa3b;})[_0x6475('0x25')](respondWithFilteredResult(_0xf9192d,_0x8581fc))['catch'](handleError(_0xf9192d,null));};exports[_0x6475('0xab')]=function(_0x49233b,_0x63b323){var _0x73e8ea={'raw':![],'where':{'id':_0x49233b[_0x6475('0xac')]['id']}},_0x3428cd={};_0x3428cd[_0x6475('0x36')]=_[_0x6475('0x37')](db['WhatsappInteraction'][_0x6475('0x34')]);_0x3428cd[_0x6475('0x38')]=_[_0x6475('0x37')](_0x49233b[_0x6475('0x38')]);_0x3428cd[_0x6475('0x41')]=_[_0x6475('0x39')](_0x3428cd[_0x6475('0x36')],_0x3428cd[_0x6475('0x38')]);_0x73e8ea['attributes']=_[_0x6475('0x39')](_0x3428cd[_0x6475('0x36')],qs[_0x6475('0x3a')](_0x49233b[_0x6475('0x38')][_0x6475('0x3a')]));_0x73e8ea['attributes']=_0x73e8ea['attributes'][_0x6475('0x59')]?_0x73e8ea['attributes']:_0x3428cd[_0x6475('0x36')];if(_0x49233b[_0x6475('0x38')][_0x6475('0xad')]){_0x73e8ea[_0x6475('0xae')]=[{'all':!![]}];}_0x73e8ea=_[_0x6475('0x97')]({},_0x73e8ea,_0x49233b['options']);return db[_0x6475('0x98')][_0x6475('0x5a')](_0x73e8ea)[_0x6475('0x25')](handleEntityNotFound(_0x63b323,null))[_0x6475('0x25')](respondWithResult(_0x63b323,null))['catch'](handleError(_0x63b323,null));};exports['create']=function(_0x1a7012,_0x52c31c){return db[_0x6475('0x98')][_0x6475('0xaf')](_0x1a7012['body'],{})[_0x6475('0x25')](respondWithResult(_0x52c31c,0xc9))[_0x6475('0x32')](handleError(_0x52c31c,null));};exports['update']=function(_0xacd0c4,_0x3bd4a4){if(_0xacd0c4[_0x6475('0x6c')]['id']){delete _0xacd0c4['body']['id'];}return db[_0x6475('0x98')][_0x6475('0x5a')]({'where':{'id':_0xacd0c4[_0x6475('0xac')]['id']}})[_0x6475('0x25')](handleEntityNotFound(_0x3bd4a4,null))[_0x6475('0x25')](saveUpdates(_0xacd0c4['body'],null))[_0x6475('0x25')](respondWithResult(_0x3bd4a4,null))[_0x6475('0x32')](handleError(_0x3bd4a4,null));};exports[_0x6475('0x26')]=function(_0x50fd34,_0x7c8d64){return db[_0x6475('0x98')][_0x6475('0x5a')]({'where':{'id':_0x50fd34['params']['id']}})[_0x6475('0x25')](handleEntityNotFound(_0x7c8d64,null))[_0x6475('0x25')](removeEntity(_0x7c8d64,null))[_0x6475('0x32')](handleError(_0x7c8d64,null));};exports[_0x6475('0xb0')]=function(_0x4934ae,_0x1ed1b7){return db['WhatsappInteraction'][_0x6475('0xb0')]()[_0x6475('0x25')](respondWithResult(_0x1ed1b7,null))[_0x6475('0x32')](handleError(_0x1ed1b7,null));};exports[_0x6475('0xb1')]=function(_0x3e6bb8,_0x122c3b,_0x328eb1){return db[_0x6475('0xb2')][_0x6475('0x5a')]({'where':{'id':_0x3e6bb8[_0x6475('0xac')]['id']}})['then'](handleEntityNotFound(_0x122c3b,null))[_0x6475('0x25')](function(_0x486355){if(_0x486355){return _0x486355[_0x6475('0xb1')](_0x3e6bb8['body'][_0x6475('0xb3')],_['omit'](_0x3e6bb8['body'],['ids','id'])||{});}})['then'](respondWithResult(_0x122c3b,null))[_0x6475('0x32')](handleError(_0x122c3b,null));};exports['getMessages']=function(_0x32fffd,_0x176308,_0x5a26cb){var _0x4df8f2={'raw':![],'where':{}};var _0x424891={};var _0x48140c={'count':0x0,'rows':[]};return db[_0x6475('0x98')][_0x6475('0xb4')]({'where':{'id':_0x32fffd[_0x6475('0xac')]['id']}})[_0x6475('0x25')](handleEntityNotFound(_0x176308,null))[_0x6475('0x25')](function(_0x4bd46d){if(_0x4bd46d){_0x424891[_0x6475('0x36')]=_[_0x6475('0x37')](db[_0x6475('0xb2')]['rawAttributes']);_0x424891[_0x6475('0x38')]=_[_0x6475('0x37')](_0x32fffd[_0x6475('0x38')]);_0x424891[_0x6475('0x41')]=_[_0x6475('0x39')](_0x424891[_0x6475('0x36')],_0x424891[_0x6475('0x38')]);_0x4df8f2[_0x6475('0x3b')]=_[_0x6475('0x39')](_0x424891[_0x6475('0x36')],qs['fields'](_0x32fffd[_0x6475('0x38')][_0x6475('0x3a')]));_0x4df8f2[_0x6475('0x3b')]=_0x4df8f2['attributes'][_0x6475('0x59')]?_0x4df8f2[_0x6475('0x3b')]:_0x424891[_0x6475('0x36')];if(!_0x32fffd[_0x6475('0x38')][_0x6475('0x3c')](_0x6475('0x3d'))){_0x4df8f2[_0x6475('0x1f')]=qs[_0x6475('0x1f')](_0x32fffd[_0x6475('0x38')][_0x6475('0x1f')]);_0x4df8f2[_0x6475('0x21')]=qs[_0x6475('0x21')](_0x32fffd[_0x6475('0x38')][_0x6475('0x21')]);}_0x4df8f2[_0x6475('0x3e')]=qs[_0x6475('0x3f')](_0x32fffd['query'][_0x6475('0x3f')]);_0x4df8f2[_0x6475('0x40')]=qs[_0x6475('0x41')](_[_0x6475('0xb5')](_0x32fffd[_0x6475('0x38')],_0x424891['filters']));_0x4df8f2[_0x6475('0x40')][_0x6475('0xb6')]=_0x4bd46d['id'];if(_0x32fffd[_0x6475('0x38')][_0x6475('0x7e')]){_0x4df8f2[_0x6475('0x40')]=_[_0x6475('0x97')](_0x4df8f2[_0x6475('0x40')],{'$or':_['map'](_0x4df8f2[_0x6475('0x3b')],function(_0x137a82){var _0x52340a={};_0x52340a[_0x137a82]={'$like':'%'+_0x32fffd[_0x6475('0x38')][_0x6475('0x7e')]+'%'};return _0x52340a;})});}if(_0x32fffd[_0x6475('0x38')][_0x6475('0x76')]){var _0x49b807=_0x32fffd['query'][_0x6475('0x76')][_0x6475('0x5f')](',');var _0x41c8e0={};_0x41c8e0[_0x49b807[0x0]]={'$gte':moment(_0x49b807[0x1])[_0x6475('0xb7')](_0x6475('0xb8'))};_0x4df8f2['where']=_[_0x6475('0x97')](_0x4df8f2[_0x6475('0x40')],_0x41c8e0);}_0x4df8f2=_['merge']({},_0x4df8f2,_0x32fffd[_0x6475('0xb9')]);return db[_0x6475('0xb2')][_0x6475('0x20')]({'where':_0x4df8f2['where']})['then'](function(_0x4d1443){_0x48140c[_0x6475('0x20')]=_0x4d1443;if(_0x32fffd['query']['includeAll']){_0x4df8f2[_0x6475('0xae')]=[{'all':!![]}];}return db[_0x6475('0xb2')]['findAll'](_0x4df8f2);})['then'](function(_0x233da0){_0x48140c[_0x6475('0xba')]=_0x233da0;return _0x48140c;});}})[_0x6475('0x25')](respondWithFilteredResult(_0x176308,_0x4df8f2))[_0x6475('0x32')](handleError(_0x176308,null));};exports['addTags']=function(_0x1a4cc0,_0x244111,_0x354e63){return db[_0x6475('0x98')][_0x6475('0x5a')]({'where':{'id':_0x1a4cc0[_0x6475('0xac')]['id']}})[_0x6475('0x25')](handleEntityNotFound(_0x244111,null))[_0x6475('0x25')](function(_0x402153){if(_0x402153){return _0x402153[_0x6475('0xbb')](_0x1a4cc0[_0x6475('0x6c')][_0x6475('0xb3')],_[_0x6475('0xbc')](_0x1a4cc0[_0x6475('0x6c')],[_0x6475('0xb3'),'id'])||{})[_0x6475('0xbd')](function(){return db['Tag'][_0x6475('0xbe')]({'attributes':['id',_0x6475('0x29'),'color'],'where':{'id':_0x1a4cc0[_0x6475('0x6c')][_0x6475('0xb3')]}});})[_0x6475('0x25')](function(_0x4485d2){socket[_0x6475('0xbf')](_0x6475('0xc0'),{'id':Number(_0x1a4cc0[_0x6475('0xac')]['id']),'tags':_0x4485d2||[]});return{'id':Number(_0x1a4cc0[_0x6475('0xac')]['id']),'tags':_0x4485d2||[]};});}})['then'](respondWithResult(_0x244111,null))[_0x6475('0x32')](handleError(_0x244111,null));};exports[_0x6475('0xc1')]=function(_0x76c5e3,_0x5af3a7,_0x522775){return db[_0x6475('0x98')][_0x6475('0x5a')]({'where':{'id':_0x76c5e3[_0x6475('0xac')]['id']}})['then'](handleEntityNotFound(_0x5af3a7,null))[_0x6475('0x25')](function(_0x41eeea){if(_0x41eeea){return _0x41eeea[_0x6475('0xc1')](_0x76c5e3[_0x6475('0x38')][_0x6475('0xb3')]);}})['then'](respondWithStatusCode(_0x5af3a7,null))[_0x6475('0x32')](handleError(_0x5af3a7,null));};exports[_0x6475('0xc2')]=function(_0x3931e8,_0x3bfc3b){var _0x3c5cb6=moment()[_0x6475('0xc3')]()[_0x6475('0x95')]();var _0x421a81=path[_0x6475('0xc4')](config[_0x6475('0xc5')],_0x6475('0xc6'),_0x6475('0xc7'),'tmp');var _0x3f260b=path[_0x6475('0xc4')](config[_0x6475('0xc5')],_0x6475('0xc6'),_0x6475('0xc7'),_0x6475('0xc8'));var _0x3f57b2=path[_0x6475('0xc4')](_0x421a81,_0x3c5cb6);var _0x482a23=util[_0x6475('0xb7')](_0x6475('0xc9'),_0x3931e8[_0x6475('0xac')]['id'],_0x3c5cb6);var _0x48a295=path[_0x6475('0xc4')](_0x421a81,_0x482a23);var _0x59f694=[];_0x59f694[_0x6475('0x31')]({'model':db[_0x6475('0x69')],'as':_0x6475('0x69'),'attributes':['id',_0x6475('0x2d')],'raw':!![]});_0x59f694[_0x6475('0x31')]({'model':db[_0x6475('0xca')],'as':'Contact','attributes':['id',_0x6475('0xcb'),_0x6475('0xcc')],'raw':!![]});if(_0x3931e8['query'][_0x6475('0xc8')]){_0x59f694[_0x6475('0x31')]({'model':db[_0x6475('0xcd')],'as':_0x6475('0xcd'),'raw':!![]});}var _0x32e517=[{'model':db[_0x6475('0xb2')],'as':'Messages','attributes':['id',_0x6475('0x6c'),_0x6475('0x74'),_0x6475('0xce'),_0x6475('0xcf'),_0x6475('0xd0')],'include':_0x59f694}];_0x32e517[_0x6475('0x31')]({'model':db['WhatsappAccount'],'as':_0x6475('0xd1'),'attributes':['id',_0x6475('0x29')]});_0x32e517[_0x6475('0x31')]({'model':db[_0x6475('0x69')],'as':_0x6475('0xd2'),'attributes':['id',_0x6475('0x2d')]});return db[_0x6475('0x98')][_0x6475('0x5a')]({'where':{'id':_0x3931e8[_0x6475('0xac')]['id']},'include':_0x32e517})[_0x6475('0x25')](handleEntityNotFound(_0x3bfc3b,null))[_0x6475('0x25')](function(_0xd837f6){if(_0xd837f6){var _0x42c71c=_0xd837f6[_0x6475('0xd3')]({'plain':!![]});fs[_0x6475('0xd4')](_0x3f57b2);var _0x38256c={'channel':_0x6475('0xd5'),'account':_0x42c71c[_0x6475('0xd1')]['name'],'agent':_0x42c71c[_0x6475('0xd2')]?_0x42c71c[_0x6475('0xd2')][_0x6475('0x2d')]:_0x6475('0xd6'),'createdAt':moment(_0x42c71c[_0x6475('0x74')])['format'](_0x6475('0xb8'))[_0x6475('0x95')](),'closedAt':_0x42c71c[_0x6475('0xd7')]?moment(_0x42c71c['closedAt'])[_0x6475('0xb7')](_0x6475('0xb8'))[_0x6475('0x95')]():'','disposition':_0x42c71c[_0x6475('0xd8')],'messages':_(_0x42c71c[_0x6475('0xd9')])[_0x6475('0x7e')]({'secret':![]})[_0x6475('0x2c')](function(_0x604126){if(_0x604126[_0x6475('0xcd')]){var _0x42b2fe=path['join'](_0x3f260b,_0x604126[_0x6475('0xcd')][_0x6475('0xda')]);if(fs['existsSync'](_0x42b2fe)){fs[_0x6475('0xdb')](_0x42b2fe)[_0x6475('0xdc')](fs['createWriteStream'](path[_0x6475('0xc4')](_0x3f57b2,_0x604126['Attachment'][_0x6475('0xda')])));}}return{'date':moment(_0x604126[_0x6475('0x74')])[_0x6475('0xb7')](_0x6475('0xb8'))[_0x6475('0x95')](),'sender':_0x604126['direction']===_0x6475('0xdd')?_0x604126[_0x6475('0x69')]?_0x604126[_0x6475('0x69')][_0x6475('0x2d')]:_0x6475('0xde'):_0x604126[_0x6475('0xdf')][_0x6475('0xcb')]+(_0x604126[_0x6475('0xdf')][_0x6475('0xcc')]?'\x20'+_0x604126[_0x6475('0xdf')]['lastName']:''),'body':_0x604126[_0x6475('0xcd')]?_0x604126[_0x6475('0xcd')]['basename']:_0x604126[_0x6475('0x6c')],'direction':_0x604126[_0x6475('0xce')]===_0x6475('0xdd')?'A':'C','secret':_0x604126[_0x6475('0xcf')],'read':_0x604126['read'],'attachment':_0x604126[_0x6475('0xcd')]};})[_0x6475('0x5b')]()};return ejs[_0x6475('0xe0')](path[_0x6475('0xc4')](config[_0x6475('0xc5')],'server','views',_0x6475('0xe1')),{'interaction':_0x38256c})[_0x6475('0x25')](function(_0xc91135){var _0x139c45=path[_0x6475('0xc4')](_0x3f57b2,'transcript-'+_0x42c71c['id']+'-'+_0x3c5cb6+_0x6475('0xe2'));var _0x5143f6={'path':_0x139c45,'channel':'Whatsapp','interactionId':_0x42c71c['id']};return pdf[_0x6475('0xe3')](_0xc91135,_0x5143f6);})[_0x6475('0x25')](function(){return new BPromise(function(_0x3e0159,_0x2cb20a){zipdir(_0x3f57b2,{'saveTo':_0x48a295},function(_0x365916,_0x522a07){if(_0x365916)return _0x2cb20a(_0x365916);return _0x3e0159(_0x522a07);});})[_0x6475('0x25')](function(){return new BPromise(function(_0x537bbb,_0x2d15d1){rimraf(_0x3f57b2,function(_0x9c2f0f){if(_0x9c2f0f)_0x2d15d1(_0x9c2f0f);return _0x537bbb();});});})['then'](function(){return _0x3bfc3b[_0x6475('0xc2')](_0x48a295,_0x482a23,function(_0x12df4f){if(_0x12df4f){console[_0x6475('0xe4')]('err',_0x12df4f);}else{fs[_0x6475('0xe5')](_0x48a295);}});});});}else{return _0x3bfc3b[_0x6475('0x1a')](0xc8);}})[_0x6475('0x32')](handleError(_0x3bfc3b,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbbfa=['remove','getUsers','then','map','unreadMessages','emit','hasOwnProperty','hook','exports','events','WhatsappInteraction','WhatsappMessage','setMaxListeners','save','update'];(function(_0x1ce337,_0x2e7814){var _0x157500=function(_0x4e4486){while(--_0x4e4486){_0x1ce337['push'](_0x1ce337['shift']());}};_0x157500(++_0x2e7814);}(_0xbbfa,0x1e9));var _0xabbf=function(_0x37bef1,_0xecf330){_0x37bef1=_0x37bef1-0x0;var _0x342427=_0xbbfa[_0x37bef1];return _0x342427;};'use strict';var EventEmitter=require(_0xabbf('0x0'));var WhatsappInteraction=require('../../mysqldb')['db'][_0xabbf('0x1')];var WhatsappMessage=require('../../mysqldb')['db'][_0xabbf('0x2')];var WhatsappInteractionEvents=new EventEmitter();WhatsappInteractionEvents[_0xabbf('0x3')](0x0);var events={'afterCreate':_0xabbf('0x4'),'afterUpdate':_0xabbf('0x5'),'afterDestroy':_0xabbf('0x6')};function emitEvent(_0xfd2359){return function(_0x1c5596,_0x45b118,_0x120840){_0x1c5596[_0xabbf('0x7')]({'attributes':['id'],'raw':!![]})[_0xabbf('0x8')](function(_0x58f0a8){_0x1c5596['setDataValue']('Users',_0x58f0a8[_0xabbf('0x9')](function(_0x260181){return{'id':_0x260181['id']};}));return WhatsappMessage['findAll']({'where':{'WhatsappInteractionId':_0x1c5596['id'],'direction':'in','read':![]},'raw':!![]});})['then'](function(_0x2f1d5d){_0x1c5596['setDataValue'](_0xabbf('0xa'),_0x2f1d5d['length']);WhatsappInteractionEvents[_0xabbf('0xb')](_0xfd2359+':'+_0x1c5596['id'],_0x1c5596);WhatsappInteractionEvents['emit'](_0xfd2359,_0x1c5596);_0x120840(null);})['catch'](_0x120840(null));};}for(var e in events){if(events[_0xabbf('0xc')](e)){var event=events[e];WhatsappInteraction[_0xabbf('0xd')](e,emitEvent(event));}}module[_0xabbf('0xe')]=WhatsappInteractionEvents;
\ No newline at end of file
+var _0x9189=['WhatsappMessage','setMaxListeners','update','getUsers','then','findAll','unreadMessages','length','emit','catch','hasOwnProperty','hook','WhatsappInteraction','../../mysqldb'];(function(_0x5bdf8e,_0x45d970){var _0x3e0750=function(_0x41298b){while(--_0x41298b){_0x5bdf8e['push'](_0x5bdf8e['shift']());}};_0x3e0750(++_0x45d970);}(_0x9189,0x1b0));var _0x9918=function(_0x2035cb,_0x5a4ab8){_0x2035cb=_0x2035cb-0x0;var _0x288eef=_0x9189[_0x2035cb];return _0x288eef;};'use strict';var EventEmitter=require('events');var WhatsappInteraction=require('../../mysqldb')['db'][_0x9918('0x0')];var WhatsappMessage=require(_0x9918('0x1'))['db'][_0x9918('0x2')];var WhatsappInteractionEvents=new EventEmitter();WhatsappInteractionEvents[_0x9918('0x3')](0x0);var events={'afterCreate':'save','afterUpdate':_0x9918('0x4'),'afterDestroy':'remove'};function emitEvent(_0x4cb5a2){return function(_0xfd91d2,_0x325957,_0x4a47d4){_0xfd91d2[_0x9918('0x5')]({'attributes':['id'],'raw':!![]})[_0x9918('0x6')](function(_0x7b8770){_0xfd91d2['setDataValue']('Users',_0x7b8770['map'](function(_0x46bef9){return{'id':_0x46bef9['id']};}));return WhatsappMessage[_0x9918('0x7')]({'where':{'WhatsappInteractionId':_0xfd91d2['id'],'direction':'in','read':![]},'raw':!![]});})['then'](function(_0x21f0ff){_0xfd91d2['setDataValue'](_0x9918('0x8'),_0x21f0ff[_0x9918('0x9')]);WhatsappInteractionEvents[_0x9918('0xa')](_0x4cb5a2+':'+_0xfd91d2['id'],_0xfd91d2);WhatsappInteractionEvents[_0x9918('0xa')](_0x4cb5a2,_0xfd91d2);_0x4a47d4(null);})[_0x9918('0xb')](_0x4a47d4(null));};}for(var e in events){if(events[_0x9918('0xc')](e)){var event=events[e];WhatsappInteraction[_0x9918('0xd')](e,emitEvent(event));}}module['exports']=WhatsappInteractionEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x39d7=['YYYY-MM-DD\x20HH:mm:ss','lodash','util','../../config/logger','moment','bluebird','path','./whatsappInteraction.attributes','exports','define','changed','closed'];(function(_0x40ef08,_0x6d88f1){var _0x451bb6=function(_0x596c26){while(--_0x596c26){_0x40ef08['push'](_0x40ef08['shift']());}};_0x451bb6(++_0x6d88f1);}(_0x39d7,0x12d));var _0x739d=function(_0x500d52,_0x33b95e){_0x500d52=_0x500d52-0x0;var _0x2ecfbe=_0x39d7[_0x500d52];return _0x2ecfbe;};'use strict';var _=require(_0x739d('0x0'));var util=require(_0x739d('0x1'));var logger=require(_0x739d('0x2'))('api');var moment=require(_0x739d('0x3'));var BPromise=require(_0x739d('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x739d('0x5'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0x739d('0x6'));module[_0x739d('0x7')]=function(_0x21c1a3,_0x55519e){return _0x21c1a3[_0x739d('0x8')]('WhatsappInteraction',attributes,{'tableName':'whatsapp_interactions','paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeUpdate':function(_0x2c8dbd,_0x5866b5,_0x29bf1d){if(_0x2c8dbd[_0x739d('0x9')](_0x739d('0xa'))){_0x2c8dbd['closedAt']=moment()['format'](_0x739d('0xb'));}_0x29bf1d(null,_0x2c8dbd);}}});};
\ No newline at end of file
+var _0x3586=['changed','closed','closedAt','YYYY-MM-DD\x20HH:mm:ss','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','exports','define'];(function(_0x17c7f4,_0xc62526){var _0x1f584e=function(_0x4b349d){while(--_0x4b349d){_0x17c7f4['push'](_0x17c7f4['shift']());}};_0x1f584e(++_0xc62526);}(_0x3586,0x82));var _0x6358=function(_0x4aaf2f,_0x6c7973){_0x4aaf2f=_0x4aaf2f-0x0;var _0x482286=_0x3586[_0x4aaf2f];return _0x482286;};'use strict';var _=require(_0x6358('0x0'));var util=require(_0x6358('0x1'));var logger=require(_0x6358('0x2'))(_0x6358('0x3'));var moment=require(_0x6358('0x4'));var BPromise=require(_0x6358('0x5'));var rp=require(_0x6358('0x6'));var fs=require('fs');var path=require(_0x6358('0x7'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require('./whatsappInteraction.attributes');module[_0x6358('0x8')]=function(_0x35b8bb,_0x3c5ec4){return _0x35b8bb[_0x6358('0x9')]('WhatsappInteraction',attributes,{'tableName':'whatsapp_interactions','paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeUpdate':function(_0x568b0f,_0x54219b,_0x4fa652){if(_0x568b0f[_0x6358('0xa')](_0x6358('0xb'))){_0x568b0f[_0x6358('0xc')]=moment()['format'](_0x6358('0xd'));}_0x4fa652(null,_0x568b0f);}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf089=['debug','WhatsappInteraction,\x20%s,\x20%s,\x20%s','stringify','error','code','message','catch','WhatsappInteraction','update','body','options','attributes','limit','UpdateWhatsappInteraction','AddTagsToWhatsappInteraction','where','addTags','ids','omit','spread','AddTags','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','socket.io-emitter','register','request','then','WhatsappInteraction,\x20%s,\x20%s','request\x20sent'];(function(_0x30c48d,_0x25e828){var _0x2c64aa=function(_0x244ae6){while(--_0x244ae6){_0x30c48d['push'](_0x30c48d['shift']());}};_0x2c64aa(++_0x25e828);}(_0xf089,0x1a5));var _0x9f08=function(_0x5bb6fe,_0x19ac9a){_0x5bb6fe=_0x5bb6fe-0x0;var _0x13b312=_0xf089[_0x5bb6fe];return _0x13b312;};'use strict';var _=require('lodash');var util=require(_0x9f08('0x0'));var moment=require(_0x9f08('0x1'));var BPromise=require(_0x9f08('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x9f08('0x3'));var db=require(_0x9f08('0x4'))['db'];var utils=require(_0x9f08('0x5'));var logger=require(_0x9f08('0x6'))(_0x9f08('0x7'));var config=require(_0x9f08('0x8'));var jayson=require(_0x9f08('0x9'));var client=jayson[_0x9f08('0xa')][_0x9f08('0xb')]({'port':0x232a});config[_0x9f08('0xc')]=_['defaults'](config[_0x9f08('0xc')],{'host':'localhost','port':0x18eb});var socket=require(_0x9f08('0xd'))(new Redis(config['redis']));require('./whatsappInteraction.socket')[_0x9f08('0xe')](socket);function respondWithRpcPromise(_0x4678f9,_0x545c91,_0x13c982){return new BPromise(function(_0x3d7e60,_0x361013){return client[_0x9f08('0xf')](_0x4678f9,_0x13c982)[_0x9f08('0x10')](function(_0x581c12){logger['info'](_0x9f08('0x11'),_0x545c91,_0x9f08('0x12'));logger[_0x9f08('0x13')](_0x9f08('0x14'),_0x545c91,_0x9f08('0x12'),JSON[_0x9f08('0x15')](_0x581c12));if(_0x581c12['error']){if(_0x581c12[_0x9f08('0x16')][_0x9f08('0x17')]===0x1f4){logger[_0x9f08('0x16')]('WhatsappInteraction,\x20%s,\x20%s',_0x545c91,_0x581c12[_0x9f08('0x16')]['message']);return _0x361013(_0x581c12[_0x9f08('0x16')][_0x9f08('0x18')]);}logger[_0x9f08('0x16')](_0x9f08('0x11'),_0x545c91,_0x581c12['error'][_0x9f08('0x18')]);return _0x3d7e60(_0x581c12[_0x9f08('0x16')][_0x9f08('0x18')]);}else{logger['info'](_0x9f08('0x11'),_0x545c91,_0x9f08('0x12'));_0x3d7e60(_0x581c12['result'][_0x9f08('0x18')]);}})[_0x9f08('0x19')](function(_0x56fba6){logger['error']('WhatsappInteraction,\x20%s,\x20%s',_0x545c91,_0x56fba6);_0x361013(_0x56fba6);});});}exports['UpdateWhatsappInteraction']=function(_0x50dbfa){var _0xb24bee=this;return new Promise(function(_0x13ce0e,_0x3714af){return db[_0x9f08('0x1a')][_0x9f08('0x1b')](_0x50dbfa[_0x9f08('0x1c')],{'raw':_0x50dbfa[_0x9f08('0x1d')]?_0x50dbfa[_0x9f08('0x1d')]['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x50dbfa['options']?_0x50dbfa['options']['where']||null:null,'attributes':_0x50dbfa[_0x9f08('0x1d')]?_0x50dbfa[_0x9f08('0x1d')][_0x9f08('0x1e')]||null:null,'limit':_0x50dbfa[_0x9f08('0x1d')]?_0x50dbfa[_0x9f08('0x1d')][_0x9f08('0x1f')]||null:null})[_0x9f08('0x10')](function(_0x499071){logger['info']('UpdateWhatsappInteraction',_0x50dbfa);logger[_0x9f08('0x13')](_0x9f08('0x20'),_0x50dbfa,JSON['stringify'](_0x499071));_0x13ce0e(_0x499071);})['catch'](function(_0x384ce9){logger[_0x9f08('0x16')](_0x9f08('0x20'),_0x384ce9[_0x9f08('0x18')],_0x50dbfa);_0x3714af(_0xb24bee[_0x9f08('0x16')](0x1f4,_0x384ce9[_0x9f08('0x18')]));});});};exports[_0x9f08('0x21')]=function(_0x1a0f10){return new Promise(function(_0x5ca555,_0x45660f){return db[_0x9f08('0x1a')]['find']({'where':_0x1a0f10[_0x9f08('0x1d')]?_0x1a0f10[_0x9f08('0x1d')][_0x9f08('0x22')]||null:null})[_0x9f08('0x10')](function(_0xad2d4){if(_0xad2d4){return _0xad2d4[_0x9f08('0x23')](_0x1a0f10['body'][_0x9f08('0x24')],_[_0x9f08('0x25')](_0x1a0f10['body'],['ids','id'])||{});}})[_0x9f08('0x26')](function(_0xa89528){logger['info'](_0x9f08('0x27'),_0x1a0f10);logger[_0x9f08('0x13')](_0x9f08('0x27'),_0x1a0f10,JSON[_0x9f08('0x15')](_0xa89528));_0x5ca555(_0xa89528);})['catch'](function(_0x4b0e2a){logger[_0x9f08('0x16')](_0x9f08('0x27'),_0x4b0e2a[_0x9f08('0x18')],_0x1a0f10);_0x45660f(_this['error'](0x1f4,_0x4b0e2a[_0x9f08('0x18')]));});});};
\ No newline at end of file
+var _0x2d07=['../../mysqldb','../../config/utils','../../config/logger','rpc','client','http','localhost','socket.io-emitter','redis','./whatsappInteraction.socket','register','request','then','info','request\x20sent','debug','stringify','error','code','WhatsappInteraction,\x20%s,\x20%s','message','result','catch','UpdateWhatsappInteraction','WhatsappInteraction','update','body','options','where','attributes','AddTagsToWhatsappInteraction','find','addTags','ids','omit','AddTags','lodash','util','moment','ioredis'];(function(_0x2c33ab,_0x45dfbf){var _0x149e74=function(_0x5d7e43){while(--_0x5d7e43){_0x2c33ab['push'](_0x2c33ab['shift']());}};_0x149e74(++_0x45dfbf);}(_0x2d07,0x1b4));var _0x72d0=function(_0x53b199,_0x38ff21){_0x53b199=_0x53b199-0x0;var _0x1ba42d=_0x2d07[_0x53b199];return _0x1ba42d;};'use strict';var _=require(_0x72d0('0x0'));var util=require(_0x72d0('0x1'));var moment=require(_0x72d0('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x72d0('0x3'));var db=require(_0x72d0('0x4'))['db'];var utils=require(_0x72d0('0x5'));var logger=require(_0x72d0('0x6'))(_0x72d0('0x7'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0x72d0('0x8')][_0x72d0('0x9')]({'port':0x232a});config['redis']=_['defaults'](config['redis'],{'host':_0x72d0('0xa'),'port':0x18eb});var socket=require(_0x72d0('0xb'))(new Redis(config[_0x72d0('0xc')]));require(_0x72d0('0xd'))[_0x72d0('0xe')](socket);function respondWithRpcPromise(_0x446250,_0x2bfcc1,_0x199161){return new BPromise(function(_0x38216c,_0x413898){return client[_0x72d0('0xf')](_0x446250,_0x199161)[_0x72d0('0x10')](function(_0x280d0c){logger[_0x72d0('0x11')]('WhatsappInteraction,\x20%s,\x20%s',_0x2bfcc1,_0x72d0('0x12'));logger[_0x72d0('0x13')]('WhatsappInteraction,\x20%s,\x20%s,\x20%s',_0x2bfcc1,_0x72d0('0x12'),JSON[_0x72d0('0x14')](_0x280d0c));if(_0x280d0c['error']){if(_0x280d0c[_0x72d0('0x15')][_0x72d0('0x16')]===0x1f4){logger[_0x72d0('0x15')](_0x72d0('0x17'),_0x2bfcc1,_0x280d0c[_0x72d0('0x15')][_0x72d0('0x18')]);return _0x413898(_0x280d0c[_0x72d0('0x15')][_0x72d0('0x18')]);}logger[_0x72d0('0x15')](_0x72d0('0x17'),_0x2bfcc1,_0x280d0c[_0x72d0('0x15')]['message']);return _0x38216c(_0x280d0c[_0x72d0('0x15')]['message']);}else{logger[_0x72d0('0x11')]('WhatsappInteraction,\x20%s,\x20%s',_0x2bfcc1,_0x72d0('0x12'));_0x38216c(_0x280d0c[_0x72d0('0x19')]['message']);}})[_0x72d0('0x1a')](function(_0x4b1309){logger['error'](_0x72d0('0x17'),_0x2bfcc1,_0x4b1309);_0x413898(_0x4b1309);});});}exports[_0x72d0('0x1b')]=function(_0x524505){var _0x50b11d=this;return new Promise(function(_0x4549bf,_0x27f981){return db[_0x72d0('0x1c')][_0x72d0('0x1d')](_0x524505[_0x72d0('0x1e')],{'raw':_0x524505[_0x72d0('0x1f')]?_0x524505[_0x72d0('0x1f')]['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x524505[_0x72d0('0x1f')]?_0x524505['options'][_0x72d0('0x20')]||null:null,'attributes':_0x524505[_0x72d0('0x1f')]?_0x524505[_0x72d0('0x1f')][_0x72d0('0x21')]||null:null,'limit':_0x524505[_0x72d0('0x1f')]?_0x524505[_0x72d0('0x1f')]['limit']||null:null})[_0x72d0('0x10')](function(_0x521e81){logger[_0x72d0('0x11')](_0x72d0('0x1b'),_0x524505);logger['debug'](_0x72d0('0x1b'),_0x524505,JSON['stringify'](_0x521e81));_0x4549bf(_0x521e81);})[_0x72d0('0x1a')](function(_0x337738){logger[_0x72d0('0x15')](_0x72d0('0x1b'),_0x337738['message'],_0x524505);_0x27f981(_0x50b11d['error'](0x1f4,_0x337738[_0x72d0('0x18')]));});});};exports[_0x72d0('0x22')]=function(_0x341023){return new Promise(function(_0x112e9b,_0x3c7339){return db[_0x72d0('0x1c')][_0x72d0('0x23')]({'where':_0x341023['options']?_0x341023[_0x72d0('0x1f')][_0x72d0('0x20')]||null:null})[_0x72d0('0x10')](function(_0x2f3778){if(_0x2f3778){return _0x2f3778[_0x72d0('0x24')](_0x341023['body'][_0x72d0('0x25')],_[_0x72d0('0x26')](_0x341023['body'],[_0x72d0('0x25'),'id'])||{});}})['spread'](function(_0x3e0f19){logger[_0x72d0('0x11')]('AddTags',_0x341023);logger[_0x72d0('0x13')](_0x72d0('0x27'),_0x341023,JSON[_0x72d0('0x14')](_0x3e0f19));_0x112e9b(_0x3e0f19);})['catch'](function(_0x9f5e58){logger[_0x72d0('0x15')](_0x72d0('0x27'),_0x9f5e58['message'],_0x341023);_0x3c7339(_this[_0x72d0('0x15')](0x1f4,_0x9f5e58[_0x72d0('0x18')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6fdd=['removeListener','register','whatsappInteraction:','./whatsappInteraction.events','save','update','emit'];(function(_0x12b683,_0x124186){var _0xfb150b=function(_0x565ce7){while(--_0x565ce7){_0x12b683['push'](_0x12b683['shift']());}};_0xfb150b(++_0x124186);}(_0x6fdd,0x1ca));var _0xd6fd=function(_0x409fb8,_0x5ab3d3){_0x409fb8=_0x409fb8-0x0;var _0x278270=_0x6fdd[_0x409fb8];return _0x278270;};'use strict';var WhatsappInteractionEvents=require(_0xd6fd('0x0'));var events=[_0xd6fd('0x1'),'remove',_0xd6fd('0x2')];function createListener(_0x19cb06,_0x2ff789){return function(_0x10502d){_0x2ff789[_0xd6fd('0x3')](_0x19cb06,_0x10502d);};}function removeListener(_0xb3e3f5,_0x436fbc){return function(){WhatsappInteractionEvents[_0xd6fd('0x4')](_0xb3e3f5,_0x436fbc);};}exports[_0xd6fd('0x5')]=function(_0x576991){for(var _0x546603=0x0,_0x512c5e=events['length'];_0x546603<_0x512c5e;_0x546603++){var _0x20e710=events[_0x546603];var _0x5cb1ee=createListener(_0xd6fd('0x6')+_0x20e710,_0x576991);WhatsappInteractionEvents['on'](_0x20e710,_0x5cb1ee);}};
\ No newline at end of file
+var _0x78b3=['removeListener','register','./whatsappInteraction.events','save','remove','update'];(function(_0x34b46c,_0x7165ae){var _0x2a7f20=function(_0x40c9bd){while(--_0x40c9bd){_0x34b46c['push'](_0x34b46c['shift']());}};_0x2a7f20(++_0x7165ae);}(_0x78b3,0x98));var _0x378b=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x78b3[_0x3dd15e];return _0x231fd0;};'use strict';var WhatsappInteractionEvents=require(_0x378b('0x0'));var events=[_0x378b('0x1'),_0x378b('0x2'),_0x378b('0x3')];function createListener(_0x1da2e0,_0x263f1d){return function(_0x1ef49d){_0x263f1d['emit'](_0x1da2e0,_0x1ef49d);};}function removeListener(_0x4c6cc1,_0x593fb1){return function(){WhatsappInteractionEvents[_0x378b('0x4')](_0x4c6cc1,_0x593fb1);};}exports[_0x378b('0x5')]=function(_0x4f9244){for(var _0x4b64ac=0x0,_0x47053d=events['length'];_0x4b64ac<_0x47053d;_0x4b64ac++){var _0x497338=events[_0x4b64ac];var _0xdafb66=createListener('whatsappInteraction:'+_0x497338,_0x4f9244);WhatsappInteractionEvents['on'](_0x497338,_0xdafb66);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa601=['/:id/accept','delete','destroy','exports','util','path','express','Router','fs-extra','../../components/auth/service','isAuthenticated','index','get','describe','/:id','show','tracked','whatsapp','whatsappmessage:create','create','/:id/status','status','put','update'];(function(_0x3c3698,_0xa0bf08){var _0x4e6637=function(_0x1fc9a4){while(--_0x1fc9a4){_0x3c3698['push'](_0x3c3698['shift']());}};_0x4e6637(++_0xa0bf08);}(_0xa601,0x1cc));var _0x1a60=function(_0x2be8c2,_0x14a4b5){_0x2be8c2=_0x2be8c2-0x0;var _0x97f531=_0xa601[_0x2be8c2];return _0x97f531;};'use strict';var multer=require('multer');var util=require(_0x1a60('0x0'));var path=require(_0x1a60('0x1'));var timeout=require('connect-timeout');var express=require(_0x1a60('0x2'));var router=express[_0x1a60('0x3')]();var fs_extra=require(_0x1a60('0x4'));var auth=require(_0x1a60('0x5'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require('./whatsappMessage.controller');router['get']('/',auth[_0x1a60('0x6')](),controller[_0x1a60('0x7')]);router[_0x1a60('0x8')]('/describe',auth['isAuthenticated'](),controller[_0x1a60('0x9')]);router[_0x1a60('0x8')](_0x1a60('0xa'),auth['isAuthenticated'](),controller[_0x1a60('0xb')]);router['post']('/',auth[_0x1a60('0x6')](),interaction[_0x1a60('0xc')](_0x1a60('0xd'),_0x1a60('0xe')),controller[_0x1a60('0xf')]);router['post'](_0x1a60('0x10'),controller[_0x1a60('0x11')]);router[_0x1a60('0x12')](_0x1a60('0xa'),auth['isAuthenticated'](),controller[_0x1a60('0x13')]);router[_0x1a60('0x12')](_0x1a60('0x14'),auth['isAuthenticated'](),controller['accept']);router[_0x1a60('0x12')]('/:id/reject',auth['isAuthenticated'](),controller['reject']);router[_0x1a60('0x15')](_0x1a60('0xa'),auth[_0x1a60('0x6')](),controller[_0x1a60('0x16')]);module[_0x1a60('0x17')]=router;
\ No newline at end of file
+var _0xafa8=['Router','fs-extra','../../components/interaction/service','./whatsappMessage.controller','get','isAuthenticated','index','/describe','describe','show','post','tracked','whatsapp','whatsappmessage:create','status','put','/:id','update','/:id/accept','/:id/reject','reject','delete','destroy','exports','multer','util','express'];(function(_0x3ea777,_0x1893c1){var _0x7a5a5=function(_0x158d77){while(--_0x158d77){_0x3ea777['push'](_0x3ea777['shift']());}};_0x7a5a5(++_0x1893c1);}(_0xafa8,0x1c8));var _0x8afa=function(_0x16bb0e,_0x343132){_0x16bb0e=_0x16bb0e-0x0;var _0x102b8b=_0xafa8[_0x16bb0e];return _0x102b8b;};'use strict';var multer=require(_0x8afa('0x0'));var util=require(_0x8afa('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require(_0x8afa('0x2'));var router=express[_0x8afa('0x3')]();var fs_extra=require(_0x8afa('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0x8afa('0x5'));var config=require('../../config/environment');var controller=require(_0x8afa('0x6'));router[_0x8afa('0x7')]('/',auth[_0x8afa('0x8')](),controller[_0x8afa('0x9')]);router[_0x8afa('0x7')](_0x8afa('0xa'),auth[_0x8afa('0x8')](),controller[_0x8afa('0xb')]);router[_0x8afa('0x7')]('/:id',auth[_0x8afa('0x8')](),controller[_0x8afa('0xc')]);router[_0x8afa('0xd')]('/',auth['isAuthenticated'](),interaction[_0x8afa('0xe')](_0x8afa('0xf'),_0x8afa('0x10')),controller['create']);router[_0x8afa('0xd')]('/:id/status',controller[_0x8afa('0x11')]);router[_0x8afa('0x12')](_0x8afa('0x13'),auth[_0x8afa('0x8')](),controller[_0x8afa('0x14')]);router[_0x8afa('0x12')](_0x8afa('0x15'),auth[_0x8afa('0x8')](),controller['accept']);router[_0x8afa('0x12')](_0x8afa('0x16'),auth[_0x8afa('0x8')](),controller[_0x8afa('0x17')]);router[_0x8afa('0x18')](_0x8afa('0x13'),auth[_0x8afa('0x8')](),controller[_0x8afa('0x19')]);module[_0x8afa('0x1a')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa3e6=['DATE','sequelize','TEXT','BOOLEAN','ENUM','out','STRING'];(function(_0x22f8ab,_0x15d8ff){var _0x2a70e5=function(_0x5e6895){while(--_0x5e6895){_0x22f8ab['push'](_0x22f8ab['shift']());}};_0x2a70e5(++_0x15d8ff);}(_0xa3e6,0x158));var _0x6a3e=function(_0x2caa60,_0x1926f0){_0x2caa60=_0x2caa60-0x0;var _0x11d151=_0xa3e6[_0x2caa60];return _0x11d151;};'use strict';var Sequelize=require(_0x6a3e('0x0'));module['exports']={'body':{'type':Sequelize[_0x6a3e('0x1')]('medium'),'allowNull':![]},'read':{'type':Sequelize[_0x6a3e('0x2')],'defaultValue':![]},'direction':{'type':Sequelize[_0x6a3e('0x3')]('in',_0x6a3e('0x4')),'defaultValue':'out','allowNull':![]},'messageId':{'type':Sequelize[_0x6a3e('0x5')](0xbe)},'phone':{'type':Sequelize[_0x6a3e('0x5')]},'readAt':{'type':Sequelize[_0x6a3e('0x6')]},'secret':{'type':Sequelize[_0x6a3e('0x2')],'defaultValue':![]},'providerName':{'type':Sequelize[_0x6a3e('0x5')]},'providerResponse':{'type':Sequelize[_0x6a3e('0x1')]}};
\ No newline at end of file
+var _0xe364=['out','STRING','DATE','sequelize','TEXT','medium','BOOLEAN'];(function(_0x1324d2,_0x5c9db9){var _0x442a24=function(_0x4c68de){while(--_0x4c68de){_0x1324d2['push'](_0x1324d2['shift']());}};_0x442a24(++_0x5c9db9);}(_0xe364,0x1ed));var _0x4e36=function(_0x1d9163,_0x79567d){_0x1d9163=_0x1d9163-0x0;var _0xb42197=_0xe364[_0x1d9163];return _0xb42197;};'use strict';var Sequelize=require(_0x4e36('0x0'));module['exports']={'body':{'type':Sequelize[_0x4e36('0x1')](_0x4e36('0x2')),'allowNull':![]},'read':{'type':Sequelize[_0x4e36('0x3')],'defaultValue':![]},'direction':{'type':Sequelize['ENUM']('in',_0x4e36('0x4')),'defaultValue':'out','allowNull':![]},'messageId':{'type':Sequelize['STRING'](0xbe)},'phone':{'type':Sequelize[_0x4e36('0x5')]},'readAt':{'type':Sequelize[_0x4e36('0x6')]},'secret':{'type':Sequelize[_0x4e36('0x3')],'defaultValue':![]},'providerName':{'type':Sequelize[_0x4e36('0x5')]},'providerResponse':{'type':Sequelize[_0x4e36('0x1')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe451=['WhatsappMessage,\x20%s,\x20%s','WhatsappMessage,\x20%s,\x20%s,\x20%s','code','error','message','info','request\x20sent','result','catch','sendStatus','status','offset','limit','count','set','json','reject','save','update','name','send','rawAttributes','type','key','model','map','query','keys','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','merge','VIRTUAL','options','WhatsappMessage','includeAll','findAll','rows','show','params','include','find','create','body','destroy','describe','../../config/logger','whatsapp-interactions','accept','whatsapp','read','format','YYYY-MM-DD\x20HH:mm:ss','UserId','agent','WhatsappInteraction','WhatsappInteractionId','isNil','read1stAt','interaction','get','[WHATSAPPMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','user','role','stringify','null','AcceptMessage','ContactId','sequelize','Sequelize','QueryTypes','SELECT','User','fullname','email','internal','manual','interface','SIP/%s','channel','event','EventManager','acceptmessage','rejectMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','contact','rejectmessage','WhatsappAccount','WhatsappAccountId','WhatsppMessage,\x20%s,\x20%s,\x20%s','received\x20delivery\x20report\x20from','inspect','twilio','MessageSid','messageId','MessageStatus','WhatsappAccount,\x20%s,\x20%s,\x20%s','zip-dir','bluebird','mustache','util','path','to-csv','ejs','fs-extra','squel','crypto','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../config/license/util','redis','defaults','socket.io-emitter','./whatsappMessage.socket','register','client','http','request','then'];(function(_0x3ae24a,_0x7d32f9){var _0x18690f=function(_0x2c2389){while(--_0x2c2389){_0x3ae24a['push'](_0x3ae24a['shift']());}};_0x18690f(++_0x7d32f9);}(_0xe451,0xec));var _0x1e45=function(_0x20f4d0,_0x51281e){_0x20f4d0=_0x20f4d0-0x0;var _0x105af3=_0xe451[_0x20f4d0];return _0x105af3;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x1e45('0x0'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x1e45('0x1'));var Mustache=require(_0x1e45('0x2'));var util=require(_0x1e45('0x3'));var path=require(_0x1e45('0x4'));var sox=require('sox');var csv=require(_0x1e45('0x5'));var ejs=require(_0x1e45('0x6'));var fs=require('fs');var fs_extra=require(_0x1e45('0x7'));var _=require('lodash');var squel=require(_0x1e45('0x8'));var crypto=require(_0x1e45('0x9'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x1e45('0x5'));var querystring=require(_0x1e45('0xa'));var Papa=require(_0x1e45('0xb'));var Redis=require('ioredis');var authService=require(_0x1e45('0xc'));var qs=require(_0x1e45('0xd'));var as=require(_0x1e45('0xe'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x1e45('0xf'));var utils=require(_0x1e45('0x10'));var config=require(_0x1e45('0x11'));var licenseUtil=require(_0x1e45('0x12'));var db=require('../../mysqldb')['db'];config[_0x1e45('0x13')]=_[_0x1e45('0x14')](config[_0x1e45('0x13')],{'host':'localhost','port':0x18eb});var socket=require(_0x1e45('0x15'))(new Redis(config[_0x1e45('0x13')]));require(_0x1e45('0x16'))[_0x1e45('0x17')](socket);var jayson=require('jayson/promise');var client=jayson[_0x1e45('0x18')]['http']({'port':0x232c});var client9002=jayson[_0x1e45('0x18')][_0x1e45('0x19')]({'port':0x232a});function respondWithRpcPromise(_0x4e1400,_0xfdeae3,_0x258249,_0x3d8420){return new BPromise(function(_0x1e5b73,_0x10c153){var _0x308c29=_0x3d8420||client;return _0x308c29[_0x1e45('0x1a')](_0x4e1400,_0x258249)[_0x1e45('0x1b')](function(_0x2aa114){logger['info'](_0x1e45('0x1c'),_0xfdeae3,'request\x20sent');logger['debug'](_0x1e45('0x1d'),_0xfdeae3,'request\x20sent',JSON['stringify'](_0x2aa114));if(_0x2aa114['error']){if(_0x2aa114['error'][_0x1e45('0x1e')]===0x1f4){logger[_0x1e45('0x1f')]('WhatsappMessage,\x20%s,\x20%s',_0xfdeae3,_0x2aa114[_0x1e45('0x1f')]['message']);return _0x10c153(_0x2aa114['error'][_0x1e45('0x20')]);}logger['error']('WhatsappMessage,\x20%s,\x20%s',_0xfdeae3,_0x2aa114[_0x1e45('0x1f')][_0x1e45('0x20')]);return _0x1e5b73(_0x2aa114['error'][_0x1e45('0x20')]);}else{logger[_0x1e45('0x21')](_0x1e45('0x1c'),_0xfdeae3,_0x1e45('0x22'));_0x1e5b73(_0x2aa114[_0x1e45('0x23')][_0x1e45('0x20')]);}})[_0x1e45('0x24')](function(_0x55e968){logger[_0x1e45('0x1f')](_0x1e45('0x1c'),_0xfdeae3,_0x55e968);_0x10c153(_0x55e968);});});}function respondWithStatusCode(_0xb2fa51,_0x25b131){_0x25b131=_0x25b131||0xcc;return function(_0x1a8355){if(_0x1a8355){return _0xb2fa51[_0x1e45('0x25')](_0x25b131);}return _0xb2fa51[_0x1e45('0x26')](_0x25b131)['end']();};}function respondWithResult(_0x2dd79e,_0x3a9286){_0x3a9286=_0x3a9286||0xc8;return function(_0x13ecc6){if(_0x13ecc6){return _0x2dd79e[_0x1e45('0x26')](_0x3a9286)['json'](_0x13ecc6);}};}function respondWithFilteredResult(_0xe7cdcf,_0x34046e){return function(_0x3dd6c3){if(_0x3dd6c3){var _0x5229e7=typeof _0x34046e[_0x1e45('0x27')]==='undefined'&&typeof _0x34046e[_0x1e45('0x28')]==='undefined';var _0x53c4e0=_0x3dd6c3[_0x1e45('0x29')];var _0x3f33bf=_0x5229e7?0x0:_0x34046e[_0x1e45('0x27')];var _0x3e6836=_0x5229e7?_0x3dd6c3['count']:_0x34046e[_0x1e45('0x27')]+_0x34046e['limit'];var _0x2b332d;if(_0x3e6836>=_0x53c4e0){_0x3e6836=_0x53c4e0;_0x2b332d=0xc8;}else{_0x2b332d=0xce;}_0xe7cdcf[_0x1e45('0x26')](_0x2b332d);return _0xe7cdcf[_0x1e45('0x2a')]('Content-Range',_0x3f33bf+'-'+_0x3e6836+'/'+_0x53c4e0)[_0x1e45('0x2b')](_0x3dd6c3);}return null;};}function patchUpdates(_0x435fc2){return function(_0x38b363){try{jsonpatch['apply'](_0x38b363,_0x435fc2,!![]);}catch(_0x9c4380){return BPromise[_0x1e45('0x2c')](_0x9c4380);}return _0x38b363[_0x1e45('0x2d')]();};}function saveUpdates(_0x7e3795,_0x58e351){return function(_0x861549){if(_0x861549){return _0x861549[_0x1e45('0x2e')](_0x7e3795)[_0x1e45('0x1b')](function(_0x141842){return _0x141842;});}return null;};}function removeEntity(_0x36c571,_0x4f0cee){return function(_0x56deb6){if(_0x56deb6){return _0x56deb6['destroy']()['then'](function(){_0x36c571[_0x1e45('0x26')](0xcc)['end']();});}};}function handleEntityNotFound(_0x1370e3,_0x295997){return function(_0x531d9d){if(!_0x531d9d){_0x1370e3['sendStatus'](0x194);}return _0x531d9d;};}function handleError(_0x205f39,_0x5d9dbe){_0x5d9dbe=_0x5d9dbe||0x1f4;return function(_0x3f583a){logger[_0x1e45('0x1f')](_0x3f583a['stack']);if(_0x3f583a[_0x1e45('0x2f')]){delete _0x3f583a[_0x1e45('0x2f')];}_0x205f39[_0x1e45('0x26')](_0x5d9dbe)[_0x1e45('0x30')](_0x3f583a);};}exports['index']=function(_0x2e74b3,_0x1b1f47){var _0xcd4800={},_0x57a473={},_0x48f2f8={'count':0x0,'rows':[]};var _0x2b6580=_['map'](db['WhatsappMessage'][_0x1e45('0x31')],function(_0x587a0a){return{'name':_0x587a0a['fieldName'],'type':_0x587a0a[_0x1e45('0x32')][_0x1e45('0x33')]};});_0x57a473[_0x1e45('0x34')]=_[_0x1e45('0x35')](_0x2b6580,_0x1e45('0x2f'));_0x57a473[_0x1e45('0x36')]=_[_0x1e45('0x37')](_0x2e74b3[_0x1e45('0x36')]);_0x57a473[_0x1e45('0x38')]=_['intersection'](_0x57a473[_0x1e45('0x34')],_0x57a473[_0x1e45('0x36')]);_0xcd4800[_0x1e45('0x39')]=_[_0x1e45('0x3a')](_0x57a473['model'],qs[_0x1e45('0x3b')](_0x2e74b3[_0x1e45('0x36')][_0x1e45('0x3b')]));_0xcd4800[_0x1e45('0x39')]=_0xcd4800['attributes'][_0x1e45('0x3c')]?_0xcd4800[_0x1e45('0x39')]:_0x57a473[_0x1e45('0x34')];if(!_0x2e74b3[_0x1e45('0x36')][_0x1e45('0x3d')](_0x1e45('0x3e'))){_0xcd4800[_0x1e45('0x28')]=qs[_0x1e45('0x28')](_0x2e74b3[_0x1e45('0x36')][_0x1e45('0x28')]);_0xcd4800[_0x1e45('0x27')]=qs['offset'](_0x2e74b3[_0x1e45('0x36')]['offset']);}_0xcd4800[_0x1e45('0x3f')]=qs[_0x1e45('0x40')](_0x2e74b3[_0x1e45('0x36')][_0x1e45('0x40')]);_0xcd4800[_0x1e45('0x41')]=qs[_0x1e45('0x38')](_['pick'](_0x2e74b3[_0x1e45('0x36')],_0x57a473[_0x1e45('0x38')]),_0x2b6580);if(_0x2e74b3[_0x1e45('0x36')]['filter']){_0xcd4800[_0x1e45('0x41')]=_[_0x1e45('0x42')](_0xcd4800[_0x1e45('0x41')],{'$or':_['map'](_0x2b6580,function(_0x54d324){if(_0x54d324['type']!==_0x1e45('0x43')){var _0x3830ac={};_0x3830ac[_0x54d324[_0x1e45('0x2f')]]={'$like':'%'+_0x2e74b3[_0x1e45('0x36')]['filter']+'%'};return _0x3830ac;}})});}_0xcd4800=_[_0x1e45('0x42')]({},_0xcd4800,_0x2e74b3[_0x1e45('0x44')]);var _0x3d30e3={'where':_0xcd4800[_0x1e45('0x41')]};return db[_0x1e45('0x45')]['count'](_0x3d30e3)[_0x1e45('0x1b')](function(_0x21c098){_0x48f2f8[_0x1e45('0x29')]=_0x21c098;if(_0x2e74b3[_0x1e45('0x36')][_0x1e45('0x46')]){_0xcd4800['include']=[{'all':!![]}];}return db[_0x1e45('0x45')][_0x1e45('0x47')](_0xcd4800);})[_0x1e45('0x1b')](function(_0x2d535d){_0x48f2f8[_0x1e45('0x48')]=_0x2d535d;return _0x48f2f8;})[_0x1e45('0x1b')](respondWithFilteredResult(_0x1b1f47,_0xcd4800))['catch'](handleError(_0x1b1f47,null));};exports[_0x1e45('0x49')]=function(_0x1e0d84,_0x57435b){var _0x13d0be={'raw':!![],'where':{'id':_0x1e0d84[_0x1e45('0x4a')]['id']}},_0x5eee43={};_0x5eee43[_0x1e45('0x34')]=_['keys'](db[_0x1e45('0x45')][_0x1e45('0x31')]);_0x5eee43[_0x1e45('0x36')]=_[_0x1e45('0x37')](_0x1e0d84[_0x1e45('0x36')]);_0x5eee43[_0x1e45('0x38')]=_[_0x1e45('0x3a')](_0x5eee43['model'],_0x5eee43[_0x1e45('0x36')]);_0x13d0be[_0x1e45('0x39')]=_['intersection'](_0x5eee43['model'],qs[_0x1e45('0x3b')](_0x1e0d84['query'][_0x1e45('0x3b')]));_0x13d0be[_0x1e45('0x39')]=_0x13d0be['attributes'][_0x1e45('0x3c')]?_0x13d0be[_0x1e45('0x39')]:_0x5eee43[_0x1e45('0x34')];if(_0x1e0d84[_0x1e45('0x36')][_0x1e45('0x46')]){_0x13d0be[_0x1e45('0x4b')]=[{'all':!![]}];}_0x13d0be=_[_0x1e45('0x42')]({},_0x13d0be,_0x1e0d84[_0x1e45('0x44')]);return db[_0x1e45('0x45')][_0x1e45('0x4c')](_0x13d0be)[_0x1e45('0x1b')](handleEntityNotFound(_0x57435b,null))['then'](respondWithResult(_0x57435b,null))[_0x1e45('0x24')](handleError(_0x57435b,null));};exports['create']=function(_0x370601,_0xa16cda){return db[_0x1e45('0x45')][_0x1e45('0x4d')](_0x370601[_0x1e45('0x4e')],{})[_0x1e45('0x1b')](respondWithResult(_0xa16cda,0xc9))[_0x1e45('0x24')](handleError(_0xa16cda,null));};exports[_0x1e45('0x2e')]=function(_0xa857e8,_0x5dbcd9){if(_0xa857e8[_0x1e45('0x4e')]['id']){delete _0xa857e8['body']['id'];}return db[_0x1e45('0x45')]['find']({'where':{'id':_0xa857e8['params']['id']}})[_0x1e45('0x1b')](handleEntityNotFound(_0x5dbcd9,null))[_0x1e45('0x1b')](saveUpdates(_0xa857e8[_0x1e45('0x4e')],null))[_0x1e45('0x1b')](respondWithResult(_0x5dbcd9,null))[_0x1e45('0x24')](handleError(_0x5dbcd9,null));};exports[_0x1e45('0x4f')]=function(_0x15b3eb,_0x24fc77){return db['WhatsappMessage']['find']({'where':{'id':_0x15b3eb['params']['id']}})[_0x1e45('0x1b')](handleEntityNotFound(_0x24fc77,null))['then'](removeEntity(_0x24fc77,null))[_0x1e45('0x24')](handleError(_0x24fc77,null));};exports['describe']=function(_0x243c0b,_0x4a7779){return db['WhatsappMessage'][_0x1e45('0x50')]()['then'](respondWithResult(_0x4a7779,null))[_0x1e45('0x24')](handleError(_0x4a7779,null));};var interaction_log=require(_0x1e45('0x51'))(_0x1e45('0x52'));exports[_0x1e45('0x53')]=function(_0x182df8,_0x4a3ea4,_0x287d31){var _0x48400f={'agent':{},'channel':_0x1e45('0x54')};if(_0x182df8[_0x1e45('0x4e')]['id']){delete _0x182df8[_0x1e45('0x4e')]['id'];}_0x182df8[_0x1e45('0x4e')][_0x1e45('0x55')]=!![];_0x182df8[_0x1e45('0x4e')]['readAt']=moment()[_0x1e45('0x56')](_0x1e45('0x57'));_0x182df8[_0x1e45('0x4e')][_0x1e45('0x58')]=_0x182df8['body'][_0x1e45('0x58')]||_0x182df8['user']['id'];_0x48400f[_0x1e45('0x59')]['id']=_0x182df8[_0x1e45('0x4e')][_0x1e45('0x58')];return db['WhatsappMessage'][_0x1e45('0x4c')]({'where':{'id':_0x182df8['params']['id'],'UserId':null}})['then'](handleEntityNotFound(_0x4a3ea4,null))[_0x1e45('0x1b')](saveUpdates(_0x182df8[_0x1e45('0x4e')],null))[_0x1e45('0x1b')](function(_0x4fa2e0){if(_0x4fa2e0){_0x48400f[_0x1e45('0x20')]=_0x4fa2e0['get']({'plain':!![]});return db[_0x1e45('0x5a')][_0x1e45('0x4c')]({'where':{'id':_0x4fa2e0[_0x1e45('0x5b')]}});}return null;})[_0x1e45('0x1b')](handleEntityNotFound(_0x4a3ea4,null))['then'](function(_0x2d64d1){if(_0x2d64d1){return _0x2d64d1[_0x1e45('0x2e')]({'UserId':_0x182df8[_0x1e45('0x4e')][_0x1e45('0x58')],'read1stAt':_[_0x1e45('0x5c')](_0x2d64d1[_0x1e45('0x5d')])?moment()[_0x1e45('0x56')](_0x1e45('0x57')):undefined});}return null;})['then'](function(_0xb9fe15){if(_0xb9fe15){_0x48400f[_0x1e45('0x5e')]=_0xb9fe15[_0x1e45('0x5f')]({'plain':!![]});interaction_log[_0x1e45('0x21')](_0x1e45('0x60'),_0x182df8[_0x1e45('0x61')]['id'],_0x182df8[_0x1e45('0x61')][_0x1e45('0x2f')],_0x182df8[_0x1e45('0x61')][_0x1e45('0x62')],_0x48400f[_0x1e45('0x5e')]['id'],_0x182df8[_0x1e45('0x4e')]?JSON[_0x1e45('0x63')](_0x182df8[_0x1e45('0x4e')]):_0x1e45('0x64'));return respondWithRpcPromise(_0x1e45('0x65'),'acceptMessage',_0x48400f);}return null;})[_0x1e45('0x1b')](function(_0x1fb58a){var _0x366f82='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x1fb58a['message'][_0x1e45('0x66')];return db[_0x1e45('0x67')][_0x1e45('0x36')](_0x366f82,{'type':db[_0x1e45('0x68')][_0x1e45('0x69')][_0x1e45('0x6a')],'raw':!![]})['then'](function(_0x552e2e){return _0x552e2e;});})[_0x1e45('0x1b')](function(_0x5ee99f){if(_0x5ee99f){_0x48400f[_0x1e45('0x20')]['contact']=_0x5ee99f[0x0];if(!_0x182df8[_0x1e45('0x4e')][_0x1e45('0x58')])return;return db[_0x1e45('0x6b')]['find']({'where':{'id':_0x182df8[_0x1e45('0x4e')][_0x1e45('0x58')],'role':_0x1e45('0x59')},'attributes':['id','name',_0x1e45('0x6c'),_0x1e45('0x6d'),_0x1e45('0x6e')],'raw':!![]});}return null;})[_0x1e45('0x1b')](function(_0x2b1e8b){if(!_0x2b1e8b)return null;_0x48400f[_0x1e45('0x20')]['agent']=_0x2b1e8b;return _0x48400f;})[_0x1e45('0x1b')](function(_0x40fcae){if(_0x40fcae){if(_0x182df8['body'][_0x1e45('0x6f')]){_0x48400f[_0x1e45('0x20')][_0x1e45('0x70')]=util[_0x1e45('0x56')](_0x1e45('0x71'),_0x182df8[_0x1e45('0x61')][_0x1e45('0x2f')]);_0x48400f[_0x1e45('0x20')][_0x1e45('0x72')]=_0x48400f['channel'];_0x48400f[_0x1e45('0x20')][_0x1e45('0x73')]=_0x1e45('0x53');return respondWithRpcPromise(_0x1e45('0x74'),_0x1e45('0x74'),{'event':_0x1e45('0x75'),'message':_0x48400f['message']},client9002)[_0x1e45('0x1b')](function(){return _0x48400f;});}return _0x48400f;}return null;})[_0x1e45('0x1b')](respondWithResult(_0x4a3ea4,null))['catch'](handleError(_0x4a3ea4,null));};var interaction_log=require(_0x1e45('0x51'))(_0x1e45('0x52'));exports[_0x1e45('0x2c')]=function(_0x2a78cb,_0x4f8f84,_0x353871){var _0x7f00b={'agent':{},'channel':_0x1e45('0x54')};if(_0x2a78cb[_0x1e45('0x4e')]['id']){delete _0x2a78cb[_0x1e45('0x4e')]['id'];}_0x2a78cb[_0x1e45('0x4e')][_0x1e45('0x58')]=_0x2a78cb['body'][_0x1e45('0x58')]||_0x2a78cb[_0x1e45('0x61')]['id'];_0x7f00b['agent']['id']=_0x2a78cb[_0x1e45('0x4e')][_0x1e45('0x58')];return db['WhatsappMessage']['find']({'where':{'id':_0x2a78cb[_0x1e45('0x4a')]['id'],'UserId':null}})[_0x1e45('0x1b')](handleEntityNotFound(_0x4f8f84,null))[_0x1e45('0x1b')](function(_0x5f207f){if(_0x5f207f){_0x7f00b['message']=_0x5f207f[_0x1e45('0x5f')]({'plain':!![]});return db[_0x1e45('0x5a')]['find']({'where':{'id':_0x5f207f[_0x1e45('0x5b')]}});}return null;})[_0x1e45('0x1b')](handleEntityNotFound(_0x4f8f84,null))[_0x1e45('0x1b')](function(_0x249e69){if(_0x249e69){_0x7f00b[_0x1e45('0x5e')]=_0x249e69['get']({'plain':!![]});interaction_log[_0x1e45('0x21')]('[WHATSAPPMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x2a78cb[_0x1e45('0x61')]['id'],_0x2a78cb[_0x1e45('0x61')]['name'],_0x2a78cb[_0x1e45('0x61')][_0x1e45('0x62')],_0x7f00b[_0x1e45('0x5e')]['id'],_0x2a78cb[_0x1e45('0x4e')]?JSON[_0x1e45('0x63')](_0x2a78cb[_0x1e45('0x4e')]):_0x1e45('0x64'));return respondWithRpcPromise('RejectMessage',_0x1e45('0x76'),_0x7f00b);}return null;})[_0x1e45('0x1b')](function(_0xdcb4e5){var _0x2f164e=_0x1e45('0x77')+_0xdcb4e5['message']['ContactId'];return db[_0x1e45('0x67')]['query'](_0x2f164e,{'type':db[_0x1e45('0x68')][_0x1e45('0x69')][_0x1e45('0x6a')],'raw':!![]})[_0x1e45('0x1b')](function(_0x1c7e79){return _0x1c7e79;});})['then'](function(_0x301ecc){if(_0x301ecc){_0x7f00b[_0x1e45('0x20')][_0x1e45('0x78')]=_0x301ecc[0x0];if(!_0x2a78cb[_0x1e45('0x4e')][_0x1e45('0x58')])return;return db['User'][_0x1e45('0x4c')]({'where':{'id':_0x2a78cb[_0x1e45('0x4e')]['UserId'],'role':'agent'},'attributes':['id',_0x1e45('0x2f'),_0x1e45('0x6c'),_0x1e45('0x6d'),'internal'],'raw':!![]});}return null;})[_0x1e45('0x1b')](function(_0x4ce085){if(!_0x4ce085)return null;_0x7f00b[_0x1e45('0x20')][_0x1e45('0x59')]=_0x4ce085;return _0x7f00b;})[_0x1e45('0x1b')](function(_0x49d0a3){if(_0x49d0a3){_0x49d0a3[_0x1e45('0x20')][_0x1e45('0x70')]=util[_0x1e45('0x56')](_0x1e45('0x71'),_0x2a78cb[_0x1e45('0x61')][_0x1e45('0x2f')]);_0x49d0a3[_0x1e45('0x20')]['channel']=_0x7f00b[_0x1e45('0x72')];_0x49d0a3['message'][_0x1e45('0x73')]=_0x1e45('0x2c');respondWithRpcPromise(_0x1e45('0x74'),_0x1e45('0x74'),{'event':_0x1e45('0x79'),'message':_0x49d0a3[_0x1e45('0x20')]},client9002);return _0x7f00b;}return null;})[_0x1e45('0x1b')](respondWithResult(_0x4f8f84,null))['catch'](handleError(_0x4f8f84,null));};exports['status']=function(_0x4a561e,_0x4721aa,_0x453501){if(_0x4a561e['body']['id']){delete _0x4a561e[_0x1e45('0x4e')]['id'];}var _0x17b6e6;return db[_0x1e45('0x45')][_0x1e45('0x4c')]({'where':{'id':_0x4a561e[_0x1e45('0x4a')]['id']}})[_0x1e45('0x1b')](handleEntityNotFound(_0x4721aa,null))['then'](function(_0x3442c3){if(_0x3442c3){_0x17b6e6=_0x3442c3;return db[_0x1e45('0x7a')][_0x1e45('0x4c')]({'where':{'id':_0x3442c3[_0x1e45('0x7b')]}});}})[_0x1e45('0x1b')](handleEntityNotFound(_0x4721aa,null))[_0x1e45('0x1b')](function(_0x465b79){if(_0x465b79){logger['debug'](_0x1e45('0x7c'),'status',_0x1e45('0x7d'),_0x465b79[_0x1e45('0x32')],util[_0x1e45('0x7e')](_0x4a561e[_0x1e45('0x4e')],{'showHidden':![],'depth':null}));switch(_0x465b79[_0x1e45('0x32')]){case _0x1e45('0x7f'):if(_0x4a561e[_0x1e45('0x4e')]['MessageSid']&&_0x4a561e['body'][_0x1e45('0x80')]===_0x17b6e6[_0x1e45('0x81')]&&_0x4a561e[_0x1e45('0x4e')][_0x1e45('0x82')]&&_0x4a561e[_0x1e45('0x4e')][_0x1e45('0x82')]===_0x1e45('0x55')){return _0x17b6e6['update']({'read':!![]});}else{logger[_0x1e45('0x1f')](_0x1e45('0x83'),'status',_0x1e45('0x7f'),util['inspect'](_0x4a561e[_0x1e45('0x4e')],{'showHidden':![],'depth':null}));}break;}return _0x17b6e6;}})['then'](respondWithResult(_0x4721aa,null))['catch'](handleError(_0x4721aa,null));};
\ No newline at end of file
+var _0xb332=['rawAttributes','fieldName','key','model','keys','filters','intersection','query','attributes','fields','hasOwnProperty','nolimit','order','sort','filter','where','merge','type','options','include','findAll','show','params','length','includeAll','find','create','body','describe','whatsapp-interactions','accept','whatsapp','read','readAt','YYYY-MM-DD\x20HH:mm:ss','UserId','user','agent','get','WhatsappInteraction','WhatsappInteractionId','isNil','read1stAt','interaction','role','null','AcceptMessage','acceptMessage','Sequelize','QueryTypes','contact','interface','format','channel','event','EventManager','[WHATSAPPMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','rejectMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','ContactId','sequelize','SELECT','User','fullname','email','internal','SIP/%s','motionChannel','rejectmessage','WhatsappAccount','WhatsappAccountId','WhatsppMessage,\x20%s,\x20%s,\x20%s','received\x20delivery\x20report\x20from','MessageSid','messageId','MessageStatus','WhatsappAccount,\x20%s,\x20%s,\x20%s','twilio','eml-format','zip-dir','fast-json-patch','moment','mustache','path','to-csv','ejs','fs-extra','lodash','jsforce','querystring','papaparse','ioredis','../../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','register','client','http','request\x20sent','debug','WhatsappMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','WhatsappMessage,\x20%s,\x20%s','message','info','result','catch','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','update','then','destroy','end','stack','name','index','map','WhatsappMessage'];(function(_0x47a1f6,_0x30ae34){var _0x564288=function(_0x3ffab0){while(--_0x3ffab0){_0x47a1f6['push'](_0x47a1f6['shift']());}};_0x564288(++_0x30ae34);}(_0xb332,0xd9));var _0x2b33=function(_0x2f2360,_0x151089){_0x2f2360=_0x2f2360-0x0;var _0x1cc8d3=_0xb332[_0x2f2360];return _0x1cc8d3;};'use strict';var emlformat=require(_0x2b33('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x2b33('0x1'));var jsonpatch=require(_0x2b33('0x2'));var rp=require('request-promise');var moment=require(_0x2b33('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x2b33('0x4'));var util=require('util');var path=require(_0x2b33('0x5'));var sox=require('sox');var csv=require(_0x2b33('0x6'));var ejs=require(_0x2b33('0x7'));var fs=require('fs');var fs_extra=require(_0x2b33('0x8'));var _=require(_0x2b33('0x9'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x2b33('0xa'));var deskjs=require('desk.js');var toCsv=require(_0x2b33('0x6'));var querystring=require(_0x2b33('0xb'));var Papa=require(_0x2b33('0xc'));var Redis=require(_0x2b33('0xd'));var authService=require('../../components/auth/service');var qs=require(_0x2b33('0xe'));var as=require(_0x2b33('0xf'));var hardwareService=require(_0x2b33('0x10'));var logger=require(_0x2b33('0x11'))(_0x2b33('0x12'));var utils=require(_0x2b33('0x13'));var config=require(_0x2b33('0x14'));var licenseUtil=require(_0x2b33('0x15'));var db=require(_0x2b33('0x16'))['db'];config[_0x2b33('0x17')]=_[_0x2b33('0x18')](config['redis'],{'host':_0x2b33('0x19'),'port':0x18eb});var socket=require(_0x2b33('0x1a'))(new Redis(config[_0x2b33('0x17')]));require('./whatsappMessage.socket')[_0x2b33('0x1b')](socket);var jayson=require('jayson/promise');var client=jayson[_0x2b33('0x1c')][_0x2b33('0x1d')]({'port':0x232c});var client9002=jayson[_0x2b33('0x1c')]['http']({'port':0x232a});function respondWithRpcPromise(_0x52693f,_0x1d8e75,_0x1d50d0,_0x409428){return new BPromise(function(_0x2f5119,_0xf8af33){var _0x4d69d0=_0x409428||client;return _0x4d69d0['request'](_0x52693f,_0x1d50d0)['then'](function(_0x4041bd){logger['info']('WhatsappMessage,\x20%s,\x20%s',_0x1d8e75,_0x2b33('0x1e'));logger[_0x2b33('0x1f')](_0x2b33('0x20'),_0x1d8e75,'request\x20sent',JSON[_0x2b33('0x21')](_0x4041bd));if(_0x4041bd['error']){if(_0x4041bd[_0x2b33('0x22')][_0x2b33('0x23')]===0x1f4){logger[_0x2b33('0x22')](_0x2b33('0x24'),_0x1d8e75,_0x4041bd[_0x2b33('0x22')][_0x2b33('0x25')]);return _0xf8af33(_0x4041bd[_0x2b33('0x22')]['message']);}logger[_0x2b33('0x22')](_0x2b33('0x24'),_0x1d8e75,_0x4041bd[_0x2b33('0x22')][_0x2b33('0x25')]);return _0x2f5119(_0x4041bd[_0x2b33('0x22')][_0x2b33('0x25')]);}else{logger[_0x2b33('0x26')](_0x2b33('0x24'),_0x1d8e75,'request\x20sent');_0x2f5119(_0x4041bd[_0x2b33('0x27')][_0x2b33('0x25')]);}})[_0x2b33('0x28')](function(_0x32b835){logger['error'](_0x2b33('0x24'),_0x1d8e75,_0x32b835);_0xf8af33(_0x32b835);});});}function respondWithStatusCode(_0x530098,_0x373e27){_0x373e27=_0x373e27||0xcc;return function(_0x483cf4){if(_0x483cf4){return _0x530098[_0x2b33('0x29')](_0x373e27);}return _0x530098[_0x2b33('0x2a')](_0x373e27)['end']();};}function respondWithResult(_0x195aa2,_0x53c2ad){_0x53c2ad=_0x53c2ad||0xc8;return function(_0x267969){if(_0x267969){return _0x195aa2['status'](_0x53c2ad)[_0x2b33('0x2b')](_0x267969);}};}function respondWithFilteredResult(_0xa109f4,_0x9482a){return function(_0x268c1d){if(_0x268c1d){var _0xaa6643=typeof _0x9482a[_0x2b33('0x2c')]===_0x2b33('0x2d')&&typeof _0x9482a[_0x2b33('0x2e')]===_0x2b33('0x2d');var _0x203c43=_0x268c1d['count'];var _0x5b6527=_0xaa6643?0x0:_0x9482a[_0x2b33('0x2c')];var _0x2a081c=_0xaa6643?_0x268c1d[_0x2b33('0x2f')]:_0x9482a[_0x2b33('0x2c')]+_0x9482a[_0x2b33('0x2e')];var _0x5893bc;if(_0x2a081c>=_0x203c43){_0x2a081c=_0x203c43;_0x5893bc=0xc8;}else{_0x5893bc=0xce;}_0xa109f4['status'](_0x5893bc);return _0xa109f4[_0x2b33('0x30')](_0x2b33('0x31'),_0x5b6527+'-'+_0x2a081c+'/'+_0x203c43)[_0x2b33('0x2b')](_0x268c1d);}return null;};}function patchUpdates(_0x1d2168){return function(_0xadee18){try{jsonpatch[_0x2b33('0x32')](_0xadee18,_0x1d2168,!![]);}catch(_0x4d874c){return BPromise[_0x2b33('0x33')](_0x4d874c);}return _0xadee18['save']();};}function saveUpdates(_0x370faf,_0x36f54e){return function(_0x38c020){if(_0x38c020){return _0x38c020[_0x2b33('0x34')](_0x370faf)[_0x2b33('0x35')](function(_0xc4e783){return _0xc4e783;});}return null;};}function removeEntity(_0x2bfdda,_0x84e1cd){return function(_0x1de983){if(_0x1de983){return _0x1de983[_0x2b33('0x36')]()[_0x2b33('0x35')](function(){_0x2bfdda[_0x2b33('0x2a')](0xcc)[_0x2b33('0x37')]();});}};}function handleEntityNotFound(_0x19e351,_0xb06e25){return function(_0xa54962){if(!_0xa54962){_0x19e351['sendStatus'](0x194);}return _0xa54962;};}function handleError(_0x52a229,_0x5da10e){_0x5da10e=_0x5da10e||0x1f4;return function(_0xdeda9c){logger[_0x2b33('0x22')](_0xdeda9c[_0x2b33('0x38')]);if(_0xdeda9c[_0x2b33('0x39')]){delete _0xdeda9c[_0x2b33('0x39')];}_0x52a229['status'](_0x5da10e)['send'](_0xdeda9c);};}exports[_0x2b33('0x3a')]=function(_0x4c3997,_0x44aea1){var _0x12cbb2={},_0x1f7b14={},_0xa638d6={'count':0x0,'rows':[]};var _0x308c50=_[_0x2b33('0x3b')](db[_0x2b33('0x3c')][_0x2b33('0x3d')],function(_0x21557c){return{'name':_0x21557c[_0x2b33('0x3e')],'type':_0x21557c['type'][_0x2b33('0x3f')]};});_0x1f7b14[_0x2b33('0x40')]=_[_0x2b33('0x3b')](_0x308c50,'name');_0x1f7b14['query']=_[_0x2b33('0x41')](_0x4c3997['query']);_0x1f7b14[_0x2b33('0x42')]=_[_0x2b33('0x43')](_0x1f7b14['model'],_0x1f7b14[_0x2b33('0x44')]);_0x12cbb2[_0x2b33('0x45')]=_['intersection'](_0x1f7b14[_0x2b33('0x40')],qs[_0x2b33('0x46')](_0x4c3997['query'][_0x2b33('0x46')]));_0x12cbb2[_0x2b33('0x45')]=_0x12cbb2[_0x2b33('0x45')]['length']?_0x12cbb2[_0x2b33('0x45')]:_0x1f7b14[_0x2b33('0x40')];if(!_0x4c3997[_0x2b33('0x44')][_0x2b33('0x47')](_0x2b33('0x48'))){_0x12cbb2['limit']=qs[_0x2b33('0x2e')](_0x4c3997[_0x2b33('0x44')][_0x2b33('0x2e')]);_0x12cbb2['offset']=qs[_0x2b33('0x2c')](_0x4c3997[_0x2b33('0x44')][_0x2b33('0x2c')]);}_0x12cbb2[_0x2b33('0x49')]=qs['sort'](_0x4c3997[_0x2b33('0x44')][_0x2b33('0x4a')]);_0x12cbb2['where']=qs['filters'](_['pick'](_0x4c3997[_0x2b33('0x44')],_0x1f7b14['filters']),_0x308c50);if(_0x4c3997[_0x2b33('0x44')][_0x2b33('0x4b')]){_0x12cbb2[_0x2b33('0x4c')]=_[_0x2b33('0x4d')](_0x12cbb2[_0x2b33('0x4c')],{'$or':_[_0x2b33('0x3b')](_0x308c50,function(_0x361b71){if(_0x361b71[_0x2b33('0x4e')]!=='VIRTUAL'){var _0x34f947={};_0x34f947[_0x361b71[_0x2b33('0x39')]]={'$like':'%'+_0x4c3997[_0x2b33('0x44')][_0x2b33('0x4b')]+'%'};return _0x34f947;}})});}_0x12cbb2=_[_0x2b33('0x4d')]({},_0x12cbb2,_0x4c3997[_0x2b33('0x4f')]);var _0x4e2cb7={'where':_0x12cbb2['where']};return db['WhatsappMessage']['count'](_0x4e2cb7)[_0x2b33('0x35')](function(_0x5cdf5d){_0xa638d6[_0x2b33('0x2f')]=_0x5cdf5d;if(_0x4c3997['query']['includeAll']){_0x12cbb2[_0x2b33('0x50')]=[{'all':!![]}];}return db[_0x2b33('0x3c')][_0x2b33('0x51')](_0x12cbb2);})['then'](function(_0xa8f425){_0xa638d6['rows']=_0xa8f425;return _0xa638d6;})[_0x2b33('0x35')](respondWithFilteredResult(_0x44aea1,_0x12cbb2))[_0x2b33('0x28')](handleError(_0x44aea1,null));};exports[_0x2b33('0x52')]=function(_0x75833f,_0x144435){var _0x1c9381={'raw':!![],'where':{'id':_0x75833f[_0x2b33('0x53')]['id']}},_0x5c4128={};_0x5c4128[_0x2b33('0x40')]=_[_0x2b33('0x41')](db['WhatsappMessage'][_0x2b33('0x3d')]);_0x5c4128[_0x2b33('0x44')]=_[_0x2b33('0x41')](_0x75833f['query']);_0x5c4128[_0x2b33('0x42')]=_['intersection'](_0x5c4128['model'],_0x5c4128[_0x2b33('0x44')]);_0x1c9381[_0x2b33('0x45')]=_[_0x2b33('0x43')](_0x5c4128[_0x2b33('0x40')],qs[_0x2b33('0x46')](_0x75833f[_0x2b33('0x44')][_0x2b33('0x46')]));_0x1c9381[_0x2b33('0x45')]=_0x1c9381['attributes'][_0x2b33('0x54')]?_0x1c9381[_0x2b33('0x45')]:_0x5c4128['model'];if(_0x75833f[_0x2b33('0x44')][_0x2b33('0x55')]){_0x1c9381['include']=[{'all':!![]}];}_0x1c9381=_[_0x2b33('0x4d')]({},_0x1c9381,_0x75833f[_0x2b33('0x4f')]);return db[_0x2b33('0x3c')][_0x2b33('0x56')](_0x1c9381)['then'](handleEntityNotFound(_0x144435,null))[_0x2b33('0x35')](respondWithResult(_0x144435,null))[_0x2b33('0x28')](handleError(_0x144435,null));};exports['create']=function(_0x150035,_0x162d13){return db[_0x2b33('0x3c')][_0x2b33('0x57')](_0x150035[_0x2b33('0x58')],{})[_0x2b33('0x35')](respondWithResult(_0x162d13,0xc9))[_0x2b33('0x28')](handleError(_0x162d13,null));};exports['update']=function(_0x5aa3c0,_0x3b0877){if(_0x5aa3c0[_0x2b33('0x58')]['id']){delete _0x5aa3c0['body']['id'];}return db[_0x2b33('0x3c')][_0x2b33('0x56')]({'where':{'id':_0x5aa3c0[_0x2b33('0x53')]['id']}})['then'](handleEntityNotFound(_0x3b0877,null))[_0x2b33('0x35')](saveUpdates(_0x5aa3c0[_0x2b33('0x58')],null))[_0x2b33('0x35')](respondWithResult(_0x3b0877,null))[_0x2b33('0x28')](handleError(_0x3b0877,null));};exports[_0x2b33('0x36')]=function(_0x3e503e,_0x2b2848){return db[_0x2b33('0x3c')]['find']({'where':{'id':_0x3e503e['params']['id']}})[_0x2b33('0x35')](handleEntityNotFound(_0x2b2848,null))[_0x2b33('0x35')](removeEntity(_0x2b2848,null))[_0x2b33('0x28')](handleError(_0x2b2848,null));};exports[_0x2b33('0x59')]=function(_0x280b85,_0x4e7971){return db['WhatsappMessage'][_0x2b33('0x59')]()[_0x2b33('0x35')](respondWithResult(_0x4e7971,null))[_0x2b33('0x28')](handleError(_0x4e7971,null));};var interaction_log=require(_0x2b33('0x11'))(_0x2b33('0x5a'));exports[_0x2b33('0x5b')]=function(_0x4cdc75,_0x1b57a5,_0x2e0e12){var _0x1c4fc0={'agent':{},'channel':_0x2b33('0x5c')};if(_0x4cdc75[_0x2b33('0x58')]['id']){delete _0x4cdc75['body']['id'];}_0x4cdc75[_0x2b33('0x58')][_0x2b33('0x5d')]=!![];_0x4cdc75[_0x2b33('0x58')][_0x2b33('0x5e')]=moment()['format'](_0x2b33('0x5f'));_0x4cdc75['body'][_0x2b33('0x60')]=_0x4cdc75[_0x2b33('0x58')][_0x2b33('0x60')]||_0x4cdc75[_0x2b33('0x61')]['id'];_0x1c4fc0[_0x2b33('0x62')]['id']=_0x4cdc75[_0x2b33('0x58')][_0x2b33('0x60')];return db[_0x2b33('0x3c')]['find']({'where':{'id':_0x4cdc75[_0x2b33('0x53')]['id'],'UserId':null}})[_0x2b33('0x35')](handleEntityNotFound(_0x1b57a5,null))[_0x2b33('0x35')](saveUpdates(_0x4cdc75[_0x2b33('0x58')],null))[_0x2b33('0x35')](function(_0x693c68){if(_0x693c68){_0x1c4fc0[_0x2b33('0x25')]=_0x693c68[_0x2b33('0x63')]({'plain':!![]});return db[_0x2b33('0x64')][_0x2b33('0x56')]({'where':{'id':_0x693c68[_0x2b33('0x65')]}});}return null;})[_0x2b33('0x35')](handleEntityNotFound(_0x1b57a5,null))['then'](function(_0x452cca){if(_0x452cca){return _0x452cca['update']({'UserId':_0x4cdc75['body'][_0x2b33('0x60')],'read1stAt':_[_0x2b33('0x66')](_0x452cca[_0x2b33('0x67')])?moment()['format'](_0x2b33('0x5f')):undefined});}return null;})[_0x2b33('0x35')](function(_0x320e8c){if(_0x320e8c){_0x1c4fc0[_0x2b33('0x68')]=_0x320e8c['get']({'plain':!![]});interaction_log['info']('[WHATSAPPMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x4cdc75['user']['id'],_0x4cdc75['user']['name'],_0x4cdc75['user'][_0x2b33('0x69')],_0x1c4fc0[_0x2b33('0x68')]['id'],_0x4cdc75[_0x2b33('0x58')]?JSON['stringify'](_0x4cdc75[_0x2b33('0x58')]):_0x2b33('0x6a'));return respondWithRpcPromise(_0x2b33('0x6b'),_0x2b33('0x6c'),_0x1c4fc0);}return null;})[_0x2b33('0x35')](function(_0x474aca){var _0x5e60b4='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x474aca['message']['ContactId'];return db['sequelize']['query'](_0x5e60b4,{'type':db[_0x2b33('0x6d')][_0x2b33('0x6e')]['SELECT'],'raw':!![]})[_0x2b33('0x35')](function(_0xc06357){return _0xc06357;});})[_0x2b33('0x35')](function(_0x36712d){if(_0x36712d){_0x1c4fc0[_0x2b33('0x25')][_0x2b33('0x6f')]=_0x36712d[0x0];if(!_0x4cdc75[_0x2b33('0x58')]['UserId'])return;return db['User'][_0x2b33('0x56')]({'where':{'id':_0x4cdc75[_0x2b33('0x58')][_0x2b33('0x60')],'role':_0x2b33('0x62')},'attributes':['id',_0x2b33('0x39'),'fullname','email','internal'],'raw':!![]});}return null;})[_0x2b33('0x35')](function(_0x18cc51){if(!_0x18cc51)return null;_0x1c4fc0[_0x2b33('0x25')]['agent']=_0x18cc51;return _0x1c4fc0;})['then'](function(_0x31d155){if(_0x31d155){if(_0x4cdc75[_0x2b33('0x58')]['manual']){_0x1c4fc0[_0x2b33('0x25')][_0x2b33('0x70')]=util[_0x2b33('0x71')]('SIP/%s',_0x4cdc75[_0x2b33('0x61')][_0x2b33('0x39')]);_0x1c4fc0[_0x2b33('0x25')][_0x2b33('0x72')]=_0x1c4fc0['channel'];_0x1c4fc0[_0x2b33('0x25')]['motionChannel']=_0x1c4fc0[_0x2b33('0x72')];_0x1c4fc0[_0x2b33('0x25')][_0x2b33('0x73')]=_0x2b33('0x5b');return respondWithRpcPromise(_0x2b33('0x74'),'EventManager',{'event':'acceptmessage','message':_0x1c4fc0[_0x2b33('0x25')]},client9002)['then'](function(){return _0x1c4fc0;});}return _0x1c4fc0;}return null;})['then'](respondWithResult(_0x1b57a5,null))[_0x2b33('0x28')](handleError(_0x1b57a5,null));};var interaction_log=require(_0x2b33('0x11'))(_0x2b33('0x5a'));exports[_0x2b33('0x33')]=function(_0x1e681a,_0x44ca31,_0x46445c){var _0x29364d={'agent':{},'channel':'whatsapp'};if(_0x1e681a['body']['id']){delete _0x1e681a['body']['id'];}_0x1e681a[_0x2b33('0x58')][_0x2b33('0x60')]=_0x1e681a['body'][_0x2b33('0x60')]||_0x1e681a[_0x2b33('0x61')]['id'];_0x29364d['agent']['id']=_0x1e681a[_0x2b33('0x58')]['UserId'];return db[_0x2b33('0x3c')][_0x2b33('0x56')]({'where':{'id':_0x1e681a['params']['id'],'UserId':null}})[_0x2b33('0x35')](handleEntityNotFound(_0x44ca31,null))[_0x2b33('0x35')](function(_0x4986a8){if(_0x4986a8){_0x29364d[_0x2b33('0x25')]=_0x4986a8['get']({'plain':!![]});return db[_0x2b33('0x64')]['find']({'where':{'id':_0x4986a8['WhatsappInteractionId']}});}return null;})['then'](handleEntityNotFound(_0x44ca31,null))[_0x2b33('0x35')](function(_0x4e4fce){if(_0x4e4fce){_0x29364d[_0x2b33('0x68')]=_0x4e4fce[_0x2b33('0x63')]({'plain':!![]});interaction_log[_0x2b33('0x26')](_0x2b33('0x75'),_0x1e681a[_0x2b33('0x61')]['id'],_0x1e681a[_0x2b33('0x61')][_0x2b33('0x39')],_0x1e681a[_0x2b33('0x61')][_0x2b33('0x69')],_0x29364d[_0x2b33('0x68')]['id'],_0x1e681a[_0x2b33('0x58')]?JSON['stringify'](_0x1e681a[_0x2b33('0x58')]):_0x2b33('0x6a'));return respondWithRpcPromise('RejectMessage',_0x2b33('0x76'),_0x29364d);}return null;})['then'](function(_0x3db614){var _0x586617=_0x2b33('0x77')+_0x3db614['message'][_0x2b33('0x78')];return db[_0x2b33('0x79')][_0x2b33('0x44')](_0x586617,{'type':db[_0x2b33('0x6d')]['QueryTypes'][_0x2b33('0x7a')],'raw':!![]})[_0x2b33('0x35')](function(_0x4f0f6f){return _0x4f0f6f;});})[_0x2b33('0x35')](function(_0x38f168){if(_0x38f168){_0x29364d[_0x2b33('0x25')][_0x2b33('0x6f')]=_0x38f168[0x0];if(!_0x1e681a['body'][_0x2b33('0x60')])return;return db[_0x2b33('0x7b')][_0x2b33('0x56')]({'where':{'id':_0x1e681a[_0x2b33('0x58')]['UserId'],'role':_0x2b33('0x62')},'attributes':['id','name',_0x2b33('0x7c'),_0x2b33('0x7d'),_0x2b33('0x7e')],'raw':!![]});}return null;})[_0x2b33('0x35')](function(_0x591e1f){if(!_0x591e1f)return null;_0x29364d[_0x2b33('0x25')][_0x2b33('0x62')]=_0x591e1f;return _0x29364d;})[_0x2b33('0x35')](function(_0x11486b){if(_0x11486b){_0x11486b[_0x2b33('0x25')]['interface']=util[_0x2b33('0x71')](_0x2b33('0x7f'),_0x1e681a[_0x2b33('0x61')][_0x2b33('0x39')]);_0x11486b[_0x2b33('0x25')]['channel']=_0x29364d[_0x2b33('0x72')];_0x11486b[_0x2b33('0x25')][_0x2b33('0x80')]=_0x29364d['channel'];_0x11486b[_0x2b33('0x25')]['event']=_0x2b33('0x33');respondWithRpcPromise(_0x2b33('0x74'),'EventManager',{'event':_0x2b33('0x81'),'message':_0x11486b[_0x2b33('0x25')]},client9002);return _0x29364d;}return null;})['then'](respondWithResult(_0x44ca31,null))['catch'](handleError(_0x44ca31,null));};exports[_0x2b33('0x2a')]=function(_0x5bc4da,_0x36ac4b,_0x32134f){if(_0x5bc4da['body']['id']){delete _0x5bc4da['body']['id'];}var _0x5a219b;return db[_0x2b33('0x3c')][_0x2b33('0x56')]({'where':{'id':_0x5bc4da[_0x2b33('0x53')]['id']}})['then'](handleEntityNotFound(_0x36ac4b,null))['then'](function(_0x2f42b1){if(_0x2f42b1){_0x5a219b=_0x2f42b1;return db[_0x2b33('0x82')][_0x2b33('0x56')]({'where':{'id':_0x2f42b1[_0x2b33('0x83')]}});}})[_0x2b33('0x35')](handleEntityNotFound(_0x36ac4b,null))[_0x2b33('0x35')](function(_0x5cc48c){if(_0x5cc48c){logger[_0x2b33('0x1f')](_0x2b33('0x84'),_0x2b33('0x2a'),_0x2b33('0x85'),_0x5cc48c[_0x2b33('0x4e')],util['inspect'](_0x5bc4da[_0x2b33('0x58')],{'showHidden':![],'depth':null}));switch(_0x5cc48c[_0x2b33('0x4e')]){case'twilio':if(_0x5bc4da[_0x2b33('0x58')][_0x2b33('0x86')]&&_0x5bc4da[_0x2b33('0x58')]['MessageSid']===_0x5a219b[_0x2b33('0x87')]&&_0x5bc4da['body'][_0x2b33('0x88')]&&_0x5bc4da['body'][_0x2b33('0x88')]==='read'){return _0x5a219b['update']({'read':!![]});}else{logger[_0x2b33('0x22')](_0x2b33('0x89'),_0x2b33('0x2a'),_0x2b33('0x8a'),util['inspect'](_0x5bc4da[_0x2b33('0x58')],{'showHidden':![],'depth':null}));}break;}return _0x5a219b;}})['then'](respondWithResult(_0x36ac4b,null))['catch'](handleError(_0x36ac4b,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x705f=['update','remove','emit','hasOwnProperty','hook','WhatsappMessage','save'];(function(_0x813e39,_0x232974){var _0x8f7753=function(_0x11a679){while(--_0x11a679){_0x813e39['push'](_0x813e39['shift']());}};_0x8f7753(++_0x232974);}(_0x705f,0x75));var _0xf705=function(_0x3b5d45,_0x597509){_0x3b5d45=_0x3b5d45-0x0;var _0x3cbc78=_0x705f[_0x3b5d45];return _0x3cbc78;};'use strict';var EventEmitter=require('events');var WhatsappMessage=require('../../mysqldb')['db'][_0xf705('0x0')];var WhatsappMessageEvents=new EventEmitter();WhatsappMessageEvents['setMaxListeners'](0x0);var events={'afterCreate':_0xf705('0x1'),'afterUpdate':_0xf705('0x2'),'afterDestroy':_0xf705('0x3')};function emitEvent(_0x35760c){return function(_0x1dd679,_0x47514c,_0x9045cf){WhatsappMessageEvents[_0xf705('0x4')](_0x35760c+':'+_0x1dd679['id'],_0x1dd679);WhatsappMessageEvents[_0xf705('0x4')](_0x35760c,_0x1dd679);_0x9045cf(null);};}for(var e in events){if(events[_0xf705('0x5')](e)){var event=events[e];WhatsappMessage[_0xf705('0x6')](e,emitEvent(event));}}module['exports']=WhatsappMessageEvents;
\ No newline at end of file
+var _0x235a=['../../mysqldb','WhatsappMessage','save','remove','emit','hasOwnProperty','exports','events'];(function(_0x888fc9,_0x57dc31){var _0x395d14=function(_0x37bb69){while(--_0x37bb69){_0x888fc9['push'](_0x888fc9['shift']());}};_0x395d14(++_0x57dc31);}(_0x235a,0x1ef));var _0xa235=function(_0x36a054,_0x293d31){_0x36a054=_0x36a054-0x0;var _0x1b90bd=_0x235a[_0x36a054];return _0x1b90bd;};'use strict';var EventEmitter=require(_0xa235('0x0'));var WhatsappMessage=require(_0xa235('0x1'))['db'][_0xa235('0x2')];var WhatsappMessageEvents=new EventEmitter();WhatsappMessageEvents['setMaxListeners'](0x0);var events={'afterCreate':_0xa235('0x3'),'afterUpdate':'update','afterDestroy':_0xa235('0x4')};function emitEvent(_0x2f7920){return function(_0x277a68,_0x314ebf,_0x2e6eca){WhatsappMessageEvents[_0xa235('0x5')](_0x2f7920+':'+_0x277a68['id'],_0x277a68);WhatsappMessageEvents[_0xa235('0x5')](_0x2f7920,_0x277a68);_0x2e6eca(null);};}for(var e in events){if(events[_0xa235('0x6')](e)){var event=events[e];WhatsappMessage['hook'](e,emitEvent(event));}}module[_0xa235('0x7')]=WhatsappMessageEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6ab8=['/status?token=','token','sid','WhatsappMessage,\x20%s,\x20%s,\x20%s','inspect','error','afterCreate','Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken','finally','utf8mb4_unicode_ci','lodash','util','../../config/logger','request-promise','path','rimraf','./whatsappMessage.attributes','exports','define','whatsapp_messages','messageId','body','models','direction','toLowerCase','out','secret','isNil','WhatsappInteraction','findOne','then','update','createdAt','catch','WhatsappAccount','find','WhatsappAccountId','type','twilio','accountSid','authToken','phone','create','whatsapp:','remote','/api/whatsapp/messages/'];(function(_0x3df93e,_0x5af13a){var _0x2d4f2a=function(_0x14c85c){while(--_0x14c85c){_0x3df93e['push'](_0x3df93e['shift']());}};_0x2d4f2a(++_0x5af13a);}(_0x6ab8,0x66));var _0x86ab=function(_0x322813,_0x3a540e){_0x322813=_0x322813-0x0;var _0x45c633=_0x6ab8[_0x322813];return _0x45c633;};'use strict';var _=require(_0x86ab('0x0'));var util=require(_0x86ab('0x1'));var logger=require(_0x86ab('0x2'))('api');var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0x86ab('0x3'));var fs=require('fs');var path=require(_0x86ab('0x4'));var rimraf=require(_0x86ab('0x5'));var config=require('../../config/environment');var attributes=require(_0x86ab('0x6'));module[_0x86ab('0x7')]=function(_0x17eaad,_0x198d60){return _0x17eaad[_0x86ab('0x8')]('WhatsappMessage',attributes,{'tableName':_0x86ab('0x9'),'paranoid':![],'indexes':[{'name':_0x86ab('0xa'),'fields':[_0x86ab('0xa')]},{'name':'fti_whatsapp_messages','fields':[_0x86ab('0xb')],'type':'FULLTEXT'}],'timestamps':!![],'hooks':{'afterCreate':function(_0x1c43a4,_0x4a27b0,_0x39346d){var _0x3b556e=_0x17eaad[_0x86ab('0xc')];var _0x15750d=_0x1c43a4['get']({'plain':!![]});if(_0x15750d[_0x86ab('0xd')][_0x86ab('0xe')]()==='in'||_0x15750d[_0x86ab('0xd')]['toLowerCase']()===_0x86ab('0xf')&&!_0x15750d[_0x86ab('0x10')]&&!_[_0x86ab('0x11')](_0x15750d['UserId'])){_0x3b556e[_0x86ab('0x12')][_0x86ab('0x13')]({'where':{'id':_0x15750d['WhatsappInteractionId']}})[_0x86ab('0x14')](function(_0x2bb5cf){if(_0x2bb5cf){_0x2bb5cf[_0x86ab('0x15')]({'lastMsgAt':_0x15750d[_0x86ab('0x16')],'lastMsgDirection':_0x15750d[_0x86ab('0xd')][_0x86ab('0xe')]()});}})[_0x86ab('0x17')](function(_0x1cbe7b){console['error'](_0x1cbe7b);});}if(_0x15750d[_0x86ab('0xd')]===_0x86ab('0xf')&&!_0x15750d[_0x86ab('0x10')]){var _0x75c5c;_0x3b556e[_0x86ab('0x18')][_0x86ab('0x19')]({'where':{'id':_0x15750d[_0x86ab('0x1a')]},'raw':!![]})[_0x86ab('0x14')](function(_0x5a0737){_0x75c5c=_0x5a0737;if(_0x75c5c&&_0x75c5c[_0x86ab('0x1b')]){switch(_0x75c5c[_0x86ab('0x1b')]){case'twilio':var _0x44fa7f=require(_0x86ab('0x1c'));if(_0x75c5c[_0x86ab('0x1d')]&&_0x75c5c[_0x86ab('0x1e')]&&_0x75c5c[_0x86ab('0x1f')]){var _0x476789=new _0x44fa7f(_0x75c5c['accountSid'],_0x75c5c[_0x86ab('0x1e')]);_0x476789['messages'][_0x86ab('0x20')]({'body':_0x15750d[_0x86ab('0xb')],'to':'whatsapp:'+_0x15750d[_0x86ab('0x1f')],'from':_0x86ab('0x21')+_0x75c5c[_0x86ab('0x1f')],'statusCallback':_0x75c5c[_0x86ab('0x22')]+_0x86ab('0x23')+_0x15750d['id']+_0x86ab('0x24')+_0x75c5c[_0x86ab('0x25')]})[_0x86ab('0x14')](function(_0x5b654c){if(_0x5b654c[_0x86ab('0x26')]){return _0x1c43a4['update']({'messageId':_0x5b654c['sid']});}})['catch'](function(_0x289e97){logger['error'](_0x86ab('0x27'),'afterCreate',_0x86ab('0x1c'),util[_0x86ab('0x28')](_0x289e97,{'showHidden':![],'depth':null}));});}else{logger[_0x86ab('0x29')]('WhatsappMessage,\x20%s,\x20%s,\x20%s',_0x86ab('0x2a'),'twilio',_0x86ab('0x2b'));}break;}}})[_0x86ab('0x2c')](function(){_0x39346d();});}else{_0x39346d();}}},'charset':'utf8mb4','collate':_0x86ab('0x2d')});};
\ No newline at end of file
+var _0x34c8=['WhatsappAccount','WhatsappAccountId','type','twilio','accountSid','authToken','create','phone','whatsapp:','remote','/api/whatsapp/messages/','/status?token=','sid','update','catch','error','WhatsappMessage,\x20%s,\x20%s,\x20%s','afterCreate','inspect','Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken','finally','utf8mb4_unicode_ci','lodash','../../config/logger','moment','bluebird','path','rimraf','../../config/environment','./whatsappMessage.attributes','define','messageId','fti_whatsapp_messages','body','FULLTEXT','models','get','direction','toLowerCase','secret','UserId','WhatsappInteraction','findOne','WhatsappInteractionId','then','createdAt','out'];(function(_0x5298a6,_0x3d42ce){var _0x2ddd15=function(_0x50742c){while(--_0x50742c){_0x5298a6['push'](_0x5298a6['shift']());}};_0x2ddd15(++_0x3d42ce);}(_0x34c8,0xa3));var _0x834c=function(_0x46e363,_0x45d7e2){_0x46e363=_0x46e363-0x0;var _0x3fb059=_0x34c8[_0x46e363];return _0x3fb059;};'use strict';var _=require(_0x834c('0x0'));var util=require('util');var logger=require(_0x834c('0x1'))('api');var moment=require(_0x834c('0x2'));var BPromise=require(_0x834c('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x834c('0x4'));var rimraf=require(_0x834c('0x5'));var config=require(_0x834c('0x6'));var attributes=require(_0x834c('0x7'));module['exports']=function(_0x2a85f,_0x4929f6){return _0x2a85f[_0x834c('0x8')]('WhatsappMessage',attributes,{'tableName':'whatsapp_messages','paranoid':![],'indexes':[{'name':_0x834c('0x9'),'fields':[_0x834c('0x9')]},{'name':_0x834c('0xa'),'fields':[_0x834c('0xb')],'type':_0x834c('0xc')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x3c4730,_0x31473c,_0x3ade67){var _0x5f511e=_0x2a85f[_0x834c('0xd')];var _0x97b9aa=_0x3c4730[_0x834c('0xe')]({'plain':!![]});if(_0x97b9aa[_0x834c('0xf')][_0x834c('0x10')]()==='in'||_0x97b9aa[_0x834c('0xf')][_0x834c('0x10')]()==='out'&&!_0x97b9aa[_0x834c('0x11')]&&!_['isNil'](_0x97b9aa[_0x834c('0x12')])){_0x5f511e[_0x834c('0x13')][_0x834c('0x14')]({'where':{'id':_0x97b9aa[_0x834c('0x15')]}})[_0x834c('0x16')](function(_0x19521d){if(_0x19521d){_0x19521d['update']({'lastMsgAt':_0x97b9aa[_0x834c('0x17')],'lastMsgDirection':_0x97b9aa[_0x834c('0xf')][_0x834c('0x10')]()});}})['catch'](function(_0x458b99){console['error'](_0x458b99);});}if(_0x97b9aa[_0x834c('0xf')]===_0x834c('0x18')&&!_0x97b9aa[_0x834c('0x11')]){var _0x5aa3dd;_0x5f511e[_0x834c('0x19')]['find']({'where':{'id':_0x97b9aa[_0x834c('0x1a')]},'raw':!![]})[_0x834c('0x16')](function(_0x27ca16){_0x5aa3dd=_0x27ca16;if(_0x5aa3dd&&_0x5aa3dd[_0x834c('0x1b')]){switch(_0x5aa3dd[_0x834c('0x1b')]){case _0x834c('0x1c'):var _0x3d5757=require(_0x834c('0x1c'));if(_0x5aa3dd[_0x834c('0x1d')]&&_0x5aa3dd['authToken']&&_0x5aa3dd['phone']){var _0x300a15=new _0x3d5757(_0x5aa3dd[_0x834c('0x1d')],_0x5aa3dd[_0x834c('0x1e')]);_0x300a15['messages'][_0x834c('0x1f')]({'body':_0x97b9aa['body'],'to':'whatsapp:'+_0x97b9aa[_0x834c('0x20')],'from':_0x834c('0x21')+_0x5aa3dd['phone'],'statusCallback':_0x5aa3dd[_0x834c('0x22')]+_0x834c('0x23')+_0x97b9aa['id']+_0x834c('0x24')+_0x5aa3dd['token']})[_0x834c('0x16')](function(_0x17ffc1){if(_0x17ffc1[_0x834c('0x25')]){return _0x3c4730[_0x834c('0x26')]({'messageId':_0x17ffc1[_0x834c('0x25')]});}})[_0x834c('0x27')](function(_0x266086){logger[_0x834c('0x28')](_0x834c('0x29'),_0x834c('0x2a'),_0x834c('0x1c'),util[_0x834c('0x2b')](_0x266086,{'showHidden':![],'depth':null}));});}else{logger[_0x834c('0x28')](_0x834c('0x29'),_0x834c('0x2a'),_0x834c('0x1c'),_0x834c('0x2c'));}break;}}})[_0x834c('0x2d')](function(){_0x3ade67();});}else{_0x3ade67();}}},'charset':'utf8mb4','collate':_0x834c('0x2e')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3d7e=['rpc','../../config/environment','http','defaults','redis','localhost','socket.io-emitter','./whatsappMessage.socket','register','request','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','../../mysqldb','../../config/utils'];(function(_0x379be1,_0x4af3e7){var _0x15fb83=function(_0x1f9288){while(--_0x1f9288){_0x379be1['push'](_0x379be1['shift']());}};_0x15fb83(++_0x4af3e7);}(_0x3d7e,0x1f0));var _0xe3d7=function(_0x5311e8,_0x57c5bb){_0x5311e8=_0x5311e8-0x0;var _0x582ad8=_0x3d7e[_0x5311e8];return _0x582ad8;};'use strict';var _=require(_0xe3d7('0x0'));var util=require(_0xe3d7('0x1'));var moment=require(_0xe3d7('0x2'));var BPromise=require(_0xe3d7('0x3'));var rs=require(_0xe3d7('0x4'));var fs=require('fs');var Redis=require(_0xe3d7('0x5'));var db=require(_0xe3d7('0x6'))['db'];var utils=require(_0xe3d7('0x7'));var logger=require('../../config/logger')(_0xe3d7('0x8'));var config=require(_0xe3d7('0x9'));var jayson=require('jayson/promise');var client=jayson['client'][_0xe3d7('0xa')]({'port':0x232a});config['redis']=_[_0xe3d7('0xb')](config[_0xe3d7('0xc')],{'host':_0xe3d7('0xd'),'port':0x18eb});var socket=require(_0xe3d7('0xe'))(new Redis(config[_0xe3d7('0xc')]));require(_0xe3d7('0xf'))[_0xe3d7('0x10')](socket);function respondWithRpcPromise(_0x3572d8,_0x455fdd,_0x4f3aa4){return new BPromise(function(_0x4b5a1f,_0x26496f){return client[_0xe3d7('0x11')](_0x3572d8,_0x4f3aa4)[_0xe3d7('0x12')](function(_0x1545ff){logger[_0xe3d7('0x13')](_0xe3d7('0x14'),_0x455fdd,_0xe3d7('0x15'));logger[_0xe3d7('0x16')](_0xe3d7('0x17'),_0x455fdd,'request\x20sent',JSON[_0xe3d7('0x18')](_0x1545ff));if(_0x1545ff[_0xe3d7('0x19')]){if(_0x1545ff['error'][_0xe3d7('0x1a')]===0x1f4){logger['error'](_0xe3d7('0x14'),_0x455fdd,_0x1545ff[_0xe3d7('0x19')][_0xe3d7('0x1b')]);return _0x26496f(_0x1545ff['error'][_0xe3d7('0x1b')]);}logger['error'](_0xe3d7('0x14'),_0x455fdd,_0x1545ff[_0xe3d7('0x19')][_0xe3d7('0x1b')]);return _0x4b5a1f(_0x1545ff['error'][_0xe3d7('0x1b')]);}else{logger[_0xe3d7('0x13')](_0xe3d7('0x14'),_0x455fdd,_0xe3d7('0x15'));_0x4b5a1f(_0x1545ff[_0xe3d7('0x1c')][_0xe3d7('0x1b')]);}})[_0xe3d7('0x1d')](function(_0x28acc9){logger[_0xe3d7('0x19')](_0xe3d7('0x14'),_0x455fdd,_0x28acc9);_0x26496f(_0x28acc9);});});}exports['CreateWhatsappMessage']=function(_0x13659f){var _0x42c08a=this;return new Promise(function(_0x3f3613,_0x435394){return db[_0xe3d7('0x1e')][_0xe3d7('0x1f')](_0x13659f[_0xe3d7('0x20')],{'raw':_0x13659f[_0xe3d7('0x21')]?_0x13659f[_0xe3d7('0x21')][_0xe3d7('0x22')]===undefined?!![]:![]:!![]})[_0xe3d7('0x12')](function(_0x49f8cb){logger[_0xe3d7('0x13')]('CreateWhatsappMessage',_0x13659f);logger[_0xe3d7('0x16')](_0xe3d7('0x23'),_0x13659f,JSON[_0xe3d7('0x18')](_0x49f8cb));_0x3f3613(_0x49f8cb);})[_0xe3d7('0x1d')](function(_0x2d2b5d){logger['error'](_0xe3d7('0x23'),_0x2d2b5d['message'],_0x13659f);_0x435394(_0x42c08a[_0xe3d7('0x19')](0x1f4,_0x2d2b5d[_0xe3d7('0x1b')]));});});};
\ No newline at end of file
+var _0xaf5e=['message','info','result','catch','CreateWhatsappMessage','WhatsappMessage','create','body','options','raw','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','rpc','jayson/promise','client','http','redis','socket.io-emitter','./whatsappMessage.socket','then','WhatsappMessage,\x20%s,\x20%s','request\x20sent','debug','WhatsappMessage,\x20%s,\x20%s,\x20%s','stringify','error'];(function(_0x4d0046,_0x4f1234){var _0x431063=function(_0x35e0ee){while(--_0x35e0ee){_0x4d0046['push'](_0x4d0046['shift']());}};_0x431063(++_0x4f1234);}(_0xaf5e,0x19d));var _0xeaf5=function(_0x5dc6e5,_0x331ffe){_0x5dc6e5=_0x5dc6e5-0x0;var _0x3a9da2=_0xaf5e[_0x5dc6e5];return _0x3a9da2;};'use strict';var _=require(_0xeaf5('0x0'));var util=require(_0xeaf5('0x1'));var moment=require(_0xeaf5('0x2'));var BPromise=require(_0xeaf5('0x3'));var rs=require(_0xeaf5('0x4'));var fs=require('fs');var Redis=require(_0xeaf5('0x5'));var db=require(_0xeaf5('0x6'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0xeaf5('0x7'));var config=require('../../config/environment');var jayson=require(_0xeaf5('0x8'));var client=jayson[_0xeaf5('0x9')][_0xeaf5('0xa')]({'port':0x232a});config[_0xeaf5('0xb')]=_['defaults'](config[_0xeaf5('0xb')],{'host':'localhost','port':0x18eb});var socket=require(_0xeaf5('0xc'))(new Redis(config['redis']));require(_0xeaf5('0xd'))['register'](socket);function respondWithRpcPromise(_0x2caf08,_0x16484b,_0x2196ab){return new BPromise(function(_0x43b5f5,_0xb59be7){return client['request'](_0x2caf08,_0x2196ab)[_0xeaf5('0xe')](function(_0x5747d4){logger['info'](_0xeaf5('0xf'),_0x16484b,_0xeaf5('0x10'));logger[_0xeaf5('0x11')](_0xeaf5('0x12'),_0x16484b,'request\x20sent',JSON[_0xeaf5('0x13')](_0x5747d4));if(_0x5747d4['error']){if(_0x5747d4[_0xeaf5('0x14')]['code']===0x1f4){logger[_0xeaf5('0x14')](_0xeaf5('0xf'),_0x16484b,_0x5747d4['error']['message']);return _0xb59be7(_0x5747d4[_0xeaf5('0x14')][_0xeaf5('0x15')]);}logger[_0xeaf5('0x14')](_0xeaf5('0xf'),_0x16484b,_0x5747d4[_0xeaf5('0x14')]['message']);return _0x43b5f5(_0x5747d4['error'][_0xeaf5('0x15')]);}else{logger[_0xeaf5('0x16')](_0xeaf5('0xf'),_0x16484b,_0xeaf5('0x10'));_0x43b5f5(_0x5747d4[_0xeaf5('0x17')][_0xeaf5('0x15')]);}})[_0xeaf5('0x18')](function(_0x5bb919){logger[_0xeaf5('0x14')](_0xeaf5('0xf'),_0x16484b,_0x5bb919);_0xb59be7(_0x5bb919);});});}exports[_0xeaf5('0x19')]=function(_0x1d6a0d){var _0x331fa2=this;return new Promise(function(_0x10f6be,_0x4421a5){return db[_0xeaf5('0x1a')][_0xeaf5('0x1b')](_0x1d6a0d[_0xeaf5('0x1c')],{'raw':_0x1d6a0d[_0xeaf5('0x1d')]?_0x1d6a0d[_0xeaf5('0x1d')][_0xeaf5('0x1e')]===undefined?!![]:![]:!![]})['then'](function(_0x2e13e2){logger[_0xeaf5('0x16')](_0xeaf5('0x19'),_0x1d6a0d);logger[_0xeaf5('0x11')](_0xeaf5('0x19'),_0x1d6a0d,JSON[_0xeaf5('0x13')](_0x2e13e2));_0x10f6be(_0x2e13e2);})['catch'](function(_0x198ab8){logger['error'](_0xeaf5('0x19'),_0x198ab8[_0xeaf5('0x15')],_0x1d6a0d);_0x4421a5(_0x331fa2[_0xeaf5('0x14')](0x1f4,_0x198ab8[_0xeaf5('0x15')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x69e3=['removeListener','length','whatsappMessage:','save','update','emit'];(function(_0x5e0aeb,_0x1c6797){var _0xbba853=function(_0x2b8a53){while(--_0x2b8a53){_0x5e0aeb['push'](_0x5e0aeb['shift']());}};_0xbba853(++_0x1c6797);}(_0x69e3,0x165));var _0x369e=function(_0xac3866,_0xaf6072){_0xac3866=_0xac3866-0x0;var _0x22d05b=_0x69e3[_0xac3866];return _0x22d05b;};'use strict';var WhatsappMessageEvents=require('./whatsappMessage.events');var events=[_0x369e('0x0'),'remove',_0x369e('0x1')];function createListener(_0x5bf2e0,_0x580986){return function(_0x17ebc5){_0x580986[_0x369e('0x2')](_0x5bf2e0,_0x17ebc5);};}function removeListener(_0x21e697,_0x20463b){return function(){WhatsappMessageEvents[_0x369e('0x3')](_0x21e697,_0x20463b);};}exports['register']=function(_0x52bbe5){for(var _0x28e5d6=0x0,_0xe19ad0=events[_0x369e('0x4')];_0x28e5d6<_0xe19ad0;_0x28e5d6++){var _0x2d037e=events[_0x28e5d6];var _0x570fb3=createListener(_0x369e('0x5')+_0x2d037e,_0x52bbe5);WhatsappMessageEvents['on'](_0x2d037e,_0x570fb3);}};
\ No newline at end of file
+var _0x30c8=['update','length','whatsappMessage:','save','remove'];(function(_0x34daae,_0x2aeeca){var _0x2c5f6d=function(_0x457299){while(--_0x457299){_0x34daae['push'](_0x34daae['shift']());}};_0x2c5f6d(++_0x2aeeca);}(_0x30c8,0xa3));var _0x830c=function(_0x296700,_0x501f0f){_0x296700=_0x296700-0x0;var _0x5566c5=_0x30c8[_0x296700];return _0x5566c5;};'use strict';var WhatsappMessageEvents=require('./whatsappMessage.events');var events=[_0x830c('0x0'),_0x830c('0x1'),_0x830c('0x2')];function createListener(_0x4ff822,_0x20ce35){return function(_0x5472e9){_0x20ce35['emit'](_0x4ff822,_0x5472e9);};}function removeListener(_0x3e08ff,_0x96b7f6){return function(){WhatsappMessageEvents['removeListener'](_0x3e08ff,_0x96b7f6);};}exports['register']=function(_0x4a665d){for(var _0x22fc35=0x0,_0x23007a=events[_0x830c('0x3')];_0x22fc35<_0x23007a;_0x22fc35++){var _0x50033e=events[_0x22fc35];var _0xa75d13=createListener(_0x830c('0x4')+_0x50033e,_0x4a665d);WhatsappMessageEvents['on'](_0x50033e,_0xa75d13);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9022=['delete','destroy','removeTeams','removeAgents','util','path','connect-timeout','Router','../../components/auth/service','../../components/interaction/service','./whatsappQueue.controller','get','isAuthenticated','index','/describe','describe','show','/:id/members','getMembers','/:id/teams','getTeams','/:id/users','post','addTeams','addAgents','put','/:id','update'];(function(_0x416553,_0x4e26ed){var _0x4cb37d=function(_0x2be573){while(--_0x2be573){_0x416553['push'](_0x416553['shift']());}};_0x4cb37d(++_0x4e26ed);}(_0x9022,0x1e0));var _0x2902=function(_0x3c4024,_0x1fb7c9){_0x3c4024=_0x3c4024-0x0;var _0x20f126=_0x9022[_0x3c4024];return _0x20f126;};'use strict';var multer=require('multer');var util=require(_0x2902('0x0'));var path=require(_0x2902('0x1'));var timeout=require(_0x2902('0x2'));var express=require('express');var router=express[_0x2902('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x2902('0x4'));var interaction=require(_0x2902('0x5'));var config=require('../../config/environment');var controller=require(_0x2902('0x6'));router[_0x2902('0x7')]('/',auth[_0x2902('0x8')](),controller[_0x2902('0x9')]);router[_0x2902('0x7')](_0x2902('0xa'),auth['isAuthenticated'](),controller[_0x2902('0xb')]);router[_0x2902('0x7')]('/:id',auth[_0x2902('0x8')](),controller[_0x2902('0xc')]);router['get'](_0x2902('0xd'),auth[_0x2902('0x8')](),controller[_0x2902('0xe')]);router[_0x2902('0x7')](_0x2902('0xf'),auth[_0x2902('0x8')](),controller[_0x2902('0x10')]);router['get'](_0x2902('0x11'),auth[_0x2902('0x8')](),controller['getAgents']);router[_0x2902('0x12')]('/',auth[_0x2902('0x8')](),controller['create']);router[_0x2902('0x12')]('/:id/teams',auth[_0x2902('0x8')](),controller[_0x2902('0x13')]);router[_0x2902('0x12')](_0x2902('0x11'),auth[_0x2902('0x8')](),controller[_0x2902('0x14')]);router[_0x2902('0x15')](_0x2902('0x16'),auth['isAuthenticated'](),controller[_0x2902('0x17')]);router[_0x2902('0x18')](_0x2902('0x16'),auth[_0x2902('0x8')](),controller[_0x2902('0x19')]);router['delete']('/:id/teams',auth[_0x2902('0x8')](),controller[_0x2902('0x1a')]);router[_0x2902('0x18')](_0x2902('0x11'),auth['isAuthenticated'](),controller[_0x2902('0x1b')]);module['exports']=router;
\ No newline at end of file
+var _0xa5fa=['/:id/teams','getTeams','/:id/users','getAgents','post','create','addTeams','put','update','delete','removeTeams','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./whatsappQueue.controller','get','isAuthenticated','index','/:id','show','/:id/members','getMembers'];(function(_0x2976ac,_0x2c8d0f){var _0x34e5c7=function(_0x430f19){while(--_0x430f19){_0x2976ac['push'](_0x2976ac['shift']());}};_0x34e5c7(++_0x2c8d0f);}(_0xa5fa,0x1a0));var _0xaa5f=function(_0x335a61,_0x21b879){_0x335a61=_0x335a61-0x0;var _0x48a02b=_0xa5fa[_0x335a61];return _0x48a02b;};'use strict';var multer=require('multer');var util=require(_0xaa5f('0x0'));var path=require(_0xaa5f('0x1'));var timeout=require(_0xaa5f('0x2'));var express=require(_0xaa5f('0x3'));var router=express[_0xaa5f('0x4')]();var fs_extra=require(_0xaa5f('0x5'));var auth=require(_0xaa5f('0x6'));var interaction=require(_0xaa5f('0x7'));var config=require('../../config/environment');var controller=require(_0xaa5f('0x8'));router[_0xaa5f('0x9')]('/',auth[_0xaa5f('0xa')](),controller[_0xaa5f('0xb')]);router['get']('/describe',auth[_0xaa5f('0xa')](),controller['describe']);router['get'](_0xaa5f('0xc'),auth[_0xaa5f('0xa')](),controller[_0xaa5f('0xd')]);router[_0xaa5f('0x9')](_0xaa5f('0xe'),auth[_0xaa5f('0xa')](),controller[_0xaa5f('0xf')]);router[_0xaa5f('0x9')](_0xaa5f('0x10'),auth[_0xaa5f('0xa')](),controller[_0xaa5f('0x11')]);router[_0xaa5f('0x9')](_0xaa5f('0x12'),auth[_0xaa5f('0xa')](),controller[_0xaa5f('0x13')]);router[_0xaa5f('0x14')]('/',auth[_0xaa5f('0xa')](),controller[_0xaa5f('0x15')]);router[_0xaa5f('0x14')](_0xaa5f('0x10'),auth['isAuthenticated'](),controller[_0xaa5f('0x16')]);router[_0xaa5f('0x14')](_0xaa5f('0x12'),auth['isAuthenticated'](),controller['addAgents']);router[_0xaa5f('0x17')](_0xaa5f('0xc'),auth['isAuthenticated'](),controller[_0xaa5f('0x18')]);router[_0xaa5f('0x19')]('/:id',auth[_0xaa5f('0xa')](),controller['destroy']);router['delete'](_0xaa5f('0x10'),auth[_0xaa5f('0xa')](),controller[_0xaa5f('0x1a')]);router[_0xaa5f('0x19')](_0xaa5f('0x12'),auth[_0xaa5f('0xa')](),controller['removeAgents']);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9b00=['ENUM','rrmemory','beepall','roundrobin','sequelize','exports','STRING','INTEGER'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0x9b00,0xcc));var _0x09b0=function(_0x126558,_0x143c9a){_0x126558=_0x126558-0x0;var _0x1f6d14=_0x9b00[_0x126558];return _0x1f6d14;};'use strict';var Sequelize=require(_0x09b0('0x0'));module[_0x09b0('0x1')]={'name':{'type':Sequelize[_0x09b0('0x2')],'unique':'name','validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'timeout':{'type':Sequelize[_0x09b0('0x3')],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize[_0x09b0('0x4')](_0x09b0('0x5'),_0x09b0('0x6'),_0x09b0('0x7'))},'description':{'type':Sequelize[_0x09b0('0x2')]}};
\ No newline at end of file
+var _0xc6fe=['exports','name','INTEGER','ENUM','beepall','STRING','sequelize'];(function(_0x38f199,_0xc93423){var _0x72f12a=function(_0x267589){while(--_0x267589){_0x38f199['push'](_0x38f199['shift']());}};_0x72f12a(++_0xc93423);}(_0xc6fe,0xbc));var _0xec6f=function(_0x1a1523,_0x5f2e78){_0x1a1523=_0x1a1523-0x0;var _0x46a143=_0xc6fe[_0x1a1523];return _0x46a143;};'use strict';var Sequelize=require(_0xec6f('0x0'));module[_0xec6f('0x1')]={'name':{'type':Sequelize['STRING'],'unique':_0xec6f('0x2'),'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'timeout':{'type':Sequelize[_0xec6f('0x3')],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize[_0xec6f('0x4')]('rrmemory',_0xec6f('0x5'),'roundrobin')},'description':{'type':Sequelize[_0xec6f('0x6')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd7ca=['apply','reject','save','update','destroy','WhatsappQueues','then','error','name','index','map','WhatsappQueue','fieldName','type','key','query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','include','findAll','rows','catch','show','params','includeAll','find','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','describe','getMembers','findOne','UserWhatsappQueue','WhatsappQueueId','User','UserId','agent','whatsappPause','updatedAt','createdAt','format','%s/%s','SIP','getTeams','Team','rawAttributes','addTeams','ids','online','voicePause','interface','sequelize','transaction','each','forEach','userWhatsappQueue:save','Agents','select','field','from','team_has_whatsapp_queues','join','ut.TeamId\x20=\x20tq.TeamId','WhatsappQueueId\x20=\x20?','push','toString','QueryTypes','every','includes','all','union','compact','value','removeTeams','removeAgents','emit','userWhatsappQueue:remove','addAgents','omit','isArray','getAgents','rimraf','zip-dir','moment','bluebird','mustache','util','sox','to-csv','ejs','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','redis','socket.io-emitter','./whatsappQueue.socket','register','sendStatus','end','status','json','undefined','limit','count','offset','Content-Range'];(function(_0x301ffe,_0x216433){var _0x1f3dab=function(_0x4299bd){while(--_0x4299bd){_0x301ffe['push'](_0x301ffe['shift']());}};_0x1f3dab(++_0x216433);}(_0xd7ca,0xf4));var _0xad7c=function(_0x19954e,_0x3deb49){_0x19954e=_0x19954e-0x0;var _0x46e22e=_0xd7ca[_0x19954e];return _0x46e22e;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xad7c('0x0'));var zipdir=require(_0xad7c('0x1'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0xad7c('0x2'));var BPromise=require(_0xad7c('0x3'));var Mustache=require(_0xad7c('0x4'));var util=require(_0xad7c('0x5'));var path=require('path');var sox=require(_0xad7c('0x6'));var csv=require(_0xad7c('0x7'));var ejs=require(_0xad7c('0x8'));var fs=require('fs');var fs_extra=require(_0xad7c('0x9'));var _=require(_0xad7c('0xa'));var squel=require(_0xad7c('0xb'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0xad7c('0xc'));var toCsv=require(_0xad7c('0x7'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0xad7c('0xd'));var authService=require(_0xad7c('0xe'));var qs=require(_0xad7c('0xf'));var as=require(_0xad7c('0x10'));var hardwareService=require(_0xad7c('0x11'));var logger=require(_0xad7c('0x12'))(_0xad7c('0x13'));var utils=require(_0xad7c('0x14'));var config=require(_0xad7c('0x15'));var licenseUtil=require('../../config/license/util');var db=require(_0xad7c('0x16'))['db'];config[_0xad7c('0x17')]=_['defaults'](config[_0xad7c('0x17')],{'host':'localhost','port':0x18eb});var socket=require(_0xad7c('0x18'))(new Redis(config[_0xad7c('0x17')]));require(_0xad7c('0x19'))[_0xad7c('0x1a')](socket);function respondWithStatusCode(_0x1420b9,_0x639f5e){_0x639f5e=_0x639f5e||0xcc;return function(_0x1c14e4){if(_0x1c14e4){return _0x1420b9[_0xad7c('0x1b')](_0x639f5e);}return _0x1420b9['status'](_0x639f5e)[_0xad7c('0x1c')]();};}function respondWithResult(_0x124117,_0x5bdd90){_0x5bdd90=_0x5bdd90||0xc8;return function(_0x1459bb){if(_0x1459bb){return _0x124117[_0xad7c('0x1d')](_0x5bdd90)[_0xad7c('0x1e')](_0x1459bb);}};}function respondWithFilteredResult(_0x13c5b8,_0x1dd08f){return function(_0x1d2feb){if(_0x1d2feb){var _0x121651=typeof _0x1dd08f['offset']===_0xad7c('0x1f')&&typeof _0x1dd08f[_0xad7c('0x20')]===_0xad7c('0x1f');var _0x100581=_0x1d2feb[_0xad7c('0x21')];var _0x715ca1=_0x121651?0x0:_0x1dd08f['offset'];var _0x16499a=_0x121651?_0x1d2feb[_0xad7c('0x21')]:_0x1dd08f[_0xad7c('0x22')]+_0x1dd08f[_0xad7c('0x20')];var _0x49306e;if(_0x16499a>=_0x100581){_0x16499a=_0x100581;_0x49306e=0xc8;}else{_0x49306e=0xce;}_0x13c5b8['status'](_0x49306e);return _0x13c5b8['set'](_0xad7c('0x23'),_0x715ca1+'-'+_0x16499a+'/'+_0x100581)[_0xad7c('0x1e')](_0x1d2feb);}return null;};}function patchUpdates(_0x5b7b59){return function(_0x3cc302){try{jsonpatch[_0xad7c('0x24')](_0x3cc302,_0x5b7b59,!![]);}catch(_0x3b140f){return BPromise[_0xad7c('0x25')](_0x3b140f);}return _0x3cc302[_0xad7c('0x26')]();};}function saveUpdates(_0xe47428,_0x357f78){return function(_0x3e8363){if(_0x3e8363){return _0x3e8363[_0xad7c('0x27')](_0xe47428)['then'](function(_0x3043d7){return _0x3043d7;});}return null;};}function removeEntity(_0x42ed27,_0x3daee2){return function(_0x2b708a){if(_0x2b708a){return _0x2b708a[_0xad7c('0x28')]()['then'](function(){var _0x4c8fa5=_0x2b708a['get']({'plain':!![]});var _0x39c26a=_0xad7c('0x29');return db['UserProfileResource'][_0xad7c('0x28')]({'where':{'type':_0x39c26a,'resourceId':_0x4c8fa5['id']}})[_0xad7c('0x2a')](function(){return _0x2b708a;});})[_0xad7c('0x2a')](function(){_0x42ed27[_0xad7c('0x1d')](0xcc)[_0xad7c('0x1c')]();});}};}function handleEntityNotFound(_0x4be92c,_0x56ee21){return function(_0x5ae1f6){if(!_0x5ae1f6){_0x4be92c[_0xad7c('0x1b')](0x194);}return _0x5ae1f6;};}function handleError(_0x269518,_0x3bc371){_0x3bc371=_0x3bc371||0x1f4;return function(_0x3e5469){logger[_0xad7c('0x2b')](_0x3e5469['stack']);if(_0x3e5469[_0xad7c('0x2c')]){delete _0x3e5469[_0xad7c('0x2c')];}_0x269518[_0xad7c('0x1d')](_0x3bc371)['send'](_0x3e5469);};}exports[_0xad7c('0x2d')]=function(_0x48d036,_0x21d597){var _0x2ea222={},_0x266a76={},_0xcb7cb8={'count':0x0,'rows':[]};var _0x54399e=_[_0xad7c('0x2e')](db[_0xad7c('0x2f')]['rawAttributes'],function(_0x561bde){return{'name':_0x561bde[_0xad7c('0x30')],'type':_0x561bde[_0xad7c('0x31')][_0xad7c('0x32')]};});_0x266a76['model']=_['map'](_0x54399e,_0xad7c('0x2c'));_0x266a76[_0xad7c('0x33')]=_[_0xad7c('0x34')](_0x48d036[_0xad7c('0x33')]);_0x266a76[_0xad7c('0x35')]=_[_0xad7c('0x36')](_0x266a76[_0xad7c('0x37')],_0x266a76['query']);_0x2ea222[_0xad7c('0x38')]=_[_0xad7c('0x36')](_0x266a76[_0xad7c('0x37')],qs[_0xad7c('0x39')](_0x48d036[_0xad7c('0x33')]['fields']));_0x2ea222[_0xad7c('0x38')]=_0x2ea222[_0xad7c('0x38')][_0xad7c('0x3a')]?_0x2ea222['attributes']:_0x266a76[_0xad7c('0x37')];if(!_0x48d036[_0xad7c('0x33')][_0xad7c('0x3b')](_0xad7c('0x3c'))){_0x2ea222['limit']=qs[_0xad7c('0x20')](_0x48d036[_0xad7c('0x33')]['limit']);_0x2ea222[_0xad7c('0x22')]=qs['offset'](_0x48d036[_0xad7c('0x33')]['offset']);}_0x2ea222[_0xad7c('0x3d')]=qs[_0xad7c('0x3e')](_0x48d036[_0xad7c('0x33')][_0xad7c('0x3e')]);_0x2ea222[_0xad7c('0x3f')]=qs[_0xad7c('0x35')](_[_0xad7c('0x40')](_0x48d036[_0xad7c('0x33')],_0x266a76['filters']),_0x54399e);if(_0x48d036[_0xad7c('0x33')][_0xad7c('0x41')]){_0x2ea222[_0xad7c('0x3f')]=_[_0xad7c('0x42')](_0x2ea222[_0xad7c('0x3f')],{'$or':_[_0xad7c('0x2e')](_0x54399e,function(_0x57bec9){if(_0x57bec9['type']!==_0xad7c('0x43')){var _0x483239={};_0x483239[_0x57bec9['name']]={'$like':'%'+_0x48d036[_0xad7c('0x33')]['filter']+'%'};return _0x483239;}})});}_0x2ea222=_[_0xad7c('0x42')]({},_0x2ea222,_0x48d036[_0xad7c('0x44')]);var _0x49fe43={'where':_0x2ea222[_0xad7c('0x3f')]};return db[_0xad7c('0x2f')]['count'](_0x49fe43)[_0xad7c('0x2a')](function(_0x4f2bce){_0xcb7cb8[_0xad7c('0x21')]=_0x4f2bce;if(_0x48d036['query']['includeAll']){_0x2ea222[_0xad7c('0x45')]=[{'all':!![]}];}return db['WhatsappQueue'][_0xad7c('0x46')](_0x2ea222);})['then'](function(_0x392bea){_0xcb7cb8[_0xad7c('0x47')]=_0x392bea;return _0xcb7cb8;})[_0xad7c('0x2a')](respondWithFilteredResult(_0x21d597,_0x2ea222))[_0xad7c('0x48')](handleError(_0x21d597,null));};exports[_0xad7c('0x49')]=function(_0x4fc27f,_0xbb5516){var _0xe8994f={'raw':!![],'where':{'id':_0x4fc27f[_0xad7c('0x4a')]['id']}},_0x52fdd5={};_0x52fdd5[_0xad7c('0x37')]=_[_0xad7c('0x34')](db['WhatsappQueue']['rawAttributes']);_0x52fdd5[_0xad7c('0x33')]=_[_0xad7c('0x34')](_0x4fc27f[_0xad7c('0x33')]);_0x52fdd5[_0xad7c('0x35')]=_[_0xad7c('0x36')](_0x52fdd5[_0xad7c('0x37')],_0x52fdd5[_0xad7c('0x33')]);_0xe8994f[_0xad7c('0x38')]=_[_0xad7c('0x36')](_0x52fdd5[_0xad7c('0x37')],qs[_0xad7c('0x39')](_0x4fc27f[_0xad7c('0x33')]['fields']));_0xe8994f[_0xad7c('0x38')]=_0xe8994f['attributes'][_0xad7c('0x3a')]?_0xe8994f[_0xad7c('0x38')]:_0x52fdd5[_0xad7c('0x37')];if(_0x4fc27f['query'][_0xad7c('0x4b')]){_0xe8994f[_0xad7c('0x45')]=[{'all':!![]}];}_0xe8994f=_[_0xad7c('0x42')]({},_0xe8994f,_0x4fc27f[_0xad7c('0x44')]);return db[_0xad7c('0x2f')][_0xad7c('0x4c')](_0xe8994f)[_0xad7c('0x2a')](handleEntityNotFound(_0xbb5516,null))[_0xad7c('0x2a')](respondWithResult(_0xbb5516,null))[_0xad7c('0x48')](handleError(_0xbb5516,null));};exports[_0xad7c('0x4d')]=function(_0x33074c,_0x363947){return db[_0xad7c('0x2f')][_0xad7c('0x4d')](_0x33074c[_0xad7c('0x4e')],{})[_0xad7c('0x2a')](function(_0xd5e39e){var _0x38afbd=_0x33074c[_0xad7c('0x4f')][_0xad7c('0x50')]({'plain':!![]});if(!_0x38afbd)throw new Error(_0xad7c('0x51'));if(_0x38afbd[_0xad7c('0x52')]==='user'){var _0x5b88d2=_0xd5e39e['get']({'plain':!![]});var _0x215fe9=_0xad7c('0x29');return db[_0xad7c('0x53')][_0xad7c('0x4c')]({'where':{'name':_0x215fe9,'userProfileId':_0x38afbd[_0xad7c('0x54')]},'raw':!![]})[_0xad7c('0x2a')](function(_0x24f9a5){if(_0x24f9a5&&_0x24f9a5[_0xad7c('0x55')]===0x0){return db[_0xad7c('0x56')][_0xad7c('0x4d')]({'name':_0x5b88d2[_0xad7c('0x2c')],'resourceId':_0x5b88d2['id'],'type':_0x24f9a5['name'],'sectionId':_0x24f9a5['id']},{})[_0xad7c('0x2a')](function(){return _0xd5e39e;});}else{return _0xd5e39e;}})[_0xad7c('0x48')](function(_0x45e542){logger[_0xad7c('0x2b')](_0xad7c('0x57'),_0x45e542);throw _0x45e542;});}return _0xd5e39e;})[_0xad7c('0x2a')](respondWithResult(_0x363947,0xc9))['catch'](handleError(_0x363947,null));};exports[_0xad7c('0x27')]=function(_0x15e549,_0x5780a0){if(_0x15e549[_0xad7c('0x4e')]['id']){delete _0x15e549['body']['id'];}return db[_0xad7c('0x2f')][_0xad7c('0x4c')]({'where':{'id':_0x15e549[_0xad7c('0x4a')]['id']}})[_0xad7c('0x2a')](handleEntityNotFound(_0x5780a0,null))[_0xad7c('0x2a')](saveUpdates(_0x15e549[_0xad7c('0x4e')],null))[_0xad7c('0x2a')](respondWithResult(_0x5780a0,null))[_0xad7c('0x48')](handleError(_0x5780a0,null));};exports[_0xad7c('0x28')]=function(_0x38c70a,_0x208675){return db[_0xad7c('0x2f')][_0xad7c('0x4c')]({'where':{'id':_0x38c70a[_0xad7c('0x4a')]['id']}})[_0xad7c('0x2a')](handleEntityNotFound(_0x208675,null))['then'](removeEntity(_0x208675,null))[_0xad7c('0x48')](handleError(_0x208675,null));};exports[_0xad7c('0x58')]=function(_0x2d33ca,_0x2238aa){return db[_0xad7c('0x2f')]['describe']()[_0xad7c('0x2a')](respondWithResult(_0x2238aa,null))[_0xad7c('0x48')](handleError(_0x2238aa,null));};exports[_0xad7c('0x59')]=function(_0x1c8ab1,_0x125f49,_0x25c502){var _0x1f2ee9={'raw':!![],'where':{}},_0x4d7316={},_0x5bc804;return db[_0xad7c('0x2f')][_0xad7c('0x5a')]({'where':{'id':_0x1c8ab1['params']['id']}})['then'](handleEntityNotFound(_0x125f49,null))['then'](function(_0x3f246e){if(_0x3f246e){_0x5bc804=_0x3f246e[_0xad7c('0x50')]({'plain':!![]});_0x4d7316[_0xad7c('0x37')]=_[_0xad7c('0x34')](db[_0xad7c('0x5b')]['rawAttributes']);_0x4d7316[_0xad7c('0x33')]=_[_0xad7c('0x34')](_0x1c8ab1[_0xad7c('0x33')]);_0x4d7316['filters']=_[_0xad7c('0x36')](_0x4d7316[_0xad7c('0x37')],_0x4d7316['query']);_0x1f2ee9[_0xad7c('0x38')]=_[_0xad7c('0x36')](_0x4d7316[_0xad7c('0x37')],qs['fields'](_0x1c8ab1[_0xad7c('0x33')][_0xad7c('0x39')]));_0x1f2ee9[_0xad7c('0x38')]=_0x1f2ee9[_0xad7c('0x38')]['length']?_0x1f2ee9[_0xad7c('0x38')]:_0x4d7316[_0xad7c('0x37')];if(!_0x1c8ab1[_0xad7c('0x33')][_0xad7c('0x3b')](_0xad7c('0x3c'))){_0x1f2ee9[_0xad7c('0x20')]=qs['limit'](_0x1c8ab1['query'][_0xad7c('0x20')]);_0x1f2ee9[_0xad7c('0x22')]=qs[_0xad7c('0x22')](_0x1c8ab1[_0xad7c('0x33')]['offset']);}_0x1f2ee9[_0xad7c('0x3d')]=qs[_0xad7c('0x3e')](_0x1c8ab1[_0xad7c('0x33')][_0xad7c('0x3e')]);_0x1f2ee9[_0xad7c('0x3f')]=qs['filters'](_['pick'](_0x1c8ab1[_0xad7c('0x33')],_0x4d7316[_0xad7c('0x35')]));_0x1f2ee9[_0xad7c('0x3f')][_0xad7c('0x5c')]=_0x3f246e['id'];if(_0x1c8ab1[_0xad7c('0x33')][_0xad7c('0x41')]){_0x1f2ee9[_0xad7c('0x3f')]=_[_0xad7c('0x42')](_0x1f2ee9[_0xad7c('0x3f')],{'$or':_[_0xad7c('0x2e')](_0x1f2ee9[_0xad7c('0x38')],function(_0x1650b7){var _0x18cc1b={};_0x18cc1b[_0x1650b7]={'$like':'%'+_0x1c8ab1[_0xad7c('0x33')][_0xad7c('0x41')]+'%'};return _0x18cc1b;})});}_0x1f2ee9=_[_0xad7c('0x42')]({},_0x1f2ee9,_0x1c8ab1['options']);return db[_0xad7c('0x5b')][_0xad7c('0x46')](_0x1f2ee9);}})[_0xad7c('0x2a')](function(_0x5ede1a){if(_0x5ede1a){return db[_0xad7c('0x5d')]['findAndCountAll']({'where':{'id':_[_0xad7c('0x2e')](_0x5ede1a,_0xad7c('0x5e')),'role':_0xad7c('0x5f')},'attributes':['id',_0xad7c('0x2c'),_0xad7c('0x60'),_0xad7c('0x61'),_0xad7c('0x62')]});}})[_0xad7c('0x2a')](function(_0x26b4d4){if(_0x26b4d4){return{'count':_0x26b4d4[_0xad7c('0x21')],'rows':_[_0xad7c('0x2e')](_0x26b4d4['rows'],function(_0x2d0172){return{'membername':_0x2d0172[_0xad7c('0x2c')],'UserId':_0x2d0172['id'],'queue_name':_0x5bc804[_0xad7c('0x2c')],'WhatsappQueueId':_0x5bc804['id'],'interface':util[_0xad7c('0x63')](_0xad7c('0x64'),_0xad7c('0x65'),_0x2d0172['name']),'penalty':0x0,'paused':_0x2d0172[_0xad7c('0x60')],'createdAt':_0x2d0172[_0xad7c('0x62')],'updatedAt':_0x2d0172[_0xad7c('0x61')]};})};}else{return{'count':0x0,'rows':[]};}})[_0xad7c('0x2a')](respondWithFilteredResult(_0x125f49,_0x1f2ee9))[_0xad7c('0x48')](handleError(_0x125f49,null));};exports[_0xad7c('0x66')]=function(_0x198c99,_0x41b3ed,_0x1bebe5){var _0x54ee26={};var _0x557706={};var _0x27885b;var _0x191883;return db[_0xad7c('0x2f')][_0xad7c('0x5a')]({'where':{'id':_0x198c99['params']['id']}})[_0xad7c('0x2a')](handleEntityNotFound(_0x41b3ed,null))['then'](function(_0x5d3631){if(_0x5d3631){_0x27885b=_0x5d3631;_0x557706[_0xad7c('0x37')]=_[_0xad7c('0x34')](db[_0xad7c('0x67')][_0xad7c('0x68')]);_0x557706[_0xad7c('0x33')]=_[_0xad7c('0x34')](_0x198c99[_0xad7c('0x33')]);_0x557706[_0xad7c('0x35')]=_[_0xad7c('0x36')](_0x557706['model'],_0x557706[_0xad7c('0x33')]);_0x54ee26[_0xad7c('0x38')]=_[_0xad7c('0x36')](_0x557706['model'],qs[_0xad7c('0x39')](_0x198c99[_0xad7c('0x33')][_0xad7c('0x39')]));_0x54ee26[_0xad7c('0x38')]=_0x54ee26['attributes'][_0xad7c('0x3a')]?_0x54ee26[_0xad7c('0x38')]:_0x557706[_0xad7c('0x37')];_0x54ee26['order']=qs[_0xad7c('0x3e')](_0x198c99[_0xad7c('0x33')]['sort']);_0x54ee26[_0xad7c('0x3f')]=qs[_0xad7c('0x35')](_[_0xad7c('0x40')](_0x198c99[_0xad7c('0x33')],_0x557706['filters']));if(_0x198c99['query']['filter']){_0x54ee26['where']=_['merge'](_0x54ee26[_0xad7c('0x3f')],{'$or':_[_0xad7c('0x2e')](_0x54ee26[_0xad7c('0x38')],function(_0x3c9ac2){var _0x256429={};_0x256429[_0x3c9ac2]={'$like':'%'+_0x198c99[_0xad7c('0x33')][_0xad7c('0x41')]+'%'};return _0x256429;})});}_0x54ee26=_['merge']({},_0x54ee26,_0x198c99[_0xad7c('0x44')]);return _0x27885b[_0xad7c('0x66')](_0x54ee26);}})['then'](function(_0x26655e){if(_0x26655e){_0x191883=_0x26655e[_0xad7c('0x3a')];if(!_0x198c99[_0xad7c('0x33')]['hasOwnProperty'](_0xad7c('0x3c'))){_0x54ee26[_0xad7c('0x20')]=qs[_0xad7c('0x20')](_0x198c99['query'][_0xad7c('0x20')]);_0x54ee26[_0xad7c('0x22')]=qs[_0xad7c('0x22')](_0x198c99[_0xad7c('0x33')][_0xad7c('0x22')]);}return _0x27885b['getTeams'](_0x54ee26);}})[_0xad7c('0x2a')](function(_0x8aa6c2){if(_0x8aa6c2){return _0x8aa6c2?{'count':_0x191883,'rows':_0x8aa6c2}:null;}})[_0xad7c('0x2a')](respondWithResult(_0x41b3ed,null))['catch'](handleError(_0x41b3ed,null));};exports[_0xad7c('0x69')]=function(_0x3757d6,_0x455d71,_0x503f3c){var _0x5638e2=_0x3757d6['body'][_0xad7c('0x6a')];return db['Team'][_0xad7c('0x46')]({'where':{'id':_0x5638e2},'attributes':['id'],'include':[{'model':db[_0xad7c('0x5d')],'as':'Agents','attributes':['id',_0xad7c('0x2c'),_0xad7c('0x6b'),_0xad7c('0x6c'),_0xad7c('0x6d')],'raw':!![]}]})[_0xad7c('0x2a')](function(_0x640c4d){if(_0x640c4d){var _0x3ab674=_['flatMap'](_0x640c4d,function(_0x8442c7){var _0x4d6809=_0x8442c7[_0xad7c('0x50')]({'plain':!![]});return _0x4d6809['Agents'];});return db[_0xad7c('0x2f')][_0xad7c('0x4c')]({'where':{'id':_0x3757d6['params']['id']}})['then'](function(_0x24cd54){return db[_0xad7c('0x6e')][_0xad7c('0x6f')](function(_0x27f3ff){return _0x24cd54[_0xad7c('0x69')](_0x5638e2,{'transaction':_0x27f3ff})[_0xad7c('0x2a')](function(){return BPromise[_0xad7c('0x70')](_0x3ab674,function(_0x698d48){return db[_0xad7c('0x5b')]['findOrCreate']({'where':{'UserId':_0x698d48['id'],'WhatsappQueueId':_0x3757d6[_0xad7c('0x4a')]['id']},'transaction':_0x27f3ff});});})[_0xad7c('0x2a')](function(){_0x3ab674[_0xad7c('0x71')](function(_0x549ac){socket['emit'](_0xad7c('0x72'),{'UserId':_0x549ac['id'],'WhatsappQueueId':_0x24cd54['id']});});});});});}})['then'](respondWithStatusCode(_0x455d71,null))[_0xad7c('0x48')](handleError(_0x455d71,null));};exports['removeTeams']=function(_0xf1cd43,_0x13a421,_0x40b11e){return db['Team'][_0xad7c('0x46')]({'where':{'id':_0xf1cd43[_0xad7c('0x33')]['ids']},'attributes':['id'],'include':[{'model':db[_0xad7c('0x5d')],'as':_0xad7c('0x73'),'attributes':['id'],'raw':!![]}]})[_0xad7c('0x2a')](handleEntityNotFound(_0x13a421,null))[_0xad7c('0x2a')](function(_0x44437a){var _0x4cc067=_[_0xad7c('0x2e')](_0x44437a,'id');var _0xac73f6=[];var _0x4a2da4=[];var _0x622fff=squel[_0xad7c('0x74')]();_0x622fff[_0xad7c('0x75')]('tq.TeamId')[_0xad7c('0x76')](_0xad7c('0x77'),'tq')[_0xad7c('0x78')]('user_has_teams','ut',_0xad7c('0x79'))['where'](_0xad7c('0x7a'),_0xf1cd43['params']['id']);for(var _0x42a13c=0x0;_0x42a13c<_0x44437a[_0xad7c('0x3a')];_0x42a13c+=0x1){let _0xb0b8eb=_0x44437a[_0x42a13c];for(var _0x49a63d=0x0;_0x49a63d<_0xb0b8eb['Agents'][_0xad7c('0x3a')];_0x49a63d+=0x1){let _0x583b6f=_0xb0b8eb[_0xad7c('0x73')][_0x49a63d];var _0x1573b6=_0x622fff['clone']();_0x1573b6[_0xad7c('0x3f')]('ut.UserId\x20=\x20?',_0x583b6f['id']);_0x4a2da4[_0xad7c('0x7b')](db['sequelize'][_0xad7c('0x33')](_0x1573b6[_0xad7c('0x7c')](),{'type':db['sequelize'][_0xad7c('0x7d')]['SELECT']})[_0xad7c('0x2a')](function(_0x1a27b4){if(_0x1a27b4[_0xad7c('0x3a')]===0x1){return _0x583b6f['id'];}else{var _0x2f8a3c=_[_0xad7c('0x7e')](_[_0xad7c('0x2e')](_0x1a27b4,'TeamId'),function(_0x3d70ea){return _[_0xad7c('0x7f')](_0x4cc067,_0x3d70ea);});if(_0x2f8a3c){return _0x583b6f['id'];}}}));}}return BPromise[_0xad7c('0x80')](_0x4a2da4)[_0xad7c('0x2a')](function(_0x1d880d){_0xac73f6=_(_0xac73f6)[_0xad7c('0x81')](_0x1d880d)[_0xad7c('0x82')]()[_0xad7c('0x83')]();return db[_0xad7c('0x2f')][_0xad7c('0x4c')]({'where':{'id':_0xf1cd43[_0xad7c('0x4a')]['id']}})['then'](function(_0x76b839){return db[_0xad7c('0x6e')][_0xad7c('0x6f')](function(_0x6af8c9){return _0x76b839[_0xad7c('0x84')](_0xf1cd43['query'][_0xad7c('0x6a')],{'transaction':_0x6af8c9})[_0xad7c('0x2a')](function(){if(!_['isEmpty'](_0xac73f6)){return _0x76b839[_0xad7c('0x85')](_0xac73f6,{'transaction':_0x6af8c9});}})[_0xad7c('0x2a')](function(){_0xac73f6[_0xad7c('0x71')](function(_0x4ae43a){socket[_0xad7c('0x86')](_0xad7c('0x87'),{'UserId':_0x4ae43a,'WhatsappQueueId':_0x76b839['id']});});});});});});})['then'](respondWithStatusCode(_0x13a421,null))['catch'](handleError(_0x13a421,null));};exports[_0xad7c('0x88')]=function(_0x5ae32b,_0x2e7a1f,_0x31639a){return db['WhatsappQueue']['find']({'where':{'id':_0x5ae32b[_0xad7c('0x4a')]['id']}})['then'](handleEntityNotFound(_0x2e7a1f,null))[_0xad7c('0x2a')](function(_0x2c40b8){if(_0x2c40b8){return _0x2c40b8['addAgents'](_0x5ae32b[_0xad7c('0x4e')][_0xad7c('0x6a')],_[_0xad7c('0x89')](_0x5ae32b[_0xad7c('0x4e')],[_0xad7c('0x6a'),'id'])||{})['spread'](function(_0x56af40){for(var _0x34f961=0x0;_0x34f961<_0x5ae32b[_0xad7c('0x4e')]['ids'][_0xad7c('0x3a')];_0x34f961+=0x1){socket[_0xad7c('0x86')](_0xad7c('0x72'),{'UserId':Number(_0x5ae32b[_0xad7c('0x4e')]['ids'][_0x34f961]),'WhatsappQueueId':Number(_0x5ae32b['params']['id'])});}return _0x56af40;});}})[_0xad7c('0x2a')](respondWithResult(_0x2e7a1f,null))[_0xad7c('0x48')](handleError(_0x2e7a1f,null));};exports['removeAgents']=function(_0x4eadc8,_0x1f2986,_0x76001b){return db[_0xad7c('0x2f')][_0xad7c('0x4c')]({'where':{'id':_0x4eadc8[_0xad7c('0x4a')]['id']}})[_0xad7c('0x2a')](handleEntityNotFound(_0x1f2986,null))[_0xad7c('0x2a')](function(_0x417f82){if(_0x417f82){return _0x417f82['removeAgents'](_0x4eadc8[_0xad7c('0x33')][_0xad7c('0x6a')])[_0xad7c('0x2a')](function(){if(_[_0xad7c('0x8a')](_0x4eadc8[_0xad7c('0x33')][_0xad7c('0x6a')])){for(var _0x4cb6a0=0x0;_0x4cb6a0<_0x4eadc8[_0xad7c('0x33')][_0xad7c('0x6a')]['length'];_0x4cb6a0+=0x1){socket['emit'](_0xad7c('0x87'),{'UserId':Number(_0x4eadc8[_0xad7c('0x33')][_0xad7c('0x6a')][_0x4cb6a0]),'WhatsappQueueId':Number(_0x4eadc8['params']['id'])});}}else{socket[_0xad7c('0x86')]('userWhatsappQueue:remove',{'UserId':Number(_0x4eadc8[_0xad7c('0x33')][_0xad7c('0x6a')]),'WhatsappQueueId':Number(_0x4eadc8['params']['id'])});}});}})[_0xad7c('0x2a')](respondWithStatusCode(_0x1f2986,null))[_0xad7c('0x48')](handleError(_0x1f2986,null));};exports[_0xad7c('0x8b')]=function(_0x58e10a,_0x49cf85,_0x41f5df){var _0x2fd04e={};var _0x275ef5={};var _0x4892f5;var _0x413ec5;return db[_0xad7c('0x2f')][_0xad7c('0x5a')]({'where':{'id':_0x58e10a[_0xad7c('0x4a')]['id']}})[_0xad7c('0x2a')](handleEntityNotFound(_0x49cf85,null))[_0xad7c('0x2a')](function(_0x100552){if(_0x100552){_0x4892f5=_0x100552;_0x275ef5[_0xad7c('0x37')]=_['keys'](db['User']['rawAttributes']);_0x275ef5[_0xad7c('0x33')]=_[_0xad7c('0x34')](_0x58e10a['query']);_0x275ef5[_0xad7c('0x35')]=_[_0xad7c('0x36')](_0x275ef5['model'],_0x275ef5[_0xad7c('0x33')]);_0x2fd04e['attributes']=_[_0xad7c('0x36')](_0x275ef5[_0xad7c('0x37')],qs['fields'](_0x58e10a['query'][_0xad7c('0x39')]));_0x2fd04e['attributes']=_0x2fd04e['attributes']['length']?_0x2fd04e[_0xad7c('0x38')]:_0x275ef5[_0xad7c('0x37')];_0x2fd04e['order']=qs[_0xad7c('0x3e')](_0x58e10a[_0xad7c('0x33')]['sort']);_0x2fd04e['where']=qs[_0xad7c('0x35')](_[_0xad7c('0x40')](_0x58e10a[_0xad7c('0x33')],_0x275ef5[_0xad7c('0x35')]));if(_0x58e10a['query'][_0xad7c('0x41')]){_0x2fd04e[_0xad7c('0x3f')]=_[_0xad7c('0x42')](_0x2fd04e[_0xad7c('0x3f')],{'$or':_[_0xad7c('0x2e')](_0x2fd04e[_0xad7c('0x38')],function(_0x546b03){var _0x31f5c4={};_0x31f5c4[_0x546b03]={'$like':'%'+_0x58e10a[_0xad7c('0x33')]['filter']+'%'};return _0x31f5c4;})});}_0x2fd04e=_[_0xad7c('0x42')]({},_0x2fd04e,_0x58e10a[_0xad7c('0x44')]);return _0x4892f5[_0xad7c('0x8b')](_0x2fd04e);}})['then'](function(_0x3c6136){if(_0x3c6136){_0x413ec5=_0x3c6136[_0xad7c('0x3a')];if(!_0x58e10a[_0xad7c('0x33')][_0xad7c('0x3b')](_0xad7c('0x3c'))){_0x2fd04e[_0xad7c('0x20')]=qs[_0xad7c('0x20')](_0x58e10a['query'][_0xad7c('0x20')]);_0x2fd04e['offset']=qs[_0xad7c('0x22')](_0x58e10a[_0xad7c('0x33')][_0xad7c('0x22')]);}return _0x4892f5[_0xad7c('0x8b')](_0x2fd04e);}})[_0xad7c('0x2a')](function(_0x37727a){if(_0x37727a){return _0x37727a?{'count':_0x413ec5,'rows':_0x37727a}:null;}})[_0xad7c('0x2a')](respondWithResult(_0x49cf85,null))[_0xad7c('0x48')](handleError(_0x49cf85,null));};
\ No newline at end of file
+var _0x0549=['UserWhatsappQueue','User','findAndCountAll','agent','whatsappPause','updatedAt','createdAt','format','%s/%s','getTeams','Team','addTeams','ids','Agents','interface','flatMap','sequelize','transaction','findOrCreate','forEach','emit','userWhatsappQueue:save','removeTeams','select','field','from','team_has_whatsapp_queues','join','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','clone','ut.UserId\x20=\x20?','push','toString','QueryTypes','SELECT','every','TeamId','all','union','isEmpty','userWhatsappQueue:remove','addAgents','omit','spread','removeAgents','isArray','eml-format','zip-dir','fast-json-patch','request-promise','bluebird','util','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','redis','localhost','socket.io-emitter','register','sendStatus','status','undefined','count','offset','set','Content-Range','apply','reject','save','update','then','destroy','UserProfileResource','end','error','stack','name','map','rawAttributes','key','model','query','keys','intersection','attributes','hasOwnProperty','nolimit','limit','order','sort','filters','pick','where','merge','type','VIRTUAL','filter','options','WhatsappQueue','includeAll','include','findAll','rows','params','fields','length','find','catch','create','body','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','WhatsappQueues','UserProfileSection','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','describe','getMembers','findOne'];(function(_0x34d88d,_0x4e2e6a){var _0x2df296=function(_0x48d63e){while(--_0x48d63e){_0x34d88d['push'](_0x34d88d['shift']());}};_0x2df296(++_0x4e2e6a);}(_0x0549,0xb9));var _0x9054=function(_0x2ca164,_0x18e74c){_0x2ca164=_0x2ca164-0x0;var _0x1abf84=_0x0549[_0x2ca164];return _0x1abf84;};'use strict';var emlformat=require(_0x9054('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x9054('0x1'));var jsonpatch=require(_0x9054('0x2'));var rp=require(_0x9054('0x3'));var moment=require('moment');var BPromise=require(_0x9054('0x4'));var Mustache=require('mustache');var util=require(_0x9054('0x5'));var path=require('path');var sox=require(_0x9054('0x6'));var csv=require(_0x9054('0x7'));var ejs=require(_0x9054('0x8'));var fs=require('fs');var fs_extra=require(_0x9054('0x9'));var _=require(_0x9054('0xa'));var squel=require(_0x9054('0xb'));var crypto=require(_0x9054('0xc'));var jsforce=require(_0x9054('0xd'));var deskjs=require(_0x9054('0xe'));var toCsv=require(_0x9054('0x7'));var querystring=require(_0x9054('0xf'));var Papa=require(_0x9054('0x10'));var Redis=require(_0x9054('0x11'));var authService=require('../../components/auth/service');var qs=require(_0x9054('0x12'));var as=require(_0x9054('0x13'));var hardwareService=require(_0x9054('0x14'));var logger=require(_0x9054('0x15'))(_0x9054('0x16'));var utils=require(_0x9054('0x17'));var config=require('../../config/environment');var licenseUtil=require(_0x9054('0x18'));var db=require(_0x9054('0x19'))['db'];config[_0x9054('0x1a')]=_['defaults'](config[_0x9054('0x1a')],{'host':_0x9054('0x1b'),'port':0x18eb});var socket=require(_0x9054('0x1c'))(new Redis(config[_0x9054('0x1a')]));require('./whatsappQueue.socket')[_0x9054('0x1d')](socket);function respondWithStatusCode(_0x3dd681,_0x19a9fe){_0x19a9fe=_0x19a9fe||0xcc;return function(_0x3bd6bf){if(_0x3bd6bf){return _0x3dd681[_0x9054('0x1e')](_0x19a9fe);}return _0x3dd681['status'](_0x19a9fe)['end']();};}function respondWithResult(_0x352416,_0xa8c285){_0xa8c285=_0xa8c285||0xc8;return function(_0x2185e){if(_0x2185e){return _0x352416[_0x9054('0x1f')](_0xa8c285)['json'](_0x2185e);}};}function respondWithFilteredResult(_0x4dc9f7,_0x74a1d){return function(_0xe5b85a){if(_0xe5b85a){var _0x391d3f=typeof _0x74a1d['offset']==='undefined'&&typeof _0x74a1d['limit']===_0x9054('0x20');var _0x1234be=_0xe5b85a[_0x9054('0x21')];var _0x1a03d1=_0x391d3f?0x0:_0x74a1d[_0x9054('0x22')];var _0x14924d=_0x391d3f?_0xe5b85a[_0x9054('0x21')]:_0x74a1d[_0x9054('0x22')]+_0x74a1d['limit'];var _0x449532;if(_0x14924d>=_0x1234be){_0x14924d=_0x1234be;_0x449532=0xc8;}else{_0x449532=0xce;}_0x4dc9f7[_0x9054('0x1f')](_0x449532);return _0x4dc9f7[_0x9054('0x23')](_0x9054('0x24'),_0x1a03d1+'-'+_0x14924d+'/'+_0x1234be)['json'](_0xe5b85a);}return null;};}function patchUpdates(_0x2627df){return function(_0x6c5fd0){try{jsonpatch[_0x9054('0x25')](_0x6c5fd0,_0x2627df,!![]);}catch(_0x3f2605){return BPromise[_0x9054('0x26')](_0x3f2605);}return _0x6c5fd0[_0x9054('0x27')]();};}function saveUpdates(_0x29203c,_0x47126f){return function(_0x15a48e){if(_0x15a48e){return _0x15a48e[_0x9054('0x28')](_0x29203c)[_0x9054('0x29')](function(_0x1657c5){return _0x1657c5;});}return null;};}function removeEntity(_0x248310,_0x1474bf){return function(_0x376ecb){if(_0x376ecb){return _0x376ecb[_0x9054('0x2a')]()[_0x9054('0x29')](function(){var _0x3cb7bd=_0x376ecb['get']({'plain':!![]});var _0x3689f4='WhatsappQueues';return db[_0x9054('0x2b')][_0x9054('0x2a')]({'where':{'type':_0x3689f4,'resourceId':_0x3cb7bd['id']}})[_0x9054('0x29')](function(){return _0x376ecb;});})[_0x9054('0x29')](function(){_0x248310[_0x9054('0x1f')](0xcc)[_0x9054('0x2c')]();});}};}function handleEntityNotFound(_0x1a1c11,_0x4caaf5){return function(_0x24b5b1){if(!_0x24b5b1){_0x1a1c11[_0x9054('0x1e')](0x194);}return _0x24b5b1;};}function handleError(_0x3395b9,_0x5817e4){_0x5817e4=_0x5817e4||0x1f4;return function(_0x16d4fd){logger[_0x9054('0x2d')](_0x16d4fd[_0x9054('0x2e')]);if(_0x16d4fd['name']){delete _0x16d4fd[_0x9054('0x2f')];}_0x3395b9[_0x9054('0x1f')](_0x5817e4)['send'](_0x16d4fd);};}exports['index']=function(_0x12d6dd,_0xf56ec1){var _0x188c0a={},_0x343a84={},_0x45db07={'count':0x0,'rows':[]};var _0x565e06=_[_0x9054('0x30')](db['WhatsappQueue'][_0x9054('0x31')],function(_0x360861){return{'name':_0x360861['fieldName'],'type':_0x360861['type'][_0x9054('0x32')]};});_0x343a84[_0x9054('0x33')]=_['map'](_0x565e06,_0x9054('0x2f'));_0x343a84[_0x9054('0x34')]=_[_0x9054('0x35')](_0x12d6dd[_0x9054('0x34')]);_0x343a84['filters']=_[_0x9054('0x36')](_0x343a84[_0x9054('0x33')],_0x343a84[_0x9054('0x34')]);_0x188c0a[_0x9054('0x37')]=_['intersection'](_0x343a84['model'],qs['fields'](_0x12d6dd[_0x9054('0x34')]['fields']));_0x188c0a['attributes']=_0x188c0a[_0x9054('0x37')]['length']?_0x188c0a['attributes']:_0x343a84[_0x9054('0x33')];if(!_0x12d6dd['query'][_0x9054('0x38')](_0x9054('0x39'))){_0x188c0a['limit']=qs[_0x9054('0x3a')](_0x12d6dd[_0x9054('0x34')][_0x9054('0x3a')]);_0x188c0a['offset']=qs[_0x9054('0x22')](_0x12d6dd[_0x9054('0x34')][_0x9054('0x22')]);}_0x188c0a[_0x9054('0x3b')]=qs['sort'](_0x12d6dd[_0x9054('0x34')][_0x9054('0x3c')]);_0x188c0a['where']=qs[_0x9054('0x3d')](_[_0x9054('0x3e')](_0x12d6dd['query'],_0x343a84['filters']),_0x565e06);if(_0x12d6dd[_0x9054('0x34')]['filter']){_0x188c0a[_0x9054('0x3f')]=_[_0x9054('0x40')](_0x188c0a[_0x9054('0x3f')],{'$or':_[_0x9054('0x30')](_0x565e06,function(_0x5aab55){if(_0x5aab55[_0x9054('0x41')]!==_0x9054('0x42')){var _0x152e9f={};_0x152e9f[_0x5aab55[_0x9054('0x2f')]]={'$like':'%'+_0x12d6dd['query'][_0x9054('0x43')]+'%'};return _0x152e9f;}})});}_0x188c0a=_[_0x9054('0x40')]({},_0x188c0a,_0x12d6dd[_0x9054('0x44')]);var _0x33b209={'where':_0x188c0a[_0x9054('0x3f')]};return db[_0x9054('0x45')]['count'](_0x33b209)[_0x9054('0x29')](function(_0x830358){_0x45db07[_0x9054('0x21')]=_0x830358;if(_0x12d6dd[_0x9054('0x34')][_0x9054('0x46')]){_0x188c0a[_0x9054('0x47')]=[{'all':!![]}];}return db['WhatsappQueue'][_0x9054('0x48')](_0x188c0a);})[_0x9054('0x29')](function(_0x5544a8){_0x45db07[_0x9054('0x49')]=_0x5544a8;return _0x45db07;})[_0x9054('0x29')](respondWithFilteredResult(_0xf56ec1,_0x188c0a))['catch'](handleError(_0xf56ec1,null));};exports['show']=function(_0x4bcbf4,_0x163e82){var _0x288541={'raw':!![],'where':{'id':_0x4bcbf4[_0x9054('0x4a')]['id']}},_0x31200e={};_0x31200e[_0x9054('0x33')]=_[_0x9054('0x35')](db[_0x9054('0x45')][_0x9054('0x31')]);_0x31200e[_0x9054('0x34')]=_['keys'](_0x4bcbf4[_0x9054('0x34')]);_0x31200e[_0x9054('0x3d')]=_[_0x9054('0x36')](_0x31200e[_0x9054('0x33')],_0x31200e[_0x9054('0x34')]);_0x288541['attributes']=_[_0x9054('0x36')](_0x31200e[_0x9054('0x33')],qs['fields'](_0x4bcbf4['query'][_0x9054('0x4b')]));_0x288541['attributes']=_0x288541[_0x9054('0x37')][_0x9054('0x4c')]?_0x288541[_0x9054('0x37')]:_0x31200e[_0x9054('0x33')];if(_0x4bcbf4[_0x9054('0x34')][_0x9054('0x46')]){_0x288541[_0x9054('0x47')]=[{'all':!![]}];}_0x288541=_[_0x9054('0x40')]({},_0x288541,_0x4bcbf4[_0x9054('0x44')]);return db[_0x9054('0x45')][_0x9054('0x4d')](_0x288541)[_0x9054('0x29')](handleEntityNotFound(_0x163e82,null))[_0x9054('0x29')](respondWithResult(_0x163e82,null))[_0x9054('0x4e')](handleError(_0x163e82,null));};exports['create']=function(_0x664621,_0x21f499){return db[_0x9054('0x45')][_0x9054('0x4f')](_0x664621[_0x9054('0x50')],{})['then'](function(_0x2ffd4c){var _0x3c78d3=_0x664621['user'][_0x9054('0x51')]({'plain':!![]});if(!_0x3c78d3)throw new Error(_0x9054('0x52'));if(_0x3c78d3['role']===_0x9054('0x53')){var _0x18e743=_0x2ffd4c[_0x9054('0x51')]({'plain':!![]});var _0x38c998=_0x9054('0x54');return db[_0x9054('0x55')]['find']({'where':{'name':_0x38c998,'userProfileId':_0x3c78d3[_0x9054('0x56')]},'raw':!![]})[_0x9054('0x29')](function(_0x121f5f){if(_0x121f5f&&_0x121f5f['autoAssociation']===0x0){return db[_0x9054('0x2b')][_0x9054('0x4f')]({'name':_0x18e743[_0x9054('0x2f')],'resourceId':_0x18e743['id'],'type':_0x121f5f['name'],'sectionId':_0x121f5f['id']},{})['then'](function(){return _0x2ffd4c;});}else{return _0x2ffd4c;}})['catch'](function(_0x38f942){logger[_0x9054('0x2d')](_0x9054('0x57'),_0x38f942);throw _0x38f942;});}return _0x2ffd4c;})['then'](respondWithResult(_0x21f499,0xc9))[_0x9054('0x4e')](handleError(_0x21f499,null));};exports[_0x9054('0x28')]=function(_0x4f31c3,_0xf94cc9){if(_0x4f31c3['body']['id']){delete _0x4f31c3[_0x9054('0x50')]['id'];}return db[_0x9054('0x45')]['find']({'where':{'id':_0x4f31c3[_0x9054('0x4a')]['id']}})[_0x9054('0x29')](handleEntityNotFound(_0xf94cc9,null))[_0x9054('0x29')](saveUpdates(_0x4f31c3[_0x9054('0x50')],null))[_0x9054('0x29')](respondWithResult(_0xf94cc9,null))['catch'](handleError(_0xf94cc9,null));};exports['destroy']=function(_0xa0a592,_0x47dca8){return db[_0x9054('0x45')][_0x9054('0x4d')]({'where':{'id':_0xa0a592['params']['id']}})['then'](handleEntityNotFound(_0x47dca8,null))['then'](removeEntity(_0x47dca8,null))['catch'](handleError(_0x47dca8,null));};exports[_0x9054('0x58')]=function(_0x3f2869,_0x1991f5){return db[_0x9054('0x45')]['describe']()[_0x9054('0x29')](respondWithResult(_0x1991f5,null))[_0x9054('0x4e')](handleError(_0x1991f5,null));};exports[_0x9054('0x59')]=function(_0x2bdd96,_0x21ba37,_0x3b6e4f){var _0x31a095={'raw':!![],'where':{}},_0x5a4aae={},_0x3f6729;return db[_0x9054('0x45')][_0x9054('0x5a')]({'where':{'id':_0x2bdd96[_0x9054('0x4a')]['id']}})['then'](handleEntityNotFound(_0x21ba37,null))[_0x9054('0x29')](function(_0x365b50){if(_0x365b50){_0x3f6729=_0x365b50[_0x9054('0x51')]({'plain':!![]});_0x5a4aae[_0x9054('0x33')]=_[_0x9054('0x35')](db[_0x9054('0x5b')][_0x9054('0x31')]);_0x5a4aae[_0x9054('0x34')]=_[_0x9054('0x35')](_0x2bdd96['query']);_0x5a4aae[_0x9054('0x3d')]=_[_0x9054('0x36')](_0x5a4aae['model'],_0x5a4aae[_0x9054('0x34')]);_0x31a095['attributes']=_[_0x9054('0x36')](_0x5a4aae[_0x9054('0x33')],qs['fields'](_0x2bdd96[_0x9054('0x34')][_0x9054('0x4b')]));_0x31a095[_0x9054('0x37')]=_0x31a095['attributes'][_0x9054('0x4c')]?_0x31a095[_0x9054('0x37')]:_0x5a4aae[_0x9054('0x33')];if(!_0x2bdd96[_0x9054('0x34')][_0x9054('0x38')](_0x9054('0x39'))){_0x31a095[_0x9054('0x3a')]=qs['limit'](_0x2bdd96[_0x9054('0x34')][_0x9054('0x3a')]);_0x31a095[_0x9054('0x22')]=qs[_0x9054('0x22')](_0x2bdd96[_0x9054('0x34')][_0x9054('0x22')]);}_0x31a095['order']=qs[_0x9054('0x3c')](_0x2bdd96[_0x9054('0x34')]['sort']);_0x31a095[_0x9054('0x3f')]=qs[_0x9054('0x3d')](_[_0x9054('0x3e')](_0x2bdd96[_0x9054('0x34')],_0x5a4aae[_0x9054('0x3d')]));_0x31a095[_0x9054('0x3f')]['WhatsappQueueId']=_0x365b50['id'];if(_0x2bdd96['query'][_0x9054('0x43')]){_0x31a095[_0x9054('0x3f')]=_[_0x9054('0x40')](_0x31a095['where'],{'$or':_[_0x9054('0x30')](_0x31a095[_0x9054('0x37')],function(_0x1473c6){var _0x790b7c={};_0x790b7c[_0x1473c6]={'$like':'%'+_0x2bdd96[_0x9054('0x34')][_0x9054('0x43')]+'%'};return _0x790b7c;})});}_0x31a095=_[_0x9054('0x40')]({},_0x31a095,_0x2bdd96[_0x9054('0x44')]);return db[_0x9054('0x5b')]['findAll'](_0x31a095);}})[_0x9054('0x29')](function(_0x5d7c2e){if(_0x5d7c2e){return db[_0x9054('0x5c')][_0x9054('0x5d')]({'where':{'id':_[_0x9054('0x30')](_0x5d7c2e,'UserId'),'role':_0x9054('0x5e')},'attributes':['id','name',_0x9054('0x5f'),_0x9054('0x60'),_0x9054('0x61')]});}})['then'](function(_0x2c9df4){if(_0x2c9df4){return{'count':_0x2c9df4[_0x9054('0x21')],'rows':_[_0x9054('0x30')](_0x2c9df4[_0x9054('0x49')],function(_0x2ce463){return{'membername':_0x2ce463[_0x9054('0x2f')],'UserId':_0x2ce463['id'],'queue_name':_0x3f6729[_0x9054('0x2f')],'WhatsappQueueId':_0x3f6729['id'],'interface':util[_0x9054('0x62')](_0x9054('0x63'),'SIP',_0x2ce463['name']),'penalty':0x0,'paused':_0x2ce463['whatsappPause'],'createdAt':_0x2ce463['createdAt'],'updatedAt':_0x2ce463[_0x9054('0x60')]};})};}else{return{'count':0x0,'rows':[]};}})[_0x9054('0x29')](respondWithFilteredResult(_0x21ba37,_0x31a095))[_0x9054('0x4e')](handleError(_0x21ba37,null));};exports[_0x9054('0x64')]=function(_0x56729d,_0x42bad4,_0x243180){var _0x2b03a7={};var _0xc0a295={};var _0x332142;var _0x266243;return db['WhatsappQueue'][_0x9054('0x5a')]({'where':{'id':_0x56729d[_0x9054('0x4a')]['id']}})[_0x9054('0x29')](handleEntityNotFound(_0x42bad4,null))[_0x9054('0x29')](function(_0x13d848){if(_0x13d848){_0x332142=_0x13d848;_0xc0a295[_0x9054('0x33')]=_[_0x9054('0x35')](db[_0x9054('0x65')][_0x9054('0x31')]);_0xc0a295[_0x9054('0x34')]=_[_0x9054('0x35')](_0x56729d[_0x9054('0x34')]);_0xc0a295[_0x9054('0x3d')]=_[_0x9054('0x36')](_0xc0a295[_0x9054('0x33')],_0xc0a295[_0x9054('0x34')]);_0x2b03a7[_0x9054('0x37')]=_[_0x9054('0x36')](_0xc0a295[_0x9054('0x33')],qs[_0x9054('0x4b')](_0x56729d[_0x9054('0x34')]['fields']));_0x2b03a7['attributes']=_0x2b03a7[_0x9054('0x37')][_0x9054('0x4c')]?_0x2b03a7[_0x9054('0x37')]:_0xc0a295[_0x9054('0x33')];_0x2b03a7[_0x9054('0x3b')]=qs[_0x9054('0x3c')](_0x56729d[_0x9054('0x34')][_0x9054('0x3c')]);_0x2b03a7[_0x9054('0x3f')]=qs[_0x9054('0x3d')](_[_0x9054('0x3e')](_0x56729d[_0x9054('0x34')],_0xc0a295[_0x9054('0x3d')]));if(_0x56729d[_0x9054('0x34')][_0x9054('0x43')]){_0x2b03a7['where']=_[_0x9054('0x40')](_0x2b03a7[_0x9054('0x3f')],{'$or':_[_0x9054('0x30')](_0x2b03a7['attributes'],function(_0x99b7e8){var _0x3160df={};_0x3160df[_0x99b7e8]={'$like':'%'+_0x56729d['query'][_0x9054('0x43')]+'%'};return _0x3160df;})});}_0x2b03a7=_[_0x9054('0x40')]({},_0x2b03a7,_0x56729d[_0x9054('0x44')]);return _0x332142[_0x9054('0x64')](_0x2b03a7);}})[_0x9054('0x29')](function(_0x5a8301){if(_0x5a8301){_0x266243=_0x5a8301[_0x9054('0x4c')];if(!_0x56729d[_0x9054('0x34')][_0x9054('0x38')]('nolimit')){_0x2b03a7[_0x9054('0x3a')]=qs[_0x9054('0x3a')](_0x56729d[_0x9054('0x34')]['limit']);_0x2b03a7[_0x9054('0x22')]=qs[_0x9054('0x22')](_0x56729d[_0x9054('0x34')]['offset']);}return _0x332142[_0x9054('0x64')](_0x2b03a7);}})['then'](function(_0x3fdad0){if(_0x3fdad0){return _0x3fdad0?{'count':_0x266243,'rows':_0x3fdad0}:null;}})[_0x9054('0x29')](respondWithResult(_0x42bad4,null))['catch'](handleError(_0x42bad4,null));};exports[_0x9054('0x66')]=function(_0x854f1,_0x1e9506,_0x459750){var _0x33118a=_0x854f1[_0x9054('0x50')][_0x9054('0x67')];return db[_0x9054('0x65')]['findAll']({'where':{'id':_0x33118a},'attributes':['id'],'include':[{'model':db[_0x9054('0x5c')],'as':_0x9054('0x68'),'attributes':['id',_0x9054('0x2f'),'online','voicePause',_0x9054('0x69')],'raw':!![]}]})[_0x9054('0x29')](function(_0x27f4eb){if(_0x27f4eb){var _0x20afc8=_[_0x9054('0x6a')](_0x27f4eb,function(_0x2fc582){var _0x4c855c=_0x2fc582[_0x9054('0x51')]({'plain':!![]});return _0x4c855c[_0x9054('0x68')];});return db[_0x9054('0x45')][_0x9054('0x4d')]({'where':{'id':_0x854f1[_0x9054('0x4a')]['id']}})[_0x9054('0x29')](function(_0x2b6231){return db[_0x9054('0x6b')][_0x9054('0x6c')](function(_0x14382d){return _0x2b6231['addTeams'](_0x33118a,{'transaction':_0x14382d})['then'](function(){return BPromise['each'](_0x20afc8,function(_0x1e8bdd){return db[_0x9054('0x5b')][_0x9054('0x6d')]({'where':{'UserId':_0x1e8bdd['id'],'WhatsappQueueId':_0x854f1[_0x9054('0x4a')]['id']},'transaction':_0x14382d});});})[_0x9054('0x29')](function(){_0x20afc8[_0x9054('0x6e')](function(_0x5e4c58){socket[_0x9054('0x6f')](_0x9054('0x70'),{'UserId':_0x5e4c58['id'],'WhatsappQueueId':_0x2b6231['id']});});});});});}})[_0x9054('0x29')](respondWithStatusCode(_0x1e9506,null))['catch'](handleError(_0x1e9506,null));};exports[_0x9054('0x71')]=function(_0x115a75,_0x10f7ce,_0x107f79){return db[_0x9054('0x65')]['findAll']({'where':{'id':_0x115a75['query'][_0x9054('0x67')]},'attributes':['id'],'include':[{'model':db[_0x9054('0x5c')],'as':_0x9054('0x68'),'attributes':['id'],'raw':!![]}]})[_0x9054('0x29')](handleEntityNotFound(_0x10f7ce,null))[_0x9054('0x29')](function(_0x4ac6fa){var _0x5bf830=_[_0x9054('0x30')](_0x4ac6fa,'id');var _0x55097f=[];var _0x587db0=[];var _0x1cf286=squel[_0x9054('0x72')]();_0x1cf286[_0x9054('0x73')]('tq.TeamId')[_0x9054('0x74')](_0x9054('0x75'),'tq')[_0x9054('0x76')](_0x9054('0x77'),'ut',_0x9054('0x78'))[_0x9054('0x3f')]('WhatsappQueueId\x20=\x20?',_0x115a75[_0x9054('0x4a')]['id']);for(var _0x335871=0x0;_0x335871<_0x4ac6fa['length'];_0x335871+=0x1){let _0x77e96e=_0x4ac6fa[_0x335871];for(var _0x293806=0x0;_0x293806<_0x77e96e[_0x9054('0x68')][_0x9054('0x4c')];_0x293806+=0x1){let _0x127d64=_0x77e96e[_0x9054('0x68')][_0x293806];var _0x39bfd2=_0x1cf286[_0x9054('0x79')]();_0x39bfd2[_0x9054('0x3f')](_0x9054('0x7a'),_0x127d64['id']);_0x587db0[_0x9054('0x7b')](db[_0x9054('0x6b')][_0x9054('0x34')](_0x39bfd2[_0x9054('0x7c')](),{'type':db[_0x9054('0x6b')][_0x9054('0x7d')][_0x9054('0x7e')]})[_0x9054('0x29')](function(_0xcdfb6c){if(_0xcdfb6c[_0x9054('0x4c')]===0x1){return _0x127d64['id'];}else{var _0x2ae08f=_[_0x9054('0x7f')](_['map'](_0xcdfb6c,_0x9054('0x80')),function(_0xa21dab){return _['includes'](_0x5bf830,_0xa21dab);});if(_0x2ae08f){return _0x127d64['id'];}}}));}}return BPromise[_0x9054('0x81')](_0x587db0)['then'](function(_0x456a60){_0x55097f=_(_0x55097f)[_0x9054('0x82')](_0x456a60)['compact']()['value']();return db[_0x9054('0x45')][_0x9054('0x4d')]({'where':{'id':_0x115a75[_0x9054('0x4a')]['id']}})[_0x9054('0x29')](function(_0x1de9a2){return db[_0x9054('0x6b')][_0x9054('0x6c')](function(_0x1f05f8){return _0x1de9a2['removeTeams'](_0x115a75[_0x9054('0x34')]['ids'],{'transaction':_0x1f05f8})[_0x9054('0x29')](function(){if(!_[_0x9054('0x83')](_0x55097f)){return _0x1de9a2['removeAgents'](_0x55097f,{'transaction':_0x1f05f8});}})['then'](function(){_0x55097f['forEach'](function(_0x32e331){socket['emit'](_0x9054('0x84'),{'UserId':_0x32e331,'WhatsappQueueId':_0x1de9a2['id']});});});});});});})[_0x9054('0x29')](respondWithStatusCode(_0x10f7ce,null))['catch'](handleError(_0x10f7ce,null));};exports['addAgents']=function(_0x2d3323,_0x5f4ddc,_0x2e63aa){return db[_0x9054('0x45')][_0x9054('0x4d')]({'where':{'id':_0x2d3323[_0x9054('0x4a')]['id']}})['then'](handleEntityNotFound(_0x5f4ddc,null))['then'](function(_0x3be480){if(_0x3be480){return _0x3be480[_0x9054('0x85')](_0x2d3323[_0x9054('0x50')][_0x9054('0x67')],_[_0x9054('0x86')](_0x2d3323['body'],[_0x9054('0x67'),'id'])||{})[_0x9054('0x87')](function(_0x3fcfa7){for(var _0x361fb8=0x0;_0x361fb8<_0x2d3323[_0x9054('0x50')][_0x9054('0x67')][_0x9054('0x4c')];_0x361fb8+=0x1){socket[_0x9054('0x6f')](_0x9054('0x70'),{'UserId':Number(_0x2d3323[_0x9054('0x50')][_0x9054('0x67')][_0x361fb8]),'WhatsappQueueId':Number(_0x2d3323[_0x9054('0x4a')]['id'])});}return _0x3fcfa7;});}})[_0x9054('0x29')](respondWithResult(_0x5f4ddc,null))[_0x9054('0x4e')](handleError(_0x5f4ddc,null));};exports[_0x9054('0x88')]=function(_0x51af2d,_0x59e5e7,_0x306df0){return db[_0x9054('0x45')][_0x9054('0x4d')]({'where':{'id':_0x51af2d[_0x9054('0x4a')]['id']}})[_0x9054('0x29')](handleEntityNotFound(_0x59e5e7,null))[_0x9054('0x29')](function(_0x36b313){if(_0x36b313){return _0x36b313[_0x9054('0x88')](_0x51af2d[_0x9054('0x34')][_0x9054('0x67')])['then'](function(){if(_[_0x9054('0x89')](_0x51af2d[_0x9054('0x34')][_0x9054('0x67')])){for(var _0x31e8eb=0x0;_0x31e8eb<_0x51af2d[_0x9054('0x34')][_0x9054('0x67')][_0x9054('0x4c')];_0x31e8eb+=0x1){socket[_0x9054('0x6f')](_0x9054('0x84'),{'UserId':Number(_0x51af2d['query'][_0x9054('0x67')][_0x31e8eb]),'WhatsappQueueId':Number(_0x51af2d[_0x9054('0x4a')]['id'])});}}else{socket[_0x9054('0x6f')]('userWhatsappQueue:remove',{'UserId':Number(_0x51af2d[_0x9054('0x34')][_0x9054('0x67')]),'WhatsappQueueId':Number(_0x51af2d[_0x9054('0x4a')]['id'])});}});}})[_0x9054('0x29')](respondWithStatusCode(_0x59e5e7,null))[_0x9054('0x4e')](handleError(_0x59e5e7,null));};exports['getAgents']=function(_0x3186f5,_0x27905c,_0xf0b787){var _0x36da0b={};var _0x5c3105={};var _0x34a12e;var _0xc094a0;return db[_0x9054('0x45')][_0x9054('0x5a')]({'where':{'id':_0x3186f5['params']['id']}})['then'](handleEntityNotFound(_0x27905c,null))[_0x9054('0x29')](function(_0x3fc46c){if(_0x3fc46c){_0x34a12e=_0x3fc46c;_0x5c3105[_0x9054('0x33')]=_['keys'](db[_0x9054('0x5c')]['rawAttributes']);_0x5c3105[_0x9054('0x34')]=_[_0x9054('0x35')](_0x3186f5[_0x9054('0x34')]);_0x5c3105[_0x9054('0x3d')]=_['intersection'](_0x5c3105[_0x9054('0x33')],_0x5c3105[_0x9054('0x34')]);_0x36da0b[_0x9054('0x37')]=_['intersection'](_0x5c3105['model'],qs[_0x9054('0x4b')](_0x3186f5[_0x9054('0x34')][_0x9054('0x4b')]));_0x36da0b['attributes']=_0x36da0b['attributes'][_0x9054('0x4c')]?_0x36da0b['attributes']:_0x5c3105[_0x9054('0x33')];_0x36da0b[_0x9054('0x3b')]=qs[_0x9054('0x3c')](_0x3186f5[_0x9054('0x34')]['sort']);_0x36da0b[_0x9054('0x3f')]=qs['filters'](_[_0x9054('0x3e')](_0x3186f5[_0x9054('0x34')],_0x5c3105[_0x9054('0x3d')]));if(_0x3186f5[_0x9054('0x34')][_0x9054('0x43')]){_0x36da0b[_0x9054('0x3f')]=_[_0x9054('0x40')](_0x36da0b[_0x9054('0x3f')],{'$or':_[_0x9054('0x30')](_0x36da0b['attributes'],function(_0x4421f1){var _0x43ff93={};_0x43ff93[_0x4421f1]={'$like':'%'+_0x3186f5['query'][_0x9054('0x43')]+'%'};return _0x43ff93;})});}_0x36da0b=_[_0x9054('0x40')]({},_0x36da0b,_0x3186f5['options']);return _0x34a12e['getAgents'](_0x36da0b);}})['then'](function(_0x2aad4a){if(_0x2aad4a){_0xc094a0=_0x2aad4a['length'];if(!_0x3186f5[_0x9054('0x34')]['hasOwnProperty'](_0x9054('0x39'))){_0x36da0b[_0x9054('0x3a')]=qs[_0x9054('0x3a')](_0x3186f5[_0x9054('0x34')][_0x9054('0x3a')]);_0x36da0b['offset']=qs[_0x9054('0x22')](_0x3186f5[_0x9054('0x34')][_0x9054('0x22')]);}return _0x34a12e['getAgents'](_0x36da0b);}})[_0x9054('0x29')](function(_0x1fd793){if(_0x1fd793){return _0x1fd793?{'count':_0xc094a0,'rows':_0x1fd793}:null;}})[_0x9054('0x29')](respondWithResult(_0x27905c,null))['catch'](handleError(_0x27905c,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8249=['emit','hasOwnProperty','../../mysqldb','WhatsappQueue','save','update','remove'];(function(_0x1da2e4,_0xf6a8f0){var _0x28dbca=function(_0x5704b9){while(--_0x5704b9){_0x1da2e4['push'](_0x1da2e4['shift']());}};_0x28dbca(++_0xf6a8f0);}(_0x8249,0x72));var _0x9824=function(_0x25212e,_0x35c573){_0x25212e=_0x25212e-0x0;var _0xa65397=_0x8249[_0x25212e];return _0xa65397;};'use strict';var EventEmitter=require('events');var WhatsappQueue=require(_0x9824('0x0'))['db'][_0x9824('0x1')];var WhatsappQueueEvents=new EventEmitter();WhatsappQueueEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x9824('0x2'),'afterUpdate':_0x9824('0x3'),'afterDestroy':_0x9824('0x4')};function emitEvent(_0x5430b9){return function(_0x4e23b3,_0xb53d1,_0x35f951){WhatsappQueueEvents[_0x9824('0x5')](_0x5430b9+':'+_0x4e23b3['id'],_0x4e23b3);WhatsappQueueEvents[_0x9824('0x5')](_0x5430b9,_0x4e23b3);_0x35f951(null);};}for(var e in events){if(events[_0x9824('0x6')](e)){var event=events[e];WhatsappQueue['hook'](e,emitEvent(event));}}module['exports']=WhatsappQueueEvents;
\ No newline at end of file
+var _0x1a90=['hasOwnProperty','exports','events','../../mysqldb','WhatsappQueue','setMaxListeners','save','remove','emit'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x1a90,0x146));var _0x01a9=function(_0x53d0b0,_0x2ccb2c){_0x53d0b0=_0x53d0b0-0x0;var _0x59ad0d=_0x1a90[_0x53d0b0];return _0x59ad0d;};'use strict';var EventEmitter=require(_0x01a9('0x0'));var WhatsappQueue=require(_0x01a9('0x1'))['db'][_0x01a9('0x2')];var WhatsappQueueEvents=new EventEmitter();WhatsappQueueEvents[_0x01a9('0x3')](0x0);var events={'afterCreate':_0x01a9('0x4'),'afterUpdate':'update','afterDestroy':_0x01a9('0x5')};function emitEvent(_0x3344d6){return function(_0x498418,_0x5799a9,_0xfc5557){WhatsappQueueEvents[_0x01a9('0x6')](_0x3344d6+':'+_0x498418['id'],_0x498418);WhatsappQueueEvents[_0x01a9('0x6')](_0x3344d6,_0x498418);_0xfc5557(null);};}for(var e in events){if(events[_0x01a9('0x7')](e)){var event=events[e];WhatsappQueue['hook'](e,emitEvent(event));}}module[_0x01a9('0x8')]=WhatsappQueueEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7f89=['../../config/logger','api','moment','bluebird','request-promise','rimraf','../../config/environment','./whatsappQueue.attributes','exports','define','WhatsappQueue','whatsapp_queues','lodash','util'];(function(_0x31b0a4,_0x1fa458){var _0x394cdf=function(_0x54e6f0){while(--_0x54e6f0){_0x31b0a4['push'](_0x31b0a4['shift']());}};_0x394cdf(++_0x1fa458);}(_0x7f89,0x7c));var _0x97f8=function(_0x3599fc,_0x5455e8){_0x3599fc=_0x3599fc-0x0;var _0x5991c7=_0x7f89[_0x3599fc];return _0x5991c7;};'use strict';var _=require(_0x97f8('0x0'));var util=require(_0x97f8('0x1'));var logger=require(_0x97f8('0x2'))(_0x97f8('0x3'));var moment=require(_0x97f8('0x4'));var BPromise=require(_0x97f8('0x5'));var rp=require(_0x97f8('0x6'));var fs=require('fs');var path=require('path');var rimraf=require(_0x97f8('0x7'));var config=require(_0x97f8('0x8'));var attributes=require(_0x97f8('0x9'));module[_0x97f8('0xa')]=function(_0x5e7ba0,_0x226a57){return _0x5e7ba0[_0x97f8('0xb')](_0x97f8('0xc'),attributes,{'tableName':_0x97f8('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xb419=['./whatsappQueue.attributes','exports','define','WhatsappQueue','util','../../config/logger','api','moment','request-promise','path','rimraf','../../config/environment'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xb419,0x1b4));var _0x9b41=function(_0x4be91a,_0x377255){_0x4be91a=_0x4be91a-0x0;var _0x46ece9=_0xb419[_0x4be91a];return _0x46ece9;};'use strict';var _=require('lodash');var util=require(_0x9b41('0x0'));var logger=require(_0x9b41('0x1'))(_0x9b41('0x2'));var moment=require(_0x9b41('0x3'));var BPromise=require('bluebird');var rp=require(_0x9b41('0x4'));var fs=require('fs');var path=require(_0x9b41('0x5'));var rimraf=require(_0x9b41('0x6'));var config=require(_0x9b41('0x7'));var attributes=require(_0x9b41('0x8'));module[_0x9b41('0x9')]=function(_0x557fa2,_0x599be1){return _0x557fa2[_0x9b41('0xa')](_0x9b41('0xb'),attributes,{'tableName':'whatsapp_queues','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1b7f=['GetWhatsappQueue','catch','find','then','ShowWhatsappQueue','lodash','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','register','request','info','request\x20sent','debug','WhatsappQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','WhatsappQueue,\x20%s,\x20%s','message','WhatsappQueue','findAll','options','raw','where','attributes','limit','include','map','model'];(function(_0xfdd79e,_0x2c3b55){var _0x225824=function(_0x548140){while(--_0x548140){_0xfdd79e['push'](_0xfdd79e['shift']());}};_0x225824(++_0x2c3b55);}(_0x1b7f,0x124));var _0xf1b7=function(_0x225716,_0x440533){_0x225716=_0x225716-0x0;var _0x2cd53b=_0x1b7f[_0x225716];return _0x2cd53b;};'use strict';var _=require(_0xf1b7('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0xf1b7('0x1'));var rs=require(_0xf1b7('0x2'));var fs=require('fs');var Redis=require(_0xf1b7('0x3'));var db=require(_0xf1b7('0x4'))['db'];var utils=require(_0xf1b7('0x5'));var logger=require(_0xf1b7('0x6'))(_0xf1b7('0x7'));var config=require('../../config/environment');var jayson=require(_0xf1b7('0x8'));var client=jayson[_0xf1b7('0x9')][_0xf1b7('0xa')]({'port':0x232a});config[_0xf1b7('0xb')]=_[_0xf1b7('0xc')](config['redis'],{'host':_0xf1b7('0xd'),'port':0x18eb});var socket=require(_0xf1b7('0xe'))(new Redis(config[_0xf1b7('0xb')]));require('./whatsappQueue.socket')[_0xf1b7('0xf')](socket);function respondWithRpcPromise(_0x527362,_0x1300f6,_0x57a598){return new BPromise(function(_0x212788,_0x3fb4bb){return client[_0xf1b7('0x10')](_0x527362,_0x57a598)['then'](function(_0x3602d4){logger[_0xf1b7('0x11')]('WhatsappQueue,\x20%s,\x20%s',_0x1300f6,_0xf1b7('0x12'));logger[_0xf1b7('0x13')](_0xf1b7('0x14'),_0x1300f6,'request\x20sent',JSON[_0xf1b7('0x15')](_0x3602d4));if(_0x3602d4[_0xf1b7('0x16')]){if(_0x3602d4['error'][_0xf1b7('0x17')]===0x1f4){logger[_0xf1b7('0x16')](_0xf1b7('0x18'),_0x1300f6,_0x3602d4['error'][_0xf1b7('0x19')]);return _0x3fb4bb(_0x3602d4['error'][_0xf1b7('0x19')]);}logger[_0xf1b7('0x16')](_0xf1b7('0x18'),_0x1300f6,_0x3602d4[_0xf1b7('0x16')][_0xf1b7('0x19')]);return _0x212788(_0x3602d4[_0xf1b7('0x16')][_0xf1b7('0x19')]);}else{logger['info']('WhatsappQueue,\x20%s,\x20%s',_0x1300f6,_0xf1b7('0x12'));_0x212788(_0x3602d4['result']['message']);}})['catch'](function(_0x2e216f){logger[_0xf1b7('0x16')](_0xf1b7('0x18'),_0x1300f6,_0x2e216f);_0x3fb4bb(_0x2e216f);});});}exports['GetWhatsappQueue']=function(_0x370134){var _0x1d5e35=this;return new Promise(function(_0x274a12,_0x3184d4){return db[_0xf1b7('0x1a')][_0xf1b7('0x1b')]({'raw':_0x370134[_0xf1b7('0x1c')]?_0x370134[_0xf1b7('0x1c')][_0xf1b7('0x1d')]===undefined?!![]:![]:!![],'where':_0x370134[_0xf1b7('0x1c')]?_0x370134[_0xf1b7('0x1c')][_0xf1b7('0x1e')]||null:null,'attributes':_0x370134[_0xf1b7('0x1c')]?_0x370134[_0xf1b7('0x1c')][_0xf1b7('0x1f')]||null:null,'limit':_0x370134[_0xf1b7('0x1c')]?_0x370134[_0xf1b7('0x1c')][_0xf1b7('0x20')]||null:null,'include':_0x370134[_0xf1b7('0x1c')]?_0x370134[_0xf1b7('0x1c')][_0xf1b7('0x21')]?_[_0xf1b7('0x22')](_0x370134[_0xf1b7('0x1c')][_0xf1b7('0x21')],function(_0x3676fd){return{'model':db[_0x3676fd[_0xf1b7('0x23')]],'as':_0x3676fd['as'],'attributes':_0x3676fd['attributes'],'include':_0x3676fd['include']?_[_0xf1b7('0x22')](_0x3676fd['include'],function(_0x4d4d7f){return{'model':db[_0x4d4d7f['model']],'as':_0x4d4d7f['as'],'attributes':_0x4d4d7f['attributes'],'include':_0x4d4d7f[_0xf1b7('0x21')]?_['map'](_0x4d4d7f['include'],function(_0x4d2623){return{'model':db[_0x4d2623[_0xf1b7('0x23')]],'as':_0x4d2623['as'],'attributes':_0x4d2623[_0xf1b7('0x1f')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x2eb690){logger[_0xf1b7('0x11')](_0xf1b7('0x24'),_0x370134);logger['debug'](_0xf1b7('0x24'),_0x370134,JSON['stringify'](_0x2eb690));_0x274a12(_0x2eb690);})[_0xf1b7('0x25')](function(_0xf82ac8){logger['error']('GetWhatsappQueue',_0xf82ac8[_0xf1b7('0x19')],_0x370134);_0x3184d4(_0x1d5e35['error'](0x1f4,_0xf82ac8[_0xf1b7('0x19')]));});});};exports['ShowWhatsappQueue']=function(_0x4ed2d){var _0x4af704=this;return new Promise(function(_0x14a033,_0x5b595a){return db[_0xf1b7('0x1a')][_0xf1b7('0x26')]({'raw':_0x4ed2d[_0xf1b7('0x1c')]?_0x4ed2d[_0xf1b7('0x1c')][_0xf1b7('0x1d')]===undefined?!![]:![]:!![],'where':_0x4ed2d[_0xf1b7('0x1c')]?_0x4ed2d[_0xf1b7('0x1c')]['where']||null:null,'attributes':_0x4ed2d[_0xf1b7('0x1c')]?_0x4ed2d[_0xf1b7('0x1c')]['attributes']||null:null,'include':_0x4ed2d[_0xf1b7('0x1c')]?_0x4ed2d[_0xf1b7('0x1c')][_0xf1b7('0x21')]?_[_0xf1b7('0x22')](_0x4ed2d[_0xf1b7('0x1c')][_0xf1b7('0x21')],function(_0x1b8ae8){return{'model':db[_0x1b8ae8['model']],'as':_0x1b8ae8['as'],'attributes':_0x1b8ae8[_0xf1b7('0x1f')],'include':_0x1b8ae8[_0xf1b7('0x21')]?_['map'](_0x1b8ae8[_0xf1b7('0x21')],function(_0x4276c5){return{'model':db[_0x4276c5[_0xf1b7('0x23')]],'as':_0x4276c5['as'],'attributes':_0x4276c5[_0xf1b7('0x1f')],'include':_0x4276c5['include']?_[_0xf1b7('0x22')](_0x4276c5[_0xf1b7('0x21')],function(_0xde9efd){return{'model':db[_0xde9efd[_0xf1b7('0x23')]],'as':_0xde9efd['as'],'attributes':_0xde9efd[_0xf1b7('0x1f')]};}):[]};}):[]};}):[]:[]})[_0xf1b7('0x27')](function(_0x146aa4){logger[_0xf1b7('0x11')](_0xf1b7('0x28'),_0x4ed2d);logger[_0xf1b7('0x13')](_0xf1b7('0x28'),_0x4ed2d,JSON[_0xf1b7('0x15')](_0x146aa4));_0x14a033(_0x146aa4);})[_0xf1b7('0x25')](function(_0x4d74ee){logger[_0xf1b7('0x16')](_0xf1b7('0x28'),_0x4d74ee[_0xf1b7('0x19')],_0x4ed2d);_0x5b595a(_0x4af704[_0xf1b7('0x16')](0x1f4,_0x4d74ee['message']));});});};
\ No newline at end of file
+var _0x68ec=['bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','jayson/promise','client','http','defaults','redis','localhost','./whatsappQueue.socket','register','request','then','info','debug','WhatsappQueue,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','WhatsappQueue,\x20%s,\x20%s','result','catch','GetWhatsappQueue','WhatsappQueue','findAll','options','raw','where','attributes','include','model','map','ShowWhatsappQueue','find','lodash','util','moment'];(function(_0x55d70d,_0x32fa55){var _0x41dbc4=function(_0x16c38c){while(--_0x16c38c){_0x55d70d['push'](_0x55d70d['shift']());}};_0x41dbc4(++_0x32fa55);}(_0x68ec,0xcf));var _0xc68e=function(_0x5a778b,_0x717daa){_0x5a778b=_0x5a778b-0x0;var _0x32f0da=_0x68ec[_0x5a778b];return _0x32f0da;};'use strict';var _=require(_0xc68e('0x0'));var util=require(_0xc68e('0x1'));var moment=require(_0xc68e('0x2'));var BPromise=require(_0xc68e('0x3'));var rs=require(_0xc68e('0x4'));var fs=require('fs');var Redis=require(_0xc68e('0x5'));var db=require(_0xc68e('0x6'))['db'];var utils=require('../../config/utils');var logger=require(_0xc68e('0x7'))(_0xc68e('0x8'));var config=require('../../config/environment');var jayson=require(_0xc68e('0x9'));var client=jayson[_0xc68e('0xa')][_0xc68e('0xb')]({'port':0x232a});config['redis']=_[_0xc68e('0xc')](config[_0xc68e('0xd')],{'host':_0xc68e('0xe'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xc68e('0xd')]));require(_0xc68e('0xf'))[_0xc68e('0x10')](socket);function respondWithRpcPromise(_0xf2bc8f,_0x8b8a0d,_0x5810bd){return new BPromise(function(_0x4393c2,_0x16678b){return client[_0xc68e('0x11')](_0xf2bc8f,_0x5810bd)[_0xc68e('0x12')](function(_0x3bd37d){logger[_0xc68e('0x13')]('WhatsappQueue,\x20%s,\x20%s',_0x8b8a0d,'request\x20sent');logger[_0xc68e('0x14')](_0xc68e('0x15'),_0x8b8a0d,_0xc68e('0x16'),JSON[_0xc68e('0x17')](_0x3bd37d));if(_0x3bd37d[_0xc68e('0x18')]){if(_0x3bd37d[_0xc68e('0x18')][_0xc68e('0x19')]===0x1f4){logger[_0xc68e('0x18')]('WhatsappQueue,\x20%s,\x20%s',_0x8b8a0d,_0x3bd37d[_0xc68e('0x18')]['message']);return _0x16678b(_0x3bd37d['error'][_0xc68e('0x1a')]);}logger['error'](_0xc68e('0x1b'),_0x8b8a0d,_0x3bd37d[_0xc68e('0x18')][_0xc68e('0x1a')]);return _0x4393c2(_0x3bd37d[_0xc68e('0x18')][_0xc68e('0x1a')]);}else{logger[_0xc68e('0x13')]('WhatsappQueue,\x20%s,\x20%s',_0x8b8a0d,_0xc68e('0x16'));_0x4393c2(_0x3bd37d[_0xc68e('0x1c')]['message']);}})[_0xc68e('0x1d')](function(_0x3efea5){logger[_0xc68e('0x18')](_0xc68e('0x1b'),_0x8b8a0d,_0x3efea5);_0x16678b(_0x3efea5);});});}exports[_0xc68e('0x1e')]=function(_0x495421){var _0x534afb=this;return new Promise(function(_0x36bca6,_0x3ba22b){return db[_0xc68e('0x1f')][_0xc68e('0x20')]({'raw':_0x495421['options']?_0x495421[_0xc68e('0x21')][_0xc68e('0x22')]===undefined?!![]:![]:!![],'where':_0x495421[_0xc68e('0x21')]?_0x495421[_0xc68e('0x21')][_0xc68e('0x23')]||null:null,'attributes':_0x495421[_0xc68e('0x21')]?_0x495421['options'][_0xc68e('0x24')]||null:null,'limit':_0x495421[_0xc68e('0x21')]?_0x495421[_0xc68e('0x21')]['limit']||null:null,'include':_0x495421[_0xc68e('0x21')]?_0x495421['options'][_0xc68e('0x25')]?_['map'](_0x495421['options'][_0xc68e('0x25')],function(_0x15b50a){return{'model':db[_0x15b50a[_0xc68e('0x26')]],'as':_0x15b50a['as'],'attributes':_0x15b50a[_0xc68e('0x24')],'include':_0x15b50a[_0xc68e('0x25')]?_['map'](_0x15b50a['include'],function(_0x128dfc){return{'model':db[_0x128dfc['model']],'as':_0x128dfc['as'],'attributes':_0x128dfc[_0xc68e('0x24')],'include':_0x128dfc[_0xc68e('0x25')]?_[_0xc68e('0x27')](_0x128dfc[_0xc68e('0x25')],function(_0x510275){return{'model':db[_0x510275[_0xc68e('0x26')]],'as':_0x510275['as'],'attributes':_0x510275[_0xc68e('0x24')]};}):[]};}):[]};}):[]:[]})[_0xc68e('0x12')](function(_0x491314){logger[_0xc68e('0x13')](_0xc68e('0x1e'),_0x495421);logger[_0xc68e('0x14')]('GetWhatsappQueue',_0x495421,JSON[_0xc68e('0x17')](_0x491314));_0x36bca6(_0x491314);})['catch'](function(_0x339f16){logger[_0xc68e('0x18')](_0xc68e('0x1e'),_0x339f16[_0xc68e('0x1a')],_0x495421);_0x3ba22b(_0x534afb[_0xc68e('0x18')](0x1f4,_0x339f16[_0xc68e('0x1a')]));});});};exports[_0xc68e('0x28')]=function(_0x403e6a){var _0x3f569c=this;return new Promise(function(_0x5a5b07,_0x13e91b){return db[_0xc68e('0x1f')][_0xc68e('0x29')]({'raw':_0x403e6a[_0xc68e('0x21')]?_0x403e6a[_0xc68e('0x21')][_0xc68e('0x22')]===undefined?!![]:![]:!![],'where':_0x403e6a['options']?_0x403e6a[_0xc68e('0x21')][_0xc68e('0x23')]||null:null,'attributes':_0x403e6a[_0xc68e('0x21')]?_0x403e6a['options']['attributes']||null:null,'include':_0x403e6a[_0xc68e('0x21')]?_0x403e6a['options'][_0xc68e('0x25')]?_['map'](_0x403e6a['options'][_0xc68e('0x25')],function(_0x4b26d3){return{'model':db[_0x4b26d3[_0xc68e('0x26')]],'as':_0x4b26d3['as'],'attributes':_0x4b26d3['attributes'],'include':_0x4b26d3[_0xc68e('0x25')]?_[_0xc68e('0x27')](_0x4b26d3[_0xc68e('0x25')],function(_0x350681){return{'model':db[_0x350681[_0xc68e('0x26')]],'as':_0x350681['as'],'attributes':_0x350681[_0xc68e('0x24')],'include':_0x350681[_0xc68e('0x25')]?_[_0xc68e('0x27')](_0x350681['include'],function(_0x47eb21){return{'model':db[_0x47eb21[_0xc68e('0x26')]],'as':_0x47eb21['as'],'attributes':_0x47eb21[_0xc68e('0x24')]};}):[]};}):[]};}):[]:[]})[_0xc68e('0x12')](function(_0x16b11e){logger['info']('ShowWhatsappQueue',_0x403e6a);logger['debug'](_0xc68e('0x28'),_0x403e6a,JSON[_0xc68e('0x17')](_0x16b11e));_0x5a5b07(_0x16b11e);})[_0xc68e('0x1d')](function(_0x4d8be6){logger[_0xc68e('0x18')](_0xc68e('0x28'),_0x4d8be6[_0xc68e('0x1a')],_0x403e6a);_0x13e91b(_0x3f569c['error'](0x1f4,_0x4d8be6[_0xc68e('0x1a')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa87f=['removeListener','register','whatsappQueue:','save','remove','update','emit'];(function(_0x45a601,_0x4f8863){var _0x238814=function(_0x5c3db3){while(--_0x5c3db3){_0x45a601['push'](_0x45a601['shift']());}};_0x238814(++_0x4f8863);}(_0xa87f,0x1ae));var _0xfa87=function(_0x38185e,_0x383327){_0x38185e=_0x38185e-0x0;var _0x1fa7ad=_0xa87f[_0x38185e];return _0x1fa7ad;};'use strict';var WhatsappQueueEvents=require('./whatsappQueue.events');var events=[_0xfa87('0x0'),_0xfa87('0x1'),_0xfa87('0x2')];function createListener(_0x54c066,_0x51cc8b){return function(_0xc965a6){_0x51cc8b[_0xfa87('0x3')](_0x54c066,_0xc965a6);};}function removeListener(_0x36f586,_0x5df72c){return function(){WhatsappQueueEvents[_0xfa87('0x4')](_0x36f586,_0x5df72c);};}exports[_0xfa87('0x5')]=function(_0x230b16){for(var _0x4c292c=0x0,_0x5391b2=events['length'];_0x4c292c<_0x5391b2;_0x4c292c++){var _0x14f64d=events[_0x4c292c];var _0x4d6f75=createListener(_0xfa87('0x6')+_0x14f64d,_0x230b16);WhatsappQueueEvents['on'](_0x14f64d,_0x4d6f75);}};
\ No newline at end of file
+var _0xd6f5=['update','emit','removeListener','register','length','./whatsappQueue.events','save','remove'];(function(_0xbced8f,_0x4a2d16){var _0x300971=function(_0xc3c104){while(--_0xc3c104){_0xbced8f['push'](_0xbced8f['shift']());}};_0x300971(++_0x4a2d16);}(_0xd6f5,0xcd));var _0x5d6f=function(_0xf80b3,_0x25d5f3){_0xf80b3=_0xf80b3-0x0;var _0x10c489=_0xd6f5[_0xf80b3];return _0x10c489;};'use strict';var WhatsappQueueEvents=require(_0x5d6f('0x0'));var events=[_0x5d6f('0x1'),_0x5d6f('0x2'),_0x5d6f('0x3')];function createListener(_0x5ee4f1,_0x2f7570){return function(_0xfdd68b){_0x2f7570[_0x5d6f('0x4')](_0x5ee4f1,_0xfdd68b);};}function removeListener(_0xe82aa4,_0x181600){return function(){WhatsappQueueEvents[_0x5d6f('0x5')](_0xe82aa4,_0x181600);};}exports[_0x5d6f('0x6')]=function(_0x389743){for(var _0x5d36d5=0x0,_0xef2cce=events[_0x5d6f('0x7')];_0x5d36d5<_0xef2cce;_0x5d36d5++){var _0x27e7d6=events[_0x5d36d5];var _0x409c59=createListener('whatsappQueue:'+_0x27e7d6,_0x389743);WhatsappQueueEvents['on'](_0x27e7d6,_0x409c59);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xafc6=['describe','/:id','post','create','update','delete','destroy','exports','multer','util','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','/describe'];(function(_0x1ac9f4,_0x5b796f){var _0x502020=function(_0x339456){while(--_0x339456){_0x1ac9f4['push'](_0x1ac9f4['shift']());}};_0x502020(++_0x5b796f);}(_0xafc6,0x197));var _0x6afc=function(_0x1cb18a,_0x33167a){_0x1cb18a=_0x1cb18a-0x0;var _0x22442e=_0xafc6[_0x1cb18a];return _0x22442e;};'use strict';var multer=require(_0x6afc('0x0'));var util=require(_0x6afc('0x1'));var path=require('path');var timeout=require(_0x6afc('0x2'));var express=require(_0x6afc('0x3'));var router=express[_0x6afc('0x4')]();var fs_extra=require(_0x6afc('0x5'));var auth=require(_0x6afc('0x6'));var interaction=require(_0x6afc('0x7'));var config=require(_0x6afc('0x8'));var controller=require('./whatsappQueueReport.controller');router[_0x6afc('0x9')]('/',auth[_0x6afc('0xa')](),controller[_0x6afc('0xb')]);router[_0x6afc('0x9')](_0x6afc('0xc'),auth[_0x6afc('0xa')](),controller[_0x6afc('0xd')]);router['get'](_0x6afc('0xe'),auth[_0x6afc('0xa')](),controller['show']);router[_0x6afc('0xf')]('/',auth[_0x6afc('0xa')](),controller[_0x6afc('0x10')]);router['put'](_0x6afc('0xe'),auth['isAuthenticated'](),controller[_0x6afc('0x11')]);router[_0x6afc('0x12')](_0x6afc('0xe'),auth[_0x6afc('0xa')](),controller[_0x6afc('0x13')]);module[_0x6afc('0x14')]=router;
\ No newline at end of file
+var _0xa7d8=['/:id','show','put','destroy','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./whatsappQueueReport.controller','get','isAuthenticated','index','describe'];(function(_0x2aec52,_0x59d962){var _0x3b8835=function(_0x3e2604){while(--_0x3e2604){_0x2aec52['push'](_0x2aec52['shift']());}};_0x3b8835(++_0x59d962);}(_0xa7d8,0x194));var _0x8a7d=function(_0x40018f,_0x205f5d){_0x40018f=_0x40018f-0x0;var _0x5d51f7=_0xa7d8[_0x40018f];return _0x5d51f7;};'use strict';var multer=require(_0x8a7d('0x0'));var util=require(_0x8a7d('0x1'));var path=require(_0x8a7d('0x2'));var timeout=require(_0x8a7d('0x3'));var express=require(_0x8a7d('0x4'));var router=express[_0x8a7d('0x5')]();var fs_extra=require(_0x8a7d('0x6'));var auth=require(_0x8a7d('0x7'));var interaction=require(_0x8a7d('0x8'));var config=require('../../config/environment');var controller=require(_0x8a7d('0x9'));router[_0x8a7d('0xa')]('/',auth[_0x8a7d('0xb')](),controller[_0x8a7d('0xc')]);router['get']('/describe',auth['isAuthenticated'](),controller[_0x8a7d('0xd')]);router['get'](_0x8a7d('0xe'),auth[_0x8a7d('0xb')](),controller[_0x8a7d('0xf')]);router['post']('/',auth[_0x8a7d('0xb')](),controller['create']);router[_0x8a7d('0x10')](_0x8a7d('0xe'),auth[_0x8a7d('0xb')](),controller['update']);router['delete'](_0x8a7d('0xe'),auth[_0x8a7d('0xb')](),controller[_0x8a7d('0x11')]);module[_0x8a7d('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9957=['exports','STRING','DATE','sequelize'];(function(_0x3950bc,_0x1724eb){var _0xed6d91=function(_0x3b7334){while(--_0x3b7334){_0x3950bc['push'](_0x3950bc['shift']());}};_0xed6d91(++_0x1724eb);}(_0x9957,0x93));var _0x7995=function(_0x501510,_0x61caa9){_0x501510=_0x501510-0x0;var _0x1e6ee5=_0x9957[_0x501510];return _0x1e6ee5;};'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 _0x7a54=['STRING','DATE','sequelize','exports'];(function(_0x14acf5,_0x2175d4){var _0x20b088=function(_0x52c85c){while(--_0x52c85c){_0x14acf5['push'](_0x14acf5['shift']());}};_0x20b088(++_0x2175d4);}(_0x7a54,0x106));var _0x47a5=function(_0x14295b,_0x162934){_0x14295b=_0x14295b-0x0;var _0x1fae1c=_0x7a54[_0x14295b];return _0x1fae1c;};'use strict';var Sequelize=require(_0x47a5('0x0'));module[_0x47a5('0x1')]={'uniqueid':{'type':Sequelize[_0x47a5('0x2')],'allowNull':![]},'from':{'type':Sequelize['STRING']},'joinAt':{'type':Sequelize[_0x47a5('0x3')]},'leaveAt':{'type':Sequelize[_0x47a5('0x3')]},'acceptAt':{'type':Sequelize['DATE']},'exitAt':{'type':Sequelize[_0x47a5('0x3')]},'reason':{'type':Sequelize[_0x47a5('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6cb4=['apply','reject','save','update','then','stack','name','send','index','map','WhatsappQueueReport','fieldName','key','model','query','keys','filters','intersection','fields','attributes','nolimit','order','sort','where','filter','merge','includeAll','rows','catch','show','params','rawAttributes','length','options','find','create','body','destroy','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','ejs','lodash','squel','crypto','jsforce','desk.js','to-csv','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../mysqldb','status','end','json','undefined','offset','count','limit','set','Content-Range'];(function(_0x4901c5,_0x9dfb8f){var _0x2269d2=function(_0x4ab876){while(--_0x4ab876){_0x4901c5['push'](_0x4901c5['shift']());}};_0x2269d2(++_0x9dfb8f);}(_0x6cb4,0xff));var _0x46cb=function(_0x88384d,_0x27ecd5){_0x88384d=_0x88384d-0x0;var _0x2ed7c4=_0x6cb4[_0x88384d];return _0x2ed7c4;};'use strict';var emlformat=require(_0x46cb('0x0'));var rimraf=require(_0x46cb('0x1'));var zipdir=require(_0x46cb('0x2'));var jsonpatch=require(_0x46cb('0x3'));var rp=require(_0x46cb('0x4'));var moment=require(_0x46cb('0x5'));var BPromise=require(_0x46cb('0x6'));var Mustache=require(_0x46cb('0x7'));var util=require(_0x46cb('0x8'));var path=require('path');var sox=require(_0x46cb('0x9'));var csv=require('to-csv');var ejs=require(_0x46cb('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x46cb('0xb'));var squel=require(_0x46cb('0xc'));var crypto=require(_0x46cb('0xd'));var jsforce=require(_0x46cb('0xe'));var deskjs=require(_0x46cb('0xf'));var toCsv=require(_0x46cb('0x10'));var querystring=require('querystring');var Papa=require(_0x46cb('0x11'));var Redis=require(_0x46cb('0x12'));var authService=require('../../components/auth/service');var qs=require(_0x46cb('0x13'));var as=require(_0x46cb('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x46cb('0x15'))(_0x46cb('0x16'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x46cb('0x17'))['db'];function respondWithStatusCode(_0x323ac2,_0x1058a8){_0x1058a8=_0x1058a8||0xcc;return function(_0xf22158){if(_0xf22158){return _0x323ac2['sendStatus'](_0x1058a8);}return _0x323ac2[_0x46cb('0x18')](_0x1058a8)[_0x46cb('0x19')]();};}function respondWithResult(_0x2a1f9d,_0x3c0071){_0x3c0071=_0x3c0071||0xc8;return function(_0x1f7150){if(_0x1f7150){return _0x2a1f9d[_0x46cb('0x18')](_0x3c0071)[_0x46cb('0x1a')](_0x1f7150);}};}function respondWithFilteredResult(_0x3c396b,_0x37d368){return function(_0x41e398){if(_0x41e398){var _0x136215=typeof _0x37d368['offset']===_0x46cb('0x1b')&&typeof _0x37d368['limit']===_0x46cb('0x1b');var _0x4ab22b=_0x41e398['count'];var _0x4e3454=_0x136215?0x0:_0x37d368[_0x46cb('0x1c')];var _0x1f2891=_0x136215?_0x41e398[_0x46cb('0x1d')]:_0x37d368[_0x46cb('0x1c')]+_0x37d368[_0x46cb('0x1e')];var _0x26e38d;if(_0x1f2891>=_0x4ab22b){_0x1f2891=_0x4ab22b;_0x26e38d=0xc8;}else{_0x26e38d=0xce;}_0x3c396b[_0x46cb('0x18')](_0x26e38d);return _0x3c396b[_0x46cb('0x1f')](_0x46cb('0x20'),_0x4e3454+'-'+_0x1f2891+'/'+_0x4ab22b)[_0x46cb('0x1a')](_0x41e398);}return null;};}function patchUpdates(_0x149483){return function(_0x46e541){try{jsonpatch[_0x46cb('0x21')](_0x46e541,_0x149483,!![]);}catch(_0x2f438b){return BPromise[_0x46cb('0x22')](_0x2f438b);}return _0x46e541[_0x46cb('0x23')]();};}function saveUpdates(_0x7084b2,_0x1fb467){return function(_0x41ecd2){if(_0x41ecd2){return _0x41ecd2[_0x46cb('0x24')](_0x7084b2)[_0x46cb('0x25')](function(_0x1e9e38){return _0x1e9e38;});}return null;};}function removeEntity(_0x309e4b,_0xadcad6){return function(_0x40e0e5){if(_0x40e0e5){return _0x40e0e5['destroy']()['then'](function(){_0x309e4b[_0x46cb('0x18')](0xcc)[_0x46cb('0x19')]();});}};}function handleEntityNotFound(_0x2711ac,_0xe078a8){return function(_0x6e6d9){if(!_0x6e6d9){_0x2711ac['sendStatus'](0x194);}return _0x6e6d9;};}function handleError(_0xc5a9a4,_0x578ffd){_0x578ffd=_0x578ffd||0x1f4;return function(_0x495886){logger['error'](_0x495886[_0x46cb('0x26')]);if(_0x495886[_0x46cb('0x27')]){delete _0x495886[_0x46cb('0x27')];}_0xc5a9a4[_0x46cb('0x18')](_0x578ffd)[_0x46cb('0x28')](_0x495886);};}exports[_0x46cb('0x29')]=function(_0x378dc7,_0x8c65b2){var _0x2b846a={},_0x12e01e={},_0x4620ef={'count':0x0,'rows':[]};var _0x4a1517=_[_0x46cb('0x2a')](db[_0x46cb('0x2b')]['rawAttributes'],function(_0x49e0bc){return{'name':_0x49e0bc[_0x46cb('0x2c')],'type':_0x49e0bc['type'][_0x46cb('0x2d')]};});_0x12e01e[_0x46cb('0x2e')]=_[_0x46cb('0x2a')](_0x4a1517,_0x46cb('0x27'));_0x12e01e[_0x46cb('0x2f')]=_[_0x46cb('0x30')](_0x378dc7['query']);_0x12e01e[_0x46cb('0x31')]=_['intersection'](_0x12e01e[_0x46cb('0x2e')],_0x12e01e[_0x46cb('0x2f')]);_0x2b846a['attributes']=_[_0x46cb('0x32')](_0x12e01e[_0x46cb('0x2e')],qs[_0x46cb('0x33')](_0x378dc7[_0x46cb('0x2f')][_0x46cb('0x33')]));_0x2b846a['attributes']=_0x2b846a[_0x46cb('0x34')]['length']?_0x2b846a[_0x46cb('0x34')]:_0x12e01e[_0x46cb('0x2e')];if(!_0x378dc7[_0x46cb('0x2f')]['hasOwnProperty'](_0x46cb('0x35'))){_0x2b846a[_0x46cb('0x1e')]=qs['limit'](_0x378dc7[_0x46cb('0x2f')][_0x46cb('0x1e')]);_0x2b846a[_0x46cb('0x1c')]=qs[_0x46cb('0x1c')](_0x378dc7[_0x46cb('0x2f')][_0x46cb('0x1c')]);}_0x2b846a[_0x46cb('0x36')]=qs[_0x46cb('0x37')](_0x378dc7[_0x46cb('0x2f')][_0x46cb('0x37')]);_0x2b846a[_0x46cb('0x38')]=qs['filters'](_['pick'](_0x378dc7['query'],_0x12e01e[_0x46cb('0x31')]),_0x4a1517);if(_0x378dc7[_0x46cb('0x2f')][_0x46cb('0x39')]){_0x2b846a[_0x46cb('0x38')]=_[_0x46cb('0x3a')](_0x2b846a[_0x46cb('0x38')],{'$or':_['map'](_0x4a1517,function(_0x1f2e11){if(_0x1f2e11['type']!=='VIRTUAL'){var _0x173fac={};_0x173fac[_0x1f2e11['name']]={'$like':'%'+_0x378dc7['query'][_0x46cb('0x39')]+'%'};return _0x173fac;}})});}_0x2b846a=_['merge']({},_0x2b846a,_0x378dc7['options']);var _0x67bd14={'where':_0x2b846a[_0x46cb('0x38')]};return db[_0x46cb('0x2b')][_0x46cb('0x1d')](_0x67bd14)[_0x46cb('0x25')](function(_0x4075b4){_0x4620ef[_0x46cb('0x1d')]=_0x4075b4;if(_0x378dc7['query'][_0x46cb('0x3b')]){_0x2b846a['include']=[{'all':!![]}];}return db[_0x46cb('0x2b')]['findAll'](_0x2b846a);})[_0x46cb('0x25')](function(_0x2fbad9){_0x4620ef[_0x46cb('0x3c')]=_0x2fbad9;return _0x4620ef;})['then'](respondWithFilteredResult(_0x8c65b2,_0x2b846a))[_0x46cb('0x3d')](handleError(_0x8c65b2,null));};exports[_0x46cb('0x3e')]=function(_0x4d24b6,_0x18be96){var _0x3d0b83={'raw':!![],'where':{'id':_0x4d24b6[_0x46cb('0x3f')]['id']}},_0x1f67af={};_0x1f67af[_0x46cb('0x2e')]=_['keys'](db['WhatsappQueueReport'][_0x46cb('0x40')]);_0x1f67af['query']=_[_0x46cb('0x30')](_0x4d24b6[_0x46cb('0x2f')]);_0x1f67af['filters']=_[_0x46cb('0x32')](_0x1f67af[_0x46cb('0x2e')],_0x1f67af[_0x46cb('0x2f')]);_0x3d0b83['attributes']=_['intersection'](_0x1f67af['model'],qs['fields'](_0x4d24b6[_0x46cb('0x2f')][_0x46cb('0x33')]));_0x3d0b83[_0x46cb('0x34')]=_0x3d0b83[_0x46cb('0x34')][_0x46cb('0x41')]?_0x3d0b83['attributes']:_0x1f67af['model'];if(_0x4d24b6[_0x46cb('0x2f')][_0x46cb('0x3b')]){_0x3d0b83['include']=[{'all':!![]}];}_0x3d0b83=_[_0x46cb('0x3a')]({},_0x3d0b83,_0x4d24b6[_0x46cb('0x42')]);return db[_0x46cb('0x2b')][_0x46cb('0x43')](_0x3d0b83)[_0x46cb('0x25')](handleEntityNotFound(_0x18be96,null))[_0x46cb('0x25')](respondWithResult(_0x18be96,null))[_0x46cb('0x3d')](handleError(_0x18be96,null));};exports['create']=function(_0x58c69f,_0x449593){return db['WhatsappQueueReport'][_0x46cb('0x44')](_0x58c69f[_0x46cb('0x45')],{})[_0x46cb('0x25')](respondWithResult(_0x449593,0xc9))['catch'](handleError(_0x449593,null));};exports[_0x46cb('0x24')]=function(_0x5c1665,_0x5c02c9){if(_0x5c1665[_0x46cb('0x45')]['id']){delete _0x5c1665[_0x46cb('0x45')]['id'];}return db[_0x46cb('0x2b')][_0x46cb('0x43')]({'where':{'id':_0x5c1665[_0x46cb('0x3f')]['id']}})[_0x46cb('0x25')](handleEntityNotFound(_0x5c02c9,null))[_0x46cb('0x25')](saveUpdates(_0x5c1665['body'],null))['then'](respondWithResult(_0x5c02c9,null))[_0x46cb('0x3d')](handleError(_0x5c02c9,null));};exports[_0x46cb('0x46')]=function(_0x52e479,_0x34399d){return db[_0x46cb('0x2b')][_0x46cb('0x43')]({'where':{'id':_0x52e479[_0x46cb('0x3f')]['id']}})[_0x46cb('0x25')](handleEntityNotFound(_0x34399d,null))['then'](removeEntity(_0x34399d,null))[_0x46cb('0x3d')](handleError(_0x34399d,null));};exports[_0x46cb('0x47')]=function(_0x20cf6d,_0x52d1a7){return db[_0x46cb('0x2b')]['describe']()['then'](respondWithResult(_0x52d1a7,null))[_0x46cb('0x3d')](handleError(_0x52d1a7,null));};
\ No newline at end of file
+var _0x5b12=['options','includeAll','include','findAll','then','show','params','rawAttributes','catch','create','body','find','describe','eml-format','rimraf','zip-dir','request-promise','bluebird','mustache','path','ejs','squel','crypto','jsforce','desk.js','to-csv','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','undefined','count','offset','Content-Range','apply','reject','update','destroy','error','name','index','map','WhatsappQueueReport','fieldName','type','key','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','limit','order','sort','where','pick','filter','merge','VIRTUAL'];(function(_0x53a4e2,_0x4aafb3){var _0x1a6e18=function(_0x50f5d3){while(--_0x50f5d3){_0x53a4e2['push'](_0x53a4e2['shift']());}};_0x1a6e18(++_0x4aafb3);}(_0x5b12,0xa3));var _0x25b1=function(_0x49e331,_0x5091bc){_0x49e331=_0x49e331-0x0;var _0x3a00b0=_0x5b12[_0x49e331];return _0x3a00b0;};'use strict';var emlformat=require(_0x25b1('0x0'));var rimraf=require(_0x25b1('0x1'));var zipdir=require(_0x25b1('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x25b1('0x3'));var moment=require('moment');var BPromise=require(_0x25b1('0x4'));var Mustache=require(_0x25b1('0x5'));var util=require('util');var path=require(_0x25b1('0x6'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x25b1('0x7'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x25b1('0x8'));var crypto=require(_0x25b1('0x9'));var jsforce=require(_0x25b1('0xa'));var deskjs=require(_0x25b1('0xb'));var toCsv=require(_0x25b1('0xc'));var querystring=require(_0x25b1('0xd'));var Papa=require(_0x25b1('0xe'));var Redis=require(_0x25b1('0xf'));var authService=require('../../components/auth/service');var qs=require(_0x25b1('0x10'));var as=require(_0x25b1('0x11'));var hardwareService=require(_0x25b1('0x12'));var logger=require(_0x25b1('0x13'))(_0x25b1('0x14'));var utils=require(_0x25b1('0x15'));var config=require(_0x25b1('0x16'));var licenseUtil=require(_0x25b1('0x17'));var db=require(_0x25b1('0x18'))['db'];function respondWithStatusCode(_0x459070,_0xbdd348){_0xbdd348=_0xbdd348||0xcc;return function(_0x1c5421){if(_0x1c5421){return _0x459070[_0x25b1('0x19')](_0xbdd348);}return _0x459070[_0x25b1('0x1a')](_0xbdd348)[_0x25b1('0x1b')]();};}function respondWithResult(_0x76b5c4,_0x4ee40c){_0x4ee40c=_0x4ee40c||0xc8;return function(_0x2c337a){if(_0x2c337a){return _0x76b5c4[_0x25b1('0x1a')](_0x4ee40c)['json'](_0x2c337a);}};}function respondWithFilteredResult(_0xb5b9cf,_0x4bb1bb){return function(_0xe32e02){if(_0xe32e02){var _0x4a5a58=typeof _0x4bb1bb['offset']===_0x25b1('0x1c')&&typeof _0x4bb1bb['limit']===_0x25b1('0x1c');var _0x2ca567=_0xe32e02[_0x25b1('0x1d')];var _0x27ccc9=_0x4a5a58?0x0:_0x4bb1bb[_0x25b1('0x1e')];var _0x2a7d14=_0x4a5a58?_0xe32e02[_0x25b1('0x1d')]:_0x4bb1bb[_0x25b1('0x1e')]+_0x4bb1bb['limit'];var _0x4ecff1;if(_0x2a7d14>=_0x2ca567){_0x2a7d14=_0x2ca567;_0x4ecff1=0xc8;}else{_0x4ecff1=0xce;}_0xb5b9cf[_0x25b1('0x1a')](_0x4ecff1);return _0xb5b9cf['set'](_0x25b1('0x1f'),_0x27ccc9+'-'+_0x2a7d14+'/'+_0x2ca567)['json'](_0xe32e02);}return null;};}function patchUpdates(_0x3bfd7d){return function(_0x59aa37){try{jsonpatch[_0x25b1('0x20')](_0x59aa37,_0x3bfd7d,!![]);}catch(_0x529310){return BPromise[_0x25b1('0x21')](_0x529310);}return _0x59aa37['save']();};}function saveUpdates(_0x4e3f48,_0x565cfd){return function(_0x3bca9f){if(_0x3bca9f){return _0x3bca9f[_0x25b1('0x22')](_0x4e3f48)['then'](function(_0x19bab8){return _0x19bab8;});}return null;};}function removeEntity(_0x26b555,_0x1e5915){return function(_0x246acd){if(_0x246acd){return _0x246acd[_0x25b1('0x23')]()['then'](function(){_0x26b555[_0x25b1('0x1a')](0xcc)[_0x25b1('0x1b')]();});}};}function handleEntityNotFound(_0xd22469,_0x282187){return function(_0x1f37ed){if(!_0x1f37ed){_0xd22469[_0x25b1('0x19')](0x194);}return _0x1f37ed;};}function handleError(_0x5d9ed7,_0x3c05c6){_0x3c05c6=_0x3c05c6||0x1f4;return function(_0x27dd68){logger[_0x25b1('0x24')](_0x27dd68['stack']);if(_0x27dd68[_0x25b1('0x25')]){delete _0x27dd68[_0x25b1('0x25')];}_0x5d9ed7[_0x25b1('0x1a')](_0x3c05c6)['send'](_0x27dd68);};}exports[_0x25b1('0x26')]=function(_0x54ce2d,_0x19ecd1){var _0x3febb8={},_0x3a4475={},_0x293413={'count':0x0,'rows':[]};var _0x362118=_[_0x25b1('0x27')](db[_0x25b1('0x28')]['rawAttributes'],function(_0x30d455){return{'name':_0x30d455[_0x25b1('0x29')],'type':_0x30d455[_0x25b1('0x2a')][_0x25b1('0x2b')]};});_0x3a4475[_0x25b1('0x2c')]=_['map'](_0x362118,_0x25b1('0x25'));_0x3a4475[_0x25b1('0x2d')]=_[_0x25b1('0x2e')](_0x54ce2d[_0x25b1('0x2d')]);_0x3a4475[_0x25b1('0x2f')]=_['intersection'](_0x3a4475['model'],_0x3a4475[_0x25b1('0x2d')]);_0x3febb8['attributes']=_[_0x25b1('0x30')](_0x3a4475[_0x25b1('0x2c')],qs[_0x25b1('0x31')](_0x54ce2d['query']['fields']));_0x3febb8[_0x25b1('0x32')]=_0x3febb8[_0x25b1('0x32')][_0x25b1('0x33')]?_0x3febb8['attributes']:_0x3a4475[_0x25b1('0x2c')];if(!_0x54ce2d[_0x25b1('0x2d')][_0x25b1('0x34')](_0x25b1('0x35'))){_0x3febb8['limit']=qs[_0x25b1('0x36')](_0x54ce2d[_0x25b1('0x2d')][_0x25b1('0x36')]);_0x3febb8['offset']=qs['offset'](_0x54ce2d[_0x25b1('0x2d')]['offset']);}_0x3febb8[_0x25b1('0x37')]=qs[_0x25b1('0x38')](_0x54ce2d[_0x25b1('0x2d')][_0x25b1('0x38')]);_0x3febb8[_0x25b1('0x39')]=qs[_0x25b1('0x2f')](_[_0x25b1('0x3a')](_0x54ce2d[_0x25b1('0x2d')],_0x3a4475[_0x25b1('0x2f')]),_0x362118);if(_0x54ce2d[_0x25b1('0x2d')][_0x25b1('0x3b')]){_0x3febb8[_0x25b1('0x39')]=_[_0x25b1('0x3c')](_0x3febb8[_0x25b1('0x39')],{'$or':_[_0x25b1('0x27')](_0x362118,function(_0x4837d5){if(_0x4837d5[_0x25b1('0x2a')]!==_0x25b1('0x3d')){var _0x53423d={};_0x53423d[_0x4837d5[_0x25b1('0x25')]]={'$like':'%'+_0x54ce2d[_0x25b1('0x2d')][_0x25b1('0x3b')]+'%'};return _0x53423d;}})});}_0x3febb8=_[_0x25b1('0x3c')]({},_0x3febb8,_0x54ce2d[_0x25b1('0x3e')]);var _0x5bdefd={'where':_0x3febb8[_0x25b1('0x39')]};return db['WhatsappQueueReport'][_0x25b1('0x1d')](_0x5bdefd)['then'](function(_0x2e8747){_0x293413[_0x25b1('0x1d')]=_0x2e8747;if(_0x54ce2d[_0x25b1('0x2d')][_0x25b1('0x3f')]){_0x3febb8[_0x25b1('0x40')]=[{'all':!![]}];}return db[_0x25b1('0x28')][_0x25b1('0x41')](_0x3febb8);})[_0x25b1('0x42')](function(_0x3f9754){_0x293413['rows']=_0x3f9754;return _0x293413;})[_0x25b1('0x42')](respondWithFilteredResult(_0x19ecd1,_0x3febb8))['catch'](handleError(_0x19ecd1,null));};exports[_0x25b1('0x43')]=function(_0x2f56ac,_0x4d4e32){var _0x52d3f8={'raw':!![],'where':{'id':_0x2f56ac[_0x25b1('0x44')]['id']}},_0x39b4c7={};_0x39b4c7[_0x25b1('0x2c')]=_[_0x25b1('0x2e')](db[_0x25b1('0x28')][_0x25b1('0x45')]);_0x39b4c7[_0x25b1('0x2d')]=_[_0x25b1('0x2e')](_0x2f56ac[_0x25b1('0x2d')]);_0x39b4c7[_0x25b1('0x2f')]=_[_0x25b1('0x30')](_0x39b4c7[_0x25b1('0x2c')],_0x39b4c7[_0x25b1('0x2d')]);_0x52d3f8[_0x25b1('0x32')]=_[_0x25b1('0x30')](_0x39b4c7[_0x25b1('0x2c')],qs[_0x25b1('0x31')](_0x2f56ac['query']['fields']));_0x52d3f8['attributes']=_0x52d3f8[_0x25b1('0x32')]['length']?_0x52d3f8[_0x25b1('0x32')]:_0x39b4c7['model'];if(_0x2f56ac[_0x25b1('0x2d')][_0x25b1('0x3f')]){_0x52d3f8[_0x25b1('0x40')]=[{'all':!![]}];}_0x52d3f8=_[_0x25b1('0x3c')]({},_0x52d3f8,_0x2f56ac[_0x25b1('0x3e')]);return db[_0x25b1('0x28')]['find'](_0x52d3f8)[_0x25b1('0x42')](handleEntityNotFound(_0x4d4e32,null))[_0x25b1('0x42')](respondWithResult(_0x4d4e32,null))[_0x25b1('0x46')](handleError(_0x4d4e32,null));};exports[_0x25b1('0x47')]=function(_0x58ae67,_0x489f73){return db[_0x25b1('0x28')][_0x25b1('0x47')](_0x58ae67['body'],{})[_0x25b1('0x42')](respondWithResult(_0x489f73,0xc9))['catch'](handleError(_0x489f73,null));};exports[_0x25b1('0x22')]=function(_0x4b6181,_0x543f9b){if(_0x4b6181[_0x25b1('0x48')]['id']){delete _0x4b6181[_0x25b1('0x48')]['id'];}return db[_0x25b1('0x28')][_0x25b1('0x49')]({'where':{'id':_0x4b6181['params']['id']}})[_0x25b1('0x42')](handleEntityNotFound(_0x543f9b,null))['then'](saveUpdates(_0x4b6181[_0x25b1('0x48')],null))['then'](respondWithResult(_0x543f9b,null))[_0x25b1('0x46')](handleError(_0x543f9b,null));};exports[_0x25b1('0x23')]=function(_0x1fcc79,_0x4fb92e){return db[_0x25b1('0x28')][_0x25b1('0x49')]({'where':{'id':_0x1fcc79[_0x25b1('0x44')]['id']}})[_0x25b1('0x42')](handleEntityNotFound(_0x4fb92e,null))[_0x25b1('0x42')](removeEntity(_0x4fb92e,null))[_0x25b1('0x46')](handleError(_0x4fb92e,null));};exports['describe']=function(_0x134c64,_0x133f50){return db[_0x25b1('0x28')][_0x25b1('0x4a')]()[_0x25b1('0x42')](respondWithResult(_0x133f50,null))[_0x25b1('0x46')](handleError(_0x133f50,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x15b9=['api','moment','request-promise','../../config/environment','./whatsappQueueReport.attributes','exports','define','report_whatsapp_queue','uniqueid','../../config/logger'];(function(_0x1256d5,_0x5862b8){var _0x246866=function(_0x3da346){while(--_0x3da346){_0x1256d5['push'](_0x1256d5['shift']());}};_0x246866(++_0x5862b8);}(_0x15b9,0x9f));var _0x915b=function(_0x516ffb,_0x5b5b42){_0x516ffb=_0x516ffb-0x0;var _0x319667=_0x15b9[_0x516ffb];return _0x319667;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x915b('0x0'))(_0x915b('0x1'));var moment=require(_0x915b('0x2'));var BPromise=require('bluebird');var rp=require(_0x915b('0x3'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0x915b('0x4'));var attributes=require(_0x915b('0x5'));module[_0x915b('0x6')]=function(_0x2dda50,_0x349a30){return _0x2dda50[_0x915b('0x7')]('WhatsappQueueReport',attributes,{'tableName':_0x915b('0x8'),'paranoid':![],'indexes':[{'name':_0x915b('0x9'),'fields':[_0x915b('0x9')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x6301=['api','moment','request-promise','path','rimraf','../../config/environment','./whatsappQueueReport.attributes','define','WhatsappQueueReport','report_whatsapp_queue','uniqueid','lodash','util'];(function(_0x2f34d1,_0x58872c){var _0xa1914=function(_0x7395b0){while(--_0x7395b0){_0x2f34d1['push'](_0x2f34d1['shift']());}};_0xa1914(++_0x58872c);}(_0x6301,0x136));var _0x1630=function(_0x1e7c2b,_0x4ca639){_0x1e7c2b=_0x1e7c2b-0x0;var _0x98b768=_0x6301[_0x1e7c2b];return _0x98b768;};'use strict';var _=require(_0x1630('0x0'));var util=require(_0x1630('0x1'));var logger=require('../../config/logger')(_0x1630('0x2'));var moment=require(_0x1630('0x3'));var BPromise=require('bluebird');var rp=require(_0x1630('0x4'));var fs=require('fs');var path=require(_0x1630('0x5'));var rimraf=require(_0x1630('0x6'));var config=require(_0x1630('0x7'));var attributes=require(_0x1630('0x8'));module['exports']=function(_0x28ab9d,_0x2425c0){return _0x28ab9d[_0x1630('0x9')](_0x1630('0xa'),attributes,{'tableName':_0x1630('0xb'),'paranoid':![],'indexes':[{'name':'uniqueid','fields':[_0x1630('0xc')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcc6d=['result','catch','CreateWhatsappQueueReport','WhatsappQueueReport','create','body','options','update','raw','where','limit','UpdateWhatsappQueueReport','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','request','then','info','WhatsappQueueReport,\x20%s,\x20%s','request\x20sent','debug','WhatsappQueueReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message'];(function(_0x15a1d6,_0xa157f){var _0x1edfb0=function(_0x1f7a28){while(--_0x1f7a28){_0x15a1d6['push'](_0x15a1d6['shift']());}};_0x1edfb0(++_0xa157f);}(_0xcc6d,0x9c));var _0xdcc6=function(_0x2e2358,_0x2f8273){_0x2e2358=_0x2e2358-0x0;var _0x57c517=_0xcc6d[_0x2e2358];return _0x57c517;};'use strict';var _=require(_0xdcc6('0x0'));var util=require(_0xdcc6('0x1'));var moment=require(_0xdcc6('0x2'));var BPromise=require(_0xdcc6('0x3'));var rs=require(_0xdcc6('0x4'));var fs=require('fs');var Redis=require(_0xdcc6('0x5'));var db=require(_0xdcc6('0x6'))['db'];var utils=require(_0xdcc6('0x7'));var logger=require(_0xdcc6('0x8'))(_0xdcc6('0x9'));var config=require(_0xdcc6('0xa'));var jayson=require(_0xdcc6('0xb'));var client=jayson['client'][_0xdcc6('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x1e158f,_0xdf61fa,_0x9bc30d){return new BPromise(function(_0x426f99,_0x5eee77){return client[_0xdcc6('0xd')](_0x1e158f,_0x9bc30d)[_0xdcc6('0xe')](function(_0x2149d1){logger[_0xdcc6('0xf')](_0xdcc6('0x10'),_0xdf61fa,_0xdcc6('0x11'));logger[_0xdcc6('0x12')](_0xdcc6('0x13'),_0xdf61fa,'request\x20sent',JSON[_0xdcc6('0x14')](_0x2149d1));if(_0x2149d1[_0xdcc6('0x15')]){if(_0x2149d1[_0xdcc6('0x15')][_0xdcc6('0x16')]===0x1f4){logger[_0xdcc6('0x15')](_0xdcc6('0x10'),_0xdf61fa,_0x2149d1['error'][_0xdcc6('0x17')]);return _0x5eee77(_0x2149d1[_0xdcc6('0x15')][_0xdcc6('0x17')]);}logger[_0xdcc6('0x15')]('WhatsappQueueReport,\x20%s,\x20%s',_0xdf61fa,_0x2149d1[_0xdcc6('0x15')][_0xdcc6('0x17')]);return _0x426f99(_0x2149d1['error'][_0xdcc6('0x17')]);}else{logger[_0xdcc6('0xf')](_0xdcc6('0x10'),_0xdf61fa,_0xdcc6('0x11'));_0x426f99(_0x2149d1[_0xdcc6('0x18')]['message']);}})[_0xdcc6('0x19')](function(_0x3b2de5){logger[_0xdcc6('0x15')]('WhatsappQueueReport,\x20%s,\x20%s',_0xdf61fa,_0x3b2de5);_0x5eee77(_0x3b2de5);});});}exports[_0xdcc6('0x1a')]=function(_0x5305a0){var _0x75c34=this;return new Promise(function(_0x2b7e87,_0x8c8fe7){return db[_0xdcc6('0x1b')][_0xdcc6('0x1c')](_0x5305a0[_0xdcc6('0x1d')],{'raw':_0x5305a0[_0xdcc6('0x1e')]?_0x5305a0['options']['raw']===undefined?!![]:![]:!![]})[_0xdcc6('0xe')](function(_0xe875a4){logger[_0xdcc6('0xf')]('CreateWhatsappQueueReport',_0x5305a0);logger[_0xdcc6('0x12')](_0xdcc6('0x1a'),_0x5305a0,JSON[_0xdcc6('0x14')](_0xe875a4));_0x2b7e87(_0xe875a4);})[_0xdcc6('0x19')](function(_0x49defa){logger['error']('CreateWhatsappQueueReport',_0x49defa[_0xdcc6('0x17')],_0x5305a0);_0x8c8fe7(_0x75c34[_0xdcc6('0x15')](0x1f4,_0x49defa[_0xdcc6('0x17')]));});});};exports['UpdateWhatsappQueueReport']=function(_0x25e619){var _0x1190e2=this;return new Promise(function(_0x47fe45,_0x5156e2){return db[_0xdcc6('0x1b')][_0xdcc6('0x1f')](_0x25e619[_0xdcc6('0x1d')],{'raw':_0x25e619['options']?_0x25e619[_0xdcc6('0x1e')][_0xdcc6('0x20')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x25e619[_0xdcc6('0x1e')]?_0x25e619[_0xdcc6('0x1e')][_0xdcc6('0x21')]||null:null,'attributes':_0x25e619[_0xdcc6('0x1e')]?_0x25e619[_0xdcc6('0x1e')]['attributes']||null:null,'limit':_0x25e619[_0xdcc6('0x1e')]?_0x25e619['options'][_0xdcc6('0x22')]||null:null})[_0xdcc6('0xe')](function(_0xfdea7e){logger[_0xdcc6('0xf')](_0xdcc6('0x23'),_0x25e619);logger[_0xdcc6('0x12')](_0xdcc6('0x23'),_0x25e619,JSON[_0xdcc6('0x14')](_0xfdea7e));_0x47fe45(_0xfdea7e);})[_0xdcc6('0x19')](function(_0x5a807a){logger['error'](_0xdcc6('0x23'),_0x5a807a[_0xdcc6('0x17')],_0x25e619);_0x5156e2(_0x1190e2[_0xdcc6('0x15')](0x1f4,_0x5a807a['message']));});});};
\ No newline at end of file
+var _0x179b=['stringify','error','code','message','result','WhatsappQueueReport','create','body','options','raw','CreateWhatsappQueueReport','catch','UpdateWhatsappQueueReport','update','where','attributes','limit','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','WhatsappQueueReport,\x20%s,\x20%s','debug','WhatsappQueueReport,\x20%s,\x20%s,\x20%s','request\x20sent'];(function(_0x1615b1,_0x38b461){var _0x2a7906=function(_0x1f9edd){while(--_0x1f9edd){_0x1615b1['push'](_0x1615b1['shift']());}};_0x2a7906(++_0x38b461);}(_0x179b,0x1cd));var _0xb179=function(_0x45fc6a,_0x166adb){_0x45fc6a=_0x45fc6a-0x0;var _0x14bcfd=_0x179b[_0x45fc6a];return _0x14bcfd;};'use strict';var _=require(_0xb179('0x0'));var util=require(_0xb179('0x1'));var moment=require(_0xb179('0x2'));var BPromise=require(_0xb179('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xb179('0x4'));var db=require(_0xb179('0x5'))['db'];var utils=require(_0xb179('0x6'));var logger=require(_0xb179('0x7'))(_0xb179('0x8'));var config=require(_0xb179('0x9'));var jayson=require(_0xb179('0xa'));var client=jayson[_0xb179('0xb')][_0xb179('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x275eb3,_0x2586bf,_0x499994){return new BPromise(function(_0x530db1,_0x3e0e91){return client[_0xb179('0xd')](_0x275eb3,_0x499994)[_0xb179('0xe')](function(_0x437757){logger[_0xb179('0xf')](_0xb179('0x10'),_0x2586bf,'request\x20sent');logger[_0xb179('0x11')](_0xb179('0x12'),_0x2586bf,_0xb179('0x13'),JSON[_0xb179('0x14')](_0x437757));if(_0x437757[_0xb179('0x15')]){if(_0x437757['error'][_0xb179('0x16')]===0x1f4){logger[_0xb179('0x15')]('WhatsappQueueReport,\x20%s,\x20%s',_0x2586bf,_0x437757['error']['message']);return _0x3e0e91(_0x437757[_0xb179('0x15')][_0xb179('0x17')]);}logger[_0xb179('0x15')](_0xb179('0x10'),_0x2586bf,_0x437757['error']['message']);return _0x530db1(_0x437757['error'][_0xb179('0x17')]);}else{logger[_0xb179('0xf')](_0xb179('0x10'),_0x2586bf,_0xb179('0x13'));_0x530db1(_0x437757[_0xb179('0x18')][_0xb179('0x17')]);}})['catch'](function(_0x584928){logger[_0xb179('0x15')](_0xb179('0x10'),_0x2586bf,_0x584928);_0x3e0e91(_0x584928);});});}exports['CreateWhatsappQueueReport']=function(_0xc9d7a4){var _0x937090=this;return new Promise(function(_0x5d2c60,_0x1d31e3){return db[_0xb179('0x19')][_0xb179('0x1a')](_0xc9d7a4[_0xb179('0x1b')],{'raw':_0xc9d7a4[_0xb179('0x1c')]?_0xc9d7a4[_0xb179('0x1c')][_0xb179('0x1d')]===undefined?!![]:![]:!![]})[_0xb179('0xe')](function(_0x3a85fd){logger[_0xb179('0xf')](_0xb179('0x1e'),_0xc9d7a4);logger[_0xb179('0x11')]('CreateWhatsappQueueReport',_0xc9d7a4,JSON['stringify'](_0x3a85fd));_0x5d2c60(_0x3a85fd);})[_0xb179('0x1f')](function(_0x473b34){logger['error'](_0xb179('0x1e'),_0x473b34[_0xb179('0x17')],_0xc9d7a4);_0x1d31e3(_0x937090[_0xb179('0x15')](0x1f4,_0x473b34[_0xb179('0x17')]));});});};exports[_0xb179('0x20')]=function(_0x39ef3c){var _0x4b4061=this;return new Promise(function(_0x3ea92c,_0x55a3a4){return db['WhatsappQueueReport'][_0xb179('0x21')](_0x39ef3c[_0xb179('0x1b')],{'raw':_0x39ef3c['options']?_0x39ef3c[_0xb179('0x1c')][_0xb179('0x1d')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x39ef3c[_0xb179('0x1c')]?_0x39ef3c[_0xb179('0x1c')][_0xb179('0x22')]||null:null,'attributes':_0x39ef3c['options']?_0x39ef3c[_0xb179('0x1c')][_0xb179('0x23')]||null:null,'limit':_0x39ef3c[_0xb179('0x1c')]?_0x39ef3c[_0xb179('0x1c')][_0xb179('0x24')]||null:null})[_0xb179('0xe')](function(_0xf3e19){logger[_0xb179('0xf')](_0xb179('0x20'),_0x39ef3c);logger[_0xb179('0x11')](_0xb179('0x20'),_0x39ef3c,JSON['stringify'](_0xf3e19));_0x3ea92c(_0xf3e19);})[_0xb179('0x1f')](function(_0x481313){logger[_0xb179('0x15')](_0xb179('0x20'),_0x481313['message'],_0x39ef3c);_0x55a3a4(_0x4b4061[_0xb179('0x15')](0x1f4,_0x481313['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc975=['exports','multer','util','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./whatsappTransferReport.controller','get','isAuthenticated','index','/describe','describe','/:id','show','post','create','put','delete','destroy'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0xc975,0xb9));var _0x5c97=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0xc975[_0x321bb2];return _0x9c12ed;};'use strict';var multer=require(_0x5c97('0x0'));var util=require(_0x5c97('0x1'));var path=require('path');var timeout=require(_0x5c97('0x2'));var express=require(_0x5c97('0x3'));var router=express[_0x5c97('0x4')]();var fs_extra=require(_0x5c97('0x5'));var auth=require(_0x5c97('0x6'));var interaction=require(_0x5c97('0x7'));var config=require(_0x5c97('0x8'));var controller=require(_0x5c97('0x9'));router[_0x5c97('0xa')]('/',auth[_0x5c97('0xb')](),controller[_0x5c97('0xc')]);router[_0x5c97('0xa')](_0x5c97('0xd'),auth[_0x5c97('0xb')](),controller[_0x5c97('0xe')]);router['get'](_0x5c97('0xf'),auth[_0x5c97('0xb')](),controller[_0x5c97('0x10')]);router[_0x5c97('0x11')]('/',auth[_0x5c97('0xb')](),controller[_0x5c97('0x12')]);router[_0x5c97('0x13')]('/:id',auth[_0x5c97('0xb')](),controller['update']);router[_0x5c97('0x14')](_0x5c97('0xf'),auth[_0x5c97('0xb')](),controller[_0x5c97('0x15')]);module[_0x5c97('0x16')]=router;
\ No newline at end of file
+var _0xef0c=['get','isAuthenticated','index','/describe','describe','/:id','show','post','put','update','delete','multer','util','path','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./whatsappTransferReport.controller'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xef0c,0x170));var _0xcef0=function(_0x1195a6,_0x210f51){_0x1195a6=_0x1195a6-0x0;var _0x5c1805=_0xef0c[_0x1195a6];return _0x5c1805;};'use strict';var multer=require(_0xcef0('0x0'));var util=require(_0xcef0('0x1'));var path=require(_0xcef0('0x2'));var timeout=require('connect-timeout');var express=require(_0xcef0('0x3'));var router=express[_0xcef0('0x4')]();var fs_extra=require(_0xcef0('0x5'));var auth=require(_0xcef0('0x6'));var interaction=require(_0xcef0('0x7'));var config=require(_0xcef0('0x8'));var controller=require(_0xcef0('0x9'));router[_0xcef0('0xa')]('/',auth[_0xcef0('0xb')](),controller[_0xcef0('0xc')]);router[_0xcef0('0xa')](_0xcef0('0xd'),auth['isAuthenticated'](),controller[_0xcef0('0xe')]);router[_0xcef0('0xa')](_0xcef0('0xf'),auth[_0xcef0('0xb')](),controller[_0xcef0('0x10')]);router[_0xcef0('0x11')]('/',auth['isAuthenticated'](),controller['create']);router[_0xcef0('0x12')]('/:id',auth['isAuthenticated'](),controller[_0xcef0('0x13')]);router[_0xcef0('0x14')](_0xcef0('0xf'),auth['isAuthenticated'](),controller['destroy']);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfff0=['DATE','exports','STRING','ENUM','agent','queue'];(function(_0x2f6271,_0x22ff45){var _0x2fb7f0=function(_0x427720){while(--_0x427720){_0x2f6271['push'](_0x2f6271['shift']());}};_0x2fb7f0(++_0x22ff45);}(_0xfff0,0x139));var _0x0fff=function(_0x4ea491,_0x3f9095){_0x4ea491=_0x4ea491-0x0;var _0x2acc1e=_0xfff0[_0x4ea491];return _0x2acc1e;};'use strict';var Sequelize=require('sequelize');module[_0x0fff('0x0')]={'uniqueid':{'type':Sequelize[_0x0fff('0x1')],'allowNull':![]},'type':{'type':Sequelize[_0x0fff('0x2')]('account',_0x0fff('0x3'),_0x0fff('0x4')),'allowNull':![]},'transferredAt':{'type':Sequelize[_0x0fff('0x5')]}};
\ No newline at end of file
+var _0xd844=['exports','ENUM','account','DATE','sequelize'];(function(_0x4b2251,_0x393f10){var _0x5d22fb=function(_0x10992c){while(--_0x10992c){_0x4b2251['push'](_0x4b2251['shift']());}};_0x5d22fb(++_0x393f10);}(_0xd844,0x6d));var _0x4d84=function(_0x4a9fb1,_0x273043){_0x4a9fb1=_0x4a9fb1-0x0;var _0x348672=_0xd844[_0x4a9fb1];return _0x348672;};'use strict';var Sequelize=require(_0x4d84('0x0'));module[_0x4d84('0x1')]={'uniqueid':{'type':Sequelize['STRING'],'allowNull':![]},'type':{'type':Sequelize[_0x4d84('0x2')](_0x4d84('0x3'),'agent','queue'),'allowNull':![]},'transferredAt':{'type':Sequelize[_0x4d84('0x4')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xba31=['nolimit','limit','order','sort','where','pick','merge','VIRTUAL','filter','options','include','rows','catch','show','params','rawAttributes','keys','length','includeAll','create','body','find','destroy','describe','rimraf','moment','bluebird','mustache','util','path','sox','ejs','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','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','offset','undefined','count','set','Content-Range','json','apply','reject','save','update','then','error','stack','name','send','index','map','WhatsappTransferReport','type','key','model','query','filters','intersection','attributes','fields','hasOwnProperty'];(function(_0x587a94,_0x44c45b){var _0x537b9f=function(_0x26371e){while(--_0x26371e){_0x587a94['push'](_0x587a94['shift']());}};_0x537b9f(++_0x44c45b);}(_0xba31,0x19e));var _0x1ba3=function(_0x42bafd,_0x3f0fe3){_0x42bafd=_0x42bafd-0x0;var _0x2ed705=_0xba31[_0x42bafd];return _0x2ed705;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x1ba3('0x0'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x1ba3('0x1'));var BPromise=require(_0x1ba3('0x2'));var Mustache=require(_0x1ba3('0x3'));var util=require(_0x1ba3('0x4'));var path=require(_0x1ba3('0x5'));var sox=require(_0x1ba3('0x6'));var csv=require('to-csv');var ejs=require(_0x1ba3('0x7'));var fs=require('fs');var fs_extra=require(_0x1ba3('0x8'));var _=require('lodash');var squel=require(_0x1ba3('0x9'));var crypto=require(_0x1ba3('0xa'));var jsforce=require(_0x1ba3('0xb'));var deskjs=require(_0x1ba3('0xc'));var toCsv=require(_0x1ba3('0xd'));var querystring=require(_0x1ba3('0xe'));var Papa=require(_0x1ba3('0xf'));var Redis=require(_0x1ba3('0x10'));var authService=require(_0x1ba3('0x11'));var qs=require(_0x1ba3('0x12'));var as=require(_0x1ba3('0x13'));var hardwareService=require(_0x1ba3('0x14'));var logger=require(_0x1ba3('0x15'))('api');var utils=require('../../config/utils');var config=require(_0x1ba3('0x16'));var licenseUtil=require(_0x1ba3('0x17'));var db=require(_0x1ba3('0x18'))['db'];function respondWithStatusCode(_0x576f74,_0x4fa020){_0x4fa020=_0x4fa020||0xcc;return function(_0x4e4798){if(_0x4e4798){return _0x576f74[_0x1ba3('0x19')](_0x4fa020);}return _0x576f74['status'](_0x4fa020)['end']();};}function respondWithResult(_0xc84471,_0x1f36ca){_0x1f36ca=_0x1f36ca||0xc8;return function(_0x26d270){if(_0x26d270){return _0xc84471[_0x1ba3('0x1a')](_0x1f36ca)['json'](_0x26d270);}};}function respondWithFilteredResult(_0x4b3c20,_0x882fd){return function(_0x487a24){if(_0x487a24){var _0x271568=typeof _0x882fd[_0x1ba3('0x1b')]===_0x1ba3('0x1c')&&typeof _0x882fd['limit']===_0x1ba3('0x1c');var _0x5c70f0=_0x487a24[_0x1ba3('0x1d')];var _0x2b740f=_0x271568?0x0:_0x882fd[_0x1ba3('0x1b')];var _0x1aea2b=_0x271568?_0x487a24[_0x1ba3('0x1d')]:_0x882fd['offset']+_0x882fd['limit'];var _0x49229c;if(_0x1aea2b>=_0x5c70f0){_0x1aea2b=_0x5c70f0;_0x49229c=0xc8;}else{_0x49229c=0xce;}_0x4b3c20[_0x1ba3('0x1a')](_0x49229c);return _0x4b3c20[_0x1ba3('0x1e')](_0x1ba3('0x1f'),_0x2b740f+'-'+_0x1aea2b+'/'+_0x5c70f0)[_0x1ba3('0x20')](_0x487a24);}return null;};}function patchUpdates(_0xf3ae7e){return function(_0x487f28){try{jsonpatch[_0x1ba3('0x21')](_0x487f28,_0xf3ae7e,!![]);}catch(_0x141878){return BPromise[_0x1ba3('0x22')](_0x141878);}return _0x487f28[_0x1ba3('0x23')]();};}function saveUpdates(_0x3f607f,_0x387bf8){return function(_0xca4694){if(_0xca4694){return _0xca4694[_0x1ba3('0x24')](_0x3f607f)[_0x1ba3('0x25')](function(_0x2af67a){return _0x2af67a;});}return null;};}function removeEntity(_0x28b741,_0x8e73a1){return function(_0x171092){if(_0x171092){return _0x171092['destroy']()['then'](function(){_0x28b741[_0x1ba3('0x1a')](0xcc)['end']();});}};}function handleEntityNotFound(_0x9d477e,_0x3565dd){return function(_0x14cbe3){if(!_0x14cbe3){_0x9d477e['sendStatus'](0x194);}return _0x14cbe3;};}function handleError(_0x3a6655,_0x297e7d){_0x297e7d=_0x297e7d||0x1f4;return function(_0x414896){logger[_0x1ba3('0x26')](_0x414896[_0x1ba3('0x27')]);if(_0x414896[_0x1ba3('0x28')]){delete _0x414896[_0x1ba3('0x28')];}_0x3a6655[_0x1ba3('0x1a')](_0x297e7d)[_0x1ba3('0x29')](_0x414896);};}exports[_0x1ba3('0x2a')]=function(_0x1ba836,_0x53e813){var _0x34b509={},_0x4be681={},_0x34b699={'count':0x0,'rows':[]};var _0x89673b=_[_0x1ba3('0x2b')](db[_0x1ba3('0x2c')]['rawAttributes'],function(_0x53f7a1){return{'name':_0x53f7a1['fieldName'],'type':_0x53f7a1[_0x1ba3('0x2d')][_0x1ba3('0x2e')]};});_0x4be681[_0x1ba3('0x2f')]=_[_0x1ba3('0x2b')](_0x89673b,_0x1ba3('0x28'));_0x4be681[_0x1ba3('0x30')]=_['keys'](_0x1ba836[_0x1ba3('0x30')]);_0x4be681[_0x1ba3('0x31')]=_[_0x1ba3('0x32')](_0x4be681[_0x1ba3('0x2f')],_0x4be681['query']);_0x34b509[_0x1ba3('0x33')]=_['intersection'](_0x4be681[_0x1ba3('0x2f')],qs[_0x1ba3('0x34')](_0x1ba836[_0x1ba3('0x30')][_0x1ba3('0x34')]));_0x34b509[_0x1ba3('0x33')]=_0x34b509['attributes']['length']?_0x34b509[_0x1ba3('0x33')]:_0x4be681[_0x1ba3('0x2f')];if(!_0x1ba836['query'][_0x1ba3('0x35')](_0x1ba3('0x36'))){_0x34b509[_0x1ba3('0x37')]=qs[_0x1ba3('0x37')](_0x1ba836[_0x1ba3('0x30')]['limit']);_0x34b509['offset']=qs[_0x1ba3('0x1b')](_0x1ba836['query'][_0x1ba3('0x1b')]);}_0x34b509[_0x1ba3('0x38')]=qs[_0x1ba3('0x39')](_0x1ba836[_0x1ba3('0x30')][_0x1ba3('0x39')]);_0x34b509[_0x1ba3('0x3a')]=qs['filters'](_[_0x1ba3('0x3b')](_0x1ba836[_0x1ba3('0x30')],_0x4be681[_0x1ba3('0x31')]),_0x89673b);if(_0x1ba836['query']['filter']){_0x34b509[_0x1ba3('0x3a')]=_[_0x1ba3('0x3c')](_0x34b509[_0x1ba3('0x3a')],{'$or':_[_0x1ba3('0x2b')](_0x89673b,function(_0xedba7){if(_0xedba7[_0x1ba3('0x2d')]!==_0x1ba3('0x3d')){var _0x11fb74={};_0x11fb74[_0xedba7[_0x1ba3('0x28')]]={'$like':'%'+_0x1ba836[_0x1ba3('0x30')][_0x1ba3('0x3e')]+'%'};return _0x11fb74;}})});}_0x34b509=_['merge']({},_0x34b509,_0x1ba836[_0x1ba3('0x3f')]);var _0x17dcb0={'where':_0x34b509[_0x1ba3('0x3a')]};return db['WhatsappTransferReport'][_0x1ba3('0x1d')](_0x17dcb0)[_0x1ba3('0x25')](function(_0x36b722){_0x34b699[_0x1ba3('0x1d')]=_0x36b722;if(_0x1ba836['query']['includeAll']){_0x34b509[_0x1ba3('0x40')]=[{'all':!![]}];}return db[_0x1ba3('0x2c')]['findAll'](_0x34b509);})[_0x1ba3('0x25')](function(_0x1302ff){_0x34b699[_0x1ba3('0x41')]=_0x1302ff;return _0x34b699;})[_0x1ba3('0x25')](respondWithFilteredResult(_0x53e813,_0x34b509))[_0x1ba3('0x42')](handleError(_0x53e813,null));};exports[_0x1ba3('0x43')]=function(_0x11d4de,_0x2ce947){var _0x3ae51a={'raw':!![],'where':{'id':_0x11d4de[_0x1ba3('0x44')]['id']}},_0x4a77d5={};_0x4a77d5[_0x1ba3('0x2f')]=_['keys'](db[_0x1ba3('0x2c')][_0x1ba3('0x45')]);_0x4a77d5[_0x1ba3('0x30')]=_[_0x1ba3('0x46')](_0x11d4de['query']);_0x4a77d5[_0x1ba3('0x31')]=_[_0x1ba3('0x32')](_0x4a77d5[_0x1ba3('0x2f')],_0x4a77d5[_0x1ba3('0x30')]);_0x3ae51a[_0x1ba3('0x33')]=_[_0x1ba3('0x32')](_0x4a77d5[_0x1ba3('0x2f')],qs[_0x1ba3('0x34')](_0x11d4de[_0x1ba3('0x30')][_0x1ba3('0x34')]));_0x3ae51a[_0x1ba3('0x33')]=_0x3ae51a[_0x1ba3('0x33')][_0x1ba3('0x47')]?_0x3ae51a[_0x1ba3('0x33')]:_0x4a77d5[_0x1ba3('0x2f')];if(_0x11d4de[_0x1ba3('0x30')][_0x1ba3('0x48')]){_0x3ae51a[_0x1ba3('0x40')]=[{'all':!![]}];}_0x3ae51a=_[_0x1ba3('0x3c')]({},_0x3ae51a,_0x11d4de[_0x1ba3('0x3f')]);return db[_0x1ba3('0x2c')]['find'](_0x3ae51a)[_0x1ba3('0x25')](handleEntityNotFound(_0x2ce947,null))[_0x1ba3('0x25')](respondWithResult(_0x2ce947,null))['catch'](handleError(_0x2ce947,null));};exports[_0x1ba3('0x49')]=function(_0xc709bf,_0x4fbc01){return db[_0x1ba3('0x2c')][_0x1ba3('0x49')](_0xc709bf[_0x1ba3('0x4a')],{})[_0x1ba3('0x25')](respondWithResult(_0x4fbc01,0xc9))[_0x1ba3('0x42')](handleError(_0x4fbc01,null));};exports['update']=function(_0x1dac75,_0x2d2be9){if(_0x1dac75['body']['id']){delete _0x1dac75[_0x1ba3('0x4a')]['id'];}return db[_0x1ba3('0x2c')][_0x1ba3('0x4b')]({'where':{'id':_0x1dac75[_0x1ba3('0x44')]['id']}})[_0x1ba3('0x25')](handleEntityNotFound(_0x2d2be9,null))[_0x1ba3('0x25')](saveUpdates(_0x1dac75['body'],null))[_0x1ba3('0x25')](respondWithResult(_0x2d2be9,null))['catch'](handleError(_0x2d2be9,null));};exports[_0x1ba3('0x4c')]=function(_0xa39e60,_0x304c1a){return db[_0x1ba3('0x2c')]['find']({'where':{'id':_0xa39e60[_0x1ba3('0x44')]['id']}})[_0x1ba3('0x25')](handleEntityNotFound(_0x304c1a,null))[_0x1ba3('0x25')](removeEntity(_0x304c1a,null))[_0x1ba3('0x42')](handleError(_0x304c1a,null));};exports[_0x1ba3('0x4d')]=function(_0x475eab,_0x10fb3f){return db[_0x1ba3('0x2c')][_0x1ba3('0x4d')]()[_0x1ba3('0x25')](respondWithResult(_0x10fb3f,null))[_0x1ba3('0x42')](handleError(_0x10fb3f,null));};
\ No newline at end of file
+var _0xfb54=['reject','save','update','then','destroy','error','stack','name','index','map','WhatsappTransferReport','rawAttributes','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','findAll','catch','show','params','include','find','create','body','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','json','apply'];(function(_0x23ca26,_0x1bede8){var _0x4230e3=function(_0x40406a){while(--_0x40406a){_0x23ca26['push'](_0x23ca26['shift']());}};_0x4230e3(++_0x1bede8);}(_0xfb54,0x116));var _0x4fb5=function(_0x58d843,_0x57e7c8){_0x58d843=_0x58d843-0x0;var _0x3c0648=_0xfb54[_0x58d843];return _0x3c0648;};'use strict';var emlformat=require(_0x4fb5('0x0'));var rimraf=require(_0x4fb5('0x1'));var zipdir=require(_0x4fb5('0x2'));var jsonpatch=require(_0x4fb5('0x3'));var rp=require(_0x4fb5('0x4'));var moment=require(_0x4fb5('0x5'));var BPromise=require(_0x4fb5('0x6'));var Mustache=require(_0x4fb5('0x7'));var util=require(_0x4fb5('0x8'));var path=require(_0x4fb5('0x9'));var sox=require(_0x4fb5('0xa'));var csv=require(_0x4fb5('0xb'));var ejs=require(_0x4fb5('0xc'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x4fb5('0xd'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x4fb5('0xe'));var deskjs=require(_0x4fb5('0xf'));var toCsv=require(_0x4fb5('0xb'));var querystring=require(_0x4fb5('0x10'));var Papa=require(_0x4fb5('0x11'));var Redis=require(_0x4fb5('0x12'));var authService=require(_0x4fb5('0x13'));var qs=require(_0x4fb5('0x14'));var as=require(_0x4fb5('0x15'));var hardwareService=require(_0x4fb5('0x16'));var logger=require('../../config/logger')(_0x4fb5('0x17'));var utils=require('../../config/utils');var config=require(_0x4fb5('0x18'));var licenseUtil=require(_0x4fb5('0x19'));var db=require(_0x4fb5('0x1a'))['db'];function respondWithStatusCode(_0x13a6ed,_0x5bd7c5){_0x5bd7c5=_0x5bd7c5||0xcc;return function(_0x226e33){if(_0x226e33){return _0x13a6ed[_0x4fb5('0x1b')](_0x5bd7c5);}return _0x13a6ed[_0x4fb5('0x1c')](_0x5bd7c5)[_0x4fb5('0x1d')]();};}function respondWithResult(_0x49d6d2,_0x48fff5){_0x48fff5=_0x48fff5||0xc8;return function(_0x50fcaa){if(_0x50fcaa){return _0x49d6d2[_0x4fb5('0x1c')](_0x48fff5)['json'](_0x50fcaa);}};}function respondWithFilteredResult(_0x3137f9,_0x46eb7b){return function(_0x546728){if(_0x546728){var _0x9fbd9a=typeof _0x46eb7b[_0x4fb5('0x1e')]===_0x4fb5('0x1f')&&typeof _0x46eb7b[_0x4fb5('0x20')]===_0x4fb5('0x1f');var _0x352fa7=_0x546728[_0x4fb5('0x21')];var _0x46870f=_0x9fbd9a?0x0:_0x46eb7b[_0x4fb5('0x1e')];var _0x32d0eb=_0x9fbd9a?_0x546728[_0x4fb5('0x21')]:_0x46eb7b[_0x4fb5('0x1e')]+_0x46eb7b[_0x4fb5('0x20')];var _0x1c8198;if(_0x32d0eb>=_0x352fa7){_0x32d0eb=_0x352fa7;_0x1c8198=0xc8;}else{_0x1c8198=0xce;}_0x3137f9['status'](_0x1c8198);return _0x3137f9[_0x4fb5('0x22')](_0x4fb5('0x23'),_0x46870f+'-'+_0x32d0eb+'/'+_0x352fa7)[_0x4fb5('0x24')](_0x546728);}return null;};}function patchUpdates(_0x1ab09f){return function(_0x4a9e95){try{jsonpatch[_0x4fb5('0x25')](_0x4a9e95,_0x1ab09f,!![]);}catch(_0x160d4f){return BPromise[_0x4fb5('0x26')](_0x160d4f);}return _0x4a9e95[_0x4fb5('0x27')]();};}function saveUpdates(_0x1d3e41,_0xec3d70){return function(_0x3c59e3){if(_0x3c59e3){return _0x3c59e3[_0x4fb5('0x28')](_0x1d3e41)[_0x4fb5('0x29')](function(_0x5dd47c){return _0x5dd47c;});}return null;};}function removeEntity(_0x3b887b,_0x6eb605){return function(_0x37d526){if(_0x37d526){return _0x37d526[_0x4fb5('0x2a')]()[_0x4fb5('0x29')](function(){_0x3b887b[_0x4fb5('0x1c')](0xcc)[_0x4fb5('0x1d')]();});}};}function handleEntityNotFound(_0x1c6388,_0x252c8e){return function(_0x4f76be){if(!_0x4f76be){_0x1c6388[_0x4fb5('0x1b')](0x194);}return _0x4f76be;};}function handleError(_0x58e04c,_0x98db00){_0x98db00=_0x98db00||0x1f4;return function(_0x277526){logger[_0x4fb5('0x2b')](_0x277526[_0x4fb5('0x2c')]);if(_0x277526[_0x4fb5('0x2d')]){delete _0x277526[_0x4fb5('0x2d')];}_0x58e04c[_0x4fb5('0x1c')](_0x98db00)['send'](_0x277526);};}exports[_0x4fb5('0x2e')]=function(_0x5f2b43,_0x38268c){var _0x2bd5b6={},_0xa5cbaa={},_0x1288f7={'count':0x0,'rows':[]};var _0x80d312=_[_0x4fb5('0x2f')](db[_0x4fb5('0x30')][_0x4fb5('0x31')],function(_0x356c5c){return{'name':_0x356c5c['fieldName'],'type':_0x356c5c[_0x4fb5('0x32')][_0x4fb5('0x33')]};});_0xa5cbaa[_0x4fb5('0x34')]=_[_0x4fb5('0x2f')](_0x80d312,_0x4fb5('0x2d'));_0xa5cbaa[_0x4fb5('0x35')]=_[_0x4fb5('0x36')](_0x5f2b43[_0x4fb5('0x35')]);_0xa5cbaa[_0x4fb5('0x37')]=_[_0x4fb5('0x38')](_0xa5cbaa[_0x4fb5('0x34')],_0xa5cbaa[_0x4fb5('0x35')]);_0x2bd5b6[_0x4fb5('0x39')]=_[_0x4fb5('0x38')](_0xa5cbaa[_0x4fb5('0x34')],qs[_0x4fb5('0x3a')](_0x5f2b43['query']['fields']));_0x2bd5b6[_0x4fb5('0x39')]=_0x2bd5b6['attributes'][_0x4fb5('0x3b')]?_0x2bd5b6[_0x4fb5('0x39')]:_0xa5cbaa[_0x4fb5('0x34')];if(!_0x5f2b43[_0x4fb5('0x35')][_0x4fb5('0x3c')]('nolimit')){_0x2bd5b6[_0x4fb5('0x20')]=qs[_0x4fb5('0x20')](_0x5f2b43[_0x4fb5('0x35')][_0x4fb5('0x20')]);_0x2bd5b6[_0x4fb5('0x1e')]=qs[_0x4fb5('0x1e')](_0x5f2b43[_0x4fb5('0x35')][_0x4fb5('0x1e')]);}_0x2bd5b6[_0x4fb5('0x3d')]=qs[_0x4fb5('0x3e')](_0x5f2b43[_0x4fb5('0x35')][_0x4fb5('0x3e')]);_0x2bd5b6[_0x4fb5('0x3f')]=qs[_0x4fb5('0x37')](_[_0x4fb5('0x40')](_0x5f2b43[_0x4fb5('0x35')],_0xa5cbaa['filters']),_0x80d312);if(_0x5f2b43[_0x4fb5('0x35')][_0x4fb5('0x41')]){_0x2bd5b6['where']=_[_0x4fb5('0x42')](_0x2bd5b6[_0x4fb5('0x3f')],{'$or':_[_0x4fb5('0x2f')](_0x80d312,function(_0x2c9f6f){if(_0x2c9f6f[_0x4fb5('0x32')]!==_0x4fb5('0x43')){var _0x519eea={};_0x519eea[_0x2c9f6f['name']]={'$like':'%'+_0x5f2b43['query'][_0x4fb5('0x41')]+'%'};return _0x519eea;}})});}_0x2bd5b6=_[_0x4fb5('0x42')]({},_0x2bd5b6,_0x5f2b43[_0x4fb5('0x44')]);var _0x15a5cb={'where':_0x2bd5b6[_0x4fb5('0x3f')]};return db[_0x4fb5('0x30')][_0x4fb5('0x21')](_0x15a5cb)[_0x4fb5('0x29')](function(_0x4c3404){_0x1288f7[_0x4fb5('0x21')]=_0x4c3404;if(_0x5f2b43[_0x4fb5('0x35')][_0x4fb5('0x45')]){_0x2bd5b6['include']=[{'all':!![]}];}return db[_0x4fb5('0x30')][_0x4fb5('0x46')](_0x2bd5b6);})[_0x4fb5('0x29')](function(_0x1a511f){_0x1288f7['rows']=_0x1a511f;return _0x1288f7;})[_0x4fb5('0x29')](respondWithFilteredResult(_0x38268c,_0x2bd5b6))[_0x4fb5('0x47')](handleError(_0x38268c,null));};exports[_0x4fb5('0x48')]=function(_0x5c818d,_0x1ab2f7){var _0x445b18={'raw':!![],'where':{'id':_0x5c818d[_0x4fb5('0x49')]['id']}},_0x66640c={};_0x66640c[_0x4fb5('0x34')]=_[_0x4fb5('0x36')](db[_0x4fb5('0x30')][_0x4fb5('0x31')]);_0x66640c[_0x4fb5('0x35')]=_[_0x4fb5('0x36')](_0x5c818d[_0x4fb5('0x35')]);_0x66640c[_0x4fb5('0x37')]=_['intersection'](_0x66640c[_0x4fb5('0x34')],_0x66640c[_0x4fb5('0x35')]);_0x445b18[_0x4fb5('0x39')]=_[_0x4fb5('0x38')](_0x66640c[_0x4fb5('0x34')],qs[_0x4fb5('0x3a')](_0x5c818d[_0x4fb5('0x35')][_0x4fb5('0x3a')]));_0x445b18[_0x4fb5('0x39')]=_0x445b18[_0x4fb5('0x39')][_0x4fb5('0x3b')]?_0x445b18['attributes']:_0x66640c['model'];if(_0x5c818d[_0x4fb5('0x35')]['includeAll']){_0x445b18[_0x4fb5('0x4a')]=[{'all':!![]}];}_0x445b18=_[_0x4fb5('0x42')]({},_0x445b18,_0x5c818d[_0x4fb5('0x44')]);return db[_0x4fb5('0x30')][_0x4fb5('0x4b')](_0x445b18)[_0x4fb5('0x29')](handleEntityNotFound(_0x1ab2f7,null))[_0x4fb5('0x29')](respondWithResult(_0x1ab2f7,null))[_0x4fb5('0x47')](handleError(_0x1ab2f7,null));};exports[_0x4fb5('0x4c')]=function(_0x311ba1,_0x229e0f){return db['WhatsappTransferReport'][_0x4fb5('0x4c')](_0x311ba1[_0x4fb5('0x4d')],{})[_0x4fb5('0x29')](respondWithResult(_0x229e0f,0xc9))[_0x4fb5('0x47')](handleError(_0x229e0f,null));};exports[_0x4fb5('0x28')]=function(_0x498cbf,_0x513d76){if(_0x498cbf[_0x4fb5('0x4d')]['id']){delete _0x498cbf[_0x4fb5('0x4d')]['id'];}return db[_0x4fb5('0x30')][_0x4fb5('0x4b')]({'where':{'id':_0x498cbf[_0x4fb5('0x49')]['id']}})['then'](handleEntityNotFound(_0x513d76,null))[_0x4fb5('0x29')](saveUpdates(_0x498cbf['body'],null))[_0x4fb5('0x29')](respondWithResult(_0x513d76,null))[_0x4fb5('0x47')](handleError(_0x513d76,null));};exports[_0x4fb5('0x2a')]=function(_0x5a8cb1,_0x507988){return db[_0x4fb5('0x30')][_0x4fb5('0x4b')]({'where':{'id':_0x5a8cb1[_0x4fb5('0x49')]['id']}})[_0x4fb5('0x29')](handleEntityNotFound(_0x507988,null))[_0x4fb5('0x29')](removeEntity(_0x507988,null))[_0x4fb5('0x47')](handleError(_0x507988,null));};exports[_0x4fb5('0x4e')]=function(_0x2c41b8,_0x222834){return db[_0x4fb5('0x30')]['describe']()[_0x4fb5('0x29')](respondWithResult(_0x222834,null))[_0x4fb5('0x47')](handleError(_0x222834,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd769=['uniqueid','lodash','util','api','moment','bluebird','request-promise','path','../../config/environment','./whatsappTransferReport.attributes','exports','define','WhatsappTransferReport'];(function(_0x35efb7,_0x274493){var _0x16045c=function(_0x49c1da){while(--_0x49c1da){_0x35efb7['push'](_0x35efb7['shift']());}};_0x16045c(++_0x274493);}(_0xd769,0xaa));var _0x9d76=function(_0x43e3ed,_0x263324){_0x43e3ed=_0x43e3ed-0x0;var _0x46c344=_0xd769[_0x43e3ed];return _0x46c344;};'use strict';var _=require(_0x9d76('0x0'));var util=require(_0x9d76('0x1'));var logger=require('../../config/logger')(_0x9d76('0x2'));var moment=require(_0x9d76('0x3'));var BPromise=require(_0x9d76('0x4'));var rp=require(_0x9d76('0x5'));var fs=require('fs');var path=require(_0x9d76('0x6'));var rimraf=require('rimraf');var config=require(_0x9d76('0x7'));var attributes=require(_0x9d76('0x8'));module[_0x9d76('0x9')]=function(_0x2df7ed,_0x4cdfc0){return _0x2df7ed[_0x9d76('0xa')](_0x9d76('0xb'),attributes,{'tableName':'report_whatsapp_transfer','paranoid':![],'indexes':[{'name':_0x9d76('0xc'),'fields':[_0x9d76('0xc')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x33e1=['api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./whatsappTransferReport.attributes','exports','define','uniqueid','lodash','../../config/logger'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x33e1,0x1c5));var _0x133e=function(_0x1620b4,_0x2e8f1d){_0x1620b4=_0x1620b4-0x0;var _0x511d36=_0x33e1[_0x1620b4];return _0x511d36;};'use strict';var _=require(_0x133e('0x0'));var util=require('util');var logger=require(_0x133e('0x1'))(_0x133e('0x2'));var moment=require(_0x133e('0x3'));var BPromise=require(_0x133e('0x4'));var rp=require(_0x133e('0x5'));var fs=require('fs');var path=require(_0x133e('0x6'));var rimraf=require(_0x133e('0x7'));var config=require(_0x133e('0x8'));var attributes=require(_0x133e('0x9'));module[_0x133e('0xa')]=function(_0x43ca07,_0x142e52){return _0x43ca07[_0x133e('0xb')]('WhatsappTransferReport',attributes,{'tableName':'report_whatsapp_transfer','paranoid':![],'indexes':[{'name':'uniqueid','fields':[_0x133e('0xc')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x57a0=['request','then','info','request\x20sent','debug','WhatsappTransferReport,\x20%s,\x20%s,\x20%s','error','code','WhatsappTransferReport,\x20%s,\x20%s','message','catch','moment','randomstring','ioredis','../../config/utils','../../config/logger','rpc','jayson/promise','client','http'];(function(_0x2008bd,_0x252aa3){var _0x2f6329=function(_0x4be024){while(--_0x4be024){_0x2008bd['push'](_0x2008bd['shift']());}};_0x2f6329(++_0x252aa3);}(_0x57a0,0x173));var _0x057a=function(_0x29d06f,_0x5d119c){_0x29d06f=_0x29d06f-0x0;var _0x3e50ac=_0x57a0[_0x29d06f];return _0x3e50ac;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0x057a('0x0'));var BPromise=require('bluebird');var rs=require(_0x057a('0x1'));var fs=require('fs');var Redis=require(_0x057a('0x2'));var db=require('../../mysqldb')['db'];var utils=require(_0x057a('0x3'));var logger=require(_0x057a('0x4'))(_0x057a('0x5'));var config=require('../../config/environment');var jayson=require(_0x057a('0x6'));var client=jayson[_0x057a('0x7')][_0x057a('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x5c1546,_0x2d14ca,_0x55e53b){return new BPromise(function(_0x4d9340,_0x5cecc6){return client[_0x057a('0x9')](_0x5c1546,_0x55e53b)[_0x057a('0xa')](function(_0x489d6a){logger[_0x057a('0xb')]('WhatsappTransferReport,\x20%s,\x20%s',_0x2d14ca,_0x057a('0xc'));logger[_0x057a('0xd')](_0x057a('0xe'),_0x2d14ca,_0x057a('0xc'),JSON['stringify'](_0x489d6a));if(_0x489d6a['error']){if(_0x489d6a[_0x057a('0xf')][_0x057a('0x10')]===0x1f4){logger['error'](_0x057a('0x11'),_0x2d14ca,_0x489d6a[_0x057a('0xf')][_0x057a('0x12')]);return _0x5cecc6(_0x489d6a[_0x057a('0xf')]['message']);}logger[_0x057a('0xf')](_0x057a('0x11'),_0x2d14ca,_0x489d6a[_0x057a('0xf')][_0x057a('0x12')]);return _0x4d9340(_0x489d6a[_0x057a('0xf')][_0x057a('0x12')]);}else{logger[_0x057a('0xb')](_0x057a('0x11'),_0x2d14ca,'request\x20sent');_0x4d9340(_0x489d6a['result'][_0x057a('0x12')]);}})[_0x057a('0x13')](function(_0x5b80bb){logger[_0x057a('0xf')](_0x057a('0x11'),_0x2d14ca,_0x5b80bb);_0x5cecc6(_0x5b80bb);});});}
\ No newline at end of file
+var _0x7718=['info','WhatsappTransferReport,\x20%s,\x20%s','request\x20sent','debug','WhatsappTransferReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','lodash','util','bluebird','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','request','then'];(function(_0x1902c6,_0x35d17f){var _0x47531f=function(_0x43a852){while(--_0x43a852){_0x1902c6['push'](_0x1902c6['shift']());}};_0x47531f(++_0x35d17f);}(_0x7718,0x129));var _0x8771=function(_0x27b524,_0x2c11b0){_0x27b524=_0x27b524-0x0;var _0x2ea011=_0x7718[_0x27b524];return _0x2ea011;};'use strict';var _=require(_0x8771('0x0'));var util=require(_0x8771('0x1'));var moment=require('moment');var BPromise=require(_0x8771('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0x8771('0x3'));var logger=require(_0x8771('0x4'))(_0x8771('0x5'));var config=require(_0x8771('0x6'));var jayson=require(_0x8771('0x7'));var client=jayson['client'][_0x8771('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x5a8ea4,_0x575bee,_0x5c558c){return new BPromise(function(_0x41a3a2,_0x5295e9){return client[_0x8771('0x9')](_0x5a8ea4,_0x5c558c)[_0x8771('0xa')](function(_0x204fa9){logger[_0x8771('0xb')](_0x8771('0xc'),_0x575bee,_0x8771('0xd'));logger[_0x8771('0xe')](_0x8771('0xf'),_0x575bee,_0x8771('0xd'),JSON[_0x8771('0x10')](_0x204fa9));if(_0x204fa9[_0x8771('0x11')]){if(_0x204fa9[_0x8771('0x11')][_0x8771('0x12')]===0x1f4){logger[_0x8771('0x11')](_0x8771('0xc'),_0x575bee,_0x204fa9['error']['message']);return _0x5295e9(_0x204fa9[_0x8771('0x11')][_0x8771('0x13')]);}logger['error'](_0x8771('0xc'),_0x575bee,_0x204fa9[_0x8771('0x11')]['message']);return _0x41a3a2(_0x204fa9[_0x8771('0x11')][_0x8771('0x13')]);}else{logger['info'](_0x8771('0xc'),_0x575bee,'request\x20sent');_0x41a3a2(_0x204fa9[_0x8771('0x14')]['message']);}})[_0x8771('0x15')](function(_0x1fc564){logger[_0x8771('0x11')](_0x8771('0xc'),_0x575bee,_0x1fc564);_0x5295e9(_0x1fc564);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1f0f=['lodash','./rpc','./config/environment','./config/logger','app','./config/pm2','./config/pm2/config','./config/schedule/chat','./config/schedule/whatsapp','./config/schedule/transcribe','listen','then','info','start','Online\x20apps:','map','filter','online','name','join','None','./config/seedDB','default','./config/license','catch','error','Server\x20failed\x20to\x20start\x20due\x20to\x20error:\x20%s','exit'];(function(_0x1b46eb,_0xde5513){var _0x236739=function(_0x23978a){while(--_0x23978a){_0x1b46eb['push'](_0x1b46eb['shift']());}};_0x236739(++_0xde5513);}(_0x1f0f,0x1dc));var _0xf1f0=function(_0x2deb55,_0x2b3dec){_0x2deb55=_0x2deb55-0x0;var _0x4ade1e=_0x1f0f[_0x2deb55];return _0x4ade1e;};'use strict';var _=require(_0xf1f0('0x0'));var mysqldb=require('./mysqldb');var rpc=require(_0xf1f0('0x1'));var config=require(_0xf1f0('0x2'));var logger=require(_0xf1f0('0x3'))(_0xf1f0('0x4'));var pm2=require(_0xf1f0('0x5'));var pm2Config=require(_0xf1f0('0x6'));var schedule=require('./config/schedule');var chat=require(_0xf1f0('0x7'));var whatsapp=require(_0xf1f0('0x8'));var transcribe=require(_0xf1f0('0x9'));function main(){return mysqldb['db']['sequelize']['sync']()['then'](function(){return rpc[_0xf1f0('0xa')]();})[_0xf1f0('0xb')](function(_0xadef83){logger[_0xf1f0('0xc')](_0xadef83);return chat[_0xf1f0('0xd')]();})['then'](function(){return whatsapp['start']();})['then'](function(){return schedule[_0xf1f0('0xd')]();})['then'](function(){return transcribe['start']();})[_0xf1f0('0xb')](function(_0x306915){logger[_0xf1f0('0xc')](_0x306915);return pm2[_0xf1f0('0xd')](pm2Config);})[_0xf1f0('0xb')](function(_0x3bd3d8){logger[_0xf1f0('0xc')](_0xf1f0('0xe'),_[_0xf1f0('0xf')](_[_0xf1f0('0x10')](_0x3bd3d8,{'status':_0xf1f0('0x11')}),_0xf1f0('0x12'))[_0xf1f0('0x13')]());logger[_0xf1f0('0xc')]('Offline\x20apps:',_[_0xf1f0('0xf')](_['filter'](_0x3bd3d8,function(_0x3065a3){return _0x3065a3['status']!==_0xf1f0('0x11');}),_0xf1f0('0x12'))[_0xf1f0('0x13')]()||_0xf1f0('0x14'));config['seedDB']&&require(_0xf1f0('0x15'))[_0xf1f0('0x16')]();require(_0xf1f0('0x17'))[_0xf1f0('0x16')]();})[_0xf1f0('0x18')](function(_0x3b422f){logger[_0xf1f0('0x19')](_0xf1f0('0x1a'),_0x3b422f);process[_0xf1f0('0x1b')](0x1);});}main();
\ No newline at end of file
+var _0x5f1c=['lodash','./mysqldb','./rpc','./config/environment','./config/logger','app','./config/schedule','./config/schedule/chat','./config/schedule/whatsapp','./config/schedule/transcribe','then','listen','info','start','map','filter','Offline\x20apps:','name','join','None','./config/seedDB','default','./config/license','catch','error'];(function(_0x360031,_0x2baad3){var _0x1c2d92=function(_0x2cf993){while(--_0x2cf993){_0x360031['push'](_0x360031['shift']());}};_0x1c2d92(++_0x2baad3);}(_0x5f1c,0xfa));var _0xc5f1=function(_0x44c4dc,_0x15244e){_0x44c4dc=_0x44c4dc-0x0;var _0x224e41=_0x5f1c[_0x44c4dc];return _0x224e41;};'use strict';var _=require(_0xc5f1('0x0'));var mysqldb=require(_0xc5f1('0x1'));var rpc=require(_0xc5f1('0x2'));var config=require(_0xc5f1('0x3'));var logger=require(_0xc5f1('0x4'))(_0xc5f1('0x5'));var pm2=require('./config/pm2');var pm2Config=require('./config/pm2/config');var schedule=require(_0xc5f1('0x6'));var chat=require(_0xc5f1('0x7'));var whatsapp=require(_0xc5f1('0x8'));var transcribe=require(_0xc5f1('0x9'));function main(){return mysqldb['db']['sequelize']['sync']()[_0xc5f1('0xa')](function(){return rpc[_0xc5f1('0xb')]();})[_0xc5f1('0xa')](function(_0x9db51a){logger[_0xc5f1('0xc')](_0x9db51a);return chat[_0xc5f1('0xd')]();})[_0xc5f1('0xa')](function(){return whatsapp[_0xc5f1('0xd')]();})[_0xc5f1('0xa')](function(){return schedule[_0xc5f1('0xd')]();})[_0xc5f1('0xa')](function(){return transcribe[_0xc5f1('0xd')]();})[_0xc5f1('0xa')](function(_0x16cd68){logger[_0xc5f1('0xc')](_0x16cd68);return pm2[_0xc5f1('0xd')](pm2Config);})[_0xc5f1('0xa')](function(_0x2d3884){logger[_0xc5f1('0xc')]('Online\x20apps:',_[_0xc5f1('0xe')](_[_0xc5f1('0xf')](_0x2d3884,{'status':'online'}),'name')['join']());logger[_0xc5f1('0xc')](_0xc5f1('0x10'),_['map'](_[_0xc5f1('0xf')](_0x2d3884,function(_0x165992){return _0x165992['status']!=='online';}),_0xc5f1('0x11'))[_0xc5f1('0x12')]()||_0xc5f1('0x13'));config['seedDB']&&require(_0xc5f1('0x14'))[_0xc5f1('0x15')]();require(_0xc5f1('0x16'))[_0xc5f1('0x15')]();})[_0xc5f1('0x17')](function(_0x2f78bd){logger[_0xc5f1('0x18')]('Server\x20failed\x20to\x20start\x20due\x20to\x20error:\x20%s',_0x2f78bd);process['exit'](0x1);});}main();
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9eba=['sign','payload','verify','randomBytes','hex','floor','now','toString','HS512','../../config/environment','../../config/license/hardware','../../config/license/util','lodash','jsonwebtoken','express-jwt','basic-auth','crypto','bluebird','util','moment','secrets','session','role','fullname','name','internal','email','userpic','permissions','voicePause','chatPause','faxPause','smsPause','openchannelPause','pauseType','showWebBar','lastLoginAt','lastPauseAt','crudPermissions','allowmessenger','alias','phoneBarDnd','phoneBarEnableRecording','phoneBarExpires','phoneBarRemoteControl','phoneBarRemoteControlPort','hotdesk','interface','privacyEnabled','settingsEnabled','wssPort','downloadVoiceRecordings','downloadOmnichannelInteractions','downloadAttachments','isChatInteractionAuthorized','isAuthenticated','use','user','ChatInteraction','findOne','params','closed','disposition','status','unmanaged','Unmanaged.','catch','headers','authorization','startsWith','Basic','User','then','authenticate','pass','json','Bearer','Unknown\x20authorization\x20format','query','apikey','getUuid','find','allowedLoginAttempts','blockDuration','isEqual','apiKeyNonce','nonce','blockedAt','add','Invalid\x20API\x20access\x20key','User\x20not\x20found.','canUpdate','getLicense','Forbidden','isMiddleware','setTokenCookie','It\x20looks\x20like\x20you\x20aren\x27t\x20logged\x20in,\x20please\x20try\x20again.','redirect','/dashboards/general','send','retrieveApiKey','isNil','apiKeyIat','regenerateApiKey','Please\x20use\x20the\x20previous\x20API\x20access\x20key\x20to\x20generate\x20a\x20new\x20one','validatePasswordPattern','test','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','decryptString','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.','updatePasswordsHistory','split','length','unshift','encryptString','join','promisify'];(function(_0x26da92,_0x537704){var _0x1aa80a=function(_0x5e1387){while(--_0x5e1387){_0x26da92['push'](_0x26da92['shift']());}};_0x1aa80a(++_0x537704);}(_0x9eba,0x84));var _0xa9eb=function(_0x2dafbe,_0x5d04de){_0x2dafbe=_0x2dafbe-0x0;var _0x58a45a=_0x9eba[_0x2dafbe];return _0x58a45a;};'use strict';var db=require('../../mysqldb')['db'];var config=require(_0xa9eb('0x0'));var hardwareConf=require(_0xa9eb('0x1'));var licenseUtil=require(_0xa9eb('0x2'));var encryptor=require('../encryptor');var _=require(_0xa9eb('0x3'));var jwt=require(_0xa9eb('0x4'));var expressJwt=require(_0xa9eb('0x5'));var compose=require('composable-middleware');var basicAuth=require(_0xa9eb('0x6'));var crypto=require(_0xa9eb('0x7'));var BPromise=require(_0xa9eb('0x8'));var util=require(_0xa9eb('0x9'));var moment=require(_0xa9eb('0xa'));var validateJwt=expressJwt({'secret':config[_0xa9eb('0xb')][_0xa9eb('0xc')]});var userAttributes=['id',_0xa9eb('0xd'),_0xa9eb('0xe'),_0xa9eb('0xf'),_0xa9eb('0x10'),_0xa9eb('0x11'),_0xa9eb('0x12'),_0xa9eb('0x13'),'md5secret',_0xa9eb('0x14'),_0xa9eb('0x15'),'mailPause',_0xa9eb('0x16'),_0xa9eb('0x17'),_0xa9eb('0x18'),_0xa9eb('0x19'),_0xa9eb('0x1a'),_0xa9eb('0x1b'),_0xa9eb('0x1c'),_0xa9eb('0x1d'),_0xa9eb('0x1e'),'passwordResetAt',_0xa9eb('0x1f'),'phoneBarAutoAnswer','phoneBarAutoAnswerDelay',_0xa9eb('0x20'),_0xa9eb('0x21'),'phoneBarEnableDtmfTone','phoneBarEnableSettings',_0xa9eb('0x22'),'phoneBarPrefixRequired',_0xa9eb('0x23'),_0xa9eb('0x24'),_0xa9eb('0x25'),_0xa9eb('0x26'),'userProfileId',_0xa9eb('0x27'),_0xa9eb('0x28'),_0xa9eb('0x29'),_0xa9eb('0x2a'),_0xa9eb('0x2b'),_0xa9eb('0x2c')];exports[_0xa9eb('0x2d')]=function(){return this[_0xa9eb('0x2e')](!![])[_0xa9eb('0x2f')](function(_0x1825de,_0x18eb3f,_0x379dd9){if(_0x1825de[_0xa9eb('0x30')]){_0x379dd9();}else{return db[_0xa9eb('0x31')][_0xa9eb('0x32')]({'where':{'id':_0x1825de[_0xa9eb('0x33')]['id']},'attributes':['id',_0xa9eb('0x34'),_0xa9eb('0x35')],'raw':!![]})['then'](function(_0x22c01e){if(_0x22c01e&&_0x22c01e[_0xa9eb('0x34')]){return _0x18eb3f[_0xa9eb('0x36')](_0x22c01e['disposition']===_0xa9eb('0x37')?0x195:0x193)['json']({'message':_0x22c01e['disposition']===_0xa9eb('0x37')?_0xa9eb('0x38'):'Forbidden.'});}else{_0x379dd9();}})[_0xa9eb('0x39')](function(_0x489979){_0x379dd9(_0x489979);});}});};exports[_0xa9eb('0x2e')]=function isAuthenticated(_0x352609){return compose()['use'](function(_0x716d86,_0x47fd1e,_0x5758a5){var _0x6e2675;if(_0x716d86[_0xa9eb('0x3a')][_0xa9eb('0x3b')]){if(_[_0xa9eb('0x3c')](_0x716d86[_0xa9eb('0x3a')][_0xa9eb('0x3b')],_0xa9eb('0x3d'))){var _0x45b118=basicAuth(_0x716d86);db[_0xa9eb('0x3e')]['find']({'where':{'name':_0x45b118[_0xa9eb('0xf')]}})[_0xa9eb('0x3f')](function(_0x2a35fa){if(!_0x2a35fa||!_0x2a35fa[_0xa9eb('0x40')](_0x45b118[_0xa9eb('0x41')])){return _0x47fd1e['status'](0x191)[_0xa9eb('0x42')]({'message':'Wrong\x20credentials.'});}_0x716d86[_0xa9eb('0x30')]={'id':_0x2a35fa['id']};_0x5758a5();})[_0xa9eb('0x39')](function(_0x4b518b){_0x5758a5(_0x4b518b);});}else if(_[_0xa9eb('0x3c')](_0x716d86[_0xa9eb('0x3a')][_0xa9eb('0x3b')],_0xa9eb('0x43'))){validateJwt(_0x716d86,_0x47fd1e,_0x5758a5);}else{if(_0x352609){_0x5758a5();}else{return _0x47fd1e[_0xa9eb('0x36')](0x193)[_0xa9eb('0x42')]({'message':_0xa9eb('0x44')});}}}else if(_0x716d86[_0xa9eb('0x45')][_0xa9eb('0x46')]){try{var _0x38b6a7={'audience':hardwareConf['getUuid'](),'issuer':hardwareConf[_0xa9eb('0x47')]()};verifyJwt(_0x716d86[_0xa9eb('0x45')][_0xa9eb('0x46')],_0x38b6a7)['then'](function(_0x2a5f1f){return db[_0xa9eb('0x3e')][_0xa9eb('0x48')]({'where':{'id':_0x2a5f1f['sub']}})[_0xa9eb('0x3f')](function(_0x411084){_0x6e2675=_0x411084;return db['Setting']['findOne']({'where':{'id':0x1},'attributes':[_0xa9eb('0x49'),_0xa9eb('0x4a')],'raw':!![]});})['then'](function(_0xe1d90c){if(!_0x6e2675||!_[_0xa9eb('0x4b')](_0x6e2675[_0xa9eb('0x4c')],_0x2a5f1f[_0xa9eb('0x4d')])){return _0x47fd1e[_0xa9eb('0x36')](0x191)['json']({'message':'API\x20access\x20key\x20is\x20not\x20valid\x20anymore'});}if(_0x6e2675['disabled']){return _0x47fd1e[_0xa9eb('0x36')](0x191)[_0xa9eb('0x42')]({'message':'Invalid\x20API\x20access\x20key'});}if(_0x6e2675['blocked']){if(_0xe1d90c[_0xa9eb('0x4a')]>0x0){if(moment(_0x6e2675[_0xa9eb('0x4e')])[_0xa9eb('0x4f')](_0xe1d90c['blockDuration'],'minutes')>moment()){return _0x47fd1e[_0xa9eb('0x36')](0x191)[_0xa9eb('0x42')]({'message':_0xa9eb('0x50')});}}else{return _0x47fd1e[_0xa9eb('0x36')](0x191)['json']({'message':'Invalid\x20API\x20access\x20key'});}}_0x716d86['user']={'id':_0x6e2675['id']};_0x5758a5();});})[_0xa9eb('0x39')](function(){return _0x47fd1e[_0xa9eb('0x36')](0x191)[_0xa9eb('0x42')]({'message':_0xa9eb('0x50')});});}catch(_0x195152){_0x5758a5(_0x195152);}}else if(_0x352609){_0x5758a5();}else{return _0x47fd1e[_0xa9eb('0x36')](0x193)[_0xa9eb('0x42')]({'message':_0xa9eb('0x44')});}})['use'](function(_0x2d3706,_0xb7f8d6,_0xfb351b){if(_0x2d3706[_0xa9eb('0x30')]){db[_0xa9eb('0x3e')]['find']({'where':{'id':_0x2d3706[_0xa9eb('0x30')]['id']},'attributes':userAttributes})[_0xa9eb('0x3f')](function(_0x52403e){if(!_0x52403e){return _0xb7f8d6[_0xa9eb('0x36')](0x194)[_0xa9eb('0x42')]({'message':_0xa9eb('0x51')});}_0x2d3706['user']=_0x52403e;_0xfb351b();})['catch'](function(_0x43fd56){_0xfb351b(_0x43fd56);});}else if(_0x352609){_0xfb351b();}else{return _0xb7f8d6[_0xa9eb('0x36')](0x194)[_0xa9eb('0x42')]({'message':'User\x20object\x20not\x20found.'});}});};exports[_0xa9eb('0x52')]=function canUpdate(){return compose()[_0xa9eb('0x2f')](function(_0x1edf72,_0x225e1a,_0x46a493){return licenseUtil[_0xa9eb('0x53')]()[_0xa9eb('0x3f')](function(_0x1bd775){if(_0x1bd775['update']){_0x46a493();}else{return _0x225e1a[_0xa9eb('0x36')](0x193)[_0xa9eb('0x42')]({'message':_0xa9eb('0x54')});}})['catch'](function(_0x573f8e){_0x46a493(_0x573f8e);});});};exports[_0xa9eb('0x55')]=function(_0x553252,_0x2050c5,_0x4b28c2){_0x553252[_0xa9eb('0x55')]=!![];return _0x4b28c2();};exports['signToken']=function signToken(_0x34b4a7){return signJwt(_0x34b4a7);};exports[_0xa9eb('0x56')]=function(_0x3be9ca,_0x36dae8){if(!_0x3be9ca[_0xa9eb('0x30')]){return _0x36dae8[_0xa9eb('0x36')](0x194)[_0xa9eb('0x42')]({'message':_0xa9eb('0x57')});}var _0x27f8f9={'payload':{'id':_0x3be9ca['user']['id'],'role':_0x3be9ca[_0xa9eb('0x30')]['role']},'options':{'expiresIn':0x15180}};return signJwt(_0x27f8f9)[_0xa9eb('0x3f')](function(_0x2eeb1d){_0x36dae8['cookie']('motion.token',_0x2eeb1d);_0x36dae8[_0xa9eb('0x58')](_0xa9eb('0x59'));})[_0xa9eb('0x39')](function(_0x37e6e5){return _0x36dae8[_0xa9eb('0x36')](0x1f4)[_0xa9eb('0x5a')](_0x37e6e5);});};exports[_0xa9eb('0x5b')]=function(_0x3b181d){if(_[_0xa9eb('0x5c')](_0x3b181d['apiKeyNonce'])||_[_0xa9eb('0x5c')](_0x3b181d[_0xa9eb('0x5d')])){return null;}else{return createJwt(_0x3b181d);}};exports['generateApiKey']=function(_0x1da592){_0x1da592[_0xa9eb('0x4c')]=generateNonce();_0x1da592[_0xa9eb('0x5d')]=generateIssuedAt();return createJwt(_0x1da592);};exports[_0xa9eb('0x5e')]=function(_0x42fe2d,_0x324760){var _0x19934e=_0x42fe2d[_0xa9eb('0x45')][_0xa9eb('0x46')];if(_0x19934e){var _0x6c15d8={'nonce':_0x324760[_0xa9eb('0x4c')],'iat':_0x324760[_0xa9eb('0x5d')],'audience':hardwareConf[_0xa9eb('0x47')](),'issuer':hardwareConf[_0xa9eb('0x47')]()};return verifyJwt(_0x19934e,_0x6c15d8)['then'](function(){return generateApiKey(_0x324760);});}else{throw{'message':_0xa9eb('0x5f')};}};exports[_0xa9eb('0x60')]=function(_0x314f5c){var _0x16bb60=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(!_0x16bb60[_0xa9eb('0x61')](_0x314f5c))throw new db[(_0xa9eb('0x62'))][(_0xa9eb('0x63'))](_0xa9eb('0x64'));return;};exports[_0xa9eb('0x65')]=function(_0x310384,_0x3f46d8,_0x3da0a3){var _0x6d597=encryptor[_0xa9eb('0x66')](_0x3f46d8)['split'](',');for(var _0x1ebd11=0x0;_0x1ebd11<_0x3da0a3;_0x1ebd11++){if(!_0x6d597[_0x1ebd11])break;if(_0x310384[_0xa9eb('0x67')]()===_0x6d597[_0x1ebd11][_0xa9eb('0x67')]()){var _0x275525=util[_0xa9eb('0x68')](_0xa9eb('0x69'),_0x3da0a3);if(_0x3da0a3===0x1){_0x275525=_0xa9eb('0x6a');}throw new db[(_0xa9eb('0x62'))][(_0xa9eb('0x63'))](_0x275525);}}return;};exports[_0xa9eb('0x6b')]=function(_0x1076bf,_0x4e3359){var _0x3d7b96=_0x4e3359?encryptor[_0xa9eb('0x66')](_0x4e3359)[_0xa9eb('0x6c')](','):[];if(_0x3d7b96[_0xa9eb('0x6d')]===0x5){_0x3d7b96['splice'](-0x1,0x1);}_0x3d7b96[_0xa9eb('0x6e')](_0x1076bf);return encryptor[_0xa9eb('0x6f')](_0x3d7b96[_0xa9eb('0x70')](','));};function signJwt(_0x1cccf7){var _0x53e856=BPromise[_0xa9eb('0x71')](jwt[_0xa9eb('0x72')],{'context':jwt});var _0x5d4667=_0x1cccf7['secret']||config[_0xa9eb('0xb')][_0xa9eb('0xc')];return new BPromise(function(_0x28160f,_0x43c399){_0x53e856(_0x1cccf7[_0xa9eb('0x73')],_0x5d4667,_0x1cccf7['options'])[_0xa9eb('0x3f')](function(_0xd7779c){_0x28160f(_0xd7779c);})['catch'](function(_0x2d716b){_0x43c399(_0x2d716b);});});}function verifyJwt(_0xed3024,_0x2abd36,_0x32d1dd){var _0x156320=BPromise[_0xa9eb('0x71')](jwt[_0xa9eb('0x74')],{'context':jwt});var _0x11c79f=_0x32d1dd||config[_0xa9eb('0xb')][_0xa9eb('0xc')];return new BPromise(function(_0x2a9aad,_0x192166){_0x156320(_0xed3024,_0x11c79f,_0x2abd36)[_0xa9eb('0x3f')](function(_0x3cf113){_0x2a9aad(_0x3cf113);})[_0xa9eb('0x39')](function(_0x551d37){_0x192166(_0x551d37);});});}function generateNonce(){return crypto[_0xa9eb('0x75')](0x10)['toString'](_0xa9eb('0x76'));}function generateIssuedAt(){return Math[_0xa9eb('0x77')](Date[_0xa9eb('0x78')]()/0x3e8)[_0xa9eb('0x79')]();}function createJwt(_0x3a4c26){var _0x10a240={'payload':{'iat':_0x3a4c26['apiKeyIat'],'nonce':_0x3a4c26[_0xa9eb('0x4c')]},'options':{'algorithm':_0xa9eb('0x7a'),'subject':_0x3a4c26['id'][_0xa9eb('0x79')](),'issuer':hardwareConf[_0xa9eb('0x47')](),'audience':hardwareConf[_0xa9eb('0x47')]()}};return signJwt(_0x10a240)[_0xa9eb('0x3f')](function(_0x21e1d6){return{'iat':_0x3a4c26['apiKeyIat'],'nonce':_0x3a4c26['apiKeyNonce'],'token':_0x21e1d6};});}
\ No newline at end of file
+var _0xa123=['lodash','jsonwebtoken','composable-middleware','basic-auth','crypto','bluebird','moment','session','role','fullname','email','userpic','permissions','md5secret','voicePause','chatPause','mailPause','faxPause','openchannelPause','showWebBar','lastLoginAt','lastPauseAt','allowmessenger','passwordResetAt','alias','phoneBarAutoAnswer','phoneBarAutoAnswerDelay','phoneBarDnd','phoneBarEnableRecording','phoneBarExpires','phoneBarRemoteControl','phoneBarRemoteControlPort','hotdesk','interface','userProfileId','settingsEnabled','downloadVoiceRecordings','downloadOmnichannelInteractions','downloadAttachments','isChatInteractionAuthorized','isAuthenticated','use','user','ChatInteraction','closed','disposition','then','status','unmanaged','json','Unmanaged.','headers','authorization','Basic','User','find','authenticate','pass','Wrong\x20credentials.','catch','startsWith','Unknown\x20authorization\x20format','query','apikey','getUuid','sub','Setting','findOne','allowedLoginAttempts','isEqual','nonce','API\x20access\x20key\x20is\x20not\x20valid\x20anymore','disabled','Invalid\x20API\x20access\x20key','blocked','blockedAt','add','blockDuration','User\x20not\x20found.','User\x20object\x20not\x20found.','canUpdate','getLicense','update','Forbidden','isMiddleware','signToken','setTokenCookie','It\x20looks\x20like\x20you\x20aren\x27t\x20logged\x20in,\x20please\x20try\x20again.','redirect','/dashboards/general','send','retrieveApiKey','isNil','apiKeyIat','generateApiKey','apiKeyNonce','validatePasswordPattern','test','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~!@#$%^&-_=+[{]}.','toLowerCase','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.','updatePasswordsHistory','decryptString','split','splice','encryptString','join','sign','secret','secrets','payload','options','verify','randomBytes','toString','hex','floor','now','HS512','../../mysqldb','../../config/license/hardware','../../config/license/util','../encryptor'];(function(_0x340fce,_0x23af0e){var _0x322089=function(_0x269f02){while(--_0x269f02){_0x340fce['push'](_0x340fce['shift']());}};_0x322089(++_0x23af0e);}(_0xa123,0xf8));var _0x3a12=function(_0xf99482,_0x42028a){_0xf99482=_0xf99482-0x0;var _0x9bfe4=_0xa123[_0xf99482];return _0x9bfe4;};'use strict';var db=require(_0x3a12('0x0'))['db'];var config=require('../../config/environment');var hardwareConf=require(_0x3a12('0x1'));var licenseUtil=require(_0x3a12('0x2'));var encryptor=require(_0x3a12('0x3'));var _=require(_0x3a12('0x4'));var jwt=require(_0x3a12('0x5'));var expressJwt=require('express-jwt');var compose=require(_0x3a12('0x6'));var basicAuth=require(_0x3a12('0x7'));var crypto=require(_0x3a12('0x8'));var BPromise=require(_0x3a12('0x9'));var util=require('util');var moment=require(_0x3a12('0xa'));var validateJwt=expressJwt({'secret':config['secrets'][_0x3a12('0xb')]});var userAttributes=['id',_0x3a12('0xc'),_0x3a12('0xd'),'name','internal',_0x3a12('0xe'),_0x3a12('0xf'),_0x3a12('0x10'),_0x3a12('0x11'),_0x3a12('0x12'),_0x3a12('0x13'),_0x3a12('0x14'),_0x3a12('0x15'),'smsPause',_0x3a12('0x16'),'pauseType',_0x3a12('0x17'),_0x3a12('0x18'),_0x3a12('0x19'),'crudPermissions',_0x3a12('0x1a'),_0x3a12('0x1b'),_0x3a12('0x1c'),_0x3a12('0x1d'),_0x3a12('0x1e'),_0x3a12('0x1f'),_0x3a12('0x20'),'phoneBarEnableDtmfTone','phoneBarEnableSettings',_0x3a12('0x21'),'phoneBarPrefixRequired',_0x3a12('0x22'),_0x3a12('0x23'),_0x3a12('0x24'),_0x3a12('0x25'),_0x3a12('0x26'),'privacyEnabled',_0x3a12('0x27'),'wssPort',_0x3a12('0x28'),_0x3a12('0x29'),_0x3a12('0x2a')];exports[_0x3a12('0x2b')]=function(){return this[_0x3a12('0x2c')](!![])[_0x3a12('0x2d')](function(_0x4109f8,_0x24e888,_0x3535e3){if(_0x4109f8[_0x3a12('0x2e')]){_0x3535e3();}else{return db[_0x3a12('0x2f')]['findOne']({'where':{'id':_0x4109f8['params']['id']},'attributes':['id',_0x3a12('0x30'),_0x3a12('0x31')],'raw':!![]})[_0x3a12('0x32')](function(_0x3df8cf){if(_0x3df8cf&&_0x3df8cf[_0x3a12('0x30')]){return _0x24e888[_0x3a12('0x33')](_0x3df8cf[_0x3a12('0x31')]===_0x3a12('0x34')?0x195:0x193)[_0x3a12('0x35')]({'message':_0x3df8cf['disposition']===_0x3a12('0x34')?_0x3a12('0x36'):'Forbidden.'});}else{_0x3535e3();}})['catch'](function(_0x399228){_0x3535e3(_0x399228);});}});};exports['isAuthenticated']=function isAuthenticated(_0x4f4684){return compose()[_0x3a12('0x2d')](function(_0x1de0ac,_0xa8a57,_0x10a21b){var _0x37cf9e;if(_0x1de0ac[_0x3a12('0x37')][_0x3a12('0x38')]){if(_['startsWith'](_0x1de0ac[_0x3a12('0x37')][_0x3a12('0x38')],_0x3a12('0x39'))){var _0x29d93a=basicAuth(_0x1de0ac);db[_0x3a12('0x3a')][_0x3a12('0x3b')]({'where':{'name':_0x29d93a['name']}})[_0x3a12('0x32')](function(_0x4f660c){if(!_0x4f660c||!_0x4f660c[_0x3a12('0x3c')](_0x29d93a[_0x3a12('0x3d')])){return _0xa8a57['status'](0x191)[_0x3a12('0x35')]({'message':_0x3a12('0x3e')});}_0x1de0ac[_0x3a12('0x2e')]={'id':_0x4f660c['id']};_0x10a21b();})[_0x3a12('0x3f')](function(_0x568246){_0x10a21b(_0x568246);});}else if(_[_0x3a12('0x40')](_0x1de0ac[_0x3a12('0x37')]['authorization'],'Bearer')){validateJwt(_0x1de0ac,_0xa8a57,_0x10a21b);}else{if(_0x4f4684){_0x10a21b();}else{return _0xa8a57[_0x3a12('0x33')](0x193)[_0x3a12('0x35')]({'message':_0x3a12('0x41')});}}}else if(_0x1de0ac[_0x3a12('0x42')][_0x3a12('0x43')]){try{var _0xa3cb12={'audience':hardwareConf[_0x3a12('0x44')](),'issuer':hardwareConf[_0x3a12('0x44')]()};verifyJwt(_0x1de0ac[_0x3a12('0x42')][_0x3a12('0x43')],_0xa3cb12)[_0x3a12('0x32')](function(_0x169524){return db['User'][_0x3a12('0x3b')]({'where':{'id':_0x169524[_0x3a12('0x45')]}})['then'](function(_0x26304d){_0x37cf9e=_0x26304d;return db[_0x3a12('0x46')][_0x3a12('0x47')]({'where':{'id':0x1},'attributes':[_0x3a12('0x48'),'blockDuration'],'raw':!![]});})[_0x3a12('0x32')](function(_0x54ebd0){if(!_0x37cf9e||!_[_0x3a12('0x49')](_0x37cf9e['apiKeyNonce'],_0x169524[_0x3a12('0x4a')])){return _0xa8a57['status'](0x191)[_0x3a12('0x35')]({'message':_0x3a12('0x4b')});}if(_0x37cf9e[_0x3a12('0x4c')]){return _0xa8a57[_0x3a12('0x33')](0x191)[_0x3a12('0x35')]({'message':_0x3a12('0x4d')});}if(_0x37cf9e[_0x3a12('0x4e')]){if(_0x54ebd0['blockDuration']>0x0){if(moment(_0x37cf9e[_0x3a12('0x4f')])[_0x3a12('0x50')](_0x54ebd0[_0x3a12('0x51')],'minutes')>moment()){return _0xa8a57[_0x3a12('0x33')](0x191)['json']({'message':'Invalid\x20API\x20access\x20key'});}}else{return _0xa8a57[_0x3a12('0x33')](0x191)[_0x3a12('0x35')]({'message':'Invalid\x20API\x20access\x20key'});}}_0x1de0ac[_0x3a12('0x2e')]={'id':_0x37cf9e['id']};_0x10a21b();});})[_0x3a12('0x3f')](function(){return _0xa8a57['status'](0x191)[_0x3a12('0x35')]({'message':_0x3a12('0x4d')});});}catch(_0x1d3478){_0x10a21b(_0x1d3478);}}else if(_0x4f4684){_0x10a21b();}else{return _0xa8a57[_0x3a12('0x33')](0x193)['json']({'message':_0x3a12('0x41')});}})['use'](function(_0x1a2fca,_0x352b22,_0x5ac40e){if(_0x1a2fca[_0x3a12('0x2e')]){db[_0x3a12('0x3a')][_0x3a12('0x3b')]({'where':{'id':_0x1a2fca[_0x3a12('0x2e')]['id']},'attributes':userAttributes})[_0x3a12('0x32')](function(_0x341a7a){if(!_0x341a7a){return _0x352b22[_0x3a12('0x33')](0x194)[_0x3a12('0x35')]({'message':_0x3a12('0x52')});}_0x1a2fca[_0x3a12('0x2e')]=_0x341a7a;_0x5ac40e();})[_0x3a12('0x3f')](function(_0x2de3cb){_0x5ac40e(_0x2de3cb);});}else if(_0x4f4684){_0x5ac40e();}else{return _0x352b22[_0x3a12('0x33')](0x194)[_0x3a12('0x35')]({'message':_0x3a12('0x53')});}});};exports[_0x3a12('0x54')]=function canUpdate(){return compose()[_0x3a12('0x2d')](function(_0x5cbc4a,_0x5a056b,_0x4a2955){return licenseUtil[_0x3a12('0x55')]()[_0x3a12('0x32')](function(_0x5b205d){if(_0x5b205d[_0x3a12('0x56')]){_0x4a2955();}else{return _0x5a056b['status'](0x193)[_0x3a12('0x35')]({'message':_0x3a12('0x57')});}})[_0x3a12('0x3f')](function(_0x1c1463){_0x4a2955(_0x1c1463);});});};exports[_0x3a12('0x58')]=function(_0x226aad,_0x4fdf7a,_0x3df898){_0x226aad[_0x3a12('0x58')]=!![];return _0x3df898();};exports[_0x3a12('0x59')]=function signToken(_0x194e0a){return signJwt(_0x194e0a);};exports[_0x3a12('0x5a')]=function(_0x534212,_0x38980c){if(!_0x534212[_0x3a12('0x2e')]){return _0x38980c[_0x3a12('0x33')](0x194)[_0x3a12('0x35')]({'message':_0x3a12('0x5b')});}var _0x4e3383={'payload':{'id':_0x534212[_0x3a12('0x2e')]['id'],'role':_0x534212[_0x3a12('0x2e')]['role']},'options':{'expiresIn':0x15180}};return signJwt(_0x4e3383)['then'](function(_0x39a454){_0x38980c['cookie']('motion.token',_0x39a454);_0x38980c[_0x3a12('0x5c')](_0x3a12('0x5d'));})['catch'](function(_0x2d2e93){return _0x38980c[_0x3a12('0x33')](0x1f4)[_0x3a12('0x5e')](_0x2d2e93);});};exports[_0x3a12('0x5f')]=function(_0x39d4d5){if(_[_0x3a12('0x60')](_0x39d4d5['apiKeyNonce'])||_[_0x3a12('0x60')](_0x39d4d5[_0x3a12('0x61')])){return null;}else{return createJwt(_0x39d4d5);}};exports[_0x3a12('0x62')]=function(_0x22743f){_0x22743f[_0x3a12('0x63')]=generateNonce();_0x22743f['apiKeyIat']=generateIssuedAt();return createJwt(_0x22743f);};exports['regenerateApiKey']=function(_0x5c5053,_0x246d37){var _0x66cd80=_0x5c5053[_0x3a12('0x42')]['apikey'];if(_0x66cd80){var _0x361117={'nonce':_0x246d37[_0x3a12('0x63')],'iat':_0x246d37[_0x3a12('0x61')],'audience':hardwareConf['getUuid'](),'issuer':hardwareConf['getUuid']()};return verifyJwt(_0x66cd80,_0x361117)[_0x3a12('0x32')](function(){return generateApiKey(_0x246d37);});}else{throw{'message':'Please\x20use\x20the\x20previous\x20API\x20access\x20key\x20to\x20generate\x20a\x20new\x20one'};}};exports[_0x3a12('0x64')]=function(_0x3bdf5c){var _0x5722f8=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(!_0x5722f8[_0x3a12('0x65')](_0x3bdf5c))throw new db[(_0x3a12('0x66'))][(_0x3a12('0x67'))](_0x3a12('0x68'));return;};exports['validatePasswordHistory']=function(_0x54d40f,_0x51bb98,_0x1e5ab9){var _0x1acfa8=encryptor['decryptString'](_0x51bb98)['split'](',');for(var _0x3a666b=0x0;_0x3a666b<_0x1e5ab9;_0x3a666b++){if(!_0x1acfa8[_0x3a666b])break;if(_0x54d40f[_0x3a12('0x69')]()===_0x1acfa8[_0x3a666b][_0x3a12('0x69')]()){var _0x39af19=util['format'](_0x3a12('0x6a'),_0x1e5ab9);if(_0x1e5ab9===0x1){_0x39af19=_0x3a12('0x6b');}throw new db[(_0x3a12('0x66'))][(_0x3a12('0x67'))](_0x39af19);}}return;};exports[_0x3a12('0x6c')]=function(_0xd1c18f,_0x1f25cd){var _0x43726c=_0x1f25cd?encryptor[_0x3a12('0x6d')](_0x1f25cd)[_0x3a12('0x6e')](','):[];if(_0x43726c['length']===0x5){_0x43726c[_0x3a12('0x6f')](-0x1,0x1);}_0x43726c['unshift'](_0xd1c18f);return encryptor[_0x3a12('0x70')](_0x43726c[_0x3a12('0x71')](','));};function signJwt(_0x2c353f){var _0x5e8e22=BPromise['promisify'](jwt[_0x3a12('0x72')],{'context':jwt});var _0x15cf9b=_0x2c353f[_0x3a12('0x73')]||config[_0x3a12('0x74')][_0x3a12('0xb')];return new BPromise(function(_0xc169c0,_0x21fb13){_0x5e8e22(_0x2c353f[_0x3a12('0x75')],_0x15cf9b,_0x2c353f[_0x3a12('0x76')])[_0x3a12('0x32')](function(_0x357978){_0xc169c0(_0x357978);})['catch'](function(_0x7b2d54){_0x21fb13(_0x7b2d54);});});}function verifyJwt(_0x2861f0,_0x233ffa,_0x1e73dc){var _0x48ea07=BPromise['promisify'](jwt[_0x3a12('0x77')],{'context':jwt});var _0x5e1985=_0x1e73dc||config[_0x3a12('0x74')][_0x3a12('0xb')];return new BPromise(function(_0x3802c2,_0xb4f3d4){_0x48ea07(_0x2861f0,_0x5e1985,_0x233ffa)[_0x3a12('0x32')](function(_0x45ee8e){_0x3802c2(_0x45ee8e);})[_0x3a12('0x3f')](function(_0x6b8006){_0xb4f3d4(_0x6b8006);});});}function generateNonce(){return crypto[_0x3a12('0x78')](0x10)[_0x3a12('0x79')](_0x3a12('0x7a'));}function generateIssuedAt(){return Math[_0x3a12('0x7b')](Date[_0x3a12('0x7c')]()/0x3e8)[_0x3a12('0x79')]();}function createJwt(_0x1a7d4a){var _0x1a0be1={'payload':{'iat':_0x1a7d4a['apiKeyIat'],'nonce':_0x1a7d4a[_0x3a12('0x63')]},'options':{'algorithm':_0x3a12('0x7d'),'subject':_0x1a7d4a['id'][_0x3a12('0x79')](),'issuer':hardwareConf['getUuid'](),'audience':hardwareConf[_0x3a12('0x44')]()}};return signJwt(_0x1a0be1)[_0x3a12('0x32')](function(_0x4d21bc){return{'iat':_0x1a7d4a[_0x3a12('0x61')],'nonce':_0x1a7d4a['apiKeyNonce'],'token':_0x4d21bc};});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3f1b=['aes-256-ctr','encrypt','algorithm','error','is\x20not\x20a\x20supported\x20algorithm.\x20Your\x20system\x20supports\x20the\x20following\x20algorithms:','test','getCiphers','indexOf','hasOwnProperty','encryptFile','createReadStream','createWriteStream','data','update','binary','end','final','write','close','unlink','decryptFile','createDecipher','encryptString','secret','base64','decryptString','utf8','crypto','bluebird','lodash','../../config/environment','session'];(function(_0x48f906,_0x24c8cc){var _0x4e05a9=function(_0x507e5e){while(--_0x507e5e){_0x48f906['push'](_0x48f906['shift']());}};_0x4e05a9(++_0x24c8cc);}(_0x3f1b,0x1bb));var _0xb3f1=function(_0x4ea639,_0x118afb){_0x4ea639=_0x4ea639-0x0;var _0x4f2407=_0x3f1b[_0x4ea639];return _0x4f2407;};'use strict';var crypto=require(_0xb3f1('0x0'));var fs=require('fs');var BPromise=require(_0xb3f1('0x1'));var _=require(_0xb3f1('0x2'));var config=require(_0xb3f1('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['secrets'][_0xb3f1('0x4')],'algorithm':_0xb3f1('0x5')};const fileOptions={'algorithm':'aes192'};if(config[_0xb3f1('0x6')]&&config['encrypt']['algorithm']){var isSupported=isAlgorithmSupported(config[_0xb3f1('0x6')][_0xb3f1('0x7')]);if(isSupported){fileOptions[_0xb3f1('0x7')]=config[_0xb3f1('0x6')][_0xb3f1('0x7')];}else{var supportedAlgorithms=getSupportedCiphers()['join'](',\x20');logger[_0xb3f1('0x8')](config[_0xb3f1('0x6')][_0xb3f1('0x7')],_0xb3f1('0x9'),supportedAlgorithms);}}function isASupportedCipher(_0x5514aa){return AES_SUPPORTED_RX[_0xb3f1('0xa')](_0x5514aa);}function getSupportedCiphers(){return crypto[_0xb3f1('0xb')]()['filter'](isASupportedCipher);}function isAlgorithmSupported(_0x17c70b){return getSupportedCiphers()[_0xb3f1('0xc')](_0x17c70b)>-0x1;}function combineOptions(_0x5eb34a){var _0x6d0391={};for(var _0x3e65c2 in fileOptions){if(fileOptions['hasOwnProperty'](_0x3e65c2)){_0x6d0391[_0x3e65c2]=fileOptions[_0x3e65c2];}}if(_0x5eb34a){for(var _0x43b37e in _0x5eb34a){if(_0x5eb34a[_0xb3f1('0xd')](_0x43b37e)){_0x6d0391[_0x43b37e]=_0x5eb34a[_0x43b37e];}}}return _0x6d0391;}exports[_0xb3f1('0xe')]=function(_0x2431ba,_0x2658aa,_0x6319c1,_0x49e92f){return new BPromise(function(_0x494af2,_0x22d122){_0x49e92f=combineOptions(_0x49e92f);var _0x401afb=new Buffer(_0x6319c1);var _0x47e126=fs[_0xb3f1('0xf')](_0x2431ba);var _0x3cec87=fs[_0xb3f1('0x10')](_0x2658aa);var _0x317fa6=crypto['createCipher'](_0x49e92f[_0xb3f1('0x7')],_0x401afb);_0x47e126['on'](_0xb3f1('0x11'),function(_0x3abd23){var _0x54e0a6=new Buffer(_0x317fa6[_0xb3f1('0x12')](_0x3abd23),_0xb3f1('0x13'));_0x3cec87['write'](_0x54e0a6);});_0x47e126['on'](_0xb3f1('0x14'),function(){try{var _0x64eae9=new Buffer(_0x317fa6[_0xb3f1('0x15')](_0xb3f1('0x13')),_0xb3f1('0x13'));_0x3cec87[_0xb3f1('0x16')](_0x64eae9);_0x3cec87[_0xb3f1('0x14')]();_0x3cec87['on'](_0xb3f1('0x17'),function(){return _0x494af2(_0x2658aa);});}catch(_0x4aa235){fs[_0xb3f1('0x18')](_0x2658aa);return _0x22d122(_0x4aa235);}});});};exports[_0xb3f1('0x19')]=function(_0x1f1a85,_0x59e278,_0x5554ec,_0x1246cc){return new BPromise(function(_0x12a63d,_0x159d9e){_0x1246cc=combineOptions(_0x1246cc);var _0x3c2155=new Buffer(_0x5554ec);var _0x4afb01=fs[_0xb3f1('0xf')](_0x1f1a85);var _0x1b4806=fs['createWriteStream'](_0x59e278);var _0x1eefe9=crypto[_0xb3f1('0x1a')](_0x1246cc[_0xb3f1('0x7')],_0x3c2155);_0x4afb01['on'](_0xb3f1('0x11'),function(_0x5795bc){var _0x3e9aff=new Buffer(_0x1eefe9[_0xb3f1('0x12')](_0x5795bc),_0xb3f1('0x13'));_0x1b4806[_0xb3f1('0x16')](_0x3e9aff);});_0x4afb01['on'](_0xb3f1('0x14'),function(){try{var _0x46029e=new Buffer(_0x1eefe9[_0xb3f1('0x15')](_0xb3f1('0x13')),'binary');_0x1b4806['write'](_0x46029e);_0x1b4806[_0xb3f1('0x14')]();_0x1b4806['on']('close',function(){return _0x12a63d(_0x59e278);});}catch(_0x23d2eb){fs['unlink'](_0x59e278);return _0x159d9e(_0x23d2eb);}});});};exports[_0xb3f1('0x1b')]=function(_0x18da1c,_0x363fe2,_0x466d2d){var _0x581af4=_0x466d2d||stringOptions[_0xb3f1('0x7')];var _0x15d7be=_0x363fe2||stringOptions[_0xb3f1('0x1c')];var _0xbae919=crypto['createCipher'](_0x581af4,_0x15d7be);var _0x1ab293=_0xbae919[_0xb3f1('0x12')](_0x18da1c,'utf8',_0xb3f1('0x1d'));_0x1ab293+=_0xbae919[_0xb3f1('0x15')]('base64');return _0x1ab293;};exports[_0xb3f1('0x1e')]=function(_0x4a1199,_0x4b620e,_0x5cc5b3){var _0x530e73=_0x5cc5b3||stringOptions[_0xb3f1('0x7')];var _0x5e37e8=_0x4b620e||stringOptions[_0xb3f1('0x1c')];var _0xcaf0b7=crypto[_0xb3f1('0x1a')](_0x530e73,_0x5e37e8);var _0x5e1943=_0xcaf0b7[_0xb3f1('0x12')](_0x4a1199,_0xb3f1('0x1d'),_0xb3f1('0x1f'));_0x5e1943+=_0xcaf0b7[_0xb3f1('0x15')]('utf8');return _0x5e1943;};
\ No newline at end of file
+var _0x0cc7=['bluebird','../../config/environment','../../config/logger','app','secrets','session','aes-256-ctr','encrypt','algorithm','join','error','test','getCiphers','indexOf','hasOwnProperty','encryptFile','createReadStream','data','update','binary','write','end','close','decryptFile','createWriteStream','createDecipher','final','unlink','encryptString','utf8','base64','secret','crypto'];(function(_0x85047b,_0x5aef26){var _0x56b415=function(_0x688e38){while(--_0x688e38){_0x85047b['push'](_0x85047b['shift']());}};_0x56b415(++_0x5aef26);}(_0x0cc7,0x107));var _0x70cc=function(_0x20a558,_0x160e0e){_0x20a558=_0x20a558-0x0;var _0x53d3f7=_0x0cc7[_0x20a558];return _0x53d3f7;};'use strict';var crypto=require(_0x70cc('0x0'));var fs=require('fs');var BPromise=require(_0x70cc('0x1'));var _=require('lodash');var config=require(_0x70cc('0x2'));var logger=require(_0x70cc('0x3'))(_0x70cc('0x4'));const AES_SUPPORTED_RX=/^aes(-)?\d{3}(-(cbc|cfb|ctr)(1|8)?){0,1}$/;const stringOptions={'secret':config[_0x70cc('0x5')][_0x70cc('0x6')],'algorithm':_0x70cc('0x7')};const fileOptions={'algorithm':'aes192'};if(config[_0x70cc('0x8')]&&config['encrypt'][_0x70cc('0x9')]){var isSupported=isAlgorithmSupported(config['encrypt'][_0x70cc('0x9')]);if(isSupported){fileOptions[_0x70cc('0x9')]=config['encrypt'][_0x70cc('0x9')];}else{var supportedAlgorithms=getSupportedCiphers()[_0x70cc('0xa')](',\x20');logger[_0x70cc('0xb')](config[_0x70cc('0x8')]['algorithm'],'is\x20not\x20a\x20supported\x20algorithm.\x20Your\x20system\x20supports\x20the\x20following\x20algorithms:',supportedAlgorithms);}}function isASupportedCipher(_0x2fbb68){return AES_SUPPORTED_RX[_0x70cc('0xc')](_0x2fbb68);}function getSupportedCiphers(){return crypto[_0x70cc('0xd')]()['filter'](isASupportedCipher);}function isAlgorithmSupported(_0x5f36e6){return getSupportedCiphers()[_0x70cc('0xe')](_0x5f36e6)>-0x1;}function combineOptions(_0x5b46b5){var _0x1e7011={};for(var _0x29b85f in fileOptions){if(fileOptions[_0x70cc('0xf')](_0x29b85f)){_0x1e7011[_0x29b85f]=fileOptions[_0x29b85f];}}if(_0x5b46b5){for(var _0x1a2a5a in _0x5b46b5){if(_0x5b46b5['hasOwnProperty'](_0x1a2a5a)){_0x1e7011[_0x1a2a5a]=_0x5b46b5[_0x1a2a5a];}}}return _0x1e7011;}exports[_0x70cc('0x10')]=function(_0x1781fa,_0xcd1bdf,_0x4007f1,_0x337169){return new BPromise(function(_0x499580,_0x53ec95){_0x337169=combineOptions(_0x337169);var _0x41ac3f=new Buffer(_0x4007f1);var _0xccbb29=fs[_0x70cc('0x11')](_0x1781fa);var _0x58023b=fs['createWriteStream'](_0xcd1bdf);var _0x5aea8f=crypto['createCipher'](_0x337169[_0x70cc('0x9')],_0x41ac3f);_0xccbb29['on'](_0x70cc('0x12'),function(_0x16b38b){var _0x14670c=new Buffer(_0x5aea8f[_0x70cc('0x13')](_0x16b38b),_0x70cc('0x14'));_0x58023b[_0x70cc('0x15')](_0x14670c);});_0xccbb29['on']('end',function(){try{var _0x8a24d=new Buffer(_0x5aea8f['final'](_0x70cc('0x14')),_0x70cc('0x14'));_0x58023b[_0x70cc('0x15')](_0x8a24d);_0x58023b[_0x70cc('0x16')]();_0x58023b['on'](_0x70cc('0x17'),function(){return _0x499580(_0xcd1bdf);});}catch(_0x442984){fs['unlink'](_0xcd1bdf);return _0x53ec95(_0x442984);}});});};exports[_0x70cc('0x18')]=function(_0x194528,_0x1f5cf7,_0x1910e8,_0x46a519){return new BPromise(function(_0x4e7ccf,_0xb92faf){_0x46a519=combineOptions(_0x46a519);var _0x199e28=new Buffer(_0x1910e8);var _0x1e9b42=fs['createReadStream'](_0x194528);var _0x3de215=fs[_0x70cc('0x19')](_0x1f5cf7);var _0x345fe7=crypto[_0x70cc('0x1a')](_0x46a519[_0x70cc('0x9')],_0x199e28);_0x1e9b42['on']('data',function(_0x12bd7c){var _0x136404=new Buffer(_0x345fe7[_0x70cc('0x13')](_0x12bd7c),_0x70cc('0x14'));_0x3de215['write'](_0x136404);});_0x1e9b42['on'](_0x70cc('0x16'),function(){try{var _0x56a6d3=new Buffer(_0x345fe7[_0x70cc('0x1b')](_0x70cc('0x14')),'binary');_0x3de215['write'](_0x56a6d3);_0x3de215[_0x70cc('0x16')]();_0x3de215['on'](_0x70cc('0x17'),function(){return _0x4e7ccf(_0x1f5cf7);});}catch(_0x287be9){fs[_0x70cc('0x1c')](_0x1f5cf7);return _0xb92faf(_0x287be9);}});});};exports[_0x70cc('0x1d')]=function(_0x588569,_0x4c57fb,_0x156120){var _0xc933ca=_0x156120||stringOptions[_0x70cc('0x9')];var _0x17b199=_0x4c57fb||stringOptions['secret'];var _0xeb56fa=crypto['createCipher'](_0xc933ca,_0x17b199);var _0x586574=_0xeb56fa[_0x70cc('0x13')](_0x588569,_0x70cc('0x1e'),_0x70cc('0x1f'));_0x586574+=_0xeb56fa[_0x70cc('0x1b')](_0x70cc('0x1f'));return _0x586574;};exports['decryptString']=function(_0x233b19,_0xb9a4f5,_0x3ccd46){var _0x2c14ee=_0x3ccd46||stringOptions[_0x70cc('0x9')];var _0x4e6abb=_0xb9a4f5||stringOptions[_0x70cc('0x20')];var _0x1f59e3=crypto[_0x70cc('0x1a')](_0x2c14ee,_0x4e6abb);var _0x297704=_0x1f59e3[_0x70cc('0x13')](_0x233b19,_0x70cc('0x1f'),_0x70cc('0x1e'));_0x297704+=_0x1f59e3[_0x70cc('0x1b')](_0x70cc('0x1e'));return _0x297704;};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8cc8=['path','lodash','to-csv','bluebird','zip-dir','rimraf','../../mysqldb','dbH','../../config/logger','analytics','argv','AnalyticExtractedReport','update','format','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','CSV','Setting','split','splitSizeCsv','then','sequelize','query','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','QueryTypes','SELECT','Empty','length','num','push','dirname','basename','.csv','existsSync','join','mkdirSync','each','%s%d.%s','csv','%s.%s','writeFileSync','zip','info','Completed','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','inspect','Failed','util'];(function(_0x2acd0a,_0x3c12c6){var _0x40e123=function(_0xa3ddd2){while(--_0xa3ddd2){_0x2acd0a['push'](_0x2acd0a['shift']());}};_0x40e123(++_0x3c12c6);}(_0x8cc8,0x177));var _0x88cc=function(_0x110b6c,_0x3afcef){_0x110b6c=_0x110b6c-0x0;var _0x4f5ffb=_0x8cc8[_0x110b6c];return _0x4f5ffb;};'use strict';var util=require(_0x88cc('0x0'));var path=require(_0x88cc('0x1'));var _=require(_0x88cc('0x2'));var csv=require(_0x88cc('0x3'));var fs=require('fs');var BPromise=require(_0x88cc('0x4'));var zipdir=require(_0x88cc('0x5'));var rimraf=require(_0x88cc('0x6'));var db=require(_0x88cc('0x7'))['db'];var dbH=require(_0x88cc('0x7'))[_0x88cc('0x8')];var logger=require(_0x88cc('0x9'))(_0x88cc('0xa'));var EXTRACTED_REPORT_ID=Number(process[_0x88cc('0xb')][0x2]);var QUERY=process['argv'][0x3];var PATH=process['argv'][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0x3d35ed,_0x2db13a){var _0x219585={'status':_0x3d35ed};var _0x4471b0={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x2db13a){_0x219585['savename']=_0x2db13a;}return db[_0x88cc('0xc')][_0x88cc('0xd')](_0x219585,_0x4471b0);}function main(){var _0x574946=0x1388;var _0x349991;logger['info'](util[_0x88cc('0xe')](_0x88cc('0xf'),EXTRACTED_REPORT_ID,_0x88cc('0x10')));return db[_0x88cc('0x11')]['find']({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x88cc('0x12'),_0x88cc('0x13')]})[_0x88cc('0x14')](function(_0x2219e1){if(_0x2219e1){_0x349991=_0x2219e1;_0x574946=_0x349991[_0x88cc('0x13')]||0x1388;}})[_0x88cc('0x14')](function(){return dbH[_0x88cc('0x15')][_0x88cc('0x16')](util['format'](_0x88cc('0x17'),QUERY),{'type':dbH[_0x88cc('0x15')][_0x88cc('0x18')][_0x88cc('0x19')]});})[_0x88cc('0x14')](function(_0x4255bb){if(!_0x4255bb[0x0]['num']){return analyticExtractedReport(_0x88cc('0x1a'));}var _0x468101=[];var _0x1a42ab=0x0;var _0x2625db=!![];if(_0x4255bb&&_0x4255bb[_0x88cc('0x1b')]){var _0x4c24d9=_0x4255bb[0x0][_0x88cc('0x1c')]%(_0x1a42ab+_0x574946);if(_0x349991[_0x88cc('0x12')]){for(;_0x2625db;_0x1a42ab+=_0x574946,_0x4c24d9=_0x4255bb[0x0][_0x88cc('0x1c')]%(_0x1a42ab+_0x574946)){if(_0x4c24d9==0x0||_0x4c24d9==_0x4255bb[0x0][_0x88cc('0x1c')]){_0x2625db=![];}_0x468101[_0x88cc('0x1d')](dbH['sequelize'][_0x88cc('0x16')](util[_0x88cc('0xe')]('%s\x20limit\x20%d\x20OFFSET\x20%d',QUERY,_0x574946,_0x1a42ab),{'type':dbH[_0x88cc('0x15')]['QueryTypes'][_0x88cc('0x19')]}));}}else{_0x468101[_0x88cc('0x1d')](dbH['sequelize'][_0x88cc('0x16')](QUERY,{'type':dbH[_0x88cc('0x15')][_0x88cc('0x18')][_0x88cc('0x19')]}));}}var _0x4351d0=path[_0x88cc('0x1e')](PATH);var _0x4e5edb=path[_0x88cc('0x1f')](PATH,_0x88cc('0x20'));var _0x22abea=_0x349991[_0x88cc('0x12')]&&_0x468101[_0x88cc('0x1b')]>0x1;var _0x3c2353=[];if(!fs[_0x88cc('0x21')](path[_0x88cc('0x22')](_0x4351d0,_0x4e5edb))&&_0x22abea){fs[_0x88cc('0x23')](path[_0x88cc('0x22')](_0x4351d0,_0x4e5edb));}return BPromise[_0x88cc('0x24')](_0x468101,function(_0x35c695){_0x3c2353[_0x88cc('0x1d')](_0x35c695);})['then'](function(){for(var _0x155e43=0x0;_0x155e43<_0x3c2353[_0x88cc('0x1b')];_0x155e43+=0x1){var _0x44ae48;var _0x3474b6=_0x3c2353[_0x155e43];if(_0x22abea){_0x44ae48=path[_0x88cc('0x22')](_0x4351d0,_0x4e5edb,util[_0x88cc('0xe')](_0x88cc('0x25'),_0x4e5edb,_0x155e43,_0x88cc('0x26')));}else{_0x44ae48=path['join'](_0x4351d0,util['format'](_0x88cc('0x27'),_0x4e5edb,_0x88cc('0x26')));}fs[_0x88cc('0x28')](_0x44ae48,csv(_0x3474b6));}})['then'](function(){if(_0x22abea){zipdir(path['join'](_0x4351d0,_0x4e5edb),{'saveTo':path[_0x88cc('0x22')](_0x4351d0,util[_0x88cc('0xe')]('%s.%s',_0x4e5edb,_0x88cc('0x29')))},function(_0x17d432,_0x10248e){});rimraf(path['join'](_0x4351d0,_0x4e5edb),function(){});}})[_0x88cc('0x14')](function(){logger[_0x88cc('0x2a')](util[_0x88cc('0xe')]('Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed',EXTRACTED_REPORT_ID,_0x88cc('0x10')));return analyticExtractedReport(_0x88cc('0x2b'),_0x22abea?util[_0x88cc('0xe')](_0x88cc('0x27'),_0x4e5edb,_0x22abea?_0x88cc('0x29'):_0x88cc('0x26')):null);});})['catch'](function(_0x216cac){logger[_0x88cc('0x2a')](util[_0x88cc('0xe')](_0x88cc('0x2c'),EXTRACTED_REPORT_ID,_0x88cc('0x10')),util[_0x88cc('0x2d')](_0x216cac,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0x88cc('0x2e'));})['finally'](function(){process['exit'](EXIT_CODE);});}main();
\ No newline at end of file
+var _0xc2c1=['AnalyticExtractedReport','update','info','format','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','CSV','Setting','find','splitSizeCsv','then','sequelize','query','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','QueryTypes','Empty','length','range','num','isInteger','push','SELECT','%s\x20limit\x20%d\x20OFFSET\x20%d','dirname','basename','.csv','split','existsSync','join','%s%d.%s','csv','%s.%s','writeFileSync','zip','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','Completed','catch','inspect','Failed','exit','util','to-csv','bluebird','zip-dir','rimraf','../../mysqldb','dbH','../../config/logger','analytics','argv','savename'];(function(_0x328281,_0x5f2d99){var _0x3b26cd=function(_0x2c2f21){while(--_0x2c2f21){_0x328281['push'](_0x328281['shift']());}};_0x3b26cd(++_0x5f2d99);}(_0xc2c1,0x185));var _0x1c2c=function(_0x1d1f60,_0x2d4a8d){_0x1d1f60=_0x1d1f60-0x0;var _0x330d3a=_0xc2c1[_0x1d1f60];return _0x330d3a;};'use strict';var util=require(_0x1c2c('0x0'));var path=require('path');var _=require('lodash');var csv=require(_0x1c2c('0x1'));var fs=require('fs');var BPromise=require(_0x1c2c('0x2'));var zipdir=require(_0x1c2c('0x3'));var rimraf=require(_0x1c2c('0x4'));var db=require('../../mysqldb')['db'];var dbH=require(_0x1c2c('0x5'))[_0x1c2c('0x6')];var logger=require(_0x1c2c('0x7'))(_0x1c2c('0x8'));var EXTRACTED_REPORT_ID=Number(process[_0x1c2c('0x9')][0x2]);var QUERY=process[_0x1c2c('0x9')][0x3];var PATH=process['argv'][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0x59a554,_0x276a82){var _0x3832a1={'status':_0x59a554};var _0x529619={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x276a82){_0x3832a1[_0x1c2c('0xa')]=_0x276a82;}return db[_0x1c2c('0xb')][_0x1c2c('0xc')](_0x3832a1,_0x529619);}function main(){var _0x18c1e5=0x1388;var _0x106beb;logger[_0x1c2c('0xd')](util[_0x1c2c('0xe')](_0x1c2c('0xf'),EXTRACTED_REPORT_ID,_0x1c2c('0x10')));return db[_0x1c2c('0x11')][_0x1c2c('0x12')]({'where':{'id':0x1},'raw':!![],'attributes':['id','split',_0x1c2c('0x13')]})[_0x1c2c('0x14')](function(_0x81ccd0){if(_0x81ccd0){_0x106beb=_0x81ccd0;_0x18c1e5=_0x106beb[_0x1c2c('0x13')]||0x1388;}})[_0x1c2c('0x14')](function(){return dbH[_0x1c2c('0x15')][_0x1c2c('0x16')](util[_0x1c2c('0xe')](_0x1c2c('0x17'),QUERY),{'type':dbH[_0x1c2c('0x15')][_0x1c2c('0x18')]['SELECT']});})['then'](function(_0x473d19){if(!_0x473d19[0x0]['num']){return analyticExtractedReport(_0x1c2c('0x19'));}var _0x42527a=[];var _0x417f00=0x0;if(_0x106beb['split']){if(_0x473d19&&_0x473d19[_0x1c2c('0x1a')]){var _0x30b8d2=_[_0x1c2c('0x1b')](_0x473d19[0x0][_0x1c2c('0x1c')]/_0x18c1e5);var _0x3314dd=Number[_0x1c2c('0x1d')](_0x473d19[0x0]['num']/_0x18c1e5)?_0x473d19[0x0][_0x1c2c('0x1c')]%_0x18c1e5:0x0;_0x30b8d2['forEach'](function(_0x30d5a9){if(_0x30d5a9>0x0){_0x417f00+=_0x18c1e5;}_0x42527a[_0x1c2c('0x1e')](dbH[_0x1c2c('0x15')][_0x1c2c('0x16')](util['format']('%s\x20limit\x20%d\x20OFFSET\x20%d',QUERY,_0x18c1e5,_0x417f00),{'type':dbH[_0x1c2c('0x15')][_0x1c2c('0x18')][_0x1c2c('0x1f')]}));});if(_0x3314dd>0x0){_0x417f00+=_0x18c1e5;_0x42527a[_0x1c2c('0x1e')](dbH[_0x1c2c('0x15')]['query'](util[_0x1c2c('0xe')](_0x1c2c('0x20'),QUERY,_0x3314dd,_0x417f00),{'type':dbH[_0x1c2c('0x15')][_0x1c2c('0x18')][_0x1c2c('0x1f')]}));}}}else{_0x42527a[_0x1c2c('0x1e')](dbH['sequelize'][_0x1c2c('0x16')](QUERY,{'type':dbH['sequelize'][_0x1c2c('0x18')][_0x1c2c('0x1f')]}));}var _0x299804=path[_0x1c2c('0x21')](PATH);var _0x45b91b=path[_0x1c2c('0x22')](PATH,_0x1c2c('0x23'));var _0x22289c=_0x106beb[_0x1c2c('0x24')]&&_0x42527a[_0x1c2c('0x1a')]>0x1;var _0x9c27cf=[];if(!fs[_0x1c2c('0x25')](path[_0x1c2c('0x26')](_0x299804,_0x45b91b))&&_0x22289c){fs['mkdirSync'](path[_0x1c2c('0x26')](_0x299804,_0x45b91b));}return BPromise['each'](_0x42527a,function(_0x47e537){_0x9c27cf[_0x1c2c('0x1e')](_0x47e537);})[_0x1c2c('0x14')](function(){for(var _0x4e3240=0x0;_0x4e3240<_0x9c27cf['length'];_0x4e3240+=0x1){var _0x367560;var _0x626a0e=_0x9c27cf[_0x4e3240];if(_0x22289c){_0x367560=path[_0x1c2c('0x26')](_0x299804,_0x45b91b,util[_0x1c2c('0xe')](_0x1c2c('0x27'),_0x45b91b,_0x4e3240,_0x1c2c('0x28')));}else{_0x367560=path['join'](_0x299804,util[_0x1c2c('0xe')](_0x1c2c('0x29'),_0x45b91b,_0x1c2c('0x28')));}fs[_0x1c2c('0x2a')](_0x367560,csv(_0x626a0e));}})[_0x1c2c('0x14')](function(){if(_0x22289c){return new Promise(function(_0x39ddac){zipdir(path[_0x1c2c('0x26')](_0x299804,_0x45b91b),{'saveTo':path[_0x1c2c('0x26')](_0x299804,util[_0x1c2c('0xe')](_0x1c2c('0x29'),_0x45b91b,_0x1c2c('0x2b')))},function(_0x407aec,_0x54ad88){rimraf(path[_0x1c2c('0x26')](_0x299804,_0x45b91b),function(){});_0x39ddac('zip\x20finished');});});}})[_0x1c2c('0x14')](function(){logger['info'](util[_0x1c2c('0xe')](_0x1c2c('0x2c'),EXTRACTED_REPORT_ID,_0x1c2c('0x10')));return analyticExtractedReport(_0x1c2c('0x2d'),_0x22289c?util[_0x1c2c('0xe')](_0x1c2c('0x29'),_0x45b91b,_0x22289c?_0x1c2c('0x2b'):_0x1c2c('0x28')):null);});})[_0x1c2c('0x2e')](function(_0x3c4f1d){logger[_0x1c2c('0xd')](util['format']('Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,_0x1c2c('0x10')),util[_0x1c2c('0x2f')](_0x3c4f1d,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0x1c2c('0x30'));})['finally'](function(){process[_0x1c2c('0x31')](EXIT_CODE);});}main();
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xac40=['dirname','basename','.pdf','join','pdf','Setting','find','split','splitSizePdf','then','sequelize','query','%s\x20limit\x20%d\x20OFFSET\x20%d','SELECT','QueryTypes','mkdirSync','flatten','createPdfKitDocument','%s%d.%s','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','CSV','Completed','%s.%s','info','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','PDF','findOne','catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','finally','exit','/fonts/arial-regular.ttf','/fonts/arial-bold.ttf','/fonts/arial-italic.ttf','%s\x20#%d','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','end','createPdfFromHTML','lodash','util','path','html-to-pdfmake','pdfmake/src/printer','zip-dir','jsdom','JSDOM','window','../../mysqldb','dbH','analytics','argv','MMMM\x20Do\x20YYYY,\x20h:mm:ss\x20a','savename','AnalyticExtractedReport','map','tableHeader','pick','toString','value','length','body','concat','chunk','keys','forEach','push','format','Name:\x20%s\x0aReport:\x20%s\x0aFrom:\x20%s\x20To:\x20%s','name','startDate','endDate','header','before','margin','landscape','\x20/\x20','footer','right','num','Empty'];(function(_0x3b76f7,_0x566c53){var _0x43984e=function(_0x164f77){while(--_0x164f77){_0x3b76f7['push'](_0x3b76f7['shift']());}};_0x43984e(++_0x566c53);}(_0xac40,0x1e0));var _0x0ac4=function(_0x3cd2bc,_0x31039c){_0x3cd2bc=_0x3cd2bc-0x0;var _0x42de8e=_0xac40[_0x3cd2bc];return _0x42de8e;};'use strict';var _=require(_0x0ac4('0x0'));var fs=require('fs');var util=require(_0x0ac4('0x1'));var path=require(_0x0ac4('0x2'));var moment=require('moment');var htmlToPdfmake=require(_0x0ac4('0x3'));var PdfPrinter=require(_0x0ac4('0x4'));var zipdir=require(_0x0ac4('0x5'));var rimraf=require('rimraf');var JSDOM=require(_0x0ac4('0x6'))[_0x0ac4('0x7')];var window=new JSDOM('')[_0x0ac4('0x8')];var db=require(_0x0ac4('0x9'))['db'];var dbH=require(_0x0ac4('0x9'))[_0x0ac4('0xa')];var logger=require('../../config/logger')(_0x0ac4('0xb'));var EXTRACTED_REPORT_ID=Number(process['argv'][0x2]);var QUERY=process[_0x0ac4('0xc')][0x3];var PATH=process[_0x0ac4('0xc')][0x4];var NAME=process[_0x0ac4('0xc')][0x5];var FORMAT=_0x0ac4('0xd');var EXTRACTED_REPORT;var EXIT_CODE=0x0;function analyticExtractedReport(_0x37c673,_0x549210){var _0x11759d={'status':_0x37c673};var _0x36c8f5={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x549210){_0x11759d[_0x0ac4('0xe')]=_0x549210;}return db[_0x0ac4('0xf')]['update'](_0x11759d,_0x36c8f5);}function getHeaders(_0x520c81){return _[_0x0ac4('0x10')](_0x520c81,function(_0x28c239){return{'text':_0x28c239,'style':_0x0ac4('0x11')};});}function getRows(_0x5054f1,_0x57f59e){return _[_0x0ac4('0x10')](_0x57f59e,function(_0x1d1c0c){return _(_0x1d1c0c)[_0x0ac4('0x12')](_0x5054f1)[_0x0ac4('0x10')](function(_0x38c0a0){return _0x38c0a0?_[_0x0ac4('0x13')](_0x38c0a0):'';})[_0x0ac4('0x14')]();});}function createTable(_0x3d7fd0,_0x1297fa){var _0x4d72fa={'widths':_['fill'](Array(_0x3d7fd0[_0x0ac4('0x15')]),0x91),'heights':function(_0x4871f1){return _0x4871f1===0x0?'auto':0x32;},'dontBreakRows':!![],'headerRows':0x1,'body':[]};var _0x14578f=getHeaders(_0x3d7fd0);_0x4d72fa[_0x0ac4('0x16')]['push'](_0x14578f);var _0x4a66b1=getRows(_0x3d7fd0,_0x1297fa);_0x4d72fa[_0x0ac4('0x16')]=_0x4d72fa[_0x0ac4('0x16')][_0x0ac4('0x17')](_0x4a66b1);return _0x4d72fa;}function createTables(_0x444840){var _0x36e66b=[];var _0x36c371=_[_0x0ac4('0x18')](Object[_0x0ac4('0x19')](_0x444840[0x0]),0x5);_0x36c371[_0x0ac4('0x1a')](function(_0x5cef22){_0x36e66b[_0x0ac4('0x1b')](createTable(_0x5cef22,_0x444840));});return _0x36e66b;}function getPDFDocDefinition(_0x3aa7de){var _0x26bce4=util[_0x0ac4('0x1c')](_0x0ac4('0x1d'),NAME,EXTRACTED_REPORT[_0x0ac4('0x1e')],moment(EXTRACTED_REPORT[_0x0ac4('0x1f')])[_0x0ac4('0x1c')](FORMAT),moment(EXTRACTED_REPORT[_0x0ac4('0x20')])[_0x0ac4('0x1c')](FORMAT));var _0x49722c=[];for(var _0x4ee4f7=0x0;_0x4ee4f7<_0x3aa7de['length'];_0x4ee4f7++){var _0x329ac5=[];if(_0x4ee4f7===0x0){_0x329ac5['push']({'text':_0x26bce4,'style':_0x0ac4('0x21')});}var _0x4b9f3b={'table':_0x3aa7de[_0x4ee4f7]};if(_0x4ee4f7>0x0){_0x4b9f3b['pageBreak']=_0x0ac4('0x22');_0x4b9f3b[_0x0ac4('0x23')]=[0x0,0x46,0x0,0x0];}_0x329ac5[_0x0ac4('0x1b')](_0x4b9f3b);_0x49722c[_0x0ac4('0x1b')](_0x329ac5);}return{'pageSize':'A4','pageOrientation':_0x0ac4('0x24'),'content':_0x49722c,'footer':function(_0x4eb3e1,_0x86e940){return{'text':_0x4eb3e1[_0x0ac4('0x13')]()+_0x0ac4('0x25')+_0x86e940,'style':_0x0ac4('0x26')};},'defaultStyle':{'font':'Arial'},'styles':{'header':{'fontSize':0x12,'bold':!![],'margin':[0x0,0x0,0x0,0xa]},'tableHeader':{'bold':!![],'fontSize':0xd,'color':'black'},'footer':{'alignment':_0x0ac4('0x27'),'margin':[0x0,0x0,0x28,0x0]}}};}function extractReport(_0x398f6c){var _0x57b106=0x1388;var _0x4c10d7;if(!_0x398f6c[0x0][_0x0ac4('0x28')]){return analyticExtractedReport(_0x0ac4('0x29'));}var _0x3d1e47=[];var _0x3dcf63=0x0;var _0x246587=!![];var _0x2ab44f=path[_0x0ac4('0x2a')](PATH);var _0x17e5f2=path[_0x0ac4('0x2b')](PATH,_0x0ac4('0x2c'));var _0x2aed78=path[_0x0ac4('0x2d')](_0x2ab44f,util[_0x0ac4('0x1c')]('%s.%s',_0x17e5f2,_0x0ac4('0x2e')));var _0x2e637f=![];return db[_0x0ac4('0x2f')][_0x0ac4('0x30')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x0ac4('0x31'),'splitSizePdf']})['then'](function(_0x17daeb){if(_0x17daeb){_0x4c10d7=_0x17daeb;_0x57b106=_0x4c10d7[_0x0ac4('0x32')]||0x3e8;}})[_0x0ac4('0x33')](function(){if(_0x398f6c&&_0x398f6c[_0x0ac4('0x15')]){var _0x588c18=_0x398f6c[0x0][_0x0ac4('0x28')]%(_0x3dcf63+_0x57b106);if(_0x4c10d7[_0x0ac4('0x31')]){for(;_0x246587;_0x3dcf63+=_0x57b106,_0x588c18=_0x398f6c[0x0][_0x0ac4('0x28')]%(_0x3dcf63+_0x57b106)){if(_0x588c18==0x0||_0x588c18==_0x398f6c[0x0][_0x0ac4('0x28')]){_0x246587=![];}_0x3d1e47[_0x0ac4('0x1b')](dbH[_0x0ac4('0x34')][_0x0ac4('0x35')](util[_0x0ac4('0x1c')](_0x0ac4('0x36'),QUERY,_0x57b106,_0x3dcf63),{'type':dbH[_0x0ac4('0x34')]['QueryTypes'][_0x0ac4('0x37')]}));}}else{_0x3d1e47[_0x0ac4('0x1b')](dbH[_0x0ac4('0x34')]['query'](QUERY,{'type':dbH[_0x0ac4('0x34')][_0x0ac4('0x38')][_0x0ac4('0x37')]}));}}_0x2e637f=_0x4c10d7[_0x0ac4('0x31')]&&_0x3d1e47[_0x0ac4('0x15')]>0x1;if(!fs['existsSync'](path[_0x0ac4('0x2d')](_0x2ab44f,_0x17e5f2))&&_0x2e637f){fs[_0x0ac4('0x39')](path[_0x0ac4('0x2d')](_0x2ab44f,_0x17e5f2));}return Promise['all'](_0x3d1e47);})[_0x0ac4('0x33')](function(_0x36ee7f){return createTables(_[_0x0ac4('0x3a')](_0x36ee7f));})[_0x0ac4('0x33')](function(_0x2129e1){var _0x16485c=getPDFDocDefinition(_0x2129e1);var _0x356049=getPDFPrinter();var _0x4ef97a=_0x356049[_0x0ac4('0x3b')](_0x16485c);if(_0x2e637f)_0x2aed78=path[_0x0ac4('0x2d')](_0x2ab44f,_0x17e5f2,util[_0x0ac4('0x1c')](_0x0ac4('0x3c'),_0x17e5f2,index,_0x0ac4('0x2e')));return writePDFDocument(_0x4ef97a,_0x2aed78);})[_0x0ac4('0x33')](function(){if(!_0x2e637f)return;zipdir(path[_0x0ac4('0x2d')](_0x2ab44f,_0x17e5f2),{'saveTo':path[_0x0ac4('0x2d')](_0x2ab44f,util[_0x0ac4('0x1c')]('%s.%s',_0x17e5f2,'zip'))},function(_0x3ef46a){if(_0x3ef46a)throw _0x3ef46a;return;});})[_0x0ac4('0x33')](function(){if(!_0x2e637f)return;rimraf(path['join'](_0x2ab44f,_0x17e5f2),function(){});})[_0x0ac4('0x33')](function(){logger['info'](util[_0x0ac4('0x1c')](_0x0ac4('0x3d'),EXTRACTED_REPORT_ID,_0x0ac4('0x3e')));return analyticExtractedReport(_0x0ac4('0x3f'),_0x2e637f?util['format'](_0x0ac4('0x40'),_0x17e5f2,_0x2e637f?'zip':_0x0ac4('0x2e')):null);});}function main(){if(!EXTRACTED_REPORT_ID)return;logger[_0x0ac4('0x41')](util[_0x0ac4('0x1c')](_0x0ac4('0x42'),EXTRACTED_REPORT_ID,_0x0ac4('0x43')));return db[_0x0ac4('0xf')][_0x0ac4('0x44')]({'where':{'id':EXTRACTED_REPORT_ID}})['then'](function(_0x3f2148){EXTRACTED_REPORT=_0x3f2148;return dbH[_0x0ac4('0x34')]['query'](util['format']('SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t',QUERY),{'type':dbH[_0x0ac4('0x34')][_0x0ac4('0x38')][_0x0ac4('0x37')]});})[_0x0ac4('0x33')](extractReport)[_0x0ac4('0x45')](function(_0x387371){logger[_0x0ac4('0x41')](util['format'](_0x0ac4('0x46'),EXTRACTED_REPORT_ID,'PDF'),util['inspect'](_0x387371,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport('Failed');})[_0x0ac4('0x47')](function(){process[_0x0ac4('0x48')](EXIT_CODE);});}main();function getPDFPrinter(){var _0x325e36=new PdfPrinter({'Arial':{'normal':__dirname+_0x0ac4('0x49'),'bold':__dirname+_0x0ac4('0x4a'),'italics':__dirname+_0x0ac4('0x4b'),'bolditalics':__dirname+'/fonts/arial-bold-italic.ttf'}});return _0x325e36;}function getPDFDocDefinitionFromHTML(_0x48e9d8,_0x15c334){var _0x4f427d=util[_0x0ac4('0x1c')](_0x0ac4('0x4c'),_0x15c334['channel'],_0x15c334['interactionId']);var _0x44c906=moment()[_0x0ac4('0x1c')](_0x0ac4('0x4d'))[_0x0ac4('0x13')]();var _0x4941ed=htmlToPdfmake(_0x48e9d8,{'window':window,'tableAutoSize':!![]});return{'content':[_0x4941ed],'defaultStyle':{'font':'Arial'},'styles':{'header':{'fontSize':0x12,'bold':!![],'alignment':_0x0ac4('0x4e'),'margin':[0xa,0xa,0xa,0xa]},'footer':{'fontSize':0x9,'alignment':_0x0ac4('0x4e'),'margin':[0xa,0x14,0xa,0xa]},'textblock':{'fontSize':0xb},'textfield':{'bold':!![]},'messageContainer':{'fontSize':0xa},'messageInfo':{'bold':!![]},'interactionData':{'alignment':'center'}},'header':function(){return[{'text':_0x0ac4('0x4f'),'style':_0x0ac4('0x21')}];},'footer':function(_0x4748a1,_0xea431a){return[{'text':util['format'](_0x0ac4('0x50'),_0x4f427d,_0x4748a1,_0xea431a,_0x44c906),'style':_0x0ac4('0x26')}];}};}function writePDFDocument(_0x5cb1e9,_0x43a7b3){return new Promise(function(_0x29fa7f,_0x3328ca){var _0x4e79eb=_0x5cb1e9[_0x0ac4('0x51')](fs[_0x0ac4('0x52')](_0x43a7b3));_0x4e79eb['on']('finish',function(){_0x29fa7f(_0x0ac4('0x53'));});_0x4e79eb['on'](_0x0ac4('0x54'),function(_0x14aa63){_0x3328ca(_0x14aa63);});_0x5cb1e9[_0x0ac4('0x55')]();});}exports[_0x0ac4('0x56')]=function(_0x55320c,_0x13da87){var _0x46ce92=getPDFPrinter();var _0xe72c29=getPDFDocDefinitionFromHTML(_0x55320c,_0x13da87);var _0x338f1b=_0x46ce92[_0x0ac4('0x3b')](_0xe72c29);return writePDFDocument(_0x338f1b,_0x13da87['path'])[_0x0ac4('0x45')](function(_0x1fbe15){throw _0x1fbe15;});};
\ No newline at end of file
+var _0x0765=['format','name','startDate','endDate','header','pageBreak','before','margin','Arial','black','num','Empty','find','split','splitSizePdf','range','isInteger','query','%s\x20limit\x20%d\x20OFFSET\x20%d','sequelize','QueryTypes','SELECT','dirname','basename','existsSync','join','mkdirSync','each','then','flatten','createPdfKitDocument','%s%d.%s','pdf','zip\x20finished','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','Completed','%s.%s','zip','info','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','findOne','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','PDF','inspect','Failed','finally','exit','/fonts/arial-bold.ttf','/fonts/arial-italic.ttf','/fonts/arial-bold-italic.ttf','%s\x20#%d','YYYY-MM-DD','center','Interaction\x20Transcript','\x09\x09XCALLY\x20Motion\x20-\x20%s\x09\x09\x09\x09%d/%d\x09\x09\x09\x09%s','footer','createWriteStream','finish','error','end','createPdfFromHTML','path','lodash','util','moment','html-to-pdfmake','pdfmake/src/printer','zip-dir','rimraf','jsdom','window','bluebird','../../mysqldb','dbH','../../config/logger','analytics','argv','MMMM\x20Do\x20YYYY,\x20h:mm:ss\x20a','savename','update','tableHeader','pick','map','toString','value','fill','length','auto','push','body','concat','chunk','keys','forEach'];(function(_0x3df9dd,_0x26f5cd){var _0x4f11e4=function(_0x1993fe){while(--_0x1993fe){_0x3df9dd['push'](_0x3df9dd['shift']());}};_0x4f11e4(++_0x26f5cd);}(_0x0765,0x1c0));var _0x5076=function(_0x42d109,_0x313c16){_0x42d109=_0x42d109-0x0;var _0x580acc=_0x0765[_0x42d109];return _0x580acc;};'use strict';var _=require(_0x5076('0x0'));var fs=require('fs');var util=require(_0x5076('0x1'));var path=require('path');var moment=require(_0x5076('0x2'));var htmlToPdfmake=require(_0x5076('0x3'));var PdfPrinter=require(_0x5076('0x4'));var zipdir=require(_0x5076('0x5'));var rimraf=require(_0x5076('0x6'));var JSDOM=require(_0x5076('0x7'))['JSDOM'];var window=new JSDOM('')[_0x5076('0x8')];var BPromise=require(_0x5076('0x9'));var db=require(_0x5076('0xa'))['db'];var dbH=require(_0x5076('0xa'))[_0x5076('0xb')];var logger=require(_0x5076('0xc'))(_0x5076('0xd'));var EXTRACTED_REPORT_ID=Number(process[_0x5076('0xe')][0x2]);var QUERY=process['argv'][0x3];var PATH=process[_0x5076('0xe')][0x4];var NAME=process[_0x5076('0xe')][0x5];var FORMAT=_0x5076('0xf');var EXTRACTED_REPORT;var EXIT_CODE=0x0;function analyticExtractedReport(_0x1a0ab2,_0x540d16){var _0x4573e4={'status':_0x1a0ab2};var _0x103612={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x540d16){_0x4573e4[_0x5076('0x10')]=_0x540d16;}return db['AnalyticExtractedReport'][_0x5076('0x11')](_0x4573e4,_0x103612);}function getHeaders(_0x5b5d17){return _['map'](_0x5b5d17,function(_0x337833){return{'text':_0x337833,'style':_0x5076('0x12')};});}function getRows(_0x58f0a9,_0x47395f){return _['map'](_0x47395f,function(_0x4ae3c9){return _(_0x4ae3c9)[_0x5076('0x13')](_0x58f0a9)[_0x5076('0x14')](function(_0x935fc1){return _0x935fc1?_[_0x5076('0x15')](_0x935fc1):'';})[_0x5076('0x16')]();});}function createTable(_0xc114a0,_0x7b30cc){var _0x4383bd={'widths':_[_0x5076('0x17')](Array(_0xc114a0[_0x5076('0x18')]),0x91),'heights':function(_0xc1c37b){return _0xc1c37b===0x0?_0x5076('0x19'):0x32;},'dontBreakRows':!![],'headerRows':0x1,'body':[]};var _0x824c4c=getHeaders(_0xc114a0);_0x4383bd['body'][_0x5076('0x1a')](_0x824c4c);var _0x3413d8=getRows(_0xc114a0,_0x7b30cc);_0x4383bd[_0x5076('0x1b')]=_0x4383bd[_0x5076('0x1b')][_0x5076('0x1c')](_0x3413d8);return _0x4383bd;}function createTables(_0x2a284c){var _0x1072e7=[];var _0x5e4328=_[_0x5076('0x1d')](Object[_0x5076('0x1e')](_0x2a284c[0x0]),0x5);_0x5e4328[_0x5076('0x1f')](function(_0x30ddcf){_0x1072e7['push'](createTable(_0x30ddcf,_0x2a284c));});return _0x1072e7;}function getPDFDocDefinition(_0x1d821f){var _0x2e4077=util[_0x5076('0x20')]('Name:\x20%s\x0aReport:\x20%s\x0aFrom:\x20%s\x20To:\x20%s',NAME,EXTRACTED_REPORT[_0x5076('0x21')],moment(EXTRACTED_REPORT[_0x5076('0x22')])[_0x5076('0x20')](FORMAT),moment(EXTRACTED_REPORT[_0x5076('0x23')])[_0x5076('0x20')](FORMAT));var _0x5bd161=[];for(var _0x4644ee=0x0;_0x4644ee<_0x1d821f['length'];_0x4644ee++){var _0x4b374a=[];if(_0x4644ee===0x0){_0x4b374a[_0x5076('0x1a')]({'text':_0x2e4077,'style':_0x5076('0x24')});}var _0x46f1e1={'table':_0x1d821f[_0x4644ee]};if(_0x4644ee>0x0){_0x46f1e1[_0x5076('0x25')]=_0x5076('0x26');_0x46f1e1[_0x5076('0x27')]=[0x0,0x46,0x0,0x0];}_0x4b374a[_0x5076('0x1a')](_0x46f1e1);_0x5bd161[_0x5076('0x1a')](_0x4b374a);}return{'pageSize':'A4','pageOrientation':'landscape','content':_0x5bd161,'footer':function(_0x560e2f,_0x17e742){return{'text':_0x560e2f[_0x5076('0x15')]()+'\x20/\x20'+_0x17e742,'style':'footer'};},'defaultStyle':{'font':_0x5076('0x28')},'styles':{'header':{'fontSize':0x12,'bold':!![],'margin':[0x0,0x0,0x0,0xa]},'tableHeader':{'bold':!![],'fontSize':0xd,'color':_0x5076('0x29')},'footer':{'alignment':'right','margin':[0x0,0x0,0x28,0x0]}}};}function extractReport(_0x308ba5){var _0x753673=0x1388;var _0x563b9c;if(!_0x308ba5[0x0][_0x5076('0x2a')]){return analyticExtractedReport(_0x5076('0x2b'));}return db['Setting'][_0x5076('0x2c')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x5076('0x2d'),'splitSizePdf']})['then'](function(_0xa8fab2){if(_0xa8fab2){_0x563b9c=_0xa8fab2;_0x753673=_0x563b9c[_0x5076('0x2e')]||0x3e8;}})['then'](function(){var _0x41e5ef=[];var _0x543e70=0x0;if(_0x563b9c[_0x5076('0x2d')]){if(_0x308ba5&&_0x308ba5['length']){var _0x241d13=_[_0x5076('0x2f')](_0x308ba5[0x0]['num']/_0x753673);var _0x857cf6=Number[_0x5076('0x30')](_0x308ba5[0x0][_0x5076('0x2a')]/_0x753673)?_0x308ba5[0x0]['num']%_0x753673:0x0;_0x241d13[_0x5076('0x1f')](function(_0x39f846){if(_0x39f846>0x0){_0x543e70+=_0x753673;}_0x41e5ef['push'](dbH['sequelize'][_0x5076('0x31')](util[_0x5076('0x20')](_0x5076('0x32'),QUERY,_0x753673,_0x543e70),{'type':dbH[_0x5076('0x33')][_0x5076('0x34')][_0x5076('0x35')]}));});if(_0x857cf6>0x0){_0x543e70+=_0x753673;_0x41e5ef[_0x5076('0x1a')](dbH[_0x5076('0x33')][_0x5076('0x31')](util[_0x5076('0x20')](_0x5076('0x32'),QUERY,_0x857cf6,_0x543e70),{'type':dbH[_0x5076('0x33')][_0x5076('0x34')][_0x5076('0x35')]}));}}}else{_0x41e5ef['push'](dbH[_0x5076('0x33')][_0x5076('0x31')](QUERY,{'type':dbH[_0x5076('0x33')][_0x5076('0x34')][_0x5076('0x35')]}));}var _0x2a383f=path[_0x5076('0x36')](PATH);var _0xf854b9=path[_0x5076('0x37')](PATH,'.pdf');var _0x29079f=_0x563b9c[_0x5076('0x2d')]&&_0x41e5ef[_0x5076('0x18')]>0x1;var _0x588b04=[];if(!fs[_0x5076('0x38')](path[_0x5076('0x39')](_0x2a383f,_0xf854b9))&&_0x29079f){fs[_0x5076('0x3a')](path[_0x5076('0x39')](_0x2a383f,_0xf854b9));}return BPromise[_0x5076('0x3b')](_0x41e5ef,function(_0x2dd2c4){_0x588b04[_0x5076('0x1a')](_0x2dd2c4);})[_0x5076('0x3c')](function(){var _0x2f6e2b=[];for(var _0x1e1cf6=0x0;_0x1e1cf6<_0x588b04[_0x5076('0x18')];_0x1e1cf6+=0x1){var _0x1be9e9=_0x588b04[_0x1e1cf6];var _0x4e3a16=createTables(_[_0x5076('0x3d')](_0x1be9e9));var _0x3fe547;var _0x38a9ee=getPDFDocDefinition(_0x4e3a16);var _0x324e67=getPDFPrinter();var _0x9a5379=_0x324e67[_0x5076('0x3e')](_0x38a9ee);if(_0x29079f){_0x3fe547=path['join'](_0x2a383f,_0xf854b9,util[_0x5076('0x20')](_0x5076('0x3f'),_0xf854b9,_0x1e1cf6,_0x5076('0x40')));}else{_0x3fe547=path[_0x5076('0x39')](_0x2a383f,util[_0x5076('0x20')]('%s.%s',_0xf854b9,_0x5076('0x40')));}_0x2f6e2b[_0x5076('0x1a')](writePDFDocument(_0x9a5379,_0x3fe547));}return Promise['all'](_0x2f6e2b);})['then'](function(){if(_0x29079f){return new Promise(function(_0x5bc33a){zipdir(path['join'](_0x2a383f,_0xf854b9),{'saveTo':path[_0x5076('0x39')](_0x2a383f,util[_0x5076('0x20')]('%s.%s',_0xf854b9,'zip'))},function(){rimraf(path[_0x5076('0x39')](_0x2a383f,_0xf854b9),function(){});_0x5bc33a(_0x5076('0x41'));});});}})['then'](function(){if(!_0x29079f)return;rimraf(path[_0x5076('0x39')](_0x2a383f,_0xf854b9),function(){});})[_0x5076('0x3c')](function(){logger['info'](util[_0x5076('0x20')](_0x5076('0x42'),EXTRACTED_REPORT_ID,'PDF'));return analyticExtractedReport(_0x5076('0x43'),_0x29079f?util[_0x5076('0x20')](_0x5076('0x44'),_0xf854b9,_0x29079f?_0x5076('0x45'):'pdf'):null);});});}function main(){if(!EXTRACTED_REPORT_ID)return;logger[_0x5076('0x46')](util[_0x5076('0x20')](_0x5076('0x47'),EXTRACTED_REPORT_ID,'PDF'));return db['AnalyticExtractedReport'][_0x5076('0x48')]({'where':{'id':EXTRACTED_REPORT_ID}})['then'](function(_0x447a69){EXTRACTED_REPORT=_0x447a69;return dbH[_0x5076('0x33')][_0x5076('0x31')](util['format'](_0x5076('0x49'),QUERY),{'type':dbH[_0x5076('0x33')][_0x5076('0x34')][_0x5076('0x35')]});})[_0x5076('0x3c')](extractReport)[_0x5076('0x4a')](function(_0x36fa7b){logger[_0x5076('0x46')](util[_0x5076('0x20')](_0x5076('0x4b'),EXTRACTED_REPORT_ID,_0x5076('0x4c')),util[_0x5076('0x4d')](_0x36fa7b,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0x5076('0x4e'));})[_0x5076('0x4f')](function(){process[_0x5076('0x50')](EXIT_CODE);});}main();function getPDFPrinter(){var _0x18685d=new PdfPrinter({'Arial':{'normal':__dirname+'/fonts/arial-regular.ttf','bold':__dirname+_0x5076('0x51'),'italics':__dirname+_0x5076('0x52'),'bolditalics':__dirname+_0x5076('0x53')}});return _0x18685d;}function getPDFDocDefinitionFromHTML(_0x50be18,_0x56e974){var _0x5df302=util['format'](_0x5076('0x54'),_0x56e974['channel'],_0x56e974['interactionId']);var _0x10f3ac=moment()[_0x5076('0x20')](_0x5076('0x55'))[_0x5076('0x15')]();var _0x18fbde=htmlToPdfmake(_0x50be18,{'window':window,'tableAutoSize':!![]});return{'content':[_0x18fbde],'defaultStyle':{'font':_0x5076('0x28')},'styles':{'header':{'fontSize':0x12,'bold':!![],'alignment':'center','margin':[0xa,0xa,0xa,0xa]},'footer':{'fontSize':0x9,'alignment':_0x5076('0x56'),'margin':[0xa,0x14,0xa,0xa]},'textblock':{'fontSize':0xb},'textfield':{'bold':!![]},'messageContainer':{'fontSize':0xa},'messageInfo':{'bold':!![]},'interactionData':{'alignment':_0x5076('0x56')}},'header':function(){return[{'text':_0x5076('0x57'),'style':'header'}];},'footer':function(_0xb8950f,_0x1268de){return[{'text':util[_0x5076('0x20')](_0x5076('0x58'),_0x5df302,_0xb8950f,_0x1268de,_0x10f3ac),'style':_0x5076('0x59')}];}};}function writePDFDocument(_0x20f8a5,_0x1fe902){return new Promise(function(_0x2aba2e,_0x221f44){var _0x3784fa=_0x20f8a5['pipe'](fs[_0x5076('0x5a')](_0x1fe902));_0x3784fa['on']('finish',function(){_0x2aba2e(_0x5076('0x5b'));});_0x3784fa['on'](_0x5076('0x5c'),function(_0x15a524){_0x221f44(_0x15a524);});_0x20f8a5[_0x5076('0x5d')]();});}exports[_0x5076('0x5e')]=function(_0x5de714,_0x3d495d){var _0x240f24=getPDFPrinter();var _0x58425b=getPDFDocDefinitionFromHTML(_0x5de714,_0x3d495d);var _0x44a35e=_0x240f24[_0x5076('0x3e')](_0x58425b);return writePDFDocument(_0x44a35e,_0x3d495d[_0x5076('0x5f')])[_0x5076('0x4a')](function(_0x1e3a5a){throw _0x1e3a5a;});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x377e=['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','inspect','finally','util','lodash','json2xls','bluebird','zip-dir','dbH','../../config/logger','argv','savename','AnalyticExtractedReport','info','format','XLSX','Setting','splitSizeXlsx','then','sequelize','query','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','SELECT','num','split','push','%s\x20limit\x20%d\x20OFFSET\x20%d','QueryTypes','dirname','basename','.xlsx','length','join','each','xlsx','%s.%s','writeFileSync'];(function(_0x467c9a,_0x4b0ffd){var _0x2047d9=function(_0x14cf15){while(--_0x14cf15){_0x467c9a['push'](_0x467c9a['shift']());}};_0x2047d9(++_0x4b0ffd);}(_0x377e,0xb0));var _0xe377=function(_0x1c05c0,_0x38e872){_0x1c05c0=_0x1c05c0-0x0;var _0x4b8d87=_0x377e[_0x1c05c0];return _0x4b8d87;};'use strict';var util=require(_0xe377('0x0'));var path=require('path');var _=require(_0xe377('0x1'));var fs=require('fs');var json2xls=require(_0xe377('0x2'));var BPromise=require(_0xe377('0x3'));var zipdir=require(_0xe377('0x4'));var rimraf=require('rimraf');var db=require('../../mysqldb')['db'];var dbH=require('../../mysqldb')[_0xe377('0x5')];var logger=require(_0xe377('0x6'))('analytics');var EXTRACTED_REPORT_ID=Number(process[_0xe377('0x7')][0x2]);var QUERY=process[_0xe377('0x7')][0x3];var PATH=process[_0xe377('0x7')][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0x23a2ed,_0x44855a){var _0x1e2261={'status':_0x23a2ed};var _0x3d9e66={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x44855a){_0x1e2261[_0xe377('0x8')]=_0x44855a;}return db[_0xe377('0x9')]['update'](_0x1e2261,_0x3d9e66);}function main(){var _0x51bfa2=0x1388;var _0x590739;logger[_0xe377('0xa')](util[_0xe377('0xb')]('Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,_0xe377('0xc')));return db[_0xe377('0xd')]['find']({'where':{'id':0x1},'raw':!![],'attributes':['id','split',_0xe377('0xe')]})[_0xe377('0xf')](function(_0x562ac0){if(_0x562ac0){_0x590739=_0x562ac0;_0x51bfa2=_0x590739[_0xe377('0xe')]||0x1388;}})[_0xe377('0xf')](function(){return dbH[_0xe377('0x10')][_0xe377('0x11')](util[_0xe377('0xb')](_0xe377('0x12'),QUERY),{'type':dbH[_0xe377('0x10')]['QueryTypes'][_0xe377('0x13')]});})['then'](function(_0x131ce8){if(!_0x131ce8[0x0][_0xe377('0x14')]){return analyticExtractedReport('Empty');}var _0x193583=[];var _0x58908c=0x0;var _0x30b849=!![];if(_0x590739[_0xe377('0x15')]){if(_0x131ce8&&_0x131ce8['length']){var _0x374b14=_0x131ce8[0x0][_0xe377('0x14')]%(_0x58908c+_0x51bfa2);for(;_0x30b849;_0x58908c+=_0x51bfa2,_0x374b14=_0x131ce8[0x0]['num']%(_0x58908c+_0x51bfa2)){if(_0x374b14==0x0||_0x374b14==_0x131ce8[0x0][_0xe377('0x14')]){_0x30b849=![];}_0x193583[_0xe377('0x16')](dbH['sequelize'][_0xe377('0x11')](util[_0xe377('0xb')](_0xe377('0x17'),QUERY,_0x51bfa2,_0x58908c),{'type':dbH[_0xe377('0x10')][_0xe377('0x18')][_0xe377('0x13')]}));}}}else{_0x193583[_0xe377('0x16')](dbH[_0xe377('0x10')][_0xe377('0x11')](QUERY,{'type':dbH[_0xe377('0x10')][_0xe377('0x18')][_0xe377('0x13')]}));}var _0x4699cd=path[_0xe377('0x19')](PATH);var _0x384f07=path[_0xe377('0x1a')](PATH,_0xe377('0x1b'));var _0x42b7a6=_0x590739[_0xe377('0x15')]&&_0x193583[_0xe377('0x1c')]>0x1;var _0x1e6a96=[];if(!fs['existsSync'](path['join'](_0x4699cd,_0x384f07))&&_0x42b7a6){fs['mkdirSync'](path[_0xe377('0x1d')](_0x4699cd,_0x384f07));}return BPromise[_0xe377('0x1e')](_0x193583,function(_0x15cb83){_0x1e6a96[_0xe377('0x16')](_0x15cb83);})[_0xe377('0xf')](function(){for(var _0x5c0918=0x0;_0x5c0918<_0x1e6a96[_0xe377('0x1c')];_0x5c0918+=0x1){var _0x3ac554;var _0x19248d=_0x1e6a96[_0x5c0918];if(_0x42b7a6){_0x3ac554=path['join'](_0x4699cd,_0x384f07,util[_0xe377('0xb')]('%s%d.%s',_0x384f07,_0x5c0918,_0xe377('0x1f')));}else{_0x3ac554=path[_0xe377('0x1d')](_0x4699cd,util[_0xe377('0xb')](_0xe377('0x20'),_0x384f07,'xlsx'));}fs[_0xe377('0x21')](_0x3ac554,json2xls(_0x19248d),_0xe377('0x22'));}})['then'](function(){if(_0x42b7a6){zipdir(path['join'](_0x4699cd,_0x384f07),{'saveTo':path[_0xe377('0x1d')](_0x4699cd,util[_0xe377('0xb')]('%s.%s',_0x384f07,_0xe377('0x23')))},function(_0x1b086b,_0x4f6da2){});rimraf(path[_0xe377('0x1d')](_0x4699cd,_0x384f07),function(){});}})['then'](function(){logger[_0xe377('0xa')](util[_0xe377('0xb')](_0xe377('0x24'),EXTRACTED_REPORT_ID,_0xe377('0xc')));return analyticExtractedReport(_0xe377('0x25'),_0x42b7a6?util[_0xe377('0xb')]('%s.%s',_0x384f07,_0x42b7a6?_0xe377('0x23'):_0xe377('0x1f')):null);});})[_0xe377('0x26')](function(_0x50b8ce){logger['info'](util[_0xe377('0xb')](_0xe377('0x27'),EXTRACTED_REPORT_ID,_0xe377('0xc')),util[_0xe377('0x28')](_0x50b8ce,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport('Failed');})[_0xe377('0x29')](function(){process['exit'](EXIT_CODE);});}main();
\ No newline at end of file
+var _0xaf31=['sequelize','QueryTypes','num','Empty','forEach','push','%s\x20limit\x20%d\x20OFFSET\x20%d','SELECT','query','dirname','basename','length','existsSync','join','each','%s%d.%s','%s.%s','xlsx','writeFileSync','binary','zip','zip\x20finished','info','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','inspect','Failed','finally','exit','util','path','lodash','bluebird','zip-dir','rimraf','../../mysqldb','dbH','../../config/logger','analytics','argv','savename','update','format','XLSX','Setting','split','then','splitSizeXlsx','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t'];(function(_0x2641f9,_0x26715f){var _0x585741=function(_0x2d1462){while(--_0x2d1462){_0x2641f9['push'](_0x2641f9['shift']());}};_0x585741(++_0x26715f);}(_0xaf31,0xb4));var _0x1af3=function(_0x11c94d,_0x4402fc){_0x11c94d=_0x11c94d-0x0;var _0x5c49f6=_0xaf31[_0x11c94d];return _0x5c49f6;};'use strict';var util=require(_0x1af3('0x0'));var path=require(_0x1af3('0x1'));var _=require(_0x1af3('0x2'));var fs=require('fs');var json2xls=require('json2xls');var BPromise=require(_0x1af3('0x3'));var zipdir=require(_0x1af3('0x4'));var rimraf=require(_0x1af3('0x5'));var db=require('../../mysqldb')['db'];var dbH=require(_0x1af3('0x6'))[_0x1af3('0x7')];var logger=require(_0x1af3('0x8'))(_0x1af3('0x9'));var EXTRACTED_REPORT_ID=Number(process[_0x1af3('0xa')][0x2]);var QUERY=process['argv'][0x3];var PATH=process[_0x1af3('0xa')][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0x5e0a37,_0x1f5120){var _0x4a4e25={'status':_0x5e0a37};var _0x5734fa={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x1f5120){_0x4a4e25[_0x1af3('0xb')]=_0x1f5120;}return db['AnalyticExtractedReport'][_0x1af3('0xc')](_0x4a4e25,_0x5734fa);}function main(){var _0x2040a9=0x1388;var _0x440851;logger['info'](util[_0x1af3('0xd')]('Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,_0x1af3('0xe')));return db[_0x1af3('0xf')]['find']({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x1af3('0x10'),'splitSizeXlsx']})[_0x1af3('0x11')](function(_0x4df6c6){if(_0x4df6c6){_0x440851=_0x4df6c6;_0x2040a9=_0x440851[_0x1af3('0x12')]||0x1388;}})['then'](function(){return dbH['sequelize']['query'](util[_0x1af3('0xd')](_0x1af3('0x13'),QUERY),{'type':dbH[_0x1af3('0x14')][_0x1af3('0x15')]['SELECT']});})['then'](function(_0x1528b6){if(!_0x1528b6[0x0][_0x1af3('0x16')]){return analyticExtractedReport(_0x1af3('0x17'));}var _0x3a2465=[];var _0x48abb3=0x0;if(_0x440851[_0x1af3('0x10')]){if(_0x1528b6&&_0x1528b6['length']){var _0x5b3e8d=_['range'](_0x1528b6[0x0][_0x1af3('0x16')]/_0x2040a9);var _0x505c15=Number['isInteger'](_0x1528b6[0x0][_0x1af3('0x16')]/_0x2040a9)?_0x1528b6[0x0][_0x1af3('0x16')]%_0x2040a9:0x0;_0x5b3e8d[_0x1af3('0x18')](function(_0xdd3261){if(_0xdd3261>0x0){_0x48abb3+=_0x2040a9;}_0x3a2465[_0x1af3('0x19')](dbH['sequelize']['query'](util[_0x1af3('0xd')](_0x1af3('0x1a'),QUERY,_0x2040a9,_0x48abb3),{'type':dbH[_0x1af3('0x14')]['QueryTypes']['SELECT']}));});if(_0x505c15>0x0){_0x48abb3+=_0x2040a9;_0x3a2465[_0x1af3('0x19')](dbH['sequelize']['query'](util[_0x1af3('0xd')](_0x1af3('0x1a'),QUERY,_0x505c15,_0x48abb3),{'type':dbH['sequelize'][_0x1af3('0x15')][_0x1af3('0x1b')]}));}}}else{_0x3a2465['push'](dbH['sequelize'][_0x1af3('0x1c')](QUERY,{'type':dbH[_0x1af3('0x14')][_0x1af3('0x15')][_0x1af3('0x1b')]}));}var _0x35b871=path[_0x1af3('0x1d')](PATH);var _0x2da8fa=path[_0x1af3('0x1e')](PATH,'.xlsx');var _0x2e7049=_0x440851[_0x1af3('0x10')]&&_0x3a2465[_0x1af3('0x1f')]>0x1;var _0x57fec1=[];if(!fs[_0x1af3('0x20')](path[_0x1af3('0x21')](_0x35b871,_0x2da8fa))&&_0x2e7049){fs['mkdirSync'](path[_0x1af3('0x21')](_0x35b871,_0x2da8fa));}return BPromise[_0x1af3('0x22')](_0x3a2465,function(_0x23338d){_0x57fec1[_0x1af3('0x19')](_0x23338d);})[_0x1af3('0x11')](function(){for(var _0x518ad3=0x0;_0x518ad3<_0x57fec1[_0x1af3('0x1f')];_0x518ad3+=0x1){var _0x20229b;var _0xb37633=_0x57fec1[_0x518ad3];if(_0x2e7049){_0x20229b=path[_0x1af3('0x21')](_0x35b871,_0x2da8fa,util['format'](_0x1af3('0x23'),_0x2da8fa,_0x518ad3,'xlsx'));}else{_0x20229b=path[_0x1af3('0x21')](_0x35b871,util[_0x1af3('0xd')](_0x1af3('0x24'),_0x2da8fa,_0x1af3('0x25')));}fs[_0x1af3('0x26')](_0x20229b,json2xls(_0xb37633),_0x1af3('0x27'));}})[_0x1af3('0x11')](function(){if(_0x2e7049){return new Promise(function(_0x931cf9){zipdir(path[_0x1af3('0x21')](_0x35b871,_0x2da8fa),{'saveTo':path[_0x1af3('0x21')](_0x35b871,util[_0x1af3('0xd')](_0x1af3('0x24'),_0x2da8fa,_0x1af3('0x28')))},function(_0x206c4e,_0x1d39a3){rimraf(path[_0x1af3('0x21')](_0x35b871,_0x2da8fa),function(){});_0x931cf9(_0x1af3('0x29'));});});}})[_0x1af3('0x11')](function(){logger[_0x1af3('0x2a')](util[_0x1af3('0xd')](_0x1af3('0x2b'),EXTRACTED_REPORT_ID,_0x1af3('0xe')));return analyticExtractedReport('Completed',_0x2e7049?util['format'](_0x1af3('0x24'),_0x2da8fa,_0x2e7049?_0x1af3('0x28'):_0x1af3('0x25')):null);});})[_0x1af3('0x2c')](function(_0x57dfad){logger[_0x1af3('0x2a')](util['format'](_0x1af3('0x2d'),EXTRACTED_REPORT_ID,_0x1af3('0xe')),util[_0x1af3('0x2e')](_0x57dfad,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0x1af3('0x2f'));})[_0x1af3('0x30')](function(){process[_0x1af3('0x31')](EXIT_CODE);});}main();
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3c9a=['priority','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','):Goto(','CDR(prefix)=${EXTEN:0:','CDR(prefix)=noprefix','recordingFormat','none','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','_XCALLY_MIXMONITOR_FORMAT=','wav','XCALLY-MOTION-PROGRESS=0','MONITOR_OPTIONS=ab','length','createdAt','updatedAt','*,*,*,*','interval','map','tag','CDR(tag)=','callerID','ExecIf','answer','indexOf','toLowerCase','custom','$[${XCALLY-MOTION-ANSWER}=0]?Answer','XCALLY-MOTION-ANSWER=1','GotoIfTime',',${EXTEN},','last','concat','Hangup','destroy','bulkCreate','catch','rewrite','lodash','util','models','Interval','findAll','then','intervals','IntervalId','VoiceExtension','exten','CAST(priority\x20AS\x20UNSIGNED)','filter','groupBy','hasOwnProperty','extensions','find','Set','format','type','context','VoiceExtensionId','push','outbound','extension','CDR(destination)=','cutdigits','${EXTEN:','${EXTEN}','CDR(routeid)='];(function(_0x2dd3b7,_0x41c515){var _0x5c2f56=function(_0x287114){while(--_0x287114){_0x2dd3b7['push'](_0x2dd3b7['shift']());}};_0x5c2f56(++_0x41c515);}(_0x3c9a,0x16f));var _0xa3c9=function(_0x13350d,_0x1dbeb7){_0x13350d=_0x13350d-0x0;var _0x466452=_0x3c9a[_0x13350d];return _0x466452;};'use strict';var _=require(_0xa3c9('0x0'));var util=require(_0xa3c9('0x1'));function rewrite(_0xfeb23a,_0x3728bb){var _0x1574c5=this;return _0xfeb23a[_0xa3c9('0x2')][_0xa3c9('0x3')][_0xa3c9('0x4')]({'raw':!![]})[_0xa3c9('0x5')](function(_0x446df0){_0x1574c5[_0xa3c9('0x6')]=_0x446df0;return _0xfeb23a[_0xa3c9('0x2')]['VoiceExtension'][_0xa3c9('0x4')]({'where':{'IntervalId':_0x3728bb[_0xa3c9('0x7')]},'raw':!![]});})[_0xa3c9('0x5')](function(_0x116c61){return _0xfeb23a[_0xa3c9('0x2')][_0xa3c9('0x8')]['findAll']({'where':{'exten':{'$in':_['uniq'](_['map'](_0x116c61,_0xa3c9('0x9')))}},'order':[{'raw':_0xa3c9('0xa')}],'raw':!![]});})[_0xa3c9('0x5')](function(_0x7f4690){var _0x351450=_['filter'](_0x7f4690,{'priority':'1'});var _0x21d44f=_[_0xa3c9('0xb')](_0x7f4690,{'isApp':0x1});var _0x802c2c=_[_0xa3c9('0xc')](_0x21d44f,_0xa3c9('0x9'));var _0x190d63=['queue','playback'];var _0x537ff3=[];var _0xded303=[];for(var _0x4eb323 in _0x802c2c){if(_0x802c2c[_0xa3c9('0xd')](_0x4eb323)){_0x1574c5['priority']=0x2;_0x1574c5[_0xa3c9('0xe')]=[];_0x1574c5['extension']=_[_0xa3c9('0xf')](_0x351450,{'exten':_0x802c2c[_0x4eb323][0x0]['exten']});_0x1574c5[_0xa3c9('0xe')]['push']({'type':_0x802c2c[_0x4eb323][0x0]['type'],'app':_0xa3c9('0x10'),'appdata':util[_0xa3c9('0x11')]('CDR(type)=%s',_0x802c2c[_0x4eb323][0x0][_0xa3c9('0x12')]),'context':_0x802c2c[_0x4eb323][0x0][_0xa3c9('0x13')],'exten':_0x802c2c[_0x4eb323][0x0][_0xa3c9('0x9')],'priority':_0x1574c5['priority']++,'VoiceExtensionId':_0x802c2c[_0x4eb323][0x0][_0xa3c9('0x14')]});if(_0x802c2c[_0x4eb323][0x0]['type']==='inbound'){_0x1574c5[_0xa3c9('0xe')][_0xa3c9('0x15')]({'type':_0x802c2c[_0x4eb323][0x0][_0xa3c9('0x12')],'app':_0xa3c9('0x10'),'appdata':'CDR(routeid)='+_0x802c2c[_0x4eb323][0x0]['VoiceExtensionId'],'context':_0x802c2c[_0x4eb323][0x0]['context'],'exten':_0x802c2c[_0x4eb323][0x0][_0xa3c9('0x9')],'priority':_0x1574c5['priority']++,'VoiceExtensionId':_0x802c2c[_0x4eb323][0x0][_0xa3c9('0x14')]});}else if(_0x802c2c[_0x4eb323][0x0]['type']===_0xa3c9('0x16')){if(_0x1574c5[_0xa3c9('0x17')]){_0x1574c5[_0xa3c9('0xe')]['push']({'type':_0x802c2c[_0x4eb323][0x0][_0xa3c9('0x12')],'app':_0xa3c9('0x10'),'appdata':_0xa3c9('0x18')+(_0x1574c5[_0xa3c9('0x17')][_0xa3c9('0x19')]?_0xa3c9('0x1a')+_0x1574c5[_0xa3c9('0x17')][_0xa3c9('0x19')]+'}':_0xa3c9('0x1b')),'context':_0x802c2c[_0x4eb323][0x0][_0xa3c9('0x13')],'exten':_0x802c2c[_0x4eb323][0x0]['exten'],'priority':_0x1574c5['priority']++,'VoiceExtensionId':_0x802c2c[_0x4eb323][0x0]['VoiceExtensionId']});}_0x1574c5['extensions'][_0xa3c9('0x15')]({'type':_0x802c2c[_0x4eb323][0x0][_0xa3c9('0x12')],'app':'Set','appdata':_0xa3c9('0x1c')+_0x802c2c[_0x4eb323][0x0][_0xa3c9('0x14')],'context':_0x802c2c[_0x4eb323][0x0]['context'],'exten':_0x802c2c[_0x4eb323][0x0][_0xa3c9('0x9')],'priority':_0x1574c5['priority']++,'VoiceExtensionId':_0x802c2c[_0x4eb323][0x0][_0xa3c9('0x14')]});var _0x533881=_0x1574c5[_0xa3c9('0x1d')]++;_0x1574c5[_0xa3c9('0xe')][_0xa3c9('0x15')]({'type':_0x802c2c[_0x4eb323][0x0][_0xa3c9('0x12')],'app':'ExecIf','appdata':_0xa3c9('0x1e')+(_0x533881+0x2)+_0xa3c9('0x1f')+(_0x533881+0x1)+')','context':_0x802c2c[_0x4eb323][0x0]['context'],'exten':_0x802c2c[_0x4eb323][0x0]['exten'],'priority':_0x533881,'VoiceExtensionId':_0x802c2c[_0x4eb323][0x0]['VoiceExtensionId']});if(_0x1574c5[_0xa3c9('0x17')]){_0x1574c5[_0xa3c9('0xe')][_0xa3c9('0x15')]({'type':_0x802c2c[_0x4eb323][0x0][_0xa3c9('0x12')],'app':_0xa3c9('0x10'),'appdata':_0x1574c5[_0xa3c9('0x17')][_0xa3c9('0x19')]?_0xa3c9('0x20')+_0x1574c5[_0xa3c9('0x17')]['cutdigits']+'}':_0xa3c9('0x21'),'context':_0x802c2c[_0x4eb323][0x0][_0xa3c9('0x13')],'exten':_0x802c2c[_0x4eb323][0x0]['exten'],'priority':_0x1574c5[_0xa3c9('0x1d')]++,'VoiceExtensionId':_0x802c2c[_0x4eb323][0x0][_0xa3c9('0x14')]});}_0x1574c5['extensions'][_0xa3c9('0x15')]({'type':_0x802c2c[_0x4eb323][0x0][_0xa3c9('0x12')],'app':'Set','appdata':'outboundrouteid='+_0x802c2c[_0x4eb323][0x0]['VoiceExtensionId'],'context':_0x802c2c[_0x4eb323][0x0][_0xa3c9('0x13')],'exten':_0x802c2c[_0x4eb323][0x0]['exten'],'priority':_0x1574c5[_0xa3c9('0x1d')]++,'VoiceExtensionId':_0x802c2c[_0x4eb323][0x0][_0xa3c9('0x14')]});if(_0x1574c5[_0xa3c9('0x17')]&&_0x1574c5[_0xa3c9('0x17')][_0xa3c9('0xd')](_0xa3c9('0x22'))&&_0x1574c5[_0xa3c9('0x17')][_0xa3c9('0x22')]!==_0xa3c9('0x23')){_0x1574c5[_0xa3c9('0xe')][_0xa3c9('0x15')]({'type':_0x802c2c[_0x4eb323][0x0][_0xa3c9('0x12')],'app':_0xa3c9('0x10'),'appdata':_0xa3c9('0x24'),'context':_0x802c2c[_0x4eb323][0x0][_0xa3c9('0x13')],'exten':_0x802c2c[_0x4eb323][0x0][_0xa3c9('0x9')],'priority':_0x1574c5['priority']++,'VoiceExtensionId':_0x802c2c[_0x4eb323][0x0][_0xa3c9('0x14')]});_0x1574c5['extensions'][_0xa3c9('0x15')]({'type':_0x802c2c[_0x4eb323][0x0][_0xa3c9('0x12')],'app':_0xa3c9('0x10'),'appdata':_0xa3c9('0x25')+_0x1574c5[_0xa3c9('0x17')][_0xa3c9('0x22')]||_0xa3c9('0x26'),'context':_0x802c2c[_0x4eb323][0x0][_0xa3c9('0x13')],'exten':_0x802c2c[_0x4eb323][0x0][_0xa3c9('0x9')],'priority':_0x1574c5['priority']++,'VoiceExtensionId':_0x802c2c[_0x4eb323][0x0][_0xa3c9('0x14')]});}}_0x1574c5[_0xa3c9('0xe')]['push']({'type':_0x802c2c[_0x4eb323][0x0][_0xa3c9('0x12')],'app':_0xa3c9('0x10'),'appdata':'XCALLY-MOTION-ANSWER=0','context':_0x802c2c[_0x4eb323][0x0]['context'],'exten':_0x802c2c[_0x4eb323][0x0]['exten'],'priority':_0x1574c5[_0xa3c9('0x1d')]++,'VoiceExtensionId':_0x802c2c[_0x4eb323][0x0][_0xa3c9('0x14')]});_0x1574c5['extensions'][_0xa3c9('0x15')]({'type':_0x802c2c[_0x4eb323][0x0][_0xa3c9('0x12')],'app':'Set','appdata':_0xa3c9('0x27'),'context':_0x802c2c[_0x4eb323][0x0][_0xa3c9('0x13')],'exten':_0x802c2c[_0x4eb323][0x0][_0xa3c9('0x9')],'priority':_0x1574c5[_0xa3c9('0x1d')]++,'VoiceExtensionId':_0x802c2c[_0x4eb323][0x0][_0xa3c9('0x14')]});_0x1574c5['extensions']['push']({'type':_0x802c2c[_0x4eb323][0x0]['type'],'app':_0xa3c9('0x10'),'appdata':_0xa3c9('0x28'),'context':_0x802c2c[_0x4eb323][0x0]['context'],'exten':_0x802c2c[_0x4eb323][0x0][_0xa3c9('0x9')],'priority':_0x1574c5[_0xa3c9('0x1d')]++,'VoiceExtensionId':_0x802c2c[_0x4eb323][0x0][_0xa3c9('0x14')]});for(var _0x119b10=0x0,_0x158f34=0x0;_0x119b10<_0x802c2c[_0x4eb323][_0xa3c9('0x29')];_0x119b10+=0x1,_0x158f34=0x0){var _0x25c8fb=_0x802c2c[_0x4eb323][_0x119b10];if(_0x25c8fb[_0xa3c9('0x12')]){_0x25c8fb['type']=_0x25c8fb[_0xa3c9('0x12')]['toLowerCase']();}var _0x1b766a=[];var _0x20c175=[];delete _0x25c8fb['id'];delete _0x25c8fb[_0xa3c9('0x2a')];delete _0x25c8fb[_0xa3c9('0x2b')];var _0x3d13bc=_0x25c8fb['interval']!==_0xa3c9('0x2c')?[_0x25c8fb[_0xa3c9('0x2d')]]:_0x25c8fb[_0xa3c9('0x7')]?_[_0xa3c9('0x2e')](_[_0xa3c9('0xb')](_0x1574c5[_0xa3c9('0x6')],{'IntervalId':_0x25c8fb[_0xa3c9('0x7')]}),'interval'):[];if(_0x25c8fb[_0xa3c9('0xd')]('tag')){if(_0x25c8fb[_0xa3c9('0x2f')]&&_0x25c8fb[_0xa3c9('0x2f')]!=='--'){_0x1b766a['push']({'type':_0x25c8fb[_0xa3c9('0x12')],'app':_0xa3c9('0x10'),'appdata':_0xa3c9('0x30')+_0x25c8fb['tag'],'context':_0x25c8fb[_0xa3c9('0x13')],'exten':_0x25c8fb[_0xa3c9('0x9')],'priority':_0x3d13bc[_0xa3c9('0x29')]+_0x1574c5[_0xa3c9('0x1d')]+_0x158f34++,'VoiceExtensionId':_0x25c8fb['VoiceExtensionId']});}}if(_0x25c8fb['type']===_0xa3c9('0x16')&&_0x25c8fb[_0xa3c9('0xd')](_0xa3c9('0x31'))){if(_0x25c8fb[_0xa3c9('0x31')]){_0x1b766a[_0xa3c9('0x15')]({'type':_0x25c8fb['type'],'app':_0xa3c9('0x32'),'appdata':'$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):Set(CALLERID(all)='+_0x25c8fb[_0xa3c9('0x31')]+')','context':_0x25c8fb['context'],'exten':_0x25c8fb[_0xa3c9('0x9')],'priority':_0x3d13bc[_0xa3c9('0x29')]+_0x1574c5[_0xa3c9('0x1d')]+_0x158f34++,'VoiceExtensionId':_0x25c8fb['VoiceExtensionId']});}else{_0x1b766a[_0xa3c9('0x15')]({'type':_0x25c8fb[_0xa3c9('0x12')],'app':_0xa3c9('0x32'),'appdata':'$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):NoOp(No\x20number\x20available)','context':_0x25c8fb[_0xa3c9('0x13')],'exten':_0x25c8fb[_0xa3c9('0x9')],'priority':_0x3d13bc[_0xa3c9('0x29')]+_0x1574c5[_0xa3c9('0x1d')]+_0x158f34++,'VoiceExtensionId':_0x25c8fb[_0xa3c9('0x14')]});}}if(_0x25c8fb[_0xa3c9('0xd')](_0xa3c9('0x33'))){if(_0x190d63[_0xa3c9('0x34')](_0x25c8fb['app'][_0xa3c9('0x35')]())>=0x0&&_0x25c8fb['appType']!==_0xa3c9('0x36')){if(_0x25c8fb['answer']){_0x1b766a[_0xa3c9('0x15')]({'type':_0x25c8fb[_0xa3c9('0x12')],'app':_0xa3c9('0x32'),'appdata':_0xa3c9('0x37'),'context':_0x25c8fb[_0xa3c9('0x13')],'exten':_0x25c8fb[_0xa3c9('0x9')],'priority':_0x3d13bc[_0xa3c9('0x29')]+_0x1574c5[_0xa3c9('0x1d')]+_0x158f34++,'VoiceExtensionId':_0x25c8fb[_0xa3c9('0x14')]});_0x1b766a['push']({'type':_0x25c8fb[_0xa3c9('0x12')],'app':_0xa3c9('0x10'),'appdata':_0xa3c9('0x38'),'context':_0x25c8fb[_0xa3c9('0x13')],'exten':_0x25c8fb['exten'],'priority':_0x3d13bc[_0xa3c9('0x29')]+_0x1574c5[_0xa3c9('0x1d')]+_0x158f34++,'VoiceExtensionId':_0x25c8fb[_0xa3c9('0x14')]});}else{_0x1b766a[_0xa3c9('0x15')]({'type':_0x25c8fb[_0xa3c9('0x12')],'app':_0xa3c9('0x32'),'appdata':'$[${XCALLY-MOTION-PROGRESS}=0]?Progress','context':_0x25c8fb[_0xa3c9('0x13')],'exten':_0x25c8fb[_0xa3c9('0x9')],'priority':_0x3d13bc['length']+_0x1574c5[_0xa3c9('0x1d')]+_0x158f34++,'VoiceExtensionId':_0x25c8fb[_0xa3c9('0x14')]});_0x1b766a['push']({'type':_0x25c8fb[_0xa3c9('0x12')],'app':_0xa3c9('0x10'),'appdata':'XCALLY-MOTION-PROGRESS=1','context':_0x25c8fb[_0xa3c9('0x13')],'exten':_0x25c8fb[_0xa3c9('0x9')],'priority':_0x3d13bc['length']+_0x1574c5['priority']+_0x158f34++,'VoiceExtensionId':_0x25c8fb['VoiceExtensionId']});}}}for(var _0x975831=0x0;_0x975831<_0x3d13bc[_0xa3c9('0x29')];_0x975831+=0x1){var _0x32688b=_0x1574c5['priority']+_0x3d13bc[_0xa3c9('0x29')];var _0x1513ba=_0x975831===_0x3d13bc[_0xa3c9('0x29')]-0x1?_0x1574c5[_0xa3c9('0x1d')]+_0x1b766a[_0xa3c9('0x29')]+_0x20c175[_0xa3c9('0x29')]+0x2:_0x1574c5[_0xa3c9('0x1d')]+_0x975831+0x1;_0x1b766a['splice'](_0x975831,0x0,{'type':_0x25c8fb[_0xa3c9('0x12')],'app':_0xa3c9('0x39'),'appdata':_0x3d13bc[_0x975831]+'?'+_0x25c8fb['context']+',${EXTEN},'+_0x32688b+':'+_0x25c8fb[_0xa3c9('0x13')]+_0xa3c9('0x3a')+_0x1513ba,'exten':_0x25c8fb[_0xa3c9('0x9')],'context':_0x25c8fb[_0xa3c9('0x13')],'priority':_0x1574c5[_0xa3c9('0x1d')]+_0x975831,'VoiceExtensionId':_0x802c2c[_0x4eb323][0x0][_0xa3c9('0x14')]});}_0x25c8fb[_0xa3c9('0x1d')]=_0x1b766a[_0xa3c9('0x29')]?_[_0xa3c9('0x3b')](_0x1b766a)[_0xa3c9('0x1d')]+0x1:_0x1574c5['priority'];_0x1574c5['priority']=(_0x20c175[_0xa3c9('0x29')]?_[_0xa3c9('0x3b')](_0x20c175)[_0xa3c9('0x1d')]:_0x25c8fb['priority'])+0x1;_0x1574c5['extensions']=_[_0xa3c9('0x3c')](_0x1574c5[_0xa3c9('0xe')],_0x1b766a,[_0x25c8fb],_0x20c175);}_0x1574c5[_0xa3c9('0xe')]['push']({'type':_0x802c2c[_0x4eb323][0x0][_0xa3c9('0x12')],'app':_0xa3c9('0x3d'),'exten':_0x802c2c[_0x4eb323][0x0][_0xa3c9('0x9')],'context':_0x802c2c[_0x4eb323][0x0]['context'],'priority':_0x1574c5[_0xa3c9('0x1d')],'VoiceExtensionId':_0x802c2c[_0x4eb323][0x0]['VoiceExtensionId']});_0x537ff3[_0xa3c9('0x15')](_0x802c2c[_0x4eb323][0x0][_0xa3c9('0x14')]);_0xded303=_['concat'](_0xded303,_0x1574c5[_0xa3c9('0xe')]);}}return _0xfeb23a['transaction'](function(_0x4486b3){return _0xfeb23a['models'][_0xa3c9('0x8')][_0xa3c9('0x3e')]({'where':{'VoiceExtensionId':{'$in':_0x537ff3}},'transaction':_0x4486b3})[_0xa3c9('0x5')](function(_0x525633){return _0xfeb23a[_0xa3c9('0x2')][_0xa3c9('0x8')][_0xa3c9('0x3f')](_['sortBy'](_0xded303,_0xa3c9('0x1d')),{'transaction':_0x4486b3});});});})[_0xa3c9('0x40')](function(_0x2f1368){console['error'](_0x2f1368);});}exports[_0xa3c9('0x41')]=rewrite;
\ No newline at end of file
+var _0x5917=['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)','indexOf','app','appType','custom','$[${XCALLY-MOTION-ANSWER}=0]?Answer','XCALLY-MOTION-ANSWER=1','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','splice','GotoIfTime',',${EXTEN},','last','concat','transaction','sortBy','catch','error','lodash','findAll','then','intervals','models','VoiceExtension','IntervalId','uniq','exten','CAST(priority\x20AS\x20UNSIGNED)','filter','groupBy','priority','extension','extensions','push','Set','format','CDR(type)=%s','type','context','VoiceExtensionId','outbound','cutdigits','CDR(routeid)=','ExecIf','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','CDR(prefix)=${EXTEN:0:','outboundrouteid=','hasOwnProperty','none','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','_XCALLY_MIXMONITOR_FORMAT=','wav','MONITOR_OPTIONS=ab','toLowerCase','createdAt','updatedAt','interval','tag','CDR(tag)=','length'];(function(_0x41172b,_0x2765a0){var _0x590051=function(_0x437a9d){while(--_0x437a9d){_0x41172b['push'](_0x41172b['shift']());}};_0x590051(++_0x2765a0);}(_0x5917,0x1be));var _0x7591=function(_0x3b380d,_0x4bf247){_0x3b380d=_0x3b380d-0x0;var _0x54502b=_0x5917[_0x3b380d];return _0x54502b;};'use strict';var _=require(_0x7591('0x0'));var util=require('util');function rewrite(_0x2da225,_0x489889){var _0x46cb12=this;return _0x2da225['models']['Interval'][_0x7591('0x1')]({'raw':!![]})[_0x7591('0x2')](function(_0x316034){_0x46cb12[_0x7591('0x3')]=_0x316034;return _0x2da225[_0x7591('0x4')][_0x7591('0x5')][_0x7591('0x1')]({'where':{'IntervalId':_0x489889[_0x7591('0x6')]},'raw':!![]});})[_0x7591('0x2')](function(_0xac5690){return _0x2da225[_0x7591('0x4')][_0x7591('0x5')][_0x7591('0x1')]({'where':{'exten':{'$in':_[_0x7591('0x7')](_['map'](_0xac5690,_0x7591('0x8')))}},'order':[{'raw':_0x7591('0x9')}],'raw':!![]});})[_0x7591('0x2')](function(_0x1802d2){var _0x481c04=_['filter'](_0x1802d2,{'priority':'1'});var _0x30cc9c=_[_0x7591('0xa')](_0x1802d2,{'isApp':0x1});var _0xa0ed40=_[_0x7591('0xb')](_0x30cc9c,_0x7591('0x8'));var _0x341d92=['queue','playback'];var _0x527531=[];var _0x360f0f=[];for(var _0x31fa10 in _0xa0ed40){if(_0xa0ed40['hasOwnProperty'](_0x31fa10)){_0x46cb12[_0x7591('0xc')]=0x2;_0x46cb12['extensions']=[];_0x46cb12[_0x7591('0xd')]=_['find'](_0x481c04,{'exten':_0xa0ed40[_0x31fa10][0x0][_0x7591('0x8')]});_0x46cb12[_0x7591('0xe')][_0x7591('0xf')]({'type':_0xa0ed40[_0x31fa10][0x0]['type'],'app':_0x7591('0x10'),'appdata':util[_0x7591('0x11')](_0x7591('0x12'),_0xa0ed40[_0x31fa10][0x0][_0x7591('0x13')]),'context':_0xa0ed40[_0x31fa10][0x0][_0x7591('0x14')],'exten':_0xa0ed40[_0x31fa10][0x0][_0x7591('0x8')],'priority':_0x46cb12[_0x7591('0xc')]++,'VoiceExtensionId':_0xa0ed40[_0x31fa10][0x0][_0x7591('0x15')]});if(_0xa0ed40[_0x31fa10][0x0][_0x7591('0x13')]==='inbound'){_0x46cb12[_0x7591('0xe')]['push']({'type':_0xa0ed40[_0x31fa10][0x0][_0x7591('0x13')],'app':_0x7591('0x10'),'appdata':'CDR(routeid)='+_0xa0ed40[_0x31fa10][0x0][_0x7591('0x15')],'context':_0xa0ed40[_0x31fa10][0x0][_0x7591('0x14')],'exten':_0xa0ed40[_0x31fa10][0x0][_0x7591('0x8')],'priority':_0x46cb12[_0x7591('0xc')]++,'VoiceExtensionId':_0xa0ed40[_0x31fa10][0x0][_0x7591('0x15')]});}else if(_0xa0ed40[_0x31fa10][0x0]['type']===_0x7591('0x16')){if(_0x46cb12['extension']){_0x46cb12['extensions'][_0x7591('0xf')]({'type':_0xa0ed40[_0x31fa10][0x0][_0x7591('0x13')],'app':_0x7591('0x10'),'appdata':'CDR(destination)='+(_0x46cb12['extension']['cutdigits']?'${EXTEN:'+_0x46cb12[_0x7591('0xd')][_0x7591('0x17')]+'}':'${EXTEN}'),'context':_0xa0ed40[_0x31fa10][0x0][_0x7591('0x14')],'exten':_0xa0ed40[_0x31fa10][0x0][_0x7591('0x8')],'priority':_0x46cb12['priority']++,'VoiceExtensionId':_0xa0ed40[_0x31fa10][0x0][_0x7591('0x15')]});}_0x46cb12[_0x7591('0xe')][_0x7591('0xf')]({'type':_0xa0ed40[_0x31fa10][0x0][_0x7591('0x13')],'app':'Set','appdata':_0x7591('0x18')+_0xa0ed40[_0x31fa10][0x0][_0x7591('0x15')],'context':_0xa0ed40[_0x31fa10][0x0][_0x7591('0x14')],'exten':_0xa0ed40[_0x31fa10][0x0][_0x7591('0x8')],'priority':_0x46cb12['priority']++,'VoiceExtensionId':_0xa0ed40[_0x31fa10][0x0][_0x7591('0x15')]});var _0x16ec4c=_0x46cb12[_0x7591('0xc')]++;_0x46cb12[_0x7591('0xe')][_0x7591('0xf')]({'type':_0xa0ed40[_0x31fa10][0x0][_0x7591('0x13')],'app':_0x7591('0x19'),'appdata':_0x7591('0x1a')+(_0x16ec4c+0x2)+'):Goto('+(_0x16ec4c+0x1)+')','context':_0xa0ed40[_0x31fa10][0x0][_0x7591('0x14')],'exten':_0xa0ed40[_0x31fa10][0x0][_0x7591('0x8')],'priority':_0x16ec4c,'VoiceExtensionId':_0xa0ed40[_0x31fa10][0x0]['VoiceExtensionId']});if(_0x46cb12[_0x7591('0xd')]){_0x46cb12[_0x7591('0xe')][_0x7591('0xf')]({'type':_0xa0ed40[_0x31fa10][0x0][_0x7591('0x13')],'app':_0x7591('0x10'),'appdata':_0x46cb12[_0x7591('0xd')][_0x7591('0x17')]?_0x7591('0x1b')+_0x46cb12[_0x7591('0xd')][_0x7591('0x17')]+'}':'CDR(prefix)=noprefix','context':_0xa0ed40[_0x31fa10][0x0]['context'],'exten':_0xa0ed40[_0x31fa10][0x0]['exten'],'priority':_0x46cb12[_0x7591('0xc')]++,'VoiceExtensionId':_0xa0ed40[_0x31fa10][0x0][_0x7591('0x15')]});}_0x46cb12[_0x7591('0xe')]['push']({'type':_0xa0ed40[_0x31fa10][0x0][_0x7591('0x13')],'app':_0x7591('0x10'),'appdata':_0x7591('0x1c')+_0xa0ed40[_0x31fa10][0x0][_0x7591('0x15')],'context':_0xa0ed40[_0x31fa10][0x0][_0x7591('0x14')],'exten':_0xa0ed40[_0x31fa10][0x0]['exten'],'priority':_0x46cb12['priority']++,'VoiceExtensionId':_0xa0ed40[_0x31fa10][0x0][_0x7591('0x15')]});if(_0x46cb12['extension']&&_0x46cb12[_0x7591('0xd')][_0x7591('0x1d')]('recordingFormat')&&_0x46cb12['extension']['recordingFormat']!==_0x7591('0x1e')){_0x46cb12[_0x7591('0xe')][_0x7591('0xf')]({'type':_0xa0ed40[_0x31fa10][0x0][_0x7591('0x13')],'app':'Set','appdata':_0x7591('0x1f'),'context':_0xa0ed40[_0x31fa10][0x0]['context'],'exten':_0xa0ed40[_0x31fa10][0x0][_0x7591('0x8')],'priority':_0x46cb12['priority']++,'VoiceExtensionId':_0xa0ed40[_0x31fa10][0x0][_0x7591('0x15')]});_0x46cb12[_0x7591('0xe')][_0x7591('0xf')]({'type':_0xa0ed40[_0x31fa10][0x0][_0x7591('0x13')],'app':_0x7591('0x10'),'appdata':_0x7591('0x20')+_0x46cb12[_0x7591('0xd')]['recordingFormat']||_0x7591('0x21'),'context':_0xa0ed40[_0x31fa10][0x0][_0x7591('0x14')],'exten':_0xa0ed40[_0x31fa10][0x0]['exten'],'priority':_0x46cb12[_0x7591('0xc')]++,'VoiceExtensionId':_0xa0ed40[_0x31fa10][0x0][_0x7591('0x15')]});}}_0x46cb12[_0x7591('0xe')]['push']({'type':_0xa0ed40[_0x31fa10][0x0][_0x7591('0x13')],'app':_0x7591('0x10'),'appdata':'XCALLY-MOTION-ANSWER=0','context':_0xa0ed40[_0x31fa10][0x0][_0x7591('0x14')],'exten':_0xa0ed40[_0x31fa10][0x0][_0x7591('0x8')],'priority':_0x46cb12[_0x7591('0xc')]++,'VoiceExtensionId':_0xa0ed40[_0x31fa10][0x0][_0x7591('0x15')]});_0x46cb12[_0x7591('0xe')][_0x7591('0xf')]({'type':_0xa0ed40[_0x31fa10][0x0][_0x7591('0x13')],'app':'Set','appdata':'XCALLY-MOTION-PROGRESS=0','context':_0xa0ed40[_0x31fa10][0x0][_0x7591('0x14')],'exten':_0xa0ed40[_0x31fa10][0x0][_0x7591('0x8')],'priority':_0x46cb12['priority']++,'VoiceExtensionId':_0xa0ed40[_0x31fa10][0x0][_0x7591('0x15')]});_0x46cb12[_0x7591('0xe')]['push']({'type':_0xa0ed40[_0x31fa10][0x0][_0x7591('0x13')],'app':_0x7591('0x10'),'appdata':_0x7591('0x22'),'context':_0xa0ed40[_0x31fa10][0x0][_0x7591('0x14')],'exten':_0xa0ed40[_0x31fa10][0x0][_0x7591('0x8')],'priority':_0x46cb12['priority']++,'VoiceExtensionId':_0xa0ed40[_0x31fa10][0x0][_0x7591('0x15')]});for(var _0x14b1d7=0x0,_0x2495db=0x0;_0x14b1d7<_0xa0ed40[_0x31fa10]['length'];_0x14b1d7+=0x1,_0x2495db=0x0){var _0xbc1ab8=_0xa0ed40[_0x31fa10][_0x14b1d7];if(_0xbc1ab8['type']){_0xbc1ab8['type']=_0xbc1ab8[_0x7591('0x13')][_0x7591('0x23')]();}var _0x54c8fb=[];var _0x515ce5=[];delete _0xbc1ab8['id'];delete _0xbc1ab8[_0x7591('0x24')];delete _0xbc1ab8[_0x7591('0x25')];var _0x3c318d=_0xbc1ab8[_0x7591('0x26')]!=='*,*,*,*'?[_0xbc1ab8[_0x7591('0x26')]]:_0xbc1ab8[_0x7591('0x6')]?_['map'](_[_0x7591('0xa')](_0x46cb12[_0x7591('0x3')],{'IntervalId':_0xbc1ab8[_0x7591('0x6')]}),_0x7591('0x26')):[];if(_0xbc1ab8[_0x7591('0x1d')](_0x7591('0x27'))){if(_0xbc1ab8[_0x7591('0x27')]&&_0xbc1ab8[_0x7591('0x27')]!=='--'){_0x54c8fb[_0x7591('0xf')]({'type':_0xbc1ab8[_0x7591('0x13')],'app':_0x7591('0x10'),'appdata':_0x7591('0x28')+_0xbc1ab8['tag'],'context':_0xbc1ab8['context'],'exten':_0xbc1ab8[_0x7591('0x8')],'priority':_0x3c318d[_0x7591('0x29')]+_0x46cb12[_0x7591('0xc')]+_0x2495db++,'VoiceExtensionId':_0xbc1ab8['VoiceExtensionId']});}}if(_0xbc1ab8[_0x7591('0x13')]===_0x7591('0x16')&&_0xbc1ab8[_0x7591('0x1d')](_0x7591('0x2a'))){if(_0xbc1ab8[_0x7591('0x2a')]){_0x54c8fb[_0x7591('0xf')]({'type':_0xbc1ab8[_0x7591('0x13')],'app':_0x7591('0x19'),'appdata':_0x7591('0x2b')+_0xbc1ab8['callerID']+')','context':_0xbc1ab8[_0x7591('0x14')],'exten':_0xbc1ab8['exten'],'priority':_0x3c318d[_0x7591('0x29')]+_0x46cb12[_0x7591('0xc')]+_0x2495db++,'VoiceExtensionId':_0xbc1ab8['VoiceExtensionId']});}else{_0x54c8fb['push']({'type':_0xbc1ab8['type'],'app':_0x7591('0x19'),'appdata':_0x7591('0x2c'),'context':_0xbc1ab8[_0x7591('0x14')],'exten':_0xbc1ab8['exten'],'priority':_0x3c318d['length']+_0x46cb12[_0x7591('0xc')]+_0x2495db++,'VoiceExtensionId':_0xbc1ab8[_0x7591('0x15')]});}}if(_0xbc1ab8['hasOwnProperty']('answer')){if(_0x341d92[_0x7591('0x2d')](_0xbc1ab8[_0x7591('0x2e')][_0x7591('0x23')]())>=0x0&&_0xbc1ab8[_0x7591('0x2f')]!==_0x7591('0x30')){if(_0xbc1ab8['answer']){_0x54c8fb[_0x7591('0xf')]({'type':_0xbc1ab8[_0x7591('0x13')],'app':_0x7591('0x19'),'appdata':_0x7591('0x31'),'context':_0xbc1ab8['context'],'exten':_0xbc1ab8[_0x7591('0x8')],'priority':_0x3c318d['length']+_0x46cb12[_0x7591('0xc')]+_0x2495db++,'VoiceExtensionId':_0xbc1ab8['VoiceExtensionId']});_0x54c8fb[_0x7591('0xf')]({'type':_0xbc1ab8[_0x7591('0x13')],'app':_0x7591('0x10'),'appdata':_0x7591('0x32'),'context':_0xbc1ab8['context'],'exten':_0xbc1ab8[_0x7591('0x8')],'priority':_0x3c318d['length']+_0x46cb12[_0x7591('0xc')]+_0x2495db++,'VoiceExtensionId':_0xbc1ab8[_0x7591('0x15')]});}else{_0x54c8fb[_0x7591('0xf')]({'type':_0xbc1ab8['type'],'app':'ExecIf','appdata':_0x7591('0x33'),'context':_0xbc1ab8[_0x7591('0x14')],'exten':_0xbc1ab8[_0x7591('0x8')],'priority':_0x3c318d[_0x7591('0x29')]+_0x46cb12[_0x7591('0xc')]+_0x2495db++,'VoiceExtensionId':_0xbc1ab8[_0x7591('0x15')]});_0x54c8fb['push']({'type':_0xbc1ab8['type'],'app':_0x7591('0x10'),'appdata':'XCALLY-MOTION-PROGRESS=1','context':_0xbc1ab8['context'],'exten':_0xbc1ab8[_0x7591('0x8')],'priority':_0x3c318d['length']+_0x46cb12[_0x7591('0xc')]+_0x2495db++,'VoiceExtensionId':_0xbc1ab8[_0x7591('0x15')]});}}}for(var _0x42ea8a=0x0;_0x42ea8a<_0x3c318d[_0x7591('0x29')];_0x42ea8a+=0x1){var _0x1ba570=_0x46cb12[_0x7591('0xc')]+_0x3c318d['length'];var _0x26f957=_0x42ea8a===_0x3c318d[_0x7591('0x29')]-0x1?_0x46cb12[_0x7591('0xc')]+_0x54c8fb[_0x7591('0x29')]+_0x515ce5[_0x7591('0x29')]+0x2:_0x46cb12[_0x7591('0xc')]+_0x42ea8a+0x1;_0x54c8fb[_0x7591('0x34')](_0x42ea8a,0x0,{'type':_0xbc1ab8[_0x7591('0x13')],'app':_0x7591('0x35'),'appdata':_0x3c318d[_0x42ea8a]+'?'+_0xbc1ab8[_0x7591('0x14')]+_0x7591('0x36')+_0x1ba570+':'+_0xbc1ab8[_0x7591('0x14')]+_0x7591('0x36')+_0x26f957,'exten':_0xbc1ab8[_0x7591('0x8')],'context':_0xbc1ab8['context'],'priority':_0x46cb12[_0x7591('0xc')]+_0x42ea8a,'VoiceExtensionId':_0xa0ed40[_0x31fa10][0x0]['VoiceExtensionId']});}_0xbc1ab8[_0x7591('0xc')]=_0x54c8fb[_0x7591('0x29')]?_[_0x7591('0x37')](_0x54c8fb)[_0x7591('0xc')]+0x1:_0x46cb12[_0x7591('0xc')];_0x46cb12[_0x7591('0xc')]=(_0x515ce5[_0x7591('0x29')]?_['last'](_0x515ce5)['priority']:_0xbc1ab8[_0x7591('0xc')])+0x1;_0x46cb12['extensions']=_[_0x7591('0x38')](_0x46cb12[_0x7591('0xe')],_0x54c8fb,[_0xbc1ab8],_0x515ce5);}_0x46cb12[_0x7591('0xe')]['push']({'type':_0xa0ed40[_0x31fa10][0x0][_0x7591('0x13')],'app':'Hangup','exten':_0xa0ed40[_0x31fa10][0x0][_0x7591('0x8')],'context':_0xa0ed40[_0x31fa10][0x0][_0x7591('0x14')],'priority':_0x46cb12[_0x7591('0xc')],'VoiceExtensionId':_0xa0ed40[_0x31fa10][0x0][_0x7591('0x15')]});_0x527531[_0x7591('0xf')](_0xa0ed40[_0x31fa10][0x0][_0x7591('0x15')]);_0x360f0f=_[_0x7591('0x38')](_0x360f0f,_0x46cb12[_0x7591('0xe')]);}}return _0x2da225[_0x7591('0x39')](function(_0x17226c){return _0x2da225[_0x7591('0x4')][_0x7591('0x5')]['destroy']({'where':{'VoiceExtensionId':{'$in':_0x527531}},'transaction':_0x17226c})[_0x7591('0x2')](function(_0x471948){return _0x2da225[_0x7591('0x4')][_0x7591('0x5')]['bulkCreate'](_[_0x7591('0x3a')](_0x360f0f,_0x7591('0xc')),{'transaction':_0x17226c});});});})[_0x7591('0x3b')](function(_0x5ed47c){console[_0x7591('0x3c')](_0x5ed47c);});}exports['rewrite']=rewrite;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3562=['defaults','localhost','socket.io-emitter','../../../api/cmContact/cmContact.socket','argv','null','Missing\x20filepath\x20parameter!','undefined','zipObject','split','Missing\x20ListId\x20parameter!','Missing\x20socket_timestamp\x20parameter!','error','contact','index','test','isNil','The\x20row\x20is\x20empty\x20or\x20the\x20number\x20of\x20parameters\x20does\x20not\x20match\x20the\x20columns!','errors','map','join','hasOwnProperty','data','firstName','firstName\x20not\x20specified!','birthDate','YYYY-MM-DD','isValid','email','email\x20format\x20is\x20not\x20valid!','ListId','length','duplicate','CmContact','create','keys','then','push','catch','Error\x20while\x20creating\x20contact:\x20','message','stringify','cmContact','insert','into','cm_hopper','fromQuery','phone','ContactId','select','field','NOW()','scheduledAt','toString','createdAt','updatedAt','from','cm_contacts','ListId\x20=\x20?','where','phone\x20IS\x20NOT\x20NULL','\x20=\x20?','deletedAt\x20IS\x20NULL','id\x20IN\x20?','str','calleridnum','cm_hopper_final','phone\x20NOT\x20IN\x20(?)','cm_hopper_black','findAll','outbound','dialCheckDuplicateType','CmList','Lists','always','query','VoiceQueueId','sequelize','all','VoiceQueue','get','Campaign','CampaignId','BlackLists','cmContact,\x20%s,\x20%s','generalCheckHopper','Error\x20processing\x20rows\x20block:','finally','emit','resume','resolve','contact:csv_','exit','info','CSV\x20import\x20process\x20stopped!','createReadStream','parse','pause','CSV\x20parsed\x20correctly!','CSV\x20parse\x20error','Error\x20executing\x20contact\x20csv\x20import:','bluebird','util','squel','ioredis','../../../mysqldb','../../../config/environment','../../../config/logger','api','redis'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x3562,0xd3));var _0x2356=function(_0x842858,_0x3a3ca0){_0x842858=_0x842858-0x0;var _0x46c2a2=_0x3562[_0x842858];return _0x46c2a2;};'use strict';var BPromise=require(_0x2356('0x0'));var util=require(_0x2356('0x1'));var _=require('lodash');var fs=require('fs');var squel=require(_0x2356('0x2'));var Papa=require('papaparse');var Redis=require(_0x2356('0x3'));var db=require(_0x2356('0x4'))['db'];var config=require(_0x2356('0x5'));var logger=require(_0x2356('0x6'))(_0x2356('0x7'));config[_0x2356('0x8')]=_[_0x2356('0x9')](config[_0x2356('0x8')],{'host':_0x2356('0xa'),'port':0x18eb});var socket=require(_0x2356('0xb'))(new Redis(config[_0x2356('0x8')]));require(_0x2356('0xc'))['register'](socket);try{if(!process[_0x2356('0xd')][0x2]||process[_0x2356('0xd')][0x2]==='undefined'||process[_0x2356('0xd')][0x2]===_0x2356('0xe')){throw new Error(_0x2356('0xf'));}var FILEPATH=process[_0x2356('0xd')][0x2];if(!process[_0x2356('0xd')][0x3]||process[_0x2356('0xd')][0x3]==='undefined'||process[_0x2356('0xd')][0x3]===_0x2356('0xe')||!process[_0x2356('0xd')][0x4]||process[_0x2356('0xd')][0x4]===_0x2356('0x10')||process[_0x2356('0xd')][0x4]===_0x2356('0xe')){throw new Error('Missing\x20binding\x20parameters!');}var FIELDS=_[_0x2356('0x11')](process[_0x2356('0xd')][0x3][_0x2356('0x12')](','),process[_0x2356('0xd')][0x4][_0x2356('0x12')](','));if(!process[_0x2356('0xd')][0x5]||process[_0x2356('0xd')][0x5]===_0x2356('0x10')||process[_0x2356('0xd')][0x5]===_0x2356('0xe')){throw new Error(_0x2356('0x13'));}var LISTID=process[_0x2356('0xd')][0x5];var COMPANYID=process['argv'][0x6]&&process[_0x2356('0xd')][0x6]!==_0x2356('0x10')&&process['argv'][0x6]!==_0x2356('0xe')?process[_0x2356('0xd')][0x6]:null;var DUPLICATES=process[_0x2356('0xd')][0x7]&&process['argv'][0x7]!==_0x2356('0x10')&&process[_0x2356('0xd')][0x7]!==_0x2356('0xe')?process[_0x2356('0xd')][0x7]:null;if(!process[_0x2356('0xd')][0x8]||process[_0x2356('0xd')][0x8]===_0x2356('0x10')||process[_0x2356('0xd')][0x8]==='null'){throw new Error(_0x2356('0x14'));}var SOCKET_TIMESTAMP=process[_0x2356('0xd')][0x8];}catch(_0x2a3bdc){logger[_0x2356('0x15')](_0x2a3bdc);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(_0xfcc817,_0x15c512,_0x100b48,_0x2d7e9a){var _0x1d3559={'message':_0x15c512};_0x1d3559[_0xfcc817]=!![];if(_0x100b48){_0x1d3559[_0x2356('0x16')]=_0x100b48;}if(_0x2d7e9a){_0x1d3559[_0x2356('0x17')]=_0x2d7e9a;}return _0x1d3559;}function isEmail(_0x2a436a){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))*$/[_0x2356('0x18')](_0x2a436a);}function checkRow(_0x393c5c,_0x484e2c,_0x431bab){return new BPromise(function(_0x1cb367,_0x498844){if(_[_0x2356('0x19')](_0x393c5c)){return _0x498844(handleCheckRowError('error',_0x2356('0x1a'),null,_0x431bab));}if(_0x393c5c['errors']&&_0x393c5c[_0x2356('0x1b')]['length']){var _0x581e7f=_[_0x2356('0x1c')](_0x393c5c[_0x2356('0x1b')],'message')[_0x2356('0x1d')](';');return _0x498844(handleCheckRowError(_0x2356('0x15'),_0x581e7f,null,_0x431bab));}var _0x4fcf1b={};for(var _0x576205 in FIELDS){if(FIELDS[_0x2356('0x1e')](_0x576205)&&FIELDS[_0x576205]){_0x4fcf1b[_0x576205]=_0x393c5c[_0x2356('0x1f')][0x0][FIELDS[_0x576205]]||_0x393c5c[_0x2356('0x1f')][0x0]['\ufeff'+FIELDS[_0x576205]];}}if(!_0x4fcf1b[_0x2356('0x20')]){return _0x498844(handleCheckRowError(_0x2356('0x15'),_0x2356('0x21'),null,_0x431bab));}if(!_0x4fcf1b['phone']){return _0x498844(handleCheckRowError(_0x2356('0x15'),'phone\x20not\x20specified!',null,_0x431bab));}if(_0x4fcf1b[_0x2356('0x22')]){var _0x5d2d94=moment(_0x4fcf1b[_0x2356('0x22')],_0x2356('0x23'));if(!_0x5d2d94[_0x2356('0x24')]()){return _0x498844(handleCheckRowError(_0x2356('0x15'),'birthDate\x20format\x20is\x20invalid,\x20YYYY-MM-DD\x20format\x20is\x20supported!',null,_0x431bab));}}if(_0x4fcf1b[_0x2356('0x25')]){if(!isEmail(_0x4fcf1b[_0x2356('0x25')])){return _0x498844(handleCheckRowError(_0x2356('0x15'),_0x2356('0x26'),null,_0x431bab));}}_0x4fcf1b[_0x2356('0x27')]=LISTID;_0x4fcf1b['CompanyId']=COMPANYID||undefined;if(DUPLICATES&&DUPLICATES[_0x2356('0x28')]&&_0x484e2c){var _0x31127b={};for(var _0x4d5f9e=0x0,_0x30d16c=DUPLICATES[_0x2356('0x28')];_0x4d5f9e<_0x30d16c;_0x4d5f9e+=0x1){_0x31127b[DUPLICATES[_0x4d5f9e]]=_0x4fcf1b[DUPLICATES[_0x4d5f9e]];}var _0x4ef07d=_['find'](_0x484e2c,_0x31127b);if(_0x4ef07d){return _0x498844(handleCheckRowError(_0x2356('0x29'),'Duplicate\x20Contact',_0x4ef07d,_0x431bab));}}return db[_0x2356('0x2a')][_0x2356('0x2b')](_0x4fcf1b,{'raw':!![],'hooks':![],'fields':_[_0x2356('0x2c')](_0x4fcf1b)})[_0x2356('0x2d')](function(_0x14749a){if(DUPLICATES&&DUPLICATES[_0x2356('0x28')]&&_0x484e2c){_0x484e2c[_0x2356('0x2e')](_['pick'](_0x4fcf1b,DUPLICATES));}hopperContacts+=(hopperContacts?',':'')+_0x14749a['id'];return _0x1cb367();})[_0x2356('0x2f')](function(_0x2ffd05){return _0x498844(handleCheckRowError(_0x2356('0x15'),_0x2356('0x30')+(_0x2ffd05[_0x2356('0x31')]||JSON[_0x2356('0x32')](_0x2ffd05)),null,_0x431bab));});});}function checkHopper(){function _0x16d1e9(){return function(_0x146adc){logger[_0x2356('0x15')](_0x2356('0x33'),'checkHopper',util['inspect'](_0x146adc,{'showHidden':![],'depth':null}));};}var _0x4e8399=function(_0x129eda,_0x40b591){var _0x9bf905=squel[_0x2356('0x34')]()[_0x2356('0x35')](_0x2356('0x36'))[_0x2356('0x37')]([_0x2356('0x38'),'scheduledAt',_0x2356('0x39'),_0x2356('0x27'),_0x40b591,'createdAt','updatedAt'],squel[_0x2356('0x3a')]()[_0x2356('0x3b')](_0x2356('0x38'),'phone')[_0x2356('0x3b')](_0x2356('0x3c'),_0x2356('0x3d'))[_0x2356('0x3b')]('id','ContactId')[_0x2356('0x3b')](LISTID[_0x2356('0x3e')](),_0x2356('0x27'))[_0x2356('0x3b')](_0x129eda['id']['toString'](),_0x40b591)[_0x2356('0x3b')]('NOW()',_0x2356('0x3f'))[_0x2356('0x3b')](_0x2356('0x3c'),_0x2356('0x40'))[_0x2356('0x41')](_0x2356('0x42'))['where']('deletedAt\x20IS\x20NULL')['where'](_0x2356('0x43'),LISTID[_0x2356('0x3e')]())[_0x2356('0x44')](_0x2356('0x45'))[_0x2356('0x44')]('phone\x20NOT\x20IN\x20(?)',squel['select']()[_0x2356('0x3b')]('phone')[_0x2356('0x41')](_0x2356('0x36'))[_0x2356('0x44')](_0x40b591+_0x2356('0x46'),_0x129eda['id'][_0x2356('0x3e')]())))[_0x2356('0x3e')]();return _0x9bf905;};var _0x2172ee=function(_0x169643,_0x2ceee5){var _0x53afa1=squel['insert']()[_0x2356('0x35')](_0x2356('0x36'))['fromQuery']([_0x2356('0x38'),_0x2356('0x3d'),_0x2356('0x39'),'ListId',_0x2ceee5,_0x2356('0x3f'),'updatedAt'],squel[_0x2356('0x3a')]()['field'](_0x2356('0x38'),_0x2356('0x38'))[_0x2356('0x3b')]('NOW()','scheduledAt')['field']('id',_0x2356('0x39'))['field'](LISTID[_0x2356('0x3e')](),_0x2356('0x27'))[_0x2356('0x3b')](_0x169643['id'][_0x2356('0x3e')](),_0x2ceee5)['field'](_0x2356('0x3c'),_0x2356('0x3f'))[_0x2356('0x3b')](_0x2356('0x3c'),_0x2356('0x40'))['from'](_0x2356('0x42'))[_0x2356('0x44')](_0x2356('0x47'))[_0x2356('0x44')](_0x2356('0x43'),LISTID[_0x2356('0x3e')]())[_0x2356('0x44')](_0x2356('0x48'),squel[_0x2356('0x49')](hopperContacts))['where'](_0x2356('0x45'))[_0x2356('0x44')]('phone\x20NOT\x20IN\x20(?)',squel[_0x2356('0x3a')]()['field'](_0x2356('0x4a'))[_0x2356('0x41')](_0x2356('0x4b'))[_0x2356('0x44')](_0x2ceee5+_0x2356('0x46'),_0x169643['id']['toString']()))['where'](_0x2356('0x4c'),squel['select']()[_0x2356('0x3b')]('phone')['from'](_0x2356('0x36'))[_0x2356('0x44')](_0x2ceee5+_0x2356('0x46'),_0x169643['id'][_0x2356('0x3e')]())))['toString']();return _0x53afa1;};function _0x57cfb6(_0x56a188,_0x546215){var _0x45940c=squel[_0x2356('0x34')]()['into'](_0x2356('0x36'))[_0x2356('0x37')]([_0x2356('0x38'),_0x2356('0x3d'),_0x2356('0x39'),'ListId',_0x546215,_0x2356('0x3f'),'updatedAt'],squel[_0x2356('0x3a')]()[_0x2356('0x3b')]('phone',_0x2356('0x38'))[_0x2356('0x3b')](_0x2356('0x3c'),_0x2356('0x3d'))[_0x2356('0x3b')]('id','ContactId')['field'](LISTID[_0x2356('0x3e')](),_0x2356('0x27'))[_0x2356('0x3b')](_0x56a188['id']['toString'](),_0x546215)[_0x2356('0x3b')](_0x2356('0x3c'),_0x2356('0x3f'))[_0x2356('0x3b')](_0x2356('0x3c'),_0x2356('0x40'))[_0x2356('0x41')](_0x2356('0x42'))['where'](_0x2356('0x47'))['where']('ListId\x20=\x20?',LISTID[_0x2356('0x3e')]())[_0x2356('0x44')](_0x2356('0x48'),squel[_0x2356('0x49')](hopperContacts))[_0x2356('0x44')](_0x2356('0x45')))[_0x2356('0x3e')]();return _0x45940c;}function _0x4da0b8(_0x211538,_0x8e58be){var _0x3fcaf7=squel[_0x2356('0x34')]()[_0x2356('0x35')](_0x2356('0x4d'))[_0x2356('0x37')]([_0x2356('0x38'),'ContactId','ListId',_0x8e58be,'createdAt',_0x2356('0x40')],squel[_0x2356('0x3a')]()[_0x2356('0x3b')](_0x2356('0x38'),_0x2356('0x38'))[_0x2356('0x3b')]('id',_0x2356('0x39'))[_0x2356('0x3b')](LISTID[_0x2356('0x3e')](),_0x2356('0x27'))[_0x2356('0x3b')](_0x211538['id']['toString'](),_0x8e58be)['field'](_0x2356('0x3c'),_0x2356('0x3f'))[_0x2356('0x3b')](_0x2356('0x3c'),_0x2356('0x40'))[_0x2356('0x41')](_0x2356('0x42'))['where']('deletedAt\x20IS\x20NULL')['where'](_0x2356('0x43'),LISTID['toString']())['where'](_0x2356('0x48'),squel[_0x2356('0x49')](hopperContacts))[_0x2356('0x44')](_0x2356('0x45')))[_0x2356('0x3e')]();return _0x3fcaf7;}return db['VoiceQueue'][_0x2356('0x4e')]({'where':{'type':_0x2356('0x4f')},'attributes':['id',_0x2356('0x50')],'include':[{'model':db[_0x2356('0x51')],'as':_0x2356('0x52'),'where':{'id':LISTID}}]})['then'](function(_0x1f7a8f){var _0x22401f=[];if(_0x1f7a8f){var _0x3bbb96;for(var _0x12b12f=0x0,_0x111227;_0x12b12f<_0x1f7a8f[_0x2356('0x28')];_0x12b12f+=0x1){_0x111227=_0x1f7a8f[_0x12b12f]['get']({'plain':!![]});switch(_0x111227[_0x2356('0x50')]){case _0x2356('0x53'):_0x22401f[_0x2356('0x2e')](db['sequelize'][_0x2356('0x54')](_0x2172ee(_0x111227,_0x2356('0x55')))[_0x2356('0x2d')](function(){})[_0x2356('0x2f')](_0x16d1e9()));break;case'onlyIfOpen':_0x22401f[_0x2356('0x2e')](db[_0x2356('0x56')][_0x2356('0x54')](_0x4e8399(_0x111227,'VoiceQueueId'))['then'](function(){})[_0x2356('0x2f')](_0x16d1e9()));break;default:_0x22401f['push'](db[_0x2356('0x56')][_0x2356('0x54')](_0x57cfb6(_0x111227,_0x2356('0x55')))[_0x2356('0x2d')](function(){})[_0x2356('0x2f')](_0x16d1e9()));}}}return _0x22401f;})[_0x2356('0x57')]()[_0x2356('0x2d')](function(){return db[_0x2356('0x58')][_0x2356('0x4e')]({'where':{'type':'outbound'},'attributes':['id'],'include':[{'model':db[_0x2356('0x51')],'as':'BlackLists','where':{'id':LISTID}}]})[_0x2356('0x2d')](function(_0x7af1d4){var _0x15fafe=[];if(_0x7af1d4){var _0x43d2c7;for(var _0x3277b7=0x0,_0x4fcd34;_0x3277b7<_0x7af1d4[_0x2356('0x28')];_0x3277b7+=0x1){_0x4fcd34=_0x7af1d4[_0x3277b7][_0x2356('0x59')]({'plain':!![]});_0x15fafe[_0x2356('0x2e')](db[_0x2356('0x56')]['query'](_0x4da0b8(_0x4fcd34,_0x2356('0x55')))[_0x2356('0x2d')](function(){})[_0x2356('0x2f')](_0x16d1e9()));}}return _0x15fafe;})[_0x2356('0x57')]();})[_0x2356('0x2d')](function(){return db[_0x2356('0x5a')][_0x2356('0x4e')]({'attributes':['id',_0x2356('0x50')],'include':[{'model':db[_0x2356('0x51')],'as':_0x2356('0x52'),'where':{'id':LISTID}}]})[_0x2356('0x2d')](function(_0x4f556c){var _0x3fea6d=[];if(_0x4f556c){for(var _0x457db0=0x0,_0x3313b3;_0x457db0<_0x4f556c['length'];_0x457db0+=0x1){_0x3313b3=_0x4f556c[_0x457db0][_0x2356('0x59')]({'plain':!![]});switch(_0x3313b3[_0x2356('0x50')]){case _0x2356('0x53'):_0x3fea6d[_0x2356('0x2e')](db['sequelize'][_0x2356('0x54')](_0x2172ee(_0x3313b3,_0x2356('0x5b')))[_0x2356('0x2d')](function(){})[_0x2356('0x2f')](_0x16d1e9()));break;case'onlyIfOpen':_0x3fea6d[_0x2356('0x2e')](db['sequelize']['query'](_0x4e8399(_0x3313b3,_0x2356('0x5b')))[_0x2356('0x2d')](function(){})[_0x2356('0x2f')](_0x16d1e9()));break;default:_0x3fea6d['push'](db['sequelize'][_0x2356('0x54')](_0x57cfb6(_0x3313b3,'CampaignId'))[_0x2356('0x2d')](function(){})[_0x2356('0x2f')](_0x16d1e9()));}}}return _0x3fea6d;})['all']();})[_0x2356('0x2d')](function(){return db[_0x2356('0x5a')][_0x2356('0x4e')]({'attributes':['id'],'include':[{'model':db['CmList'],'as':_0x2356('0x5c'),'where':{'id':LISTID}}]})['then'](function(_0x1dc9f1){var _0x47160a=[];if(_0x1dc9f1){for(var _0x1dc235=0x0,_0x44979e;_0x1dc235<_0x1dc9f1[_0x2356('0x28')];_0x1dc235+=0x1){_0x44979e=_0x1dc9f1[_0x1dc235][_0x2356('0x59')]({'plain':!![]});_0x47160a['push'](db[_0x2356('0x56')][_0x2356('0x54')](_0x4da0b8(_0x44979e,_0x2356('0x5b')))[_0x2356('0x2d')](function(){})[_0x2356('0x2f')](_0x16d1e9()));}}return _0x47160a;})[_0x2356('0x57')]();})['catch'](function(_0x1ee29a){logger[_0x2356('0x15')](_0x2356('0x5d'),_0x2356('0x5e'),_0x1ee29a[_0x2356('0x31')]);});}var processPromises=function(_0x40cf85){return BPromise['all'](promises)['then'](function(_0x4dc391){})['catch'](function(_0x52eb66){logger[_0x2356('0x15')](_0x2356('0x5f'),JSON[_0x2356('0x32')](_0x52eb66));})[_0x2356('0x60')](function(){socket[_0x2356('0x61')]('contact:csv_'+SOCKET_TIMESTAMP,{'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});promises=[];success=0x0;errors=0x0;duplicates=0x0;rows=[];if(_0x40cf85){return _0x40cf85[_0x2356('0x62')]();}});};var endCsv=function(){return BPromise[_0x2356('0x63')]()[_0x2356('0x2d')](function(){if(hopperContacts){return checkHopper();}})[_0x2356('0x2d')](function(){socket[_0x2356('0x61')](_0x2356('0x64')+SOCKET_TIMESTAMP,{'finished':!![],'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});try{fs['unlinkSync'](FILEPATH);}catch(_0x495830){logger[_0x2356('0x15')]('Unable\x20to\x20delete\x20temp\x20file:',JSON[_0x2356('0x32')](_0x495830));}finally{process[_0x2356('0x65')](0x0);}});};process['on']('SIGINT',function(){logger[_0x2356('0x66')](_0x2356('0x67'));endCsv();});function main(){return BPromise[_0x2356('0x63')]()[_0x2356('0x2d')](function(){if(DUPLICATES){DUPLICATES=DUPLICATES[_0x2356('0x12')](',');return db[_0x2356('0x2a')][_0x2356('0x4e')]({'where':{'ListId':LISTID},'attributes':DUPLICATES,'raw':!![]});}})[_0x2356('0x2d')](function(_0x176db6){var _0xb24539=fs[_0x2356('0x68')](FILEPATH,{'highWaterMark':0xf*0x400*0x400});Papa[_0x2356('0x69')](_0xb24539,{'header':!![],'skipEmptyLines':!![],'step':function(_0x592feb,_0xf3ed88){total+=0x1;var _0x320ee5=total;promises['push'](checkRow(_0x592feb,_0x176db6,_0x320ee5)[_0x2356('0x2d')](function(){success+=0x1;})[_0x2356('0x2f')](function(_0x4218b1){if(_0x4218b1[_0x2356('0x15')]){errors+=0x1;delete _0x4218b1[_0x2356('0x15')];}else if(_0x4218b1[_0x2356('0x29')]){duplicates+=0x1;delete _0x4218b1[_0x2356('0x29')];}rows[_0x2356('0x2e')](_0x4218b1);}));if(total%0xc8===0x0){_0xf3ed88[_0x2356('0x6a')]();return processPromises(_0xf3ed88);}},'complete':function(){return processPromises()[_0x2356('0x2d')](function(){logger['info'](_0x2356('0x6b'));endCsv();});},'error':function(_0xb6a32b,_0x379f39){logger[_0x2356('0x66')](_0x2356('0x6c'),JSON['stringify'](_0xb6a32b));endCsv();}});})[_0x2356('0x2f')](function(_0x391dee){logger[_0x2356('0x15')](_0x2356('0x6d'),JSON['stringify'](_0x391dee));});}main();
\ No newline at end of file
+var _0x6aca=['catch','Error\x20while\x20creating\x20contact:\x20','message','stringify','cmContact','checkHopper','inspect','insert','into','cm_hopper','fromQuery','scheduledAt','createdAt','select','field','NOW()','ContactId','toString','updatedAt','from','where','deletedAt\x20IS\x20NULL','phone\x20IS\x20NOT\x20NULL','cm_contacts','str','phone\x20NOT\x20IN\x20(?)','calleridnum','\x20=\x20?','ListId\x20=\x20?','id\x20IN\x20?','cm_hopper_black','VoiceQueue','outbound','Lists','get','dialCheckDuplicateType','sequelize','query','VoiceQueueId','all','findAll','CmList','BlackLists','Campaign','CampaignId','onlyIfOpen','cmContact,\x20%s,\x20%s','generalCheckHopper','Error\x20processing\x20rows\x20block:','finally','resume','emit','Unable\x20to\x20delete\x20temp\x20file:','SIGINT','info','CSV\x20import\x20process\x20stopped!','resolve','CSV\x20parsed\x20correctly!','CSV\x20parse\x20error','Error\x20executing\x20contact\x20csv\x20import:','bluebird','util','lodash','papaparse','ioredis','../../../mysqldb','../../../config/environment','../../../config/logger','api','redis','localhost','../../../api/cmContact/cmContact.socket','register','argv','null','Missing\x20filepath\x20parameter!','undefined','zipObject','split','Missing\x20socket_timestamp\x20parameter!','error','contact','index','test','isNil','errors','join','hasOwnProperty','data','firstName','phone','phone\x20not\x20specified!','birthDate','YYYY-MM-DD','isValid','email','email\x20format\x20is\x20not\x20valid!','ListId','CompanyId','length','find','duplicate','CmContact','create','keys','then','push'];(function(_0x2f9a83,_0x254441){var _0x10ff98=function(_0x177f0d){while(--_0x177f0d){_0x2f9a83['push'](_0x2f9a83['shift']());}};_0x10ff98(++_0x254441);}(_0x6aca,0x17d));var _0xa6ac=function(_0x122096,_0x60c295){_0x122096=_0x122096-0x0;var _0x3d1966=_0x6aca[_0x122096];return _0x3d1966;};'use strict';var BPromise=require(_0xa6ac('0x0'));var util=require(_0xa6ac('0x1'));var _=require(_0xa6ac('0x2'));var fs=require('fs');var squel=require('squel');var Papa=require(_0xa6ac('0x3'));var Redis=require(_0xa6ac('0x4'));var db=require(_0xa6ac('0x5'))['db'];var config=require(_0xa6ac('0x6'));var logger=require(_0xa6ac('0x7'))(_0xa6ac('0x8'));config[_0xa6ac('0x9')]=_['defaults'](config[_0xa6ac('0x9')],{'host':_0xa6ac('0xa'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0xa6ac('0xb'))[_0xa6ac('0xc')](socket);try{if(!process['argv'][0x2]||process[_0xa6ac('0xd')][0x2]==='undefined'||process['argv'][0x2]===_0xa6ac('0xe')){throw new Error(_0xa6ac('0xf'));}var FILEPATH=process['argv'][0x2];if(!process[_0xa6ac('0xd')][0x3]||process[_0xa6ac('0xd')][0x3]===_0xa6ac('0x10')||process[_0xa6ac('0xd')][0x3]===_0xa6ac('0xe')||!process[_0xa6ac('0xd')][0x4]||process[_0xa6ac('0xd')][0x4]===_0xa6ac('0x10')||process[_0xa6ac('0xd')][0x4]===_0xa6ac('0xe')){throw new Error('Missing\x20binding\x20parameters!');}var FIELDS=_[_0xa6ac('0x11')](process[_0xa6ac('0xd')][0x3][_0xa6ac('0x12')](','),process['argv'][0x4]['split'](','));if(!process['argv'][0x5]||process[_0xa6ac('0xd')][0x5]==='undefined'||process[_0xa6ac('0xd')][0x5]===_0xa6ac('0xe')){throw new Error('Missing\x20ListId\x20parameter!');}var LISTID=process[_0xa6ac('0xd')][0x5];var COMPANYID=process['argv'][0x6]&&process[_0xa6ac('0xd')][0x6]!==_0xa6ac('0x10')&&process[_0xa6ac('0xd')][0x6]!==_0xa6ac('0xe')?process[_0xa6ac('0xd')][0x6]:null;var DUPLICATES=process[_0xa6ac('0xd')][0x7]&&process[_0xa6ac('0xd')][0x7]!==_0xa6ac('0x10')&&process[_0xa6ac('0xd')][0x7]!=='null'?process['argv'][0x7]:null;if(!process[_0xa6ac('0xd')][0x8]||process[_0xa6ac('0xd')][0x8]==='undefined'||process[_0xa6ac('0xd')][0x8]==='null'){throw new Error(_0xa6ac('0x13'));}var SOCKET_TIMESTAMP=process['argv'][0x8];}catch(_0x4f3fd9){logger[_0xa6ac('0x14')](_0x4f3fd9);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(_0x192980,_0x2ac046,_0x443317,_0x85344d){var _0x15b094={'message':_0x2ac046};_0x15b094[_0x192980]=!![];if(_0x443317){_0x15b094[_0xa6ac('0x15')]=_0x443317;}if(_0x85344d){_0x15b094[_0xa6ac('0x16')]=_0x85344d;}return _0x15b094;}function isEmail(_0x43cb29){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))*$/[_0xa6ac('0x17')](_0x43cb29);}function checkRow(_0x490e0b,_0x37fec0,_0x22d590){return new BPromise(function(_0x1f2c5f,_0x5d297b){if(_[_0xa6ac('0x18')](_0x490e0b)){return _0x5d297b(handleCheckRowError(_0xa6ac('0x14'),'The\x20row\x20is\x20empty\x20or\x20the\x20number\x20of\x20parameters\x20does\x20not\x20match\x20the\x20columns!',null,_0x22d590));}if(_0x490e0b[_0xa6ac('0x19')]&&_0x490e0b[_0xa6ac('0x19')]['length']){var _0x1b5fa0=_['map'](_0x490e0b[_0xa6ac('0x19')],'message')[_0xa6ac('0x1a')](';');return _0x5d297b(handleCheckRowError(_0xa6ac('0x14'),_0x1b5fa0,null,_0x22d590));}var _0xd896e={};for(var _0x41f00a in FIELDS){if(FIELDS[_0xa6ac('0x1b')](_0x41f00a)&&FIELDS[_0x41f00a]){_0xd896e[_0x41f00a]=_0x490e0b[_0xa6ac('0x1c')][0x0][FIELDS[_0x41f00a]]||_0x490e0b[_0xa6ac('0x1c')][0x0]['\ufeff'+FIELDS[_0x41f00a]];}}if(!_0xd896e[_0xa6ac('0x1d')]){return _0x5d297b(handleCheckRowError(_0xa6ac('0x14'),'firstName\x20not\x20specified!',null,_0x22d590));}if(!_0xd896e[_0xa6ac('0x1e')]){return _0x5d297b(handleCheckRowError('error',_0xa6ac('0x1f'),null,_0x22d590));}if(_0xd896e['birthDate']){var _0x135ed5=moment(_0xd896e[_0xa6ac('0x20')],_0xa6ac('0x21'));if(!_0x135ed5[_0xa6ac('0x22')]()){return _0x5d297b(handleCheckRowError(_0xa6ac('0x14'),'birthDate\x20format\x20is\x20invalid,\x20YYYY-MM-DD\x20format\x20is\x20supported!',null,_0x22d590));}}if(_0xd896e[_0xa6ac('0x23')]){if(!isEmail(_0xd896e[_0xa6ac('0x23')])){return _0x5d297b(handleCheckRowError(_0xa6ac('0x14'),_0xa6ac('0x24'),null,_0x22d590));}}_0xd896e[_0xa6ac('0x25')]=LISTID;_0xd896e[_0xa6ac('0x26')]=COMPANYID||undefined;if(DUPLICATES&&DUPLICATES['length']&&_0x37fec0){var _0x3fb17b={};for(var _0x3ed9bf=0x0,_0xaee422=DUPLICATES[_0xa6ac('0x27')];_0x3ed9bf<_0xaee422;_0x3ed9bf+=0x1){_0x3fb17b[DUPLICATES[_0x3ed9bf]]=_0xd896e[DUPLICATES[_0x3ed9bf]];}var _0x440748=_[_0xa6ac('0x28')](_0x37fec0,_0x3fb17b);if(_0x440748){return _0x5d297b(handleCheckRowError(_0xa6ac('0x29'),'Duplicate\x20Contact',_0x440748,_0x22d590));}}return db[_0xa6ac('0x2a')][_0xa6ac('0x2b')](_0xd896e,{'raw':!![],'hooks':![],'fields':_[_0xa6ac('0x2c')](_0xd896e)})[_0xa6ac('0x2d')](function(_0x2c0012){if(DUPLICATES&&DUPLICATES[_0xa6ac('0x27')]&&_0x37fec0){_0x37fec0[_0xa6ac('0x2e')](_['pick'](_0xd896e,DUPLICATES));}hopperContacts+=(hopperContacts?',':'')+_0x2c0012['id'];return _0x1f2c5f();})[_0xa6ac('0x2f')](function(_0x1d6f54){return _0x5d297b(handleCheckRowError(_0xa6ac('0x14'),_0xa6ac('0x30')+(_0x1d6f54[_0xa6ac('0x31')]||JSON[_0xa6ac('0x32')](_0x1d6f54)),null,_0x22d590));});});}function checkHopper(){function _0xb854b9(){return function(_0x12010d){logger[_0xa6ac('0x14')](_0xa6ac('0x33'),_0xa6ac('0x34'),util[_0xa6ac('0x35')](_0x12010d,{'showHidden':![],'depth':null}));};}var _0x36e4ee=function(_0x3db8df,_0x5d6735){var _0x5270e9=squel[_0xa6ac('0x36')]()[_0xa6ac('0x37')](_0xa6ac('0x38'))[_0xa6ac('0x39')]([_0xa6ac('0x1e'),_0xa6ac('0x3a'),'ContactId',_0xa6ac('0x25'),_0x5d6735,_0xa6ac('0x3b'),'updatedAt'],squel[_0xa6ac('0x3c')]()[_0xa6ac('0x3d')](_0xa6ac('0x1e'),_0xa6ac('0x1e'))['field'](_0xa6ac('0x3e'),_0xa6ac('0x3a'))[_0xa6ac('0x3d')]('id',_0xa6ac('0x3f'))['field'](LISTID[_0xa6ac('0x40')](),_0xa6ac('0x25'))[_0xa6ac('0x3d')](_0x3db8df['id'][_0xa6ac('0x40')](),_0x5d6735)['field']('NOW()',_0xa6ac('0x3b'))[_0xa6ac('0x3d')]('NOW()',_0xa6ac('0x41'))[_0xa6ac('0x42')]('cm_contacts')[_0xa6ac('0x43')](_0xa6ac('0x44'))[_0xa6ac('0x43')]('ListId\x20=\x20?',LISTID[_0xa6ac('0x40')]())[_0xa6ac('0x43')](_0xa6ac('0x45'))[_0xa6ac('0x43')]('phone\x20NOT\x20IN\x20(?)',squel[_0xa6ac('0x3c')]()[_0xa6ac('0x3d')](_0xa6ac('0x1e'))[_0xa6ac('0x42')](_0xa6ac('0x38'))[_0xa6ac('0x43')](_0x5d6735+'\x20=\x20?',_0x3db8df['id'][_0xa6ac('0x40')]())))[_0xa6ac('0x40')]();return _0x5270e9;};var _0x12d7b5=function(_0x1e7e22,_0x537965){var _0x59b94a=squel[_0xa6ac('0x36')]()['into'](_0xa6ac('0x38'))[_0xa6ac('0x39')](['phone',_0xa6ac('0x3a'),'ContactId','ListId',_0x537965,'createdAt',_0xa6ac('0x41')],squel[_0xa6ac('0x3c')]()['field'](_0xa6ac('0x1e'),'phone')[_0xa6ac('0x3d')](_0xa6ac('0x3e'),_0xa6ac('0x3a'))[_0xa6ac('0x3d')]('id',_0xa6ac('0x3f'))[_0xa6ac('0x3d')](LISTID[_0xa6ac('0x40')](),_0xa6ac('0x25'))['field'](_0x1e7e22['id']['toString'](),_0x537965)['field'](_0xa6ac('0x3e'),_0xa6ac('0x3b'))[_0xa6ac('0x3d')](_0xa6ac('0x3e'),_0xa6ac('0x41'))[_0xa6ac('0x42')](_0xa6ac('0x46'))['where'](_0xa6ac('0x44'))['where']('ListId\x20=\x20?',LISTID[_0xa6ac('0x40')]())[_0xa6ac('0x43')]('id\x20IN\x20?',squel[_0xa6ac('0x47')](hopperContacts))['where'](_0xa6ac('0x45'))[_0xa6ac('0x43')](_0xa6ac('0x48'),squel['select']()[_0xa6ac('0x3d')](_0xa6ac('0x49'))[_0xa6ac('0x42')]('cm_hopper_final')['where'](_0x537965+'\x20=\x20?',_0x1e7e22['id'][_0xa6ac('0x40')]()))[_0xa6ac('0x43')](_0xa6ac('0x48'),squel[_0xa6ac('0x3c')]()[_0xa6ac('0x3d')](_0xa6ac('0x1e'))[_0xa6ac('0x42')](_0xa6ac('0x38'))[_0xa6ac('0x43')](_0x537965+_0xa6ac('0x4a'),_0x1e7e22['id'][_0xa6ac('0x40')]())))[_0xa6ac('0x40')]();return _0x59b94a;};function _0x2b8f1d(_0x4be851,_0x36ada0){var _0x216178=squel[_0xa6ac('0x36')]()[_0xa6ac('0x37')](_0xa6ac('0x38'))[_0xa6ac('0x39')](['phone',_0xa6ac('0x3a'),_0xa6ac('0x3f'),'ListId',_0x36ada0,_0xa6ac('0x3b'),_0xa6ac('0x41')],squel[_0xa6ac('0x3c')]()[_0xa6ac('0x3d')](_0xa6ac('0x1e'),_0xa6ac('0x1e'))[_0xa6ac('0x3d')]('NOW()','scheduledAt')[_0xa6ac('0x3d')]('id',_0xa6ac('0x3f'))[_0xa6ac('0x3d')](LISTID[_0xa6ac('0x40')](),_0xa6ac('0x25'))['field'](_0x4be851['id'][_0xa6ac('0x40')](),_0x36ada0)[_0xa6ac('0x3d')](_0xa6ac('0x3e'),_0xa6ac('0x3b'))['field'](_0xa6ac('0x3e'),_0xa6ac('0x41'))[_0xa6ac('0x42')](_0xa6ac('0x46'))[_0xa6ac('0x43')](_0xa6ac('0x44'))[_0xa6ac('0x43')](_0xa6ac('0x4b'),LISTID[_0xa6ac('0x40')]())[_0xa6ac('0x43')](_0xa6ac('0x4c'),squel[_0xa6ac('0x47')](hopperContacts))[_0xa6ac('0x43')](_0xa6ac('0x45')))[_0xa6ac('0x40')]();return _0x216178;}function _0x5f2314(_0xc48dbd,_0x5ec2ac){var _0x591304=squel[_0xa6ac('0x36')]()[_0xa6ac('0x37')](_0xa6ac('0x4d'))[_0xa6ac('0x39')](['phone',_0xa6ac('0x3f'),_0xa6ac('0x25'),_0x5ec2ac,_0xa6ac('0x3b'),'updatedAt'],squel[_0xa6ac('0x3c')]()[_0xa6ac('0x3d')](_0xa6ac('0x1e'),_0xa6ac('0x1e'))[_0xa6ac('0x3d')]('id',_0xa6ac('0x3f'))[_0xa6ac('0x3d')](LISTID[_0xa6ac('0x40')](),'ListId')[_0xa6ac('0x3d')](_0xc48dbd['id'][_0xa6ac('0x40')](),_0x5ec2ac)[_0xa6ac('0x3d')]('NOW()',_0xa6ac('0x3b'))[_0xa6ac('0x3d')](_0xa6ac('0x3e'),'updatedAt')[_0xa6ac('0x42')](_0xa6ac('0x46'))[_0xa6ac('0x43')](_0xa6ac('0x44'))[_0xa6ac('0x43')]('ListId\x20=\x20?',LISTID[_0xa6ac('0x40')]())[_0xa6ac('0x43')](_0xa6ac('0x4c'),squel[_0xa6ac('0x47')](hopperContacts))[_0xa6ac('0x43')](_0xa6ac('0x45')))['toString']();return _0x591304;}return db[_0xa6ac('0x4e')]['findAll']({'where':{'type':_0xa6ac('0x4f')},'attributes':['id','dialCheckDuplicateType'],'include':[{'model':db['CmList'],'as':_0xa6ac('0x50'),'where':{'id':LISTID}}]})['then'](function(_0x40a12c){var _0x4dea94=[];if(_0x40a12c){var _0x1f8668;for(var _0x2033bd=0x0,_0x4c69b6;_0x2033bd<_0x40a12c['length'];_0x2033bd+=0x1){_0x4c69b6=_0x40a12c[_0x2033bd][_0xa6ac('0x51')]({'plain':!![]});switch(_0x4c69b6[_0xa6ac('0x52')]){case'always':_0x4dea94[_0xa6ac('0x2e')](db[_0xa6ac('0x53')][_0xa6ac('0x54')](_0x12d7b5(_0x4c69b6,_0xa6ac('0x55')))['then'](function(){})[_0xa6ac('0x2f')](_0xb854b9()));break;case'onlyIfOpen':_0x4dea94[_0xa6ac('0x2e')](db['sequelize'][_0xa6ac('0x54')](_0x36e4ee(_0x4c69b6,_0xa6ac('0x55')))[_0xa6ac('0x2d')](function(){})['catch'](_0xb854b9()));break;default:_0x4dea94[_0xa6ac('0x2e')](db[_0xa6ac('0x53')][_0xa6ac('0x54')](_0x2b8f1d(_0x4c69b6,_0xa6ac('0x55')))[_0xa6ac('0x2d')](function(){})[_0xa6ac('0x2f')](_0xb854b9()));}}}return _0x4dea94;})[_0xa6ac('0x56')]()[_0xa6ac('0x2d')](function(){return db[_0xa6ac('0x4e')][_0xa6ac('0x57')]({'where':{'type':_0xa6ac('0x4f')},'attributes':['id'],'include':[{'model':db[_0xa6ac('0x58')],'as':_0xa6ac('0x59'),'where':{'id':LISTID}}]})[_0xa6ac('0x2d')](function(_0x267a49){var _0x2c22d8=[];if(_0x267a49){var _0x23fd87;for(var _0x406c0d=0x0,_0x251477;_0x406c0d<_0x267a49[_0xa6ac('0x27')];_0x406c0d+=0x1){_0x251477=_0x267a49[_0x406c0d][_0xa6ac('0x51')]({'plain':!![]});_0x2c22d8['push'](db[_0xa6ac('0x53')][_0xa6ac('0x54')](_0x5f2314(_0x251477,_0xa6ac('0x55')))['then'](function(){})[_0xa6ac('0x2f')](_0xb854b9()));}}return _0x2c22d8;})[_0xa6ac('0x56')]();})[_0xa6ac('0x2d')](function(){return db[_0xa6ac('0x5a')][_0xa6ac('0x57')]({'attributes':['id',_0xa6ac('0x52')],'include':[{'model':db[_0xa6ac('0x58')],'as':'Lists','where':{'id':LISTID}}]})[_0xa6ac('0x2d')](function(_0x5308f0){var _0x549835=[];if(_0x5308f0){for(var _0xc9b70e=0x0,_0x55bdd3;_0xc9b70e<_0x5308f0[_0xa6ac('0x27')];_0xc9b70e+=0x1){_0x55bdd3=_0x5308f0[_0xc9b70e][_0xa6ac('0x51')]({'plain':!![]});switch(_0x55bdd3['dialCheckDuplicateType']){case'always':_0x549835[_0xa6ac('0x2e')](db[_0xa6ac('0x53')]['query'](_0x12d7b5(_0x55bdd3,_0xa6ac('0x5b')))['then'](function(){})['catch'](_0xb854b9()));break;case _0xa6ac('0x5c'):_0x549835[_0xa6ac('0x2e')](db['sequelize'][_0xa6ac('0x54')](_0x36e4ee(_0x55bdd3,_0xa6ac('0x5b')))['then'](function(){})['catch'](_0xb854b9()));break;default:_0x549835[_0xa6ac('0x2e')](db[_0xa6ac('0x53')]['query'](_0x2b8f1d(_0x55bdd3,_0xa6ac('0x5b')))[_0xa6ac('0x2d')](function(){})[_0xa6ac('0x2f')](_0xb854b9()));}}}return _0x549835;})['all']();})[_0xa6ac('0x2d')](function(){return db[_0xa6ac('0x5a')][_0xa6ac('0x57')]({'attributes':['id'],'include':[{'model':db[_0xa6ac('0x58')],'as':_0xa6ac('0x59'),'where':{'id':LISTID}}]})[_0xa6ac('0x2d')](function(_0x4084e7){var _0x2d64d5=[];if(_0x4084e7){for(var _0x30e0c4=0x0,_0x5d0cee;_0x30e0c4<_0x4084e7[_0xa6ac('0x27')];_0x30e0c4+=0x1){_0x5d0cee=_0x4084e7[_0x30e0c4]['get']({'plain':!![]});_0x2d64d5[_0xa6ac('0x2e')](db['sequelize'][_0xa6ac('0x54')](_0x5f2314(_0x5d0cee,'CampaignId'))[_0xa6ac('0x2d')](function(){})[_0xa6ac('0x2f')](_0xb854b9()));}}return _0x2d64d5;})['all']();})[_0xa6ac('0x2f')](function(_0x5de60c){logger['error'](_0xa6ac('0x5d'),_0xa6ac('0x5e'),_0x5de60c[_0xa6ac('0x31')]);});}var processPromises=function(_0x54ad74){return BPromise[_0xa6ac('0x56')](promises)[_0xa6ac('0x2d')](function(_0xb27b7c){})['catch'](function(_0x19acfb){logger[_0xa6ac('0x14')](_0xa6ac('0x5f'),JSON[_0xa6ac('0x32')](_0x19acfb));})[_0xa6ac('0x60')](function(){socket['emit']('contact:csv_'+SOCKET_TIMESTAMP,{'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});promises=[];success=0x0;errors=0x0;duplicates=0x0;rows=[];if(_0x54ad74){return _0x54ad74[_0xa6ac('0x61')]();}});};var endCsv=function(){return BPromise['resolve']()['then'](function(){if(hopperContacts){return checkHopper();}})['then'](function(){socket[_0xa6ac('0x62')]('contact:csv_'+SOCKET_TIMESTAMP,{'finished':!![],'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});try{fs['unlinkSync'](FILEPATH);}catch(_0x32f409){logger[_0xa6ac('0x14')](_0xa6ac('0x63'),JSON[_0xa6ac('0x32')](_0x32f409));}finally{process['exit'](0x0);}});};process['on'](_0xa6ac('0x64'),function(){logger[_0xa6ac('0x65')](_0xa6ac('0x66'));endCsv();});function main(){return BPromise[_0xa6ac('0x67')]()[_0xa6ac('0x2d')](function(){if(DUPLICATES){DUPLICATES=DUPLICATES['split'](',');return db[_0xa6ac('0x2a')]['findAll']({'where':{'ListId':LISTID},'attributes':DUPLICATES,'raw':!![]});}})[_0xa6ac('0x2d')](function(_0x3b15b7){var _0x47a17d=fs['createReadStream'](FILEPATH,{'highWaterMark':0xf*0x400*0x400});Papa['parse'](_0x47a17d,{'header':!![],'skipEmptyLines':!![],'step':function(_0xdf091f,_0x2802cf){total+=0x1;var _0x19d91b=total;promises['push'](checkRow(_0xdf091f,_0x3b15b7,_0x19d91b)['then'](function(){success+=0x1;})[_0xa6ac('0x2f')](function(_0x75736b){if(_0x75736b[_0xa6ac('0x14')]){errors+=0x1;delete _0x75736b['error'];}else if(_0x75736b['duplicate']){duplicates+=0x1;delete _0x75736b['duplicate'];}rows[_0xa6ac('0x2e')](_0x75736b);}));if(total%0xc8===0x0){_0x2802cf['pause']();return processPromises(_0x2802cf);}},'complete':function(){return processPromises()['then'](function(){logger[_0xa6ac('0x65')](_0xa6ac('0x68'));endCsv();});},'error':function(_0x51df5c,_0x5b7118){logger['info'](_0xa6ac('0x69'),JSON[_0xa6ac('0x32')](_0x51df5c));endCsv();}});})[_0xa6ac('0x2f')](function(_0x3eb355){logger[_0xa6ac('0x14')](_0xa6ac('0x6a'),JSON[_0xa6ac('0x32')](_0x3eb355));});}main();
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2de0=['cm_hopper','\x22always\x22','\x22onlyIfOpen\x22','toString','into','cm_contacts.ListId\x20=\x20','.CmListId','ListId\x20=\x20?','\x20=\x20?','concat','CompanyId',')\x20NOT\x20IN\x20?','deletedAt\x20IS\x20NULL','id\x20IN\x20?','MIN(id)','group','info','Received\x20SIGINT','error','message','exit','errors','code','sequelize','spread','push','main','send','start','binding','server/files/tmp','.csv','keys','parse','createReadStream','data','length','rows','hasOwnProperty','trim','replace','isValid','scheduledat\x20wrong\x20format\x20(YYYY-MM-DD\x20HH:mm:ss)','isNumber','includes','agent\x20not\x20exists','email\x20wrong\x20format','dateOfBirth','YYYY-MM-DD','dateOfBirth\x20wrong\x20format\x20(YYYY-MM-DD)','firstName','SystemRow','appendFileSync','emit','contact:import:','Abort\x20parser','abort','SystemError','step','duplicates','\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','isNil',',\x20scheduledAt\x20=\x20NOW()','voice_queues_has_cm_lists','voice_queues','VoiceQueueId','campaigns_has_cm_lists','campaigns','CampaignId','campaigns_has_cm_blacklists','each','finish','affectedRows','unlink','catch','argv','arguments\x20<filename>\x20<parameters>\x20<agents>','root','binding\x20doesn\x27t\x20exists','phone\x20is\x20mandatory','firstName\x20is\x20mandatory','ListId\x20is\x20mandatory','body\x20id\x20mandatory','map','No\x20agent\x20available','SIGINT','uncaughtException','lodash','papaparse','util','bluebird','moment','squel','ioredis','../../../config/environment','../../../config/logger','defaults','redis','localhost','socket.io-emitter','format','YYYY-MM-DD\x20HH:mm:ss','select','field','phone','join','.id\x20=\x20','where','\x20=\x20','.dialCheckDuplicateType\x20IN\x20(','cm_contacts.phone','cm_contacts.scheduledat','cm_contacts.id','cm_contacts.ListId','cm_contacts.createdAt','cm_contacts.updatedAt','cm_contacts.priority','cm_contacts.UserId','insert','fromQuery','scheduledat','ContactId','ListId','createdAt','updatedAt','priority','UserId','fields','from','cm_contacts','.CmListId\x20=\x20?','cm_contacts.createdAt\x20=\x20?','cm_contacts.phone\x20NOT\x20IN\x20(?)'];(function(_0x3f8342,_0x4546a1){var _0x55a0df=function(_0x1df11a){while(--_0x1df11a){_0x3f8342['push'](_0x3f8342['shift']());}};_0x55a0df(++_0x4546a1);}(_0x2de0,0x1ea));var _0x02de=function(_0x53ca79,_0x1fed9d){_0x53ca79=_0x53ca79-0x0;var _0x3a7e1c=_0x2de0[_0x53ca79];return _0x3a7e1c;};'use strict';var fs=require('fs');var path=require('path');var _=require(_0x02de('0x0'));var Papa=require(_0x02de('0x1'));var util=require(_0x02de('0x2'));var BPromise=require(_0x02de('0x3'));var moment=require(_0x02de('0x4'));var squel=require(_0x02de('0x5'));var Redis=require(_0x02de('0x6'));var db=require('../../../mysqldb')['db'];var config=require(_0x02de('0x7'));var logger=require(_0x02de('0x8'))('import');config['redis']=_[_0x02de('0x9')](config[_0x02de('0xa')],{'host':_0x02de('0xb'),'port':0x18eb});var socket=require(_0x02de('0xc'))(new Redis(config[_0x02de('0xa')]));var stats={'finish':![],'errors':[],'rows':0x0,'affectedRows':0x0};var results=[];var stopped=![];var NOW=moment()[_0x02de('0xd')](_0x02de('0xe'));function isEmail(_0x4b0dc8){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'](_0x4b0dc8);}function selectNotIn(_0xaea926,_0x545b8a,_0x43707d,_0x2ca7d5,_0x1fd9c3){return squel[_0x02de('0xf')]()[_0x02de('0x10')](_0x02de('0x11'))['from'](_0x2ca7d5)[_0x02de('0x12')](_0x545b8a,null,_0x545b8a+_0x02de('0x13')+_0x2ca7d5+'.'+_0x43707d)[_0x02de('0x14')](_0x2ca7d5+'.'+_0x43707d+_0x02de('0x15')+_0xaea926+'.'+_0x43707d)['where'](_0x545b8a+_0x02de('0x16')+_0x1fd9c3[_0x02de('0x12')]()+')');}function insertCmHopper(_0x5b3a4a,_0x17efe3,_0x45731b,_0xff53cf,_0x27b6a1){var _0x48ceb3=[_0x02de('0x17'),_0x02de('0x18'),_0x02de('0x19'),_0x02de('0x1a'),_0x17efe3+'.'+_0xff53cf,_0x02de('0x1b'),_0x02de('0x1c'),_0x02de('0x1d'),_0x02de('0x1e'),'\x22'+_0x27b6a1+'\x22'];return squel[_0x02de('0x1f')]()['into']('cm_hopper')[_0x02de('0x20')]([_0x02de('0x11'),_0x02de('0x21'),_0x02de('0x22'),_0x02de('0x23'),_0xff53cf,_0x02de('0x24'),_0x02de('0x25'),_0x02de('0x26'),_0x02de('0x27'),'recallme'],squel[_0x02de('0xf')]()[_0x02de('0x28')](_0x48ceb3)[_0x02de('0x29')](_0x17efe3)[_0x02de('0x12')](_0x02de('0x2a'),null,'cm_contacts.ListId\x20=\x20'+_0x17efe3+'.CmListId')[_0x02de('0x12')](_0x45731b,null,_0x45731b+_0x02de('0x13')+_0x17efe3+'.'+_0xff53cf)[_0x02de('0x14')](_0x17efe3+_0x02de('0x2b'),_0x5b3a4a)['where'](_0x02de('0x2c'),NOW)[_0x02de('0x14')](_0x02de('0x2d'),selectNotIn(_0x17efe3,_0x45731b,_0xff53cf,_0x02de('0x2e'),[_0x02de('0x2f'),_0x02de('0x30')]))[_0x02de('0x14')](_0x02de('0x2d'),selectNotIn(_0x17efe3,_0x45731b,_0xff53cf,_0x02de('0x2e'),[_0x02de('0x2f')])))[_0x02de('0x31')]();}function insertCmHopperBlack(_0x3b63aa,_0x1e9699,_0x28d104,_0x29e82f){var _0x835f=[_0x02de('0x17'),_0x02de('0x19'),'cm_contacts.ListId',_0x1e9699+'.'+_0x29e82f,_0x02de('0x1b'),_0x02de('0x1c')];return squel['insert']()[_0x02de('0x32')]('cm_hopper_black')['fromQuery']([_0x02de('0x11'),_0x02de('0x22'),_0x02de('0x23'),_0x29e82f,_0x02de('0x24'),_0x02de('0x25')],squel[_0x02de('0xf')]()[_0x02de('0x28')](_0x835f)[_0x02de('0x29')](_0x1e9699)['join'](_0x02de('0x2a'),null,_0x02de('0x33')+_0x1e9699+_0x02de('0x34'))[_0x02de('0x12')](_0x28d104,null,_0x28d104+'.id\x20=\x20'+_0x1e9699+'.'+_0x29e82f)[_0x02de('0x14')](_0x1e9699+_0x02de('0x2b'),_0x3b63aa)[_0x02de('0x14')]('cm_contacts.createdAt\x20=\x20?',NOW)['where'](_0x02de('0x2d'),squel[_0x02de('0xf')]()[_0x02de('0x10')](_0x02de('0x11'))['from']('cm_hopper_black')[_0x02de('0x14')](_0x02de('0x35'),_0x3b63aa)[_0x02de('0x14')](_0x29e82f+_0x02de('0x36'),_0x1e9699+'.'+_0x29e82f)))[_0x02de('0x31')]();}function insertCmContact(_0x30366d,_0x4c9d8a,_0x3d9da5,_0x51aae6){var _0x1f8fff=_[_0x02de('0x37')](_['keys'](_0x51aae6),[_0x02de('0x23'),_0x02de('0x38'),_0x02de('0x24'),_0x02de('0x25')]);return squel['insert']()[_0x02de('0x32')](_0x02de('0x2a'))[_0x02de('0x20')](_0x1f8fff,squel[_0x02de('0xf')]()[_0x02de('0x28')](_0x1f8fff)[_0x02de('0x29')](_0x4c9d8a)[_0x02de('0x14')]('('+_0x3d9da5['join'](',')+_0x02de('0x39'),squel['select']()[_0x02de('0x28')](_0x3d9da5)[_0x02de('0x29')]('cm_contacts')[_0x02de('0x14')](_0x02de('0x35'),_0x30366d)[_0x02de('0x14')](_0x02de('0x3a')))[_0x02de('0x14')](_0x02de('0x3b'),squel['select']()[_0x02de('0x10')](_0x02de('0x3c'),'min_id')[_0x02de('0x29')](_0x4c9d8a)[_0x02de('0x3d')](_0x3d9da5[_0x02de('0x12')](','))))['toString']();}function handleStop(){logger[_0x02de('0x3e')](_0x02de('0x3f'));stopped=!![];}function handleUncaughtException(_0x3b2cca){logger[_0x02de('0x40')](_0x3b2cca[_0x02de('0x41')]);process[_0x02de('0x42')](0x1);}function handleError(_0x3f328e,_0x44eab7){stats[_0x02de('0x43')]['push']({'name':_0x44eab7[_0x02de('0x44')],'message':_0x44eab7[_0x02de('0x41')],'row':_0x3f328e});}function handleQuery(_0x34ba7e){logger[_0x02de('0x3e')](_0x34ba7e);return db[_0x02de('0x45')]['query'](_0x34ba7e)[_0x02de('0x46')](function(_0x11c849){results[_0x02de('0x47')](_0x11c849);})['catch'](function(_0x21c4ca){logger[_0x02de('0x40')](_0x21c4ca['message']);});}function main(_0x2b2d1a,_0x54589a,_0x4f7393,_0x77fee9){logger['info'](_0x02de('0x48'),_0x2b2d1a,JSON['stringify'](_0x54589a));process[_0x02de('0x49')](_0x02de('0x4a'));var _0x3da724=_0x54589a[_0x02de('0x4b')];var _0x31fe94=_0x54589a['socket_timestamp'];var _0x90d789=path[_0x02de('0x12')](config['root'],_0x02de('0x4c'),_0x31fe94+_0x02de('0x4d'));var _0x590792=_[_0x02de('0x4e')](_0x3da724)['join']();logger['info']('header',_0x590792);fs['writeFileSync'](_0x90d789,_0x590792+'\x0a');Papa[_0x02de('0x4f')](fs[_0x02de('0x50')](_0x2b2d1a),{'header':!![],'skipEmptyLines':!![],'step':function(_0x1d4987,_0x1d1f89){try{for(var _0x20a95e=0x0,_0x4b61d0=[];_0x20a95e<_0x1d4987[_0x02de('0x51')][_0x02de('0x52')];_0x20a95e++){stats[_0x02de('0x53')]+=0x1;if(_0x1d4987[_0x02de('0x43')][_0x20a95e]){handleError(_0x1d4987[_0x02de('0x51')][_0x20a95e],_0x1d4987[_0x02de('0x43')][_0x20a95e]);}else{var _0x49ed91=[];for(var _0x2294b7 in _0x3da724){if(_0x3da724[_0x02de('0x54')](_0x2294b7)){if(_0x1d4987['data'][_0x20a95e][_0x3da724[_0x2294b7]]){var _0x5f55f2=_[_0x02de('0x55')](_0x1d4987[_0x02de('0x51')][_0x20a95e][_0x3da724[_0x2294b7]][_0x02de('0x56')](/"/g,'\x27'));switch(_0x2294b7){case _0x02de('0x21'):var _0xbc6900=moment(_0x5f55f2,_0x02de('0xe'),!![]);if(_0xbc6900[_0x02de('0x57')]()){_0x4b61d0['push']('\x22'+_0x5f55f2+'\x22');}else{_0x49ed91[_0x02de('0x47')](_0x02de('0x58'));}break;case'priority':var _0x12962c=parseInt(_0x5f55f2);_0x5f55f2=_['isNaN'](_0x12962c)||_0x12962c<0x0||_0x12962c>0x4?_0x77fee9?0x3:0x2:_0x12962c;_0x4b61d0[_0x02de('0x47')]('\x22'+_0x5f55f2+'\x22');break;case _0x02de('0x27'):var _0x379e60=parseInt(_0x5f55f2);if(_[_0x02de('0x59')](_0x379e60)&&_[_0x02de('0x5a')](_0x4f7393,_0x379e60)){_0x4b61d0['push']('\x22'+_0x379e60+'\x22');}else{_0x49ed91[_0x02de('0x47')](_0x02de('0x5b'));}break;case'email':if(isEmail(_0x5f55f2)){_0x4b61d0[_0x02de('0x47')]('\x22'+_0x5f55f2+'\x22');}else{_0x49ed91[_0x02de('0x47')](_0x02de('0x5c'));}break;case _0x02de('0x5d'):var _0x1c465a=moment(_0x5f55f2,_0x02de('0x5e'),!![]);if(_0x1c465a[_0x02de('0x57')]()){_0x4b61d0['push']('\x22'+_0x5f55f2+'\x22');}else{_0x49ed91[_0x02de('0x47')](_0x02de('0x5f'));}break;default:_0x4b61d0['push']('\x22'+_0x5f55f2+'\x22');}}else{switch(_0x2294b7){case _0x02de('0x60'):case _0x02de('0x11'):_0x49ed91[_0x02de('0x47')](_0x2294b7+'\x20not\x20specified');break;default:_0x4b61d0['push']('\x22\x22');}}}}if(_0x49ed91[_0x02de('0x52')]){handleError(_0x1d4987[_0x02de('0x51')][_0x20a95e],{'code':_0x02de('0x61'),'message':_0x49ed91[_0x02de('0x12')]()});}else{fs[_0x02de('0x62')](_0x90d789,_0x4b61d0[_0x02de('0x12')]()+'\x0a');}_0x4b61d0=[];}if(!(stats[_0x02de('0x53')]%0xc8)){socket[_0x02de('0x63')](_0x02de('0x64')+_0x31fe94,stats);stats[_0x02de('0x43')]=[];}}if(stopped){logger[_0x02de('0x3e')](_0x02de('0x65'));_0x1d1f89[_0x02de('0x66')]();}}catch(_0x3d093f){handleError(_0x1d4987[_0x02de('0x51')][_0x20a95e],{'code':_0x02de('0x67'),'message':_0x3d093f[_0x02de('0x41')]});logger[_0x02de('0x40')](_0x02de('0x68'),_0x3d093f[_0x02de('0x41')]);}},'complete':function(){try{var _0x535cd7=[];var _0x28e7fc=_0x02de('0x2a');if(_0x54589a['duplicates']&&_0x54589a[_0x02de('0x69')][_0x02de('0x52')]){_0x28e7fc='cm_contacts_'+_0x31fe94;_0x535cd7[_0x02de('0x47')]('CREATE\x20TABLE\x20'+_0x28e7fc+_0x02de('0x6a'));}var _0x3aa0a5=util[_0x02de('0xd')](_0x02de('0x6b'),_0x90d789,_0x28e7fc,_0x590792,_0x54589a[_0x02de('0x23')],_0x54589a[_0x02de('0x38')]||null,NOW,NOW);if(_[_0x02de('0x6c')](_0x3da724[_0x02de('0x21')])){_0x3aa0a5+=_0x02de('0x6d');}_0x535cd7[_0x02de('0x47')](_0x3aa0a5);if(_0x54589a[_0x02de('0x69')]&&_0x54589a[_0x02de('0x69')][_0x02de('0x52')]){_0x535cd7['push'](insertCmContact(_0x54589a[_0x02de('0x23')],_0x28e7fc,_0x54589a[_0x02de('0x69')],_0x3da724));_0x535cd7[_0x02de('0x47')]('DROP\x20TABLE\x20'+_0x28e7fc+';');}_0x535cd7['push'](insertCmHopper(_0x54589a[_0x02de('0x23')],_0x02de('0x6e'),_0x02de('0x6f'),_0x02de('0x70'),_0x77fee9));_0x535cd7[_0x02de('0x47')](insertCmHopperBlack(_0x54589a[_0x02de('0x23')],'voice_queues_has_cm_blacklists',_0x02de('0x6f'),_0x02de('0x70')));_0x535cd7[_0x02de('0x47')](insertCmHopper(_0x54589a[_0x02de('0x23')],_0x02de('0x71'),_0x02de('0x72'),_0x02de('0x73'),_0x77fee9));_0x535cd7[_0x02de('0x47')](insertCmHopperBlack(_0x54589a['ListId'],_0x02de('0x74'),_0x02de('0x72'),_0x02de('0x73')));BPromise[_0x02de('0x75')](_0x535cd7,handleQuery)['then'](function(_0x30d814){stats[_0x02de('0x76')]=!![];stats[_0x02de('0x77')]=_0x54589a[_0x02de('0x69')]&&_0x54589a[_0x02de('0x69')][_0x02de('0x52')]?results[0x2][_0x02de('0x77')]:results[0x0][_0x02de('0x77')];socket[_0x02de('0x63')](_0x02de('0x64')+_0x31fe94,stats);fs[_0x02de('0x78')](_0x2b2d1a);fs[_0x02de('0x78')](_0x90d789);process[_0x02de('0x42')](0x0);})[_0x02de('0x79')](function(_0x97eb2e){logger['error'](_0x97eb2e[_0x02de('0x41')]);process['exit'](0x1);});}catch(_0x1fd00c){logger[_0x02de('0x40')]('complete',_0x1fd00c[_0x02de('0x41')]);process['exit'](0x1);}},'error':function(_0x5b0f84,_0x4ef31f,_0xf24740,_0x2ba63f){throw new Error(_0x2ba63f);}});}function validate(){if(process[_0x02de('0x7a')]&&process[_0x02de('0x7a')]['length']<0x4){throw new Error(_0x02de('0x7b'));}var _0x2afa94=path['join'](config[_0x02de('0x7c')],_0x02de('0x4c'),process[_0x02de('0x7a')][0x2]);if(!fs['existsSync'](_0x2afa94)){throw new Error('file\x20doesn\x27t\x20exists');}var _0x3290bb={};try{_0x3290bb=JSON['parse'](process[_0x02de('0x7a')][0x3]);if(!_0x3290bb[_0x02de('0x4b')]){throw new Error(_0x02de('0x7d'));}if(!_0x3290bb[_0x02de('0x4b')][_0x02de('0x11')]){throw new Error(_0x02de('0x7e'));}if(!_0x3290bb[_0x02de('0x4b')][_0x02de('0x60')]){throw new Error(_0x02de('0x7f'));}var _0x410d89=0x0;if(_0x3290bb[_0x02de('0x4b')][_0x02de('0x27')]){_0x410d89=0x1;}if(!_0x3290bb[_0x02de('0x23')]){throw new Error(_0x02de('0x80'));}}catch(_0x381888){throw new Error(_0x02de('0x81'));}var _0xa1d7d=[];try{_0xa1d7d=_[_0x02de('0x82')](JSON['parse'](process[_0x02de('0x7a')][0x4]),'id');}catch(_0x54761d){logger[_0x02de('0x3e')](_0x02de('0x83'));}main(_0x2afa94,_0x3290bb,_0xa1d7d,_0x410d89);}validate();process['on'](_0x02de('0x84'),handleStop);process['on'](_0x02de('0x85'),handleUncaughtException);
\ No newline at end of file
+var _0xf695=['email','dateOfBirth','YYYY-MM-DD','isValid','dateOfBirth\x20wrong\x20format\x20(YYYY-MM-DD)','firstName','\x20not\x20specified','SystemRow','appendFileSync','contact:import:','abort','SystemError','step','duplicates','cm_contacts_','\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','isNil',',\x20scheduledAt\x20=\x20NOW()','DROP\x20TABLE\x20','voice_queues','VoiceQueueId','voice_queues_has_cm_blacklists','campaigns_has_cm_lists','campaigns','CampaignId','campaigns_has_cm_blacklists','finish','affectedRows','emit','unlink','exit','catch','complete','argv','root','existsSync','file\x20doesn\x27t\x20exists','parse','binding','binding\x20doesn\x27t\x20exists','phone\x20is\x20mandatory','firstName\x20is\x20mandatory','ListId\x20is\x20mandatory','body\x20id\x20mandatory','map','No\x20agent\x20available','SIGINT','uncaughtException','lodash','papaparse','bluebird','moment','squel','../../../config/environment','../../../config/logger','import','redis','defaults','format','YYYY-MM-DD\x20HH:mm:ss','field','phone','from','join','where','\x20=\x20','.dialCheckDuplicateType\x20IN\x20(','cm_contacts.scheduledat','cm_contacts.updatedAt','cm_contacts.priority','cm_contacts.UserId','insert','into','cm_hopper','fromQuery','scheduledat','ContactId','ListId','priority','UserId','select','fields','cm_contacts','cm_contacts.ListId\x20=\x20','.id\x20=\x20','.CmListId\x20=\x20?','cm_contacts.createdAt\x20=\x20?','\x22always\x22','\x22onlyIfOpen\x22','cm_contacts.phone\x20NOT\x20IN\x20(?)','toString','cm_contacts.phone','cm_contacts.id','cm_contacts.ListId','updatedAt','.CmListId','cm_hopper_black','ListId\x20=\x20?','\x20=\x20?','concat','keys','CompanyId','createdAt','id\x20IN\x20?','MIN(id)','min_id','group','info','Received\x20SIGINT','message','errors','push','code','sequelize','query','spread','error','stringify','send','socket_timestamp','server/files/tmp','header','writeFileSync','createReadStream','data','length','rows','hasOwnProperty','trim','scheduledat\x20wrong\x20format\x20(YYYY-MM-DD\x20HH:mm:ss)','isNaN','includes','agent\x20not\x20exists'];(function(_0x186376,_0x5d988a){var _0x2dbdd9=function(_0x96908e){while(--_0x96908e){_0x186376['push'](_0x186376['shift']());}};_0x2dbdd9(++_0x5d988a);}(_0xf695,0xb7));var _0x5f69=function(_0x51afb2,_0x215ccb){_0x51afb2=_0x51afb2-0x0;var _0x4e9ff2=_0xf695[_0x51afb2];return _0x4e9ff2;};'use strict';var fs=require('fs');var path=require('path');var _=require(_0x5f69('0x0'));var Papa=require(_0x5f69('0x1'));var util=require('util');var BPromise=require(_0x5f69('0x2'));var moment=require(_0x5f69('0x3'));var squel=require(_0x5f69('0x4'));var Redis=require('ioredis');var db=require('../../../mysqldb')['db'];var config=require(_0x5f69('0x5'));var logger=require(_0x5f69('0x6'))(_0x5f69('0x7'));config[_0x5f69('0x8')]=_[_0x5f69('0x9')](config[_0x5f69('0x8')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));var stats={'finish':![],'errors':[],'rows':0x0,'affectedRows':0x0};var results=[];var stopped=![];var NOW=moment()[_0x5f69('0xa')](_0x5f69('0xb'));function isEmail(_0x1f028c){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'](_0x1f028c);}function selectNotIn(_0x2946a9,_0x2d1707,_0x459763,_0x17b05b,_0xe9ed53){return squel['select']()[_0x5f69('0xc')](_0x5f69('0xd'))[_0x5f69('0xe')](_0x17b05b)[_0x5f69('0xf')](_0x2d1707,null,_0x2d1707+'.id\x20=\x20'+_0x17b05b+'.'+_0x459763)[_0x5f69('0x10')](_0x17b05b+'.'+_0x459763+_0x5f69('0x11')+_0x2946a9+'.'+_0x459763)[_0x5f69('0x10')](_0x2d1707+_0x5f69('0x12')+_0xe9ed53[_0x5f69('0xf')]()+')');}function insertCmHopper(_0x512962,_0x1a4bed,_0x8668c6,_0x4a8978,_0x19df8d){var _0xd3c0ce=['cm_contacts.phone',_0x5f69('0x13'),'cm_contacts.id','cm_contacts.ListId',_0x1a4bed+'.'+_0x4a8978,'cm_contacts.createdAt',_0x5f69('0x14'),_0x5f69('0x15'),_0x5f69('0x16'),'\x22'+_0x19df8d+'\x22'];return squel[_0x5f69('0x17')]()[_0x5f69('0x18')](_0x5f69('0x19'))[_0x5f69('0x1a')]([_0x5f69('0xd'),_0x5f69('0x1b'),_0x5f69('0x1c'),_0x5f69('0x1d'),_0x4a8978,'createdAt','updatedAt',_0x5f69('0x1e'),_0x5f69('0x1f'),'recallme'],squel[_0x5f69('0x20')]()[_0x5f69('0x21')](_0xd3c0ce)['from'](_0x1a4bed)[_0x5f69('0xf')](_0x5f69('0x22'),null,_0x5f69('0x23')+_0x1a4bed+'.CmListId')[_0x5f69('0xf')](_0x8668c6,null,_0x8668c6+_0x5f69('0x24')+_0x1a4bed+'.'+_0x4a8978)[_0x5f69('0x10')](_0x1a4bed+_0x5f69('0x25'),_0x512962)['where'](_0x5f69('0x26'),NOW)[_0x5f69('0x10')]('cm_contacts.phone\x20NOT\x20IN\x20(?)',selectNotIn(_0x1a4bed,_0x8668c6,_0x4a8978,'cm_hopper',[_0x5f69('0x27'),_0x5f69('0x28')]))['where'](_0x5f69('0x29'),selectNotIn(_0x1a4bed,_0x8668c6,_0x4a8978,_0x5f69('0x19'),[_0x5f69('0x27')])))[_0x5f69('0x2a')]();}function insertCmHopperBlack(_0x26b966,_0x42d84d,_0x5be89d,_0x1b4977){var _0x5a06e8=[_0x5f69('0x2b'),_0x5f69('0x2c'),_0x5f69('0x2d'),_0x42d84d+'.'+_0x1b4977,'cm_contacts.createdAt','cm_contacts.updatedAt'];return squel[_0x5f69('0x17')]()[_0x5f69('0x18')]('cm_hopper_black')[_0x5f69('0x1a')]([_0x5f69('0xd'),'ContactId',_0x5f69('0x1d'),_0x1b4977,'createdAt',_0x5f69('0x2e')],squel['select']()[_0x5f69('0x21')](_0x5a06e8)[_0x5f69('0xe')](_0x42d84d)['join']('cm_contacts',null,_0x5f69('0x23')+_0x42d84d+_0x5f69('0x2f'))[_0x5f69('0xf')](_0x5be89d,null,_0x5be89d+_0x5f69('0x24')+_0x42d84d+'.'+_0x1b4977)[_0x5f69('0x10')](_0x42d84d+_0x5f69('0x25'),_0x26b966)[_0x5f69('0x10')](_0x5f69('0x26'),NOW)[_0x5f69('0x10')]('cm_contacts.phone\x20NOT\x20IN\x20(?)',squel[_0x5f69('0x20')]()[_0x5f69('0xc')](_0x5f69('0xd'))[_0x5f69('0xe')](_0x5f69('0x30'))[_0x5f69('0x10')](_0x5f69('0x31'),_0x26b966)[_0x5f69('0x10')](_0x1b4977+_0x5f69('0x32'),_0x42d84d+'.'+_0x1b4977)))[_0x5f69('0x2a')]();}function insertCmContact(_0x339f6f,_0x2f752c,_0x26a5e2,_0x1ecabe){var _0xba59f6=_[_0x5f69('0x33')](_[_0x5f69('0x34')](_0x1ecabe),[_0x5f69('0x1d'),_0x5f69('0x35'),_0x5f69('0x36'),_0x5f69('0x2e')]);return squel['insert']()[_0x5f69('0x18')]('cm_contacts')[_0x5f69('0x1a')](_0xba59f6,squel[_0x5f69('0x20')]()[_0x5f69('0x21')](_0xba59f6)[_0x5f69('0xe')](_0x2f752c)[_0x5f69('0x10')]('('+_0x26a5e2[_0x5f69('0xf')](',')+')\x20NOT\x20IN\x20?',squel['select']()[_0x5f69('0x21')](_0x26a5e2)[_0x5f69('0xe')](_0x5f69('0x22'))[_0x5f69('0x10')](_0x5f69('0x31'),_0x339f6f)[_0x5f69('0x10')]('deletedAt\x20IS\x20NULL'))[_0x5f69('0x10')](_0x5f69('0x37'),squel[_0x5f69('0x20')]()['field'](_0x5f69('0x38'),_0x5f69('0x39'))[_0x5f69('0xe')](_0x2f752c)[_0x5f69('0x3a')](_0x26a5e2['join'](','))))[_0x5f69('0x2a')]();}function handleStop(){logger[_0x5f69('0x3b')](_0x5f69('0x3c'));stopped=!![];}function handleUncaughtException(_0x149e58){logger['error'](_0x149e58[_0x5f69('0x3d')]);process['exit'](0x1);}function handleError(_0x571c6b,_0x112a00){stats[_0x5f69('0x3e')][_0x5f69('0x3f')]({'name':_0x112a00[_0x5f69('0x40')],'message':_0x112a00[_0x5f69('0x3d')],'row':_0x571c6b});}function handleQuery(_0xe0d111){logger['info'](_0xe0d111);return db[_0x5f69('0x41')][_0x5f69('0x42')](_0xe0d111)[_0x5f69('0x43')](function(_0x50b064){results[_0x5f69('0x3f')](_0x50b064);})['catch'](function(_0x34c652){logger[_0x5f69('0x44')](_0x34c652[_0x5f69('0x3d')]);});}function main(_0x28eeaa,_0x412ee2,_0x19f181,_0x306361){logger[_0x5f69('0x3b')]('main',_0x28eeaa,JSON[_0x5f69('0x45')](_0x412ee2));process[_0x5f69('0x46')]('start');var _0x4c3868=_0x412ee2['binding'];var _0x592bb7=_0x412ee2[_0x5f69('0x47')];var _0x1490b2=path[_0x5f69('0xf')](config['root'],_0x5f69('0x48'),_0x592bb7+'.csv');var _0x2329e6=_[_0x5f69('0x34')](_0x4c3868)[_0x5f69('0xf')]();logger[_0x5f69('0x3b')](_0x5f69('0x49'),_0x2329e6);fs[_0x5f69('0x4a')](_0x1490b2,_0x2329e6+'\x0a');Papa['parse'](fs[_0x5f69('0x4b')](_0x28eeaa),{'header':!![],'skipEmptyLines':!![],'step':function(_0x2918c2,_0x1ca5b4){try{for(var _0xf994e3=0x0,_0x3b6d6f=[];_0xf994e3<_0x2918c2[_0x5f69('0x4c')][_0x5f69('0x4d')];_0xf994e3++){stats[_0x5f69('0x4e')]+=0x1;if(_0x2918c2['errors'][_0xf994e3]){handleError(_0x2918c2[_0x5f69('0x4c')][_0xf994e3],_0x2918c2[_0x5f69('0x3e')][_0xf994e3]);}else{var _0x344017=[];for(var _0x1f4424 in _0x4c3868){if(_0x4c3868[_0x5f69('0x4f')](_0x1f4424)){if(_0x2918c2[_0x5f69('0x4c')][_0xf994e3][_0x4c3868[_0x1f4424]]){var _0x804a58=_[_0x5f69('0x50')](_0x2918c2['data'][_0xf994e3][_0x4c3868[_0x1f4424]]['replace'](/"/g,'\x27'));switch(_0x1f4424){case _0x5f69('0x1b'):var _0x495789=moment(_0x804a58,'YYYY-MM-DD\x20HH:mm:ss',!![]);if(_0x495789['isValid']()){_0x3b6d6f[_0x5f69('0x3f')]('\x22'+_0x804a58+'\x22');}else{_0x344017[_0x5f69('0x3f')](_0x5f69('0x51'));}break;case _0x5f69('0x1e'):var _0x5e2e08=parseInt(_0x804a58);_0x804a58=_[_0x5f69('0x52')](_0x5e2e08)||_0x5e2e08<0x0||_0x5e2e08>0x4?_0x306361?0x3:0x2:_0x5e2e08;_0x3b6d6f[_0x5f69('0x3f')]('\x22'+_0x804a58+'\x22');break;case'UserId':var _0xe9d7a1=parseInt(_0x804a58);if(_['isNumber'](_0xe9d7a1)&&_[_0x5f69('0x53')](_0x19f181,_0xe9d7a1)){_0x3b6d6f[_0x5f69('0x3f')]('\x22'+_0xe9d7a1+'\x22');}else{_0x344017[_0x5f69('0x3f')](_0x5f69('0x54'));}break;case _0x5f69('0x55'):if(isEmail(_0x804a58)){_0x3b6d6f[_0x5f69('0x3f')]('\x22'+_0x804a58+'\x22');}else{_0x344017['push']('email\x20wrong\x20format');}break;case _0x5f69('0x56'):var _0x3ec8c2=moment(_0x804a58,_0x5f69('0x57'),!![]);if(_0x3ec8c2[_0x5f69('0x58')]()){_0x3b6d6f[_0x5f69('0x3f')]('\x22'+_0x804a58+'\x22');}else{_0x344017[_0x5f69('0x3f')](_0x5f69('0x59'));}break;default:_0x3b6d6f['push']('\x22'+_0x804a58+'\x22');}}else{switch(_0x1f4424){case _0x5f69('0x5a'):case'phone':_0x344017['push'](_0x1f4424+_0x5f69('0x5b'));break;default:_0x3b6d6f[_0x5f69('0x3f')]('\x22\x22');}}}}if(_0x344017[_0x5f69('0x4d')]){handleError(_0x2918c2[_0x5f69('0x4c')][_0xf994e3],{'code':_0x5f69('0x5c'),'message':_0x344017['join']()});}else{fs[_0x5f69('0x5d')](_0x1490b2,_0x3b6d6f['join']()+'\x0a');}_0x3b6d6f=[];}if(!(stats[_0x5f69('0x4e')]%0xc8)){socket['emit'](_0x5f69('0x5e')+_0x592bb7,stats);stats[_0x5f69('0x3e')]=[];}}if(stopped){logger[_0x5f69('0x3b')]('Abort\x20parser');_0x1ca5b4[_0x5f69('0x5f')]();}}catch(_0x55bd39){handleError(_0x2918c2[_0x5f69('0x4c')][_0xf994e3],{'code':_0x5f69('0x60'),'message':_0x55bd39[_0x5f69('0x3d')]});logger['error'](_0x5f69('0x61'),_0x55bd39['message']);}},'complete':function(){try{var _0xae88c0=[];var _0x1a2084=_0x5f69('0x22');if(_0x412ee2[_0x5f69('0x62')]&&_0x412ee2[_0x5f69('0x62')]['length']){_0x1a2084=_0x5f69('0x63')+_0x592bb7;_0xae88c0[_0x5f69('0x3f')]('CREATE\x20TABLE\x20'+_0x1a2084+_0x5f69('0x64'));}var _0x551a33=util['format'](_0x5f69('0x65'),_0x1490b2,_0x1a2084,_0x2329e6,_0x412ee2[_0x5f69('0x1d')],_0x412ee2[_0x5f69('0x35')]||null,NOW,NOW);if(_[_0x5f69('0x66')](_0x4c3868['scheduledat'])){_0x551a33+=_0x5f69('0x67');}_0xae88c0[_0x5f69('0x3f')](_0x551a33);if(_0x412ee2[_0x5f69('0x62')]&&_0x412ee2[_0x5f69('0x62')][_0x5f69('0x4d')]){_0xae88c0[_0x5f69('0x3f')](insertCmContact(_0x412ee2[_0x5f69('0x1d')],_0x1a2084,_0x412ee2[_0x5f69('0x62')],_0x4c3868));_0xae88c0['push'](_0x5f69('0x68')+_0x1a2084+';');}_0xae88c0[_0x5f69('0x3f')](insertCmHopper(_0x412ee2[_0x5f69('0x1d')],'voice_queues_has_cm_lists',_0x5f69('0x69'),_0x5f69('0x6a'),_0x306361));_0xae88c0[_0x5f69('0x3f')](insertCmHopperBlack(_0x412ee2[_0x5f69('0x1d')],_0x5f69('0x6b'),'voice_queues',_0x5f69('0x6a')));_0xae88c0[_0x5f69('0x3f')](insertCmHopper(_0x412ee2['ListId'],_0x5f69('0x6c'),_0x5f69('0x6d'),_0x5f69('0x6e'),_0x306361));_0xae88c0[_0x5f69('0x3f')](insertCmHopperBlack(_0x412ee2[_0x5f69('0x1d')],_0x5f69('0x6f'),_0x5f69('0x6d'),'CampaignId'));BPromise['each'](_0xae88c0,handleQuery)['then'](function(_0x3e20b5){stats[_0x5f69('0x70')]=!![];stats[_0x5f69('0x71')]=_0x412ee2['duplicates']&&_0x412ee2[_0x5f69('0x62')]['length']?results[0x2][_0x5f69('0x71')]:results[0x0]['affectedRows'];socket[_0x5f69('0x72')](_0x5f69('0x5e')+_0x592bb7,stats);fs[_0x5f69('0x73')](_0x28eeaa);fs[_0x5f69('0x73')](_0x1490b2);process[_0x5f69('0x74')](0x0);})[_0x5f69('0x75')](function(_0xccd490){logger[_0x5f69('0x44')](_0xccd490['message']);process[_0x5f69('0x74')](0x1);});}catch(_0x294063){logger[_0x5f69('0x44')](_0x5f69('0x76'),_0x294063[_0x5f69('0x3d')]);process[_0x5f69('0x74')](0x1);}},'error':function(_0x606e6c,_0xb16783,_0x2666dd,_0x585820){throw new Error(_0x585820);}});}function validate(){if(process[_0x5f69('0x77')]&&process['argv']['length']<0x4){throw new Error('arguments\x20<filename>\x20<parameters>\x20<agents>');}var _0x50e0a9=path[_0x5f69('0xf')](config[_0x5f69('0x78')],_0x5f69('0x48'),process['argv'][0x2]);if(!fs[_0x5f69('0x79')](_0x50e0a9)){throw new Error(_0x5f69('0x7a'));}var _0x309f24={};try{_0x309f24=JSON[_0x5f69('0x7b')](process['argv'][0x3]);if(!_0x309f24[_0x5f69('0x7c')]){throw new Error(_0x5f69('0x7d'));}if(!_0x309f24[_0x5f69('0x7c')][_0x5f69('0xd')]){throw new Error(_0x5f69('0x7e'));}if(!_0x309f24['binding']['firstName']){throw new Error(_0x5f69('0x7f'));}var _0x4a25cf=0x0;if(_0x309f24[_0x5f69('0x7c')][_0x5f69('0x1f')]){_0x4a25cf=0x1;}if(!_0x309f24[_0x5f69('0x1d')]){throw new Error(_0x5f69('0x80'));}}catch(_0x5a4da0){throw new Error(_0x5f69('0x81'));}var _0x135309=[];try{_0x135309=_[_0x5f69('0x82')](JSON[_0x5f69('0x7b')](process[_0x5f69('0x77')][0x4]),'id');}catch(_0x3ad1a9){logger[_0x5f69('0x3b')](_0x5f69('0x83'));}main(_0x50e0a9,_0x309f24,_0x135309,_0x4a25cf);}validate();process['on'](_0x5f69('0x84'),handleStop);process['on'](_0x5f69('0x85'),handleUncaughtException);
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbdf8=['Called\x20Number','Member\x20Name','membername','Answer\x20Time','answertime','Complete\x20Time','endtime','Billable\x20Time','billableseconds','getSubjects','string','[xCALLY\x20Ticket]','toLowerCase','voice','inbound','variable','queue','outbound','push','Outbound\x20Call','destcalleridnum','getDescriptions','keyValue','Caller\x20Number','calleridnum','calleridname','Queue','UniqueId','uniqueid','Date','agentcalledAt','***\x20Agent\x20Info\x20***','destcalleridname','***\x20Time\x20Info\x20***','Agent\x20Ring','Agent\x20Connect','agentconnectAt','Agent\x20Complete','agentcompleteAt','Hold\x20Time','Talk\x20Time','talktime','***\x20Call\x20Info\x20***'];(function(_0x5edb76,_0x3807e7){var _0x16dd7b=function(_0x5a39ad){while(--_0x5a39ad){_0x5edb76['push'](_0x5edb76['shift']());}};_0x16dd7b(++_0x3807e7);}(_0xbdf8,0x161));var _0x8bdf=function(_0x59b61d,_0x44bf41){_0x59b61d=_0x59b61d-0x0;var _0x1baee8=_0xbdf8[_0x59b61d];return _0x1baee8;};'use strict';exports[_0x8bdf('0x0')]=function(_0xcbf2ae,_0xe6fdac){var _0x454e36=[{'type':_0x8bdf('0x1'),'content':_0x8bdf('0x2'),'variableName':null}];switch(_0xcbf2ae[_0x8bdf('0x3')]()){case _0x8bdf('0x4'):switch(_0xe6fdac[_0x8bdf('0x3')]()){case _0x8bdf('0x5'):_0x454e36['push']({'type':_0x8bdf('0x6'),'content':'','variableName':_0x8bdf('0x7')});_0x454e36['push']({'type':_0x8bdf('0x6'),'content':'','variableName':'calleridnum'});break;case _0x8bdf('0x8'):_0x454e36[_0x8bdf('0x9')]({'type':_0x8bdf('0x1'),'content':_0x8bdf('0xa'),'variableName':null});_0x454e36['push']({'type':_0x8bdf('0x6'),'content':'','variableName':_0x8bdf('0xb')});break;}}return _0x454e36;};exports[_0x8bdf('0xc')]=function(_0x1070bf,_0x2dafd9){var _0x376d22=[];switch(_0x1070bf[_0x8bdf('0x3')]()){case _0x8bdf('0x4'):switch(_0x2dafd9['toLowerCase']()){case _0x8bdf('0x5'):_0x376d22=[{'type':_0x8bdf('0x1'),'content':'***\x20Call\x20Info\x20***','key':null,'keyType':null,'variableName':null},{'type':_0x8bdf('0xd'),'content':'','key':_0x8bdf('0xe'),'keyType':_0x8bdf('0x6'),'variableName':_0x8bdf('0xf')},{'type':_0x8bdf('0xd'),'content':'','key':'Caller\x20Name','keyType':'variable','variableName':_0x8bdf('0x10')},{'type':'keyValue','content':'','key':'Call\x20To','keyType':_0x8bdf('0x6'),'variableName':'destexten'},{'type':'keyValue','content':'','key':_0x8bdf('0x11'),'keyType':'variable','variableName':_0x8bdf('0x7')},{'type':_0x8bdf('0xd'),'content':'','key':_0x8bdf('0x12'),'keyType':_0x8bdf('0x6'),'variableName':_0x8bdf('0x13')},{'type':_0x8bdf('0xd'),'content':'','key':_0x8bdf('0x14'),'keyType':_0x8bdf('0x6'),'variableName':_0x8bdf('0x15')},{'type':_0x8bdf('0x1'),'content':_0x8bdf('0x16'),'key':null,'keyType':null,'variableName':null},{'type':_0x8bdf('0xd'),'content':'','key':'Agent\x20Name','keyType':_0x8bdf('0x6'),'variableName':_0x8bdf('0x17')},{'type':_0x8bdf('0xd'),'content':'','key':'Agent\x20Number','keyType':'variable','variableName':_0x8bdf('0xb')},{'type':_0x8bdf('0x1'),'content':_0x8bdf('0x18'),'key':null,'keyType':null,'variableName':null},{'type':'keyValue','content':'','key':_0x8bdf('0x19'),'keyType':_0x8bdf('0x6'),'variableName':_0x8bdf('0x15')},{'type':'keyValue','content':'','key':_0x8bdf('0x1a'),'keyType':_0x8bdf('0x6'),'variableName':_0x8bdf('0x1b')},{'type':'keyValue','content':'','key':_0x8bdf('0x1c'),'keyType':_0x8bdf('0x6'),'variableName':_0x8bdf('0x1d')},{'type':'keyValue','content':'','key':_0x8bdf('0x1e'),'keyType':_0x8bdf('0x6'),'variableName':'holdtime'},{'type':_0x8bdf('0xd'),'content':'','key':_0x8bdf('0x1f'),'keyType':'variable','variableName':_0x8bdf('0x20')}];break;case _0x8bdf('0x8'):_0x376d22=[{'type':_0x8bdf('0x1'),'content':_0x8bdf('0x21'),'variableName':null},{'type':_0x8bdf('0xd'),'content':'','key':_0x8bdf('0x22'),'keyType':_0x8bdf('0x6'),'keyContent':'','variableName':_0x8bdf('0xb')},{'type':_0x8bdf('0xd'),'content':'','key':_0x8bdf('0x23'),'keyType':'variable','keyContent':'','variableName':_0x8bdf('0x24')},{'type':_0x8bdf('0xd'),'content':'','key':'UniqueId','keyType':_0x8bdf('0x6'),'keyContent':'','variableName':_0x8bdf('0x13')},{'type':_0x8bdf('0xd'),'content':'','key':'Date','keyType':_0x8bdf('0x6'),'keyContent':'','variableName':'starttime'},{'type':'string','content':_0x8bdf('0x18')},{'type':_0x8bdf('0xd'),'content':'','key':_0x8bdf('0x25'),'keyType':_0x8bdf('0x6'),'keyContent':'','variableName':_0x8bdf('0x26')},{'type':_0x8bdf('0xd'),'content':'','key':_0x8bdf('0x27'),'keyType':_0x8bdf('0x6'),'keyContent':'','variableName':_0x8bdf('0x28')},{'type':_0x8bdf('0xd'),'content':'','key':'Duration','keyType':'variable','keyContent':'','variableName':'duration'},{'type':_0x8bdf('0xd'),'content':'','key':_0x8bdf('0x29'),'keyType':'variable','keyContent':'','variableName':_0x8bdf('0x2a')}];break;}}return _0x376d22;};
\ No newline at end of file
+var _0x77ae=['outbound','Outbound\x20Call','getDescriptions','keyValue','Caller\x20Number','Caller\x20Name','calleridname','Call\x20To','Queue','UniqueId','uniqueid','Date','agentcalledAt','***\x20Agent\x20Info\x20***','destcalleridname','Agent\x20Number','destcalleridnum','***\x20Time\x20Info\x20***','Agent\x20Ring','Agent\x20Connect','agentconnectAt','Agent\x20Complete','Hold\x20Time','holdtime','Talk\x20Time','***\x20Call\x20Info\x20***','membername','answertime','Complete\x20Time','endtime','Duration','duration','Billable\x20Time','billableseconds','getSubjects','string','[xCALLY\x20Ticket]','toLowerCase','voice','inbound','push','variable','calleridnum'];(function(_0x4a96ef,_0x5c1383){var _0x330714=function(_0x1bc221){while(--_0x1bc221){_0x4a96ef['push'](_0x4a96ef['shift']());}};_0x330714(++_0x5c1383);}(_0x77ae,0x14f));var _0xe77a=function(_0x5bcc12,_0x45e0ad){_0x5bcc12=_0x5bcc12-0x0;var _0x69c1c7=_0x77ae[_0x5bcc12];return _0x69c1c7;};'use strict';exports[_0xe77a('0x0')]=function(_0x148ced,_0x2dca4b){var _0x542132=[{'type':_0xe77a('0x1'),'content':_0xe77a('0x2'),'variableName':null}];switch(_0x148ced[_0xe77a('0x3')]()){case _0xe77a('0x4'):switch(_0x2dca4b['toLowerCase']()){case _0xe77a('0x5'):_0x542132[_0xe77a('0x6')]({'type':_0xe77a('0x7'),'content':'','variableName':'queue'});_0x542132[_0xe77a('0x6')]({'type':_0xe77a('0x7'),'content':'','variableName':_0xe77a('0x8')});break;case _0xe77a('0x9'):_0x542132[_0xe77a('0x6')]({'type':_0xe77a('0x1'),'content':_0xe77a('0xa'),'variableName':null});_0x542132[_0xe77a('0x6')]({'type':_0xe77a('0x7'),'content':'','variableName':'destcalleridnum'});break;}}return _0x542132;};exports[_0xe77a('0xb')]=function(_0x7b8d8b,_0x36f82d){var _0x1af14e=[];switch(_0x7b8d8b[_0xe77a('0x3')]()){case _0xe77a('0x4'):switch(_0x36f82d[_0xe77a('0x3')]()){case'inbound':_0x1af14e=[{'type':_0xe77a('0x1'),'content':'***\x20Call\x20Info\x20***','key':null,'keyType':null,'variableName':null},{'type':_0xe77a('0xc'),'content':'','key':_0xe77a('0xd'),'keyType':_0xe77a('0x7'),'variableName':_0xe77a('0x8')},{'type':'keyValue','content':'','key':_0xe77a('0xe'),'keyType':_0xe77a('0x7'),'variableName':_0xe77a('0xf')},{'type':_0xe77a('0xc'),'content':'','key':_0xe77a('0x10'),'keyType':_0xe77a('0x7'),'variableName':'destexten'},{'type':'keyValue','content':'','key':_0xe77a('0x11'),'keyType':_0xe77a('0x7'),'variableName':'queue'},{'type':'keyValue','content':'','key':_0xe77a('0x12'),'keyType':_0xe77a('0x7'),'variableName':_0xe77a('0x13')},{'type':_0xe77a('0xc'),'content':'','key':_0xe77a('0x14'),'keyType':_0xe77a('0x7'),'variableName':_0xe77a('0x15')},{'type':_0xe77a('0x1'),'content':_0xe77a('0x16'),'key':null,'keyType':null,'variableName':null},{'type':_0xe77a('0xc'),'content':'','key':'Agent\x20Name','keyType':_0xe77a('0x7'),'variableName':_0xe77a('0x17')},{'type':'keyValue','content':'','key':_0xe77a('0x18'),'keyType':_0xe77a('0x7'),'variableName':_0xe77a('0x19')},{'type':_0xe77a('0x1'),'content':_0xe77a('0x1a'),'key':null,'keyType':null,'variableName':null},{'type':_0xe77a('0xc'),'content':'','key':_0xe77a('0x1b'),'keyType':'variable','variableName':_0xe77a('0x15')},{'type':_0xe77a('0xc'),'content':'','key':_0xe77a('0x1c'),'keyType':_0xe77a('0x7'),'variableName':_0xe77a('0x1d')},{'type':'keyValue','content':'','key':_0xe77a('0x1e'),'keyType':_0xe77a('0x7'),'variableName':'agentcompleteAt'},{'type':_0xe77a('0xc'),'content':'','key':_0xe77a('0x1f'),'keyType':_0xe77a('0x7'),'variableName':_0xe77a('0x20')},{'type':_0xe77a('0xc'),'content':'','key':_0xe77a('0x21'),'keyType':_0xe77a('0x7'),'variableName':'talktime'}];break;case _0xe77a('0x9'):_0x1af14e=[{'type':_0xe77a('0x1'),'content':_0xe77a('0x22'),'variableName':null},{'type':'keyValue','content':'','key':'Called\x20Number','keyType':_0xe77a('0x7'),'keyContent':'','variableName':'destcalleridnum'},{'type':'keyValue','content':'','key':'Member\x20Name','keyType':_0xe77a('0x7'),'keyContent':'','variableName':_0xe77a('0x23')},{'type':'keyValue','content':'','key':_0xe77a('0x12'),'keyType':_0xe77a('0x7'),'keyContent':'','variableName':_0xe77a('0x13')},{'type':_0xe77a('0xc'),'content':'','key':_0xe77a('0x14'),'keyType':_0xe77a('0x7'),'keyContent':'','variableName':'starttime'},{'type':_0xe77a('0x1'),'content':_0xe77a('0x1a')},{'type':_0xe77a('0xc'),'content':'','key':'Answer\x20Time','keyType':'variable','keyContent':'','variableName':_0xe77a('0x24')},{'type':'keyValue','content':'','key':_0xe77a('0x25'),'keyType':'variable','keyContent':'','variableName':_0xe77a('0x26')},{'type':'keyValue','content':'','key':_0xe77a('0x27'),'keyType':'variable','keyContent':'','variableName':_0xe77a('0x28')},{'type':_0xe77a('0xc'),'content':'','key':_0xe77a('0x29'),'keyType':_0xe77a('0x7'),'keyContent':'','variableName':_0xe77a('0x2a')}];break;}}return _0x1af14e;};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf11a=['openchannel-interactions','mail-interactions','fax-interactions','sms-interactions','whatsapp-interactions','upperFirst','InteractionId','unknown','toLowerCase','[%s]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','toUpperCase','role','null','findOne','then','info','catch','error','tracked','user','query','clone','body','phone','fax','mobile','lodash','../../mysqldb','../../config/logger'];(function(_0x2874f1,_0xd696db){var _0x7515de=function(_0x9b2f2c){while(--_0x9b2f2c){_0x2874f1['push'](_0x2874f1['shift']());}};_0x7515de(++_0xd696db);}(_0xf11a,0x71));var _0xaf11=function(_0x5ddb1c,_0x5ea4df){_0x5ddb1c=_0x5ddb1c-0x0;var _0x354adc=_0xf11a[_0x5ddb1c];return _0x354adc;};'use strict';var _=require(_0xaf11('0x0'));var db=require(_0xaf11('0x1'))['db'];var loggers={'openchannel':require(_0xaf11('0x2'))(_0xaf11('0x3')),'mail':require(_0xaf11('0x2'))(_0xaf11('0x4')),'fax':require(_0xaf11('0x2'))(_0xaf11('0x5')),'sms':require(_0xaf11('0x2'))(_0xaf11('0x6')),'chat':require(_0xaf11('0x2'))('chat-interactions'),'whatsapp':require(_0xaf11('0x2'))(_0xaf11('0x7'))};function getInteractionId(_0x1d0945,_0x150144,_0x4ef93a){if(_0x1d0945&&_0x1d0945[_[_0xaf11('0x8')](_0x4ef93a)+_0xaf11('0x9')]){return _0x1d0945[_[_0xaf11('0x8')](_0x4ef93a)+'InteractionId'];}else if(_0x1d0945&&_0x1d0945['id']){return _0x1d0945['id'];}else if(_0x150144&&_0x150144['id']){return _0x150144['id'];}else{return _0xaf11('0xa');}}function log(_0x1c1ea4,_0x3bb616,_0x5957ca,_0x8a6615,_0x1e2795,_0x531ac3){loggers[_0x1e2795[_0xaf11('0xb')]()][_0x1c1ea4](_0xaf11('0xc'),_0x531ac3[_0xaf11('0xd')](),_0x3bb616?_0x3bb616['id']:null,_0x3bb616?_0x3bb616['name']:null,_0x3bb616?_0x3bb616[_0xaf11('0xe')]:null,getInteractionId(_0x5957ca,_0x8a6615,_0x1e2795),_0x5957ca?JSON['stringify'](_0x5957ca):_0xaf11('0xf'));}function updateUser(_0xd63713,_0x23cf93,_0x4bb37d,_0x4968e9,_0x39ed52){db[_[_0xaf11('0x8')](_0x4968e9)+'Interaction'][_0xaf11('0x10')]({'where':{'id':getInteractionId(_0x23cf93,_0x4bb37d,_0x4968e9)}})[_0xaf11('0x11')](function(_0x4d8fea){if(_0x4d8fea){return _0x4d8fea['update']({'UserId':_0xd63713?_0xd63713['id']:null});}})['then'](function(_0x475616){if(_0x475616){log(_0xaf11('0x12'),_0xd63713,_0x23cf93,_0x4bb37d,_0x4968e9,_0x39ed52);}})[_0xaf11('0x13')](function(){log(_0xaf11('0x14'),_0xd63713,_0x23cf93,_0x4bb37d,_0x4968e9,_0x39ed52);});}exports[_0xaf11('0x15')]=function(_0x59cef2,_0x959909){return function(_0x5a9dec,_0x2ebc7d,_0x2dc179){var _0x34d5bb=_0x5a9dec[_0xaf11('0x16')];var _0x46785e={};var _0x1dc914=_0x5a9dec[_0xaf11('0x17')];if(_0x46785e){_0x46785e=_[_0xaf11('0x18')](_0x5a9dec[_0xaf11('0x19')]);_0x46785e=_['omit'](_0x46785e,[_0xaf11('0x19'),'html',_0xaf11('0x1a'),_0xaf11('0x1b'),_0xaf11('0x1c')]);}updateUser(_0x34d5bb,_0x46785e,_0x1dc914,_0x59cef2,_0x959909);_0x2dc179(null);};};
\ No newline at end of file
+var _0x7257=['[%s]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','name','role','stringify','null','Interaction','then','update','info','catch','error','tracked','user','query','clone','phone','fax','mobile','../../config/logger','openchannel-interactions','fax-interactions','sms-interactions','upperFirst','InteractionId','unknown','toLowerCase'];(function(_0x2f3d29,_0x150e7b){var _0x53d69d=function(_0x45f6ec){while(--_0x45f6ec){_0x2f3d29['push'](_0x2f3d29['shift']());}};_0x53d69d(++_0x150e7b);}(_0x7257,0x1cc));var _0x7725=function(_0x725a4c,_0x102507){_0x725a4c=_0x725a4c-0x0;var _0x37b2cc=_0x7257[_0x725a4c];return _0x37b2cc;};'use strict';var _=require('lodash');var db=require('../../mysqldb')['db'];var loggers={'openchannel':require(_0x7725('0x0'))(_0x7725('0x1')),'mail':require(_0x7725('0x0'))('mail-interactions'),'fax':require(_0x7725('0x0'))(_0x7725('0x2')),'sms':require('../../config/logger')(_0x7725('0x3')),'chat':require(_0x7725('0x0'))('chat-interactions'),'whatsapp':require(_0x7725('0x0'))('whatsapp-interactions')};function getInteractionId(_0x4e7ad7,_0x58be83,_0x52d6f7){if(_0x4e7ad7&&_0x4e7ad7[_[_0x7725('0x4')](_0x52d6f7)+_0x7725('0x5')]){return _0x4e7ad7[_[_0x7725('0x4')](_0x52d6f7)+_0x7725('0x5')];}else if(_0x4e7ad7&&_0x4e7ad7['id']){return _0x4e7ad7['id'];}else if(_0x58be83&&_0x58be83['id']){return _0x58be83['id'];}else{return _0x7725('0x6');}}function log(_0x392a09,_0x44b2fd,_0x259d8b,_0x51f42b,_0x1dfcf8,_0x4c3d9c){loggers[_0x1dfcf8[_0x7725('0x7')]()][_0x392a09](_0x7725('0x8'),_0x4c3d9c['toUpperCase'](),_0x44b2fd?_0x44b2fd['id']:null,_0x44b2fd?_0x44b2fd[_0x7725('0x9')]:null,_0x44b2fd?_0x44b2fd[_0x7725('0xa')]:null,getInteractionId(_0x259d8b,_0x51f42b,_0x1dfcf8),_0x259d8b?JSON[_0x7725('0xb')](_0x259d8b):_0x7725('0xc'));}function updateUser(_0x34f9fa,_0x87488b,_0xe6ddfc,_0x36b084,_0x5b15c4){db[_[_0x7725('0x4')](_0x36b084)+_0x7725('0xd')]['findOne']({'where':{'id':getInteractionId(_0x87488b,_0xe6ddfc,_0x36b084)}})[_0x7725('0xe')](function(_0xb98b63){if(_0xb98b63){return _0xb98b63[_0x7725('0xf')]({'UserId':_0x34f9fa?_0x34f9fa['id']:null});}})[_0x7725('0xe')](function(_0x2bbae0){if(_0x2bbae0){log(_0x7725('0x10'),_0x34f9fa,_0x87488b,_0xe6ddfc,_0x36b084,_0x5b15c4);}})[_0x7725('0x11')](function(){log(_0x7725('0x12'),_0x34f9fa,_0x87488b,_0xe6ddfc,_0x36b084,_0x5b15c4);});}exports[_0x7725('0x13')]=function(_0x2bc0f9,_0x2a6fe3){return function(_0x18daf9,_0x2c316a,_0x4ecf81){var _0x46ea52=_0x18daf9[_0x7725('0x14')];var _0x52ee38={};var _0x2e50f1=_0x18daf9[_0x7725('0x15')];if(_0x52ee38){_0x52ee38=_[_0x7725('0x16')](_0x18daf9['body']);_0x52ee38=_['omit'](_0x52ee38,['body','html',_0x7725('0x17'),_0x7725('0x18'),_0x7725('0x19')]);}updateUser(_0x46ea52,_0x52ee38,_0x2e50f1,_0x2bc0f9,_0x2a6fe3);_0x4ecf81(null);};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9d49=['update','utf8','final','parse','findOne','then','count','status','json','Maximum\x20%s\x20limit\x20have\x20been\x20reached','catch','users','admin','user','isUserLimit','crypto','util','composable-middleware','../../mysqldb','license','data1','createDecipher','aes-256-ctr','format','%s:%s:%s'];(function(_0x27e6ad,_0x53e57c){var _0x2224f8=function(_0x416b4d){while(--_0x416b4d){_0x27e6ad['push'](_0x27e6ad['shift']());}};_0x2224f8(++_0x53e57c);}(_0x9d49,0x186));var _0x99d4=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x9d49[_0x321bb2];return _0x9c12ed;};'use strict';var crypto=require(_0x99d4('0x0'));var util=require(_0x99d4('0x1'));var compose=require(_0x99d4('0x2'));var db=require(_0x99d4('0x3'))['db'];var config=require('../../config/environment');function getValueFromLicense(_0x1a0aad,_0x24bf1c){if(_0x1a0aad&&_0x24bf1c){if(_0x24bf1c['data1']&&_0x24bf1c[_0x99d4('0x4')]){var _0x3d535e=_0x24bf1c[_0x99d4('0x5')];var _0x5dfa2e=_0x24bf1c[_0x99d4('0x4')];var _0x457eaa=_0x3d535e['split']('-')[0x4];var _0x4379c5=_0x3d535e['split']('-')[0x0];var _0xd86d13=crypto[_0x99d4('0x6')](_0x99d4('0x7'),util[_0x99d4('0x8')](_0x99d4('0x9'),_0x457eaa,_0x3d535e,_0x4379c5));var _0x236b65=_0xd86d13[_0x99d4('0xa')](_0x5dfa2e,'base64',_0x99d4('0xb'));_0x236b65+=_0xd86d13[_0x99d4('0xc')]('utf8');var _0x2d6723=JSON[_0x99d4('0xd')](_0x236b65);return _0x2d6723['hasOwnProperty'](_0x1a0aad)?_0x2d6723[_0x1a0aad]:null;}}return null;}function isLimit(_0x26dfc1,_0xb94d25,_0x89eea8,_0x4f344e){var _0x385381=_0xb94d25;return compose()['use'](function(_0x525b79,_0x2e8318,_0xe50b3f){return db['License'][_0x99d4('0xe')]({'where':{'id':0x1},'raw':!![]})[_0x99d4('0xf')](function(_0x47c54c){var _0x55a4ce=getValueFromLicense(_0x26dfc1,_0x47c54c);return _0x55a4ce?_0x55a4ce:_0x385381;})[_0x99d4('0xf')](function(_0x18b72b){_0x385381=_0x18b72b;return _0x89eea8[_0x99d4('0x10')](_0x4f344e);})[_0x99d4('0xf')](function(_0x29039a){if(_0x29039a>=_0x385381){return _0x2e8318[_0x99d4('0x11')](0x193)[_0x99d4('0x12')]({'message':util[_0x99d4('0x8')](_0x99d4('0x13'),_0x26dfc1)});}_0xe50b3f();})[_0x99d4('0x14')](function(_0x37c4d4){_0xe50b3f(_0x37c4d4);});});}function isUserLimit(){return isLimit(_0x99d4('0x15'),0x1,db['User'],{'where':{'$or':[{'role':_0x99d4('0x16')},{'role':_0x99d4('0x17')}]}});}exports[_0x99d4('0x18')]=isUserLimit;
\ No newline at end of file
+var _0x2497=['utf8','final','parse','use','License','findOne','then','count','json','Maximum\x20%s\x20limit\x20have\x20been\x20reached','catch','users','admin','user','isUserLimit','crypto','../../mysqldb','data1','license','split','createDecipher','format','%s:%s:%s','update'];(function(_0x490d4c,_0x50eb76){var _0x540b78=function(_0x4146d5){while(--_0x4146d5){_0x490d4c['push'](_0x490d4c['shift']());}};_0x540b78(++_0x50eb76);}(_0x2497,0x12f));var _0x7249=function(_0x23f0e1,_0x11d94b){_0x23f0e1=_0x23f0e1-0x0;var _0x257f0d=_0x2497[_0x23f0e1];return _0x257f0d;};'use strict';var crypto=require(_0x7249('0x0'));var util=require('util');var compose=require('composable-middleware');var db=require(_0x7249('0x1'))['db'];var config=require('../../config/environment');function getValueFromLicense(_0x5aebaa,_0x1609a2){if(_0x5aebaa&&_0x1609a2){if(_0x1609a2[_0x7249('0x2')]&&_0x1609a2['license']){var _0x3368b5=_0x1609a2[_0x7249('0x2')];var _0x170d3c=_0x1609a2[_0x7249('0x3')];var _0x21fb77=_0x3368b5[_0x7249('0x4')]('-')[0x4];var _0x244733=_0x3368b5[_0x7249('0x4')]('-')[0x0];var _0x314aec=crypto[_0x7249('0x5')]('aes-256-ctr',util[_0x7249('0x6')](_0x7249('0x7'),_0x21fb77,_0x3368b5,_0x244733));var _0x47941d=_0x314aec[_0x7249('0x8')](_0x170d3c,'base64',_0x7249('0x9'));_0x47941d+=_0x314aec[_0x7249('0xa')]('utf8');var _0x3ec801=JSON[_0x7249('0xb')](_0x47941d);return _0x3ec801['hasOwnProperty'](_0x5aebaa)?_0x3ec801[_0x5aebaa]:null;}}return null;}function isLimit(_0x3d4f48,_0x46d042,_0x390880,_0x5a0394){var _0x24d0e4=_0x46d042;return compose()[_0x7249('0xc')](function(_0x51fb09,_0x18fd9a,_0x42aa88){return db[_0x7249('0xd')][_0x7249('0xe')]({'where':{'id':0x1},'raw':!![]})[_0x7249('0xf')](function(_0x460a14){var _0x3114d7=getValueFromLicense(_0x3d4f48,_0x460a14);return _0x3114d7?_0x3114d7:_0x24d0e4;})[_0x7249('0xf')](function(_0x34adef){_0x24d0e4=_0x34adef;return _0x390880[_0x7249('0x10')](_0x5a0394);})['then'](function(_0x279c76){if(_0x279c76>=_0x24d0e4){return _0x18fd9a['status'](0x193)[_0x7249('0x11')]({'message':util[_0x7249('0x6')](_0x7249('0x12'),_0x3d4f48)});}_0x42aa88();})[_0x7249('0x13')](function(_0x1f6533){_0x42aa88(_0x1f6533);});});}function isUserLimit(){return isLimit(_0x7249('0x14'),0x1,db['User'],{'where':{'$or':[{'role':_0x7249('0x15')},{'role':_0x7249('0x16')}]}});}exports[_0x7249('0x17')]=isUserLimit;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc966=['<=\x20?','>=\x20?','BETWEEN\x20?\x20AND\x20?','start','format','utcOffset','hours','lodash','moment','parseSearch','sqlOperator','startsWith','[$or]','replace','[$and]','split','length','forEach','shift','match','filter','indexOf','map','conditions','push','DATE','operator','$between','value','$gt','add','days','castTo','text','CAST(','field','includes','$ne','$notIn','\x20OR\x20','\x20IS\x20NULL)','$in','NOT\x20IN\x20?','$eq','=\x20?','<>\x20?','$substring','$startsWith','$endsWith','LIKE\x20?','<\x20?','>\x20?','$lte'];(function(_0x47773f,_0x2fec58){var _0x4ff999=function(_0x4d3132){while(--_0x4d3132){_0x47773f['push'](_0x47773f['shift']());}};_0x4ff999(++_0x2fec58);}(_0xc966,0x145));var _0x6c96=function(_0x36db58,_0x120dd9){_0x36db58=_0x36db58-0x0;var _0x3a90c0=_0xc966[_0x36db58];return _0x3a90c0;};'use strict';var _=require(_0x6c96('0x0'));var moment=require(_0x6c96('0x1'));exports[_0x6c96('0x2')]=function(_0x1553d2){var _0x2f500b={'conditions':[]};_0x2f500b[_0x6c96('0x3')]=_[_0x6c96('0x4')](_0x1553d2,_0x6c96('0x5'))?'or':'and';var _0x3af0e3=_0x1553d2[_0x6c96('0x6')](_0x6c96('0x7'),'')[_0x6c96('0x6')](_0x6c96('0x5'),'')[_0x6c96('0x8')]('||');for(var _0x37a5e8=0x0;_0x37a5e8<_0x3af0e3[_0x6c96('0x9')];_0x37a5e8++){var _0x20cfba=_0x3af0e3[_0x37a5e8][_0x6c96('0x8')](':=');var _0x5b9c84=_0x20cfba[0x0];var _0x5ea6d9=_0x20cfba['slice'](0x1);_0x5ea6d9[_0x6c96('0xa')](function(_0x37a82b){var _0x5a05a1=_0x37a82b[_0x6c96('0x8')]('[')[_0x6c96('0xb')]();var _0x254079=_0x37a82b[_0x6c96('0xc')](/\[(.*?)\]/g);_0x254079['forEach'](function(_0x2f6caf){var _0x2fa104=_0x2f6caf[_0x6c96('0x8')]('[')[_0x6c96('0xd')](function(_0xc2ea3){return _0xc2ea3[_0x6c96('0xe')](']')>-0x1;})[_0x6c96('0xf')](function(_0x1375d6){return _0x1375d6[_0x6c96('0x8')](']')[0x0];})[0x0];_0x2f500b[_0x6c96('0x10')][_0x6c96('0x11')]({'field':_0x5b9c84,'operator':_0x5a05a1,'value':_0x2fa104});});});}return _0x2f500b;};exports['buildExpression']=function(_0x12750e,_0x30e409,_0x11e0d8){var _0x2658d7={};if(_0x30e409===_0x6c96('0x12')){if(_0x11e0d8['operator']==='$eq'){_0x11e0d8[_0x6c96('0x13')]=_0x6c96('0x14');_0x11e0d8[_0x6c96('0x15')]+=','+_0x11e0d8[_0x6c96('0x15')];}else if(_['includes']([_0x6c96('0x16'),'$lte'],_0x11e0d8[_0x6c96('0x13')])){_0x11e0d8[_0x6c96('0x15')]=moment(_0x11e0d8[_0x6c96('0x15')])[_0x6c96('0x17')](0x1,_0x6c96('0x18'))['format']('YYYY-MM-DD');}}if(_0x11e0d8[_0x6c96('0x19')]){_0x30e409=_0x11e0d8['castTo'];_0x2658d7[_0x6c96('0x1a')]=_0x6c96('0x1b')+_0x12750e+'.'+_0x11e0d8[_0x6c96('0x1c')]+'\x20AS\x20'+_0x11e0d8[_0x6c96('0x19')]+')\x20'+parseOperator(_0x11e0d8[_0x6c96('0x13')]);}else{_0x2658d7[_0x6c96('0x1a')]=_0x12750e+'.'+_0x11e0d8['field']+'\x20'+parseOperator(_0x11e0d8[_0x6c96('0x13')]);}if(_[_0x6c96('0x1d')]([_0x6c96('0x1e'),_0x6c96('0x1f')],_0x11e0d8['operator']))_0x2658d7[_0x6c96('0x1a')]='('+_0x2658d7[_0x6c96('0x1a')]+_0x6c96('0x20')+_0x12750e+'.'+_0x11e0d8['field']+_0x6c96('0x21');_0x2658d7[_0x6c96('0x15')]=parseValue(_0x30e409,_0x11e0d8['operator'],_0x11e0d8[_0x6c96('0x15')]);return _0x2658d7;};function parseOperator(_0x4bc088){var _0x2fd22c;switch(_0x4bc088){case _0x6c96('0x22'):_0x2fd22c='IN\x20?';break;case _0x6c96('0x1f'):_0x2fd22c=_0x6c96('0x23');break;case _0x6c96('0x24'):_0x2fd22c=_0x6c96('0x25');break;case'$ne':_0x2fd22c=_0x6c96('0x26');break;case _0x6c96('0x27'):case _0x6c96('0x28'):case _0x6c96('0x29'):_0x2fd22c=_0x6c96('0x2a');break;case'$lt':_0x2fd22c=_0x6c96('0x2b');break;case _0x6c96('0x16'):_0x2fd22c=_0x6c96('0x2c');break;case _0x6c96('0x2d'):_0x2fd22c=_0x6c96('0x2e');break;case'$gte':_0x2fd22c=_0x6c96('0x2f');break;case _0x6c96('0x14'):_0x2fd22c=_0x6c96('0x30');break;}return _0x2fd22c;}function parseValue(_0x381ad7,_0x2235a0,_0x178bac){var _0x165472={'start':undefined,'end':undefined};switch(_0x2235a0){case _0x6c96('0x22'):case _0x6c96('0x1f'):_0x165472['start']=_0x178bac[_0x6c96('0x8')](',');break;case _0x6c96('0x27'):_0x165472[_0x6c96('0x31')]='%'+_0x178bac+'%';break;case _0x6c96('0x28'):_0x165472['start']=_0x178bac+'%';break;case _0x6c96('0x29'):_0x165472[_0x6c96('0x31')]='%'+_0x178bac;break;case _0x6c96('0x14'):var _0x32fd75=_0x178bac['split'](',');var _0x178bac=_0x32fd75[_0x6c96('0xb')]();var _0x4ba044=_0x32fd75['pop']();if(_0x381ad7===_0x6c96('0x12')){_0x178bac=moment(_0x178bac)['utcOffset'](0x0,!![])[_0x6c96('0x32')]();_0x4ba044=moment(_0x4ba044)[_0x6c96('0x33')](0x0,!![])['add'](0x17,_0x6c96('0x34'))[_0x6c96('0x17')](0x3b,'minutes')[_0x6c96('0x17')](0x3b,'seconds')[_0x6c96('0x32')]();}_0x165472={'start':_0x178bac,'end':_0x4ba044};break;default:_0x165472[_0x6c96('0x31')]=_0x178bac;break;}return _0x165472;}
\ No newline at end of file
+var _0xce05=['seconds','lodash','moment','sqlOperator','and','replace','[$and]','[$or]','split','match','forEach','filter','indexOf','map','conditions','push','buildExpression','operator','$eq','value','includes','$gt','$lte','add','YYYY-MM-DD','castTo','text','CAST(','field','\x20AS\x20','$ne','$notIn','\x20OR\x20','\x20IS\x20NULL)','IN\x20?','NOT\x20IN\x20?','$substring','$startsWith','$endsWith','LIKE\x20?','$lt','<\x20?','>\x20?','<=\x20?','$gte','>=\x20?','$between','BETWEEN\x20?\x20AND\x20?','start','shift','pop','DATE','format','utcOffset','hours','minutes'];(function(_0x2a87ba,_0x18ab57){var _0x27eade=function(_0x48e2cc){while(--_0x48e2cc){_0x2a87ba['push'](_0x2a87ba['shift']());}};_0x27eade(++_0x18ab57);}(_0xce05,0x1c1));var _0x5ce0=function(_0x3b1794,_0x4c9e3f){_0x3b1794=_0x3b1794-0x0;var _0x37d4fa=_0xce05[_0x3b1794];return _0x37d4fa;};'use strict';var _=require(_0x5ce0('0x0'));var moment=require(_0x5ce0('0x1'));exports['parseSearch']=function(_0x8835f6){var _0xaf8c27={'conditions':[]};_0xaf8c27[_0x5ce0('0x2')]=_['startsWith'](_0x8835f6,'[$or]')?'or':_0x5ce0('0x3');var _0x4d9898=_0x8835f6[_0x5ce0('0x4')](_0x5ce0('0x5'),'')[_0x5ce0('0x4')](_0x5ce0('0x6'),'')[_0x5ce0('0x7')]('||');for(var _0x1f9ba6=0x0;_0x1f9ba6<_0x4d9898['length'];_0x1f9ba6++){var _0x5a5704=_0x4d9898[_0x1f9ba6][_0x5ce0('0x7')](':=');var _0xafe6e1=_0x5a5704[0x0];var _0x3183b2=_0x5a5704['slice'](0x1);_0x3183b2['forEach'](function(_0x45c913){var _0x579daf=_0x45c913['split']('[')['shift']();var _0x2a9474=_0x45c913[_0x5ce0('0x8')](/\[(.*?)\]/g);_0x2a9474[_0x5ce0('0x9')](function(_0x2feca5){var _0x3ff809=_0x2feca5[_0x5ce0('0x7')]('[')[_0x5ce0('0xa')](function(_0x5a021c){return _0x5a021c[_0x5ce0('0xb')](']')>-0x1;})[_0x5ce0('0xc')](function(_0x4a408d){return _0x4a408d[_0x5ce0('0x7')](']')[0x0];})[0x0];_0xaf8c27[_0x5ce0('0xd')][_0x5ce0('0xe')]({'field':_0xafe6e1,'operator':_0x579daf,'value':_0x3ff809});});});}return _0xaf8c27;};exports[_0x5ce0('0xf')]=function(_0x4dc16a,_0x4a0b6d,_0x3cca73){var _0xa0a147={};if(_0x4a0b6d==='DATE'){if(_0x3cca73[_0x5ce0('0x10')]===_0x5ce0('0x11')){_0x3cca73[_0x5ce0('0x10')]='$between';_0x3cca73['value']+=','+_0x3cca73[_0x5ce0('0x12')];}else if(_[_0x5ce0('0x13')]([_0x5ce0('0x14'),_0x5ce0('0x15')],_0x3cca73['operator'])){_0x3cca73[_0x5ce0('0x12')]=moment(_0x3cca73[_0x5ce0('0x12')])[_0x5ce0('0x16')](0x1,'days')['format'](_0x5ce0('0x17'));}}if(_0x3cca73['castTo']){_0x4a0b6d=_0x3cca73[_0x5ce0('0x18')];_0xa0a147[_0x5ce0('0x19')]=_0x5ce0('0x1a')+_0x4dc16a+'.'+_0x3cca73[_0x5ce0('0x1b')]+_0x5ce0('0x1c')+_0x3cca73['castTo']+')\x20'+parseOperator(_0x3cca73['operator']);}else{_0xa0a147[_0x5ce0('0x19')]=_0x4dc16a+'.'+_0x3cca73['field']+'\x20'+parseOperator(_0x3cca73[_0x5ce0('0x10')]);}if(_[_0x5ce0('0x13')]([_0x5ce0('0x1d'),_0x5ce0('0x1e')],_0x3cca73[_0x5ce0('0x10')]))_0xa0a147[_0x5ce0('0x19')]='('+_0xa0a147[_0x5ce0('0x19')]+_0x5ce0('0x1f')+_0x4dc16a+'.'+_0x3cca73['field']+_0x5ce0('0x20');_0xa0a147[_0x5ce0('0x12')]=parseValue(_0x4a0b6d,_0x3cca73[_0x5ce0('0x10')],_0x3cca73['value']);return _0xa0a147;};function parseOperator(_0x30203c){var _0x1ba753;switch(_0x30203c){case'$in':_0x1ba753=_0x5ce0('0x21');break;case _0x5ce0('0x1e'):_0x1ba753=_0x5ce0('0x22');break;case _0x5ce0('0x11'):_0x1ba753='=\x20?';break;case _0x5ce0('0x1d'):_0x1ba753='<>\x20?';break;case _0x5ce0('0x23'):case _0x5ce0('0x24'):case _0x5ce0('0x25'):_0x1ba753=_0x5ce0('0x26');break;case _0x5ce0('0x27'):_0x1ba753=_0x5ce0('0x28');break;case'$gt':_0x1ba753=_0x5ce0('0x29');break;case _0x5ce0('0x15'):_0x1ba753=_0x5ce0('0x2a');break;case _0x5ce0('0x2b'):_0x1ba753=_0x5ce0('0x2c');break;case _0x5ce0('0x2d'):_0x1ba753=_0x5ce0('0x2e');break;}return _0x1ba753;}function parseValue(_0x11e858,_0x57a5e8,_0x1f6f97){var _0x3267ff={'start':undefined,'end':undefined};switch(_0x57a5e8){case'$in':case'$notIn':_0x3267ff[_0x5ce0('0x2f')]=_0x1f6f97['split'](',');break;case _0x5ce0('0x23'):_0x3267ff[_0x5ce0('0x2f')]='%'+_0x1f6f97+'%';break;case _0x5ce0('0x24'):_0x3267ff[_0x5ce0('0x2f')]=_0x1f6f97+'%';break;case _0x5ce0('0x25'):_0x3267ff[_0x5ce0('0x2f')]='%'+_0x1f6f97;break;case _0x5ce0('0x2d'):var _0x566fe4=_0x1f6f97[_0x5ce0('0x7')](',');var _0x1f6f97=_0x566fe4[_0x5ce0('0x30')]();var _0x3d8c44=_0x566fe4[_0x5ce0('0x31')]();if(_0x11e858===_0x5ce0('0x32')){_0x1f6f97=moment(_0x1f6f97)['utcOffset'](0x0,!![])[_0x5ce0('0x33')]();_0x3d8c44=moment(_0x3d8c44)[_0x5ce0('0x34')](0x0,!![])['add'](0x17,_0x5ce0('0x35'))['add'](0x3b,_0x5ce0('0x36'))[_0x5ce0('0x16')](0x3b,_0x5ce0('0x37'))['format']();}_0x3267ff={'start':_0x1f6f97,'end':_0x3d8c44};break;default:_0x3267ff[_0x5ce0('0x2f')]=_0x1f6f97;break;}return _0x3267ff;}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2812=['parse','filters','isEmpty','forOwn','type','DATE','$gte','format','YYYY-MM-DD','utc','$lte','subtract','isArray','split','limit','offset','sort','indexOf','cast','col','priority','unsigned','DESC','ASC','omit','length','isObject','isString','unset','isNumeric','match','includes','push','join','getOptions','query','model','intersection','attributes','fields','order','where','pick','filter','merge','map','lower','name','options','lodash','keys'];(function(_0x1441ae,_0x281c91){var _0x5f489a=function(_0x49991a){while(--_0x49991a){_0x1441ae['push'](_0x1441ae['shift']());}};_0x5f489a(++_0x281c91);}(_0x2812,0x130));var _0x2281=function(_0x511b76,_0x4727fa){_0x511b76=_0x511b76-0x0;var _0x5424ff=_0x2812[_0x511b76];return _0x5424ff;};'use strict';var _=require(_0x2281('0x0'));var sequelize=require('sequelize');var moment=require('moment');var LIMIT_VALUE=0xfa;function hasSequelizeOperator(_0x517abe){var _0x18f1e7=['ne'];try{var _0xead75e=JSON['parse'](_0x517abe);var _0x46b5cb=Object[_0x2281('0x1')](_0xead75e)[0x0];return _0x18f1e7['includes'](_0x46b5cb);}catch(_0x307230){return![];}}function getOperatorValue(_0x324bac){var _0x1e9ec1=JSON[_0x2281('0x2')](_0x324bac);var _0x4eeca5=Object['keys'](_0x1e9ec1)[0x0];var _0x4b268f=_0x1e9ec1[_0x4eeca5];return{['$'+_0x4eeca5]:_0x4b268f};}exports['fields']=function(_0x2e4400){var _0x51fef0=null;if(_0x2e4400){_0x51fef0=_0x2e4400['split'](',');}return _0x51fef0;};exports[_0x2281('0x3')]=function(_0x4e6726,_0x3e61b0){var _0x27315b={};if(!_[_0x2281('0x4')](_0x4e6726)){_[_0x2281('0x5')](_0x4e6726,function(_0x4905dd,_0x2e1e1b){try{if(_0x3e61b0){var _0x165625=_['find'](_0x3e61b0,{'name':_0x2e1e1b})||{};if(hasSequelizeOperator(_0x4905dd)){_0x27315b[_0x2e1e1b]=getOperatorValue(_0x4905dd);}else if(_0x165625[_0x2281('0x6')]===_0x2281('0x7')&&_['isPlainObject'](_0x4905dd)){var _0x5480fc=JSON['parse'](_0x4905dd);var _0x2a7492={'$gte':moment(moment(_0x5480fc[_0x2281('0x8')])[_0x2281('0x9')](_0x2281('0xa')))[_0x2281('0xb')]()[_0x2281('0x9')](),'$lte':moment(moment(_0x5480fc[_0x2281('0xc')])[_0x2281('0x9')](_0x2281('0xa')))[_0x2281('0xb')]()[_0x2281('0xd')](0x1,'s')[_0x2281('0x9')]()};_0x27315b[_0x2e1e1b]=_0x2a7492;}else if(_0x165625['name']==='uniqueid'){_0x27315b[_0x2e1e1b]=_0x4905dd;}else{_0x27315b[_0x2e1e1b]=_[_0x2281('0xe')](_0x4905dd)?_0x4905dd:JSON[_0x2281('0x2')](_0x4905dd);}}else{_0x27315b[_0x2e1e1b]=_['isArray'](_0x4905dd)?_0x4905dd:JSON[_0x2281('0x2')](_0x4905dd);}}catch(_0x19f095){_0x27315b[_0x2e1e1b]=_0x4905dd[_0x2281('0xf')](',');}});}return _0x27315b;};exports[_0x2281('0x10')]=function(_0x4df1ed){_0x4df1ed=parseInt(_0x4df1ed,0xa);if(!_0x4df1ed||_0x4df1ed<0x0){_0x4df1ed=LIMIT_VALUE;}return _0x4df1ed;};exports[_0x2281('0x11')]=function(_0x994e50){_0x994e50=parseInt(_0x994e50,0xa);if(!_0x994e50||_0x994e50<0x0){_0x994e50=0x0;}return _0x994e50;};exports[_0x2281('0x12')]=function(_0x4e1866){var _0x545101,_0x31f137=null;if(_0x4e1866){_0x545101=_0x4e1866[_0x2281('0xf')](',');_0x31f137=_['map'](_0x545101,function(_0x30b09f){if(_0x30b09f[_0x2281('0x13')]('-')===0x0){return[_0x30b09f==='priority'?sequelize[_0x2281('0x14')](sequelize[_0x2281('0x15')](_0x2281('0x16')),_0x2281('0x17')):_0x30b09f['substr'](0x1),_0x2281('0x18')];}else{return[_0x30b09f===_0x2281('0x16')?sequelize[_0x2281('0x14')](sequelize[_0x2281('0x15')](_0x2281('0x16')),_0x2281('0x17')):_0x30b09f,_0x2281('0x19')];}});}return _0x31f137;};exports[_0x2281('0x1a')]=function(_0x4f18eb,_0x2b9ecd){if(_[_0x2281('0x4')](_0x4f18eb)){return _0x4f18eb;}if(_['isArray'](_0x4f18eb)){for(var _0x67dd51=0x0;_0x67dd51<_0x4f18eb[_0x2281('0x1b')];_0x67dd51+=0x1){_0x4f18eb[_0x67dd51]=this[_0x2281('0x1a')](_0x4f18eb[_0x67dd51],_0x2b9ecd);}return _0x4f18eb;}if(!_[_0x2281('0x1c')](_0x4f18eb)){return _0x4f18eb;}if(_[_0x2281('0x1d')](_0x2b9ecd)){_0x2b9ecd=[_0x2b9ecd];}if(!_[_0x2281('0xe')](_0x2b9ecd)){return _0x4f18eb;}for(var _0x2fed0f=0x0;_0x2fed0f<_0x2b9ecd['length'];_0x2fed0f+=0x1){_[_0x2281('0x1e')](_0x4f18eb,_0x2b9ecd[_0x2fed0f]);}for(var _0x560b1f in _0x4f18eb){if(_0x4f18eb['hasOwnProperty'](_0x560b1f)){_0x4f18eb[_0x560b1f]=this['omit'](_0x4f18eb[_0x560b1f],_0x2b9ecd);}}return _0x4f18eb;};exports[_0x2281('0x1f')]=function(_0xda7018){return _0xda7018[_0x2281('0x20')](RegExp('^[+]?[0-9]*$'))?!![]:![];};exports['isEmail']=function(_0x394f28){return _0x394f28[_0x2281('0x20')](/^\S+@\S+$/)?!![]:![];};exports['getFullTextValue']=function(_0x1cf884){var _0x30ecce=[];_0x1cf884[_0x2281('0xf')](/[ ,]+/)['forEach'](function(_0x2e79b1){_0x2e79b1=_0x2e79b1['replace'](/([^:]")"+/g,'$1');_0x2e79b1='+'+_0x2e79b1+'*';if(_0x2e79b1[_0x2281('0x21')]('@'))_0x2e79b1='\x22'+_0x2e79b1+'\x22';_0x30ecce[_0x2281('0x22')](_0x2e79b1);});return _0x30ecce[_0x2281('0x23')]('\x20');};exports[_0x2281('0x24')]=function(_0x406b4a,_0xcf9e8e,_0x323442){var _0x54256b={},_0x5b964c={};if(_0xcf9e8e[_0x2281('0x25')]['$id']){_0xcf9e8e[_0x2281('0x25')]['id']=_0xcf9e8e['query']['$id'];delete _0xcf9e8e[_0x2281('0x25')]['$id'];}_0x54256b[_0x2281('0x26')]=_['map'](_0x406b4a,'name');_0x54256b[_0x2281('0x25')]=_[_0x2281('0x1')](_0xcf9e8e[_0x2281('0x25')]);_0x54256b[_0x2281('0x3')]=_[_0x2281('0x27')](_0x54256b[_0x2281('0x26')],_0x54256b[_0x2281('0x25')]);_0x5b964c[_0x2281('0x28')]=_[_0x2281('0x27')](_0x54256b['model'],this[_0x2281('0x29')](_0xcf9e8e[_0x2281('0x25')][_0x2281('0x29')]));_0x5b964c[_0x2281('0x28')]=_0x5b964c[_0x2281('0x28')][_0x2281('0x1b')]?_0x5b964c[_0x2281('0x28')]:_0x54256b[_0x2281('0x26')];if(!_0xcf9e8e[_0x2281('0x25')]['hasOwnProperty']('nolimit')){_0x5b964c['limit']=this[_0x2281('0x10')](_0xcf9e8e[_0x2281('0x25')]['limit']);_0x5b964c[_0x2281('0x11')]=this['offset'](_0xcf9e8e[_0x2281('0x25')][_0x2281('0x11')]);}_0x5b964c[_0x2281('0x2a')]=this['sort'](_0xcf9e8e[_0x2281('0x25')][_0x2281('0x12')]);_0x5b964c[_0x2281('0x2b')]=this[_0x2281('0x3')](_[_0x2281('0x2c')](_0xcf9e8e[_0x2281('0x25')],_0x54256b[_0x2281('0x3')]),_0x406b4a);if(_0xcf9e8e['query'][_0x2281('0x2d')]){_0x5b964c[_0x2281('0x2b')]=_[_0x2281('0x2e')](_0x5b964c['where'],{'$or':_[_0x2281('0x2f')](_0x406b4a,function(_0x34df4a){if(_0x34df4a[_0x2281('0x6')]!=='VIRTUAL'){if(_0x323442){return sequelize[_0x2281('0x2b')](sequelize['fn'](_0x2281('0x30'),sequelize['col'](_0x34df4a['name'])),{'$like':sequelize['fn'](_0x2281('0x30'),'%'+_0xcf9e8e['query']['filter']+'%')});}else{var _0x441590={};_0x441590[_0x34df4a[_0x2281('0x31')]]={'$like':'%'+_0xcf9e8e[_0x2281('0x25')][_0x2281('0x2d')]+'%'};return _0x441590;}}})});}_0x5b964c=_[_0x2281('0x2e')]({},_0x5b964c,_0xcf9e8e[_0x2281('0x32')]);return _0x5b964c;};
\ No newline at end of file
+var _0x8a09=['ASC','omit','length','isObject','unset','isNumeric','match','^[+]?[0-9]*$','isEmail','replace','push','join','getOptions','query','$id','model','attributes','intersection','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','lower','options','lodash','sequelize','moment','parse','keys','includes','fields','split','filters','isEmpty','forOwn','find','type','isPlainObject','$gte','YYYY-MM-DD','utc','format','$lte','subtract','name','uniqueid','isArray','limit','offset','map','indexOf','priority','unsigned','DESC','cast','col'];(function(_0x1c312d,_0x587d8d){var _0x1d317e=function(_0x511397){while(--_0x511397){_0x1c312d['push'](_0x1c312d['shift']());}};_0x1d317e(++_0x587d8d);}(_0x8a09,0x97));var _0x98a0=function(_0x465a0c,_0x19d4d5){_0x465a0c=_0x465a0c-0x0;var _0x1e202e=_0x8a09[_0x465a0c];return _0x1e202e;};'use strict';var _=require(_0x98a0('0x0'));var sequelize=require(_0x98a0('0x1'));var moment=require(_0x98a0('0x2'));var LIMIT_VALUE=0xfa;function hasSequelizeOperator(_0x32ec92){var _0x154397=['ne'];try{var _0x672260=JSON[_0x98a0('0x3')](_0x32ec92);var _0x262ef7=Object[_0x98a0('0x4')](_0x672260)[0x0];return _0x154397[_0x98a0('0x5')](_0x262ef7);}catch(_0xcfdec7){return![];}}function getOperatorValue(_0x505f43){var _0x335e7b=JSON[_0x98a0('0x3')](_0x505f43);var _0x30bac0=Object['keys'](_0x335e7b)[0x0];var _0x5e2ab0=_0x335e7b[_0x30bac0];return{['$'+_0x30bac0]:_0x5e2ab0};}exports[_0x98a0('0x6')]=function(_0x2e7f93){var _0x47ecc0=null;if(_0x2e7f93){_0x47ecc0=_0x2e7f93[_0x98a0('0x7')](',');}return _0x47ecc0;};exports[_0x98a0('0x8')]=function(_0x161d21,_0x35b807){var _0x50e657={};if(!_[_0x98a0('0x9')](_0x161d21)){_[_0x98a0('0xa')](_0x161d21,function(_0x259e5f,_0x5c9205){try{if(_0x35b807){var _0x3160a6=_[_0x98a0('0xb')](_0x35b807,{'name':_0x5c9205})||{};if(hasSequelizeOperator(_0x259e5f)){_0x50e657[_0x5c9205]=getOperatorValue(_0x259e5f);}else if(_0x3160a6[_0x98a0('0xc')]==='DATE'&&_[_0x98a0('0xd')](_0x259e5f)){var _0x4ec912=JSON[_0x98a0('0x3')](_0x259e5f);var _0x1ea58d={'$gte':moment(moment(_0x4ec912[_0x98a0('0xe')])['format'](_0x98a0('0xf')))[_0x98a0('0x10')]()[_0x98a0('0x11')](),'$lte':moment(moment(_0x4ec912[_0x98a0('0x12')])[_0x98a0('0x11')](_0x98a0('0xf')))[_0x98a0('0x10')]()[_0x98a0('0x13')](0x1,'s')[_0x98a0('0x11')]()};_0x50e657[_0x5c9205]=_0x1ea58d;}else if(_0x3160a6[_0x98a0('0x14')]===_0x98a0('0x15')){_0x50e657[_0x5c9205]=_0x259e5f;}else{_0x50e657[_0x5c9205]=_[_0x98a0('0x16')](_0x259e5f)?_0x259e5f:JSON['parse'](_0x259e5f);}}else{_0x50e657[_0x5c9205]=_[_0x98a0('0x16')](_0x259e5f)?_0x259e5f:JSON['parse'](_0x259e5f);}}catch(_0x4fc5d6){_0x50e657[_0x5c9205]=_0x259e5f['split'](',');}});}return _0x50e657;};exports[_0x98a0('0x17')]=function(_0x187e7b){_0x187e7b=parseInt(_0x187e7b,0xa);if(!_0x187e7b||_0x187e7b<0x0){_0x187e7b=LIMIT_VALUE;}return _0x187e7b;};exports[_0x98a0('0x18')]=function(_0x372594){_0x372594=parseInt(_0x372594,0xa);if(!_0x372594||_0x372594<0x0){_0x372594=0x0;}return _0x372594;};exports['sort']=function(_0x3f1542){var _0x56659b,_0x863cbb=null;if(_0x3f1542){_0x56659b=_0x3f1542[_0x98a0('0x7')](',');_0x863cbb=_[_0x98a0('0x19')](_0x56659b,function(_0x3ae659){if(_0x3ae659[_0x98a0('0x1a')]('-')===0x0){return[_0x3ae659===_0x98a0('0x1b')?sequelize['cast'](sequelize['col'](_0x98a0('0x1b')),_0x98a0('0x1c')):_0x3ae659['substr'](0x1),_0x98a0('0x1d')];}else{return[_0x3ae659==='priority'?sequelize[_0x98a0('0x1e')](sequelize[_0x98a0('0x1f')](_0x98a0('0x1b')),_0x98a0('0x1c')):_0x3ae659,_0x98a0('0x20')];}});}return _0x863cbb;};exports[_0x98a0('0x21')]=function(_0x34df63,_0x81bae){if(_[_0x98a0('0x9')](_0x34df63)){return _0x34df63;}if(_[_0x98a0('0x16')](_0x34df63)){for(var _0x3863cd=0x0;_0x3863cd<_0x34df63[_0x98a0('0x22')];_0x3863cd+=0x1){_0x34df63[_0x3863cd]=this['omit'](_0x34df63[_0x3863cd],_0x81bae);}return _0x34df63;}if(!_[_0x98a0('0x23')](_0x34df63)){return _0x34df63;}if(_['isString'](_0x81bae)){_0x81bae=[_0x81bae];}if(!_[_0x98a0('0x16')](_0x81bae)){return _0x34df63;}for(var _0x5549bb=0x0;_0x5549bb<_0x81bae[_0x98a0('0x22')];_0x5549bb+=0x1){_[_0x98a0('0x24')](_0x34df63,_0x81bae[_0x5549bb]);}for(var _0x396cad in _0x34df63){if(_0x34df63['hasOwnProperty'](_0x396cad)){_0x34df63[_0x396cad]=this[_0x98a0('0x21')](_0x34df63[_0x396cad],_0x81bae);}}return _0x34df63;};exports[_0x98a0('0x25')]=function(_0x62f10b){return _0x62f10b[_0x98a0('0x26')](RegExp(_0x98a0('0x27')))?!![]:![];};exports[_0x98a0('0x28')]=function(_0x2ca00f){return _0x2ca00f[_0x98a0('0x26')](/^\S+@\S+$/)?!![]:![];};exports['getFullTextValue']=function(_0x12501f){var _0x40bcfd=[];_0x12501f[_0x98a0('0x7')](/[ ,]+/)['forEach'](function(_0x36dd14){_0x36dd14=_0x36dd14[_0x98a0('0x29')](/([^:]")"+/g,'$1');_0x36dd14='+'+_0x36dd14+'*';if(_0x36dd14[_0x98a0('0x5')]('@'))_0x36dd14='\x22'+_0x36dd14+'\x22';_0x40bcfd[_0x98a0('0x2a')](_0x36dd14);});return _0x40bcfd[_0x98a0('0x2b')]('\x20');};exports[_0x98a0('0x2c')]=function(_0x66f02e,_0x5a3a7a,_0x21bb42){var _0x90e8a={},_0x3377e9={};if(_0x5a3a7a[_0x98a0('0x2d')]['$id']){_0x5a3a7a[_0x98a0('0x2d')]['id']=_0x5a3a7a['query'][_0x98a0('0x2e')];delete _0x5a3a7a[_0x98a0('0x2d')]['$id'];}_0x90e8a[_0x98a0('0x2f')]=_[_0x98a0('0x19')](_0x66f02e,'name');_0x90e8a[_0x98a0('0x2d')]=_[_0x98a0('0x4')](_0x5a3a7a[_0x98a0('0x2d')]);_0x90e8a[_0x98a0('0x8')]=_['intersection'](_0x90e8a[_0x98a0('0x2f')],_0x90e8a[_0x98a0('0x2d')]);_0x3377e9[_0x98a0('0x30')]=_[_0x98a0('0x31')](_0x90e8a[_0x98a0('0x2f')],this[_0x98a0('0x6')](_0x5a3a7a[_0x98a0('0x2d')][_0x98a0('0x6')]));_0x3377e9[_0x98a0('0x30')]=_0x3377e9['attributes']['length']?_0x3377e9['attributes']:_0x90e8a[_0x98a0('0x2f')];if(!_0x5a3a7a[_0x98a0('0x2d')][_0x98a0('0x32')](_0x98a0('0x33'))){_0x3377e9[_0x98a0('0x17')]=this[_0x98a0('0x17')](_0x5a3a7a['query'][_0x98a0('0x17')]);_0x3377e9[_0x98a0('0x18')]=this[_0x98a0('0x18')](_0x5a3a7a[_0x98a0('0x2d')][_0x98a0('0x18')]);}_0x3377e9[_0x98a0('0x34')]=this[_0x98a0('0x35')](_0x5a3a7a[_0x98a0('0x2d')][_0x98a0('0x35')]);_0x3377e9[_0x98a0('0x36')]=this[_0x98a0('0x8')](_[_0x98a0('0x37')](_0x5a3a7a[_0x98a0('0x2d')],_0x90e8a[_0x98a0('0x8')]),_0x66f02e);if(_0x5a3a7a[_0x98a0('0x2d')][_0x98a0('0x38')]){_0x3377e9['where']=_[_0x98a0('0x39')](_0x3377e9[_0x98a0('0x36')],{'$or':_[_0x98a0('0x19')](_0x66f02e,function(_0x3a871a){if(_0x3a871a[_0x98a0('0xc')]!==_0x98a0('0x3a')){if(_0x21bb42){return sequelize[_0x98a0('0x36')](sequelize['fn']('lower',sequelize['col'](_0x3a871a[_0x98a0('0x14')])),{'$like':sequelize['fn'](_0x98a0('0x3b'),'%'+_0x5a3a7a['query'][_0x98a0('0x38')]+'%')});}else{var _0xfc3eac={};_0xfc3eac[_0x3a871a[_0x98a0('0x14')]]={'$like':'%'+_0x5a3a7a['query'][_0x98a0('0x38')]+'%'};return _0xfc3eac;}}})});}_0x3377e9=_[_0x98a0('0x39')]({},_0x3377e9,_0x5a3a7a[_0x98a0('0x3c')]);return _0x3377e9;};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3582=['toISOString','split','static','views','/server/views','engine','html','ejs','renderFile','view\x20engine','50mb','json','initialize','express','serve-favicon','method-override','cookie-parser','errorhandler','path','passport','moment','./environment','default','production','set','appPath','public','join','root','client','use','json\x20replacer'];(function(_0x588396,_0x183e3){var _0x16350d=function(_0x2b2c92){while(--_0x2b2c92){_0x588396['push'](_0x588396['shift']());}};_0x16350d(++_0x183e3);}(_0x3582,0x8d));var _0x2358=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x3582[_0x3dd15e];return _0x231fd0;};'use strict';var express=require(_0x2358('0x0'));var favicon=require(_0x2358('0x1'));var bodyParser=require('body-parser');var methodOverride=require(_0x2358('0x2'));var cookieParser=require(_0x2358('0x3'));var errorHandler=require(_0x2358('0x4'));var path=require(_0x2358('0x5'));var passport=require(_0x2358('0x6'));var cors=require('cors');var moment=require(_0x2358('0x7'));var config=require(_0x2358('0x8'));var db=require('../mysqldb')['db'];exports[_0x2358('0x9')]=function(_0x16d249){var _0x7db337=_0x16d249['get']('env');if(_0x7db337===_0x2358('0xa')){_0x16d249[_0x2358('0xb')](_0x2358('0xc'),path['join'](config['root'],_0x2358('0xd')));}if(_0x7db337==='development'||_0x7db337==='test'){_0x16d249['set'](_0x2358('0xc'),path[_0x2358('0xe')](config[_0x2358('0xf')],_0x2358('0x10')));_0x16d249[_0x2358('0x11')](errorHandler());}_0x16d249[_0x2358('0xb')](_0x2358('0x12'),function(_0x2f25f1,_0x33a07e){if(this[_0x2f25f1]instanceof Date){_0x33a07e=this[_0x2f25f1][_0x2358('0x13')]()[_0x2358('0x14')]('.')[0x0]+'Z';}return _0x33a07e;});_0x16d249['use'](express[_0x2358('0x15')](_0x16d249['get']('appPath')));_0x16d249[_0x2358('0xb')](_0x2358('0x16'),config[_0x2358('0xf')]+_0x2358('0x17'));_0x16d249[_0x2358('0x18')](_0x2358('0x19'),require(_0x2358('0x1a'))[_0x2358('0x1b')]);_0x16d249['set'](_0x2358('0x1c'),'html');_0x16d249[_0x2358('0x11')](bodyParser['urlencoded']({'limit':_0x2358('0x1d'),'extended':!![]}));_0x16d249[_0x2358('0x11')](bodyParser[_0x2358('0x1e')]({'limit':'50mb'}));_0x16d249[_0x2358('0x11')](cors());_0x16d249[_0x2358('0x11')](methodOverride());_0x16d249[_0x2358('0x11')](cookieParser());_0x16d249[_0x2358('0x11')](passport[_0x2358('0x1f')]());};
\ No newline at end of file
+var _0x50cf=['json','initialize','serve-favicon','body-parser','method-override','cookie-parser','errorhandler','path','cors','moment','./environment','../mysqldb','default','get','env','set','appPath','root','public','development','client','use','json\x20replacer','toISOString','static','views','/server/views','html','ejs','renderFile','urlencoded','50mb'];(function(_0x19dd7a,_0x51de21){var _0x3feb6a=function(_0x4a3c84){while(--_0x4a3c84){_0x19dd7a['push'](_0x19dd7a['shift']());}};_0x3feb6a(++_0x51de21);}(_0x50cf,0x82));var _0xf50c=function(_0x3f4a1e,_0x3da02d){_0x3f4a1e=_0x3f4a1e-0x0;var _0x39db53=_0x50cf[_0x3f4a1e];return _0x39db53;};'use strict';var express=require('express');var favicon=require(_0xf50c('0x0'));var bodyParser=require(_0xf50c('0x1'));var methodOverride=require(_0xf50c('0x2'));var cookieParser=require(_0xf50c('0x3'));var errorHandler=require(_0xf50c('0x4'));var path=require(_0xf50c('0x5'));var passport=require('passport');var cors=require(_0xf50c('0x6'));var moment=require(_0xf50c('0x7'));var config=require(_0xf50c('0x8'));var db=require(_0xf50c('0x9'))['db'];exports[_0xf50c('0xa')]=function(_0xe1b59b){var _0x32528e=_0xe1b59b[_0xf50c('0xb')](_0xf50c('0xc'));if(_0x32528e==='production'){_0xe1b59b[_0xf50c('0xd')](_0xf50c('0xe'),path['join'](config[_0xf50c('0xf')],_0xf50c('0x10')));}if(_0x32528e===_0xf50c('0x11')||_0x32528e==='test'){_0xe1b59b[_0xf50c('0xd')](_0xf50c('0xe'),path['join'](config[_0xf50c('0xf')],_0xf50c('0x12')));_0xe1b59b[_0xf50c('0x13')](errorHandler());}_0xe1b59b[_0xf50c('0xd')](_0xf50c('0x14'),function(_0x280080,_0x5a8f3a){if(this[_0x280080]instanceof Date){_0x5a8f3a=this[_0x280080][_0xf50c('0x15')]()['split']('.')[0x0]+'Z';}return _0x5a8f3a;});_0xe1b59b[_0xf50c('0x13')](express[_0xf50c('0x16')](_0xe1b59b[_0xf50c('0xb')]('appPath')));_0xe1b59b[_0xf50c('0xd')](_0xf50c('0x17'),config['root']+_0xf50c('0x18'));_0xe1b59b['engine'](_0xf50c('0x19'),require(_0xf50c('0x1a'))[_0xf50c('0x1b')]);_0xe1b59b[_0xf50c('0xd')]('view\x20engine',_0xf50c('0x19'));_0xe1b59b['use'](bodyParser[_0xf50c('0x1c')]({'limit':_0xf50c('0x1d'),'extended':!![]}));_0xe1b59b[_0xf50c('0x13')](bodyParser[_0xf50c('0x1e')]({'limit':_0xf50c('0x1d')}));_0xe1b59b[_0xf50c('0x13')](cors());_0xe1b59b[_0xf50c('0x13')](methodOverride());_0xe1b59b[_0xf50c('0x13')](cookieParser());_0xe1b59b[_0xf50c('0x13')](passport[_0xf50c('0x1f')]());};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4448=['concat','head','mac','00:00:00:00:00:00','address','getFirstInterface','map','model','join','md5','update','hex','licenseToken','test','win32','utf8','replace','macAddress','ipAddress','createHash','digest','substring','lodash','crypto','bimedia-machine-uuid','../environment','networkInterfaces','orderBy','keys','length','filter','family'];(function(_0x2d1568,_0x28f972){var _0x2bb335=function(_0x138a91){while(--_0x138a91){_0x2d1568['push'](_0x2d1568['shift']());}};_0x2bb335(++_0x28f972);}(_0x4448,0x96));var _0x8444=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x4448[_0x321bb2];return _0x9c12ed;};'use strict';var _=require(_0x8444('0x0'));var os=require('os');var crypto=require(_0x8444('0x1'));var machine=require(_0x8444('0x2'));var exec=require('child_process')['execSync'];var config=require(_0x8444('0x3'));function getInterfaces(){var _0x231f5b=[];var _0x56da25=os[_0x8444('0x4')]();var _0x5848dd=_[_0x8444('0x5')](_[_0x8444('0x6')](_0x56da25));for(var _0x3ff962=0x0;_0x3ff962<_0x5848dd[_0x8444('0x7')];_0x3ff962++){var _0x1afc6f=_0x56da25[_0x5848dd[_0x3ff962]][_0x8444('0x8')](function(_0x5dfe53){return _0x5dfe53[_0x8444('0x9')]==='IPv4'&&_0x5dfe53['internal']===![];});_0x231f5b=_0x231f5b[_0x8444('0xa')](_0x1afc6f);}return _0x231f5b;}function getFirstInterface(){var _0x155bce=_[_0x8444('0xb')](getInterfaces());return{'macAddress':_0x155bce&&_0x155bce[_0x8444('0xc')]?_0x155bce[_0x8444('0xc')]:_0x8444('0xd'),'ipAddress':_0x155bce&&_0x155bce[_0x8444('0xe')]?_0x155bce['address']:'127.0.0.1'};}exports[_0x8444('0xf')]=getFirstInterface;function getCPUhash(){var _0x5f2013=_[_0x8444('0x5')](os['cpus']()[_0x8444('0x10')](function(_0x317688){return _0x317688[_0x8444('0x11')];}))[_0x8444('0x12')](':');return crypto['createHash'](_0x8444('0x13'))[_0x8444('0x14')](_0x5f2013)['digest'](_0x8444('0x15'));}exports['getUuid']=function(){var _0xb0c3d4=os['platform']();var _0x2489c6=/[0-9a-f-]{36}/;if(config[_0x8444('0x16')]&&_0x2489c6[_0x8444('0x17')](config[_0x8444('0x16')])){return config[_0x8444('0x16')];}else if(_0xb0c3d4===_0x8444('0x18')){return exec('dmidecode\x20--string\x20system-uuid',{'encoding':_0x8444('0x19')})[_0x8444('0x1a')]('\x0d\x0a','');}else{var _0x2c556c=getFirstInterface();var _0x4c3fc6=getCPUhash();var _0x39c7f4=_0x4c3fc6+'|'+os['hostname']()+'|'+_0x2c556c[_0x8444('0x1b')]+'|'+_0x2c556c[_0x8444('0x1c')];var _0x318c10=crypto[_0x8444('0x1d')](_0x8444('0x13'))[_0x8444('0x14')](_0x39c7f4)[_0x8444('0x1e')](_0x8444('0x15'));return _0x318c10[_0x8444('0x1f')](0x0,0x8)+'-'+_0x318c10[_0x8444('0x1f')](0x8,0xc)+'-'+_0x318c10[_0x8444('0x1f')](0xc,0x10)+'-'+_0x318c10[_0x8444('0x1f')](0x10,0x14)+'-'+_0x318c10[_0x8444('0x1f')](0x14);}};
\ No newline at end of file
+var _0xd894=['head','mac','address','127.0.0.1','getFirstInterface','map','join','createHash','update','digest','hex','getUuid','platform','licenseToken','test','dmidecode\x20--string\x20system-uuid','utf8','replace','hostname','macAddress','ipAddress','md5','substring','lodash','crypto','bimedia-machine-uuid','execSync','../environment','networkInterfaces','orderBy','length','family','internal','concat'];(function(_0x2cb419,_0x491ac2){var _0xa31798=function(_0x5da5d5){while(--_0x5da5d5){_0x2cb419['push'](_0x2cb419['shift']());}};_0xa31798(++_0x491ac2);}(_0xd894,0x1d1));var _0x4d89=function(_0x11b7d5,_0x545263){_0x11b7d5=_0x11b7d5-0x0;var _0x49d4c6=_0xd894[_0x11b7d5];return _0x49d4c6;};'use strict';var _=require(_0x4d89('0x0'));var os=require('os');var crypto=require(_0x4d89('0x1'));var machine=require(_0x4d89('0x2'));var exec=require('child_process')[_0x4d89('0x3')];var config=require(_0x4d89('0x4'));function getInterfaces(){var _0xaaff38=[];var _0x148ac4=os[_0x4d89('0x5')]();var _0x3e07fe=_[_0x4d89('0x6')](_['keys'](_0x148ac4));for(var _0x548404=0x0;_0x548404<_0x3e07fe[_0x4d89('0x7')];_0x548404++){var _0x4bfc4a=_0x148ac4[_0x3e07fe[_0x548404]]['filter'](function(_0x25e01a){return _0x25e01a[_0x4d89('0x8')]==='IPv4'&&_0x25e01a[_0x4d89('0x9')]===![];});_0xaaff38=_0xaaff38[_0x4d89('0xa')](_0x4bfc4a);}return _0xaaff38;}function getFirstInterface(){var _0x1c6453=_[_0x4d89('0xb')](getInterfaces());return{'macAddress':_0x1c6453&&_0x1c6453[_0x4d89('0xc')]?_0x1c6453['mac']:'00:00:00:00:00:00','ipAddress':_0x1c6453&&_0x1c6453['address']?_0x1c6453[_0x4d89('0xd')]:_0x4d89('0xe')};}exports[_0x4d89('0xf')]=getFirstInterface;function getCPUhash(){var _0x2d1e8a=_['orderBy'](os['cpus']()[_0x4d89('0x10')](function(_0x37f691){return _0x37f691['model'];}))[_0x4d89('0x11')](':');return crypto[_0x4d89('0x12')]('md5')[_0x4d89('0x13')](_0x2d1e8a)[_0x4d89('0x14')](_0x4d89('0x15'));}exports[_0x4d89('0x16')]=function(){var _0x351299=os[_0x4d89('0x17')]();var _0x5dd665=/[0-9a-f-]{36}/;if(config[_0x4d89('0x18')]&&_0x5dd665[_0x4d89('0x19')](config[_0x4d89('0x18')])){return config[_0x4d89('0x18')];}else if(_0x351299==='win32'){return exec(_0x4d89('0x1a'),{'encoding':_0x4d89('0x1b')})[_0x4d89('0x1c')]('\x0d\x0a','');}else{var _0x21e756=getFirstInterface();var _0x257f15=getCPUhash();var _0xe59c25=_0x257f15+'|'+os[_0x4d89('0x1d')]()+'|'+_0x21e756[_0x4d89('0x1e')]+'|'+_0x21e756[_0x4d89('0x1f')];var _0x3c4c0f=crypto[_0x4d89('0x12')](_0x4d89('0x20'))[_0x4d89('0x13')](_0xe59c25)['digest'](_0x4d89('0x15'));return _0x3c4c0f['substring'](0x0,0x8)+'-'+_0x3c4c0f[_0x4d89('0x21')](0x8,0xc)+'-'+_0x3c4c0f[_0x4d89('0x21')](0xc,0x10)+'-'+_0x3c4c0f[_0x4d89('0x21')](0x10,0x14)+'-'+_0x3c4c0f[_0x4d89('0x21')](0x14);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1ce6=['update','info','THE\x20LICENSE\x20HAS\x20BEEN\x20DISABLED','Changed','%s\x20-\x20GRAY\x20PERIOD\x20STARTED\x20AT\x20%s','toUpperCase','YYYY-MM-DD\x20HH:mm','encryptString','diff','decryptString','days','DEMO\x20START\x20AT\x20%s','NEW\x20UUID\x20DETECTED:\x20FROM\x20%s\x20TO\x20%s','error','finally','getUuid','License','findOrCreate','spread','message','moment','request-promise','bluebird','pkginfo','version','../../components/encryptor','https://www.xcallymotion.com','format','%s/api/servers/%s/check?version=%s','exports','GET','then','catch','get','data2','data1','license','THE\x20LICENSE\x20HAS\x20BEEN\x20ENABLED','THE\x20LICENSE\x20HAS\x20BEEN\x20UPDATED'];(function(_0x525c7b,_0x488fcc){var _0x27b33e=function(_0x56d43b){while(--_0x56d43b){_0x525c7b['push'](_0x525c7b['shift']());}};_0x27b33e(++_0x488fcc);}(_0x1ce6,0xfe));var _0x61ce=function(_0xd05412,_0x5aedf8){_0xd05412=_0xd05412-0x0;var _0x30c9b9=_0x1ce6[_0xd05412];return _0x30c9b9;};'use strict';var util=require('util');var moment=require(_0x61ce('0x0'));var rp=require(_0x61ce('0x1'));var BPromise=require(_0x61ce('0x2'));var pkginfo=require(_0x61ce('0x3'))(module,_0x61ce('0x4'));var db=require('../../mysqldb')['db'];var encryptor=require(_0x61ce('0x5'));var hardware=require('./hardware');var logger=require('../logger')('license');var HOST=_0x61ce('0x6');var TIME=0x3c*0x1388;var DAYS=0x7;var GRAY_PERIOD_REASON;var oldToken;var isOldTokenSent=![];function httpRequest(_0x23dd83){return new BPromise(function(_0x45c4db,_0x1c8dff){var _0x3f080e=util[_0x61ce('0x7')](_0x61ce('0x8'),HOST,_0x23dd83,module[_0x61ce('0x9')][_0x61ce('0x4')]);if(oldToken){_0x3f080e=util[_0x61ce('0x7')]('%s/api/servers/%s/check?version=%s&oldtoken=%s',HOST,_0x23dd83,module[_0x61ce('0x9')][_0x61ce('0x4')],oldToken);}var _0x1962e9={'uri':_0x3f080e,'method':_0x61ce('0xa'),'timeout':0xea60,'json':!![]};return rp(_0x1962e9)[_0x61ce('0xb')](function(_0x205d4e){_0x45c4db(_0x205d4e);})[_0x61ce('0xc')](function(_0xd0a901){_0x1c8dff(_0xd0a901);});});}function manageLicense(_0x3ed903,_0x5c4bc4){var _0x59a8a1=_0x5c4bc4[_0x61ce('0xd')]({'plain':!![]});if(!isOldTokenSent&&_0x59a8a1['data1']!==_0x3ed903&&!_0x59a8a1[_0x61ce('0xe')]){oldToken=_0x59a8a1[_0x61ce('0xf')];}httpRequest(_0x3ed903)[_0x61ce('0xb')](function(_0x54e2d5){if(oldToken){oldToken=undefined;isOldTokenSent=!![];}if(_0x54e2d5['active']){isOldTokenSent=![];if(!_0x59a8a1[_0x61ce('0x10')]&&_0x59a8a1['license']!=_0x54e2d5['license']||_0x59a8a1[_0x61ce('0x10')]&&_0x59a8a1[_0x61ce('0xe')]){logger['info'](_0x61ce('0x11'));}if(_0x59a8a1[_0x61ce('0x10')]&&!_0x59a8a1[_0x61ce('0xe')]&&_0x59a8a1[_0x61ce('0x10')]!=_0x54e2d5[_0x61ce('0x10')]){logger['info'](_0x61ce('0x12'));}if(_0x59a8a1[_0x61ce('0x10')]&&!_0x59a8a1[_0x61ce('0xe')]&&_0x59a8a1[_0x61ce('0x10')]==_0x54e2d5[_0x61ce('0x10')]){return _0x5c4bc4;}return _0x5c4bc4[_0x61ce('0x13')]({'data1':_0x3ed903,'data2':null,'license':_0x54e2d5['license']});}else{if(_0x54e2d5[_0x61ce('0x10')]||_0x59a8a1[_0x61ce('0x10')]){if(!_0x59a8a1[_0x61ce('0xe')]){if(_0x59a8a1['data1']==_0x3ed903){GRAY_PERIOD_REASON='Disabled';logger[_0x61ce('0x14')](_0x61ce('0x15'));}else{GRAY_PERIOD_REASON=_0x61ce('0x16');logger['info']('NEW\x20UUID\x20DETECTED:\x20FROM\x20%s\x20TO\x20%s',_0x59a8a1[_0x61ce('0xf')],_0x3ed903);}logger[_0x61ce('0x14')](_0x61ce('0x17'),GRAY_PERIOD_REASON[_0x61ce('0x18')](),moment()[_0x61ce('0x7')](_0x61ce('0x19')));return _0x5c4bc4[_0x61ce('0x13')]({'data2':encryptor[_0x61ce('0x1a')](moment()[_0x61ce('0x7')](_0x61ce('0x19')))});}else{if(moment()[_0x61ce('0x1b')](encryptor[_0x61ce('0x1c')](_0x59a8a1['data2']),_0x61ce('0x1d'))>DAYS){logger[_0x61ce('0x14')](_0x61ce('0x1e'),moment()['format'](_0x61ce('0x19')));isOldTokenSent=![];return _0x5c4bc4[_0x61ce('0x13')]({'data1':_0x3ed903,'data2':null,'license':null});}}}else{if(_0x59a8a1['data1']!=_0x3ed903){logger[_0x61ce('0x14')](_0x61ce('0x1f'),_0x59a8a1['data1'],_0x3ed903);return _0x5c4bc4['update']({'data1':_0x3ed903,'data2':null,'license':null});}}}return _0x5c4bc4;})[_0x61ce('0xb')](function(_0x14350d){_0x5c4bc4=_0x14350d;})[_0x61ce('0xc')](function(_0xea71d5){logger[_0x61ce('0x20')](_0xea71d5['message']);})[_0x61ce('0x21')](function(){setTimeout(function(){manageLicense(hardware[_0x61ce('0x22')](),_0x5c4bc4);},TIME);});}function defaultLicense(){var _0x512c53=hardware[_0x61ce('0x22')]();if(_0x512c53){return db[_0x61ce('0x23')][_0x61ce('0x24')]({'where':{'id':0x1},'defaults':{'data1':_0x512c53}})[_0x61ce('0x25')](function(_0x4e2360,_0x5c94a5){logger[_0x61ce('0x14')]('SERVICE\x20LICENSE\x20STARTED\x20%s',_0x512c53);manageLicense(_0x512c53,_0x4e2360);})[_0x61ce('0xc')](function(_0x80bf8f){logger['error'](_0x80bf8f[_0x61ce('0x26')]);});}}exports['default']=defaultLicense;
\ No newline at end of file
+var _0x31f4=['finally','getUuid','findOrCreate','spread','SERVICE\x20LICENSE\x20STARTED\x20%s','default','util','moment','bluebird','pkginfo','version','../../mysqldb','../../components/encryptor','../logger','https://www.xcallymotion.com','format','%s/api/servers/%s/check?version=%s','GET','then','catch','get','data1','data2','license','info','THE\x20LICENSE\x20HAS\x20BEEN\x20ENABLED','THE\x20LICENSE\x20HAS\x20BEEN\x20UPDATED','update','Disabled','Changed','NEW\x20UUID\x20DETECTED:\x20FROM\x20%s\x20TO\x20%s','%s\x20-\x20GRAY\x20PERIOD\x20STARTED\x20AT\x20%s','YYYY-MM-DD\x20HH:mm','encryptString','diff','decryptString','days','DEMO\x20START\x20AT\x20%s','error','message'];(function(_0x2e9b61,_0x2120cf){var _0x597ccd=function(_0x161d79){while(--_0x161d79){_0x2e9b61['push'](_0x2e9b61['shift']());}};_0x597ccd(++_0x2120cf);}(_0x31f4,0xf6));var _0x431f=function(_0x28aea5,_0x3bb12e){_0x28aea5=_0x28aea5-0x0;var _0x6a55f9=_0x31f4[_0x28aea5];return _0x6a55f9;};'use strict';var util=require(_0x431f('0x0'));var moment=require(_0x431f('0x1'));var rp=require('request-promise');var BPromise=require(_0x431f('0x2'));var pkginfo=require(_0x431f('0x3'))(module,_0x431f('0x4'));var db=require(_0x431f('0x5'))['db'];var encryptor=require(_0x431f('0x6'));var hardware=require('./hardware');var logger=require(_0x431f('0x7'))('license');var HOST=_0x431f('0x8');var TIME=0x3c*0x1388;var DAYS=0x7;var GRAY_PERIOD_REASON;var oldToken;var isOldTokenSent=![];function httpRequest(_0x2013f6){return new BPromise(function(_0x2550e4,_0x2bc545){var _0x3f627e=util[_0x431f('0x9')](_0x431f('0xa'),HOST,_0x2013f6,module['exports'][_0x431f('0x4')]);if(oldToken){_0x3f627e=util[_0x431f('0x9')]('%s/api/servers/%s/check?version=%s&oldtoken=%s',HOST,_0x2013f6,module['exports'][_0x431f('0x4')],oldToken);}var _0x3c65df={'uri':_0x3f627e,'method':_0x431f('0xb'),'timeout':0xea60,'json':!![]};return rp(_0x3c65df)[_0x431f('0xc')](function(_0x31aad9){_0x2550e4(_0x31aad9);})[_0x431f('0xd')](function(_0x4830f1){_0x2bc545(_0x4830f1);});});}function manageLicense(_0x20ad51,_0x306f23){var _0x5cc53c=_0x306f23[_0x431f('0xe')]({'plain':!![]});if(!isOldTokenSent&&_0x5cc53c[_0x431f('0xf')]!==_0x20ad51&&!_0x5cc53c[_0x431f('0x10')]){oldToken=_0x5cc53c[_0x431f('0xf')];}httpRequest(_0x20ad51)[_0x431f('0xc')](function(_0x845a65){if(oldToken){oldToken=undefined;isOldTokenSent=!![];}if(_0x845a65['active']){isOldTokenSent=![];if(!_0x5cc53c['license']&&_0x5cc53c['license']!=_0x845a65[_0x431f('0x11')]||_0x5cc53c['license']&&_0x5cc53c[_0x431f('0x10')]){logger[_0x431f('0x12')](_0x431f('0x13'));}if(_0x5cc53c[_0x431f('0x11')]&&!_0x5cc53c['data2']&&_0x5cc53c[_0x431f('0x11')]!=_0x845a65[_0x431f('0x11')]){logger[_0x431f('0x12')](_0x431f('0x14'));}if(_0x5cc53c[_0x431f('0x11')]&&!_0x5cc53c['data2']&&_0x5cc53c[_0x431f('0x11')]==_0x845a65['license']){return _0x306f23;}return _0x306f23[_0x431f('0x15')]({'data1':_0x20ad51,'data2':null,'license':_0x845a65[_0x431f('0x11')]});}else{if(_0x845a65[_0x431f('0x11')]||_0x5cc53c[_0x431f('0x11')]){if(!_0x5cc53c[_0x431f('0x10')]){if(_0x5cc53c[_0x431f('0xf')]==_0x20ad51){GRAY_PERIOD_REASON=_0x431f('0x16');logger['info']('THE\x20LICENSE\x20HAS\x20BEEN\x20DISABLED');}else{GRAY_PERIOD_REASON=_0x431f('0x17');logger['info'](_0x431f('0x18'),_0x5cc53c[_0x431f('0xf')],_0x20ad51);}logger[_0x431f('0x12')](_0x431f('0x19'),GRAY_PERIOD_REASON['toUpperCase'](),moment()[_0x431f('0x9')](_0x431f('0x1a')));return _0x306f23[_0x431f('0x15')]({'data2':encryptor[_0x431f('0x1b')](moment()['format'](_0x431f('0x1a')))});}else{if(moment()[_0x431f('0x1c')](encryptor[_0x431f('0x1d')](_0x5cc53c[_0x431f('0x10')]),_0x431f('0x1e'))>DAYS){logger[_0x431f('0x12')](_0x431f('0x1f'),moment()[_0x431f('0x9')](_0x431f('0x1a')));isOldTokenSent=![];return _0x306f23['update']({'data1':_0x20ad51,'data2':null,'license':null});}}}else{if(_0x5cc53c[_0x431f('0xf')]!=_0x20ad51){logger['info'](_0x431f('0x18'),_0x5cc53c[_0x431f('0xf')],_0x20ad51);return _0x306f23['update']({'data1':_0x20ad51,'data2':null,'license':null});}}}return _0x306f23;})['then'](function(_0x34328b){_0x306f23=_0x34328b;})['catch'](function(_0x439354){logger[_0x431f('0x20')](_0x439354[_0x431f('0x21')]);})[_0x431f('0x22')](function(){setTimeout(function(){manageLicense(hardware['getUuid'](),_0x306f23);},TIME);});}function defaultLicense(){var _0x53a095=hardware[_0x431f('0x23')]();if(_0x53a095){return db['License'][_0x431f('0x24')]({'where':{'id':0x1},'defaults':{'data1':_0x53a095}})[_0x431f('0x25')](function(_0x9a8bb2,_0x2488c2){logger[_0x431f('0x12')](_0x431f('0x26'),_0x53a095);manageLicense(_0x53a095,_0x9a8bb2);})[_0x431f('0xd')](function(_0x76eef8){logger[_0x431f('0x20')](_0x76eef8['message']);});}}exports[_0x431f('0x27')]=defaultLicense;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbaf5=['forEach','user','pick','countBy','License\x20limit\x20reached\x20for\x20users','exports','util','lodash','moment','bluebird','./hardware','../../components/encryptor','../../mysqldb','2027-01-01T00:00:00.000Z','getUuid','Breaking\x20license','License','find','defaults','then','catch','uuid','isEmpty','data1','data2','split','decryptString','format','%s:%s:%s','parse','gray','deadline','add','days','grayReason','changed','message','findAll','role','sequelize','COUNT','col','count','admin','telephone','users','telephones'];(function(_0x5bf2b3,_0xfcd364){var _0x5e8a9b=function(_0x43546b){while(--_0x43546b){_0x5bf2b3['push'](_0x5bf2b3['shift']());}};_0x5e8a9b(++_0xfcd364);}(_0xbaf5,0x64));var _0x5baf=function(_0x4baa11,_0x7c6290){_0x4baa11=_0x4baa11-0x0;var _0x219273=_0xbaf5[_0x4baa11];return _0x219273;};'use strict';var util=require(_0x5baf('0x0'));var _=require(_0x5baf('0x1'));var moment=require(_0x5baf('0x2'));var BPromise=require(_0x5baf('0x3'));var hardware=require(_0x5baf('0x4'));var encryptor=require(_0x5baf('0x5'));var db=require(_0x5baf('0x6'))['db'];const demoLicense={'demo':!![],'agents':0x2,'telephones':0x0,'users':0x1,'expiration':_0x5baf('0x7'),'chat':![],'mail':![],'fax':![],'messaging':![],'whatsapp':![],'cm':![],'dialer':![],'jscripty':![],'openchannel':![],'callysquare':0x2,'webrtc':![],'jaws':![],'custom':![],'description':'Demo\x20license','machineUuid':hardware[_0x5baf('0x8')](),'virtual':0x0,'voice':!![],'screenrecording':![],'preferred':![],'ai':![]};const breakingLicense={'breaking':!![],'demo':!![],'agents':0x2,'telephones':0x0,'users':0x1,'expiration':_0x5baf('0x7'),'chat':![],'mail':![],'fax':![],'messaging':![],'whatsapp':![],'cm':![],'dialer':![],'jscripty':![],'openchannel':![],'callysquare':0x2,'webrtc':![],'jaws':![],'custom':![],'update':![],'description':_0x5baf('0x9'),'machineUuid':hardware[_0x5baf('0x8')](),'virtual':0x0,'voice':!![],'screenrecording':![],'preferred':![],'ai':![]};function getLicense(_0xa65d5c){return new BPromise(function(_0x3d0cbc,_0x187d92){return db[_0x5baf('0xa')][_0x5baf('0xb')](_[_0x5baf('0xc')](_0xa65d5c,{'raw':!![],'where':{'id':0x1}}))[_0x5baf('0xd')](function(_0x365af4){return checkLicense(_0x365af4,null);})[_0x5baf('0xd')](function(_0x2f8b2d){_0x3d0cbc(_0x2f8b2d);return;})[_0x5baf('0xe')](function(_0x597343){_0x187d92(_0x597343);});});}function checkLicense(_0x5e56ec,_0x42cb3a){if(!_0x5e56ec){demoLicense[_0x5baf('0xf')]=_0x5e56ec['data1'];return demoLicense;}try{var _0x3e34a8=_0x42cb3a||_0x5e56ec['license'];if(_[_0x5baf('0x10')](_0x3e34a8)){throw new Error('License\x20key\x20value\x20not\x20found');}var _0x284234=_0x5e56ec[_0x5baf('0x11')];var _0x592182=_0x5e56ec[_0x5baf('0x12')];var _0xc27a71=_0x284234[_0x5baf('0x13')]('-')[0x4];var _0x1bd6e3=_0x284234[_0x5baf('0x13')]('-')[0x0];var _0x1d47ca=encryptor[_0x5baf('0x14')](_0x3e34a8,util[_0x5baf('0x15')](_0x5baf('0x16'),_0xc27a71,_0x284234,_0x1bd6e3));var _0x1e76ad=JSON[_0x5baf('0x17')](_0x1d47ca);_0x1e76ad['demo']=![];_0x1e76ad['uuid']=_0x284234;_0x1e76ad['machineUuid']=hardware['getUuid']();if(_0x592182){var _0x3cda64=encryptor['decryptString'](_0x592182);_0x1e76ad[_0x5baf('0x18')]=_0x3cda64;_0x1e76ad[_0x5baf('0x19')]=moment(_0x3cda64)[_0x5baf('0x1a')](0x7,_0x5baf('0x1b'))['format']();_0x1e76ad[_0x5baf('0x1c')]=_0x1e76ad[_0x5baf('0xf')]!=_0x1e76ad['machineUuid']?_0x5baf('0x1d'):'disabled';}return _0x1e76ad;}catch(_0x580c30){breakingLicense['uuid']=_0x5e56ec[_0x5baf('0x11')];breakingLicense['message']=_0x580c30[_0x5baf('0x1e')];return breakingLicense;}}function getLimits(){return new BPromise(function(_0x1e4115,_0x99e6d8){getLicense()[_0x5baf('0xd')](function(_0x3e697b){return db['User'][_0x5baf('0x1f')]({'attributes':[_0x5baf('0x20'),[db[_0x5baf('0x21')]['fn'](_0x5baf('0x22'),db[_0x5baf('0x21')][_0x5baf('0x23')](_0x5baf('0x20'))),_0x5baf('0x24')]],'group':_0x5baf('0x20'),'where':{'role':{'$or':[_0x5baf('0x25'),'user',_0x5baf('0x26')]}},'raw':!![]})['then'](function(_0x1c0474){var _0x39b915={'user':_0x3e697b[_0x5baf('0x27')]||0x0,'telephone':_0x3e697b[_0x5baf('0x28')]||0x0};_0x1c0474[_0x5baf('0x29')](function(_0x47895b){var _0x267164=_0x47895b[_0x5baf('0x20')]===_0x5baf('0x25')?_0x5baf('0x2a'):_0x47895b[_0x5baf('0x20')];_0x39b915[_0x267164]-=_0x47895b[_0x5baf('0x24')];if(_0x39b915[_0x267164]<0x0)_0x39b915[_0x267164]=0x0;});_0x1e4115(_0x39b915);return;});})[_0x5baf('0xe')](function(_0x5dbc67){_0x99e6d8(_0x5dbc67);});});}function checkUserLimits(_0x43a70d){return new BPromise(function(_0x1518d0,_0x426bdf){getLimits()['then'](function(_0x46931b){var _0x3a06cf=_[_0x5baf('0x2b')](_[_0x5baf('0x2c')](_0x43a70d,_0x5baf('0x20')),[_0x5baf('0x25'),_0x5baf('0x2a'),_0x5baf('0x26')]);var _0x59a3f6=(_0x3a06cf['admin']||0x0)+(_0x3a06cf[_0x5baf('0x2a')]||0x0);var _0x34b64c=_0x3a06cf[_0x5baf('0x26')]||0x0;if(_0x59a3f6>_0x46931b[_0x5baf('0x2a')])return _0x426bdf(_0x5baf('0x2d'));if(_0x34b64c>_0x46931b[_0x5baf('0x26')])return _0x426bdf('License\x20limit\x20reached\x20for\x20telephones');return _0x1518d0();})[_0x5baf('0xe')](function(_0x4ccb16){_0x426bdf(_0x4ccb16);});});}module[_0x5baf('0x2e')]={'checkLicense':checkLicense,'checkUserLimits':checkUserLimits,'getLicense':getLicense};
\ No newline at end of file
+var _0x2ce3=['message','User','findAll','role','sequelize','COUNT','col','count','admin','user','telephone','users','telephones','forEach','pick','License\x20limit\x20reached\x20for\x20users','util','lodash','moment','bluebird','./hardware','../../components/encryptor','../../mysqldb','2027-01-01T00:00:00.000Z','Demo\x20license','getUuid','License','find','defaults','then','catch','uuid','data1','license','License\x20key\x20value\x20not\x20found','data2','split','parse','machineUuid','gray','deadline','days','format','grayReason','disabled'];(function(_0x1d0045,_0x13a6c9){var _0x358567=function(_0x1c965){while(--_0x1c965){_0x1d0045['push'](_0x1d0045['shift']());}};_0x358567(++_0x13a6c9);}(_0x2ce3,0x11e));var _0x32ce=function(_0x24dec8,_0x59cd24){_0x24dec8=_0x24dec8-0x0;var _0x321ded=_0x2ce3[_0x24dec8];return _0x321ded;};'use strict';var util=require(_0x32ce('0x0'));var _=require(_0x32ce('0x1'));var moment=require(_0x32ce('0x2'));var BPromise=require(_0x32ce('0x3'));var hardware=require(_0x32ce('0x4'));var encryptor=require(_0x32ce('0x5'));var db=require(_0x32ce('0x6'))['db'];const demoLicense={'demo':!![],'agents':0x2,'telephones':0x0,'users':0x1,'expiration':_0x32ce('0x7'),'chat':![],'mail':![],'fax':![],'messaging':![],'whatsapp':![],'cm':![],'dialer':![],'jscripty':![],'openchannel':![],'callysquare':0x2,'webrtc':![],'jaws':![],'custom':![],'description':_0x32ce('0x8'),'machineUuid':hardware[_0x32ce('0x9')](),'virtual':0x0,'voice':!![],'screenrecording':![],'preferred':![],'ai':![]};const breakingLicense={'breaking':!![],'demo':!![],'agents':0x2,'telephones':0x0,'users':0x1,'expiration':_0x32ce('0x7'),'chat':![],'mail':![],'fax':![],'messaging':![],'whatsapp':![],'cm':![],'dialer':![],'jscripty':![],'openchannel':![],'callysquare':0x2,'webrtc':![],'jaws':![],'custom':![],'update':![],'description':'Breaking\x20license','machineUuid':hardware[_0x32ce('0x9')](),'virtual':0x0,'voice':!![],'screenrecording':![],'preferred':![],'ai':![]};function getLicense(_0x2800a7){return new BPromise(function(_0x420a37,_0x57e255){return db[_0x32ce('0xa')][_0x32ce('0xb')](_[_0x32ce('0xc')](_0x2800a7,{'raw':!![],'where':{'id':0x1}}))[_0x32ce('0xd')](function(_0x2f1fa8){return checkLicense(_0x2f1fa8,null);})[_0x32ce('0xd')](function(_0x32e6b3){_0x420a37(_0x32e6b3);return;})[_0x32ce('0xe')](function(_0x1df7ec){_0x57e255(_0x1df7ec);});});}function checkLicense(_0x1c762c,_0x1b8754){if(!_0x1c762c){demoLicense[_0x32ce('0xf')]=_0x1c762c[_0x32ce('0x10')];return demoLicense;}try{var _0x38b75e=_0x1b8754||_0x1c762c[_0x32ce('0x11')];if(_['isEmpty'](_0x38b75e)){throw new Error(_0x32ce('0x12'));}var _0x16964a=_0x1c762c[_0x32ce('0x10')];var _0x17c5b9=_0x1c762c[_0x32ce('0x13')];var _0x39e3bf=_0x16964a['split']('-')[0x4];var _0x421dff=_0x16964a[_0x32ce('0x14')]('-')[0x0];var _0x34c779=encryptor['decryptString'](_0x38b75e,util['format']('%s:%s:%s',_0x39e3bf,_0x16964a,_0x421dff));var _0x224488=JSON[_0x32ce('0x15')](_0x34c779);_0x224488['demo']=![];_0x224488[_0x32ce('0xf')]=_0x16964a;_0x224488[_0x32ce('0x16')]=hardware[_0x32ce('0x9')]();if(_0x17c5b9){var _0x157737=encryptor['decryptString'](_0x17c5b9);_0x224488[_0x32ce('0x17')]=_0x157737;_0x224488[_0x32ce('0x18')]=moment(_0x157737)['add'](0x7,_0x32ce('0x19'))[_0x32ce('0x1a')]();_0x224488[_0x32ce('0x1b')]=_0x224488['uuid']!=_0x224488[_0x32ce('0x16')]?'changed':_0x32ce('0x1c');}return _0x224488;}catch(_0x2388b8){breakingLicense['uuid']=_0x1c762c[_0x32ce('0x10')];breakingLicense[_0x32ce('0x1d')]=_0x2388b8['message'];return breakingLicense;}}function getLimits(){return new BPromise(function(_0x2cb317,_0xdeccb){getLicense()[_0x32ce('0xd')](function(_0x3ae28f){return db[_0x32ce('0x1e')][_0x32ce('0x1f')]({'attributes':[_0x32ce('0x20'),[db[_0x32ce('0x21')]['fn'](_0x32ce('0x22'),db[_0x32ce('0x21')][_0x32ce('0x23')](_0x32ce('0x20'))),_0x32ce('0x24')]],'group':'role','where':{'role':{'$or':[_0x32ce('0x25'),_0x32ce('0x26'),_0x32ce('0x27')]}},'raw':!![]})[_0x32ce('0xd')](function(_0xcf9948){var _0x47b907={'user':_0x3ae28f[_0x32ce('0x28')]||0x0,'telephone':_0x3ae28f[_0x32ce('0x29')]||0x0};_0xcf9948[_0x32ce('0x2a')](function(_0x27cb1a){var _0x478cd8=_0x27cb1a['role']===_0x32ce('0x25')?_0x32ce('0x26'):_0x27cb1a['role'];_0x47b907[_0x478cd8]-=_0x27cb1a[_0x32ce('0x24')];if(_0x47b907[_0x478cd8]<0x0)_0x47b907[_0x478cd8]=0x0;});_0x2cb317(_0x47b907);return;});})[_0x32ce('0xe')](function(_0x36c92f){_0xdeccb(_0x36c92f);});});}function checkUserLimits(_0x253e10){return new BPromise(function(_0x5a16d8,_0x330e8d){getLimits()['then'](function(_0x260bac){var _0x298d09=_[_0x32ce('0x2b')](_['countBy'](_0x253e10,'role'),[_0x32ce('0x25'),'user',_0x32ce('0x27')]);var _0x4dc02f=(_0x298d09[_0x32ce('0x25')]||0x0)+(_0x298d09[_0x32ce('0x26')]||0x0);var _0x1b5976=_0x298d09[_0x32ce('0x27')]||0x0;if(_0x4dc02f>_0x260bac[_0x32ce('0x26')])return _0x330e8d(_0x32ce('0x2c'));if(_0x1b5976>_0x260bac[_0x32ce('0x27')])return _0x330e8d('License\x20limit\x20reached\x20for\x20telephones');return _0x5a16d8();})['catch'](function(_0x119502){_0x330e8d(_0x119502);});});}module['exports']={'checkLicense':checkLicense,'checkUserLimits':checkUserLimits,'getLicense':getLicense};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x236c=['secret','exports','myappanuglar-secret','app-id'];(function(_0x20cf8a,_0x44cd6b){var _0x54e165=function(_0xcce1d0){while(--_0xcce1d0){_0x20cf8a['push'](_0x20cf8a['shift']());}};_0x54e165(++_0x44cd6b);}(_0x236c,0x155));var _0xc236=function(_0xebfe65,_0xb6d056){_0xebfe65=_0xebfe65-0x0;var _0x1387ce=_0x236c[_0xebfe65];return _0x1387ce;};'use strict';module[_0xc236('0x0')]={'DOMAIN':'http://localhost:9000','SESSION_SECRET':_0xc236('0x1'),'GOOGLE_ID':_0xc236('0x2'),'GOOGLE_SECRET':_0xc236('0x3'),'DEBUG':''};
\ No newline at end of file
+var _0x065e=['secret','exports'];(function(_0x2dafbe,_0x5d04de){var _0x58a45a=function(_0x50ac96){while(--_0x50ac96){_0x2dafbe['push'](_0x2dafbe['shift']());}};_0x58a45a(++_0x5d04de);}(_0x065e,0x1a7));var _0xe065=function(_0x4f467a,_0x3aa43f){_0x4f467a=_0x4f467a-0x0;var _0x278a26=_0x065e[_0x4f467a];return _0x278a26;};'use strict';module[_0xe065('0x0')]={'DOMAIN':'http://localhost:9000','SESSION_SECRET':'myappanuglar-secret','GOOGLE_ID':'app-id','GOOGLE_SECRET':_0xe065('0x1'),'DEBUG':''};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xee2b=['}}}','[%s]\x20[%s]\x20%s\x20-\x20%s','level','toUpperCase','message','exports','Logger','transports','File','%s-%s','error','info','env','debugLevel','winston','util','path','INFO','join','log','xcally','format','%s-%s.log','replace','{{{'];(function(_0xa911e,_0x1a9f9a){var _0x28bd6f=function(_0x3b15ad){while(--_0x3b15ad){_0xa911e['push'](_0xa911e['shift']());}};_0x28bd6f(++_0x1a9f9a);}(_0xee2b,0x108));var _0xbee2=function(_0x43289b,_0x1a9d62){_0x43289b=_0x43289b-0x0;var _0x1b329b=_0xee2b[_0x43289b];return _0x1b329b;};'use strict';var moment=require('moment');var winston=require(_0xbee2('0x0'));var util=require(_0xbee2('0x1'));var path=require(_0xbee2('0x2'));var debugLevel=_0xbee2('0x3');function filename(_0x3aef96,_0x3b8489){return path[_0xbee2('0x4')]('/var',_0xbee2('0x5'),_0xbee2('0x6'),util[_0xbee2('0x7')](_0xbee2('0x8'),_0x3aef96,_0x3b8489));}function formatter(_0xa7cdd7,_0x582e13){_0x582e13['message']=_0x582e13['message'][_0xbee2('0x9')](/@@{/g,_0xbee2('0xa'))[_0xbee2('0x9')](/}@@/g,_0xbee2('0xb'))['replace'](/@{/g,'{{')[_0xbee2('0x9')](/}@/g,'}}');return util[_0xbee2('0x7')](_0xbee2('0xc'),moment()[_0xbee2('0x7')]('YYYY-MM-DD\x20HH:mm:ss'),_0x582e13[_0xbee2('0xd')][_0xbee2('0xe')](),_0xa7cdd7,_0x582e13[_0xbee2('0xf')]);}module[_0xbee2('0x10')]=function(_0x4f9dd9){return new winston[(_0xbee2('0x11'))]({'transports':[new winston[(_0xbee2('0x12'))][(_0xbee2('0x13'))]({'name':util[_0xbee2('0x7')](_0xbee2('0x14'),_0x4f9dd9,_0xbee2('0x15')),'filename':filename(_0x4f9dd9,_0xbee2('0x15')),'level':_0xbee2('0x15'),'json':![],'maxsize':0xa00000,'maxFiles':0xa,'tailable':!![],'formatter':function(_0xb16e78){return formatter(_0x4f9dd9,_0xb16e78);}}),new winston[(_0xbee2('0x12'))][(_0xbee2('0x13'))]({'name':util['format'](_0xbee2('0x14'),_0x4f9dd9,'info'),'filename':filename(_0x4f9dd9,'info'),'level':_0xbee2('0x16'),'json':![],'maxsize':0xa00000,'maxFiles':0xa,'tailable':!![],'formatter':function(_0x45cae2){return formatter(_0x4f9dd9,_0x45cae2);}}),new winston[(_0xbee2('0x12'))]['Console']({'level':process[_0xbee2('0x17')][_0xbee2('0x18')]||debugLevel,'json':![],'formatter':function(_0x399bde){return formatter(_0x4f9dd9,_0x399bde);}})]});};
\ No newline at end of file
+var _0x7e58=['env','moment','winston','path','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','transports','File','%s-%s','error','info','Console'];(function(_0x4a7d7e,_0x16c8d0){var _0x5c6ab1=function(_0x1765dc){while(--_0x1765dc){_0x4a7d7e['push'](_0x4a7d7e['shift']());}};_0x5c6ab1(++_0x16c8d0);}(_0x7e58,0x178));var _0x87e5=function(_0x3e5d1c,_0x357f1a){_0x3e5d1c=_0x3e5d1c-0x0;var _0x3f1d1f=_0x7e58[_0x3e5d1c];return _0x3f1d1f;};'use strict';var moment=require(_0x87e5('0x0'));var winston=require(_0x87e5('0x1'));var util=require('util');var path=require(_0x87e5('0x2'));var debugLevel='INFO';function filename(_0x3efeca,_0x4f69ff){return path[_0x87e5('0x3')]('/var',_0x87e5('0x4'),_0x87e5('0x5'),util[_0x87e5('0x6')](_0x87e5('0x7'),_0x3efeca,_0x4f69ff));}function formatter(_0x251ebb,_0x3164fc){_0x3164fc[_0x87e5('0x8')]=_0x3164fc[_0x87e5('0x8')][_0x87e5('0x9')](/@@{/g,_0x87e5('0xa'))[_0x87e5('0x9')](/}@@/g,_0x87e5('0xb'))[_0x87e5('0x9')](/@{/g,'{{')['replace'](/}@/g,'}}');return util[_0x87e5('0x6')](_0x87e5('0xc'),moment()[_0x87e5('0x6')](_0x87e5('0xd')),_0x3164fc[_0x87e5('0xe')][_0x87e5('0xf')](),_0x251ebb,_0x3164fc[_0x87e5('0x8')]);}module[_0x87e5('0x10')]=function(_0x53df8c){return new winston[(_0x87e5('0x11'))]({'transports':[new winston[(_0x87e5('0x12'))][(_0x87e5('0x13'))]({'name':util[_0x87e5('0x6')](_0x87e5('0x14'),_0x53df8c,_0x87e5('0x15')),'filename':filename(_0x53df8c,'error'),'level':_0x87e5('0x15'),'json':![],'maxsize':0xa00000,'maxFiles':0xa,'tailable':!![],'formatter':function(_0x4ddd75){return formatter(_0x53df8c,_0x4ddd75);}}),new winston['transports'][(_0x87e5('0x13'))]({'name':util[_0x87e5('0x6')](_0x87e5('0x14'),_0x53df8c,_0x87e5('0x16')),'filename':filename(_0x53df8c,_0x87e5('0x16')),'level':_0x87e5('0x16'),'json':![],'maxsize':0xa00000,'maxFiles':0xa,'tailable':!![],'formatter':function(_0x81ff8e){return formatter(_0x53df8c,_0x81ff8e);}}),new winston[(_0x87e5('0x12'))][(_0x87e5('0x17'))]({'level':process[_0x87e5('0x18')]['debugLevel']||debugLevel,'json':![],'formatter':function(_0x37b764){return formatter(_0x53df8c,_0x37b764);}})]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3444=['email','../../services/email/index.js','routing','../../services/routing/index.js','xdr','../../services/xdr/index.js','path','express','join','../../services/express/index.js','ami','../../services/ami/index.js','../../services/agi/index.js'];(function(_0x7728f0,_0x3c406a){var _0x1b1d71=function(_0x43fc71){while(--_0x43fc71){_0x7728f0['push'](_0x7728f0['shift']());}};_0x1b1d71(++_0x3c406a);}(_0x3444,0x13e));var _0x4344=function(_0x5eca68,_0xf66989){_0x5eca68=_0x5eca68-0x0;var _0xd0a8f2=_0x3444[_0x5eca68];return _0xd0a8f2;};'use strict';var path=require(_0x4344('0x0'));var os=require('os');var config={'apps':[{'name':_0x4344('0x1'),'script':path[_0x4344('0x2')](__dirname,_0x4344('0x3'))},{'name':_0x4344('0x4'),'script':path[_0x4344('0x2')](__dirname,_0x4344('0x5'))},{'name':'agi','script':path[_0x4344('0x2')](__dirname,_0x4344('0x6'))},{'name':_0x4344('0x7'),'script':path['join'](__dirname,_0x4344('0x8'))},{'name':_0x4344('0x9'),'script':path[_0x4344('0x2')](__dirname,_0x4344('0xa'))},{'name':_0x4344('0xb'),'script':path['join'](__dirname,_0x4344('0xc'))}]};module['exports']=config;
\ No newline at end of file
+var _0x0bca=['../../services/routing/index.js','xdr','../../services/xdr/index.js','exports','express','join','../../services/express/index.js','ami','../../services/ami/index.js','email','../../services/email/index.js','routing'];(function(_0x2d2c16,_0x4e88b6){var _0x53f2fb=function(_0x6b6dac){while(--_0x6b6dac){_0x2d2c16['push'](_0x2d2c16['shift']());}};_0x53f2fb(++_0x4e88b6);}(_0x0bca,0x19c));var _0xa0bc=function(_0x7d2272,_0x41f365){_0x7d2272=_0x7d2272-0x0;var _0x5bc56e=_0x0bca[_0x7d2272];return _0x5bc56e;};'use strict';var path=require('path');var os=require('os');var config={'apps':[{'name':_0xa0bc('0x0'),'script':path[_0xa0bc('0x1')](__dirname,_0xa0bc('0x2'))},{'name':_0xa0bc('0x3'),'script':path[_0xa0bc('0x1')](__dirname,_0xa0bc('0x4'))},{'name':'agi','script':path[_0xa0bc('0x1')](__dirname,'../../services/agi/index.js')},{'name':_0xa0bc('0x5'),'script':path['join'](__dirname,_0xa0bc('0x6'))},{'name':_0xa0bc('0x7'),'script':path[_0xa0bc('0x1')](__dirname,_0xa0bc('0x8'))},{'name':_0xa0bc('0x9'),'script':path[_0xa0bc('0x1')](__dirname,_0xa0bc('0xa'))}]};module[_0xa0bc('0xb')]=config;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7ad6=['disconnect','restart','list','describe','delete','dump','saved','pm2','bluebird','./config','connected','start','then'];(function(_0xb1eda4,_0x11c9a5){var _0x412edd=function(_0x247462){while(--_0x247462){_0xb1eda4['push'](_0xb1eda4['shift']());}};_0x412edd(++_0x11c9a5);}(_0x7ad6,0x1a7));var _0x67ad=function(_0xbca1b1,_0x33f0ce){_0xbca1b1=_0xbca1b1-0x0;var _0x4e1686=_0x7ad6[_0xbca1b1];return _0x4e1686;};'use strict';var pm2=require(_0x67ad('0x0'));var BPromise=require(_0x67ad('0x1'));var config=require(_0x67ad('0x2'));function connect(){return new BPromise(function(_0x1c6b11,_0x261ec9){return pm2['connect'](function(_0x4b6608){if(_0x4b6608){return _0x261ec9(_0x4b6608);}return _0x1c6b11(_0x67ad('0x3'));});});};exports[_0x67ad('0x4')]=function(_0x48e160){return connect()[_0x67ad('0x5')](function(){return new BPromise(function(_0x57efd7,_0x478bcb){return pm2[_0x67ad('0x4')](_0x48e160,function(_0x576125,_0x274ec0){if(_0x576125){return _0x478bcb(_0x576125);}pm2[_0x67ad('0x6')]();return _0x57efd7(_0x274ec0);});});});};exports['stop']=function(_0x2faca0){return connect()[_0x67ad('0x5')](function(){return new BPromise(function(_0x1c8677,_0x103d1f){return pm2['stop'](_0x2faca0,function(_0x4a9a31,_0x1aecfb){if(_0x4a9a31){return _0x103d1f(_0x4a9a31);}pm2[_0x67ad('0x6')]();return _0x1c8677(_0x1aecfb);});});});};exports[_0x67ad('0x7')]=function(_0x581191){return connect()[_0x67ad('0x5')](function(){return new BPromise(function(_0x481e7d,_0x4ba491){return pm2['restart'](_0x581191,function(_0x37ed9a,_0x16e6c6){if(_0x37ed9a){return _0x4ba491(_0x37ed9a);}pm2[_0x67ad('0x6')]();return _0x481e7d(_0x16e6c6);});});});};exports[_0x67ad('0x8')]=function(){return connect()[_0x67ad('0x5')](function(){return new BPromise(function(_0x571ac2,_0x984364){return pm2[_0x67ad('0x8')](function(_0x217f70,_0x3fbb1f){if(_0x217f70){return _0x984364(_0x217f70);}pm2[_0x67ad('0x6')]();return _0x571ac2(_0x3fbb1f);});});});};exports[_0x67ad('0x9')]=function(_0x139001){return connect()[_0x67ad('0x5')](function(){return new BPromise(function(_0x61fc34,_0x182aa3){return pm2[_0x67ad('0x9')](_0x139001,function(_0xcacddf,_0x31473d){if(_0xcacddf){return _0x182aa3(_0xcacddf);}pm2[_0x67ad('0x6')]();return _0x61fc34(_0x31473d);});});});};exports[_0x67ad('0xa')]=function(_0x574667){return connect()[_0x67ad('0x5')](function(){return new BPromise(function(_0x47b606,_0x29df87){return pm2[_0x67ad('0xa')](_0x574667,function(_0x52c802,_0x212750){if(_0x52c802){return _0x29df87(_0x52c802);}pm2[_0x67ad('0x6')]();return _0x47b606(_0x212750);});});});};exports[_0x67ad('0xb')]=function(){return connect()[_0x67ad('0x5')](function(){return new BPromise(function(_0x220a1c,_0x344490){return pm2[_0x67ad('0xb')](function(_0x20637e){if(_0x20637e){return _0x344490(_0x20637e);}return _0x220a1c(_0x67ad('0xc'));});});});};
\ No newline at end of file
+var _0xaefa=['connect','connected','start','then','stop','disconnect','restart','list','describe','delete','dump','saved','pm2','./config'];(function(_0x2ca657,_0x13b41b){var _0x374b8b=function(_0x3896ad){while(--_0x3896ad){_0x2ca657['push'](_0x2ca657['shift']());}};_0x374b8b(++_0x13b41b);}(_0xaefa,0x140));var _0xaaef=function(_0xf30b03,_0x332c4c){_0xf30b03=_0xf30b03-0x0;var _0x194682=_0xaefa[_0xf30b03];return _0x194682;};'use strict';var pm2=require(_0xaaef('0x0'));var BPromise=require('bluebird');var config=require(_0xaaef('0x1'));function connect(){return new BPromise(function(_0xb5464a,_0x383655){return pm2[_0xaaef('0x2')](function(_0x132a30){if(_0x132a30){return _0x383655(_0x132a30);}return _0xb5464a(_0xaaef('0x3'));});});};exports[_0xaaef('0x4')]=function(_0x42e5c9){return connect()[_0xaaef('0x5')](function(){return new BPromise(function(_0x36623b,_0x158112){return pm2[_0xaaef('0x4')](_0x42e5c9,function(_0x25ac0e,_0x5e5ce9){if(_0x25ac0e){return _0x158112(_0x25ac0e);}pm2['disconnect']();return _0x36623b(_0x5e5ce9);});});});};exports[_0xaaef('0x6')]=function(_0x34c099){return connect()[_0xaaef('0x5')](function(){return new BPromise(function(_0x1aaac0,_0x44eae7){return pm2[_0xaaef('0x6')](_0x34c099,function(_0x302da0,_0x1269f9){if(_0x302da0){return _0x44eae7(_0x302da0);}pm2[_0xaaef('0x7')]();return _0x1aaac0(_0x1269f9);});});});};exports[_0xaaef('0x8')]=function(_0x48450b){return connect()['then'](function(){return new BPromise(function(_0x51491b,_0x4acb4f){return pm2['restart'](_0x48450b,function(_0x1ee137,_0x13679f){if(_0x1ee137){return _0x4acb4f(_0x1ee137);}pm2[_0xaaef('0x7')]();return _0x51491b(_0x13679f);});});});};exports['list']=function(){return connect()[_0xaaef('0x5')](function(){return new BPromise(function(_0x4ce2af,_0x45ecb3){return pm2[_0xaaef('0x9')](function(_0x109243,_0x3eb9d6){if(_0x109243){return _0x45ecb3(_0x109243);}pm2['disconnect']();return _0x4ce2af(_0x3eb9d6);});});});};exports['describe']=function(_0x4dbc5c){return connect()['then'](function(){return new BPromise(function(_0x26e47b,_0x3bb105){return pm2[_0xaaef('0xa')](_0x4dbc5c,function(_0x1eb2ad,_0x4bd34a){if(_0x1eb2ad){return _0x3bb105(_0x1eb2ad);}pm2[_0xaaef('0x7')]();return _0x26e47b(_0x4bd34a);});});});};exports[_0xaaef('0xb')]=function(_0x588704){return connect()['then'](function(){return new BPromise(function(_0x9879c1,_0x1f6c9d){return pm2[_0xaaef('0xb')](_0x588704,function(_0x2799cc,_0x190212){if(_0x2799cc){return _0x1f6c9d(_0x2799cc);}pm2['disconnect']();return _0x9879c1(_0x190212);});});});};exports[_0xaaef('0xc')]=function(){return connect()[_0xaaef('0x5')](function(){return new BPromise(function(_0x1c2c7c,_0x2e2780){return pm2[_0xaaef('0xc')](function(_0x14f57c){if(_0x14f57c){return _0x2e2780(_0x14f57c);}return _0x1c2c7c(_0xaaef('0xd'));});});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xab1f=['chatTimeout','then','ChatInteraction','findAll','subtract','minutes','length','info','join','update','system','timeout','YYYY-MM-DD\x20HH:mm:ss','[CHAT]\x20Sending\x20updates\x20for\x20interactions:','emit','chatInteraction:update','error','[CHAT]\x20Error\x20closing\x20interactions','inspect','lodash','moment','ioredis','util','../../config/environment','../../mysqldb','../logger','schedule','defaults','redis','localhost','Setting','find'];(function(_0x710f32,_0x4dbd37){var _0x29177f=function(_0x2cfec6){while(--_0x2cfec6){_0x710f32['push'](_0x710f32['shift']());}};_0x29177f(++_0x4dbd37);}(_0xab1f,0x1f3));var _0xfab1=function(_0x3e1936,_0x352940){_0x3e1936=_0x3e1936-0x0;var _0x163d07=_0xab1f[_0x3e1936];return _0x163d07;};'use strict';var _=require(_0xfab1('0x0'));var moment=require(_0xfab1('0x1'));var Redis=require(_0xfab1('0x2'));var util=require(_0xfab1('0x3'));var config=require(_0xfab1('0x4'));var db=require(_0xfab1('0x5'))['db'];var logger=require(_0xfab1('0x6'))(_0xfab1('0x7'));config['redis']=_[_0xfab1('0x8')](config[_0xfab1('0x9')],{'host':_0xfab1('0xa'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0xfab1('0x9')]));function closeInteractions(){var _0x20c253=0x0;var _0x56df2d=[];return db[_0xfab1('0xb')][_0xfab1('0xc')]({'raw':!![],'attributes':['id',_0xfab1('0xd')],'where':{'id':0x1}})[_0xfab1('0xe')](function(_0x3dbfe4){_0x20c253=_0x3dbfe4[_0xfab1('0xd')];if(_0x20c253){return db[_0xfab1('0xf')][_0xfab1('0x10')]({'raw':!![],'attributes':['id','lastMsgAt'],'where':{'closed':![],'lastMsgAt':{'$lt':moment()[_0xfab1('0x11')](_0x3dbfe4['chatTimeout'],_0xfab1('0x12'))}}});}else{return[];}})[_0xfab1('0xe')](function(_0x211a7c){if(_0x211a7c&&_0x211a7c[_0xfab1('0x13')]){_0x56df2d=_['map'](_0x211a7c||[],'id');logger[_0xfab1('0x14')]('[CHAT]\x20Interactions\x20to\x20close:',_0x56df2d[_0xfab1('0x15')]());return db[_0xfab1('0xf')][_0xfab1('0x16')]({'closeReason':_0xfab1('0x17'),'disposition':_0xfab1('0x18'),'closed':!![],'closedAt':moment()['format'](_0xfab1('0x19'))},{'where':{'id':_0x56df2d}});}})[_0xfab1('0xe')](function(){if(_0x56df2d&&_0x56df2d[_0xfab1('0x13')]){logger['info'](_0xfab1('0x1a'),_0x56df2d[_0xfab1('0x15')]());for(var _0x5b035a=0x0;_0x5b035a<_0x56df2d[_0xfab1('0x13')];_0x5b035a++){io[_0xfab1('0x1b')](_0xfab1('0x1c'),{'id':_0x56df2d[_0x5b035a],'closed':!![]});}}})['catch'](function(_0x50ef85){logger[_0xfab1('0x1d')](_0xfab1('0x1e'),_0x50ef85?util[_0xfab1('0x1f')](_0x50ef85,{'showHidden':![],'depth':null}):'');});}exports['start']=function(){setInterval(function(){return closeInteractions();},0x3c*0x3e8);return closeInteractions();};
\ No newline at end of file
+var _0x96aa=['lastMsgAt','subtract','minutes','map','info','[CHAT]\x20Interactions\x20to\x20close:','join','update','system','timeout','format','YYYY-MM-DD\x20HH:mm:ss','emit','chatInteraction:update','catch','error','[CHAT]\x20Error\x20closing\x20interactions','start','lodash','moment','util','../../config/environment','../logger','schedule','redis','localhost','socket.io-emitter','Setting','chatTimeout','then','ChatInteraction','findAll'];(function(_0x2ea1d4,_0x34f914){var _0x53ddb7=function(_0x496e68){while(--_0x496e68){_0x2ea1d4['push'](_0x2ea1d4['shift']());}};_0x53ddb7(++_0x34f914);}(_0x96aa,0x72));var _0xa96a=function(_0x307085,_0x4e02e9){_0x307085=_0x307085-0x0;var _0x2e43dd=_0x96aa[_0x307085];return _0x2e43dd;};'use strict';var _=require(_0xa96a('0x0'));var moment=require(_0xa96a('0x1'));var Redis=require('ioredis');var util=require(_0xa96a('0x2'));var config=require(_0xa96a('0x3'));var db=require('../../mysqldb')['db'];var logger=require(_0xa96a('0x4'))(_0xa96a('0x5'));config[_0xa96a('0x6')]=_['defaults'](config[_0xa96a('0x6')],{'host':_0xa96a('0x7'),'port':0x18eb});var io=require(_0xa96a('0x8'))(new Redis(config[_0xa96a('0x6')]));function closeInteractions(){var _0x5c74dc=0x0;var _0x375998=[];return db[_0xa96a('0x9')]['find']({'raw':!![],'attributes':['id',_0xa96a('0xa')],'where':{'id':0x1}})[_0xa96a('0xb')](function(_0x125be7){_0x5c74dc=_0x125be7[_0xa96a('0xa')];if(_0x5c74dc){return db[_0xa96a('0xc')][_0xa96a('0xd')]({'raw':!![],'attributes':['id',_0xa96a('0xe')],'where':{'closed':![],'lastMsgAt':{'$lt':moment()[_0xa96a('0xf')](_0x125be7['chatTimeout'],_0xa96a('0x10'))}}});}else{return[];}})[_0xa96a('0xb')](function(_0x5e626e){if(_0x5e626e&&_0x5e626e['length']){_0x375998=_[_0xa96a('0x11')](_0x5e626e||[],'id');logger[_0xa96a('0x12')](_0xa96a('0x13'),_0x375998[_0xa96a('0x14')]());return db[_0xa96a('0xc')][_0xa96a('0x15')]({'closeReason':_0xa96a('0x16'),'disposition':_0xa96a('0x17'),'closed':!![],'closedAt':moment()[_0xa96a('0x18')](_0xa96a('0x19'))},{'where':{'id':_0x375998}});}})[_0xa96a('0xb')](function(){if(_0x375998&&_0x375998['length']){logger['info']('[CHAT]\x20Sending\x20updates\x20for\x20interactions:',_0x375998[_0xa96a('0x14')]());for(var _0x169b0d=0x0;_0x169b0d<_0x375998['length'];_0x169b0d++){io[_0xa96a('0x1a')](_0xa96a('0x1b'),{'id':_0x375998[_0x169b0d],'closed':!![]});}}})[_0xa96a('0x1c')](function(_0x362b3b){logger[_0xa96a('0x1d')](_0xa96a('0x1e'),_0x362b3b?util['inspect'](_0x362b3b,{'showHidden':![],'depth':null}):'');});}exports[_0xa96a('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 _0x1259=['join','../../files/reports','savename','%s.%s','extname','zip','existsSync','status','Sent','message','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','then','error','error\x20mail','stringify','email\x20sent','catch','data','isNil','subtractNumber\x20null\x20or\x20undefined','subtractUnit\x20null\x20or\x20undefined','subtract','YYYY-MM-DD\x20HH:mm:ss','scheduled','output','DefaultReportId','CustomReportId','exec\x20custom\x20report\x20id:%s','runReport','Schedule','findAll','MailServerOut','jobs','keyBy','toString','difference','intersection','length','exists','index','my\x20id','run\x20job','cron','isBetween','startAt','add','start','add\x20cron','stop','stop\x20cron','active','update','update\x20cron','run','moment','jayson/promise','bluebird','../logger','schedule','../../api/analyticDefaultReport/analyticDefaultReport.controller','client','http','info','Try\x20to\x20send\x20a\x20mail\x20to','email','Smtp','MailAccount','host','port','secure','authentication','auth','user','format','\x22%s\x22\x20<%s>','name','bcc','Report\x20%s\x20last\x20%s\x20%s','subtractNumber','subtractUnit'];(function(_0x3a0bd6,_0x1ed4ea){var _0x24656b=function(_0x156d1b){while(--_0x156d1b){_0x3a0bd6['push'](_0x3a0bd6['shift']());}};_0x24656b(++_0x1ed4ea);}(_0x1259,0x90));var _0x9125=function(_0x4b19e3,_0x2b63c3){_0x4b19e3=_0x4b19e3-0x0;var _0x2ce22a=_0x1259[_0x4b19e3];return _0x2ce22a;};'use strict';var fs=require('fs');var util=require('util');var path=require('path');var _=require('lodash');var moment=require(_0x9125('0x0'));var CronJobManager=require('cron-job-manager');var jayson=require(_0x9125('0x1'));var BPromise=require(_0x9125('0x2'));var logger=require(_0x9125('0x3'))(_0x9125('0x4'));var db=require('../../mysqldb')['db'];var analyticCustomReportController=require('../../api/analyticCustomReport/analyticCustomReport.controller');var analyticDefaultReportController=require(_0x9125('0x5'));var client=jayson[_0x9125('0x6')][_0x9125('0x7')]({'port':0x232b});var manager=new CronJobManager();function handleSendEmail(_0x44e2e7,_0x4101ba){return function(){logger[_0x9125('0x8')](_0x9125('0x9'),_0x44e2e7[_0x9125('0xa')]);var _0x2386d3=!![];var _0x41c138={'tls':{'rejectUnauthorized':![]}};if(_0x44e2e7['MailAccount'][_0x9125('0xb')]['service']){_0x41c138['service']=_0x44e2e7[_0x9125('0xc')][_0x9125('0xb')]['service'];}else{_0x41c138[_0x9125('0xd')]=_0x44e2e7[_0x9125('0xc')][_0x9125('0xb')][_0x9125('0xd')];_0x41c138['port']=_0x44e2e7[_0x9125('0xc')][_0x9125('0xb')][_0x9125('0xe')];_0x41c138[_0x9125('0xf')]=_0x44e2e7[_0x9125('0xc')][_0x9125('0xb')][_0x9125('0xf')];}if(_0x44e2e7['MailAccount']['Smtp'][_0x9125('0x10')]){_0x41c138[_0x9125('0x11')]={'user':_0x44e2e7[_0x9125('0xc')][_0x9125('0xb')][_0x9125('0x12')],'pass':_0x44e2e7['MailAccount'][_0x9125('0xb')]['pass']};}var _0xa34d78={'account':_0x41c138,'message':{'from':util[_0x9125('0x13')](_0x9125('0x14'),_0x44e2e7[_0x9125('0xc')][_0x9125('0x15')],_0x44e2e7['MailAccount'][_0x9125('0xa')]||_0x44e2e7[_0x9125('0xc')]['Smtp'][_0x9125('0x12')]),'to':_0x44e2e7['email'],'cc':_0x44e2e7['cc'],'bcc':_0x44e2e7[_0x9125('0x16')],'subject':util['format'](_0x9125('0x17'),_0x4101ba['name'],_0x44e2e7[_0x9125('0x18')],_0x44e2e7[_0x9125('0x19')])}};var _0xeca671=path[_0x9125('0x1a')](__dirname,_0x9125('0x1b'));var _0x4e605f=_0x4101ba[_0x9125('0x1c')];var _0xd0ebc6=util['format'](_0x9125('0x1d'),path['basename'](_0x4101ba[_0x9125('0x1c')],path[_0x9125('0x1e')](_0x4101ba[_0x9125('0x1c')])),_0x9125('0x1f'));var _0x5affe7=path[_0x9125('0x1a')](_0xeca671,_0x4e605f);var _0x32bf4d=path[_0x9125('0x1a')](_0xeca671,_0xd0ebc6);if(fs[_0x9125('0x20')](_0x5affe7)){_0x4101ba[_0x9125('0x21')]=_0x9125('0x22');_0xa34d78[_0x9125('0x23')][_0x9125('0x24')]=[{'filename':_0x4e605f,'path':_0x5affe7}];_0xa34d78[_0x9125('0x23')][_0x9125('0x25')]=util['format']('Info\x20report:\x0a%s\x0aPlease\x20see\x20the\x20attachments\x0aThis\x20is\x20an\x20automatically\x20generated\x20email\x20–\x20please\x20do\x20not\x20reply\x20to\x20it.\x0a\x0a',JSON['stringify'](_0x4101ba,null,0x2));}else if(fs[_0x9125('0x20')](_0x32bf4d)){_0x4101ba[_0x9125('0x21')]=_0x9125('0x22');_0xa34d78[_0x9125('0x23')][_0x9125('0x24')]=[{'filename':_0xd0ebc6,'path':_0x32bf4d}];}else{_0xa34d78[_0x9125('0x23')][_0x9125('0x25')]=_0x9125('0x26');if(!_0x44e2e7[_0x9125('0x27')]){_0x2386d3=![];logger[_0x9125('0x8')](_0x9125('0x28'));}}if(_0x2386d3){return client['request'](_0x9125('0x29'),_0xa34d78)[_0x9125('0x2a')](function(_0x97604){if(_0x97604[_0x9125('0x2b')]){return logger[_0x9125('0x2b')](_0x9125('0x2c'),JSON[_0x9125('0x2d')](_0x97604));}return logger[_0x9125('0x8')](_0x9125('0x2e'));})[_0x9125('0x2f')](function(_0x4b9f89){return logger['error'](_0x9125('0x2c'),JSON[_0x9125('0x2d')](_0x4b9f89));});}};}function handleError(){return function(_0x482820){return logger[_0x9125('0x2b')](JSON[_0x9125('0x2d')](_0x482820));};}function handleResult(_0x232bc6){return function(_0x26f9e3){logger[_0x9125('0x8')](_0x9125('0x30'),JSON['stringify'](_0x26f9e3));if(_0x232bc6['MailAccount']&&_0x232bc6[_0x9125('0xc')]['Smtp']&&!_[_0x9125('0x31')](_0x232bc6[_0x9125('0xa')])){setTimeout(handleSendEmail(_0x232bc6,_0x26f9e3),0x3c*0x3e8);}};}function handleJob(_0x531a99){return function(){try{if(_[_0x9125('0x31')](_0x531a99[_0x9125('0x18')])){return logger[_0x9125('0x8')](_0x9125('0x32'));}if(_['isNil'](_0x531a99['subtractUnit'])){return logger[_0x9125('0x8')](_0x9125('0x33'));}var _0x5da941={'startDate':moment()[_0x9125('0x34')](_0x531a99[_0x9125('0x18')],_0x531a99[_0x9125('0x19')])[_0x9125('0x13')](_0x9125('0x35')),'endDate':moment()[_0x9125('0x13')](_0x9125('0x35')),'type':_0x9125('0x36'),'output':_0x531a99[_0x9125('0x37')],'name':_0x531a99['name']};if(!_[_0x9125('0x31')](_0x531a99['DefaultReportId'])){logger['info']('exec\x20defaul\x20report\x20id:%s',_0x531a99[_0x9125('0x38')]);return analyticDefaultReportController['runReport']({'id':_0x531a99[_0x9125('0x38')]},_0x5da941)['then'](handleResult(_0x531a99))[_0x9125('0x2f')](handleError());}if(!_[_0x9125('0x31')](_0x531a99[_0x9125('0x39')])){logger['info'](_0x9125('0x3a'),_0x531a99['CustomReportId']);return analyticCustomReportController[_0x9125('0x3b')]({'id':_0x531a99['CustomReportId']},_0x5da941)[_0x9125('0x2a')](handleResult(_0x531a99))[_0x9125('0x2f')](handleError());}}catch(_0x1a109e){logger['error'](JSON[_0x9125('0x2d')](_0x1a109e));}return logger[_0x9125('0x8')]('no\x20report\x20id');};}function getJobs(_0x3e02bb){var _0x42f901={};if(_0x3e02bb){_0x42f901['id']=_0x3e02bb;}return db[_0x9125('0x3c')][_0x9125('0x3d')]({'where':_0x42f901,'include':[{'model':db[_0x9125('0xc')],'attributes':['id',_0x9125('0x15'),_0x9125('0xa')],'include':[{'model':db[_0x9125('0x3e')],'as':_0x9125('0xb')}]}]})[_0x9125('0x2a')](function(_0x2208b3){var _0x5471f0=_['keys'](manager[_0x9125('0x3f')]);var _0x1a034f=_['map'](_0x2208b3,function(_0x4f86c7){return _0x4f86c7['id']['toString']();});var _0x1934f7=_[_0x9125('0x40')](_0x2208b3,function(_0x14717f){return _0x14717f['id'][_0x9125('0x41')]();});var _0x96433b=_0x3e02bb?_0x1a034f:_[_0x9125('0x42')](_0x1a034f,_0x5471f0);var _0x423366=_[_0x9125('0x43')](_0x1a034f,_0x5471f0);var _0x49fa7a=_[_0x9125('0x42')](_0x5471f0,_0x1a034f);var _0x4c3a7d;var _0x209ad7;for(_0x4c3a7d=0x0;_0x4c3a7d<_0x49fa7a[_0x9125('0x44')]&&!_0x3e02bb;_0x4c3a7d+=0x1){_0x209ad7=_0x49fa7a[_0x4c3a7d][_0x9125('0x41')]();if(manager[_0x9125('0x45')](_0x209ad7)){manager['stop'](_0x209ad7);manager['deleteJob'](_0x209ad7);logger[_0x9125('0x8')]('delete\x20cron',_0x209ad7);}}logger[_0x9125('0x8')]('toRun',JSON[_0x9125('0x2d')](_0x96433b));for(_0x4c3a7d=0x0;_0x4c3a7d<_0x96433b[_0x9125('0x44')];_0x4c3a7d+=0x1){_0x209ad7=_0x96433b[_0x4c3a7d]['toString']();logger[_0x9125('0x8')](_0x9125('0x46'),_0x209ad7);if(_0x3e02bb){logger['info'](_0x9125('0x47'),_0x3e02bb);logger[_0x9125('0x8')](JSON['stringify'](_0x1934f7[_0x209ad7]));BPromise['resolve']()[_0x9125('0x2a')](handleJob(_0x1934f7[_0x209ad7]));logger[_0x9125('0x8')](_0x9125('0x48'),_0x1934f7[_0x209ad7][_0x9125('0x15')],_0x1934f7[_0x209ad7][_0x9125('0x49')]);}else if(_0x1934f7[_0x209ad7][_0x9125('0x49')]&&_0x1934f7[_0x209ad7]['active']&&moment()[_0x9125('0x4a')](_0x1934f7[_0x209ad7][_0x9125('0x4b')],_0x1934f7[_0x209ad7]['endAt'])){manager[_0x9125('0x4c')](_0x209ad7,_0x1934f7[_0x209ad7][_0x9125('0x49')],handleJob(_0x1934f7[_0x209ad7]));manager[_0x9125('0x4d')](_0x209ad7);logger[_0x9125('0x8')](_0x9125('0x4e'),_0x1934f7[_0x209ad7]['name'],_0x1934f7[_0x209ad7][_0x9125('0x49')]);}else if(manager[_0x9125('0x45')](_0x209ad7)){manager[_0x9125('0x4f')](_0x209ad7);manager['deleteJob'](_0x209ad7);logger[_0x9125('0x8')](_0x9125('0x50'),_0x1934f7[_0x209ad7][_0x9125('0x15')],_0x1934f7[_0x209ad7]['cron']);}}for(_0x4c3a7d=0x0,_0x209ad7;_0x4c3a7d<_0x423366[_0x9125('0x44')]&&!_0x3e02bb;_0x4c3a7d+=0x1){_0x209ad7=_0x423366[_0x4c3a7d][_0x9125('0x41')]();if(manager[_0x9125('0x45')](_0x209ad7)){if(_0x1934f7[_0x209ad7][_0x9125('0x49')]&&_0x1934f7[_0x209ad7][_0x9125('0x51')]&&moment()['isBetween'](_0x1934f7[_0x209ad7][_0x9125('0x4b')],_0x1934f7[_0x209ad7]['endAt'])){manager[_0x9125('0x52')](_0x209ad7,_0x1934f7[_0x209ad7][_0x9125('0x49')],handleJob(_0x1934f7[_0x209ad7]));logger['info'](_0x9125('0x53'),_0x1934f7[_0x209ad7][_0x9125('0x15')],_0x1934f7[_0x209ad7][_0x9125('0x49')]);}else{manager['stop'](_0x209ad7);manager['deleteJob'](_0x209ad7);logger[_0x9125('0x8')](_0x9125('0x50'),_0x1934f7[_0x209ad7][_0x9125('0x15')],_0x1934f7[_0x209ad7]['cron']);}}}})[_0x9125('0x2f')](function(_0x1db276){logger[_0x9125('0x2b')](JSON[_0x9125('0x2d')](_0x1db276));});}exports[_0x9125('0x54')]=function(_0x394d1c){return getJobs(_0x394d1c);};exports['start']=function(){setInterval(function(){return getJobs();},0x3c*0x3e8);return getJobs();};
\ No newline at end of file
+var _0x8af0=['toRun','resolve','run\x20job','cron','startAt','add','start','add\x20cron','exists','stop\x20cron','active','isBetween','endAt','update','update\x20cron','run','util','path','moment','cron-job-manager','bluebird','../logger','schedule','../../mysqldb','../../api/analyticCustomReport/analyticCustomReport.controller','../../api/analyticDefaultReport/analyticDefaultReport.controller','client','http','info','Try\x20to\x20send\x20a\x20mail\x20to','email','MailAccount','Smtp','service','host','port','secure','authentication','auth','user','pass','format','\x22%s\x22\x20<%s>','bcc','name','join','../../files/reports','savename','%s.%s','basename','extname','zip','existsSync','status','Sent','message','attachments','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','Report\x20empty\x0aThis\x20is\x20an\x20automatically\x20generated\x20email\x20–\x20please\x20do\x20not\x20reply\x20to\x20this\x20email.\x0a\x0a','empty\x20file,\x20email\x20not\x20sent','request','error','error\x20mail','data','isNil','subtractNumber','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','then','Schedule','MailServerOut','keys','jobs','toString','intersection','difference','length','stop','deleteJob','delete\x20cron'];(function(_0x12af14,_0x135bc5){var _0x100286=function(_0x49ba84){while(--_0x49ba84){_0x12af14['push'](_0x12af14['shift']());}};_0x100286(++_0x135bc5);}(_0x8af0,0x6d));var _0x08af=function(_0x276468,_0x29685a){_0x276468=_0x276468-0x0;var _0x36dc3a=_0x8af0[_0x276468];return _0x36dc3a;};'use strict';var fs=require('fs');var util=require(_0x08af('0x0'));var path=require(_0x08af('0x1'));var _=require('lodash');var moment=require(_0x08af('0x2'));var CronJobManager=require(_0x08af('0x3'));var jayson=require('jayson/promise');var BPromise=require(_0x08af('0x4'));var logger=require(_0x08af('0x5'))(_0x08af('0x6'));var db=require(_0x08af('0x7'))['db'];var analyticCustomReportController=require(_0x08af('0x8'));var analyticDefaultReportController=require(_0x08af('0x9'));var client=jayson[_0x08af('0xa')][_0x08af('0xb')]({'port':0x232b});var manager=new CronJobManager();function handleSendEmail(_0x22ef91,_0xf99e82){return function(){logger[_0x08af('0xc')](_0x08af('0xd'),_0x22ef91[_0x08af('0xe')]);var _0x2edf66=!![];var _0x380345={'tls':{'rejectUnauthorized':![]}};if(_0x22ef91[_0x08af('0xf')][_0x08af('0x10')][_0x08af('0x11')]){_0x380345[_0x08af('0x11')]=_0x22ef91[_0x08af('0xf')]['Smtp'][_0x08af('0x11')];}else{_0x380345[_0x08af('0x12')]=_0x22ef91[_0x08af('0xf')][_0x08af('0x10')]['host'];_0x380345[_0x08af('0x13')]=_0x22ef91['MailAccount'][_0x08af('0x10')][_0x08af('0x13')];_0x380345[_0x08af('0x14')]=_0x22ef91[_0x08af('0xf')]['Smtp']['secure'];}if(_0x22ef91['MailAccount'][_0x08af('0x10')][_0x08af('0x15')]){_0x380345[_0x08af('0x16')]={'user':_0x22ef91[_0x08af('0xf')]['Smtp'][_0x08af('0x17')],'pass':_0x22ef91[_0x08af('0xf')][_0x08af('0x10')][_0x08af('0x18')]};}var _0x2c5030={'account':_0x380345,'message':{'from':util[_0x08af('0x19')](_0x08af('0x1a'),_0x22ef91['MailAccount']['name'],_0x22ef91[_0x08af('0xf')]['email']||_0x22ef91[_0x08af('0xf')][_0x08af('0x10')]['user']),'to':_0x22ef91['email'],'cc':_0x22ef91['cc'],'bcc':_0x22ef91[_0x08af('0x1b')],'subject':util['format']('Report\x20%s\x20last\x20%s\x20%s',_0xf99e82[_0x08af('0x1c')],_0x22ef91['subtractNumber'],_0x22ef91['subtractUnit'])}};var _0x312c84=path[_0x08af('0x1d')](__dirname,_0x08af('0x1e'));var _0x52758c=_0xf99e82[_0x08af('0x1f')];var _0x565c53=util[_0x08af('0x19')](_0x08af('0x20'),path[_0x08af('0x21')](_0xf99e82['savename'],path[_0x08af('0x22')](_0xf99e82['savename'])),_0x08af('0x23'));var _0x5ec374=path[_0x08af('0x1d')](_0x312c84,_0x52758c);var _0x87569a=path[_0x08af('0x1d')](_0x312c84,_0x565c53);if(fs[_0x08af('0x24')](_0x5ec374)){_0xf99e82[_0x08af('0x25')]=_0x08af('0x26');_0x2c5030[_0x08af('0x27')][_0x08af('0x28')]=[{'filename':_0x52758c,'path':_0x5ec374}];_0x2c5030[_0x08af('0x27')][_0x08af('0x29')]=util[_0x08af('0x19')](_0x08af('0x2a'),JSON[_0x08af('0x2b')](_0xf99e82,null,0x2));}else if(fs[_0x08af('0x24')](_0x87569a)){_0xf99e82[_0x08af('0x25')]='Sent';_0x2c5030[_0x08af('0x27')][_0x08af('0x28')]=[{'filename':_0x565c53,'path':_0x87569a}];}else{_0x2c5030[_0x08af('0x27')][_0x08af('0x29')]=_0x08af('0x2c');if(!_0x22ef91['sendIfEmpty']){_0x2edf66=![];logger[_0x08af('0xc')](_0x08af('0x2d'));}}if(_0x2edf66){return client[_0x08af('0x2e')]('SendMail',_0x2c5030)['then'](function(_0x1873be){if(_0x1873be[_0x08af('0x2f')]){return logger[_0x08af('0x2f')](_0x08af('0x30'),JSON[_0x08af('0x2b')](_0x1873be));}return logger[_0x08af('0xc')]('email\x20sent');})['catch'](function(_0x80a744){return logger[_0x08af('0x2f')]('error\x20mail',JSON[_0x08af('0x2b')](_0x80a744));});}};}function handleError(){return function(_0x479b29){return logger[_0x08af('0x2f')](JSON[_0x08af('0x2b')](_0x479b29));};}function handleResult(_0x5296bc){return function(_0x3f6bd3){logger[_0x08af('0xc')](_0x08af('0x31'),JSON[_0x08af('0x2b')](_0x3f6bd3));if(_0x5296bc[_0x08af('0xf')]&&_0x5296bc[_0x08af('0xf')][_0x08af('0x10')]&&!_[_0x08af('0x32')](_0x5296bc[_0x08af('0xe')])){setTimeout(handleSendEmail(_0x5296bc,_0x3f6bd3),0x3c*0x3e8);}};}function handleJob(_0xc2d139){return function(){try{if(_[_0x08af('0x32')](_0xc2d139[_0x08af('0x33')])){return logger[_0x08af('0xc')](_0x08af('0x34'));}if(_['isNil'](_0xc2d139[_0x08af('0x35')])){return logger[_0x08af('0xc')](_0x08af('0x36'));}var _0x3ded07={'startDate':moment()[_0x08af('0x37')](_0xc2d139[_0x08af('0x33')],_0xc2d139[_0x08af('0x35')])['format'](_0x08af('0x38')),'endDate':moment()[_0x08af('0x19')](_0x08af('0x38')),'type':_0x08af('0x39'),'output':_0xc2d139[_0x08af('0x3a')],'name':_0xc2d139[_0x08af('0x1c')]};if(!_[_0x08af('0x32')](_0xc2d139[_0x08af('0x3b')])){logger['info'](_0x08af('0x3c'),_0xc2d139[_0x08af('0x3b')]);return analyticDefaultReportController[_0x08af('0x3d')]({'id':_0xc2d139['DefaultReportId']},_0x3ded07)['then'](handleResult(_0xc2d139))[_0x08af('0x3e')](handleError());}if(!_[_0x08af('0x32')](_0xc2d139[_0x08af('0x3f')])){logger[_0x08af('0xc')](_0x08af('0x40'),_0xc2d139[_0x08af('0x3f')]);return analyticCustomReportController['runReport']({'id':_0xc2d139['CustomReportId']},_0x3ded07)[_0x08af('0x41')](handleResult(_0xc2d139))['catch'](handleError());}}catch(_0x59ac2b){logger[_0x08af('0x2f')](JSON['stringify'](_0x59ac2b));}return logger['info']('no\x20report\x20id');};}function getJobs(_0x313edf){var _0x2cdbbc={};if(_0x313edf){_0x2cdbbc['id']=_0x313edf;}return db[_0x08af('0x42')]['findAll']({'where':_0x2cdbbc,'include':[{'model':db[_0x08af('0xf')],'attributes':['id',_0x08af('0x1c'),_0x08af('0xe')],'include':[{'model':db[_0x08af('0x43')],'as':'Smtp'}]}]})[_0x08af('0x41')](function(_0x33cf9e){var _0x54e24c=_[_0x08af('0x44')](manager[_0x08af('0x45')]);var _0x52a5df=_['map'](_0x33cf9e,function(_0x500bfa){return _0x500bfa['id'][_0x08af('0x46')]();});var _0xa4692d=_['keyBy'](_0x33cf9e,function(_0x317093){return _0x317093['id']['toString']();});var _0x1847b1=_0x313edf?_0x52a5df:_['difference'](_0x52a5df,_0x54e24c);var _0x110b52=_[_0x08af('0x47')](_0x52a5df,_0x54e24c);var _0x123fa0=_[_0x08af('0x48')](_0x54e24c,_0x52a5df);var _0x4c0251;var _0x266a79;for(_0x4c0251=0x0;_0x4c0251<_0x123fa0[_0x08af('0x49')]&&!_0x313edf;_0x4c0251+=0x1){_0x266a79=_0x123fa0[_0x4c0251][_0x08af('0x46')]();if(manager['exists'](_0x266a79)){manager[_0x08af('0x4a')](_0x266a79);manager[_0x08af('0x4b')](_0x266a79);logger[_0x08af('0xc')](_0x08af('0x4c'),_0x266a79);}}logger[_0x08af('0xc')](_0x08af('0x4d'),JSON['stringify'](_0x1847b1));for(_0x4c0251=0x0;_0x4c0251<_0x1847b1['length'];_0x4c0251+=0x1){_0x266a79=_0x1847b1[_0x4c0251]['toString']();logger['info']('index',_0x266a79);if(_0x313edf){logger[_0x08af('0xc')]('my\x20id',_0x313edf);logger[_0x08af('0xc')](JSON[_0x08af('0x2b')](_0xa4692d[_0x266a79]));BPromise[_0x08af('0x4e')]()[_0x08af('0x41')](handleJob(_0xa4692d[_0x266a79]));logger[_0x08af('0xc')](_0x08af('0x4f'),_0xa4692d[_0x266a79][_0x08af('0x1c')],_0xa4692d[_0x266a79][_0x08af('0x50')]);}else if(_0xa4692d[_0x266a79][_0x08af('0x50')]&&_0xa4692d[_0x266a79]['active']&&moment()['isBetween'](_0xa4692d[_0x266a79][_0x08af('0x51')],_0xa4692d[_0x266a79]['endAt'])){manager[_0x08af('0x52')](_0x266a79,_0xa4692d[_0x266a79][_0x08af('0x50')],handleJob(_0xa4692d[_0x266a79]));manager[_0x08af('0x53')](_0x266a79);logger[_0x08af('0xc')](_0x08af('0x54'),_0xa4692d[_0x266a79][_0x08af('0x1c')],_0xa4692d[_0x266a79][_0x08af('0x50')]);}else if(manager[_0x08af('0x55')](_0x266a79)){manager[_0x08af('0x4a')](_0x266a79);manager[_0x08af('0x4b')](_0x266a79);logger[_0x08af('0xc')](_0x08af('0x56'),_0xa4692d[_0x266a79][_0x08af('0x1c')],_0xa4692d[_0x266a79]['cron']);}}for(_0x4c0251=0x0,_0x266a79;_0x4c0251<_0x110b52[_0x08af('0x49')]&&!_0x313edf;_0x4c0251+=0x1){_0x266a79=_0x110b52[_0x4c0251]['toString']();if(manager[_0x08af('0x55')](_0x266a79)){if(_0xa4692d[_0x266a79][_0x08af('0x50')]&&_0xa4692d[_0x266a79][_0x08af('0x57')]&&moment()[_0x08af('0x58')](_0xa4692d[_0x266a79][_0x08af('0x51')],_0xa4692d[_0x266a79][_0x08af('0x59')])){manager[_0x08af('0x5a')](_0x266a79,_0xa4692d[_0x266a79][_0x08af('0x50')],handleJob(_0xa4692d[_0x266a79]));logger['info'](_0x08af('0x5b'),_0xa4692d[_0x266a79][_0x08af('0x1c')],_0xa4692d[_0x266a79][_0x08af('0x50')]);}else{manager['stop'](_0x266a79);manager['deleteJob'](_0x266a79);logger[_0x08af('0xc')](_0x08af('0x56'),_0xa4692d[_0x266a79][_0x08af('0x1c')],_0xa4692d[_0x266a79]['cron']);}}}})[_0x08af('0x3e')](function(_0x3bcf7e){logger[_0x08af('0x2f')](JSON['stringify'](_0x3bcf7e));});}exports[_0x08af('0x5c')]=function(_0x23baa4){return getJobs(_0x23baa4);};exports[_0x08af('0x53')]=function(){setInterval(function(){return getJobs();},0x3c*0x3e8);return getJobs();};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf6ed=['[RECORDING:%d]\x20Get\x20transcript','[RECORDING:%d]\x20Transcript\x20downloaded','results','transcripts','length','update','[RECORDING:%d]\x20Voice\x20Recording\x20entry\x20updated','tempSentiment','Sequelize','ValidationError','sentiment','sentimentAccountId','language','Sentiment\x20Analysis\x20not\x20configured','Transcript\x20not\x20available','findOne','Cloud\x20Provider\x20not\x20available','data1','Cloud\x20Provider\x20not\x20configured','[RECORDING:%d]\x20Sentiment\x20Analysis\x20available','Sentiment','SentimentScore','Negative','Mixed','FailureReason','[RECORDING:%d]\x20Transcript\x20Job\x20status\x20not\x20managed','sentimentRegion','bucket','[RECORDING:%d]\x20Requesting\x20sentiment\x20analysis','Positive','Neutral','catch','name','SequelizeValidationError','error','[RECORDING:%d]\x20Error\x20running\x20Transcribe\x20&\x20Sentiment\x20Analysis','inspect','IN_PROGRESS','No\x20transcribe\x20job\x20to\x20check','Setting','Settings\x20not\x20available','transcribeAccountId','Transcribe\x20not\x20configured','CloudProvider','forEach','push','all','start','lodash','request-promise','util','bluebird','transcribe','TranscribeService','getTranscriptionJob','Comprehend','substring','info','format','transcribeName','data2','transcribeRegion','then','TranscriptionJobStatus','fileText','COMPLETED','TranscriptionJob','Transcript','TranscriptFileUri'];(function(_0x33f542,_0xf3aa54){var _0x129d03=function(_0x1d106b){while(--_0x1d106b){_0x33f542['push'](_0x33f542['shift']());}};_0x129d03(++_0xf3aa54);}(_0xf6ed,0x1ce));var _0xdf6e=function(_0x31db69,_0x3a1566){_0x31db69=_0x31db69-0x0;var _0x38e14a=_0xf6ed[_0x31db69];return _0x38e14a;};var _=require(_0xdf6e('0x0'));var AWS=require('aws-sdk');var rp=require(_0xdf6e('0x1'));var util=require(_0xdf6e('0x2'));var BPromise=require(_0xdf6e('0x3'));var db=require('../../mysqldb')['db'];var logger=require('../../config/logger')(_0xdf6e('0x4'));function getTranscriptionJob(_0x484a22,_0x5f5db0,_0x468b96,_0x5be8b9){return new Promise(function(_0x2a844a,_0x5eb5d1){var _0x1efa53=new AWS[(_0xdf6e('0x5'))]({'accessKeyId':_0x5f5db0,'secretAccessKey':_0x484a22,'region':_0x468b96});_0x1efa53[_0xdf6e('0x6')]({'TranscriptionJobName':_0x5be8b9},function(_0x2a8802,_0x5c8cef){if(_0x2a8802){return _0x5eb5d1(_0x2a8802);}else{return _0x2a844a(_0x5c8cef);}});});}function sentiment(_0x588fd8,_0x3fdb05,_0x230c95,_0x2c4100,_0x3a8881){return new Promise(function(_0x56d897,_0x92cde3){var _0x5ad59b=new AWS[(_0xdf6e('0x7'))]({'accessKeyId':_0x3fdb05,'secretAccessKey':_0x588fd8,'region':_0x230c95});_0x5ad59b['detectSentiment']({'Text':_0x2c4100,'LanguageCode':_0x3a8881[_0xdf6e('0x8')](0x0,0x2)},function(_0x5f5c6e,_0xb0934b){if(_0x5f5c6e){return _0x92cde3(_0x5f5c6e);}else{return _0x56d897(_0xb0934b);}});});}function checkTranscribeJob(_0x142fa3,_0x4aa22d,_0x12e817){var _0x18a504;return new BPromise(function(_0x3c9e75,_0x182299){logger[_0xdf6e('0x9')](util[_0xdf6e('0xa')]('[RECORDING:%d]\x20Get\x20status\x20for\x20transcript\x20job\x20(%s)',_0x142fa3['id'],_0x142fa3[_0xdf6e('0xb')]));return getTranscriptionJob(_0x12e817['data1'],_0x12e817[_0xdf6e('0xc')],_0x4aa22d[_0xdf6e('0xd')],_0x142fa3[_0xdf6e('0xb')])[_0xdf6e('0xe')](function(_0x2eb619){logger[_0xdf6e('0x9')](util[_0xdf6e('0xa')]('[RECORDING:%d]\x20Status\x20of\x20transcript\x20job\x20(%s):\x20%s',_0x142fa3['id'],_0x142fa3[_0xdf6e('0xb')],_0x2eb619['TranscriptionJob'][_0xdf6e('0xf')]));if(!_0x142fa3[_0xdf6e('0x10')]){switch(_0x2eb619['TranscriptionJob']['TranscriptionJobStatus']){case _0xdf6e('0x11'):var _0x3c6a2e={'transcribeStatus':_0x2eb619[_0xdf6e('0x12')]['TranscriptionJobStatus'],'fileUri':_0x2eb619[_0xdf6e('0x12')][_0xdf6e('0x13')][_0xdf6e('0x14')]};logger[_0xdf6e('0x9')](util[_0xdf6e('0xa')](_0xdf6e('0x15'),_0x142fa3['id']));return rp({'uri':_0x2eb619['TranscriptionJob'][_0xdf6e('0x13')][_0xdf6e('0x14')],'json':!![]})[_0xdf6e('0xe')](function(_0x57955e){logger[_0xdf6e('0x9')](util['format'](_0xdf6e('0x16'),_0x142fa3['id']));if(_0x57955e&&_0x57955e[_0xdf6e('0x17')]&&_0x57955e['results'][_0xdf6e('0x18')]&&_0x57955e[_0xdf6e('0x17')][_0xdf6e('0x18')][_0xdf6e('0x19')]){_0x3c6a2e['fileText']='';for(var _0x4fe58f=0x0;_0x4fe58f<_0x57955e[_0xdf6e('0x17')]['transcripts'][_0xdf6e('0x19')];_0x4fe58f++){_0x3c6a2e[_0xdf6e('0x10')]+=_0x57955e[_0xdf6e('0x17')][_0xdf6e('0x18')][_0x4fe58f]['transcript']+'';}}return _0x142fa3[_0xdf6e('0x1a')](_0x3c6a2e);})[_0xdf6e('0xe')](function(){logger[_0xdf6e('0x9')](util['format'](_0xdf6e('0x1b'),_0x142fa3['id']));if(!_0x142fa3[_0xdf6e('0x1c')]){throw new db[(_0xdf6e('0x1d'))][(_0xdf6e('0x1e'))]('Sentiment\x20Analysis\x20not\x20requested');}if(!_0x4aa22d[_0xdf6e('0x1f')]||!_0x4aa22d[_0xdf6e('0x20')]||!_0x4aa22d['sentimentRegion']||!_0x4aa22d[_0xdf6e('0x21')]||!_0x4aa22d['bucket']){throw new db[(_0xdf6e('0x1d'))]['ValidationError'](_0xdf6e('0x22'));}if(!_0x3c6a2e['fileText']){throw new Error(_0xdf6e('0x23'));}if(_0x4aa22d[_0xdf6e('0x20')]===_0x12e817['id']){return _0x12e817;}else{return db['CloudProvider'][_0xdf6e('0x24')]({'where':{'id':_settings[_0xdf6e('0x20')]}});}})[_0xdf6e('0xe')](function(_0x227ab){if(!_0x227ab){throw new db['Sequelize'][(_0xdf6e('0x1e'))](_0xdf6e('0x25'));}if(!_0x227ab[_0xdf6e('0x26')]||!_0x227ab[_0xdf6e('0xc')]){throw new db[(_0xdf6e('0x1d'))][(_0xdf6e('0x1e'))](_0xdf6e('0x27'));}_0x18a504=_0x227ab;logger[_0xdf6e('0x9')](util['format']('[RECORDING:%d]\x20Requesting\x20sentiment\x20analysis',_0x142fa3['id']));return sentiment(_0x18a504[_0xdf6e('0x26')],_0x18a504[_0xdf6e('0xc')],_0x4aa22d['sentimentRegion'],_0x3c6a2e['fileText'],_0x4aa22d[_0xdf6e('0x21')]);})[_0xdf6e('0xe')](function(_0x38449c){logger[_0xdf6e('0x9')](util[_0xdf6e('0xa')](_0xdf6e('0x28'),_0x142fa3['id']));return _0x142fa3[_0xdf6e('0x1a')]({'sentiment':_0x38449c[_0xdf6e('0x29')],'sPositive':_0x38449c[_0xdf6e('0x2a')]['Positive'],'sNegative':_0x38449c['SentimentScore'][_0xdf6e('0x2b')],'sMixed':_0x38449c['SentimentScore'][_0xdf6e('0x2c')],'sNeutral':_0x38449c[_0xdf6e('0x2a')]['Neutral']});})[_0xdf6e('0xe')](function(){logger['info'](util[_0xdf6e('0xa')](_0xdf6e('0x1b'),_0x142fa3['id']));_0x3c9e75();});case'FAILED':return _0x142fa3[_0xdf6e('0x1a')]({'transcribeStatus':'FAILED','failureReason':_0x2eb619[_0xdf6e('0x12')][_0xdf6e('0x2d')]})[_0xdf6e('0xe')](function(){logger['info'](util[_0xdf6e('0xa')](_0xdf6e('0x1b'),_0x142fa3['id']));_0x3c9e75();});default:logger[_0xdf6e('0x9')](util[_0xdf6e('0xa')](_0xdf6e('0x2e'),_0x142fa3['id']));break;}}else{return BPromise['resolve']()[_0xdf6e('0xe')](function(){if(!_0x142fa3[_0xdf6e('0x1c')]){throw new db[(_0xdf6e('0x1d'))][(_0xdf6e('0x1e'))]('Sentiment\x20Analysis\x20not\x20requested');}if(!_0x4aa22d[_0xdf6e('0x1f')]||!_0x4aa22d[_0xdf6e('0x20')]||!_0x4aa22d[_0xdf6e('0x2f')]||!_0x4aa22d[_0xdf6e('0x21')]||!_0x4aa22d[_0xdf6e('0x30')]){throw new db[(_0xdf6e('0x1d'))]['ValidationError'](_0xdf6e('0x22'));}if(!_0x142fa3[_0xdf6e('0x10')]){throw new Error(_0xdf6e('0x23'));}if(_0x4aa22d[_0xdf6e('0x20')]===_0x12e817['id']){return _0x12e817;}else{return db['CloudProvider'][_0xdf6e('0x24')]({'where':{'id':_settings[_0xdf6e('0x20')]}});}})['then'](function(_0x10ae3f){if(!_0x10ae3f){throw new db[(_0xdf6e('0x1d'))][(_0xdf6e('0x1e'))](_0xdf6e('0x25'));}if(!_0x10ae3f[_0xdf6e('0x26')]||!_0x10ae3f[_0xdf6e('0xc')]){throw new db[(_0xdf6e('0x1d'))][(_0xdf6e('0x1e'))](_0xdf6e('0x27'));}_0x18a504=_0x10ae3f;logger['info'](util[_0xdf6e('0xa')](_0xdf6e('0x31'),_0x142fa3['id']));return sentiment(_0x18a504[_0xdf6e('0x26')],_0x18a504[_0xdf6e('0xc')],_0x4aa22d[_0xdf6e('0x2f')],_0x142fa3[_0xdf6e('0x10')],_0x4aa22d[_0xdf6e('0x21')]);})['then'](function(_0x36c2b5){logger['info'](util[_0xdf6e('0xa')](_0xdf6e('0x28'),_0x142fa3['id']));return _0x142fa3[_0xdf6e('0x1a')]({'sentiment':_0x36c2b5[_0xdf6e('0x29')],'sPositive':_0x36c2b5['SentimentScore'][_0xdf6e('0x32')],'sNegative':_0x36c2b5[_0xdf6e('0x2a')][_0xdf6e('0x2b')],'sMixed':_0x36c2b5['SentimentScore'][_0xdf6e('0x2c')],'sNeutral':_0x36c2b5[_0xdf6e('0x2a')][_0xdf6e('0x33')],'transcribeStatus':_0xdf6e('0x11')});})[_0xdf6e('0xe')](function(){logger[_0xdf6e('0x9')](util[_0xdf6e('0xa')](_0xdf6e('0x1b'),_0x142fa3['id']));_0x3c9e75();});}})[_0xdf6e('0x34')](function(_0x5bb648){if(_0x5bb648){if(!_0x5bb648[_0xdf6e('0x35')]||_0x5bb648['name']!==_0xdf6e('0x36')){logger[_0xdf6e('0x37')](util[_0xdf6e('0xa')](_0xdf6e('0x38'),_0x142fa3['id']),util[_0xdf6e('0x39')](_0x5bb648,{'showHidden':![],'depth':null}));}}_0x3c9e75();});});}function checkTranscribe(){var _0x5ef843;var _0x47e822;var _0x4c94aa;return db['VoiceRecording']['findAll']({'where':{'transcribeStatus':_0xdf6e('0x3a')}})[_0xdf6e('0xe')](function(_0x4a47c1){if(!_0x4a47c1||!_0x4a47c1[_0xdf6e('0x19')]){throw new db[(_0xdf6e('0x1d'))][(_0xdf6e('0x1e'))](_0xdf6e('0x3b'));}_0x5ef843=_0x4a47c1;return db[_0xdf6e('0x3c')][_0xdf6e('0x24')]({'where':{'id':0x1}});})['then'](function(_0x1fe891){if(!_0x1fe891){throw new db[(_0xdf6e('0x1d'))]['ValidationError'](_0xdf6e('0x3d'));}_0x47e822=_0x1fe891;if(!_0x47e822['transcribe']||!_0x47e822[_0xdf6e('0x3e')]||!_0x47e822[_0xdf6e('0xd')]||!_0x47e822[_0xdf6e('0x21')]||!_0x47e822[_0xdf6e('0x30')]){throw new db[(_0xdf6e('0x1d'))]['ValidationError'](_0xdf6e('0x3f'));}return db[_0xdf6e('0x40')][_0xdf6e('0x24')]({'where':{'id':_0x47e822[_0xdf6e('0x3e')]}});})[_0xdf6e('0xe')](function(_0x1275b6){if(!_0x1275b6){throw new db[(_0xdf6e('0x1d'))][(_0xdf6e('0x1e'))]('Cloud\x20Provider\x20not\x20available');}if(!_0x1275b6[_0xdf6e('0x26')]||!_0x1275b6['data2']){throw new db[(_0xdf6e('0x1d'))][(_0xdf6e('0x1e'))](_0xdf6e('0x27'));}_0x4c94aa=_0x1275b6;var _0x3b328c=[];_0x5ef843[_0xdf6e('0x41')](function(_0x5768f1){_0x3b328c[_0xdf6e('0x42')](checkTranscribeJob(_0x5768f1,_0x47e822,_0x4c94aa));});return BPromise[_0xdf6e('0x43')](_0x3b328c);})['catch'](function(_0x15b6b6){if(_0x15b6b6){if(!_0x15b6b6[_0xdf6e('0x35')]||_0x15b6b6['name']!==_0xdf6e('0x36')){logger[_0xdf6e('0x37')](util['inspect'](_0x15b6b6,{'showHidden':![],'depth':null}));}}});}exports[_0xdf6e('0x44')]=function(){setInterval(function(){return checkTranscribe();},0x3c*0x3e8);return checkTranscribe();};
\ No newline at end of file
+var _0xa1e8=['Sentiment\x20Analysis\x20not\x20configured','Cloud\x20Provider\x20not\x20available','Mixed','catch','name','error','inspect','findAll','IN_PROGRESS','No\x20transcribe\x20job\x20to\x20check','Setting','Settings\x20not\x20available','transcribe','transcribeAccountId','all','SequelizeValidationError','start','lodash','request-promise','util','bluebird','../../config/logger','TranscribeService','getTranscriptionJob','detectSentiment','substring','info','[RECORDING:%d]\x20Get\x20status\x20for\x20transcript\x20job\x20(%s)','transcribeName','data1','transcribeRegion','then','[RECORDING:%d]\x20Status\x20of\x20transcript\x20job\x20(%s):\x20%s','TranscriptionJobStatus','fileText','TranscriptionJob','COMPLETED','TranscriptFileUri','format','[RECORDING:%d]\x20Get\x20transcript','[RECORDING:%d]\x20Transcript\x20downloaded','results','transcripts','length','update','[RECORDING:%d]\x20Voice\x20Recording\x20entry\x20updated','tempSentiment','ValidationError','Sentiment\x20Analysis\x20not\x20requested','sentiment','sentimentAccountId','sentimentRegion','Sequelize','Transcript\x20not\x20available','CloudProvider','findOne','Cloud\x20Provider\x20not\x20configured','[RECORDING:%d]\x20Requesting\x20sentiment\x20analysis','data2','[RECORDING:%d]\x20Sentiment\x20Analysis\x20available','Sentiment','SentimentScore','Positive','Negative','Neutral','FAILED','resolve','language','bucket'];(function(_0x1c9030,_0x441f79){var _0x2eccf8=function(_0x39a4a8){while(--_0x39a4a8){_0x1c9030['push'](_0x1c9030['shift']());}};_0x2eccf8(++_0x441f79);}(_0xa1e8,0x1af));var _0x8a1e=function(_0x137f1a,_0x2887df){_0x137f1a=_0x137f1a-0x0;var _0x439923=_0xa1e8[_0x137f1a];return _0x439923;};var _=require(_0x8a1e('0x0'));var AWS=require('aws-sdk');var rp=require(_0x8a1e('0x1'));var util=require(_0x8a1e('0x2'));var BPromise=require(_0x8a1e('0x3'));var db=require('../../mysqldb')['db'];var logger=require(_0x8a1e('0x4'))('transcribe');function getTranscriptionJob(_0x341cb0,_0x4f642b,_0x20fe9d,_0x5b46f1){return new Promise(function(_0x5730e0,_0x2ddb27){var _0x1463b3=new AWS[(_0x8a1e('0x5'))]({'accessKeyId':_0x4f642b,'secretAccessKey':_0x341cb0,'region':_0x20fe9d});_0x1463b3[_0x8a1e('0x6')]({'TranscriptionJobName':_0x5b46f1},function(_0x483e06,_0x14f902){if(_0x483e06){return _0x2ddb27(_0x483e06);}else{return _0x5730e0(_0x14f902);}});});}function sentiment(_0x365845,_0x22d916,_0x537de3,_0x31afa4,_0x5d3318){return new Promise(function(_0x413ef7,_0xe9a595){var _0x5aa5e5=new AWS['Comprehend']({'accessKeyId':_0x22d916,'secretAccessKey':_0x365845,'region':_0x537de3});_0x5aa5e5[_0x8a1e('0x7')]({'Text':_0x31afa4,'LanguageCode':_0x5d3318[_0x8a1e('0x8')](0x0,0x2)},function(_0x2c092f,_0x20a2ec){if(_0x2c092f){return _0xe9a595(_0x2c092f);}else{return _0x413ef7(_0x20a2ec);}});});}function checkTranscribeJob(_0xd09d9b,_0x8aebf4,_0x22a562){var _0x4d8829;return new BPromise(function(_0x25d23d,_0x131ba6){logger[_0x8a1e('0x9')](util['format'](_0x8a1e('0xa'),_0xd09d9b['id'],_0xd09d9b[_0x8a1e('0xb')]));return getTranscriptionJob(_0x22a562[_0x8a1e('0xc')],_0x22a562['data2'],_0x8aebf4[_0x8a1e('0xd')],_0xd09d9b[_0x8a1e('0xb')])[_0x8a1e('0xe')](function(_0x4a31d0){logger['info'](util['format'](_0x8a1e('0xf'),_0xd09d9b['id'],_0xd09d9b[_0x8a1e('0xb')],_0x4a31d0['TranscriptionJob'][_0x8a1e('0x10')]));if(!_0xd09d9b[_0x8a1e('0x11')]){switch(_0x4a31d0[_0x8a1e('0x12')][_0x8a1e('0x10')]){case _0x8a1e('0x13'):var _0x13670e={'transcribeStatus':_0x4a31d0['TranscriptionJob'][_0x8a1e('0x10')],'fileUri':_0x4a31d0[_0x8a1e('0x12')]['Transcript'][_0x8a1e('0x14')]};logger[_0x8a1e('0x9')](util[_0x8a1e('0x15')](_0x8a1e('0x16'),_0xd09d9b['id']));return rp({'uri':_0x4a31d0['TranscriptionJob']['Transcript'][_0x8a1e('0x14')],'json':!![]})[_0x8a1e('0xe')](function(_0x2b2334){logger[_0x8a1e('0x9')](util[_0x8a1e('0x15')](_0x8a1e('0x17'),_0xd09d9b['id']));if(_0x2b2334&&_0x2b2334[_0x8a1e('0x18')]&&_0x2b2334[_0x8a1e('0x18')][_0x8a1e('0x19')]&&_0x2b2334[_0x8a1e('0x18')][_0x8a1e('0x19')]['length']){_0x13670e[_0x8a1e('0x11')]='';for(var _0x2e0798=0x0;_0x2e0798<_0x2b2334[_0x8a1e('0x18')]['transcripts'][_0x8a1e('0x1a')];_0x2e0798++){_0x13670e[_0x8a1e('0x11')]+=_0x2b2334[_0x8a1e('0x18')][_0x8a1e('0x19')][_0x2e0798]['transcript']+'';}}return _0xd09d9b[_0x8a1e('0x1b')](_0x13670e);})[_0x8a1e('0xe')](function(){logger[_0x8a1e('0x9')](util[_0x8a1e('0x15')](_0x8a1e('0x1c'),_0xd09d9b['id']));if(!_0xd09d9b[_0x8a1e('0x1d')]){throw new db['Sequelize'][(_0x8a1e('0x1e'))](_0x8a1e('0x1f'));}if(!_0x8aebf4[_0x8a1e('0x20')]||!_0x8aebf4[_0x8a1e('0x21')]||!_0x8aebf4[_0x8a1e('0x22')]||!_0x8aebf4['language']||!_0x8aebf4['bucket']){throw new db[(_0x8a1e('0x23'))][(_0x8a1e('0x1e'))]('Sentiment\x20Analysis\x20not\x20configured');}if(!_0x13670e[_0x8a1e('0x11')]){throw new Error(_0x8a1e('0x24'));}if(_0x8aebf4[_0x8a1e('0x21')]===_0x22a562['id']){return _0x22a562;}else{return db[_0x8a1e('0x25')][_0x8a1e('0x26')]({'where':{'id':_settings[_0x8a1e('0x21')]}});}})[_0x8a1e('0xe')](function(_0x5d08e0){if(!_0x5d08e0){throw new db[(_0x8a1e('0x23'))][(_0x8a1e('0x1e'))]('Cloud\x20Provider\x20not\x20available');}if(!_0x5d08e0['data1']||!_0x5d08e0['data2']){throw new db['Sequelize'][(_0x8a1e('0x1e'))](_0x8a1e('0x27'));}_0x4d8829=_0x5d08e0;logger[_0x8a1e('0x9')](util['format'](_0x8a1e('0x28'),_0xd09d9b['id']));return sentiment(_0x4d8829[_0x8a1e('0xc')],_0x4d8829[_0x8a1e('0x29')],_0x8aebf4[_0x8a1e('0x22')],_0x13670e['fileText'],_0x8aebf4['language']);})[_0x8a1e('0xe')](function(_0x5f4d59){logger[_0x8a1e('0x9')](util[_0x8a1e('0x15')](_0x8a1e('0x2a'),_0xd09d9b['id']));return _0xd09d9b[_0x8a1e('0x1b')]({'sentiment':_0x5f4d59[_0x8a1e('0x2b')],'sPositive':_0x5f4d59[_0x8a1e('0x2c')][_0x8a1e('0x2d')],'sNegative':_0x5f4d59['SentimentScore'][_0x8a1e('0x2e')],'sMixed':_0x5f4d59[_0x8a1e('0x2c')]['Mixed'],'sNeutral':_0x5f4d59[_0x8a1e('0x2c')][_0x8a1e('0x2f')]});})[_0x8a1e('0xe')](function(){logger[_0x8a1e('0x9')](util[_0x8a1e('0x15')](_0x8a1e('0x1c'),_0xd09d9b['id']));_0x25d23d();});case'FAILED':return _0xd09d9b['update']({'transcribeStatus':_0x8a1e('0x30'),'failureReason':_0x4a31d0[_0x8a1e('0x12')]['FailureReason']})['then'](function(){logger[_0x8a1e('0x9')](util[_0x8a1e('0x15')]('[RECORDING:%d]\x20Voice\x20Recording\x20entry\x20updated',_0xd09d9b['id']));_0x25d23d();});default:logger['info'](util['format']('[RECORDING:%d]\x20Transcript\x20Job\x20status\x20not\x20managed',_0xd09d9b['id']));break;}}else{return BPromise[_0x8a1e('0x31')]()[_0x8a1e('0xe')](function(){if(!_0xd09d9b[_0x8a1e('0x1d')]){throw new db[(_0x8a1e('0x23'))][(_0x8a1e('0x1e'))]('Sentiment\x20Analysis\x20not\x20requested');}if(!_0x8aebf4[_0x8a1e('0x20')]||!_0x8aebf4[_0x8a1e('0x21')]||!_0x8aebf4[_0x8a1e('0x22')]||!_0x8aebf4[_0x8a1e('0x32')]||!_0x8aebf4[_0x8a1e('0x33')]){throw new db[(_0x8a1e('0x23'))][(_0x8a1e('0x1e'))](_0x8a1e('0x34'));}if(!_0xd09d9b[_0x8a1e('0x11')]){throw new Error(_0x8a1e('0x24'));}if(_0x8aebf4[_0x8a1e('0x21')]===_0x22a562['id']){return _0x22a562;}else{return db[_0x8a1e('0x25')][_0x8a1e('0x26')]({'where':{'id':_settings[_0x8a1e('0x21')]}});}})['then'](function(_0x2c728a){if(!_0x2c728a){throw new db[(_0x8a1e('0x23'))]['ValidationError'](_0x8a1e('0x35'));}if(!_0x2c728a[_0x8a1e('0xc')]||!_0x2c728a[_0x8a1e('0x29')]){throw new db[(_0x8a1e('0x23'))]['ValidationError'](_0x8a1e('0x27'));}_0x4d8829=_0x2c728a;logger[_0x8a1e('0x9')](util['format'](_0x8a1e('0x28'),_0xd09d9b['id']));return sentiment(_0x4d8829[_0x8a1e('0xc')],_0x4d8829['data2'],_0x8aebf4[_0x8a1e('0x22')],_0xd09d9b[_0x8a1e('0x11')],_0x8aebf4[_0x8a1e('0x32')]);})[_0x8a1e('0xe')](function(_0x8e8deb){logger[_0x8a1e('0x9')](util[_0x8a1e('0x15')](_0x8a1e('0x2a'),_0xd09d9b['id']));return _0xd09d9b[_0x8a1e('0x1b')]({'sentiment':_0x8e8deb[_0x8a1e('0x2b')],'sPositive':_0x8e8deb['SentimentScore'][_0x8a1e('0x2d')],'sNegative':_0x8e8deb['SentimentScore']['Negative'],'sMixed':_0x8e8deb[_0x8a1e('0x2c')][_0x8a1e('0x36')],'sNeutral':_0x8e8deb[_0x8a1e('0x2c')][_0x8a1e('0x2f')],'transcribeStatus':'COMPLETED'});})['then'](function(){logger['info'](util[_0x8a1e('0x15')](_0x8a1e('0x1c'),_0xd09d9b['id']));_0x25d23d();});}})[_0x8a1e('0x37')](function(_0x12f8ff){if(_0x12f8ff){if(!_0x12f8ff[_0x8a1e('0x38')]||_0x12f8ff[_0x8a1e('0x38')]!=='SequelizeValidationError'){logger[_0x8a1e('0x39')](util[_0x8a1e('0x15')]('[RECORDING:%d]\x20Error\x20running\x20Transcribe\x20&\x20Sentiment\x20Analysis',_0xd09d9b['id']),util[_0x8a1e('0x3a')](_0x12f8ff,{'showHidden':![],'depth':null}));}}_0x25d23d();});});}function checkTranscribe(){var _0x3fb2b4;var _0x4cf52d;var _0x49cb8e;return db['VoiceRecording'][_0x8a1e('0x3b')]({'where':{'transcribeStatus':_0x8a1e('0x3c')}})[_0x8a1e('0xe')](function(_0x2dc4b3){if(!_0x2dc4b3||!_0x2dc4b3['length']){throw new db['Sequelize'][(_0x8a1e('0x1e'))](_0x8a1e('0x3d'));}_0x3fb2b4=_0x2dc4b3;return db[_0x8a1e('0x3e')][_0x8a1e('0x26')]({'where':{'id':0x1}});})['then'](function(_0x251ff2){if(!_0x251ff2){throw new db[(_0x8a1e('0x23'))][(_0x8a1e('0x1e'))](_0x8a1e('0x3f'));}_0x4cf52d=_0x251ff2;if(!_0x4cf52d[_0x8a1e('0x40')]||!_0x4cf52d[_0x8a1e('0x41')]||!_0x4cf52d[_0x8a1e('0xd')]||!_0x4cf52d['language']||!_0x4cf52d[_0x8a1e('0x33')]){throw new db[(_0x8a1e('0x23'))][(_0x8a1e('0x1e'))]('Transcribe\x20not\x20configured');}return db['CloudProvider'][_0x8a1e('0x26')]({'where':{'id':_0x4cf52d['transcribeAccountId']}});})[_0x8a1e('0xe')](function(_0x901565){if(!_0x901565){throw new db[(_0x8a1e('0x23'))][(_0x8a1e('0x1e'))](_0x8a1e('0x35'));}if(!_0x901565[_0x8a1e('0xc')]||!_0x901565[_0x8a1e('0x29')]){throw new db[(_0x8a1e('0x23'))][(_0x8a1e('0x1e'))](_0x8a1e('0x27'));}_0x49cb8e=_0x901565;var _0x4f164d=[];_0x3fb2b4['forEach'](function(_0xa6be75){_0x4f164d['push'](checkTranscribeJob(_0xa6be75,_0x4cf52d,_0x49cb8e));});return BPromise[_0x8a1e('0x42')](_0x4f164d);})['catch'](function(_0x3aff36){if(_0x3aff36){if(!_0x3aff36[_0x8a1e('0x38')]||_0x3aff36[_0x8a1e('0x38')]!==_0x8a1e('0x43')){logger[_0x8a1e('0x39')](util[_0x8a1e('0x3a')](_0x3aff36,{'showHidden':![],'depth':null}));}}});}exports[_0x8a1e('0x44')]=function(){setInterval(function(){return checkTranscribe();},0x3c*0x3e8);return checkTranscribe();};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8c8b=['socket.io-emitter','WhatsappInteraction','findAll','lastMsgAt','subtract','hours','length','map','info','[WHATSAPP]\x20Interactions\x20to\x20close:','join','update','system','timeout','format','YYYY-MM-DD\x20HH:mm:ss','[WHATSAPP]\x20Sending\x20updates\x20for\x20interactions:','emit','whatsappInteraction:update','error','[WHATSAPP]\x20Error\x20closing\x20interactions','inspect','lodash','util','../../config/environment','../../mysqldb','../logger','defaults','redis','localhost'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0x8c8b,0x106));var _0xb8c8=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x8c8b[_0x321bb2];return _0x9c12ed;};'use strict';var _=require(_0xb8c8('0x0'));var moment=require('moment');var Redis=require('ioredis');var util=require(_0xb8c8('0x1'));var config=require(_0xb8c8('0x2'));var db=require(_0xb8c8('0x3'))['db'];var logger=require(_0xb8c8('0x4'))('schedule');config['redis']=_[_0xb8c8('0x5')](config[_0xb8c8('0x6')],{'host':_0xb8c8('0x7'),'port':0x18eb});var io=require(_0xb8c8('0x8'))(new Redis(config[_0xb8c8('0x6')]));function closeInteractions(){var _0x3c33cf=[];return db[_0xb8c8('0x9')][_0xb8c8('0xa')]({'raw':!![],'attributes':['id',_0xb8c8('0xb')],'where':{'closed':![],'lastMsgDirection':'in','lastMsgAt':{'$lt':moment()[_0xb8c8('0xc')](0x18,_0xb8c8('0xd'))}}})['then'](function(_0xfa7361){if(_0xfa7361&&_0xfa7361[_0xb8c8('0xe')]){_0x3c33cf=_[_0xb8c8('0xf')](_0xfa7361||[],'id');logger[_0xb8c8('0x10')](_0xb8c8('0x11'),_0x3c33cf[_0xb8c8('0x12')]());return db[_0xb8c8('0x9')][_0xb8c8('0x13')]({'closeReason':_0xb8c8('0x14'),'disposition':_0xb8c8('0x15'),'closed':!![],'closedAt':moment()[_0xb8c8('0x16')](_0xb8c8('0x17'))},{'where':{'id':_0x3c33cf}});}})['then'](function(){if(_0x3c33cf&&_0x3c33cf[_0xb8c8('0xe')]){logger['info'](_0xb8c8('0x18'),_0x3c33cf[_0xb8c8('0x12')]());for(var _0x4f4715=0x0;_0x4f4715<_0x3c33cf[_0xb8c8('0xe')];_0x4f4715++){io[_0xb8c8('0x19')](_0xb8c8('0x1a'),{'id':_0x3c33cf[_0x4f4715],'closed':!![]});}}})['catch'](function(_0x198719){logger[_0xb8c8('0x1b')](_0xb8c8('0x1c'),_0x198719?util[_0xb8c8('0x1d')](_0x198719,{'showHidden':![],'depth':null}):'');});}exports['start']=function(){setInterval(function(){return closeInteractions();},0x3c*0x3e8);return closeInteractions();};
\ No newline at end of file
+var _0x47ea=['../../config/environment','../../mysqldb','schedule','redis','localhost','socket.io-emitter','WhatsappInteraction','lastMsgAt','subtract','hours','then','length','info','join','system','timeout','format','YYYY-MM-DD\x20HH:mm:ss','[WHATSAPP]\x20Sending\x20updates\x20for\x20interactions:','whatsappInteraction:update','inspect','start','lodash','ioredis','util'];(function(_0x5e87d3,_0xa44c62){var _0x4852b0=function(_0x56b371){while(--_0x56b371){_0x5e87d3['push'](_0x5e87d3['shift']());}};_0x4852b0(++_0xa44c62);}(_0x47ea,0x15b));var _0xa47e=function(_0x5447aa,_0x3afc00){_0x5447aa=_0x5447aa-0x0;var _0xb21e53=_0x47ea[_0x5447aa];return _0xb21e53;};'use strict';var _=require(_0xa47e('0x0'));var moment=require('moment');var Redis=require(_0xa47e('0x1'));var util=require(_0xa47e('0x2'));var config=require(_0xa47e('0x3'));var db=require(_0xa47e('0x4'))['db'];var logger=require('../logger')(_0xa47e('0x5'));config[_0xa47e('0x6')]=_['defaults'](config[_0xa47e('0x6')],{'host':_0xa47e('0x7'),'port':0x18eb});var io=require(_0xa47e('0x8'))(new Redis(config['redis']));function closeInteractions(){var _0x44e8e6=[];return db[_0xa47e('0x9')]['findAll']({'raw':!![],'attributes':['id',_0xa47e('0xa')],'where':{'closed':![],'lastMsgDirection':'in','lastMsgAt':{'$lt':moment()[_0xa47e('0xb')](0x18,_0xa47e('0xc'))}}})[_0xa47e('0xd')](function(_0x32699c){if(_0x32699c&&_0x32699c[_0xa47e('0xe')]){_0x44e8e6=_['map'](_0x32699c||[],'id');logger[_0xa47e('0xf')]('[WHATSAPP]\x20Interactions\x20to\x20close:',_0x44e8e6[_0xa47e('0x10')]());return db['WhatsappInteraction']['update']({'closeReason':_0xa47e('0x11'),'disposition':_0xa47e('0x12'),'closed':!![],'closedAt':moment()[_0xa47e('0x13')](_0xa47e('0x14'))},{'where':{'id':_0x44e8e6}});}})[_0xa47e('0xd')](function(){if(_0x44e8e6&&_0x44e8e6[_0xa47e('0xe')]){logger[_0xa47e('0xf')](_0xa47e('0x15'),_0x44e8e6['join']());for(var _0xcf3a0=0x0;_0xcf3a0<_0x44e8e6['length'];_0xcf3a0++){io['emit'](_0xa47e('0x16'),{'id':_0x44e8e6[_0xcf3a0],'closed':!![]});}}})['catch'](function(_0x35c22f){logger['error']('[WHATSAPP]\x20Error\x20closing\x20interactions',_0x35c22f?util[_0xa47e('0x17')](_0x35c22f,{'showHidden':![],'depth':null}):'');});}exports[_0xa47e('0x18')]=function(){setInterval(function(){return closeInteractions();},0x3c*0x3e8);return closeInteractions();};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb2f3=['finished\x20populating','contacts1','CmHopper','bulkCreate','hopper1','hopper2','catch','util','push','Innocenzo','innocenzo.biondo','@xcally.com','now','Biondo','CmContact','destroy','then','log'];(function(_0x2ab309,_0x2c2872){var _0x4fe3ff=function(_0x254c09){while(--_0x254c09){_0x2ab309['push'](_0x2ab309['shift']());}};_0x4fe3ff(++_0x2c2872);}(_0xb2f3,0x181));var _0x3b2f=function(_0x7e2eb0,_0x17cd58){_0x7e2eb0=_0x7e2eb0-0x0;var _0xd92de4=_0xb2f3[_0x7e2eb0];return _0xd92de4;};'use strict';var util=require(_0x3b2f('0x0'));var db=require('../mysqldb')['db'];var contacts=[];var hopper=[];var contacts2=[];var hopper2=[];for(var i=0x1;i<=0x4b0;i+=0x1){contacts[_0x3b2f('0x1')]({'id':i,'firstName':_0x3b2f('0x2')+i,'lastName':'Biondo'+i,'phone':0xf879fb460+i,'email':_0x3b2f('0x3')+i+_0x3b2f('0x4')});}for(var i=0x1;i<=0x4b0;i+=0x1){hopper[_0x3b2f('0x1')]({'id':i,'active':![],'scheduledat':Date[_0x3b2f('0x5')](),'countbusyretry':0x0,'countcongestionretry':0x0,'countnoanswerretry':0x0,'ContactId':i,'ListId':0x1,'UserId':0x1,'VoiceQueueId':0x3fd,'createdAt':Date[_0x3b2f('0x5')](),'updatedAt':Date['now']()});}for(var i=0x4b1;i<=0x960;i+=0x1){contacts2[_0x3b2f('0x1')]({'id':i,'firstName':_0x3b2f('0x2')+i,'lastName':_0x3b2f('0x6')+i,'phone':0xf879fb460+i,'email':_0x3b2f('0x3')+i+_0x3b2f('0x4')});}for(var i=0x4b1;i<=0x960;i+=0x1){hopper2[_0x3b2f('0x1')]({'id':i,'active':![],'scheduledat':Date[_0x3b2f('0x5')](),'countbusyretry':0x0,'countcongestionretry':0x0,'countnoanswerretry':0x0,'ContactId':i,'ListId':0x1,'UserId':0x1,'VoiceQueueId':0x3fd,'createdAt':Date[_0x3b2f('0x5')](),'updatedAt':Date['now']()});}db[_0x3b2f('0x7')][_0x3b2f('0x8')]({'where':{}})[_0x3b2f('0x9')](function(){return db[_0x3b2f('0x7')]['bulkCreate'](contacts);})['then'](function(){console[_0x3b2f('0xa')](_0x3b2f('0xb'),_0x3b2f('0xc'));return db[_0x3b2f('0xd')][_0x3b2f('0x8')]({'where':{}});})['then'](function(){return db['CmHopper'][_0x3b2f('0xe')](hopper);})[_0x3b2f('0x9')](function(){console[_0x3b2f('0xa')]('finished\x20populating',_0x3b2f('0xf'));return db[_0x3b2f('0x7')][_0x3b2f('0xe')](contacts2);})[_0x3b2f('0x9')](function(){console[_0x3b2f('0xa')](_0x3b2f('0xb'),'contacts2');return db[_0x3b2f('0xd')]['bulkCreate'](hopper2);})[_0x3b2f('0x9')](function(){console[_0x3b2f('0xa')](_0x3b2f('0xb'),_0x3b2f('0x10'));})[_0x3b2f('0x11')](function(_0x57052a){console['log'](_0x57052a);});
\ No newline at end of file
+var _0xf3cc=['hopper1','CmContact','contacts2','CmHopper','hopper2','util','../mysqldb','push','Innocenzo','Biondo','innocenzo.biondo','@xcally.com','now','destroy','bulkCreate','then','log','finished\x20populating','contacts1'];(function(_0x567997,_0x470570){var _0x51e362=function(_0x2c60aa){while(--_0x2c60aa){_0x567997['push'](_0x567997['shift']());}};_0x51e362(++_0x470570);}(_0xf3cc,0x8a));var _0xcf3c=function(_0x1c2aeb,_0x48433c){_0x1c2aeb=_0x1c2aeb-0x0;var _0x783379=_0xf3cc[_0x1c2aeb];return _0x783379;};'use strict';var util=require(_0xcf3c('0x0'));var db=require(_0xcf3c('0x1'))['db'];var contacts=[];var hopper=[];var contacts2=[];var hopper2=[];for(var i=0x1;i<=0x4b0;i+=0x1){contacts[_0xcf3c('0x2')]({'id':i,'firstName':_0xcf3c('0x3')+i,'lastName':_0xcf3c('0x4')+i,'phone':0xf879fb460+i,'email':_0xcf3c('0x5')+i+_0xcf3c('0x6')});}for(var i=0x1;i<=0x4b0;i+=0x1){hopper[_0xcf3c('0x2')]({'id':i,'active':![],'scheduledat':Date[_0xcf3c('0x7')](),'countbusyretry':0x0,'countcongestionretry':0x0,'countnoanswerretry':0x0,'ContactId':i,'ListId':0x1,'UserId':0x1,'VoiceQueueId':0x3fd,'createdAt':Date[_0xcf3c('0x7')](),'updatedAt':Date['now']()});}for(var i=0x4b1;i<=0x960;i+=0x1){contacts2[_0xcf3c('0x2')]({'id':i,'firstName':'Innocenzo'+i,'lastName':'Biondo'+i,'phone':0xf879fb460+i,'email':_0xcf3c('0x5')+i+_0xcf3c('0x6')});}for(var i=0x4b1;i<=0x960;i+=0x1){hopper2[_0xcf3c('0x2')]({'id':i,'active':![],'scheduledat':Date[_0xcf3c('0x7')](),'countbusyretry':0x0,'countcongestionretry':0x0,'countnoanswerretry':0x0,'ContactId':i,'ListId':0x1,'UserId':0x1,'VoiceQueueId':0x3fd,'createdAt':Date['now'](),'updatedAt':Date[_0xcf3c('0x7')]()});}db['CmContact'][_0xcf3c('0x8')]({'where':{}})['then'](function(){return db['CmContact'][_0xcf3c('0x9')](contacts);})[_0xcf3c('0xa')](function(){console[_0xcf3c('0xb')](_0xcf3c('0xc'),_0xcf3c('0xd'));return db['CmHopper'][_0xcf3c('0x8')]({'where':{}});})[_0xcf3c('0xa')](function(){return db['CmHopper'][_0xcf3c('0x9')](hopper);})[_0xcf3c('0xa')](function(){console[_0xcf3c('0xb')]('finished\x20populating',_0xcf3c('0xe'));return db[_0xcf3c('0xf')][_0xcf3c('0x9')](contacts2);})[_0xcf3c('0xa')](function(){console[_0xcf3c('0xb')](_0xcf3c('0xc'),_0xcf3c('0x10'));return db[_0xcf3c('0x11')]['bulkCreate'](hopper2);})[_0xcf3c('0xa')](function(){console[_0xcf3c('0xb')]('finished\x20populating',_0xcf3c('0x12'));})['catch'](function(_0x412b1b){console[_0xcf3c('0xb')](_0x412b1b);});
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1bff=['/etc/pki/tls/private/motion.key','actpass','\x22%s\x22\x20<%s>','bulkCreate','then','log','add\x20user','catch','util','../mysqldb','push','%s%s','agent','format','password','friend','udp','wss','all','yes'];(function(_0x4b369d,_0x265eb8){var _0x571a98=function(_0x56341a){while(--_0x56341a){_0x4b369d['push'](_0x4b369d['shift']());}};_0x571a98(++_0x265eb8);}(_0x1bff,0x1d4));var _0xf1bf=function(_0x4ba380,_0x259bee){_0x4ba380=_0x4ba380-0x0;var _0x4b111b=_0x1bff[_0x4ba380];return _0x4b111b;};'use strict';var util=require(_0xf1bf('0x0'));var db=require(_0xf1bf('0x1'))['db'];var users=[];for(var i=0x1;i<=0xc8;i+=0x1){users[_0xf1bf('0x2')]({'name':util['format'](_0xf1bf('0x3'),_0xf1bf('0x4'),i),'fullname':util[_0xf1bf('0x5')](_0xf1bf('0x3'),'agent',i),'email':util[_0xf1bf('0x5')]('%s%s@xcally.com',_0xf1bf('0x4'),i),'role':_0xf1bf('0x4'),'password':_0xf1bf('0x6'),'internal':0xfa0+i,'type':_0xf1bf('0x7'),'transport':[_0xf1bf('0x8'),'ws',_0xf1bf('0x9')],'disallow':[_0xf1bf('0xa')],'allow':['ulaw'],'defaultuser':util[_0xf1bf('0x5')](_0xf1bf('0x3'),'agent',i),'encryption':_0xf1bf('0xb'),'avpf':_0xf1bf('0xb'),'force_avp':_0xf1bf('0xb'),'icesupport':_0xf1bf('0xb'),'dtlsenable':_0xf1bf('0xb'),'dtlsverify':'no','dtlscertfile':'/etc/pki/tls/certs/motion.crt','dtlsprivatekey':_0xf1bf('0xc'),'dtlssetup':_0xf1bf('0xd'),'callerid':util[_0xf1bf('0x5')](_0xf1bf('0xe'),util[_0xf1bf('0x5')](_0xf1bf('0x3'),'agent',i),0xfa0+i)});}db['User'][_0xf1bf('0xf')](users)[_0xf1bf('0x10')](function(){console[_0xf1bf('0x11')](_0xf1bf('0x12'));})[_0xf1bf('0x13')](function(_0x44fb94){console[_0xf1bf('0x11')](_0x44fb94);});
\ No newline at end of file
+var _0x95fb=['/etc/pki/tls/certs/motion.crt','/etc/pki/tls/private/motion.key','\x22%s\x22\x20<%s>','bulkCreate','then','add\x20user','util','../mysqldb','push','%s%s','agent','format','%s%s@xcally.com','password','udp','wss','all','ulaw','yes'];(function(_0x529f1c,_0x437ed1){var _0x4d57ab=function(_0x39d479){while(--_0x39d479){_0x529f1c['push'](_0x529f1c['shift']());}};_0x4d57ab(++_0x437ed1);}(_0x95fb,0x136));var _0xb95f=function(_0x389a65,_0x134339){_0x389a65=_0x389a65-0x0;var _0xee4908=_0x95fb[_0x389a65];return _0xee4908;};'use strict';var util=require(_0xb95f('0x0'));var db=require(_0xb95f('0x1'))['db'];var users=[];for(var i=0x1;i<=0xc8;i+=0x1){users[_0xb95f('0x2')]({'name':util['format'](_0xb95f('0x3'),_0xb95f('0x4'),i),'fullname':util[_0xb95f('0x5')](_0xb95f('0x3'),_0xb95f('0x4'),i),'email':util[_0xb95f('0x5')](_0xb95f('0x6'),_0xb95f('0x4'),i),'role':_0xb95f('0x4'),'password':_0xb95f('0x7'),'internal':0xfa0+i,'type':'friend','transport':[_0xb95f('0x8'),'ws',_0xb95f('0x9')],'disallow':[_0xb95f('0xa')],'allow':[_0xb95f('0xb')],'defaultuser':util['format'](_0xb95f('0x3'),_0xb95f('0x4'),i),'encryption':'yes','avpf':_0xb95f('0xc'),'force_avp':_0xb95f('0xc'),'icesupport':_0xb95f('0xc'),'dtlsenable':_0xb95f('0xc'),'dtlsverify':'no','dtlscertfile':_0xb95f('0xd'),'dtlsprivatekey':_0xb95f('0xe'),'dtlssetup':'actpass','callerid':util[_0xb95f('0x5')](_0xb95f('0xf'),util[_0xb95f('0x5')](_0xb95f('0x3'),_0xb95f('0x4'),i),0xfa0+i)});}db['User'][_0xb95f('0x10')](users)[_0xb95f('0x11')](function(){console['log'](_0xb95f('0x12'));})['catch'](function(_0x28d1f8){console['log'](_0x28d1f8);});
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1be0=['handshake','query','find','userProfileId','ChatInteraction','ChatInteractions','MailInteractions','FaxInteraction','FaxInteractions','SmsInteraction','SmsInteractions','OpenchannelInteraction','OpenchannelInteractions','WhatsappInteraction','WhatsappInteractions','voice:inbound','voice:outbound','include','push','ChatQueue','FaxQueue','SmsQueue','MailQueue','OpenchannelQueue','WhatsappQueue','user','Telephones','Trunk','getVoiceQueues','getMailQueues','getOpenchannelQueues','getWhatsappQueues','chat','fax','sms','mail','openchannel','whatsapp','telephone:%s','trunk:%s','campaign:%s:%s','leave','removeChatInteractions','removeMailInteractions','emit','user_has_mail_interactions:remove','removeFaxInteractions','user_has_fax_interactions:remove','removeSmsInteractions','removeOpenchannelInteractions','user_has_openchannel_interactions:remove','user_has_whatsapp_interactions:remove','log','join','default','setMaxListeners','request','remoteAddress','connection','remotePort','connectedAt','nsp','address','disconnect','DISCONNECTED','CONNECTED','util','bluebird','../mysqldb','./environment','Agents','User','name','role','telephone','agent','type','UserProfileSection','autoAssociation','VoiceQueues','ChatQueues','FaxQueues','SmsQueues','MailQueues','OpenchannelQueues','WhatsappQueues','findAll','Trunks','IvrCampaigns','UserProfileResource','resourceId','then','map','where','Campaign','format','%s:queue:%s','length','user:%s'];(function(_0x388398,_0x356777){var _0x183ddc=function(_0x3d53d){while(--_0x3d53d){_0x388398['push'](_0x388398['shift']());}};_0x183ddc(++_0x356777);}(_0x1be0,0x16b));var _0x01be=function(_0x18cc5f,_0x2e73a5){_0x18cc5f=_0x18cc5f-0x0;var _0x516b76=_0x1be0[_0x18cc5f];return _0x516b76;};'use strict';var _=require('lodash');var util=require(_0x01be('0x0'));var BPromise=require(_0x01be('0x1'));var db=require(_0x01be('0x2'))['db'];var config=require(_0x01be('0x3'));var queryQueues={'attributes':['id','name'],'include':[{'as':_0x01be('0x4'),'model':db[_0x01be('0x5')],'attributes':['id',_0x01be('0x6'),_0x01be('0x7')],'raw':!![],'where':{'role':'agent'},'required':![]}]};var queryTelephones={'raw':!![],'attributes':['id',_0x01be('0x6')],'where':{'role':_0x01be('0x8')}};var queryTrunks={'raw':!![],'attributes':['id','name']};var queryAgents={'raw':!![],'attributes':['id','name'],'where':{'role':_0x01be('0x9')}};var queryCampaigns={'raw':!![],'attributes':['id',_0x01be('0x6'),_0x01be('0xa')],'where':{'type':'ivr'}};function getAssociatedResources(_0x17f9ad,_0x4535ed,_0x45cb5b){return db[_0x01be('0xb')]['findOne']({'where':{'name':_0x17f9ad,'userProfileId':_0x4535ed},'raw':!![]})['then'](function(_0x54034e){if(_0x54034e){if(_0x54034e[_0x01be('0xc')]){switch(_0x17f9ad){case _0x01be('0xd'):case _0x01be('0xe'):case _0x01be('0xf'):case _0x01be('0x10'):case _0x01be('0x11'):case _0x01be('0x12'):case _0x01be('0x13'):return db[_0x45cb5b]['findAll'](queryQueues);case'Telephones':return db[_0x45cb5b][_0x01be('0x14')](queryTelephones);case _0x01be('0x15'):return db[_0x45cb5b]['findAll'](queryTrunks);case _0x01be('0x16'):return db[_0x45cb5b]['findAll'](queryCampaigns);}}else{return db[_0x01be('0x17')][_0x01be('0x14')]({'attributes':[_0x01be('0x18')],'where':{'sectionId':_0x54034e['id']},'raw':!![]})[_0x01be('0x19')](function(_0xf63424){if(_0xf63424){var _0x126595={'where':{'id':_[_0x01be('0x1a')](_0xf63424,_0x01be('0x18'))},'raw':!![]};switch(_0x45cb5b){case _0x01be('0x5'):_0x126595[_0x01be('0x1b')][_0x01be('0x7')]=_0x01be('0x8');break;case _0x01be('0x1c'):_0x126595[_0x01be('0x1b')]['type']='ivr';break;}return db[_0x45cb5b][_0x01be('0x14')](_0x126595);}else{return[];}});}}else{return[];}})[_0x01be('0x19')](function(_0x17e77b){return _0x17e77b;});}function joinOrLeaveQueues(_0x5845d8,_0x590f29,_0x87447f,_0x21b5cf){_0x5845d8[_0x590f29](util[_0x01be('0x1d')](_0x01be('0x1e'),_0x87447f,_0x21b5cf[_0x01be('0x6')]));if(_0x21b5cf[_0x01be('0x4')]){for(var _0x187bf3=0x0;_0x187bf3<_0x21b5cf[_0x01be('0x4')][_0x01be('0x1f')];_0x187bf3+=0x1){_0x5845d8[_0x590f29](util[_0x01be('0x1d')](_0x01be('0x20'),_0x21b5cf[_0x01be('0x4')][_0x187bf3][_0x01be('0x6')]));}}}function joinOrLeave(_0x336c97,_0x40cf97,_0x2819cf){var _0x11c019;if(_0x336c97[_0x01be('0x21')][_0x01be('0x22')]['id']){db[_0x01be('0x5')][_0x01be('0x23')]({'attributes':['id',_0x01be('0x6'),_0x01be('0x7'),_0x01be('0x24')],'where':{'id':_0x336c97[_0x01be('0x21')][_0x01be('0x22')]['id']},'include':[{'model':db[_0x01be('0x25')],'as':_0x01be('0x26'),'attributes':['id'],'raw':!![]},{'model':db['MailInteraction'],'as':_0x01be('0x27'),'attributes':['id'],'raw':!![]},{'model':db[_0x01be('0x28')],'as':_0x01be('0x29'),'attributes':['id'],'raw':!![]},{'model':db[_0x01be('0x2a')],'as':_0x01be('0x2b'),'attributes':['id'],'raw':!![]},{'model':db[_0x01be('0x2c')],'as':_0x01be('0x2d'),'attributes':['id'],'raw':!![]},{'model':db[_0x01be('0x2e')],'as':_0x01be('0x2f'),'attributes':['id'],'raw':!![]}]})['then'](function(_0x5803a9){if(_0x5803a9){_0x11c019=_0x5803a9;_0x336c97[_0x40cf97](util[_0x01be('0x1d')](_0x01be('0x20'),_0x5803a9[_0x01be('0x6')]));var _0x5e4464=[];switch(_0x5803a9[_0x01be('0x7')]){case'admin':_0x336c97[_0x40cf97](_0x01be('0x30'));_0x336c97[_0x40cf97](_0x01be('0x31'));if(queryQueues['hasOwnProperty'](_0x01be('0x32'))){delete queryQueues[_0x01be('0x32')];}_0x5e4464[_0x01be('0x33')](db['VoiceQueue'][_0x01be('0x14')](queryQueues));_0x5e4464['push'](db[_0x01be('0x34')]['findAll'](queryQueues));_0x5e4464[_0x01be('0x33')](db[_0x01be('0x35')][_0x01be('0x14')](queryQueues));_0x5e4464[_0x01be('0x33')](db[_0x01be('0x36')][_0x01be('0x14')](queryQueues));_0x5e4464[_0x01be('0x33')](db[_0x01be('0x37')][_0x01be('0x14')](queryQueues));_0x5e4464['push'](db[_0x01be('0x38')][_0x01be('0x14')](queryQueues));_0x5e4464['push'](db[_0x01be('0x39')][_0x01be('0x14')](queryQueues));_0x5e4464['push'](db[_0x01be('0x5')][_0x01be('0x14')](queryTelephones));_0x5e4464[_0x01be('0x33')](db['Trunk'][_0x01be('0x14')](queryTrunks));_0x5e4464[_0x01be('0x33')](db[_0x01be('0x1c')][_0x01be('0x14')](queryCampaigns));_0x5e4464[_0x01be('0x33')](db['User'][_0x01be('0x14')](queryAgents));break;case _0x01be('0x3a'):_0x336c97[_0x40cf97]('voice:inbound');_0x336c97[_0x40cf97](_0x01be('0x31'));_0x5e4464[_0x01be('0x33')](getAssociatedResources(_0x01be('0xd'),_0x5803a9['userProfileId'],'VoiceQueue'));_0x5e4464[_0x01be('0x33')](getAssociatedResources(_0x01be('0xe'),_0x5803a9[_0x01be('0x24')],_0x01be('0x34')));_0x5e4464[_0x01be('0x33')](getAssociatedResources('FaxQueues',_0x5803a9[_0x01be('0x24')],'FaxQueue'));_0x5e4464['push'](getAssociatedResources(_0x01be('0x10'),_0x5803a9[_0x01be('0x24')],'SmsQueue'));_0x5e4464['push'](getAssociatedResources(_0x01be('0x11'),_0x5803a9['userProfileId'],_0x01be('0x37')));_0x5e4464[_0x01be('0x33')](getAssociatedResources(_0x01be('0x12'),_0x5803a9[_0x01be('0x24')],_0x01be('0x38')));_0x5e4464[_0x01be('0x33')](getAssociatedResources(_0x01be('0x13'),_0x5803a9[_0x01be('0x24')],'WhatsappQueue'));_0x5e4464[_0x01be('0x33')](getAssociatedResources(_0x01be('0x3b'),_0x5803a9[_0x01be('0x24')],_0x01be('0x5')));_0x5e4464[_0x01be('0x33')](getAssociatedResources('Trunks',_0x5803a9[_0x01be('0x24')],_0x01be('0x3c')));_0x5e4464[_0x01be('0x33')](getAssociatedResources(_0x01be('0x16'),_0x5803a9[_0x01be('0x24')],_0x01be('0x1c')));_0x5e4464[_0x01be('0x33')](db['User']['findAll'](queryAgents));break;case _0x01be('0x9'):_0x336c97[_0x40cf97](_0x01be('0x30'));_0x336c97[_0x40cf97]('voice:outbound');_0x5e4464[_0x01be('0x33')](_0x5803a9[_0x01be('0x3d')]({'attributes':['id',_0x01be('0x6')]}));_0x5e4464[_0x01be('0x33')](_0x5803a9['getChatQueues']({'attributes':['id',_0x01be('0x6')]}));_0x5e4464[_0x01be('0x33')](_0x5803a9['getFaxQueues']({'attributes':['id',_0x01be('0x6')]}));_0x5e4464['push'](_0x5803a9['getSmsQueues']({'attributes':['id',_0x01be('0x6')]}));_0x5e4464[_0x01be('0x33')](_0x5803a9[_0x01be('0x3e')]({'attributes':['id',_0x01be('0x6')]}));_0x5e4464[_0x01be('0x33')](_0x5803a9[_0x01be('0x3f')]({'attributes':['id',_0x01be('0x6')]}));_0x5e4464[_0x01be('0x33')](_0x5803a9[_0x01be('0x40')]({'attributes':['id',_0x01be('0x6')]}));break;}return BPromise['all'](_0x5e4464);}})[_0x01be('0x19')](function(_0x53daaa){if(_0x53daaa&&_0x53daaa[_0x01be('0x1f')]){for(var _0x4885eb=0x0;_0x4885eb<_0x53daaa[_0x01be('0x1f')];_0x4885eb+=0x1){for(var _0x878731=0x0;_0x878731<_0x53daaa[_0x4885eb][_0x01be('0x1f')];_0x878731+=0x1){switch(_0x4885eb){case 0x0:joinOrLeaveQueues(_0x336c97,_0x40cf97,'voice',_0x53daaa[_0x4885eb][_0x878731]);break;case 0x1:joinOrLeaveQueues(_0x336c97,_0x40cf97,_0x01be('0x41'),_0x53daaa[_0x4885eb][_0x878731]);break;case 0x2:joinOrLeaveQueues(_0x336c97,_0x40cf97,_0x01be('0x42'),_0x53daaa[_0x4885eb][_0x878731]);break;case 0x3:joinOrLeaveQueues(_0x336c97,_0x40cf97,_0x01be('0x43'),_0x53daaa[_0x4885eb][_0x878731]);break;case 0x4:joinOrLeaveQueues(_0x336c97,_0x40cf97,_0x01be('0x44'),_0x53daaa[_0x4885eb][_0x878731]);break;case 0x5:joinOrLeaveQueues(_0x336c97,_0x40cf97,_0x01be('0x45'),_0x53daaa[_0x4885eb][_0x878731]);break;case 0x6:joinOrLeaveQueues(_0x336c97,_0x40cf97,_0x01be('0x46'),_0x53daaa[_0x4885eb][_0x878731]);break;case 0x7:if(_0x11c019[_0x01be('0x7')]!=='agent')_0x336c97[_0x40cf97](util[_0x01be('0x1d')](_0x01be('0x47'),_0x53daaa[_0x4885eb][_0x878731]['name']));break;case 0x8:if(_0x11c019[_0x01be('0x7')]!=='agent')_0x336c97[_0x40cf97](util[_0x01be('0x1d')](_0x01be('0x48'),_0x53daaa[_0x4885eb][_0x878731][_0x01be('0x6')]));break;case 0x9:if(_0x11c019[_0x01be('0x7')]!=='agent')_0x336c97[_0x40cf97](util['format'](_0x01be('0x49'),_0x53daaa[_0x4885eb][_0x878731]['type'],_0x53daaa[_0x4885eb][_0x878731][_0x01be('0x6')]));break;case 0xa:_0x336c97[_0x40cf97](util[_0x01be('0x1d')](_0x01be('0x20'),_0x53daaa[_0x4885eb][_0x878731][_0x01be('0x6')]));break;}}}}})[_0x01be('0x19')](function(){if(_0x40cf97===_0x01be('0x4a')){var _0x5fe89d=_['map'](_0x11c019[_0x01be('0x26')],'id');return _0x11c019[_0x01be('0x4b')](_0x5fe89d)[_0x01be('0x19')](function(){for(var _0x31cbb1=0x0;_0x31cbb1<_0x5fe89d['length'];_0x31cbb1+=0x1){_0x2819cf['emit']('user_has_chat_interactions:remove',{'ChatInteractionId':Number(_0x5fe89d[_0x31cbb1]),'UserId':Number(_0x11c019['id'])});}});}})[_0x01be('0x19')](function(){if(_0x40cf97===_0x01be('0x4a')){var _0x55b56e=_[_0x01be('0x1a')](_0x11c019[_0x01be('0x27')],'id');return _0x11c019[_0x01be('0x4c')](_0x55b56e)[_0x01be('0x19')](function(){for(var _0x4158f1=0x0;_0x4158f1<_0x55b56e[_0x01be('0x1f')];_0x4158f1+=0x1){_0x2819cf[_0x01be('0x4d')](_0x01be('0x4e'),{'MailInteractionId':Number(_0x55b56e[_0x4158f1]),'UserId':Number(_0x11c019['id'])});}});}})[_0x01be('0x19')](function(){if(_0x40cf97==='leave'){var _0x409363=_['map'](_0x11c019[_0x01be('0x29')],'id');return _0x11c019[_0x01be('0x4f')](_0x409363)['then'](function(){for(var _0x31e890=0x0;_0x31e890<_0x409363[_0x01be('0x1f')];_0x31e890+=0x1){_0x2819cf[_0x01be('0x4d')](_0x01be('0x50'),{'FaxInteractionId':Number(_0x409363[_0x31e890]),'UserId':Number(_0x11c019['id'])});}});}})[_0x01be('0x19')](function(){if(_0x40cf97===_0x01be('0x4a')){var _0x5c1530=_['map'](_0x11c019['SmsInteractions'],'id');return _0x11c019[_0x01be('0x51')](_0x5c1530)[_0x01be('0x19')](function(){for(var _0x41ee95=0x0;_0x41ee95<_0x5c1530['length'];_0x41ee95+=0x1){_0x2819cf[_0x01be('0x4d')]('user_has_sms_interactions:remove',{'SmsInteractionId':Number(_0x5c1530[_0x41ee95]),'UserId':Number(_0x11c019['id'])});}});}})['then'](function(){if(_0x40cf97===_0x01be('0x4a')){var _0x1d1d75=_[_0x01be('0x1a')](_0x11c019[_0x01be('0x2d')],'id');return _0x11c019[_0x01be('0x52')](_0x1d1d75)[_0x01be('0x19')](function(){for(var _0x46caf5=0x0;_0x46caf5<_0x1d1d75['length'];_0x46caf5+=0x1){_0x2819cf[_0x01be('0x4d')](_0x01be('0x53'),{'OpenchannelInteractionId':Number(_0x1d1d75[_0x46caf5]),'UserId':Number(_0x11c019['id'])});}});}})[_0x01be('0x19')](function(){if(_0x40cf97===_0x01be('0x4a')){var _0x215b7b=_[_0x01be('0x1a')](_0x11c019['WhatsappInteractions'],'id');return _0x11c019['removeWhatsappInteractions'](_0x215b7b)[_0x01be('0x19')](function(){for(var _0x130fdc=0x0;_0x130fdc<_0x215b7b[_0x01be('0x1f')];_0x130fdc+=0x1){_0x2819cf[_0x01be('0x4d')](_0x01be('0x54'),{'WhatsappInteractionId':Number(_0x215b7b[_0x130fdc]),'UserId':Number(_0x11c019['id'])});}});}})['catch'](function(_0x28b72a){_0x336c97[_0x01be('0x55')](_0x28b72a);});}}function onDisconnect(_0x3efa23,_0xaf16c7){joinOrLeave(_0x3efa23,_0x01be('0x4a'),_0xaf16c7);}function onConnect(_0x2c56a5){joinOrLeave(_0x2c56a5,_0x01be('0x56'));}exports[_0x01be('0x57')]=function(_0x2f1fbd){_0x2f1fbd['on']('connection',function(_0x30a9f1){_0x30a9f1[_0x01be('0x58')](0x0);_0x30a9f1['address']=_0x30a9f1[_0x01be('0x59')]['connection'][_0x01be('0x5a')]+':'+_0x30a9f1[_0x01be('0x59')][_0x01be('0x5b')][_0x01be('0x5c')];_0x30a9f1[_0x01be('0x5d')]=new Date();_0x30a9f1[_0x01be('0x55')]=function(_0x2d1d69){console[_0x01be('0x55')]('SocketIO\x20'+_0x30a9f1[_0x01be('0x5e')][_0x01be('0x6')]+'['+_0x30a9f1[_0x01be('0x5f')]+']',_0x2d1d69);};_0x30a9f1['on'](_0x01be('0x60'),function(){onDisconnect(_0x30a9f1,_0x2f1fbd);_0x30a9f1[_0x01be('0x55')](_0x01be('0x61'));});onConnect(_0x30a9f1);_0x30a9f1[_0x01be('0x55')](_0x01be('0x62'));});};
\ No newline at end of file
+var _0x11f3=['VoiceQueue','FaxQueue','MailQueue','WhatsappQueue','user','ChatQueue','SmsQueue','OpenchannelQueue','Trunk','getVoiceQueues','getChatQueues','getFaxQueues','getMailQueues','getOpenchannelQueues','all','length','fax','mail','openchannel','trunk:%s','campaign:%s:%s','type','leave','removeChatInteractions','emit','user_has_chat_interactions:remove','removeMailInteractions','removeFaxInteractions','user_has_fax_interactions:remove','removeSmsInteractions','user_has_sms_interactions:remove','OpenchannelInteractions','user_has_openchannel_interactions:remove','removeWhatsappInteractions','user_has_whatsapp_interactions:remove','catch','log','join','default','connection','setMaxListeners','address','request','remoteAddress','remotePort','nsp','DISCONNECTED','lodash','util','bluebird','./environment','Agents','User','name','agent','ivr','UserProfileSection','then','autoAssociation','VoiceQueues','ChatQueues','FaxQueues','SmsQueues','MailQueues','OpenchannelQueues','WhatsappQueues','findAll','Telephones','Trunks','IvrCampaigns','UserProfileResource','map','resourceId','where','role','telephone','Campaign','format','%s:queue:%s','user:%s','query','userProfileId','ChatInteractions','MailInteraction','MailInteractions','FaxInteractions','SmsInteraction','SmsInteractions','WhatsappInteraction','admin','voice:inbound','voice:outbound','include','push'];(function(_0x12e1df,_0x2c7cec){var _0x4dbd32=function(_0x407449){while(--_0x407449){_0x12e1df['push'](_0x12e1df['shift']());}};_0x4dbd32(++_0x2c7cec);}(_0x11f3,0x149));var _0x311f=function(_0x576fbd,_0x9ae60a){_0x576fbd=_0x576fbd-0x0;var _0x39b0e4=_0x11f3[_0x576fbd];return _0x39b0e4;};'use strict';var _=require(_0x311f('0x0'));var util=require(_0x311f('0x1'));var BPromise=require(_0x311f('0x2'));var db=require('../mysqldb')['db'];var config=require(_0x311f('0x3'));var queryQueues={'attributes':['id','name'],'include':[{'as':_0x311f('0x4'),'model':db[_0x311f('0x5')],'attributes':['id',_0x311f('0x6'),'role'],'raw':!![],'where':{'role':'agent'},'required':![]}]};var queryTelephones={'raw':!![],'attributes':['id',_0x311f('0x6')],'where':{'role':'telephone'}};var queryTrunks={'raw':!![],'attributes':['id',_0x311f('0x6')]};var queryAgents={'raw':!![],'attributes':['id',_0x311f('0x6')],'where':{'role':_0x311f('0x7')}};var queryCampaigns={'raw':!![],'attributes':['id',_0x311f('0x6'),'type'],'where':{'type':_0x311f('0x8')}};function getAssociatedResources(_0x28acfb,_0x57500,_0x21b762){return db[_0x311f('0x9')]['findOne']({'where':{'name':_0x28acfb,'userProfileId':_0x57500},'raw':!![]})[_0x311f('0xa')](function(_0x292325){if(_0x292325){if(_0x292325[_0x311f('0xb')]){switch(_0x28acfb){case _0x311f('0xc'):case _0x311f('0xd'):case _0x311f('0xe'):case _0x311f('0xf'):case _0x311f('0x10'):case _0x311f('0x11'):case _0x311f('0x12'):return db[_0x21b762][_0x311f('0x13')](queryQueues);case _0x311f('0x14'):return db[_0x21b762][_0x311f('0x13')](queryTelephones);case _0x311f('0x15'):return db[_0x21b762][_0x311f('0x13')](queryTrunks);case _0x311f('0x16'):return db[_0x21b762][_0x311f('0x13')](queryCampaigns);}}else{return db[_0x311f('0x17')][_0x311f('0x13')]({'attributes':['resourceId'],'where':{'sectionId':_0x292325['id']},'raw':!![]})['then'](function(_0x5013f9){if(_0x5013f9){var _0x114ad7={'where':{'id':_[_0x311f('0x18')](_0x5013f9,_0x311f('0x19'))},'raw':!![]};switch(_0x21b762){case _0x311f('0x5'):_0x114ad7[_0x311f('0x1a')][_0x311f('0x1b')]=_0x311f('0x1c');break;case _0x311f('0x1d'):_0x114ad7[_0x311f('0x1a')]['type']=_0x311f('0x8');break;}return db[_0x21b762][_0x311f('0x13')](_0x114ad7);}else{return[];}});}}else{return[];}})[_0x311f('0xa')](function(_0x451467){return _0x451467;});}function joinOrLeaveQueues(_0x14cd43,_0x2e243f,_0x2e6974,_0x22729c){_0x14cd43[_0x2e243f](util[_0x311f('0x1e')](_0x311f('0x1f'),_0x2e6974,_0x22729c['name']));if(_0x22729c[_0x311f('0x4')]){for(var _0x4d3ea9=0x0;_0x4d3ea9<_0x22729c[_0x311f('0x4')]['length'];_0x4d3ea9+=0x1){_0x14cd43[_0x2e243f](util[_0x311f('0x1e')](_0x311f('0x20'),_0x22729c[_0x311f('0x4')][_0x4d3ea9][_0x311f('0x6')]));}}}function joinOrLeave(_0x6632c5,_0x14ae25,_0x59023e){var _0x5a3319;if(_0x6632c5['handshake'][_0x311f('0x21')]['id']){db[_0x311f('0x5')]['find']({'attributes':['id',_0x311f('0x6'),_0x311f('0x1b'),_0x311f('0x22')],'where':{'id':_0x6632c5['handshake'][_0x311f('0x21')]['id']},'include':[{'model':db['ChatInteraction'],'as':_0x311f('0x23'),'attributes':['id'],'raw':!![]},{'model':db[_0x311f('0x24')],'as':_0x311f('0x25'),'attributes':['id'],'raw':!![]},{'model':db['FaxInteraction'],'as':_0x311f('0x26'),'attributes':['id'],'raw':!![]},{'model':db[_0x311f('0x27')],'as':_0x311f('0x28'),'attributes':['id'],'raw':!![]},{'model':db['OpenchannelInteraction'],'as':'OpenchannelInteractions','attributes':['id'],'raw':!![]},{'model':db[_0x311f('0x29')],'as':'WhatsappInteractions','attributes':['id'],'raw':!![]}]})[_0x311f('0xa')](function(_0x22a590){if(_0x22a590){_0x5a3319=_0x22a590;_0x6632c5[_0x14ae25](util[_0x311f('0x1e')](_0x311f('0x20'),_0x22a590['name']));var _0x1b8a1f=[];switch(_0x22a590['role']){case _0x311f('0x2a'):_0x6632c5[_0x14ae25](_0x311f('0x2b'));_0x6632c5[_0x14ae25](_0x311f('0x2c'));if(queryQueues['hasOwnProperty'](_0x311f('0x2d'))){delete queryQueues['include'];}_0x1b8a1f[_0x311f('0x2e')](db[_0x311f('0x2f')][_0x311f('0x13')](queryQueues));_0x1b8a1f[_0x311f('0x2e')](db['ChatQueue'][_0x311f('0x13')](queryQueues));_0x1b8a1f['push'](db[_0x311f('0x30')][_0x311f('0x13')](queryQueues));_0x1b8a1f[_0x311f('0x2e')](db['SmsQueue'][_0x311f('0x13')](queryQueues));_0x1b8a1f[_0x311f('0x2e')](db[_0x311f('0x31')][_0x311f('0x13')](queryQueues));_0x1b8a1f[_0x311f('0x2e')](db['OpenchannelQueue'][_0x311f('0x13')](queryQueues));_0x1b8a1f[_0x311f('0x2e')](db[_0x311f('0x32')][_0x311f('0x13')](queryQueues));_0x1b8a1f[_0x311f('0x2e')](db[_0x311f('0x5')][_0x311f('0x13')](queryTelephones));_0x1b8a1f[_0x311f('0x2e')](db['Trunk'][_0x311f('0x13')](queryTrunks));_0x1b8a1f[_0x311f('0x2e')](db['Campaign']['findAll'](queryCampaigns));_0x1b8a1f[_0x311f('0x2e')](db[_0x311f('0x5')][_0x311f('0x13')](queryAgents));break;case _0x311f('0x33'):_0x6632c5[_0x14ae25]('voice:inbound');_0x6632c5[_0x14ae25](_0x311f('0x2c'));_0x1b8a1f[_0x311f('0x2e')](getAssociatedResources(_0x311f('0xc'),_0x22a590[_0x311f('0x22')],_0x311f('0x2f')));_0x1b8a1f[_0x311f('0x2e')](getAssociatedResources(_0x311f('0xd'),_0x22a590['userProfileId'],_0x311f('0x34')));_0x1b8a1f[_0x311f('0x2e')](getAssociatedResources(_0x311f('0xe'),_0x22a590[_0x311f('0x22')],_0x311f('0x30')));_0x1b8a1f[_0x311f('0x2e')](getAssociatedResources(_0x311f('0xf'),_0x22a590[_0x311f('0x22')],_0x311f('0x35')));_0x1b8a1f[_0x311f('0x2e')](getAssociatedResources(_0x311f('0x10'),_0x22a590[_0x311f('0x22')],_0x311f('0x31')));_0x1b8a1f[_0x311f('0x2e')](getAssociatedResources(_0x311f('0x11'),_0x22a590[_0x311f('0x22')],_0x311f('0x36')));_0x1b8a1f[_0x311f('0x2e')](getAssociatedResources(_0x311f('0x12'),_0x22a590[_0x311f('0x22')],_0x311f('0x32')));_0x1b8a1f[_0x311f('0x2e')](getAssociatedResources(_0x311f('0x14'),_0x22a590['userProfileId'],_0x311f('0x5')));_0x1b8a1f[_0x311f('0x2e')](getAssociatedResources('Trunks',_0x22a590['userProfileId'],_0x311f('0x37')));_0x1b8a1f[_0x311f('0x2e')](getAssociatedResources(_0x311f('0x16'),_0x22a590[_0x311f('0x22')],_0x311f('0x1d')));_0x1b8a1f[_0x311f('0x2e')](db['User']['findAll'](queryAgents));break;case _0x311f('0x7'):_0x6632c5[_0x14ae25](_0x311f('0x2b'));_0x6632c5[_0x14ae25](_0x311f('0x2c'));_0x1b8a1f[_0x311f('0x2e')](_0x22a590[_0x311f('0x38')]({'attributes':['id',_0x311f('0x6')]}));_0x1b8a1f['push'](_0x22a590[_0x311f('0x39')]({'attributes':['id',_0x311f('0x6')]}));_0x1b8a1f['push'](_0x22a590[_0x311f('0x3a')]({'attributes':['id','name']}));_0x1b8a1f[_0x311f('0x2e')](_0x22a590['getSmsQueues']({'attributes':['id',_0x311f('0x6')]}));_0x1b8a1f[_0x311f('0x2e')](_0x22a590[_0x311f('0x3b')]({'attributes':['id','name']}));_0x1b8a1f['push'](_0x22a590[_0x311f('0x3c')]({'attributes':['id',_0x311f('0x6')]}));_0x1b8a1f[_0x311f('0x2e')](_0x22a590['getWhatsappQueues']({'attributes':['id','name']}));break;}return BPromise[_0x311f('0x3d')](_0x1b8a1f);}})[_0x311f('0xa')](function(_0x3379e4){if(_0x3379e4&&_0x3379e4[_0x311f('0x3e')]){for(var _0x3f6ffc=0x0;_0x3f6ffc<_0x3379e4[_0x311f('0x3e')];_0x3f6ffc+=0x1){for(var _0x46af2d=0x0;_0x46af2d<_0x3379e4[_0x3f6ffc]['length'];_0x46af2d+=0x1){switch(_0x3f6ffc){case 0x0:joinOrLeaveQueues(_0x6632c5,_0x14ae25,'voice',_0x3379e4[_0x3f6ffc][_0x46af2d]);break;case 0x1:joinOrLeaveQueues(_0x6632c5,_0x14ae25,'chat',_0x3379e4[_0x3f6ffc][_0x46af2d]);break;case 0x2:joinOrLeaveQueues(_0x6632c5,_0x14ae25,_0x311f('0x3f'),_0x3379e4[_0x3f6ffc][_0x46af2d]);break;case 0x3:joinOrLeaveQueues(_0x6632c5,_0x14ae25,'sms',_0x3379e4[_0x3f6ffc][_0x46af2d]);break;case 0x4:joinOrLeaveQueues(_0x6632c5,_0x14ae25,_0x311f('0x40'),_0x3379e4[_0x3f6ffc][_0x46af2d]);break;case 0x5:joinOrLeaveQueues(_0x6632c5,_0x14ae25,_0x311f('0x41'),_0x3379e4[_0x3f6ffc][_0x46af2d]);break;case 0x6:joinOrLeaveQueues(_0x6632c5,_0x14ae25,'whatsapp',_0x3379e4[_0x3f6ffc][_0x46af2d]);break;case 0x7:if(_0x5a3319['role']!=='agent')_0x6632c5[_0x14ae25](util[_0x311f('0x1e')]('telephone:%s',_0x3379e4[_0x3f6ffc][_0x46af2d][_0x311f('0x6')]));break;case 0x8:if(_0x5a3319[_0x311f('0x1b')]!==_0x311f('0x7'))_0x6632c5[_0x14ae25](util['format'](_0x311f('0x42'),_0x3379e4[_0x3f6ffc][_0x46af2d][_0x311f('0x6')]));break;case 0x9:if(_0x5a3319[_0x311f('0x1b')]!==_0x311f('0x7'))_0x6632c5[_0x14ae25](util[_0x311f('0x1e')](_0x311f('0x43'),_0x3379e4[_0x3f6ffc][_0x46af2d][_0x311f('0x44')],_0x3379e4[_0x3f6ffc][_0x46af2d][_0x311f('0x6')]));break;case 0xa:_0x6632c5[_0x14ae25](util[_0x311f('0x1e')]('user:%s',_0x3379e4[_0x3f6ffc][_0x46af2d][_0x311f('0x6')]));break;}}}}})[_0x311f('0xa')](function(){if(_0x14ae25===_0x311f('0x45')){var _0x5ce1f4=_['map'](_0x5a3319[_0x311f('0x23')],'id');return _0x5a3319[_0x311f('0x46')](_0x5ce1f4)[_0x311f('0xa')](function(){for(var _0x2a1059=0x0;_0x2a1059<_0x5ce1f4[_0x311f('0x3e')];_0x2a1059+=0x1){_0x59023e[_0x311f('0x47')](_0x311f('0x48'),{'ChatInteractionId':Number(_0x5ce1f4[_0x2a1059]),'UserId':Number(_0x5a3319['id'])});}});}})[_0x311f('0xa')](function(){if(_0x14ae25===_0x311f('0x45')){var _0x5f1f63=_[_0x311f('0x18')](_0x5a3319[_0x311f('0x25')],'id');return _0x5a3319[_0x311f('0x49')](_0x5f1f63)['then'](function(){for(var _0x3e272f=0x0;_0x3e272f<_0x5f1f63[_0x311f('0x3e')];_0x3e272f+=0x1){_0x59023e[_0x311f('0x47')]('user_has_mail_interactions:remove',{'MailInteractionId':Number(_0x5f1f63[_0x3e272f]),'UserId':Number(_0x5a3319['id'])});}});}})[_0x311f('0xa')](function(){if(_0x14ae25===_0x311f('0x45')){var _0x5b2ad8=_[_0x311f('0x18')](_0x5a3319['FaxInteractions'],'id');return _0x5a3319[_0x311f('0x4a')](_0x5b2ad8)[_0x311f('0xa')](function(){for(var _0x367f6e=0x0;_0x367f6e<_0x5b2ad8[_0x311f('0x3e')];_0x367f6e+=0x1){_0x59023e[_0x311f('0x47')](_0x311f('0x4b'),{'FaxInteractionId':Number(_0x5b2ad8[_0x367f6e]),'UserId':Number(_0x5a3319['id'])});}});}})['then'](function(){if(_0x14ae25===_0x311f('0x45')){var _0xaf4395=_[_0x311f('0x18')](_0x5a3319[_0x311f('0x28')],'id');return _0x5a3319[_0x311f('0x4c')](_0xaf4395)[_0x311f('0xa')](function(){for(var _0x28edd4=0x0;_0x28edd4<_0xaf4395['length'];_0x28edd4+=0x1){_0x59023e[_0x311f('0x47')](_0x311f('0x4d'),{'SmsInteractionId':Number(_0xaf4395[_0x28edd4]),'UserId':Number(_0x5a3319['id'])});}});}})[_0x311f('0xa')](function(){if(_0x14ae25===_0x311f('0x45')){var _0x3e025e=_[_0x311f('0x18')](_0x5a3319[_0x311f('0x4e')],'id');return _0x5a3319['removeOpenchannelInteractions'](_0x3e025e)[_0x311f('0xa')](function(){for(var _0x5066ea=0x0;_0x5066ea<_0x3e025e[_0x311f('0x3e')];_0x5066ea+=0x1){_0x59023e[_0x311f('0x47')](_0x311f('0x4f'),{'OpenchannelInteractionId':Number(_0x3e025e[_0x5066ea]),'UserId':Number(_0x5a3319['id'])});}});}})[_0x311f('0xa')](function(){if(_0x14ae25===_0x311f('0x45')){var _0x1646e0=_[_0x311f('0x18')](_0x5a3319['WhatsappInteractions'],'id');return _0x5a3319[_0x311f('0x50')](_0x1646e0)[_0x311f('0xa')](function(){for(var _0x11c7be=0x0;_0x11c7be<_0x1646e0[_0x311f('0x3e')];_0x11c7be+=0x1){_0x59023e[_0x311f('0x47')](_0x311f('0x51'),{'WhatsappInteractionId':Number(_0x1646e0[_0x11c7be]),'UserId':Number(_0x5a3319['id'])});}});}})[_0x311f('0x52')](function(_0x3863c2){_0x6632c5[_0x311f('0x53')](_0x3863c2);});}}function onDisconnect(_0x590803,_0x4790fc){joinOrLeave(_0x590803,_0x311f('0x45'),_0x4790fc);}function onConnect(_0x54abd3){joinOrLeave(_0x54abd3,_0x311f('0x54'));}exports[_0x311f('0x55')]=function(_0x49be8d){_0x49be8d['on'](_0x311f('0x56'),function(_0x472019){_0x472019[_0x311f('0x57')](0x0);_0x472019[_0x311f('0x58')]=_0x472019[_0x311f('0x59')][_0x311f('0x56')][_0x311f('0x5a')]+':'+_0x472019['request'][_0x311f('0x56')][_0x311f('0x5b')];_0x472019['connectedAt']=new Date();_0x472019[_0x311f('0x53')]=function(_0x21b0c7){console[_0x311f('0x53')]('SocketIO\x20'+_0x472019[_0x311f('0x5c')]['name']+'['+_0x472019['address']+']',_0x21b0c7);};_0x472019['on']('disconnect',function(){onDisconnect(_0x472019,_0x49be8d);_0x472019[_0x311f('0x53')](_0x311f('0x5d'));});onConnect(_0x472019);_0x472019[_0x311f('0x53')]('CONNECTED');});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0083=['User','name','fullname','email','internal','interface','channel','agent','outgoingmessage','ContactId','changed','closed','contact','format','SIP/%s','default','length','hasOwnProperty','model','hook','callback','toLowerCase','util','../../mysqldb','../logger','triggers','lodash','client','http','Chat','ChatInteraction','afterCreate','newinteraction','afterUpdate','closedinteraction','ChatMessage','newmessage','Sms','SmsInteraction','Whatsapp','WhatsappInteraction','WhatsappMessage','Fax','FaxInteraction','FaxMessage','MailInteraction','Mail','MailMessage','Openchannel','OpenchannelInteraction','OpenchannelMessage','request','EventManager','then','info','Trigger,\x20%s','error','catch','get','event','direction','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','sequelize','query','Sequelize','QueryTypes','SELECT','UserId'];(function(_0x562c2f,_0x50eade){var _0x573a0a=function(_0x44ec57){while(--_0x44ec57){_0x562c2f['push'](_0x562c2f['shift']());}};_0x573a0a(++_0x50eade);}(_0x0083,0x1ae));var _0x3008=function(_0x2af730,_0x5c9117){_0x2af730=_0x2af730-0x0;var _0x2917e3=_0x0083[_0x2af730];return _0x2917e3;};'use strict';var util=require(_0x3008('0x0'));var db=require(_0x3008('0x1'))['db'];var jayson=require('jayson/promise');var logger=require(_0x3008('0x2'))(_0x3008('0x3'));var _=require(_0x3008('0x4'));var client=jayson[_0x3008('0x5')][_0x3008('0x6')]({'port':0x232a});var triggers=[{'channel':_0x3008('0x7'),'model':_0x3008('0x8'),'event':_0x3008('0x9'),'condition':_0x3008('0xa'),'callback':afterCreate},{'channel':_0x3008('0x7'),'model':'ChatInteraction','event':_0x3008('0xb'),'condition':_0x3008('0xc'),'callback':afterUpdate},{'channel':'Chat','model':_0x3008('0xd'),'event':_0x3008('0x9'),'condition':_0x3008('0xe'),'callback':afterCreateMessage},{'channel':_0x3008('0xf'),'model':_0x3008('0x10'),'event':'afterCreate','condition':_0x3008('0xa'),'callback':afterCreate},{'channel':_0x3008('0xf'),'model':_0x3008('0x10'),'event':'afterUpdate','condition':_0x3008('0xc'),'callback':afterUpdate},{'channel':_0x3008('0xf'),'model':'SmsMessage','event':_0x3008('0x9'),'condition':_0x3008('0xe'),'callback':afterCreateMessage},{'channel':_0x3008('0x11'),'model':_0x3008('0x12'),'event':_0x3008('0x9'),'condition':'newinteraction','callback':afterCreate},{'channel':_0x3008('0x11'),'model':'WhatsappInteraction','event':'afterUpdate','condition':_0x3008('0xc'),'callback':afterUpdate},{'channel':'Whatsapp','model':_0x3008('0x13'),'event':'afterCreate','condition':_0x3008('0xe'),'callback':afterCreateMessage},{'channel':_0x3008('0x14'),'model':_0x3008('0x15'),'event':_0x3008('0x9'),'condition':_0x3008('0xa'),'callback':afterCreate},{'channel':'Fax','model':_0x3008('0x15'),'event':_0x3008('0xb'),'condition':_0x3008('0xc'),'callback':afterUpdate},{'channel':_0x3008('0x14'),'model':_0x3008('0x16'),'event':_0x3008('0x9'),'condition':_0x3008('0xe'),'callback':afterCreateMessage},{'channel':'Mail','model':_0x3008('0x17'),'event':'afterCreate','condition':_0x3008('0xa'),'callback':afterCreate},{'channel':_0x3008('0x18'),'model':_0x3008('0x17'),'event':_0x3008('0xb'),'condition':_0x3008('0xc'),'callback':afterUpdate},{'channel':_0x3008('0x18'),'model':_0x3008('0x19'),'event':_0x3008('0x9'),'condition':_0x3008('0xe'),'callback':afterCreateMessage},{'channel':_0x3008('0x1a'),'model':_0x3008('0x1b'),'event':'afterCreate','condition':'newinteraction','callback':afterCreate},{'channel':_0x3008('0x1a'),'model':_0x3008('0x1b'),'event':_0x3008('0xb'),'condition':_0x3008('0xc'),'callback':afterUpdate},{'channel':_0x3008('0x1a'),'model':_0x3008('0x1c'),'event':'afterCreate','condition':_0x3008('0xe'),'callback':afterCreateMessage}];function request(_0x2b09d7){return client[_0x3008('0x1d')](_0x3008('0x1e'),_0x2b09d7)[_0x3008('0x1f')](function(_0x714890){logger[_0x3008('0x20')](_0x3008('0x21'),_0x3008('0x1e'),_0x714890);if(_0x714890[_0x3008('0x22')]){if(_0x714890[_0x3008('0x22')]['code']===0x1f4){logger[_0x3008('0x22')](_0x3008('0x21'),'EventManager',_0x714890[_0x3008('0x22')]);}}})[_0x3008('0x23')](function(_0x481189){logger['error']('Trigger,\x20%s',_0x3008('0x1e'),_0x481189);});}function afterCreateMessage(_0x429142,_0x3de10c){return function(_0x497549,_0x5d8232){_0x497549=_0x497549[_0x3008('0x24')]({'plain':!![]});_0x497549['channel']=_0x429142;_0x497549[_0x3008('0x25')]=_0x497549[_0x3008('0x26')];var _0x4ea398=_0x3008('0x27')+_0x497549['ContactId'];return db[_0x3008('0x28')][_0x3008('0x29')](_0x4ea398,{'type':db[_0x3008('0x2a')][_0x3008('0x2b')][_0x3008('0x2c')],'raw':!![]})[_0x3008('0x1f')](function(_0x15e954){return _0x15e954;})[_0x3008('0x1f')](function(_0x3eb9b5){if(_0x3eb9b5){_0x497549['contact']=_0x3eb9b5[0x0];}if(_0x497549[_0x3008('0x2d')]){return db[_0x3008('0x2e')]['find']({'where':{'id':_0x497549[_0x3008('0x2d')]},'attributes':['id',_0x3008('0x2f'),_0x3008('0x30'),_0x3008('0x31'),_0x3008('0x32')],'raw':!![]})[_0x3008('0x1f')](function(_0x1590ac){_0x497549[_0x3008('0x33')]=util['format']('SIP/%s',_0x1590ac[_0x3008('0x2f')]);_0x497549[_0x3008('0x34')]=_0x429142;_0x497549[_0x3008('0x35')]=_0x1590ac;return request({'event':'incomingmessage','message':_0x497549});})['catch'](function(_0xa543de){console[_0x3008('0x22')](_0xa543de);});}else{return request({'event':_0x3008('0x36'),'message':_0x497549});}});};}function afterCreate(_0x1e6c36,_0x25a83c){return function(_0x5b2369,_0x31244f){_0x5b2369=_0x5b2369[_0x3008('0x24')]({'plain':!![]});_0x5b2369['channel']=_0x1e6c36;_0x5b2369[_0x3008('0x25')]='opened';var _0x354009=_0x3008('0x27')+_0x5b2369[_0x3008('0x37')];return db['sequelize'][_0x3008('0x29')](_0x354009,{'type':db['Sequelize']['QueryTypes'][_0x3008('0x2c')],'raw':!![]})['then'](function(_0x3f7170){return _0x3f7170;})[_0x3008('0x1f')](function(_0x6cc2e9){if(_0x6cc2e9){_0x5b2369['contact']=_0x6cc2e9[0x0];}return request({'event':_0x25a83c,'message':_0x5b2369});});};}function afterUpdate(_0x2c4063,_0x46ca5f){return function(_0x499d55,_0x50e0ff){if(_0x499d55[_0x3008('0x38')](_0x3008('0x39'))&&_0x499d55[_0x3008('0x39')]){_0x499d55=_0x499d55[_0x3008('0x24')]({'plain':!![]});_0x499d55[_0x3008('0x34')]=_0x2c4063;_0x499d55[_0x3008('0x25')]=_0x3008('0x39');var _0x1f2bed=_0x3008('0x27')+_0x499d55['ContactId'];return db[_0x3008('0x28')][_0x3008('0x29')](_0x1f2bed,{'type':db['Sequelize'][_0x3008('0x2b')][_0x3008('0x2c')],'raw':!![]})[_0x3008('0x1f')](function(_0x57ab84){return _0x57ab84;})[_0x3008('0x1f')](function(_0x30ed1f){if(_0x30ed1f){_0x499d55[_0x3008('0x3a')]=_0x30ed1f[0x0];}if(_0x499d55[_0x3008('0x2d')]){return db[_0x3008('0x2e')]['find']({'where':{'id':_0x499d55[_0x3008('0x2d')]},'attributes':['id',_0x3008('0x2f'),_0x3008('0x30'),'email',_0x3008('0x32')],'raw':!![]})['then'](function(_0xf3702d){_0x499d55[_0x3008('0x33')]=util[_0x3008('0x3b')](_0x3008('0x3c'),_0xf3702d[_0x3008('0x2f')]);_0x499d55['agent']=_0xf3702d;return request({'event':_0x46ca5f,'message':_0x499d55});})['catch'](function(_0x2c9897){console[_0x3008('0x22')](_0x2c9897);});}else{return request({'event':_0x46ca5f,'message':_0x499d55});}});}};}exports[_0x3008('0x3d')]=function(){for(var _0x53b136=0x0;_0x53b136<triggers[_0x3008('0x3e')];_0x53b136+=0x1){if(db[_0x3008('0x3f')](triggers[_0x53b136]['model'])){db[triggers[_0x53b136][_0x3008('0x40')]][_0x3008('0x41')](triggers[_0x53b136][_0x3008('0x25')],triggers[_0x53b136][_0x3008('0x42')](triggers[_0x53b136][_0x3008('0x34')][_0x3008('0x43')](),triggers[_0x53b136]['condition']));}}};
\ No newline at end of file
+var _0x7b5b=['OpenchannelMessage','info','Trigger,\x20%s','error','code','EventManager','catch','channel','motionChannel','event','direction','ContactId','sequelize','Sequelize','QueryTypes','then','contact','UserId','User','fullname','email','interface','format','SIP/%s','name','agent','incomingmessage','outgoingmessage','get','opened','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','query','changed','closed','SELECT','find','internal','length','hasOwnProperty','model','callback','condition','../../mysqldb','jayson/promise','../logger','triggers','lodash','client','http','Chat','ChatInteraction','afterCreate','newinteraction','afterUpdate','ChatMessage','SmsInteraction','Sms','SmsMessage','Whatsapp','WhatsappInteraction','closedinteraction','WhatsappMessage','newmessage','FaxInteraction','Fax','FaxMessage','Mail','MailInteraction','substatus','MailMessage','Openchannel','OpenchannelInteraction'];(function(_0x469e57,_0x1ca909){var _0x8e6e79=function(_0x579073){while(--_0x579073){_0x469e57['push'](_0x469e57['shift']());}};_0x8e6e79(++_0x1ca909);}(_0x7b5b,0x14a));var _0xb7b5=function(_0xdb6040,_0x7084e0){_0xdb6040=_0xdb6040-0x0;var _0x237846=_0x7b5b[_0xdb6040];return _0x237846;};'use strict';var util=require('util');var db=require(_0xb7b5('0x0'))['db'];var jayson=require(_0xb7b5('0x1'));var logger=require(_0xb7b5('0x2'))(_0xb7b5('0x3'));var _=require(_0xb7b5('0x4'));var client=jayson[_0xb7b5('0x5')][_0xb7b5('0x6')]({'port':0x232a});var triggers=[{'channel':_0xb7b5('0x7'),'model':_0xb7b5('0x8'),'event':_0xb7b5('0x9'),'condition':_0xb7b5('0xa'),'callback':afterCreate},{'channel':_0xb7b5('0x7'),'model':_0xb7b5('0x8'),'event':_0xb7b5('0xb'),'condition':'closedinteraction','callback':afterUpdate},{'channel':'Chat','model':_0xb7b5('0xc'),'event':_0xb7b5('0x9'),'condition':'newmessage','callback':afterCreateMessage},{'channel':'Sms','model':_0xb7b5('0xd'),'event':_0xb7b5('0x9'),'condition':'newinteraction','callback':afterCreate},{'channel':_0xb7b5('0xe'),'model':_0xb7b5('0xd'),'event':'afterUpdate','condition':'closedinteraction','callback':afterUpdate},{'channel':_0xb7b5('0xe'),'model':_0xb7b5('0xf'),'event':_0xb7b5('0x9'),'condition':'newmessage','callback':afterCreateMessage},{'channel':_0xb7b5('0x10'),'model':_0xb7b5('0x11'),'event':'afterCreate','condition':'newinteraction','callback':afterCreate},{'channel':_0xb7b5('0x10'),'model':_0xb7b5('0x11'),'event':_0xb7b5('0xb'),'condition':_0xb7b5('0x12'),'callback':afterUpdate},{'channel':_0xb7b5('0x10'),'model':_0xb7b5('0x13'),'event':_0xb7b5('0x9'),'condition':_0xb7b5('0x14'),'callback':afterCreateMessage},{'channel':'Fax','model':_0xb7b5('0x15'),'event':_0xb7b5('0x9'),'condition':'newinteraction','callback':afterCreate},{'channel':_0xb7b5('0x16'),'model':'FaxInteraction','event':_0xb7b5('0xb'),'condition':'closedinteraction','callback':afterUpdate},{'channel':'Fax','model':_0xb7b5('0x17'),'event':_0xb7b5('0x9'),'condition':_0xb7b5('0x14'),'callback':afterCreateMessage},{'channel':_0xb7b5('0x18'),'model':'MailInteraction','event':'afterCreate','condition':_0xb7b5('0xa'),'callback':afterCreate},{'channel':_0xb7b5('0x18'),'model':_0xb7b5('0x19'),'event':'afterUpdate','condition':_0xb7b5('0x12'),'callback':afterUpdate},{'channel':'Mail','model':_0xb7b5('0x19'),'event':_0xb7b5('0x1a'),'condition':'substatus','callback':afterUpdate},{'channel':_0xb7b5('0x18'),'model':_0xb7b5('0x1b'),'event':_0xb7b5('0x9'),'condition':_0xb7b5('0x14'),'callback':afterCreateMessage},{'channel':_0xb7b5('0x1c'),'model':'OpenchannelInteraction','event':_0xb7b5('0x9'),'condition':_0xb7b5('0xa'),'callback':afterCreate},{'channel':_0xb7b5('0x1c'),'model':_0xb7b5('0x1d'),'event':_0xb7b5('0xb'),'condition':_0xb7b5('0x12'),'callback':afterUpdate},{'channel':_0xb7b5('0x1c'),'model':_0xb7b5('0x1e'),'event':_0xb7b5('0x9'),'condition':_0xb7b5('0x14'),'callback':afterCreateMessage}];function request(_0x5e6f41){return client['request']('EventManager',_0x5e6f41)['then'](function(_0x507f58){logger[_0xb7b5('0x1f')](_0xb7b5('0x20'),'EventManager',_0x507f58);if(_0x507f58[_0xb7b5('0x21')]){if(_0x507f58[_0xb7b5('0x21')][_0xb7b5('0x22')]===0x1f4){logger['error'](_0xb7b5('0x20'),_0xb7b5('0x23'),_0x507f58['error']);}}})[_0xb7b5('0x24')](function(_0x4262a5){logger[_0xb7b5('0x21')]('Trigger,\x20%s',_0xb7b5('0x23'),_0x4262a5);});}function afterCreateMessage(_0x2372d7,_0x2e5e07){return function(_0x2f822f,_0x6f9bfd){_0x2f822f=_0x2f822f['get']({'plain':!![]});_0x2f822f[_0xb7b5('0x25')]=_0x2372d7;_0x2f822f[_0xb7b5('0x26')]=_0x2372d7;_0x2f822f[_0xb7b5('0x27')]=_0x2f822f[_0xb7b5('0x28')];var _0x5a0643='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x2f822f[_0xb7b5('0x29')];return db[_0xb7b5('0x2a')]['query'](_0x5a0643,{'type':db[_0xb7b5('0x2b')][_0xb7b5('0x2c')]['SELECT'],'raw':!![]})[_0xb7b5('0x2d')](function(_0xe946c0){return _0xe946c0;})['then'](function(_0x492e6b){if(_0x492e6b){_0x2f822f[_0xb7b5('0x2e')]=_0x492e6b[0x0];}if(_0x2f822f[_0xb7b5('0x2f')]){return db[_0xb7b5('0x30')]['find']({'where':{'id':_0x2f822f['UserId']},'attributes':['id','name',_0xb7b5('0x31'),_0xb7b5('0x32'),'internal'],'raw':!![]})[_0xb7b5('0x2d')](function(_0x4d190e){_0x2f822f[_0xb7b5('0x33')]=util[_0xb7b5('0x34')](_0xb7b5('0x35'),_0x4d190e[_0xb7b5('0x36')]);_0x2f822f[_0xb7b5('0x25')]=_0x2372d7;_0x2f822f[_0xb7b5('0x37')]=_0x4d190e;return request({'event':_0xb7b5('0x38'),'message':_0x2f822f});})[_0xb7b5('0x24')](function(_0x2ec8cb){console[_0xb7b5('0x21')](_0x2ec8cb);});}else{return request({'event':_0xb7b5('0x39'),'message':_0x2f822f});}});};}function afterCreate(_0x19b1c5,_0x3ccf94){return function(_0x578f32,_0x56e51c){_0x578f32=_0x578f32[_0xb7b5('0x3a')]({'plain':!![]});_0x578f32['channel']=_0x19b1c5;_0x578f32['motionChannel']=_0x19b1c5;_0x578f32[_0xb7b5('0x27')]=_0xb7b5('0x3b');var _0x2c5215=_0xb7b5('0x3c')+_0x578f32[_0xb7b5('0x29')];return db[_0xb7b5('0x2a')][_0xb7b5('0x3d')](_0x2c5215,{'type':db['Sequelize'][_0xb7b5('0x2c')]['SELECT'],'raw':!![]})[_0xb7b5('0x2d')](function(_0x2bae36){return _0x2bae36;})['then'](function(_0x5894eb){if(_0x5894eb){_0x578f32['contact']=_0x5894eb[0x0];}return request({'event':_0x3ccf94,'message':_0x578f32});});};}function afterUpdate(_0x8c244f,_0x15e25d){return function(_0x1c4699,_0x309427){if(_0x1c4699[_0xb7b5('0x3e')](_0xb7b5('0x3f'))&&_0x1c4699['closed']){_0x1c4699=_0x1c4699[_0xb7b5('0x3a')]({'plain':!![]});_0x1c4699['channel']=_0x8c244f;_0x1c4699[_0xb7b5('0x26')]=_0x8c244f;_0x1c4699[_0xb7b5('0x27')]=_0xb7b5('0x3f');var _0xcb2599=_0xb7b5('0x3c')+_0x1c4699[_0xb7b5('0x29')];return db['sequelize'][_0xb7b5('0x3d')](_0xcb2599,{'type':db[_0xb7b5('0x2b')][_0xb7b5('0x2c')][_0xb7b5('0x40')],'raw':!![]})['then'](function(_0x21f5da){return _0x21f5da;})[_0xb7b5('0x2d')](function(_0x5c7a49){if(_0x5c7a49){_0x1c4699[_0xb7b5('0x2e')]=_0x5c7a49[0x0];}if(_0x1c4699[_0xb7b5('0x2f')]){return db[_0xb7b5('0x30')][_0xb7b5('0x41')]({'where':{'id':_0x1c4699[_0xb7b5('0x2f')]},'attributes':['id',_0xb7b5('0x36'),_0xb7b5('0x31'),_0xb7b5('0x32'),'internal'],'raw':!![]})[_0xb7b5('0x2d')](function(_0x4d2906){_0x1c4699[_0xb7b5('0x33')]=util[_0xb7b5('0x34')](_0xb7b5('0x35'),_0x4d2906[_0xb7b5('0x36')]);_0x1c4699['agent']=_0x4d2906;return request({'event':_0x15e25d,'message':_0x1c4699});})[_0xb7b5('0x24')](function(_0x41cf4f){console['error'](_0x41cf4f);});}else{return request({'event':_0x15e25d,'message':_0x1c4699});}});}else if(_0x1c4699[_0xb7b5('0x3e')](_0xb7b5('0x1a'))){_0x1c4699=_0x1c4699['get']({'plain':!![]});_0x1c4699['channel']=_0x8c244f;_0x1c4699[_0xb7b5('0x27')]=_0xb7b5('0x1a');var _0xcb2599='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x1c4699[_0xb7b5('0x29')];return db['sequelize'][_0xb7b5('0x3d')](_0xcb2599,{'type':db[_0xb7b5('0x2b')][_0xb7b5('0x2c')]['SELECT'],'raw':!![]})[_0xb7b5('0x2d')](function(_0xf6344c){return _0xf6344c;})[_0xb7b5('0x2d')](function(_0x2dd1f7){if(_0x2dd1f7){_0x1c4699['contact']=_0x2dd1f7[0x0];}if(_0x1c4699['UserId']){return db[_0xb7b5('0x30')][_0xb7b5('0x41')]({'where':{'id':_0x1c4699[_0xb7b5('0x2f')]},'attributes':['id',_0xb7b5('0x36'),_0xb7b5('0x31'),_0xb7b5('0x32'),_0xb7b5('0x42')],'raw':!![]})[_0xb7b5('0x2d')](function(_0x3691be){_0x1c4699[_0xb7b5('0x33')]=util[_0xb7b5('0x34')](_0xb7b5('0x35'),_0x3691be[_0xb7b5('0x36')]);_0x1c4699[_0xb7b5('0x37')]=_0x3691be;return request({'event':_0x15e25d,'message':_0x1c4699});})[_0xb7b5('0x24')](function(_0x5c8c5a){console[_0xb7b5('0x21')](_0x5c8c5a);});}else{return request({'event':_0x15e25d,'message':_0x1c4699});}});}};}exports['default']=function(){for(var _0x223e95=0x0;_0x223e95<triggers[_0xb7b5('0x43')];_0x223e95+=0x1){if(db[_0xb7b5('0x44')](triggers[_0x223e95]['model'])){db[triggers[_0x223e95][_0xb7b5('0x45')]]['hook'](triggers[_0x223e95]['event'],triggers[_0x223e95][_0xb7b5('0x46')](triggers[_0x223e95][_0xb7b5('0x25')]['toLowerCase'](),triggers[_0x223e95][_0xb7b5('0x47')]));}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x023e=['User','count','then','getLicense','agents','lodash','../mysqldb','voice','chat','fax','openchannel','getChannels','isValidChannel','toLowerCase','clearBlockUser','isUndefined','updateAttributes','role','agent'];(function(_0x5be5cf,_0x479569){var _0x12bec9=function(_0x361428){while(--_0x361428){_0x5be5cf['push'](_0x5be5cf['shift']());}};_0x12bec9(++_0x479569);}(_0x023e,0xe9));var _0xe023=function(_0x55afba,_0xb10154){_0x55afba=_0x55afba-0x0;var _0x433a16=_0x023e[_0x55afba];return _0x433a16;};'use strict';var _=require(_0xe023('0x0'));var BPromise=require('bluebird');var db=require(_0xe023('0x1'))['db'];var util=require('./license/util');var channels=[_0xe023('0x2'),'mail',_0xe023('0x3'),_0xe023('0x4'),'sms','whatsapp',_0xe023('0x5')];exports[_0xe023('0x6')]=function(){return channels;};exports[_0xe023('0x7')]=function(_0x3eed70){_0x3eed70=_0x3eed70[_0xe023('0x8')]();return _['includes'](channels,_0x3eed70);};exports[_0xe023('0x9')]=function(_0x4c7e78,_0x3a7496,_0x20b027,_0x51aca9){var _0x299fda={'loginAttempts':_0x3a7496,'blocked':_0x20b027};if(!_[_0xe023('0xa')](_0x51aca9)){_0x299fda['blockedAt']=_0x51aca9;}return _0x4c7e78[_0xe023('0xb')](_0x299fda);};exports['getLicense']=function(_0x24df51){return new BPromise(function(_0x1b24da,_0x26318e){var _0x3855f9=0x0;if(_0x24df51[_0xe023('0xc')]!==_0xe023('0xd')){_0x1b24da(_0x24df51);}db[_0xe023('0xe')][_0xe023('0xf')]({'where':{'role':_0xe023('0xd'),'online':!![],'id':{'$ne':_0x24df51['id']}}})[_0xe023('0x10')](function(_0x5b850b){_0x3855f9=_0x5b850b;return util[_0xe023('0x11')]();})['then'](function(_0x5cd416){if(_0x5cd416&&_0x5cd416[_0xe023('0x12')]&&_0x3855f9>=_0x5cd416[_0xe023('0x12')]){throw Error('Maximum\x20login\x20has\x20been\x20reached');}_0x1b24da(_0x24df51);})['catch'](function(_0x86ddc2){_0x26318e(_0x86ddc2);});});};
\ No newline at end of file
+var _0xfed3=['agent','User','count','then','agents','Maximum\x20login\x20has\x20been\x20reached','catch','lodash','bluebird','../mysqldb','./license/util','mail','chat','fax','sms','getChannels','isValidChannel','toLowerCase','includes','clearBlockUser','getLicense','role'];(function(_0x160126,_0x4f514c){var _0x55a0bc=function(_0x4336e8){while(--_0x4336e8){_0x160126['push'](_0x160126['shift']());}};_0x55a0bc(++_0x4f514c);}(_0xfed3,0xf9));var _0x3fed=function(_0x20589d,_0x55d5bf){_0x20589d=_0x20589d-0x0;var _0x422de9=_0xfed3[_0x20589d];return _0x422de9;};'use strict';var _=require(_0x3fed('0x0'));var BPromise=require(_0x3fed('0x1'));var db=require(_0x3fed('0x2'))['db'];var util=require(_0x3fed('0x3'));var channels=['voice',_0x3fed('0x4'),_0x3fed('0x5'),_0x3fed('0x6'),_0x3fed('0x7'),'whatsapp','openchannel'];exports[_0x3fed('0x8')]=function(){return channels;};exports[_0x3fed('0x9')]=function(_0x40a548){_0x40a548=_0x40a548[_0x3fed('0xa')]();return _[_0x3fed('0xb')](channels,_0x40a548);};exports[_0x3fed('0xc')]=function(_0x467f62,_0x216e77,_0x46918e,_0x15827a){var _0x2c5426={'loginAttempts':_0x216e77,'blocked':_0x46918e};if(!_['isUndefined'](_0x15827a)){_0x2c5426['blockedAt']=_0x15827a;}return _0x467f62['updateAttributes'](_0x2c5426);};exports[_0x3fed('0xd')]=function(_0x372c09){return new BPromise(function(_0x21a459,_0x1b3867){var _0x104dfb=0x0;if(_0x372c09[_0x3fed('0xe')]!==_0x3fed('0xf')){_0x21a459(_0x372c09);}db[_0x3fed('0x10')][_0x3fed('0x11')]({'where':{'role':_0x3fed('0xf'),'online':!![],'id':{'$ne':_0x372c09['id']}}})[_0x3fed('0x12')](function(_0x27d712){_0x104dfb=_0x27d712;return util[_0x3fed('0xd')]();})[_0x3fed('0x12')](function(_0x3e934a){if(_0x3e934a&&_0x3e934a['agents']&&_0x104dfb>=_0x3e934a[_0x3fed('0x13')]){throw Error(_0x3fed('0x14'));}_0x21a459(_0x372c09);})[_0x3fed('0x15')](function(_0x594527){_0x1b3867(_0x594527);});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa664=['send','404','render','status','json'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xa664,0x132));var _0x4a66=function(_0x1276b0,_0x26969c){_0x1276b0=_0x1276b0-0x0;var _0x52333d=_0xa664[_0x1276b0];return _0x52333d;};'use strict';module['exports'][0x194]=function pageNotFound(_0x397463,_0x4580b4){var _0x990821=_0x4a66('0x0');var _0x5b1cd9=0x194;var _0x2a4e18={'status':_0x5b1cd9};_0x4580b4['status'](_0x2a4e18['status']);_0x4580b4[_0x4a66('0x1')](_0x990821,{},function(_0x19ba72,_0x47372d){if(_0x19ba72){return _0x4580b4[_0x4a66('0x2')](_0x2a4e18[_0x4a66('0x2')])[_0x4a66('0x3')](_0x2a4e18);}_0x4580b4[_0x4a66('0x4')](_0x47372d);});};
\ No newline at end of file
+var _0x93b5=['status','render','json','send','exports','404'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x93b5,0x178));var _0x593b=function(_0x124425,_0x503bb6){_0x124425=_0x124425-0x0;var _0x53fe4f=_0x93b5[_0x124425];return _0x53fe4f;};'use strict';module[_0x593b('0x0')][0x194]=function pageNotFound(_0x3cf35c,_0x5e0c94){var _0x570f46=_0x593b('0x1');var _0x17767f=0x194;var _0xa86b8f={'status':_0x17767f};_0x5e0c94[_0x593b('0x2')](_0xa86b8f['status']);_0x5e0c94[_0x593b('0x3')](_0x570f46,{},function(_0x4aec94,_0x4ec8c5){if(_0x4aec94){return _0x5e0c94[_0x593b('0x2')](_0xa86b8f[_0x593b('0x2')])[_0x593b('0x4')](_0xa86b8f);}_0x5e0c94[_0x593b('0x5')](_0x4ec8c5);});};
\ 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
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3dba=['ContactId','MailAccountId','Imap','Disposition','Dispositions','CannedAnswer','Answers','MailMessage','Interactions','Applications','List','ListId','TemplateId','mandatoryDispositionPauseId','MailInteractionId','Account','Owner','Tags','mail_interaction_has_tags','ThroughTags','Users','Attachments','ChatWebsiteId','ChatOfflineMessageId','restrict','TagId','MailQueueReport','FaxAccountId','FaxInteractionId','fax_interaction_has_tags','AttachmentId','FaxQueueReport','SmsAccount','SmsAccountId','SmsInteractionId','sms_interaction_has_tags','SmsQueue','SmsQueueId','OpenchannelAccountId','OpenchannelApplication','user_has_openchannel_accounts','OpenchannelQueueId','OpenchannelInteractionId','openchannel_interaction_has_tags','user_has_openchannel_interactions','Interaction','team_has_openchannel_queues','ProactiveActions','OpenchannelQueueReport','Agent','ChatQueueId','Website','ChatInteractionId','chat_interaction_has_tags','user_has_chat_interactions','team_has_chat_queues','ChatGroupId','Members','Contacts','CompanyId','FaxInteractions','Company','cm_contact_has_tags','Queue','Campaign','CampaignId','All','OneAll','AutomationAllId','Any','OneAny','Actions','AutomationId','ParentId','Intervals','MailApplications','ChatApplications','FaxApplications','SmsApplications','DefaultReportId','CustomReportId','Mohs','whatsapp_interaction_has_tags','Trigger','AllCondition','AnyConditions','AnyCondition','TriggerAnyId','TriggerId','Fields','AnalyticMetric','MetricId','SalesforceAccount','AccountId','SubjectId','Descriptions','DescriptionId','FieldId','Subject','Description','Field','VariableId','Subjects','SugarcrmAccount','Configurations','int_desk_configuration_has_tags','ZohoConfiguration','int_zendesk_configuration_has_tags','FreshdeskConfiguration','FreshdeskField','VtigerAccount','VtigerField','ServicenowField','Dynamics365Account','Dynamics365Field','FreshsalesConfiguration','ToId','SessionId','SmsQueueReport','ProjectId','user_has_teams','team_has_mail_queues','FaxQueues','team_has_sms_queues','SmsQueues','WhatsappQueue','team_has_whatsapp_queues','FromMailAccountId','FromAccount','FromUserId','FromAgent','ToAgent','ToQueue','ToMailAccountId','ToAccount','ChatTransferReport','FromChatWebsiteId','ToUserId','FromFaxAccountId','ToFaxQueueId','FromOpenchannelAccountId','ToOpenchannelQueueId','ToOpenchannelAccountId','FromSmsAccountId','ToSmsQueueId','CustomFields','UserProfileSections','sectionId','WhatsappMessage','WhatsappAccountId','WhatsappInteractionId','WhatsappTransferReport','FromWhatsappAccountId','ToWhatsappAccountId','WhatsappQueueId','exports','jstz','determine','sequelize','defaultsDeep','xcall','xC@LL1234','127.0.0.1','mysql','name','utf8','sequelizeHistory','motion2','utf8mb4','utf8_general_ci','database','options','username','password','User','../api/user/user.model','import','VoiceContext','../api/voiceContext/voiceContext.model','VoiceExtension','../api/voiceExtension/voiceExtension.model','VoiceMusicOnHold','../api/voiceMusicOnHold/voiceMusicOnHold.model','VoiceQueue','../api/voiceQueue/voiceQueue.model','VoiceRecording','../api/voiceRecording/voiceRecording.model','../api/voiceMail/voiceMail.model','VoiceMailMessage','VoiceCallReport','../api/voiceCallReport/voiceCallReport.model','../api/voiceDialReport/voiceDialReport.model','VoiceAgentReport','../api/voiceAgentReport/voiceAgentReport.model','VoiceQueueReport','../api/voiceQueueReport/voiceQueueReport.model','MemberReport','../api/memberReport/memberReport.model','Trunk','VoiceTransferReport','../api/voiceTransferReport/voiceTransferReport.model','UserVoiceQueueRt','../api/userVoiceQueueRt/userVoiceQueueRt.model','UserVoiceQueue','../api/userVoiceQueue/userVoiceQueue.model','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','MailServerIn','../api/mailServerIn/mailServerIn.model','MailServerOut','../api/mailServerOut/mailServerOut.model','MailAccount','../api/mailAccount/mailAccount.model','MailQueue','MailSubstatus','../api/mailSubstatus/mailSubstatus.model','MailInteraction','../api/mailInteraction/mailInteraction.model','MailApplication','../api/mailApplication/mailApplication.model','../api/mailQueueReport/mailQueueReport.model','Dashboard','../api/dashboard/dashboard.model','DashboardItem','../api/dashboardItem/dashboardItem.model','FaxAccount','FaxApplication','../api/faxApplication/faxApplication.model','FaxInteraction','../api/faxInteraction/faxInteraction.model','FaxMessage','../api/faxMessage/faxMessage.model','../api/faxQueue/faxQueue.model','../api/faxQueueReport/faxQueueReport.model','../api/smsAccount/smsAccount.model','SmsApplication','../api/smsApplication/smsApplication.model','SmsInteraction','SmsMessage','../api/smsMessage/smsMessage.model','../api/smsQueue/smsQueue.model','OpenchannelAccount','../api/openchannelApplication/openchannelApplication.model','../api/openchannelInteraction/openchannelInteraction.model','OpenchannelMessage','../api/openchannelMessage/openchannelMessage.model','OpenchannelQueue','../api/openchannelQueue/openchannelQueue.model','ChatWebsite','../api/chatWebsite/chatWebsite.model','../api/openchannelQueueReport/openchannelQueueReport.model','ChatApplication','ChatInteraction','ChatMessage','../api/chatMessage/chatMessage.model','ChatOfflineMessage','../api/chatOfflineMessage/chatOfflineMessage.model','ChatQueue','../api/chatQueue/chatQueue.model','ChatGroup','../api/chatGroup/chatGroup.model','ChatProactiveAction','../api/chatProactiveAction/chatProactiveAction.model','CmCompany','../api/cmCompany/cmCompany.model','CmContact','../api/cmContact/cmContact.model','CmHopper','../api/cmHopper/cmHopper.model','CmHopperBlack','../api/cmHopperBlack/cmHopperBlack.model','CmHopperHistory','ReportAgentPreview','../api/reportAgentPreview/reportAgentPreview.model','CmCustomField','../api/cmCustomField/cmCustomField.model','Action','../api/action/action.model','Automation','../api/automation/automation.model','../api/cannedAnswer/cannedAnswer.model','Condition','../api/condition/condition.model','Interval','../api/interval/interval.model','Pause','../api/pause/pause.model','Cdr','../api/cdr/cdr.model','VoiceQueuesLog','../api/voiceQueuesLog/voiceQueuesLog.model','Schedule','../api/schedule/schedule.model','Sound','../api/sound/sound.model','Tag','../api/tag/tag.model','Template','../api/template/template.model','../api/trigger/trigger.model','Variable','../api/variable/variable.model','../api/integration/integration.model','IntegrationReport','../api/integrationReport/integrationReport.model','AnalyticCustomReport','../api/analyticCustomReport/analyticCustomReport.model','AnalyticDefaultReport','../api/analyticExtractedReport/analyticExtractedReport.model','AnalyticFieldReport','../api/analyticTreeReport/analyticTreeReport.model','../api/intSalesforceAccount/intSalesforceAccount.model','SalesforceConfiguration','../api/intSalesforceConfiguration/intSalesforceConfiguration.model','SalesforceField','../api/intSalesforceField/intSalesforceField.model','../api/intSugarcrmAccount/intSugarcrmAccount.model','SugarcrmConfiguration','../api/intSugarcrmConfiguration/intSugarcrmConfiguration.model','SugarcrmField','DeskAccount','../api/intDeskAccount/intDeskAccount.model','DeskConfiguration','DeskField','../api/intDeskField/intDeskField.model','ZohoAccount','../api/intZohoConfiguration/intZohoConfiguration.model','ZohoField','../api/intZohoField/intZohoField.model','ZendeskAccount','ZendeskConfiguration','../api/intZendeskConfiguration/intZendeskConfiguration.model','ZendeskField','../api/intZendeskField/intZendeskField.model','FreshdeskAccount','../api/intFreshdeskAccount/intFreshdeskAccount.model','../api/intFreshdeskConfiguration/intFreshdeskConfiguration.model','../api/intFreshdeskField/intFreshdeskField.model','VtigerConfiguration','../api/intVtigerField/intVtigerField.model','ServicenowAccount','../api/intServicenowAccount/intServicenowAccount.model','ServicenowConfiguration','../api/intServicenowConfiguration/intServicenowConfiguration.model','../api/intServicenowField/intServicenowField.model','../api/intDynamics365Account/intDynamics365Account.model','Dynamics365Configuration','../api/intDynamics365Configuration/intDynamics365Configuration.model','FreshsalesAccount','../api/intFreshsalesAccount/intFreshsalesAccount.model','../api/intFreshsalesConfiguration/intFreshsalesConfiguration.model','FreshsalesField','../api/intFreshsalesField/intFreshsalesField.model','Network','../api/network/network.model','ChatQueueReport','ChatInternalMessage','../api/chatInternalMessage/chatInternalMessage.model','JscriptyAnswerReport','../api/jscriptyAnswerReport/jscriptyAnswerReport.model','JscriptyQuestionReport','../api/jscriptyQuestionReport/jscriptyQuestionReport.model','../api/jscriptySessionReport/jscriptySessionReport.model','SquareReport','../api/squareReport/squareReport.model','SquareDetailsReport','../api/squareReportDetail/squareReportDetail.model','JscriptyProject','../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','../api/campaign/campaign.model','Attachment','../api/plugin/plugin.model','MailTransferReport','../api/mailTransferReport/mailTransferReport.model','../api/chatTransferReport/chatTransferReport.model','FaxTransferReport','OpenchannelTransferReport','../api/openchannelTransferReport/openchannelTransferReport.model','SmsTransferReport','../api/smsTransferReport/smsTransferReport.model','CmList','../api/cmList/cmList.model','VoicePrefix','../api/voicePrefix/voicePrefix.model','UserProfileSection','../api/userProfileSection/userProfileSection.model','UserProfileResource','../api/userProfileResource/userProfileResource.model','UserNotification','../api/userNotification/userNotification.model','WhatsappAccount','WhatsappApplication','WhatsappInteraction','../api/whatsappInteraction/whatsappInteraction.model','../api/whatsappMessage/whatsappMessage.model','WhatsappQueueReport','../api/whatsappQueueReport/whatsappQueueReport.model','../api/whatsappQueue/whatsappQueue.model','CloudProvider','../api/cloudProvider/cloudProvider.model','TeamVoiceQueue','hasOne','VoiceMail','UserId','Recordings','hasMany','VoiceQueuesRt','Extensions','CmHopperFinal','HopperFinals','HopperHistory','OpenchannelInteraction','OpenchannelInteractions','ChatInteractions','SmsInteractions','MailInteractions','UserNotifications','UserProfile','userProfileId','belongsToMany','Groups','chat_group_has_users','cm_user_has_contacts','Lists','user_has_mail_interactions','user_has_fax_interactions','user_has_sms_interactions','user_has_whatsapp_interactions','MailQueues','ChatQueues','FaxQueue','OpenchannelQueues','UserOpenchannelQueue','WhatsappQueues','cm_user_has_lists','VoicePrefixes','user_has_voice_prefixes','ChatWebsites','user_has_chat_websites','FaxAccounts','user_has_fax_accounts','MailAccounts','user_has_mail_accounts','SmsAccounts','user_has_sms_accounts','WhatsappAccounts','user_has_whatsapp_accounts','user_has_square_projects','VoiceChanSpy','SpiedAgents','ChanSpyId','Sounds','moh_has_sounds','VoiceQueueId','Hoppers','HopperHistories','HopperBlacks','JscriptySessionReport','JscriptySessions','belongsTo','TrunkId','TrunkBackup','TrunkBackupId','IntervalId','mandatoryDispositionPause','voice_queues_has_cm_lists','Agents','Teams','BlackLists','voice_queues_has_cm_blacklists','ScreenRecording','Messages','cascade','mailboxuser','mailbox','QueueCalls','uniqueid','AgentReports','Contact'];(function(_0x303332,_0xfe22e3){var _0x108c87=function(_0x57426b){while(--_0x57426b){_0x303332['push'](_0x303332['shift']());}};_0x108c87(++_0xfe22e3);}(_0x3dba,0x9c));var _0xa3db=function(_0x4cfdb0,_0x2dd36c){_0x4cfdb0=_0x4cfdb0-0x0;var _0x1d17b5=_0x3dba[_0x4cfdb0];return _0x1d17b5;};'use strict';var config=require('../config/environment');var Sequelize=require('sequelize');var _=require('lodash');var jstz=require(_0xa3db('0x0'));var timezone=jstz[_0xa3db('0x1')]();config[_0xa3db('0x2')]=_[_0xa3db('0x3')](config[_0xa3db('0x2')],{'database':'motion2','username':_0xa3db('0x4'),'password':_0xa3db('0x5'),'options':{'host':_0xa3db('0x6'),'port':0xcea,'dialect':_0xa3db('0x7'),'dialectOptions':{'charset':'utf8mb4'},'logging':![],'timezone':timezone[_0xa3db('0x8')](),'define':{'charset':_0xa3db('0x9'),'collate':'utf8_general_ci'}}});config['sequelizeHistory']=_[_0xa3db('0x3')](config[_0xa3db('0xa')],{'database':_0xa3db('0xb'),'username':_0xa3db('0x4'),'password':'xC@LL1234','options':{'host':_0xa3db('0x6'),'port':0xcea,'dialect':_0xa3db('0x7'),'dialectOptions':{'charset':_0xa3db('0xc')},'logging':![],'timezone':timezone['name'](),'define':{'charset':_0xa3db('0x9'),'collate':_0xa3db('0xd')}}});var db={'Sequelize':Sequelize,'sequelize':new Sequelize(config[_0xa3db('0x2')][_0xa3db('0xe')],config[_0xa3db('0x2')]['username'],config[_0xa3db('0x2')]['password'],config[_0xa3db('0x2')][_0xa3db('0xf')])};var dbH={'Sequelize':Sequelize,'sequelize':new Sequelize(config[_0xa3db('0xa')][_0xa3db('0xe')],config['sequelizeHistory'][_0xa3db('0x10')],config[_0xa3db('0xa')][_0xa3db('0x11')],config[_0xa3db('0xa')][_0xa3db('0xf')])};db[_0xa3db('0x12')]=db['sequelize']['import'](_0xa3db('0x13'));db['VoiceChanSpy']=db[_0xa3db('0x2')][_0xa3db('0x14')]('../api/voiceChanSpy/voiceChanSpy.model');db[_0xa3db('0x15')]=db[_0xa3db('0x2')]['import'](_0xa3db('0x16'));db[_0xa3db('0x17')]=db[_0xa3db('0x2')][_0xa3db('0x14')](_0xa3db('0x18'));db[_0xa3db('0x19')]=db[_0xa3db('0x2')][_0xa3db('0x14')](_0xa3db('0x1a'));db[_0xa3db('0x1b')]=db[_0xa3db('0x2')]['import'](_0xa3db('0x1c'));db[_0xa3db('0x1d')]=db[_0xa3db('0x2')][_0xa3db('0x14')](_0xa3db('0x1e'));db['ScreenRecording']=db[_0xa3db('0x2')][_0xa3db('0x14')]('../api/screenRecording/screenRecording.model');db['VoiceMail']=db['sequelize'][_0xa3db('0x14')](_0xa3db('0x1f'));db[_0xa3db('0x20')]=db[_0xa3db('0x2')][_0xa3db('0x14')]('../api/voiceMailMessage/voiceMailMessage.model');db[_0xa3db('0x21')]=db[_0xa3db('0x2')][_0xa3db('0x14')](_0xa3db('0x22'));db['VoiceDialReport']=db[_0xa3db('0x2')]['import'](_0xa3db('0x23'));db[_0xa3db('0x24')]=db[_0xa3db('0x2')][_0xa3db('0x14')](_0xa3db('0x25'));db[_0xa3db('0x26')]=db[_0xa3db('0x2')]['import'](_0xa3db('0x27'));db[_0xa3db('0x28')]=db['sequelize'][_0xa3db('0x14')](_0xa3db('0x29'));db[_0xa3db('0x2a')]=db[_0xa3db('0x2')]['import']('../api/trunk/trunk.model');db[_0xa3db('0x2b')]=db['sequelize'][_0xa3db('0x14')](_0xa3db('0x2c'));db[_0xa3db('0x2d')]=db[_0xa3db('0x2')][_0xa3db('0x14')](_0xa3db('0x2e'));db[_0xa3db('0x2f')]=db[_0xa3db('0x2')][_0xa3db('0x14')](_0xa3db('0x30'));db[_0xa3db('0x31')]=db[_0xa3db('0x2')]['import'](_0xa3db('0x32'));db[_0xa3db('0x33')]=db[_0xa3db('0x2')][_0xa3db('0x14')](_0xa3db('0x34'));db[_0xa3db('0x35')]=db['sequelize'][_0xa3db('0x14')](_0xa3db('0x36'));db[_0xa3db('0x37')]=db[_0xa3db('0x2')][_0xa3db('0x14')](_0xa3db('0x38'));db['UserOpenchannelQueue']=db[_0xa3db('0x2')][_0xa3db('0x14')](_0xa3db('0x39'));db[_0xa3db('0x3a')]=db[_0xa3db('0x2')]['import']('../api/userWhatsappQueue/userWhatsappQueue.model');db[_0xa3db('0x3b')]=db['sequelize'][_0xa3db('0x14')](_0xa3db('0x3c'));db[_0xa3db('0x3d')]=db[_0xa3db('0x2')]['import'](_0xa3db('0x3e'));db[_0xa3db('0x3f')]=db['sequelize'][_0xa3db('0x14')](_0xa3db('0x40'));db[_0xa3db('0x41')]=db['sequelize'][_0xa3db('0x14')]('../api/mailQueue/mailQueue.model');db[_0xa3db('0x42')]=db['sequelize'][_0xa3db('0x14')](_0xa3db('0x43'));db[_0xa3db('0x44')]=db[_0xa3db('0x2')]['import'](_0xa3db('0x45'));db['MailMessage']=db[_0xa3db('0x2')]['import']('../api/mailMessage/mailMessage.model');db[_0xa3db('0x46')]=db['sequelize']['import'](_0xa3db('0x47'));db['MailQueueReport']=db['sequelize'][_0xa3db('0x14')](_0xa3db('0x48'));db[_0xa3db('0x49')]=db[_0xa3db('0x2')][_0xa3db('0x14')](_0xa3db('0x4a'));db[_0xa3db('0x4b')]=db['sequelize'][_0xa3db('0x14')](_0xa3db('0x4c'));db[_0xa3db('0x4d')]=db[_0xa3db('0x2')][_0xa3db('0x14')]('../api/faxAccount/faxAccount.model');db[_0xa3db('0x4e')]=db['sequelize'][_0xa3db('0x14')](_0xa3db('0x4f'));db[_0xa3db('0x50')]=db['sequelize']['import'](_0xa3db('0x51'));db[_0xa3db('0x52')]=db[_0xa3db('0x2')]['import'](_0xa3db('0x53'));db['FaxQueue']=db[_0xa3db('0x2')][_0xa3db('0x14')](_0xa3db('0x54'));db['FaxQueueReport']=db['sequelize']['import'](_0xa3db('0x55'));db['SmsAccount']=db[_0xa3db('0x2')][_0xa3db('0x14')](_0xa3db('0x56'));db[_0xa3db('0x57')]=db['sequelize'][_0xa3db('0x14')](_0xa3db('0x58'));db[_0xa3db('0x59')]=db[_0xa3db('0x2')][_0xa3db('0x14')]('../api/smsInteraction/smsInteraction.model');db[_0xa3db('0x5a')]=db[_0xa3db('0x2')][_0xa3db('0x14')](_0xa3db('0x5b'));db['SmsQueue']=db[_0xa3db('0x2')][_0xa3db('0x14')](_0xa3db('0x5c'));db[_0xa3db('0x5d')]=db[_0xa3db('0x2')]['import']('../api/openchannelAccount/openchannelAccount.model');db['OpenchannelApplication']=db[_0xa3db('0x2')][_0xa3db('0x14')](_0xa3db('0x5e'));db['OpenchannelInteraction']=db[_0xa3db('0x2')][_0xa3db('0x14')](_0xa3db('0x5f'));db[_0xa3db('0x60')]=db[_0xa3db('0x2')][_0xa3db('0x14')](_0xa3db('0x61'));db[_0xa3db('0x62')]=db[_0xa3db('0x2')]['import'](_0xa3db('0x63'));db[_0xa3db('0x64')]=db[_0xa3db('0x2')][_0xa3db('0x14')](_0xa3db('0x65'));db['OpenchannelQueueReport']=db[_0xa3db('0x2')][_0xa3db('0x14')](_0xa3db('0x66'));db[_0xa3db('0x67')]=db[_0xa3db('0x2')][_0xa3db('0x14')]('../api/chatApplication/chatApplication.model');db[_0xa3db('0x68')]=db[_0xa3db('0x2')][_0xa3db('0x14')]('../api/chatInteraction/chatInteraction.model');db[_0xa3db('0x69')]=db['sequelize']['import'](_0xa3db('0x6a'));db[_0xa3db('0x6b')]=db['sequelize'][_0xa3db('0x14')](_0xa3db('0x6c'));db[_0xa3db('0x6d')]=db[_0xa3db('0x2')][_0xa3db('0x14')](_0xa3db('0x6e'));db[_0xa3db('0x6f')]=db[_0xa3db('0x2')]['import'](_0xa3db('0x70'));db[_0xa3db('0x71')]=db[_0xa3db('0x2')][_0xa3db('0x14')](_0xa3db('0x72'));db[_0xa3db('0x73')]=db[_0xa3db('0x2')][_0xa3db('0x14')](_0xa3db('0x74'));db[_0xa3db('0x75')]=db[_0xa3db('0x2')][_0xa3db('0x14')](_0xa3db('0x76'));db[_0xa3db('0x77')]=db[_0xa3db('0x2')]['import'](_0xa3db('0x78'));db[_0xa3db('0x79')]=db['sequelize'][_0xa3db('0x14')](_0xa3db('0x7a'));db['CmHopperFinal']=db[_0xa3db('0x2')][_0xa3db('0x14')]('../api/cmHopperFinal/cmHopperFinal.model');db[_0xa3db('0x7b')]=db[_0xa3db('0x2')][_0xa3db('0x14')]('../api/cmHopperHistory/cmHopperHistory.model');db[_0xa3db('0x7c')]=db['sequelize'][_0xa3db('0x14')](_0xa3db('0x7d'));db[_0xa3db('0x7e')]=db[_0xa3db('0x2')][_0xa3db('0x14')](_0xa3db('0x7f'));db[_0xa3db('0x80')]=db[_0xa3db('0x2')][_0xa3db('0x14')](_0xa3db('0x81'));db[_0xa3db('0x82')]=db[_0xa3db('0x2')][_0xa3db('0x14')](_0xa3db('0x83'));db['CannedAnswer']=db[_0xa3db('0x2')]['import'](_0xa3db('0x84'));db['Disposition']=db[_0xa3db('0x2')]['import']('../api/disposition/disposition.model');db[_0xa3db('0x85')]=db['sequelize'][_0xa3db('0x14')](_0xa3db('0x86'));db[_0xa3db('0x87')]=db[_0xa3db('0x2')][_0xa3db('0x14')](_0xa3db('0x88'));db[_0xa3db('0x89')]=db[_0xa3db('0x2')]['import'](_0xa3db('0x8a'));db[_0xa3db('0x8b')]=db[_0xa3db('0x2')][_0xa3db('0x14')](_0xa3db('0x8c'));db[_0xa3db('0x8d')]=db[_0xa3db('0x2')][_0xa3db('0x14')](_0xa3db('0x8e'));db[_0xa3db('0x8f')]=db['sequelize'][_0xa3db('0x14')](_0xa3db('0x90'));db[_0xa3db('0x91')]=db[_0xa3db('0x2')][_0xa3db('0x14')](_0xa3db('0x92'));db[_0xa3db('0x93')]=db[_0xa3db('0x2')][_0xa3db('0x14')](_0xa3db('0x94'));db[_0xa3db('0x95')]=db[_0xa3db('0x2')][_0xa3db('0x14')](_0xa3db('0x96'));db['Trigger']=db[_0xa3db('0x2')][_0xa3db('0x14')](_0xa3db('0x97'));db[_0xa3db('0x98')]=db[_0xa3db('0x2')][_0xa3db('0x14')](_0xa3db('0x99'));db['Integration']=db[_0xa3db('0x2')][_0xa3db('0x14')](_0xa3db('0x9a'));db[_0xa3db('0x9b')]=db[_0xa3db('0x2')][_0xa3db('0x14')](_0xa3db('0x9c'));db[_0xa3db('0x9d')]=db[_0xa3db('0x2')][_0xa3db('0x14')](_0xa3db('0x9e'));db[_0xa3db('0x9f')]=db[_0xa3db('0x2')]['import']('../api/analyticDefaultReport/analyticDefaultReport.model');db['AnalyticExtractedReport']=db[_0xa3db('0x2')][_0xa3db('0x14')](_0xa3db('0xa0'));db['AnalyticMetric']=db[_0xa3db('0x2')]['import']('../api/analyticMetric/analyticMetric.model');db[_0xa3db('0xa1')]=db[_0xa3db('0x2')]['import']('../api/analyticFieldReport/analyticFieldReport.model');db['AnalyticTreeReport']=db['sequelize'][_0xa3db('0x14')](_0xa3db('0xa2'));db['SalesforceAccount']=db[_0xa3db('0x2')][_0xa3db('0x14')](_0xa3db('0xa3'));db[_0xa3db('0xa4')]=db['sequelize'][_0xa3db('0x14')](_0xa3db('0xa5'));db[_0xa3db('0xa6')]=db[_0xa3db('0x2')]['import'](_0xa3db('0xa7'));db['SugarcrmAccount']=db[_0xa3db('0x2')]['import'](_0xa3db('0xa8'));db[_0xa3db('0xa9')]=db[_0xa3db('0x2')][_0xa3db('0x14')](_0xa3db('0xaa'));db[_0xa3db('0xab')]=db[_0xa3db('0x2')][_0xa3db('0x14')]('../api/intSugarcrmField/intSugarcrmField.model');db[_0xa3db('0xac')]=db[_0xa3db('0x2')][_0xa3db('0x14')](_0xa3db('0xad'));db[_0xa3db('0xae')]=db[_0xa3db('0x2')]['import']('../api/intDeskConfiguration/intDeskConfiguration.model');db[_0xa3db('0xaf')]=db['sequelize'][_0xa3db('0x14')](_0xa3db('0xb0'));db[_0xa3db('0xb1')]=db['sequelize'][_0xa3db('0x14')]('../api/intZohoAccount/intZohoAccount.model');db['ZohoConfiguration']=db[_0xa3db('0x2')][_0xa3db('0x14')](_0xa3db('0xb2'));db[_0xa3db('0xb3')]=db['sequelize'][_0xa3db('0x14')](_0xa3db('0xb4'));db[_0xa3db('0xb5')]=db[_0xa3db('0x2')][_0xa3db('0x14')]('../api/intZendeskAccount/intZendeskAccount.model');db[_0xa3db('0xb6')]=db[_0xa3db('0x2')][_0xa3db('0x14')](_0xa3db('0xb7'));db[_0xa3db('0xb8')]=db['sequelize'][_0xa3db('0x14')](_0xa3db('0xb9'));db[_0xa3db('0xba')]=db['sequelize']['import'](_0xa3db('0xbb'));db['FreshdeskConfiguration']=db['sequelize'][_0xa3db('0x14')](_0xa3db('0xbc'));db['FreshdeskField']=db[_0xa3db('0x2')]['import'](_0xa3db('0xbd'));db['VtigerAccount']=db['sequelize'][_0xa3db('0x14')]('../api/intVtigerAccount/intVtigerAccount.model');db[_0xa3db('0xbe')]=db['sequelize'][_0xa3db('0x14')]('../api/intVtigerConfiguration/intVtigerConfiguration.model');db['VtigerField']=db['sequelize'][_0xa3db('0x14')](_0xa3db('0xbf'));db[_0xa3db('0xc0')]=db['sequelize'][_0xa3db('0x14')](_0xa3db('0xc1'));db[_0xa3db('0xc2')]=db[_0xa3db('0x2')]['import'](_0xa3db('0xc3'));db['ServicenowField']=db[_0xa3db('0x2')]['import'](_0xa3db('0xc4'));db['Dynamics365Account']=db['sequelize'][_0xa3db('0x14')](_0xa3db('0xc5'));db[_0xa3db('0xc6')]=db[_0xa3db('0x2')][_0xa3db('0x14')](_0xa3db('0xc7'));db['Dynamics365Field']=db[_0xa3db('0x2')][_0xa3db('0x14')]('../api/intDynamics365Field/intDynamics365Field.model');db[_0xa3db('0xc8')]=db[_0xa3db('0x2')][_0xa3db('0x14')](_0xa3db('0xc9'));db['FreshsalesConfiguration']=db[_0xa3db('0x2')][_0xa3db('0x14')](_0xa3db('0xca'));db[_0xa3db('0xcb')]=db[_0xa3db('0x2')]['import'](_0xa3db('0xcc'));db['Integration']=db['sequelize'][_0xa3db('0x14')](_0xa3db('0x9a'));db[_0xa3db('0xcd')]=db[_0xa3db('0x2')][_0xa3db('0x14')](_0xa3db('0xce'));db[_0xa3db('0xcf')]=db[_0xa3db('0x2')]['import']('../api/chatQueueReport/chatQueueReport.model');db[_0xa3db('0xd0')]=db[_0xa3db('0x2')][_0xa3db('0x14')](_0xa3db('0xd1'));db[_0xa3db('0xd2')]=db[_0xa3db('0x2')]['import'](_0xa3db('0xd3'));db[_0xa3db('0xd4')]=db[_0xa3db('0x2')][_0xa3db('0x14')](_0xa3db('0xd5'));db['JscriptySessionReport']=db[_0xa3db('0x2')][_0xa3db('0x14')](_0xa3db('0xd6'));db['SmsQueueReport']=db[_0xa3db('0x2')]['import']('../api/smsQueueReport/smsQueueReport.model');db[_0xa3db('0xd7')]=db[_0xa3db('0x2')][_0xa3db('0x14')](_0xa3db('0xd8'));db[_0xa3db('0xd9')]=db[_0xa3db('0x2')][_0xa3db('0x14')](_0xa3db('0xda'));db[_0xa3db('0xdb')]=db['sequelize']['import']('../api/jscriptyProject/jscriptyProject.model');db['Setting']=db[_0xa3db('0x2')][_0xa3db('0x14')](_0xa3db('0xdc'));db[_0xa3db('0xdd')]=db[_0xa3db('0x2')][_0xa3db('0x14')](_0xa3db('0xde'));db[_0xa3db('0xdf')]=db[_0xa3db('0x2')][_0xa3db('0x14')](_0xa3db('0xe0'));db[_0xa3db('0xe1')]=db[_0xa3db('0x2')][_0xa3db('0x14')](_0xa3db('0xe2'));db[_0xa3db('0xe3')]=db[_0xa3db('0x2')][_0xa3db('0x14')](_0xa3db('0xe4'));db[_0xa3db('0xe5')]=db[_0xa3db('0x2')][_0xa3db('0x14')](_0xa3db('0xe6'));db[_0xa3db('0xe7')]=db[_0xa3db('0x2')][_0xa3db('0x14')](_0xa3db('0xe8'));db['Campaign']=db[_0xa3db('0x2')]['import'](_0xa3db('0xe9'));db['Migration']=db['sequelize'][_0xa3db('0x14')]('../api/migration/migration.model');db[_0xa3db('0xea')]=db['sequelize'][_0xa3db('0x14')]('../api/attachment/attachment.model');db['Plugin']=db[_0xa3db('0x2')][_0xa3db('0x14')](_0xa3db('0xeb'));db[_0xa3db('0xec')]=db[_0xa3db('0x2')][_0xa3db('0x14')](_0xa3db('0xed'));db['ChatTransferReport']=db['sequelize'][_0xa3db('0x14')](_0xa3db('0xee'));db[_0xa3db('0xef')]=db['sequelize'][_0xa3db('0x14')]('../api/faxTransferReport/faxTransferReport.model');db[_0xa3db('0xf0')]=db[_0xa3db('0x2')]['import'](_0xa3db('0xf1'));db[_0xa3db('0xf2')]=db[_0xa3db('0x2')][_0xa3db('0x14')](_0xa3db('0xf3'));db[_0xa3db('0xf4')]=db['sequelize'][_0xa3db('0x14')](_0xa3db('0xf5'));db[_0xa3db('0xf6')]=db[_0xa3db('0x2')][_0xa3db('0x14')](_0xa3db('0xf7'));db['UserProfile']=db[_0xa3db('0x2')][_0xa3db('0x14')]('../api/userProfile/userProfile.model');db[_0xa3db('0xf8')]=db[_0xa3db('0x2')][_0xa3db('0x14')](_0xa3db('0xf9'));db[_0xa3db('0xfa')]=db[_0xa3db('0x2')][_0xa3db('0x14')](_0xa3db('0xfb'));db[_0xa3db('0xfc')]=db[_0xa3db('0x2')][_0xa3db('0x14')](_0xa3db('0xfd'));db[_0xa3db('0xfe')]=db[_0xa3db('0x2')][_0xa3db('0x14')]('../api/whatsappAccount/whatsappAccount.model');db[_0xa3db('0xff')]=db[_0xa3db('0x2')][_0xa3db('0x14')]('../api/whatsappApplication/whatsappApplication.model');db[_0xa3db('0x100')]=db[_0xa3db('0x2')][_0xa3db('0x14')](_0xa3db('0x101'));db['WhatsappMessage']=db[_0xa3db('0x2')][_0xa3db('0x14')](_0xa3db('0x102'));db[_0xa3db('0x103')]=db[_0xa3db('0x2')][_0xa3db('0x14')](_0xa3db('0x104'));db['WhatsappTransferReport']=db[_0xa3db('0x2')][_0xa3db('0x14')]('../api/whatsappTransferReport/whatsappTransferReport.model');db['WhatsappQueue']=db[_0xa3db('0x2')]['import'](_0xa3db('0x105'));db[_0xa3db('0x106')]=db['sequelize']['import'](_0xa3db('0x107'));db[_0xa3db('0x108')]=db['sequelize'][_0xa3db('0x14')]('../api/teamVoiceQueue/teamVoiceQueue.model');db[_0xa3db('0x12')][_0xa3db('0x109')](db[_0xa3db('0x10a')],{'as':_0xa3db('0x10a'),'onDelete':'cascade','foreignKey':_0xa3db('0x10b')});db[_0xa3db('0x12')]['hasMany'](db[_0xa3db('0x1d')],{'as':_0xa3db('0x10c'),'foreignKey':_0xa3db('0x10b')});db[_0xa3db('0x12')][_0xa3db('0x10d')](db[_0xa3db('0x2d')],{'as':_0xa3db('0x10e'),'foreignKey':_0xa3db('0x10b')});db['User'][_0xa3db('0x10d')](db['VoiceExtension'],{'as':_0xa3db('0x10f'),'onDelete':'cascade','hooks':!![]});db[_0xa3db('0x12')][_0xa3db('0x10d')](db[_0xa3db('0x110')],{'as':_0xa3db('0x111'),'foreignKey':'UserId'});db['User'][_0xa3db('0x10d')](db['CmHopperHistory'],{'as':_0xa3db('0x112'),'foreignKey':_0xa3db('0x10b')});db[_0xa3db('0x12')][_0xa3db('0x10d')](db[_0xa3db('0x7c')],{'as':_0xa3db('0x7c'),'foreignKey':_0xa3db('0x10b')});db[_0xa3db('0x12')]['hasMany'](db[_0xa3db('0x113')],{'as':_0xa3db('0x114'),'foreignKey':_0xa3db('0x10b')});db[_0xa3db('0x12')][_0xa3db('0x10d')](db[_0xa3db('0x68')],{'as':_0xa3db('0x115'),'foreignKey':_0xa3db('0x10b')});db[_0xa3db('0x12')]['hasMany'](db[_0xa3db('0x59')],{'as':_0xa3db('0x116'),'foreignKey':_0xa3db('0x10b')});db[_0xa3db('0x12')][_0xa3db('0x10d')](db['FaxInteraction'],{'as':'FaxInteractions','foreignKey':_0xa3db('0x10b')});db['User'][_0xa3db('0x10d')](db[_0xa3db('0x44')],{'as':_0xa3db('0x117'),'foreignKey':_0xa3db('0x10b')});db[_0xa3db('0x12')]['hasMany'](db['WhatsappInteraction'],{'as':'WhatsappInteractions','foreignKey':_0xa3db('0x10b')});db['User'][_0xa3db('0x10d')](db[_0xa3db('0xfc')],{'as':_0xa3db('0x118'),'foreignKey':'SenderId'});db[_0xa3db('0x12')]['belongsTo'](db[_0xa3db('0x119')],{'as':'UserProfile','foreignKey':_0xa3db('0x11a')});db['User'][_0xa3db('0x11b')](db[_0xa3db('0x6f')],{'as':_0xa3db('0x11c'),'through':_0xa3db('0x11d')});db['User'][_0xa3db('0x11b')](db['CmContact'],{'as':'Contacts','through':_0xa3db('0x11e')});db[_0xa3db('0x12')][_0xa3db('0x11b')](db[_0xa3db('0xf4')],{'as':_0xa3db('0x11f'),'through':'cm_user_has_lists'});db[_0xa3db('0x12')][_0xa3db('0x11b')](db[_0xa3db('0xe5')],{'through':'user_has_teams'});db[_0xa3db('0x12')]['belongsToMany'](db[_0xa3db('0x44')],{'as':_0xa3db('0x117'),'through':_0xa3db('0x120')});db[_0xa3db('0x12')][_0xa3db('0x11b')](db[_0xa3db('0x68')],{'as':_0xa3db('0x115'),'through':'user_has_chat_interactions'});db[_0xa3db('0x12')][_0xa3db('0x11b')](db[_0xa3db('0x50')],{'as':'FaxInteractions','through':_0xa3db('0x121')});db[_0xa3db('0x12')][_0xa3db('0x11b')](db['SmsInteraction'],{'as':_0xa3db('0x116'),'through':_0xa3db('0x122')});db[_0xa3db('0x12')][_0xa3db('0x11b')](db[_0xa3db('0x113')],{'as':_0xa3db('0x114'),'through':'user_has_openchannel_interactions'});db['User'][_0xa3db('0x11b')](db[_0xa3db('0x100')],{'as':'WhatsappInteractions','through':_0xa3db('0x123')});db[_0xa3db('0x12')]['belongsToMany'](db[_0xa3db('0x1b')],{'as':'VoiceQueues','through':'UserVoiceQueue','required':![]});db[_0xa3db('0x12')][_0xa3db('0x11b')](db[_0xa3db('0x41')],{'as':_0xa3db('0x124'),'through':_0xa3db('0x33'),'required':![]});db['User'][_0xa3db('0x11b')](db['ChatQueue'],{'as':_0xa3db('0x125'),'through':_0xa3db('0x31'),'required':![],'hooks':!![]});db[_0xa3db('0x12')][_0xa3db('0x11b')](db[_0xa3db('0x126')],{'as':'FaxQueues','through':_0xa3db('0x35'),'required':![]});db[_0xa3db('0x12')]['belongsToMany'](db['SmsQueue'],{'as':'SmsQueues','through':'UserSmsQueue','required':![]});db[_0xa3db('0x12')][_0xa3db('0x11b')](db[_0xa3db('0x62')],{'as':_0xa3db('0x127'),'through':_0xa3db('0x128'),'required':![]});db['User'][_0xa3db('0x11b')](db['WhatsappQueue'],{'as':_0xa3db('0x129'),'through':'UserWhatsappQueue','required':![]});db[_0xa3db('0x12')][_0xa3db('0x11b')](db[_0xa3db('0xf4')],{'through':_0xa3db('0x12a')});db[_0xa3db('0x12')]['belongsToMany'](db['VoicePrefix'],{'as':_0xa3db('0x12b'),'through':_0xa3db('0x12c'),'required':![]});db[_0xa3db('0x12')]['belongsToMany'](db[_0xa3db('0x64')],{'as':_0xa3db('0x12d'),'through':_0xa3db('0x12e')});db['User'][_0xa3db('0x11b')](db[_0xa3db('0x4d')],{'as':_0xa3db('0x12f'),'through':_0xa3db('0x130')});db['User'][_0xa3db('0x11b')](db[_0xa3db('0x3f')],{'as':_0xa3db('0x131'),'through':_0xa3db('0x132')});db[_0xa3db('0x12')][_0xa3db('0x11b')](db[_0xa3db('0x5d')],{'as':'OpenchannelAccounts','through':'user_has_openchannel_accounts'});db[_0xa3db('0x12')]['belongsToMany'](db['SmsAccount'],{'as':_0xa3db('0x133'),'through':_0xa3db('0x134')});db['User'][_0xa3db('0x11b')](db[_0xa3db('0xfe')],{'as':_0xa3db('0x135'),'through':_0xa3db('0x136')});db[_0xa3db('0x12')][_0xa3db('0x11b')](db[_0xa3db('0xdf')],{'as':'SquareProjects','through':_0xa3db('0x137')});db[_0xa3db('0x138')][_0xa3db('0x10d')](db[_0xa3db('0x17')],{'as':_0xa3db('0x139'),'onDelete':'cascade','foreignKey':_0xa3db('0x13a')});db[_0xa3db('0x15')][_0xa3db('0x10d')](db[_0xa3db('0x17')],{'onDelete':'cascade'});db[_0xa3db('0x17')][_0xa3db('0x10d')](db[_0xa3db('0x17')],{'as':'Applications','onDelete':'cascade'});db[_0xa3db('0x19')][_0xa3db('0x11b')](db[_0xa3db('0x91')],{'as':_0xa3db('0x13b'),'through':_0xa3db('0x13c')});db[_0xa3db('0x1b')][_0xa3db('0x10d')](db[_0xa3db('0x2d')],{'as':'Members','foreignKey':_0xa3db('0x13d')});db['VoiceQueue'][_0xa3db('0x10d')](db[_0xa3db('0x77')],{'as':_0xa3db('0x13e'),'foreignKey':_0xa3db('0x13d')});db[_0xa3db('0x1b')]['hasMany'](db[_0xa3db('0x110')],{'as':_0xa3db('0x111'),'foreignKey':_0xa3db('0x13d')});db[_0xa3db('0x1b')][_0xa3db('0x10d')](db[_0xa3db('0x7b')],{'as':_0xa3db('0x13f'),'foreignKey':_0xa3db('0x13d')});db[_0xa3db('0x1b')]['hasMany'](db[_0xa3db('0x7c')],{'as':_0xa3db('0x7c'),'foreignKey':_0xa3db('0x13d')});db['VoiceQueue'][_0xa3db('0x10d')](db[_0xa3db('0x79')],{'as':_0xa3db('0x140'),'foreignKey':_0xa3db('0x13d')});db[_0xa3db('0x1b')][_0xa3db('0x10d')](db[_0xa3db('0x141')],{'as':_0xa3db('0x142'),'foreignKey':_0xa3db('0x13d')});db[_0xa3db('0x1b')][_0xa3db('0x143')](db[_0xa3db('0x2a')],{'as':_0xa3db('0x2a'),'foreignKey':_0xa3db('0x144')});db[_0xa3db('0x1b')][_0xa3db('0x143')](db[_0xa3db('0x2a')],{'as':_0xa3db('0x145'),'foreignKey':_0xa3db('0x146')});db[_0xa3db('0x1b')][_0xa3db('0x143')](db[_0xa3db('0x87')],{'as':_0xa3db('0x87'),'foreignKey':_0xa3db('0x147')});db[_0xa3db('0x1b')][_0xa3db('0x143')](db[_0xa3db('0x89')],{'as':_0xa3db('0x148'),'foreignKey':'mandatoryDispositionPauseId'});db[_0xa3db('0x1b')]['belongsToMany'](db[_0xa3db('0xf4')],{'as':'Lists','through':_0xa3db('0x149')});db[_0xa3db('0x1b')][_0xa3db('0x11b')](db[_0xa3db('0x12')],{'as':_0xa3db('0x14a'),'through':_0xa3db('0x2f')});db['VoiceQueue'][_0xa3db('0x11b')](db[_0xa3db('0xe5')],{'as':_0xa3db('0x14b'),'through':'TeamVoiceQueue'});db[_0xa3db('0x1b')]['belongsToMany'](db[_0xa3db('0xf4')],{'as':_0xa3db('0x14c'),'through':_0xa3db('0x14d')});db[_0xa3db('0x1d')][_0xa3db('0x143')](db['User'],{'as':_0xa3db('0x12'),'foreignKey':_0xa3db('0x10b')});db[_0xa3db('0x14e')][_0xa3db('0x143')](db[_0xa3db('0x12')],{'as':_0xa3db('0x12'),'foreignKey':_0xa3db('0x10b')});db[_0xa3db('0x10a')][_0xa3db('0x10d')](db[_0xa3db('0x20')],{'as':_0xa3db('0x14f'),'onDelete':_0xa3db('0x150'),'foreignKey':_0xa3db('0x151'),'sourceKey':'mailbox'});db[_0xa3db('0x20')][_0xa3db('0x143')](db[_0xa3db('0x10a')],{'foreignKey':'mailboxuser','targetKey':_0xa3db('0x152')});db[_0xa3db('0x21')][_0xa3db('0x10d')](db[_0xa3db('0x26')],{'as':_0xa3db('0x153'),'foreignKey':_0xa3db('0x154'),'constraints':![]});db[_0xa3db('0x21')][_0xa3db('0x10d')](db[_0xa3db('0x24')],{'as':_0xa3db('0x155'),'foreignKey':_0xa3db('0x154'),'constraints':![]});db[_0xa3db('0x21')][_0xa3db('0x143')](db['User'],{'as':_0xa3db('0x12'),'foreignKey':_0xa3db('0x10b')});db['VoiceCallReport'][_0xa3db('0x143')](db[_0xa3db('0x75')],{'as':_0xa3db('0x156'),'foreignKey':_0xa3db('0x157')});db['MailServerIn'][_0xa3db('0x143')](db['MailAccount'],{'as':_0xa3db('0x3f'),'foreignKey':_0xa3db('0x158')});db[_0xa3db('0x3d')][_0xa3db('0x143')](db['MailAccount'],{'as':_0xa3db('0x3f'),'foreignKey':'MailAccountId'});db[_0xa3db('0x3f')]['hasOne'](db[_0xa3db('0x3b')],{'as':_0xa3db('0x159'),'onDelete':_0xa3db('0x150')});db['MailAccount']['hasOne'](db[_0xa3db('0x3d')],{'as':'Smtp','onDelete':_0xa3db('0x150')});db[_0xa3db('0x3f')][_0xa3db('0x10d')](db[_0xa3db('0x15a')],{'as':_0xa3db('0x15b'),'foreignKey':_0xa3db('0x158'),'onDelete':_0xa3db('0x150')});db['MailAccount'][_0xa3db('0x10d')](db[_0xa3db('0x15c')],{'as':_0xa3db('0x15d'),'foreignKey':_0xa3db('0x158')});db[_0xa3db('0x3f')]['hasMany'](db[_0xa3db('0x15e')],{'as':_0xa3db('0x14f'),'foreignKey':_0xa3db('0x158')});db['MailAccount'][_0xa3db('0x10d')](db[_0xa3db('0x44')],{'as':_0xa3db('0x15f')});db['MailAccount'][_0xa3db('0x10d')](db[_0xa3db('0x46')],{'as':_0xa3db('0x160')});db[_0xa3db('0x3f')][_0xa3db('0x143')](db['CmList'],{'as':_0xa3db('0x161'),'foreignKey':_0xa3db('0x162')});db[_0xa3db('0x3f')][_0xa3db('0x143')](db[_0xa3db('0x95')],{'as':_0xa3db('0x95'),'foreignKey':_0xa3db('0x163')});db[_0xa3db('0x3f')][_0xa3db('0x143')](db['Pause'],{'as':_0xa3db('0x148'),'foreignKey':_0xa3db('0x164')});db[_0xa3db('0x3f')][_0xa3db('0x11b')](db[_0xa3db('0x12')],{'as':_0xa3db('0x14a'),'through':_0xa3db('0x132')});db[_0xa3db('0x41')][_0xa3db('0x11b')](db[_0xa3db('0x12')],{'as':_0xa3db('0x14a'),'through':_0xa3db('0x33')});db[_0xa3db('0x41')]['belongsToMany'](db['Team'],{'through':'team_has_mail_queues','as':_0xa3db('0x14b')});db[_0xa3db('0x44')][_0xa3db('0x10d')](db[_0xa3db('0x15e')],{'as':'Messages','onDelete':_0xa3db('0x150'),'foreignKey':_0xa3db('0x165')});db[_0xa3db('0x44')][_0xa3db('0x143')](db[_0xa3db('0x3f')],{'as':_0xa3db('0x166'),'foreignKey':_0xa3db('0x158')});db[_0xa3db('0x44')][_0xa3db('0x143')](db['CmContact'],{'as':_0xa3db('0x156'),'foreignKey':_0xa3db('0x157')});db[_0xa3db('0x44')][_0xa3db('0x143')](db['User'],{'as':_0xa3db('0x167'),'foreignKey':'UserId'});db[_0xa3db('0x44')][_0xa3db('0x11b')](db['Tag'],{'through':'mail_interaction_has_tags','as':_0xa3db('0x168')});db[_0xa3db('0x44')][_0xa3db('0x11b')](db[_0xa3db('0x93')],{'through':_0xa3db('0x169'),'as':_0xa3db('0x16a')});db['MailInteraction'][_0xa3db('0x11b')](db[_0xa3db('0x12')],{'as':_0xa3db('0x16b'),'through':_0xa3db('0x120'),'foreignKey':'MailInteractionId'});db[_0xa3db('0x15e')][_0xa3db('0x10d')](db[_0xa3db('0xea')],{'as':_0xa3db('0x16c'),'onDelete':_0xa3db('0x150')});db[_0xa3db('0x15e')][_0xa3db('0x143')](db[_0xa3db('0x12')],{'as':_0xa3db('0x12')});db['MailMessage'][_0xa3db('0x143')](db[_0xa3db('0x75')],{'onDelete':_0xa3db('0x150'),'as':'Contact'});db['MailMessage'][_0xa3db('0x143')](db[_0xa3db('0x44')],{'as':'Interaction','foreignKey':_0xa3db('0x165')});db['MailMessage']['belongsTo'](db['MailAccount'],{'as':_0xa3db('0x166'),'foreignKey':_0xa3db('0x158')});db[_0xa3db('0x15e')]['belongsTo'](db[_0xa3db('0x64')],{'as':_0xa3db('0x64'),'foreignKey':_0xa3db('0x16d')});db[_0xa3db('0x15e')][_0xa3db('0x143')](db['ChatOfflineMessage'],{'as':'ChatOfflineMessage','foreignKey':_0xa3db('0x16e')});db[_0xa3db('0x46')][_0xa3db('0x143')](db[_0xa3db('0x12')],{'onDelete':_0xa3db('0x16f')});db[_0xa3db('0x46')][_0xa3db('0x143')](db['MailQueue'],{'onDelete':_0xa3db('0x16f')});db['MailApplication'][_0xa3db('0x143')](db[_0xa3db('0x3f')],{'onDelete':_0xa3db('0x16f')});db[_0xa3db('0x46')][_0xa3db('0x143')](db[_0xa3db('0x87')],{'onDelete':_0xa3db('0x16f'),'foreignKey':_0xa3db('0x147')});db['MailApplication'][_0xa3db('0x143')](db['Tag'],{'onDelete':'restrict','foreignKey':_0xa3db('0x170')});db[_0xa3db('0x171')][_0xa3db('0x143')](db['MailAccount'],{});db['MailQueueReport'][_0xa3db('0x143')](db['CmList'],{'as':_0xa3db('0x161'),'foreignKey':_0xa3db('0x162')});db[_0xa3db('0x171')][_0xa3db('0x143')](db[_0xa3db('0x75')],{'as':_0xa3db('0x156'),'foreignKey':_0xa3db('0x157')});db[_0xa3db('0x171')][_0xa3db('0x143')](db[_0xa3db('0x44')],{});db[_0xa3db('0x171')]['belongsTo'](db[_0xa3db('0x15e')],{});db[_0xa3db('0x171')][_0xa3db('0x143')](db[_0xa3db('0x12')],{});db[_0xa3db('0x171')][_0xa3db('0x143')](db['MailQueue'],{});db['Dashboard'][_0xa3db('0x10d')](db[_0xa3db('0x4b')],{'as':'Items','onDelete':'cascade'});db[_0xa3db('0x4d')]['hasMany'](db[_0xa3db('0x15a')],{'as':_0xa3db('0x15b'),'foreignKey':_0xa3db('0x172'),'onDelete':_0xa3db('0x150')});db['FaxAccount'][_0xa3db('0x10d')](db['CannedAnswer'],{'as':'Answers','foreignKey':_0xa3db('0x172')});db[_0xa3db('0x4d')][_0xa3db('0x10d')](db[_0xa3db('0x50')],{'as':_0xa3db('0x15f')});db['FaxAccount'][_0xa3db('0x10d')](db[_0xa3db('0x4e')],{'as':_0xa3db('0x160')});db[_0xa3db('0x4d')][_0xa3db('0x10d')](db[_0xa3db('0x17')],{'as':'Exntensions','onDelete':'cascade'});db[_0xa3db('0x4d')][_0xa3db('0x10d')](db[_0xa3db('0x52')],{'as':_0xa3db('0x14f')});db[_0xa3db('0x4d')][_0xa3db('0x143')](db[_0xa3db('0x2a')],{'as':_0xa3db('0x2a')});db[_0xa3db('0x4d')][_0xa3db('0x143')](db[_0xa3db('0xf4')],{'as':'List','foreignKey':_0xa3db('0x162')});db['FaxAccount'][_0xa3db('0x143')](db[_0xa3db('0x89')],{'as':'mandatoryDispositionPause','foreignKey':_0xa3db('0x164')});db[_0xa3db('0x4d')][_0xa3db('0x11b')](db[_0xa3db('0x12')],{'as':_0xa3db('0x14a'),'through':_0xa3db('0x130')});db['FaxApplication'][_0xa3db('0x143')](db[_0xa3db('0x12')],{'onDelete':'restrict'});db[_0xa3db('0x4e')]['belongsTo'](db[_0xa3db('0x126')],{'onDelete':_0xa3db('0x16f')});db['FaxApplication']['belongsTo'](db[_0xa3db('0x4d')],{'onDelete':_0xa3db('0x16f')});db[_0xa3db('0x4e')][_0xa3db('0x143')](db[_0xa3db('0x93')],{'onDelete':'restrict','foreignKey':_0xa3db('0x170')});db[_0xa3db('0x50')][_0xa3db('0x10d')](db[_0xa3db('0x52')],{'as':_0xa3db('0x14f'),'onDelete':_0xa3db('0x150'),'foreignKey':_0xa3db('0x173')});db[_0xa3db('0x50')][_0xa3db('0x143')](db[_0xa3db('0x4d')],{'as':_0xa3db('0x166'),'foreignKey':_0xa3db('0x172')});db[_0xa3db('0x50')][_0xa3db('0x143')](db[_0xa3db('0x75')],{'as':_0xa3db('0x156'),'foreignKey':'ContactId'});db[_0xa3db('0x50')][_0xa3db('0x143')](db[_0xa3db('0x12')],{'as':_0xa3db('0x167'),'foreignKey':_0xa3db('0x10b')});db[_0xa3db('0x50')][_0xa3db('0x11b')](db['Tag'],{'through':'fax_interaction_has_tags','as':_0xa3db('0x168')});db[_0xa3db('0x50')]['belongsToMany'](db[_0xa3db('0x93')],{'through':_0xa3db('0x174'),'as':_0xa3db('0x16a')});db[_0xa3db('0x50')]['belongsToMany'](db[_0xa3db('0x12')],{'as':_0xa3db('0x16b'),'through':_0xa3db('0x121'),'foreignKey':_0xa3db('0x173')});db[_0xa3db('0x52')]['belongsTo'](db[_0xa3db('0x12')],{'onDelete':'cascade','as':'User'});db[_0xa3db('0x52')][_0xa3db('0x143')](db[_0xa3db('0x50')],{'as':'Interaction','foreignKey':'FaxInteractionId'});db[_0xa3db('0x52')][_0xa3db('0x143')](db[_0xa3db('0x75')],{'onDelete':_0xa3db('0x150'),'as':_0xa3db('0x156')});db[_0xa3db('0x52')][_0xa3db('0x143')](db[_0xa3db('0xea')],{'as':_0xa3db('0xea'),'foreignKey':_0xa3db('0x175')});db[_0xa3db('0x52')][_0xa3db('0x143')](db[_0xa3db('0x4d')],{'as':_0xa3db('0x166'),'foreignKey':'FaxAccountId'});db['FaxQueue'][_0xa3db('0x11b')](db[_0xa3db('0x12')],{'as':_0xa3db('0x14a'),'through':'UserFaxQueue'});db[_0xa3db('0x126')][_0xa3db('0x11b')](db['Team'],{'through':'team_has_fax_queues','as':'Teams'});db[_0xa3db('0x176')][_0xa3db('0x143')](db[_0xa3db('0x4d')],{});db[_0xa3db('0x176')][_0xa3db('0x143')](db[_0xa3db('0xf4')],{'as':_0xa3db('0x161'),'foreignKey':_0xa3db('0x162')});db[_0xa3db('0x176')][_0xa3db('0x143')](db[_0xa3db('0x75')],{'as':'Contact','foreignKey':_0xa3db('0x157')});db[_0xa3db('0x176')][_0xa3db('0x143')](db[_0xa3db('0x50')],{});db[_0xa3db('0x176')][_0xa3db('0x143')](db[_0xa3db('0x52')],{});db[_0xa3db('0x176')][_0xa3db('0x143')](db[_0xa3db('0x12')],{});db['FaxQueueReport'][_0xa3db('0x143')](db['FaxQueue'],{});db[_0xa3db('0x177')]['hasMany'](db[_0xa3db('0x15a')],{'as':_0xa3db('0x15b'),'foreignKey':_0xa3db('0x178'),'onDelete':'cascade'});db[_0xa3db('0x177')][_0xa3db('0x10d')](db['CannedAnswer'],{'as':_0xa3db('0x15d'),'foreignKey':_0xa3db('0x178')});db[_0xa3db('0x177')][_0xa3db('0x10d')](db[_0xa3db('0x5a')],{'as':_0xa3db('0x14f'),'foreignKey':'SmsAccountId'});db[_0xa3db('0x177')][_0xa3db('0x10d')](db[_0xa3db('0x59')],{'as':_0xa3db('0x15f')});db['SmsAccount'][_0xa3db('0x10d')](db[_0xa3db('0x57')],{'as':'Applications'});db['SmsAccount']['belongsTo'](db['CmList'],{'as':_0xa3db('0x161'),'foreignKey':_0xa3db('0x162')});db[_0xa3db('0x177')][_0xa3db('0x143')](db['Pause'],{'as':_0xa3db('0x148'),'foreignKey':_0xa3db('0x164')});db['SmsAccount']['belongsToMany'](db[_0xa3db('0x12')],{'as':_0xa3db('0x14a'),'through':_0xa3db('0x134')});db[_0xa3db('0x57')][_0xa3db('0x143')](db[_0xa3db('0x12')],{'onDelete':_0xa3db('0x16f')});db[_0xa3db('0x57')][_0xa3db('0x143')](db['SmsQueue'],{'onDelete':'restrict'});db['SmsApplication'][_0xa3db('0x143')](db[_0xa3db('0x177')],{'onDelete':_0xa3db('0x16f')});db[_0xa3db('0x57')][_0xa3db('0x143')](db[_0xa3db('0x87')],{'onDelete':'restrict','foreignKey':_0xa3db('0x147')});db[_0xa3db('0x57')]['belongsTo'](db['Tag'],{'onDelete':_0xa3db('0x16f'),'foreignKey':'TagId'});db[_0xa3db('0x59')]['hasMany'](db[_0xa3db('0x5a')],{'as':_0xa3db('0x14f'),'onDelete':'cascade','foreignKey':_0xa3db('0x179')});db['SmsInteraction'][_0xa3db('0x143')](db['SmsAccount'],{'as':_0xa3db('0x166'),'foreignKey':_0xa3db('0x178')});db[_0xa3db('0x59')][_0xa3db('0x143')](db[_0xa3db('0x75')],{'as':'Contact','foreignKey':'ContactId'});db[_0xa3db('0x59')][_0xa3db('0x143')](db[_0xa3db('0x12')],{'as':_0xa3db('0x167'),'foreignKey':_0xa3db('0x10b')});db[_0xa3db('0x59')]['belongsToMany'](db[_0xa3db('0x93')],{'through':_0xa3db('0x17a'),'as':'Tags'});db[_0xa3db('0x59')][_0xa3db('0x11b')](db[_0xa3db('0x93')],{'through':_0xa3db('0x17a'),'as':_0xa3db('0x16a')});db[_0xa3db('0x59')][_0xa3db('0x11b')](db[_0xa3db('0x12')],{'as':_0xa3db('0x16b'),'through':'user_has_sms_interactions','foreignKey':'SmsInteractionId'});db[_0xa3db('0x5a')][_0xa3db('0x143')](db['User'],{'as':_0xa3db('0x12')});db[_0xa3db('0x5a')][_0xa3db('0x143')](db[_0xa3db('0x75')],{'onDelete':'cascade','as':'Contact'});db['SmsMessage'][_0xa3db('0x143')](db['SmsInteraction'],{'onDelete':'cascade','as':'Interaction','foreignKey':_0xa3db('0x179')});db[_0xa3db('0x5a')][_0xa3db('0x143')](db[_0xa3db('0x177')],{'as':_0xa3db('0x166'),'foreignKey':_0xa3db('0x178')});db[_0xa3db('0x17b')][_0xa3db('0x11b')](db[_0xa3db('0x12')],{'as':'Agents','through':_0xa3db('0x37'),'foreignKey':_0xa3db('0x17c')});db['SmsQueue'][_0xa3db('0x11b')](db[_0xa3db('0xe5')],{'through':'team_has_sms_queues','as':_0xa3db('0x14b')});db[_0xa3db('0x5d')][_0xa3db('0x10d')](db['Disposition'],{'as':_0xa3db('0x15b'),'foreignKey':_0xa3db('0x17d'),'onDelete':_0xa3db('0x150')});db['OpenchannelAccount']['hasMany'](db[_0xa3db('0x15c')],{'as':_0xa3db('0x15d'),'foreignKey':'OpenchannelAccountId'});db[_0xa3db('0x5d')]['hasMany'](db[_0xa3db('0x113')],{'as':'Interactions','foreignKey':_0xa3db('0x17d')});db[_0xa3db('0x5d')][_0xa3db('0x10d')](db['OpenchannelMessage'],{'as':_0xa3db('0x14f'),'foreignKey':_0xa3db('0x17d')});db[_0xa3db('0x5d')][_0xa3db('0x10d')](db[_0xa3db('0x17e')],{'as':_0xa3db('0x160'),'foreignKey':_0xa3db('0x17d')});db[_0xa3db('0x5d')]['belongsTo'](db[_0xa3db('0xf4')],{'as':_0xa3db('0x161'),'foreignKey':_0xa3db('0x162')});db[_0xa3db('0x5d')][_0xa3db('0x143')](db['Pause'],{'as':_0xa3db('0x148'),'foreignKey':_0xa3db('0x164')});db[_0xa3db('0x5d')]['belongsToMany'](db[_0xa3db('0x12')],{'as':'Agents','through':_0xa3db('0x17f')});db[_0xa3db('0x17e')]['belongsTo'](db[_0xa3db('0x12')],{'onDelete':_0xa3db('0x16f')});db[_0xa3db('0x17e')]['belongsTo'](db[_0xa3db('0x62')],{'onDelete':_0xa3db('0x16f'),'foreignKey':_0xa3db('0x180')});db[_0xa3db('0x17e')][_0xa3db('0x143')](db[_0xa3db('0x5d')],{'onDelete':_0xa3db('0x16f'),'foreignKey':_0xa3db('0x17d')});db[_0xa3db('0x17e')][_0xa3db('0x143')](db[_0xa3db('0x87')],{'onDelete':'restrict','foreignKey':_0xa3db('0x147')});db[_0xa3db('0x17e')][_0xa3db('0x143')](db[_0xa3db('0x93')],{'onDelete':_0xa3db('0x16f'),'foreignKey':_0xa3db('0x170')});db[_0xa3db('0x113')][_0xa3db('0x10d')](db[_0xa3db('0x60')],{'as':'Messages','onDelete':_0xa3db('0x150'),'foreignKey':_0xa3db('0x181')});db[_0xa3db('0x113')][_0xa3db('0x143')](db[_0xa3db('0x5d')],{'as':_0xa3db('0x166'),'foreignKey':_0xa3db('0x17d')});db[_0xa3db('0x113')][_0xa3db('0x143')](db[_0xa3db('0x75')],{'as':'Contact','foreignKey':_0xa3db('0x157')});db[_0xa3db('0x113')][_0xa3db('0x143')](db[_0xa3db('0x12')],{'as':_0xa3db('0x167'),'foreignKey':_0xa3db('0x10b')});db['OpenchannelInteraction'][_0xa3db('0x11b')](db['Tag'],{'through':_0xa3db('0x182'),'as':_0xa3db('0x168')});db[_0xa3db('0x113')]['belongsToMany'](db[_0xa3db('0x93')],{'through':_0xa3db('0x182'),'as':'ThroughTags'});db[_0xa3db('0x113')]['belongsToMany'](db[_0xa3db('0x12')],{'as':_0xa3db('0x16b'),'through':_0xa3db('0x183'),'foreignKey':'OpenchannelInteractionId'});db[_0xa3db('0x60')][_0xa3db('0x143')](db[_0xa3db('0x12')],{'onDelete':_0xa3db('0x150'),'as':_0xa3db('0x12')});db['OpenchannelMessage'][_0xa3db('0x143')](db['CmContact'],{'onDelete':'cascade','as':_0xa3db('0x156')});db[_0xa3db('0x60')]['belongsTo'](db[_0xa3db('0x113')],{'onDelete':'cascade','as':_0xa3db('0x184'),'foreignKey':_0xa3db('0x181')});db[_0xa3db('0x60')][_0xa3db('0x143')](db['Attachment'],{'as':_0xa3db('0xea'),'foreignKey':_0xa3db('0x175')});db[_0xa3db('0x60')][_0xa3db('0x143')](db['OpenchannelAccount'],{'as':_0xa3db('0x166'),'foreignKey':_0xa3db('0x17d')});db[_0xa3db('0x62')][_0xa3db('0x11b')](db[_0xa3db('0x12')],{'as':_0xa3db('0x14a'),'through':_0xa3db('0x128'),'foreignKey':_0xa3db('0x180')});db['OpenchannelQueue']['belongsToMany'](db[_0xa3db('0xe5')],{'through':_0xa3db('0x185'),'as':_0xa3db('0x14b')});db[_0xa3db('0x64')][_0xa3db('0x10d')](db[_0xa3db('0x15a')],{'as':_0xa3db('0x15b'),'foreignKey':'ChatWebsiteId','onDelete':'cascade'});db[_0xa3db('0x64')][_0xa3db('0x10d')](db[_0xa3db('0x15c')],{'as':_0xa3db('0x15d'),'foreignKey':_0xa3db('0x16d')});db[_0xa3db('0x64')][_0xa3db('0x10d')](db[_0xa3db('0x71')],{'as':_0xa3db('0x186')});db['ChatWebsite'][_0xa3db('0x10d')](db['ChatInteraction'],{'as':_0xa3db('0x15f')});db[_0xa3db('0x64')]['hasMany'](db[_0xa3db('0x67')],{'as':'Applications'});db['ChatWebsite']['hasMany'](db['ChatMessage'],{'as':_0xa3db('0x14f')});db[_0xa3db('0x64')]['belongsTo'](db[_0xa3db('0xf4')],{'as':_0xa3db('0x161'),'foreignKey':_0xa3db('0x162')});db[_0xa3db('0x64')][_0xa3db('0x143')](db[_0xa3db('0x87')],{'as':'Interval','foreignKey':_0xa3db('0x147')});db[_0xa3db('0x64')][_0xa3db('0x143')](db[_0xa3db('0x3f')],{'as':_0xa3db('0x3f'),'foreignKey':'MailAccountId'});db[_0xa3db('0x64')][_0xa3db('0x143')](db[_0xa3db('0x89')],{'as':'mandatoryDispositionPause','foreignKey':_0xa3db('0x164')});db[_0xa3db('0x64')][_0xa3db('0x11b')](db['User'],{'as':'Agents','through':_0xa3db('0x12e')});db[_0xa3db('0x187')]['belongsTo'](db[_0xa3db('0x5d')],{});db['OpenchannelQueueReport'][_0xa3db('0x143')](db[_0xa3db('0xf4')],{'as':'List','foreignKey':_0xa3db('0x162')});db[_0xa3db('0x187')][_0xa3db('0x143')](db['CmContact'],{'as':_0xa3db('0x156'),'foreignKey':_0xa3db('0x157')});db[_0xa3db('0x187')]['belongsTo'](db[_0xa3db('0x113')],{});db[_0xa3db('0x187')][_0xa3db('0x143')](db[_0xa3db('0x60')],{});db[_0xa3db('0x187')][_0xa3db('0x143')](db[_0xa3db('0x12')],{});db[_0xa3db('0x187')]['belongsTo'](db[_0xa3db('0x62')],{});db[_0xa3db('0x67')][_0xa3db('0x143')](db['User'],{'as':_0xa3db('0x188'),'foreignKey':_0xa3db('0x10b'),'onDelete':_0xa3db('0x16f')});db['ChatApplication']['belongsTo'](db[_0xa3db('0x6d')],{'as':'Queue','foreignKey':_0xa3db('0x189'),'onDelete':_0xa3db('0x16f')});db[_0xa3db('0x67')]['belongsTo'](db['ChatWebsite'],{'as':_0xa3db('0x18a'),'foreignKey':_0xa3db('0x16d'),'onDelete':_0xa3db('0x16f')});db[_0xa3db('0x67')]['belongsTo'](db[_0xa3db('0x93')],{'onDelete':_0xa3db('0x16f'),'foreignKey':_0xa3db('0x170')});db[_0xa3db('0x68')][_0xa3db('0x10d')](db[_0xa3db('0x69')],{'as':'Messages','onDelete':'cascade','foreignKey':_0xa3db('0x18b')});db[_0xa3db('0x68')]['belongsTo'](db[_0xa3db('0x64')],{'as':'Account','foreignKey':'ChatWebsiteId'});db[_0xa3db('0x68')][_0xa3db('0x143')](db[_0xa3db('0x75')],{'as':_0xa3db('0x156'),'foreignKey':_0xa3db('0x157')});db['ChatInteraction'][_0xa3db('0x143')](db[_0xa3db('0x12')],{'as':'Owner','foreignKey':_0xa3db('0x10b')});db['ChatInteraction']['belongsToMany'](db['Tag'],{'through':_0xa3db('0x18c'),'as':_0xa3db('0x168')});db[_0xa3db('0x68')]['belongsToMany'](db[_0xa3db('0x93')],{'through':_0xa3db('0x18c'),'as':_0xa3db('0x16a')});db[_0xa3db('0x68')][_0xa3db('0x11b')](db['User'],{'as':_0xa3db('0x16b'),'through':_0xa3db('0x18d'),'foreignKey':'ChatInteractionId'});db[_0xa3db('0x69')][_0xa3db('0x143')](db[_0xa3db('0x12')],{'onDelete':'cascade','as':'User'});db[_0xa3db('0x69')][_0xa3db('0x143')](db['CmContact'],{'onDelete':_0xa3db('0x150'),'as':'Contact','foreignKey':_0xa3db('0x157')});db[_0xa3db('0x69')][_0xa3db('0x143')](db['ChatInteraction'],{'onDelete':'cascade','as':_0xa3db('0x184'),'foreignKey':_0xa3db('0x18b')});db[_0xa3db('0x69')][_0xa3db('0x143')](db[_0xa3db('0xea')],{'as':_0xa3db('0xea'),'foreignKey':_0xa3db('0x175')});db[_0xa3db('0x69')][_0xa3db('0x143')](db[_0xa3db('0x64')],{'as':_0xa3db('0x166'),'foreignKey':'ChatWebsiteId'});db[_0xa3db('0x6b')][_0xa3db('0x10d')](db[_0xa3db('0xea')],{'as':_0xa3db('0x16c'),'foreignKey':_0xa3db('0x16e'),'onDelete':'cascade','hooks':!![]});db[_0xa3db('0x6b')]['belongsTo'](db[_0xa3db('0x75')],{'onDelete':_0xa3db('0x150'),'as':_0xa3db('0x156'),'foreignKey':_0xa3db('0x157')});db[_0xa3db('0x6b')][_0xa3db('0x143')](db['ChatWebsite'],{'as':'Account','foreignKey':_0xa3db('0x16d')});db['ChatQueue'][_0xa3db('0x11b')](db[_0xa3db('0x12')],{'as':_0xa3db('0x14a'),'through':_0xa3db('0x31'),'hooks':!![]});db[_0xa3db('0x6d')][_0xa3db('0x11b')](db[_0xa3db('0xe5')],{'through':_0xa3db('0x18e'),'as':_0xa3db('0x14b')});db[_0xa3db('0x6f')][_0xa3db('0x10d')](db[_0xa3db('0xd0')],{'as':_0xa3db('0x14f'),'foreignKey':_0xa3db('0x18f'),'onDelete':'cascade'});db[_0xa3db('0x6f')][_0xa3db('0x11b')](db['User'],{'as':_0xa3db('0x190'),'through':_0xa3db('0x11d')});db[_0xa3db('0x71')][_0xa3db('0x143')](db['ChatWebsite'],{'as':_0xa3db('0x18a'),'foreignKey':_0xa3db('0x16d')});db['CmCompany'][_0xa3db('0x10d')](db[_0xa3db('0x75')],{'as':_0xa3db('0x191'),'foreignKey':_0xa3db('0x192')});db[_0xa3db('0x75')][_0xa3db('0x10d')](db[_0xa3db('0x77')],{'as':'Hoppers','foreignKey':_0xa3db('0x157')});db[_0xa3db('0x75')][_0xa3db('0x10d')](db[_0xa3db('0x110')],{'as':_0xa3db('0x111'),'foreignKey':_0xa3db('0x157')});db[_0xa3db('0x75')][_0xa3db('0x10d')](db[_0xa3db('0x7b')],{'as':_0xa3db('0x13f'),'foreignKey':'ContactId'});db[_0xa3db('0x75')][_0xa3db('0x10d')](db[_0xa3db('0x7c')],{'as':_0xa3db('0x7c'),'foreignKey':_0xa3db('0x157')});db[_0xa3db('0x75')][_0xa3db('0x10d')](db[_0xa3db('0x141')],{'as':'JscriptySessions','foreignKey':_0xa3db('0x157')});db[_0xa3db('0x75')][_0xa3db('0x10d')](db[_0xa3db('0x113')],{'as':_0xa3db('0x114'),'foreignKey':_0xa3db('0x157'),'onDelete':_0xa3db('0x16f')});db[_0xa3db('0x75')][_0xa3db('0x10d')](db[_0xa3db('0x68')],{'as':_0xa3db('0x115'),'foreignKey':_0xa3db('0x157'),'onDelete':_0xa3db('0x16f')});db[_0xa3db('0x75')][_0xa3db('0x10d')](db[_0xa3db('0x59')],{'as':_0xa3db('0x116'),'foreignKey':'ContactId','onDelete':_0xa3db('0x16f')});db[_0xa3db('0x75')][_0xa3db('0x10d')](db[_0xa3db('0x50')],{'as':_0xa3db('0x193'),'foreignKey':_0xa3db('0x157'),'onDelete':_0xa3db('0x16f')});db[_0xa3db('0x75')][_0xa3db('0x10d')](db[_0xa3db('0x44')],{'as':_0xa3db('0x117'),'foreignKey':'ContactId','onDelete':_0xa3db('0x16f')});db[_0xa3db('0x75')]['belongsTo'](db[_0xa3db('0x73')],{'as':_0xa3db('0x194'),'foreignKey':_0xa3db('0x192')});db[_0xa3db('0x75')][_0xa3db('0x143')](db[_0xa3db('0xf4')],{'as':_0xa3db('0x161'),'foreignKey':_0xa3db('0x162'),'onDelete':_0xa3db('0x150')});db[_0xa3db('0x75')][_0xa3db('0x11b')](db[_0xa3db('0x12')],{'as':_0xa3db('0x16b'),'through':'cm_user_has_contacts'});db[_0xa3db('0x75')][_0xa3db('0x11b')](db[_0xa3db('0x93')],{'as':_0xa3db('0x168'),'through':_0xa3db('0x195')});db[_0xa3db('0x75')][_0xa3db('0x11b')](db[_0xa3db('0x93')],{'through':_0xa3db('0x195'),'as':_0xa3db('0x16a')});db[_0xa3db('0x77')][_0xa3db('0x143')](db[_0xa3db('0x75')],{'as':_0xa3db('0x156'),'foreignKey':_0xa3db('0x157'),'onDelete':'cascade'});db[_0xa3db('0x77')]['belongsTo'](db[_0xa3db('0xf4')],{'as':'List','foreignKey':_0xa3db('0x162'),'onDelete':_0xa3db('0x150')});db['CmHopper']['belongsTo'](db[_0xa3db('0x12')],{'as':_0xa3db('0x188'),'foreignKey':_0xa3db('0x10b')});db['CmHopper'][_0xa3db('0x143')](db[_0xa3db('0x1b')],{'as':_0xa3db('0x196'),'foreignKey':_0xa3db('0x13d'),'onDelete':'cascade'});db['CmHopper'][_0xa3db('0x143')](db[_0xa3db('0x197')],{'as':_0xa3db('0x197'),'foreignKey':_0xa3db('0x198'),'onDelete':_0xa3db('0x150')});db[_0xa3db('0x77')][_0xa3db('0x143')](db[_0xa3db('0x12')],{'as':_0xa3db('0x167'),'foreignKey':'OwnerId'});db['CmHopperBlack'][_0xa3db('0x143')](db[_0xa3db('0x75')],{'as':_0xa3db('0x156'),'foreignKey':'ContactId','onDelete':_0xa3db('0x150')});db['CmHopperBlack'][_0xa3db('0x143')](db[_0xa3db('0xf4')],{'as':'List','foreignKey':_0xa3db('0x162'),'onDelete':_0xa3db('0x150')});db[_0xa3db('0x79')][_0xa3db('0x143')](db[_0xa3db('0x1b')],{'as':_0xa3db('0x196'),'foreignKey':'VoiceQueueId','onDelete':_0xa3db('0x150')});db['CmHopperBlack']['belongsTo'](db[_0xa3db('0x197')],{'as':_0xa3db('0x197'),'foreignKey':'CampaignId','onDelete':'cascade'});db['Automation'][_0xa3db('0x10d')](db['Condition'],{'as':{'plural':_0xa3db('0x199'),'singular':_0xa3db('0x19a')},'foreignKey':_0xa3db('0x19b'),'onDelete':_0xa3db('0x150'),'hooks':!![]});db['Automation'][_0xa3db('0x10d')](db[_0xa3db('0x85')],{'as':{'plural':_0xa3db('0x19c'),'singular':_0xa3db('0x19d')},'foreignKey':'AutomationAnyId','onDelete':'cascade','hooks':!![]});db[_0xa3db('0x82')][_0xa3db('0x10d')](db['Action'],{'as':_0xa3db('0x19e'),'foreignKey':_0xa3db('0x19f'),'onDelete':_0xa3db('0x150'),'hooks':!![]});db[_0xa3db('0x15a')]['hasMany'](db['Disposition'],{'as':'Dispositions','foreignKey':_0xa3db('0x1a0'),'onDelete':_0xa3db('0x150')});db[_0xa3db('0x87')][_0xa3db('0x10d')](db[_0xa3db('0x87')],{'as':_0xa3db('0x1a1'),'foreignKey':_0xa3db('0x147'),'onDelete':_0xa3db('0x150'),'hooks':!![],'required':![]});db[_0xa3db('0x87')]['hasMany'](db[_0xa3db('0x17')],{'as':_0xa3db('0x10f'),'foreignKey':_0xa3db('0x147'),'onDelete':'restrict'});db[_0xa3db('0x87')][_0xa3db('0x10d')](db[_0xa3db('0x46')],{'as':_0xa3db('0x1a2'),'foreignKey':_0xa3db('0x147')});db[_0xa3db('0x87')][_0xa3db('0x10d')](db[_0xa3db('0x67')],{'as':_0xa3db('0x1a3'),'foreignKey':_0xa3db('0x147')});db['Interval'][_0xa3db('0x10d')](db[_0xa3db('0x4e')],{'as':_0xa3db('0x1a4'),'foreignKey':_0xa3db('0x147')});db[_0xa3db('0x87')][_0xa3db('0x10d')](db['SmsApplication'],{'as':_0xa3db('0x1a5'),'foreignKey':_0xa3db('0x147')});db[_0xa3db('0x8f')]['belongsTo'](db['MailAccount'],{});db[_0xa3db('0x8f')][_0xa3db('0x143')](db['AnalyticDefaultReport'],{'foreignKey':_0xa3db('0x1a6')});db[_0xa3db('0x8f')]['belongsTo'](db[_0xa3db('0x9d')],{'foreignKey':_0xa3db('0x1a7')});db[_0xa3db('0x91')][_0xa3db('0x11b')](db['VoiceMusicOnHold'],{'as':_0xa3db('0x1a8'),'through':'moh_has_sounds','onDelete':_0xa3db('0x16f')});db[_0xa3db('0x93')][_0xa3db('0x11b')](db[_0xa3db('0x75')],{'through':'cm_contact_has_tags'});db[_0xa3db('0x93')][_0xa3db('0x11b')](db[_0xa3db('0x68')],{'through':'chat_interaction_has_tags'});db[_0xa3db('0x93')][_0xa3db('0x11b')](db['MailInteraction'],{'through':_0xa3db('0x169')});db[_0xa3db('0x93')]['belongsToMany'](db[_0xa3db('0x59')],{'through':_0xa3db('0x17a')});db[_0xa3db('0x93')][_0xa3db('0x11b')](db['FaxInteraction'],{'through':_0xa3db('0x174')});db[_0xa3db('0x93')][_0xa3db('0x11b')](db[_0xa3db('0x113')],{'through':'openchannel_interaction_has_tags'});db[_0xa3db('0x93')][_0xa3db('0x11b')](db['WhatsappInteraction'],{'through':_0xa3db('0x1a9')});db[_0xa3db('0x1aa')][_0xa3db('0x10d')](db[_0xa3db('0x85')],{'as':{'plural':'AllConditions','singular':_0xa3db('0x1ab')},'foreignKey':'TriggerAllId','onDelete':_0xa3db('0x150'),'hooks':!![]});db[_0xa3db('0x1aa')][_0xa3db('0x10d')](db[_0xa3db('0x85')],{'as':{'plural':_0xa3db('0x1ac'),'singular':_0xa3db('0x1ad')},'foreignKey':_0xa3db('0x1ae'),'onDelete':_0xa3db('0x150'),'hooks':!![]});db[_0xa3db('0x1aa')][_0xa3db('0x10d')](db[_0xa3db('0x80')],{'as':'Actions','foreignKey':_0xa3db('0x1af'),'onDelete':'cascade','hooks':!![]});db[_0xa3db('0x9d')]['hasMany'](db['AnalyticFieldReport'],{'as':_0xa3db('0x1b0'),'onDelete':'cascade','foreignKey':'CustomReportId','hooks':!![]});db[_0xa3db('0x9f')]['hasMany'](db['AnalyticFieldReport'],{'as':'Fields','onDelete':_0xa3db('0x150'),'foreignKey':_0xa3db('0x1a6')});db[_0xa3db('0x1b1')]['hasMany'](db[_0xa3db('0xa1')],{'as':_0xa3db('0x1b0'),'onDelete':_0xa3db('0x150'),'foreignKey':_0xa3db('0x1b2')});db[_0xa3db('0xa1')][_0xa3db('0x143')](db[_0xa3db('0x1b1')],{'foreignKey':_0xa3db('0x1b2')});db[_0xa3db('0x1b3')][_0xa3db('0x10d')](db[_0xa3db('0xa4')],{'as':'Configurations','onDelete':_0xa3db('0x150'),'foreignKey':_0xa3db('0x1b4')});db[_0xa3db('0xa4')][_0xa3db('0x10d')](db['SalesforceField'],{'as':'Subjects','onDelete':'cascade','foreignKey':_0xa3db('0x1b5')});db[_0xa3db('0xa4')][_0xa3db('0x10d')](db[_0xa3db('0xa6')],{'as':_0xa3db('0x1b6'),'onDelete':_0xa3db('0x150'),'foreignKey':_0xa3db('0x1b7')});db[_0xa3db('0xa4')][_0xa3db('0x10d')](db[_0xa3db('0xa6')],{'as':'Fields','onDelete':'cascade','foreignKey':_0xa3db('0x1b8')});db[_0xa3db('0xa4')]['belongsTo'](db[_0xa3db('0x1b3')],{'as':_0xa3db('0x166'),'foreignKey':_0xa3db('0x1b4')});db[_0xa3db('0xa6')][_0xa3db('0x10d')](db[_0xa3db('0xa6')],{'as':_0xa3db('0x1b9'),'foreignKey':_0xa3db('0x1b5')});db[_0xa3db('0xa6')][_0xa3db('0x10d')](db[_0xa3db('0xa6')],{'as':_0xa3db('0x1ba'),'foreignKey':_0xa3db('0x1b7')});db[_0xa3db('0xa6')][_0xa3db('0x10d')](db[_0xa3db('0xa6')],{'as':_0xa3db('0x1bb'),'foreignKey':_0xa3db('0x1b8')});db[_0xa3db('0xa6')][_0xa3db('0x143')](db[_0xa3db('0x98')],{'as':_0xa3db('0x98'),'foreignKey':_0xa3db('0x1bc')});db['SugarcrmAccount']['hasMany'](db[_0xa3db('0xa9')],{'as':'Configurations','onDelete':_0xa3db('0x150'),'foreignKey':_0xa3db('0x1b4')});db[_0xa3db('0xa9')]['hasMany'](db['SugarcrmField'],{'as':_0xa3db('0x1bd'),'onDelete':_0xa3db('0x150'),'foreignKey':'SubjectId'});db[_0xa3db('0xa9')][_0xa3db('0x10d')](db[_0xa3db('0xab')],{'as':_0xa3db('0x1b6'),'onDelete':_0xa3db('0x150'),'foreignKey':_0xa3db('0x1b7')});db['SugarcrmConfiguration'][_0xa3db('0x10d')](db['SugarcrmField'],{'as':_0xa3db('0x1b0'),'onDelete':_0xa3db('0x150'),'foreignKey':_0xa3db('0x1b8')});db[_0xa3db('0xa9')][_0xa3db('0x143')](db[_0xa3db('0x1be')],{'as':_0xa3db('0x166'),'foreignKey':_0xa3db('0x1b4')});db['SugarcrmField'][_0xa3db('0x10d')](db[_0xa3db('0xab')],{'as':_0xa3db('0x1b9'),'foreignKey':_0xa3db('0x1b5')});db[_0xa3db('0xab')]['hasMany'](db['SugarcrmField'],{'as':_0xa3db('0x1ba'),'foreignKey':'DescriptionId'});db[_0xa3db('0xab')]['hasMany'](db[_0xa3db('0xab')],{'as':_0xa3db('0x1bb'),'foreignKey':_0xa3db('0x1b8')});db['SugarcrmField'][_0xa3db('0x143')](db[_0xa3db('0x98')],{'as':_0xa3db('0x98'),'foreignKey':_0xa3db('0x1bc')});db[_0xa3db('0xac')][_0xa3db('0x10d')](db[_0xa3db('0xae')],{'as':_0xa3db('0x1bf'),'onDelete':'cascade','foreignKey':_0xa3db('0x1b4')});db[_0xa3db('0xae')][_0xa3db('0x10d')](db[_0xa3db('0xaf')],{'as':'Subjects','onDelete':_0xa3db('0x150'),'foreignKey':_0xa3db('0x1b5')});db[_0xa3db('0xae')][_0xa3db('0x10d')](db[_0xa3db('0xaf')],{'as':_0xa3db('0x1b6'),'onDelete':'cascade','foreignKey':_0xa3db('0x1b7')});db[_0xa3db('0xae')]['hasMany'](db[_0xa3db('0xaf')],{'as':_0xa3db('0x1b0'),'onDelete':_0xa3db('0x150'),'foreignKey':_0xa3db('0x1b8')});db['DeskConfiguration'][_0xa3db('0x143')](db[_0xa3db('0xac')],{'as':'Account','foreignKey':'AccountId'});db[_0xa3db('0xae')][_0xa3db('0x11b')](db['Tag'],{'through':_0xa3db('0x1c0')});db[_0xa3db('0xaf')][_0xa3db('0x10d')](db['DeskField'],{'as':_0xa3db('0x1b9'),'foreignKey':'SubjectId'});db[_0xa3db('0xaf')][_0xa3db('0x10d')](db['DeskField'],{'as':_0xa3db('0x1ba'),'foreignKey':_0xa3db('0x1b7')});db[_0xa3db('0xaf')][_0xa3db('0x10d')](db[_0xa3db('0xaf')],{'as':_0xa3db('0x1bb'),'foreignKey':_0xa3db('0x1b8')});db[_0xa3db('0xaf')][_0xa3db('0x143')](db[_0xa3db('0x98')],{'as':'Variable','foreignKey':'VariableId'});db[_0xa3db('0xb1')][_0xa3db('0x10d')](db[_0xa3db('0x1c1')],{'as':_0xa3db('0x1bf'),'onDelete':_0xa3db('0x150'),'foreignKey':'AccountId'});db[_0xa3db('0x1c1')][_0xa3db('0x10d')](db[_0xa3db('0xb3')],{'as':_0xa3db('0x1bd'),'onDelete':_0xa3db('0x150'),'foreignKey':_0xa3db('0x1b5')});db[_0xa3db('0x1c1')]['hasMany'](db[_0xa3db('0xb3')],{'as':'Descriptions','onDelete':_0xa3db('0x150'),'foreignKey':_0xa3db('0x1b7')});db['ZohoConfiguration'][_0xa3db('0x10d')](db['ZohoField'],{'as':'Fields','onDelete':'cascade','foreignKey':_0xa3db('0x1b8')});db[_0xa3db('0x1c1')][_0xa3db('0x143')](db[_0xa3db('0xb1')],{'as':_0xa3db('0x166'),'foreignKey':_0xa3db('0x1b4')});db[_0xa3db('0xb3')][_0xa3db('0x10d')](db[_0xa3db('0xb3')],{'as':_0xa3db('0x1b9'),'foreignKey':_0xa3db('0x1b5')});db[_0xa3db('0xb3')][_0xa3db('0x10d')](db['ZohoField'],{'as':_0xa3db('0x1ba'),'foreignKey':_0xa3db('0x1b7')});db[_0xa3db('0xb3')][_0xa3db('0x10d')](db[_0xa3db('0xb3')],{'as':_0xa3db('0x1bb'),'foreignKey':_0xa3db('0x1b8')});db[_0xa3db('0xb3')][_0xa3db('0x143')](db[_0xa3db('0x98')],{'as':_0xa3db('0x98'),'foreignKey':'VariableId'});db['ZendeskAccount'][_0xa3db('0x10d')](db['ZendeskConfiguration'],{'as':_0xa3db('0x1bf'),'onDelete':'cascade','foreignKey':_0xa3db('0x1b4')});db['ZendeskConfiguration'][_0xa3db('0x10d')](db[_0xa3db('0xb8')],{'as':_0xa3db('0x1bd'),'foreignKey':'SubjectId'});db[_0xa3db('0xb6')][_0xa3db('0x10d')](db[_0xa3db('0xb8')],{'as':_0xa3db('0x1b6'),'foreignKey':_0xa3db('0x1b7')});db[_0xa3db('0xb6')][_0xa3db('0x10d')](db[_0xa3db('0xb8')],{'as':_0xa3db('0x1b0'),'foreignKey':'FieldId'});db['ZendeskConfiguration'][_0xa3db('0x143')](db[_0xa3db('0xb5')],{'as':_0xa3db('0x166'),'foreignKey':_0xa3db('0x1b4')});db['ZendeskConfiguration'][_0xa3db('0x11b')](db[_0xa3db('0x93')],{'through':_0xa3db('0x1c2')});db['ZendeskField']['hasMany'](db['ZendeskField'],{'as':'Subject','foreignKey':_0xa3db('0x1b5')});db[_0xa3db('0xb8')][_0xa3db('0x10d')](db[_0xa3db('0xb8')],{'as':'Description','foreignKey':_0xa3db('0x1b7')});db[_0xa3db('0xb8')][_0xa3db('0x10d')](db[_0xa3db('0xb8')],{'as':_0xa3db('0x1bb'),'foreignKey':'FieldId'});db[_0xa3db('0xb8')][_0xa3db('0x143')](db[_0xa3db('0x98')],{'as':_0xa3db('0x98'),'foreignKey':'VariableId'});db['FreshdeskAccount']['hasMany'](db[_0xa3db('0x1c3')],{'as':_0xa3db('0x1bf'),'onDelete':_0xa3db('0x150'),'foreignKey':'AccountId'});db[_0xa3db('0x1c3')][_0xa3db('0x10d')](db['FreshdeskField'],{'as':_0xa3db('0x1bd'),'onDelete':_0xa3db('0x150'),'foreignKey':_0xa3db('0x1b5')});db[_0xa3db('0x1c3')][_0xa3db('0x10d')](db['FreshdeskField'],{'as':_0xa3db('0x1b6'),'onDelete':_0xa3db('0x150'),'foreignKey':_0xa3db('0x1b7')});db[_0xa3db('0x1c3')]['hasMany'](db[_0xa3db('0x1c4')],{'as':_0xa3db('0x1b0'),'onDelete':_0xa3db('0x150'),'foreignKey':'FieldId'});db[_0xa3db('0x1c3')][_0xa3db('0x143')](db[_0xa3db('0xba')],{'as':_0xa3db('0x166'),'foreignKey':'AccountId'});db[_0xa3db('0x1c3')][_0xa3db('0x11b')](db['Tag'],{'through':'int_freshdesk_configuration_has_tags'});db[_0xa3db('0x1c4')][_0xa3db('0x10d')](db[_0xa3db('0x1c4')],{'as':_0xa3db('0x1b9'),'foreignKey':_0xa3db('0x1b5')});db[_0xa3db('0x1c4')]['hasMany'](db[_0xa3db('0x1c4')],{'as':_0xa3db('0x1ba'),'foreignKey':_0xa3db('0x1b7')});db[_0xa3db('0x1c4')]['hasMany'](db['FreshdeskField'],{'as':_0xa3db('0x1bb'),'foreignKey':_0xa3db('0x1b8')});db[_0xa3db('0x1c4')][_0xa3db('0x143')](db[_0xa3db('0x98')],{'as':_0xa3db('0x98'),'foreignKey':'VariableId'});db[_0xa3db('0x1c5')][_0xa3db('0x10d')](db[_0xa3db('0xbe')],{'as':_0xa3db('0x1bf'),'onDelete':_0xa3db('0x150'),'foreignKey':'AccountId'});db['VtigerConfiguration'][_0xa3db('0x10d')](db[_0xa3db('0x1c6')],{'as':_0xa3db('0x1bd'),'foreignKey':_0xa3db('0x1b5')});db[_0xa3db('0xbe')][_0xa3db('0x10d')](db[_0xa3db('0x1c6')],{'as':_0xa3db('0x1b6'),'foreignKey':_0xa3db('0x1b7')});db[_0xa3db('0xbe')][_0xa3db('0x10d')](db[_0xa3db('0x1c6')],{'as':_0xa3db('0x1b0'),'foreignKey':_0xa3db('0x1b8')});db[_0xa3db('0xbe')]['belongsTo'](db[_0xa3db('0x1c5')],{'as':_0xa3db('0x166'),'foreignKey':_0xa3db('0x1b4')});db[_0xa3db('0x1c6')][_0xa3db('0x10d')](db[_0xa3db('0x1c6')],{'as':_0xa3db('0x1b9'),'foreignKey':_0xa3db('0x1b5')});db[_0xa3db('0x1c6')]['hasMany'](db['VtigerField'],{'as':_0xa3db('0x1ba'),'foreignKey':'DescriptionId'});db[_0xa3db('0x1c6')][_0xa3db('0x10d')](db['VtigerField'],{'as':_0xa3db('0x1bb'),'foreignKey':'FieldId'});db[_0xa3db('0x1c6')][_0xa3db('0x143')](db[_0xa3db('0x98')],{'as':_0xa3db('0x98'),'foreignKey':_0xa3db('0x1bc')});db[_0xa3db('0xc0')]['hasMany'](db[_0xa3db('0xc2')],{'as':'Configurations','onDelete':_0xa3db('0x150'),'foreignKey':_0xa3db('0x1b4')});db[_0xa3db('0xc2')][_0xa3db('0x10d')](db[_0xa3db('0x1c7')],{'as':_0xa3db('0x1bd'),'foreignKey':'SubjectId'});db[_0xa3db('0xc2')][_0xa3db('0x10d')](db[_0xa3db('0x1c7')],{'as':_0xa3db('0x1b6'),'foreignKey':_0xa3db('0x1b7')});db['ServicenowConfiguration'][_0xa3db('0x10d')](db[_0xa3db('0x1c7')],{'as':_0xa3db('0x1b0'),'foreignKey':_0xa3db('0x1b8')});db['ServicenowConfiguration'][_0xa3db('0x143')](db['ServicenowAccount'],{'as':_0xa3db('0x166'),'foreignKey':_0xa3db('0x1b4')});db['ServicenowField']['hasMany'](db[_0xa3db('0x1c7')],{'as':_0xa3db('0x1b9'),'foreignKey':_0xa3db('0x1b5')});db['ServicenowField'][_0xa3db('0x10d')](db[_0xa3db('0x1c7')],{'as':_0xa3db('0x1ba'),'foreignKey':'DescriptionId'});db[_0xa3db('0x1c7')]['hasMany'](db['ServicenowField'],{'as':_0xa3db('0x1bb'),'foreignKey':_0xa3db('0x1b8')});db[_0xa3db('0x1c7')]['belongsTo'](db[_0xa3db('0x98')],{'as':_0xa3db('0x98'),'foreignKey':_0xa3db('0x1bc')});db[_0xa3db('0x1c8')][_0xa3db('0x10d')](db[_0xa3db('0xc6')],{'as':'Configurations','onDelete':_0xa3db('0x150'),'foreignKey':'AccountId'});db[_0xa3db('0xc6')][_0xa3db('0x10d')](db[_0xa3db('0x1c9')],{'as':_0xa3db('0x1bd'),'onDelete':_0xa3db('0x150'),'foreignKey':_0xa3db('0x1b5')});db[_0xa3db('0xc6')][_0xa3db('0x10d')](db[_0xa3db('0x1c9')],{'as':'Descriptions','onDelete':_0xa3db('0x150'),'foreignKey':_0xa3db('0x1b7')});db[_0xa3db('0xc6')][_0xa3db('0x10d')](db[_0xa3db('0x1c9')],{'as':_0xa3db('0x1b0'),'onDelete':_0xa3db('0x150'),'foreignKey':_0xa3db('0x1b8')});db['Dynamics365Configuration'][_0xa3db('0x143')](db[_0xa3db('0x1c8')],{'as':_0xa3db('0x166'),'foreignKey':_0xa3db('0x1b4')});db['Dynamics365Field'][_0xa3db('0x10d')](db[_0xa3db('0x1c9')],{'as':'Subject','foreignKey':_0xa3db('0x1b5')});db['Dynamics365Field']['hasMany'](db[_0xa3db('0x1c9')],{'as':_0xa3db('0x1ba'),'foreignKey':_0xa3db('0x1b7')});db['Dynamics365Field'][_0xa3db('0x10d')](db['Dynamics365Field'],{'as':_0xa3db('0x1bb'),'foreignKey':_0xa3db('0x1b8')});db[_0xa3db('0x1c9')][_0xa3db('0x143')](db['Variable'],{'as':_0xa3db('0x98'),'foreignKey':'VariableId'});db[_0xa3db('0xc8')][_0xa3db('0x10d')](db[_0xa3db('0x1ca')],{'as':_0xa3db('0x1bf'),'onDelete':_0xa3db('0x150'),'foreignKey':_0xa3db('0x1b4')});db[_0xa3db('0x1ca')][_0xa3db('0x10d')](db[_0xa3db('0xcb')],{'as':_0xa3db('0x1bd'),'foreignKey':_0xa3db('0x1b5')});db[_0xa3db('0x1ca')]['hasMany'](db['FreshsalesField'],{'as':_0xa3db('0x1b6'),'foreignKey':_0xa3db('0x1b7')});db['FreshsalesConfiguration'][_0xa3db('0x10d')](db[_0xa3db('0xcb')],{'as':_0xa3db('0x1b0'),'foreignKey':'FieldId'});db[_0xa3db('0x1ca')][_0xa3db('0x143')](db[_0xa3db('0xc8')],{'as':'Account','foreignKey':_0xa3db('0x1b4')});db[_0xa3db('0xcb')][_0xa3db('0x10d')](db[_0xa3db('0xcb')],{'as':_0xa3db('0x1b9'),'foreignKey':_0xa3db('0x1b5')});db[_0xa3db('0xcb')][_0xa3db('0x10d')](db[_0xa3db('0xcb')],{'as':_0xa3db('0x1ba'),'foreignKey':_0xa3db('0x1b7')});db[_0xa3db('0xcb')][_0xa3db('0x10d')](db[_0xa3db('0xcb')],{'as':_0xa3db('0x1bb'),'foreignKey':_0xa3db('0x1b8')});db[_0xa3db('0xcb')][_0xa3db('0x143')](db[_0xa3db('0x98')],{'as':_0xa3db('0x98'),'foreignKey':_0xa3db('0x1bc')});db['ChatQueueReport'][_0xa3db('0x143')](db['ChatWebsite'],{});db['ChatQueueReport']['belongsTo'](db[_0xa3db('0xf4')],{'as':_0xa3db('0x161'),'foreignKey':'ListId'});db['ChatQueueReport'][_0xa3db('0x143')](db[_0xa3db('0x75')],{'as':_0xa3db('0x156'),'foreignKey':_0xa3db('0x157')});db[_0xa3db('0xcf')][_0xa3db('0x143')](db['ChatInteraction'],{});db['ChatQueueReport'][_0xa3db('0x143')](db[_0xa3db('0x69')],{});db[_0xa3db('0xcf')][_0xa3db('0x143')](db[_0xa3db('0x12')],{});db[_0xa3db('0xcf')][_0xa3db('0x143')](db[_0xa3db('0x6d')],{});db['ChatInternalMessage']['belongsTo'](db[_0xa3db('0x12')],{'onDelete':_0xa3db('0x150'),'foreignKey':'FromId'});db[_0xa3db('0xd0')]['belongsTo'](db[_0xa3db('0x12')],{'onDelete':'cascade','foreignKey':_0xa3db('0x1cb')});db[_0xa3db('0x141')][_0xa3db('0x10d')](db['JscriptyQuestionReport'],{'foreignKey':_0xa3db('0x1cc'),'onDelete':_0xa3db('0x150')});db[_0xa3db('0x141')][_0xa3db('0x10d')](db[_0xa3db('0xd2')],{'foreignKey':_0xa3db('0x1cc'),'onDelete':_0xa3db('0x150')});db['SmsQueueReport'][_0xa3db('0x143')](db[_0xa3db('0x177')],{});db['SmsQueueReport'][_0xa3db('0x143')](db[_0xa3db('0xf4')],{'as':'List','foreignKey':_0xa3db('0x162')});db[_0xa3db('0x1cd')][_0xa3db('0x143')](db['CmContact'],{'as':_0xa3db('0x156'),'foreignKey':_0xa3db('0x157')});db['SmsQueueReport'][_0xa3db('0x143')](db[_0xa3db('0x59')],{});db[_0xa3db('0x1cd')][_0xa3db('0x143')](db[_0xa3db('0x5a')],{});db[_0xa3db('0x1cd')]['belongsTo'](db[_0xa3db('0x12')],{});db['SmsQueueReport'][_0xa3db('0x143')](db[_0xa3db('0x17b')],{});db[_0xa3db('0xdb')][_0xa3db('0x10d')](db['JscriptySessionReport'],{'foreignKey':_0xa3db('0x1ce')});db['JscriptyProject'][_0xa3db('0x10d')](db['JscriptyQuestionReport'],{'foreignKey':_0xa3db('0x1ce')});db[_0xa3db('0xdb')]['hasMany'](db[_0xa3db('0xd2')],{'foreignKey':'ProjectId'});db[_0xa3db('0xdf')][_0xa3db('0x11b')](db[_0xa3db('0x12')],{'as':_0xa3db('0x16b'),'through':_0xa3db('0x137')});db[_0xa3db('0xe5')][_0xa3db('0x11b')](db[_0xa3db('0x12')],{'as':'Agents','through':_0xa3db('0x1cf')});db['Team'][_0xa3db('0x11b')](db[_0xa3db('0x1b')],{'through':_0xa3db('0x108'),'as':'VoiceQueues'});db['Team'][_0xa3db('0x11b')](db[_0xa3db('0x41')],{'through':_0xa3db('0x1d0'),'as':_0xa3db('0x124')});db[_0xa3db('0xe5')][_0xa3db('0x11b')](db[_0xa3db('0x6d')],{'through':'team_has_chat_queues','as':_0xa3db('0x125')});db[_0xa3db('0xe5')][_0xa3db('0x11b')](db[_0xa3db('0x126')],{'through':'team_has_fax_queues','as':_0xa3db('0x1d1')});db[_0xa3db('0xe5')][_0xa3db('0x11b')](db[_0xa3db('0x17b')],{'through':_0xa3db('0x1d2'),'as':_0xa3db('0x1d3')});db[_0xa3db('0xe5')][_0xa3db('0x11b')](db[_0xa3db('0x62')],{'through':_0xa3db('0x185'),'as':_0xa3db('0x127')});db[_0xa3db('0xe5')][_0xa3db('0x11b')](db[_0xa3db('0x1d4')],{'through':_0xa3db('0x1d5'),'as':'WhatsappQueues'});db[_0xa3db('0x197')]['hasMany'](db[_0xa3db('0x77')],{'as':'Hoppers','foreignKey':_0xa3db('0x198')});db[_0xa3db('0x197')][_0xa3db('0x10d')](db[_0xa3db('0x110')],{'as':'HopperFinals','foreignKey':_0xa3db('0x198')});db[_0xa3db('0x197')][_0xa3db('0x10d')](db[_0xa3db('0x7b')],{'as':_0xa3db('0x13f'),'foreignKey':'CampaignId'});db[_0xa3db('0x197')]['hasMany'](db['CmHopperBlack'],{'as':'HopperBlacks','foreignKey':'CampaignId'});db[_0xa3db('0x197')]['belongsTo'](db[_0xa3db('0x2a')],{'as':'Trunk','foreignKey':_0xa3db('0x144')});db[_0xa3db('0x197')][_0xa3db('0x143')](db[_0xa3db('0x2a')],{'as':'TrunkBackup','foreignKey':_0xa3db('0x146')});db[_0xa3db('0x197')][_0xa3db('0x143')](db[_0xa3db('0x87')],{'as':_0xa3db('0x87'),'foreignKey':'IntervalId'});db[_0xa3db('0x197')]['belongsTo'](db[_0xa3db('0xdf')],{'as':'SquareProject','foreignKey':'SquareProjectId'});db[_0xa3db('0x197')][_0xa3db('0x11b')](db['CmList'],{'as':_0xa3db('0x11f'),'through':'campaigns_has_cm_lists'});db[_0xa3db('0x197')]['belongsToMany'](db['CmList'],{'as':'BlackLists','through':'campaigns_has_cm_blacklists'});db['Attachment']['belongsTo'](db['ChatOfflineMessage'],{'as':_0xa3db('0x6b'),'foreignKey':_0xa3db('0x16e')});db[_0xa3db('0xec')][_0xa3db('0x143')](db[_0xa3db('0x15e')],{});db[_0xa3db('0xec')][_0xa3db('0x143')](db[_0xa3db('0x44')],{});db['MailTransferReport'][_0xa3db('0x143')](db['MailAccount'],{'foreignKey':_0xa3db('0x1d6'),'as':_0xa3db('0x1d7')});db[_0xa3db('0xec')][_0xa3db('0x143')](db[_0xa3db('0x12')],{'foreignKey':_0xa3db('0x1d8'),'as':_0xa3db('0x1d9')});db[_0xa3db('0xec')][_0xa3db('0x143')](db[_0xa3db('0x12')],{'foreignKey':'ToUserId','as':_0xa3db('0x1da')});db[_0xa3db('0xec')][_0xa3db('0x143')](db[_0xa3db('0x41')],{'foreignKey':'ToMailQueueId','as':_0xa3db('0x1db')});db[_0xa3db('0xec')][_0xa3db('0x143')](db[_0xa3db('0x3f')],{'foreignKey':_0xa3db('0x1dc'),'as':_0xa3db('0x1dd')});db['ChatTransferReport'][_0xa3db('0x143')](db[_0xa3db('0x69')],{});db[_0xa3db('0x1de')][_0xa3db('0x143')](db['ChatInteraction'],{});db[_0xa3db('0x1de')][_0xa3db('0x143')](db[_0xa3db('0x64')],{'foreignKey':_0xa3db('0x1df'),'as':_0xa3db('0x1d7')});db['ChatTransferReport'][_0xa3db('0x143')](db[_0xa3db('0x12')],{'foreignKey':_0xa3db('0x1d8'),'as':_0xa3db('0x1d9')});db['ChatTransferReport'][_0xa3db('0x143')](db['User'],{'foreignKey':_0xa3db('0x1e0'),'as':_0xa3db('0x1da')});db['ChatTransferReport'][_0xa3db('0x143')](db[_0xa3db('0x6d')],{'foreignKey':'ToChatQueueId','as':_0xa3db('0x1db')});db[_0xa3db('0x1de')][_0xa3db('0x143')](db[_0xa3db('0x64')],{'foreignKey':'ToChatWebsiteId','as':'ToAccount'});db[_0xa3db('0xef')]['belongsTo'](db['FaxMessage'],{});db[_0xa3db('0xef')][_0xa3db('0x143')](db[_0xa3db('0x50')],{});db[_0xa3db('0xef')][_0xa3db('0x143')](db[_0xa3db('0x4d')],{'foreignKey':_0xa3db('0x1e1'),'as':_0xa3db('0x1d7')});db[_0xa3db('0xef')][_0xa3db('0x143')](db[_0xa3db('0x12')],{'foreignKey':'FromUserId','as':_0xa3db('0x1d9')});db[_0xa3db('0xef')]['belongsTo'](db[_0xa3db('0x12')],{'foreignKey':'ToUserId','as':'ToAgent'});db[_0xa3db('0xef')][_0xa3db('0x143')](db['FaxQueue'],{'foreignKey':_0xa3db('0x1e2'),'as':_0xa3db('0x1db')});db[_0xa3db('0xef')][_0xa3db('0x143')](db[_0xa3db('0x4d')],{'foreignKey':'ToFaxAccountId','as':_0xa3db('0x1dd')});db['OpenchannelTransferReport'][_0xa3db('0x143')](db['OpenchannelMessage'],{});db[_0xa3db('0xf0')][_0xa3db('0x143')](db['OpenchannelInteraction'],{});db['OpenchannelTransferReport'][_0xa3db('0x143')](db[_0xa3db('0x5d')],{'foreignKey':_0xa3db('0x1e3'),'as':_0xa3db('0x1d7')});db[_0xa3db('0xf0')]['belongsTo'](db[_0xa3db('0x12')],{'foreignKey':'FromUserId','as':'FromAgent'});db['OpenchannelTransferReport'][_0xa3db('0x143')](db[_0xa3db('0x12')],{'foreignKey':'ToUserId','as':_0xa3db('0x1da')});db['OpenchannelTransferReport']['belongsTo'](db[_0xa3db('0x62')],{'foreignKey':_0xa3db('0x1e4'),'as':'ToQueue'});db['OpenchannelTransferReport']['belongsTo'](db[_0xa3db('0x5d')],{'foreignKey':_0xa3db('0x1e5'),'as':'ToAccount'});db[_0xa3db('0xf2')]['belongsTo'](db[_0xa3db('0x5a')],{});db[_0xa3db('0xf2')][_0xa3db('0x143')](db[_0xa3db('0x59')],{});db[_0xa3db('0xf2')][_0xa3db('0x143')](db['SmsAccount'],{'foreignKey':_0xa3db('0x1e6'),'as':_0xa3db('0x1d7')});db[_0xa3db('0xf2')][_0xa3db('0x143')](db[_0xa3db('0x12')],{'foreignKey':'FromUserId','as':'FromAgent'});db[_0xa3db('0xf2')][_0xa3db('0x143')](db[_0xa3db('0x12')],{'foreignKey':_0xa3db('0x1e0'),'as':_0xa3db('0x1da')});db['SmsTransferReport'][_0xa3db('0x143')](db[_0xa3db('0x17b')],{'foreignKey':_0xa3db('0x1e7'),'as':_0xa3db('0x1db')});db[_0xa3db('0xf2')][_0xa3db('0x143')](db[_0xa3db('0x177')],{'foreignKey':'ToSmsAccountId','as':_0xa3db('0x1dd')});db['CmList'][_0xa3db('0x10d')](db[_0xa3db('0x15a')],{'as':_0xa3db('0x15b'),'foreignKey':_0xa3db('0x162'),'onDelete':_0xa3db('0x150')});db[_0xa3db('0xf4')][_0xa3db('0x10d')](db[_0xa3db('0x7e')],{'as':_0xa3db('0x1e8'),'foreignKey':_0xa3db('0x162')});db['CmList'][_0xa3db('0x10d')](db['CmContact'],{'as':_0xa3db('0x191'),'onDelete':_0xa3db('0x150'),'foreignKey':'ListId'});db[_0xa3db('0xf4')][_0xa3db('0x10d')](db[_0xa3db('0x110')],{'as':_0xa3db('0x111'),'foreignKey':_0xa3db('0x162')});db[_0xa3db('0xf4')]['hasMany'](db[_0xa3db('0x7b')],{'as':_0xa3db('0x112'),'foreignKey':_0xa3db('0x162')});db[_0xa3db('0xf4')][_0xa3db('0x10d')](db[_0xa3db('0x7c')],{'as':_0xa3db('0x7c'),'foreignKey':_0xa3db('0x162')});db[_0xa3db('0xf4')][_0xa3db('0x11b')](db[_0xa3db('0x1b')],{'as':'Queues','through':_0xa3db('0x149')});db[_0xa3db('0xf4')][_0xa3db('0x11b')](db[_0xa3db('0x12')],{'as':_0xa3db('0x14a'),'through':_0xa3db('0x12a')});db['VoicePrefix'][_0xa3db('0x10d')](db[_0xa3db('0x17')],{'as':_0xa3db('0x10f'),'onDelete':_0xa3db('0x150')});db[_0xa3db('0xf6')][_0xa3db('0x11b')](db[_0xa3db('0x12')],{'as':'Agents','through':_0xa3db('0x12c')});db['UserProfile'][_0xa3db('0x10d')](db[_0xa3db('0x12')],{'as':'Users','foreignKey':_0xa3db('0x11a')});db[_0xa3db('0x119')][_0xa3db('0x10d')](db[_0xa3db('0xf8')],{'as':_0xa3db('0x1e9'),'foreignKey':_0xa3db('0x11a'),'onDelete':'cascade'});db[_0xa3db('0xf8')][_0xa3db('0x10d')](db[_0xa3db('0xfa')],{'as':'Resources','foreignKey':_0xa3db('0x1ea'),'onDelete':'cascade'});db[_0xa3db('0xfe')][_0xa3db('0x10d')](db['Disposition'],{'as':_0xa3db('0x15b'),'foreignKey':'WhatsappAccountId','onDelete':'cascade'});db['WhatsappAccount'][_0xa3db('0x10d')](db[_0xa3db('0x15c')],{'as':_0xa3db('0x15d'),'foreignKey':'WhatsappAccountId'});db[_0xa3db('0xfe')][_0xa3db('0x10d')](db[_0xa3db('0x1eb')],{'as':'Messages','foreignKey':_0xa3db('0x1ec')});db['WhatsappAccount'][_0xa3db('0x10d')](db['WhatsappInteraction'],{'as':_0xa3db('0x15f')});db['WhatsappAccount']['hasMany'](db[_0xa3db('0xff')],{'as':_0xa3db('0x160')});db[_0xa3db('0xfe')][_0xa3db('0x143')](db[_0xa3db('0xf4')],{'as':_0xa3db('0x161'),'foreignKey':_0xa3db('0x162')});db['WhatsappAccount'][_0xa3db('0x143')](db[_0xa3db('0x89')],{'as':_0xa3db('0x148'),'foreignKey':'mandatoryDispositionPauseId'});db[_0xa3db('0xfe')]['belongsToMany'](db[_0xa3db('0x12')],{'as':_0xa3db('0x14a'),'through':_0xa3db('0x136')});db[_0xa3db('0xff')][_0xa3db('0x143')](db['User'],{'onDelete':_0xa3db('0x16f')});db[_0xa3db('0xff')][_0xa3db('0x143')](db['WhatsappQueue'],{'onDelete':_0xa3db('0x16f')});db[_0xa3db('0xff')][_0xa3db('0x143')](db[_0xa3db('0xfe')],{'onDelete':_0xa3db('0x16f')});db[_0xa3db('0xff')][_0xa3db('0x143')](db[_0xa3db('0x87')],{'onDelete':_0xa3db('0x16f'),'foreignKey':_0xa3db('0x147')});db['WhatsappApplication'][_0xa3db('0x143')](db['Tag'],{'onDelete':_0xa3db('0x16f'),'foreignKey':_0xa3db('0x170')});db['WhatsappInteraction'][_0xa3db('0x10d')](db[_0xa3db('0x1eb')],{'as':_0xa3db('0x14f'),'onDelete':_0xa3db('0x150'),'foreignKey':_0xa3db('0x1ed')});db[_0xa3db('0x100')]['belongsTo'](db[_0xa3db('0xfe')],{'as':'Account','foreignKey':_0xa3db('0x1ec')});db[_0xa3db('0x100')][_0xa3db('0x143')](db[_0xa3db('0x75')],{'as':_0xa3db('0x156'),'foreignKey':'ContactId'});db[_0xa3db('0x100')]['belongsTo'](db[_0xa3db('0x12')],{'as':_0xa3db('0x167'),'foreignKey':_0xa3db('0x10b')});db[_0xa3db('0x100')][_0xa3db('0x11b')](db[_0xa3db('0x93')],{'through':_0xa3db('0x1a9'),'as':_0xa3db('0x168')});db[_0xa3db('0x100')][_0xa3db('0x11b')](db[_0xa3db('0x93')],{'through':_0xa3db('0x1a9'),'as':_0xa3db('0x16a')});db[_0xa3db('0x100')][_0xa3db('0x11b')](db[_0xa3db('0x12')],{'as':_0xa3db('0x16b'),'through':'user_has_whatsapp_interactions','foreignKey':'WhatsappInteractionId'});db['WhatsappMessage']['belongsTo'](db[_0xa3db('0x12')],{'as':'User'});db[_0xa3db('0x1eb')][_0xa3db('0x143')](db[_0xa3db('0x75')],{'onDelete':_0xa3db('0x150'),'as':'Contact'});db[_0xa3db('0x1eb')][_0xa3db('0x143')](db[_0xa3db('0x100')],{'onDelete':'cascade','as':_0xa3db('0x184'),'foreignKey':'WhatsappInteractionId'});db[_0xa3db('0x1eb')][_0xa3db('0x143')](db[_0xa3db('0xfe')],{'as':_0xa3db('0x166'),'foreignKey':_0xa3db('0x1ec')});db[_0xa3db('0x103')][_0xa3db('0x143')](db[_0xa3db('0xfe')],{});db['WhatsappQueueReport']['belongsTo'](db['CmList'],{'as':_0xa3db('0x161'),'foreignKey':_0xa3db('0x162')});db[_0xa3db('0x103')][_0xa3db('0x143')](db[_0xa3db('0x75')],{'as':_0xa3db('0x156'),'foreignKey':_0xa3db('0x157')});db[_0xa3db('0x103')][_0xa3db('0x143')](db[_0xa3db('0x100')],{});db[_0xa3db('0x103')][_0xa3db('0x143')](db[_0xa3db('0x1d4')],{});db[_0xa3db('0x103')][_0xa3db('0x143')](db[_0xa3db('0x1eb')],{});db[_0xa3db('0x103')][_0xa3db('0x143')](db[_0xa3db('0x12')],{});db[_0xa3db('0x1ee')][_0xa3db('0x143')](db[_0xa3db('0x1eb')],{});db[_0xa3db('0x1ee')][_0xa3db('0x143')](db['WhatsappInteraction'],{});db['WhatsappTransferReport']['belongsTo'](db['WhatsappAccount'],{'foreignKey':_0xa3db('0x1ef'),'as':_0xa3db('0x1d7')});db[_0xa3db('0x1ee')][_0xa3db('0x143')](db[_0xa3db('0xfe')],{'foreignKey':_0xa3db('0x1f0'),'as':'ToAccount'});db[_0xa3db('0x1ee')][_0xa3db('0x143')](db[_0xa3db('0x1d4')],{'foreignKey':'ToQueueId','as':_0xa3db('0x1db')});db['WhatsappTransferReport'][_0xa3db('0x143')](db[_0xa3db('0x12')],{'foreignKey':_0xa3db('0x1d8'),'as':_0xa3db('0x1d9')});db[_0xa3db('0x1ee')][_0xa3db('0x143')](db['User'],{'foreignKey':'ToUserId','as':'ToAgent'});db[_0xa3db('0x1d4')][_0xa3db('0x11b')](db[_0xa3db('0x12')],{'as':_0xa3db('0x14a'),'through':'UserWhatsappQueue','foreignKey':_0xa3db('0x1f1')});db[_0xa3db('0x1d4')]['belongsToMany'](db[_0xa3db('0xe5')],{'through':_0xa3db('0x1d5'),'as':_0xa3db('0x14b')});module[_0xa3db('0x1f2')]={'db':db,'dbH':dbH};
\ No newline at end of file
+var _0xdfd2=['VoiceQueueReport','QueueCalls','uniqueid','Contact','ContactId','MailServerIn','MailAccount','MailAccountId','Imap','Smtp','Dispositions','Interactions','List','ListId','TemplateId','user_has_mail_accounts','UserMailQueue','team_has_mail_queues','Teams','MailInteractionId','Account','Owner','mail_interaction_has_tags','Tags','ThroughTags','user_has_mail_interactions','Attachments','Interaction','ChatOfflineMessage','ChatOfflineMessageId','restrict','TagId','Items','Answers','FaxAccountId','Exntensions','user_has_fax_accounts','FaxInteractionId','fax_interaction_has_tags','Users','Attachment','SmsAccountId','Applications','SmsInteractionId','sms_interaction_has_tags','OpenchannelAccountId','user_has_openchannel_accounts','OpenchannelInteractionId','openchannel_interaction_has_tags','AttachmentId','OpenchannelQueueId','team_has_openchannel_queues','ChatWebsiteId','OpenchannelQueueReport','Agent','Queue','Website','ChatInteractionId','user_has_chat_interactions','team_has_chat_queues','Members','Company','cm_user_has_contacts','cm_contact_has_tags','CampaignId','OwnerId','Campaign','Condition','All','AutomationAllId','Any','Automation','Actions','AutomationId','ParentId','Intervals','MailApplications','ChatApplications','FaxApplications','DefaultReportId','CustomReportId','Mohs','chat_interaction_has_tags','AllConditions','AllCondition','TriggerAllId','AnyCondition','TriggerAnyId','TriggerId','AnalyticFieldReport','Fields','AnalyticMetric','MetricId','Configurations','SalesforceField','Subjects','Descriptions','DescriptionId','FieldId','AccountId','SubjectId','Field','Subject','VariableId','DeskConfiguration','int_desk_configuration_has_tags','ZohoField','ZendeskAccount','FreshdeskConfiguration','FreshdeskField','int_freshdesk_configuration_has_tags','Description','VtigerConfiguration','ServicenowAccount','ServicenowField','ChatInternalMessage','FromId','ToId','SessionId','ProjectId','team_has_fax_queues','FaxQueues','team_has_whatsapp_queues','WhatsappQueues','HopperHistories','HopperBlacks','TrunkBackup','SquareProjectId','campaigns_has_cm_lists','campaigns_has_cm_blacklists','MailTransferReport','FromMailAccountId','FromAccount','FromUserId','ToAgent','ToQueue','ToMailAccountId','ToAccount','FromChatWebsiteId','FromAgent','ToChatQueueId','ToChatWebsiteId','ToUserId','ToOpenchannelQueueId','FromSmsAccountId','ToSmsQueueId','CmCustomField','Queues','UserProfileSections','UserProfileResource','Resources','WhatsappAccountId','whatsapp_interaction_has_tags','user_has_whatsapp_interactions','WhatsappInteractionId','WhatsappQueueReport','FromWhatsappAccountId','ToWhatsappAccountId','WhatsappQueueId','../config/environment','sequelize','jstz','determine','defaultsDeep','motion2','xcall','xC@LL1234','127.0.0.1','utf8mb4','name','utf8','utf8_general_ci','sequelizeHistory','mysql','database','username','password','options','User','import','../api/user/user.model','VoiceChanSpy','../api/voiceChanSpy/voiceChanSpy.model','VoiceContext','../api/voiceContext/voiceContext.model','VoiceExtension','../api/voiceExtension/voiceExtension.model','VoiceQueue','../api/voiceRecording/voiceRecording.model','ScreenRecording','../api/screenRecording/screenRecording.model','VoiceMail','VoiceMailMessage','../api/voiceMailMessage/voiceMailMessage.model','VoiceCallReport','../api/voiceCallReport/voiceCallReport.model','VoiceDialReport','VoiceAgentReport','../api/voiceAgentReport/voiceAgentReport.model','../api/voiceQueueReport/voiceQueueReport.model','MemberReport','Trunk','../api/trunk/trunk.model','VoiceTransferReport','UserVoiceQueueRt','../api/userVoiceQueueRt/userVoiceQueueRt.model','UserVoiceQueue','../api/userVoiceQueue/userVoiceQueue.model','UserChatQueue','../api/userChatQueue/userChatQueue.model','../api/userMailQueue/userMailQueue.model','../api/userFaxQueue/userFaxQueue.model','UserSmsQueue','../api/userSmsQueue/userSmsQueue.model','../api/userOpenchannelQueue/userOpenchannelQueue.model','UserWhatsappQueue','../api/userWhatsappQueue/userWhatsappQueue.model','MailServerOut','../api/mailAccount/mailAccount.model','../api/mailQueue/mailQueue.model','MailSubstatus','MailInteraction','MailMessage','../api/mailMessage/mailMessage.model','MailApplication','MailQueueReport','Dashboard','../api/dashboard/dashboard.model','DashboardItem','../api/dashboardItem/dashboardItem.model','FaxAccount','../api/faxAccount/faxAccount.model','FaxApplication','../api/faxApplication/faxApplication.model','FaxInteraction','../api/faxInteraction/faxInteraction.model','FaxMessage','FaxQueue','../api/faxQueue/faxQueue.model','FaxQueueReport','SmsAccount','../api/smsAccount/smsAccount.model','SmsApplication','SmsInteraction','../api/smsInteraction/smsInteraction.model','SmsMessage','../api/smsMessage/smsMessage.model','SmsQueue','OpenchannelApplication','../api/openchannelApplication/openchannelApplication.model','OpenchannelInteraction','../api/openchannelInteraction/openchannelInteraction.model','OpenchannelMessage','OpenchannelQueue','ChatWebsite','../api/chatWebsite/chatWebsite.model','../api/openchannelQueueReport/openchannelQueueReport.model','ChatApplication','../api/chatApplication/chatApplication.model','ChatInteraction','../api/chatInteraction/chatInteraction.model','ChatMessage','../api/chatOfflineMessage/chatOfflineMessage.model','../api/chatQueue/chatQueue.model','ChatGroup','ChatProactiveAction','../api/chatProactiveAction/chatProactiveAction.model','CmCompany','../api/cmCompany/cmCompany.model','CmHopper','../api/cmHopper/cmHopper.model','CmHopperBlack','../api/cmHopperBlack/cmHopperBlack.model','CmHopperFinal','../api/cmHopperFinal/cmHopperFinal.model','CmHopperHistory','../api/cmHopperHistory/cmHopperHistory.model','ReportAgentPreview','../api/cmCustomField/cmCustomField.model','Action','../api/action/action.model','../api/automation/automation.model','CannedAnswer','../api/cannedAnswer/cannedAnswer.model','Disposition','../api/disposition/disposition.model','../api/condition/condition.model','Interval','../api/interval/interval.model','Pause','../api/pause/pause.model','Cdr','../api/cdr/cdr.model','VoiceQueuesLog','../api/voiceQueuesLog/voiceQueuesLog.model','Schedule','../api/schedule/schedule.model','Sound','Tag','../api/tag/tag.model','Template','../api/template/template.model','Trigger','../api/trigger/trigger.model','Variable','Integration','../api/integration/integration.model','IntegrationReport','../api/integrationReport/integrationReport.model','AnalyticCustomReport','AnalyticDefaultReport','../api/analyticDefaultReport/analyticDefaultReport.model','../api/analyticMetric/analyticMetric.model','../api/analyticFieldReport/analyticFieldReport.model','AnalyticTreeReport','SalesforceAccount','../api/intSalesforceAccount/intSalesforceAccount.model','SalesforceConfiguration','../api/intSalesforceField/intSalesforceField.model','SugarcrmAccount','SugarcrmConfiguration','../api/intSugarcrmConfiguration/intSugarcrmConfiguration.model','SugarcrmField','../api/intSugarcrmField/intSugarcrmField.model','DeskAccount','../api/intDeskConfiguration/intDeskConfiguration.model','DeskField','../api/intDeskField/intDeskField.model','../api/intZohoAccount/intZohoAccount.model','ZohoConfiguration','../api/intZohoConfiguration/intZohoConfiguration.model','../api/intZohoField/intZohoField.model','../api/intZendeskAccount/intZendeskAccount.model','ZendeskConfiguration','../api/intZendeskConfiguration/intZendeskConfiguration.model','ZendeskField','../api/intZendeskField/intZendeskField.model','FreshdeskAccount','../api/intFreshdeskAccount/intFreshdeskAccount.model','../api/intFreshdeskConfiguration/intFreshdeskConfiguration.model','../api/intFreshdeskField/intFreshdeskField.model','VtigerAccount','../api/intVtigerAccount/intVtigerAccount.model','../api/intVtigerConfiguration/intVtigerConfiguration.model','VtigerField','../api/intVtigerField/intVtigerField.model','../api/intServicenowAccount/intServicenowAccount.model','ServicenowConfiguration','../api/intServicenowConfiguration/intServicenowConfiguration.model','Dynamics365Account','Dynamics365Configuration','../api/intDynamics365Configuration/intDynamics365Configuration.model','Dynamics365Field','FreshsalesAccount','../api/intFreshsalesAccount/intFreshsalesAccount.model','FreshsalesConfiguration','../api/intFreshsalesConfiguration/intFreshsalesConfiguration.model','FreshsalesField','Network','ChatQueueReport','JscriptyAnswerReport','../api/jscriptyAnswerReport/jscriptyAnswerReport.model','JscriptyQuestionReport','../api/jscriptyQuestionReport/jscriptyQuestionReport.model','JscriptySessionReport','../api/jscriptySessionReport/jscriptySessionReport.model','SmsQueueReport','SquareReport','SquareDetailsReport','../api/squareReportDetail/squareReportDetail.model','JscriptyProject','../api/jscriptyProject/jscriptyProject.model','Setting','../api/squareOdbc/squareOdbc.model','SquareProject','../api/squareProject/squareProject.model','SquareRecording','SquareMessage','../api/squareMessage/squareMessage.model','../api/team/team.model','../api/license/license.model','../api/campaign/campaign.model','Plugin','../api/plugin/plugin.model','../api/mailTransferReport/mailTransferReport.model','ChatTransferReport','../api/chatTransferReport/chatTransferReport.model','FaxTransferReport','../api/faxTransferReport/faxTransferReport.model','OpenchannelTransferReport','../api/openchannelTransferReport/openchannelTransferReport.model','SmsTransferReport','CmList','../api/cmList/cmList.model','VoicePrefix','../api/voicePrefix/voicePrefix.model','UserProfile','UserProfileSection','../api/userProfileSection/userProfileSection.model','UserNotification','WhatsappAccount','../api/whatsappAccount/whatsappAccount.model','WhatsappApplication','../api/whatsappApplication/whatsappApplication.model','WhatsappInteraction','../api/whatsappInteraction/whatsappInteraction.model','WhatsappMessage','../api/whatsappMessage/whatsappMessage.model','../api/whatsappQueueReport/whatsappQueueReport.model','WhatsappTransferReport','WhatsappQueue','../api/cloudProvider/cloudProvider.model','../api/teamVoiceQueue/teamVoiceQueue.model','TeamVoicePrefix','../api/teamVoicePrefix/teamVoicePrefix.model','UserVoicePrefix','../api/userVoicePrefix/userVoicePrefix.model','cascade','UserId','VoiceRecording','Recordings','hasMany','VoiceQueuesRt','Extensions','HopperFinals','HopperHistory','OpenchannelInteractions','ChatInteractions','SmsInteractions','WhatsappInteractions','UserNotifications','SenderId','belongsTo','userProfileId','belongsToMany','Groups','chat_group_has_users','CmContact','Contacts','Lists','cm_user_has_lists','user_has_teams','MailInteractions','FaxInteractions','user_has_fax_interactions','user_has_openchannel_interactions','VoiceQueues','VoicePrefixes','MailQueue','MailQueues','ChatQueue','ChatQueues','UserFaxQueue','SmsQueues','OpenchannelQueues','UserOpenchannelQueue','ChatWebsites','user_has_chat_websites','MailAccounts','OpenchannelAccount','OpenchannelAccounts','SmsAccounts','user_has_sms_accounts','WhatsappAccounts','user_has_whatsapp_accounts','user_has_square_projects','SpiedAgents','ChanSpyId','VoiceMusicOnHold','moh_has_sounds','VoiceQueueId','Hoppers','JscriptySessions','TrunkId','TrunkBackupId','IntervalId','mandatoryDispositionPause','mandatoryDispositionPauseId','voice_queues_has_cm_lists','Agents','Team','TeamVoiceQueue','BlackLists','voice_queues_has_cm_blacklists','Messages','mailboxuser','mailbox'];(function(_0x4660c5,_0x267ecc){var _0x2a6a30=function(_0x547732){while(--_0x547732){_0x4660c5['push'](_0x4660c5['shift']());}};_0x2a6a30(++_0x267ecc);}(_0xdfd2,0x9f));var _0x2dfd=function(_0x1f2b75,_0x20ace2){_0x1f2b75=_0x1f2b75-0x0;var _0x20581a=_0xdfd2[_0x1f2b75];return _0x20581a;};'use strict';var config=require(_0x2dfd('0x0'));var Sequelize=require(_0x2dfd('0x1'));var _=require('lodash');var jstz=require(_0x2dfd('0x2'));var timezone=jstz[_0x2dfd('0x3')]();config[_0x2dfd('0x1')]=_[_0x2dfd('0x4')](config['sequelize'],{'database':_0x2dfd('0x5'),'username':_0x2dfd('0x6'),'password':_0x2dfd('0x7'),'options':{'host':_0x2dfd('0x8'),'port':0xcea,'dialect':'mysql','dialectOptions':{'charset':_0x2dfd('0x9')},'logging':![],'timezone':timezone[_0x2dfd('0xa')](),'define':{'charset':_0x2dfd('0xb'),'collate':_0x2dfd('0xc')}}});config['sequelizeHistory']=_[_0x2dfd('0x4')](config[_0x2dfd('0xd')],{'database':_0x2dfd('0x5'),'username':'xcall','password':'xC@LL1234','options':{'host':_0x2dfd('0x8'),'port':0xcea,'dialect':_0x2dfd('0xe'),'dialectOptions':{'charset':_0x2dfd('0x9')},'logging':![],'timezone':timezone[_0x2dfd('0xa')](),'define':{'charset':_0x2dfd('0xb'),'collate':'utf8_general_ci'}}});var db={'Sequelize':Sequelize,'sequelize':new Sequelize(config[_0x2dfd('0x1')][_0x2dfd('0xf')],config['sequelize'][_0x2dfd('0x10')],config['sequelize'][_0x2dfd('0x11')],config[_0x2dfd('0x1')][_0x2dfd('0x12')])};var dbH={'Sequelize':Sequelize,'sequelize':new Sequelize(config[_0x2dfd('0xd')][_0x2dfd('0xf')],config[_0x2dfd('0xd')][_0x2dfd('0x10')],config[_0x2dfd('0xd')][_0x2dfd('0x11')],config['sequelizeHistory'][_0x2dfd('0x12')])};db[_0x2dfd('0x13')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')](_0x2dfd('0x15'));db[_0x2dfd('0x16')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')](_0x2dfd('0x17'));db[_0x2dfd('0x18')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')](_0x2dfd('0x19'));db[_0x2dfd('0x1a')]=db[_0x2dfd('0x1')]['import'](_0x2dfd('0x1b'));db['VoiceMusicOnHold']=db[_0x2dfd('0x1')][_0x2dfd('0x14')]('../api/voiceMusicOnHold/voiceMusicOnHold.model');db[_0x2dfd('0x1c')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')]('../api/voiceQueue/voiceQueue.model');db['VoiceRecording']=db['sequelize'][_0x2dfd('0x14')](_0x2dfd('0x1d'));db[_0x2dfd('0x1e')]=db['sequelize'][_0x2dfd('0x14')](_0x2dfd('0x1f'));db[_0x2dfd('0x20')]=db['sequelize'][_0x2dfd('0x14')]('../api/voiceMail/voiceMail.model');db[_0x2dfd('0x21')]=db['sequelize'][_0x2dfd('0x14')](_0x2dfd('0x22'));db[_0x2dfd('0x23')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')](_0x2dfd('0x24'));db[_0x2dfd('0x25')]=db['sequelize'][_0x2dfd('0x14')]('../api/voiceDialReport/voiceDialReport.model');db[_0x2dfd('0x26')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')](_0x2dfd('0x27'));db['VoiceQueueReport']=db[_0x2dfd('0x1')][_0x2dfd('0x14')](_0x2dfd('0x28'));db[_0x2dfd('0x29')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')]('../api/memberReport/memberReport.model');db[_0x2dfd('0x2a')]=db['sequelize'][_0x2dfd('0x14')](_0x2dfd('0x2b'));db[_0x2dfd('0x2c')]=db['sequelize']['import']('../api/voiceTransferReport/voiceTransferReport.model');db[_0x2dfd('0x2d')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')](_0x2dfd('0x2e'));db[_0x2dfd('0x2f')]=db[_0x2dfd('0x1')]['import'](_0x2dfd('0x30'));db[_0x2dfd('0x31')]=db[_0x2dfd('0x1')]['import'](_0x2dfd('0x32'));db['UserMailQueue']=db[_0x2dfd('0x1')]['import'](_0x2dfd('0x33'));db['UserFaxQueue']=db[_0x2dfd('0x1')][_0x2dfd('0x14')](_0x2dfd('0x34'));db[_0x2dfd('0x35')]=db[_0x2dfd('0x1')]['import'](_0x2dfd('0x36'));db['UserOpenchannelQueue']=db[_0x2dfd('0x1')][_0x2dfd('0x14')](_0x2dfd('0x37'));db[_0x2dfd('0x38')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')](_0x2dfd('0x39'));db['MailServerIn']=db['sequelize']['import']('../api/mailServerIn/mailServerIn.model');db[_0x2dfd('0x3a')]=db['sequelize'][_0x2dfd('0x14')]('../api/mailServerOut/mailServerOut.model');db['MailAccount']=db[_0x2dfd('0x1')][_0x2dfd('0x14')](_0x2dfd('0x3b'));db['MailQueue']=db['sequelize'][_0x2dfd('0x14')](_0x2dfd('0x3c'));db[_0x2dfd('0x3d')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')]('../api/mailSubstatus/mailSubstatus.model');db[_0x2dfd('0x3e')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')]('../api/mailInteraction/mailInteraction.model');db[_0x2dfd('0x3f')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')](_0x2dfd('0x40'));db[_0x2dfd('0x41')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')]('../api/mailApplication/mailApplication.model');db[_0x2dfd('0x42')]=db['sequelize'][_0x2dfd('0x14')]('../api/mailQueueReport/mailQueueReport.model');db[_0x2dfd('0x43')]=db[_0x2dfd('0x1')]['import'](_0x2dfd('0x44'));db[_0x2dfd('0x45')]=db['sequelize'][_0x2dfd('0x14')](_0x2dfd('0x46'));db[_0x2dfd('0x47')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')](_0x2dfd('0x48'));db[_0x2dfd('0x49')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')](_0x2dfd('0x4a'));db[_0x2dfd('0x4b')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')](_0x2dfd('0x4c'));db[_0x2dfd('0x4d')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')]('../api/faxMessage/faxMessage.model');db[_0x2dfd('0x4e')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')](_0x2dfd('0x4f'));db[_0x2dfd('0x50')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')]('../api/faxQueueReport/faxQueueReport.model');db[_0x2dfd('0x51')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')](_0x2dfd('0x52'));db[_0x2dfd('0x53')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')]('../api/smsApplication/smsApplication.model');db[_0x2dfd('0x54')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')](_0x2dfd('0x55'));db[_0x2dfd('0x56')]=db['sequelize'][_0x2dfd('0x14')](_0x2dfd('0x57'));db[_0x2dfd('0x58')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')]('../api/smsQueue/smsQueue.model');db['OpenchannelAccount']=db['sequelize'][_0x2dfd('0x14')]('../api/openchannelAccount/openchannelAccount.model');db[_0x2dfd('0x59')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')](_0x2dfd('0x5a'));db[_0x2dfd('0x5b')]=db['sequelize']['import'](_0x2dfd('0x5c'));db[_0x2dfd('0x5d')]=db['sequelize']['import']('../api/openchannelMessage/openchannelMessage.model');db[_0x2dfd('0x5e')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')]('../api/openchannelQueue/openchannelQueue.model');db[_0x2dfd('0x5f')]=db['sequelize'][_0x2dfd('0x14')](_0x2dfd('0x60'));db['OpenchannelQueueReport']=db[_0x2dfd('0x1')]['import'](_0x2dfd('0x61'));db[_0x2dfd('0x62')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')](_0x2dfd('0x63'));db[_0x2dfd('0x64')]=db[_0x2dfd('0x1')]['import'](_0x2dfd('0x65'));db[_0x2dfd('0x66')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')]('../api/chatMessage/chatMessage.model');db['ChatOfflineMessage']=db[_0x2dfd('0x1')][_0x2dfd('0x14')](_0x2dfd('0x67'));db['ChatQueue']=db[_0x2dfd('0x1')]['import'](_0x2dfd('0x68'));db[_0x2dfd('0x69')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')]('../api/chatGroup/chatGroup.model');db[_0x2dfd('0x6a')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')](_0x2dfd('0x6b'));db[_0x2dfd('0x6c')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')](_0x2dfd('0x6d'));db['CmContact']=db[_0x2dfd('0x1')][_0x2dfd('0x14')]('../api/cmContact/cmContact.model');db[_0x2dfd('0x6e')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')](_0x2dfd('0x6f'));db[_0x2dfd('0x70')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')](_0x2dfd('0x71'));db[_0x2dfd('0x72')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')](_0x2dfd('0x73'));db[_0x2dfd('0x74')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')](_0x2dfd('0x75'));db[_0x2dfd('0x76')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')]('../api/reportAgentPreview/reportAgentPreview.model');db['CmCustomField']=db[_0x2dfd('0x1')][_0x2dfd('0x14')](_0x2dfd('0x77'));db[_0x2dfd('0x78')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')](_0x2dfd('0x79'));db['Automation']=db['sequelize'][_0x2dfd('0x14')](_0x2dfd('0x7a'));db[_0x2dfd('0x7b')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')](_0x2dfd('0x7c'));db[_0x2dfd('0x7d')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')](_0x2dfd('0x7e'));db['Condition']=db['sequelize'][_0x2dfd('0x14')](_0x2dfd('0x7f'));db[_0x2dfd('0x80')]=db['sequelize']['import'](_0x2dfd('0x81'));db[_0x2dfd('0x82')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')](_0x2dfd('0x83'));db[_0x2dfd('0x84')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')](_0x2dfd('0x85'));db[_0x2dfd('0x86')]=db['sequelize']['import'](_0x2dfd('0x87'));db[_0x2dfd('0x88')]=db['sequelize'][_0x2dfd('0x14')](_0x2dfd('0x89'));db[_0x2dfd('0x8a')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')]('../api/sound/sound.model');db[_0x2dfd('0x8b')]=db['sequelize']['import'](_0x2dfd('0x8c'));db[_0x2dfd('0x8d')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')](_0x2dfd('0x8e'));db[_0x2dfd('0x8f')]=db['sequelize'][_0x2dfd('0x14')](_0x2dfd('0x90'));db[_0x2dfd('0x91')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')]('../api/variable/variable.model');db[_0x2dfd('0x92')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')](_0x2dfd('0x93'));db[_0x2dfd('0x94')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')](_0x2dfd('0x95'));db[_0x2dfd('0x96')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')]('../api/analyticCustomReport/analyticCustomReport.model');db[_0x2dfd('0x97')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')](_0x2dfd('0x98'));db['AnalyticExtractedReport']=db[_0x2dfd('0x1')]['import']('../api/analyticExtractedReport/analyticExtractedReport.model');db['AnalyticMetric']=db[_0x2dfd('0x1')][_0x2dfd('0x14')](_0x2dfd('0x99'));db['AnalyticFieldReport']=db[_0x2dfd('0x1')][_0x2dfd('0x14')](_0x2dfd('0x9a'));db[_0x2dfd('0x9b')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')]('../api/analyticTreeReport/analyticTreeReport.model');db[_0x2dfd('0x9c')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')](_0x2dfd('0x9d'));db[_0x2dfd('0x9e')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')]('../api/intSalesforceConfiguration/intSalesforceConfiguration.model');db['SalesforceField']=db[_0x2dfd('0x1')][_0x2dfd('0x14')](_0x2dfd('0x9f'));db[_0x2dfd('0xa0')]=db[_0x2dfd('0x1')]['import']('../api/intSugarcrmAccount/intSugarcrmAccount.model');db[_0x2dfd('0xa1')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')](_0x2dfd('0xa2'));db[_0x2dfd('0xa3')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')](_0x2dfd('0xa4'));db[_0x2dfd('0xa5')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')]('../api/intDeskAccount/intDeskAccount.model');db['DeskConfiguration']=db['sequelize']['import'](_0x2dfd('0xa6'));db[_0x2dfd('0xa7')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')](_0x2dfd('0xa8'));db['ZohoAccount']=db[_0x2dfd('0x1')][_0x2dfd('0x14')](_0x2dfd('0xa9'));db[_0x2dfd('0xaa')]=db[_0x2dfd('0x1')]['import'](_0x2dfd('0xab'));db['ZohoField']=db[_0x2dfd('0x1')][_0x2dfd('0x14')](_0x2dfd('0xac'));db['ZendeskAccount']=db[_0x2dfd('0x1')]['import'](_0x2dfd('0xad'));db[_0x2dfd('0xae')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')](_0x2dfd('0xaf'));db[_0x2dfd('0xb0')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')](_0x2dfd('0xb1'));db[_0x2dfd('0xb2')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')](_0x2dfd('0xb3'));db['FreshdeskConfiguration']=db[_0x2dfd('0x1')][_0x2dfd('0x14')](_0x2dfd('0xb4'));db['FreshdeskField']=db[_0x2dfd('0x1')][_0x2dfd('0x14')](_0x2dfd('0xb5'));db[_0x2dfd('0xb6')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')](_0x2dfd('0xb7'));db['VtigerConfiguration']=db[_0x2dfd('0x1')]['import'](_0x2dfd('0xb8'));db[_0x2dfd('0xb9')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')](_0x2dfd('0xba'));db['ServicenowAccount']=db[_0x2dfd('0x1')][_0x2dfd('0x14')](_0x2dfd('0xbb'));db[_0x2dfd('0xbc')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')](_0x2dfd('0xbd'));db['ServicenowField']=db[_0x2dfd('0x1')][_0x2dfd('0x14')]('../api/intServicenowField/intServicenowField.model');db[_0x2dfd('0xbe')]=db['sequelize'][_0x2dfd('0x14')]('../api/intDynamics365Account/intDynamics365Account.model');db[_0x2dfd('0xbf')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')](_0x2dfd('0xc0'));db[_0x2dfd('0xc1')]=db['sequelize'][_0x2dfd('0x14')]('../api/intDynamics365Field/intDynamics365Field.model');db[_0x2dfd('0xc2')]=db['sequelize']['import'](_0x2dfd('0xc3'));db[_0x2dfd('0xc4')]=db['sequelize']['import'](_0x2dfd('0xc5'));db[_0x2dfd('0xc6')]=db[_0x2dfd('0x1')]['import']('../api/intFreshsalesField/intFreshsalesField.model');db['Integration']=db[_0x2dfd('0x1')]['import'](_0x2dfd('0x93'));db[_0x2dfd('0xc7')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')]('../api/network/network.model');db[_0x2dfd('0xc8')]=db['sequelize'][_0x2dfd('0x14')]('../api/chatQueueReport/chatQueueReport.model');db['ChatInternalMessage']=db[_0x2dfd('0x1')][_0x2dfd('0x14')]('../api/chatInternalMessage/chatInternalMessage.model');db[_0x2dfd('0xc9')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')](_0x2dfd('0xca'));db[_0x2dfd('0xcb')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')](_0x2dfd('0xcc'));db[_0x2dfd('0xcd')]=db[_0x2dfd('0x1')]['import'](_0x2dfd('0xce'));db[_0x2dfd('0xcf')]=db['sequelize'][_0x2dfd('0x14')]('../api/smsQueueReport/smsQueueReport.model');db[_0x2dfd('0xd0')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')]('../api/squareReport/squareReport.model');db[_0x2dfd('0xd1')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')](_0x2dfd('0xd2'));db[_0x2dfd('0xd3')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')](_0x2dfd('0xd4'));db[_0x2dfd('0xd5')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')]('../api/setting/setting.model');db['SquareOdbc']=db[_0x2dfd('0x1')][_0x2dfd('0x14')](_0x2dfd('0xd6'));db[_0x2dfd('0xd7')]=db['sequelize'][_0x2dfd('0x14')](_0x2dfd('0xd8'));db[_0x2dfd('0xd9')]=db[_0x2dfd('0x1')]['import']('../api/squareRecording/squareRecording.model');db[_0x2dfd('0xda')]=db['sequelize']['import'](_0x2dfd('0xdb'));db['Team']=db[_0x2dfd('0x1')]['import'](_0x2dfd('0xdc'));db['License']=db[_0x2dfd('0x1')][_0x2dfd('0x14')](_0x2dfd('0xdd'));db['Campaign']=db[_0x2dfd('0x1')]['import'](_0x2dfd('0xde'));db['Migration']=db[_0x2dfd('0x1')][_0x2dfd('0x14')]('../api/migration/migration.model');db['Attachment']=db[_0x2dfd('0x1')][_0x2dfd('0x14')]('../api/attachment/attachment.model');db[_0x2dfd('0xdf')]=db['sequelize'][_0x2dfd('0x14')](_0x2dfd('0xe0'));db['MailTransferReport']=db[_0x2dfd('0x1')][_0x2dfd('0x14')](_0x2dfd('0xe1'));db[_0x2dfd('0xe2')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')](_0x2dfd('0xe3'));db[_0x2dfd('0xe4')]=db['sequelize']['import'](_0x2dfd('0xe5'));db[_0x2dfd('0xe6')]=db['sequelize'][_0x2dfd('0x14')](_0x2dfd('0xe7'));db[_0x2dfd('0xe8')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')]('../api/smsTransferReport/smsTransferReport.model');db[_0x2dfd('0xe9')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')](_0x2dfd('0xea'));db[_0x2dfd('0xeb')]=db['sequelize']['import'](_0x2dfd('0xec'));db[_0x2dfd('0xed')]=db[_0x2dfd('0x1')]['import']('../api/userProfile/userProfile.model');db[_0x2dfd('0xee')]=db['sequelize'][_0x2dfd('0x14')](_0x2dfd('0xef'));db['UserProfileResource']=db[_0x2dfd('0x1')][_0x2dfd('0x14')]('../api/userProfileResource/userProfileResource.model');db[_0x2dfd('0xf0')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')]('../api/userNotification/userNotification.model');db[_0x2dfd('0xf1')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')](_0x2dfd('0xf2'));db[_0x2dfd('0xf3')]=db['sequelize'][_0x2dfd('0x14')](_0x2dfd('0xf4'));db[_0x2dfd('0xf5')]=db['sequelize']['import'](_0x2dfd('0xf6'));db[_0x2dfd('0xf7')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')](_0x2dfd('0xf8'));db['WhatsappQueueReport']=db[_0x2dfd('0x1')]['import'](_0x2dfd('0xf9'));db[_0x2dfd('0xfa')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')]('../api/whatsappTransferReport/whatsappTransferReport.model');db[_0x2dfd('0xfb')]=db['sequelize'][_0x2dfd('0x14')]('../api/whatsappQueue/whatsappQueue.model');db['CloudProvider']=db['sequelize'][_0x2dfd('0x14')](_0x2dfd('0xfc'));db['TeamVoiceQueue']=db['sequelize']['import'](_0x2dfd('0xfd'));db[_0x2dfd('0xfe')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')](_0x2dfd('0xff'));db[_0x2dfd('0x100')]=db[_0x2dfd('0x1')][_0x2dfd('0x14')](_0x2dfd('0x101'));db['User']['hasOne'](db['VoiceMail'],{'as':_0x2dfd('0x20'),'onDelete':_0x2dfd('0x102'),'foreignKey':_0x2dfd('0x103')});db[_0x2dfd('0x13')]['hasMany'](db[_0x2dfd('0x104')],{'as':_0x2dfd('0x105'),'foreignKey':'UserId'});db[_0x2dfd('0x13')][_0x2dfd('0x106')](db['UserVoiceQueueRt'],{'as':_0x2dfd('0x107'),'foreignKey':_0x2dfd('0x103')});db[_0x2dfd('0x13')]['hasMany'](db[_0x2dfd('0x1a')],{'as':_0x2dfd('0x108'),'onDelete':_0x2dfd('0x102'),'hooks':!![]});db['User'][_0x2dfd('0x106')](db[_0x2dfd('0x72')],{'as':_0x2dfd('0x109'),'foreignKey':_0x2dfd('0x103')});db['User']['hasMany'](db[_0x2dfd('0x74')],{'as':_0x2dfd('0x10a'),'foreignKey':'UserId'});db[_0x2dfd('0x13')]['hasMany'](db['ReportAgentPreview'],{'as':_0x2dfd('0x76'),'foreignKey':_0x2dfd('0x103')});db['User'][_0x2dfd('0x106')](db[_0x2dfd('0x5b')],{'as':_0x2dfd('0x10b'),'foreignKey':_0x2dfd('0x103')});db[_0x2dfd('0x13')][_0x2dfd('0x106')](db[_0x2dfd('0x64')],{'as':_0x2dfd('0x10c'),'foreignKey':_0x2dfd('0x103')});db[_0x2dfd('0x13')][_0x2dfd('0x106')](db[_0x2dfd('0x54')],{'as':_0x2dfd('0x10d'),'foreignKey':_0x2dfd('0x103')});db[_0x2dfd('0x13')]['hasMany'](db[_0x2dfd('0x4b')],{'as':'FaxInteractions','foreignKey':_0x2dfd('0x103')});db['User'][_0x2dfd('0x106')](db[_0x2dfd('0x3e')],{'as':'MailInteractions','foreignKey':_0x2dfd('0x103')});db[_0x2dfd('0x13')][_0x2dfd('0x106')](db[_0x2dfd('0xf5')],{'as':_0x2dfd('0x10e'),'foreignKey':_0x2dfd('0x103')});db[_0x2dfd('0x13')][_0x2dfd('0x106')](db[_0x2dfd('0xf0')],{'as':_0x2dfd('0x10f'),'foreignKey':_0x2dfd('0x110')});db[_0x2dfd('0x13')][_0x2dfd('0x111')](db['UserProfile'],{'as':'UserProfile','foreignKey':_0x2dfd('0x112')});db[_0x2dfd('0x13')][_0x2dfd('0x113')](db[_0x2dfd('0x69')],{'as':_0x2dfd('0x114'),'through':_0x2dfd('0x115')});db[_0x2dfd('0x13')][_0x2dfd('0x113')](db[_0x2dfd('0x116')],{'as':_0x2dfd('0x117'),'through':'cm_user_has_contacts'});db[_0x2dfd('0x13')][_0x2dfd('0x113')](db[_0x2dfd('0xe9')],{'as':_0x2dfd('0x118'),'through':_0x2dfd('0x119')});db[_0x2dfd('0x13')][_0x2dfd('0x113')](db['Team'],{'through':_0x2dfd('0x11a')});db[_0x2dfd('0x13')][_0x2dfd('0x113')](db[_0x2dfd('0x3e')],{'as':_0x2dfd('0x11b'),'through':'user_has_mail_interactions'});db['User'][_0x2dfd('0x113')](db['ChatInteraction'],{'as':_0x2dfd('0x10c'),'through':'user_has_chat_interactions'});db[_0x2dfd('0x13')]['belongsToMany'](db[_0x2dfd('0x4b')],{'as':_0x2dfd('0x11c'),'through':_0x2dfd('0x11d')});db[_0x2dfd('0x13')]['belongsToMany'](db[_0x2dfd('0x54')],{'as':_0x2dfd('0x10d'),'through':'user_has_sms_interactions'});db[_0x2dfd('0x13')][_0x2dfd('0x113')](db[_0x2dfd('0x5b')],{'as':_0x2dfd('0x10b'),'through':_0x2dfd('0x11e')});db[_0x2dfd('0x13')][_0x2dfd('0x113')](db['WhatsappInteraction'],{'as':_0x2dfd('0x10e'),'through':'user_has_whatsapp_interactions'});db[_0x2dfd('0x13')][_0x2dfd('0x113')](db[_0x2dfd('0x1c')],{'as':_0x2dfd('0x11f'),'through':_0x2dfd('0x2f'),'required':![]});db['User'][_0x2dfd('0x113')](db[_0x2dfd('0xeb')],{'as':_0x2dfd('0x120'),'through':'UserVoicePrefix','required':![]});db[_0x2dfd('0x13')][_0x2dfd('0x113')](db[_0x2dfd('0x121')],{'as':_0x2dfd('0x122'),'through':'UserMailQueue','required':![]});db['User'][_0x2dfd('0x113')](db[_0x2dfd('0x123')],{'as':_0x2dfd('0x124'),'through':_0x2dfd('0x31'),'required':![],'hooks':!![]});db[_0x2dfd('0x13')]['belongsToMany'](db[_0x2dfd('0x4e')],{'as':'FaxQueues','through':_0x2dfd('0x125'),'required':![]});db[_0x2dfd('0x13')][_0x2dfd('0x113')](db[_0x2dfd('0x58')],{'as':_0x2dfd('0x126'),'through':_0x2dfd('0x35'),'required':![]});db[_0x2dfd('0x13')][_0x2dfd('0x113')](db[_0x2dfd('0x5e')],{'as':_0x2dfd('0x127'),'through':_0x2dfd('0x128'),'required':![]});db['User'][_0x2dfd('0x113')](db[_0x2dfd('0xfb')],{'as':'WhatsappQueues','through':_0x2dfd('0x38'),'required':![]});db[_0x2dfd('0x13')][_0x2dfd('0x113')](db['CmList'],{'through':'cm_user_has_lists'});db[_0x2dfd('0x13')][_0x2dfd('0x113')](db[_0x2dfd('0x5f')],{'as':_0x2dfd('0x129'),'through':_0x2dfd('0x12a')});db[_0x2dfd('0x13')][_0x2dfd('0x113')](db[_0x2dfd('0x47')],{'as':'FaxAccounts','through':'user_has_fax_accounts'});db[_0x2dfd('0x13')]['belongsToMany'](db['MailAccount'],{'as':_0x2dfd('0x12b'),'through':'user_has_mail_accounts'});db['User']['belongsToMany'](db[_0x2dfd('0x12c')],{'as':_0x2dfd('0x12d'),'through':'user_has_openchannel_accounts'});db['User']['belongsToMany'](db['SmsAccount'],{'as':_0x2dfd('0x12e'),'through':_0x2dfd('0x12f')});db[_0x2dfd('0x13')]['belongsToMany'](db[_0x2dfd('0xf1')],{'as':_0x2dfd('0x130'),'through':_0x2dfd('0x131')});db[_0x2dfd('0x13')]['belongsToMany'](db[_0x2dfd('0xd7')],{'as':'SquareProjects','through':_0x2dfd('0x132')});db['VoiceChanSpy'][_0x2dfd('0x106')](db[_0x2dfd('0x1a')],{'as':_0x2dfd('0x133'),'onDelete':_0x2dfd('0x102'),'foreignKey':_0x2dfd('0x134')});db[_0x2dfd('0x18')][_0x2dfd('0x106')](db['VoiceExtension'],{'onDelete':_0x2dfd('0x102')});db['VoiceExtension'][_0x2dfd('0x106')](db['VoiceExtension'],{'as':'Applications','onDelete':_0x2dfd('0x102')});db[_0x2dfd('0x135')][_0x2dfd('0x113')](db[_0x2dfd('0x8a')],{'as':'Sounds','through':_0x2dfd('0x136')});db[_0x2dfd('0x1c')][_0x2dfd('0x106')](db[_0x2dfd('0x2d')],{'as':'Members','foreignKey':_0x2dfd('0x137')});db['VoiceQueue']['hasMany'](db[_0x2dfd('0x6e')],{'as':_0x2dfd('0x138'),'foreignKey':_0x2dfd('0x137')});db[_0x2dfd('0x1c')][_0x2dfd('0x106')](db[_0x2dfd('0x72')],{'as':'HopperFinals','foreignKey':_0x2dfd('0x137')});db['VoiceQueue'][_0x2dfd('0x106')](db[_0x2dfd('0x74')],{'as':'HopperHistories','foreignKey':_0x2dfd('0x137')});db[_0x2dfd('0x1c')][_0x2dfd('0x106')](db[_0x2dfd('0x76')],{'as':_0x2dfd('0x76'),'foreignKey':'VoiceQueueId'});db[_0x2dfd('0x1c')]['hasMany'](db[_0x2dfd('0x70')],{'as':'HopperBlacks','foreignKey':'VoiceQueueId'});db['VoiceQueue'][_0x2dfd('0x106')](db['JscriptySessionReport'],{'as':_0x2dfd('0x139'),'foreignKey':'VoiceQueueId'});db['VoiceQueue']['belongsTo'](db[_0x2dfd('0x2a')],{'as':_0x2dfd('0x2a'),'foreignKey':_0x2dfd('0x13a')});db[_0x2dfd('0x1c')][_0x2dfd('0x111')](db[_0x2dfd('0x2a')],{'as':'TrunkBackup','foreignKey':_0x2dfd('0x13b')});db[_0x2dfd('0x1c')]['belongsTo'](db[_0x2dfd('0x80')],{'as':_0x2dfd('0x80'),'foreignKey':_0x2dfd('0x13c')});db['VoiceQueue'][_0x2dfd('0x111')](db[_0x2dfd('0x82')],{'as':_0x2dfd('0x13d'),'foreignKey':_0x2dfd('0x13e')});db[_0x2dfd('0x1c')][_0x2dfd('0x113')](db[_0x2dfd('0xe9')],{'as':_0x2dfd('0x118'),'through':_0x2dfd('0x13f')});db[_0x2dfd('0x1c')][_0x2dfd('0x113')](db[_0x2dfd('0x13')],{'as':_0x2dfd('0x140'),'through':'UserVoiceQueue'});db[_0x2dfd('0x1c')]['belongsToMany'](db[_0x2dfd('0x141')],{'as':'Teams','through':_0x2dfd('0x142')});db['VoiceQueue'][_0x2dfd('0x113')](db[_0x2dfd('0xe9')],{'as':_0x2dfd('0x143'),'through':_0x2dfd('0x144')});db[_0x2dfd('0x104')]['belongsTo'](db[_0x2dfd('0x13')],{'as':'User','foreignKey':_0x2dfd('0x103')});db[_0x2dfd('0x1e')][_0x2dfd('0x111')](db['User'],{'as':_0x2dfd('0x13'),'foreignKey':_0x2dfd('0x103')});db[_0x2dfd('0x20')][_0x2dfd('0x106')](db[_0x2dfd('0x21')],{'as':_0x2dfd('0x145'),'onDelete':_0x2dfd('0x102'),'foreignKey':_0x2dfd('0x146'),'sourceKey':_0x2dfd('0x147')});db[_0x2dfd('0x21')][_0x2dfd('0x111')](db[_0x2dfd('0x20')],{'foreignKey':_0x2dfd('0x146'),'targetKey':_0x2dfd('0x147')});db[_0x2dfd('0x23')]['hasMany'](db[_0x2dfd('0x148')],{'as':_0x2dfd('0x149'),'foreignKey':_0x2dfd('0x14a'),'constraints':![]});db[_0x2dfd('0x23')][_0x2dfd('0x106')](db[_0x2dfd('0x26')],{'as':'AgentReports','foreignKey':_0x2dfd('0x14a'),'constraints':![]});db[_0x2dfd('0x23')]['belongsTo'](db['User'],{'as':'User','foreignKey':_0x2dfd('0x103')});db[_0x2dfd('0x23')][_0x2dfd('0x111')](db['CmContact'],{'as':_0x2dfd('0x14b'),'foreignKey':_0x2dfd('0x14c')});db[_0x2dfd('0x14d')][_0x2dfd('0x111')](db[_0x2dfd('0x14e')],{'as':_0x2dfd('0x14e'),'foreignKey':_0x2dfd('0x14f')});db[_0x2dfd('0x3a')][_0x2dfd('0x111')](db['MailAccount'],{'as':_0x2dfd('0x14e'),'foreignKey':'MailAccountId'});db[_0x2dfd('0x14e')]['hasOne'](db[_0x2dfd('0x14d')],{'as':_0x2dfd('0x150'),'onDelete':_0x2dfd('0x102')});db[_0x2dfd('0x14e')]['hasOne'](db[_0x2dfd('0x3a')],{'as':_0x2dfd('0x151'),'onDelete':_0x2dfd('0x102')});db[_0x2dfd('0x14e')][_0x2dfd('0x106')](db[_0x2dfd('0x7d')],{'as':_0x2dfd('0x152'),'foreignKey':_0x2dfd('0x14f'),'onDelete':_0x2dfd('0x102')});db[_0x2dfd('0x14e')][_0x2dfd('0x106')](db[_0x2dfd('0x7b')],{'as':'Answers','foreignKey':_0x2dfd('0x14f')});db[_0x2dfd('0x14e')]['hasMany'](db[_0x2dfd('0x3f')],{'as':'Messages','foreignKey':'MailAccountId'});db[_0x2dfd('0x14e')][_0x2dfd('0x106')](db[_0x2dfd('0x3e')],{'as':_0x2dfd('0x153')});db[_0x2dfd('0x14e')][_0x2dfd('0x106')](db[_0x2dfd('0x41')],{'as':'Applications'});db[_0x2dfd('0x14e')][_0x2dfd('0x111')](db['CmList'],{'as':_0x2dfd('0x154'),'foreignKey':_0x2dfd('0x155')});db[_0x2dfd('0x14e')][_0x2dfd('0x111')](db['Template'],{'as':_0x2dfd('0x8d'),'foreignKey':_0x2dfd('0x156')});db[_0x2dfd('0x14e')][_0x2dfd('0x111')](db[_0x2dfd('0x82')],{'as':'mandatoryDispositionPause','foreignKey':'mandatoryDispositionPauseId'});db['MailAccount']['belongsToMany'](db[_0x2dfd('0x13')],{'as':_0x2dfd('0x140'),'through':_0x2dfd('0x157')});db[_0x2dfd('0x121')][_0x2dfd('0x113')](db['User'],{'as':'Agents','through':_0x2dfd('0x158')});db[_0x2dfd('0x121')]['belongsToMany'](db[_0x2dfd('0x141')],{'through':_0x2dfd('0x159'),'as':_0x2dfd('0x15a')});db[_0x2dfd('0x3e')]['hasMany'](db[_0x2dfd('0x3f')],{'as':_0x2dfd('0x145'),'onDelete':_0x2dfd('0x102'),'foreignKey':_0x2dfd('0x15b')});db[_0x2dfd('0x3e')][_0x2dfd('0x111')](db[_0x2dfd('0x14e')],{'as':_0x2dfd('0x15c'),'foreignKey':_0x2dfd('0x14f')});db[_0x2dfd('0x3e')][_0x2dfd('0x111')](db['CmContact'],{'as':_0x2dfd('0x14b'),'foreignKey':_0x2dfd('0x14c')});db[_0x2dfd('0x3e')][_0x2dfd('0x111')](db['User'],{'as':_0x2dfd('0x15d'),'foreignKey':_0x2dfd('0x103')});db['MailInteraction'][_0x2dfd('0x113')](db[_0x2dfd('0x8b')],{'through':_0x2dfd('0x15e'),'as':_0x2dfd('0x15f')});db[_0x2dfd('0x3e')][_0x2dfd('0x113')](db[_0x2dfd('0x8b')],{'through':_0x2dfd('0x15e'),'as':_0x2dfd('0x160')});db['MailInteraction'][_0x2dfd('0x113')](db['User'],{'as':'Users','through':_0x2dfd('0x161'),'foreignKey':_0x2dfd('0x15b')});db[_0x2dfd('0x3f')]['hasMany'](db['Attachment'],{'as':_0x2dfd('0x162'),'onDelete':_0x2dfd('0x102')});db[_0x2dfd('0x3f')]['belongsTo'](db['User'],{'as':'User'});db[_0x2dfd('0x3f')][_0x2dfd('0x111')](db[_0x2dfd('0x116')],{'onDelete':'cascade','as':_0x2dfd('0x14b')});db[_0x2dfd('0x3f')]['belongsTo'](db[_0x2dfd('0x3e')],{'as':_0x2dfd('0x163'),'foreignKey':_0x2dfd('0x15b')});db['MailMessage'][_0x2dfd('0x111')](db[_0x2dfd('0x14e')],{'as':_0x2dfd('0x15c'),'foreignKey':_0x2dfd('0x14f')});db[_0x2dfd('0x3f')]['belongsTo'](db['ChatWebsite'],{'as':_0x2dfd('0x5f'),'foreignKey':'ChatWebsiteId'});db['MailMessage']['belongsTo'](db[_0x2dfd('0x164')],{'as':_0x2dfd('0x164'),'foreignKey':_0x2dfd('0x165')});db[_0x2dfd('0x41')]['belongsTo'](db[_0x2dfd('0x13')],{'onDelete':_0x2dfd('0x166')});db[_0x2dfd('0x41')][_0x2dfd('0x111')](db[_0x2dfd('0x121')],{'onDelete':_0x2dfd('0x166')});db['MailApplication']['belongsTo'](db['MailAccount'],{'onDelete':'restrict'});db[_0x2dfd('0x41')][_0x2dfd('0x111')](db['Interval'],{'onDelete':'restrict','foreignKey':_0x2dfd('0x13c')});db[_0x2dfd('0x41')][_0x2dfd('0x111')](db[_0x2dfd('0x8b')],{'onDelete':_0x2dfd('0x166'),'foreignKey':_0x2dfd('0x167')});db[_0x2dfd('0x42')][_0x2dfd('0x111')](db['MailAccount'],{});db[_0x2dfd('0x42')]['belongsTo'](db['CmList'],{'as':_0x2dfd('0x154'),'foreignKey':_0x2dfd('0x155')});db[_0x2dfd('0x42')][_0x2dfd('0x111')](db[_0x2dfd('0x116')],{'as':_0x2dfd('0x14b'),'foreignKey':_0x2dfd('0x14c')});db[_0x2dfd('0x42')][_0x2dfd('0x111')](db[_0x2dfd('0x3e')],{});db['MailQueueReport']['belongsTo'](db['MailMessage'],{});db[_0x2dfd('0x42')][_0x2dfd('0x111')](db[_0x2dfd('0x13')],{});db[_0x2dfd('0x42')][_0x2dfd('0x111')](db[_0x2dfd('0x121')],{});db[_0x2dfd('0x43')][_0x2dfd('0x106')](db[_0x2dfd('0x45')],{'as':_0x2dfd('0x168'),'onDelete':_0x2dfd('0x102')});db[_0x2dfd('0x47')][_0x2dfd('0x106')](db[_0x2dfd('0x7d')],{'as':'Dispositions','foreignKey':'FaxAccountId','onDelete':_0x2dfd('0x102')});db[_0x2dfd('0x47')][_0x2dfd('0x106')](db[_0x2dfd('0x7b')],{'as':_0x2dfd('0x169'),'foreignKey':_0x2dfd('0x16a')});db[_0x2dfd('0x47')][_0x2dfd('0x106')](db[_0x2dfd('0x4b')],{'as':_0x2dfd('0x153')});db[_0x2dfd('0x47')]['hasMany'](db[_0x2dfd('0x49')],{'as':'Applications'});db[_0x2dfd('0x47')]['hasMany'](db['VoiceExtension'],{'as':_0x2dfd('0x16b'),'onDelete':_0x2dfd('0x102')});db['FaxAccount']['hasMany'](db[_0x2dfd('0x4d')],{'as':'Messages'});db['FaxAccount'][_0x2dfd('0x111')](db[_0x2dfd('0x2a')],{'as':_0x2dfd('0x2a')});db['FaxAccount'][_0x2dfd('0x111')](db['CmList'],{'as':_0x2dfd('0x154'),'foreignKey':_0x2dfd('0x155')});db[_0x2dfd('0x47')][_0x2dfd('0x111')](db[_0x2dfd('0x82')],{'as':'mandatoryDispositionPause','foreignKey':_0x2dfd('0x13e')});db[_0x2dfd('0x47')][_0x2dfd('0x113')](db['User'],{'as':_0x2dfd('0x140'),'through':_0x2dfd('0x16c')});db[_0x2dfd('0x49')][_0x2dfd('0x111')](db[_0x2dfd('0x13')],{'onDelete':_0x2dfd('0x166')});db['FaxApplication'][_0x2dfd('0x111')](db[_0x2dfd('0x4e')],{'onDelete':_0x2dfd('0x166')});db[_0x2dfd('0x49')][_0x2dfd('0x111')](db[_0x2dfd('0x47')],{'onDelete':_0x2dfd('0x166')});db[_0x2dfd('0x49')][_0x2dfd('0x111')](db[_0x2dfd('0x8b')],{'onDelete':_0x2dfd('0x166'),'foreignKey':_0x2dfd('0x167')});db[_0x2dfd('0x4b')]['hasMany'](db['FaxMessage'],{'as':_0x2dfd('0x145'),'onDelete':_0x2dfd('0x102'),'foreignKey':_0x2dfd('0x16d')});db['FaxInteraction']['belongsTo'](db[_0x2dfd('0x47')],{'as':_0x2dfd('0x15c'),'foreignKey':_0x2dfd('0x16a')});db[_0x2dfd('0x4b')][_0x2dfd('0x111')](db['CmContact'],{'as':'Contact','foreignKey':_0x2dfd('0x14c')});db[_0x2dfd('0x4b')][_0x2dfd('0x111')](db['User'],{'as':_0x2dfd('0x15d'),'foreignKey':'UserId'});db['FaxInteraction']['belongsToMany'](db[_0x2dfd('0x8b')],{'through':_0x2dfd('0x16e'),'as':_0x2dfd('0x15f')});db['FaxInteraction'][_0x2dfd('0x113')](db['Tag'],{'through':_0x2dfd('0x16e'),'as':_0x2dfd('0x160')});db['FaxInteraction'][_0x2dfd('0x113')](db[_0x2dfd('0x13')],{'as':_0x2dfd('0x16f'),'through':_0x2dfd('0x11d'),'foreignKey':_0x2dfd('0x16d')});db['FaxMessage'][_0x2dfd('0x111')](db[_0x2dfd('0x13')],{'onDelete':_0x2dfd('0x102'),'as':'User'});db['FaxMessage'][_0x2dfd('0x111')](db[_0x2dfd('0x4b')],{'as':_0x2dfd('0x163'),'foreignKey':'FaxInteractionId'});db['FaxMessage']['belongsTo'](db[_0x2dfd('0x116')],{'onDelete':_0x2dfd('0x102'),'as':_0x2dfd('0x14b')});db['FaxMessage'][_0x2dfd('0x111')](db[_0x2dfd('0x170')],{'as':_0x2dfd('0x170'),'foreignKey':'AttachmentId'});db[_0x2dfd('0x4d')]['belongsTo'](db[_0x2dfd('0x47')],{'as':_0x2dfd('0x15c'),'foreignKey':'FaxAccountId'});db[_0x2dfd('0x4e')]['belongsToMany'](db[_0x2dfd('0x13')],{'as':_0x2dfd('0x140'),'through':_0x2dfd('0x125')});db[_0x2dfd('0x4e')][_0x2dfd('0x113')](db[_0x2dfd('0x141')],{'through':'team_has_fax_queues','as':_0x2dfd('0x15a')});db['FaxQueueReport'][_0x2dfd('0x111')](db[_0x2dfd('0x47')],{});db[_0x2dfd('0x50')][_0x2dfd('0x111')](db[_0x2dfd('0xe9')],{'as':_0x2dfd('0x154'),'foreignKey':'ListId'});db[_0x2dfd('0x50')]['belongsTo'](db['CmContact'],{'as':_0x2dfd('0x14b'),'foreignKey':_0x2dfd('0x14c')});db['FaxQueueReport'][_0x2dfd('0x111')](db['FaxInteraction'],{});db[_0x2dfd('0x50')]['belongsTo'](db[_0x2dfd('0x4d')],{});db[_0x2dfd('0x50')]['belongsTo'](db[_0x2dfd('0x13')],{});db[_0x2dfd('0x50')][_0x2dfd('0x111')](db[_0x2dfd('0x4e')],{});db[_0x2dfd('0x51')][_0x2dfd('0x106')](db['Disposition'],{'as':_0x2dfd('0x152'),'foreignKey':_0x2dfd('0x171'),'onDelete':_0x2dfd('0x102')});db['SmsAccount']['hasMany'](db[_0x2dfd('0x7b')],{'as':_0x2dfd('0x169'),'foreignKey':_0x2dfd('0x171')});db[_0x2dfd('0x51')][_0x2dfd('0x106')](db[_0x2dfd('0x56')],{'as':_0x2dfd('0x145'),'foreignKey':_0x2dfd('0x171')});db[_0x2dfd('0x51')][_0x2dfd('0x106')](db[_0x2dfd('0x54')],{'as':_0x2dfd('0x153')});db[_0x2dfd('0x51')]['hasMany'](db[_0x2dfd('0x53')],{'as':_0x2dfd('0x172')});db[_0x2dfd('0x51')][_0x2dfd('0x111')](db[_0x2dfd('0xe9')],{'as':_0x2dfd('0x154'),'foreignKey':_0x2dfd('0x155')});db[_0x2dfd('0x51')][_0x2dfd('0x111')](db[_0x2dfd('0x82')],{'as':_0x2dfd('0x13d'),'foreignKey':_0x2dfd('0x13e')});db['SmsAccount'][_0x2dfd('0x113')](db['User'],{'as':_0x2dfd('0x140'),'through':_0x2dfd('0x12f')});db[_0x2dfd('0x53')][_0x2dfd('0x111')](db[_0x2dfd('0x13')],{'onDelete':_0x2dfd('0x166')});db[_0x2dfd('0x53')][_0x2dfd('0x111')](db['SmsQueue'],{'onDelete':'restrict'});db['SmsApplication'][_0x2dfd('0x111')](db[_0x2dfd('0x51')],{'onDelete':_0x2dfd('0x166')});db[_0x2dfd('0x53')]['belongsTo'](db['Interval'],{'onDelete':_0x2dfd('0x166'),'foreignKey':_0x2dfd('0x13c')});db[_0x2dfd('0x53')]['belongsTo'](db['Tag'],{'onDelete':_0x2dfd('0x166'),'foreignKey':_0x2dfd('0x167')});db[_0x2dfd('0x54')][_0x2dfd('0x106')](db['SmsMessage'],{'as':_0x2dfd('0x145'),'onDelete':_0x2dfd('0x102'),'foreignKey':_0x2dfd('0x173')});db['SmsInteraction'][_0x2dfd('0x111')](db[_0x2dfd('0x51')],{'as':'Account','foreignKey':'SmsAccountId'});db['SmsInteraction'][_0x2dfd('0x111')](db[_0x2dfd('0x116')],{'as':_0x2dfd('0x14b'),'foreignKey':_0x2dfd('0x14c')});db[_0x2dfd('0x54')][_0x2dfd('0x111')](db['User'],{'as':'Owner','foreignKey':_0x2dfd('0x103')});db[_0x2dfd('0x54')]['belongsToMany'](db[_0x2dfd('0x8b')],{'through':_0x2dfd('0x174'),'as':_0x2dfd('0x15f')});db[_0x2dfd('0x54')][_0x2dfd('0x113')](db['Tag'],{'through':_0x2dfd('0x174'),'as':'ThroughTags'});db[_0x2dfd('0x54')][_0x2dfd('0x113')](db['User'],{'as':_0x2dfd('0x16f'),'through':'user_has_sms_interactions','foreignKey':_0x2dfd('0x173')});db['SmsMessage']['belongsTo'](db[_0x2dfd('0x13')],{'as':_0x2dfd('0x13')});db['SmsMessage'][_0x2dfd('0x111')](db[_0x2dfd('0x116')],{'onDelete':_0x2dfd('0x102'),'as':'Contact'});db[_0x2dfd('0x56')]['belongsTo'](db[_0x2dfd('0x54')],{'onDelete':'cascade','as':_0x2dfd('0x163'),'foreignKey':_0x2dfd('0x173')});db['SmsMessage']['belongsTo'](db['SmsAccount'],{'as':_0x2dfd('0x15c'),'foreignKey':_0x2dfd('0x171')});db['SmsQueue'][_0x2dfd('0x113')](db[_0x2dfd('0x13')],{'as':_0x2dfd('0x140'),'through':_0x2dfd('0x35'),'foreignKey':'SmsQueueId'});db[_0x2dfd('0x58')]['belongsToMany'](db[_0x2dfd('0x141')],{'through':'team_has_sms_queues','as':_0x2dfd('0x15a')});db[_0x2dfd('0x12c')][_0x2dfd('0x106')](db['Disposition'],{'as':_0x2dfd('0x152'),'foreignKey':_0x2dfd('0x175'),'onDelete':_0x2dfd('0x102')});db[_0x2dfd('0x12c')][_0x2dfd('0x106')](db[_0x2dfd('0x7b')],{'as':_0x2dfd('0x169'),'foreignKey':_0x2dfd('0x175')});db[_0x2dfd('0x12c')][_0x2dfd('0x106')](db[_0x2dfd('0x5b')],{'as':_0x2dfd('0x153'),'foreignKey':_0x2dfd('0x175')});db[_0x2dfd('0x12c')][_0x2dfd('0x106')](db[_0x2dfd('0x5d')],{'as':'Messages','foreignKey':_0x2dfd('0x175')});db[_0x2dfd('0x12c')][_0x2dfd('0x106')](db[_0x2dfd('0x59')],{'as':_0x2dfd('0x172'),'foreignKey':'OpenchannelAccountId'});db['OpenchannelAccount'][_0x2dfd('0x111')](db[_0x2dfd('0xe9')],{'as':_0x2dfd('0x154'),'foreignKey':_0x2dfd('0x155')});db[_0x2dfd('0x12c')][_0x2dfd('0x111')](db[_0x2dfd('0x82')],{'as':_0x2dfd('0x13d'),'foreignKey':_0x2dfd('0x13e')});db['OpenchannelAccount']['belongsToMany'](db['User'],{'as':'Agents','through':_0x2dfd('0x176')});db[_0x2dfd('0x59')][_0x2dfd('0x111')](db[_0x2dfd('0x13')],{'onDelete':'restrict'});db[_0x2dfd('0x59')][_0x2dfd('0x111')](db['OpenchannelQueue'],{'onDelete':_0x2dfd('0x166'),'foreignKey':'OpenchannelQueueId'});db['OpenchannelApplication'][_0x2dfd('0x111')](db['OpenchannelAccount'],{'onDelete':'restrict','foreignKey':_0x2dfd('0x175')});db['OpenchannelApplication'][_0x2dfd('0x111')](db[_0x2dfd('0x80')],{'onDelete':'restrict','foreignKey':_0x2dfd('0x13c')});db[_0x2dfd('0x59')][_0x2dfd('0x111')](db[_0x2dfd('0x8b')],{'onDelete':_0x2dfd('0x166'),'foreignKey':_0x2dfd('0x167')});db[_0x2dfd('0x5b')][_0x2dfd('0x106')](db[_0x2dfd('0x5d')],{'as':_0x2dfd('0x145'),'onDelete':'cascade','foreignKey':_0x2dfd('0x177')});db[_0x2dfd('0x5b')]['belongsTo'](db['OpenchannelAccount'],{'as':_0x2dfd('0x15c'),'foreignKey':'OpenchannelAccountId'});db[_0x2dfd('0x5b')][_0x2dfd('0x111')](db[_0x2dfd('0x116')],{'as':'Contact','foreignKey':_0x2dfd('0x14c')});db[_0x2dfd('0x5b')][_0x2dfd('0x111')](db[_0x2dfd('0x13')],{'as':_0x2dfd('0x15d'),'foreignKey':_0x2dfd('0x103')});db[_0x2dfd('0x5b')][_0x2dfd('0x113')](db['Tag'],{'through':_0x2dfd('0x178'),'as':_0x2dfd('0x15f')});db[_0x2dfd('0x5b')][_0x2dfd('0x113')](db[_0x2dfd('0x8b')],{'through':_0x2dfd('0x178'),'as':'ThroughTags'});db[_0x2dfd('0x5b')]['belongsToMany'](db[_0x2dfd('0x13')],{'as':_0x2dfd('0x16f'),'through':'user_has_openchannel_interactions','foreignKey':_0x2dfd('0x177')});db['OpenchannelMessage']['belongsTo'](db[_0x2dfd('0x13')],{'onDelete':_0x2dfd('0x102'),'as':_0x2dfd('0x13')});db[_0x2dfd('0x5d')][_0x2dfd('0x111')](db['CmContact'],{'onDelete':_0x2dfd('0x102'),'as':_0x2dfd('0x14b')});db[_0x2dfd('0x5d')][_0x2dfd('0x111')](db[_0x2dfd('0x5b')],{'onDelete':'cascade','as':_0x2dfd('0x163'),'foreignKey':_0x2dfd('0x177')});db[_0x2dfd('0x5d')][_0x2dfd('0x111')](db[_0x2dfd('0x170')],{'as':'Attachment','foreignKey':_0x2dfd('0x179')});db['OpenchannelMessage'][_0x2dfd('0x111')](db[_0x2dfd('0x12c')],{'as':_0x2dfd('0x15c'),'foreignKey':'OpenchannelAccountId'});db[_0x2dfd('0x5e')][_0x2dfd('0x113')](db[_0x2dfd('0x13')],{'as':_0x2dfd('0x140'),'through':'UserOpenchannelQueue','foreignKey':_0x2dfd('0x17a')});db[_0x2dfd('0x5e')][_0x2dfd('0x113')](db['Team'],{'through':_0x2dfd('0x17b'),'as':_0x2dfd('0x15a')});db['ChatWebsite'][_0x2dfd('0x106')](db[_0x2dfd('0x7d')],{'as':_0x2dfd('0x152'),'foreignKey':_0x2dfd('0x17c'),'onDelete':_0x2dfd('0x102')});db[_0x2dfd('0x5f')][_0x2dfd('0x106')](db[_0x2dfd('0x7b')],{'as':_0x2dfd('0x169'),'foreignKey':_0x2dfd('0x17c')});db[_0x2dfd('0x5f')][_0x2dfd('0x106')](db['ChatProactiveAction'],{'as':'ProactiveActions'});db[_0x2dfd('0x5f')]['hasMany'](db[_0x2dfd('0x64')],{'as':'Interactions'});db[_0x2dfd('0x5f')][_0x2dfd('0x106')](db['ChatApplication'],{'as':_0x2dfd('0x172')});db[_0x2dfd('0x5f')][_0x2dfd('0x106')](db[_0x2dfd('0x66')],{'as':_0x2dfd('0x145')});db[_0x2dfd('0x5f')][_0x2dfd('0x111')](db[_0x2dfd('0xe9')],{'as':_0x2dfd('0x154'),'foreignKey':_0x2dfd('0x155')});db[_0x2dfd('0x5f')]['belongsTo'](db[_0x2dfd('0x80')],{'as':_0x2dfd('0x80'),'foreignKey':_0x2dfd('0x13c')});db[_0x2dfd('0x5f')][_0x2dfd('0x111')](db[_0x2dfd('0x14e')],{'as':'MailAccount','foreignKey':_0x2dfd('0x14f')});db[_0x2dfd('0x5f')][_0x2dfd('0x111')](db[_0x2dfd('0x82')],{'as':_0x2dfd('0x13d'),'foreignKey':_0x2dfd('0x13e')});db[_0x2dfd('0x5f')][_0x2dfd('0x113')](db['User'],{'as':'Agents','through':'user_has_chat_websites'});db[_0x2dfd('0x17d')][_0x2dfd('0x111')](db[_0x2dfd('0x12c')],{});db['OpenchannelQueueReport']['belongsTo'](db[_0x2dfd('0xe9')],{'as':_0x2dfd('0x154'),'foreignKey':_0x2dfd('0x155')});db[_0x2dfd('0x17d')]['belongsTo'](db['CmContact'],{'as':_0x2dfd('0x14b'),'foreignKey':_0x2dfd('0x14c')});db[_0x2dfd('0x17d')][_0x2dfd('0x111')](db['OpenchannelInteraction'],{});db[_0x2dfd('0x17d')][_0x2dfd('0x111')](db['OpenchannelMessage'],{});db[_0x2dfd('0x17d')][_0x2dfd('0x111')](db['User'],{});db[_0x2dfd('0x17d')]['belongsTo'](db[_0x2dfd('0x5e')],{});db[_0x2dfd('0x62')][_0x2dfd('0x111')](db['User'],{'as':_0x2dfd('0x17e'),'foreignKey':'UserId','onDelete':_0x2dfd('0x166')});db[_0x2dfd('0x62')]['belongsTo'](db[_0x2dfd('0x123')],{'as':_0x2dfd('0x17f'),'foreignKey':'ChatQueueId','onDelete':_0x2dfd('0x166')});db[_0x2dfd('0x62')][_0x2dfd('0x111')](db['ChatWebsite'],{'as':_0x2dfd('0x180'),'foreignKey':_0x2dfd('0x17c'),'onDelete':_0x2dfd('0x166')});db['ChatApplication'][_0x2dfd('0x111')](db[_0x2dfd('0x8b')],{'onDelete':_0x2dfd('0x166'),'foreignKey':_0x2dfd('0x167')});db['ChatInteraction'][_0x2dfd('0x106')](db[_0x2dfd('0x66')],{'as':_0x2dfd('0x145'),'onDelete':_0x2dfd('0x102'),'foreignKey':_0x2dfd('0x181')});db[_0x2dfd('0x64')][_0x2dfd('0x111')](db[_0x2dfd('0x5f')],{'as':_0x2dfd('0x15c'),'foreignKey':_0x2dfd('0x17c')});db[_0x2dfd('0x64')][_0x2dfd('0x111')](db[_0x2dfd('0x116')],{'as':_0x2dfd('0x14b'),'foreignKey':'ContactId'});db[_0x2dfd('0x64')][_0x2dfd('0x111')](db['User'],{'as':_0x2dfd('0x15d'),'foreignKey':_0x2dfd('0x103')});db[_0x2dfd('0x64')][_0x2dfd('0x113')](db[_0x2dfd('0x8b')],{'through':'chat_interaction_has_tags','as':_0x2dfd('0x15f')});db['ChatInteraction'][_0x2dfd('0x113')](db[_0x2dfd('0x8b')],{'through':'chat_interaction_has_tags','as':_0x2dfd('0x160')});db[_0x2dfd('0x64')][_0x2dfd('0x113')](db[_0x2dfd('0x13')],{'as':'Users','through':_0x2dfd('0x182'),'foreignKey':_0x2dfd('0x181')});db[_0x2dfd('0x66')][_0x2dfd('0x111')](db[_0x2dfd('0x13')],{'onDelete':_0x2dfd('0x102'),'as':_0x2dfd('0x13')});db['ChatMessage'][_0x2dfd('0x111')](db[_0x2dfd('0x116')],{'onDelete':_0x2dfd('0x102'),'as':'Contact','foreignKey':_0x2dfd('0x14c')});db[_0x2dfd('0x66')][_0x2dfd('0x111')](db['ChatInteraction'],{'onDelete':_0x2dfd('0x102'),'as':_0x2dfd('0x163'),'foreignKey':_0x2dfd('0x181')});db['ChatMessage'][_0x2dfd('0x111')](db[_0x2dfd('0x170')],{'as':_0x2dfd('0x170'),'foreignKey':'AttachmentId'});db['ChatMessage'][_0x2dfd('0x111')](db[_0x2dfd('0x5f')],{'as':_0x2dfd('0x15c'),'foreignKey':'ChatWebsiteId'});db[_0x2dfd('0x164')][_0x2dfd('0x106')](db[_0x2dfd('0x170')],{'as':'Attachments','foreignKey':_0x2dfd('0x165'),'onDelete':_0x2dfd('0x102'),'hooks':!![]});db[_0x2dfd('0x164')][_0x2dfd('0x111')](db[_0x2dfd('0x116')],{'onDelete':'cascade','as':'Contact','foreignKey':'ContactId'});db[_0x2dfd('0x164')]['belongsTo'](db[_0x2dfd('0x5f')],{'as':'Account','foreignKey':_0x2dfd('0x17c')});db[_0x2dfd('0x123')][_0x2dfd('0x113')](db[_0x2dfd('0x13')],{'as':_0x2dfd('0x140'),'through':_0x2dfd('0x31'),'hooks':!![]});db[_0x2dfd('0x123')][_0x2dfd('0x113')](db[_0x2dfd('0x141')],{'through':_0x2dfd('0x183'),'as':'Teams'});db['ChatGroup']['hasMany'](db['ChatInternalMessage'],{'as':'Messages','foreignKey':'ChatGroupId','onDelete':_0x2dfd('0x102')});db['ChatGroup'][_0x2dfd('0x113')](db[_0x2dfd('0x13')],{'as':_0x2dfd('0x184'),'through':_0x2dfd('0x115')});db[_0x2dfd('0x6a')][_0x2dfd('0x111')](db[_0x2dfd('0x5f')],{'as':_0x2dfd('0x180'),'foreignKey':_0x2dfd('0x17c')});db[_0x2dfd('0x6c')][_0x2dfd('0x106')](db['CmContact'],{'as':'Contacts','foreignKey':'CompanyId'});db[_0x2dfd('0x116')][_0x2dfd('0x106')](db[_0x2dfd('0x6e')],{'as':_0x2dfd('0x138'),'foreignKey':_0x2dfd('0x14c')});db[_0x2dfd('0x116')]['hasMany'](db[_0x2dfd('0x72')],{'as':_0x2dfd('0x109'),'foreignKey':_0x2dfd('0x14c')});db['CmContact']['hasMany'](db[_0x2dfd('0x74')],{'as':'HopperHistories','foreignKey':_0x2dfd('0x14c')});db['CmContact'][_0x2dfd('0x106')](db[_0x2dfd('0x76')],{'as':_0x2dfd('0x76'),'foreignKey':_0x2dfd('0x14c')});db['CmContact'][_0x2dfd('0x106')](db[_0x2dfd('0xcd')],{'as':_0x2dfd('0x139'),'foreignKey':_0x2dfd('0x14c')});db[_0x2dfd('0x116')]['hasMany'](db[_0x2dfd('0x5b')],{'as':_0x2dfd('0x10b'),'foreignKey':_0x2dfd('0x14c'),'onDelete':_0x2dfd('0x166')});db['CmContact'][_0x2dfd('0x106')](db[_0x2dfd('0x64')],{'as':_0x2dfd('0x10c'),'foreignKey':'ContactId','onDelete':_0x2dfd('0x166')});db[_0x2dfd('0x116')][_0x2dfd('0x106')](db[_0x2dfd('0x54')],{'as':_0x2dfd('0x10d'),'foreignKey':_0x2dfd('0x14c'),'onDelete':_0x2dfd('0x166')});db[_0x2dfd('0x116')]['hasMany'](db[_0x2dfd('0x4b')],{'as':_0x2dfd('0x11c'),'foreignKey':_0x2dfd('0x14c'),'onDelete':'restrict'});db[_0x2dfd('0x116')]['hasMany'](db[_0x2dfd('0x3e')],{'as':_0x2dfd('0x11b'),'foreignKey':_0x2dfd('0x14c'),'onDelete':_0x2dfd('0x166')});db[_0x2dfd('0x116')][_0x2dfd('0x111')](db[_0x2dfd('0x6c')],{'as':_0x2dfd('0x185'),'foreignKey':'CompanyId'});db['CmContact'][_0x2dfd('0x111')](db[_0x2dfd('0xe9')],{'as':'List','foreignKey':_0x2dfd('0x155'),'onDelete':_0x2dfd('0x102')});db[_0x2dfd('0x116')][_0x2dfd('0x113')](db[_0x2dfd('0x13')],{'as':_0x2dfd('0x16f'),'through':_0x2dfd('0x186')});db['CmContact'][_0x2dfd('0x113')](db[_0x2dfd('0x8b')],{'as':_0x2dfd('0x15f'),'through':_0x2dfd('0x187')});db[_0x2dfd('0x116')][_0x2dfd('0x113')](db[_0x2dfd('0x8b')],{'through':_0x2dfd('0x187'),'as':'ThroughTags'});db['CmHopper'][_0x2dfd('0x111')](db[_0x2dfd('0x116')],{'as':_0x2dfd('0x14b'),'foreignKey':_0x2dfd('0x14c'),'onDelete':'cascade'});db[_0x2dfd('0x6e')][_0x2dfd('0x111')](db['CmList'],{'as':_0x2dfd('0x154'),'foreignKey':_0x2dfd('0x155'),'onDelete':_0x2dfd('0x102')});db['CmHopper'][_0x2dfd('0x111')](db['User'],{'as':'Agent','foreignKey':_0x2dfd('0x103')});db[_0x2dfd('0x6e')][_0x2dfd('0x111')](db[_0x2dfd('0x1c')],{'as':_0x2dfd('0x17f'),'foreignKey':_0x2dfd('0x137'),'onDelete':_0x2dfd('0x102')});db[_0x2dfd('0x6e')][_0x2dfd('0x111')](db['Campaign'],{'as':'Campaign','foreignKey':_0x2dfd('0x188'),'onDelete':_0x2dfd('0x102')});db[_0x2dfd('0x6e')]['belongsTo'](db[_0x2dfd('0x13')],{'as':'Owner','foreignKey':_0x2dfd('0x189')});db['CmHopperBlack'][_0x2dfd('0x111')](db[_0x2dfd('0x116')],{'as':_0x2dfd('0x14b'),'foreignKey':_0x2dfd('0x14c'),'onDelete':'cascade'});db['CmHopperBlack']['belongsTo'](db['CmList'],{'as':_0x2dfd('0x154'),'foreignKey':_0x2dfd('0x155'),'onDelete':_0x2dfd('0x102')});db['CmHopperBlack'][_0x2dfd('0x111')](db['VoiceQueue'],{'as':'Queue','foreignKey':'VoiceQueueId','onDelete':_0x2dfd('0x102')});db[_0x2dfd('0x70')][_0x2dfd('0x111')](db[_0x2dfd('0x18a')],{'as':_0x2dfd('0x18a'),'foreignKey':_0x2dfd('0x188'),'onDelete':_0x2dfd('0x102')});db['Automation'][_0x2dfd('0x106')](db[_0x2dfd('0x18b')],{'as':{'plural':_0x2dfd('0x18c'),'singular':'OneAll'},'foreignKey':_0x2dfd('0x18d'),'onDelete':_0x2dfd('0x102'),'hooks':!![]});db['Automation']['hasMany'](db[_0x2dfd('0x18b')],{'as':{'plural':_0x2dfd('0x18e'),'singular':'OneAny'},'foreignKey':'AutomationAnyId','onDelete':'cascade','hooks':!![]});db[_0x2dfd('0x18f')][_0x2dfd('0x106')](db[_0x2dfd('0x78')],{'as':_0x2dfd('0x190'),'foreignKey':_0x2dfd('0x191'),'onDelete':_0x2dfd('0x102'),'hooks':!![]});db[_0x2dfd('0x7d')]['hasMany'](db['Disposition'],{'as':_0x2dfd('0x152'),'foreignKey':_0x2dfd('0x192'),'onDelete':_0x2dfd('0x102')});db['Interval'][_0x2dfd('0x106')](db[_0x2dfd('0x80')],{'as':_0x2dfd('0x193'),'foreignKey':_0x2dfd('0x13c'),'onDelete':_0x2dfd('0x102'),'hooks':!![],'required':![]});db[_0x2dfd('0x80')][_0x2dfd('0x106')](db['VoiceExtension'],{'as':_0x2dfd('0x108'),'foreignKey':_0x2dfd('0x13c'),'onDelete':_0x2dfd('0x166')});db[_0x2dfd('0x80')][_0x2dfd('0x106')](db['MailApplication'],{'as':_0x2dfd('0x194'),'foreignKey':'IntervalId'});db[_0x2dfd('0x80')][_0x2dfd('0x106')](db[_0x2dfd('0x62')],{'as':_0x2dfd('0x195'),'foreignKey':_0x2dfd('0x13c')});db[_0x2dfd('0x80')][_0x2dfd('0x106')](db[_0x2dfd('0x49')],{'as':_0x2dfd('0x196'),'foreignKey':_0x2dfd('0x13c')});db[_0x2dfd('0x80')]['hasMany'](db[_0x2dfd('0x53')],{'as':'SmsApplications','foreignKey':_0x2dfd('0x13c')});db[_0x2dfd('0x88')][_0x2dfd('0x111')](db[_0x2dfd('0x14e')],{});db[_0x2dfd('0x88')]['belongsTo'](db[_0x2dfd('0x97')],{'foreignKey':_0x2dfd('0x197')});db[_0x2dfd('0x88')]['belongsTo'](db[_0x2dfd('0x96')],{'foreignKey':_0x2dfd('0x198')});db[_0x2dfd('0x8a')][_0x2dfd('0x113')](db['VoiceMusicOnHold'],{'as':_0x2dfd('0x199'),'through':'moh_has_sounds','onDelete':_0x2dfd('0x166')});db['Tag'][_0x2dfd('0x113')](db[_0x2dfd('0x116')],{'through':'cm_contact_has_tags'});db[_0x2dfd('0x8b')][_0x2dfd('0x113')](db['ChatInteraction'],{'through':_0x2dfd('0x19a')});db['Tag'][_0x2dfd('0x113')](db[_0x2dfd('0x3e')],{'through':_0x2dfd('0x15e')});db[_0x2dfd('0x8b')][_0x2dfd('0x113')](db[_0x2dfd('0x54')],{'through':'sms_interaction_has_tags'});db['Tag']['belongsToMany'](db['FaxInteraction'],{'through':_0x2dfd('0x16e')});db['Tag'][_0x2dfd('0x113')](db[_0x2dfd('0x5b')],{'through':_0x2dfd('0x178')});db[_0x2dfd('0x8b')][_0x2dfd('0x113')](db[_0x2dfd('0xf5')],{'through':'whatsapp_interaction_has_tags'});db[_0x2dfd('0x8f')][_0x2dfd('0x106')](db['Condition'],{'as':{'plural':_0x2dfd('0x19b'),'singular':_0x2dfd('0x19c')},'foreignKey':_0x2dfd('0x19d'),'onDelete':_0x2dfd('0x102'),'hooks':!![]});db[_0x2dfd('0x8f')]['hasMany'](db[_0x2dfd('0x18b')],{'as':{'plural':'AnyConditions','singular':_0x2dfd('0x19e')},'foreignKey':_0x2dfd('0x19f'),'onDelete':_0x2dfd('0x102'),'hooks':!![]});db['Trigger'][_0x2dfd('0x106')](db[_0x2dfd('0x78')],{'as':'Actions','foreignKey':_0x2dfd('0x1a0'),'onDelete':_0x2dfd('0x102'),'hooks':!![]});db[_0x2dfd('0x96')][_0x2dfd('0x106')](db[_0x2dfd('0x1a1')],{'as':'Fields','onDelete':_0x2dfd('0x102'),'foreignKey':_0x2dfd('0x198'),'hooks':!![]});db[_0x2dfd('0x97')]['hasMany'](db[_0x2dfd('0x1a1')],{'as':_0x2dfd('0x1a2'),'onDelete':_0x2dfd('0x102'),'foreignKey':_0x2dfd('0x197')});db[_0x2dfd('0x1a3')][_0x2dfd('0x106')](db[_0x2dfd('0x1a1')],{'as':_0x2dfd('0x1a2'),'onDelete':_0x2dfd('0x102'),'foreignKey':_0x2dfd('0x1a4')});db[_0x2dfd('0x1a1')][_0x2dfd('0x111')](db[_0x2dfd('0x1a3')],{'foreignKey':_0x2dfd('0x1a4')});db['SalesforceAccount']['hasMany'](db[_0x2dfd('0x9e')],{'as':_0x2dfd('0x1a5'),'onDelete':_0x2dfd('0x102'),'foreignKey':'AccountId'});db[_0x2dfd('0x9e')][_0x2dfd('0x106')](db[_0x2dfd('0x1a6')],{'as':_0x2dfd('0x1a7'),'onDelete':'cascade','foreignKey':'SubjectId'});db[_0x2dfd('0x9e')][_0x2dfd('0x106')](db[_0x2dfd('0x1a6')],{'as':_0x2dfd('0x1a8'),'onDelete':_0x2dfd('0x102'),'foreignKey':_0x2dfd('0x1a9')});db[_0x2dfd('0x9e')][_0x2dfd('0x106')](db[_0x2dfd('0x1a6')],{'as':_0x2dfd('0x1a2'),'onDelete':_0x2dfd('0x102'),'foreignKey':_0x2dfd('0x1aa')});db[_0x2dfd('0x9e')][_0x2dfd('0x111')](db[_0x2dfd('0x9c')],{'as':_0x2dfd('0x15c'),'foreignKey':_0x2dfd('0x1ab')});db[_0x2dfd('0x1a6')][_0x2dfd('0x106')](db[_0x2dfd('0x1a6')],{'as':'Subject','foreignKey':_0x2dfd('0x1ac')});db['SalesforceField'][_0x2dfd('0x106')](db['SalesforceField'],{'as':'Description','foreignKey':_0x2dfd('0x1a9')});db['SalesforceField'][_0x2dfd('0x106')](db[_0x2dfd('0x1a6')],{'as':_0x2dfd('0x1ad'),'foreignKey':_0x2dfd('0x1aa')});db[_0x2dfd('0x1a6')][_0x2dfd('0x111')](db['Variable'],{'as':_0x2dfd('0x91'),'foreignKey':'VariableId'});db[_0x2dfd('0xa0')]['hasMany'](db['SugarcrmConfiguration'],{'as':'Configurations','onDelete':_0x2dfd('0x102'),'foreignKey':_0x2dfd('0x1ab')});db[_0x2dfd('0xa1')][_0x2dfd('0x106')](db[_0x2dfd('0xa3')],{'as':_0x2dfd('0x1a7'),'onDelete':_0x2dfd('0x102'),'foreignKey':_0x2dfd('0x1ac')});db['SugarcrmConfiguration']['hasMany'](db['SugarcrmField'],{'as':_0x2dfd('0x1a8'),'onDelete':_0x2dfd('0x102'),'foreignKey':'DescriptionId'});db[_0x2dfd('0xa1')][_0x2dfd('0x106')](db['SugarcrmField'],{'as':_0x2dfd('0x1a2'),'onDelete':_0x2dfd('0x102'),'foreignKey':_0x2dfd('0x1aa')});db[_0x2dfd('0xa1')][_0x2dfd('0x111')](db[_0x2dfd('0xa0')],{'as':_0x2dfd('0x15c'),'foreignKey':_0x2dfd('0x1ab')});db[_0x2dfd('0xa3')][_0x2dfd('0x106')](db[_0x2dfd('0xa3')],{'as':_0x2dfd('0x1ae'),'foreignKey':_0x2dfd('0x1ac')});db[_0x2dfd('0xa3')]['hasMany'](db[_0x2dfd('0xa3')],{'as':'Description','foreignKey':'DescriptionId'});db[_0x2dfd('0xa3')][_0x2dfd('0x106')](db[_0x2dfd('0xa3')],{'as':'Field','foreignKey':_0x2dfd('0x1aa')});db['SugarcrmField']['belongsTo'](db[_0x2dfd('0x91')],{'as':_0x2dfd('0x91'),'foreignKey':_0x2dfd('0x1af')});db['DeskAccount'][_0x2dfd('0x106')](db['DeskConfiguration'],{'as':_0x2dfd('0x1a5'),'onDelete':_0x2dfd('0x102'),'foreignKey':_0x2dfd('0x1ab')});db['DeskConfiguration'][_0x2dfd('0x106')](db[_0x2dfd('0xa7')],{'as':_0x2dfd('0x1a7'),'onDelete':_0x2dfd('0x102'),'foreignKey':_0x2dfd('0x1ac')});db[_0x2dfd('0x1b0')][_0x2dfd('0x106')](db[_0x2dfd('0xa7')],{'as':'Descriptions','onDelete':_0x2dfd('0x102'),'foreignKey':'DescriptionId'});db[_0x2dfd('0x1b0')][_0x2dfd('0x106')](db[_0x2dfd('0xa7')],{'as':_0x2dfd('0x1a2'),'onDelete':_0x2dfd('0x102'),'foreignKey':'FieldId'});db['DeskConfiguration'][_0x2dfd('0x111')](db[_0x2dfd('0xa5')],{'as':_0x2dfd('0x15c'),'foreignKey':_0x2dfd('0x1ab')});db[_0x2dfd('0x1b0')]['belongsToMany'](db['Tag'],{'through':_0x2dfd('0x1b1')});db['DeskField'][_0x2dfd('0x106')](db[_0x2dfd('0xa7')],{'as':_0x2dfd('0x1ae'),'foreignKey':_0x2dfd('0x1ac')});db[_0x2dfd('0xa7')]['hasMany'](db[_0x2dfd('0xa7')],{'as':'Description','foreignKey':'DescriptionId'});db[_0x2dfd('0xa7')][_0x2dfd('0x106')](db['DeskField'],{'as':_0x2dfd('0x1ad'),'foreignKey':_0x2dfd('0x1aa')});db[_0x2dfd('0xa7')][_0x2dfd('0x111')](db[_0x2dfd('0x91')],{'as':_0x2dfd('0x91'),'foreignKey':_0x2dfd('0x1af')});db['ZohoAccount'][_0x2dfd('0x106')](db[_0x2dfd('0xaa')],{'as':_0x2dfd('0x1a5'),'onDelete':_0x2dfd('0x102'),'foreignKey':_0x2dfd('0x1ab')});db['ZohoConfiguration'][_0x2dfd('0x106')](db[_0x2dfd('0x1b2')],{'as':'Subjects','onDelete':_0x2dfd('0x102'),'foreignKey':'SubjectId'});db[_0x2dfd('0xaa')][_0x2dfd('0x106')](db[_0x2dfd('0x1b2')],{'as':_0x2dfd('0x1a8'),'onDelete':'cascade','foreignKey':'DescriptionId'});db[_0x2dfd('0xaa')]['hasMany'](db[_0x2dfd('0x1b2')],{'as':_0x2dfd('0x1a2'),'onDelete':_0x2dfd('0x102'),'foreignKey':'FieldId'});db[_0x2dfd('0xaa')][_0x2dfd('0x111')](db['ZohoAccount'],{'as':_0x2dfd('0x15c'),'foreignKey':_0x2dfd('0x1ab')});db[_0x2dfd('0x1b2')]['hasMany'](db[_0x2dfd('0x1b2')],{'as':_0x2dfd('0x1ae'),'foreignKey':_0x2dfd('0x1ac')});db[_0x2dfd('0x1b2')][_0x2dfd('0x106')](db['ZohoField'],{'as':'Description','foreignKey':'DescriptionId'});db[_0x2dfd('0x1b2')][_0x2dfd('0x106')](db[_0x2dfd('0x1b2')],{'as':_0x2dfd('0x1ad'),'foreignKey':_0x2dfd('0x1aa')});db[_0x2dfd('0x1b2')][_0x2dfd('0x111')](db['Variable'],{'as':_0x2dfd('0x91'),'foreignKey':'VariableId'});db['ZendeskAccount'][_0x2dfd('0x106')](db[_0x2dfd('0xae')],{'as':_0x2dfd('0x1a5'),'onDelete':_0x2dfd('0x102'),'foreignKey':_0x2dfd('0x1ab')});db[_0x2dfd('0xae')][_0x2dfd('0x106')](db[_0x2dfd('0xb0')],{'as':_0x2dfd('0x1a7'),'foreignKey':_0x2dfd('0x1ac')});db[_0x2dfd('0xae')]['hasMany'](db[_0x2dfd('0xb0')],{'as':_0x2dfd('0x1a8'),'foreignKey':_0x2dfd('0x1a9')});db['ZendeskConfiguration'][_0x2dfd('0x106')](db[_0x2dfd('0xb0')],{'as':_0x2dfd('0x1a2'),'foreignKey':_0x2dfd('0x1aa')});db[_0x2dfd('0xae')][_0x2dfd('0x111')](db[_0x2dfd('0x1b3')],{'as':_0x2dfd('0x15c'),'foreignKey':_0x2dfd('0x1ab')});db[_0x2dfd('0xae')]['belongsToMany'](db[_0x2dfd('0x8b')],{'through':'int_zendesk_configuration_has_tags'});db['ZendeskField']['hasMany'](db[_0x2dfd('0xb0')],{'as':_0x2dfd('0x1ae'),'foreignKey':'SubjectId'});db[_0x2dfd('0xb0')][_0x2dfd('0x106')](db[_0x2dfd('0xb0')],{'as':'Description','foreignKey':_0x2dfd('0x1a9')});db[_0x2dfd('0xb0')]['hasMany'](db['ZendeskField'],{'as':_0x2dfd('0x1ad'),'foreignKey':_0x2dfd('0x1aa')});db[_0x2dfd('0xb0')][_0x2dfd('0x111')](db[_0x2dfd('0x91')],{'as':'Variable','foreignKey':_0x2dfd('0x1af')});db['FreshdeskAccount'][_0x2dfd('0x106')](db[_0x2dfd('0x1b4')],{'as':_0x2dfd('0x1a5'),'onDelete':'cascade','foreignKey':_0x2dfd('0x1ab')});db[_0x2dfd('0x1b4')][_0x2dfd('0x106')](db[_0x2dfd('0x1b5')],{'as':_0x2dfd('0x1a7'),'onDelete':_0x2dfd('0x102'),'foreignKey':'SubjectId'});db[_0x2dfd('0x1b4')][_0x2dfd('0x106')](db['FreshdeskField'],{'as':_0x2dfd('0x1a8'),'onDelete':'cascade','foreignKey':_0x2dfd('0x1a9')});db['FreshdeskConfiguration'][_0x2dfd('0x106')](db[_0x2dfd('0x1b5')],{'as':_0x2dfd('0x1a2'),'onDelete':_0x2dfd('0x102'),'foreignKey':'FieldId'});db[_0x2dfd('0x1b4')][_0x2dfd('0x111')](db[_0x2dfd('0xb2')],{'as':_0x2dfd('0x15c'),'foreignKey':_0x2dfd('0x1ab')});db[_0x2dfd('0x1b4')]['belongsToMany'](db[_0x2dfd('0x8b')],{'through':_0x2dfd('0x1b6')});db[_0x2dfd('0x1b5')][_0x2dfd('0x106')](db['FreshdeskField'],{'as':_0x2dfd('0x1ae'),'foreignKey':'SubjectId'});db[_0x2dfd('0x1b5')]['hasMany'](db[_0x2dfd('0x1b5')],{'as':_0x2dfd('0x1b7'),'foreignKey':_0x2dfd('0x1a9')});db[_0x2dfd('0x1b5')][_0x2dfd('0x106')](db['FreshdeskField'],{'as':_0x2dfd('0x1ad'),'foreignKey':_0x2dfd('0x1aa')});db[_0x2dfd('0x1b5')]['belongsTo'](db[_0x2dfd('0x91')],{'as':_0x2dfd('0x91'),'foreignKey':'VariableId'});db[_0x2dfd('0xb6')]['hasMany'](db[_0x2dfd('0x1b8')],{'as':_0x2dfd('0x1a5'),'onDelete':'cascade','foreignKey':'AccountId'});db['VtigerConfiguration'][_0x2dfd('0x106')](db[_0x2dfd('0xb9')],{'as':_0x2dfd('0x1a7'),'foreignKey':_0x2dfd('0x1ac')});db[_0x2dfd('0x1b8')][_0x2dfd('0x106')](db[_0x2dfd('0xb9')],{'as':_0x2dfd('0x1a8'),'foreignKey':_0x2dfd('0x1a9')});db['VtigerConfiguration'][_0x2dfd('0x106')](db[_0x2dfd('0xb9')],{'as':_0x2dfd('0x1a2'),'foreignKey':_0x2dfd('0x1aa')});db[_0x2dfd('0x1b8')][_0x2dfd('0x111')](db[_0x2dfd('0xb6')],{'as':'Account','foreignKey':_0x2dfd('0x1ab')});db[_0x2dfd('0xb9')][_0x2dfd('0x106')](db[_0x2dfd('0xb9')],{'as':_0x2dfd('0x1ae'),'foreignKey':_0x2dfd('0x1ac')});db['VtigerField']['hasMany'](db[_0x2dfd('0xb9')],{'as':_0x2dfd('0x1b7'),'foreignKey':_0x2dfd('0x1a9')});db[_0x2dfd('0xb9')][_0x2dfd('0x106')](db[_0x2dfd('0xb9')],{'as':_0x2dfd('0x1ad'),'foreignKey':'FieldId'});db[_0x2dfd('0xb9')][_0x2dfd('0x111')](db['Variable'],{'as':_0x2dfd('0x91'),'foreignKey':'VariableId'});db[_0x2dfd('0x1b9')][_0x2dfd('0x106')](db[_0x2dfd('0xbc')],{'as':'Configurations','onDelete':_0x2dfd('0x102'),'foreignKey':_0x2dfd('0x1ab')});db[_0x2dfd('0xbc')][_0x2dfd('0x106')](db[_0x2dfd('0x1ba')],{'as':_0x2dfd('0x1a7'),'foreignKey':_0x2dfd('0x1ac')});db[_0x2dfd('0xbc')]['hasMany'](db[_0x2dfd('0x1ba')],{'as':_0x2dfd('0x1a8'),'foreignKey':_0x2dfd('0x1a9')});db[_0x2dfd('0xbc')][_0x2dfd('0x106')](db['ServicenowField'],{'as':_0x2dfd('0x1a2'),'foreignKey':_0x2dfd('0x1aa')});db['ServicenowConfiguration']['belongsTo'](db[_0x2dfd('0x1b9')],{'as':'Account','foreignKey':_0x2dfd('0x1ab')});db[_0x2dfd('0x1ba')][_0x2dfd('0x106')](db[_0x2dfd('0x1ba')],{'as':_0x2dfd('0x1ae'),'foreignKey':_0x2dfd('0x1ac')});db[_0x2dfd('0x1ba')][_0x2dfd('0x106')](db['ServicenowField'],{'as':_0x2dfd('0x1b7'),'foreignKey':_0x2dfd('0x1a9')});db['ServicenowField']['hasMany'](db[_0x2dfd('0x1ba')],{'as':_0x2dfd('0x1ad'),'foreignKey':'FieldId'});db[_0x2dfd('0x1ba')][_0x2dfd('0x111')](db[_0x2dfd('0x91')],{'as':_0x2dfd('0x91'),'foreignKey':'VariableId'});db[_0x2dfd('0xbe')]['hasMany'](db[_0x2dfd('0xbf')],{'as':_0x2dfd('0x1a5'),'onDelete':_0x2dfd('0x102'),'foreignKey':_0x2dfd('0x1ab')});db[_0x2dfd('0xbf')]['hasMany'](db[_0x2dfd('0xc1')],{'as':_0x2dfd('0x1a7'),'onDelete':'cascade','foreignKey':_0x2dfd('0x1ac')});db[_0x2dfd('0xbf')][_0x2dfd('0x106')](db[_0x2dfd('0xc1')],{'as':_0x2dfd('0x1a8'),'onDelete':'cascade','foreignKey':_0x2dfd('0x1a9')});db['Dynamics365Configuration'][_0x2dfd('0x106')](db[_0x2dfd('0xc1')],{'as':_0x2dfd('0x1a2'),'onDelete':_0x2dfd('0x102'),'foreignKey':'FieldId'});db[_0x2dfd('0xbf')][_0x2dfd('0x111')](db[_0x2dfd('0xbe')],{'as':'Account','foreignKey':'AccountId'});db['Dynamics365Field'][_0x2dfd('0x106')](db['Dynamics365Field'],{'as':_0x2dfd('0x1ae'),'foreignKey':'SubjectId'});db['Dynamics365Field'][_0x2dfd('0x106')](db[_0x2dfd('0xc1')],{'as':_0x2dfd('0x1b7'),'foreignKey':_0x2dfd('0x1a9')});db[_0x2dfd('0xc1')][_0x2dfd('0x106')](db[_0x2dfd('0xc1')],{'as':'Field','foreignKey':'FieldId'});db[_0x2dfd('0xc1')]['belongsTo'](db[_0x2dfd('0x91')],{'as':_0x2dfd('0x91'),'foreignKey':_0x2dfd('0x1af')});db[_0x2dfd('0xc2')]['hasMany'](db[_0x2dfd('0xc4')],{'as':_0x2dfd('0x1a5'),'onDelete':_0x2dfd('0x102'),'foreignKey':_0x2dfd('0x1ab')});db[_0x2dfd('0xc4')][_0x2dfd('0x106')](db[_0x2dfd('0xc6')],{'as':_0x2dfd('0x1a7'),'foreignKey':_0x2dfd('0x1ac')});db[_0x2dfd('0xc4')][_0x2dfd('0x106')](db[_0x2dfd('0xc6')],{'as':_0x2dfd('0x1a8'),'foreignKey':_0x2dfd('0x1a9')});db[_0x2dfd('0xc4')][_0x2dfd('0x106')](db[_0x2dfd('0xc6')],{'as':_0x2dfd('0x1a2'),'foreignKey':_0x2dfd('0x1aa')});db['FreshsalesConfiguration'][_0x2dfd('0x111')](db[_0x2dfd('0xc2')],{'as':_0x2dfd('0x15c'),'foreignKey':_0x2dfd('0x1ab')});db['FreshsalesField'][_0x2dfd('0x106')](db[_0x2dfd('0xc6')],{'as':_0x2dfd('0x1ae'),'foreignKey':'SubjectId'});db['FreshsalesField']['hasMany'](db[_0x2dfd('0xc6')],{'as':_0x2dfd('0x1b7'),'foreignKey':'DescriptionId'});db[_0x2dfd('0xc6')][_0x2dfd('0x106')](db[_0x2dfd('0xc6')],{'as':_0x2dfd('0x1ad'),'foreignKey':_0x2dfd('0x1aa')});db[_0x2dfd('0xc6')][_0x2dfd('0x111')](db[_0x2dfd('0x91')],{'as':_0x2dfd('0x91'),'foreignKey':_0x2dfd('0x1af')});db[_0x2dfd('0xc8')]['belongsTo'](db['ChatWebsite'],{});db[_0x2dfd('0xc8')]['belongsTo'](db[_0x2dfd('0xe9')],{'as':_0x2dfd('0x154'),'foreignKey':_0x2dfd('0x155')});db[_0x2dfd('0xc8')][_0x2dfd('0x111')](db[_0x2dfd('0x116')],{'as':_0x2dfd('0x14b'),'foreignKey':_0x2dfd('0x14c')});db[_0x2dfd('0xc8')][_0x2dfd('0x111')](db[_0x2dfd('0x64')],{});db['ChatQueueReport'][_0x2dfd('0x111')](db[_0x2dfd('0x66')],{});db[_0x2dfd('0xc8')][_0x2dfd('0x111')](db[_0x2dfd('0x13')],{});db[_0x2dfd('0xc8')][_0x2dfd('0x111')](db['ChatQueue'],{});db[_0x2dfd('0x1bb')][_0x2dfd('0x111')](db[_0x2dfd('0x13')],{'onDelete':_0x2dfd('0x102'),'foreignKey':_0x2dfd('0x1bc')});db[_0x2dfd('0x1bb')][_0x2dfd('0x111')](db[_0x2dfd('0x13')],{'onDelete':_0x2dfd('0x102'),'foreignKey':_0x2dfd('0x1bd')});db[_0x2dfd('0xcd')][_0x2dfd('0x106')](db[_0x2dfd('0xcb')],{'foreignKey':_0x2dfd('0x1be'),'onDelete':_0x2dfd('0x102')});db[_0x2dfd('0xcd')][_0x2dfd('0x106')](db[_0x2dfd('0xc9')],{'foreignKey':'SessionId','onDelete':'cascade'});db['SmsQueueReport'][_0x2dfd('0x111')](db[_0x2dfd('0x51')],{});db[_0x2dfd('0xcf')][_0x2dfd('0x111')](db[_0x2dfd('0xe9')],{'as':_0x2dfd('0x154'),'foreignKey':'ListId'});db[_0x2dfd('0xcf')][_0x2dfd('0x111')](db[_0x2dfd('0x116')],{'as':'Contact','foreignKey':_0x2dfd('0x14c')});db[_0x2dfd('0xcf')][_0x2dfd('0x111')](db['SmsInteraction'],{});db[_0x2dfd('0xcf')]['belongsTo'](db[_0x2dfd('0x56')],{});db[_0x2dfd('0xcf')][_0x2dfd('0x111')](db[_0x2dfd('0x13')],{});db[_0x2dfd('0xcf')][_0x2dfd('0x111')](db[_0x2dfd('0x58')],{});db['JscriptyProject']['hasMany'](db[_0x2dfd('0xcd')],{'foreignKey':_0x2dfd('0x1bf')});db['JscriptyProject'][_0x2dfd('0x106')](db['JscriptyQuestionReport'],{'foreignKey':_0x2dfd('0x1bf')});db['JscriptyProject'][_0x2dfd('0x106')](db[_0x2dfd('0xc9')],{'foreignKey':_0x2dfd('0x1bf')});db[_0x2dfd('0xd7')]['belongsToMany'](db['User'],{'as':_0x2dfd('0x16f'),'through':_0x2dfd('0x132')});db[_0x2dfd('0x141')][_0x2dfd('0x113')](db['User'],{'as':_0x2dfd('0x140'),'through':'user_has_teams'});db[_0x2dfd('0x141')]['belongsToMany'](db[_0x2dfd('0x1c')],{'through':_0x2dfd('0x142'),'as':_0x2dfd('0x11f')});db[_0x2dfd('0x141')][_0x2dfd('0x113')](db[_0x2dfd('0x121')],{'through':_0x2dfd('0x159'),'as':'MailQueues'});db[_0x2dfd('0x141')]['belongsToMany'](db[_0x2dfd('0x123')],{'through':_0x2dfd('0x183'),'as':_0x2dfd('0x124')});db[_0x2dfd('0x141')]['belongsToMany'](db['FaxQueue'],{'through':_0x2dfd('0x1c0'),'as':_0x2dfd('0x1c1')});db['Team'][_0x2dfd('0x113')](db[_0x2dfd('0x58')],{'through':'team_has_sms_queues','as':_0x2dfd('0x126')});db[_0x2dfd('0x141')][_0x2dfd('0x113')](db[_0x2dfd('0x5e')],{'through':_0x2dfd('0x17b'),'as':_0x2dfd('0x127')});db[_0x2dfd('0x141')][_0x2dfd('0x113')](db['WhatsappQueue'],{'through':_0x2dfd('0x1c2'),'as':_0x2dfd('0x1c3')});db[_0x2dfd('0x141')][_0x2dfd('0x113')](db[_0x2dfd('0xeb')],{'through':_0x2dfd('0xfe'),'as':'VoicePrefixes'});db[_0x2dfd('0x18a')][_0x2dfd('0x106')](db[_0x2dfd('0x6e')],{'as':_0x2dfd('0x138'),'foreignKey':'CampaignId'});db[_0x2dfd('0x18a')]['hasMany'](db['CmHopperFinal'],{'as':_0x2dfd('0x109'),'foreignKey':'CampaignId'});db[_0x2dfd('0x18a')][_0x2dfd('0x106')](db[_0x2dfd('0x74')],{'as':_0x2dfd('0x1c4'),'foreignKey':_0x2dfd('0x188')});db[_0x2dfd('0x18a')][_0x2dfd('0x106')](db[_0x2dfd('0x70')],{'as':_0x2dfd('0x1c5'),'foreignKey':_0x2dfd('0x188')});db[_0x2dfd('0x18a')][_0x2dfd('0x111')](db[_0x2dfd('0x2a')],{'as':_0x2dfd('0x2a'),'foreignKey':_0x2dfd('0x13a')});db[_0x2dfd('0x18a')][_0x2dfd('0x111')](db['Trunk'],{'as':_0x2dfd('0x1c6'),'foreignKey':_0x2dfd('0x13b')});db[_0x2dfd('0x18a')]['belongsTo'](db[_0x2dfd('0x80')],{'as':_0x2dfd('0x80'),'foreignKey':'IntervalId'});db['Campaign']['belongsTo'](db['SquareProject'],{'as':_0x2dfd('0xd7'),'foreignKey':_0x2dfd('0x1c7')});db['Campaign'][_0x2dfd('0x113')](db[_0x2dfd('0xe9')],{'as':_0x2dfd('0x118'),'through':_0x2dfd('0x1c8')});db[_0x2dfd('0x18a')][_0x2dfd('0x113')](db[_0x2dfd('0xe9')],{'as':_0x2dfd('0x143'),'through':_0x2dfd('0x1c9')});db['Attachment']['belongsTo'](db[_0x2dfd('0x164')],{'as':_0x2dfd('0x164'),'foreignKey':_0x2dfd('0x165')});db[_0x2dfd('0x1ca')][_0x2dfd('0x111')](db[_0x2dfd('0x3f')],{});db[_0x2dfd('0x1ca')]['belongsTo'](db[_0x2dfd('0x3e')],{});db[_0x2dfd('0x1ca')][_0x2dfd('0x111')](db[_0x2dfd('0x14e')],{'foreignKey':_0x2dfd('0x1cb'),'as':_0x2dfd('0x1cc')});db[_0x2dfd('0x1ca')][_0x2dfd('0x111')](db[_0x2dfd('0x13')],{'foreignKey':_0x2dfd('0x1cd'),'as':'FromAgent'});db[_0x2dfd('0x1ca')][_0x2dfd('0x111')](db[_0x2dfd('0x13')],{'foreignKey':'ToUserId','as':_0x2dfd('0x1ce')});db[_0x2dfd('0x1ca')][_0x2dfd('0x111')](db[_0x2dfd('0x121')],{'foreignKey':'ToMailQueueId','as':_0x2dfd('0x1cf')});db[_0x2dfd('0x1ca')][_0x2dfd('0x111')](db['MailAccount'],{'foreignKey':_0x2dfd('0x1d0'),'as':_0x2dfd('0x1d1')});db[_0x2dfd('0xe2')][_0x2dfd('0x111')](db[_0x2dfd('0x66')],{});db[_0x2dfd('0xe2')][_0x2dfd('0x111')](db[_0x2dfd('0x64')],{});db[_0x2dfd('0xe2')][_0x2dfd('0x111')](db['ChatWebsite'],{'foreignKey':_0x2dfd('0x1d2'),'as':_0x2dfd('0x1cc')});db['ChatTransferReport'][_0x2dfd('0x111')](db[_0x2dfd('0x13')],{'foreignKey':_0x2dfd('0x1cd'),'as':_0x2dfd('0x1d3')});db['ChatTransferReport']['belongsTo'](db[_0x2dfd('0x13')],{'foreignKey':'ToUserId','as':_0x2dfd('0x1ce')});db[_0x2dfd('0xe2')]['belongsTo'](db[_0x2dfd('0x123')],{'foreignKey':_0x2dfd('0x1d4'),'as':_0x2dfd('0x1cf')});db[_0x2dfd('0xe2')][_0x2dfd('0x111')](db[_0x2dfd('0x5f')],{'foreignKey':_0x2dfd('0x1d5'),'as':_0x2dfd('0x1d1')});db[_0x2dfd('0xe4')][_0x2dfd('0x111')](db[_0x2dfd('0x4d')],{});db[_0x2dfd('0xe4')][_0x2dfd('0x111')](db[_0x2dfd('0x4b')],{});db[_0x2dfd('0xe4')]['belongsTo'](db[_0x2dfd('0x47')],{'foreignKey':'FromFaxAccountId','as':_0x2dfd('0x1cc')});db[_0x2dfd('0xe4')][_0x2dfd('0x111')](db[_0x2dfd('0x13')],{'foreignKey':_0x2dfd('0x1cd'),'as':_0x2dfd('0x1d3')});db['FaxTransferReport'][_0x2dfd('0x111')](db['User'],{'foreignKey':'ToUserId','as':_0x2dfd('0x1ce')});db['FaxTransferReport'][_0x2dfd('0x111')](db[_0x2dfd('0x4e')],{'foreignKey':'ToFaxQueueId','as':_0x2dfd('0x1cf')});db[_0x2dfd('0xe4')][_0x2dfd('0x111')](db['FaxAccount'],{'foreignKey':'ToFaxAccountId','as':_0x2dfd('0x1d1')});db[_0x2dfd('0xe6')][_0x2dfd('0x111')](db['OpenchannelMessage'],{});db['OpenchannelTransferReport']['belongsTo'](db[_0x2dfd('0x5b')],{});db[_0x2dfd('0xe6')][_0x2dfd('0x111')](db[_0x2dfd('0x12c')],{'foreignKey':'FromOpenchannelAccountId','as':_0x2dfd('0x1cc')});db[_0x2dfd('0xe6')]['belongsTo'](db[_0x2dfd('0x13')],{'foreignKey':_0x2dfd('0x1cd'),'as':_0x2dfd('0x1d3')});db['OpenchannelTransferReport'][_0x2dfd('0x111')](db[_0x2dfd('0x13')],{'foreignKey':_0x2dfd('0x1d6'),'as':_0x2dfd('0x1ce')});db['OpenchannelTransferReport'][_0x2dfd('0x111')](db[_0x2dfd('0x5e')],{'foreignKey':_0x2dfd('0x1d7'),'as':_0x2dfd('0x1cf')});db[_0x2dfd('0xe6')][_0x2dfd('0x111')](db[_0x2dfd('0x12c')],{'foreignKey':'ToOpenchannelAccountId','as':_0x2dfd('0x1d1')});db[_0x2dfd('0xe8')][_0x2dfd('0x111')](db[_0x2dfd('0x56')],{});db[_0x2dfd('0xe8')]['belongsTo'](db[_0x2dfd('0x54')],{});db['SmsTransferReport'][_0x2dfd('0x111')](db[_0x2dfd('0x51')],{'foreignKey':_0x2dfd('0x1d8'),'as':_0x2dfd('0x1cc')});db[_0x2dfd('0xe8')]['belongsTo'](db[_0x2dfd('0x13')],{'foreignKey':'FromUserId','as':_0x2dfd('0x1d3')});db[_0x2dfd('0xe8')][_0x2dfd('0x111')](db[_0x2dfd('0x13')],{'foreignKey':_0x2dfd('0x1d6'),'as':_0x2dfd('0x1ce')});db[_0x2dfd('0xe8')][_0x2dfd('0x111')](db[_0x2dfd('0x58')],{'foreignKey':_0x2dfd('0x1d9'),'as':_0x2dfd('0x1cf')});db['SmsTransferReport'][_0x2dfd('0x111')](db[_0x2dfd('0x51')],{'foreignKey':'ToSmsAccountId','as':_0x2dfd('0x1d1')});db[_0x2dfd('0xe9')][_0x2dfd('0x106')](db[_0x2dfd('0x7d')],{'as':_0x2dfd('0x152'),'foreignKey':_0x2dfd('0x155'),'onDelete':_0x2dfd('0x102')});db[_0x2dfd('0xe9')][_0x2dfd('0x106')](db[_0x2dfd('0x1da')],{'as':'CustomFields','foreignKey':_0x2dfd('0x155')});db[_0x2dfd('0xe9')][_0x2dfd('0x106')](db['CmContact'],{'as':'Contacts','onDelete':_0x2dfd('0x102'),'foreignKey':'ListId'});db[_0x2dfd('0xe9')]['hasMany'](db[_0x2dfd('0x72')],{'as':_0x2dfd('0x109'),'foreignKey':_0x2dfd('0x155')});db[_0x2dfd('0xe9')][_0x2dfd('0x106')](db[_0x2dfd('0x74')],{'as':'HopperHistory','foreignKey':'ListId'});db['CmList'][_0x2dfd('0x106')](db[_0x2dfd('0x76')],{'as':'ReportAgentPreview','foreignKey':_0x2dfd('0x155')});db['CmList'][_0x2dfd('0x113')](db[_0x2dfd('0x1c')],{'as':_0x2dfd('0x1db'),'through':_0x2dfd('0x13f')});db[_0x2dfd('0xe9')][_0x2dfd('0x113')](db[_0x2dfd('0x13')],{'as':_0x2dfd('0x140'),'through':_0x2dfd('0x119')});db[_0x2dfd('0xeb')][_0x2dfd('0x106')](db[_0x2dfd('0x1a')],{'as':_0x2dfd('0x108'),'onDelete':_0x2dfd('0x102')});db['VoicePrefix'][_0x2dfd('0x113')](db[_0x2dfd('0x13')],{'as':'Agents','through':'UserVoicePrefix'});db[_0x2dfd('0xeb')][_0x2dfd('0x113')](db['Team'],{'through':_0x2dfd('0xfe'),'as':_0x2dfd('0x15a')});db[_0x2dfd('0xed')][_0x2dfd('0x106')](db[_0x2dfd('0x13')],{'as':'Users','foreignKey':_0x2dfd('0x112')});db[_0x2dfd('0xed')][_0x2dfd('0x106')](db['UserProfileSection'],{'as':_0x2dfd('0x1dc'),'foreignKey':_0x2dfd('0x112'),'onDelete':_0x2dfd('0x102')});db['UserProfileSection']['hasMany'](db[_0x2dfd('0x1dd')],{'as':_0x2dfd('0x1de'),'foreignKey':'sectionId','onDelete':_0x2dfd('0x102')});db[_0x2dfd('0xf1')][_0x2dfd('0x106')](db[_0x2dfd('0x7d')],{'as':_0x2dfd('0x152'),'foreignKey':_0x2dfd('0x1df'),'onDelete':_0x2dfd('0x102')});db[_0x2dfd('0xf1')][_0x2dfd('0x106')](db[_0x2dfd('0x7b')],{'as':_0x2dfd('0x169'),'foreignKey':_0x2dfd('0x1df')});db[_0x2dfd('0xf1')]['hasMany'](db[_0x2dfd('0xf7')],{'as':_0x2dfd('0x145'),'foreignKey':_0x2dfd('0x1df')});db[_0x2dfd('0xf1')][_0x2dfd('0x106')](db[_0x2dfd('0xf5')],{'as':_0x2dfd('0x153')});db['WhatsappAccount'][_0x2dfd('0x106')](db[_0x2dfd('0xf3')],{'as':'Applications'});db[_0x2dfd('0xf1')][_0x2dfd('0x111')](db[_0x2dfd('0xe9')],{'as':_0x2dfd('0x154'),'foreignKey':_0x2dfd('0x155')});db[_0x2dfd('0xf1')][_0x2dfd('0x111')](db[_0x2dfd('0x82')],{'as':_0x2dfd('0x13d'),'foreignKey':'mandatoryDispositionPauseId'});db['WhatsappAccount']['belongsToMany'](db['User'],{'as':_0x2dfd('0x140'),'through':_0x2dfd('0x131')});db[_0x2dfd('0xf3')][_0x2dfd('0x111')](db['User'],{'onDelete':_0x2dfd('0x166')});db[_0x2dfd('0xf3')]['belongsTo'](db[_0x2dfd('0xfb')],{'onDelete':_0x2dfd('0x166')});db[_0x2dfd('0xf3')][_0x2dfd('0x111')](db[_0x2dfd('0xf1')],{'onDelete':_0x2dfd('0x166')});db[_0x2dfd('0xf3')][_0x2dfd('0x111')](db[_0x2dfd('0x80')],{'onDelete':_0x2dfd('0x166'),'foreignKey':'IntervalId'});db['WhatsappApplication']['belongsTo'](db['Tag'],{'onDelete':_0x2dfd('0x166'),'foreignKey':'TagId'});db[_0x2dfd('0xf5')]['hasMany'](db[_0x2dfd('0xf7')],{'as':_0x2dfd('0x145'),'onDelete':'cascade','foreignKey':'WhatsappInteractionId'});db[_0x2dfd('0xf5')][_0x2dfd('0x111')](db[_0x2dfd('0xf1')],{'as':'Account','foreignKey':_0x2dfd('0x1df')});db[_0x2dfd('0xf5')][_0x2dfd('0x111')](db['CmContact'],{'as':_0x2dfd('0x14b'),'foreignKey':'ContactId'});db[_0x2dfd('0xf5')][_0x2dfd('0x111')](db[_0x2dfd('0x13')],{'as':'Owner','foreignKey':_0x2dfd('0x103')});db[_0x2dfd('0xf5')][_0x2dfd('0x113')](db[_0x2dfd('0x8b')],{'through':_0x2dfd('0x1e0'),'as':_0x2dfd('0x15f')});db[_0x2dfd('0xf5')]['belongsToMany'](db[_0x2dfd('0x8b')],{'through':_0x2dfd('0x1e0'),'as':_0x2dfd('0x160')});db['WhatsappInteraction'][_0x2dfd('0x113')](db[_0x2dfd('0x13')],{'as':_0x2dfd('0x16f'),'through':_0x2dfd('0x1e1'),'foreignKey':_0x2dfd('0x1e2')});db[_0x2dfd('0xf7')][_0x2dfd('0x111')](db[_0x2dfd('0x13')],{'as':'User'});db[_0x2dfd('0xf7')][_0x2dfd('0x111')](db[_0x2dfd('0x116')],{'onDelete':'cascade','as':_0x2dfd('0x14b')});db[_0x2dfd('0xf7')][_0x2dfd('0x111')](db[_0x2dfd('0xf5')],{'onDelete':_0x2dfd('0x102'),'as':_0x2dfd('0x163'),'foreignKey':'WhatsappInteractionId'});db[_0x2dfd('0xf7')][_0x2dfd('0x111')](db['WhatsappAccount'],{'as':'Account','foreignKey':_0x2dfd('0x1df')});db[_0x2dfd('0x1e3')]['belongsTo'](db[_0x2dfd('0xf1')],{});db['WhatsappQueueReport'][_0x2dfd('0x111')](db[_0x2dfd('0xe9')],{'as':'List','foreignKey':_0x2dfd('0x155')});db[_0x2dfd('0x1e3')][_0x2dfd('0x111')](db['CmContact'],{'as':_0x2dfd('0x14b'),'foreignKey':_0x2dfd('0x14c')});db[_0x2dfd('0x1e3')][_0x2dfd('0x111')](db['WhatsappInteraction'],{});db['WhatsappQueueReport']['belongsTo'](db[_0x2dfd('0xfb')],{});db['WhatsappQueueReport'][_0x2dfd('0x111')](db[_0x2dfd('0xf7')],{});db[_0x2dfd('0x1e3')][_0x2dfd('0x111')](db[_0x2dfd('0x13')],{});db[_0x2dfd('0xfa')][_0x2dfd('0x111')](db[_0x2dfd('0xf7')],{});db[_0x2dfd('0xfa')][_0x2dfd('0x111')](db['WhatsappInteraction'],{});db[_0x2dfd('0xfa')]['belongsTo'](db['WhatsappAccount'],{'foreignKey':_0x2dfd('0x1e4'),'as':_0x2dfd('0x1cc')});db[_0x2dfd('0xfa')][_0x2dfd('0x111')](db[_0x2dfd('0xf1')],{'foreignKey':_0x2dfd('0x1e5'),'as':_0x2dfd('0x1d1')});db['WhatsappTransferReport'][_0x2dfd('0x111')](db[_0x2dfd('0xfb')],{'foreignKey':'ToQueueId','as':'ToQueue'});db[_0x2dfd('0xfa')][_0x2dfd('0x111')](db[_0x2dfd('0x13')],{'foreignKey':_0x2dfd('0x1cd'),'as':_0x2dfd('0x1d3')});db[_0x2dfd('0xfa')][_0x2dfd('0x111')](db[_0x2dfd('0x13')],{'foreignKey':_0x2dfd('0x1d6'),'as':_0x2dfd('0x1ce')});db[_0x2dfd('0xfb')]['belongsToMany'](db[_0x2dfd('0x13')],{'as':_0x2dfd('0x140'),'through':_0x2dfd('0x38'),'foreignKey':_0x2dfd('0x1e6')});db[_0x2dfd('0xfb')]['belongsToMany'](db['Team'],{'through':_0x2dfd('0x1c2'),'as':'Teams'});module['exports']={'db':db,'dbH':dbH};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4d01=['lodash','path','express','express-winston','util','./errors','./config/environment','./config/logger','default','logger','%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s','\x20body=%s','body','format','method','headers','x-forwarded-for','url','responseTime','user','role','inspect','use','%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s\x20device=%s','%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s\x20device=%s\x20(id=%s\x20name=%s)','connection','statusCode','name','device','other','agent_id','agent_name','test','/api/users','./api/user','/api/voice/chanspy','/api/voice/contexts','./api/voiceExtension','/api/voice/mohs','./api/voiceMusicOnHold','./api/voiceQueue','./api/voiceRecording','/api/screen/recordings','./api/screenRecording','/api/voice/mails','./api/voiceMail','/api/voice/mails/messages','./api/voiceMailMessage','/api/voice/calls/reports','./api/voiceCallReport','/api/voice/dials/reports','./api/voiceDialReport','/api/voice/agents/reports','./api/voiceAgentReport','/api/voice/queues/reports','./api/voiceQueueReport','./api/trunk','./api/voiceTransferReport','./api/mailServerOut','/api/mail/accounts','./api/mailAccount','/api/mail/queues','./api/mailQueue','./api/mailSubstatus','./api/mailMessage','/api/mail/applications','./api/mailApplication','/api/mail/reports/queue','./api/mailQueueReport','./api/dashboardItem','/api/fax/accounts','./api/faxAccount','/api/fax/messages','./api/faxMessage','/api/fax/queues','/api/fax/reports/queue','./api/faxQueueReport','/api/sms/accounts','./api/smsAccount','./api/smsApplication','/api/sms/interactions','./api/smsInteraction','/api/sms/messages','./api/smsMessage','/api/sms/queues','./api/smsQueue','./api/openchannelAccount','./api/openchannelApplication','/api/openchannel/interactions','./api/openchannelInteraction','./api/openchannelMessage','/api/openchannel/queues','./api/openchannelQueue','/api/chat/websites','./api/chatWebsite','/api/openchannel/reports/queue','./api/openchannelQueueReport','/api/chat/applications','./api/chatApplication','/api/chat/interactions','./api/chatInteraction','/api/chat/messages','/api/chat/offline_messages','./api/chatOfflineMessage','/api/chat/groups','./api/chatGroup','/api/chat/proactive_actions','./api/chatProactiveAction','./api/cmCompany','/api/cm/contacts','./api/cmContact','./api/cmHopper','/api/cm/hopper_black','./api/cmHopperBlack','./api/cmHopperFinal','/api/cm/hopper_history','./api/cmHopperHistory','/api/cm/custom_fields','./api/cmCustomField','/api/actions','/api/automations','/api/canned_answers','/api/dispositions','./api/disposition','/api/conditions','./api/condition','./api/interval','/api/pauses','./api/pause','/api/cdr','./api/cdr','/api/voiceQueuesLog','./api/voiceQueuesLog','/api/schedules','/api/sounds','./api/sound','/api/tags','./api/tag','/api/triggers','/api/variables','./api/variable','/api/integrations','./api/integration','/api/integrations/reports','./api/integrationReport','/api/analytics/custom_reports','./api/analyticCustomReport','./api/analyticExtractedReport','/api/analytics/metrics','./api/analyticMetric','/api/analytics/field_reports','./api/analyticFieldReport','/api/analytics/tree_reports','./api/analyticTreeReport','/api/integrations/salesforce/accounts','./api/intSalesforceAccount','/api/integrations/salesforce/configurations','./api/intSalesforceConfiguration','/api/integrations/salesforce/fields','./api/intSalesforceField','/api/integrations/sugarcrm/accounts','./api/intSugarcrmAccount','/api/integrations/sugarcrm/configurations','./api/intSugarcrmConfiguration','./api/intSugarcrmField','/api/integrations/desk/accounts','./api/intDeskAccount','/api/integrations/desk/configurations','./api/intDeskConfiguration','/api/integrations/desk/fields','./api/intDeskField','/api/integrations/zoho/accounts','./api/intZohoAccount','/api/integrations/zoho/configurations','./api/intZohoConfiguration','/api/integrations/zoho/fields','/api/integrations/zendesk/accounts','./api/intZendeskAccount','/api/integrations/zendesk/configurations','/api/integrations/zendesk/fields','./api/intFreshdeskAccount','/api/integrations/freshdesk/configurations','/api/integrations/freshdesk/fields','./api/intFreshdeskField','/api/integrations/vtiger/accounts','./api/intVtigerAccount','/api/integrations/vtiger/configurations','/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/intDynamics365Account','./api/intDynamics365Field','/api/integrations/freshsales/accounts','./api/intFreshsalesAccount','/api/integrations/freshsales/configurations','./api/intFreshsalesConfiguration','./api/intFreshsalesField','./api/network','./api/chatQueueReport','/api/chat/internal/messages','./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/squareReportDetail','/api/jscripty/projects','./api/setting','/api/square/odbc','./api/squareOdbc','/api/square/projects','./api/squareRecording','/api/square/messages','./api/squareMessage','/api/teams','./api/team','/api/license','./api/license','/api/campaigns','/api/migrations','./api/migration','/api/plugins','./api/plugin','/api/mail/reports/transfer','./api/mailTransferReport','/api/fax/reports/transfer','./api/faxTransferReport','/api/openchannel/reports/transfer','./api/openchannelTransferReport','/api/sms/reports/transfer','./api/smsTransferReport','./api/voicePrefix','/api/userProfiles','./api/userProfile','/api/userProfile/sections','./api/userProfileSection','./api/userProfileResource','/api/userNotifications','./api/userNotification','/api/whatsapp/accounts','./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/cloudProviders','./api/cloudProvider','/api/realtime','./api/realtime','/api/auth/local','./api/authLocal','/api/auth/google','./api/authGoogle','/api/jira','./api/jira','/api/rpc','./api/rpc','./api/pm2','/api/webbar','./api/webbar','/apidoc','static','join','root','/www','/demo','/snippet','snippet','/plugins','/server/files/plugins','get','sendFile','resolve','appPath','/index.html','password','newPassword','apiKey','firstName','lastName','street','mobile','fax','email','clientId','clientSecret','securityToken','code','tenantId','accessTokenSecret','authToken','consumerKey','membername','calleridname','calleridnum','exten','vidaooApiKey','clientEmail','accesskeyid','secretaccesskey','pass','localstationid','dsn','secret','registry','oldPassword','isPlainObject','isArray','isString','replace','@@{','}@@','includes'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0x4d01,0x148));var _0x14d0=function(_0x146484,_0x27a7f0){_0x146484=_0x146484-0x0;var _0x4c7aa3=_0x4d01[_0x146484];return _0x4c7aa3;};'use strict';var _=require(_0x14d0('0x0'));var path=require(_0x14d0('0x1'));var express=require(_0x14d0('0x2'));var ewinston=require(_0x14d0('0x3'));var util=require(_0x14d0('0x4'));var errors=require(_0x14d0('0x5'));var config=require(_0x14d0('0x6'));var logger=require('./config/logger')('api');var authLogger=require(_0x14d0('0x7'))('auth');exports[_0x14d0('0x8')]=function(_0x564dcf){_0x564dcf['use'](ewinston[_0x14d0('0x9')]({'winstonInstance':logger,'meta':![],'statusLevels':!![],'msg':function(_0x3d3a14,_0x4d2952){var _0x28a391=_0x14d0('0xa');if(!_['isEmpty'](_0x3d3a14['body'])){_0x28a391+=_0x14d0('0xb');var _0x2d5cdd=_0x3d3a14[_0x14d0('0xc')];maskSensitiveData(_0x2d5cdd);}return util[_0x14d0('0xd')](_0x28a391,_0x3d3a14[_0x14d0('0xe')],_0x3d3a14[_0x14d0('0xf')][_0x14d0('0x10')]?_0x3d3a14[_0x14d0('0xf')][_0x14d0('0x10')]:_0x3d3a14['connection']['remoteAddress']||_0x3d3a14['ip'],_0x3d3a14[_0x14d0('0x11')],_0x4d2952['statusCode'],_0x4d2952[_0x14d0('0x12')],_0x3d3a14[_0x14d0('0x13')]?_0x3d3a14[_0x14d0('0x13')]['id']:null,_0x3d3a14[_0x14d0('0x13')]?_0x3d3a14['user']['name']:null,_0x3d3a14[_0x14d0('0x13')]?_0x3d3a14['user'][_0x14d0('0x14')]:null,_0x2d5cdd?util[_0x14d0('0x15')](_0x2d5cdd,![],null):'');}}));_0x564dcf[_0x14d0('0x16')](ewinston[_0x14d0('0x9')]({'winstonInstance':authLogger,'meta':![],'statusLevels':!![],'msg':function(_0xe3e7d8,_0x1acf2e){var _0x5b5d1a=_0x14d0('0x17');if(_0xe3e7d8['body']&&_0xe3e7d8[_0x14d0('0xc')]['device']&&_0xe3e7d8[_0x14d0('0xc')]['agent_id']){_0x5b5d1a=_0x14d0('0x18');}return util[_0x14d0('0xd')](_0x5b5d1a,_0xe3e7d8['method'],_0xe3e7d8[_0x14d0('0xf')]['x-forwarded-for']?_0xe3e7d8['headers'][_0x14d0('0x10')]:_0xe3e7d8[_0x14d0('0x19')]['remoteAddress']||_0xe3e7d8['ip'],_0xe3e7d8[_0x14d0('0x11')],_0x1acf2e[_0x14d0('0x1a')],_0x1acf2e[_0x14d0('0x12')],_0xe3e7d8[_0x14d0('0x13')]?_0xe3e7d8[_0x14d0('0x13')]['id']:null,_0xe3e7d8[_0x14d0('0x13')]?_0xe3e7d8[_0x14d0('0x13')][_0x14d0('0x1b')]:null,_0xe3e7d8['user']?_0xe3e7d8[_0x14d0('0x13')][_0x14d0('0x14')]:null,_0xe3e7d8[_0x14d0('0xc')]&&_0xe3e7d8[_0x14d0('0xc')][_0x14d0('0x1c')]?_0xe3e7d8[_0x14d0('0xc')][_0x14d0('0x1c')]:_0x14d0('0x1d'),_0xe3e7d8[_0x14d0('0xc')]&&_0xe3e7d8[_0x14d0('0xc')][_0x14d0('0x1e')]?_0xe3e7d8[_0x14d0('0xc')]['agent_id']:'',_0xe3e7d8['body']&&_0xe3e7d8[_0x14d0('0xc')][_0x14d0('0x1f')]?_0xe3e7d8[_0x14d0('0xc')][_0x14d0('0x1f')]:'');},'ignoreRoute':function(_0x4e9b8c){var _0xa3b415=/\/api\/users\/[0-9]+\/(login|logout)/gi;return!_0xa3b415[_0x14d0('0x20')](_0x4e9b8c[_0x14d0('0x11')]);}}));_0x564dcf[_0x14d0('0x16')](_0x14d0('0x21'),require(_0x14d0('0x22')));_0x564dcf['use'](_0x14d0('0x23'),require('./api/voiceChanSpy'));_0x564dcf['use'](_0x14d0('0x24'),require('./api/voiceContext'));_0x564dcf[_0x14d0('0x16')]('/api/voice/extensions',require(_0x14d0('0x25')));_0x564dcf[_0x14d0('0x16')](_0x14d0('0x26'),require(_0x14d0('0x27')));_0x564dcf[_0x14d0('0x16')]('/api/voice/queues',require(_0x14d0('0x28')));_0x564dcf[_0x14d0('0x16')]('/api/voice/recordings',require(_0x14d0('0x29')));_0x564dcf[_0x14d0('0x16')](_0x14d0('0x2a'),require(_0x14d0('0x2b')));_0x564dcf[_0x14d0('0x16')](_0x14d0('0x2c'),require(_0x14d0('0x2d')));_0x564dcf[_0x14d0('0x16')](_0x14d0('0x2e'),require(_0x14d0('0x2f')));_0x564dcf[_0x14d0('0x16')](_0x14d0('0x30'),require(_0x14d0('0x31')));_0x564dcf[_0x14d0('0x16')](_0x14d0('0x32'),require(_0x14d0('0x33')));_0x564dcf[_0x14d0('0x16')](_0x14d0('0x34'),require(_0x14d0('0x35')));_0x564dcf[_0x14d0('0x16')](_0x14d0('0x36'),require(_0x14d0('0x37')));_0x564dcf[_0x14d0('0x16')]('/api/members/reports',require('./api/memberReport'));_0x564dcf[_0x14d0('0x16')]('/api/trunks',require(_0x14d0('0x38')));_0x564dcf[_0x14d0('0x16')]('/api/voice/transfers/reports',require(_0x14d0('0x39')));_0x564dcf[_0x14d0('0x16')]('/api/mail/out_servers',require(_0x14d0('0x3a')));_0x564dcf['use'](_0x14d0('0x3b'),require(_0x14d0('0x3c')));_0x564dcf[_0x14d0('0x16')](_0x14d0('0x3d'),require(_0x14d0('0x3e')));_0x564dcf[_0x14d0('0x16')]('/api/mail/substatuses',require(_0x14d0('0x3f')));_0x564dcf[_0x14d0('0x16')]('/api/mail/interactions',require('./api/mailInteraction'));_0x564dcf[_0x14d0('0x16')]('/api/mail/messages',require(_0x14d0('0x40')));_0x564dcf[_0x14d0('0x16')](_0x14d0('0x41'),require(_0x14d0('0x42')));_0x564dcf['use'](_0x14d0('0x43'),require(_0x14d0('0x44')));_0x564dcf['use']('/api/dashboards',require('./api/dashboard'));_0x564dcf[_0x14d0('0x16')]('/api/dashboards/items',require(_0x14d0('0x45')));_0x564dcf[_0x14d0('0x16')](_0x14d0('0x46'),require(_0x14d0('0x47')));_0x564dcf[_0x14d0('0x16')]('/api/fax/applications',require('./api/faxApplication'));_0x564dcf[_0x14d0('0x16')]('/api/fax/interactions',require('./api/faxInteraction'));_0x564dcf[_0x14d0('0x16')](_0x14d0('0x48'),require(_0x14d0('0x49')));_0x564dcf[_0x14d0('0x16')](_0x14d0('0x4a'),require('./api/faxQueue'));_0x564dcf[_0x14d0('0x16')](_0x14d0('0x4b'),require(_0x14d0('0x4c')));_0x564dcf[_0x14d0('0x16')](_0x14d0('0x4d'),require(_0x14d0('0x4e')));_0x564dcf[_0x14d0('0x16')]('/api/sms/applications',require(_0x14d0('0x4f')));_0x564dcf[_0x14d0('0x16')](_0x14d0('0x50'),require(_0x14d0('0x51')));_0x564dcf[_0x14d0('0x16')](_0x14d0('0x52'),require(_0x14d0('0x53')));_0x564dcf['use'](_0x14d0('0x54'),require(_0x14d0('0x55')));_0x564dcf['use']('/api/openchannel/accounts',require(_0x14d0('0x56')));_0x564dcf[_0x14d0('0x16')]('/api/openchannel/applications',require(_0x14d0('0x57')));_0x564dcf[_0x14d0('0x16')](_0x14d0('0x58'),require(_0x14d0('0x59')));_0x564dcf[_0x14d0('0x16')]('/api/openchannel/messages',require(_0x14d0('0x5a')));_0x564dcf['use'](_0x14d0('0x5b'),require(_0x14d0('0x5c')));_0x564dcf['use'](_0x14d0('0x5d'),require(_0x14d0('0x5e')));_0x564dcf[_0x14d0('0x16')](_0x14d0('0x5f'),require(_0x14d0('0x60')));_0x564dcf[_0x14d0('0x16')](_0x14d0('0x61'),require(_0x14d0('0x62')));_0x564dcf['use'](_0x14d0('0x63'),require(_0x14d0('0x64')));_0x564dcf[_0x14d0('0x16')](_0x14d0('0x65'),require('./api/chatMessage'));_0x564dcf[_0x14d0('0x16')](_0x14d0('0x66'),require(_0x14d0('0x67')));_0x564dcf[_0x14d0('0x16')]('/api/chat/queues',require('./api/chatQueue'));_0x564dcf['use'](_0x14d0('0x68'),require(_0x14d0('0x69')));_0x564dcf['use'](_0x14d0('0x6a'),require(_0x14d0('0x6b')));_0x564dcf[_0x14d0('0x16')]('/api/cm/companies',require(_0x14d0('0x6c')));_0x564dcf['use'](_0x14d0('0x6d'),require(_0x14d0('0x6e')));_0x564dcf[_0x14d0('0x16')]('/api/cm/hopper',require(_0x14d0('0x6f')));_0x564dcf[_0x14d0('0x16')](_0x14d0('0x70'),require(_0x14d0('0x71')));_0x564dcf[_0x14d0('0x16')]('/api/cm/hopper_final',require(_0x14d0('0x72')));_0x564dcf[_0x14d0('0x16')](_0x14d0('0x73'),require(_0x14d0('0x74')));_0x564dcf['use'](_0x14d0('0x75'),require(_0x14d0('0x76')));_0x564dcf[_0x14d0('0x16')](_0x14d0('0x77'),require('./api/action'));_0x564dcf[_0x14d0('0x16')](_0x14d0('0x78'),require('./api/automation'));_0x564dcf[_0x14d0('0x16')](_0x14d0('0x79'),require('./api/cannedAnswer'));_0x564dcf[_0x14d0('0x16')](_0x14d0('0x7a'),require(_0x14d0('0x7b')));_0x564dcf['use'](_0x14d0('0x7c'),require(_0x14d0('0x7d')));_0x564dcf[_0x14d0('0x16')]('/api/intervals',require(_0x14d0('0x7e')));_0x564dcf[_0x14d0('0x16')](_0x14d0('0x7f'),require(_0x14d0('0x80')));_0x564dcf[_0x14d0('0x16')](_0x14d0('0x81'),require(_0x14d0('0x82')));_0x564dcf[_0x14d0('0x16')](_0x14d0('0x83'),require(_0x14d0('0x84')));_0x564dcf[_0x14d0('0x16')](_0x14d0('0x85'),require('./api/schedule'));_0x564dcf[_0x14d0('0x16')](_0x14d0('0x86'),require(_0x14d0('0x87')));_0x564dcf[_0x14d0('0x16')](_0x14d0('0x88'),require(_0x14d0('0x89')));_0x564dcf['use']('/api/templates',require('./api/template'));_0x564dcf[_0x14d0('0x16')](_0x14d0('0x8a'),require('./api/trigger'));_0x564dcf[_0x14d0('0x16')](_0x14d0('0x8b'),require(_0x14d0('0x8c')));_0x564dcf[_0x14d0('0x16')](_0x14d0('0x8d'),require(_0x14d0('0x8e')));_0x564dcf[_0x14d0('0x16')](_0x14d0('0x8f'),require(_0x14d0('0x90')));_0x564dcf['use'](_0x14d0('0x91'),require(_0x14d0('0x92')));_0x564dcf[_0x14d0('0x16')]('/api/analytics/default_reports',require('./api/analyticDefaultReport'));_0x564dcf['use']('/api/analytics/extracted_reports',require(_0x14d0('0x93')));_0x564dcf[_0x14d0('0x16')](_0x14d0('0x94'),require(_0x14d0('0x95')));_0x564dcf[_0x14d0('0x16')](_0x14d0('0x96'),require(_0x14d0('0x97')));_0x564dcf[_0x14d0('0x16')](_0x14d0('0x98'),require(_0x14d0('0x99')));_0x564dcf[_0x14d0('0x16')](_0x14d0('0x9a'),require(_0x14d0('0x9b')));_0x564dcf[_0x14d0('0x16')](_0x14d0('0x9c'),require(_0x14d0('0x9d')));_0x564dcf[_0x14d0('0x16')](_0x14d0('0x9e'),require(_0x14d0('0x9f')));_0x564dcf[_0x14d0('0x16')](_0x14d0('0xa0'),require(_0x14d0('0xa1')));_0x564dcf['use'](_0x14d0('0xa2'),require(_0x14d0('0xa3')));_0x564dcf['use']('/api/integrations/sugarcrm/fields',require(_0x14d0('0xa4')));_0x564dcf['use'](_0x14d0('0xa5'),require(_0x14d0('0xa6')));_0x564dcf[_0x14d0('0x16')](_0x14d0('0xa7'),require(_0x14d0('0xa8')));_0x564dcf[_0x14d0('0x16')](_0x14d0('0xa9'),require(_0x14d0('0xaa')));_0x564dcf[_0x14d0('0x16')](_0x14d0('0xab'),require(_0x14d0('0xac')));_0x564dcf['use'](_0x14d0('0xad'),require(_0x14d0('0xae')));_0x564dcf[_0x14d0('0x16')](_0x14d0('0xaf'),require('./api/intZohoField'));_0x564dcf[_0x14d0('0x16')](_0x14d0('0xb0'),require(_0x14d0('0xb1')));_0x564dcf[_0x14d0('0x16')](_0x14d0('0xb2'),require('./api/intZendeskConfiguration'));_0x564dcf[_0x14d0('0x16')](_0x14d0('0xb3'),require('./api/intZendeskField'));_0x564dcf['use']('/api/integrations/freshdesk/accounts',require(_0x14d0('0xb4')));_0x564dcf[_0x14d0('0x16')](_0x14d0('0xb5'),require('./api/intFreshdeskConfiguration'));_0x564dcf[_0x14d0('0x16')](_0x14d0('0xb6'),require(_0x14d0('0xb7')));_0x564dcf[_0x14d0('0x16')](_0x14d0('0xb8'),require(_0x14d0('0xb9')));_0x564dcf['use'](_0x14d0('0xba'),require('./api/intVtigerConfiguration'));_0x564dcf[_0x14d0('0x16')](_0x14d0('0xbb'),require(_0x14d0('0xbc')));_0x564dcf[_0x14d0('0x16')]('/api/integrations/servicenow/accounts',require(_0x14d0('0xbd')));_0x564dcf['use'](_0x14d0('0xbe'),require(_0x14d0('0xbf')));_0x564dcf['use'](_0x14d0('0xc0'),require(_0x14d0('0xc1')));_0x564dcf[_0x14d0('0x16')](_0x14d0('0xc2'),require(_0x14d0('0xc3')));_0x564dcf['use']('/api/integrations/dynamics365/configurations',require('./api/intDynamics365Configuration'));_0x564dcf[_0x14d0('0x16')]('/api/integrations/dynamics365/fields',require(_0x14d0('0xc4')));_0x564dcf[_0x14d0('0x16')](_0x14d0('0xc5'),require(_0x14d0('0xc6')));_0x564dcf[_0x14d0('0x16')](_0x14d0('0xc7'),require(_0x14d0('0xc8')));_0x564dcf[_0x14d0('0x16')]('/api/integrations/freshsales/fields',require(_0x14d0('0xc9')));_0x564dcf[_0x14d0('0x16')]('/api/networks',require(_0x14d0('0xca')));_0x564dcf[_0x14d0('0x16')]('/api/chat/reports/queue',require(_0x14d0('0xcb')));_0x564dcf[_0x14d0('0x16')](_0x14d0('0xcc'),require(_0x14d0('0xcd')));_0x564dcf[_0x14d0('0x16')]('/api/jscripty/answers/reports',require(_0x14d0('0xce')));_0x564dcf[_0x14d0('0x16')](_0x14d0('0xcf'),require(_0x14d0('0xd0')));_0x564dcf[_0x14d0('0x16')](_0x14d0('0xd1'),require(_0x14d0('0xd2')));_0x564dcf[_0x14d0('0x16')](_0x14d0('0xd3'),require(_0x14d0('0xd4')));_0x564dcf['use'](_0x14d0('0xd5'),require(_0x14d0('0xd6')));_0x564dcf[_0x14d0('0x16')]('/api/square/details/reports',require(_0x14d0('0xd7')));_0x564dcf[_0x14d0('0x16')](_0x14d0('0xd8'),require('./api/jscriptyProject'));_0x564dcf[_0x14d0('0x16')]('/api/settings',require(_0x14d0('0xd9')));_0x564dcf[_0x14d0('0x16')](_0x14d0('0xda'),require(_0x14d0('0xdb')));_0x564dcf['use'](_0x14d0('0xdc'),require('./api/squareProject'));_0x564dcf[_0x14d0('0x16')]('/api/square/recordings',require(_0x14d0('0xdd')));_0x564dcf[_0x14d0('0x16')](_0x14d0('0xde'),require(_0x14d0('0xdf')));_0x564dcf['use'](_0x14d0('0xe0'),require(_0x14d0('0xe1')));_0x564dcf[_0x14d0('0x16')](_0x14d0('0xe2'),require(_0x14d0('0xe3')));_0x564dcf[_0x14d0('0x16')](_0x14d0('0xe4'),require('./api/campaign'));_0x564dcf[_0x14d0('0x16')](_0x14d0('0xe5'),require(_0x14d0('0xe6')));_0x564dcf[_0x14d0('0x16')]('/api/attachments',require('./api/attachment'));_0x564dcf[_0x14d0('0x16')](_0x14d0('0xe7'),require(_0x14d0('0xe8')));_0x564dcf['use'](_0x14d0('0xe9'),require(_0x14d0('0xea')));_0x564dcf['use']('/api/chat/reports/transfer',require('./api/chatTransferReport'));_0x564dcf[_0x14d0('0x16')](_0x14d0('0xeb'),require(_0x14d0('0xec')));_0x564dcf[_0x14d0('0x16')](_0x14d0('0xed'),require(_0x14d0('0xee')));_0x564dcf[_0x14d0('0x16')](_0x14d0('0xef'),require(_0x14d0('0xf0')));_0x564dcf[_0x14d0('0x16')]('/api/cm/lists',require('./api/cmList'));_0x564dcf[_0x14d0('0x16')]('/api/voice/prefixes',require(_0x14d0('0xf1')));_0x564dcf[_0x14d0('0x16')](_0x14d0('0xf2'),require(_0x14d0('0xf3')));_0x564dcf['use'](_0x14d0('0xf4'),require(_0x14d0('0xf5')));_0x564dcf[_0x14d0('0x16')]('/api/userProfile/resources',require(_0x14d0('0xf6')));_0x564dcf['use'](_0x14d0('0xf7'),require(_0x14d0('0xf8')));_0x564dcf[_0x14d0('0x16')](_0x14d0('0xf9'),require(_0x14d0('0xfa')));_0x564dcf[_0x14d0('0x16')](_0x14d0('0xfb'),require(_0x14d0('0xfc')));_0x564dcf['use'](_0x14d0('0xfd'),require(_0x14d0('0xfe')));_0x564dcf[_0x14d0('0x16')](_0x14d0('0xff'),require(_0x14d0('0x100')));_0x564dcf[_0x14d0('0x16')](_0x14d0('0x101'),require(_0x14d0('0x102')));_0x564dcf[_0x14d0('0x16')](_0x14d0('0x103'),require('./api/whatsappTransferReport'));_0x564dcf[_0x14d0('0x16')]('/api/whatsapp/queues',require('./api/whatsappQueue'));_0x564dcf[_0x14d0('0x16')](_0x14d0('0x104'),require(_0x14d0('0x105')));_0x564dcf['use'](_0x14d0('0x106'),require(_0x14d0('0x107')));_0x564dcf['use'](_0x14d0('0x108'),require(_0x14d0('0x109')));_0x564dcf['use'](_0x14d0('0x10a'),require(_0x14d0('0x10b')));_0x564dcf[_0x14d0('0x16')](_0x14d0('0x10c'),require(_0x14d0('0x10d')));_0x564dcf[_0x14d0('0x16')](_0x14d0('0x10e'),require(_0x14d0('0x10f')));_0x564dcf[_0x14d0('0x16')]('/api/version',require('./api/version'));_0x564dcf[_0x14d0('0x16')]('/api/system',require('./api/system'));_0x564dcf[_0x14d0('0x16')]('/api/pm2',require(_0x14d0('0x110')));_0x564dcf['use'](_0x14d0('0x111'),require(_0x14d0('0x112')));_0x564dcf[_0x14d0('0x16')](_0x14d0('0x113'),express[_0x14d0('0x114')](path[_0x14d0('0x115')](config[_0x14d0('0x116')],_0x14d0('0x113'))));_0x564dcf[_0x14d0('0x16')](_0x14d0('0x117'),express['static'](path[_0x14d0('0x115')](config[_0x14d0('0x116')],_0x14d0('0x117'))));_0x564dcf[_0x14d0('0x16')](_0x14d0('0x118'),express[_0x14d0('0x114')](path[_0x14d0('0x115')](config[_0x14d0('0x116')],_0x14d0('0x118'))));_0x564dcf['use'](_0x14d0('0x119'),express[_0x14d0('0x114')](path[_0x14d0('0x115')](config[_0x14d0('0x116')],_0x14d0('0x11a'),'3.0.0')));_0x564dcf[_0x14d0('0x16')](_0x14d0('0x11b'),express['static'](path[_0x14d0('0x115')](config['root'],_0x14d0('0x11c'))));_0x564dcf['route']('/:url(api|auth|components|app|bower_components|assets)/*')[_0x14d0('0x11d')](errors[0x194]);_0x564dcf['route']('/*')[_0x14d0('0x11d')](function(_0x300244,_0x5b496e){_0x5b496e[_0x14d0('0x11e')](path[_0x14d0('0x11f')](_0x564dcf[_0x14d0('0x11d')](_0x14d0('0x120'))+_0x14d0('0x121')));});};var sensitiveFields=['username',_0x14d0('0x122'),_0x14d0('0x123'),_0x14d0('0x124'),_0x14d0('0x125'),_0x14d0('0x126'),_0x14d0('0x127'),'phone',_0x14d0('0x128'),_0x14d0('0x129'),_0x14d0('0x12a'),_0x14d0('0x12b'),_0x14d0('0x12c'),_0x14d0('0x12d'),_0x14d0('0x12e'),'accessKey',_0x14d0('0x12f'),'token','channelSecret','accessToken',_0x14d0('0x130'),_0x14d0('0x131'),_0x14d0('0x132'),'consumerSecret',_0x14d0('0x133'),_0x14d0('0x134'),_0x14d0('0x135'),_0x14d0('0x136'),_0x14d0('0x137'),_0x14d0('0x138'),'privateKey',_0x14d0('0x139'),_0x14d0('0x13a'),'key',_0x14d0('0x13'),_0x14d0('0x13b'),'accountSid',_0x14d0('0x13c'),_0x14d0('0x13d'),_0x14d0('0x13e'),_0x14d0('0x13f'),_0x14d0('0x140')];function maskSensitiveData(_0x61ced2){var _0x388775=/(?!^)[\s\S](?!$)/g;if(!_[_0x14d0('0x141')](_0x61ced2))return;for(var _0x3b36c1 in _0x61ced2){if(_[_0x14d0('0x142')](_0x61ced2[_0x3b36c1])){for(var _0x387edf=0x0;_0x387edf<_0x61ced2[_0x3b36c1]['length'];_0x387edf++){maskSensitiveData(_0x61ced2[_0x3b36c1][_0x387edf]);}}else if(_[_0x14d0('0x141')](_0x61ced2[_0x3b36c1])){maskSensitiveData(_0x61ced2[_0x3b36c1]);}else if(_[_0x14d0('0x143')](_0x61ced2[_0x3b36c1])){_0x61ced2[_0x3b36c1]=_0x61ced2[_0x3b36c1][_0x14d0('0x144')](/{{{/g,_0x14d0('0x145'))['replace'](/}}}/g,_0x14d0('0x146'))[_0x14d0('0x144')](/{{/g,'@{')[_0x14d0('0x144')](/}}/g,'}@');if(_[_0x14d0('0x147')](sensitiveFields,_0x3b36c1)){_0x61ced2[_0x3b36c1]=_0x61ced2[_0x3b36c1][_0x14d0('0x144')](_0x388775,'*');}}}}
\ No newline at end of file
+var _0xe022=['./api/chatMessage','/api/chat/offline_messages','./api/chatOfflineMessage','/api/chat/queues','./api/chatQueue','/api/chat/groups','./api/chatGroup','/api/chat/proactive_actions','./api/chatProactiveAction','/api/cm/companies','/api/cm/contacts','./api/cmHopper','./api/cmHopperFinal','/api/cm/hopper_history','./api/cmHopperHistory','/api/cm/custom_fields','/api/actions','./api/action','/api/automations','./api/automation','/api/canned_answers','./api/cannedAnswer','/api/dispositions','./api/disposition','/api/conditions','./api/condition','./api/interval','/api/pauses','./api/pause','/api/cdr','./api/cdr','/api/voiceQueuesLog','/api/schedules','./api/schedule','/api/tags','./api/tag','/api/templates','./api/trigger','./api/variable','/api/integrations','./api/integration','/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/integrations/salesforce/configurations','./api/intSalesforceConfiguration','/api/integrations/salesforce/fields','./api/intSugarcrmAccount','/api/integrations/sugarcrm/configurations','./api/intSugarcrmConfiguration','./api/intSugarcrmField','/api/integrations/desk/accounts','./api/intDeskAccount','./api/intDeskConfiguration','/api/integrations/desk/fields','./api/intDeskField','/api/integrations/zoho/accounts','./api/intZohoAccount','/api/integrations/zoho/configurations','./api/intZohoConfiguration','/api/integrations/zoho/fields','./api/intZohoField','/api/integrations/zendesk/accounts','./api/intZendeskAccount','./api/intZendeskConfiguration','/api/integrations/zendesk/fields','/api/integrations/freshdesk/accounts','./api/intFreshdeskAccount','./api/intFreshdeskConfiguration','/api/integrations/freshdesk/fields','/api/integrations/vtiger/accounts','./api/intVtigerAccount','/api/integrations/vtiger/configurations','/api/integrations/vtiger/fields','./api/intVtigerField','/api/integrations/servicenow/accounts','./api/intServicenowAccount','/api/integrations/servicenow/configurations','/api/integrations/servicenow/fields','/api/integrations/dynamics365/accounts','./api/intDynamics365Account','./api/intDynamics365Field','/api/integrations/freshsales/accounts','./api/intFreshsalesAccount','/api/integrations/freshsales/configurations','./api/intFreshsalesConfiguration','/api/networks','./api/chatQueueReport','/api/jscripty/answers/reports','./api/jscriptyAnswerReport','./api/jscriptySessionReport','./api/smsQueueReport','./api/squareReport','/api/square/details/reports','./api/squareReportDetail','/api/jscripty/projects','./api/jscriptyProject','/api/settings','./api/setting','/api/square/odbc','./api/squareOdbc','/api/square/projects','./api/squareProject','/api/square/recordings','./api/squareRecording','/api/square/messages','./api/squareMessage','./api/team','/api/license','./api/license','/api/campaigns','./api/campaign','/api/migrations','./api/migration','/api/attachments','/api/plugins','./api/plugin','/api/mail/reports/transfer','./api/mailTransferReport','/api/chat/reports/transfer','./api/chatTransferReport','/api/fax/reports/transfer','/api/openchannel/reports/transfer','./api/openchannelTransferReport','./api/smsTransferReport','/api/cm/lists','./api/cmList','/api/voice/prefixes','./api/voicePrefix','./api/userProfile','/api/userProfile/sections','./api/userProfileSection','/api/userProfile/resources','./api/userProfileResource','/api/userNotifications','./api/userNotification','/api/whatsapp/accounts','./api/whatsappAccount','./api/whatsappApplication','/api/whatsapp/interactions','./api/whatsappInteraction','/api/whatsapp/messages','./api/whatsappMessage','/api/whatsapp/reports/queue','/api/whatsapp/reports/transfer','./api/whatsappTransferReport','/api/whatsapp/queues','./api/whatsappQueue','/api/cloudProviders','./api/cloudProvider','/api/realtime','./api/realtime','/api/auth/local','./api/authLocal','/api/auth/google','/api/jira','./api/jira','/api/rpc','./api/rpc','/api/version','./api/version','/api/system','./api/system','/api/pm2','./api/pm2','/api/webbar','join','/apidoc','/www','static','/demo','root','/snippet','snippet','3.0.0','/plugins','/server/files/plugins','get','route','sendFile','resolve','appPath','password','newPassword','apiKey','firstName','street','phone','mobile','fax','email','clientSecret','code','tenantId','token','channelSecret','authToken','consumerKey','membername','calleridname','exten','vidaooApiKey','clientEmail','privateKey','accesskeyid','secretaccesskey','key','pass','localstationid','dsn','secret','registry','oldPassword','isPlainObject','isString','replace','}@@','includes','lodash','express','express-winston','./errors','./config/environment','./config/logger','api','auth','logger','%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s','isEmpty','\x20body=%s','body','format','method','headers','x-forwarded-for','connection','remoteAddress','url','statusCode','responseTime','user','name','role','use','%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s\x20device=%s','device','%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s\x20device=%s\x20(id=%s\x20name=%s)','other','agent_id','agent_name','test','/api/users','./api/user','./api/voiceChanSpy','/api/voice/extensions','./api/voiceExtension','/api/voice/mohs','./api/voiceMusicOnHold','/api/voice/queues','./api/voiceQueue','/api/voice/recordings','./api/voiceRecording','./api/screenRecording','/api/voice/mails','./api/voiceMail','/api/voice/mails/messages','./api/voiceMailMessage','./api/voiceCallReport','/api/voice/dials/reports','./api/voiceDialReport','./api/voiceAgentReport','/api/members/reports','/api/trunks','./api/trunk','/api/voice/transfers/reports','./api/voiceTransferReport','./api/mailServerOut','/api/mail/accounts','./api/mailQueue','/api/mail/substatuses','./api/mailInteraction','/api/mail/messages','/api/mail/applications','./api/mailApplication','/api/dashboards','./api/dashboard','/api/dashboards/items','./api/dashboardItem','/api/fax/accounts','./api/faxAccount','./api/faxApplication','/api/fax/queues','./api/faxQueue','/api/fax/reports/queue','./api/faxQueueReport','/api/sms/accounts','./api/smsAccount','./api/smsApplication','./api/smsInteraction','/api/sms/messages','./api/smsMessage','./api/smsQueue','/api/openchannel/accounts','./api/openchannelAccount','/api/openchannel/applications','./api/openchannelApplication','/api/openchannel/interactions','./api/openchannelInteraction','./api/openchannelQueue','./api/chatWebsite','./api/openchannelQueueReport','/api/chat/applications','./api/chatApplication','/api/chat/interactions','/api/chat/messages'];(function(_0xde0ac8,_0x2d129d){var _0x2182d0=function(_0x5e8880){while(--_0x5e8880){_0xde0ac8['push'](_0xde0ac8['shift']());}};_0x2182d0(++_0x2d129d);}(_0xe022,0xe1));var _0x2e02=function(_0x5c6fc0,_0x41f909){_0x5c6fc0=_0x5c6fc0-0x0;var _0x3442f9=_0xe022[_0x5c6fc0];return _0x3442f9;};'use strict';var _=require(_0x2e02('0x0'));var path=require('path');var express=require(_0x2e02('0x1'));var ewinston=require(_0x2e02('0x2'));var util=require('util');var errors=require(_0x2e02('0x3'));var config=require(_0x2e02('0x4'));var logger=require(_0x2e02('0x5'))(_0x2e02('0x6'));var authLogger=require('./config/logger')(_0x2e02('0x7'));exports['default']=function(_0x3c6ba7){_0x3c6ba7['use'](ewinston[_0x2e02('0x8')]({'winstonInstance':logger,'meta':![],'statusLevels':!![],'msg':function(_0x1f0aa2,_0x457533){var _0x2bc6db=_0x2e02('0x9');if(!_[_0x2e02('0xa')](_0x1f0aa2['body'])){_0x2bc6db+=_0x2e02('0xb');var _0x206ae9=_0x1f0aa2[_0x2e02('0xc')];maskSensitiveData(_0x206ae9);}return util[_0x2e02('0xd')](_0x2bc6db,_0x1f0aa2[_0x2e02('0xe')],_0x1f0aa2[_0x2e02('0xf')][_0x2e02('0x10')]?_0x1f0aa2[_0x2e02('0xf')][_0x2e02('0x10')]:_0x1f0aa2[_0x2e02('0x11')][_0x2e02('0x12')]||_0x1f0aa2['ip'],_0x1f0aa2[_0x2e02('0x13')],_0x457533[_0x2e02('0x14')],_0x457533[_0x2e02('0x15')],_0x1f0aa2['user']?_0x1f0aa2['user']['id']:null,_0x1f0aa2[_0x2e02('0x16')]?_0x1f0aa2[_0x2e02('0x16')][_0x2e02('0x17')]:null,_0x1f0aa2[_0x2e02('0x16')]?_0x1f0aa2[_0x2e02('0x16')][_0x2e02('0x18')]:null,_0x206ae9?util['inspect'](_0x206ae9,![],null):'');}}));_0x3c6ba7[_0x2e02('0x19')](ewinston[_0x2e02('0x8')]({'winstonInstance':authLogger,'meta':![],'statusLevels':!![],'msg':function(_0x18e769,_0x318b0d){var _0x3d88fc=_0x2e02('0x1a');if(_0x18e769['body']&&_0x18e769[_0x2e02('0xc')][_0x2e02('0x1b')]&&_0x18e769['body']['agent_id']){_0x3d88fc=_0x2e02('0x1c');}return util[_0x2e02('0xd')](_0x3d88fc,_0x18e769[_0x2e02('0xe')],_0x18e769[_0x2e02('0xf')]['x-forwarded-for']?_0x18e769[_0x2e02('0xf')][_0x2e02('0x10')]:_0x18e769[_0x2e02('0x11')][_0x2e02('0x12')]||_0x18e769['ip'],_0x18e769[_0x2e02('0x13')],_0x318b0d[_0x2e02('0x14')],_0x318b0d[_0x2e02('0x15')],_0x18e769[_0x2e02('0x16')]?_0x18e769[_0x2e02('0x16')]['id']:null,_0x18e769[_0x2e02('0x16')]?_0x18e769[_0x2e02('0x16')]['name']:null,_0x18e769['user']?_0x18e769[_0x2e02('0x16')][_0x2e02('0x18')]:null,_0x18e769['body']&&_0x18e769['body'][_0x2e02('0x1b')]?_0x18e769['body']['device']:_0x2e02('0x1d'),_0x18e769[_0x2e02('0xc')]&&_0x18e769['body'][_0x2e02('0x1e')]?_0x18e769[_0x2e02('0xc')][_0x2e02('0x1e')]:'',_0x18e769['body']&&_0x18e769[_0x2e02('0xc')][_0x2e02('0x1f')]?_0x18e769['body']['agent_name']:'');},'ignoreRoute':function(_0x104606){var _0x278d3b=/\/api\/users\/[0-9]+\/(login|logout)/gi;return!_0x278d3b[_0x2e02('0x20')](_0x104606['url']);}}));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0x21'),require(_0x2e02('0x22')));_0x3c6ba7[_0x2e02('0x19')]('/api/voice/chanspy',require(_0x2e02('0x23')));_0x3c6ba7['use']('/api/voice/contexts',require('./api/voiceContext'));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0x24'),require(_0x2e02('0x25')));_0x3c6ba7['use'](_0x2e02('0x26'),require(_0x2e02('0x27')));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0x28'),require(_0x2e02('0x29')));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0x2a'),require(_0x2e02('0x2b')));_0x3c6ba7[_0x2e02('0x19')]('/api/screen/recordings',require(_0x2e02('0x2c')));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0x2d'),require(_0x2e02('0x2e')));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0x2f'),require(_0x2e02('0x30')));_0x3c6ba7[_0x2e02('0x19')]('/api/voice/calls/reports',require(_0x2e02('0x31')));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0x32'),require(_0x2e02('0x33')));_0x3c6ba7['use']('/api/voice/agents/reports',require(_0x2e02('0x34')));_0x3c6ba7[_0x2e02('0x19')]('/api/voice/queues/reports',require('./api/voiceQueueReport'));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0x35'),require('./api/memberReport'));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0x36'),require(_0x2e02('0x37')));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0x38'),require(_0x2e02('0x39')));_0x3c6ba7['use']('/api/mail/out_servers',require(_0x2e02('0x3a')));_0x3c6ba7['use'](_0x2e02('0x3b'),require('./api/mailAccount'));_0x3c6ba7[_0x2e02('0x19')]('/api/mail/queues',require(_0x2e02('0x3c')));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0x3d'),require('./api/mailSubstatus'));_0x3c6ba7[_0x2e02('0x19')]('/api/mail/interactions',require(_0x2e02('0x3e')));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0x3f'),require('./api/mailMessage'));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0x40'),require(_0x2e02('0x41')));_0x3c6ba7[_0x2e02('0x19')]('/api/mail/reports/queue',require('./api/mailQueueReport'));_0x3c6ba7['use'](_0x2e02('0x42'),require(_0x2e02('0x43')));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0x44'),require(_0x2e02('0x45')));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0x46'),require(_0x2e02('0x47')));_0x3c6ba7[_0x2e02('0x19')]('/api/fax/applications',require(_0x2e02('0x48')));_0x3c6ba7[_0x2e02('0x19')]('/api/fax/interactions',require('./api/faxInteraction'));_0x3c6ba7[_0x2e02('0x19')]('/api/fax/messages',require('./api/faxMessage'));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0x49'),require(_0x2e02('0x4a')));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0x4b'),require(_0x2e02('0x4c')));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0x4d'),require(_0x2e02('0x4e')));_0x3c6ba7[_0x2e02('0x19')]('/api/sms/applications',require(_0x2e02('0x4f')));_0x3c6ba7['use']('/api/sms/interactions',require(_0x2e02('0x50')));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0x51'),require(_0x2e02('0x52')));_0x3c6ba7['use']('/api/sms/queues',require(_0x2e02('0x53')));_0x3c6ba7['use'](_0x2e02('0x54'),require(_0x2e02('0x55')));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0x56'),require(_0x2e02('0x57')));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0x58'),require(_0x2e02('0x59')));_0x3c6ba7[_0x2e02('0x19')]('/api/openchannel/messages',require('./api/openchannelMessage'));_0x3c6ba7[_0x2e02('0x19')]('/api/openchannel/queues',require(_0x2e02('0x5a')));_0x3c6ba7['use']('/api/chat/websites',require(_0x2e02('0x5b')));_0x3c6ba7[_0x2e02('0x19')]('/api/openchannel/reports/queue',require(_0x2e02('0x5c')));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0x5d'),require(_0x2e02('0x5e')));_0x3c6ba7['use'](_0x2e02('0x5f'),require('./api/chatInteraction'));_0x3c6ba7['use'](_0x2e02('0x60'),require(_0x2e02('0x61')));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0x62'),require(_0x2e02('0x63')));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0x64'),require(_0x2e02('0x65')));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0x66'),require(_0x2e02('0x67')));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0x68'),require(_0x2e02('0x69')));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0x6a'),require('./api/cmCompany'));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0x6b'),require('./api/cmContact'));_0x3c6ba7['use']('/api/cm/hopper',require(_0x2e02('0x6c')));_0x3c6ba7['use']('/api/cm/hopper_black',require('./api/cmHopperBlack'));_0x3c6ba7[_0x2e02('0x19')]('/api/cm/hopper_final',require(_0x2e02('0x6d')));_0x3c6ba7['use'](_0x2e02('0x6e'),require(_0x2e02('0x6f')));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0x70'),require('./api/cmCustomField'));_0x3c6ba7['use'](_0x2e02('0x71'),require(_0x2e02('0x72')));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0x73'),require(_0x2e02('0x74')));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0x75'),require(_0x2e02('0x76')));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0x77'),require(_0x2e02('0x78')));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0x79'),require(_0x2e02('0x7a')));_0x3c6ba7[_0x2e02('0x19')]('/api/intervals',require(_0x2e02('0x7b')));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0x7c'),require(_0x2e02('0x7d')));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0x7e'),require(_0x2e02('0x7f')));_0x3c6ba7['use'](_0x2e02('0x80'),require('./api/voiceQueuesLog'));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0x81'),require(_0x2e02('0x82')));_0x3c6ba7[_0x2e02('0x19')]('/api/sounds',require('./api/sound'));_0x3c6ba7['use'](_0x2e02('0x83'),require(_0x2e02('0x84')));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0x85'),require('./api/template'));_0x3c6ba7[_0x2e02('0x19')]('/api/triggers',require(_0x2e02('0x86')));_0x3c6ba7[_0x2e02('0x19')]('/api/variables',require(_0x2e02('0x87')));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0x88'),require(_0x2e02('0x89')));_0x3c6ba7[_0x2e02('0x19')]('/api/integrations/reports',require('./api/integrationReport'));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0x8a'),require(_0x2e02('0x8b')));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0x8c'),require(_0x2e02('0x8d')));_0x3c6ba7[_0x2e02('0x19')]('/api/analytics/extracted_reports',require(_0x2e02('0x8e')));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0x8f'),require(_0x2e02('0x90')));_0x3c6ba7['use'](_0x2e02('0x91'),require(_0x2e02('0x92')));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0x93'),require('./api/analyticTreeReport'));_0x3c6ba7['use']('/api/integrations/salesforce/accounts',require('./api/intSalesforceAccount'));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0x94'),require(_0x2e02('0x95')));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0x96'),require('./api/intSalesforceField'));_0x3c6ba7[_0x2e02('0x19')]('/api/integrations/sugarcrm/accounts',require(_0x2e02('0x97')));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0x98'),require(_0x2e02('0x99')));_0x3c6ba7['use']('/api/integrations/sugarcrm/fields',require(_0x2e02('0x9a')));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0x9b'),require(_0x2e02('0x9c')));_0x3c6ba7[_0x2e02('0x19')]('/api/integrations/desk/configurations',require(_0x2e02('0x9d')));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0x9e'),require(_0x2e02('0x9f')));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0xa0'),require(_0x2e02('0xa1')));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0xa2'),require(_0x2e02('0xa3')));_0x3c6ba7['use'](_0x2e02('0xa4'),require(_0x2e02('0xa5')));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0xa6'),require(_0x2e02('0xa7')));_0x3c6ba7[_0x2e02('0x19')]('/api/integrations/zendesk/configurations',require(_0x2e02('0xa8')));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0xa9'),require('./api/intZendeskField'));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0xaa'),require(_0x2e02('0xab')));_0x3c6ba7[_0x2e02('0x19')]('/api/integrations/freshdesk/configurations',require(_0x2e02('0xac')));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0xad'),require('./api/intFreshdeskField'));_0x3c6ba7['use'](_0x2e02('0xae'),require(_0x2e02('0xaf')));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0xb0'),require('./api/intVtigerConfiguration'));_0x3c6ba7['use'](_0x2e02('0xb1'),require(_0x2e02('0xb2')));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0xb3'),require(_0x2e02('0xb4')));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0xb5'),require('./api/intServicenowConfiguration'));_0x3c6ba7['use'](_0x2e02('0xb6'),require('./api/intServicenowField'));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0xb7'),require(_0x2e02('0xb8')));_0x3c6ba7['use']('/api/integrations/dynamics365/configurations',require('./api/intDynamics365Configuration'));_0x3c6ba7['use']('/api/integrations/dynamics365/fields',require(_0x2e02('0xb9')));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0xba'),require(_0x2e02('0xbb')));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0xbc'),require(_0x2e02('0xbd')));_0x3c6ba7[_0x2e02('0x19')]('/api/integrations/freshsales/fields',require('./api/intFreshsalesField'));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0xbe'),require('./api/network'));_0x3c6ba7['use']('/api/chat/reports/queue',require(_0x2e02('0xbf')));_0x3c6ba7[_0x2e02('0x19')]('/api/chat/internal/messages',require('./api/chatInternalMessage'));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0xc0'),require(_0x2e02('0xc1')));_0x3c6ba7[_0x2e02('0x19')]('/api/jscripty/questions/reports',require('./api/jscriptyQuestionReport'));_0x3c6ba7[_0x2e02('0x19')]('/api/jscripty/sessions/reports',require(_0x2e02('0xc2')));_0x3c6ba7[_0x2e02('0x19')]('/api/sms/reports/queue',require(_0x2e02('0xc3')));_0x3c6ba7[_0x2e02('0x19')]('/api/square/reports',require(_0x2e02('0xc4')));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0xc5'),require(_0x2e02('0xc6')));_0x3c6ba7['use'](_0x2e02('0xc7'),require(_0x2e02('0xc8')));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0xc9'),require(_0x2e02('0xca')));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0xcb'),require(_0x2e02('0xcc')));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0xcd'),require(_0x2e02('0xce')));_0x3c6ba7['use'](_0x2e02('0xcf'),require(_0x2e02('0xd0')));_0x3c6ba7['use'](_0x2e02('0xd1'),require(_0x2e02('0xd2')));_0x3c6ba7[_0x2e02('0x19')]('/api/teams',require(_0x2e02('0xd3')));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0xd4'),require(_0x2e02('0xd5')));_0x3c6ba7['use'](_0x2e02('0xd6'),require(_0x2e02('0xd7')));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0xd8'),require(_0x2e02('0xd9')));_0x3c6ba7['use'](_0x2e02('0xda'),require('./api/attachment'));_0x3c6ba7['use'](_0x2e02('0xdb'),require(_0x2e02('0xdc')));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0xdd'),require(_0x2e02('0xde')));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0xdf'),require(_0x2e02('0xe0')));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0xe1'),require('./api/faxTransferReport'));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0xe2'),require(_0x2e02('0xe3')));_0x3c6ba7[_0x2e02('0x19')]('/api/sms/reports/transfer',require(_0x2e02('0xe4')));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0xe5'),require(_0x2e02('0xe6')));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0xe7'),require(_0x2e02('0xe8')));_0x3c6ba7['use']('/api/userProfiles',require(_0x2e02('0xe9')));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0xea'),require(_0x2e02('0xeb')));_0x3c6ba7['use'](_0x2e02('0xec'),require(_0x2e02('0xed')));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0xee'),require(_0x2e02('0xef')));_0x3c6ba7['use'](_0x2e02('0xf0'),require(_0x2e02('0xf1')));_0x3c6ba7['use']('/api/whatsapp/applications',require(_0x2e02('0xf2')));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0xf3'),require(_0x2e02('0xf4')));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0xf5'),require(_0x2e02('0xf6')));_0x3c6ba7['use'](_0x2e02('0xf7'),require('./api/whatsappQueueReport'));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0xf8'),require(_0x2e02('0xf9')));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0xfa'),require(_0x2e02('0xfb')));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0xfc'),require(_0x2e02('0xfd')));_0x3c6ba7['use'](_0x2e02('0xfe'),require(_0x2e02('0xff')));_0x3c6ba7['use'](_0x2e02('0x100'),require(_0x2e02('0x101')));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0x102'),require('./api/authGoogle'));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0x103'),require(_0x2e02('0x104')));_0x3c6ba7['use'](_0x2e02('0x105'),require(_0x2e02('0x106')));_0x3c6ba7['use'](_0x2e02('0x107'),require(_0x2e02('0x108')));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0x109'),require(_0x2e02('0x10a')));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0x10b'),require(_0x2e02('0x10c')));_0x3c6ba7['use'](_0x2e02('0x10d'),require('./api/webbar'));_0x3c6ba7['use']('/apidoc',express['static'](path[_0x2e02('0x10e')](config['root'],_0x2e02('0x10f'))));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0x110'),express[_0x2e02('0x111')](path[_0x2e02('0x10e')](config['root'],_0x2e02('0x110'))));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0x112'),express[_0x2e02('0x111')](path['join'](config[_0x2e02('0x113')],_0x2e02('0x112'))));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0x114'),express[_0x2e02('0x111')](path['join'](config[_0x2e02('0x113')],_0x2e02('0x115'),_0x2e02('0x116'))));_0x3c6ba7[_0x2e02('0x19')](_0x2e02('0x117'),express[_0x2e02('0x111')](path[_0x2e02('0x10e')](config['root'],_0x2e02('0x118'))));_0x3c6ba7['route']('/:url(api|auth|components|app|bower_components|assets)/*')[_0x2e02('0x119')](errors[0x194]);_0x3c6ba7[_0x2e02('0x11a')]('/*')[_0x2e02('0x119')](function(_0x1d3268,_0x3d0edf){_0x3d0edf[_0x2e02('0x11b')](path[_0x2e02('0x11c')](_0x3c6ba7[_0x2e02('0x119')](_0x2e02('0x11d'))+'/index.html'));});};var sensitiveFields=['username',_0x2e02('0x11e'),_0x2e02('0x11f'),_0x2e02('0x120'),_0x2e02('0x121'),'lastName',_0x2e02('0x122'),_0x2e02('0x123'),_0x2e02('0x124'),_0x2e02('0x125'),_0x2e02('0x126'),'clientId',_0x2e02('0x127'),'securityToken',_0x2e02('0x128'),'accessKey',_0x2e02('0x129'),_0x2e02('0x12a'),_0x2e02('0x12b'),'accessToken','accessTokenSecret',_0x2e02('0x12c'),_0x2e02('0x12d'),'consumerSecret',_0x2e02('0x12e'),_0x2e02('0x12f'),'calleridnum',_0x2e02('0x130'),_0x2e02('0x131'),_0x2e02('0x132'),_0x2e02('0x133'),_0x2e02('0x134'),_0x2e02('0x135'),_0x2e02('0x136'),'user',_0x2e02('0x137'),'accountSid',_0x2e02('0x138'),_0x2e02('0x139'),_0x2e02('0x13a'),_0x2e02('0x13b'),_0x2e02('0x13c')];function maskSensitiveData(_0x31abbd){var _0x4ab4e2=/(?!^)[\s\S](?!$)/g;if(!_[_0x2e02('0x13d')](_0x31abbd))return;for(var _0x163761 in _0x31abbd){if(_['isArray'](_0x31abbd[_0x163761])){for(var _0x192e8a=0x0;_0x192e8a<_0x31abbd[_0x163761]['length'];_0x192e8a++){maskSensitiveData(_0x31abbd[_0x163761][_0x192e8a]);}}else if(_[_0x2e02('0x13d')](_0x31abbd[_0x163761])){maskSensitiveData(_0x31abbd[_0x163761]);}else if(_[_0x2e02('0x13e')](_0x31abbd[_0x163761])){_0x31abbd[_0x163761]=_0x31abbd[_0x163761][_0x2e02('0x13f')](/{{{/g,'@@{')[_0x2e02('0x13f')](/}}}/g,_0x2e02('0x140'))[_0x2e02('0x13f')](/{{/g,'@{')[_0x2e02('0x13f')](/}}/g,'}@');if(_[_0x2e02('0x141')](sensitiveFields,_0x163761)){_0x31abbd[_0x163761]=_0x31abbd[_0x163761]['replace'](_0x4ab4e2,'*');}}}}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x126d=['../api/smsMessage/smsMessage.rpc','../api/smsQueue/smsQueue.rpc','../api/openchannelInteraction/openchannelInteraction.rpc','../api/openchannelQueueReport/openchannelQueueReport.rpc','../api/chatInteraction/chatInteraction.rpc','../api/chatMessage/chatMessage.rpc','../api/cmHopper/cmHopper.rpc','../api/cmHopperBlack/cmHopperBlack.rpc','../api/cmHopperFinal/cmHopperFinal.rpc','../api/cmHopperHistory/cmHopperHistory.rpc','../api/reportAgentPreview/reportAgentPreview.rpc','../api/pause/pause.rpc','../api/sound/sound.rpc','../api/template/template.rpc','../api/trigger/trigger.rpc','../api/intSalesforceAccount/intSalesforceAccount.rpc','../api/intSugarcrmAccount/intSugarcrmAccount.rpc','../api/intDeskAccount/intDeskAccount.rpc','../api/intZohoAccount/intZohoAccount.rpc','../api/intVtigerAccount/intVtigerAccount.rpc','../api/intDynamics365Account/intDynamics365Account.rpc','../api/intFreshsalesAccount/intFreshsalesAccount.rpc','../api/chatQueueReport/chatQueueReport.rpc','../api/smsQueueReport/smsQueueReport.rpc','../api/squareReport/squareReport.rpc','../api/squareReportDetail/squareReportDetail.rpc','../api/setting/setting.rpc','../api/squareOdbc/squareOdbc.rpc','../api/squareProject/squareProject.rpc','../api/squareMessage/squareMessage.rpc','../api/plugin/plugin.rpc','../api/whatsappAccount/whatsappAccount.rpc','../api/whatsappInteraction/whatsappInteraction.rpc','../api/whatsappMessage/whatsappMessage.rpc','../api/whatsappQueueReport/whatsappQueueReport.rpc','../api/whatsappQueue/whatsappQueue.rpc','http','rpc','port','localhost','error','Express\x20RPC\x20server\x20listening\x20on\x20%s:%d!','../config/triggers','default','RPC\x20listening\x20on\x20','jayson/promise','../config/environment','listen','merge','../api/user/user.rpc','../api/voiceExtension/voiceExtension.rpc','../api/voiceQueue/voiceQueue.rpc','../api/voiceRecording/voiceRecording.rpc','../api/voiceCallReport/voiceCallReport.rpc','../api/voiceDialReport/voiceDialReport.rpc','../api/memberReport/memberReport.rpc','../api/trunk/trunk.rpc','../api/voiceTransferReport/voiceTransferReport.rpc','../api/mailServerIn/mailServerIn.rpc','../api/mailAccount/mailAccount.rpc','../api/mailQueue/mailQueue.rpc','../api/mailInteraction/mailInteraction.rpc','../api/mailMessage/mailMessage.rpc','../api/mailQueueReport/mailQueueReport.rpc','../api/faxApplication/faxApplication.rpc','../api/faxInteraction/faxInteraction.rpc','../api/faxMessage/faxMessage.rpc','../api/faxQueue/faxQueue.rpc','../api/faxQueueReport/faxQueueReport.rpc','../api/smsAccount/smsAccount.rpc','../api/smsInteraction/smsInteraction.rpc'];(function(_0x52be99,_0x529187){var _0x130cd8=function(_0x3ffc4e){while(--_0x3ffc4e){_0x52be99['push'](_0x52be99['shift']());}};_0x130cd8(++_0x529187);}(_0x126d,0x102));var _0xd126=function(_0x52e5eb,_0xffd878){_0x52e5eb=_0x52e5eb-0x0;var _0x394bdb=_0x126d[_0x52e5eb];return _0x394bdb;};'use strict';var jayson=require(_0xd126('0x0'));var BPromise=require('bluebird');var _=require('lodash');var config=require(_0xd126('0x1'));exports[_0xd126('0x2')]=function(){return new BPromise(function(_0x5913e1,_0x41edd5){var _0x387c1f={};_0x387c1f=_[_0xd126('0x3')](_0x387c1f,require(_0xd126('0x4')));_0x387c1f=_[_0xd126('0x3')](_0x387c1f,require(_0xd126('0x5')));_0x387c1f=_['merge'](_0x387c1f,require(_0xd126('0x6')));_0x387c1f=_[_0xd126('0x3')](_0x387c1f,require(_0xd126('0x7')));_0x387c1f=_[_0xd126('0x3')](_0x387c1f,require(_0xd126('0x8')));_0x387c1f=_[_0xd126('0x3')](_0x387c1f,require(_0xd126('0x9')));_0x387c1f=_[_0xd126('0x3')](_0x387c1f,require('../api/voiceAgentReport/voiceAgentReport.rpc'));_0x387c1f=_[_0xd126('0x3')](_0x387c1f,require('../api/voiceQueueReport/voiceQueueReport.rpc'));_0x387c1f=_['merge'](_0x387c1f,require(_0xd126('0xa')));_0x387c1f=_['merge'](_0x387c1f,require(_0xd126('0xb')));_0x387c1f=_['merge'](_0x387c1f,require(_0xd126('0xc')));_0x387c1f=_[_0xd126('0x3')](_0x387c1f,require('../api/userVoiceQueueRt/userVoiceQueueRt.rpc'));_0x387c1f=_['merge'](_0x387c1f,require(_0xd126('0xd')));_0x387c1f=_[_0xd126('0x3')](_0x387c1f,require(_0xd126('0xe')));_0x387c1f=_['merge'](_0x387c1f,require(_0xd126('0xf')));_0x387c1f=_[_0xd126('0x3')](_0x387c1f,require(_0xd126('0x10')));_0x387c1f=_[_0xd126('0x3')](_0x387c1f,require(_0xd126('0x11')));_0x387c1f=_[_0xd126('0x3')](_0x387c1f,require('../api/mailApplication/mailApplication.rpc'));_0x387c1f=_[_0xd126('0x3')](_0x387c1f,require(_0xd126('0x12')));_0x387c1f=_['merge'](_0x387c1f,require('../api/faxAccount/faxAccount.rpc'));_0x387c1f=_[_0xd126('0x3')](_0x387c1f,require(_0xd126('0x13')));_0x387c1f=_[_0xd126('0x3')](_0x387c1f,require(_0xd126('0x14')));_0x387c1f=_['merge'](_0x387c1f,require(_0xd126('0x15')));_0x387c1f=_[_0xd126('0x3')](_0x387c1f,require(_0xd126('0x16')));_0x387c1f=_[_0xd126('0x3')](_0x387c1f,require(_0xd126('0x17')));_0x387c1f=_[_0xd126('0x3')](_0x387c1f,require(_0xd126('0x18')));_0x387c1f=_[_0xd126('0x3')](_0x387c1f,require(_0xd126('0x19')));_0x387c1f=_[_0xd126('0x3')](_0x387c1f,require(_0xd126('0x1a')));_0x387c1f=_['merge'](_0x387c1f,require(_0xd126('0x1b')));_0x387c1f=_[_0xd126('0x3')](_0x387c1f,require('../api/openchannelApplication/openchannelApplication.rpc'));_0x387c1f=_['merge'](_0x387c1f,require(_0xd126('0x1c')));_0x387c1f=_[_0xd126('0x3')](_0x387c1f,require('../api/openchannelMessage/openchannelMessage.rpc'));_0x387c1f=_[_0xd126('0x3')](_0x387c1f,require('../api/openchannelQueue/openchannelQueue.rpc'));_0x387c1f=_[_0xd126('0x3')](_0x387c1f,require(_0xd126('0x1d')));_0x387c1f=_[_0xd126('0x3')](_0x387c1f,require(_0xd126('0x1e')));_0x387c1f=_[_0xd126('0x3')](_0x387c1f,require(_0xd126('0x1f')));_0x387c1f=_[_0xd126('0x3')](_0x387c1f,require('../api/chatQueue/chatQueue.rpc'));_0x387c1f=_[_0xd126('0x3')](_0x387c1f,require('../api/cmContact/cmContact.rpc'));_0x387c1f=_[_0xd126('0x3')](_0x387c1f,require(_0xd126('0x20')));_0x387c1f=_['merge'](_0x387c1f,require(_0xd126('0x21')));_0x387c1f=_['merge'](_0x387c1f,require(_0xd126('0x22')));_0x387c1f=_[_0xd126('0x3')](_0x387c1f,require(_0xd126('0x23')));_0x387c1f=_[_0xd126('0x3')](_0x387c1f,require(_0xd126('0x24')));_0x387c1f=_['merge'](_0x387c1f,require('../api/interval/interval.rpc'));_0x387c1f=_['merge'](_0x387c1f,require(_0xd126('0x25')));_0x387c1f=_['merge'](_0x387c1f,require(_0xd126('0x26')));_0x387c1f=_[_0xd126('0x3')](_0x387c1f,require(_0xd126('0x27')));_0x387c1f=_[_0xd126('0x3')](_0x387c1f,require(_0xd126('0x28')));_0x387c1f=_['merge'](_0x387c1f,require('../api/variable/variable.rpc'));_0x387c1f=_[_0xd126('0x3')](_0x387c1f,require(_0xd126('0x29')));_0x387c1f=_[_0xd126('0x3')](_0x387c1f,require(_0xd126('0x2a')));_0x387c1f=_[_0xd126('0x3')](_0x387c1f,require(_0xd126('0x2b')));_0x387c1f=_['merge'](_0x387c1f,require(_0xd126('0x2c')));_0x387c1f=_[_0xd126('0x3')](_0x387c1f,require('../api/intZendeskAccount/intZendeskAccount.rpc'));_0x387c1f=_[_0xd126('0x3')](_0x387c1f,require('../api/intFreshdeskAccount/intFreshdeskAccount.rpc'));_0x387c1f=_['merge'](_0x387c1f,require(_0xd126('0x2d')));_0x387c1f=_[_0xd126('0x3')](_0x387c1f,require('../api/intServicenowAccount/intServicenowAccount.rpc'));_0x387c1f=_[_0xd126('0x3')](_0x387c1f,require(_0xd126('0x2e')));_0x387c1f=_['merge'](_0x387c1f,require(_0xd126('0x2f')));_0x387c1f=_[_0xd126('0x3')](_0x387c1f,require(_0xd126('0x30')));_0x387c1f=_[_0xd126('0x3')](_0x387c1f,require(_0xd126('0x31')));_0x387c1f=_['merge'](_0x387c1f,require(_0xd126('0x32')));_0x387c1f=_['merge'](_0x387c1f,require(_0xd126('0x33')));_0x387c1f=_[_0xd126('0x3')](_0x387c1f,require(_0xd126('0x34')));_0x387c1f=_[_0xd126('0x3')](_0x387c1f,require(_0xd126('0x35')));_0x387c1f=_[_0xd126('0x3')](_0x387c1f,require(_0xd126('0x36')));_0x387c1f=_[_0xd126('0x3')](_0x387c1f,require('../api/squareRecording/squareRecording.rpc'));_0x387c1f=_[_0xd126('0x3')](_0x387c1f,require(_0xd126('0x37')));_0x387c1f=_[_0xd126('0x3')](_0x387c1f,require('../api/campaign/campaign.rpc'));_0x387c1f=_['merge'](_0x387c1f,require('../api/attachment/attachment.rpc'));_0x387c1f=_['merge'](_0x387c1f,require(_0xd126('0x38')));_0x387c1f=_['merge'](_0x387c1f,require(_0xd126('0x39')));_0x387c1f=_[_0xd126('0x3')](_0x387c1f,require(_0xd126('0x3a')));_0x387c1f=_[_0xd126('0x3')](_0x387c1f,require(_0xd126('0x3b')));_0x387c1f=_[_0xd126('0x3')](_0x387c1f,require(_0xd126('0x3c')));_0x387c1f=_[_0xd126('0x3')](_0x387c1f,require(_0xd126('0x3d')));var _0x3bd4ad=jayson['server'](_0x387c1f)[_0xd126('0x3e')]();var _0x4fc37e=config[_0xd126('0x3f')][_0xd126('0x40')]||config[_0xd126('0x40')]+0x1;var _0x1a5446=config['rpc']['ip']||_0xd126('0x41');_0x3bd4ad['on'](_0xd126('0x42'),function(_0x4d43fb){return _0x41edd5(_0x4d43fb);});_0x3bd4ad['listen'](_0x4fc37e,_0x1a5446,function(){console['log'](_0xd126('0x43'),_0x1a5446,_0x4fc37e);require(_0xd126('0x44'))[_0xd126('0x45')]();return _0x5913e1(_0xd126('0x46')+_0x1a5446+':'+_0x4fc37e);});});};
\ No newline at end of file
+var _0x41b5=['listen','log','Express\x20RPC\x20server\x20listening\x20on\x20%s:%d!','default','bluebird','lodash','../config/environment','merge','../api/user/user.rpc','../api/voiceExtension/voiceExtension.rpc','../api/voiceQueue/voiceQueue.rpc','../api/voiceRecording/voiceRecording.rpc','../api/voiceCallReport/voiceCallReport.rpc','../api/voiceAgentReport/voiceAgentReport.rpc','../api/voiceQueueReport/voiceQueueReport.rpc','../api/memberReport/memberReport.rpc','../api/voiceTransferReport/voiceTransferReport.rpc','../api/userVoiceQueueRt/userVoiceQueueRt.rpc','../api/mailServerIn/mailServerIn.rpc','../api/mailQueue/mailQueue.rpc','../api/mailInteraction/mailInteraction.rpc','../api/mailApplication/mailApplication.rpc','../api/faxAccount/faxAccount.rpc','../api/faxApplication/faxApplication.rpc','../api/faxInteraction/faxInteraction.rpc','../api/faxMessage/faxMessage.rpc','../api/faxQueue/faxQueue.rpc','../api/smsAccount/smsAccount.rpc','../api/smsInteraction/smsInteraction.rpc','../api/smsMessage/smsMessage.rpc','../api/smsQueue/smsQueue.rpc','../api/openchannelApplication/openchannelApplication.rpc','../api/openchannelInteraction/openchannelInteraction.rpc','../api/openchannelMessage/openchannelMessage.rpc','../api/openchannelQueue/openchannelQueue.rpc','../api/chatInteraction/chatInteraction.rpc','../api/chatQueue/chatQueue.rpc','../api/cmContact/cmContact.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/trigger/trigger.rpc','../api/intSalesforceAccount/intSalesforceAccount.rpc','../api/intSugarcrmAccount/intSugarcrmAccount.rpc','../api/intDeskAccount/intDeskAccount.rpc','../api/intZendeskAccount/intZendeskAccount.rpc','../api/intFreshdeskAccount/intFreshdeskAccount.rpc','../api/intVtigerAccount/intVtigerAccount.rpc','../api/intServicenowAccount/intServicenowAccount.rpc','../api/intDynamics365Account/intDynamics365Account.rpc','../api/intFreshsalesAccount/intFreshsalesAccount.rpc','../api/smsQueueReport/smsQueueReport.rpc','../api/squareReport/squareReport.rpc','../api/squareReportDetail/squareReportDetail.rpc','../api/squareOdbc/squareOdbc.rpc','../api/squareRecording/squareRecording.rpc','../api/squareMessage/squareMessage.rpc','../api/campaign/campaign.rpc','../api/attachment/attachment.rpc','../api/whatsappAccount/whatsappAccount.rpc','../api/whatsappInteraction/whatsappInteraction.rpc','../api/whatsappMessage/whatsappMessage.rpc','../api/whatsappQueueReport/whatsappQueueReport.rpc','../api/whatsappQueue/whatsappQueue.rpc','server','rpc','port','localhost','error'];(function(_0x557b73,_0x43ac6c){var _0x240059=function(_0x4cfd70){while(--_0x4cfd70){_0x557b73['push'](_0x557b73['shift']());}};_0x240059(++_0x43ac6c);}(_0x41b5,0x94));var _0x541b=function(_0x5217e6,_0x3bb96d){_0x5217e6=_0x5217e6-0x0;var _0x290120=_0x41b5[_0x5217e6];return _0x290120;};'use strict';var jayson=require('jayson/promise');var BPromise=require(_0x541b('0x0'));var _=require(_0x541b('0x1'));var config=require(_0x541b('0x2'));exports['listen']=function(){return new BPromise(function(_0x19a6af,_0x3c73f3){var _0x7200d6={};_0x7200d6=_[_0x541b('0x3')](_0x7200d6,require(_0x541b('0x4')));_0x7200d6=_[_0x541b('0x3')](_0x7200d6,require(_0x541b('0x5')));_0x7200d6=_[_0x541b('0x3')](_0x7200d6,require(_0x541b('0x6')));_0x7200d6=_[_0x541b('0x3')](_0x7200d6,require(_0x541b('0x7')));_0x7200d6=_[_0x541b('0x3')](_0x7200d6,require(_0x541b('0x8')));_0x7200d6=_['merge'](_0x7200d6,require('../api/voiceDialReport/voiceDialReport.rpc'));_0x7200d6=_[_0x541b('0x3')](_0x7200d6,require(_0x541b('0x9')));_0x7200d6=_[_0x541b('0x3')](_0x7200d6,require(_0x541b('0xa')));_0x7200d6=_[_0x541b('0x3')](_0x7200d6,require(_0x541b('0xb')));_0x7200d6=_[_0x541b('0x3')](_0x7200d6,require('../api/trunk/trunk.rpc'));_0x7200d6=_[_0x541b('0x3')](_0x7200d6,require(_0x541b('0xc')));_0x7200d6=_['merge'](_0x7200d6,require(_0x541b('0xd')));_0x7200d6=_[_0x541b('0x3')](_0x7200d6,require(_0x541b('0xe')));_0x7200d6=_[_0x541b('0x3')](_0x7200d6,require('../api/mailAccount/mailAccount.rpc'));_0x7200d6=_['merge'](_0x7200d6,require(_0x541b('0xf')));_0x7200d6=_['merge'](_0x7200d6,require(_0x541b('0x10')));_0x7200d6=_[_0x541b('0x3')](_0x7200d6,require('../api/mailMessage/mailMessage.rpc'));_0x7200d6=_[_0x541b('0x3')](_0x7200d6,require(_0x541b('0x11')));_0x7200d6=_[_0x541b('0x3')](_0x7200d6,require('../api/mailQueueReport/mailQueueReport.rpc'));_0x7200d6=_['merge'](_0x7200d6,require(_0x541b('0x12')));_0x7200d6=_['merge'](_0x7200d6,require(_0x541b('0x13')));_0x7200d6=_[_0x541b('0x3')](_0x7200d6,require(_0x541b('0x14')));_0x7200d6=_[_0x541b('0x3')](_0x7200d6,require(_0x541b('0x15')));_0x7200d6=_['merge'](_0x7200d6,require(_0x541b('0x16')));_0x7200d6=_['merge'](_0x7200d6,require('../api/faxQueueReport/faxQueueReport.rpc'));_0x7200d6=_['merge'](_0x7200d6,require(_0x541b('0x17')));_0x7200d6=_['merge'](_0x7200d6,require(_0x541b('0x18')));_0x7200d6=_[_0x541b('0x3')](_0x7200d6,require(_0x541b('0x19')));_0x7200d6=_[_0x541b('0x3')](_0x7200d6,require(_0x541b('0x1a')));_0x7200d6=_['merge'](_0x7200d6,require(_0x541b('0x1b')));_0x7200d6=_[_0x541b('0x3')](_0x7200d6,require(_0x541b('0x1c')));_0x7200d6=_[_0x541b('0x3')](_0x7200d6,require(_0x541b('0x1d')));_0x7200d6=_[_0x541b('0x3')](_0x7200d6,require(_0x541b('0x1e')));_0x7200d6=_[_0x541b('0x3')](_0x7200d6,require('../api/openchannelQueueReport/openchannelQueueReport.rpc'));_0x7200d6=_[_0x541b('0x3')](_0x7200d6,require(_0x541b('0x1f')));_0x7200d6=_['merge'](_0x7200d6,require('../api/chatMessage/chatMessage.rpc'));_0x7200d6=_['merge'](_0x7200d6,require(_0x541b('0x20')));_0x7200d6=_[_0x541b('0x3')](_0x7200d6,require(_0x541b('0x21')));_0x7200d6=_[_0x541b('0x3')](_0x7200d6,require('../api/cmHopper/cmHopper.rpc'));_0x7200d6=_[_0x541b('0x3')](_0x7200d6,require('../api/cmHopperBlack/cmHopperBlack.rpc'));_0x7200d6=_[_0x541b('0x3')](_0x7200d6,require(_0x541b('0x22')));_0x7200d6=_[_0x541b('0x3')](_0x7200d6,require(_0x541b('0x23')));_0x7200d6=_[_0x541b('0x3')](_0x7200d6,require(_0x541b('0x24')));_0x7200d6=_[_0x541b('0x3')](_0x7200d6,require(_0x541b('0x25')));_0x7200d6=_[_0x541b('0x3')](_0x7200d6,require(_0x541b('0x26')));_0x7200d6=_[_0x541b('0x3')](_0x7200d6,require(_0x541b('0x27')));_0x7200d6=_[_0x541b('0x3')](_0x7200d6,require('../api/template/template.rpc'));_0x7200d6=_[_0x541b('0x3')](_0x7200d6,require(_0x541b('0x28')));_0x7200d6=_[_0x541b('0x3')](_0x7200d6,require('../api/variable/variable.rpc'));_0x7200d6=_[_0x541b('0x3')](_0x7200d6,require(_0x541b('0x29')));_0x7200d6=_[_0x541b('0x3')](_0x7200d6,require(_0x541b('0x2a')));_0x7200d6=_['merge'](_0x7200d6,require(_0x541b('0x2b')));_0x7200d6=_['merge'](_0x7200d6,require('../api/intZohoAccount/intZohoAccount.rpc'));_0x7200d6=_[_0x541b('0x3')](_0x7200d6,require(_0x541b('0x2c')));_0x7200d6=_[_0x541b('0x3')](_0x7200d6,require(_0x541b('0x2d')));_0x7200d6=_[_0x541b('0x3')](_0x7200d6,require(_0x541b('0x2e')));_0x7200d6=_['merge'](_0x7200d6,require(_0x541b('0x2f')));_0x7200d6=_['merge'](_0x7200d6,require(_0x541b('0x30')));_0x7200d6=_['merge'](_0x7200d6,require(_0x541b('0x31')));_0x7200d6=_[_0x541b('0x3')](_0x7200d6,require('../api/chatQueueReport/chatQueueReport.rpc'));_0x7200d6=_[_0x541b('0x3')](_0x7200d6,require(_0x541b('0x32')));_0x7200d6=_[_0x541b('0x3')](_0x7200d6,require(_0x541b('0x33')));_0x7200d6=_[_0x541b('0x3')](_0x7200d6,require(_0x541b('0x34')));_0x7200d6=_[_0x541b('0x3')](_0x7200d6,require('../api/setting/setting.rpc'));_0x7200d6=_['merge'](_0x7200d6,require(_0x541b('0x35')));_0x7200d6=_[_0x541b('0x3')](_0x7200d6,require('../api/squareProject/squareProject.rpc'));_0x7200d6=_['merge'](_0x7200d6,require(_0x541b('0x36')));_0x7200d6=_['merge'](_0x7200d6,require(_0x541b('0x37')));_0x7200d6=_[_0x541b('0x3')](_0x7200d6,require(_0x541b('0x38')));_0x7200d6=_[_0x541b('0x3')](_0x7200d6,require(_0x541b('0x39')));_0x7200d6=_[_0x541b('0x3')](_0x7200d6,require('../api/plugin/plugin.rpc'));_0x7200d6=_[_0x541b('0x3')](_0x7200d6,require(_0x541b('0x3a')));_0x7200d6=_[_0x541b('0x3')](_0x7200d6,require(_0x541b('0x3b')));_0x7200d6=_[_0x541b('0x3')](_0x7200d6,require(_0x541b('0x3c')));_0x7200d6=_[_0x541b('0x3')](_0x7200d6,require(_0x541b('0x3d')));_0x7200d6=_[_0x541b('0x3')](_0x7200d6,require(_0x541b('0x3e')));var _0x361298=jayson[_0x541b('0x3f')](_0x7200d6)['http']();var _0x56d3cc=config[_0x541b('0x40')][_0x541b('0x41')]||config[_0x541b('0x41')]+0x1;var _0x190982=config['rpc']['ip']||_0x541b('0x42');_0x361298['on'](_0x541b('0x43'),function(_0x30aa83){return _0x3c73f3(_0x30aa83);});_0x361298[_0x541b('0x44')](_0x56d3cc,_0x190982,function(){console[_0x541b('0x45')](_0x541b('0x46'),_0x190982,_0x56d3cc);require('../config/triggers')[_0x541b('0x47')]();return _0x19a6af('RPC\x20listening\x20on\x20'+_0x190982+':'+_0x56d3cc);});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x32f4=['join','EXEC\x20%s\x20%s','setContext','SET\x20CONTEXT\x20%s','SET\x20EXTENSION\x20%s','setPriority','hangup','setVariable','isBoolean','isNumber','toString','replace','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','recordFile','BEEP','RECORD\x20FILE\x20\x22%s\x22\x20\x22%s\x22\x20\x22%s\x22\x20%s\x20%s\x20%s','streamFile','STREAM\x20FILE\x20\x22%s\x22\x20\x22%s\x22','agi','wait','WAIT','ID:%s\x20-\x20LABEL:\x20%s\x20-\x20MSG:\x20%s','label','util','lodash','events','EventEmitter','./error','call','setEncoding','utf8','emit','ready','line','toLowerCase','substring','search','520\x20End\x20of\x20proper','no\x20code','result=','indexOf','substr','startsWith','length','match','error','code','close','E_AGI_SOCKET_CLOSE','timeout','E_AGI_SOCKET_TIMEOUT','destroy','pipe','command','function','inherits','prototype','sendRequest','sync','answer','getData','beep','GET\x20DATA\x20\x22%s\x22\x20%s\x20%s','noop','NO\x20MESSAGE','format','exec','isArray'];(function(_0x515a41,_0x4c631c){var _0x5a435b=function(_0x5dc9b4){while(--_0x5dc9b4){_0x515a41['push'](_0x515a41['shift']());}};_0x5a435b(++_0x4c631c);}(_0x32f4,0x154));var _0x432f=function(_0x2d5c22,_0x3d6e55){_0x2d5c22=_0x2d5c22-0x0;var _0x3bc75e=_0x32f4[_0x2d5c22];return _0x3bc75e;};'use strict';var util=require(_0x432f('0x0'));var _=require(_0x432f('0x1'));var EventEmitter=require(_0x432f('0x2'))[_0x432f('0x3')];var AGIReply=require('./reply');var AGIError=require(_0x432f('0x4'));function AGIChannel(_0x6f0e8a){var _0x51a71a=this,_0x354293=new AGIReply(),_0x1eabac=![],_0x344a29={};EventEmitter[_0x432f('0x5')](_0x51a71a);_0x6f0e8a[_0x432f('0x6')]('utf8');_0x6f0e8a['setTimeout'](0x8*0x3c*0x3c*0x3e8);_0x354293[_0x432f('0x6')](_0x432f('0x7'));_0x354293['on']('headers',function(_0x2a2ef6){for(var _0x5aaf1a in _0x2a2ef6){_0x51a71a[_0x5aaf1a]=_0x2a2ef6[_0x5aaf1a];}_0x51a71a[_0x432f('0x8')](_0x432f('0x9'));});_0x354293['on'](_0x432f('0xa'),function(_0x13369a){if(_0x13369a[_0x432f('0xb')]()=='hangup'){_0x51a71a[_0x432f('0x8')]('hangup');return;}if(_0x13369a[_0x432f('0xc')](0x0,0xb)=='520-Invalid'){_0x1eabac=!![];}if(_0x1eabac){_0x344a29['rx']+=_0x13369a+'\x0a';if(_0x13369a[_0x432f('0xd')](_0x432f('0xe'))!=-0x1){_0x1eabac=![];}}else{_0x344a29['rx']=_0x13369a;}if(_0x1eabac){return;}if(typeof _0x344a29['cb']=='function'){var _0x457389=_0x344a29['rx'][_0x432f('0xc')](0x0,0x3),_0x29f7d2=null,_0x52e40f=null;_0x457389=parseInt(_0x457389);if(isNaN(_0x457389)){_0x344a29['cb'](null,{'code':0x1f4,'result':-0x1,'extra':_0x432f('0xf')});return;}if(_0x457389!=0xc8){_0x344a29['cb'](null,{'code':_0x457389,'result':-0x1,'extra':'KO'});return;}_0x29f7d2=_0x344a29['rx']['substring'](0x4)['replace'](_0x432f('0x10'),'');if(_0x29f7d2[_0x432f('0x11')]('\x20')!=-0x1){_0x29f7d2=_0x29f7d2[_0x432f('0x12')](0x0,_0x29f7d2[_0x432f('0x11')]('\x20'));}if(_[_0x432f('0x13')](_0x29f7d2,'-1')){_0x29f7d2=parseInt(_0x29f7d2);}_0x52e40f=_0x344a29['rx']['split']('\x20');if(_0x52e40f[_0x432f('0x14')]==0x3){_0x52e40f=_0x52e40f[0x2][_0x432f('0xc')](0x1,_0x52e40f[0x2][_0x432f('0x14')]-0x1);}else if(_0x52e40f[_0x432f('0x14')]>0x3){var _0x5bae29=/\((.+)\)/;var _0xdd0293=_0x344a29['rx'][_0x432f('0x15')](_0x5bae29);if(_0xdd0293){_0x52e40f=_0xdd0293[0x1];}else{_0x52e40f=null;}}else{_0x52e40f=null;}_0x344a29['cb'](null,{'code':_0x457389,'result':_0x29f7d2,'extra':_0x52e40f});}});_0x6f0e8a['on'](_0x432f('0x16'),function(_0x243cf){_0x51a71a[_0x432f('0x8')](_0x432f('0x16'),new AGIError('E_AGI_SOCKET_ERROR',_0x243cf[_0x432f('0x17')]));});_0x6f0e8a['on']('close',function(){_0x51a71a[_0x432f('0x8')](_0x432f('0x18'),new AGIError(_0x432f('0x19')));});_0x6f0e8a['on'](_0x432f('0x1a'),function(){_0x51a71a[_0x432f('0x8')](_0x432f('0x1a'),new AGIError(_0x432f('0x1b')));_0x6f0e8a[_0x432f('0x1c')]();});_0x6f0e8a[_0x432f('0x1d')](_0x354293);this[_0x432f('0x1e')]=function(_0x40176d,_0x3446fd){var _0x40176d=_0x40176d||'',_0x3446fd=typeof _0x3446fd==_0x432f('0x1f')?_0x3446fd:new Function();_0x344a29={'tx':_0x40176d,'rx':'','cb':_0x3446fd};_0x6f0e8a['write'](_0x40176d+'\x0a');},this[_0x432f('0x18')]=function(){_0x6f0e8a['destroy']();};}util[_0x432f('0x20')](AGIChannel,EventEmitter);AGIChannel[_0x432f('0x21')][_0x432f('0x22')]=function(_0x89ea50){return this[_0x432f('0x1e')][_0x432f('0x23')](this,_0x89ea50);};AGIChannel['prototype'][_0x432f('0x24')]=function(){return this[_0x432f('0x22')]('ANSWER');};AGIChannel[_0x432f('0x21')][_0x432f('0x25')]=function(_0x2bcbb4,_0x23347e,_0x44839){_0x2bcbb4=_0x2bcbb4===undefined?_0x432f('0x26'):_0x2bcbb4;_0x23347e=_0x23347e===undefined?'5':_0x23347e;_0x44839=_0x44839===undefined?'1':_0x44839;return this[_0x432f('0x22')](util['format'](_0x432f('0x27'),_0x2bcbb4,_0x23347e*0x3e8,_0x44839));};AGIChannel['prototype'][_0x432f('0x28')]=function(_0x573cc5){_0x573cc5=_0x573cc5||_0x432f('0x29');return this['sendRequest'](util[_0x432f('0x2a')]('VERBOSE\x20\x22%s\x22',_0x573cc5));};AGIChannel[_0x432f('0x21')][_0x432f('0x2b')]=function(_0x263cd8,_0x59c1ab){if(_[_0x432f('0x2c')](_0x59c1ab)){return this[_0x432f('0x22')](util['format']('EXEC\x20%s\x20%s',_0x263cd8,_0x59c1ab[_0x432f('0x2d')](',')));}return this[_0x432f('0x22')](util[_0x432f('0x2a')](_0x432f('0x2e'),_0x263cd8,_0x59c1ab));};AGIChannel[_0x432f('0x21')][_0x432f('0x2f')]=function(_0x5320a0){return this['sendRequest'](util[_0x432f('0x2a')](_0x432f('0x30'),_0x5320a0));};AGIChannel[_0x432f('0x21')]['setExtension']=function(_0xb7c1dd){return this[_0x432f('0x22')](util[_0x432f('0x2a')](_0x432f('0x31'),_0xb7c1dd));};AGIChannel[_0x432f('0x21')][_0x432f('0x32')]=function(_0x36e700){return this[_0x432f('0x22')](util['format']('SET\x20PRIORITY\x20%s',_0x36e700));};AGIChannel[_0x432f('0x21')][_0x432f('0x33')]=function(){return this['sendRequest']('HANGUP');};AGIChannel['prototype'][_0x432f('0x34')]=function(_0x141141,_0x5648a7){var _0x382a25=_[_0x432f('0x35')](_0x5648a7)||_[_0x432f('0x36')](_0x5648a7)?_0x5648a7['toString']():_0x5648a7;return this[_0x432f('0x22')](util[_0x432f('0x2a')]('SET\x20VARIABLE\x20%s\x20\x22%s\x22',_0x141141,_0x382a25?_0x382a25[_0x432f('0x37')]()[_0x432f('0x38')](/(\r\n|\n|\r)/gm,'\x20'):''));};AGIChannel['prototype'][_0x432f('0x39')]=function(_0x41b292,_0x148a95){return this[_0x432f('0x22')](util[_0x432f('0x2a')](_0x432f('0x3a'),_0x41b292,_0x148a95));};AGIChannel[_0x432f('0x21')][_0x432f('0x3b')]=function(_0x244970,_0x2545b7){return this[_0x432f('0x22')](util['format'](_0x432f('0x3c'),_0x244970,_0x2545b7));};AGIChannel['prototype'][_0x432f('0x3d')]=function(_0x3e8a0a,_0x4f38e5){return this[_0x432f('0x22')](util['format'](_0x432f('0x3e'),_0x3e8a0a,_0x4f38e5));};AGIChannel[_0x432f('0x21')]['continueAt']=function(_0x490db5,_0xbd4240,_0x25ae0d){_0xbd4240=_0xbd4240||this[_0x432f('0x3f')];_0x25ae0d=_0x25ae0d||0x1;this[_0x432f('0x2f')](_0x490db5);this[_0x432f('0x40')](_0xbd4240);this['setPriority'](_0x25ae0d);return this['noop'](util['format'](_0x432f('0x41'),_0x490db5,_0xbd4240,_0x25ae0d));};AGIChannel[_0x432f('0x21')]['getVariable']=function(_0x1f58af){return this[_0x432f('0x22')](util[_0x432f('0x2a')](_0x432f('0x42'),_0x1f58af));};AGIChannel[_0x432f('0x21')][_0x432f('0x43')]=function(_0x2c32d1,_0x1a2be2,_0x1c5f87,_0x5c6298,_0x247b63,_0xd8264f){_0x1a2be2=_0x1a2be2||'wav';_0x1c5f87=_0x1c5f87||'';_0x5c6298=_0x5c6298===undefined?-0x1:_0x5c6298==='-1'?-0x1:_0x5c6298*0x3e8;_0x247b63=_0x247b63===undefined?'':'s='+_0x247b63;_0xd8264f=_0xd8264f?_0x432f('0x44'):'';return this[_0x432f('0x22')](util[_0x432f('0x2a')](_0x432f('0x45'),_0x2c32d1,_0x1a2be2,_0x1c5f87,_0x5c6298,_0xd8264f,_0x247b63));};AGIChannel[_0x432f('0x21')][_0x432f('0x46')]=function(_0x5c4cf0,_0x14a55c){_0x14a55c=_0x14a55c||'';return this[_0x432f('0x22')](util[_0x432f('0x2a')](_0x432f('0x47'),_0x5c4cf0,_0x14a55c));};AGIChannel[_0x432f('0x21')][_0x432f('0x48')]=function(_0x77938b){return this['exec']('AGI',_0x77938b);};AGIChannel[_0x432f('0x21')][_0x432f('0x49')]=function(_0xcbdcc0){return this[_0x432f('0x2b')](_0x432f('0x4a'),_0xcbdcc0);};AGIChannel['prototype'][_0x432f('0x16')]=function(_0x23ee80,_0x46c5ee){this[_0x432f('0x28')](util[_0x432f('0x2a')](_0x432f('0x4b'),_0x23ee80['id'],_0x23ee80[_0x432f('0x4c')],_0x46c5ee));return{'code':0x1f4,'result':'-1','extra':''};};module['exports']=AGIChannel;
\ No newline at end of file
+var _0x477f=['streamFile','STREAM\x20FILE\x20\x22%s\x22\x20\x22%s\x22','agi','AGI','WAIT','ID:%s\x20-\x20LABEL:\x20%s\x20-\x20MSG:\x20%s','label','exports','events','EventEmitter','./reply','./error','call','setEncoding','setTimeout','headers','emit','ready','toLowerCase','hangup','520-Invalid','search','520\x20End\x20of\x20proper','function','no\x20code','replace','indexOf','startsWith','split','length','match','error','E_AGI_SOCKET_ERROR','code','close','E_AGI_SOCKET_CLOSE','timeout','pipe','command','write','destroy','inherits','prototype','sync','answer','sendRequest','ANSWER','beep','format','noop','NO\x20MESSAGE','VERBOSE\x20\x22%s\x22','exec','isArray','EXEC\x20%s\x20%s','join','SET\x20CONTEXT\x20%s','setExtension','SET\x20EXTENSION\x20%s','setPriority','SET\x20PRIORITY\x20%s','HANGUP','setVariable','isNumber','toString','sayNumber','SAY\x20NUMBER\x20%s\x20%s','sayDigits','SAY\x20DIGITS\x20%s\x20%s','sayPhonetic','continueAt','setContext','GOTO\x20%s\x20%s\x20%s','getVariable','GET\x20VARIABLE\x20\x22%s\x22','recordFile','wav','RECORD\x20FILE\x20\x22%s\x22\x20\x22%s\x22\x20\x22%s\x22\x20%s\x20%s\x20%s'];(function(_0x28947d,_0x4cc9c6){var _0x12d2ee=function(_0x3f38fc){while(--_0x3f38fc){_0x28947d['push'](_0x28947d['shift']());}};_0x12d2ee(++_0x4cc9c6);}(_0x477f,0x1dc));var _0xf477=function(_0x56349e,_0x535368){_0x56349e=_0x56349e-0x0;var _0x3df632=_0x477f[_0x56349e];return _0x3df632;};'use strict';var util=require('util');var _=require('lodash');var EventEmitter=require(_0xf477('0x0'))[_0xf477('0x1')];var AGIReply=require(_0xf477('0x2'));var AGIError=require(_0xf477('0x3'));function AGIChannel(_0x32606e){var _0x2b8431=this,_0x209f1b=new AGIReply(),_0x456382=![],_0x41e8a5={};EventEmitter[_0xf477('0x4')](_0x2b8431);_0x32606e[_0xf477('0x5')]('utf8');_0x32606e[_0xf477('0x6')](0x8*0x3c*0x3c*0x3e8);_0x209f1b['setEncoding']('utf8');_0x209f1b['on'](_0xf477('0x7'),function(_0x1e1f4c){for(var _0xedaf6c in _0x1e1f4c){_0x2b8431[_0xedaf6c]=_0x1e1f4c[_0xedaf6c];}_0x2b8431[_0xf477('0x8')](_0xf477('0x9'));});_0x209f1b['on']('line',function(_0x1a14b4){if(_0x1a14b4[_0xf477('0xa')]()==_0xf477('0xb')){_0x2b8431[_0xf477('0x8')](_0xf477('0xb'));return;}if(_0x1a14b4['substring'](0x0,0xb)==_0xf477('0xc')){_0x456382=!![];}if(_0x456382){_0x41e8a5['rx']+=_0x1a14b4+'\x0a';if(_0x1a14b4[_0xf477('0xd')](_0xf477('0xe'))!=-0x1){_0x456382=![];}}else{_0x41e8a5['rx']=_0x1a14b4;}if(_0x456382){return;}if(typeof _0x41e8a5['cb']==_0xf477('0xf')){var _0x3b7dac=_0x41e8a5['rx']['substring'](0x0,0x3),_0x120cb0=null,_0x5d9ed7=null;_0x3b7dac=parseInt(_0x3b7dac);if(isNaN(_0x3b7dac)){_0x41e8a5['cb'](null,{'code':0x1f4,'result':-0x1,'extra':_0xf477('0x10')});return;}if(_0x3b7dac!=0xc8){_0x41e8a5['cb'](null,{'code':_0x3b7dac,'result':-0x1,'extra':'KO'});return;}_0x120cb0=_0x41e8a5['rx']['substring'](0x4)[_0xf477('0x11')]('result=','');if(_0x120cb0[_0xf477('0x12')]('\x20')!=-0x1){_0x120cb0=_0x120cb0['substr'](0x0,_0x120cb0['indexOf']('\x20'));}if(_[_0xf477('0x13')](_0x120cb0,'-1')){_0x120cb0=parseInt(_0x120cb0);}_0x5d9ed7=_0x41e8a5['rx'][_0xf477('0x14')]('\x20');if(_0x5d9ed7[_0xf477('0x15')]==0x3){_0x5d9ed7=_0x5d9ed7[0x2]['substring'](0x1,_0x5d9ed7[0x2][_0xf477('0x15')]-0x1);}else if(_0x5d9ed7[_0xf477('0x15')]>0x3){var _0x4a509f=/\((.+)\)/;var _0x3458e4=_0x41e8a5['rx'][_0xf477('0x16')](_0x4a509f);if(_0x3458e4){_0x5d9ed7=_0x3458e4[0x1];}else{_0x5d9ed7=null;}}else{_0x5d9ed7=null;}_0x41e8a5['cb'](null,{'code':_0x3b7dac,'result':_0x120cb0,'extra':_0x5d9ed7});}});_0x32606e['on'](_0xf477('0x17'),function(_0x4b4ffb){_0x2b8431['emit'](_0xf477('0x17'),new AGIError(_0xf477('0x18'),_0x4b4ffb[_0xf477('0x19')]));});_0x32606e['on']('close',function(){_0x2b8431[_0xf477('0x8')](_0xf477('0x1a'),new AGIError(_0xf477('0x1b')));});_0x32606e['on'](_0xf477('0x1c'),function(){_0x2b8431[_0xf477('0x8')](_0xf477('0x1c'),new AGIError('E_AGI_SOCKET_TIMEOUT'));_0x32606e['destroy']();});_0x32606e[_0xf477('0x1d')](_0x209f1b);this[_0xf477('0x1e')]=function(_0x1c522c,_0xf0308d){var _0x1c522c=_0x1c522c||'',_0xf0308d=typeof _0xf0308d=='function'?_0xf0308d:new Function();_0x41e8a5={'tx':_0x1c522c,'rx':'','cb':_0xf0308d};_0x32606e[_0xf477('0x1f')](_0x1c522c+'\x0a');},this[_0xf477('0x1a')]=function(){_0x32606e[_0xf477('0x20')]();};}util[_0xf477('0x21')](AGIChannel,EventEmitter);AGIChannel[_0xf477('0x22')]['sendRequest']=function(_0x482d4e){return this[_0xf477('0x1e')][_0xf477('0x23')](this,_0x482d4e);};AGIChannel[_0xf477('0x22')][_0xf477('0x24')]=function(){return this[_0xf477('0x25')](_0xf477('0x26'));};AGIChannel['prototype']['getData']=function(_0x50d3c1,_0x1d8b2f,_0x591ed8){_0x50d3c1=_0x50d3c1===undefined?_0xf477('0x27'):_0x50d3c1;_0x1d8b2f=_0x1d8b2f===undefined?'5':_0x1d8b2f;_0x591ed8=_0x591ed8===undefined?'1':_0x591ed8;return this[_0xf477('0x25')](util[_0xf477('0x28')]('GET\x20DATA\x20\x22%s\x22\x20%s\x20%s',_0x50d3c1,_0x1d8b2f*0x3e8,_0x591ed8));};AGIChannel[_0xf477('0x22')][_0xf477('0x29')]=function(_0x472702){_0x472702=_0x472702||_0xf477('0x2a');return this['sendRequest'](util[_0xf477('0x28')](_0xf477('0x2b'),_0x472702));};AGIChannel[_0xf477('0x22')][_0xf477('0x2c')]=function(_0x548240,_0x5765c7){if(_[_0xf477('0x2d')](_0x5765c7)){return this[_0xf477('0x25')](util[_0xf477('0x28')](_0xf477('0x2e'),_0x548240,_0x5765c7[_0xf477('0x2f')](',')));}return this[_0xf477('0x25')](util[_0xf477('0x28')](_0xf477('0x2e'),_0x548240,_0x5765c7));};AGIChannel['prototype']['setContext']=function(_0x192b74){return this[_0xf477('0x25')](util[_0xf477('0x28')](_0xf477('0x30'),_0x192b74));};AGIChannel[_0xf477('0x22')][_0xf477('0x31')]=function(_0x4bd3b1){return this[_0xf477('0x25')](util[_0xf477('0x28')](_0xf477('0x32'),_0x4bd3b1));};AGIChannel[_0xf477('0x22')][_0xf477('0x33')]=function(_0x113ef2){return this[_0xf477('0x25')](util[_0xf477('0x28')](_0xf477('0x34'),_0x113ef2));};AGIChannel[_0xf477('0x22')][_0xf477('0xb')]=function(){return this['sendRequest'](_0xf477('0x35'));};AGIChannel[_0xf477('0x22')][_0xf477('0x36')]=function(_0x560798,_0x2a27ca){var _0x148c0e=_['isBoolean'](_0x2a27ca)||_[_0xf477('0x37')](_0x2a27ca)?_0x2a27ca['toString']():_0x2a27ca;return this[_0xf477('0x25')](util[_0xf477('0x28')]('SET\x20VARIABLE\x20%s\x20\x22%s\x22',_0x560798,_0x148c0e?_0x148c0e[_0xf477('0x38')]()[_0xf477('0x11')](/(\r\n|\n|\r)/gm,'\x20'):''));};AGIChannel[_0xf477('0x22')][_0xf477('0x39')]=function(_0x53c079,_0x44cd53){return this[_0xf477('0x25')](util[_0xf477('0x28')](_0xf477('0x3a'),_0x53c079,_0x44cd53));};AGIChannel[_0xf477('0x22')][_0xf477('0x3b')]=function(_0x520196,_0x5cccd8){return this[_0xf477('0x25')](util[_0xf477('0x28')](_0xf477('0x3c'),_0x520196,_0x5cccd8));};AGIChannel[_0xf477('0x22')][_0xf477('0x3d')]=function(_0xb6a66d,_0x4175af){return this[_0xf477('0x25')](util[_0xf477('0x28')]('SAY\x20PHONETIC\x20\x22%s\x22\x20%s',_0xb6a66d,_0x4175af));};AGIChannel['prototype'][_0xf477('0x3e')]=function(_0x181e99,_0x155038,_0x1622cf){_0x155038=_0x155038||this['extension'];_0x1622cf=_0x1622cf||0x1;this[_0xf477('0x3f')](_0x181e99);this[_0xf477('0x31')](_0x155038);this[_0xf477('0x33')](_0x1622cf);return this[_0xf477('0x29')](util[_0xf477('0x28')](_0xf477('0x40'),_0x181e99,_0x155038,_0x1622cf));};AGIChannel['prototype'][_0xf477('0x41')]=function(_0x537e89){return this['sendRequest'](util['format'](_0xf477('0x42'),_0x537e89));};AGIChannel[_0xf477('0x22')][_0xf477('0x43')]=function(_0x4f7658,_0x263f5a,_0x3cb94c,_0x48335c,_0xd3254b,_0x54a23c){_0x263f5a=_0x263f5a||_0xf477('0x44');_0x3cb94c=_0x3cb94c||'';_0x48335c=_0x48335c===undefined?-0x1:_0x48335c==='-1'?-0x1:_0x48335c*0x3e8;_0xd3254b=_0xd3254b===undefined?'':'s='+_0xd3254b;_0x54a23c=_0x54a23c?'BEEP':'';return this[_0xf477('0x25')](util[_0xf477('0x28')](_0xf477('0x45'),_0x4f7658,_0x263f5a,_0x3cb94c,_0x48335c,_0x54a23c,_0xd3254b));};AGIChannel[_0xf477('0x22')][_0xf477('0x46')]=function(_0x3e2e3a,_0x5676e2){_0x5676e2=_0x5676e2||'';return this[_0xf477('0x25')](util[_0xf477('0x28')](_0xf477('0x47'),_0x3e2e3a,_0x5676e2));};AGIChannel[_0xf477('0x22')][_0xf477('0x48')]=function(_0x3395af){return this[_0xf477('0x2c')](_0xf477('0x49'),_0x3395af);};AGIChannel[_0xf477('0x22')]['wait']=function(_0x58d0e7){return this['exec'](_0xf477('0x4a'),_0x58d0e7);};AGIChannel[_0xf477('0x22')][_0xf477('0x17')]=function(_0x5b0e2c,_0x29c858){this[_0xf477('0x29')](util['format'](_0xf477('0x4b'),_0x5b0e2c['id'],_0x5b0e2c[_0xf477('0x4c')],_0x29c858));return{'code':0x1f4,'result':'-1','extra':''};};module[_0xf477('0x4d')]=AGIChannel;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3f07=['Missing\x20\x27ivr.entry\x27\x20menu.','push','format','apply','exports','Undefined\x20error.','Argument\x20\x27port\x27\x20missing\x20in\x20function\x20call.','Server\x20error.\x20Code:\x20%s.','[LICENSE]\x20Server\x20max\x20connection.\x20Count:\x20%s.','[LICENSE\x20VOICE]\x20Server\x20license\x20voice\x20disabled.','Socket\x20error.\x20Code:\x20%s.','Socket\x20closed.','Socket\x20timeout.','Empty\x20command.','Missing\x20\x27ivr.agi_network_script\x27.'];(function(_0x12255e,_0x168de4){var _0x3b375f=function(_0x121bd6){while(--_0x121bd6){_0x12255e['push'](_0x12255e['shift']());}};_0x3b375f(++_0x168de4);}(_0x3f07,0x140));var _0x73f0=function(_0x4f1423,_0x13cc99){_0x4f1423=_0x4f1423-0x0;var _0x33c235=_0x3f07[_0x4f1423];return _0x33c235;};'use strict';var util=require('util');var error={'E_AGI_UNDEFINED':_0x73f0('0x0'),'E_AGI_ARGUMENT_PORT':_0x73f0('0x1'),'E_AGI_SERVER_ERROR':_0x73f0('0x2'),'E_AGI_SERVER_CLOSE':'Server\x20closed.','E_AGI_SERVER_MAXCONNECTION':_0x73f0('0x3'),'E_AGI_SERVER_VOICE_DISABLED':_0x73f0('0x4'),'E_AGI_SOCKET_ERROR':_0x73f0('0x5'),'E_AGI_SOCKET_CLOSE':_0x73f0('0x6'),'E_AGI_SOCKET_TIMEOUT':_0x73f0('0x7'),'E_AGI_COMMAND_EMPTY':_0x73f0('0x8'),'E_AGI_IVR_AGI_NETWORK_SCRIPT':_0x73f0('0x9'),'E_AGI_IVR_ENTRY':_0x73f0('0xa')};function AGIError(_0x3f72be){var _0x3f72be=_0x3f72be||null,_0x45176f=_0x45176f||[],_0x4a15c0=0x1,_0x469607='';if(!error[_0x3f72be]){_0x3f72be='E_AGI_UNDEFINED';}_0x45176f['push'](error[_0x3f72be]);while(arguments[_0x4a15c0]){_0x45176f[_0x73f0('0xb')](arguments[_0x4a15c0]);_0x4a15c0++;}_0x469607=util[_0x73f0('0xc')][_0x73f0('0xd')](util,_0x45176f);this['message']=_0x469607;this['name']=_0x3f72be;}module[_0x73f0('0xe')]=AGIError;
\ No newline at end of file
+var _0x9e34=['Argument\x20\x27port\x27\x20missing\x20in\x20function\x20call.','Server\x20error.\x20Code:\x20%s.','Server\x20closed.','Socket\x20closed.','Missing\x20\x27ivr.agi_network_script\x27.','E_AGI_UNDEFINED','push','format','apply','message','name','exports','util','Undefined\x20error.'];(function(_0xe3b7bb,_0x263836){var _0x2df486=function(_0x527828){while(--_0x527828){_0xe3b7bb['push'](_0xe3b7bb['shift']());}};_0x2df486(++_0x263836);}(_0x9e34,0x194));var _0x49e3=function(_0x42bdad,_0x12836c){_0x42bdad=_0x42bdad-0x0;var _0x122626=_0x9e34[_0x42bdad];return _0x122626;};'use strict';var util=require(_0x49e3('0x0'));var error={'E_AGI_UNDEFINED':_0x49e3('0x1'),'E_AGI_ARGUMENT_PORT':_0x49e3('0x2'),'E_AGI_SERVER_ERROR':_0x49e3('0x3'),'E_AGI_SERVER_CLOSE':_0x49e3('0x4'),'E_AGI_SERVER_MAXCONNECTION':'[LICENSE]\x20Server\x20max\x20connection.\x20Count:\x20%s.','E_AGI_SERVER_VOICE_DISABLED':'[LICENSE\x20VOICE]\x20Server\x20license\x20voice\x20disabled.','E_AGI_SOCKET_ERROR':'Socket\x20error.\x20Code:\x20%s.','E_AGI_SOCKET_CLOSE':_0x49e3('0x5'),'E_AGI_SOCKET_TIMEOUT':'Socket\x20timeout.','E_AGI_COMMAND_EMPTY':'Empty\x20command.','E_AGI_IVR_AGI_NETWORK_SCRIPT':_0x49e3('0x6'),'E_AGI_IVR_ENTRY':'Missing\x20\x27ivr.entry\x27\x20menu.'};function AGIError(_0x721bc5){var _0x721bc5=_0x721bc5||null,_0x7d41d5=_0x7d41d5||[],_0xa56f08=0x1,_0x5f0ea3='';if(!error[_0x721bc5]){_0x721bc5=_0x49e3('0x7');}_0x7d41d5[_0x49e3('0x8')](error[_0x721bc5]);while(arguments[_0xa56f08]){_0x7d41d5[_0x49e3('0x8')](arguments[_0xa56f08]);_0xa56f08++;}_0x5f0ea3=util[_0x49e3('0x9')][_0x49e3('0xa')](util,_0x7d41d5);this[_0x49e3('0xb')]=_0x5f0ea3;this[_0x49e3('0xc')]=_0x721bc5;}module[_0x49e3('0xd')]=AGIError;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc175=['push','prototype','size','relations','getVertex','traverseBFS','info','no\x20vertex\x20found','stop\x20traverse','length','condition','agicommand','vswitch','target','default','max\x20retry\x20reach','condition\x20not\x20found','exports','lodash','../../../config/logger','agi','menu','getsecretdigits','vertices','edges','numberOfEdges','addEdge'];(function(_0x2641f9,_0x26715f){var _0x585741=function(_0x2d1462){while(--_0x2d1462){_0x2641f9['push'](_0x2641f9['shift']());}};_0x585741(++_0x26715f);}(_0xc175,0x171));var _0x5c17=function(_0x55d93e,_0x4a782d){_0x55d93e=_0x55d93e-0x0;var _0x3c7e49=_0xc175[_0x55d93e];return _0x3c7e49;};'use strict';var _=require(_0x5c17('0x0'));var logger=require(_0x5c17('0x1'))(_0x5c17('0x2'));var verticesWithRetry=[_0x5c17('0x3'),'getdigits',_0x5c17('0x4')];var Graph=function(){this[_0x5c17('0x5')]={};this[_0x5c17('0x6')]={};this[_0x5c17('0x7')]=0x0;};Graph['prototype']['addVertex']=function(_0x413c0d){this['vertices'][_0x413c0d['id']]=_0x413c0d;this[_0x5c17('0x6')][_0x413c0d['id']]=[];};Graph['prototype'][_0x5c17('0x8')]=function(_0x558dd7,_0x54d5e9,_0x3506ae){this[_0x5c17('0x6')][_0x558dd7][_0x5c17('0x9')]({'target':_0x54d5e9,'condition':_0x3506ae});this[_0x5c17('0x7')]+=0x1;};Graph[_0x5c17('0xa')][_0x5c17('0xb')]=function(){return _[_0x5c17('0xb')](this[_0x5c17('0x5')]);};Graph['prototype'][_0x5c17('0xc')]=function(){return this[_0x5c17('0x7')];};Graph[_0x5c17('0xa')][_0x5c17('0xd')]=function(_0xbb974){return this[_0x5c17('0x5')][_0xbb974];};Graph[_0x5c17('0xa')][_0x5c17('0xe')]=function(_0x3e9679,_0x5a660c){if(!this[_0x5c17('0x5')][_0x3e9679]){return logger[_0x5c17('0xf')](_0x5c17('0x10'));}var _0x133fda=_0x5a660c(this[_0x5c17('0x5')][_0x3e9679]);if(!_0x133fda){return logger[_0x5c17('0xf')](_0x5c17('0x11'));}if(this[_0x5c17('0x6')][_0x3e9679][_0x5c17('0x12')]===0x0){return logger['info']('no\x20edge/s\x20available');}for(var _0x2fd0d3=0x0,_0x35269c=[],_0x2e212c=![];_0x2fd0d3<this[_0x5c17('0x6')][_0x3e9679][_0x5c17('0x12')];_0x2fd0d3+=0x1){if(this[_0x5c17('0x6')][_0x3e9679][_0x2fd0d3][_0x5c17('0x13')]){_0x35269c=this[_0x5c17('0x6')][_0x3e9679][_0x2fd0d3][_0x5c17('0x13')]['split'](',');for(var _0x3fc7a7=0x0;_0x3fc7a7<_0x35269c[_0x5c17('0x12')];_0x3fc7a7+=0x1){if(this[_0x5c17('0x5')][_0x3e9679][_0x5c17('0x14')]===_0x5c17('0x15')&&_0x35269c[_0x3fc7a7]==='-'){_0x2e212c=this['edges'][_0x3e9679][_0x2fd0d3][_0x5c17('0x16')];logger[_0x5c17('0xf')](_0x5c17('0x17'),_0x35269c[_0x3fc7a7],this[_0x5c17('0x6')][_0x3e9679][_0x2fd0d3][_0x5c17('0x16')]);}else if(this[_0x5c17('0x5')][_0x3e9679]['agicommand']==='menu'&&_0x35269c[_0x3fc7a7]==='i'){_0x2e212c=this[_0x5c17('0x6')][_0x3e9679][_0x2fd0d3][_0x5c17('0x16')];logger[_0x5c17('0xf')]('invalid',_0x35269c[_0x3fc7a7],this[_0x5c17('0x6')][_0x3e9679][_0x2fd0d3][_0x5c17('0x16')]);}if(_0x35269c[_0x3fc7a7]===_0x133fda){return this['traverseBFS'](this[_0x5c17('0x6')][_0x3e9679][_0x2fd0d3][_0x5c17('0x16')],_0x5a660c);}}}else{return this[_0x5c17('0xe')](this[_0x5c17('0x6')][_0x3e9679][_0x2fd0d3][_0x5c17('0x16')],_0x5a660c);}}if(_0x35269c['length']){if(this[_0x5c17('0x5')][_0x3e9679][_0x5c17('0x14')]===_0x5c17('0x15')){if(_0x2e212c){return this[_0x5c17('0xe')](_0x2e212c,_0x5a660c);}return logger['info']('default\x20on\x20switch\x20not\x20found');}else if(_['includes'](verticesWithRetry,this[_0x5c17('0x5')][_0x3e9679][_0x5c17('0x14')])){if(_0x133fda==='-'){return logger[_0x5c17('0xf')](_0x5c17('0x18'));}if(_0x2e212c&&_0x133fda!=='t'){return this['traverseBFS'](_0x2e212c,_0x5a660c);}return this[_0x5c17('0xe')](_0x3e9679,_0x5a660c);}return logger[_0x5c17('0xf')](_0x5c17('0x19'));}};module[_0x5c17('0x1a')]=Graph;
\ No newline at end of file
+var _0x3b93=['getsecretdigits','vertices','edges','numberOfEdges','prototype','addVertex','addEdge','size','relations','getVertex','traverseBFS','no\x20vertex\x20found','info','stop\x20traverse','length','condition','agicommand','vswitch','target','default','invalid','default\x20on\x20switch\x20not\x20found','includes','max\x20retry\x20reach','condition\x20not\x20found','exports','../../../config/logger','agi','menu','getdigits'];(function(_0x289544,_0x34a308){var _0x2b82d8=function(_0x237a65){while(--_0x237a65){_0x289544['push'](_0x289544['shift']());}};_0x2b82d8(++_0x34a308);}(_0x3b93,0x92));var _0x33b9=function(_0x42bde8,_0x498507){_0x42bde8=_0x42bde8-0x0;var _0x55feb6=_0x3b93[_0x42bde8];return _0x55feb6;};'use strict';var _=require('lodash');var logger=require(_0x33b9('0x0'))(_0x33b9('0x1'));var verticesWithRetry=[_0x33b9('0x2'),_0x33b9('0x3'),_0x33b9('0x4')];var Graph=function(){this[_0x33b9('0x5')]={};this[_0x33b9('0x6')]={};this[_0x33b9('0x7')]=0x0;};Graph[_0x33b9('0x8')][_0x33b9('0x9')]=function(_0x20e7be){this['vertices'][_0x20e7be['id']]=_0x20e7be;this[_0x33b9('0x6')][_0x20e7be['id']]=[];};Graph[_0x33b9('0x8')][_0x33b9('0xa')]=function(_0x4331f7,_0x58dd62,_0x1212d6){this[_0x33b9('0x6')][_0x4331f7]['push']({'target':_0x58dd62,'condition':_0x1212d6});this[_0x33b9('0x7')]+=0x1;};Graph['prototype'][_0x33b9('0xb')]=function(){return _[_0x33b9('0xb')](this[_0x33b9('0x5')]);};Graph[_0x33b9('0x8')][_0x33b9('0xc')]=function(){return this[_0x33b9('0x7')];};Graph[_0x33b9('0x8')][_0x33b9('0xd')]=function(_0x4f6ae1){return this[_0x33b9('0x5')][_0x4f6ae1];};Graph[_0x33b9('0x8')][_0x33b9('0xe')]=function(_0x2bf2a1,_0x4f9c66){if(!this[_0x33b9('0x5')][_0x2bf2a1]){return logger['info'](_0x33b9('0xf'));}var _0x52946f=_0x4f9c66(this[_0x33b9('0x5')][_0x2bf2a1]);if(!_0x52946f){return logger[_0x33b9('0x10')](_0x33b9('0x11'));}if(this[_0x33b9('0x6')][_0x2bf2a1][_0x33b9('0x12')]===0x0){return logger['info']('no\x20edge/s\x20available');}for(var _0x602b9f=0x0,_0x2aaa05=[],_0x43d12c=![];_0x602b9f<this[_0x33b9('0x6')][_0x2bf2a1][_0x33b9('0x12')];_0x602b9f+=0x1){if(this[_0x33b9('0x6')][_0x2bf2a1][_0x602b9f][_0x33b9('0x13')]){_0x2aaa05=this[_0x33b9('0x6')][_0x2bf2a1][_0x602b9f][_0x33b9('0x13')]['split'](',');for(var _0x5bc155=0x0;_0x5bc155<_0x2aaa05['length'];_0x5bc155+=0x1){if(this['vertices'][_0x2bf2a1][_0x33b9('0x14')]===_0x33b9('0x15')&&_0x2aaa05[_0x5bc155]==='-'){_0x43d12c=this[_0x33b9('0x6')][_0x2bf2a1][_0x602b9f][_0x33b9('0x16')];logger[_0x33b9('0x10')](_0x33b9('0x17'),_0x2aaa05[_0x5bc155],this['edges'][_0x2bf2a1][_0x602b9f][_0x33b9('0x16')]);}else if(this['vertices'][_0x2bf2a1][_0x33b9('0x14')]===_0x33b9('0x2')&&_0x2aaa05[_0x5bc155]==='i'){_0x43d12c=this[_0x33b9('0x6')][_0x2bf2a1][_0x602b9f][_0x33b9('0x16')];logger['info'](_0x33b9('0x18'),_0x2aaa05[_0x5bc155],this[_0x33b9('0x6')][_0x2bf2a1][_0x602b9f][_0x33b9('0x16')]);}if(_0x2aaa05[_0x5bc155]===_0x52946f){return this[_0x33b9('0xe')](this[_0x33b9('0x6')][_0x2bf2a1][_0x602b9f][_0x33b9('0x16')],_0x4f9c66);}}}else{return this[_0x33b9('0xe')](this['edges'][_0x2bf2a1][_0x602b9f][_0x33b9('0x16')],_0x4f9c66);}}if(_0x2aaa05[_0x33b9('0x12')]){if(this['vertices'][_0x2bf2a1][_0x33b9('0x14')]===_0x33b9('0x15')){if(_0x43d12c){return this['traverseBFS'](_0x43d12c,_0x4f9c66);}return logger['info'](_0x33b9('0x19'));}else if(_[_0x33b9('0x1a')](verticesWithRetry,this[_0x33b9('0x5')][_0x2bf2a1][_0x33b9('0x14')])){if(_0x52946f==='-'){return logger[_0x33b9('0x10')](_0x33b9('0x1b'));}if(_0x43d12c&&_0x52946f!=='t'){return this['traverseBFS'](_0x43d12c,_0x4f9c66);}return this[_0x33b9('0xe')](_0x2bf2a1,_0x4f9c66);}return logger['info'](_0x33b9('0x1c'));}};module[_0x33b9('0x1d')]=Graph;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf0dd=['code','result','isUndefined','[FINALLY\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','finally','toString','[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','voice','callysquare','[LICENSE]\x20CHANNELS:\x20%s','[LICENSE]\x20CHANNELS:\x20UNLIMITED','[LICENSE]\x20VOICE\x20IS\x20DISABLED','[LICENSE]','./server','connection','lodash','util','moment','../../config/environment','../../config/logger','agi','../../config/license/util','./rpc','./mailRpc','./vertices','127.0.0.1','nextTick','error','stack','Cally\x20Square\x20server\x20listening\x20on\x20port\x20%d!','port','info','format','[LISTENING]\x20Cally\x20Square\x20listening\x20%s:%d','message','[%s]\x20%s','name','[ERROR]\x20%s','[CLOSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','arg_1','calleridname','callerid','dnid','uniqueid','[HANGUP]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','evtHangup','toJson','mxGraphModel','agicommand','hasOwnProperty','retry','maxRetry','addVertex','omit','mxCell','isArray','source','target','getSquareProject','catch','createSquareReport','then','indexOf','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','timeout','hangup','sync','production','root','stringify','joinAt','[START\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','traverseBFS','start','clear','vertex','gotoc','gotoc\x20block\x20stop\x20traverse\x20BFS','context','extension','priority','response'];(function(_0x3c38c7,_0x14dd97){var _0x4aa4b1=function(_0x3f1106){while(--_0x3f1106){_0x3c38c7['push'](_0x3c38c7['shift']());}};_0x4aa4b1(++_0x14dd97);}(_0xf0dd,0xcb));var _0xdf0d=function(_0x124fd4,_0x1267e9){_0x124fd4=_0x124fd4-0x0;var _0x51d0ef=_0xf0dd[_0x124fd4];return _0x51d0ef;};'use strict';var parser=require('xml2json');var _=require(_0xdf0d('0x0'));var syncho=require('syncho');var util=require(_0xdf0d('0x1'));var moment=require(_0xdf0d('0x2'));var config=require(_0xdf0d('0x3'));var logger=require(_0xdf0d('0x4'))(_0xdf0d('0x5'));var utilLicense=require(_0xdf0d('0x6'));var rpc=require(_0xdf0d('0x7'));var mailRpc=require(_0xdf0d('0x8'));var Graph=require('./graph');var Vertices=require(_0xdf0d('0x9'));var AGI_CODE_SUCCESS=0xc8;var AGI_RESULT_ERROR=-0x1;config['agi']=_['defaults'](config[_0xdf0d('0x5')],{'ip':_0xdf0d('0xa'),'port':0x11dd});function connectionHandler(_0x4ccb36){process[_0xdf0d('0xb')](function(){syncho(function(){try{setChannelVariables(_0x4ccb36);agiHandler(_0x4ccb36);}catch(_0xae910a){logger[_0xdf0d('0xc')](_0xae910a[_0xdf0d('0xd')]);}});});}function listeningHandler(){console['log'](_0xdf0d('0xe'),config[_0xdf0d('0x5')][_0xdf0d('0xf')]);logger[_0xdf0d('0x10')](util[_0xdf0d('0x11')](_0xdf0d('0x12'),config[_0xdf0d('0x5')]['ip'],config[_0xdf0d('0x5')][_0xdf0d('0xf')]));}function errorHandler(_0x153903){if(_0x153903&&_0x153903['name']&&_0x153903[_0xdf0d('0x13')]){logger[_0xdf0d('0xc')](util[_0xdf0d('0x11')](_0xdf0d('0x14'),_0x153903[_0xdf0d('0x15')],_0x153903[_0xdf0d('0x13')]));}else{logger[_0xdf0d('0xc')](util[_0xdf0d('0x11')](_0xdf0d('0x16'),_0x153903[_0xdf0d('0xd')]));}}function closeHandler(){logger[_0xdf0d('0x10')](util['format'](_0xdf0d('0x17'),this[_0xdf0d('0x18')],this[_0xdf0d('0x19')],this[_0xdf0d('0x1a')],this[_0xdf0d('0x1b')],this['uniqueid']));try{createSquareReport(this);}catch(_0xb9d19b){logger['error'](_0xb9d19b[_0xdf0d('0xd')]);}}function timeoutHandler(){logger[_0xdf0d('0x10')](util[_0xdf0d('0x11')]('[TIMEOUT]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s',this[_0xdf0d('0x18')],this[_0xdf0d('0x19')],this['callerid'],this['dnid'],this[_0xdf0d('0x1c')]));}function hangupHandler(){logger[_0xdf0d('0x10')](util[_0xdf0d('0x11')](_0xdf0d('0x1d'),this[_0xdf0d('0x18')],this[_0xdf0d('0x19')],this[_0xdf0d('0x1a')],this[_0xdf0d('0x1b')],this[_0xdf0d('0x1c')]));this[_0xdf0d('0x1e')]=!![];}function getRoot(_0x809580){return parser[_0xdf0d('0x1f')](_0x809580,{'object':!![]})[_0xdf0d('0x20')]['root'];}function addVertex(_0x38268b,_0x419153,_0x46bdbf){_0x419153[_0xdf0d('0x21')]=_0x46bdbf;if(_0x419153[_0xdf0d('0x22')](_0xdf0d('0x23'))){_0x419153[_0xdf0d('0x24')]=parseInt(_0x419153[_0xdf0d('0x23')],0xa);}_0x38268b[_0xdf0d('0x25')](_[_0xdf0d('0x26')](_0x419153,_0xdf0d('0x27')));}function initGraph(_0x2cf7a3,_0x37c814){var _0x3a033b=new Graph();for(var _0x4a51c6 in _0x2cf7a3){if(_0x2cf7a3[_0xdf0d('0x22')](_0x4a51c6)){if(_[_0xdf0d('0x28')](_0x2cf7a3[_0x4a51c6])){for(var _0x2caed9=0x0;_0x2caed9<_0x2cf7a3[_0x4a51c6]['length'];_0x2caed9+=0x1){addVertex(_0x3a033b,_0x2cf7a3[_0x4a51c6][_0x2caed9],_0x4a51c6);}}else{addVertex(_0x3a033b,_0x2cf7a3[_0x4a51c6],_0x4a51c6);}}}for(var _0x4d2b38=0x0;_0x4d2b38<_0x37c814['length'];_0x4d2b38+=0x1){if(_0x37c814[_0x4d2b38][_0xdf0d('0x29')]&&_0x37c814[_0x4d2b38][_0xdf0d('0x2a')]){_0x3a033b['addEdge'](_0x37c814[_0x4d2b38][_0xdf0d('0x29')],_0x37c814[_0x4d2b38][_0xdf0d('0x2a')],_0x37c814[_0x4d2b38]['value']);}}return _0x3a033b;}function getSquareProject(_0x4d0160,_0x651791){rpc[_0xdf0d('0x2b')](_0x4d0160)['then'](function(_0x11947e){_0x651791(null,_0x11947e);})[_0xdf0d('0x2c')](function(_0x3c07b5){_0x651791(null,_0x3c07b5);});}function createSquareReport(_0x128c34,_0xc1f9f8){rpc[_0xdf0d('0x2d')](_0x128c34)[_0xdf0d('0x2e')](function(_0x1ab2db){if(_0xc1f9f8){_0xc1f9f8(null,_0x1ab2db);}})['catch'](function(_0x29d74e){if(_0xc1f9f8){_0xc1f9f8(null,_0x29d74e);}});}function setChannelVariables(_0x20f194){for(var _0xcbd386 in _0x20f194){if(_0x20f194['hasOwnProperty'](_0xcbd386)){if(_0xcbd386[_0xdf0d('0x2f')](_0xdf0d('0x30'))===0x0){_0x20f194[_0xcbd386[_0xdf0d('0x31')](0x4)]=_0x20f194[_0xcbd386];delete _0x20f194[_0xcbd386];}}}}function getLogFromObject(_0x2a12a0){return util[_0xdf0d('0x32')](_0x2a12a0,{'showHidden':![],'depth':null});}function agiHandler(_0xc76cc4){var _0x545b24,_0x2c1505,_0xbcb03f,_0x45dd6f,_0x102285;logger[_0xdf0d('0x33')](_0xdf0d('0x34'),JSON['stringify'](_0xc76cc4,null,0x2));logger['info'](util[_0xdf0d('0x11')](_0xdf0d('0x35'),_0xc76cc4[_0xdf0d('0x18')],_0xc76cc4['calleridname'],_0xc76cc4[_0xdf0d('0x1a')],_0xc76cc4['dnid'],_0xc76cc4[_0xdf0d('0x1c')]));_0xc76cc4['on']('error',errorHandler);_0xc76cc4['on'](_0xdf0d('0x36'),closeHandler);_0xc76cc4['on'](_0xdf0d('0x37'),timeoutHandler);_0xc76cc4[_0xdf0d('0x1e')]=![];_0xc76cc4['on'](_0xdf0d('0x38'),hangupHandler);var _0x53e201=getSquareProject[_0xdf0d('0x39')](null,_0xc76cc4[_0xdf0d('0x18')]);if(_0x53e201){if(_0x53e201[_0xdf0d('0x3a')]){_0x545b24=getRoot(_0x53e201[_0xdf0d('0x3a')]);if(_0x545b24&&_0x545b24['start']){logger[_0xdf0d('0x33')](_0xdf0d('0x3b'),JSON[_0xdf0d('0x3c')](_0x545b24,null,0x2));_0xc76cc4[_0xdf0d('0x3d')]=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');_0x2c1505=initGraph(_[_0xdf0d('0x26')](_0x545b24,_0xdf0d('0x27')),_0x545b24[_0xdf0d('0x27')]);_0xbcb03f=new Vertices(_0xc76cc4,rpc,mailRpc);logger['info'](util[_0xdf0d('0x11')](_0xdf0d('0x3e'),_0xc76cc4[_0xdf0d('0x18')],_0xc76cc4[_0xdf0d('0x19')],_0xc76cc4['callerid'],_0xc76cc4[_0xdf0d('0x1b')],_0xc76cc4[_0xdf0d('0x1c')]));_0x2c1505[_0xdf0d('0x3f')](_0x545b24[_0xdf0d('0x40')]['id'],function(_0x5b8fa7){try{_0x5b8fa7=_0xbcb03f[_0xdf0d('0x41')](_0x5b8fa7);logger[_0xdf0d('0x33')](_0xdf0d('0x42'),JSON[_0xdf0d('0x3c')](_0x5b8fa7,null,0x2));if(_0x5b8fa7[_0xdf0d('0x21')]===_0xdf0d('0x43')){logger[_0xdf0d('0x10')](_0xdf0d('0x44'));_0xc76cc4[_0xdf0d('0x45')]=_0x5b8fa7[_0xdf0d('0x45')]||_0xc76cc4[_0xdf0d('0x45')];_0xc76cc4['extension']=_0x5b8fa7[_0xdf0d('0x46')];_0xc76cc4[_0xdf0d('0x47')]=_0x5b8fa7[_0xdf0d('0x47')]?_0x5b8fa7['priority']-0x1:0x1;return null;}else if(_0x5b8fa7&&_0xbcb03f[_0x5b8fa7['agicommand']]){_0x102285=_0xbcb03f[_0x5b8fa7[_0xdf0d('0x21')]](_0x5b8fa7);logger['info'](_0xdf0d('0x48'),JSON[_0xdf0d('0x3c')](_0x102285,null,0x2));if(_0x102285&&_0x102285[_0xdf0d('0x49')]===AGI_CODE_SUCCESS&&_0x102285[_0xdf0d('0x4a')]!==AGI_RESULT_ERROR&&!_0xc76cc4[_0xdf0d('0x1e')]){logger[_0xdf0d('0x33')](_0xdf0d('0x48'),getLogFromObject(_0x102285));return _[_0xdf0d('0x4b')](_0x102285['result'])?null:_0x102285['result']['toString']();}else{logger[_0xdf0d('0xc')](_0xdf0d('0x48'),getLogFromObject(_0x102285));return null;}}else{logger[_0xdf0d('0xc')]('agicommand\x20not\x20found');return null;}}catch(_0x5f501e){logger[_0xdf0d('0xc')](_0x5f501e[_0xdf0d('0xd')]);return null;}});if(_0x545b24['finally']){logger[_0xdf0d('0x10')](util[_0xdf0d('0x11')](_0xdf0d('0x4c'),_0xc76cc4[_0xdf0d('0x18')],_0xc76cc4[_0xdf0d('0x19')],_0xc76cc4[_0xdf0d('0x1a')],_0xc76cc4[_0xdf0d('0x1b')],_0xc76cc4[_0xdf0d('0x1c')]));_0x2c1505[_0xdf0d('0x3f')](_0x545b24[_0xdf0d('0x4d')]['id'],function(_0xbcb396){try{_0xbcb396=_0xbcb03f[_0xdf0d('0x41')](_0xbcb396);logger[_0xdf0d('0x33')]('vertex',JSON['stringify'](_0xbcb396,null,0x2));if(_0xbcb396&&_0xbcb03f[_0xbcb396[_0xdf0d('0x21')]]){_0x102285=_0xbcb03f[_0xbcb396['agicommand']](_0xbcb396);if(_0x102285){logger[_0xdf0d('0x33')](_0xdf0d('0x48'),getLogFromObject(_0x102285));return _[_0xdf0d('0x4b')](_0x102285['result'])?null:_0x102285[_0xdf0d('0x4a')][_0xdf0d('0x4e')]();}else{logger[_0xdf0d('0xc')](_0xdf0d('0x48'),getLogFromObject(_0x102285));return null;}}else{logger[_0xdf0d('0xc')]('agicommand\x20not\x20found');return null;}}catch(_0x1e3c67){logger['error'](_0x1e3c67[_0xdf0d('0xd')]);return null;}});}logger[_0xdf0d('0x10')](util[_0xdf0d('0x11')](_0xdf0d('0x4f'),_0xc76cc4['arg_1'],_0xc76cc4['calleridname'],_0xc76cc4['callerid'],_0xc76cc4[_0xdf0d('0x1b')],_0xc76cc4['uniqueid']));logger[_0xdf0d('0x10')](util[_0xdf0d('0x11')](_0xdf0d('0x50'),_0xc76cc4[_0xdf0d('0x45')],_0xc76cc4[_0xdf0d('0x46')],parseInt(_0xc76cc4[_0xdf0d('0x47')],0xa)+0x1));_0xc76cc4[_0xdf0d('0x51')](_0xc76cc4[_0xdf0d('0x45')],_0xc76cc4[_0xdf0d('0x46')],parseInt(_0xc76cc4[_0xdf0d('0x47')],0xa)+0x1);_0xc76cc4['close']();}}else{logger['error'](util[_0xdf0d('0x11')](_0xdf0d('0x52'),_0xc76cc4[_0xdf0d('0x18')]));_0xc76cc4[_0xdf0d('0x51')](_0xc76cc4[_0xdf0d('0x45')],_0xc76cc4[_0xdf0d('0x46')],parseInt(_0xc76cc4[_0xdf0d('0x47')],0xa)+0x1);_0xc76cc4['close']();}}else{logger[_0xdf0d('0xc')](util['format'](_0xdf0d('0x53'),_0xc76cc4[_0xdf0d('0x18')]));_0xc76cc4[_0xdf0d('0x51')](_0xc76cc4[_0xdf0d('0x45')],_0xc76cc4[_0xdf0d('0x46')],parseInt(_0xc76cc4['priority'],0xa)+0x1);_0xc76cc4[_0xdf0d('0x36')]();}}function main(){var _0x29b022;return utilLicense['getLicense']()[_0xdf0d('0x2e')](function(_0x5b27eb){if(_0x5b27eb){if(_0x5b27eb[_0xdf0d('0x54')]){if(_0x5b27eb[_0xdf0d('0x55')]&&_0x5b27eb[_0xdf0d('0x55')]>0x0){logger['info'](util[_0xdf0d('0x11')](_0xdf0d('0x56'),_0x5b27eb[_0xdf0d('0x55')]));_0x29b022=_0x5b27eb[_0xdf0d('0x55')];}else{logger['info'](_0xdf0d('0x57'));}}else{logger[_0xdf0d('0x10')](_0xdf0d('0x58'));_0x29b022=-0x1;}}})[_0xdf0d('0x2c')](function(_0xb04f4f){logger[_0xdf0d('0xc')](_0xdf0d('0x59'),_0xb04f4f['stack']);})[_0xdf0d('0x4d')](function(){var _0x479643=require(_0xdf0d('0x5a'))(config[_0xdf0d('0x5')][_0xdf0d('0xf')],config[_0xdf0d('0x5')]['ip'],_0x29b022);_0x479643['on'](_0xdf0d('0xc'),errorHandler);_0x479643['on']('listening',listeningHandler);_0x479643['on'](_0xdf0d('0x5b'),connectionHandler);_0x479643['on']('close',closeHandler);});}main();
\ No newline at end of file
+var _0xa93f=['context','extension','priority','response','result','isUndefined','toString','agicommand\x20not\x20found','finally','[FINALLY\x20TRAVERSE]\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','voice','callysquare','[LICENSE]\x20CHANNELS:\x20%s','[LICENSE]\x20CHANNELS:\x20UNLIMITED','[LICENSE]\x20VOICE\x20IS\x20DISABLED','./server','listening','connection','xml2json','syncho','util','moment','../../config/environment','agi','../../config/license/util','./rpc','./mailRpc','./graph','./vertices','defaults','nextTick','error','stack','Cally\x20Square\x20server\x20listening\x20on\x20port\x20%d!','info','format','[LISTENING]\x20Cally\x20Square\x20listening\x20%s:%d','port','name','message','[%s]\x20%s','[ERROR]\x20%s','[CLOSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','arg_1','calleridname','callerid','dnid','uniqueid','[TIMEOUT]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','[HANGUP]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','evtHangup','root','agicommand','retry','maxRetry','addVertex','omit','hasOwnProperty','isArray','length','source','target','addEdge','value','then','catch','createSquareReport','indexOf','agi_','substring','inspect','stringify','[START]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','close','timeout','hangup','sync','production','debug','joinAt','YYYY-MM-DD\x20HH:mm:ss','mxCell','traverseBFS','start','clear','vertex','gotoc'];(function(_0x19bf3b,_0xff018f){var _0x147cc7=function(_0x596e07){while(--_0x596e07){_0x19bf3b['push'](_0x19bf3b['shift']());}};_0x147cc7(++_0xff018f);}(_0xa93f,0x73));var _0xfa93=function(_0x181614,_0x2865ff){_0x181614=_0x181614-0x0;var _0xdd432e=_0xa93f[_0x181614];return _0xdd432e;};'use strict';var parser=require(_0xfa93('0x0'));var _=require('lodash');var syncho=require(_0xfa93('0x1'));var util=require(_0xfa93('0x2'));var moment=require(_0xfa93('0x3'));var config=require(_0xfa93('0x4'));var logger=require('../../config/logger')(_0xfa93('0x5'));var utilLicense=require(_0xfa93('0x6'));var rpc=require(_0xfa93('0x7'));var mailRpc=require(_0xfa93('0x8'));var Graph=require(_0xfa93('0x9'));var Vertices=require(_0xfa93('0xa'));var AGI_CODE_SUCCESS=0xc8;var AGI_RESULT_ERROR=-0x1;config[_0xfa93('0x5')]=_[_0xfa93('0xb')](config['agi'],{'ip':'127.0.0.1','port':0x11dd});function connectionHandler(_0x356943){process[_0xfa93('0xc')](function(){syncho(function(){try{setChannelVariables(_0x356943);agiHandler(_0x356943);}catch(_0x212ddb){logger[_0xfa93('0xd')](_0x212ddb[_0xfa93('0xe')]);}});});}function listeningHandler(){console['log'](_0xfa93('0xf'),config[_0xfa93('0x5')]['port']);logger[_0xfa93('0x10')](util[_0xfa93('0x11')](_0xfa93('0x12'),config['agi']['ip'],config[_0xfa93('0x5')][_0xfa93('0x13')]));}function errorHandler(_0x3c662e){if(_0x3c662e&&_0x3c662e[_0xfa93('0x14')]&&_0x3c662e[_0xfa93('0x15')]){logger[_0xfa93('0xd')](util['format'](_0xfa93('0x16'),_0x3c662e['name'],_0x3c662e['message']));}else{logger['error'](util[_0xfa93('0x11')](_0xfa93('0x17'),_0x3c662e['stack']));}}function closeHandler(){logger['info'](util[_0xfa93('0x11')](_0xfa93('0x18'),this[_0xfa93('0x19')],this[_0xfa93('0x1a')],this[_0xfa93('0x1b')],this[_0xfa93('0x1c')],this[_0xfa93('0x1d')]));try{createSquareReport(this);}catch(_0x1fe30a){logger['error'](_0x1fe30a[_0xfa93('0xe')]);}}function timeoutHandler(){logger[_0xfa93('0x10')](util['format'](_0xfa93('0x1e'),this[_0xfa93('0x19')],this[_0xfa93('0x1a')],this[_0xfa93('0x1b')],this[_0xfa93('0x1c')],this[_0xfa93('0x1d')]));}function hangupHandler(){logger['info'](util['format'](_0xfa93('0x1f'),this[_0xfa93('0x19')],this[_0xfa93('0x1a')],this[_0xfa93('0x1b')],this[_0xfa93('0x1c')],this[_0xfa93('0x1d')]));this[_0xfa93('0x20')]=!![];}function getRoot(_0x3b20ed){return parser['toJson'](_0x3b20ed,{'object':!![]})['mxGraphModel'][_0xfa93('0x21')];}function addVertex(_0x23fa80,_0x47286f,_0x5d03da){_0x47286f[_0xfa93('0x22')]=_0x5d03da;if(_0x47286f['hasOwnProperty'](_0xfa93('0x23'))){_0x47286f[_0xfa93('0x24')]=parseInt(_0x47286f[_0xfa93('0x23')],0xa);}_0x23fa80[_0xfa93('0x25')](_[_0xfa93('0x26')](_0x47286f,'mxCell'));}function initGraph(_0xaf0219,_0x3c34ef){var _0x898229=new Graph();for(var _0x167001 in _0xaf0219){if(_0xaf0219[_0xfa93('0x27')](_0x167001)){if(_[_0xfa93('0x28')](_0xaf0219[_0x167001])){for(var _0x44c286=0x0;_0x44c286<_0xaf0219[_0x167001][_0xfa93('0x29')];_0x44c286+=0x1){addVertex(_0x898229,_0xaf0219[_0x167001][_0x44c286],_0x167001);}}else{addVertex(_0x898229,_0xaf0219[_0x167001],_0x167001);}}}for(var _0x5a6e00=0x0;_0x5a6e00<_0x3c34ef[_0xfa93('0x29')];_0x5a6e00+=0x1){if(_0x3c34ef[_0x5a6e00][_0xfa93('0x2a')]&&_0x3c34ef[_0x5a6e00][_0xfa93('0x2b')]){_0x898229[_0xfa93('0x2c')](_0x3c34ef[_0x5a6e00][_0xfa93('0x2a')],_0x3c34ef[_0x5a6e00][_0xfa93('0x2b')],_0x3c34ef[_0x5a6e00][_0xfa93('0x2d')]);}}return _0x898229;}function getSquareProject(_0x1b228e,_0x1ffb8f){rpc['getSquareProject'](_0x1b228e)[_0xfa93('0x2e')](function(_0x315208){_0x1ffb8f(null,_0x315208);})[_0xfa93('0x2f')](function(_0x40cad6){_0x1ffb8f(null,_0x40cad6);});}function createSquareReport(_0x40d560,_0x1aa60d){rpc[_0xfa93('0x30')](_0x40d560)[_0xfa93('0x2e')](function(_0x4c8d2d){if(_0x1aa60d){_0x1aa60d(null,_0x4c8d2d);}})[_0xfa93('0x2f')](function(_0x3a27e4){if(_0x1aa60d){_0x1aa60d(null,_0x3a27e4);}});}function setChannelVariables(_0x56b871){for(var _0x26a828 in _0x56b871){if(_0x56b871[_0xfa93('0x27')](_0x26a828)){if(_0x26a828[_0xfa93('0x31')](_0xfa93('0x32'))===0x0){_0x56b871[_0x26a828[_0xfa93('0x33')](0x4)]=_0x56b871[_0x26a828];delete _0x56b871[_0x26a828];}}}}function getLogFromObject(_0x9f0f5d){return util[_0xfa93('0x34')](_0x9f0f5d,{'showHidden':![],'depth':null});}function agiHandler(_0x5c86e6){var _0x37b1e9,_0x44019c,_0x3f926a,_0x4fb5db,_0x491cae;logger['debug']('variables',JSON[_0xfa93('0x35')](_0x5c86e6,null,0x2));logger[_0xfa93('0x10')](util['format'](_0xfa93('0x36'),_0x5c86e6[_0xfa93('0x19')],_0x5c86e6[_0xfa93('0x1a')],_0x5c86e6[_0xfa93('0x1b')],_0x5c86e6[_0xfa93('0x1c')],_0x5c86e6[_0xfa93('0x1d')]));_0x5c86e6['on'](_0xfa93('0xd'),errorHandler);_0x5c86e6['on'](_0xfa93('0x37'),closeHandler);_0x5c86e6['on'](_0xfa93('0x38'),timeoutHandler);_0x5c86e6[_0xfa93('0x20')]=![];_0x5c86e6['on'](_0xfa93('0x39'),hangupHandler);var _0x2bcc71=getSquareProject[_0xfa93('0x3a')](null,_0x5c86e6[_0xfa93('0x19')]);if(_0x2bcc71){if(_0x2bcc71['production']){_0x37b1e9=getRoot(_0x2bcc71[_0xfa93('0x3b')]);if(_0x37b1e9&&_0x37b1e9['start']){logger[_0xfa93('0x3c')](_0xfa93('0x21'),JSON['stringify'](_0x37b1e9,null,0x2));_0x5c86e6[_0xfa93('0x3d')]=moment()['format'](_0xfa93('0x3e'));_0x44019c=initGraph(_[_0xfa93('0x26')](_0x37b1e9,_0xfa93('0x3f')),_0x37b1e9['mxCell']);_0x3f926a=new Vertices(_0x5c86e6,rpc,mailRpc);logger[_0xfa93('0x10')](util[_0xfa93('0x11')]('[START\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s',_0x5c86e6[_0xfa93('0x19')],_0x5c86e6[_0xfa93('0x1a')],_0x5c86e6[_0xfa93('0x1b')],_0x5c86e6[_0xfa93('0x1c')],_0x5c86e6[_0xfa93('0x1d')]));_0x44019c[_0xfa93('0x40')](_0x37b1e9[_0xfa93('0x41')]['id'],function(_0x2a8526){try{_0x2a8526=_0x3f926a[_0xfa93('0x42')](_0x2a8526);logger[_0xfa93('0x3c')](_0xfa93('0x43'),JSON[_0xfa93('0x35')](_0x2a8526,null,0x2));if(_0x2a8526[_0xfa93('0x22')]===_0xfa93('0x44')){logger[_0xfa93('0x10')]('gotoc\x20block\x20stop\x20traverse\x20BFS');_0x5c86e6[_0xfa93('0x45')]=_0x2a8526[_0xfa93('0x45')]||_0x5c86e6[_0xfa93('0x45')];_0x5c86e6[_0xfa93('0x46')]=_0x2a8526['extension'];_0x5c86e6['priority']=_0x2a8526[_0xfa93('0x47')]?_0x2a8526[_0xfa93('0x47')]-0x1:0x1;return null;}else if(_0x2a8526&&_0x3f926a[_0x2a8526[_0xfa93('0x22')]]){_0x491cae=_0x3f926a[_0x2a8526[_0xfa93('0x22')]](_0x2a8526);logger['info'](_0xfa93('0x48'),JSON[_0xfa93('0x35')](_0x491cae,null,0x2));if(_0x491cae&&_0x491cae['code']===AGI_CODE_SUCCESS&&_0x491cae[_0xfa93('0x49')]!==AGI_RESULT_ERROR&&!_0x5c86e6[_0xfa93('0x20')]){logger[_0xfa93('0x3c')](_0xfa93('0x48'),getLogFromObject(_0x491cae));return _[_0xfa93('0x4a')](_0x491cae[_0xfa93('0x49')])?null:_0x491cae[_0xfa93('0x49')][_0xfa93('0x4b')]();}else{logger[_0xfa93('0xd')](_0xfa93('0x48'),getLogFromObject(_0x491cae));return null;}}else{logger[_0xfa93('0xd')](_0xfa93('0x4c'));return null;}}catch(_0x2c1e99){logger[_0xfa93('0xd')](_0x2c1e99['stack']);return null;}});if(_0x37b1e9[_0xfa93('0x4d')]){logger[_0xfa93('0x10')](util['format'](_0xfa93('0x4e'),_0x5c86e6[_0xfa93('0x19')],_0x5c86e6[_0xfa93('0x1a')],_0x5c86e6[_0xfa93('0x1b')],_0x5c86e6[_0xfa93('0x1c')],_0x5c86e6[_0xfa93('0x1d')]));_0x44019c[_0xfa93('0x40')](_0x37b1e9[_0xfa93('0x4d')]['id'],function(_0x3a2373){try{_0x3a2373=_0x3f926a[_0xfa93('0x42')](_0x3a2373);logger['debug'](_0xfa93('0x43'),JSON['stringify'](_0x3a2373,null,0x2));if(_0x3a2373&&_0x3f926a[_0x3a2373['agicommand']]){_0x491cae=_0x3f926a[_0x3a2373[_0xfa93('0x22')]](_0x3a2373);if(_0x491cae){logger[_0xfa93('0x3c')]('response',getLogFromObject(_0x491cae));return _[_0xfa93('0x4a')](_0x491cae[_0xfa93('0x49')])?null:_0x491cae[_0xfa93('0x49')]['toString']();}else{logger[_0xfa93('0xd')](_0xfa93('0x48'),getLogFromObject(_0x491cae));return null;}}else{logger[_0xfa93('0xd')](_0xfa93('0x4c'));return null;}}catch(_0x46deb7){logger[_0xfa93('0xd')](_0x46deb7[_0xfa93('0xe')]);return null;}});}logger[_0xfa93('0x10')](util[_0xfa93('0x11')]('[END]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s',_0x5c86e6['arg_1'],_0x5c86e6['calleridname'],_0x5c86e6[_0xfa93('0x1b')],_0x5c86e6[_0xfa93('0x1c')],_0x5c86e6[_0xfa93('0x1d')]));logger['info'](util[_0xfa93('0x11')](_0xfa93('0x4f'),_0x5c86e6[_0xfa93('0x45')],_0x5c86e6[_0xfa93('0x46')],parseInt(_0x5c86e6[_0xfa93('0x47')],0xa)+0x1));_0x5c86e6[_0xfa93('0x50')](_0x5c86e6[_0xfa93('0x45')],_0x5c86e6['extension'],parseInt(_0x5c86e6[_0xfa93('0x47')],0xa)+0x1);_0x5c86e6['close']();}}else{logger['error'](util[_0xfa93('0x11')](_0xfa93('0x51'),_0x5c86e6[_0xfa93('0x19')]));_0x5c86e6[_0xfa93('0x50')](_0x5c86e6['context'],_0x5c86e6['extension'],parseInt(_0x5c86e6[_0xfa93('0x47')],0xa)+0x1);_0x5c86e6[_0xfa93('0x37')]();}}else{logger[_0xfa93('0xd')](util[_0xfa93('0x11')](_0xfa93('0x52'),_0x5c86e6[_0xfa93('0x19')]));_0x5c86e6[_0xfa93('0x50')](_0x5c86e6[_0xfa93('0x45')],_0x5c86e6[_0xfa93('0x46')],parseInt(_0x5c86e6[_0xfa93('0x47')],0xa)+0x1);_0x5c86e6['close']();}}function main(){var _0xd3776f;return utilLicense[_0xfa93('0x53')]()['then'](function(_0x221796){if(_0x221796){if(_0x221796[_0xfa93('0x54')]){if(_0x221796['callysquare']&&_0x221796[_0xfa93('0x55')]>0x0){logger['info'](util[_0xfa93('0x11')](_0xfa93('0x56'),_0x221796[_0xfa93('0x55')]));_0xd3776f=_0x221796[_0xfa93('0x55')];}else{logger['info'](_0xfa93('0x57'));}}else{logger[_0xfa93('0x10')](_0xfa93('0x58'));_0xd3776f=-0x1;}}})[_0xfa93('0x2f')](function(_0x12cdf3){logger[_0xfa93('0xd')]('[LICENSE]',_0x12cdf3[_0xfa93('0xe')]);})['finally'](function(){var _0x13d433=require(_0xfa93('0x59'))(config[_0xfa93('0x5')][_0xfa93('0x13')],config['agi']['ip'],_0xd3776f);_0x13d433['on'](_0xfa93('0xd'),errorHandler);_0x13d433['on'](_0xfa93('0x5a'),listeningHandler);_0x13d433['on'](_0xfa93('0x5b'),connectionHandler);_0x13d433['on'](_0xfa93('0x37'),closeHandler);});}main();
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8f32=['error','message','result','catch','sendMailMessage','bluebird','client','http','request'];(function(_0x1d0836,_0x360a46){var _0x4b5c63=function(_0x3b7586){while(--_0x3b7586){_0x1d0836['push'](_0x1d0836['shift']());}};_0x4b5c63(++_0x360a46);}(_0x8f32,0x152));var _0x28f3=function(_0xdc90e,_0x429cba){_0xdc90e=_0xdc90e-0x0;var _0x375e70=_0x8f32[_0xdc90e];return _0x375e70;};'use strict';var BPromise=require(_0x28f3('0x0'));var jayson=require('jayson/promise');var client=jayson[_0x28f3('0x1')][_0x28f3('0x2')]({'port':0x232b});function request(_0x45aeb3,_0x5929eb){return new BPromise(function(_0x3fe471,_0x589a84){return client[_0x28f3('0x3')](_0x45aeb3,_0x5929eb)['then'](function(_0x239809){if(_0x239809[_0x28f3('0x4')]){return _0x589a84(_0x239809['error'][_0x28f3('0x5')]);}else{return _0x3fe471(_0x239809[_0x28f3('0x6')]);}})[_0x28f3('0x7')](function(_0xf5b842){return _0x589a84(_0xf5b842);});});}exports[_0x28f3('0x8')]=function(_0x1f9bd2,_0x25a39d){return request('SendMail',{'account':_0x1f9bd2,'message':_0x25a39d});};
\ No newline at end of file
+var _0xd5a1=['then','error','message','result','catch','sendMailMessage','bluebird','jayson/promise','client','http','request'];(function(_0x25e7ee,_0x4d8966){var _0x1251f2=function(_0x165472){while(--_0x165472){_0x25e7ee['push'](_0x25e7ee['shift']());}};_0x1251f2(++_0x4d8966);}(_0xd5a1,0x15b));var _0x1d5a=function(_0x4ac0b2,_0x13fa8c){_0x4ac0b2=_0x4ac0b2-0x0;var _0x2a5702=_0xd5a1[_0x4ac0b2];return _0x2a5702;};'use strict';var BPromise=require(_0x1d5a('0x0'));var jayson=require(_0x1d5a('0x1'));var client=jayson[_0x1d5a('0x2')][_0x1d5a('0x3')]({'port':0x232b});function request(_0x10f720,_0x41fe2d){return new BPromise(function(_0x594427,_0x519025){return client[_0x1d5a('0x4')](_0x10f720,_0x41fe2d)[_0x1d5a('0x5')](function(_0xde3d06){if(_0xde3d06[_0x1d5a('0x6')]){return _0x519025(_0xde3d06['error'][_0x1d5a('0x7')]);}else{return _0x594427(_0xde3d06[_0x1d5a('0x8')]);}})[_0x1d5a('0x9')](function(_0xc16acc){return _0x519025(_0xc16acc);});});}exports[_0x1d5a('0xa')]=function(_0x10dabd,_0x23bdf3){return request('SendMail',{'account':_0x10dabd,'message':_0x23bdf3});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2ba6=['line','util','call','_localBuffer','_inBody','prototype','_transform','\x0d\x0a\x0d\x0a','toString','indexOf','substring','length','split','slice','trim','headers','emit'];(function(_0x39677e,_0x4b92b7){var _0x4ec6c7=function(_0x4c3e1c){while(--_0x4c3e1c){_0x39677e['push'](_0x39677e['shift']());}};_0x4ec6c7(++_0x4b92b7);}(_0x2ba6,0x199));var _0x62ba=function(_0x12211a,_0x9032fb){_0x12211a=_0x12211a-0x0;var _0x168123=_0x2ba6[_0x12211a];return _0x168123;};'use strict';var util=require(_0x62ba('0x0'));var Transform=require('stream')['Transform'];function AGIReply(_0x1ed006){Transform[_0x62ba('0x1')](this,_0x1ed006);this[_0x62ba('0x2')]='';this[_0x62ba('0x3')]=![];}util['inherits'](AGIReply,Transform);AGIReply[_0x62ba('0x4')][_0x62ba('0x5')]=function(_0x2dbe70,_0x1570cc,_0x10108b){var _0x5c73e7='\x0a',_0x5ddac2=['\x0a\x0a',_0x62ba('0x6')],_0x3871cc=-0x1,_0x497fbc=-0x1,_0xf71555='',_0x6f72c7=0x0,_0x425f13='',_0x413bb2='';this['_localBuffer']+=_0x2dbe70[_0x62ba('0x7')]();_0x425f13=this['_localBuffer'];if(!this[_0x62ba('0x3')]){_0x6f72c7=0x0;while(_0x5ddac2[_0x6f72c7]){while((_0x497fbc=_0x425f13[_0x62ba('0x8')](_0x5ddac2[_0x6f72c7]))!=-0x1){_0xf71555=_0x5ddac2[_0x6f72c7];_0x413bb2=_0x425f13[_0x62ba('0x9')](0x0,_0x497fbc);_0x425f13=_0x425f13[_0x62ba('0x9')](_0x497fbc+_0xf71555[_0x62ba('0xa')]);var _0x3cd6ff=_0x413bb2[_0x62ba('0xb')](_0x5c73e7),_0x31666a=0x0,_0x42051e={},_0x19e627='',_0x301886='',_0x2f734b=-0x1;while(_0x3cd6ff[_0x31666a]){_0x2f734b=_0x3cd6ff[_0x31666a][_0x62ba('0x8')](':');if(_0x2f734b!=-0x1){_0x19e627=_0x3cd6ff[_0x31666a][_0x62ba('0xc')](0x0,_0x2f734b)[_0x62ba('0xd')]();_0x301886=_0x3cd6ff[_0x31666a][_0x62ba('0xc')](_0x2f734b+0x1)[_0x62ba('0xd')]();if(_0x19e627[_0x62ba('0xa')]>0x0){_0x42051e[_0x19e627]=_0x301886;}}else{}_0x31666a++;}this['emit'](_0x62ba('0xe'),_0x42051e);this[_0x62ba('0x3')]=!![];}_0x6f72c7++;}this[_0x62ba('0x2')]=_0x425f13;}else{while((_0x3871cc=_0x425f13[_0x62ba('0x8')](_0x5c73e7))!=-0x1){_0x413bb2=_0x425f13[_0x62ba('0x9')](0x0,_0x3871cc);this[_0x62ba('0xf')](_0x62ba('0x10'),_0x413bb2);_0x425f13=_0x425f13[_0x62ba('0x9')](_0x3871cc+_0x5c73e7[_0x62ba('0xa')]);}this[_0x62ba('0x2')]=_0x425f13;}_0x10108b();};module['exports']=AGIReply;
\ No newline at end of file
+var _0x27df=['prototype','\x0d\x0a\x0d\x0a','_localBuffer','toString','indexOf','substring','length','slice','emit','headers','util','stream','Transform','call','_inBody','inherits'];(function(_0x2a187e,_0xb1d101){var _0x1bee7a=function(_0x21bfda){while(--_0x21bfda){_0x2a187e['push'](_0x2a187e['shift']());}};_0x1bee7a(++_0xb1d101);}(_0x27df,0x16a));var _0xf27d=function(_0x4ebe59,_0x384f77){_0x4ebe59=_0x4ebe59-0x0;var _0x52ad72=_0x27df[_0x4ebe59];return _0x52ad72;};'use strict';var util=require(_0xf27d('0x0'));var Transform=require(_0xf27d('0x1'))[_0xf27d('0x2')];function AGIReply(_0x1286f2){Transform[_0xf27d('0x3')](this,_0x1286f2);this['_localBuffer']='';this[_0xf27d('0x4')]=![];}util[_0xf27d('0x5')](AGIReply,Transform);AGIReply[_0xf27d('0x6')]['_transform']=function(_0x3cf8c9,_0x50ef47,_0x21ba87){var _0x337539='\x0a',_0x192353=['\x0a\x0a',_0xf27d('0x7')],_0x439c23=-0x1,_0x4df064=-0x1,_0x4210c4='',_0x46e8d2=0x0,_0x2e19ab='',_0x2b7620='';this[_0xf27d('0x8')]+=_0x3cf8c9[_0xf27d('0x9')]();_0x2e19ab=this[_0xf27d('0x8')];if(!this[_0xf27d('0x4')]){_0x46e8d2=0x0;while(_0x192353[_0x46e8d2]){while((_0x4df064=_0x2e19ab[_0xf27d('0xa')](_0x192353[_0x46e8d2]))!=-0x1){_0x4210c4=_0x192353[_0x46e8d2];_0x2b7620=_0x2e19ab[_0xf27d('0xb')](0x0,_0x4df064);_0x2e19ab=_0x2e19ab[_0xf27d('0xb')](_0x4df064+_0x4210c4[_0xf27d('0xc')]);var _0x50db24=_0x2b7620['split'](_0x337539),_0x1bf728=0x0,_0x2afc48={},_0x4696c5='',_0x55bf5e='',_0x1187d8=-0x1;while(_0x50db24[_0x1bf728]){_0x1187d8=_0x50db24[_0x1bf728]['indexOf'](':');if(_0x1187d8!=-0x1){_0x4696c5=_0x50db24[_0x1bf728]['slice'](0x0,_0x1187d8)['trim']();_0x55bf5e=_0x50db24[_0x1bf728][_0xf27d('0xd')](_0x1187d8+0x1)['trim']();if(_0x4696c5[_0xf27d('0xc')]>0x0){_0x2afc48[_0x4696c5]=_0x55bf5e;}}else{}_0x1bf728++;}this[_0xf27d('0xe')](_0xf27d('0xf'),_0x2afc48);this[_0xf27d('0x4')]=!![];}_0x46e8d2++;}this[_0xf27d('0x8')]=_0x2e19ab;}else{while((_0x439c23=_0x2e19ab[_0xf27d('0xa')](_0x337539))!=-0x1){_0x2b7620=_0x2e19ab['substring'](0x0,_0x439c23);this['emit']('line',_0x2b7620);_0x2e19ab=_0x2e19ab[_0xf27d('0xb')](_0x439c23+_0x337539['length']);}this[_0xf27d('0x8')]=_0x2e19ab;}_0x21ba87();};module['exports']=AGIReply;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xeb43=['merge','arg_1','arg_2','format','YYYY-MM-DD\x20HH:mm:ss','createSquareRecording','CreateSquareRecording','createSquareMessage','createCmContact','ShowCmHopper','phone','ListId','CreateCmContact','getPauseById','ShowPause','agentLogin','LoginUser','agentUnpause','UnpauseUser','agentLogout','bluebird','moment','lodash','util','jayson/promise','client','http','request','then','message','result','production','getMailAccountById','ShowMailAccount','MailServerOut','Smtp','name','email','getSquareProjectById','ShowSquareProject','getVoiceQueueById','ShowVoiceQueue','ShowVariable','ShowSquareOdbc','getUserById','ShowUser','getTrunkById','ShowTrunk','getSoundById','save_name','getIntervalById','ShowInterval','Intervals','getSmsAccountById','ShowSmsAccount','createSmsMessage','CreateSmsMessage','createSquareDetailsReport'];(function(_0x11446f,_0xc00cbb){var _0x1fba89=function(_0x10f0ff){while(--_0x10f0ff){_0x11446f['push'](_0x11446f['shift']());}};_0x1fba89(++_0xc00cbb);}(_0xeb43,0x1aa));var _0x3eb4=function(_0x19159d,_0x3d05c8){_0x19159d=_0x19159d-0x0;var _0x35884a=_0xeb43[_0x19159d];return _0x35884a;};'use strict';var BPromise=require(_0x3eb4('0x0'));var moment=require(_0x3eb4('0x1'));var _=require(_0x3eb4('0x2'));var util=require(_0x3eb4('0x3'));var jayson=require(_0x3eb4('0x4'));var client=jayson[_0x3eb4('0x5')][_0x3eb4('0x6')]({'port':0x2329});function request(_0x36025b,_0x4d5d4a){return new BPromise(function(_0x9eb951,_0x2b9f3a){return client[_0x3eb4('0x7')](_0x36025b,_0x4d5d4a)[_0x3eb4('0x8')](function(_0x24662b){if(_0x24662b['error']){return _0x2b9f3a(_0x24662b['error'][_0x3eb4('0x9')]);}else{return _0x9eb951(_0x24662b[_0x3eb4('0xa')]);}})['catch'](function(_0x2b640b){return _0x2b9f3a(_0x2b640b);});});}exports['getSquareProject']=function(_0x19eb1d){return request('ShowSquareProject',{'options':{'raw':![],'where':{'name':_0x19eb1d},'attributes':[_0x3eb4('0xb')]}});};exports[_0x3eb4('0xc')]=function(_0x4a5dac){return request(_0x3eb4('0xd'),{'options':{'raw':![],'where':{'id':_0x4a5dac},'include':[{'model':_0x3eb4('0xe'),'as':_0x3eb4('0xf')}],'attributes':['id',_0x3eb4('0x10'),_0x3eb4('0x11')]}});};exports[_0x3eb4('0x12')]=function(_0x11e29d){return request(_0x3eb4('0x13'),{'options':{'where':{'id':_0x11e29d},'attributes':[_0x3eb4('0x10')]}});};exports[_0x3eb4('0x14')]=function(_0x4f325b){return request(_0x3eb4('0x15'),{'options':{'where':{'id':_0x4f325b},'attributes':[_0x3eb4('0x10')]}});};exports['getVariableById']=function(_0x4ba19f){return request(_0x3eb4('0x16'),{'options':{'where':{'id':_0x4ba19f},'attributes':['name']}});};exports['getSquareOdbcById']=function(_0x40a9c7){return request(_0x3eb4('0x17'),{'options':{'where':{'id':_0x40a9c7},'attributes':['dsn']}});};exports[_0x3eb4('0x18')]=function(_0x39973d){return request(_0x3eb4('0x19'),{'options':{'where':{'id':_0x39973d},'attributes':[_0x3eb4('0x10')]}});};exports[_0x3eb4('0x1a')]=function(_0xf7babf){return request(_0x3eb4('0x1b'),{'options':{'where':{'id':_0xf7babf},'attributes':[_0x3eb4('0x10')]}});};exports[_0x3eb4('0x1c')]=function(_0x260574){return request('ShowSound',{'options':{'where':{'id':_0x260574},'attributes':[_0x3eb4('0x1d')]}});};exports[_0x3eb4('0x1e')]=function(_0x45ee1b){return request(_0x3eb4('0x1f'),{'options':{'raw':![],'where':{'id':_0x45ee1b},'include':[{'model':'Interval','as':_0x3eb4('0x20')}]}});};exports[_0x3eb4('0x21')]=function(_0x567a83){return request(_0x3eb4('0x22'),{'options':{'where':{'id':_0x567a83},'attributes':['id',_0x3eb4('0x10')]}});};exports[_0x3eb4('0x23')]=function(_0x21ea33){return request(_0x3eb4('0x24'),{'body':_0x21ea33});};exports[_0x3eb4('0x25')]=function(_0x5781e4){return request('CreateSquareDetailsReport',{'body':_0x5781e4});};exports['createSquareReport']=function(_0x33f467){return request('CreateSquareReport',{'body':_[_0x3eb4('0x26')](_0x33f467,{'project_name':_0x33f467[_0x3eb4('0x27')],'prev_project_name':_0x33f467['arg_2']||'','is_subproject':_0x33f467[_0x3eb4('0x28')]?!![]:![],'leaveAt':moment()[_0x3eb4('0x29')](_0x3eb4('0x2a'))})});};exports[_0x3eb4('0x2b')]=function(_0x4a67d1){return request(_0x3eb4('0x2c'),{'body':_0x4a67d1});};exports[_0x3eb4('0x2d')]=function(_0x6ec3fa){return request('CreateSquareMessage',{'body':_0x6ec3fa});};exports[_0x3eb4('0x2e')]=function(_0x469286){return request(_0x3eb4('0x2f'),{'options':{'raw':![],'where':{'phone':_0x469286[_0x3eb4('0x30')],'ListId':_0x469286[_0x3eb4('0x31')]}}})['then'](function(_0x405cc7){if(_0x405cc7){return _0x405cc7;}return request(_0x3eb4('0x32'),{'body':_0x469286});});};exports[_0x3eb4('0x33')]=function(_0xa97f4){return request(_0x3eb4('0x34'),{'options':{'where':{'id':_0xa97f4},'attributes':[_0x3eb4('0x10')]}});};exports[_0x3eb4('0x35')]=function(_0x608ab,_0xf9c87a){return request(_0x3eb4('0x36'),{'body':{'interface':_0xf9c87a},'options':{'where':_0x608ab}});};exports['agentPause']=function(_0x4ff969,_0x241e86,_0x4143a5){return request('PauseUser',{'body':{'type':_0x241e86,'uniqueid':_0x4143a5},'options':{'where':_0x4ff969}});};exports[_0x3eb4('0x37')]=function(_0x300bcd){return request(_0x3eb4('0x38'),{'body':{},'options':{'where':_0x300bcd}});};exports[_0x3eb4('0x39')]=function(_0x42f1e8){return request('LogoutUser',{'body':{},'options':{'where':_0x42f1e8}});};
\ No newline at end of file
+var _0x7b9a=['createSquareReport','merge','arg_1','arg_2','format','YYYY-MM-DD\x20HH:mm:ss','createSquareRecording','CreateSquareRecording','createSquareMessage','CreateSquareMessage','createCmContact','ShowCmHopper','ListId','getPauseById','ShowPause','agentLogin','LoginUser','agentPause','PauseUser','agentUnpause','UnpauseUser','agentLogout','bluebird','moment','util','client','http','request','then','error','message','result','catch','getSquareProject','ShowSquareProject','production','getMailAccountById','ShowMailAccount','MailServerOut','Smtp','email','name','getVoiceQueueById','ShowVoiceQueue','ShowVariable','ShowSquareOdbc','getUserById','ShowUser','ShowTrunk','getSoundById','save_name','ShowInterval','Intervals','getSmsAccountById','CreateSmsMessage','createSquareDetailsReport','CreateSquareDetailsReport'];(function(_0x533132,_0xf5b6fa){var _0x1a7447=function(_0x44d580){while(--_0x44d580){_0x533132['push'](_0x533132['shift']());}};_0x1a7447(++_0xf5b6fa);}(_0x7b9a,0x133));var _0xa7b9=function(_0x522904,_0x16f8d9){_0x522904=_0x522904-0x0;var _0x18ddbb=_0x7b9a[_0x522904];return _0x18ddbb;};'use strict';var BPromise=require(_0xa7b9('0x0'));var moment=require(_0xa7b9('0x1'));var _=require('lodash');var util=require(_0xa7b9('0x2'));var jayson=require('jayson/promise');var client=jayson[_0xa7b9('0x3')][_0xa7b9('0x4')]({'port':0x2329});function request(_0x4077de,_0x5b3840){return new BPromise(function(_0x21602b,_0x45ca68){return client[_0xa7b9('0x5')](_0x4077de,_0x5b3840)[_0xa7b9('0x6')](function(_0x4b2326){if(_0x4b2326['error']){return _0x45ca68(_0x4b2326[_0xa7b9('0x7')][_0xa7b9('0x8')]);}else{return _0x21602b(_0x4b2326[_0xa7b9('0x9')]);}})[_0xa7b9('0xa')](function(_0x180a9b){return _0x45ca68(_0x180a9b);});});}exports[_0xa7b9('0xb')]=function(_0x22c297){return request(_0xa7b9('0xc'),{'options':{'raw':![],'where':{'name':_0x22c297},'attributes':[_0xa7b9('0xd')]}});};exports[_0xa7b9('0xe')]=function(_0x5f27b9){return request(_0xa7b9('0xf'),{'options':{'raw':![],'where':{'id':_0x5f27b9},'include':[{'model':_0xa7b9('0x10'),'as':_0xa7b9('0x11')}],'attributes':['id','name',_0xa7b9('0x12')]}});};exports['getSquareProjectById']=function(_0x2e5b33){return request(_0xa7b9('0xc'),{'options':{'where':{'id':_0x2e5b33},'attributes':[_0xa7b9('0x13')]}});};exports[_0xa7b9('0x14')]=function(_0xb4458c){return request(_0xa7b9('0x15'),{'options':{'where':{'id':_0xb4458c},'attributes':['name']}});};exports['getVariableById']=function(_0x2fd4a1){return request(_0xa7b9('0x16'),{'options':{'where':{'id':_0x2fd4a1},'attributes':['name']}});};exports['getSquareOdbcById']=function(_0x588a9d){return request(_0xa7b9('0x17'),{'options':{'where':{'id':_0x588a9d},'attributes':['dsn']}});};exports[_0xa7b9('0x18')]=function(_0x50be90){return request(_0xa7b9('0x19'),{'options':{'where':{'id':_0x50be90},'attributes':[_0xa7b9('0x13')]}});};exports['getTrunkById']=function(_0x11c6f7){return request(_0xa7b9('0x1a'),{'options':{'where':{'id':_0x11c6f7},'attributes':['name']}});};exports[_0xa7b9('0x1b')]=function(_0x4128ce){return request('ShowSound',{'options':{'where':{'id':_0x4128ce},'attributes':[_0xa7b9('0x1c')]}});};exports['getIntervalById']=function(_0x2ad693){return request(_0xa7b9('0x1d'),{'options':{'raw':![],'where':{'id':_0x2ad693},'include':[{'model':'Interval','as':_0xa7b9('0x1e')}]}});};exports[_0xa7b9('0x1f')]=function(_0x5e819c){return request('ShowSmsAccount',{'options':{'where':{'id':_0x5e819c},'attributes':['id',_0xa7b9('0x13')]}});};exports['createSmsMessage']=function(_0x350f8c){return request(_0xa7b9('0x20'),{'body':_0x350f8c});};exports[_0xa7b9('0x21')]=function(_0x483c2b){return request(_0xa7b9('0x22'),{'body':_0x483c2b});};exports[_0xa7b9('0x23')]=function(_0x44ff3b){return request('CreateSquareReport',{'body':_[_0xa7b9('0x24')](_0x44ff3b,{'project_name':_0x44ff3b[_0xa7b9('0x25')],'prev_project_name':_0x44ff3b['arg_2']||'','is_subproject':_0x44ff3b[_0xa7b9('0x26')]?!![]:![],'leaveAt':moment()[_0xa7b9('0x27')](_0xa7b9('0x28'))})});};exports[_0xa7b9('0x29')]=function(_0x16e350){return request(_0xa7b9('0x2a'),{'body':_0x16e350});};exports[_0xa7b9('0x2b')]=function(_0x350287){return request(_0xa7b9('0x2c'),{'body':_0x350287});};exports[_0xa7b9('0x2d')]=function(_0x42ea88){return request(_0xa7b9('0x2e'),{'options':{'raw':![],'where':{'phone':_0x42ea88['phone'],'ListId':_0x42ea88[_0xa7b9('0x2f')]}}})[_0xa7b9('0x6')](function(_0x108b13){if(_0x108b13){return _0x108b13;}return request('CreateCmContact',{'body':_0x42ea88});});};exports[_0xa7b9('0x30')]=function(_0x235469){return request(_0xa7b9('0x31'),{'options':{'where':{'id':_0x235469},'attributes':[_0xa7b9('0x13')]}});};exports[_0xa7b9('0x32')]=function(_0x3a4c39,_0x307503){return request(_0xa7b9('0x33'),{'body':{'interface':_0x307503},'options':{'where':_0x3a4c39}});};exports[_0xa7b9('0x34')]=function(_0x2e0361,_0x4fd221,_0x1fd724){return request(_0xa7b9('0x35'),{'body':{'type':_0x4fd221,'uniqueid':_0x1fd724},'options':{'where':_0x2e0361}});};exports[_0xa7b9('0x36')]=function(_0x5e1200){return request(_0xa7b9('0x37'),{'body':{},'options':{'where':_0x5e1200}});};exports[_0xa7b9('0x38')]=function(_0x16e157){return request('LogoutUser',{'body':{},'options':{'where':_0x16e157}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf360=['./lex','exports','./polly'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0xf360,0x9e));var _0x0f36=function(_0xa464c9,_0x7c86d8){_0xa464c9=_0xa464c9-0x0;var _0x3d73c4=_0xf360[_0xa464c9];return _0x3d73c4;};var polly=require(_0x0f36('0x0'));var lex=require(_0x0f36('0x1'));module[_0x0f36('0x2')]={'polly':polly,'lex':lex};
\ No newline at end of file
+var _0xb7a7=['./lex','exports','./polly'];(function(_0x58a30a,_0xf761da){var _0x5385a4=function(_0x52a306){while(--_0x52a306){_0x58a30a['push'](_0x58a30a['shift']());}};_0x5385a4(++_0xf761da);}(_0xb7a7,0x6e));var _0x7b7a=function(_0x3cdd11,_0x45b37e){_0x3cdd11=_0x3cdd11-0x0;var _0x573b56=_0xb7a7[_0x3cdd11];return _0x573b56;};var polly=require(_0x7b7a('0x0'));var lex=require(_0x7b7a('0x1'));module[_0x7b7a('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(_0x295451,_0x1ca8f1){var _0x591fd6=function(_0x117b4d){while(--_0x117b4d){_0x295451['push'](_0x295451['shift']());}};_0x591fd6(++_0x1ca8f1);}(_0x9c00,0x1a0));var _0x09c0=function(_0x4214da,_0x586705){_0x4214da=_0x4214da-0x0;var _0x64da0=_0x9c00[_0x4214da];return _0x64da0;};'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 _0xa9e0=['exports','./lib/api'];(function(_0x256422,_0x367394){var _0x55dddc=function(_0x1594bc){while(--_0x1594bc){_0x256422['push'](_0x256422['shift']());}};_0x55dddc(++_0x367394);}(_0xa9e0,0x123));var _0x0a9e=function(_0xea8947,_0x1b573d){_0xea8947=_0xea8947-0x0;var _0x2455e9=_0xa9e0[_0xea8947];return _0x2455e9;};'use strict';var lex=require(_0x0a9e('0x0'));module[_0x0a9e('0x1')]=function(_0x29929c,_0x5dd881,_0x550fbc,_0x18d5c9,_0x4ce2f1,_0x333808){return lex(_0x29929c,_0x5dd881,_0x550fbc,_0x18d5c9,_0x4ce2f1,_0x333808);};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['LexRuntime','bluebird','aws-sdk','slots','hasOwnProperty'];(function(_0x5b6032,_0x5cd054){var _0x4d72f2=function(_0xd68b73){while(--_0xd68b73){_0x5b6032['push'](_0x5b6032['shift']());}};_0x4d72f2(++_0x5cd054);}(_0xa9e0,0x123));var _0x0a9e=function(_0xae7c2f,_0xf31e04){_0xae7c2f=_0xae7c2f-0x0;var _0x5d7001=_0xa9e0[_0xae7c2f];return _0x5d7001;};'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(_0x42db70,_0x3ee52c){var _0xfe722d=function(_0x120b86){while(--_0x120b86){_0x42db70['push'](_0x42db70['shift']());}};_0xfe722d(++_0x3ee52c);}(_0xa9e0,0x123));var _0x0a9e=function(_0x481bf7,_0x437f69){_0x481bf7=_0x481bf7-0x0;var _0x461787=_0xa9e0[_0x481bf7];return _0x461787;};'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 _0xe461=['./lib/api','exports'];(function(_0x402045,_0x1c5977){var _0x30b313=function(_0x132ac6){while(--_0x132ac6){_0x402045['push'](_0x402045['shift']());}};_0x30b313(++_0x1c5977);}(_0xe461,0x1ae));var _0x1e46=function(_0x3bf5bd,_0x2c3428){_0x3bf5bd=_0x3bf5bd-0x0;var _0x2eb17e=_0xe461[_0x3bf5bd];return _0x2eb17e;};'use strict';var polly=require(_0x1e46('0x0'));module[_0x1e46('0x1')]=function(_0x5e49ee,_0x44e564,_0x2e7599,_0x541413,_0x4a06b6,_0x3df3f2,_0x321835){return polly(_0x5e49ee,_0x44e564,_0x2e7599,_0x541413,_0x4a06b6,_0x3df3f2,_0x321835);};
\ No newline at end of file
+var _0x2a43=['exports','./lib/api'];(function(_0x189f6f,_0x3d21a2){var _0x26ed6b=function(_0x381728){while(--_0x381728){_0x189f6f['push'](_0x189f6f['shift']());}};_0x26ed6b(++_0x3d21a2);}(_0x2a43,0x1a5));var _0x32a4=function(_0x110f8a,_0x484f70){_0x110f8a=_0x110f8a-0x0;var _0x3c86c9=_0x2a43[_0x110f8a];return _0x3c86c9;};'use strict';var polly=require(_0x32a4('0x0'));module[_0x32a4('0x1')]=function(_0x215874,_0x1e1cff,_0x1e77da,_0x36dd5b,_0x4d1d67,_0x1d974d,_0x5b528b){return polly(_0x215874,_0x1e1cff,_0x1e77da,_0x36dd5b,_0x4d1d67,_0x1d974d,_0x5b528b);};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf421=['synthesizeSpeech','AudioStream','Invalid\x20data\x20response\x20from\x20aws\x20Polly!','exports','Polly','text','path','randomstring','aws-sdk'];(function(_0x33be9d,_0x41618e){var _0x4a9267=function(_0x4f0e70){while(--_0x4f0e70){_0x33be9d['push'](_0x33be9d['shift']());}};_0x4a9267(++_0x41618e);}(_0xf421,0x192));var _0x1f42=function(_0x34233f,_0x18f1b1){_0x34233f=_0x34233f-0x0;var _0x2199a4=_0xf421[_0x34233f];return _0x2199a4;};'use strict';var fs=require('fs');var path=require(_0x1f42('0x0'));var BPromise=require('bluebird');var rs=require(_0x1f42('0x1'));var AWS=require(_0x1f42('0x2'));function pollyResult(_0x3d017f,_0x1919d4,_0x59f9d8){return new BPromise(function(_0x4f812a,_0x2113a1){_0x3d017f[_0x1f42('0x3')](_0x1919d4,function(_0xd6349a,_0x255b01){if(_0xd6349a){_0x2113a1(_0xd6349a);}else if(_0x255b01){if(_0x255b01[_0x1f42('0x4')]instanceof Buffer){fs['writeFile'](_0x59f9d8,_0x255b01['AudioStream'],function(_0x448c97){if(_0x448c97){_0x2113a1(_0x448c97);}else{_0x4f812a();}});}else{_0x2113a1(new Error(_0x1f42('0x5')));}}else{_0x2113a1(new Error('No\x20data\x20response\x20from\x20aws\x20Polly!'));}});});}module[_0x1f42('0x6')]=function(_0x28522d,_0x4de7d6,_0x50fd12,_0x3b441e,_0x2104ac,_0x4fd1a2,_0x4dcbb7){var _0x3880a0=new AWS[(_0x1f42('0x7'))]({'accessKeyId':_0x28522d,'secretAccessKey':_0x4de7d6,'region':_0x50fd12});var _0x3f8ba5={'Text':_0x2104ac,'TextType':_0x4fd1a2||_0x1f42('0x8'),'OutputFormat':'mp3','VoiceId':_0x3b441e};return pollyResult(_0x3880a0,_0x3f8ba5,_0x4dcbb7);};
\ No newline at end of file
+var _0xc601=['synthesizeSpeech','AudioStream','writeFile','Invalid\x20data\x20response\x20from\x20aws\x20Polly!','No\x20data\x20response\x20from\x20aws\x20Polly!','exports','Polly','mp3','path','bluebird','randomstring'];(function(_0xcfed91,_0x29b51b){var _0x42e245=function(_0x1a131c){while(--_0x1a131c){_0xcfed91['push'](_0xcfed91['shift']());}};_0x42e245(++_0x29b51b);}(_0xc601,0x1aa));var _0x1c60=function(_0x296525,_0x5c9c96){_0x296525=_0x296525-0x0;var _0x2df3d9=_0xc601[_0x296525];return _0x2df3d9;};'use strict';var fs=require('fs');var path=require(_0x1c60('0x0'));var BPromise=require(_0x1c60('0x1'));var rs=require(_0x1c60('0x2'));var AWS=require('aws-sdk');function pollyResult(_0x2daa7e,_0x256000,_0x3961f5){return new BPromise(function(_0x32e63f,_0x3c46ad){_0x2daa7e[_0x1c60('0x3')](_0x256000,function(_0x45b7e6,_0x3d9226){if(_0x45b7e6){_0x3c46ad(_0x45b7e6);}else if(_0x3d9226){if(_0x3d9226[_0x1c60('0x4')]instanceof Buffer){fs[_0x1c60('0x5')](_0x3961f5,_0x3d9226['AudioStream'],function(_0x429e9d){if(_0x429e9d){_0x3c46ad(_0x429e9d);}else{_0x32e63f();}});}else{_0x3c46ad(new Error(_0x1c60('0x6')));}}else{_0x3c46ad(new Error(_0x1c60('0x7')));}});});}module[_0x1c60('0x8')]=function(_0x1aad6b,_0x2f716b,_0x23d391,_0x1ae82c,_0x254480,_0x138e69,_0xba3b66){var _0x48d99f=new AWS[(_0x1c60('0x9'))]({'accessKeyId':_0x1aad6b,'secretAccessKey':_0x2f716b,'region':_0x23d391});var _0x403cc1={'Text':_0x254480,'TextType':_0x138e69||'text','OutputFormat':_0x1c60('0xa'),'VoiceId':_0x1ae82c};return pollyResult(_0x48d99f,_0x403cc1,_0xba3b66);};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x04b7=['./lib/api','exports'];(function(_0x3a0c4f,_0x5dd1a3){var _0x247049=function(_0x144695){while(--_0x144695){_0x3a0c4f['push'](_0x3a0c4f['shift']());}};_0x247049(++_0x5dd1a3);}(_0x04b7,0x18c));var _0x704b=function(_0x381e4e,_0x4d46c6){_0x381e4e=_0x381e4e-0x0;var _0x52fc95=_0x04b7[_0x381e4e];return _0x52fc95;};'use strict';var asr=require(_0x704b('0x0'));module[_0x704b('0x1')]=function(_0x340ec3,_0x14d0e6,_0x4a1c0e,_0x6bafee){return asr(_0x340ec3,_0x14d0e6,_0x4a1c0e);};
\ No newline at end of file
+var _0xa670=['./lib/api'];(function(_0x3511d3,_0x4107ae){var _0x5d6321=function(_0x1a23da){while(--_0x1a23da){_0x3511d3['push'](_0x3511d3['shift']());}};_0x5d6321(++_0x4107ae);}(_0xa670,0x9d));var _0x0a67=function(_0x5c24df,_0x4fe6bf){_0x5c24df=_0x5c24df-0x0;var _0x3f5688=_0xa670[_0x5c24df];return _0x3f5688;};'use strict';var asr=require(_0x0a67('0x0'));module['exports']=function(_0x1b2193,_0x5cb51c,_0x184ef5,_0x4ee6a6){return asr(_0x1b2193,_0x5cb51c,_0x184ef5);};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0a12=['base64','POST','/v1/speech:recognize?key=','8000','bluebird','string','length','filepath\x20should\x20be\x20a\x20string','undefined','lang\x20should\x20be\x20a\x20string','readFileSync','toString'];(function(_0x20952d,_0x4eddd5){var _0x3b24d5=function(_0x57297e){while(--_0x57297e){_0x20952d['push'](_0x20952d['shift']());}};_0x3b24d5(++_0x4eddd5);}(_0x0a12,0xb8));var _0x20a1=function(_0x4a3898,_0x4c9853){_0x4a3898=_0x4a3898-0x0;var _0x25ceb0=_0x0a12[_0x4a3898];return _0x25ceb0;};'use strict';var url=require('url');var BPromise=require(_0x20a1('0x0'));var fs=require('fs');var host='https://speech.googleapis.com';module['exports']=function(_0x538550,_0x38a7da,_0x4ec1f1){return new BPromise(function(_0x3fe991,_0x2079d8){var _0x2cd34f;if(typeof _0x538550!==_0x20a1('0x1')||_0x538550[_0x20a1('0x2')]===0x0){return _0x2079d8(_0x20a1('0x3'));}if(typeof _0x38a7da!==_0x20a1('0x1')||_0x38a7da['length']===0x0){return _0x2079d8('key\x20should\x20be\x20a\x20string');}if(typeof _0x4ec1f1!==_0x20a1('0x4')&&(typeof _0x4ec1f1!=='string'||_0x4ec1f1['length']===0x0)){return _0x2079d8(_0x20a1('0x5'));}try{_0x2cd34f=fs[_0x20a1('0x6')](_0x538550)[_0x20a1('0x7')](_0x20a1('0x8'));}catch(_0x24f114){return _0x2079d8(_0x24f114);}return _0x3fe991({'method':_0x20a1('0x9'),'uri':host+_0x20a1('0xa')+_0x38a7da,'body':{'config':{'encoding':'LINEAR16','sampleRateHertz':_0x20a1('0xb'),'languageCode':_0x4ec1f1},'audio':{'content':_0x2cd34f}},'json':!![]});});};
\ No newline at end of file
+var _0x524a=['undefined','lang\x20should\x20be\x20a\x20string','readFileSync','toString','base64','/v1/speech:recognize?key=','LINEAR16','url','bluebird','https://speech.googleapis.com','exports','string','length','filepath\x20should\x20be\x20a\x20string'];(function(_0x400737,_0x1c7701){var _0x183d39=function(_0x4e90d9){while(--_0x4e90d9){_0x400737['push'](_0x400737['shift']());}};_0x183d39(++_0x1c7701);}(_0x524a,0xf5));var _0xa524=function(_0xa31b38,_0x59abe3){_0xa31b38=_0xa31b38-0x0;var _0x3f65f1=_0x524a[_0xa31b38];return _0x3f65f1;};'use strict';var url=require(_0xa524('0x0'));var BPromise=require(_0xa524('0x1'));var fs=require('fs');var host=_0xa524('0x2');module[_0xa524('0x3')]=function(_0x53c48c,_0x4a29b7,_0x2ef77c){return new BPromise(function(_0xa89d8c,_0x56ab08){var _0x50ec75;if(typeof _0x53c48c!==_0xa524('0x4')||_0x53c48c[_0xa524('0x5')]===0x0){return _0x56ab08(_0xa524('0x6'));}if(typeof _0x4a29b7!=='string'||_0x4a29b7[_0xa524('0x5')]===0x0){return _0x56ab08('key\x20should\x20be\x20a\x20string');}if(typeof _0x2ef77c!==_0xa524('0x7')&&(typeof _0x2ef77c!==_0xa524('0x4')||_0x2ef77c['length']===0x0)){return _0x56ab08(_0xa524('0x8'));}try{_0x50ec75=fs[_0xa524('0x9')](_0x53c48c)[_0xa524('0xa')](_0xa524('0xb'));}catch(_0x3b484b){return _0x56ab08(_0x3b484b);}return _0xa89d8c({'method':'POST','uri':host+_0xa524('0xc')+_0x4a29b7,'body':{'config':{'encoding':_0xa524('0xd'),'sampleRateHertz':'8000','languageCode':_0x2ef77c},'audio':{'content':_0x50ec75}},'json':!![]});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6071=['exports','./asr'];(function(_0x14ee69,_0x436a8a){var _0x4d5664=function(_0x3e69bc){while(--_0x3e69bc){_0x14ee69['push'](_0x14ee69['shift']());}};_0x4d5664(++_0x436a8a);}(_0x6071,0x1eb));var _0x1607=function(_0xf5acea,_0x44937f){_0xf5acea=_0xf5acea-0x0;var _0x2635df=_0x6071[_0xf5acea];return _0x2635df;};var asr=require(_0x1607('0x0'));module[_0x1607('0x1')]={'asr':asr};
\ No newline at end of file
+var _0x798a=['./asr','exports'];(function(_0x3064a3,_0x20e71a){var _0x4319b6=function(_0x2e5240){while(--_0x2e5240){_0x3064a3['push'](_0x3064a3['shift']());}};_0x4319b6(++_0x20e71a);}(_0x798a,0x18e));var _0xa798=function(_0x2dadb9,_0x42cfe6){_0x2dadb9=_0x2dadb9-0x0;var _0x2f0097=_0x798a[_0x2dadb9];return _0x2f0097;};var asr=require(_0xa798('0x0'));module[_0xa798('0x1')]={'asr':asr};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcbcd=['googleCloudTTS\x20path','googleTTS','utf8','stringify','jQ1olc','generic','slice','parse\x20response\x20failed:\x0a','length','lang\x20\x22','asr','uri','results','map','alternatives','transcript','join','confidence','googleASR\x20confidence','catch','[%s]\x20%s:%s','name','googleDialogflow','textRequest','result','action','actionIncomplete','fulfillment','speech','score','status','code','metadata','endConversation','isFallbackIntent','googleDialogflowV2','replace','SessionsClient','sessionPath','Dialogflow\x20V2\x20response:','queryResult','diagnosticInfo','fields','end_conversation','boolValue','fulfillmentText','intent','displayName','isFallback','languageCode','queryText','responseId','tildeASR','Tilde\x20ASR\x20transcription','Tilde\x20ASR\x20confidence','awsPolly','polly','awsLex','lex','ispeechTTS','format','%s?apikey=%s&action=convert&text=%s&voice=%s&speed=%s&format=mp3','ispeechASR','%s?apikey=%s&action=recognize&locale=%s&content-type=audio/x-wav&audio=%s&%s','model=%s','freeform=3','nda','text','channelData','CustomAction','AudioFromTts','audiofile','dirName','apiai-promise','bluebird','http','https','md5','querystring','request-promise','randomstring','sox','google-tts-api','url','parse','util','./aws','./google','./sestek','./tilde','agi','https://api.ispeech.org/api/rest','protocol','https:','host','get','statusCode','error','request\x20to\x20','\x20failed,\x20status\x20code\x20=\x20','statusMessage','finish','info','close','unlink','download\x20error','path','WHAT_EVER','data','end','transcode','wav','error\x20convert','finish\x20to\x20convert','start','resolve','generate','.wav','writeFileSync','base64','then','chmodSync','777','split','readFileSync','toString','googleCloudTTS','https://texttospeech.googleapis.com/v1/','?key=','ssml','input','audioConfig','MP3','text:synthesize','POST','tmp','.mp3','audioContent','writeFile'];(function(_0x1589dd,_0x2b9d22){var _0x1bddd1=function(_0x3687f8){while(--_0x3687f8){_0x1589dd['push'](_0x1589dd['shift']());}};_0x1bddd1(++_0x2b9d22);}(_0xcbcd,0xd4));var _0xdcbc=function(_0x2842b4,_0x2b1b7b){_0x2842b4=_0x2842b4-0x0;var _0x2b9521=_0xcbcd[_0x2842b4];return _0x2b9521;};'use strict';var apiai=require(_0xdcbc('0x0'));var BPromise=require(_0xdcbc('0x1'));var dialogflow=require('dialogflow');var fs=require('fs');var http=require(_0xdcbc('0x2'));var https=require(_0xdcbc('0x3'));var md5=require(_0xdcbc('0x4'));var path=require('path');var querystring=require(_0xdcbc('0x5'));var rp=require(_0xdcbc('0x6'));var rs=require(_0xdcbc('0x7'));var sox=require(_0xdcbc('0x8'));var tts=require(_0xdcbc('0x9'));var urlParse=require(_0xdcbc('0xa'))[_0xdcbc('0xb')];var util=require(_0xdcbc('0xc'));var aws=require(_0xdcbc('0xd'));var google=require(_0xdcbc('0xe'));var sestek=require(_0xdcbc('0xf'));var tilde=require(_0xdcbc('0x10'));var logger=require('../../../config/logger')(_0xdcbc('0x11'));var ISPEECH_API=_0xdcbc('0x12');function downloadFile(_0x3f8bd6,_0x1f145e){return new BPromise(function(_0x26e16e,_0x5cd830){var _0xfec0ad=urlParse(_0x3f8bd6);var _0x1bf08a=_0xfec0ad[_0xdcbc('0x13')]===_0xdcbc('0x14')?https:http;var _0x34d4d6={'host':_0xfec0ad[_0xdcbc('0x15')],'path':_0xfec0ad['path'],'headers':{'user-agent':'WHAT_EVER'}};_0x1bf08a[_0xdcbc('0x16')](_0x34d4d6,function(_0x3b890c){if(_0x3b890c[_0xdcbc('0x17')]!==0xc8){logger[_0xdcbc('0x18')](_0xdcbc('0x19')+_0x3f8bd6+_0xdcbc('0x1a')+_0x3b890c[_0xdcbc('0x17')]+'\x20('+_0x3b890c[_0xdcbc('0x1b')]+')');_0x5cd830(new Error(_0xdcbc('0x19')+_0x3f8bd6+_0xdcbc('0x1a')+_0x3b890c[_0xdcbc('0x17')]+'\x20('+_0x3b890c['statusMessage']+')'));return;}var _0x3c25f8=fs['createWriteStream'](_0x1f145e);_0x3c25f8['on'](_0xdcbc('0x1c'),function(){logger[_0xdcbc('0x1d')]('finish\x20download\x20file');_0x3c25f8[_0xdcbc('0x1e')](_0x26e16e);});_0x3c25f8['on']('error',function(_0x15e033){fs[_0xdcbc('0x1f')](_0x1f145e);logger[_0xdcbc('0x18')](_0xdcbc('0x20'),_0x15e033);_0x5cd830(_0x15e033);});_0x3b890c['pipe'](_0x3c25f8);})['on'](_0xdcbc('0x18'),function(_0x33e4ac){logger[_0xdcbc('0x18')](_0x33e4ac);_0x5cd830(_0x33e4ac);})['end']();});}function uploadFile(_0x42df2b){return new BPromise(function(_0x82722c,_0x413f19){var _0x237c92=urlParse(_0x42df2b);var _0x255f35=_0x237c92[_0xdcbc('0x13')]===_0xdcbc('0x14')?https:http;var _0x169438={'host':_0x237c92[_0xdcbc('0x15')],'path':_0x237c92[_0xdcbc('0x21')],'headers':{'user-agent':_0xdcbc('0x22')}};_0x255f35[_0xdcbc('0x16')](_0x169438,function(_0x5670e0){if(_0x5670e0[_0xdcbc('0x17')]!==0xc8){_0x413f19(new Error(_0xdcbc('0x19')+_0x42df2b+_0xdcbc('0x1a')+_0x5670e0[_0xdcbc('0x17')]+'\x20('+_0x5670e0[_0xdcbc('0x1b')]+')'));return;}var _0x1e4955='';_0x5670e0['on'](_0xdcbc('0x23'),function(_0x42594c){_0x1e4955+=_0x42594c;});_0x5670e0['on'](_0xdcbc('0x24'),function(){_0x82722c(_0x1e4955);});})['on'](_0xdcbc('0x18'),function(_0x4d2768){_0x413f19(_0x4d2768);})[_0xdcbc('0x24')]();});}function convertFile(_0x3d27c9,_0x9dba17){return new BPromise(function(_0x43385c,_0x576393){var _0x1202ec=sox[_0xdcbc('0x25')](_0x3d27c9,_0x9dba17,{'sampleRate':0x1f40,'format':_0xdcbc('0x26'),'channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x1202ec['on']('error',function(_0x2e3535){logger[_0xdcbc('0x18')](_0xdcbc('0x27'),_0x2e3535);_0x576393(_0x2e3535);});_0x1202ec['on'](_0xdcbc('0x24'),function(){logger[_0xdcbc('0x1d')](_0xdcbc('0x28'));_0x43385c();});_0x1202ec[_0xdcbc('0x29')]();});}function base64Decode(_0x351dda,_0x26f951){var _0x43c178=path[_0xdcbc('0x2a')](__dirname,'tmp',rs[_0xdcbc('0x2b')](0x4)+_0xdcbc('0x2c'));fs[_0xdcbc('0x2d')](_0x43c178,_0x351dda,_0xdcbc('0x2e'));return convertFile(_0x43c178,_0x26f951)[_0xdcbc('0x2f')](function(){try{fs['unlink'](_0x43c178);fs[_0xdcbc('0x30')](_0x26f951,_0xdcbc('0x31'));}catch(_0x1cd9a5){logger[_0xdcbc('0x18')](_0x1cd9a5);}return _0x26f951[_0xdcbc('0x32')]('.')[0x0];});}function base64Encode(_0x12678d){var _0x38f301=fs[_0xdcbc('0x33')](_0x12678d);return new Buffer(_0x38f301)[_0xdcbc('0x34')]('base64');}exports[_0xdcbc('0x35')]=function(_0x5dc778,_0x16ba00,_0x339d30,_0x1b863d,_0x348d46,_0x52a314){var _0x4f6dd3,_0x8eae30;var _0x47b41d=_0xdcbc('0x36');var _0xd0ac4=_0xdcbc('0x37')+_0x5dc778;var _0x1a73a6={};if(_0x16ba00===_0xdcbc('0x38')){_0x1a73a6['input']={'ssml':_0x339d30};}else{_0x1a73a6[_0xdcbc('0x39')]={'text':_0x339d30};};_0x1a73a6['voice']={'languageCode':_0x1b863d,'ssmlGender':_0x348d46};_0x1a73a6[_0xdcbc('0x3a')]={'audioEncoding':_0xdcbc('0x3b'),'sampleRateHertz':0x1f40};var _0x1fb8d4={'url':_0x47b41d+_0xdcbc('0x3c')+_0xd0ac4,'method':_0xdcbc('0x3d'),'json':!![],'body':_0x1a73a6};return rp(_0x1fb8d4)[_0xdcbc('0x2f')](function(_0x3b6bc1){return new BPromise(function(_0x9f63d3,_0x5601be){_0x4f6dd3=path[_0xdcbc('0x2a')](__dirname,_0xdcbc('0x3e'),rs['generate'](0x4)+_0xdcbc('0x3f'));var _0x56fc64=Buffer['from'](_0x3b6bc1[_0xdcbc('0x40')],'base64');return fs[_0xdcbc('0x41')](_0x4f6dd3,_0x56fc64,function(_0xd54eb8){_0x5601be(_0xd54eb8);},function(_0x47c762){fs[_0xdcbc('0x30')](_0x4f6dd3,_0xdcbc('0x31'));_0x9f63d3(_0x47c762);});});})[_0xdcbc('0x2f')](function(_0x35d099){_0x8eae30=path[_0xdcbc('0x2a')](__dirname,_0xdcbc('0x3e'),rs[_0xdcbc('0x2b')](0x4)+_0xdcbc('0x2c'));return convertFile(_0x4f6dd3,_0x8eae30);})[_0xdcbc('0x2f')](function(){try{fs[_0xdcbc('0x1f')](_0x4f6dd3);fs[_0xdcbc('0x30')](_0x8eae30,_0xdcbc('0x31'));}catch(_0x691492){logger[_0xdcbc('0x18')](_0x691492);}logger['info'](_0xdcbc('0x42'),_0x8eae30[_0xdcbc('0x32')]('.')[0x0]);return _0x8eae30[_0xdcbc('0x32')]('.')[0x0];});};exports[_0xdcbc('0x43')]=function(_0x192ba6,_0x268845){var _0x68d63a='https://translate.google.com/_/TranslateWebserverUi/data/batchexecute';var _0x240f27,_0x3da8e7;var _0x4fdb42;var _0x537f75={'encoding':_0xdcbc('0x44'),'method':_0xdcbc('0x3d'),'timeout':0x2710,'url':_0x68d63a,'headers':{'Content-Type':'application/x-www-form-urlencoded'},'body':'f.req='+encodeURIComponent(JSON[_0xdcbc('0x45')]([[[_0xdcbc('0x46'),JSON['stringify']([_0x192ba6,_0x268845||'en',![],'null']),null,_0xdcbc('0x47')]]]))};return rp(_0x537f75)[_0xdcbc('0x2f')](function(_0x50ee11){try{_0x4fdb42=eval(_0x50ee11[_0xdcbc('0x48')](0x5))[0x0][0x2];}catch(_0x2d9e2f){throw new Error(_0xdcbc('0x49')+_0x50ee11['data']);}if(!_0x4fdb42){if(_0x192ba6[_0xdcbc('0x4a')]>0xc8){throw new Error('text\x20length\x20limit\x20reached');}else{throw new Error(_0xdcbc('0x4b')+_0x268845+'\x22\x20might\x20not\x20exist');}}try{_0x4fdb42=eval(_0x4fdb42)[0x0];}catch(_0x520fdb){throw new Error(_0xdcbc('0x49')+res[_0xdcbc('0x23')]);}const _0x980e08=_0x4fdb42;_0x240f27=path[_0xdcbc('0x2a')](__dirname,_0xdcbc('0x3e'),rs[_0xdcbc('0x2b')](0x4)+_0xdcbc('0x3f'));fs[_0xdcbc('0x2d')](_0x240f27,_0x4fdb42,{'encoding':_0xdcbc('0x2e')});_0x3da8e7=path[_0xdcbc('0x2a')](__dirname,'tmp',rs[_0xdcbc('0x2b')](0x4)+_0xdcbc('0x2c'));return convertFile(_0x240f27,_0x3da8e7);})[_0xdcbc('0x2f')](function(){try{fs[_0xdcbc('0x1f')](_0x240f27);fs[_0xdcbc('0x30')](_0x3da8e7,_0xdcbc('0x31'));}catch(_0x396840){logger['error'](_0x396840);}logger[_0xdcbc('0x1d')]('goggleTTS\x20path',_0x3da8e7[_0xdcbc('0x32')]('.')[0x0]);return _0x3da8e7[_0xdcbc('0x32')]('.')[0x0];});};exports['googleASR']=function(_0x1ed73f,_0x30f26c,_0x14da5a){return google[_0xdcbc('0x4c')](_0x1ed73f,_0x30f26c,_0x14da5a)['then'](function(_0x196274){logger[_0xdcbc('0x1d')](_0x196274[_0xdcbc('0x4d')]);return rp(_0x196274);})['then'](function(_0x8ca8f1){var _0x2cab99='';var _0x5419c0=0x0;try{fs[_0xdcbc('0x1f')](_0x1ed73f);}catch(_0x3cce7a){logger['error'](_0x3cce7a);}if(_0x8ca8f1&&_0x8ca8f1[_0xdcbc('0x4e')]){_0x2cab99=_0x8ca8f1[_0xdcbc('0x4e')][_0xdcbc('0x4f')](function(_0x3d2e93){return _0x3d2e93&&_0x3d2e93[_0xdcbc('0x50')][0x0]&&_0x3d2e93[_0xdcbc('0x50')][0x0][_0xdcbc('0x51')]?_0x3d2e93[_0xdcbc('0x50')][0x0][_0xdcbc('0x51')]:'';})[_0xdcbc('0x52')]('\x0a');_0x5419c0=_0x8ca8f1['results'][_0xdcbc('0x4f')](function(_0xe470a1){return _0xe470a1&&_0xe470a1['alternatives'][0x0]&&_0xe470a1['alternatives'][0x0][_0xdcbc('0x53')]?_0xe470a1[_0xdcbc('0x50')][0x0][_0xdcbc('0x53')]:0x0;})[_0xdcbc('0x52')]('\x0a');}logger[_0xdcbc('0x1d')]('googleASR\x20transcription',_0x2cab99);logger[_0xdcbc('0x1d')](_0xdcbc('0x54'),_0x5419c0);return{'transcript':_0x2cab99,'confidence':_0x5419c0};})[_0xdcbc('0x55')](function(_0x49ec98){logger['error'](_0xdcbc('0x56'),_0x49ec98[_0xdcbc('0x17')],_0x49ec98[_0xdcbc('0x57')],_0x49ec98['message']);});};exports[_0xdcbc('0x58')]=function(_0x18f60c,_0xcac283,_0x3bb42d,_0x6b2330){var _0x4a492e=apiai(_0xcac283,{'language':_0x6b2330||'en'});return _0x4a492e[_0xdcbc('0x59')](_0x3bb42d,{'sessionId':md5(_0x18f60c)})[_0xdcbc('0x2f')](function(_0x119b7d){logger['info'](JSON[_0xdcbc('0x45')](_0x119b7d));return{'source':_0x119b7d['result']['source'],'resolvedQuery':_0x119b7d[_0xdcbc('0x5a')]['resolvedQuery'],'action':_0x119b7d[_0xdcbc('0x5a')][_0xdcbc('0x5b')],'actionIncomplete':_0x119b7d['result'][_0xdcbc('0x5c')],'speech':_0x119b7d[_0xdcbc('0x5a')][_0xdcbc('0x5d')][_0xdcbc('0x5e')],'score':_0x119b7d[_0xdcbc('0x5a')][_0xdcbc('0x5f')],'statusCode':_0x119b7d[_0xdcbc('0x60')][_0xdcbc('0x61')],'endConversation':_0x119b7d[_0xdcbc('0x5a')][_0xdcbc('0x62')][_0xdcbc('0x63')]||![],'isFallbackIntent':_0x119b7d['result']['metadata'][_0xdcbc('0x64')]};});};exports[_0xdcbc('0x65')]=function(_0x488952,_0x590787,_0x45997f,_0x2436a1,_0x267e26,_0x29584b){var _0x335619=_0x2436a1[_0xdcbc('0x66')](/\\n/g,'\x0a');var _0x5f1b0f={'credentials':{'private_key':_0x335619,'client_email':_0x45997f}};var _0x7bde25=new dialogflow[(_0xdcbc('0x67'))](_0x5f1b0f);var _0x33b1c0=_0x7bde25[_0xdcbc('0x68')](_0x590787,md5(_0x488952));var _0x1382d7={'session':_0x33b1c0,'queryInput':{'text':{'text':_0x267e26,'languageCode':_0x29584b}}};return _0x7bde25['detectIntent'](_0x1382d7)['then'](function(_0x3ac23b){if(_0x3ac23b&&_0x3ac23b[_0xdcbc('0x4a')]){logger[_0xdcbc('0x1d')](_0xdcbc('0x69'),JSON[_0xdcbc('0x45')](_0x3ac23b));var _0x758563=_0x3ac23b[0x0];if(_0x758563){var _0x1ef663={'action':_0x758563[_0xdcbc('0x6a')]['action'],'allRequiredParamsPresent':_0x758563[_0xdcbc('0x6a')]['allRequiredParamsPresent'],'endConversation':_0x758563[_0xdcbc('0x6a')][_0xdcbc('0x6b')]&&_0x758563[_0xdcbc('0x6a')]['diagnosticInfo'][_0xdcbc('0x6c')]?_0x758563[_0xdcbc('0x6a')][_0xdcbc('0x6b')][_0xdcbc('0x6c')][_0xdcbc('0x6d')][_0xdcbc('0x6e')]:![],'fulfillmentText':_0x758563[_0xdcbc('0x6a')][_0xdcbc('0x6f')],'intentName':_0x758563['queryResult'][_0xdcbc('0x70')][_0xdcbc('0x57')],'intentDisplayName':_0x758563[_0xdcbc('0x6a')]['intent'][_0xdcbc('0x71')],'isFallbackIntent':_0x758563[_0xdcbc('0x6a')][_0xdcbc('0x70')][_0xdcbc('0x72')],'languageCode':_0x758563['queryResult'][_0xdcbc('0x73')],'queryText':_0x758563[_0xdcbc('0x6a')][_0xdcbc('0x74')],'responseId':_0x758563[_0xdcbc('0x75')],'score':_0x758563[_0xdcbc('0x6a')]['intentDetectionConfidence'],'speech':_0x758563[_0xdcbc('0x6a')][_0xdcbc('0x6f')],'providerResponse':JSON['stringify'](_0x3ac23b)};return _0x1ef663;}}});};exports[_0xdcbc('0x76')]=function(_0x5adad4,_0x162d64,_0x31cfbc,_0x1c2c22){return tilde[_0xdcbc('0x4c')](_0x5adad4,_0x162d64,_0x31cfbc,_0x1c2c22)[_0xdcbc('0x2f')](function(_0x4b81ee){try{fs[_0xdcbc('0x1f')](_0x5adad4);}catch(_0x66f4f6){logger[_0xdcbc('0x18')](_0x66f4f6);}logger[_0xdcbc('0x1d')](_0xdcbc('0x77'),_0x4b81ee[_0xdcbc('0x51')]);logger['info'](_0xdcbc('0x78'),_0x4b81ee['confidence']);return _0x4b81ee;});};exports[_0xdcbc('0x79')]=function(_0x419266,_0x814ab1,_0x510d3b,_0x1e70eb,_0x4b9f4e,_0x482b2c){var _0x23544f=path[_0xdcbc('0x2a')](__dirname,_0xdcbc('0x3e'),rs[_0xdcbc('0x2b')](0x4)+_0xdcbc('0x3f'));var _0x12291d;return aws[_0xdcbc('0x7a')](_0x419266,_0x814ab1,_0x510d3b,_0x1e70eb,_0x4b9f4e,_0x482b2c,_0x23544f)[_0xdcbc('0x2f')](function(){_0x12291d=path[_0xdcbc('0x2a')](__dirname,_0xdcbc('0x3e'),rs[_0xdcbc('0x2b')](0x4)+_0xdcbc('0x2c'));return convertFile(_0x23544f,_0x12291d);})[_0xdcbc('0x2f')](function(){try{fs[_0xdcbc('0x1f')](_0x23544f);fs[_0xdcbc('0x30')](_0x12291d,_0xdcbc('0x31'));}catch(_0x3f8063){logger['error'](_0x3f8063);}return _0x12291d[_0xdcbc('0x32')]('.')[0x0];});};exports[_0xdcbc('0x7b')]=function(_0x3cb888,_0x585dbd,_0x3dc7f1,_0x29c1a1,_0x42f61c,_0x377435){return aws[_0xdcbc('0x7c')](_0x3cb888,_0x585dbd,_0x3dc7f1,_0x29c1a1,_0x42f61c,_0x377435)[_0xdcbc('0x2f')](function(_0x4dce7e){logger[_0xdcbc('0x1d')](JSON['stringify'](_0x4dce7e));return _0x4dce7e;});};exports[_0xdcbc('0x7d')]=function(_0x4c07d2,_0x15c43d,_0x550777,_0x805ca2){var _0x13971b=util[_0xdcbc('0x7e')](_0xdcbc('0x7f'),ISPEECH_API,_0x4c07d2,encodeURIComponent(_0x15c43d),_0x550777,_0x805ca2);var _0x24fb93=path[_0xdcbc('0x2a')](__dirname,'tmp',rs[_0xdcbc('0x2b')](0x4)+_0xdcbc('0x3f'));var _0x5bad3f;return downloadFile(_0x13971b,_0x24fb93)['then'](function(){_0x5bad3f=path[_0xdcbc('0x2a')](__dirname,_0xdcbc('0x3e'),rs[_0xdcbc('0x2b')](0x4)+'.wav');return convertFile(_0x24fb93,_0x5bad3f);})[_0xdcbc('0x2f')](function(){try{fs['unlink'](_0x24fb93);fs['chmodSync'](_0x5bad3f,_0xdcbc('0x31'));}catch(_0x651e60){logger[_0xdcbc('0x18')](_0x651e60);}return _0x5bad3f[_0xdcbc('0x32')]('.')[0x0];});};exports[_0xdcbc('0x80')]=function(_0x3088a0,_0xc2761b,_0x5d0060,_0x165d00){var _0x7af822=util[_0xdcbc('0x7e')](_0xdcbc('0x81'),ISPEECH_API,_0xc2761b,_0x5d0060,base64Encode(_0x3088a0),_0x165d00?util[_0xdcbc('0x7e')](_0xdcbc('0x82'),encodeURIComponent(_0x165d00)):_0xdcbc('0x83'));return uploadFile(_0x7af822)[_0xdcbc('0x2f')](function(_0x1a2076){return querystring['parse'](_0x1a2076);});};exports['sestekNDA']=function(_0x370b86,_0x31136f){return sestek[_0xdcbc('0x84')](_0x370b86,_0x31136f)[_0xdcbc('0x2f')](function(_0x17ca09){logger[_0xdcbc('0x1d')](JSON[_0xdcbc('0x45')](_0x17ca09));var _0x4b50f3={'speech':_0x17ca09[_0xdcbc('0x85')],'action':_0x17ca09['channelData']?_0x17ca09[_0xdcbc('0x86')][_0xdcbc('0x87')]:undefined,'actiondata':_0x17ca09[_0xdcbc('0x86')]?_0x17ca09['channelData']['CustomActionData']:undefined};if(_0x17ca09[_0xdcbc('0x86')]&&_0x17ca09['channelData'][_0xdcbc('0x88')]){return base64Decode(_0x17ca09[_0xdcbc('0x86')][_0xdcbc('0x88')]['Data'],path[_0xdcbc('0x2a')](__dirname,'tmp',rs[_0xdcbc('0x2b')](0x4)+_0xdcbc('0x2c')))[_0xdcbc('0x2f')](function(_0x4b9e51){_0x4b50f3[_0xdcbc('0x89')]=_0x4b9e51;return _0x4b50f3;});}return _0x4b50f3;});};exports[_0xdcbc('0x8a')]=function(){return __dirname;};
\ No newline at end of file
+var _0x1015=['[%s]\x20%s:%s','name','googleDialogflow','textRequest','source','resolvedQuery','result','action','actionIncomplete','fulfillment','speech','score','status','endConversation','metadata','isFallbackIntent','googleDialogflowV2','replace','SessionsClient','detectIntent','length','queryResult','allRequiredParamsPresent','diagnosticInfo','fields','end_conversation','boolValue','fulfillmentText','intent','displayName','languageCode','queryText','tildeASR','Tilde\x20ASR\x20transcription','Tilde\x20ASR\x20confidence','awsPolly','awsLex','lex','format','ispeechASR','%s?apikey=%s&action=recognize&locale=%s&content-type=audio/x-wav&audio=%s&%s','model=%s','sestekNDA','nda','text','channelData','CustomAction','CustomActionData','AudioFromTts','Data','audiofile','dirName','apiai-promise','bluebird','dialogflow','https','md5','path','randomstring','sox','google-tts-api','url','parse','util','./aws','./google','./sestek','../../../config/logger','agi','https://api.ispeech.org/api/rest','https:','get','error','request\x20to\x20','\x20failed,\x20status\x20code\x20=\x20','statusCode','statusMessage','createWriteStream','finish','info','close','pipe','end','protocol','host','WHAT_EVER','data','transcode','wav','finish\x20to\x20convert','start','tmp','.wav','writeFileSync','then','unlink','777','readFileSync','toString','base64','googleCloudTTS','https://texttospeech.googleapis.com/v1/','?key=','input','voice','MP3','POST','resolve','generate','from','audioContent','writeFile','chmodSync','googleCloudTTS\x20path','split','googleTTS','https://translate.google.com/_/TranslateWebserverUi/data/batchexecute','utf8','application/x-www-form-urlencoded','f.req=','stringify','jQ1olc','null','generic','slice','parse\x20response\x20failed:\x0a','lang\x20\x22','\x22\x20might\x20not\x20exist','.mp3','goggleTTS\x20path','googleASR','asr','uri','results','map','alternatives','transcript','join','confidence','googleASR\x20transcription','catch'];(function(_0x1b6186,_0x1ec7f2){var _0x186121=function(_0x1748a8){while(--_0x1748a8){_0x1b6186['push'](_0x1b6186['shift']());}};_0x186121(++_0x1ec7f2);}(_0x1015,0x1db));var _0x5101=function(_0x43e381,_0x38ded2){_0x43e381=_0x43e381-0x0;var _0x3d0e3e=_0x1015[_0x43e381];return _0x3d0e3e;};'use strict';var apiai=require(_0x5101('0x0'));var BPromise=require(_0x5101('0x1'));var dialogflow=require(_0x5101('0x2'));var fs=require('fs');var http=require('http');var https=require(_0x5101('0x3'));var md5=require(_0x5101('0x4'));var path=require(_0x5101('0x5'));var querystring=require('querystring');var rp=require('request-promise');var rs=require(_0x5101('0x6'));var sox=require(_0x5101('0x7'));var tts=require(_0x5101('0x8'));var urlParse=require(_0x5101('0x9'))[_0x5101('0xa')];var util=require(_0x5101('0xb'));var aws=require(_0x5101('0xc'));var google=require(_0x5101('0xd'));var sestek=require(_0x5101('0xe'));var tilde=require('./tilde');var logger=require(_0x5101('0xf'))(_0x5101('0x10'));var ISPEECH_API=_0x5101('0x11');function downloadFile(_0x3b0716,_0x4cd020){return new BPromise(function(_0xee88f6,_0x3ac6ea){var _0x2cf8de=urlParse(_0x3b0716);var _0x4aeba9=_0x2cf8de['protocol']===_0x5101('0x12')?https:http;var _0x3f4664={'host':_0x2cf8de['host'],'path':_0x2cf8de[_0x5101('0x5')],'headers':{'user-agent':'WHAT_EVER'}};_0x4aeba9[_0x5101('0x13')](_0x3f4664,function(_0x18b319){if(_0x18b319['statusCode']!==0xc8){logger[_0x5101('0x14')](_0x5101('0x15')+_0x3b0716+_0x5101('0x16')+_0x18b319[_0x5101('0x17')]+'\x20('+_0x18b319[_0x5101('0x18')]+')');_0x3ac6ea(new Error(_0x5101('0x15')+_0x3b0716+_0x5101('0x16')+_0x18b319[_0x5101('0x17')]+'\x20('+_0x18b319[_0x5101('0x18')]+')'));return;}var _0x416a79=fs[_0x5101('0x19')](_0x4cd020);_0x416a79['on'](_0x5101('0x1a'),function(){logger[_0x5101('0x1b')]('finish\x20download\x20file');_0x416a79[_0x5101('0x1c')](_0xee88f6);});_0x416a79['on'](_0x5101('0x14'),function(_0x508883){fs['unlink'](_0x4cd020);logger[_0x5101('0x14')]('download\x20error',_0x508883);_0x3ac6ea(_0x508883);});_0x18b319[_0x5101('0x1d')](_0x416a79);})['on'](_0x5101('0x14'),function(_0x24ab75){logger[_0x5101('0x14')](_0x24ab75);_0x3ac6ea(_0x24ab75);})[_0x5101('0x1e')]();});}function uploadFile(_0xe5cb71){return new BPromise(function(_0x84c407,_0x18f84c){var _0x54e88e=urlParse(_0xe5cb71);var _0x5cc3be=_0x54e88e[_0x5101('0x1f')]===_0x5101('0x12')?https:http;var _0x179ae5={'host':_0x54e88e[_0x5101('0x20')],'path':_0x54e88e[_0x5101('0x5')],'headers':{'user-agent':_0x5101('0x21')}};_0x5cc3be[_0x5101('0x13')](_0x179ae5,function(_0x2ac954){if(_0x2ac954[_0x5101('0x17')]!==0xc8){_0x18f84c(new Error(_0x5101('0x15')+_0xe5cb71+_0x5101('0x16')+_0x2ac954[_0x5101('0x17')]+'\x20('+_0x2ac954['statusMessage']+')'));return;}var _0x42afc6='';_0x2ac954['on'](_0x5101('0x22'),function(_0xcd907d){_0x42afc6+=_0xcd907d;});_0x2ac954['on']('end',function(){_0x84c407(_0x42afc6);});})['on'](_0x5101('0x14'),function(_0x201b0f){_0x18f84c(_0x201b0f);})['end']();});}function convertFile(_0x5d18a9,_0x226ba5){return new BPromise(function(_0x1094aa,_0x332c82){var _0xa47112=sox[_0x5101('0x23')](_0x5d18a9,_0x226ba5,{'sampleRate':0x1f40,'format':_0x5101('0x24'),'channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0xa47112['on'](_0x5101('0x14'),function(_0x1209ea){logger[_0x5101('0x14')]('error\x20convert',_0x1209ea);_0x332c82(_0x1209ea);});_0xa47112['on'](_0x5101('0x1e'),function(){logger[_0x5101('0x1b')](_0x5101('0x25'));_0x1094aa();});_0xa47112[_0x5101('0x26')]();});}function base64Decode(_0x782f2f,_0x77a683){var _0x5e6b36=path['resolve'](__dirname,_0x5101('0x27'),rs['generate'](0x4)+_0x5101('0x28'));fs[_0x5101('0x29')](_0x5e6b36,_0x782f2f,'base64');return convertFile(_0x5e6b36,_0x77a683)[_0x5101('0x2a')](function(){try{fs[_0x5101('0x2b')](_0x5e6b36);fs['chmodSync'](_0x77a683,_0x5101('0x2c'));}catch(_0x2c15f2){logger[_0x5101('0x14')](_0x2c15f2);}return _0x77a683['split']('.')[0x0];});}function base64Encode(_0x5f54dc){var _0x51e73e=fs[_0x5101('0x2d')](_0x5f54dc);return new Buffer(_0x51e73e)[_0x5101('0x2e')](_0x5101('0x2f'));}exports[_0x5101('0x30')]=function(_0x3c5522,_0x1a575b,_0x462038,_0x5c5f79,_0x42bdac,_0x15497f){var _0x813fba,_0x3b85ba;var _0xe269c2=_0x5101('0x31');var _0x1e4c9f=_0x5101('0x32')+_0x3c5522;var _0x5e406f={};if(_0x1a575b==='ssml'){_0x5e406f[_0x5101('0x33')]={'ssml':_0x462038};}else{_0x5e406f[_0x5101('0x33')]={'text':_0x462038};};_0x5e406f[_0x5101('0x34')]={'languageCode':_0x5c5f79,'ssmlGender':_0x42bdac};_0x5e406f['audioConfig']={'audioEncoding':_0x5101('0x35'),'sampleRateHertz':0x1f40};var _0x5c9c82={'url':_0xe269c2+'text:synthesize'+_0x1e4c9f,'method':_0x5101('0x36'),'json':!![],'body':_0x5e406f};return rp(_0x5c9c82)[_0x5101('0x2a')](function(_0xfdadbc){return new BPromise(function(_0x5713a7,_0x279a43){_0x813fba=path[_0x5101('0x37')](__dirname,_0x5101('0x27'),rs[_0x5101('0x38')](0x4)+'.mp3');var _0x572f83=Buffer[_0x5101('0x39')](_0xfdadbc[_0x5101('0x3a')],_0x5101('0x2f'));return fs[_0x5101('0x3b')](_0x813fba,_0x572f83,function(_0x136923){_0x279a43(_0x136923);},function(_0x2d6b38){fs[_0x5101('0x3c')](_0x813fba,_0x5101('0x2c'));_0x5713a7(_0x2d6b38);});});})[_0x5101('0x2a')](function(_0x5e967e){_0x3b85ba=path['resolve'](__dirname,_0x5101('0x27'),rs[_0x5101('0x38')](0x4)+_0x5101('0x28'));return convertFile(_0x813fba,_0x3b85ba);})[_0x5101('0x2a')](function(){try{fs[_0x5101('0x2b')](_0x813fba);fs[_0x5101('0x3c')](_0x3b85ba,'777');}catch(_0x37367c){logger['error'](_0x37367c);}logger[_0x5101('0x1b')](_0x5101('0x3d'),_0x3b85ba[_0x5101('0x3e')]('.')[0x0]);return _0x3b85ba[_0x5101('0x3e')]('.')[0x0];});};exports[_0x5101('0x3f')]=function(_0x4187e2,_0x248b21){var _0x2b1ae=_0x5101('0x40');var _0x10527e,_0x5c63ed;var _0x589354;var _0x205995={'encoding':_0x5101('0x41'),'method':_0x5101('0x36'),'timeout':0x2710,'url':_0x2b1ae,'headers':{'Content-Type':_0x5101('0x42')},'body':_0x5101('0x43')+encodeURIComponent(JSON[_0x5101('0x44')]([[[_0x5101('0x45'),JSON[_0x5101('0x44')]([_0x4187e2,_0x248b21||'en',![],_0x5101('0x46')]),null,_0x5101('0x47')]]]))};return rp(_0x205995)[_0x5101('0x2a')](function(_0x19b577){try{_0x589354=eval(_0x19b577[_0x5101('0x48')](0x5))[0x0][0x2];}catch(_0x4dc2a9){throw new Error(_0x5101('0x49')+_0x19b577[_0x5101('0x22')]);}if(!_0x589354){if(_0x4187e2['length']>0xc8){throw new Error('text\x20length\x20limit\x20reached');}else{throw new Error(_0x5101('0x4a')+_0x248b21+_0x5101('0x4b'));}}try{_0x589354=eval(_0x589354)[0x0];}catch(_0x59a6e9){throw new Error(_0x5101('0x49')+res[_0x5101('0x22')]);}const _0x53de93=_0x589354;_0x10527e=path[_0x5101('0x37')](__dirname,_0x5101('0x27'),rs[_0x5101('0x38')](0x4)+_0x5101('0x4c'));fs[_0x5101('0x29')](_0x10527e,_0x589354,{'encoding':_0x5101('0x2f')});_0x5c63ed=path[_0x5101('0x37')](__dirname,_0x5101('0x27'),rs['generate'](0x4)+'.wav');return convertFile(_0x10527e,_0x5c63ed);})[_0x5101('0x2a')](function(){try{fs[_0x5101('0x2b')](_0x10527e);fs[_0x5101('0x3c')](_0x5c63ed,_0x5101('0x2c'));}catch(_0x24041b){logger[_0x5101('0x14')](_0x24041b);}logger[_0x5101('0x1b')](_0x5101('0x4d'),_0x5c63ed['split']('.')[0x0]);return _0x5c63ed['split']('.')[0x0];});};exports[_0x5101('0x4e')]=function(_0x15449a,_0x41bee2,_0x2d2c77){return google[_0x5101('0x4f')](_0x15449a,_0x41bee2,_0x2d2c77)[_0x5101('0x2a')](function(_0x3c0501){logger['info'](_0x3c0501[_0x5101('0x50')]);return rp(_0x3c0501);})[_0x5101('0x2a')](function(_0x4a244b){var _0x11b1f0='';var _0x3005df=0x0;try{fs[_0x5101('0x2b')](_0x15449a);}catch(_0x338087){logger[_0x5101('0x14')](_0x338087);}if(_0x4a244b&&_0x4a244b[_0x5101('0x51')]){_0x11b1f0=_0x4a244b[_0x5101('0x51')][_0x5101('0x52')](function(_0x555568){return _0x555568&&_0x555568[_0x5101('0x53')][0x0]&&_0x555568[_0x5101('0x53')][0x0][_0x5101('0x54')]?_0x555568[_0x5101('0x53')][0x0]['transcript']:'';})[_0x5101('0x55')]('\x0a');_0x3005df=_0x4a244b['results'][_0x5101('0x52')](function(_0x48b311){return _0x48b311&&_0x48b311[_0x5101('0x53')][0x0]&&_0x48b311[_0x5101('0x53')][0x0][_0x5101('0x56')]?_0x48b311[_0x5101('0x53')][0x0][_0x5101('0x56')]:0x0;})[_0x5101('0x55')]('\x0a');}logger[_0x5101('0x1b')](_0x5101('0x57'),_0x11b1f0);logger[_0x5101('0x1b')]('googleASR\x20confidence',_0x3005df);return{'transcript':_0x11b1f0,'confidence':_0x3005df};})[_0x5101('0x58')](function(_0x171d42){logger[_0x5101('0x14')](_0x5101('0x59'),_0x171d42[_0x5101('0x17')],_0x171d42[_0x5101('0x5a')],_0x171d42['message']);});};exports[_0x5101('0x5b')]=function(_0x23ccbb,_0x2c122c,_0x39426f,_0x2954c4){var _0x2dec19=apiai(_0x2c122c,{'language':_0x2954c4||'en'});return _0x2dec19[_0x5101('0x5c')](_0x39426f,{'sessionId':md5(_0x23ccbb)})[_0x5101('0x2a')](function(_0x51931c){logger[_0x5101('0x1b')](JSON[_0x5101('0x44')](_0x51931c));return{'source':_0x51931c['result'][_0x5101('0x5d')],'resolvedQuery':_0x51931c['result'][_0x5101('0x5e')],'action':_0x51931c[_0x5101('0x5f')][_0x5101('0x60')],'actionIncomplete':_0x51931c[_0x5101('0x5f')][_0x5101('0x61')],'speech':_0x51931c[_0x5101('0x5f')][_0x5101('0x62')][_0x5101('0x63')],'score':_0x51931c[_0x5101('0x5f')][_0x5101('0x64')],'statusCode':_0x51931c[_0x5101('0x65')]['code'],'endConversation':_0x51931c[_0x5101('0x5f')]['metadata'][_0x5101('0x66')]||![],'isFallbackIntent':_0x51931c[_0x5101('0x5f')][_0x5101('0x67')][_0x5101('0x68')]};});};exports[_0x5101('0x69')]=function(_0x1282d1,_0x37373c,_0x237efe,_0x5a990a,_0x22d946,_0x34b4ef){var _0xd769fd=_0x5a990a[_0x5101('0x6a')](/\\n/g,'\x0a');var _0x2ac90={'credentials':{'private_key':_0xd769fd,'client_email':_0x237efe}};var _0x534431=new dialogflow[(_0x5101('0x6b'))](_0x2ac90);var _0x437234=_0x534431['sessionPath'](_0x37373c,md5(_0x1282d1));var _0xac6d5c={'session':_0x437234,'queryInput':{'text':{'text':_0x22d946,'languageCode':_0x34b4ef}}};return _0x534431[_0x5101('0x6c')](_0xac6d5c)['then'](function(_0x28e4b0){if(_0x28e4b0&&_0x28e4b0[_0x5101('0x6d')]){logger['info']('Dialogflow\x20V2\x20response:',JSON[_0x5101('0x44')](_0x28e4b0));var _0x34e1e2=_0x28e4b0[0x0];if(_0x34e1e2){var _0x1e6861={'action':_0x34e1e2[_0x5101('0x6e')]['action'],'allRequiredParamsPresent':_0x34e1e2[_0x5101('0x6e')][_0x5101('0x6f')],'endConversation':_0x34e1e2['queryResult']['diagnosticInfo']&&_0x34e1e2['queryResult'][_0x5101('0x70')][_0x5101('0x71')]?_0x34e1e2[_0x5101('0x6e')]['diagnosticInfo'][_0x5101('0x71')][_0x5101('0x72')][_0x5101('0x73')]:![],'fulfillmentText':_0x34e1e2[_0x5101('0x6e')][_0x5101('0x74')],'intentName':_0x34e1e2[_0x5101('0x6e')]['intent'][_0x5101('0x5a')],'intentDisplayName':_0x34e1e2[_0x5101('0x6e')][_0x5101('0x75')][_0x5101('0x76')],'isFallbackIntent':_0x34e1e2[_0x5101('0x6e')][_0x5101('0x75')]['isFallback'],'languageCode':_0x34e1e2[_0x5101('0x6e')][_0x5101('0x77')],'queryText':_0x34e1e2[_0x5101('0x6e')][_0x5101('0x78')],'responseId':_0x34e1e2['responseId'],'score':_0x34e1e2[_0x5101('0x6e')]['intentDetectionConfidence'],'speech':_0x34e1e2['queryResult']['fulfillmentText'],'providerResponse':JSON[_0x5101('0x44')](_0x28e4b0)};return _0x1e6861;}}});};exports[_0x5101('0x79')]=function(_0x93451e,_0x41fc01,_0x52ab6c,_0x152994){return tilde[_0x5101('0x4f')](_0x93451e,_0x41fc01,_0x52ab6c,_0x152994)[_0x5101('0x2a')](function(_0x1ae79e){try{fs[_0x5101('0x2b')](_0x93451e);}catch(_0xb66284){logger[_0x5101('0x14')](_0xb66284);}logger['info'](_0x5101('0x7a'),_0x1ae79e[_0x5101('0x54')]);logger['info'](_0x5101('0x7b'),_0x1ae79e[_0x5101('0x56')]);return _0x1ae79e;});};exports[_0x5101('0x7c')]=function(_0x156655,_0x2f4592,_0x37a50c,_0x98cfcb,_0x558ef3,_0x4aeb52){var _0x1dc95c=path[_0x5101('0x37')](__dirname,_0x5101('0x27'),rs['generate'](0x4)+_0x5101('0x4c'));var _0x43a2f3;return aws['polly'](_0x156655,_0x2f4592,_0x37a50c,_0x98cfcb,_0x558ef3,_0x4aeb52,_0x1dc95c)[_0x5101('0x2a')](function(){_0x43a2f3=path[_0x5101('0x37')](__dirname,_0x5101('0x27'),rs[_0x5101('0x38')](0x4)+_0x5101('0x28'));return convertFile(_0x1dc95c,_0x43a2f3);})[_0x5101('0x2a')](function(){try{fs[_0x5101('0x2b')](_0x1dc95c);fs[_0x5101('0x3c')](_0x43a2f3,'777');}catch(_0x220c83){logger['error'](_0x220c83);}return _0x43a2f3['split']('.')[0x0];});};exports[_0x5101('0x7d')]=function(_0x45cd3b,_0x134cc8,_0xb952b6,_0x5bd68b,_0x2964a6,_0x505a78){return aws[_0x5101('0x7e')](_0x45cd3b,_0x134cc8,_0xb952b6,_0x5bd68b,_0x2964a6,_0x505a78)[_0x5101('0x2a')](function(_0x25acd9){logger[_0x5101('0x1b')](JSON[_0x5101('0x44')](_0x25acd9));return _0x25acd9;});};exports['ispeechTTS']=function(_0xb146ab,_0x49be1d,_0x2a5ac5,_0x4d77b4){var _0x59d7f2=util[_0x5101('0x7f')]('%s?apikey=%s&action=convert&text=%s&voice=%s&speed=%s&format=mp3',ISPEECH_API,_0xb146ab,encodeURIComponent(_0x49be1d),_0x2a5ac5,_0x4d77b4);var _0x1c1ecd=path[_0x5101('0x37')](__dirname,'tmp',rs['generate'](0x4)+_0x5101('0x4c'));var _0x5e41ec;return downloadFile(_0x59d7f2,_0x1c1ecd)[_0x5101('0x2a')](function(){_0x5e41ec=path['resolve'](__dirname,_0x5101('0x27'),rs[_0x5101('0x38')](0x4)+'.wav');return convertFile(_0x1c1ecd,_0x5e41ec);})[_0x5101('0x2a')](function(){try{fs[_0x5101('0x2b')](_0x1c1ecd);fs[_0x5101('0x3c')](_0x5e41ec,_0x5101('0x2c'));}catch(_0x3a634e){logger['error'](_0x3a634e);}return _0x5e41ec[_0x5101('0x3e')]('.')[0x0];});};exports[_0x5101('0x80')]=function(_0x165e45,_0x1dec84,_0x4561b1,_0x5e5a20){var _0x2b2737=util['format'](_0x5101('0x81'),ISPEECH_API,_0x1dec84,_0x4561b1,base64Encode(_0x165e45),_0x5e5a20?util[_0x5101('0x7f')](_0x5101('0x82'),encodeURIComponent(_0x5e5a20)):'freeform=3');return uploadFile(_0x2b2737)[_0x5101('0x2a')](function(_0x3f2086){return querystring[_0x5101('0xa')](_0x3f2086);});};exports[_0x5101('0x83')]=function(_0x139ad2,_0x476330){return sestek[_0x5101('0x84')](_0x139ad2,_0x476330)[_0x5101('0x2a')](function(_0x278a93){logger['info'](JSON['stringify'](_0x278a93));var _0x19cbce={'speech':_0x278a93[_0x5101('0x85')],'action':_0x278a93[_0x5101('0x86')]?_0x278a93[_0x5101('0x86')][_0x5101('0x87')]:undefined,'actiondata':_0x278a93[_0x5101('0x86')]?_0x278a93[_0x5101('0x86')][_0x5101('0x88')]:undefined};if(_0x278a93[_0x5101('0x86')]&&_0x278a93[_0x5101('0x86')]['AudioFromTts']){return base64Decode(_0x278a93['channelData'][_0x5101('0x89')][_0x5101('0x8a')],path[_0x5101('0x37')](__dirname,_0x5101('0x27'),rs[_0x5101('0x38')](0x4)+_0x5101('0x28')))[_0x5101('0x2a')](function(_0x11deee){_0x19cbce[_0x5101('0x8b')]=_0x11deee;return _0x19cbce;});}return _0x19cbce;});};exports[_0x5101('0x8c')]=function(){return __dirname;};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4723=['exports'];(function(_0x44451e,_0x3e0201){var _0x2a4582=function(_0x57dac9){while(--_0x57dac9){_0x44451e['push'](_0x44451e['shift']());}};_0x2a4582(++_0x3e0201);}(_0x4723,0x9c));var _0x3472=function(_0x54e6f5,_0x4f4e99){_0x54e6f5=_0x54e6f5-0x0;var _0x5e8794=_0x4723[_0x54e6f5];return _0x5e8794;};var nda=require('./nda');module[_0x3472('0x0')]={'nda':nda};
\ No newline at end of file
+var nda=require('./nda');module['exports']={'nda':nda};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8ce3=['custom_action_data','CustomActionData','stringify','request-promise','url','agi','exports','POST','resolve','ndauth_url','password','username','then','/api/NaturalDialogAssistant/v1/Run','message','Nda','uniqueid','callerid','calleridname','dnid','extension','text','Bearer\x20','access_token','project','body','channelData','ProjectName','ndagenerate_audio','AudioOutputSettings','audio/wav','custom_action'];(function(_0x436a96,_0xefa27c){var _0x305aad=function(_0x58dbc6){while(--_0x58dbc6){_0x436a96['push'](_0x436a96['shift']());}};_0x305aad(++_0xefa27c);}(_0x8ce3,0xc3));var _0x38ce=function(_0x465d8c,_0x101ece){_0x465d8c=_0x465d8c-0x0;var _0x28f93e=_0x8ce3[_0x465d8c];return _0x28f93e;};'use strict';var rp=require(_0x38ce('0x0'));var url=require(_0x38ce('0x1'));var logger=require('../../../../../config/logger')(_0x38ce('0x2'));module[_0x38ce('0x3')]=function(_0xee1d0e,_0x26ec48){var _0x1b4dd4={'method':_0x38ce('0x4'),'uri':url[_0x38ce('0x5')](_0x26ec48[_0x38ce('0x6')],'/token'),'form':{'grant_type':_0x38ce('0x7'),'username':_0x26ec48[_0x38ce('0x8')],'password':_0x26ec48['password']},'json':!![]};return rp(_0x1b4dd4)[_0x38ce('0x9')](function(_0xbe7332){var _0x3f8011={'method':'POST','uri':url[_0x38ce('0x5')](_0x26ec48['ndassistant_url'],_0x38ce('0xa')),'body':{'type':_0x26ec48['ndaactivity_type']||_0x38ce('0xb'),'channelId':_0x38ce('0xc'),'conversation':{'id':_0xee1d0e[_0x38ce('0xd')]},'from':{'id':_0xee1d0e[_0x38ce('0xe')],'name':_0xee1d0e[_0x38ce('0xf')]},'recipient':{'id':_0xee1d0e[_0x38ce('0x10')],'name':_0xee1d0e[_0x38ce('0x11')]},'text':_0x26ec48[_0x38ce('0x12')],'channelData':{}},'headers':{'Authorization':_0x38ce('0x13')+_0xbe7332[_0x38ce('0x14')]},'json':!![]};if(_0x26ec48[_0x38ce('0x15')]){_0x3f8011[_0x38ce('0x16')][_0x38ce('0x17')][_0x38ce('0x18')]=_0x26ec48[_0x38ce('0x15')];}if(_0x26ec48[_0x38ce('0x19')]=='1'){_0x3f8011['body']['channelData'][_0x38ce('0x1a')]={'Generate':!![],'PutInStructuredPart':![],'ExpectedFormat':_0x38ce('0x1b')};}if(_0x26ec48[_0x38ce('0x1c')]){_0x3f8011['body'][_0x38ce('0x17')]['CustomAction']=_0x26ec48[_0x38ce('0x1c')];if(_0x26ec48[_0x38ce('0x1d')]){_0x3f8011['body'][_0x38ce('0x17')][_0x38ce('0x1e')]=_0x26ec48[_0x38ce('0x1d')];}}logger['info'](JSON[_0x38ce('0x1f')](_0x3f8011));return rp(_0x3f8011);});};
\ No newline at end of file
+var _0x205d=['../../../../../config/logger','resolve','ndauth_url','/token','password','then','POST','ndassistant_url','/api/NaturalDialogAssistant/v1/Run','ndaactivity_type','Nda','uniqueid','callerid','calleridname','extension','text','Bearer\x20','access_token','project','body','channelData','ndagenerate_audio','audio/wav','CustomAction','custom_action','custom_action_data','CustomActionData','info','stringify','request-promise','url'];(function(_0xef8146,_0x459c34){var _0x5a6cb0=function(_0x2f84ec){while(--_0x2f84ec){_0xef8146['push'](_0xef8146['shift']());}};_0x5a6cb0(++_0x459c34);}(_0x205d,0xf6));var _0xd205=function(_0xd6640b,_0x475e47){_0xd6640b=_0xd6640b-0x0;var _0x4c843e=_0x205d[_0xd6640b];return _0x4c843e;};'use strict';var rp=require(_0xd205('0x0'));var url=require(_0xd205('0x1'));var logger=require(_0xd205('0x2'))('agi');module['exports']=function(_0x1eaf09,_0xbd11c7){var _0x3f3c23={'method':'POST','uri':url[_0xd205('0x3')](_0xbd11c7[_0xd205('0x4')],_0xd205('0x5')),'form':{'grant_type':_0xd205('0x6'),'username':_0xbd11c7['username'],'password':_0xbd11c7[_0xd205('0x6')]},'json':!![]};return rp(_0x3f3c23)[_0xd205('0x7')](function(_0xdb99a8){var _0x372211={'method':_0xd205('0x8'),'uri':url[_0xd205('0x3')](_0xbd11c7[_0xd205('0x9')],_0xd205('0xa')),'body':{'type':_0xbd11c7[_0xd205('0xb')]||'message','channelId':_0xd205('0xc'),'conversation':{'id':_0x1eaf09[_0xd205('0xd')]},'from':{'id':_0x1eaf09[_0xd205('0xe')],'name':_0x1eaf09[_0xd205('0xf')]},'recipient':{'id':_0x1eaf09['dnid'],'name':_0x1eaf09[_0xd205('0x10')]},'text':_0xbd11c7[_0xd205('0x11')],'channelData':{}},'headers':{'Authorization':_0xd205('0x12')+_0xdb99a8[_0xd205('0x13')]},'json':!![]};if(_0xbd11c7[_0xd205('0x14')]){_0x372211[_0xd205('0x15')][_0xd205('0x16')]['ProjectName']=_0xbd11c7[_0xd205('0x14')];}if(_0xbd11c7[_0xd205('0x17')]=='1'){_0x372211[_0xd205('0x15')]['channelData']['AudioOutputSettings']={'Generate':!![],'PutInStructuredPart':![],'ExpectedFormat':_0xd205('0x18')};}if(_0xbd11c7['custom_action']){_0x372211[_0xd205('0x15')]['channelData'][_0xd205('0x19')]=_0xbd11c7[_0xd205('0x1a')];if(_0xbd11c7[_0xd205('0x1b')]){_0x372211[_0xd205('0x15')]['channelData'][_0xd205('0x1c')]=_0xbd11c7[_0xd205('0x1b')];}}logger[_0xd205('0x1d')](JSON[_0xd205('0x1e')](_0x372211));return rp(_0x372211);});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcdc5=['exports'];(function(_0x86f2bb,_0x44043c){var _0x392fea=function(_0x43c24c){while(--_0x43c24c){_0x86f2bb['push'](_0x86f2bb['shift']());}};_0x392fea(++_0x44043c);}(_0xcdc5,0x9f));var _0x5cdc=function(_0x239875,_0x52a793){_0x239875=_0x239875-0x0;var _0x55a8d6=_0xcdc5[_0x239875];return _0x55a8d6;};'use strict';var asr=require('./lib/api');module[_0x5cdc('0x0')]=function(_0x426e4e,_0x9a30bb,_0x2432fd,_0x1159c3){return asr(_0x426e4e,_0x9a30bb,_0x2432fd,_0x1159c3);};
\ No newline at end of file
+var _0xedb2=['./lib/api','exports'];(function(_0x234341,_0x1f0568){var _0x2fd6e9=function(_0x1fd8dd){while(--_0x1fd8dd){_0x234341['push'](_0x234341['shift']());}};_0x2fd6e9(++_0x1f0568);}(_0xedb2,0x198));var _0x2edb=function(_0x56482c,_0x16118d){_0x56482c=_0x56482c-0x0;var _0x5aae7a=_0xedb2[_0x56482c];return _0x5aae7a;};'use strict';var asr=require(_0x2edb('0x0'));module[_0x2edb('0x1')]=function(_0x4bf881,_0x314c1a,_0x451848,_0xeaad8e){return asr(_0x4bf881,_0x314c1a,_0x451848,_0xeaad8e);};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x281d=['Not\x20available.\x20Max\x20load\x20limit\x20reached.','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','message','bluebird','lodash','moment','crypto','../../../../../../config/logger','agi','exports','info','Tilde\x20URI','wss://runa.tilde.lv/client/ws/speech/LVASR-ONLINE','createHash','digest','hex','send','createReadStream','data','close','EOS','error','Tilde\x20ASR\x20send\x20error','terminate','result','final','Tilde\x20ASR\x20hypoteses','stringify','hypotheses','transcript','likelihood','Success.','No\x20speech.\x20Sent\x20when\x20the\x20incoming\x20audio\x20contains\x20a\x20large\x20portion\x20of\x20silence\x20or\x20non-speech','Aborted.\x20Recognition\x20was\x20aborted\x20for\x20some\x20reason.'];(function(_0x50c25d,_0x13df41){var _0x380100=function(_0x2a351a){while(--_0x2a351a){_0x50c25d['push'](_0x50c25d['shift']());}};_0x380100(++_0x13df41);}(_0x281d,0x129));var _0xd281=function(_0x38575d,_0x547d68){_0x38575d=_0x38575d-0x0;var _0x244828=_0x281d[_0x38575d];return _0x244828;};'use strict';var BPromise=require(_0xd281('0x0'));var _=require(_0xd281('0x1'));var fs=require('fs');var WebSocket=require('ws');var moment=require(_0xd281('0x2'));var crypto=require(_0xd281('0x3'));var logger=require(_0xd281('0x4'))(_0xd281('0x5'));module[_0xd281('0x6')]=function(_0x14f880,_0x55d96a,_0x43b48d,_0x1a3ddf){return new BPromise(function(_0x2c1d71,_0x309006){logger[_0xd281('0x7')](_0xd281('0x8'),_0x1a3ddf||_0xd281('0x9'));var _0x3e7505=new WebSocket(_0x1a3ddf||'wss://runa.tilde.lv/client/ws/speech/LVASR-ONLINE',{'perMessageDeflate':![]});var _0x75560c='';var _0x14aba8='0';var _0x18c986='1';var _0xa6b403='No\x20speech.\x20Sent\x20when\x20the\x20incoming\x20audio\x20contains\x20a\x20large\x20portion\x20of\x20silence\x20or\x20non-speech';function _0xd76d97(_0x2e0206){var _0x5de05d=crypto[_0xd281('0xa')]('sha1');_0x5de05d['update'](_0x2e0206);return _0x5de05d[_0xd281('0xb')](_0xd281('0xc'));}function _0x2e7052(){try{logger[_0xd281('0x7')]('Open\x20Tilde\x20ASR\x20socket');var _0x1a9984=moment()['unix']();var _0x219627=_0xd76d97(_0x1a9984+_0x55d96a+_0x43b48d);_0x3e7505[_0xd281('0xd')](JSON['stringify']({'appID':_0x55d96a,'timestamp':_0x1a9984,'appKey':_0x219627}));var _0x242254=fs[_0xd281('0xe')](_0x14f880);_0x242254['on'](_0xd281('0xf'),function(_0x1733e2){_0x3e7505['send'](_0x1733e2);});_0x242254['on'](_0xd281('0x10'),function(){_0x3e7505[_0xd281('0xd')](_0xd281('0x11'));});}catch(_0x1ef8cd){logger[_0xd281('0x12')](_0xd281('0x13'),JSON['stringify'](_0x1ef8cd));_0x3e7505[_0xd281('0x14')]();}}function _0x20d410(_0x49c6b9){try{if(_0x49c6b9){var _0x19dae0=JSON['parse'](_0x49c6b9);switch(_0x19dae0['status']){case 0x0:if(_0x19dae0[_0xd281('0x15')]){if(_0x19dae0[_0xd281('0x15')][_0xd281('0x16')]){logger[_0xd281('0x7')](_0xd281('0x17'),JSON[_0xd281('0x18')](_0x19dae0[_0xd281('0x15')][_0xd281('0x19')]));_0x75560c=_0x19dae0[_0xd281('0x15')][_0xd281('0x19')][0x0][_0xd281('0x1a')];_0x14aba8=_0x19dae0['result'][_0xd281('0x19')][0x0][_0xd281('0x1b')];_0x18c986='0';_0xa6b403=_0xd281('0x1c');_0x3e7505['terminate']();}}break;case 0x1:logger[_0xd281('0x7')](_0xd281('0x1d'));_0x18c986='1';_0xa6b403=_0xd281('0x1d');break;case 0x2:logger[_0xd281('0x7')](_0xd281('0x1e'));_0x18c986='2';_0xa6b403=_0xd281('0x1e');break;case 0x9:logger[_0xd281('0x7')]('Not\x20available.\x20Max\x20load\x20limit\x20reached.');_0x18c986='9';_0xa6b403=_0xd281('0x1f');break;case 0xa:logger['info']('Authentication\x20failed.');_0x18c986='10';_0xa6b403=_0xd281('0x20');break;case 0xb:logger[_0xd281('0x7')]('All\x20recognition\x20workers\x20are\x20currently\x20in\x20use\x20and\x20real-time\x20recognition\x20is\x20not\x20possible.');_0x18c986='11';_0xa6b403=_0xd281('0x21');}}}catch(_0x2b3ce4){logger[_0xd281('0x12')](_0xd281('0x22'),JSON[_0xd281('0x18')](_0x2b3ce4));_0x3e7505[_0xd281('0x14')]();}}function _0x10d6b5(){logger[_0xd281('0x7')](_0xd281('0x23'));_0x2c1d71({'transcript':_0x75560c,'confidence':_0x14aba8,'status':_0x18c986,'status_message':_0xa6b403});}function _0x164fc3(_0x152dd5){logger[_0xd281('0x12')](_0xd281('0x24'));if(!_[_0xd281('0x25')](_0x152dd5)){logger[_0xd281('0x12')](_[_0xd281('0x26')](_0x152dd5)?JSON[_0xd281('0x18')](_0x152dd5):_0x152dd5);}}_0x3e7505['on'](_0xd281('0x27'),_0x2e7052);_0x3e7505['on'](_0xd281('0x28'),_0x20d410);_0x3e7505['on'](_0xd281('0x10'),_0x10d6b5);_0x3e7505['on'](_0xd281('0x12'),_0x164fc3);});};
\ No newline at end of file
+var _0x2b76=['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','createHash','hex','Open\x20Tilde\x20ASR\x20socket','unix','send','stringify','createReadStream','data','close','EOS','error','Tilde\x20ASR\x20send\x20error','parse','status','result','final','Tilde\x20ASR\x20hypoteses','hypotheses','transcript','likelihood','Success.','terminate','Aborted.\x20Recognition\x20was\x20aborted\x20for\x20some\x20reason.','Not\x20available.\x20Max\x20load\x20limit\x20reached.','Authentication\x20failed.','All\x20recognition\x20workers\x20are\x20currently\x20in\x20use\x20and\x20real-time\x20recognition\x20is\x20not\x20possible.','Close\x20Tilde\x20ASR\x20socket','Error\x20Tilde\x20ASR\x20socket','isNil','isObject','open','message'];(function(_0x3683b0,_0x5ba741){var _0x16b5b0=function(_0x24b55d){while(--_0x24b55d){_0x3683b0['push'](_0x3683b0['shift']());}};_0x16b5b0(++_0x5ba741);}(_0x2b76,0xa8));var _0x62b7=function(_0x57b54c,_0x54ce0d){_0x57b54c=_0x57b54c-0x0;var _0x59cc19=_0x2b76[_0x57b54c];return _0x59cc19;};'use strict';var BPromise=require('bluebird');var _=require(_0x62b7('0x0'));var fs=require('fs');var WebSocket=require('ws');var moment=require(_0x62b7('0x1'));var crypto=require(_0x62b7('0x2'));var logger=require(_0x62b7('0x3'))(_0x62b7('0x4'));module[_0x62b7('0x5')]=function(_0x52a0af,_0x569aa0,_0x18e31e,_0x4b2ba1){return new BPromise(function(_0x5b9f91,_0x1b0340){logger[_0x62b7('0x6')](_0x62b7('0x7'),_0x4b2ba1||_0x62b7('0x8'));var _0x1c555b=new WebSocket(_0x4b2ba1||_0x62b7('0x8'),{'perMessageDeflate':![]});var _0x3d819f='';var _0x11c193='0';var _0x1cb95a='1';var _0x16b3af=_0x62b7('0x9');function _0x49060c(_0x1c9bc2){var _0x1511ae=crypto[_0x62b7('0xa')]('sha1');_0x1511ae['update'](_0x1c9bc2);return _0x1511ae['digest'](_0x62b7('0xb'));}function _0x14d33c(){try{logger[_0x62b7('0x6')](_0x62b7('0xc'));var _0x2f797e=moment()[_0x62b7('0xd')]();var _0x2c56c7=_0x49060c(_0x2f797e+_0x569aa0+_0x18e31e);_0x1c555b[_0x62b7('0xe')](JSON[_0x62b7('0xf')]({'appID':_0x569aa0,'timestamp':_0x2f797e,'appKey':_0x2c56c7}));var _0x4bb391=fs[_0x62b7('0x10')](_0x52a0af);_0x4bb391['on'](_0x62b7('0x11'),function(_0x2325f6){_0x1c555b['send'](_0x2325f6);});_0x4bb391['on'](_0x62b7('0x12'),function(){_0x1c555b[_0x62b7('0xe')](_0x62b7('0x13'));});}catch(_0x31159c){logger[_0x62b7('0x14')](_0x62b7('0x15'),JSON[_0x62b7('0xf')](_0x31159c));_0x1c555b['terminate']();}}function _0x4015f3(_0x40bb6e){try{if(_0x40bb6e){var _0x4d9133=JSON[_0x62b7('0x16')](_0x40bb6e);switch(_0x4d9133[_0x62b7('0x17')]){case 0x0:if(_0x4d9133[_0x62b7('0x18')]){if(_0x4d9133[_0x62b7('0x18')][_0x62b7('0x19')]){logger[_0x62b7('0x6')](_0x62b7('0x1a'),JSON[_0x62b7('0xf')](_0x4d9133[_0x62b7('0x18')][_0x62b7('0x1b')]));_0x3d819f=_0x4d9133['result'][_0x62b7('0x1b')][0x0][_0x62b7('0x1c')];_0x11c193=_0x4d9133[_0x62b7('0x18')][_0x62b7('0x1b')][0x0][_0x62b7('0x1d')];_0x1cb95a='0';_0x16b3af=_0x62b7('0x1e');_0x1c555b[_0x62b7('0x1f')]();}}break;case 0x1:logger[_0x62b7('0x6')](_0x62b7('0x9'));_0x1cb95a='1';_0x16b3af=_0x62b7('0x9');break;case 0x2:logger['info'](_0x62b7('0x20'));_0x1cb95a='2';_0x16b3af='Aborted.\x20Recognition\x20was\x20aborted\x20for\x20some\x20reason.';break;case 0x9:logger[_0x62b7('0x6')](_0x62b7('0x21'));_0x1cb95a='9';_0x16b3af=_0x62b7('0x21');break;case 0xa:logger[_0x62b7('0x6')]('Authentication\x20failed.');_0x1cb95a='10';_0x16b3af=_0x62b7('0x22');break;case 0xb:logger[_0x62b7('0x6')](_0x62b7('0x23'));_0x1cb95a='11';_0x16b3af='All\x20recognition\x20workers\x20are\x20currently\x20in\x20use\x20and\x20real-time\x20recognition\x20is\x20not\x20possible.';}}}catch(_0x155499){logger[_0x62b7('0x14')]('Tilde\x20ASR\x20parse\x20error',JSON[_0x62b7('0xf')](_0x155499));_0x1c555b['terminate']();}}function _0xb7e1c3(){logger[_0x62b7('0x6')](_0x62b7('0x24'));_0x5b9f91({'transcript':_0x3d819f,'confidence':_0x11c193,'status':_0x1cb95a,'status_message':_0x16b3af});}function _0x59aec2(_0x10d142){logger[_0x62b7('0x14')](_0x62b7('0x25'));if(!_[_0x62b7('0x26')](_0x10d142)){logger[_0x62b7('0x14')](_[_0x62b7('0x27')](_0x10d142)?JSON[_0x62b7('0xf')](_0x10d142):_0x10d142);}}_0x1c555b['on'](_0x62b7('0x28'),_0x14d33c);_0x1c555b['on'](_0x62b7('0x29'),_0x4015f3);_0x1c555b['on'](_0x62b7('0x12'),_0xb7e1c3);_0x1c555b['on']('error',_0x59aec2);});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8e8b=['./asr'];(function(_0x3f9655,_0xfaa999){var _0x3b5bd7=function(_0x20a31a){while(--_0x20a31a){_0x3f9655['push'](_0x3f9655['shift']());}};_0x3b5bd7(++_0xfaa999);}(_0x8e8b,0x90));var _0xb8e8=function(_0x583abb,_0x104950){_0x583abb=_0x583abb-0x0;var _0x5b4766=_0x8e8b[_0x583abb];return _0x5b4766;};var asr=require(_0xb8e8('0x0'));module['exports']={'asr':asr};
\ No newline at end of file
+var _0x0df3=['./asr'];(function(_0x2e0676,_0x9243){var _0x128255=function(_0x8f3432){while(--_0x8f3432){_0x2e0676['push'](_0x2e0676['shift']());}};_0x128255(++_0x9243);}(_0x0df3,0x67));var _0x30df=function(_0x1fa759,_0x4ecdce){_0x1fa759=_0x1fa759-0x0;var _0x2da9f4=_0x0df3[_0x1fa759];return _0x2da9f4;};var asr=require(_0x30df('0x0'));module['exports']={'asr':asr};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa87d=['emit','error','E_AGI_ARGUMENT_PORT','createServer','listen','listening','connection','getConnections','E_AGI_SERVER_VOICE_DISABLED','destroy','E_AGI_SERVER_ERROR','code','close','E_AGI_SERVER_CLOSE','nextTick','inherits','exports','util','events','./error','127.0.0.1','call'];(function(_0x2828cb,_0x37fa5c){var _0x3e459d=function(_0x1712f1){while(--_0x1712f1){_0x2828cb['push'](_0x2828cb['shift']());}};_0x3e459d(++_0x37fa5c);}(_0xa87d,0xc1));var _0xda87=function(_0x1848c1,_0x43d605){_0x1848c1=_0x1848c1-0x0;var _0x2781bf=_0xa87d[_0x1848c1];return _0x2781bf;};'use strict';var util=require(_0xda87('0x0'));var net=require('net');var EventEmitter=require(_0xda87('0x1'))['EventEmitter'];var AGIError=require(_0xda87('0x2'));var AGIChannel=require('./channel');var AGIServer=function(_0xc37a86,_0x398fb2,_0x5a7b48){var _0xf56b47=this,_0xc37a86=_0xc37a86||0x11dd,_0x398fb2=_0x398fb2||_0xda87('0x3'),_0xd7b226=null,_0x18d155=0x0;EventEmitter[_0xda87('0x4')](_0xf56b47);function _0x39a7d8(){if(!_0xc37a86){_0xf56b47[_0xda87('0x5')](_0xda87('0x6'),new AGIError(_0xda87('0x7')));return![];}_0xd7b226=net[_0xda87('0x8')]();_0xd7b226[_0xda87('0x9')](_0xc37a86,_0x398fb2);_0xd7b226['on']('listening',function(){_0xf56b47[_0xda87('0x5')](_0xda87('0xa'));});_0xd7b226['on'](_0xda87('0xb'),function(_0x235308){_0xd7b226[_0xda87('0xc')](function(_0x473733,_0xed2cec){if(_0x473733){_0xf56b47[_0xda87('0x5')](_0xda87('0x6'),new AGIError('E_AGI_SERVER_ERROR',_0x473733));}else if(_0x5a7b48&&_0x5a7b48<0x0){_0xf56b47[_0xda87('0x5')]('error',new AGIError(_0xda87('0xd')));_0x235308[_0xda87('0xe')]();}else if(_0x5a7b48&&_0x5a7b48>0x0&&_0x5a7b48<_0xed2cec){_0x18d155+=0x1;_0xf56b47[_0xda87('0x5')](_0xda87('0x6'),new AGIError('E_AGI_SERVER_MAXCONNECTION',_0x18d155));_0x235308[_0xda87('0xe')]();}else{var _0x29e617=new AGIChannel(_0x235308);_0x29e617['on']('ready',function(){_0xf56b47[_0xda87('0x5')](_0xda87('0xb'),_0x29e617);});}});});_0xd7b226['on']('error',function(_0x26ac38){_0xf56b47[_0xda87('0x5')](_0xda87('0x6'),new AGIError(_0xda87('0xf'),_0x26ac38[_0xda87('0x10')]));});_0xd7b226['on'](_0xda87('0x11'),function(){_0xf56b47[_0xda87('0x5')](_0xda87('0x11'),new AGIError(_0xda87('0x12')));});}process[_0xda87('0x13')](function(){_0x39a7d8();});};util[_0xda87('0x14')](AGIServer,EventEmitter);module[_0xda87('0x15')]=function(_0x57beb9,_0x32887b,_0x20e4cd){return new AGIServer(_0x57beb9,_0x32887b,_0x20e4cd);};
\ No newline at end of file
+var _0x2d47=['E_AGI_SERVER_VOICE_DISABLED','destroy','E_AGI_SERVER_MAXCONNECTION','ready','code','close','E_AGI_SERVER_CLOSE','inherits','exports','net','events','EventEmitter','./error','./channel','call','emit','error','createServer','listen','listening','getConnections','E_AGI_SERVER_ERROR'];(function(_0x5b9f92,_0x5eb3e4){var _0x1b4eb2=function(_0x1c5f9b){while(--_0x1c5f9b){_0x5b9f92['push'](_0x5b9f92['shift']());}};_0x1b4eb2(++_0x5eb3e4);}(_0x2d47,0x1c1));var _0x72d4=function(_0x5170d9,_0x5ca385){_0x5170d9=_0x5170d9-0x0;var _0x413c54=_0x2d47[_0x5170d9];return _0x413c54;};'use strict';var util=require('util');var net=require(_0x72d4('0x0'));var EventEmitter=require(_0x72d4('0x1'))[_0x72d4('0x2')];var AGIError=require(_0x72d4('0x3'));var AGIChannel=require(_0x72d4('0x4'));var AGIServer=function(_0x3a8d71,_0x17d838,_0x5240d1){var _0x369492=this,_0x3a8d71=_0x3a8d71||0x11dd,_0x17d838=_0x17d838||'127.0.0.1',_0x514d49=null,_0x1551fb=0x0;EventEmitter[_0x72d4('0x5')](_0x369492);function _0x103be8(){if(!_0x3a8d71){_0x369492[_0x72d4('0x6')](_0x72d4('0x7'),new AGIError('E_AGI_ARGUMENT_PORT'));return![];}_0x514d49=net[_0x72d4('0x8')]();_0x514d49[_0x72d4('0x9')](_0x3a8d71,_0x17d838);_0x514d49['on'](_0x72d4('0xa'),function(){_0x369492[_0x72d4('0x6')](_0x72d4('0xa'));});_0x514d49['on']('connection',function(_0x28a748){_0x514d49[_0x72d4('0xb')](function(_0x1c6879,_0x309f66){if(_0x1c6879){_0x369492[_0x72d4('0x6')](_0x72d4('0x7'),new AGIError(_0x72d4('0xc'),_0x1c6879));}else if(_0x5240d1&&_0x5240d1<0x0){_0x369492[_0x72d4('0x6')](_0x72d4('0x7'),new AGIError(_0x72d4('0xd')));_0x28a748[_0x72d4('0xe')]();}else if(_0x5240d1&&_0x5240d1>0x0&&_0x5240d1<_0x309f66){_0x1551fb+=0x1;_0x369492[_0x72d4('0x6')](_0x72d4('0x7'),new AGIError(_0x72d4('0xf'),_0x1551fb));_0x28a748[_0x72d4('0xe')]();}else{var _0x12800b=new AGIChannel(_0x28a748);_0x12800b['on'](_0x72d4('0x10'),function(){_0x369492[_0x72d4('0x6')]('connection',_0x12800b);});}});});_0x514d49['on'](_0x72d4('0x7'),function(_0x18e72b){_0x369492['emit']('error',new AGIError(_0x72d4('0xc'),_0x18e72b[_0x72d4('0x11')]));});_0x514d49['on']('close',function(){_0x369492[_0x72d4('0x6')](_0x72d4('0x12'),new AGIError(_0x72d4('0x13')));});}process['nextTick'](function(){_0x103be8();});};util[_0x72d4('0x14')](AGIServer,EventEmitter);module[_0x72d4('0x15')]=function(_0x4acdd4,_0x244b14,_0x468be1){return new AGIServer(_0x4acdd4,_0x244b14,_0x468be1);};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3840=['sync','retry','label','no\x20text\x20configured','noop','Executed\x20command\x20MRCPSynth\x20%s','mrcprecog','Enter\x20in\x20MRCPRecog\x20(%s)\x20block','grammar','no\x20grammar\x20configured','RECOG_CONFIDENCE()','MRCP_RECOG_CONFIDENCE','getAndSetVariable','RECOG_INPUT()','MRCP_RECOG_TRANSCRIPT','RECOG_INSTANCE()','MRCP_RECOG_INSTANCE','Enter\x20in\x20AGI\x20(%s)\x20block','args','answer','Enter\x20in\x20ANSWER\x20(%s)\x20block','Wait\x20%s\x20seconds\x20before\x20answer','wait','Enter\x20in\x20CALLBACK\x20(%s)\x20block','no\x20list\x20selected','delay','CALLBACK\x20added\x20phone:\x20%s\x20on\x20list:\x20%s\x20at\x20%s','phone','custom_app','application','lumenvoxtts','Enter\x20in\x20LUMENVOXTTS\x20(%s)\x20block','MRCPSynth','sestektts','Enter\x20in\x20SESTEKTTS\x20(%s)\x20block','lumenvoxasr','Enter\x20in\x20LUMENVOXASR\x20(%s)\x20block','MRCPRecog','LUMENVOX_ASR_CONFIDENCE','LUMENVOX_ASR_TRANSCRIPT','LUMENVOX_ASR_INSTANCE','sestekasr','Enter\x20in\x20SESTEKASR\x20(%s)\x20block','SESTEK_ASR_CONFIDENCE','SESTEK_ASR_TRANSCRIPT','SESTEK_ASR_INSTANCE','Executed\x20command\x20MRCPRecog\x20%s','Enter\x20in\x20DATABASE\x20(%s)\x20block','no\x20database\x20selected','odbc_id','no\x20odbc\x20database\x20found','no\x20query\x20configured','query:\x20%s','no\x20variable\x20selected\x20for\x20the\x20result','variable_id','no\x20variable\x20found','keys','forEach','%s[%s][%s]','dial','Enter\x20in\x20DIAL\x20(%s)\x20block','sip_id','no\x20user\x20selected','no\x20user\x20found','DIAL','SIP/%s','opts','dialogflow','bot','Trying\x20Dialogflow:\x20%s','DIALOGFLOW_%s','speech','out','Dialogflow\x20Result\x20%s','Dialogflow\x20is\x20unreachable','dialogflowV2','Enter\x20in\x20DIALOGFLOW\x20V2\x20(%s)\x20block','dialogflowV2_project_id','no\x20project_id\x20configured','no\x20client_email\x20configured','private_key','no\x20private_key\x20configured','no\x20anguage\x20configured','Trying\x20DialogflowV2:\x20%s','providerResponse','DialogflowV2\x20Result\x20%s','Enter\x20in\x20SESTEKNDA\x20(%s)\x20block','ndauth_url','no\x20ndauth\x20url\x20configured','username','no\x20username\x20configured','no\x20password\x20configured','ndassistant_url','Trying\x20SestekNDA:\x20%s','SESTEK_NDA_%s','sesteknda','audiofile','unlink','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\x20found','trunk_name','no\x20trunk\x20selected','SIP/%s/%s','Enter\x20in\x20FINALLY\x20(%s)\x20block','finally','getSound','file_id','no\x20file\x20audio\x20found','getData','test','mindigit','maxdigit','hiddendigitsnum','hiddendigitspos','substr','generate','Enter\x20in\x20GETSECRETDIGITS\x20(%s)\x20block','goal','GOAL\x20%s','awspolly','[AGI]\x20Enter\x20in\x20AWSPOLLY\x20(%s)\x20block','Trying\x20aws\x20Polly\x20%s','aws\x20Polly\x20%s\x20file\x20created','streamFile','aws\x20Polly\x20is\x20unreachable','awslex','Enter\x20in\x20Amazon\x20Lex\x20(%s)\x20block','no\x20valid\x20credentials\x20configured','no\x20bot\x20name\x20configured','AWS_LEX_%s','Amazon\x20Lex\x20ready\x20for\x20fulfillment','amazonlex','googleasr','no\x20key\x20configured','wav','%s/recordings/%s','beep','NOBEEP','intKey','google\x20%s\x20file\x20created','GOOGLE_ASR_%s','GoogleASR\x20Result\x20%s','tildeasr','appid','no\x20appid\x20configured','no\x20appsecret\x20configured','recordFile','tilde\x20%s\x20file\x20created','TildeASR\x20Result\x20%s','gotoc','continueAt','gotoif','Enter\x20in\x20GOTOIF\x20(%s)\x20block','condition','true','EVAL\x20CONDITION\x20%s\x20%s','false','Enter\x20in\x20GOTOIFTIME\x20(%s)\x20block','interval_id','no\x20intervals\x20found','IFTIME(%s?true:false)','IFTIME\x20%s\x20%s','hangup','Enter\x20in\x20ISPEECHASR\x20(%s)\x20block','ispeech\x20%s\x20file\x20created','ISPEECH_ASR_%s','IspeechASR\x20Result\x20%s','ispeechtts','Trying\x20ispeech\x20TTS\x20%s','.wav','findBy','no\x20find\x20by\x20configured','FIND\x20AGENT\x20%s\x20BY\x20%s','AGENT\x20%s\x20FOUND\x20BY','success','AGENT\x20%s\x20NOT\x20FOUND\x20BY','failure','logout','Enter\x20in\x20LOGOUT\x20(%s)\x20block','math','Enter\x20in\x20MATH\x20(%s)\x20block','operation','no\x20operation\x20configured','variable\x20%s[key]\x20set','Enter\x20in\x20MENU\x20(%s)\x20block','no\x20file\x20audio\x20selected','response','digit','Enter\x20in\x20NOOP\x20(%s)\x20block','output','pause','Enter\x20in\x20PAUSE\x20(%s)\x20block','Executed\x20command\x20%s\x20%s','PLAYBACK','queue','Enter\x20in\x20QUEUE\x20(%s)\x20block','queue_id','no\x20queue\x20selected','no\x20queue\x20found','indexOf','XMCS-QUEUE','QUEUE','position','Enter\x20in\x20RECORD\x20(%s)\x20block','%s_%s','%s/recordings/%s.%s','Recording\x20%s\x20%s\x20%s\x20%s','escape_digits','restapi','no\x20url\x20configured','Response:','inspect','no\x20variable\x20selected\x20for\x20the\x20response','%s_STATUS_CODE','statusCode','%s_STATUS_MESSAGE','Unable\x20to\x20set\x20result\x20in\x20variable\x20%s','variable\x20%s\x20set','saydigits','Enter\x20in\x20SAYDIGITS\x20(%s)\x20block','digits','saynumber','Enter\x20in\x20SAYNUMBER\x20(%s)\x20block','sayNumber','sayphonetic','Enter\x20in\x20SAYPHONETIC\x20(%s)\x20block','sayPhonetic','sendMail','Enter\x20in\x20SENDMAIL\x20(%s)\x20block','account_id','no\x20mail\x20account\x20configured','Smtp','no\x20mail\x20account\x20found','\x22%s\x22\x20<%s>','user','bcc','subject','service','host','port','secure','authentication','auth','pass','template_id','debug','sendMail\x20message','Trying\x20SendMail\x20with\x20account\x20%s','Mail\x20message\x20added\x20to\x20outgoing\x20process','sendFax','Enter\x20in\x20SENDFAX\x20(%s)\x20block','SENDFAX\x20block\x20not\x20implemented','sendSMS','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','Enter\x20in\x20START\x20(%s)\x20block','yes','Skipped\x20Answer','subproject','Enter\x20in\x20SUBPROJECT\x20(%s)\x20block','project_id','no\x20subproject\x20selected','no\x20subproject\x20found\x20with\x20id\x20%d','project\x20in\x20subproject\x20must\x20be\x20different\x20from\x20the\x20called\x20project','AGI','agi://%s/square,\x22%s\x22,\x22%s\x22','127.0.0.1','system','Enter\x20in\x20SYSTEM\x20(%s)\x20block','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','tts','Enter\x20in\x20GOOGLETTS\x20(%s)\x20block','Trying\x20Google\x20TTS\x20%s','Google\x20TTS\x20is\x20unreachable','unpause','voicemail','Enter\x20in\x20VOICEMAIL\x20(%s)\x20block','VOICEMAIL','mailbox','vswitch','Enter\x20in\x20SWITCH\x20(%s)\x20block','join','path','shelljs','odbc','randomstring','mustache','request-promise','../../config/logger','agi','../../config/environment','./scripts','/var/opt/motion2/server/files','rawHeaders','rawBody','menu','getdigits','getsecretdigits','rpc','mailRpc','prototype','getVariable','then','getVoiceQueue','getVoiceQueueById','catch','getSquareProject','getSquareOdbc','getSquareOdbcById','dsn','getUser','getUserById','getTrunk','getTrunkById','name','getSoundById','getSoundPath','save_name','getMailAccount','getMailAccountById','sendMailMessage','getIntervals','getIntervalById','IntervalId','interval','map','Intervals','format','%s/sounds/converted/%s','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','Error\x20closing\x20connection\x20to\x20odbc\x20%s','getSmsAccount','getSmsAccountById','createSquareDetailsReport','channel','uniqueid','arg_1','callerid','createSquareRecording','calleridname','context','extension','priority','accountcode','dnid','createSquareMessage','createCmContact','isNil','random','isEmpty','lastName','list_id','scheduledAt','callback','Callback\x20scheduled\x20at\x20','toString','callback_priority','agentPause','agent','agentUnpause','agentLogout','agentLogin','%s/%s@from-sip/n','LOCAL','exec','trim','replace','googleCloudTTS','apiKey','text','languageCode','en-US','ssmlGender','MALE','audioEncoding','googleTTS','google_tts_language','restAPI','url','method','timeout','includes','POST','toUpperCase','body','parse','An\x20incorrect\x20formatted\x20json\x20body\x20has\x20been\x20passed\x20to\x20the\x20function','headers','An\x20incorrect\x20formatted\x20json\x20headers\x20has\x20been\x20passed\x20to\x20the\x20function','computedVariables','uri','render','stringify','An\x20incorrect\x20formatted\x20json\x20has\x20been\x20passed\x20to\x20the\x20function','statusMessage','message','500\x20-\x20Internal\x20Server\x20Error','options','googleDialogflow','key','dialogflow_language','googleDialogflowV2','client_email','dialogflowV2_language','sestekNDA','ispeechTTS','ispeech_tts_language','speed','ispeechASR','ispeech_asr_language','isConfigured','model','awsPolly','aws_access_key_id','aws_secret_access_key','aws_polly_voice','Amy','aws_text_type','awsLex','aws_lex_region','aws_bot_name','googleASR','google_asr_language','tildeASR','appsecret','clear','agicommand','clone','hasOwnProperty','replaceObjectAllVariables','isPlainObject','recursiveNodeIndex','length','isString','replaceAllVariables','saveRestApiResult','%s.%s','isArray','setVariable','split','replaceAll','result','extra','maxRetry'];(function(_0x1666e9,_0x30e6ff){var _0x3fadc5=function(_0x1ad2eb){while(--_0x1ad2eb){_0x1666e9['push'](_0x1666e9['shift']());}};_0x3fadc5(++_0x30e6ff);}(_0x3840,0x130));var _0x0384=function(_0x588932,_0x56fa3){_0x588932=_0x588932-0x0;var _0xbcebab=_0x3840[_0x588932];return _0xbcebab;};'use strict';var fs=require('fs');var path=require(_0x0384('0x0'));var util=require('util');var _=require('lodash');var sh=require(_0x0384('0x1'));var odbc=require(_0x0384('0x2'))();var rs=require(_0x0384('0x3'));var moment=require('moment');var Mustache=require(_0x0384('0x4'));var rp=require(_0x0384('0x5'));var logger=require(_0x0384('0x6'))(_0x0384('0x7'));var config=require(_0x0384('0x8'));var scripts=require(_0x0384('0x9'));var FILES_PATH=_0x0384('0xa');var recursiveMapAttributes=[_0x0384('0xb'),_0x0384('0xc')];var verticesWithRetry=[_0x0384('0xd'),_0x0384('0xe'),_0x0384('0xf')];var AGIVertices=function(_0x2d17c3,_0x55a395,_0x482f9c){this['channel']=_0x2d17c3;this[_0x0384('0x10')]=_0x55a395;this[_0x0384('0x11')]=_0x482f9c;};AGIVertices[_0x0384('0x12')][_0x0384('0x13')]=function(_0x2b4247,_0x3563ce){this[_0x0384('0x10')]['getVariableById'](_0x2b4247)[_0x0384('0x14')](function(_0x2a7ce4){_0x3563ce(null,_0x2a7ce4?_0x2a7ce4['name']:![]);})['catch'](function(_0x18cadb){_0x3563ce(_0x18cadb);});};AGIVertices[_0x0384('0x12')][_0x0384('0x15')]=function(_0x564623,_0x2f3297){this[_0x0384('0x10')][_0x0384('0x16')](_0x564623)[_0x0384('0x14')](function(_0x2ca103){_0x2f3297(null,_0x2ca103?_0x2ca103['name']:![]);})[_0x0384('0x17')](function(_0xe08b99){_0x2f3297(_0xe08b99);});};AGIVertices['prototype'][_0x0384('0x18')]=function(_0x2ef008,_0x282191){this[_0x0384('0x10')]['getSquareProjectById'](_0x2ef008)[_0x0384('0x14')](function(_0x283813){_0x282191(null,_0x283813?_0x283813['name']:![]);})[_0x0384('0x17')](function(_0x2ab194){_0x282191(_0x2ab194);});};AGIVertices[_0x0384('0x12')][_0x0384('0x19')]=function(_0x26a190,_0x2b8f95){this[_0x0384('0x10')][_0x0384('0x1a')](_0x26a190)[_0x0384('0x14')](function(_0x4ba006){_0x2b8f95(null,_0x4ba006?_0x4ba006[_0x0384('0x1b')]:![]);})['catch'](function(_0x357a4f){_0x2b8f95(_0x357a4f);});};AGIVertices['prototype'][_0x0384('0x1c')]=function(_0x3d1c64,_0x5326a0){this[_0x0384('0x10')][_0x0384('0x1d')](_0x3d1c64)[_0x0384('0x14')](function(_0x561e37){_0x5326a0(null,_0x561e37?_0x561e37['name']:![]);})[_0x0384('0x17')](function(_0x3f57cc){_0x5326a0(_0x3f57cc);});};AGIVertices[_0x0384('0x12')][_0x0384('0x1e')]=function(_0xb0691,_0x1feb7c){this[_0x0384('0x10')][_0x0384('0x1f')](_0xb0691)[_0x0384('0x14')](function(_0x175267){_0x1feb7c(null,_0x175267?_0x175267[_0x0384('0x20')]:![]);})[_0x0384('0x17')](function(_0x2a397c){_0x1feb7c(_0x2a397c);});};AGIVertices[_0x0384('0x12')]['getSound']=function(_0x5de8b6,_0x13b0ba){var _0x3389f3=this;this[_0x0384('0x10')][_0x0384('0x21')](_0x5de8b6)[_0x0384('0x14')](function(_0x1ea61c){_0x13b0ba(null,_0x1ea61c?_0x3389f3[_0x0384('0x22')](_0x1ea61c[_0x0384('0x23')]):![]);})[_0x0384('0x17')](function(_0x140fc8){_0x13b0ba(_0x140fc8);});};AGIVertices['prototype'][_0x0384('0x24')]=function(_0xc65879,_0x2f35e4){this[_0x0384('0x10')][_0x0384('0x25')](_0xc65879)[_0x0384('0x14')](function(_0xb71865){_0x2f35e4(null,_0xb71865?_0xb71865:![]);})['catch'](function(_0xef59b6){_0x2f35e4(_0xef59b6);});};AGIVertices[_0x0384('0x12')][_0x0384('0x26')]=function(_0x2d70c3,_0x23dc51,_0x1ddb58){this[_0x0384('0x11')]['sendMailMessage'](_0x2d70c3,_0x23dc51)[_0x0384('0x14')](function(){_0x1ddb58(null);})[_0x0384('0x17')](function(_0x29d9e3){_0x1ddb58(_0x29d9e3);});};AGIVertices[_0x0384('0x12')][_0x0384('0x27')]=function(_0x3dfb03,_0x57ecb4){this[_0x0384('0x10')][_0x0384('0x28')](_0x3dfb03)[_0x0384('0x14')](function(_0x134613){if(_0x134613){if(_0x134613[_0x0384('0x29')]){_0x57ecb4(null,[_0x134613[_0x0384('0x2a')]]);}else{_0x57ecb4(null,_[_0x0384('0x2b')](_0x134613[_0x0384('0x2c')],_0x0384('0x2a')));}}else{_0x57ecb4(null,![]);}})[_0x0384('0x17')](function(_0xf1070){_0x57ecb4(_0xf1070);});};AGIVertices[_0x0384('0x12')][_0x0384('0x22')]=function(_0x172afc){return util[_0x0384('0x2d')](_0x0384('0x2e'),FILES_PATH,_0x172afc);};AGIVertices[_0x0384('0x12')][_0x0384('0x2f')]=function(_0x125cfc,_0x8e1bd3,_0x50120e){odbc[_0x0384('0x30')](_0x125cfc,function(_0x46f188){if(_0x46f188){logger[_0x0384('0x31')](_0x0384('0x32'),_0x46f188);_0x50120e(_0x46f188);}else{logger[_0x0384('0x33')](_0x0384('0x34'));odbc[_0x0384('0x35')](_0x8e1bd3,function(_0x449a86,_0x276515){if(_0x449a86){logger[_0x0384('0x33')](_0x0384('0x36'),_0x8e1bd3);_0x50120e(_0x449a86);}else{logger['info'](_0x0384('0x37'),_0x8e1bd3);odbc[_0x0384('0x38')](function(_0x116a5d){if(_0x116a5d){logger[_0x0384('0x31')](_0x0384('0x39'),_0x116a5d);}_0x50120e(null,_0x276515);});}});}});};AGIVertices[_0x0384('0x12')][_0x0384('0x3a')]=function(_0x465a4f,_0x222308){this[_0x0384('0x10')][_0x0384('0x3b')](_0x465a4f)[_0x0384('0x14')](function(_0x366c97){_0x222308(null,_0x366c97?_0x366c97:![]);})[_0x0384('0x17')](function(_0x186aac){_0x222308(_0x186aac);});};AGIVertices[_0x0384('0x12')]['createSmsMessage']=function(_0x3536e8,_0x346f78){this[_0x0384('0x10')]['createSmsMessage'](_0x3536e8)['then'](function(_0x83951b){_0x346f78(null,_0x83951b);})[_0x0384('0x17')](function(_0x1123f6){_0x346f78(_0x1123f6);});};AGIVertices['prototype'][_0x0384('0x3c')]=function(_0x33145a,_0x4f62a6,_0x40da1a){this['rpc'][_0x0384('0x3c')]({'uniqueid':this[_0x0384('0x3d')][_0x0384('0x3e')],'node':_0x33145a['label'],'application':_0x33145a['agicommand'],'data':_0x4f62a6||null,'project_name':this[_0x0384('0x3d')][_0x0384('0x3f')],'callerid':this[_0x0384('0x3d')][_0x0384('0x40')]})[_0x0384('0x14')](function(_0x5ca7cc){if(_0x40da1a){_0x40da1a(null,_0x5ca7cc);}})[_0x0384('0x17')](function(_0x1721d0){if(_0x40da1a){_0x40da1a(_0x1721d0);}});};AGIVertices[_0x0384('0x12')][_0x0384('0x41')]=function(_0x3360fe,_0x257106,_0x254c41,_0x4e9361){this['rpc'][_0x0384('0x41')]({'uniqueid':this[_0x0384('0x3d')][_0x0384('0x3e')],'callerid':this['channel'][_0x0384('0x40')],'calleridname':this[_0x0384('0x3d')][_0x0384('0x42')],'context':this[_0x0384('0x3d')][_0x0384('0x43')],'extension':this[_0x0384('0x3d')][_0x0384('0x44')],'priority':this[_0x0384('0x3d')][_0x0384('0x45')],'accountcode':this[_0x0384('0x3d')][_0x0384('0x46')],'dnid':this[_0x0384('0x3d')][_0x0384('0x47')],'projectName':this['channel'][_0x0384('0x3f')],'saveName':_0x257106,'filename':_0x3360fe['file']||_0x257106,'savePath':_0x254c41})[_0x0384('0x14')](function(_0x1eef30){_0x4e9361(null,_0x1eef30);})['catch'](function(_0x27b570){_0x4e9361(_0x27b570);});};AGIVertices[_0x0384('0x12')][_0x0384('0x48')]=function(_0x587241,_0x30b509,_0x995877,_0x452179,_0x29a611){this[_0x0384('0x10')]['createSquareMessage']({'uniqueid':this[_0x0384('0x3d')]['uniqueid'],'body':_0x587241,'direction':_0x30b509,'providerName':_0x995877,'providerResponse':_0x452179})[_0x0384('0x14')](function(_0x4c168e){if(_0x29a611){_0x29a611(null,_0x4c168e);}})[_0x0384('0x17')](function(_0x566e0d){if(_0x29a611){_0x29a611(_0x566e0d);}});};AGIVertices[_0x0384('0x12')][_0x0384('0x49')]=function(_0x23b478,_0x4ea172){this['rpc'][_0x0384('0x49')]({'firstName':_['isEmpty'](_0x23b478['name'])||_[_0x0384('0x4a')](_0x23b478[_0x0384('0x20')])?'callback_'+Math[_0x0384('0x4b')]():_0x23b478[_0x0384('0x20')],'lastName':_[_0x0384('0x4c')](_0x23b478['lastName'])||_[_0x0384('0x4a')](_0x23b478[_0x0384('0x4d')])?null:_0x23b478[_0x0384('0x4d')],'phone':_0x23b478['phone'],'ListId':_0x23b478[_0x0384('0x4e')],'scheduledat':_0x23b478[_0x0384('0x4f')],'callbackUniqueid':this[_0x0384('0x3d')][_0x0384('0x3e')],'tags':_0x0384('0x50'),'description':_0x0384('0x51')+_0x23b478[_0x0384('0x4f')][_0x0384('0x52')](),'priority':_0x23b478[_0x0384('0x53')]})[_0x0384('0x14')](function(_0x442710){_0x4ea172(null,_0x442710);})[_0x0384('0x17')](function(_0x35577b){_0x4ea172(_0x35577b);});};AGIVertices['prototype']['getPause']=function(_0x469cdf,_0x295487){this[_0x0384('0x10')]['getPauseById'](_0x469cdf)[_0x0384('0x14')](function(_0x2f9808){_0x295487(null,_0x2f9808?_0x2f9808[_0x0384('0x20')]:![]);})[_0x0384('0x17')](function(_0x5bf527){_0x295487(_0x5bf527);});};AGIVertices['prototype'][_0x0384('0x54')]=function(_0x27eb10,_0x1c56b0,_0x25dbc3){var _0x182180={'role':_0x0384('0x55')};_0x182180[_0x27eb10]=this[_0x0384('0x3d')][_0x0384('0x40')];this[_0x0384('0x10')][_0x0384('0x54')](_0x182180,_0x1c56b0,this['channel']['uniqueid'])['then'](function(_0x5a4ad6){_0x25dbc3(null,_['isNil'](_0x5a4ad6)?![]:!![]);})['catch'](function(_0x860a4f){logger[_0x0384('0x31')](_0x860a4f);_0x25dbc3(null,![]);});};AGIVertices['prototype'][_0x0384('0x56')]=function(_0x49cb11,_0x352cbb){var _0x316909={'role':_0x0384('0x55')};_0x316909[_0x49cb11]=this[_0x0384('0x3d')][_0x0384('0x40')];this[_0x0384('0x10')][_0x0384('0x56')](_0x316909)[_0x0384('0x14')](function(_0x2253a9){_0x352cbb(null,_['isNil'](_0x2253a9)?![]:!![]);})[_0x0384('0x17')](function(_0x17ac9a){logger[_0x0384('0x31')](_0x17ac9a);_0x352cbb(null,![]);});};AGIVertices[_0x0384('0x12')][_0x0384('0x57')]=function(_0x52fbad,_0x361100){var _0x267b88={'role':'agent'};_0x267b88[_0x52fbad]=this[_0x0384('0x3d')][_0x0384('0x40')];this[_0x0384('0x10')][_0x0384('0x57')](_0x267b88)[_0x0384('0x14')](function(_0xb03cfd){_0x361100(null,_[_0x0384('0x4a')](_0xb03cfd)?![]:!![]);})[_0x0384('0x17')](function(_0x21521e){logger[_0x0384('0x31')](_0x21521e);_0x361100(null,![]);});};AGIVertices['prototype'][_0x0384('0x58')]=function(_0x4ac905,_0x258da7){var _0x2b585f={'role':'agent'};_0x2b585f[_0x4ac905]=this['channel'][_0x0384('0x40')];var _0x3e3356=_0x4ac905!='internal'?util[_0x0384('0x2d')](_0x0384('0x59'),_0x0384('0x5a'),this[_0x0384('0x3d')][_0x0384('0x40')]):undefined;this['rpc'][_0x0384('0x58')](_0x2b585f,_0x3e3356)[_0x0384('0x14')](function(_0x20a07f){_0x258da7(null,_[_0x0384('0x4a')](_0x20a07f)?![]:!![]);})[_0x0384('0x17')](function(_0x3810f6){logger[_0x0384('0x31')](_0x3810f6);_0x258da7(null,![]);});};AGIVertices[_0x0384('0x12')]['shellCommand']=function(_0x5a397a,_0x251724){sh[_0x0384('0x5b')](_[_0x0384('0x5c')](_0x5a397a),function(_0x243da6,_0x337f8c){var _0x1a56b9=_0x337f8c[_0x0384('0x5d')](/(\r\n|\n|\r)/gm,'');_0x251724(null,_0x1a56b9);});};AGIVertices[_0x0384('0x12')][_0x0384('0x5e')]=function(_0x40c20d,_0x4da281){scripts[_0x0384('0x5e')](_0x40c20d[_0x0384('0x5f')],_0x40c20d['google_cloud_tts_text_type']||'text',_0x40c20d[_0x0384('0x60')],_0x40c20d[_0x0384('0x61')]||_0x0384('0x62'),_0x40c20d[_0x0384('0x63')]||_0x0384('0x64'),_0x40c20d[_0x0384('0x65')]||'MP3')[_0x0384('0x14')](function(_0x32bfb6){_0x4da281(null,_0x32bfb6);})['catch'](function(_0x1fb839){_0x4da281(_0x1fb839);});};AGIVertices['prototype']['googleTTS']=function(_0x33591d,_0x36e66e){scripts[_0x0384('0x66')](_0x33591d[_0x0384('0x60')],_0x33591d[_0x0384('0x67')]||'en',0x1)[_0x0384('0x14')](function(_0x37507f){_0x36e66e(null,_0x37507f);})[_0x0384('0x17')](function(_0x2c0b69){_0x36e66e(_0x2c0b69);});};AGIVertices[_0x0384('0x12')][_0x0384('0x68')]=function(_0x24204d,_0x30f244){var _0x3cf72f={'uri':_0x24204d[_0x0384('0x69')],'method':_0x24204d[_0x0384('0x6a')],'json':!![],'resolveWithFullResponse':!![],'strictSSL':![],'timeout':typeof parseInt(_0x24204d[_0x0384('0x6b')])==='number'&&parseInt(_0x24204d[_0x0384('0x6b')])>=0x1?parseInt(_0x24204d[_0x0384('0x6b')])*0x3e8:0x5*0x3e8};if(_[_0x0384('0x6c')]([_0x0384('0x6d'),'PUT'],_0x3cf72f['method'][_0x0384('0x6e')]())){try{_0x3cf72f[_0x0384('0x6f')]=_0x24204d['rawBody']?JSON[_0x0384('0x70')](_0x24204d[_0x0384('0xc')]):{};}catch(_0x34bbc7){logger[_0x0384('0x31')](_0x0384('0x71'),_0x34bbc7);}}try{_0x3cf72f[_0x0384('0x72')]=_0x24204d[_0x0384('0xb')]?JSON[_0x0384('0x70')](_0x24204d['rawHeaders']):{};}catch(_0x595d89){logger[_0x0384('0x31')](_0x0384('0x73'),_0x595d89);}if(_0x24204d[_0x0384('0x74')]){try{var _0x392903=require(_0x24204d[_0x0384('0x74')])['sync'](this,_0x3cf72f);_0x3cf72f[_0x0384('0x75')]=Mustache[_0x0384('0x76')](_0x24204d['url'],_0x392903,{},['$$','$$']);if(_0x3cf72f[_0x0384('0x72')]){_0x3cf72f['headers']=JSON[_0x0384('0x70')](Mustache['render'](JSON[_0x0384('0x77')](_0x3cf72f[_0x0384('0x72')]),_0x392903,{},['$$','$$']));}if(_0x3cf72f['body']){_0x3cf72f[_0x0384('0x6f')]=JSON[_0x0384('0x70')](Mustache[_0x0384('0x76')](JSON['stringify'](_0x3cf72f[_0x0384('0x6f')]),_0x392903,{},['$$','$$']));}}catch(_0x329c42){logger[_0x0384('0x31')](_0x0384('0x78'),_0x329c42);}}rp(_0x3cf72f)[_0x0384('0x14')](function(_0x1f7db2){var _0x40117d={'statusCode':_0x1f7db2['statusCode']||0xc8,'statusMessage':_0x1f7db2[_0x0384('0x79')]||'OK','headers':_0x1f7db2['headers']||{},'body':_0x1f7db2[_0x0384('0x6f')]||{}};_0x30f244(null,_0x40117d);})[_0x0384('0x17')](function(_0x1f8a31){var _0x477a22={'statusCode':_0x1f8a31['statusCode']||0x1f4,'statusMessage':_0x1f8a31[_0x0384('0x7a')]||_0x0384('0x7b'),'headers':_0x1f8a31[_0x0384('0x7c')][_0x0384('0x72')]||{},'body':_0x1f8a31[_0x0384('0x7c')][_0x0384('0x6f')]||{}};_0x30f244(null,_0x477a22);});};AGIVertices[_0x0384('0x12')][_0x0384('0x7d')]=function(_0x5b5523,_0x4aef0b){scripts[_0x0384('0x7d')](this['channel']['uniqueid'],_0x5b5523[_0x0384('0x7e')],_0x5b5523[_0x0384('0x60')],_0x5b5523[_0x0384('0x7f')]||'en')[_0x0384('0x14')](function(_0x5ab0f2){_0x4aef0b(null,_0x5ab0f2);})['catch'](function(_0x1a14cc){_0x4aef0b(_0x1a14cc);});};AGIVertices[_0x0384('0x12')][_0x0384('0x80')]=function(_0x58a4a3,_0x4768c2){scripts[_0x0384('0x80')](this[_0x0384('0x3d')][_0x0384('0x3e')],_0x58a4a3['dialogflowV2_project_id'],_0x58a4a3[_0x0384('0x81')],_0x58a4a3['private_key'],_0x58a4a3['text'],_0x58a4a3[_0x0384('0x82')]||'en')[_0x0384('0x14')](function(_0x397229){_0x4768c2(null,_0x397229);})[_0x0384('0x17')](function(_0x3e7634){_0x4768c2(_0x3e7634);});};AGIVertices[_0x0384('0x12')]['sestekNDA']=function(_0x569fcf,_0x4cc3ff){scripts[_0x0384('0x83')](this[_0x0384('0x3d')],_0x569fcf)[_0x0384('0x14')](function(_0x4b8408){_0x4cc3ff(null,_0x4b8408);})['catch'](function(_0x504dbf){_0x4cc3ff(_0x504dbf);});};AGIVertices[_0x0384('0x12')][_0x0384('0x84')]=function(_0x3a28ac,_0x350c87){scripts['ispeechTTS'](_0x3a28ac[_0x0384('0x7e')],_0x3a28ac[_0x0384('0x60')],_0x3a28ac[_0x0384('0x85')]||_0x0384('0x62'),_0x3a28ac[_0x0384('0x86')])[_0x0384('0x14')](function(_0x43ea1d){_0x350c87(null,_0x43ea1d);})['catch'](function(_0x2a5bc9){_0x350c87(_0x2a5bc9);});};AGIVertices[_0x0384('0x12')][_0x0384('0x87')]=function(_0x570649,_0x17ad4a,_0x1aa13c){scripts['ispeechASR'](_0x17ad4a,_0x570649[_0x0384('0x7e')],_0x570649[_0x0384('0x88')]||'en-US',this[_0x0384('0x89')](_0x570649[_0x0384('0x8a')])?_0x570649[_0x0384('0x8a')]:undefined)[_0x0384('0x14')](function(_0x369ea4){_0x1aa13c(null,_0x369ea4);})[_0x0384('0x17')](function(_0x5a37de){_0x1aa13c(_0x5a37de);});};AGIVertices[_0x0384('0x12')][_0x0384('0x8b')]=function(_0x13e103,_0x2d408d){scripts['awsPolly'](_0x13e103[_0x0384('0x8c')],_0x13e103[_0x0384('0x8d')],_0x13e103['aws_polly_region'],_0x13e103[_0x0384('0x8e')]||_0x0384('0x8f'),_0x13e103['text'],_0x13e103[_0x0384('0x90')]||_0x0384('0x60'))[_0x0384('0x14')](function(_0x1c5e40){_0x2d408d(null,_0x1c5e40);})['catch'](function(_0xbfac36){_0x2d408d(_0xbfac36);});};AGIVertices[_0x0384('0x12')]['awsLex']=function(_0x4a3513,_0x491512){scripts[_0x0384('0x91')](this[_0x0384('0x3d')][_0x0384('0x3e')],_0x4a3513['aws_access_key_id'],_0x4a3513[_0x0384('0x8d')],_0x4a3513[_0x0384('0x92')],_0x4a3513[_0x0384('0x60')],_0x4a3513[_0x0384('0x93')])[_0x0384('0x14')](function(_0x9a6e5d){_0x491512(null,_0x9a6e5d);})[_0x0384('0x17')](function(_0x4f10c2){_0x491512(_0x4f10c2);});};AGIVertices[_0x0384('0x12')]['googleASR']=function(_0x4c3a5d,_0x165f1b,_0x23cd41){scripts[_0x0384('0x94')](_0x165f1b,_0x4c3a5d[_0x0384('0x7e')],_0x4c3a5d[_0x0384('0x95')]||_0x0384('0x62'))[_0x0384('0x14')](function(_0x43d66c){_0x23cd41(null,_0x43d66c);})[_0x0384('0x17')](function(_0x55bd7a){_0x23cd41(_0x55bd7a);});};AGIVertices['prototype'][_0x0384('0x96')]=function(_0x291159,_0x585ce4,_0x21493d){scripts[_0x0384('0x96')](_0x585ce4,_0x291159['appid'],_0x291159[_0x0384('0x97')],_0x291159[_0x0384('0x75')])[_0x0384('0x14')](function(_0x27b86a){_0x21493d(null,_0x27b86a);})[_0x0384('0x17')](function(_0x30813d){_0x21493d(_0x30813d);});};AGIVertices[_0x0384('0x12')][_0x0384('0x98')]=function(_0x49ba94){var _0x2cf59f=_[_0x0384('0x6c')](verticesWithRetry,_0x49ba94[_0x0384('0x99')])?_0x49ba94:_[_0x0384('0x9a')](_0x49ba94);for(var _0xb9ce48 in _0x2cf59f){if(_0x2cf59f[_0x0384('0x9b')](_0xb9ce48)){if(_0x2cf59f[_0xb9ce48]&&_['isString'](_0x2cf59f[_0xb9ce48])){if(_['includes'](recursiveMapAttributes,_0xb9ce48)){_0x2cf59f[_0xb9ce48]=this[_0x0384('0x9c')](_0x2cf59f[_0xb9ce48]);}else{_0x2cf59f[_0xb9ce48]=this['replaceAllVariables'](_0x2cf59f[_0xb9ce48]);}}}}return _0x2cf59f;};AGIVertices[_0x0384('0x12')]['recursiveNodeIndex']=function(_0x2f69c9){for(var _0x104fe8 in _0x2f69c9){if(_0x2f69c9[_0x0384('0x9b')](_0x104fe8)){if(_[_0x0384('0x9d')](_0x2f69c9[_0x104fe8])){this[_0x0384('0x9e')](_0x2f69c9[_0x104fe8]);}else if(_['isArray'](_0x2f69c9[_0x104fe8])){for(var _0x6fc4fb=0x0;_0x6fc4fb<_0x2f69c9[_0x104fe8][_0x0384('0x9f')];_0x6fc4fb++){this['recursiveNodeIndex'](_0x2f69c9[_0x104fe8][_0x6fc4fb]);}}else if(_[_0x0384('0xa0')](_0x2f69c9[_0x104fe8])){_0x2f69c9[_0x104fe8]=this[_0x0384('0xa1')](_0x2f69c9[_0x104fe8]);}}}};AGIVertices[_0x0384('0x12')]['saveRestApiResult']=function(_0x26e703,_0x1eded1){for(var _0x566ced in _0x26e703){if(_0x26e703[_0x0384('0x9b')](_0x566ced)){if(_[_0x0384('0x9d')](_0x26e703[_0x566ced])){if(!_[_0x0384('0x4c')](_0x26e703[_0x566ced])){this[_0x0384('0xa2')](_0x26e703[_0x566ced],util[_0x0384('0x2d')](_0x0384('0xa3'),_0x1eded1,_0x566ced));}}else if(_[_0x0384('0xa4')](_0x26e703[_0x566ced])){for(var _0x2a752f=0x0;_0x2a752f<_0x26e703[_0x566ced]['length'];_0x2a752f++){this['saveRestApiResult'](_0x26e703[_0x566ced][_0x2a752f],util[_0x0384('0x2d')](_0x0384('0xa3'),_0x1eded1,_0x566ced+'['+_0x2a752f+']'));}}else{if(!_['isNil'](_0x26e703[_0x566ced])){this['channel'][_0x0384('0xa5')](util[_0x0384('0x2d')]('%s.%s',_0x1eded1,_0x566ced),_0x26e703[_0x566ced]);}}}}};AGIVertices[_0x0384('0x12')][_0x0384('0x9c')]=function(_0xce11ef){try{var _0x1806e7=JSON[_0x0384('0x70')](_0xce11ef);this['recursiveNodeIndex'](_0x1806e7);return JSON[_0x0384('0x77')](_0x1806e7);}catch(_0x57ee0d){return this[_0x0384('0xa1')](_0xce11ef);}};AGIVertices['prototype'][_0x0384('0xa1')]=function(_0xeb0143){var _0x2ce2db=_0xeb0143[_0x0384('0xa6')]('{');for(var _0x40b2df=0x1;_0x40b2df<_0x2ce2db[_0x0384('0x9f')];_0x40b2df+=0x1){var _0x5ba9ae=_0x2ce2db[_0x40b2df][_0x0384('0xa6')]('}');if(_0x5ba9ae[_0x0384('0x9f')]>0x1){_0xeb0143=_0xeb0143[_0x0384('0xa7')]('{'+_0x5ba9ae[0x0]+'}',this[_0x0384('0x3d')][_0x0384('0x13')](_0x5ba9ae[0x0])['extra']||_0x5ba9ae[0x0]);}}if(_0x2ce2db[_0x0384('0x9f')]===0x1){return _0xeb0143['toString']();}return this[_0x0384('0xa1')](_0xeb0143);};AGIVertices[_0x0384('0x12')]['getAndSetVariable']=function(_0x503137,_0x1e37b0){var _0x1f55d5=this[_0x0384('0x3d')]['getVariable'](_0x503137);if(_0x1f55d5[_0x0384('0xa8')]===-0x1){return _0x1f55d5;}logger[_0x0384('0x33')](util[_0x0384('0x2d')]('The\x20\x22%s\x22\x20variable\x20value\x20is:\x20%s',_0x1e37b0,_0x1f55d5[_0x0384('0xa9')]));return this[_0x0384('0x3d')][_0x0384('0xa5')](_0x1e37b0,_0x1f55d5['extra']);};AGIVertices[_0x0384('0x12')]['isConfigured']=function(_0x1d6328){return _0x1d6328&&_0x1d6328!=='0'&&_0x1d6328!=='-1'&&_0x1d6328!=='';};AGIVertices[_0x0384('0x12')][_0x0384('0xaa')]=function(_0x5bfb55){this[_0x0384('0x3c')][_0x0384('0xab')](this,_0x5bfb55,'-');_0x5bfb55[_0x0384('0xac')]=_0x5bfb55[_0x0384('0xaa')];return{'code':0xc8,'result':'-'};};AGIVertices[_0x0384('0x12')]['mrcpsynth']=function(_0x3cc1aa){logger[_0x0384('0x33')](util[_0x0384('0x2d')]('Enter\x20in\x20MRCPSynth\x20(%s)\x20block',_0x3cc1aa[_0x0384('0xad')]));if(!this['isConfigured'](_0x3cc1aa[_0x0384('0x60')])){return this[_0x0384('0x3d')]['noop'](_0x0384('0xae'));}var _0xc3ad25='\x22'+_0x3cc1aa[_0x0384('0x60')]+'\x22';if(this[_0x0384('0x89')](_0x3cc1aa['options'])){_0xc3ad25+=','+_0x3cc1aa['options'];}var _0x469d89=this[_0x0384('0x3d')]['exec']('MRCPSynth',_0xc3ad25);if(_0x469d89[_0x0384('0xa8')]===-0x1){return _0x469d89;}return this[_0x0384('0x3d')][_0x0384('0xaf')](util[_0x0384('0x2d')](_0x0384('0xb0'),_0xc3ad25));};AGIVertices[_0x0384('0x12')][_0x0384('0xb1')]=function(_0x2f3144){logger[_0x0384('0x33')](util['format'](_0x0384('0xb2'),_0x2f3144[_0x0384('0xad')]));if(!this['isConfigured'](_0x2f3144[_0x0384('0xb3')])){return this[_0x0384('0x3d')]['noop'](_0x0384('0xb4'));}var _0x31f86f=_0x2f3144[_0x0384('0xb3')];if(this[_0x0384('0x89')](_0x2f3144[_0x0384('0x7c')])){_0x31f86f+=','+_0x2f3144['options'];}var _0x385044=this[_0x0384('0x3d')][_0x0384('0x5b')]('MRCPRecog',_0x31f86f);if(_0x385044[_0x0384('0xa8')]===-0x1){return _0x385044;}var _0x57a3e2=this['getAndSetVariable'](_0x0384('0xb5'),_0x0384('0xb6'));if(_0x57a3e2[_0x0384('0xa8')]===-0x1){return _0x57a3e2;}var _0x3d3f50=this[_0x0384('0xb7')](_0x0384('0xb8'),_0x0384('0xb9'));if(_0x3d3f50[_0x0384('0xa8')]===-0x1){return _0x3d3f50;}var _0x184fe9=this['getAndSetVariable'](_0x0384('0xba'),_0x0384('0xbb'));if(_0x184fe9[_0x0384('0xa8')]===-0x1){return _0x184fe9;}return this['channel'][_0x0384('0xaf')](util['format']('Executed\x20command\x20MRCPRecog\x20%s',_0x31f86f));};AGIVertices[_0x0384('0x12')]['agi']=function(_0x3b3bde){logger[_0x0384('0x33')](util[_0x0384('0x2d')](_0x0384('0xbc'),_0x3b3bde[_0x0384('0xad')]));return this['channel'][_0x0384('0x7')]([_0x3b3bde['command'],_0x3b3bde[_0x0384('0xbd')]]);};AGIVertices[_0x0384('0x12')][_0x0384('0xbe')]=function(_0x2e5a18){logger['info'](util[_0x0384('0x2d')](_0x0384('0xbf'),_0x2e5a18['label']));if(this[_0x0384('0x89')](_0x2e5a18[_0x0384('0x6b')])){logger['info'](util['format'](_0x0384('0xc0'),_0x2e5a18[_0x0384('0x6b')]));var _0x51f99a=this[_0x0384('0x3d')][_0x0384('0xc1')](_0x2e5a18[_0x0384('0x6b')]);if(_0x51f99a[_0x0384('0xa8')]===-0x1){return _0x51f99a;}}return this[_0x0384('0x3d')][_0x0384('0xbe')]();};AGIVertices[_0x0384('0x12')]['callback']=function(_0x4c21f6){logger[_0x0384('0x33')](util[_0x0384('0x2d')](_0x0384('0xc2'),_0x4c21f6[_0x0384('0xad')]));if(!this[_0x0384('0x89')](_0x4c21f6[_0x0384('0x4e')])){return this[_0x0384('0x3d')][_0x0384('0x31')](_0x4c21f6,_0x0384('0xc3'));}_0x4c21f6[_0x0384('0x4f')]=moment();if(this[_0x0384('0x89')](_0x4c21f6[_0x0384('0xc4')])){_0x4c21f6[_0x0384('0x4f')]=moment()['add'](_0x4c21f6['delay'],'minutes');}if(!this[_0x0384('0x89')](_0x4c21f6[_0x0384('0x53')])){_0x4c21f6['callback_priority']=0x2;}this[_0x0384('0x49')]['sync'](this,_0x4c21f6);return this[_0x0384('0x3d')][_0x0384('0xaf')](util[_0x0384('0x2d')](_0x0384('0xc5'),_0x4c21f6[_0x0384('0xc6')],_0x4c21f6['list_id'],_0x4c21f6['scheduledAt']));};AGIVertices[_0x0384('0x12')][_0x0384('0xc7')]=function(_0xb4410){logger['info'](util[_0x0384('0x2d')]('Enter\x20in\x20CUSTOM\x20APP\x20(%s)\x20block',_0xb4410['label']));var _0x549cf5=this['channel']['exec'](_0xb4410[_0x0384('0xc8')],_0xb4410['options']);if(_0x549cf5[_0x0384('0xa8')]===-0x1){return _0x549cf5;}return this[_0x0384('0x3d')]['noop'](util[_0x0384('0x2d')]('Executed\x20command\x20%s\x20%s',_0xb4410[_0x0384('0xc8')],_0xb4410[_0x0384('0x7c')]));};AGIVertices[_0x0384('0x12')][_0x0384('0xc9')]=function(_0x4cd533){logger['info'](util['format'](_0x0384('0xca'),_0x4cd533[_0x0384('0xad')]));if(!this['isConfigured'](_0x4cd533[_0x0384('0x60')])){return this[_0x0384('0x3d')][_0x0384('0xaf')]('no\x20text\x20configured');}var _0x22788b='\x22'+_0x4cd533[_0x0384('0x60')]+'\x22';if(this[_0x0384('0x89')](_0x4cd533['options'])){_0x22788b+=','+_0x4cd533[_0x0384('0x7c')];}var _0x3a6f24=this[_0x0384('0x3d')][_0x0384('0x5b')](_0x0384('0xcb'),_0x22788b);if(_0x3a6f24['result']===-0x1){return _0x3a6f24;}return this[_0x0384('0x3d')][_0x0384('0xaf')](util['format'](_0x0384('0xb0'),_0x22788b));};AGIVertices[_0x0384('0x12')][_0x0384('0xcc')]=function(_0x361ae1){logger['info'](util['format'](_0x0384('0xcd'),_0x361ae1[_0x0384('0xad')]));if(!this[_0x0384('0x89')](_0x361ae1[_0x0384('0x60')])){return this['channel'][_0x0384('0xaf')]('no\x20text\x20configured');}var _0x1e7c6a='\x22'+_0x361ae1['text']+'\x22';if(this['isConfigured'](_0x361ae1['options'])){_0x1e7c6a+=','+_0x361ae1['options'];}var _0x53a775=this['channel'][_0x0384('0x5b')](_0x0384('0xcb'),_0x1e7c6a);if(_0x53a775[_0x0384('0xa8')]===-0x1){return _0x53a775;}return this[_0x0384('0x3d')][_0x0384('0xaf')](util[_0x0384('0x2d')](_0x0384('0xb0'),_0x1e7c6a));};AGIVertices['prototype'][_0x0384('0xce')]=function(_0x390b37){logger[_0x0384('0x33')](util[_0x0384('0x2d')](_0x0384('0xcf'),_0x390b37['label']));if(!this[_0x0384('0x89')](_0x390b37['grammar'])){return this['channel'][_0x0384('0xaf')]('no\x20grammar\x20configured');}var _0x1ae896=_0x390b37['grammar'];if(this[_0x0384('0x89')](_0x390b37[_0x0384('0x7c')])){_0x1ae896+=','+_0x390b37[_0x0384('0x7c')];}var _0x3f0d53=this[_0x0384('0x3d')][_0x0384('0x5b')](_0x0384('0xd0'),_0x1ae896);if(_0x3f0d53[_0x0384('0xa8')]===-0x1){return _0x3f0d53;}var _0x4fab98=this[_0x0384('0xb7')](_0x0384('0xb5'),_0x0384('0xd1'));if(_0x4fab98[_0x0384('0xa8')]===-0x1){return _0x4fab98;}var _0x907f8b=this[_0x0384('0xb7')](_0x0384('0xb8'),_0x0384('0xd2'));if(_0x907f8b[_0x0384('0xa8')]===-0x1){return _0x907f8b;}var _0x249ea6=this['getAndSetVariable'](_0x0384('0xba'),_0x0384('0xd3'));if(_0x249ea6[_0x0384('0xa8')]===-0x1){return _0x249ea6;}return this['channel'][_0x0384('0xaf')](util[_0x0384('0x2d')]('Executed\x20command\x20MRCPRecog\x20%s',_0x1ae896));};AGIVertices[_0x0384('0x12')][_0x0384('0xd4')]=function(_0x56a5fb){logger['info'](util[_0x0384('0x2d')](_0x0384('0xd5'),_0x56a5fb[_0x0384('0xad')]));if(!this[_0x0384('0x89')](_0x56a5fb[_0x0384('0xb3')])){return this[_0x0384('0x3d')][_0x0384('0xaf')](_0x0384('0xb4'));}var _0x5dca69=_0x56a5fb[_0x0384('0xb3')];if(this[_0x0384('0x89')](_0x56a5fb['options'])){_0x5dca69+=','+_0x56a5fb['options'];}var _0x51f686=this[_0x0384('0x3d')][_0x0384('0x5b')]('MRCPRecog',_0x5dca69);if(_0x51f686[_0x0384('0xa8')]===-0x1){return _0x51f686;}var _0x18c507=this[_0x0384('0xb7')](_0x0384('0xb5'),_0x0384('0xd6'));if(_0x18c507[_0x0384('0xa8')]===-0x1){return _0x18c507;}var _0x3fb668=this[_0x0384('0xb7')](_0x0384('0xb8'),_0x0384('0xd7'));if(_0x3fb668[_0x0384('0xa8')]===-0x1){return _0x3fb668;}var _0x5a01f9=this['getAndSetVariable']('RECOG_INSTANCE()',_0x0384('0xd8'));if(_0x5a01f9[_0x0384('0xa8')]===-0x1){return _0x5a01f9;}return this[_0x0384('0x3d')][_0x0384('0xaf')](util[_0x0384('0x2d')](_0x0384('0xd9'),_0x5dca69));};AGIVertices[_0x0384('0x12')]['database']=function(_0x45b2fe){logger['info'](util[_0x0384('0x2d')](_0x0384('0xda'),_0x45b2fe[_0x0384('0xad')]));if(!this[_0x0384('0x89')](_0x45b2fe['odbc_id'])){return this[_0x0384('0x3d')][_0x0384('0x31')](_0x45b2fe,_0x0384('0xdb'));}var _0x2339df=this['getSquareOdbc']['sync'](this,_0x45b2fe[_0x0384('0xdc')]);if(!_0x2339df){return this[_0x0384('0x3d')][_0x0384('0x31')](_0x45b2fe,_0x0384('0xdd'));}if(!this[_0x0384('0x89')](_0x45b2fe[_0x0384('0x35')])){return this[_0x0384('0x3d')][_0x0384('0x31')](_0x45b2fe,_0x0384('0xde'));}var _0x54f9d8=_0x45b2fe[_0x0384('0x35')][_0x0384('0x5d')](/(\r\n|\n|\r)/gm,'\x20');this['channel'][_0x0384('0xaf')](util[_0x0384('0x2d')](_0x0384('0xdf'),_0x54f9d8));var _0x222c6f=this[_0x0384('0x2f')][_0x0384('0xab')](this,_0x2339df,_0x54f9d8);this['createSquareDetailsReport'][_0x0384('0xab')](this,_0x45b2fe,_0x54f9d8);if(!this['isConfigured'](_0x45b2fe['variable_id'])){return this[_0x0384('0x3d')][_0x0384('0xaf')](_0x0384('0xe0'));}var _0x48c780=this[_0x0384('0x13')]['sync'](this,_0x45b2fe[_0x0384('0xe1')]);if(!_0x48c780){return this['channel'][_0x0384('0x31')](_0x45b2fe,_0x0384('0xe2'));}var _0xfbfccb=this;_0x222c6f['forEach'](function(_0x48a699,_0x4e2c52){Object[_0x0384('0xe3')](_0x48a699)[_0x0384('0xe4')](function(_0x3cc002){_0xfbfccb['channel'][_0x0384('0xa5')](util[_0x0384('0x2d')](_0x0384('0xe5'),_0x48c780,_0x4e2c52,_0x3cc002),_0x48a699[_0x3cc002]);});});this[_0x0384('0x3d')]['setVariable'](util[_0x0384('0x2d')]('%s_ROWS_COUNT',_0x48c780),_0x222c6f[_0x0384('0x9f')]);return this['channel'][_0x0384('0xaf')](util[_0x0384('0x2d')]('variable\x20%s\x20set',_0x48c780));};AGIVertices[_0x0384('0x12')][_0x0384('0xe6')]=function(_0x161880){logger['debug'](util[_0x0384('0x2d')](_0x0384('0xe7'),_0x161880[_0x0384('0xad')]));if(!this[_0x0384('0x89')](_0x161880[_0x0384('0xe8')])){return this[_0x0384('0x3d')]['error'](_0x161880,_0x0384('0xe9'));}var _0x5b6e03=this[_0x0384('0x1c')][_0x0384('0xab')](this,_0x161880[_0x0384('0xe8')]);if(!_0x5b6e03){return this[_0x0384('0x3d')][_0x0384('0x31')](_0x161880,_0x0384('0xea'));}var _0x43eb8c=this['channel'][_0x0384('0x5b')](_0x0384('0xeb'),[util[_0x0384('0x2d')](_0x0384('0xec'),_0x5b6e03),_0x161880[_0x0384('0x6b')],_0x161880[_0x0384('0xed')],_0x161880[_0x0384('0x69')]]);if(_0x43eb8c[_0x0384('0xa8')]===-0x1){return _0x43eb8c;}return this['channel']['noop'](util[_0x0384('0x2d')]('Executed\x20command\x20%s',_0x0384('0xeb')));};AGIVertices[_0x0384('0x12')][_0x0384('0xee')]=function(_0x1f854a){logger['info'](util[_0x0384('0x2d')]('Enter\x20in\x20DIALOGFLOW\x20(%s)\x20block',_0x1f854a[_0x0384('0xad')]));if(!this['isConfigured'](_0x1f854a['key'])){return this[_0x0384('0x3d')][_0x0384('0xaf')]('no\x20key\x20configured');}if(!this[_0x0384('0x89')](_0x1f854a[_0x0384('0x60')])){return this[_0x0384('0x3d')][_0x0384('0xaf')](_0x0384('0xae'));}this['channel'][_0x0384('0xef')]=!![];this['createSquareDetailsReport'](_0x1f854a);this[_0x0384('0x48')](_0x1f854a[_0x0384('0x60')],'in','','');this[_0x0384('0x3d')]['noop'](util[_0x0384('0x2d')](_0x0384('0xf0'),_0x1f854a[_0x0384('0x60')]));var _0x54e5ee=this[_0x0384('0x7d')]['sync'](this,_0x1f854a);if(_0x54e5ee){for(var _0x29e1a0 in _0x54e5ee){if(_0x54e5ee[_0x0384('0x9b')](_0x29e1a0)){this[_0x0384('0x3d')][_0x0384('0xa5')](util[_0x0384('0x2d')](_0x0384('0xf1'),_0x29e1a0[_0x0384('0x6e')]()),_0x54e5ee[_0x29e1a0]);}}this[_0x0384('0x48')](_0x54e5ee[_0x0384('0xf2')],_0x0384('0xf3'),'dialogflow','');return this['channel'][_0x0384('0xaf')](util['format'](_0x0384('0xf4'),_0x54e5ee[_0x0384('0xf2')]));}return this[_0x0384('0x3d')][_0x0384('0x31')](_0x1f854a,_0x0384('0xf5'));};AGIVertices[_0x0384('0x12')][_0x0384('0xf6')]=function(_0x3582c0){logger[_0x0384('0x33')](util[_0x0384('0x2d')](_0x0384('0xf7'),_0x3582c0['label']));if(!this[_0x0384('0x89')](_0x3582c0[_0x0384('0xf8')])){return this[_0x0384('0x3d')]['noop'](_0x0384('0xf9'));}if(!this[_0x0384('0x89')](_0x3582c0[_0x0384('0x81')])){return this[_0x0384('0x3d')][_0x0384('0xaf')](_0x0384('0xfa'));}if(!this['isConfigured'](_0x3582c0[_0x0384('0xfb')])){return this[_0x0384('0x3d')][_0x0384('0xaf')](_0x0384('0xfc'));}if(!this[_0x0384('0x89')](_0x3582c0['dialogflowV2_language'])){return this['channel'][_0x0384('0xaf')](_0x0384('0xfd'));}if(!this[_0x0384('0x89')](_0x3582c0[_0x0384('0x60')])){return this['channel'][_0x0384('0xaf')](_0x0384('0xae'));}this[_0x0384('0x3d')][_0x0384('0xef')]=!![];this[_0x0384('0x3c')](_0x3582c0);this[_0x0384('0x48')](_0x3582c0['text'],'in','','');this[_0x0384('0x3d')]['noop'](util[_0x0384('0x2d')](_0x0384('0xfe'),_0x3582c0[_0x0384('0x60')]));var _0x4a87dd=this[_0x0384('0x80')][_0x0384('0xab')](this,_0x3582c0);if(_0x4a87dd){for(var _0x4a5b4b in _0x4a87dd){if(_0x4a87dd[_0x0384('0x9b')](_0x4a5b4b)){if(_0x4a5b4b!==_0x0384('0xff')){this[_0x0384('0x3d')][_0x0384('0xa5')](util[_0x0384('0x2d')]('DIALOGFLOW_%s',_0x4a5b4b[_0x0384('0x6e')]()),_0x4a87dd[_0x4a5b4b]);}}}this['createSquareMessage'](_0x4a87dd[_0x0384('0xf2')],_0x0384('0xf3'),_0x0384('0xf6'),_0x4a87dd['providerResponse']);return this[_0x0384('0x3d')][_0x0384('0xaf')](util['format'](_0x0384('0x100'),_0x4a87dd['speech']));}return this[_0x0384('0x3d')][_0x0384('0x31')](_0x3582c0,'DialogflowV2\x20is\x20unreachable');};AGIVertices[_0x0384('0x12')]['sesteknda']=function(_0xb921a0){logger[_0x0384('0x33')](util[_0x0384('0x2d')](_0x0384('0x101'),_0xb921a0[_0x0384('0xad')]));if(!this[_0x0384('0x89')](_0xb921a0[_0x0384('0x102')])){return this[_0x0384('0x3d')][_0x0384('0xaf')](_0x0384('0x103'));}if(!this[_0x0384('0x89')](_0xb921a0[_0x0384('0x104')])){return this[_0x0384('0x3d')][_0x0384('0xaf')](_0x0384('0x105'));}if(!this[_0x0384('0x89')](_0xb921a0['password'])){return this['channel'][_0x0384('0xaf')](_0x0384('0x106'));}if(!this[_0x0384('0x89')](_0xb921a0[_0x0384('0x107')])){return this[_0x0384('0x3d')][_0x0384('0xaf')](_0x0384('0xae'));}this[_0x0384('0x3d')][_0x0384('0xef')]=!![];this[_0x0384('0x3c')](_0xb921a0);this[_0x0384('0x48')](_0xb921a0[_0x0384('0x60')],'in','','');this[_0x0384('0x3d')][_0x0384('0xaf')](util['format'](_0x0384('0x108'),_0xb921a0[_0x0384('0x60')]));var _0x2fa90c=this[_0x0384('0x83')][_0x0384('0xab')](this,_0xb921a0);if(_0x2fa90c){for(var _0x5dfe00 in _0x2fa90c){if(_0x2fa90c['hasOwnProperty'](_0x5dfe00)){this[_0x0384('0x3d')][_0x0384('0xa5')](util[_0x0384('0x2d')](_0x0384('0x109'),_0x5dfe00[_0x0384('0x6e')]()),_0x2fa90c[_0x5dfe00]);}}this['createSquareMessage'](_0x2fa90c[_0x0384('0xf2')],_0x0384('0xf3'),_0x0384('0x10a'),'');if(_0x2fa90c[_0x0384('0x10b')]){this[_0x0384('0x3d')][_0x0384('0xaf')](util[_0x0384('0x2d')]('Sestek\x20NDA\x20%s\x20file\x20created',_0x2fa90c[_0x0384('0x10b')]));var _0x6ad6d1=this[_0x0384('0x3d')]['streamFile'](_0x2fa90c['audiofile']);try{fs[_0x0384('0x10c')](_0x2fa90c[_0x0384('0x10b')]+'.wav');}catch(_0x4ff60c){logger[_0x0384('0x31')](_0x4ff60c);}return _0x6ad6d1;}else{return this['channel'][_0x0384('0xaf')](util['format'](_0x0384('0x10d'),_0x2fa90c['speech']));}}return this['channel'][_0x0384('0x31')](_0xb921a0,_0x0384('0x10e'));};AGIVertices[_0x0384('0x12')]['end']=function(_0x147e80){logger[_0x0384('0x33')](util['format'](_0x0384('0x10f'),_0x147e80['label']));return this[_0x0384('0x3d')][_0x0384('0xaf')](_0x0384('0x110'));};AGIVertices['prototype']['ext_dial']=function(_0x197373){logger[_0x0384('0x33')](util[_0x0384('0x2d')](_0x0384('0x111'),_0x197373[_0x0384('0xad')]));var _0x53ce48='';if(_0x197373[_0x0384('0x112')]){if(!this['isConfigured'](_0x197373[_0x0384('0x112')])){return this[_0x0384('0x3d')]['error'](_0x197373,'no\x20trunk\x20selected');}else{var _0x50a3ce=parseInt(_0x197373[_0x0384('0x112')],0xa);if(isNaN(_0x50a3ce)){_0x53ce48=_0x197373[_0x0384('0x112')];}else{_0x53ce48=this['getTrunk'][_0x0384('0xab')](this,_0x197373[_0x0384('0x112')]);if(!_0x53ce48){return this['channel'][_0x0384('0x31')](_0x197373,_0x0384('0x113'));}}}}else if(_0x197373[_0x0384('0x114')]){_0x53ce48=_0x197373[_0x0384('0x114')];}else{return this[_0x0384('0x3d')]['error'](_0x197373,_0x0384('0x115'));}var _0x3f9315=this[_0x0384('0x3d')][_0x0384('0x5b')](_0x0384('0xeb'),[util[_0x0384('0x2d')](_0x0384('0x116'),_0x53ce48,_0x197373[_0x0384('0xc6')]),_0x197373['timeout'],_0x197373[_0x0384('0xed')],_0x197373[_0x0384('0x69')]]);if(_0x3f9315[_0x0384('0xa8')]===-0x1){return _0x3f9315;}return this['channel'][_0x0384('0xaf')](util[_0x0384('0x2d')]('Executed\x20command\x20%s',_0x0384('0xeb')));};AGIVertices[_0x0384('0x12')]['finally']=function(_0x3b5950){logger[_0x0384('0x33')](util['format'](_0x0384('0x117'),_0x3b5950[_0x0384('0xad')]));return this[_0x0384('0x3d')][_0x0384('0xaf')](_0x0384('0x118'));};AGIVertices[_0x0384('0x12')][_0x0384('0xe')]=function(_0x64f854){logger[_0x0384('0x33')](util[_0x0384('0x2d')]('Enter\x20in\x20GETDIGITS\x20(%s)\x20block',_0x64f854['label']));if(_0x64f854[_0x0384('0xac')]===0x0){return this['maxRetry'](_0x64f854);}_0x64f854[_0x0384('0xac')]-=0x1;if(!this[_0x0384('0x89')](_0x64f854['file_id'])){return this[_0x0384('0x3d')]['error'](_0x64f854,'no\x20file\x20audio\x20selected');}var _0x1f0ddb=this[_0x0384('0x119')][_0x0384('0xab')](this,_0x64f854[_0x0384('0x11a')]);if(!_0x1f0ddb){return this[_0x0384('0x3d')][_0x0384('0x31')](_0x64f854,_0x0384('0x11b'));}if(!this[_0x0384('0x89')](_0x64f854[_0x0384('0xe1')])){return this['channel']['error'](_0x0384('0xe0'));}var _0xd5d596=this[_0x0384('0x3d')][_0x0384('0x11c')](_0x1f0ddb,_0x64f854['response'],_0x64f854['maxdigit']);var _0x5b7225=_0xd5d596[_0x0384('0xa8')]?_0xd5d596[_0x0384('0xa8')][_0x0384('0x52')]():'';logger[_0x0384('0x33')](_0x0384('0x11d'),JSON[_0x0384('0x77')](_0xd5d596));if(_0xd5d596['result']===-0x1){this['createSquareDetailsReport']['sync'](this,_0x64f854,_0x5b7225);return _0xd5d596;}else if(_0xd5d596[_0x0384('0xa9')]==='timeout'){_0xd5d596['result']=_0x5b7225['length']>=parseInt(_0x64f854[_0x0384('0x11e')])?'x':'i';}else{_0xd5d596['result']=_0x5b7225[_0x0384('0x9f')]>=parseInt(_0x64f854['mindigit'])&&_0x5b7225[_0x0384('0x9f')]<=parseInt(_0x64f854[_0x0384('0x11f')])?'x':'i';}var _0x442ebf=this[_0x0384('0x13')][_0x0384('0xab')](this,_0x64f854['variable_id']);if(!_0x442ebf){return this[_0x0384('0x3d')][_0x0384('0x31')](_0x64f854,_0x0384('0xe2'));}this[_0x0384('0x3d')][_0x0384('0xa5')](_0x442ebf,_0x5b7225);if(this[_0x0384('0x89')](_0x64f854['hiddendigitsnum'])){var _0x1109b1=parseInt(_0x64f854[_0x0384('0x120')],0xa);var _0x4467cf=rs['generate']({'charset':'*','length':_0x1109b1});var _0x4ad49f=_0x5b7225['length'];if(_0x4ad49f>0x0){if(_0x4ad49f>_0x1109b1){this['createSquareDetailsReport'][_0x0384('0xab')](this,_0x64f854,_0x64f854[_0x0384('0x121')]==='first'?_0x4467cf+_0x5b7225[_0x0384('0x122')](_0x1109b1):_0x5b7225[_0x0384('0x122')](0x0,_0x4ad49f-_0x1109b1)+_0x4467cf);}else{this[_0x0384('0x3c')][_0x0384('0xab')](this,_0x64f854,rs[_0x0384('0x123')]({'charset':'*','length':_0x4ad49f}));}}else{this[_0x0384('0x3c')][_0x0384('0xab')](this,_0x64f854,'');}}else{this['createSquareDetailsReport'][_0x0384('0xab')](this,_0x64f854,_0x5b7225);}return _0xd5d596;};AGIVertices[_0x0384('0x12')][_0x0384('0xf')]=function(_0x34dc29){logger['info'](util['format'](_0x0384('0x124'),_0x34dc29[_0x0384('0xad')]));return this['getdigits'](_0x34dc29);};AGIVertices[_0x0384('0x12')][_0x0384('0x125')]=function(_0x445078){logger[_0x0384('0x33')](util['format']('Enter\x20in\x20GOAL\x20(%s)\x20block',_0x445078[_0x0384('0xad')]));this[_0x0384('0x3c')][_0x0384('0xab')](this,_0x445078,_0x445078['goalname']);return this[_0x0384('0x3d')]['noop'](util[_0x0384('0x2d')](_0x0384('0x126'),_0x445078['goalname']));};AGIVertices[_0x0384('0x12')][_0x0384('0x127')]=function(_0x328296){logger['info'](util['format'](_0x0384('0x128'),_0x328296[_0x0384('0xad')]));if(!this[_0x0384('0x89')](_0x328296['aws_access_key_id'])||!this[_0x0384('0x89')](_0x328296[_0x0384('0x8d')])){return this['channel'][_0x0384('0xaf')]('no\x20valid\x20credentials\x20configured');}if(!this[_0x0384('0x89')](_0x328296['text'])){return this[_0x0384('0x3d')][_0x0384('0xaf')](_0x0384('0xae'));}this[_0x0384('0x3d')][_0x0384('0xaf')](util[_0x0384('0x2d')](_0x0384('0x129'),_0x328296['text']));var _0x4ced3d=this[_0x0384('0x8b')][_0x0384('0xab')](this,_0x328296);if(_0x4ced3d){this[_0x0384('0x3d')]['noop'](util[_0x0384('0x2d')](_0x0384('0x12a'),_0x4ced3d));var _0x184ff1=this[_0x0384('0x3d')][_0x0384('0x12b')](_0x4ced3d);try{fs[_0x0384('0x10c')](_0x4ced3d+'.wav');}catch(_0xe7d432){logger[_0x0384('0x31')](_0xe7d432);}return _0x184ff1;}return this[_0x0384('0x3d')][_0x0384('0x31')](_0x328296,_0x0384('0x12c'));};AGIVertices[_0x0384('0x12')][_0x0384('0x12d')]=function(_0x52d4fb){logger['info'](util[_0x0384('0x2d')](_0x0384('0x12e'),_0x52d4fb[_0x0384('0xad')]));if(!this[_0x0384('0x89')](_0x52d4fb[_0x0384('0x8c')])||!this['isConfigured'](_0x52d4fb['aws_secret_access_key'])){return this['channel']['noop'](_0x0384('0x12f'));}if(!this[_0x0384('0x89')](_0x52d4fb['aws_bot_name'])){return this[_0x0384('0x3d')][_0x0384('0xaf')](_0x0384('0x130'));}if(!this[_0x0384('0x89')](_0x52d4fb['text'])){return this[_0x0384('0x3d')][_0x0384('0xaf')](_0x0384('0xae'));}this[_0x0384('0x3d')][_0x0384('0xef')]=!![];this[_0x0384('0x3c')](_0x52d4fb);this[_0x0384('0x48')](_0x52d4fb[_0x0384('0x60')],'in','','');this[_0x0384('0x3d')]['noop'](util[_0x0384('0x2d')]('Trying\x20Amazon\x20Lex:\x20%s',_0x52d4fb[_0x0384('0x60')]));var _0x3c57dd=this['awsLex']['sync'](this,_0x52d4fb);if(_0x3c57dd){for(var _0x2464fb in _0x3c57dd){if(_0x3c57dd[_0x0384('0x9b')](_0x2464fb)&&_['isString'](_0x3c57dd[_0x2464fb])){this[_0x0384('0x3d')][_0x0384('0xa5')](util[_0x0384('0x2d')](_0x0384('0x131'),_0x2464fb['toUpperCase']()),_0x3c57dd[_0x2464fb]);}}if(_['isNil'](_0x3c57dd[_0x0384('0x7a')])){return this[_0x0384('0x3d')][_0x0384('0xaf')](_0x0384('0x132'));}else{this['createSquareMessage'](_0x3c57dd[_0x0384('0x7a')],_0x0384('0xf3'),_0x0384('0x133'),'');return this['channel']['noop'](util[_0x0384('0x2d')]('Amazon\x20Lex\x20Result\x20%s',_0x3c57dd['message']));}}return this[_0x0384('0x3d')][_0x0384('0x31')](_0x52d4fb,'Amazon\x20Lex\x20is\x20unreachable');};AGIVertices[_0x0384('0x12')][_0x0384('0x134')]=function(_0x4fcedd){logger['info'](util['format']('Enter\x20in\x20GOOGLEASR\x20(%s)\x20block\x20%s',_0x4fcedd['label'],_0x4fcedd[_0x0384('0x6b')]));if(!this[_0x0384('0x89')](_0x4fcedd[_0x0384('0x7e')])){return this[_0x0384('0x3d')][_0x0384('0xaf')](_0x0384('0x135'));}var _0x5ba292=_0x0384('0x136');var _0x1d64dc=util[_0x0384('0x2d')](_0x0384('0x137'),FILES_PATH,rs[_0x0384('0x123')](0x4));var _0x2a318e=util[_0x0384('0x2d')]('%s.%s',_0x1d64dc,_0x5ba292);var _0x1e119f=!![];if(_0x4fcedd[_0x0384('0x138')]===_0x0384('0x139')){_0x1e119f=![];}var _0x363ba4=this[_0x0384('0x3d')]['recordFile'](_0x1d64dc,_0x5ba292,_0x4fcedd[_0x0384('0x13a')],_0x4fcedd[_0x0384('0x6b')],undefined,_0x1e119f);if(_0x363ba4[_0x0384('0xa8')]!==-0x1){this[_0x0384('0x3d')][_0x0384('0xaf')](util[_0x0384('0x2d')](_0x0384('0x13b'),_0x2a318e));var _0x464b0d=this[_0x0384('0x94')][_0x0384('0xab')](this,_0x4fcedd,_0x2a318e);if(_0x464b0d){for(var _0x40300a in _0x464b0d){if(_0x464b0d[_0x0384('0x9b')](_0x40300a)){this['channel'][_0x0384('0xa5')](util[_0x0384('0x2d')](_0x0384('0x13c'),_0x40300a['toUpperCase']()),_0x464b0d[_0x40300a]);}}return this['channel'][_0x0384('0xaf')](util[_0x0384('0x2d')](_0x0384('0x13d'),JSON['stringify'](_0x464b0d)));}}return _0x363ba4;};AGIVertices['prototype'][_0x0384('0x13e')]=function(_0x10564a){logger[_0x0384('0x33')](util['format']('Enter\x20in\x20TILDEASR\x20(%s)\x20block',_0x10564a[_0x0384('0xad')]));if(!this['isConfigured'](_0x10564a[_0x0384('0x13f')])){return this[_0x0384('0x3d')][_0x0384('0xaf')](_0x0384('0x140'));}if(!this['isConfigured'](_0x10564a['appsecret'])){return this[_0x0384('0x3d')][_0x0384('0xaf')](_0x0384('0x141'));}var _0x187cb4=_0x0384('0x136');var _0x56ad8b=util['format'](_0x0384('0x137'),FILES_PATH,rs[_0x0384('0x123')](0x4));var _0x5ccf9a=util[_0x0384('0x2d')](_0x0384('0xa3'),_0x56ad8b,_0x187cb4);var _0x4f8043=!![];if(_0x10564a[_0x0384('0x138')]===_0x0384('0x139')){_0x4f8043=![];}var _0x650a08=this[_0x0384('0x3d')][_0x0384('0x142')](_0x56ad8b,_0x187cb4,_0x10564a[_0x0384('0x13a')],_0x10564a[_0x0384('0x6b')],undefined,_0x4f8043);if(_0x650a08[_0x0384('0xa8')]!==-0x1){this['channel']['noop'](util['format'](_0x0384('0x143'),_0x5ccf9a));var _0x259cd6=this[_0x0384('0x96')][_0x0384('0xab')](this,_0x10564a,_0x5ccf9a);if(_0x259cd6){for(var _0x3bfbda in _0x259cd6){if(_0x259cd6[_0x0384('0x9b')](_0x3bfbda)){this[_0x0384('0x3d')]['setVariable'](util[_0x0384('0x2d')]('TILDE_ASR_%s',_0x3bfbda[_0x0384('0x6e')]()),_0x259cd6[_0x3bfbda]);}}return this['channel'][_0x0384('0xaf')](util[_0x0384('0x2d')](_0x0384('0x144'),JSON[_0x0384('0x77')](_0x259cd6)));}}return _0x650a08;};AGIVertices[_0x0384('0x12')][_0x0384('0x145')]=function(_0x2e7351){logger[_0x0384('0x33')](util[_0x0384('0x2d')]('Enter\x20in\x20GOTO\x20(%s)\x20block',_0x2e7351['label']));return this[_0x0384('0x3d')][_0x0384('0x146')](_0x2e7351[_0x0384('0x43')],_0x2e7351['extension'],_0x2e7351[_0x0384('0x45')]);};AGIVertices[_0x0384('0x12')][_0x0384('0x147')]=function(_0x260c62){logger[_0x0384('0x33')](util[_0x0384('0x2d')](_0x0384('0x148'),_0x260c62['label']));if(!this[_0x0384('0x89')](_0x260c62[_0x0384('0x149')])){return this[_0x0384('0x3d')]['error'](_0x260c62,'no\x20condition\x20configured');}try{var _0xe929f8=eval(_0x260c62[_0x0384('0x149')])?_0x0384('0x14a'):'false';this[_0x0384('0x3d')]['noop'](util[_0x0384('0x2d')](_0x0384('0x14b'),_0x260c62[_0x0384('0x149')],_0xe929f8));return{'code':0xc8,'result':_0xe929f8};}catch(_0x12e8ee){return{'code':0xc8,'result':_0x0384('0x14c')};}};AGIVertices[_0x0384('0x12')]['gotoiftime']=function(_0x59ab99){logger[_0x0384('0x33')](util['format'](_0x0384('0x14d'),_0x59ab99['label']));if(!this[_0x0384('0x89')](_0x59ab99['interval_id'])){return this[_0x0384('0x3d')][_0x0384('0x31')](_0x59ab99,'no\x20interval\x20configured');}var _0x46b743=this[_0x0384('0x27')][_0x0384('0xab')](this,_0x59ab99[_0x0384('0x14e')]);if(!_0x46b743){return this[_0x0384('0x3d')][_0x0384('0x31')](_0x59ab99,_0x0384('0x14f'));}for(var _0x12fb61=0x0;_0x12fb61<_0x46b743[_0x0384('0x9f')];_0x12fb61+=0x1){var _0x495d3c=this['channel'][_0x0384('0x13')](util['format'](_0x0384('0x150'),_0x46b743[_0x12fb61]));if(_0x495d3c[_0x0384('0xa8')]===-0x1){return _0x495d3c;}logger[_0x0384('0x33')](util[_0x0384('0x2d')](_0x0384('0x151'),_0x46b743[_0x12fb61],_0x495d3c[_0x0384('0xa9')]));if(_0x495d3c[_0x0384('0xa9')]===_0x0384('0x14a')){logger[_0x0384('0x33')](util[_0x0384('0x2d')]('IFTIME\x20%s\x20%s',_0x46b743[_0x12fb61],_0x0384('0x14a')));this[_0x0384('0x3d')]['noop'](util[_0x0384('0x2d')](_0x0384('0x151'),_0x46b743[_0x12fb61],'true'));return{'code':0xc8,'result':'true'};}else{logger[_0x0384('0x33')](util['format']('IFTIME\x20%s\x20%s',_0x46b743[_0x12fb61],_0x0384('0x14c')));this[_0x0384('0x3d')][_0x0384('0xaf')](util[_0x0384('0x2d')](_0x0384('0x151'),_0x46b743[_0x12fb61],_0x0384('0x14c')));}}return{'code':0xc8,'result':'false'};};AGIVertices['prototype']['hangup']=function(_0x63d6b9){logger[_0x0384('0x33')](util[_0x0384('0x2d')]('Enter\x20in\x20HANGUP\x20(%s)\x20block',_0x63d6b9['label']));return this[_0x0384('0x3d')][_0x0384('0x152')]();};AGIVertices[_0x0384('0x12')]['ispeechasr']=function(_0x3eb71b){logger[_0x0384('0x33')](util['format'](_0x0384('0x153'),_0x3eb71b[_0x0384('0xad')]));if(!this[_0x0384('0x89')](_0x3eb71b[_0x0384('0x7e')])){return this[_0x0384('0x3d')][_0x0384('0xaf')](_0x0384('0x135'));}var _0x5d58e5=_0x0384('0x136');var _0x271a09=util[_0x0384('0x2d')](_0x0384('0x137'),FILES_PATH,rs['generate'](0x4));var _0x35dda4=util[_0x0384('0x2d')](_0x0384('0xa3'),_0x271a09,_0x5d58e5);var _0x527c21=!![];if(_0x3eb71b[_0x0384('0x138')]===_0x0384('0x139')){_0x527c21=![];}var _0x4b1696=this['channel'][_0x0384('0x142')](_0x271a09,_0x5d58e5,_0x3eb71b[_0x0384('0x13a')],_0x3eb71b[_0x0384('0x6b')],undefined,_0x527c21);if(_0x4b1696[_0x0384('0xa8')]!==-0x1){this[_0x0384('0x3d')][_0x0384('0xaf')](util[_0x0384('0x2d')](_0x0384('0x154'),_0x35dda4));var _0x3254b9=this['ispeechASR'][_0x0384('0xab')](this,_0x3eb71b,_0x35dda4);if(_0x3254b9){for(var _0x3a3274 in _0x3254b9){if(_0x3254b9[_0x0384('0x9b')](_0x3a3274)){this['channel'][_0x0384('0xa5')](util[_0x0384('0x2d')](_0x0384('0x155'),_0x3a3274[_0x0384('0x6e')]()),_0x3254b9[_0x3a3274]);}}return this[_0x0384('0x3d')][_0x0384('0xaf')](util[_0x0384('0x2d')](_0x0384('0x156'),JSON['stringify'](_0x3254b9)));}}return _0x4b1696;};AGIVertices[_0x0384('0x12')][_0x0384('0x157')]=function(_0x48a2a8){logger[_0x0384('0x33')](util[_0x0384('0x2d')]('Enter\x20in\x20ISPEECHTTS\x20(%s)\x20block',_0x48a2a8['label']));if(!this[_0x0384('0x89')](_0x48a2a8[_0x0384('0x7e')])){return this[_0x0384('0x3d')][_0x0384('0xaf')](_0x0384('0x135'));}if(!this[_0x0384('0x89')](_0x48a2a8[_0x0384('0x60')])){return this[_0x0384('0x3d')][_0x0384('0xaf')](_0x0384('0xae'));}this['channel'][_0x0384('0xaf')](util['format'](_0x0384('0x158'),_0x48a2a8[_0x0384('0x60')]));var _0x48d259=this['ispeechTTS'][_0x0384('0xab')](this,_0x48a2a8);if(_0x48d259){this[_0x0384('0x3d')][_0x0384('0xaf')](util[_0x0384('0x2d')](_0x0384('0x154'),_0x48d259));var _0x4aaf12=this['channel']['streamFile'](_0x48d259,_0x48a2a8[_0x0384('0x13a')]);try{fs[_0x0384('0x10c')](_0x48d259+_0x0384('0x159'));}catch(_0x191ccc){logger[_0x0384('0x31')](_0x191ccc);}return _0x4aaf12;}return this[_0x0384('0x3d')][_0x0384('0x31')](_0x48a2a8,'ispeech\x20TTS\x20is\x20unreachable');};AGIVertices[_0x0384('0x12')]['login']=function(_0x32c695){logger[_0x0384('0x33')](util[_0x0384('0x2d')]('Enter\x20in\x20LOGIN\x20(%s)\x20block',_0x32c695[_0x0384('0xad')]));if(!this[_0x0384('0x89')](_0x32c695[_0x0384('0x15a')])){return this['channel'][_0x0384('0x31')](_0x32c695,_0x0384('0x15b'));}logger['info'](util[_0x0384('0x2d')](_0x0384('0x15c'),this[_0x0384('0x3d')][_0x0384('0x40')],_0x32c695[_0x0384('0x15a')]));var _0x1d9e67=this['agentLogin'][_0x0384('0xab')](this,_0x32c695[_0x0384('0x15a')]);if(_0x1d9e67){logger[_0x0384('0x33')](util[_0x0384('0x2d')](_0x0384('0x15d'),this[_0x0384('0x3d')]['callerid'],_0x32c695[_0x0384('0x15a')]));this['channel'][_0x0384('0xaf')](util[_0x0384('0x2d')](_0x0384('0x15d'),this[_0x0384('0x3d')][_0x0384('0x40')],_0x32c695[_0x0384('0x15a')]));return{'code':0xc8,'result':_0x0384('0x15e')};}else{logger[_0x0384('0x33')](util[_0x0384('0x2d')]('AGENT\x20%s\x20NOT\x20FOUND\x20BY',this[_0x0384('0x3d')]['callerid'],_0x32c695[_0x0384('0x15a')]));this[_0x0384('0x3d')]['noop'](util[_0x0384('0x2d')](_0x0384('0x15f'),this[_0x0384('0x3d')]['callerid'],_0x32c695[_0x0384('0x15a')]));return{'code':0xc8,'result':_0x0384('0x160')};}};AGIVertices[_0x0384('0x12')][_0x0384('0x161')]=function(_0x1624cb){logger['info'](util[_0x0384('0x2d')](_0x0384('0x162'),_0x1624cb[_0x0384('0xad')]));if(!this[_0x0384('0x89')](_0x1624cb[_0x0384('0x15a')])){return this[_0x0384('0x3d')][_0x0384('0x31')](_0x1624cb,'no\x20find\x20by\x20configured');}logger['info'](util[_0x0384('0x2d')]('FIND\x20AGENT\x20%s\x20BY\x20%s',this[_0x0384('0x3d')][_0x0384('0x40')],_0x1624cb[_0x0384('0x15a')]));var _0x4f866c=this[_0x0384('0x57')][_0x0384('0xab')](this,_0x1624cb[_0x0384('0x15a')]);if(_0x4f866c){logger[_0x0384('0x33')](util[_0x0384('0x2d')](_0x0384('0x15d'),this[_0x0384('0x3d')][_0x0384('0x40')],_0x1624cb[_0x0384('0x15a')]));this['channel']['noop'](util[_0x0384('0x2d')](_0x0384('0x15d'),this[_0x0384('0x3d')][_0x0384('0x40')],_0x1624cb[_0x0384('0x15a')]));return{'code':0xc8,'result':_0x0384('0x15e')};}else{logger['info'](util[_0x0384('0x2d')](_0x0384('0x15f'),this['channel'][_0x0384('0x40')],_0x1624cb[_0x0384('0x15a')]));this[_0x0384('0x3d')]['noop'](util['format'](_0x0384('0x15f'),this[_0x0384('0x3d')][_0x0384('0x40')],_0x1624cb[_0x0384('0x15a')]));return{'code':0xc8,'result':_0x0384('0x160')};}};AGIVertices[_0x0384('0x12')][_0x0384('0x163')]=function(_0x4c9080){logger[_0x0384('0x33')](util['format'](_0x0384('0x164'),_0x4c9080['label']));if(!this[_0x0384('0x89')](_0x4c9080[_0x0384('0x165')])){return this[_0x0384('0x3d')]['error'](_0x4c9080,_0x0384('0x166'));}this['channel'][_0x0384('0xaf')](util[_0x0384('0x2d')]('math\x20%s',_0x4c9080['operation']));var _0xa12287=eval(_0x4c9080[_0x0384('0x165')]);if(!this['isConfigured'](_0x4c9080[_0x0384('0xe1')])){return this[_0x0384('0x3d')][_0x0384('0xaf')]('no\x20variable\x20selected\x20for\x20the\x20result');}var _0x8736c4=this[_0x0384('0x13')][_0x0384('0xab')](this,_0x4c9080[_0x0384('0xe1')]);if(!_0x8736c4){return this['channel'][_0x0384('0x31')](_0x4c9080,'no\x20variable\x20found');}if(_[_0x0384('0xa4')](_0xa12287)){var _0x9a97ec=this;_0xa12287['forEach'](function(_0x5e88f2,_0x3085dc){_0x9a97ec[_0x0384('0x3d')]['setVariable'](util[_0x0384('0x2d')]('%s[%s]',_0x8736c4,_0x3085dc),_0x5e88f2);});return this[_0x0384('0x3d')]['noop'](util[_0x0384('0x2d')](_0x0384('0x167'),_0x8736c4));}else{return this[_0x0384('0x3d')][_0x0384('0xa5')](_0x8736c4,_0xa12287);}};AGIVertices[_0x0384('0x12')]['menu']=function(_0x5ae2d4){logger[_0x0384('0x33')](util[_0x0384('0x2d')](_0x0384('0x168'),_0x5ae2d4[_0x0384('0xad')]));if(_0x5ae2d4['retry']===0x0){return this[_0x0384('0xaa')](_0x5ae2d4);}_0x5ae2d4['retry']-=0x1;if(!this[_0x0384('0x89')](_0x5ae2d4[_0x0384('0x11a')])){return this[_0x0384('0x3d')][_0x0384('0x31')](_0x5ae2d4,_0x0384('0x169'));}var _0xfc391b=this[_0x0384('0x119')][_0x0384('0xab')](this,_0x5ae2d4[_0x0384('0x11a')]);if(!_0xfc391b){return this[_0x0384('0x3d')][_0x0384('0x31')](_0x5ae2d4,_0x0384('0x11b'));}var _0xa33261=this[_0x0384('0x3d')]['getData'](_0xfc391b,_0x5ae2d4[_0x0384('0x16a')],_0x5ae2d4[_0x0384('0x16b')]);var _0x3de971=_0xa33261[_0x0384('0xa8')];if(_0xa33261[_0x0384('0xa8')]===-0x1){this[_0x0384('0x3c')][_0x0384('0xab')](this,_0x5ae2d4,'-1');return _0xa33261;}else if(_0xa33261['extra']===_0x0384('0x6b')){_0xa33261['result']=_0xa33261[_0x0384('0xa8')][_0x0384('0x9f')]>0x0?_0xa33261[_0x0384('0xa8')]:'t';}else if(_[_0x0384('0x4c')](_0xa33261[_0x0384('0xa8')])){_0xa33261[_0x0384('0xa8')]='#';_0x3de971='#';}if(!this[_0x0384('0x89')](_0x5ae2d4[_0x0384('0xe1')])){this['channel']['noop'](_0x0384('0xe0'));}else{var _0x5200f1=this[_0x0384('0x13')][_0x0384('0xab')](this,_0x5ae2d4[_0x0384('0xe1')]);if(!_0x5200f1){return this[_0x0384('0x3d')][_0x0384('0x31')](_0x5ae2d4,_0x0384('0xe2'));}this[_0x0384('0x3d')]['setVariable'](_0x5200f1,_0x3de971);}this[_0x0384('0x3c')][_0x0384('0xab')](this,_0x5ae2d4,_0x3de971);return _0xa33261;};AGIVertices[_0x0384('0x12')]['noop']=function(_0x4f405e){logger['info'](util['format'](_0x0384('0x16c'),_0x4f405e[_0x0384('0xad')]));return this['channel'][_0x0384('0xaf')](_0x4f405e[_0x0384('0x16d')]||_0x4f405e[_0x0384('0xad')]);};AGIVertices[_0x0384('0x12')][_0x0384('0x16e')]=function(_0x301c78){logger['info'](util[_0x0384('0x2d')](_0x0384('0x16f'),_0x301c78[_0x0384('0xad')]));if(!this[_0x0384('0x89')](_0x301c78[_0x0384('0x15a')])){return this[_0x0384('0x3d')][_0x0384('0x31')](_0x301c78,_0x0384('0x15b'));}logger[_0x0384('0x33')](util[_0x0384('0x2d')](_0x0384('0x15c'),this[_0x0384('0x3d')]['callerid'],_0x301c78[_0x0384('0x15a')]));var _0xeca22c=this['getPause'][_0x0384('0xab')](this,_0x301c78['pause_id']);var _0x2856ce=this['agentPause'][_0x0384('0xab')](this,_0x301c78[_0x0384('0x15a')],_0xeca22c);if(_0x2856ce){logger[_0x0384('0x33')](util['format'](_0x0384('0x15d'),this[_0x0384('0x3d')]['callerid'],_0x301c78['findBy']));this[_0x0384('0x3d')]['noop'](util[_0x0384('0x2d')](_0x0384('0x15d'),this[_0x0384('0x3d')][_0x0384('0x40')],_0x301c78[_0x0384('0x15a')]));return{'code':0xc8,'result':_0x0384('0x15e')};}else{logger[_0x0384('0x33')](util[_0x0384('0x2d')](_0x0384('0x15f'),this[_0x0384('0x3d')][_0x0384('0x40')],_0x301c78[_0x0384('0x15a')]));this[_0x0384('0x3d')][_0x0384('0xaf')](util[_0x0384('0x2d')](_0x0384('0x15d'),this['channel'][_0x0384('0x40')],_0x301c78[_0x0384('0x15a')]));return{'code':0xc8,'result':_0x0384('0x160')};}};AGIVertices[_0x0384('0x12')]['playback']=function(_0x319ed7){logger[_0x0384('0x33')](util['format']('Enter\x20in\x20PLAYBACK\x20(%s)\x20block',_0x319ed7[_0x0384('0xad')]));if(!this[_0x0384('0x89')](_0x319ed7['file_id'])){return this[_0x0384('0x3d')][_0x0384('0x31')](_0x319ed7,_0x0384('0x169'));}var _0x4d64b4=this[_0x0384('0x119')][_0x0384('0xab')](this,_0x319ed7[_0x0384('0x11a')]);if(!_0x4d64b4){return this[_0x0384('0x3d')][_0x0384('0x31')](_0x319ed7,'no\x20file\x20audio\x20found');}var _0x20f2b6=this[_0x0384('0x3d')][_0x0384('0x5b')]('PLAYBACK',[_0x4d64b4,_0x319ed7[_0x0384('0xed')]]);if(_0x20f2b6[_0x0384('0xa8')]===-0x1){return _0x20f2b6;}return this['channel']['noop'](util[_0x0384('0x2d')](_0x0384('0x170'),_0x0384('0x171'),_0x4d64b4));};AGIVertices[_0x0384('0x12')][_0x0384('0x172')]=function(_0x132c05){logger[_0x0384('0x33')](util['format'](_0x0384('0x173'),_0x132c05[_0x0384('0xad')]));if(!this[_0x0384('0x89')](_0x132c05[_0x0384('0x174')])){return this[_0x0384('0x3d')][_0x0384('0x31')](_0x132c05,_0x0384('0x175'));}var _0x169696='';var _0x1494f0=parseInt(_0x132c05['queue_id'],0xa);if(isNaN(_0x1494f0)){_0x169696=_0x132c05[_0x0384('0x174')];}else{_0x169696=this[_0x0384('0x15')][_0x0384('0xab')](this,_0x132c05[_0x0384('0x174')]);if(!_0x169696){return this['channel'][_0x0384('0x31')](_0x132c05,_0x0384('0x176'));}}var _0x2708a1='';if(this[_0x0384('0x89')](_0x132c05[_0x0384('0x11a')])){var _0x57fb2a=this[_0x0384('0x119')][_0x0384('0xab')](this,_0x132c05[_0x0384('0x11a')]);if(_0x57fb2a){_0x2708a1=_0x57fb2a;}}this[_0x0384('0x3c')][_0x0384('0xab')](this,_0x132c05,_0x169696);if(_0x132c05[_0x0384('0xed')][_0x0384('0x177')]('x')<0x0){_0x132c05[_0x0384('0xed')]+='x';}if(_0x132c05['opts'][_0x0384('0x177')]('X')<0x0){_0x132c05[_0x0384('0xed')]+='X';}this[_0x0384('0x3d')][_0x0384('0xa5')](_0x0384('0x178'),_0x169696?_0x169696['toLowerCase']():'');var _0x1104fc=this[_0x0384('0x3d')][_0x0384('0x5b')](_0x0384('0x179'),[_0x169696,_0x132c05[_0x0384('0xed')],_0x132c05[_0x0384('0x69')],_0x2708a1,_0x132c05[_0x0384('0x6b')],_0x132c05[_0x0384('0x7')],_0x132c05['macro'],_0x132c05['gosub'],'',_0x132c05[_0x0384('0x17a')]]);if(_0x1104fc[_0x0384('0xa8')]===-0x1){return _0x1104fc;}return this[_0x0384('0x3d')][_0x0384('0xaf')](util['format'](_0x0384('0x170'),_0x0384('0x179'),_0x169696));};AGIVertices[_0x0384('0x12')]['record']=function(_0x52e585){logger[_0x0384('0x33')](util[_0x0384('0x2d')](_0x0384('0x17b'),_0x52e585['label']));var _0x4ad1da=_0x52e585['recordingFormat']||_0x0384('0x136');var _0x12e637=util['format'](_0x0384('0x17c'),this[_0x0384('0x3d')][_0x0384('0x3e')],rs[_0x0384('0x123')](0x5));var _0x3af94f=util['format'](_0x0384('0x17d'),FILES_PATH,_0x12e637,_0x4ad1da);var _0x46bd3e=util[_0x0384('0x2d')](_0x0384('0x137'),FILES_PATH,_0x12e637);this[_0x0384('0x41')][_0x0384('0xab')](this,_0x52e585,_0x12e637,_0x3af94f);this['channel'][_0x0384('0xa5')]('RECORDING_SAVENAME',_0x12e637);logger[_0x0384('0x33')](_0x0384('0x17e'),_0x46bd3e,_0x4ad1da,_0x52e585['escape_digits'],_0x52e585[_0x0384('0x6b')]);return this[_0x0384('0x3d')][_0x0384('0x142')](_0x46bd3e,_0x4ad1da,_0x52e585[_0x0384('0x17f')],_0x52e585[_0x0384('0x6b')],undefined,!![]);};AGIVertices[_0x0384('0x12')][_0x0384('0x180')]=function(_0x2187af){logger[_0x0384('0x33')](util['format']('Enter\x20in\x20RESTAPI\x20(%s)\x20block',_0x2187af[_0x0384('0xad')]));if(!this[_0x0384('0x89')](_0x2187af[_0x0384('0x69')])){return this[_0x0384('0x3d')][_0x0384('0xaf')](_0x0384('0x181'));}var _0x4fc351=this[_0x0384('0x68')][_0x0384('0xab')](this,_0x2187af);logger[_0x0384('0x33')](util['format'](_0x0384('0x182'),util[_0x0384('0x183')](_0x4fc351,{'showHidden':![],'depth':null})));if(!this[_0x0384('0x89')](_0x2187af['variable_id'])){return this['channel'][_0x0384('0xaf')](_0x0384('0x184'));}var _0x193980=this[_0x0384('0x13')][_0x0384('0xab')](this,_0x2187af[_0x0384('0xe1')]);if(!_0x193980){return this[_0x0384('0x3d')][_0x0384('0x31')](_0x2187af,_0x0384('0xe2'));}this[_0x0384('0x3d')]['setVariable'](util[_0x0384('0x2d')](_0x0384('0x185'),_0x193980),_0x4fc351[_0x0384('0x186')]?_0x4fc351[_0x0384('0x186')]:'200');this['channel'][_0x0384('0xa5')](util['format'](_0x0384('0x187'),_0x193980),_0x4fc351[_0x0384('0x79')]?_0x4fc351[_0x0384('0x79')]:'OK');if(_0x4fc351[_0x0384('0x6f')]){try{this['saveRestApiResult'](_0x4fc351[_0x0384('0x6f')],_0x193980);}catch(_0x5b47fb){logger[_0x0384('0x31')](util[_0x0384('0x2d')](_0x0384('0x188'),_0x193980));}}return this[_0x0384('0x3d')][_0x0384('0xaf')](util[_0x0384('0x2d')](_0x0384('0x189'),_0x193980));};AGIVertices['prototype'][_0x0384('0x18a')]=function(_0x4dd2a1){logger[_0x0384('0x33')](util[_0x0384('0x2d')](_0x0384('0x18b'),_0x4dd2a1[_0x0384('0xad')]));return this[_0x0384('0x3d')]['sayDigits'](_0x4dd2a1[_0x0384('0x18c')][_0x0384('0x5d')](/\s+/g,''),_0x4dd2a1[_0x0384('0x17f')]);};AGIVertices[_0x0384('0x12')][_0x0384('0x18d')]=function(_0xafbe91){logger['info'](util['format'](_0x0384('0x18e'),_0xafbe91['label']));return this[_0x0384('0x3d')][_0x0384('0x18f')](_0xafbe91['number'][_0x0384('0x5d')](/\s+/g,''),_0xafbe91[_0x0384('0x17f')]);};AGIVertices[_0x0384('0x12')][_0x0384('0x190')]=function(_0x41cf3b){logger[_0x0384('0x33')](util[_0x0384('0x2d')](_0x0384('0x191'),_0x41cf3b[_0x0384('0xad')]));return this[_0x0384('0x3d')][_0x0384('0x192')](_0x41cf3b['text'],_0x41cf3b[_0x0384('0x17f')]);};AGIVertices[_0x0384('0x12')][_0x0384('0x193')]=function(_0x9a4333){logger['info'](util[_0x0384('0x2d')](_0x0384('0x194'),_0x9a4333['label']));if(!this[_0x0384('0x89')](_0x9a4333[_0x0384('0x195')])){return this[_0x0384('0x3d')][_0x0384('0xaf')](_0x0384('0x196'));}var _0x26ac04=this['getMailAccount'][_0x0384('0xab')](this,_0x9a4333[_0x0384('0x195')]);if(!_0x26ac04||!_0x26ac04[_0x0384('0x197')]){return this[_0x0384('0x3d')][_0x0384('0x31')](_0x9a4333,_0x0384('0x198'));}var _0x2f2da3={'from':util[_0x0384('0x2d')](_0x0384('0x199'),_0x26ac04['name'],_0x26ac04['email']||_0x26ac04[_0x0384('0x197')][_0x0384('0x19a')]),'to':_0x9a4333['to']||'','cc':_0x9a4333['cc']||'','bcc':_0x9a4333[_0x0384('0x19b')]||'','subject':_0x9a4333[_0x0384('0x19c')],'html':_0x9a4333[_0x0384('0x60')],'text':_0x9a4333[_0x0384('0x60')]};var _0x1fe3b6={'tls':{'rejectUnauthorized':![]}};if(_0x26ac04[_0x0384('0x197')][_0x0384('0x19d')]){_0x1fe3b6[_0x0384('0x19d')]=_0x26ac04['Smtp'][_0x0384('0x19d')];}else{_0x1fe3b6[_0x0384('0x19e')]=_0x26ac04[_0x0384('0x197')][_0x0384('0x19e')];_0x1fe3b6['port']=_0x26ac04[_0x0384('0x197')][_0x0384('0x19f')];_0x1fe3b6[_0x0384('0x1a0')]=_0x26ac04[_0x0384('0x197')][_0x0384('0x1a0')];}if(_0x26ac04[_0x0384('0x197')][_0x0384('0x1a1')]){_0x1fe3b6[_0x0384('0x1a2')]={'user':_0x26ac04[_0x0384('0x197')]['user'],'pass':_0x26ac04['Smtp'][_0x0384('0x1a3')]};}if(this[_0x0384('0x89')](_0x9a4333[_0x0384('0x1a4')])){}logger[_0x0384('0x1a5')](_0x0384('0x1a6'),JSON[_0x0384('0x77')](_0x2f2da3));this['createSquareDetailsReport'][_0x0384('0xab')](this,_0x9a4333,_0x9a4333[_0x0384('0x195')]);this[_0x0384('0x3d')][_0x0384('0xaf')](util['format'](_0x0384('0x1a7'),_0x26ac04[_0x0384('0x20')]));this[_0x0384('0x26')][_0x0384('0xab')](this,_0x1fe3b6,_0x2f2da3);return this[_0x0384('0x3d')][_0x0384('0xaf')](_0x0384('0x1a8'));};AGIVertices[_0x0384('0x12')][_0x0384('0x1a9')]=function(_0x279377){logger[_0x0384('0x33')](util[_0x0384('0x2d')](_0x0384('0x1aa'),_0x279377['label']));return this['channel'][_0x0384('0xaf')](_0x0384('0x1ab'));};AGIVertices[_0x0384('0x12')][_0x0384('0x1ac')]=function(_0x3ce6cf){logger['info'](util[_0x0384('0x2d')](_0x0384('0x1ad'),_0x3ce6cf['label']));if(!this['isConfigured'](_0x3ce6cf[_0x0384('0x1ae')])){return this[_0x0384('0x3d')][_0x0384('0xaf')](_0x0384('0x1af'));}var _0x20623e=this['getSmsAccount'][_0x0384('0xab')](this,_0x3ce6cf['sms_account_id']);if(!_0x20623e){return this[_0x0384('0x3d')][_0x0384('0x31')](_0x3ce6cf,_0x0384('0x1b0'));}var _0x3bb8b0={'body':_0x3ce6cf['sms_text'],'phone':_0x3ce6cf['to']||'','SmsAccountId':_0x20623e['id']};logger[_0x0384('0x1a5')](_0x0384('0x1b1'),JSON[_0x0384('0x77')](_0x3bb8b0));this['createSquareDetailsReport'][_0x0384('0xab')](this,_0x3ce6cf,_0x3ce6cf['sms_account_id']);this[_0x0384('0x3d')][_0x0384('0xaf')](util['format'](_0x0384('0x1b2'),_0x20623e[_0x0384('0x20')]));this[_0x0384('0x1b3')][_0x0384('0xab')](this,_0x3bb8b0);return this[_0x0384('0x3d')][_0x0384('0xaf')](_0x0384('0x1b4'));};AGIVertices[_0x0384('0x12')][_0x0384('0x1b5')]=function(_0x425c96){logger[_0x0384('0x33')](util[_0x0384('0x2d')](_0x0384('0x1b6'),_0x425c96['label']));if(!this[_0x0384('0x89')](_0x425c96[_0x0384('0xe1')])){return this[_0x0384('0x3d')]['error'](_0x425c96,_0x0384('0x1b7'));}var _0x5c1043=this['getVariable'][_0x0384('0xab')](this,_0x425c96[_0x0384('0xe1')]);if(!_0x5c1043){return this[_0x0384('0x3d')]['error'](_0x425c96,_0x0384('0xe2'));}return this['channel'][_0x0384('0xa5')](_0x5c1043,_0x425c96[_0x0384('0x1b8')]);};AGIVertices[_0x0384('0x12')][_0x0384('0x1b9')]=function(_0x166790){logger[_0x0384('0x33')](util['format'](_0x0384('0x1ba'),_0x166790[_0x0384('0xad')]));this['channel'][_0x0384('0xaf')]('START\x20CALLY\x20SQUARE');if(_0x166790[_0x0384('0xbe')]===_0x0384('0x1bb')){this[_0x0384('0x3d')][_0x0384('0xaf')]('Answer');return this[_0x0384('0x3d')]['answer']();}return this[_0x0384('0x3d')][_0x0384('0xaf')](_0x0384('0x1bc'));};AGIVertices[_0x0384('0x12')][_0x0384('0x1bd')]=function(_0x3bcff9){logger['info'](util[_0x0384('0x2d')](_0x0384('0x1be'),_0x3bcff9[_0x0384('0xad')]));if(!this[_0x0384('0x89')](_0x3bcff9[_0x0384('0x1bf')])){return this['channel']['error'](_0x3bcff9,_0x0384('0x1c0'));}var _0x299b19=this[_0x0384('0x18')][_0x0384('0xab')](this,_0x3bcff9['project_id']);if(!this['isConfigured'](_0x299b19)){return this[_0x0384('0x3d')][_0x0384('0x31')](_0x3bcff9,util[_0x0384('0x2d')](_0x0384('0x1c1'),_0x3bcff9[_0x0384('0x1bf')]));}if(_0x299b19===this[_0x0384('0x3d')]['arg_1']){return this[_0x0384('0x3d')][_0x0384('0x31')](_0x3bcff9,_0x0384('0x1c2'));}this['createSquareDetailsReport']['sync'](this,_0x3bcff9,_0x299b19);var _0x3fad30=this[_0x0384('0x3d')][_0x0384('0x5b')](_0x0384('0x1c3'),util[_0x0384('0x2d')](_0x0384('0x1c4'),config[_0x0384('0x7')][_0x0384('0x19e')]||_0x0384('0x1c5'),_0x299b19,this[_0x0384('0x3d')]['arg_1']));if(_0x3fad30[_0x0384('0xa8')]===-0x1){return _0x3fad30;}return this[_0x0384('0x3d')]['noop'](util[_0x0384('0x2d')](_0x0384('0x170'),_0x0384('0x1c3'),_0x299b19));};AGIVertices['prototype'][_0x0384('0x1c6')]=function(_0x20ff18){logger[_0x0384('0x33')](util['format'](_0x0384('0x1c7'),_0x20ff18[_0x0384('0xad')]));var _0x1eaa7b=this['shellCommand'][_0x0384('0xab')](this,_0x20ff18[_0x0384('0x1c8')]);this[_0x0384('0x3c')][_0x0384('0xab')](this,_0x20ff18,_0x20ff18[_0x0384('0x1c8')]);if(this[_0x0384('0x89')](_0x20ff18['variable_id'])){var _0x2cb12b=this[_0x0384('0x13')][_0x0384('0xab')](this,_0x20ff18[_0x0384('0xe1')]);if(_0x2cb12b){this[_0x0384('0x3d')][_0x0384('0xa5')](_0x2cb12b,_0x1eaa7b);return this['channel'][_0x0384('0xaf')](util['format']('sh\x20command:\x20%s\x20result\x20on\x20variable:\x20%s',_0x20ff18[_0x0384('0x1c8')],_0x2cb12b));}}return this[_0x0384('0x3d')][_0x0384('0xaf')](util[_0x0384('0x2d')](_0x0384('0x1c9'),_0x20ff18[_0x0384('0x1c8')]));};AGIVertices[_0x0384('0x12')][_0x0384('0x1ca')]=function(_0xa3365e){logger[_0x0384('0x33')](util[_0x0384('0x2d')](_0x0384('0x1cb'),_0xa3365e[_0x0384('0xad')]));_0xa3365e[_0x0384('0x60')]=_0xa3365e[_0x0384('0x60')]['replace'](/(\r\n|\n|\r)/gm,'\x20');if(!this['isConfigured'](_0xa3365e[_0x0384('0x5f')])){return this[_0x0384('0x3d')][_0x0384('0xaf')](_0x0384('0x1cc'));}if(!this[_0x0384('0x89')](_0xa3365e[_0x0384('0x60')])){return this[_0x0384('0x3d')]['noop'](_0x0384('0xae'));}this[_0x0384('0x3d')][_0x0384('0xaf')](util[_0x0384('0x2d')](_0x0384('0x1cd'),_0xa3365e[_0x0384('0x60')]));var _0x4f7b70=this['googleCloudTTS'][_0x0384('0xab')](this,_0xa3365e);if(_0x4f7b70){this[_0x0384('0x3d')]['noop'](util[_0x0384('0x2d')](_0x0384('0x1ce'),_0x4f7b70));var _0x3cb1b6=this['channel'][_0x0384('0x12b')](_0x4f7b70);try{fs[_0x0384('0x10c')](_0x4f7b70+'.wav');}catch(_0x223331){logger['error'](_0x223331);}return _0x3cb1b6;}return this['channel'][_0x0384('0x31')](_0xa3365e,'Google\x20Cloud\x20TTS\x20is\x20unreachable');};AGIVertices[_0x0384('0x12')][_0x0384('0x1cf')]=function(_0x435bf5){logger[_0x0384('0x33')](util[_0x0384('0x2d')](_0x0384('0x1d0'),_0x435bf5[_0x0384('0xad')]));_0x435bf5[_0x0384('0x60')]=_0x435bf5[_0x0384('0x60')][_0x0384('0x5d')](/(\r\n|\n|\r)/gm,'\x20');if(!this['isConfigured'](_0x435bf5[_0x0384('0x60')])){return this['channel'][_0x0384('0xaf')](_0x0384('0xae'));}this[_0x0384('0x3d')]['noop'](util[_0x0384('0x2d')](_0x0384('0x1d1'),_0x435bf5[_0x0384('0x60')]));var _0x2d54f4=this[_0x0384('0x66')][_0x0384('0xab')](this,_0x435bf5);if(_0x2d54f4){this['channel'][_0x0384('0xaf')](util[_0x0384('0x2d')]('Google\x20TTS\x20%s\x20file\x20created',_0x2d54f4));var _0x5546ca=this['channel']['streamFile'](_0x2d54f4);try{fs[_0x0384('0x10c')](_0x2d54f4+'.wav');}catch(_0x4acaa6){logger['error'](_0x4acaa6);}return _0x5546ca;}return this['channel'][_0x0384('0x31')](_0x435bf5,_0x0384('0x1d2'));};AGIVertices[_0x0384('0x12')][_0x0384('0x1d3')]=function(_0x1cb1de){logger[_0x0384('0x33')](util['format']('Enter\x20in\x20UNPAUSE\x20(%s)\x20block',_0x1cb1de[_0x0384('0xad')]));if(!this[_0x0384('0x89')](_0x1cb1de[_0x0384('0x15a')])){return this[_0x0384('0x3d')][_0x0384('0x31')](_0x1cb1de,'no\x20find\x20by\x20configured');}logger['info'](util[_0x0384('0x2d')](_0x0384('0x15c'),this['channel'][_0x0384('0x40')],_0x1cb1de['findBy']));var _0x37825a=this[_0x0384('0x56')][_0x0384('0xab')](this,_0x1cb1de[_0x0384('0x15a')]);if(_0x37825a){logger[_0x0384('0x33')](util[_0x0384('0x2d')](_0x0384('0x15d'),this[_0x0384('0x3d')][_0x0384('0x40')],_0x1cb1de[_0x0384('0x15a')]));this[_0x0384('0x3d')][_0x0384('0xaf')](util['format']('AGENT\x20%s\x20FOUND\x20BY',this[_0x0384('0x3d')][_0x0384('0x40')],_0x1cb1de['findBy']));return{'code':0xc8,'result':_0x0384('0x15e')};}else{logger[_0x0384('0x33')](util['format'](_0x0384('0x15f'),this[_0x0384('0x3d')][_0x0384('0x40')],_0x1cb1de['findBy']));this['channel'][_0x0384('0xaf')](util[_0x0384('0x2d')](_0x0384('0x15f'),this[_0x0384('0x3d')]['callerid'],_0x1cb1de[_0x0384('0x15a')]));return{'code':0xc8,'result':_0x0384('0x160')};}};AGIVertices[_0x0384('0x12')][_0x0384('0x1d4')]=function(_0xe9fdbe){logger['info'](util[_0x0384('0x2d')](_0x0384('0x1d5'),_0xe9fdbe[_0x0384('0xad')]));var _0x4e2c56=this['channel']['exec'](_0x0384('0x1d6'),[_0xe9fdbe['mailbox'],_0xe9fdbe[_0x0384('0x7c')]]);if(_0x4e2c56[_0x0384('0xa8')]===-0x1){return _0x4e2c56;}return this[_0x0384('0x3d')][_0x0384('0xaf')](util[_0x0384('0x2d')](_0x0384('0x170'),_0x0384('0x1d6'),_0xe9fdbe[_0x0384('0x1d7')]));};AGIVertices[_0x0384('0x12')][_0x0384('0x1d8')]=function(_0x1f5005){logger[_0x0384('0x33')](util['format'](_0x0384('0x1d9'),_0x1f5005[_0x0384('0xad')]));if(!this['isConfigured'](_0x1f5005[_0x0384('0xe1')])){return this[_0x0384('0x3d')][_0x0384('0x31')](_0x1f5005,_0x0384('0x1b7'));}var _0x4e63cb=this[_0x0384('0x13')][_0x0384('0xab')](this,_0x1f5005['variable_id']);if(!_0x4e63cb){return this[_0x0384('0x3d')]['error'](_0x1f5005,_0x0384('0xe2'));}var _0x30360e=this[_0x0384('0x3d')][_0x0384('0x13')](_0x4e63cb);return{'code':0xc8,'result':_0x30360e[_0x0384('0xa9')]?_0x30360e[_0x0384('0xa9')]:'-'};};String['prototype'][_0x0384('0xa7')]=function(_0x3c9dac,_0x1980ba){return this[_0x0384('0xa6')](_0x3c9dac)[_0x0384('0x1da')](_0x1980ba);};module['exports']=AGIVertices;
\ No newline at end of file
+var _0x81b7=['SENDFAX\x20block\x20not\x20implemented','sendSMS','Enter\x20in\x20SENDSMS\x20(%s)\x20block','sms_account_id','no\x20sms\x20account\x20configured','sms_text','sendSMS\x20message','Sms\x20message\x20added\x20to\x20outgoing\x20process','set','no\x20variable\x20selected','variable_value','Enter\x20in\x20START\x20(%s)\x20block','yes','Skipped\x20Answer','project_id','no\x20subproject\x20selected','no\x20subproject\x20found\x20with\x20id\x20%d','project\x20in\x20subproject\x20must\x20be\x20different\x20from\x20the\x20called\x20project','AGI','agi://%s/square,\x22%s\x22,\x22%s\x22','127.0.0.1','system','Enter\x20in\x20SYSTEM\x20(%s)\x20block','shellCommand','sh\x20command:\x20%s\x20result\x20on\x20variable:\x20%s','sh\x20command:\x20%s\x20result\x20no\x20stored','Enter\x20in\x20Google\x20Cloud\x20TTS\x20(%s)\x20block','no\x20apiKey\x20configured','Trying\x20Google\x20Cloud\x20TTS\x20%s','Google\x20Cloud\x20TTS\x20is\x20unreachable','tts','Enter\x20in\x20GOOGLETTS\x20(%s)\x20block','Trying\x20Google\x20TTS\x20%s','Google\x20TTS\x20is\x20unreachable','Enter\x20in\x20UNPAUSE\x20(%s)\x20block','voicemail','Enter\x20in\x20VOICEMAIL\x20(%s)\x20block','VOICEMAIL','mailbox','Enter\x20in\x20SWITCH\x20(%s)\x20block','replaceAll','join','exports','util','lodash','shelljs','odbc','moment','request-promise','../../config/logger','agi','../../config/environment','/var/opt/motion2/server/files','rawHeaders','getdigits','getsecretdigits','channel','rpc','getVariable','getVariableById','catch','prototype','getVoiceQueue','getVoiceQueueById','then','getSquareProject','name','getSquareOdbcById','dsn','getUser','getUserById','getTrunk','getTrunkById','getSound','getSoundById','getSoundPath','save_name','getMailAccount','sendMailMessage','getIntervals','getIntervalById','IntervalId','map','Intervals','interval','format','%s/sounds/converted/%s','getQueryOdbc','open','error','ODBC\x20connection\x20successfully','query','info','Query\x20executed\x20correctly\x20%s','close','getSmsAccount','getSmsAccountById','createSmsMessage','createSquareDetailsReport','uniqueid','label','agicommand','arg_1','callerid','createSquareRecording','calleridname','context','extension','dnid','file','createSquareMessage','createCmContact','isEmpty','callback_','random','isNil','lastName','list_id','scheduledAt','toString','getPause','getPauseById','agentPause','agent','agentUnpause','agentLogout','agentLogin','internal','%s/%s@from-sip/n','LOCAL','exec','replace','googleCloudTTS','google_cloud_tts_text_type','text','languageCode','en-US','ssmlGender','MALE','audioEncoding','MP3','googleTTS','google_tts_language','restAPI','timeout','number','includes','POST','PUT','method','toUpperCase','body','rawBody','parse','An\x20incorrect\x20formatted\x20json\x20body\x20has\x20been\x20passed\x20to\x20the\x20function','An\x20incorrect\x20formatted\x20json\x20headers\x20has\x20been\x20passed\x20to\x20the\x20function','computedVariables','uri','render','url','headers','stringify','An\x20incorrect\x20formatted\x20json\x20has\x20been\x20passed\x20to\x20the\x20function','statusCode','statusMessage','message','options','googleDialogflow','key','googleDialogflowV2','dialogflowV2_project_id','private_key','dialogflowV2_language','sestekNDA','ispeechTTS','ispeech_tts_language','ispeechASR','ispeech_asr_language','awsPolly','aws_access_key_id','aws_secret_access_key','aws_polly_region','aws_polly_voice','awsLex','aws_lex_region','aws_bot_name','googleASR','google_asr_language','tildeASR','appid','appsecret','clear','hasOwnProperty','recursiveNodeIndex','isPlainObject','length','replaceAllVariables','saveRestApiResult','isArray','%s.%s','setVariable','replaceObjectAllVariables','split','The\x20\x22%s\x22\x20variable\x20value\x20is:\x20%s','extra','isConfigured','maxRetry','Enter\x20in\x20MRCPSynth\x20(%s)\x20block','noop','MRCPSynth','Executed\x20command\x20MRCPSynth\x20%s','mrcprecog','grammar','no\x20grammar\x20configured','MRCPRecog','result','getAndSetVariable','RECOG_CONFIDENCE()','MRCP_RECOG_CONFIDENCE','RECOG_INPUT()','MRCP_RECOG_TRANSCRIPT','RECOG_INSTANCE()','MRCP_RECOG_INSTANCE','Enter\x20in\x20AGI\x20(%s)\x20block','command','args','answer','Enter\x20in\x20ANSWER\x20(%s)\x20block','callback','Enter\x20in\x20CALLBACK\x20(%s)\x20block','delay','add','minutes','callback_priority','sync','CALLBACK\x20added\x20phone:\x20%s\x20on\x20list:\x20%s\x20at\x20%s','custom_app','application','Executed\x20command\x20%s\x20%s','no\x20text\x20configured','sestektts','Enter\x20in\x20SESTEKTTS\x20(%s)\x20block','lumenvoxasr','Enter\x20in\x20LUMENVOXASR\x20(%s)\x20block','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','Enter\x20in\x20DATABASE\x20(%s)\x20block','odbc_id','getSquareOdbc','no\x20query\x20configured','query:\x20%s','variable_id','no\x20variable\x20found','forEach','keys','variable\x20%s\x20set','debug','sip_id','no\x20user\x20selected','no\x20user\x20found','DIAL','SIP/%s','opts','dialogflow','Enter\x20in\x20DIALOGFLOW\x20(%s)\x20block','no\x20key\x20configured','bot','DIALOGFLOW_%s','Dialogflow\x20Result\x20%s','speech','Dialogflow\x20is\x20unreachable','dialogflowV2','no\x20client_email\x20configured','no\x20private_key\x20configured','no\x20anguage\x20configured','Trying\x20DialogflowV2:\x20%s','providerResponse','out','DialogflowV2\x20is\x20unreachable','sesteknda','Enter\x20in\x20SESTEKNDA\x20(%s)\x20block','username','ndassistant_url','SESTEK_NDA_%s','Sestek\x20NDA\x20%s\x20file\x20created','audiofile','streamFile','.wav','SestekNDA\x20Result\x20%s','SestekNDA\x20is\x20unreachable','end','ext_dial','Enter\x20in\x20EXTERNAL\x20DIAL\x20(%s)\x20block','trunk_id','no\x20trunk\x20selected','no\x20trunk\x20found','trunk_name','SIP/%s/%s','Executed\x20command\x20%s','finally','Enter\x20in\x20FINALLY\x20(%s)\x20block','Enter\x20in\x20GETDIGITS\x20(%s)\x20block','file_id','no\x20file\x20audio\x20selected','no\x20file\x20audio\x20found','no\x20variable\x20selected\x20for\x20the\x20result','response','maxdigit','mindigit','hiddendigitsnum','generate','hiddendigitspos','first','substr','Enter\x20in\x20GETSECRETDIGITS\x20(%s)\x20block','goal','Enter\x20in\x20GOAL\x20(%s)\x20block','goalname','GOAL\x20%s','awspolly','[AGI]\x20Enter\x20in\x20AWSPOLLY\x20(%s)\x20block','no\x20valid\x20credentials\x20configured','Trying\x20aws\x20Polly\x20%s','unlink','aws\x20Polly\x20is\x20unreachable','Enter\x20in\x20Amazon\x20Lex\x20(%s)\x20block','no\x20bot\x20name\x20configured','Trying\x20Amazon\x20Lex:\x20%s','isString','Amazon\x20Lex\x20ready\x20for\x20fulfillment','Amazon\x20Lex\x20is\x20unreachable','googleasr','wav','%s/recordings/%s','beep','NOBEEP','recordFile','google\x20%s\x20file\x20created','GoogleASR\x20Result\x20%s','tildeasr','Enter\x20in\x20TILDEASR\x20(%s)\x20block','no\x20appid\x20configured','no\x20appsecret\x20configured','intKey','tilde\x20%s\x20file\x20created','TILDE_ASR_%s','gotoc','Enter\x20in\x20GOTO\x20(%s)\x20block','continueAt','priority','Enter\x20in\x20GOTOIF\x20(%s)\x20block','condition','true','EVAL\x20CONDITION\x20%s\x20%s','false','gotoiftime','Enter\x20in\x20GOTOIFTIME\x20(%s)\x20block','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','ISPEECH_ASR_%s','IspeechASR\x20Result\x20%s','Trying\x20ispeech\x20TTS\x20%s','ispeech\x20%s\x20file\x20created','ispeech\x20TTS\x20is\x20unreachable','login','Enter\x20in\x20LOGIN\x20(%s)\x20block','no\x20find\x20by\x20configured','FIND\x20AGENT\x20%s\x20BY\x20%s','findBy','AGENT\x20%s\x20FOUND\x20BY','success','AGENT\x20%s\x20NOT\x20FOUND\x20BY','failure','Enter\x20in\x20LOGOUT\x20(%s)\x20block','math','Enter\x20in\x20MATH\x20(%s)\x20block','operation','no\x20operation\x20configured','math\x20%s','%s[%s]','menu','retry','getData','digit','Enter\x20in\x20NOOP\x20(%s)\x20block','output','Enter\x20in\x20PAUSE\x20(%s)\x20block','playback','Enter\x20in\x20PLAYBACK\x20(%s)\x20block','PLAYBACK','queue','Enter\x20in\x20QUEUE\x20(%s)\x20block','queue_id','no\x20queue\x20selected','no\x20queue\x20found','indexOf','toLowerCase','QUEUE','macro','record','Enter\x20in\x20RECORD\x20(%s)\x20block','recordingFormat','%s_%s','%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:','inspect','no\x20variable\x20selected\x20for\x20the\x20response','%s_STATUS_CODE','200','%s_STATUS_MESSAGE','saydigits','Enter\x20in\x20SAYDIGITS\x20(%s)\x20block','digits','saynumber','Enter\x20in\x20SAYNUMBER\x20(%s)\x20block','sayNumber','sayphonetic','Enter\x20in\x20SAYPHONETIC\x20(%s)\x20block','sayPhonetic','Enter\x20in\x20SENDMAIL\x20(%s)\x20block','account_id','no\x20mail\x20account\x20configured','Smtp','\x22%s\x22\x20<%s>','email','subject','service','host','port','secure','authentication','auth','user','pass','sendMail\x20message','Mail\x20message\x20added\x20to\x20outgoing\x20process'];(function(_0x13baf8,_0x3c906a){var _0x5545d1=function(_0xa738e4){while(--_0xa738e4){_0x13baf8['push'](_0x13baf8['shift']());}};_0x5545d1(++_0x3c906a);}(_0x81b7,0x1f2));var _0x781b=function(_0x7448e2,_0x22a00a){_0x7448e2=_0x7448e2-0x0;var _0x5c25d4=_0x81b7[_0x7448e2];return _0x5c25d4;};'use strict';var fs=require('fs');var path=require('path');var util=require(_0x781b('0x0'));var _=require(_0x781b('0x1'));var sh=require(_0x781b('0x2'));var odbc=require(_0x781b('0x3'))();var rs=require('randomstring');var moment=require(_0x781b('0x4'));var Mustache=require('mustache');var rp=require(_0x781b('0x5'));var logger=require(_0x781b('0x6'))(_0x781b('0x7'));var config=require(_0x781b('0x8'));var scripts=require('./scripts');var FILES_PATH=_0x781b('0x9');var recursiveMapAttributes=[_0x781b('0xa'),'rawBody'];var verticesWithRetry=['menu',_0x781b('0xb'),_0x781b('0xc')];var AGIVertices=function(_0x1fa67d,_0x3703fc,_0x5591d9){this[_0x781b('0xd')]=_0x1fa67d;this[_0x781b('0xe')]=_0x3703fc;this['mailRpc']=_0x5591d9;};AGIVertices['prototype'][_0x781b('0xf')]=function(_0x4f3356,_0xec93b1){this['rpc'][_0x781b('0x10')](_0x4f3356)['then'](function(_0x1ea812){_0xec93b1(null,_0x1ea812?_0x1ea812['name']:![]);})[_0x781b('0x11')](function(_0x17242f){_0xec93b1(_0x17242f);});};AGIVertices[_0x781b('0x12')][_0x781b('0x13')]=function(_0x1dbd64,_0x52bbe4){this[_0x781b('0xe')][_0x781b('0x14')](_0x1dbd64)[_0x781b('0x15')](function(_0x2315df){_0x52bbe4(null,_0x2315df?_0x2315df['name']:![]);})[_0x781b('0x11')](function(_0x533377){_0x52bbe4(_0x533377);});};AGIVertices[_0x781b('0x12')][_0x781b('0x16')]=function(_0x1d0282,_0x4ac48a){this[_0x781b('0xe')]['getSquareProjectById'](_0x1d0282)['then'](function(_0x2c62e5){_0x4ac48a(null,_0x2c62e5?_0x2c62e5[_0x781b('0x17')]:![]);})[_0x781b('0x11')](function(_0x20585e){_0x4ac48a(_0x20585e);});};AGIVertices[_0x781b('0x12')]['getSquareOdbc']=function(_0x58b961,_0x5e3a5c){this[_0x781b('0xe')][_0x781b('0x18')](_0x58b961)[_0x781b('0x15')](function(_0x23c239){_0x5e3a5c(null,_0x23c239?_0x23c239[_0x781b('0x19')]:![]);})[_0x781b('0x11')](function(_0x5b659b){_0x5e3a5c(_0x5b659b);});};AGIVertices[_0x781b('0x12')][_0x781b('0x1a')]=function(_0xce8565,_0x4ab3c4){this[_0x781b('0xe')][_0x781b('0x1b')](_0xce8565)[_0x781b('0x15')](function(_0x882cff){_0x4ab3c4(null,_0x882cff?_0x882cff['name']:![]);})[_0x781b('0x11')](function(_0x359f72){_0x4ab3c4(_0x359f72);});};AGIVertices[_0x781b('0x12')][_0x781b('0x1c')]=function(_0x3aba86,_0x4c5bfd){this[_0x781b('0xe')][_0x781b('0x1d')](_0x3aba86)[_0x781b('0x15')](function(_0x22cdc0){_0x4c5bfd(null,_0x22cdc0?_0x22cdc0[_0x781b('0x17')]:![]);})[_0x781b('0x11')](function(_0x48624d){_0x4c5bfd(_0x48624d);});};AGIVertices['prototype'][_0x781b('0x1e')]=function(_0x2f27a9,_0x560449){var _0x124339=this;this[_0x781b('0xe')][_0x781b('0x1f')](_0x2f27a9)[_0x781b('0x15')](function(_0xbde04f){_0x560449(null,_0xbde04f?_0x124339[_0x781b('0x20')](_0xbde04f[_0x781b('0x21')]):![]);})[_0x781b('0x11')](function(_0x416c75){_0x560449(_0x416c75);});};AGIVertices[_0x781b('0x12')][_0x781b('0x22')]=function(_0x5c81fa,_0x27488a){this[_0x781b('0xe')]['getMailAccountById'](_0x5c81fa)['then'](function(_0xdfe3d4){_0x27488a(null,_0xdfe3d4?_0xdfe3d4:![]);})[_0x781b('0x11')](function(_0x14efad){_0x27488a(_0x14efad);});};AGIVertices[_0x781b('0x12')][_0x781b('0x23')]=function(_0x304f16,_0x25d546,_0x2a1494){this['mailRpc'][_0x781b('0x23')](_0x304f16,_0x25d546)['then'](function(){_0x2a1494(null);})[_0x781b('0x11')](function(_0x557d7e){_0x2a1494(_0x557d7e);});};AGIVertices[_0x781b('0x12')][_0x781b('0x24')]=function(_0x4be2af,_0x134761){this[_0x781b('0xe')][_0x781b('0x25')](_0x4be2af)[_0x781b('0x15')](function(_0x1ff492){if(_0x1ff492){if(_0x1ff492[_0x781b('0x26')]){_0x134761(null,[_0x1ff492['interval']]);}else{_0x134761(null,_[_0x781b('0x27')](_0x1ff492[_0x781b('0x28')],_0x781b('0x29')));}}else{_0x134761(null,![]);}})[_0x781b('0x11')](function(_0x39b178){_0x134761(_0x39b178);});};AGIVertices[_0x781b('0x12')][_0x781b('0x20')]=function(_0x1ad7d2){return util[_0x781b('0x2a')](_0x781b('0x2b'),FILES_PATH,_0x1ad7d2);};AGIVertices[_0x781b('0x12')][_0x781b('0x2c')]=function(_0x54da70,_0xb56ca0,_0x43b0d9){odbc[_0x781b('0x2d')](_0x54da70,function(_0x558ca3){if(_0x558ca3){logger[_0x781b('0x2e')]('Error\x20getting\x20ODBC\x20connection\x20%s',_0x558ca3);_0x43b0d9(_0x558ca3);}else{logger['info'](_0x781b('0x2f'));odbc[_0x781b('0x30')](_0xb56ca0,function(_0x19f55f,_0x4e8069){if(_0x19f55f){logger[_0x781b('0x31')]('Error\x20executing\x20query\x20%s',_0xb56ca0);_0x43b0d9(_0x19f55f);}else{logger[_0x781b('0x31')](_0x781b('0x32'),_0xb56ca0);odbc[_0x781b('0x33')](function(_0x170c1d){if(_0x170c1d){logger[_0x781b('0x2e')]('Error\x20closing\x20connection\x20to\x20odbc\x20%s',_0x170c1d);}_0x43b0d9(null,_0x4e8069);});}});}});};AGIVertices['prototype'][_0x781b('0x34')]=function(_0x5031ce,_0x104b4c){this['rpc'][_0x781b('0x35')](_0x5031ce)['then'](function(_0x150e52){_0x104b4c(null,_0x150e52?_0x150e52:![]);})[_0x781b('0x11')](function(_0x1ce947){_0x104b4c(_0x1ce947);});};AGIVertices[_0x781b('0x12')][_0x781b('0x36')]=function(_0x413f05,_0x5dfed3){this[_0x781b('0xe')][_0x781b('0x36')](_0x413f05)[_0x781b('0x15')](function(_0x555cb9){_0x5dfed3(null,_0x555cb9);})[_0x781b('0x11')](function(_0xb3081b){_0x5dfed3(_0xb3081b);});};AGIVertices['prototype']['createSquareDetailsReport']=function(_0x16f520,_0x566313,_0x5ad663){this['rpc'][_0x781b('0x37')]({'uniqueid':this[_0x781b('0xd')][_0x781b('0x38')],'node':_0x16f520[_0x781b('0x39')],'application':_0x16f520[_0x781b('0x3a')],'data':_0x566313||null,'project_name':this[_0x781b('0xd')][_0x781b('0x3b')],'callerid':this['channel'][_0x781b('0x3c')]})['then'](function(_0x16d4b1){if(_0x5ad663){_0x5ad663(null,_0x16d4b1);}})['catch'](function(_0x1198c2){if(_0x5ad663){_0x5ad663(_0x1198c2);}});};AGIVertices['prototype'][_0x781b('0x3d')]=function(_0x340f80,_0x2fa7d9,_0x37b206,_0x284fe2){this[_0x781b('0xe')][_0x781b('0x3d')]({'uniqueid':this[_0x781b('0xd')][_0x781b('0x38')],'callerid':this[_0x781b('0xd')][_0x781b('0x3c')],'calleridname':this['channel'][_0x781b('0x3e')],'context':this[_0x781b('0xd')][_0x781b('0x3f')],'extension':this[_0x781b('0xd')][_0x781b('0x40')],'priority':this[_0x781b('0xd')]['priority'],'accountcode':this['channel']['accountcode'],'dnid':this['channel'][_0x781b('0x41')],'projectName':this[_0x781b('0xd')][_0x781b('0x3b')],'saveName':_0x2fa7d9,'filename':_0x340f80[_0x781b('0x42')]||_0x2fa7d9,'savePath':_0x37b206})['then'](function(_0x3844c5){_0x284fe2(null,_0x3844c5);})[_0x781b('0x11')](function(_0x19a98a){_0x284fe2(_0x19a98a);});};AGIVertices['prototype'][_0x781b('0x43')]=function(_0x4d1350,_0x15f104,_0x459038,_0x1eb1b3,_0x428dca){this[_0x781b('0xe')][_0x781b('0x43')]({'uniqueid':this[_0x781b('0xd')][_0x781b('0x38')],'body':_0x4d1350,'direction':_0x15f104,'providerName':_0x459038,'providerResponse':_0x1eb1b3})[_0x781b('0x15')](function(_0xeaa308){if(_0x428dca){_0x428dca(null,_0xeaa308);}})[_0x781b('0x11')](function(_0x4a78a9){if(_0x428dca){_0x428dca(_0x4a78a9);}});};AGIVertices['prototype']['createCmContact']=function(_0x39e5c4,_0x4e0af3){this[_0x781b('0xe')][_0x781b('0x44')]({'firstName':_[_0x781b('0x45')](_0x39e5c4['name'])||_['isNil'](_0x39e5c4[_0x781b('0x17')])?_0x781b('0x46')+Math[_0x781b('0x47')]():_0x39e5c4[_0x781b('0x17')],'lastName':_[_0x781b('0x45')](_0x39e5c4['lastName'])||_[_0x781b('0x48')](_0x39e5c4[_0x781b('0x49')])?null:_0x39e5c4[_0x781b('0x49')],'phone':_0x39e5c4['phone'],'ListId':_0x39e5c4[_0x781b('0x4a')],'scheduledat':_0x39e5c4[_0x781b('0x4b')],'callbackUniqueid':this[_0x781b('0xd')][_0x781b('0x38')],'tags':'callback','description':'Callback\x20scheduled\x20at\x20'+_0x39e5c4[_0x781b('0x4b')][_0x781b('0x4c')](),'priority':_0x39e5c4['callback_priority']})[_0x781b('0x15')](function(_0x39eb5a){_0x4e0af3(null,_0x39eb5a);})[_0x781b('0x11')](function(_0x45c24a){_0x4e0af3(_0x45c24a);});};AGIVertices[_0x781b('0x12')][_0x781b('0x4d')]=function(_0x4b701e,_0x215bc4){this[_0x781b('0xe')][_0x781b('0x4e')](_0x4b701e)['then'](function(_0xc82a63){_0x215bc4(null,_0xc82a63?_0xc82a63[_0x781b('0x17')]:![]);})['catch'](function(_0x338c9b){_0x215bc4(_0x338c9b);});};AGIVertices['prototype'][_0x781b('0x4f')]=function(_0x32b1d4,_0x49bf10,_0x4ab5b9){var _0x42198b={'role':_0x781b('0x50')};_0x42198b[_0x32b1d4]=this[_0x781b('0xd')][_0x781b('0x3c')];this['rpc']['agentPause'](_0x42198b,_0x49bf10,this['channel']['uniqueid'])[_0x781b('0x15')](function(_0x3e092f){_0x4ab5b9(null,_['isNil'](_0x3e092f)?![]:!![]);})[_0x781b('0x11')](function(_0x13f86b){logger['error'](_0x13f86b);_0x4ab5b9(null,![]);});};AGIVertices[_0x781b('0x12')][_0x781b('0x51')]=function(_0x5eabc7,_0x2c4ae7){var _0x5d2ade={'role':_0x781b('0x50')};_0x5d2ade[_0x5eabc7]=this['channel']['callerid'];this[_0x781b('0xe')][_0x781b('0x51')](_0x5d2ade)['then'](function(_0x454193){_0x2c4ae7(null,_['isNil'](_0x454193)?![]:!![]);})[_0x781b('0x11')](function(_0xd4a335){logger['error'](_0xd4a335);_0x2c4ae7(null,![]);});};AGIVertices[_0x781b('0x12')][_0x781b('0x52')]=function(_0x1fd780,_0x3a2b69){var _0x5c9dec={'role':_0x781b('0x50')};_0x5c9dec[_0x1fd780]=this['channel'][_0x781b('0x3c')];this[_0x781b('0xe')][_0x781b('0x52')](_0x5c9dec)[_0x781b('0x15')](function(_0x3baf07){_0x3a2b69(null,_['isNil'](_0x3baf07)?![]:!![]);})[_0x781b('0x11')](function(_0x1d1f81){logger[_0x781b('0x2e')](_0x1d1f81);_0x3a2b69(null,![]);});};AGIVertices[_0x781b('0x12')][_0x781b('0x53')]=function(_0x13c153,_0x5017ca){var _0x60d50c={'role':_0x781b('0x50')};_0x60d50c[_0x13c153]=this[_0x781b('0xd')][_0x781b('0x3c')];var _0x33f9d5=_0x13c153!=_0x781b('0x54')?util[_0x781b('0x2a')](_0x781b('0x55'),_0x781b('0x56'),this[_0x781b('0xd')]['callerid']):undefined;this[_0x781b('0xe')][_0x781b('0x53')](_0x60d50c,_0x33f9d5)[_0x781b('0x15')](function(_0x23d442){_0x5017ca(null,_[_0x781b('0x48')](_0x23d442)?![]:!![]);})['catch'](function(_0x3a9a03){logger[_0x781b('0x2e')](_0x3a9a03);_0x5017ca(null,![]);});};AGIVertices['prototype']['shellCommand']=function(_0x11af12,_0x3864c8){sh[_0x781b('0x57')](_['trim'](_0x11af12),function(_0x277871,_0x5a1499){var _0x4fb34b=_0x5a1499[_0x781b('0x58')](/(\r\n|\n|\r)/gm,'');_0x3864c8(null,_0x4fb34b);});};AGIVertices[_0x781b('0x12')]['googleCloudTTS']=function(_0x24444d,_0x23a709){scripts[_0x781b('0x59')](_0x24444d['apiKey'],_0x24444d[_0x781b('0x5a')]||_0x781b('0x5b'),_0x24444d['text'],_0x24444d[_0x781b('0x5c')]||_0x781b('0x5d'),_0x24444d[_0x781b('0x5e')]||_0x781b('0x5f'),_0x24444d[_0x781b('0x60')]||_0x781b('0x61'))[_0x781b('0x15')](function(_0x49c1a9){_0x23a709(null,_0x49c1a9);})['catch'](function(_0x283cdc){_0x23a709(_0x283cdc);});};AGIVertices[_0x781b('0x12')]['googleTTS']=function(_0x34749d,_0x251c26){scripts[_0x781b('0x62')](_0x34749d['text'],_0x34749d[_0x781b('0x63')]||'en',0x1)['then'](function(_0x40e0af){_0x251c26(null,_0x40e0af);})[_0x781b('0x11')](function(_0x55c80a){_0x251c26(_0x55c80a);});};AGIVertices[_0x781b('0x12')][_0x781b('0x64')]=function(_0x248dae,_0x838e3d){var _0x3e51da={'uri':_0x248dae['url'],'method':_0x248dae['method'],'json':!![],'resolveWithFullResponse':!![],'strictSSL':![],'timeout':typeof parseInt(_0x248dae[_0x781b('0x65')])===_0x781b('0x66')&&parseInt(_0x248dae[_0x781b('0x65')])>=0x1?parseInt(_0x248dae[_0x781b('0x65')])*0x3e8:0x5*0x3e8};if(_[_0x781b('0x67')]([_0x781b('0x68'),_0x781b('0x69')],_0x3e51da[_0x781b('0x6a')][_0x781b('0x6b')]())){try{_0x3e51da[_0x781b('0x6c')]=_0x248dae[_0x781b('0x6d')]?JSON[_0x781b('0x6e')](_0x248dae[_0x781b('0x6d')]):{};}catch(_0x1b56d1){logger['error'](_0x781b('0x6f'),_0x1b56d1);}}try{_0x3e51da['headers']=_0x248dae[_0x781b('0xa')]?JSON['parse'](_0x248dae[_0x781b('0xa')]):{};}catch(_0x3e7e14){logger[_0x781b('0x2e')](_0x781b('0x70'),_0x3e7e14);}if(_0x248dae[_0x781b('0x71')]){try{var _0x258aa5=require(_0x248dae[_0x781b('0x71')])['sync'](this,_0x3e51da);_0x3e51da[_0x781b('0x72')]=Mustache[_0x781b('0x73')](_0x248dae[_0x781b('0x74')],_0x258aa5,{},['$$','$$']);if(_0x3e51da[_0x781b('0x75')]){_0x3e51da['headers']=JSON[_0x781b('0x6e')](Mustache[_0x781b('0x73')](JSON['stringify'](_0x3e51da[_0x781b('0x75')]),_0x258aa5,{},['$$','$$']));}if(_0x3e51da[_0x781b('0x6c')]){_0x3e51da[_0x781b('0x6c')]=JSON[_0x781b('0x6e')](Mustache[_0x781b('0x73')](JSON[_0x781b('0x76')](_0x3e51da[_0x781b('0x6c')]),_0x258aa5,{},['$$','$$']));}}catch(_0xa639c6){logger[_0x781b('0x2e')](_0x781b('0x77'),_0xa639c6);}}rp(_0x3e51da)[_0x781b('0x15')](function(_0x42a325){var _0x1ab34c={'statusCode':_0x42a325[_0x781b('0x78')]||0xc8,'statusMessage':_0x42a325[_0x781b('0x79')]||'OK','headers':_0x42a325[_0x781b('0x75')]||{},'body':_0x42a325['body']||{}};_0x838e3d(null,_0x1ab34c);})['catch'](function(_0xc2dae4){var _0x10eed0={'statusCode':_0xc2dae4[_0x781b('0x78')]||0x1f4,'statusMessage':_0xc2dae4[_0x781b('0x7a')]||'500\x20-\x20Internal\x20Server\x20Error','headers':_0xc2dae4[_0x781b('0x7b')][_0x781b('0x75')]||{},'body':_0xc2dae4[_0x781b('0x7b')][_0x781b('0x6c')]||{}};_0x838e3d(null,_0x10eed0);});};AGIVertices[_0x781b('0x12')][_0x781b('0x7c')]=function(_0x2c1d16,_0x318f0a){scripts[_0x781b('0x7c')](this[_0x781b('0xd')][_0x781b('0x38')],_0x2c1d16[_0x781b('0x7d')],_0x2c1d16[_0x781b('0x5b')],_0x2c1d16['dialogflow_language']||'en')['then'](function(_0x461c19){_0x318f0a(null,_0x461c19);})['catch'](function(_0xb45ef8){_0x318f0a(_0xb45ef8);});};AGIVertices['prototype'][_0x781b('0x7e')]=function(_0x5000e7,_0x3e489c){scripts[_0x781b('0x7e')](this[_0x781b('0xd')][_0x781b('0x38')],_0x5000e7[_0x781b('0x7f')],_0x5000e7['client_email'],_0x5000e7[_0x781b('0x80')],_0x5000e7[_0x781b('0x5b')],_0x5000e7[_0x781b('0x81')]||'en')['then'](function(_0x5de9c0){_0x3e489c(null,_0x5de9c0);})[_0x781b('0x11')](function(_0x3cb425){_0x3e489c(_0x3cb425);});};AGIVertices[_0x781b('0x12')]['sestekNDA']=function(_0x302031,_0xbb59ca){scripts[_0x781b('0x82')](this['channel'],_0x302031)[_0x781b('0x15')](function(_0x465e41){_0xbb59ca(null,_0x465e41);})[_0x781b('0x11')](function(_0x47525e){_0xbb59ca(_0x47525e);});};AGIVertices[_0x781b('0x12')][_0x781b('0x83')]=function(_0x38fc3c,_0x1faa1e){scripts['ispeechTTS'](_0x38fc3c[_0x781b('0x7d')],_0x38fc3c['text'],_0x38fc3c[_0x781b('0x84')]||_0x781b('0x5d'),_0x38fc3c['speed'])[_0x781b('0x15')](function(_0x237675){_0x1faa1e(null,_0x237675);})[_0x781b('0x11')](function(_0x22a5de){_0x1faa1e(_0x22a5de);});};AGIVertices[_0x781b('0x12')]['ispeechASR']=function(_0x26e031,_0x54c514,_0x41d88f){scripts[_0x781b('0x85')](_0x54c514,_0x26e031[_0x781b('0x7d')],_0x26e031[_0x781b('0x86')]||'en-US',this['isConfigured'](_0x26e031['model'])?_0x26e031['model']:undefined)[_0x781b('0x15')](function(_0x3ad238){_0x41d88f(null,_0x3ad238);})[_0x781b('0x11')](function(_0x19f83d){_0x41d88f(_0x19f83d);});};AGIVertices[_0x781b('0x12')][_0x781b('0x87')]=function(_0x324e25,_0x1cd71a){scripts[_0x781b('0x87')](_0x324e25[_0x781b('0x88')],_0x324e25[_0x781b('0x89')],_0x324e25[_0x781b('0x8a')],_0x324e25[_0x781b('0x8b')]||'Amy',_0x324e25[_0x781b('0x5b')],_0x324e25['aws_text_type']||'text')['then'](function(_0x1a76d2){_0x1cd71a(null,_0x1a76d2);})[_0x781b('0x11')](function(_0x3ccce9){_0x1cd71a(_0x3ccce9);});};AGIVertices['prototype'][_0x781b('0x8c')]=function(_0x2eabaa,_0x1e7be1){scripts['awsLex'](this['channel'][_0x781b('0x38')],_0x2eabaa[_0x781b('0x88')],_0x2eabaa[_0x781b('0x89')],_0x2eabaa[_0x781b('0x8d')],_0x2eabaa[_0x781b('0x5b')],_0x2eabaa[_0x781b('0x8e')])[_0x781b('0x15')](function(_0x98eeb4){_0x1e7be1(null,_0x98eeb4);})[_0x781b('0x11')](function(_0x29682b){_0x1e7be1(_0x29682b);});};AGIVertices[_0x781b('0x12')][_0x781b('0x8f')]=function(_0x300b75,_0x41b823,_0x4f2e83){scripts[_0x781b('0x8f')](_0x41b823,_0x300b75['key'],_0x300b75[_0x781b('0x90')]||_0x781b('0x5d'))['then'](function(_0x1254c7){_0x4f2e83(null,_0x1254c7);})['catch'](function(_0x20a62a){_0x4f2e83(_0x20a62a);});};AGIVertices[_0x781b('0x12')][_0x781b('0x91')]=function(_0x1d8e59,_0x270b75,_0x33afec){scripts['tildeASR'](_0x270b75,_0x1d8e59[_0x781b('0x92')],_0x1d8e59[_0x781b('0x93')],_0x1d8e59[_0x781b('0x72')])[_0x781b('0x15')](function(_0x36691f){_0x33afec(null,_0x36691f);})[_0x781b('0x11')](function(_0x901c30){_0x33afec(_0x901c30);});};AGIVertices[_0x781b('0x12')][_0x781b('0x94')]=function(_0xb01f4f){var _0x51f8bb=_[_0x781b('0x67')](verticesWithRetry,_0xb01f4f[_0x781b('0x3a')])?_0xb01f4f:_['clone'](_0xb01f4f);for(var _0x32cd53 in _0x51f8bb){if(_0x51f8bb[_0x781b('0x95')](_0x32cd53)){if(_0x51f8bb[_0x32cd53]&&_['isString'](_0x51f8bb[_0x32cd53])){if(_[_0x781b('0x67')](recursiveMapAttributes,_0x32cd53)){_0x51f8bb[_0x32cd53]=this['replaceObjectAllVariables'](_0x51f8bb[_0x32cd53]);}else{_0x51f8bb[_0x32cd53]=this['replaceAllVariables'](_0x51f8bb[_0x32cd53]);}}}}return _0x51f8bb;};AGIVertices['prototype'][_0x781b('0x96')]=function(_0x3d08e2){for(var _0xb9ba44 in _0x3d08e2){if(_0x3d08e2[_0x781b('0x95')](_0xb9ba44)){if(_[_0x781b('0x97')](_0x3d08e2[_0xb9ba44])){this[_0x781b('0x96')](_0x3d08e2[_0xb9ba44]);}else if(_['isArray'](_0x3d08e2[_0xb9ba44])){for(var _0x35ceca=0x0;_0x35ceca<_0x3d08e2[_0xb9ba44][_0x781b('0x98')];_0x35ceca++){this[_0x781b('0x96')](_0x3d08e2[_0xb9ba44][_0x35ceca]);}}else if(_['isString'](_0x3d08e2[_0xb9ba44])){_0x3d08e2[_0xb9ba44]=this[_0x781b('0x99')](_0x3d08e2[_0xb9ba44]);}}}};AGIVertices[_0x781b('0x12')]['saveRestApiResult']=function(_0x4ce9c7,_0x4f7b61){for(var _0x35c3c6 in _0x4ce9c7){if(_0x4ce9c7[_0x781b('0x95')](_0x35c3c6)){if(_[_0x781b('0x97')](_0x4ce9c7[_0x35c3c6])){if(!_[_0x781b('0x45')](_0x4ce9c7[_0x35c3c6])){this[_0x781b('0x9a')](_0x4ce9c7[_0x35c3c6],util[_0x781b('0x2a')]('%s.%s',_0x4f7b61,_0x35c3c6));}}else if(_[_0x781b('0x9b')](_0x4ce9c7[_0x35c3c6])){for(var _0x17398d=0x0;_0x17398d<_0x4ce9c7[_0x35c3c6][_0x781b('0x98')];_0x17398d++){this['saveRestApiResult'](_0x4ce9c7[_0x35c3c6][_0x17398d],util[_0x781b('0x2a')](_0x781b('0x9c'),_0x4f7b61,_0x35c3c6+'['+_0x17398d+']'));}}else{if(!_['isNil'](_0x4ce9c7[_0x35c3c6])){this['channel'][_0x781b('0x9d')](util['format']('%s.%s',_0x4f7b61,_0x35c3c6),_0x4ce9c7[_0x35c3c6]);}}}}};AGIVertices[_0x781b('0x12')][_0x781b('0x9e')]=function(_0x3b8f82){try{var _0x42a708=JSON[_0x781b('0x6e')](_0x3b8f82);this[_0x781b('0x96')](_0x42a708);return JSON[_0x781b('0x76')](_0x42a708);}catch(_0x33aa79){return this[_0x781b('0x99')](_0x3b8f82);}};AGIVertices[_0x781b('0x12')][_0x781b('0x99')]=function(_0x32f7b0){var _0x5398af=_0x32f7b0['split']('{');for(var _0x2f5d38=0x1;_0x2f5d38<_0x5398af['length'];_0x2f5d38+=0x1){var _0x2192d8=_0x5398af[_0x2f5d38][_0x781b('0x9f')]('}');if(_0x2192d8['length']>0x1){_0x32f7b0=_0x32f7b0['replaceAll']('{'+_0x2192d8[0x0]+'}',this[_0x781b('0xd')]['getVariable'](_0x2192d8[0x0])['extra']||_0x2192d8[0x0]);}}if(_0x5398af[_0x781b('0x98')]===0x1){return _0x32f7b0[_0x781b('0x4c')]();}return this[_0x781b('0x99')](_0x32f7b0);};AGIVertices['prototype']['getAndSetVariable']=function(_0x5170b8,_0x31d263){var _0x15df82=this[_0x781b('0xd')][_0x781b('0xf')](_0x5170b8);if(_0x15df82['result']===-0x1){return _0x15df82;}logger['info'](util['format'](_0x781b('0xa0'),_0x31d263,_0x15df82[_0x781b('0xa1')]));return this[_0x781b('0xd')]['setVariable'](_0x31d263,_0x15df82[_0x781b('0xa1')]);};AGIVertices[_0x781b('0x12')][_0x781b('0xa2')]=function(_0x2b400f){return _0x2b400f&&_0x2b400f!=='0'&&_0x2b400f!=='-1'&&_0x2b400f!=='';};AGIVertices['prototype'][_0x781b('0xa3')]=function(_0x4db7d1){this[_0x781b('0x37')]['sync'](this,_0x4db7d1,'-');_0x4db7d1['retry']=_0x4db7d1[_0x781b('0xa3')];return{'code':0xc8,'result':'-'};};AGIVertices[_0x781b('0x12')]['mrcpsynth']=function(_0x2fc4f9){logger[_0x781b('0x31')](util['format'](_0x781b('0xa4'),_0x2fc4f9['label']));if(!this[_0x781b('0xa2')](_0x2fc4f9[_0x781b('0x5b')])){return this[_0x781b('0xd')][_0x781b('0xa5')]('no\x20text\x20configured');}var _0x459d23='\x22'+_0x2fc4f9[_0x781b('0x5b')]+'\x22';if(this[_0x781b('0xa2')](_0x2fc4f9[_0x781b('0x7b')])){_0x459d23+=','+_0x2fc4f9[_0x781b('0x7b')];}var _0x289bc4=this[_0x781b('0xd')]['exec'](_0x781b('0xa6'),_0x459d23);if(_0x289bc4['result']===-0x1){return _0x289bc4;}return this[_0x781b('0xd')]['noop'](util[_0x781b('0x2a')](_0x781b('0xa7'),_0x459d23));};AGIVertices[_0x781b('0x12')][_0x781b('0xa8')]=function(_0x52ed90){logger[_0x781b('0x31')](util['format']('Enter\x20in\x20MRCPRecog\x20(%s)\x20block',_0x52ed90[_0x781b('0x39')]));if(!this[_0x781b('0xa2')](_0x52ed90[_0x781b('0xa9')])){return this['channel'][_0x781b('0xa5')](_0x781b('0xaa'));}var _0x558904=_0x52ed90[_0x781b('0xa9')];if(this[_0x781b('0xa2')](_0x52ed90[_0x781b('0x7b')])){_0x558904+=','+_0x52ed90[_0x781b('0x7b')];}var _0x8a821a=this[_0x781b('0xd')][_0x781b('0x57')](_0x781b('0xab'),_0x558904);if(_0x8a821a[_0x781b('0xac')]===-0x1){return _0x8a821a;}var _0x2503ba=this[_0x781b('0xad')](_0x781b('0xae'),_0x781b('0xaf'));if(_0x2503ba[_0x781b('0xac')]===-0x1){return _0x2503ba;}var _0x3a9378=this[_0x781b('0xad')](_0x781b('0xb0'),_0x781b('0xb1'));if(_0x3a9378[_0x781b('0xac')]===-0x1){return _0x3a9378;}var _0x40d903=this['getAndSetVariable'](_0x781b('0xb2'),_0x781b('0xb3'));if(_0x40d903[_0x781b('0xac')]===-0x1){return _0x40d903;}return this['channel']['noop'](util[_0x781b('0x2a')]('Executed\x20command\x20MRCPRecog\x20%s',_0x558904));};AGIVertices[_0x781b('0x12')][_0x781b('0x7')]=function(_0x17f6c7){logger[_0x781b('0x31')](util[_0x781b('0x2a')](_0x781b('0xb4'),_0x17f6c7[_0x781b('0x39')]));return this['channel'][_0x781b('0x7')]([_0x17f6c7[_0x781b('0xb5')],_0x17f6c7[_0x781b('0xb6')]]);};AGIVertices[_0x781b('0x12')][_0x781b('0xb7')]=function(_0x58c056){logger[_0x781b('0x31')](util['format'](_0x781b('0xb8'),_0x58c056[_0x781b('0x39')]));if(this[_0x781b('0xa2')](_0x58c056[_0x781b('0x65')])){logger[_0x781b('0x31')](util[_0x781b('0x2a')]('Wait\x20%s\x20seconds\x20before\x20answer',_0x58c056[_0x781b('0x65')]));var _0x24df0a=this[_0x781b('0xd')]['wait'](_0x58c056[_0x781b('0x65')]);if(_0x24df0a[_0x781b('0xac')]===-0x1){return _0x24df0a;}}return this['channel'][_0x781b('0xb7')]();};AGIVertices[_0x781b('0x12')][_0x781b('0xb9')]=function(_0x22992e){logger['info'](util[_0x781b('0x2a')](_0x781b('0xba'),_0x22992e[_0x781b('0x39')]));if(!this[_0x781b('0xa2')](_0x22992e[_0x781b('0x4a')])){return this['channel'][_0x781b('0x2e')](_0x22992e,'no\x20list\x20selected');}_0x22992e[_0x781b('0x4b')]=moment();if(this[_0x781b('0xa2')](_0x22992e[_0x781b('0xbb')])){_0x22992e[_0x781b('0x4b')]=moment()[_0x781b('0xbc')](_0x22992e['delay'],_0x781b('0xbd'));}if(!this[_0x781b('0xa2')](_0x22992e['callback_priority'])){_0x22992e[_0x781b('0xbe')]=0x2;}this[_0x781b('0x44')][_0x781b('0xbf')](this,_0x22992e);return this['channel'][_0x781b('0xa5')](util[_0x781b('0x2a')](_0x781b('0xc0'),_0x22992e['phone'],_0x22992e['list_id'],_0x22992e[_0x781b('0x4b')]));};AGIVertices[_0x781b('0x12')][_0x781b('0xc1')]=function(_0xfd5f61){logger[_0x781b('0x31')](util[_0x781b('0x2a')]('Enter\x20in\x20CUSTOM\x20APP\x20(%s)\x20block',_0xfd5f61['label']));var _0x25374e=this[_0x781b('0xd')][_0x781b('0x57')](_0xfd5f61[_0x781b('0xc2')],_0xfd5f61[_0x781b('0x7b')]);if(_0x25374e[_0x781b('0xac')]===-0x1){return _0x25374e;}return this[_0x781b('0xd')][_0x781b('0xa5')](util['format'](_0x781b('0xc3'),_0xfd5f61[_0x781b('0xc2')],_0xfd5f61[_0x781b('0x7b')]));};AGIVertices[_0x781b('0x12')]['lumenvoxtts']=function(_0x19e53a){logger[_0x781b('0x31')](util['format']('Enter\x20in\x20LUMENVOXTTS\x20(%s)\x20block',_0x19e53a[_0x781b('0x39')]));if(!this[_0x781b('0xa2')](_0x19e53a['text'])){return this[_0x781b('0xd')][_0x781b('0xa5')](_0x781b('0xc4'));}var _0x319afd='\x22'+_0x19e53a[_0x781b('0x5b')]+'\x22';if(this[_0x781b('0xa2')](_0x19e53a['options'])){_0x319afd+=','+_0x19e53a[_0x781b('0x7b')];}var _0x451274=this['channel']['exec'](_0x781b('0xa6'),_0x319afd);if(_0x451274[_0x781b('0xac')]===-0x1){return _0x451274;}return this[_0x781b('0xd')][_0x781b('0xa5')](util[_0x781b('0x2a')](_0x781b('0xa7'),_0x319afd));};AGIVertices[_0x781b('0x12')][_0x781b('0xc5')]=function(_0x294cd8){logger[_0x781b('0x31')](util[_0x781b('0x2a')](_0x781b('0xc6'),_0x294cd8['label']));if(!this[_0x781b('0xa2')](_0x294cd8['text'])){return this[_0x781b('0xd')]['noop']('no\x20text\x20configured');}var _0x43da0d='\x22'+_0x294cd8['text']+'\x22';if(this[_0x781b('0xa2')](_0x294cd8[_0x781b('0x7b')])){_0x43da0d+=','+_0x294cd8['options'];}var _0x4c6808=this[_0x781b('0xd')][_0x781b('0x57')]('MRCPSynth',_0x43da0d);if(_0x4c6808['result']===-0x1){return _0x4c6808;}return this[_0x781b('0xd')][_0x781b('0xa5')](util['format'](_0x781b('0xa7'),_0x43da0d));};AGIVertices['prototype'][_0x781b('0xc7')]=function(_0x299f8d){logger[_0x781b('0x31')](util[_0x781b('0x2a')](_0x781b('0xc8'),_0x299f8d[_0x781b('0x39')]));if(!this[_0x781b('0xa2')](_0x299f8d['grammar'])){return this['channel'][_0x781b('0xa5')](_0x781b('0xaa'));}var _0x24b860=_0x299f8d[_0x781b('0xa9')];if(this['isConfigured'](_0x299f8d[_0x781b('0x7b')])){_0x24b860+=','+_0x299f8d[_0x781b('0x7b')];}var _0x22b617=this[_0x781b('0xd')][_0x781b('0x57')](_0x781b('0xab'),_0x24b860);if(_0x22b617['result']===-0x1){return _0x22b617;}var _0x28968f=this[_0x781b('0xad')](_0x781b('0xae'),_0x781b('0xc9'));if(_0x28968f['result']===-0x1){return _0x28968f;}var _0x5a787f=this['getAndSetVariable']('RECOG_INPUT()',_0x781b('0xca'));if(_0x5a787f[_0x781b('0xac')]===-0x1){return _0x5a787f;}var _0x2c0f48=this[_0x781b('0xad')](_0x781b('0xb2'),_0x781b('0xcb'));if(_0x2c0f48[_0x781b('0xac')]===-0x1){return _0x2c0f48;}return this[_0x781b('0xd')][_0x781b('0xa5')](util['format'](_0x781b('0xcc'),_0x24b860));};AGIVertices['prototype'][_0x781b('0xcd')]=function(_0x538c42){logger[_0x781b('0x31')](util[_0x781b('0x2a')](_0x781b('0xce'),_0x538c42[_0x781b('0x39')]));if(!this['isConfigured'](_0x538c42['grammar'])){return this[_0x781b('0xd')][_0x781b('0xa5')](_0x781b('0xaa'));}var _0x154a20=_0x538c42[_0x781b('0xa9')];if(this[_0x781b('0xa2')](_0x538c42[_0x781b('0x7b')])){_0x154a20+=','+_0x538c42['options'];}var _0x220481=this[_0x781b('0xd')][_0x781b('0x57')]('MRCPRecog',_0x154a20);if(_0x220481['result']===-0x1){return _0x220481;}var _0x5e1335=this['getAndSetVariable'](_0x781b('0xae'),_0x781b('0xcf'));if(_0x5e1335[_0x781b('0xac')]===-0x1){return _0x5e1335;}var _0x16a859=this[_0x781b('0xad')]('RECOG_INPUT()',_0x781b('0xd0'));if(_0x16a859['result']===-0x1){return _0x16a859;}var _0x1768f0=this['getAndSetVariable'](_0x781b('0xb2'),'SESTEK_ASR_INSTANCE');if(_0x1768f0[_0x781b('0xac')]===-0x1){return _0x1768f0;}return this[_0x781b('0xd')][_0x781b('0xa5')](util[_0x781b('0x2a')]('Executed\x20command\x20MRCPRecog\x20%s',_0x154a20));};AGIVertices[_0x781b('0x12')]['database']=function(_0x28ed35){logger[_0x781b('0x31')](util[_0x781b('0x2a')](_0x781b('0xd1'),_0x28ed35[_0x781b('0x39')]));if(!this[_0x781b('0xa2')](_0x28ed35[_0x781b('0xd2')])){return this[_0x781b('0xd')][_0x781b('0x2e')](_0x28ed35,'no\x20database\x20selected');}var _0x539406=this[_0x781b('0xd3')][_0x781b('0xbf')](this,_0x28ed35['odbc_id']);if(!_0x539406){return this[_0x781b('0xd')][_0x781b('0x2e')](_0x28ed35,'no\x20odbc\x20database\x20found');}if(!this[_0x781b('0xa2')](_0x28ed35[_0x781b('0x30')])){return this[_0x781b('0xd')][_0x781b('0x2e')](_0x28ed35,_0x781b('0xd4'));}var _0x22f7e9=_0x28ed35[_0x781b('0x30')][_0x781b('0x58')](/(\r\n|\n|\r)/gm,'\x20');this[_0x781b('0xd')][_0x781b('0xa5')](util[_0x781b('0x2a')](_0x781b('0xd5'),_0x22f7e9));var _0x7f3306=this[_0x781b('0x2c')][_0x781b('0xbf')](this,_0x539406,_0x22f7e9);this['createSquareDetailsReport'][_0x781b('0xbf')](this,_0x28ed35,_0x22f7e9);if(!this[_0x781b('0xa2')](_0x28ed35[_0x781b('0xd6')])){return this[_0x781b('0xd')]['noop']('no\x20variable\x20selected\x20for\x20the\x20result');}var _0x5da358=this[_0x781b('0xf')]['sync'](this,_0x28ed35['variable_id']);if(!_0x5da358){return this[_0x781b('0xd')][_0x781b('0x2e')](_0x28ed35,_0x781b('0xd7'));}var _0x540877=this;_0x7f3306[_0x781b('0xd8')](function(_0x41dbc5,_0x5b965d){Object[_0x781b('0xd9')](_0x41dbc5)[_0x781b('0xd8')](function(_0x3cfe3b){_0x540877['channel'][_0x781b('0x9d')](util[_0x781b('0x2a')]('%s[%s][%s]',_0x5da358,_0x5b965d,_0x3cfe3b),_0x41dbc5[_0x3cfe3b]);});});this[_0x781b('0xd')][_0x781b('0x9d')](util[_0x781b('0x2a')]('%s_ROWS_COUNT',_0x5da358),_0x7f3306['length']);return this[_0x781b('0xd')][_0x781b('0xa5')](util['format'](_0x781b('0xda'),_0x5da358));};AGIVertices['prototype']['dial']=function(_0x47904b){logger[_0x781b('0xdb')](util[_0x781b('0x2a')]('Enter\x20in\x20DIAL\x20(%s)\x20block',_0x47904b[_0x781b('0x39')]));if(!this['isConfigured'](_0x47904b[_0x781b('0xdc')])){return this[_0x781b('0xd')][_0x781b('0x2e')](_0x47904b,_0x781b('0xdd'));}var _0x17e9d6=this['getUser'][_0x781b('0xbf')](this,_0x47904b[_0x781b('0xdc')]);if(!_0x17e9d6){return this[_0x781b('0xd')][_0x781b('0x2e')](_0x47904b,_0x781b('0xde'));}var _0x1da6ad=this[_0x781b('0xd')][_0x781b('0x57')](_0x781b('0xdf'),[util[_0x781b('0x2a')](_0x781b('0xe0'),_0x17e9d6),_0x47904b['timeout'],_0x47904b[_0x781b('0xe1')],_0x47904b[_0x781b('0x74')]]);if(_0x1da6ad[_0x781b('0xac')]===-0x1){return _0x1da6ad;}return this[_0x781b('0xd')][_0x781b('0xa5')](util[_0x781b('0x2a')]('Executed\x20command\x20%s',_0x781b('0xdf')));};AGIVertices[_0x781b('0x12')][_0x781b('0xe2')]=function(_0x34a309){logger['info'](util[_0x781b('0x2a')](_0x781b('0xe3'),_0x34a309['label']));if(!this[_0x781b('0xa2')](_0x34a309['key'])){return this[_0x781b('0xd')]['noop'](_0x781b('0xe4'));}if(!this['isConfigured'](_0x34a309['text'])){return this['channel']['noop'](_0x781b('0xc4'));}this[_0x781b('0xd')][_0x781b('0xe5')]=!![];this[_0x781b('0x37')](_0x34a309);this[_0x781b('0x43')](_0x34a309[_0x781b('0x5b')],'in','','');this[_0x781b('0xd')][_0x781b('0xa5')](util[_0x781b('0x2a')]('Trying\x20Dialogflow:\x20%s',_0x34a309[_0x781b('0x5b')]));var _0x9328b7=this[_0x781b('0x7c')][_0x781b('0xbf')](this,_0x34a309);if(_0x9328b7){for(var _0x18d0d2 in _0x9328b7){if(_0x9328b7[_0x781b('0x95')](_0x18d0d2)){this[_0x781b('0xd')][_0x781b('0x9d')](util[_0x781b('0x2a')](_0x781b('0xe6'),_0x18d0d2['toUpperCase']()),_0x9328b7[_0x18d0d2]);}}this[_0x781b('0x43')](_0x9328b7['speech'],'out',_0x781b('0xe2'),'');return this[_0x781b('0xd')][_0x781b('0xa5')](util[_0x781b('0x2a')](_0x781b('0xe7'),_0x9328b7[_0x781b('0xe8')]));}return this[_0x781b('0xd')][_0x781b('0x2e')](_0x34a309,_0x781b('0xe9'));};AGIVertices['prototype'][_0x781b('0xea')]=function(_0x27cb72){logger['info'](util[_0x781b('0x2a')]('Enter\x20in\x20DIALOGFLOW\x20V2\x20(%s)\x20block',_0x27cb72['label']));if(!this['isConfigured'](_0x27cb72[_0x781b('0x7f')])){return this[_0x781b('0xd')][_0x781b('0xa5')]('no\x20project_id\x20configured');}if(!this['isConfigured'](_0x27cb72['client_email'])){return this[_0x781b('0xd')]['noop'](_0x781b('0xeb'));}if(!this['isConfigured'](_0x27cb72[_0x781b('0x80')])){return this['channel'][_0x781b('0xa5')](_0x781b('0xec'));}if(!this[_0x781b('0xa2')](_0x27cb72['dialogflowV2_language'])){return this[_0x781b('0xd')][_0x781b('0xa5')](_0x781b('0xed'));}if(!this[_0x781b('0xa2')](_0x27cb72['text'])){return this[_0x781b('0xd')][_0x781b('0xa5')]('no\x20text\x20configured');}this[_0x781b('0xd')]['bot']=!![];this[_0x781b('0x37')](_0x27cb72);this[_0x781b('0x43')](_0x27cb72[_0x781b('0x5b')],'in','','');this[_0x781b('0xd')][_0x781b('0xa5')](util[_0x781b('0x2a')](_0x781b('0xee'),_0x27cb72[_0x781b('0x5b')]));var _0x392e28=this[_0x781b('0x7e')][_0x781b('0xbf')](this,_0x27cb72);if(_0x392e28){for(var _0x51e3a9 in _0x392e28){if(_0x392e28[_0x781b('0x95')](_0x51e3a9)){if(_0x51e3a9!==_0x781b('0xef')){this['channel'][_0x781b('0x9d')](util[_0x781b('0x2a')]('DIALOGFLOW_%s',_0x51e3a9[_0x781b('0x6b')]()),_0x392e28[_0x51e3a9]);}}}this[_0x781b('0x43')](_0x392e28[_0x781b('0xe8')],_0x781b('0xf0'),_0x781b('0xea'),_0x392e28[_0x781b('0xef')]);return this[_0x781b('0xd')]['noop'](util[_0x781b('0x2a')]('DialogflowV2\x20Result\x20%s',_0x392e28[_0x781b('0xe8')]));}return this[_0x781b('0xd')][_0x781b('0x2e')](_0x27cb72,_0x781b('0xf1'));};AGIVertices[_0x781b('0x12')][_0x781b('0xf2')]=function(_0x124611){logger[_0x781b('0x31')](util[_0x781b('0x2a')](_0x781b('0xf3'),_0x124611[_0x781b('0x39')]));if(!this[_0x781b('0xa2')](_0x124611['ndauth_url'])){return this[_0x781b('0xd')]['noop']('no\x20ndauth\x20url\x20configured');}if(!this[_0x781b('0xa2')](_0x124611[_0x781b('0xf4')])){return this[_0x781b('0xd')][_0x781b('0xa5')]('no\x20username\x20configured');}if(!this['isConfigured'](_0x124611['password'])){return this['channel']['noop']('no\x20password\x20configured');}if(!this[_0x781b('0xa2')](_0x124611[_0x781b('0xf5')])){return this[_0x781b('0xd')][_0x781b('0xa5')](_0x781b('0xc4'));}this['channel'][_0x781b('0xe5')]=!![];this[_0x781b('0x37')](_0x124611);this[_0x781b('0x43')](_0x124611['text'],'in','','');this[_0x781b('0xd')]['noop'](util['format']('Trying\x20SestekNDA:\x20%s',_0x124611['text']));var _0x17760c=this[_0x781b('0x82')][_0x781b('0xbf')](this,_0x124611);if(_0x17760c){for(var _0x4f24c3 in _0x17760c){if(_0x17760c[_0x781b('0x95')](_0x4f24c3)){this[_0x781b('0xd')][_0x781b('0x9d')](util[_0x781b('0x2a')](_0x781b('0xf6'),_0x4f24c3[_0x781b('0x6b')]()),_0x17760c[_0x4f24c3]);}}this[_0x781b('0x43')](_0x17760c[_0x781b('0xe8')],'out','sesteknda','');if(_0x17760c['audiofile']){this[_0x781b('0xd')][_0x781b('0xa5')](util[_0x781b('0x2a')](_0x781b('0xf7'),_0x17760c[_0x781b('0xf8')]));var _0x5e6668=this[_0x781b('0xd')][_0x781b('0xf9')](_0x17760c[_0x781b('0xf8')]);try{fs['unlink'](_0x17760c[_0x781b('0xf8')]+_0x781b('0xfa'));}catch(_0x34404d){logger[_0x781b('0x2e')](_0x34404d);}return _0x5e6668;}else{return this[_0x781b('0xd')][_0x781b('0xa5')](util['format'](_0x781b('0xfb'),_0x17760c[_0x781b('0xe8')]));}}return this[_0x781b('0xd')][_0x781b('0x2e')](_0x124611,_0x781b('0xfc'));};AGIVertices[_0x781b('0x12')][_0x781b('0xfd')]=function(_0x111f11){logger['info'](util[_0x781b('0x2a')]('Enter\x20in\x20END\x20(%s)\x20block',_0x111f11[_0x781b('0x39')]));return this['channel'][_0x781b('0xa5')](_0x781b('0xfd'));};AGIVertices['prototype'][_0x781b('0xfe')]=function(_0x252a0e){logger[_0x781b('0x31')](util[_0x781b('0x2a')](_0x781b('0xff'),_0x252a0e['label']));var _0x3eca73='';if(_0x252a0e[_0x781b('0x100')]){if(!this[_0x781b('0xa2')](_0x252a0e[_0x781b('0x100')])){return this[_0x781b('0xd')][_0x781b('0x2e')](_0x252a0e,_0x781b('0x101'));}else{var _0x6b3696=parseInt(_0x252a0e[_0x781b('0x100')],0xa);if(isNaN(_0x6b3696)){_0x3eca73=_0x252a0e[_0x781b('0x100')];}else{_0x3eca73=this[_0x781b('0x1c')][_0x781b('0xbf')](this,_0x252a0e[_0x781b('0x100')]);if(!_0x3eca73){return this['channel'][_0x781b('0x2e')](_0x252a0e,_0x781b('0x102'));}}}}else if(_0x252a0e[_0x781b('0x103')]){_0x3eca73=_0x252a0e[_0x781b('0x103')];}else{return this[_0x781b('0xd')][_0x781b('0x2e')](_0x252a0e,_0x781b('0x101'));}var _0x113527=this['channel'][_0x781b('0x57')](_0x781b('0xdf'),[util[_0x781b('0x2a')](_0x781b('0x104'),_0x3eca73,_0x252a0e['phone']),_0x252a0e[_0x781b('0x65')],_0x252a0e[_0x781b('0xe1')],_0x252a0e['url']]);if(_0x113527['result']===-0x1){return _0x113527;}return this[_0x781b('0xd')]['noop'](util['format'](_0x781b('0x105'),'DIAL'));};AGIVertices['prototype'][_0x781b('0x106')]=function(_0x351586){logger[_0x781b('0x31')](util[_0x781b('0x2a')](_0x781b('0x107'),_0x351586['label']));return this[_0x781b('0xd')][_0x781b('0xa5')]('finally');};AGIVertices[_0x781b('0x12')][_0x781b('0xb')]=function(_0x3e6f76){logger[_0x781b('0x31')](util['format'](_0x781b('0x108'),_0x3e6f76[_0x781b('0x39')]));if(_0x3e6f76['retry']===0x0){return this[_0x781b('0xa3')](_0x3e6f76);}_0x3e6f76['retry']-=0x1;if(!this[_0x781b('0xa2')](_0x3e6f76[_0x781b('0x109')])){return this[_0x781b('0xd')]['error'](_0x3e6f76,_0x781b('0x10a'));}var _0x21e709=this[_0x781b('0x1e')][_0x781b('0xbf')](this,_0x3e6f76[_0x781b('0x109')]);if(!_0x21e709){return this['channel'][_0x781b('0x2e')](_0x3e6f76,_0x781b('0x10b'));}if(!this[_0x781b('0xa2')](_0x3e6f76[_0x781b('0xd6')])){return this['channel'][_0x781b('0x2e')](_0x781b('0x10c'));}var _0x16c8e5=this[_0x781b('0xd')]['getData'](_0x21e709,_0x3e6f76[_0x781b('0x10d')],_0x3e6f76[_0x781b('0x10e')]);var _0x28414d=_0x16c8e5['result']?_0x16c8e5[_0x781b('0xac')][_0x781b('0x4c')]():'';logger['info']('test',JSON[_0x781b('0x76')](_0x16c8e5));if(_0x16c8e5['result']===-0x1){this[_0x781b('0x37')][_0x781b('0xbf')](this,_0x3e6f76,_0x28414d);return _0x16c8e5;}else if(_0x16c8e5[_0x781b('0xa1')]===_0x781b('0x65')){_0x16c8e5['result']=_0x28414d[_0x781b('0x98')]>=parseInt(_0x3e6f76['mindigit'])?'x':'i';}else{_0x16c8e5['result']=_0x28414d[_0x781b('0x98')]>=parseInt(_0x3e6f76[_0x781b('0x10f')])&&_0x28414d[_0x781b('0x98')]<=parseInt(_0x3e6f76['maxdigit'])?'x':'i';}var _0xcbaf87=this[_0x781b('0xf')]['sync'](this,_0x3e6f76['variable_id']);if(!_0xcbaf87){return this[_0x781b('0xd')][_0x781b('0x2e')](_0x3e6f76,_0x781b('0xd7'));}this[_0x781b('0xd')][_0x781b('0x9d')](_0xcbaf87,_0x28414d);if(this['isConfigured'](_0x3e6f76[_0x781b('0x110')])){var _0x3ddaad=parseInt(_0x3e6f76[_0x781b('0x110')],0xa);var _0x95f73b=rs[_0x781b('0x111')]({'charset':'*','length':_0x3ddaad});var _0x4e5944=_0x28414d[_0x781b('0x98')];if(_0x4e5944>0x0){if(_0x4e5944>_0x3ddaad){this[_0x781b('0x37')][_0x781b('0xbf')](this,_0x3e6f76,_0x3e6f76[_0x781b('0x112')]===_0x781b('0x113')?_0x95f73b+_0x28414d[_0x781b('0x114')](_0x3ddaad):_0x28414d[_0x781b('0x114')](0x0,_0x4e5944-_0x3ddaad)+_0x95f73b);}else{this[_0x781b('0x37')][_0x781b('0xbf')](this,_0x3e6f76,rs['generate']({'charset':'*','length':_0x4e5944}));}}else{this[_0x781b('0x37')][_0x781b('0xbf')](this,_0x3e6f76,'');}}else{this[_0x781b('0x37')][_0x781b('0xbf')](this,_0x3e6f76,_0x28414d);}return _0x16c8e5;};AGIVertices[_0x781b('0x12')][_0x781b('0xc')]=function(_0x137563){logger['info'](util[_0x781b('0x2a')](_0x781b('0x115'),_0x137563[_0x781b('0x39')]));return this[_0x781b('0xb')](_0x137563);};AGIVertices[_0x781b('0x12')][_0x781b('0x116')]=function(_0x3eb241){logger[_0x781b('0x31')](util[_0x781b('0x2a')](_0x781b('0x117'),_0x3eb241[_0x781b('0x39')]));this[_0x781b('0x37')][_0x781b('0xbf')](this,_0x3eb241,_0x3eb241[_0x781b('0x118')]);return this[_0x781b('0xd')][_0x781b('0xa5')](util[_0x781b('0x2a')](_0x781b('0x119'),_0x3eb241[_0x781b('0x118')]));};AGIVertices[_0x781b('0x12')][_0x781b('0x11a')]=function(_0x52f910){logger[_0x781b('0x31')](util['format'](_0x781b('0x11b'),_0x52f910['label']));if(!this[_0x781b('0xa2')](_0x52f910[_0x781b('0x88')])||!this['isConfigured'](_0x52f910[_0x781b('0x89')])){return this['channel'][_0x781b('0xa5')](_0x781b('0x11c'));}if(!this[_0x781b('0xa2')](_0x52f910[_0x781b('0x5b')])){return this[_0x781b('0xd')][_0x781b('0xa5')](_0x781b('0xc4'));}this[_0x781b('0xd')][_0x781b('0xa5')](util[_0x781b('0x2a')](_0x781b('0x11d'),_0x52f910[_0x781b('0x5b')]));var _0x279811=this[_0x781b('0x87')]['sync'](this,_0x52f910);if(_0x279811){this[_0x781b('0xd')][_0x781b('0xa5')](util[_0x781b('0x2a')]('aws\x20Polly\x20%s\x20file\x20created',_0x279811));var _0x3544fe=this[_0x781b('0xd')][_0x781b('0xf9')](_0x279811);try{fs[_0x781b('0x11e')](_0x279811+_0x781b('0xfa'));}catch(_0x599298){logger['error'](_0x599298);}return _0x3544fe;}return this['channel'][_0x781b('0x2e')](_0x52f910,_0x781b('0x11f'));};AGIVertices[_0x781b('0x12')]['awslex']=function(_0x2ae4ff){logger[_0x781b('0x31')](util['format'](_0x781b('0x120'),_0x2ae4ff['label']));if(!this[_0x781b('0xa2')](_0x2ae4ff['aws_access_key_id'])||!this[_0x781b('0xa2')](_0x2ae4ff[_0x781b('0x89')])){return this[_0x781b('0xd')][_0x781b('0xa5')](_0x781b('0x11c'));}if(!this[_0x781b('0xa2')](_0x2ae4ff[_0x781b('0x8e')])){return this['channel'][_0x781b('0xa5')](_0x781b('0x121'));}if(!this[_0x781b('0xa2')](_0x2ae4ff['text'])){return this['channel'][_0x781b('0xa5')](_0x781b('0xc4'));}this[_0x781b('0xd')][_0x781b('0xe5')]=!![];this[_0x781b('0x37')](_0x2ae4ff);this[_0x781b('0x43')](_0x2ae4ff[_0x781b('0x5b')],'in','','');this[_0x781b('0xd')][_0x781b('0xa5')](util[_0x781b('0x2a')](_0x781b('0x122'),_0x2ae4ff[_0x781b('0x5b')]));var _0x491e5e=this[_0x781b('0x8c')][_0x781b('0xbf')](this,_0x2ae4ff);if(_0x491e5e){for(var _0x4de532 in _0x491e5e){if(_0x491e5e[_0x781b('0x95')](_0x4de532)&&_[_0x781b('0x123')](_0x491e5e[_0x4de532])){this[_0x781b('0xd')]['setVariable'](util['format']('AWS_LEX_%s',_0x4de532[_0x781b('0x6b')]()),_0x491e5e[_0x4de532]);}}if(_[_0x781b('0x48')](_0x491e5e['message'])){return this[_0x781b('0xd')][_0x781b('0xa5')](_0x781b('0x124'));}else{this['createSquareMessage'](_0x491e5e['message'],_0x781b('0xf0'),'amazonlex','');return this[_0x781b('0xd')][_0x781b('0xa5')](util['format']('Amazon\x20Lex\x20Result\x20%s',_0x491e5e['message']));}}return this[_0x781b('0xd')][_0x781b('0x2e')](_0x2ae4ff,_0x781b('0x125'));};AGIVertices[_0x781b('0x12')][_0x781b('0x126')]=function(_0x1d8376){logger[_0x781b('0x31')](util[_0x781b('0x2a')]('Enter\x20in\x20GOOGLEASR\x20(%s)\x20block\x20%s',_0x1d8376[_0x781b('0x39')],_0x1d8376[_0x781b('0x65')]));if(!this[_0x781b('0xa2')](_0x1d8376[_0x781b('0x7d')])){return this[_0x781b('0xd')][_0x781b('0xa5')](_0x781b('0xe4'));}var _0xa0bd6=_0x781b('0x127');var _0x49da40=util[_0x781b('0x2a')](_0x781b('0x128'),FILES_PATH,rs[_0x781b('0x111')](0x4));var _0x449071=util[_0x781b('0x2a')](_0x781b('0x9c'),_0x49da40,_0xa0bd6);var _0x41a4b6=!![];if(_0x1d8376[_0x781b('0x129')]===_0x781b('0x12a')){_0x41a4b6=![];}var _0x3c9750=this['channel'][_0x781b('0x12b')](_0x49da40,_0xa0bd6,_0x1d8376['intKey'],_0x1d8376['timeout'],undefined,_0x41a4b6);if(_0x3c9750[_0x781b('0xac')]!==-0x1){this[_0x781b('0xd')]['noop'](util[_0x781b('0x2a')](_0x781b('0x12c'),_0x449071));var _0xfb17a4=this[_0x781b('0x8f')][_0x781b('0xbf')](this,_0x1d8376,_0x449071);if(_0xfb17a4){for(var _0x452a71 in _0xfb17a4){if(_0xfb17a4[_0x781b('0x95')](_0x452a71)){this['channel'][_0x781b('0x9d')](util[_0x781b('0x2a')]('GOOGLE_ASR_%s',_0x452a71[_0x781b('0x6b')]()),_0xfb17a4[_0x452a71]);}}return this[_0x781b('0xd')][_0x781b('0xa5')](util['format'](_0x781b('0x12d'),JSON[_0x781b('0x76')](_0xfb17a4)));}}return _0x3c9750;};AGIVertices[_0x781b('0x12')][_0x781b('0x12e')]=function(_0x42fe97){logger[_0x781b('0x31')](util[_0x781b('0x2a')](_0x781b('0x12f'),_0x42fe97[_0x781b('0x39')]));if(!this[_0x781b('0xa2')](_0x42fe97[_0x781b('0x92')])){return this['channel'][_0x781b('0xa5')](_0x781b('0x130'));}if(!this[_0x781b('0xa2')](_0x42fe97[_0x781b('0x93')])){return this[_0x781b('0xd')][_0x781b('0xa5')](_0x781b('0x131'));}var _0x391294=_0x781b('0x127');var _0x56aff9=util[_0x781b('0x2a')](_0x781b('0x128'),FILES_PATH,rs[_0x781b('0x111')](0x4));var _0x47becb=util['format']('%s.%s',_0x56aff9,_0x391294);var _0x5db713=!![];if(_0x42fe97['beep']===_0x781b('0x12a')){_0x5db713=![];}var _0x496206=this[_0x781b('0xd')][_0x781b('0x12b')](_0x56aff9,_0x391294,_0x42fe97[_0x781b('0x132')],_0x42fe97[_0x781b('0x65')],undefined,_0x5db713);if(_0x496206[_0x781b('0xac')]!==-0x1){this[_0x781b('0xd')][_0x781b('0xa5')](util[_0x781b('0x2a')](_0x781b('0x133'),_0x47becb));var _0x3c6a19=this[_0x781b('0x91')][_0x781b('0xbf')](this,_0x42fe97,_0x47becb);if(_0x3c6a19){for(var _0x35a455 in _0x3c6a19){if(_0x3c6a19['hasOwnProperty'](_0x35a455)){this[_0x781b('0xd')]['setVariable'](util['format'](_0x781b('0x134'),_0x35a455[_0x781b('0x6b')]()),_0x3c6a19[_0x35a455]);}}return this[_0x781b('0xd')][_0x781b('0xa5')](util['format']('TildeASR\x20Result\x20%s',JSON[_0x781b('0x76')](_0x3c6a19)));}}return _0x496206;};AGIVertices[_0x781b('0x12')][_0x781b('0x135')]=function(_0x651511){logger['info'](util['format'](_0x781b('0x136'),_0x651511[_0x781b('0x39')]));return this[_0x781b('0xd')][_0x781b('0x137')](_0x651511[_0x781b('0x3f')],_0x651511[_0x781b('0x40')],_0x651511[_0x781b('0x138')]);};AGIVertices['prototype']['gotoif']=function(_0x21530b){logger[_0x781b('0x31')](util[_0x781b('0x2a')](_0x781b('0x139'),_0x21530b['label']));if(!this[_0x781b('0xa2')](_0x21530b[_0x781b('0x13a')])){return this[_0x781b('0xd')]['error'](_0x21530b,'no\x20condition\x20configured');}try{var _0x50ddbb=eval(_0x21530b[_0x781b('0x13a')])?_0x781b('0x13b'):'false';this[_0x781b('0xd')][_0x781b('0xa5')](util[_0x781b('0x2a')](_0x781b('0x13c'),_0x21530b[_0x781b('0x13a')],_0x50ddbb));return{'code':0xc8,'result':_0x50ddbb};}catch(_0x4c7ff5){return{'code':0xc8,'result':_0x781b('0x13d')};}};AGIVertices[_0x781b('0x12')][_0x781b('0x13e')]=function(_0x12edb2){logger[_0x781b('0x31')](util['format'](_0x781b('0x13f'),_0x12edb2[_0x781b('0x39')]));if(!this['isConfigured'](_0x12edb2[_0x781b('0x140')])){return this[_0x781b('0xd')][_0x781b('0x2e')](_0x12edb2,_0x781b('0x141'));}var _0x29800c=this[_0x781b('0x24')][_0x781b('0xbf')](this,_0x12edb2[_0x781b('0x140')]);if(!_0x29800c){return this[_0x781b('0xd')][_0x781b('0x2e')](_0x12edb2,_0x781b('0x142'));}for(var _0x560ba0=0x0;_0x560ba0<_0x29800c[_0x781b('0x98')];_0x560ba0+=0x1){var _0x5f3a56=this['channel'][_0x781b('0xf')](util[_0x781b('0x2a')](_0x781b('0x143'),_0x29800c[_0x560ba0]));if(_0x5f3a56[_0x781b('0xac')]===-0x1){return _0x5f3a56;}logger['info'](util[_0x781b('0x2a')]('IFTIME\x20%s\x20%s',_0x29800c[_0x560ba0],_0x5f3a56[_0x781b('0xa1')]));if(_0x5f3a56[_0x781b('0xa1')]===_0x781b('0x13b')){logger[_0x781b('0x31')](util['format'](_0x781b('0x144'),_0x29800c[_0x560ba0],_0x781b('0x13b')));this[_0x781b('0xd')][_0x781b('0xa5')](util[_0x781b('0x2a')](_0x781b('0x144'),_0x29800c[_0x560ba0],_0x781b('0x13b')));return{'code':0xc8,'result':_0x781b('0x13b')};}else{logger[_0x781b('0x31')](util[_0x781b('0x2a')](_0x781b('0x144'),_0x29800c[_0x560ba0],_0x781b('0x13d')));this[_0x781b('0xd')][_0x781b('0xa5')](util[_0x781b('0x2a')](_0x781b('0x144'),_0x29800c[_0x560ba0],_0x781b('0x13d')));}}return{'code':0xc8,'result':_0x781b('0x13d')};};AGIVertices[_0x781b('0x12')][_0x781b('0x145')]=function(_0x1a0481){logger[_0x781b('0x31')](util[_0x781b('0x2a')](_0x781b('0x146'),_0x1a0481[_0x781b('0x39')]));return this[_0x781b('0xd')][_0x781b('0x145')]();};AGIVertices['prototype'][_0x781b('0x147')]=function(_0x52999d){logger[_0x781b('0x31')](util[_0x781b('0x2a')](_0x781b('0x148'),_0x52999d['label']));if(!this[_0x781b('0xa2')](_0x52999d['key'])){return this[_0x781b('0xd')]['noop'](_0x781b('0xe4'));}var _0x17b088=_0x781b('0x127');var _0x4b613e=util[_0x781b('0x2a')](_0x781b('0x128'),FILES_PATH,rs[_0x781b('0x111')](0x4));var _0x54cba0=util['format']('%s.%s',_0x4b613e,_0x17b088);var _0x16890f=!![];if(_0x52999d['beep']===_0x781b('0x12a')){_0x16890f=![];}var _0x1c10d5=this[_0x781b('0xd')][_0x781b('0x12b')](_0x4b613e,_0x17b088,_0x52999d[_0x781b('0x132')],_0x52999d[_0x781b('0x65')],undefined,_0x16890f);if(_0x1c10d5['result']!==-0x1){this[_0x781b('0xd')][_0x781b('0xa5')](util[_0x781b('0x2a')]('ispeech\x20%s\x20file\x20created',_0x54cba0));var _0x37d14c=this[_0x781b('0x85')]['sync'](this,_0x52999d,_0x54cba0);if(_0x37d14c){for(var _0x193348 in _0x37d14c){if(_0x37d14c[_0x781b('0x95')](_0x193348)){this['channel'][_0x781b('0x9d')](util['format'](_0x781b('0x149'),_0x193348[_0x781b('0x6b')]()),_0x37d14c[_0x193348]);}}return this[_0x781b('0xd')][_0x781b('0xa5')](util[_0x781b('0x2a')](_0x781b('0x14a'),JSON[_0x781b('0x76')](_0x37d14c)));}}return _0x1c10d5;};AGIVertices['prototype']['ispeechtts']=function(_0x15793b){logger[_0x781b('0x31')](util[_0x781b('0x2a')]('Enter\x20in\x20ISPEECHTTS\x20(%s)\x20block',_0x15793b['label']));if(!this['isConfigured'](_0x15793b[_0x781b('0x7d')])){return this[_0x781b('0xd')][_0x781b('0xa5')]('no\x20key\x20configured');}if(!this['isConfigured'](_0x15793b[_0x781b('0x5b')])){return this[_0x781b('0xd')][_0x781b('0xa5')](_0x781b('0xc4'));}this[_0x781b('0xd')][_0x781b('0xa5')](util[_0x781b('0x2a')](_0x781b('0x14b'),_0x15793b[_0x781b('0x5b')]));var _0x5e7c54=this[_0x781b('0x83')][_0x781b('0xbf')](this,_0x15793b);if(_0x5e7c54){this[_0x781b('0xd')][_0x781b('0xa5')](util[_0x781b('0x2a')](_0x781b('0x14c'),_0x5e7c54));var _0x4f4601=this['channel'][_0x781b('0xf9')](_0x5e7c54,_0x15793b[_0x781b('0x132')]);try{fs['unlink'](_0x5e7c54+'.wav');}catch(_0x76fff4){logger[_0x781b('0x2e')](_0x76fff4);}return _0x4f4601;}return this['channel'][_0x781b('0x2e')](_0x15793b,_0x781b('0x14d'));};AGIVertices[_0x781b('0x12')][_0x781b('0x14e')]=function(_0x1bbb00){logger[_0x781b('0x31')](util['format'](_0x781b('0x14f'),_0x1bbb00[_0x781b('0x39')]));if(!this[_0x781b('0xa2')](_0x1bbb00['findBy'])){return this['channel'][_0x781b('0x2e')](_0x1bbb00,_0x781b('0x150'));}logger[_0x781b('0x31')](util['format'](_0x781b('0x151'),this[_0x781b('0xd')][_0x781b('0x3c')],_0x1bbb00[_0x781b('0x152')]));var _0x45aaef=this[_0x781b('0x53')][_0x781b('0xbf')](this,_0x1bbb00[_0x781b('0x152')]);if(_0x45aaef){logger['info'](util[_0x781b('0x2a')]('AGENT\x20%s\x20FOUND\x20BY',this[_0x781b('0xd')]['callerid'],_0x1bbb00[_0x781b('0x152')]));this[_0x781b('0xd')][_0x781b('0xa5')](util['format'](_0x781b('0x153'),this[_0x781b('0xd')][_0x781b('0x3c')],_0x1bbb00[_0x781b('0x152')]));return{'code':0xc8,'result':_0x781b('0x154')};}else{logger[_0x781b('0x31')](util[_0x781b('0x2a')](_0x781b('0x155'),this[_0x781b('0xd')]['callerid'],_0x1bbb00[_0x781b('0x152')]));this[_0x781b('0xd')][_0x781b('0xa5')](util['format']('AGENT\x20%s\x20NOT\x20FOUND\x20BY',this[_0x781b('0xd')][_0x781b('0x3c')],_0x1bbb00[_0x781b('0x152')]));return{'code':0xc8,'result':_0x781b('0x156')};}};AGIVertices[_0x781b('0x12')]['logout']=function(_0x430077){logger[_0x781b('0x31')](util['format'](_0x781b('0x157'),_0x430077[_0x781b('0x39')]));if(!this['isConfigured'](_0x430077[_0x781b('0x152')])){return this[_0x781b('0xd')][_0x781b('0x2e')](_0x430077,'no\x20find\x20by\x20configured');}logger[_0x781b('0x31')](util[_0x781b('0x2a')]('FIND\x20AGENT\x20%s\x20BY\x20%s',this[_0x781b('0xd')][_0x781b('0x3c')],_0x430077[_0x781b('0x152')]));var _0x245d32=this[_0x781b('0x52')][_0x781b('0xbf')](this,_0x430077[_0x781b('0x152')]);if(_0x245d32){logger[_0x781b('0x31')](util[_0x781b('0x2a')]('AGENT\x20%s\x20FOUND\x20BY',this['channel'][_0x781b('0x3c')],_0x430077[_0x781b('0x152')]));this[_0x781b('0xd')][_0x781b('0xa5')](util[_0x781b('0x2a')]('AGENT\x20%s\x20FOUND\x20BY',this[_0x781b('0xd')][_0x781b('0x3c')],_0x430077[_0x781b('0x152')]));return{'code':0xc8,'result':_0x781b('0x154')};}else{logger[_0x781b('0x31')](util[_0x781b('0x2a')](_0x781b('0x155'),this[_0x781b('0xd')]['callerid'],_0x430077[_0x781b('0x152')]));this[_0x781b('0xd')][_0x781b('0xa5')](util['format']('AGENT\x20%s\x20NOT\x20FOUND\x20BY',this[_0x781b('0xd')][_0x781b('0x3c')],_0x430077['findBy']));return{'code':0xc8,'result':_0x781b('0x156')};}};AGIVertices[_0x781b('0x12')][_0x781b('0x158')]=function(_0x443c4f){logger[_0x781b('0x31')](util[_0x781b('0x2a')](_0x781b('0x159'),_0x443c4f[_0x781b('0x39')]));if(!this[_0x781b('0xa2')](_0x443c4f[_0x781b('0x15a')])){return this[_0x781b('0xd')][_0x781b('0x2e')](_0x443c4f,_0x781b('0x15b'));}this[_0x781b('0xd')]['noop'](util[_0x781b('0x2a')](_0x781b('0x15c'),_0x443c4f[_0x781b('0x15a')]));var _0xe27c51=eval(_0x443c4f[_0x781b('0x15a')]);if(!this[_0x781b('0xa2')](_0x443c4f['variable_id'])){return this['channel'][_0x781b('0xa5')]('no\x20variable\x20selected\x20for\x20the\x20result');}var _0x49c151=this[_0x781b('0xf')][_0x781b('0xbf')](this,_0x443c4f[_0x781b('0xd6')]);if(!_0x49c151){return this['channel'][_0x781b('0x2e')](_0x443c4f,'no\x20variable\x20found');}if(_[_0x781b('0x9b')](_0xe27c51)){var _0x38eb90=this;_0xe27c51['forEach'](function(_0x2f2b73,_0x561e4c){_0x38eb90['channel'][_0x781b('0x9d')](util[_0x781b('0x2a')](_0x781b('0x15d'),_0x49c151,_0x561e4c),_0x2f2b73);});return this[_0x781b('0xd')][_0x781b('0xa5')](util[_0x781b('0x2a')]('variable\x20%s[key]\x20set',_0x49c151));}else{return this[_0x781b('0xd')][_0x781b('0x9d')](_0x49c151,_0xe27c51);}};AGIVertices[_0x781b('0x12')][_0x781b('0x15e')]=function(_0x153848){logger[_0x781b('0x31')](util['format']('Enter\x20in\x20MENU\x20(%s)\x20block',_0x153848['label']));if(_0x153848[_0x781b('0x15f')]===0x0){return this[_0x781b('0xa3')](_0x153848);}_0x153848['retry']-=0x1;if(!this[_0x781b('0xa2')](_0x153848['file_id'])){return this[_0x781b('0xd')][_0x781b('0x2e')](_0x153848,_0x781b('0x10a'));}var _0x46602d=this[_0x781b('0x1e')]['sync'](this,_0x153848[_0x781b('0x109')]);if(!_0x46602d){return this[_0x781b('0xd')][_0x781b('0x2e')](_0x153848,_0x781b('0x10b'));}var _0x53a62f=this['channel'][_0x781b('0x160')](_0x46602d,_0x153848['response'],_0x153848[_0x781b('0x161')]);var _0x4b3805=_0x53a62f[_0x781b('0xac')];if(_0x53a62f[_0x781b('0xac')]===-0x1){this[_0x781b('0x37')][_0x781b('0xbf')](this,_0x153848,'-1');return _0x53a62f;}else if(_0x53a62f['extra']==='timeout'){_0x53a62f[_0x781b('0xac')]=_0x53a62f[_0x781b('0xac')][_0x781b('0x98')]>0x0?_0x53a62f[_0x781b('0xac')]:'t';}else if(_[_0x781b('0x45')](_0x53a62f[_0x781b('0xac')])){_0x53a62f[_0x781b('0xac')]='#';_0x4b3805='#';}if(!this[_0x781b('0xa2')](_0x153848[_0x781b('0xd6')])){this[_0x781b('0xd')][_0x781b('0xa5')]('no\x20variable\x20selected\x20for\x20the\x20result');}else{var _0x460f90=this['getVariable']['sync'](this,_0x153848[_0x781b('0xd6')]);if(!_0x460f90){return this['channel'][_0x781b('0x2e')](_0x153848,_0x781b('0xd7'));}this[_0x781b('0xd')][_0x781b('0x9d')](_0x460f90,_0x4b3805);}this[_0x781b('0x37')]['sync'](this,_0x153848,_0x4b3805);return _0x53a62f;};AGIVertices['prototype'][_0x781b('0xa5')]=function(_0x3033b2){logger[_0x781b('0x31')](util[_0x781b('0x2a')](_0x781b('0x162'),_0x3033b2[_0x781b('0x39')]));return this[_0x781b('0xd')]['noop'](_0x3033b2[_0x781b('0x163')]||_0x3033b2[_0x781b('0x39')]);};AGIVertices['prototype']['pause']=function(_0x2f24e2){logger[_0x781b('0x31')](util[_0x781b('0x2a')](_0x781b('0x164'),_0x2f24e2['label']));if(!this['isConfigured'](_0x2f24e2['findBy'])){return this[_0x781b('0xd')][_0x781b('0x2e')](_0x2f24e2,_0x781b('0x150'));}logger[_0x781b('0x31')](util[_0x781b('0x2a')]('FIND\x20AGENT\x20%s\x20BY\x20%s',this['channel']['callerid'],_0x2f24e2[_0x781b('0x152')]));var _0x560509=this[_0x781b('0x4d')][_0x781b('0xbf')](this,_0x2f24e2['pause_id']);var _0x4fd2e1=this[_0x781b('0x4f')][_0x781b('0xbf')](this,_0x2f24e2[_0x781b('0x152')],_0x560509);if(_0x4fd2e1){logger['info'](util[_0x781b('0x2a')](_0x781b('0x153'),this[_0x781b('0xd')][_0x781b('0x3c')],_0x2f24e2[_0x781b('0x152')]));this[_0x781b('0xd')]['noop'](util[_0x781b('0x2a')]('AGENT\x20%s\x20FOUND\x20BY',this[_0x781b('0xd')][_0x781b('0x3c')],_0x2f24e2[_0x781b('0x152')]));return{'code':0xc8,'result':_0x781b('0x154')};}else{logger['info'](util['format'](_0x781b('0x155'),this[_0x781b('0xd')][_0x781b('0x3c')],_0x2f24e2[_0x781b('0x152')]));this[_0x781b('0xd')][_0x781b('0xa5')](util['format'](_0x781b('0x153'),this['channel']['callerid'],_0x2f24e2[_0x781b('0x152')]));return{'code':0xc8,'result':_0x781b('0x156')};}};AGIVertices['prototype'][_0x781b('0x165')]=function(_0x4d1381){logger[_0x781b('0x31')](util[_0x781b('0x2a')](_0x781b('0x166'),_0x4d1381[_0x781b('0x39')]));if(!this[_0x781b('0xa2')](_0x4d1381[_0x781b('0x109')])){return this[_0x781b('0xd')]['error'](_0x4d1381,_0x781b('0x10a'));}var _0x5c24d4=this[_0x781b('0x1e')]['sync'](this,_0x4d1381[_0x781b('0x109')]);if(!_0x5c24d4){return this[_0x781b('0xd')][_0x781b('0x2e')](_0x4d1381,'no\x20file\x20audio\x20found');}var _0x31d8b9=this['channel']['exec'](_0x781b('0x167'),[_0x5c24d4,_0x4d1381['opts']]);if(_0x31d8b9[_0x781b('0xac')]===-0x1){return _0x31d8b9;}return this[_0x781b('0xd')][_0x781b('0xa5')](util[_0x781b('0x2a')](_0x781b('0xc3'),_0x781b('0x167'),_0x5c24d4));};AGIVertices[_0x781b('0x12')][_0x781b('0x168')]=function(_0x31c6cf){logger['info'](util[_0x781b('0x2a')](_0x781b('0x169'),_0x31c6cf[_0x781b('0x39')]));if(!this[_0x781b('0xa2')](_0x31c6cf[_0x781b('0x16a')])){return this[_0x781b('0xd')][_0x781b('0x2e')](_0x31c6cf,_0x781b('0x16b'));}var _0x12df09='';var _0x163683=parseInt(_0x31c6cf[_0x781b('0x16a')],0xa);if(isNaN(_0x163683)){_0x12df09=_0x31c6cf[_0x781b('0x16a')];}else{_0x12df09=this[_0x781b('0x13')][_0x781b('0xbf')](this,_0x31c6cf[_0x781b('0x16a')]);if(!_0x12df09){return this['channel'][_0x781b('0x2e')](_0x31c6cf,_0x781b('0x16c'));}}var _0x15d909='';if(this[_0x781b('0xa2')](_0x31c6cf[_0x781b('0x109')])){var _0x102a06=this[_0x781b('0x1e')][_0x781b('0xbf')](this,_0x31c6cf[_0x781b('0x109')]);if(_0x102a06){_0x15d909=_0x102a06;}}this[_0x781b('0x37')][_0x781b('0xbf')](this,_0x31c6cf,_0x12df09);if(_0x31c6cf[_0x781b('0xe1')][_0x781b('0x16d')]('x')<0x0){_0x31c6cf[_0x781b('0xe1')]+='x';}if(_0x31c6cf[_0x781b('0xe1')][_0x781b('0x16d')]('X')<0x0){_0x31c6cf[_0x781b('0xe1')]+='X';}this[_0x781b('0xd')][_0x781b('0x9d')]('XMCS-QUEUE',_0x12df09?_0x12df09[_0x781b('0x16e')]():'');var _0x707f5a=this[_0x781b('0xd')][_0x781b('0x57')](_0x781b('0x16f'),[_0x12df09,_0x31c6cf[_0x781b('0xe1')],_0x31c6cf[_0x781b('0x74')],_0x15d909,_0x31c6cf[_0x781b('0x65')],_0x31c6cf[_0x781b('0x7')],_0x31c6cf[_0x781b('0x170')],_0x31c6cf['gosub'],'',_0x31c6cf['position']]);if(_0x707f5a[_0x781b('0xac')]===-0x1){return _0x707f5a;}return this[_0x781b('0xd')][_0x781b('0xa5')](util[_0x781b('0x2a')](_0x781b('0xc3'),_0x781b('0x16f'),_0x12df09));};AGIVertices[_0x781b('0x12')][_0x781b('0x171')]=function(_0x412d99){logger[_0x781b('0x31')](util[_0x781b('0x2a')](_0x781b('0x172'),_0x412d99['label']));var _0x16fff3=_0x412d99[_0x781b('0x173')]||_0x781b('0x127');var _0x2024ce=util['format'](_0x781b('0x174'),this[_0x781b('0xd')][_0x781b('0x38')],rs['generate'](0x5));var _0x322e84=util[_0x781b('0x2a')](_0x781b('0x175'),FILES_PATH,_0x2024ce,_0x16fff3);var _0x5c2491=util[_0x781b('0x2a')](_0x781b('0x128'),FILES_PATH,_0x2024ce);this[_0x781b('0x3d')][_0x781b('0xbf')](this,_0x412d99,_0x2024ce,_0x322e84);this[_0x781b('0xd')][_0x781b('0x9d')](_0x781b('0x176'),_0x2024ce);logger[_0x781b('0x31')](_0x781b('0x177'),_0x5c2491,_0x16fff3,_0x412d99['escape_digits'],_0x412d99[_0x781b('0x65')]);return this['channel'][_0x781b('0x12b')](_0x5c2491,_0x16fff3,_0x412d99[_0x781b('0x178')],_0x412d99[_0x781b('0x65')],undefined,!![]);};AGIVertices[_0x781b('0x12')][_0x781b('0x179')]=function(_0x14b658){logger[_0x781b('0x31')](util[_0x781b('0x2a')](_0x781b('0x17a'),_0x14b658[_0x781b('0x39')]));if(!this['isConfigured'](_0x14b658[_0x781b('0x74')])){return this['channel'][_0x781b('0xa5')](_0x781b('0x17b'));}var _0x567dc0=this[_0x781b('0x64')][_0x781b('0xbf')](this,_0x14b658);logger[_0x781b('0x31')](util[_0x781b('0x2a')](_0x781b('0x17c'),util[_0x781b('0x17d')](_0x567dc0,{'showHidden':![],'depth':null})));if(!this[_0x781b('0xa2')](_0x14b658[_0x781b('0xd6')])){return this['channel'][_0x781b('0xa5')](_0x781b('0x17e'));}var _0x5601cb=this[_0x781b('0xf')]['sync'](this,_0x14b658[_0x781b('0xd6')]);if(!_0x5601cb){return this[_0x781b('0xd')]['error'](_0x14b658,'no\x20variable\x20found');}this[_0x781b('0xd')][_0x781b('0x9d')](util[_0x781b('0x2a')](_0x781b('0x17f'),_0x5601cb),_0x567dc0[_0x781b('0x78')]?_0x567dc0['statusCode']:_0x781b('0x180'));this[_0x781b('0xd')][_0x781b('0x9d')](util[_0x781b('0x2a')](_0x781b('0x181'),_0x5601cb),_0x567dc0[_0x781b('0x79')]?_0x567dc0['statusMessage']:'OK');if(_0x567dc0[_0x781b('0x6c')]){try{this['saveRestApiResult'](_0x567dc0['body'],_0x5601cb);}catch(_0x5935dd){logger[_0x781b('0x2e')](util[_0x781b('0x2a')]('Unable\x20to\x20set\x20result\x20in\x20variable\x20%s',_0x5601cb));}}return this[_0x781b('0xd')][_0x781b('0xa5')](util['format'](_0x781b('0xda'),_0x5601cb));};AGIVertices[_0x781b('0x12')][_0x781b('0x182')]=function(_0x3e2fe3){logger['info'](util[_0x781b('0x2a')](_0x781b('0x183'),_0x3e2fe3[_0x781b('0x39')]));return this['channel']['sayDigits'](_0x3e2fe3[_0x781b('0x184')][_0x781b('0x58')](/\s+/g,''),_0x3e2fe3['escape_digits']);};AGIVertices['prototype'][_0x781b('0x185')]=function(_0x214d69){logger[_0x781b('0x31')](util[_0x781b('0x2a')](_0x781b('0x186'),_0x214d69['label']));return this['channel'][_0x781b('0x187')](_0x214d69[_0x781b('0x66')][_0x781b('0x58')](/\s+/g,''),_0x214d69[_0x781b('0x178')]);};AGIVertices[_0x781b('0x12')][_0x781b('0x188')]=function(_0x1c6c53){logger['info'](util[_0x781b('0x2a')](_0x781b('0x189'),_0x1c6c53['label']));return this['channel'][_0x781b('0x18a')](_0x1c6c53['text'],_0x1c6c53[_0x781b('0x178')]);};AGIVertices[_0x781b('0x12')]['sendMail']=function(_0x4310d0){logger[_0x781b('0x31')](util[_0x781b('0x2a')](_0x781b('0x18b'),_0x4310d0['label']));if(!this[_0x781b('0xa2')](_0x4310d0[_0x781b('0x18c')])){return this[_0x781b('0xd')][_0x781b('0xa5')](_0x781b('0x18d'));}var _0x5b8588=this['getMailAccount'][_0x781b('0xbf')](this,_0x4310d0['account_id']);if(!_0x5b8588||!_0x5b8588[_0x781b('0x18e')]){return this[_0x781b('0xd')][_0x781b('0x2e')](_0x4310d0,'no\x20mail\x20account\x20found');}var _0x3e15b7={'from':util[_0x781b('0x2a')](_0x781b('0x18f'),_0x5b8588[_0x781b('0x17')],_0x5b8588[_0x781b('0x190')]||_0x5b8588['Smtp']['user']),'to':_0x4310d0['to']||'','cc':_0x4310d0['cc']||'','bcc':_0x4310d0['bcc']||'','subject':_0x4310d0[_0x781b('0x191')],'html':_0x4310d0[_0x781b('0x5b')],'text':_0x4310d0[_0x781b('0x5b')]};var _0x1c4473={'tls':{'rejectUnauthorized':![]}};if(_0x5b8588[_0x781b('0x18e')][_0x781b('0x192')]){_0x1c4473[_0x781b('0x192')]=_0x5b8588[_0x781b('0x18e')][_0x781b('0x192')];}else{_0x1c4473[_0x781b('0x193')]=_0x5b8588[_0x781b('0x18e')]['host'];_0x1c4473[_0x781b('0x194')]=_0x5b8588[_0x781b('0x18e')]['port'];_0x1c4473[_0x781b('0x195')]=_0x5b8588[_0x781b('0x18e')][_0x781b('0x195')];}if(_0x5b8588[_0x781b('0x18e')][_0x781b('0x196')]){_0x1c4473[_0x781b('0x197')]={'user':_0x5b8588['Smtp'][_0x781b('0x198')],'pass':_0x5b8588[_0x781b('0x18e')][_0x781b('0x199')]};}if(this[_0x781b('0xa2')](_0x4310d0['template_id'])){}logger[_0x781b('0xdb')](_0x781b('0x19a'),JSON[_0x781b('0x76')](_0x3e15b7));this[_0x781b('0x37')][_0x781b('0xbf')](this,_0x4310d0,_0x4310d0[_0x781b('0x18c')]);this[_0x781b('0xd')][_0x781b('0xa5')](util[_0x781b('0x2a')]('Trying\x20SendMail\x20with\x20account\x20%s',_0x5b8588['name']));this[_0x781b('0x23')][_0x781b('0xbf')](this,_0x1c4473,_0x3e15b7);return this[_0x781b('0xd')][_0x781b('0xa5')](_0x781b('0x19b'));};AGIVertices[_0x781b('0x12')]['sendFax']=function(_0x51e0d9){logger['info'](util[_0x781b('0x2a')]('Enter\x20in\x20SENDFAX\x20(%s)\x20block',_0x51e0d9[_0x781b('0x39')]));return this['channel'][_0x781b('0xa5')](_0x781b('0x19c'));};AGIVertices[_0x781b('0x12')][_0x781b('0x19d')]=function(_0xc06082){logger[_0x781b('0x31')](util[_0x781b('0x2a')](_0x781b('0x19e'),_0xc06082[_0x781b('0x39')]));if(!this[_0x781b('0xa2')](_0xc06082[_0x781b('0x19f')])){return this['channel'][_0x781b('0xa5')](_0x781b('0x1a0'));}var _0x3c36d0=this['getSmsAccount']['sync'](this,_0xc06082['sms_account_id']);if(!_0x3c36d0){return this[_0x781b('0xd')]['error'](_0xc06082,'no\x20sms\x20account\x20found');}var _0x1044ee={'body':_0xc06082[_0x781b('0x1a1')],'phone':_0xc06082['to']||'','SmsAccountId':_0x3c36d0['id']};logger[_0x781b('0xdb')](_0x781b('0x1a2'),JSON[_0x781b('0x76')](_0x1044ee));this['createSquareDetailsReport'][_0x781b('0xbf')](this,_0xc06082,_0xc06082[_0x781b('0x19f')]);this[_0x781b('0xd')]['noop'](util['format']('Trying\x20SendSMS\x20with\x20account\x20%s',_0x3c36d0[_0x781b('0x17')]));this[_0x781b('0x36')][_0x781b('0xbf')](this,_0x1044ee);return this[_0x781b('0xd')][_0x781b('0xa5')](_0x781b('0x1a3'));};AGIVertices[_0x781b('0x12')][_0x781b('0x1a4')]=function(_0x1414a0){logger['info'](util[_0x781b('0x2a')]('Enter\x20in\x20SET\x20(%s)\x20block',_0x1414a0[_0x781b('0x39')]));if(!this[_0x781b('0xa2')](_0x1414a0[_0x781b('0xd6')])){return this[_0x781b('0xd')][_0x781b('0x2e')](_0x1414a0,_0x781b('0x1a5'));}var _0x2b13cc=this[_0x781b('0xf')]['sync'](this,_0x1414a0[_0x781b('0xd6')]);if(!_0x2b13cc){return this[_0x781b('0xd')]['error'](_0x1414a0,_0x781b('0xd7'));}return this[_0x781b('0xd')][_0x781b('0x9d')](_0x2b13cc,_0x1414a0[_0x781b('0x1a6')]);};AGIVertices[_0x781b('0x12')]['start']=function(_0x1e61cd){logger[_0x781b('0x31')](util[_0x781b('0x2a')](_0x781b('0x1a7'),_0x1e61cd[_0x781b('0x39')]));this[_0x781b('0xd')][_0x781b('0xa5')]('START\x20CALLY\x20SQUARE');if(_0x1e61cd[_0x781b('0xb7')]===_0x781b('0x1a8')){this['channel'][_0x781b('0xa5')]('Answer');return this[_0x781b('0xd')][_0x781b('0xb7')]();}return this[_0x781b('0xd')]['noop'](_0x781b('0x1a9'));};AGIVertices[_0x781b('0x12')]['subproject']=function(_0x286791){logger['info'](util[_0x781b('0x2a')]('Enter\x20in\x20SUBPROJECT\x20(%s)\x20block',_0x286791[_0x781b('0x39')]));if(!this[_0x781b('0xa2')](_0x286791[_0x781b('0x1aa')])){return this[_0x781b('0xd')][_0x781b('0x2e')](_0x286791,_0x781b('0x1ab'));}var _0x309e05=this[_0x781b('0x16')][_0x781b('0xbf')](this,_0x286791[_0x781b('0x1aa')]);if(!this['isConfigured'](_0x309e05)){return this[_0x781b('0xd')][_0x781b('0x2e')](_0x286791,util[_0x781b('0x2a')](_0x781b('0x1ac'),_0x286791[_0x781b('0x1aa')]));}if(_0x309e05===this[_0x781b('0xd')][_0x781b('0x3b')]){return this[_0x781b('0xd')][_0x781b('0x2e')](_0x286791,_0x781b('0x1ad'));}this['createSquareDetailsReport']['sync'](this,_0x286791,_0x309e05);var _0x49a786=this['channel'][_0x781b('0x57')](_0x781b('0x1ae'),util['format'](_0x781b('0x1af'),config[_0x781b('0x7')][_0x781b('0x193')]||_0x781b('0x1b0'),_0x309e05,this[_0x781b('0xd')][_0x781b('0x3b')]));if(_0x49a786[_0x781b('0xac')]===-0x1){return _0x49a786;}return this[_0x781b('0xd')]['noop'](util['format'](_0x781b('0xc3'),_0x781b('0x1ae'),_0x309e05));};AGIVertices['prototype'][_0x781b('0x1b1')]=function(_0x94170c){logger[_0x781b('0x31')](util[_0x781b('0x2a')](_0x781b('0x1b2'),_0x94170c[_0x781b('0x39')]));var _0x1903ee=this[_0x781b('0x1b3')][_0x781b('0xbf')](this,_0x94170c['command']);this[_0x781b('0x37')][_0x781b('0xbf')](this,_0x94170c,_0x94170c[_0x781b('0xb5')]);if(this[_0x781b('0xa2')](_0x94170c[_0x781b('0xd6')])){var _0x1929b3=this['getVariable'][_0x781b('0xbf')](this,_0x94170c[_0x781b('0xd6')]);if(_0x1929b3){this[_0x781b('0xd')][_0x781b('0x9d')](_0x1929b3,_0x1903ee);return this[_0x781b('0xd')][_0x781b('0xa5')](util[_0x781b('0x2a')](_0x781b('0x1b4'),_0x94170c[_0x781b('0xb5')],_0x1929b3));}}return this[_0x781b('0xd')][_0x781b('0xa5')](util['format'](_0x781b('0x1b5'),_0x94170c[_0x781b('0xb5')]));};AGIVertices['prototype']['google_cloud_tts']=function(_0x362b0e){logger[_0x781b('0x31')](util[_0x781b('0x2a')](_0x781b('0x1b6'),_0x362b0e[_0x781b('0x39')]));_0x362b0e[_0x781b('0x5b')]=_0x362b0e['text'][_0x781b('0x58')](/(\r\n|\n|\r)/gm,'\x20');if(!this[_0x781b('0xa2')](_0x362b0e['apiKey'])){return this[_0x781b('0xd')][_0x781b('0xa5')](_0x781b('0x1b7'));}if(!this[_0x781b('0xa2')](_0x362b0e[_0x781b('0x5b')])){return this[_0x781b('0xd')]['noop'](_0x781b('0xc4'));}this['channel'][_0x781b('0xa5')](util[_0x781b('0x2a')](_0x781b('0x1b8'),_0x362b0e[_0x781b('0x5b')]));var _0x193bdc=this['googleCloudTTS'][_0x781b('0xbf')](this,_0x362b0e);if(_0x193bdc){this[_0x781b('0xd')][_0x781b('0xa5')](util[_0x781b('0x2a')]('Google\x20Cloud\x20TTS\x20%s\x20file\x20created',_0x193bdc));var _0x1a6b10=this[_0x781b('0xd')][_0x781b('0xf9')](_0x193bdc);try{fs[_0x781b('0x11e')](_0x193bdc+_0x781b('0xfa'));}catch(_0xcdb6d7){logger[_0x781b('0x2e')](_0xcdb6d7);}return _0x1a6b10;}return this[_0x781b('0xd')][_0x781b('0x2e')](_0x362b0e,_0x781b('0x1b9'));};AGIVertices[_0x781b('0x12')][_0x781b('0x1ba')]=function(_0x10c347){logger['info'](util[_0x781b('0x2a')](_0x781b('0x1bb'),_0x10c347[_0x781b('0x39')]));_0x10c347['text']=_0x10c347[_0x781b('0x5b')][_0x781b('0x58')](/(\r\n|\n|\r)/gm,'\x20');if(!this[_0x781b('0xa2')](_0x10c347[_0x781b('0x5b')])){return this[_0x781b('0xd')]['noop'](_0x781b('0xc4'));}this[_0x781b('0xd')][_0x781b('0xa5')](util[_0x781b('0x2a')](_0x781b('0x1bc'),_0x10c347['text']));var _0x35fa78=this[_0x781b('0x62')][_0x781b('0xbf')](this,_0x10c347);if(_0x35fa78){this['channel'][_0x781b('0xa5')](util[_0x781b('0x2a')]('Google\x20TTS\x20%s\x20file\x20created',_0x35fa78));var _0x189787=this[_0x781b('0xd')][_0x781b('0xf9')](_0x35fa78);try{fs[_0x781b('0x11e')](_0x35fa78+_0x781b('0xfa'));}catch(_0x42e982){logger[_0x781b('0x2e')](_0x42e982);}return _0x189787;}return this[_0x781b('0xd')][_0x781b('0x2e')](_0x10c347,_0x781b('0x1bd'));};AGIVertices[_0x781b('0x12')]['unpause']=function(_0x38e67c){logger[_0x781b('0x31')](util[_0x781b('0x2a')](_0x781b('0x1be'),_0x38e67c[_0x781b('0x39')]));if(!this[_0x781b('0xa2')](_0x38e67c[_0x781b('0x152')])){return this[_0x781b('0xd')][_0x781b('0x2e')](_0x38e67c,_0x781b('0x150'));}logger[_0x781b('0x31')](util['format'](_0x781b('0x151'),this[_0x781b('0xd')][_0x781b('0x3c')],_0x38e67c['findBy']));var _0x3c5b76=this['agentUnpause'][_0x781b('0xbf')](this,_0x38e67c[_0x781b('0x152')]);if(_0x3c5b76){logger[_0x781b('0x31')](util['format'](_0x781b('0x153'),this['channel'][_0x781b('0x3c')],_0x38e67c[_0x781b('0x152')]));this['channel'][_0x781b('0xa5')](util[_0x781b('0x2a')](_0x781b('0x153'),this['channel']['callerid'],_0x38e67c['findBy']));return{'code':0xc8,'result':'success'};}else{logger[_0x781b('0x31')](util[_0x781b('0x2a')](_0x781b('0x155'),this['channel'][_0x781b('0x3c')],_0x38e67c[_0x781b('0x152')]));this['channel'][_0x781b('0xa5')](util[_0x781b('0x2a')](_0x781b('0x155'),this[_0x781b('0xd')][_0x781b('0x3c')],_0x38e67c[_0x781b('0x152')]));return{'code':0xc8,'result':_0x781b('0x156')};}};AGIVertices[_0x781b('0x12')][_0x781b('0x1bf')]=function(_0x511822){logger[_0x781b('0x31')](util[_0x781b('0x2a')](_0x781b('0x1c0'),_0x511822[_0x781b('0x39')]));var _0x2d95b5=this[_0x781b('0xd')][_0x781b('0x57')](_0x781b('0x1c1'),[_0x511822[_0x781b('0x1c2')],_0x511822['options']]);if(_0x2d95b5[_0x781b('0xac')]===-0x1){return _0x2d95b5;}return this['channel'][_0x781b('0xa5')](util['format'](_0x781b('0xc3'),_0x781b('0x1c1'),_0x511822[_0x781b('0x1c2')]));};AGIVertices[_0x781b('0x12')]['vswitch']=function(_0x22db90){logger['info'](util[_0x781b('0x2a')](_0x781b('0x1c3'),_0x22db90['label']));if(!this[_0x781b('0xa2')](_0x22db90[_0x781b('0xd6')])){return this[_0x781b('0xd')]['error'](_0x22db90,'no\x20variable\x20selected');}var _0x3332f9=this[_0x781b('0xf')][_0x781b('0xbf')](this,_0x22db90[_0x781b('0xd6')]);if(!_0x3332f9){return this['channel'][_0x781b('0x2e')](_0x22db90,'no\x20variable\x20found');}var _0x11cb34=this[_0x781b('0xd')][_0x781b('0xf')](_0x3332f9);return{'code':0xc8,'result':_0x11cb34['extra']?_0x11cb34[_0x781b('0xa1')]:'-'};};String['prototype'][_0x781b('0x1c4')]=function(_0x4203ce,_0x29d402){return this[_0x781b('0x9f')](_0x4203ce)[_0x781b('0x1c5')](_0x29d402);};module[_0x781b('0x1c6')]=AGIVertices;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9de3=['transfereeuniqueid','secondtransfereruniqueid','transfertargetuniqueid','origtransfereruniqueid','[%s][BLINDTRANSFER:UNIQUEID]','transfereruniqueid','transfererlinkedid','[ACW][syncBlindTransfer]\x20%s','all','[%s][AUTOPAUSE][AGENT:%s][QUEUE:%]','Auto-Pause','[ACW][syncAgentRingNoAnswer]\x20%s','util','lodash','moment','../../../config/logger','acw','../rpc/user','voiceQueues','agents','timers','channels','agentconnect','bind','syncHangupRequest','hangup','agentringnoanswer','syncAgentRingNoAnswer','blindtransfer','syncBlindTransfer','custom:agentConnectPreview','syncAgentConnectPreview','milliseconds','seconds','prototype','startAcw','ACW','mandatoryDisposition','mandatoryDispositionPause','name','Action','QueuePause','then','info','[%s][START][AGENT:%s][QUEUE:%s]','attended','destlinkedid','savePause','[%s][TIMER:%s][AGENT:%s][QUEUE:%s]','acwTimeout','timer','lastPauseAt','format','uniqueid','queue','updateAcw','update','[%s][UPDATE][ACWTIME:%s]','catch','[%s][UPDATE][ERRORS:%s]','error','finally','message','[%s][TIMER][STOP][AGENT:%s]','saveUnpause','[ACW][STOP]\x20Interface\x20%s\x20doesn\x27t\x20have\x20timer','stringify','[ACW][STOP]\x20%s','syncAgentConnect','interface','[ACW][syncAgentConnect]\x20%s','[ACW][syncAgentConnectPreview]\x20%s','linkedid','isUndefined','[%s][HANGUP:LINKEDID]','syncHangup','[%s][HANGUPATTENDEDTRANSFER:UNIQUEID]','[%s][HANGUPATTENDEDTRANSFER:LINKEDID]','syncAttendedTransfer','isNil'];(function(_0x27dc37,_0x4efb5c){var _0xec2064=function(_0x1e80f1){while(--_0x1e80f1){_0x27dc37['push'](_0x27dc37['shift']());}};_0xec2064(++_0x4efb5c);}(_0x9de3,0xfc));var _0x39de=function(_0x4c557e,_0x5b2fbd){_0x4c557e=_0x4c557e-0x0;var _0x414db8=_0x9de3[_0x4c557e];return _0x414db8;};'use strict';var util=require(_0x39de('0x0'));var _=require(_0x39de('0x1'));var moment=require(_0x39de('0x2'));var ami=require('../ami');var logger=require(_0x39de('0x3'))(_0x39de('0x4'));var RpcUser=require(_0x39de('0x5'));var RpcVoiceAgentReport=require('../rpc/voiceAgentReport');function Acw(_0x517455){this[_0x39de('0x6')]=_0x517455['voiceQueues'];this[_0x39de('0x7')]=_0x517455[_0x39de('0x7')];this[_0x39de('0x8')]=_0x517455[_0x39de('0x8')];this[_0x39de('0x9')]={};ami['on'](_0x39de('0xa'),this['syncAgentConnect'][_0x39de('0xb')](this));ami['on']('hanguprequest',this[_0x39de('0xc')]['bind'](this));ami['on'](_0x39de('0xd'),this['syncHangup'][_0x39de('0xb')](this));ami['on'](_0x39de('0xe'),this[_0x39de('0xf')]['bind'](this));ami['on']('attendedtransfer',this['syncAttendedTransfer'][_0x39de('0xb')](this));ami['on'](_0x39de('0x10'),this[_0x39de('0x11')][_0x39de('0xb')](this));ami['on'](_0x39de('0x12'),this[_0x39de('0x13')]['bind'](this));}function getDiff(_0x4cfaa8){var _0x258e38=moment()[_0x39de('0x14')](0x0);var _0x31416d=moment(_0x4cfaa8)[_0x39de('0x14')](0x0);return _0x258e38['diff'](_0x31416d,_0x39de('0x15'));}Acw[_0x39de('0x16')][_0x39de('0x17')]=function(_0x12d327){try{var _0x1d2b3c=this;var _0x434d6f=this[_0x39de('0x9')][_0x12d327]['interface'];var _0x3d5c7e=this[_0x39de('0x9')][_0x12d327]['queue'];var _0x6681fc=this[_0x39de('0x6')][_0x3d5c7e];var _0xfb9d97=![];var _0xc289b3=_0x39de('0x18');if(_0x6681fc[_0x39de('0x19')]){if(_0x6681fc[_0x39de('0x1a')][_0x39de('0x1b')]){_0xfb9d97=!![];_0xc289b3=_0x6681fc[_0x39de('0x1a')]['name'];}}ami[_0x39de('0x1c')]({'action':_0x39de('0x1d'),'interface':_0x434d6f,'paused':!![],'reason':_0xc289b3})[_0x39de('0x1e')](function(_0x150133){if(_0x1d2b3c[_0x39de('0x7')][_0x434d6f]){return RpcUser['getAgent'](_0x1d2b3c[_0x39de('0x7')][_0x434d6f]['id'])['then'](function(_0x25d880){if(_0x25d880&&!_0x25d880['voicePause']){logger[_0x39de('0x1f')](_0x39de('0x20'),_0x12d327,_0x434d6f,_0x3d5c7e);var _0x388504=_0x1d2b3c[_0x39de('0x9')][_0x12d327][_0x39de('0x21')]&&_0x1d2b3c[_0x39de('0x9')][_0x12d327][_0x39de('0x22')]?_0x1d2b3c['channels'][_0x12d327]['destlinkedid']:_0x12d327;return RpcUser[_0x39de('0x23')](_0x1d2b3c[_0x39de('0x7')][_0x434d6f],_0xc289b3,_0x388504)[_0x39de('0x1e')](function(_0x521142){if(!_0xfb9d97){_0x1d2b3c[_0x39de('0x8')][_0x434d6f]={};logger['info'](_0x39de('0x24'),_0x12d327,_0x1d2b3c[_0x39de('0x6')][_0x3d5c7e][_0x39de('0x25')],_0x434d6f,_0x3d5c7e);_0x1d2b3c[_0x39de('0x8')][_0x434d6f][_0x39de('0x26')]=setTimeout(_0x1d2b3c['stopAcw'][_0x39de('0xb')](_0x1d2b3c,_0x434d6f),_0x1d2b3c['voiceQueues'][_0x3d5c7e][_0x39de('0x25')]*0x3e8);_0x1d2b3c['timers'][_0x434d6f][_0x39de('0x27')]=moment()[_0x39de('0x28')]('YYYY-MM-DD\x20HH:mm:ss');_0x1d2b3c[_0x39de('0x8')][_0x434d6f][_0x39de('0x29')]=_0x12d327;_0x1d2b3c[_0x39de('0x8')][_0x434d6f][_0x39de('0x2a')]=_0x3d5c7e;_0x1d2b3c['timers'][_0x434d6f][_0x39de('0x2b')]=function(){var _0x3c78d4=getDiff(_0x1d2b3c[_0x39de('0x8')][_0x434d6f]['lastPauseAt']);clearTimeout(_0x1d2b3c['timers'][_0x434d6f][_0x39de('0x26')]);_0x1d2b3c[_0x39de('0x8')][_0x434d6f][_0x39de('0x26')]=![];RpcVoiceAgentReport[_0x39de('0x2c')]({'acwtime':_0x3c78d4},_0x1d2b3c[_0x39de('0x8')][_0x434d6f]['uniqueid'],_0x434d6f)[_0x39de('0x1e')](function(_0x2f8438){logger['info'](_0x39de('0x2d'),_0x12d327,_0x3c78d4,_0x2f8438);})[_0x39de('0x2e')](function(_0x167409){logger['error'](_0x39de('0x2f'),_0x12d327,_0x167409);});delete _0x1d2b3c[_0x39de('0x8')][_0x434d6f];};}});}else{logger[_0x39de('0x1f')]('[%s][INPAUSE][AGENT:%s][QUEUE:%s]',_0x12d327,_0x434d6f,_0x3d5c7e);}});}})['catch'](function(_0x250042){logger[_0x39de('0x30')]('[%s][TIMER:%s][AGENT:%s][QUEUE:%s]',_0x12d327,_0x1d2b3c['voiceQueues'][_0x3d5c7e][_0x39de('0x25')],_0x434d6f,_0x3d5c7e);})[_0x39de('0x31')](function(){delete _0x1d2b3c[_0x39de('0x9')][_0x12d327];});}catch(_0x41c50d){logger[_0x39de('0x30')]('[ACW][START]\x20%s',_0x41c50d[_0x39de('0x32')]);}};Acw['prototype']['stopAcw']=function(_0x10f98a){try{var _0x415386=this;if(_0x415386[_0x39de('0x8')][_0x10f98a]){_0x415386[_0x39de('0x8')][_0x10f98a][_0x39de('0x26')]=![];var _0x37caed=_0x415386[_0x39de('0x8')][_0x10f98a]['uniqueid'];var _0x2aceb2=_0x415386['timers'][_0x10f98a][_0x39de('0x2a')];var _0x342777=_0x415386['voiceQueues'][_0x2aceb2][_0x39de('0x25')];logger['info'](_0x39de('0x33'),_0x37caed,_0x10f98a);RpcUser[_0x39de('0x34')](this['agents'][_0x10f98a]);RpcVoiceAgentReport[_0x39de('0x2c')]({'acwtime':_0x342777,'agentacw':!![]},_0x37caed,_0x10f98a)['then'](function(_0x4874cd){logger[_0x39de('0x1f')](_0x39de('0x2d'),_0x37caed,_0x342777,_0x4874cd);})[_0x39de('0x2e')](function(_0x5370f4){logger[_0x39de('0x30')](_0x39de('0x2f'),_0x37caed,_0x5370f4);});}else{logger[_0x39de('0x30')](_0x39de('0x35'),_0x10f98a);if(_0x415386[_0x39de('0x8')]){logger[_0x39de('0x1f')]('[ACW][TIMERS]',JSON[_0x39de('0x36')](_0x415386[_0x39de('0x8')]));}}}catch(_0x5e0b8b){logger[_0x39de('0x30')](_0x39de('0x37'),_0x5e0b8b[_0x39de('0x32')]);}};Acw['prototype'][_0x39de('0x38')]=function(_0x4cf773){try{if(this[_0x39de('0x6')][_0x4cf773[_0x39de('0x2a')]]&&(this['voiceQueues'][_0x4cf773[_0x39de('0x2a')]][_0x39de('0x4')]||this[_0x39de('0x6')][_0x4cf773[_0x39de('0x2a')]][_0x39de('0x19')])){if(this['agents'][_0x4cf773['interface']]){this[_0x39de('0x9')][_0x4cf773['uniqueid']]={'queue':_0x4cf773['queue'],'interface':_0x4cf773[_0x39de('0x39')],'destlinkedid':_0x4cf773[_0x39de('0x22')]};}}}catch(_0x563dcc){logger[_0x39de('0x30')](_0x39de('0x3a'),_0x563dcc[_0x39de('0x32')]);}};Acw[_0x39de('0x16')][_0x39de('0x13')]=function(_0x8873e4){try{if(this[_0x39de('0x6')][_0x8873e4['queue']]&&(this['voiceQueues'][_0x8873e4['queue']]['acw']||this[_0x39de('0x6')][_0x8873e4[_0x39de('0x2a')]]['mandatoryDisposition'])){if(this['agents'][_0x8873e4[_0x39de('0x39')]]){this[_0x39de('0x9')][_0x8873e4[_0x39de('0x29')]]={'queue':_0x8873e4['queue'],'interface':_0x8873e4[_0x39de('0x39')]};}}}catch(_0x5705c2){logger[_0x39de('0x30')](_0x39de('0x3b'),_0x5705c2[_0x39de('0x32')]);}};Acw[_0x39de('0x16')]['syncHangupRequest']=function(_0x92e625){try{if(this[_0x39de('0x9')][_0x92e625[_0x39de('0x29')]]&&_['isUndefined'](this[_0x39de('0x9')][_0x92e625[_0x39de('0x29')]]['attended'])){logger[_0x39de('0x1f')]('[%s][HANGUP:UNIQUEID]',_0x92e625[_0x39de('0x29')]);this[_0x39de('0x17')](_0x92e625[_0x39de('0x29')]);}else if(this[_0x39de('0x9')][_0x92e625[_0x39de('0x3c')]]&&_[_0x39de('0x3d')](this[_0x39de('0x9')][_0x92e625[_0x39de('0x3c')]]['attended'])){logger[_0x39de('0x1f')](_0x39de('0x3e'),_0x92e625['linkedid']);this[_0x39de('0x17')](_0x92e625['linkedid']);}}catch(_0x543e13){logger[_0x39de('0x30')]('[ACW][syncHangupRequest]\x20%s',_0x543e13[_0x39de('0x32')]);}};Acw[_0x39de('0x16')][_0x39de('0x3f')]=function(_0x18cec6){try{if(this[_0x39de('0x9')][_0x18cec6['uniqueid']]&&this[_0x39de('0x9')][_0x18cec6[_0x39de('0x29')]][_0x39de('0x21')]){logger['info'](_0x39de('0x40'),_0x18cec6['uniqueid']);this[_0x39de('0x17')](_0x18cec6[_0x39de('0x29')]);}else if(this[_0x39de('0x9')][_0x18cec6['linkedid']]&&this['channels'][_0x18cec6[_0x39de('0x3c')]][_0x39de('0x21')]){logger[_0x39de('0x1f')](_0x39de('0x41'),_0x18cec6[_0x39de('0x3c')]);this['startAcw'](_0x18cec6[_0x39de('0x3c')]);}}catch(_0x4b5c1c){logger[_0x39de('0x30')]('[ACW][syncHangup]\x20%s',_0x4b5c1c[_0x39de('0x32')]);}};Acw[_0x39de('0x16')][_0x39de('0x42')]=function(_0x2c3813){try{if(!_[_0x39de('0x43')](this[_0x39de('0x9')][_0x2c3813[_0x39de('0x44')]])){this[_0x39de('0x17')](_0x2c3813[_0x39de('0x44')]);if(this[_0x39de('0x9')][_0x2c3813[_0x39de('0x45')]]){this[_0x39de('0x9')][_0x2c3813[_0x39de('0x45')]][_0x39de('0x21')]=!![];this[_0x39de('0x9')][_0x2c3813['transfertargetuniqueid']]=this['channels'][_0x2c3813['secondtransfereruniqueid']];delete this[_0x39de('0x9')][_0x2c3813[_0x39de('0x45')]];}}else if(!_[_0x39de('0x43')](this['channels'][_0x2c3813['transfertargetuniqueid']])){this[_0x39de('0x17')](_0x2c3813[_0x39de('0x46')]);if(this['channels'][_0x2c3813[_0x39de('0x47')]]){this[_0x39de('0x9')][_0x2c3813['origtransfereruniqueid']][_0x39de('0x21')]=!![];this[_0x39de('0x9')][_0x2c3813['transfereeuniqueid']]=this[_0x39de('0x9')][_0x2c3813[_0x39de('0x47')]];delete this[_0x39de('0x9')][_0x2c3813['origtransfereruniqueid']];}}}catch(_0x50ea6c){logger['error']('[ACW][syncAttendedTransfer]\x20%s',_0x50ea6c['message']);}};Acw[_0x39de('0x16')][_0x39de('0x11')]=function(_0x323901){try{if(this[_0x39de('0x9')][_0x323901['transfereruniqueid']]){logger[_0x39de('0x1f')](_0x39de('0x48'),JSON[_0x39de('0x36')](_0x323901[_0x39de('0x49')]));this[_0x39de('0x17')](_0x323901[_0x39de('0x49')]);}else if(this[_0x39de('0x9')][_0x323901[_0x39de('0x4a')]]){logger[_0x39de('0x1f')]('[%s][BLINDTRANSFER:LINKEDID]',JSON[_0x39de('0x36')](_0x323901[_0x39de('0x4a')]));this[_0x39de('0x17')](_0x323901[_0x39de('0x4a')]);}}catch(_0x110294){logger[_0x39de('0x30')](_0x39de('0x4b'),_0x110294[_0x39de('0x32')]);}};Acw[_0x39de('0x16')][_0x39de('0xf')]=function(_0xc3f6bb){try{if(this[_0x39de('0x6')][_0xc3f6bb['queue']]&&this[_0x39de('0x6')][_0xc3f6bb[_0x39de('0x2a')]]['autopause']===_0x39de('0x4c')){if(this[_0x39de('0x7')][_0xc3f6bb['interface']]){logger[_0x39de('0x1f')](_0x39de('0x4d'),_0xc3f6bb['uniqueid'],_0xc3f6bb[_0x39de('0x39')],_0xc3f6bb[_0x39de('0x2a')]);return RpcUser[_0x39de('0x23')](this['agents'][_0xc3f6bb[_0x39de('0x39')]],_0x39de('0x4e'),_0xc3f6bb[_0x39de('0x29')]);}}}catch(_0x4d27bf){logger['error'](_0x39de('0x4f'),_0x4d27bf[_0x39de('0x32')]);}};module['exports']=Acw;
\ No newline at end of file
+var _0xd481=['exports','lodash','../ami','acw','../rpc/user','../rpc/voiceAgentReport','voiceQueues','agents','timers','channels','syncAgentConnect','hanguprequest','syncHangupRequest','bind','hangup','syncHangup','agentringnoanswer','syncAgentRingNoAnswer','attendedtransfer','syncAttendedTransfer','blindtransfer','syncBlindTransfer','syncAgentConnectPreview','milliseconds','diff','startAcw','interface','ACW','mandatoryDisposition','mandatoryDispositionPause','name','Action','QueuePause','then','getAgent','voicePause','[%s][START][AGENT:%s][QUEUE:%s]','destlinkedid','info','[%s][TIMER:%s][AGENT:%s][QUEUE:%s]','acwTimeout','timer','stopAcw','format','uniqueid','queue','updateAcw','lastPauseAt','update','[%s][UPDATE][ACWTIME:%s]','catch','error','[%s][UPDATE][ERRORS:%s]','[%s][INPAUSE][AGENT:%s][QUEUE:%s]','finally','[ACW][START]\x20%s','message','prototype','[ACW][STOP]\x20Interface\x20%s\x20doesn\x27t\x20have\x20timer','[ACW][TIMERS]','[ACW][syncAgentConnect]\x20%s','[ACW][syncAgentConnectPreview]\x20%s','isUndefined','attended','[%s][HANGUP:UNIQUEID]','linkedid','[%s][HANGUP:LINKEDID]','[ACW][syncHangupRequest]\x20%s','[%s][HANGUPATTENDEDTRANSFER:UNIQUEID]','[%s][HANGUPATTENDEDTRANSFER:LINKEDID]','[ACW][syncHangup]\x20%s','isNil','transfereeuniqueid','secondtransfereruniqueid','transfertargetuniqueid','origtransfereruniqueid','[ACW][syncAttendedTransfer]\x20%s','transfereruniqueid','[%s][BLINDTRANSFER:UNIQUEID]','stringify','[%s][BLINDTRANSFER:LINKEDID]','transfererlinkedid','[ACW][syncBlindTransfer]\x20%s','autopause','all','[%s][AUTOPAUSE][AGENT:%s][QUEUE:%]','savePause','[ACW][syncAgentRingNoAnswer]\x20%s'];(function(_0xda4133,_0x466b9c){var _0x1188c8=function(_0x4617e7){while(--_0x4617e7){_0xda4133['push'](_0xda4133['shift']());}};_0x1188c8(++_0x466b9c);}(_0xd481,0xb1));var _0x1d48=function(_0x2db1b3,_0x14dd87){_0x2db1b3=_0x2db1b3-0x0;var _0x235a55=_0xd481[_0x2db1b3];return _0x235a55;};'use strict';var util=require('util');var _=require(_0x1d48('0x0'));var moment=require('moment');var ami=require(_0x1d48('0x1'));var logger=require('../../../config/logger')(_0x1d48('0x2'));var RpcUser=require(_0x1d48('0x3'));var RpcVoiceAgentReport=require(_0x1d48('0x4'));function Acw(_0x1aa55f){this[_0x1d48('0x5')]=_0x1aa55f[_0x1d48('0x5')];this[_0x1d48('0x6')]=_0x1aa55f['agents'];this['timers']=_0x1aa55f[_0x1d48('0x7')];this[_0x1d48('0x8')]={};ami['on']('agentconnect',this[_0x1d48('0x9')]['bind'](this));ami['on'](_0x1d48('0xa'),this[_0x1d48('0xb')][_0x1d48('0xc')](this));ami['on'](_0x1d48('0xd'),this[_0x1d48('0xe')][_0x1d48('0xc')](this));ami['on'](_0x1d48('0xf'),this[_0x1d48('0x10')][_0x1d48('0xc')](this));ami['on'](_0x1d48('0x11'),this[_0x1d48('0x12')][_0x1d48('0xc')](this));ami['on'](_0x1d48('0x13'),this[_0x1d48('0x14')][_0x1d48('0xc')](this));ami['on']('custom:agentConnectPreview',this[_0x1d48('0x15')][_0x1d48('0xc')](this));}function getDiff(_0x35d0c0){var _0x2c029b=moment()[_0x1d48('0x16')](0x0);var _0x4d890d=moment(_0x35d0c0)[_0x1d48('0x16')](0x0);return _0x2c029b[_0x1d48('0x17')](_0x4d890d,'seconds');}Acw['prototype'][_0x1d48('0x18')]=function(_0x4ebcd8){try{var _0x2d08e0=this;var _0x517950=this[_0x1d48('0x8')][_0x4ebcd8][_0x1d48('0x19')];var _0x2cce91=this['channels'][_0x4ebcd8]['queue'];var _0x7717fd=this['voiceQueues'][_0x2cce91];var _0x2a79f6=![];var _0x21665e=_0x1d48('0x1a');if(_0x7717fd[_0x1d48('0x1b')]){if(_0x7717fd[_0x1d48('0x1c')]['name']){_0x2a79f6=!![];_0x21665e=_0x7717fd[_0x1d48('0x1c')][_0x1d48('0x1d')];}}ami[_0x1d48('0x1e')]({'action':_0x1d48('0x1f'),'interface':_0x517950,'paused':!![],'reason':_0x21665e})[_0x1d48('0x20')](function(_0x40da82){if(_0x2d08e0[_0x1d48('0x6')][_0x517950]){return RpcUser[_0x1d48('0x21')](_0x2d08e0[_0x1d48('0x6')][_0x517950]['id'])['then'](function(_0xadafa8){if(_0xadafa8&&!_0xadafa8[_0x1d48('0x22')]){logger['info'](_0x1d48('0x23'),_0x4ebcd8,_0x517950,_0x2cce91);var _0x3d31c8=_0x2d08e0[_0x1d48('0x8')][_0x4ebcd8]['attended']&&_0x2d08e0['channels'][_0x4ebcd8][_0x1d48('0x24')]?_0x2d08e0[_0x1d48('0x8')][_0x4ebcd8]['destlinkedid']:_0x4ebcd8;return RpcUser['savePause'](_0x2d08e0[_0x1d48('0x6')][_0x517950],_0x21665e,_0x3d31c8)['then'](function(_0x35cdf2){if(!_0x2a79f6){_0x2d08e0[_0x1d48('0x7')][_0x517950]={};logger[_0x1d48('0x25')](_0x1d48('0x26'),_0x4ebcd8,_0x2d08e0['voiceQueues'][_0x2cce91][_0x1d48('0x27')],_0x517950,_0x2cce91);_0x2d08e0['timers'][_0x517950][_0x1d48('0x28')]=setTimeout(_0x2d08e0[_0x1d48('0x29')][_0x1d48('0xc')](_0x2d08e0,_0x517950),_0x2d08e0[_0x1d48('0x5')][_0x2cce91]['acwTimeout']*0x3e8);_0x2d08e0[_0x1d48('0x7')][_0x517950]['lastPauseAt']=moment()[_0x1d48('0x2a')]('YYYY-MM-DD\x20HH:mm:ss');_0x2d08e0[_0x1d48('0x7')][_0x517950][_0x1d48('0x2b')]=_0x4ebcd8;_0x2d08e0[_0x1d48('0x7')][_0x517950][_0x1d48('0x2c')]=_0x2cce91;_0x2d08e0[_0x1d48('0x7')][_0x517950][_0x1d48('0x2d')]=function(){var _0x1d2a11=getDiff(_0x2d08e0[_0x1d48('0x7')][_0x517950][_0x1d48('0x2e')]);clearTimeout(_0x2d08e0[_0x1d48('0x7')][_0x517950]['timer']);_0x2d08e0[_0x1d48('0x7')][_0x517950][_0x1d48('0x28')]=![];RpcVoiceAgentReport[_0x1d48('0x2f')]({'acwtime':_0x1d2a11},_0x2d08e0['timers'][_0x517950][_0x1d48('0x2b')],_0x517950)[_0x1d48('0x20')](function(_0x49db62){logger['info'](_0x1d48('0x30'),_0x4ebcd8,_0x1d2a11,_0x49db62);})[_0x1d48('0x31')](function(_0x36463e){logger[_0x1d48('0x32')](_0x1d48('0x33'),_0x4ebcd8,_0x36463e);});delete _0x2d08e0[_0x1d48('0x7')][_0x517950];};}});}else{logger[_0x1d48('0x25')](_0x1d48('0x34'),_0x4ebcd8,_0x517950,_0x2cce91);}});}})[_0x1d48('0x31')](function(_0x540ab8){logger['error'](_0x1d48('0x26'),_0x4ebcd8,_0x2d08e0[_0x1d48('0x5')][_0x2cce91][_0x1d48('0x27')],_0x517950,_0x2cce91);})[_0x1d48('0x35')](function(){delete _0x2d08e0[_0x1d48('0x8')][_0x4ebcd8];});}catch(_0x2b84e2){logger['error'](_0x1d48('0x36'),_0x2b84e2[_0x1d48('0x37')]);}};Acw[_0x1d48('0x38')][_0x1d48('0x29')]=function(_0x5e791c){try{var _0x410aa4=this;if(_0x410aa4['timers'][_0x5e791c]){_0x410aa4['timers'][_0x5e791c][_0x1d48('0x28')]=![];var _0x1dea02=_0x410aa4['timers'][_0x5e791c]['uniqueid'];var _0x2d58eb=_0x410aa4['timers'][_0x5e791c][_0x1d48('0x2c')];var _0x2ed057=_0x410aa4['voiceQueues'][_0x2d58eb][_0x1d48('0x27')];logger[_0x1d48('0x25')]('[%s][TIMER][STOP][AGENT:%s]',_0x1dea02,_0x5e791c);RpcUser['saveUnpause'](this[_0x1d48('0x6')][_0x5e791c]);RpcVoiceAgentReport['update']({'acwtime':_0x2ed057,'agentacw':!![]},_0x1dea02,_0x5e791c)[_0x1d48('0x20')](function(_0x4932){logger['info'](_0x1d48('0x30'),_0x1dea02,_0x2ed057,_0x4932);})[_0x1d48('0x31')](function(_0x3777b6){logger['error'](_0x1d48('0x33'),_0x1dea02,_0x3777b6);});}else{logger[_0x1d48('0x32')](_0x1d48('0x39'),_0x5e791c);if(_0x410aa4[_0x1d48('0x7')]){logger[_0x1d48('0x25')](_0x1d48('0x3a'),JSON['stringify'](_0x410aa4['timers']));}}}catch(_0x4e1b44){logger['error']('[ACW][STOP]\x20%s',_0x4e1b44[_0x1d48('0x37')]);}};Acw[_0x1d48('0x38')][_0x1d48('0x9')]=function(_0x224799){try{if(this[_0x1d48('0x5')][_0x224799['queue']]&&(this[_0x1d48('0x5')][_0x224799['queue']]['acw']||this['voiceQueues'][_0x224799['queue']][_0x1d48('0x1b')])){if(this[_0x1d48('0x6')][_0x224799['interface']]){this[_0x1d48('0x8')][_0x224799[_0x1d48('0x2b')]]={'queue':_0x224799[_0x1d48('0x2c')],'interface':_0x224799['interface'],'destlinkedid':_0x224799[_0x1d48('0x24')]};}}}catch(_0x1195a0){logger[_0x1d48('0x32')](_0x1d48('0x3b'),_0x1195a0[_0x1d48('0x37')]);}};Acw[_0x1d48('0x38')]['syncAgentConnectPreview']=function(_0x341834){try{if(this[_0x1d48('0x5')][_0x341834[_0x1d48('0x2c')]]&&(this[_0x1d48('0x5')][_0x341834['queue']][_0x1d48('0x2')]||this[_0x1d48('0x5')][_0x341834[_0x1d48('0x2c')]][_0x1d48('0x1b')])){if(this[_0x1d48('0x6')][_0x341834[_0x1d48('0x19')]]){this[_0x1d48('0x8')][_0x341834[_0x1d48('0x2b')]]={'queue':_0x341834[_0x1d48('0x2c')],'interface':_0x341834[_0x1d48('0x19')]};}}}catch(_0x3c0a66){logger[_0x1d48('0x32')](_0x1d48('0x3c'),_0x3c0a66[_0x1d48('0x37')]);}};Acw['prototype'][_0x1d48('0xb')]=function(_0x4cf379){try{if(this[_0x1d48('0x8')][_0x4cf379['uniqueid']]&&_[_0x1d48('0x3d')](this['channels'][_0x4cf379[_0x1d48('0x2b')]][_0x1d48('0x3e')])){logger['info'](_0x1d48('0x3f'),_0x4cf379[_0x1d48('0x2b')]);this[_0x1d48('0x18')](_0x4cf379['uniqueid']);}else if(this[_0x1d48('0x8')][_0x4cf379[_0x1d48('0x40')]]&&_['isUndefined'](this[_0x1d48('0x8')][_0x4cf379[_0x1d48('0x40')]][_0x1d48('0x3e')])){logger[_0x1d48('0x25')](_0x1d48('0x41'),_0x4cf379[_0x1d48('0x40')]);this[_0x1d48('0x18')](_0x4cf379[_0x1d48('0x40')]);}}catch(_0x491b25){logger[_0x1d48('0x32')](_0x1d48('0x42'),_0x491b25[_0x1d48('0x37')]);}};Acw[_0x1d48('0x38')][_0x1d48('0xe')]=function(_0x2ec735){try{if(this[_0x1d48('0x8')][_0x2ec735[_0x1d48('0x2b')]]&&this[_0x1d48('0x8')][_0x2ec735[_0x1d48('0x2b')]][_0x1d48('0x3e')]){logger['info'](_0x1d48('0x43'),_0x2ec735[_0x1d48('0x2b')]);this[_0x1d48('0x18')](_0x2ec735[_0x1d48('0x2b')]);}else if(this[_0x1d48('0x8')][_0x2ec735['linkedid']]&&this[_0x1d48('0x8')][_0x2ec735['linkedid']][_0x1d48('0x3e')]){logger['info'](_0x1d48('0x44'),_0x2ec735[_0x1d48('0x40')]);this[_0x1d48('0x18')](_0x2ec735[_0x1d48('0x40')]);}}catch(_0x455953){logger[_0x1d48('0x32')](_0x1d48('0x45'),_0x455953[_0x1d48('0x37')]);}};Acw[_0x1d48('0x38')][_0x1d48('0x12')]=function(_0x52065a){try{if(!_[_0x1d48('0x46')](this['channels'][_0x52065a[_0x1d48('0x47')]])){this[_0x1d48('0x18')](_0x52065a[_0x1d48('0x47')]);if(this[_0x1d48('0x8')][_0x52065a[_0x1d48('0x48')]]){this[_0x1d48('0x8')][_0x52065a[_0x1d48('0x48')]][_0x1d48('0x3e')]=!![];this[_0x1d48('0x8')][_0x52065a[_0x1d48('0x49')]]=this[_0x1d48('0x8')][_0x52065a['secondtransfereruniqueid']];delete this[_0x1d48('0x8')][_0x52065a[_0x1d48('0x48')]];}}else if(!_[_0x1d48('0x46')](this[_0x1d48('0x8')][_0x52065a[_0x1d48('0x49')]])){this[_0x1d48('0x18')](_0x52065a['transfertargetuniqueid']);if(this[_0x1d48('0x8')][_0x52065a['origtransfereruniqueid']]){this[_0x1d48('0x8')][_0x52065a[_0x1d48('0x4a')]]['attended']=!![];this['channels'][_0x52065a['transfereeuniqueid']]=this['channels'][_0x52065a['origtransfereruniqueid']];delete this[_0x1d48('0x8')][_0x52065a[_0x1d48('0x4a')]];}}}catch(_0x5bcb88){logger['error'](_0x1d48('0x4b'),_0x5bcb88[_0x1d48('0x37')]);}};Acw['prototype'][_0x1d48('0x14')]=function(_0x167e3a){try{if(this[_0x1d48('0x8')][_0x167e3a[_0x1d48('0x4c')]]){logger[_0x1d48('0x25')](_0x1d48('0x4d'),JSON[_0x1d48('0x4e')](_0x167e3a['transfereruniqueid']));this[_0x1d48('0x18')](_0x167e3a[_0x1d48('0x4c')]);}else if(this[_0x1d48('0x8')][_0x167e3a['transfererlinkedid']]){logger[_0x1d48('0x25')](_0x1d48('0x4f'),JSON[_0x1d48('0x4e')](_0x167e3a[_0x1d48('0x50')]));this[_0x1d48('0x18')](_0x167e3a[_0x1d48('0x50')]);}}catch(_0x7dee76){logger[_0x1d48('0x32')](_0x1d48('0x51'),_0x7dee76[_0x1d48('0x37')]);}};Acw[_0x1d48('0x38')][_0x1d48('0x10')]=function(_0x2b89df){try{if(this[_0x1d48('0x5')][_0x2b89df[_0x1d48('0x2c')]]&&this[_0x1d48('0x5')][_0x2b89df[_0x1d48('0x2c')]][_0x1d48('0x52')]===_0x1d48('0x53')){if(this['agents'][_0x2b89df[_0x1d48('0x19')]]){logger[_0x1d48('0x25')](_0x1d48('0x54'),_0x2b89df[_0x1d48('0x2b')],_0x2b89df[_0x1d48('0x19')],_0x2b89df[_0x1d48('0x2c')]);return RpcUser[_0x1d48('0x55')](this[_0x1d48('0x6')][_0x2b89df[_0x1d48('0x19')]],'Auto-Pause',_0x2b89df['uniqueid']);}}}catch(_0x105ea2){logger[_0x1d48('0x32')](_0x1d48('0x56'),_0x105ea2['message']);}};module[_0x1d48('0x57')]=Acw;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x53e3=['sippeerstatus','actionQueueSummary','queuesummary','actionCoreShowChannels','info','Manager\x20\x22%s\x22\x20logged\x20on\x20to\x20%s:%s','once','close','connect','shutdown','Shutdown\x20\x22%s\x22\x20to\x20%s:%s\x20with:\x0a%s','fullybooted','Fullybooted\x20\x22%s\x22\x20to\x20%s:%s','then','exports','asterisk-manager','bluebird','util','lodash','ami','../../config/environment','asterisk','port','username','password','keepConnected','promisify','action','error','Manager\x20\x22%s\x22\x20error\x20to\x20%s:%s\x20with:\x0a%s','inspect','format','Manager\x20\x22%s\x22\x20closed\x20to\x20%s:%s','actionSipShowRegistry','Action','sipshowregistry','actionDeviceStateList','devicestatelist','actionSipPeerStatus'];(function(_0x4a8b0b,_0x361344){var _0x5322e7=function(_0x4d9aee){while(--_0x4d9aee){_0x4a8b0b['push'](_0x4a8b0b['shift']());}};_0x5322e7(++_0x361344);}(_0x53e3,0x16e));var _0x353e=function(_0x36ff8c,_0x2bd986){_0x36ff8c=_0x36ff8c-0x0;var _0x47a013=_0x53e3[_0x36ff8c];return _0x47a013;};'use strict';var Manager=require(_0x353e('0x0'));var BPromise=require(_0x353e('0x1'));var moment=require('moment');var util=require(_0x353e('0x2'));var _=require(_0x353e('0x3'));var logger=require('../../config/logger')(_0x353e('0x4'));var config=require(_0x353e('0x5'));var ami=new Manager(config[_0x353e('0x6')][_0x353e('0x7')],config['asterisk']['ip'],config[_0x353e('0x6')][_0x353e('0x8')],config[_0x353e('0x6')][_0x353e('0x9')],!![]);ami[_0x353e('0xa')]();ami['Action']=BPromise[_0x353e('0xb')](ami[_0x353e('0xc')]);function error(_0x2d2e4d){logger[_0x353e('0xd')](util['format'](_0x353e('0xe'),config[_0x353e('0x6')]['username'],config[_0x353e('0x6')]['ip'],config[_0x353e('0x6')][_0x353e('0x7')],util[_0x353e('0xf')](_0x2d2e4d,![],null)));}function close(){logger[_0x353e('0xd')](util[_0x353e('0x10')](_0x353e('0x11'),config[_0x353e('0x6')][_0x353e('0x8')],config[_0x353e('0x6')]['ip'],config[_0x353e('0x6')]['port']));}ami[_0x353e('0x12')]=function(){return function(){return ami[_0x353e('0x13')]({'action':_0x353e('0x14')});};};ami[_0x353e('0x15')]=function(){return function(){return ami[_0x353e('0x13')]({'action':_0x353e('0x16')});};};ami[_0x353e('0x17')]=function(){return function(){return ami[_0x353e('0x13')]({'action':_0x353e('0x18')});};};ami[_0x353e('0x19')]=function(){return function(){return ami[_0x353e('0x13')]({'action':_0x353e('0x1a')});};};ami[_0x353e('0x1b')]=function(){return function(){return ami[_0x353e('0x13')]({'action':'coreshowchannels'});};};function connect(_0x49f624){logger[_0x353e('0x1c')](util['format'](_0x353e('0x1d'),config[_0x353e('0x6')][_0x353e('0x8')],config['asterisk']['ip'],config[_0x353e('0x6')][_0x353e('0x7')]));ami[_0x353e('0x1e')](_0x353e('0xd'),error);ami['once'](_0x353e('0x1f'),close);}ami['on'](_0x353e('0x20'),connect);ami['on'](_0x353e('0x21'),function(_0x15225f){logger['info'](util['format'](_0x353e('0x22'),config[_0x353e('0x6')][_0x353e('0x8')],config[_0x353e('0x6')]['ip'],config[_0x353e('0x6')][_0x353e('0x7')],util[_0x353e('0xf')](_0x15225f,![],null)));});ami['on'](_0x353e('0x23'),function(_0x2ca339){logger[_0x353e('0x1c')](util[_0x353e('0x10')](_0x353e('0x24'),config[_0x353e('0x6')][_0x353e('0x8')],config[_0x353e('0x6')]['ip'],config[_0x353e('0x6')][_0x353e('0x7')]));return BPromise['resolve']()[_0x353e('0x25')](ami[_0x353e('0x12')]())[_0x353e('0x25')](ami['actionDeviceStateList']())[_0x353e('0x25')](ami[_0x353e('0x17')]())[_0x353e('0x25')](ami[_0x353e('0x19')]())[_0x353e('0x25')](ami[_0x353e('0x1b')]())['catch'](function(_0x15f0e1){console['log'](_0x15f0e1);});});ami['once'](_0x353e('0xd'),error);ami['once'](_0x353e('0x1f'),close);module[_0x353e('0x26')]=ami;
\ No newline at end of file
+var _0xd36c=['Manager\x20\x22%s\x22\x20error\x20to\x20%s:%s\x20with:\x0a%s','port','inspect','format','Manager\x20\x22%s\x22\x20closed\x20to\x20%s:%s','actionSipShowRegistry','actionDeviceStateList','sippeerstatus','actionCoreShowChannels','coreshowchannels','Manager\x20\x22%s\x22\x20logged\x20on\x20to\x20%s:%s','once','close','shutdown','info','Shutdown\x20\x22%s\x22\x20to\x20%s:%s\x20with:\x0a%s','fullybooted','Fullybooted\x20\x22%s\x22\x20to\x20%s:%s','then','actionSipPeerStatus','actionQueueSummary','catch','log','util','lodash','../../config/logger','ami','../../config/environment','asterisk','username','password','keepConnected','Action','promisify','error'];(function(_0x2c4368,_0x57b710){var _0x3985c2=function(_0xf6cd8d){while(--_0xf6cd8d){_0x2c4368['push'](_0x2c4368['shift']());}};_0x3985c2(++_0x57b710);}(_0xd36c,0xc6));var _0xcd36=function(_0x373dee,_0x1a8c45){_0x373dee=_0x373dee-0x0;var _0x46798f=_0xd36c[_0x373dee];return _0x46798f;};'use strict';var Manager=require('asterisk-manager');var BPromise=require('bluebird');var moment=require('moment');var util=require(_0xcd36('0x0'));var _=require(_0xcd36('0x1'));var logger=require(_0xcd36('0x2'))(_0xcd36('0x3'));var config=require(_0xcd36('0x4'));var ami=new Manager(config['asterisk']['port'],config[_0xcd36('0x5')]['ip'],config[_0xcd36('0x5')][_0xcd36('0x6')],config[_0xcd36('0x5')][_0xcd36('0x7')],!![]);ami[_0xcd36('0x8')]();ami[_0xcd36('0x9')]=BPromise[_0xcd36('0xa')](ami['action']);function error(_0x50d3ed){logger[_0xcd36('0xb')](util['format'](_0xcd36('0xc'),config[_0xcd36('0x5')][_0xcd36('0x6')],config[_0xcd36('0x5')]['ip'],config['asterisk'][_0xcd36('0xd')],util[_0xcd36('0xe')](_0x50d3ed,![],null)));}function close(){logger[_0xcd36('0xb')](util[_0xcd36('0xf')](_0xcd36('0x10'),config['asterisk']['username'],config[_0xcd36('0x5')]['ip'],config[_0xcd36('0x5')][_0xcd36('0xd')]));}ami[_0xcd36('0x11')]=function(){return function(){return ami['Action']({'action':'sipshowregistry'});};};ami[_0xcd36('0x12')]=function(){return function(){return ami[_0xcd36('0x9')]({'action':'devicestatelist'});};};ami['actionSipPeerStatus']=function(){return function(){return ami[_0xcd36('0x9')]({'action':_0xcd36('0x13')});};};ami['actionQueueSummary']=function(){return function(){return ami[_0xcd36('0x9')]({'action':'queuesummary'});};};ami[_0xcd36('0x14')]=function(){return function(){return ami[_0xcd36('0x9')]({'action':_0xcd36('0x15')});};};function connect(_0x1a4055){logger['info'](util['format'](_0xcd36('0x16'),config[_0xcd36('0x5')]['username'],config['asterisk']['ip'],config[_0xcd36('0x5')][_0xcd36('0xd')]));ami[_0xcd36('0x17')](_0xcd36('0xb'),error);ami[_0xcd36('0x17')](_0xcd36('0x18'),close);}ami['on']('connect',connect);ami['on'](_0xcd36('0x19'),function(_0x527382){logger[_0xcd36('0x1a')](util[_0xcd36('0xf')](_0xcd36('0x1b'),config[_0xcd36('0x5')][_0xcd36('0x6')],config[_0xcd36('0x5')]['ip'],config[_0xcd36('0x5')]['port'],util[_0xcd36('0xe')](_0x527382,![],null)));});ami['on'](_0xcd36('0x1c'),function(_0x2602c0){logger[_0xcd36('0x1a')](util['format'](_0xcd36('0x1d'),config[_0xcd36('0x5')]['username'],config[_0xcd36('0x5')]['ip'],config[_0xcd36('0x5')][_0xcd36('0xd')]));return BPromise['resolve']()['then'](ami[_0xcd36('0x11')]())[_0xcd36('0x1e')](ami[_0xcd36('0x12')]())[_0xcd36('0x1e')](ami[_0xcd36('0x1f')]())[_0xcd36('0x1e')](ami[_0xcd36('0x20')]())[_0xcd36('0x1e')](ami[_0xcd36('0x14')]())[_0xcd36('0x21')](function(_0x1ee9ba){console[_0xcd36('0x22')](_0x1ee9ba);});});ami[_0xcd36('0x17')]('error',error);ami['once'](_0xcd36('0x18'),close);module['exports']=ami;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbdb7=['result','catch','jayson/promise','bluebird','../../config/logger','ami','client','http','Request','debug','error','message'];(function(_0x13e301,_0x21f5bd){var _0x3cd952=function(_0x13aa10){while(--_0x13aa10){_0x13e301['push'](_0x13e301['shift']());}};_0x3cd952(++_0x21f5bd);}(_0xbdb7,0x12e));var _0x7bdb=function(_0x18c4bf,_0x56dfe5){_0x18c4bf=_0x18c4bf-0x0;var _0x5c9674=_0xbdb7[_0x18c4bf];return _0x5c9674;};'use strict';var jayson=require(_0x7bdb('0x0'));var BPromise=require(_0x7bdb('0x1'));var logger=require(_0x7bdb('0x2'))(_0x7bdb('0x3'));var client=jayson[_0x7bdb('0x4')][_0x7bdb('0x5')]({'port':0x2329});client[_0x7bdb('0x6')]=function(_0x2c7e07,_0x46c068){return new BPromise(function(_0x47aec5,_0x28542c){return client['request'](_0x2c7e07,_0x46c068)['then'](function(_0xffdc86){logger[_0x7bdb('0x7')]('rpc','memberReport',_0x2c7e07,_0x46c068,_0xffdc86);if(_0xffdc86[_0x7bdb('0x8')]){logger[_0x7bdb('0x8')]('rpc','memberReport',_0x2c7e07,_0xffdc86[_0x7bdb('0x8')][_0x7bdb('0x9')],_0x46c068);return _0x28542c(_0xffdc86[_0x7bdb('0x8')][_0x7bdb('0x9')]);}else{return _0x47aec5(_0xffdc86[_0x7bdb('0xa')]);}})[_0x7bdb('0xb')](function(_0x297724){logger[_0x7bdb('0x8')]('rpc','memberReport',_0x2c7e07,_0x297724,_0x46c068);return _0x28542c(_0x297724);});});};module['exports']=client;
\ No newline at end of file
+var _0x9ffd=['catch','exports','jayson/promise','bluebird','../../config/logger','client','http','Request','then','debug','rpc','memberReport','error','result'];(function(_0xd86f8c,_0x21ee7f){var _0x583a87=function(_0x3c5303){while(--_0x3c5303){_0xd86f8c['push'](_0xd86f8c['shift']());}};_0x583a87(++_0x21ee7f);}(_0x9ffd,0xaa));var _0xd9ff=function(_0x14282f,_0x45119f){_0x14282f=_0x14282f-0x0;var _0x2206ca=_0x9ffd[_0x14282f];return _0x2206ca;};'use strict';var jayson=require(_0xd9ff('0x0'));var BPromise=require(_0xd9ff('0x1'));var logger=require(_0xd9ff('0x2'))('ami');var client=jayson[_0xd9ff('0x3')][_0xd9ff('0x4')]({'port':0x2329});client[_0xd9ff('0x5')]=function(_0x5493ae,_0x53e962){return new BPromise(function(_0x1c9460,_0x111697){return client['request'](_0x5493ae,_0x53e962)[_0xd9ff('0x6')](function(_0x2982c3){logger[_0xd9ff('0x7')](_0xd9ff('0x8'),_0xd9ff('0x9'),_0x5493ae,_0x53e962,_0x2982c3);if(_0x2982c3[_0xd9ff('0xa')]){logger[_0xd9ff('0xa')](_0xd9ff('0x8'),_0xd9ff('0x9'),_0x5493ae,_0x2982c3['error']['message'],_0x53e962);return _0x111697(_0x2982c3['error']['message']);}else{return _0x1c9460(_0x2982c3[_0xd9ff('0xb')]);}})[_0xd9ff('0xc')](function(_0x193537){logger[_0xd9ff('0xa')](_0xd9ff('0x8'),_0xd9ff('0x9'),_0x5493ae,_0x193537,_0x53e962);return _0x111697(_0x193537);});});};module[_0xd9ff('0xd')]=client;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd9ff=['\x22%s\x22\x20<%s>','dialCutDigit','substring','getQueue','exports','util','lodash','isNil','string','voiceQueue','name','Contact','phone','firstName','lastName','number','queue','active','type','dialQueueTimeout','scheduledat','countbusyretry','countcongestionretry','countnoanswerretry','countnosuchnumberretry','countdropretry','countabandonedretry','countmachineretry','countagentrejectretry','ContactId','ListId','VoiceQueueId','CampaignId','idHopper','ContactFirstName','YYYY-MM-DD\x20HH:mm:ss','callbackuniqueid','callbackat','recallme','originatecalleridnum','originatecalleridname','prototype','getCaller','format'];(function(_0x21a9d9,_0x4d5ac8){var _0x46adce=function(_0xfdd336){while(--_0xfdd336){_0x21a9d9['push'](_0x21a9d9['shift']());}};_0x46adce(++_0x4d5ac8);}(_0xd9ff,0xb5));var _0xfd9f=function(_0x18eeda,_0x18d0d6){_0x18eeda=_0x18eeda-0x0;var _0x367d47=_0xd9ff[_0x18eeda];return _0x367d47;};'use strict';var util=require(_0xfd9f('0x0'));var _=require(_0xfd9f('0x1'));var moment=require('moment');function checkNameSurname(_0xc39e6f,_0x184825,_0x558c1a){var _0x2fb47a='';if(!_[_0xfd9f('0x2')](_0x184825)&&_0xfd9f('0x3')===typeof _0x184825){_0x2fb47a+=_0x184825;}if(!_['isNil'](_0x558c1a)&&_0xfd9f('0x3')===typeof _0x558c1a){_0x2fb47a+='\x20'+_0x558c1a;}if(_0x2fb47a!==''){return _0x2fb47a;}return _0xc39e6f;}function Action(_0x500f12,_0x364bf7,_0x45e2d8){this[_0xfd9f('0x4')]=_0x500f12;this['uniqueid']=_0x45e2d8||undefined;this[_0xfd9f('0x5')]=checkNameSurname(_0x364bf7[_0xfd9f('0x6')][_0xfd9f('0x7')],_0x364bf7[_0xfd9f('0x6')][_0xfd9f('0x8')],_0x364bf7[_0xfd9f('0x6')][_0xfd9f('0x9')]);this[_0xfd9f('0xa')]=_0x364bf7[_0xfd9f('0x6')][_0xfd9f('0x7')];this[_0xfd9f('0xb')]=_0x500f12['name'];this[_0xfd9f('0xc')]=_0x364bf7[_0xfd9f('0xc')]||![];this[_0xfd9f('0xd')]=_0x500f12[_0xfd9f('0xd')];this[_0xfd9f('0xe')]=_0x500f12[_0xfd9f('0xe')]||0x3;this[_0xfd9f('0xf')]=_0x364bf7[_0xfd9f('0xf')];this[_0xfd9f('0x10')]=_0x364bf7[_0xfd9f('0x10')];this[_0xfd9f('0x11')]=_0x364bf7[_0xfd9f('0x11')];this[_0xfd9f('0x12')]=_0x364bf7[_0xfd9f('0x12')];this['countnosuchnumberretry']=_0x364bf7[_0xfd9f('0x13')];this[_0xfd9f('0x14')]=_0x364bf7[_0xfd9f('0x14')];this[_0xfd9f('0x15')]=_0x364bf7[_0xfd9f('0x15')];this[_0xfd9f('0x16')]=_0x364bf7[_0xfd9f('0x16')];this[_0xfd9f('0x17')]=_0x364bf7[_0xfd9f('0x17')];this[_0xfd9f('0x18')]=_0x364bf7[_0xfd9f('0x18')];this[_0xfd9f('0x19')]=_0x364bf7[_0xfd9f('0x19')];this['UserId']=_0x364bf7['UserId'];this[_0xfd9f('0x1a')]=_0x364bf7[_0xfd9f('0x1a')];this['CampaignId']=_0x364bf7[_0xfd9f('0x1b')];this[_0xfd9f('0x1c')]=_0x364bf7['id'];this[_0xfd9f('0x1d')]=_0x364bf7['Contact']['firstName']||'';this['starttime']=moment()['format'](_0xfd9f('0x1e'));this['callback']=_0x364bf7['callback'];this[_0xfd9f('0x1f')]=_0x364bf7[_0xfd9f('0x1f')];this[_0xfd9f('0x20')]=_0x364bf7[_0xfd9f('0x20')];this[_0xfd9f('0x21')]=_0x364bf7[_0xfd9f('0x21')];this[_0xfd9f('0x22')]='';this[_0xfd9f('0x23')]='';}Action[_0xfd9f('0x24')][_0xfd9f('0x25')]=function(){return util[_0xfd9f('0x26')](_0xfd9f('0x27'),this['name'],this[_0xfd9f('0x4')][_0xfd9f('0x28')]>0x0?this[_0xfd9f('0xa')][_0xfd9f('0x29')](this[_0xfd9f('0x4')][_0xfd9f('0x28')]):this['number']);};Action['prototype'][_0xfd9f('0x2a')]=function(){return this[_0xfd9f('0xb')];};module[_0xfd9f('0x2b')]=Action;
\ No newline at end of file
+var _0xee91=['callbackuniqueid','callbackat','recallme','originatecalleridnum','originatecalleridname','prototype','\x22%s\x22\x20<%s>','dialCutDigit','substring','getQueue','exports','lodash','moment','string','isNil','voiceQueue','uniqueid','name','Contact','phone','lastName','number','queue','active','type','dialQueueTimeout','scheduledat','countbusyretry','countcongestionretry','countnoanswerretry','countdropretry','countabandonedretry','countmachineretry','countagentrejectretry','ContactId','ListId','UserId','VoiceQueueId','CampaignId','idHopper','ContactFirstName','firstName','starttime','format','YYYY-MM-DD\x20HH:mm:ss','callback'];(function(_0x957275,_0x3e9ada){var _0x2f7aaa=function(_0x52336a){while(--_0x52336a){_0x957275['push'](_0x957275['shift']());}};_0x2f7aaa(++_0x3e9ada);}(_0xee91,0xc3));var _0x1ee9=function(_0x454a7b,_0x96bcb1){_0x454a7b=_0x454a7b-0x0;var _0x18b4ab=_0xee91[_0x454a7b];return _0x18b4ab;};'use strict';var util=require('util');var _=require(_0x1ee9('0x0'));var moment=require(_0x1ee9('0x1'));function checkNameSurname(_0x3b70b0,_0x4236ca,_0x35fcf6){var _0x21666b='';if(!_['isNil'](_0x4236ca)&&_0x1ee9('0x2')===typeof _0x4236ca){_0x21666b+=_0x4236ca;}if(!_[_0x1ee9('0x3')](_0x35fcf6)&&_0x1ee9('0x2')===typeof _0x35fcf6){_0x21666b+='\x20'+_0x35fcf6;}if(_0x21666b!==''){return _0x21666b;}return _0x3b70b0;}function Action(_0x536ad2,_0x10e3aa,_0x52f4b5){this[_0x1ee9('0x4')]=_0x536ad2;this[_0x1ee9('0x5')]=_0x52f4b5||undefined;this[_0x1ee9('0x6')]=checkNameSurname(_0x10e3aa[_0x1ee9('0x7')][_0x1ee9('0x8')],_0x10e3aa[_0x1ee9('0x7')]['firstName'],_0x10e3aa['Contact'][_0x1ee9('0x9')]);this[_0x1ee9('0xa')]=_0x10e3aa[_0x1ee9('0x7')]['phone'];this[_0x1ee9('0xb')]=_0x536ad2['name'];this[_0x1ee9('0xc')]=_0x10e3aa[_0x1ee9('0xc')]||![];this['type']=_0x536ad2[_0x1ee9('0xd')];this[_0x1ee9('0xe')]=_0x536ad2[_0x1ee9('0xe')]||0x3;this[_0x1ee9('0xf')]=_0x10e3aa['scheduledat'];this[_0x1ee9('0x10')]=_0x10e3aa[_0x1ee9('0x10')];this[_0x1ee9('0x11')]=_0x10e3aa['countcongestionretry'];this[_0x1ee9('0x12')]=_0x10e3aa[_0x1ee9('0x12')];this['countnosuchnumberretry']=_0x10e3aa['countnosuchnumberretry'];this[_0x1ee9('0x13')]=_0x10e3aa[_0x1ee9('0x13')];this[_0x1ee9('0x14')]=_0x10e3aa[_0x1ee9('0x14')];this[_0x1ee9('0x15')]=_0x10e3aa[_0x1ee9('0x15')];this[_0x1ee9('0x16')]=_0x10e3aa['countagentrejectretry'];this['ContactId']=_0x10e3aa[_0x1ee9('0x17')];this[_0x1ee9('0x18')]=_0x10e3aa[_0x1ee9('0x18')];this[_0x1ee9('0x19')]=_0x10e3aa['UserId'];this[_0x1ee9('0x1a')]=_0x10e3aa[_0x1ee9('0x1a')];this[_0x1ee9('0x1b')]=_0x10e3aa['CampaignId'];this[_0x1ee9('0x1c')]=_0x10e3aa['id'];this[_0x1ee9('0x1d')]=_0x10e3aa[_0x1ee9('0x7')][_0x1ee9('0x1e')]||'';this[_0x1ee9('0x1f')]=moment()[_0x1ee9('0x20')](_0x1ee9('0x21'));this[_0x1ee9('0x22')]=_0x10e3aa[_0x1ee9('0x22')];this[_0x1ee9('0x23')]=_0x10e3aa['callbackuniqueid'];this[_0x1ee9('0x24')]=_0x10e3aa['callbackat'];this['recallme']=_0x10e3aa[_0x1ee9('0x25')];this[_0x1ee9('0x26')]='';this[_0x1ee9('0x27')]='';}Action[_0x1ee9('0x28')]['getCaller']=function(){return util[_0x1ee9('0x20')](_0x1ee9('0x29'),this[_0x1ee9('0x6')],this[_0x1ee9('0x4')][_0x1ee9('0x2a')]>0x0?this[_0x1ee9('0xa')][_0x1ee9('0x2b')](this[_0x1ee9('0x4')][_0x1ee9('0x2a')]):this[_0x1ee9('0xa')]);};Action[_0x1ee9('0x28')][_0x1ee9('0x2c')]=function(){return this[_0x1ee9('0xb')];};module[_0x1ee9('0x2d')]=Action;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc6ec=['ListId','UserId','VoiceQueueId','CampaignId','originatecalleridnum','originatecalleridname','exports','util','lodash','moment','milliseconds','state','statedesc','Answer','scheduledat','type','outbound','queue','countcongestionretry','countnoanswerretry','countglobal','countdropretry','countabandonedretry','countmachineretry','countnosuchnumberretry','countagentrejectretry','uniqueid','calleridname','name','number','starttime','responsetime','endtime','format','YYYY-MM-DD\x20HH:mm:ss','ringtime','holdtime','talktime','answertime','membername','reason','callback','callbackuniqueid','callbackat','recallme','ContactId'];(function(_0x539811,_0x703df8){var _0x3f653b=function(_0x54dc09){while(--_0x54dc09){_0x539811['push'](_0x539811['shift']());}};_0x3f653b(++_0x703df8);}(_0xc6ec,0x11b));var _0xcc6e=function(_0x2ca9d4,_0x51d5c6){_0x2ca9d4=_0x2ca9d4-0x0;var _0x258956=_0xc6ec[_0x2ca9d4];return _0x258956;};'use strict';var util=require(_0xcc6e('0x0'));var _=require(_0xcc6e('0x1'));var moment=require(_0xcc6e('0x2'));function getSeconds(_0x3fd991,_0x2dd3e5){var _0x165e3a=moment(_0x3fd991)[_0xcc6e('0x3')](0x0);var _0x18c713=moment(_0x2dd3e5)['milliseconds'](0x0);return _0x165e3a['diff'](_0x18c713,'seconds');}function AgentComplete(_0x110a09,_0x439813){this[_0xcc6e('0x4')]=0x4;this[_0xcc6e('0x5')]=_0xcc6e('0x6');this[_0xcc6e('0x7')]=_0x110a09[_0xcc6e('0x7')];this[_0xcc6e('0x8')]=_0x110a09[_0xcc6e('0x8')];this['campaigntype']=_0x110a09[_0xcc6e('0x8')]===_0xcc6e('0x9')?_0xcc6e('0xa'):_0x110a09[_0xcc6e('0x8')];this['countbusyretry']=_0x110a09['countbusyretry'];this['countcongestionretry']=_0x110a09[_0xcc6e('0xb')];this[_0xcc6e('0xc')]=_0x110a09[_0xcc6e('0xc')];this[_0xcc6e('0xd')]=_0x110a09['countbusyretry']+_0x110a09[_0xcc6e('0xb')]+_0x110a09[_0xcc6e('0xc')]+_0x110a09['countnosuchnumberretry']+_0x110a09[_0xcc6e('0xe')]+_0x110a09[_0xcc6e('0xf')]+_0x110a09[_0xcc6e('0x10')]+_0x110a09['countagentrejectretry'];this[_0xcc6e('0x11')]=_0x110a09['countnosuchnumberretry'];this[_0xcc6e('0xe')]=_0x110a09['countdropretry'];this[_0xcc6e('0xf')]=_0x110a09['countabandonedretry'];this[_0xcc6e('0x10')]=_0x110a09[_0xcc6e('0x10')];this[_0xcc6e('0x12')]=_0x110a09['countagentrejectretry'];this[_0xcc6e('0x13')]=_0x439813[_0xcc6e('0x13')];this[_0xcc6e('0x14')]=_0x110a09[_0xcc6e('0x15')];this['calleridnum']=_0x110a09[_0xcc6e('0x16')];this['starttime']=_0x110a09[_0xcc6e('0x17')];this[_0xcc6e('0x18')]=_0x110a09['responsetime'];this['answertime']=_0x110a09['answertime'];this[_0xcc6e('0x19')]=moment()[_0xcc6e('0x1a')](_0xcc6e('0x1b'));this[_0xcc6e('0x1c')]=getSeconds(_0x110a09[_0xcc6e('0x18')],_0x110a09[_0xcc6e('0x17')]);this[_0xcc6e('0x1d')]=getSeconds(_0x110a09['answertime'],_0x110a09[_0xcc6e('0x18')]);this[_0xcc6e('0x1e')]=getSeconds(this[_0xcc6e('0x19')],_0x110a09[_0xcc6e('0x1f')]);this[_0xcc6e('0xa')]=_0x439813[_0xcc6e('0xa')];this[_0xcc6e('0x20')]=_0x439813[_0xcc6e('0x20')];this[_0xcc6e('0x21')]=_0x439813[_0xcc6e('0x21')];this['callback']=_0x110a09[_0xcc6e('0x22')];this[_0xcc6e('0x23')]=_0x110a09[_0xcc6e('0x23')];this['callbackat']=_0x110a09[_0xcc6e('0x24')];this['recallme']=_0x110a09[_0xcc6e('0x25')];this[_0xcc6e('0x26')]=_0x110a09[_0xcc6e('0x26')];this[_0xcc6e('0x27')]=_0x110a09['ListId'];this['UserId']=_0x110a09[_0xcc6e('0x28')];this[_0xcc6e('0x29')]=_0x110a09[_0xcc6e('0x29')];this['CampaignId']=_0x110a09[_0xcc6e('0x2a')];this[_0xcc6e('0x2b')]=_0x110a09[_0xcc6e('0x2b')]||'';this[_0xcc6e('0x2c')]=_0x110a09[_0xcc6e('0x2c')]||'';}module[_0xcc6e('0x2d')]=AgentComplete;
\ No newline at end of file
+var _0xc5b9=['queue','countbusyretry','countcongestionretry','countnoanswerretry','countnosuchnumberretry','countabandonedretry','countmachineretry','countagentrejectretry','countdropretry','uniqueid','name','calleridnum','number','starttime','responsetime','answertime','endtime','YYYY-MM-DD\x20HH:mm:ss','ringtime','talktime','membername','reason','callback','callbackuniqueid','callbackat','recallme','ContactId','ListId','UserId','VoiceQueueId','CampaignId','originatecalleridnum','originatecalleridname','exports','milliseconds','seconds','state','statedesc','Answer','type','outbound'];(function(_0x124641,_0x5d1a9e){var _0x2d5de4=function(_0x28c570){while(--_0x28c570){_0x124641['push'](_0x124641['shift']());}};_0x2d5de4(++_0x5d1a9e);}(_0xc5b9,0x16a));var _0x9c5b=function(_0x1085db,_0x41e087){_0x1085db=_0x1085db-0x0;var _0x392a60=_0xc5b9[_0x1085db];return _0x392a60;};'use strict';var util=require('util');var _=require('lodash');var moment=require('moment');function getSeconds(_0x30ece7,_0x3ff8e9){var _0x5456f3=moment(_0x30ece7)[_0x9c5b('0x0')](0x0);var _0x3b8ade=moment(_0x3ff8e9)[_0x9c5b('0x0')](0x0);return _0x5456f3['diff'](_0x3b8ade,_0x9c5b('0x1'));}function AgentComplete(_0x4ed62b,_0x472fd1){this[_0x9c5b('0x2')]=0x4;this[_0x9c5b('0x3')]=_0x9c5b('0x4');this['scheduledat']=_0x4ed62b['scheduledat'];this[_0x9c5b('0x5')]=_0x4ed62b[_0x9c5b('0x5')];this['campaigntype']=_0x4ed62b[_0x9c5b('0x5')]===_0x9c5b('0x6')?_0x9c5b('0x7'):_0x4ed62b[_0x9c5b('0x5')];this[_0x9c5b('0x8')]=_0x4ed62b[_0x9c5b('0x8')];this[_0x9c5b('0x9')]=_0x4ed62b[_0x9c5b('0x9')];this[_0x9c5b('0xa')]=_0x4ed62b[_0x9c5b('0xa')];this['countglobal']=_0x4ed62b['countbusyretry']+_0x4ed62b[_0x9c5b('0x9')]+_0x4ed62b[_0x9c5b('0xa')]+_0x4ed62b[_0x9c5b('0xb')]+_0x4ed62b['countdropretry']+_0x4ed62b[_0x9c5b('0xc')]+_0x4ed62b[_0x9c5b('0xd')]+_0x4ed62b[_0x9c5b('0xe')];this[_0x9c5b('0xb')]=_0x4ed62b[_0x9c5b('0xb')];this[_0x9c5b('0xf')]=_0x4ed62b[_0x9c5b('0xf')];this['countabandonedretry']=_0x4ed62b[_0x9c5b('0xc')];this[_0x9c5b('0xd')]=_0x4ed62b[_0x9c5b('0xd')];this[_0x9c5b('0xe')]=_0x4ed62b['countagentrejectretry'];this[_0x9c5b('0x10')]=_0x472fd1['uniqueid'];this['calleridname']=_0x4ed62b[_0x9c5b('0x11')];this[_0x9c5b('0x12')]=_0x4ed62b[_0x9c5b('0x13')];this[_0x9c5b('0x14')]=_0x4ed62b[_0x9c5b('0x14')];this[_0x9c5b('0x15')]=_0x4ed62b[_0x9c5b('0x15')];this[_0x9c5b('0x16')]=_0x4ed62b[_0x9c5b('0x16')];this[_0x9c5b('0x17')]=moment()['format'](_0x9c5b('0x18'));this[_0x9c5b('0x19')]=getSeconds(_0x4ed62b[_0x9c5b('0x15')],_0x4ed62b[_0x9c5b('0x14')]);this['holdtime']=getSeconds(_0x4ed62b[_0x9c5b('0x16')],_0x4ed62b[_0x9c5b('0x15')]);this[_0x9c5b('0x1a')]=getSeconds(this[_0x9c5b('0x17')],_0x4ed62b[_0x9c5b('0x16')]);this[_0x9c5b('0x7')]=_0x472fd1['queue'];this[_0x9c5b('0x1b')]=_0x472fd1['membername'];this['reason']=_0x472fd1[_0x9c5b('0x1c')];this['callback']=_0x4ed62b[_0x9c5b('0x1d')];this[_0x9c5b('0x1e')]=_0x4ed62b['callbackuniqueid'];this[_0x9c5b('0x1f')]=_0x4ed62b[_0x9c5b('0x1f')];this[_0x9c5b('0x20')]=_0x4ed62b['recallme'];this[_0x9c5b('0x21')]=_0x4ed62b[_0x9c5b('0x21')];this[_0x9c5b('0x22')]=_0x4ed62b[_0x9c5b('0x22')];this[_0x9c5b('0x23')]=_0x4ed62b[_0x9c5b('0x23')];this['VoiceQueueId']=_0x4ed62b[_0x9c5b('0x24')];this[_0x9c5b('0x25')]=_0x4ed62b[_0x9c5b('0x25')];this[_0x9c5b('0x26')]=_0x4ed62b[_0x9c5b('0x26')]||'';this['originatecalleridname']=_0x4ed62b[_0x9c5b('0x27')]||'';}module[_0x9c5b('0x28')]=AgentComplete;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xed1f=['seconds','uniqueid','scheduledat','type','outbound','countbusyretry','countcongestionretry','countnoanswerretry','countdropretry','countagentrejectretry','countnosuchnumberretry','countabandonedretry','countmachineretry','queue','calleridname','calleridnum','starttime','endtime','ringtime','holdtime','talktime','callback','callbackuniqueid','callbackat','recallme','ContactId','ListId','UserId','VoiceQueueId','CampaignId','originatecalleridnum','originatecalleridname','util','lodash','moment','milliseconds','diff'];(function(_0x4e2f6b,_0x1ec521){var _0x4b7c60=function(_0xcb9fdf){while(--_0xcb9fdf){_0x4e2f6b['push'](_0x4e2f6b['shift']());}};_0x4b7c60(++_0x1ec521);}(_0xed1f,0x6a));var _0xfed1=function(_0x176329,_0x568c84){_0x176329=_0x176329-0x0;var _0x31997c=_0xed1f[_0x176329];return _0x31997c;};'use strict';var util=require(_0xfed1('0x0'));var _=require(_0xfed1('0x1'));var moment=require(_0xfed1('0x2'));function getSeconds(_0xbd30b7,_0xa45937){var _0x25f345=moment(_0xbd30b7)[_0xfed1('0x3')](0x0);var _0xa68587=moment(_0xa45937)[_0xfed1('0x3')](0x0);return _0x25f345[_0xfed1('0x4')](_0xa68587,_0xfed1('0x5'));}function Final(_0xd2c769){this[_0xfed1('0x6')]=_0xd2c769[_0xfed1('0x6')];this[_0xfed1('0x7')]=_0xd2c769[_0xfed1('0x7')];this[_0xfed1('0x8')]=_0xd2c769[_0xfed1('0x8')];this['campaigntype']=_0xd2c769[_0xfed1('0x8')]===_0xfed1('0x9')?'queue':_0xd2c769[_0xfed1('0x8')];this[_0xfed1('0xa')]=_0xd2c769['countbusyretry'];this[_0xfed1('0xb')]=_0xd2c769['countcongestionretry'];this[_0xfed1('0xc')]=_0xd2c769[_0xfed1('0xc')];this['countglobal']=_0xd2c769['countbusyretry']+_0xd2c769[_0xfed1('0xb')]+_0xd2c769[_0xfed1('0xc')]+_0xd2c769['countnosuchnumberretry']+_0xd2c769[_0xfed1('0xd')]+_0xd2c769['countabandonedretry']+_0xd2c769['countmachineretry']+_0xd2c769[_0xfed1('0xe')];this[_0xfed1('0xf')]=_0xd2c769['countnosuchnumberretry'];this[_0xfed1('0xd')]=_0xd2c769['countdropretry'];this['countabandonedretry']=_0xd2c769[_0xfed1('0x10')];this[_0xfed1('0x11')]=_0xd2c769[_0xfed1('0x11')];this[_0xfed1('0xe')]=_0xd2c769['countagentrejectretry'];this[_0xfed1('0x12')]=_0xd2c769['queue'];this[_0xfed1('0x13')]=_0xd2c769[_0xfed1('0x13')];this['calleridnum']=_0xd2c769[_0xfed1('0x14')];this[_0xfed1('0x15')]=_0xd2c769['starttime'];this['responsetime']=_0xd2c769['responsetime'];this[_0xfed1('0x16')]=_0xd2c769['responsetime'];this[_0xfed1('0x17')]=_0xd2c769[_0xfed1('0x17')]||0x0;this['holdtime']=_0xd2c769[_0xfed1('0x18')]||0x0;this[_0xfed1('0x19')]=_0xd2c769['talktime']||0x0;this[_0xfed1('0x1a')]=_0xd2c769[_0xfed1('0x1a')];this[_0xfed1('0x1b')]=_0xd2c769[_0xfed1('0x1b')];this['callbackat']=_0xd2c769[_0xfed1('0x1c')];this['recallme']=_0xd2c769[_0xfed1('0x1d')];this[_0xfed1('0x1e')]=_0xd2c769[_0xfed1('0x1e')];this['ListId']=_0xd2c769[_0xfed1('0x1f')];this['UserId']=_0xd2c769[_0xfed1('0x20')];this[_0xfed1('0x21')]=_0xd2c769[_0xfed1('0x21')];this[_0xfed1('0x22')]=_0xd2c769[_0xfed1('0x22')];this[_0xfed1('0x23')]=_0xd2c769['originatecalleridnum']||'';this[_0xfed1('0x24')]=_0xd2c769[_0xfed1('0x24')]||'';}module['exports']=Final;
\ No newline at end of file
+var _0xbeea=['campaigntype','outbound','queue','countbusyretry','countcongestionretry','countnoanswerretry','countglobal','countnosuchnumberretry','countdropretry','countabandonedretry','countmachineretry','countagentrejectretry','calleridname','calleridnum','starttime','responsetime','endtime','ringtime','talktime','callback','callbackuniqueid','callbackat','ContactId','ListId','UserId','VoiceQueueId','CampaignId','originatecalleridnum','originatecalleridname','util','moment','milliseconds','diff','seconds','uniqueid','scheduledat','type'];(function(_0x3a6efd,_0x2a5102){var _0x487b9a=function(_0x104f89){while(--_0x104f89){_0x3a6efd['push'](_0x3a6efd['shift']());}};_0x487b9a(++_0x2a5102);}(_0xbeea,0xb1));var _0xabee=function(_0x377570,_0xfd20e1){_0x377570=_0x377570-0x0;var _0x43e675=_0xbeea[_0x377570];return _0x43e675;};'use strict';var util=require(_0xabee('0x0'));var _=require('lodash');var moment=require(_0xabee('0x1'));function getSeconds(_0x3b377b,_0x35ca8b){var _0x48a420=moment(_0x3b377b)[_0xabee('0x2')](0x0);var _0x59e264=moment(_0x35ca8b)[_0xabee('0x2')](0x0);return _0x48a420[_0xabee('0x3')](_0x59e264,_0xabee('0x4'));}function Final(_0x49631e){this[_0xabee('0x5')]=_0x49631e['uniqueid'];this['scheduledat']=_0x49631e[_0xabee('0x6')];this[_0xabee('0x7')]=_0x49631e['type'];this[_0xabee('0x8')]=_0x49631e['type']===_0xabee('0x9')?_0xabee('0xa'):_0x49631e[_0xabee('0x7')];this[_0xabee('0xb')]=_0x49631e[_0xabee('0xb')];this[_0xabee('0xc')]=_0x49631e['countcongestionretry'];this[_0xabee('0xd')]=_0x49631e[_0xabee('0xd')];this[_0xabee('0xe')]=_0x49631e['countbusyretry']+_0x49631e[_0xabee('0xc')]+_0x49631e[_0xabee('0xd')]+_0x49631e[_0xabee('0xf')]+_0x49631e['countdropretry']+_0x49631e['countabandonedretry']+_0x49631e['countmachineretry']+_0x49631e['countagentrejectretry'];this['countnosuchnumberretry']=_0x49631e[_0xabee('0xf')];this[_0xabee('0x10')]=_0x49631e[_0xabee('0x10')];this[_0xabee('0x11')]=_0x49631e[_0xabee('0x11')];this['countmachineretry']=_0x49631e[_0xabee('0x12')];this[_0xabee('0x13')]=_0x49631e[_0xabee('0x13')];this[_0xabee('0xa')]=_0x49631e[_0xabee('0xa')];this[_0xabee('0x14')]=_0x49631e[_0xabee('0x14')];this['calleridnum']=_0x49631e[_0xabee('0x15')];this[_0xabee('0x16')]=_0x49631e[_0xabee('0x16')];this[_0xabee('0x17')]=_0x49631e[_0xabee('0x17')];this[_0xabee('0x18')]=_0x49631e['responsetime'];this['ringtime']=_0x49631e[_0xabee('0x19')]||0x0;this['holdtime']=_0x49631e['holdtime']||0x0;this[_0xabee('0x1a')]=_0x49631e[_0xabee('0x1a')]||0x0;this[_0xabee('0x1b')]=_0x49631e[_0xabee('0x1b')];this[_0xabee('0x1c')]=_0x49631e['callbackuniqueid'];this[_0xabee('0x1d')]=_0x49631e['callbackat'];this['recallme']=_0x49631e['recallme'];this[_0xabee('0x1e')]=_0x49631e['ContactId'];this[_0xabee('0x1f')]=_0x49631e[_0xabee('0x1f')];this[_0xabee('0x20')]=_0x49631e[_0xabee('0x20')];this[_0xabee('0x21')]=_0x49631e[_0xabee('0x21')];this[_0xabee('0x22')]=_0x49631e['CampaignId'];this[_0xabee('0x23')]=_0x49631e[_0xabee('0x23')]||'';this[_0xabee('0x24')]=_0x49631e[_0xabee('0x24')]||'';}module['exports']=Final;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x976b=['number','starttime','responsetime','endtime','format','YYYY-MM-DD\x20HH:mm:ss','ringtime','holdtime','queue','membername','IVR','reason','cause-txt','callback','callbackuniqueid','callbackat','recallme','ContactId','ListId','UserId','VoiceQueueId','CampaignId','util','lodash','moment','milliseconds','diff','state','statedesc','Answer','scheduledat','type','campaigntype','countbusyretry','countcongestionretry','countnoanswerretry','countnosuchnumberretry','countdropretry','countabandonedretry','countmachineretry','countagentrejectretry','uniqueid','name','calleridnum'];(function(_0xa522f,_0x5debbc){var _0x2083b0=function(_0x288f01){while(--_0x288f01){_0xa522f['push'](_0xa522f['shift']());}};_0x2083b0(++_0x5debbc);}(_0x976b,0x1a2));var _0xb976=function(_0x29917e,_0x105b21){_0x29917e=_0x29917e-0x0;var _0x52d7c6=_0x976b[_0x29917e];return _0x52d7c6;};'use strict';var util=require(_0xb976('0x0'));var _=require(_0xb976('0x1'));var moment=require(_0xb976('0x2'));function getSeconds(_0x5f4dd3,_0x40c83e){var _0x3e92c1=moment(_0x5f4dd3)[_0xb976('0x3')](0x0);var _0x132584=moment(_0x40c83e)['milliseconds'](0x0);return _0x3e92c1[_0xb976('0x4')](_0x132584,'seconds');}function Hangup(_0x5ee05a,_0x33e65d){this[_0xb976('0x5')]=0x4;this[_0xb976('0x6')]=_0xb976('0x7');this['scheduledat']=_0x5ee05a[_0xb976('0x8')];this['type']=_0x5ee05a[_0xb976('0x9')];this[_0xb976('0xa')]=_0x5ee05a[_0xb976('0x9')]==='outbound'?'queue':_0x5ee05a[_0xb976('0x9')];this[_0xb976('0xb')]=_0x5ee05a[_0xb976('0xb')];this[_0xb976('0xc')]=_0x5ee05a['countcongestionretry'];this[_0xb976('0xd')]=_0x5ee05a[_0xb976('0xd')];this['countglobal']=_0x5ee05a[_0xb976('0xb')]+_0x5ee05a[_0xb976('0xc')]+_0x5ee05a['countnoanswerretry']+_0x5ee05a[_0xb976('0xe')]+_0x5ee05a[_0xb976('0xf')]+_0x5ee05a[_0xb976('0x10')]+_0x5ee05a[_0xb976('0x11')]+_0x5ee05a['countagentrejectretry'];this['countnosuchnumberretry']=_0x5ee05a[_0xb976('0xe')];this[_0xb976('0xf')]=_0x5ee05a[_0xb976('0xf')];this['countabandonedretry']=_0x5ee05a['countabandonedretry'];this[_0xb976('0x11')]=_0x5ee05a[_0xb976('0x11')];this[_0xb976('0x12')]=_0x5ee05a[_0xb976('0x12')];this[_0xb976('0x13')]=_0x33e65d['uniqueid'];this['calleridname']=_0x5ee05a[_0xb976('0x14')];this[_0xb976('0x15')]=_0x5ee05a[_0xb976('0x16')];this[_0xb976('0x17')]=_0x5ee05a[_0xb976('0x17')];this[_0xb976('0x18')]=_0x5ee05a[_0xb976('0x18')];this[_0xb976('0x19')]=moment()[_0xb976('0x1a')](_0xb976('0x1b'));this[_0xb976('0x1c')]=getSeconds(_0x5ee05a['responsetime'],_0x5ee05a['starttime']);this[_0xb976('0x1d')]=0x0;this['talktime']=getSeconds(this[_0xb976('0x19')],_0x5ee05a[_0xb976('0x18')]);this[_0xb976('0x1e')]=_0x5ee05a['queue'];this[_0xb976('0x1f')]=_0xb976('0x20');this[_0xb976('0x21')]=_0x33e65d[_0xb976('0x22')];this[_0xb976('0x23')]=_0x5ee05a[_0xb976('0x23')];this[_0xb976('0x24')]=_0x5ee05a['callbackuniqueid'];this[_0xb976('0x25')]=_0x5ee05a[_0xb976('0x25')];this[_0xb976('0x26')]=_0x5ee05a[_0xb976('0x26')];this[_0xb976('0x27')]=_0x5ee05a[_0xb976('0x27')];this[_0xb976('0x28')]=_0x5ee05a['ListId'];this[_0xb976('0x29')]=_0x5ee05a[_0xb976('0x29')];this['VoiceQueueId']=_0x5ee05a[_0xb976('0x2a')];this[_0xb976('0x2b')]=_0x5ee05a[_0xb976('0x2b')];}module['exports']=Hangup;
\ No newline at end of file
+var _0x08fb=['seconds','state','statedesc','Answer','scheduledat','type','campaigntype','countbusyretry','countcongestionretry','countnoanswerretry','countglobal','countnosuchnumberretry','countabandonedretry','countmachineretry','countdropretry','countagentrejectretry','uniqueid','calleridname','name','calleridnum','number','starttime','responsetime','endtime','format','YYYY-MM-DD\x20HH:mm:ss','ringtime','holdtime','talktime','membername','IVR','reason','cause-txt','callback','callbackuniqueid','callbackat','recallme','ContactId','ListId','UserId','VoiceQueueId','CampaignId','exports','lodash','milliseconds'];(function(_0x1f30cb,_0x2c7775){var _0x49d785=function(_0x38f608){while(--_0x38f608){_0x1f30cb['push'](_0x1f30cb['shift']());}};_0x49d785(++_0x2c7775);}(_0x08fb,0x10c));var _0xb08f=function(_0x2ad456,_0x3dd6cf){_0x2ad456=_0x2ad456-0x0;var _0x47fd18=_0x08fb[_0x2ad456];return _0x47fd18;};'use strict';var util=require('util');var _=require(_0xb08f('0x0'));var moment=require('moment');function getSeconds(_0x4f811d,_0x301b25){var _0x106e6a=moment(_0x4f811d)[_0xb08f('0x1')](0x0);var _0x54f97=moment(_0x301b25)[_0xb08f('0x1')](0x0);return _0x106e6a['diff'](_0x54f97,_0xb08f('0x2'));}function Hangup(_0x2f4070,_0x389db3){this[_0xb08f('0x3')]=0x4;this[_0xb08f('0x4')]=_0xb08f('0x5');this['scheduledat']=_0x2f4070[_0xb08f('0x6')];this[_0xb08f('0x7')]=_0x2f4070['type'];this[_0xb08f('0x8')]=_0x2f4070[_0xb08f('0x7')]==='outbound'?'queue':_0x2f4070[_0xb08f('0x7')];this[_0xb08f('0x9')]=_0x2f4070[_0xb08f('0x9')];this['countcongestionretry']=_0x2f4070[_0xb08f('0xa')];this[_0xb08f('0xb')]=_0x2f4070[_0xb08f('0xb')];this[_0xb08f('0xc')]=_0x2f4070['countbusyretry']+_0x2f4070[_0xb08f('0xa')]+_0x2f4070[_0xb08f('0xb')]+_0x2f4070[_0xb08f('0xd')]+_0x2f4070['countdropretry']+_0x2f4070[_0xb08f('0xe')]+_0x2f4070[_0xb08f('0xf')]+_0x2f4070['countagentrejectretry'];this[_0xb08f('0xd')]=_0x2f4070[_0xb08f('0xd')];this[_0xb08f('0x10')]=_0x2f4070['countdropretry'];this[_0xb08f('0xe')]=_0x2f4070['countabandonedretry'];this[_0xb08f('0xf')]=_0x2f4070[_0xb08f('0xf')];this['countagentrejectretry']=_0x2f4070[_0xb08f('0x11')];this[_0xb08f('0x12')]=_0x389db3[_0xb08f('0x12')];this[_0xb08f('0x13')]=_0x2f4070[_0xb08f('0x14')];this[_0xb08f('0x15')]=_0x2f4070[_0xb08f('0x16')];this[_0xb08f('0x17')]=_0x2f4070['starttime'];this[_0xb08f('0x18')]=_0x2f4070[_0xb08f('0x18')];this[_0xb08f('0x19')]=moment()[_0xb08f('0x1a')](_0xb08f('0x1b'));this[_0xb08f('0x1c')]=getSeconds(_0x2f4070[_0xb08f('0x18')],_0x2f4070[_0xb08f('0x17')]);this[_0xb08f('0x1d')]=0x0;this[_0xb08f('0x1e')]=getSeconds(this['endtime'],_0x2f4070[_0xb08f('0x18')]);this['queue']=_0x2f4070['queue'];this[_0xb08f('0x1f')]=_0xb08f('0x20');this[_0xb08f('0x21')]=_0x389db3[_0xb08f('0x22')];this[_0xb08f('0x23')]=_0x2f4070[_0xb08f('0x23')];this[_0xb08f('0x24')]=_0x2f4070[_0xb08f('0x24')];this[_0xb08f('0x25')]=_0x2f4070[_0xb08f('0x25')];this['recallme']=_0x2f4070[_0xb08f('0x26')];this[_0xb08f('0x27')]=_0x2f4070[_0xb08f('0x27')];this['ListId']=_0x2f4070[_0xb08f('0x28')];this[_0xb08f('0x29')]=_0x2f4070[_0xb08f('0x29')];this['VoiceQueueId']=_0x2f4070[_0xb08f('0x2a')];this[_0xb08f('0x2b')]=_0x2f4070[_0xb08f('0x2b')];}module[_0xb08f('0x2c')]=Hangup;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x09cb=['countagentrejectretry','countabandonedretry','queue','calleridname','name','calleridnum','number','starttime','responsetime','endtime','ringtime','holdtime','talktime','callback','callbackuniqueid','callbackat','recallme','ContactId','ListId','UserId','VoiceQueueId','CampaignId','originatecalleridnum','originatecalleridname','exports','util','moment','milliseconds','uniqueid','scheduledat','type','campaigntype','outbound','countbusyretry','countcongestionretry','countnoanswerretry','countglobal','countnosuchnumberretry','countdropretry','countmachineretry'];(function(_0x2476be,_0x58fd9c){var _0x54d378=function(_0x2a25ae){while(--_0x2a25ae){_0x2476be['push'](_0x2476be['shift']());}};_0x54d378(++_0x58fd9c);}(_0x09cb,0x109));var _0xb09c=function(_0xe6e8bb,_0x170693){_0xe6e8bb=_0xe6e8bb-0x0;var _0xe23fa=_0x09cb[_0xe6e8bb];return _0xe23fa;};'use strict';var util=require(_0xb09c('0x0'));var _=require('lodash');var moment=require(_0xb09c('0x1'));function getSeconds(_0xc51541,_0x3af96b){var _0x204883=moment(_0xc51541)[_0xb09c('0x2')](0x0);var _0x53e85a=moment(_0x3af96b)[_0xb09c('0x2')](0x0);return _0x204883['diff'](_0x53e85a,'seconds');}function History(_0x4c2bb3){this['uniqueid']=_0x4c2bb3[_0xb09c('0x3')];this[_0xb09c('0x4')]=_0x4c2bb3[_0xb09c('0x4')]||undefined;this[_0xb09c('0x5')]=_0x4c2bb3[_0xb09c('0x5')];this[_0xb09c('0x6')]=_0x4c2bb3['type']===_0xb09c('0x7')?'queue':_0x4c2bb3[_0xb09c('0x5')];this['countbusyretry']=_0x4c2bb3[_0xb09c('0x8')];this[_0xb09c('0x9')]=_0x4c2bb3[_0xb09c('0x9')];this[_0xb09c('0xa')]=_0x4c2bb3[_0xb09c('0xa')];this[_0xb09c('0xb')]=_0x4c2bb3['countbusyretry']+_0x4c2bb3['countcongestionretry']+_0x4c2bb3[_0xb09c('0xa')]+_0x4c2bb3[_0xb09c('0xc')]+_0x4c2bb3[_0xb09c('0xd')]+_0x4c2bb3['countabandonedretry']+_0x4c2bb3[_0xb09c('0xe')]+_0x4c2bb3[_0xb09c('0xf')];this[_0xb09c('0xc')]=_0x4c2bb3[_0xb09c('0xc')];this[_0xb09c('0xd')]=_0x4c2bb3['countdropretry'];this[_0xb09c('0x10')]=_0x4c2bb3[_0xb09c('0x10')];this[_0xb09c('0xe')]=_0x4c2bb3[_0xb09c('0xe')];this['countagentrejectretry']=_0x4c2bb3[_0xb09c('0xf')];this[_0xb09c('0x11')]=_0x4c2bb3['queue'];this[_0xb09c('0x12')]=_0x4c2bb3[_0xb09c('0x13')];this[_0xb09c('0x14')]=_0x4c2bb3[_0xb09c('0x15')];this[_0xb09c('0x16')]=_0x4c2bb3[_0xb09c('0x16')];this['responsetime']=_0x4c2bb3[_0xb09c('0x17')];this[_0xb09c('0x18')]=_0x4c2bb3[_0xb09c('0x17')];this[_0xb09c('0x19')]=getSeconds(_0x4c2bb3[_0xb09c('0x17')],_0x4c2bb3['starttime']);this[_0xb09c('0x1a')]=0x0;this[_0xb09c('0x1b')]=0x0;this['callback']=_0x4c2bb3[_0xb09c('0x1c')];this[_0xb09c('0x1d')]=_0x4c2bb3[_0xb09c('0x1d')];this['callbackat']=_0x4c2bb3[_0xb09c('0x1e')];this['recallme']=_0x4c2bb3[_0xb09c('0x1f')];this[_0xb09c('0x20')]=_0x4c2bb3['ContactId'];this[_0xb09c('0x21')]=_0x4c2bb3['ListId'];this[_0xb09c('0x22')]=_0x4c2bb3[_0xb09c('0x22')];this['VoiceQueueId']=_0x4c2bb3[_0xb09c('0x23')];this[_0xb09c('0x24')]=_0x4c2bb3[_0xb09c('0x24')];this[_0xb09c('0x25')]=_0x4c2bb3['originatecalleridnum']||'';this[_0xb09c('0x26')]=_0x4c2bb3[_0xb09c('0x26')]||'';}module[_0xb09c('0x27')]=History;
\ No newline at end of file
+var _0x33cd=['countglobal','countdropretry','countmachineretry','countnosuchnumberretry','countabandonedretry','countagentrejectretry','calleridname','name','number','starttime','responsetime','endtime','ringtime','holdtime','talktime','callbackuniqueid','recallme','ContactId','ListId','UserId','VoiceQueueId','CampaignId','originatecalleridnum','originatecalleridname','exports','util','lodash','moment','milliseconds','uniqueid','scheduledat','type','outbound','queue','countbusyretry','countcongestionretry','countnoanswerretry'];(function(_0x2fd1f1,_0x3a4fbf){var _0x12e6b4=function(_0x2d6c4e){while(--_0x2d6c4e){_0x2fd1f1['push'](_0x2fd1f1['shift']());}};_0x12e6b4(++_0x3a4fbf);}(_0x33cd,0x166));var _0xd33c=function(_0x46385c,_0x4fe83e){_0x46385c=_0x46385c-0x0;var _0x364bb5=_0x33cd[_0x46385c];return _0x364bb5;};'use strict';var util=require(_0xd33c('0x0'));var _=require(_0xd33c('0x1'));var moment=require(_0xd33c('0x2'));function getSeconds(_0x23b238,_0x1c61f1){var _0x14c493=moment(_0x23b238)['milliseconds'](0x0);var _0x3af975=moment(_0x1c61f1)[_0xd33c('0x3')](0x0);return _0x14c493['diff'](_0x3af975,'seconds');}function History(_0x4ccc09){this[_0xd33c('0x4')]=_0x4ccc09[_0xd33c('0x4')];this[_0xd33c('0x5')]=_0x4ccc09['scheduledat']||undefined;this[_0xd33c('0x6')]=_0x4ccc09['type'];this['campaigntype']=_0x4ccc09['type']===_0xd33c('0x7')?_0xd33c('0x8'):_0x4ccc09[_0xd33c('0x6')];this[_0xd33c('0x9')]=_0x4ccc09[_0xd33c('0x9')];this[_0xd33c('0xa')]=_0x4ccc09[_0xd33c('0xa')];this[_0xd33c('0xb')]=_0x4ccc09[_0xd33c('0xb')];this[_0xd33c('0xc')]=_0x4ccc09[_0xd33c('0x9')]+_0x4ccc09['countcongestionretry']+_0x4ccc09['countnoanswerretry']+_0x4ccc09['countnosuchnumberretry']+_0x4ccc09[_0xd33c('0xd')]+_0x4ccc09['countabandonedretry']+_0x4ccc09[_0xd33c('0xe')]+_0x4ccc09['countagentrejectretry'];this['countnosuchnumberretry']=_0x4ccc09[_0xd33c('0xf')];this[_0xd33c('0xd')]=_0x4ccc09[_0xd33c('0xd')];this[_0xd33c('0x10')]=_0x4ccc09[_0xd33c('0x10')];this[_0xd33c('0xe')]=_0x4ccc09[_0xd33c('0xe')];this['countagentrejectretry']=_0x4ccc09[_0xd33c('0x11')];this['queue']=_0x4ccc09[_0xd33c('0x8')];this[_0xd33c('0x12')]=_0x4ccc09[_0xd33c('0x13')];this['calleridnum']=_0x4ccc09[_0xd33c('0x14')];this[_0xd33c('0x15')]=_0x4ccc09[_0xd33c('0x15')];this[_0xd33c('0x16')]=_0x4ccc09[_0xd33c('0x16')];this[_0xd33c('0x17')]=_0x4ccc09[_0xd33c('0x16')];this[_0xd33c('0x18')]=getSeconds(_0x4ccc09[_0xd33c('0x16')],_0x4ccc09[_0xd33c('0x15')]);this[_0xd33c('0x19')]=0x0;this[_0xd33c('0x1a')]=0x0;this['callback']=_0x4ccc09['callback'];this[_0xd33c('0x1b')]=_0x4ccc09[_0xd33c('0x1b')];this['callbackat']=_0x4ccc09['callbackat'];this[_0xd33c('0x1c')]=_0x4ccc09[_0xd33c('0x1c')];this[_0xd33c('0x1d')]=_0x4ccc09[_0xd33c('0x1d')];this['ListId']=_0x4ccc09[_0xd33c('0x1e')];this[_0xd33c('0x1f')]=_0x4ccc09[_0xd33c('0x1f')];this[_0xd33c('0x20')]=_0x4ccc09[_0xd33c('0x20')];this[_0xd33c('0x21')]=_0x4ccc09[_0xd33c('0x21')];this[_0xd33c('0x22')]=_0x4ccc09['originatecalleridnum']||'';this[_0xd33c('0x23')]=_0x4ccc09['originatecalleridname']||'';}module[_0xd33c('0x24')]=History;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4ded=['agent','agiafterat','dialQueueProject2','dialAgiAfterHangupAgent','[syncAgentComplete][createHistory]','[syncAgentComplete]','answertime','droptime','dialQueueTimeout','Drop','dropreason','TIMEOUT','queueCallerAbandonCreateState','dialDropRetryFrequency','[rescheduleContact][Drop]','calleridname','calleridnum','[syncAgentComplete][createHistory][10]','Abandoned','CALLEREXIT','countabandonedretry','dialAbandonedMaxRetry','dialAbandonedRetryFrequency','[rescheduleContact][Abandoned]','[syncAgentComplete][createHistory][11]','syncNewExten','strategy','actionid','locked','paused','stateinterface','push','idHopper','[unlockQueueStatus][undefined]','queueStatusComplete','[booked][unlockQueueStatus]','run','[Catch][Preview][syncQueueStatusComplete]','[unlock][syncQueueStatusComplete]','_rr','unlockRR','[booked][RR]','Agent:\x20','contactAgent-idHopper:\x20','[booked][unlock]','[booked][unlock2]','[unlock2][syncQueueStatusComplete]','[booked][unlock3]','[unlock3][syncQueueStatusComplete]','syncCampaigns','checkIsTrunkReachable','isTrunkReachable','TrunkBackup','TRUNK_IS_NOT_REACHABLE','\x20trunk\x20is\x20not\x20reachable','ifTime','Failure','\x20Intervals\x20is\x20null\x20','INTERVAL_IS_EMPTY','\x20Intervals\x20is\x20empty\x20','TIMEZONE_UNKNOW','isArray','length','command','iftime\x20%s,%s','interval','timezones','content','indexOf','true','Action','all','some','GLOBAL_INTERVAL_IS_OVERTIME','INTERVAL_IS_OVERTIME','Global:\x20','\x20Interval\x20is\x20overtime:\x20','Timezone:\x20','checkDialMethod','progressive','handlePower','power','dialPowerLevel','booked','Queue','method\x20not\x20recognized','checkIfTime','dialTimezone','checkIfTimeIntervals','dialGlobalInterval','launchHandleIvr','[syncCampaigns]','\x5cw{0,','pow','replace','random','match','actionOriginate','object','originate','voiceQueue\x20is\x20undefine','Contact','phone','contact\x20is\x20undefine','getCaller','NONE','\x22agi://%s/square,%s\x22','\x22%s,%s%s,,,%s\x22','dialQueueOptions','ACTIVE','dialAMDInitialSilence','XMD-AMDGREETING','dialAMDGreeting','XMD-AMDAFTERGREETINGSILENCE','XMD-AMDTOTALANALYSISTIME','dialAMDMinWordLength','XMD-AMDBETWEENWORDSSILENCE','dialAMDMaximumNumberOfWords','XMD-AMDSILENCETHRESHOLD','dialAMDSilenceThreshold','dialAMDMaximumWordLength','XMD-VOICEQUEUEID','XMD-CAMPAIGNID','tags','createdAt','updatedAt','%s%s','XMD-','dialRandomLastDigitCallerIdNumber','dialOriginateCallerIdNumber','XMD-ORIGINATECALLERIDNAME','originatecalleridname','XMD-ORIGINATECALLERIDNUM','originatecalleridnum','SIP/%s/%s%s','trim','substring','dialCutDigit','from-sip','[originateError]:\x20%s','OriginateError','[originate][error]','originate\x20action\x20Error','responsetime','getQueue','response','callProgressDetecting','[callProgressDetecting]\x20','checkRetriveMax','dialNoAnswerMaxRetry','dialNoAnswerRetryFrequency','[rescheduleContact][NoAnswer]','dialBusyMaxRetry','[rescheduleContact]\x20[Busy]','[rescheduleContact]\x20[Congestion]','dialNoSuchNumberMaxRetry','dialNoSuchNumberRetryFrequency','[rescheduleContact][NoSuchNumber]','dialDropMaxRetry','dialAgentRejectMaxRetry','dialAgentRejectRetryFrequency','[rescheduleContact][AgentReject]','[callProgressDetecting]','evt\x20is\x20undefine','reason','NoSuchNumber','custom:agentnosuchnumber','nosuchnumber','reason\x200\x20no\x20such\x20number....','custom:agentnoanswer','noanswer','[syncAgentComplete][createHistory][3]','reason\x203\x20ringing\x20no\x20answer','Busy','custom:agentbusy','busy','reason\x205\x20busy','custom:agentcongestion','congestion','[syncAgentComplete][createHistory][8]','dialCongestionMaxRetry','outboundAbandonedCallsDay','reason\x2011\x20abandoned','AgentReject','custom:agentreject','agentreject','[syncAgentComplete][createHistory][20]','reason\x2020\x20agentreject','[syncAgentComplete][createHistory][?]','[moveContactManagedDialer][0]','contact\x20not\x20moved','dialPredictiveOptimizationPercentage','round','predictiveIntervalMaxThreshold','floor','predictiveIntervalHitRate','[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','dropRate','[stopMethodPredictive][ReStartProgressive][ExceededDropInterval]','Max\x20Drop\x20','Drop\x20in\x20this\x20interval','started\x20in\x20predictive\x20at','averageHandleTime','getDataPredictive','startMethodPredictive','Predictive\x20after\x20first\x20interval','recalculate\x20predictive\x20at','Predictive\x20for\x20every\x20interval','switch\x20in\x20progressive\x20because\x20available\x20agents\x20(',')\x20are\x20less\x20than\x20threshold\x20(',')\x20are\x20more\x20than\x20threshold\x20(','abandonmentRate','agentBusyFactor','busyFactor','[getDataPredictive]','getDataPredictiveOld','outboundQueuePauses','[CatchErlangB]','check\x20failure','one\x20call\x20every:','recallme','[booked][checkContactBlack]','Queue:\x20','[unlockOriginate][syncQueueStatusComplete]','scheduledat','dialRecallMeTimeout','Agent','[rescheduleContact][dialRecallInQueue]','RECALLINQUEUE','RecallInQueue','[Originate][HistoryDialRecallInQueue][historyCatch]','RecallFailedTimeout','[Originate][HistoryRecallClose]','BLACKLIST','Blacklist','[Originate][historyBlacklist]','[Originate][MoveBlacklist]','inBlackList','limitCalls','dialOrderByScheduledAt','[getContactCampaign2][Empty]','[actionOriginate]\x20','Contact.phone','checkContactBlack','[actionOriginateIvr]\x20','[getContactCampaign2]','dialLimitQueue','not_inuse','countReScheduled','RUNNING','[getContactDialer2]','tryOriginatePredictive','[handlePredictive][limitChannel]','[actionOriginatePredictive]\x20','[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','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','[abandonmentRate]','m\x20=\x20','Ts\x20=\x20','Amax\x20=\x20','----\x20Agent\x20Busy\x20Factor\x20----','[busyFactor]','p\x20=\x20','interval\x20=\x20','Umin\x20=\x20','exports','util','lodash','bluebird','uuid','moment','md5','ioredis','../preview/util/util','../../../config/environment/','../../../config/logger','dialer','predictive','predictiveCalls','syncQueueSummary','redis','socket.io-emitter','../rpc/voiceQueueRt','./history','./final','./agentComplete','./queueCallerAbandon','./hangup','env','XCALLY_IP_AGI','127.0.0.1','rrmemory','roundrobin','prototype','enqueue','tail','finally','sequence','preview','voiceQueues','agents','trunks','maxNumberOriginate','actions','contactsId','uniqueId','optionPredictive','startProgressive','ivrOriginated','queueBooked','queueBookedRR','agentconnect','syncAgentConnect','bind','queuecallerabandon','syncQueueCallerAbandon','syncOriginateResponse','agentcomplete','syncAgentComplete','custom:queuesummary','hangup','syncHangup','newexten','varset','syncQueueMember','queuestatuscomplete','loopCampaigns','loopClearZombieChannels','isUndefined','name','message','\x20NOT\x20Active','Interval','\x20INTERVAL_IS_NULL','Intervals','INTERVAL_IS_NULL','Error','stringify','milliseconds','seconds','emit','type','outbound','answered','available','loggedIn','pTalking','sumBillable','sumDuration','sumHoldTime','total','unmanaged','abandoned','waiting','dialActive','dialMethod','dialOriginateCallerIdName','dialOriginateTimeout','dialPrefix','outboundAnswerAgiCallsDay','outboundBlacklistCallsDay','outboundBusyCallsDay','outboundCongestionCallsDay','outboundDropCallsDayACS','outboundDropCallsDayCallersExit','outboundDropCallsDayTimeout','outboundNoAnswerCallsDay','outboundOriginateFailureCallsDay','outboundReCallsDay','outboundRejectCallsDay','predictiveIntervalAnsweredCalls','predictiveIntervalAvgHoldtime','predictiveIntervalAvgTalktime','predictiveIntervalErlangCalls','predictiveIntervalErlangCallsDroppedCalls','predictiveIntervalMultiplicativeFactor','predictiveIntervalPauses','predictiveIntervalAvailable','predictiveIntervalTotalCalls','originated','erlangCalls','erlangCallToSecond','erlangAbandonmentRate','erlangBusyFactor','startPredictive','Trunk','active','callerid','format','voice:queue:%s','voice_queue:save','ivr','campaign:ivr:%s','campaign:save','isEmpty','info','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\x20Timeout:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','predictiveIntervalDroppedCallsTimeout','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\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','Drop\x20Rate:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','diff','clearing\x20variable\x20start\x20progressive','clearing\x20variable\x20start\x20predictive','handlePredictive','clearing\x20variable\x20handle\x20predictive','string','\x22%s\x22\x20<%s>','inspect','error','stack','undefined','[decremetOriginate]\x20object\x20originated\x20is\x20negative','contactsRescheduled','RESCHEDULED_CONTACTS','[getContactDialer2][ReScheduled]','contacts','AVAILABLE_CONTACTS_FINISHED','talking','NOT_ACTIVE','[syncQueueSummary]\x20Campaign\x20Queue:\x20','sendMessageOneNotActive','[syncQueueSummary]\x20Campaign\x20Ivr:\x20','is\x20not\x20active','IS_DISACTIVED','is\x20disactive','state','statedesc','endtime','starttime','clearZombieChannels','[uniqueid]','[actions]','isNil','status','channel','catch','updateOriginated','[Dialer][checkChannel]','queue','campaigns','[Dialer][checkChannel][ivr]','resolve','then','[countReScheduled]\x20','checkIsBlackList','checkIsBlackListIvr','[checkIsBlackListIvr]\x20','avgHandleTime','[averageHandleTime]\x20','rescheduleContact','[rescheduleContact]\x20','unlockContact','getContactDialer','temp','getContactDialerIvr','getVoiceQueueRtPauses','[getVoiceQueueRtPauses]\x20','moveContactManagedDialer','[moveContactManagedDialer]\x20','createHistory','[updateOriginated]\x20object\x20originated\x20is\x20negative','loggerHandler','emptyContact','saveInDb','merge','pick','ContactId','ListId','UserId','VoiceQueueId','CampaignId','[emptyContact]','isSuccess','Success','SIP/%s','reachable','unmonitored','syncVarSet','exten','xcally-motion-dialer','dialAMDActive','HANGUP','outboundAnswerCallsDay','HangupInAMD','AMD','custom:amd','buildObj','[syncHangupInAMD][createHistory]','[syncHangupInAMD]','value','MACHINE','uniqueid','membername','countmachineretry','amd','countbusyretry','countcongestionretry','countnoanswerretry','countnosuchnumberretry','countdropretry','countagentrejectretry','stateGlobal','reason19\x20machine....','dialMachineMaxRetry','createStateFinal','reason\x2019\x20machine....','dialMachineRetryFrequency','minutes','YYYY-MM-DD\x20HH:mm:ss','[syncHangupInAMDIvr][createHistory]','Machine','countglobal','[syncAgentComplete][createHistory][0]','dialGlobalMaxRetry','add','[rescheduleContact][Machine]','[syncHangupIvr][createHistory]','dialQueueProject','AnswerAGI','AGI','[syncHangupIvr]','outboundUnknownCallsDay','cause-txt','Unknow'];(function(_0x2c6810,_0x36e711){var _0x417090=function(_0x195412){while(--_0x195412){_0x2c6810['push'](_0x2c6810['shift']());}};_0x417090(++_0x36e711);}(_0x4ded,0x116));var _0xd4de=function(_0x74549c,_0x26e5c6){_0x74549c=_0x74549c-0x0;var _0x557f28=_0x4ded[_0x74549c];return _0x557f28;};'use strict';var util=require(_0xd4de('0x0'));var _=require(_0xd4de('0x1'));var BPromise=require(_0xd4de('0x2'));var uuid=require(_0xd4de('0x3'));var moment=require(_0xd4de('0x4'));var rr=require('rr');var md5=require(_0xd4de('0x5'));var Redis=require(_0xd4de('0x6'));var ut=require(_0xd4de('0x7'));var config=require(_0xd4de('0x8'));var logger=require(_0xd4de('0x9'))(_0xd4de('0xa'));var loggerBooked=require(_0xd4de('0x9'))('booked');var loggerPredictive=require(_0xd4de('0x9'))(_0xd4de('0xb'));var loggerPredictiveCalls=require(_0xd4de('0x9'))(_0xd4de('0xc'));var loggerSyncQueueSummary=require(_0xd4de('0x9'))(_0xd4de('0xd'));var ami=require('../ami');config[_0xd4de('0xe')]=_['defaults'](config['redis'],{'host':'localhost','port':0x18eb});var io=require(_0xd4de('0xf'))(new Redis(config[_0xd4de('0xe')]));var cmHopper=require('../rpc/cmHopper');var cmHopperHistory=require('../rpc/cmHopperHistory');var cmHopperBlack=require('../rpc/cmHopperBlack');var voiceQueueRt=require(_0xd4de('0x10'));var Action=require('./action');var History=require(_0xd4de('0x11'));var Final=require(_0xd4de('0x12'));var AgentComplete=require(_0xd4de('0x13'));var QueueCallerAbandon=require(_0xd4de('0x14'));var Hangup=require(_0xd4de('0x15'));var ipAgi=process[_0xd4de('0x16')][_0xd4de('0x17')]||_0xd4de('0x18');var strategy={'rrmemory':_0xd4de('0x19'),'roundrobin':_0xd4de('0x1a')};var Sequence=function(){};Sequence[_0xd4de('0x1b')][_0xd4de('0x1c')]=function(_0x164ca0){this[_0xd4de('0x1d')]=this[_0xd4de('0x1d')]?this[_0xd4de('0x1d')][_0xd4de('0x1e')](_0x164ca0):_0x164ca0();};function Dialer(_0x4b0a95,_0x5d0aeb){this[_0xd4de('0x1f')]=new Sequence();this[_0xd4de('0x20')]=_0x5d0aeb;this[_0xd4de('0x21')]=_0x4b0a95[_0xd4de('0x21')];this['campaigns']=_0x4b0a95['campaigns'];this[_0xd4de('0x22')]=_0x4b0a95['agents'];this[_0xd4de('0x23')]=_0x4b0a95[_0xd4de('0x23')];this['maxNumberOriginate']=config[_0xd4de('0x24')]||0x2;this['channels']={};this[_0xd4de('0x25')]={};this[_0xd4de('0x26')]={};this[_0xd4de('0x27')]={};this[_0xd4de('0x28')]={};this['startPredictive']={};this[_0xd4de('0x29')]={};this[_0xd4de('0x2a')]={};this[_0xd4de('0x2b')]={};this[_0xd4de('0x2c')]={};ami['on'](_0xd4de('0x2d'),this[_0xd4de('0x2e')][_0xd4de('0x2f')](this));ami['on'](_0xd4de('0x30'),this[_0xd4de('0x31')][_0xd4de('0x2f')](this));ami['on']('originateresponse',this[_0xd4de('0x32')][_0xd4de('0x2f')](this));ami['on'](_0xd4de('0x33'),this[_0xd4de('0x34')][_0xd4de('0x2f')](this));ami['on'](_0xd4de('0x35'),this[_0xd4de('0xd')][_0xd4de('0x2f')](this));ami['on'](_0xd4de('0x36'),this[_0xd4de('0x37')][_0xd4de('0x2f')](this));ami['on'](_0xd4de('0x38'),this['syncNewExten'][_0xd4de('0x2f')](this));ami['on'](_0xd4de('0x39'),this['syncVarSet'][_0xd4de('0x2f')](this));ami['on']('queuemember',this[_0xd4de('0x3a')][_0xd4de('0x2f')](this));ami['on'](_0xd4de('0x3b'),this['syncQueueStatusComplete'][_0xd4de('0x2f')](this));this[_0xd4de('0x3c')]();this[_0xd4de('0x3d')]();}function isNotNull(_0x50cb73){return _0x50cb73!==null&&!_[_0xd4de('0x3e')](_0x50cb73);}function checkIsLoggedIn(_0x1804c7,_0x55f9f9){return function(){if(_0x55f9f9<=0x0){_0x1804c7['message']='AGENTS_NOT_LOGGED';throw _0x1804c7[_0xd4de('0x3f')]+'\x20AGENTS\x20NOT\x20LOGGED';}};}function isActive(_0x1dc67b){return _0x1dc67b;}function checkIsActive(_0x1429ba,_0x3bc54d){return function(){if(!isActive(_0x3bc54d)){_0x1429ba[_0xd4de('0x40')]='NOT_ACTIVE';throw _0x1429ba[_0xd4de('0x3f')]+_0xd4de('0x41');}};}function checkInterval(_0x4e43a1){return function(){if(!isNotNull(_0x4e43a1[_0xd4de('0x42')])){_0x4e43a1[_0xd4de('0x40')]='INTERVAL_IS_NULL';throw _0x4e43a1['name']+_0xd4de('0x43');}if(!isNotNull(_0x4e43a1[_0xd4de('0x42')][_0xd4de('0x44')])){_0x4e43a1[_0xd4de('0x40')]='INTERVAL_IS_NULL';throw _0x4e43a1[_0xd4de('0x3f')]+_0xd4de('0x43');}if(!isNotNull(_['isEmpty'](_0x4e43a1[_0xd4de('0x42')][_0xd4de('0x44')]))){_0x4e43a1[_0xd4de('0x40')]=_0xd4de('0x45');throw _0x4e43a1[_0xd4de('0x3f')]+_0xd4de('0x43');}};}function msgResponse(_0x53441c,_0x493b17,_0x7ef08d){return{'action':_0x53441c,'response':_0x493b17,'message':_0x7ef08d,'stack':_0x7ef08d};}function myreject(_0x2d2fda){return function(_0x400450){return _0x2d2fda(msgResponse('[ifTime][Action]',_0xd4de('0x46'),JSON[_0xd4de('0x47')](_0x400450)));};}function getSeconds(_0x4fd981,_0x26ed59){var _0x4724bd=moment(_0x4fd981)[_0xd4de('0x48')](0x0);var _0x1f60e8=moment(_0x26ed59)['milliseconds'](0x0);return _0x4724bd['diff'](_0x1f60e8,_0xd4de('0x49'));}function emit(_0x541777,_0x3e5e34,_0x4de12c){io['to'](_0x541777)[_0xd4de('0x4a')](_0x3e5e34,_0x4de12c);}function emitVoiceQueueSummary(_0xcc1d7){if(_0xcc1d7[_0xd4de('0x4b')]===_0xd4de('0x4c')){var _0x4e6843={'id':_0xcc1d7['id'],'name':_0xcc1d7[_0xd4de('0x3f')],'strategy':_0xcc1d7['strategy'],'answered':_0xcc1d7[_0xd4de('0x4d')],'available':_0xcc1d7[_0xd4de('0x4e')],'loggedIn':_0xcc1d7[_0xd4de('0x4f')],'pTalking':_0xcc1d7[_0xd4de('0x50')],'sumBillable':_0xcc1d7[_0xd4de('0x51')],'sumDuration':_0xcc1d7[_0xd4de('0x52')],'sumHoldTime':_0xcc1d7[_0xd4de('0x53')]||0x0,'talking':_0xcc1d7['talking'],'total':_0xcc1d7[_0xd4de('0x54')],'type':_0xcc1d7[_0xd4de('0x4b')],'unmanaged':_0xcc1d7[_0xd4de('0x55')],'abandoned':_0xcc1d7[_0xd4de('0x56')],'waiting':_0xcc1d7[_0xd4de('0x57')],'loggedInDb':_0xcc1d7['loggedInDb'],'dialActive':_0xcc1d7[_0xd4de('0x58')],'dialMethod':_0xcc1d7[_0xd4de('0x59')],'dialOriginateCallerIdName':_0xcc1d7[_0xd4de('0x5a')],'dialOriginateCallerIdNumber':_0xcc1d7['dialOriginateCallerIdNumber'],'dialOriginateTimeout':_0xcc1d7[_0xd4de('0x5b')],'dialPrefix':_0xcc1d7[_0xd4de('0x5c')],'outboundAnswerAgiCallsDay':_0xcc1d7[_0xd4de('0x5d')],'outboundAnswerCallsDay':_0xcc1d7['outboundAnswerCallsDay'],'outboundBlacklistCallsDay':_0xcc1d7[_0xd4de('0x5e')],'outboundBusyCallsDay':_0xcc1d7[_0xd4de('0x5f')],'outboundCongestionCallsDay':_0xcc1d7[_0xd4de('0x60')],'outboundDropCallsDayACS':_0xcc1d7[_0xd4de('0x61')],'outboundDropCallsDayCallersExit':_0xcc1d7[_0xd4de('0x62')],'outboundDropCallsDayTimeout':_0xcc1d7[_0xd4de('0x63')],'outboundNoAnswerCallsDay':_0xcc1d7[_0xd4de('0x64')],'outboundNoSuchCallsDay':_0xcc1d7['outboundNoSuchCallsDay'],'outboundOriginateFailureCallsDay':_0xcc1d7[_0xd4de('0x65')],'outboundReCallsDay':_0xcc1d7[_0xd4de('0x66')],'outboundRejectCallsDay':_0xcc1d7[_0xd4de('0x67')],'outboundUnknownCallsDay':_0xcc1d7['outboundUnknownCallsDay'],'predictiveIntervalAnsweredCalls':_0xcc1d7[_0xd4de('0x68')],'predictiveIntervalAvgHoldtime':_0xcc1d7[_0xd4de('0x69')],'predictiveIntervalAvgTalktime':_0xcc1d7[_0xd4de('0x6a')],'predictiveIntervalDroppedCallsCallersExit':_0xcc1d7['predictiveIntervalDroppedCallsCallersExit'],'predictiveIntervalDroppedCallsTimeout':_0xcc1d7['predictiveIntervalDroppedCallsTimeout'],'predictiveIntervalErlangCalls':_0xcc1d7[_0xd4de('0x6b')],'predictiveIntervalErlangCallsDroppedCalls':_0xcc1d7[_0xd4de('0x6c')],'predictiveIntervalHitRate':_0xcc1d7['predictiveIntervalHitRate'],'predictiveIntervalMultiplicativeFactor':_0xcc1d7[_0xd4de('0x6d')],'predictiveIntervalPauses':_0xcc1d7[_0xd4de('0x6e')],'predictiveIntervalAvailable':_0xcc1d7[_0xd4de('0x6f')],'predictiveIntervalTotalCalls':_0xcc1d7[_0xd4de('0x70')],'message':_0xcc1d7['message'],'originated':_0xcc1d7[_0xd4de('0x71')],'erlangCalls':_0xcc1d7[_0xd4de('0x72')],'erlangCallToSecond':_0xcc1d7[_0xd4de('0x73')],'erlangAbandonmentRate':_0xcc1d7[_0xd4de('0x74')],'erlangBusyFactor':_0xcc1d7[_0xd4de('0x75')],'startPredictive':_0xcc1d7[_0xd4de('0x76')],'startProgressive':_0xcc1d7['startProgressive']};if(_0xcc1d7[_0xd4de('0x77')]){_0x4e6843[_0xd4de('0x77')]={'id':_0xcc1d7[_0xd4de('0x77')]['id'],'name':_0xcc1d7[_0xd4de('0x77')][_0xd4de('0x3f')],'active':_0xcc1d7[_0xd4de('0x77')][_0xd4de('0x78')],'callerid':_0xcc1d7[_0xd4de('0x77')][_0xd4de('0x79')]};}if(_0xcc1d7[_0xd4de('0x42')]){_0x4e6843['Interval']={'id':_0xcc1d7[_0xd4de('0x42')]['id'],'name':_0xcc1d7[_0xd4de('0x42')][_0xd4de('0x3f')]};}var _0x518bfe=md5(JSON[_0xd4de('0x47')](_0x4e6843));if(_0xcc1d7[_0xd4de('0x5')]!==_0x518bfe){_0xcc1d7[_0xd4de('0x5')]=_0x518bfe;emit(util[_0xd4de('0x7a')](_0xd4de('0x7b'),_0x4e6843[_0xd4de('0x3f')]),_0xd4de('0x7c'),_0x4e6843);}}}function emitCampaignSummary(_0x29cb16){if(_0x29cb16[_0xd4de('0x4b')]===_0xd4de('0x7d')){emit(util['format'](_0xd4de('0x7e'),_0x29cb16[_0xd4de('0x3f')]),_0xd4de('0x7f'),_0x29cb16);}}function checkGetDataPredictive(_0x9bf50d){if(isNotNull(_0x9bf50d)&&!_[_0xd4de('0x80')](_0x9bf50d)){loggerPredictive['info']('-----\x20Stats\x20Predictive\x20---');loggerPredictive[_0xd4de('0x81')](_0xd4de('0x82'),_0x9bf50d['predictiveIntervalTotalCalls']);loggerPredictive['info'](_0xd4de('0x83'),_0x9bf50d[_0xd4de('0x68')]);loggerPredictive[_0xd4de('0x81')](_0xd4de('0x84'),_0x9bf50d[_0xd4de('0x85')]);loggerPredictive[_0xd4de('0x81')](_0xd4de('0x86'),_0x9bf50d[_0xd4de('0x87')]);loggerPredictive[_0xd4de('0x81')](_0xd4de('0x88'),_0x9bf50d[_0xd4de('0x69')]);loggerPredictive[_0xd4de('0x81')]('AVG\x20Talk\x20Time:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20',_0x9bf50d[_0xd4de('0x6a')]);loggerPredictive[_0xd4de('0x81')](_0xd4de('0x89'));if(_0x9bf50d[_0xd4de('0x70')]>0x0){if(!_[_0xd4de('0x3e')](_0x9bf50d[_0xd4de('0x6a')])&&_0x9bf50d['predictiveIntervalAvgTalktime']>0x0){return!![];}loggerPredictive[_0xd4de('0x81')]('Avg\x20Talk\x20Time\x20is\x20not\x20enough\x20for\x20predictive');if(!_['isUndefined'](_0x9bf50d[_0xd4de('0x69')])&&_0x9bf50d[_0xd4de('0x69')]>0x0){return!![];}loggerPredictive[_0xd4de('0x81')](_0xd4de('0x8a'));}else{loggerPredictive['info'](_0xd4de('0x8b'));}}else{loggerPredictive[_0xd4de('0x81')](_0xd4de('0x8c'));}return![];}function mergeDataErlangB(_0x117052){return function(_0x23e438){loggerPredictive['info']('---------\x20ErlangB\x20---------');loggerPredictive['info'](_0xd4de('0x8d'),_0x23e438[_0xd4de('0x72')]);loggerPredictive[_0xd4de('0x81')](_0xd4de('0x8e'),_0x23e438['erlangCallToSecond']);loggerPredictive[_0xd4de('0x81')](_0xd4de('0x8f'),_0x23e438[_0xd4de('0x74')]);loggerPredictive[_0xd4de('0x81')]('Agent\x20Busy\x20Factor:\x20\x20\x20\x20\x20\x20\x20\x20\x20',_0x23e438[_0xd4de('0x75')]);loggerPredictive[_0xd4de('0x81')](_0xd4de('0x8f'),_0x23e438[_0xd4de('0x74')]);loggerPredictive['info']('---------------------------');_['merge'](_0x117052,_0x23e438);};}function getDiff(_0x42e40b){var _0x3f69af=moment()[_0xd4de('0x48')](0x0);var _0x4b7b84=moment(_0x42e40b)[_0xd4de('0x48')](0x0);return _0x3f69af[_0xd4de('0x90')](_0x4b7b84,_0xd4de('0x49'));}function ifInterval(_0x55e1a3,_0x1758b3){if(_['isUndefined'](_0x1758b3)){return![];}return getDiff(_0x1758b3)<_0x55e1a3*0x3c;}function freeVariablesPredictive(_0x2ee7c1){if(isNotNull(_0x2ee7c1)){if(!_[_0xd4de('0x3e')](_0x2ee7c1[_0xd4de('0x29')])){_0x2ee7c1[_0xd4de('0x29')]=undefined;loggerPredictive[_0xd4de('0x81')](_0x2ee7c1[_0xd4de('0x3f')],_0xd4de('0x91'));}if(!_[_0xd4de('0x3e')](_0x2ee7c1['startPredictive'])){_0x2ee7c1[_0xd4de('0x76')]=undefined;loggerPredictive['info'](_0x2ee7c1[_0xd4de('0x3f')],_0xd4de('0x92'));}if(!_['isUndefined'](_0x2ee7c1[_0xd4de('0x93')])){clearInterval(_0x2ee7c1[_0xd4de('0x93')]);_0x2ee7c1[_0xd4de('0x93')]=undefined;loggerPredictive[_0xd4de('0x81')](_0x2ee7c1[_0xd4de('0x3f')],_0xd4de('0x94'));}}}function erlangb(_0x319bf1,_0x8ab93b){if(_0x8ab93b===0x0){return 0x0;}var _0x1c2f97=0x1;for(var _0x737fde=0x1;_0x737fde<=_0x8ab93b;_0x737fde+=0x1){_0x1c2f97=0x1+_0x1c2f97*_0x737fde/_0x319bf1;}return 0x1/_0x1c2f97;}function isVoiceQueueOutbound(_0x1e7e93){return _0x1e7e93===_0xd4de('0x4c');}function isNotPreview(_0x2a63c2){return _0x2a63c2!=='preview';}function isCampaignIvr(_0x38d703){return _0x38d703===_0xd4de('0x7d');}function getCallerId(_0x216fd5,_0x331f08,_0x25628e){if(!_[_0xd4de('0x3e')](_0x25628e)&&typeof _0x25628e===_0xd4de('0x95')&&!_[_0xd4de('0x80')](_0x25628e)){if(!_['isUndefined'](_0x331f08)&&typeof _0x331f08===_0xd4de('0x95')&&!_['isEmpty'](_0x331f08)){return util['format']('\x22%s\x22\x20<%s>',_0x331f08,_0x25628e);}return util[_0xd4de('0x7a')](_0xd4de('0x96'),_0x25628e,_0x25628e);}if(!_['isUndefined'](_0x216fd5)&&typeof _0x216fd5==='string'&&!_['isEmpty'](_0x216fd5)){return _0x216fd5;}return'\x22\x22\x20<>';}function loggerCatchQueueSummary(_0x4666b1,_0x502b2e){return function(_0xa0ff83){freeVariablesPredictive(_0x502b2e);emitVoiceQueueSummary(_0x502b2e);emitCampaignSummary(_0x502b2e);loggerSyncQueueSummary['error'](_0x4666b1,util[_0xd4de('0x97')](_0xa0ff83,{'showHidden':![],'depth':null}));};}function loggerCatchPredictive(_0x223b1a,_0x4ee475){return function(_0x5df891){loggerPredictive['error'](_0x4ee475['name'],_0x223b1a);loggerPredictive[_0xd4de('0x98')](_0x5df891[_0xd4de('0x99')]);freeVariablesPredictive(_0x4ee475);};}function loggerCatch(_0x2562a0){return function(_0x3f5e31){logger[_0xd4de('0x98')](_0x2562a0,util[_0xd4de('0x97')](_0x3f5e31,{'showHidden':![],'depth':null}));};}function checkContactEmpty(_0x574c46){return _0x574c46&&!_['isUndefined'](_0x574c46)&&_0x574c46['length']>0x0;}function decremetOriginate(_0xca9ce0){if(!_[_0xd4de('0x3e')](_0xca9ce0)&&_0xca9ce0!==null){if(typeof _0xca9ce0['originated']!==_0xd4de('0x9a')){if(_0xca9ce0['originated']>0x0){_0xca9ce0[_0xd4de('0x71')]-=0x1;}else{logger['error'](_0xd4de('0x9b'));}}}else{logger[_0xd4de('0x98')]('[decremetOriginate]\x20is\x20null\x20or\x20undefined');}}function checkContactLowerLimitOriginate(_0x2d1b39,_0x5a4882,_0x2bdc7c){if(_0x5a4882>_0x2bdc7c){for(var _0x3a8edf=0x0;_0x3a8edf<_0x5a4882-_0x2bdc7c;_0x3a8edf+=0x1){decremetOriginate(_0x2d1b39);}}}function loggerGetContactDialer(_0xc7ca29,_0xa94c28,_0x4ac45a){return function(_0x247647){checkContactLowerLimitOriginate(_0xa94c28,_0x4ac45a,0x0);logger[_0xd4de('0x98')](_0xc7ca29,util[_0xd4de('0x97')](_0x247647,{'showHidden':![],'depth':null}));};}function sendMessageReschedule(_0x44c260){return function(_0x3108b5){if(isNotNull(_0x3108b5)&&isNotNull(_0x3108b5[0x0])){if(_0x3108b5[0x0][_0xd4de('0x9c')]>0x0){_0x44c260[_0xd4de('0x40')]=_0xd4de('0x9d');logger[_0xd4de('0x81')](_0xd4de('0x9e')+_0x44c260[_0xd4de('0x3f')],_0x3108b5[0x0][_0xd4de('0x9c')],_0xd4de('0x9f'));}else{_0x44c260['message']=_0xd4de('0xa0');logger['info']('[getContactDialer2][Empty]'+_0x44c260[_0xd4de('0x3f')]);}}};}function notSendMessagesQueue(_0x595ee){if(_0x595ee['sendMessageOneNotActive']){freeVariablesPredictive(_0x595ee);if(_0x595ee[_0xd4de('0x71')]===0x0&&_0x595ee[_0xd4de('0xa1')]===0x0&&_0x595ee[_0xd4de('0x57')]===0x0&&(_0x595ee[_0xd4de('0x50')]||0x0)===0x0){_0x595ee['sendMessageOneNotActive']=![];_0x595ee[_0xd4de('0x4e')]=0x0;_0x595ee[_0xd4de('0x40')]=_0xd4de('0xa2');loggerSyncQueueSummary[_0xd4de('0x98')](_0xd4de('0xa3'),_0x595ee['name'],'is\x20not\x20active');}else{_0x595ee['message']='IS_DISACTIVED';loggerSyncQueueSummary[_0xd4de('0x98')]('[syncQueueSummary]\x20Campaign\x20Queue:\x20',_0x595ee[_0xd4de('0x3f')],'is\x20disactive');}emitVoiceQueueSummary(_0x595ee);}}function notSendMessagesCampaign(_0x2ec967){if(_0x2ec967[_0xd4de('0xa4')]){if(_0x2ec967[_0xd4de('0x71')]===0x0){_0x2ec967[_0xd4de('0xa4')]=![];_0x2ec967[_0xd4de('0x40')]=_0xd4de('0xa2');loggerSyncQueueSummary[_0xd4de('0x98')](_0xd4de('0xa5'),_0x2ec967['name'],_0xd4de('0xa6'));}else{_0x2ec967[_0xd4de('0x40')]=_0xd4de('0xa7');loggerSyncQueueSummary[_0xd4de('0x98')]('[syncQueueSummary]\x20Campaign\x20Ivr:\x20',_0x2ec967[_0xd4de('0x3f')],_0xd4de('0xa8'));}emitCampaignSummary(_0x2ec967);}}function createObjHistory(_0x4a5593,_0x291a44,_0x229bb9,_0x38d5bc,_0x2b7a9f){_0x4a5593[_0xd4de('0x40')]=_0x229bb9;var _0x2ff9f5=new Action(_0x4a5593,_0x291a44);var _0x8314b5=new History(_0x2ff9f5);_0x8314b5[_0xd4de('0xa9')]=_0x38d5bc;_0x8314b5[_0xd4de('0xaa')]=_0x2b7a9f;_0x8314b5[_0xd4de('0xab')]=_0x2ff9f5[_0xd4de('0xac')];return _0x8314b5;}Dialer['prototype'][_0xd4de('0x3d')]=function(){var _0x5c2d1c=this;setInterval(function(){_0x5c2d1c[_0xd4de('0xad')](_0x5c2d1c[_0xd4de('0x27')],_0xd4de('0xae'));_0x5c2d1c['clearZombieChannels'](_0x5c2d1c[_0xd4de('0x25')],_0xd4de('0xaf'));},0x32c8);};Dialer['prototype'][_0xd4de('0xad')]=function(_0x43d02f,_0x46d4cb){var _0x6b966d=this;for(var _0x2fd3d5 in _0x43d02f){if(typeof _0x43d02f[_0x2fd3d5]!==_0xd4de('0x9a')){this['sequence'][_0xd4de('0x1c')](function(){if(!_[_0xd4de('0xb0')](_0x43d02f[_0x2fd3d5])){return ami['Action']({'action':_0xd4de('0xb1'),'channel':_0x43d02f[_0x2fd3d5][_0xd4de('0xb2')]})[_0xd4de('0xb3')](function(_0x3c216a){if(_0x3c216a['message']==='No\x20such\x20channel'){setTimeout(function(){if(_0x43d02f[_0x2fd3d5]&&_0x43d02f[_0x2fd3d5][_0xd4de('0x4b')]!==_0xd4de('0x7d')){_0x6b966d[_0xd4de('0xb4')](_0x6b966d[_0xd4de('0x21')][_0x43d02f[_0x2fd3d5]['queue']]);logger[_0xd4de('0x98')](_0xd4de('0xb5'),_0x46d4cb,_0x2fd3d5,_0x43d02f[_0x2fd3d5][_0xd4de('0xb6')]);delete _0x43d02f[_0x2fd3d5];}if(_0x43d02f[_0x2fd3d5]&&_0x43d02f[_0x2fd3d5][_0xd4de('0x4b')]==='ivr'){_0x6b966d['updateOriginated'](_0x6b966d[_0xd4de('0xb7')][_0x43d02f[_0x2fd3d5]['queue']]);logger[_0xd4de('0x98')](_0xd4de('0xb8'),_0x46d4cb,_0x2fd3d5,_0x43d02f[_0x2fd3d5][_0xd4de('0xb6')]);delete _0x43d02f[_0x2fd3d5];}},0x2328);}});}});}}};Dialer[_0xd4de('0x1b')]['countReScheduled']=function(_0x59620f){return BPromise[_0xd4de('0xb9')]()[_0xd4de('0xba')](cmHopper['countReScheduled'](_0x59620f))['catch'](loggerCatch(_0xd4de('0xbb')));};Dialer[_0xd4de('0x1b')][_0xd4de('0xbc')]=function(_0x5ac397){return BPromise[_0xd4de('0xb9')]()[_0xd4de('0xba')](cmHopperBlack['checkIsBlackList'](_0x5ac397))[_0xd4de('0xb3')](loggerCatch('[checkIsBlackList]\x20'));};Dialer[_0xd4de('0x1b')][_0xd4de('0xbd')]=function(_0x5a3075){return BPromise[_0xd4de('0xb9')]()[_0xd4de('0xba')](cmHopperBlack[_0xd4de('0xbd')](_0x5a3075))[_0xd4de('0xb3')](loggerCatch(_0xd4de('0xbe')));};Dialer[_0xd4de('0x1b')]['averageHandleTime']=function(_0x297c07){return BPromise[_0xd4de('0xb9')]()[_0xd4de('0xba')](cmHopperHistory[_0xd4de('0xbf')](_0x297c07))[_0xd4de('0xb3')](loggerCatch(_0xd4de('0xc0')));};Dialer['prototype'][_0xd4de('0xc1')]=function(_0x5f31f0){return BPromise[_0xd4de('0xb9')]()[_0xd4de('0xba')](cmHopper[_0xd4de('0xc1')](_0x5f31f0))[_0xd4de('0xb3')](loggerCatch(_0xd4de('0xc2')));};Dialer[_0xd4de('0x1b')][_0xd4de('0xc3')]=function(_0x3e6ed8,_0x1ebfb6,_0x477cc7){return BPromise[_0xd4de('0xb9')]()[_0xd4de('0xba')](cmHopper[_0xd4de('0xc3')](_0x3e6ed8,_0x1ebfb6,_0x477cc7))[_0xd4de('0xb3')](loggerCatch('[unlockContact]\x20'));};Dialer[_0xd4de('0x1b')][_0xd4de('0xc4')]=function(_0x42714f,_0x43b94a,_0x20a5c3,_0x207186,_0x4eb28d){return BPromise[_0xd4de('0xb9')]()[_0xd4de('0xba')](cmHopper[_0xd4de('0xc4')](_0x42714f,_0x43b94a,_0x20a5c3,_0x207186))[_0xd4de('0xb3')](function(_0x4eaa6f){_0x4eb28d['temp']-=_0x20a5c3;_0x4eb28d[_0xd4de('0xc5')]=_0x4eb28d['temp']>0x0?_0x4eb28d['temp']:0x0;loggerCatch('[getContactDialer]\x20')(_0x4eaa6f);});};Dialer['prototype']['getContactDialerIvr']=function(_0x5f48f5,_0x563786,_0x70f16e,_0x462f85){return BPromise[_0xd4de('0xb9')]()['then'](cmHopper[_0xd4de('0xc6')](_0x5f48f5,_0x563786,_0x70f16e))[_0xd4de('0xb3')](function(_0x2c382b){_0x462f85[_0xd4de('0xc5')]-=_0x563786;_0x462f85['temp']=_0x462f85[_0xd4de('0xc5')]>0x0?_0x462f85[_0xd4de('0xc5')]:0x0;loggerCatch('[getContactDialerIvr]\x20')(_0x2c382b);});};Dialer[_0xd4de('0x1b')][_0xd4de('0xc7')]=function(_0x290b69){return BPromise[_0xd4de('0xb9')]()[_0xd4de('0xba')](voiceQueueRt[_0xd4de('0xc7')](_0x290b69))[_0xd4de('0xb3')](loggerCatch(_0xd4de('0xc8')));};Dialer[_0xd4de('0x1b')]['moveContactManagedDialer']=function(_0x218871){return BPromise[_0xd4de('0xb9')]()[_0xd4de('0xba')](cmHopper[_0xd4de('0xc9')](_0x218871))[_0xd4de('0xb3')](loggerCatch(_0xd4de('0xca')));};Dialer[_0xd4de('0x1b')][_0xd4de('0xcb')]=function(_0x2dcf97){return BPromise[_0xd4de('0xb9')]()[_0xd4de('0xba')](cmHopperHistory['createHistory'](_0x2dcf97))[_0xd4de('0xb3')](loggerCatch('[createHistory]\x20'));};Dialer[_0xd4de('0x1b')]['updateOriginated']=function(_0x5db3a9){if(!_['isUndefined'](_0x5db3a9)&&_0x5db3a9!==null){if(typeof _0x5db3a9[_0xd4de('0x71')]!==_0xd4de('0x9a')){if(_0x5db3a9[_0xd4de('0x71')]>0x0){_0x5db3a9['originated']-=0x1;}else{logger[_0xd4de('0x98')](_0xd4de('0xcc'));}}}else{logger[_0xd4de('0x98')]('[updateOriginated]\x20is\x20null\x20or\x20undefined');}};Dialer[_0xd4de('0x1b')][_0xd4de('0xcd')]=function(_0x45071e,_0x550c66){var _0x53fdc2=this;return function(_0x14b539){_0x53fdc2['updateOriginated'](_0x550c66);logger['error'](_0x45071e,util[_0xd4de('0x97')](_0x14b539,{'showHidden':![],'depth':null}));};};Dialer[_0xd4de('0x1b')][_0xd4de('0xce')]=function(_0x586c29,_0x5203cb,_0x39adaf){var _0x4a47db={'state':0x19,'statedesc':'notFound'};this[_0xd4de('0xb4')](_0x5203cb);this[_0xd4de('0xcf')](_[_0xd4de('0xd0')](_0x4a47db,_[_0xd4de('0xd1')](_0x39adaf,[_0xd4de('0xd2'),_0xd4de('0xd3'),_0xd4de('0xd4'),_0xd4de('0xd5'),_0xd4de('0xd6')])),'[emptyContact][createHistory]',_0xd4de('0xd7'));logger['error'](_0x586c29);};Dialer[_0xd4de('0x1b')][_0xd4de('0xd8')]=function(_0x908ca8){return _0x908ca8===_0xd4de('0xd9');};Dialer[_0xd4de('0x1b')]['isTrunkReachable']=function(_0x567abe){return!_['isUndefined'](_0x567abe)&&_0x567abe&&!_[_0xd4de('0x3e')](_0x567abe['name'])&&!_['isUndefined'](_0x567abe[_0xd4de('0x78')])&&_0x567abe['active']&&(this['trunks'][util[_0xd4de('0x7a')](_0xd4de('0xda'),_0x567abe[_0xd4de('0x3f')])][_0xd4de('0xb1')]===_0xd4de('0xdb')||this[_0xd4de('0x23')][util['format'](_0xd4de('0xda'),_0x567abe[_0xd4de('0x3f')])][_0xd4de('0xb1')]===_0xd4de('0xdc'));};Dialer['prototype'][_0xd4de('0xcf')]=function(_0x6cec25,_0x21fac5,_0x50f793){this['createHistory'](_0x6cec25)[_0xd4de('0xb3')](loggerCatch(_0x21fac5));this[_0xd4de('0xc9')](_0x6cec25)[_0xd4de('0xb3')](loggerCatch(_0x50f793));};Dialer[_0xd4de('0x1b')][_0xd4de('0xdd')]=function(_0x544b04){var _0x5cc1a0=this[_0xd4de('0x27')][_0x544b04['uniqueid']];var _0x349f9a;if(!_[_0xd4de('0xb0')](_0x544b04)&&!_['isNil'](_0x544b04['variable'])&&!_[_0xd4de('0xb0')](_0x544b04['variable']['amdstatus'])&&_0x544b04[_0xd4de('0xde')]===_0xd4de('0xdf')&&_0x5cc1a0){if(_0x5cc1a0[_0xd4de('0x4b')]!=='ivr'&&this[_0xd4de('0x21')][_0x5cc1a0['queue']][_0xd4de('0xe0')]&&_0x544b04['value']===_0xd4de('0xe1')){delete this['uniqueId'][_0x544b04['uniqueid']];this['updateOriginated'](this['voiceQueues'][_0x5cc1a0[_0xd4de('0xb6')]]);this['voiceQueues'][_0x5cc1a0['queue']][_0xd4de('0xe2')]+=0x1;this[_0xd4de('0x21')][_0x5cc1a0[_0xd4de('0xb6')]]['outboundAnswerAgiCallsDay']+=0x1;_0x349f9a=new Hangup(_0x5cc1a0,_0x544b04);_0x349f9a['state']=0x12;_0x349f9a[_0xd4de('0xaa')]=_0xd4de('0xe3');_0x349f9a['membername']=_0xd4de('0xe4');ami[_0xd4de('0x4a')](_0xd4de('0xe5'),ut[_0xd4de('0xe6')](_0x349f9a,'amd'));this[_0xd4de('0xcf')](_0x349f9a,_0xd4de('0xe7'),_0xd4de('0xe8'));}if(_0x5cc1a0[_0xd4de('0x4b')]!==_0xd4de('0x7d')&&this[_0xd4de('0x21')][_0x5cc1a0[_0xd4de('0xb6')]][_0xd4de('0xe0')]&&_0x544b04[_0xd4de('0xe9')]===_0xd4de('0xea')){var _0x135a89=this;return new BPromise(function(_0x3abf27,_0x241054){delete _0x135a89['uniqueId'][_0x544b04[_0xd4de('0xeb')]];_0x135a89[_0xd4de('0xb4')](_0x135a89[_0xd4de('0x21')][_0x5cc1a0[_0xd4de('0xb6')]]);_0x135a89['voiceQueues'][_0x5cc1a0[_0xd4de('0xb6')]][_0xd4de('0xe2')]+=0x1;_0x135a89[_0xd4de('0x21')][_0x5cc1a0[_0xd4de('0xb6')]]['outboundAnswerAgiCallsDay']+=0x1;var _0x311473=_0x135a89[_0xd4de('0x21')][_0x5cc1a0[_0xd4de('0xb6')]];var _0x4e7516=new Hangup(_0x5cc1a0,_0x544b04);_0x4e7516[_0xd4de('0xa9')]=0x13;_0x4e7516[_0xd4de('0xaa')]='Machine';_0x4e7516[_0xd4de('0xec')]=_0xd4de('0xe4');_0x4e7516[_0xd4de('0xed')]+=0x1;_0x4e7516['countglobal']+=0x1;_0x4e7516[_0xd4de('0xee')]=!![];ami[_0xd4de('0x4a')](_0xd4de('0xe5'),ut[_0xd4de('0xe6')](_0x4e7516,_0xd4de('0xee')));_0x135a89[_0xd4de('0xcb')](_0x4e7516)[_0xd4de('0xb3')](loggerCatch('[syncAgentComplete][createHistory][0]'));if(_0x4e7516[_0xd4de('0xef')]+_0x4e7516[_0xd4de('0xf0')]+_0x4e7516[_0xd4de('0xf1')]+_0x4e7516[_0xd4de('0xf2')]+_0x4e7516[_0xd4de('0xf3')]+_0x4e7516['countabandonedretry']+_0x4e7516[_0xd4de('0xed')]+_0x4e7516[_0xd4de('0xf4')]>=_0x311473['dialGlobalMaxRetry']){_0x135a89[_0xd4de('0xf5')](_0x4e7516,_0x3abf27,_0x241054,_0xd4de('0xf6'));}else{if(_0x4e7516[_0xd4de('0xed')]>=_0x311473[_0xd4de('0xf7')]){_0x135a89[_0xd4de('0xf8')](_0x4e7516,_0x3abf27,_0x241054,_0xd4de('0xf9'));}else{_0x135a89[_0xd4de('0xc1')]({'active':![],'countmachineretry':_0x4e7516[_0xd4de('0xed')],'scheduledat':moment()['add'](_0x311473[_0xd4de('0xfa')],_0xd4de('0xfb'))['format'](_0xd4de('0xfc')),'ContactId':_0x4e7516['ContactId'],'ListId':_0x4e7516['ListId'],'VoiceQueueId':_0x4e7516['VoiceQueueId']||undefined,'CampaignId':_0x4e7516[_0xd4de('0xd6')]||undefined})[_0xd4de('0xb3')](loggerCatch('[rescheduleContact][Machine]'));_0x3abf27({'reschedule':0x1});}}});}if(_0x5cc1a0['type']===_0xd4de('0x7d')&&this[_0xd4de('0xb7')][_0x5cc1a0['queue']][_0xd4de('0xe0')]&&_0x544b04[_0xd4de('0xe9')]===_0xd4de('0xe1')){delete this[_0xd4de('0x27')][_0x544b04[_0xd4de('0xeb')]];this[_0xd4de('0xb4')](this[_0xd4de('0xb7')][_0x5cc1a0[_0xd4de('0xb6')]]);_0x349f9a=new Hangup(_0x5cc1a0,_0x544b04);_0x349f9a['state']=0x12;_0x349f9a[_0xd4de('0xaa')]=_0xd4de('0xe3');_0x349f9a[_0xd4de('0xec')]='AMD';ami['emit']('custom:amd',ut[_0xd4de('0xe6')](_0x349f9a,'amd'));this[_0xd4de('0xcf')](_0x349f9a,_0xd4de('0xfd'),'[syncHangupInAMDIvr]');}if(_0x5cc1a0['type']===_0xd4de('0x7d')&&this[_0xd4de('0xb7')][_0x5cc1a0[_0xd4de('0xb6')]][_0xd4de('0xe0')]&&_0x544b04[_0xd4de('0xe9')]===_0xd4de('0xea')){var _0x135a89=this;return new BPromise(function(_0x469757,_0x5db65b){delete _0x135a89[_0xd4de('0x27')][_0x544b04['uniqueid']];_0x135a89[_0xd4de('0xb4')](_0x135a89[_0xd4de('0xb7')][_0x5cc1a0[_0xd4de('0xb6')]]);_0x135a89[_0xd4de('0xb7')][_0x5cc1a0[_0xd4de('0xb6')]][_0xd4de('0xe2')]+=0x1;_0x135a89[_0xd4de('0xb7')][_0x5cc1a0[_0xd4de('0xb6')]][_0xd4de('0x5d')]+=0x1;var _0x69a887=_0x135a89[_0xd4de('0xb7')][_0x5cc1a0[_0xd4de('0xb6')]];var _0x1b7b84=new Hangup(_0x5cc1a0,_0x544b04);_0x1b7b84[_0xd4de('0xa9')]=0x13;_0x1b7b84[_0xd4de('0xaa')]=_0xd4de('0xfe');_0x1b7b84[_0xd4de('0xec')]=_0xd4de('0xe4');_0x1b7b84[_0xd4de('0xed')]+=0x1;_0x1b7b84[_0xd4de('0xff')]+=0x1;_0x1b7b84[_0xd4de('0xee')]=!![];ami[_0xd4de('0x4a')](_0xd4de('0xe5'),ut[_0xd4de('0xe6')](_0x1b7b84,_0xd4de('0xee')));_0x135a89[_0xd4de('0xcb')](_0x1b7b84)[_0xd4de('0xb3')](loggerCatch(_0xd4de('0x100')));if(_0x1b7b84['countbusyretry']+_0x1b7b84[_0xd4de('0xf0')]+_0x1b7b84[_0xd4de('0xf1')]+_0x1b7b84[_0xd4de('0xf2')]+_0x1b7b84[_0xd4de('0xf3')]+_0x1b7b84['countabandonedretry']+_0x1b7b84[_0xd4de('0xed')]+_0x1b7b84['countagentrejectretry']>=_0x69a887[_0xd4de('0x101')]){_0x135a89[_0xd4de('0xf5')](_0x1b7b84,_0x469757,_0x5db65b,_0xd4de('0xf6'));}else{if(_0x1b7b84[_0xd4de('0xed')]>=_0x69a887[_0xd4de('0xf7')]){_0x135a89[_0xd4de('0xf8')](_0x1b7b84,_0x469757,_0x5db65b,_0xd4de('0xf9'));}else{_0x135a89[_0xd4de('0xc1')]({'active':![],'countmachineretry':_0x1b7b84[_0xd4de('0xed')],'scheduledat':moment()[_0xd4de('0x102')](_0x69a887[_0xd4de('0xfa')],_0xd4de('0xfb'))['format'](_0xd4de('0xfc')),'ContactId':_0x1b7b84['ContactId'],'ListId':_0x1b7b84[_0xd4de('0xd3')],'VoiceQueueId':_0x1b7b84['VoiceQueueId']||undefined,'CampaignId':_0x1b7b84[_0xd4de('0xd6')]||undefined})[_0xd4de('0xb3')](loggerCatch(_0xd4de('0x103')));_0x469757({'reschedule':0x1});}}});}}};Dialer[_0xd4de('0x1b')]['syncHangup']=function(_0x57eea6){var _0x1ec437=this[_0xd4de('0x27')][_0x57eea6[_0xd4de('0xeb')]];var _0x33664d=this;var _0x13ede4;if(_0x1ec437&&_0x1ec437['type']==='ivr'){delete this['uniqueId'][_0x57eea6[_0xd4de('0xeb')]];this[_0xd4de('0xb4')](this[_0xd4de('0xb7')][_0x1ec437[_0xd4de('0xb6')]]);this[_0xd4de('0xb7')][_0x1ec437[_0xd4de('0xb6')]]['ivrAnswerCallsDay']+=0x1;_0x13ede4=new Hangup(_0x1ec437,_0x57eea6);this[_0xd4de('0xcb')](_0x13ede4)['catch'](loggerCatch(_0xd4de('0x104')));this[_0xd4de('0xc9')](_0x13ede4)['catch'](loggerCatch('[syncHangupIvr]'));}if(_0x1ec437&&_0x1ec437[_0xd4de('0x4b')]!==_0xd4de('0x7d')&&isNotNull(this['voiceQueues'][_0x1ec437['queue']][_0xd4de('0x105')])){delete this['uniqueId'][_0x57eea6['uniqueid']];this[_0xd4de('0xb4')](this[_0xd4de('0x21')][_0x1ec437['queue']]);this[_0xd4de('0x21')][_0x1ec437[_0xd4de('0xb6')]][_0xd4de('0xe2')]+=0x1;this[_0xd4de('0x21')][_0x1ec437[_0xd4de('0xb6')]]['outboundAnswerAgiCallsDay']+=0x1;_0x13ede4=new Hangup(_0x1ec437,_0x57eea6);_0x13ede4[_0xd4de('0xa9')]=0x10;_0x13ede4[_0xd4de('0xaa')]=_0xd4de('0x106');_0x13ede4[_0xd4de('0xec')]=_0xd4de('0x107');this[_0xd4de('0xcb')](_0x13ede4)[_0xd4de('0xb3')](loggerCatch(_0xd4de('0x104')));this['moveContactManagedDialer'](_0x13ede4)['catch'](loggerCatch(_0xd4de('0x108')));}if(_0x1ec437&&_0x1ec437['type']!=='ivr'&&!isNotNull(this[_0xd4de('0x21')][_0x1ec437[_0xd4de('0xb6')]][_0xd4de('0x105')])){delete this[_0xd4de('0x27')][_0x57eea6[_0xd4de('0xeb')]];this[_0xd4de('0xb4')](this[_0xd4de('0x21')][_0x1ec437['queue']]);this[_0xd4de('0x21')][_0x1ec437[_0xd4de('0xb6')]][_0xd4de('0x109')]+=0x1;_0x13ede4=new Hangup(_0x1ec437,_0x57eea6);_0x13ede4[_0xd4de('0xa9')]=0xc;_0x13ede4[_0xd4de('0xaa')]=_0x57eea6[_0xd4de('0x10a')];_0x13ede4[_0xd4de('0xec')]=_0xd4de('0x10b');this[_0xd4de('0xcb')](_0x13ede4)[_0xd4de('0xb3')](loggerCatch(_0xd4de('0x104')));this[_0xd4de('0xc9')](_0x13ede4)[_0xd4de('0xb3')](loggerCatch(_0xd4de('0x108')));}};Dialer[_0xd4de('0x1b')][_0xd4de('0x34')]=function(_0x4a997d){var _0x40e154=this[_0xd4de('0x27')][_0x4a997d[_0xd4de('0xeb')]];var _0xab0951=this;if(this['voiceQueues'][_0x4a997d['queue']]){if(_0x40e154&&_0x40e154['type']!==_0xd4de('0x7d')){delete this[_0xd4de('0x27')][_0x4a997d[_0xd4de('0xeb')]];this[_0xd4de('0x21')][_0x4a997d[_0xd4de('0xb6')]]['outboundAnswerCallsDay']+=0x1;var _0x390b8e=new AgentComplete(_0x40e154,_0x4a997d);if(_0x4a997d['reason']===_0xd4de('0x10c')){_0x390b8e[_0xd4de('0x10d')]=this['voiceQueues'][_0x4a997d['queue']][_0xd4de('0x10e')]&&this['voiceQueues'][_0x4a997d[_0xd4de('0xb6')]][_0xd4de('0x10f')]?moment()[_0xd4de('0x7a')](_0xd4de('0xfc')):undefined;}this[_0xd4de('0xcb')](_0x390b8e)[_0xd4de('0xb3')](loggerCatch(_0xd4de('0x110')));this[_0xd4de('0xc9')](_0x390b8e)[_0xd4de('0xb3')](loggerCatch(_0xd4de('0x111')));}}};Dialer['prototype'][_0xd4de('0x2e')]=function(_0xd6034d){if(this['voiceQueues'][_0xd6034d[_0xd4de('0xb6')]]){if(this['uniqueId'][_0xd6034d['uniqueid']]&&this[_0xd4de('0x27')][_0xd6034d[_0xd4de('0xeb')]]['type']!==_0xd4de('0x7d')){this['updateOriginated'](this[_0xd4de('0x21')][_0xd6034d[_0xd4de('0xb6')]]);this['uniqueId'][_0xd6034d[_0xd4de('0xeb')]][_0xd4de('0x112')]=moment()[_0xd4de('0x7a')](_0xd4de('0xfc'));}}};Dialer[_0xd4de('0x1b')]['queueCallerAbandonCreateState']=function(_0x1e6616){this['createHistory'](_0x1e6616)[_0xd4de('0xb3')](loggerCatch(_0xd4de('0x110')));this[_0xd4de('0xc9')](_0x1e6616)[_0xd4de('0xb3')](loggerCatch('[syncQueueCallerAbandon]\x20[Drop]'));};Dialer[_0xd4de('0x1b')][_0xd4de('0x31')]=function(_0x151c3f){var _0x591ae6=this['uniqueId'][_0x151c3f[_0xd4de('0xeb')]];var _0x275e90=this;if(this['voiceQueues'][_0x151c3f[_0xd4de('0xb6')]]){if(_0x591ae6&&_0x591ae6[_0xd4de('0x4b')]!=='ivr'){delete this[_0xd4de('0x27')][_0x151c3f[_0xd4de('0xeb')]];this['updateOriginated'](this[_0xd4de('0x21')][_0x151c3f[_0xd4de('0xb6')]]);_0x591ae6[_0xd4de('0x113')]=moment()[_0xd4de('0x7a')]('YYYY-MM-DD\x20HH:mm:ss');var _0x52b88=new QueueCallerAbandon(_0x591ae6,_0x151c3f);if(getSeconds(_0x591ae6[_0xd4de('0x113')],_0x591ae6['responsetime'])>=_0x591ae6[_0xd4de('0x114')]){this[_0xd4de('0x21')][_0x151c3f['queue']][_0xd4de('0x85')]+=0x1;this[_0xd4de('0x21')][_0x151c3f[_0xd4de('0xb6')]]['outboundDropCallsDayTimeout']+=0x1;this[_0xd4de('0x21')][_0x151c3f[_0xd4de('0xb6')]][_0xd4de('0x6c')]+=0x1;_0x52b88[_0xd4de('0xa9')]=0xa;_0x52b88[_0xd4de('0xaa')]=_0xd4de('0x115');_0x52b88[_0xd4de('0x116')]=_0xd4de('0x117');_0x52b88[_0xd4de('0x10d')]=this['voiceQueues'][_0x151c3f['queue']]['dialQueueProject2']?moment()[_0xd4de('0x7a')](_0xd4de('0xfc')):undefined;_0x52b88[_0xd4de('0xf3')]+=0x1;_0x52b88['countglobal']+=0x1;if(_0x52b88['countdropretry']>=this[_0xd4de('0x21')][_0x151c3f[_0xd4de('0xb6')]]['dialDropMaxRetry']){this[_0xd4de('0x118')](_0x52b88);}else{this[_0xd4de('0xc1')]({'active':![],'countdropretry':_0x52b88['countdropretry'],'scheduledat':moment()[_0xd4de('0x102')](this[_0xd4de('0x21')][_0x151c3f[_0xd4de('0xb6')]][_0xd4de('0x119')],_0xd4de('0xfb'))[_0xd4de('0x7a')]('YYYY-MM-DD\x20HH:mm:ss'),'ContactId':_0x591ae6[_0xd4de('0xd2')],'ListId':_0x591ae6['ListId'],'VoiceQueueId':_0x591ae6[_0xd4de('0xd5')]||undefined,'CampaignId':_0x591ae6[_0xd4de('0xd6')]||undefined})[_0xd4de('0xb3')](loggerCatch(_0xd4de('0x11a')));var _0x5251cf=new History(_0x52b88);_0x5251cf[_0xd4de('0xa9')]=0xa;_0x5251cf[_0xd4de('0xaa')]=_0xd4de('0x115');_0x5251cf['starttime']=moment()['format'](_0xd4de('0xfc'));_0x5251cf['endtime']=_0x5251cf[_0xd4de('0xac')];_0x5251cf[_0xd4de('0x11b')]=_0x52b88[_0xd4de('0x11b')];_0x5251cf[_0xd4de('0x11c')]=_0x52b88['calleridnum'];this['createHistory'](_0x5251cf)[_0xd4de('0xb3')](loggerCatch(_0xd4de('0x11d')));}}else{this[_0xd4de('0x21')][_0x151c3f[_0xd4de('0xb6')]][_0xd4de('0x87')]+=0x1;this['voiceQueues'][_0x151c3f[_0xd4de('0xb6')]][_0xd4de('0x62')]+=0x1;_0x52b88['state']=0xb;_0x52b88[_0xd4de('0xaa')]=_0xd4de('0x11e');_0x52b88[_0xd4de('0x116')]=_0xd4de('0x11f');_0x52b88[_0xd4de('0x120')]+=0x1;_0x52b88[_0xd4de('0xff')]+=0x1;if(_0x52b88['countabandonedretry']>=this['voiceQueues'][_0x151c3f['queue']][_0xd4de('0x121')]){this[_0xd4de('0x118')](_0x52b88);}else{this[_0xd4de('0xc1')]({'active':![],'countabandonedretry':_0x52b88[_0xd4de('0x120')],'scheduledat':moment()[_0xd4de('0x102')](this[_0xd4de('0x21')][_0x151c3f[_0xd4de('0xb6')]][_0xd4de('0x122')],_0xd4de('0xfb'))[_0xd4de('0x7a')](_0xd4de('0xfc')),'ContactId':_0x591ae6[_0xd4de('0xd2')],'ListId':_0x591ae6[_0xd4de('0xd3')],'VoiceQueueId':_0x591ae6[_0xd4de('0xd5')]||undefined,'CampaignId':_0x591ae6[_0xd4de('0xd6')]||undefined})['catch'](loggerCatch(_0xd4de('0x123')));var _0x5251cf=new History(_0x52b88);_0x5251cf[_0xd4de('0xa9')]=0xb;_0x5251cf[_0xd4de('0xaa')]=_0xd4de('0x11e');_0x5251cf[_0xd4de('0xac')]=moment()['format'](_0xd4de('0xfc'));_0x5251cf[_0xd4de('0xab')]=_0x5251cf[_0xd4de('0xac')];_0x5251cf['calleridname']=_0x52b88[_0xd4de('0x11b')];_0x5251cf[_0xd4de('0x11c')]=_0x52b88[_0xd4de('0x11c')];this[_0xd4de('0xcb')](_0x5251cf)[_0xd4de('0xb3')](loggerCatch(_0xd4de('0x124')));}}}}};Dialer[_0xd4de('0x1b')][_0xd4de('0x125')]=function(_0x400927){if(this[_0xd4de('0x25')][_0x400927[_0xd4de('0xeb')]]){this[_0xd4de('0x25')][_0x400927[_0xd4de('0xeb')]][_0xd4de('0xb2')]=_0x400927[_0xd4de('0xb2')];}if(this['uniqueId'][_0x400927[_0xd4de('0xeb')]]){this[_0xd4de('0x27')][_0x400927[_0xd4de('0xeb')]][_0xd4de('0xb2')]=_0x400927[_0xd4de('0xb2')];}};Dialer[_0xd4de('0x1b')][_0xd4de('0x3a')]=function(_0x2267dd){if(strategy[this['voiceQueues'][this[_0xd4de('0x25')][_0x2267dd['actionid']][_0xd4de('0xb6')]][_0xd4de('0x126')]]==='roundrobin'){if(this['actions'][_0x2267dd[_0xd4de('0x127')]]&&_[_0xd4de('0xb0')](this[_0xd4de('0x25')][_0x2267dd['actionid']][_0xd4de('0x128')])&&_0x2267dd[_0xd4de('0xb1')]==='1'&&_0x2267dd[_0xd4de('0x129')]==='0'){if(this[_0xd4de('0x22')][_0x2267dd['stateinterface']]){if(!this['agents'][_0x2267dd[_0xd4de('0x12a')]][_0xd4de('0x128')]){this[_0xd4de('0x22')][_0x2267dd[_0xd4de('0x12a')]][_0xd4de('0x128')]=!![];this['actions'][_0x2267dd[_0xd4de('0x127')]][_0xd4de('0x128')]=!![];this[_0xd4de('0x25')][_0x2267dd[_0xd4de('0x127')]][_0xd4de('0x12a')]=_0x2267dd['stateinterface'];}}}}else if((strategy[this['voiceQueues'][this['actions'][_0x2267dd['actionid']][_0xd4de('0xb6')]][_0xd4de('0x126')]]||_0xd4de('0x19'))===_0xd4de('0x19')){if(this['actions'][_0x2267dd['actionid']]){if(this['agents'][_0x2267dd[_0xd4de('0x12a')]]){this[_0xd4de('0x25')][_0x2267dd[_0xd4de('0x127')]][_0xd4de('0x12a')]=_0x2267dd[_0xd4de('0x12a')];if(_[_0xd4de('0xb0')](this[_0xd4de('0x2b')][this['actions'][_0x2267dd[_0xd4de('0x127')]][_0xd4de('0xb6')]])){this[_0xd4de('0x2b')][this[_0xd4de('0x25')][_0x2267dd['actionid']][_0xd4de('0xb6')]]=[];}this[_0xd4de('0x2b')][this[_0xd4de('0x25')][_0x2267dd[_0xd4de('0x127')]][_0xd4de('0xb6')]][_0xd4de('0x12b')](_[_0xd4de('0xd0')](_['pick'](this['actions'][_0x2267dd[_0xd4de('0x127')]],[_0xd4de('0x12c'),_0xd4de('0x12a')]),{'status':_0x2267dd['status'],'paused':_0x2267dd[_0xd4de('0x129')]}));}}}};function unlockQueueStatus(_0x42d3fd,_0x2306a9){setTimeout(function(){if(_[_0xd4de('0x3e')](_0x42d3fd['queueStatusComplete'])){loggerBooked[_0xd4de('0x98')](_0xd4de('0x12d'),_0x2306a9);}_0x42d3fd[_0xd4de('0x12e')]=!![];loggerBooked[_0xd4de('0x81')](_0xd4de('0x12f'),_0x2306a9,JSON[_0xd4de('0x47')](_[_0xd4de('0xd1')](_0x42d3fd,[_0xd4de('0x3f'),_0xd4de('0x12e')])));},0x1f3);}Dialer['prototype']['syncQueueStatusComplete']=function(_0x104eba){var _0x291e10=this;var _0x4d21fe=_0x291e10['voiceQueues'][_0x291e10['actions'][_0x104eba[_0xd4de('0x127')]]['queue']];if(strategy[this['voiceQueues'][this[_0xd4de('0x25')][_0x104eba[_0xd4de('0x127')]][_0xd4de('0xb6')]]['strategy']]===_0xd4de('0x1a')){if(this[_0xd4de('0x25')][_0x104eba[_0xd4de('0x127')]]&&this[_0xd4de('0x25')][_0x104eba['actionid']][_0xd4de('0x12a')]){this[_0xd4de('0x20')][_0xd4de('0x130')](this[_0xd4de('0x25')][_0x104eba[_0xd4de('0x127')]][_0xd4de('0x12c')],this['actions'][_0x104eba[_0xd4de('0x127')]][_0xd4de('0x12a')])[_0xd4de('0xb3')](function(_0x48a312){logger[_0xd4de('0x98')](_0xd4de('0x131'),util[_0xd4de('0x97')](_0x48a312,{'showHidden':![],'depth':null}));})[_0xd4de('0x1e')](function(){_0x291e10['updateOriginated'](_0x291e10[_0xd4de('0x21')][_0x291e10['actions'][_0x104eba[_0xd4de('0x127')]][_0xd4de('0xb6')]]);_0x291e10['agents'][_0x291e10[_0xd4de('0x25')][_0x104eba[_0xd4de('0x127')]][_0xd4de('0x12a')]][_0xd4de('0x128')]=![];delete _0x291e10[_0xd4de('0x25')][_0x104eba[_0xd4de('0x127')]];unlockQueueStatus(_0x4d21fe);});}else{this[_0xd4de('0xb4')](this[_0xd4de('0x21')][this['actions'][_0x104eba['actionid']][_0xd4de('0xb6')]]);this[_0xd4de('0xc1')]({'active':![],'ContactId':this[_0xd4de('0x25')][_0x104eba[_0xd4de('0x127')]][_0xd4de('0xd2')],'ListId':this[_0xd4de('0x25')][_0x104eba[_0xd4de('0x127')]][_0xd4de('0xd3')],'VoiceQueueId':this[_0xd4de('0x25')][_0x104eba[_0xd4de('0x127')]][_0xd4de('0xd5')]||undefined,'CampaignId':this['actions'][_0x104eba[_0xd4de('0x127')]][_0xd4de('0xd6')]||undefined})[_0xd4de('0xb3')](loggerCatch(_0xd4de('0x132')));delete this[_0xd4de('0x25')][_0x104eba[_0xd4de('0x127')]];unlockQueueStatus(_0x4d21fe);}}else if((strategy[this['voiceQueues'][this[_0xd4de('0x25')][_0x104eba['actionid']][_0xd4de('0xb6')]][_0xd4de('0x126')]]||_0xd4de('0x19'))===_0xd4de('0x19')){var _0x5a4286;if(this[_0xd4de('0x25')][_0x104eba[_0xd4de('0x127')]]&&!_[_0xd4de('0x80')](this[_0xd4de('0x2b')][this[_0xd4de('0x25')][_0x104eba['actionid']][_0xd4de('0xb6')]])){if(this[_0xd4de('0x2c')][_0x291e10[_0xd4de('0x25')][_0x104eba['actionid']][_0xd4de('0xb6')]]){this['queueBookedRR'][_0x291e10[_0xd4de('0x25')][_0x104eba[_0xd4de('0x127')]][_0xd4de('0xb6')]]=this['queueBookedRR'][this[_0xd4de('0x25')][_0x104eba[_0xd4de('0x127')]][_0xd4de('0xb6')]]?this['queueBookedRR'][this[_0xd4de('0x25')][_0x104eba[_0xd4de('0x127')]]['queue']]:this[_0xd4de('0x2b')][this[_0xd4de('0x25')][_0x104eba['actionid']][_0xd4de('0xb6')]]?this[_0xd4de('0x2b')][this[_0xd4de('0x25')][_0x104eba[_0xd4de('0x127')]][_0xd4de('0xb6')]][_0xd4de('0x133')]||0x0:0x0;}this[_0xd4de('0x2b')][this[_0xd4de('0x25')][_0x104eba['actionid']]['queue']][_0xd4de('0x133')]=this[_0xd4de('0x2c')][this[_0xd4de('0x25')][_0x104eba[_0xd4de('0x127')]]['queue']];for(var _0x25df0f=0x0;_0x25df0f<this[_0xd4de('0x2b')][this['actions'][_0x104eba[_0xd4de('0x127')]]['queue']]['length'];_0x25df0f+=0x1){_0x5a4286=rr(this[_0xd4de('0x2b')][this[_0xd4de('0x25')][_0x104eba[_0xd4de('0x127')]][_0xd4de('0xb6')]]);this[_0xd4de('0x2c')][_0x291e10[_0xd4de('0x25')][_0x104eba[_0xd4de('0x127')]]['queue']]=this[_0xd4de('0x2b')][this['actions'][_0x104eba[_0xd4de('0x127')]]['queue']]['_rr'];if(_0x5a4286['status']==='1'&&_0x5a4286['paused']==='0'){break;}}if(!_[_0xd4de('0xb0')](_0x5a4286)){this[_0xd4de('0x22')][_0x5a4286[_0xd4de('0x12a')]][_0xd4de('0x134')]=_[_0xd4de('0x3e')](this[_0xd4de('0x22')][_0x5a4286[_0xd4de('0x12a')]][_0xd4de('0x134')])?!![]:this[_0xd4de('0x22')][_0x5a4286[_0xd4de('0x12a')]]['unlockRR'];}loggerBooked[_0xd4de('0x81')](_0xd4de('0x135'),_0x104eba[_0xd4de('0x127')],_0xd4de('0x136'),JSON[_0xd4de('0x47')](_[_0xd4de('0xd1')](this[_0xd4de('0x22')][_0x5a4286[_0xd4de('0x12a')]],[_0xd4de('0x3f'),_0xd4de('0x134')])),_0xd4de('0x137'),JSON[_0xd4de('0x47')](_0x5a4286[_0xd4de('0x12c')]));if(!_[_0xd4de('0xb0')](_0x5a4286)&&_0x5a4286[_0xd4de('0xb1')]==='1'&&_0x5a4286['paused']==='0'&&this[_0xd4de('0x22')][_0x5a4286[_0xd4de('0x12a')]][_0xd4de('0x134')]){this[_0xd4de('0x22')][_0x5a4286[_0xd4de('0x12a')]][_0xd4de('0x134')]=![];this[_0xd4de('0x2b')][_0x291e10[_0xd4de('0x25')][_0x104eba[_0xd4de('0x127')]]['queue']]=[];this[_0xd4de('0x20')]['run'](_0x5a4286[_0xd4de('0x12c')],_0x5a4286[_0xd4de('0x12a')])[_0xd4de('0xb3')](function(_0x4f721f){logger[_0xd4de('0x98')](_0xd4de('0x131'),util[_0xd4de('0x97')](_0x4f721f,{'showHidden':![],'depth':null}));})[_0xd4de('0x1e')](function(){_0x291e10[_0xd4de('0xb4')](_0x291e10[_0xd4de('0x21')][_0x291e10[_0xd4de('0x25')][_0x104eba[_0xd4de('0x127')]][_0xd4de('0xb6')]]);setTimeout(function(){_0x291e10[_0xd4de('0x22')][_0x5a4286['stateinterface']]['unlockRR']=!![];loggerBooked['info']('[booked][RR][finaly]',_0x104eba[_0xd4de('0x127')],_0xd4de('0x136'),JSON[_0xd4de('0x47')](_[_0xd4de('0xd1')](_0x291e10[_0xd4de('0x22')][_0x5a4286[_0xd4de('0x12a')]],[_0xd4de('0x3f'),_0xd4de('0x134')])),_0xd4de('0x137'),JSON['stringify'](_0x5a4286['idHopper']));},0xc7);delete _0x291e10[_0xd4de('0x25')][_0x104eba[_0xd4de('0x127')]];unlockQueueStatus(_0x4d21fe,_0x104eba['actionid']);});}else{loggerBooked['info'](_0xd4de('0x138'));this[_0xd4de('0xb4')](this['voiceQueues'][this[_0xd4de('0x25')][_0x104eba[_0xd4de('0x127')]][_0xd4de('0xb6')]]);this[_0xd4de('0xc1')]({'active':![],'ContactId':this[_0xd4de('0x25')][_0x104eba[_0xd4de('0x127')]][_0xd4de('0xd2')],'ListId':this[_0xd4de('0x25')][_0x104eba[_0xd4de('0x127')]][_0xd4de('0xd3')],'VoiceQueueId':this[_0xd4de('0x25')][_0x104eba[_0xd4de('0x127')]][_0xd4de('0xd5')]||undefined,'CampaignId':this[_0xd4de('0x25')][_0x104eba[_0xd4de('0x127')]][_0xd4de('0xd6')]||undefined})[_0xd4de('0xb3')](loggerCatch('[unlock][syncQueueStatusComplete]'));delete this['actions'][_0x104eba[_0xd4de('0x127')]];unlockQueueStatus(_0x4d21fe);}}else{loggerBooked['info'](_0xd4de('0x139'));this[_0xd4de('0xb4')](this[_0xd4de('0x21')][this[_0xd4de('0x25')][_0x104eba[_0xd4de('0x127')]]['queue']]);this[_0xd4de('0xc1')]({'active':![],'ContactId':this[_0xd4de('0x25')][_0x104eba[_0xd4de('0x127')]][_0xd4de('0xd2')],'ListId':this[_0xd4de('0x25')][_0x104eba[_0xd4de('0x127')]][_0xd4de('0xd3')],'VoiceQueueId':this[_0xd4de('0x25')][_0x104eba[_0xd4de('0x127')]][_0xd4de('0xd5')]||undefined,'CampaignId':this[_0xd4de('0x25')][_0x104eba[_0xd4de('0x127')]][_0xd4de('0xd6')]||undefined})[_0xd4de('0xb3')](loggerCatch(_0xd4de('0x13a')));delete this[_0xd4de('0x25')][_0x104eba[_0xd4de('0x127')]];unlockQueueStatus(_0x4d21fe);}}else{loggerBooked['info'](_0xd4de('0x13b'));this[_0xd4de('0xb4')](this[_0xd4de('0x21')][this[_0xd4de('0x25')][_0x104eba['actionid']][_0xd4de('0xb6')]]);this[_0xd4de('0xc1')]({'active':![],'ContactId':this[_0xd4de('0x25')][_0x104eba[_0xd4de('0x127')]][_0xd4de('0xd2')],'ListId':this[_0xd4de('0x25')][_0x104eba[_0xd4de('0x127')]][_0xd4de('0xd3')],'VoiceQueueId':this[_0xd4de('0x25')][_0x104eba['actionid']]['VoiceQueueId']||undefined,'CampaignId':this[_0xd4de('0x25')][_0x104eba['actionid']][_0xd4de('0xd6')]||undefined})[_0xd4de('0xb3')](loggerCatch(_0xd4de('0x13c')));delete this[_0xd4de('0x25')][_0x104eba['actionid']];unlockQueueStatus(_0x4d21fe);}};Dialer[_0xd4de('0x1b')]['loopCampaigns']=function(){var _0x6d3e9c=this;setInterval(function(){_0x6d3e9c[_0xd4de('0x13d')]();},0x3e8);};Dialer[_0xd4de('0x1b')][_0xd4de('0x13e')]=function(_0x441a3a){var _0x51afe8=this;return function(){if(!_0x51afe8[_0xd4de('0x13f')](_0x441a3a['Trunk'])){if(!_0x51afe8[_0xd4de('0x13f')](_0x441a3a[_0xd4de('0x140')])){_0x441a3a[_0xd4de('0x40')]=_0xd4de('0x141');throw _0x441a3a[_0xd4de('0x3f')]+_0xd4de('0x142');}}};};Dialer[_0xd4de('0x1b')]['checkIfTime']=function(_0x23e795,_0x257ed9,_0x28c4b6,_0x3cd900){var _0x4f1d4b=this;return function(){var _0x559247=!![];return _0x4f1d4b['ifTime'](_0x23e795,_0x257ed9,_0x28c4b6,_0x3cd900,_0x559247);};};Dialer[_0xd4de('0x1b')]['checkIfTimeIntervals']=function(_0x4c4c15,_0x590d10,_0x17ffdb,_0x3c4873){var _0x19e3c0=this;return function(){var _0xb20fcc=![];return _0x19e3c0[_0xd4de('0x143')](_0x4c4c15[_0xd4de('0x44')],_0x590d10,_0x17ffdb,_0x3c4873,_0xb20fcc);};};Dialer[_0xd4de('0x1b')][_0xd4de('0x143')]=function(_0x5fd859,_0xc4cfc5,_0x25a3b4,_0x3b1980,_0xbf8cc9){var _0x59cd01=[];return new BPromise(function(_0x2ade80,_0x15f0c3){if(!isNotNull(_0x5fd859)){_0x3b1980[_0xd4de('0x40')]=_0xd4de('0x45');return _0x15f0c3(msgResponse(_0xd4de('0x143'),_0xd4de('0x144'),_0x25a3b4+_0xd4de('0x145')));}if(_[_0xd4de('0x80')](_0x5fd859)){_0x3b1980[_0xd4de('0x40')]=_0xd4de('0x146');return _0x15f0c3(msgResponse('ifTime',_0xd4de('0x144'),_0x25a3b4+_0xd4de('0x147')));}if(_0xc4cfc5&&_[_0xd4de('0x3e')](config['timezones'][_0xc4cfc5])){_0x3b1980['message']=_0xd4de('0x148');return _0x15f0c3(msgResponse(_0xd4de('0x143'),_0xd4de('0x144'),_0x25a3b4+'\x20Timezone\x20unknow\x20'+_0xc4cfc5));}if(_[_0xd4de('0x149')](_0x5fd859)){for(var _0x4fb035=0x0;_0x4fb035<_0x5fd859[_0xd4de('0x14a')];_0x4fb035+=0x1){_0x59cd01[_0xd4de('0x12b')](ami['Action']({'action':_0xd4de('0x14b'),'command':util['format'](_0xd4de('0x14c'),_0x5fd859[_0x4fb035][_0xd4de('0x14d')],!_[_0xd4de('0x3e')](config[_0xd4de('0x14e')][_0xc4cfc5])?_0xc4cfc5:'')})[_0xd4de('0xba')](function(_0x311b75){return _0x311b75[_0xd4de('0x14f')][_0xd4de('0x150')](_0xd4de('0x151'))>=0x0;})[_0xd4de('0xb3')](myreject(_0x15f0c3)));}}else{_0x59cd01['push'](ami[_0xd4de('0x152')]({'action':_0xd4de('0x14b'),'command':util[_0xd4de('0x7a')](_0xd4de('0x14c'),_0x5fd859,!_[_0xd4de('0x3e')](config[_0xd4de('0x14e')][_0xc4cfc5])?_0xc4cfc5:'')})[_0xd4de('0xba')](function(_0x11144c){return _0x11144c[_0xd4de('0x14f')]['indexOf'](_0xd4de('0x151'))>=0x0;})['catch'](myreject(_0x15f0c3)));}BPromise[_0xd4de('0x153')](_0x59cd01)['then'](function(_0x848358){var _0x552bf9=_[_0xd4de('0x154')](_0x848358);if(_0x552bf9){return _0x2ade80(_0x552bf9);}else{_0x3b1980['message']=_0xbf8cc9?_0xd4de('0x155'):_0xd4de('0x156');return _0x15f0c3(msgResponse('[ifTime][promiseAll]',_0xd4de('0x144'),_0xd4de('0x157')+_0xbf8cc9+'\x20'+_0x25a3b4+_0xd4de('0x158')+util['inspect'](_0x5fd859,{'showHidden':![],'depth':null})+_0xd4de('0x159')+_0xc4cfc5));}})['catch'](function(_0x3bd08b){return _0x15f0c3(msgResponse(_0xd4de('0x143'),_0xd4de('0x144'),JSON[_0xd4de('0x47')](_0x3bd08b)));});});};Dialer[_0xd4de('0x1b')][_0xd4de('0x15a')]=function(_0x2f53ad){var _0x6efb8=this;return function(){switch(_0x2f53ad[_0xd4de('0x59')]){case _0xd4de('0x15b'):freeVariablesPredictive(_0x2f53ad);_0x6efb8[_0xd4de('0x15c')](_0x2f53ad,0x1);break;case _0xd4de('0x15d'):freeVariablesPredictive(_0x2f53ad);_0x6efb8[_0xd4de('0x15c')](_0x2f53ad,_0x2f53ad[_0xd4de('0x15e')]);break;case _0xd4de('0xb'):_0x6efb8['predictive'](_0x2f53ad);break;case _0xd4de('0x15f'):freeVariablesPredictive(_0x2f53ad);_0x6efb8[_0xd4de('0x15c')](_0x2f53ad,0x1);break;default:freeVariablesPredictive(_0x2f53ad);logger[_0xd4de('0x98')](_0xd4de('0x160'),_0x2f53ad[_0xd4de('0x3f')],_0xd4de('0x161'));}};};Dialer[_0xd4de('0x1b')]['launchHandleIvr']=function(_0x3e5a58){var _0x31dd1c=this;return function(){_0x31dd1c['handleIvr'](_0x3e5a58);};};Dialer[_0xd4de('0x1b')][_0xd4de('0xd')]=function(_0x5e6a4c){var _0x5c509c=this;if(isNotPreview(_0x5e6a4c[_0xd4de('0x59')])){if(isVoiceQueueOutbound(_0x5e6a4c['type'])&&isActive(_0x5e6a4c[_0xd4de('0x58')])){_0x5e6a4c[_0xd4de('0xa4')]=!![];BPromise[_0xd4de('0xb9')]()['then'](checkIsLoggedIn(_0x5e6a4c,_0x5e6a4c[_0xd4de('0x4f')]))[_0xd4de('0xba')](checkIsActive(_0x5e6a4c,_0x5e6a4c[_0xd4de('0x58')]))['then'](checkInterval(_0x5e6a4c))[_0xd4de('0xba')](_0x5c509c[_0xd4de('0x13e')](_0x5e6a4c))[_0xd4de('0xba')](_0x5c509c[_0xd4de('0x162')](_0x5e6a4c['dialGlobalInterval'],_0x5e6a4c[_0xd4de('0x163')],_0x5e6a4c[_0xd4de('0x3f')],_0x5e6a4c))[_0xd4de('0xba')](_0x5c509c[_0xd4de('0x164')](_0x5e6a4c['Interval'],_0x5e6a4c[_0xd4de('0x163')],_0x5e6a4c['name'],_0x5e6a4c))[_0xd4de('0xba')](_0x5c509c[_0xd4de('0x15a')](_0x5e6a4c))[_0xd4de('0xb3')](loggerCatchQueueSummary('[syncQueueSummary]',_0x5e6a4c));}else{notSendMessagesQueue(_0x5e6a4c);}}else{freeVariablesPredictive(_0x5e6a4c);}};Dialer['prototype'][_0xd4de('0x13d')]=function(){var _0x323e19=this;var _0x29f3af;for(var _0x300061 in this[_0xd4de('0xb7')]){if(typeof this['campaigns'][_0x300061]!==_0xd4de('0x9a')){_0x29f3af=this[_0xd4de('0xb7')][_0x300061];if(isCampaignIvr(_0x29f3af[_0xd4de('0x4b')])&&isActive(_0x29f3af[_0xd4de('0x78')])){_0x29f3af[_0xd4de('0xa4')]=!![];BPromise[_0xd4de('0xb9')]()[_0xd4de('0xba')](checkIsActive(_0x29f3af,_0x29f3af[_0xd4de('0x78')]))[_0xd4de('0xba')](checkInterval(_0x29f3af))[_0xd4de('0xba')](_0x323e19[_0xd4de('0x13e')](_0x29f3af))[_0xd4de('0xba')](_0x323e19[_0xd4de('0x162')](_0x29f3af[_0xd4de('0x165')],_0x29f3af[_0xd4de('0x163')],_0x29f3af['name'],_0x29f3af))[_0xd4de('0xba')](_0x323e19['checkIfTimeIntervals'](_0x29f3af[_0xd4de('0x42')],_0x29f3af[_0xd4de('0x163')],_0x29f3af[_0xd4de('0x3f')],_0x29f3af))['then'](_0x323e19[_0xd4de('0x166')](_0x29f3af))[_0xd4de('0xb3')](loggerCatchQueueSummary(_0xd4de('0x167'),_0x29f3af));}else{notSendMessagesCampaign(_0x29f3af);}}}};function getCallerIdRandom(_0x35dff5,_0x1a6c25){var _0x24f602;var _0x584a5e;var _0x4b69ff;if(_0x1a6c25<=0x0){_0x1a6c25=0x1;}_0x24f602=new RegExp(_0xd4de('0x168')+_0x1a6c25+'}$');_0x584a5e=Math[_0xd4de('0x169')](0xa,_0x1a6c25-0x1);_0x4b69ff=Math['pow'](0xa,_0x1a6c25)-0x1;return util['format']('%s',_[_0xd4de('0x16a')](_0x35dff5,_0x24f602,_[_0xd4de('0x16b')](_0x584a5e,_0x4b69ff)));}function extractCalleridName(_0x4c919d){var _0x5d535a=_0x4c919d[_0xd4de('0x16c')](/"(.*?)"/);return _0x5d535a?_0x5d535a[0x1]:_0x4c919d;}function extractCalleridNumber(_0x5f46c3){var _0x211bff=_0x5f46c3[_0xd4de('0x16c')](/<(.*?)>/);return _0x211bff?_0x211bff[0x1]:_0x5f46c3;}Dialer[_0xd4de('0x1b')][_0xd4de('0x16d')]=function(_0x109501,_0x4c8beb){var _0x4f7754=this;var _0x38b4f1=uuid['v4']();this[_0xd4de('0x25')][_0x38b4f1]=new Action(_0x109501,_0x4c8beb,_0x38b4f1);return new BPromise(function(_0xf68e21,_0x58e09c){if(_['isUndefined'](_0x109501)&&typeof _0x109501!==_0xd4de('0x16e')){return _0x58e09c(msgResponse(_0xd4de('0x16f'),'Failure',_0xd4de('0x170')));}if(_[_0xd4de('0x3e')](_0x4c8beb[_0xd4de('0x171')][_0xd4de('0x172')])||_0x4c8beb[_0xd4de('0x171')][_0xd4de('0x172')]===null){return _0x58e09c(msgResponse(_0xd4de('0x16f'),_0xd4de('0x144'),_0xd4de('0x173')));}var _0x466653={'XMD-CALLERID':_0x4f7754['actions'][_0x38b4f1][_0xd4de('0x174')](),'XMD-AGI':_0x109501[_0xd4de('0x105')]?util[_0xd4de('0x7a')]('\x22agi://%s/square,%s\x22',ipAgi,_0x109501[_0xd4de('0x105')]):_0xd4de('0x175'),'XMD-AGIAFTER':_0x109501[_0xd4de('0x10e')]?util[_0xd4de('0x7a')](_0xd4de('0x176'),ipAgi,_0x109501[_0xd4de('0x10e')]):_0xd4de('0x175'),'XMD-QUEUE':_0x109501[_0xd4de('0x4b')]===_0xd4de('0x4c')?util['format'](_0xd4de('0x177'),_0x109501['name'],_0x109501[_0xd4de('0x178')]||'',_0x109501['dialAgiAfterHangupAgent']?'c':'',_0x109501['dialQueueTimeout']||0x3):'NONE','XMD-CONTACTID':_0x4c8beb[_0xd4de('0xd2')],'XMD-CDRTYPE':_0xd4de('0xa'),'CALLERID(all)':_0x4f7754[_0xd4de('0x25')][_0x38b4f1][_0xd4de('0x174')](),'XMD-AMD':_0x109501[_0xd4de('0xe0')]?_0xd4de('0x179'):_0xd4de('0x175'),'XMD-DESTINATION':_0xd4de('0xdf')};if(_0x109501[_0xd4de('0xe0')]){_0x466653['XMD-AMDINITIALSILENCE']=_0x109501[_0xd4de('0x17a')]||0x9c4;_0x466653[_0xd4de('0x17b')]=_0x109501[_0xd4de('0x17c')]||0x5dc;_0x466653[_0xd4de('0x17d')]=_0x109501['dialAMDAfterGreetingSilence']||0x320;_0x466653[_0xd4de('0x17e')]=_0x109501['dialAMDTotalAnalysisTime']||0x1388;_0x466653['XMD-AMDMINWORDLENGTH']=_0x109501[_0xd4de('0x17f')]||0x64;_0x466653[_0xd4de('0x180')]=_0x109501['dialAMDBetweenWordsSilence']||0x32;_0x466653['XMD-AMDMAXIMUMNUMBEROFWORDS']=_0x109501[_0xd4de('0x181')]||0x3;_0x466653[_0xd4de('0x182')]=_0x109501[_0xd4de('0x183')]||0x100;_0x466653['XMD-AMDMAXIMUMWORDLENGTH']=_0x109501[_0xd4de('0x184')]||0x1388;}if(_0x109501[_0xd4de('0x4b')]==='outbound'){_0x466653[_0xd4de('0x185')]=_0x4c8beb[_0xd4de('0xd5')];}else{_0x466653[_0xd4de('0x186')]=_0x4c8beb[_0xd4de('0xd6')];}for(var _0x2ce53b in _0x4c8beb['Contact']){if(typeof _0x4c8beb[_0xd4de('0x171')][_0x2ce53b]!==_0xd4de('0x9a')){if(isNotNull(_0x4c8beb[_0xd4de('0x171')][_0x2ce53b])&&_0x2ce53b!=='id'&&_0x2ce53b!==_0xd4de('0x187')&&_0x2ce53b!==_0xd4de('0x188')&&_0x2ce53b!==_0xd4de('0x189')){_0x466653[util['format'](_0xd4de('0x18a'),_0xd4de('0x18b'),_['toUpper'](_0x2ce53b))]=_0x4c8beb['Contact'][_0x2ce53b];}}}var _0x4e3b30=_0x4f7754[_0xd4de('0x13f')](_0x109501['Trunk'])?getCallerId(_0x109501['Trunk'][_0xd4de('0x79')],_0x109501[_0xd4de('0x5a')],_0x109501[_0xd4de('0x18c')]>0x0?getCallerIdRandom(_0x109501[_0xd4de('0x18d')],_0x109501[_0xd4de('0x18c')]):_0x109501[_0xd4de('0x18d')]):getCallerId(_[_0xd4de('0xb0')](_0x109501[_0xd4de('0x140')])?_0x109501['Trunk'][_0xd4de('0x79')]:_0x109501[_0xd4de('0x140')][_0xd4de('0x79')],_0x109501[_0xd4de('0x5a')],_0x109501[_0xd4de('0x18c')]>0x0?getCallerIdRandom(_0x109501[_0xd4de('0x18d')],_0x109501['dialRandomLastDigitCallerIdNumber']):_0x109501[_0xd4de('0x18d')]);if(_0x4e3b30){_0x466653[_0xd4de('0x18e')]=_0x4f7754[_0xd4de('0x25')][_0x38b4f1][_0xd4de('0x18f')]=extractCalleridName(_0x4e3b30);_0x466653[_0xd4de('0x190')]=_0x4f7754['actions'][_0x38b4f1][_0xd4de('0x191')]=extractCalleridNumber(_0x4e3b30);}return ami[_0xd4de('0x152')]({'actionid':_0x38b4f1,'action':_0xd4de('0x16f'),'channel':_0x4f7754['isTrunkReachable'](_0x109501['Trunk'])?util[_0xd4de('0x7a')](_0xd4de('0x192'),_0x109501[_0xd4de('0x77')]['name'],isNotNull(_0x109501[_0xd4de('0x5c')])?_0x109501[_0xd4de('0x5c')][_0xd4de('0x193')]()||'':'',_0x109501['dialCutDigit']>0x0?_0x4c8beb[_0xd4de('0x171')][_0xd4de('0x172')][_0xd4de('0x194')](_0x109501[_0xd4de('0x195')]):_0x4c8beb['Contact']['phone']):util[_0xd4de('0x7a')](_0xd4de('0x192'),_[_0xd4de('0xb0')](_0x109501[_0xd4de('0x140')])?_0x109501['Trunk'][_0xd4de('0x3f')]:_0x109501[_0xd4de('0x140')]['name'],isNotNull(_0x109501[_0xd4de('0x5c')])?_0x109501[_0xd4de('0x5c')][_0xd4de('0x193')]()||'':'',_0x109501[_0xd4de('0x195')]>0x0?_0x4c8beb[_0xd4de('0x171')][_0xd4de('0x172')][_0xd4de('0x194')](_0x109501['dialCutDigit']):_0x4c8beb['Contact'][_0xd4de('0x172')]),'callerid':_0x4e3b30,'Exten':_0xd4de('0xdf'),'Context':_0xd4de('0x196'),'Priority':'1','variable':_0x466653,'timeout':(_0x109501[_0xd4de('0x5b')]||0x1e)*0x3e8,'async':!![],'channelid':_0x38b4f1})['then'](function(_0x48b79f){return _0xf68e21(_0x48b79f);})[_0xd4de('0xb3')](function(_0x4bd59c){_0x109501[_0xd4de('0x65')]+=0x1;var _0x5b7347=new History(_0x4f7754[_0xd4de('0x25')][_0x38b4f1]);logger['error'](util[_0xd4de('0x7a')](_0xd4de('0x197'),JSON[_0xd4de('0x47')](_0x4bd59c)));_0x5b7347[_0xd4de('0xa9')]=0xe;_0x5b7347[_0xd4de('0xaa')]=_0xd4de('0x198');_0x5b7347[_0xd4de('0xac')]=moment()[_0xd4de('0x7a')](_0xd4de('0xfc'));_0x5b7347[_0xd4de('0xab')]=_0x5b7347[_0xd4de('0xac')];_0x4f7754['createHistory'](_0x5b7347)[_0xd4de('0xb3')](loggerCatch(_0xd4de('0x199')));_0x4f7754[_0xd4de('0xc9')](_0x5b7347)[_0xd4de('0xb3')](loggerCatch(_0xd4de('0x199')))['finally'](function(){delete _0x4f7754[_0xd4de('0x25')][_0x38b4f1];return _0x58e09c(msgResponse(_0xd4de('0x16f'),_0xd4de('0x46'),_0xd4de('0x19a')));});});});};Dialer[_0xd4de('0x1b')][_0xd4de('0x32')]=function(_0x463818){var _0x20f4e0=this[_0xd4de('0x25')][_0x463818[_0xd4de('0x127')]];if(_0x20f4e0){delete this['actions'][_0x463818[_0xd4de('0x127')]];_0x20f4e0[_0xd4de('0x19b')]=moment()[_0xd4de('0x7a')](_0xd4de('0xfc'));var _0x53dc1c=_0x20f4e0['type']===_0xd4de('0x7d')?this[_0xd4de('0xb7')][_0x20f4e0['queue']]:this[_0xd4de('0x21')][_0x20f4e0[_0xd4de('0x19c')]()];if(!this[_0xd4de('0xd8')](_0x463818[_0xd4de('0x19d')])){this['updateOriginated'](_0x53dc1c);return this[_0xd4de('0x19e')](_0x20f4e0,_0x53dc1c,_0x463818)[_0xd4de('0xb3')](loggerCatch(_0xd4de('0x19f')));}this[_0xd4de('0x27')][_0x463818[_0xd4de('0xeb')]]=_0x20f4e0;}};Dialer[_0xd4de('0x1b')][_0xd4de('0x1a0')]=function(_0x591a75,_0x46c09e,_0x2888ee){var _0x2c2cb4=new History(_0x46c09e);if(_0x2c2cb4[_0xd4de('0xef')]+_0x2c2cb4['countcongestionretry']+_0x2c2cb4['countnoanswerretry']+_0x2c2cb4['countnosuchnumberretry']+_0x2c2cb4[_0xd4de('0xf3')]+_0x2c2cb4[_0xd4de('0x120')]+_0x2c2cb4[_0xd4de('0xed')]+_0x2c2cb4[_0xd4de('0xf4')]>=_0x2888ee['dialGlobalMaxRetry']-0x1){return!![];}switch(_0x591a75){case 0x3:if(_0x2c2cb4[_0xd4de('0xf1')]>=_0x2888ee[_0xd4de('0x1a1')]-0x1){return!![];}this['rescheduleContact']({'active':![],'countnoanswerretry':_0x2c2cb4['countnoanswerretry']+=0x1,'scheduledat':moment()[_0xd4de('0x102')](_0x2888ee[_0xd4de('0x1a2')],_0xd4de('0xfb'))['format'](_0xd4de('0xfc')),'ContactId':_0x2c2cb4[_0xd4de('0xd2')],'ListId':_0x2c2cb4[_0xd4de('0xd3')],'VoiceQueueId':_0x2c2cb4['VoiceQueueId']||undefined,'CampaignId':_0x2c2cb4[_0xd4de('0xd6')]||undefined})['catch'](loggerCatch(_0xd4de('0x1a3')));break;case 0x5:if(_0x2c2cb4['countbusyretry']>=_0x2888ee[_0xd4de('0x1a4')]-0x1){return!![];}this[_0xd4de('0xc1')]({'active':![],'countbusyretry':_0x2c2cb4[_0xd4de('0xef')]+=0x1,'scheduledat':moment()['add'](_0x2888ee['dialBusyRetryFrequency'],_0xd4de('0xfb'))[_0xd4de('0x7a')](_0xd4de('0xfc')),'ContactId':_0x2c2cb4[_0xd4de('0xd2')],'ListId':_0x2c2cb4[_0xd4de('0xd3')],'VoiceQueueId':_0x2c2cb4[_0xd4de('0xd5')]||undefined,'CampaignId':_0x2c2cb4[_0xd4de('0xd6')]||undefined})[_0xd4de('0xb3')](loggerCatch(_0xd4de('0x1a5')));break;case 0x8:if(_0x2c2cb4[_0xd4de('0xf0')]>=_0x2888ee['dialCongestionMaxRetry']-0x1){return!![];}this['rescheduleContact']({'active':![],'countcongestionretry':_0x2c2cb4[_0xd4de('0xf0')]+=0x1,'scheduledat':moment()['add'](_0x2888ee['dialCongestionRetryFrequency'],_0xd4de('0xfb'))[_0xd4de('0x7a')](_0xd4de('0xfc')),'ContactId':_0x2c2cb4[_0xd4de('0xd2')],'ListId':_0x2c2cb4['ListId'],'VoiceQueueId':_0x2c2cb4[_0xd4de('0xd5')]||undefined,'CampaignId':_0x2c2cb4[_0xd4de('0xd6')]||undefined})[_0xd4de('0xb3')](loggerCatch(_0xd4de('0x1a6')));break;case 0x0:if(_0x2c2cb4[_0xd4de('0xf2')]>=_0x2888ee[_0xd4de('0x1a7')]-0x1){return!![];}else{this[_0xd4de('0xc1')]({'active':![],'countnosuchnumberretry':_0x2c2cb4[_0xd4de('0xf2')]+=0x1,'scheduledat':moment()[_0xd4de('0x102')](_0x2888ee[_0xd4de('0x1a8')],'minutes')[_0xd4de('0x7a')](_0xd4de('0xfc')),'ContactId':_0x2c2cb4[_0xd4de('0xd2')],'ListId':_0x2c2cb4[_0xd4de('0xd3')],'VoiceQueueId':_0x2c2cb4[_0xd4de('0xd5')]||undefined,'CampaignId':_0x2c2cb4['CampaignId']||undefined})[_0xd4de('0xb3')](loggerCatch(_0xd4de('0x1a9')));}break;case 0xa:if(_0x2c2cb4[_0xd4de('0xf3')]>=_0x2888ee[_0xd4de('0x1aa')]-0x1){return!![];}this[_0xd4de('0xc1')]({'active':![],'countdropretry':_0x2c2cb4[_0xd4de('0xf3')]+=0x1,'scheduledat':moment()['add'](_0x2888ee[_0xd4de('0x119')],'minutes')['format'](_0xd4de('0xfc')),'ContactId':_0x2c2cb4['ContactId'],'ListId':_0x2c2cb4[_0xd4de('0xd3')],'VoiceQueueId':_0x2c2cb4['VoiceQueueId']||undefined,'CampaignId':_0x2c2cb4[_0xd4de('0xd6')]||undefined})[_0xd4de('0xb3')](loggerCatch(_0xd4de('0x11a')));break;case 0xb:if(_0x2c2cb4['countabandonedretry']>=_0x2888ee[_0xd4de('0x121')]-0x1){return!![];}this[_0xd4de('0xc1')]({'active':![],'countabandonedretry':_0x2c2cb4[_0xd4de('0x120')]+=0x1,'scheduledat':moment()[_0xd4de('0x102')](_0x2888ee[_0xd4de('0x122')],_0xd4de('0xfb'))[_0xd4de('0x7a')](_0xd4de('0xfc')),'ContactId':_0x2c2cb4[_0xd4de('0xd2')],'ListId':_0x2c2cb4[_0xd4de('0xd3')],'VoiceQueueId':_0x2c2cb4[_0xd4de('0xd5')]||undefined,'CampaignId':_0x2c2cb4['CampaignId']||undefined})[_0xd4de('0xb3')](loggerCatch(_0xd4de('0x123')));break;case 0x13:if(_0x2c2cb4['countmachineretry']>=_0x2888ee['dialMachineMaxRetry']-0x1){return!![];}this[_0xd4de('0xc1')]({'active':![],'countmachineretry':_0x2c2cb4['countmachineretry']+=0x1,'scheduledat':moment()[_0xd4de('0x102')](_0x2888ee[_0xd4de('0xfa')],_0xd4de('0xfb'))[_0xd4de('0x7a')](_0xd4de('0xfc')),'ContactId':_0x2c2cb4[_0xd4de('0xd2')],'ListId':_0x2c2cb4[_0xd4de('0xd3')],'VoiceQueueId':_0x2c2cb4[_0xd4de('0xd5')]||undefined,'CampaignId':_0x2c2cb4['CampaignId']||undefined})[_0xd4de('0xb3')](loggerCatch(_0xd4de('0x103')));break;case 0x14:if(_0x2c2cb4[_0xd4de('0xf4')]>=_0x2888ee[_0xd4de('0x1ab')]-0x1){return!![];}this[_0xd4de('0xc1')]({'active':![],'countagentrejectretry':_0x2c2cb4[_0xd4de('0xf4')]+=0x1,'scheduledat':moment()[_0xd4de('0x102')](_0x2888ee[_0xd4de('0x1ac')],_0xd4de('0xfb'))[_0xd4de('0x7a')]('YYYY-MM-DD\x20HH:mm:ss'),'ContactId':_0x2c2cb4[_0xd4de('0xd2')],'ListId':_0x2c2cb4['ListId'],'VoiceQueueId':_0x2c2cb4[_0xd4de('0xd5')]||undefined,'CampaignId':_0x2c2cb4[_0xd4de('0xd6')]||undefined})['catch'](loggerCatch(_0xd4de('0x1ad')));break;default:return!![];}};Dialer[_0xd4de('0x1b')][_0xd4de('0x19e')]=function(_0x2f0d87,_0x1cfc25,_0x57797b){var _0x27aebc=this;var _0x33020a=new History(_0x2f0d87);return new BPromise(function(_0x3a750d,_0x5730b3){if(_['isUndefined'](_0x1cfc25)&&typeof _0x1cfc25!==_0xd4de('0x16e')){return _0x5730b3(msgResponse(_0xd4de('0x1ae'),_0xd4de('0x144'),'entity\x20is\x20undefine'));}if(_[_0xd4de('0x3e')](_0x57797b)&&typeof _0x57797b!==_0xd4de('0x16e')){return _0x5730b3(msgResponse(_0xd4de('0x1ae'),'Failure',_0xd4de('0x1af')));}switch(_0x57797b[_0xd4de('0x1b0')]){case'0':_0x1cfc25['outboundNoSuchCallsDay']+=0x1;_0x33020a['state']=0x0;_0x33020a['statedesc']=_0xd4de('0x1b1');_0x33020a[_0xd4de('0xf2')]+=0x1;_0x33020a[_0xd4de('0xff')]+=0x1;ami['emit'](_0xd4de('0x1b2'),ut[_0xd4de('0xe6')](_0x2f0d87,_0xd4de('0x1b3')));_0x27aebc[_0xd4de('0xcb')](_0x33020a)[_0xd4de('0xb3')](loggerCatch(_0xd4de('0x100')));if(_0x27aebc[_0xd4de('0x1a0')](0x0,_0x2f0d87,_0x1cfc25)){if(_0x33020a[_0xd4de('0xf2')]>=_0x1cfc25[_0xd4de('0x1a7')]){_0x27aebc['createStateFinal'](_0x33020a,_0x3a750d,_0x5730b3,'reason\x200\x20no\x20such\x20number....');}else{_0x27aebc[_0xd4de('0xf5')](_0x33020a,_0x3a750d,_0x5730b3,_0xd4de('0x1b4'));}}break;case'3':_0x1cfc25['outboundNoAnswerCallsDay']+=0x1;_0x33020a[_0xd4de('0xa9')]=0x3;_0x33020a[_0xd4de('0xaa')]='NoAnswer';_0x33020a[_0xd4de('0xf1')]+=0x1;_0x33020a[_0xd4de('0xff')]+=0x1;ami['emit'](_0xd4de('0x1b5'),ut[_0xd4de('0xe6')](_0x2f0d87,_0xd4de('0x1b6')));_0x27aebc['createHistory'](_0x33020a)['catch'](loggerCatch(_0xd4de('0x1b7')));if(_0x27aebc[_0xd4de('0x1a0')](0x3,_0x2f0d87,_0x1cfc25)){if(_0x33020a[_0xd4de('0xf1')]>=_0x1cfc25[_0xd4de('0x1a1')]){_0x27aebc[_0xd4de('0xf8')](_0x33020a,_0x3a750d,_0x5730b3,_0xd4de('0x1b8'));}else{_0x27aebc[_0xd4de('0xf5')](_0x33020a,_0x3a750d,_0x5730b3,_0xd4de('0x1b8'));}}break;case'5':_0x1cfc25[_0xd4de('0x5f')]+=0x1;_0x33020a['state']=0x5;_0x33020a[_0xd4de('0xaa')]=_0xd4de('0x1b9');_0x33020a[_0xd4de('0xef')]+=0x1;_0x33020a[_0xd4de('0xff')]+=0x1;ami[_0xd4de('0x4a')](_0xd4de('0x1ba'),ut[_0xd4de('0xe6')](_0x2f0d87,_0xd4de('0x1bb')));_0x27aebc[_0xd4de('0xcb')](_0x33020a)[_0xd4de('0xb3')](loggerCatch('[syncAgentComplete][createHistory][5]'));if(_0x27aebc['checkRetriveMax'](0x5,_0x2f0d87,_0x1cfc25)){if(_0x33020a['countbusyretry']>=_0x1cfc25['dialBusyMaxRetry']){_0x27aebc[_0xd4de('0xf8')](_0x33020a,_0x3a750d,_0x5730b3,_0xd4de('0x1bc'));}else{_0x27aebc[_0xd4de('0xf5')](_0x33020a,_0x3a750d,_0x5730b3,_0xd4de('0x1bc'));}}break;case'8':_0x1cfc25[_0xd4de('0x60')]+=0x1;_0x33020a[_0xd4de('0xa9')]=0x8;_0x33020a[_0xd4de('0xaa')]='Congestion';_0x33020a[_0xd4de('0xf0')]+=0x1;_0x33020a[_0xd4de('0xff')]+=0x1;ami[_0xd4de('0x4a')](_0xd4de('0x1bd'),ut['buildObj'](_0x2f0d87,_0xd4de('0x1be')));_0x27aebc[_0xd4de('0xcb')](_0x33020a)[_0xd4de('0xb3')](loggerCatch(_0xd4de('0x1bf')));if(_0x27aebc[_0xd4de('0x1a0')](0x8,_0x2f0d87,_0x1cfc25)){if(_0x33020a[_0xd4de('0xf0')]>=_0x1cfc25[_0xd4de('0x1c0')]){_0x27aebc[_0xd4de('0xf8')](_0x33020a,_0x3a750d,_0x5730b3,'reason\x208\x20congestion');}else{_0x27aebc[_0xd4de('0xf5')](_0x33020a,_0x3a750d,_0x5730b3,'reason\x208\x20congestion');}}break;case'11':_0x1cfc25[_0xd4de('0x1c1')]+=0x1;_0x33020a[_0xd4de('0xa9')]=0xb;_0x33020a[_0xd4de('0xaa')]=_0xd4de('0x11e');_0x33020a[_0xd4de('0x120')]+=0x1;_0x33020a[_0xd4de('0xff')]+=0x1;_0x27aebc['createHistory'](_0x33020a)['catch'](loggerCatch(_0xd4de('0x124')));if(_0x27aebc[_0xd4de('0x1a0')](0xb,_0x2f0d87,_0x1cfc25)){if(_0x33020a['countabandonedretry']>=_0x1cfc25[_0xd4de('0x121')]){_0x27aebc[_0xd4de('0xf8')](_0x33020a,_0x3a750d,_0x5730b3,_0xd4de('0x1c2'));}else{_0x27aebc[_0xd4de('0xf5')](_0x33020a,_0x3a750d,_0x5730b3,_0xd4de('0x1c2'));}}break;case'20':_0x1cfc25[_0xd4de('0x67')]+=0x1;_0x33020a[_0xd4de('0xa9')]=0x14;_0x33020a[_0xd4de('0xaa')]=_0xd4de('0x1c3');_0x33020a[_0xd4de('0xf4')]+=0x1;_0x33020a['countglobal']+=0x1;ami[_0xd4de('0x4a')](_0xd4de('0x1c4'),ut[_0xd4de('0xe6')](_0x2f0d87,_0xd4de('0x1c5')));_0x27aebc[_0xd4de('0xcb')](_0x33020a)['catch'](loggerCatch(_0xd4de('0x1c6')));if(_0x27aebc['checkRetriveMax'](0x14,_0x2f0d87,_0x1cfc25)){if(_0x33020a['countagentrejectretry']>=_0x1cfc25[_0xd4de('0x1ab')]){_0x27aebc[_0xd4de('0xf8')](_0x33020a,_0x3a750d,_0x5730b3,_0xd4de('0x1c7'));}else{_0x27aebc[_0xd4de('0xf5')](_0x33020a,_0x3a750d,_0x5730b3,'reason\x2020\x20agentreject');}}break;default:_0x1cfc25[_0xd4de('0x109')]+=0x1;_0x33020a[_0xd4de('0xa9')]=0xc;_0x33020a[_0xd4de('0xaa')]=_0x57797b[_0xd4de('0x1b0')];_0x27aebc[_0xd4de('0xcb')](_0x33020a)[_0xd4de('0xb3')](loggerCatch(_0xd4de('0x1c8')));if(_0x27aebc[_0xd4de('0x1a0')](_0x57797b['reason'],_0x2f0d87,_0x1cfc25)){if(_0x33020a[_0xd4de('0xef')]+_0x33020a[_0xd4de('0xf0')]+_0x33020a[_0xd4de('0xf1')]+_0x33020a[_0xd4de('0xf2')]+_0x33020a[_0xd4de('0xf3')]+_0x33020a[_0xd4de('0x120')]+_0x33020a[_0xd4de('0xed')]+_0x33020a[_0xd4de('0xf4')]>=_0x1cfc25[_0xd4de('0x101')]){_0x27aebc[_0xd4de('0xf5')](_0x33020a,_0x3a750d,_0x5730b3,_0x57797b[_0xd4de('0x1b0')]);}else{_0x27aebc[_0xd4de('0xf8')](_0x33020a,_0x3a750d,_0x5730b3,_0x57797b['reason']);}}}});};Dialer[_0xd4de('0x1b')][_0xd4de('0xf5')]=function(_0x16053e,_0x196c29,_0x26291a,_0xd6317f){var _0x6fcb9c=new Final(_0x16053e);_0x6fcb9c[_0xd4de('0xa9')]=0xf;_0x6fcb9c[_0xd4de('0xaa')]='Global';this[_0xd4de('0xf8')](_0x6fcb9c,_0x196c29,_0x26291a,_0xd6317f);};Dialer['prototype']['createStateFinal']=function(_0xd723e4,_0x542b1f,_0x2d8c54,_0x3024df){this[_0xd4de('0xc9')](_0xd723e4)[_0xd4de('0xba')](function(){return _0x542b1f(msgResponse(_0xd4de('0x1ae'),'Success',_0x3024df));})[_0xd4de('0xb3')](function(){return _0x2d8c54(msgResponse(_0xd4de('0x1c9'),'Failure',_0xd4de('0x1ca')));});};Dialer[_0xd4de('0x1b')][_0xd4de('0xb')]=function(_0x29e408){var _0x1b7a45=_0x29e408[_0xd4de('0x1cb')]/0x64;var _0x2c01a7=_0x29e408[_0xd4de('0x63')]/(_0x29e408[_0xd4de('0x63')]+_0x29e408['outboundAnswerCallsDay']);var _0x10d3b8=Math[_0xd4de('0x1cc')](_0x29e408[_0xd4de('0x6f')]*(_0x29e408[_0xd4de('0x1cd')]/0x64));var _0xea2b30=Math[_0xd4de('0x1cc')](_0x29e408[_0xd4de('0x6f')]*(_0x29e408['predictiveIntervalMinThreshold']/0x64));var _0x15e6af=_0x29e408[_0xd4de('0x4e')]+_0x29e408['talking'];var _0x247609=Math[_0xd4de('0x1ce')](_0x29e408[_0xd4de('0x72')]*_0x29e408['erlangAbandonmentRate']*_0x29e408[_0xd4de('0x1cf')]*_0x29e408['predictiveIntervalMultiplicativeFactor']);if(_[_0xd4de('0x3e')](_0x29e408[_0xd4de('0x29')])){if(!_[_0xd4de('0x3e')](_0x29e408['startPredictive'])){_0x29e408['startPredictive']=undefined;loggerPredictive['error'](_0xd4de('0x1d0'),_0xd4de('0x1d1'));}if(!_[_0xd4de('0x3e')](_0x29e408[_0xd4de('0x93')])){loggerPredictive[_0xd4de('0x98')](_0xd4de('0x1d0'),_0xd4de('0x1d2'));clearInterval(_0x29e408[_0xd4de('0x93')]);_0x29e408[_0xd4de('0x93')]=undefined;}_0x29e408[_0xd4de('0x29')]=moment()[_0xd4de('0x7a')](_0xd4de('0xfc'));loggerPredictive['info'](_0x29e408['name'],_0xd4de('0x1d3'),_0x29e408[_0xd4de('0x29')]);this[_0xd4de('0x15c')](_0x29e408,0x1);}else if(ifInterval(_0x29e408[_0xd4de('0x1d4')],_0x29e408[_0xd4de('0x29')])){this[_0xd4de('0x15c')](_0x29e408,0x1);loggerPredictiveCalls['info'](_0xd4de('0x1d5'),_0x29e408[_0xd4de('0x29')],_0x29e408['name']);_0x29e408['erlangCalls']=0x0;_0x29e408[_0xd4de('0x6c')]=0x0;}else if(_0x1b7a45<_0x2c01a7&&_0x29e408[_0xd4de('0x1d6')]==='dropRate'){freeVariablesPredictive(_0x29e408);loggerPredictive[_0xd4de('0x81')](_0xd4de('0x1d7'),_0xd4de('0x1d8'),_0x2c01a7,_0xd4de('0x29'),_0x29e408[_0xd4de('0x3f')]);}else if(_0x247609<_0x29e408[_0xd4de('0x6c')]&&_0x29e408[_0xd4de('0x1d6')]===_0xd4de('0x1d9')){freeVariablesPredictive(_0x29e408);loggerPredictive[_0xd4de('0x81')](_0xd4de('0x1da'),_0xd4de('0x1db'),_0x247609,_0xd4de('0x1dc'),_0x29e408[_0xd4de('0x6c')],_0xd4de('0x29'),_0x29e408[_0xd4de('0x3f')]);}else if(!ifInterval(_0x29e408['dialPredictiveInterval'],_0x29e408[_0xd4de('0x29')])&&_[_0xd4de('0x3e')](_0x29e408[_0xd4de('0x76')])&&!_['isUndefined'](_0x29e408[_0xd4de('0x29')])){_0x29e408[_0xd4de('0x76')]=moment()[_0xd4de('0x7a')](_0xd4de('0xfc'));loggerPredictive[_0xd4de('0x81')](_0x29e408['name'],_0xd4de('0x1dd'),_0x29e408['startPredictive']);this[_0xd4de('0x1de')](_0x29e408[_0xd4de('0x1d4')])['then'](this[_0xd4de('0x1df')](_0x29e408))[_0xd4de('0xba')](mergeDataErlangB(_0x29e408))[_0xd4de('0xba')](this[_0xd4de('0x1e0')](_0x29e408))[_0xd4de('0xb3')](loggerCatchPredictive(_0xd4de('0x1e1'),_0x29e408));}else if(!ifInterval(_0x29e408[_0xd4de('0x1d4')],_0x29e408[_0xd4de('0x76')])){_0x29e408['predictiveIntervalErlangCallsDroppedCalls']=0x0;_0x29e408[_0xd4de('0x76')]=moment()[_0xd4de('0x7a')](_0xd4de('0xfc'));loggerPredictive[_0xd4de('0x81')](_0x29e408[_0xd4de('0x3f')],_0xd4de('0x1e2'),_0x29e408[_0xd4de('0x76')]);clearInterval(_0x29e408[_0xd4de('0x93')]);_0x29e408[_0xd4de('0x93')]=undefined;this[_0xd4de('0x1de')](_0x29e408[_0xd4de('0x1d4')])['then'](this[_0xd4de('0x1df')](_0x29e408))[_0xd4de('0xba')](mergeDataErlangB(_0x29e408))['then'](this[_0xd4de('0x1e0')](_0x29e408))[_0xd4de('0xb3')](loggerCatchPredictive(_0xd4de('0x1e3'),_0x29e408));}else if(_0x29e408[_0xd4de('0x6f')]&&_0x15e6af<_0x29e408[_0xd4de('0x6f')]-_0xea2b30){freeVariablesPredictive(_0x29e408);loggerPredictive[_0xd4de('0x81')](_0x29e408[_0xd4de('0x3f')],_0xd4de('0x1e4'),_0x15e6af,_0xd4de('0x1e5'),_0x29e408[_0xd4de('0x6f')],'-',_0xea2b30,'=',_0x29e408[_0xd4de('0x6f')]-_0xea2b30,')');}else if(_0x29e408[_0xd4de('0x6f')]&&_0x15e6af>_0x29e408['predictiveIntervalAvailable']+_0x10d3b8){freeVariablesPredictive(_0x29e408);loggerPredictive[_0xd4de('0x81')](_0x29e408[_0xd4de('0x3f')],_0xd4de('0x1e4'),_0x15e6af,_0xd4de('0x1e6'),_0x29e408[_0xd4de('0x6f')],'+',_0x10d3b8,'=',_0x29e408[_0xd4de('0x6f')]+_0x10d3b8,')');}};Dialer[_0xd4de('0x1b')][_0xd4de('0x1df')]=function(_0x351101){var _0x4aafce=this;return function(_0x232f33){return new BPromise(function(_0x3b27d4,_0x2a1471){_[_0xd4de('0xd0')](_0x351101,_0x232f33[0x0]);if(checkGetDataPredictive(_0x232f33[0x0])){var _0x1a5a7e=_0x351101[_0xd4de('0x6f')]=_0x351101[_0xd4de('0xa1')]+_0x351101[_0xd4de('0x4e')];var _0x47c733=_0x351101[_0xd4de('0x1d4')]*0x3c;var _0x3ba633=_0x232f33[0x0]['predictiveIntervalAvgTalktime']+_0x232f33[0x0][_0xd4de('0x69')];var _0x30cac2=(_0x232f33[0x0][_0xd4de('0x68')]+_0x232f33[0x0][_0xd4de('0x85')]+_0x232f33[0x0]['predictiveIntervalDroppedCallsCallersExit'])/_0x232f33[0x0][_0xd4de('0x70')];_0x351101[_0xd4de('0x1cf')]=_0x30cac2>0x0?_0x30cac2:0x1;switch(_0x351101[_0xd4de('0x1d6')]){case _0xd4de('0x1d9'):var _0x19259e=_0x351101[_0xd4de('0x1cb')]/0x64;return _0x4aafce[_0xd4de('0x1e7')](_0x1a5a7e,_0x47c733,_0x3ba633,_0x30cac2,_0x19259e)[_0xd4de('0xba')](function(_0xe3cb1a){return _0x3b27d4(_0xe3cb1a);});case _0xd4de('0x1e8'):var _0x4ff0a2=_0x351101[_0xd4de('0x1cb')]/0x64;return _0x4aafce[_0xd4de('0x1e9')](_0x1a5a7e,_0x47c733,_0x3ba633,_0x30cac2,_0x4ff0a2)['then'](function(_0x4c19d8){return _0x3b27d4(_0x4c19d8);});default:return _0x2a1471(msgResponse(_0xd4de('0x1ea'),_0xd4de('0x144'),'Unknown\x20Predictive'));}}else{return _0x2a1471(msgResponse(_0xd4de('0x1ea'),_0xd4de('0x144'),'check\x20failure'));}});};};Dialer[_0xd4de('0x1b')][_0xd4de('0x1eb')]=function(_0x5b3a21){var _0x75e1c2=this;return function(_0x26a1a2){return new BPromise(function(_0x3f242f,_0x50017f){_[_0xd4de('0xd0')](_0x5b3a21,_0x26a1a2[0x0]);if(checkGetDataPredictive(_0x26a1a2[0x0])){loggerPredictive[_0xd4de('0x81')](JSON[_0xd4de('0x47')](_0x26a1a2[0x0]));if(_0x5b3a21[_0xd4de('0x1d6')]==='dropRate'){return _0x75e1c2[_0xd4de('0xc7')](_0x5b3a21['id'])['then'](function(_0xd5a7b5){var _0x7dc9de=_0x5b3a21[_0xd4de('0x4f')]-_0xd5a7b5[0x0][_0xd4de('0x1ec')];var _0x28d45b=_0x5b3a21[_0xd4de('0x1d4')]*0x3c;var _0x58dbeb=_0x26a1a2[0x0]['predictiveIntervalAvgTalktime']+_0x26a1a2[0x0][_0xd4de('0x69')];var _0x17d08f=(_0x26a1a2[0x0][_0xd4de('0x68')]+_0x26a1a2[0x0]['predictiveIntervalDroppedCallsTimeout']+_0x26a1a2[0x0][_0xd4de('0x87')])/_0x26a1a2[0x0][_0xd4de('0x70')];var _0x407ed7=_0x5b3a21['dialPredictiveOptimizationPercentage']/0x64;_0x5b3a21[_0xd4de('0x6e')]=_0xd5a7b5[0x0]['outboundQueuePauses']||0x0;_0x5b3a21[_0xd4de('0x1cf')]=_0x17d08f>0x0?_0x17d08f:0x1;return _0x75e1c2[_0xd4de('0x1e7')](_0x7dc9de,_0x28d45b,_0x58dbeb,_0x17d08f,_0x407ed7);})['then'](function(_0x58858e){return _0x3f242f(_0x58858e);})[_0xd4de('0xb3')](function(_0x36b394){return _0x50017f(msgResponse(_0xd4de('0x1ed'),_0xd4de('0x144'),JSON[_0xd4de('0x47')](_0x36b394)));});}if(_0x5b3a21[_0xd4de('0x1d6')]==='agentBusyFactor'){return _0x75e1c2[_0xd4de('0xc7')](_0x5b3a21['id'])[_0xd4de('0xba')](function(_0x265324){var _0xab7b3d=_0x5b3a21[_0xd4de('0x4f')]-_0x265324[0x0]['outboundQueuePauses'];var _0x3d6c61=_0x5b3a21['dialPredictiveInterval']*0x3c;var _0xd8daeb=_0x26a1a2[0x0][_0xd4de('0x6a')]+_0x26a1a2[0x0][_0xd4de('0x69')];var _0x308d3c=(_0x26a1a2[0x0][_0xd4de('0x68')]+_0x26a1a2[0x0][_0xd4de('0x85')]+_0x26a1a2[0x0][_0xd4de('0x87')])/_0x26a1a2[0x0][_0xd4de('0x70')];var _0x1f77a4=_0x5b3a21['dialPredictiveOptimizationPercentage']/0x64;_0x5b3a21['predictiveIntervalPauses']=_0x265324[0x0][_0xd4de('0x1ec')]||0x0;_0x5b3a21[_0xd4de('0x1cf')]=_0x308d3c>0x0?_0x308d3c:0x1;return _0x75e1c2['busyFactor'](_0xab7b3d,_0x3d6c61,_0xd8daeb,_0x308d3c,_0x1f77a4);})[_0xd4de('0xba')](function(_0x4fb85b){return _0x3f242f(_0x4fb85b);})['catch'](function(_0x5a149a){return _0x50017f(msgResponse(_0xd4de('0x1ed'),_0xd4de('0x144'),JSON[_0xd4de('0x47')](_0x5a149a)));});}}else{return _0x50017f(msgResponse(_0xd4de('0x1ea'),_0xd4de('0x144'),_0xd4de('0x1ee')));}});};};Dialer[_0xd4de('0x1b')]['startMethodPredictive']=function(_0x343de9){var _0x2532b9=this;return function(){var _0x4777c2=0x0;var _0x192af5=Math['floor'](_0x343de9[_0xd4de('0x73')]*0x3e8);if(_0x192af5>0x0){_0x192af5=_0x192af5<0x64?0x64:_0x192af5;loggerPredictive[_0xd4de('0x81')](_0x343de9[_0xd4de('0x3f')],_0xd4de('0x1ef'),_0x192af5,_0xd4de('0x48'));_0x343de9['handlePredictive']=setInterval(function(){_0x2532b9['handlePredictive'](_0x343de9);loggerPredictiveCalls['info']('[handlePredictive]',_0x4777c2+=0x1);},_0x192af5);}else{loggerPredictive[_0xd4de('0x81')](_0x343de9[_0xd4de('0x3f')],'fail\x20to\x20scheduled\x20calls');}};};Dialer[_0xd4de('0x1b')]['checkContactBlack']=function(_0x5b9263,_0x312861){var _0x104e4f=this;return function(_0x2b2e48){if(_[_0xd4de('0x80')](_0x2b2e48)){if(_[_0xd4de('0xb0')](_0x312861[_0xd4de('0xd4')])||!_0x312861[_0xd4de('0x1f0')]){if(_0x5b9263[_0xd4de('0x59')]===_0xd4de('0x15f')){_0x5b9263[_0xd4de('0x12e')]=_[_0xd4de('0x3e')](_0x5b9263[_0xd4de('0x12e')])?!![]:_0x5b9263[_0xd4de('0x12e')];var _0x5a81ba=uuid['v4']();_0x104e4f[_0xd4de('0x25')][_0x5a81ba]=new Action(_0x5b9263,_0x312861,_0x5a81ba);loggerBooked[_0xd4de('0x81')](_0xd4de('0x1f1'),_0x5a81ba,'queueStatusComplete:\x20',JSON[_0xd4de('0x47')](_0x5b9263['queueStatusComplete']),_0xd4de('0x1f2'),_0x5b9263['name']);if(_0x5b9263[_0xd4de('0x12e')]){_0x5b9263['queueStatusComplete']=![];_0x104e4f[_0xd4de('0x2b')][_0x104e4f['actions'][_0x5a81ba][_0xd4de('0xb6')]]=[];ami[_0xd4de('0x152')]({'actionid':_0x5a81ba,'action':'queuestatus','queue':_0x5b9263[_0xd4de('0x3f')]})['catch'](function(){_0x104e4f[_0xd4de('0xb4')](_0x5b9263);_0x104e4f[_0xd4de('0xc1')]({'active':![],'ContactId':_0x104e4f[_0xd4de('0x25')][_0x5a81ba]['ContactId'],'ListId':_0x104e4f[_0xd4de('0x25')][_0x5a81ba]['ListId'],'VoiceQueueId':_0x104e4f[_0xd4de('0x25')][_0x5a81ba]['VoiceQueueId']||undefined,'CampaignId':_0x104e4f[_0xd4de('0x25')][_0x5a81ba][_0xd4de('0xd6')]||undefined})[_0xd4de('0xb3')](loggerCatch(_0xd4de('0x1f3')));delete _0x104e4f[_0xd4de('0x25')][_0x5a81ba];});}else{loggerBooked[_0xd4de('0x81')]('[booked][checkContactBlack][else]',JSON['stringify'](_0x5b9263[_0xd4de('0x12e')]),'Queue:\x20',_0x5b9263[_0xd4de('0x3f')]);_0x104e4f[_0xd4de('0xb4')](_0x5b9263);_0x104e4f['rescheduleContact']({'active':![],'ContactId':_0x104e4f['actions'][_0x5a81ba][_0xd4de('0xd2')],'ListId':_0x104e4f['actions'][_0x5a81ba]['ListId'],'VoiceQueueId':_0x104e4f[_0xd4de('0x25')][_0x5a81ba][_0xd4de('0xd5')]||undefined,'CampaignId':_0x104e4f[_0xd4de('0x25')][_0x5a81ba]['CampaignId']||undefined})[_0xd4de('0xb3')](loggerCatch(_0xd4de('0x1f3')));delete _0x104e4f[_0xd4de('0x25')][_0x5a81ba];}}else{return _0x104e4f[_0xd4de('0x16d')](_0x5b9263,_0x312861);}}else{if(getDiff(_0x312861[_0xd4de('0x1f4')])<_0x5b9263[_0xd4de('0x1f5')]*0x3c){if(_0x312861['Agent']&&!_0x312861[_0xd4de('0x1f6')]['voicePause']){_0x104e4f[_0xd4de('0x20')][_0xd4de('0x130')](_0x312861['id'])[_0xd4de('0x1e')](function(){_0x104e4f['updateOriginated'](_0x5b9263);});}else{_0x104e4f[_0xd4de('0xc3')]({'active':![]},_0x312861['id'],0x1)[_0xd4de('0x1e')](function(){_0x104e4f[_0xd4de('0xb4')](_0x5b9263);});}}else{_0x5b9263['outboundReCallsDay']+=0x1;_0x104e4f['updateOriginated'](_0x5b9263);if(_0x5b9263['dialRecallInQueue']){_0x104e4f[_0xd4de('0xc1')]({'active':![],'recallme':![],'UserId':null,'ContactId':_0x312861[_0xd4de('0xd2')],'ListId':_0x312861[_0xd4de('0xd3')],'VoiceQueueId':_0x312861[_0xd4de('0xd5')]||undefined,'CampaignId':_0x312861['CampaignId']||undefined})[_0xd4de('0xb3')](loggerCatch(_0xd4de('0x1f7')));_0x104e4f[_0xd4de('0xcb')](createObjHistory(_0x5b9263,_0x312861,_0xd4de('0x1f8'),0x17,_0xd4de('0x1f9')))[_0xd4de('0xb3')](loggerCatch(_0xd4de('0x1fa')));}else{_0x104e4f[_0xd4de('0xcf')](createObjHistory(_0x5b9263,_0x312861,'RECALLFAILEDTIMEOUT',0x16,_0xd4de('0x1fb')),'[Originate][HistoryRecallClose][historyCatch]',_0xd4de('0x1fc'));}}}}else{_0x5b9263[_0xd4de('0x5e')]+=0x1;_0x104e4f[_0xd4de('0xcf')](createObjHistory(_0x5b9263,_0x312861,_0xd4de('0x1fd'),0xd,_0xd4de('0x1fe')),_0xd4de('0x1ff'),_0xd4de('0x200'));throw _0xd4de('0x201');}};};Dialer[_0xd4de('0x1b')]['handleIvr']=function(_0x2b440a){var _0x153127=this;var _0x49ee15=_0x2b440a[_0xd4de('0x202')]-_0x2b440a[_0xd4de('0x71')]-_0x2b440a[_0xd4de('0xc5')];emitCampaignSummary(_0x2b440a);if(_0x49ee15>0x0){if(_0x49ee15>this[_0xd4de('0x24')]){_0x49ee15=this[_0xd4de('0x24')];}_0x2b440a[_0xd4de('0xc5')]+=_0x49ee15;this[_0xd4de('0xc6')](_0x2b440a['id'],_0x49ee15,_0x2b440a[_0xd4de('0x203')],_0x2b440a)[_0xd4de('0xba')](function(_0x1fd6a0){_0x2b440a[_0xd4de('0xc5')]-=_0x49ee15;_0x2b440a[_0xd4de('0xc5')]=_0x2b440a[_0xd4de('0xc5')]>0x0?_0x2b440a[_0xd4de('0xc5')]:0x0;if(!checkContactEmpty(_0x1fd6a0)){_0x2b440a[_0xd4de('0x40')]=_0xd4de('0xa0');logger[_0xd4de('0x81')](_0xd4de('0x204')+_0x2b440a[_0xd4de('0x3f')]);}else{_0x2b440a[_0xd4de('0x71')]+=_0x1fd6a0[_0xd4de('0x14a')];_0x2b440a[_0xd4de('0x40')]='RUNNING';for(var _0xb9f5b4=0x0;_0xb9f5b4<_0x1fd6a0[_0xd4de('0x14a')];_0xb9f5b4+=0x1){_0x2b440a['ivrTotalCallsDays']+=0x1;if(_['isNil'](_0x1fd6a0[_0xb9f5b4])||_[_0xd4de('0xb0')](_0x1fd6a0[_0xb9f5b4]['Contact'])||_['isNil'](_0x1fd6a0[_0xb9f5b4]['Contact']['phone'])){_0x153127[_0xd4de('0xce')](_0xd4de('0x205'),_0x2b440a,_0x1fd6a0[_0xb9f5b4]);}else{_0x153127[_0xd4de('0xbd')](_[_0xd4de('0xd1')](_0x1fd6a0[_0xb9f5b4],[_0xd4de('0xd6'),_0xd4de('0x206')]))['then'](_0x153127[_0xd4de('0x207')](_0x2b440a,_0x1fd6a0[_0xb9f5b4]))[_0xd4de('0xb3')](_0x153127['loggerHandler'](_0xd4de('0x208'),_0x2b440a));}}}})[_0xd4de('0xb3')](loggerGetContactDialer(_0xd4de('0x209'),_0x2b440a,_0x49ee15));}};Dialer[_0xd4de('0x1b')][_0xd4de('0x15c')]=function(_0x4b53c3,_0x46590b){var _0x424b92=this;var _0x3e40ee=[];var _0x46cf96=_0x46590b>=0x1?_0x46590b:0x1;if(_0x4b53c3['dialMethod']===_0xd4de('0x15f')){_0x46cf96=0x1;}var _0x5b963e=Math['floor'](_0x4b53c3[_0xd4de('0x4e')]*_0x46cf96)-_0x4b53c3[_0xd4de('0x71')]-_0x4b53c3['temp'];emitVoiceQueueSummary(_0x4b53c3);if(_0x4b53c3[_0xd4de('0x20a')]>0x0){var _0x3dbeb5=_0x4b53c3[_0xd4de('0x20a')]-_0x4b53c3['originated']-_0x4b53c3['talking']-_0x4b53c3[_0xd4de('0xc5')]-_0x4b53c3[_0xd4de('0x50')];if(_0x5b963e>_0x3dbeb5){_0x5b963e=_0x3dbeb5;}}if(_0x5b963e>0x0){if(_0x4b53c3[_0xd4de('0x59')]===_0xd4de('0x15f')){_0x5b963e=0x1;}if(_0x5b963e>this[_0xd4de('0x24')]){_0x5b963e=this[_0xd4de('0x24')];}_0x4b53c3[_0xd4de('0xc5')]+=_0x5b963e;for(var _0x4f9626 in this[_0xd4de('0x22')]){if(typeof this[_0xd4de('0x22')][_0x4f9626]!==_0xd4de('0x9a')){if(this[_0xd4de('0x22')][_0x4f9626][_0xd4de('0xa9')]===_0xd4de('0x20b')&&this[_0xd4de('0x22')][_0x4f9626][_0xd4de('0xb1')]===_0xd4de('0xdb')){_0x3e40ee[_0xd4de('0x12b')](this[_0xd4de('0x22')][_0x4f9626]['id']);}}}this['getContactDialer'](_0x4b53c3['id'],_0x3e40ee,_0x5b963e,_0x4b53c3[_0xd4de('0x203')],_0x4b53c3)[_0xd4de('0xba')](function(_0x49777d){_0x4b53c3[_0xd4de('0xc5')]-=_0x5b963e;_0x4b53c3[_0xd4de('0xc5')]=_0x4b53c3['temp']>0x0?_0x4b53c3[_0xd4de('0xc5')]:0x0;if(!checkContactEmpty(_0x49777d)){_0x424b92[_0xd4de('0x20c')](_0x4b53c3)['then'](sendMessageReschedule(_0x4b53c3))[_0xd4de('0xb3')](loggerCatch(_0xd4de('0xbb')));}else{_0x4b53c3['originated']+=_0x49777d[_0xd4de('0x14a')];_0x4b53c3['message']=_0x4b53c3[_0xd4de('0x59')]===_0xd4de('0x15f')?'ACTIVE':_0xd4de('0x20d');for(var _0x4c2bc3=0x0;_0x4c2bc3<_0x49777d['length'];_0x4c2bc3+=0x1){if(_[_0xd4de('0xb0')](_0x49777d[_0x4c2bc3])||_['isNil'](_0x49777d[_0x4c2bc3]['Contact'])||_[_0xd4de('0xb0')](_0x49777d[_0x4c2bc3]['Contact']['phone'])){_0x424b92['emptyContact'](_0xd4de('0x205'),_0x4b53c3,_0x49777d[_0x4c2bc3]);}else{_0x424b92['checkIsBlackList'](_[_0xd4de('0xd1')](_0x49777d[_0x4c2bc3],[_0xd4de('0xd5'),_0xd4de('0x206')]))['then'](_0x424b92[_0xd4de('0x207')](_0x4b53c3,_0x49777d[_0x4c2bc3]))[_0xd4de('0xb3')](_0x424b92[_0xd4de('0xcd')](_0xd4de('0x205'),_0x4b53c3));}}}})[_0xd4de('0xb3')](loggerGetContactDialer(_0xd4de('0x20e'),_0x4b53c3,_0x5b963e));}};Dialer[_0xd4de('0x1b')][_0xd4de('0x93')]=function(_0x22beab){if(_0x22beab[_0xd4de('0x20a')]>0x0){var _0xf335dd=_0x22beab[_0xd4de('0x20a')]-_0x22beab[_0xd4de('0x71')]-_0x22beab[_0xd4de('0xa1')];if(_0xf335dd>0x0){this[_0xd4de('0x20f')](_0x22beab);}else{loggerPredictiveCalls[_0xd4de('0x81')](_0xd4de('0x210'));}}else{this['tryOriginatePredictive'](_0x22beab);}};Dialer[_0xd4de('0x1b')][_0xd4de('0x20f')]=function(_0x4d0677){var _0x301d3a=this;var _0x3b7499=[];_0x4d0677[_0xd4de('0x71')]+=0x1;for(var _0x487f18 in this[_0xd4de('0x22')]){if(typeof this[_0xd4de('0x22')][_0x487f18]!==_0xd4de('0x9a')){if(this[_0xd4de('0x22')][_0x487f18]['state']===_0xd4de('0x20b')&&this[_0xd4de('0x22')][_0x487f18][_0xd4de('0xb1')]===_0xd4de('0xdb')){_0x3b7499[_0xd4de('0x12b')](this[_0xd4de('0x22')][_0x487f18]['id']);}}}this[_0xd4de('0xc4')](_0x4d0677['id'],_0x3b7499,0x1,_0x4d0677['dialOrderByScheduledAt'],_0x4d0677)[_0xd4de('0xba')](function(_0x32c450){if(!checkContactEmpty(_0x32c450)){checkContactLowerLimitOriginate(_0x4d0677,0x1,0x0);_0x301d3a['countReScheduled'](_0x4d0677)[_0xd4de('0xba')](sendMessageReschedule(_0x4d0677))['catch'](loggerCatch('[countReScheduled]\x20'));}else{_0x4d0677[_0xd4de('0x40')]=_0xd4de('0x20d');if(_[_0xd4de('0xb0')](_0x32c450[0x0])||_['isNil'](_0x32c450[0x0][_0xd4de('0x171')])||_['isNil'](_0x32c450[0x0]['Contact']['phone'])){_0x301d3a['emptyContact'](_0xd4de('0x205'),_0x4d0677,_0x32c450[0x0]);}else{_0x301d3a[_0xd4de('0xbc')](_[_0xd4de('0xd1')](_0x32c450[0x0],[_0xd4de('0xd5'),_0xd4de('0x206')]))['then'](_0x301d3a[_0xd4de('0x207')](_0x4d0677,_0x32c450[0x0]))[_0xd4de('0xb3')](_0x301d3a[_0xd4de('0xcd')](_0xd4de('0x211'),_0x4d0677));}}})[_0xd4de('0xb3')](loggerGetContactDialer(_0xd4de('0x212'),_0x4d0677,0x1));emitVoiceQueueSummary(_0x4d0677);};Dialer[_0xd4de('0x1b')][_0xd4de('0x1e7')]=function(_0x428b73,_0x5392cd,_0x3b869c,_0x445f46,_0x413cd8,_0x40c17d){loggerPredictive[_0xd4de('0x81')](_0xd4de('0x213'));loggerPredictive[_0xd4de('0x81')](_0xd4de('0x214'),_0x428b73);loggerPredictive['info'](_0xd4de('0x215'),_0x5392cd);loggerPredictive[_0xd4de('0x81')](_0xd4de('0x216'),_0x3b869c);loggerPredictive['info'](_0xd4de('0x217'),_0x445f46);loggerPredictive[_0xd4de('0x81')]('Amax:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20',_0x413cd8);loggerPredictive[_0xd4de('0x81')](_0xd4de('0x89'));return new BPromise(function(_0xd13284,_0x3de929){if(_0x428b73<=0x0||isNaN(_0x428b73)){return _0x3de929(msgResponse(_0xd4de('0x218'),'Error',_0xd4de('0x219')+_0x428b73));}if(_0x3b869c<=0x0||isNaN(_0x3b869c)){return _0x3de929(msgResponse(_0xd4de('0x218'),_0xd4de('0x46'),_0xd4de('0x21a')+_0x3b869c));}if(_0x445f46<=0x0||isNaN(_0x445f46)){return _0x3de929(msgResponse('[abandonmentRate]',_0xd4de('0x46'),'p\x20=\x20'+_0x445f46));}if(_0x5392cd<=0x0||isNaN(_0x5392cd)){return _0x3de929(msgResponse(_0xd4de('0x218'),_0xd4de('0x46'),'interval\x20=\x20'+_0x5392cd));}if(_0x413cd8<=0x0||isNaN(_0x413cd8)){return _0x3de929(msgResponse(_0xd4de('0x218'),'Error',_0xd4de('0x21b')+_0x413cd8));}_0x40c17d=_0x40c17d||0x0;var _0x4bf837=0x1/_0x3b869c;var _0x2f4848=0x0;var _0x59fd50=0x0;var _0x712a0=0x0;var _0x502ba5=0x0;for(var _0x3b8dbb=0x0;_0x712a0<_0x413cd8;_0x3b8dbb+=0x1){_0x59fd50=_0x3b8dbb/_0x5392cd;_0x2f4848=(_0x445f46*_0x59fd50+_0x40c17d)/_0x4bf837;_0x712a0=erlangb(_0x2f4848,_0x428b73);_0x502ba5=_0x2f4848/_0x428b73*(0x1-erlangb(_0x2f4848,_0x428b73));}return _0xd13284({'erlangCalls':_0x3b8dbb,'erlangCallToSecond':_0x5392cd/_0x3b8dbb,'erlangAbandonmentRate':_0x712a0,'erlangBusyFactor':_0x502ba5});});};Dialer[_0xd4de('0x1b')][_0xd4de('0x1e9')]=function(_0x11a790,_0x503b64,_0x1d9398,_0x306f6e,_0x9511d6,_0x51c952){loggerPredictive[_0xd4de('0x81')](_0xd4de('0x21c'));loggerPredictive['info']('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',_0x11a790);loggerPredictive[_0xd4de('0x81')](_0xd4de('0x215'),_0x503b64);loggerPredictive['info'](_0xd4de('0x216'),_0x1d9398);loggerPredictive[_0xd4de('0x81')](_0xd4de('0x217'),_0x306f6e);loggerPredictive['info']('Umin:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20',_0x9511d6);loggerPredictive[_0xd4de('0x81')](_0xd4de('0x89'));return new BPromise(function(_0x24baf5,_0x103cff){if(_0x11a790<=0x0||isNaN(_0x11a790)){return _0x103cff(msgResponse('[busyFactor]','Error','m\x20=\x20'+_0x11a790));}if(_0x1d9398<=0x0||isNaN(_0x1d9398)){return _0x103cff(msgResponse(_0xd4de('0x21d'),'Error',_0xd4de('0x21a')+_0x1d9398));}if(_0x306f6e<=0x0||isNaN(_0x306f6e)){return _0x103cff(msgResponse(_0xd4de('0x21d'),_0xd4de('0x46'),_0xd4de('0x21e')+_0x306f6e));}if(_0x503b64<=0x0||isNaN(_0x503b64)){return _0x103cff(msgResponse('[busyFactor]','Error',_0xd4de('0x21f')+_0x503b64));}if(_0x9511d6<=0x0||isNaN(_0x9511d6)){return _0x103cff(msgResponse(_0xd4de('0x21d'),_0xd4de('0x46'),_0xd4de('0x220')+_0x9511d6));}_0x51c952=_0x51c952||0x0;var _0x2192a8=0x1/_0x1d9398;var _0x559fc2=0x0;var _0x19b951=0x0;var _0x2d41c9=0x0;var _0x4ea17a=0x0;for(var _0x4da9d2=0x0;_0x4ea17a<_0x9511d6;_0x4da9d2+=0x1){_0x19b951=_0x4da9d2/_0x503b64;_0x559fc2=(_0x306f6e*_0x19b951+_0x51c952)/_0x2192a8;_0x2d41c9=erlangb(_0x559fc2,_0x11a790);_0x4ea17a=_0x559fc2/_0x11a790*(0x1-erlangb(_0x559fc2,_0x11a790));}return _0x24baf5({'erlangCalls':_0x4da9d2,'erlangCallToSecond':_0x503b64/_0x4da9d2,'erlangAbandonmentRate':_0x2d41c9,'erlangBusyFactor':_0x4ea17a});});};module[_0xd4de('0x221')]=Dialer;
\ No newline at end of file
+var _0x12fd=['isEmpty','-----\x20Stats\x20Predictive\x20---','predictiveIntervalTotalCalls','info','Answered\x20Calls:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','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','AVG\x20Hold\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','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','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','merge','clearing\x20variable\x20start\x20progressive','clearing\x20variable\x20start\x20predictive','handlePredictive','clearing\x20variable\x20handle\x20predictive','preview','ivr','string','\x22%s\x22\x20<%s>','\x22\x22\x20<>','error','inspect','length','originated','[decremetOriginate]\x20object\x20originated\x20is\x20negative','[decremetOriginate]\x20is\x20null\x20or\x20undefined','contactsRescheduled','RESCHEDULED_CONTACTS','[getContactDialer2][ReScheduled]','contacts','AVAILABLE_CONTACTS_FINISHED','[getContactDialer2][Empty]','sendMessageOneNotActive','pTalking','[syncQueueSummary]\x20Campaign\x20Queue:\x20','is\x20not\x20active','IS_DISACTIVED','[syncQueueSummary]\x20Campaign\x20Ivr:\x20','is\x20disactive','statedesc','endtime','prototype','loopClearZombieChannels','[actions]','clearZombieChannels','Action','status','channel','catch','No\x20such\x20channel','[Dialer][checkChannel]','queue','updateOriginated','countReScheduled','[countReScheduled]\x20','checkIsBlackList','resolve','then','checkIsBlackListIvr','[checkIsBlackListIvr]\x20','averageHandleTime','avgHandleTime','[averageHandleTime]\x20','rescheduleContact','[rescheduleContact]\x20','unlockContact','[unlockContact]\x20','getContactDialer','temp','[getContactDialer]\x20','getContactDialerIvr','[getContactDialerIvr]\x20','getVoiceQueueRtPauses','[getVoiceQueueRtPauses]\x20','[moveContactManagedDialer]\x20','createHistory','[createHistory]\x20','undefined','[updateOriginated]\x20object\x20originated\x20is\x20negative','[updateOriginated]\x20is\x20null\x20or\x20undefined','loggerHandler','emptyContact','notFound','pick','ContactId','UserId','VoiceQueueId','CampaignId','[emptyContact][createHistory]','isSuccess','isTrunkReachable','SIP/%s','reachable','unmonitored','moveContactManagedDialer','uniqueid','isNil','amdstatus','exten','xcally-motion-dialer','dialAMDActive','HANGUP','outboundAnswerCallsDay','state','HangupInAMD','AMD','buildObj','amd','saveInDb','[syncHangupInAMD][createHistory]','membername','countmachineretry','countglobal','[syncAgentComplete][createHistory][0]','countbusyretry','countcongestionretry','countnoanswerretry','countnosuchnumberretry','countdropretry','countabandonedretry','countagentrejectretry','dialGlobalMaxRetry','reason19\x20machine....','dialMachineMaxRetry','createStateFinal','reason\x2019\x20machine....','add','dialMachineRetryFrequency','minutes','[rescheduleContact][Machine]','value','[syncHangupInAMDIvr]','MACHINE','Machine','stateGlobal','YYYY-MM-DD\x20HH:mm:ss','ivrAnswerCallsDay','[syncHangupIvr][createHistory]','[syncHangupIvr]','dialQueueProject','AnswerAGI','AGI','Unknow','reason','agent','agiafterat','dialQueueProject2','dialAgiAfterHangupAgent','[syncAgentComplete][createHistory]','answertime','[syncQueueCallerAbandon]\x20[Drop]','droptime','responsetime','dialQueueTimeout','TIMEOUT','dialDropMaxRetry','dialDropRetryFrequency','starttime','calleridname','calleridnum','[syncAgentComplete][createHistory][10]','outboundDropCallsDayCallersExit','Abandoned','dropreason','CALLEREXIT','dialAbandonedMaxRetry','queueCallerAbandonCreateState','dialAbandonedRetryFrequency','ListId','[rescheduleContact][Abandoned]','[syncAgentComplete][createHistory][11]','syncNewExten','roundrobin','actionid','locked','paused','stateinterface','rrmemory','idHopper','queueStatusComplete','[unlockQueueStatus][undefined]','[booked][unlockQueueStatus]','[Catch][Preview][syncQueueStatusComplete]','[unlock][syncQueueStatusComplete]','_rr','unlockRR','[booked][RR]','Agent:\x20','contactAgent-idHopper:\x20','run','[booked][RR][finaly]','[booked][unlock]','[booked][unlock2]','[booked][unlock3]','[unlock3][syncQueueStatusComplete]','TrunkBackup','TRUNK_IS_NOT_REACHABLE','\x20trunk\x20is\x20not\x20reachable','ifTime','checkIfTimeIntervals','Failure','\x20Intervals\x20is\x20null\x20','INTERVAL_IS_EMPTY','\x20Intervals\x20is\x20empty\x20','timezones','TIMEZONE_UNKNOW','\x20Timezone\x20unknow\x20','isArray','push','command','iftime\x20%s,%s','content','indexOf','all','some','INTERVAL_IS_OVERTIME','[ifTime][promiseAll]','\x20Interval\x20is\x20overtime:\x20','Timezone:\x20','checkDialMethod','progressive','handlePower','dialPowerLevel','predictive','booked','Queue','method\x20not\x20recognized','launchHandleIvr','checkIsTrunkReachable','checkIfTime','dialGlobalInterval','dialTimezone','[syncQueueSummary]','syncCampaigns','[syncCampaigns]','\x5cw{0,','pow','replace','match','object','originate','voiceQueue\x20is\x20undefine','Contact','phone','contact\x20is\x20undefine','getCaller','NONE','\x22agi://%s/square,%s\x22','ACTIVE','XMD-AMDINITIALSILENCE','dialAMDInitialSilence','dialAMDGreeting','XMD-AMDAFTERGREETINGSILENCE','dialAMDAfterGreetingSilence','XMD-AMDTOTALANALYSISTIME','XMD-AMDMINWORDLENGTH','XMD-AMDBETWEENWORDSSILENCE','dialAMDBetweenWordsSilence','dialAMDMaximumWordLength','XMD-VOICEQUEUEID','XMD-CAMPAIGNID','tags','createdAt','%s%s','toUpper','dialOriginateCallerIdNumber','dialRandomLastDigitCallerIdNumber','XMD-ORIGINATECALLERIDNAME','originatecalleridname','XMD-ORIGINATECALLERIDNUM','substring','dialCutDigit','SIP/%s/%s%s','trim','from-sip','[originateError]:\x20%s','[originate][error]','Error','getQueue','response','callProgressDetecting','[callProgressDetecting]\x20','checkRetriveMax','dialNoAnswerMaxRetry','[rescheduleContact][NoAnswer]','dialBusyMaxRetry','[rescheduleContact]\x20[Busy]','dialCongestionRetryFrequency','[rescheduleContact][NoSuchNumber]','[rescheduleContact][Drop]','dialAgentRejectMaxRetry','dialAgentRejectRetryFrequency','[rescheduleContact][AgentReject]','[callProgressDetecting]','entity\x20is\x20undefine','evt\x20is\x20undefine','NoSuchNumber','custom:agentnosuchnumber','dialNoSuchNumberMaxRetry','custom:agentnoanswer','noanswer','reason\x203\x20ringing\x20no\x20answer','Busy','busy','[syncAgentComplete][createHistory][5]','reason\x205\x20busy','Congestion','custom:agentcongestion','[syncAgentComplete][createHistory][8]','dialCongestionMaxRetry','reason\x208\x20congestion','reason\x2011\x20abandoned','AgentReject','reason\x2020\x20agentreject','[syncAgentComplete][createHistory][?]','Global','Success','[moveContactManagedDialer][0]','round','[startMethodPredictive][StartProgressive]','check\x20predictive\x20is\x20not\x20undefine','check\x20handlePredictive\x20is\x20not\x20undefine','collection\x20data\x20in\x20progressive\x20at','dialPredictiveInterval','[startMethodPredictive][StartProgressive][Loop]','dropRate','Dropped\x20calls\x20day','dialPredictiveOptimization','[stopMethodPredictive][ReStartProgressive][ExceededDropInterval]','Max\x20Drop\x20','Drop\x20in\x20this\x20interval','started\x20in\x20predictive\x20at','getDataPredictive','startMethodPredictive','Predictive\x20after\x20first\x20interval','recalculate\x20predictive\x20at','Predictive\x20for\x20every\x20interval','switch\x20in\x20progressive\x20because\x20available\x20agents\x20(',')\x20are\x20less\x20than\x20threshold\x20(',')\x20are\x20more\x20than\x20threshold\x20(','dialPredictiveOptimizationPercentage','abandonmentRate','agentBusyFactor','[getDataPredictive]','Unknown\x20Predictive','check\x20failure','outboundQueuePauses','[CatchErlangB]','busyFactor','one\x20call\x20every:','fail\x20to\x20scheduled\x20calls','recallme','[booked][checkContactBlack]','queueStatusComplete:\x20','Queue:\x20','queuestatus','[unlockOriginate][syncQueueStatusComplete]','[booked][checkContactBlack][else]','actionOriginate','dialRecallMeTimeout','Agent','voicePause','dialRecallInQueue','[rescheduleContact][dialRecallInQueue]','RECALLINQUEUE','RecallInQueue','[Originate][HistoryDialRecallInQueue][historyCatch]','RECALLFAILEDTIMEOUT','RecallFailedTimeout','[Originate][HistoryRecallClose][historyCatch]','[Originate][HistoryRecallClose]','Blacklist','[Originate][historyBlacklist]','inBlackList','handleIvr','dialOrderByScheduledAt','[getContactCampaign2][Empty]','RUNNING','ivrTotalCallsDays','[actionOriginate]\x20','checkContactBlack','floor','dialLimitQueue','not_inuse','Contact.phone','tryOriginatePredictive','[actionOriginatePredictive]\x20','[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','Interval:\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','----\x20Agent\x20Busy\x20Factor\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','Umin:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','[busyFactor]','exports','util','lodash','bluebird','uuid','moment','ioredis','../preview/util/util','../../../config/environment/','../../../config/logger','dialer','predictiveCalls','syncQueueSummary','redis','../rpc/cmHopper','../rpc/cmHopperHistory','./final','./queueCallerAbandon','./hangup','XCALLY_IP_AGI','127.0.0.1','enqueue','tail','finally','sequence','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','syncVarSet','syncQueueMember','queuestatuscomplete','syncQueueStatusComplete','loopCampaigns','isUndefined','message','NOT_ACTIVE','\x20NOT\x20Active','Interval','name','\x20INTERVAL_IS_NULL','Intervals','INTERVAL_IS_NULL','stringify','milliseconds','diff','emit','type','outbound','strategy','answered','available','loggedIn','sumBillable','sumDuration','sumHoldTime','talking','total','unmanaged','abandoned','waiting','loggedInDb','dialActive','dialMethod','dialOriginateCallerIdName','dialOriginateTimeout','dialPrefix','outboundAnswerAgiCallsDay','outboundBlacklistCallsDay','outboundBusyCallsDay','outboundCongestionCallsDay','outboundDropCallsDayACS','outboundDropCallsDayTimeout','outboundNoAnswerCallsDay','outboundNoSuchCallsDay','outboundReCallsDay','outboundRejectCallsDay','outboundUnknownCallsDay','predictiveIntervalAnsweredCalls','predictiveIntervalAvgHoldtime','predictiveIntervalAvgTalktime','predictiveIntervalDroppedCallsCallersExit','predictiveIntervalDroppedCallsTimeout','predictiveIntervalErlangCallsDroppedCalls','predictiveIntervalHitRate','predictiveIntervalMultiplicativeFactor','predictiveIntervalPauses','predictiveIntervalAvailable','erlangCalls','erlangCallToSecond','erlangAbandonmentRate','erlangBusyFactor','startPredictive','Trunk','active','callerid','md5','voice:queue:%s','voice_queue:save','format','campaign:ivr:%s','campaign:save'];(function(_0x2b3e98,_0x34ad39){var _0x13b2ac=function(_0xa04977){while(--_0xa04977){_0x2b3e98['push'](_0x2b3e98['shift']());}};_0x13b2ac(++_0x34ad39);}(_0x12fd,0x199));var _0xd12f=function(_0x561039,_0x212e3a){_0x561039=_0x561039-0x0;var _0x40ff55=_0x12fd[_0x561039];return _0x40ff55;};'use strict';var util=require(_0xd12f('0x0'));var _=require(_0xd12f('0x1'));var BPromise=require(_0xd12f('0x2'));var uuid=require(_0xd12f('0x3'));var moment=require(_0xd12f('0x4'));var rr=require('rr');var md5=require('md5');var Redis=require(_0xd12f('0x5'));var ut=require(_0xd12f('0x6'));var config=require(_0xd12f('0x7'));var logger=require(_0xd12f('0x8'))(_0xd12f('0x9'));var loggerBooked=require(_0xd12f('0x8'))('booked');var loggerPredictive=require(_0xd12f('0x8'))('predictive');var loggerPredictiveCalls=require(_0xd12f('0x8'))(_0xd12f('0xa'));var loggerSyncQueueSummary=require(_0xd12f('0x8'))(_0xd12f('0xb'));var ami=require('../ami');config[_0xd12f('0xc')]=_['defaults'](config[_0xd12f('0xc')],{'host':'localhost','port':0x18eb});var io=require('socket.io-emitter')(new Redis(config['redis']));var cmHopper=require(_0xd12f('0xd'));var cmHopperHistory=require(_0xd12f('0xe'));var cmHopperBlack=require('../rpc/cmHopperBlack');var voiceQueueRt=require('../rpc/voiceQueueRt');var Action=require('./action');var History=require('./history');var Final=require(_0xd12f('0xf'));var AgentComplete=require('./agentComplete');var QueueCallerAbandon=require(_0xd12f('0x10'));var Hangup=require(_0xd12f('0x11'));var ipAgi=process['env'][_0xd12f('0x12')]||_0xd12f('0x13');var strategy={'rrmemory':'rrmemory','roundrobin':'roundrobin'};var Sequence=function(){};Sequence['prototype'][_0xd12f('0x14')]=function(_0x44611e){this[_0xd12f('0x15')]=this[_0xd12f('0x15')]?this[_0xd12f('0x15')][_0xd12f('0x16')](_0x44611e):_0x44611e();};function Dialer(_0x35100a,_0x2cec2e){this[_0xd12f('0x17')]=new Sequence();this['preview']=_0x2cec2e;this['voiceQueues']=_0x35100a[_0xd12f('0x18')];this[_0xd12f('0x19')]=_0x35100a['campaigns'];this[_0xd12f('0x1a')]=_0x35100a[_0xd12f('0x1a')];this[_0xd12f('0x1b')]=_0x35100a['trunks'];this['maxNumberOriginate']=config[_0xd12f('0x1c')]||0x2;this[_0xd12f('0x1d')]={};this[_0xd12f('0x1e')]={};this[_0xd12f('0x1f')]={};this[_0xd12f('0x20')]={};this[_0xd12f('0x21')]={};this['startPredictive']={};this[_0xd12f('0x22')]={};this[_0xd12f('0x23')]={};this[_0xd12f('0x24')]={};this[_0xd12f('0x25')]={};ami['on'](_0xd12f('0x26'),this[_0xd12f('0x27')][_0xd12f('0x28')](this));ami['on'](_0xd12f('0x29'),this[_0xd12f('0x2a')][_0xd12f('0x28')](this));ami['on'](_0xd12f('0x2b'),this[_0xd12f('0x2c')][_0xd12f('0x28')](this));ami['on'](_0xd12f('0x2d'),this[_0xd12f('0x2e')][_0xd12f('0x28')](this));ami['on'](_0xd12f('0x2f'),this[_0xd12f('0xb')][_0xd12f('0x28')](this));ami['on'](_0xd12f('0x30'),this[_0xd12f('0x31')][_0xd12f('0x28')](this));ami['on'](_0xd12f('0x32'),this['syncNewExten'][_0xd12f('0x28')](this));ami['on']('varset',this[_0xd12f('0x33')][_0xd12f('0x28')](this));ami['on']('queuemember',this[_0xd12f('0x34')]['bind'](this));ami['on'](_0xd12f('0x35'),this[_0xd12f('0x36')][_0xd12f('0x28')](this));this[_0xd12f('0x37')]();this['loopClearZombieChannels']();}function isNotNull(_0x47b509){return _0x47b509!==null&&!_[_0xd12f('0x38')](_0x47b509);}function checkIsLoggedIn(_0x527b33,_0x1d478d){return function(){if(_0x1d478d<=0x0){_0x527b33['message']='AGENTS_NOT_LOGGED';throw _0x527b33['name']+'\x20AGENTS\x20NOT\x20LOGGED';}};}function isActive(_0x1c0aa8){return _0x1c0aa8;}function checkIsActive(_0x56149b,_0x1ea6e8){return function(){if(!isActive(_0x1ea6e8)){_0x56149b[_0xd12f('0x39')]=_0xd12f('0x3a');throw _0x56149b['name']+_0xd12f('0x3b');}};}function checkInterval(_0x5eccf2){return function(){if(!isNotNull(_0x5eccf2[_0xd12f('0x3c')])){_0x5eccf2['message']='INTERVAL_IS_NULL';throw _0x5eccf2[_0xd12f('0x3d')]+_0xd12f('0x3e');}if(!isNotNull(_0x5eccf2[_0xd12f('0x3c')][_0xd12f('0x3f')])){_0x5eccf2[_0xd12f('0x39')]=_0xd12f('0x40');throw _0x5eccf2[_0xd12f('0x3d')]+_0xd12f('0x3e');}if(!isNotNull(_['isEmpty'](_0x5eccf2['Interval'][_0xd12f('0x3f')]))){_0x5eccf2['message']=_0xd12f('0x40');throw _0x5eccf2[_0xd12f('0x3d')]+'\x20INTERVAL_IS_NULL';}};}function msgResponse(_0xa668d4,_0x108193,_0x2d90de){return{'action':_0xa668d4,'response':_0x108193,'message':_0x2d90de,'stack':_0x2d90de};}function myreject(_0x5ab101){return function(_0x5d9a71){return _0x5ab101(msgResponse('[ifTime][Action]','Error',JSON[_0xd12f('0x41')](_0x5d9a71)));};}function getSeconds(_0x215376,_0x57eb41){var _0x229a79=moment(_0x215376)[_0xd12f('0x42')](0x0);var _0x1a06c5=moment(_0x57eb41)['milliseconds'](0x0);return _0x229a79[_0xd12f('0x43')](_0x1a06c5,'seconds');}function emit(_0x5e9d36,_0x4f05b6,_0x3472a0){io['to'](_0x5e9d36)[_0xd12f('0x44')](_0x4f05b6,_0x3472a0);}function emitVoiceQueueSummary(_0x201557){if(_0x201557[_0xd12f('0x45')]===_0xd12f('0x46')){var _0x2ce514={'id':_0x201557['id'],'name':_0x201557['name'],'strategy':_0x201557[_0xd12f('0x47')],'answered':_0x201557[_0xd12f('0x48')],'available':_0x201557[_0xd12f('0x49')],'loggedIn':_0x201557[_0xd12f('0x4a')],'pTalking':_0x201557['pTalking'],'sumBillable':_0x201557[_0xd12f('0x4b')],'sumDuration':_0x201557[_0xd12f('0x4c')],'sumHoldTime':_0x201557[_0xd12f('0x4d')]||0x0,'talking':_0x201557[_0xd12f('0x4e')],'total':_0x201557[_0xd12f('0x4f')],'type':_0x201557[_0xd12f('0x45')],'unmanaged':_0x201557[_0xd12f('0x50')],'abandoned':_0x201557[_0xd12f('0x51')],'waiting':_0x201557[_0xd12f('0x52')],'loggedInDb':_0x201557[_0xd12f('0x53')],'dialActive':_0x201557[_0xd12f('0x54')],'dialMethod':_0x201557[_0xd12f('0x55')],'dialOriginateCallerIdName':_0x201557[_0xd12f('0x56')],'dialOriginateCallerIdNumber':_0x201557['dialOriginateCallerIdNumber'],'dialOriginateTimeout':_0x201557[_0xd12f('0x57')],'dialPrefix':_0x201557[_0xd12f('0x58')],'outboundAnswerAgiCallsDay':_0x201557[_0xd12f('0x59')],'outboundAnswerCallsDay':_0x201557['outboundAnswerCallsDay'],'outboundBlacklistCallsDay':_0x201557[_0xd12f('0x5a')],'outboundBusyCallsDay':_0x201557[_0xd12f('0x5b')],'outboundCongestionCallsDay':_0x201557[_0xd12f('0x5c')],'outboundDropCallsDayACS':_0x201557[_0xd12f('0x5d')],'outboundDropCallsDayCallersExit':_0x201557['outboundDropCallsDayCallersExit'],'outboundDropCallsDayTimeout':_0x201557[_0xd12f('0x5e')],'outboundNoAnswerCallsDay':_0x201557[_0xd12f('0x5f')],'outboundNoSuchCallsDay':_0x201557[_0xd12f('0x60')],'outboundOriginateFailureCallsDay':_0x201557['outboundOriginateFailureCallsDay'],'outboundReCallsDay':_0x201557[_0xd12f('0x61')],'outboundRejectCallsDay':_0x201557[_0xd12f('0x62')],'outboundUnknownCallsDay':_0x201557[_0xd12f('0x63')],'predictiveIntervalAnsweredCalls':_0x201557[_0xd12f('0x64')],'predictiveIntervalAvgHoldtime':_0x201557[_0xd12f('0x65')],'predictiveIntervalAvgTalktime':_0x201557[_0xd12f('0x66')],'predictiveIntervalDroppedCallsCallersExit':_0x201557[_0xd12f('0x67')],'predictiveIntervalDroppedCallsTimeout':_0x201557[_0xd12f('0x68')],'predictiveIntervalErlangCalls':_0x201557['predictiveIntervalErlangCalls'],'predictiveIntervalErlangCallsDroppedCalls':_0x201557[_0xd12f('0x69')],'predictiveIntervalHitRate':_0x201557[_0xd12f('0x6a')],'predictiveIntervalMultiplicativeFactor':_0x201557[_0xd12f('0x6b')],'predictiveIntervalPauses':_0x201557[_0xd12f('0x6c')],'predictiveIntervalAvailable':_0x201557[_0xd12f('0x6d')],'predictiveIntervalTotalCalls':_0x201557['predictiveIntervalTotalCalls'],'message':_0x201557[_0xd12f('0x39')],'originated':_0x201557['originated'],'erlangCalls':_0x201557[_0xd12f('0x6e')],'erlangCallToSecond':_0x201557[_0xd12f('0x6f')],'erlangAbandonmentRate':_0x201557[_0xd12f('0x70')],'erlangBusyFactor':_0x201557[_0xd12f('0x71')],'startPredictive':_0x201557[_0xd12f('0x72')],'startProgressive':_0x201557[_0xd12f('0x22')]};if(_0x201557[_0xd12f('0x73')]){_0x2ce514[_0xd12f('0x73')]={'id':_0x201557[_0xd12f('0x73')]['id'],'name':_0x201557['Trunk']['name'],'active':_0x201557['Trunk'][_0xd12f('0x74')],'callerid':_0x201557['Trunk'][_0xd12f('0x75')]};}if(_0x201557['Interval']){_0x2ce514[_0xd12f('0x3c')]={'id':_0x201557['Interval']['id'],'name':_0x201557[_0xd12f('0x3c')][_0xd12f('0x3d')]};}var _0x391086=md5(JSON[_0xd12f('0x41')](_0x2ce514));if(_0x201557['md5']!==_0x391086){_0x201557[_0xd12f('0x76')]=_0x391086;emit(util['format'](_0xd12f('0x77'),_0x2ce514[_0xd12f('0x3d')]),_0xd12f('0x78'),_0x2ce514);}}}function emitCampaignSummary(_0x3eb2a4){if(_0x3eb2a4[_0xd12f('0x45')]==='ivr'){emit(util[_0xd12f('0x79')](_0xd12f('0x7a'),_0x3eb2a4[_0xd12f('0x3d')]),_0xd12f('0x7b'),_0x3eb2a4);}}function checkGetDataPredictive(_0x4c633c){if(isNotNull(_0x4c633c)&&!_[_0xd12f('0x7c')](_0x4c633c)){loggerPredictive['info'](_0xd12f('0x7d'));loggerPredictive['info']('Total\x20Calls:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20',_0x4c633c[_0xd12f('0x7e')]);loggerPredictive[_0xd12f('0x7f')](_0xd12f('0x80'),_0x4c633c[_0xd12f('0x64')]);loggerPredictive[_0xd12f('0x7f')](_0xd12f('0x81'),_0x4c633c[_0xd12f('0x68')]);loggerPredictive[_0xd12f('0x7f')](_0xd12f('0x82'),_0x4c633c[_0xd12f('0x67')]);loggerPredictive[_0xd12f('0x7f')](_0xd12f('0x83'),_0x4c633c[_0xd12f('0x65')]);loggerPredictive[_0xd12f('0x7f')]('AVG\x20Talk\x20Time:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20',_0x4c633c[_0xd12f('0x66')]);loggerPredictive[_0xd12f('0x7f')]('---------------------------');if(_0x4c633c['predictiveIntervalTotalCalls']>0x0){if(!_[_0xd12f('0x38')](_0x4c633c['predictiveIntervalAvgTalktime'])&&_0x4c633c[_0xd12f('0x66')]>0x0){return!![];}loggerPredictive[_0xd12f('0x7f')](_0xd12f('0x84'));if(!_[_0xd12f('0x38')](_0x4c633c[_0xd12f('0x65')])&&_0x4c633c[_0xd12f('0x65')]>0x0){return!![];}loggerPredictive[_0xd12f('0x7f')](_0xd12f('0x85'));}else{loggerPredictive[_0xd12f('0x7f')]('Total\x20Calls\x20are\x20not\x20enough\x20for\x20predictive');}}else{loggerPredictive[_0xd12f('0x7f')](_0xd12f('0x86'));}return![];}function mergeDataErlangB(_0x2673a6){return function(_0x58694c){loggerPredictive[_0xd12f('0x7f')]('---------\x20ErlangB\x20---------');loggerPredictive['info'](_0xd12f('0x87'),_0x58694c[_0xd12f('0x6e')]);loggerPredictive[_0xd12f('0x7f')](_0xd12f('0x88'),_0x58694c['erlangCallToSecond']);loggerPredictive[_0xd12f('0x7f')](_0xd12f('0x89'),_0x58694c[_0xd12f('0x70')]);loggerPredictive[_0xd12f('0x7f')](_0xd12f('0x8a'),_0x58694c[_0xd12f('0x71')]);loggerPredictive['info']('Drop\x20Rate:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20',_0x58694c[_0xd12f('0x70')]);loggerPredictive[_0xd12f('0x7f')]('---------------------------');_[_0xd12f('0x8b')](_0x2673a6,_0x58694c);};}function getDiff(_0x2ba60b){var _0x169a30=moment()[_0xd12f('0x42')](0x0);var _0x3b0004=moment(_0x2ba60b)[_0xd12f('0x42')](0x0);return _0x169a30[_0xd12f('0x43')](_0x3b0004,'seconds');}function ifInterval(_0x1df927,_0x5c2d8a){if(_[_0xd12f('0x38')](_0x5c2d8a)){return![];}return getDiff(_0x5c2d8a)<_0x1df927*0x3c;}function freeVariablesPredictive(_0x3772cb){if(isNotNull(_0x3772cb)){if(!_[_0xd12f('0x38')](_0x3772cb[_0xd12f('0x22')])){_0x3772cb[_0xd12f('0x22')]=undefined;loggerPredictive[_0xd12f('0x7f')](_0x3772cb['name'],_0xd12f('0x8c'));}if(!_[_0xd12f('0x38')](_0x3772cb[_0xd12f('0x72')])){_0x3772cb[_0xd12f('0x72')]=undefined;loggerPredictive[_0xd12f('0x7f')](_0x3772cb['name'],_0xd12f('0x8d'));}if(!_[_0xd12f('0x38')](_0x3772cb[_0xd12f('0x8e')])){clearInterval(_0x3772cb[_0xd12f('0x8e')]);_0x3772cb[_0xd12f('0x8e')]=undefined;loggerPredictive['info'](_0x3772cb[_0xd12f('0x3d')],_0xd12f('0x8f'));}}}function erlangb(_0x1461e1,_0x19cbbe){if(_0x19cbbe===0x0){return 0x0;}var _0x4f19b3=0x1;for(var _0x5195bc=0x1;_0x5195bc<=_0x19cbbe;_0x5195bc+=0x1){_0x4f19b3=0x1+_0x4f19b3*_0x5195bc/_0x1461e1;}return 0x1/_0x4f19b3;}function isVoiceQueueOutbound(_0x13904f){return _0x13904f===_0xd12f('0x46');}function isNotPreview(_0x31b4b7){return _0x31b4b7!==_0xd12f('0x90');}function isCampaignIvr(_0x35a8e1){return _0x35a8e1===_0xd12f('0x91');}function getCallerId(_0x26f3dd,_0x2602b7,_0x1d4457){if(!_[_0xd12f('0x38')](_0x1d4457)&&typeof _0x1d4457==='string'&&!_['isEmpty'](_0x1d4457)){if(!_[_0xd12f('0x38')](_0x2602b7)&&typeof _0x2602b7===_0xd12f('0x92')&&!_[_0xd12f('0x7c')](_0x2602b7)){return util[_0xd12f('0x79')](_0xd12f('0x93'),_0x2602b7,_0x1d4457);}return util[_0xd12f('0x79')]('\x22%s\x22\x20<%s>',_0x1d4457,_0x1d4457);}if(!_[_0xd12f('0x38')](_0x26f3dd)&&typeof _0x26f3dd==='string'&&!_[_0xd12f('0x7c')](_0x26f3dd)){return _0x26f3dd;}return _0xd12f('0x94');}function loggerCatchQueueSummary(_0x1ea8c6,_0x314ebf){return function(_0x50ee98){freeVariablesPredictive(_0x314ebf);emitVoiceQueueSummary(_0x314ebf);emitCampaignSummary(_0x314ebf);loggerSyncQueueSummary[_0xd12f('0x95')](_0x1ea8c6,util['inspect'](_0x50ee98,{'showHidden':![],'depth':null}));};}function loggerCatchPredictive(_0x4fb72f,_0x582f5d){return function(_0x1e68d0){loggerPredictive[_0xd12f('0x95')](_0x582f5d[_0xd12f('0x3d')],_0x4fb72f);loggerPredictive[_0xd12f('0x95')](_0x1e68d0['stack']);freeVariablesPredictive(_0x582f5d);};}function loggerCatch(_0x5cfd2b){return function(_0x16400d){logger[_0xd12f('0x95')](_0x5cfd2b,util[_0xd12f('0x96')](_0x16400d,{'showHidden':![],'depth':null}));};}function checkContactEmpty(_0x30deb7){return _0x30deb7&&!_[_0xd12f('0x38')](_0x30deb7)&&_0x30deb7[_0xd12f('0x97')]>0x0;}function decremetOriginate(_0x153be5){if(!_[_0xd12f('0x38')](_0x153be5)&&_0x153be5!==null){if(typeof _0x153be5[_0xd12f('0x98')]!=='undefined'){if(_0x153be5[_0xd12f('0x98')]>0x0){_0x153be5[_0xd12f('0x98')]-=0x1;}else{logger[_0xd12f('0x95')](_0xd12f('0x99'));}}}else{logger['error'](_0xd12f('0x9a'));}}function checkContactLowerLimitOriginate(_0x5b1527,_0xc51b48,_0x227fbc){if(_0xc51b48>_0x227fbc){for(var _0x3b46a4=0x0;_0x3b46a4<_0xc51b48-_0x227fbc;_0x3b46a4+=0x1){decremetOriginate(_0x5b1527);}}}function loggerGetContactDialer(_0x2b4f76,_0x2e8bbc,_0x20e0e5){return function(_0x591ba4){checkContactLowerLimitOriginate(_0x2e8bbc,_0x20e0e5,0x0);logger[_0xd12f('0x95')](_0x2b4f76,util[_0xd12f('0x96')](_0x591ba4,{'showHidden':![],'depth':null}));};}function sendMessageReschedule(_0x35e86d){return function(_0x475653){if(isNotNull(_0x475653)&&isNotNull(_0x475653[0x0])){if(_0x475653[0x0][_0xd12f('0x9b')]>0x0){_0x35e86d[_0xd12f('0x39')]=_0xd12f('0x9c');logger['info'](_0xd12f('0x9d')+_0x35e86d['name'],_0x475653[0x0]['contactsRescheduled'],_0xd12f('0x9e'));}else{_0x35e86d['message']=_0xd12f('0x9f');logger['info'](_0xd12f('0xa0')+_0x35e86d[_0xd12f('0x3d')]);}}};}function notSendMessagesQueue(_0x2ab153){if(_0x2ab153[_0xd12f('0xa1')]){freeVariablesPredictive(_0x2ab153);if(_0x2ab153[_0xd12f('0x98')]===0x0&&_0x2ab153[_0xd12f('0x4e')]===0x0&&_0x2ab153[_0xd12f('0x52')]===0x0&&(_0x2ab153[_0xd12f('0xa2')]||0x0)===0x0){_0x2ab153['sendMessageOneNotActive']=![];_0x2ab153[_0xd12f('0x49')]=0x0;_0x2ab153[_0xd12f('0x39')]=_0xd12f('0x3a');loggerSyncQueueSummary[_0xd12f('0x95')](_0xd12f('0xa3'),_0x2ab153[_0xd12f('0x3d')],_0xd12f('0xa4'));}else{_0x2ab153[_0xd12f('0x39')]=_0xd12f('0xa5');loggerSyncQueueSummary[_0xd12f('0x95')](_0xd12f('0xa3'),_0x2ab153[_0xd12f('0x3d')],'is\x20disactive');}emitVoiceQueueSummary(_0x2ab153);}}function notSendMessagesCampaign(_0x583fd9){if(_0x583fd9[_0xd12f('0xa1')]){if(_0x583fd9[_0xd12f('0x98')]===0x0){_0x583fd9['sendMessageOneNotActive']=![];_0x583fd9[_0xd12f('0x39')]=_0xd12f('0x3a');loggerSyncQueueSummary[_0xd12f('0x95')](_0xd12f('0xa6'),_0x583fd9['name'],_0xd12f('0xa4'));}else{_0x583fd9[_0xd12f('0x39')]='IS_DISACTIVED';loggerSyncQueueSummary[_0xd12f('0x95')](_0xd12f('0xa6'),_0x583fd9[_0xd12f('0x3d')],_0xd12f('0xa7'));}emitCampaignSummary(_0x583fd9);}}function createObjHistory(_0x383c94,_0x442031,_0x5ef1d7,_0x2c7889,_0x5b4ecb){_0x383c94[_0xd12f('0x39')]=_0x5ef1d7;var _0x50217f=new Action(_0x383c94,_0x442031);var _0x3016e5=new History(_0x50217f);_0x3016e5['state']=_0x2c7889;_0x3016e5[_0xd12f('0xa8')]=_0x5b4ecb;_0x3016e5[_0xd12f('0xa9')]=_0x50217f['starttime'];return _0x3016e5;}Dialer[_0xd12f('0xaa')][_0xd12f('0xab')]=function(){var _0x24cec7=this;setInterval(function(){_0x24cec7['clearZombieChannels'](_0x24cec7['uniqueId'],'[uniqueid]');_0x24cec7['clearZombieChannels'](_0x24cec7['actions'],_0xd12f('0xac'));},0x32c8);};Dialer[_0xd12f('0xaa')][_0xd12f('0xad')]=function(_0x586635,_0x3ce173){var _0x2cef50=this;for(var _0x1bbb68 in _0x586635){if(typeof _0x586635[_0x1bbb68]!=='undefined'){this[_0xd12f('0x17')][_0xd12f('0x14')](function(){if(!_['isNil'](_0x586635[_0x1bbb68])){return ami[_0xd12f('0xae')]({'action':_0xd12f('0xaf'),'channel':_0x586635[_0x1bbb68][_0xd12f('0xb0')]})[_0xd12f('0xb1')](function(_0x805a33){if(_0x805a33[_0xd12f('0x39')]===_0xd12f('0xb2')){setTimeout(function(){if(_0x586635[_0x1bbb68]&&_0x586635[_0x1bbb68][_0xd12f('0x45')]!==_0xd12f('0x91')){_0x2cef50['updateOriginated'](_0x2cef50['voiceQueues'][_0x586635[_0x1bbb68]['queue']]);logger['error'](_0xd12f('0xb3'),_0x3ce173,_0x1bbb68,_0x586635[_0x1bbb68][_0xd12f('0xb4')]);delete _0x586635[_0x1bbb68];}if(_0x586635[_0x1bbb68]&&_0x586635[_0x1bbb68]['type']===_0xd12f('0x91')){_0x2cef50[_0xd12f('0xb5')](_0x2cef50[_0xd12f('0x19')][_0x586635[_0x1bbb68]['queue']]);logger[_0xd12f('0x95')]('[Dialer][checkChannel][ivr]',_0x3ce173,_0x1bbb68,_0x586635[_0x1bbb68][_0xd12f('0xb4')]);delete _0x586635[_0x1bbb68];}},0x2328);}});}});}}};Dialer['prototype'][_0xd12f('0xb6')]=function(_0x2d5b1e){return BPromise['resolve']()['then'](cmHopper[_0xd12f('0xb6')](_0x2d5b1e))['catch'](loggerCatch(_0xd12f('0xb7')));};Dialer['prototype'][_0xd12f('0xb8')]=function(_0x4726b3){return BPromise[_0xd12f('0xb9')]()[_0xd12f('0xba')](cmHopperBlack[_0xd12f('0xb8')](_0x4726b3))[_0xd12f('0xb1')](loggerCatch('[checkIsBlackList]\x20'));};Dialer[_0xd12f('0xaa')][_0xd12f('0xbb')]=function(_0x4d936e){return BPromise[_0xd12f('0xb9')]()[_0xd12f('0xba')](cmHopperBlack[_0xd12f('0xbb')](_0x4d936e))[_0xd12f('0xb1')](loggerCatch(_0xd12f('0xbc')));};Dialer[_0xd12f('0xaa')][_0xd12f('0xbd')]=function(_0x3f87b8){return BPromise['resolve']()[_0xd12f('0xba')](cmHopperHistory[_0xd12f('0xbe')](_0x3f87b8))[_0xd12f('0xb1')](loggerCatch(_0xd12f('0xbf')));};Dialer[_0xd12f('0xaa')][_0xd12f('0xc0')]=function(_0x1b25b0){return BPromise[_0xd12f('0xb9')]()[_0xd12f('0xba')](cmHopper[_0xd12f('0xc0')](_0x1b25b0))[_0xd12f('0xb1')](loggerCatch(_0xd12f('0xc1')));};Dialer[_0xd12f('0xaa')]['unlockContact']=function(_0x3d7343,_0x567adb,_0x16fb10){return BPromise[_0xd12f('0xb9')]()[_0xd12f('0xba')](cmHopper[_0xd12f('0xc2')](_0x3d7343,_0x567adb,_0x16fb10))[_0xd12f('0xb1')](loggerCatch(_0xd12f('0xc3')));};Dialer[_0xd12f('0xaa')][_0xd12f('0xc4')]=function(_0x1a3a6e,_0x53c114,_0x3db1ea,_0x269229,_0x39379f){return BPromise[_0xd12f('0xb9')]()[_0xd12f('0xba')](cmHopper[_0xd12f('0xc4')](_0x1a3a6e,_0x53c114,_0x3db1ea,_0x269229))[_0xd12f('0xb1')](function(_0x585ee5){_0x39379f[_0xd12f('0xc5')]-=_0x3db1ea;_0x39379f['temp']=_0x39379f[_0xd12f('0xc5')]>0x0?_0x39379f['temp']:0x0;loggerCatch(_0xd12f('0xc6'))(_0x585ee5);});};Dialer['prototype'][_0xd12f('0xc7')]=function(_0x78a7d9,_0x4ddebb,_0x339edd,_0x282c33){return BPromise[_0xd12f('0xb9')]()['then'](cmHopper[_0xd12f('0xc7')](_0x78a7d9,_0x4ddebb,_0x339edd))[_0xd12f('0xb1')](function(_0xdac576){_0x282c33[_0xd12f('0xc5')]-=_0x4ddebb;_0x282c33[_0xd12f('0xc5')]=_0x282c33[_0xd12f('0xc5')]>0x0?_0x282c33[_0xd12f('0xc5')]:0x0;loggerCatch(_0xd12f('0xc8'))(_0xdac576);});};Dialer[_0xd12f('0xaa')][_0xd12f('0xc9')]=function(_0x39d737){return BPromise[_0xd12f('0xb9')]()[_0xd12f('0xba')](voiceQueueRt[_0xd12f('0xc9')](_0x39d737))['catch'](loggerCatch(_0xd12f('0xca')));};Dialer[_0xd12f('0xaa')]['moveContactManagedDialer']=function(_0x8ae5d6){return BPromise[_0xd12f('0xb9')]()[_0xd12f('0xba')](cmHopper['moveContactManagedDialer'](_0x8ae5d6))[_0xd12f('0xb1')](loggerCatch(_0xd12f('0xcb')));};Dialer[_0xd12f('0xaa')][_0xd12f('0xcc')]=function(_0x244c16){return BPromise[_0xd12f('0xb9')]()[_0xd12f('0xba')](cmHopperHistory[_0xd12f('0xcc')](_0x244c16))['catch'](loggerCatch(_0xd12f('0xcd')));};Dialer[_0xd12f('0xaa')][_0xd12f('0xb5')]=function(_0x58bbf5){if(!_['isUndefined'](_0x58bbf5)&&_0x58bbf5!==null){if(typeof _0x58bbf5[_0xd12f('0x98')]!==_0xd12f('0xce')){if(_0x58bbf5[_0xd12f('0x98')]>0x0){_0x58bbf5[_0xd12f('0x98')]-=0x1;}else{logger['error'](_0xd12f('0xcf'));}}}else{logger[_0xd12f('0x95')](_0xd12f('0xd0'));}};Dialer[_0xd12f('0xaa')][_0xd12f('0xd1')]=function(_0x13a0d6,_0x151e18){var _0x46540e=this;return function(_0x55418c){_0x46540e[_0xd12f('0xb5')](_0x151e18);logger[_0xd12f('0x95')](_0x13a0d6,util[_0xd12f('0x96')](_0x55418c,{'showHidden':![],'depth':null}));};};Dialer[_0xd12f('0xaa')][_0xd12f('0xd2')]=function(_0x53fe71,_0x55b79f,_0x30e147){var _0x1bed69={'state':0x19,'statedesc':_0xd12f('0xd3')};this[_0xd12f('0xb5')](_0x55b79f);this['saveInDb'](_[_0xd12f('0x8b')](_0x1bed69,_[_0xd12f('0xd4')](_0x30e147,[_0xd12f('0xd5'),'ListId',_0xd12f('0xd6'),_0xd12f('0xd7'),_0xd12f('0xd8')])),_0xd12f('0xd9'),'[emptyContact]');logger[_0xd12f('0x95')](_0x53fe71);};Dialer[_0xd12f('0xaa')][_0xd12f('0xda')]=function(_0x3b3f8a){return _0x3b3f8a==='Success';};Dialer[_0xd12f('0xaa')][_0xd12f('0xdb')]=function(_0x5d3fe3){return!_[_0xd12f('0x38')](_0x5d3fe3)&&_0x5d3fe3&&!_['isUndefined'](_0x5d3fe3[_0xd12f('0x3d')])&&!_[_0xd12f('0x38')](_0x5d3fe3[_0xd12f('0x74')])&&_0x5d3fe3[_0xd12f('0x74')]&&(this['trunks'][util[_0xd12f('0x79')](_0xd12f('0xdc'),_0x5d3fe3[_0xd12f('0x3d')])][_0xd12f('0xaf')]===_0xd12f('0xdd')||this[_0xd12f('0x1b')][util[_0xd12f('0x79')]('SIP/%s',_0x5d3fe3[_0xd12f('0x3d')])][_0xd12f('0xaf')]===_0xd12f('0xde'));};Dialer[_0xd12f('0xaa')]['saveInDb']=function(_0x424867,_0x144f82,_0x362758){this[_0xd12f('0xcc')](_0x424867)['catch'](loggerCatch(_0x144f82));this[_0xd12f('0xdf')](_0x424867)['catch'](loggerCatch(_0x362758));};Dialer[_0xd12f('0xaa')]['syncVarSet']=function(_0x5000aa){var _0x54a45e=this[_0xd12f('0x20')][_0x5000aa[_0xd12f('0xe0')]];var _0x2fdff9;if(!_[_0xd12f('0xe1')](_0x5000aa)&&!_[_0xd12f('0xe1')](_0x5000aa['variable'])&&!_['isNil'](_0x5000aa['variable'][_0xd12f('0xe2')])&&_0x5000aa[_0xd12f('0xe3')]===_0xd12f('0xe4')&&_0x54a45e){if(_0x54a45e[_0xd12f('0x45')]!==_0xd12f('0x91')&&this['voiceQueues'][_0x54a45e['queue']][_0xd12f('0xe5')]&&_0x5000aa['value']===_0xd12f('0xe6')){delete this[_0xd12f('0x20')][_0x5000aa[_0xd12f('0xe0')]];this[_0xd12f('0xb5')](this[_0xd12f('0x18')][_0x54a45e[_0xd12f('0xb4')]]);this[_0xd12f('0x18')][_0x54a45e[_0xd12f('0xb4')]][_0xd12f('0xe7')]+=0x1;this['voiceQueues'][_0x54a45e[_0xd12f('0xb4')]][_0xd12f('0x59')]+=0x1;_0x2fdff9=new Hangup(_0x54a45e,_0x5000aa);_0x2fdff9[_0xd12f('0xe8')]=0x12;_0x2fdff9[_0xd12f('0xa8')]=_0xd12f('0xe9');_0x2fdff9['membername']=_0xd12f('0xea');ami[_0xd12f('0x44')]('custom:amd',ut[_0xd12f('0xeb')](_0x2fdff9,_0xd12f('0xec')));this[_0xd12f('0xed')](_0x2fdff9,_0xd12f('0xee'),'[syncHangupInAMD]');}if(_0x54a45e[_0xd12f('0x45')]!==_0xd12f('0x91')&&this[_0xd12f('0x18')][_0x54a45e[_0xd12f('0xb4')]][_0xd12f('0xe5')]&&_0x5000aa['value']==='MACHINE'){var _0x311cc9=this;return new BPromise(function(_0x2f69ec,_0x48d71f){delete _0x311cc9[_0xd12f('0x20')][_0x5000aa[_0xd12f('0xe0')]];_0x311cc9['updateOriginated'](_0x311cc9[_0xd12f('0x18')][_0x54a45e[_0xd12f('0xb4')]]);_0x311cc9[_0xd12f('0x18')][_0x54a45e['queue']][_0xd12f('0xe7')]+=0x1;_0x311cc9[_0xd12f('0x18')][_0x54a45e['queue']]['outboundAnswerAgiCallsDay']+=0x1;var _0x27361c=_0x311cc9[_0xd12f('0x18')][_0x54a45e['queue']];var _0x581495=new Hangup(_0x54a45e,_0x5000aa);_0x581495['state']=0x13;_0x581495['statedesc']='Machine';_0x581495[_0xd12f('0xef')]=_0xd12f('0xea');_0x581495[_0xd12f('0xf0')]+=0x1;_0x581495[_0xd12f('0xf1')]+=0x1;_0x581495[_0xd12f('0xec')]=!![];ami[_0xd12f('0x44')]('custom:amd',ut['buildObj'](_0x581495,_0xd12f('0xec')));_0x311cc9['createHistory'](_0x581495)[_0xd12f('0xb1')](loggerCatch(_0xd12f('0xf2')));if(_0x581495[_0xd12f('0xf3')]+_0x581495[_0xd12f('0xf4')]+_0x581495[_0xd12f('0xf5')]+_0x581495[_0xd12f('0xf6')]+_0x581495[_0xd12f('0xf7')]+_0x581495[_0xd12f('0xf8')]+_0x581495[_0xd12f('0xf0')]+_0x581495[_0xd12f('0xf9')]>=_0x27361c[_0xd12f('0xfa')]){_0x311cc9['stateGlobal'](_0x581495,_0x2f69ec,_0x48d71f,_0xd12f('0xfb'));}else{if(_0x581495[_0xd12f('0xf0')]>=_0x27361c[_0xd12f('0xfc')]){_0x311cc9[_0xd12f('0xfd')](_0x581495,_0x2f69ec,_0x48d71f,_0xd12f('0xfe'));}else{_0x311cc9[_0xd12f('0xc0')]({'active':![],'countmachineretry':_0x581495[_0xd12f('0xf0')],'scheduledat':moment()[_0xd12f('0xff')](_0x27361c[_0xd12f('0x100')],_0xd12f('0x101'))[_0xd12f('0x79')]('YYYY-MM-DD\x20HH:mm:ss'),'ContactId':_0x581495[_0xd12f('0xd5')],'ListId':_0x581495['ListId'],'VoiceQueueId':_0x581495['VoiceQueueId']||undefined,'CampaignId':_0x581495[_0xd12f('0xd8')]||undefined})[_0xd12f('0xb1')](loggerCatch(_0xd12f('0x102')));_0x2f69ec({'reschedule':0x1});}}});}if(_0x54a45e[_0xd12f('0x45')]==='ivr'&&this['campaigns'][_0x54a45e[_0xd12f('0xb4')]][_0xd12f('0xe5')]&&_0x5000aa[_0xd12f('0x103')]===_0xd12f('0xe6')){delete this[_0xd12f('0x20')][_0x5000aa[_0xd12f('0xe0')]];this[_0xd12f('0xb5')](this[_0xd12f('0x19')][_0x54a45e[_0xd12f('0xb4')]]);_0x2fdff9=new Hangup(_0x54a45e,_0x5000aa);_0x2fdff9['state']=0x12;_0x2fdff9[_0xd12f('0xa8')]=_0xd12f('0xe9');_0x2fdff9['membername']=_0xd12f('0xea');ami[_0xd12f('0x44')]('custom:amd',ut['buildObj'](_0x2fdff9,_0xd12f('0xec')));this['saveInDb'](_0x2fdff9,'[syncHangupInAMDIvr][createHistory]',_0xd12f('0x104'));}if(_0x54a45e[_0xd12f('0x45')]==='ivr'&&this['campaigns'][_0x54a45e['queue']][_0xd12f('0xe5')]&&_0x5000aa[_0xd12f('0x103')]===_0xd12f('0x105')){var _0x311cc9=this;return new BPromise(function(_0x20feb7,_0xc31f10){delete _0x311cc9['uniqueId'][_0x5000aa[_0xd12f('0xe0')]];_0x311cc9[_0xd12f('0xb5')](_0x311cc9[_0xd12f('0x19')][_0x54a45e[_0xd12f('0xb4')]]);_0x311cc9['campaigns'][_0x54a45e[_0xd12f('0xb4')]][_0xd12f('0xe7')]+=0x1;_0x311cc9[_0xd12f('0x19')][_0x54a45e['queue']][_0xd12f('0x59')]+=0x1;var _0x27cc78=_0x311cc9[_0xd12f('0x19')][_0x54a45e[_0xd12f('0xb4')]];var _0x4728df=new Hangup(_0x54a45e,_0x5000aa);_0x4728df[_0xd12f('0xe8')]=0x13;_0x4728df[_0xd12f('0xa8')]=_0xd12f('0x106');_0x4728df[_0xd12f('0xef')]=_0xd12f('0xea');_0x4728df[_0xd12f('0xf0')]+=0x1;_0x4728df['countglobal']+=0x1;_0x4728df[_0xd12f('0xec')]=!![];ami[_0xd12f('0x44')]('custom:amd',ut[_0xd12f('0xeb')](_0x4728df,_0xd12f('0xec')));_0x311cc9[_0xd12f('0xcc')](_0x4728df)[_0xd12f('0xb1')](loggerCatch('[syncAgentComplete][createHistory][0]'));if(_0x4728df[_0xd12f('0xf3')]+_0x4728df[_0xd12f('0xf4')]+_0x4728df[_0xd12f('0xf5')]+_0x4728df[_0xd12f('0xf6')]+_0x4728df[_0xd12f('0xf7')]+_0x4728df[_0xd12f('0xf8')]+_0x4728df[_0xd12f('0xf0')]+_0x4728df[_0xd12f('0xf9')]>=_0x27cc78[_0xd12f('0xfa')]){_0x311cc9[_0xd12f('0x107')](_0x4728df,_0x20feb7,_0xc31f10,_0xd12f('0xfb'));}else{if(_0x4728df[_0xd12f('0xf0')]>=_0x27cc78['dialMachineMaxRetry']){_0x311cc9[_0xd12f('0xfd')](_0x4728df,_0x20feb7,_0xc31f10,'reason\x2019\x20machine....');}else{_0x311cc9[_0xd12f('0xc0')]({'active':![],'countmachineretry':_0x4728df[_0xd12f('0xf0')],'scheduledat':moment()[_0xd12f('0xff')](_0x27cc78[_0xd12f('0x100')],'minutes')[_0xd12f('0x79')](_0xd12f('0x108')),'ContactId':_0x4728df['ContactId'],'ListId':_0x4728df['ListId'],'VoiceQueueId':_0x4728df[_0xd12f('0xd7')]||undefined,'CampaignId':_0x4728df[_0xd12f('0xd8')]||undefined})[_0xd12f('0xb1')](loggerCatch(_0xd12f('0x102')));_0x20feb7({'reschedule':0x1});}}});}}};Dialer['prototype'][_0xd12f('0x31')]=function(_0x4bcb1e){var _0x1b6ee8=this[_0xd12f('0x20')][_0x4bcb1e[_0xd12f('0xe0')]];var _0x5f03f7=this;var _0x49c005;if(_0x1b6ee8&&_0x1b6ee8[_0xd12f('0x45')]===_0xd12f('0x91')){delete this[_0xd12f('0x20')][_0x4bcb1e['uniqueid']];this[_0xd12f('0xb5')](this['campaigns'][_0x1b6ee8[_0xd12f('0xb4')]]);this[_0xd12f('0x19')][_0x1b6ee8[_0xd12f('0xb4')]][_0xd12f('0x109')]+=0x1;_0x49c005=new Hangup(_0x1b6ee8,_0x4bcb1e);this[_0xd12f('0xcc')](_0x49c005)['catch'](loggerCatch(_0xd12f('0x10a')));this[_0xd12f('0xdf')](_0x49c005)[_0xd12f('0xb1')](loggerCatch(_0xd12f('0x10b')));}if(_0x1b6ee8&&_0x1b6ee8[_0xd12f('0x45')]!==_0xd12f('0x91')&&isNotNull(this[_0xd12f('0x18')][_0x1b6ee8['queue']][_0xd12f('0x10c')])){delete this[_0xd12f('0x20')][_0x4bcb1e['uniqueid']];this[_0xd12f('0xb5')](this[_0xd12f('0x18')][_0x1b6ee8[_0xd12f('0xb4')]]);this[_0xd12f('0x18')][_0x1b6ee8[_0xd12f('0xb4')]]['outboundAnswerCallsDay']+=0x1;this[_0xd12f('0x18')][_0x1b6ee8[_0xd12f('0xb4')]][_0xd12f('0x59')]+=0x1;_0x49c005=new Hangup(_0x1b6ee8,_0x4bcb1e);_0x49c005[_0xd12f('0xe8')]=0x10;_0x49c005['statedesc']=_0xd12f('0x10d');_0x49c005[_0xd12f('0xef')]=_0xd12f('0x10e');this[_0xd12f('0xcc')](_0x49c005)[_0xd12f('0xb1')](loggerCatch('[syncHangupIvr][createHistory]'));this['moveContactManagedDialer'](_0x49c005)['catch'](loggerCatch(_0xd12f('0x10b')));}if(_0x1b6ee8&&_0x1b6ee8[_0xd12f('0x45')]!==_0xd12f('0x91')&&!isNotNull(this[_0xd12f('0x18')][_0x1b6ee8[_0xd12f('0xb4')]]['dialQueueProject'])){delete this[_0xd12f('0x20')][_0x4bcb1e[_0xd12f('0xe0')]];this['updateOriginated'](this[_0xd12f('0x18')][_0x1b6ee8[_0xd12f('0xb4')]]);this[_0xd12f('0x18')][_0x1b6ee8['queue']]['outboundUnknownCallsDay']+=0x1;_0x49c005=new Hangup(_0x1b6ee8,_0x4bcb1e);_0x49c005[_0xd12f('0xe8')]=0xc;_0x49c005[_0xd12f('0xa8')]=_0x4bcb1e['cause-txt'];_0x49c005[_0xd12f('0xef')]=_0xd12f('0x10f');this[_0xd12f('0xcc')](_0x49c005)[_0xd12f('0xb1')](loggerCatch(_0xd12f('0x10a')));this[_0xd12f('0xdf')](_0x49c005)[_0xd12f('0xb1')](loggerCatch('[syncHangupIvr]'));}};Dialer[_0xd12f('0xaa')][_0xd12f('0x2e')]=function(_0x50153b){var _0x42620b=this['uniqueId'][_0x50153b[_0xd12f('0xe0')]];var _0x5d7328=this;if(this['voiceQueues'][_0x50153b[_0xd12f('0xb4')]]){if(_0x42620b&&_0x42620b[_0xd12f('0x45')]!==_0xd12f('0x91')){delete this[_0xd12f('0x20')][_0x50153b[_0xd12f('0xe0')]];this[_0xd12f('0x18')][_0x50153b[_0xd12f('0xb4')]][_0xd12f('0xe7')]+=0x1;var _0x163046=new AgentComplete(_0x42620b,_0x50153b);if(_0x50153b[_0xd12f('0x110')]===_0xd12f('0x111')){_0x163046[_0xd12f('0x112')]=this[_0xd12f('0x18')][_0x50153b[_0xd12f('0xb4')]][_0xd12f('0x113')]&&this['voiceQueues'][_0x50153b['queue']][_0xd12f('0x114')]?moment()[_0xd12f('0x79')]('YYYY-MM-DD\x20HH:mm:ss'):undefined;}this['createHistory'](_0x163046)[_0xd12f('0xb1')](loggerCatch(_0xd12f('0x115')));this['moveContactManagedDialer'](_0x163046)[_0xd12f('0xb1')](loggerCatch('[syncAgentComplete]'));}}};Dialer[_0xd12f('0xaa')][_0xd12f('0x27')]=function(_0x5c7276){if(this[_0xd12f('0x18')][_0x5c7276['queue']]){if(this['uniqueId'][_0x5c7276[_0xd12f('0xe0')]]&&this[_0xd12f('0x20')][_0x5c7276[_0xd12f('0xe0')]][_0xd12f('0x45')]!=='ivr'){this[_0xd12f('0xb5')](this[_0xd12f('0x18')][_0x5c7276[_0xd12f('0xb4')]]);this[_0xd12f('0x20')][_0x5c7276[_0xd12f('0xe0')]][_0xd12f('0x116')]=moment()[_0xd12f('0x79')](_0xd12f('0x108'));}}};Dialer[_0xd12f('0xaa')]['queueCallerAbandonCreateState']=function(_0x216ea3){this['createHistory'](_0x216ea3)[_0xd12f('0xb1')](loggerCatch('[syncAgentComplete][createHistory]'));this['moveContactManagedDialer'](_0x216ea3)['catch'](loggerCatch(_0xd12f('0x117')));};Dialer['prototype']['syncQueueCallerAbandon']=function(_0x2f7128){var _0x2614c3=this[_0xd12f('0x20')][_0x2f7128[_0xd12f('0xe0')]];var _0x20f3c8=this;if(this['voiceQueues'][_0x2f7128[_0xd12f('0xb4')]]){if(_0x2614c3&&_0x2614c3['type']!==_0xd12f('0x91')){delete this[_0xd12f('0x20')][_0x2f7128[_0xd12f('0xe0')]];this[_0xd12f('0xb5')](this[_0xd12f('0x18')][_0x2f7128[_0xd12f('0xb4')]]);_0x2614c3[_0xd12f('0x118')]=moment()[_0xd12f('0x79')](_0xd12f('0x108'));var _0x499e66=new QueueCallerAbandon(_0x2614c3,_0x2f7128);if(getSeconds(_0x2614c3[_0xd12f('0x118')],_0x2614c3[_0xd12f('0x119')])>=_0x2614c3[_0xd12f('0x11a')]){this[_0xd12f('0x18')][_0x2f7128[_0xd12f('0xb4')]][_0xd12f('0x68')]+=0x1;this[_0xd12f('0x18')][_0x2f7128[_0xd12f('0xb4')]][_0xd12f('0x5e')]+=0x1;this[_0xd12f('0x18')][_0x2f7128[_0xd12f('0xb4')]][_0xd12f('0x69')]+=0x1;_0x499e66[_0xd12f('0xe8')]=0xa;_0x499e66[_0xd12f('0xa8')]='Drop';_0x499e66['dropreason']=_0xd12f('0x11b');_0x499e66['agiafterat']=this[_0xd12f('0x18')][_0x2f7128[_0xd12f('0xb4')]][_0xd12f('0x113')]?moment()['format'](_0xd12f('0x108')):undefined;_0x499e66[_0xd12f('0xf7')]+=0x1;_0x499e66[_0xd12f('0xf1')]+=0x1;if(_0x499e66[_0xd12f('0xf7')]>=this['voiceQueues'][_0x2f7128['queue']][_0xd12f('0x11c')]){this['queueCallerAbandonCreateState'](_0x499e66);}else{this[_0xd12f('0xc0')]({'active':![],'countdropretry':_0x499e66[_0xd12f('0xf7')],'scheduledat':moment()[_0xd12f('0xff')](this[_0xd12f('0x18')][_0x2f7128['queue']][_0xd12f('0x11d')],_0xd12f('0x101'))[_0xd12f('0x79')](_0xd12f('0x108')),'ContactId':_0x2614c3[_0xd12f('0xd5')],'ListId':_0x2614c3['ListId'],'VoiceQueueId':_0x2614c3[_0xd12f('0xd7')]||undefined,'CampaignId':_0x2614c3[_0xd12f('0xd8')]||undefined})[_0xd12f('0xb1')](loggerCatch('[rescheduleContact][Drop]'));var _0x2f2ff3=new History(_0x499e66);_0x2f2ff3[_0xd12f('0xe8')]=0xa;_0x2f2ff3[_0xd12f('0xa8')]='Drop';_0x2f2ff3[_0xd12f('0x11e')]=moment()[_0xd12f('0x79')](_0xd12f('0x108'));_0x2f2ff3['endtime']=_0x2f2ff3[_0xd12f('0x11e')];_0x2f2ff3[_0xd12f('0x11f')]=_0x499e66['calleridname'];_0x2f2ff3[_0xd12f('0x120')]=_0x499e66[_0xd12f('0x120')];this[_0xd12f('0xcc')](_0x2f2ff3)['catch'](loggerCatch(_0xd12f('0x121')));}}else{this[_0xd12f('0x18')][_0x2f7128[_0xd12f('0xb4')]][_0xd12f('0x67')]+=0x1;this['voiceQueues'][_0x2f7128['queue']][_0xd12f('0x122')]+=0x1;_0x499e66['state']=0xb;_0x499e66[_0xd12f('0xa8')]=_0xd12f('0x123');_0x499e66[_0xd12f('0x124')]=_0xd12f('0x125');_0x499e66[_0xd12f('0xf8')]+=0x1;_0x499e66[_0xd12f('0xf1')]+=0x1;if(_0x499e66[_0xd12f('0xf8')]>=this[_0xd12f('0x18')][_0x2f7128['queue']][_0xd12f('0x126')]){this[_0xd12f('0x127')](_0x499e66);}else{this['rescheduleContact']({'active':![],'countabandonedretry':_0x499e66[_0xd12f('0xf8')],'scheduledat':moment()[_0xd12f('0xff')](this[_0xd12f('0x18')][_0x2f7128[_0xd12f('0xb4')]][_0xd12f('0x128')],_0xd12f('0x101'))[_0xd12f('0x79')](_0xd12f('0x108')),'ContactId':_0x2614c3[_0xd12f('0xd5')],'ListId':_0x2614c3[_0xd12f('0x129')],'VoiceQueueId':_0x2614c3[_0xd12f('0xd7')]||undefined,'CampaignId':_0x2614c3[_0xd12f('0xd8')]||undefined})[_0xd12f('0xb1')](loggerCatch(_0xd12f('0x12a')));var _0x2f2ff3=new History(_0x499e66);_0x2f2ff3[_0xd12f('0xe8')]=0xb;_0x2f2ff3[_0xd12f('0xa8')]=_0xd12f('0x123');_0x2f2ff3[_0xd12f('0x11e')]=moment()[_0xd12f('0x79')](_0xd12f('0x108'));_0x2f2ff3[_0xd12f('0xa9')]=_0x2f2ff3[_0xd12f('0x11e')];_0x2f2ff3[_0xd12f('0x11f')]=_0x499e66[_0xd12f('0x11f')];_0x2f2ff3[_0xd12f('0x120')]=_0x499e66[_0xd12f('0x120')];this[_0xd12f('0xcc')](_0x2f2ff3)[_0xd12f('0xb1')](loggerCatch(_0xd12f('0x12b')));}}}}};Dialer[_0xd12f('0xaa')][_0xd12f('0x12c')]=function(_0x30c0ee){if(this[_0xd12f('0x1e')][_0x30c0ee[_0xd12f('0xe0')]]){this[_0xd12f('0x1e')][_0x30c0ee[_0xd12f('0xe0')]][_0xd12f('0xb0')]=_0x30c0ee['channel'];}if(this[_0xd12f('0x20')][_0x30c0ee[_0xd12f('0xe0')]]){this[_0xd12f('0x20')][_0x30c0ee[_0xd12f('0xe0')]][_0xd12f('0xb0')]=_0x30c0ee[_0xd12f('0xb0')];}};Dialer['prototype'][_0xd12f('0x34')]=function(_0x142976){if(strategy[this[_0xd12f('0x18')][this[_0xd12f('0x1e')][_0x142976['actionid']][_0xd12f('0xb4')]]['strategy']]===_0xd12f('0x12d')){if(this[_0xd12f('0x1e')][_0x142976['actionid']]&&_[_0xd12f('0xe1')](this[_0xd12f('0x1e')][_0x142976[_0xd12f('0x12e')]][_0xd12f('0x12f')])&&_0x142976[_0xd12f('0xaf')]==='1'&&_0x142976[_0xd12f('0x130')]==='0'){if(this[_0xd12f('0x1a')][_0x142976[_0xd12f('0x131')]]){if(!this[_0xd12f('0x1a')][_0x142976[_0xd12f('0x131')]][_0xd12f('0x12f')]){this[_0xd12f('0x1a')][_0x142976[_0xd12f('0x131')]][_0xd12f('0x12f')]=!![];this[_0xd12f('0x1e')][_0x142976[_0xd12f('0x12e')]][_0xd12f('0x12f')]=!![];this[_0xd12f('0x1e')][_0x142976['actionid']][_0xd12f('0x131')]=_0x142976[_0xd12f('0x131')];}}}}else if((strategy[this['voiceQueues'][this['actions'][_0x142976[_0xd12f('0x12e')]][_0xd12f('0xb4')]][_0xd12f('0x47')]]||_0xd12f('0x132'))===_0xd12f('0x132')){if(this[_0xd12f('0x1e')][_0x142976[_0xd12f('0x12e')]]){if(this[_0xd12f('0x1a')][_0x142976[_0xd12f('0x131')]]){this[_0xd12f('0x1e')][_0x142976[_0xd12f('0x12e')]][_0xd12f('0x131')]=_0x142976[_0xd12f('0x131')];if(_[_0xd12f('0xe1')](this['queueBooked'][this[_0xd12f('0x1e')][_0x142976['actionid']][_0xd12f('0xb4')]])){this[_0xd12f('0x24')][this[_0xd12f('0x1e')][_0x142976[_0xd12f('0x12e')]]['queue']]=[];}this[_0xd12f('0x24')][this[_0xd12f('0x1e')][_0x142976[_0xd12f('0x12e')]][_0xd12f('0xb4')]]['push'](_[_0xd12f('0x8b')](_['pick'](this[_0xd12f('0x1e')][_0x142976[_0xd12f('0x12e')]],[_0xd12f('0x133'),'stateinterface']),{'status':_0x142976[_0xd12f('0xaf')],'paused':_0x142976[_0xd12f('0x130')]}));}}}};function unlockQueueStatus(_0x3e27a3,_0x3110f6){setTimeout(function(){if(_[_0xd12f('0x38')](_0x3e27a3[_0xd12f('0x134')])){loggerBooked[_0xd12f('0x95')](_0xd12f('0x135'),_0x3110f6);}_0x3e27a3['queueStatusComplete']=!![];loggerBooked[_0xd12f('0x7f')](_0xd12f('0x136'),_0x3110f6,JSON['stringify'](_[_0xd12f('0xd4')](_0x3e27a3,[_0xd12f('0x3d'),_0xd12f('0x134')])));},0x1f3);}Dialer[_0xd12f('0xaa')][_0xd12f('0x36')]=function(_0xf91e2a){var _0x311fe9=this;var _0x594330=_0x311fe9['voiceQueues'][_0x311fe9['actions'][_0xf91e2a['actionid']]['queue']];if(strategy[this[_0xd12f('0x18')][this[_0xd12f('0x1e')][_0xf91e2a[_0xd12f('0x12e')]][_0xd12f('0xb4')]]['strategy']]===_0xd12f('0x12d')){if(this[_0xd12f('0x1e')][_0xf91e2a[_0xd12f('0x12e')]]&&this[_0xd12f('0x1e')][_0xf91e2a[_0xd12f('0x12e')]][_0xd12f('0x131')]){this[_0xd12f('0x90')]['run'](this[_0xd12f('0x1e')][_0xf91e2a['actionid']]['idHopper'],this['actions'][_0xf91e2a[_0xd12f('0x12e')]][_0xd12f('0x131')])['catch'](function(_0x1a1292){logger['error'](_0xd12f('0x137'),util[_0xd12f('0x96')](_0x1a1292,{'showHidden':![],'depth':null}));})[_0xd12f('0x16')](function(){_0x311fe9['updateOriginated'](_0x311fe9[_0xd12f('0x18')][_0x311fe9[_0xd12f('0x1e')][_0xf91e2a[_0xd12f('0x12e')]][_0xd12f('0xb4')]]);_0x311fe9[_0xd12f('0x1a')][_0x311fe9[_0xd12f('0x1e')][_0xf91e2a[_0xd12f('0x12e')]]['stateinterface']][_0xd12f('0x12f')]=![];delete _0x311fe9[_0xd12f('0x1e')][_0xf91e2a[_0xd12f('0x12e')]];unlockQueueStatus(_0x594330);});}else{this[_0xd12f('0xb5')](this[_0xd12f('0x18')][this[_0xd12f('0x1e')][_0xf91e2a[_0xd12f('0x12e')]][_0xd12f('0xb4')]]);this[_0xd12f('0xc0')]({'active':![],'ContactId':this[_0xd12f('0x1e')][_0xf91e2a[_0xd12f('0x12e')]]['ContactId'],'ListId':this[_0xd12f('0x1e')][_0xf91e2a[_0xd12f('0x12e')]][_0xd12f('0x129')],'VoiceQueueId':this[_0xd12f('0x1e')][_0xf91e2a[_0xd12f('0x12e')]][_0xd12f('0xd7')]||undefined,'CampaignId':this[_0xd12f('0x1e')][_0xf91e2a[_0xd12f('0x12e')]][_0xd12f('0xd8')]||undefined})['catch'](loggerCatch(_0xd12f('0x138')));delete this[_0xd12f('0x1e')][_0xf91e2a['actionid']];unlockQueueStatus(_0x594330);}}else if((strategy[this['voiceQueues'][this[_0xd12f('0x1e')][_0xf91e2a['actionid']][_0xd12f('0xb4')]][_0xd12f('0x47')]]||_0xd12f('0x132'))===_0xd12f('0x132')){var _0x50213a;if(this['actions'][_0xf91e2a[_0xd12f('0x12e')]]&&!_['isEmpty'](this[_0xd12f('0x24')][this[_0xd12f('0x1e')][_0xf91e2a[_0xd12f('0x12e')]][_0xd12f('0xb4')]])){if(this[_0xd12f('0x25')][_0x311fe9[_0xd12f('0x1e')][_0xf91e2a['actionid']][_0xd12f('0xb4')]]){this[_0xd12f('0x25')][_0x311fe9[_0xd12f('0x1e')][_0xf91e2a[_0xd12f('0x12e')]][_0xd12f('0xb4')]]=this[_0xd12f('0x25')][this[_0xd12f('0x1e')][_0xf91e2a[_0xd12f('0x12e')]][_0xd12f('0xb4')]]?this[_0xd12f('0x25')][this[_0xd12f('0x1e')][_0xf91e2a[_0xd12f('0x12e')]][_0xd12f('0xb4')]]:this[_0xd12f('0x24')][this['actions'][_0xf91e2a[_0xd12f('0x12e')]][_0xd12f('0xb4')]]?this[_0xd12f('0x24')][this[_0xd12f('0x1e')][_0xf91e2a[_0xd12f('0x12e')]][_0xd12f('0xb4')]][_0xd12f('0x139')]||0x0:0x0;}this[_0xd12f('0x24')][this[_0xd12f('0x1e')][_0xf91e2a[_0xd12f('0x12e')]][_0xd12f('0xb4')]][_0xd12f('0x139')]=this[_0xd12f('0x25')][this[_0xd12f('0x1e')][_0xf91e2a['actionid']][_0xd12f('0xb4')]];for(var _0x484e0f=0x0;_0x484e0f<this[_0xd12f('0x24')][this[_0xd12f('0x1e')][_0xf91e2a[_0xd12f('0x12e')]]['queue']][_0xd12f('0x97')];_0x484e0f+=0x1){_0x50213a=rr(this['queueBooked'][this[_0xd12f('0x1e')][_0xf91e2a[_0xd12f('0x12e')]][_0xd12f('0xb4')]]);this['queueBookedRR'][_0x311fe9[_0xd12f('0x1e')][_0xf91e2a['actionid']]['queue']]=this['queueBooked'][this[_0xd12f('0x1e')][_0xf91e2a[_0xd12f('0x12e')]][_0xd12f('0xb4')]][_0xd12f('0x139')];if(_0x50213a[_0xd12f('0xaf')]==='1'&&_0x50213a[_0xd12f('0x130')]==='0'){break;}}if(!_[_0xd12f('0xe1')](_0x50213a)){this[_0xd12f('0x1a')][_0x50213a['stateinterface']]['unlockRR']=_[_0xd12f('0x38')](this['agents'][_0x50213a[_0xd12f('0x131')]][_0xd12f('0x13a')])?!![]:this[_0xd12f('0x1a')][_0x50213a[_0xd12f('0x131')]][_0xd12f('0x13a')];}loggerBooked[_0xd12f('0x7f')](_0xd12f('0x13b'),_0xf91e2a[_0xd12f('0x12e')],_0xd12f('0x13c'),JSON[_0xd12f('0x41')](_[_0xd12f('0xd4')](this[_0xd12f('0x1a')][_0x50213a[_0xd12f('0x131')]],[_0xd12f('0x3d'),_0xd12f('0x13a')])),_0xd12f('0x13d'),JSON[_0xd12f('0x41')](_0x50213a[_0xd12f('0x133')]));if(!_[_0xd12f('0xe1')](_0x50213a)&&_0x50213a[_0xd12f('0xaf')]==='1'&&_0x50213a[_0xd12f('0x130')]==='0'&&this[_0xd12f('0x1a')][_0x50213a[_0xd12f('0x131')]][_0xd12f('0x13a')]){this[_0xd12f('0x1a')][_0x50213a[_0xd12f('0x131')]][_0xd12f('0x13a')]=![];this[_0xd12f('0x24')][_0x311fe9[_0xd12f('0x1e')][_0xf91e2a['actionid']]['queue']]=[];this[_0xd12f('0x90')][_0xd12f('0x13e')](_0x50213a[_0xd12f('0x133')],_0x50213a[_0xd12f('0x131')])['catch'](function(_0x38fa7b){logger['error'](_0xd12f('0x137'),util[_0xd12f('0x96')](_0x38fa7b,{'showHidden':![],'depth':null}));})[_0xd12f('0x16')](function(){_0x311fe9[_0xd12f('0xb5')](_0x311fe9[_0xd12f('0x18')][_0x311fe9['actions'][_0xf91e2a[_0xd12f('0x12e')]][_0xd12f('0xb4')]]);setTimeout(function(){_0x311fe9[_0xd12f('0x1a')][_0x50213a[_0xd12f('0x131')]][_0xd12f('0x13a')]=!![];loggerBooked[_0xd12f('0x7f')](_0xd12f('0x13f'),_0xf91e2a[_0xd12f('0x12e')],_0xd12f('0x13c'),JSON[_0xd12f('0x41')](_['pick'](_0x311fe9[_0xd12f('0x1a')][_0x50213a[_0xd12f('0x131')]],['name',_0xd12f('0x13a')])),_0xd12f('0x13d'),JSON[_0xd12f('0x41')](_0x50213a[_0xd12f('0x133')]));},0xc7);delete _0x311fe9[_0xd12f('0x1e')][_0xf91e2a[_0xd12f('0x12e')]];unlockQueueStatus(_0x594330,_0xf91e2a[_0xd12f('0x12e')]);});}else{loggerBooked[_0xd12f('0x7f')](_0xd12f('0x140'));this['updateOriginated'](this[_0xd12f('0x18')][this[_0xd12f('0x1e')][_0xf91e2a[_0xd12f('0x12e')]][_0xd12f('0xb4')]]);this[_0xd12f('0xc0')]({'active':![],'ContactId':this[_0xd12f('0x1e')][_0xf91e2a[_0xd12f('0x12e')]]['ContactId'],'ListId':this['actions'][_0xf91e2a[_0xd12f('0x12e')]]['ListId'],'VoiceQueueId':this[_0xd12f('0x1e')][_0xf91e2a[_0xd12f('0x12e')]][_0xd12f('0xd7')]||undefined,'CampaignId':this[_0xd12f('0x1e')][_0xf91e2a['actionid']]['CampaignId']||undefined})['catch'](loggerCatch(_0xd12f('0x138')));delete this[_0xd12f('0x1e')][_0xf91e2a[_0xd12f('0x12e')]];unlockQueueStatus(_0x594330);}}else{loggerBooked['info'](_0xd12f('0x141'));this[_0xd12f('0xb5')](this['voiceQueues'][this[_0xd12f('0x1e')][_0xf91e2a[_0xd12f('0x12e')]]['queue']]);this['rescheduleContact']({'active':![],'ContactId':this[_0xd12f('0x1e')][_0xf91e2a[_0xd12f('0x12e')]][_0xd12f('0xd5')],'ListId':this['actions'][_0xf91e2a[_0xd12f('0x12e')]]['ListId'],'VoiceQueueId':this[_0xd12f('0x1e')][_0xf91e2a['actionid']][_0xd12f('0xd7')]||undefined,'CampaignId':this[_0xd12f('0x1e')][_0xf91e2a['actionid']][_0xd12f('0xd8')]||undefined})['catch'](loggerCatch('[unlock2][syncQueueStatusComplete]'));delete this['actions'][_0xf91e2a['actionid']];unlockQueueStatus(_0x594330);}}else{loggerBooked['info'](_0xd12f('0x142'));this[_0xd12f('0xb5')](this[_0xd12f('0x18')][this[_0xd12f('0x1e')][_0xf91e2a['actionid']][_0xd12f('0xb4')]]);this[_0xd12f('0xc0')]({'active':![],'ContactId':this['actions'][_0xf91e2a[_0xd12f('0x12e')]][_0xd12f('0xd5')],'ListId':this[_0xd12f('0x1e')][_0xf91e2a['actionid']][_0xd12f('0x129')],'VoiceQueueId':this[_0xd12f('0x1e')][_0xf91e2a[_0xd12f('0x12e')]]['VoiceQueueId']||undefined,'CampaignId':this[_0xd12f('0x1e')][_0xf91e2a['actionid']]['CampaignId']||undefined})[_0xd12f('0xb1')](loggerCatch(_0xd12f('0x143')));delete this[_0xd12f('0x1e')][_0xf91e2a[_0xd12f('0x12e')]];unlockQueueStatus(_0x594330);}};Dialer[_0xd12f('0xaa')][_0xd12f('0x37')]=function(){var _0x421f62=this;setInterval(function(){_0x421f62['syncCampaigns']();},0x3e8);};Dialer['prototype']['checkIsTrunkReachable']=function(_0x51159a){var _0x6d8afa=this;return function(){if(!_0x6d8afa[_0xd12f('0xdb')](_0x51159a[_0xd12f('0x73')])){if(!_0x6d8afa['isTrunkReachable'](_0x51159a[_0xd12f('0x144')])){_0x51159a[_0xd12f('0x39')]=_0xd12f('0x145');throw _0x51159a[_0xd12f('0x3d')]+_0xd12f('0x146');}}};};Dialer[_0xd12f('0xaa')]['checkIfTime']=function(_0x2770de,_0x123aed,_0x1e6a59,_0x418fe2){var _0x366c5b=this;return function(){var _0xdab41e=!![];return _0x366c5b[_0xd12f('0x147')](_0x2770de,_0x123aed,_0x1e6a59,_0x418fe2,_0xdab41e);};};Dialer[_0xd12f('0xaa')][_0xd12f('0x148')]=function(_0x560f82,_0x43b91d,_0x285e45,_0x2ee394){var _0x29b92=this;return function(){var _0x25e074=![];return _0x29b92[_0xd12f('0x147')](_0x560f82[_0xd12f('0x3f')],_0x43b91d,_0x285e45,_0x2ee394,_0x25e074);};};Dialer[_0xd12f('0xaa')][_0xd12f('0x147')]=function(_0x150ac9,_0x3922db,_0x325775,_0x7ff3d3,_0x33c5ab){var _0x1171ae=[];return new BPromise(function(_0x1e9905,_0x1581a5){if(!isNotNull(_0x150ac9)){_0x7ff3d3[_0xd12f('0x39')]=_0xd12f('0x40');return _0x1581a5(msgResponse(_0xd12f('0x147'),_0xd12f('0x149'),_0x325775+_0xd12f('0x14a')));}if(_[_0xd12f('0x7c')](_0x150ac9)){_0x7ff3d3[_0xd12f('0x39')]=_0xd12f('0x14b');return _0x1581a5(msgResponse(_0xd12f('0x147'),_0xd12f('0x149'),_0x325775+_0xd12f('0x14c')));}if(_0x3922db&&_[_0xd12f('0x38')](config[_0xd12f('0x14d')][_0x3922db])){_0x7ff3d3[_0xd12f('0x39')]=_0xd12f('0x14e');return _0x1581a5(msgResponse(_0xd12f('0x147'),_0xd12f('0x149'),_0x325775+_0xd12f('0x14f')+_0x3922db));}if(_[_0xd12f('0x150')](_0x150ac9)){for(var _0x8eaa58=0x0;_0x8eaa58<_0x150ac9['length'];_0x8eaa58+=0x1){_0x1171ae[_0xd12f('0x151')](ami['Action']({'action':_0xd12f('0x152'),'command':util[_0xd12f('0x79')](_0xd12f('0x153'),_0x150ac9[_0x8eaa58]['interval'],!_[_0xd12f('0x38')](config[_0xd12f('0x14d')][_0x3922db])?_0x3922db:'')})[_0xd12f('0xba')](function(_0x382d3b){return _0x382d3b[_0xd12f('0x154')][_0xd12f('0x155')]('true')>=0x0;})[_0xd12f('0xb1')](myreject(_0x1581a5)));}}else{_0x1171ae[_0xd12f('0x151')](ami[_0xd12f('0xae')]({'action':_0xd12f('0x152'),'command':util[_0xd12f('0x79')](_0xd12f('0x153'),_0x150ac9,!_[_0xd12f('0x38')](config['timezones'][_0x3922db])?_0x3922db:'')})['then'](function(_0x20af30){return _0x20af30['content'][_0xd12f('0x155')]('true')>=0x0;})[_0xd12f('0xb1')](myreject(_0x1581a5)));}BPromise[_0xd12f('0x156')](_0x1171ae)[_0xd12f('0xba')](function(_0x58ab3f){var _0x18ed5d=_[_0xd12f('0x157')](_0x58ab3f);if(_0x18ed5d){return _0x1e9905(_0x18ed5d);}else{_0x7ff3d3[_0xd12f('0x39')]=_0x33c5ab?'GLOBAL_INTERVAL_IS_OVERTIME':_0xd12f('0x158');return _0x1581a5(msgResponse(_0xd12f('0x159'),_0xd12f('0x149'),'Global:\x20'+_0x33c5ab+'\x20'+_0x325775+_0xd12f('0x15a')+util[_0xd12f('0x96')](_0x150ac9,{'showHidden':![],'depth':null})+_0xd12f('0x15b')+_0x3922db));}})[_0xd12f('0xb1')](function(_0x5eecb5){return _0x1581a5(msgResponse(_0xd12f('0x147'),_0xd12f('0x149'),JSON['stringify'](_0x5eecb5)));});});};Dialer[_0xd12f('0xaa')][_0xd12f('0x15c')]=function(_0x2ca410){var _0x2c2573=this;return function(){switch(_0x2ca410[_0xd12f('0x55')]){case _0xd12f('0x15d'):freeVariablesPredictive(_0x2ca410);_0x2c2573[_0xd12f('0x15e')](_0x2ca410,0x1);break;case'power':freeVariablesPredictive(_0x2ca410);_0x2c2573[_0xd12f('0x15e')](_0x2ca410,_0x2ca410[_0xd12f('0x15f')]);break;case _0xd12f('0x160'):_0x2c2573[_0xd12f('0x160')](_0x2ca410);break;case _0xd12f('0x161'):freeVariablesPredictive(_0x2ca410);_0x2c2573[_0xd12f('0x15e')](_0x2ca410,0x1);break;default:freeVariablesPredictive(_0x2ca410);logger['error'](_0xd12f('0x162'),_0x2ca410[_0xd12f('0x3d')],_0xd12f('0x163'));}};};Dialer[_0xd12f('0xaa')][_0xd12f('0x164')]=function(_0x433cb4){var _0x428f59=this;return function(){_0x428f59['handleIvr'](_0x433cb4);};};Dialer[_0xd12f('0xaa')][_0xd12f('0xb')]=function(_0x471bc5){var _0x374a35=this;if(isNotPreview(_0x471bc5['dialMethod'])){if(isVoiceQueueOutbound(_0x471bc5['type'])&&isActive(_0x471bc5[_0xd12f('0x54')])){_0x471bc5['sendMessageOneNotActive']=!![];BPromise[_0xd12f('0xb9')]()[_0xd12f('0xba')](checkIsLoggedIn(_0x471bc5,_0x471bc5[_0xd12f('0x4a')]))[_0xd12f('0xba')](checkIsActive(_0x471bc5,_0x471bc5[_0xd12f('0x54')]))[_0xd12f('0xba')](checkInterval(_0x471bc5))['then'](_0x374a35[_0xd12f('0x165')](_0x471bc5))[_0xd12f('0xba')](_0x374a35[_0xd12f('0x166')](_0x471bc5[_0xd12f('0x167')],_0x471bc5[_0xd12f('0x168')],_0x471bc5[_0xd12f('0x3d')],_0x471bc5))['then'](_0x374a35[_0xd12f('0x148')](_0x471bc5[_0xd12f('0x3c')],_0x471bc5[_0xd12f('0x168')],_0x471bc5[_0xd12f('0x3d')],_0x471bc5))['then'](_0x374a35[_0xd12f('0x15c')](_0x471bc5))[_0xd12f('0xb1')](loggerCatchQueueSummary(_0xd12f('0x169'),_0x471bc5));}else{notSendMessagesQueue(_0x471bc5);}}else{freeVariablesPredictive(_0x471bc5);}};Dialer['prototype'][_0xd12f('0x16a')]=function(){var _0x47c4a2=this;var _0x4aa40;for(var _0x2c8932 in this[_0xd12f('0x19')]){if(typeof this[_0xd12f('0x19')][_0x2c8932]!==_0xd12f('0xce')){_0x4aa40=this[_0xd12f('0x19')][_0x2c8932];if(isCampaignIvr(_0x4aa40[_0xd12f('0x45')])&&isActive(_0x4aa40[_0xd12f('0x74')])){_0x4aa40[_0xd12f('0xa1')]=!![];BPromise[_0xd12f('0xb9')]()[_0xd12f('0xba')](checkIsActive(_0x4aa40,_0x4aa40[_0xd12f('0x74')]))['then'](checkInterval(_0x4aa40))[_0xd12f('0xba')](_0x47c4a2[_0xd12f('0x165')](_0x4aa40))[_0xd12f('0xba')](_0x47c4a2[_0xd12f('0x166')](_0x4aa40['dialGlobalInterval'],_0x4aa40[_0xd12f('0x168')],_0x4aa40[_0xd12f('0x3d')],_0x4aa40))[_0xd12f('0xba')](_0x47c4a2[_0xd12f('0x148')](_0x4aa40['Interval'],_0x4aa40[_0xd12f('0x168')],_0x4aa40[_0xd12f('0x3d')],_0x4aa40))['then'](_0x47c4a2[_0xd12f('0x164')](_0x4aa40))[_0xd12f('0xb1')](loggerCatchQueueSummary(_0xd12f('0x16b'),_0x4aa40));}else{notSendMessagesCampaign(_0x4aa40);}}}};function getCallerIdRandom(_0x1ff419,_0x1e2d17){var _0x50b1bb;var _0x227b45;var _0x2b2223;if(_0x1e2d17<=0x0){_0x1e2d17=0x1;}_0x50b1bb=new RegExp(_0xd12f('0x16c')+_0x1e2d17+'}$');_0x227b45=Math[_0xd12f('0x16d')](0xa,_0x1e2d17-0x1);_0x2b2223=Math[_0xd12f('0x16d')](0xa,_0x1e2d17)-0x1;return util[_0xd12f('0x79')]('%s',_[_0xd12f('0x16e')](_0x1ff419,_0x50b1bb,_['random'](_0x227b45,_0x2b2223)));}function extractCalleridName(_0x230dfe){var _0x5b85fa=_0x230dfe[_0xd12f('0x16f')](/"(.*?)"/);return _0x5b85fa?_0x5b85fa[0x1]:_0x230dfe;}function extractCalleridNumber(_0x4090af){var _0x4cfb83=_0x4090af[_0xd12f('0x16f')](/<(.*?)>/);return _0x4cfb83?_0x4cfb83[0x1]:_0x4090af;}Dialer[_0xd12f('0xaa')]['actionOriginate']=function(_0xc758c3,_0x45a35c){var _0x1a0f8f=this;var _0x57e362=uuid['v4']();this[_0xd12f('0x1e')][_0x57e362]=new Action(_0xc758c3,_0x45a35c,_0x57e362);return new BPromise(function(_0x1716ca,_0x45b031){if(_[_0xd12f('0x38')](_0xc758c3)&&typeof _0xc758c3!==_0xd12f('0x170')){return _0x45b031(msgResponse(_0xd12f('0x171'),'Failure',_0xd12f('0x172')));}if(_[_0xd12f('0x38')](_0x45a35c[_0xd12f('0x173')][_0xd12f('0x174')])||_0x45a35c[_0xd12f('0x173')][_0xd12f('0x174')]===null){return _0x45b031(msgResponse(_0xd12f('0x171'),'Failure',_0xd12f('0x175')));}var _0x5cea39={'XMD-CALLERID':_0x1a0f8f[_0xd12f('0x1e')][_0x57e362][_0xd12f('0x176')](),'XMD-AGI':_0xc758c3[_0xd12f('0x10c')]?util[_0xd12f('0x79')]('\x22agi://%s/square,%s\x22',ipAgi,_0xc758c3[_0xd12f('0x10c')]):_0xd12f('0x177'),'XMD-AGIAFTER':_0xc758c3[_0xd12f('0x113')]?util[_0xd12f('0x79')](_0xd12f('0x178'),ipAgi,_0xc758c3[_0xd12f('0x113')]):_0xd12f('0x177'),'XMD-QUEUE':_0xc758c3[_0xd12f('0x45')]===_0xd12f('0x46')?util[_0xd12f('0x79')]('\x22%s,%s%s,,,%s\x22',_0xc758c3['name'],_0xc758c3['dialQueueOptions']||'',_0xc758c3[_0xd12f('0x114')]?'c':'',_0xc758c3[_0xd12f('0x11a')]||0x3):'NONE','XMD-CONTACTID':_0x45a35c[_0xd12f('0xd5')],'XMD-CDRTYPE':'dialer','CALLERID(all)':_0x1a0f8f[_0xd12f('0x1e')][_0x57e362][_0xd12f('0x176')](),'XMD-AMD':_0xc758c3[_0xd12f('0xe5')]?_0xd12f('0x179'):'NONE','XMD-DESTINATION':_0xd12f('0xe4')};if(_0xc758c3[_0xd12f('0xe5')]){_0x5cea39[_0xd12f('0x17a')]=_0xc758c3[_0xd12f('0x17b')]||0x9c4;_0x5cea39['XMD-AMDGREETING']=_0xc758c3[_0xd12f('0x17c')]||0x5dc;_0x5cea39[_0xd12f('0x17d')]=_0xc758c3[_0xd12f('0x17e')]||0x320;_0x5cea39[_0xd12f('0x17f')]=_0xc758c3['dialAMDTotalAnalysisTime']||0x1388;_0x5cea39[_0xd12f('0x180')]=_0xc758c3['dialAMDMinWordLength']||0x64;_0x5cea39[_0xd12f('0x181')]=_0xc758c3[_0xd12f('0x182')]||0x32;_0x5cea39['XMD-AMDMAXIMUMNUMBEROFWORDS']=_0xc758c3['dialAMDMaximumNumberOfWords']||0x3;_0x5cea39['XMD-AMDSILENCETHRESHOLD']=_0xc758c3['dialAMDSilenceThreshold']||0x100;_0x5cea39['XMD-AMDMAXIMUMWORDLENGTH']=_0xc758c3[_0xd12f('0x183')]||0x1388;}if(_0xc758c3[_0xd12f('0x45')]===_0xd12f('0x46')){_0x5cea39[_0xd12f('0x184')]=_0x45a35c['VoiceQueueId'];}else{_0x5cea39[_0xd12f('0x185')]=_0x45a35c[_0xd12f('0xd8')];}for(var _0x5644d8 in _0x45a35c[_0xd12f('0x173')]){if(typeof _0x45a35c[_0xd12f('0x173')][_0x5644d8]!==_0xd12f('0xce')){if(isNotNull(_0x45a35c[_0xd12f('0x173')][_0x5644d8])&&_0x5644d8!=='id'&&_0x5644d8!==_0xd12f('0x186')&&_0x5644d8!==_0xd12f('0x187')&&_0x5644d8!=='updatedAt'){_0x5cea39[util[_0xd12f('0x79')](_0xd12f('0x188'),'XMD-',_[_0xd12f('0x189')](_0x5644d8))]=_0x45a35c['Contact'][_0x5644d8];}}}var _0x93ae4e=_0x1a0f8f[_0xd12f('0xdb')](_0xc758c3[_0xd12f('0x73')])?getCallerId(_0xc758c3[_0xd12f('0x73')][_0xd12f('0x75')],_0xc758c3['dialOriginateCallerIdName'],_0xc758c3['dialRandomLastDigitCallerIdNumber']>0x0?getCallerIdRandom(_0xc758c3[_0xd12f('0x18a')],_0xc758c3[_0xd12f('0x18b')]):_0xc758c3[_0xd12f('0x18a')]):getCallerId(_[_0xd12f('0xe1')](_0xc758c3[_0xd12f('0x144')])?_0xc758c3[_0xd12f('0x73')]['callerid']:_0xc758c3[_0xd12f('0x144')][_0xd12f('0x75')],_0xc758c3['dialOriginateCallerIdName'],_0xc758c3[_0xd12f('0x18b')]>0x0?getCallerIdRandom(_0xc758c3['dialOriginateCallerIdNumber'],_0xc758c3['dialRandomLastDigitCallerIdNumber']):_0xc758c3[_0xd12f('0x18a')]);if(_0x93ae4e){_0x5cea39[_0xd12f('0x18c')]=_0x1a0f8f[_0xd12f('0x1e')][_0x57e362][_0xd12f('0x18d')]=extractCalleridName(_0x93ae4e);_0x5cea39[_0xd12f('0x18e')]=_0x1a0f8f[_0xd12f('0x1e')][_0x57e362]['originatecalleridnum']=extractCalleridNumber(_0x93ae4e);}return ami[_0xd12f('0xae')]({'actionid':_0x57e362,'action':_0xd12f('0x171'),'channel':_0x1a0f8f[_0xd12f('0xdb')](_0xc758c3[_0xd12f('0x73')])?util[_0xd12f('0x79')]('SIP/%s/%s%s',_0xc758c3[_0xd12f('0x73')]['name'],isNotNull(_0xc758c3[_0xd12f('0x58')])?_0xc758c3[_0xd12f('0x58')]['trim']()||'':'',_0xc758c3['dialCutDigit']>0x0?_0x45a35c[_0xd12f('0x173')][_0xd12f('0x174')][_0xd12f('0x18f')](_0xc758c3[_0xd12f('0x190')]):_0x45a35c[_0xd12f('0x173')][_0xd12f('0x174')]):util[_0xd12f('0x79')](_0xd12f('0x191'),_['isNil'](_0xc758c3['TrunkBackup'])?_0xc758c3[_0xd12f('0x73')][_0xd12f('0x3d')]:_0xc758c3[_0xd12f('0x144')][_0xd12f('0x3d')],isNotNull(_0xc758c3[_0xd12f('0x58')])?_0xc758c3[_0xd12f('0x58')][_0xd12f('0x192')]()||'':'',_0xc758c3['dialCutDigit']>0x0?_0x45a35c['Contact'][_0xd12f('0x174')]['substring'](_0xc758c3['dialCutDigit']):_0x45a35c['Contact'][_0xd12f('0x174')]),'callerid':_0x93ae4e,'Exten':_0xd12f('0xe4'),'Context':_0xd12f('0x193'),'Priority':'1','variable':_0x5cea39,'timeout':(_0xc758c3[_0xd12f('0x57')]||0x1e)*0x3e8,'async':!![],'channelid':_0x57e362})[_0xd12f('0xba')](function(_0x3d9d49){return _0x1716ca(_0x3d9d49);})[_0xd12f('0xb1')](function(_0x3897f7){_0xc758c3['outboundOriginateFailureCallsDay']+=0x1;var _0x54f8d2=new History(_0x1a0f8f[_0xd12f('0x1e')][_0x57e362]);logger[_0xd12f('0x95')](util[_0xd12f('0x79')](_0xd12f('0x194'),JSON[_0xd12f('0x41')](_0x3897f7)));_0x54f8d2['state']=0xe;_0x54f8d2[_0xd12f('0xa8')]='OriginateError';_0x54f8d2[_0xd12f('0x11e')]=moment()[_0xd12f('0x79')](_0xd12f('0x108'));_0x54f8d2['endtime']=_0x54f8d2['starttime'];_0x1a0f8f[_0xd12f('0xcc')](_0x54f8d2)[_0xd12f('0xb1')](loggerCatch('[originate][error]'));_0x1a0f8f['moveContactManagedDialer'](_0x54f8d2)[_0xd12f('0xb1')](loggerCatch(_0xd12f('0x195')))[_0xd12f('0x16')](function(){delete _0x1a0f8f[_0xd12f('0x1e')][_0x57e362];return _0x45b031(msgResponse('originate',_0xd12f('0x196'),'originate\x20action\x20Error'));});});});};Dialer[_0xd12f('0xaa')]['syncOriginateResponse']=function(_0x203d33){var _0x4f694f=this['actions'][_0x203d33[_0xd12f('0x12e')]];if(_0x4f694f){delete this['actions'][_0x203d33['actionid']];_0x4f694f['responsetime']=moment()[_0xd12f('0x79')](_0xd12f('0x108'));var _0x687cad=_0x4f694f[_0xd12f('0x45')]===_0xd12f('0x91')?this['campaigns'][_0x4f694f['queue']]:this[_0xd12f('0x18')][_0x4f694f[_0xd12f('0x197')]()];if(!this[_0xd12f('0xda')](_0x203d33[_0xd12f('0x198')])){this['updateOriginated'](_0x687cad);return this[_0xd12f('0x199')](_0x4f694f,_0x687cad,_0x203d33)[_0xd12f('0xb1')](loggerCatch(_0xd12f('0x19a')));}this[_0xd12f('0x20')][_0x203d33[_0xd12f('0xe0')]]=_0x4f694f;}};Dialer[_0xd12f('0xaa')][_0xd12f('0x19b')]=function(_0x53a8ff,_0x4edf92,_0x2c9a94){var _0x4351ed=new History(_0x4edf92);if(_0x4351ed['countbusyretry']+_0x4351ed[_0xd12f('0xf4')]+_0x4351ed[_0xd12f('0xf5')]+_0x4351ed[_0xd12f('0xf6')]+_0x4351ed[_0xd12f('0xf7')]+_0x4351ed[_0xd12f('0xf8')]+_0x4351ed[_0xd12f('0xf0')]+_0x4351ed[_0xd12f('0xf9')]>=_0x2c9a94[_0xd12f('0xfa')]-0x1){return!![];}switch(_0x53a8ff){case 0x3:if(_0x4351ed[_0xd12f('0xf5')]>=_0x2c9a94[_0xd12f('0x19c')]-0x1){return!![];}this[_0xd12f('0xc0')]({'active':![],'countnoanswerretry':_0x4351ed[_0xd12f('0xf5')]+=0x1,'scheduledat':moment()[_0xd12f('0xff')](_0x2c9a94['dialNoAnswerRetryFrequency'],_0xd12f('0x101'))[_0xd12f('0x79')](_0xd12f('0x108')),'ContactId':_0x4351ed[_0xd12f('0xd5')],'ListId':_0x4351ed[_0xd12f('0x129')],'VoiceQueueId':_0x4351ed['VoiceQueueId']||undefined,'CampaignId':_0x4351ed['CampaignId']||undefined})['catch'](loggerCatch(_0xd12f('0x19d')));break;case 0x5:if(_0x4351ed[_0xd12f('0xf3')]>=_0x2c9a94[_0xd12f('0x19e')]-0x1){return!![];}this[_0xd12f('0xc0')]({'active':![],'countbusyretry':_0x4351ed[_0xd12f('0xf3')]+=0x1,'scheduledat':moment()[_0xd12f('0xff')](_0x2c9a94['dialBusyRetryFrequency'],'minutes')[_0xd12f('0x79')](_0xd12f('0x108')),'ContactId':_0x4351ed[_0xd12f('0xd5')],'ListId':_0x4351ed[_0xd12f('0x129')],'VoiceQueueId':_0x4351ed[_0xd12f('0xd7')]||undefined,'CampaignId':_0x4351ed[_0xd12f('0xd8')]||undefined})[_0xd12f('0xb1')](loggerCatch(_0xd12f('0x19f')));break;case 0x8:if(_0x4351ed['countcongestionretry']>=_0x2c9a94['dialCongestionMaxRetry']-0x1){return!![];}this[_0xd12f('0xc0')]({'active':![],'countcongestionretry':_0x4351ed[_0xd12f('0xf4')]+=0x1,'scheduledat':moment()[_0xd12f('0xff')](_0x2c9a94[_0xd12f('0x1a0')],'minutes')[_0xd12f('0x79')](_0xd12f('0x108')),'ContactId':_0x4351ed[_0xd12f('0xd5')],'ListId':_0x4351ed[_0xd12f('0x129')],'VoiceQueueId':_0x4351ed['VoiceQueueId']||undefined,'CampaignId':_0x4351ed[_0xd12f('0xd8')]||undefined})[_0xd12f('0xb1')](loggerCatch('[rescheduleContact]\x20[Congestion]'));break;case 0x0:if(_0x4351ed[_0xd12f('0xf6')]>=_0x2c9a94['dialNoSuchNumberMaxRetry']-0x1){return!![];}else{this[_0xd12f('0xc0')]({'active':![],'countnosuchnumberretry':_0x4351ed[_0xd12f('0xf6')]+=0x1,'scheduledat':moment()[_0xd12f('0xff')](_0x2c9a94['dialNoSuchNumberRetryFrequency'],_0xd12f('0x101'))['format'](_0xd12f('0x108')),'ContactId':_0x4351ed[_0xd12f('0xd5')],'ListId':_0x4351ed[_0xd12f('0x129')],'VoiceQueueId':_0x4351ed[_0xd12f('0xd7')]||undefined,'CampaignId':_0x4351ed['CampaignId']||undefined})[_0xd12f('0xb1')](loggerCatch(_0xd12f('0x1a1')));}break;case 0xa:if(_0x4351ed[_0xd12f('0xf7')]>=_0x2c9a94[_0xd12f('0x11c')]-0x1){return!![];}this['rescheduleContact']({'active':![],'countdropretry':_0x4351ed[_0xd12f('0xf7')]+=0x1,'scheduledat':moment()['add'](_0x2c9a94[_0xd12f('0x11d')],_0xd12f('0x101'))['format'](_0xd12f('0x108')),'ContactId':_0x4351ed[_0xd12f('0xd5')],'ListId':_0x4351ed[_0xd12f('0x129')],'VoiceQueueId':_0x4351ed['VoiceQueueId']||undefined,'CampaignId':_0x4351ed[_0xd12f('0xd8')]||undefined})[_0xd12f('0xb1')](loggerCatch(_0xd12f('0x1a2')));break;case 0xb:if(_0x4351ed['countabandonedretry']>=_0x2c9a94[_0xd12f('0x126')]-0x1){return!![];}this['rescheduleContact']({'active':![],'countabandonedretry':_0x4351ed[_0xd12f('0xf8')]+=0x1,'scheduledat':moment()[_0xd12f('0xff')](_0x2c9a94[_0xd12f('0x128')],_0xd12f('0x101'))[_0xd12f('0x79')](_0xd12f('0x108')),'ContactId':_0x4351ed[_0xd12f('0xd5')],'ListId':_0x4351ed['ListId'],'VoiceQueueId':_0x4351ed[_0xd12f('0xd7')]||undefined,'CampaignId':_0x4351ed[_0xd12f('0xd8')]||undefined})[_0xd12f('0xb1')](loggerCatch(_0xd12f('0x12a')));break;case 0x13:if(_0x4351ed[_0xd12f('0xf0')]>=_0x2c9a94[_0xd12f('0xfc')]-0x1){return!![];}this[_0xd12f('0xc0')]({'active':![],'countmachineretry':_0x4351ed[_0xd12f('0xf0')]+=0x1,'scheduledat':moment()[_0xd12f('0xff')](_0x2c9a94[_0xd12f('0x100')],'minutes')['format'](_0xd12f('0x108')),'ContactId':_0x4351ed[_0xd12f('0xd5')],'ListId':_0x4351ed[_0xd12f('0x129')],'VoiceQueueId':_0x4351ed[_0xd12f('0xd7')]||undefined,'CampaignId':_0x4351ed[_0xd12f('0xd8')]||undefined})[_0xd12f('0xb1')](loggerCatch(_0xd12f('0x102')));break;case 0x14:if(_0x4351ed[_0xd12f('0xf9')]>=_0x2c9a94[_0xd12f('0x1a3')]-0x1){return!![];}this[_0xd12f('0xc0')]({'active':![],'countagentrejectretry':_0x4351ed[_0xd12f('0xf9')]+=0x1,'scheduledat':moment()[_0xd12f('0xff')](_0x2c9a94[_0xd12f('0x1a4')],'minutes')[_0xd12f('0x79')](_0xd12f('0x108')),'ContactId':_0x4351ed['ContactId'],'ListId':_0x4351ed['ListId'],'VoiceQueueId':_0x4351ed[_0xd12f('0xd7')]||undefined,'CampaignId':_0x4351ed[_0xd12f('0xd8')]||undefined})[_0xd12f('0xb1')](loggerCatch(_0xd12f('0x1a5')));break;default:return!![];}};Dialer['prototype']['callProgressDetecting']=function(_0x52c180,_0x1b11eb,_0x24e90a){var _0x3ac5ba=this;var _0x244c3f=new History(_0x52c180);return new BPromise(function(_0x1f04c8,_0x4194e6){if(_[_0xd12f('0x38')](_0x1b11eb)&&typeof _0x1b11eb!=='object'){return _0x4194e6(msgResponse(_0xd12f('0x1a6'),_0xd12f('0x149'),_0xd12f('0x1a7')));}if(_['isUndefined'](_0x24e90a)&&typeof _0x24e90a!==_0xd12f('0x170')){return _0x4194e6(msgResponse(_0xd12f('0x1a6'),_0xd12f('0x149'),_0xd12f('0x1a8')));}switch(_0x24e90a['reason']){case'0':_0x1b11eb[_0xd12f('0x60')]+=0x1;_0x244c3f[_0xd12f('0xe8')]=0x0;_0x244c3f[_0xd12f('0xa8')]=_0xd12f('0x1a9');_0x244c3f[_0xd12f('0xf6')]+=0x1;_0x244c3f[_0xd12f('0xf1')]+=0x1;ami['emit'](_0xd12f('0x1aa'),ut['buildObj'](_0x52c180,'nosuchnumber'));_0x3ac5ba[_0xd12f('0xcc')](_0x244c3f)[_0xd12f('0xb1')](loggerCatch(_0xd12f('0xf2')));if(_0x3ac5ba['checkRetriveMax'](0x0,_0x52c180,_0x1b11eb)){if(_0x244c3f[_0xd12f('0xf6')]>=_0x1b11eb[_0xd12f('0x1ab')]){_0x3ac5ba['createStateFinal'](_0x244c3f,_0x1f04c8,_0x4194e6,'reason\x200\x20no\x20such\x20number....');}else{_0x3ac5ba[_0xd12f('0x107')](_0x244c3f,_0x1f04c8,_0x4194e6,'reason\x200\x20no\x20such\x20number....');}}break;case'3':_0x1b11eb[_0xd12f('0x5f')]+=0x1;_0x244c3f['state']=0x3;_0x244c3f['statedesc']='NoAnswer';_0x244c3f['countnoanswerretry']+=0x1;_0x244c3f[_0xd12f('0xf1')]+=0x1;ami[_0xd12f('0x44')](_0xd12f('0x1ac'),ut['buildObj'](_0x52c180,_0xd12f('0x1ad')));_0x3ac5ba[_0xd12f('0xcc')](_0x244c3f)[_0xd12f('0xb1')](loggerCatch('[syncAgentComplete][createHistory][3]'));if(_0x3ac5ba['checkRetriveMax'](0x3,_0x52c180,_0x1b11eb)){if(_0x244c3f[_0xd12f('0xf5')]>=_0x1b11eb['dialNoAnswerMaxRetry']){_0x3ac5ba[_0xd12f('0xfd')](_0x244c3f,_0x1f04c8,_0x4194e6,_0xd12f('0x1ae'));}else{_0x3ac5ba[_0xd12f('0x107')](_0x244c3f,_0x1f04c8,_0x4194e6,_0xd12f('0x1ae'));}}break;case'5':_0x1b11eb[_0xd12f('0x5b')]+=0x1;_0x244c3f[_0xd12f('0xe8')]=0x5;_0x244c3f[_0xd12f('0xa8')]=_0xd12f('0x1af');_0x244c3f['countbusyretry']+=0x1;_0x244c3f[_0xd12f('0xf1')]+=0x1;ami[_0xd12f('0x44')]('custom:agentbusy',ut[_0xd12f('0xeb')](_0x52c180,_0xd12f('0x1b0')));_0x3ac5ba[_0xd12f('0xcc')](_0x244c3f)[_0xd12f('0xb1')](loggerCatch(_0xd12f('0x1b1')));if(_0x3ac5ba['checkRetriveMax'](0x5,_0x52c180,_0x1b11eb)){if(_0x244c3f[_0xd12f('0xf3')]>=_0x1b11eb[_0xd12f('0x19e')]){_0x3ac5ba[_0xd12f('0xfd')](_0x244c3f,_0x1f04c8,_0x4194e6,_0xd12f('0x1b2'));}else{_0x3ac5ba['stateGlobal'](_0x244c3f,_0x1f04c8,_0x4194e6,'reason\x205\x20busy');}}break;case'8':_0x1b11eb['outboundCongestionCallsDay']+=0x1;_0x244c3f[_0xd12f('0xe8')]=0x8;_0x244c3f['statedesc']=_0xd12f('0x1b3');_0x244c3f['countcongestionretry']+=0x1;_0x244c3f[_0xd12f('0xf1')]+=0x1;ami[_0xd12f('0x44')](_0xd12f('0x1b4'),ut[_0xd12f('0xeb')](_0x52c180,'congestion'));_0x3ac5ba[_0xd12f('0xcc')](_0x244c3f)[_0xd12f('0xb1')](loggerCatch(_0xd12f('0x1b5')));if(_0x3ac5ba['checkRetriveMax'](0x8,_0x52c180,_0x1b11eb)){if(_0x244c3f[_0xd12f('0xf4')]>=_0x1b11eb[_0xd12f('0x1b6')]){_0x3ac5ba[_0xd12f('0xfd')](_0x244c3f,_0x1f04c8,_0x4194e6,_0xd12f('0x1b7'));}else{_0x3ac5ba['stateGlobal'](_0x244c3f,_0x1f04c8,_0x4194e6,'reason\x208\x20congestion');}}break;case'11':_0x1b11eb['outboundAbandonedCallsDay']+=0x1;_0x244c3f[_0xd12f('0xe8')]=0xb;_0x244c3f[_0xd12f('0xa8')]='Abandoned';_0x244c3f[_0xd12f('0xf8')]+=0x1;_0x244c3f[_0xd12f('0xf1')]+=0x1;_0x3ac5ba[_0xd12f('0xcc')](_0x244c3f)[_0xd12f('0xb1')](loggerCatch('[syncAgentComplete][createHistory][11]'));if(_0x3ac5ba[_0xd12f('0x19b')](0xb,_0x52c180,_0x1b11eb)){if(_0x244c3f['countabandonedretry']>=_0x1b11eb[_0xd12f('0x126')]){_0x3ac5ba[_0xd12f('0xfd')](_0x244c3f,_0x1f04c8,_0x4194e6,'reason\x2011\x20abandoned');}else{_0x3ac5ba['stateGlobal'](_0x244c3f,_0x1f04c8,_0x4194e6,_0xd12f('0x1b8'));}}break;case'20':_0x1b11eb['outboundRejectCallsDay']+=0x1;_0x244c3f[_0xd12f('0xe8')]=0x14;_0x244c3f[_0xd12f('0xa8')]=_0xd12f('0x1b9');_0x244c3f['countagentrejectretry']+=0x1;_0x244c3f[_0xd12f('0xf1')]+=0x1;ami[_0xd12f('0x44')]('custom:agentreject',ut[_0xd12f('0xeb')](_0x52c180,'agentreject'));_0x3ac5ba[_0xd12f('0xcc')](_0x244c3f)[_0xd12f('0xb1')](loggerCatch('[syncAgentComplete][createHistory][20]'));if(_0x3ac5ba[_0xd12f('0x19b')](0x14,_0x52c180,_0x1b11eb)){if(_0x244c3f[_0xd12f('0xf9')]>=_0x1b11eb[_0xd12f('0x1a3')]){_0x3ac5ba[_0xd12f('0xfd')](_0x244c3f,_0x1f04c8,_0x4194e6,_0xd12f('0x1ba'));}else{_0x3ac5ba['stateGlobal'](_0x244c3f,_0x1f04c8,_0x4194e6,_0xd12f('0x1ba'));}}break;default:_0x1b11eb[_0xd12f('0x63')]+=0x1;_0x244c3f['state']=0xc;_0x244c3f[_0xd12f('0xa8')]=_0x24e90a['reason'];_0x3ac5ba[_0xd12f('0xcc')](_0x244c3f)['catch'](loggerCatch(_0xd12f('0x1bb')));if(_0x3ac5ba[_0xd12f('0x19b')](_0x24e90a[_0xd12f('0x110')],_0x52c180,_0x1b11eb)){if(_0x244c3f['countbusyretry']+_0x244c3f[_0xd12f('0xf4')]+_0x244c3f[_0xd12f('0xf5')]+_0x244c3f[_0xd12f('0xf6')]+_0x244c3f[_0xd12f('0xf7')]+_0x244c3f['countabandonedretry']+_0x244c3f['countmachineretry']+_0x244c3f[_0xd12f('0xf9')]>=_0x1b11eb[_0xd12f('0xfa')]){_0x3ac5ba[_0xd12f('0x107')](_0x244c3f,_0x1f04c8,_0x4194e6,_0x24e90a[_0xd12f('0x110')]);}else{_0x3ac5ba[_0xd12f('0xfd')](_0x244c3f,_0x1f04c8,_0x4194e6,_0x24e90a[_0xd12f('0x110')]);}}}});};Dialer[_0xd12f('0xaa')][_0xd12f('0x107')]=function(_0x2bdd5e,_0x114a1a,_0x17afc5,_0x29ac08){var _0xd593e9=new Final(_0x2bdd5e);_0xd593e9[_0xd12f('0xe8')]=0xf;_0xd593e9[_0xd12f('0xa8')]=_0xd12f('0x1bc');this['createStateFinal'](_0xd593e9,_0x114a1a,_0x17afc5,_0x29ac08);};Dialer['prototype'][_0xd12f('0xfd')]=function(_0x1d99a2,_0x1b482d,_0x1531d2,_0x710f6b){this[_0xd12f('0xdf')](_0x1d99a2)[_0xd12f('0xba')](function(){return _0x1b482d(msgResponse(_0xd12f('0x1a6'),_0xd12f('0x1bd'),_0x710f6b));})[_0xd12f('0xb1')](function(){return _0x1531d2(msgResponse(_0xd12f('0x1be'),'Failure','contact\x20not\x20moved'));});};Dialer[_0xd12f('0xaa')][_0xd12f('0x160')]=function(_0x395e7e){var _0x3bbfca=_0x395e7e['dialPredictiveOptimizationPercentage']/0x64;var _0x369fd0=_0x395e7e[_0xd12f('0x5e')]/(_0x395e7e[_0xd12f('0x5e')]+_0x395e7e[_0xd12f('0xe7')]);var _0x2d0f2e=Math[_0xd12f('0x1bf')](_0x395e7e[_0xd12f('0x6d')]*(_0x395e7e['predictiveIntervalMaxThreshold']/0x64));var _0x5b86e9=Math[_0xd12f('0x1bf')](_0x395e7e[_0xd12f('0x6d')]*(_0x395e7e['predictiveIntervalMinThreshold']/0x64));var _0x45fc4c=_0x395e7e[_0xd12f('0x49')]+_0x395e7e[_0xd12f('0x4e')];var _0x22368f=Math['floor'](_0x395e7e[_0xd12f('0x6e')]*_0x395e7e[_0xd12f('0x70')]*_0x395e7e[_0xd12f('0x6a')]*_0x395e7e['predictiveIntervalMultiplicativeFactor']);if(_[_0xd12f('0x38')](_0x395e7e[_0xd12f('0x22')])){if(!_[_0xd12f('0x38')](_0x395e7e[_0xd12f('0x72')])){_0x395e7e['startPredictive']=undefined;loggerPredictive[_0xd12f('0x95')](_0xd12f('0x1c0'),_0xd12f('0x1c1'));}if(!_['isUndefined'](_0x395e7e['handlePredictive'])){loggerPredictive[_0xd12f('0x95')]('[startMethodPredictive][StartProgressive]',_0xd12f('0x1c2'));clearInterval(_0x395e7e[_0xd12f('0x8e')]);_0x395e7e[_0xd12f('0x8e')]=undefined;}_0x395e7e['startProgressive']=moment()[_0xd12f('0x79')](_0xd12f('0x108'));loggerPredictive[_0xd12f('0x7f')](_0x395e7e[_0xd12f('0x3d')],_0xd12f('0x1c3'),_0x395e7e['startProgressive']);this[_0xd12f('0x15e')](_0x395e7e,0x1);}else if(ifInterval(_0x395e7e[_0xd12f('0x1c4')],_0x395e7e[_0xd12f('0x22')])){this['handlePower'](_0x395e7e,0x1);loggerPredictiveCalls[_0xd12f('0x7f')](_0xd12f('0x1c5'),_0x395e7e[_0xd12f('0x22')],_0x395e7e[_0xd12f('0x3d')]);_0x395e7e[_0xd12f('0x6e')]=0x0;_0x395e7e[_0xd12f('0x69')]=0x0;}else if(_0x3bbfca<_0x369fd0&&_0x395e7e['dialPredictiveOptimization']===_0xd12f('0x1c6')){freeVariablesPredictive(_0x395e7e);loggerPredictive[_0xd12f('0x7f')]('[stopMethodPredictive][ReStartProgressive][ExceededDropDay]',_0xd12f('0x1c7'),_0x369fd0,'startProgressive',_0x395e7e[_0xd12f('0x3d')]);}else if(_0x22368f<_0x395e7e[_0xd12f('0x69')]&&_0x395e7e[_0xd12f('0x1c8')]===_0xd12f('0x1c6')){freeVariablesPredictive(_0x395e7e);loggerPredictive[_0xd12f('0x7f')](_0xd12f('0x1c9'),_0xd12f('0x1ca'),_0x22368f,_0xd12f('0x1cb'),_0x395e7e['predictiveIntervalErlangCallsDroppedCalls'],_0xd12f('0x22'),_0x395e7e[_0xd12f('0x3d')]);}else if(!ifInterval(_0x395e7e[_0xd12f('0x1c4')],_0x395e7e[_0xd12f('0x22')])&&_[_0xd12f('0x38')](_0x395e7e['startPredictive'])&&!_['isUndefined'](_0x395e7e[_0xd12f('0x22')])){_0x395e7e[_0xd12f('0x72')]=moment()[_0xd12f('0x79')](_0xd12f('0x108'));loggerPredictive['info'](_0x395e7e[_0xd12f('0x3d')],_0xd12f('0x1cc'),_0x395e7e[_0xd12f('0x72')]);this[_0xd12f('0xbd')](_0x395e7e[_0xd12f('0x1c4')])[_0xd12f('0xba')](this[_0xd12f('0x1cd')](_0x395e7e))[_0xd12f('0xba')](mergeDataErlangB(_0x395e7e))[_0xd12f('0xba')](this[_0xd12f('0x1ce')](_0x395e7e))['catch'](loggerCatchPredictive(_0xd12f('0x1cf'),_0x395e7e));}else if(!ifInterval(_0x395e7e['dialPredictiveInterval'],_0x395e7e[_0xd12f('0x72')])){_0x395e7e[_0xd12f('0x69')]=0x0;_0x395e7e[_0xd12f('0x72')]=moment()['format'](_0xd12f('0x108'));loggerPredictive[_0xd12f('0x7f')](_0x395e7e['name'],_0xd12f('0x1d0'),_0x395e7e[_0xd12f('0x72')]);clearInterval(_0x395e7e[_0xd12f('0x8e')]);_0x395e7e[_0xd12f('0x8e')]=undefined;this[_0xd12f('0xbd')](_0x395e7e['dialPredictiveInterval'])[_0xd12f('0xba')](this['getDataPredictive'](_0x395e7e))['then'](mergeDataErlangB(_0x395e7e))[_0xd12f('0xba')](this[_0xd12f('0x1ce')](_0x395e7e))[_0xd12f('0xb1')](loggerCatchPredictive(_0xd12f('0x1d1'),_0x395e7e));}else if(_0x395e7e[_0xd12f('0x6d')]&&_0x45fc4c<_0x395e7e[_0xd12f('0x6d')]-_0x5b86e9){freeVariablesPredictive(_0x395e7e);loggerPredictive[_0xd12f('0x7f')](_0x395e7e[_0xd12f('0x3d')],_0xd12f('0x1d2'),_0x45fc4c,_0xd12f('0x1d3'),_0x395e7e[_0xd12f('0x6d')],'-',_0x5b86e9,'=',_0x395e7e['predictiveIntervalAvailable']-_0x5b86e9,')');}else if(_0x395e7e[_0xd12f('0x6d')]&&_0x45fc4c>_0x395e7e['predictiveIntervalAvailable']+_0x2d0f2e){freeVariablesPredictive(_0x395e7e);loggerPredictive[_0xd12f('0x7f')](_0x395e7e[_0xd12f('0x3d')],'switch\x20in\x20progressive\x20because\x20available\x20agents\x20(',_0x45fc4c,_0xd12f('0x1d4'),_0x395e7e['predictiveIntervalAvailable'],'+',_0x2d0f2e,'=',_0x395e7e[_0xd12f('0x6d')]+_0x2d0f2e,')');}};Dialer[_0xd12f('0xaa')]['getDataPredictive']=function(_0x27936b){var _0x4024d8=this;return function(_0x454c90){return new BPromise(function(_0xe2cf0c,_0xc96c60){_[_0xd12f('0x8b')](_0x27936b,_0x454c90[0x0]);if(checkGetDataPredictive(_0x454c90[0x0])){var _0x2d741c=_0x27936b[_0xd12f('0x6d')]=_0x27936b['talking']+_0x27936b[_0xd12f('0x49')];var _0x39bc9a=_0x27936b[_0xd12f('0x1c4')]*0x3c;var _0x5a2a9f=_0x454c90[0x0][_0xd12f('0x66')]+_0x454c90[0x0][_0xd12f('0x65')];var _0x10c979=(_0x454c90[0x0][_0xd12f('0x64')]+_0x454c90[0x0][_0xd12f('0x68')]+_0x454c90[0x0]['predictiveIntervalDroppedCallsCallersExit'])/_0x454c90[0x0]['predictiveIntervalTotalCalls'];_0x27936b[_0xd12f('0x6a')]=_0x10c979>0x0?_0x10c979:0x1;switch(_0x27936b[_0xd12f('0x1c8')]){case _0xd12f('0x1c6'):var _0x277e6a=_0x27936b[_0xd12f('0x1d5')]/0x64;return _0x4024d8[_0xd12f('0x1d6')](_0x2d741c,_0x39bc9a,_0x5a2a9f,_0x10c979,_0x277e6a)[_0xd12f('0xba')](function(_0x4ee904){return _0xe2cf0c(_0x4ee904);});case _0xd12f('0x1d7'):var _0x6849f3=_0x27936b[_0xd12f('0x1d5')]/0x64;return _0x4024d8['busyFactor'](_0x2d741c,_0x39bc9a,_0x5a2a9f,_0x10c979,_0x6849f3)[_0xd12f('0xba')](function(_0x2f01f9){return _0xe2cf0c(_0x2f01f9);});default:return _0xc96c60(msgResponse(_0xd12f('0x1d8'),_0xd12f('0x149'),_0xd12f('0x1d9')));}}else{return _0xc96c60(msgResponse(_0xd12f('0x1d8'),_0xd12f('0x149'),_0xd12f('0x1da')));}});};};Dialer[_0xd12f('0xaa')]['getDataPredictiveOld']=function(_0xe606d3){var _0x3de0ef=this;return function(_0x449768){return new BPromise(function(_0x215aff,_0x49f430){_[_0xd12f('0x8b')](_0xe606d3,_0x449768[0x0]);if(checkGetDataPredictive(_0x449768[0x0])){loggerPredictive[_0xd12f('0x7f')](JSON[_0xd12f('0x41')](_0x449768[0x0]));if(_0xe606d3[_0xd12f('0x1c8')]==='dropRate'){return _0x3de0ef['getVoiceQueueRtPauses'](_0xe606d3['id'])[_0xd12f('0xba')](function(_0x57cefd){var _0x10b268=_0xe606d3[_0xd12f('0x4a')]-_0x57cefd[0x0][_0xd12f('0x1db')];var _0x1531fa=_0xe606d3[_0xd12f('0x1c4')]*0x3c;var _0x4e26cc=_0x449768[0x0][_0xd12f('0x66')]+_0x449768[0x0]['predictiveIntervalAvgHoldtime'];var _0xe38ec8=(_0x449768[0x0]['predictiveIntervalAnsweredCalls']+_0x449768[0x0][_0xd12f('0x68')]+_0x449768[0x0][_0xd12f('0x67')])/_0x449768[0x0][_0xd12f('0x7e')];var _0x2fbb97=_0xe606d3[_0xd12f('0x1d5')]/0x64;_0xe606d3[_0xd12f('0x6c')]=_0x57cefd[0x0][_0xd12f('0x1db')]||0x0;_0xe606d3[_0xd12f('0x6a')]=_0xe38ec8>0x0?_0xe38ec8:0x1;return _0x3de0ef[_0xd12f('0x1d6')](_0x10b268,_0x1531fa,_0x4e26cc,_0xe38ec8,_0x2fbb97);})[_0xd12f('0xba')](function(_0x2a17ac){return _0x215aff(_0x2a17ac);})[_0xd12f('0xb1')](function(_0x3b4a80){return _0x49f430(msgResponse(_0xd12f('0x1dc'),_0xd12f('0x149'),JSON[_0xd12f('0x41')](_0x3b4a80)));});}if(_0xe606d3[_0xd12f('0x1c8')]===_0xd12f('0x1d7')){return _0x3de0ef['getVoiceQueueRtPauses'](_0xe606d3['id'])['then'](function(_0x3b6114){var _0x5ae593=_0xe606d3[_0xd12f('0x4a')]-_0x3b6114[0x0]['outboundQueuePauses'];var _0x200d09=_0xe606d3[_0xd12f('0x1c4')]*0x3c;var _0x463b68=_0x449768[0x0][_0xd12f('0x66')]+_0x449768[0x0][_0xd12f('0x65')];var _0x57d262=(_0x449768[0x0][_0xd12f('0x64')]+_0x449768[0x0][_0xd12f('0x68')]+_0x449768[0x0][_0xd12f('0x67')])/_0x449768[0x0][_0xd12f('0x7e')];var _0x3638ba=_0xe606d3[_0xd12f('0x1d5')]/0x64;_0xe606d3['predictiveIntervalPauses']=_0x3b6114[0x0][_0xd12f('0x1db')]||0x0;_0xe606d3[_0xd12f('0x6a')]=_0x57d262>0x0?_0x57d262:0x1;return _0x3de0ef[_0xd12f('0x1dd')](_0x5ae593,_0x200d09,_0x463b68,_0x57d262,_0x3638ba);})['then'](function(_0x32261c){return _0x215aff(_0x32261c);})[_0xd12f('0xb1')](function(_0x1a7df2){return _0x49f430(msgResponse('[CatchErlangB]','Failure',JSON[_0xd12f('0x41')](_0x1a7df2)));});}}else{return _0x49f430(msgResponse(_0xd12f('0x1d8'),_0xd12f('0x149'),_0xd12f('0x1da')));}});};};Dialer['prototype'][_0xd12f('0x1ce')]=function(_0x2d6437){var _0x178031=this;return function(){var _0x1305ba=0x0;var _0x2a03e9=Math['floor'](_0x2d6437[_0xd12f('0x6f')]*0x3e8);if(_0x2a03e9>0x0){_0x2a03e9=_0x2a03e9<0x64?0x64:_0x2a03e9;loggerPredictive[_0xd12f('0x7f')](_0x2d6437[_0xd12f('0x3d')],_0xd12f('0x1de'),_0x2a03e9,_0xd12f('0x42'));_0x2d6437[_0xd12f('0x8e')]=setInterval(function(){_0x178031[_0xd12f('0x8e')](_0x2d6437);loggerPredictiveCalls[_0xd12f('0x7f')]('[handlePredictive]',_0x1305ba+=0x1);},_0x2a03e9);}else{loggerPredictive[_0xd12f('0x7f')](_0x2d6437[_0xd12f('0x3d')],_0xd12f('0x1df'));}};};Dialer[_0xd12f('0xaa')]['checkContactBlack']=function(_0x357840,_0x25f9a0){var _0x5f90fb=this;return function(_0x5b8736){if(_['isEmpty'](_0x5b8736)){if(_[_0xd12f('0xe1')](_0x25f9a0['UserId'])||!_0x25f9a0[_0xd12f('0x1e0')]){if(_0x357840[_0xd12f('0x55')]===_0xd12f('0x161')){_0x357840[_0xd12f('0x134')]=_[_0xd12f('0x38')](_0x357840[_0xd12f('0x134')])?!![]:_0x357840['queueStatusComplete'];var _0xb8b1e1=uuid['v4']();_0x5f90fb['actions'][_0xb8b1e1]=new Action(_0x357840,_0x25f9a0,_0xb8b1e1);loggerBooked[_0xd12f('0x7f')](_0xd12f('0x1e1'),_0xb8b1e1,_0xd12f('0x1e2'),JSON['stringify'](_0x357840[_0xd12f('0x134')]),_0xd12f('0x1e3'),_0x357840[_0xd12f('0x3d')]);if(_0x357840['queueStatusComplete']){_0x357840['queueStatusComplete']=![];_0x5f90fb[_0xd12f('0x24')][_0x5f90fb['actions'][_0xb8b1e1][_0xd12f('0xb4')]]=[];ami[_0xd12f('0xae')]({'actionid':_0xb8b1e1,'action':_0xd12f('0x1e4'),'queue':_0x357840[_0xd12f('0x3d')]})[_0xd12f('0xb1')](function(){_0x5f90fb[_0xd12f('0xb5')](_0x357840);_0x5f90fb['rescheduleContact']({'active':![],'ContactId':_0x5f90fb[_0xd12f('0x1e')][_0xb8b1e1][_0xd12f('0xd5')],'ListId':_0x5f90fb[_0xd12f('0x1e')][_0xb8b1e1][_0xd12f('0x129')],'VoiceQueueId':_0x5f90fb[_0xd12f('0x1e')][_0xb8b1e1][_0xd12f('0xd7')]||undefined,'CampaignId':_0x5f90fb[_0xd12f('0x1e')][_0xb8b1e1][_0xd12f('0xd8')]||undefined})[_0xd12f('0xb1')](loggerCatch(_0xd12f('0x1e5')));delete _0x5f90fb[_0xd12f('0x1e')][_0xb8b1e1];});}else{loggerBooked['info'](_0xd12f('0x1e6'),JSON[_0xd12f('0x41')](_0x357840[_0xd12f('0x134')]),_0xd12f('0x1e3'),_0x357840[_0xd12f('0x3d')]);_0x5f90fb[_0xd12f('0xb5')](_0x357840);_0x5f90fb['rescheduleContact']({'active':![],'ContactId':_0x5f90fb[_0xd12f('0x1e')][_0xb8b1e1][_0xd12f('0xd5')],'ListId':_0x5f90fb['actions'][_0xb8b1e1][_0xd12f('0x129')],'VoiceQueueId':_0x5f90fb[_0xd12f('0x1e')][_0xb8b1e1][_0xd12f('0xd7')]||undefined,'CampaignId':_0x5f90fb[_0xd12f('0x1e')][_0xb8b1e1][_0xd12f('0xd8')]||undefined})[_0xd12f('0xb1')](loggerCatch(_0xd12f('0x1e5')));delete _0x5f90fb[_0xd12f('0x1e')][_0xb8b1e1];}}else{return _0x5f90fb[_0xd12f('0x1e7')](_0x357840,_0x25f9a0);}}else{if(getDiff(_0x25f9a0['scheduledat'])<_0x357840[_0xd12f('0x1e8')]*0x3c){if(_0x25f9a0[_0xd12f('0x1e9')]&&!_0x25f9a0[_0xd12f('0x1e9')][_0xd12f('0x1ea')]){_0x5f90fb[_0xd12f('0x90')]['run'](_0x25f9a0['id'])[_0xd12f('0x16')](function(){_0x5f90fb['updateOriginated'](_0x357840);});}else{_0x5f90fb[_0xd12f('0xc2')]({'active':![]},_0x25f9a0['id'],0x1)[_0xd12f('0x16')](function(){_0x5f90fb[_0xd12f('0xb5')](_0x357840);});}}else{_0x357840[_0xd12f('0x61')]+=0x1;_0x5f90fb['updateOriginated'](_0x357840);if(_0x357840[_0xd12f('0x1eb')]){_0x5f90fb['rescheduleContact']({'active':![],'recallme':![],'UserId':null,'ContactId':_0x25f9a0['ContactId'],'ListId':_0x25f9a0[_0xd12f('0x129')],'VoiceQueueId':_0x25f9a0['VoiceQueueId']||undefined,'CampaignId':_0x25f9a0[_0xd12f('0xd8')]||undefined})[_0xd12f('0xb1')](loggerCatch(_0xd12f('0x1ec')));_0x5f90fb[_0xd12f('0xcc')](createObjHistory(_0x357840,_0x25f9a0,_0xd12f('0x1ed'),0x17,_0xd12f('0x1ee')))[_0xd12f('0xb1')](loggerCatch(_0xd12f('0x1ef')));}else{_0x5f90fb['saveInDb'](createObjHistory(_0x357840,_0x25f9a0,_0xd12f('0x1f0'),0x16,_0xd12f('0x1f1')),_0xd12f('0x1f2'),_0xd12f('0x1f3'));}}}}else{_0x357840['outboundBlacklistCallsDay']+=0x1;_0x5f90fb[_0xd12f('0xed')](createObjHistory(_0x357840,_0x25f9a0,'BLACKLIST',0xd,_0xd12f('0x1f4')),_0xd12f('0x1f5'),'[Originate][MoveBlacklist]');throw _0xd12f('0x1f6');}};};Dialer['prototype'][_0xd12f('0x1f7')]=function(_0x4071c7){var _0x1a8985=this;var _0x11c383=_0x4071c7['limitCalls']-_0x4071c7[_0xd12f('0x98')]-_0x4071c7[_0xd12f('0xc5')];emitCampaignSummary(_0x4071c7);if(_0x11c383>0x0){if(_0x11c383>this['maxNumberOriginate']){_0x11c383=this[_0xd12f('0x1c')];}_0x4071c7[_0xd12f('0xc5')]+=_0x11c383;this[_0xd12f('0xc7')](_0x4071c7['id'],_0x11c383,_0x4071c7[_0xd12f('0x1f8')],_0x4071c7)[_0xd12f('0xba')](function(_0x19aafe){_0x4071c7['temp']-=_0x11c383;_0x4071c7['temp']=_0x4071c7[_0xd12f('0xc5')]>0x0?_0x4071c7[_0xd12f('0xc5')]:0x0;if(!checkContactEmpty(_0x19aafe)){_0x4071c7['message']='AVAILABLE_CONTACTS_FINISHED';logger[_0xd12f('0x7f')](_0xd12f('0x1f9')+_0x4071c7['name']);}else{_0x4071c7['originated']+=_0x19aafe[_0xd12f('0x97')];_0x4071c7[_0xd12f('0x39')]=_0xd12f('0x1fa');for(var _0x56b7e0=0x0;_0x56b7e0<_0x19aafe['length'];_0x56b7e0+=0x1){_0x4071c7[_0xd12f('0x1fb')]+=0x1;if(_['isNil'](_0x19aafe[_0x56b7e0])||_[_0xd12f('0xe1')](_0x19aafe[_0x56b7e0]['Contact'])||_[_0xd12f('0xe1')](_0x19aafe[_0x56b7e0][_0xd12f('0x173')]['phone'])){_0x1a8985[_0xd12f('0xd2')](_0xd12f('0x1fc'),_0x4071c7,_0x19aafe[_0x56b7e0]);}else{_0x1a8985[_0xd12f('0xbb')](_['pick'](_0x19aafe[_0x56b7e0],[_0xd12f('0xd8'),'Contact.phone']))[_0xd12f('0xba')](_0x1a8985[_0xd12f('0x1fd')](_0x4071c7,_0x19aafe[_0x56b7e0]))[_0xd12f('0xb1')](_0x1a8985[_0xd12f('0xd1')]('[actionOriginateIvr]\x20',_0x4071c7));}}}})[_0xd12f('0xb1')](loggerGetContactDialer('[getContactCampaign2]',_0x4071c7,_0x11c383));}};Dialer[_0xd12f('0xaa')][_0xd12f('0x15e')]=function(_0x5ea4ed,_0x581571){var _0x1bb011=this;var _0xe50190=[];var _0x49354f=_0x581571>=0x1?_0x581571:0x1;if(_0x5ea4ed['dialMethod']===_0xd12f('0x161')){_0x49354f=0x1;}var _0x53ca68=Math[_0xd12f('0x1fe')](_0x5ea4ed['available']*_0x49354f)-_0x5ea4ed[_0xd12f('0x98')]-_0x5ea4ed[_0xd12f('0xc5')];emitVoiceQueueSummary(_0x5ea4ed);if(_0x5ea4ed[_0xd12f('0x1ff')]>0x0){var _0x309bbe=_0x5ea4ed[_0xd12f('0x1ff')]-_0x5ea4ed[_0xd12f('0x98')]-_0x5ea4ed['talking']-_0x5ea4ed[_0xd12f('0xc5')]-_0x5ea4ed[_0xd12f('0xa2')];if(_0x53ca68>_0x309bbe){_0x53ca68=_0x309bbe;}}if(_0x53ca68>0x0){if(_0x5ea4ed[_0xd12f('0x55')]==='booked'){_0x53ca68=0x1;}if(_0x53ca68>this[_0xd12f('0x1c')]){_0x53ca68=this['maxNumberOriginate'];}_0x5ea4ed[_0xd12f('0xc5')]+=_0x53ca68;for(var _0x42b202 in this[_0xd12f('0x1a')]){if(typeof this[_0xd12f('0x1a')][_0x42b202]!==_0xd12f('0xce')){if(this[_0xd12f('0x1a')][_0x42b202][_0xd12f('0xe8')]===_0xd12f('0x200')&&this['agents'][_0x42b202][_0xd12f('0xaf')]===_0xd12f('0xdd')){_0xe50190[_0xd12f('0x151')](this[_0xd12f('0x1a')][_0x42b202]['id']);}}}this[_0xd12f('0xc4')](_0x5ea4ed['id'],_0xe50190,_0x53ca68,_0x5ea4ed[_0xd12f('0x1f8')],_0x5ea4ed)[_0xd12f('0xba')](function(_0x30ba4f){_0x5ea4ed['temp']-=_0x53ca68;_0x5ea4ed[_0xd12f('0xc5')]=_0x5ea4ed['temp']>0x0?_0x5ea4ed[_0xd12f('0xc5')]:0x0;if(!checkContactEmpty(_0x30ba4f)){_0x1bb011[_0xd12f('0xb6')](_0x5ea4ed)['then'](sendMessageReschedule(_0x5ea4ed))[_0xd12f('0xb1')](loggerCatch(_0xd12f('0xb7')));}else{_0x5ea4ed[_0xd12f('0x98')]+=_0x30ba4f['length'];_0x5ea4ed[_0xd12f('0x39')]=_0x5ea4ed['dialMethod']==='booked'?_0xd12f('0x179'):'RUNNING';for(var _0x286f0c=0x0;_0x286f0c<_0x30ba4f[_0xd12f('0x97')];_0x286f0c+=0x1){if(_[_0xd12f('0xe1')](_0x30ba4f[_0x286f0c])||_['isNil'](_0x30ba4f[_0x286f0c][_0xd12f('0x173')])||_['isNil'](_0x30ba4f[_0x286f0c][_0xd12f('0x173')]['phone'])){_0x1bb011[_0xd12f('0xd2')](_0xd12f('0x1fc'),_0x5ea4ed,_0x30ba4f[_0x286f0c]);}else{_0x1bb011[_0xd12f('0xb8')](_[_0xd12f('0xd4')](_0x30ba4f[_0x286f0c],[_0xd12f('0xd7'),_0xd12f('0x201')]))[_0xd12f('0xba')](_0x1bb011[_0xd12f('0x1fd')](_0x5ea4ed,_0x30ba4f[_0x286f0c]))[_0xd12f('0xb1')](_0x1bb011['loggerHandler'](_0xd12f('0x1fc'),_0x5ea4ed));}}}})['catch'](loggerGetContactDialer('[getContactDialer2]',_0x5ea4ed,_0x53ca68));}};Dialer['prototype'][_0xd12f('0x8e')]=function(_0x1439a4){if(_0x1439a4['dialLimitQueue']>0x0){var _0x8464a9=_0x1439a4['dialLimitQueue']-_0x1439a4[_0xd12f('0x98')]-_0x1439a4['talking'];if(_0x8464a9>0x0){this[_0xd12f('0x202')](_0x1439a4);}else{loggerPredictiveCalls[_0xd12f('0x7f')]('[handlePredictive][limitChannel]');}}else{this[_0xd12f('0x202')](_0x1439a4);}};Dialer[_0xd12f('0xaa')]['tryOriginatePredictive']=function(_0x2adb6d){var _0x4fdf47=this;var _0xdcaf29=[];_0x2adb6d[_0xd12f('0x98')]+=0x1;for(var _0x3a98e1 in this[_0xd12f('0x1a')]){if(typeof this[_0xd12f('0x1a')][_0x3a98e1]!==_0xd12f('0xce')){if(this[_0xd12f('0x1a')][_0x3a98e1][_0xd12f('0xe8')]===_0xd12f('0x200')&&this['agents'][_0x3a98e1][_0xd12f('0xaf')]==='reachable'){_0xdcaf29[_0xd12f('0x151')](this[_0xd12f('0x1a')][_0x3a98e1]['id']);}}}this[_0xd12f('0xc4')](_0x2adb6d['id'],_0xdcaf29,0x1,_0x2adb6d[_0xd12f('0x1f8')],_0x2adb6d)[_0xd12f('0xba')](function(_0x1c26db){if(!checkContactEmpty(_0x1c26db)){checkContactLowerLimitOriginate(_0x2adb6d,0x1,0x0);_0x4fdf47['countReScheduled'](_0x2adb6d)[_0xd12f('0xba')](sendMessageReschedule(_0x2adb6d))[_0xd12f('0xb1')](loggerCatch(_0xd12f('0xb7')));}else{_0x2adb6d['message']=_0xd12f('0x1fa');if(_[_0xd12f('0xe1')](_0x1c26db[0x0])||_[_0xd12f('0xe1')](_0x1c26db[0x0]['Contact'])||_[_0xd12f('0xe1')](_0x1c26db[0x0][_0xd12f('0x173')]['phone'])){_0x4fdf47[_0xd12f('0xd2')](_0xd12f('0x1fc'),_0x2adb6d,_0x1c26db[0x0]);}else{_0x4fdf47[_0xd12f('0xb8')](_['pick'](_0x1c26db[0x0],[_0xd12f('0xd7'),'Contact.phone']))[_0xd12f('0xba')](_0x4fdf47[_0xd12f('0x1fd')](_0x2adb6d,_0x1c26db[0x0]))[_0xd12f('0xb1')](_0x4fdf47['loggerHandler'](_0xd12f('0x203'),_0x2adb6d));}}})[_0xd12f('0xb1')](loggerGetContactDialer(_0xd12f('0x204'),_0x2adb6d,0x1));emitVoiceQueueSummary(_0x2adb6d);};Dialer[_0xd12f('0xaa')][_0xd12f('0x1d6')]=function(_0x46ea1e,_0x4c8180,_0x3c282c,_0x8c4ac,_0x3eeef5,_0x511119){loggerPredictive[_0xd12f('0x7f')](_0xd12f('0x205'));loggerPredictive['info'](_0xd12f('0x206'),_0x46ea1e);loggerPredictive['info'](_0xd12f('0x207'),_0x4c8180);loggerPredictive[_0xd12f('0x7f')]('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',_0x3c282c);loggerPredictive[_0xd12f('0x7f')]('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',_0x8c4ac);loggerPredictive[_0xd12f('0x7f')](_0xd12f('0x208'),_0x3eeef5);loggerPredictive[_0xd12f('0x7f')]('---------------------------');return new BPromise(function(_0x25adb2,_0x354231){if(_0x46ea1e<=0x0||isNaN(_0x46ea1e)){return _0x354231(msgResponse('[abandonmentRate]','Error',_0xd12f('0x209')+_0x46ea1e));}if(_0x3c282c<=0x0||isNaN(_0x3c282c)){return _0x354231(msgResponse(_0xd12f('0x20a'),'Error',_0xd12f('0x20b')+_0x3c282c));}if(_0x8c4ac<=0x0||isNaN(_0x8c4ac)){return _0x354231(msgResponse(_0xd12f('0x20a'),'Error',_0xd12f('0x20c')+_0x8c4ac));}if(_0x4c8180<=0x0||isNaN(_0x4c8180)){return _0x354231(msgResponse('[abandonmentRate]','Error',_0xd12f('0x20d')+_0x4c8180));}if(_0x3eeef5<=0x0||isNaN(_0x3eeef5)){return _0x354231(msgResponse(_0xd12f('0x20a'),_0xd12f('0x196'),_0xd12f('0x20e')+_0x3eeef5));}_0x511119=_0x511119||0x0;var _0x86e1d4=0x1/_0x3c282c;var _0x46475d=0x0;var _0x4d0434=0x0;var _0x57e348=0x0;var _0x5b7ebe=0x0;for(var _0x2d6c37=0x0;_0x57e348<_0x3eeef5;_0x2d6c37+=0x1){_0x4d0434=_0x2d6c37/_0x4c8180;_0x46475d=(_0x8c4ac*_0x4d0434+_0x511119)/_0x86e1d4;_0x57e348=erlangb(_0x46475d,_0x46ea1e);_0x5b7ebe=_0x46475d/_0x46ea1e*(0x1-erlangb(_0x46475d,_0x46ea1e));}return _0x25adb2({'erlangCalls':_0x2d6c37,'erlangCallToSecond':_0x4c8180/_0x2d6c37,'erlangAbandonmentRate':_0x57e348,'erlangBusyFactor':_0x5b7ebe});});};Dialer[_0xd12f('0xaa')]['busyFactor']=function(_0x275efb,_0x2fec03,_0x2a495e,_0x2a0f33,_0x52638f,_0xbc59be){loggerPredictive[_0xd12f('0x7f')](_0xd12f('0x20f'));loggerPredictive[_0xd12f('0x7f')]('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',_0x275efb);loggerPredictive[_0xd12f('0x7f')](_0xd12f('0x207'),_0x2fec03);loggerPredictive[_0xd12f('0x7f')](_0xd12f('0x210'),_0x2a495e);loggerPredictive[_0xd12f('0x7f')](_0xd12f('0x211'),_0x2a0f33);loggerPredictive[_0xd12f('0x7f')](_0xd12f('0x212'),_0x52638f);loggerPredictive[_0xd12f('0x7f')]('---------------------------');return new BPromise(function(_0x4bbc56,_0x1868a9){if(_0x275efb<=0x0||isNaN(_0x275efb)){return _0x1868a9(msgResponse('[busyFactor]',_0xd12f('0x196'),_0xd12f('0x209')+_0x275efb));}if(_0x2a495e<=0x0||isNaN(_0x2a495e)){return _0x1868a9(msgResponse(_0xd12f('0x213'),_0xd12f('0x196'),_0xd12f('0x20b')+_0x2a495e));}if(_0x2a0f33<=0x0||isNaN(_0x2a0f33)){return _0x1868a9(msgResponse('[busyFactor]',_0xd12f('0x196'),_0xd12f('0x20c')+_0x2a0f33));}if(_0x2fec03<=0x0||isNaN(_0x2fec03)){return _0x1868a9(msgResponse('[busyFactor]',_0xd12f('0x196'),_0xd12f('0x20d')+_0x2fec03));}if(_0x52638f<=0x0||isNaN(_0x52638f)){return _0x1868a9(msgResponse(_0xd12f('0x213'),_0xd12f('0x196'),'Umin\x20=\x20'+_0x52638f));}_0xbc59be=_0xbc59be||0x0;var _0x2d3909=0x1/_0x2a495e;var _0xfc37ab=0x0;var _0x3bd993=0x0;var _0x25293f=0x0;var _0x3cedc1=0x0;for(var _0x31f6fe=0x0;_0x3cedc1<_0x52638f;_0x31f6fe+=0x1){_0x3bd993=_0x31f6fe/_0x2fec03;_0xfc37ab=(_0x2a0f33*_0x3bd993+_0xbc59be)/_0x2d3909;_0x25293f=erlangb(_0xfc37ab,_0x275efb);_0x3cedc1=_0xfc37ab/_0x275efb*(0x1-erlangb(_0xfc37ab,_0x275efb));}return _0x4bbc56({'erlangCalls':_0x31f6fe,'erlangCallToSecond':_0x2fec03/_0x31f6fe,'erlangAbandonmentRate':_0x25293f,'erlangBusyFactor':_0x3cedc1});});};module[_0xd12f('0x214')]=Dialer;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd68c=['callbackat','recallme','ContactId','ListId','UserId','CampaignId','originatecalleridnum','originatecalleridname','exports','util','milliseconds','diff','seconds','scheduledat','type','outbound','queue','countbusyretry','countcongestionretry','countnoanswerretry','countnosuchnumberretry','countdropretry','countagentrejectretry','countabandonedretry','countmachineretry','uniqueid','name','calleridnum','number','starttime','responsetime','droptime','talktime','membername','connectedlinename','reason','callback','callbackuniqueid'];(function(_0x5252ee,_0x195a64){var _0x1917d7=function(_0x2e497f){while(--_0x2e497f){_0x5252ee['push'](_0x5252ee['shift']());}};_0x1917d7(++_0x195a64);}(_0xd68c,0x113));var _0xcd68=function(_0x1f10f8,_0x3df17e){_0x1f10f8=_0x1f10f8-0x0;var _0xdc191f=_0xd68c[_0x1f10f8];return _0xdc191f;};'use strict';var util=require(_0xcd68('0x0'));var _=require('lodash');var moment=require('moment');function getSeconds(_0x309441,_0x2ac906){var _0x195644=moment(_0x309441)[_0xcd68('0x1')](0x0);var _0x50aae6=moment(_0x2ac906)[_0xcd68('0x1')](0x0);return _0x195644[_0xcd68('0x2')](_0x50aae6,_0xcd68('0x3'));}function QueueCallerAbandon(_0x34d1ad,_0x469993){this[_0xcd68('0x4')]=_0x34d1ad[_0xcd68('0x4')];this[_0xcd68('0x5')]=_0x34d1ad[_0xcd68('0x5')];this['campaigntype']=_0x34d1ad[_0xcd68('0x5')]===_0xcd68('0x6')?_0xcd68('0x7'):_0x34d1ad[_0xcd68('0x5')];this[_0xcd68('0x8')]=_0x34d1ad['countbusyretry'];this[_0xcd68('0x9')]=_0x34d1ad[_0xcd68('0x9')];this['countnoanswerretry']=_0x34d1ad[_0xcd68('0xa')];this['countglobal']=_0x34d1ad[_0xcd68('0x8')]+_0x34d1ad[_0xcd68('0x9')]+_0x34d1ad['countnoanswerretry']+_0x34d1ad[_0xcd68('0xb')]+_0x34d1ad[_0xcd68('0xc')]+_0x34d1ad['countabandonedretry']+_0x34d1ad['countmachineretry']+_0x34d1ad[_0xcd68('0xd')];this[_0xcd68('0xb')]=_0x34d1ad[_0xcd68('0xb')];this[_0xcd68('0xc')]=_0x34d1ad['countdropretry'];this[_0xcd68('0xe')]=_0x34d1ad['countabandonedretry'];this[_0xcd68('0xf')]=_0x34d1ad[_0xcd68('0xf')];this[_0xcd68('0xd')]=_0x34d1ad[_0xcd68('0xd')];this[_0xcd68('0x10')]=_0x469993[_0xcd68('0x10')];this['calleridname']=_0x34d1ad[_0xcd68('0x11')];this[_0xcd68('0x12')]=_0x34d1ad[_0xcd68('0x13')];this[_0xcd68('0x14')]=_0x34d1ad[_0xcd68('0x14')];this['responsetime']=_0x34d1ad[_0xcd68('0x15')];this[_0xcd68('0x16')]=_0x34d1ad['droptime'];this['endtime']=this['droptime'];this['ringtime']=getSeconds(_0x34d1ad[_0xcd68('0x15')],_0x34d1ad[_0xcd68('0x14')]);this['holdtime']=getSeconds(this[_0xcd68('0x16')],_0x34d1ad['responsetime']);this[_0xcd68('0x17')]=0x0;this[_0xcd68('0x7')]=_0x469993[_0xcd68('0x7')];this[_0xcd68('0x18')]=_0x469993[_0xcd68('0x19')];this[_0xcd68('0x1a')]=_0x469993[_0xcd68('0x1a')];this[_0xcd68('0x1b')]=_0x34d1ad[_0xcd68('0x1b')];this['callbackuniqueid']=_0x34d1ad[_0xcd68('0x1c')];this[_0xcd68('0x1d')]=_0x34d1ad[_0xcd68('0x1d')];this[_0xcd68('0x1e')]=_0x34d1ad[_0xcd68('0x1e')];this[_0xcd68('0x1f')]=_0x34d1ad[_0xcd68('0x1f')];this['ListId']=_0x34d1ad[_0xcd68('0x20')];this[_0xcd68('0x21')]=_0x34d1ad[_0xcd68('0x21')];this['VoiceQueueId']=_0x34d1ad['VoiceQueueId'];this[_0xcd68('0x22')]=_0x34d1ad['CampaignId'];this[_0xcd68('0x23')]=_0x34d1ad[_0xcd68('0x23')]||'';this[_0xcd68('0x24')]=_0x34d1ad['originatecalleridname']||'';}module[_0xcd68('0x25')]=QueueCallerAbandon;
\ No newline at end of file
+var _0x96f0=['campaigntype','outbound','queue','countbusyretry','countcongestionretry','countnoanswerretry','countglobal','countnosuchnumberretry','countabandonedretry','countagentrejectretry','countmachineretry','uniqueid','calleridname','name','calleridnum','number','starttime','responsetime','droptime','endtime','ringtime','membername','connectedlinename','reason','callback','callbackuniqueid','callbackat','recallme','ContactId','ListId','UserId','VoiceQueueId','CampaignId','originatecalleridnum','originatecalleridname','exports','util','lodash','milliseconds','diff','seconds','scheduledat','type'];(function(_0x29a134,_0x194c27){var _0x136398=function(_0x1def82){while(--_0x1def82){_0x29a134['push'](_0x29a134['shift']());}};_0x136398(++_0x194c27);}(_0x96f0,0x1a7));var _0x096f=function(_0x25bea7,_0x49ab45){_0x25bea7=_0x25bea7-0x0;var _0x175952=_0x96f0[_0x25bea7];return _0x175952;};'use strict';var util=require(_0x096f('0x0'));var _=require(_0x096f('0x1'));var moment=require('moment');function getSeconds(_0x3aa946,_0x778dcd){var _0x2d9236=moment(_0x3aa946)[_0x096f('0x2')](0x0);var _0x745c1f=moment(_0x778dcd)[_0x096f('0x2')](0x0);return _0x2d9236[_0x096f('0x3')](_0x745c1f,_0x096f('0x4'));}function QueueCallerAbandon(_0x4b82bf,_0x494f28){this[_0x096f('0x5')]=_0x4b82bf[_0x096f('0x5')];this[_0x096f('0x6')]=_0x4b82bf[_0x096f('0x6')];this[_0x096f('0x7')]=_0x4b82bf[_0x096f('0x6')]===_0x096f('0x8')?_0x096f('0x9'):_0x4b82bf[_0x096f('0x6')];this['countbusyretry']=_0x4b82bf[_0x096f('0xa')];this[_0x096f('0xb')]=_0x4b82bf['countcongestionretry'];this[_0x096f('0xc')]=_0x4b82bf['countnoanswerretry'];this[_0x096f('0xd')]=_0x4b82bf[_0x096f('0xa')]+_0x4b82bf['countcongestionretry']+_0x4b82bf['countnoanswerretry']+_0x4b82bf[_0x096f('0xe')]+_0x4b82bf['countdropretry']+_0x4b82bf[_0x096f('0xf')]+_0x4b82bf['countmachineretry']+_0x4b82bf[_0x096f('0x10')];this['countnosuchnumberretry']=_0x4b82bf[_0x096f('0xe')];this['countdropretry']=_0x4b82bf['countdropretry'];this[_0x096f('0xf')]=_0x4b82bf[_0x096f('0xf')];this['countmachineretry']=_0x4b82bf[_0x096f('0x11')];this['countagentrejectretry']=_0x4b82bf[_0x096f('0x10')];this[_0x096f('0x12')]=_0x494f28[_0x096f('0x12')];this[_0x096f('0x13')]=_0x4b82bf[_0x096f('0x14')];this[_0x096f('0x15')]=_0x4b82bf[_0x096f('0x16')];this[_0x096f('0x17')]=_0x4b82bf[_0x096f('0x17')];this[_0x096f('0x18')]=_0x4b82bf[_0x096f('0x18')];this[_0x096f('0x19')]=_0x4b82bf['droptime'];this[_0x096f('0x1a')]=this[_0x096f('0x19')];this[_0x096f('0x1b')]=getSeconds(_0x4b82bf[_0x096f('0x18')],_0x4b82bf[_0x096f('0x17')]);this['holdtime']=getSeconds(this[_0x096f('0x19')],_0x4b82bf[_0x096f('0x18')]);this['talktime']=0x0;this[_0x096f('0x9')]=_0x494f28[_0x096f('0x9')];this[_0x096f('0x1c')]=_0x494f28[_0x096f('0x1d')];this[_0x096f('0x1e')]=_0x494f28[_0x096f('0x1e')];this[_0x096f('0x1f')]=_0x4b82bf[_0x096f('0x1f')];this[_0x096f('0x20')]=_0x4b82bf[_0x096f('0x20')];this[_0x096f('0x21')]=_0x4b82bf[_0x096f('0x21')];this[_0x096f('0x22')]=_0x4b82bf['recallme'];this[_0x096f('0x23')]=_0x4b82bf[_0x096f('0x23')];this[_0x096f('0x24')]=_0x4b82bf['ListId'];this[_0x096f('0x25')]=_0x4b82bf[_0x096f('0x25')];this['VoiceQueueId']=_0x4b82bf[_0x096f('0x26')];this[_0x096f('0x27')]=_0x4b82bf['CampaignId'];this[_0x096f('0x28')]=_0x4b82bf['originatecalleridnum']||'';this[_0x096f('0x29')]=_0x4b82bf[_0x096f('0x29')]||'';}module[_0x096f('0x2a')]=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(_0x57a352,_0xde818c){var _0x100bb2=function(_0x4d0aa7){while(--_0x4d0aa7){_0x57a352['push'](_0x57a352['shift']());}};_0x100bb2(++_0xde818c);}(_0xa9e0,0x123));var _0x0a9e=function(_0x3c4737,_0x2329ec){_0x3c4737=_0x3c4737-0x0;var _0x2bb926=_0xa9e0[_0x3c4737];return _0x2bb926;};'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(_0x4046c3,_0x23ec82){var _0x5a4e0b=function(_0x440742){while(--_0x440742){_0x4046c3['push'](_0x4046c3['shift']());}};_0x5a4e0b(++_0x23ec82);}(_0xa9e0,0x123));var _0x0a9e=function(_0x2f5ac5,_0x1ee939){_0x2f5ac5=_0x2f5ac5-0x0;var _0x37c9a8=_0xa9e0[_0x2f5ac5];return _0x37c9a8;};'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 _0xc83e=['uuid','moment','path','tiff2pdf','./util/gs','../../../config/logger','../ami','./rpcDb','./channel','./util/util','./action','../rpc/attachment','../rpc/faxMessage','faxAccounts','trunks','syncNewchannel','bind','varset','newstate','syncNewState','newexten','faxstatus','syncFaxStatus','syncReceiveFax','hangup','syncHangup','originateresponse','syncOriginateResponse','prototype','context','from-voip-provider','hasOwnProperty','exten','localstationid','channels','uniqueid','channel','name','actions','info','syncVarSet','variable','value','channelstate','channelstatedesc','operation','filename','\x20syncFaxStatus\x20','remotestationid','resolution','transferrate','calleridnum','pagestransferred','/var/opt/motion2/server/files/attachments/','\x20result\x20conversion\x20file\x20','message','create','parse','.pdf','then','notify','catch','error','\x20notify\x20','stringify','\x20receiveFax\x20','merge','pick','response','SENDING\x20FAILED\x20','logger','[Fax][Message][Error][NoUpdate2]','AttachmentId','[Fax][Message][Updated]','[Fax][Message][NoUpdate1]','finally','\x20hangup\x20sendFile\x20','faxpages','updateStatus','faxstatusstring','SENDING\x20FAILED','send','execOriginate','FaxAccountId','[Fax][execOriginate][success]','Fax\x20received','[Fax][execOriginate][failure]','checkTrunk','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','%s/%s.tif','dir','XMF-PATH','Convert\x20pdf\x20to\x20tif','Action','variablesAction','addVariables','ext','isTrunkReachable','isNil','active','format','SIP/%s','status','reachable','[Fax][checkTrunk][Trunk\x20not\x20work]','\x20Trunk\x20is\x20not\x20active','Trunk\x20not\x20working','fax','[Fax][checkTrunk][Empty\x20Fax]','[Fax][checkTrunk][Empty\x20path]','Empty\x20path','exports','util','lodash'];(function(_0x12accb,_0x5dc6f1){var _0x23b82b=function(_0x36b72b){while(--_0x36b72b){_0x12accb['push'](_0x12accb['shift']());}};_0x23b82b(++_0x5dc6f1);}(_0xc83e,0x72));var _0xec83=function(_0x480b14,_0x397259){_0x480b14=_0x480b14-0x0;var _0x271f62=_0xc83e[_0x480b14];return _0x271f62;};'use strict';var util=require(_0xec83('0x0'));var _=require(_0xec83('0x1'));var BPromise=require('bluebird');var uuid=require(_0xec83('0x2'));var moment=require(_0xec83('0x3'));var path=require(_0xec83('0x4'));var tiff2pdf=require(_0xec83('0x5'));var gs=require(_0xec83('0x6'));var logger=require(_0xec83('0x7'))('fax');var ami=require(_0xec83('0x8'));var rpcDb=require(_0xec83('0x9'));var Channel=require(_0xec83('0xa'));var ut=require(_0xec83('0xb'));var Action=require(_0xec83('0xc'));var faxAccount=require('../rpc/faxAccount');var attachment=require(_0xec83('0xd'));var faxMessage=require(_0xec83('0xe'));function Fax(_0x5e67e7){this['channels']={};this[_0xec83('0xf')]=_0x5e67e7[_0xec83('0xf')];this[_0xec83('0x10')]=_0x5e67e7[_0xec83('0x10')];this['actions']={};ami['on']('newchannel',this[_0xec83('0x11')][_0xec83('0x12')](this));ami['on'](_0xec83('0x13'),this['syncVarSet'][_0xec83('0x12')](this));ami['on'](_0xec83('0x14'),this[_0xec83('0x15')][_0xec83('0x12')](this));ami['on'](_0xec83('0x16'),this['syncNewExten']['bind'](this));ami['on'](_0xec83('0x17'),this[_0xec83('0x18')][_0xec83('0x12')](this));ami['on']('receivefax',this[_0xec83('0x19')][_0xec83('0x12')](this));ami['on'](_0xec83('0x1a'),this[_0xec83('0x1b')]['bind'](this));ami['on'](_0xec83('0x1c'),this[_0xec83('0x1d')]['bind'](this));}Fax[_0xec83('0x1e')][_0xec83('0x11')]=function(_0x337dc1){if(_0x337dc1[_0xec83('0x1f')]===_0xec83('0x20')){for(var _0x436c94 in this[_0xec83('0xf')]){if(this[_0xec83('0xf')][_0xec83('0x21')](_0x436c94)){if(_0x337dc1[_0xec83('0x22')]===this[_0xec83('0xf')][_0x436c94][_0xec83('0x23')]){this[_0xec83('0x24')][_0x337dc1[_0xec83('0x25')]]={};this[_0xec83('0x24')][_0x337dc1[_0xec83('0x25')]][_0xec83('0x26')]=_0x337dc1[_0xec83('0x26')];this[_0xec83('0x24')][_0x337dc1[_0xec83('0x25')]]['id']=this['faxAccounts'][_0x436c94]['id'];this['channels'][_0x337dc1[_0xec83('0x25')]][_0xec83('0x27')]=this[_0xec83('0xf')][_0x436c94]['name'];logger['info'](_0x337dc1[_0xec83('0x25')],'\x20syncNewchannel\x20');}}}}if(this[_0xec83('0x28')][_0x337dc1['uniqueid']]){this[_0xec83('0x24')][_0x337dc1[_0xec83('0x25')]]={};this[_0xec83('0x24')][_0x337dc1['uniqueid']][_0xec83('0x26')]=_0x337dc1[_0xec83('0x26')];logger[_0xec83('0x29')](_0x337dc1[_0xec83('0x25')],'\x20syncNewchannel\x20');}};Fax[_0xec83('0x1e')][_0xec83('0x2a')]=function(_0x3612c4){if(this['channels'][_0x3612c4['uniqueid']]){for(var _0x55d1cf in _0x3612c4[_0xec83('0x2b')]){if(_0x3612c4[_0xec83('0x2b')]['hasOwnProperty'](_0x55d1cf)){this[_0xec83('0x24')][_0x3612c4[_0xec83('0x25')]][_0x55d1cf]=_0x3612c4[_0xec83('0x2c')];}}}};Fax['prototype']['syncNewState']=function(_0x30ce71){if(this[_0xec83('0x24')][_0x30ce71[_0xec83('0x25')]]){this[_0xec83('0x24')][_0x30ce71[_0xec83('0x25')]][_0xec83('0x2d')]=_0x30ce71[_0xec83('0x2d')];this[_0xec83('0x24')][_0x30ce71[_0xec83('0x25')]][_0xec83('0x2e')]=_0x30ce71['channelstatedesc'];}};Fax[_0xec83('0x1e')]['syncNewExten']=function(_0x19b5f6){if(this[_0xec83('0x24')][_0x19b5f6['uniqueid']]){for(var _0x2fbc7a in _0x19b5f6[_0xec83('0x2b')]){if(_0x19b5f6[_0xec83('0x2b')]['hasOwnProperty'](_0x2fbc7a)){this[_0xec83('0x24')][_0x19b5f6[_0xec83('0x25')]][_0x2fbc7a]=_0x19b5f6[_0xec83('0x2c')];}}}};Fax[_0xec83('0x1e')][_0xec83('0x18')]=function(_0x99af81){if(this[_0xec83('0x24')][_0x99af81[_0xec83('0x25')]]){this['channels'][_0x99af81[_0xec83('0x25')]][_0xec83('0x2f')]=_0x99af81[_0xec83('0x2f')];this[_0xec83('0x24')][_0x99af81[_0xec83('0x25')]]['status']=_0x99af81['status'];this['channels'][_0x99af81[_0xec83('0x25')]]['localstationid']=_0x99af81[_0xec83('0x23')];this['channels'][_0x99af81[_0xec83('0x25')]][_0xec83('0x30')]=_0x99af81[_0xec83('0x30')];logger['info'](_0x99af81['uniqueid'],_0xec83('0x31'));}};Fax[_0xec83('0x1e')]['syncReceiveFax']=function(_0x5a816a){var _0x1f3513=this;if(this[_0xec83('0x24')][_0x5a816a[_0xec83('0x25')]]){var _0x4a934e=this['channels'][_0x5a816a[_0xec83('0x25')]]['id'];this['channels'][_0x5a816a['uniqueid']]['remotestationid']=_0x5a816a[_0xec83('0x32')];this['channels'][_0x5a816a[_0xec83('0x25')]]['pagestransferred']=_0x5a816a['pagestransferred'];this[_0xec83('0x24')][_0x5a816a[_0xec83('0x25')]]['localstationid']=_0x5a816a[_0xec83('0x23')];this[_0xec83('0x24')][_0x5a816a[_0xec83('0x25')]][_0xec83('0x33')]=_0x5a816a[_0xec83('0x33')];this[_0xec83('0x24')][_0x5a816a[_0xec83('0x25')]][_0xec83('0x34')]=_0x5a816a[_0xec83('0x34')];this[_0xec83('0x24')][_0x5a816a[_0xec83('0x25')]]['filename']=_0x5a816a['filename'];this[_0xec83('0x24')][_0x5a816a[_0xec83('0x25')]][_0xec83('0x35')]=_0x5a816a[_0xec83('0x35')];if(this[_0xec83('0x24')][_0x5a816a['uniqueid']][_0xec83('0x36')]>0x0){tiff2pdf(_0x5a816a[_0xec83('0x30')],_0xec83('0x37'),function(_0x498d39){logger[_0xec83('0x29')](_0x5a816a['uniqueid'],_0xec83('0x38'),_0x498d39[_0xec83('0x39')]);attachment[_0xec83('0x3a')]({'name':path[_0xec83('0x3b')](_0x5a816a[_0xec83('0x30')])[_0xec83('0x27')],'basename':path[_0xec83('0x3b')](_0x5a816a[_0xec83('0x30')])['name']+_0xec83('0x3c'),'type':'application/pdf'})[_0xec83('0x3d')](function(_0x266fb7){faxAccount[_0xec83('0x3e')](_0x4a934e,{'from':_0x5a816a[_0xec83('0x35')],'mapKey':'fax','body':path[_0xec83('0x3b')](_0x5a816a[_0xec83('0x30')])[_0xec83('0x27')]+_0xec83('0x3c'),'AttachmentId':_0x266fb7['id']})[_0xec83('0x3f')](function(_0x208308){logger[_0xec83('0x40')](_0x5a816a['uniqueid'],_0xec83('0x41'),JSON[_0xec83('0x42')](_0x208308));});})[_0xec83('0x3f')](function(_0x31e200){logger[_0xec83('0x40')](_0x5a816a[_0xec83('0x25')],_0xec83('0x43'),JSON['stringify'](_0x31e200));});});}logger[_0xec83('0x29')](_0x5a816a[_0xec83('0x25')],_0xec83('0x43'));}};Fax[_0xec83('0x1e')]['syncOriginateResponse']=function(_0x38a78e){if(this[_0xec83('0x28')][_0x38a78e[_0xec83('0x25')]]){_[_0xec83('0x44')](this[_0xec83('0x24')][_0x38a78e[_0xec83('0x25')]],_[_0xec83('0x45')](_0x38a78e,[_0xec83('0x46'),'reason']));}};function updateStatus(_0x29c7ba){if(_0x29c7ba['AttachmentId']){faxMessage['update'](_0x29c7ba['AttachmentId'],{'failMessage':_0xec83('0x47')})['then'](function(_0x265c72){ut[_0xec83('0x48')]('[Fax][Message][Error][Updated]',_0x265c72);})['catch'](function(_0x51e976){ut[_0xec83('0x48')]('[Fax][Message][Error][NoUpdate1]',_0x51e976);});}else{ut['logger'](_0xec83('0x49'));}}Fax[_0xec83('0x1e')]['updateStatus']=function(_0x380392,_0x472776,_0x509695){var _0x267378=this;var _0x16d26c={};if(_0x472776){_0x16d26c={'read':_0x472776};}else{_0x16d26c={'failMessage':_0x509695};}if(this[_0xec83('0x28')][_0x380392][_0xec83('0x4a')]){faxMessage['update'](this['actions'][_0x380392][_0xec83('0x4a')],_0x16d26c)['then'](function(_0x274fef){ut['logger'](_0xec83('0x4b'),_0x274fef);})[_0xec83('0x3f')](function(_0x184628){ut['logger'](_0xec83('0x4c'),_0x184628);})[_0xec83('0x4d')](function(){delete _0x267378[_0xec83('0x24')][_0x380392];delete _0x267378[_0xec83('0x28')][_0x380392];});}else{ut[_0xec83('0x48')]('[Fax][Message][NoUpdate2]');delete this['channels'][_0x380392];delete this[_0xec83('0x28')][_0x380392];}};Fax[_0xec83('0x1e')][_0xec83('0x1b')]=function(_0x528267){var _0x746ae5=this;if(this[_0xec83('0x24')][_0x528267[_0xec83('0x25')]]){if(this[_0xec83('0x28')][_0x528267[_0xec83('0x25')]]){this['channels'][_0x528267[_0xec83('0x25')]]['id']=this[_0xec83('0x28')][_0x528267[_0xec83('0x25')]]['id'];this[_0xec83('0x24')][_0x528267['uniqueid']][_0xec83('0x27')]=this[_0xec83('0x28')][_0x528267[_0xec83('0x25')]][_0xec83('0x27')];}logger[_0xec83('0x29')](_0x528267[_0xec83('0x25')],this[_0xec83('0x28')][_0x528267[_0xec83('0x25')]]?_0xec83('0x4e'):'\x20hangup\x20faxRiceive\x20',JSON[_0xec83('0x42')](this[_0xec83('0x24')][_0x528267[_0xec83('0x25')]]));if(this[_0xec83('0x28')][_0x528267[_0xec83('0x25')]]){if(this['channels'][_0x528267['uniqueid']][_0xec83('0x4f')]>0x0&&this[_0xec83('0x24')][_0x528267[_0xec83('0x25')]]['faxstatus']==='SUCCESS'){this[_0xec83('0x50')](_0x528267[_0xec83('0x25')],!![]);}else{this[_0xec83('0x50')](_0x528267[_0xec83('0x25')],![],this[_0xec83('0x24')][_0x528267[_0xec83('0x25')]][_0xec83('0x51')]?'SENDING\x20FAILED:\x20'+this[_0xec83('0x24')][_0x528267['uniqueid']][_0xec83('0x51')]:_0xec83('0x52'));}}}};Fax[_0xec83('0x1e')][_0xec83('0x53')]=function(_0x4afabb){var _0x4f3bfa=this;return new BPromise(function(_0x142a8c,_0x27b58b){_0x4f3bfa[_0xec83('0x54')](_0x4afabb,_0x4f3bfa[_0xec83('0xf')][_0x4afabb[_0xec83('0x55')]])['then'](function(_0x271ee3){ut[_0xec83('0x48')](_0xec83('0x56'),_0x271ee3);_0x142a8c(ut[_0xec83('0x39')](_0xec83('0x57')));})[_0xec83('0x3f')](function(_0x401bfe){ut[_0xec83('0x48')](_0xec83('0x58'),_0x401bfe);updateStatus(_0x4afabb);_0x27b58b(ut[_0xec83('0x39')]('Fax\x20failed'));});});};Fax[_0xec83('0x1e')]['checkAfterSend']=function(_0x2c2439){var _0x135f15=this;return new BPromise(function(_0xe5088,_0x41cb1d){var _0x44436f=_0x135f15[_0xec83('0x59')](_0x135f15[_0xec83('0xf')][_0x2c2439[_0xec83('0x55')]]['Trunk'],_0x2c2439);if(_0x44436f[_0xec83('0x5a')]){_0xe5088(ut[_0xec83('0x39')](_0xec83('0x5b')));}else{_0x41cb1d(ut[_0xec83('0x39')](_0x44436f[_0xec83('0x39')]));}});};function originate(_0x53ccb9,_0x376108,_0x1aff5a){return new BPromise(function(_0x5b90c1,_0x49948d){if(_0x1aff5a){var _0x381519=util['format'](_0xec83('0x5c'),path['parse'](_0x53ccb9[_0xec83('0x4')])[_0xec83('0x27')],_0x53ccb9['path']);gs['execute'](_0x381519)[_0xec83('0x3d')](function(){_0x53ccb9[_0xec83('0x4')]=util['format'](_0xec83('0x5d'),path[_0xec83('0x3b')](_0x53ccb9[_0xec83('0x4')])[_0xec83('0x5e')],path[_0xec83('0x3b')](_0x53ccb9[_0xec83('0x4')])[_0xec83('0x27')]);_0x376108[_0xec83('0x5f')]=_0x53ccb9[_0xec83('0x4')];ut[_0xec83('0x48')](_0xec83('0x60'),'');ami[_0xec83('0x61')](ut[_0xec83('0x62')](_0x53ccb9,_0x376108))['then'](function(_0x43885d){_0x5b90c1(_0x43885d);})['catch'](function(_0x535f4e){_0x49948d(_0x535f4e);});})[_0xec83('0x3f')](function(_0x27bb41){_0x49948d(_0x27bb41);});}else{ami[_0xec83('0x61')](ut['variablesAction'](_0x53ccb9,_0x376108))['then'](function(_0x4a2963){_0x5b90c1(_0x4a2963);})['catch'](function(_0x2ed7c7){_0x49948d(_0x2ed7c7);});}});}Fax['prototype'][_0xec83('0x54')]=function(_0x2462d6,_0x4d782a){var _0x38d211=this;return new BPromise(function(_0x8c0d4d,_0x4f2bc7){var _0x41cfdc=uuid['v4']();var _0x3f9b1c=ut[_0xec83('0x63')](_0x2462d6,_0x4d782a);_0x38d211[_0xec83('0x28')][_0x41cfdc]=new Action(_0x41cfdc,_0x4d782a,_0x2462d6);var _0xdfb0fa=_0x38d211['actions'][_0x41cfdc];if(path['parse'](_0x2462d6[_0xec83('0x4')])[_0xec83('0x64')]===_0xec83('0x3c')){originate(_0xdfb0fa,_0x3f9b1c,!![])[_0xec83('0x3d')](function(_0x221772){_0x8c0d4d(_0x221772);})[_0xec83('0x3f')](function(_0x1150d7){_0x4f2bc7(_0x1150d7);});}else{originate(_0xdfb0fa,_0x3f9b1c,![])[_0xec83('0x3d')](function(_0x278374){_0x8c0d4d(_0x278374);})[_0xec83('0x3f')](function(_0x1b20cd){_0x4f2bc7(_0x1b20cd);});}});};Fax['prototype'][_0xec83('0x65')]=function(_0x5ad92b){return!_[_0xec83('0x66')](_0x5ad92b)&&!_[_0xec83('0x66')](_0x5ad92b[_0xec83('0x27')])&&!_['isNil'](_0x5ad92b['active'])&&_0x5ad92b[_0xec83('0x67')]&&!_['isNil'](this[_0xec83('0x10')][util[_0xec83('0x68')](_0xec83('0x69'),_0x5ad92b[_0xec83('0x27')])])&&!_[_0xec83('0x66')](this[_0xec83('0x10')][util[_0xec83('0x68')]('SIP/%s',_0x5ad92b['name'])][_0xec83('0x6a')])&&(this[_0xec83('0x10')][util[_0xec83('0x68')](_0xec83('0x69'),_0x5ad92b[_0xec83('0x27')])][_0xec83('0x6a')]===_0xec83('0x6b')||this[_0xec83('0x10')][util[_0xec83('0x68')](_0xec83('0x69'),_0x5ad92b[_0xec83('0x27')])][_0xec83('0x6a')]==='unmonitored');};Fax[_0xec83('0x1e')][_0xec83('0x59')]=function(_0x1c9024,_0x41a9ba){if(!this['isTrunkReachable'](_0x1c9024)){ut[_0xec83('0x48')](_0xec83('0x6c'),_[_0xec83('0x66')](_0x1c9024)?'':_0x1c9024[_0xec83('0x27')]+_0xec83('0x6d'));return{'isValid':![],'message':_0xec83('0x6e')};}if(_[_0xec83('0x66')](_0x41a9ba[_0xec83('0x6f')])){ut[_0xec83('0x48')](_0xec83('0x70'),JSON['stringify'](_0x41a9ba));return{'isValid':![],'message':'Empty\x20Fax'};}if(_[_0xec83('0x66')](_0x41a9ba['path'])){ut[_0xec83('0x48')](_0xec83('0x71'),JSON[_0xec83('0x42')](_0x41a9ba));return{'isValid':![],'message':_0xec83('0x72')};}return{'isValid':!![],'message':'Is\x20Valid'};};module[_0xec83('0x73')]=Fax;
\ No newline at end of file
+var _0x16a7=['.pdf','application/pdf','then','notify','name','catch','error','\x20notify\x20','stringify','\x20receiveFax\x20','merge','response','reason','AttachmentId','update','SENDING\x20FAILED\x20','logger','[Fax][Message][Error][NoUpdate1]','[Fax][Message][Error][NoUpdate2]','[Fax][Message][NoUpdate1]','\x20hangup\x20sendFile\x20','faxpages','updateStatus','SENDING\x20FAILED:\x20','SENDING\x20FAILED','execOriginate','FaxAccountId','[Fax][execOriginate][failure]','checkAfterSend','Trunk','isValid','format','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','execute','%s/%s.tif','dir','XMF-PATH','Convert\x20pdf\x20to\x20tif','Action','variablesAction','addVariables','ext','isTrunkReachable','isNil','SIP/%s','reachable','unmonitored','[Fax][checkTrunk][Trunk\x20not\x20work]','\x20Trunk\x20is\x20not\x20active','Trunk\x20not\x20working','[Fax][checkTrunk][Empty\x20Fax]','Empty\x20Fax','[Fax][checkTrunk][Empty\x20path]','Is\x20Valid','exports','uuid','moment','tiff2pdf','./util/gs','../../../config/logger','fax','../ami','./rpcDb','./channel','./util/util','./action','../rpc/faxMessage','channels','faxAccounts','trunks','actions','newchannel','bind','newstate','syncNewState','newexten','faxstatus','syncFaxStatus','receivefax','hangup','syncHangup','originateresponse','syncOriginateResponse','prototype','context','from-voip-provider','hasOwnProperty','localstationid','uniqueid','channel','info','\x20syncNewchannel\x20','syncVarSet','variable','value','channelstate','channelstatedesc','operation','status','filename','remotestationid','pagestransferred','resolution','transferrate','calleridnum','/var/opt/motion2/server/files/attachments/','\x20result\x20conversion\x20file\x20','message','create','parse'];(function(_0x33b1ab,_0x246ec2){var _0x3e6cc5=function(_0x58e817){while(--_0x58e817){_0x33b1ab['push'](_0x33b1ab['shift']());}};_0x3e6cc5(++_0x246ec2);}(_0x16a7,0x1f4));var _0x716a=function(_0x5a6396,_0x27deba){_0x5a6396=_0x5a6396-0x0;var _0x30e765=_0x16a7[_0x5a6396];return _0x30e765;};'use strict';var util=require('util');var _=require('lodash');var BPromise=require('bluebird');var uuid=require(_0x716a('0x0'));var moment=require(_0x716a('0x1'));var path=require('path');var tiff2pdf=require(_0x716a('0x2'));var gs=require(_0x716a('0x3'));var logger=require(_0x716a('0x4'))(_0x716a('0x5'));var ami=require(_0x716a('0x6'));var rpcDb=require(_0x716a('0x7'));var Channel=require(_0x716a('0x8'));var ut=require(_0x716a('0x9'));var Action=require(_0x716a('0xa'));var faxAccount=require('../rpc/faxAccount');var attachment=require('../rpc/attachment');var faxMessage=require(_0x716a('0xb'));function Fax(_0x4a1757){this[_0x716a('0xc')]={};this[_0x716a('0xd')]=_0x4a1757[_0x716a('0xd')];this[_0x716a('0xe')]=_0x4a1757[_0x716a('0xe')];this[_0x716a('0xf')]={};ami['on'](_0x716a('0x10'),this['syncNewchannel'][_0x716a('0x11')](this));ami['on']('varset',this['syncVarSet']['bind'](this));ami['on'](_0x716a('0x12'),this[_0x716a('0x13')][_0x716a('0x11')](this));ami['on'](_0x716a('0x14'),this['syncNewExten']['bind'](this));ami['on'](_0x716a('0x15'),this[_0x716a('0x16')][_0x716a('0x11')](this));ami['on'](_0x716a('0x17'),this['syncReceiveFax']['bind'](this));ami['on'](_0x716a('0x18'),this[_0x716a('0x19')][_0x716a('0x11')](this));ami['on'](_0x716a('0x1a'),this[_0x716a('0x1b')][_0x716a('0x11')](this));}Fax[_0x716a('0x1c')]['syncNewchannel']=function(_0x5d9c7f){if(_0x5d9c7f[_0x716a('0x1d')]===_0x716a('0x1e')){for(var _0x1dc0b3 in this[_0x716a('0xd')]){if(this['faxAccounts'][_0x716a('0x1f')](_0x1dc0b3)){if(_0x5d9c7f['exten']===this['faxAccounts'][_0x1dc0b3][_0x716a('0x20')]){this[_0x716a('0xc')][_0x5d9c7f[_0x716a('0x21')]]={};this[_0x716a('0xc')][_0x5d9c7f[_0x716a('0x21')]][_0x716a('0x22')]=_0x5d9c7f[_0x716a('0x22')];this[_0x716a('0xc')][_0x5d9c7f['uniqueid']]['id']=this[_0x716a('0xd')][_0x1dc0b3]['id'];this[_0x716a('0xc')][_0x5d9c7f[_0x716a('0x21')]]['name']=this[_0x716a('0xd')][_0x1dc0b3]['name'];logger[_0x716a('0x23')](_0x5d9c7f['uniqueid'],_0x716a('0x24'));}}}}if(this['actions'][_0x5d9c7f[_0x716a('0x21')]]){this[_0x716a('0xc')][_0x5d9c7f[_0x716a('0x21')]]={};this['channels'][_0x5d9c7f[_0x716a('0x21')]]['channel']=_0x5d9c7f[_0x716a('0x22')];logger[_0x716a('0x23')](_0x5d9c7f[_0x716a('0x21')],_0x716a('0x24'));}};Fax[_0x716a('0x1c')][_0x716a('0x25')]=function(_0x3d67ba){if(this[_0x716a('0xc')][_0x3d67ba[_0x716a('0x21')]]){for(var _0x2f58a0 in _0x3d67ba[_0x716a('0x26')]){if(_0x3d67ba['variable'][_0x716a('0x1f')](_0x2f58a0)){this[_0x716a('0xc')][_0x3d67ba[_0x716a('0x21')]][_0x2f58a0]=_0x3d67ba[_0x716a('0x27')];}}}};Fax['prototype'][_0x716a('0x13')]=function(_0x3c3333){if(this[_0x716a('0xc')][_0x3c3333[_0x716a('0x21')]]){this['channels'][_0x3c3333[_0x716a('0x21')]][_0x716a('0x28')]=_0x3c3333[_0x716a('0x28')];this['channels'][_0x3c3333['uniqueid']][_0x716a('0x29')]=_0x3c3333[_0x716a('0x29')];}};Fax[_0x716a('0x1c')]['syncNewExten']=function(_0x158d3a){if(this[_0x716a('0xc')][_0x158d3a[_0x716a('0x21')]]){for(var _0xa9c96a in _0x158d3a[_0x716a('0x26')]){if(_0x158d3a[_0x716a('0x26')][_0x716a('0x1f')](_0xa9c96a)){this[_0x716a('0xc')][_0x158d3a[_0x716a('0x21')]][_0xa9c96a]=_0x158d3a[_0x716a('0x27')];}}}};Fax[_0x716a('0x1c')]['syncFaxStatus']=function(_0x1a2f50){if(this[_0x716a('0xc')][_0x1a2f50['uniqueid']]){this[_0x716a('0xc')][_0x1a2f50[_0x716a('0x21')]][_0x716a('0x2a')]=_0x1a2f50[_0x716a('0x2a')];this[_0x716a('0xc')][_0x1a2f50[_0x716a('0x21')]][_0x716a('0x2b')]=_0x1a2f50[_0x716a('0x2b')];this[_0x716a('0xc')][_0x1a2f50[_0x716a('0x21')]][_0x716a('0x20')]=_0x1a2f50[_0x716a('0x20')];this[_0x716a('0xc')][_0x1a2f50['uniqueid']][_0x716a('0x2c')]=_0x1a2f50[_0x716a('0x2c')];logger[_0x716a('0x23')](_0x1a2f50[_0x716a('0x21')],'\x20syncFaxStatus\x20');}};Fax[_0x716a('0x1c')]['syncReceiveFax']=function(_0x14e96c){var _0x2eacc1=this;if(this[_0x716a('0xc')][_0x14e96c[_0x716a('0x21')]]){var _0x38202b=this[_0x716a('0xc')][_0x14e96c[_0x716a('0x21')]]['id'];this[_0x716a('0xc')][_0x14e96c[_0x716a('0x21')]]['remotestationid']=_0x14e96c[_0x716a('0x2d')];this[_0x716a('0xc')][_0x14e96c[_0x716a('0x21')]]['pagestransferred']=_0x14e96c[_0x716a('0x2e')];this[_0x716a('0xc')][_0x14e96c[_0x716a('0x21')]]['localstationid']=_0x14e96c[_0x716a('0x20')];this[_0x716a('0xc')][_0x14e96c[_0x716a('0x21')]][_0x716a('0x2f')]=_0x14e96c['resolution'];this['channels'][_0x14e96c[_0x716a('0x21')]][_0x716a('0x30')]=_0x14e96c[_0x716a('0x30')];this[_0x716a('0xc')][_0x14e96c['uniqueid']][_0x716a('0x2c')]=_0x14e96c[_0x716a('0x2c')];this[_0x716a('0xc')][_0x14e96c[_0x716a('0x21')]]['calleridnum']=_0x14e96c[_0x716a('0x31')];if(this[_0x716a('0xc')][_0x14e96c[_0x716a('0x21')]][_0x716a('0x2e')]>0x0){tiff2pdf(_0x14e96c[_0x716a('0x2c')],_0x716a('0x32'),function(_0x5f0b2d){logger[_0x716a('0x23')](_0x14e96c['uniqueid'],_0x716a('0x33'),_0x5f0b2d[_0x716a('0x34')]);attachment[_0x716a('0x35')]({'name':path[_0x716a('0x36')](_0x14e96c['filename'])['name'],'basename':path[_0x716a('0x36')](_0x14e96c[_0x716a('0x2c')])['name']+_0x716a('0x37'),'type':_0x716a('0x38')})[_0x716a('0x39')](function(_0x59b5c8){faxAccount[_0x716a('0x3a')](_0x38202b,{'from':_0x14e96c[_0x716a('0x31')],'mapKey':_0x716a('0x5'),'body':path[_0x716a('0x36')](_0x14e96c[_0x716a('0x2c')])[_0x716a('0x3b')]+_0x716a('0x37'),'AttachmentId':_0x59b5c8['id']})[_0x716a('0x3c')](function(_0x4e3924){logger[_0x716a('0x3d')](_0x14e96c['uniqueid'],_0x716a('0x3e'),JSON[_0x716a('0x3f')](_0x4e3924));});})[_0x716a('0x3c')](function(_0x469f25){logger[_0x716a('0x3d')](_0x14e96c[_0x716a('0x21')],_0x716a('0x40'),JSON[_0x716a('0x3f')](_0x469f25));});});}logger[_0x716a('0x23')](_0x14e96c['uniqueid'],_0x716a('0x40'));}};Fax['prototype'][_0x716a('0x1b')]=function(_0x382c68){if(this['actions'][_0x382c68[_0x716a('0x21')]]){_[_0x716a('0x41')](this[_0x716a('0xc')][_0x382c68[_0x716a('0x21')]],_['pick'](_0x382c68,[_0x716a('0x42'),_0x716a('0x43')]));}};function updateStatus(_0x371922){if(_0x371922[_0x716a('0x44')]){faxMessage[_0x716a('0x45')](_0x371922[_0x716a('0x44')],{'failMessage':_0x716a('0x46')})[_0x716a('0x39')](function(_0x15ab0c){ut[_0x716a('0x47')]('[Fax][Message][Error][Updated]',_0x15ab0c);})[_0x716a('0x3c')](function(_0x35945c){ut['logger'](_0x716a('0x48'),_0x35945c);});}else{ut['logger'](_0x716a('0x49'));}}Fax[_0x716a('0x1c')]['updateStatus']=function(_0x5b563d,_0x127d02,_0x46a47e){var _0x5573a0=this;var _0x5f0aee={};if(_0x127d02){_0x5f0aee={'read':_0x127d02};}else{_0x5f0aee={'failMessage':_0x46a47e};}if(this['actions'][_0x5b563d][_0x716a('0x44')]){faxMessage['update'](this[_0x716a('0xf')][_0x5b563d][_0x716a('0x44')],_0x5f0aee)['then'](function(_0x5af9e6){ut[_0x716a('0x47')]('[Fax][Message][Updated]',_0x5af9e6);})['catch'](function(_0x54b01a){ut[_0x716a('0x47')](_0x716a('0x4a'),_0x54b01a);})['finally'](function(){delete _0x5573a0[_0x716a('0xc')][_0x5b563d];delete _0x5573a0[_0x716a('0xf')][_0x5b563d];});}else{ut['logger']('[Fax][Message][NoUpdate2]');delete this[_0x716a('0xc')][_0x5b563d];delete this[_0x716a('0xf')][_0x5b563d];}};Fax[_0x716a('0x1c')][_0x716a('0x19')]=function(_0x28c044){var _0x271327=this;if(this[_0x716a('0xc')][_0x28c044[_0x716a('0x21')]]){if(this['actions'][_0x28c044[_0x716a('0x21')]]){this['channels'][_0x28c044['uniqueid']]['id']=this['actions'][_0x28c044[_0x716a('0x21')]]['id'];this[_0x716a('0xc')][_0x28c044[_0x716a('0x21')]]['name']=this[_0x716a('0xf')][_0x28c044[_0x716a('0x21')]][_0x716a('0x3b')];}logger['info'](_0x28c044[_0x716a('0x21')],this[_0x716a('0xf')][_0x28c044[_0x716a('0x21')]]?_0x716a('0x4b'):'\x20hangup\x20faxRiceive\x20',JSON[_0x716a('0x3f')](this[_0x716a('0xc')][_0x28c044['uniqueid']]));if(this[_0x716a('0xf')][_0x28c044[_0x716a('0x21')]]){if(this[_0x716a('0xc')][_0x28c044[_0x716a('0x21')]][_0x716a('0x4c')]>0x0&&this[_0x716a('0xc')][_0x28c044[_0x716a('0x21')]][_0x716a('0x15')]==='SUCCESS'){this[_0x716a('0x4d')](_0x28c044[_0x716a('0x21')],!![]);}else{this[_0x716a('0x4d')](_0x28c044['uniqueid'],![],this[_0x716a('0xc')][_0x28c044[_0x716a('0x21')]]['faxstatusstring']?_0x716a('0x4e')+this[_0x716a('0xc')][_0x28c044['uniqueid']]['faxstatusstring']:_0x716a('0x4f'));}}}};Fax[_0x716a('0x1c')]['send']=function(_0x55809d){var _0x1866a2=this;return new BPromise(function(_0x1ee027,_0x4d69d5){_0x1866a2[_0x716a('0x50')](_0x55809d,_0x1866a2[_0x716a('0xd')][_0x55809d[_0x716a('0x51')]])['then'](function(_0x58c17e){ut[_0x716a('0x47')]('[Fax][execOriginate][success]',_0x58c17e);_0x1ee027(ut[_0x716a('0x34')]('Fax\x20received'));})[_0x716a('0x3c')](function(_0x52a2cc){ut[_0x716a('0x47')](_0x716a('0x52'),_0x52a2cc);updateStatus(_0x55809d);_0x4d69d5(ut[_0x716a('0x34')]('Fax\x20failed'));});});};Fax[_0x716a('0x1c')][_0x716a('0x53')]=function(_0x150de7){var _0x3e6021=this;return new BPromise(function(_0x442489,_0x54d670){var _0x2b80bd=_0x3e6021['checkTrunk'](_0x3e6021[_0x716a('0xd')][_0x150de7[_0x716a('0x51')]][_0x716a('0x54')],_0x150de7);if(_0x2b80bd[_0x716a('0x55')]){_0x442489(ut['message']('Trunk\x20Reachable'));}else{_0x54d670(ut[_0x716a('0x34')](_0x2b80bd[_0x716a('0x34')]));}});};function originate(_0x309bdc,_0x1adf97,_0x149ffa){return new BPromise(function(_0x29abe0,_0x34cbde){if(_0x149ffa){var _0x11aad1=util[_0x716a('0x56')](_0x716a('0x57'),path[_0x716a('0x36')](_0x309bdc[_0x716a('0x58')])[_0x716a('0x3b')],_0x309bdc[_0x716a('0x58')]);gs[_0x716a('0x59')](_0x11aad1)[_0x716a('0x39')](function(){_0x309bdc[_0x716a('0x58')]=util[_0x716a('0x56')](_0x716a('0x5a'),path[_0x716a('0x36')](_0x309bdc['path'])[_0x716a('0x5b')],path[_0x716a('0x36')](_0x309bdc[_0x716a('0x58')])['name']);_0x1adf97[_0x716a('0x5c')]=_0x309bdc[_0x716a('0x58')];ut[_0x716a('0x47')](_0x716a('0x5d'),'');ami[_0x716a('0x5e')](ut[_0x716a('0x5f')](_0x309bdc,_0x1adf97))['then'](function(_0x306803){_0x29abe0(_0x306803);})[_0x716a('0x3c')](function(_0x35e9ef){_0x34cbde(_0x35e9ef);});})[_0x716a('0x3c')](function(_0x1abb39){_0x34cbde(_0x1abb39);});}else{ami[_0x716a('0x5e')](ut['variablesAction'](_0x309bdc,_0x1adf97))['then'](function(_0x5c2bf8){_0x29abe0(_0x5c2bf8);})[_0x716a('0x3c')](function(_0x12d120){_0x34cbde(_0x12d120);});}});}Fax[_0x716a('0x1c')]['execOriginate']=function(_0x41cf9d,_0x351dc7){var _0xcb1773=this;return new BPromise(function(_0x201b69,_0x1843a7){var _0x451d50=uuid['v4']();var _0xf204c=ut[_0x716a('0x60')](_0x41cf9d,_0x351dc7);_0xcb1773[_0x716a('0xf')][_0x451d50]=new Action(_0x451d50,_0x351dc7,_0x41cf9d);var _0x35c02f=_0xcb1773[_0x716a('0xf')][_0x451d50];if(path[_0x716a('0x36')](_0x41cf9d[_0x716a('0x58')])[_0x716a('0x61')]==='.pdf'){originate(_0x35c02f,_0xf204c,!![])[_0x716a('0x39')](function(_0x230621){_0x201b69(_0x230621);})['catch'](function(_0x31abde){_0x1843a7(_0x31abde);});}else{originate(_0x35c02f,_0xf204c,![])[_0x716a('0x39')](function(_0x2a4b23){_0x201b69(_0x2a4b23);})['catch'](function(_0x1ba6b4){_0x1843a7(_0x1ba6b4);});}});};Fax[_0x716a('0x1c')][_0x716a('0x62')]=function(_0x41e6b5){return!_[_0x716a('0x63')](_0x41e6b5)&&!_[_0x716a('0x63')](_0x41e6b5[_0x716a('0x3b')])&&!_[_0x716a('0x63')](_0x41e6b5['active'])&&_0x41e6b5['active']&&!_[_0x716a('0x63')](this['trunks'][util['format']('SIP/%s',_0x41e6b5[_0x716a('0x3b')])])&&!_['isNil'](this[_0x716a('0xe')][util['format'](_0x716a('0x64'),_0x41e6b5[_0x716a('0x3b')])][_0x716a('0x2b')])&&(this[_0x716a('0xe')][util[_0x716a('0x56')](_0x716a('0x64'),_0x41e6b5[_0x716a('0x3b')])][_0x716a('0x2b')]===_0x716a('0x65')||this[_0x716a('0xe')][util['format'](_0x716a('0x64'),_0x41e6b5[_0x716a('0x3b')])][_0x716a('0x2b')]===_0x716a('0x66'));};Fax[_0x716a('0x1c')]['checkTrunk']=function(_0x91fe4f,_0x4342b8){if(!this[_0x716a('0x62')](_0x91fe4f)){ut[_0x716a('0x47')](_0x716a('0x67'),_[_0x716a('0x63')](_0x91fe4f)?'':_0x91fe4f[_0x716a('0x3b')]+_0x716a('0x68'));return{'isValid':![],'message':_0x716a('0x69')};}if(_['isNil'](_0x4342b8[_0x716a('0x5')])){ut['logger'](_0x716a('0x6a'),JSON[_0x716a('0x3f')](_0x4342b8));return{'isValid':![],'message':_0x716a('0x6b')};}if(_[_0x716a('0x63')](_0x4342b8[_0x716a('0x58')])){ut[_0x716a('0x47')](_0x716a('0x6c'),JSON[_0x716a('0x3f')](_0x4342b8));return{'isValid':![],'message':'Empty\x20path'};}return{'isValid':!![],'message':_0x716a('0x6d')};};module[_0x716a('0x6e')]=Fax;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xab4b=['[Notify]\x20','util','../../../config/logger','preview','lodash','error','notify','resolve','then'];(function(_0x279898,_0x48d4aa){var _0x2d9257=function(_0x3ce73a){while(--_0x3ce73a){_0x279898['push'](_0x279898['shift']());}};_0x2d9257(++_0x48d4aa);}(_0xab4b,0x160));var _0xbab4=function(_0x19ac90,_0x554f04){_0x19ac90=_0x19ac90-0x0;var _0x4b9d7d=_0xab4b[_0x19ac90];return _0x4b9d7d;};'use strict';var util=require(_0xbab4('0x0'));var BPromise=require('bluebird');var logger=require(_0xbab4('0x1'))(_0xbab4('0x2'));var _=require(_0xbab4('0x3'));var faxAccount=require('../rpc/faxAccount');function loggerCatch(_0x2abad2){return function(_0x9cb2f7){logger[_0xbab4('0x4')](_0x2abad2,util['inspect'](_0x9cb2f7,{'showHidden':![],'depth':null}));};}exports[_0xbab4('0x5')]=function(_0x52a3da,_0x2ec547){return BPromise[_0xbab4('0x6')]()[_0xbab4('0x7')](faxAccount[_0xbab4('0x5')](_0x52a3da,_0x2ec547))['catch'](loggerCatch(_0xbab4('0x8')));};
\ No newline at end of file
+var _0x44b0=['catch','[Notify]\x20','util','bluebird','../../../config/logger','preview','inspect','notify','resolve','then'];(function(_0x597484,_0x199340){var _0x218e64=function(_0x390d55){while(--_0x390d55){_0x597484['push'](_0x597484['shift']());}};_0x218e64(++_0x199340);}(_0x44b0,0xfc));var _0x044b=function(_0x3b2b48,_0x5a4336){_0x3b2b48=_0x3b2b48-0x0;var _0x24a335=_0x44b0[_0x3b2b48];return _0x24a335;};'use strict';var util=require(_0x044b('0x0'));var BPromise=require(_0x044b('0x1'));var logger=require(_0x044b('0x2'))(_0x044b('0x3'));var _=require('lodash');var faxAccount=require('../rpc/faxAccount');function loggerCatch(_0x57ec0f){return function(_0x786d22){logger['error'](_0x57ec0f,util[_0x044b('0x4')](_0x786d22,{'showHidden':![],'depth':null}));};}exports[_0x044b('0x5')]=function(_0x43085c,_0x482caf){return BPromise[_0x044b('0x6')]()[_0x044b('0x7')](faxAccount[_0x044b('0x5')](_0x43085c,_0x482caf))[_0x044b('0x8')](loggerCatch(_0x044b('0x9')));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x684d=['Exec\x20gs','\x20Error\x20:','util','../../../../config/logger','fax','bluebird','exec','execute','info'];(function(_0xbe51af,_0x376404){var _0x309d65=function(_0x2b97bb){while(--_0x2b97bb){_0xbe51af['push'](_0xbe51af['shift']());}};_0x309d65(++_0x376404);}(_0x684d,0x16a));var _0xd684=function(_0x5d471d,_0x49d1cd){_0x5d471d=_0x5d471d-0x0;var _0x55ec40=_0x684d[_0x5d471d];return _0x55ec40;};'use strict';var util=require(_0xd684('0x0'));var logger=require(_0xd684('0x1'))(_0xd684('0x2'));var BPromise=require(_0xd684('0x3'));var exec=require('child_process')[_0xd684('0x4')];exports[_0xd684('0x5')]=function(_0x5b3623){return new BPromise(function(_0x5fc5af,_0xaadc6a){exec(_0x5b3623,function(_0x13458b,_0x904ec1,_0x4f188c){logger[_0xd684('0x6')](_0xd684('0x7'),_0x904ec1);if(_0x13458b){logger[_0xd684('0x6')]('Exec\x20gs',_0xd684('0x8'),util['inspect'](_0x13458b,{'showHidden':![],'depth':null}),_0x904ec1,_0x4f188c);_0xaadc6a(_0x13458b);}_0x5fc5af(_0x904ec1);});});};
\ No newline at end of file
+var _0x72a1=['../../../../config/logger','fax','bluebird','exec','info','Exec\x20gs','inspect'];(function(_0x436870,_0x301e53){var _0x42b847=function(_0xc2a194){while(--_0xc2a194){_0x436870['push'](_0x436870['shift']());}};_0x42b847(++_0x301e53);}(_0x72a1,0x70));var _0x172a=function(_0x95e569,_0x47f79a){_0x95e569=_0x95e569-0x0;var _0x4d8860=_0x72a1[_0x95e569];return _0x4d8860;};'use strict';var util=require('util');var logger=require(_0x172a('0x0'))(_0x172a('0x1'));var BPromise=require(_0x172a('0x2'));var exec=require('child_process')[_0x172a('0x3')];exports['execute']=function(_0x550493){return new BPromise(function(_0x309975,_0x2dbc70){exec(_0x550493,function(_0x11a6be,_0x5373bd,_0x548f4e){logger[_0x172a('0x4')](_0x172a('0x5'),_0x5373bd);if(_0x11a6be){logger[_0x172a('0x4')]('Exec\x20gs','\x20Error\x20:',util[_0x172a('0x6')](_0x11a6be,{'showHidden':![],'depth':null}),_0x5373bd,_0x548f4e);_0x2dbc70(_0x11a6be);}_0x309975(_0x5373bd);});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8b0f=['util','fax','message','info','inspect','addVariables','headerinfo','format','\x22%s\x22','faxdetect','t38timeout','localstationid','path','variablesAction','uniqueid','channel','xcally-motion-fax','from-sip','\x22%s\x22\x20<%s>'];(function(_0x1b62d2,_0x34d3ae){var _0x647276=function(_0x4776b9){while(--_0x4776b9){_0x1b62d2['push'](_0x1b62d2['shift']());}};_0x647276(++_0x34d3ae);}(_0x8b0f,0x1ee));var _0xf8b0=function(_0x3006ea,_0x257120){_0x3006ea=_0x3006ea-0x0;var _0x4fc4fe=_0x8b0f[_0x3006ea];return _0x4fc4fe;};'use strict';var util=require(_0xf8b0('0x0'));var _=require('lodash');var moment=require('moment');var logger=require('../../../../config/logger')(_0xf8b0('0x1'));exports[_0xf8b0('0x2')]=function(_0x5e74fd){return{'message':_0x5e74fd};};exports['logger']=function(_0x24342f,_0xc9e3d){logger[_0xf8b0('0x3')](_0x24342f,util[_0xf8b0('0x4')](_0xc9e3d,{'showHidden':![],'depth':null}));};exports[_0xf8b0('0x5')]=function(_0x51f447,_0x54344c){var _0x6ec9db={'XMF-ECM':_0x54344c['ecm'],'XMF-HEADERINFO':_0x54344c[_0xf8b0('0x6')],'XMF-MINRATE':_0x54344c['minrate'],'XMF-MAXRATE':_0x54344c['maxrate'],'XMF-MODEM':util[_0xf8b0('0x7')](_0xf8b0('0x8'),_0x54344c['modem']),'XMF-GATEWAY':_0x54344c['gateway'],'XMF-FAXDETECT':_0x54344c[_0xf8b0('0x9')],'XMF-T38TIMEOUT':_0x54344c[_0xf8b0('0xa')],'XMF-LOCALSTATIONID':_0x54344c[_0xf8b0('0xb')],'XMF-PATH':_0x51f447[_0xf8b0('0xc')]};return _0x6ec9db;};exports[_0xf8b0('0xd')]=function(_0x18bf6e,_0x44ae52){return{'actionid':_0x18bf6e[_0xf8b0('0xe')],'action':'originate','channel':_0x18bf6e[_0xf8b0('0xf')],'Exten':_0xf8b0('0x10'),'Context':_0xf8b0('0x11'),'Priority':'1','callerid':util[_0xf8b0('0x7')](_0xf8b0('0x12'),_0x18bf6e[_0xf8b0('0x6')]?_0x18bf6e['headerinfo']:'',_0x18bf6e[_0xf8b0('0xb')]),'variable':_0x44ae52,'timeout':0x1e*0x3e8,'async':!![],'channelid':_0x18bf6e[_0xf8b0('0xe')]};};
\ No newline at end of file
+var _0x26ea=['t38timeout','localstationid','path','variablesAction','uniqueid','originate','channel','xcally-motion-fax','from-sip','\x22%s\x22\x20<%s>','util','lodash','moment','../../../../config/logger','message','logger','inspect','addVariables','ecm','headerinfo','minrate','maxrate','format','modem','gateway','faxdetect'];(function(_0x41a280,_0xa0be9d){var _0x5b13ee=function(_0x5a9bfa){while(--_0x5a9bfa){_0x41a280['push'](_0x41a280['shift']());}};_0x5b13ee(++_0xa0be9d);}(_0x26ea,0x176));var _0xa26e=function(_0xf2eff6,_0xec2ee2){_0xf2eff6=_0xf2eff6-0x0;var _0x477297=_0x26ea[_0xf2eff6];return _0x477297;};'use strict';var util=require(_0xa26e('0x0'));var _=require(_0xa26e('0x1'));var moment=require(_0xa26e('0x2'));var logger=require(_0xa26e('0x3'))('fax');exports[_0xa26e('0x4')]=function(_0x5180fe){return{'message':_0x5180fe};};exports[_0xa26e('0x5')]=function(_0x7e6703,_0x2766be){logger['info'](_0x7e6703,util[_0xa26e('0x6')](_0x2766be,{'showHidden':![],'depth':null}));};exports[_0xa26e('0x7')]=function(_0x12fbbd,_0x2013fb){var _0xfd6f4c={'XMF-ECM':_0x2013fb[_0xa26e('0x8')],'XMF-HEADERINFO':_0x2013fb[_0xa26e('0x9')],'XMF-MINRATE':_0x2013fb[_0xa26e('0xa')],'XMF-MAXRATE':_0x2013fb[_0xa26e('0xb')],'XMF-MODEM':util[_0xa26e('0xc')]('\x22%s\x22',_0x2013fb[_0xa26e('0xd')]),'XMF-GATEWAY':_0x2013fb[_0xa26e('0xe')],'XMF-FAXDETECT':_0x2013fb[_0xa26e('0xf')],'XMF-T38TIMEOUT':_0x2013fb[_0xa26e('0x10')],'XMF-LOCALSTATIONID':_0x2013fb[_0xa26e('0x11')],'XMF-PATH':_0x12fbbd[_0xa26e('0x12')]};return _0xfd6f4c;};exports[_0xa26e('0x13')]=function(_0x47ee15,_0x498635){return{'actionid':_0x47ee15[_0xa26e('0x14')],'action':_0xa26e('0x15'),'channel':_0x47ee15[_0xa26e('0x16')],'Exten':_0xa26e('0x17'),'Context':_0xa26e('0x18'),'Priority':'1','callerid':util['format'](_0xa26e('0x19'),_0x47ee15[_0xa26e('0x9')]?_0x47ee15[_0xa26e('0x9')]:'',_0x47ee15[_0xa26e('0x11')]),'variable':_0x498635,'timeout':0x1e*0x3e8,'async':!![],'channelid':_0x47ee15[_0xa26e('0x14')]};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x48ff=['catch','log','listen','bluebird','util','moment','./report','./acw','./trigger','./preview','./fax','./rpc/voiceQueue','./rpc/voiceQueueReport','./rpc/trunk','./rpc/trigger','./rpc/cmHopperHistory','./rpc/campaign','./rpc/voiceExtension','./rpc/faxAccount','./rpc/integrations/zendesk','./rpc/integrations/sugarcrm','./rpc/integrations/freshdesk','./rpc/integrations/desk','./rpc/integrations/zoho','./rpc/integrations/vtiger','./rpc/integrations/freshsales','./rpc/integrations/servicenow','./rpc/integrations/dynamics365','get','hour','resolve','then','getAgents','initAgents','getTelephones','initTelephones','getTrunks','initTrunks','initVoiceQueues','getTriggers','initTriggers','getTemplates','initTemplates','initZendeskAccounts','getSalesforceAccounts','initSalesforceAccounts','getSugarcrmAccounts','initSugarcrmAccounts','getFreshdeskAccounts','initFreshdeskAccounts','getDeskAccounts','getZohoAccounts','getVtigerAccounts','getFreshsalesAccounts','initFreshsalesAccounts','getServicenowAccounts','getDynamics365Accounts','initDynamics365Accounts','initVoiceExtensions','getFaxAccounts','initFaxAccounts','getVoiceQueueReports','initVoiceQueueReports','getVoiceQueueHopperHistory','initVoiceQueueHopperHistory','getCampaignHopperHistory','initCampaignHopperHistory','getVoiceCallReports','initVoiceCallReports'];(function(_0x4fde08,_0x463a36){var _0x12e725=function(_0x2670c5){while(--_0x2670c5){_0x4fde08['push'](_0x4fde08['shift']());}};_0x12e725(++_0x463a36);}(_0x48ff,0x15c));var _0xf48f=function(_0x4d6bd2,_0x234477){_0x4d6bd2=_0x4d6bd2-0x0;var _0x5108c7=_0x48ff[_0x4d6bd2];return _0x5108c7;};'use strict';var BPromise=require(_0xf48f('0x0'));var util=require(_0xf48f('0x1'));var moment=require(_0xf48f('0x2'));var server=require('./server');var Realtime=require('./realtime');var Report=require(_0xf48f('0x3'));var Acw=require(_0xf48f('0x4'));var Trigger=require(_0xf48f('0x5'));var Dialer=require('./dialer');var Preview=require(_0xf48f('0x6'));var Fax=require(_0xf48f('0x7'));var user=require('./rpc/user');var voiceQueue=require(_0xf48f('0x8'));var voiceQueueReport=require(_0xf48f('0x9'));var voiceCallReport=require('./rpc/voiceCallReport');var trunk=require(_0xf48f('0xa'));var trigger=require(_0xf48f('0xb'));var template=require('./rpc/template');var cmHopperHistory=require(_0xf48f('0xc'));var campaign=require(_0xf48f('0xd'));var voiceExtension=require(_0xf48f('0xe'));var faxAccount=require(_0xf48f('0xf'));var zendesk=require(_0xf48f('0x10'));var salesforce=require('./rpc/integrations/salesforce');var sugarcrm=require(_0xf48f('0x11'));var freshdesk=require(_0xf48f('0x12'));var desk=require(_0xf48f('0x13'));var zoho=require(_0xf48f('0x14'));var vtiger=require(_0xf48f('0x15'));var freshsales=require(_0xf48f('0x16'));var servicenow=require(_0xf48f('0x17'));var dynamics365=require(_0xf48f('0x18'));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()[_0xf48f('0x19')]('hour')===0x0&&initP){initP=![];isTrue=!![];initParams();}if(moment()[_0xf48f('0x19')](_0xf48f('0x1a'))===0x1&&isTrue){isTrue=![];initP=!![];}}function initRealtime(){ifMidnight();return BPromise[_0xf48f('0x1b')]()[_0xf48f('0x1c')](user[_0xf48f('0x1d')]())[_0xf48f('0x1c')](realtime[_0xf48f('0x1e')]())[_0xf48f('0x1c')](user[_0xf48f('0x1f')]())[_0xf48f('0x1c')](realtime[_0xf48f('0x20')]())[_0xf48f('0x1c')](trunk[_0xf48f('0x21')]())[_0xf48f('0x1c')](realtime[_0xf48f('0x22')]())[_0xf48f('0x1c')](voiceQueue['getVoiceQueues']())[_0xf48f('0x1c')](realtime[_0xf48f('0x23')]())[_0xf48f('0x1c')](trigger[_0xf48f('0x24')]())[_0xf48f('0x1c')](realtime[_0xf48f('0x25')]())['then'](template[_0xf48f('0x26')]())[_0xf48f('0x1c')](realtime[_0xf48f('0x27')]())[_0xf48f('0x1c')](zendesk['getZendeskAccounts']())['then'](realtime[_0xf48f('0x28')]())['then'](salesforce[_0xf48f('0x29')]())[_0xf48f('0x1c')](realtime[_0xf48f('0x2a')]())[_0xf48f('0x1c')](sugarcrm[_0xf48f('0x2b')]())[_0xf48f('0x1c')](realtime[_0xf48f('0x2c')]())[_0xf48f('0x1c')](freshdesk[_0xf48f('0x2d')]())[_0xf48f('0x1c')](realtime[_0xf48f('0x2e')]())[_0xf48f('0x1c')](desk[_0xf48f('0x2f')]())[_0xf48f('0x1c')](realtime['initDeskAccounts']())[_0xf48f('0x1c')](zoho[_0xf48f('0x30')]())[_0xf48f('0x1c')](realtime['initZohoAccounts']())['then'](vtiger[_0xf48f('0x31')]())[_0xf48f('0x1c')](realtime['initVtigerAccounts']())[_0xf48f('0x1c')](freshsales[_0xf48f('0x32')]())[_0xf48f('0x1c')](realtime[_0xf48f('0x33')]())[_0xf48f('0x1c')](servicenow[_0xf48f('0x34')]())[_0xf48f('0x1c')](realtime['initServicenowAccounts']())[_0xf48f('0x1c')](dynamics365[_0xf48f('0x35')]())['then'](realtime[_0xf48f('0x36')]())[_0xf48f('0x1c')](campaign['getCampaigns']())[_0xf48f('0x1c')](realtime['initCampaigns']())['then'](voiceExtension['getVoiceExtensions']())[_0xf48f('0x1c')](realtime[_0xf48f('0x37')]())[_0xf48f('0x1c')](faxAccount[_0xf48f('0x38')]())[_0xf48f('0x1c')](realtime[_0xf48f('0x39')]())[_0xf48f('0x1c')](function(){return realtime;});}function initParams(){return BPromise[_0xf48f('0x1b')]()['then'](voiceQueueReport[_0xf48f('0x3a')]())[_0xf48f('0x1c')](realtime[_0xf48f('0x3b')]())['then'](cmHopperHistory[_0xf48f('0x3c')]())[_0xf48f('0x1c')](realtime[_0xf48f('0x3d')]())[_0xf48f('0x1c')](cmHopperHistory[_0xf48f('0x3e')]())[_0xf48f('0x1c')](realtime[_0xf48f('0x3f')]())[_0xf48f('0x1c')](voiceCallReport[_0xf48f('0x40')]())[_0xf48f('0x1c')](realtime[_0xf48f('0x41')]())['then'](function(_0x2689ed){})[_0xf48f('0x42')](function(_0x5ce92f){console[_0xf48f('0x43')](_0x5ce92f);});}function main(){return server[_0xf48f('0x44')](realtime,preview,fax)[_0xf48f('0x1c')](function(_0x502f91){return initRealtime();})[_0xf48f('0x1c')](function(){return initParams();})['then'](function(){report['sync']();setInterval(initRealtime,0x1388);})[_0xf48f('0x42')](function(_0x5e8112){console['log'](_0x5e8112);});}main();
\ No newline at end of file
+var _0x8135=['catch','listen','sync','log','bluebird','util','./realtime','./report','./acw','./trigger','./preview','./fax','./rpc/voiceQueue','./rpc/voiceQueueReport','./rpc/voiceCallReport','./rpc/trunk','./rpc/trigger','./rpc/template','./rpc/cmHopperHistory','./rpc/campaign','./rpc/faxAccount','./rpc/integrations/sugarcrm','./rpc/integrations/freshdesk','./rpc/integrations/zoho','./rpc/integrations/vtiger','./rpc/integrations/freshsales','./rpc/integrations/dynamics365','get','hour','resolve','then','getAgents','initAgents','initTelephones','getTrunks','initTrunks','getVoiceQueues','initVoiceQueues','getTriggers','initTriggers','initTemplates','getZendeskAccounts','getSalesforceAccounts','initSalesforceAccounts','getSugarcrmAccounts','initSugarcrmAccounts','getFreshdeskAccounts','initFreshdeskAccounts','getDeskAccounts','initDeskAccounts','getZohoAccounts','initZohoAccounts','getVtigerAccounts','getFreshsalesAccounts','initFreshsalesAccounts','initServicenowAccounts','initDynamics365Accounts','getCampaigns','initCampaigns','getFaxAccounts','initFaxAccounts','getVoiceQueueReports','initVoiceQueueReports','getVoiceQueueHopperHistory','initVoiceQueueHopperHistory','getCampaignHopperHistory','initCampaignHopperHistory','getVoiceCallReports'];(function(_0x4fae14,_0x4ef118){var _0x305e46=function(_0x3f4c4a){while(--_0x3f4c4a){_0x4fae14['push'](_0x4fae14['shift']());}};_0x305e46(++_0x4ef118);}(_0x8135,0x19c));var _0x5813=function(_0x1ae10a,_0x8ce881){_0x1ae10a=_0x1ae10a-0x0;var _0x3388c8=_0x8135[_0x1ae10a];return _0x3388c8;};'use strict';var BPromise=require(_0x5813('0x0'));var util=require(_0x5813('0x1'));var moment=require('moment');var server=require('./server');var Realtime=require(_0x5813('0x2'));var Report=require(_0x5813('0x3'));var Acw=require(_0x5813('0x4'));var Trigger=require(_0x5813('0x5'));var Dialer=require('./dialer');var Preview=require(_0x5813('0x6'));var Fax=require(_0x5813('0x7'));var user=require('./rpc/user');var voiceQueue=require(_0x5813('0x8'));var voiceQueueReport=require(_0x5813('0x9'));var voiceCallReport=require(_0x5813('0xa'));var trunk=require(_0x5813('0xb'));var trigger=require(_0x5813('0xc'));var template=require(_0x5813('0xd'));var cmHopperHistory=require(_0x5813('0xe'));var campaign=require(_0x5813('0xf'));var voiceExtension=require('./rpc/voiceExtension');var faxAccount=require(_0x5813('0x10'));var zendesk=require('./rpc/integrations/zendesk');var salesforce=require('./rpc/integrations/salesforce');var sugarcrm=require(_0x5813('0x11'));var freshdesk=require(_0x5813('0x12'));var desk=require('./rpc/integrations/desk');var zoho=require(_0x5813('0x13'));var vtiger=require(_0x5813('0x14'));var freshsales=require(_0x5813('0x15'));var servicenow=require('./rpc/integrations/servicenow');var dynamics365=require(_0x5813('0x16'));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()[_0x5813('0x17')](_0x5813('0x18'))===0x0&&initP){initP=![];isTrue=!![];initParams();}if(moment()[_0x5813('0x17')](_0x5813('0x18'))===0x1&&isTrue){isTrue=![];initP=!![];}}function initRealtime(){ifMidnight();return BPromise[_0x5813('0x19')]()[_0x5813('0x1a')](user[_0x5813('0x1b')]())['then'](realtime[_0x5813('0x1c')]())[_0x5813('0x1a')](user['getTelephones']())['then'](realtime[_0x5813('0x1d')]())['then'](trunk[_0x5813('0x1e')]())[_0x5813('0x1a')](realtime[_0x5813('0x1f')]())['then'](voiceQueue[_0x5813('0x20')]())[_0x5813('0x1a')](realtime[_0x5813('0x21')]())[_0x5813('0x1a')](trigger[_0x5813('0x22')]())[_0x5813('0x1a')](realtime[_0x5813('0x23')]())[_0x5813('0x1a')](template['getTemplates']())[_0x5813('0x1a')](realtime[_0x5813('0x24')]())['then'](zendesk[_0x5813('0x25')]())[_0x5813('0x1a')](realtime['initZendeskAccounts']())[_0x5813('0x1a')](salesforce[_0x5813('0x26')]())[_0x5813('0x1a')](realtime[_0x5813('0x27')]())[_0x5813('0x1a')](sugarcrm[_0x5813('0x28')]())['then'](realtime[_0x5813('0x29')]())['then'](freshdesk[_0x5813('0x2a')]())[_0x5813('0x1a')](realtime[_0x5813('0x2b')]())[_0x5813('0x1a')](desk[_0x5813('0x2c')]())[_0x5813('0x1a')](realtime[_0x5813('0x2d')]())[_0x5813('0x1a')](zoho[_0x5813('0x2e')]())[_0x5813('0x1a')](realtime[_0x5813('0x2f')]())[_0x5813('0x1a')](vtiger[_0x5813('0x30')]())[_0x5813('0x1a')](realtime['initVtigerAccounts']())['then'](freshsales[_0x5813('0x31')]())[_0x5813('0x1a')](realtime[_0x5813('0x32')]())[_0x5813('0x1a')](servicenow['getServicenowAccounts']())[_0x5813('0x1a')](realtime[_0x5813('0x33')]())[_0x5813('0x1a')](dynamics365['getDynamics365Accounts']())[_0x5813('0x1a')](realtime[_0x5813('0x34')]())[_0x5813('0x1a')](campaign[_0x5813('0x35')]())[_0x5813('0x1a')](realtime[_0x5813('0x36')]())['then'](voiceExtension['getVoiceExtensions']())[_0x5813('0x1a')](realtime['initVoiceExtensions']())[_0x5813('0x1a')](faxAccount[_0x5813('0x37')]())[_0x5813('0x1a')](realtime[_0x5813('0x38')]())['then'](function(){return realtime;});}function initParams(){return BPromise[_0x5813('0x19')]()['then'](voiceQueueReport[_0x5813('0x39')]())[_0x5813('0x1a')](realtime[_0x5813('0x3a')]())['then'](cmHopperHistory[_0x5813('0x3b')]())[_0x5813('0x1a')](realtime[_0x5813('0x3c')]())[_0x5813('0x1a')](cmHopperHistory[_0x5813('0x3d')]())['then'](realtime[_0x5813('0x3e')]())[_0x5813('0x1a')](voiceCallReport[_0x5813('0x3f')]())[_0x5813('0x1a')](realtime['initVoiceCallReports']())['then'](function(_0x321991){})[_0x5813('0x40')](function(_0x370e09){console['log'](_0x370e09);});}function main(){return server[_0x5813('0x41')](realtime,preview,fax)['then'](function(_0x23e275){return initRealtime();})[_0x5813('0x1a')](function(){return initParams();})['then'](function(){report[_0x5813('0x42')]();setInterval(initRealtime,0x1388);})[_0x5813('0x40')](function(_0x1163bb){console[_0x5813('0x43')](_0x1163bb);});}main();
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-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(_0x45a2ee,_0x32fbf5){var _0x853ff5=function(_0x567cc4){while(--_0x567cc4){_0x45a2ee['push'](_0x45a2ee['shift']());}};_0x853ff5(++_0x32fbf5);}(_0x70e0,0x17b));var _0x070e=function(_0x502e39,_0x1195f0){_0x502e39=_0x502e39-0x0;var _0x35f22d=_0x70e0[_0x502e39];return _0x35f22d;};'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
+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(_0x3143c0,_0x459274){var _0x4fe8e9=function(_0x970ec8){while(--_0x970ec8){_0x3143c0['push'](_0x3143c0['shift']());}};_0x4fe8e9(++_0x459274);}(_0xe706,0xa3));var _0x6e70=function(_0x27685e,_0x845417){_0x27685e=_0x27685e-0x0;var _0x224a6f=_0xe706[_0x27685e];return _0x224a6f;};'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
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb8e5=['dialGlobalMaxRetry','dialNoSuchNumberMaxRetry','dialNoSuchNumberRetryFrequency','dialDropMaxRetry','dialDropRetryFrequency','dialAbandonedMaxRetry','dialAbandonedRetryFrequency','dialMachineMaxRetry','dialMachineRetryFrequency','dialAgentRejectMaxRetry','dialAgentRejectRetryFrequency','dialOrderByScheduledAt','DESC','dialPrefix','dialRandomLastDigitCallerIdNumber','dialCutDigit','TrunkBackup','Trunk','Interval','SquareProject','dialAMDActive','dialAMDInitialSilence','dialAMDGreeting','dialAMDAfterGreetingSilence','dialAMDTotalAnalysisTime','dialAMDMinWordLength','dialAMDBetweenWordsSilence','dialAMDMaximumNumberOfWords','dialAMDSilenceThreshold','dialAMDMaximumWordLength','name','type','campaign','originated','temp','ivrTotalCallsDays','sendMessageOneNotActive','active','limitCalls','dialTimezone','dialGlobalInterval','dialOriginateCallerIdName','dialOriginateCallerIdNumber','dialOriginateTimeout','dialCongestionMaxRetry','dialCongestionRetryFrequency','dialBusyMaxRetry','dialBusyRetryFrequency','dialNoAnswerMaxRetry','dialNoAnswerRetryFrequency'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xb8e5,0x118));var _0x5b8e=function(_0x74dd6,_0x16a9b5){_0x74dd6=_0x74dd6-0x0;var _0x2c225d=_0xb8e5[_0x74dd6];return _0x2c225d;};'use strict';function Campaign(_0x23e977){this['id']=_0x23e977['id']||0x0;this[_0x5b8e('0x0')]=_0x23e977['name']||'';this[_0x5b8e('0x1')]=_0x23e977[_0x5b8e('0x1')]||_0x5b8e('0x2');this[_0x5b8e('0x3')]=0x0;this[_0x5b8e('0x4')]=0x0;this['ivrAnswerCallsDay']=0x0;this[_0x5b8e('0x5')]=0x0;this['message']='';this[_0x5b8e('0x6')]=!![];this[_0x5b8e('0x7')]=_0x23e977[_0x5b8e('0x7')];this[_0x5b8e('0x8')]=_0x23e977[_0x5b8e('0x8')];this[_0x5b8e('0x9')]=_0x23e977[_0x5b8e('0x9')]||null;this[_0x5b8e('0xa')]=_0x23e977[_0x5b8e('0xa')]?_0x23e977['dialGlobalInterval']:null;this['dialOriginateCallerIdName']=_0x23e977[_0x5b8e('0xb')];this[_0x5b8e('0xc')]=_0x23e977[_0x5b8e('0xc')];this[_0x5b8e('0xd')]=_0x23e977[_0x5b8e('0xd')]||0x1e;this['dialCongestionMaxRetry']=_0x23e977[_0x5b8e('0xe')];this[_0x5b8e('0xf')]=_0x23e977['dialCongestionRetryFrequency'];this[_0x5b8e('0x10')]=_0x23e977[_0x5b8e('0x10')];this[_0x5b8e('0x11')]=_0x23e977[_0x5b8e('0x11')];this[_0x5b8e('0x12')]=_0x23e977[_0x5b8e('0x12')];this[_0x5b8e('0x13')]=_0x23e977[_0x5b8e('0x13')];this[_0x5b8e('0x14')]=_0x23e977['dialGlobalMaxRetry'];this[_0x5b8e('0x15')]=_0x23e977[_0x5b8e('0x15')]||0x3;this[_0x5b8e('0x16')]=_0x23e977['dialNoSuchNumberRetryFrequency']||0x96;this[_0x5b8e('0x17')]=_0x23e977['dialDropMaxRetry']||0x3;this[_0x5b8e('0x18')]=_0x23e977[_0x5b8e('0x18')]||0x96;this[_0x5b8e('0x19')]=_0x23e977['dialAbandonedMaxRetry']||0x3;this[_0x5b8e('0x1a')]=_0x23e977['dialAbandonedRetryFrequency']||0x96;this[_0x5b8e('0x1b')]=_0x23e977[_0x5b8e('0x1b')]||0x3;this[_0x5b8e('0x1c')]=_0x23e977[_0x5b8e('0x1c')]||0x96;this[_0x5b8e('0x1d')]=_0x23e977[_0x5b8e('0x1d')]||0x3;this[_0x5b8e('0x1e')]=_0x23e977[_0x5b8e('0x1e')]||0x96;this[_0x5b8e('0x1f')]=_0x23e977[_0x5b8e('0x1f')]||_0x5b8e('0x20');this[_0x5b8e('0x21')]=_0x23e977['dialPrefix']||undefined;this[_0x5b8e('0x22')]=_0x23e977[_0x5b8e('0x22')]||undefined;this[_0x5b8e('0x23')]=_0x23e977[_0x5b8e('0x23')]||undefined;this[_0x5b8e('0x24')]=_0x23e977[_0x5b8e('0x24')]?_0x23e977[_0x5b8e('0x24')]:undefined;this[_0x5b8e('0x25')]=_0x23e977[_0x5b8e('0x25')]?_0x23e977[_0x5b8e('0x25')]:undefined;this[_0x5b8e('0x26')]=_0x23e977[_0x5b8e('0x26')]?_0x23e977[_0x5b8e('0x26')]:undefined;this[_0x5b8e('0x27')]=_0x23e977[_0x5b8e('0x27')]?_0x23e977[_0x5b8e('0x27')]:undefined;this['dialQueueProject']=_0x23e977[_0x5b8e('0x27')]?_0x23e977['SquareProject'][_0x5b8e('0x0')]:undefined;this[_0x5b8e('0x28')]=_0x23e977['dialAMDActive']||![];this[_0x5b8e('0x29')]=_0x23e977[_0x5b8e('0x29')];this[_0x5b8e('0x2a')]=_0x23e977[_0x5b8e('0x2a')];this[_0x5b8e('0x2b')]=_0x23e977[_0x5b8e('0x2b')];this['dialAMDTotalAnalysisTime']=_0x23e977[_0x5b8e('0x2c')];this[_0x5b8e('0x2d')]=_0x23e977['dialAMDMinWordLength'];this[_0x5b8e('0x2e')]=_0x23e977[_0x5b8e('0x2e')];this[_0x5b8e('0x2f')]=_0x23e977['dialAMDMaximumNumberOfWords'];this['dialAMDSilenceThreshold']=_0x23e977[_0x5b8e('0x30')];this[_0x5b8e('0x31')]=_0x23e977['dialAMDMaximumWordLength'];}module['exports']=Campaign;
\ No newline at end of file
+var _0xf94e=['TrunkBackup','Trunk','Interval','SquareProject','dialQueueProject','dialAMDActive','dialAMDInitialSilence','dialAMDGreeting','dialAMDAfterGreetingSilence','dialAMDTotalAnalysisTime','dialAMDMinWordLength','dialAMDBetweenWordsSilence','dialAMDMaximumNumberOfWords','dialAMDSilenceThreshold','exports','name','type','originated','temp','ivrAnswerCallsDay','ivrTotalCallsDays','message','sendMessageOneNotActive','limitCalls','dialTimezone','dialGlobalInterval','dialOriginateCallerIdName','dialOriginateCallerIdNumber','dialOriginateTimeout','dialCongestionMaxRetry','dialCongestionRetryFrequency','dialBusyMaxRetry','dialBusyRetryFrequency','dialNoAnswerMaxRetry','dialNoAnswerRetryFrequency','dialGlobalMaxRetry','dialNoSuchNumberRetryFrequency','dialDropMaxRetry','dialDropRetryFrequency','dialAbandonedMaxRetry','dialAbandonedRetryFrequency','dialMachineMaxRetry','dialMachineRetryFrequency','dialAgentRejectMaxRetry','dialAgentRejectRetryFrequency','dialOrderByScheduledAt','DESC','dialPrefix','dialRandomLastDigitCallerIdNumber'];(function(_0x40ae01,_0x44ef11){var _0xf40520=function(_0x858088){while(--_0x858088){_0x40ae01['push'](_0x40ae01['shift']());}};_0xf40520(++_0x44ef11);}(_0xf94e,0xa2));var _0xef94=function(_0x7e4808,_0x3ef5ca){_0x7e4808=_0x7e4808-0x0;var _0x19a55f=_0xf94e[_0x7e4808];return _0x19a55f;};'use strict';function Campaign(_0xc44d5f){this['id']=_0xc44d5f['id']||0x0;this[_0xef94('0x0')]=_0xc44d5f[_0xef94('0x0')]||'';this[_0xef94('0x1')]=_0xc44d5f[_0xef94('0x1')]||'campaign';this[_0xef94('0x2')]=0x0;this[_0xef94('0x3')]=0x0;this[_0xef94('0x4')]=0x0;this[_0xef94('0x5')]=0x0;this[_0xef94('0x6')]='';this[_0xef94('0x7')]=!![];this['active']=_0xc44d5f['active'];this[_0xef94('0x8')]=_0xc44d5f[_0xef94('0x8')];this[_0xef94('0x9')]=_0xc44d5f[_0xef94('0x9')]||null;this['dialGlobalInterval']=_0xc44d5f[_0xef94('0xa')]?_0xc44d5f['dialGlobalInterval']:null;this[_0xef94('0xb')]=_0xc44d5f['dialOriginateCallerIdName'];this[_0xef94('0xc')]=_0xc44d5f['dialOriginateCallerIdNumber'];this[_0xef94('0xd')]=_0xc44d5f[_0xef94('0xd')]||0x1e;this[_0xef94('0xe')]=_0xc44d5f['dialCongestionMaxRetry'];this[_0xef94('0xf')]=_0xc44d5f['dialCongestionRetryFrequency'];this[_0xef94('0x10')]=_0xc44d5f[_0xef94('0x10')];this[_0xef94('0x11')]=_0xc44d5f['dialBusyRetryFrequency'];this[_0xef94('0x12')]=_0xc44d5f[_0xef94('0x12')];this[_0xef94('0x13')]=_0xc44d5f[_0xef94('0x13')];this[_0xef94('0x14')]=_0xc44d5f[_0xef94('0x14')];this['dialNoSuchNumberMaxRetry']=_0xc44d5f['dialNoSuchNumberMaxRetry']||0x3;this[_0xef94('0x15')]=_0xc44d5f[_0xef94('0x15')]||0x96;this[_0xef94('0x16')]=_0xc44d5f[_0xef94('0x16')]||0x3;this[_0xef94('0x17')]=_0xc44d5f[_0xef94('0x17')]||0x96;this[_0xef94('0x18')]=_0xc44d5f['dialAbandonedMaxRetry']||0x3;this[_0xef94('0x19')]=_0xc44d5f[_0xef94('0x19')]||0x96;this[_0xef94('0x1a')]=_0xc44d5f[_0xef94('0x1a')]||0x3;this[_0xef94('0x1b')]=_0xc44d5f[_0xef94('0x1b')]||0x96;this[_0xef94('0x1c')]=_0xc44d5f[_0xef94('0x1c')]||0x3;this[_0xef94('0x1d')]=_0xc44d5f['dialAgentRejectRetryFrequency']||0x96;this[_0xef94('0x1e')]=_0xc44d5f[_0xef94('0x1e')]||_0xef94('0x1f');this['dialPrefix']=_0xc44d5f[_0xef94('0x20')]||undefined;this['dialRandomLastDigitCallerIdNumber']=_0xc44d5f[_0xef94('0x21')]||undefined;this['dialCutDigit']=_0xc44d5f['dialCutDigit']||undefined;this[_0xef94('0x22')]=_0xc44d5f[_0xef94('0x22')]?_0xc44d5f['TrunkBackup']:undefined;this[_0xef94('0x23')]=_0xc44d5f['Trunk']?_0xc44d5f[_0xef94('0x23')]:undefined;this[_0xef94('0x24')]=_0xc44d5f['Interval']?_0xc44d5f[_0xef94('0x24')]:undefined;this[_0xef94('0x25')]=_0xc44d5f[_0xef94('0x25')]?_0xc44d5f[_0xef94('0x25')]:undefined;this[_0xef94('0x26')]=_0xc44d5f[_0xef94('0x25')]?_0xc44d5f[_0xef94('0x25')][_0xef94('0x0')]:undefined;this['dialAMDActive']=_0xc44d5f[_0xef94('0x27')]||![];this[_0xef94('0x28')]=_0xc44d5f[_0xef94('0x28')];this[_0xef94('0x29')]=_0xc44d5f[_0xef94('0x29')];this[_0xef94('0x2a')]=_0xc44d5f[_0xef94('0x2a')];this[_0xef94('0x2b')]=_0xc44d5f[_0xef94('0x2b')];this[_0xef94('0x2c')]=_0xc44d5f[_0xef94('0x2c')];this[_0xef94('0x2d')]=_0xc44d5f['dialAMDBetweenWordsSilence'];this['dialAMDMaximumNumberOfWords']=_0xc44d5f[_0xef94('0x2e')];this[_0xef94('0x2f')]=_0xc44d5f[_0xef94('0x2f')];this['dialAMDMaximumWordLength']=_0xc44d5f['dialAMDMaximumWordLength'];}module[_0xef94('0x30')]=Campaign;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcd92=['channel','destinationchannel','calleridnum','calleridname','connectedlinename','accountcode','uniqueid','exten','answered','answertime','endtime','unmanaged','abandoned','lastapplication','lastdata','billableseconds','type','disposition','queue','monitors','transfercalleridnum','transferconnectedlinenum','transferType','mohtime','exports'];(function(_0x60dad1,_0x44a161){var _0x512282=function(_0x23cca7){while(--_0x23cca7){_0x60dad1['push'](_0x60dad1['shift']());}};_0x512282(++_0x44a161);}(_0xcd92,0x1c2));var _0x2cd9=function(_0x4e676e,_0x2a7c6d){_0x4e676e=_0x4e676e-0x0;var _0x336a3c=_0xcd92[_0x4e676e];return _0x336a3c;};'use strict';function Channel(){this['starttime']=null;this[_0x2cd9('0x0')]='';this[_0x2cd9('0x1')]='';this[_0x2cd9('0x2')]=0x0;this[_0x2cd9('0x3')]='';this['connectedlinenum']=undefined;this[_0x2cd9('0x4')]=undefined;this[_0x2cd9('0x5')]=0x0;this['context']='';this[_0x2cd9('0x6')]=0x0;this['linkedid']=0x0;this[_0x2cd9('0x7')]=0x0;this[_0x2cd9('0x8')]=![];this[_0x2cd9('0x9')]=null;this[_0x2cd9('0xa')]=null;this[_0x2cd9('0xb')]=![];this[_0x2cd9('0xc')]=![];this[_0x2cd9('0xd')]='';this[_0x2cd9('0xe')]='';this['duration']=0x0;this[_0x2cd9('0xf')]=0x0;this['holdtime']=0x0;this[_0x2cd9('0x10')]=null;this['tag']=null;this[_0x2cd9('0x11')]=null;this['monitor']=![];this['monitorFilename']=null;this[_0x2cd9('0x12')]=null;this[_0x2cd9('0x13')]=[];this[_0x2cd9('0x14')]=undefined;this[_0x2cd9('0x15')]=undefined;this[_0x2cd9('0x16')]=undefined;this[_0x2cd9('0x17')]=0x0;}module[_0x2cd9('0x18')]=Channel;
\ No newline at end of file
+var _0x27c8=['endtime','unmanaged','abandoned','lastapplication','lastdata','holdtime','type','monitor','monitorFilename','monitors','transfercalleridnum','transferconnectedlinenum','transferType','exports','channel','destinationchannel','connectedlinenum','connectedlinename','accountcode','context','uniqueid','linkedid','answertime'];(function(_0x3a1e00,_0x3f009c){var _0x29686f=function(_0x1c9a41){while(--_0x1c9a41){_0x3a1e00['push'](_0x3a1e00['shift']());}};_0x29686f(++_0x3f009c);}(_0x27c8,0x6a));var _0x827c=function(_0x5b1275,_0x57a956){_0x5b1275=_0x5b1275-0x0;var _0x2cf9a9=_0x27c8[_0x5b1275];return _0x2cf9a9;};'use strict';function Channel(){this['starttime']=null;this[_0x827c('0x0')]='';this[_0x827c('0x1')]='';this['calleridnum']=0x0;this['calleridname']='';this[_0x827c('0x2')]=undefined;this[_0x827c('0x3')]=undefined;this[_0x827c('0x4')]=0x0;this[_0x827c('0x5')]='';this[_0x827c('0x6')]=0x0;this[_0x827c('0x7')]=0x0;this['exten']=0x0;this['answered']=![];this[_0x827c('0x8')]=null;this[_0x827c('0x9')]=null;this[_0x827c('0xa')]=![];this[_0x827c('0xb')]=![];this[_0x827c('0xc')]='';this[_0x827c('0xd')]='';this['duration']=0x0;this['billableseconds']=0x0;this[_0x827c('0xe')]=0x0;this[_0x827c('0xf')]=null;this['tag']=null;this['disposition']=null;this[_0x827c('0x10')]=![];this[_0x827c('0x11')]=null;this['queue']=null;this[_0x827c('0x12')]=[];this[_0x827c('0x13')]=undefined;this[_0x827c('0x14')]=undefined;this[_0x827c('0x15')]=undefined;this['mohtime']=0x0;}module[_0x827c('0x16')]=Channel;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x87ca=['consumerSecret','tokenSecret','type','serverUrl','Configurations','exports','name','username','remoteUri','authType','password','consumerKey'];(function(_0xa8fa9d,_0x512118){var _0x568c6c=function(_0x3199d1){while(--_0x3199d1){_0xa8fa9d['push'](_0xa8fa9d['shift']());}};_0x568c6c(++_0x512118);}(_0x87ca,0x1e6));var _0xa87c=function(_0x261c5a,_0x48e9e4){_0x261c5a=_0x261c5a-0x0;var _0x1f28f3=_0x87ca[_0x261c5a];return _0x1f28f3;};'use strict';function DeskAccount(_0x526f26){this['id']=_0x526f26['id']||0x0;this[_0xa87c('0x0')]=_0x526f26['name']||'';this[_0xa87c('0x1')]=_0x526f26['username']||'';this[_0xa87c('0x2')]=_0x526f26[_0xa87c('0x2')]||'';this[_0xa87c('0x3')]=_0x526f26[_0xa87c('0x3')]||'';this[_0xa87c('0x4')]=_0x526f26[_0xa87c('0x4')]||'';this[_0xa87c('0x5')]=_0x526f26[_0xa87c('0x5')]||'';this[_0xa87c('0x6')]=_0x526f26[_0xa87c('0x6')]||'';this['token']=_0x526f26['token']||'';this['tokenSecret']=_0x526f26[_0xa87c('0x7')]||'';this[_0xa87c('0x8')]=_0x526f26['type']||'';this[_0xa87c('0x9')]=_0x526f26[_0xa87c('0x9')]||'';this[_0xa87c('0xa')]=_0x526f26[_0xa87c('0xa')]||{};}module[_0xa87c('0xb')]=DeskAccount;
\ No newline at end of file
+var _0x0e70=['name','username','remoteUri','authType','password','consumerKey','consumerSecret','token','tokenSecret','type','serverUrl','Configurations'];(function(_0x1417c6,_0x194309){var _0x44db97=function(_0xa2a293){while(--_0xa2a293){_0x1417c6['push'](_0x1417c6['shift']());}};_0x44db97(++_0x194309);}(_0x0e70,0xc0));var _0x00e7=function(_0x4eb929,_0xd21d25){_0x4eb929=_0x4eb929-0x0;var _0x1af003=_0x0e70[_0x4eb929];return _0x1af003;};'use strict';function DeskAccount(_0x3aaf85){this['id']=_0x3aaf85['id']||0x0;this[_0x00e7('0x0')]=_0x3aaf85[_0x00e7('0x0')]||'';this[_0x00e7('0x1')]=_0x3aaf85['username']||'';this[_0x00e7('0x2')]=_0x3aaf85['remoteUri']||'';this['authType']=_0x3aaf85[_0x00e7('0x3')]||'';this[_0x00e7('0x4')]=_0x3aaf85['password']||'';this[_0x00e7('0x5')]=_0x3aaf85['consumerKey']||'';this[_0x00e7('0x6')]=_0x3aaf85['consumerSecret']||'';this[_0x00e7('0x7')]=_0x3aaf85[_0x00e7('0x7')]||'';this[_0x00e7('0x8')]=_0x3aaf85[_0x00e7('0x8')]||'';this[_0x00e7('0x9')]=_0x3aaf85[_0x00e7('0x9')]||'';this['serverUrl']=_0x3aaf85[_0x00e7('0xa')]||'';this[_0x00e7('0xb')]=_0x3aaf85[_0x00e7('0xb')]||{};}module['exports']=DeskAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf7b4=['Configurations','exports','username','remoteUri','tenantId','clientId','clientSecret','serverUrl'];(function(_0x2b2d5b,_0x4a2fb1){var _0x80b73f=function(_0x5810be){while(--_0x5810be){_0x2b2d5b['push'](_0x2b2d5b['shift']());}};_0x80b73f(++_0x4a2fb1);}(_0xf7b4,0x152));var _0x4f7b=function(_0xb52f03,_0x21bf27){_0xb52f03=_0xb52f03-0x0;var _0x53d543=_0xf7b4[_0xb52f03];return _0x53d543;};'use strict';function Dynamics365Account(_0x4e182d){this['id']=_0x4e182d['id']||0x0;this['name']=_0x4e182d['name']||'';this[_0x4f7b('0x0')]=_0x4e182d[_0x4f7b('0x0')]||'';this['password']=_0x4e182d['password']||'';this[_0x4f7b('0x1')]=_0x4e182d[_0x4f7b('0x1')]||'';this[_0x4f7b('0x2')]=_0x4e182d[_0x4f7b('0x2')]||'';this[_0x4f7b('0x3')]=_0x4e182d[_0x4f7b('0x3')]||'';this[_0x4f7b('0x4')]=_0x4e182d[_0x4f7b('0x4')]||{};this[_0x4f7b('0x5')]=_0x4e182d[_0x4f7b('0x5')]||'';this[_0x4f7b('0x6')]=_0x4e182d[_0x4f7b('0x6')]||{};}module[_0x4f7b('0x7')]=Dynamics365Account;
\ No newline at end of file
+var _0xee5b=['clientId','clientSecret','name','username','password','remoteUri'];(function(_0x4bb2b9,_0x459c78){var _0x40e2a2=function(_0x19a26c){while(--_0x19a26c){_0x4bb2b9['push'](_0x4bb2b9['shift']());}};_0x40e2a2(++_0x459c78);}(_0xee5b,0x1f4));var _0xbee5=function(_0x1e7e7f,_0xe05a28){_0x1e7e7f=_0x1e7e7f-0x0;var _0x5f37de=_0xee5b[_0x1e7e7f];return _0x5f37de;};'use strict';function Dynamics365Account(_0x5384bd){this['id']=_0x5384bd['id']||0x0;this['name']=_0x5384bd[_0xbee5('0x0')]||'';this[_0xbee5('0x1')]=_0x5384bd['username']||'';this[_0xbee5('0x2')]=_0x5384bd[_0xbee5('0x2')]||'';this[_0xbee5('0x3')]=_0x5384bd[_0xbee5('0x3')]||'';this['tenantId']=_0x5384bd['tenantId']||'';this[_0xbee5('0x4')]=_0x5384bd[_0xbee5('0x4')]||'';this[_0xbee5('0x5')]=_0x5384bd[_0xbee5('0x5')]||{};this['serverUrl']=_0x5384bd['serverUrl']||'';this['Configurations']=_0x5384bd['Configurations']||{};}module['exports']=Dynamics365Account;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x89e2=['t38timeout','tech','Trunk','key','name','description','ecm','headerinfo','localstationid','minrate','maxrate','modem','v17,v27,v29','gateway','faxdetect'];(function(_0x52b173,_0x1484da){var _0x5564fe=function(_0x22e86e){while(--_0x22e86e){_0x52b173['push'](_0x52b173['shift']());}};_0x5564fe(++_0x1484da);}(_0x89e2,0xc7));var _0x289e=function(_0x2ef07f,_0x445698){_0x2ef07f=_0x2ef07f-0x0;var _0x3cc59f=_0x89e2[_0x2ef07f];return _0x3cc59f;};'use strict';function FaxAccount(_0x1f6114){this['id']=_0x1f6114['id']||0x0;this['name']=_0x1f6114[_0x289e('0x0')]||'';this[_0x289e('0x1')]=_0x1f6114['description'];this[_0x289e('0x2')]=_0x1f6114[_0x289e('0x2')];this[_0x289e('0x3')]=_0x1f6114[_0x289e('0x3')];this[_0x289e('0x4')]=_0x1f6114['localstationid'];this[_0x289e('0x5')]=_0x1f6114[_0x289e('0x5')]||0x960;this[_0x289e('0x6')]=_0x1f6114['maxrate']||0x3840;this[_0x289e('0x7')]=_0x1f6114[_0x289e('0x7')]||_0x289e('0x8');this[_0x289e('0x9')]=_0x1f6114['gateway']||'no';this[_0x289e('0xa')]=_0x1f6114[_0x289e('0xa')]||'no';this[_0x289e('0xb')]=_0x1f6114[_0x289e('0xb')]||0x1388;this[_0x289e('0xc')]=_0x1f6114['tech']||'SIP';this['Trunk']=_0x1f6114[_0x289e('0xd')]?_0x1f6114['Trunk']:undefined;this['ListId']=_0x1f6114['ListId'];this[_0x289e('0xe')]=_0x1f6114[_0x289e('0xe')];}module['exports']=FaxAccount;
\ No newline at end of file
+var _0x12ed=['tech','SIP','Trunk','ListId','key','exports','name','description','ecm','headerinfo','minrate','maxrate','modem','gateway','faxdetect','t38timeout'];(function(_0x500802,_0x28f571){var _0x37ec45=function(_0x56d61c){while(--_0x56d61c){_0x500802['push'](_0x500802['shift']());}};_0x37ec45(++_0x28f571);}(_0x12ed,0x1a6));var _0xd12e=function(_0xa5c293,_0x4111f3){_0xa5c293=_0xa5c293-0x0;var _0x3601ce=_0x12ed[_0xa5c293];return _0x3601ce;};'use strict';function FaxAccount(_0xb3f0b0){this['id']=_0xb3f0b0['id']||0x0;this[_0xd12e('0x0')]=_0xb3f0b0[_0xd12e('0x0')]||'';this[_0xd12e('0x1')]=_0xb3f0b0[_0xd12e('0x1')];this[_0xd12e('0x2')]=_0xb3f0b0[_0xd12e('0x2')];this[_0xd12e('0x3')]=_0xb3f0b0[_0xd12e('0x3')];this['localstationid']=_0xb3f0b0['localstationid'];this[_0xd12e('0x4')]=_0xb3f0b0['minrate']||0x960;this[_0xd12e('0x5')]=_0xb3f0b0[_0xd12e('0x5')]||0x3840;this['modem']=_0xb3f0b0[_0xd12e('0x6')]||'v17,v27,v29';this[_0xd12e('0x7')]=_0xb3f0b0['gateway']||'no';this[_0xd12e('0x8')]=_0xb3f0b0['faxdetect']||'no';this['t38timeout']=_0xb3f0b0[_0xd12e('0x9')]||0x1388;this[_0xd12e('0xa')]=_0xb3f0b0[_0xd12e('0xa')]||_0xd12e('0xb');this[_0xd12e('0xc')]=_0xb3f0b0[_0xd12e('0xc')]?_0xb3f0b0[_0xd12e('0xc')]:undefined;this[_0xd12e('0xd')]=_0xb3f0b0[_0xd12e('0xd')];this[_0xd12e('0xe')]=_0xb3f0b0[_0xd12e('0xe')];}module[_0xd12e('0xf')]=FaxAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x364b=['name','username','apiKey','serverUrl','Configurations'];(function(_0x20c85e,_0x485cf2){var _0x23bb96=function(_0x44703c){while(--_0x44703c){_0x20c85e['push'](_0x20c85e['shift']());}};_0x23bb96(++_0x485cf2);}(_0x364b,0x113));var _0xb364=function(_0xaf0996,_0x3ee642){_0xaf0996=_0xaf0996-0x0;var _0x8fde5a=_0x364b[_0xaf0996];return _0x8fde5a;};'use strict';function FreshdeskAccount(_0x230099){this['id']=_0x230099['id']||0x0;this[_0xb364('0x0')]=_0x230099[_0xb364('0x0')]||'';this['username']=_0x230099[_0xb364('0x1')]||'';this[_0xb364('0x2')]=_0x230099['token']||'';this['remoteUri']=_0x230099['remoteUri']||'';this['serverUrl']=_0x230099[_0xb364('0x3')]||'';this['Configurations']=_0x230099[_0xb364('0x4')]||{};}module['exports']=FreshdeskAccount;
\ No newline at end of file
+var _0x1f09=['exports','apiKey','token','remoteUri','serverUrl','Configurations'];(function(_0x4d1459,_0x43a3e9){var _0x362139=function(_0x5007b7){while(--_0x5007b7){_0x4d1459['push'](_0x4d1459['shift']());}};_0x362139(++_0x43a3e9);}(_0x1f09,0x1db));var _0x91f0=function(_0x46d1a9,_0x8fbfad){_0x46d1a9=_0x46d1a9-0x0;var _0x5b39ef=_0x1f09[_0x46d1a9];return _0x5b39ef;};'use strict';function FreshdeskAccount(_0x57a50e){this['id']=_0x57a50e['id']||0x0;this['name']=_0x57a50e['name']||'';this['username']=_0x57a50e['username']||'';this[_0x91f0('0x0')]=_0x57a50e[_0x91f0('0x1')]||'';this[_0x91f0('0x2')]=_0x57a50e[_0x91f0('0x2')]||'';this[_0x91f0('0x3')]=_0x57a50e[_0x91f0('0x3')]||'';this['Configurations']=_0x57a50e[_0x91f0('0x4')]||{};}module[_0x91f0('0x5')]=FreshdeskAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd101=['exports','name','username','apiKey','token','remoteUri','serverUrl','Configurations'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xd101,0xc1));var _0x1d10=function(_0xacf7a7,_0x460ede){_0xacf7a7=_0xacf7a7-0x0;var _0x128fd4=_0xd101[_0xacf7a7];return _0x128fd4;};'use strict';function FreshsalesAccount(_0x34b53f){this['id']=_0x34b53f['id']||0x0;this['name']=_0x34b53f[_0x1d10('0x0')]||'';this[_0x1d10('0x1')]=_0x34b53f[_0x1d10('0x1')]||'';this[_0x1d10('0x2')]=_0x34b53f[_0x1d10('0x3')]||'';this[_0x1d10('0x4')]=_0x34b53f[_0x1d10('0x4')]||'';this[_0x1d10('0x5')]=_0x34b53f['serverUrl']||'';this[_0x1d10('0x6')]=_0x34b53f[_0x1d10('0x6')]||{};}module[_0x1d10('0x7')]=FreshsalesAccount;
\ No newline at end of file
+var _0xdc0d=['serverUrl','Configurations','exports','name','username','apiKey','token','remoteUri'];(function(_0x22681f,_0x1c6ba3){var _0x133109=function(_0x5d83c0){while(--_0x5d83c0){_0x22681f['push'](_0x22681f['shift']());}};_0x133109(++_0x1c6ba3);}(_0xdc0d,0x1db));var _0xddc0=function(_0x460680,_0x43e9ac){_0x460680=_0x460680-0x0;var _0xaf90a0=_0xdc0d[_0x460680];return _0xaf90a0;};'use strict';function FreshsalesAccount(_0x91809d){this['id']=_0x91809d['id']||0x0;this[_0xddc0('0x0')]=_0x91809d['name']||'';this[_0xddc0('0x1')]=_0x91809d['username']||'';this[_0xddc0('0x2')]=_0x91809d[_0xddc0('0x3')]||'';this[_0xddc0('0x4')]=_0x91809d[_0xddc0('0x4')]||'';this[_0xddc0('0x5')]=_0x91809d[_0xddc0('0x5')]||'';this[_0xddc0('0x6')]=_0x91809d[_0xddc0('0x6')]||{};}module[_0xddc0('0x7')]=FreshsalesAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x27e5=['exports','type','inbound','uniqueid','calleridnum','calleridname','queuecallerjoinAt','position','count','queuecallerabandon','queuecallerabandonAt','queuecallercomplete','queuecallerexitAt','channel','connectedlinenum','connectedlinename','accountcode','context','holdtime','lastAssignedTo','mohtime','variables'];(function(_0xba5d24,_0x193064){var _0x463075=function(_0x5785ef){while(--_0x5785ef){_0xba5d24['push'](_0xba5d24['shift']());}};_0x463075(++_0x193064);}(_0x27e5,0x11f));var _0x527e=function(_0x50ac90,_0x59f68f){_0x50ac90=_0x50ac90-0x0;var _0x36eac6=_0x27e5[_0x50ac90];return _0x36eac6;};'use strict';function QueueReport(){this[_0x527e('0x0')]=_0x527e('0x1');this[_0x527e('0x2')]='';this[_0x527e('0x3')]='';this[_0x527e('0x4')]='';this['queue']='';this[_0x527e('0x5')]=null;this['queuecallerleaveAt']=null;this[_0x527e('0x6')]=0x1;this[_0x527e('0x7')]=0x1;this[_0x527e('0x8')]=![];this[_0x527e('0x9')]=null;this[_0x527e('0xa')]=![];this['queuecallercompleteAt']=null;this['queuecallerexit']=![];this[_0x527e('0xb')]=null;this['originalposition']=0x1;this[_0x527e('0xc')]='';this[_0x527e('0xd')]='';this[_0x527e('0xe')]='';this[_0x527e('0xf')]='';this[_0x527e('0x10')]='';this['exten']='';this['priority']='';this[_0x527e('0x11')]=0x0;this['assigned']=![];this[_0x527e('0x12')]='';this[_0x527e('0x13')]=0x0;this[_0x527e('0x14')]={};}module[_0x527e('0x15')]=QueueReport;
\ No newline at end of file
+var _0x7cfd=['connectedlinename','accountcode','exten','priority','holdtime','assigned','lastAssignedTo','motionChannel','voice','variables','exports','type','uniqueid','calleridname','queue','queuecallerjoinAt','count','queuecallerabandon','queuecallerabandonAt','queuecallerexit','queuecallerexitAt','originalposition','channel','connectedlinenum'];(function(_0x2f0205,_0x24cfb0){var _0x37f8e3=function(_0x1d8356){while(--_0x1d8356){_0x2f0205['push'](_0x2f0205['shift']());}};_0x37f8e3(++_0x24cfb0);}(_0x7cfd,0x15b));var _0xd7cf=function(_0x20f084,_0x10fc03){_0x20f084=_0x20f084-0x0;var _0x1b999f=_0x7cfd[_0x20f084];return _0x1b999f;};'use strict';function QueueReport(){this[_0xd7cf('0x0')]='inbound';this[_0xd7cf('0x1')]='';this['calleridnum']='';this[_0xd7cf('0x2')]='';this[_0xd7cf('0x3')]='';this[_0xd7cf('0x4')]=null;this['queuecallerleaveAt']=null;this['position']=0x1;this[_0xd7cf('0x5')]=0x1;this[_0xd7cf('0x6')]=![];this[_0xd7cf('0x7')]=null;this['queuecallercomplete']=![];this['queuecallercompleteAt']=null;this[_0xd7cf('0x8')]=![];this[_0xd7cf('0x9')]=null;this[_0xd7cf('0xa')]=0x1;this[_0xd7cf('0xb')]='';this[_0xd7cf('0xc')]='';this[_0xd7cf('0xd')]='';this[_0xd7cf('0xe')]='';this['context']='';this[_0xd7cf('0xf')]='';this[_0xd7cf('0x10')]='';this[_0xd7cf('0x11')]=0x0;this[_0xd7cf('0x12')]=![];this[_0xd7cf('0x13')]='';this[_0xd7cf('0x14')]=_0xd7cf('0x15');this['mohtime']=0x0;this[_0xd7cf('0x16')]={};}module[_0xd7cf('0x17')]=QueueReport;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x016d=['securityToken','type','integrationTab','serverUrl','Configurations','exports','name','username','remoteUri','password','clientId','clientSecret'];(function(_0x563a04,_0x50a0ac){var _0x3f5c5d=function(_0x5419bb){while(--_0x5419bb){_0x563a04['push'](_0x563a04['shift']());}};_0x3f5c5d(++_0x50a0ac);}(_0x016d,0x102));var _0xd016=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0x016d[_0x20a584];return _0x4b41a8;};'use strict';function SalesforceAccount(_0x4cf77a){this['id']=_0x4cf77a['id']||0x0;this[_0xd016('0x0')]=_0x4cf77a[_0xd016('0x0')]||'';this[_0xd016('0x1')]=_0x4cf77a[_0xd016('0x1')]||'';this[_0xd016('0x2')]=_0x4cf77a[_0xd016('0x2')]||'';this['password']=_0x4cf77a[_0xd016('0x3')]||'';this[_0xd016('0x4')]=_0x4cf77a[_0xd016('0x4')]||'';this['clientSecret']=_0x4cf77a[_0xd016('0x5')]||'';this[_0xd016('0x6')]=_0x4cf77a[_0xd016('0x6')]||'';this[_0xd016('0x7')]=_0x4cf77a['type']||_0xd016('0x8');this[_0xd016('0x9')]=_0x4cf77a['serverUrl']||'';this[_0xd016('0xa')]=_0x4cf77a[_0xd016('0xa')]||{};}module[_0xd016('0xb')]=SalesforceAccount;
\ No newline at end of file
+var _0xbc36=['password','clientId','clientSecret','securityToken','type','integrationTab','serverUrl','Configurations','username','remoteUri'];(function(_0x32752e,_0x3bd2fe){var _0x3830d6=function(_0x289e4d){while(--_0x289e4d){_0x32752e['push'](_0x32752e['shift']());}};_0x3830d6(++_0x3bd2fe);}(_0xbc36,0x166));var _0x6bc3=function(_0x1c00f2,_0x3ae46f){_0x1c00f2=_0x1c00f2-0x0;var _0x18967f=_0xbc36[_0x1c00f2];return _0x18967f;};'use strict';function SalesforceAccount(_0x29577f){this['id']=_0x29577f['id']||0x0;this['name']=_0x29577f['name']||'';this[_0x6bc3('0x0')]=_0x29577f[_0x6bc3('0x0')]||'';this[_0x6bc3('0x1')]=_0x29577f[_0x6bc3('0x1')]||'';this[_0x6bc3('0x2')]=_0x29577f['password']||'';this[_0x6bc3('0x3')]=_0x29577f[_0x6bc3('0x3')]||'';this[_0x6bc3('0x4')]=_0x29577f['clientSecret']||'';this['securityToken']=_0x29577f[_0x6bc3('0x5')]||'';this[_0x6bc3('0x6')]=_0x29577f[_0x6bc3('0x6')]||_0x6bc3('0x7');this[_0x6bc3('0x8')]=_0x29577f['serverUrl']||'';this[_0x6bc3('0x9')]=_0x29577f[_0x6bc3('0x9')]||{};}module['exports']=SalesforceAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x28c4=['username','password','serverUrl','name'];(function(_0x2641f9,_0x26715f){var _0x585741=function(_0x2d1462){while(--_0x2d1462){_0x2641f9['push'](_0x2641f9['shift']());}};_0x585741(++_0x26715f);}(_0x28c4,0x7f));var _0x428c=function(_0xd39959,_0x302d09){_0xd39959=_0xd39959-0x0;var _0x1ff69c=_0x28c4[_0xd39959];return _0x1ff69c;};'use strict';function ServicenowAccount(_0x48ada2){this['id']=_0x48ada2['id']||0x0;this[_0x428c('0x0')]=_0x48ada2[_0x428c('0x0')]||'';this['username']=_0x48ada2[_0x428c('0x1')]||'';this[_0x428c('0x2')]=_0x48ada2[_0x428c('0x2')]||'';this['remoteUri']=_0x48ada2['remoteUri']||'';this[_0x428c('0x3')]=_0x48ada2['serverUrl']||'';this['Configurations']=_0x48ada2['Configurations']||{};}module['exports']=ServicenowAccount;
\ No newline at end of file
+var _0xf1a2=['username','password','remoteUri','serverUrl','Configurations','exports','name'];(function(_0x3bcdd2,_0x15679a){var _0x5adf79=function(_0x47d94e){while(--_0x47d94e){_0x3bcdd2['push'](_0x3bcdd2['shift']());}};_0x5adf79(++_0x15679a);}(_0xf1a2,0x117));var _0x2f1a=function(_0x5e79a0,_0x2972ac){_0x5e79a0=_0x5e79a0-0x0;var _0x57adde=_0xf1a2[_0x5e79a0];return _0x57adde;};'use strict';function ServicenowAccount(_0x1bf3da){this['id']=_0x1bf3da['id']||0x0;this[_0x2f1a('0x0')]=_0x1bf3da[_0x2f1a('0x0')]||'';this[_0x2f1a('0x1')]=_0x1bf3da['username']||'';this[_0x2f1a('0x2')]=_0x1bf3da['password']||'';this['remoteUri']=_0x1bf3da[_0x2f1a('0x3')]||'';this['serverUrl']=_0x1bf3da[_0x2f1a('0x4')]||'';this[_0x2f1a('0x5')]=_0x1bf3da[_0x2f1a('0x5')]||{};}module[_0x2f1a('0x6')]=ServicenowAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2c01=['serverUrl','Configurations','name','username','password','remoteUri'];(function(_0x4b0bec,_0x45ca63){var _0x3b108b=function(_0x403160){while(--_0x403160){_0x4b0bec['push'](_0x4b0bec['shift']());}};_0x3b108b(++_0x45ca63);}(_0x2c01,0x16a));var _0x12c0=function(_0x200c22,_0x440b8f){_0x200c22=_0x200c22-0x0;var _0x15a13f=_0x2c01[_0x200c22];return _0x15a13f;};'use strict';function SugarcrmAccount(_0x17a1ef){this['id']=_0x17a1ef['id']||0x0;this[_0x12c0('0x0')]=_0x17a1ef['name']||'';this[_0x12c0('0x1')]=_0x17a1ef[_0x12c0('0x1')]||'';this[_0x12c0('0x2')]=_0x17a1ef[_0x12c0('0x2')]||'';this[_0x12c0('0x3')]=_0x17a1ef[_0x12c0('0x3')]||'';this[_0x12c0('0x4')]=_0x17a1ef[_0x12c0('0x4')]||'';this['Configurations']=_0x17a1ef[_0x12c0('0x5')]||{};}module['exports']=SugarcrmAccount;
\ No newline at end of file
+var _0x92c6=['exports','name','username','password','remoteUri','serverUrl','Configurations'];(function(_0x5a776b,_0x46f785){var _0xbbef59=function(_0x38313e){while(--_0x38313e){_0x5a776b['push'](_0x5a776b['shift']());}};_0xbbef59(++_0x46f785);}(_0x92c6,0x1e4));var _0x692c=function(_0x553ccd,_0xad240b){_0x553ccd=_0x553ccd-0x0;var _0x1294e4=_0x92c6[_0x553ccd];return _0x1294e4;};'use strict';function SugarcrmAccount(_0x421f3f){this['id']=_0x421f3f['id']||0x0;this[_0x692c('0x0')]=_0x421f3f['name']||'';this[_0x692c('0x1')]=_0x421f3f['username']||'';this[_0x692c('0x2')]=_0x421f3f[_0x692c('0x2')]||'';this[_0x692c('0x3')]=_0x421f3f['remoteUri']||'';this[_0x692c('0x4')]=_0x421f3f['serverUrl']||'';this[_0x692c('0x5')]=_0x421f3f[_0x692c('0x5')]||{};}module[_0x692c('0x6')]=SugarcrmAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x18a9=['state','unknown','stateTime','status','address','exports','name','accountcode'];(function(_0x4b3c2a,_0x51687e){var _0x3857ad=function(_0x1ac5ac){while(--_0x1ac5ac){_0x4b3c2a['push'](_0x4b3c2a['shift']());}};_0x3857ad(++_0x51687e);}(_0x18a9,0x17e));var _0x918a=function(_0x365dbe,_0x4d3979){_0x365dbe=_0x365dbe-0x0;var _0xaa71bb=_0x18a9[_0x365dbe];return _0xaa71bb;};'use strict';function Telephone(_0x1ccacd){this['id']=_0x1ccacd['id']||0x0;this['name']=_0x1ccacd[_0x918a('0x0')]||'';this['accountcode']=_0x1ccacd[_0x918a('0x1')]||'';this[_0x918a('0x2')]=_0x918a('0x3');this[_0x918a('0x4')]=0x0;this[_0x918a('0x5')]=_0x918a('0x3');this[_0x918a('0x6')]='';}module[_0x918a('0x7')]=Telephone;
\ No newline at end of file
+var _0xfc61=['name','accountcode','stateTime','status','unknown','address'];(function(_0x526a98,_0x384002){var _0x387c14=function(_0x43252c){while(--_0x43252c){_0x526a98['push'](_0x526a98['shift']());}};_0x387c14(++_0x384002);}(_0xfc61,0x78));var _0x1fc6=function(_0x2ef6eb,_0x1f09c4){_0x2ef6eb=_0x2ef6eb-0x0;var _0x5135c9=_0xfc61[_0x2ef6eb];return _0x5135c9;};'use strict';function Telephone(_0x4c6d8d){this['id']=_0x4c6d8d['id']||0x0;this[_0x1fc6('0x0')]=_0x4c6d8d[_0x1fc6('0x0')]||'';this[_0x1fc6('0x1')]=_0x4c6d8d['accountcode']||'';this['state']='unknown';this[_0x1fc6('0x2')]=0x0;this[_0x1fc6('0x3')]=_0x1fc6('0x4');this[_0x1fc6('0x5')]='';}module['exports']=Telephone;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['exports','name'];(function(_0x3bd33c,_0x2a9000){var _0x177c15=function(_0xda926){while(--_0xda926){_0x3bd33c['push'](_0x3bd33c['shift']());}};_0x177c15(++_0x2a9000);}(_0xa9e0,0x123));var _0x0a9e=function(_0x173d7e,_0x3242fd){_0x173d7e=_0x173d7e-0x0;var _0x2220d6=_0xa9e0[_0x173d7e];return _0x2220d6;};'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(_0x16be3a,_0x691888){var _0xa5511f=function(_0x4a4972){while(--_0x4a4972){_0x16be3a['push'](_0x16be3a['shift']());}};_0xa5511f(++_0x691888);}(_0xa9e0,0x123));var _0x0a9e=function(_0x3c2a69,_0x4c8b41){_0x3c2a69=_0x3c2a69-0x0;var _0x596bc8=_0xa9e0[_0x3c2a69];return _0x596bc8;};'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 _0x5eb8=['Actions','name','channel','voice','status','AllConditions','AnyConditions'];(function(_0x3a99f4,_0x2a81c1){var _0xea0b42=function(_0x41f533){while(--_0x41f533){_0x3a99f4['push'](_0x3a99f4['shift']());}};_0xea0b42(++_0x2a81c1);}(_0x5eb8,0xb0));var _0x85eb=function(_0x226ad1,_0x2858e2){_0x226ad1=_0x226ad1-0x0;var _0x16b625=_0x5eb8[_0x226ad1];return _0x16b625;};'use strict';function Trigger(_0x5ea4df){this['id']=_0x5ea4df['id']||0x0;this['name']=_0x5ea4df[_0x85eb('0x0')]||'';this[_0x85eb('0x1')]=_0x5ea4df[_0x85eb('0x1')]||_0x85eb('0x2');this[_0x85eb('0x3')]=_0x5ea4df[_0x85eb('0x3')]||![];this[_0x85eb('0x4')]=_0x5ea4df[_0x85eb('0x4')]||[];this[_0x85eb('0x5')]=_0x5ea4df[_0x85eb('0x5')]||[];this[_0x85eb('0x6')]=_0x5ea4df[_0x85eb('0x6')]||[];}module['exports']=Trigger;
\ No newline at end of file
+var _0xda3f=['Actions','name','status','AllConditions','AnyConditions'];(function(_0x4978a6,_0x304666){var _0x1ecca4=function(_0x33bc39){while(--_0x33bc39){_0x4978a6['push'](_0x4978a6['shift']());}};_0x1ecca4(++_0x304666);}(_0xda3f,0xec));var _0xfda3=function(_0x231930,_0x570afa){_0x231930=_0x231930-0x0;var _0x1dddb6=_0xda3f[_0x231930];return _0x1dddb6;};'use strict';function Trigger(_0x33f0ce){this['id']=_0x33f0ce['id']||0x0;this[_0xfda3('0x0')]=_0x33f0ce[_0xfda3('0x0')]||'';this['channel']=_0x33f0ce['channel']||'voice';this[_0xfda3('0x1')]=_0x33f0ce['status']||![];this[_0xfda3('0x2')]=_0x33f0ce[_0xfda3('0x2')]||[];this['AnyConditions']=_0x33f0ce[_0xfda3('0x3')]||[];this[_0xfda3('0x4')]=_0x33f0ce['Actions']||[];}module['exports']=Trigger;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xeb35=['defaultuser','exports','active','state','unknown','stateTime','status','registry','indexOf','split','port','domainport','refresh','stateRegistry','registrationtime'];(function(_0xef54fa,_0x20359c){var _0x59c11e=function(_0x163360){while(--_0x163360){_0xef54fa['push'](_0xef54fa['shift']());}};_0x59c11e(++_0x20359c);}(_0xeb35,0x7a));var _0x5eb3=function(_0x2e30c3,_0x259f13){_0x2e30c3=_0x2e30c3-0x0;var _0xaf8c0b=_0xeb35[_0x2e30c3];return _0xaf8c0b;};'use strict';function Trunk(_0x9cd2ca){this['id']=_0x9cd2ca['id']||0x0;this[_0x5eb3('0x0')]=_0x9cd2ca[_0x5eb3('0x0')]||![];this['name']=_0x9cd2ca['name']||'';this[_0x5eb3('0x1')]=_0x5eb3('0x2');this[_0x5eb3('0x3')]=0x0;this[_0x5eb3('0x4')]=_0x5eb3('0x2');this[_0x5eb3('0x5')]=_0x9cd2ca['registry']&&_0x9cd2ca[_0x5eb3('0x5')][_0x5eb3('0x6')](':')?_0x9cd2ca[_0x5eb3('0x5')][_0x5eb3('0x7')](':')[0x0]:'';this['host']='';this[_0x5eb3('0x8')]='';this['domain']='';this[_0x5eb3('0x9')]='';this[_0x5eb3('0xa')]='';this[_0x5eb3('0xb')]=_0x5eb3('0x2');this[_0x5eb3('0xc')]='';this['address']='';this[_0x5eb3('0xd')]=_0x9cd2ca[_0x5eb3('0xd')]||'';}module[_0x5eb3('0xe')]=Trunk;
\ No newline at end of file
+var _0x1ca0=['exports','active','name','state','unknown','stateTime','status','registry','indexOf','split','host','port','domain','domainport','refresh','stateRegistry','registrationtime','address','defaultuser'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0x1ca0,0x157));var _0x01ca=function(_0xa741fa,_0x14b888){_0xa741fa=_0xa741fa-0x0;var _0xfa882c=_0x1ca0[_0xa741fa];return _0xfa882c;};'use strict';function Trunk(_0x52b72e){this['id']=_0x52b72e['id']||0x0;this[_0x01ca('0x0')]=_0x52b72e[_0x01ca('0x0')]||![];this['name']=_0x52b72e[_0x01ca('0x1')]||'';this[_0x01ca('0x2')]=_0x01ca('0x3');this[_0x01ca('0x4')]=0x0;this[_0x01ca('0x5')]='unknown';this[_0x01ca('0x6')]=_0x52b72e[_0x01ca('0x6')]&&_0x52b72e['registry'][_0x01ca('0x7')](':')?_0x52b72e[_0x01ca('0x6')][_0x01ca('0x8')](':')[0x0]:'';this[_0x01ca('0x9')]='';this[_0x01ca('0xa')]='';this[_0x01ca('0xb')]='';this[_0x01ca('0xc')]='';this[_0x01ca('0xd')]='';this[_0x01ca('0xe')]=_0x01ca('0x3');this[_0x01ca('0xf')]='';this[_0x01ca('0x10')]='';this[_0x01ca('0x11')]=_0x52b72e[_0x01ca('0x11')]||'';}module[_0x01ca('0x12')]=Trunk;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x604b=['recordingFormat','none','mandatoryDisposition','exports','exten'];(function(_0x277b52,_0x558550){var _0x54a45c=function(_0x1cbcaa){while(--_0x1cbcaa){_0x277b52['push'](_0x277b52['shift']());}};_0x54a45c(++_0x558550);}(_0x604b,0x8b));var _0xb604=function(_0x590c25,_0x5dfb06){_0x590c25=_0x590c25-0x0;var _0x713d47=_0x604b[_0x590c25];return _0x713d47;};'use strict';function voiceExtension(_0x3e533f){this['id']=_0x3e533f['id']||0x0;this[_0xb604('0x0')]=_0x3e533f[_0xb604('0x0')]||'';this[_0xb604('0x1')]=_0x3e533f[_0xb604('0x1')]||_0xb604('0x2');this[_0xb604('0x3')]=_0x3e533f['mandatoryDisposition']||![];}module[_0xb604('0x4')]=voiceExtension;
\ No newline at end of file
+var _0x1a32=['none','mandatoryDisposition','exports','exten','recordingFormat'];(function(_0x59ee6f,_0x450239){var _0x4c0979=function(_0x565e92){while(--_0x565e92){_0x59ee6f['push'](_0x59ee6f['shift']());}};_0x4c0979(++_0x450239);}(_0x1a32,0xda));var _0x21a3=function(_0x47a40b,_0x443ecf){_0x47a40b=_0x47a40b-0x0;var _0x19610c=_0x1a32[_0x47a40b];return _0x19610c;};'use strict';function voiceExtension(_0xcfc885){this['id']=_0xcfc885['id']||0x0;this[_0x21a3('0x0')]=_0xcfc885[_0x21a3('0x0')]||'';this[_0x21a3('0x1')]=_0xcfc885[_0x21a3('0x1')]||_0x21a3('0x2');this[_0x21a3('0x3')]=_0xcfc885[_0x21a3('0x3')]||![];}module[_0x21a3('0x4')]=voiceExtension;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcd03=['dialMethod','progressive','dialLimitChannel','dialLimitQueue','dialPowerLevel','dialPredictiveOptimization','dropRate','dialPredictiveOptimizationPercentage','dialPredictiveInterval','dialOriginateCallerIdName','dialOriginateCallerIdNumber','anonymous','dialOriginateTimeout','dialQueueOptions','tTxX','dialQueueTimeout','dialQueueProject','dialCongestionMaxRetry','dialCongestionRetryFrequency','dialBusyMaxRetry','dialBusyRetryFrequency','dialNoAnswerMaxRetry','dialNoAnswerRetryFrequency','dialNoSuchNumberMaxRetry','dialNoSuchNumberRetryFrequency','dialDropRetryFrequency','dialAbandonedMaxRetry','dialAbandonedRetryFrequency','dialMachineMaxRetry','dialMachineRetryFrequency','dialAgentRejectMaxRetry','dialAgentRejectRetryFrequency','dialGlobalMaxRetry','Trunk','TrunkBackup','dialPrefix','Interval','dialOrderByScheduledAt','DESC','dialRandomLastDigitCallerIdNumber','dialCutDigit','strategy','queueStatusComplete','dialAMDActive','dialAMDInitialSilence','dialAMDGreeting','dialAMDAfterGreetingSilence','dialAMDTotalAnalysisTime','dialAMDMinWordLength','dialAMDBetweenWordsSilence','dialAMDMaximumNumberOfWords','dialAMDSilenceThreshold','dialAMDMaximumWordLength','outboundRejectCallsDay','timeout','outboundAnswerCallsDay','outboundAnswerAgiCallsDay','outboundBusyCallsDay','outboundCongestionCallsDay','outboundUnknownCallsDay','outboundOriginateFailureCallsDay','outboundDropCallsDayCallersExit','outboundDropCallsDayTimeout','outboundDropCallsDayACS','outboundReCallsDay','outboundAbandonedDay','startProgressive','startPredictive','handlePredictive','predictiveIntervalTotalCalls','predictiveIntervalAnsweredCalls','predictiveIntervalDroppedCallsCallersExit','predictiveIntervalDroppedCallsTimeout','predictiveIntervalAvgTalktime','predictiveIntervalPauses','dialPredictiveIntervalMaxThreshold','predictiveIntervalMinThreshold','predictiveIntervalErlangCallsDroppedCalls','predictiveIntervalHitRate','erlangCalls','erlangCallToSecond','erlangAbandonmentRate','erlangBusyFactor','dialRecallMeTimeout','dialRecallInQueue','dialQueueProject2','dialAgiAfterHangupClient','dialAgiAfterHangupAgent','monitor_format','mandatoryDisposition','mandatoryDispositionPause','unknown','inuse','invalid','unavailable','ringing','ringinuse','onhold','wav49','gsm','rrmemory','roundrobin','name','type','inbound','waiting','talking','total','answered','sumHoldTime','unmanaged','abandoned','loggedIn','available','acw','acwTimeout','autopause','sendMessageOneNotActive','originated','dialTimezone','dialGlobalInterval','dialActive'];(function(_0x43d238,_0x38671c){var _0x4e8547=function(_0x235d27){while(--_0x235d27){_0x43d238['push'](_0x43d238['shift']());}};_0x4e8547(++_0x38671c);}(_0xcd03,0x14f));var _0x3cd0=function(_0xf25802,_0x4b1892){_0xf25802=_0xf25802-0x0;var _0x482df9=_0xcd03[_0xf25802];return _0x482df9;};'use strict';var statusDesc=[_0x3cd0('0x0'),'not_inuse',_0x3cd0('0x1'),'busy',_0x3cd0('0x2'),_0x3cd0('0x3'),_0x3cd0('0x4'),_0x3cd0('0x5'),_0x3cd0('0x6')];var monitorFormat={'wav':'wav','wav49':_0x3cd0('0x7'),'gsm':_0x3cd0('0x8')};var strategy={'rrmemory':_0x3cd0('0x9'),'roundrobin':_0x3cd0('0xa')};function VoiceQueue(_0x13d3c4){this['id']=_0x13d3c4['id']||0x0;this[_0x3cd0('0xb')]=_0x13d3c4[_0x3cd0('0xb')]||'';this['monitor_format']=_0x13d3c4['monitor_format']||'';this['type']=_0x13d3c4[_0x3cd0('0xc')]||_0x3cd0('0xd');this[_0x3cd0('0xe')]=0x0;this[_0x3cd0('0xf')]=0x0;this[_0x3cd0('0x10')]=0x0;this[_0x3cd0('0x11')]=0x0;this['sumDuration']=0x0;this[_0x3cd0('0x12')]=0x0;this['sumBillable']=0x0;this[_0x3cd0('0x13')]=0x0;this[_0x3cd0('0x14')]=0x0;this[_0x3cd0('0x15')]=0x0;this[_0x3cd0('0x16')]=0x0;this[_0x3cd0('0x17')]=_0x13d3c4[_0x3cd0('0x17')]||![];this[_0x3cd0('0x18')]=_0x13d3c4[_0x3cd0('0x18')]||0xa;this[_0x3cd0('0x19')]=_0x13d3c4['autopause']||'no';this[_0x3cd0('0x1a')]=!![];this['message']='';this[_0x3cd0('0x1b')]=0x0;this['temp']=0x0;this[_0x3cd0('0x1c')]=_0x13d3c4['dialTimezone']||null;this[_0x3cd0('0x1d')]=_0x13d3c4[_0x3cd0('0x1d')]?_0x13d3c4['dialGlobalInterval']:null;this[_0x3cd0('0x1e')]=_0x13d3c4['dialActive'];this[_0x3cd0('0x1f')]=_0x13d3c4[_0x3cd0('0x1f')]||_0x3cd0('0x20');this[_0x3cd0('0x21')]=_0x13d3c4[_0x3cd0('0x21')]||0x0;this[_0x3cd0('0x22')]=_0x13d3c4[_0x3cd0('0x22')]||0x0;this[_0x3cd0('0x23')]=_0x13d3c4[_0x3cd0('0x23')]||0x1;this[_0x3cd0('0x24')]=_0x13d3c4[_0x3cd0('0x24')]||_0x3cd0('0x25');this[_0x3cd0('0x26')]=_0x13d3c4[_0x3cd0('0x26')]||0.03;this[_0x3cd0('0x27')]=_0x13d3c4[_0x3cd0('0x27')]||0x258;this['dialOriginateCallerIdName']=_0x13d3c4[_0x3cd0('0x28')]||'anonymous';this[_0x3cd0('0x29')]=_0x13d3c4[_0x3cd0('0x29')]||_0x3cd0('0x2a');this['dialOriginateTimeout']=_0x13d3c4[_0x3cd0('0x2b')]||0x1e;this[_0x3cd0('0x2c')]=_0x13d3c4[_0x3cd0('0x2c')]||_0x3cd0('0x2d');this[_0x3cd0('0x2e')]=_0x13d3c4[_0x3cd0('0x2e')]||0x3;this[_0x3cd0('0x2f')]=_0x13d3c4[_0x3cd0('0x2f')]||undefined;this['dialCongestionMaxRetry']=_0x13d3c4[_0x3cd0('0x30')]||0x3;this['dialCongestionRetryFrequency']=_0x13d3c4[_0x3cd0('0x31')]||0x96;this['dialBusyMaxRetry']=_0x13d3c4[_0x3cd0('0x32')]||0x3;this[_0x3cd0('0x33')]=_0x13d3c4['dialBusyRetryFrequency']||0x96;this[_0x3cd0('0x34')]=_0x13d3c4[_0x3cd0('0x34')]||0x3;this[_0x3cd0('0x35')]=_0x13d3c4[_0x3cd0('0x35')]||0x96;this[_0x3cd0('0x36')]=_0x13d3c4[_0x3cd0('0x36')]||0x3;this[_0x3cd0('0x37')]=_0x13d3c4[_0x3cd0('0x37')]||0x96;this['dialDropMaxRetry']=_0x13d3c4['dialDropMaxRetry']||0x3;this[_0x3cd0('0x38')]=_0x13d3c4[_0x3cd0('0x38')]||0x96;this[_0x3cd0('0x39')]=_0x13d3c4[_0x3cd0('0x39')]||0x3;this['dialAbandonedRetryFrequency']=_0x13d3c4[_0x3cd0('0x3a')]||0x96;this[_0x3cd0('0x3b')]=_0x13d3c4[_0x3cd0('0x3b')]||0x3;this[_0x3cd0('0x3c')]=_0x13d3c4['dialMachineRetryFrequency']||0x96;this['dialAgentRejectMaxRetry']=_0x13d3c4[_0x3cd0('0x3d')]||0x3;this[_0x3cd0('0x3e')]=_0x13d3c4[_0x3cd0('0x3e')]||0x96;this[_0x3cd0('0x3f')]=_0x13d3c4[_0x3cd0('0x3f')]||0x4;this[_0x3cd0('0x40')]=_0x13d3c4['Trunk']?_0x13d3c4[_0x3cd0('0x40')]:undefined;this['TrunkBackup']=_0x13d3c4['TrunkBackup']?_0x13d3c4[_0x3cd0('0x41')]:undefined;this[_0x3cd0('0x42')]=_0x13d3c4[_0x3cd0('0x42')]||undefined;this[_0x3cd0('0x43')]=_0x13d3c4[_0x3cd0('0x43')]?_0x13d3c4[_0x3cd0('0x43')]:undefined;this[_0x3cd0('0x44')]=_0x13d3c4['dialOrderByScheduledAt']||_0x3cd0('0x45');this['dialRandomLastDigitCallerIdNumber']=_0x13d3c4[_0x3cd0('0x46')]||undefined;this[_0x3cd0('0x47')]=_0x13d3c4[_0x3cd0('0x47')]||undefined;this[_0x3cd0('0x48')]=strategy[_0x13d3c4['strategy']]||_0x3cd0('0x9');this[_0x3cd0('0x49')]=!![];this['dialAMDActive']=_0x13d3c4[_0x3cd0('0x4a')]||![];this[_0x3cd0('0x4b')]=_0x13d3c4[_0x3cd0('0x4b')];this[_0x3cd0('0x4c')]=_0x13d3c4[_0x3cd0('0x4c')];this[_0x3cd0('0x4d')]=_0x13d3c4[_0x3cd0('0x4d')];this[_0x3cd0('0x4e')]=_0x13d3c4['dialAMDTotalAnalysisTime'];this[_0x3cd0('0x4f')]=_0x13d3c4['dialAMDMinWordLength'];this[_0x3cd0('0x50')]=_0x13d3c4[_0x3cd0('0x50')];this[_0x3cd0('0x51')]=_0x13d3c4['dialAMDMaximumNumberOfWords'];this['dialAMDSilenceThreshold']=_0x13d3c4[_0x3cd0('0x52')];this[_0x3cd0('0x53')]=_0x13d3c4[_0x3cd0('0x53')];this[_0x3cd0('0x54')]=0x0;this['pTalking']=0x0;this[_0x3cd0('0x55')]=_0x13d3c4['timeout'];this[_0x3cd0('0x56')]=0x0;this[_0x3cd0('0x57')]=0x0;this['outboundNoAnswerCallsDay']=0x0;this[_0x3cd0('0x58')]=0x0;this[_0x3cd0('0x59')]=0x0;this['outboundNoSuchCallsDay']=0x0;this[_0x3cd0('0x5a')]=0x0;this['outboundBlacklistCallsDay']=0x0;this[_0x3cd0('0x5b')]=0x0;this[_0x3cd0('0x5c')]=0x0;this[_0x3cd0('0x5d')]=0x0;this[_0x3cd0('0x5e')]=0x0;this[_0x3cd0('0x5f')]=0x0;this[_0x3cd0('0x60')]=0x0;this[_0x3cd0('0x61')]=undefined;this[_0x3cd0('0x62')]=undefined;this[_0x3cd0('0x63')]=undefined;this['predictiveIntervalMultiplicativeFactor']=1.05;this[_0x3cd0('0x64')]=0x0;this[_0x3cd0('0x65')]=0x0;this[_0x3cd0('0x66')]=0x0;this[_0x3cd0('0x67')]=0x0;this['predictiveIntervalAvgHoldtime']=0x0;this[_0x3cd0('0x68')]=0x0;this[_0x3cd0('0x69')]=0x0;this['predictiveIntervalAvailable']=0x0;this['predictiveIntervalMaxThreshold']=_0x13d3c4[_0x3cd0('0x6a')]||0x14;this[_0x3cd0('0x6b')]=_0x13d3c4[_0x3cd0('0x6a')]||0xa;this['predictiveIntervalErlangCalls']=0x0;this[_0x3cd0('0x6c')]=0x0;this[_0x3cd0('0x6d')]=0x1;this[_0x3cd0('0x6e')]=0x0;this[_0x3cd0('0x6f')]=0x0;this[_0x3cd0('0x70')]=0x0;this[_0x3cd0('0x71')]=0x0;this[_0x3cd0('0x72')]=_0x13d3c4[_0x3cd0('0x72')]||0x1e;this['dialRecallInQueue']=_0x13d3c4[_0x3cd0('0x73')]||![];this[_0x3cd0('0x74')]=_0x13d3c4['dialQueueProject2']||undefined;this[_0x3cd0('0x75')]=_0x13d3c4[_0x3cd0('0x75')]||![];this['dialAgiAfterHangupAgent']=_0x13d3c4[_0x3cd0('0x76')]||![];this['monitor_format']=monitorFormat[_0x13d3c4[_0x3cd0('0x77')]]?monitorFormat[_0x13d3c4[_0x3cd0('0x77')]]:undefined;this[_0x3cd0('0x78')]=_0x13d3c4['mandatoryDisposition']||![];this[_0x3cd0('0x79')]=_0x13d3c4[_0x3cd0('0x79')]?_0x13d3c4[_0x3cd0('0x79')]:undefined;}module['exports']=VoiceQueue;
\ No newline at end of file
+var _0x3383=['dialQueueProject2','dialAgiAfterHangupClient','mandatoryDisposition','mandatoryDispositionPause','exports','unknown','not_inuse','busy','invalid','unavailable','ringinuse','onhold','wav','gsm','rrmemory','name','monitor_format','type','inbound','waiting','talking','total','sumDuration','sumHoldTime','sumBillable','loggedIn','available','acw','acwTimeout','autopause','sendMessageOneNotActive','message','originated','temp','dialTimezone','dialGlobalInterval','dialActive','dialMethod','progressive','dialLimitChannel','dialLimitQueue','dialPowerLevel','dropRate','dialPredictiveOptimizationPercentage','dialPredictiveInterval','dialOriginateCallerIdName','anonymous','dialOriginateCallerIdNumber','dialOriginateTimeout','tTxX','dialQueueTimeout','dialCongestionMaxRetry','dialCongestionRetryFrequency','dialBusyMaxRetry','dialBusyRetryFrequency','dialNoAnswerMaxRetry','dialNoAnswerRetryFrequency','dialNoSuchNumberMaxRetry','dialNoSuchNumberRetryFrequency','dialDropMaxRetry','dialDropRetryFrequency','dialAbandonedMaxRetry','dialAbandonedRetryFrequency','dialMachineMaxRetry','dialMachineRetryFrequency','dialAgentRejectRetryFrequency','dialGlobalMaxRetry','Trunk','TrunkBackup','dialPrefix','Interval','dialOrderByScheduledAt','DESC','dialRandomLastDigitCallerIdNumber','dialCutDigit','strategy','queueStatusComplete','dialAMDActive','dialAMDInitialSilence','dialAMDGreeting','dialAMDAfterGreetingSilence','dialAMDTotalAnalysisTime','dialAMDSilenceThreshold','pTalking','outboundAnswerCallsDay','outboundBusyCallsDay','outboundUnknownCallsDay','outboundBlacklistCallsDay','outboundOriginateFailureCallsDay','outboundDropCallsDayCallersExit','outboundDropCallsDayACS','outboundReCallsDay','outboundAbandonedDay','startProgressive','startPredictive','predictiveIntervalMultiplicativeFactor','predictiveIntervalTotalCalls','predictiveIntervalAnsweredCalls','predictiveIntervalDroppedCallsCallersExit','predictiveIntervalDroppedCallsTimeout','predictiveIntervalAvgHoldtime','predictiveIntervalAvgTalktime','predictiveIntervalPauses','dialPredictiveIntervalMaxThreshold','predictiveIntervalMinThreshold','predictiveIntervalErlangCalls','predictiveIntervalErlangCallsDroppedCalls','predictiveIntervalHitRate','erlangCalls','erlangCallToSecond','erlangAbandonmentRate','erlangBusyFactor','dialRecallMeTimeout','dialRecallInQueue'];(function(_0x2265ec,_0x30a544){var _0x1ccae9=function(_0x3be259){while(--_0x3be259){_0x2265ec['push'](_0x2265ec['shift']());}};_0x1ccae9(++_0x30a544);}(_0x3383,0x1cd));var _0x3338=function(_0x1d56b7,_0x5bfc67){_0x1d56b7=_0x1d56b7-0x0;var _0x16fb19=_0x3383[_0x1d56b7];return _0x16fb19;};'use strict';var statusDesc=[_0x3338('0x0'),_0x3338('0x1'),'inuse',_0x3338('0x2'),_0x3338('0x3'),_0x3338('0x4'),'ringing',_0x3338('0x5'),_0x3338('0x6')];var monitorFormat={'wav':_0x3338('0x7'),'wav49':'wav49','gsm':_0x3338('0x8')};var strategy={'rrmemory':_0x3338('0x9'),'roundrobin':'roundrobin'};function VoiceQueue(_0x38fbe8){this['id']=_0x38fbe8['id']||0x0;this[_0x3338('0xa')]=_0x38fbe8[_0x3338('0xa')]||'';this[_0x3338('0xb')]=_0x38fbe8[_0x3338('0xb')]||'';this[_0x3338('0xc')]=_0x38fbe8[_0x3338('0xc')]||_0x3338('0xd');this[_0x3338('0xe')]=0x0;this[_0x3338('0xf')]=0x0;this[_0x3338('0x10')]=0x0;this['answered']=0x0;this[_0x3338('0x11')]=0x0;this[_0x3338('0x12')]=0x0;this[_0x3338('0x13')]=0x0;this['unmanaged']=0x0;this['abandoned']=0x0;this[_0x3338('0x14')]=0x0;this[_0x3338('0x15')]=0x0;this[_0x3338('0x16')]=_0x38fbe8[_0x3338('0x16')]||![];this[_0x3338('0x17')]=_0x38fbe8['acwTimeout']||0xa;this[_0x3338('0x18')]=_0x38fbe8['autopause']||'no';this[_0x3338('0x19')]=!![];this[_0x3338('0x1a')]='';this[_0x3338('0x1b')]=0x0;this[_0x3338('0x1c')]=0x0;this[_0x3338('0x1d')]=_0x38fbe8[_0x3338('0x1d')]||null;this[_0x3338('0x1e')]=_0x38fbe8[_0x3338('0x1e')]?_0x38fbe8[_0x3338('0x1e')]:null;this['dialActive']=_0x38fbe8[_0x3338('0x1f')];this[_0x3338('0x20')]=_0x38fbe8[_0x3338('0x20')]||_0x3338('0x21');this['dialLimitChannel']=_0x38fbe8[_0x3338('0x22')]||0x0;this[_0x3338('0x23')]=_0x38fbe8[_0x3338('0x23')]||0x0;this[_0x3338('0x24')]=_0x38fbe8[_0x3338('0x24')]||0x1;this['dialPredictiveOptimization']=_0x38fbe8['dialPredictiveOptimization']||_0x3338('0x25');this[_0x3338('0x26')]=_0x38fbe8['dialPredictiveOptimizationPercentage']||0.03;this['dialPredictiveInterval']=_0x38fbe8[_0x3338('0x27')]||0x258;this[_0x3338('0x28')]=_0x38fbe8[_0x3338('0x28')]||_0x3338('0x29');this['dialOriginateCallerIdNumber']=_0x38fbe8[_0x3338('0x2a')]||_0x3338('0x29');this[_0x3338('0x2b')]=_0x38fbe8[_0x3338('0x2b')]||0x1e;this['dialQueueOptions']=_0x38fbe8['dialQueueOptions']||_0x3338('0x2c');this[_0x3338('0x2d')]=_0x38fbe8[_0x3338('0x2d')]||0x3;this['dialQueueProject']=_0x38fbe8['dialQueueProject']||undefined;this[_0x3338('0x2e')]=_0x38fbe8[_0x3338('0x2e')]||0x3;this[_0x3338('0x2f')]=_0x38fbe8[_0x3338('0x2f')]||0x96;this[_0x3338('0x30')]=_0x38fbe8[_0x3338('0x30')]||0x3;this['dialBusyRetryFrequency']=_0x38fbe8[_0x3338('0x31')]||0x96;this[_0x3338('0x32')]=_0x38fbe8[_0x3338('0x32')]||0x3;this[_0x3338('0x33')]=_0x38fbe8['dialNoAnswerRetryFrequency']||0x96;this[_0x3338('0x34')]=_0x38fbe8[_0x3338('0x34')]||0x3;this[_0x3338('0x35')]=_0x38fbe8[_0x3338('0x35')]||0x96;this[_0x3338('0x36')]=_0x38fbe8[_0x3338('0x36')]||0x3;this[_0x3338('0x37')]=_0x38fbe8['dialDropRetryFrequency']||0x96;this[_0x3338('0x38')]=_0x38fbe8['dialAbandonedMaxRetry']||0x3;this[_0x3338('0x39')]=_0x38fbe8['dialAbandonedRetryFrequency']||0x96;this['dialMachineMaxRetry']=_0x38fbe8[_0x3338('0x3a')]||0x3;this[_0x3338('0x3b')]=_0x38fbe8[_0x3338('0x3b')]||0x96;this['dialAgentRejectMaxRetry']=_0x38fbe8['dialAgentRejectMaxRetry']||0x3;this[_0x3338('0x3c')]=_0x38fbe8['dialAgentRejectRetryFrequency']||0x96;this[_0x3338('0x3d')]=_0x38fbe8['dialGlobalMaxRetry']||0x4;this['Trunk']=_0x38fbe8[_0x3338('0x3e')]?_0x38fbe8[_0x3338('0x3e')]:undefined;this[_0x3338('0x3f')]=_0x38fbe8[_0x3338('0x3f')]?_0x38fbe8[_0x3338('0x3f')]:undefined;this['dialPrefix']=_0x38fbe8[_0x3338('0x40')]||undefined;this['Interval']=_0x38fbe8['Interval']?_0x38fbe8[_0x3338('0x41')]:undefined;this[_0x3338('0x42')]=_0x38fbe8[_0x3338('0x42')]||_0x3338('0x43');this[_0x3338('0x44')]=_0x38fbe8[_0x3338('0x44')]||undefined;this['dialCutDigit']=_0x38fbe8[_0x3338('0x45')]||undefined;this['strategy']=strategy[_0x38fbe8[_0x3338('0x46')]]||_0x3338('0x9');this[_0x3338('0x47')]=!![];this['dialAMDActive']=_0x38fbe8[_0x3338('0x48')]||![];this['dialAMDInitialSilence']=_0x38fbe8[_0x3338('0x49')];this[_0x3338('0x4a')]=_0x38fbe8[_0x3338('0x4a')];this[_0x3338('0x4b')]=_0x38fbe8[_0x3338('0x4b')];this[_0x3338('0x4c')]=_0x38fbe8[_0x3338('0x4c')];this['dialAMDMinWordLength']=_0x38fbe8['dialAMDMinWordLength'];this['dialAMDBetweenWordsSilence']=_0x38fbe8['dialAMDBetweenWordsSilence'];this['dialAMDMaximumNumberOfWords']=_0x38fbe8['dialAMDMaximumNumberOfWords'];this['dialAMDSilenceThreshold']=_0x38fbe8[_0x3338('0x4d')];this['dialAMDMaximumWordLength']=_0x38fbe8['dialAMDMaximumWordLength'];this['outboundRejectCallsDay']=0x0;this[_0x3338('0x4e')]=0x0;this['timeout']=_0x38fbe8['timeout'];this[_0x3338('0x4f')]=0x0;this['outboundAnswerAgiCallsDay']=0x0;this['outboundNoAnswerCallsDay']=0x0;this[_0x3338('0x50')]=0x0;this['outboundCongestionCallsDay']=0x0;this['outboundNoSuchCallsDay']=0x0;this[_0x3338('0x51')]=0x0;this[_0x3338('0x52')]=0x0;this[_0x3338('0x53')]=0x0;this[_0x3338('0x54')]=0x0;this['outboundDropCallsDayTimeout']=0x0;this[_0x3338('0x55')]=0x0;this[_0x3338('0x56')]=0x0;this[_0x3338('0x57')]=0x0;this[_0x3338('0x58')]=undefined;this[_0x3338('0x59')]=undefined;this['handlePredictive']=undefined;this[_0x3338('0x5a')]=1.05;this[_0x3338('0x5b')]=0x0;this[_0x3338('0x5c')]=0x0;this[_0x3338('0x5d')]=0x0;this[_0x3338('0x5e')]=0x0;this[_0x3338('0x5f')]=0x0;this[_0x3338('0x60')]=0x0;this[_0x3338('0x61')]=0x0;this['predictiveIntervalAvailable']=0x0;this['predictiveIntervalMaxThreshold']=_0x38fbe8[_0x3338('0x62')]||0x14;this[_0x3338('0x63')]=_0x38fbe8[_0x3338('0x62')]||0xa;this[_0x3338('0x64')]=0x0;this[_0x3338('0x65')]=0x0;this[_0x3338('0x66')]=0x1;this[_0x3338('0x67')]=0x0;this[_0x3338('0x68')]=0x0;this[_0x3338('0x69')]=0x0;this[_0x3338('0x6a')]=0x0;this['dialRecallMeTimeout']=_0x38fbe8[_0x3338('0x6b')]||0x1e;this[_0x3338('0x6c')]=_0x38fbe8['dialRecallInQueue']||![];this['dialQueueProject2']=_0x38fbe8[_0x3338('0x6d')]||undefined;this[_0x3338('0x6e')]=_0x38fbe8['dialAgiAfterHangupClient']||![];this['dialAgiAfterHangupAgent']=_0x38fbe8['dialAgiAfterHangupAgent']||![];this[_0x3338('0xb')]=monitorFormat[_0x38fbe8[_0x3338('0xb')]]?monitorFormat[_0x38fbe8['monitor_format']]:undefined;this[_0x3338('0x6f')]=_0x38fbe8['mandatoryDisposition']||![];this['mandatoryDispositionPause']=_0x38fbe8[_0x3338('0x70')]?_0x38fbe8[_0x3338('0x70')]:undefined;}module[_0x3338('0x71')]=VoiceQueue;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x63a0=['exports','name','username','accessKey','remoteUri','serverUrl','Configurations'];(function(_0x30f270,_0x29deee){var _0x5a7fd1=function(_0x1755bb){while(--_0x1755bb){_0x30f270['push'](_0x30f270['shift']());}};_0x5a7fd1(++_0x29deee);}(_0x63a0,0xe1));var _0x063a=function(_0x122ef9,_0x451d2a){_0x122ef9=_0x122ef9-0x0;var _0x42fba0=_0x63a0[_0x122ef9];return _0x42fba0;};'use strict';function VtigerAccount(_0x2ce8e9){this['id']=_0x2ce8e9['id']||0x0;this[_0x063a('0x0')]=_0x2ce8e9[_0x063a('0x0')]||'';this[_0x063a('0x1')]=_0x2ce8e9[_0x063a('0x1')]||'';this[_0x063a('0x2')]=_0x2ce8e9[_0x063a('0x2')]||'';this['remoteUri']=_0x2ce8e9[_0x063a('0x3')]||'';this[_0x063a('0x4')]=_0x2ce8e9[_0x063a('0x4')]||'';this[_0x063a('0x5')]=_0x2ce8e9[_0x063a('0x5')]||{};}module[_0x063a('0x6')]=VtigerAccount;
\ No newline at end of file
+var _0x76ce=['name','username','accessKey','remoteUri','serverUrl','Configurations','exports'];(function(_0x1967db,_0x14dd0a){var _0x4a131f=function(_0x1a65c4){while(--_0x1a65c4){_0x1967db['push'](_0x1967db['shift']());}};_0x4a131f(++_0x14dd0a);}(_0x76ce,0xb6));var _0xe76c=function(_0x5c351c,_0x2046d8){_0x5c351c=_0x5c351c-0x0;var _0x26f3b3=_0x76ce[_0x5c351c];return _0x26f3b3;};'use strict';function VtigerAccount(_0x493af7){this['id']=_0x493af7['id']||0x0;this[_0xe76c('0x0')]=_0x493af7['name']||'';this[_0xe76c('0x1')]=_0x493af7[_0xe76c('0x1')]||'';this[_0xe76c('0x2')]=_0x493af7[_0xe76c('0x2')]||'';this[_0xe76c('0x3')]=_0x493af7[_0xe76c('0x3')]||'';this[_0xe76c('0x4')]=_0x493af7['serverUrl']||'';this[_0xe76c('0x5')]=_0x493af7[_0xe76c('0x5')]||{};}module[_0xe76c('0x6')]=VtigerAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6d9b=['token','remoteUri','authType','type','integrationTab','serverUrl','Configurations','exports','name','username','password'];(function(_0x4b6084,_0xe09ce5){var _0x45e7e6=function(_0x224ecc){while(--_0x224ecc){_0x4b6084['push'](_0x4b6084['shift']());}};_0x45e7e6(++_0xe09ce5);}(_0x6d9b,0xad));var _0xb6d9=function(_0x22ecc5,_0x4607bd){_0x22ecc5=_0x22ecc5-0x0;var _0x4f2c5f=_0x6d9b[_0x22ecc5];return _0x4f2c5f;};'use strict';function ZendeskAccount(_0x53435a){this['id']=_0x53435a['id']||0x0;this['name']=_0x53435a[_0xb6d9('0x0')]||'';this[_0xb6d9('0x1')]=_0x53435a[_0xb6d9('0x1')]||'';this[_0xb6d9('0x2')]=_0x53435a['password']||'';this[_0xb6d9('0x3')]=_0x53435a[_0xb6d9('0x3')]||'';this[_0xb6d9('0x4')]=_0x53435a[_0xb6d9('0x4')]||'';this[_0xb6d9('0x5')]=_0x53435a[_0xb6d9('0x5')]||'';this[_0xb6d9('0x6')]=_0x53435a['type']||_0xb6d9('0x7');this[_0xb6d9('0x8')]=_0x53435a['serverUrl']||'';this['Configurations']=_0x53435a[_0xb6d9('0x9')]||{};}module[_0xb6d9('0xa')]=ZendeskAccount;
\ No newline at end of file
+var _0xf345=['name','username','password','token','remoteUri','authType','type','integrationTab','serverUrl','Configurations','exports'];(function(_0x228f20,_0x3e676d){var _0x4668ad=function(_0x16e710){while(--_0x16e710){_0x228f20['push'](_0x228f20['shift']());}};_0x4668ad(++_0x3e676d);}(_0xf345,0x181));var _0x5f34=function(_0x370110,_0x481e7c){_0x370110=_0x370110-0x0;var _0x362feb=_0xf345[_0x370110];return _0x362feb;};'use strict';function ZendeskAccount(_0x464d47){this['id']=_0x464d47['id']||0x0;this[_0x5f34('0x0')]=_0x464d47[_0x5f34('0x0')]||'';this[_0x5f34('0x1')]=_0x464d47[_0x5f34('0x1')]||'';this['password']=_0x464d47[_0x5f34('0x2')]||'';this['token']=_0x464d47[_0x5f34('0x3')]||'';this[_0x5f34('0x4')]=_0x464d47[_0x5f34('0x4')]||'';this[_0x5f34('0x5')]=_0x464d47['authType']||'';this[_0x5f34('0x6')]=_0x464d47['type']||_0x5f34('0x7');this['serverUrl']=_0x464d47[_0x5f34('0x8')]||'';this[_0x5f34('0x9')]=_0x464d47[_0x5f34('0x9')]||{};}module[_0x5f34('0xa')]=ZendeskAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4a9b=['refreshToken','Configurations','exports','name','description','host','zone','clientId','clientSecret','serverUrl','code'];(function(_0x1cc8fe,_0x105328){var _0x230054=function(_0x1a1b56){while(--_0x1a1b56){_0x1cc8fe['push'](_0x1cc8fe['shift']());}};_0x230054(++_0x105328);}(_0x4a9b,0x1dc));var _0xb4a9=function(_0x33bd3c,_0x33d5ba){_0x33bd3c=_0x33bd3c-0x0;var _0x3c15ca=_0x4a9b[_0x33bd3c];return _0x3c15ca;};'use strict';function ZohoAccount(_0x1eea29){this['id']=_0x1eea29['id']||0x0;this[_0xb4a9('0x0')]=_0x1eea29[_0xb4a9('0x0')]||'';this[_0xb4a9('0x1')]=_0x1eea29[_0xb4a9('0x1')]||'';this['host']=_0x1eea29[_0xb4a9('0x2')]||'';this[_0xb4a9('0x3')]=_0x1eea29['zone']||'';this[_0xb4a9('0x4')]=_0x1eea29[_0xb4a9('0x4')]||'';this[_0xb4a9('0x5')]=_0x1eea29[_0xb4a9('0x5')]||'';this[_0xb4a9('0x6')]=_0x1eea29[_0xb4a9('0x6')]||'';this[_0xb4a9('0x7')]=_0x1eea29['code']||'';this['refreshToken']=_0x1eea29[_0xb4a9('0x8')]||'';this[_0xb4a9('0x9')]=_0x1eea29[_0xb4a9('0x9')]||{};}module[_0xb4a9('0xa')]=ZohoAccount;
\ No newline at end of file
+var _0xe065=['description','zone','clientId','clientSecret','serverUrl','code','refreshToken','name'];(function(_0x122ef9,_0x451d2a){var _0x42fba0=function(_0x17c9d3){while(--_0x17c9d3){_0x122ef9['push'](_0x122ef9['shift']());}};_0x42fba0(++_0x451d2a);}(_0xe065,0x10f));var _0x5e06=function(_0x44d0b8,_0x46e02c){_0x44d0b8=_0x44d0b8-0x0;var _0x2a0fde=_0xe065[_0x44d0b8];return _0x2a0fde;};'use strict';function ZohoAccount(_0x3932ea){this['id']=_0x3932ea['id']||0x0;this[_0x5e06('0x0')]=_0x3932ea[_0x5e06('0x0')]||'';this[_0x5e06('0x1')]=_0x3932ea['description']||'';this['host']=_0x3932ea['host']||'';this[_0x5e06('0x2')]=_0x3932ea[_0x5e06('0x2')]||'';this[_0x5e06('0x3')]=_0x3932ea[_0x5e06('0x3')]||'';this[_0x5e06('0x4')]=_0x3932ea[_0x5e06('0x4')]||'';this[_0x5e06('0x5')]=_0x3932ea[_0x5e06('0x5')]||'';this[_0x5e06('0x6')]=_0x3932ea[_0x5e06('0x6')]||'';this[_0x5e06('0x7')]=_0x3932ea[_0x5e06('0x7')]||'';this['Configurations']=_0x3932ea['Configurations']||{};}module['exports']=ZohoAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbde5=['callbackuniqueid','callbackat','recallme','ContactId','ListId','UserId','VoiceQueueId','originatecalleridnum','originatecalleridname','getCaller','number','exports','util','lodash','moment','isNil','string','idContact','queue','name','type','campaigntype','dialAnswer','membername','Agent','format','SIP/%s','calleridname','Contact','phone','firstName','lastName','active','scheduledat','countbusyretry','countcongestionretry','countnoanswerretry','countglobal','countdropretry','countabandonedretry','countmachineretry','countagentrejectretry','countnosuchnumberretry','callback'];(function(_0xb04459,_0x364907){var _0x12f747=function(_0x259af7){while(--_0x259af7){_0xb04459['push'](_0xb04459['shift']());}};_0x12f747(++_0x364907);}(_0xbde5,0xe8));var _0x5bde=function(_0x4b7075,_0x2c1e24){_0x4b7075=_0x4b7075-0x0;var _0x265921=_0xbde5[_0x4b7075];return _0x265921;};'use strict';var util=require(_0x5bde('0x0'));var _=require(_0x5bde('0x1'));var moment=require(_0x5bde('0x2'));function checkNameSurname(_0x2be5ab,_0x3c9f11,_0x54822b){var _0x3e7a02='';if(!_[_0x5bde('0x3')](_0x3c9f11)&&_0x5bde('0x4')===typeof _0x3c9f11){_0x3e7a02+=_0x3c9f11;}if(!_[_0x5bde('0x3')](_0x54822b)&&_0x5bde('0x4')===typeof _0x54822b){_0x3e7a02+='\x20'+_0x54822b;}if(_0x3e7a02!==''){return _0x3e7a02;}return _0x2be5ab;}function Action(_0x20ff8d,_0x2db744,_0x4458d0,_0x5dc5a4,_0x2051e){this['uniqueid']=_0x4458d0||undefined;this[_0x5bde('0x5')]=_0x20ff8d['id'];this[_0x5bde('0x6')]=_0x2db744[_0x5bde('0x7')];this[_0x5bde('0x8')]=_0x2db744[_0x5bde('0x8')];this[_0x5bde('0x9')]=_0x5bde('0x6');this[_0x5bde('0xa')]=![];this[_0x5bde('0xb')]=_[_0x5bde('0x3')](_0x20ff8d[_0x5bde('0xc')])?undefined:_0x20ff8d['Agent'][_0x5bde('0x7')];this['channelAgent']=this[_0x5bde('0xb')]?util[_0x5bde('0xd')](_0x5bde('0xe'),this[_0x5bde('0xb')]):_0x5dc5a4||undefined;this[_0x5bde('0xf')]=checkNameSurname(_0x20ff8d[_0x5bde('0x10')][_0x5bde('0x11')],_0x20ff8d[_0x5bde('0x10')][_0x5bde('0x12')],_0x20ff8d['Contact'][_0x5bde('0x13')]);this[_0x5bde('0x14')]=_0x20ff8d[_0x5bde('0x14')]||![];this['calleridnum']=_0x20ff8d['Contact']['phone'];this['scheduledat']=_0x20ff8d[_0x5bde('0x15')];this['countbusyretry']=_0x20ff8d[_0x5bde('0x16')]||0x0;this[_0x5bde('0x17')]=_0x20ff8d[_0x5bde('0x17')]||0x0;this['countnoanswerretry']=_0x20ff8d[_0x5bde('0x18')]||0x0;this[_0x5bde('0x19')]=(_0x20ff8d[_0x5bde('0x16')]||0x0)+(_0x20ff8d[_0x5bde('0x17')]||0x0)+(_0x20ff8d[_0x5bde('0x18')]||0x0)+(_0x20ff8d['countnosuchnumberretry']||0x0)+(_0x20ff8d[_0x5bde('0x1a')]||0x0)+(_0x20ff8d[_0x5bde('0x1b')]||0x0)+(_0x20ff8d[_0x5bde('0x1c')]||0x0)+(_0x20ff8d[_0x5bde('0x1d')]||0x0);this[_0x5bde('0x1e')]=_0x20ff8d[_0x5bde('0x1e')]||0x0;this[_0x5bde('0x1a')]=_0x20ff8d[_0x5bde('0x1a')]||0x0;this['countabandonedretry']=_0x20ff8d[_0x5bde('0x1b')]||0x0;this['countmachineretry']=_0x20ff8d[_0x5bde('0x1c')]||0x0;this['countagentrejectretry']=_0x20ff8d[_0x5bde('0x1d')]||0x0;this[_0x5bde('0x1f')]=_0x20ff8d[_0x5bde('0x1f')];this[_0x5bde('0x20')]=_0x20ff8d[_0x5bde('0x20')];this[_0x5bde('0x21')]=_0x20ff8d[_0x5bde('0x21')];this[_0x5bde('0x22')]=_0x20ff8d[_0x5bde('0x22')];this[_0x5bde('0x23')]=_0x20ff8d[_0x5bde('0x23')];this['ListId']=_0x20ff8d[_0x5bde('0x24')];this[_0x5bde('0x25')]=_[_0x5bde('0x3')](_0x20ff8d[_0x5bde('0xc')])?_0x20ff8d['UserId']:_0x20ff8d[_0x5bde('0xc')]['id'];this['VoiceQueueId']=_0x20ff8d[_0x5bde('0x26')];this[_0x5bde('0x27')]='';this[_0x5bde('0x28')]='';}Action['prototype'][_0x5bde('0x29')]=function(){return util[_0x5bde('0xd')]('\x22%s\x22\x20<%s>',this['calleridname'],this[_0x5bde('0x2a')]);};module[_0x5bde('0x2b')]=Action;
\ No newline at end of file
+var _0x29c2=['callbackat','ContactId','ListId','UserId','VoiceQueueId','getCaller','lodash','moment','isNil','string','queue','name','type','dialAnswer','membername','Agent','channelAgent','format','calleridname','Contact','firstName','lastName','active','scheduledat','countbusyretry','countcongestionretry','countnoanswerretry','countnosuchnumberretry','countdropretry','countmachineretry','countabandonedretry','countagentrejectretry','callback'];(function(_0x19950b,_0x53d0d7){var _0x3c6b41=function(_0x3924ad){while(--_0x3924ad){_0x19950b['push'](_0x19950b['shift']());}};_0x3c6b41(++_0x53d0d7);}(_0x29c2,0x12f));var _0x229c=function(_0xfae23b,_0x2be4ba){_0xfae23b=_0xfae23b-0x0;var _0x200640=_0x29c2[_0xfae23b];return _0x200640;};'use strict';var util=require('util');var _=require(_0x229c('0x0'));var moment=require(_0x229c('0x1'));function checkNameSurname(_0x2e4ee6,_0x360d53,_0x20bff4){var _0x575e24='';if(!_[_0x229c('0x2')](_0x360d53)&&_0x229c('0x3')===typeof _0x360d53){_0x575e24+=_0x360d53;}if(!_[_0x229c('0x2')](_0x20bff4)&&_0x229c('0x3')===typeof _0x20bff4){_0x575e24+='\x20'+_0x20bff4;}if(_0x575e24!==''){return _0x575e24;}return _0x2e4ee6;}function Action(_0x25bac7,_0x1ec40c,_0x2a11f4,_0x1581f4,_0x471c9e){this['uniqueid']=_0x2a11f4||undefined;this['idContact']=_0x25bac7['id'];this[_0x229c('0x4')]=_0x1ec40c[_0x229c('0x5')];this[_0x229c('0x6')]=_0x1ec40c[_0x229c('0x6')];this['campaigntype']=_0x229c('0x4');this[_0x229c('0x7')]=![];this[_0x229c('0x8')]=_[_0x229c('0x2')](_0x25bac7[_0x229c('0x9')])?undefined:_0x25bac7[_0x229c('0x9')][_0x229c('0x5')];this[_0x229c('0xa')]=this['membername']?util[_0x229c('0xb')]('SIP/%s',this[_0x229c('0x8')]):_0x1581f4||undefined;this[_0x229c('0xc')]=checkNameSurname(_0x25bac7[_0x229c('0xd')]['phone'],_0x25bac7[_0x229c('0xd')][_0x229c('0xe')],_0x25bac7[_0x229c('0xd')][_0x229c('0xf')]);this[_0x229c('0x10')]=_0x25bac7['active']||![];this['calleridnum']=_0x25bac7['Contact']['phone'];this[_0x229c('0x11')]=_0x25bac7[_0x229c('0x11')];this[_0x229c('0x12')]=_0x25bac7[_0x229c('0x12')]||0x0;this[_0x229c('0x13')]=_0x25bac7[_0x229c('0x13')]||0x0;this['countnoanswerretry']=_0x25bac7[_0x229c('0x14')]||0x0;this['countglobal']=(_0x25bac7[_0x229c('0x12')]||0x0)+(_0x25bac7[_0x229c('0x13')]||0x0)+(_0x25bac7[_0x229c('0x14')]||0x0)+(_0x25bac7[_0x229c('0x15')]||0x0)+(_0x25bac7[_0x229c('0x16')]||0x0)+(_0x25bac7['countabandonedretry']||0x0)+(_0x25bac7[_0x229c('0x17')]||0x0)+(_0x25bac7['countagentrejectretry']||0x0);this[_0x229c('0x15')]=_0x25bac7[_0x229c('0x15')]||0x0;this[_0x229c('0x16')]=_0x25bac7[_0x229c('0x16')]||0x0;this[_0x229c('0x18')]=_0x25bac7['countabandonedretry']||0x0;this[_0x229c('0x17')]=_0x25bac7[_0x229c('0x17')]||0x0;this['countagentrejectretry']=_0x25bac7[_0x229c('0x19')]||0x0;this[_0x229c('0x1a')]=_0x25bac7[_0x229c('0x1a')];this['callbackuniqueid']=_0x25bac7['callbackuniqueid'];this[_0x229c('0x1b')]=_0x25bac7[_0x229c('0x1b')];this['recallme']=_0x25bac7['recallme'];this['ContactId']=_0x25bac7[_0x229c('0x1c')];this['ListId']=_0x25bac7[_0x229c('0x1d')];this[_0x229c('0x1e')]=_['isNil'](_0x25bac7[_0x229c('0x9')])?_0x25bac7[_0x229c('0x1e')]:_0x25bac7[_0x229c('0x9')]['id'];this[_0x229c('0x1f')]=_0x25bac7[_0x229c('0x1f')];this['originatecalleridnum']='';this['originatecalleridname']='';}Action['prototype'][_0x229c('0x20')]=function(){return util[_0x229c('0xb')]('\x22%s\x22\x20<%s>',this[_0x229c('0xc')],this['number']);};module['exports']=Action;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfdac=['OriginateError','actionid','logLookAgent','isFailure','rejected','[callProgressDetectingAgent][logAnswer]','[syncHangup][talking]','cause','callProgressDetectingCustomer','[syncHangup][talking][cause]','statedesc','reason','[syncHangup][talking][transfer]','destuniqueid','syncHangupRequest','addVariable','filterKey','variable','value','[syncVarSet][Preview]','inspect','transfertargetlinkedid','transfererlinkedid','exports','util','bluebird','moment','md5','ioredis','../../../config/environment','../../../config/logger','preview','actionPreview','./rpcDb','./util/util','redis','defaults','socket.io-emitter','prototype','enqueue','tail','sequence','voiceQueues','trunks','actions','agents','originateresponse','syncOriginateResponse','bind','hangup','syncHangup','dialend','syncDialEnd','newexten','syncNewExten','varset','syncVarSet','syncAttendedTransfer','blindtransfer','syncBlindTransfer','loopCampaigns','campaignsPreview','emit','name','strategy','answered','available','sumBillable','total','type','abandoned','waiting','loggedInDb','dialActive','dialMethod','dialOriginateCallerIdName','dialOriginateCallerIdNumber','dialOriginateTimeout','dialPrefix','outboundAnswerAgiCallsDay','outboundBlacklistCallsDay','outboundCongestionCallsDay','outboundDropCallsDayACS','outboundDropCallsDayTimeout','outboundNoAnswerCallsDay','outboundNoSuchCallsDay','outboundReCallsDay','outboundUnknownCallsDay','outboundAbandonedCallsDay','predictiveIntervalAnsweredCalls','predictiveIntervalAvgHoldtime','predictiveIntervalDroppedCallsTimeout','predictiveIntervalErlangCallsDroppedCalls','predictiveIntervalHitRate','predictiveIntervalMultiplicativeFactor','predictiveIntervalPauses','predictiveIntervalAvailable','message','erlangCallToSecond','erlangAbandonmentRate','erlangBusyFactor','startPredictive','startProgressive','Trunk','callerid','Interval','stringify','voice:queue:%s','voice_queue:save','info','[DEBUG]\x20Emit\x20voice_queue_channel:remove\x20event','format','voice_queue_channel:remove','sendMessageOneNotActive','originated','pTalking','NOT_ACTIVE','logger','[CampaignPreview]\x20Campaign\x20Queue:\x20','IS_DISACTIVED','syncCampaigns','clockClearZombieChannels','hasOwnProperty','booked','outbound','setMessage','recallMe','clearZombieChannel','isNil','Queue','queue','pTalking:\x20','dialAnswer','pick','contactId','UserId','VoiceQueueId','ListId','Action','status','channel','catch','No\x20such\x20channel','updateOriginated','[clearZombieChannel]','decrementTalkink','loggerError','[Dialer][checkChannel][pTalking][Preview]','[Dialer][checkChannel][Preview]','clearZombieChannels','[action]','size','getContactRecallMe','then','length','getDiff','scheduledat','dialRecallMeTimeout','Agent','voicePause','run','[RecallMe]','logger2','disableContact','starttime','RecallInQueue','rescheduleContactInQueue','createBody','createCustomerHistory','RecallFailedTimeout','[HistoryRecallClose]','[getContactRecallMe]','IsNotLoggedIn','loggedIn','isActive','isTrunkReachable','TrunkBackup','TRUNK_IS_NOT_REACHABLE','ACTIVE','countglobal','logCustomer','NoSuchNumber','custom:agentnosuchnumber','buildObj','totalGlobal','dialGlobalMaxRetry','cloneAction','createCustomerFinal','[callProgressDetectingCustomer][logNoSuchGlobal]','countnosuchnumberretry','dialNoSuchNumberMaxRetry','rescheduleContact','scheduledAt','unlockAgent','activeContact','ANSWER','YYYY-MM-DD\x20HH:mm:ss','uniqueid','\x20Queue','connect','custom:agentConnectPreview','buildAcw','custom:agentcomplete','complete','outboundAnswerCallsDay','[16]','Answer','[callProgressDetectingCustomer][logAnswer]','[callProgressDetectingCustomer][logAnswerGlobal]','sumDuration','talktime','[syncHangup][talking][decrement]','BUSY','outboundBusyCallsDay','countbusyretry','busy','[callProgressDetectingCustomer][logBusy]','Global','[callProgressDetectingCustomer][logBusyGlobal]','countnoanswerretry','NoAnswer','custom:agentnoanswer','noanswer','[callProgressDetectingCustomer][logNoAnswer]','countcongestionretry','congestion','[callProgressDetectingCustomer][logCongestion]','[callProgressDetectingCustomer][logCongestionGlobal]','dialBusyRetryFrequency','CANCEL','AgentReject','custom:agentreject','agentreject','[syncHangupRequest][logAgentReject]','countagentrejectretry','dialAgentRejectMaxRetry','[callProgressDetectingCustomer][logAgentReject]','ABANDONED','countabandonedretry','Abandoned','[callProgressDetectingCustomer][logAbandoned]','countabandonedetry','dialAbandonedMaxRety','dialAbandonedRetryFrequency','countmachineretry','cause-txt','dialstatus','custom:amd','[callProgressDetectingCustomer][hangupInAMD]','linkedid','amd','[callProgressDetectingCustomer][machine]','[default]','[Dialer][decrementTalkink][no\x20Hangup][Preview]','[callProgressDetectingCustomer][logUnknown]','[callProgressDetectingCustomer][logUnknownGlobal]','[callProgressDetectingCustomer]','[originated][decrement][callProgressDetectingCustomer]','originated:\x20','destlinkedid','callProgressDetectingAgent','isUndefined','createAgentHistory','logAgent','Busy','[callProgressDetectingAgent][logBusy]','[callProgressDetectingAgent][logCongestion]','[callProgressDetectingAgent][logAnswerAGI]','[callProgressDetectingAgent]','[originated][decrement][callProgressDetectingAgent]','checkInBlack','Contact','phone','lookAgent','isEmpty','execCall','[Preview][execCall][success]','Queue:\x20','idContact','called','Calling','[Preview][execCall][failure]','Call\x20failed','logBlacklist','createHistory','[Blacklist][error]','active','SIP/%s','reachable','unmonitored','execRun','unlock','unlockContact','getContactPreview','recallme','validateContact','[Preview][checkIsBlackList]','Call\x20unsuccessful','[Preview][getContactPreview]','[Preview][validateContact][Empty\x20Contact]','Empty\x20Contact','Empty\x20Campaign','[Preview][validateContact][Trunk\x20not\x20work]','campaign\x20Name:\x20','\x20Trunk\x20is\x20not\x20active','Trunk\x20not\x20work','[Preview][validateContact][Campaign\x20Active]','\x20Not\x20Active','Is\x20Valid','SIP/%s/%s%s','trim','dialCutDigit','substring','dialRandomLastDigitCallerIdNumber','getCallerIdRandom','originatecalleridname','extractCalleridName','originatecalleridnum','addVariables','merge','toLowerVariables','variablesAction','channelAgent','destconnectedlinenum','user:%s','user:agentconnect','accountcode','calleridnum'];(function(_0x507b78,_0x5c2d9a){var _0xba1085=function(_0x5f5042){while(--_0x5f5042){_0x507b78['push'](_0x507b78['shift']());}};_0xba1085(++_0x5c2d9a);}(_0xfdac,0x160));var _0xcfda=function(_0x2a59db,_0x4cc142){_0x2a59db=_0x2a59db-0x0;var _0x37992d=_0xfdac[_0x2a59db];return _0x37992d;};'use strict';var util=require(_0xcfda('0x0'));var _=require('lodash');var BPromise=require(_0xcfda('0x1'));var uuid=require('uuid');var moment=require(_0xcfda('0x2'));var md5=require(_0xcfda('0x3'));var Redis=require(_0xcfda('0x4'));var config=require(_0xcfda('0x5'));var logger=require(_0xcfda('0x6'))(_0xcfda('0x7'));var loggerAction=require('../../../config/logger')(_0xcfda('0x8'));var ami=require('../ami');var rpcDb=require(_0xcfda('0x9'));var Action=require('./action');var ut=require(_0xcfda('0xa'));config[_0xcfda('0xb')]=_[_0xcfda('0xc')](config['redis'],{'host':'localhost','port':0x18eb});var io=require(_0xcfda('0xd'))(new Redis(config[_0xcfda('0xb')]));var Sequence=function(){};Sequence[_0xcfda('0xe')][_0xcfda('0xf')]=function(_0x5766b6){this[_0xcfda('0x10')]=this['tail']?this['tail']['finally'](_0x5766b6):_0x5766b6();};function Preview(_0x34744b){this[_0xcfda('0x11')]=new Sequence();this['campaignsPreview']=_0x34744b[_0xcfda('0x12')];this['trunks']=_0x34744b[_0xcfda('0x13')];this[_0xcfda('0x14')]={};this[_0xcfda('0x15')]=_0x34744b[_0xcfda('0x15')];this['clockClearZombieChannels']=0x0;ami['on'](_0xcfda('0x16'),this[_0xcfda('0x17')][_0xcfda('0x18')](this));ami['on'](_0xcfda('0x19'),this[_0xcfda('0x1a')][_0xcfda('0x18')](this));ami['on']('hanguprequest',this['syncHangupRequest'][_0xcfda('0x18')](this));ami['on'](_0xcfda('0x1b'),this[_0xcfda('0x1c')][_0xcfda('0x18')](this));ami['on'](_0xcfda('0x1d'),this[_0xcfda('0x1e')][_0xcfda('0x18')](this));ami['on'](_0xcfda('0x1f'),this[_0xcfda('0x20')][_0xcfda('0x18')](this));ami['on']('attendedtransfer',this[_0xcfda('0x21')][_0xcfda('0x18')](this));ami['on'](_0xcfda('0x22'),this[_0xcfda('0x23')][_0xcfda('0x18')](this));this[_0xcfda('0x24')](this[_0xcfda('0x25')]);}function emit(_0x5f3cf7,_0x10335b,_0x34dea6){io['to'](_0x5f3cf7)[_0xcfda('0x26')](_0x10335b,_0x34dea6);}function emitCampaignPreview(_0x1ca358){if(_0x1ca358['type']==='outbound'){var _0x20c628={'id':_0x1ca358['id'],'name':_0x1ca358[_0xcfda('0x27')],'strategy':_0x1ca358[_0xcfda('0x28')],'answered':_0x1ca358[_0xcfda('0x29')],'available':_0x1ca358[_0xcfda('0x2a')],'loggedIn':_0x1ca358['loggedIn'],'pTalking':_0x1ca358['pTalking'],'sumBillable':_0x1ca358[_0xcfda('0x2b')],'sumDuration':_0x1ca358['sumDuration'],'sumHoldTime':_0x1ca358['sumHoldTime']||0x0,'talking':_0x1ca358['talking'],'total':_0x1ca358[_0xcfda('0x2c')],'type':_0x1ca358[_0xcfda('0x2d')],'unmanaged':_0x1ca358['unmanaged'],'abandoned':_0x1ca358[_0xcfda('0x2e')],'waiting':_0x1ca358[_0xcfda('0x2f')],'loggedInDb':_0x1ca358[_0xcfda('0x30')],'dialActive':_0x1ca358[_0xcfda('0x31')],'dialMethod':_0x1ca358[_0xcfda('0x32')],'dialOriginateCallerIdName':_0x1ca358[_0xcfda('0x33')],'dialOriginateCallerIdNumber':_0x1ca358[_0xcfda('0x34')],'dialOriginateTimeout':_0x1ca358[_0xcfda('0x35')],'dialPrefix':_0x1ca358[_0xcfda('0x36')],'outboundAnswerAgiCallsDay':_0x1ca358[_0xcfda('0x37')],'outboundAnswerCallsDay':_0x1ca358['outboundAnswerCallsDay'],'outboundBlacklistCallsDay':_0x1ca358[_0xcfda('0x38')],'outboundBusyCallsDay':_0x1ca358['outboundBusyCallsDay'],'outboundCongestionCallsDay':_0x1ca358[_0xcfda('0x39')],'outboundDropCallsDayACS':_0x1ca358[_0xcfda('0x3a')],'outboundDropCallsDayCallersExit':_0x1ca358['outboundDropCallsDayCallersExit'],'outboundDropCallsDayTimeout':_0x1ca358[_0xcfda('0x3b')],'outboundNoAnswerCallsDay':_0x1ca358[_0xcfda('0x3c')],'outboundNoSuchCallsDay':_0x1ca358[_0xcfda('0x3d')],'outboundOriginateFailureCallsDay':_0x1ca358['outboundOriginateFailureCallsDay'],'outboundReCallsDay':_0x1ca358[_0xcfda('0x3e')],'outboundRejectCallsDay':_0x1ca358['outboundRejectCallsDay'],'outboundUnknownCallsDay':_0x1ca358[_0xcfda('0x3f')],'outboundAbandonedCallsDay':_0x1ca358[_0xcfda('0x40')],'predictiveIntervalAnsweredCalls':_0x1ca358[_0xcfda('0x41')],'predictiveIntervalAvgHoldtime':_0x1ca358[_0xcfda('0x42')],'predictiveIntervalAvgTalktime':_0x1ca358['predictiveIntervalAvgTalktime'],'predictiveIntervalDroppedCallsCallersExit':_0x1ca358['predictiveIntervalDroppedCallsCallersExit'],'predictiveIntervalDroppedCallsTimeout':_0x1ca358[_0xcfda('0x43')],'predictiveIntervalErlangCalls':_0x1ca358['predictiveIntervalErlangCalls'],'predictiveIntervalErlangCallsDroppedCalls':_0x1ca358[_0xcfda('0x44')],'predictiveIntervalHitRate':_0x1ca358[_0xcfda('0x45')],'predictiveIntervalMultiplicativeFactor':_0x1ca358[_0xcfda('0x46')],'predictiveIntervalPauses':_0x1ca358[_0xcfda('0x47')],'predictiveIntervalAvailable':_0x1ca358[_0xcfda('0x48')],'predictiveIntervalTotalCalls':_0x1ca358['predictiveIntervalTotalCalls'],'message':_0x1ca358[_0xcfda('0x49')],'originated':_0x1ca358['originated'],'erlangCalls':_0x1ca358['erlangCalls'],'erlangCallToSecond':_0x1ca358[_0xcfda('0x4a')],'erlangAbandonmentRate':_0x1ca358[_0xcfda('0x4b')],'erlangBusyFactor':_0x1ca358[_0xcfda('0x4c')],'startPredictive':_0x1ca358[_0xcfda('0x4d')],'startProgressive':_0x1ca358[_0xcfda('0x4e')]};if(_0x1ca358[_0xcfda('0x4f')]){_0x20c628[_0xcfda('0x4f')]={'id':_0x1ca358[_0xcfda('0x4f')]['id'],'name':_0x1ca358[_0xcfda('0x4f')][_0xcfda('0x27')],'active':_0x1ca358['Trunk']['active'],'callerid':_0x1ca358[_0xcfda('0x4f')][_0xcfda('0x50')]};}if(_0x1ca358[_0xcfda('0x51')]){_0x20c628[_0xcfda('0x51')]={'id':_0x1ca358[_0xcfda('0x51')]['id'],'name':_0x1ca358['Interval']['name']};}var _0x5dde1f=md5(JSON[_0xcfda('0x52')](_0x20c628));if(_0x1ca358['md5']!==_0x5dde1f){_0x1ca358[_0xcfda('0x3')]=_0x5dde1f;emit(util['format'](_0xcfda('0x53'),_0x20c628[_0xcfda('0x27')]),_0xcfda('0x54'),_0x20c628);}}}function emitVoiceQueueChannelRemove(_0x53d9f4){logger[_0xcfda('0x55')](_0xcfda('0x56'),JSON[_0xcfda('0x52')](_0x53d9f4));emit(util[_0xcfda('0x57')](_0xcfda('0x53'),_0x53d9f4[_0xcfda('0x27')]),_0xcfda('0x58'),_0x53d9f4);io[_0xcfda('0x26')]('voice_queue_presence:remove',_0x53d9f4);}function notSendMessagesQueue(_0x1ec485){if(_0x1ec485[_0xcfda('0x59')]){if(_0x1ec485[_0xcfda('0x5a')]===0x0&&_0x1ec485[_0xcfda('0x5b')]===0x0){_0x1ec485[_0xcfda('0x59')]=![];_0x1ec485[_0xcfda('0x2a')]=0x0;_0x1ec485['paused']=0x0;_0x1ec485['message']=_0xcfda('0x5c');ut[_0xcfda('0x5d')](_0xcfda('0x5e'),_0x1ec485['name']+'\x20is\x20not\x20active');}else{_0x1ec485[_0xcfda('0x49')]=_0xcfda('0x5f');ut[_0xcfda('0x5d')](_0xcfda('0x5e'),_0x1ec485[_0xcfda('0x27')]+'\x20is\x20disactive');}emitCampaignPreview(_0x1ec485);}}Preview['prototype'][_0xcfda('0x24')]=function(){var _0x572ddd=this;setInterval(function(){_0x572ddd[_0xcfda('0x60')]();},0x7cf);};Preview['prototype'][_0xcfda('0x60')]=function(){var _0x159920=this[_0xcfda('0x25')];this[_0xcfda('0x61')]+=0x1;for(var _0x4da148 in _0x159920){if(_0x159920[_0xcfda('0x62')](_0x4da148)&&(_0x159920[_0x4da148][_0xcfda('0x32')]===_0xcfda('0x7')||_0x159920[_0x4da148][_0xcfda('0x32')]===_0xcfda('0x63'))&&_0x159920[_0x4da148][_0xcfda('0x2d')]===_0xcfda('0x64')){if(this[_0xcfda('0x61')]>0x7){this['clockClearZombieChannels']=0x0;this['clearZombieChannels']();}}if(_0x159920[_0xcfda('0x62')](_0x4da148)&&_0x159920[_0x4da148][_0xcfda('0x32')]===_0xcfda('0x7')&&_0x159920[_0x4da148][_0xcfda('0x2d')]===_0xcfda('0x64')){if(_0x159920[_0x4da148][_0xcfda('0x31')]){this[_0xcfda('0x65')](_0x159920[_0x4da148]);this[_0xcfda('0x66')](_0x159920[_0x4da148]);}else{notSendMessagesQueue(_0x159920[_0x4da148]);}}}};Preview[_0xcfda('0xe')][_0xcfda('0x67')]=function(_0x2fd19a){var _0x53d428=this;this['sequence']['enqueue'](function(){if(!_[_0xcfda('0x68')](_0x53d428['actions'][_0x2fd19a])){loggerAction[_0xcfda('0x55')]('[clearZombieChannels][talking]',_0x2fd19a,_0xcfda('0x69'),_0x53d428[_0xcfda('0x14')][_0x2fd19a][_0xcfda('0x6a')],'originated:\x20',JSON[_0xcfda('0x52')](_0x53d428[_0xcfda('0x25')][_0x53d428['actions'][_0x2fd19a]['queue']][_0xcfda('0x5a')]),_0xcfda('0x6b'),JSON[_0xcfda('0x52')](_0x53d428['campaignsPreview'][_0x53d428[_0xcfda('0x14')][_0x2fd19a][_0xcfda('0x6a')]][_0xcfda('0x5b')]),JSON[_0xcfda('0x52')](_0x53d428[_0xcfda('0x14')][_0x2fd19a][_0xcfda('0x6c')]),JSON[_0xcfda('0x52')](_[_0xcfda('0x6d')](_0x53d428[_0xcfda('0x14')][_0x2fd19a],[_0xcfda('0x6e'),_0xcfda('0x6f'),_0xcfda('0x70'),_0xcfda('0x71')])));return ami[_0xcfda('0x72')]({'action':_0xcfda('0x73'),'channel':_0x53d428[_0xcfda('0x14')][_0x2fd19a][_0xcfda('0x74')]})[_0xcfda('0x75')](function(_0x77d359){if(_0x77d359['message']===_0xcfda('0x76')){setTimeout(function(){if(_0x53d428[_0xcfda('0x14')][_0x2fd19a]){ut[_0xcfda('0x77')](_0x53d428[_0xcfda('0x25')][_0x53d428[_0xcfda('0x14')][_0x2fd19a]['queue']],_0xcfda('0x78'));if(_0x53d428[_0xcfda('0x14')][_0x2fd19a][_0xcfda('0x6c')]===!![]){ut[_0xcfda('0x79')](_0x53d428[_0xcfda('0x25')][_0x53d428[_0xcfda('0x14')][_0x2fd19a][_0xcfda('0x6a')]],_0xcfda('0x78'));ut[_0xcfda('0x7a')](_0xcfda('0x7b')+_0x2fd19a,_0x53d428[_0xcfda('0x14')][_0x2fd19a][_0xcfda('0x6a')]);}ut[_0xcfda('0x7a')](_0xcfda('0x7c')+_0x2fd19a,_0x53d428[_0xcfda('0x14')][_0x2fd19a]['queue']);delete _0x53d428['actions'][_0x2fd19a];}},0x2328);}});}});};Preview[_0xcfda('0xe')][_0xcfda('0x7d')]=function(){var _0x1260a1=this;loggerAction[_0xcfda('0x55')](_0xcfda('0x7e'),_[_0xcfda('0x7f')](this[_0xcfda('0x14')]));for(var _0x27d5cb in this[_0xcfda('0x14')]){if(_0x1260a1[_0xcfda('0x14')][_0xcfda('0x62')](_0x27d5cb)){_0x1260a1[_0xcfda('0x67')](_0x27d5cb);}}};Preview[_0xcfda('0xe')][_0xcfda('0x66')]=function(_0x4fe1a3){var _0xd93017=this;rpcDb[_0xcfda('0x80')](_0x4fe1a3['id'],ut['agentReadyId'](this[_0xcfda('0x15')]))[_0xcfda('0x81')](function(_0x8d978f){if(!_[_0xcfda('0x68')](_0x8d978f)){for(var _0x4ac401=0x0;_0x4ac401<_0x8d978f[_0xcfda('0x82')];_0x4ac401+=0x1){if(ut[_0xcfda('0x83')](_0x8d978f[_0x4ac401][_0xcfda('0x84')])<_0x4fe1a3[_0xcfda('0x85')]*0x3c){if(_0x8d978f[_0x4ac401][_0xcfda('0x86')]&&!_0x8d978f[_0x4ac401][_0xcfda('0x86')][_0xcfda('0x87')]){_0xd93017[_0xcfda('0x88')](_0x8d978f[_0x4ac401]['id'])[_0xcfda('0x81')](ut['logger2'](_0xcfda('0x89')))[_0xcfda('0x75')](ut[_0xcfda('0x8a')](_0xcfda('0x89')));}else{rpcDb[_0xcfda('0x8b')](_0x8d978f[_0x4ac401]['id']);}}else{var _0x3ecf71=new Action(_0x8d978f[_0x4ac401],_0x4fe1a3);_0x3ecf71[_0xcfda('0x8c')]=moment()[_0xcfda('0x57')]('YYYY-MM-DD\x20HH:mm:ss');_0x4fe1a3['outboundReCallsDay']+=0x1;ut['logCustomer'](_0x3ecf71,0x17,_0xcfda('0x8d'));if(_0x4fe1a3['dialRecallInQueue']){rpcDb[_0xcfda('0x8e')](ut[_0xcfda('0x8f')](_0x8d978f[_0x4ac401]));rpcDb[_0xcfda('0x90')](_0x3ecf71,'[HistoryDialRecallInQueue][historyCatch]');}else{ut['logCustomer'](_0x3ecf71,0x16,_0xcfda('0x91'));rpcDb['createCustomerHistory'](_0x3ecf71,_0xcfda('0x92'));rpcDb['createCustomerFinal'](_0x3ecf71,_0xcfda('0x92'));}}}}})[_0xcfda('0x75')](ut['logger2'](_0xcfda('0x93')));};Preview['prototype'][_0xcfda('0x65')]=function(_0x3c1dc5){_0x3c1dc5[_0xcfda('0x59')]=!![];if(ut[_0xcfda('0x94')](_0x3c1dc5[_0xcfda('0x95')])){_0x3c1dc5['message']='AGENTS_NOT_LOGGED';}else if(!ut[_0xcfda('0x96')](_0x3c1dc5[_0xcfda('0x31')])){_0x3c1dc5['message']='NOT_ACTIVE';}else if(!this[_0xcfda('0x97')](_0x3c1dc5['Trunk'])){if(!this[_0xcfda('0x97')](_0x3c1dc5[_0xcfda('0x98')])){_0x3c1dc5[_0xcfda('0x49')]=_0xcfda('0x99');}else{_0x3c1dc5[_0xcfda('0x49')]=_0xcfda('0x9a');}}else{_0x3c1dc5['message']=_0xcfda('0x9a');}emitCampaignPreview(_0x3c1dc5);};Preview[_0xcfda('0xe')]['callProgressDetectingCustomer']=function(_0x56ae67,_0x3a61a4,_0xe93cde){var _0x246f9d=this;var _0x51db8b=this[_0xcfda('0x14')][_0x3a61a4];var _0x3b9a97=this['campaignsPreview'][_0x51db8b[_0xcfda('0x6a')]];var _0x21f09f;if(_0x3b9a97){switch(_0xe93cde){case'1':_0x3b9a97[_0xcfda('0x3d')]+=0x1;_0x51db8b['countnosuchnumberretry']+=0x1;_0x51db8b[_0xcfda('0x9b')]=ut['totalGlobal'](_0x51db8b);ut[_0xcfda('0x9c')](_0x51db8b,0x0,_0xcfda('0x9d'));ami[_0xcfda('0x26')](_0xcfda('0x9e'),ut[_0xcfda('0x9f')](_0x51db8b,'nosuchnumber'));rpcDb[_0xcfda('0x90')](_0x51db8b,'[callProgressDetectingCustomer][logNoSuch]');if(ut[_0xcfda('0xa0')](_0x51db8b)>=_0x3b9a97[_0xcfda('0xa1')]){_0x21f09f=ut[_0xcfda('0xa2')](_0x51db8b,0xf,'Global');rpcDb[_0xcfda('0xa3')](_0x21f09f,_0xcfda('0xa4'));}else{if(_0x51db8b[_0xcfda('0xa5')]>=_0x3b9a97[_0xcfda('0xa6')]){rpcDb[_0xcfda('0xa3')](_0x51db8b,_0xcfda('0xa4'));}else{rpcDb[_0xcfda('0xa7')](ut[_0xcfda('0xa8')](_0x51db8b,_0xcfda('0xa5'),_0x3b9a97['dialNoSuchNumberRetryFrequency']),_0x51db8b[_0xcfda('0xa9')],_0x51db8b[_0xcfda('0xaa')]);}}delete this[_0xcfda('0x14')][_0x56ae67['linkedid']];break;case _0xcfda('0xab'):var _0x5e7f47=moment()['format'](_0xcfda('0xac'));_0x51db8b['responsetime']=_0x5e7f47;_0x51db8b['answertime']=_0x5e7f47;_0x51db8b['dialAnswer']=!![];_0x3b9a97['pTalking']+=0x1;logger[_0xcfda('0x55')]('[syncHangup][talking][increment]',_0x51db8b[_0xcfda('0xad')],_0xcfda('0xae'),_0x3b9a97['name'],_0xcfda('0x6b'),_0x3b9a97[_0xcfda('0x5b')]);ami[_0xcfda('0x26')]('custom:agentconnect',ut[_0xcfda('0x9f')](_0x51db8b,_0xcfda('0xaf'),this[_0xcfda('0x25')][_0x51db8b[_0xcfda('0x6a')]]));if(_0x3b9a97['acw']){ami[_0xcfda('0x26')](_0xcfda('0xb0'),ut[_0xcfda('0xb1')](_0x51db8b));}break;case'16':ami[_0xcfda('0x26')](_0xcfda('0xb2'),ut[_0xcfda('0x9f')](_0x51db8b,_0xcfda('0xb3'),this[_0xcfda('0x25')][_0x51db8b[_0xcfda('0x6a')]]));emitVoiceQueueChannelRemove(ut[_0xcfda('0x9f')](_0x51db8b,_0xcfda('0xb3')));_0x3b9a97[_0xcfda('0xb4')]+=0x1;_0x3b9a97[_0xcfda('0x2c')]+=0x1;_0x3b9a97['answered']+=0x1;ut[_0xcfda('0x79')](_0x3b9a97,_0xcfda('0xb5'));_0x51db8b['countglobal']=ut[_0xcfda('0xa0')](_0x51db8b);ut[_0xcfda('0x9c')](_0x51db8b,0x4,_0xcfda('0xb6'));rpcDb[_0xcfda('0x90')](_0x51db8b,_0xcfda('0xb7'));rpcDb[_0xcfda('0xa3')](_0x51db8b,_0xcfda('0xb8'));rpcDb['crateCustomerReportQueue'](_0x51db8b);_0x3b9a97[_0xcfda('0xb9')]+=_0x51db8b[_0xcfda('0xba')];_0x3b9a97[_0xcfda('0x2b')]+=_0x51db8b['talktime'];logger[_0xcfda('0x55')](_0xcfda('0xbb'),_0x51db8b[_0xcfda('0xad')],'\x20Queue',_0x3b9a97['name'],_0xcfda('0x6b'),_0x3b9a97['pTalking']);delete this['actions'][_0x56ae67['linkedid']];break;case _0xcfda('0xbc'):_0x3b9a97[_0xcfda('0xbd')]+=0x1;_0x51db8b[_0xcfda('0xbe')]+=0x1;_0x51db8b['countglobal']=ut['totalGlobal'](_0x51db8b);ut[_0xcfda('0x9c')](_0x51db8b,0x5,'Busy');ami[_0xcfda('0x26')]('custom:agentbusy',ut['buildObj'](_0x51db8b,_0xcfda('0xbf')));rpcDb['createCustomerHistory'](_0x51db8b,_0xcfda('0xc0'));if(ut[_0xcfda('0xa0')](_0x51db8b)>=_0x3b9a97['dialGlobalMaxRetry']){_0x21f09f=ut[_0xcfda('0xa2')](_0x51db8b,0xf,_0xcfda('0xc1'));rpcDb[_0xcfda('0xa3')](_0x21f09f,_0xcfda('0xc2'));}else{if(_0x51db8b[_0xcfda('0xbe')]>=_0x3b9a97['dialBusyMaxRetry']){rpcDb['createCustomerFinal'](_0x51db8b,_0xcfda('0xc0'));}else{rpcDb[_0xcfda('0xa7')](ut[_0xcfda('0xa8')](_0x51db8b,_0xcfda('0xbe'),_0x3b9a97['dialBusyRetryFrequency']),_0x51db8b[_0xcfda('0xa9')],_0x51db8b[_0xcfda('0xaa')]);}}break;case'NOANSWER':_0x3b9a97[_0xcfda('0x3c')]+=0x1;_0x51db8b[_0xcfda('0xc3')]+=0x1;_0x51db8b['countglobal']=ut['totalGlobal'](_0x51db8b);ut[_0xcfda('0x9c')](_0x51db8b,0x3,_0xcfda('0xc4'));ami[_0xcfda('0x26')](_0xcfda('0xc5'),ut[_0xcfda('0x9f')](_0x51db8b,_0xcfda('0xc6')));rpcDb[_0xcfda('0x90')](_0x51db8b,'[callProgressDetectingCustomer][logNoAnswer]');if(ut['totalGlobal'](_0x51db8b)>=_0x3b9a97['dialGlobalMaxRetry']){_0x21f09f=ut['cloneAction'](_0x51db8b,0xf,_0xcfda('0xc1'));rpcDb[_0xcfda('0xa3')](_0x21f09f,'[callProgressDetectingCustomer][logNoAnswerGlobal]');}else{if(_0x51db8b[_0xcfda('0xc3')]>=_0x3b9a97['dialNoAnswerMaxRetry']){rpcDb[_0xcfda('0xa3')](_0x51db8b,_0xcfda('0xc7'));}else{rpcDb[_0xcfda('0xa7')](ut['scheduledAt'](_0x51db8b,_0xcfda('0xc3'),_0x3b9a97['dialNoAnswerRetryFrequency']),_0x51db8b['unlockAgent'],_0x51db8b['activeContact']);}}break;case'CONGESTION':_0x3b9a97['outboundCongestionCallsDay']+=0x1;_0x51db8b[_0xcfda('0xc8')]+=0x1;_0x51db8b[_0xcfda('0x9b')]=ut[_0xcfda('0xa0')](_0x51db8b);ut[_0xcfda('0x9c')](_0x51db8b,0x8,'Congestion');ami[_0xcfda('0x26')]('custom:agentcongestion',ut['buildObj'](_0x51db8b,_0xcfda('0xc9')));rpcDb['createCustomerHistory'](_0x51db8b,_0xcfda('0xca'));if(ut['totalGlobal'](_0x51db8b)>=_0x3b9a97[_0xcfda('0xa1')]){_0x21f09f=ut[_0xcfda('0xa2')](_0x51db8b,0xf,_0xcfda('0xc1'));rpcDb[_0xcfda('0xa3')](_0x21f09f,_0xcfda('0xcb'));}else{if(_0x51db8b[_0xcfda('0xc8')]>=_0x3b9a97['dialCongestionMaxRetry']){rpcDb['createCustomerFinal'](_0x51db8b,_0xcfda('0xca'));}else{rpcDb['rescheduleContact'](ut[_0xcfda('0xa8')](_0x51db8b,'countcongestionretry',_0x3b9a97[_0xcfda('0xcc')]),_0x51db8b[_0xcfda('0xa9')],_0x51db8b[_0xcfda('0xaa')]);}}break;case _0xcfda('0xcd'):_0x3b9a97['outboundRejectCallsDay']+=0x1;_0x51db8b['countagentrejectretry']+=0x1;_0x51db8b['countglobal']=ut[_0xcfda('0xa0')](_0x51db8b);ut[_0xcfda('0x9c')](_0x51db8b,0x14,_0xcfda('0xce'));ami[_0xcfda('0x26')](_0xcfda('0xcf'),ut[_0xcfda('0x9f')](_0x51db8b,_0xcfda('0xd0')));rpcDb['createCustomerHistory'](_0x51db8b,_0xcfda('0xd1'));if(ut[_0xcfda('0xa0')](_0x51db8b)>=_0x3b9a97[_0xcfda('0xa1')]){_0x21f09f=ut['cloneAction'](_0x51db8b,0x14,_0xcfda('0xce'));rpcDb[_0xcfda('0xa3')](_0x21f09f,'[callProgressDetectingCustomer][logAgentReject]');}else{if(_0x51db8b[_0xcfda('0xd2')]>=_0x3b9a97[_0xcfda('0xd3')]){rpcDb[_0xcfda('0xa3')](_0x51db8b,_0xcfda('0xd4'));}else{rpcDb[_0xcfda('0xa7')](ut[_0xcfda('0xa8')](_0x51db8b,_0xcfda('0xd2'),_0x3b9a97['dialAgentRejectRetryFrequency']),_0x51db8b[_0xcfda('0xa9')],_0x51db8b[_0xcfda('0xaa')]);}}break;case _0xcfda('0xd5'):_0x3b9a97[_0xcfda('0x40')]+=0x1;_0x51db8b[_0xcfda('0xd6')]+=0x1;_0x51db8b[_0xcfda('0x9b')]=ut[_0xcfda('0xa0')](_0x51db8b);ut[_0xcfda('0x9c')](_0x51db8b,0xb,_0xcfda('0xd7'));rpcDb[_0xcfda('0x90')](_0x51db8b,_0xcfda('0xd8'));if(ut['totalGlobal'](_0x51db8b)>=_0x3b9a97[_0xcfda('0xa1')]){_0x21f09f=ut[_0xcfda('0xa2')](_0x51db8b,0xf,_0xcfda('0xc1'));rpcDb[_0xcfda('0xa3')](_0x21f09f,_0xcfda('0xd8'));}else{if(_0x51db8b[_0xcfda('0xd9')]>=_0x3b9a97[_0xcfda('0xda')]){rpcDb[_0xcfda('0xa3')](_0x51db8b,_0xcfda('0xd8'));}else{rpcDb[_0xcfda('0xa7')](ut[_0xcfda('0xa8')](_0x51db8b,_0xcfda('0xd6'),_0x3b9a97[_0xcfda('0xdb')]),_0x51db8b[_0xcfda('0xa9')],_0x51db8b[_0xcfda('0xaa')]);}}break;case'18':_0x3b9a97[_0xcfda('0x3f')]+=0x1;_0x51db8b[_0xcfda('0xdc')]+=0x1;_0x51db8b['countglobal']=ut[_0xcfda('0xa0')](_0x51db8b);ut[_0xcfda('0x9c')](_0x51db8b,0x12,_0x56ae67[_0xcfda('0xdd')]||_0x56ae67[_0xcfda('0xde')]);ami[_0xcfda('0x26')](_0xcfda('0xdf'),ut[_0xcfda('0x9f')](_0x51db8b,'amd'));rpcDb[_0xcfda('0x90')](_0x51db8b,_0xcfda('0xe0'));if(ut[_0xcfda('0xa0')](_0x51db8b)>=_0x3b9a97[_0xcfda('0xa1')]){_0x21f09f=ut[_0xcfda('0xa2')](_0x51db8b,0xf,_0xcfda('0xc1'));rpcDb[_0xcfda('0xa3')](_0x21f09f,_0xcfda('0xe0'));}else{rpcDb[_0xcfda('0xa3')](_0x51db8b,'[callProgressDetectingCustomer][hangupInAMD]');}delete this[_0xcfda('0x14')][_0x56ae67[_0xcfda('0xe1')]];break;case'19':_0x3b9a97['outboundUnknownCallsDay']+=0x1;_0x51db8b[_0xcfda('0x9b')]=ut['totalGlobal'](_0x51db8b);ut['logCustomer'](_0x51db8b,0x13,_0x56ae67[_0xcfda('0xdd')]||_0x56ae67['dialstatus']);ami['emit'](_0xcfda('0xdf'),ut[_0xcfda('0x9f')](_0x51db8b,_0xcfda('0xe2')));rpcDb[_0xcfda('0x90')](_0x51db8b,_0xcfda('0xe3'));if(ut[_0xcfda('0xa0')](_0x51db8b)>=_0x3b9a97[_0xcfda('0xa1')]){_0x21f09f=ut[_0xcfda('0xa2')](_0x51db8b,0xf,_0xcfda('0xc1'));rpcDb[_0xcfda('0xa3')](_0x21f09f,_0xcfda('0xe3'));}else{rpcDb[_0xcfda('0xa3')](_0x51db8b,_0xcfda('0xe3'));}delete this[_0xcfda('0x14')][_0x56ae67[_0xcfda('0xe1')]];break;default:if(_0x51db8b[_0xcfda('0x6c')]){ut['decrementTalkink'](_0x3b9a97,_0xcfda('0xe4'));ut['loggerError'](_0xcfda('0xe5')+_0x3b9a97[_0xcfda('0x27')],_0x56ae67);}_0x3b9a97[_0xcfda('0x3f')]+=0x1;_0x51db8b[_0xcfda('0x9b')]=ut[_0xcfda('0xa0')](_0x51db8b);ut[_0xcfda('0x9c')](_0x51db8b,0xc,_0x56ae67[_0xcfda('0xdd')]||_0x56ae67[_0xcfda('0xde')]);rpcDb[_0xcfda('0x90')](_0x51db8b,_0xcfda('0xe6'));if(ut[_0xcfda('0xa0')](_0x51db8b)>=_0x3b9a97[_0xcfda('0xa1')]){_0x21f09f=ut[_0xcfda('0xa2')](_0x51db8b,0xf,_0xcfda('0xc1'));rpcDb['createCustomerFinal'](_0x21f09f,_0xcfda('0xe7'));}else{rpcDb[_0xcfda('0xa3')](_0x51db8b,_0xcfda('0xe7'));}delete this[_0xcfda('0x14')][_0x56ae67[_0xcfda('0xe1')]];}if(!(_0x51db8b['dialAnswer']&&_0xe93cde==='16')){ut[_0xcfda('0x77')](_0x3b9a97,_0xcfda('0xe8'));logger[_0xcfda('0x55')](_0xcfda('0xe9'),_0x51db8b[_0xcfda('0xad')],_0xcfda('0xae'),_0x3b9a97[_0xcfda('0x27')],_0xcfda('0xea'),_0x3b9a97['originated']);}if(_0xe93cde!==_0xcfda('0xab')){delete this[_0xcfda('0x14')][_0x56ae67['linkedid']];delete this[_0xcfda('0x14')][_0x56ae67[_0xcfda('0xeb')]];}}};Preview['prototype'][_0xcfda('0xec')]=function(_0x27a28b,_0x18d27d,_0x22b760){if(_[_0xcfda('0xed')](_0x18d27d)&&'object'!==typeof _0x18d27d){return;}if(_[_0xcfda('0xed')](_0x22b760)&&'object'!==typeof _0x22b760){return;}switch(_0x22b760['reason']){case'0':ut['logAgent'](_0x27a28b,0x0,'NoSuchNumber');rpcDb[_0xcfda('0xee')](_0x27a28b,'[callProgressDetectingAgent][logNoSuch]');break;case'3':ut[_0xcfda('0xef')](_0x27a28b,0x3,'NoAnswer');rpcDb[_0xcfda('0xee')](_0x27a28b,'[callProgressDetectingAgent][logNoAnswer]');break;case'5':ut[_0xcfda('0xef')](_0x27a28b,0x5,_0xcfda('0xf0'));rpcDb[_0xcfda('0xee')](_0x27a28b,_0xcfda('0xf1'));break;case'8':ut[_0xcfda('0xef')](_0x27a28b,0x8,'Congestion');rpcDb[_0xcfda('0xee')](_0x27a28b,_0xcfda('0xf2'));break;case'22':ut[_0xcfda('0xef')](_0x27a28b,0x16,'AnswerAGI');rpcDb['createAgentHistory'](_0x27a28b,_0xcfda('0xf3'));break;default:ut[_0xcfda('0xef')](_0x27a28b,0xc,_0x22b760['reason']);rpcDb['createAgentHistory'](_0x27a28b,_0xcfda('0xf2'));}ut[_0xcfda('0x77')](_0x18d27d,_0xcfda('0xf4'));logger[_0xcfda('0x55')](_0xcfda('0xf5'),_0x27a28b[_0xcfda('0xad')],'\x20Queue',_0x18d27d['name'],'originated:\x20',_0x18d27d[_0xcfda('0x5a')]);delete this[_0xcfda('0x14')][_0x27a28b[_0xcfda('0xad')]];};Preview[_0xcfda('0xe')][_0xcfda('0xf6')]=function(_0x3d0dd0,_0x125138,_0x7a5354,_0x34b57c,_0x14d0c2){var _0x5f1a1d=this;return new BPromise(function(_0x13f6ae,_0x34b807){if(_[_0xcfda('0x68')](_0x125138)||_[_0xcfda('0x68')](_0x125138[_0xcfda('0xf7')])||_[_0xcfda('0x68')](_0x125138['Contact'][_0xcfda('0xf8')])||_['isNil'](_0x125138[_0xcfda('0x70')])){_0x34b807(ut[_0xcfda('0x49')]('Contact\x20is\x20undefined',_0x34b57c,_0x14d0c2));return;}var _0xbc4d2d=uuid['v4']();var _0x189eed=_0x5f1a1d[_0xcfda('0x25')][_0x125138[_0xcfda('0x69')][_0xcfda('0x27')]];var _0x48c800=_0x7a5354?_0x5f1a1d[_0xcfda('0x15')][_0x7a5354]['id']:undefined;_0x5f1a1d[_0xcfda('0x14')][_0xbc4d2d]=new Action(_0x125138,_0x189eed,_0xbc4d2d,_0x7a5354,_0x48c800);var _0x484993=_0x5f1a1d[_0xcfda('0x14')][_0xbc4d2d];_0x484993[_0xcfda('0xa9')]=_0x34b57c;_0x484993[_0xcfda('0xaa')]=_0x14d0c2;_0x484993[_0xcfda('0xf9')]=_0x7a5354;if(_[_0xcfda('0xfa')](_0x3d0dd0)){_0x5f1a1d[_0xcfda('0xfb')](_0x484993,_0x189eed,_0x125138,_0x7a5354)[_0xcfda('0x81')](function(_0x38072c){logger[_0xcfda('0x55')](_0xcfda('0xfc'),_0xcfda('0xfd')+_0x484993[_0xcfda('0x6a')]+'\x20IdHopper:\x20'+_0x484993[_0xcfda('0xfe')],JSON['stringify'](_0x38072c));ami['emit']('custom:agentcalled',ut[_0xcfda('0x9f')](_0x484993,_0xcfda('0xff'),_0x5f1a1d[_0xcfda('0x25')][_0x484993[_0xcfda('0x6a')]]));_0x13f6ae(ut[_0xcfda('0x49')](_0xcfda('0x100')));})[_0xcfda('0x75')](function(_0x1cdfe8){ut[_0xcfda('0x5d')](_0xcfda('0x101'),_0x1cdfe8);_0x34b807(ut[_0xcfda('0x49')](_0xcfda('0x102'),_0x34b57c,_0x14d0c2));});}else{_0x189eed[_0xcfda('0x38')]+=0x1;ut[_0xcfda('0x103')](_0x484993);rpcDb[_0xcfda('0x104')](_0x484993,_0xcfda('0x105'));delete _0x5f1a1d['actions'][_0xbc4d2d];_0x34b807(ut[_0xcfda('0x49')]('Contact\x20in\x20black\x20List',_0x34b57c,_0x14d0c2));}});};Preview[_0xcfda('0xe')][_0xcfda('0x97')]=function(_0x4723e5){return!_[_0xcfda('0x68')](_0x4723e5)&&!_[_0xcfda('0x68')](_0x4723e5[_0xcfda('0x27')])&&!_[_0xcfda('0x68')](_0x4723e5[_0xcfda('0x106')])&&_0x4723e5['active']&&!_[_0xcfda('0x68')](this[_0xcfda('0x13')][util[_0xcfda('0x57')](_0xcfda('0x107'),_0x4723e5['name'])])&&!_[_0xcfda('0x68')](this[_0xcfda('0x13')][util[_0xcfda('0x57')](_0xcfda('0x107'),_0x4723e5[_0xcfda('0x27')])][_0xcfda('0x73')])&&(this['trunks'][util['format'](_0xcfda('0x107'),_0x4723e5['name'])]['status']===_0xcfda('0x108')||this['trunks'][util[_0xcfda('0x57')]('SIP/%s',_0x4723e5[_0xcfda('0x27')])]['status']===_0xcfda('0x109'));};Preview[_0xcfda('0xe')][_0xcfda('0x88')]=function(_0x1d0868,_0x2c5d0f){var _0x5b50a8=this;return new BPromise(function(_0x3fa94,_0x53e344){_0x5b50a8[_0xcfda('0x10a')](_0x1d0868,_0x2c5d0f)[_0xcfda('0x81')](function(_0x3e8fd7){_0x3fa94(_[_0xcfda('0x6d')](_0x3e8fd7,[_0xcfda('0x49')]));})[_0xcfda('0x75')](function(_0x5f4ecb){if(_0x5f4ecb[_0xcfda('0x10b')]){rpcDb[_0xcfda('0x10c')](_0x1d0868);}if(_0x5f4ecb[_0xcfda('0x106')]){rpcDb['disableContact'](_0x1d0868);}_0x53e344(_[_0xcfda('0x6d')](_0x5f4ecb,['message']));});});};Preview[_0xcfda('0xe')][_0xcfda('0x10a')]=function(_0x21ff7e,_0x1510bb){var _0x4ed048=this;return new BPromise(function(_0x2bf090,_0xc80f12){var _0x22ccc6,_0x5513fc;rpcDb[_0xcfda('0x10d')](_0x21ff7e)[_0xcfda('0x81')](function(_0x4cf395){if(!_[_0xcfda('0x68')](_0x4cf395[0x0])){_0x5513fc=_0x4cf395[0x0][_0xcfda('0x10e')]?![]:!![];_0x22ccc6=_0x4cf395[0x0][_0xcfda('0x10e')]?!![]:![];_0x22ccc6=_0x1510bb?!![]:_0x22ccc6;}var _0x4eb6ce=_0x4ed048[_0xcfda('0x10f')](_0x4cf395);if(_0x4eb6ce['isValid']){rpcDb['checkIsBlackList'](_[_0xcfda('0x6d')](_0x4cf395[0x0],[_0xcfda('0x70'),'Contact.phone']))[_0xcfda('0x81')](function(_0x1683ac){_0x4ed048['checkInBlack'](_0x1683ac,_0x4cf395[0x0],_0x1510bb,_0x5513fc,_0x22ccc6)[_0xcfda('0x81')](function(_0x1c5ef9){_0x2bf090(_0x1c5ef9);})[_0xcfda('0x75')](function(_0x1e0323){_0xc80f12(_0x1e0323);});})['catch'](function(_0xbd8199){ut[_0xcfda('0x5d')](_0xcfda('0x110'),_0xbd8199);_0xc80f12(ut[_0xcfda('0x49')](_0xcfda('0x111'),_0x5513fc,_0x22ccc6));});}else{_0xc80f12(ut['message'](_0x4eb6ce['message'],_0x5513fc,_0x22ccc6));}})[_0xcfda('0x75')](function(_0x57da79){ut[_0xcfda('0x5d')](_0xcfda('0x112'),_0x57da79);_0xc80f12(ut[_0xcfda('0x49')]('Call\x20unsuccessful',![],!![]));});});};Preview[_0xcfda('0xe')][_0xcfda('0x10f')]=function(_0x10a221){if(_[_0xcfda('0x68')](_0x10a221)||_[_0xcfda('0xfa')](_0x10a221)||!_[_0xcfda('0x68')](_0x10a221[0x0][_0xcfda('0x86')])&&_[_0xcfda('0x68')](_0x10a221[0x0][_0xcfda('0x86')][_0xcfda('0x27')])){ut[_0xcfda('0x5d')](_0xcfda('0x113'),_0x10a221);return{'isValid':![],'message':_0xcfda('0x114')};}var _0x455070=this[_0xcfda('0x25')][_0x10a221[0x0][_0xcfda('0x69')]['name']];_0x455070[_0xcfda('0x49')]='ACTIVE';if(_[_0xcfda('0x68')](_0x455070)){ut[_0xcfda('0x5d')]('[Preview][validateContact][Empty\x20Campaign]',_0x455070);return{'isValid':![],'message':_0xcfda('0x115')};}if(!this[_0xcfda('0x97')](_0x455070[_0xcfda('0x4f')])){ut[_0xcfda('0x5d')](_0xcfda('0x116'),_0xcfda('0x117')+_0x455070['name']+_0xcfda('0x118'));if(!this[_0xcfda('0x97')](_0x455070[_0xcfda('0x98')])){ut[_0xcfda('0x5d')](_0xcfda('0x116'),_0x455070[_0xcfda('0x27')]+'\x20Trunk\x20Backup\x20is\x20not\x20active');return{'isValid':![],'message':_0xcfda('0x119')};}}if(!ut[_0xcfda('0x96')](_0x455070['dialActive'])){ut['logger'](_0xcfda('0x11a'),_0x455070[_0xcfda('0x27')]+'\x20Not\x20Active');return{'isValid':![],'message':_0xcfda('0x117')+_0x455070['name']+_0xcfda('0x11b')};}return{'isValid':!![],'message':_0xcfda('0x11c')};};Preview['prototype'][_0xcfda('0xfb')]=function(_0x317b5f,_0x1909cd,_0x584b50,_0x5864c9){var _0x581557=this;return new BPromise(function(_0x31a76a,_0x2143a9){var _0x139e64=_0x317b5f[_0xcfda('0xad')];var _0x523879=_0x581557[_0xcfda('0x97')](_0x1909cd[_0xcfda('0x4f')])?util['format'](_0xcfda('0x11d'),_0x1909cd[_0xcfda('0x4f')][_0xcfda('0x27')],_['isNil'](_0x1909cd[_0xcfda('0x36')])?'':_0x1909cd[_0xcfda('0x36')][_0xcfda('0x11e')]()||'',_0x1909cd[_0xcfda('0x11f')]>0x0?_0x584b50[_0xcfda('0xf7')][_0xcfda('0xf8')][_0xcfda('0x120')](_0x1909cd['dialCutDigit']):_0x584b50['Contact']['phone']):util[_0xcfda('0x57')]('SIP/%s/%s%s',_[_0xcfda('0x68')](_0x1909cd[_0xcfda('0x98')])?_0x1909cd[_0xcfda('0x4f')][_0xcfda('0x27')]:_0x1909cd[_0xcfda('0x98')]['name'],_[_0xcfda('0x68')](_0x1909cd[_0xcfda('0x36')])?'':_0x1909cd[_0xcfda('0x36')]['trim']()||'',_0x1909cd['dialCutDigit']>0x0?_0x584b50[_0xcfda('0xf7')][_0xcfda('0xf8')][_0xcfda('0x120')](_0x1909cd['dialCutDigit']):_0x584b50[_0xcfda('0xf7')][_0xcfda('0xf8')]);var _0x384950=_0x581557[_0xcfda('0x97')](_0x1909cd['Trunk'])?ut['getCallerId'](_0x1909cd['Trunk'][_0xcfda('0x50')],_0x1909cd['dialOriginateCallerIdName'],_0x1909cd[_0xcfda('0x121')]>0x0?ut[_0xcfda('0x122')](_0x1909cd[_0xcfda('0x34')],_0x1909cd['dialRandomLastDigitCallerIdNumber']):_0x1909cd[_0xcfda('0x34')]):ut['getCallerId'](_[_0xcfda('0x68')](_0x1909cd[_0xcfda('0x98')])?_0x1909cd[_0xcfda('0x4f')][_0xcfda('0x50')]:_0x1909cd['TrunkBackup'][_0xcfda('0x50')],_0x1909cd[_0xcfda('0x33')],_0x1909cd[_0xcfda('0x121')]>0x0?ut[_0xcfda('0x122')](_0x1909cd[_0xcfda('0x34')],_0x1909cd[_0xcfda('0x121')]):_0x1909cd[_0xcfda('0x34')]);if(_0x384950){_0x317b5f[_0xcfda('0x123')]=ut[_0xcfda('0x124')](_0x384950);_0x317b5f[_0xcfda('0x125')]=ut['extractCalleridNumber'](_0x384950);}var _0x599175=ut[_0xcfda('0x126')](_0x1909cd,_0x584b50,_0x523879,_0x384950,_0x139e64,_0x317b5f);_[_0xcfda('0x127')](_0x317b5f,ut[_0xcfda('0x128')](_0x599175));_0x317b5f[_0xcfda('0x8c')]=moment()['format'](_0xcfda('0xac'));ami[_0xcfda('0x72')](ut[_0xcfda('0x129')](_0x317b5f,_0x1909cd,_0x599175,_0x317b5f[_0xcfda('0xaa')],_0x5864c9))[_0xcfda('0x81')](function(_0x1805ae){var _0x43a626=_0x317b5f[_0xcfda('0x12a')];if(!_[_0xcfda('0x68')](_0x43a626)){if(!_[_0xcfda('0x68')](_0x581557[_0xcfda('0x15')][_0x43a626])){_0x581557[_0xcfda('0x15')][_0x43a626][_0xcfda('0x12b')]=_0x317b5f['calleridnum'];emit(util[_0xcfda('0x57')](_0xcfda('0x12c'),_0x581557[_0xcfda('0x15')][_0x43a626]['name']),_0xcfda('0x12d'),{'destaccountcode':_0x581557['agents'][_0x43a626][_0xcfda('0x12e')],'destconnectedlinenum':_0x317b5f[_0xcfda('0x12f')]});}}_0x1909cd[_0xcfda('0x5a')]+=0x1;logger[_0xcfda('0x55')]('[originated][increment]',_0x139e64,_0xcfda('0xae'),_0x1909cd[_0xcfda('0x27')],'originated:\x20',_0x1909cd['originated']);_0x31a76a(_0x1805ae);})[_0xcfda('0x75')](function(_0x5b529a){ut[_0xcfda('0xef')](_0x317b5f,0xe,_0xcfda('0x130'));rpcDb[_0xcfda('0xee')](_0x317b5f,'[originateFailure][logOriginateFailure]');_0x2143a9(_0x5b529a);});});};Preview['prototype'][_0xcfda('0x1e')]=function(_0x4bcd71){if(this[_0xcfda('0x14')][_0x4bcd71[_0xcfda('0xe1')]]){this[_0xcfda('0x14')][_0x4bcd71[_0xcfda('0xe1')]][_0xcfda('0x74')]=_0x4bcd71[_0xcfda('0x74')];}};Preview[_0xcfda('0xe')][_0xcfda('0x17')]=function(_0x5f5570){var _0x1cc6c2=this;var _0x558e59=this[_0xcfda('0x14')][_0x5f5570[_0xcfda('0x131')]];if(_0x558e59){if(_0x558e59[_0xcfda('0xf9')]&&this[_0xcfda('0x15')][_0x558e59[_0xcfda('0xf9')]]){ut[_0xcfda('0x132')](_0x558e59,this['agents'][_0x558e59['lookAgent']]['name'],this['agents'][_0x558e59[_0xcfda('0xf9')]]['id']);}var _0x2ba9db=_['clone'](_0x558e59);_0x2ba9db['responsetime']=moment()[_0xcfda('0x57')](_0xcfda('0xac'));var _0x372067=_0x1cc6c2['campaignsPreview'][_0x558e59[_0xcfda('0x6a')]];if(ut[_0xcfda('0x133')](_0x5f5570['response'])){if(_0x558e59[_0xcfda('0xa9')]){rpcDb[_0xcfda('0x10c')](_0x558e59[_0xcfda('0xfe')]);}if(_0x558e59[_0xcfda('0xaa')]){rpcDb['disableContact'](_0x558e59['idContact']);}ami[_0xcfda('0x26')]('custom:agentringnoanswer',ut[_0xcfda('0x9f')](_0x558e59,_0xcfda('0x134'),this[_0xcfda('0x25')][_0x558e59['queue']]));this[_0xcfda('0xec')](_0x2ba9db,_0x372067,_0x5f5570);}else{_0x558e59[_0xcfda('0x8c')]=moment()['format'](_0xcfda('0xac'));ut[_0xcfda('0xef')](_0x2ba9db,0x4,_0xcfda('0xb6'));rpcDb['createAgentHistory'](_0x2ba9db,_0xcfda('0x135'));}}};Preview[_0xcfda('0xe')][_0xcfda('0x1a')]=function(_0x53636b){var _0x30ece8=this;var _0x40dbdd=this[_0xcfda('0x14')][_0x53636b[_0xcfda('0xe1')]];var _0x403978;if(_0x40dbdd){_0x403978=this[_0xcfda('0x25')][_0x40dbdd[_0xcfda('0x6a')]];logger[_0xcfda('0x55')](_0xcfda('0x136'),_0x53636b[_0xcfda('0xe1')],_0xcfda('0xae'),_0x403978[_0xcfda('0x27')],'pTalking:\x20',_0x403978['pTalking']);}if(this[_0xcfda('0x14')][_0x53636b[_0xcfda('0xe1')]]&&_0x53636b['linkedid']!==_0x53636b['uniqueid']){if(_0x53636b[_0xcfda('0x137')]==='16'&&this[_0xcfda('0x14')][_0x53636b['linkedid']][_0xcfda('0x6c')]){this[_0xcfda('0x138')](_0x53636b,_0x53636b['linkedid'],_0x53636b[_0xcfda('0x137')]);}else if(this[_0xcfda('0x14')][_0x53636b[_0xcfda('0xe1')]][_0xcfda('0x6c')]){logger[_0xcfda('0x55')](_0xcfda('0x139'),_0x53636b['linkedid'],_0x53636b[_0xcfda('0x137')],_0xcfda('0xae'),_0x403978[_0xcfda('0x27')],_0xcfda('0x6b'),_0x403978[_0xcfda('0x5b')]);this['callProgressDetectingCustomer'](_0x53636b,_0x53636b['linkedid'],_0x53636b['cause']);}}else if(_0x40dbdd&&_['isNil'](_0x40dbdd[_0xcfda('0x13a')])&&_0x403978['dialQueueProject']&&_0x53636b['linkedid']===_0x53636b['uniqueid']&&_[_0xcfda('0x68')](_0x53636b[_0xcfda('0x13b')])&&_0x53636b['cause']==='16'&&_0x53636b['channelstate']==='6'&&_[_0xcfda('0xed')](_0x40dbdd['transfer'])){if(_0x40dbdd[_0xcfda('0xa9')]){rpcDb[_0xcfda('0x10c')](_0x40dbdd[_0xcfda('0xfe')]);}if(_0x40dbdd['activeContact']){rpcDb['disableContact'](_0x40dbdd[_0xcfda('0xfe')]);}_0x53636b[_0xcfda('0x13b')]='22';this[_0xcfda('0xec')](_0x40dbdd,_0x403978,_0x53636b);}else if(_0x40dbdd&&_0x40dbdd['transfer']){if(_0x53636b[_0xcfda('0x137')]==='16'&&this[_0xcfda('0x14')][_0x53636b[_0xcfda('0xe1')]][_0xcfda('0x6c')]){logger[_0xcfda('0x55')](_0xcfda('0x13c'),_0x53636b['linkedid'],_0x53636b[_0xcfda('0x137')],'\x20Queue',_0x403978['name'],_0xcfda('0x6b'),_0x403978['pTalking']);this[_0xcfda('0x138')](_0x53636b,_0x53636b[_0xcfda('0xe1')],_0x53636b['cause']);}else if(this['actions'][_0x53636b[_0xcfda('0xe1')]][_0xcfda('0x6c')]){logger[_0xcfda('0x55')](_0xcfda('0x139'),_0x53636b[_0xcfda('0xe1')],_0x53636b['cause'],_0xcfda('0xae'),_0x403978[_0xcfda('0x27')],'pTalking:\x20',_0x403978['pTalking']);this['callProgressDetectingCustomer'](_0x53636b,_0x53636b[_0xcfda('0xe1')],_0x53636b[_0xcfda('0x137')]);}}};Preview[_0xcfda('0xe')]['syncDialEnd']=function(_0x3b8f29){if(this['actions'][_0x3b8f29[_0xcfda('0xeb')]]&&_0x3b8f29[_0xcfda('0xeb')]!==_0x3b8f29[_0xcfda('0x13d')]){this['callProgressDetectingCustomer'](_0x3b8f29,_0x3b8f29['destlinkedid'],_0x3b8f29['dialstatus']);}};Preview[_0xcfda('0xe')][_0xcfda('0x13e')]=function(_0x47b4e7){if(this['actions'][_0x47b4e7[_0xcfda('0xe1')]]&&_0x47b4e7[_0xcfda('0xe1')]!==_0x47b4e7['uniqueid']&&!this[_0xcfda('0x14')][_0x47b4e7['linkedid']][_0xcfda('0x6c')]){if(_0x47b4e7[_0xcfda('0x137')]==='1'){this[_0xcfda('0x138')](_0x47b4e7,_0x47b4e7[_0xcfda('0xe1')],_0x47b4e7[_0xcfda('0x137')]);}}};Preview[_0xcfda('0xe')][_0xcfda('0x13f')]=function(_0x3eb317,_0x75499,_0x20ea5c){if(this['actions'][_0x3eb317]){if(_[_0xcfda('0x68')](this[_0xcfda('0x14')][_0x3eb317]['variables'])){this[_0xcfda('0x14')][_0x3eb317]['variables']={};}this[_0xcfda('0x14')][_0x3eb317]['variables'][_0x75499]=_0x20ea5c;}};Preview['prototype'][_0xcfda('0x20')]=function(_0x60cf0f){try{if(!_[_0xcfda('0x68')](_0x60cf0f)){if(ut[_0xcfda('0x140')](_['keys'](_0x60cf0f[_0xcfda('0x141')])[0x0])){this['addVariable'](_0x60cf0f[_0xcfda('0xad')],_['keys'](_0x60cf0f[_0xcfda('0x141')])[0x0],_0x60cf0f[_0xcfda('0x142')]);}}}catch(_0x199649){logger['error'](_0xcfda('0x143'),util[_0xcfda('0x144')](_0x199649,{'showHidden':![],'depth':null}));}};Preview['prototype'][_0xcfda('0x21')]=function(_0x87e438){if(_0x87e438){if(this[_0xcfda('0x14')][_0x87e438[_0xcfda('0x145')]]){this[_0xcfda('0x14')][_0x87e438[_0xcfda('0x145')]]['transfer']=!![];}}};Preview[_0xcfda('0xe')]['syncBlindTransfer']=function(_0x2c51b1){if(_0x2c51b1){if(this[_0xcfda('0x14')][_0x2c51b1[_0xcfda('0x146')]]){this[_0xcfda('0x14')][_0x2c51b1[_0xcfda('0x146')]]['transfer']=!![];}}};module[_0xcfda('0x147')]=Preview;
\ No newline at end of file
+var _0x0a02=['logBlacklist','[Blacklist][error]','Contact\x20in\x20black\x20List','SIP/%s','status','reachable','unmonitored','execRun','pick','unlock','unlockContact','getContactPreview','recallme','validateContact','isValid','checkInBlack','[Preview][checkIsBlackList]','Call\x20unsuccessful','[Preview][getContactPreview]','[Preview][validateContact][Empty\x20Contact]','Empty\x20Contact','[Preview][validateContact][Empty\x20Campaign]','Empty\x20Campaign','[Preview][validateContact][Trunk\x20not\x20work]','campaign\x20Name:\x20','\x20Trunk\x20is\x20not\x20active','\x20Trunk\x20Backup\x20is\x20not\x20active','Trunk\x20not\x20work','[Preview][validateContact][Campaign\x20Active]','\x20Not\x20Active','Is\x20Valid','SIP/%s/%s%s','trim','dialCutDigit','phone','substring','getCallerId','dialRandomLastDigitCallerIdNumber','getCallerIdRandom','originatecalleridname','extractCalleridName','originatecalleridnum','addVariables','merge','toLowerVariables','starttime','variablesAction','channelAgent','destconnectedlinenum','calleridnum','user:%s','user:agentconnect','accountcode','[originated][increment]','OriginateError','syncNewExten','syncOriginateResponse','actionid','lookAgent','logLookAgent','clone','isFailure','response','idContact','custom:agentringnoanswer','[callProgressDetectingAgent][logAnswer]','syncHangup','[syncHangup][talking]','cause','[syncHangup][talking][cause]','channelstate','transfer','syncDialEnd','destuniqueid','syncHangupRequest','variables','addVariable','keys','variable','value','error','[syncVarSet][Preview]','inspect','transfertargetlinkedid','transfererlinkedid','exports','util','lodash','bluebird','uuid','md5','../../../config/environment','../../../config/logger','preview','actionPreview','../ami','./rpcDb','defaults','redis','localhost','prototype','enqueue','tail','finally','campaignsPreview','voiceQueues','trunks','actions','agents','clockClearZombieChannels','originateresponse','bind','hangup','newexten','varset','syncVarSet','attendedtransfer','syncAttendedTransfer','blindtransfer','syncBlindTransfer','loopCampaigns','emit','outbound','name','strategy','answered','available','loggedIn','pTalking','sumBillable','sumDuration','sumHoldTime','total','type','unmanaged','waiting','loggedInDb','dialActive','dialMethod','dialOriginateCallerIdName','dialOriginateCallerIdNumber','dialOriginateTimeout','dialPrefix','outboundAnswerAgiCallsDay','outboundBlacklistCallsDay','outboundBusyCallsDay','outboundCongestionCallsDay','outboundDropCallsDayACS','outboundDropCallsDayCallersExit','outboundDropCallsDayTimeout','outboundNoAnswerCallsDay','outboundNoSuchCallsDay','outboundOriginateFailureCallsDay','outboundReCallsDay','outboundRejectCallsDay','outboundUnknownCallsDay','outboundAbandonedCallsDay','predictiveIntervalAnsweredCalls','predictiveIntervalAvgTalktime','predictiveIntervalDroppedCallsCallersExit','predictiveIntervalErlangCalls','predictiveIntervalErlangCallsDroppedCalls','predictiveIntervalHitRate','predictiveIntervalMultiplicativeFactor','predictiveIntervalPauses','predictiveIntervalAvailable','predictiveIntervalTotalCalls','originated','erlangCalls','erlangCallToSecond','erlangBusyFactor','startPredictive','startProgressive','Trunk','active','callerid','Interval','stringify','voice:queue:%s','info','[DEBUG]\x20Emit\x20voice_queue_channel:remove\x20event','format','voice_queue_channel:remove','voice_queue_presence:remove','sendMessageOneNotActive','paused','message','NOT_ACTIVE','logger','[CampaignPreview]\x20Campaign\x20Queue:\x20','\x20is\x20not\x20active','IS_DISACTIVED','booked','clearZombieChannels','setMessage','recallMe','clearZombieChannel','sequence','isNil','[clearZombieChannels][talking]','queue','dialAnswer','contactId','VoiceQueueId','ListId','Action','channel','catch','updateOriginated','[clearZombieChannel]','decrementTalkink','loggerError','[Dialer][checkChannel][Preview]','size','hasOwnProperty','agentReadyId','then','getDiff','scheduledat','dialRecallMeTimeout','Agent','voicePause','run','logger2','[RecallMe]','disableContact','RecallInQueue','dialRecallInQueue','createBody','createCustomerHistory','logCustomer','RecallFailedTimeout','createCustomerFinal','[HistoryRecallClose]','AGENTS_NOT_LOGGED','isActive','isTrunkReachable','TrunkBackup','ACTIVE','callProgressDetectingCustomer','countnosuchnumberretry','countglobal','nosuchnumber','[callProgressDetectingCustomer][logNoSuch]','totalGlobal','dialGlobalMaxRetry','cloneAction','Global','[callProgressDetectingCustomer][logNoSuchGlobal]','rescheduleContact','dialNoSuchNumberRetryFrequency','activeContact','ANSWER','YYYY-MM-DD\x20HH:mm:ss','responsetime','answertime','uniqueid','\x20Queue','pTalking:\x20','custom:agentconnect','buildObj','connect','acw','buildAcw','complete','outboundAnswerCallsDay','[16]','Answer','[callProgressDetectingCustomer][logAnswerGlobal]','crateCustomerReportQueue','talktime','[syncHangup][talking][decrement]','linkedid','BUSY','countbusyretry','Busy','[callProgressDetectingCustomer][logBusyGlobal]','[callProgressDetectingCustomer][logBusy]','scheduledAt','dialBusyRetryFrequency','unlockAgent','NOANSWER','countnoanswerretry','custom:agentnoanswer','noanswer','[callProgressDetectingCustomer][logNoAnswerGlobal]','dialNoAnswerMaxRetry','[callProgressDetectingCustomer][logNoAnswer]','CONGESTION','countcongestionretry','Congestion','custom:agentcongestion','congestion','[callProgressDetectingCustomer][logCongestionGlobal]','dialCongestionMaxRetry','[callProgressDetectingCustomer][logCongestion]','CANCEL','countagentrejectretry','AgentReject','agentreject','[syncHangupRequest][logAgentReject]','[callProgressDetectingCustomer][logAgentReject]','dialAgentRejectRetryFrequency','ABANDONED','countabandonedretry','[callProgressDetectingCustomer][logAbandoned]','dialAbandonedMaxRety','dialAbandonedRetryFrequency','cause-txt','dialstatus','[callProgressDetectingCustomer][hangupInAMD]','custom:amd','amd','[callProgressDetectingCustomer][machine]','[default]','[Dialer][decrementTalkink][no\x20Hangup][Preview]','[callProgressDetectingCustomer][logUnknown]','[callProgressDetectingCustomer][logUnknownGlobal]','[originated][decrement][callProgressDetectingCustomer]','originated:\x20','destlinkedid','callProgressDetectingAgent','isUndefined','object','reason','NoSuchNumber','NoAnswer','createAgentHistory','[callProgressDetectingAgent][logNoAnswer]','logAgent','[callProgressDetectingAgent][logBusy]','[callProgressDetectingAgent][logCongestion]','AnswerAGI','[callProgressDetectingAgent][logAnswerAGI]','[callProgressDetectingAgent]','[originated][decrement][callProgressDetectingAgent]','Contact','isEmpty','execCall','[Preview][execCall][success]','\x20IdHopper:\x20','custom:agentcalled','called','Calling','[Preview][execCall][failure]','Call\x20failed'];(function(_0x27cdfb,_0x2c93c2){var _0x235106=function(_0x59b7a4){while(--_0x59b7a4){_0x27cdfb['push'](_0x27cdfb['shift']());}};_0x235106(++_0x2c93c2);}(_0x0a02,0x1b0));var _0x20a0=function(_0x3d5df9,_0x5b3623){_0x3d5df9=_0x3d5df9-0x0;var _0x50ba39=_0x0a02[_0x3d5df9];return _0x50ba39;};'use strict';var util=require(_0x20a0('0x0'));var _=require(_0x20a0('0x1'));var BPromise=require(_0x20a0('0x2'));var uuid=require(_0x20a0('0x3'));var moment=require('moment');var md5=require(_0x20a0('0x4'));var Redis=require('ioredis');var config=require(_0x20a0('0x5'));var logger=require(_0x20a0('0x6'))(_0x20a0('0x7'));var loggerAction=require(_0x20a0('0x6'))(_0x20a0('0x8'));var ami=require(_0x20a0('0x9'));var rpcDb=require(_0x20a0('0xa'));var Action=require('./action');var ut=require('./util/util');config['redis']=_[_0x20a0('0xb')](config[_0x20a0('0xc')],{'host':_0x20a0('0xd'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x20a0('0xc')]));var Sequence=function(){};Sequence[_0x20a0('0xe')][_0x20a0('0xf')]=function(_0x5adda7){this[_0x20a0('0x10')]=this[_0x20a0('0x10')]?this[_0x20a0('0x10')][_0x20a0('0x11')](_0x5adda7):_0x5adda7();};function Preview(_0x1de3e7){this['sequence']=new Sequence();this[_0x20a0('0x12')]=_0x1de3e7[_0x20a0('0x13')];this['trunks']=_0x1de3e7[_0x20a0('0x14')];this[_0x20a0('0x15')]={};this[_0x20a0('0x16')]=_0x1de3e7[_0x20a0('0x16')];this[_0x20a0('0x17')]=0x0;ami['on'](_0x20a0('0x18'),this['syncOriginateResponse'][_0x20a0('0x19')](this));ami['on'](_0x20a0('0x1a'),this['syncHangup'][_0x20a0('0x19')](this));ami['on']('hanguprequest',this['syncHangupRequest'][_0x20a0('0x19')](this));ami['on']('dialend',this['syncDialEnd'][_0x20a0('0x19')](this));ami['on'](_0x20a0('0x1b'),this['syncNewExten']['bind'](this));ami['on'](_0x20a0('0x1c'),this[_0x20a0('0x1d')][_0x20a0('0x19')](this));ami['on'](_0x20a0('0x1e'),this[_0x20a0('0x1f')][_0x20a0('0x19')](this));ami['on'](_0x20a0('0x20'),this[_0x20a0('0x21')][_0x20a0('0x19')](this));this[_0x20a0('0x22')](this[_0x20a0('0x12')]);}function emit(_0x3e69aa,_0x1a76ed,_0x371cca){io['to'](_0x3e69aa)[_0x20a0('0x23')](_0x1a76ed,_0x371cca);}function emitCampaignPreview(_0x53a56a){if(_0x53a56a['type']===_0x20a0('0x24')){var _0x602f78={'id':_0x53a56a['id'],'name':_0x53a56a[_0x20a0('0x25')],'strategy':_0x53a56a[_0x20a0('0x26')],'answered':_0x53a56a[_0x20a0('0x27')],'available':_0x53a56a[_0x20a0('0x28')],'loggedIn':_0x53a56a[_0x20a0('0x29')],'pTalking':_0x53a56a[_0x20a0('0x2a')],'sumBillable':_0x53a56a[_0x20a0('0x2b')],'sumDuration':_0x53a56a[_0x20a0('0x2c')],'sumHoldTime':_0x53a56a[_0x20a0('0x2d')]||0x0,'talking':_0x53a56a['talking'],'total':_0x53a56a[_0x20a0('0x2e')],'type':_0x53a56a[_0x20a0('0x2f')],'unmanaged':_0x53a56a[_0x20a0('0x30')],'abandoned':_0x53a56a['abandoned'],'waiting':_0x53a56a[_0x20a0('0x31')],'loggedInDb':_0x53a56a[_0x20a0('0x32')],'dialActive':_0x53a56a[_0x20a0('0x33')],'dialMethod':_0x53a56a[_0x20a0('0x34')],'dialOriginateCallerIdName':_0x53a56a[_0x20a0('0x35')],'dialOriginateCallerIdNumber':_0x53a56a[_0x20a0('0x36')],'dialOriginateTimeout':_0x53a56a[_0x20a0('0x37')],'dialPrefix':_0x53a56a[_0x20a0('0x38')],'outboundAnswerAgiCallsDay':_0x53a56a[_0x20a0('0x39')],'outboundAnswerCallsDay':_0x53a56a['outboundAnswerCallsDay'],'outboundBlacklistCallsDay':_0x53a56a[_0x20a0('0x3a')],'outboundBusyCallsDay':_0x53a56a[_0x20a0('0x3b')],'outboundCongestionCallsDay':_0x53a56a[_0x20a0('0x3c')],'outboundDropCallsDayACS':_0x53a56a[_0x20a0('0x3d')],'outboundDropCallsDayCallersExit':_0x53a56a[_0x20a0('0x3e')],'outboundDropCallsDayTimeout':_0x53a56a[_0x20a0('0x3f')],'outboundNoAnswerCallsDay':_0x53a56a[_0x20a0('0x40')],'outboundNoSuchCallsDay':_0x53a56a[_0x20a0('0x41')],'outboundOriginateFailureCallsDay':_0x53a56a[_0x20a0('0x42')],'outboundReCallsDay':_0x53a56a[_0x20a0('0x43')],'outboundRejectCallsDay':_0x53a56a[_0x20a0('0x44')],'outboundUnknownCallsDay':_0x53a56a[_0x20a0('0x45')],'outboundAbandonedCallsDay':_0x53a56a[_0x20a0('0x46')],'predictiveIntervalAnsweredCalls':_0x53a56a[_0x20a0('0x47')],'predictiveIntervalAvgHoldtime':_0x53a56a['predictiveIntervalAvgHoldtime'],'predictiveIntervalAvgTalktime':_0x53a56a[_0x20a0('0x48')],'predictiveIntervalDroppedCallsCallersExit':_0x53a56a[_0x20a0('0x49')],'predictiveIntervalDroppedCallsTimeout':_0x53a56a['predictiveIntervalDroppedCallsTimeout'],'predictiveIntervalErlangCalls':_0x53a56a[_0x20a0('0x4a')],'predictiveIntervalErlangCallsDroppedCalls':_0x53a56a[_0x20a0('0x4b')],'predictiveIntervalHitRate':_0x53a56a[_0x20a0('0x4c')],'predictiveIntervalMultiplicativeFactor':_0x53a56a[_0x20a0('0x4d')],'predictiveIntervalPauses':_0x53a56a[_0x20a0('0x4e')],'predictiveIntervalAvailable':_0x53a56a[_0x20a0('0x4f')],'predictiveIntervalTotalCalls':_0x53a56a[_0x20a0('0x50')],'message':_0x53a56a['message'],'originated':_0x53a56a[_0x20a0('0x51')],'erlangCalls':_0x53a56a[_0x20a0('0x52')],'erlangCallToSecond':_0x53a56a[_0x20a0('0x53')],'erlangAbandonmentRate':_0x53a56a['erlangAbandonmentRate'],'erlangBusyFactor':_0x53a56a[_0x20a0('0x54')],'startPredictive':_0x53a56a[_0x20a0('0x55')],'startProgressive':_0x53a56a[_0x20a0('0x56')]};if(_0x53a56a[_0x20a0('0x57')]){_0x602f78['Trunk']={'id':_0x53a56a[_0x20a0('0x57')]['id'],'name':_0x53a56a[_0x20a0('0x57')][_0x20a0('0x25')],'active':_0x53a56a[_0x20a0('0x57')][_0x20a0('0x58')],'callerid':_0x53a56a[_0x20a0('0x57')][_0x20a0('0x59')]};}if(_0x53a56a['Interval']){_0x602f78['Interval']={'id':_0x53a56a[_0x20a0('0x5a')]['id'],'name':_0x53a56a[_0x20a0('0x5a')][_0x20a0('0x25')]};}var _0x2ea529=md5(JSON[_0x20a0('0x5b')](_0x602f78));if(_0x53a56a[_0x20a0('0x4')]!==_0x2ea529){_0x53a56a['md5']=_0x2ea529;emit(util['format'](_0x20a0('0x5c'),_0x602f78[_0x20a0('0x25')]),'voice_queue:save',_0x602f78);}}}function emitVoiceQueueChannelRemove(_0x234db4){logger[_0x20a0('0x5d')](_0x20a0('0x5e'),JSON[_0x20a0('0x5b')](_0x234db4));emit(util[_0x20a0('0x5f')](_0x20a0('0x5c'),_0x234db4[_0x20a0('0x25')]),_0x20a0('0x60'),_0x234db4);io[_0x20a0('0x23')](_0x20a0('0x61'),_0x234db4);}function notSendMessagesQueue(_0xde74b4){if(_0xde74b4[_0x20a0('0x62')]){if(_0xde74b4[_0x20a0('0x51')]===0x0&&_0xde74b4[_0x20a0('0x2a')]===0x0){_0xde74b4[_0x20a0('0x62')]=![];_0xde74b4[_0x20a0('0x28')]=0x0;_0xde74b4[_0x20a0('0x63')]=0x0;_0xde74b4[_0x20a0('0x64')]=_0x20a0('0x65');ut[_0x20a0('0x66')](_0x20a0('0x67'),_0xde74b4[_0x20a0('0x25')]+_0x20a0('0x68'));}else{_0xde74b4[_0x20a0('0x64')]=_0x20a0('0x69');ut['logger']('[CampaignPreview]\x20Campaign\x20Queue:\x20',_0xde74b4['name']+'\x20is\x20disactive');}emitCampaignPreview(_0xde74b4);}}Preview['prototype'][_0x20a0('0x22')]=function(){var _0x2016ff=this;setInterval(function(){_0x2016ff['syncCampaigns']();},0x7cf);};Preview[_0x20a0('0xe')]['syncCampaigns']=function(){var _0x1cab12=this[_0x20a0('0x12')];this['clockClearZombieChannels']+=0x1;for(var _0x5bcc7a in _0x1cab12){if(_0x1cab12['hasOwnProperty'](_0x5bcc7a)&&(_0x1cab12[_0x5bcc7a]['dialMethod']===_0x20a0('0x7')||_0x1cab12[_0x5bcc7a]['dialMethod']===_0x20a0('0x6a'))&&_0x1cab12[_0x5bcc7a][_0x20a0('0x2f')]===_0x20a0('0x24')){if(this[_0x20a0('0x17')]>0x7){this['clockClearZombieChannels']=0x0;this[_0x20a0('0x6b')]();}}if(_0x1cab12['hasOwnProperty'](_0x5bcc7a)&&_0x1cab12[_0x5bcc7a][_0x20a0('0x34')]===_0x20a0('0x7')&&_0x1cab12[_0x5bcc7a][_0x20a0('0x2f')]===_0x20a0('0x24')){if(_0x1cab12[_0x5bcc7a][_0x20a0('0x33')]){this[_0x20a0('0x6c')](_0x1cab12[_0x5bcc7a]);this[_0x20a0('0x6d')](_0x1cab12[_0x5bcc7a]);}else{notSendMessagesQueue(_0x1cab12[_0x5bcc7a]);}}}};Preview['prototype'][_0x20a0('0x6e')]=function(_0x5e58bf){var _0x5ad159=this;this[_0x20a0('0x6f')][_0x20a0('0xf')](function(){if(!_[_0x20a0('0x70')](_0x5ad159[_0x20a0('0x15')][_0x5e58bf])){loggerAction[_0x20a0('0x5d')](_0x20a0('0x71'),_0x5e58bf,'Queue',_0x5ad159[_0x20a0('0x15')][_0x5e58bf][_0x20a0('0x72')],'originated:\x20',JSON[_0x20a0('0x5b')](_0x5ad159[_0x20a0('0x12')][_0x5ad159[_0x20a0('0x15')][_0x5e58bf][_0x20a0('0x72')]]['originated']),'pTalking:\x20',JSON[_0x20a0('0x5b')](_0x5ad159['campaignsPreview'][_0x5ad159['actions'][_0x5e58bf][_0x20a0('0x72')]][_0x20a0('0x2a')]),JSON[_0x20a0('0x5b')](_0x5ad159[_0x20a0('0x15')][_0x5e58bf][_0x20a0('0x73')]),JSON[_0x20a0('0x5b')](_['pick'](_0x5ad159[_0x20a0('0x15')][_0x5e58bf],[_0x20a0('0x74'),'UserId',_0x20a0('0x75'),_0x20a0('0x76')])));return ami[_0x20a0('0x77')]({'action':'status','channel':_0x5ad159['actions'][_0x5e58bf][_0x20a0('0x78')]})[_0x20a0('0x79')](function(_0x1bdd51){if(_0x1bdd51[_0x20a0('0x64')]==='No\x20such\x20channel'){setTimeout(function(){if(_0x5ad159['actions'][_0x5e58bf]){ut[_0x20a0('0x7a')](_0x5ad159[_0x20a0('0x12')][_0x5ad159['actions'][_0x5e58bf][_0x20a0('0x72')]],_0x20a0('0x7b'));if(_0x5ad159[_0x20a0('0x15')][_0x5e58bf]['dialAnswer']===!![]){ut[_0x20a0('0x7c')](_0x5ad159['campaignsPreview'][_0x5ad159[_0x20a0('0x15')][_0x5e58bf][_0x20a0('0x72')]],'[clearZombieChannel]');ut[_0x20a0('0x7d')]('[Dialer][checkChannel][pTalking][Preview]'+_0x5e58bf,_0x5ad159['actions'][_0x5e58bf][_0x20a0('0x72')]);}ut[_0x20a0('0x7d')](_0x20a0('0x7e')+_0x5e58bf,_0x5ad159[_0x20a0('0x15')][_0x5e58bf][_0x20a0('0x72')]);delete _0x5ad159[_0x20a0('0x15')][_0x5e58bf];}},0x2328);}});}});};Preview[_0x20a0('0xe')][_0x20a0('0x6b')]=function(){var _0x10d5ab=this;loggerAction[_0x20a0('0x5d')]('[action]',_[_0x20a0('0x7f')](this[_0x20a0('0x15')]));for(var _0x5dd172 in this[_0x20a0('0x15')]){if(_0x10d5ab['actions'][_0x20a0('0x80')](_0x5dd172)){_0x10d5ab[_0x20a0('0x6e')](_0x5dd172);}}};Preview[_0x20a0('0xe')][_0x20a0('0x6d')]=function(_0x1c30fa){var _0x5dade0=this;rpcDb['getContactRecallMe'](_0x1c30fa['id'],ut[_0x20a0('0x81')](this[_0x20a0('0x16')]))[_0x20a0('0x82')](function(_0x2bbe42){if(!_[_0x20a0('0x70')](_0x2bbe42)){for(var _0x1c3f37=0x0;_0x1c3f37<_0x2bbe42['length'];_0x1c3f37+=0x1){if(ut[_0x20a0('0x83')](_0x2bbe42[_0x1c3f37][_0x20a0('0x84')])<_0x1c30fa[_0x20a0('0x85')]*0x3c){if(_0x2bbe42[_0x1c3f37]['Agent']&&!_0x2bbe42[_0x1c3f37][_0x20a0('0x86')][_0x20a0('0x87')]){_0x5dade0[_0x20a0('0x88')](_0x2bbe42[_0x1c3f37]['id'])[_0x20a0('0x82')](ut[_0x20a0('0x89')](_0x20a0('0x8a')))[_0x20a0('0x79')](ut['logger2']('[RecallMe]'));}else{rpcDb[_0x20a0('0x8b')](_0x2bbe42[_0x1c3f37]['id']);}}else{var _0xc45cb5=new Action(_0x2bbe42[_0x1c3f37],_0x1c30fa);_0xc45cb5['starttime']=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');_0x1c30fa[_0x20a0('0x43')]+=0x1;ut['logCustomer'](_0xc45cb5,0x17,_0x20a0('0x8c'));if(_0x1c30fa[_0x20a0('0x8d')]){rpcDb['rescheduleContactInQueue'](ut[_0x20a0('0x8e')](_0x2bbe42[_0x1c3f37]));rpcDb[_0x20a0('0x8f')](_0xc45cb5,'[HistoryDialRecallInQueue][historyCatch]');}else{ut[_0x20a0('0x90')](_0xc45cb5,0x16,_0x20a0('0x91'));rpcDb[_0x20a0('0x8f')](_0xc45cb5,'[HistoryRecallClose]');rpcDb[_0x20a0('0x92')](_0xc45cb5,_0x20a0('0x93'));}}}}})[_0x20a0('0x79')](ut[_0x20a0('0x89')]('[getContactRecallMe]'));};Preview[_0x20a0('0xe')][_0x20a0('0x6c')]=function(_0x93d318){_0x93d318['sendMessageOneNotActive']=!![];if(ut['IsNotLoggedIn'](_0x93d318[_0x20a0('0x29')])){_0x93d318[_0x20a0('0x64')]=_0x20a0('0x94');}else if(!ut[_0x20a0('0x95')](_0x93d318['dialActive'])){_0x93d318[_0x20a0('0x64')]=_0x20a0('0x65');}else if(!this[_0x20a0('0x96')](_0x93d318[_0x20a0('0x57')])){if(!this[_0x20a0('0x96')](_0x93d318[_0x20a0('0x97')])){_0x93d318['message']='TRUNK_IS_NOT_REACHABLE';}else{_0x93d318[_0x20a0('0x64')]=_0x20a0('0x98');}}else{_0x93d318[_0x20a0('0x64')]=_0x20a0('0x98');}emitCampaignPreview(_0x93d318);};Preview[_0x20a0('0xe')][_0x20a0('0x99')]=function(_0x1d4a19,_0xd96219,_0x3e7621){var _0xf857df=this;var _0x2761e2=this['actions'][_0xd96219];var _0x4e1673=this[_0x20a0('0x12')][_0x2761e2[_0x20a0('0x72')]];var _0x4e4d79;if(_0x4e1673){switch(_0x3e7621){case'1':_0x4e1673[_0x20a0('0x41')]+=0x1;_0x2761e2[_0x20a0('0x9a')]+=0x1;_0x2761e2[_0x20a0('0x9b')]=ut['totalGlobal'](_0x2761e2);ut[_0x20a0('0x90')](_0x2761e2,0x0,'NoSuchNumber');ami[_0x20a0('0x23')]('custom:agentnosuchnumber',ut['buildObj'](_0x2761e2,_0x20a0('0x9c')));rpcDb[_0x20a0('0x8f')](_0x2761e2,_0x20a0('0x9d'));if(ut[_0x20a0('0x9e')](_0x2761e2)>=_0x4e1673[_0x20a0('0x9f')]){_0x4e4d79=ut[_0x20a0('0xa0')](_0x2761e2,0xf,_0x20a0('0xa1'));rpcDb['createCustomerFinal'](_0x4e4d79,_0x20a0('0xa2'));}else{if(_0x2761e2[_0x20a0('0x9a')]>=_0x4e1673['dialNoSuchNumberMaxRetry']){rpcDb[_0x20a0('0x92')](_0x2761e2,'[callProgressDetectingCustomer][logNoSuchGlobal]');}else{rpcDb[_0x20a0('0xa3')](ut['scheduledAt'](_0x2761e2,_0x20a0('0x9a'),_0x4e1673[_0x20a0('0xa4')]),_0x2761e2['unlockAgent'],_0x2761e2[_0x20a0('0xa5')]);}}delete this[_0x20a0('0x15')][_0x1d4a19['linkedid']];break;case _0x20a0('0xa6'):var _0x190e71=moment()[_0x20a0('0x5f')](_0x20a0('0xa7'));_0x2761e2[_0x20a0('0xa8')]=_0x190e71;_0x2761e2[_0x20a0('0xa9')]=_0x190e71;_0x2761e2['dialAnswer']=!![];_0x4e1673[_0x20a0('0x2a')]+=0x1;logger[_0x20a0('0x5d')]('[syncHangup][talking][increment]',_0x2761e2[_0x20a0('0xaa')],_0x20a0('0xab'),_0x4e1673[_0x20a0('0x25')],_0x20a0('0xac'),_0x4e1673[_0x20a0('0x2a')]);ami[_0x20a0('0x23')](_0x20a0('0xad'),ut[_0x20a0('0xae')](_0x2761e2,_0x20a0('0xaf'),this[_0x20a0('0x12')][_0x2761e2['queue']]));if(_0x4e1673[_0x20a0('0xb0')]){ami[_0x20a0('0x23')]('custom:agentConnectPreview',ut[_0x20a0('0xb1')](_0x2761e2));}break;case'16':ami[_0x20a0('0x23')]('custom:agentcomplete',ut[_0x20a0('0xae')](_0x2761e2,_0x20a0('0xb2'),this[_0x20a0('0x12')][_0x2761e2['queue']]));emitVoiceQueueChannelRemove(ut[_0x20a0('0xae')](_0x2761e2,_0x20a0('0xb2')));_0x4e1673[_0x20a0('0xb3')]+=0x1;_0x4e1673[_0x20a0('0x2e')]+=0x1;_0x4e1673[_0x20a0('0x27')]+=0x1;ut['decrementTalkink'](_0x4e1673,_0x20a0('0xb4'));_0x2761e2['countglobal']=ut[_0x20a0('0x9e')](_0x2761e2);ut['logCustomer'](_0x2761e2,0x4,_0x20a0('0xb5'));rpcDb['createCustomerHistory'](_0x2761e2,'[callProgressDetectingCustomer][logAnswer]');rpcDb[_0x20a0('0x92')](_0x2761e2,_0x20a0('0xb6'));rpcDb[_0x20a0('0xb7')](_0x2761e2);_0x4e1673['sumDuration']+=_0x2761e2[_0x20a0('0xb8')];_0x4e1673['sumBillable']+=_0x2761e2[_0x20a0('0xb8')];logger[_0x20a0('0x5d')](_0x20a0('0xb9'),_0x2761e2['uniqueid'],_0x20a0('0xab'),_0x4e1673[_0x20a0('0x25')],_0x20a0('0xac'),_0x4e1673[_0x20a0('0x2a')]);delete this['actions'][_0x1d4a19[_0x20a0('0xba')]];break;case _0x20a0('0xbb'):_0x4e1673[_0x20a0('0x3b')]+=0x1;_0x2761e2[_0x20a0('0xbc')]+=0x1;_0x2761e2['countglobal']=ut[_0x20a0('0x9e')](_0x2761e2);ut[_0x20a0('0x90')](_0x2761e2,0x5,_0x20a0('0xbd'));ami['emit']('custom:agentbusy',ut[_0x20a0('0xae')](_0x2761e2,'busy'));rpcDb[_0x20a0('0x8f')](_0x2761e2,'[callProgressDetectingCustomer][logBusy]');if(ut[_0x20a0('0x9e')](_0x2761e2)>=_0x4e1673['dialGlobalMaxRetry']){_0x4e4d79=ut[_0x20a0('0xa0')](_0x2761e2,0xf,_0x20a0('0xa1'));rpcDb[_0x20a0('0x92')](_0x4e4d79,_0x20a0('0xbe'));}else{if(_0x2761e2[_0x20a0('0xbc')]>=_0x4e1673['dialBusyMaxRetry']){rpcDb['createCustomerFinal'](_0x2761e2,_0x20a0('0xbf'));}else{rpcDb[_0x20a0('0xa3')](ut[_0x20a0('0xc0')](_0x2761e2,_0x20a0('0xbc'),_0x4e1673[_0x20a0('0xc1')]),_0x2761e2[_0x20a0('0xc2')],_0x2761e2[_0x20a0('0xa5')]);}}break;case _0x20a0('0xc3'):_0x4e1673['outboundNoAnswerCallsDay']+=0x1;_0x2761e2[_0x20a0('0xc4')]+=0x1;_0x2761e2['countglobal']=ut[_0x20a0('0x9e')](_0x2761e2);ut[_0x20a0('0x90')](_0x2761e2,0x3,'NoAnswer');ami[_0x20a0('0x23')](_0x20a0('0xc5'),ut[_0x20a0('0xae')](_0x2761e2,_0x20a0('0xc6')));rpcDb[_0x20a0('0x8f')](_0x2761e2,'[callProgressDetectingCustomer][logNoAnswer]');if(ut[_0x20a0('0x9e')](_0x2761e2)>=_0x4e1673[_0x20a0('0x9f')]){_0x4e4d79=ut['cloneAction'](_0x2761e2,0xf,_0x20a0('0xa1'));rpcDb[_0x20a0('0x92')](_0x4e4d79,_0x20a0('0xc7'));}else{if(_0x2761e2[_0x20a0('0xc4')]>=_0x4e1673[_0x20a0('0xc8')]){rpcDb['createCustomerFinal'](_0x2761e2,_0x20a0('0xc9'));}else{rpcDb[_0x20a0('0xa3')](ut[_0x20a0('0xc0')](_0x2761e2,'countnoanswerretry',_0x4e1673['dialNoAnswerRetryFrequency']),_0x2761e2['unlockAgent'],_0x2761e2[_0x20a0('0xa5')]);}}break;case _0x20a0('0xca'):_0x4e1673[_0x20a0('0x3c')]+=0x1;_0x2761e2[_0x20a0('0xcb')]+=0x1;_0x2761e2[_0x20a0('0x9b')]=ut['totalGlobal'](_0x2761e2);ut[_0x20a0('0x90')](_0x2761e2,0x8,_0x20a0('0xcc'));ami['emit'](_0x20a0('0xcd'),ut['buildObj'](_0x2761e2,_0x20a0('0xce')));rpcDb[_0x20a0('0x8f')](_0x2761e2,'[callProgressDetectingCustomer][logCongestion]');if(ut['totalGlobal'](_0x2761e2)>=_0x4e1673['dialGlobalMaxRetry']){_0x4e4d79=ut[_0x20a0('0xa0')](_0x2761e2,0xf,_0x20a0('0xa1'));rpcDb[_0x20a0('0x92')](_0x4e4d79,_0x20a0('0xcf'));}else{if(_0x2761e2[_0x20a0('0xcb')]>=_0x4e1673[_0x20a0('0xd0')]){rpcDb[_0x20a0('0x92')](_0x2761e2,_0x20a0('0xd1'));}else{rpcDb['rescheduleContact'](ut['scheduledAt'](_0x2761e2,_0x20a0('0xcb'),_0x4e1673['dialBusyRetryFrequency']),_0x2761e2[_0x20a0('0xc2')],_0x2761e2['activeContact']);}}break;case _0x20a0('0xd2'):_0x4e1673[_0x20a0('0x44')]+=0x1;_0x2761e2[_0x20a0('0xd3')]+=0x1;_0x2761e2[_0x20a0('0x9b')]=ut[_0x20a0('0x9e')](_0x2761e2);ut[_0x20a0('0x90')](_0x2761e2,0x14,_0x20a0('0xd4'));ami['emit']('custom:agentreject',ut[_0x20a0('0xae')](_0x2761e2,_0x20a0('0xd5')));rpcDb[_0x20a0('0x8f')](_0x2761e2,_0x20a0('0xd6'));if(ut['totalGlobal'](_0x2761e2)>=_0x4e1673[_0x20a0('0x9f')]){_0x4e4d79=ut[_0x20a0('0xa0')](_0x2761e2,0x14,_0x20a0('0xd4'));rpcDb[_0x20a0('0x92')](_0x4e4d79,_0x20a0('0xd7'));}else{if(_0x2761e2[_0x20a0('0xd3')]>=_0x4e1673['dialAgentRejectMaxRetry']){rpcDb[_0x20a0('0x92')](_0x2761e2,_0x20a0('0xd7'));}else{rpcDb[_0x20a0('0xa3')](ut['scheduledAt'](_0x2761e2,_0x20a0('0xd3'),_0x4e1673[_0x20a0('0xd8')]),_0x2761e2[_0x20a0('0xc2')],_0x2761e2[_0x20a0('0xa5')]);}}break;case _0x20a0('0xd9'):_0x4e1673[_0x20a0('0x46')]+=0x1;_0x2761e2[_0x20a0('0xda')]+=0x1;_0x2761e2[_0x20a0('0x9b')]=ut['totalGlobal'](_0x2761e2);ut[_0x20a0('0x90')](_0x2761e2,0xb,'Abandoned');rpcDb['createCustomerHistory'](_0x2761e2,'[callProgressDetectingCustomer][logAbandoned]');if(ut[_0x20a0('0x9e')](_0x2761e2)>=_0x4e1673[_0x20a0('0x9f')]){_0x4e4d79=ut[_0x20a0('0xa0')](_0x2761e2,0xf,_0x20a0('0xa1'));rpcDb[_0x20a0('0x92')](_0x4e4d79,_0x20a0('0xdb'));}else{if(_0x2761e2['countabandonedetry']>=_0x4e1673[_0x20a0('0xdc')]){rpcDb['createCustomerFinal'](_0x2761e2,_0x20a0('0xdb'));}else{rpcDb[_0x20a0('0xa3')](ut[_0x20a0('0xc0')](_0x2761e2,_0x20a0('0xda'),_0x4e1673[_0x20a0('0xdd')]),_0x2761e2[_0x20a0('0xc2')],_0x2761e2['activeContact']);}}break;case'18':_0x4e1673[_0x20a0('0x45')]+=0x1;_0x2761e2['countmachineretry']+=0x1;_0x2761e2[_0x20a0('0x9b')]=ut['totalGlobal'](_0x2761e2);ut[_0x20a0('0x90')](_0x2761e2,0x12,_0x1d4a19[_0x20a0('0xde')]||_0x1d4a19[_0x20a0('0xdf')]);ami['emit']('custom:amd',ut[_0x20a0('0xae')](_0x2761e2,'amd'));rpcDb['createCustomerHistory'](_0x2761e2,_0x20a0('0xe0'));if(ut['totalGlobal'](_0x2761e2)>=_0x4e1673[_0x20a0('0x9f')]){_0x4e4d79=ut[_0x20a0('0xa0')](_0x2761e2,0xf,_0x20a0('0xa1'));rpcDb['createCustomerFinal'](_0x4e4d79,'[callProgressDetectingCustomer][hangupInAMD]');}else{rpcDb['createCustomerFinal'](_0x2761e2,_0x20a0('0xe0'));}delete this['actions'][_0x1d4a19[_0x20a0('0xba')]];break;case'19':_0x4e1673[_0x20a0('0x45')]+=0x1;_0x2761e2[_0x20a0('0x9b')]=ut[_0x20a0('0x9e')](_0x2761e2);ut[_0x20a0('0x90')](_0x2761e2,0x13,_0x1d4a19[_0x20a0('0xde')]||_0x1d4a19[_0x20a0('0xdf')]);ami[_0x20a0('0x23')](_0x20a0('0xe1'),ut['buildObj'](_0x2761e2,_0x20a0('0xe2')));rpcDb[_0x20a0('0x8f')](_0x2761e2,_0x20a0('0xe3'));if(ut[_0x20a0('0x9e')](_0x2761e2)>=_0x4e1673[_0x20a0('0x9f')]){_0x4e4d79=ut[_0x20a0('0xa0')](_0x2761e2,0xf,_0x20a0('0xa1'));rpcDb['createCustomerFinal'](_0x4e4d79,_0x20a0('0xe3'));}else{rpcDb[_0x20a0('0x92')](_0x2761e2,_0x20a0('0xe3'));}delete this[_0x20a0('0x15')][_0x1d4a19[_0x20a0('0xba')]];break;default:if(_0x2761e2[_0x20a0('0x73')]){ut['decrementTalkink'](_0x4e1673,_0x20a0('0xe4'));ut[_0x20a0('0x7d')](_0x20a0('0xe5')+_0x4e1673[_0x20a0('0x25')],_0x1d4a19);}_0x4e1673[_0x20a0('0x45')]+=0x1;_0x2761e2[_0x20a0('0x9b')]=ut[_0x20a0('0x9e')](_0x2761e2);ut[_0x20a0('0x90')](_0x2761e2,0xc,_0x1d4a19[_0x20a0('0xde')]||_0x1d4a19['dialstatus']);rpcDb[_0x20a0('0x8f')](_0x2761e2,_0x20a0('0xe6'));if(ut[_0x20a0('0x9e')](_0x2761e2)>=_0x4e1673[_0x20a0('0x9f')]){_0x4e4d79=ut[_0x20a0('0xa0')](_0x2761e2,0xf,_0x20a0('0xa1'));rpcDb[_0x20a0('0x92')](_0x4e4d79,_0x20a0('0xe7'));}else{rpcDb['createCustomerFinal'](_0x2761e2,_0x20a0('0xe7'));}delete this[_0x20a0('0x15')][_0x1d4a19['linkedid']];}if(!(_0x2761e2['dialAnswer']&&_0x3e7621==='16')){ut['updateOriginated'](_0x4e1673,'[callProgressDetectingCustomer]');logger[_0x20a0('0x5d')](_0x20a0('0xe8'),_0x2761e2[_0x20a0('0xaa')],_0x20a0('0xab'),_0x4e1673['name'],_0x20a0('0xe9'),_0x4e1673[_0x20a0('0x51')]);}if(_0x3e7621!==_0x20a0('0xa6')){delete this[_0x20a0('0x15')][_0x1d4a19[_0x20a0('0xba')]];delete this['actions'][_0x1d4a19[_0x20a0('0xea')]];}}};Preview[_0x20a0('0xe')][_0x20a0('0xeb')]=function(_0x5873d2,_0x5e127,_0x4a82ac){if(_[_0x20a0('0xec')](_0x5e127)&&'object'!==typeof _0x5e127){return;}if(_[_0x20a0('0xec')](_0x4a82ac)&&_0x20a0('0xed')!==typeof _0x4a82ac){return;}switch(_0x4a82ac[_0x20a0('0xee')]){case'0':ut['logAgent'](_0x5873d2,0x0,_0x20a0('0xef'));rpcDb['createAgentHistory'](_0x5873d2,'[callProgressDetectingAgent][logNoSuch]');break;case'3':ut['logAgent'](_0x5873d2,0x3,_0x20a0('0xf0'));rpcDb[_0x20a0('0xf1')](_0x5873d2,_0x20a0('0xf2'));break;case'5':ut[_0x20a0('0xf3')](_0x5873d2,0x5,_0x20a0('0xbd'));rpcDb[_0x20a0('0xf1')](_0x5873d2,_0x20a0('0xf4'));break;case'8':ut['logAgent'](_0x5873d2,0x8,_0x20a0('0xcc'));rpcDb['createAgentHistory'](_0x5873d2,_0x20a0('0xf5'));break;case'22':ut[_0x20a0('0xf3')](_0x5873d2,0x16,_0x20a0('0xf6'));rpcDb['createAgentHistory'](_0x5873d2,_0x20a0('0xf7'));break;default:ut[_0x20a0('0xf3')](_0x5873d2,0xc,_0x4a82ac[_0x20a0('0xee')]);rpcDb['createAgentHistory'](_0x5873d2,_0x20a0('0xf5'));}ut[_0x20a0('0x7a')](_0x5e127,_0x20a0('0xf8'));logger['info'](_0x20a0('0xf9'),_0x5873d2['uniqueid'],_0x20a0('0xab'),_0x5e127['name'],_0x20a0('0xe9'),_0x5e127[_0x20a0('0x51')]);delete this[_0x20a0('0x15')][_0x5873d2[_0x20a0('0xaa')]];};Preview[_0x20a0('0xe')]['checkInBlack']=function(_0x1cd387,_0x8b5ee2,_0x4204d7,_0xb8b926,_0x380ea8){var _0x611e0e=this;return new BPromise(function(_0x5d964c,_0x52b73b){if(_[_0x20a0('0x70')](_0x8b5ee2)||_['isNil'](_0x8b5ee2[_0x20a0('0xfa')])||_['isNil'](_0x8b5ee2[_0x20a0('0xfa')]['phone'])||_[_0x20a0('0x70')](_0x8b5ee2[_0x20a0('0x75')])){_0x52b73b(ut['message']('Contact\x20is\x20undefined',_0xb8b926,_0x380ea8));return;}var _0x3b4a81=uuid['v4']();var _0x5ad7d5=_0x611e0e[_0x20a0('0x12')][_0x8b5ee2['Queue'][_0x20a0('0x25')]];var _0x2cdd4f=_0x4204d7?_0x611e0e['agents'][_0x4204d7]['id']:undefined;_0x611e0e['actions'][_0x3b4a81]=new Action(_0x8b5ee2,_0x5ad7d5,_0x3b4a81,_0x4204d7,_0x2cdd4f);var _0x504fbf=_0x611e0e[_0x20a0('0x15')][_0x3b4a81];_0x504fbf[_0x20a0('0xc2')]=_0xb8b926;_0x504fbf[_0x20a0('0xa5')]=_0x380ea8;_0x504fbf['lookAgent']=_0x4204d7;if(_[_0x20a0('0xfb')](_0x1cd387)){_0x611e0e[_0x20a0('0xfc')](_0x504fbf,_0x5ad7d5,_0x8b5ee2,_0x4204d7)['then'](function(_0x1d2ebb){logger['info'](_0x20a0('0xfd'),'Queue:\x20'+_0x504fbf[_0x20a0('0x72')]+_0x20a0('0xfe')+_0x504fbf['idContact'],JSON[_0x20a0('0x5b')](_0x1d2ebb));ami['emit'](_0x20a0('0xff'),ut[_0x20a0('0xae')](_0x504fbf,_0x20a0('0x100'),_0x611e0e['campaignsPreview'][_0x504fbf[_0x20a0('0x72')]]));_0x5d964c(ut[_0x20a0('0x64')](_0x20a0('0x101')));})[_0x20a0('0x79')](function(_0x1955d9){ut[_0x20a0('0x66')](_0x20a0('0x102'),_0x1955d9);_0x52b73b(ut[_0x20a0('0x64')](_0x20a0('0x103'),_0xb8b926,_0x380ea8));});}else{_0x5ad7d5[_0x20a0('0x3a')]+=0x1;ut[_0x20a0('0x104')](_0x504fbf);rpcDb['createHistory'](_0x504fbf,_0x20a0('0x105'));delete _0x611e0e[_0x20a0('0x15')][_0x3b4a81];_0x52b73b(ut['message'](_0x20a0('0x106'),_0xb8b926,_0x380ea8));}});};Preview[_0x20a0('0xe')][_0x20a0('0x96')]=function(_0x11886f){return!_[_0x20a0('0x70')](_0x11886f)&&!_[_0x20a0('0x70')](_0x11886f[_0x20a0('0x25')])&&!_[_0x20a0('0x70')](_0x11886f[_0x20a0('0x58')])&&_0x11886f[_0x20a0('0x58')]&&!_[_0x20a0('0x70')](this[_0x20a0('0x14')][util[_0x20a0('0x5f')](_0x20a0('0x107'),_0x11886f[_0x20a0('0x25')])])&&!_[_0x20a0('0x70')](this['trunks'][util[_0x20a0('0x5f')](_0x20a0('0x107'),_0x11886f[_0x20a0('0x25')])][_0x20a0('0x108')])&&(this[_0x20a0('0x14')][util[_0x20a0('0x5f')]('SIP/%s',_0x11886f[_0x20a0('0x25')])][_0x20a0('0x108')]===_0x20a0('0x109')||this[_0x20a0('0x14')][util[_0x20a0('0x5f')](_0x20a0('0x107'),_0x11886f[_0x20a0('0x25')])]['status']===_0x20a0('0x10a'));};Preview[_0x20a0('0xe')][_0x20a0('0x88')]=function(_0x84b295,_0x47da9a){var _0x11abd2=this;return new BPromise(function(_0x25a412,_0x47ca77){_0x11abd2[_0x20a0('0x10b')](_0x84b295,_0x47da9a)[_0x20a0('0x82')](function(_0x495561){_0x25a412(_[_0x20a0('0x10c')](_0x495561,[_0x20a0('0x64')]));})[_0x20a0('0x79')](function(_0x36f2a6){if(_0x36f2a6[_0x20a0('0x10d')]){rpcDb[_0x20a0('0x10e')](_0x84b295);}if(_0x36f2a6[_0x20a0('0x58')]){rpcDb[_0x20a0('0x8b')](_0x84b295);}_0x47ca77(_[_0x20a0('0x10c')](_0x36f2a6,['message']));});});};Preview[_0x20a0('0xe')][_0x20a0('0x10b')]=function(_0x4afd3c,_0x46e0d9){var _0x459972=this;return new BPromise(function(_0x4d1f0f,_0x44179c){var _0x3cb45e,_0x59e4c0;rpcDb[_0x20a0('0x10f')](_0x4afd3c)[_0x20a0('0x82')](function(_0x43d6cc){if(!_['isNil'](_0x43d6cc[0x0])){_0x59e4c0=_0x43d6cc[0x0][_0x20a0('0x110')]?![]:!![];_0x3cb45e=_0x43d6cc[0x0][_0x20a0('0x110')]?!![]:![];_0x3cb45e=_0x46e0d9?!![]:_0x3cb45e;}var _0x2c6648=_0x459972[_0x20a0('0x111')](_0x43d6cc);if(_0x2c6648[_0x20a0('0x112')]){rpcDb['checkIsBlackList'](_[_0x20a0('0x10c')](_0x43d6cc[0x0],[_0x20a0('0x75'),'Contact.phone']))[_0x20a0('0x82')](function(_0x503bf4){_0x459972[_0x20a0('0x113')](_0x503bf4,_0x43d6cc[0x0],_0x46e0d9,_0x59e4c0,_0x3cb45e)[_0x20a0('0x82')](function(_0x91f655){_0x4d1f0f(_0x91f655);})['catch'](function(_0x497880){_0x44179c(_0x497880);});})[_0x20a0('0x79')](function(_0x3d3822){ut['logger'](_0x20a0('0x114'),_0x3d3822);_0x44179c(ut[_0x20a0('0x64')](_0x20a0('0x115'),_0x59e4c0,_0x3cb45e));});}else{_0x44179c(ut[_0x20a0('0x64')](_0x2c6648[_0x20a0('0x64')],_0x59e4c0,_0x3cb45e));}})[_0x20a0('0x79')](function(_0x544403){ut[_0x20a0('0x66')](_0x20a0('0x116'),_0x544403);_0x44179c(ut[_0x20a0('0x64')](_0x20a0('0x115'),![],!![]));});});};Preview[_0x20a0('0xe')][_0x20a0('0x111')]=function(_0x1ca6fb){if(_[_0x20a0('0x70')](_0x1ca6fb)||_[_0x20a0('0xfb')](_0x1ca6fb)||!_[_0x20a0('0x70')](_0x1ca6fb[0x0][_0x20a0('0x86')])&&_['isNil'](_0x1ca6fb[0x0]['Agent'][_0x20a0('0x25')])){ut[_0x20a0('0x66')](_0x20a0('0x117'),_0x1ca6fb);return{'isValid':![],'message':_0x20a0('0x118')};}var _0x5d113f=this[_0x20a0('0x12')][_0x1ca6fb[0x0]['Queue'][_0x20a0('0x25')]];_0x5d113f[_0x20a0('0x64')]='ACTIVE';if(_[_0x20a0('0x70')](_0x5d113f)){ut['logger'](_0x20a0('0x119'),_0x5d113f);return{'isValid':![],'message':_0x20a0('0x11a')};}if(!this[_0x20a0('0x96')](_0x5d113f[_0x20a0('0x57')])){ut[_0x20a0('0x66')](_0x20a0('0x11b'),_0x20a0('0x11c')+_0x5d113f[_0x20a0('0x25')]+_0x20a0('0x11d'));if(!this[_0x20a0('0x96')](_0x5d113f['TrunkBackup'])){ut['logger'](_0x20a0('0x11b'),_0x5d113f[_0x20a0('0x25')]+_0x20a0('0x11e'));return{'isValid':![],'message':_0x20a0('0x11f')};}}if(!ut[_0x20a0('0x95')](_0x5d113f[_0x20a0('0x33')])){ut[_0x20a0('0x66')](_0x20a0('0x120'),_0x5d113f[_0x20a0('0x25')]+_0x20a0('0x121'));return{'isValid':![],'message':'campaign\x20Name:\x20'+_0x5d113f[_0x20a0('0x25')]+'\x20Not\x20Active'};}return{'isValid':!![],'message':_0x20a0('0x122')};};Preview['prototype']['execCall']=function(_0x43747e,_0xa2c82a,_0x1e680e,_0x303a1e){var _0x202666=this;return new BPromise(function(_0x4b556f,_0x4ca603){var _0x1d7f25=_0x43747e[_0x20a0('0xaa')];var _0x835edf=_0x202666['isTrunkReachable'](_0xa2c82a['Trunk'])?util['format'](_0x20a0('0x123'),_0xa2c82a['Trunk'][_0x20a0('0x25')],_['isNil'](_0xa2c82a[_0x20a0('0x38')])?'':_0xa2c82a[_0x20a0('0x38')][_0x20a0('0x124')]()||'',_0xa2c82a[_0x20a0('0x125')]>0x0?_0x1e680e[_0x20a0('0xfa')][_0x20a0('0x126')][_0x20a0('0x127')](_0xa2c82a[_0x20a0('0x125')]):_0x1e680e[_0x20a0('0xfa')][_0x20a0('0x126')]):util['format']('SIP/%s/%s%s',_[_0x20a0('0x70')](_0xa2c82a[_0x20a0('0x97')])?_0xa2c82a[_0x20a0('0x57')][_0x20a0('0x25')]:_0xa2c82a['TrunkBackup'][_0x20a0('0x25')],_[_0x20a0('0x70')](_0xa2c82a['dialPrefix'])?'':_0xa2c82a[_0x20a0('0x38')]['trim']()||'',_0xa2c82a[_0x20a0('0x125')]>0x0?_0x1e680e[_0x20a0('0xfa')][_0x20a0('0x126')]['substring'](_0xa2c82a[_0x20a0('0x125')]):_0x1e680e['Contact'][_0x20a0('0x126')]);var _0x46df6e=_0x202666[_0x20a0('0x96')](_0xa2c82a['Trunk'])?ut[_0x20a0('0x128')](_0xa2c82a['Trunk'][_0x20a0('0x59')],_0xa2c82a[_0x20a0('0x35')],_0xa2c82a[_0x20a0('0x129')]>0x0?ut[_0x20a0('0x12a')](_0xa2c82a[_0x20a0('0x36')],_0xa2c82a[_0x20a0('0x129')]):_0xa2c82a[_0x20a0('0x36')]):ut[_0x20a0('0x128')](_['isNil'](_0xa2c82a[_0x20a0('0x97')])?_0xa2c82a[_0x20a0('0x57')][_0x20a0('0x59')]:_0xa2c82a[_0x20a0('0x97')][_0x20a0('0x59')],_0xa2c82a[_0x20a0('0x35')],_0xa2c82a[_0x20a0('0x129')]>0x0?ut[_0x20a0('0x12a')](_0xa2c82a[_0x20a0('0x36')],_0xa2c82a['dialRandomLastDigitCallerIdNumber']):_0xa2c82a[_0x20a0('0x36')]);if(_0x46df6e){_0x43747e[_0x20a0('0x12b')]=ut[_0x20a0('0x12c')](_0x46df6e);_0x43747e[_0x20a0('0x12d')]=ut['extractCalleridNumber'](_0x46df6e);}var _0x23c70=ut[_0x20a0('0x12e')](_0xa2c82a,_0x1e680e,_0x835edf,_0x46df6e,_0x1d7f25,_0x43747e);_[_0x20a0('0x12f')](_0x43747e,ut[_0x20a0('0x130')](_0x23c70));_0x43747e[_0x20a0('0x131')]=moment()[_0x20a0('0x5f')](_0x20a0('0xa7'));ami[_0x20a0('0x77')](ut[_0x20a0('0x132')](_0x43747e,_0xa2c82a,_0x23c70,_0x43747e[_0x20a0('0xa5')],_0x303a1e))[_0x20a0('0x82')](function(_0x41ab47){var _0x3169c3=_0x43747e[_0x20a0('0x133')];if(!_[_0x20a0('0x70')](_0x3169c3)){if(!_[_0x20a0('0x70')](_0x202666[_0x20a0('0x16')][_0x3169c3])){_0x202666[_0x20a0('0x16')][_0x3169c3][_0x20a0('0x134')]=_0x43747e[_0x20a0('0x135')];emit(util['format'](_0x20a0('0x136'),_0x202666[_0x20a0('0x16')][_0x3169c3][_0x20a0('0x25')]),_0x20a0('0x137'),{'destaccountcode':_0x202666[_0x20a0('0x16')][_0x3169c3][_0x20a0('0x138')],'destconnectedlinenum':_0x43747e[_0x20a0('0x135')]});}}_0xa2c82a[_0x20a0('0x51')]+=0x1;logger[_0x20a0('0x5d')](_0x20a0('0x139'),_0x1d7f25,_0x20a0('0xab'),_0xa2c82a[_0x20a0('0x25')],_0x20a0('0xe9'),_0xa2c82a['originated']);_0x4b556f(_0x41ab47);})[_0x20a0('0x79')](function(_0x231df8){ut[_0x20a0('0xf3')](_0x43747e,0xe,_0x20a0('0x13a'));rpcDb[_0x20a0('0xf1')](_0x43747e,'[originateFailure][logOriginateFailure]');_0x4ca603(_0x231df8);});});};Preview['prototype'][_0x20a0('0x13b')]=function(_0x18cd82){if(this[_0x20a0('0x15')][_0x18cd82[_0x20a0('0xba')]]){this[_0x20a0('0x15')][_0x18cd82[_0x20a0('0xba')]][_0x20a0('0x78')]=_0x18cd82[_0x20a0('0x78')];}};Preview[_0x20a0('0xe')][_0x20a0('0x13c')]=function(_0x4d634d){var _0x116f43=this;var _0x2c9764=this[_0x20a0('0x15')][_0x4d634d[_0x20a0('0x13d')]];if(_0x2c9764){if(_0x2c9764[_0x20a0('0x13e')]&&this['agents'][_0x2c9764[_0x20a0('0x13e')]]){ut[_0x20a0('0x13f')](_0x2c9764,this[_0x20a0('0x16')][_0x2c9764[_0x20a0('0x13e')]][_0x20a0('0x25')],this[_0x20a0('0x16')][_0x2c9764[_0x20a0('0x13e')]]['id']);}var _0x1f03d6=_[_0x20a0('0x140')](_0x2c9764);_0x1f03d6[_0x20a0('0xa8')]=moment()[_0x20a0('0x5f')](_0x20a0('0xa7'));var _0x28439d=_0x116f43[_0x20a0('0x12')][_0x2c9764['queue']];if(ut[_0x20a0('0x141')](_0x4d634d[_0x20a0('0x142')])){if(_0x2c9764[_0x20a0('0xc2')]){rpcDb[_0x20a0('0x10e')](_0x2c9764[_0x20a0('0x143')]);}if(_0x2c9764[_0x20a0('0xa5')]){rpcDb[_0x20a0('0x8b')](_0x2c9764[_0x20a0('0x143')]);}ami[_0x20a0('0x23')](_0x20a0('0x144'),ut['buildObj'](_0x2c9764,'rejected',this[_0x20a0('0x12')][_0x2c9764['queue']]));this[_0x20a0('0xeb')](_0x1f03d6,_0x28439d,_0x4d634d);}else{_0x2c9764[_0x20a0('0x131')]=moment()[_0x20a0('0x5f')](_0x20a0('0xa7'));ut[_0x20a0('0xf3')](_0x1f03d6,0x4,_0x20a0('0xb5'));rpcDb['createAgentHistory'](_0x1f03d6,_0x20a0('0x145'));}}};Preview[_0x20a0('0xe')][_0x20a0('0x146')]=function(_0x336b1e){var _0x5536ea=this;var _0x50be71=this['actions'][_0x336b1e[_0x20a0('0xba')]];var _0x300309;if(_0x50be71){_0x300309=this[_0x20a0('0x12')][_0x50be71[_0x20a0('0x72')]];logger[_0x20a0('0x5d')](_0x20a0('0x147'),_0x336b1e[_0x20a0('0xba')],'\x20Queue',_0x300309[_0x20a0('0x25')],_0x20a0('0xac'),_0x300309[_0x20a0('0x2a')]);}if(this['actions'][_0x336b1e['linkedid']]&&_0x336b1e['linkedid']!==_0x336b1e['uniqueid']){if(_0x336b1e[_0x20a0('0x148')]==='16'&&this['actions'][_0x336b1e[_0x20a0('0xba')]][_0x20a0('0x73')]){this[_0x20a0('0x99')](_0x336b1e,_0x336b1e['linkedid'],_0x336b1e[_0x20a0('0x148')]);}else if(this[_0x20a0('0x15')][_0x336b1e[_0x20a0('0xba')]]['dialAnswer']){logger['info'](_0x20a0('0x149'),_0x336b1e[_0x20a0('0xba')],_0x336b1e[_0x20a0('0x148')],_0x20a0('0xab'),_0x300309[_0x20a0('0x25')],_0x20a0('0xac'),_0x300309[_0x20a0('0x2a')]);this['callProgressDetectingCustomer'](_0x336b1e,_0x336b1e[_0x20a0('0xba')],_0x336b1e[_0x20a0('0x148')]);}}else if(_0x50be71&&_[_0x20a0('0x70')](_0x50be71['statedesc'])&&_0x300309['dialQueueProject']&&_0x336b1e[_0x20a0('0xba')]===_0x336b1e[_0x20a0('0xaa')]&&_[_0x20a0('0x70')](_0x336b1e[_0x20a0('0xee')])&&_0x336b1e[_0x20a0('0x148')]==='16'&&_0x336b1e[_0x20a0('0x14a')]==='6'&&_[_0x20a0('0xec')](_0x50be71['transfer'])){if(_0x50be71[_0x20a0('0xc2')]){rpcDb[_0x20a0('0x10e')](_0x50be71[_0x20a0('0x143')]);}if(_0x50be71['activeContact']){rpcDb[_0x20a0('0x8b')](_0x50be71[_0x20a0('0x143')]);}_0x336b1e[_0x20a0('0xee')]='22';this[_0x20a0('0xeb')](_0x50be71,_0x300309,_0x336b1e);}else if(_0x50be71&&_0x50be71[_0x20a0('0x14b')]){if(_0x336b1e[_0x20a0('0x148')]==='16'&&this['actions'][_0x336b1e['linkedid']]['dialAnswer']){logger[_0x20a0('0x5d')]('[syncHangup][talking][transfer]',_0x336b1e[_0x20a0('0xba')],_0x336b1e[_0x20a0('0x148')],_0x20a0('0xab'),_0x300309['name'],'pTalking:\x20',_0x300309[_0x20a0('0x2a')]);this[_0x20a0('0x99')](_0x336b1e,_0x336b1e[_0x20a0('0xba')],_0x336b1e[_0x20a0('0x148')]);}else if(this[_0x20a0('0x15')][_0x336b1e[_0x20a0('0xba')]]['dialAnswer']){logger[_0x20a0('0x5d')](_0x20a0('0x149'),_0x336b1e[_0x20a0('0xba')],_0x336b1e['cause'],_0x20a0('0xab'),_0x300309[_0x20a0('0x25')],_0x20a0('0xac'),_0x300309[_0x20a0('0x2a')]);this[_0x20a0('0x99')](_0x336b1e,_0x336b1e[_0x20a0('0xba')],_0x336b1e[_0x20a0('0x148')]);}}};Preview['prototype'][_0x20a0('0x14c')]=function(_0x1d72c3){if(this['actions'][_0x1d72c3[_0x20a0('0xea')]]&&_0x1d72c3[_0x20a0('0xea')]!==_0x1d72c3[_0x20a0('0x14d')]){this['callProgressDetectingCustomer'](_0x1d72c3,_0x1d72c3['destlinkedid'],_0x1d72c3[_0x20a0('0xdf')]);}};Preview['prototype'][_0x20a0('0x14e')]=function(_0x5d361f){if(this[_0x20a0('0x15')][_0x5d361f[_0x20a0('0xba')]]&&_0x5d361f[_0x20a0('0xba')]!==_0x5d361f[_0x20a0('0xaa')]&&!this[_0x20a0('0x15')][_0x5d361f[_0x20a0('0xba')]][_0x20a0('0x73')]){if(_0x5d361f[_0x20a0('0x148')]==='1'){this[_0x20a0('0x99')](_0x5d361f,_0x5d361f['linkedid'],_0x5d361f['cause']);}}};Preview[_0x20a0('0xe')]['addVariable']=function(_0x48a8dd,_0x2fc482,_0x37af95){if(this[_0x20a0('0x15')][_0x48a8dd]){if(_['isNil'](this[_0x20a0('0x15')][_0x48a8dd]['variables'])){this['actions'][_0x48a8dd]['variables']={};}this[_0x20a0('0x15')][_0x48a8dd][_0x20a0('0x14f')][_0x2fc482]=_0x37af95;}};Preview['prototype'][_0x20a0('0x1d')]=function(_0x41e988){try{if(!_[_0x20a0('0x70')](_0x41e988)){if(ut['filterKey'](_['keys'](_0x41e988['variable'])[0x0])){this[_0x20a0('0x150')](_0x41e988[_0x20a0('0xaa')],_[_0x20a0('0x151')](_0x41e988[_0x20a0('0x152')])[0x0],_0x41e988[_0x20a0('0x153')]);}}}catch(_0xce72ac){logger[_0x20a0('0x154')](_0x20a0('0x155'),util[_0x20a0('0x156')](_0xce72ac,{'showHidden':![],'depth':null}));}};Preview['prototype'][_0x20a0('0x1f')]=function(_0x2f938){if(_0x2f938){if(this[_0x20a0('0x15')][_0x2f938[_0x20a0('0x157')]]){this[_0x20a0('0x15')][_0x2f938[_0x20a0('0x157')]][_0x20a0('0x14b')]=!![];}}};Preview[_0x20a0('0xe')]['syncBlindTransfer']=function(_0x399d44){if(_0x399d44){if(this[_0x20a0('0x15')][_0x399d44['transfererlinkedid']]){this[_0x20a0('0x15')][_0x399d44[_0x20a0('0x158')]][_0x20a0('0x14b')]=!![];}}};module[_0x20a0('0x159')]=Preview;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc499=['endtime','connectedlinename','membername','context','from-sip','xcally-motion-preview','assigned','lastAssignedTo','COMPLETED','create','[voiceQueueReport]\x20','getContactRecallMe','[rescheduleContactInQueue]\x20','../../../config/logger','preview','../rpc/cmHopper','../rpc/cmHopperFinal','../rpc/cmHopperHistory','../rpc/cmHopperBlack','../rpc/voiceQueueRt','../rpc/agentReportPreview','../rpc/voiceQueueReport','inspect','resolve','createHistory','catch','[createHistory]\x20','then','moveContactManagedDialer','[moveContactManagedDialer]\x20','checkIsBlackList','[checkIsBlackList]\x20','getContactPreview','[getContactPreview]\x20','createAgentHistory','createCustomerFinal','rescheduleContact','UserId','active','[rescheduleContact]\x20','countReScheduled','[countReScheduled]\x20','unlockContact','[unlockContact]\x20','disableContact','[activeContact]\x20','crateCustomerReportQueue','type','uniqueid','calleridnum','calleridname','queue','queuecallerjoinAt','queuecallerleaveAt','answertime','queuecallercomplete','queuecallercompleteAt'];(function(_0x495d71,_0x6d26d6){var _0x46c17b=function(_0x560057){while(--_0x560057){_0x495d71['push'](_0x495d71['shift']());}};_0x46c17b(++_0x6d26d6);}(_0xc499,0x19c));var _0x9c49=function(_0x309f89,_0x4dcee4){_0x309f89=_0x309f89-0x0;var _0xbbbf35=_0xc499[_0x309f89];return _0xbbbf35;};'use strict';var util=require('util');var BPromise=require('bluebird');var logger=require(_0x9c49('0x0'))(_0x9c49('0x1'));var _=require('lodash');var cmHopper=require(_0x9c49('0x2'));var cmHopperFinal=require(_0x9c49('0x3'));var cmHopperHistory=require(_0x9c49('0x4'));var cmHopperBlack=require(_0x9c49('0x5'));var voiceQueueRt=require(_0x9c49('0x6'));var agentReportPreview=require(_0x9c49('0x7'));var voiceQueueReport=require(_0x9c49('0x8'));function loggerCatch(_0x26e13d){return function(_0x48dac2){logger['error'](_0x26e13d,util[_0x9c49('0x9')](_0x48dac2,{'showHidden':![],'depth':null}));};}function create(_0x4227ff){return BPromise[_0x9c49('0xa')]()['then'](cmHopperHistory[_0x9c49('0xb')](_0x4227ff))[_0x9c49('0xc')](loggerCatch(_0x9c49('0xd')));}function createAgent(_0x277b81){return BPromise[_0x9c49('0xa')]()[_0x9c49('0xe')](agentReportPreview[_0x9c49('0xb')](_0x277b81))['catch'](loggerCatch(_0x9c49('0xd')));}function moveContact(_0x41d652){return BPromise['resolve']()['then'](cmHopper[_0x9c49('0xf')](_0x41d652,!![]))[_0x9c49('0xc')](loggerCatch(_0x9c49('0x10')));}exports[_0x9c49('0x11')]=function(_0x12dbcd){return BPromise[_0x9c49('0xa')]()[_0x9c49('0xe')](cmHopperBlack['checkIsBlackList'](_0x12dbcd))[_0x9c49('0xc')](loggerCatch(_0x9c49('0x12')));};exports[_0x9c49('0x13')]=function(_0x3b11e8){return BPromise[_0x9c49('0xa')]()['then'](cmHopper[_0x9c49('0x13')](_0x3b11e8))[_0x9c49('0xc')](loggerCatch(_0x9c49('0x14')));};exports[_0x9c49('0xb')]=function(_0x48a5e6,_0x1252f2){create(_0x48a5e6)[_0x9c49('0xc')](loggerCatch(_0x1252f2));moveContact(_0x48a5e6)[_0x9c49('0xc')](loggerCatch(_0x1252f2));};exports[_0x9c49('0x15')]=function(_0x409427,_0xf086f4){createAgent(_0x409427)['catch'](loggerCatch(_0xf086f4));};exports['createCustomerHistory']=function(_0x48ff19,_0x75342a){create(_0x48ff19)[_0x9c49('0xc')](loggerCatch(_0x75342a));};exports[_0x9c49('0x16')]=function(_0x58d323,_0x5b27a3){moveContact(_0x58d323)[_0x9c49('0xc')](loggerCatch(_0x5b27a3));};exports[_0x9c49('0x17')]=function(_0x38e92d,_0x3ee408,_0x3564d7){if(_0x3ee408){_0x38e92d[_0x9c49('0x18')]=null;}if(_0x3564d7){_0x38e92d[_0x9c49('0x19')]=![];}return BPromise[_0x9c49('0xa')]()[_0x9c49('0xe')](cmHopper[_0x9c49('0x17')](_0x38e92d))[_0x9c49('0xc')](loggerCatch(_0x9c49('0x1a')));};exports[_0x9c49('0x1b')]=function(_0x5e2bdf){return BPromise[_0x9c49('0xa')]()['then'](cmHopper[_0x9c49('0x1b')](_0x5e2bdf))[_0x9c49('0xc')](loggerCatch(_0x9c49('0x1c')));};exports['unlockContact']=function(_0x47f044){return BPromise[_0x9c49('0xa')]()[_0x9c49('0xe')](cmHopper[_0x9c49('0x1d')]({'UserId':null},_0x47f044,0x1))[_0x9c49('0xc')](loggerCatch(_0x9c49('0x1e')));};exports[_0x9c49('0x1f')]=function(_0x16641c){return BPromise[_0x9c49('0xa')]()['then'](cmHopper[_0x9c49('0x1d')]({'active':![]},_0x16641c,0x1))[_0x9c49('0xc')](loggerCatch(_0x9c49('0x20')));};exports[_0x9c49('0x21')]=function(_0x196f72){var _0x216d6a={};_0x216d6a[_0x9c49('0x22')]=_0x196f72[_0x9c49('0x22')];_0x216d6a[_0x9c49('0x23')]=_0x196f72[_0x9c49('0x23')];_0x216d6a[_0x9c49('0x24')]=_0x196f72[_0x9c49('0x24')];_0x216d6a[_0x9c49('0x25')]=_0x196f72[_0x9c49('0x25')];_0x216d6a[_0x9c49('0x26')]=_0x196f72[_0x9c49('0x26')];_0x216d6a[_0x9c49('0x27')]=_0x196f72['answertime'];_0x216d6a[_0x9c49('0x28')]=_0x196f72[_0x9c49('0x29')];_0x216d6a[_0x9c49('0x2a')]=0x1;_0x216d6a[_0x9c49('0x2b')]=_0x196f72[_0x9c49('0x2c')];_0x216d6a[_0x9c49('0x2d')]=_0x196f72[_0x9c49('0x2e')];_0x216d6a[_0x9c49('0x2f')]=_0x9c49('0x30');_0x216d6a['exten']=_0x9c49('0x31');_0x216d6a['holdtime']=0x0;_0x216d6a[_0x9c49('0x32')]=0x1;_0x216d6a[_0x9c49('0x33')]=_0x196f72['membername'];_0x216d6a['queuecallerexitreason']=_0x9c49('0x34');return BPromise['resolve']()[_0x9c49('0xe')](voiceQueueReport[_0x9c49('0x35')](_0x216d6a))[_0x9c49('0xc')](loggerCatch(_0x9c49('0x36')));};exports[_0x9c49('0x37')]=function(_0x57e303,_0xcdb4e1){return BPromise['resolve']()['then'](cmHopper[_0x9c49('0x37')](_0x57e303,_0xcdb4e1))[_0x9c49('0xc')](loggerCatch('[GetContactRecallMe]\x20'));};exports['rescheduleContactInQueue']=function(_0x322e06){return BPromise['resolve']()[_0x9c49('0xe')](cmHopper[_0x9c49('0x17')](_0x322e06,!![],!![]))[_0x9c49('0xc')](loggerCatch(_0x9c49('0x38')));};
\ No newline at end of file
+var _0x8051=['rescheduleContact','UserId','[rescheduleContact]\x20','countReScheduled','[countReScheduled]\x20','unlockContact','[activeContact]\x20','crateCustomerReportQueue','type','uniqueid','calleridnum','calleridname','queue','queuecallerjoinAt','answertime','queuecallerleaveAt','queuecallercompleteAt','connectedlinename','membername','context','from-sip','exten','xcally-motion-preview','holdtime','assigned','lastAssignedTo','queuecallerexitreason','[voiceQueueReport]\x20','getContactRecallMe','[GetContactRecallMe]\x20','rescheduleContactInQueue','[rescheduleContactInQueue]\x20','bluebird','../../../config/logger','preview','lodash','../rpc/cmHopperFinal','../rpc/cmHopperHistory','../rpc/cmHopperBlack','../rpc/agentReportPreview','../rpc/voiceQueueReport','error','resolve','createHistory','catch','[createHistory]\x20','then','moveContactManagedDialer','[moveContactManagedDialer]\x20','checkIsBlackList','[checkIsBlackList]\x20','getContactPreview','[getContactPreview]\x20','createAgentHistory','createCustomerHistory','createCustomerFinal'];(function(_0x19950b,_0x53d0d7){var _0x3c6b41=function(_0x3924ad){while(--_0x3924ad){_0x19950b['push'](_0x19950b['shift']());}};_0x3c6b41(++_0x53d0d7);}(_0x8051,0xc8));var _0x1805=function(_0x1cc104,_0x4e5e6e){_0x1cc104=_0x1cc104-0x0;var _0x235c2b=_0x8051[_0x1cc104];return _0x235c2b;};'use strict';var util=require('util');var BPromise=require(_0x1805('0x0'));var logger=require(_0x1805('0x1'))(_0x1805('0x2'));var _=require(_0x1805('0x3'));var cmHopper=require('../rpc/cmHopper');var cmHopperFinal=require(_0x1805('0x4'));var cmHopperHistory=require(_0x1805('0x5'));var cmHopperBlack=require(_0x1805('0x6'));var voiceQueueRt=require('../rpc/voiceQueueRt');var agentReportPreview=require(_0x1805('0x7'));var voiceQueueReport=require(_0x1805('0x8'));function loggerCatch(_0x1d4fbb){return function(_0xe75db6){logger[_0x1805('0x9')](_0x1d4fbb,util['inspect'](_0xe75db6,{'showHidden':![],'depth':null}));};}function create(_0x1c499a){return BPromise[_0x1805('0xa')]()['then'](cmHopperHistory[_0x1805('0xb')](_0x1c499a))[_0x1805('0xc')](loggerCatch(_0x1805('0xd')));}function createAgent(_0x335c04){return BPromise[_0x1805('0xa')]()[_0x1805('0xe')](agentReportPreview[_0x1805('0xb')](_0x335c04))[_0x1805('0xc')](loggerCatch('[createHistory]\x20'));}function moveContact(_0x223d40){return BPromise[_0x1805('0xa')]()['then'](cmHopper[_0x1805('0xf')](_0x223d40,!![]))[_0x1805('0xc')](loggerCatch(_0x1805('0x10')));}exports[_0x1805('0x11')]=function(_0x11b34c){return BPromise[_0x1805('0xa')]()[_0x1805('0xe')](cmHopperBlack['checkIsBlackList'](_0x11b34c))['catch'](loggerCatch(_0x1805('0x12')));};exports[_0x1805('0x13')]=function(_0x40236a){return BPromise[_0x1805('0xa')]()[_0x1805('0xe')](cmHopper['getContactPreview'](_0x40236a))['catch'](loggerCatch(_0x1805('0x14')));};exports['createHistory']=function(_0x56c1ee,_0x176523){create(_0x56c1ee)['catch'](loggerCatch(_0x176523));moveContact(_0x56c1ee)[_0x1805('0xc')](loggerCatch(_0x176523));};exports[_0x1805('0x15')]=function(_0xfc90a5,_0x51f7ce){createAgent(_0xfc90a5)[_0x1805('0xc')](loggerCatch(_0x51f7ce));};exports[_0x1805('0x16')]=function(_0x35e45d,_0x3af6b2){create(_0x35e45d)[_0x1805('0xc')](loggerCatch(_0x3af6b2));};exports[_0x1805('0x17')]=function(_0x4c8c6e,_0x1165e5){moveContact(_0x4c8c6e)['catch'](loggerCatch(_0x1165e5));};exports[_0x1805('0x18')]=function(_0x589d52,_0x481f3b,_0x27f75){if(_0x481f3b){_0x589d52[_0x1805('0x19')]=null;}if(_0x27f75){_0x589d52['active']=![];}return BPromise[_0x1805('0xa')]()[_0x1805('0xe')](cmHopper[_0x1805('0x18')](_0x589d52))[_0x1805('0xc')](loggerCatch(_0x1805('0x1a')));};exports[_0x1805('0x1b')]=function(_0x4cd158){return BPromise[_0x1805('0xa')]()[_0x1805('0xe')](cmHopper[_0x1805('0x1b')](_0x4cd158))[_0x1805('0xc')](loggerCatch(_0x1805('0x1c')));};exports[_0x1805('0x1d')]=function(_0x392b3d){return BPromise[_0x1805('0xa')]()[_0x1805('0xe')](cmHopper['unlockContact']({'UserId':null},_0x392b3d,0x1))[_0x1805('0xc')](loggerCatch('[unlockContact]\x20'));};exports['disableContact']=function(_0x515456){return BPromise[_0x1805('0xa')]()[_0x1805('0xe')](cmHopper['unlockContact']({'active':![]},_0x515456,0x1))[_0x1805('0xc')](loggerCatch(_0x1805('0x1e')));};exports[_0x1805('0x1f')]=function(_0x2506e8){var _0x2f904f={};_0x2f904f['type']=_0x2506e8[_0x1805('0x20')];_0x2f904f[_0x1805('0x21')]=_0x2506e8[_0x1805('0x21')];_0x2f904f[_0x1805('0x22')]=_0x2506e8['calleridnum'];_0x2f904f[_0x1805('0x23')]=_0x2506e8[_0x1805('0x23')];_0x2f904f[_0x1805('0x24')]=_0x2506e8[_0x1805('0x24')];_0x2f904f[_0x1805('0x25')]=_0x2506e8[_0x1805('0x26')];_0x2f904f[_0x1805('0x27')]=_0x2506e8[_0x1805('0x26')];_0x2f904f['queuecallercomplete']=0x1;_0x2f904f[_0x1805('0x28')]=_0x2506e8['endtime'];_0x2f904f[_0x1805('0x29')]=_0x2506e8[_0x1805('0x2a')];_0x2f904f[_0x1805('0x2b')]=_0x1805('0x2c');_0x2f904f[_0x1805('0x2d')]=_0x1805('0x2e');_0x2f904f[_0x1805('0x2f')]=0x0;_0x2f904f[_0x1805('0x30')]=0x1;_0x2f904f[_0x1805('0x31')]=_0x2506e8[_0x1805('0x2a')];_0x2f904f[_0x1805('0x32')]='COMPLETED';return BPromise[_0x1805('0xa')]()[_0x1805('0xe')](voiceQueueReport['create'](_0x2f904f))['catch'](loggerCatch(_0x1805('0x33')));};exports[_0x1805('0x34')]=function(_0x12eff2,_0x1966e7){return BPromise[_0x1805('0xa')]()[_0x1805('0xe')](cmHopper['getContactRecallMe'](_0x12eff2,_0x1966e7))['catch'](loggerCatch(_0x1805('0x35')));};exports[_0x1805('0x36')]=function(_0x2c6b1e){return BPromise[_0x1805('0xa')]()[_0x1805('0xe')](cmHopper[_0x1805('0x18')](_0x2c6b1e,!![],!![]))['catch'](loggerCatch(_0x1805('0x37')));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1846=['countbusyretry','countcongestionretry','countnoanswerretry','countagentrejectretry','countnosuchnumberretry','cloneAction','clone','Global','scheduledAt','active','scheduledat','add','minutes','ListId','decrementTalkink','pTalking','[decrementTalkink]\x20object\x20talking\x20is\x20negative','[decrementTalkink]\x20is\x20null\x20or\x20undefined','IsNotLoggedIn','lastevent','name','queue','interface','mandatoryDisposition','buildAcw','agentReadyId','not_inuse','push','getDiff','createBody','CampaignId','type','campaigntype','dialAnswer','callback','callbackuniqueid','callbackat','UserId','sipcallid','xmd-listid','xmd-dialurl','xmd-dialtimeout','xmd-dialoptions','xmd-dialid','xmd-dialchannel','xmd-contactid','xmd-cdrtype','xmd-agiafter','xmd-agi','rtpaudioqos','rtpaudioqosbridged','rtpaudioqosjitter','rtpaudioqosjitterbridged','rtpaudioqosloss','rtpaudioqoslossbridged','rtpaudioqosrtt','rtpaudioqosrttbridged','bridgepvtcallid','\x5cw{0,','pow','replace','random','extractCalleridName','match','util','lodash','../../../../config/logger','preview','XCALLY_IP_AGI','127.0.0.1','milliseconds','diff','seconds','loggerCatch','error','inspect','logger','logger2','info','getCallerId','isEmpty','isUndefined','string','\x22%s\x22\x20<%s>','format','isActive','isNil','Queue','calleridname','calleridnum','ContactId','VoiceQueueId','dialOriginateTimeout','monitor_format','U(xcally-mixmonitor-context)','dialPreviewUrl','dialQueueProject','\x22agi://%s/square,%s\x22','NONE','originatecalleridnum','originatecalleridname','xcally-motion-preview','_XCALLY_MIXMONITOR_FORMAT','Contact','hasOwnProperty','tags','createdAt','updatedAt','%s%s','toUpper','updateOriginated','originated','[updateOriginated]\x20object\x20originated\x20is\x20negative','logBlacklist','YYYY-MM-DD\x20HH:mm:ss','state','statedesc','Blacklist','responsetime','endtime','logAgent','logLookAgent','membername','logCustomer','ringtime','starttime','talktime','answertime','Failure','variablesAction','BOOKED','uniqueid','originate','channelAgent','timeout','totalGlobal'];(function(_0x40a045,_0x516f0e){var _0x1a687c=function(_0x48c9fe){while(--_0x48c9fe){_0x40a045['push'](_0x40a045['shift']());}};_0x1a687c(++_0x516f0e);}(_0x1846,0x1d8));var _0x6184=function(_0x618262,_0x49404d){_0x618262=_0x618262-0x0;var _0x505533=_0x1846[_0x618262];return _0x505533;};'use strict';var util=require(_0x6184('0x0'));var _=require(_0x6184('0x1'));var moment=require('moment');var logger=require(_0x6184('0x2'))(_0x6184('0x3'));var ipAgi=process['env'][_0x6184('0x4')]||_0x6184('0x5');function getSeconds(_0x48b099,_0x1bff2b){var _0x2aa0a1=moment(_0x48b099)[_0x6184('0x6')](0x0);var _0x10469e=moment(_0x1bff2b)[_0x6184('0x6')](0x0);return _0x2aa0a1[_0x6184('0x7')](_0x10469e,_0x6184('0x8'));}exports[_0x6184('0x9')]=function(_0x618fc5){return function(_0x52ffca){logger[_0x6184('0xa')](_0x618fc5,util[_0x6184('0xb')](_0x52ffca,{'showHidden':![],'depth':null}));};};exports[_0x6184('0xc')]=function(_0x41c81d,_0x482c45){logger['info'](_0x41c81d,util[_0x6184('0xb')](_0x482c45,{'showHidden':![],'depth':null}));};exports['loggerError']=function(_0x25a06e,_0x2c993d){logger['error'](_0x25a06e,util[_0x6184('0xb')](_0x2c993d,{'showHidden':![],'depth':null}));};exports[_0x6184('0xd')]=function(_0x12ca93){return function(_0x175467){logger[_0x6184('0xe')](_0x12ca93,util['inspect'](_0x175467,{'showHidden':![],'depth':null}));};};exports['message']=function(_0x521cb8,_0x27cb29,_0x1d4828){return{'message':_0x521cb8,'unlock':_0x27cb29,'active':_0x1d4828};};exports[_0x6184('0xf')]=function(_0x1fb3c7,_0x1dcd78,_0xad5fee){if(!_['isUndefined'](_0xad5fee)&&'string'===typeof _0xad5fee&&!_[_0x6184('0x10')](_0xad5fee)){if(!_[_0x6184('0x11')](_0x1dcd78)&&_0x6184('0x12')===typeof _0x1dcd78&&!_[_0x6184('0x10')](_0x1dcd78)){return util['format'](_0x6184('0x13'),_0x1dcd78,_0xad5fee);}return util[_0x6184('0x14')](_0x6184('0x13'),_0xad5fee,_0xad5fee);}if(!_[_0x6184('0x11')](_0x1fb3c7)&&_0x6184('0x12')===typeof _0x1fb3c7&&!_[_0x6184('0x10')](_0x1fb3c7)){return _0x1fb3c7;}return'\x22\x22\x20<>';};exports[_0x6184('0x15')]=function(_0x40878c){if(_[_0x6184('0x16')](_0x40878c)){return![];}return _0x40878c;};exports['addVariables']=function(_0x11cd87,_0x5128ad,_0x1cd8e7,_0x83bba,_0x1e4a3c,_0x2ff787){var _0x379a52={'XMD-QUEUE':_0x5128ad[_0x6184('0x17')]?_0x5128ad['Queue']['name']:'','XMD-CALLERID':_0x83bba,'XMD-CALLERID-PREVIEW':_0x2ff787?util[_0x6184('0x14')](_0x6184('0x13'),_0x2ff787[_0x6184('0x18')],_0x2ff787[_0x6184('0x19')]):_0x83bba,'XMD-DIALID':_0x1e4a3c,'XMD-CONTACTID':_0x5128ad[_0x6184('0x1a')],'XMD-CDRTYPE':'dialer','CALLERID(all)':_0x83bba,'XMD-VOICEQUEUEID':_0x5128ad[_0x6184('0x1b')],'XMD-DIALCHANNEL':_0x1cd8e7,'XMD-DIALTIMEOUT':_0x11cd87[_0x6184('0x1c')]||0x1e,'XMD-DIALOPTIONS':util[_0x6184('0x14')]('\x22rtTxX%s%s\x22',_0x11cd87['dialQueueProject2']?'g':'',_[_0x6184('0x10')](_0x11cd87[_0x6184('0x1d')])?'':_0x6184('0x1e')),'XMD-DIALURL':_0x11cd87[_0x6184('0x1f')]||'','XMD-AGI':_0x11cd87[_0x6184('0x20')]?util[_0x6184('0x14')](_0x6184('0x21'),ipAgi,_0x11cd87[_0x6184('0x20')]):_0x6184('0x22'),'XMD-AGIAFTER':_0x11cd87['dialQueueProject2']?util['format'](_0x6184('0x21'),ipAgi,_0x11cd87['dialQueueProject2']):_0x6184('0x22'),'XMD-ORIGINATECALLERIDNUM':_0x2ff787?_0x2ff787[_0x6184('0x23')]:'','XMD-ORIGINATECALLERIDNAME':_0x2ff787?_0x2ff787[_0x6184('0x24')]:'','XMD-DESTINATION':_0x6184('0x25')};if(!_[_0x6184('0x10')](_0x11cd87[_0x6184('0x1d')])){_0x379a52[util[_0x6184('0x14')]('%s',_0x6184('0x26'))]=_0x11cd87[_0x6184('0x1d')];_0x379a52[util[_0x6184('0x14')]('%s','_XCALLY_MIXMONITOR_UNIQUEID')]=_0x1e4a3c;}if(_0x5128ad&&_0x5128ad[_0x6184('0x27')]){for(var _0x2053ab in _0x5128ad[_0x6184('0x27')]){if(_0x5128ad[_0x6184('0x27')][_0x6184('0x28')](_0x2053ab)){if(!_[_0x6184('0x16')](_0x5128ad[_0x6184('0x27')][_0x2053ab])&&_0x2053ab!=='id'&&_0x2053ab!==_0x6184('0x29')&&_0x2053ab!==_0x6184('0x2a')&&_0x2053ab!==_0x6184('0x2b')){_0x379a52[util[_0x6184('0x14')](_0x6184('0x2c'),'XMD-',_[_0x6184('0x2d')](_0x2053ab))]=_0x5128ad[_0x6184('0x27')][_0x2053ab];}}}}return _0x379a52;};exports['toLowerVariables']=function(_0x19dfc8){var _0x7db8d={};for(var _0x458e51 in _0x19dfc8){if(_0x19dfc8[_0x6184('0x28')](_0x458e51)){_0x7db8d[util[_0x6184('0x14')]('%s',_['toLower'](_0x458e51))]=_0x19dfc8[_0x458e51];}}return{'variables':_0x7db8d};};exports[_0x6184('0x2e')]=function(_0xe328bf,_0x185792){if(!_[_0x6184('0x16')](_0xe328bf)){if(_0xe328bf['hasOwnProperty']('originated')){if(_0xe328bf[_0x6184('0x2f')]>0x0){_0xe328bf['originated']-=0x1;}else{logger[_0x6184('0xa')](_0x6184('0x30'),_0x185792);}}}else{logger[_0x6184('0xa')]('[updateOriginated]\x20is\x20null\x20or\x20undefined',_0x185792);}};exports[_0x6184('0x31')]=function(_0x37d6c2){var _0x88e8f5=moment()[_0x6184('0x14')](_0x6184('0x32'));_0x37d6c2[_0x6184('0x33')]=0xd;_0x37d6c2[_0x6184('0x34')]=_0x6184('0x35');_0x37d6c2['starttime']=_0x88e8f5;_0x37d6c2[_0x6184('0x36')]=_0x88e8f5;_0x37d6c2[_0x6184('0x37')]=_0x88e8f5;};exports[_0x6184('0x38')]=function(_0x188564,_0x2b7e4b,_0x92b70){var _0x259e94=moment()[_0x6184('0x14')]('YYYY-MM-DD\x20HH:mm:ss');_0x188564[_0x6184('0x33')]=_0x2b7e4b;_0x188564['statedesc']=_0x92b70;_0x188564[_0x6184('0x36')]=_0x259e94;_0x188564['ringtime']=getSeconds(_0x188564[_0x6184('0x36')],_0x188564['starttime']);};exports[_0x6184('0x39')]=function(_0x1b1af4,_0x195a34,_0x2bacf1){_0x1b1af4[_0x6184('0x3a')]=_0x195a34;_0x1b1af4['UserId']=_0x2bacf1;};exports[_0x6184('0x3b')]=function(_0x3a3218,_0x2a4c36,_0x5f0160){var _0x4b4f10=moment()[_0x6184('0x14')](_0x6184('0x32'));_0x3a3218[_0x6184('0x33')]=_0x2a4c36;_0x3a3218[_0x6184('0x34')]=_0x5f0160;_0x3a3218['responsetime']=_0x3a3218[_0x6184('0x36')]?_0x3a3218['responsetime']:_0x4b4f10;_0x3a3218[_0x6184('0x37')]=_0x3a3218[_0x6184('0x37')]?_0x3a3218['endtime']:_0x4b4f10;_0x3a3218[_0x6184('0x3c')]=getSeconds(_0x3a3218['responsetime']||0x0,_0x3a3218[_0x6184('0x3d')]||0x0);_0x3a3218[_0x6184('0x3e')]=_0x3a3218[_0x6184('0x3f')]?getSeconds(_0x3a3218[_0x6184('0x37')],_0x3a3218['answertime']):0x0;};exports['isFailure']=function(_0x40d1e7){return _0x40d1e7===_0x6184('0x40');};exports[_0x6184('0x41')]=function(_0x1170fb,_0x532f0f,_0x2dd246,_0x14e088,_0x42cc48){var _0x1d05c1=_0x14e088?'RECALL':_0x1170fb[_0x6184('0x18')];_0x1d05c1=_0x42cc48?_0x6184('0x42'):_0x1d05c1;return{'actionid':_0x1170fb[_0x6184('0x43')],'action':_0x6184('0x44'),'channel':_0x1170fb[_0x6184('0x45')],'callerid':util[_0x6184('0x14')]('\x22%s\x22\x20<%s>',_0x1d05c1,_0x1170fb[_0x6184('0x19')]),'Exten':_0x6184('0x25'),'Context':'from-sip','Priority':'1','variable':_0x2dd246,'timeout':(_0x532f0f[_0x6184('0x46')]||0x1e)*0x3e8,'async':!![],'channelid':_0x1170fb['uniqueid']};};exports[_0x6184('0x47')]=function(_0x408ebe){return _0x408ebe[_0x6184('0x48')]+_0x408ebe[_0x6184('0x49')]+_0x408ebe[_0x6184('0x4a')]+_0x408ebe[_0x6184('0x4b')]+_0x408ebe[_0x6184('0x4c')];};exports[_0x6184('0x4d')]=function(_0x534a29){var _0x5b16c9=_[_0x6184('0x4e')](_0x534a29);_0x5b16c9['state']=0xf;_0x5b16c9[_0x6184('0x34')]=_0x6184('0x4f');return _0x5b16c9;};exports[_0x6184('0x50')]=function(_0x4410da,_0x3fa5d3,_0x5b5baf){var _0x4941f2={};_0x4941f2[_0x3fa5d3]=_0x4410da[_0x3fa5d3];_0x4941f2[_0x6184('0x51')]=![];_0x4941f2[_0x6184('0x52')]=moment()[_0x6184('0x53')](_0x5b5baf,_0x6184('0x54'))[_0x6184('0x14')](_0x6184('0x32'));_0x4941f2[_0x6184('0x1a')]=_0x4410da[_0x6184('0x1a')];_0x4941f2['ListId']=_0x4410da[_0x6184('0x55')];_0x4941f2[_0x6184('0x1b')]=_0x4410da[_0x6184('0x1b')]||undefined;return _0x4941f2;};exports[_0x6184('0x56')]=function(_0x454514,_0x53a23a){if(!_[_0x6184('0x16')](_0x454514)){if(_0x454514[_0x6184('0x57')]>0x0){_0x454514[_0x6184('0x57')]-=0x1;}else{logger[_0x6184('0xa')](_0x53a23a,_0x6184('0x58'));}}else{logger['error'](_0x53a23a,_0x6184('0x59'));}};exports[_0x6184('0x5a')]=function(_0x13c7d3){if(_0x13c7d3<=0x0){return!![];}return![];};exports['buildObj']=function(_0x3fb33c,_0x883654,_0x2fb2f7){_0x3fb33c[_0x6184('0x5b')]=_0x883654;_0x3fb33c[_0x6184('0x5c')]=_0x3fb33c[_0x6184('0x5d')];_0x3fb33c[_0x6184('0x5e')]=_0x3fb33c[_0x6184('0x45')];if(_0x2fb2f7){_0x3fb33c[_0x6184('0x5f')]=_0x2fb2f7[_0x6184('0x5f')];}return _0x3fb33c;};exports[_0x6184('0x60')]=function(_0x531bcc){var _0x26c594={};_0x26c594[_0x6184('0x5d')]=_0x531bcc['queue'];_0x26c594[_0x6184('0x5e')]=_0x531bcc[_0x6184('0x45')];_0x26c594[_0x6184('0x43')]=_0x531bcc[_0x6184('0x43')];return _0x26c594;};exports[_0x6184('0x61')]=function(_0x3620ca){var _0x44bf8b=[];for(var _0x161590 in _0x3620ca){if(_0x3620ca[_0x6184('0x28')](_0x161590)){if(!_['isNil'](_0x3620ca[_0x161590])&&_0x3620ca[_0x161590][_0x6184('0x33')]===_0x6184('0x62')&&_0x3620ca[_0x161590]['status']==='reachable'){_0x44bf8b[_0x6184('0x63')](_0x3620ca[_0x161590]['id']);}}}return _0x44bf8b;};exports[_0x6184('0x64')]=function(_0xdcfc62){var _0x5f02e6=moment()[_0x6184('0x6')](0x0);var _0x1a5305=moment(_0xdcfc62)[_0x6184('0x6')](0x0);return _0x5f02e6[_0x6184('0x7')](_0x1a5305,_0x6184('0x8'));};exports[_0x6184('0x65')]=function(_0x5a8d4e){return{'active':![],'recallme':![],'UserId':null,'ContactId':_0x5a8d4e[_0x6184('0x1a')],'ListId':_0x5a8d4e['ListId'],'VoiceQueueId':_0x5a8d4e[_0x6184('0x1b')]||undefined,'CampaignId':_0x5a8d4e[_0x6184('0x66')]||undefined};};exports['filterKey']=function(_0x3a2820){if(_0x3a2820===_0x6184('0x43')||_0x3a2820==='idContact'||_0x3a2820===_0x6184('0x5d')||_0x3a2820===_0x6184('0x67')||_0x3a2820===_0x6184('0x68')||_0x3a2820===_0x6184('0x69')||_0x3a2820===_0x6184('0x3a')||_0x3a2820===_0x6184('0x45')||_0x3a2820===_0x6184('0x18')||_0x3a2820===_0x6184('0x51')||_0x3a2820==='calleridnum'||_0x3a2820===_0x6184('0x52')||_0x3a2820===_0x6184('0x48')||_0x3a2820===_0x6184('0x49')||_0x3a2820===_0x6184('0x4a')||_0x3a2820==='countglobal'||_0x3a2820===_0x6184('0x6a')||_0x3a2820===_0x6184('0x6b')||_0x3a2820===_0x6184('0x6c')||_0x3a2820==='recallme'||_0x3a2820===_0x6184('0x1a')||_0x3a2820===_0x6184('0x55')||_0x3a2820===_0x6184('0x6d')||_0x3a2820===_0x6184('0x1b')||_0x3a2820===_0x6184('0x6e')||_0x3a2820==='xmd-voicequeueid'||_0x3a2820==='xmd-queue'||_0x3a2820==='xmd-phone'||_0x3a2820===_0x6184('0x6f')||_0x3a2820===_0x6184('0x70')||_0x3a2820===_0x6184('0x71')||_0x3a2820===_0x6184('0x72')||_0x3a2820===_0x6184('0x73')||_0x3a2820===_0x6184('0x74')||_0x3a2820===_0x6184('0x75')||_0x3a2820===_0x6184('0x76')||_0x3a2820==='xmd-callerid'||_0x3a2820===_0x6184('0x77')||_0x3a2820===_0x6184('0x78')||_0x3a2820===_0x6184('0x79')||_0x3a2820===_0x6184('0x7a')||_0x3a2820===_0x6184('0x7b')||_0x3a2820===_0x6184('0x7c')||_0x3a2820===_0x6184('0x7d')||_0x3a2820===_0x6184('0x7e')||_0x3a2820===_0x6184('0x7f')||_0x3a2820===_0x6184('0x80')||_0x3a2820==='rtpaudioqos'||_0x3a2820==='rtpaudioqosbridged'||_0x3a2820===_0x6184('0x7b')||_0x3a2820===_0x6184('0x7c')||_0x3a2820===_0x6184('0x7d')||_0x3a2820===_0x6184('0x7e')||_0x3a2820===_0x6184('0x7f')||_0x3a2820==='rtpaudioqosrttbridged'||_0x3a2820==='bridgepeer'||_0x3a2820===_0x6184('0x81')||_0x3a2820===_0x6184('0x33')||_0x3a2820===_0x6184('0x34')){return![];}return!![];};exports['getCallerIdRandom']=function(_0x482dc2,_0x37938c){var _0x1cd4eb,_0x2c0609,_0x5d3762;if(_0x37938c<=0x0){_0x37938c=0x1;}_0x1cd4eb=new RegExp(_0x6184('0x82')+_0x37938c+'}$');_0x2c0609=Math[_0x6184('0x83')](0xa,_0x37938c-0x1);_0x5d3762=Math[_0x6184('0x83')](0xa,_0x37938c)-0x1;return util['format']('%s',_[_0x6184('0x84')](_0x482dc2,_0x1cd4eb,_[_0x6184('0x85')](_0x2c0609,_0x5d3762)));};exports[_0x6184('0x86')]=function(_0x58f9fc){var _0x35c2e6=_0x58f9fc[_0x6184('0x87')](/"(.*?)"/);return _0x35c2e6?_0x35c2e6[0x1]:_0x58f9fc;};exports['extractCalleridNumber']=function(_0x26ea0c){var _0x4ac048=_0x26ea0c[_0x6184('0x87')](/<(.*?)>/);return _0x4ac048?_0x4ac048[0x1]:_0x26ea0c;};
\ No newline at end of file
+var _0x4a75=['name','calleridnum','dialer','VoiceQueueId','dialOriginateTimeout','\x22rtTxX%s%s\x22','U(xcally-mixmonitor-context)','dialPreviewUrl','dialQueueProject','NONE','dialQueueProject2','originatecalleridnum','originatecalleridname','xcally-motion-preview','monitor_format','_XCALLY_MIXMONITOR_FORMAT','_XCALLY_MIXMONITOR_UNIQUEID','Contact','hasOwnProperty','tags','createdAt','updatedAt','%s%s','XMD-','toLowerVariables','isNil','originated','[updateOriginated]\x20object\x20originated\x20is\x20negative','[updateOriginated]\x20is\x20null\x20or\x20undefined','logBlacklist','YYYY-MM-DD\x20HH:mm:ss','state','statedesc','Blacklist','starttime','responsetime','endtime','logAgent','ringtime','logLookAgent','UserId','talktime','answertime','Failure','variablesAction','calleridname','BOOKED','uniqueid','channelAgent','from-sip','timeout','totalGlobal','countcongestionretry','countnoanswerretry','countagentrejectretry','countnosuchnumberretry','cloneAction','clone','Global','scheduledAt','active','scheduledat','add','ContactId','ListId','decrementTalkink','[decrementTalkink]\x20object\x20talking\x20is\x20negative','[decrementTalkink]\x20is\x20null\x20or\x20undefined','buildObj','queue','motionChannel','voice','mandatoryDisposition','buildAcw','interface','status','reachable','push','getDiff','createBody','filterKey','idContact','type','dialAnswer','membername','countbusyretry','countglobal','callback','callbackuniqueid','callbackat','xmd-voicequeueid','xmd-listid','xmd-dialurl','xmd-dialtimeout','xmd-dialoptions','xmd-dialid','xmd-dialchannel','xmd-contactid','xmd-agiafter','xmd-agi','rtpaudioqos','rtpaudioqosbridged','rtpaudioqosjitter','rtpaudioqosjitterbridged','rtpaudioqoslossbridged','rtpaudioqosrtt','rtpaudioqosrttbridged','rtpaudioqosloss','bridgepeer','getCallerIdRandom','pow','replace','random','extractCalleridName','match','util','lodash','moment','XCALLY_IP_AGI','127.0.0.1','milliseconds','diff','seconds','loggerCatch','error','inspect','info','logger2','isUndefined','isEmpty','string','format','\x22%s\x22\x20<%s>','\x22\x22\x20<>','isActive','Queue'];(function(_0xecc57a,_0x409212){var _0x358722=function(_0x364b0a){while(--_0x364b0a){_0xecc57a['push'](_0xecc57a['shift']());}};_0x358722(++_0x409212);}(_0x4a75,0x183));var _0x54a7=function(_0xf0bc07,_0x510ebf){_0xf0bc07=_0xf0bc07-0x0;var _0x1c50c2=_0x4a75[_0xf0bc07];return _0x1c50c2;};'use strict';var util=require(_0x54a7('0x0'));var _=require(_0x54a7('0x1'));var moment=require(_0x54a7('0x2'));var logger=require('../../../../config/logger')('preview');var ipAgi=process['env'][_0x54a7('0x3')]||_0x54a7('0x4');function getSeconds(_0x4db5b2,_0x3b75f7){var _0xc9b01e=moment(_0x4db5b2)[_0x54a7('0x5')](0x0);var _0x3d328d=moment(_0x3b75f7)[_0x54a7('0x5')](0x0);return _0xc9b01e[_0x54a7('0x6')](_0x3d328d,_0x54a7('0x7'));}exports[_0x54a7('0x8')]=function(_0x39d75e){return function(_0xfbf9a8){logger[_0x54a7('0x9')](_0x39d75e,util[_0x54a7('0xa')](_0xfbf9a8,{'showHidden':![],'depth':null}));};};exports['logger']=function(_0x3683d8,_0x4ca327){logger[_0x54a7('0xb')](_0x3683d8,util[_0x54a7('0xa')](_0x4ca327,{'showHidden':![],'depth':null}));};exports['loggerError']=function(_0x4a362f,_0x201d0){logger['error'](_0x4a362f,util[_0x54a7('0xa')](_0x201d0,{'showHidden':![],'depth':null}));};exports[_0x54a7('0xc')]=function(_0x5a6ab3){return function(_0x3ddd05){logger[_0x54a7('0xb')](_0x5a6ab3,util[_0x54a7('0xa')](_0x3ddd05,{'showHidden':![],'depth':null}));};};exports['message']=function(_0x5d30fd,_0x42c5c5,_0x406a4a){return{'message':_0x5d30fd,'unlock':_0x42c5c5,'active':_0x406a4a};};exports['getCallerId']=function(_0x140c31,_0x1381b5,_0x23be62){if(!_[_0x54a7('0xd')](_0x23be62)&&'string'===typeof _0x23be62&&!_[_0x54a7('0xe')](_0x23be62)){if(!_[_0x54a7('0xd')](_0x1381b5)&&_0x54a7('0xf')===typeof _0x1381b5&&!_[_0x54a7('0xe')](_0x1381b5)){return util[_0x54a7('0x10')](_0x54a7('0x11'),_0x1381b5,_0x23be62);}return util[_0x54a7('0x10')](_0x54a7('0x11'),_0x23be62,_0x23be62);}if(!_['isUndefined'](_0x140c31)&&_0x54a7('0xf')===typeof _0x140c31&&!_[_0x54a7('0xe')](_0x140c31)){return _0x140c31;}return _0x54a7('0x12');};exports[_0x54a7('0x13')]=function(_0x2e9360){if(_['isNil'](_0x2e9360)){return![];}return _0x2e9360;};exports['addVariables']=function(_0x1a4772,_0x13d2d4,_0x5e1b73,_0x15ad5d,_0x1cb02a,_0x2b67a2){var _0x1030b7={'XMD-QUEUE':_0x13d2d4[_0x54a7('0x14')]?_0x13d2d4[_0x54a7('0x14')][_0x54a7('0x15')]:'','XMD-CALLERID':_0x15ad5d,'XMD-CALLERID-PREVIEW':_0x2b67a2?util[_0x54a7('0x10')](_0x54a7('0x11'),_0x2b67a2['calleridname'],_0x2b67a2[_0x54a7('0x16')]):_0x15ad5d,'XMD-DIALID':_0x1cb02a,'XMD-CONTACTID':_0x13d2d4['ContactId'],'XMD-CDRTYPE':_0x54a7('0x17'),'CALLERID(all)':_0x15ad5d,'XMD-VOICEQUEUEID':_0x13d2d4[_0x54a7('0x18')],'XMD-DIALCHANNEL':_0x5e1b73,'XMD-DIALTIMEOUT':_0x1a4772[_0x54a7('0x19')]||0x1e,'XMD-DIALOPTIONS':util['format'](_0x54a7('0x1a'),_0x1a4772['dialQueueProject2']?'g':'',_[_0x54a7('0xe')](_0x1a4772['monitor_format'])?'':_0x54a7('0x1b')),'XMD-DIALURL':_0x1a4772[_0x54a7('0x1c')]||'','XMD-AGI':_0x1a4772[_0x54a7('0x1d')]?util[_0x54a7('0x10')]('\x22agi://%s/square,%s\x22',ipAgi,_0x1a4772[_0x54a7('0x1d')]):_0x54a7('0x1e'),'XMD-AGIAFTER':_0x1a4772[_0x54a7('0x1f')]?util[_0x54a7('0x10')]('\x22agi://%s/square,%s\x22',ipAgi,_0x1a4772[_0x54a7('0x1f')]):'NONE','XMD-ORIGINATECALLERIDNUM':_0x2b67a2?_0x2b67a2[_0x54a7('0x20')]:'','XMD-ORIGINATECALLERIDNAME':_0x2b67a2?_0x2b67a2[_0x54a7('0x21')]:'','XMD-DESTINATION':_0x54a7('0x22')};if(!_[_0x54a7('0xe')](_0x1a4772[_0x54a7('0x23')])){_0x1030b7[util[_0x54a7('0x10')]('%s',_0x54a7('0x24'))]=_0x1a4772['monitor_format'];_0x1030b7[util['format']('%s',_0x54a7('0x25'))]=_0x1cb02a;}if(_0x13d2d4&&_0x13d2d4[_0x54a7('0x26')]){for(var _0x2c426b in _0x13d2d4[_0x54a7('0x26')]){if(_0x13d2d4[_0x54a7('0x26')][_0x54a7('0x27')](_0x2c426b)){if(!_['isNil'](_0x13d2d4[_0x54a7('0x26')][_0x2c426b])&&_0x2c426b!=='id'&&_0x2c426b!==_0x54a7('0x28')&&_0x2c426b!==_0x54a7('0x29')&&_0x2c426b!==_0x54a7('0x2a')){_0x1030b7[util['format'](_0x54a7('0x2b'),_0x54a7('0x2c'),_['toUpper'](_0x2c426b))]=_0x13d2d4[_0x54a7('0x26')][_0x2c426b];}}}}return _0x1030b7;};exports[_0x54a7('0x2d')]=function(_0x4c5d71){var _0x11f401={};for(var _0x4fb7e2 in _0x4c5d71){if(_0x4c5d71['hasOwnProperty'](_0x4fb7e2)){_0x11f401[util[_0x54a7('0x10')]('%s',_['toLower'](_0x4fb7e2))]=_0x4c5d71[_0x4fb7e2];}}return{'variables':_0x11f401};};exports['updateOriginated']=function(_0x5c2284,_0x2a9fdf){if(!_[_0x54a7('0x2e')](_0x5c2284)){if(_0x5c2284[_0x54a7('0x27')](_0x54a7('0x2f'))){if(_0x5c2284[_0x54a7('0x2f')]>0x0){_0x5c2284[_0x54a7('0x2f')]-=0x1;}else{logger['error'](_0x54a7('0x30'),_0x2a9fdf);}}}else{logger[_0x54a7('0x9')](_0x54a7('0x31'),_0x2a9fdf);}};exports[_0x54a7('0x32')]=function(_0x3bb108){var _0x212916=moment()[_0x54a7('0x10')](_0x54a7('0x33'));_0x3bb108[_0x54a7('0x34')]=0xd;_0x3bb108[_0x54a7('0x35')]=_0x54a7('0x36');_0x3bb108[_0x54a7('0x37')]=_0x212916;_0x3bb108[_0x54a7('0x38')]=_0x212916;_0x3bb108[_0x54a7('0x39')]=_0x212916;};exports[_0x54a7('0x3a')]=function(_0x1d989a,_0x41698a,_0x14158d){var _0x4a849b=moment()[_0x54a7('0x10')](_0x54a7('0x33'));_0x1d989a[_0x54a7('0x34')]=_0x41698a;_0x1d989a['statedesc']=_0x14158d;_0x1d989a['responsetime']=_0x4a849b;_0x1d989a[_0x54a7('0x3b')]=getSeconds(_0x1d989a[_0x54a7('0x38')],_0x1d989a['starttime']);};exports[_0x54a7('0x3c')]=function(_0x29b7f5,_0x36c131,_0x3b26f0){_0x29b7f5['membername']=_0x36c131;_0x29b7f5[_0x54a7('0x3d')]=_0x3b26f0;};exports['logCustomer']=function(_0x2147ed,_0x5f4a63,_0x181070){var _0x5687b6=moment()['format'](_0x54a7('0x33'));_0x2147ed[_0x54a7('0x34')]=_0x5f4a63;_0x2147ed['statedesc']=_0x181070;_0x2147ed[_0x54a7('0x38')]=_0x2147ed[_0x54a7('0x38')]?_0x2147ed[_0x54a7('0x38')]:_0x5687b6;_0x2147ed[_0x54a7('0x39')]=_0x2147ed[_0x54a7('0x39')]?_0x2147ed[_0x54a7('0x39')]:_0x5687b6;_0x2147ed[_0x54a7('0x3b')]=getSeconds(_0x2147ed[_0x54a7('0x38')]||0x0,_0x2147ed[_0x54a7('0x37')]||0x0);_0x2147ed[_0x54a7('0x3e')]=_0x2147ed['answertime']?getSeconds(_0x2147ed[_0x54a7('0x39')],_0x2147ed[_0x54a7('0x3f')]):0x0;};exports['isFailure']=function(_0x4e2c6f){return _0x4e2c6f===_0x54a7('0x40');};exports[_0x54a7('0x41')]=function(_0x2945d7,_0x1635a6,_0x32dc7b,_0x328eb7,_0x2e6725){var _0x200d98=_0x328eb7?'RECALL':_0x2945d7[_0x54a7('0x42')];_0x200d98=_0x2e6725?_0x54a7('0x43'):_0x200d98;return{'actionid':_0x2945d7[_0x54a7('0x44')],'action':'originate','channel':_0x2945d7[_0x54a7('0x45')],'callerid':util[_0x54a7('0x10')](_0x54a7('0x11'),_0x200d98,_0x2945d7[_0x54a7('0x16')]),'Exten':_0x54a7('0x22'),'Context':_0x54a7('0x46'),'Priority':'1','variable':_0x32dc7b,'timeout':(_0x1635a6[_0x54a7('0x47')]||0x1e)*0x3e8,'async':!![],'channelid':_0x2945d7[_0x54a7('0x44')]};};exports[_0x54a7('0x48')]=function(_0x18f794){return _0x18f794['countbusyretry']+_0x18f794[_0x54a7('0x49')]+_0x18f794[_0x54a7('0x4a')]+_0x18f794[_0x54a7('0x4b')]+_0x18f794[_0x54a7('0x4c')];};exports[_0x54a7('0x4d')]=function(_0x4da022){var _0x266c79=_[_0x54a7('0x4e')](_0x4da022);_0x266c79['state']=0xf;_0x266c79[_0x54a7('0x35')]=_0x54a7('0x4f');return _0x266c79;};exports[_0x54a7('0x50')]=function(_0x3f4871,_0x505919,_0x40dfb1){var _0x18b734={};_0x18b734[_0x505919]=_0x3f4871[_0x505919];_0x18b734[_0x54a7('0x51')]=![];_0x18b734[_0x54a7('0x52')]=moment()[_0x54a7('0x53')](_0x40dfb1,'minutes')[_0x54a7('0x10')](_0x54a7('0x33'));_0x18b734[_0x54a7('0x54')]=_0x3f4871['ContactId'];_0x18b734[_0x54a7('0x55')]=_0x3f4871[_0x54a7('0x55')];_0x18b734[_0x54a7('0x18')]=_0x3f4871[_0x54a7('0x18')]||undefined;return _0x18b734;};exports[_0x54a7('0x56')]=function(_0x173a42,_0x189b2f){if(!_[_0x54a7('0x2e')](_0x173a42)){if(_0x173a42['pTalking']>0x0){_0x173a42['pTalking']-=0x1;}else{logger['error'](_0x189b2f,_0x54a7('0x57'));}}else{logger[_0x54a7('0x9')](_0x189b2f,_0x54a7('0x58'));}};exports['IsNotLoggedIn']=function(_0x207ff0){if(_0x207ff0<=0x0){return!![];}return![];};exports[_0x54a7('0x59')]=function(_0x823c42,_0x533fb7,_0x153682){_0x823c42['lastevent']=_0x533fb7;_0x823c42[_0x54a7('0x15')]=_0x823c42[_0x54a7('0x5a')];_0x823c42['interface']=_0x823c42[_0x54a7('0x45')];_0x823c42[_0x54a7('0x5b')]=_0x54a7('0x5c');if(_0x153682){_0x823c42[_0x54a7('0x5d')]=_0x153682['mandatoryDisposition'];}return _0x823c42;};exports[_0x54a7('0x5e')]=function(_0x11e164){var _0x419fdb={};_0x419fdb[_0x54a7('0x5a')]=_0x11e164[_0x54a7('0x5a')];_0x419fdb[_0x54a7('0x5f')]=_0x11e164['channelAgent'];_0x419fdb[_0x54a7('0x44')]=_0x11e164[_0x54a7('0x44')];return _0x419fdb;};exports['agentReadyId']=function(_0x29c4c3){var _0x2a55ca=[];for(var _0x2ac8c8 in _0x29c4c3){if(_0x29c4c3['hasOwnProperty'](_0x2ac8c8)){if(!_[_0x54a7('0x2e')](_0x29c4c3[_0x2ac8c8])&&_0x29c4c3[_0x2ac8c8][_0x54a7('0x34')]==='not_inuse'&&_0x29c4c3[_0x2ac8c8][_0x54a7('0x60')]===_0x54a7('0x61')){_0x2a55ca[_0x54a7('0x62')](_0x29c4c3[_0x2ac8c8]['id']);}}}return _0x2a55ca;};exports[_0x54a7('0x63')]=function(_0x2bbec6){var _0x8f2637=moment()[_0x54a7('0x5')](0x0);var _0x399ca9=moment(_0x2bbec6)[_0x54a7('0x5')](0x0);return _0x8f2637[_0x54a7('0x6')](_0x399ca9,_0x54a7('0x7'));};exports[_0x54a7('0x64')]=function(_0x43c8f9){return{'active':![],'recallme':![],'UserId':null,'ContactId':_0x43c8f9['ContactId'],'ListId':_0x43c8f9[_0x54a7('0x55')],'VoiceQueueId':_0x43c8f9[_0x54a7('0x18')]||undefined,'CampaignId':_0x43c8f9['CampaignId']||undefined};};exports[_0x54a7('0x65')]=function(_0x538e26){if(_0x538e26===_0x54a7('0x44')||_0x538e26===_0x54a7('0x66')||_0x538e26===_0x54a7('0x5a')||_0x538e26===_0x54a7('0x67')||_0x538e26==='campaigntype'||_0x538e26===_0x54a7('0x68')||_0x538e26===_0x54a7('0x69')||_0x538e26===_0x54a7('0x45')||_0x538e26==='calleridname'||_0x538e26===_0x54a7('0x51')||_0x538e26===_0x54a7('0x16')||_0x538e26===_0x54a7('0x52')||_0x538e26===_0x54a7('0x6a')||_0x538e26===_0x54a7('0x49')||_0x538e26===_0x54a7('0x4a')||_0x538e26===_0x54a7('0x6b')||_0x538e26===_0x54a7('0x6c')||_0x538e26===_0x54a7('0x6d')||_0x538e26===_0x54a7('0x6e')||_0x538e26==='recallme'||_0x538e26===_0x54a7('0x54')||_0x538e26==='ListId'||_0x538e26==='UserId'||_0x538e26===_0x54a7('0x18')||_0x538e26==='sipcallid'||_0x538e26===_0x54a7('0x6f')||_0x538e26==='xmd-queue'||_0x538e26==='xmd-phone'||_0x538e26===_0x54a7('0x70')||_0x538e26===_0x54a7('0x71')||_0x538e26===_0x54a7('0x72')||_0x538e26===_0x54a7('0x73')||_0x538e26===_0x54a7('0x74')||_0x538e26===_0x54a7('0x75')||_0x538e26===_0x54a7('0x76')||_0x538e26==='xmd-cdrtype'||_0x538e26==='xmd-callerid'||_0x538e26===_0x54a7('0x77')||_0x538e26===_0x54a7('0x78')||_0x538e26===_0x54a7('0x79')||_0x538e26===_0x54a7('0x7a')||_0x538e26===_0x54a7('0x7b')||_0x538e26===_0x54a7('0x7c')||_0x538e26==='rtpaudioqosloss'||_0x538e26===_0x54a7('0x7d')||_0x538e26===_0x54a7('0x7e')||_0x538e26===_0x54a7('0x7f')||_0x538e26==='rtpaudioqos'||_0x538e26===_0x54a7('0x7a')||_0x538e26==='rtpaudioqosjitter'||_0x538e26==='rtpaudioqosjitterbridged'||_0x538e26===_0x54a7('0x80')||_0x538e26===_0x54a7('0x7d')||_0x538e26===_0x54a7('0x7e')||_0x538e26===_0x54a7('0x7f')||_0x538e26===_0x54a7('0x81')||_0x538e26==='bridgepvtcallid'||_0x538e26===_0x54a7('0x34')||_0x538e26==='statedesc'){return![];}return!![];};exports[_0x54a7('0x82')]=function(_0x57ca1f,_0x87da35){var _0x87a43b,_0x326f8c,_0x46bf7d;if(_0x87da35<=0x0){_0x87da35=0x1;}_0x87a43b=new RegExp('\x5cw{0,'+_0x87da35+'}$');_0x326f8c=Math[_0x54a7('0x83')](0xa,_0x87da35-0x1);_0x46bf7d=Math[_0x54a7('0x83')](0xa,_0x87da35)-0x1;return util['format']('%s',_[_0x54a7('0x84')](_0x57ca1f,_0x87a43b,_[_0x54a7('0x85')](_0x326f8c,_0x46bf7d)));};exports[_0x54a7('0x86')]=function(_0x5ad0f4){var _0x985af4=_0x5ad0f4[_0x54a7('0x87')](/"(.*?)"/);return _0x985af4?_0x985af4[0x1]:_0x5ad0f4;};exports['extractCalleridNumber']=function(_0x3750da){var _0x17813c=_0x3750da[_0x54a7('0x87')](/<(.*?)>/);return _0x17813c?_0x17813c[0x1]:_0x3750da;};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf34b=['voicequeuechannelhangup','queueadd','string','boolean','queueremove','queuepause','reload','voicechannel'];(function(_0x4b970a,_0x5ed910){var _0x17a333=function(_0x3778b6){while(--_0x3778b6){_0x4b970a['push'](_0x4b970a['shift']());}};_0x17a333(++_0x5ed910);}(_0xf34b,0xb1));var _0xbf34=function(_0x5efbb6,_0x1ef225){_0x5efbb6=_0x5efbb6-0x0;var _0x4c4d63=_0xf34b[_0x5efbb6];return _0x4c4d63;};'use strict';exports[_0xbf34('0x0')]={'queue':{'type':_0xbf34('0x1'),'required':!![]},'interface':{'type':_0xbf34('0x1'),'required':!![]},'membername':{'type':_0xbf34('0x1'),'required':!![]},'penalty':{'type':'number','required':![]},'paused':{'type':_0xbf34('0x2'),'required':![]}};exports[_0xbf34('0x3')]={'queue':{'type':_0xbf34('0x1'),'required':!![]},'interface':{'type':_0xbf34('0x1'),'required':!![]}};exports[_0xbf34('0x4')]={'interface':{'type':_0xbf34('0x1'),'required':!![]},'paused':{'type':_0xbf34('0x2')},'reason':{'type':_0xbf34('0x1'),'required':![]}};exports[_0xbf34('0x5')]={'module':{'type':'string','required':![]}};exports['voicequeuechannel']={'uniqueid':{'type':_0xbf34('0x1'),'required':!![]}};exports[_0xbf34('0x6')]={'uniqueid':{'type':_0xbf34('0x1'),'required':!![]},'filename':{'type':_0xbf34('0x1')},'format':{'type':_0xbf34('0x1')},'mixmonitorid':{'type':'string'}};exports[_0xbf34('0x7')]={'uniqueid':{'type':'string','required':!![]}};exports['voicequeuechannelredirect']={'uniqueid':{'type':_0xbf34('0x1'),'required':!![]},'exten':{'type':_0xbf34('0x1'),'required':!![]},'context':{'type':_0xbf34('0x1')}};
\ No newline at end of file
+var _0x6ce4=['queuepause','reload','voicequeuechannelredirect','queueadd','string','number','boolean','queueremove'];(function(_0x4b5c5b,_0xdbb9bd){var _0x166bb3=function(_0x20720a){while(--_0x20720a){_0x4b5c5b['push'](_0x4b5c5b['shift']());}};_0x166bb3(++_0xdbb9bd);}(_0x6ce4,0xdb));var _0x46ce=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x6ce4[_0x3dd15e];return _0x231fd0;};'use strict';exports[_0x46ce('0x0')]={'queue':{'type':'string','required':!![]},'interface':{'type':_0x46ce('0x1'),'required':!![]},'membername':{'type':_0x46ce('0x1'),'required':!![]},'penalty':{'type':_0x46ce('0x2'),'required':![]},'paused':{'type':_0x46ce('0x3'),'required':![]}};exports[_0x46ce('0x4')]={'queue':{'type':'string','required':!![]},'interface':{'type':_0x46ce('0x1'),'required':!![]}};exports[_0x46ce('0x5')]={'interface':{'type':_0x46ce('0x1'),'required':!![]},'paused':{'type':_0x46ce('0x3')},'reason':{'type':_0x46ce('0x1'),'required':![]}};exports[_0x46ce('0x6')]={'module':{'type':_0x46ce('0x1'),'required':![]}};exports['voicequeuechannel']={'uniqueid':{'type':_0x46ce('0x1'),'required':!![]}};exports['voicechannel']={'uniqueid':{'type':_0x46ce('0x1'),'required':!![]},'filename':{'type':'string'},'format':{'type':_0x46ce('0x1')},'mixmonitorid':{'type':_0x46ce('0x1')}};exports['voicequeuechannelhangup']={'uniqueid':{'type':_0x46ce('0x1'),'required':!![]}};exports[_0x46ce('0x7')]={'uniqueid':{'type':'string','required':!![]},'exten':{'type':_0x46ce('0x1'),'required':!![]},'context':{'type':_0x46ce('0x1')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc79a=['initZohoAccounts','initSugarcrmAccounts','initVtigerAccounts','vtigerAccounts','initServicenowAccounts','initDynamics365Accounts','freshsalesAccounts','merge','initVoiceQueueReports','groupBy','uniqueid','queuecallerabandon','diff','seconds','queuecallercompleteAt','queuecallerabandonAt','queuecallerexitAt','queuecallerjoinAt','queuecallerleaveAt','initVoiceCallReports','outbound','duration','disposition','ANSWERED','billableseconds','initCampaigns','SquareProject','initVoiceExtensions','initCampaignHopperHistory','initFaxAccounts','exports','util','lodash','../model/telephone','../model/trunk','../model/voiceQueue','../model/trigger','../model/campaign','../model/voiceExtension','../model/freshdeskAccount','../model/sugarcrmAccount','../model/zohoAccount','../model/deskAccount','../model/vtigerAccount','../model/servicenowAccount','../model/freshsalesAccount','telephones','voiceQueues','triggers','campaigns','templates','voiceExtensions','channels','queueChannels','outboundChannels','timers','settings','zendeskAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','servicenowAccounts','dynamics365Accounts','faxAccounts','hasOwnProperty','mapKeys','format','SIP/%s','name','isNil','interface','total','answered','sumDuration','sumBillable','ivrTotalCallsDays','isEmpty','unmanaged','abandoned','sumHoldTime','outboundAnswerAgiCallsDay','outboundNoAnswerCallsDay','outboundCongestionCallsDay','outboundUnknownCallsDay','outboundDropCallsDayTimeout','outboundDropCallsDayCallersExit','outboundBlacklistCallsDay','outboundRejectCallsDay','outboundReCallsDay','queueStatusComplete','prototype','mergeFromDatabase','initAgents','length','isUndefined','agents','initTelephones','initTrunks','trunks','initVoiceQueues','initTriggers','initTemplates','initZendeskAccounts','initSalesforceAccounts','salesforceAccounts','initFreshdeskAccounts','freshdeskAccounts'];(function(_0x25a385,_0x5193be){var _0x16acf5=function(_0x79b05a){while(--_0x79b05a){_0x25a385['push'](_0x25a385['shift']());}};_0x16acf5(++_0x5193be);}(_0xc79a,0x8a));var _0xac79=function(_0x38a140,_0x484518){_0x38a140=_0x38a140-0x0;var _0x1292a0=_0xc79a[_0x38a140];return _0x1292a0;};'use strict';var BPromise=require('bluebird');var util=require(_0xac79('0x0'));var _=require(_0xac79('0x1'));var moment=require('moment');var Agent=require('../model/agent');var Telephone=require(_0xac79('0x2'));var Trunk=require(_0xac79('0x3'));var VoiceQueue=require(_0xac79('0x4'));var Trigger=require(_0xac79('0x5'));var Template=require('../model/template');var Campaign=require(_0xac79('0x6'));var VoiceExtension=require(_0xac79('0x7'));var ZendeskAccount=require('../model/zendeskAccount');var SalesforceAccount=require('../model/salesforceAccount');var FreshdeskAccount=require(_0xac79('0x8'));var SugarcrmAccount=require(_0xac79('0x9'));var ZohoAccount=require(_0xac79('0xa'));var DeskAccount=require(_0xac79('0xb'));var VtigerAccount=require(_0xac79('0xc'));var ServicenowAccount=require(_0xac79('0xd'));var Dynamics365Account=require('../model/dynamics365Account');var FreshsalesAccount=require(_0xac79('0xe'));var FaxAccount=require('../model/faxAccount');var Realtime=function(){this['agents']={};this[_0xac79('0xf')]={};this['trunks']={};this[_0xac79('0x10')]={};this[_0xac79('0x11')]={};this[_0xac79('0x12')]={};this[_0xac79('0x13')]={};this['outbound']={'total':0x0,'answered':0x0,'sumHoldTime':0x0,'sumDuration':0x0,'sumBillable':0x0};this[_0xac79('0x14')]={};this[_0xac79('0x15')]={};this[_0xac79('0x16')]={};this[_0xac79('0x17')]={};this[_0xac79('0x18')]={};this[_0xac79('0x19')]={};this[_0xac79('0x1a')]={};this['salesforceAccounts']={};this[_0xac79('0x1b')]={};this['freshdeskAccounts']={};this[_0xac79('0x1c')]={};this[_0xac79('0x1d')]={};this['vtigerAccounts']={};this[_0xac79('0x1e')]={};this[_0xac79('0x1f')]={};this['freshsalesAccounts']={};this[_0xac79('0x20')]={};};function freeIsNotKey(_0x46deed,_0x5c2b20,_0x38cb69){var _0x3aadb4=_['mapKeys'](_0x46deed,function(_0x47b223,_0x5ce9a1){return _0x47b223[_0x38cb69];});for(var _0x434b51 in _0x5c2b20){if(_0x5c2b20[_0xac79('0x21')](_0x434b51)){if(!_0x3aadb4[_0x434b51]){delete _0x5c2b20[_0x434b51];}}}}function freeIsNotKeySip(_0x23e065,_0x1727fd){var _0x1bd286=_[_0xac79('0x22')](_0x23e065,function(_0x29170d,_0x1aec33){return util[_0xac79('0x23')](_0xac79('0x24'),_0x29170d[_0xac79('0x25')]);});for(var _0x5a72e5 in _0x1727fd){if(_0x1727fd[_0xac79('0x21')](_0x5a72e5)){if(!_0x1bd286[_0x5a72e5]){delete _0x1727fd[_0x5a72e5];}}}}function freeIsNotKeyAgent(_0x1d1190,_0x49b71b){var _0x436058=_[_0xac79('0x22')](_0x1d1190,function(_0x96256e,_0x2bdc3d){var _0x147717=_[_0xac79('0x26')](_0x96256e[_0xac79('0x27')])?util[_0xac79('0x23')](_0xac79('0x24'),_0x96256e[_0xac79('0x25')]):_0x96256e[_0xac79('0x27')];return _0x147717;});for(var _0x1504ff in _0x49b71b){if(_0x49b71b[_0xac79('0x21')](_0x1504ff)){if(!_0x436058[_0x1504ff]){delete _0x49b71b[_0x1504ff];}}}}function clearVoiceCallReports(_0x4bde67){_0x4bde67[_0xac79('0x28')]=0x0;_0x4bde67[_0xac79('0x29')]=0x0;_0x4bde67['sumHoldTime']=0x0;_0x4bde67[_0xac79('0x2a')]=0x0;_0x4bde67[_0xac79('0x2b')]=0x0;}function clearCampaigns(_0x5cec34){if(!_['isEmpty'](_0x5cec34)){for(var _0x4dc2b4 in _0x5cec34){if(_0x5cec34[_0xac79('0x21')](_0x4dc2b4)){_0x5cec34[_0x4dc2b4][_0xac79('0x2c')]=0x0;_0x5cec34[_0x4dc2b4]['ivrAnswerCallsDay']=0x0;}}}}function clearVoiceQueues(_0x1b700f){if(!_[_0xac79('0x2d')](_0x1b700f)){for(var _0x12b343 in _0x1b700f){if(_0x1b700f[_0xac79('0x21')](_0x12b343)){_0x1b700f[_0x12b343][_0xac79('0x28')]=0x0;_0x1b700f[_0x12b343][_0xac79('0x29')]=0x0;_0x1b700f[_0x12b343][_0xac79('0x2e')]=0x0;_0x1b700f[_0x12b343][_0xac79('0x2f')]=0x0;_0x1b700f[_0x12b343][_0xac79('0x30')]=0x0;_0x1b700f[_0x12b343][_0xac79('0x2a')]=0x0;_0x1b700f[_0x12b343][_0xac79('0x2b')]=0x0;_0x1b700f[_0x12b343][_0xac79('0x31')]=0x0;_0x1b700f[_0x12b343][_0xac79('0x32')]=0x0;_0x1b700f[_0x12b343]['outboundBusyCallsDay']=0x0;_0x1b700f[_0x12b343][_0xac79('0x33')]=0x0;_0x1b700f[_0x12b343]['outboundNoSuchCallsDay']=0x0;_0x1b700f[_0x12b343][_0xac79('0x34')]=0x0;_0x1b700f[_0x12b343][_0xac79('0x35')]=0x0;_0x1b700f[_0x12b343][_0xac79('0x36')]=0x0;_0x1b700f[_0x12b343][_0xac79('0x37')]=0x0;_0x1b700f[_0x12b343]['outboundOriginateFailureCallsDay']=0x0;_0x1b700f[_0x12b343][_0xac79('0x38')]=0x0;_0x1b700f[_0x12b343][_0xac79('0x39')]=0x0;_0x1b700f[_0x12b343][_0xac79('0x31')]=0x0;_0x1b700f[_0x12b343]['outboundAnswerCallsDay']=0x0;_0x1b700f[_0x12b343][_0xac79('0x3a')]=!![];}}}}Realtime[_0xac79('0x3b')][_0xac79('0x3c')]=function(_0x2a8761,_0x1e1030){for(var _0x574cbb in _0x1e1030){if(_0x2a8761['hasOwnProperty'](_0x574cbb)){_0x2a8761[_0x574cbb]=_0x1e1030[_0x574cbb];}}};Realtime[_0xac79('0x3b')][_0xac79('0x3d')]=function(){var _0x5ab54f=this;return function(_0xb973b4){if(_0xb973b4){freeIsNotKeyAgent(_0xb973b4,_0x5ab54f['agents']);for(var _0x49b765=0x0,_0x50e10a={},_0x5d81ae={};_0x49b765<_0xb973b4[_0xac79('0x3e')];_0x49b765+=0x1){_0x50e10a=_0xb973b4[_0x49b765];var _0x3c3af1=_[_0xac79('0x26')](_0x50e10a[_0xac79('0x27')])?util[_0xac79('0x23')]('SIP/%s',_0x50e10a[_0xac79('0x25')]):_0x50e10a['interface'];if(_[_0xac79('0x3f')](_0x5ab54f[_0xac79('0x40')][_0x3c3af1])){_0x5ab54f[_0xac79('0x40')][_0x3c3af1]=new Agent(_0x50e10a);}else{_0x5ab54f[_0xac79('0x3c')](_0x5ab54f[_0xac79('0x40')][_0x3c3af1],_0x50e10a);}}}return _0x5ab54f[_0xac79('0x40')];};};Realtime[_0xac79('0x3b')][_0xac79('0x41')]=function(){var _0x204fa2=this;return function(_0x4db7ff){if(_0x4db7ff){freeIsNotKeySip(_0x4db7ff,_0x204fa2[_0xac79('0xf')]);for(var _0x9da485=0x0,_0x366993={},_0x5eeab3={};_0x9da485<_0x4db7ff[_0xac79('0x3e')];_0x9da485+=0x1){_0x366993=_0x4db7ff[_0x9da485];if(_['isUndefined'](_0x204fa2[_0xac79('0xf')][util[_0xac79('0x23')](_0xac79('0x24'),_0x366993[_0xac79('0x25')])])){_0x204fa2[_0xac79('0xf')][util[_0xac79('0x23')](_0xac79('0x24'),_0x366993[_0xac79('0x25')])]=new Telephone(_0x366993);}else{_0x204fa2[_0xac79('0x3c')](_0x204fa2[_0xac79('0xf')][util[_0xac79('0x23')](_0xac79('0x24'),_0x366993[_0xac79('0x25')])],_0x366993);}}}return _0x204fa2[_0xac79('0xf')];};};Realtime[_0xac79('0x3b')][_0xac79('0x42')]=function(){var _0x427674=this;return function(_0x7e52b7){if(_0x7e52b7){freeIsNotKeySip(_0x7e52b7,_0x427674[_0xac79('0x43')]);for(var _0x149a8b=0x0,_0x2e9162={},_0x46e7af={};_0x149a8b<_0x7e52b7['length'];_0x149a8b+=0x1){_0x2e9162=_0x7e52b7[_0x149a8b];if(_[_0xac79('0x3f')](_0x427674[_0xac79('0x43')][util[_0xac79('0x23')](_0xac79('0x24'),_0x2e9162[_0xac79('0x25')])])){_0x427674[_0xac79('0x43')][util['format']('SIP/%s',_0x2e9162[_0xac79('0x25')])]=new Trunk(_0x2e9162);}else{_0x427674['mergeFromDatabase'](_0x427674[_0xac79('0x43')][util[_0xac79('0x23')]('SIP/%s',_0x2e9162[_0xac79('0x25')])],_0x2e9162);}}}return _0x427674[_0xac79('0x43')];};};Realtime[_0xac79('0x3b')][_0xac79('0x44')]=function(){var _0x2f9079=this;return function(_0x53db86){if(_0x53db86){freeIsNotKey(_0x53db86,_0x2f9079['voiceQueues'],_0xac79('0x25'));for(var _0x1da6db=0x0,_0x28e38f={},_0x47829b={};_0x1da6db<_0x53db86[_0xac79('0x3e')];_0x1da6db+=0x1){_0x28e38f=_0x53db86[_0x1da6db];if(_[_0xac79('0x3f')](_0x2f9079[_0xac79('0x10')][_0x28e38f[_0xac79('0x25')]])){_0x2f9079[_0xac79('0x10')][_0x28e38f['name']]=new VoiceQueue(_0x28e38f);}else{_0x2f9079[_0xac79('0x3c')](_0x2f9079['voiceQueues'][_0x28e38f['name']],_0x28e38f);}}}return _0x2f9079[_0xac79('0x10')];};};Realtime[_0xac79('0x3b')][_0xac79('0x45')]=function(){var _0x3dfce3=this;return function(_0x4a1f2b){if(_0x4a1f2b){freeIsNotKey(_0x4a1f2b,_0x3dfce3['triggers'],'id');for(var _0x4f6d9b=0x0,_0x19a9dc={},_0x8a8c5c={};_0x4f6d9b<_0x4a1f2b[_0xac79('0x3e')];_0x4f6d9b+=0x1){_0x19a9dc=_0x4a1f2b[_0x4f6d9b];if(_['isUndefined'](_0x3dfce3[_0xac79('0x11')][_0x19a9dc['id']])){_0x3dfce3[_0xac79('0x11')][_0x19a9dc['id']]=new Trigger(_0x19a9dc);}else{_0x3dfce3[_0xac79('0x3c')](_0x3dfce3['triggers'][_0x19a9dc['id']],_0x19a9dc);}}}return _0x3dfce3[_0xac79('0x11')];};};Realtime[_0xac79('0x3b')][_0xac79('0x46')]=function(){var _0x54f681=this;return function(_0x32545f){if(_0x32545f){freeIsNotKey(_0x32545f,_0x54f681[_0xac79('0x13')],'id');for(var _0x5dd3ac=0x0,_0x5896c7={},_0x432fcd={};_0x5dd3ac<_0x32545f[_0xac79('0x3e')];_0x5dd3ac+=0x1){_0x5896c7=_0x32545f[_0x5dd3ac];if(_[_0xac79('0x3f')](_0x54f681[_0xac79('0x13')][_0x5896c7['id']])){_0x54f681[_0xac79('0x13')][_0x5896c7['id']]=new Template(_0x5896c7);}else{_0x54f681[_0xac79('0x3c')](_0x54f681[_0xac79('0x13')][_0x5896c7['id']],_0x5896c7);}}}return _0x54f681[_0xac79('0x13')];};};Realtime[_0xac79('0x3b')][_0xac79('0x47')]=function(){var _0x3a2e16=this;return function(_0x55f2a4){if(_0x55f2a4){freeIsNotKey(_0x55f2a4,_0x3a2e16[_0xac79('0x1a')],'id');for(var _0x50c035=0x0,_0x26161a={},_0x287f55={};_0x50c035<_0x55f2a4[_0xac79('0x3e')];_0x50c035+=0x1){_0x26161a=_0x55f2a4[_0x50c035];if(_['isUndefined'](_0x3a2e16[_0xac79('0x1a')][_0x26161a['id']])){_0x3a2e16[_0xac79('0x1a')][_0x26161a['id']]=new ZendeskAccount(_0x26161a);}else{_0x3a2e16['mergeFromDatabase'](_0x3a2e16['zendeskAccounts'][_0x26161a['id']],_0x26161a);}}}return _0x3a2e16['zendeskAccounts'];};};Realtime[_0xac79('0x3b')][_0xac79('0x48')]=function(){var _0x493f84=this;return function(_0x5ad418){if(_0x5ad418){freeIsNotKey(_0x5ad418,_0x493f84[_0xac79('0x49')],'id');for(var _0x35d2ad=0x0,_0x2d7568={},_0x5ab737={};_0x35d2ad<_0x5ad418[_0xac79('0x3e')];_0x35d2ad+=0x1){_0x2d7568=_0x5ad418[_0x35d2ad];if(_[_0xac79('0x3f')](_0x493f84[_0xac79('0x49')][_0x2d7568['id']])){_0x493f84[_0xac79('0x49')][_0x2d7568['id']]=new SalesforceAccount(_0x2d7568);}else{_0x493f84[_0xac79('0x3c')](_0x493f84['salesforceAccounts'][_0x2d7568['id']],_0x2d7568);}}}return _0x493f84[_0xac79('0x49')];};};Realtime[_0xac79('0x3b')][_0xac79('0x4a')]=function(){var _0x6fead=this;return function(_0x382a4c){if(_0x382a4c){freeIsNotKey(_0x382a4c,_0x6fead[_0xac79('0x4b')],'id');for(var _0x5e1b00=0x0,_0x273bc2={},_0x1e84da={};_0x5e1b00<_0x382a4c['length'];_0x5e1b00+=0x1){_0x273bc2=_0x382a4c[_0x5e1b00];if(_['isUndefined'](_0x6fead[_0xac79('0x4b')][_0x273bc2['id']])){_0x6fead[_0xac79('0x4b')][_0x273bc2['id']]=new FreshdeskAccount(_0x273bc2);}else{_0x6fead[_0xac79('0x3c')](_0x6fead['freshdeskAccounts'][_0x273bc2['id']],_0x273bc2);}}}return _0x6fead['freshdeskAccounts'];};};Realtime[_0xac79('0x3b')][_0xac79('0x4c')]=function(){var _0x3e112a=this;return function(_0x3ae189){if(_0x3ae189){freeIsNotKey(_0x3ae189,_0x3e112a[_0xac79('0x1c')],'id');for(var _0x19d653=0x0,_0x23afef={},_0x63c15e={};_0x19d653<_0x3ae189['length'];_0x19d653+=0x1){_0x23afef=_0x3ae189[_0x19d653];if(_['isUndefined'](_0x3e112a[_0xac79('0x1c')][_0x23afef['id']])){_0x3e112a[_0xac79('0x1c')][_0x23afef['id']]=new ZohoAccount(_0x23afef);}else{_0x3e112a[_0xac79('0x3c')](_0x3e112a['zohoAccounts'][_0x23afef['id']],_0x23afef);}}}return _0x3e112a[_0xac79('0x1c')];};};Realtime[_0xac79('0x3b')]['initDeskAccounts']=function(){var _0x2918a5=this;return function(_0xf603d4){if(_0xf603d4){freeIsNotKey(_0xf603d4,_0x2918a5[_0xac79('0x1d')],'id');for(var _0x2daaa2=0x0,_0x240d90={},_0x401406={};_0x2daaa2<_0xf603d4[_0xac79('0x3e')];_0x2daaa2+=0x1){_0x240d90=_0xf603d4[_0x2daaa2];if(_[_0xac79('0x3f')](_0x2918a5[_0xac79('0x1d')][_0x240d90['id']])){_0x2918a5[_0xac79('0x1d')][_0x240d90['id']]=new DeskAccount(_0x240d90);}else{_0x2918a5[_0xac79('0x3c')](_0x2918a5[_0xac79('0x1d')][_0x240d90['id']],_0x240d90);}}}return _0x2918a5[_0xac79('0x1d')];};};Realtime[_0xac79('0x3b')][_0xac79('0x4d')]=function(){var _0x4e11aa=this;return function(_0xb39528){if(_0xb39528){freeIsNotKey(_0xb39528,_0x4e11aa[_0xac79('0x1b')],'id');for(var _0x526453=0x0,_0x4110ac={},_0x5b9a5e={};_0x526453<_0xb39528[_0xac79('0x3e')];_0x526453+=0x1){_0x4110ac=_0xb39528[_0x526453];if(_[_0xac79('0x3f')](_0x4e11aa[_0xac79('0x1b')][_0x4110ac['id']])){_0x4e11aa[_0xac79('0x1b')][_0x4110ac['id']]=new SugarcrmAccount(_0x4110ac);}else{_0x4e11aa[_0xac79('0x3c')](_0x4e11aa[_0xac79('0x1b')][_0x4110ac['id']],_0x4110ac);}}}return _0x4e11aa[_0xac79('0x1b')];};};Realtime['prototype'][_0xac79('0x4e')]=function(){var _0x5189fc=this;return function(_0x413c69){if(_0x413c69){freeIsNotKey(_0x413c69,_0x5189fc[_0xac79('0x4f')],'id');for(var _0xfac6a9=0x0,_0x1370fd={},_0x277435={};_0xfac6a9<_0x413c69[_0xac79('0x3e')];_0xfac6a9+=0x1){_0x1370fd=_0x413c69[_0xfac6a9];if(_[_0xac79('0x3f')](_0x5189fc[_0xac79('0x4f')][_0x1370fd['id']])){_0x5189fc[_0xac79('0x4f')][_0x1370fd['id']]=new VtigerAccount(_0x1370fd);}else{_0x5189fc['mergeFromDatabase'](_0x5189fc[_0xac79('0x4f')][_0x1370fd['id']],_0x1370fd);}}}return _0x5189fc[_0xac79('0x4f')];};};Realtime[_0xac79('0x3b')][_0xac79('0x50')]=function(){var _0xc377f9=this;return function(_0x4f1910){if(_0x4f1910){freeIsNotKey(_0x4f1910,_0xc377f9[_0xac79('0x1e')],'id');for(var _0x1f7654=0x0,_0x5d60f3={},_0x5e6531={};_0x1f7654<_0x4f1910[_0xac79('0x3e')];_0x1f7654+=0x1){_0x5d60f3=_0x4f1910[_0x1f7654];if(_[_0xac79('0x3f')](_0xc377f9[_0xac79('0x1e')][_0x5d60f3['id']])){_0xc377f9['servicenowAccounts'][_0x5d60f3['id']]=new ServicenowAccount(_0x5d60f3);}else{_0xc377f9[_0xac79('0x3c')](_0xc377f9[_0xac79('0x1e')][_0x5d60f3['id']],_0x5d60f3);}}}return _0xc377f9['servicenowAccounts'];};};Realtime[_0xac79('0x3b')][_0xac79('0x51')]=function(){var _0xd3de19=this;return function(_0x33f560){if(_0x33f560){freeIsNotKey(_0x33f560,_0xd3de19['dynamics365Accounts'],'id');for(var _0xaa9aef=0x0,_0x194d2e={},_0x106ea2={};_0xaa9aef<_0x33f560[_0xac79('0x3e')];_0xaa9aef+=0x1){_0x194d2e=_0x33f560[_0xaa9aef];if(_['isUndefined'](_0xd3de19[_0xac79('0x1f')][_0x194d2e['id']])){_0xd3de19[_0xac79('0x1f')][_0x194d2e['id']]=new Dynamics365Account(_0x194d2e);}else{_0xd3de19[_0xac79('0x3c')](_0xd3de19['dynamics365Accounts'][_0x194d2e['id']],_0x194d2e);}}}return _0xd3de19[_0xac79('0x1f')];};};Realtime['prototype']['initFreshsalesAccounts']=function(){var _0x85fba9=this;return function(_0x593098){if(_0x593098){freeIsNotKey(_0x593098,_0x85fba9['freshsalesAccounts'],'id');for(var _0x3de6b2=0x0,_0x255629={},_0x5603e0={};_0x3de6b2<_0x593098[_0xac79('0x3e')];_0x3de6b2+=0x1){_0x255629=_0x593098[_0x3de6b2];if(_[_0xac79('0x3f')](_0x85fba9[_0xac79('0x52')][_0x255629['id']])){_0x85fba9[_0xac79('0x52')][_0x255629['id']]=new FreshsalesAccount(_0x255629);}else{_0x85fba9[_0xac79('0x3c')](_0x85fba9[_0xac79('0x52')][_0x255629['id']],_0x255629);}}}return _0x85fba9['freshsalesAccounts'];};};Realtime[_0xac79('0x3b')]['initVoiceQueueHopperHistory']=function(){var _0x409e8c=this;return function(_0x3105e9){for(var _0x4683ce=0x0;_0x4683ce<_0x3105e9[_0xac79('0x3e')];_0x4683ce+=0x1){_[_0xac79('0x53')](_0x409e8c['voiceQueues'][_0x3105e9[_0x4683ce]['name']],_0x3105e9[_0x4683ce]);}return _0x409e8c[_0xac79('0x10')];};};Realtime[_0xac79('0x3b')][_0xac79('0x54')]=function(){var _0x2a4b8c=this;return function(_0xbc9ecf){clearVoiceQueues(_0x2a4b8c[_0xac79('0x10')]);if(_0xbc9ecf){_0xbc9ecf=_[_0xac79('0x55')](_0xbc9ecf,_0xac79('0x56'));for(var _0x420daf in _0xbc9ecf){if(_0xbc9ecf[_0xac79('0x21')](_0x420daf)){var _0x16c0ad={};for(var _0x3afc62=0x0;_0x3afc62<_0xbc9ecf[_0x420daf][_0xac79('0x3e')];_0x3afc62+=0x1){var _0xdd6e72=_0xbc9ecf[_0x420daf][_0x3afc62]['queue'];if(_0x2a4b8c[_0xac79('0x10')][_0xdd6e72]){if(_0xbc9ecf[_0x420daf][_0x3afc62]['queuecallerexit']){_0x2a4b8c[_0xac79('0x10')][_0xdd6e72][_0xac79('0x2e')]+=0x1;}if(_0xbc9ecf[_0x420daf][_0x3afc62][_0xac79('0x57')]){_0x2a4b8c[_0xac79('0x10')][_0xdd6e72]['abandoned']+=0x1;}_0x2a4b8c['voiceQueues'][_0xdd6e72][_0xac79('0x30')]+=moment(_0xbc9ecf[_0x420daf][_0x3afc62]['queuecallerleaveAt'])[_0xac79('0x58')](moment(_0xbc9ecf[_0x420daf][_0x3afc62]['queuecallerjoinAt']),_0xac79('0x59'))||0x0;if(_0x3afc62===_0xbc9ecf[_0x420daf][_0xac79('0x3e')]-0x1){_0x2a4b8c['voiceQueues'][_0xdd6e72][_0xac79('0x2a')]+=moment(_0xbc9ecf[_0x420daf][_0x3afc62][_0xac79('0x5a')]||_0xbc9ecf[_0x420daf][_0x3afc62][_0xac79('0x5b')]||_0xbc9ecf[_0x420daf][_0x3afc62][_0xac79('0x5c')])['diff'](moment(_0xbc9ecf[_0x420daf][_0x3afc62][_0xac79('0x5d')]),_0xac79('0x59'))||0x0;_0x2a4b8c[_0xac79('0x10')][_0xdd6e72][_0xac79('0x28')]+=0x1;if(_0xbc9ecf[_0x420daf][_0x3afc62]['queuecallercomplete']){_0x2a4b8c[_0xac79('0x10')][_0xdd6e72][_0xac79('0x29')]+=0x1;_0x2a4b8c[_0xac79('0x10')][_0xdd6e72][_0xac79('0x2b')]+=moment(_0xbc9ecf[_0x420daf][_0x3afc62][_0xac79('0x5a')])[_0xac79('0x58')](moment(_0xbc9ecf[_0x420daf][_0x3afc62][_0xac79('0x5e')]),_0xac79('0x59'))||0x0;}}else{_0x2a4b8c['voiceQueues'][_0xdd6e72]['sumDuration']+=_0x2a4b8c[_0xac79('0x10')][_0xdd6e72]['sumHoldTime']||0x0;}}}}}}return _0x2a4b8c['voiceQueues'];};};Realtime[_0xac79('0x3b')][_0xac79('0x5f')]=function(){var _0x16ed8e=this;return function(_0x41f90b){clearVoiceCallReports(_0x16ed8e[_0xac79('0x60')]);if(_0x41f90b){for(var _0x2ddb23=0x0;_0x2ddb23<_0x41f90b[_0xac79('0x3e')];_0x2ddb23+=0x1){_0x16ed8e[_0xac79('0x60')][_0xac79('0x28')]+=0x1;_0x16ed8e[_0xac79('0x60')][_0xac79('0x2a')]+=_0x41f90b[_0x2ddb23][_0xac79('0x61')];if(_0x41f90b[_0x2ddb23][_0xac79('0x62')]===_0xac79('0x63')){_0x16ed8e[_0xac79('0x60')][_0xac79('0x29')]+=0x1;_0x16ed8e[_0xac79('0x60')]['sumHoldTime']+=_0x41f90b[_0x2ddb23][_0xac79('0x61')]-_0x41f90b[_0x2ddb23][_0xac79('0x64')]||0x0;_0x16ed8e['outbound']['sumBillable']+=_0x41f90b[_0x2ddb23][_0xac79('0x64')];}}}return _0x16ed8e[_0xac79('0x60')];};};Realtime[_0xac79('0x3b')][_0xac79('0x65')]=function(){var _0x5c92ac=this;return function(_0x1802f6){if(_0x1802f6){freeIsNotKey(_0x1802f6,_0x5c92ac[_0xac79('0x12')],_0xac79('0x25'));for(var _0x4ee45e=0x0,_0x1d5797={};_0x4ee45e<_0x1802f6[_0xac79('0x3e')];_0x4ee45e+=0x1){_0x1d5797=_0x1802f6[_0x4ee45e];if(_['isUndefined'](_0x5c92ac[_0xac79('0x12')][_0x1d5797['name']])){_0x5c92ac[_0xac79('0x12')][_0x1d5797[_0xac79('0x25')]]=new Campaign(_0x1d5797);}else{_0x5c92ac['mergeFromDatabase'](_0x5c92ac[_0xac79('0x12')][_0x1d5797[_0xac79('0x25')]],_0x1d5797);_0x5c92ac[_0xac79('0x12')][_0x1d5797[_0xac79('0x25')]]['dialQueueProject']=_0x1d5797[_0xac79('0x66')]?_0x1d5797['SquareProject'][_0xac79('0x25')]:undefined;}}}return _0x5c92ac[_0xac79('0x12')];};};Realtime[_0xac79('0x3b')][_0xac79('0x67')]=function(){var _0x191a5f=this;return function(_0x251be7){if(_0x251be7){freeIsNotKey(_0x251be7,_0x191a5f[_0xac79('0x14')],'id');for(var _0x133d2c=0x0,_0x13d57a={};_0x133d2c<_0x251be7[_0xac79('0x3e')];_0x133d2c+=0x1){_0x13d57a=_0x251be7[_0x133d2c];if(_[_0xac79('0x3f')](_0x191a5f['voiceExtensions'][_0x13d57a['id']])){_0x191a5f[_0xac79('0x14')][_0x13d57a['id']]=new VoiceExtension(_0x13d57a);}else{_0x191a5f['mergeFromDatabase'](_0x191a5f[_0xac79('0x14')][_0x13d57a['id']],_0x13d57a);}}}return _0x191a5f[_0xac79('0x14')];};};Realtime[_0xac79('0x3b')][_0xac79('0x68')]=function(){var _0x11d889=this;return function(_0x501d23){clearCampaigns(_0x11d889[_0xac79('0x12')]);for(var _0x32fa32=0x0;_0x32fa32<_0x501d23[_0xac79('0x3e')];_0x32fa32+=0x1){_[_0xac79('0x53')](_0x11d889['campaigns'][_0x501d23[_0x32fa32][_0xac79('0x25')]],_0x501d23[_0x32fa32]);}return _0x11d889['campaigns'];};};Realtime[_0xac79('0x3b')][_0xac79('0x69')]=function(){var _0x65447c=this;return function(_0x389c38){if(_0x389c38){freeIsNotKey(_0x389c38,_0x65447c[_0xac79('0x20')],'id');for(var _0x5ebe49=0x0,_0x3a0299={},_0xe098c6={};_0x5ebe49<_0x389c38[_0xac79('0x3e')];_0x5ebe49+=0x1){_0x3a0299=_0x389c38[_0x5ebe49];if(_[_0xac79('0x3f')](_0x65447c['faxAccounts'][_0x3a0299['id']])){_0x65447c[_0xac79('0x20')][_0x3a0299['id']]=new FaxAccount(_0x3a0299);}else{_0x65447c[_0xac79('0x3c')](_0x65447c['faxAccounts'][_0x3a0299['id']],_0x3a0299);}}}return _0x65447c['faxAccounts'];};};module[_0xac79('0x6a')]=Realtime;
\ No newline at end of file
+var _0x7679=['sumBillable','isEmpty','ivrTotalCallsDays','ivrAnswerCallsDay','total','unmanaged','abandoned','outboundAnswerAgiCallsDay','outboundNoAnswerCallsDay','outboundBusyCallsDay','outboundCongestionCallsDay','outboundNoSuchCallsDay','outboundUnknownCallsDay','outboundDropCallsDayTimeout','outboundBlacklistCallsDay','outboundOriginateFailureCallsDay','outboundReCallsDay','outboundAnswerCallsDay','queueStatusComplete','mergeFromDatabase','prototype','initAgents','isUndefined','initTelephones','telephones','length','initTrunks','trunks','initVoiceQueues','initTriggers','initTemplates','initFreshdeskAccounts','initVtigerAccounts','servicenowAccounts','initDynamics365Accounts','initFreshsalesAccounts','freshsalesAccounts','initVoiceQueueHopperHistory','merge','initVoiceQueueReports','groupBy','queue','queuecallerexit','queuecallerabandon','queuecallerleaveAt','queuecallerjoinAt','seconds','queuecallercompleteAt','queuecallerexitAt','diff','queuecallercomplete','duration','disposition','ANSWERED','billableseconds','initCampaigns','dialQueueProject','SquareProject','initVoiceExtensions','util','moment','../model/agent','../model/telephone','../model/trunk','../model/voiceQueue','../model/template','../model/campaign','../model/voiceExtension','../model/freshdeskAccount','../model/zohoAccount','../model/deskAccount','../model/vtigerAccount','../model/freshsalesAccount','../model/faxAccount','agents','voiceQueues','triggers','campaigns','templates','outbound','voiceExtensions','queueChannels','outboundChannels','timers','settings','zendeskAccounts','salesforceAccounts','sugarcrmAccounts','freshdeskAccounts','zohoAccounts','deskAccounts','vtigerAccounts','dynamics365Accounts','faxAccounts','mapKeys','hasOwnProperty','format','name','isNil','interface','SIP/%s','answered','sumHoldTime','sumDuration'];(function(_0x23a3c7,_0x496dc8){var _0x4a5bba=function(_0x12c997){while(--_0x12c997){_0x23a3c7['push'](_0x23a3c7['shift']());}};_0x4a5bba(++_0x496dc8);}(_0x7679,0x1db));var _0x9767=function(_0x4c55d4,_0x276791){_0x4c55d4=_0x4c55d4-0x0;var _0x14289b=_0x7679[_0x4c55d4];return _0x14289b;};'use strict';var BPromise=require('bluebird');var util=require(_0x9767('0x0'));var _=require('lodash');var moment=require(_0x9767('0x1'));var Agent=require(_0x9767('0x2'));var Telephone=require(_0x9767('0x3'));var Trunk=require(_0x9767('0x4'));var VoiceQueue=require(_0x9767('0x5'));var Trigger=require('../model/trigger');var Template=require(_0x9767('0x6'));var Campaign=require(_0x9767('0x7'));var VoiceExtension=require(_0x9767('0x8'));var ZendeskAccount=require('../model/zendeskAccount');var SalesforceAccount=require('../model/salesforceAccount');var FreshdeskAccount=require(_0x9767('0x9'));var SugarcrmAccount=require('../model/sugarcrmAccount');var ZohoAccount=require(_0x9767('0xa'));var DeskAccount=require(_0x9767('0xb'));var VtigerAccount=require(_0x9767('0xc'));var ServicenowAccount=require('../model/servicenowAccount');var Dynamics365Account=require('../model/dynamics365Account');var FreshsalesAccount=require(_0x9767('0xd'));var FaxAccount=require(_0x9767('0xe'));var Realtime=function(){this[_0x9767('0xf')]={};this['telephones']={};this['trunks']={};this[_0x9767('0x10')]={};this[_0x9767('0x11')]={};this[_0x9767('0x12')]={};this[_0x9767('0x13')]={};this[_0x9767('0x14')]={'total':0x0,'answered':0x0,'sumHoldTime':0x0,'sumDuration':0x0,'sumBillable':0x0};this[_0x9767('0x15')]={};this['channels']={};this[_0x9767('0x16')]={};this[_0x9767('0x17')]={};this[_0x9767('0x18')]={};this[_0x9767('0x19')]={};this[_0x9767('0x1a')]={};this[_0x9767('0x1b')]={};this[_0x9767('0x1c')]={};this[_0x9767('0x1d')]={};this[_0x9767('0x1e')]={};this[_0x9767('0x1f')]={};this[_0x9767('0x20')]={};this['servicenowAccounts']={};this[_0x9767('0x21')]={};this['freshsalesAccounts']={};this[_0x9767('0x22')]={};};function freeIsNotKey(_0x2c74ee,_0x225593,_0x3651c2){var _0x4a0baa=_[_0x9767('0x23')](_0x2c74ee,function(_0x4b5d72,_0x1a7632){return _0x4b5d72[_0x3651c2];});for(var _0x95880b in _0x225593){if(_0x225593[_0x9767('0x24')](_0x95880b)){if(!_0x4a0baa[_0x95880b]){delete _0x225593[_0x95880b];}}}}function freeIsNotKeySip(_0x52d3de,_0x4d5a5d){var _0x201447=_[_0x9767('0x23')](_0x52d3de,function(_0x5d307d,_0x58d635){return util[_0x9767('0x25')]('SIP/%s',_0x5d307d[_0x9767('0x26')]);});for(var _0x20ba2e in _0x4d5a5d){if(_0x4d5a5d[_0x9767('0x24')](_0x20ba2e)){if(!_0x201447[_0x20ba2e]){delete _0x4d5a5d[_0x20ba2e];}}}}function freeIsNotKeyAgent(_0x284914,_0x1a3afe){var _0x7d4635=_[_0x9767('0x23')](_0x284914,function(_0x2a0896,_0x51f1ce){var _0x3ff9ae=_[_0x9767('0x27')](_0x2a0896[_0x9767('0x28')])?util[_0x9767('0x25')](_0x9767('0x29'),_0x2a0896['name']):_0x2a0896['interface'];return _0x3ff9ae;});for(var _0x1f8d2e in _0x1a3afe){if(_0x1a3afe[_0x9767('0x24')](_0x1f8d2e)){if(!_0x7d4635[_0x1f8d2e]){delete _0x1a3afe[_0x1f8d2e];}}}}function clearVoiceCallReports(_0x3850c5){_0x3850c5['total']=0x0;_0x3850c5[_0x9767('0x2a')]=0x0;_0x3850c5[_0x9767('0x2b')]=0x0;_0x3850c5[_0x9767('0x2c')]=0x0;_0x3850c5[_0x9767('0x2d')]=0x0;}function clearCampaigns(_0x14caf0){if(!_[_0x9767('0x2e')](_0x14caf0)){for(var _0x4d2e58 in _0x14caf0){if(_0x14caf0[_0x9767('0x24')](_0x4d2e58)){_0x14caf0[_0x4d2e58][_0x9767('0x2f')]=0x0;_0x14caf0[_0x4d2e58][_0x9767('0x30')]=0x0;}}}}function clearVoiceQueues(_0x53edd1){if(!_[_0x9767('0x2e')](_0x53edd1)){for(var _0x2bc25c in _0x53edd1){if(_0x53edd1[_0x9767('0x24')](_0x2bc25c)){_0x53edd1[_0x2bc25c][_0x9767('0x31')]=0x0;_0x53edd1[_0x2bc25c][_0x9767('0x2a')]=0x0;_0x53edd1[_0x2bc25c][_0x9767('0x32')]=0x0;_0x53edd1[_0x2bc25c][_0x9767('0x33')]=0x0;_0x53edd1[_0x2bc25c][_0x9767('0x2b')]=0x0;_0x53edd1[_0x2bc25c][_0x9767('0x2c')]=0x0;_0x53edd1[_0x2bc25c][_0x9767('0x2d')]=0x0;_0x53edd1[_0x2bc25c][_0x9767('0x34')]=0x0;_0x53edd1[_0x2bc25c][_0x9767('0x35')]=0x0;_0x53edd1[_0x2bc25c][_0x9767('0x36')]=0x0;_0x53edd1[_0x2bc25c][_0x9767('0x37')]=0x0;_0x53edd1[_0x2bc25c][_0x9767('0x38')]=0x0;_0x53edd1[_0x2bc25c][_0x9767('0x39')]=0x0;_0x53edd1[_0x2bc25c][_0x9767('0x3a')]=0x0;_0x53edd1[_0x2bc25c]['outboundDropCallsDayCallersExit']=0x0;_0x53edd1[_0x2bc25c][_0x9767('0x3b')]=0x0;_0x53edd1[_0x2bc25c][_0x9767('0x3c')]=0x0;_0x53edd1[_0x2bc25c]['outboundRejectCallsDay']=0x0;_0x53edd1[_0x2bc25c][_0x9767('0x3d')]=0x0;_0x53edd1[_0x2bc25c][_0x9767('0x34')]=0x0;_0x53edd1[_0x2bc25c][_0x9767('0x3e')]=0x0;_0x53edd1[_0x2bc25c][_0x9767('0x3f')]=!![];}}}}Realtime['prototype'][_0x9767('0x40')]=function(_0x3eb8c8,_0x26f094){for(var _0x5f5301 in _0x26f094){if(_0x3eb8c8[_0x9767('0x24')](_0x5f5301)){_0x3eb8c8[_0x5f5301]=_0x26f094[_0x5f5301];}}};Realtime[_0x9767('0x41')][_0x9767('0x42')]=function(){var _0x5b1b2f=this;return function(_0x2324ba){if(_0x2324ba){freeIsNotKeyAgent(_0x2324ba,_0x5b1b2f['agents']);for(var _0x488ba0=0x0,_0x4e0eaf={},_0x36dd2a={};_0x488ba0<_0x2324ba['length'];_0x488ba0+=0x1){_0x4e0eaf=_0x2324ba[_0x488ba0];var _0x59895d=_[_0x9767('0x27')](_0x4e0eaf[_0x9767('0x28')])?util['format'](_0x9767('0x29'),_0x4e0eaf['name']):_0x4e0eaf[_0x9767('0x28')];if(_[_0x9767('0x43')](_0x5b1b2f[_0x9767('0xf')][_0x59895d])){_0x5b1b2f[_0x9767('0xf')][_0x59895d]=new Agent(_0x4e0eaf);}else{_0x5b1b2f[_0x9767('0x40')](_0x5b1b2f[_0x9767('0xf')][_0x59895d],_0x4e0eaf);}}}return _0x5b1b2f[_0x9767('0xf')];};};Realtime[_0x9767('0x41')][_0x9767('0x44')]=function(){var _0x545979=this;return function(_0xfcaae9){if(_0xfcaae9){freeIsNotKeySip(_0xfcaae9,_0x545979[_0x9767('0x45')]);for(var _0x3e9044=0x0,_0x966f74={},_0x5f3447={};_0x3e9044<_0xfcaae9[_0x9767('0x46')];_0x3e9044+=0x1){_0x966f74=_0xfcaae9[_0x3e9044];if(_['isUndefined'](_0x545979[_0x9767('0x45')][util[_0x9767('0x25')](_0x9767('0x29'),_0x966f74[_0x9767('0x26')])])){_0x545979['telephones'][util[_0x9767('0x25')](_0x9767('0x29'),_0x966f74[_0x9767('0x26')])]=new Telephone(_0x966f74);}else{_0x545979[_0x9767('0x40')](_0x545979[_0x9767('0x45')][util[_0x9767('0x25')](_0x9767('0x29'),_0x966f74['name'])],_0x966f74);}}}return _0x545979['telephones'];};};Realtime[_0x9767('0x41')][_0x9767('0x47')]=function(){var _0x1783dc=this;return function(_0x53891e){if(_0x53891e){freeIsNotKeySip(_0x53891e,_0x1783dc[_0x9767('0x48')]);for(var _0x2119b3=0x0,_0x514389={},_0x49a1c1={};_0x2119b3<_0x53891e[_0x9767('0x46')];_0x2119b3+=0x1){_0x514389=_0x53891e[_0x2119b3];if(_[_0x9767('0x43')](_0x1783dc['trunks'][util[_0x9767('0x25')]('SIP/%s',_0x514389[_0x9767('0x26')])])){_0x1783dc[_0x9767('0x48')][util[_0x9767('0x25')](_0x9767('0x29'),_0x514389[_0x9767('0x26')])]=new Trunk(_0x514389);}else{_0x1783dc[_0x9767('0x40')](_0x1783dc[_0x9767('0x48')][util[_0x9767('0x25')](_0x9767('0x29'),_0x514389[_0x9767('0x26')])],_0x514389);}}}return _0x1783dc[_0x9767('0x48')];};};Realtime[_0x9767('0x41')][_0x9767('0x49')]=function(){var _0x89d171=this;return function(_0x32142e){if(_0x32142e){freeIsNotKey(_0x32142e,_0x89d171[_0x9767('0x10')],_0x9767('0x26'));for(var _0x48192d=0x0,_0x7cfd26={},_0x33011d={};_0x48192d<_0x32142e[_0x9767('0x46')];_0x48192d+=0x1){_0x7cfd26=_0x32142e[_0x48192d];if(_[_0x9767('0x43')](_0x89d171[_0x9767('0x10')][_0x7cfd26[_0x9767('0x26')]])){_0x89d171['voiceQueues'][_0x7cfd26[_0x9767('0x26')]]=new VoiceQueue(_0x7cfd26);}else{_0x89d171[_0x9767('0x40')](_0x89d171[_0x9767('0x10')][_0x7cfd26[_0x9767('0x26')]],_0x7cfd26);}}}return _0x89d171[_0x9767('0x10')];};};Realtime[_0x9767('0x41')][_0x9767('0x4a')]=function(){var _0x43690b=this;return function(_0x2fb681){if(_0x2fb681){freeIsNotKey(_0x2fb681,_0x43690b[_0x9767('0x11')],'id');for(var _0x4d0375=0x0,_0x58b331={},_0x178848={};_0x4d0375<_0x2fb681[_0x9767('0x46')];_0x4d0375+=0x1){_0x58b331=_0x2fb681[_0x4d0375];if(_[_0x9767('0x43')](_0x43690b[_0x9767('0x11')][_0x58b331['id']])){_0x43690b[_0x9767('0x11')][_0x58b331['id']]=new Trigger(_0x58b331);}else{_0x43690b[_0x9767('0x40')](_0x43690b[_0x9767('0x11')][_0x58b331['id']],_0x58b331);}}}return _0x43690b[_0x9767('0x11')];};};Realtime[_0x9767('0x41')][_0x9767('0x4b')]=function(){var _0x323e97=this;return function(_0x228b92){if(_0x228b92){freeIsNotKey(_0x228b92,_0x323e97[_0x9767('0x13')],'id');for(var _0x4820a2=0x0,_0x285ca6={},_0x6f848a={};_0x4820a2<_0x228b92['length'];_0x4820a2+=0x1){_0x285ca6=_0x228b92[_0x4820a2];if(_[_0x9767('0x43')](_0x323e97[_0x9767('0x13')][_0x285ca6['id']])){_0x323e97[_0x9767('0x13')][_0x285ca6['id']]=new Template(_0x285ca6);}else{_0x323e97[_0x9767('0x40')](_0x323e97[_0x9767('0x13')][_0x285ca6['id']],_0x285ca6);}}}return _0x323e97['templates'];};};Realtime[_0x9767('0x41')]['initZendeskAccounts']=function(){var _0x5362dc=this;return function(_0x427f73){if(_0x427f73){freeIsNotKey(_0x427f73,_0x5362dc[_0x9767('0x1a')],'id');for(var _0x7a64a3=0x0,_0x1822ec={},_0x39e7a9={};_0x7a64a3<_0x427f73[_0x9767('0x46')];_0x7a64a3+=0x1){_0x1822ec=_0x427f73[_0x7a64a3];if(_[_0x9767('0x43')](_0x5362dc[_0x9767('0x1a')][_0x1822ec['id']])){_0x5362dc[_0x9767('0x1a')][_0x1822ec['id']]=new ZendeskAccount(_0x1822ec);}else{_0x5362dc[_0x9767('0x40')](_0x5362dc['zendeskAccounts'][_0x1822ec['id']],_0x1822ec);}}}return _0x5362dc[_0x9767('0x1a')];};};Realtime[_0x9767('0x41')]['initSalesforceAccounts']=function(){var _0x5040a3=this;return function(_0x10f72f){if(_0x10f72f){freeIsNotKey(_0x10f72f,_0x5040a3[_0x9767('0x1b')],'id');for(var _0x26fc10=0x0,_0x53e17d={},_0x2d501d={};_0x26fc10<_0x10f72f[_0x9767('0x46')];_0x26fc10+=0x1){_0x53e17d=_0x10f72f[_0x26fc10];if(_['isUndefined'](_0x5040a3[_0x9767('0x1b')][_0x53e17d['id']])){_0x5040a3[_0x9767('0x1b')][_0x53e17d['id']]=new SalesforceAccount(_0x53e17d);}else{_0x5040a3[_0x9767('0x40')](_0x5040a3[_0x9767('0x1b')][_0x53e17d['id']],_0x53e17d);}}}return _0x5040a3[_0x9767('0x1b')];};};Realtime[_0x9767('0x41')][_0x9767('0x4c')]=function(){var _0xddbdb=this;return function(_0x5b14f1){if(_0x5b14f1){freeIsNotKey(_0x5b14f1,_0xddbdb['freshdeskAccounts'],'id');for(var _0x20a74e=0x0,_0x564255={},_0x104e1b={};_0x20a74e<_0x5b14f1[_0x9767('0x46')];_0x20a74e+=0x1){_0x564255=_0x5b14f1[_0x20a74e];if(_['isUndefined'](_0xddbdb[_0x9767('0x1d')][_0x564255['id']])){_0xddbdb[_0x9767('0x1d')][_0x564255['id']]=new FreshdeskAccount(_0x564255);}else{_0xddbdb[_0x9767('0x40')](_0xddbdb[_0x9767('0x1d')][_0x564255['id']],_0x564255);}}}return _0xddbdb[_0x9767('0x1d')];};};Realtime['prototype']['initZohoAccounts']=function(){var _0x363dff=this;return function(_0x232a56){if(_0x232a56){freeIsNotKey(_0x232a56,_0x363dff[_0x9767('0x1e')],'id');for(var _0x4f00fd=0x0,_0x250840={},_0x33f4f6={};_0x4f00fd<_0x232a56[_0x9767('0x46')];_0x4f00fd+=0x1){_0x250840=_0x232a56[_0x4f00fd];if(_[_0x9767('0x43')](_0x363dff[_0x9767('0x1e')][_0x250840['id']])){_0x363dff[_0x9767('0x1e')][_0x250840['id']]=new ZohoAccount(_0x250840);}else{_0x363dff[_0x9767('0x40')](_0x363dff[_0x9767('0x1e')][_0x250840['id']],_0x250840);}}}return _0x363dff[_0x9767('0x1e')];};};Realtime['prototype']['initDeskAccounts']=function(){var _0x3a4353=this;return function(_0x9273af){if(_0x9273af){freeIsNotKey(_0x9273af,_0x3a4353[_0x9767('0x1f')],'id');for(var _0x43b1a9=0x0,_0x599107={},_0x49c738={};_0x43b1a9<_0x9273af[_0x9767('0x46')];_0x43b1a9+=0x1){_0x599107=_0x9273af[_0x43b1a9];if(_[_0x9767('0x43')](_0x3a4353['deskAccounts'][_0x599107['id']])){_0x3a4353[_0x9767('0x1f')][_0x599107['id']]=new DeskAccount(_0x599107);}else{_0x3a4353[_0x9767('0x40')](_0x3a4353[_0x9767('0x1f')][_0x599107['id']],_0x599107);}}}return _0x3a4353[_0x9767('0x1f')];};};Realtime[_0x9767('0x41')]['initSugarcrmAccounts']=function(){var _0x13ce18=this;return function(_0x11f2c2){if(_0x11f2c2){freeIsNotKey(_0x11f2c2,_0x13ce18[_0x9767('0x1c')],'id');for(var _0x29a30b=0x0,_0x5ca7cf={},_0x1693b2={};_0x29a30b<_0x11f2c2[_0x9767('0x46')];_0x29a30b+=0x1){_0x5ca7cf=_0x11f2c2[_0x29a30b];if(_[_0x9767('0x43')](_0x13ce18['sugarcrmAccounts'][_0x5ca7cf['id']])){_0x13ce18['sugarcrmAccounts'][_0x5ca7cf['id']]=new SugarcrmAccount(_0x5ca7cf);}else{_0x13ce18['mergeFromDatabase'](_0x13ce18['sugarcrmAccounts'][_0x5ca7cf['id']],_0x5ca7cf);}}}return _0x13ce18['sugarcrmAccounts'];};};Realtime[_0x9767('0x41')][_0x9767('0x4d')]=function(){var _0x3f3355=this;return function(_0x1fd446){if(_0x1fd446){freeIsNotKey(_0x1fd446,_0x3f3355[_0x9767('0x20')],'id');for(var _0x1ce941=0x0,_0x23ffa2={},_0x52d327={};_0x1ce941<_0x1fd446[_0x9767('0x46')];_0x1ce941+=0x1){_0x23ffa2=_0x1fd446[_0x1ce941];if(_[_0x9767('0x43')](_0x3f3355['vtigerAccounts'][_0x23ffa2['id']])){_0x3f3355[_0x9767('0x20')][_0x23ffa2['id']]=new VtigerAccount(_0x23ffa2);}else{_0x3f3355['mergeFromDatabase'](_0x3f3355[_0x9767('0x20')][_0x23ffa2['id']],_0x23ffa2);}}}return _0x3f3355[_0x9767('0x20')];};};Realtime['prototype']['initServicenowAccounts']=function(){var _0x5a0057=this;return function(_0x4a88df){if(_0x4a88df){freeIsNotKey(_0x4a88df,_0x5a0057[_0x9767('0x4e')],'id');for(var _0x468ff4=0x0,_0x23a697={},_0x187f93={};_0x468ff4<_0x4a88df['length'];_0x468ff4+=0x1){_0x23a697=_0x4a88df[_0x468ff4];if(_[_0x9767('0x43')](_0x5a0057[_0x9767('0x4e')][_0x23a697['id']])){_0x5a0057[_0x9767('0x4e')][_0x23a697['id']]=new ServicenowAccount(_0x23a697);}else{_0x5a0057[_0x9767('0x40')](_0x5a0057[_0x9767('0x4e')][_0x23a697['id']],_0x23a697);}}}return _0x5a0057['servicenowAccounts'];};};Realtime[_0x9767('0x41')][_0x9767('0x4f')]=function(){var _0x54928a=this;return function(_0x39a385){if(_0x39a385){freeIsNotKey(_0x39a385,_0x54928a['dynamics365Accounts'],'id');for(var _0x1e5d72=0x0,_0x75e2a9={},_0x1e151d={};_0x1e5d72<_0x39a385['length'];_0x1e5d72+=0x1){_0x75e2a9=_0x39a385[_0x1e5d72];if(_[_0x9767('0x43')](_0x54928a['dynamics365Accounts'][_0x75e2a9['id']])){_0x54928a['dynamics365Accounts'][_0x75e2a9['id']]=new Dynamics365Account(_0x75e2a9);}else{_0x54928a[_0x9767('0x40')](_0x54928a[_0x9767('0x21')][_0x75e2a9['id']],_0x75e2a9);}}}return _0x54928a[_0x9767('0x21')];};};Realtime['prototype'][_0x9767('0x50')]=function(){var _0x3cc154=this;return function(_0x1d2c50){if(_0x1d2c50){freeIsNotKey(_0x1d2c50,_0x3cc154[_0x9767('0x51')],'id');for(var _0x2058da=0x0,_0x7c69de={},_0x57fe44={};_0x2058da<_0x1d2c50[_0x9767('0x46')];_0x2058da+=0x1){_0x7c69de=_0x1d2c50[_0x2058da];if(_[_0x9767('0x43')](_0x3cc154[_0x9767('0x51')][_0x7c69de['id']])){_0x3cc154[_0x9767('0x51')][_0x7c69de['id']]=new FreshsalesAccount(_0x7c69de);}else{_0x3cc154[_0x9767('0x40')](_0x3cc154['freshsalesAccounts'][_0x7c69de['id']],_0x7c69de);}}}return _0x3cc154[_0x9767('0x51')];};};Realtime[_0x9767('0x41')][_0x9767('0x52')]=function(){var _0x5523cd=this;return function(_0xa782d8){for(var _0x466087=0x0;_0x466087<_0xa782d8[_0x9767('0x46')];_0x466087+=0x1){_[_0x9767('0x53')](_0x5523cd[_0x9767('0x10')][_0xa782d8[_0x466087]['name']],_0xa782d8[_0x466087]);}return _0x5523cd[_0x9767('0x10')];};};Realtime[_0x9767('0x41')][_0x9767('0x54')]=function(){var _0x5d317f=this;return function(_0x52f267){clearVoiceQueues(_0x5d317f[_0x9767('0x10')]);if(_0x52f267){_0x52f267=_[_0x9767('0x55')](_0x52f267,'uniqueid');for(var _0x2115e6 in _0x52f267){if(_0x52f267[_0x9767('0x24')](_0x2115e6)){var _0x33913c={};for(var _0x377cd5=0x0;_0x377cd5<_0x52f267[_0x2115e6]['length'];_0x377cd5+=0x1){var _0x1f685b=_0x52f267[_0x2115e6][_0x377cd5][_0x9767('0x56')];if(_0x5d317f['voiceQueues'][_0x1f685b]){if(_0x52f267[_0x2115e6][_0x377cd5][_0x9767('0x57')]){_0x5d317f[_0x9767('0x10')][_0x1f685b][_0x9767('0x32')]+=0x1;}if(_0x52f267[_0x2115e6][_0x377cd5][_0x9767('0x58')]){_0x5d317f['voiceQueues'][_0x1f685b][_0x9767('0x33')]+=0x1;}_0x5d317f[_0x9767('0x10')][_0x1f685b][_0x9767('0x2b')]+=moment(_0x52f267[_0x2115e6][_0x377cd5][_0x9767('0x59')])['diff'](moment(_0x52f267[_0x2115e6][_0x377cd5][_0x9767('0x5a')]),_0x9767('0x5b'))||0x0;if(_0x377cd5===_0x52f267[_0x2115e6]['length']-0x1){_0x5d317f['voiceQueues'][_0x1f685b][_0x9767('0x2c')]+=moment(_0x52f267[_0x2115e6][_0x377cd5][_0x9767('0x5c')]||_0x52f267[_0x2115e6][_0x377cd5]['queuecallerabandonAt']||_0x52f267[_0x2115e6][_0x377cd5][_0x9767('0x5d')])[_0x9767('0x5e')](moment(_0x52f267[_0x2115e6][_0x377cd5][_0x9767('0x5a')]),_0x9767('0x5b'))||0x0;_0x5d317f['voiceQueues'][_0x1f685b]['total']+=0x1;if(_0x52f267[_0x2115e6][_0x377cd5][_0x9767('0x5f')]){_0x5d317f[_0x9767('0x10')][_0x1f685b][_0x9767('0x2a')]+=0x1;_0x5d317f[_0x9767('0x10')][_0x1f685b][_0x9767('0x2d')]+=moment(_0x52f267[_0x2115e6][_0x377cd5][_0x9767('0x5c')])['diff'](moment(_0x52f267[_0x2115e6][_0x377cd5][_0x9767('0x59')]),'seconds')||0x0;}}else{_0x5d317f[_0x9767('0x10')][_0x1f685b]['sumDuration']+=_0x5d317f['voiceQueues'][_0x1f685b]['sumHoldTime']||0x0;}}}}}}return _0x5d317f['voiceQueues'];};};Realtime[_0x9767('0x41')]['initVoiceCallReports']=function(){var _0x44277b=this;return function(_0x2f0396){clearVoiceCallReports(_0x44277b[_0x9767('0x14')]);if(_0x2f0396){for(var _0x2f0143=0x0;_0x2f0143<_0x2f0396[_0x9767('0x46')];_0x2f0143+=0x1){_0x44277b[_0x9767('0x14')][_0x9767('0x31')]+=0x1;_0x44277b['outbound']['sumDuration']+=_0x2f0396[_0x2f0143][_0x9767('0x60')];if(_0x2f0396[_0x2f0143][_0x9767('0x61')]===_0x9767('0x62')){_0x44277b[_0x9767('0x14')][_0x9767('0x2a')]+=0x1;_0x44277b[_0x9767('0x14')][_0x9767('0x2b')]+=_0x2f0396[_0x2f0143][_0x9767('0x60')]-_0x2f0396[_0x2f0143][_0x9767('0x63')]||0x0;_0x44277b[_0x9767('0x14')][_0x9767('0x2d')]+=_0x2f0396[_0x2f0143]['billableseconds'];}}}return _0x44277b[_0x9767('0x14')];};};Realtime['prototype'][_0x9767('0x64')]=function(){var _0x2e3b82=this;return function(_0x56f363){if(_0x56f363){freeIsNotKey(_0x56f363,_0x2e3b82[_0x9767('0x12')],'name');for(var _0x20087d=0x0,_0x219dde={};_0x20087d<_0x56f363[_0x9767('0x46')];_0x20087d+=0x1){_0x219dde=_0x56f363[_0x20087d];if(_[_0x9767('0x43')](_0x2e3b82[_0x9767('0x12')][_0x219dde[_0x9767('0x26')]])){_0x2e3b82[_0x9767('0x12')][_0x219dde[_0x9767('0x26')]]=new Campaign(_0x219dde);}else{_0x2e3b82[_0x9767('0x40')](_0x2e3b82[_0x9767('0x12')][_0x219dde[_0x9767('0x26')]],_0x219dde);_0x2e3b82[_0x9767('0x12')][_0x219dde[_0x9767('0x26')]][_0x9767('0x65')]=_0x219dde['SquareProject']?_0x219dde[_0x9767('0x66')]['name']:undefined;}}}return _0x2e3b82[_0x9767('0x12')];};};Realtime[_0x9767('0x41')][_0x9767('0x67')]=function(){var _0x41a184=this;return function(_0x1df9ae){if(_0x1df9ae){freeIsNotKey(_0x1df9ae,_0x41a184[_0x9767('0x15')],'id');for(var _0x1262de=0x0,_0x5f2c70={};_0x1262de<_0x1df9ae[_0x9767('0x46')];_0x1262de+=0x1){_0x5f2c70=_0x1df9ae[_0x1262de];if(_['isUndefined'](_0x41a184['voiceExtensions'][_0x5f2c70['id']])){_0x41a184[_0x9767('0x15')][_0x5f2c70['id']]=new VoiceExtension(_0x5f2c70);}else{_0x41a184[_0x9767('0x40')](_0x41a184[_0x9767('0x15')][_0x5f2c70['id']],_0x5f2c70);}}}return _0x41a184[_0x9767('0x15')];};};Realtime[_0x9767('0x41')]['initCampaignHopperHistory']=function(){var _0xc80ac7=this;return function(_0x11d9ff){clearCampaigns(_0xc80ac7['campaigns']);for(var _0x560ecf=0x0;_0x560ecf<_0x11d9ff[_0x9767('0x46')];_0x560ecf+=0x1){_[_0x9767('0x53')](_0xc80ac7['campaigns'][_0x11d9ff[_0x560ecf]['name']],_0x11d9ff[_0x560ecf]);}return _0xc80ac7['campaigns'];};};Realtime[_0x9767('0x41')]['initFaxAccounts']=function(){var _0x35dd5f=this;return function(_0x7d8b88){if(_0x7d8b88){freeIsNotKey(_0x7d8b88,_0x35dd5f[_0x9767('0x22')],'id');for(var _0x297524=0x0,_0x563b65={},_0x61715e={};_0x297524<_0x7d8b88[_0x9767('0x46')];_0x297524+=0x1){_0x563b65=_0x7d8b88[_0x297524];if(_[_0x9767('0x43')](_0x35dd5f[_0x9767('0x22')][_0x563b65['id']])){_0x35dd5f[_0x9767('0x22')][_0x563b65['id']]=new FaxAccount(_0x563b65);}else{_0x35dd5f['mergeFromDatabase'](_0x35dd5f['faxAccounts'][_0x563b65['id']],_0x563b65);}}}return _0x35dd5f[_0x9767('0x22')];};};module['exports']=Realtime;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x567c=['queue','context','from-voip-provider','callerid','xcally-motion-preview','calleridpreview','calleridnum','originatecalleridnum','destinationchannel','channel','ANSWERED','connectedlinenum','\x22%s\x22\x20<%s>','calleridname','transfers','linkedid','transfereelinkedid','uniqueid','monitor','monitors','monitorFilename','filename','createdAt','connectedlinename','membername','voiceAgentReport','forEach','startsWith','Local','substring','indexOf','mobile','lastIndexOf','transfererlinkedid','exports','util','../rpc/voiceAgentReport','../rpc/voiceCallReport','../rpc/voiceDialReport','../rpc/memberReport','../rpc/voiceRecording','../rpc/voiceTransferReport','./voiceQueueReport','./voiceCallReport','./voiceAgentReport','./voiceDialReport','./userReport','realtime','agents','telephones','prototype','sync','xdr','disabled','custom:voiceQueueReport','custom:voiceCallReport','voiceCallReport','custom:voiceAgentReport','custom:voiceDialReport','voiceDialReport','bind','blindtransfer','blindTransfer','attendedtransfer','attendedTransfer','findAgent','accountcode','name','isNil','find','SIP/%s','length','lastAssignedTo','interface','queuecallercomplete','queuecallercompleteAt','queuecallerexit','format','YYYY-MM-DD\x20HH:mm:ss','create','destination','exten','type','dialer','lastapplication','lastdata'];(function(_0x434804,_0x415f68){var _0x573fc8=function(_0x3ce265){while(--_0x3ce265){_0x434804['push'](_0x434804['shift']());}};_0x573fc8(++_0x415f68);}(_0x567c,0xcf));var _0xc567=function(_0x5c2d8a,_0x5b9a66){_0x5c2d8a=_0x5c2d8a-0x0;var _0x5e6810=_0x567c[_0x5c2d8a];return _0x5e6810;};'use strict';var _=require('lodash');var moment=require('moment');var util=require(_0xc567('0x0'));var config=require('../../../config/environment');var ami=require('../ami');var RpcVoiceAgentReport=require(_0xc567('0x1'));var RpcVoiceCallReport=require(_0xc567('0x2'));var RpcVoiceDialReport=require(_0xc567('0x3'));var RpcMemberReport=require(_0xc567('0x4'));var RpcVoiceQueueReport=require('../rpc/voiceQueueReport');var RpcVoiceRecording=require(_0xc567('0x5'));var RpcVoiceTransferReport=require(_0xc567('0x6'));var VoiceQueueReport=require(_0xc567('0x7'));var VoiceCallReport=require(_0xc567('0x8'));var VoiceAgentReport=require(_0xc567('0x9'));var VoiceDialReport=require(_0xc567('0xa'));var UserReport=require(_0xc567('0xb'));function Report(_0x394ea2){this[_0xc567('0xc')]=_0x394ea2;this[_0xc567('0xd')]=_0x394ea2[_0xc567('0xd')];this[_0xc567('0xe')]=_0x394ea2[_0xc567('0xe')];}Report[_0xc567('0xf')][_0xc567('0x10')]=function(_0x143c00){var _0x13f079=new VoiceQueueReport(this[_0xc567('0xc')]);var _0x1d9882=new VoiceAgentReport(this['realtime']);var _0xc7fa39=new VoiceDialReport(this['realtime']);var _0x494b1c=new VoiceCallReport(this[_0xc567('0xc')]);var _0xd73fb7=new UserReport(this[_0xc567('0xc')]);if(config[_0xc567('0x11')]&&config['xdr'][_0xc567('0x12')]){ami['on'](_0xc567('0x13'),this['voiceQueueReport']['bind'](this));ami['on'](_0xc567('0x14'),this[_0xc567('0x15')]['bind'](this));ami['on'](_0xc567('0x16'),this['voiceAgentReport']['bind'](this));ami['on'](_0xc567('0x17'),this[_0xc567('0x18')][_0xc567('0x19')](this));ami['on'](_0xc567('0x1a'),this[_0xc567('0x1b')]['bind'](this));ami['on'](_0xc567('0x1c'),this[_0xc567('0x1d')][_0xc567('0x19')](this));}};Report[_0xc567('0xf')][_0xc567('0x1e')]=function(_0x3068d7){var _0x1da7bd;_0x1da7bd=_['find'](this['agents'],function(_0x3df03e){return _0x3df03e[_0xc567('0x1f')]==_0x3068d7||_0x3df03e[_0xc567('0x20')]==_0x3068d7;});if(_[_0xc567('0x21')](_0x1da7bd)){var _0x2a0724=_['find'](this[_0xc567('0xe')],function(_0x2fcbeb){return _0x2fcbeb[_0xc567('0x1f')]==_0x3068d7||_0x2fcbeb[_0xc567('0x20')]==_0x3068d7;});if(_0x2a0724){_0x1da7bd=_[_0xc567('0x22')](this[_0xc567('0xd')],function(_0x17c576){return _0x17c576['interface']==util['format'](_0xc567('0x23'),_0x2a0724['name']);});}}return _0x1da7bd;};Report[_0xc567('0xf')]['voiceQueueReport']=function(_0x1e3d71){for(var _0x40eb0f=0x0;_0x40eb0f<_0x1e3d71[_0xc567('0x24')];_0x40eb0f+=0x1){var _0x5e64a2=this[_0xc567('0x1e')](_0x1e3d71[_0x40eb0f]['connectedlinenum']);if(_0x5e64a2){_0x1e3d71[_0x40eb0f][_0xc567('0x1f')]=_0x5e64a2[_0xc567('0x1f')];_0x1e3d71[_0x40eb0f]['assigned']=!![];_0x1e3d71[_0x40eb0f][_0xc567('0x25')]=_0x5e64a2[_0xc567('0x20')];_0x1e3d71[_0x40eb0f][_0xc567('0x26')]=_['isNil'](_0x5e64a2[_0xc567('0x26')])?util['format'](_0xc567('0x23'),_0x5e64a2[_0xc567('0x20')]):_0x5e64a2[_0xc567('0x26')];if(_0x1e3d71[_0x40eb0f][_0xc567('0x27')]){_0x1e3d71[_0x40eb0f][_0xc567('0x28')]=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');}if(_0x1e3d71[_0x40eb0f][_0xc567('0x29')]){_0x1e3d71[_0x40eb0f]['queuecallerexitAt']=moment()[_0xc567('0x2a')](_0xc567('0x2b'));}RpcMemberReport['voiceQueueReport'](_0x1e3d71[_0x40eb0f]);}RpcVoiceQueueReport[_0xc567('0x2c')](_0x1e3d71[_0x40eb0f]);}};function extractCalleridNumber(_0x43608d){var _0x1db3bd=_0x43608d['match'](/<(.*?)>/);return _0x1db3bd?_0x1db3bd[0x1]:_0x43608d;}Report[_0xc567('0xf')][_0xc567('0x15')]=function(_0x2e6912){_0x2e6912['destination']=_0x2e6912[_0xc567('0x2d')]||_0x2e6912[_0xc567('0x2e')];if(_0x2e6912[_0xc567('0x2f')]==_0xc567('0x30')){_0x2e6912[_0xc567('0x31')]='queue';_0x2e6912[_0xc567('0x32')]=_0x2e6912[_0xc567('0x33')];if(_0x2e6912[_0xc567('0x34')]==_0xc567('0x35')){_0x2e6912['accountcode']='';_0x2e6912[_0xc567('0x2d')]=extractCalleridNumber(_0x2e6912[_0xc567('0x36')]);}else if(_0x2e6912[_0xc567('0x34')]=='from-sip'){if(_0x2e6912[_0xc567('0x2d')]==_0xc567('0x37')){_0x2e6912[_0xc567('0x2d')]=extractCalleridNumber(_0x2e6912[_0xc567('0x38')]);_0x2e6912[_0xc567('0x39')]=_0x2e6912[_0xc567('0x3a')];_0x2e6912[_0xc567('0x3b')]=[_0x2e6912[_0xc567('0x3c')],_0x2e6912['channel']=_0x2e6912[_0xc567('0x3b')]][0x0];_0x2e6912[_0xc567('0x36')]=_0x2e6912[_0xc567('0x38')];}else{_0x2e6912[_0xc567('0x2d')]=_0x2e6912[_0xc567('0x39')];_0x2e6912[_0xc567('0x39')]=_0x2e6912[_0xc567('0x3a')];if(_0x2e6912['disposition']==_0xc567('0x3d')){_0x2e6912['accountcode']=_0x2e6912[_0xc567('0x3e')];}else{_0x2e6912[_0xc567('0x1f')]='';}}}}else{_0x2e6912['callerid']=util[_0xc567('0x2a')](_0xc567('0x3f'),_0x2e6912[_0xc567('0x40')],_0x2e6912['calleridnum']);}if(RpcVoiceTransferReport[_0xc567('0x41')][_0x2e6912['linkedid']]){var _0x5dd299=RpcVoiceTransferReport[_0xc567('0x41')][_0x2e6912[_0xc567('0x42')]];_0x5dd299[_0xc567('0x43')]=_0x2e6912[_0xc567('0x44')];RpcVoiceTransferReport[_0xc567('0x1b')](_0x5dd299);delete RpcVoiceTransferReport[_0xc567('0x41')][_0x2e6912[_0xc567('0x42')]];}RpcVoiceCallReport[_0xc567('0x2c')](_0x2e6912);if(_0x2e6912[_0xc567('0x45')]){for(var _0x2a3152=0x0;_0x2a3152<_0x2e6912[_0xc567('0x46')][_0xc567('0x24')];_0x2a3152+=0x1){_0x2e6912[_0xc567('0x47')]=_0x2e6912[_0xc567('0x46')][_0x2a3152][_0xc567('0x48')];_0x2e6912['createdAt']=_0x2e6912[_0xc567('0x46')][_0x2a3152][_0xc567('0x49')];if(_0x2e6912[_0xc567('0x2e')]==_0xc567('0x37')){_0x2e6912[_0xc567('0x39')]=_0x2e6912[_0xc567('0x3e')];_0x2e6912['calleridname']=_0x2e6912[_0xc567('0x4a')];_0x2e6912[_0xc567('0x3e')]=_0x2e6912[_0xc567('0x1f')];_0x2e6912[_0xc567('0x4a')]=_0x2e6912[_0xc567('0x4b')];_0x2e6912[_0xc567('0x2e')]=_0x2e6912['originatecalleridnum'];}else if(_0x2e6912[_0xc567('0x2e')]=='xcally-motion-dialer'){_0x2e6912[_0xc567('0x39')]=_0x2e6912[_0xc567('0x2d')];_0x2e6912[_0xc567('0x2e')]=_0x2e6912[_0xc567('0x3a')];}RpcVoiceRecording['create'](_0x2e6912);}}};Report['prototype'][_0xc567('0x4c')]=function(_0x54515a){if(_['isArray'](_0x54515a)){_0x54515a[_0xc567('0x4d')](function(_0x1d9876){RpcVoiceAgentReport[_0xc567('0x2c')](_0x1d9876);});}else{RpcVoiceAgentReport[_0xc567('0x2c')](_0x54515a);}};Report[_0xc567('0xf')][_0xc567('0x18')]=function(_0x45b260){RpcVoiceDialReport[_0xc567('0x2c')](_0x45b260);var _0x2c57ea;var _0x4a1807;var _0x4baf9a=_0x45b260['channel'];if(_[_0xc567('0x4e')](_0x4baf9a,_0xc567('0x4f'))){_0x4a1807=_0x4baf9a[_0xc567('0x50')](_0x4baf9a[_0xc567('0x51')]('/')+0x1,_0x4baf9a['indexOf']('@'));_0x2c57ea=_[_0xc567('0x22')](this['agents'],function(_0x114a8b){return _0x114a8b[_0xc567('0x52')]==_0x4a1807||_0x114a8b['phone']==_0x4a1807||_0x114a8b[_0xc567('0x1f')]==_0x4a1807;});}else{_0x4a1807=_0x4baf9a[_0xc567('0x50')](_0x4baf9a[_0xc567('0x51')]('/')+0x1,_0x4baf9a[_0xc567('0x53')]('-'));_0x2c57ea=this['findAgent'](_0x4a1807);}if(_0x2c57ea){_0x45b260[_0xc567('0x26')]=_[_0xc567('0x21')](_0x2c57ea[_0xc567('0x26')])?util[_0xc567('0x2a')](_0xc567('0x23'),_0x2c57ea[_0xc567('0x20')]):_0x2c57ea[_0xc567('0x26')];_0x45b260[_0xc567('0x4b')]=_0x2c57ea[_0xc567('0x20')];_0x45b260['accountcode']=_0x2c57ea['accountcode'];RpcMemberReport[_0xc567('0x18')](_0x45b260);}};Report['prototype'][_0xc567('0x1b')]=function(_0x48c0b7){RpcVoiceTransferReport[_0xc567('0x41')][_0x48c0b7[_0xc567('0x54')]]=_0x48c0b7;};Report[_0xc567('0xf')][_0xc567('0x1d')]=function(_0x181978){RpcVoiceTransferReport[_0xc567('0x1d')](_0x181978);};module[_0xc567('0x55')]=Report;
\ No newline at end of file
+var _0x215f=['destinationchannel','channel','\x22%s\x22\x20<%s>','linkedid','transfereelinkedid','uniqueid','monitor','monitors','createdAt','calleridname','connectedlinename','membername','xcally-motion-dialer','isArray','forEach','Local','indexOf','mobile','substring','lastIndexOf','findAgent','name','transfererlinkedid','exports','lodash','../ami','../rpc/voiceCallReport','../rpc/voiceDialReport','../rpc/memberReport','../rpc/voiceTransferReport','./voiceQueueReport','./voiceDialReport','telephones','prototype','sync','realtime','disabled','bind','custom:voiceCallReport','voiceCallReport','custom:voiceAgentReport','voiceAgentReport','custom:voiceDialReport','voiceDialReport','blindtransfer','blindTransfer','attendedtransfer','attendedTransfer','find','agents','isNil','accountcode','interface','format','SIP/%s','voiceQueueReport','length','connectedlinenum','assigned','lastAssignedTo','queuecallercomplete','YYYY-MM-DD\x20HH:mm:ss','queuecallerexit','queuecallerexitAt','create','destination','exten','type','dialer','lastapplication','queue','lastdata','context','callerid','from-sip','calleridpreview','calleridnum','originatecalleridnum'];(function(_0x567d,_0x2f8123){var _0x3b7a37=function(_0x55e43b){while(--_0x55e43b){_0x567d['push'](_0x567d['shift']());}};_0x3b7a37(++_0x2f8123);}(_0x215f,0x19e));var _0xf215=function(_0x4cc34a,_0x1cbeea){_0x4cc34a=_0x4cc34a-0x0;var _0x2fb489=_0x215f[_0x4cc34a];return _0x2fb489;};'use strict';var _=require(_0xf215('0x0'));var moment=require('moment');var util=require('util');var config=require('../../../config/environment');var ami=require(_0xf215('0x1'));var RpcVoiceAgentReport=require('../rpc/voiceAgentReport');var RpcVoiceCallReport=require(_0xf215('0x2'));var RpcVoiceDialReport=require(_0xf215('0x3'));var RpcMemberReport=require(_0xf215('0x4'));var RpcVoiceQueueReport=require('../rpc/voiceQueueReport');var RpcVoiceRecording=require('../rpc/voiceRecording');var RpcVoiceTransferReport=require(_0xf215('0x5'));var VoiceQueueReport=require(_0xf215('0x6'));var VoiceCallReport=require('./voiceCallReport');var VoiceAgentReport=require('./voiceAgentReport');var VoiceDialReport=require(_0xf215('0x7'));var UserReport=require('./userReport');function Report(_0x2fe2a3){this['realtime']=_0x2fe2a3;this['agents']=_0x2fe2a3['agents'];this[_0xf215('0x8')]=_0x2fe2a3[_0xf215('0x8')];}Report[_0xf215('0x9')][_0xf215('0xa')]=function(_0x3b19b2){var _0x27a43e=new VoiceQueueReport(this[_0xf215('0xb')]);var _0x30e0b8=new VoiceAgentReport(this[_0xf215('0xb')]);var _0x4d98fe=new VoiceDialReport(this[_0xf215('0xb')]);var _0x5cc2d8=new VoiceCallReport(this[_0xf215('0xb')]);var _0x3a3157=new UserReport(this[_0xf215('0xb')]);if(config['xdr']&&config['xdr'][_0xf215('0xc')]){ami['on']('custom:voiceQueueReport',this['voiceQueueReport'][_0xf215('0xd')](this));ami['on'](_0xf215('0xe'),this[_0xf215('0xf')]['bind'](this));ami['on'](_0xf215('0x10'),this[_0xf215('0x11')][_0xf215('0xd')](this));ami['on'](_0xf215('0x12'),this[_0xf215('0x13')]['bind'](this));ami['on'](_0xf215('0x14'),this[_0xf215('0x15')][_0xf215('0xd')](this));ami['on'](_0xf215('0x16'),this[_0xf215('0x17')][_0xf215('0xd')](this));}};Report[_0xf215('0x9')]['findAgent']=function(_0x563b16){var _0x63c615;_0x63c615=_[_0xf215('0x18')](this[_0xf215('0x19')],function(_0x13600d){return _0x13600d['accountcode']==_0x563b16||_0x13600d['name']==_0x563b16;});if(_[_0xf215('0x1a')](_0x63c615)){var _0xf6b69a=_[_0xf215('0x18')](this['telephones'],function(_0x2a53e3){return _0x2a53e3[_0xf215('0x1b')]==_0x563b16||_0x2a53e3['name']==_0x563b16;});if(_0xf6b69a){_0x63c615=_[_0xf215('0x18')](this[_0xf215('0x19')],function(_0x2b5557){return _0x2b5557[_0xf215('0x1c')]==util[_0xf215('0x1d')](_0xf215('0x1e'),_0xf6b69a['name']);});}}return _0x63c615;};Report['prototype'][_0xf215('0x1f')]=function(_0x2803c5){for(var _0x35b229=0x0;_0x35b229<_0x2803c5[_0xf215('0x20')];_0x35b229+=0x1){var _0x57df49=this['findAgent'](_0x2803c5[_0x35b229][_0xf215('0x21')]);if(_0x57df49){_0x2803c5[_0x35b229]['accountcode']=_0x57df49['accountcode'];_0x2803c5[_0x35b229][_0xf215('0x22')]=!![];_0x2803c5[_0x35b229][_0xf215('0x23')]=_0x57df49['name'];_0x2803c5[_0x35b229]['interface']=_[_0xf215('0x1a')](_0x57df49[_0xf215('0x1c')])?util[_0xf215('0x1d')]('SIP/%s',_0x57df49['name']):_0x57df49[_0xf215('0x1c')];if(_0x2803c5[_0x35b229][_0xf215('0x24')]){_0x2803c5[_0x35b229]['queuecallercompleteAt']=moment()['format'](_0xf215('0x25'));}if(_0x2803c5[_0x35b229][_0xf215('0x26')]){_0x2803c5[_0x35b229][_0xf215('0x27')]=moment()[_0xf215('0x1d')](_0xf215('0x25'));}RpcMemberReport[_0xf215('0x1f')](_0x2803c5[_0x35b229]);}RpcVoiceQueueReport[_0xf215('0x28')](_0x2803c5[_0x35b229]);}};function extractCalleridNumber(_0x4271bd){var _0xce9ddf=_0x4271bd['match'](/<(.*?)>/);return _0xce9ddf?_0xce9ddf[0x1]:_0x4271bd;}Report[_0xf215('0x9')][_0xf215('0xf')]=function(_0x50eb36){_0x50eb36['destination']=_0x50eb36[_0xf215('0x29')]||_0x50eb36[_0xf215('0x2a')];if(_0x50eb36[_0xf215('0x2b')]==_0xf215('0x2c')){_0x50eb36[_0xf215('0x2d')]=_0xf215('0x2e');_0x50eb36[_0xf215('0x2f')]=_0x50eb36['queue'];if(_0x50eb36[_0xf215('0x30')]=='from-voip-provider'){_0x50eb36[_0xf215('0x1b')]='';_0x50eb36[_0xf215('0x29')]=extractCalleridNumber(_0x50eb36[_0xf215('0x31')]);}else if(_0x50eb36[_0xf215('0x30')]==_0xf215('0x32')){if(_0x50eb36[_0xf215('0x29')]=='xcally-motion-preview'){_0x50eb36[_0xf215('0x29')]=extractCalleridNumber(_0x50eb36[_0xf215('0x33')]);_0x50eb36[_0xf215('0x34')]=_0x50eb36[_0xf215('0x35')];_0x50eb36[_0xf215('0x36')]=[_0x50eb36['channel'],_0x50eb36[_0xf215('0x37')]=_0x50eb36[_0xf215('0x36')]][0x0];_0x50eb36[_0xf215('0x31')]=_0x50eb36['calleridpreview'];}else{_0x50eb36[_0xf215('0x29')]=_0x50eb36[_0xf215('0x34')];_0x50eb36['calleridnum']=_0x50eb36[_0xf215('0x35')];if(_0x50eb36['disposition']=='ANSWERED'){_0x50eb36['accountcode']=_0x50eb36['connectedlinenum'];}else{_0x50eb36[_0xf215('0x1b')]='';}}}}else{_0x50eb36[_0xf215('0x31')]=util[_0xf215('0x1d')](_0xf215('0x38'),_0x50eb36['calleridname'],_0x50eb36[_0xf215('0x34')]);}if(RpcVoiceTransferReport['transfers'][_0x50eb36[_0xf215('0x39')]]){var _0x2e05b4=RpcVoiceTransferReport['transfers'][_0x50eb36[_0xf215('0x39')]];_0x2e05b4[_0xf215('0x3a')]=_0x50eb36[_0xf215('0x3b')];RpcVoiceTransferReport['blindTransfer'](_0x2e05b4);delete RpcVoiceTransferReport['transfers'][_0x50eb36['linkedid']];}RpcVoiceCallReport['create'](_0x50eb36);if(_0x50eb36[_0xf215('0x3c')]){for(var _0x306482=0x0;_0x306482<_0x50eb36[_0xf215('0x3d')][_0xf215('0x20')];_0x306482+=0x1){_0x50eb36['monitorFilename']=_0x50eb36['monitors'][_0x306482]['filename'];_0x50eb36[_0xf215('0x3e')]=_0x50eb36[_0xf215('0x3d')][_0x306482][_0xf215('0x3e')];if(_0x50eb36[_0xf215('0x2a')]=='xcally-motion-preview'){_0x50eb36[_0xf215('0x34')]=_0x50eb36[_0xf215('0x21')];_0x50eb36[_0xf215('0x3f')]=_0x50eb36['connectedlinename'];_0x50eb36[_0xf215('0x21')]=_0x50eb36[_0xf215('0x1b')];_0x50eb36[_0xf215('0x40')]=_0x50eb36[_0xf215('0x41')];_0x50eb36[_0xf215('0x2a')]=_0x50eb36[_0xf215('0x35')];}else if(_0x50eb36[_0xf215('0x2a')]==_0xf215('0x42')){_0x50eb36[_0xf215('0x34')]=_0x50eb36['destination'];_0x50eb36[_0xf215('0x2a')]=_0x50eb36[_0xf215('0x35')];}RpcVoiceRecording[_0xf215('0x28')](_0x50eb36);}}};Report['prototype']['voiceAgentReport']=function(_0x5be397){if(_[_0xf215('0x43')](_0x5be397)){_0x5be397[_0xf215('0x44')](function(_0x192668){RpcVoiceAgentReport[_0xf215('0x28')](_0x192668);});}else{RpcVoiceAgentReport['create'](_0x5be397);}};Report[_0xf215('0x9')]['voiceDialReport']=function(_0x5e9116){RpcVoiceDialReport[_0xf215('0x28')](_0x5e9116);var _0x277c7d;var _0x59b4a2;var _0x756881=_0x5e9116['channel'];if(_['startsWith'](_0x756881,_0xf215('0x45'))){_0x59b4a2=_0x756881['substring'](_0x756881[_0xf215('0x46')]('/')+0x1,_0x756881['indexOf']('@'));_0x277c7d=_[_0xf215('0x18')](this[_0xf215('0x19')],function(_0x2bd584){return _0x2bd584[_0xf215('0x47')]==_0x59b4a2||_0x2bd584['phone']==_0x59b4a2||_0x2bd584[_0xf215('0x1b')]==_0x59b4a2;});}else{_0x59b4a2=_0x756881[_0xf215('0x48')](_0x756881[_0xf215('0x46')]('/')+0x1,_0x756881[_0xf215('0x49')]('-'));_0x277c7d=this[_0xf215('0x4a')](_0x59b4a2);}if(_0x277c7d){_0x5e9116[_0xf215('0x1c')]=_['isNil'](_0x277c7d['interface'])?util['format'](_0xf215('0x1e'),_0x277c7d[_0xf215('0x4b')]):_0x277c7d[_0xf215('0x1c')];_0x5e9116[_0xf215('0x41')]=_0x277c7d[_0xf215('0x4b')];_0x5e9116['accountcode']=_0x277c7d[_0xf215('0x1b')];RpcMemberReport[_0xf215('0x13')](_0x5e9116);}};Report[_0xf215('0x9')]['blindTransfer']=function(_0x2e16c4){RpcVoiceTransferReport['transfers'][_0x2e16c4[_0xf215('0x4c')]]=_0x2e16c4;};Report['prototype'][_0xf215('0x17')]=function(_0xea611f){RpcVoiceTransferReport[_0xf215('0x17')](_0xea611f);};module[_0xf215('0x4d')]=Report;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6d69=['ioredis','bluebird','../../../config/environment','../../../config/logger','ami','../ami','redis','defaults','localhost','socket.io-emitter','trunks','agents','telephones','syncRegistry','bind','devicestatechange','peerstatus','syncPeerStatus','resolve','then','actionSipShowRegistry','catch','error','[userReport][sipshowregistry]','inspect','[userReport][devicestatelist]','actionSipPeerStatus','prototype','syncRealtimeShow','isNotNull','isUndefined','emit','info','[userReport][registry]\x20registry:%s\x20state:%s','debug','[userReport][registry]','find','state','merge','omit','event','actionid','username','[userReport][registry]\x20sending\x20trunk:save\x20event:','format','trunk:%s','name','trunk:save','[userReport][devicestatechange]\x20device:%s\x20state:%s','device','local','toLowerCase','inuse','stateTime','toNumber','updateStatusRealtime','[userReport][devicestatechange]\x20sending\x20telephone:save\x20event:','telephone:%s','telephone:save','[userReport][devicestatechange]\x20sending\x20trunk:save\x20event:','startsWith','Local','substring','indexOf','mobile','[userReport][devicestatechange]','[userReport][peerstatus]\x20peer:%s\x20address:%s\x20status:%s','peer','address','[userReport][peerstatus]','status','[userReport][peerstatus]\x20sending\x20telephone:save\x20event:','[userReport][peerstatus]\x20sending\x20trunk:save\x20event:','lodash','moment'];(function(_0x5e908a,_0x54a701){var _0x5c80b4=function(_0x106fc2){while(--_0x106fc2){_0x5e908a['push'](_0x5e908a['shift']());}};_0x5c80b4(++_0x54a701);}(_0x6d69,0x1c0));var _0x96d6=function(_0x98385a,_0x15f00a){_0x98385a=_0x98385a-0x0;var _0xfcbbca=_0x6d69[_0x98385a];return _0xfcbbca;};'use strict';var _=require(_0x96d6('0x0'));var moment=require(_0x96d6('0x1'));var util=require('util');var Redis=require(_0x96d6('0x2'));var BPromise=require(_0x96d6('0x3'));var config=require(_0x96d6('0x4'));var logger=require(_0x96d6('0x5'))(_0x96d6('0x6'));var ami=require(_0x96d6('0x7'));config[_0x96d6('0x8')]=_[_0x96d6('0x9')](config[_0x96d6('0x8')],{'host':_0x96d6('0xa'),'port':0x18eb});var io=require(_0x96d6('0xb'))(new Redis(config[_0x96d6('0x8')]));function UserReport(_0x1618d5){this[_0x96d6('0xc')]=_0x1618d5['trunks'];this[_0x96d6('0xd')]=_0x1618d5[_0x96d6('0xd')];this[_0x96d6('0xe')]=_0x1618d5['telephones'];ami['on']('registryentry',this[_0x96d6('0xf')][_0x96d6('0x10')](this));ami['on']('registry',this[_0x96d6('0xf')]['bind'](this));ami['on'](_0x96d6('0x11'),this['syncDeviceState'][_0x96d6('0x10')](this));ami['on'](_0x96d6('0x12'),this[_0x96d6('0x13')][_0x96d6('0x10')](this));return this['syncRealtimeShow']();}function showSipRegistrations(){Promise[_0x96d6('0x14')]()[_0x96d6('0x15')](ami[_0x96d6('0x16')]())[_0x96d6('0x17')](function(_0x3602be){logger[_0x96d6('0x18')](_0x96d6('0x19'),util[_0x96d6('0x1a')](_0x3602be,{'showHidden':![],'depth':null}));});}function listDeviceStates(){Promise[_0x96d6('0x14')]()[_0x96d6('0x15')](ami['actionDeviceStateList']())[_0x96d6('0x17')](function(_0x2203cd){logger[_0x96d6('0x18')](_0x96d6('0x1b'),util['inspect'](_0x2203cd,{'showHidden':![],'depth':null}));});}function showPeersStatus(){Promise[_0x96d6('0x14')]()[_0x96d6('0x15')](ami[_0x96d6('0x1c')]())['catch'](function(_0x248874){logger[_0x96d6('0x18')]('[userReport][sippeerstatus]',util[_0x96d6('0x1a')](_0x248874,{'showHidden':![],'depth':null}));});}UserReport[_0x96d6('0x1d')][_0x96d6('0x1e')]=function(){setInterval(function(){BPromise[_0x96d6('0x14')]()[_0x96d6('0x15')](showSipRegistrations())[_0x96d6('0x15')](listDeviceStates())[_0x96d6('0x15')](showPeersStatus());},0x32c8);};UserReport['prototype'][_0x96d6('0x1f')]=function(_0x5ac3fa){return _0x5ac3fa!==null&&!_[_0x96d6('0x20')](_0x5ac3fa);};UserReport['prototype'][_0x96d6('0x21')]=function(_0x10fda9,_0x1ff42b,_0x517335){io['to'](_0x10fda9)[_0x96d6('0x21')](_0x1ff42b,_0x517335);};UserReport[_0x96d6('0x1d')][_0x96d6('0xf')]=function(_0x32d706){try{if(this[_0x96d6('0x1f')](_0x32d706)){logger[_0x96d6('0x22')](_0x96d6('0x23'),_0x32d706['username'],_0x32d706['state']);logger[_0x96d6('0x24')](_0x96d6('0x25'),util[_0x96d6('0x1a')](_0x32d706,{'showHidden':![],'depth':null}));var _0x36ebdc=_[_0x96d6('0x26')](this['trunks'],{'defaultuser':_0x32d706['username']});if(_0x36ebdc){_0x32d706['stateRegistry']=_0x32d706[_0x96d6('0x27')];_[_0x96d6('0x28')](_0x36ebdc,_[_0x96d6('0x29')](_0x32d706,[_0x96d6('0x2a'),_0x96d6('0x2b'),_0x96d6('0x2c'),_0x96d6('0x27')]));logger[_0x96d6('0x24')](_0x96d6('0x2d'),util['inspect'](_0x36ebdc,{'showHidden':![],'depth':null}));this['emit'](util[_0x96d6('0x2e')](_0x96d6('0x2f'),_0x36ebdc[_0x96d6('0x30')]),_0x96d6('0x31'),_0x36ebdc);}}}catch(_0x52ef67){logger[_0x96d6('0x18')]('[userReport][registry]',util['inspect'](_0x52ef67,{'showHidden':![],'depth':null}));}};UserReport[_0x96d6('0x1d')]['syncDeviceState']=function(_0x401205){try{if(this['isNotNull'](_0x401205)){logger[_0x96d6('0x22')](_0x96d6('0x32'),_0x401205[_0x96d6('0x33')],_0x401205['state']);logger[_0x96d6('0x24')]('[userReport][devicestatechange]',util[_0x96d6('0x1a')](_0x401205,{'showHidden':![],'depth':null}));if(this[_0x96d6('0xd')][_0x401205[_0x96d6('0x33')]]){if(!this['agents'][_0x401205[_0x96d6('0x33')]][_0x96d6('0x34')]||_0x401205['state'][_0x96d6('0x35')]()==_0x96d6('0x36')){this['agents'][_0x401205['device']][_0x96d6('0x34')]=![];if(this[_0x96d6('0xd')][_0x401205[_0x96d6('0x33')]][_0x96d6('0x27')]!==_0x401205[_0x96d6('0x27')][_0x96d6('0x35')]()){this[_0x96d6('0xd')][_0x401205[_0x96d6('0x33')]][_0x96d6('0x37')]=_[_0x96d6('0x38')](moment()['format']('x'));}this[_0x96d6('0xd')][_0x401205[_0x96d6('0x33')]]['state']=_0x401205[_0x96d6('0x27')]['toLowerCase']();this['agents'][_0x401205[_0x96d6('0x33')]][_0x96d6('0x39')](_0x401205);}}else if(this[_0x96d6('0xe')][_0x401205['device']]){if(this[_0x96d6('0xe')][_0x401205[_0x96d6('0x33')]][_0x96d6('0x27')]!==_0x401205[_0x96d6('0x27')][_0x96d6('0x35')]()){this[_0x96d6('0xe')][_0x401205[_0x96d6('0x33')]]['stateTime']=_['toNumber'](moment()['format']('x'));}this[_0x96d6('0xe')][_0x401205[_0x96d6('0x33')]][_0x96d6('0x27')]=_0x401205[_0x96d6('0x27')][_0x96d6('0x35')]();logger['debug'](_0x96d6('0x3a'),util[_0x96d6('0x1a')](this[_0x96d6('0xe')][_0x401205[_0x96d6('0x33')]],{'showHidden':![],'depth':null}));this[_0x96d6('0x21')](util['format'](_0x96d6('0x3b'),this[_0x96d6('0xe')][_0x401205[_0x96d6('0x33')]]['name']),_0x96d6('0x3c'),this['telephones'][_0x401205['device']]);}else if(this[_0x96d6('0xc')][_0x401205['device']]){if(this[_0x96d6('0xc')][_0x401205[_0x96d6('0x33')]][_0x96d6('0x27')]!==_0x401205[_0x96d6('0x27')]['toLowerCase']()){this['trunks'][_0x401205[_0x96d6('0x33')]][_0x96d6('0x37')]=_[_0x96d6('0x38')](moment()[_0x96d6('0x2e')]('x'));}this[_0x96d6('0xc')][_0x401205[_0x96d6('0x33')]][_0x96d6('0x27')]=_0x401205[_0x96d6('0x27')][_0x96d6('0x35')]();logger[_0x96d6('0x24')](_0x96d6('0x3d'),util[_0x96d6('0x1a')](this[_0x96d6('0xc')][_0x401205['device']],{'showHidden':![],'depth':null}));this['emit'](util['format'](_0x96d6('0x2f'),this[_0x96d6('0xc')][_0x401205['device']][_0x96d6('0x30')]),_0x96d6('0x31'),this[_0x96d6('0xc')][_0x401205['device']]);}else if(_[_0x96d6('0x3e')](_0x401205['device'],_0x96d6('0x3f'))){var _0x24ccb0=_0x401205[_0x96d6('0x33')];var _0x1440c8=_0x24ccb0[_0x96d6('0x40')](_0x24ccb0[_0x96d6('0x41')]('/')+0x1,_0x24ccb0[_0x96d6('0x41')]('@'));var _0x4d5f65=_['find'](this[_0x96d6('0xd')],function(_0x422ecc){return _0x422ecc[_0x96d6('0x42')]==_0x1440c8||_0x422ecc['phone']==_0x1440c8||_0x422ecc['accountcode']==_0x1440c8;});if(_0x4d5f65){if(_0x4d5f65[_0x96d6('0x27')]!==_0x401205[_0x96d6('0x27')][_0x96d6('0x35')]()){_0x4d5f65[_0x96d6('0x37')]=_[_0x96d6('0x38')](moment()[_0x96d6('0x2e')]('x'));}_0x4d5f65[_0x96d6('0x27')]=_0x401205[_0x96d6('0x27')][_0x96d6('0x35')]();_0x4d5f65[_0x96d6('0x34')]=!![];_0x4d5f65[_0x96d6('0x39')](_0x401205);}}}}catch(_0xb5dc46){logger[_0x96d6('0x18')](_0x96d6('0x43'),util[_0x96d6('0x1a')](_0xb5dc46,{'showHidden':![],'depth':null}));}};UserReport[_0x96d6('0x1d')][_0x96d6('0x13')]=function(_0x479c82){try{if(this['isNotNull'](_0x479c82)&&this[_0x96d6('0x1f')](_0x479c82[_0x96d6('0x12')])){logger[_0x96d6('0x22')](_0x96d6('0x44'),_0x479c82[_0x96d6('0x45')],_0x479c82[_0x96d6('0x46')],_0x479c82[_0x96d6('0x12')]);logger['debug'](_0x96d6('0x47'),util['inspect'](_0x479c82,{'showHidden':![],'depth':null}));if(this['agents'][_0x479c82[_0x96d6('0x45')]]){if(!this[_0x96d6('0xd')][_0x479c82[_0x96d6('0x45')]][_0x96d6('0x34')]||_0x479c82[_0x96d6('0x12')][_0x96d6('0x35')]()=='registered'){this[_0x96d6('0xd')][_0x479c82[_0x96d6('0x45')]][_0x96d6('0x34')]=![];this[_0x96d6('0xd')][_0x479c82[_0x96d6('0x45')]]['status']=_0x479c82[_0x96d6('0x12')][_0x96d6('0x35')]();this[_0x96d6('0xd')][_0x479c82['peer']]['address']=_0x479c82['address'];this['agents'][_0x479c82[_0x96d6('0x45')]][_0x96d6('0x39')](_0x479c82);}}else if(this[_0x96d6('0xe')][_0x479c82[_0x96d6('0x45')]]){this[_0x96d6('0xe')][_0x479c82[_0x96d6('0x45')]][_0x96d6('0x48')]=_0x479c82[_0x96d6('0x12')][_0x96d6('0x35')]();this[_0x96d6('0xe')][_0x479c82['peer']][_0x96d6('0x46')]=_0x479c82[_0x96d6('0x46')];logger[_0x96d6('0x24')](_0x96d6('0x49'),util[_0x96d6('0x1a')](this[_0x96d6('0xe')][_0x479c82[_0x96d6('0x45')]],{'showHidden':![],'depth':null}));this[_0x96d6('0x21')](util[_0x96d6('0x2e')](_0x96d6('0x3b'),this['telephones'][_0x479c82[_0x96d6('0x45')]][_0x96d6('0x30')]),'telephone:save',this[_0x96d6('0xe')][_0x479c82['peer']]);}else if(this['trunks'][_0x479c82[_0x96d6('0x45')]]){this[_0x96d6('0xc')][_0x479c82[_0x96d6('0x45')]][_0x96d6('0x48')]=_0x479c82['peerstatus'][_0x96d6('0x35')]();this[_0x96d6('0xc')][_0x479c82[_0x96d6('0x45')]][_0x96d6('0x46')]=_0x479c82['address'];logger[_0x96d6('0x24')](_0x96d6('0x4a'),util[_0x96d6('0x1a')](this[_0x96d6('0xc')][_0x479c82['peer']],{'showHidden':![],'depth':null}));this[_0x96d6('0x21')](util[_0x96d6('0x2e')](_0x96d6('0x2f'),this[_0x96d6('0xc')][_0x479c82[_0x96d6('0x45')]]['name']),'trunk:save',this[_0x96d6('0xc')][_0x479c82[_0x96d6('0x45')]]);}}}catch(_0x1634bc){logger[_0x96d6('0x18')](_0x96d6('0x47'),util['inspect'](_0x1634bc,{'showHidden':![],'depth':null}));}};module['exports']=UserReport;
\ No newline at end of file
+var _0x5344=['format','trunk:%s','name','trunk:save','device','[userReport][devicestatechange]','local','toLowerCase','inuse','stateTime','toNumber','[userReport][devicestatechange]\x20sending\x20telephone:save\x20event:','telephone:%s','telephone:save','[userReport][devicestatechange]\x20sending\x20trunk:save\x20event:','Local','substring','indexOf','mobile','phone','updateStatusRealtime','syncPeerStatus','address','[userReport][peerstatus]','peer','status','[userReport][peerstatus]\x20sending\x20telephone:save\x20event:','[userReport][peerstatus]\x20sending\x20trunk:save\x20event:','exports','moment','bluebird','../../../config/environment','../../../config/logger','ami','../ami','redis','defaults','localhost','trunks','agents','telephones','registryentry','bind','registry','syncRegistry','syncDeviceState','peerstatus','syncRealtimeShow','resolve','then','actionSipShowRegistry','catch','error','[userReport][sipshowregistry]','inspect','actionDeviceStateList','actionSipPeerStatus','prototype','isUndefined','emit','isNotNull','info','[userReport][registry]\x20registry:%s\x20state:%s','username','state','debug','[userReport][registry]','find','stateRegistry','merge','event'];(function(_0x172747,_0x1732bd){var _0x509692=function(_0x448c56){while(--_0x448c56){_0x172747['push'](_0x172747['shift']());}};_0x509692(++_0x1732bd);}(_0x5344,0x64));var _0x4534=function(_0x187691,_0x4e3139){_0x187691=_0x187691-0x0;var _0x5923a6=_0x5344[_0x187691];return _0x5923a6;};'use strict';var _=require('lodash');var moment=require(_0x4534('0x0'));var util=require('util');var Redis=require('ioredis');var BPromise=require(_0x4534('0x1'));var config=require(_0x4534('0x2'));var logger=require(_0x4534('0x3'))(_0x4534('0x4'));var ami=require(_0x4534('0x5'));config[_0x4534('0x6')]=_[_0x4534('0x7')](config[_0x4534('0x6')],{'host':_0x4534('0x8'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config['redis']));function UserReport(_0xbd9f18){this['trunks']=_0xbd9f18[_0x4534('0x9')];this[_0x4534('0xa')]=_0xbd9f18[_0x4534('0xa')];this[_0x4534('0xb')]=_0xbd9f18[_0x4534('0xb')];ami['on'](_0x4534('0xc'),this['syncRegistry'][_0x4534('0xd')](this));ami['on'](_0x4534('0xe'),this[_0x4534('0xf')]['bind'](this));ami['on']('devicestatechange',this[_0x4534('0x10')][_0x4534('0xd')](this));ami['on'](_0x4534('0x11'),this['syncPeerStatus']['bind'](this));return this[_0x4534('0x12')]();}function showSipRegistrations(){Promise[_0x4534('0x13')]()[_0x4534('0x14')](ami[_0x4534('0x15')]())[_0x4534('0x16')](function(_0x5a5275){logger[_0x4534('0x17')](_0x4534('0x18'),util[_0x4534('0x19')](_0x5a5275,{'showHidden':![],'depth':null}));});}function listDeviceStates(){Promise[_0x4534('0x13')]()[_0x4534('0x14')](ami[_0x4534('0x1a')]())[_0x4534('0x16')](function(_0x4ea876){logger[_0x4534('0x17')]('[userReport][devicestatelist]',util[_0x4534('0x19')](_0x4ea876,{'showHidden':![],'depth':null}));});}function showPeersStatus(){Promise[_0x4534('0x13')]()['then'](ami[_0x4534('0x1b')]())['catch'](function(_0x3a5b50){logger[_0x4534('0x17')]('[userReport][sippeerstatus]',util['inspect'](_0x3a5b50,{'showHidden':![],'depth':null}));});}UserReport[_0x4534('0x1c')][_0x4534('0x12')]=function(){setInterval(function(){BPromise[_0x4534('0x13')]()[_0x4534('0x14')](showSipRegistrations())[_0x4534('0x14')](listDeviceStates())['then'](showPeersStatus());},0x32c8);};UserReport[_0x4534('0x1c')]['isNotNull']=function(_0x5c471f){return _0x5c471f!==null&&!_[_0x4534('0x1d')](_0x5c471f);};UserReport[_0x4534('0x1c')][_0x4534('0x1e')]=function(_0x59dd72,_0xc4079d,_0x3590b7){io['to'](_0x59dd72)[_0x4534('0x1e')](_0xc4079d,_0x3590b7);};UserReport[_0x4534('0x1c')]['syncRegistry']=function(_0x1d92be){try{if(this[_0x4534('0x1f')](_0x1d92be)){logger[_0x4534('0x20')](_0x4534('0x21'),_0x1d92be[_0x4534('0x22')],_0x1d92be[_0x4534('0x23')]);logger[_0x4534('0x24')](_0x4534('0x25'),util[_0x4534('0x19')](_0x1d92be,{'showHidden':![],'depth':null}));var _0x5e0d1c=_[_0x4534('0x26')](this[_0x4534('0x9')],{'defaultuser':_0x1d92be[_0x4534('0x22')]});if(_0x5e0d1c){_0x1d92be[_0x4534('0x27')]=_0x1d92be[_0x4534('0x23')];_[_0x4534('0x28')](_0x5e0d1c,_['omit'](_0x1d92be,[_0x4534('0x29'),'actionid','username',_0x4534('0x23')]));logger[_0x4534('0x24')]('[userReport][registry]\x20sending\x20trunk:save\x20event:',util[_0x4534('0x19')](_0x5e0d1c,{'showHidden':![],'depth':null}));this[_0x4534('0x1e')](util[_0x4534('0x2a')](_0x4534('0x2b'),_0x5e0d1c[_0x4534('0x2c')]),_0x4534('0x2d'),_0x5e0d1c);}}}catch(_0x4c2506){logger[_0x4534('0x17')](_0x4534('0x25'),util[_0x4534('0x19')](_0x4c2506,{'showHidden':![],'depth':null}));}};UserReport[_0x4534('0x1c')][_0x4534('0x10')]=function(_0x58425b){try{if(this[_0x4534('0x1f')](_0x58425b)){logger['info']('[userReport][devicestatechange]\x20device:%s\x20state:%s',_0x58425b[_0x4534('0x2e')],_0x58425b[_0x4534('0x23')]);logger[_0x4534('0x24')](_0x4534('0x2f'),util['inspect'](_0x58425b,{'showHidden':![],'depth':null}));if(this[_0x4534('0xa')][_0x58425b[_0x4534('0x2e')]]){if(!this['agents'][_0x58425b[_0x4534('0x2e')]][_0x4534('0x30')]||_0x58425b[_0x4534('0x23')][_0x4534('0x31')]()==_0x4534('0x32')){this[_0x4534('0xa')][_0x58425b[_0x4534('0x2e')]][_0x4534('0x30')]=![];if(this['agents'][_0x58425b[_0x4534('0x2e')]][_0x4534('0x23')]!==_0x58425b[_0x4534('0x23')][_0x4534('0x31')]()){this[_0x4534('0xa')][_0x58425b[_0x4534('0x2e')]][_0x4534('0x33')]=_[_0x4534('0x34')](moment()[_0x4534('0x2a')]('x'));}this[_0x4534('0xa')][_0x58425b[_0x4534('0x2e')]]['state']=_0x58425b[_0x4534('0x23')]['toLowerCase']();this[_0x4534('0xa')][_0x58425b['device']]['updateStatusRealtime'](_0x58425b);}}else if(this[_0x4534('0xb')][_0x58425b[_0x4534('0x2e')]]){if(this['telephones'][_0x58425b['device']][_0x4534('0x23')]!==_0x58425b[_0x4534('0x23')][_0x4534('0x31')]()){this[_0x4534('0xb')][_0x58425b[_0x4534('0x2e')]][_0x4534('0x33')]=_[_0x4534('0x34')](moment()[_0x4534('0x2a')]('x'));}this['telephones'][_0x58425b['device']][_0x4534('0x23')]=_0x58425b['state'][_0x4534('0x31')]();logger[_0x4534('0x24')](_0x4534('0x35'),util[_0x4534('0x19')](this[_0x4534('0xb')][_0x58425b['device']],{'showHidden':![],'depth':null}));this[_0x4534('0x1e')](util[_0x4534('0x2a')](_0x4534('0x36'),this['telephones'][_0x58425b['device']][_0x4534('0x2c')]),_0x4534('0x37'),this[_0x4534('0xb')][_0x58425b[_0x4534('0x2e')]]);}else if(this[_0x4534('0x9')][_0x58425b['device']]){if(this[_0x4534('0x9')][_0x58425b[_0x4534('0x2e')]][_0x4534('0x23')]!==_0x58425b['state'][_0x4534('0x31')]()){this['trunks'][_0x58425b[_0x4534('0x2e')]]['stateTime']=_[_0x4534('0x34')](moment()['format']('x'));}this[_0x4534('0x9')][_0x58425b[_0x4534('0x2e')]][_0x4534('0x23')]=_0x58425b[_0x4534('0x23')][_0x4534('0x31')]();logger[_0x4534('0x24')](_0x4534('0x38'),util[_0x4534('0x19')](this['trunks'][_0x58425b['device']],{'showHidden':![],'depth':null}));this[_0x4534('0x1e')](util[_0x4534('0x2a')]('trunk:%s',this[_0x4534('0x9')][_0x58425b[_0x4534('0x2e')]][_0x4534('0x2c')]),_0x4534('0x2d'),this[_0x4534('0x9')][_0x58425b['device']]);}else if(_['startsWith'](_0x58425b[_0x4534('0x2e')],_0x4534('0x39'))){var _0x1d82d1=_0x58425b[_0x4534('0x2e')];var _0x62c29f=_0x1d82d1[_0x4534('0x3a')](_0x1d82d1['indexOf']('/')+0x1,_0x1d82d1[_0x4534('0x3b')]('@'));var _0xfbf736=_[_0x4534('0x26')](this['agents'],function(_0x4ef082){return _0x4ef082[_0x4534('0x3c')]==_0x62c29f||_0x4ef082[_0x4534('0x3d')]==_0x62c29f||_0x4ef082['accountcode']==_0x62c29f;});if(_0xfbf736){if(_0xfbf736[_0x4534('0x23')]!==_0x58425b[_0x4534('0x23')][_0x4534('0x31')]()){_0xfbf736['stateTime']=_['toNumber'](moment()[_0x4534('0x2a')]('x'));}_0xfbf736[_0x4534('0x23')]=_0x58425b[_0x4534('0x23')][_0x4534('0x31')]();_0xfbf736[_0x4534('0x30')]=!![];_0xfbf736[_0x4534('0x3e')](_0x58425b);}}}}catch(_0x32fbdf){logger[_0x4534('0x17')](_0x4534('0x2f'),util[_0x4534('0x19')](_0x32fbdf,{'showHidden':![],'depth':null}));}};UserReport[_0x4534('0x1c')][_0x4534('0x3f')]=function(_0x231eae){try{if(this[_0x4534('0x1f')](_0x231eae)&&this[_0x4534('0x1f')](_0x231eae[_0x4534('0x11')])){logger['info']('[userReport][peerstatus]\x20peer:%s\x20address:%s\x20status:%s',_0x231eae['peer'],_0x231eae[_0x4534('0x40')],_0x231eae[_0x4534('0x11')]);logger[_0x4534('0x24')](_0x4534('0x41'),util[_0x4534('0x19')](_0x231eae,{'showHidden':![],'depth':null}));if(this['agents'][_0x231eae['peer']]){if(!this[_0x4534('0xa')][_0x231eae[_0x4534('0x42')]][_0x4534('0x30')]||_0x231eae['peerstatus']['toLowerCase']()=='registered'){this[_0x4534('0xa')][_0x231eae['peer']][_0x4534('0x30')]=![];this[_0x4534('0xa')][_0x231eae[_0x4534('0x42')]][_0x4534('0x43')]=_0x231eae['peerstatus']['toLowerCase']();this[_0x4534('0xa')][_0x231eae[_0x4534('0x42')]][_0x4534('0x40')]=_0x231eae['address'];this[_0x4534('0xa')][_0x231eae[_0x4534('0x42')]]['updateStatusRealtime'](_0x231eae);}}else if(this['telephones'][_0x231eae[_0x4534('0x42')]]){this[_0x4534('0xb')][_0x231eae['peer']][_0x4534('0x43')]=_0x231eae['peerstatus']['toLowerCase']();this[_0x4534('0xb')][_0x231eae[_0x4534('0x42')]]['address']=_0x231eae[_0x4534('0x40')];logger[_0x4534('0x24')](_0x4534('0x44'),util[_0x4534('0x19')](this[_0x4534('0xb')][_0x231eae[_0x4534('0x42')]],{'showHidden':![],'depth':null}));this[_0x4534('0x1e')](util[_0x4534('0x2a')]('telephone:%s',this[_0x4534('0xb')][_0x231eae[_0x4534('0x42')]]['name']),_0x4534('0x37'),this['telephones'][_0x231eae[_0x4534('0x42')]]);}else if(this['trunks'][_0x231eae[_0x4534('0x42')]]){this[_0x4534('0x9')][_0x231eae[_0x4534('0x42')]][_0x4534('0x43')]=_0x231eae[_0x4534('0x11')]['toLowerCase']();this[_0x4534('0x9')][_0x231eae[_0x4534('0x42')]]['address']=_0x231eae[_0x4534('0x40')];logger[_0x4534('0x24')](_0x4534('0x45'),util[_0x4534('0x19')](this['trunks'][_0x231eae[_0x4534('0x42')]],{'showHidden':![],'depth':null}));this[_0x4534('0x1e')](util['format'](_0x4534('0x2b'),this[_0x4534('0x9')][_0x231eae['peer']][_0x4534('0x2c')]),_0x4534('0x2d'),this[_0x4534('0x9')][_0x231eae['peer']]);}}}catch(_0x43bdf5){logger[_0x4534('0x17')](_0x4534('0x41'),util[_0x4534('0x19')](_0x43bdf5,{'showHidden':![],'depth':null}));}};module[_0x4534('0x46')]=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(_0x1802e1,_0x5cd2be){var _0x19876a=function(_0x24a38e){while(--_0x24a38e){_0x1802e1['push'](_0x1802e1['shift']());}};_0x19876a(++_0x5cd2be);}(_0xa9e0,0x123));var _0x0a9e=function(_0xbca1b1,_0x33f0ce){_0xbca1b1=_0xbca1b1-0x0;var _0x4e1686=_0xa9e0[_0xbca1b1];return _0x4e1686;};'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 _0x231c=['transfereeuniqueid','[%s][voiceAgentReport][attendedtransfer]\x20agent:%s\x20destuniqueid:%s\x20lastevent:complete','diff','seconds','secondtransfereruniqueid','[%s][voiceAgentReport][attendedtransfer]','syncBlindTransfer','[%s][voiceAgentReport][blindtransfer]\x20event:','transfereruniqueid','[%s][voiceAgentReport][blindtransfer]\x20agent:%s\x20destuniqueid:%s\x20lastevent:complete','[%s][voiceAgentReport][blindtransfer]','channel','substring','[%s][voiceAgentReport][musiconholdstart]\x20interface:%s','[%s][voiceAgentReport][musiconholdstart]','[%s][voiceAgentReport][musiconholdstop]\x20event:','lastIndexOf','onhold','[%s][voiceAgentReport][musiconholdstop]','exports','lodash','moment','util','ioredis','../../../config/environment','../ami','redis','socket.io-emitter','channels','voiceChannels','agents','variables','agentcalled','bind','agentconnect','syncAgentConnect','agentringnoanswer','syncAgentRingNoAnswer','queuecallerabandon','syncQueueCallerAbandon','syncAgentComplete','varset','syncVarSet','hangup','musiconholdstart','syncMusicOnHoldStart','musiconholdstop','syncMusicOnHoldStop','attendedtransfer','syncAttendedTransfer','emit','prototype','isNotNull','isUndefined','info','[%s][voiceAgentReport][agentcalled]\x20agent:%s\x20destuniqueid:%s\x20lastevent:called','uniqueid','debug','[%s][voiceAgentReport][agentcalled]\x20event:','inspect','destuniqueid','format','YYYY-MM-DD\x20HH:mm:ss','called','voiceQueues','queue','mandatoryDisposition','type','inbound','voice','event','[%s][voiceAgentReport][agentcalled]\x20sending\x20agentcalled\x20event:','user:%s','membername','error','[%s][voiceAgentReport][agentcalled]','[%s][voiceAgentReport][agentconnect]\x20event:','hasOwnProperty','[%s][voiceAgentReport][agentconnect]\x20agent:%s\x20destuniqueid:%s\x20lastevent:connect','agentconnectAt','connectedlinename','connectedlinenum','destchannelstate','destchannelstatedesc','holdtime','lastevent','connect','routealias','interface','pick','destconnectedlinenum','[%s][voiceAgentReport][agentconnect]\x20sending\x20agentconnect\x20event:','custom:agentconnect','[%s][voiceAgentReport][agentcalled]\x20sending\x20user:agentconnect\x20event:','user:agentconnect','agentcomplete','[%s][voiceAgentReport][agentconnect]\x20agent:%s\x20destuniqueid:%s\x20lastevent:answered_elsewhere','agentringnoanswerAt','answeredelsewheredestinationuniqueid','answered_elsewhere','reason','[%s][voiceAgentReport][agentconnect]\x20sending\x20agentansweredelsewhere\x20event:','custom:agentansweredelsewhere','[%s][voiceAgentReport][agentconnect]','rejected','[%s][voiceAgentReport][queuecallerabandon]\x20event:','[%s][voiceAgentReport][queuecallerabandon]\x20agent:%s\x20destuniqueid:%s\x20lastevent:abandoned','abandoned','[%s][voiceAgentReport][queuecallerabandon]\x20sending\x20agentqueuecallerabandon\x20event:','custom:agentqueuecallerabandon','[%s][voiceAgentReport][agentcomplete]\x20event:','agentcompleteAt','complete','transfer','agent','talktime','acw','acwtime','agentacw','omit','custom:agentcomplete','[%s][voiceAgentReport][agentcomplete]\x20sending\x20user:agentcomplete\x20event:','user:agentcomplete','[%s][voiceAgentReport][agentcomplete]','addVariable','variable','value','[%s][voiceAgentReport][varset]\x20destuniqueid:%s\x20variable:%s\x20value:%s','keys','[%s][voiceAgentReport][varset]','rtpaudioqos','rtpaudioqosjitter','rtpaudioqosjitterbridged','rtpaudioqoslossbridged','membercalls','memberdynamic','memberinterface','memberlastcall','memberpenalty','[%s][voiceAgentReport][hangup]\x20event:','[%s][voiceAgentReport][hangup]\x20sending\x20voiceAgentReport\x20event:','values','custom:voiceAgentReport','[%s][voiceAgentReport][attendedtransfer]\x20event:'];(function(_0x5b644e,_0x2e5e07){var _0x49c6bf=function(_0x3032d9){while(--_0x3032d9){_0x5b644e['push'](_0x5b644e['shift']());}};_0x49c6bf(++_0x2e5e07);}(_0x231c,0x134));var _0xc231=function(_0x39819f,_0x343f90){_0x39819f=_0x39819f-0x0;var _0x10a95f=_0x231c[_0x39819f];return _0x10a95f;};'use strict';var _=require(_0xc231('0x0'));var moment=require(_0xc231('0x1'));var util=require(_0xc231('0x2'));var Redis=require(_0xc231('0x3'));var config=require(_0xc231('0x4'));var logger=require('../../../config/logger')('ami');var ami=require(_0xc231('0x5'));config[_0xc231('0x6')]=_['defaults'](config['redis'],{'host':'localhost','port':0x18eb});var io=require(_0xc231('0x7'))(new Redis(config[_0xc231('0x6')]));function VoiceAgentReport(_0x276e1){this[_0xc231('0x8')]={};this[_0xc231('0x9')]=_0x276e1['channels'];this['voiceQueues']=_0x276e1['voiceQueues'];this[_0xc231('0xa')]=_0x276e1[_0xc231('0xa')];this[_0xc231('0xb')]={};ami['on'](_0xc231('0xc'),this['syncAgentCalled'][_0xc231('0xd')](this));ami['on'](_0xc231('0xe'),this[_0xc231('0xf')][_0xc231('0xd')](this));ami['on'](_0xc231('0x10'),this[_0xc231('0x11')][_0xc231('0xd')](this));ami['on'](_0xc231('0x12'),this[_0xc231('0x13')][_0xc231('0xd')](this));ami['on']('agentcomplete',this[_0xc231('0x14')][_0xc231('0xd')](this));ami['on'](_0xc231('0x15'),this[_0xc231('0x16')]['bind'](this));ami['on'](_0xc231('0x17'),this['syncHangup']['bind'](this));ami['on'](_0xc231('0x18'),this[_0xc231('0x19')][_0xc231('0xd')](this));ami['on'](_0xc231('0x1a'),this[_0xc231('0x1b')][_0xc231('0xd')](this));ami['on'](_0xc231('0x1c'),this[_0xc231('0x1d')]['bind'](this));ami['on']('blindtransfer',this['syncBlindTransfer'][_0xc231('0xd')](this));}VoiceAgentReport['prototype'][_0xc231('0x1e')]=function(_0x3134f8,_0x32f1b2,_0x5ae0f9){io['to'](_0x3134f8)['emit'](_0x32f1b2,_0x5ae0f9);};VoiceAgentReport[_0xc231('0x1f')][_0xc231('0x20')]=function(_0x5b04b4){return _0x5b04b4!==null&&!_[_0xc231('0x21')](_0x5b04b4);};VoiceAgentReport[_0xc231('0x1f')]['syncAgentCalled']=function(_0x375560){try{if(this['isNotNull'](_0x375560)){logger[_0xc231('0x22')](_0xc231('0x23'),_0x375560[_0xc231('0x24')],_0x375560['membername'],_0x375560['destuniqueid']);logger[_0xc231('0x25')](_0xc231('0x26'),_0x375560[_0xc231('0x24')],util[_0xc231('0x27')](_0x375560,{'showHidden':![],'depth':null}));if(_['isUndefined'](this[_0xc231('0x8')][_0x375560[_0xc231('0x24')]])){this['channels'][_0x375560['uniqueid']]={};}if(_[_0xc231('0x21')](this['channels'][_0x375560['uniqueid']][_0x375560[_0xc231('0x28')]])){this[_0xc231('0x8')][_0x375560[_0xc231('0x24')]][_0x375560[_0xc231('0x28')]]={'agentcalledAt':moment()[_0xc231('0x29')](_0xc231('0x2a')),'lastevent':_0xc231('0x2b'),'mandatoryDisposition':this[_0xc231('0x2c')][_0x375560['queue']]?this['voiceQueues'][_0x375560[_0xc231('0x2d')]][_0xc231('0x2e')]||![]:![],'type':this['voiceQueues'][_0x375560[_0xc231('0x2d')]]?this[_0xc231('0x2c')][_0x375560[_0xc231('0x2d')]][_0xc231('0x2f')]||'inbound':_0xc231('0x30'),'variables':this['variables'][_0x375560[_0xc231('0x24')]],'motionChannel':_0xc231('0x31')};}_['merge'](this[_0xc231('0x8')][_0x375560[_0xc231('0x24')]][_0x375560['destuniqueid']],_['omit'](_0x375560,[_0xc231('0x32'),'privilege']));logger[_0xc231('0x25')](_0xc231('0x33'),_0x375560[_0xc231('0x24')],util['inspect'](this['channels'][_0x375560[_0xc231('0x24')]][_0x375560['destuniqueid']],{'showHidden':![],'depth':null}));ami[_0xc231('0x1e')]('custom:agentcalled',this['channels'][_0x375560[_0xc231('0x24')]][_0x375560['destuniqueid']]);logger['debug']('[%s][voiceAgentReport][agentcalled]\x20sending\x20user:called\x20event:',_0x375560['uniqueid'],util[_0xc231('0x27')](this[_0xc231('0x8')][_0x375560[_0xc231('0x24')]][_0x375560[_0xc231('0x28')]],{'showHidden':![],'depth':null}));this['emit'](util['format'](_0xc231('0x34'),_0x375560[_0xc231('0x35')]),'user:called',this[_0xc231('0x8')][_0x375560[_0xc231('0x24')]][_0x375560[_0xc231('0x28')]]);}}catch(_0x28a5c8){logger[_0xc231('0x36')](_0xc231('0x37'),_0x375560[_0xc231('0x24')],util[_0xc231('0x27')](_0x28a5c8,{'showHidden':![],'depth':null}));}};VoiceAgentReport[_0xc231('0x1f')][_0xc231('0xf')]=function(_0x20e2fa){try{if(this[_0xc231('0x20')](_0x20e2fa)){if(this['channels'][_0x20e2fa[_0xc231('0x24')]]){logger[_0xc231('0x25')](_0xc231('0x38'),_0x20e2fa['uniqueid'],util['inspect'](_0x20e2fa,{'showHidden':![],'depth':null}));for(var _0x5ad3d9 in this['channels'][_0x20e2fa[_0xc231('0x24')]]){if(this['channels'][_0x20e2fa[_0xc231('0x24')]][_0xc231('0x39')](_0x5ad3d9)){if(_0x20e2fa[_0xc231('0x28')]===_0x5ad3d9){logger['info'](_0xc231('0x3a'),_0x20e2fa[_0xc231('0x24')],_0x20e2fa[_0xc231('0x35')],_0x20e2fa[_0xc231('0x28')]);this[_0xc231('0x8')][_0x20e2fa[_0xc231('0x24')]][_0x5ad3d9][_0xc231('0x3b')]=moment()[_0xc231('0x29')]('YYYY-MM-DD\x20HH:mm:ss');this[_0xc231('0x8')][_0x20e2fa['uniqueid']][_0x5ad3d9][_0xc231('0x3c')]=_0x20e2fa[_0xc231('0x3c')];this[_0xc231('0x8')][_0x20e2fa[_0xc231('0x24')]][_0x5ad3d9][_0xc231('0x3d')]=_0x20e2fa[_0xc231('0x3d')];this[_0xc231('0x8')][_0x20e2fa['uniqueid']][_0x5ad3d9]['destchannelstate']=_0x20e2fa[_0xc231('0x3e')];this[_0xc231('0x8')][_0x20e2fa[_0xc231('0x24')]][_0x5ad3d9][_0xc231('0x3f')]=_0x20e2fa[_0xc231('0x3f')];this[_0xc231('0x8')][_0x20e2fa[_0xc231('0x24')]][_0x5ad3d9][_0xc231('0x40')]=_0x20e2fa[_0xc231('0x40')];this['channels'][_0x20e2fa[_0xc231('0x24')]][_0x5ad3d9][_0xc231('0x41')]=_0xc231('0x42');if(this['voiceChannels'][this['channels'][_0x20e2fa[_0xc231('0x24')]][_0x5ad3d9]['uniqueid']]){var _0x3ac576=this[_0xc231('0x9')][this['channels'][_0x20e2fa[_0xc231('0x24')]][_0x5ad3d9]['uniqueid']][_0xc231('0x43')];this[_0xc231('0x8')][_0x20e2fa[_0xc231('0x24')]][_0x5ad3d9][_0xc231('0x43')]=_0x3ac576;_0x20e2fa[_0xc231('0x43')]=_0x3ac576;}_['merge'](this[_0xc231('0xa')][_0x20e2fa[_0xc231('0x44')]],_[_0xc231('0x45')](_0x20e2fa,['queue',_0xc231('0x46'),_0xc231('0x43')]));logger[_0xc231('0x25')](_0xc231('0x47'),_0x20e2fa[_0xc231('0x24')],util[_0xc231('0x27')](this['channels'][_0x20e2fa['uniqueid']][_0x20e2fa[_0xc231('0x28')]],{'showHidden':![],'depth':null}));ami[_0xc231('0x1e')](_0xc231('0x48'),this['channels'][_0x20e2fa['uniqueid']][_0x20e2fa[_0xc231('0x28')]]);logger['debug'](_0xc231('0x49'),_0x20e2fa[_0xc231('0x24')],util[_0xc231('0x27')](this[_0xc231('0x8')][_0x20e2fa['uniqueid']][_0x20e2fa[_0xc231('0x28')]],{'showHidden':![],'depth':null}));this[_0xc231('0x1e')](util[_0xc231('0x29')](_0xc231('0x34'),_0x20e2fa[_0xc231('0x35')]),_0xc231('0x4a'),this['channels'][_0x20e2fa[_0xc231('0x24')]][_0x20e2fa[_0xc231('0x28')]]);}else if(!this[_0xc231('0x8')][_0x20e2fa['uniqueid']][_0x5ad3d9][_0xc231('0x10')]&&!this[_0xc231('0x8')][_0x20e2fa[_0xc231('0x24')]][_0x5ad3d9][_0xc231('0x4b')]){logger[_0xc231('0x22')](_0xc231('0x4c'),_0x20e2fa['uniqueid'],this['channels'][_0x20e2fa['uniqueid']][_0x5ad3d9][_0xc231('0x35')],_0x5ad3d9);this[_0xc231('0x8')][_0x20e2fa[_0xc231('0x24')]][_0x5ad3d9]['agentringnoanswer']=!![];this[_0xc231('0x8')][_0x20e2fa['uniqueid']][_0x5ad3d9][_0xc231('0x4d')]=moment()[_0xc231('0x29')](_0xc231('0x2a'));this['channels'][_0x20e2fa[_0xc231('0x24')]][_0x5ad3d9][_0xc231('0x4e')]=_0x20e2fa['destuniqueid'];this[_0xc231('0x8')][_0x20e2fa['uniqueid']][_0x5ad3d9]['answeredelsewheremembername']=_0x20e2fa[_0xc231('0x35')];this[_0xc231('0x8')][_0x20e2fa[_0xc231('0x24')]][_0x5ad3d9]['lastevent']=_0xc231('0x4f');this['channels'][_0x20e2fa[_0xc231('0x24')]][_0x5ad3d9][_0xc231('0x50')]=_0xc231('0x4f');logger[_0xc231('0x25')](_0xc231('0x51'),_0x20e2fa['uniqueid'],util['inspect'](this[_0xc231('0x8')][_0x20e2fa[_0xc231('0x24')]][_0x5ad3d9],{'showHidden':![],'depth':null}));ami[_0xc231('0x1e')](_0xc231('0x52'),this['channels'][_0x20e2fa[_0xc231('0x24')]][_0x5ad3d9]);}}}}}}catch(_0x48ffbc){logger['error'](_0xc231('0x53'),_0x20e2fa[_0xc231('0x24')],util[_0xc231('0x27')](_0x48ffbc,{'showHidden':![],'depth':null}));}};VoiceAgentReport[_0xc231('0x1f')][_0xc231('0x11')]=function(_0x57827a){try{if(this[_0xc231('0x20')](_0x57827a)){logger[_0xc231('0x25')]('[%s][voiceAgentReport][agentringnoanswer]\x20event:',_0x57827a['uniqueid'],util[_0xc231('0x27')](_0x57827a,{'showHidden':![],'depth':null}));if(this[_0xc231('0x8')][_0x57827a[_0xc231('0x24')]]&&this[_0xc231('0x8')][_0x57827a[_0xc231('0x24')]][_0x57827a[_0xc231('0x28')]]){logger[_0xc231('0x22')]('[%s][voiceAgentReport][agentringnoanswer]\x20agent:%s\x20destuniqueid:%s\x20lastevent:rejected',_0x57827a[_0xc231('0x24')],_0x57827a['membername'],_0x57827a[_0xc231('0x28')]);this[_0xc231('0x8')][_0x57827a[_0xc231('0x24')]][_0x57827a[_0xc231('0x28')]][_0xc231('0x10')]=!![];this['channels'][_0x57827a[_0xc231('0x24')]][_0x57827a[_0xc231('0x28')]]['agentringnoanswerAt']=moment()['format'](_0xc231('0x2a'));this[_0xc231('0x8')][_0x57827a['uniqueid']][_0x57827a[_0xc231('0x28')]]['lastevent']=_0xc231('0x54');this[_0xc231('0x8')][_0x57827a['uniqueid']][_0x57827a[_0xc231('0x28')]][_0xc231('0x50')]=_0xc231('0x54');logger[_0xc231('0x25')]('[%s][voiceAgentReport][agentringnoanswer]\x20sending\x20agentringnoanswer\x20event:',_0x57827a[_0xc231('0x24')],util[_0xc231('0x27')](this[_0xc231('0x8')][_0x57827a[_0xc231('0x24')]][_0x57827a['destuniqueid']],{'showHidden':![],'depth':null}));ami[_0xc231('0x1e')]('custom:agentringnoanswer',this[_0xc231('0x8')][_0x57827a[_0xc231('0x24')]][_0x57827a[_0xc231('0x28')]]);}}}catch(_0x5c11bb){logger[_0xc231('0x36')]('[%s][voiceAgentReport][agentringnoanswer]',_0x57827a[_0xc231('0x24')],util[_0xc231('0x27')](_0x5c11bb,{'showHidden':![],'depth':null}));}};VoiceAgentReport[_0xc231('0x1f')]['syncQueueCallerAbandon']=function(_0x1c2587){try{if(this[_0xc231('0x20')](_0x1c2587)){logger['debug'](_0xc231('0x55'),_0x1c2587[_0xc231('0x24')],util[_0xc231('0x27')](_0x1c2587,{'showHidden':![],'depth':null}));if(this[_0xc231('0x8')][_0x1c2587['uniqueid']]){for(var _0x2b0e69 in this[_0xc231('0x8')][_0x1c2587[_0xc231('0x24')]]){if(this[_0xc231('0x8')][_0x1c2587[_0xc231('0x24')]][_0xc231('0x39')](_0x2b0e69)&&!this['channels'][_0x1c2587[_0xc231('0x24')]][_0x2b0e69][_0xc231('0x10')]&&!this['channels'][_0x1c2587[_0xc231('0x24')]][_0x2b0e69]['agentcomplete']){logger[_0xc231('0x22')](_0xc231('0x56'),_0x1c2587['uniqueid'],this[_0xc231('0x8')][_0x1c2587[_0xc231('0x24')]][_0x2b0e69][_0xc231('0x35')],_0x2b0e69);this[_0xc231('0x8')][_0x1c2587[_0xc231('0x24')]][_0x2b0e69]['agentringnoanswer']=!![];this[_0xc231('0x8')][_0x1c2587[_0xc231('0x24')]][_0x2b0e69][_0xc231('0x4d')]=moment()[_0xc231('0x29')]('YYYY-MM-DD\x20HH:mm:ss');this['channels'][_0x1c2587[_0xc231('0x24')]][_0x2b0e69][_0xc231('0x41')]=_0xc231('0x57');this['channels'][_0x1c2587[_0xc231('0x24')]][_0x2b0e69][_0xc231('0x50')]='abandoned';logger[_0xc231('0x25')](_0xc231('0x58'),_0x1c2587[_0xc231('0x24')],util[_0xc231('0x27')](this[_0xc231('0x8')][_0x1c2587[_0xc231('0x24')]][_0x2b0e69],{'showHidden':![],'depth':null}));ami[_0xc231('0x1e')](_0xc231('0x59'),this[_0xc231('0x8')][_0x1c2587[_0xc231('0x24')]][_0x2b0e69]);}}}}}catch(_0x4ac558){logger['error']('[%s][voiceAgentReport][queuecallerabandon]',_0x1c2587[_0xc231('0x24')],util[_0xc231('0x27')](_0x4ac558,{'showHidden':![],'depth':null}));}};VoiceAgentReport[_0xc231('0x1f')]['syncAgentComplete']=function(_0x2916e2){try{if(this[_0xc231('0x20')](_0x2916e2)){logger[_0xc231('0x25')](_0xc231('0x5a'),_0x2916e2['uniqueid'],util[_0xc231('0x27')](_0x2916e2,{'showHidden':![],'depth':null}));if(this['channels'][_0x2916e2['uniqueid']]){for(var _0x2da02b in this[_0xc231('0x8')][_0x2916e2[_0xc231('0x24')]]){if(this['channels'][_0x2916e2[_0xc231('0x24')]][_0xc231('0x39')](_0x2da02b)){if(this[_0xc231('0x8')][_0x2916e2[_0xc231('0x24')]][_0x2da02b][_0xc231('0x3b')]&&!this['channels'][_0x2916e2[_0xc231('0x24')]][_0x2da02b][_0xc231('0x4b')]){logger[_0xc231('0x22')]('[%s][voiceAgentReport][agentcomplete]\x20agent:%s\x20destuniqueid:%s\x20lastevent:complete',_0x2916e2['uniqueid'],this[_0xc231('0x8')][_0x2916e2[_0xc231('0x24')]][_0x2da02b][_0xc231('0x35')],_0x2da02b);this[_0xc231('0x8')][_0x2916e2[_0xc231('0x24')]][_0x2da02b][_0xc231('0x4b')]=!![];this[_0xc231('0x8')][_0x2916e2[_0xc231('0x24')]][_0x2da02b][_0xc231('0x5b')]=moment()[_0xc231('0x29')]('YYYY-MM-DD\x20HH:mm:ss');this['channels'][_0x2916e2['uniqueid']][_0x2da02b][_0xc231('0x41')]=_0xc231('0x5c');this[_0xc231('0x8')][_0x2916e2[_0xc231('0x24')]][_0x2da02b][_0xc231('0x50')]=_0x2916e2[_0xc231('0x50')]==_0xc231('0x5d')?_0xc231('0x5e'):_0x2916e2[_0xc231('0x50')];this[_0xc231('0x8')][_0x2916e2[_0xc231('0x24')]][_0x2da02b][_0xc231('0x5f')]=_0x2916e2['talktime'];if(this[_0xc231('0x2c')][_0x2916e2[_0xc231('0x2d')]]&&this[_0xc231('0x2c')][_0x2916e2[_0xc231('0x2d')]][_0xc231('0x60')]){this[_0xc231('0x8')][_0x2916e2['uniqueid']][_0x2da02b][_0xc231('0x61')]=this[_0xc231('0x2c')][_0x2916e2[_0xc231('0x2d')]]['acwTimeout'];this[_0xc231('0x8')][_0x2916e2[_0xc231('0x24')]][_0x2da02b][_0xc231('0x62')]=!![];}this[_0xc231('0xa')][_0x2916e2[_0xc231('0x44')]]=_[_0xc231('0x63')](this[_0xc231('0xa')][_0x2916e2['interface']],[_0xc231('0x2d'),'destconnectedlinenum']);logger[_0xc231('0x25')]('[%s][voiceAgentReport][agentcomplete]\x20sending\x20agentcomplete\x20event:',_0x2916e2[_0xc231('0x24')],util[_0xc231('0x27')](this[_0xc231('0x8')][_0x2916e2[_0xc231('0x24')]][_0x2da02b],{'showHidden':![],'depth':null}));ami['emit'](_0xc231('0x64'),this[_0xc231('0x8')][_0x2916e2[_0xc231('0x24')]][_0x2da02b]);logger[_0xc231('0x25')](_0xc231('0x65'),_0x2916e2[_0xc231('0x24')],util['inspect'](this[_0xc231('0x8')][_0x2916e2[_0xc231('0x24')]][_0x2da02b],{'showHidden':![],'depth':null}));this[_0xc231('0x1e')](util[_0xc231('0x29')](_0xc231('0x34'),_0x2916e2[_0xc231('0x35')]),_0xc231('0x66'),this['channels'][_0x2916e2[_0xc231('0x24')]][_0x2da02b]);}}}}}}catch(_0x59c50c){logger[_0xc231('0x36')](_0xc231('0x67'),_0x2916e2[_0xc231('0x24')],util[_0xc231('0x27')](_0x59c50c,{'showHidden':![],'depth':null}));}};VoiceAgentReport[_0xc231('0x1f')][_0xc231('0x16')]=function(_0x53f9d4){try{if(this['isNotNull'](_0x53f9d4)){logger[_0xc231('0x25')]('[%s][voiceAgentReport][varset]\x20event:',_0x53f9d4[_0xc231('0x24')],util[_0xc231('0x27')](_0x53f9d4,{'showHidden':![],'depth':null}));this[_0xc231('0x68')](_0x53f9d4[_0xc231('0x24')],_['keys'](_0x53f9d4[_0xc231('0x69')])[0x0],_0x53f9d4[_0xc231('0x6a')]);if(this[_0xc231('0x8')][_0x53f9d4[_0xc231('0x24')]]){for(var _0x46d980 in this[_0xc231('0x8')][_0x53f9d4[_0xc231('0x24')]]){if(this[_0xc231('0x8')][_0x53f9d4['uniqueid']][_0xc231('0x39')](_0x46d980)){logger['info'](_0xc231('0x6b'),_0x53f9d4['uniqueid'],_0x46d980,_[_0xc231('0x6c')](_0x53f9d4[_0xc231('0x69')])[0x0],_0x53f9d4['value']);if(_[_0xc231('0x21')](this['channels'][_0x53f9d4[_0xc231('0x24')]][_0x46d980][_0xc231('0xb')])){this[_0xc231('0x8')][_0x53f9d4['uniqueid']][_0x46d980]['variables']={};}this[_0xc231('0x8')][_0x53f9d4['uniqueid']][_0x46d980][_0xc231('0xb')]=this[_0xc231('0xb')][_0x53f9d4[_0xc231('0x24')]];}}}}}catch(_0x26d38b){logger['error'](_0xc231('0x6d'),_0x53f9d4[_0xc231('0x24')],util[_0xc231('0x27')](_0x26d38b,{'showHidden':![],'depth':null}));}};VoiceAgentReport[_0xc231('0x1f')][_0xc231('0x68')]=function(_0x267b90,_0x1fc79d,_0x1dcff7){var _0x48ef79=[_0xc231('0x6e'),'rtpaudioqosbridged',_0xc231('0x6f'),_0xc231('0x70'),'rtpaudioqosloss',_0xc231('0x71'),'rtpaudioqosrtt','rtpaudioqosrttbridged','sipcallid','sipuri','bridgepeer','bridgepvtcallid',_0xc231('0x72'),_0xc231('0x73'),_0xc231('0x74'),_0xc231('0x75'),_0xc231('0x35'),_0xc231('0x76'),'memberrealtime'];if(!_['isNil'](_0x1fc79d)&&!_['includes'](_0x48ef79,_0x1fc79d)){if(_[_0xc231('0x21')](this[_0xc231('0xb')][_0x267b90])){this[_0xc231('0xb')][_0x267b90]={};}this['variables'][_0x267b90][_0x1fc79d]=_0x1dcff7;}};VoiceAgentReport[_0xc231('0x1f')]['syncHangup']=function(_0x5ebcac){try{if(this['isNotNull'](_0x5ebcac)){logger[_0xc231('0x25')](_0xc231('0x77'),_0x5ebcac[_0xc231('0x24')],util[_0xc231('0x27')](_0x5ebcac,{'showHidden':![],'depth':null}));if(this[_0xc231('0x8')][_0x5ebcac[_0xc231('0x24')]]){for(var _0x1e898d in this[_0xc231('0x8')][_0x5ebcac[_0xc231('0x24')]]){if(this[_0xc231('0x8')][_0x5ebcac[_0xc231('0x24')]]['hasOwnProperty'](_0x1e898d)){if(this[_0xc231('0x8')][_0x5ebcac[_0xc231('0x24')]][_0x1e898d][_0xc231('0x50')]==_0xc231('0x5d')&&this[_0xc231('0x8')][_0x5ebcac[_0xc231('0x24')]][_0x1e898d]['agentcomplete']){logger[_0xc231('0x22')]('[%s][voiceAgentReport][hangup]\x20destuniqueid:%s',_0x5ebcac[_0xc231('0x24')],_0x1e898d);this['channels'][_0x5ebcac[_0xc231('0x24')]][_0x1e898d][_0xc231('0x5b')]=moment()[_0xc231('0x29')](_0xc231('0x2a'));}}}logger[_0xc231('0x25')](_0xc231('0x78'),_0x5ebcac[_0xc231('0x24')],util['inspect'](_[_0xc231('0x79')](this[_0xc231('0x8')][_0x5ebcac['uniqueid']]),{'showHidden':![],'depth':null}));ami[_0xc231('0x1e')](_0xc231('0x7a'),_[_0xc231('0x79')](this['channels'][_0x5ebcac['uniqueid']]));delete this[_0xc231('0x8')][_0x5ebcac[_0xc231('0x24')]];}if(this[_0xc231('0xb')][_0x5ebcac['uniqueid']]){delete this[_0xc231('0xb')][_0x5ebcac[_0xc231('0x24')]];}}}catch(_0x24a704){logger[_0xc231('0x36')]('[%s][voiceAgentReport][hangup]',_0x5ebcac[_0xc231('0x24')],util[_0xc231('0x27')](_0x24a704,{'showHidden':![],'depth':null}));}};VoiceAgentReport[_0xc231('0x1f')][_0xc231('0x1d')]=function(_0x39a91a){try{if(this[_0xc231('0x20')](_0x39a91a)){logger[_0xc231('0x25')](_0xc231('0x7b'),_0x39a91a[_0xc231('0x24')],util[_0xc231('0x27')](_0x39a91a,{'showHidden':![],'depth':null}));if(this[_0xc231('0x8')][_0x39a91a[_0xc231('0x7c')]]){for(var _0x344e5d in this[_0xc231('0x8')][_0x39a91a[_0xc231('0x7c')]]){if(this['channels'][_0x39a91a[_0xc231('0x7c')]]['hasOwnProperty'](_0x344e5d)){if(_0x39a91a['origtransfereruniqueid']===_0x344e5d){logger['info'](_0xc231('0x7d'),_0x39a91a[_0xc231('0x24')],this[_0xc231('0x8')][_0x39a91a[_0xc231('0x7c')]][_0x344e5d][_0xc231('0x35')],_0x344e5d);var _0x20f93c=moment();this[_0xc231('0x8')][_0x39a91a[_0xc231('0x7c')]][_0x344e5d][_0xc231('0x4b')]=!![];this[_0xc231('0x8')][_0x39a91a[_0xc231('0x7c')]][_0x344e5d][_0xc231('0x5b')]=moment()[_0xc231('0x29')](_0xc231('0x2a'));this['channels'][_0x39a91a['transfereeuniqueid']][_0x344e5d]['lastevent']=_0xc231('0x5c');this[_0xc231('0x8')][_0x39a91a[_0xc231('0x7c')]][_0x344e5d][_0xc231('0x50')]='transfer';this[_0xc231('0x8')][_0x39a91a[_0xc231('0x7c')]][_0x344e5d][_0xc231('0x5f')]=_0x20f93c[_0xc231('0x7e')](this[_0xc231('0x8')][_0x39a91a['transfereeuniqueid']][_0x344e5d][_0xc231('0x3b')],_0xc231('0x7f'));}}}}if(this[_0xc231('0x8')][_0x39a91a[_0xc231('0x80')]]){var _0x4d83aa=this[_0xc231('0x8')][_0x39a91a[_0xc231('0x80')]];this[_0xc231('0x8')][_0x39a91a[_0xc231('0x80')]]=this[_0xc231('0x8')][_0x39a91a['transfereeuniqueid']];this[_0xc231('0x8')][_0x39a91a[_0xc231('0x7c')]]=_0x4d83aa;}}}catch(_0x1457ce){logger[_0xc231('0x36')](_0xc231('0x81'),_0x39a91a['uniqueid'],util[_0xc231('0x27')](_0x1457ce,{'showHidden':![],'depth':null}));}};VoiceAgentReport[_0xc231('0x1f')][_0xc231('0x82')]=function(_0x346bcd){try{if(this[_0xc231('0x20')](_0x346bcd)){logger[_0xc231('0x25')](_0xc231('0x83'),_0x346bcd['uniqueid'],util[_0xc231('0x27')](_0x346bcd,{'showHidden':![],'depth':null}));if(this[_0xc231('0x8')][_0x346bcd[_0xc231('0x7c')]]){for(var _0x4368be in this['channels'][_0x346bcd[_0xc231('0x7c')]]){if(this[_0xc231('0x8')][_0x346bcd['transfereeuniqueid']][_0xc231('0x39')](_0x4368be)){if(_0x346bcd[_0xc231('0x84')]===_0x4368be){logger[_0xc231('0x22')](_0xc231('0x85'),_0x346bcd['uniqueid'],this[_0xc231('0x8')][_0x346bcd[_0xc231('0x7c')]][_0x4368be][_0xc231('0x35')],_0x4368be);var _0x45b21c=moment();this[_0xc231('0x8')][_0x346bcd[_0xc231('0x7c')]][_0x4368be][_0xc231('0x4b')]=!![];this[_0xc231('0x8')][_0x346bcd[_0xc231('0x7c')]][_0x4368be][_0xc231('0x5b')]=_0x45b21c;this['channels'][_0x346bcd[_0xc231('0x7c')]][_0x4368be][_0xc231('0x41')]=_0xc231('0x5c');this['channels'][_0x346bcd[_0xc231('0x7c')]][_0x4368be][_0xc231('0x50')]=_0xc231('0x5d');this[_0xc231('0x8')][_0x346bcd[_0xc231('0x7c')]][_0x4368be][_0xc231('0x5f')]=_0x45b21c[_0xc231('0x7e')](this[_0xc231('0x8')][_0x346bcd[_0xc231('0x7c')]][_0x4368be][_0xc231('0x3b')],_0xc231('0x7f'));}}}}}}catch(_0x54c17c){logger[_0xc231('0x36')](_0xc231('0x86'),_0x346bcd[_0xc231('0x24')],util[_0xc231('0x27')](_0x54c17c,{'showHidden':![],'depth':null}));}};VoiceAgentReport[_0xc231('0x1f')]['syncMusicOnHoldStart']=function(_0x110f16){var _0x11b75c='';try{if(this[_0xc231('0x20')](_0x110f16)){logger[_0xc231('0x25')]('[%s][voiceAgentReport][musiconholdstart]\x20event:',_0x110f16[_0xc231('0x24')],util[_0xc231('0x27')](_0x110f16,{'showHidden':![],'depth':null}));if(_0x110f16[_0xc231('0x87')]){_0x11b75c=_0x110f16[_0xc231('0x87')][_0xc231('0x88')](0x0,_0x110f16[_0xc231('0x87')]['lastIndexOf']('-'));if(this[_0xc231('0xa')][_0x11b75c]){logger[_0xc231('0x22')](_0xc231('0x89'),_0x110f16['uniqueid'],_0x11b75c);this[_0xc231('0xa')][_0x11b75c]['onhold']=!![];}}}}catch(_0x379965){logger['error'](_0xc231('0x8a'),_0x110f16[_0xc231('0x24')],util[_0xc231('0x27')](_0x379965,{'showHidden':![],'depth':null}));}};VoiceAgentReport[_0xc231('0x1f')]['syncMusicOnHoldStop']=function(_0x2f069c){var _0x512599='';try{if(this[_0xc231('0x20')](_0x2f069c)){logger[_0xc231('0x25')](_0xc231('0x8b'),_0x2f069c[_0xc231('0x24')],util[_0xc231('0x27')](_0x2f069c,{'showHidden':![],'depth':null}));if(_0x2f069c[_0xc231('0x87')]){_0x512599=_0x2f069c[_0xc231('0x87')]['substring'](0x0,_0x2f069c[_0xc231('0x87')][_0xc231('0x8c')]('-'));if(this[_0xc231('0xa')][_0x512599]){logger[_0xc231('0x22')]('[%s][voiceAgentReport][musiconholdstop]\x20interface:%s',_0x2f069c[_0xc231('0x24')],_0x512599);this[_0xc231('0xa')][_0x512599][_0xc231('0x8d')]=![];}}}}catch(_0x272449){logger[_0xc231('0x36')](_0xc231('0x8e'),_0x2f069c['uniqueid'],util[_0xc231('0x27')](_0x272449,{'showHidden':![],'depth':null}));}};module[_0xc231('0x8f')]=VoiceAgentReport;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9cd6=['coreshowchannel','syncNewExten','bind','newexten','newchannel','newstate','syncNewState','varset','syncVarSet','syncHangup','newcallerid','syncNewCallerId','syncAttendedTransfer','blindtransfer','syncBlindTransfer','syncMusicOnHoldStart','syncMusicOnHoldStop','info','[voiceCallReport][coreshowchannels]\x20started','inspect','isUndefined','emit','prototype','isNotNull','[%s][voiceCallReport][newcallerid]\x20calleridname:%s\x20calleridnum:%s','uniqueid','calleridname','calleridnum','[%s][voiceCallReport][newcallerid]\x20event:','linkedid','merge','pick','context','from-sip','exten','xcally-motion-preview','channel','split','destconnectedlinenum','connectedlinenum','format','user:%s','name','user:agentconnect','accountcode','error','[%s][voiceCallReport][newcallerid]','syncNewChannel','debug','[%s][voiceCallReport][newchannel]\x20event:','OutgoingSpoolFailed','starttime','YYYY-MM-DD\x20HH:mm:ss','disposition','toNumber','[%s][voiceCallReport][newchannel]\x20sending\x20user:agentconnect\x20event:','[%s][voiceCallReport][newchannel]','[%s][voiceCallReport][newexten]\x20event:','application','toLowerCase','applicationdata','appdata','startsWith','[%s][voiceCallReport][newexten]\x20application:%s\x20appdata:%s','duration','subtract','seconds','includes','lastapplication','cdr(','match','[%s][voiceCallReport][newexten]','[%s][voiceCallReport][newstate]\x20linkedid:%s\x20calleridname:%s\x20calleridnum:%s','[%s][voiceCallReport][newstate]\x20event:','answered','holdtime','diff','destinationchannel','channelstate','UserId','membername','routealias','[%s][voiceCallReport][newstate]\x20sending\x20user:agentconnect\x20event:','syncMixMonitorFilename','.wav49','.WAV','push','rec','[%s][voiceCallReport][mixMonitorFilename]','[%s][voiceCallReport][varset]\x20event:','variable','mixmonitor_filename','[%s][voiceCallReport][varset]\x20variable:mixmonitor_filename\x20value:%s','value','xmd-phone','[%s][voiceCallReport][varset]\x20variable:xmd-phone\x20value:%s','xmd-callerid','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','[%s][voiceCallReport][varset]\x20variable:xmd-destination\x20value:%s','destination','[%s][voiceCallReport][varset]\x20variable:xmd-callerid-preview\x20value:%s','calleridpreview','xmcs-queue','[%s][voiceCallReport][varset]\x20variable:xmcs-queue\x20value:%s','[%s][voiceCallReport][varset]\x20variable:sipcallid\x20value:%s','sipcalluniqueid','sipcalllinkedid','[%s][voiceCallReport][varset]','cause-txt','endtime','billableseconds','answertime','omit','user:agentcomplete','resolve','then','transferType','undefined','monitors','getSettings','stopRecordingOnTransfer','Action','StopMixMonitor','catch','finally','webbar:stopmonitors','event','blindTransfers','[%s][voiceCallReport][hangup]\x20sending\x20hangup\x20event:','[%s][voiceCallReport][hangup]','[%s][voiceCallReport][attendedtransfer]\x20transfercalleridnum:%s\x20transferconnectedlinenum:%s','origtransferercalleridnum','transfertargetcalleridnum','transfereeuniqueid','transferconnectedlinenum','secondtransfereruniqueid','transfertargetuniqueid','transfercalleridnum','origtransfereruniqueid','origtransfererlinkedid','routeid','ATTENDED','[%s][voiceCallReport][attendedtransfer]','extension','[%s][voiceCallReport][blindtransfer]\x20event:','transfereecalleridnum','BLIND','BlindTransfer','transfererchannel','transfereruniqueid','[%s][voiceCallReport][blindtransfer]','isNil','mohstarttime','[%s][voiceCallReport][musiconholdstart]\x20mohstarttime:%s','[%s][voiceCallReport][musiconholdstart]','mohtime','[%s][voiceCallReport][musiconholdstop]\x20mohtime:%s','[%s][voiceCallReport][musiconholdstop]','exports','bluebird','lodash','moment','../../../config/environment','ami','../model/channel','unknown','not_inuse','inuse','busy','invalid','unavailable','ringinuse','onhold','set','queue','agi','dial','playback','NO\x20ANSWER','FAILED','ANSWERED','redis','defaults','localhost','socket.io-emitter','channels','agents'];(function(_0x429a21,_0x43b4e0){var _0x3a8c04=function(_0x589489){while(--_0x589489){_0x429a21['push'](_0x429a21['shift']());}};_0x3a8c04(++_0x43b4e0);}(_0x9cd6,0xa5));var _0x69cd=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x9cd6[_0x3dd15e];return _0x231fd0;};'use strict';var BPromise=require(_0x69cd('0x0'));var _=require(_0x69cd('0x1'));var moment=require(_0x69cd('0x2'));var util=require('util');var path=require('path');var Redis=require('ioredis');var config=require(_0x69cd('0x3'));var logger=require('../../../config/logger')(_0x69cd('0x4'));var ami=require('../ami');var Channel=require(_0x69cd('0x5'));var RpcSetting=require('../rpc/setting');var statusDesc=[_0x69cd('0x6'),_0x69cd('0x7'),_0x69cd('0x8'),_0x69cd('0x9'),_0x69cd('0xa'),_0x69cd('0xb'),'ringing',_0x69cd('0xc'),_0x69cd('0xd')];var applications=[_0x69cd('0xe'),_0x69cd('0xf'),_0x69cd('0x10'),_0x69cd('0x11'),_0x69cd('0x12'),'voicemail'];var dispositions=[_0x69cd('0x13'),_0x69cd('0x14'),_0x69cd('0x14'),_0x69cd('0x13'),'NO\x20ANSWER',_0x69cd('0x13'),_0x69cd('0x15'),'BUSY',_0x69cd('0x14'),_0x69cd('0x14'),_0x69cd('0x14')];var actions={};config[_0x69cd('0x16')]=_[_0x69cd('0x17')](config['redis'],{'host':_0x69cd('0x18'),'port':0x18eb});var io=require(_0x69cd('0x19'))(new Redis(config[_0x69cd('0x16')]));function VoiceCallReport(_0x1e0147){this[_0x69cd('0x1a')]=_0x1e0147[_0x69cd('0x1a')];this[_0x69cd('0x1b')]=_0x1e0147['agents'];this['blindTransfers']={};ami['on'](_0x69cd('0x1c'),this[_0x69cd('0x1d')][_0x69cd('0x1e')](this));ami['on'](_0x69cd('0x1f'),this[_0x69cd('0x1d')][_0x69cd('0x1e')](this));ami['on'](_0x69cd('0x20'),this['syncNewChannel'][_0x69cd('0x1e')](this));ami['on'](_0x69cd('0x21'),this[_0x69cd('0x22')][_0x69cd('0x1e')](this));ami['on'](_0x69cd('0x23'),this[_0x69cd('0x24')][_0x69cd('0x1e')](this));ami['on']('hangup',this[_0x69cd('0x25')][_0x69cd('0x1e')](this));ami['on'](_0x69cd('0x26'),this[_0x69cd('0x27')][_0x69cd('0x1e')](this));ami['on']('attendedtransfer',this[_0x69cd('0x28')][_0x69cd('0x1e')](this));ami['on'](_0x69cd('0x29'),this[_0x69cd('0x2a')][_0x69cd('0x1e')](this));ami['on']('musiconholdstart',this[_0x69cd('0x2b')]['bind'](this));ami['on']('musiconholdstop',this[_0x69cd('0x2c')]['bind'](this));try{logger[_0x69cd('0x2d')](_0x69cd('0x2e'));ami['actionCoreShowChannels']();}catch(_0x47deb5){logger['error']('[voiceCallReport][coreshowchannels]',util[_0x69cd('0x2f')](_0x47deb5,{'showHidden':![],'depth':null}));}}VoiceCallReport['prototype']['isNotNull']=function(_0x877642){return _0x877642!==null&&!_[_0x69cd('0x30')](_0x877642);};VoiceCallReport['prototype'][_0x69cd('0x31')]=function(_0x27a8d6,_0xbabea4,_0x7d7627){io['to'](_0x27a8d6)[_0x69cd('0x31')](_0xbabea4,_0x7d7627);};VoiceCallReport[_0x69cd('0x32')]['syncNewCallerId']=function(_0x723ff7){try{if(this[_0x69cd('0x33')](_0x723ff7)){logger[_0x69cd('0x2d')](_0x69cd('0x34'),_0x723ff7[_0x69cd('0x35')],_0x723ff7[_0x69cd('0x36')],_0x723ff7[_0x69cd('0x37')]);logger['debug'](_0x69cd('0x38'),_0x723ff7['uniqueid'],util['inspect'](_0x723ff7,{'showHidden':![],'depth':null}));if(_0x723ff7['uniqueid']===_0x723ff7[_0x69cd('0x39')]){if(!_[_0x69cd('0x30')](this['channels'][_0x723ff7[_0x69cd('0x35')]])){_[_0x69cd('0x3a')](this[_0x69cd('0x1a')][_0x723ff7[_0x69cd('0x35')]],_[_0x69cd('0x3b')](_0x723ff7,_['keys'](this[_0x69cd('0x1a')][_0x723ff7[_0x69cd('0x35')]])));}}if(_0x723ff7[_0x69cd('0x3c')]===_0x69cd('0x3d')){if(this['agents'][_0x723ff7['channel']['split']('-')[0x0]]){if(_0x723ff7[_0x69cd('0x3e')]==_0x69cd('0x3f')){this[_0x69cd('0x1b')][_0x723ff7[_0x69cd('0x40')][_0x69cd('0x41')]('-')[0x0]][_0x69cd('0x42')]=_0x723ff7[_0x69cd('0x43')];this[_0x69cd('0x31')](util[_0x69cd('0x44')](_0x69cd('0x45'),this[_0x69cd('0x1b')][_0x723ff7['channel'][_0x69cd('0x41')]('-')[0x0]][_0x69cd('0x46')]),_0x69cd('0x47'),{'destaccountcode':this[_0x69cd('0x1b')][_0x723ff7[_0x69cd('0x40')][_0x69cd('0x41')]('-')[0x0]][_0x69cd('0x48')],'destconnectedlinenum':_0x723ff7[_0x69cd('0x43')]});}}}}}catch(_0x4d8704){logger[_0x69cd('0x49')](_0x69cd('0x4a'),_0x723ff7['uniqueid'],util['inspect'](_0x4d8704,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0x69cd('0x32')][_0x69cd('0x4b')]=function(_0x3433e9){try{if(this[_0x69cd('0x33')](_0x3433e9)){logger[_0x69cd('0x4c')](_0x69cd('0x4d'),_0x3433e9[_0x69cd('0x35')],util[_0x69cd('0x2f')](_0x3433e9,{'showHidden':![],'depth':null}));if(_0x3433e9[_0x69cd('0x35')]===_0x3433e9[_0x69cd('0x39')]&&_0x3433e9[_0x69cd('0x40')]!=_0x69cd('0x4e')){if(_[_0x69cd('0x30')](this[_0x69cd('0x1a')][_0x3433e9[_0x69cd('0x35')]])){logger[_0x69cd('0x2d')]('[%s][voiceCallReport][newchannel]\x20context:%s\x20exten:%s',_0x3433e9[_0x69cd('0x35')],_0x3433e9['context'],_0x3433e9[_0x69cd('0x3e')]);this[_0x69cd('0x1a')][_0x3433e9[_0x69cd('0x35')]]=new Channel();this[_0x69cd('0x1a')][_0x3433e9[_0x69cd('0x35')]][_0x69cd('0x4f')]=moment()['format'](_0x69cd('0x50'));this[_0x69cd('0x1a')][_0x3433e9[_0x69cd('0x35')]][_0x69cd('0x51')]=dispositions[_[_0x69cd('0x52')](_0x3433e9['channelstate'])];_[_0x69cd('0x3a')](this[_0x69cd('0x1a')][_0x3433e9['uniqueid']],_[_0x69cd('0x3b')](_0x3433e9,_['keys'](this[_0x69cd('0x1a')][_0x3433e9[_0x69cd('0x35')]])));if(_0x3433e9[_0x69cd('0x3c')]===_0x69cd('0x3d')){if(this['agents'][_0x3433e9[_0x69cd('0x40')][_0x69cd('0x41')]('-')[0x0]]){if(_['isUndefined'](this['agents'][_0x3433e9[_0x69cd('0x40')]['split']('-')[0x0]][_0x69cd('0x42')])){this['agents'][_0x3433e9[_0x69cd('0x40')][_0x69cd('0x41')]('-')[0x0]][_0x69cd('0x42')]=_0x3433e9['exten'];logger['debug'](_0x69cd('0x53'),_0x3433e9[_0x69cd('0x35')],util[_0x69cd('0x2f')]({'destaccountcode':this[_0x69cd('0x1b')][_0x3433e9[_0x69cd('0x40')][_0x69cd('0x41')]('-')[0x0]]['accountcode'],'destconnectedlinenum':_0x3433e9[_0x69cd('0x3e')]},{'showHidden':![],'depth':null}));this[_0x69cd('0x31')](util[_0x69cd('0x44')](_0x69cd('0x45'),this[_0x69cd('0x1b')][_0x3433e9['channel'][_0x69cd('0x41')]('-')[0x0]]['name']),_0x69cd('0x47'),{'destaccountcode':this['agents'][_0x3433e9[_0x69cd('0x40')][_0x69cd('0x41')]('-')[0x0]]['accountcode'],'destconnectedlinenum':_0x3433e9['exten']});}}}}}}}catch(_0xa0713d){logger[_0x69cd('0x49')](_0x69cd('0x54'),_0x3433e9['uniqueid'],util[_0x69cd('0x2f')](_0xa0713d,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0x69cd('0x32')][_0x69cd('0x1d')]=function(_0x33a20b){try{if(this[_0x69cd('0x33')](_0x33a20b)){logger[_0x69cd('0x4c')](_0x69cd('0x55'),_0x33a20b[_0x69cd('0x35')],util['inspect'](_0x33a20b,{'showHidden':![],'depth':null}));if(_0x33a20b[_0x69cd('0x35')]===_0x33a20b[_0x69cd('0x39')]&&_0x33a20b[_0x69cd('0x3e')]!='h'&&_0x33a20b[_0x69cd('0x40')]!='OutgoingSpoolFailed'){_0x33a20b[_0x69cd('0x56')]=_0x33a20b['application'][_0x69cd('0x57')]();_0x33a20b[_0x69cd('0x58')]=_0x33a20b[_0x69cd('0x59')]&&_0x33a20b[_0x69cd('0x59')][_0x69cd('0x5a')]('CDR(routeAlias)')?_0x33a20b[_0x69cd('0x59')]:(_0x33a20b[_0x69cd('0x59')]||_0x33a20b[_0x69cd('0x58')])['toLowerCase']();logger[_0x69cd('0x2d')](_0x69cd('0x5b'),_0x33a20b['uniqueid'],_0x33a20b[_0x69cd('0x56')],_0x33a20b[_0x69cd('0x58')]);if(_[_0x69cd('0x30')](this[_0x69cd('0x1a')][_0x33a20b[_0x69cd('0x35')]])){this[_0x69cd('0x1a')][_0x33a20b['uniqueid']]=new Channel();this['channels'][_0x33a20b[_0x69cd('0x35')]][_0x69cd('0x4f')]=_0x33a20b[_0x69cd('0x5c')]?moment()[_0x69cd('0x5d')](moment[_0x69cd('0x5c')](_0x33a20b[_0x69cd('0x5c')])[_0x69cd('0x5e')](),_0x69cd('0x5e'))['format'](_0x69cd('0x50')):moment()[_0x69cd('0x44')]('YYYY-MM-DD\x20HH:mm:ss');this['channels'][_0x33a20b[_0x69cd('0x35')]][_0x69cd('0x51')]=_0x69cd('0x13');}_[_0x69cd('0x3a')](this[_0x69cd('0x1a')][_0x33a20b[_0x69cd('0x35')]],_[_0x69cd('0x3b')](_0x33a20b,_['keys'](this[_0x69cd('0x1a')][_0x33a20b['uniqueid']])));if(_[_0x69cd('0x5f')](applications,_0x33a20b[_0x69cd('0x56')])){this[_0x69cd('0x1a')][_0x33a20b[_0x69cd('0x35')]][_0x69cd('0x60')]=_0x33a20b['application'];this[_0x69cd('0x1a')][_0x33a20b['uniqueid']]['lastdata']=_0x33a20b[_0x69cd('0x58')];if(_0x33a20b[_0x69cd('0x56')]===_0x69cd('0xe')&&_[_0x69cd('0x5a')](_0x33a20b[_0x69cd('0x58')][_0x69cd('0x57')](),_0x69cd('0x61'))){var _0x5c99cb=_0x33a20b[_0x69cd('0x58')][_0x69cd('0x41')]('=');var _0x3ce24f=_0x5c99cb[0x0][_0x69cd('0x57')]()[_0x69cd('0x62')](/cdr\((.*)\)/);if(_0x3ce24f){this[_0x69cd('0x1a')][_0x33a20b['uniqueid']][_0x3ce24f[0x1]]=_0x5c99cb[0x1];}}else if(_0x33a20b['application']===_0x69cd('0xf')){this[_0x69cd('0x1a')][_0x33a20b['uniqueid']]['queue']=_0x33a20b['applicationdata'][_0x69cd('0x41')](',')[0x0];}}}}}catch(_0x21f78f){logger[_0x69cd('0x49')](_0x69cd('0x63'),_0x33a20b[_0x69cd('0x35')],util[_0x69cd('0x2f')](_0x21f78f,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0x69cd('0x32')][_0x69cd('0x22')]=function(_0x5e73cc){try{if(this[_0x69cd('0x33')](_0x5e73cc)){logger[_0x69cd('0x2d')](_0x69cd('0x64'),_0x5e73cc['uniqueid'],_0x5e73cc[_0x69cd('0x39')],_0x5e73cc[_0x69cd('0x36')],_0x5e73cc['calleridnum']);logger[_0x69cd('0x4c')](_0x69cd('0x65'),_0x5e73cc[_0x69cd('0x35')],util['inspect'](_0x5e73cc,{'showHidden':![],'depth':null}));if(_0x5e73cc[_0x69cd('0x35')]!==_0x5e73cc[_0x69cd('0x39')]){if(this[_0x69cd('0x1a')][_0x5e73cc[_0x69cd('0x39')]]){if(_0x5e73cc['channelstate']==='6'){if(!this[_0x69cd('0x1a')][_0x5e73cc[_0x69cd('0x39')]][_0x69cd('0x66')]){var _0x4dfe45=moment();this[_0x69cd('0x1a')][_0x5e73cc['linkedid']][_0x69cd('0x66')]=!![];this['channels'][_0x5e73cc[_0x69cd('0x39')]]['answertime']=_0x4dfe45[_0x69cd('0x44')](_0x69cd('0x50'));if(this[_0x69cd('0x1a')][_0x5e73cc[_0x69cd('0x39')]][_0x69cd('0x4f')]){this['channels'][_0x5e73cc[_0x69cd('0x39')]][_0x69cd('0x67')]=_0x4dfe45[_0x69cd('0x68')](this[_0x69cd('0x1a')][_0x5e73cc[_0x69cd('0x39')]][_0x69cd('0x4f')],_0x69cd('0x5e'));}}this[_0x69cd('0x1a')][_0x5e73cc['linkedid']][_0x69cd('0x39')]=_0x5e73cc[_0x69cd('0x35')];if(_0x5e73cc['calleridnum']!==_0x69cd('0x3f')){this[_0x69cd('0x1a')][_0x5e73cc[_0x69cd('0x39')]]['connectedlinenum']=_0x5e73cc[_0x69cd('0x37')];}this['channels'][_0x5e73cc[_0x69cd('0x39')]]['connectedlinename']=_0x5e73cc['calleridname'];this[_0x69cd('0x1a')][_0x5e73cc[_0x69cd('0x39')]][_0x69cd('0x69')]=_0x5e73cc['channel'];this[_0x69cd('0x1a')][_0x5e73cc['linkedid']][_0x69cd('0x51')]=dispositions[_[_0x69cd('0x52')](_0x5e73cc[_0x69cd('0x6a')])];if(this[_0x69cd('0x1b')][_0x5e73cc[_0x69cd('0x40')][_0x69cd('0x41')]('-')[0x0]]){this[_0x69cd('0x1a')][_0x5e73cc['linkedid']][_0x69cd('0x6b')]=this[_0x69cd('0x1b')][_0x5e73cc[_0x69cd('0x40')][_0x69cd('0x41')]('-')[0x0]]['id'];this[_0x69cd('0x1a')][_0x5e73cc[_0x69cd('0x39')]][_0x69cd('0x6c')]=this[_0x69cd('0x1b')][_0x5e73cc['channel'][_0x69cd('0x41')]('-')[0x0]][_0x69cd('0x46')];}}}}else{if(this[_0x69cd('0x1a')][_0x5e73cc['uniqueid']]){if(_0x5e73cc['channelstate']==='6'){if(this[_0x69cd('0x1b')][_0x5e73cc[_0x69cd('0x40')][_0x69cd('0x41')]('-')[0x0]]){this['channels'][_0x5e73cc[_0x69cd('0x35')]][_0x69cd('0x6b')]=this[_0x69cd('0x1b')][_0x5e73cc[_0x69cd('0x40')][_0x69cd('0x41')]('-')[0x0]]['id'];this[_0x69cd('0x1a')][_0x5e73cc['uniqueid']][_0x69cd('0x6c')]=this[_0x69cd('0x1b')][_0x5e73cc[_0x69cd('0x40')][_0x69cd('0x41')]('-')[0x0]]['name'];}}}}if(_0x5e73cc['channelstate']==='6'&&_0x5e73cc[_0x69cd('0x3c')]==='from-sip'){if(this[_0x69cd('0x1b')][_0x5e73cc['channel']['split']('-')[0x0]]){this[_0x69cd('0x1b')][_0x5e73cc[_0x69cd('0x40')][_0x69cd('0x41')]('-')[0x0]][_0x69cd('0x42')]=_0x5e73cc['exten'];var _0x5132b8;if(this[_0x69cd('0x1a')][_0x5e73cc[_0x69cd('0x35')]])_0x5132b8=this[_0x69cd('0x1a')][_0x5e73cc[_0x69cd('0x35')]][_0x69cd('0x6d')];else if(this[_0x69cd('0x1a')][_0x5e73cc[_0x69cd('0x39')]])_0x5132b8=this[_0x69cd('0x1a')][_0x5e73cc['linkedid']][_0x69cd('0x6d')];logger[_0x69cd('0x4c')](_0x69cd('0x6e'),_0x5e73cc[_0x69cd('0x35')],util[_0x69cd('0x2f')]({'destaccountcode':this[_0x69cd('0x1b')][_0x5e73cc[_0x69cd('0x40')][_0x69cd('0x41')]('-')[0x0]][_0x69cd('0x48')],'destconnectedlinenum':_0x5e73cc[_0x69cd('0x3e')],'routealias':_0x5132b8},{'showHidden':![],'depth':null}));this[_0x69cd('0x31')](util['format']('user:%s',this['agents'][_0x5e73cc['channel'][_0x69cd('0x41')]('-')[0x0]]['name']),'user:agentconnect',{'destaccountcode':this[_0x69cd('0x1b')][_0x5e73cc['channel']['split']('-')[0x0]][_0x69cd('0x48')],'destconnectedlinenum':_0x5e73cc[_0x69cd('0x3e')],'routealias':_0x5132b8});}}}}catch(_0x44baed){logger['error']('[%s][voiceCallReport][newstate]',_0x5e73cc[_0x69cd('0x35')],util[_0x69cd('0x2f')](_0x44baed,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0x69cd('0x32')][_0x69cd('0x6f')]=function(_0x4773aa,_0x2569ec){try{if(this[_0x69cd('0x1a')][_0x4773aa]){logger['info']('[%s][voiceCallReport][mixMonitorFilename]\x20monitorFilename:%s',_0x4773aa,_0x2569ec);this['channels'][_0x4773aa]['monitor']=!![];if(_['endsWith'](_0x2569ec,_0x69cd('0x70'))){_0x2569ec=_0x2569ec['replace'](_0x69cd('0x70'),_0x69cd('0x71'));}this[_0x69cd('0x1a')][_0x4773aa]['monitorFilename']=_0x2569ec;var _0x2fdf01=_['find'](this[_0x69cd('0x1a')][_0x4773aa]['monitors'],{'filename':_0x2569ec});if(_['isNil'](_0x2fdf01)){this[_0x69cd('0x1a')][_0x4773aa]['monitors'][_0x69cd('0x72')]({'filename':_0x2569ec,'createdAt':moment()['format'](_0x69cd('0x50')),'mixmonitorid':'','status':_0x69cd('0x73')});}}}catch(_0x3229aa){logger[_0x69cd('0x49')](_0x69cd('0x74'),_0x4773aa,util[_0x69cd('0x2f')](_0x3229aa,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0x69cd('0x32')][_0x69cd('0x24')]=function(_0x2ac7b7){try{if(this[_0x69cd('0x33')](_0x2ac7b7)){logger[_0x69cd('0x4c')](_0x69cd('0x75'),_0x2ac7b7[_0x69cd('0x35')],util[_0x69cd('0x2f')](_0x2ac7b7,{'showHidden':![],'depth':null}));if(this[_0x69cd('0x1a')][_0x2ac7b7[_0x69cd('0x35')]]&&_0x2ac7b7[_0x69cd('0x40')]!='OutgoingSpoolFailed'){if(this[_0x69cd('0x33')](_0x2ac7b7[_0x69cd('0x76')])){if(this[_0x69cd('0x33')](_0x2ac7b7['variable'][_0x69cd('0x77')])){logger[_0x69cd('0x2d')](_0x69cd('0x78'),_0x2ac7b7['uniqueid'],_0x2ac7b7[_0x69cd('0x79')]);this[_0x69cd('0x6f')](_0x2ac7b7[_0x69cd('0x35')],_0x2ac7b7[_0x69cd('0x79')]);}else if(this[_0x69cd('0x33')](_0x2ac7b7['variable'][_0x69cd('0x7a')])){logger[_0x69cd('0x2d')](_0x69cd('0x7b'),_0x2ac7b7[_0x69cd('0x35')],_0x2ac7b7[_0x69cd('0x79')]);this['channels'][_0x2ac7b7[_0x69cd('0x35')]]['calleridnum']=_0x2ac7b7[_0x69cd('0x79')];}else if(this[_0x69cd('0x33')](_0x2ac7b7[_0x69cd('0x76')][_0x69cd('0x7c')])){logger['info']('[%s][voiceCallReport][varset]\x20variable:xmd-callerid\x20value:%s',_0x2ac7b7['uniqueid'],_0x2ac7b7[_0x69cd('0x79')]);this[_0x69cd('0x1a')][_0x2ac7b7[_0x69cd('0x35')]]['callerid']=_0x2ac7b7[_0x69cd('0x79')];}else if(this[_0x69cd('0x33')](_0x2ac7b7[_0x69cd('0x76')][_0x69cd('0x7d')])){logger[_0x69cd('0x2d')](_0x69cd('0x7e'),_0x2ac7b7[_0x69cd('0x35')],_0x2ac7b7[_0x69cd('0x79')]);this['channels'][_0x2ac7b7['uniqueid']][_0x69cd('0x7f')]=_0x2ac7b7[_0x69cd('0x79')];}else if(this[_0x69cd('0x33')](_0x2ac7b7[_0x69cd('0x76')][_0x69cd('0x80')])){logger['info'](_0x69cd('0x81'),_0x2ac7b7['uniqueid'],_0x2ac7b7[_0x69cd('0x79')][_0x69cd('0x41')](',')[0x0]);this['channels'][_0x2ac7b7['uniqueid']]['queue']=_0x2ac7b7[_0x69cd('0x79')][_0x69cd('0x41')](',')[0x0];}else if(this[_0x69cd('0x33')](_0x2ac7b7[_0x69cd('0x76')][_0x69cd('0x82')])){logger[_0x69cd('0x2d')](_0x69cd('0x83'),_0x2ac7b7[_0x69cd('0x35')],_0x2ac7b7[_0x69cd('0x79')]);this[_0x69cd('0x1a')][_0x2ac7b7[_0x69cd('0x35')]]['originatecalleridnum']=_0x2ac7b7[_0x69cd('0x79')];}else if(this[_0x69cd('0x33')](_0x2ac7b7[_0x69cd('0x76')]['xmd-destination'])){logger[_0x69cd('0x2d')](_0x69cd('0x84'),_0x2ac7b7[_0x69cd('0x35')],_0x2ac7b7[_0x69cd('0x79')]);this['channels'][_0x2ac7b7[_0x69cd('0x35')]][_0x69cd('0x85')]=_0x2ac7b7[_0x69cd('0x79')];}else if(this[_0x69cd('0x33')](_0x2ac7b7[_0x69cd('0x76')]['xmd-callerid-preview'])){logger[_0x69cd('0x2d')](_0x69cd('0x86'),_0x2ac7b7[_0x69cd('0x35')],_0x2ac7b7[_0x69cd('0x79')]);this[_0x69cd('0x1a')][_0x2ac7b7[_0x69cd('0x35')]][_0x69cd('0x87')]=_0x2ac7b7[_0x69cd('0x79')];}else if(this[_0x69cd('0x33')](_0x2ac7b7['variable'][_0x69cd('0x88')])){logger[_0x69cd('0x2d')](_0x69cd('0x89'),_0x2ac7b7[_0x69cd('0x35')],_0x2ac7b7[_0x69cd('0x79')]);this['channels'][_0x2ac7b7['uniqueid']][_0x69cd('0xf')]=_0x2ac7b7[_0x69cd('0x79')];}else if(this[_0x69cd('0x33')](_0x2ac7b7[_0x69cd('0x76')]['sipcallid'])){logger[_0x69cd('0x2d')](_0x69cd('0x8a'),_0x2ac7b7['uniqueid'],_0x2ac7b7[_0x69cd('0x79')]);this[_0x69cd('0x1a')][_0x2ac7b7[_0x69cd('0x35')]][_0x69cd('0x8b')]=_0x2ac7b7[_0x69cd('0x79')];}}}else if(this[_0x69cd('0x33')](_0x2ac7b7[_0x69cd('0x76')][_0x69cd('0x77')])){if(_0x2ac7b7[_0x69cd('0x79')]){var _0x16d0f3=path['parse'](_0x2ac7b7['value'])['name'];logger[_0x69cd('0x2d')](_0x69cd('0x78'),_0x16d0f3,_0x2ac7b7['value']);this[_0x69cd('0x6f')](_0x16d0f3,_0x2ac7b7['value']);}}else if(this[_0x69cd('0x1a')][_0x2ac7b7[_0x69cd('0x39')]]){if(this['isNotNull'](_0x2ac7b7[_0x69cd('0x76')])){if(this[_0x69cd('0x33')](_0x2ac7b7['variable']['sipcallid'])){logger[_0x69cd('0x2d')](_0x69cd('0x8a'),_0x2ac7b7['linkedid'],_0x2ac7b7[_0x69cd('0x79')]);this[_0x69cd('0x1a')][_0x2ac7b7[_0x69cd('0x39')]][_0x69cd('0x8c')]=_0x2ac7b7['value'];}}}}}catch(_0xe9f7cf){logger[_0x69cd('0x49')](_0x69cd('0x8d'),_0x2ac7b7[_0x69cd('0x35')],util[_0x69cd('0x2f')](_0xe9f7cf,{'showHidden':![],'depth':null}));}};VoiceCallReport['prototype'][_0x69cd('0x25')]=function(_0x529569){try{if(this[_0x69cd('0x33')](_0x529569)){logger[_0x69cd('0x4c')]('[%s][voiceCallReport][hangup]\x20event:',_0x529569[_0x69cd('0x35')],util[_0x69cd('0x2f')](_0x529569,{'showHidden':![],'depth':null}));if(this[_0x69cd('0x1a')][_0x529569[_0x69cd('0x35')]]){logger[_0x69cd('0x2d')]('[%s][voiceCallReport][hangup]\x20reason:%s',_0x529569['uniqueid'],_0x529569[_0x69cd('0x8e')]);var _0x23d10a=moment();this[_0x69cd('0x1a')][_0x529569['uniqueid']][_0x69cd('0x8f')]=_0x23d10a['format'](_0x69cd('0x50'));this[_0x69cd('0x1a')][_0x529569[_0x69cd('0x35')]][_0x69cd('0x5c')]=_0x23d10a[_0x69cd('0x68')](this[_0x69cd('0x1a')][_0x529569[_0x69cd('0x35')]][_0x69cd('0x4f')],_0x69cd('0x5e'));if(this[_0x69cd('0x1a')][_0x529569['uniqueid']]['answered']){this[_0x69cd('0x1a')][_0x529569['uniqueid']][_0x69cd('0x90')]=_0x23d10a[_0x69cd('0x68')](this[_0x69cd('0x1a')][_0x529569[_0x69cd('0x35')]][_0x69cd('0x91')],_0x69cd('0x5e'));this['channels'][_0x529569[_0x69cd('0x35')]]['holdtime']=this[_0x69cd('0x1a')][_0x529569[_0x69cd('0x35')]][_0x69cd('0x5c')]-this[_0x69cd('0x1a')][_0x529569[_0x69cd('0x35')]][_0x69cd('0x90')];}if(_0x529569[_0x69cd('0x3c')]===_0x69cd('0x3d')){if(this['agents'][_0x529569[_0x69cd('0x40')][_0x69cd('0x41')]('-')[0x0]]){this[_0x69cd('0x1b')][_0x529569['channel'][_0x69cd('0x41')]('-')[0x0]]=_[_0x69cd('0x92')](this[_0x69cd('0x1b')][_0x529569[_0x69cd('0x40')][_0x69cd('0x41')]('-')[0x0]],['destconnectedlinenum']);logger[_0x69cd('0x4c')]('[%s][voiceCallReport][hangup]\x20sending\x20user:agentcomplete\x20event:',_0x529569['uniqueid'],util['inspect']({'id':this[_0x69cd('0x1b')][_0x529569[_0x69cd('0x40')]['split']('-')[0x0]]['id'],'destaccountcode':this['agents'][_0x529569[_0x69cd('0x40')][_0x69cd('0x41')]('-')[0x0]]['accountcode']},{'showHidden':![],'depth':null}));this[_0x69cd('0x31')](util[_0x69cd('0x44')](_0x69cd('0x45'),this[_0x69cd('0x1b')][_0x529569[_0x69cd('0x40')][_0x69cd('0x41')]('-')[0x0]][_0x69cd('0x46')]),_0x69cd('0x93'),{'id':this[_0x69cd('0x1b')][_0x529569[_0x69cd('0x40')][_0x69cd('0x41')]('-')[0x0]]['id'],'destaccountcode':this['agents'][_0x529569['channel'][_0x69cd('0x41')]('-')[0x0]]['accountcode']});}}var _0x9044b5=this;Promise[_0x69cd('0x94')]()[_0x69cd('0x95')](function(){var _0x588ed4=_0x9044b5['channels'][_0x529569[_0x69cd('0x35')]];if(typeof _0x588ed4[_0x69cd('0x96')]===_0x69cd('0x97'))return;if(_['isEmpty'](_0x588ed4[_0x69cd('0x98')]))return;return RpcSetting[_0x69cd('0x99')]()[_0x69cd('0x95')](function(_0x2bb43f){if(!_0x2bb43f[_0x69cd('0x9a')])return;return Promise['resolve']()[_0x69cd('0x95')](function(){return ami[_0x69cd('0x9b')]({'action':_0x69cd('0x9c'),'channel':_0x588ed4[_0x69cd('0x40')]})[_0x69cd('0x9d')](function(){});})['then'](function(){return ami[_0x69cd('0x9b')]({'action':_0x69cd('0x9c'),'channel':_0x588ed4[_0x69cd('0x69')]})[_0x69cd('0x9d')](function(){})[_0x69cd('0x9e')](function(){var _0x20272e=_0x9044b5['agents'][_0x588ed4[_0x69cd('0x69')]['split']('-')[0x0]];if(!_0x20272e)return;io['emit'](_0x69cd('0x9f'),{'agentId':_0x20272e['id'],'uniqueid':_0x588ed4['uniqueid']});});});});})['then'](function(){if(_0x529569[_0x69cd('0xa0')]==='BlindTransfer'){_0x9044b5[_0x69cd('0xa1')][_0x529569[_0x69cd('0x35')]]=_0x9044b5[_0x69cd('0x1a')][_0x529569['uniqueid']];}else{if(_0x9044b5['channels'][_0x529569['uniqueid']][_0x69cd('0x7f')]==='outbound'&&_0x9044b5['blindTransfers'][_0x529569[_0x69cd('0x35')]]){_0x9044b5[_0x69cd('0x1a')][_0x529569[_0x69cd('0x35')]][_0x69cd('0x35')]=[_0x9044b5['channels'][_0x529569[_0x69cd('0x35')]][_0x69cd('0x39')],_0x9044b5[_0x69cd('0x1a')][_0x529569[_0x69cd('0x35')]][_0x69cd('0x39')]=_0x9044b5[_0x69cd('0x1a')][_0x529569['uniqueid']]['uniqueid']][0x0];delete _0x9044b5[_0x69cd('0xa1')][_0x529569[_0x69cd('0x35')]];}}logger['debug'](_0x69cd('0xa2'),_0x529569['uniqueid'],util[_0x69cd('0x2f')](_0x9044b5[_0x69cd('0x1a')][_0x529569[_0x69cd('0x35')]],{'showHidden':![],'depth':null}));ami['emit']('custom:voiceCallReport',_0x9044b5[_0x69cd('0x1a')][_0x529569[_0x69cd('0x35')]]);delete _0x9044b5['channels'][_0x529569[_0x69cd('0x35')]];});}}}catch(_0x305279){logger['error'](_0x69cd('0xa3'),_0x529569[_0x69cd('0x35')],util[_0x69cd('0x2f')](_0x305279,{'showHidden':![],'depth':null}));}};VoiceCallReport['prototype'][_0x69cd('0x28')]=function(_0x24d568){try{if(this[_0x69cd('0x33')](_0x24d568)){logger[_0x69cd('0x2d')](_0x69cd('0xa4'),_0x24d568[_0x69cd('0x35')],_0x24d568[_0x69cd('0xa5')],_0x24d568[_0x69cd('0xa6')]);logger['debug']('[%s][voiceCallReport][attendedtransfer]\x20event:',_0x24d568['uniqueid'],util[_0x69cd('0x2f')](_0x24d568,{'showHidden':![],'depth':null}));if(this[_0x69cd('0x1a')][_0x24d568[_0x69cd('0xa7')]]){this[_0x69cd('0x1a')][_0x24d568[_0x69cd('0xa7')]]['transfercalleridnum']=_0x24d568[_0x69cd('0xa5')];this[_0x69cd('0x1a')][_0x24d568[_0x69cd('0xa7')]][_0x69cd('0xa8')]=_0x24d568[_0x69cd('0xa6')];if(this[_0x69cd('0x1a')][_0x24d568[_0x69cd('0xa9')]]){var _0x1f06f7=this[_0x69cd('0x1a')][_0x24d568[_0x69cd('0xa9')]];this[_0x69cd('0x1a')][_0x24d568[_0x69cd('0xa9')]]=this[_0x69cd('0x1a')][_0x24d568[_0x69cd('0xa7')]];this['channels'][_0x24d568[_0x69cd('0xa7')]]=_0x1f06f7;}}else if(this[_0x69cd('0x1a')][_0x24d568[_0x69cd('0xaa')]]){this['channels'][_0x24d568['transfertargetuniqueid']][_0x69cd('0xab')]=_0x24d568['origtransferercalleridnum'];this[_0x69cd('0x1a')][_0x24d568[_0x69cd('0xaa')]]['transferconnectedlinenum']=_0x24d568['transfertargetcalleridnum'];if(this[_0x69cd('0x1a')][_0x24d568['origtransfereruniqueid']]){var _0x1f06f7=this['channels'][_0x24d568[_0x69cd('0xac')]];this[_0x69cd('0x1a')][_0x24d568[_0x69cd('0xac')]]=this[_0x69cd('0x1a')][_0x24d568[_0x69cd('0xaa')]];this[_0x69cd('0x1a')][_0x24d568[_0x69cd('0xaa')]]=_0x1f06f7;}}if((this[_0x69cd('0x1a')][_0x24d568[_0x69cd('0xac')]]||this[_0x69cd('0x1a')][_0x24d568['origtransfererlinkedid']])&&this[_0x69cd('0x1a')][_0x24d568['secondtransfereruniqueid']]){var _0xb9dec4=_['some']([this[_0x69cd('0x1a')][_0x24d568['origtransfereruniqueid']],this['channels'][_0x24d568[_0x69cd('0xad')]],this[_0x69cd('0x1a')][_0x24d568[_0x69cd('0xa9')]]],function(_0x2b277a){return _0x2b277a&&_0x2b277a[_0x69cd('0x7f')]==='outbound'&&_0x2b277a[_0x69cd('0xae')];});if(_0xb9dec4){if(this[_0x69cd('0x1a')][_0x24d568[_0x69cd('0xac')]])this[_0x69cd('0x1a')][_0x24d568[_0x69cd('0xac')]][_0x69cd('0x96')]=_0x69cd('0xaf');if(this[_0x69cd('0x1a')][_0x24d568[_0x69cd('0xad')]])this[_0x69cd('0x1a')][_0x24d568[_0x69cd('0xad')]]['transferType']=_0x69cd('0xaf');this['channels'][_0x24d568['secondtransfereruniqueid']][_0x69cd('0x96')]=_0x69cd('0xaf');}}}}catch(_0x259188){logger[_0x69cd('0x49')](_0x69cd('0xb0'),_0x24d568[_0x69cd('0x35')],util['inspect'](_0x259188,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0x69cd('0x32')]['syncBlindTransfer']=function(_0x160485){try{if(this['isNotNull'](_0x160485)){logger[_0x69cd('0x2d')]('[%s][voiceCallReport][blindtransfer]\x20transfercalleridnum:%s\x20transferconnectedlinenum:%s',_0x160485[_0x69cd('0x35')],_0x160485['transfereecalleridnum'],_0x160485[_0x69cd('0xb1')]);logger[_0x69cd('0x4c')](_0x69cd('0xb2'),_0x160485['uniqueid'],util[_0x69cd('0x2f')](_0x160485,{'showHidden':![],'depth':null}));if(this[_0x69cd('0x1a')][_0x160485[_0x69cd('0xa7')]]){this[_0x69cd('0x1a')][_0x160485[_0x69cd('0xa7')]][_0x69cd('0xab')]=_0x160485[_0x69cd('0xb3')];this[_0x69cd('0x1a')][_0x160485[_0x69cd('0xa7')]][_0x69cd('0xa8')]=_0x160485[_0x69cd('0xb1')];this[_0x69cd('0x1a')][_0x160485[_0x69cd('0xa7')]]['transferType']=_0x69cd('0xb4');this['syncHangup']({'event':_0x69cd('0xb5'),'uniqueid':_0x160485['transfereeuniqueid'],'context':_0x160485['context'],'channel':_0x160485[_0x69cd('0xb6')]});}else{this['channels'][_0x160485[_0x69cd('0xb7')]]['transferType']=_0x69cd('0xb4');}}}catch(_0x3ff8a1){logger[_0x69cd('0x49')](_0x69cd('0xb8'),_0x160485[_0x69cd('0x35')],util[_0x69cd('0x2f')](_0x3ff8a1,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0x69cd('0x32')]['syncMusicOnHoldStart']=function(_0x16c910){try{if(this[_0x69cd('0x33')](_0x16c910)){logger[_0x69cd('0x4c')]('[%s][voiceCallReport][musiconholdstart]\x20event:',_0x16c910['uniqueid'],util[_0x69cd('0x2f')](_0x16c910,{'showHidden':![],'depth':null}));if(this[_0x69cd('0x1a')][_0x16c910[_0x69cd('0x35')]]){if(!_[_0x69cd('0xb9')](this[_0x69cd('0x1a')][_0x16c910['uniqueid']]['answertime'])){this[_0x69cd('0x1a')][_0x16c910[_0x69cd('0x35')]][_0x69cd('0xba')]=moment()[_0x69cd('0x44')](_0x69cd('0x50'));logger['info'](_0x69cd('0xbb'),_0x16c910[_0x69cd('0x35')],this[_0x69cd('0x1a')][_0x16c910[_0x69cd('0x35')]]['mohstarttime']);}}}}catch(_0xa7175f){logger[_0x69cd('0x49')](_0x69cd('0xbc'),_0x16c910[_0x69cd('0x35')],util[_0x69cd('0x2f')](_0xa7175f,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0x69cd('0x32')][_0x69cd('0x2c')]=function(_0x3bffed){try{if(this['isNotNull'](_0x3bffed)){logger[_0x69cd('0x4c')]('[%s][voiceCallReport][musiconholdstop]\x20event:',_0x3bffed[_0x69cd('0x35')],util[_0x69cd('0x2f')](_0x3bffed,{'showHidden':![],'depth':null}));if(this[_0x69cd('0x1a')][_0x3bffed['uniqueid']]){if(!_[_0x69cd('0xb9')](this['channels'][_0x3bffed[_0x69cd('0x35')]][_0x69cd('0xba')])){this[_0x69cd('0x1a')][_0x3bffed[_0x69cd('0x35')]][_0x69cd('0xbd')]+=moment()['milliseconds'](0x0)[_0x69cd('0x68')](this[_0x69cd('0x1a')][_0x3bffed[_0x69cd('0x35')]]['mohstarttime'],_0x69cd('0x5e'));logger[_0x69cd('0x2d')](_0x69cd('0xbe'),_0x3bffed['uniqueid'],this[_0x69cd('0x1a')][_0x3bffed[_0x69cd('0x35')]][_0x69cd('0xbd')]);delete this[_0x69cd('0x1a')][_0x3bffed[_0x69cd('0x35')]][_0x69cd('0xba')];}}}}catch(_0x413dce){logger[_0x69cd('0x49')](_0x69cd('0xbf'),_0x3bffed[_0x69cd('0x35')],util['inspect'](_0x413dce,{'showHidden':![],'depth':null}));}};module[_0x69cd('0xc0')]=VoiceCallReport;
\ No newline at end of file
+var _0xb358=['user:%s','[%s][voiceCallReport][newchannel]','[%s][voiceCallReport][newexten]\x20event:','application','toLowerCase','applicationdata','appdata','startsWith','CDR(routeAlias)','[%s][voiceCallReport][newexten]\x20application:%s\x20appdata:%s','subtract','duration','includes','lastapplication','cdr(','queue','[%s][voiceCallReport][newexten]','[%s][voiceCallReport][newstate]\x20linkedid:%s\x20calleridname:%s\x20calleridnum:%s','[%s][voiceCallReport][newstate]\x20event:','answered','starttime','holdtime','diff','seconds','connectedlinename','destinationchannel','toNumber','UserId','membername','routealias','[%s][voiceCallReport][newstate]\x20sending\x20user:agentconnect\x20event:','[%s][voiceCallReport][newstate]','syncMixMonitorFilename','[%s][voiceCallReport][mixMonitorFilename]\x20monitorFilename:%s','monitor','endsWith','.wav49','replace','monitorFilename','find','monitors','isNil','[%s][voiceCallReport][mixMonitorFilename]','[%s][voiceCallReport][varset]\x20event:','variable','[%s][voiceCallReport][varset]\x20variable:mixmonitor_filename\x20value:%s','value','[%s][voiceCallReport][varset]\x20variable:xmd-callerid\x20value:%s','xmd-cdrtype','[%s][voiceCallReport][varset]\x20variable:xmd-cdrtype\x20value:%s','type','xmd-queue','originatecalleridnum','xmd-destination','[%s][voiceCallReport][varset]\x20variable:xmd-destination\x20value:%s','destination','xmd-callerid-preview','calleridpreview','xmcs-queue','[%s][voiceCallReport][varset]\x20variable:xmcs-queue\x20value:%s','sipcallid','[%s][voiceCallReport][varset]\x20variable:sipcallid\x20value:%s','mixmonitor_filename','parse','[%s][voiceCallReport][varset]','[%s][voiceCallReport][hangup]\x20event:','cause-txt','endtime','billableseconds','answertime','omit','[%s][voiceCallReport][hangup]\x20sending\x20user:agentcomplete\x20event:','resolve','then','transferType','undefined','getSettings','stopRecordingOnTransfer','StopMixMonitor','catch','Action','finally','webbar:stopmonitors','event','outbound','[%s][voiceCallReport][hangup]\x20sending\x20hangup\x20event:','custom:voiceCallReport','[%s][voiceCallReport][attendedtransfer]\x20transfercalleridnum:%s\x20transferconnectedlinenum:%s','origtransferercalleridnum','transfereeuniqueid','transfercalleridnum','transferconnectedlinenum','transfertargetcalleridnum','secondtransfereruniqueid','transfertargetuniqueid','origtransfereruniqueid','routeid','origtransfererlinkedid','ATTENDED','[%s][voiceCallReport][blindtransfer]\x20transfercalleridnum:%s\x20transferconnectedlinenum:%s','transfereecalleridnum','extension','BLIND','BlindTransfer','transfererchannel','transfereruniqueid','[%s][voiceCallReport][blindtransfer]','[%s][voiceCallReport][musiconholdstart]\x20event:','mohstarttime','[%s][voiceCallReport][musiconholdstart]\x20mohstarttime:%s','[%s][voiceCallReport][musiconholdstop]\x20event:','milliseconds','[%s][voiceCallReport][musiconholdstop]\x20mohtime:%s','mohtime','[%s][voiceCallReport][musiconholdstop]','exports','bluebird','lodash','util','path','../../../config/environment','../../../config/logger','ami','../ami','../model/channel','unknown','not_inuse','inuse','busy','invalid','unavailable','ringing','ringinuse','onhold','set','agi','dial','playback','NO\x20ANSWER','FAILED','ANSWERED','BUSY','defaults','localhost','socket.io-emitter','redis','channels','agents','blindTransfers','coreshowchannel','syncNewExten','bind','syncNewChannel','newstate','syncNewState','varset','syncVarSet','hangup','syncHangup','newcallerid','syncNewCallerId','attendedtransfer','syncAttendedTransfer','syncBlindTransfer','musiconholdstart','syncMusicOnHoldStart','musiconholdstop','syncMusicOnHoldStop','[voiceCallReport][coreshowchannels]\x20started','actionCoreShowChannels','error','prototype','isNotNull','emit','info','uniqueid','calleridname','calleridnum','debug','[%s][voiceCallReport][newcallerid]\x20event:','inspect','linkedid','isUndefined','merge','pick','keys','context','from-sip','channel','split','exten','xcally-motion-preview','destconnectedlinenum','connectedlinenum','format','name','user:agentconnect','[%s][voiceCallReport][newcallerid]','[%s][voiceCallReport][newchannel]\x20event:','OutgoingSpoolFailed','YYYY-MM-DD\x20HH:mm:ss','disposition','channelstate','[%s][voiceCallReport][newchannel]\x20sending\x20user:agentconnect\x20event:','accountcode'];(function(_0x17e174,_0x4991f8){var _0x3f26f1=function(_0x169012){while(--_0x169012){_0x17e174['push'](_0x17e174['shift']());}};_0x3f26f1(++_0x4991f8);}(_0xb358,0x74));var _0x8b35=function(_0x3f9890,_0x3efce6){_0x3f9890=_0x3f9890-0x0;var _0x50a0f3=_0xb358[_0x3f9890];return _0x50a0f3;};'use strict';var BPromise=require(_0x8b35('0x0'));var _=require(_0x8b35('0x1'));var moment=require('moment');var util=require(_0x8b35('0x2'));var path=require(_0x8b35('0x3'));var Redis=require('ioredis');var config=require(_0x8b35('0x4'));var logger=require(_0x8b35('0x5'))(_0x8b35('0x6'));var ami=require(_0x8b35('0x7'));var Channel=require(_0x8b35('0x8'));var RpcSetting=require('../rpc/setting');var statusDesc=[_0x8b35('0x9'),_0x8b35('0xa'),_0x8b35('0xb'),_0x8b35('0xc'),_0x8b35('0xd'),_0x8b35('0xe'),_0x8b35('0xf'),_0x8b35('0x10'),_0x8b35('0x11')];var applications=[_0x8b35('0x12'),'queue',_0x8b35('0x13'),_0x8b35('0x14'),_0x8b35('0x15'),'voicemail'];var dispositions=[_0x8b35('0x16'),'FAILED',_0x8b35('0x17'),_0x8b35('0x16'),'NO\x20ANSWER','NO\x20ANSWER',_0x8b35('0x18'),_0x8b35('0x19'),_0x8b35('0x17'),'FAILED','FAILED'];var actions={};config['redis']=_[_0x8b35('0x1a')](config['redis'],{'host':_0x8b35('0x1b'),'port':0x18eb});var io=require(_0x8b35('0x1c'))(new Redis(config[_0x8b35('0x1d')]));function VoiceCallReport(_0x5eb2dd){this[_0x8b35('0x1e')]=_0x5eb2dd[_0x8b35('0x1e')];this['agents']=_0x5eb2dd[_0x8b35('0x1f')];this[_0x8b35('0x20')]={};ami['on'](_0x8b35('0x21'),this[_0x8b35('0x22')][_0x8b35('0x23')](this));ami['on']('newexten',this['syncNewExten'][_0x8b35('0x23')](this));ami['on']('newchannel',this[_0x8b35('0x24')][_0x8b35('0x23')](this));ami['on'](_0x8b35('0x25'),this[_0x8b35('0x26')][_0x8b35('0x23')](this));ami['on'](_0x8b35('0x27'),this[_0x8b35('0x28')][_0x8b35('0x23')](this));ami['on'](_0x8b35('0x29'),this[_0x8b35('0x2a')][_0x8b35('0x23')](this));ami['on'](_0x8b35('0x2b'),this[_0x8b35('0x2c')][_0x8b35('0x23')](this));ami['on'](_0x8b35('0x2d'),this[_0x8b35('0x2e')][_0x8b35('0x23')](this));ami['on']('blindtransfer',this[_0x8b35('0x2f')][_0x8b35('0x23')](this));ami['on'](_0x8b35('0x30'),this[_0x8b35('0x31')][_0x8b35('0x23')](this));ami['on'](_0x8b35('0x32'),this[_0x8b35('0x33')][_0x8b35('0x23')](this));try{logger['info'](_0x8b35('0x34'));ami[_0x8b35('0x35')]();}catch(_0xbdd64e){logger[_0x8b35('0x36')]('[voiceCallReport][coreshowchannels]',util['inspect'](_0xbdd64e,{'showHidden':![],'depth':null}));}}VoiceCallReport[_0x8b35('0x37')][_0x8b35('0x38')]=function(_0x195436){return _0x195436!==null&&!_['isUndefined'](_0x195436);};VoiceCallReport[_0x8b35('0x37')][_0x8b35('0x39')]=function(_0x538c1c,_0x50364a,_0x4a08af){io['to'](_0x538c1c)[_0x8b35('0x39')](_0x50364a,_0x4a08af);};VoiceCallReport[_0x8b35('0x37')][_0x8b35('0x2c')]=function(_0x237d95){try{if(this[_0x8b35('0x38')](_0x237d95)){logger[_0x8b35('0x3a')]('[%s][voiceCallReport][newcallerid]\x20calleridname:%s\x20calleridnum:%s',_0x237d95[_0x8b35('0x3b')],_0x237d95[_0x8b35('0x3c')],_0x237d95[_0x8b35('0x3d')]);logger[_0x8b35('0x3e')](_0x8b35('0x3f'),_0x237d95[_0x8b35('0x3b')],util[_0x8b35('0x40')](_0x237d95,{'showHidden':![],'depth':null}));if(_0x237d95[_0x8b35('0x3b')]===_0x237d95[_0x8b35('0x41')]){if(!_[_0x8b35('0x42')](this[_0x8b35('0x1e')][_0x237d95[_0x8b35('0x3b')]])){_[_0x8b35('0x43')](this[_0x8b35('0x1e')][_0x237d95[_0x8b35('0x3b')]],_[_0x8b35('0x44')](_0x237d95,_[_0x8b35('0x45')](this[_0x8b35('0x1e')][_0x237d95['uniqueid']])));}}if(_0x237d95[_0x8b35('0x46')]===_0x8b35('0x47')){if(this[_0x8b35('0x1f')][_0x237d95[_0x8b35('0x48')][_0x8b35('0x49')]('-')[0x0]]){if(_0x237d95[_0x8b35('0x4a')]==_0x8b35('0x4b')){this['agents'][_0x237d95[_0x8b35('0x48')][_0x8b35('0x49')]('-')[0x0]][_0x8b35('0x4c')]=_0x237d95[_0x8b35('0x4d')];this[_0x8b35('0x39')](util[_0x8b35('0x4e')]('user:%s',this[_0x8b35('0x1f')][_0x237d95[_0x8b35('0x48')][_0x8b35('0x49')]('-')[0x0]][_0x8b35('0x4f')]),_0x8b35('0x50'),{'destaccountcode':this[_0x8b35('0x1f')][_0x237d95[_0x8b35('0x48')][_0x8b35('0x49')]('-')[0x0]]['accountcode'],'destconnectedlinenum':_0x237d95[_0x8b35('0x4d')]});}}}}}catch(_0x4b0425){logger['error'](_0x8b35('0x51'),_0x237d95['uniqueid'],util['inspect'](_0x4b0425,{'showHidden':![],'depth':null}));}};VoiceCallReport['prototype']['syncNewChannel']=function(_0x5d30bb){try{if(this[_0x8b35('0x38')](_0x5d30bb)){logger[_0x8b35('0x3e')](_0x8b35('0x52'),_0x5d30bb['uniqueid'],util[_0x8b35('0x40')](_0x5d30bb,{'showHidden':![],'depth':null}));if(_0x5d30bb['uniqueid']===_0x5d30bb[_0x8b35('0x41')]&&_0x5d30bb['channel']!=_0x8b35('0x53')){if(_['isUndefined'](this[_0x8b35('0x1e')][_0x5d30bb[_0x8b35('0x3b')]])){logger[_0x8b35('0x3a')]('[%s][voiceCallReport][newchannel]\x20context:%s\x20exten:%s',_0x5d30bb[_0x8b35('0x3b')],_0x5d30bb[_0x8b35('0x46')],_0x5d30bb['exten']);this[_0x8b35('0x1e')][_0x5d30bb[_0x8b35('0x3b')]]=new Channel();this[_0x8b35('0x1e')][_0x5d30bb[_0x8b35('0x3b')]]['starttime']=moment()[_0x8b35('0x4e')](_0x8b35('0x54'));this[_0x8b35('0x1e')][_0x5d30bb[_0x8b35('0x3b')]][_0x8b35('0x55')]=dispositions[_['toNumber'](_0x5d30bb[_0x8b35('0x56')])];_['merge'](this[_0x8b35('0x1e')][_0x5d30bb[_0x8b35('0x3b')]],_[_0x8b35('0x44')](_0x5d30bb,_['keys'](this[_0x8b35('0x1e')][_0x5d30bb[_0x8b35('0x3b')]])));if(_0x5d30bb[_0x8b35('0x46')]===_0x8b35('0x47')){if(this[_0x8b35('0x1f')][_0x5d30bb[_0x8b35('0x48')][_0x8b35('0x49')]('-')[0x0]]){if(_['isUndefined'](this[_0x8b35('0x1f')][_0x5d30bb[_0x8b35('0x48')][_0x8b35('0x49')]('-')[0x0]][_0x8b35('0x4c')])){this[_0x8b35('0x1f')][_0x5d30bb[_0x8b35('0x48')]['split']('-')[0x0]][_0x8b35('0x4c')]=_0x5d30bb[_0x8b35('0x4a')];logger[_0x8b35('0x3e')](_0x8b35('0x57'),_0x5d30bb[_0x8b35('0x3b')],util[_0x8b35('0x40')]({'destaccountcode':this[_0x8b35('0x1f')][_0x5d30bb[_0x8b35('0x48')]['split']('-')[0x0]][_0x8b35('0x58')],'destconnectedlinenum':_0x5d30bb[_0x8b35('0x4a')]},{'showHidden':![],'depth':null}));this['emit'](util[_0x8b35('0x4e')](_0x8b35('0x59'),this[_0x8b35('0x1f')][_0x5d30bb[_0x8b35('0x48')][_0x8b35('0x49')]('-')[0x0]][_0x8b35('0x4f')]),_0x8b35('0x50'),{'destaccountcode':this[_0x8b35('0x1f')][_0x5d30bb[_0x8b35('0x48')][_0x8b35('0x49')]('-')[0x0]]['accountcode'],'destconnectedlinenum':_0x5d30bb[_0x8b35('0x4a')]});}}}}}}}catch(_0x4abeea){logger[_0x8b35('0x36')](_0x8b35('0x5a'),_0x5d30bb[_0x8b35('0x3b')],util[_0x8b35('0x40')](_0x4abeea,{'showHidden':![],'depth':null}));}};VoiceCallReport['prototype'][_0x8b35('0x22')]=function(_0x1e44ba){try{if(this[_0x8b35('0x38')](_0x1e44ba)){logger['debug'](_0x8b35('0x5b'),_0x1e44ba[_0x8b35('0x3b')],util[_0x8b35('0x40')](_0x1e44ba,{'showHidden':![],'depth':null}));if(_0x1e44ba[_0x8b35('0x3b')]===_0x1e44ba[_0x8b35('0x41')]&&_0x1e44ba[_0x8b35('0x4a')]!='h'&&_0x1e44ba['channel']!='OutgoingSpoolFailed'){_0x1e44ba[_0x8b35('0x5c')]=_0x1e44ba[_0x8b35('0x5c')][_0x8b35('0x5d')]();_0x1e44ba[_0x8b35('0x5e')]=_0x1e44ba['appdata']&&_0x1e44ba[_0x8b35('0x5f')][_0x8b35('0x60')](_0x8b35('0x61'))?_0x1e44ba[_0x8b35('0x5f')]:(_0x1e44ba[_0x8b35('0x5f')]||_0x1e44ba['applicationdata'])[_0x8b35('0x5d')]();logger['info'](_0x8b35('0x62'),_0x1e44ba[_0x8b35('0x3b')],_0x1e44ba[_0x8b35('0x5c')],_0x1e44ba[_0x8b35('0x5e')]);if(_[_0x8b35('0x42')](this['channels'][_0x1e44ba[_0x8b35('0x3b')]])){this[_0x8b35('0x1e')][_0x1e44ba['uniqueid']]=new Channel();this[_0x8b35('0x1e')][_0x1e44ba[_0x8b35('0x3b')]]['starttime']=_0x1e44ba['duration']?moment()[_0x8b35('0x63')](moment[_0x8b35('0x64')](_0x1e44ba[_0x8b35('0x64')])['seconds'](),'seconds')['format'](_0x8b35('0x54')):moment()[_0x8b35('0x4e')](_0x8b35('0x54'));this['channels'][_0x1e44ba['uniqueid']][_0x8b35('0x55')]=_0x8b35('0x16');}_[_0x8b35('0x43')](this[_0x8b35('0x1e')][_0x1e44ba['uniqueid']],_[_0x8b35('0x44')](_0x1e44ba,_['keys'](this['channels'][_0x1e44ba[_0x8b35('0x3b')]])));if(_[_0x8b35('0x65')](applications,_0x1e44ba['application'])){this[_0x8b35('0x1e')][_0x1e44ba[_0x8b35('0x3b')]][_0x8b35('0x66')]=_0x1e44ba['application'];this[_0x8b35('0x1e')][_0x1e44ba[_0x8b35('0x3b')]]['lastdata']=_0x1e44ba[_0x8b35('0x5e')];if(_0x1e44ba[_0x8b35('0x5c')]==='set'&&_['startsWith'](_0x1e44ba[_0x8b35('0x5e')][_0x8b35('0x5d')](),_0x8b35('0x67'))){var _0xced94d=_0x1e44ba[_0x8b35('0x5e')][_0x8b35('0x49')]('=');var _0x2abc91=_0xced94d[0x0][_0x8b35('0x5d')]()['match'](/cdr\((.*)\)/);if(_0x2abc91){this[_0x8b35('0x1e')][_0x1e44ba[_0x8b35('0x3b')]][_0x2abc91[0x1]]=_0xced94d[0x1];}}else if(_0x1e44ba[_0x8b35('0x5c')]===_0x8b35('0x68')){this[_0x8b35('0x1e')][_0x1e44ba['uniqueid']][_0x8b35('0x68')]=_0x1e44ba['applicationdata'][_0x8b35('0x49')](',')[0x0];}}}}}catch(_0xe87274){logger['error'](_0x8b35('0x69'),_0x1e44ba[_0x8b35('0x3b')],util['inspect'](_0xe87274,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0x8b35('0x37')]['syncNewState']=function(_0x5afcb1){try{if(this['isNotNull'](_0x5afcb1)){logger[_0x8b35('0x3a')](_0x8b35('0x6a'),_0x5afcb1[_0x8b35('0x3b')],_0x5afcb1[_0x8b35('0x41')],_0x5afcb1[_0x8b35('0x3c')],_0x5afcb1[_0x8b35('0x3d')]);logger['debug'](_0x8b35('0x6b'),_0x5afcb1[_0x8b35('0x3b')],util[_0x8b35('0x40')](_0x5afcb1,{'showHidden':![],'depth':null}));if(_0x5afcb1[_0x8b35('0x3b')]!==_0x5afcb1['linkedid']){if(this[_0x8b35('0x1e')][_0x5afcb1[_0x8b35('0x41')]]){if(_0x5afcb1[_0x8b35('0x56')]==='6'){if(!this[_0x8b35('0x1e')][_0x5afcb1[_0x8b35('0x41')]]['answered']){var _0x177fd8=moment();this[_0x8b35('0x1e')][_0x5afcb1[_0x8b35('0x41')]][_0x8b35('0x6c')]=!![];this['channels'][_0x5afcb1['linkedid']]['answertime']=_0x177fd8[_0x8b35('0x4e')](_0x8b35('0x54'));if(this[_0x8b35('0x1e')][_0x5afcb1[_0x8b35('0x41')]][_0x8b35('0x6d')]){this[_0x8b35('0x1e')][_0x5afcb1[_0x8b35('0x41')]][_0x8b35('0x6e')]=_0x177fd8[_0x8b35('0x6f')](this['channels'][_0x5afcb1[_0x8b35('0x41')]][_0x8b35('0x6d')],_0x8b35('0x70'));}}this[_0x8b35('0x1e')][_0x5afcb1[_0x8b35('0x41')]][_0x8b35('0x41')]=_0x5afcb1[_0x8b35('0x3b')];if(_0x5afcb1[_0x8b35('0x3d')]!==_0x8b35('0x4b')){this[_0x8b35('0x1e')][_0x5afcb1[_0x8b35('0x41')]][_0x8b35('0x4d')]=_0x5afcb1[_0x8b35('0x3d')];}this[_0x8b35('0x1e')][_0x5afcb1[_0x8b35('0x41')]][_0x8b35('0x71')]=_0x5afcb1['calleridname'];this[_0x8b35('0x1e')][_0x5afcb1[_0x8b35('0x41')]][_0x8b35('0x72')]=_0x5afcb1[_0x8b35('0x48')];this[_0x8b35('0x1e')][_0x5afcb1['linkedid']][_0x8b35('0x55')]=dispositions[_[_0x8b35('0x73')](_0x5afcb1['channelstate'])];if(this[_0x8b35('0x1f')][_0x5afcb1['channel']['split']('-')[0x0]]){this[_0x8b35('0x1e')][_0x5afcb1[_0x8b35('0x41')]][_0x8b35('0x74')]=this['agents'][_0x5afcb1[_0x8b35('0x48')][_0x8b35('0x49')]('-')[0x0]]['id'];this[_0x8b35('0x1e')][_0x5afcb1[_0x8b35('0x41')]][_0x8b35('0x75')]=this[_0x8b35('0x1f')][_0x5afcb1['channel'][_0x8b35('0x49')]('-')[0x0]][_0x8b35('0x4f')];}}}}else{if(this[_0x8b35('0x1e')][_0x5afcb1[_0x8b35('0x3b')]]){if(_0x5afcb1['channelstate']==='6'){if(this['agents'][_0x5afcb1['channel'][_0x8b35('0x49')]('-')[0x0]]){this[_0x8b35('0x1e')][_0x5afcb1[_0x8b35('0x3b')]][_0x8b35('0x74')]=this['agents'][_0x5afcb1[_0x8b35('0x48')][_0x8b35('0x49')]('-')[0x0]]['id'];this[_0x8b35('0x1e')][_0x5afcb1[_0x8b35('0x3b')]][_0x8b35('0x75')]=this['agents'][_0x5afcb1['channel'][_0x8b35('0x49')]('-')[0x0]][_0x8b35('0x4f')];}}}}if(_0x5afcb1[_0x8b35('0x56')]==='6'&&_0x5afcb1[_0x8b35('0x46')]==='from-sip'){if(this['agents'][_0x5afcb1[_0x8b35('0x48')][_0x8b35('0x49')]('-')[0x0]]){this[_0x8b35('0x1f')][_0x5afcb1[_0x8b35('0x48')][_0x8b35('0x49')]('-')[0x0]][_0x8b35('0x4c')]=_0x5afcb1[_0x8b35('0x4a')];var _0x4c8aa0;if(this[_0x8b35('0x1e')][_0x5afcb1[_0x8b35('0x3b')]])_0x4c8aa0=this['channels'][_0x5afcb1[_0x8b35('0x3b')]][_0x8b35('0x76')];else if(this[_0x8b35('0x1e')][_0x5afcb1['linkedid']])_0x4c8aa0=this[_0x8b35('0x1e')][_0x5afcb1[_0x8b35('0x41')]][_0x8b35('0x76')];logger['debug'](_0x8b35('0x77'),_0x5afcb1[_0x8b35('0x3b')],util[_0x8b35('0x40')]({'destaccountcode':this[_0x8b35('0x1f')][_0x5afcb1['channel']['split']('-')[0x0]][_0x8b35('0x58')],'destconnectedlinenum':_0x5afcb1[_0x8b35('0x4a')],'routealias':_0x4c8aa0},{'showHidden':![],'depth':null}));this[_0x8b35('0x39')](util['format'](_0x8b35('0x59'),this[_0x8b35('0x1f')][_0x5afcb1[_0x8b35('0x48')]['split']('-')[0x0]][_0x8b35('0x4f')]),_0x8b35('0x50'),{'destaccountcode':this[_0x8b35('0x1f')][_0x5afcb1[_0x8b35('0x48')]['split']('-')[0x0]][_0x8b35('0x58')],'destconnectedlinenum':_0x5afcb1[_0x8b35('0x4a')],'routealias':_0x4c8aa0});}}}}catch(_0x54ddfc){logger[_0x8b35('0x36')](_0x8b35('0x78'),_0x5afcb1[_0x8b35('0x3b')],util['inspect'](_0x54ddfc,{'showHidden':![],'depth':null}));}};VoiceCallReport['prototype'][_0x8b35('0x79')]=function(_0x20442e,_0x114064){try{if(this[_0x8b35('0x1e')][_0x20442e]){logger[_0x8b35('0x3a')](_0x8b35('0x7a'),_0x20442e,_0x114064);this[_0x8b35('0x1e')][_0x20442e][_0x8b35('0x7b')]=!![];if(_[_0x8b35('0x7c')](_0x114064,_0x8b35('0x7d'))){_0x114064=_0x114064[_0x8b35('0x7e')]('.wav49','.WAV');}this[_0x8b35('0x1e')][_0x20442e][_0x8b35('0x7f')]=_0x114064;var _0x3a7c54=_[_0x8b35('0x80')](this['channels'][_0x20442e][_0x8b35('0x81')],{'filename':_0x114064});if(_[_0x8b35('0x82')](_0x3a7c54)){this['channels'][_0x20442e][_0x8b35('0x81')]['push']({'filename':_0x114064,'createdAt':moment()[_0x8b35('0x4e')](_0x8b35('0x54')),'mixmonitorid':'','status':'rec'});}}}catch(_0x2e890a){logger[_0x8b35('0x36')](_0x8b35('0x83'),_0x20442e,util[_0x8b35('0x40')](_0x2e890a,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0x8b35('0x37')][_0x8b35('0x28')]=function(_0x492bb1){try{if(this['isNotNull'](_0x492bb1)){logger['debug'](_0x8b35('0x84'),_0x492bb1[_0x8b35('0x3b')],util[_0x8b35('0x40')](_0x492bb1,{'showHidden':![],'depth':null}));if(this[_0x8b35('0x1e')][_0x492bb1[_0x8b35('0x3b')]]&&_0x492bb1[_0x8b35('0x48')]!=_0x8b35('0x53')){if(this['isNotNull'](_0x492bb1[_0x8b35('0x85')])){if(this[_0x8b35('0x38')](_0x492bb1[_0x8b35('0x85')]['mixmonitor_filename'])){logger[_0x8b35('0x3a')](_0x8b35('0x86'),_0x492bb1[_0x8b35('0x3b')],_0x492bb1[_0x8b35('0x87')]);this[_0x8b35('0x79')](_0x492bb1[_0x8b35('0x3b')],_0x492bb1['value']);}else if(this[_0x8b35('0x38')](_0x492bb1[_0x8b35('0x85')]['xmd-phone'])){logger[_0x8b35('0x3a')]('[%s][voiceCallReport][varset]\x20variable:xmd-phone\x20value:%s',_0x492bb1[_0x8b35('0x3b')],_0x492bb1['value']);this[_0x8b35('0x1e')][_0x492bb1[_0x8b35('0x3b')]]['calleridnum']=_0x492bb1[_0x8b35('0x87')];}else if(this[_0x8b35('0x38')](_0x492bb1[_0x8b35('0x85')]['xmd-callerid'])){logger[_0x8b35('0x3a')](_0x8b35('0x88'),_0x492bb1[_0x8b35('0x3b')],_0x492bb1[_0x8b35('0x87')]);this['channels'][_0x492bb1[_0x8b35('0x3b')]]['callerid']=_0x492bb1[_0x8b35('0x87')];}else if(this['isNotNull'](_0x492bb1['variable'][_0x8b35('0x89')])){logger['info'](_0x8b35('0x8a'),_0x492bb1[_0x8b35('0x3b')],_0x492bb1[_0x8b35('0x87')]);this[_0x8b35('0x1e')][_0x492bb1[_0x8b35('0x3b')]][_0x8b35('0x8b')]=_0x492bb1[_0x8b35('0x87')];}else if(this[_0x8b35('0x38')](_0x492bb1[_0x8b35('0x85')][_0x8b35('0x8c')])){logger[_0x8b35('0x3a')]('[%s][voiceCallReport][varset]\x20variable:xmd-queue\x20value:%s',_0x492bb1[_0x8b35('0x3b')],_0x492bb1[_0x8b35('0x87')][_0x8b35('0x49')](',')[0x0]);this[_0x8b35('0x1e')][_0x492bb1['uniqueid']][_0x8b35('0x68')]=_0x492bb1['value'][_0x8b35('0x49')](',')[0x0];}else if(this[_0x8b35('0x38')](_0x492bb1[_0x8b35('0x85')]['xmd-originatecalleridnum'])){logger['info']('[%s][voiceCallReport][varset]\x20variable:xmd-originatecalleridnum\x20value:%s',_0x492bb1[_0x8b35('0x3b')],_0x492bb1[_0x8b35('0x87')]);this['channels'][_0x492bb1[_0x8b35('0x3b')]][_0x8b35('0x8d')]=_0x492bb1['value'];}else if(this['isNotNull'](_0x492bb1[_0x8b35('0x85')][_0x8b35('0x8e')])){logger[_0x8b35('0x3a')](_0x8b35('0x8f'),_0x492bb1[_0x8b35('0x3b')],_0x492bb1[_0x8b35('0x87')]);this[_0x8b35('0x1e')][_0x492bb1[_0x8b35('0x3b')]][_0x8b35('0x90')]=_0x492bb1['value'];}else if(this[_0x8b35('0x38')](_0x492bb1[_0x8b35('0x85')][_0x8b35('0x91')])){logger[_0x8b35('0x3a')]('[%s][voiceCallReport][varset]\x20variable:xmd-callerid-preview\x20value:%s',_0x492bb1[_0x8b35('0x3b')],_0x492bb1[_0x8b35('0x87')]);this[_0x8b35('0x1e')][_0x492bb1[_0x8b35('0x3b')]][_0x8b35('0x92')]=_0x492bb1['value'];}else if(this[_0x8b35('0x38')](_0x492bb1[_0x8b35('0x85')][_0x8b35('0x93')])){logger[_0x8b35('0x3a')](_0x8b35('0x94'),_0x492bb1[_0x8b35('0x3b')],_0x492bb1[_0x8b35('0x87')]);this[_0x8b35('0x1e')][_0x492bb1[_0x8b35('0x3b')]][_0x8b35('0x68')]=_0x492bb1['value'];}else if(this[_0x8b35('0x38')](_0x492bb1[_0x8b35('0x85')][_0x8b35('0x95')])){logger[_0x8b35('0x3a')](_0x8b35('0x96'),_0x492bb1['uniqueid'],_0x492bb1[_0x8b35('0x87')]);this['channels'][_0x492bb1['uniqueid']]['sipcalluniqueid']=_0x492bb1['value'];}}}else if(this['isNotNull'](_0x492bb1['variable'][_0x8b35('0x97')])){if(_0x492bb1[_0x8b35('0x87')]){var _0x5dbd6=path[_0x8b35('0x98')](_0x492bb1['value'])[_0x8b35('0x4f')];logger['info'](_0x8b35('0x86'),_0x5dbd6,_0x492bb1[_0x8b35('0x87')]);this[_0x8b35('0x79')](_0x5dbd6,_0x492bb1[_0x8b35('0x87')]);}}else if(this[_0x8b35('0x1e')][_0x492bb1[_0x8b35('0x41')]]){if(this[_0x8b35('0x38')](_0x492bb1[_0x8b35('0x85')])){if(this[_0x8b35('0x38')](_0x492bb1[_0x8b35('0x85')][_0x8b35('0x95')])){logger['info'](_0x8b35('0x96'),_0x492bb1[_0x8b35('0x41')],_0x492bb1[_0x8b35('0x87')]);this[_0x8b35('0x1e')][_0x492bb1[_0x8b35('0x41')]]['sipcalllinkedid']=_0x492bb1[_0x8b35('0x87')];}}}}}catch(_0x1aea60){logger[_0x8b35('0x36')](_0x8b35('0x99'),_0x492bb1[_0x8b35('0x3b')],util[_0x8b35('0x40')](_0x1aea60,{'showHidden':![],'depth':null}));}};VoiceCallReport['prototype'][_0x8b35('0x2a')]=function(_0x458874){try{if(this[_0x8b35('0x38')](_0x458874)){logger[_0x8b35('0x3e')](_0x8b35('0x9a'),_0x458874[_0x8b35('0x3b')],util[_0x8b35('0x40')](_0x458874,{'showHidden':![],'depth':null}));if(this[_0x8b35('0x1e')][_0x458874['uniqueid']]){logger[_0x8b35('0x3a')]('[%s][voiceCallReport][hangup]\x20reason:%s',_0x458874[_0x8b35('0x3b')],_0x458874[_0x8b35('0x9b')]);var _0x458b37=moment();this[_0x8b35('0x1e')][_0x458874[_0x8b35('0x3b')]][_0x8b35('0x9c')]=_0x458b37[_0x8b35('0x4e')](_0x8b35('0x54'));this[_0x8b35('0x1e')][_0x458874[_0x8b35('0x3b')]][_0x8b35('0x64')]=_0x458b37[_0x8b35('0x6f')](this[_0x8b35('0x1e')][_0x458874[_0x8b35('0x3b')]][_0x8b35('0x6d')],'seconds');if(this['channels'][_0x458874[_0x8b35('0x3b')]][_0x8b35('0x6c')]){this[_0x8b35('0x1e')][_0x458874[_0x8b35('0x3b')]][_0x8b35('0x9d')]=_0x458b37['diff'](this[_0x8b35('0x1e')][_0x458874[_0x8b35('0x3b')]][_0x8b35('0x9e')],_0x8b35('0x70'));this[_0x8b35('0x1e')][_0x458874[_0x8b35('0x3b')]][_0x8b35('0x6e')]=this[_0x8b35('0x1e')][_0x458874[_0x8b35('0x3b')]][_0x8b35('0x64')]-this['channels'][_0x458874[_0x8b35('0x3b')]][_0x8b35('0x9d')];}if(_0x458874[_0x8b35('0x46')]===_0x8b35('0x47')){if(this[_0x8b35('0x1f')][_0x458874[_0x8b35('0x48')][_0x8b35('0x49')]('-')[0x0]]){this[_0x8b35('0x1f')][_0x458874[_0x8b35('0x48')]['split']('-')[0x0]]=_[_0x8b35('0x9f')](this[_0x8b35('0x1f')][_0x458874[_0x8b35('0x48')][_0x8b35('0x49')]('-')[0x0]],[_0x8b35('0x4c')]);logger[_0x8b35('0x3e')](_0x8b35('0xa0'),_0x458874[_0x8b35('0x3b')],util[_0x8b35('0x40')]({'id':this[_0x8b35('0x1f')][_0x458874[_0x8b35('0x48')][_0x8b35('0x49')]('-')[0x0]]['id'],'destaccountcode':this['agents'][_0x458874[_0x8b35('0x48')][_0x8b35('0x49')]('-')[0x0]][_0x8b35('0x58')]},{'showHidden':![],'depth':null}));this[_0x8b35('0x39')](util[_0x8b35('0x4e')](_0x8b35('0x59'),this['agents'][_0x458874[_0x8b35('0x48')]['split']('-')[0x0]][_0x8b35('0x4f')]),'user:agentcomplete',{'id':this[_0x8b35('0x1f')][_0x458874[_0x8b35('0x48')][_0x8b35('0x49')]('-')[0x0]]['id'],'destaccountcode':this[_0x8b35('0x1f')][_0x458874[_0x8b35('0x48')][_0x8b35('0x49')]('-')[0x0]][_0x8b35('0x58')]});}}var _0x365790=this;Promise[_0x8b35('0xa1')]()[_0x8b35('0xa2')](function(){var _0x35cdeb=_0x365790[_0x8b35('0x1e')][_0x458874[_0x8b35('0x3b')]];if(typeof _0x35cdeb[_0x8b35('0xa3')]===_0x8b35('0xa4'))return;if(_['isEmpty'](_0x35cdeb['monitors']))return;return RpcSetting[_0x8b35('0xa5')]()[_0x8b35('0xa2')](function(_0x3a177d){if(!_0x3a177d[_0x8b35('0xa6')])return;return Promise[_0x8b35('0xa1')]()[_0x8b35('0xa2')](function(){return ami['Action']({'action':_0x8b35('0xa7'),'channel':_0x35cdeb[_0x8b35('0x48')]})[_0x8b35('0xa8')](function(){});})[_0x8b35('0xa2')](function(){return ami[_0x8b35('0xa9')]({'action':'StopMixMonitor','channel':_0x35cdeb[_0x8b35('0x72')]})[_0x8b35('0xa8')](function(){})[_0x8b35('0xaa')](function(){var _0x4e8b58=_0x365790['agents'][_0x35cdeb[_0x8b35('0x72')][_0x8b35('0x49')]('-')[0x0]];if(!_0x4e8b58)return;io[_0x8b35('0x39')](_0x8b35('0xab'),{'agentId':_0x4e8b58['id'],'uniqueid':_0x35cdeb['uniqueid']});});});});})['then'](function(){if(_0x458874[_0x8b35('0xac')]==='BlindTransfer'){_0x365790[_0x8b35('0x20')][_0x458874[_0x8b35('0x3b')]]=_0x365790[_0x8b35('0x1e')][_0x458874[_0x8b35('0x3b')]];}else{if(_0x365790['channels'][_0x458874['uniqueid']][_0x8b35('0x8b')]===_0x8b35('0xad')&&_0x365790[_0x8b35('0x20')][_0x458874[_0x8b35('0x3b')]]){_0x365790[_0x8b35('0x1e')][_0x458874['uniqueid']][_0x8b35('0x3b')]=[_0x365790[_0x8b35('0x1e')][_0x458874['uniqueid']][_0x8b35('0x41')],_0x365790[_0x8b35('0x1e')][_0x458874[_0x8b35('0x3b')]]['linkedid']=_0x365790[_0x8b35('0x1e')][_0x458874[_0x8b35('0x3b')]]['uniqueid']][0x0];delete _0x365790[_0x8b35('0x20')][_0x458874[_0x8b35('0x3b')]];}}logger[_0x8b35('0x3e')](_0x8b35('0xae'),_0x458874[_0x8b35('0x3b')],util[_0x8b35('0x40')](_0x365790[_0x8b35('0x1e')][_0x458874[_0x8b35('0x3b')]],{'showHidden':![],'depth':null}));ami[_0x8b35('0x39')](_0x8b35('0xaf'),_0x365790[_0x8b35('0x1e')][_0x458874[_0x8b35('0x3b')]]);delete _0x365790[_0x8b35('0x1e')][_0x458874[_0x8b35('0x3b')]];});}}}catch(_0x27ebd5){logger[_0x8b35('0x36')]('[%s][voiceCallReport][hangup]',_0x458874[_0x8b35('0x3b')],util['inspect'](_0x27ebd5,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0x8b35('0x37')][_0x8b35('0x2e')]=function(_0x5c3526){try{if(this[_0x8b35('0x38')](_0x5c3526)){logger['info'](_0x8b35('0xb0'),_0x5c3526[_0x8b35('0x3b')],_0x5c3526[_0x8b35('0xb1')],_0x5c3526['transfertargetcalleridnum']);logger['debug']('[%s][voiceCallReport][attendedtransfer]\x20event:',_0x5c3526[_0x8b35('0x3b')],util[_0x8b35('0x40')](_0x5c3526,{'showHidden':![],'depth':null}));if(this[_0x8b35('0x1e')][_0x5c3526[_0x8b35('0xb2')]]){this['channels'][_0x5c3526['transfereeuniqueid']][_0x8b35('0xb3')]=_0x5c3526[_0x8b35('0xb1')];this[_0x8b35('0x1e')][_0x5c3526['transfereeuniqueid']][_0x8b35('0xb4')]=_0x5c3526[_0x8b35('0xb5')];if(this['channels'][_0x5c3526[_0x8b35('0xb6')]]){var _0x530970=this[_0x8b35('0x1e')][_0x5c3526[_0x8b35('0xb6')]];this[_0x8b35('0x1e')][_0x5c3526[_0x8b35('0xb6')]]=this['channels'][_0x5c3526[_0x8b35('0xb2')]];this['channels'][_0x5c3526[_0x8b35('0xb2')]]=_0x530970;}}else if(this[_0x8b35('0x1e')][_0x5c3526[_0x8b35('0xb7')]]){this[_0x8b35('0x1e')][_0x5c3526[_0x8b35('0xb7')]][_0x8b35('0xb3')]=_0x5c3526['origtransferercalleridnum'];this[_0x8b35('0x1e')][_0x5c3526['transfertargetuniqueid']][_0x8b35('0xb4')]=_0x5c3526[_0x8b35('0xb5')];if(this[_0x8b35('0x1e')][_0x5c3526[_0x8b35('0xb8')]]){var _0x530970=this[_0x8b35('0x1e')][_0x5c3526[_0x8b35('0xb8')]];this[_0x8b35('0x1e')][_0x5c3526[_0x8b35('0xb8')]]=this[_0x8b35('0x1e')][_0x5c3526['transfertargetuniqueid']];this[_0x8b35('0x1e')][_0x5c3526['transfertargetuniqueid']]=_0x530970;}}if((this[_0x8b35('0x1e')][_0x5c3526[_0x8b35('0xb8')]]||this['channels'][_0x5c3526['origtransfererlinkedid']])&&this[_0x8b35('0x1e')][_0x5c3526['secondtransfereruniqueid']]){var _0x544a99=_['some']([this[_0x8b35('0x1e')][_0x5c3526[_0x8b35('0xb8')]],this[_0x8b35('0x1e')][_0x5c3526['origtransfererlinkedid']],this[_0x8b35('0x1e')][_0x5c3526['secondtransfereruniqueid']]],function(_0x19d00e){return _0x19d00e&&_0x19d00e[_0x8b35('0x8b')]==='outbound'&&_0x19d00e[_0x8b35('0xb9')];});if(_0x544a99){if(this[_0x8b35('0x1e')][_0x5c3526[_0x8b35('0xb8')]])this[_0x8b35('0x1e')][_0x5c3526[_0x8b35('0xb8')]][_0x8b35('0xa3')]='ATTENDED';if(this['channels'][_0x5c3526[_0x8b35('0xba')]])this[_0x8b35('0x1e')][_0x5c3526[_0x8b35('0xba')]][_0x8b35('0xa3')]=_0x8b35('0xbb');this[_0x8b35('0x1e')][_0x5c3526[_0x8b35('0xb6')]]['transferType']=_0x8b35('0xbb');}}}}catch(_0x138dad){logger[_0x8b35('0x36')]('[%s][voiceCallReport][attendedtransfer]',_0x5c3526['uniqueid'],util[_0x8b35('0x40')](_0x138dad,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0x8b35('0x37')][_0x8b35('0x2f')]=function(_0x1dde30){try{if(this[_0x8b35('0x38')](_0x1dde30)){logger[_0x8b35('0x3a')](_0x8b35('0xbc'),_0x1dde30[_0x8b35('0x3b')],_0x1dde30[_0x8b35('0xbd')],_0x1dde30[_0x8b35('0xbe')]);logger[_0x8b35('0x3e')]('[%s][voiceCallReport][blindtransfer]\x20event:',_0x1dde30['uniqueid'],util[_0x8b35('0x40')](_0x1dde30,{'showHidden':![],'depth':null}));if(this[_0x8b35('0x1e')][_0x1dde30[_0x8b35('0xb2')]]){this['channels'][_0x1dde30[_0x8b35('0xb2')]][_0x8b35('0xb3')]=_0x1dde30[_0x8b35('0xbd')];this[_0x8b35('0x1e')][_0x1dde30[_0x8b35('0xb2')]][_0x8b35('0xb4')]=_0x1dde30[_0x8b35('0xbe')];this[_0x8b35('0x1e')][_0x1dde30['transfereeuniqueid']]['transferType']=_0x8b35('0xbf');this[_0x8b35('0x2a')]({'event':_0x8b35('0xc0'),'uniqueid':_0x1dde30[_0x8b35('0xb2')],'context':_0x1dde30[_0x8b35('0x46')],'channel':_0x1dde30[_0x8b35('0xc1')]});}else{this[_0x8b35('0x1e')][_0x1dde30[_0x8b35('0xc2')]]['transferType']=_0x8b35('0xbf');}}}catch(_0xebb4ac){logger['error'](_0x8b35('0xc3'),_0x1dde30[_0x8b35('0x3b')],util[_0x8b35('0x40')](_0xebb4ac,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0x8b35('0x37')][_0x8b35('0x31')]=function(_0x5f19d1){try{if(this[_0x8b35('0x38')](_0x5f19d1)){logger[_0x8b35('0x3e')](_0x8b35('0xc4'),_0x5f19d1[_0x8b35('0x3b')],util[_0x8b35('0x40')](_0x5f19d1,{'showHidden':![],'depth':null}));if(this[_0x8b35('0x1e')][_0x5f19d1[_0x8b35('0x3b')]]){if(!_[_0x8b35('0x82')](this[_0x8b35('0x1e')][_0x5f19d1[_0x8b35('0x3b')]][_0x8b35('0x9e')])){this['channels'][_0x5f19d1[_0x8b35('0x3b')]][_0x8b35('0xc5')]=moment()[_0x8b35('0x4e')]('YYYY-MM-DD\x20HH:mm:ss');logger[_0x8b35('0x3a')](_0x8b35('0xc6'),_0x5f19d1[_0x8b35('0x3b')],this['channels'][_0x5f19d1[_0x8b35('0x3b')]][_0x8b35('0xc5')]);}}}}catch(_0x3252a0){logger[_0x8b35('0x36')]('[%s][voiceCallReport][musiconholdstart]',_0x5f19d1[_0x8b35('0x3b')],util[_0x8b35('0x40')](_0x3252a0,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0x8b35('0x37')][_0x8b35('0x33')]=function(_0x365f59){try{if(this[_0x8b35('0x38')](_0x365f59)){logger[_0x8b35('0x3e')](_0x8b35('0xc7'),_0x365f59[_0x8b35('0x3b')],util['inspect'](_0x365f59,{'showHidden':![],'depth':null}));if(this[_0x8b35('0x1e')][_0x365f59['uniqueid']]){if(!_[_0x8b35('0x82')](this[_0x8b35('0x1e')][_0x365f59[_0x8b35('0x3b')]][_0x8b35('0xc5')])){this[_0x8b35('0x1e')][_0x365f59[_0x8b35('0x3b')]]['mohtime']+=moment()[_0x8b35('0xc8')](0x0)[_0x8b35('0x6f')](this[_0x8b35('0x1e')][_0x365f59[_0x8b35('0x3b')]][_0x8b35('0xc5')],_0x8b35('0x70'));logger[_0x8b35('0x3a')](_0x8b35('0xc9'),_0x365f59[_0x8b35('0x3b')],this['channels'][_0x365f59[_0x8b35('0x3b')]][_0x8b35('0xca')]);delete this['channels'][_0x365f59[_0x8b35('0x3b')]][_0x8b35('0xc5')];}}}}catch(_0x26ead3){logger[_0x8b35('0x36')](_0x8b35('0xcb'),_0x365f59['uniqueid'],util[_0x8b35('0x40')](_0x26ead3,{'showHidden':![],'depth':null}));}};module[_0x8b35('0xcc')]=VoiceCallReport;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf73e=['rtpaudioqosloss','rtpaudioqosrttbridged','sipcallid','bridgepeer','bridgepvtcallid','memberlastcall','memberpenalty','memberrealtime','isNil','[%s][voiceDialReport][hangup]\x20event:','cause-txt','endtime','diff','starttime','complete','outbound','total','answertime','answered','seconds','billableseconds','sumHoldTime','holdtime','sumDuration','duration','custom:voiceDialReport','[%s][voiceDialReport][hangup]\x20sending\x20dialend\x20event:','[%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','[%s][voiceDialReport][newexten]\x20application:%s\x20appdata:%s','match','[%s][voiceDialReport][newexten]','exports','moment','util','ioredis','../../../config/logger','ami','redis','localhost','socket.io-emitter','channels','outboundChannels','applications','variables','dialbegin','syncDialBegin','dialend','syncDialEnd','bind','varset','syncVarSet','newexten','syncNewExten','hangup','syncHangup','prototype','emit','isNotNull','debug','[%s][voiceDialReport][dialbegin]\x20event:','uniqueid','inspect','format','called','channel','substring','lastIndexOf','privilege','info','[%s][voiceDialReport][dialbegin]\x20agent:%s\x20interface:%s\x20lastevent:called','membername','[%s][voiceDialReport][dialbegin]\x20sending\x20voice_outbound_channel:save\x20event:','merge','voice:outbound','voice_outbound_channel:save','[%s][voiceDialReport][dialbegin]\x20sending\x20dialbegin\x20event:','custom:dialbegin','error','[%s][voiceDialReport][dialend]\x20event:','dialstatus','ANSWER','connectedlinenum','connectedlinename','YYYY-MM-DD\x20HH:mm:ss','lastevent','connect','[%s][voiceDialReport][dialend]\x20agent:%s\x20lastevent:connect','[%s][voiceDialReport][dialend]\x20sending\x20dialconnect\x20event:','custom:dialconnect','[%s][voiceDialReport][dialend]\x20sending\x20voice_outbound_channel:save\x20event:','[%s][voiceDialReport][dialend]','[%s][voiceDialReport][varset]\x20event:','addVariable','keys','variable','value','outboundrouteid','isUndefined','[%s][voiceDialReport][varset]\x20outboundrouteid:%s\x20variable:%s\x20value:%s','[%s][voiceDialReport][varset]\x20sending\x20voice_outbound_channel:save\x20event:','[%s][voiceDialReport][varset]','rtpaudioqos','rtpaudioqosjitter','rtpaudioqosjitterbridged'];(function(_0x1196bd,_0xba4aea){var _0x26014f=function(_0x542a3d){while(--_0x542a3d){_0x1196bd['push'](_0x1196bd['shift']());}};_0x26014f(++_0xba4aea);}(_0xf73e,0xa6));var _0xef73=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xf73e[_0x3dd15e];return _0x231fd0;};'use strict';var _=require('lodash');var moment=require(_0xef73('0x0'));var util=require(_0xef73('0x1'));var Redis=require(_0xef73('0x2'));var config=require('../../../config/environment');var logger=require(_0xef73('0x3'))(_0xef73('0x4'));var ami=require('../ami');config[_0xef73('0x5')]=_['defaults'](config['redis'],{'host':_0xef73('0x6'),'port':0x18eb});var io=require(_0xef73('0x7'))(new Redis(config[_0xef73('0x5')]));function VoiceDialReport(_0x336245){this[_0xef73('0x8')]=_0x336245[_0xef73('0x9')];this['outbound']=_0x336245['outbound'];this[_0xef73('0xa')]={};this[_0xef73('0xb')]={};ami['on'](_0xef73('0xc'),this[_0xef73('0xd')]['bind'](this));ami['on'](_0xef73('0xe'),this[_0xef73('0xf')][_0xef73('0x10')](this));ami['on'](_0xef73('0x11'),this[_0xef73('0x12')][_0xef73('0x10')](this));ami['on'](_0xef73('0x13'),this[_0xef73('0x14')]['bind'](this));ami['on'](_0xef73('0x15'),this[_0xef73('0x16')][_0xef73('0x10')](this));}VoiceDialReport[_0xef73('0x17')]['isNotNull']=function(_0x27b6f8){return _0x27b6f8!==null&&!_['isUndefined'](_0x27b6f8);};VoiceDialReport[_0xef73('0x17')][_0xef73('0x18')]=function(_0x33336f,_0x598357,_0x29e74f){io['to'](_0x33336f)[_0xef73('0x18')](_0x598357,_0x29e74f);};VoiceDialReport['prototype'][_0xef73('0xd')]=function(_0x2065cd){try{if(this[_0xef73('0x19')](_0x2065cd)){logger[_0xef73('0x1a')](_0xef73('0x1b'),_0x2065cd[_0xef73('0x1c')],util[_0xef73('0x1d')](_0x2065cd,{'showHidden':![],'depth':null}));if(this[_0xef73('0x8')][_0x2065cd[_0xef73('0x1c')]]){_['merge'](this[_0xef73('0x8')][_0x2065cd[_0xef73('0x1c')]],{'starttime':moment()[_0xef73('0x1e')]('YYYY-MM-DD\x20HH:mm:ss'),'lastevent':_0xef73('0x1f'),'interface':_0x2065cd[_0xef73('0x20')][_0xef73('0x21')](0x0,_0x2065cd['channel']['lastIndexOf']('-')),'membername':_0x2065cd[_0xef73('0x20')][_0xef73('0x21')](_0x2065cd[_0xef73('0x20')]['lastIndexOf']('/')+0x1,_0x2065cd['channel'][_0xef73('0x22')]('-'))},_['omit'](_0x2065cd,['event',_0xef73('0x23')]));logger[_0xef73('0x24')](_0xef73('0x25'),_0x2065cd[_0xef73('0x1c')],this['channels'][_0x2065cd[_0xef73('0x1c')]][_0xef73('0x26')],this[_0xef73('0x8')][_0x2065cd['uniqueid']]['interface']);logger[_0xef73('0x1a')](_0xef73('0x27'),_0x2065cd['uniqueid'],util[_0xef73('0x1d')](this[_0xef73('0x8')][_0x2065cd['uniqueid']],{'showHidden':![],'depth':null}));if(this[_0xef73('0xa')][_0x2065cd[_0xef73('0x1c')]])_[_0xef73('0x28')](this[_0xef73('0x8')][_0x2065cd['uniqueid']],this[_0xef73('0xa')][_0x2065cd['uniqueid']]);this[_0xef73('0x18')](_0xef73('0x29'),_0xef73('0x2a'),this[_0xef73('0x8')][_0x2065cd[_0xef73('0x1c')]]);logger[_0xef73('0x1a')](_0xef73('0x2b'),_0x2065cd[_0xef73('0x1c')],util[_0xef73('0x1d')](this[_0xef73('0x8')][_0x2065cd[_0xef73('0x1c')]],{'showHidden':![],'depth':null}));ami['emit'](_0xef73('0x2c'),this[_0xef73('0x8')][_0x2065cd[_0xef73('0x1c')]]);}}}catch(_0x54db70){logger[_0xef73('0x2d')]('[%s][voiceDialReport][dialbegin]',_0x2065cd['uniqueid'],util[_0xef73('0x1d')](_0x54db70,{'showHidden':![],'depth':null}));}};VoiceDialReport['prototype'][_0xef73('0xf')]=function(_0x7c5d48){try{if(this[_0xef73('0x19')](_0x7c5d48)){logger['debug'](_0xef73('0x2e'),_0x7c5d48['uniqueid'],util[_0xef73('0x1d')](_0x7c5d48,{'showHidden':![],'depth':null}));if(this['channels'][_0x7c5d48['uniqueid']]){this[_0xef73('0x8')][_0x7c5d48['uniqueid']]['dialstatus']=_0x7c5d48[_0xef73('0x2f')];if(_0x7c5d48[_0xef73('0x2f')]===_0xef73('0x30')){this[_0xef73('0x8')][_0x7c5d48[_0xef73('0x1c')]][_0xef73('0x31')]=_0x7c5d48[_0xef73('0x31')];this[_0xef73('0x8')][_0x7c5d48['uniqueid']][_0xef73('0x32')]=_0x7c5d48[_0xef73('0x32')];this[_0xef73('0x8')][_0x7c5d48[_0xef73('0x1c')]]['answertime']=moment()['format'](_0xef73('0x33'));this['channels'][_0x7c5d48[_0xef73('0x1c')]][_0xef73('0x34')]=_0xef73('0x35');logger[_0xef73('0x24')](_0xef73('0x36'),_0x7c5d48[_0xef73('0x1c')],_0x7c5d48[_0xef73('0x20')]['substring'](_0x7c5d48[_0xef73('0x20')]['lastIndexOf']('/')+0x1,_0x7c5d48[_0xef73('0x20')][_0xef73('0x22')]('-')));logger[_0xef73('0x1a')](_0xef73('0x37'),_0x7c5d48['uniqueid'],util[_0xef73('0x1d')](this['channels'][_0x7c5d48[_0xef73('0x1c')]],{'showHidden':![],'depth':null}));ami['emit'](_0xef73('0x38'),this[_0xef73('0x8')][_0x7c5d48[_0xef73('0x1c')]]);}logger[_0xef73('0x1a')](_0xef73('0x39'),_0x7c5d48[_0xef73('0x1c')],util[_0xef73('0x1d')](this[_0xef73('0x8')][_0x7c5d48[_0xef73('0x1c')]],{'showHidden':![],'depth':null}));this[_0xef73('0x18')](_0xef73('0x29'),_0xef73('0x2a'),this[_0xef73('0x8')][_0x7c5d48[_0xef73('0x1c')]]);}}}catch(_0x74f5cd){logger[_0xef73('0x2d')](_0xef73('0x3a'),_0x7c5d48[_0xef73('0x1c')],util[_0xef73('0x1d')](_0x74f5cd,{'showHidden':![],'depth':null}));}};VoiceDialReport['prototype']['syncVarSet']=function(_0x40247d){try{if(this[_0xef73('0x19')](_0x40247d)){logger['debug'](_0xef73('0x3b'),_0x40247d[_0xef73('0x1c')],util[_0xef73('0x1d')](_0x40247d,{'showHidden':![],'depth':null}));this[_0xef73('0x3c')](_0x40247d[_0xef73('0x1c')],_[_0xef73('0x3d')](_0x40247d[_0xef73('0x3e')])[0x0],_0x40247d[_0xef73('0x3f')]);if(this['isNotNull'](_0x40247d[_0xef73('0x3e')])&&this[_0xef73('0x19')](_0x40247d[_0xef73('0x3e')][_0xef73('0x40')])){if(_[_0xef73('0x41')](this[_0xef73('0x8')][_0x40247d[_0xef73('0x1c')]])){this[_0xef73('0x8')][_0x40247d[_0xef73('0x1c')]]={'routeId':_0x40247d[_0xef73('0x3f')],'variables':this['variables'][_0x40247d[_0xef73('0x1c')]]};logger['info'](_0xef73('0x42'),_0x40247d['uniqueid'],_0x40247d[_0xef73('0x3e')]['outboundrouteid'],_['keys'](_0x40247d[_0xef73('0x3e')])[0x0],_0x40247d[_0xef73('0x3f')]);logger[_0xef73('0x1a')](_0xef73('0x43'),_0x40247d[_0xef73('0x1c')],util[_0xef73('0x1d')](this[_0xef73('0x8')][_0x40247d[_0xef73('0x1c')]],{'showHidden':![],'depth':null}));this[_0xef73('0x18')](_0xef73('0x29'),'voice_outbound_channel:save',this['channels'][_0x40247d[_0xef73('0x1c')]]);}}}}catch(_0x46c11){logger[_0xef73('0x2d')](_0xef73('0x44'),_0x40247d[_0xef73('0x1c')],util[_0xef73('0x1d')](_0x46c11,{'showHidden':![],'depth':null}));}};VoiceDialReport[_0xef73('0x17')][_0xef73('0x3c')]=function(_0x45a455,_0x172253,_0x47d3dc){var _0x4bf571=[_0xef73('0x45'),'rtpaudioqosbridged',_0xef73('0x46'),_0xef73('0x47'),_0xef73('0x48'),'rtpaudioqoslossbridged','rtpaudioqosrtt',_0xef73('0x49'),_0xef73('0x4a'),'sipuri',_0xef73('0x4b'),_0xef73('0x4c'),'membercalls','memberdynamic','memberinterface',_0xef73('0x4d'),_0xef73('0x26'),_0xef73('0x4e'),_0xef73('0x4f')];if(!_[_0xef73('0x50')](_0x172253)&&!_['includes'](_0x4bf571,_0x172253)){if(_[_0xef73('0x41')](this[_0xef73('0xb')][_0x45a455])){this[_0xef73('0xb')][_0x45a455]={};}this[_0xef73('0xb')][_0x45a455][_0x172253]=_0x47d3dc;}};VoiceDialReport[_0xef73('0x17')][_0xef73('0x16')]=function(_0x2f2eca){try{if(this[_0xef73('0x19')](_0x2f2eca)){logger[_0xef73('0x1a')](_0xef73('0x51'),_0x2f2eca['uniqueid'],util[_0xef73('0x1d')](_0x2f2eca,{'showHidden':![],'depth':null}));if(this[_0xef73('0x8')][_0x2f2eca[_0xef73('0x1c')]]){logger[_0xef73('0x24')]('[%s][voiceDialReport][hangup]\x20reason:%s\x20lasteevent:complete',_0x2f2eca[_0xef73('0x1c')],_0x2f2eca[_0xef73('0x52')]);this[_0xef73('0x8')][_0x2f2eca[_0xef73('0x1c')]][_0xef73('0x53')]=moment()['format'](_0xef73('0x33'));this[_0xef73('0x8')][_0x2f2eca[_0xef73('0x1c')]]['duration']=moment(this['channels'][_0x2f2eca[_0xef73('0x1c')]][_0xef73('0x53')])[_0xef73('0x54')](this[_0xef73('0x8')][_0x2f2eca[_0xef73('0x1c')]][_0xef73('0x55')],'seconds');this[_0xef73('0x8')][_0x2f2eca[_0xef73('0x1c')]][_0xef73('0x34')]=_0xef73('0x56');this[_0xef73('0x57')][_0xef73('0x58')]+=0x1;if(this[_0xef73('0x8')][_0x2f2eca[_0xef73('0x1c')]][_0xef73('0x59')]){this['outbound'][_0xef73('0x5a')]+=0x1;this[_0xef73('0x8')][_0x2f2eca['uniqueid']]['holdtime']=moment(this[_0xef73('0x8')][_0x2f2eca[_0xef73('0x1c')]][_0xef73('0x59')])[_0xef73('0x54')](this['channels'][_0x2f2eca['uniqueid']][_0xef73('0x55')],_0xef73('0x5b'));this[_0xef73('0x8')][_0x2f2eca[_0xef73('0x1c')]][_0xef73('0x5c')]=moment(this[_0xef73('0x8')][_0x2f2eca['uniqueid']][_0xef73('0x53')])[_0xef73('0x54')](this[_0xef73('0x8')][_0x2f2eca[_0xef73('0x1c')]][_0xef73('0x59')],_0xef73('0x5b'));this[_0xef73('0x57')][_0xef73('0x5d')]+=this[_0xef73('0x8')][_0x2f2eca['uniqueid']][_0xef73('0x5e')]||0x0;this[_0xef73('0x57')]['sumBillable']+=this[_0xef73('0x8')][_0x2f2eca['uniqueid']][_0xef73('0x5c')];}this[_0xef73('0x57')][_0xef73('0x5f')]+=this[_0xef73('0x8')][_0x2f2eca['uniqueid']][_0xef73('0x60')];logger[_0xef73('0x1a')]('[%s][voiceDialReport][hangup]\x20sending\x20voiceDialReport\x20event:',_0x2f2eca[_0xef73('0x1c')],util['inspect'](this[_0xef73('0x8')][_0x2f2eca[_0xef73('0x1c')]],{'showHidden':![],'depth':null}));ami['emit'](_0xef73('0x61'),this[_0xef73('0x8')][_0x2f2eca['uniqueid']]);logger[_0xef73('0x1a')](_0xef73('0x62'),_0x2f2eca[_0xef73('0x1c')],util[_0xef73('0x1d')](this[_0xef73('0x8')][_0x2f2eca[_0xef73('0x1c')]],{'showHidden':![],'depth':null}));ami['emit']('custom:dialend',this[_0xef73('0x8')][_0x2f2eca[_0xef73('0x1c')]]);logger[_0xef73('0x1a')](_0xef73('0x63'),_0x2f2eca[_0xef73('0x1c')],util[_0xef73('0x1d')](this[_0xef73('0x8')][_0x2f2eca[_0xef73('0x1c')]],{'showHidden':![],'depth':null}));this[_0xef73('0x18')](_0xef73('0x29'),_0xef73('0x64'),this[_0xef73('0x57')]);logger[_0xef73('0x24')](_0xef73('0x65'),JSON[_0xef73('0x66')](this[_0xef73('0x8')][_0x2f2eca[_0xef73('0x1c')]]));logger['debug'](_0xef73('0x67'),_0x2f2eca['uniqueid'],util[_0xef73('0x1d')](this[_0xef73('0x8')][_0x2f2eca['uniqueid']],{'showHidden':![],'depth':null}));this[_0xef73('0x18')](_0xef73('0x29'),_0xef73('0x68'),this[_0xef73('0x8')][_0x2f2eca[_0xef73('0x1c')]]);delete this[_0xef73('0x8')][_0x2f2eca[_0xef73('0x1c')]];}else if(this['channels'][_0x2f2eca[_0xef73('0x69')]]){this[_0xef73('0x8')][_0x2f2eca[_0xef73('0x69')]][_0xef73('0x1c')]=this[_0xef73('0x8')][_0x2f2eca['linkedid']][_0xef73('0x6a')];}if(this[_0xef73('0xb')][_0x2f2eca['uniqueid']]){delete this[_0xef73('0xb')][_0x2f2eca['uniqueid']];}}}catch(_0x2f58c7){logger[_0xef73('0x2d')](_0xef73('0x6b'),_0x2f2eca[_0xef73('0x1c')],util['inspect'](_0x2f58c7,{'showHidden':![],'depth':null}));}};VoiceDialReport[_0xef73('0x17')][_0xef73('0x14')]=function(_0x3eba7e){try{if(this[_0xef73('0x19')](_0x3eba7e)){logger[_0xef73('0x1a')](_0xef73('0x6c'),_0x3eba7e[_0xef73('0x1c')],util[_0xef73('0x1d')](_0x3eba7e,{'showHidden':![],'depth':null}));if(_0x3eba7e[_0xef73('0x6d')][_0xef73('0x6e')]()===_0xef73('0x6f')){_0x3eba7e[_0xef73('0x70')]=(_0x3eba7e[_0xef73('0x71')]||_0x3eba7e['applicationdata'])[_0xef73('0x6e')]();if(_[_0xef73('0x72')](_0x3eba7e[_0xef73('0x70')],'cdr(')){if(_[_0xef73('0x41')](this[_0xef73('0xa')][_0x3eba7e[_0xef73('0x1c')]]))this[_0xef73('0xa')][_0x3eba7e[_0xef73('0x1c')]]={};logger['info'](_0xef73('0x73'),_0x3eba7e['uniqueid'],_0x3eba7e[_0xef73('0x6d')],_0x3eba7e[_0xef73('0x70')]);var _0x1b850e=_0x3eba7e[_0xef73('0x70')]['split']('=');var _0x1cc601=_0x1b850e[0x0][_0xef73('0x74')](/cdr\((.*)\)/);if(_0x1cc601)this[_0xef73('0xa')][_0x3eba7e[_0xef73('0x1c')]][_0x1cc601[0x1]]=_0x1b850e[0x1];}}}}catch(_0x5dbcf7){logger['error'](_0xef73('0x75'),_0x3eba7e[_0xef73('0x1c')],util['inspect'](_0x5dbcf7,{'showHidden':![],'depth':null}));}};module[_0xef73('0x76')]=VoiceDialReport;
\ No newline at end of file
+var _0xff1c=['custom:dialbegin','error','syncDialEnd','[%s][voiceDialReport][dialend]\x20event:','dialstatus','ANSWER','connectedlinenum','connectedlinename','answertime','[%s][voiceDialReport][dialend]\x20agent:%s\x20lastevent:connect','[%s][voiceDialReport][dialend]\x20sending\x20voice_outbound_channel:save\x20event:','voice_outbound_channel:save','[%s][voiceDialReport][varset]\x20event:','keys','variable','outboundrouteid','value','voice','[%s][voiceDialReport][varset]\x20outboundrouteid:%s\x20variable:%s\x20value:%s','[%s][voiceDialReport][varset]\x20sending\x20voice_outbound_channel:save\x20event:','[%s][voiceDialReport][varset]','addVariable','rtpaudioqos','rtpaudioqosbridged','rtpaudioqosjitter','rtpaudioqosjitterbridged','rtpaudioqosloss','rtpaudioqoslossbridged','rtpaudioqosrtt','rtpaudioqosrttbridged','sipcallid','sipuri','bridgepeer','bridgepvtcallid','membercalls','memberdynamic','memberinterface','memberlastcall','memberpenalty','memberrealtime','isNil','[%s][voiceDialReport][hangup]\x20event:','[%s][voiceDialReport][hangup]\x20reason:%s\x20lasteevent:complete','cause-txt','endtime','diff','seconds','lastevent','complete','total','answered','holdtime','starttime','sumHoldTime','sumBillable','billableseconds','duration','[%s][voiceDialReport][hangup]\x20sending\x20voiceDialReport\x20event:','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','[%s][voiceDialReport][hangup]\x20sending\x20voice_outbound_channel:remove\x20event:','voice_outbound_channel:remove','linkedid','destuniqueid','[%s][voiceDialReport][hangup]','[%s][voiceDialReport][newexten]\x20event:','application','set','applicationdata','appdata','startsWith','cdr(','[%s][voiceDialReport][newexten]\x20application:%s\x20appdata:%s','split','match','[%s][voiceDialReport][newexten]','exports','lodash','moment','util','../../../config/environment','../../../config/logger','ami','../ami','redis','defaults','localhost','socket.io-emitter','outbound','variables','dialbegin','bind','dialend','varset','syncVarSet','syncNewExten','hangup','syncHangup','isNotNull','isUndefined','prototype','emit','syncDialBegin','debug','[%s][voiceDialReport][dialbegin]\x20event:','uniqueid','inspect','channels','merge','format','YYYY-MM-DD\x20HH:mm:ss','substring','channel','lastIndexOf','omit','privilege','info','[%s][voiceDialReport][dialbegin]\x20agent:%s\x20interface:%s\x20lastevent:called','membername','interface','applications','voice:outbound','[%s][voiceDialReport][dialbegin]\x20sending\x20dialbegin\x20event:'];(function(_0x32e649,_0x228649){var _0x14d386=function(_0x3fb3ed){while(--_0x3fb3ed){_0x32e649['push'](_0x32e649['shift']());}};_0x14d386(++_0x228649);}(_0xff1c,0xd0));var _0xcff1=function(_0x4c3e46,_0xd0e9f2){_0x4c3e46=_0x4c3e46-0x0;var _0x5b49b2=_0xff1c[_0x4c3e46];return _0x5b49b2;};'use strict';var _=require(_0xcff1('0x0'));var moment=require(_0xcff1('0x1'));var util=require(_0xcff1('0x2'));var Redis=require('ioredis');var config=require(_0xcff1('0x3'));var logger=require(_0xcff1('0x4'))(_0xcff1('0x5'));var ami=require(_0xcff1('0x6'));config[_0xcff1('0x7')]=_[_0xcff1('0x8')](config['redis'],{'host':_0xcff1('0x9'),'port':0x18eb});var io=require(_0xcff1('0xa'))(new Redis(config[_0xcff1('0x7')]));function VoiceDialReport(_0x39f0c7){this['channels']=_0x39f0c7['outboundChannels'];this[_0xcff1('0xb')]=_0x39f0c7[_0xcff1('0xb')];this['applications']={};this[_0xcff1('0xc')]={};ami['on'](_0xcff1('0xd'),this['syncDialBegin'][_0xcff1('0xe')](this));ami['on'](_0xcff1('0xf'),this['syncDialEnd'][_0xcff1('0xe')](this));ami['on'](_0xcff1('0x10'),this[_0xcff1('0x11')]['bind'](this));ami['on']('newexten',this[_0xcff1('0x12')][_0xcff1('0xe')](this));ami['on'](_0xcff1('0x13'),this[_0xcff1('0x14')]['bind'](this));}VoiceDialReport['prototype'][_0xcff1('0x15')]=function(_0x475a6c){return _0x475a6c!==null&&!_[_0xcff1('0x16')](_0x475a6c);};VoiceDialReport[_0xcff1('0x17')][_0xcff1('0x18')]=function(_0x10329f,_0x19192a,_0x488a13){io['to'](_0x10329f)['emit'](_0x19192a,_0x488a13);};VoiceDialReport['prototype'][_0xcff1('0x19')]=function(_0x4ff782){try{if(this[_0xcff1('0x15')](_0x4ff782)){logger[_0xcff1('0x1a')](_0xcff1('0x1b'),_0x4ff782[_0xcff1('0x1c')],util[_0xcff1('0x1d')](_0x4ff782,{'showHidden':![],'depth':null}));if(this[_0xcff1('0x1e')][_0x4ff782[_0xcff1('0x1c')]]){_[_0xcff1('0x1f')](this['channels'][_0x4ff782[_0xcff1('0x1c')]],{'starttime':moment()[_0xcff1('0x20')](_0xcff1('0x21')),'lastevent':'called','interface':_0x4ff782['channel'][_0xcff1('0x22')](0x0,_0x4ff782[_0xcff1('0x23')]['lastIndexOf']('-')),'membername':_0x4ff782[_0xcff1('0x23')][_0xcff1('0x22')](_0x4ff782[_0xcff1('0x23')][_0xcff1('0x24')]('/')+0x1,_0x4ff782['channel'][_0xcff1('0x24')]('-'))},_[_0xcff1('0x25')](_0x4ff782,['event',_0xcff1('0x26')]));logger[_0xcff1('0x27')](_0xcff1('0x28'),_0x4ff782[_0xcff1('0x1c')],this[_0xcff1('0x1e')][_0x4ff782['uniqueid']][_0xcff1('0x29')],this[_0xcff1('0x1e')][_0x4ff782[_0xcff1('0x1c')]][_0xcff1('0x2a')]);logger[_0xcff1('0x1a')]('[%s][voiceDialReport][dialbegin]\x20sending\x20voice_outbound_channel:save\x20event:',_0x4ff782[_0xcff1('0x1c')],util[_0xcff1('0x1d')](this[_0xcff1('0x1e')][_0x4ff782[_0xcff1('0x1c')]],{'showHidden':![],'depth':null}));if(this[_0xcff1('0x2b')][_0x4ff782[_0xcff1('0x1c')]])_[_0xcff1('0x1f')](this['channels'][_0x4ff782[_0xcff1('0x1c')]],this[_0xcff1('0x2b')][_0x4ff782[_0xcff1('0x1c')]]);this[_0xcff1('0x18')](_0xcff1('0x2c'),'voice_outbound_channel:save',this[_0xcff1('0x1e')][_0x4ff782[_0xcff1('0x1c')]]);logger['debug'](_0xcff1('0x2d'),_0x4ff782[_0xcff1('0x1c')],util[_0xcff1('0x1d')](this[_0xcff1('0x1e')][_0x4ff782[_0xcff1('0x1c')]],{'showHidden':![],'depth':null}));ami[_0xcff1('0x18')](_0xcff1('0x2e'),this['channels'][_0x4ff782[_0xcff1('0x1c')]]);}}}catch(_0x5eede1){logger[_0xcff1('0x2f')]('[%s][voiceDialReport][dialbegin]',_0x4ff782['uniqueid'],util[_0xcff1('0x1d')](_0x5eede1,{'showHidden':![],'depth':null}));}};VoiceDialReport[_0xcff1('0x17')][_0xcff1('0x30')]=function(_0x1d9d72){try{if(this[_0xcff1('0x15')](_0x1d9d72)){logger[_0xcff1('0x1a')](_0xcff1('0x31'),_0x1d9d72[_0xcff1('0x1c')],util[_0xcff1('0x1d')](_0x1d9d72,{'showHidden':![],'depth':null}));if(this['channels'][_0x1d9d72['uniqueid']]){this['channels'][_0x1d9d72[_0xcff1('0x1c')]][_0xcff1('0x32')]=_0x1d9d72[_0xcff1('0x32')];if(_0x1d9d72[_0xcff1('0x32')]===_0xcff1('0x33')){this[_0xcff1('0x1e')][_0x1d9d72[_0xcff1('0x1c')]][_0xcff1('0x34')]=_0x1d9d72['connectedlinenum'];this[_0xcff1('0x1e')][_0x1d9d72[_0xcff1('0x1c')]][_0xcff1('0x35')]=_0x1d9d72[_0xcff1('0x35')];this[_0xcff1('0x1e')][_0x1d9d72['uniqueid']][_0xcff1('0x36')]=moment()[_0xcff1('0x20')]('YYYY-MM-DD\x20HH:mm:ss');this[_0xcff1('0x1e')][_0x1d9d72[_0xcff1('0x1c')]]['lastevent']='connect';logger[_0xcff1('0x27')](_0xcff1('0x37'),_0x1d9d72[_0xcff1('0x1c')],_0x1d9d72[_0xcff1('0x23')][_0xcff1('0x22')](_0x1d9d72['channel']['lastIndexOf']('/')+0x1,_0x1d9d72[_0xcff1('0x23')]['lastIndexOf']('-')));logger[_0xcff1('0x1a')]('[%s][voiceDialReport][dialend]\x20sending\x20dialconnect\x20event:',_0x1d9d72[_0xcff1('0x1c')],util[_0xcff1('0x1d')](this['channels'][_0x1d9d72['uniqueid']],{'showHidden':![],'depth':null}));ami[_0xcff1('0x18')]('custom:dialconnect',this[_0xcff1('0x1e')][_0x1d9d72[_0xcff1('0x1c')]]);}logger['debug'](_0xcff1('0x38'),_0x1d9d72[_0xcff1('0x1c')],util[_0xcff1('0x1d')](this[_0xcff1('0x1e')][_0x1d9d72[_0xcff1('0x1c')]],{'showHidden':![],'depth':null}));this[_0xcff1('0x18')](_0xcff1('0x2c'),_0xcff1('0x39'),this['channels'][_0x1d9d72['uniqueid']]);}}}catch(_0x3d85fb){logger[_0xcff1('0x2f')]('[%s][voiceDialReport][dialend]',_0x1d9d72[_0xcff1('0x1c')],util[_0xcff1('0x1d')](_0x3d85fb,{'showHidden':![],'depth':null}));}};VoiceDialReport[_0xcff1('0x17')][_0xcff1('0x11')]=function(_0x5195a7){try{if(this[_0xcff1('0x15')](_0x5195a7)){logger[_0xcff1('0x1a')](_0xcff1('0x3a'),_0x5195a7[_0xcff1('0x1c')],util['inspect'](_0x5195a7,{'showHidden':![],'depth':null}));this['addVariable'](_0x5195a7[_0xcff1('0x1c')],_[_0xcff1('0x3b')](_0x5195a7['variable'])[0x0],_0x5195a7['value']);if(this[_0xcff1('0x15')](_0x5195a7[_0xcff1('0x3c')])&&this[_0xcff1('0x15')](_0x5195a7['variable'][_0xcff1('0x3d')])){if(_[_0xcff1('0x16')](this[_0xcff1('0x1e')][_0x5195a7[_0xcff1('0x1c')]])){this['channels'][_0x5195a7[_0xcff1('0x1c')]]={'routeId':_0x5195a7[_0xcff1('0x3e')],'variables':this['variables'][_0x5195a7[_0xcff1('0x1c')]],'motionChannel':_0xcff1('0x3f')};logger[_0xcff1('0x27')](_0xcff1('0x40'),_0x5195a7[_0xcff1('0x1c')],_0x5195a7[_0xcff1('0x3c')][_0xcff1('0x3d')],_['keys'](_0x5195a7[_0xcff1('0x3c')])[0x0],_0x5195a7[_0xcff1('0x3e')]);logger[_0xcff1('0x1a')](_0xcff1('0x41'),_0x5195a7[_0xcff1('0x1c')],util[_0xcff1('0x1d')](this[_0xcff1('0x1e')][_0x5195a7[_0xcff1('0x1c')]],{'showHidden':![],'depth':null}));this[_0xcff1('0x18')](_0xcff1('0x2c'),_0xcff1('0x39'),this[_0xcff1('0x1e')][_0x5195a7[_0xcff1('0x1c')]]);}}}}catch(_0x159145){logger[_0xcff1('0x2f')](_0xcff1('0x42'),_0x5195a7[_0xcff1('0x1c')],util[_0xcff1('0x1d')](_0x159145,{'showHidden':![],'depth':null}));}};VoiceDialReport[_0xcff1('0x17')][_0xcff1('0x43')]=function(_0x201fef,_0x23f3b3,_0x206af5){var _0x1e0996=[_0xcff1('0x44'),_0xcff1('0x45'),_0xcff1('0x46'),_0xcff1('0x47'),_0xcff1('0x48'),_0xcff1('0x49'),_0xcff1('0x4a'),_0xcff1('0x4b'),_0xcff1('0x4c'),_0xcff1('0x4d'),_0xcff1('0x4e'),_0xcff1('0x4f'),_0xcff1('0x50'),_0xcff1('0x51'),_0xcff1('0x52'),_0xcff1('0x53'),_0xcff1('0x29'),_0xcff1('0x54'),_0xcff1('0x55')];if(!_[_0xcff1('0x56')](_0x23f3b3)&&!_['includes'](_0x1e0996,_0x23f3b3)){if(_[_0xcff1('0x16')](this[_0xcff1('0xc')][_0x201fef])){this['variables'][_0x201fef]={};}this[_0xcff1('0xc')][_0x201fef][_0x23f3b3]=_0x206af5;}};VoiceDialReport[_0xcff1('0x17')][_0xcff1('0x14')]=function(_0x5d2311){try{if(this['isNotNull'](_0x5d2311)){logger[_0xcff1('0x1a')](_0xcff1('0x57'),_0x5d2311[_0xcff1('0x1c')],util[_0xcff1('0x1d')](_0x5d2311,{'showHidden':![],'depth':null}));if(this[_0xcff1('0x1e')][_0x5d2311[_0xcff1('0x1c')]]){logger['info'](_0xcff1('0x58'),_0x5d2311['uniqueid'],_0x5d2311[_0xcff1('0x59')]);this[_0xcff1('0x1e')][_0x5d2311[_0xcff1('0x1c')]][_0xcff1('0x5a')]=moment()[_0xcff1('0x20')](_0xcff1('0x21'));this[_0xcff1('0x1e')][_0x5d2311['uniqueid']]['duration']=moment(this[_0xcff1('0x1e')][_0x5d2311[_0xcff1('0x1c')]][_0xcff1('0x5a')])[_0xcff1('0x5b')](this[_0xcff1('0x1e')][_0x5d2311[_0xcff1('0x1c')]]['starttime'],_0xcff1('0x5c'));this[_0xcff1('0x1e')][_0x5d2311[_0xcff1('0x1c')]][_0xcff1('0x5d')]=_0xcff1('0x5e');this[_0xcff1('0xb')][_0xcff1('0x5f')]+=0x1;if(this['channels'][_0x5d2311['uniqueid']][_0xcff1('0x36')]){this['outbound'][_0xcff1('0x60')]+=0x1;this[_0xcff1('0x1e')][_0x5d2311[_0xcff1('0x1c')]][_0xcff1('0x61')]=moment(this[_0xcff1('0x1e')][_0x5d2311[_0xcff1('0x1c')]]['answertime'])[_0xcff1('0x5b')](this[_0xcff1('0x1e')][_0x5d2311[_0xcff1('0x1c')]][_0xcff1('0x62')],'seconds');this[_0xcff1('0x1e')][_0x5d2311[_0xcff1('0x1c')]]['billableseconds']=moment(this[_0xcff1('0x1e')][_0x5d2311['uniqueid']]['endtime'])['diff'](this['channels'][_0x5d2311['uniqueid']][_0xcff1('0x36')],_0xcff1('0x5c'));this['outbound'][_0xcff1('0x63')]+=this[_0xcff1('0x1e')][_0x5d2311[_0xcff1('0x1c')]][_0xcff1('0x61')]||0x0;this['outbound'][_0xcff1('0x64')]+=this[_0xcff1('0x1e')][_0x5d2311[_0xcff1('0x1c')]][_0xcff1('0x65')];}this[_0xcff1('0xb')]['sumDuration']+=this[_0xcff1('0x1e')][_0x5d2311['uniqueid']][_0xcff1('0x66')];logger[_0xcff1('0x1a')](_0xcff1('0x67'),_0x5d2311['uniqueid'],util[_0xcff1('0x1d')](this[_0xcff1('0x1e')][_0x5d2311[_0xcff1('0x1c')]],{'showHidden':![],'depth':null}));ami[_0xcff1('0x18')](_0xcff1('0x68'),this[_0xcff1('0x1e')][_0x5d2311[_0xcff1('0x1c')]]);logger[_0xcff1('0x1a')](_0xcff1('0x69'),_0x5d2311[_0xcff1('0x1c')],util[_0xcff1('0x1d')](this['channels'][_0x5d2311[_0xcff1('0x1c')]],{'showHidden':![],'depth':null}));ami[_0xcff1('0x18')](_0xcff1('0x6a'),this['channels'][_0x5d2311['uniqueid']]);logger[_0xcff1('0x1a')](_0xcff1('0x6b'),_0x5d2311[_0xcff1('0x1c')],util[_0xcff1('0x1d')](this[_0xcff1('0x1e')][_0x5d2311[_0xcff1('0x1c')]],{'showHidden':![],'depth':null}));this[_0xcff1('0x18')](_0xcff1('0x2c'),_0xcff1('0x6c'),this['outbound']);logger[_0xcff1('0x27')](_0xcff1('0x6d'),JSON['stringify'](this[_0xcff1('0x1e')][_0x5d2311[_0xcff1('0x1c')]]));logger[_0xcff1('0x1a')](_0xcff1('0x6e'),_0x5d2311[_0xcff1('0x1c')],util[_0xcff1('0x1d')](this[_0xcff1('0x1e')][_0x5d2311[_0xcff1('0x1c')]],{'showHidden':![],'depth':null}));this['emit'](_0xcff1('0x2c'),_0xcff1('0x6f'),this[_0xcff1('0x1e')][_0x5d2311[_0xcff1('0x1c')]]);delete this[_0xcff1('0x1e')][_0x5d2311[_0xcff1('0x1c')]];}else if(this['channels'][_0x5d2311[_0xcff1('0x70')]]){this[_0xcff1('0x1e')][_0x5d2311[_0xcff1('0x70')]][_0xcff1('0x1c')]=this['channels'][_0x5d2311[_0xcff1('0x70')]][_0xcff1('0x71')];}if(this[_0xcff1('0xc')][_0x5d2311[_0xcff1('0x1c')]]){delete this[_0xcff1('0xc')][_0x5d2311['uniqueid']];}}}catch(_0x5819b4){logger[_0xcff1('0x2f')](_0xcff1('0x72'),_0x5d2311[_0xcff1('0x1c')],util[_0xcff1('0x1d')](_0x5819b4,{'showHidden':![],'depth':null}));}};VoiceDialReport[_0xcff1('0x17')]['syncNewExten']=function(_0x2d422a){try{if(this['isNotNull'](_0x2d422a)){logger[_0xcff1('0x1a')](_0xcff1('0x73'),_0x2d422a[_0xcff1('0x1c')],util[_0xcff1('0x1d')](_0x2d422a,{'showHidden':![],'depth':null}));if(_0x2d422a[_0xcff1('0x74')]['toLowerCase']()===_0xcff1('0x75')){_0x2d422a[_0xcff1('0x76')]=(_0x2d422a[_0xcff1('0x77')]||_0x2d422a[_0xcff1('0x76')])['toLowerCase']();if(_[_0xcff1('0x78')](_0x2d422a[_0xcff1('0x76')],_0xcff1('0x79'))){if(_['isUndefined'](this['applications'][_0x2d422a[_0xcff1('0x1c')]]))this[_0xcff1('0x2b')][_0x2d422a['uniqueid']]={};logger[_0xcff1('0x27')](_0xcff1('0x7a'),_0x2d422a[_0xcff1('0x1c')],_0x2d422a['application'],_0x2d422a[_0xcff1('0x76')]);var _0x3d7593=_0x2d422a[_0xcff1('0x76')][_0xcff1('0x7b')]('=');var _0x557196=_0x3d7593[0x0][_0xcff1('0x7c')](/cdr\((.*)\)/);if(_0x557196)this[_0xcff1('0x2b')][_0x2d422a['uniqueid']][_0x557196[0x1]]=_0x3d7593[0x1];}}}}catch(_0x41441c){logger[_0xcff1('0x2f')](_0xcff1('0x7d'),_0x2d422a[_0xcff1('0x1c')],util[_0xcff1('0x1d')](_0x41441c,{'showHidden':![],'depth':null}));}};module[_0xcff1('0x7e')]=VoiceDialReport;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3451=['voice:queue:%s','voice_queue_channel:save','voice_queue_presence:save','name','voice_queue_channel:remove','voice_queue_presence:remove','emitVoiceQueueSummary','type','inbound','strategy','answered','available','loggedIn','sumBillable','sumDuration','sumHoldTime','total','unmanaged','abandoned','Trunk','callerid','Interval','[voiceQueueReport][',']\x20sending\x20voice_queue:save\x20event:','voice_queue:save','isUndefined','Action','queues','then','[voiceQueueReport][queuesummary]','isNotNull','queue','[voiceQueueReport][queuesummary]\x20event:','info','[voiceQueueReport][queuesummary]\x20name:%s','countBy','callers','toNumber','loggedin','custom:queuesummary','[voiceQueueReport][queuesummarycomplete]\x20event:','[%s][voiceQueueReport][queuecallerjoin]','queuecallerjoinAt','position','count','routealias','[voiceQueueReport][queuecallerjoin]\x20name:%s\x20type:%s','pick','keys','push','[%s][voiceQueueReport][queuecallerabandon]','last','queuecallercompleteAt','holdtime','originalposition','queuecallerabandonAt','queuecallerexitreason','ABANDONED','[voiceQueueReport][queuecallerabandon]\x20name:%s\x20type:%s','[%s][voiceQueueReport][queuecallerleave]','queuecallerleaveAt','YYYY-MM-DD\x20HH:mm:ss','connectedlinenum','connectedlinename','[voiceQueueReport][queuecallerleave]\x20name:%s\x20type:%s\x20connectedlinenum:%s\x20connectedlinename:%s','COMPLETEDBYAGENT','[voiceQueueReport][agentconnect]\x20name:%s\x20type:%s\x20queuecallerexitreason:COMPLETEDBYAGENT','[%s][voiceQueueReport][agentconnect]','[%s][voiceQueueReport][agentcomplete]','assigned','lastAssignedTo','membername','queuecallercomplete','queuecallerexit','queuecallerexitAt','transfer','reason','COMPLETED','[voiceQueueReport][agentcomplete]\x20name:%s\x20type:%s\x20queuecallerexitreason:COMPLETED','startsWith','toLowerCase','local/','linkedid','add','FORWARDTRANSFER','transfertype','FORWARD','transferexten','destexten','transferuniqueid','[voiceQueueReport][agentcomplete]\x20name:%s\x20type:%s\x20queuecallerexitreason:FORWARDTRANSFER','COMPLETEDBY','toUpperCase','[%s][voiceQueueReport][varset]','addVariable','variable','value','queuestatus','CONTINUE','TIMEOUT','lastevent','timeout','[%s][voiceQueueReport][varset]\x20sending\x20timeout\x20event:','custom:timeout','varset','queueposition','EXITWITHKEY','rtpaudioqos','rtpaudioqosloss','rtpaudioqoslossbridged','rtpaudioqosrtt','rtpaudioqosrttbridged','sipcallid','sipuri','bridgepeer','membercalls','memberdynamic','memberinterface','memberpenalty','memberrealtime','includes','[%s][voiceQueueReport][hangup]','diff','seconds','length','milliseconds','[%s][voiceQueueReport][hangup]\x20sending\x20queuecallerunmanaged\x20event:','custom:queuecallerunmanaged','[%s][voiceQueueReport][hangup]\x20name:%s\x20type:%s\x20reason:%s','cause-txt','[%s][voiceQueueReport][hangup]\x20sending\x20voiceQueueReport\x20event:','transfereeuniqueid','secondtransfererexten','secondtransfereruniqueid','ATTENDEDTRANSFER','ATTENDED','switch','[%s][voiceQueueReport][attendedTransfer]\x20name:%s\x20type:%s\x20transferexten:%s\x20transferuniqueid:%s','transfertargetuniqueid','origtransfererexten','origtransfereruniqueid','[%s][voiceQueueReport][attendedtransfer]','BLINDTRANSFER','BLIND','BlindTransfer','context','[%s][voiceQueueReport][blindtransfer]','[%s][voiceQueueReport][musiconholdstart]','mohstarttime','[%s][voiceQueueReport][musiconholdstart]\x20mohstarttime:%s','[%s][voiceQueueReport][musiconholdstop]','mohtime','[%s][voiceQueueReport][musiconholdstop]\x20mohtime:%s','[%s][voiceQueueReport][newexten]\x20event:','application','set','applicationdata','appdata','CDR(routeAlias)','cdr(','[%s][voiceQueueReport][newexten]\x20application:%s\x20appdata:%s','split','match','[%s][voiceQueueReport][newexten]','exports','lodash','moment','md5','ioredis','../../../config/environment','../../../config/logger','ami','../ami','../model/queueReport','redis','defaults','localhost','socket.io-emitter','prototype','enqueue','tail','finally','sequence','queueReports','channels','voiceQueues','flagQueueSummary','campaigns','variables','queuesummary','syncQueueSummary','bind','syncQueueSummaryComplete','queuecallerjoin','syncQueueCallerJoin','queuecallerabandon','syncQueueCallerAbandon','queuecallerleave','syncQueueCallerLeave','agentconnect','syncAgentConnect','syncVarSet','hangup','syncHangup','fullybooted','syncFullyBooted','newexten','syncNewExten','syncMusicOnHoldStart','musiconholdstop','syncMusicOnHoldStop','attendedtransfer','syncAttendedTransfer','blindtransfer','syncBlindTransfer','loopQueueSummary','loopQueueShow','isEmpty','hasOwnProperty','originated','talking','waiting','unlockRR','isNil','status','channel','catch','message','No\x20such\x20channel','error','[%s][voiceQueueReport][checkChannel]','[%s][voiceQueueReport][checkQueueReport]','inspect','[FullyBooted]\x20clear\x20realtime','clearQueueReport','agents','emitVoiceQueueChannelRemove','clearqueuereport','emit','emitVoiceQueueChannelSave','debug','[%s][voiceQueueReport][',']\x20sending\x20voice_queue_channel:save\x20event:','uniqueid','format'];(function(_0x16d4f5,_0x270497){var _0x11ec5f=function(_0x4af6d0){while(--_0x4af6d0){_0x16d4f5['push'](_0x16d4f5['shift']());}};_0x11ec5f(++_0x270497);}(_0x3451,0x19a));var _0x1345=function(_0x56324f,_0x470354){_0x56324f=_0x56324f-0x0;var _0x1197de=_0x3451[_0x56324f];return _0x1197de;};'use strict';var _=require(_0x1345('0x0'));var moment=require(_0x1345('0x1'));var util=require('util');var md5=require(_0x1345('0x2'));var Redis=require(_0x1345('0x3'));var config=require(_0x1345('0x4'));var logger=require(_0x1345('0x5'))(_0x1345('0x6'));var ami=require(_0x1345('0x7'));var QueueReport=require(_0x1345('0x8'));config[_0x1345('0x9')]=_[_0x1345('0xa')](config[_0x1345('0x9')],{'host':_0x1345('0xb'),'port':0x18eb});var io=require(_0x1345('0xc'))(new Redis(config['redis']));var Sequence=function(){};Sequence[_0x1345('0xd')][_0x1345('0xe')]=function(_0x516d55){this[_0x1345('0xf')]=this['tail']?this['tail'][_0x1345('0x10')](_0x516d55):_0x516d55();};function VoiceQueueReport(_0x4a89d5){this[_0x1345('0x11')]=new Sequence();this[_0x1345('0x12')]={};this['agents']=_0x4a89d5['agents'];this[_0x1345('0x13')]=_0x4a89d5['queueChannels'];this[_0x1345('0x14')]=_0x4a89d5[_0x1345('0x14')];this[_0x1345('0x15')]=!![];this[_0x1345('0x16')]=_0x4a89d5['campaigns'];this[_0x1345('0x17')]={};ami['on'](_0x1345('0x18'),this[_0x1345('0x19')][_0x1345('0x1a')](this));ami['on']('queuesummarycomplete',this[_0x1345('0x1b')][_0x1345('0x1a')](this));ami['on'](_0x1345('0x1c'),this[_0x1345('0x1d')][_0x1345('0x1a')](this));ami['on'](_0x1345('0x1e'),this[_0x1345('0x1f')][_0x1345('0x1a')](this));ami['on'](_0x1345('0x20'),this[_0x1345('0x21')][_0x1345('0x1a')](this));ami['on']('agentcomplete',this['syncAgentComplete'][_0x1345('0x1a')](this));ami['on'](_0x1345('0x22'),this[_0x1345('0x23')][_0x1345('0x1a')](this));ami['on']('varset',this[_0x1345('0x24')][_0x1345('0x1a')](this));ami['on'](_0x1345('0x25'),this[_0x1345('0x26')][_0x1345('0x1a')](this));ami['on'](_0x1345('0x27'),this[_0x1345('0x28')][_0x1345('0x1a')](this));ami['on'](_0x1345('0x29'),this[_0x1345('0x2a')][_0x1345('0x1a')](this));ami['on']('musiconholdstart',this[_0x1345('0x2b')][_0x1345('0x1a')](this));ami['on'](_0x1345('0x2c'),this[_0x1345('0x2d')][_0x1345('0x1a')](this));ami['on'](_0x1345('0x2e'),this[_0x1345('0x2f')][_0x1345('0x1a')](this));ami['on'](_0x1345('0x30'),this[_0x1345('0x31')][_0x1345('0x1a')](this));this[_0x1345('0x32')]();this[_0x1345('0x33')]();}function clearChannels(_0x4a5c44){if(!_[_0x1345('0x34')](_0x4a5c44)){for(var _0x4a390c in _0x4a5c44){if(_0x4a5c44[_0x1345('0x35')](_0x4a390c)){delete _0x4a5c44[_0x4a390c];}}}}function clearCampaigns(_0x1c80ff){if(!_[_0x1345('0x34')](_0x1c80ff)){for(var _0x32f9a3 in _0x1c80ff){if(_0x1c80ff[_0x1345('0x35')](_0x32f9a3)){_0x1c80ff[_0x32f9a3][_0x1345('0x36')]=0x0;}}}}function clearVoiceQueues(_0x3b891c){if(!_[_0x1345('0x34')](_0x3b891c)){for(var _0x3dcf6c in _0x3b891c){if(_0x3b891c[_0x1345('0x35')](_0x3dcf6c)){_0x3b891c[_0x3dcf6c][_0x1345('0x36')]=0x0;_0x3b891c[_0x3dcf6c][_0x1345('0x37')]=0x0;_0x3b891c[_0x3dcf6c]['pTalking']=0x0;_0x3b891c[_0x3dcf6c][_0x1345('0x38')]=0x0;_0x3b891c[_0x3dcf6c]['queueStatusComplete']=!![];}}}}function clearAgentBooked(_0x5ac56d){if(!_[_0x1345('0x34')](_0x5ac56d)){for(var _0x2e2b94 in _0x5ac56d){if(_0x5ac56d[_0x1345('0x35')](_0x2e2b94)){_0x5ac56d[_0x2e2b94][_0x1345('0x39')]=!![];}}}}VoiceQueueReport[_0x1345('0xd')]['clearZombieChannels']=function(){var _0x389e94=this;for(var _0x2b2be4 in this[_0x1345('0x13')]){if(this['channels'][_0x1345('0x35')](_0x2b2be4)&&!this['channels'][_0x2b2be4]['switch']){this[_0x1345('0x11')][_0x1345('0xe')](function(){if(!_[_0x1345('0x3a')](_0x389e94[_0x1345('0x13')][_0x2b2be4])){return ami['Action']({'action':_0x1345('0x3b'),'channel':_0x389e94[_0x1345('0x13')][_0x2b2be4][_0x1345('0x3c')]})[_0x1345('0x3d')](function(_0x147728){if(_0x147728[_0x1345('0x3e')]===_0x1345('0x3f')){setTimeout(function(){if(_0x389e94[_0x1345('0x13')][_0x2b2be4]){delete _0x389e94[_0x1345('0x13')][_0x2b2be4];logger[_0x1345('0x40')](_0x1345('0x41'),_0x2b2be4,util['inspect'](_0x147728,{'showHidden':![],'depth':null}));}if(_0x389e94[_0x1345('0x12')][_0x2b2be4]){delete _0x389e94[_0x1345('0x12')][_0x2b2be4];logger[_0x1345('0x40')](_0x1345('0x42'),_0x2b2be4,util[_0x1345('0x43')](_0x147728,{'showHidden':![],'depth':null}));}if(_0x389e94['variables'][_0x2b2be4]){delete _0x389e94[_0x1345('0x17')][_0x2b2be4];logger['error']('[%s][voiceQueueReport][checkVariables]',_0x2b2be4,util[_0x1345('0x43')](_0x147728,{'showHidden':![],'depth':null}));}},0x1f40);}});}});}}};VoiceQueueReport[_0x1345('0xd')][_0x1345('0x28')]=function(){logger['error'](_0x1345('0x44'));clearChannels(this[_0x1345('0x13')]);this[_0x1345('0x45')](this[_0x1345('0x12')]);clearAgentBooked(this[_0x1345('0x46')]);clearVoiceQueues(this[_0x1345('0x14')]);clearCampaigns(this[_0x1345('0x16')]);};VoiceQueueReport['prototype']['clearQueueReport']=function(_0x546805){var _0x4e235b=this;if(!_['isEmpty'](_0x546805)){for(var _0x30baac in _0x546805){if(_0x546805[_0x1345('0x35')](_0x30baac)){_0x4e235b[_0x1345('0x47')](_0x546805[_0x30baac],_0x1345('0x48'));delete _0x546805[_0x30baac];}}}};VoiceQueueReport[_0x1345('0xd')]['emit']=function(_0x58a2d5,_0x1e69a1,_0x1ea288){io['to'](_0x58a2d5)[_0x1345('0x49')](_0x1e69a1,_0x1ea288);};VoiceQueueReport[_0x1345('0xd')][_0x1345('0x4a')]=function(_0x1eae93,_0x5be21b){logger[_0x1345('0x4b')](_0x1345('0x4c')+_0x5be21b+_0x1345('0x4d'),_0x1eae93[_0x1345('0x4e')],util['inspect'](_0x1eae93,{'showHidden':![],'depth':null}));this[_0x1345('0x49')](util[_0x1345('0x4f')](_0x1345('0x50'),_0x1eae93['name']),_0x1345('0x51'),_0x1eae93);io[_0x1345('0x49')](_0x1345('0x52'),_0x1eae93);};VoiceQueueReport['prototype'][_0x1345('0x47')]=function(_0x35791c,_0x2a798a){logger[_0x1345('0x4b')](_0x1345('0x4c')+_0x2a798a+']\x20sending\x20voice_queue_channel:remove\x20event:',_0x35791c[_0x1345('0x4e')],util[_0x1345('0x43')](_0x35791c,{'showHidden':![],'depth':null}));this[_0x1345('0x49')](util[_0x1345('0x4f')]('voice:queue:%s',_0x35791c[_0x1345('0x53')]),_0x1345('0x54'),_0x35791c);io[_0x1345('0x49')](_0x1345('0x55'),_0x35791c);};VoiceQueueReport[_0x1345('0xd')][_0x1345('0x56')]=function(_0x1f3678,_0x195c73){if(_0x1f3678[_0x1345('0x57')]===_0x1345('0x58')){var _0x34db53={'id':_0x1f3678['id'],'name':_0x1f3678[_0x1345('0x53')],'strategy':_0x1f3678[_0x1345('0x59')],'answered':_0x1f3678[_0x1345('0x5a')],'available':_0x1f3678[_0x1345('0x5b')],'loggedIn':_0x1f3678[_0x1345('0x5c')],'pTalking':_0x1f3678['pTalking'],'sumBillable':_0x1f3678[_0x1345('0x5d')],'sumDuration':_0x1f3678[_0x1345('0x5e')],'sumHoldTime':_0x1f3678[_0x1345('0x5f')]||0x0,'talking':_0x1f3678[_0x1345('0x37')],'total':_0x1f3678[_0x1345('0x60')],'type':_0x1f3678[_0x1345('0x57')],'unmanaged':_0x1f3678[_0x1345('0x61')],'abandoned':_0x1f3678[_0x1345('0x62')],'waiting':_0x1f3678[_0x1345('0x38')]};if(_0x1f3678[_0x1345('0x63')]){_0x34db53[_0x1345('0x63')]={'id':_0x1f3678[_0x1345('0x63')]['id'],'name':_0x1f3678[_0x1345('0x63')]['name'],'active':_0x1f3678[_0x1345('0x63')]['active'],'callerid':_0x1f3678[_0x1345('0x63')][_0x1345('0x64')]};}if(_0x1f3678['Interval']){_0x34db53[_0x1345('0x65')]={'id':_0x1f3678[_0x1345('0x65')]['id'],'name':_0x1f3678[_0x1345('0x65')]['name']};}var _0x587199=md5(JSON['stringify'](_0x34db53));if(_0x1f3678[_0x1345('0x2')]!==_0x587199){_0x1f3678[_0x1345('0x2')]=_0x587199;logger['debug'](_0x1345('0x66')+_0x195c73+_0x1345('0x67'),util['inspect'](_0x34db53,{'showHidden':![],'depth':null}));this[_0x1345('0x49')](util['format'](_0x1345('0x50'),_0x34db53['name']),_0x1345('0x68'),_0x34db53);}}};VoiceQueueReport[_0x1345('0xd')]['isNotNull']=function(_0x15ee34){return _0x15ee34!==null&&!_[_0x1345('0x69')](_0x15ee34);};VoiceQueueReport['prototype']['loopQueueShow']=function(){var _0x30428e=this;setInterval(function(){_0x30428e['clearZombieChannels']();ami[_0x1345('0x6a')]({'action':_0x1345('0x6b')})[_0x1345('0x3d')](function(_0x53aa7f){logger['error']('[voiceQueueReport][queues]',util[_0x1345('0x43')](_0x53aa7f,{'showHidden':![],'depth':null}));});},0x2710);};VoiceQueueReport[_0x1345('0xd')][_0x1345('0x32')]=function(){var _0x2037a2=this;setInterval(function(){if(_0x2037a2['flagQueueSummary']){return ami[_0x1345('0x6a')]({'action':'queuesummary'})[_0x1345('0x6c')](function(_0x1450ba){_0x2037a2[_0x1345('0x15')]=![];})[_0x1345('0x3d')](function(_0xde37a5){logger[_0x1345('0x40')](_0x1345('0x6d'),util[_0x1345('0x43')](_0xde37a5,{'showHidden':![],'depth':null}));});}},0x3e8);};VoiceQueueReport[_0x1345('0xd')][_0x1345('0x19')]=function(_0x5e7b35){try{if(this[_0x1345('0x6e')](_0x5e7b35)&&this[_0x1345('0x6e')](_0x5e7b35[_0x1345('0x6f')])){logger[_0x1345('0x4b')](_0x1345('0x70'),util[_0x1345('0x43')](_0x5e7b35,{'showHidden':![],'depth':null}));if(this[_0x1345('0x14')][_0x5e7b35[_0x1345('0x6f')]]){logger[_0x1345('0x71')](_0x1345('0x72'),_0x5e7b35[_0x1345('0x6f')]);var _0x116ee2=_[_0x1345('0x73')](this[_0x1345('0x13')],_0x1345('0x6f'))[_0x5e7b35[_0x1345('0x6f')]]||0x0;var _0x579d5a=_0x116ee2-_0x5e7b35[_0x1345('0x74')];if(this[_0x1345('0x14')][_0x5e7b35['queue']][_0x1345('0x38')]!==_[_0x1345('0x75')](_0x5e7b35[_0x1345('0x74')])||this['voiceQueues'][_0x5e7b35[_0x1345('0x6f')]][_0x1345('0x5c')]!==_[_0x1345('0x75')](_0x5e7b35[_0x1345('0x76')])||this[_0x1345('0x14')][_0x5e7b35[_0x1345('0x6f')]][_0x1345('0x5b')]!==_[_0x1345('0x75')](_0x5e7b35[_0x1345('0x5b')])||this[_0x1345('0x14')][_0x5e7b35[_0x1345('0x6f')]][_0x1345('0x37')]!==_0x579d5a){this[_0x1345('0x14')][_0x5e7b35[_0x1345('0x6f')]]['waiting']=_['toNumber'](_0x5e7b35['callers']);this[_0x1345('0x14')][_0x5e7b35[_0x1345('0x6f')]][_0x1345('0x5c')]=_[_0x1345('0x75')](_0x5e7b35[_0x1345('0x76')]);this[_0x1345('0x14')][_0x5e7b35[_0x1345('0x6f')]][_0x1345('0x5b')]=_[_0x1345('0x75')](_0x5e7b35[_0x1345('0x5b')]);this[_0x1345('0x14')][_0x5e7b35[_0x1345('0x6f')]][_0x1345('0x37')]=_0x579d5a>0x0?_0x579d5a:0x0;this['voiceQueues'][_0x5e7b35['queue']][_0x1345('0x37')]=this[_0x1345('0x14')][_0x5e7b35['queue']][_0x1345('0x37')]>_[_0x1345('0x75')](_0x5e7b35['loggedin'])?_[_0x1345('0x75')](_0x5e7b35[_0x1345('0x76')]):this[_0x1345('0x14')][_0x5e7b35[_0x1345('0x6f')]]['talking'];this[_0x1345('0x56')](this[_0x1345('0x14')][_0x5e7b35[_0x1345('0x6f')]],_0x1345('0x18'));}logger[_0x1345('0x4b')]('[voiceQueueReport][queuesummary]\x20sending\x20queuesummary\x20event:',util['inspect'](this[_0x1345('0x14')][_0x5e7b35[_0x1345('0x6f')]],{'showHidden':![],'depth':null}));ami[_0x1345('0x49')](_0x1345('0x77'),this['voiceQueues'][_0x5e7b35[_0x1345('0x6f')]]);}}}catch(_0x4b2d09){logger[_0x1345('0x40')]('[voiceQueueReport][queuesummary]',util[_0x1345('0x43')](_0x4b2d09,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x1345('0xd')][_0x1345('0x1b')]=function(_0x550f6f){logger[_0x1345('0x4b')](_0x1345('0x78'),util['inspect'](_0x550f6f,{'showHidden':![],'depth':null}));this[_0x1345('0x15')]=!![];};VoiceQueueReport[_0x1345('0xd')][_0x1345('0x1d')]=function(_0x50fca5){try{if(this['isNotNull'](_0x50fca5)){logger[_0x1345('0x4b')](_0x1345('0x79'),_0x50fca5['uniqueid'],util[_0x1345('0x43')](_0x50fca5,{'showHidden':![],'depth':null}));if(_['isUndefined'](this[_0x1345('0x12')][_0x50fca5[_0x1345('0x4e')]]))this[_0x1345('0x12')][_0x50fca5[_0x1345('0x4e')]]=[];if(_[_0x1345('0x69')](this[_0x1345('0x13')][_0x50fca5[_0x1345('0x4e')]]))this[_0x1345('0x13')][_0x50fca5['uniqueid']]={};var _0x3edc77=new QueueReport();_0x3edc77[_0x1345('0x53')]=_0x50fca5[_0x1345('0x6f')];_0x3edc77[_0x1345('0x57')]=this['voiceQueues'][_0x3edc77[_0x1345('0x53')]]&&this[_0x1345('0x14')][_0x3edc77[_0x1345('0x53')]]['type']?this[_0x1345('0x14')][_0x3edc77[_0x1345('0x53')]][_0x1345('0x57')]||_0x1345('0x58'):_0x1345('0x58');_0x3edc77[_0x1345('0x6f')]=_0x50fca5['queue'];_0x3edc77[_0x1345('0x7a')]=moment()[_0x1345('0x4f')]('YYYY-MM-DD\x20HH:mm:ss');_0x3edc77[_0x1345('0x7b')]=_0x50fca5[_0x1345('0x7b')];_0x3edc77['count']=_0x50fca5[_0x1345('0x7c')];_0x3edc77[_0x1345('0x4e')]=_0x50fca5[_0x1345('0x4e')];_0x3edc77['routealias']=this[_0x1345('0x13')][_0x50fca5[_0x1345('0x4e')]][_0x1345('0x7d')];logger[_0x1345('0x71')](_0x1345('0x7e'),_0x3edc77[_0x1345('0x53')],_0x3edc77[_0x1345('0x57')]);_['merge'](_0x3edc77,_[_0x1345('0x7f')](_0x50fca5,_[_0x1345('0x80')](_0x3edc77)));this[_0x1345('0x12')][_0x50fca5[_0x1345('0x4e')]][_0x1345('0x81')](_0x3edc77);this['channels'][_0x50fca5['uniqueid']]=_0x3edc77;this['emitVoiceQueueChannelSave'](_0x3edc77,_0x1345('0x1c'));}}catch(_0x4a95f9){logger[_0x1345('0x40')](_0x1345('0x79'),_0x50fca5[_0x1345('0x4e')],util[_0x1345('0x43')](_0x4a95f9,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x1345('0xd')][_0x1345('0x1f')]=function(_0x3587e8){try{if(this[_0x1345('0x6e')](_0x3587e8)){logger[_0x1345('0x4b')](_0x1345('0x82'),_0x3587e8[_0x1345('0x4e')],util[_0x1345('0x43')](_0x3587e8,{'showHidden':![],'depth':null}));if(this[_0x1345('0x12')][_0x3587e8[_0x1345('0x4e')]]){var _0x3fde6a=_[_0x1345('0x83')](this[_0x1345('0x12')][_0x3587e8[_0x1345('0x4e')]]);_0x3fde6a['queuecallercomplete']=![];_0x3fde6a[_0x1345('0x84')]=null;_0x3fde6a[_0x1345('0x85')]=_0x3587e8[_0x1345('0x85')];_0x3fde6a[_0x1345('0x86')]=_0x3587e8[_0x1345('0x86')];_0x3fde6a[_0x1345('0x1e')]=!![];_0x3fde6a[_0x1345('0x87')]=moment()[_0x1345('0x4f')]('YYYY-MM-DD\x20HH:mm:ss');_0x3fde6a[_0x1345('0x88')]=_0x1345('0x89');_0x3fde6a['lastAssignedTo']=null;logger[_0x1345('0x71')](_0x1345('0x8a'),_0x3fde6a['name'],_0x3fde6a[_0x1345('0x57')]);this[_0x1345('0x13')][_0x3587e8[_0x1345('0x4e')]]=_0x3fde6a;this['emitVoiceQueueChannelRemove'](_0x3fde6a,'queuecallerabandon');}}}catch(_0x13ac43){logger[_0x1345('0x40')]('[%s][voiceQueueReport][queuecallerabandon]',_0x3587e8[_0x1345('0x4e')],util['inspect'](_0x13ac43,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x1345('0xd')]['syncQueueCallerLeave']=function(_0x2b3c07){try{if(this['isNotNull'](_0x2b3c07)){logger[_0x1345('0x4b')](_0x1345('0x8b'),_0x2b3c07[_0x1345('0x4e')],util[_0x1345('0x43')](_0x2b3c07,{'showHidden':![],'depth':null}));if(this[_0x1345('0x12')][_0x2b3c07[_0x1345('0x4e')]]){var _0x56a890=_[_0x1345('0x83')](this[_0x1345('0x12')][_0x2b3c07[_0x1345('0x4e')]]);_0x56a890[_0x1345('0x8c')]=moment()['format'](_0x1345('0x8d'));_0x56a890[_0x1345('0x8e')]=_0x2b3c07['connectedlinenum'];_0x56a890[_0x1345('0x8f')]=_0x2b3c07[_0x1345('0x8f')];logger['info'](_0x1345('0x90'),_0x56a890['name'],_0x56a890['type'],_0x2b3c07[_0x1345('0x8e')],_0x2b3c07[_0x1345('0x8f')]);this[_0x1345('0x13')][_0x2b3c07[_0x1345('0x4e')]]=_0x56a890;this[_0x1345('0x4a')](_0x56a890,_0x1345('0x20'));}}}catch(_0x4aa90e){logger['error'](_0x1345('0x8b'),_0x2b3c07[_0x1345('0x4e')],util['inspect'](_0x4aa90e,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x1345('0xd')][_0x1345('0x23')]=function(_0x3d3706){try{if(this[_0x1345('0x6e')](_0x3d3706)){logger['debug']('[%s][voiceQueueReport][agentconnect]',_0x3d3706[_0x1345('0x4e')],util['inspect'](_0x3d3706,{'showHidden':![],'depth':null}));if(this[_0x1345('0x12')][_0x3d3706[_0x1345('0x4e')]]){var _0x50a6b9=_['last'](this[_0x1345('0x12')][_0x3d3706[_0x1345('0x4e')]]);_0x50a6b9['queuecallercomplete']=!![];_0x50a6b9['queuecallerexitreason']=_0x1345('0x91');logger[_0x1345('0x71')](_0x1345('0x92'),_0x50a6b9[_0x1345('0x53')],_0x50a6b9[_0x1345('0x57')]);}}}catch(_0x299c8c){logger[_0x1345('0x40')](_0x1345('0x93'),_0x3d3706[_0x1345('0x4e')],util[_0x1345('0x43')](_0x299c8c,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x1345('0xd')]['syncAgentComplete']=function(_0x314e2d){try{if(this[_0x1345('0x6e')](_0x314e2d)){logger[_0x1345('0x4b')](_0x1345('0x94'),_0x314e2d[_0x1345('0x4e')],util['inspect'](_0x314e2d,{'showHidden':![],'depth':null}));if(this[_0x1345('0x12')][_0x314e2d[_0x1345('0x4e')]]){var _0x5de6f0=_[_0x1345('0x83')](this[_0x1345('0x12')][_0x314e2d[_0x1345('0x4e')]]);_0x5de6f0[_0x1345('0x1e')]=![];_0x5de6f0[_0x1345('0x87')]=null;_0x5de6f0[_0x1345('0x95')]=!![];_0x5de6f0[_0x1345('0x96')]=_0x314e2d[_0x1345('0x97')];_0x5de6f0[_0x1345('0x85')]=_0x314e2d[_0x1345('0x85')];_0x5de6f0[_0x1345('0x98')]=!![];_0x5de6f0[_0x1345('0x99')]=![];_0x5de6f0[_0x1345('0x9a')]=null;if(!_0x5de6f0[_0x1345('0x9b')]){if(_0x314e2d[_0x1345('0x9c')]==_0x1345('0x9b')){_0x5de6f0['queuecallerexitreason']=_0x1345('0x9d');logger[_0x1345('0x71')](_0x1345('0x9e'),_0x5de6f0['name'],_0x5de6f0['type']);}else{if(_[_0x1345('0x9f')](_0x314e2d['channel'][_0x1345('0xa0')](),_0x1345('0xa1'))){if(this[_0x1345('0x12')][_0x314e2d[_0x1345('0xa2')]]){var _0x44f452=_[_0x1345('0x83')](this[_0x1345('0x12')][_0x314e2d[_0x1345('0xa2')]]);_0x44f452['queuecallercomplete']=![];_0x44f452[_0x1345('0x99')]=!![];_0x44f452[_0x1345('0x9a')]=moment(_0x5de6f0[_0x1345('0x7a')])[_0x1345('0xa3')](_0x314e2d['holdtime'],'seconds')[_0x1345('0x4f')](_0x1345('0x8d'));_0x44f452[_0x1345('0x88')]=_0x1345('0xa4');_0x44f452[_0x1345('0x9b')]=!![];_0x44f452[_0x1345('0xa5')]=_0x1345('0xa6');_0x44f452[_0x1345('0xa7')]=_0x314e2d[_0x1345('0xa8')];_0x44f452[_0x1345('0xa9')]=_0x314e2d['uniqueid'];logger['info'](_0x1345('0xaa'),_0x44f452[_0x1345('0x53')],_0x44f452['type']);var _0x4ef4e1=this[_0x1345('0x12')][_0x314e2d['linkedid']];this[_0x1345('0x12')][_0x314e2d[_0x1345('0xa2')]]=this['queueReports'][_0x314e2d['uniqueid']];this['queueReports'][_0x314e2d[_0x1345('0x4e')]]=_0x4ef4e1;}}else{_0x5de6f0['queuecallerexitreason']=_0x1345('0xab')+_0x314e2d[_0x1345('0x9c')][_0x1345('0xac')]();logger[_0x1345('0x71')]('[voiceQueueReport][agentcomplete]\x20name:%s\x20type:%s\x20queuecallerexitreason:%s',_0x5de6f0['name'],_0x5de6f0[_0x1345('0x57')],_0x5de6f0[_0x1345('0x88')]);}}}this[_0x1345('0x13')][_0x314e2d[_0x1345('0x4e')]]=_0x5de6f0;this[_0x1345('0x47')](_0x5de6f0,'agentcomplete');}}}catch(_0x3f4382){logger[_0x1345('0x40')](_0x1345('0x94'),_0x314e2d[_0x1345('0x4e')],util[_0x1345('0x43')](_0x3f4382,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x1345('0xd')][_0x1345('0x24')]=function(_0x25ca58){try{if(this[_0x1345('0x6e')](_0x25ca58)){logger[_0x1345('0x4b')](_0x1345('0xad'),_0x25ca58[_0x1345('0x4e')],util[_0x1345('0x43')](_0x25ca58,{'showHidden':![],'depth':null}));this[_0x1345('0xae')](_0x25ca58['uniqueid'],_[_0x1345('0x80')](_0x25ca58[_0x1345('0xaf')])[0x0],_0x25ca58[_0x1345('0xb0')]);if(this[_0x1345('0x12')][_0x25ca58[_0x1345('0x4e')]]){var _0x215fb0=_['last'](this[_0x1345('0x12')][_0x25ca58[_0x1345('0x4e')]]);if(_0x215fb0){if(this[_0x1345('0x6e')](_0x25ca58[_0x1345('0xaf')])&&this[_0x1345('0x6e')](_0x25ca58['variable'][_0x1345('0xb1')])){switch(_0x25ca58['value']){case _0x1345('0xb2'):_0x215fb0['queuecallerexit']=![];_0x215fb0[_0x1345('0x9a')]=null;break;case _0x1345('0xb3'):_0x215fb0[_0x1345('0xb4')]=_0x1345('0xb5');_0x215fb0[_0x1345('0x99')]=!![];_0x215fb0[_0x1345('0x9a')]=moment()[_0x1345('0x4f')](_0x1345('0x8d'));_0x215fb0[_0x1345('0x8c')]=moment()[_0x1345('0x4f')](_0x1345('0x8d'));logger[_0x1345('0x4b')](_0x1345('0xb6'),_0x25ca58[_0x1345('0x4e')],util[_0x1345('0x43')](_0x215fb0,{'showHidden':![],'depth':null}));ami[_0x1345('0x49')](_0x1345('0xb7'),_0x215fb0);break;default:_0x215fb0[_0x1345('0x99')]=!![];_0x215fb0[_0x1345('0x9a')]=moment()[_0x1345('0x4f')](_0x1345('0x8d'));_0x215fb0['queuecallerleaveAt']=moment()[_0x1345('0x4f')](_0x1345('0x8d'));}_0x215fb0[_0x1345('0x1e')]=![];_0x215fb0[_0x1345('0x87')]=null;_0x215fb0[_0x1345('0x88')]=_0x25ca58[_0x1345('0xb0')];this['channels'][_0x25ca58[_0x1345('0x4e')]]=_0x215fb0;this[_0x1345('0x47')](_0x215fb0,_0x1345('0xb8'));}else if(this[_0x1345('0x6e')](_0x25ca58[_0x1345('0xaf')])&&this[_0x1345('0x6e')](_0x25ca58[_0x1345('0xaf')][_0x1345('0xb9')])){if(!_0x215fb0['queuecallerabandon']){_0x215fb0[_0x1345('0x99')]=!![];_0x215fb0[_0x1345('0x9a')]=moment()[_0x1345('0x4f')](_0x1345('0x8d'));_0x215fb0[_0x1345('0x88')]=_0x1345('0xba');_0x215fb0[_0x1345('0x8c')]=moment()[_0x1345('0x4f')](_0x1345('0x8d'));this['channels'][_0x25ca58[_0x1345('0x4e')]]=_0x215fb0;}}logger[_0x1345('0x71')]('[%s][voiceQueueReport][varset]\x20name:%s\x20type:%s\x20variable:%s\x20value:%s',_0x25ca58['uniqueid'],_0x215fb0[_0x1345('0x53')],_0x215fb0['type'],_[_0x1345('0x80')](_0x25ca58['variable'])[0x0],_0x25ca58['value']);_0x215fb0[_0x1345('0x17')]=this[_0x1345('0x17')][_0x25ca58[_0x1345('0x4e')]];}}}}catch(_0x25d3b0){logger[_0x1345('0x40')](_0x1345('0xad'),_0x25ca58[_0x1345('0x4e')],util[_0x1345('0x43')](_0x25d3b0,{'showHidden':![],'depth':null}));}};VoiceQueueReport['prototype']['addVariable']=function(_0x5259b1,_0x17f030,_0x153a9e){var _0x51b05d=[_0x1345('0xbb'),'rtpaudioqosbridged','rtpaudioqosjitter','rtpaudioqosjitterbridged',_0x1345('0xbc'),_0x1345('0xbd'),_0x1345('0xbe'),_0x1345('0xbf'),_0x1345('0xc0'),_0x1345('0xc1'),_0x1345('0xc2'),'bridgepvtcallid',_0x1345('0xc3'),_0x1345('0xc4'),_0x1345('0xc5'),'memberlastcall',_0x1345('0x97'),_0x1345('0xc6'),_0x1345('0xc7')];if(!_[_0x1345('0x3a')](_0x17f030)&&!_[_0x1345('0xc8')](_0x51b05d,_0x17f030)){if(_[_0x1345('0x69')](this[_0x1345('0x17')][_0x5259b1])){this['variables'][_0x5259b1]={};}this[_0x1345('0x17')][_0x5259b1][_0x17f030]=_0x153a9e;}};VoiceQueueReport[_0x1345('0xd')]['syncHangup']=function(_0x5abbb4){try{if(this['isNotNull'](_0x5abbb4)){logger[_0x1345('0x4b')](_0x1345('0xc9'),_0x5abbb4[_0x1345('0x4e')],util[_0x1345('0x43')](_0x5abbb4,{'showHidden':![],'depth':null}));if(this[_0x1345('0x12')][_0x5abbb4[_0x1345('0x4e')]]){for(var _0x3647c2=0x0,_0x22303c={};_0x3647c2<this['queueReports'][_0x5abbb4[_0x1345('0x4e')]]['length'];_0x3647c2+=0x1){_0x22303c=this[_0x1345('0x12')][_0x5abbb4[_0x1345('0x4e')]][_0x3647c2];if(this['voiceQueues'][_0x22303c[_0x1345('0x6f')]]){if(_0x22303c[_0x1345('0x99')]&&_0x22303c[_0x1345('0x9b')]!=!![]){this[_0x1345('0x14')][_0x22303c[_0x1345('0x6f')]][_0x1345('0x61')]+=0x1;}if(_0x22303c[_0x1345('0x1e')]){this[_0x1345('0x14')][_0x22303c[_0x1345('0x6f')]][_0x1345('0x62')]+=0x1;}this[_0x1345('0x14')][_0x22303c['queue']][_0x1345('0x5f')]+=moment(_0x22303c[_0x1345('0x8c')])[_0x1345('0xca')](_0x22303c[_0x1345('0x7a')],_0x1345('0xcb'))||0x0;if(_0x3647c2===this[_0x1345('0x12')][_0x5abbb4[_0x1345('0x4e')]][_0x1345('0xcc')]-0x1){this[_0x1345('0x14')][_0x22303c[_0x1345('0x6f')]][_0x1345('0x5e')]+=moment()['milliseconds'](0x0)[_0x1345('0xca')](_0x22303c[_0x1345('0x7a')],'seconds');this[_0x1345('0x14')][_0x22303c['queue']]['total']+=0x1;if(_0x22303c['queuecallercomplete']){this[_0x1345('0x14')][_0x22303c[_0x1345('0x6f')]]['answered']+=0x1;this[_0x1345('0x14')][_0x22303c['queue']][_0x1345('0x5d')]+=moment()[_0x1345('0xcd')](0x0)['diff'](_0x22303c[_0x1345('0x8c')],'seconds');_0x22303c[_0x1345('0x84')]=moment()[_0x1345('0x4f')](_0x1345('0x8d'));_0x22303c[_0x1345('0x99')]=![];_0x22303c[_0x1345('0x9a')]=null;}if(_0x22303c[_0x1345('0x99')]&&_0x22303c['transfer']!=!![]){_0x22303c[_0x1345('0xb4')]=_0x1345('0x61');logger[_0x1345('0x4b')](_0x1345('0xce'),_0x5abbb4[_0x1345('0x4e')],util[_0x1345('0x43')](_0x22303c,{'showHidden':![],'depth':null}));ami[_0x1345('0x49')](_0x1345('0xcf'),_0x22303c);}if(_0x22303c[_0x1345('0x1e')]){_0x22303c['lastevent']=_0x1345('0x62');logger[_0x1345('0x4b')]('[%s][voiceQueueReport][hangup]\x20sending\x20queuecallerabandon\x20event:',_0x5abbb4[_0x1345('0x4e')],util['inspect'](_0x22303c,{'showHidden':![],'depth':null}));ami['emit']('custom:queuecallerabandon',_0x22303c);}}else{this[_0x1345('0x14')][_0x22303c['queue']]['sumDuration']+=this[_0x1345('0x14')][_0x22303c['queue']][_0x1345('0x5f')];}logger[_0x1345('0x71')](_0x1345('0xd0'),_0x5abbb4[_0x1345('0x4e')],_0x22303c[_0x1345('0x53')],_0x22303c[_0x1345('0x57')],_0x5abbb4[_0x1345('0xd1')]);this[_0x1345('0x13')][_0x5abbb4['uniqueid']]=_0x22303c;this[_0x1345('0x47')](_0x22303c,'hangup');this[_0x1345('0x56')](this['voiceQueues'][_0x22303c['queue']],_0x1345('0x25'));}}logger[_0x1345('0x4b')](_0x1345('0xd2'),_0x5abbb4[_0x1345('0x4e')],util[_0x1345('0x43')](this[_0x1345('0x12')][_0x5abbb4[_0x1345('0x4e')]],{'showHidden':![],'depth':null}));ami[_0x1345('0x49')]('custom:voiceQueueReport',this['queueReports'][_0x5abbb4[_0x1345('0x4e')]]);delete this[_0x1345('0x12')][_0x5abbb4[_0x1345('0x4e')]];delete this[_0x1345('0x13')][_0x5abbb4[_0x1345('0x4e')]];}if(this[_0x1345('0x17')][_0x5abbb4[_0x1345('0x4e')]]){delete this[_0x1345('0x17')][_0x5abbb4[_0x1345('0x4e')]];}}}catch(_0x40a526){logger['error'](_0x1345('0xc9'),_0x5abbb4[_0x1345('0x4e')],util[_0x1345('0x43')](_0x40a526,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x1345('0xd')]['syncAttendedTransfer']=function(_0x5ab288){try{if(this['isNotNull'](_0x5ab288)){logger['debug']('[%s][voiceQueueReport][attendedtransfer]',_0x5ab288[_0x1345('0x4e')],util[_0x1345('0x43')](_0x5ab288,{'showHidden':![],'depth':null}));var _0x14c48e;if(this[_0x1345('0x12')][_0x5ab288[_0x1345('0xd3')]]){_0x14c48e=_['last'](this['queueReports'][_0x5ab288[_0x1345('0xd3')]]);_0x14c48e['transferexten']=_0x5ab288[_0x1345('0xd4')];_0x14c48e[_0x1345('0xa9')]=_0x5ab288[_0x1345('0xd5')];_0x14c48e[_0x1345('0x88')]=_0x1345('0xd6');_0x14c48e[_0x1345('0x9b')]=!![];_0x14c48e[_0x1345('0xa5')]=_0x1345('0xd7');if(this[_0x1345('0x12')][_0x5ab288[_0x1345('0xd5')]]){var _0xac34fa=this[_0x1345('0x12')][_0x5ab288[_0x1345('0xd5')]];this[_0x1345('0x12')][_0x5ab288['secondtransfereruniqueid']]=this[_0x1345('0x12')][_0x5ab288[_0x1345('0xd3')]];this[_0x1345('0x12')][_0x5ab288[_0x1345('0xd3')]]=_0xac34fa;var _0x36d634=_['last'](this[_0x1345('0x12')][_0x5ab288[_0x1345('0xd3')]]);_0x36d634[_0x1345('0xd8')]=!![];}logger[_0x1345('0x71')](_0x1345('0xd9'),_0x5ab288[_0x1345('0x4e')],_0x14c48e[_0x1345('0x53')],_0x14c48e['type'],_0x14c48e['transferexten'],_0x14c48e[_0x1345('0xa9')]);}else if(this[_0x1345('0x12')][_0x5ab288[_0x1345('0xda')]]){_0x14c48e=_[_0x1345('0x83')](this['queueReports'][_0x5ab288[_0x1345('0xda')]]);_0x14c48e[_0x1345('0xa7')]=_0x5ab288[_0x1345('0xdb')];_0x14c48e[_0x1345('0xa9')]=_0x5ab288[_0x1345('0xdc')];_0x14c48e[_0x1345('0x88')]=_0x1345('0xd6');_0x14c48e[_0x1345('0x9b')]=!![];_0x14c48e['transfertype']=_0x1345('0xd7');if(this['queueReports'][_0x5ab288[_0x1345('0xdc')]]){var _0xac34fa=this[_0x1345('0x12')][_0x5ab288['origtransfereruniqueid']];this['queueReports'][_0x5ab288[_0x1345('0xdc')]]=this[_0x1345('0x12')][_0x5ab288[_0x1345('0xda')]];this[_0x1345('0x12')][_0x5ab288['transfertargetuniqueid']]=_0xac34fa;var _0x36d634=_[_0x1345('0x83')](this[_0x1345('0x12')][_0x5ab288['transfertargetuniqueid']]);_0x36d634[_0x1345('0xd8')]=!![];}logger[_0x1345('0x71')](_0x1345('0xd9'),_0x5ab288[_0x1345('0x4e')],_0x14c48e[_0x1345('0x53')],_0x14c48e[_0x1345('0x57')],_0x14c48e[_0x1345('0xa7')],_0x14c48e[_0x1345('0xa9')]);}}}catch(_0x5eb60a){logger[_0x1345('0x40')](_0x1345('0xdd'),_0x5ab288[_0x1345('0x4e')],util['inspect'](_0x5eb60a,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x1345('0xd')]['syncBlindTransfer']=function(_0x5c0703){try{if(this[_0x1345('0x6e')](_0x5c0703)){logger['debug']('[%s][voiceQueueReport][blindtransfer]',_0x5c0703[_0x1345('0x4e')],util['inspect'](_0x5c0703,{'showHidden':![],'depth':null}));if(this[_0x1345('0x12')][_0x5c0703['transfereeuniqueid']]){var _0x622dfe=_['last'](this[_0x1345('0x12')][_0x5c0703['transfereeuniqueid']]);_0x622dfe[_0x1345('0x88')]=_0x1345('0xde');_0x622dfe[_0x1345('0x9b')]=!![];_0x622dfe[_0x1345('0xa5')]=_0x1345('0xdf');_0x622dfe[_0x1345('0xa7')]=_0x5c0703['extension'];_0x622dfe[_0x1345('0xa9')]=_0x5c0703[_0x1345('0xd3')];logger[_0x1345('0x71')]('[%s][voiceQueueReport][blindTransfer]\x20name:%s\x20type:%s\x20transferexten:%s\x20transferuniqueid:%s',_0x5c0703[_0x1345('0x4e')],_0x622dfe[_0x1345('0x53')],_0x622dfe['type'],_0x622dfe[_0x1345('0xa7')],_0x622dfe[_0x1345('0xa9')]);this['syncHangup']({'event':_0x1345('0xe0'),'uniqueid':_0x5c0703[_0x1345('0xd3')],'context':_0x5c0703[_0x1345('0xe1')],'channel':_0x5c0703['transfererchannel']});}}}catch(_0x2b6b38){logger[_0x1345('0x40')](_0x1345('0xe2'),_0x5c0703[_0x1345('0x4e')],util['inspect'](_0x2b6b38,{'showHidden':![],'depth':null}));}};VoiceQueueReport['prototype'][_0x1345('0x2b')]=function(_0x3a891c){try{if(this[_0x1345('0x6e')](_0x3a891c)){logger[_0x1345('0x4b')](_0x1345('0xe3'),_0x3a891c[_0x1345('0x4e')],util[_0x1345('0x43')](_0x3a891c,{'showHidden':![],'depth':null}));if(this[_0x1345('0x12')][_0x3a891c['uniqueid']]){var _0x436d84=_[_0x1345('0x83')](this[_0x1345('0x12')][_0x3a891c['uniqueid']]);if(!_['isNil'](_0x436d84[_0x1345('0x8c')])){_0x436d84[_0x1345('0xe4')]=moment()[_0x1345('0x4f')]('YYYY-MM-DD\x20HH:mm:ss');logger[_0x1345('0x71')](_0x1345('0xe5'),_0x3a891c[_0x1345('0x4e')],_0x436d84[_0x1345('0xe4')]);}}}}catch(_0x501744){logger[_0x1345('0x40')](_0x1345('0xe3'),_0x3a891c[_0x1345('0x4e')],util[_0x1345('0x43')](_0x501744,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x1345('0xd')][_0x1345('0x2d')]=function(_0x3d5067){try{if(this[_0x1345('0x6e')](_0x3d5067)){logger['debug'](_0x1345('0xe6'),_0x3d5067[_0x1345('0x4e')],util['inspect'](_0x3d5067,{'showHidden':![],'depth':null}));if(this[_0x1345('0x12')][_0x3d5067[_0x1345('0x4e')]]){var _0x1c04e5=_[_0x1345('0x83')](this['queueReports'][_0x3d5067[_0x1345('0x4e')]]);if(!_['isNil'](_0x1c04e5['mohstarttime'])){_0x1c04e5[_0x1345('0xe7')]+=moment()['milliseconds'](0x0)[_0x1345('0xca')](_0x1c04e5[_0x1345('0xe4')],'seconds');logger[_0x1345('0x71')](_0x1345('0xe8'),_0x3d5067['uniqueid'],_0x1c04e5[_0x1345('0xe7')]);delete _0x1c04e5[_0x1345('0xe4')];}}}}catch(_0x4398cf){logger['error'](_0x1345('0xe6'),_0x3d5067[_0x1345('0x4e')],util['inspect'](_0x4398cf,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x1345('0xd')][_0x1345('0x2a')]=function(_0x27e22e){try{if(this[_0x1345('0x6e')](_0x27e22e)){logger[_0x1345('0x4b')](_0x1345('0xe9'),_0x27e22e[_0x1345('0x4e')],util[_0x1345('0x43')](_0x27e22e,{'showHidden':![],'depth':null}));if(_0x27e22e[_0x1345('0xea')]['toLowerCase']()===_0x1345('0xeb')){_0x27e22e[_0x1345('0xec')]=_0x27e22e[_0x1345('0xed')]&&_0x27e22e[_0x1345('0xed')]['startsWith'](_0x1345('0xee'))?_0x27e22e[_0x1345('0xed')]:(_0x27e22e[_0x1345('0xed')]||_0x27e22e[_0x1345('0xec')])[_0x1345('0xa0')]();if(_['startsWith'](_0x27e22e[_0x1345('0xec')][_0x1345('0xa0')](),_0x1345('0xef'))){logger['info'](_0x1345('0xf0'),_0x27e22e[_0x1345('0x4e')],_0x27e22e['application'],_0x27e22e['applicationdata']);if(_[_0x1345('0x69')](this[_0x1345('0x13')][_0x27e22e[_0x1345('0x4e')]]))this[_0x1345('0x13')][_0x27e22e[_0x1345('0x4e')]]={};var _0x4e54d6=_0x27e22e[_0x1345('0xec')][_0x1345('0xf1')]('=');var _0x3ae13f=_0x4e54d6[0x0][_0x1345('0xa0')]()[_0x1345('0xf2')](/cdr\((.*)\)/);if(_0x3ae13f)this['channels'][_0x27e22e[_0x1345('0x4e')]][_0x3ae13f[0x1]]=_0x4e54d6[0x1];}}}}catch(_0x2ca949){logger[_0x1345('0x40')](_0x1345('0xf3'),_0x27e22e['uniqueid'],util['inspect'](_0x2ca949,{'showHidden':![],'depth':null}));}};module[_0x1345('0xf4')]=VoiceQueueReport;
\ No newline at end of file
+var _0xcee0=['exports','lodash','moment','util','md5','ioredis','../../../config/environment','../../../config/logger','ami','../ami','redis','defaults','localhost','socket.io-emitter','prototype','enqueue','tail','finally','sequence','queueReports','agents','queueChannels','voiceQueues','flagQueueSummary','campaigns','variables','queuesummary','bind','queuesummarycomplete','syncQueueSummaryComplete','queuecallerjoin','syncQueueCallerJoin','queuecallerabandon','queuecallerleave','syncQueueCallerLeave','agentcomplete','syncAgentComplete','agentconnect','syncAgentConnect','varset','hangup','fullybooted','syncFullyBooted','newexten','syncNewExten','musiconholdstart','syncMusicOnHoldStart','musiconholdstop','syncMusicOnHoldStop','syncAttendedTransfer','loopQueueSummary','loopQueueShow','isEmpty','hasOwnProperty','originated','talking','pTalking','waiting','queueStatusComplete','unlockRR','clearZombieChannels','channels','switch','Action','status','catch','message','No\x20such\x20channel','error','inspect','[%s][voiceQueueReport][checkVariables]','[FullyBooted]\x20clear\x20realtime','clearQueueReport','emit','emitVoiceQueueChannelSave','debug','[%s][voiceQueueReport][',']\x20sending\x20voice_queue_channel:save\x20event:','format','voice:queue:%s','name','voice_queue_channel:save','voice_queue_presence:save',']\x20sending\x20voice_queue_channel:remove\x20event:','voice_queue_channel:remove','voice_queue_presence:remove','emitVoiceQueueSummary','inbound','strategy','available','loggedIn','sumBillable','sumDuration','sumHoldTime','type','abandoned','Trunk','active','Interval','stringify','[voiceQueueReport][',']\x20sending\x20voice_queue:save\x20event:','voice_queue:save','isNotNull','isUndefined','queue','info','[voiceQueueReport][queuesummary]\x20name:%s','countBy','callers','toNumber','loggedin','[voiceQueueReport][queuesummary]\x20sending\x20queuesummary\x20event:','custom:queuesummary','[voiceQueueReport][queuesummary]','[voiceQueueReport][queuesummarycomplete]\x20event:','uniqueid','queuecallerjoinAt','position','count','routealias','[voiceQueueReport][queuecallerjoin]\x20name:%s\x20type:%s','merge','pick','keys','push','syncQueueCallerAbandon','[%s][voiceQueueReport][queuecallerabandon]','queuecallercomplete','queuecallercompleteAt','originalposition','queuecallerabandonAt','YYYY-MM-DD\x20HH:mm:ss','ABANDONED','lastAssignedTo','emitVoiceQueueChannelRemove','[%s][voiceQueueReport][queuecallerleave]','queuecallerleaveAt','connectedlinenum','connectedlinename','[voiceQueueReport][queuecallerleave]\x20name:%s\x20type:%s\x20connectedlinenum:%s\x20connectedlinename:%s','last','COMPLETEDBYAGENT','[voiceQueueReport][agentconnect]\x20name:%s\x20type:%s\x20queuecallerexitreason:COMPLETEDBYAGENT','[%s][voiceQueueReport][agentconnect]','[%s][voiceQueueReport][agentcomplete]','assigned','holdtime','queuecallerexit','queuecallerexitAt','transfer','reason','startsWith','channel','toLowerCase','local/','linkedid','add','seconds','queuecallerexitreason','FORWARDTRANSFER','transfertype','FORWARD','transferexten','[voiceQueueReport][agentcomplete]\x20name:%s\x20type:%s\x20queuecallerexitreason:FORWARDTRANSFER','COMPLETEDBY','toUpperCase','[voiceQueueReport][agentcomplete]\x20name:%s\x20type:%s\x20queuecallerexitreason:%s','syncVarSet','[%s][voiceQueueReport][varset]','value','variable','CONTINUE','TIMEOUT','timeout','[%s][voiceQueueReport][varset]\x20sending\x20timeout\x20event:','queueposition','EXITWITHKEY','[%s][voiceQueueReport][varset]\x20name:%s\x20type:%s\x20variable:%s\x20value:%s','addVariable','rtpaudioqos','rtpaudioqosbridged','rtpaudioqosloss','sipcallid','sipuri','bridgepeer','bridgepvtcallid','membercalls','memberdynamic','memberinterface','memberlastcall','membername','memberpenalty','isNil','includes','syncHangup','[%s][voiceQueueReport][hangup]','length','diff','total','answered','lastevent','[%s][voiceQueueReport][hangup]\x20sending\x20queuecallerunmanaged\x20event:','custom:queuecallerunmanaged','[%s][voiceQueueReport][hangup]\x20sending\x20queuecallerabandon\x20event:','custom:queuecallerabandon','cause-txt','[%s][voiceQueueReport][hangup]\x20sending\x20voiceQueueReport\x20event:','transfereeuniqueid','secondtransfererexten','transferuniqueid','ATTENDEDTRANSFER','ATTENDED','secondtransfereruniqueid','[%s][voiceQueueReport][attendedTransfer]\x20name:%s\x20type:%s\x20transferexten:%s\x20transferuniqueid:%s','transfertargetuniqueid','origtransfererexten','origtransfereruniqueid','[%s][voiceQueueReport][attendedtransfer]','syncBlindTransfer','[%s][voiceQueueReport][blindtransfer]','BLINDTRANSFER','BLIND','extension','[%s][voiceQueueReport][blindTransfer]\x20name:%s\x20type:%s\x20transferexten:%s\x20transferuniqueid:%s','transfererchannel','mohstarttime','[%s][voiceQueueReport][musiconholdstart]\x20mohstarttime:%s','[%s][voiceQueueReport][musiconholdstop]','mohtime','[%s][voiceQueueReport][newexten]\x20event:','application','applicationdata','appdata','CDR(routeAlias)','cdr(','[%s][voiceQueueReport][newexten]\x20application:%s\x20appdata:%s','split','match','[%s][voiceQueueReport][newexten]'];(function(_0x5ddb1c,_0x5ea4df){var _0x354adc=function(_0x2dfb1f){while(--_0x2dfb1f){_0x5ddb1c['push'](_0x5ddb1c['shift']());}};_0x354adc(++_0x5ea4df);}(_0xcee0,0x1e1));var _0x0cee=function(_0x257642,_0x270a80){_0x257642=_0x257642-0x0;var _0x3d813b=_0xcee0[_0x257642];return _0x3d813b;};'use strict';var _=require(_0x0cee('0x0'));var moment=require(_0x0cee('0x1'));var util=require(_0x0cee('0x2'));var md5=require(_0x0cee('0x3'));var Redis=require(_0x0cee('0x4'));var config=require(_0x0cee('0x5'));var logger=require(_0x0cee('0x6'))(_0x0cee('0x7'));var ami=require(_0x0cee('0x8'));var QueueReport=require('../model/queueReport');config[_0x0cee('0x9')]=_[_0x0cee('0xa')](config[_0x0cee('0x9')],{'host':_0x0cee('0xb'),'port':0x18eb});var io=require(_0x0cee('0xc'))(new Redis(config['redis']));var Sequence=function(){};Sequence[_0x0cee('0xd')][_0x0cee('0xe')]=function(_0x34854d){this[_0x0cee('0xf')]=this[_0x0cee('0xf')]?this[_0x0cee('0xf')][_0x0cee('0x10')](_0x34854d):_0x34854d();};function VoiceQueueReport(_0x1a57fd){this[_0x0cee('0x11')]=new Sequence();this[_0x0cee('0x12')]={};this[_0x0cee('0x13')]=_0x1a57fd[_0x0cee('0x13')];this['channels']=_0x1a57fd[_0x0cee('0x14')];this[_0x0cee('0x15')]=_0x1a57fd[_0x0cee('0x15')];this[_0x0cee('0x16')]=!![];this[_0x0cee('0x17')]=_0x1a57fd[_0x0cee('0x17')];this[_0x0cee('0x18')]={};ami['on'](_0x0cee('0x19'),this['syncQueueSummary'][_0x0cee('0x1a')](this));ami['on'](_0x0cee('0x1b'),this[_0x0cee('0x1c')][_0x0cee('0x1a')](this));ami['on'](_0x0cee('0x1d'),this[_0x0cee('0x1e')][_0x0cee('0x1a')](this));ami['on'](_0x0cee('0x1f'),this['syncQueueCallerAbandon'][_0x0cee('0x1a')](this));ami['on'](_0x0cee('0x20'),this[_0x0cee('0x21')][_0x0cee('0x1a')](this));ami['on'](_0x0cee('0x22'),this[_0x0cee('0x23')][_0x0cee('0x1a')](this));ami['on'](_0x0cee('0x24'),this[_0x0cee('0x25')]['bind'](this));ami['on'](_0x0cee('0x26'),this['syncVarSet'][_0x0cee('0x1a')](this));ami['on'](_0x0cee('0x27'),this['syncHangup'][_0x0cee('0x1a')](this));ami['on'](_0x0cee('0x28'),this[_0x0cee('0x29')][_0x0cee('0x1a')](this));ami['on'](_0x0cee('0x2a'),this[_0x0cee('0x2b')][_0x0cee('0x1a')](this));ami['on'](_0x0cee('0x2c'),this[_0x0cee('0x2d')][_0x0cee('0x1a')](this));ami['on'](_0x0cee('0x2e'),this[_0x0cee('0x2f')][_0x0cee('0x1a')](this));ami['on']('attendedtransfer',this[_0x0cee('0x30')][_0x0cee('0x1a')](this));ami['on']('blindtransfer',this['syncBlindTransfer'][_0x0cee('0x1a')](this));this[_0x0cee('0x31')]();this[_0x0cee('0x32')]();}function clearChannels(_0x4d895f){if(!_[_0x0cee('0x33')](_0x4d895f)){for(var _0x3e4bca in _0x4d895f){if(_0x4d895f[_0x0cee('0x34')](_0x3e4bca)){delete _0x4d895f[_0x3e4bca];}}}}function clearCampaigns(_0x3bfea8){if(!_[_0x0cee('0x33')](_0x3bfea8)){for(var _0x27e266 in _0x3bfea8){if(_0x3bfea8[_0x0cee('0x34')](_0x27e266)){_0x3bfea8[_0x27e266][_0x0cee('0x35')]=0x0;}}}}function clearVoiceQueues(_0x260349){if(!_['isEmpty'](_0x260349)){for(var _0x3ceaf4 in _0x260349){if(_0x260349[_0x0cee('0x34')](_0x3ceaf4)){_0x260349[_0x3ceaf4]['originated']=0x0;_0x260349[_0x3ceaf4][_0x0cee('0x36')]=0x0;_0x260349[_0x3ceaf4][_0x0cee('0x37')]=0x0;_0x260349[_0x3ceaf4][_0x0cee('0x38')]=0x0;_0x260349[_0x3ceaf4][_0x0cee('0x39')]=!![];}}}}function clearAgentBooked(_0x5d69e2){if(!_[_0x0cee('0x33')](_0x5d69e2)){for(var _0xef2dcd in _0x5d69e2){if(_0x5d69e2[_0x0cee('0x34')](_0xef2dcd)){_0x5d69e2[_0xef2dcd][_0x0cee('0x3a')]=!![];}}}}VoiceQueueReport[_0x0cee('0xd')][_0x0cee('0x3b')]=function(){var _0x54a5b5=this;for(var _0x5b836a in this[_0x0cee('0x3c')]){if(this['channels']['hasOwnProperty'](_0x5b836a)&&!this['channels'][_0x5b836a][_0x0cee('0x3d')]){this[_0x0cee('0x11')]['enqueue'](function(){if(!_['isNil'](_0x54a5b5[_0x0cee('0x3c')][_0x5b836a])){return ami[_0x0cee('0x3e')]({'action':_0x0cee('0x3f'),'channel':_0x54a5b5[_0x0cee('0x3c')][_0x5b836a]['channel']})[_0x0cee('0x40')](function(_0x4b25ed){if(_0x4b25ed[_0x0cee('0x41')]===_0x0cee('0x42')){setTimeout(function(){if(_0x54a5b5['channels'][_0x5b836a]){delete _0x54a5b5[_0x0cee('0x3c')][_0x5b836a];logger[_0x0cee('0x43')]('[%s][voiceQueueReport][checkChannel]',_0x5b836a,util[_0x0cee('0x44')](_0x4b25ed,{'showHidden':![],'depth':null}));}if(_0x54a5b5[_0x0cee('0x12')][_0x5b836a]){delete _0x54a5b5[_0x0cee('0x12')][_0x5b836a];logger[_0x0cee('0x43')]('[%s][voiceQueueReport][checkQueueReport]',_0x5b836a,util[_0x0cee('0x44')](_0x4b25ed,{'showHidden':![],'depth':null}));}if(_0x54a5b5[_0x0cee('0x18')][_0x5b836a]){delete _0x54a5b5[_0x0cee('0x18')][_0x5b836a];logger[_0x0cee('0x43')](_0x0cee('0x45'),_0x5b836a,util[_0x0cee('0x44')](_0x4b25ed,{'showHidden':![],'depth':null}));}},0x1f40);}});}});}}};VoiceQueueReport['prototype']['syncFullyBooted']=function(){logger['error'](_0x0cee('0x46'));clearChannels(this[_0x0cee('0x3c')]);this[_0x0cee('0x47')](this[_0x0cee('0x12')]);clearAgentBooked(this[_0x0cee('0x13')]);clearVoiceQueues(this[_0x0cee('0x15')]);clearCampaigns(this[_0x0cee('0x17')]);};VoiceQueueReport[_0x0cee('0xd')][_0x0cee('0x47')]=function(_0x3e2322){var _0x148d6f=this;if(!_[_0x0cee('0x33')](_0x3e2322)){for(var _0xc73329 in _0x3e2322){if(_0x3e2322['hasOwnProperty'](_0xc73329)){_0x148d6f['emitVoiceQueueChannelRemove'](_0x3e2322[_0xc73329],'clearqueuereport');delete _0x3e2322[_0xc73329];}}}};VoiceQueueReport[_0x0cee('0xd')][_0x0cee('0x48')]=function(_0x3acf6a,_0x306ef9,_0x472cb5){io['to'](_0x3acf6a)[_0x0cee('0x48')](_0x306ef9,_0x472cb5);};VoiceQueueReport[_0x0cee('0xd')][_0x0cee('0x49')]=function(_0x5da5be,_0x5ed048){logger[_0x0cee('0x4a')](_0x0cee('0x4b')+_0x5ed048+_0x0cee('0x4c'),_0x5da5be['uniqueid'],util[_0x0cee('0x44')](_0x5da5be,{'showHidden':![],'depth':null}));this[_0x0cee('0x48')](util[_0x0cee('0x4d')](_0x0cee('0x4e'),_0x5da5be[_0x0cee('0x4f')]),_0x0cee('0x50'),_0x5da5be);io[_0x0cee('0x48')](_0x0cee('0x51'),_0x5da5be);};VoiceQueueReport[_0x0cee('0xd')]['emitVoiceQueueChannelRemove']=function(_0x3cc7fe,_0x468e83){logger[_0x0cee('0x4a')](_0x0cee('0x4b')+_0x468e83+_0x0cee('0x52'),_0x3cc7fe['uniqueid'],util[_0x0cee('0x44')](_0x3cc7fe,{'showHidden':![],'depth':null}));this[_0x0cee('0x48')](util[_0x0cee('0x4d')](_0x0cee('0x4e'),_0x3cc7fe[_0x0cee('0x4f')]),_0x0cee('0x53'),_0x3cc7fe);io[_0x0cee('0x48')](_0x0cee('0x54'),_0x3cc7fe);};VoiceQueueReport[_0x0cee('0xd')][_0x0cee('0x55')]=function(_0x8fe55d,_0x8322d8){if(_0x8fe55d['type']===_0x0cee('0x56')){var _0x3548b1={'id':_0x8fe55d['id'],'name':_0x8fe55d[_0x0cee('0x4f')],'strategy':_0x8fe55d[_0x0cee('0x57')],'answered':_0x8fe55d['answered'],'available':_0x8fe55d[_0x0cee('0x58')],'loggedIn':_0x8fe55d[_0x0cee('0x59')],'pTalking':_0x8fe55d[_0x0cee('0x37')],'sumBillable':_0x8fe55d[_0x0cee('0x5a')],'sumDuration':_0x8fe55d[_0x0cee('0x5b')],'sumHoldTime':_0x8fe55d[_0x0cee('0x5c')]||0x0,'talking':_0x8fe55d['talking'],'total':_0x8fe55d['total'],'type':_0x8fe55d[_0x0cee('0x5d')],'unmanaged':_0x8fe55d['unmanaged'],'abandoned':_0x8fe55d[_0x0cee('0x5e')],'waiting':_0x8fe55d[_0x0cee('0x38')]};if(_0x8fe55d[_0x0cee('0x5f')]){_0x3548b1[_0x0cee('0x5f')]={'id':_0x8fe55d[_0x0cee('0x5f')]['id'],'name':_0x8fe55d[_0x0cee('0x5f')]['name'],'active':_0x8fe55d['Trunk'][_0x0cee('0x60')],'callerid':_0x8fe55d['Trunk']['callerid']};}if(_0x8fe55d['Interval']){_0x3548b1[_0x0cee('0x61')]={'id':_0x8fe55d[_0x0cee('0x61')]['id'],'name':_0x8fe55d[_0x0cee('0x61')][_0x0cee('0x4f')]};}var _0x2bc97b=md5(JSON[_0x0cee('0x62')](_0x3548b1));if(_0x8fe55d[_0x0cee('0x3')]!==_0x2bc97b){_0x8fe55d['md5']=_0x2bc97b;logger[_0x0cee('0x4a')](_0x0cee('0x63')+_0x8322d8+_0x0cee('0x64'),util[_0x0cee('0x44')](_0x3548b1,{'showHidden':![],'depth':null}));this['emit'](util[_0x0cee('0x4d')](_0x0cee('0x4e'),_0x3548b1['name']),_0x0cee('0x65'),_0x3548b1);}}};VoiceQueueReport[_0x0cee('0xd')][_0x0cee('0x66')]=function(_0x5aaa16){return _0x5aaa16!==null&&!_[_0x0cee('0x67')](_0x5aaa16);};VoiceQueueReport[_0x0cee('0xd')][_0x0cee('0x32')]=function(){var _0x4512c7=this;setInterval(function(){_0x4512c7[_0x0cee('0x3b')]();ami['Action']({'action':'queues'})[_0x0cee('0x40')](function(_0x1f64d3){logger[_0x0cee('0x43')]('[voiceQueueReport][queues]',util['inspect'](_0x1f64d3,{'showHidden':![],'depth':null}));});},0x2710);};VoiceQueueReport[_0x0cee('0xd')][_0x0cee('0x31')]=function(){var _0x468798=this;setInterval(function(){if(_0x468798[_0x0cee('0x16')]){return ami[_0x0cee('0x3e')]({'action':_0x0cee('0x19')})['then'](function(_0xc0f2dc){_0x468798['flagQueueSummary']=![];})[_0x0cee('0x40')](function(_0x4df4c1){logger['error']('[voiceQueueReport][queuesummary]',util[_0x0cee('0x44')](_0x4df4c1,{'showHidden':![],'depth':null}));});}},0x3e8);};VoiceQueueReport['prototype']['syncQueueSummary']=function(_0x51bc62){try{if(this[_0x0cee('0x66')](_0x51bc62)&&this[_0x0cee('0x66')](_0x51bc62[_0x0cee('0x68')])){logger[_0x0cee('0x4a')]('[voiceQueueReport][queuesummary]\x20event:',util[_0x0cee('0x44')](_0x51bc62,{'showHidden':![],'depth':null}));if(this[_0x0cee('0x15')][_0x51bc62['queue']]){logger[_0x0cee('0x69')](_0x0cee('0x6a'),_0x51bc62[_0x0cee('0x68')]);var _0x5ac613=_[_0x0cee('0x6b')](this[_0x0cee('0x3c')],_0x0cee('0x68'))[_0x51bc62[_0x0cee('0x68')]]||0x0;var _0x249933=_0x5ac613-_0x51bc62[_0x0cee('0x6c')];if(this['voiceQueues'][_0x51bc62[_0x0cee('0x68')]][_0x0cee('0x38')]!==_[_0x0cee('0x6d')](_0x51bc62['callers'])||this[_0x0cee('0x15')][_0x51bc62[_0x0cee('0x68')]][_0x0cee('0x59')]!==_[_0x0cee('0x6d')](_0x51bc62[_0x0cee('0x6e')])||this[_0x0cee('0x15')][_0x51bc62[_0x0cee('0x68')]][_0x0cee('0x58')]!==_[_0x0cee('0x6d')](_0x51bc62['available'])||this[_0x0cee('0x15')][_0x51bc62[_0x0cee('0x68')]]['talking']!==_0x249933){this[_0x0cee('0x15')][_0x51bc62[_0x0cee('0x68')]]['waiting']=_[_0x0cee('0x6d')](_0x51bc62[_0x0cee('0x6c')]);this[_0x0cee('0x15')][_0x51bc62[_0x0cee('0x68')]][_0x0cee('0x59')]=_['toNumber'](_0x51bc62[_0x0cee('0x6e')]);this[_0x0cee('0x15')][_0x51bc62[_0x0cee('0x68')]][_0x0cee('0x58')]=_[_0x0cee('0x6d')](_0x51bc62[_0x0cee('0x58')]);this[_0x0cee('0x15')][_0x51bc62[_0x0cee('0x68')]]['talking']=_0x249933>0x0?_0x249933:0x0;this[_0x0cee('0x15')][_0x51bc62[_0x0cee('0x68')]][_0x0cee('0x36')]=this['voiceQueues'][_0x51bc62[_0x0cee('0x68')]][_0x0cee('0x36')]>_[_0x0cee('0x6d')](_0x51bc62[_0x0cee('0x6e')])?_[_0x0cee('0x6d')](_0x51bc62[_0x0cee('0x6e')]):this[_0x0cee('0x15')][_0x51bc62[_0x0cee('0x68')]]['talking'];this[_0x0cee('0x55')](this[_0x0cee('0x15')][_0x51bc62['queue']],_0x0cee('0x19'));}logger[_0x0cee('0x4a')](_0x0cee('0x6f'),util[_0x0cee('0x44')](this[_0x0cee('0x15')][_0x51bc62[_0x0cee('0x68')]],{'showHidden':![],'depth':null}));ami[_0x0cee('0x48')](_0x0cee('0x70'),this[_0x0cee('0x15')][_0x51bc62['queue']]);}}}catch(_0x1664bf){logger[_0x0cee('0x43')](_0x0cee('0x71'),util[_0x0cee('0x44')](_0x1664bf,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x0cee('0xd')][_0x0cee('0x1c')]=function(_0x1e6eaa){logger['debug'](_0x0cee('0x72'),util[_0x0cee('0x44')](_0x1e6eaa,{'showHidden':![],'depth':null}));this[_0x0cee('0x16')]=!![];};VoiceQueueReport['prototype'][_0x0cee('0x1e')]=function(_0x204b85){try{if(this[_0x0cee('0x66')](_0x204b85)){logger[_0x0cee('0x4a')]('[%s][voiceQueueReport][queuecallerjoin]',_0x204b85[_0x0cee('0x73')],util['inspect'](_0x204b85,{'showHidden':![],'depth':null}));if(_[_0x0cee('0x67')](this['queueReports'][_0x204b85['uniqueid']]))this['queueReports'][_0x204b85[_0x0cee('0x73')]]=[];if(_[_0x0cee('0x67')](this['channels'][_0x204b85[_0x0cee('0x73')]]))this[_0x0cee('0x3c')][_0x204b85[_0x0cee('0x73')]]={};var _0x501258=new QueueReport();_0x501258[_0x0cee('0x4f')]=_0x204b85[_0x0cee('0x68')];_0x501258['type']=this[_0x0cee('0x15')][_0x501258[_0x0cee('0x4f')]]&&this[_0x0cee('0x15')][_0x501258[_0x0cee('0x4f')]]['type']?this[_0x0cee('0x15')][_0x501258[_0x0cee('0x4f')]]['type']||_0x0cee('0x56'):_0x0cee('0x56');_0x501258[_0x0cee('0x68')]=_0x204b85[_0x0cee('0x68')];_0x501258[_0x0cee('0x74')]=moment()[_0x0cee('0x4d')]('YYYY-MM-DD\x20HH:mm:ss');_0x501258[_0x0cee('0x75')]=_0x204b85[_0x0cee('0x75')];_0x501258[_0x0cee('0x76')]=_0x204b85[_0x0cee('0x76')];_0x501258[_0x0cee('0x73')]=_0x204b85[_0x0cee('0x73')];_0x501258[_0x0cee('0x77')]=this[_0x0cee('0x3c')][_0x204b85[_0x0cee('0x73')]][_0x0cee('0x77')];logger[_0x0cee('0x69')](_0x0cee('0x78'),_0x501258[_0x0cee('0x4f')],_0x501258[_0x0cee('0x5d')]);_[_0x0cee('0x79')](_0x501258,_[_0x0cee('0x7a')](_0x204b85,_[_0x0cee('0x7b')](_0x501258)));this[_0x0cee('0x12')][_0x204b85[_0x0cee('0x73')]][_0x0cee('0x7c')](_0x501258);this['channels'][_0x204b85['uniqueid']]=_0x501258;this['emitVoiceQueueChannelSave'](_0x501258,_0x0cee('0x1d'));}}catch(_0x44dff4){logger[_0x0cee('0x43')]('[%s][voiceQueueReport][queuecallerjoin]',_0x204b85[_0x0cee('0x73')],util[_0x0cee('0x44')](_0x44dff4,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x0cee('0xd')][_0x0cee('0x7d')]=function(_0x4a54dd){try{if(this[_0x0cee('0x66')](_0x4a54dd)){logger[_0x0cee('0x4a')](_0x0cee('0x7e'),_0x4a54dd[_0x0cee('0x73')],util['inspect'](_0x4a54dd,{'showHidden':![],'depth':null}));if(this[_0x0cee('0x12')][_0x4a54dd['uniqueid']]){var _0x74c6d0=_['last'](this[_0x0cee('0x12')][_0x4a54dd[_0x0cee('0x73')]]);_0x74c6d0[_0x0cee('0x7f')]=![];_0x74c6d0[_0x0cee('0x80')]=null;_0x74c6d0['holdtime']=_0x4a54dd['holdtime'];_0x74c6d0[_0x0cee('0x81')]=_0x4a54dd[_0x0cee('0x81')];_0x74c6d0[_0x0cee('0x1f')]=!![];_0x74c6d0[_0x0cee('0x82')]=moment()[_0x0cee('0x4d')](_0x0cee('0x83'));_0x74c6d0['queuecallerexitreason']=_0x0cee('0x84');_0x74c6d0[_0x0cee('0x85')]=null;logger[_0x0cee('0x69')]('[voiceQueueReport][queuecallerabandon]\x20name:%s\x20type:%s',_0x74c6d0['name'],_0x74c6d0[_0x0cee('0x5d')]);this[_0x0cee('0x3c')][_0x4a54dd[_0x0cee('0x73')]]=_0x74c6d0;this[_0x0cee('0x86')](_0x74c6d0,'queuecallerabandon');}}}catch(_0x599903){logger[_0x0cee('0x43')](_0x0cee('0x7e'),_0x4a54dd[_0x0cee('0x73')],util[_0x0cee('0x44')](_0x599903,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x0cee('0xd')]['syncQueueCallerLeave']=function(_0x52f07c){try{if(this['isNotNull'](_0x52f07c)){logger[_0x0cee('0x4a')](_0x0cee('0x87'),_0x52f07c[_0x0cee('0x73')],util[_0x0cee('0x44')](_0x52f07c,{'showHidden':![],'depth':null}));if(this[_0x0cee('0x12')][_0x52f07c[_0x0cee('0x73')]]){var _0x1859c2=_['last'](this[_0x0cee('0x12')][_0x52f07c['uniqueid']]);_0x1859c2[_0x0cee('0x88')]=moment()[_0x0cee('0x4d')](_0x0cee('0x83'));_0x1859c2['connectedlinenum']=_0x52f07c[_0x0cee('0x89')];_0x1859c2['connectedlinename']=_0x52f07c[_0x0cee('0x8a')];logger[_0x0cee('0x69')](_0x0cee('0x8b'),_0x1859c2['name'],_0x1859c2['type'],_0x52f07c[_0x0cee('0x89')],_0x52f07c['connectedlinename']);this[_0x0cee('0x3c')][_0x52f07c[_0x0cee('0x73')]]=_0x1859c2;this[_0x0cee('0x49')](_0x1859c2,_0x0cee('0x20'));}}}catch(_0xde39a5){logger['error']('[%s][voiceQueueReport][queuecallerleave]',_0x52f07c[_0x0cee('0x73')],util['inspect'](_0xde39a5,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x0cee('0xd')][_0x0cee('0x25')]=function(_0x32591e){try{if(this[_0x0cee('0x66')](_0x32591e)){logger[_0x0cee('0x4a')]('[%s][voiceQueueReport][agentconnect]',_0x32591e[_0x0cee('0x73')],util[_0x0cee('0x44')](_0x32591e,{'showHidden':![],'depth':null}));if(this['queueReports'][_0x32591e[_0x0cee('0x73')]]){var _0x3765df=_[_0x0cee('0x8c')](this[_0x0cee('0x12')][_0x32591e[_0x0cee('0x73')]]);_0x3765df['queuecallercomplete']=!![];_0x3765df['queuecallerexitreason']=_0x0cee('0x8d');logger['info'](_0x0cee('0x8e'),_0x3765df[_0x0cee('0x4f')],_0x3765df['type']);}}}catch(_0x4728e7){logger[_0x0cee('0x43')](_0x0cee('0x8f'),_0x32591e[_0x0cee('0x73')],util['inspect'](_0x4728e7,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x0cee('0xd')][_0x0cee('0x23')]=function(_0x303ccd){try{if(this[_0x0cee('0x66')](_0x303ccd)){logger[_0x0cee('0x4a')](_0x0cee('0x90'),_0x303ccd[_0x0cee('0x73')],util[_0x0cee('0x44')](_0x303ccd,{'showHidden':![],'depth':null}));if(this[_0x0cee('0x12')][_0x303ccd['uniqueid']]){var _0x43c959=_[_0x0cee('0x8c')](this['queueReports'][_0x303ccd['uniqueid']]);_0x43c959[_0x0cee('0x1f')]=![];_0x43c959['queuecallerabandonAt']=null;_0x43c959[_0x0cee('0x91')]=!![];_0x43c959[_0x0cee('0x85')]=_0x303ccd['membername'];_0x43c959[_0x0cee('0x92')]=_0x303ccd[_0x0cee('0x92')];_0x43c959['queuecallercomplete']=!![];_0x43c959[_0x0cee('0x93')]=![];_0x43c959[_0x0cee('0x94')]=null;if(!_0x43c959[_0x0cee('0x95')]){if(_0x303ccd[_0x0cee('0x96')]==_0x0cee('0x95')){_0x43c959['queuecallerexitreason']='COMPLETED';logger[_0x0cee('0x69')]('[voiceQueueReport][agentcomplete]\x20name:%s\x20type:%s\x20queuecallerexitreason:COMPLETED',_0x43c959[_0x0cee('0x4f')],_0x43c959[_0x0cee('0x5d')]);}else{if(_[_0x0cee('0x97')](_0x303ccd[_0x0cee('0x98')][_0x0cee('0x99')](),_0x0cee('0x9a'))){if(this[_0x0cee('0x12')][_0x303ccd[_0x0cee('0x9b')]]){var _0x4b031e=_[_0x0cee('0x8c')](this[_0x0cee('0x12')][_0x303ccd[_0x0cee('0x9b')]]);_0x4b031e[_0x0cee('0x7f')]=![];_0x4b031e['queuecallerexit']=!![];_0x4b031e[_0x0cee('0x94')]=moment(_0x43c959[_0x0cee('0x74')])[_0x0cee('0x9c')](_0x303ccd[_0x0cee('0x92')],_0x0cee('0x9d'))[_0x0cee('0x4d')](_0x0cee('0x83'));_0x4b031e[_0x0cee('0x9e')]=_0x0cee('0x9f');_0x4b031e[_0x0cee('0x95')]=!![];_0x4b031e[_0x0cee('0xa0')]=_0x0cee('0xa1');_0x4b031e[_0x0cee('0xa2')]=_0x303ccd['destexten'];_0x4b031e['transferuniqueid']=_0x303ccd[_0x0cee('0x73')];logger[_0x0cee('0x69')](_0x0cee('0xa3'),_0x4b031e['name'],_0x4b031e[_0x0cee('0x5d')]);var _0x3d73c8=this[_0x0cee('0x12')][_0x303ccd[_0x0cee('0x9b')]];this[_0x0cee('0x12')][_0x303ccd['linkedid']]=this['queueReports'][_0x303ccd['uniqueid']];this[_0x0cee('0x12')][_0x303ccd[_0x0cee('0x73')]]=_0x3d73c8;}}else{_0x43c959['queuecallerexitreason']=_0x0cee('0xa4')+_0x303ccd[_0x0cee('0x96')][_0x0cee('0xa5')]();logger['info'](_0x0cee('0xa6'),_0x43c959[_0x0cee('0x4f')],_0x43c959[_0x0cee('0x5d')],_0x43c959[_0x0cee('0x9e')]);}}}this[_0x0cee('0x3c')][_0x303ccd[_0x0cee('0x73')]]=_0x43c959;this['emitVoiceQueueChannelRemove'](_0x43c959,'agentcomplete');}}}catch(_0x537b31){logger[_0x0cee('0x43')](_0x0cee('0x90'),_0x303ccd[_0x0cee('0x73')],util['inspect'](_0x537b31,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x0cee('0xd')][_0x0cee('0xa7')]=function(_0x382cf7){try{if(this[_0x0cee('0x66')](_0x382cf7)){logger['debug'](_0x0cee('0xa8'),_0x382cf7[_0x0cee('0x73')],util[_0x0cee('0x44')](_0x382cf7,{'showHidden':![],'depth':null}));this['addVariable'](_0x382cf7[_0x0cee('0x73')],_[_0x0cee('0x7b')](_0x382cf7['variable'])[0x0],_0x382cf7[_0x0cee('0xa9')]);if(this[_0x0cee('0x12')][_0x382cf7[_0x0cee('0x73')]]){var _0x318186=_[_0x0cee('0x8c')](this[_0x0cee('0x12')][_0x382cf7[_0x0cee('0x73')]]);if(_0x318186){if(this[_0x0cee('0x66')](_0x382cf7[_0x0cee('0xaa')])&&this[_0x0cee('0x66')](_0x382cf7[_0x0cee('0xaa')]['queuestatus'])){switch(_0x382cf7['value']){case _0x0cee('0xab'):_0x318186[_0x0cee('0x93')]=![];_0x318186[_0x0cee('0x94')]=null;break;case _0x0cee('0xac'):_0x318186['lastevent']=_0x0cee('0xad');_0x318186[_0x0cee('0x93')]=!![];_0x318186['queuecallerexitAt']=moment()[_0x0cee('0x4d')](_0x0cee('0x83'));_0x318186['queuecallerleaveAt']=moment()[_0x0cee('0x4d')](_0x0cee('0x83'));logger['debug'](_0x0cee('0xae'),_0x382cf7[_0x0cee('0x73')],util[_0x0cee('0x44')](_0x318186,{'showHidden':![],'depth':null}));ami['emit']('custom:timeout',_0x318186);break;default:_0x318186[_0x0cee('0x93')]=!![];_0x318186[_0x0cee('0x94')]=moment()[_0x0cee('0x4d')](_0x0cee('0x83'));_0x318186['queuecallerleaveAt']=moment()[_0x0cee('0x4d')](_0x0cee('0x83'));}_0x318186['queuecallerabandon']=![];_0x318186[_0x0cee('0x82')]=null;_0x318186['queuecallerexitreason']=_0x382cf7[_0x0cee('0xa9')];this['channels'][_0x382cf7[_0x0cee('0x73')]]=_0x318186;this[_0x0cee('0x86')](_0x318186,_0x0cee('0x26'));}else if(this[_0x0cee('0x66')](_0x382cf7[_0x0cee('0xaa')])&&this['isNotNull'](_0x382cf7['variable'][_0x0cee('0xaf')])){if(!_0x318186[_0x0cee('0x1f')]){_0x318186['queuecallerexit']=!![];_0x318186[_0x0cee('0x94')]=moment()[_0x0cee('0x4d')](_0x0cee('0x83'));_0x318186[_0x0cee('0x9e')]=_0x0cee('0xb0');_0x318186[_0x0cee('0x88')]=moment()[_0x0cee('0x4d')]('YYYY-MM-DD\x20HH:mm:ss');this[_0x0cee('0x3c')][_0x382cf7[_0x0cee('0x73')]]=_0x318186;}}logger[_0x0cee('0x69')](_0x0cee('0xb1'),_0x382cf7[_0x0cee('0x73')],_0x318186['name'],_0x318186['type'],_[_0x0cee('0x7b')](_0x382cf7[_0x0cee('0xaa')])[0x0],_0x382cf7[_0x0cee('0xa9')]);_0x318186[_0x0cee('0x18')]=this[_0x0cee('0x18')][_0x382cf7['uniqueid']];}}}}catch(_0x29baff){logger[_0x0cee('0x43')](_0x0cee('0xa8'),_0x382cf7['uniqueid'],util[_0x0cee('0x44')](_0x29baff,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x0cee('0xd')][_0x0cee('0xb2')]=function(_0x42da22,_0x4cbf85,_0x18488d){var _0x5df7ec=[_0x0cee('0xb3'),_0x0cee('0xb4'),'rtpaudioqosjitter','rtpaudioqosjitterbridged',_0x0cee('0xb5'),'rtpaudioqoslossbridged','rtpaudioqosrtt','rtpaudioqosrttbridged',_0x0cee('0xb6'),_0x0cee('0xb7'),_0x0cee('0xb8'),_0x0cee('0xb9'),_0x0cee('0xba'),_0x0cee('0xbb'),_0x0cee('0xbc'),_0x0cee('0xbd'),_0x0cee('0xbe'),_0x0cee('0xbf'),'memberrealtime'];if(!_[_0x0cee('0xc0')](_0x4cbf85)&&!_[_0x0cee('0xc1')](_0x5df7ec,_0x4cbf85)){if(_['isUndefined'](this[_0x0cee('0x18')][_0x42da22])){this[_0x0cee('0x18')][_0x42da22]={};}this['variables'][_0x42da22][_0x4cbf85]=_0x18488d;}};VoiceQueueReport[_0x0cee('0xd')][_0x0cee('0xc2')]=function(_0x2619dc){try{if(this[_0x0cee('0x66')](_0x2619dc)){logger[_0x0cee('0x4a')](_0x0cee('0xc3'),_0x2619dc[_0x0cee('0x73')],util[_0x0cee('0x44')](_0x2619dc,{'showHidden':![],'depth':null}));if(this[_0x0cee('0x12')][_0x2619dc[_0x0cee('0x73')]]){for(var _0x18a519=0x0,_0x244239={};_0x18a519<this[_0x0cee('0x12')][_0x2619dc[_0x0cee('0x73')]][_0x0cee('0xc4')];_0x18a519+=0x1){_0x244239=this[_0x0cee('0x12')][_0x2619dc[_0x0cee('0x73')]][_0x18a519];if(this[_0x0cee('0x15')][_0x244239[_0x0cee('0x68')]]){if(_0x244239['queuecallerexit']&&_0x244239[_0x0cee('0x95')]!=!![]){this[_0x0cee('0x15')][_0x244239['queue']]['unmanaged']+=0x1;}if(_0x244239[_0x0cee('0x1f')]){this[_0x0cee('0x15')][_0x244239['queue']][_0x0cee('0x5e')]+=0x1;}this[_0x0cee('0x15')][_0x244239[_0x0cee('0x68')]]['sumHoldTime']+=moment(_0x244239[_0x0cee('0x88')])[_0x0cee('0xc5')](_0x244239[_0x0cee('0x74')],_0x0cee('0x9d'))||0x0;if(_0x18a519===this['queueReports'][_0x2619dc['uniqueid']][_0x0cee('0xc4')]-0x1){this['voiceQueues'][_0x244239[_0x0cee('0x68')]]['sumDuration']+=moment()['milliseconds'](0x0)['diff'](_0x244239[_0x0cee('0x74')],_0x0cee('0x9d'));this['voiceQueues'][_0x244239[_0x0cee('0x68')]][_0x0cee('0xc6')]+=0x1;if(_0x244239['queuecallercomplete']){this['voiceQueues'][_0x244239['queue']][_0x0cee('0xc7')]+=0x1;this[_0x0cee('0x15')][_0x244239[_0x0cee('0x68')]][_0x0cee('0x5a')]+=moment()['milliseconds'](0x0)[_0x0cee('0xc5')](_0x244239[_0x0cee('0x88')],_0x0cee('0x9d'));_0x244239['queuecallercompleteAt']=moment()[_0x0cee('0x4d')](_0x0cee('0x83'));_0x244239['queuecallerexit']=![];_0x244239['queuecallerexitAt']=null;}if(_0x244239[_0x0cee('0x93')]&&_0x244239['transfer']!=!![]){_0x244239[_0x0cee('0xc8')]='unmanaged';logger[_0x0cee('0x4a')](_0x0cee('0xc9'),_0x2619dc[_0x0cee('0x73')],util[_0x0cee('0x44')](_0x244239,{'showHidden':![],'depth':null}));ami[_0x0cee('0x48')](_0x0cee('0xca'),_0x244239);}if(_0x244239[_0x0cee('0x1f')]){_0x244239['lastevent']=_0x0cee('0x5e');logger['debug'](_0x0cee('0xcb'),_0x2619dc[_0x0cee('0x73')],util[_0x0cee('0x44')](_0x244239,{'showHidden':![],'depth':null}));ami[_0x0cee('0x48')](_0x0cee('0xcc'),_0x244239);}}else{this[_0x0cee('0x15')][_0x244239[_0x0cee('0x68')]][_0x0cee('0x5b')]+=this[_0x0cee('0x15')][_0x244239[_0x0cee('0x68')]]['sumHoldTime'];}logger['info']('[%s][voiceQueueReport][hangup]\x20name:%s\x20type:%s\x20reason:%s',_0x2619dc['uniqueid'],_0x244239[_0x0cee('0x4f')],_0x244239[_0x0cee('0x5d')],_0x2619dc[_0x0cee('0xcd')]);this[_0x0cee('0x3c')][_0x2619dc[_0x0cee('0x73')]]=_0x244239;this[_0x0cee('0x86')](_0x244239,'hangup');this['emitVoiceQueueSummary'](this[_0x0cee('0x15')][_0x244239[_0x0cee('0x68')]],_0x0cee('0x27'));}}logger[_0x0cee('0x4a')](_0x0cee('0xce'),_0x2619dc[_0x0cee('0x73')],util['inspect'](this['queueReports'][_0x2619dc[_0x0cee('0x73')]],{'showHidden':![],'depth':null}));ami[_0x0cee('0x48')]('custom:voiceQueueReport',this[_0x0cee('0x12')][_0x2619dc[_0x0cee('0x73')]]);delete this['queueReports'][_0x2619dc[_0x0cee('0x73')]];delete this[_0x0cee('0x3c')][_0x2619dc[_0x0cee('0x73')]];}if(this[_0x0cee('0x18')][_0x2619dc[_0x0cee('0x73')]]){delete this['variables'][_0x2619dc['uniqueid']];}}}catch(_0x3b314c){logger[_0x0cee('0x43')](_0x0cee('0xc3'),_0x2619dc[_0x0cee('0x73')],util['inspect'](_0x3b314c,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x0cee('0xd')]['syncAttendedTransfer']=function(_0x29579a){try{if(this[_0x0cee('0x66')](_0x29579a)){logger['debug']('[%s][voiceQueueReport][attendedtransfer]',_0x29579a[_0x0cee('0x73')],util[_0x0cee('0x44')](_0x29579a,{'showHidden':![],'depth':null}));var _0xeff4df;if(this[_0x0cee('0x12')][_0x29579a['transfereeuniqueid']]){_0xeff4df=_[_0x0cee('0x8c')](this[_0x0cee('0x12')][_0x29579a[_0x0cee('0xcf')]]);_0xeff4df['transferexten']=_0x29579a[_0x0cee('0xd0')];_0xeff4df[_0x0cee('0xd1')]=_0x29579a['secondtransfereruniqueid'];_0xeff4df[_0x0cee('0x9e')]=_0x0cee('0xd2');_0xeff4df['transfer']=!![];_0xeff4df[_0x0cee('0xa0')]=_0x0cee('0xd3');if(this[_0x0cee('0x12')][_0x29579a['secondtransfereruniqueid']]){var _0x2e1d92=this['queueReports'][_0x29579a[_0x0cee('0xd4')]];this['queueReports'][_0x29579a[_0x0cee('0xd4')]]=this[_0x0cee('0x12')][_0x29579a[_0x0cee('0xcf')]];this[_0x0cee('0x12')][_0x29579a['transfereeuniqueid']]=_0x2e1d92;var _0x31cc23=_[_0x0cee('0x8c')](this[_0x0cee('0x12')][_0x29579a['transfereeuniqueid']]);_0x31cc23[_0x0cee('0x3d')]=!![];}logger[_0x0cee('0x69')](_0x0cee('0xd5'),_0x29579a['uniqueid'],_0xeff4df[_0x0cee('0x4f')],_0xeff4df['type'],_0xeff4df['transferexten'],_0xeff4df[_0x0cee('0xd1')]);}else if(this[_0x0cee('0x12')][_0x29579a[_0x0cee('0xd6')]]){_0xeff4df=_['last'](this[_0x0cee('0x12')][_0x29579a[_0x0cee('0xd6')]]);_0xeff4df['transferexten']=_0x29579a[_0x0cee('0xd7')];_0xeff4df[_0x0cee('0xd1')]=_0x29579a[_0x0cee('0xd8')];_0xeff4df[_0x0cee('0x9e')]=_0x0cee('0xd2');_0xeff4df[_0x0cee('0x95')]=!![];_0xeff4df['transfertype']=_0x0cee('0xd3');if(this['queueReports'][_0x29579a[_0x0cee('0xd8')]]){var _0x2e1d92=this['queueReports'][_0x29579a[_0x0cee('0xd8')]];this[_0x0cee('0x12')][_0x29579a[_0x0cee('0xd8')]]=this[_0x0cee('0x12')][_0x29579a['transfertargetuniqueid']];this[_0x0cee('0x12')][_0x29579a[_0x0cee('0xd6')]]=_0x2e1d92;var _0x31cc23=_[_0x0cee('0x8c')](this[_0x0cee('0x12')][_0x29579a[_0x0cee('0xd6')]]);_0x31cc23[_0x0cee('0x3d')]=!![];}logger[_0x0cee('0x69')](_0x0cee('0xd5'),_0x29579a['uniqueid'],_0xeff4df[_0x0cee('0x4f')],_0xeff4df[_0x0cee('0x5d')],_0xeff4df['transferexten'],_0xeff4df[_0x0cee('0xd1')]);}}}catch(_0x52c9c4){logger[_0x0cee('0x43')](_0x0cee('0xd9'),_0x29579a[_0x0cee('0x73')],util[_0x0cee('0x44')](_0x52c9c4,{'showHidden':![],'depth':null}));}};VoiceQueueReport['prototype'][_0x0cee('0xda')]=function(_0x4e510d){try{if(this[_0x0cee('0x66')](_0x4e510d)){logger[_0x0cee('0x4a')](_0x0cee('0xdb'),_0x4e510d[_0x0cee('0x73')],util['inspect'](_0x4e510d,{'showHidden':![],'depth':null}));if(this[_0x0cee('0x12')][_0x4e510d[_0x0cee('0xcf')]]){var _0x30a429=_['last'](this[_0x0cee('0x12')][_0x4e510d[_0x0cee('0xcf')]]);_0x30a429[_0x0cee('0x9e')]=_0x0cee('0xdc');_0x30a429['transfer']=!![];_0x30a429[_0x0cee('0xa0')]=_0x0cee('0xdd');_0x30a429[_0x0cee('0xa2')]=_0x4e510d[_0x0cee('0xde')];_0x30a429[_0x0cee('0xd1')]=_0x4e510d[_0x0cee('0xcf')];logger[_0x0cee('0x69')](_0x0cee('0xdf'),_0x4e510d[_0x0cee('0x73')],_0x30a429['name'],_0x30a429[_0x0cee('0x5d')],_0x30a429[_0x0cee('0xa2')],_0x30a429[_0x0cee('0xd1')]);this[_0x0cee('0xc2')]({'event':'BlindTransfer','uniqueid':_0x4e510d[_0x0cee('0xcf')],'context':_0x4e510d['context'],'channel':_0x4e510d[_0x0cee('0xe0')]});}}}catch(_0x487958){logger['error'](_0x0cee('0xdb'),_0x4e510d[_0x0cee('0x73')],util[_0x0cee('0x44')](_0x487958,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x0cee('0xd')][_0x0cee('0x2d')]=function(_0x152411){try{if(this[_0x0cee('0x66')](_0x152411)){logger['debug']('[%s][voiceQueueReport][musiconholdstart]',_0x152411[_0x0cee('0x73')],util[_0x0cee('0x44')](_0x152411,{'showHidden':![],'depth':null}));if(this[_0x0cee('0x12')][_0x152411[_0x0cee('0x73')]]){var _0x42bbfd=_['last'](this[_0x0cee('0x12')][_0x152411[_0x0cee('0x73')]]);if(!_['isNil'](_0x42bbfd[_0x0cee('0x88')])){_0x42bbfd[_0x0cee('0xe1')]=moment()['format'](_0x0cee('0x83'));logger[_0x0cee('0x69')](_0x0cee('0xe2'),_0x152411['uniqueid'],_0x42bbfd[_0x0cee('0xe1')]);}}}}catch(_0x13721c){logger[_0x0cee('0x43')]('[%s][voiceQueueReport][musiconholdstart]',_0x152411[_0x0cee('0x73')],util[_0x0cee('0x44')](_0x13721c,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x0cee('0xd')][_0x0cee('0x2f')]=function(_0x7d2b38){try{if(this[_0x0cee('0x66')](_0x7d2b38)){logger[_0x0cee('0x4a')](_0x0cee('0xe3'),_0x7d2b38[_0x0cee('0x73')],util[_0x0cee('0x44')](_0x7d2b38,{'showHidden':![],'depth':null}));if(this[_0x0cee('0x12')][_0x7d2b38['uniqueid']]){var _0x58c94a=_[_0x0cee('0x8c')](this[_0x0cee('0x12')][_0x7d2b38[_0x0cee('0x73')]]);if(!_[_0x0cee('0xc0')](_0x58c94a[_0x0cee('0xe1')])){_0x58c94a['mohtime']+=moment()['milliseconds'](0x0)[_0x0cee('0xc5')](_0x58c94a[_0x0cee('0xe1')],_0x0cee('0x9d'));logger['info']('[%s][voiceQueueReport][musiconholdstop]\x20mohtime:%s',_0x7d2b38[_0x0cee('0x73')],_0x58c94a[_0x0cee('0xe4')]);delete _0x58c94a[_0x0cee('0xe1')];}}}}catch(_0x1ac377){logger[_0x0cee('0x43')](_0x0cee('0xe3'),_0x7d2b38['uniqueid'],util[_0x0cee('0x44')](_0x1ac377,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x0cee('0xd')][_0x0cee('0x2b')]=function(_0x47fcd4){try{if(this[_0x0cee('0x66')](_0x47fcd4)){logger['debug'](_0x0cee('0xe5'),_0x47fcd4['uniqueid'],util['inspect'](_0x47fcd4,{'showHidden':![],'depth':null}));if(_0x47fcd4[_0x0cee('0xe6')][_0x0cee('0x99')]()==='set'){_0x47fcd4[_0x0cee('0xe7')]=_0x47fcd4[_0x0cee('0xe8')]&&_0x47fcd4[_0x0cee('0xe8')][_0x0cee('0x97')](_0x0cee('0xe9'))?_0x47fcd4[_0x0cee('0xe8')]:(_0x47fcd4[_0x0cee('0xe8')]||_0x47fcd4[_0x0cee('0xe7')])[_0x0cee('0x99')]();if(_[_0x0cee('0x97')](_0x47fcd4['applicationdata'][_0x0cee('0x99')](),_0x0cee('0xea'))){logger[_0x0cee('0x69')](_0x0cee('0xeb'),_0x47fcd4[_0x0cee('0x73')],_0x47fcd4[_0x0cee('0xe6')],_0x47fcd4['applicationdata']);if(_['isUndefined'](this[_0x0cee('0x3c')][_0x47fcd4[_0x0cee('0x73')]]))this[_0x0cee('0x3c')][_0x47fcd4['uniqueid']]={};var _0x1c0c95=_0x47fcd4[_0x0cee('0xe7')][_0x0cee('0xec')]('=');var _0xdb984b=_0x1c0c95[0x0][_0x0cee('0x99')]()[_0x0cee('0xed')](/cdr\((.*)\)/);if(_0xdb984b)this[_0x0cee('0x3c')][_0x47fcd4[_0x0cee('0x73')]][_0xdb984b[0x1]]=_0x1c0c95[0x1];}}}}catch(_0x22c811){logger[_0x0cee('0x43')](_0x0cee('0xee'),_0x47fcd4[_0x0cee('0x73')],util['inspect'](_0x22c811,{'showHidden':![],'depth':null}));}};module[_0x0cee('0xef')]=VoiceQueueReport;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcf98=['CreateReportAgentPreview','createHistory','campaign','queue','Request'];(function(_0x5be442,_0x34956d){var _0x3566ac=function(_0x3e0dbb){while(--_0x3e0dbb){_0x5be442['push'](_0x5be442['shift']());}};_0x3566ac(++_0x34956d);}(_0xcf98,0x16e));var _0x8cf9=function(_0x402a97,_0x303d97){_0x402a97=_0x402a97-0x0;var _0x48e522=_0xcf98[_0x402a97];return _0x48e522;};'use strict';var client=require('../client');exports[_0x8cf9('0x0')]=function(_0xd7744f){return function(){_0xd7744f[_0x8cf9('0x1')]=_0xd7744f[_0x8cf9('0x2')];return client[_0x8cf9('0x3')](_0x8cf9('0x4'),{'body':_0xd7744f,'log':'CreateReportAgentPreview'});};};
\ No newline at end of file
+var _0xe1d3=['queue','Request','CreateReportAgentPreview'];(function(_0x21a9d9,_0x4d5ac8){var _0x46adce=function(_0xfdd336){while(--_0xfdd336){_0x21a9d9['push'](_0x21a9d9['shift']());}};_0x46adce(++_0x4d5ac8);}(_0xe1d3,0x10b));var _0x3e1d=function(_0x1e4276,_0x576ed1){_0x1e4276=_0x1e4276-0x0;var _0x334224=_0xe1d3[_0x1e4276];return _0x334224;};'use strict';var client=require('../client');exports['createHistory']=function(_0x4d0797){return function(){_0x4d0797['campaign']=_0x4d0797[_0x3e1d('0x0')];return client[_0x3e1d('0x1')](_0x3e1d('0x2'),{'body':_0x4d0797,'log':_0x3e1d('0x2')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3eea=['CreateAttachment','../client','create'];(function(_0x4fa214,_0x2a20d0){var _0x3b9abe=function(_0x55971){while(--_0x55971){_0x4fa214['push'](_0x4fa214['shift']());}};_0x3b9abe(++_0x2a20d0);}(_0x3eea,0x1bd));var _0xa3ee=function(_0x49755c,_0x63d038){_0x49755c=_0x49755c-0x0;var _0x4e2d16=_0x3eea[_0x49755c];return _0x4e2d16;};'use strict';var client=require(_0xa3ee('0x0'));exports[_0xa3ee('0x1')]=function(_0x6d37b6){return client['Request'](_0xa3ee('0x2'),{'body':_0x6d37b6,'log':_0xa3ee('0x2')});};
\ No newline at end of file
+var _0x2127=['Request','CreateAttachment','../client','create'];(function(_0x6131cd,_0x4c26a1){var _0x47e916=function(_0x1f2bce){while(--_0x1f2bce){_0x6131cd['push'](_0x6131cd['shift']());}};_0x47e916(++_0x4c26a1);}(_0x2127,0x8a));var _0x7212=function(_0x11f54a,_0xa4de5e){_0x11f54a=_0x11f54a-0x0;var _0x270f03=_0x2127[_0x11f54a];return _0x270f03;};'use strict';var client=require(_0x7212('0x0'));exports[_0x7212('0x1')]=function(_0xa8f8f8){return client[_0x7212('0x2')](_0x7212('0x3'),{'body':_0xa8f8f8,'log':_0x7212('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(_0x13ea00,_0x12f610){var _0x1f7347=function(_0x34ae63){while(--_0x34ae63){_0x13ea00['push'](_0x13ea00['shift']());}};_0x1f7347(++_0x12f610);}(_0x5f2f,0x73));var _0xf5f2=function(_0x4f1ded,_0x40f1de){_0x4f1ded=_0x4f1ded-0x0;var _0x5824cf=_0x5f2f[_0x4f1ded];return _0x5824cf;};'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 _0x2ef3=['dialNoSuchNumberMaxRetry','dialNoSuchNumberRetryFrequency','dialDropMaxRetry','dialDropRetryFrequency','dialAbandonedMaxRetry','dialAbandonedRetryFrequency','dialAgentRejectMaxRetry','dialAgentRejectRetryFrequency','dialTimezone','dialGlobalInterval','dialAMDInitialSilence','dialAMDAfterGreetingSilence','dialAMDMinWordLength','dialAMDBetweenWordsSilence','dialAMDMaximumWordLength','dialPrefix','dialRandomLastDigitCallerIdNumber','dialCutDigit','Trunk','active','TrunkBackup','Interval','Intervals','interval','SquareProject','getCampaign','../client','getCampaigns','Request','GetCampaign','name','type','limitCalls','dialOriginateCallerIdName','dialOriginateTimeout','dialCongestionMaxRetry','dialBusyRetryFrequency','dialNoAnswerMaxRetry','dialNoAnswerRetryFrequency','dialGlobalMaxRetry'];(function(_0x44474f,_0x431580){var _0x427d97=function(_0x53f7d4){while(--_0x53f7d4){_0x44474f['push'](_0x44474f['shift']());}};_0x427d97(++_0x431580);}(_0x2ef3,0xba));var _0x32ef=function(_0x479c6b,_0x493edd){_0x479c6b=_0x479c6b-0x0;var _0x478606=_0x2ef3[_0x479c6b];return _0x478606;};'use strict';var client=require(_0x32ef('0x0'));exports[_0x32ef('0x1')]=function(){return function(){return client[_0x32ef('0x2')](_0x32ef('0x3'),{'options':{'raw':![],'attributes':['id',_0x32ef('0x4'),_0x32ef('0x5'),'active',_0x32ef('0x6'),_0x32ef('0x7'),'dialOriginateCallerIdNumber',_0x32ef('0x8'),_0x32ef('0x9'),'dialCongestionRetryFrequency','dialBusyMaxRetry',_0x32ef('0xa'),_0x32ef('0xb'),_0x32ef('0xc'),_0x32ef('0xd'),_0x32ef('0xe'),_0x32ef('0xf'),_0x32ef('0x10'),_0x32ef('0x11'),_0x32ef('0x12'),_0x32ef('0x13'),'dialMachineMaxRetry','dialMachineRetryFrequency',_0x32ef('0x14'),_0x32ef('0x15'),_0x32ef('0x16'),_0x32ef('0x17'),'dialAMDActive',_0x32ef('0x18'),'dialAMDGreeting',_0x32ef('0x19'),'dialAMDTotalAnalysisTime',_0x32ef('0x1a'),_0x32ef('0x1b'),'dialAMDMaximumNumberOfWords','dialAMDSilenceThreshold',_0x32ef('0x1c'),'dialOrderByScheduledAt',_0x32ef('0x1d'),_0x32ef('0x1e'),_0x32ef('0x1f')],'include':[{'model':_0x32ef('0x20'),'as':'Trunk','attributes':['id','name','callerid',_0x32ef('0x21')]},{'model':_0x32ef('0x20'),'as':_0x32ef('0x22'),'attributes':['id','name','callerid',_0x32ef('0x21')]},{'model':_0x32ef('0x23'),'as':_0x32ef('0x23'),'attributes':['id','name'],'include':[{'model':_0x32ef('0x23'),'as':_0x32ef('0x24'),'attributes':['id','name',_0x32ef('0x25')]}]},{'model':_0x32ef('0x26'),'as':_0x32ef('0x26'),'attributes':['id',_0x32ef('0x4')]}]},'log':_0x32ef('0x27')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5891=['GetCmContact','../client','CreateCmContact','getContacts','Request'];(function(_0x1d2248,_0x2b2c0d){var _0xc946a9=function(_0x39045b){while(--_0x39045b){_0x1d2248['push'](_0x1d2248['shift']());}};_0xc946a9(++_0x2b2c0d);}(_0x5891,0x19b));var _0x1589=function(_0x5b5fd9,_0x5a9265){_0x5b5fd9=_0x5b5fd9-0x0;var _0x1cd8e8=_0x5891[_0x5b5fd9];return _0x1cd8e8;};'use strict';var client=require(_0x1589('0x0'));exports['createContact']=function(_0xd431f6){return function(){return client['Request'](_0x1589('0x1'),{'body':_0xd431f6,'log':_0x1589('0x1')});};};exports[_0x1589('0x2')]=function(_0x51c2ee){return function(){return client[_0x1589('0x3')]('GetCmContact',{'options':_0x51c2ee,'log':_0x1589('0x4')});};};
\ No newline at end of file
+var _0xaf1c=['CreateCmContact','getContacts','GetCmContact','createContact','Request'];(function(_0x442b40,_0x4bd655){var _0x1b7d24=function(_0x367d72){while(--_0x367d72){_0x442b40['push'](_0x442b40['shift']());}};_0x1b7d24(++_0x4bd655);}(_0xaf1c,0x166));var _0xcaf1=function(_0x30d741,_0xdf9600){_0x30d741=_0x30d741-0x0;var _0x252b78=_0xaf1c[_0x30d741];return _0x252b78;};'use strict';var client=require('../client');exports[_0xcaf1('0x0')]=function(_0x51dbb2){return function(){return client[_0xcaf1('0x1')](_0xcaf1('0x2'),{'body':_0x51dbb2,'log':'CreateCmContact'});};};exports[_0xcaf1('0x3')]=function(_0x36cbbc){return function(){return client[_0xcaf1('0x1')](_0xcaf1('0x4'),{'options':_0x36cbbc,'log':_0xcaf1('0x4')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x79d3=['countReScheduled','CountReScheduled','getContactPreview','GetCmHopperPreview','name','VoiceQueue','Queue','unlockContact','getContactRecallMe','GetContactRecallMe','User','Agent','voicePause','db.CmHopper.UserId','../client','moment','lodash','getContacts','Request','GetCmHopper','Contact','getCmHopper','updateContacts','UpdateCmHopper','format','YYYY-MM-DD\x20HH:mm:ss','ContactId','ListId','CampaignId','destroyContact','DestroyCmHopper','getContactDialer','GetContactDialer','priority','DESC','scheduledat','ASC','getContactDialerIvr','CmContact','GetContactDialerIvr','campaign','MoveContactManagedDialer','VoiceQueueId'];(function(_0x42daf6,_0x3e7433){var _0x3d1c72=function(_0x5aa5fa){while(--_0x5aa5fa){_0x42daf6['push'](_0x42daf6['shift']());}};_0x3d1c72(++_0x3e7433);}(_0x79d3,0x166));var _0x379d=function(_0x1a68ec,_0x2ab029){_0x1a68ec=_0x1a68ec-0x0;var _0x59ecde=_0x79d3[_0x1a68ec];return _0x59ecde;};'use strict';var client=require(_0x379d('0x0'));var moment=require(_0x379d('0x1'));var _=require(_0x379d('0x2'));exports[_0x379d('0x3')]=function(_0x335101,_0x1aa99f){return function(){return client[_0x379d('0x4')](_0x379d('0x5'),{'options':{'where':{'VoiceQueueId':_0x335101},'include':[{'model':'CmContact','as':_0x379d('0x6')}],'limit':_0x1aa99f,'raw':![]},'log':_0x379d('0x7')});};};exports[_0x379d('0x8')]=function(_0x1dda96,_0x5ada07,_0x22335a){return function(){return client[_0x379d('0x4')](_0x379d('0x9'),{'body':_0x1dda96,'options':{'where':{'VoiceQueueId':_0x5ada07,'scheduledat':{'$lte':moment()[_0x379d('0xa')](_0x379d('0xb'))}},'limit':_0x22335a},'log':'UpdateCmHopper'});};};exports['rescheduleContact']=function(_0x25ad43){return function(){return client[_0x379d('0x4')]('UpdateCmHopper',{'body':_0x25ad43,'options':{'where':{'ContactId':_0x25ad43[_0x379d('0xc')],'ListId':_0x25ad43[_0x379d('0xd')],'VoiceQueueId':_0x25ad43['VoiceQueueId'],'CampaignId':_0x25ad43[_0x379d('0xe')]}},'log':'rescheduleContact'});};};exports[_0x379d('0xf')]=function(_0x161ce8,_0x59da01,_0x40fcde){return function(){return client['Request'](_0x379d('0x10'),{'options':{'where':{'VoiceQueueId':_0x161ce8,'ListId':_0x59da01,'ContactId':_0x40fcde}},'log':_0x379d('0x10')});};};exports[_0x379d('0x11')]=function(_0x1ee809,_0xe58928,_0x1f2052,_0x11a2f4){return function(){return client[_0x379d('0x4')](_0x379d('0x12'),{'body':{'active':!![]},'options':{'where':{'VoiceQueueId':_0x1ee809,'active':![],'scheduledat':{'$lte':moment()['format'](_0x379d('0xb'))},'$or':[{'UserId':null},{'UserId':{'$in':_0xe58928}}]},'order':[[_0x379d('0x13'),_0x379d('0x14')],[_0x379d('0x15'),_0x11a2f4],['id',_0x379d('0x16')]],'raw':!![],'limit':_0x1f2052},'log':_0x379d('0x12')});};};exports[_0x379d('0x17')]=function(_0x173a1e,_0x2844f1,_0x3afe0d){return function(){return client[_0x379d('0x4')]('GetContactDialer',{'body':{'active':!![]},'options':{'where':{'CampaignId':_0x173a1e,'active':![],'scheduledat':{'$lte':moment()[_0x379d('0xa')](_0x379d('0xb'))}},'include':[{'model':_0x379d('0x18'),'as':_0x379d('0x6')}],'order':[[_0x379d('0x13'),_0x379d('0x14')],['scheduledat',_0x3afe0d],['id',_0x379d('0x16')]],'raw':!![],'limit':_0x2844f1},'log':_0x379d('0x19')});};};exports['moveContactManagedDialer']=function(_0x422083,_0x2df5bf){return function(){_0x422083[_0x379d('0x1a')]=_0x422083['queue'];return client[_0x379d('0x4')](_0x379d('0x1b'),{'body':_0x422083,'options':{'where':{'ContactId':_0x422083['ContactId'],'ListId':_0x422083[_0x379d('0xd')],'VoiceQueueId':_0x422083[_0x379d('0x1c')],'CampaignId':_0x422083[_0x379d('0xe')],'active':_0x2df5bf?undefined:!![]}},'log':_0x379d('0x1b')});};};exports[_0x379d('0x1d')]=function(_0x2d58a6){return function(){return client[_0x379d('0x4')](_0x379d('0x1e'),{'options':{'where':{'VoiceQueueId':_0x2d58a6['id']?_0x2d58a6['id']||null:null}},'log':'countReScheduled'});};};exports[_0x379d('0x1f')]=function(_0x503994){return function(){return client[_0x379d('0x4')](_0x379d('0x20'),{'options':{'where':{'id':_0x503994},'include':[{'model':_0x379d('0x18'),'as':_0x379d('0x6')},{'model':'User','as':'Agent','attributes':['id',_0x379d('0x21')]},{'model':_0x379d('0x22'),'as':_0x379d('0x23'),'attributes':['id','name']}],'raw':!![]},'log':_0x379d('0x7')});};};exports[_0x379d('0x24')]=function(_0x425fb3,_0x1a4257,_0x410ce5){return function(){return client['Request']('UpdateCmHopper',{'body':_0x425fb3,'options':{'where':{'id':_0x1a4257},'limit':_0x410ce5},'log':_0x379d('0x9')});};};exports[_0x379d('0x25')]=function(_0x583047,_0x24787a){return function(){return client[_0x379d('0x4')](_0x379d('0x26'),{'body':{'active':!![]},'options':{'where':{'VoiceQueueId':_0x583047,'active':![],'recallme':!![],'scheduledat':{'$lte':moment()[_0x379d('0xa')]('YYYY-MM-DD\x20HH:mm:ss')},'UserId':{'$in':_0x24787a}},'order':[[_0x379d('0x13'),_0x379d('0x14')],[_0x379d('0x15'),_0x379d('0x14')],['id','ASC']],'include':[{'model':'CmContact','as':_0x379d('0x6')},{'model':_0x379d('0x27'),'as':_0x379d('0x28'),'attributes':['id',_0x379d('0x21'),_0x379d('0x29')]}],'group':_0x379d('0x2a'),'raw':!![]},'log':'GetContactDialer'});};};
\ No newline at end of file
+var _0xd229=['unlockContact','getContactRecallMe','GetContactRecallMe','../client','moment','lodash','getContacts','Request','CmContact','Contact','getCmHopper','UpdateCmHopper','format','YYYY-MM-DD\x20HH:mm:ss','rescheduleContact','ContactId','VoiceQueueId','DestroyCmHopper','getContactDialer','GetContactDialer','priority','DESC','scheduledat','getContactDialerIvr','ASC','campaign','MoveContactManagedDialer','ListId','CampaignId','CountReScheduled','countReScheduled','getContactPreview','GetCmHopperPreview','Agent','name','VoiceQueue','Queue'];(function(_0x1c46c5,_0x41bc70){var _0x4e403c=function(_0x8cf318){while(--_0x8cf318){_0x1c46c5['push'](_0x1c46c5['shift']());}};_0x4e403c(++_0x41bc70);}(_0xd229,0x72));var _0x9d22=function(_0x4d82ea,_0x4d459f){_0x4d82ea=_0x4d82ea-0x0;var _0x257f4a=_0xd229[_0x4d82ea];return _0x257f4a;};'use strict';var client=require(_0x9d22('0x0'));var moment=require(_0x9d22('0x1'));var _=require(_0x9d22('0x2'));exports[_0x9d22('0x3')]=function(_0x550e51,_0x586ceb){return function(){return client[_0x9d22('0x4')]('GetCmHopper',{'options':{'where':{'VoiceQueueId':_0x550e51},'include':[{'model':_0x9d22('0x5'),'as':_0x9d22('0x6')}],'limit':_0x586ceb,'raw':![]},'log':_0x9d22('0x7')});};};exports['updateContacts']=function(_0xae6427,_0x44705e,_0x2be09d){return function(){return client['Request'](_0x9d22('0x8'),{'body':_0xae6427,'options':{'where':{'VoiceQueueId':_0x44705e,'scheduledat':{'$lte':moment()[_0x9d22('0x9')](_0x9d22('0xa'))}},'limit':_0x2be09d},'log':_0x9d22('0x8')});};};exports[_0x9d22('0xb')]=function(_0x2f8790){return function(){return client[_0x9d22('0x4')](_0x9d22('0x8'),{'body':_0x2f8790,'options':{'where':{'ContactId':_0x2f8790[_0x9d22('0xc')],'ListId':_0x2f8790['ListId'],'VoiceQueueId':_0x2f8790[_0x9d22('0xd')],'CampaignId':_0x2f8790['CampaignId']}},'log':_0x9d22('0xb')});};};exports['destroyContact']=function(_0x3f2d3c,_0x1c8351,_0x31cd5c){return function(){return client[_0x9d22('0x4')](_0x9d22('0xe'),{'options':{'where':{'VoiceQueueId':_0x3f2d3c,'ListId':_0x1c8351,'ContactId':_0x31cd5c}},'log':_0x9d22('0xe')});};};exports[_0x9d22('0xf')]=function(_0x1bd1d3,_0x2a2afd,_0x98565c,_0x4adbd3){return function(){return client[_0x9d22('0x4')](_0x9d22('0x10'),{'body':{'active':!![]},'options':{'where':{'VoiceQueueId':_0x1bd1d3,'active':![],'scheduledat':{'$lte':moment()[_0x9d22('0x9')](_0x9d22('0xa'))},'$or':[{'UserId':null},{'UserId':{'$in':_0x2a2afd}}]},'order':[[_0x9d22('0x11'),_0x9d22('0x12')],[_0x9d22('0x13'),_0x4adbd3],['id','ASC']],'raw':!![],'limit':_0x98565c},'log':_0x9d22('0x10')});};};exports[_0x9d22('0x14')]=function(_0x372b7e,_0xf8b206,_0x25e623){return function(){return client[_0x9d22('0x4')](_0x9d22('0x10'),{'body':{'active':!![]},'options':{'where':{'CampaignId':_0x372b7e,'active':![],'scheduledat':{'$lte':moment()[_0x9d22('0x9')](_0x9d22('0xa'))}},'include':[{'model':'CmContact','as':_0x9d22('0x6')}],'order':[[_0x9d22('0x11'),_0x9d22('0x12')],[_0x9d22('0x13'),_0x25e623],['id',_0x9d22('0x15')]],'raw':!![],'limit':_0xf8b206},'log':'GetContactDialerIvr'});};};exports['moveContactManagedDialer']=function(_0x1d419a,_0x4edf18){return function(){_0x1d419a[_0x9d22('0x16')]=_0x1d419a['queue'];return client[_0x9d22('0x4')](_0x9d22('0x17'),{'body':_0x1d419a,'options':{'where':{'ContactId':_0x1d419a['ContactId'],'ListId':_0x1d419a[_0x9d22('0x18')],'VoiceQueueId':_0x1d419a[_0x9d22('0xd')],'CampaignId':_0x1d419a[_0x9d22('0x19')],'active':_0x4edf18?undefined:!![]}},'log':_0x9d22('0x17')});};};exports['countReScheduled']=function(_0x42c3aa){return function(){return client[_0x9d22('0x4')](_0x9d22('0x1a'),{'options':{'where':{'VoiceQueueId':_0x42c3aa['id']?_0x42c3aa['id']||null:null}},'log':_0x9d22('0x1b')});};};exports[_0x9d22('0x1c')]=function(_0x1469f7){return function(){return client[_0x9d22('0x4')](_0x9d22('0x1d'),{'options':{'where':{'id':_0x1469f7},'include':[{'model':_0x9d22('0x5'),'as':'Contact'},{'model':'User','as':_0x9d22('0x1e'),'attributes':['id',_0x9d22('0x1f')]},{'model':_0x9d22('0x20'),'as':_0x9d22('0x21'),'attributes':['id',_0x9d22('0x1f')]}],'raw':!![]},'log':'getCmHopper'});};};exports[_0x9d22('0x22')]=function(_0x61968,_0x12368b,_0x4c19e4){return function(){return client['Request']('UpdateCmHopper',{'body':_0x61968,'options':{'where':{'id':_0x12368b},'limit':_0x4c19e4},'log':_0x9d22('0x8')});};};exports[_0x9d22('0x23')]=function(_0x277583,_0x590e11){return function(){return client[_0x9d22('0x4')](_0x9d22('0x24'),{'body':{'active':!![]},'options':{'where':{'VoiceQueueId':_0x277583,'active':![],'recallme':!![],'scheduledat':{'$lte':moment()[_0x9d22('0x9')](_0x9d22('0xa'))},'UserId':{'$in':_0x590e11}},'order':[[_0x9d22('0x11'),_0x9d22('0x12')],['scheduledat',_0x9d22('0x12')],['id',_0x9d22('0x15')]],'include':[{'model':'CmContact','as':_0x9d22('0x6')},{'model':'User','as':'Agent','attributes':['id',_0x9d22('0x1f'),'voicePause']}],'group':'db.CmHopper.UserId','raw':!![]},'log':_0x9d22('0x10')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0abf=['GetCmHopperBlackIvr','../client','Request','Contact','GetCmHopperBlack','checkIsBlackListIvr','CampaignId'];(function(_0x386a45,_0x2ea690){var _0x489138=function(_0x4e1d71){while(--_0x4e1d71){_0x386a45['push'](_0x386a45['shift']());}};_0x489138(++_0x2ea690);}(_0x0abf,0xe8));var _0xf0ab=function(_0x2f5ac5,_0x1ee939){_0x2f5ac5=_0x2f5ac5-0x0;var _0x37c9a8=_0x0abf[_0x2f5ac5];return _0x37c9a8;};'use strict';var client=require(_0xf0ab('0x0'));exports['checkIsBlackList']=function(_0x4698fb){return function(){return client[_0xf0ab('0x1')]('GetCmHopperBlack',{'options':{'where':{'VoiceQueueId':_0x4698fb['VoiceQueueId'],'phone':_0x4698fb[_0xf0ab('0x2')]['phone']},'raw':![]},'log':_0xf0ab('0x3')});};};exports[_0xf0ab('0x4')]=function(_0x2efe43){return function(){return client[_0xf0ab('0x1')](_0xf0ab('0x3'),{'options':{'where':{'CampaignId':_0x2efe43[_0xf0ab('0x5')],'phone':_0x2efe43[_0xf0ab('0x2')]['phone']},'raw':![]},'log':_0xf0ab('0x6')});};};
\ No newline at end of file
+var _0x1c9a=['GetCmHopperBlack','VoiceQueueId','Contact','checkIsBlackListIvr','Request','CampaignId','phone','GetCmHopperBlackIvr','../client'];(function(_0x1d7c02,_0x470ef0){var _0x35f733=function(_0x35285d){while(--_0x35285d){_0x1d7c02['push'](_0x1d7c02['shift']());}};_0x35f733(++_0x470ef0);}(_0x1c9a,0x98));var _0xa1c9=function(_0x1f7fff,_0x4d4f9a){_0x1f7fff=_0x1f7fff-0x0;var _0x31e9c1=_0x1c9a[_0x1f7fff];return _0x31e9c1;};'use strict';var client=require(_0xa1c9('0x0'));exports['checkIsBlackList']=function(_0x470dcd){return function(){return client['Request'](_0xa1c9('0x1'),{'options':{'where':{'VoiceQueueId':_0x470dcd[_0xa1c9('0x2')],'phone':_0x470dcd[_0xa1c9('0x3')]['phone']},'raw':![]},'log':_0xa1c9('0x1')});};};exports[_0xa1c9('0x4')]=function(_0x20f0bf){return function(){return client[_0xa1c9('0x5')]('GetCmHopperBlack',{'options':{'where':{'CampaignId':_0x20f0bf[_0xa1c9('0x6')],'phone':_0x20f0bf['Contact'][_0xa1c9('0x7')]},'raw':![]},'log':_0xa1c9('0x8')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0d90=['CreateCmHopperFinal','../client','campaign','Request'];(function(_0x3ed881,_0x64f75a){var _0x436d18=function(_0x129b8f){while(--_0x129b8f){_0x3ed881['push'](_0x3ed881['shift']());}};_0x436d18(++_0x64f75a);}(_0x0d90,0x169));var _0x00d9=function(_0x415caa,_0x16f3ef){_0x415caa=_0x415caa-0x0;var _0x2cbb20=_0x0d90[_0x415caa];return _0x2cbb20;};'use strict';var client=require(_0x00d9('0x0'));exports['createContact']=function(_0x195687){return function(){_0x195687[_0x00d9('0x1')]=_0x195687['queue'];return client[_0x00d9('0x2')](_0x00d9('0x3'),{'body':_0x195687,'log':'CreateCmHopperFinal'});};};
\ No newline at end of file
+var _0x3fcb=['CreateCmHopperFinal','createContact','queue','Request'];(function(_0x254f47,_0x4bef5f){var _0x13e1e2=function(_0x196fda){while(--_0x196fda){_0x254f47['push'](_0x254f47['shift']());}};_0x13e1e2(++_0x4bef5f);}(_0x3fcb,0x165));var _0xb3fc=function(_0x6c993a,_0x5ea3ab){_0x6c993a=_0x6c993a-0x0;var _0x27f547=_0x3fcb[_0x6c993a];return _0x27f547;};'use strict';var client=require('../client');exports[_0xb3fc('0x0')]=function(_0x4cde93){return function(){_0x4cde93['campaign']=_0x4cde93[_0xb3fc('0x1')];return client[_0xb3fc('0x2')](_0xb3fc('0x3'),{'body':_0x4cde93,'log':_0xb3fc('0x3')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbe70=['GetCmHopperHistory','getVoiceQueueHopperHistory','GetVoiceQueueHopperHistory','day','endOf','queue','getCampaignHopperHistory','GetCampaignHopperHistory','../client','createHistory','campaign','Request','avgHandleTime','AvgHandleTime','subtract','format','YYYY-MM-DD\x20HH:mm:ss'];(function(_0xee2e7a,_0x58354d){var _0x319dd3=function(_0xa99240){while(--_0xa99240){_0xee2e7a['push'](_0xee2e7a['shift']());}};_0x319dd3(++_0x58354d);}(_0xbe70,0x118));var _0x0be7=function(_0x201f73,_0x3387ba){_0x201f73=_0x201f73-0x0;var _0x475c47=_0xbe70[_0x201f73];return _0x475c47;};'use strict';var client=require(_0x0be7('0x0'));var moment=require('moment');exports[_0x0be7('0x1')]=function(_0x3844e0){return function(){_0x3844e0[_0x0be7('0x2')]=_0x3844e0['queue'];return client[_0x0be7('0x3')]('CreateCmHopperHistory',{'body':_0x3844e0,'log':'CreateCmHopperHistory'});};};exports[_0x0be7('0x4')]=function(_0xd628a1){return function(){return client[_0x0be7('0x3')](_0x0be7('0x5'),{'options':{'where':{'endtime':{'$between':[moment()[_0x0be7('0x6')](_0xd628a1,'minutes')[_0x0be7('0x7')]('YYYY-MM-DD\x20HH:mm:ss'),moment()[_0x0be7('0x7')](_0x0be7('0x8'))]}},'raw':![]},'log':_0x0be7('0x9')});};};exports[_0x0be7('0xa')]=function(_0x323e76){return function(){return client['Request'](_0x0be7('0xb'),{'options':{'where':{'createdAt':{'$between':[moment()['startOf'](_0x0be7('0xc'))[_0x0be7('0x7')](_0x0be7('0x8')),moment()[_0x0be7('0xd')](_0x0be7('0xc'))[_0x0be7('0x7')]('YYYY-MM-DD\x20HH:mm:ss')]},'campaigntype':_0x0be7('0xe')},'raw':![]},'log':_0x0be7('0xb')});};};exports[_0x0be7('0xf')]=function(_0x2be0a3){return function(){return client[_0x0be7('0x3')](_0x0be7('0x10'),{'options':{'where':{'createdAt':{'$between':[moment()['startOf'](_0x0be7('0xc'))[_0x0be7('0x7')]('YYYY-MM-DD\x20HH:mm:ss'),moment()[_0x0be7('0xd')](_0x0be7('0xc'))[_0x0be7('0x7')](_0x0be7('0x8'))]},'campaigntype':'ivr'},'raw':![]},'log':_0x0be7('0x10')});};};
\ No newline at end of file
+var _0x9d9d=['endOf','queue','GetCampaignHopperHistory','ivr','../client','moment','createHistory','campaign','Request','CreateCmHopperHistory','avgHandleTime','AvgHandleTime','subtract','minutes','YYYY-MM-DD\x20HH:mm:ss','GetCmHopperHistory','GetVoiceQueueHopperHistory','startOf','day','format'];(function(_0x389a03,_0x380e6c){var _0xaf19ea=function(_0x3b93b1){while(--_0x3b93b1){_0x389a03['push'](_0x389a03['shift']());}};_0xaf19ea(++_0x380e6c);}(_0x9d9d,0x11c));var _0xd9d9=function(_0x5050ef,_0x19e15a){_0x5050ef=_0x5050ef-0x0;var _0x94ef5d=_0x9d9d[_0x5050ef];return _0x94ef5d;};'use strict';var client=require(_0xd9d9('0x0'));var moment=require(_0xd9d9('0x1'));exports[_0xd9d9('0x2')]=function(_0x552f1a){return function(){_0x552f1a[_0xd9d9('0x3')]=_0x552f1a['queue'];return client[_0xd9d9('0x4')](_0xd9d9('0x5'),{'body':_0x552f1a,'log':_0xd9d9('0x5')});};};exports[_0xd9d9('0x6')]=function(_0x2edb0a){return function(){return client[_0xd9d9('0x4')](_0xd9d9('0x7'),{'options':{'where':{'endtime':{'$between':[moment()[_0xd9d9('0x8')](_0x2edb0a,_0xd9d9('0x9'))['format'](_0xd9d9('0xa')),moment()['format'](_0xd9d9('0xa'))]}},'raw':![]},'log':_0xd9d9('0xb')});};};exports['getVoiceQueueHopperHistory']=function(_0x1154fc){return function(){return client[_0xd9d9('0x4')](_0xd9d9('0xc'),{'options':{'where':{'createdAt':{'$between':[moment()[_0xd9d9('0xd')](_0xd9d9('0xe'))[_0xd9d9('0xf')]('YYYY-MM-DD\x20HH:mm:ss'),moment()[_0xd9d9('0x10')](_0xd9d9('0xe'))[_0xd9d9('0xf')](_0xd9d9('0xa'))]},'campaigntype':_0xd9d9('0x11')},'raw':![]},'log':_0xd9d9('0xc')});};};exports['getCampaignHopperHistory']=function(_0x332227){return function(){return client[_0xd9d9('0x4')](_0xd9d9('0x12'),{'options':{'where':{'createdAt':{'$between':[moment()[_0xd9d9('0xd')](_0xd9d9('0xe'))[_0xd9d9('0xf')](_0xd9d9('0xa')),moment()[_0xd9d9('0x10')](_0xd9d9('0xe'))['format'](_0xd9d9('0xa'))]},'campaigntype':_0xd9d9('0x13')},'raw':![]},'log':'GetCampaignHopperHistory'});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1c01=['modem','gateway','t38timeout','TrunkId','key','Trunk','active','notify','NotifyFaxAccount','../client','getFaxAccounts','Request','GetFaxAccount','description','localstationid','minrate','maxrate'];(function(_0x51edc8,_0x331bc5){var _0x49eb97=function(_0x4fdf61){while(--_0x4fdf61){_0x51edc8['push'](_0x51edc8['shift']());}};_0x49eb97(++_0x331bc5);}(_0x1c01,0x190));var _0x11c0=function(_0x4416b3,_0x1d7d31){_0x4416b3=_0x4416b3-0x0;var _0x15f113=_0x1c01[_0x4416b3];return _0x15f113;};'use strict';var client=require(_0x11c0('0x0'));exports[_0x11c0('0x1')]=function(){return function(){return client[_0x11c0('0x2')](_0x11c0('0x3'),{'options':{'raw':![],'attributes':['id','name',_0x11c0('0x4'),'ecm','headerinfo',_0x11c0('0x5'),_0x11c0('0x6'),_0x11c0('0x7'),_0x11c0('0x8'),_0x11c0('0x9'),'faxdetect',_0x11c0('0xa'),'tech',_0x11c0('0xb'),'ListId',_0x11c0('0xc')],'include':[{'model':'Trunk','as':_0x11c0('0xd'),'attributes':['id','name','callerid',_0x11c0('0xe')]}]},'log':'getFaxAccount'});};};exports[_0x11c0('0xf')]=function(_0x39b2ac,_0xc36416){return client[_0x11c0('0x2')](_0x11c0('0x10'),{'account':{'id':_0x39b2ac},'body':_0xc36416,'log':'NotifyFaxAccount'});};
\ No newline at end of file
+var _0x0e21=['Trunk','getFaxAccount','notify','NotifyFaxAccount','getFaxAccounts','Request','GetFaxAccount','description','ecm','headerinfo','maxrate','modem','gateway','faxdetect','t38timeout','tech','TrunkId','ListId','key'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x0e21,0xe8));var _0x10e2=function(_0x2e1c6d,_0x53723b){_0x2e1c6d=_0x2e1c6d-0x0;var _0x10fe97=_0x0e21[_0x2e1c6d];return _0x10fe97;};'use strict';var client=require('../client');exports[_0x10e2('0x0')]=function(){return function(){return client[_0x10e2('0x1')](_0x10e2('0x2'),{'options':{'raw':![],'attributes':['id','name',_0x10e2('0x3'),_0x10e2('0x4'),_0x10e2('0x5'),'localstationid','minrate',_0x10e2('0x6'),_0x10e2('0x7'),_0x10e2('0x8'),_0x10e2('0x9'),_0x10e2('0xa'),_0x10e2('0xb'),_0x10e2('0xc'),_0x10e2('0xd'),_0x10e2('0xe')],'include':[{'model':'Trunk','as':_0x10e2('0xf'),'attributes':['id','name','callerid','active']}]},'log':_0x10e2('0x10')});};};exports[_0x10e2('0x11')]=function(_0x5c6925,_0x2f7131){return client['Request'](_0x10e2('0x12'),{'account':{'id':_0x5c6925},'body':_0x2f7131,'log':_0x10e2('0x12')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5fb9=['UpdateFaxMessage','../client','update','Request'];(function(_0x5007be,_0x5a8c4b){var _0x22f469=function(_0x262a7f){while(--_0x262a7f){_0x5007be['push'](_0x5007be['shift']());}};_0x22f469(++_0x5a8c4b);}(_0x5fb9,0x1a5));var _0x95fb=function(_0x2c3665,_0x521312){_0x2c3665=_0x2c3665-0x0;var _0x16f841=_0x5fb9[_0x2c3665];return _0x16f841;};'use strict';var client=require(_0x95fb('0x0'));exports[_0x95fb('0x1')]=function(_0x125194,_0x577066){return client[_0x95fb('0x2')]('UpdateFaxMessage',{'body':_0x577066,'options':{'where':{'AttachmentId':_0x125194}},'log':_0x95fb('0x3')});};
\ No newline at end of file
+var _0xce6d=['UpdateFaxMessage','../client','update','Request'];(function(_0x51fdfb,_0x30aec7){var _0x51a3ba=function(_0x1155b5){while(--_0x1155b5){_0x51fdfb['push'](_0x51fdfb['shift']());}};_0x51a3ba(++_0x30aec7);}(_0xce6d,0x1e5));var _0xdce6=function(_0xe45118,_0x5dffbc){_0xe45118=_0xe45118-0x0;var _0x15e15d=_0xce6d[_0xe45118];return _0x15e15d;};'use strict';var client=require(_0xdce6('0x0'));exports[_0xdce6('0x1')]=function(_0x15551a,_0x1f70bb){return client[_0xdce6('0x2')](_0xdce6('0x3'),{'body':_0x1f70bb,'options':{'where':{'AttachmentId':_0x15551a}},'log':_0xdce6('0x3')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x69f9=['Request','GetDeskAccount','username','password','remoteUri','authType','serverUrl','DeskConfiguration','Configurations','DeskField','type','Variable','name','content','key','keyType','keyContent','variableName','Fields','nameField','customField','Tag','../../client','getDeskAccounts'];(function(_0x525b28,_0x5cf5a0){var _0x180178=function(_0x43e066){while(--_0x43e066){_0x525b28['push'](_0x525b28['shift']());}};_0x180178(++_0x5cf5a0);}(_0x69f9,0x1ae));var _0x969f=function(_0x4174da,_0xfff33f){_0x4174da=_0x4174da-0x0;var _0x488627=_0x69f9[_0x4174da];return _0x488627;};'use strict';var client=require(_0x969f('0x0'));exports[_0x969f('0x1')]=function(){return function(_0x743b24){return client[_0x969f('0x2')](_0x969f('0x3'),{'options':{'raw':![],'attributes':['id','name','description',_0x969f('0x4'),_0x969f('0x5'),_0x969f('0x6'),_0x969f('0x7'),'type',_0x969f('0x8')],'include':[{'model':_0x969f('0x9'),'as':_0x969f('0xa'),'attributes':['id','name'],'include':[{'model':_0x969f('0xb'),'as':'Subjects','attributes':['id',_0x969f('0xc'),'content','variableName'],'include':[{'model':_0x969f('0xd'),'as':_0x969f('0xd'),'attributes':['id',_0x969f('0xe')]}]},{'model':_0x969f('0xb'),'as':'Descriptions','attributes':['id',_0x969f('0xc'),_0x969f('0xf'),_0x969f('0x10'),_0x969f('0x11'),_0x969f('0x12'),_0x969f('0x13')],'include':[{'model':_0x969f('0xd'),'as':_0x969f('0xd'),'attributes':['id',_0x969f('0xe')]}]},{'model':_0x969f('0xb'),'as':_0x969f('0x14'),'attributes':['id',_0x969f('0xc'),'content','idField',_0x969f('0x15'),_0x969f('0x16'),_0x969f('0x13')],'include':[{'model':_0x969f('0xd'),'as':_0x969f('0xd'),'attributes':['id',_0x969f('0xe')]}]},{'model':_0x969f('0x17'),'as':'Tags','attributes':['id',_0x969f('0xe')]}]}]},'log':'GetDeskAccount'});};};
\ No newline at end of file
+var _0x8e3d=['type','serverUrl','DeskConfiguration','DeskField','Subjects','content','variableName','Variable','Descriptions','key','keyContent','Fields','idField','nameField','Tag','Tags','Request','name','description','password','authType'];(function(_0x1d558c,_0x1e497c){var _0x15767d=function(_0x26326d){while(--_0x26326d){_0x1d558c['push'](_0x1d558c['shift']());}};_0x15767d(++_0x1e497c);}(_0x8e3d,0x1c9));var _0xd8e3=function(_0x56f8b5,_0x4639ca){_0x56f8b5=_0x56f8b5-0x0;var _0x1add75=_0x8e3d[_0x56f8b5];return _0x1add75;};'use strict';var client=require('../../client');exports['getDeskAccounts']=function(){return function(_0xd98e57){return client[_0xd8e3('0x0')]('GetDeskAccount',{'options':{'raw':![],'attributes':['id',_0xd8e3('0x1'),_0xd8e3('0x2'),'username',_0xd8e3('0x3'),'remoteUri',_0xd8e3('0x4'),_0xd8e3('0x5'),_0xd8e3('0x6')],'include':[{'model':_0xd8e3('0x7'),'as':'Configurations','attributes':['id','name'],'include':[{'model':_0xd8e3('0x8'),'as':_0xd8e3('0x9'),'attributes':['id',_0xd8e3('0x5'),_0xd8e3('0xa'),_0xd8e3('0xb')],'include':[{'model':_0xd8e3('0xc'),'as':_0xd8e3('0xc'),'attributes':['id','name']}]},{'model':_0xd8e3('0x8'),'as':_0xd8e3('0xd'),'attributes':['id',_0xd8e3('0x5'),_0xd8e3('0xa'),_0xd8e3('0xe'),'keyType',_0xd8e3('0xf'),_0xd8e3('0xb')],'include':[{'model':_0xd8e3('0xc'),'as':_0xd8e3('0xc'),'attributes':['id',_0xd8e3('0x1')]}]},{'model':_0xd8e3('0x8'),'as':_0xd8e3('0x10'),'attributes':['id',_0xd8e3('0x5'),'content',_0xd8e3('0x11'),_0xd8e3('0x12'),'customField','variableName'],'include':[{'model':_0xd8e3('0xc'),'as':_0xd8e3('0xc'),'attributes':['id',_0xd8e3('0x1')]}]},{'model':_0xd8e3('0x13'),'as':_0xd8e3('0x14'),'attributes':['id','name']}]}]},'log':'GetDeskAccount'});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2cc9=['Dynamics365Field','Descriptions','keyContent','Fields','idField','nameField','customField','../../client','GetDynamics365Account','username','remoteUri','tenantId','clientId','clientSecret','serverUrl','description','Dynamics365Configuration','Configurations','name','Subjects','type','content','variableName','Variable'];(function(_0x502c83,_0x1db15d){var _0x40dd62=function(_0x405dfa){while(--_0x405dfa){_0x502c83['push'](_0x502c83['shift']());}};_0x40dd62(++_0x1db15d);}(_0x2cc9,0x13f));var _0x92cc=function(_0x1d93af,_0x4a9669){_0x1d93af=_0x1d93af-0x0;var _0x1cf042=_0x2cc9[_0x1d93af];return _0x1cf042;};'use strict';var client=require(_0x92cc('0x0'));exports['getDynamics365Accounts']=function(){return function(_0x5bd571){return client['Request'](_0x92cc('0x1'),{'options':{'raw':![],'attributes':['id','name',_0x92cc('0x2'),'password',_0x92cc('0x3'),_0x92cc('0x4'),_0x92cc('0x5'),_0x92cc('0x6'),_0x92cc('0x7'),_0x92cc('0x8')],'include':[{'model':_0x92cc('0x9'),'as':_0x92cc('0xa'),'attributes':['id',_0x92cc('0xb'),'ticketType'],'include':[{'model':'Dynamics365Field','as':_0x92cc('0xc'),'attributes':['id',_0x92cc('0xd'),_0x92cc('0xe'),_0x92cc('0xf')],'include':[{'model':_0x92cc('0x10'),'as':_0x92cc('0x10'),'attributes':['id',_0x92cc('0xb')]}]},{'model':_0x92cc('0x11'),'as':_0x92cc('0x12'),'attributes':['id','type',_0x92cc('0xe'),'key','keyType',_0x92cc('0x13'),_0x92cc('0xf')],'include':[{'model':'Variable','as':_0x92cc('0x10'),'attributes':['id',_0x92cc('0xb')]}]},{'model':_0x92cc('0x11'),'as':_0x92cc('0x14'),'attributes':['id','type',_0x92cc('0xe'),_0x92cc('0x15'),_0x92cc('0x16'),_0x92cc('0x17'),_0x92cc('0xf')],'include':[{'model':_0x92cc('0x10'),'as':'Variable','attributes':['id',_0x92cc('0xb')]}]}]}]},'log':_0x92cc('0x1')});};};
\ No newline at end of file
+var _0x0a88=['Dynamics365Field','Subjects','type','Variable','key','keyType','variableName','Fields','content','idField','nameField','../../client','getDynamics365Accounts','Request','GetDynamics365Account','name','username','password','remoteUri','tenantId','clientId','serverUrl','Configurations','ticketType'];(function(_0x586e35,_0x3abc53){var _0x21d285=function(_0x4adea8){while(--_0x4adea8){_0x586e35['push'](_0x586e35['shift']());}};_0x21d285(++_0x3abc53);}(_0x0a88,0x1d3));var _0x80a8=function(_0x1b6311,_0x42ec20){_0x1b6311=_0x1b6311-0x0;var _0x25aab6=_0x0a88[_0x1b6311];return _0x25aab6;};'use strict';var client=require(_0x80a8('0x0'));exports[_0x80a8('0x1')]=function(){return function(_0x52f46c){return client[_0x80a8('0x2')](_0x80a8('0x3'),{'options':{'raw':![],'attributes':['id',_0x80a8('0x4'),_0x80a8('0x5'),_0x80a8('0x6'),_0x80a8('0x7'),_0x80a8('0x8'),_0x80a8('0x9'),'clientSecret',_0x80a8('0xa'),'description'],'include':[{'model':'Dynamics365Configuration','as':_0x80a8('0xb'),'attributes':['id','name',_0x80a8('0xc')],'include':[{'model':_0x80a8('0xd'),'as':_0x80a8('0xe'),'attributes':['id',_0x80a8('0xf'),'content','variableName'],'include':[{'model':_0x80a8('0x10'),'as':_0x80a8('0x10'),'attributes':['id',_0x80a8('0x4')]}]},{'model':'Dynamics365Field','as':'Descriptions','attributes':['id',_0x80a8('0xf'),'content',_0x80a8('0x11'),_0x80a8('0x12'),'keyContent',_0x80a8('0x13')],'include':[{'model':_0x80a8('0x10'),'as':_0x80a8('0x10'),'attributes':['id',_0x80a8('0x4')]}]},{'model':_0x80a8('0xd'),'as':_0x80a8('0x14'),'attributes':['id',_0x80a8('0xf'),_0x80a8('0x15'),_0x80a8('0x16'),_0x80a8('0x17'),'customField',_0x80a8('0x13')],'include':[{'model':_0x80a8('0x10'),'as':_0x80a8('0x10'),'attributes':['id',_0x80a8('0x4')]}]}]}]},'log':_0x80a8('0x3')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb627=['content','Variable','Descriptions','type','key','keyType','keyContent','variableName','Fields','idField','customField','GetFreshdeskAccount','../../client','Request','name','username','apiKey','remoteUri','serverUrl','FreshdeskConfiguration','Configurations','Tag','FreshdeskField','Subjects'];(function(_0x43b9aa,_0x347984){var _0x221cfa=function(_0x111e80){while(--_0x111e80){_0x43b9aa['push'](_0x43b9aa['shift']());}};_0x221cfa(++_0x347984);}(_0xb627,0x144));var _0x7b62=function(_0x38f5b6,_0x3674dd){_0x38f5b6=_0x38f5b6-0x0;var _0x2a9079=_0xb627[_0x38f5b6];return _0x2a9079;};'use strict';var client=require(_0x7b62('0x0'));exports['getFreshdeskAccounts']=function(){return function(_0x486023){return client[_0x7b62('0x1')]('GetFreshdeskAccount',{'options':{'raw':![],'attributes':['id',_0x7b62('0x2'),_0x7b62('0x3'),_0x7b62('0x4'),_0x7b62('0x5'),_0x7b62('0x6')],'include':[{'model':_0x7b62('0x7'),'as':_0x7b62('0x8'),'attributes':['id','name'],'include':[{'model':_0x7b62('0x9'),'attributes':['id','name']},{'model':_0x7b62('0xa'),'as':_0x7b62('0xb'),'attributes':['id','type',_0x7b62('0xc'),'variableName'],'include':[{'model':_0x7b62('0xd'),'as':_0x7b62('0xd'),'attributes':['id',_0x7b62('0x2')]}]},{'model':'FreshdeskField','as':_0x7b62('0xe'),'attributes':['id',_0x7b62('0xf'),_0x7b62('0xc'),_0x7b62('0x10'),_0x7b62('0x11'),_0x7b62('0x12'),_0x7b62('0x13')],'include':[{'model':_0x7b62('0xd'),'as':_0x7b62('0xd'),'attributes':['id',_0x7b62('0x2')]}]},{'model':_0x7b62('0xa'),'as':_0x7b62('0x14'),'attributes':['id',_0x7b62('0xf'),'content',_0x7b62('0x15'),'nameField',_0x7b62('0x16'),'variableName'],'include':[{'model':_0x7b62('0xd'),'as':'Variable','attributes':['id','name']}]}]}]},'log':_0x7b62('0x17')});};};
\ No newline at end of file
+var _0x1131=['type','content','variableName','Variable','FreshdeskField','key','keyType','Fields','getFreshdeskAccounts','name','username','apiKey','remoteUri','serverUrl','FreshdeskConfiguration'];(function(_0x403e08,_0x17bb3a){var _0x49ba3c=function(_0x1684b5){while(--_0x1684b5){_0x403e08['push'](_0x403e08['shift']());}};_0x49ba3c(++_0x17bb3a);}(_0x1131,0x71));var _0x1113=function(_0x2434c0,_0x39e113){_0x2434c0=_0x2434c0-0x0;var _0x585c99=_0x1131[_0x2434c0];return _0x585c99;};'use strict';var client=require('../../client');exports[_0x1113('0x0')]=function(){return function(_0x562b45){return client['Request']('GetFreshdeskAccount',{'options':{'raw':![],'attributes':['id',_0x1113('0x1'),_0x1113('0x2'),_0x1113('0x3'),_0x1113('0x4'),_0x1113('0x5')],'include':[{'model':_0x1113('0x6'),'as':'Configurations','attributes':['id',_0x1113('0x1')],'include':[{'model':'Tag','attributes':['id',_0x1113('0x1')]},{'model':'FreshdeskField','as':'Subjects','attributes':['id',_0x1113('0x7'),_0x1113('0x8'),_0x1113('0x9')],'include':[{'model':_0x1113('0xa'),'as':_0x1113('0xa'),'attributes':['id',_0x1113('0x1')]}]},{'model':_0x1113('0xb'),'as':'Descriptions','attributes':['id','type',_0x1113('0x8'),_0x1113('0xc'),_0x1113('0xd'),'keyContent',_0x1113('0x9')],'include':[{'model':_0x1113('0xa'),'as':'Variable','attributes':['id',_0x1113('0x1')]}]},{'model':_0x1113('0xb'),'as':_0x1113('0xe'),'attributes':['id',_0x1113('0x7'),'content','idField','nameField','customField',_0x1113('0x9')],'include':[{'model':_0x1113('0xa'),'as':_0x1113('0xa'),'attributes':['id',_0x1113('0x1')]}]}]}]},'log':'GetFreshdeskAccount'});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf072=['content','variableName','Variable','Descriptions','keyType','keyContent','GetFreshsalesccount','../../client','getFreshsalesAccounts','GetFreshsalesAccount','username','apiKey','remoteUri','FreshsalesConfiguration','Configurations','name','FreshsalesField','Subjects','type'];(function(_0x317130,_0x4d8ec7){var _0x5c758c=function(_0x4f2e46){while(--_0x4f2e46){_0x317130['push'](_0x317130['shift']());}};_0x5c758c(++_0x4d8ec7);}(_0xf072,0x1cf));var _0x2f07=function(_0x4e8c2e,_0x55bcf4){_0x4e8c2e=_0x4e8c2e-0x0;var _0x5c1ecc=_0xf072[_0x4e8c2e];return _0x5c1ecc;};'use strict';var client=require(_0x2f07('0x0'));exports[_0x2f07('0x1')]=function(){return function(_0x304ea5){return client['Request'](_0x2f07('0x2'),{'options':{'raw':![],'attributes':['id','name',_0x2f07('0x3'),_0x2f07('0x4'),_0x2f07('0x5'),'serverUrl'],'include':[{'model':_0x2f07('0x6'),'as':_0x2f07('0x7'),'attributes':['id',_0x2f07('0x8')],'include':[{'model':_0x2f07('0x9'),'as':_0x2f07('0xa'),'attributes':['id',_0x2f07('0xb'),_0x2f07('0xc'),_0x2f07('0xd')],'include':[{'model':_0x2f07('0xe'),'as':_0x2f07('0xe'),'attributes':['id',_0x2f07('0x8')]}]},{'model':_0x2f07('0x9'),'as':_0x2f07('0xf'),'attributes':['id',_0x2f07('0xb'),_0x2f07('0xc'),'key',_0x2f07('0x10'),_0x2f07('0x11'),_0x2f07('0xd')],'include':[{'model':_0x2f07('0xe'),'as':'Variable','attributes':['id','name']}]}]}]},'log':_0x2f07('0x12')});};};
\ 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(_0xc498b3,_0x5610b4){var _0x1e2530=function(_0x5c6e08){while(--_0x5c6e08){_0xc498b3['push'](_0xc498b3['shift']());}};_0x1e2530(++_0x5610b4);}(_0x15ef,0x80));var _0xf15e=function(_0x18f09a,_0x19b18){_0x18f09a=_0x18f09a-0x0;var _0x18f690=_0x15ef[_0x18f09a];return _0x18f690;};'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 _0x4dfd=['additionalSearchLead','SalesforceField','Subjects','Variable','Descriptions','Fields','Request','GetSalesforceAccount','name','username','password','remoteUri','clientId','clientSecret','securityToken','serverUrl','type','Configurations','moduleSearch','moduleCreate','ticketType','leadId','additionalSearchAccount'];(function(_0x5de9c4,_0x5a2e51){var _0x10fdba=function(_0x4168c8){while(--_0x4168c8){_0x5de9c4['push'](_0x5de9c4['shift']());}};_0x10fdba(++_0x5a2e51);}(_0x4dfd,0x148));var _0xd4df=function(_0xa73514,_0x47e493){_0xa73514=_0xa73514-0x0;var _0x3f74ed=_0x4dfd[_0xa73514];return _0x3f74ed;};'use strict';var client=require('../../client');exports['getSalesforceAccounts']=function(){return function(_0x31eb63){return client[_0xd4df('0x0')](_0xd4df('0x1'),{'options':{'raw':![],'attributes':['id',_0xd4df('0x2'),_0xd4df('0x3'),_0xd4df('0x4'),_0xd4df('0x5'),_0xd4df('0x6'),_0xd4df('0x7'),_0xd4df('0x8'),_0xd4df('0x9'),_0xd4df('0xa')],'include':[{'model':'SalesforceConfiguration','as':_0xd4df('0xb'),'attributes':['id',_0xd4df('0x2'),_0xd4df('0xc'),_0xd4df('0xd'),_0xd4df('0xe'),_0xd4df('0xf'),_0xd4df('0x10'),'additionalSearchContact',_0xd4df('0x11')],'include':[{'model':_0xd4df('0x12'),'as':_0xd4df('0x13'),'include':[{'model':_0xd4df('0x14'),'as':_0xd4df('0x14'),'attributes':['id',_0xd4df('0x2')]}]},{'model':'SalesforceField','as':_0xd4df('0x15'),'include':[{'model':_0xd4df('0x14'),'as':_0xd4df('0x14'),'attributes':['id',_0xd4df('0x2')]}]},{'model':_0xd4df('0x12'),'as':_0xd4df('0x16'),'include':[{'model':_0xd4df('0x14'),'as':_0xd4df('0x14'),'attributes':['id',_0xd4df('0x2')]}]}]}]},'log':'GetSalesforceAccount'});};};
\ No newline at end of file
+var _0x0d90=['securityToken','serverUrl','SalesforceConfiguration','Configurations','moduleCreate','ticketType','additionalSearchAccount','additionalSearchContact','additionalSearchLead','SalesforceField','Subjects','Variable','Descriptions','../../client','getSalesforceAccounts','GetSalesforceAccount','name','username','remoteUri','clientId','clientSecret'];(function(_0x3463a6,_0x1280c3){var _0x330368=function(_0x7ef3e6){while(--_0x7ef3e6){_0x3463a6['push'](_0x3463a6['shift']());}};_0x330368(++_0x1280c3);}(_0x0d90,0xa0));var _0x00d9=function(_0x10f625,_0x44c924){_0x10f625=_0x10f625-0x0;var _0x3ba98c=_0x0d90[_0x10f625];return _0x3ba98c;};'use strict';var client=require(_0x00d9('0x0'));exports[_0x00d9('0x1')]=function(){return function(_0x2c86ce){return client['Request'](_0x00d9('0x2'),{'options':{'raw':![],'attributes':['id',_0x00d9('0x3'),_0x00d9('0x4'),'password',_0x00d9('0x5'),_0x00d9('0x6'),_0x00d9('0x7'),_0x00d9('0x8'),_0x00d9('0x9'),'type'],'include':[{'model':_0x00d9('0xa'),'as':_0x00d9('0xb'),'attributes':['id',_0x00d9('0x3'),'moduleSearch',_0x00d9('0xc'),_0x00d9('0xd'),'leadId',_0x00d9('0xe'),_0x00d9('0xf'),_0x00d9('0x10')],'include':[{'model':_0x00d9('0x11'),'as':_0x00d9('0x12'),'include':[{'model':'Variable','as':_0x00d9('0x13'),'attributes':['id',_0x00d9('0x3')]}]},{'model':_0x00d9('0x11'),'as':_0x00d9('0x14'),'include':[{'model':_0x00d9('0x13'),'as':_0x00d9('0x13'),'attributes':['id',_0x00d9('0x3')]}]},{'model':_0x00d9('0x11'),'as':'Fields','include':[{'model':'Variable','as':'Variable','attributes':['id',_0x00d9('0x3')]}]}]}]},'log':_0x00d9('0x2')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe2fe=['type','variableName','Variable','keyType','Fields','content','nameField','GetServicenowkAccount','../../client','Request','name','description','username','password','email','serverUrl','ServicenowConfiguration','ServicenowField'];(function(_0x4789c7,_0x38e335){var _0x49fe31=function(_0x4f909e){while(--_0x4f909e){_0x4789c7['push'](_0x4789c7['shift']());}};_0x49fe31(++_0x38e335);}(_0xe2fe,0x86));var _0xee2f=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xe2fe[_0x3dd15e];return _0x231fd0;};'use strict';var client=require(_0xee2f('0x0'));exports['getServicenowAccounts']=function(){return function(_0x521787){return client[_0xee2f('0x1')]('GetServicenowAccount',{'options':{'raw':![],'attributes':['id',_0xee2f('0x2'),_0xee2f('0x3'),_0xee2f('0x4'),_0xee2f('0x5'),_0xee2f('0x6'),'remoteUri',_0xee2f('0x7')],'include':[{'model':_0xee2f('0x8'),'as':'Configurations','attributes':['id',_0xee2f('0x2')],'include':[{'model':_0xee2f('0x9'),'as':'Subjects','attributes':['id',_0xee2f('0xa'),'content',_0xee2f('0xb')],'include':[{'model':_0xee2f('0xc'),'as':'Variable','attributes':['id',_0xee2f('0x2')]}]},{'model':_0xee2f('0x9'),'as':'Descriptions','attributes':['id','type','content','key',_0xee2f('0xd'),'keyContent','variableName'],'include':[{'model':'Variable','as':_0xee2f('0xc'),'attributes':['id',_0xee2f('0x2')]}]},{'model':_0xee2f('0x9'),'as':_0xee2f('0xe'),'attributes':['id',_0xee2f('0xa'),_0xee2f('0xf'),'idField',_0xee2f('0x10'),'customField',_0xee2f('0xb')],'include':[{'model':_0xee2f('0xc'),'as':'Variable','attributes':['id',_0xee2f('0x2')]}]}]}]},'log':_0xee2f('0x11')});};};
\ No newline at end of file
+var _0x31f0=['remoteUri','Subjects','type','content','variableName','Variable','ServicenowField','Descriptions','key','keyType','Fields','idField','nameField','customField','GetServicenowkAccount','../../client','GetServicenowAccount','name','description','username','email'];(function(_0x7496ff,_0x5f33ba){var _0xa10486=function(_0x3fb39e){while(--_0x3fb39e){_0x7496ff['push'](_0x7496ff['shift']());}};_0xa10486(++_0x5f33ba);}(_0x31f0,0xb7));var _0x031f=function(_0x4b8487,_0x1de18d){_0x4b8487=_0x4b8487-0x0;var _0x45a495=_0x31f0[_0x4b8487];return _0x45a495;};'use strict';var client=require(_0x031f('0x0'));exports['getServicenowAccounts']=function(){return function(_0xc4ca54){return client['Request'](_0x031f('0x1'),{'options':{'raw':![],'attributes':['id',_0x031f('0x2'),_0x031f('0x3'),_0x031f('0x4'),'password',_0x031f('0x5'),_0x031f('0x6'),'serverUrl'],'include':[{'model':'ServicenowConfiguration','as':'Configurations','attributes':['id',_0x031f('0x2')],'include':[{'model':'ServicenowField','as':_0x031f('0x7'),'attributes':['id',_0x031f('0x8'),_0x031f('0x9'),_0x031f('0xa')],'include':[{'model':'Variable','as':_0x031f('0xb'),'attributes':['id',_0x031f('0x2')]}]},{'model':_0x031f('0xc'),'as':_0x031f('0xd'),'attributes':['id',_0x031f('0x8'),_0x031f('0x9'),_0x031f('0xe'),_0x031f('0xf'),'keyContent',_0x031f('0xa')],'include':[{'model':_0x031f('0xb'),'as':_0x031f('0xb'),'attributes':['id',_0x031f('0x2')]}]},{'model':_0x031f('0xc'),'as':_0x031f('0x10'),'attributes':['id',_0x031f('0x8'),'content',_0x031f('0x11'),_0x031f('0x12'),_0x031f('0x13'),_0x031f('0xa')],'include':[{'model':_0x031f('0xb'),'as':'Variable','attributes':['id','name']}]}]}]},'log':_0x031f('0x14')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdb28=['customField','GetSugarcrmAccount','../../client','getSugarcrmAccounts','Request','name','username','password','remoteUri','serverUrl','Configurations','type','content','variableName','Variable','SugarcrmField','key','keyContent','Fields','nameField'];(function(_0x29d94e,_0xf386d6){var _0x106237=function(_0x327501){while(--_0x327501){_0x29d94e['push'](_0x29d94e['shift']());}};_0x106237(++_0xf386d6);}(_0xdb28,0x106));var _0x8db2=function(_0x320053,_0x1de886){_0x320053=_0x320053-0x0;var _0x523097=_0xdb28[_0x320053];return _0x523097;};'use strict';var client=require(_0x8db2('0x0'));exports[_0x8db2('0x1')]=function(){return function(_0x1dc797){return client[_0x8db2('0x2')]('GetSugarcrmAccount',{'options':{'raw':![],'attributes':['id',_0x8db2('0x3'),_0x8db2('0x4'),_0x8db2('0x5'),_0x8db2('0x6'),_0x8db2('0x7')],'include':[{'model':'SugarcrmConfiguration','as':_0x8db2('0x8'),'attributes':['id',_0x8db2('0x3')],'include':[{'model':'SugarcrmField','as':'Subjects','attributes':['id',_0x8db2('0x9'),_0x8db2('0xa'),_0x8db2('0xb')],'include':[{'model':_0x8db2('0xc'),'as':_0x8db2('0xc'),'attributes':['id',_0x8db2('0x3')]}]},{'model':_0x8db2('0xd'),'as':'Descriptions','attributes':['id',_0x8db2('0x9'),_0x8db2('0xa'),_0x8db2('0xe'),'keyType',_0x8db2('0xf'),_0x8db2('0xb')],'include':[{'model':'Variable','as':_0x8db2('0xc'),'attributes':['id',_0x8db2('0x3')]}]},{'model':_0x8db2('0xd'),'as':_0x8db2('0x10'),'attributes':['id',_0x8db2('0x9'),'content','idField',_0x8db2('0x11'),_0x8db2('0x12'),_0x8db2('0xb')],'include':[{'model':_0x8db2('0xc'),'as':_0x8db2('0xc'),'attributes':['id',_0x8db2('0x3')]}]}]}]},'log':_0x8db2('0x13')});};};
\ No newline at end of file
+var _0x14a0=['variableName','key','keyContent','Variable','SugarcrmField','Fields','idField','nameField','customField','getSugarcrmAccounts','Request','GetSugarcrmAccount','name','username','password','SugarcrmConfiguration','Configurations','type','content'];(function(_0x480f4a,_0x2ea3f8){var _0xdccb7d=function(_0x151258){while(--_0x151258){_0x480f4a['push'](_0x480f4a['shift']());}};_0xdccb7d(++_0x2ea3f8);}(_0x14a0,0x8e));var _0x014a=function(_0x4c6d63,_0x3fa2f6){_0x4c6d63=_0x4c6d63-0x0;var _0x549a8c=_0x14a0[_0x4c6d63];return _0x549a8c;};'use strict';var client=require('../../client');exports[_0x014a('0x0')]=function(){return function(_0x451138){return client[_0x014a('0x1')](_0x014a('0x2'),{'options':{'raw':![],'attributes':['id',_0x014a('0x3'),_0x014a('0x4'),_0x014a('0x5'),'remoteUri','serverUrl'],'include':[{'model':_0x014a('0x6'),'as':_0x014a('0x7'),'attributes':['id',_0x014a('0x3')],'include':[{'model':'SugarcrmField','as':'Subjects','attributes':['id',_0x014a('0x8'),_0x014a('0x9'),_0x014a('0xa')],'include':[{'model':'Variable','as':'Variable','attributes':['id',_0x014a('0x3')]}]},{'model':'SugarcrmField','as':'Descriptions','attributes':['id','type','content',_0x014a('0xb'),'keyType',_0x014a('0xc'),_0x014a('0xa')],'include':[{'model':'Variable','as':_0x014a('0xd'),'attributes':['id',_0x014a('0x3')]}]},{'model':_0x014a('0xe'),'as':_0x014a('0xf'),'attributes':['id',_0x014a('0x8'),_0x014a('0x9'),_0x014a('0x10'),_0x014a('0x11'),_0x014a('0x12'),_0x014a('0xa')],'include':[{'model':_0x014a('0xd'),'as':_0x014a('0xd'),'attributes':['id','name']}]}]}]},'log':_0x014a('0x2')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2bfb=['idField','customField','../../client','getVtigerAccounts','GetVtigerAccount','description','username','accessKey','remoteUri','Configurations','name','VtigerField','Subjects','type','content','variableName','Variable','Descriptions','keyType','keyContent','Fields'];(function(_0x4fdc46,_0x2a3759){var _0x2c178a=function(_0x59ead9){while(--_0x59ead9){_0x4fdc46['push'](_0x4fdc46['shift']());}};_0x2c178a(++_0x2a3759);}(_0x2bfb,0x6b));var _0xb2bf=function(_0x24631a,_0x52c366){_0x24631a=_0x24631a-0x0;var _0x29f95f=_0x2bfb[_0x24631a];return _0x29f95f;};'use strict';var client=require(_0xb2bf('0x0'));exports[_0xb2bf('0x1')]=function(){return function(_0x118d2b){return client['Request'](_0xb2bf('0x2'),{'options':{'raw':![],'attributes':['id','name',_0xb2bf('0x3'),_0xb2bf('0x4'),_0xb2bf('0x5'),_0xb2bf('0x6'),'serverUrl'],'include':[{'model':'VtigerConfiguration','as':_0xb2bf('0x7'),'attributes':['id',_0xb2bf('0x8')],'include':[{'model':_0xb2bf('0x9'),'as':_0xb2bf('0xa'),'attributes':['id',_0xb2bf('0xb'),_0xb2bf('0xc'),_0xb2bf('0xd')],'include':[{'model':_0xb2bf('0xe'),'as':_0xb2bf('0xe'),'attributes':['id','name']}]},{'model':'VtigerField','as':_0xb2bf('0xf'),'attributes':['id',_0xb2bf('0xb'),_0xb2bf('0xc'),'key',_0xb2bf('0x10'),_0xb2bf('0x11'),_0xb2bf('0xd')],'include':[{'model':_0xb2bf('0xe'),'as':_0xb2bf('0xe'),'attributes':['id',_0xb2bf('0x8')]}]},{'model':_0xb2bf('0x9'),'as':_0xb2bf('0x12'),'attributes':['id',_0xb2bf('0xb'),_0xb2bf('0xc'),_0xb2bf('0x13'),'nameField',_0xb2bf('0x14'),'variableName'],'include':[{'model':_0xb2bf('0xe'),'as':'Variable','attributes':['id',_0xb2bf('0x8')]}]}]}]},'log':_0xb2bf('0x2')});};};
\ No newline at end of file
+var _0x9d55=['keyType','keyContent','idField','nameField','GetVtigerAccount','Request','name','description','accessKey','remoteUri','serverUrl','VtigerConfiguration','Configurations','Subjects','content','variableName','Variable','VtigerField','type','key'];(function(_0x2a6a6c,_0x5195a9){var _0x4b9cad=function(_0x315fe1){while(--_0x315fe1){_0x2a6a6c['push'](_0x2a6a6c['shift']());}};_0x4b9cad(++_0x5195a9);}(_0x9d55,0x1e5));var _0x59d5=function(_0x345e2e,_0x4fa398){_0x345e2e=_0x345e2e-0x0;var _0x32aa04=_0x9d55[_0x345e2e];return _0x32aa04;};'use strict';var client=require('../../client');exports['getVtigerAccounts']=function(){return function(_0x2ff96f){return client[_0x59d5('0x0')]('GetVtigerAccount',{'options':{'raw':![],'attributes':['id',_0x59d5('0x1'),_0x59d5('0x2'),'username',_0x59d5('0x3'),_0x59d5('0x4'),_0x59d5('0x5')],'include':[{'model':_0x59d5('0x6'),'as':_0x59d5('0x7'),'attributes':['id',_0x59d5('0x1')],'include':[{'model':'VtigerField','as':_0x59d5('0x8'),'attributes':['id','type',_0x59d5('0x9'),_0x59d5('0xa')],'include':[{'model':_0x59d5('0xb'),'as':_0x59d5('0xb'),'attributes':['id',_0x59d5('0x1')]}]},{'model':_0x59d5('0xc'),'as':'Descriptions','attributes':['id',_0x59d5('0xd'),_0x59d5('0x9'),_0x59d5('0xe'),_0x59d5('0xf'),_0x59d5('0x10'),_0x59d5('0xa')],'include':[{'model':'Variable','as':_0x59d5('0xb'),'attributes':['id',_0x59d5('0x1')]}]},{'model':_0x59d5('0xc'),'as':'Fields','attributes':['id',_0x59d5('0xd'),_0x59d5('0x9'),_0x59d5('0x11'),_0x59d5('0x12'),'customField',_0x59d5('0xa')],'include':[{'model':_0x59d5('0xb'),'as':_0x59d5('0xb'),'attributes':['id',_0x59d5('0x1')]}]}]}]},'log':_0x59d5('0x13')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3f03=['keyType','Fields','idField','nameField','customField','../../client','getZendeskAccounts','GetZendeskAccount','name','username','token','remoteUri','authType','serverUrl','type','Tag','ZendeskField','variableName','Variable','key'];(function(_0x36d68f,_0x2ba1fd){var _0x554322=function(_0x59d803){while(--_0x59d803){_0x36d68f['push'](_0x36d68f['shift']());}};_0x554322(++_0x2ba1fd);}(_0x3f03,0x145));var _0x33f0=function(_0x216344,_0x5cfa9a){_0x216344=_0x216344-0x0;var _0x30e02a=_0x3f03[_0x216344];return _0x30e02a;};'use strict';var client=require(_0x33f0('0x0'));exports[_0x33f0('0x1')]=function(){return function(_0x2ffe47){return client['Request'](_0x33f0('0x2'),{'options':{'raw':![],'attributes':['id',_0x33f0('0x3'),_0x33f0('0x4'),'password',_0x33f0('0x5'),_0x33f0('0x6'),_0x33f0('0x7'),_0x33f0('0x8'),_0x33f0('0x9')],'include':[{'model':'ZendeskConfiguration','as':'Configurations','attributes':['id',_0x33f0('0x3')],'include':[{'model':_0x33f0('0xa'),'attributes':['id','name']},{'model':_0x33f0('0xb'),'as':'Subjects','attributes':['id',_0x33f0('0x9'),'content',_0x33f0('0xc')],'include':[{'model':_0x33f0('0xd'),'as':_0x33f0('0xd'),'attributes':['id',_0x33f0('0x3')]}]},{'model':_0x33f0('0xb'),'as':'Descriptions','attributes':['id','type','content',_0x33f0('0xe'),_0x33f0('0xf'),'keyContent',_0x33f0('0xc')],'include':[{'model':'Variable','as':_0x33f0('0xd'),'attributes':['id',_0x33f0('0x3')]}]},{'model':_0x33f0('0xb'),'as':_0x33f0('0x10'),'attributes':['id',_0x33f0('0x9'),'content',_0x33f0('0x11'),_0x33f0('0x12'),_0x33f0('0x13'),'variableName'],'include':[{'model':_0x33f0('0xd'),'as':'Variable','attributes':['id',_0x33f0('0x3')]}]}]}]},'log':_0x33f0('0x2')});};};
\ No newline at end of file
+var _0x6bbf=['GetZendeskAccount','name','token','remoteUri','authType','serverUrl','ZendeskConfiguration','Tag','ZendeskField','Subjects','type','content','variableName','Variable','key','keyType','keyContent','idField','nameField','customField','../../client','Request'];(function(_0x5ee48e,_0x159457){var _0x3841bc=function(_0x1dca10){while(--_0x1dca10){_0x5ee48e['push'](_0x5ee48e['shift']());}};_0x3841bc(++_0x159457);}(_0x6bbf,0x11c));var _0xf6bb=function(_0x5416db,_0x55683a){_0x5416db=_0x5416db-0x0;var _0x243e35=_0x6bbf[_0x5416db];return _0x243e35;};'use strict';var client=require(_0xf6bb('0x0'));exports['getZendeskAccounts']=function(){return function(_0x3a56ec){return client[_0xf6bb('0x1')](_0xf6bb('0x2'),{'options':{'raw':![],'attributes':['id',_0xf6bb('0x3'),'username','password',_0xf6bb('0x4'),_0xf6bb('0x5'),_0xf6bb('0x6'),_0xf6bb('0x7'),'type'],'include':[{'model':_0xf6bb('0x8'),'as':'Configurations','attributes':['id','name'],'include':[{'model':_0xf6bb('0x9'),'attributes':['id',_0xf6bb('0x3')]},{'model':_0xf6bb('0xa'),'as':_0xf6bb('0xb'),'attributes':['id',_0xf6bb('0xc'),_0xf6bb('0xd'),_0xf6bb('0xe')],'include':[{'model':_0xf6bb('0xf'),'as':_0xf6bb('0xf'),'attributes':['id',_0xf6bb('0x3')]}]},{'model':'ZendeskField','as':'Descriptions','attributes':['id',_0xf6bb('0xc'),'content',_0xf6bb('0x10'),_0xf6bb('0x11'),_0xf6bb('0x12'),_0xf6bb('0xe')],'include':[{'model':'Variable','as':_0xf6bb('0xf'),'attributes':['id','name']}]},{'model':_0xf6bb('0xa'),'as':'Fields','attributes':['id',_0xf6bb('0xc'),_0xf6bb('0xd'),_0xf6bb('0x13'),_0xf6bb('0x14'),_0xf6bb('0x15'),'variableName'],'include':[{'model':_0xf6bb('0xf'),'as':_0xf6bb('0xf'),'attributes':['id',_0xf6bb('0x3')]}]}]}]},'log':_0xf6bb('0x2')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x41d7=['Subjects','type','content','variableName','Variable','Descriptions','key','keyType','keyContent','Fields','idField','nameField','customField','getZohoAccounts','GetZohoAccount','name','host','zone','clientId','clientSecret','code','ZohoConfiguration','Configurations','moduleCreate','moduleSearch','description','ZohoField'];(function(_0x4eb19f,_0x26462b){var _0x3e446f=function(_0x2e6807){while(--_0x2e6807){_0x4eb19f['push'](_0x4eb19f['shift']());}};_0x3e446f(++_0x26462b);}(_0x41d7,0xe5));var _0x741d=function(_0x209c9c,_0x4d4b97){_0x209c9c=_0x209c9c-0x0;var _0x263102=_0x41d7[_0x209c9c];return _0x263102;};'use strict';var client=require('../../client');exports[_0x741d('0x0')]=function(){return function(_0x54ffcc){return client['Request'](_0x741d('0x1'),{'options':{'raw':![],'attributes':['id',_0x741d('0x2'),'description',_0x741d('0x3'),_0x741d('0x4'),_0x741d('0x5'),_0x741d('0x6'),'serverUrl',_0x741d('0x7'),'refreshToken'],'include':[{'model':_0x741d('0x8'),'as':_0x741d('0x9'),'attributes':['id','name',_0x741d('0xa'),_0x741d('0xb'),_0x741d('0xc')],'include':[{'model':_0x741d('0xd'),'as':_0x741d('0xe'),'attributes':['id',_0x741d('0xf'),_0x741d('0x10'),_0x741d('0x11')],'include':[{'model':_0x741d('0x12'),'as':_0x741d('0x12'),'attributes':['id',_0x741d('0x2')]}]},{'model':_0x741d('0xd'),'as':_0x741d('0x13'),'attributes':['id','type',_0x741d('0x10'),_0x741d('0x14'),_0x741d('0x15'),_0x741d('0x16'),_0x741d('0x11')],'include':[{'model':_0x741d('0x12'),'as':'Variable','attributes':['id',_0x741d('0x2')]}]},{'model':_0x741d('0xd'),'as':_0x741d('0x17'),'attributes':['id','type',_0x741d('0x10'),_0x741d('0x18'),_0x741d('0x19'),_0x741d('0x1a'),_0x741d('0x11')],'include':[{'model':_0x741d('0x12'),'as':_0x741d('0x12'),'attributes':['id',_0x741d('0x2')]}]}]}]},'log':'GetZohoAccount'});};};
\ No newline at end of file
+var _0x521f=['customField','../../client','getZohoAccounts','Request','GetZohoAccount','description','host','clientId','clientSecret','serverUrl','code','refreshToken','ZohoConfiguration','Configurations','name','moduleCreate','ZohoField','content','Variable','Descriptions','type','key','keyType','keyContent','variableName','idField'];(function(_0x515253,_0x28a728){var _0x1a8759=function(_0x446118){while(--_0x446118){_0x515253['push'](_0x515253['shift']());}};_0x1a8759(++_0x28a728);}(_0x521f,0x1a1));var _0xf521=function(_0x3bf225,_0x52e58b){_0x3bf225=_0x3bf225-0x0;var _0x4c9bc7=_0x521f[_0x3bf225];return _0x4c9bc7;};'use strict';var client=require(_0xf521('0x0'));exports[_0xf521('0x1')]=function(){return function(_0xa0e9e8){return client[_0xf521('0x2')](_0xf521('0x3'),{'options':{'raw':![],'attributes':['id','name',_0xf521('0x4'),_0xf521('0x5'),'zone',_0xf521('0x6'),_0xf521('0x7'),_0xf521('0x8'),_0xf521('0x9'),_0xf521('0xa')],'include':[{'model':_0xf521('0xb'),'as':_0xf521('0xc'),'attributes':['id',_0xf521('0xd'),_0xf521('0xe'),'moduleSearch',_0xf521('0x4')],'include':[{'model':_0xf521('0xf'),'as':'Subjects','attributes':['id','type',_0xf521('0x10'),'variableName'],'include':[{'model':_0xf521('0x11'),'as':_0xf521('0x11'),'attributes':['id',_0xf521('0xd')]}]},{'model':'ZohoField','as':_0xf521('0x12'),'attributes':['id',_0xf521('0x13'),_0xf521('0x10'),_0xf521('0x14'),_0xf521('0x15'),_0xf521('0x16'),_0xf521('0x17')],'include':[{'model':_0xf521('0x11'),'as':_0xf521('0x11'),'attributes':['id',_0xf521('0xd')]}]},{'model':_0xf521('0xf'),'as':'Fields','attributes':['id',_0xf521('0x13'),'content',_0xf521('0x18'),'nameField',_0xf521('0x19'),_0xf521('0x17')],'include':[{'model':_0xf521('0x11'),'as':_0xf521('0x11'),'attributes':['id',_0xf521('0xd')]}]}]}]},'log':_0xf521('0x3')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xabba=['util','../client','voiceQueueReport','queuecallerexitAt','Request','CreateMemberReport','lastAssignedTo','isNil','interface','format','SIP/%s','queuecallerleaveAt','diff','seconds','inbound','calleridnum','exten','agent','toNumber','uniqueid','voiceDialReport','voice','starttime','endtime','outbound','accountcode','dialstring','moment','lodash'];(function(_0xf4a688,_0x2f3186){var _0x1a148c=function(_0x1099b4){while(--_0x1099b4){_0xf4a688['push'](_0xf4a688['shift']());}};_0x1a148c(++_0x2f3186);}(_0xabba,0xe6));var _0xaabb=function(_0x575aef,_0x53f700){_0x575aef=_0x575aef-0x0;var _0x445af4=_0xabba[_0x575aef];return _0x445af4;};'use strict';var moment=require(_0xaabb('0x0'));var _=require(_0xaabb('0x1'));var util=require(_0xaabb('0x2'));var client=require(_0xaabb('0x3'));exports[_0xaabb('0x4')]=function(_0x52d0a3){var _0x1efe53=_0x52d0a3['queuecallercompleteAt']||_0x52d0a3[_0xaabb('0x5')];return client[_0xaabb('0x6')](_0xaabb('0x7'),{'body':{'channel':'voice','membername':_0x52d0a3[_0xaabb('0x8')],'interface':_[_0xaabb('0x9')](_0x52d0a3[_0xaabb('0xa')])?util[_0xaabb('0xb')](_0xaabb('0xc'),_0x52d0a3[_0xaabb('0x8')]):_0x52d0a3[_0xaabb('0xa')],'type':'TALKING','enterAt':_0x52d0a3[_0xaabb('0xd')],'exitAt':_0x1efe53,'duration':moment(_0x1efe53)[_0xaabb('0xe')](_0x52d0a3['queuecallerleaveAt'],_0xaabb('0xf')),'data1':_0xaabb('0x10'),'data2':_0x52d0a3[_0xaabb('0x11')],'data3':_0x52d0a3[_0xaabb('0x12')],'data4':null,'data5':_0x52d0a3['queue'],'role':_0xaabb('0x13'),'internal':_0x52d0a3['accountcode']?_[_0xaabb('0x14')](_0x52d0a3['accountcode']):undefined,'uniqueid':_0x52d0a3[_0xaabb('0x15')]},'log':_0xaabb('0x7')});};exports[_0xaabb('0x16')]=function(_0x39e38d){return client[_0xaabb('0x6')]('CreateMemberReport',{'body':{'channel':_0xaabb('0x17'),'membername':_0x39e38d['membername'],'interface':_0x39e38d[_0xaabb('0xa')],'type':'TALKING','enterAt':_0x39e38d[_0xaabb('0x18')],'exitAt':_0x39e38d[_0xaabb('0x19')],'duration':moment(_0x39e38d[_0xaabb('0x19')])['diff'](_0x39e38d['starttime'],_0xaabb('0xf'))>=0x0?moment(_0x39e38d[_0xaabb('0x19')])['diff'](_0x39e38d[_0xaabb('0x18')],'seconds'):null,'data1':_0xaabb('0x1a'),'data2':_0x39e38d[_0xaabb('0x1b')],'data3':_0x39e38d[_0xaabb('0x12')],'data4':_0x39e38d[_0xaabb('0x1c')]||null,'role':_0xaabb('0x13'),'internal':_0x39e38d['accountcode']?_[_0xaabb('0x14')](_0x39e38d[_0xaabb('0x1b')]):undefined,'uniqueid':_0x39e38d[_0xaabb('0x15')]},'log':_0xaabb('0x7')});};
\ No newline at end of file
+var _0x57f1=['inbound','calleridnum','queue','agent','toNumber','accountcode','uniqueid','voiceDialReport','voice','membername','TALKING','starttime','endtime','outbound','../client','voiceQueueReport','Request','CreateMemberReport','lastAssignedTo','isNil','interface','format','SIP/%s','diff','queuecallerleaveAt','seconds'];(function(_0x3054be,_0x1bdc8b){var _0x3df150=function(_0x56cfbf){while(--_0x56cfbf){_0x3054be['push'](_0x3054be['shift']());}};_0x3df150(++_0x1bdc8b);}(_0x57f1,0x1c8));var _0x157f=function(_0x2c0af4,_0x851525){_0x2c0af4=_0x2c0af4-0x0;var _0x25fe61=_0x57f1[_0x2c0af4];return _0x25fe61;};'use strict';var moment=require('moment');var _=require('lodash');var util=require('util');var client=require(_0x157f('0x0'));exports[_0x157f('0x1')]=function(_0x244b26){var _0xf4acd1=_0x244b26['queuecallercompleteAt']||_0x244b26['queuecallerexitAt'];return client[_0x157f('0x2')](_0x157f('0x3'),{'body':{'channel':'voice','membername':_0x244b26[_0x157f('0x4')],'interface':_[_0x157f('0x5')](_0x244b26[_0x157f('0x6')])?util[_0x157f('0x7')](_0x157f('0x8'),_0x244b26[_0x157f('0x4')]):_0x244b26[_0x157f('0x6')],'type':'TALKING','enterAt':_0x244b26['queuecallerleaveAt'],'exitAt':_0xf4acd1,'duration':moment(_0xf4acd1)[_0x157f('0x9')](_0x244b26[_0x157f('0xa')],_0x157f('0xb')),'data1':_0x157f('0xc'),'data2':_0x244b26[_0x157f('0xd')],'data3':_0x244b26['exten'],'data4':null,'data5':_0x244b26[_0x157f('0xe')],'role':_0x157f('0xf'),'internal':_0x244b26['accountcode']?_[_0x157f('0x10')](_0x244b26[_0x157f('0x11')]):undefined,'uniqueid':_0x244b26[_0x157f('0x12')]},'log':'CreateMemberReport'});};exports[_0x157f('0x13')]=function(_0x47eed8){return client[_0x157f('0x2')](_0x157f('0x3'),{'body':{'channel':_0x157f('0x14'),'membername':_0x47eed8[_0x157f('0x15')],'interface':_0x47eed8[_0x157f('0x6')],'type':_0x157f('0x16'),'enterAt':_0x47eed8[_0x157f('0x17')],'exitAt':_0x47eed8[_0x157f('0x18')],'duration':moment(_0x47eed8[_0x157f('0x18')])[_0x157f('0x9')](_0x47eed8[_0x157f('0x17')],'seconds')>=0x0?moment(_0x47eed8[_0x157f('0x18')])['diff'](_0x47eed8['starttime'],_0x157f('0xb')):null,'data1':_0x157f('0x19'),'data2':_0x47eed8[_0x157f('0x11')],'data3':_0x47eed8['exten'],'data4':_0x47eed8['dialstring']||null,'role':'agent','internal':_0x47eed8['accountcode']?_[_0x157f('0x10')](_0x47eed8[_0x157f('0x11')]):undefined,'uniqueid':_0x47eed8[_0x157f('0x12')]},'log':'CreateMemberReport'});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x81d5=['stopRecordingOnTransfer','GetSettings','../client','getSettings','ShowSetting'];(function(_0x29afe7,_0x335185){var _0x23c00f=function(_0x370a1d){while(--_0x370a1d){_0x29afe7['push'](_0x29afe7['shift']());}};_0x23c00f(++_0x335185);}(_0x81d5,0x1ab));var _0x581d=function(_0x5454e2,_0x576f66){_0x5454e2=_0x5454e2-0x0;var _0x5b9409=_0x81d5[_0x5454e2];return _0x5b9409;};'use strict';var client=require(_0x581d('0x0'));exports[_0x581d('0x1')]=function(){return client['Request'](_0x581d('0x2'),{'options':{'raw':!![],'where':{'id':0x1},'attributes':[_0x581d('0x3')]},'log':_0x581d('0x4')});};
\ No newline at end of file
+var _0x89e8=['stopRecordingOnTransfer','GetSettings','../client','getSettings','Request','ShowSetting'];(function(_0x19eb76,_0x47fec3){var _0x49e394=function(_0x1c0a84){while(--_0x1c0a84){_0x19eb76['push'](_0x19eb76['shift']());}};_0x49e394(++_0x47fec3);}(_0x89e8,0x74));var _0x889e=function(_0x618414,_0x1a7a60){_0x618414=_0x618414-0x0;var _0x21c19a=_0x89e8[_0x618414];return _0x21c19a;};'use strict';var client=require(_0x889e('0x0'));exports[_0x889e('0x1')]=function(){return client[_0x889e('0x2')](_0x889e('0x3'),{'options':{'raw':!![],'where':{'id':0x1},'attributes':[_0x889e('0x4')]},'log':_0x889e('0x5')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa8c7=['Request','name','GetTemplate','getTemplates'];(function(_0x1fd675,_0x165dfe){var _0x16b554=function(_0x5761ff){while(--_0x5761ff){_0x1fd675['push'](_0x1fd675['shift']());}};_0x16b554(++_0x165dfe);}(_0xa8c7,0x1a3));var _0x7a8c=function(_0x5f5327,_0x52b78c){_0x5f5327=_0x5f5327-0x0;var _0x21301b=_0xa8c7[_0x5f5327];return _0x21301b;};'use strict';var client=require('../client');exports[_0x7a8c('0x0')]=function(_0x5efada){return function(_0x396208){return client[_0x7a8c('0x1')]('GetTemplate',{'options':{'raw':!![],'attributes':['id',_0x7a8c('0x2'),'html']},'log':_0x7a8c('0x3')});};};
\ No newline at end of file
+var _0xe605=['name','html','../client','getTemplates','Request','GetTemplate'];(function(_0x496040,_0x3746f){var _0x3545d7=function(_0x257ac9){while(--_0x257ac9){_0x496040['push'](_0x496040['shift']());}};_0x3545d7(++_0x3746f);}(_0xe605,0x92));var _0x5e60=function(_0x815a1,_0x134160){_0x815a1=_0x815a1-0x0;var _0x35f11a=_0xe605[_0x815a1];return _0x35f11a;};'use strict';var client=require(_0x5e60('0x0'));exports[_0x5e60('0x1')]=function(_0x5deab2){return function(_0x36add0){return client[_0x5e60('0x2')](_0x5e60('0x3'),{'options':{'raw':!![],'attributes':['id',_0x5e60('0x4'),_0x5e60('0x5')]},'log':_0x5e60('0x3')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xde7d=['value','Condition','AnyConditions','Action','Actions','action','data3','data6','data7','Request','GetTrigger','name','channel','AllConditions','field','operator'];(function(_0x6330a4,_0x31ce3f){var _0x3a9b65=function(_0x5cb8d1){while(--_0x5cb8d1){_0x6330a4['push'](_0x6330a4['shift']());}};_0x3a9b65(++_0x31ce3f);}(_0xde7d,0xc9));var _0xdde7=function(_0x98335,_0x228e21){_0x98335=_0x98335-0x0;var _0x3bc231=_0xde7d[_0x98335];return _0x3bc231;};'use strict';var client=require('../client');exports['getTriggers']=function(_0x3ef3eb){return function(_0x37498b){return client[_0xdde7('0x0')](_0xdde7('0x1'),{'options':{'raw':![],'attributes':['id',_0xdde7('0x2'),_0xdde7('0x3'),'status'],'include':[{'model':'Condition','as':_0xdde7('0x4'),'attributes':['id',_0xdde7('0x5'),_0xdde7('0x6'),_0xdde7('0x7')]},{'model':_0xdde7('0x8'),'as':_0xdde7('0x9'),'attributes':['id','field',_0xdde7('0x6'),_0xdde7('0x7')]},{'model':_0xdde7('0xa'),'as':_0xdde7('0xb'),'attributes':['id',_0xdde7('0xc'),'data1','data2',_0xdde7('0xd'),'data4','data5',_0xdde7('0xe'),_0xdde7('0xf')]}]},'log':'GetTrigger'});};};
\ No newline at end of file
+var _0xd41d=['data3','data4','data5','data6','GetTrigger','../client','getTriggers','Request','channel','status','AllConditions','operator','Condition','AnyConditions','field','value','Action','data1','data2'];(function(_0x3d6785,_0x492ea3){var _0x39a624=function(_0x27d7db){while(--_0x27d7db){_0x3d6785['push'](_0x3d6785['shift']());}};_0x39a624(++_0x492ea3);}(_0xd41d,0x10f));var _0xdd41=function(_0x48c7ea,_0x463a80){_0x48c7ea=_0x48c7ea-0x0;var _0x4b0969=_0xd41d[_0x48c7ea];return _0x4b0969;};'use strict';var client=require(_0xdd41('0x0'));exports[_0xdd41('0x1')]=function(_0x1960ac){return function(_0x53a8ce){return client[_0xdd41('0x2')]('GetTrigger',{'options':{'raw':![],'attributes':['id','name',_0xdd41('0x3'),_0xdd41('0x4')],'include':[{'model':'Condition','as':_0xdd41('0x5'),'attributes':['id','field',_0xdd41('0x6'),'value']},{'model':_0xdd41('0x7'),'as':_0xdd41('0x8'),'attributes':['id',_0xdd41('0x9'),_0xdd41('0x6'),_0xdd41('0xa')]},{'model':_0xdd41('0xb'),'as':'Actions','attributes':['id','action',_0xdd41('0xc'),_0xdd41('0xd'),_0xdd41('0xe'),_0xdd41('0xf'),_0xdd41('0x10'),_0xdd41('0x11'),'data7']}]},'log':_0xdd41('0x12')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd1b3=['GetTrunk','../client','getTrunks','Request','defaultuser'];(function(_0x430f44,_0x4ae21b){var _0x1f6b0f=function(_0x35968f){while(--_0x35968f){_0x430f44['push'](_0x430f44['shift']());}};_0x1f6b0f(++_0x4ae21b);}(_0xd1b3,0xec));var _0x3d1b=function(_0x1a16be,_0x516ca8){_0x1a16be=_0x1a16be-0x0;var _0x47b01b=_0xd1b3[_0x1a16be];return _0x47b01b;};'use strict';var client=require(_0x3d1b('0x0'));exports[_0x3d1b('0x1')]=function(_0x3787df){return function(_0x42e1ad){return client[_0x3d1b('0x2')]('GetTrunk',{'options':{'raw':!![],'where':{'active':0x1},'attributes':['id','name','registry',_0x3d1b('0x3')]},'log':_0x3d1b('0x4')});};};
\ No newline at end of file
+var _0xa031=['defaultuser','../client','Request','GetTrunk','registry'];(function(_0x5015d5,_0x27f005){var _0x2cd117=function(_0x3a5c56){while(--_0x3a5c56){_0x5015d5['push'](_0x5015d5['shift']());}};_0x2cd117(++_0x27f005);}(_0xa031,0x1f0));var _0x1a03=function(_0xcd5b18,_0x39032a){_0xcd5b18=_0xcd5b18-0x0;var _0x4fab5d=_0xa031[_0xcd5b18];return _0x4fab5d;};'use strict';var client=require(_0x1a03('0x0'));exports['getTrunks']=function(_0x38e9d4){return function(_0x22fdf5){return client[_0x1a03('0x1')](_0x1a03('0x2'),{'options':{'raw':!![],'where':{'active':0x1},'attributes':['id','name',_0x1a03('0x3'),_0x1a03('0x4')]},'log':_0x1a03('0x2')});};};
\ 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(_0x16eb2a,_0x1be63e){var _0x5b26dc=function(_0x4bb9fe){while(--_0x4bb9fe){_0x16eb2a['push'](_0x16eb2a['shift']());}};_0x5b26dc(++_0x1be63e);}(_0x70e0,0x17b));var _0x070e=function(_0x10efaa,_0x5316c0){_0x10efaa=_0x10efaa-0x0;var _0x4c8af9=_0x70e0[_0x10efaa];return _0x4c8af9;};'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 _0x34e8=['../client','getAgents','Request','GetUser','name','email','accountcode','fullname','online','lastLoginAt','pauseType','voicePause','mobile','interface','getTelephones','telephone','internal','savePause','PauseUser','saveUnpause','UnpauseUser','getAgent','ShowUser','agent','lastPauseAt'];(function(_0x32800b,_0x52db61){var _0x2394af=function(_0x380165){while(--_0x380165){_0x32800b['push'](_0x32800b['shift']());}};_0x2394af(++_0x52db61);}(_0x34e8,0x12c));var _0x834e=function(_0x4d2a25,_0x1770de){_0x4d2a25=_0x4d2a25-0x0;var _0x47646f=_0x34e8[_0x4d2a25];return _0x47646f;};'use strict';var client=require(_0x834e('0x0'));exports[_0x834e('0x1')]=function(){return function(){return client[_0x834e('0x2')](_0x834e('0x3'),{'options':{'raw':![],'where':{'role':'agent'},'attributes':['id',_0x834e('0x4'),_0x834e('0x5'),_0x834e('0x6'),_0x834e('0x7'),_0x834e('0x8'),_0x834e('0x9'),_0x834e('0xa'),'lastPauseAt',_0x834e('0xb'),'phone',_0x834e('0xc'),_0x834e('0xd')]},'log':_0x834e('0x1')});};};exports[_0x834e('0xe')]=function(){return function(){return client[_0x834e('0x2')](_0x834e('0x3'),{'options':{'raw':!![],'where':{'role':_0x834e('0xf')},'attributes':['id',_0x834e('0x4'),_0x834e('0x6'),_0x834e('0x10')]},'log':_0x834e('0xe')});};};exports[_0x834e('0x11')]=function(_0x14038b,_0x2e1a37,_0x293514){return client[_0x834e('0x2')](_0x834e('0x12'),{'body':{'type':_0x2e1a37,'uniqueid':_0x293514},'options':{'where':{'id':_0x14038b['id']}},'log':'savePause'});};exports[_0x834e('0x13')]=function(_0x6cd9b9){return client['Request'](_0x834e('0x14'),{'body':{},'options':{'where':{'id':_0x6cd9b9['id']}},'log':_0x834e('0x11')});};exports[_0x834e('0x15')]=function(_0x21cc0a){return client['Request'](_0x834e('0x16'),{'options':{'raw':![],'where':{'role':_0x834e('0x17'),'id':_0x21cc0a},'attributes':['id','name',_0x834e('0x5'),'accountcode',_0x834e('0x7'),_0x834e('0x8'),'lastLoginAt',_0x834e('0xa'),_0x834e('0x18'),_0x834e('0xb'),'interface']},'log':_0x834e('0x15')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x420d=['../client','create','Request','CreateVoiceAgentReport','update','UpdateVoiceAgentReport'];(function(_0x79b649,_0x2115b3){var _0x1af9b1=function(_0x153c9f){while(--_0x153c9f){_0x79b649['push'](_0x79b649['shift']());}};_0x1af9b1(++_0x2115b3);}(_0x420d,0x168));var _0xd420=function(_0x264e74,_0x338ee6){_0x264e74=_0x264e74-0x0;var _0x17ea21=_0x420d[_0x264e74];return _0x17ea21;};'use strict';var client=require(_0xd420('0x0'));exports[_0xd420('0x1')]=function(_0x414bc5){return client[_0xd420('0x2')](_0xd420('0x3'),{'body':_0x414bc5,'log':'CreateVoiceAgentReport'});};exports[_0xd420('0x4')]=function(_0x56d138,_0x56a866,_0x1ed4c8){return client['Request'](_0xd420('0x5'),{'body':_0x56d138,'options':{'where':{'uniqueid':_0x56a866,'interface':_0x1ed4c8,'agentcomplete':!![]}},'log':_0xd420('0x5')});};
\ No newline at end of file
+var _0x1cc6=['Request','CreateVoiceAgentReport','UpdateVoiceAgentReport','../client'];(function(_0x3c2738,_0x16695c){var _0x519c77=function(_0x5956ca){while(--_0x5956ca){_0x3c2738['push'](_0x3c2738['shift']());}};_0x519c77(++_0x16695c);}(_0x1cc6,0x83));var _0x61cc=function(_0x20589d,_0x55d5bf){_0x20589d=_0x20589d-0x0;var _0x422de9=_0x1cc6[_0x20589d];return _0x422de9;};'use strict';var client=require(_0x61cc('0x0'));exports['create']=function(_0x240688){return client[_0x61cc('0x1')](_0x61cc('0x2'),{'body':_0x240688,'log':_0x61cc('0x2')});};exports['update']=function(_0x519978,_0x320be3,_0x248fb5){return client[_0x61cc('0x1')]('UpdateVoiceAgentReport',{'body':_0x519978,'options':{'where':{'uniqueid':_0x320be3,'interface':_0x248fb5,'agentcomplete':!![]}},'log':_0x61cc('0x3')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7ad0=['lodash','create','Request','CreateVoiceCallReport','merge','context','callerid','getVoiceCallReports','GetVoiceCallReport','startOf','day','YYYY-MM-DD\x20HH:mm:ss','endOf','type','duration','GetVoiceCallReports','moment','util'];(function(_0x50ab5b,_0x1a1be6){var _0xed653d=function(_0x69ac99){while(--_0x69ac99){_0x50ab5b['push'](_0x50ab5b['shift']());}};_0xed653d(++_0x1a1be6);}(_0x7ad0,0x10c));var _0x07ad=function(_0x1fa29d,_0x458e1b){_0x1fa29d=_0x1fa29d-0x0;var _0x1614eb=_0x7ad0[_0x1fa29d];return _0x1614eb;};'use strict';var moment=require(_0x07ad('0x0'));var util=require(_0x07ad('0x1'));var _=require(_0x07ad('0x2'));var client=require('../client');exports[_0x07ad('0x3')]=function(_0x4c1864){return client[_0x07ad('0x4')](_0x07ad('0x5'),{'body':_[_0x07ad('0x6')](_0x4c1864,{'source':_0x4c1864['calleridnum'],'destinationcontext':_0x4c1864[_0x07ad('0x7')],'callerid':_0x4c1864[_0x07ad('0x8')],'amaflags':'DOCUMENTATION'}),'log':_0x07ad('0x5')});};exports[_0x07ad('0x9')]=function(){return function(){return client[_0x07ad('0x4')](_0x07ad('0xa'),{'options':{'where':{'type':['outbound'],'createdAt':{'$between':[moment()[_0x07ad('0xb')](_0x07ad('0xc'))['format'](_0x07ad('0xd')),moment()[_0x07ad('0xe')](_0x07ad('0xc'))['format']('YYYY-MM-DD\x20HH:mm:ss')]}},'attributes':[_0x07ad('0xf'),'disposition',_0x07ad('0x10'),'billableseconds']},'log':_0x07ad('0x11')});};};
\ No newline at end of file
+var _0x39d3=['create','Request','CreateVoiceCallReport','merge','context','callerid','DOCUMENTATION','GetVoiceCallReport','startOf','day','format','YYYY-MM-DD\x20HH:mm:ss','disposition','billableseconds','GetVoiceCallReports','moment','util','lodash'];(function(_0x1168a1,_0xa0d8c9){var _0xcc5ad8=function(_0x217dc3){while(--_0x217dc3){_0x1168a1['push'](_0x1168a1['shift']());}};_0xcc5ad8(++_0xa0d8c9);}(_0x39d3,0x12f));var _0x339d=function(_0x1312e2,_0x5604ed){_0x1312e2=_0x1312e2-0x0;var _0x5208c9=_0x39d3[_0x1312e2];return _0x5208c9;};'use strict';var moment=require(_0x339d('0x0'));var util=require(_0x339d('0x1'));var _=require(_0x339d('0x2'));var client=require('../client');exports[_0x339d('0x3')]=function(_0x3c9cfc){return client[_0x339d('0x4')](_0x339d('0x5'),{'body':_[_0x339d('0x6')](_0x3c9cfc,{'source':_0x3c9cfc['calleridnum'],'destinationcontext':_0x3c9cfc[_0x339d('0x7')],'callerid':_0x3c9cfc[_0x339d('0x8')],'amaflags':_0x339d('0x9')}),'log':'CreateVoiceCallReport'});};exports['getVoiceCallReports']=function(){return function(){return client[_0x339d('0x4')](_0x339d('0xa'),{'options':{'where':{'type':['outbound'],'createdAt':{'$between':[moment()[_0x339d('0xb')](_0x339d('0xc'))[_0x339d('0xd')](_0x339d('0xe')),moment()['endOf']('day')['format'](_0x339d('0xe'))]}},'attributes':['type',_0x339d('0xf'),'duration',_0x339d('0x10')]},'log':_0x339d('0x11')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd491=['Request','CreateVoiceDialReport','../client','create'];(function(_0x59e0d7,_0x34aad2){var _0x1b3966=function(_0x9e101d){while(--_0x9e101d){_0x59e0d7['push'](_0x59e0d7['shift']());}};_0x1b3966(++_0x34aad2);}(_0xd491,0xd2));var _0x1d49=function(_0x4a5fa6,_0x3f75be){_0x4a5fa6=_0x4a5fa6-0x0;var _0x43f622=_0xd491[_0x4a5fa6];return _0x43f622;};'use strict';var client=require(_0x1d49('0x0'));exports[_0x1d49('0x1')]=function(_0x2fd244){return client[_0x1d49('0x2')]('CreateVoiceDialReport',{'body':_0x2fd244,'log':_0x1d49('0x3')});};
\ No newline at end of file
+var _0x1aa0=['CreateVoiceDialReport','../client','Request'];(function(_0x5dfd76,_0x2c6a8c){var _0x58e2c0=function(_0x16a1f1){while(--_0x16a1f1){_0x5dfd76['push'](_0x5dfd76['shift']());}};_0x58e2c0(++_0x2c6a8c);}(_0x1aa0,0xf1));var _0x01aa=function(_0x16e0f5,_0x4ec0f3){_0x16e0f5=_0x16e0f5-0x0;var _0x4839d5=_0x1aa0[_0x16e0f5];return _0x4839d5;};'use strict';var client=require(_0x01aa('0x0'));exports['create']=function(_0x38977e){return client[_0x01aa('0x1')]('CreateVoiceDialReport',{'body':_0x38977e,'log':_0x01aa('0x2')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8c38=['recordingFormat','../client','getVoiceExtensions','GetVoiceExtension','exten'];(function(_0x6fac41,_0x28b7b7){var _0x2f5e6f=function(_0x3725e6){while(--_0x3725e6){_0x6fac41['push'](_0x6fac41['shift']());}};_0x2f5e6f(++_0x28b7b7);}(_0x8c38,0x83));var _0x88c3=function(_0x4c6748,_0x169107){_0x4c6748=_0x4c6748-0x0;var _0x5654ea=_0x8c38[_0x4c6748];return _0x5654ea;};'use strict';var client=require(_0x88c3('0x0'));exports[_0x88c3('0x1')]=function(){return function(){return client['Request'](_0x88c3('0x2'),{'options':{'raw':!![],'attributes':['id',_0x88c3('0x3'),_0x88c3('0x4')],'where':{'VoiceExtensionId':null}},'log':_0x88c3('0x1')});};};
\ No newline at end of file
+var _0x2242=['getVoiceExtensions','Request','exten','recordingFormat','../client'];(function(_0x2e633d,_0x158aed){var _0x22b6e2=function(_0x204103){while(--_0x204103){_0x2e633d['push'](_0x2e633d['shift']());}};_0x22b6e2(++_0x158aed);}(_0x2242,0x1a3));var _0x2224=function(_0x3beb0b,_0x5d5280){_0x3beb0b=_0x3beb0b-0x0;var _0x37c8b1=_0x2242[_0x3beb0b];return _0x37c8b1;};'use strict';var client=require(_0x2224('0x0'));exports[_0x2224('0x1')]=function(){return function(){return client[_0x2224('0x2')]('GetVoiceExtension',{'options':{'raw':!![],'attributes':['id',_0x2224('0x3'),_0x2224('0x4')],'where':{'VoiceExtensionId':null}},'log':'getVoiceExtensions'});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbe38=['dialMethod','dialLimitQueue','dialPredictiveOptimizationPercentage','dialPredictiveInterval','dialOriginateCallerIdName','dialOriginateCallerIdNumber','dialOriginateTimeout','dialQueueOptions','dialCongestionMaxRetry','dialBusyRetryFrequency','dialNoAnswerMaxRetry','dialGlobalMaxRetry','dialTimezone','dialGlobalInterval','dialPrefix','dialCheckDuplicateType','dialAMDActive','dialAMDInitialSilence','dialAMDAfterGreetingSilence','dialAMDTotalAnalysisTime','dialAMDMinWordLength','dialAMDBetweenWordsSilence','dialAMDMaximumNumberOfWords','dialAMDSilenceThreshold','dialAMDMaximumWordLength','dialRecallMeTimeout','dialOrderByScheduledAt','dialAgiAfterHangupAgent','dialAgiAfterHangupClient','dialQueueProject2','strategy','dialCutDigit','dialNoSuchNumberRetryFrequency','dialDropMaxRetry','dialDropRetryFrequency','dialAbandonedMaxRetry','dialAbandonedRetryFrequency','dialMachineMaxRetry','dialMachineRetryFrequency','dialAgentRejectMaxRetry','mandatoryDisposition','dialPredictiveIntervalMaxThreshold','dialPredictiveIntervalMinThreshold','Trunk','callerid','Pause','mandatoryDispositionPause','TrunkBackup','active','Interval','Intervals','interval','../client','getVoiceQueues','GetVoiceQueue','name','monitor_format','type','dialActive'];(function(_0x35352b,_0x25df27){var _0x4a6751=function(_0x33ae26){while(--_0x33ae26){_0x35352b['push'](_0x35352b['shift']());}};_0x4a6751(++_0x25df27);}(_0xbe38,0x120));var _0x8be3=function(_0x4ad493,_0x421d2a){_0x4ad493=_0x4ad493-0x0;var _0x45cf27=_0xbe38[_0x4ad493];return _0x45cf27;};'use strict';var client=require(_0x8be3('0x0'));exports[_0x8be3('0x1')]=function(){return function(){return client['Request'](_0x8be3('0x2'),{'options':{'raw':![],'attributes':['id',_0x8be3('0x3'),'acw','acwTimeout','autopause',_0x8be3('0x4'),_0x8be3('0x5'),_0x8be3('0x6'),_0x8be3('0x7'),'dialLimitChannel',_0x8be3('0x8'),'dialPowerLevel','dialPredictiveOptimization',_0x8be3('0x9'),_0x8be3('0xa'),_0x8be3('0xb'),_0x8be3('0xc'),_0x8be3('0xd'),_0x8be3('0xe'),'dialQueueTimeout','dialQueueProject',_0x8be3('0xf'),'dialCongestionRetryFrequency','dialBusyMaxRetry',_0x8be3('0x10'),_0x8be3('0x11'),'dialNoAnswerRetryFrequency',_0x8be3('0x12'),_0x8be3('0x13'),_0x8be3('0x14'),_0x8be3('0x15'),_0x8be3('0x16'),_0x8be3('0x17'),_0x8be3('0x18'),'dialAMDGreeting',_0x8be3('0x19'),_0x8be3('0x1a'),_0x8be3('0x1b'),_0x8be3('0x1c'),_0x8be3('0x1d'),_0x8be3('0x1e'),_0x8be3('0x1f'),'timeout',_0x8be3('0x20'),'dialRecallInQueue',_0x8be3('0x21'),_0x8be3('0x22'),_0x8be3('0x23'),_0x8be3('0x24'),_0x8be3('0x4'),_0x8be3('0x25'),'dialRandomLastDigitCallerIdNumber',_0x8be3('0x26'),'dialNoSuchNumberMaxRetry',_0x8be3('0x27'),_0x8be3('0x28'),_0x8be3('0x29'),_0x8be3('0x2a'),_0x8be3('0x2b'),_0x8be3('0x2c'),_0x8be3('0x2d'),_0x8be3('0x2e'),'dialAgentRejectRetryFrequency',_0x8be3('0x2f'),_0x8be3('0x30'),_0x8be3('0x31')],'include':[{'model':_0x8be3('0x32'),'as':'Trunk','attributes':['id',_0x8be3('0x3'),_0x8be3('0x33'),'active']},{'model':_0x8be3('0x34'),'as':_0x8be3('0x35'),'attributes':['id',_0x8be3('0x3')]},{'model':'Trunk','as':_0x8be3('0x36'),'attributes':['id',_0x8be3('0x3'),_0x8be3('0x33'),_0x8be3('0x37')]},{'model':_0x8be3('0x38'),'as':'Interval','attributes':['id',_0x8be3('0x3')],'include':[{'model':_0x8be3('0x38'),'as':_0x8be3('0x39'),'attributes':['id',_0x8be3('0x3'),_0x8be3('0x3a')]}]}]},'log':_0x8be3('0x1')});};};
\ No newline at end of file
+var _0x3b04=['GetVoiceQueue','name','acw','acwTimeout','monitor_format','type','dialActive','dialLimitChannel','dialLimitQueue','dialPowerLevel','dialPredictiveOptimizationPercentage','dialPredictiveInterval','dialOriginateCallerIdName','dialOriginateCallerIdNumber','dialQueueOptions','dialQueueTimeout','dialQueueProject','dialCongestionMaxRetry','dialCongestionRetryFrequency','dialBusyMaxRetry','dialNoAnswerMaxRetry','dialNoAnswerRetryFrequency','dialGlobalMaxRetry','dialTimezone','dialGlobalInterval','dialPrefix','dialCheckDuplicateType','dialAMDActive','dialAMDInitialSilence','dialAMDGreeting','dialAMDAfterGreetingSilence','dialAMDMinWordLength','dialAMDBetweenWordsSilence','dialAMDMaximumNumberOfWords','dialAMDMaximumWordLength','timeout','dialRecallInQueue','dialAgiAfterHangupAgent','dialQueueProject2','dialRandomLastDigitCallerIdNumber','dialCutDigit','dialDropMaxRetry','dialAbandonedRetryFrequency','mandatoryDisposition','Trunk','callerid','active','Pause','TrunkBackup','Interval','Intervals','getVoiceQueues','Request'];(function(_0x1583fe,_0x19d952){var _0x207a2a=function(_0x3f07bd){while(--_0x3f07bd){_0x1583fe['push'](_0x1583fe['shift']());}};_0x207a2a(++_0x19d952);}(_0x3b04,0xd2));var _0x43b0=function(_0x350bc3,_0x3080dc){_0x350bc3=_0x350bc3-0x0;var _0x48cce7=_0x3b04[_0x350bc3];return _0x48cce7;};'use strict';var client=require('../client');exports[_0x43b0('0x0')]=function(){return function(){return client[_0x43b0('0x1')](_0x43b0('0x2'),{'options':{'raw':![],'attributes':['id',_0x43b0('0x3'),_0x43b0('0x4'),_0x43b0('0x5'),'autopause',_0x43b0('0x6'),_0x43b0('0x7'),_0x43b0('0x8'),'dialMethod',_0x43b0('0x9'),_0x43b0('0xa'),_0x43b0('0xb'),'dialPredictiveOptimization',_0x43b0('0xc'),_0x43b0('0xd'),_0x43b0('0xe'),_0x43b0('0xf'),'dialOriginateTimeout',_0x43b0('0x10'),_0x43b0('0x11'),_0x43b0('0x12'),_0x43b0('0x13'),_0x43b0('0x14'),_0x43b0('0x15'),'dialBusyRetryFrequency',_0x43b0('0x16'),_0x43b0('0x17'),_0x43b0('0x18'),_0x43b0('0x19'),_0x43b0('0x1a'),_0x43b0('0x1b'),_0x43b0('0x1c'),_0x43b0('0x1d'),_0x43b0('0x1e'),_0x43b0('0x1f'),_0x43b0('0x20'),'dialAMDTotalAnalysisTime',_0x43b0('0x21'),_0x43b0('0x22'),_0x43b0('0x23'),'dialAMDSilenceThreshold',_0x43b0('0x24'),_0x43b0('0x25'),'dialRecallMeTimeout',_0x43b0('0x26'),'dialOrderByScheduledAt',_0x43b0('0x27'),'dialAgiAfterHangupClient',_0x43b0('0x28'),_0x43b0('0x6'),'strategy',_0x43b0('0x29'),_0x43b0('0x2a'),'dialNoSuchNumberMaxRetry','dialNoSuchNumberRetryFrequency',_0x43b0('0x2b'),'dialDropRetryFrequency','dialAbandonedMaxRetry',_0x43b0('0x2c'),'dialMachineMaxRetry','dialMachineRetryFrequency','dialAgentRejectMaxRetry','dialAgentRejectRetryFrequency',_0x43b0('0x2d'),'dialPredictiveIntervalMaxThreshold','dialPredictiveIntervalMinThreshold'],'include':[{'model':_0x43b0('0x2e'),'as':_0x43b0('0x2e'),'attributes':['id',_0x43b0('0x3'),_0x43b0('0x2f'),_0x43b0('0x30')]},{'model':_0x43b0('0x31'),'as':'mandatoryDispositionPause','attributes':['id',_0x43b0('0x3')]},{'model':_0x43b0('0x2e'),'as':_0x43b0('0x32'),'attributes':['id','name',_0x43b0('0x2f'),_0x43b0('0x30')]},{'model':_0x43b0('0x33'),'as':'Interval','attributes':['id','name'],'include':[{'model':_0x43b0('0x33'),'as':_0x43b0('0x34'),'attributes':['id',_0x43b0('0x3'),'interval']}]}]},'log':_0x43b0('0x0')});};};
\ 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(_0x175e58,_0x3e799c){var _0x37b8b8=function(_0x473631){while(--_0x473631){_0x175e58['push'](_0x175e58['shift']());}};_0x37b8b8(++_0x3e799c);}(_0xa9e0,0x123));var _0x0a9e=function(_0x491a7f,_0x28bb80){_0x491a7f=_0x491a7f-0x0;var _0x3d8f44=_0xa9e0[_0x491a7f];return _0x3d8f44;};'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(_0x56c2f4,_0x5c3eac){var _0x1e640d=function(_0x28d9f0){while(--_0x28d9f0){_0x56c2f4['push'](_0x56c2f4['shift']());}};_0x1e640d(++_0x5c3eac);}(_0xa9e0,0x123));var _0x0a9e=function(_0x2f3848,_0x48564d){_0x2f3848=_0x2f3848-0x0;var _0x102668=_0xa9e0[_0x2f3848];return _0x102668;};'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 _0x115c=['getVoiceQueueRtPauses','../client','GetVoiceQueueRtPauses'];(function(_0x72a654,_0xed1ef2){var _0x204f34=function(_0xcb2389){while(--_0xcb2389){_0x72a654['push'](_0x72a654['shift']());}};_0x204f34(++_0xed1ef2);}(_0x115c,0x82));var _0xc115=function(_0x4e82a1,_0x114f19){_0x4e82a1=_0x4e82a1-0x0;var _0x208d96=_0x115c[_0x4e82a1];return _0x208d96;};'use strict';var client=require(_0xc115('0x0'));exports['getVoiceQueueRtPauses']=function(_0x3ef548){return function(){return client['Request'](_0xc115('0x1'),{'options':{'where':{'VoiceQueueId':_0x3ef548,'paused':!![]},'raw':!![]},'log':_0xc115('0x2')});};};
\ No newline at end of file
+var _0xc190=['GetVoiceQueueRtPauses','getVoiceQueueRtPauses','Request'];(function(_0x4a8413,_0x40f24f){var _0x516201=function(_0x435551){while(--_0x435551){_0x4a8413['push'](_0x4a8413['shift']());}};_0x516201(++_0x40f24f);}(_0xc190,0x103));var _0x0c19=function(_0x515082,_0x3de400){_0x515082=_0x515082-0x0;var _0x211e00=_0xc190[_0x515082];return _0x211e00;};'use strict';var client=require('../client');exports[_0x0c19('0x0')]=function(_0x172d41){return function(){return client[_0x0c19('0x1')](_0x0c19('0x2'),{'options':{'where':{'VoiceQueueId':_0x172d41,'paused':!![]},'raw':!![]},'log':_0x0c19('0x0')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7a54=['create','Request','CreateVoiceRecording','monitorFilename','lodash','../client'];(function(_0x57c04a,_0x5d7993){var _0xae4b8=function(_0x4f65da){while(--_0x4f65da){_0x57c04a['push'](_0x57c04a['shift']());}};_0xae4b8(++_0x5d7993);}(_0x7a54,0x106));var _0x47a5=function(_0x42109c,_0x220bc1){_0x42109c=_0x42109c-0x0;var _0x19c5d0=_0x7a54[_0x42109c];return _0x19c5d0;};'use strict';var _=require(_0x47a5('0x0'));var client=require(_0x47a5('0x1'));exports[_0x47a5('0x2')]=function(_0x58157c){return client[_0x47a5('0x3')](_0x47a5('0x4'),{'body':_['merge'](_0x58157c,{'value':_0x58157c[_0x47a5('0x5')]}),'log':_0x47a5('0x4')});};
\ No newline at end of file
+var _0x7a54=['create','Request','CreateVoiceRecording','monitorFilename','lodash','../client'];(function(_0x3c830e,_0x60422){var _0xd03dad=function(_0x1f3d9d){while(--_0x1f3d9d){_0x3c830e['push'](_0x3c830e['shift']());}};_0xd03dad(++_0x60422);}(_0x7a54,0x106));var _0x47a5=function(_0x467b45,_0x24da2a){_0x467b45=_0x467b45-0x0;var _0x189ca8=_0x7a54[_0x467b45];return _0x189ca8;};'use strict';var _=require(_0x47a5('0x0'));var client=require(_0x47a5('0x1'));exports[_0x47a5('0x2')]=function(_0x58157c){return client[_0x47a5('0x3')](_0x47a5('0x4'),{'body':_['merge'](_0x58157c,{'value':_0x58157c[_0x47a5('0x5')]}),'log':_0x47a5('0x4')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe14f=['transfereeconnectedlinename','transfereecontext','transfereeexten','transfereelinkedid','isexternal','context','extension','blind','attendedTransfer','origtransfererchannel','origtransferercalleridnum','origtransferercalleridname','secondtransfererconnectedlinenum','secondtransfererconnectedlinename','origtransfereraccountcode','secondtransferercontext','secondtransfererexten','origtransfererlinkedid','transfertargetchannel','transfertargetcalleridnum','transfertargetcalleridname','transfertargetconnectedlinename','transfertargetaccountcode','transfertargetcontext','transfertargetexten','transfertargetlinkedid','origtransferercontext','origtransfererexten','attended','../client','transfers','blindTransfer','Request','CreateVoiceTransferReport','result','transfererchannel','transferercalleridname','transfererconnectedlinenum','transfererconnectedlinename','transfereraccountcode','transferercontext','transfererexten','transfererlinkedid','transfereechannel','transfereecalleridname','transfereeconnectedlinenum'];(function(_0x2cf005,_0x1cc57d){var _0x34f0c9=function(_0x1ae369){while(--_0x1ae369){_0x2cf005['push'](_0x2cf005['shift']());}};_0x34f0c9(++_0x1cc57d);}(_0xe14f,0x131));var _0xfe14=function(_0x59b5c3,_0x36c02a){_0x59b5c3=_0x59b5c3-0x0;var _0x3e4165=_0xe14f[_0x59b5c3];return _0x3e4165;};'use strict';var client=require(_0xfe14('0x0'));exports[_0xfe14('0x1')]={};exports[_0xfe14('0x2')]=function(_0x186fd2){return client[_0xfe14('0x3')](_0xfe14('0x4'),{'body':{'result':_0x186fd2[_0xfe14('0x5')],'transfererchannel':_0x186fd2[_0xfe14('0x6')],'transferercalleridnum':_0x186fd2['transferercalleridnum'],'transferercalleridname':_0x186fd2[_0xfe14('0x7')],'transfererconnectedlinenum':_0x186fd2[_0xfe14('0x8')],'transfererconnectedlinename':_0x186fd2[_0xfe14('0x9')],'transfereraccountcode':_0x186fd2[_0xfe14('0xa')],'transferercontext':_0x186fd2[_0xfe14('0xb')],'transfererexten':_0x186fd2[_0xfe14('0xc')],'transfererlinkedid':_0x186fd2[_0xfe14('0xd')],'transfereechannel':_0x186fd2[_0xfe14('0xe')],'transfereecalleridnum':_0x186fd2['transfereecalleridnum'],'transfereecalleridname':_0x186fd2[_0xfe14('0xf')],'transfereeconnectedlinenum':_0x186fd2[_0xfe14('0x10')],'transfereeconnectedlinename':_0x186fd2[_0xfe14('0x11')],'transfereeaccountcode':_0x186fd2['transfereeaccountcode'],'transfereecontext':_0x186fd2[_0xfe14('0x12')],'transfereeexten':_0x186fd2[_0xfe14('0x13')],'transfereelinkedid':_0x186fd2[_0xfe14('0x14')],'isexternal':_0x186fd2[_0xfe14('0x15')],'context':_0x186fd2[_0xfe14('0x16')],'extension':_0x186fd2[_0xfe14('0x17')],'type':_0xfe14('0x18')},'log':'CreateVoiceTransferReport'});};exports[_0xfe14('0x19')]=function(_0x492878){return client['Request'](_0xfe14('0x4'),{'body':{'result':_0x492878[_0xfe14('0x5')],'transfererchannel':_0x492878[_0xfe14('0x1a')],'transferercalleridnum':_0x492878[_0xfe14('0x1b')],'transferercalleridname':_0x492878[_0xfe14('0x1c')],'transfererconnectedlinenum':_0x492878[_0xfe14('0x1d')],'transfererconnectedlinename':_0x492878[_0xfe14('0x1e')],'transfereraccountcode':_0x492878[_0xfe14('0x1f')],'transferercontext':_0x492878[_0xfe14('0x20')],'transfererexten':_0x492878[_0xfe14('0x21')],'transfererlinkedid':_0x492878[_0xfe14('0x22')],'transfereechannel':_0x492878[_0xfe14('0x23')],'transfereecalleridnum':_0x492878[_0xfe14('0x24')],'transfereecalleridname':_0x492878[_0xfe14('0x25')],'transfereeconnectedlinenum':_0x492878['transfertargetconnectedlinenum'],'transfereeconnectedlinename':_0x492878[_0xfe14('0x26')],'transfereeaccountcode':_0x492878[_0xfe14('0x27')],'transfereecontext':_0x492878[_0xfe14('0x28')],'transfereeexten':_0x492878[_0xfe14('0x29')],'transfereelinkedid':_0x492878[_0xfe14('0x2a')],'isexternal':_0x492878[_0xfe14('0x15')],'context':_0x492878[_0xfe14('0x2b')],'extension':_0x492878[_0xfe14('0x2c')],'type':_0xfe14('0x2d')},'log':'CreateVoiceTransferReport'});};
\ No newline at end of file
+var _0x51a3=['transfertargetcalleridnum','transfertargetcalleridname','transfertargetconnectedlinenum','transfertargetaccountcode','transfertargetcontext','transfertargetexten','isexternal','../client','transfers','blindTransfer','CreateVoiceTransferReport','transfererchannel','transferercalleridnum','transferercalleridname','transfererconnectedlinename','transfereraccountcode','transfererexten','transfererlinkedid','transfereechannel','transfereecalleridnum','transfereeconnectedlinenum','transfereelinkedid','context','extension','blind','result','origtransferercalleridname','secondtransfererconnectedlinenum','origtransfereraccountcode','secondtransferercontext','origtransfererlinkedid'];(function(_0x94654a,_0x15d46d){var _0x45232d=function(_0x3ae343){while(--_0x3ae343){_0x94654a['push'](_0x94654a['shift']());}};_0x45232d(++_0x15d46d);}(_0x51a3,0x19a));var _0x351a=function(_0xf51ffc,_0x1e2556){_0xf51ffc=_0xf51ffc-0x0;var _0xf85472=_0x51a3[_0xf51ffc];return _0xf85472;};'use strict';var client=require(_0x351a('0x0'));exports[_0x351a('0x1')]={};exports[_0x351a('0x2')]=function(_0x59ea61){return client['Request'](_0x351a('0x3'),{'body':{'result':_0x59ea61['result'],'transfererchannel':_0x59ea61[_0x351a('0x4')],'transferercalleridnum':_0x59ea61[_0x351a('0x5')],'transferercalleridname':_0x59ea61[_0x351a('0x6')],'transfererconnectedlinenum':_0x59ea61['transfererconnectedlinenum'],'transfererconnectedlinename':_0x59ea61[_0x351a('0x7')],'transfereraccountcode':_0x59ea61[_0x351a('0x8')],'transferercontext':_0x59ea61['transferercontext'],'transfererexten':_0x59ea61[_0x351a('0x9')],'transfererlinkedid':_0x59ea61[_0x351a('0xa')],'transfereechannel':_0x59ea61[_0x351a('0xb')],'transfereecalleridnum':_0x59ea61[_0x351a('0xc')],'transfereecalleridname':_0x59ea61['transfereecalleridname'],'transfereeconnectedlinenum':_0x59ea61[_0x351a('0xd')],'transfereeconnectedlinename':_0x59ea61['transfereeconnectedlinename'],'transfereeaccountcode':_0x59ea61['transfereeaccountcode'],'transfereecontext':_0x59ea61['transfereecontext'],'transfereeexten':_0x59ea61['transfereeexten'],'transfereelinkedid':_0x59ea61[_0x351a('0xe')],'isexternal':_0x59ea61['isexternal'],'context':_0x59ea61[_0x351a('0xf')],'extension':_0x59ea61[_0x351a('0x10')],'type':_0x351a('0x11')},'log':_0x351a('0x3')});};exports['attendedTransfer']=function(_0x12d522){return client['Request'](_0x351a('0x3'),{'body':{'result':_0x12d522[_0x351a('0x12')],'transfererchannel':_0x12d522['origtransfererchannel'],'transferercalleridnum':_0x12d522['origtransferercalleridnum'],'transferercalleridname':_0x12d522[_0x351a('0x13')],'transfererconnectedlinenum':_0x12d522[_0x351a('0x14')],'transfererconnectedlinename':_0x12d522['secondtransfererconnectedlinename'],'transfereraccountcode':_0x12d522[_0x351a('0x15')],'transferercontext':_0x12d522[_0x351a('0x16')],'transfererexten':_0x12d522['secondtransfererexten'],'transfererlinkedid':_0x12d522[_0x351a('0x17')],'transfereechannel':_0x12d522['transfertargetchannel'],'transfereecalleridnum':_0x12d522[_0x351a('0x18')],'transfereecalleridname':_0x12d522[_0x351a('0x19')],'transfereeconnectedlinenum':_0x12d522[_0x351a('0x1a')],'transfereeconnectedlinename':_0x12d522['transfertargetconnectedlinename'],'transfereeaccountcode':_0x12d522[_0x351a('0x1b')],'transfereecontext':_0x12d522[_0x351a('0x1c')],'transfereeexten':_0x12d522[_0x351a('0x1d')],'transfereelinkedid':_0x12d522['transfertargetlinkedid'],'isexternal':_0x12d522[_0x351a('0x1e')],'context':_0x12d522['origtransferercontext'],'extension':_0x12d522['origtransfererexten'],'type':'attended'},'log':_0x351a('0x3')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xeae8=['sumDuration','sumHoldTime','talking','unmanaged','abandoned','waiting','loggedInDb','outbound','dialActive','dialMethod','dialOriginateCallerIdName','dialOriginateCallerIdNumber','dialOriginateTimeout','dialPrefix','temp','outboundAnswerAgiCallsDay','outboundAnswerCallsDay','outboundBlacklistCallsDay','outboundBusyCallsDay','outboundCongestionCallsDay','outboundDropCallsDayACS','outboundDropCallsDayCallersExit','outboundDropCallsDayTimeout','outboundNoAnswerCallsDay','outboundNoSuchCallsDay','outboundOriginateFailureCallsDay','outboundReCallsDay','outboundRejectCallsDay','outboundUnknownCallsDay','predictiveIntervalAnsweredCalls','predictiveIntervalAvgTalktime','predictiveIntervalDroppedCallsCallersExit','predictiveIntervalDroppedCallsTimeout','predictiveIntervalErlangCalls','predictiveIntervalErlangCallsDroppedCalls','predictiveIntervalHitRate','predictiveIntervalMultiplicativeFactor','predictiveIntervalPauses','predictiveIntervalAvailable','predictiveIntervalTotalCalls','originated','erlangCalls','erlangCallToSecond','erlangAbandonmentRate','erlangBusyFactor','startPredictive','startProgressive','Trunk','active','callerid','Interval','length','find','omit','undefined','values','channels','voicechannel','validate','map','uniqueid','channel','format','%s.%s','filename','wav','MixMonitor','ai(mixmonitorid)','monitors','/var/spool/asterisk/monitor/','toLowerCase','isNil','push','YYYY-MM-DD\x20HH:mm:ss','mixmonitorid','rec','status','MixMonitor\x20Success','Channel\x20doesn\x27t\x20exist','StopMixMonitor','stop','queueChannels','voicequeuechannel','voicequeuechannelhangup','Redirect','context','telephones','outboundChannels','run','event','Event\x20name\x20mandatory','emit','custom:','faxAccounts','send','checkAfterSend','server','http','127.0.0.1','log','AMI\x20RPC\x20server\x20listening\x20on\x20127.0.0.1:%d!','RPC\x20listening\x20on\x20port:','lodash','util','jayson/promise','bluebird','../../../config/environment','../ami','listen','%s/%s','SIP','name','timers','updateAcw','agents','updateStatusRealtime','QueuePause','error','asterisk','username','ami\x20disconnected','join','pick','keys','module','then','message','catch','isConnected','command','Command','Action','content','voiceQueues','hasOwnProperty','strategy','available','pTalking','sumBillable'];(function(_0x45593d,_0x5388eb){var _0x484151=function(_0x19db95){while(--_0x19db95){_0x45593d['push'](_0x45593d['shift']());}};_0x484151(++_0x5388eb);}(_0xeae8,0x66));var _0x8eae=function(_0x2af333,_0x54f43f){_0x2af333=_0x2af333-0x0;var _0x1f22a5=_0xeae8[_0x2af333];return _0x1f22a5;};'use strict';var _=require(_0x8eae('0x0'));var util=require(_0x8eae('0x1'));var jayson=require(_0x8eae('0x2'));var schema=require('validate');var BPromise=require(_0x8eae('0x3'));var moment=require('moment');var config=require(_0x8eae('0x4'));var properties=require('../properties');var ami=require(_0x8eae('0x5'));exports[_0x8eae('0x6')]=function(_0x30e4cc,_0x2f4010,_0xcc5f34){return new BPromise(function(_0x123053,_0x32c67f){var _0xd2b0={'QueuePause':function(_0x2dcd90){return new Promise(function(_0x2ae6e7,_0x476ba1){var _0x48581b=util['format'](_0x8eae('0x7'),_0x8eae('0x8'),_0x2dcd90[_0x8eae('0x9')]);if(_0x30e4cc[_0x8eae('0xa')]&&_0x30e4cc[_0x8eae('0xa')][_0x48581b]&&_0x30e4cc['timers'][_0x48581b]['timer']){_0x30e4cc['timers'][_0x48581b][_0x8eae('0xb')]();}if(_0x30e4cc[_0x8eae('0xc')][_0x48581b]){_0x30e4cc['agents'][_0x48581b][_0x8eae('0xd')]({'statePause':_0x2dcd90['pause']?!![]:![]});}_0x2ae6e7({'code':0xc8,'message':_0x8eae('0xe')});});},'Reload':function(_0x38d257){var _0x8d335b=this;return new Promise(function(_0x10f61e,_0x14172c){if(ami['isConnected']()==![]){return _0x14172c(_0x8d335b[_0x8eae('0xf')](0x1f4,[config[_0x8eae('0x10')]['ip'],config[_0x8eae('0x10')][_0x8eae('0x11')],_0x8eae('0x12')][_0x8eae('0x13')]('\x20')));}_0x38d257=_[_0x8eae('0x14')](_0x38d257,_[_0x8eae('0x15')](properties[_0x8eae('0x16')]));_0x38d257['action']='Reload';return ami['Action'](_0x38d257)[_0x8eae('0x17')](function(_0x47c1db){_0x10f61e({'code':0xc8,'message':_0x47c1db[_0x8eae('0x18')]});})[_0x8eae('0x19')](function(_0x386a97){_0x14172c(_0x8d335b[_0x8eae('0xf')](0x1f5,_0x386a97[_0x8eae('0x18')]));});});},'Command':function(_0x173672){var _0x3af89b=this;return new Promise(function(_0x42e734,_0xfbb712){if(ami[_0x8eae('0x1a')]()==![]){return _0xfbb712(_0x3af89b['error'](0x1f4,[config['asterisk']['ip'],config[_0x8eae('0x10')][_0x8eae('0x11')],_0x8eae('0x12')]['join']('\x20')));}_0x173672=_[_0x8eae('0x14')](_0x173672,_0x8eae('0x1b'));_0x173672['action']=_0x8eae('0x1c');return ami[_0x8eae('0x1d')](_0x173672)['then'](function(_0x1b3b2f){_0x42e734({'code':0xc8,'message':_0x1b3b2f[_0x8eae('0x1e')]});})[_0x8eae('0x19')](function(_0x282fa5){_0xfbb712(_0x3af89b[_0x8eae('0xf')](0x1f5,_0x282fa5[_0x8eae('0x18')]));});});},'VoiceQueues':function(_0x3761a6){return new Promise(function(_0x3efe66,_0x14c0c5){var _0x2fc7ec=[];for(var _0x386bec in _0x30e4cc['voiceQueues']){if(_0x30e4cc[_0x8eae('0x1f')][_0x8eae('0x20')](_0x386bec)){var _0x141940=_0x30e4cc[_0x8eae('0x1f')][_0x386bec];var _0x149b83={'id':_0x141940['id'],'name':_0x141940[_0x8eae('0x9')],'strategy':_0x141940[_0x8eae('0x21')],'answered':_0x141940['answered'],'available':_0x141940[_0x8eae('0x22')],'loggedIn':_0x141940['loggedIn'],'pTalking':_0x141940[_0x8eae('0x23')],'sumBillable':_0x141940[_0x8eae('0x24')],'sumDuration':_0x141940[_0x8eae('0x25')],'sumHoldTime':_0x141940[_0x8eae('0x26')]||0x0,'talking':_0x141940[_0x8eae('0x27')],'total':_0x141940['total'],'type':_0x141940['type'],'unmanaged':_0x141940[_0x8eae('0x28')],'abandoned':_0x141940[_0x8eae('0x29')],'waiting':_0x141940[_0x8eae('0x2a')],'loggedInDb':_0x141940[_0x8eae('0x2b')]};if(_0x141940['type']===_0x8eae('0x2c')){_0x149b83[_0x8eae('0x2d')]=_0x141940[_0x8eae('0x2d')];_0x149b83[_0x8eae('0x2e')]=_0x141940[_0x8eae('0x2e')];_0x149b83[_0x8eae('0x2f')]=_0x141940[_0x8eae('0x2f')];_0x149b83[_0x8eae('0x30')]=_0x141940[_0x8eae('0x30')];_0x149b83[_0x8eae('0x31')]=_0x141940[_0x8eae('0x31')];_0x149b83[_0x8eae('0x32')]=_0x141940[_0x8eae('0x32')];_0x149b83[_0x8eae('0x33')]=_0x141940[_0x8eae('0x33')];_0x149b83[_0x8eae('0x34')]=_0x141940[_0x8eae('0x34')];_0x149b83[_0x8eae('0x35')]=_0x141940[_0x8eae('0x35')];_0x149b83[_0x8eae('0x36')]=_0x141940[_0x8eae('0x36')];_0x149b83['outboundBusyCallsDay']=_0x141940[_0x8eae('0x37')];_0x149b83[_0x8eae('0x38')]=_0x141940[_0x8eae('0x38')];_0x149b83['outboundDropCallsDayACS']=_0x141940[_0x8eae('0x39')];_0x149b83[_0x8eae('0x3a')]=_0x141940[_0x8eae('0x3a')];_0x149b83[_0x8eae('0x3b')]=_0x141940['outboundDropCallsDayTimeout'];_0x149b83[_0x8eae('0x3c')]=_0x141940['outboundNoAnswerCallsDay'];_0x149b83['outboundNoSuchCallsDay']=_0x141940[_0x8eae('0x3d')];_0x149b83[_0x8eae('0x3e')]=_0x141940[_0x8eae('0x3e')];_0x149b83[_0x8eae('0x3f')]=_0x141940[_0x8eae('0x3f')];_0x149b83[_0x8eae('0x40')]=_0x141940[_0x8eae('0x40')];_0x149b83['outboundUnknownCallsDay']=_0x141940[_0x8eae('0x41')];_0x149b83[_0x8eae('0x42')]=_0x141940['predictiveIntervalAnsweredCalls'];_0x149b83['predictiveIntervalAvgHoldtime']=_0x141940['predictiveIntervalAvgHoldtime'];_0x149b83[_0x8eae('0x43')]=_0x141940[_0x8eae('0x43')];_0x149b83['predictiveIntervalDroppedCallsCallersExit']=_0x141940[_0x8eae('0x44')];_0x149b83[_0x8eae('0x45')]=_0x141940['predictiveIntervalDroppedCallsTimeout'];_0x149b83[_0x8eae('0x46')]=_0x141940[_0x8eae('0x46')];_0x149b83[_0x8eae('0x47')]=_0x141940[_0x8eae('0x47')];_0x149b83[_0x8eae('0x48')]=_0x141940['predictiveIntervalHitRate'];_0x149b83[_0x8eae('0x49')]=_0x141940[_0x8eae('0x49')];_0x149b83[_0x8eae('0x4a')]=_0x141940['predictiveIntervalPauses'];_0x149b83[_0x8eae('0x4b')]=_0x141940[_0x8eae('0x4b')];_0x149b83['predictiveIntervalTotalCalls']=_0x141940[_0x8eae('0x4c')];_0x149b83[_0x8eae('0x18')]=_0x141940[_0x8eae('0x18')];_0x149b83[_0x8eae('0x4d')]=_0x141940['originated'];_0x149b83[_0x8eae('0x4e')]=_0x141940[_0x8eae('0x4e')];_0x149b83[_0x8eae('0x4f')]=_0x141940[_0x8eae('0x4f')];_0x149b83['erlangAbandonmentRate']=_0x141940[_0x8eae('0x50')];_0x149b83[_0x8eae('0x51')]=_0x141940[_0x8eae('0x51')];_0x149b83[_0x8eae('0x52')]=_0x141940['startPredictive'];_0x149b83[_0x8eae('0x53')]=_0x141940['startProgressive'];}if(_0x141940[_0x8eae('0x54')]){_0x149b83['Trunk']={'id':_0x141940[_0x8eae('0x54')]['id'],'name':_0x141940[_0x8eae('0x54')]['name'],'active':_0x141940[_0x8eae('0x54')][_0x8eae('0x55')],'callerid':_0x141940[_0x8eae('0x54')][_0x8eae('0x56')]};}if(_0x141940[_0x8eae('0x57')]){_0x149b83[_0x8eae('0x57')]={'id':_0x141940[_0x8eae('0x57')]['id'],'name':_0x141940[_0x8eae('0x57')][_0x8eae('0x9')]};}_0x2fc7ec['push'](_0x149b83);}}_0x3efe66({'count':_0x2fc7ec[_0x8eae('0x58')],'rows':_0x2fc7ec});});},'UpdateVoiceQueue':function(_0x590e0b){return new Promise(function(_0xcf1512,_0x39aeff){var _0x316ad5=_[_0x8eae('0x59')](_0x30e4cc['voiceQueues'],{'id':parseInt(_0x590e0b['id'])});var _0x2a4bc9=_[_0x8eae('0x5a')](_0x590e0b,['id']);if(_0x316ad5){for(var _0x27cccb in _0x2a4bc9){if(typeof _0x2a4bc9[_0x27cccb]!==_0x8eae('0x5b')&&typeof _0x316ad5[_0x27cccb]!==_0x8eae('0x5b')){_0x316ad5[_0x27cccb]=_0x2a4bc9[_0x27cccb];}}_0xcf1512(_0x316ad5);}else{_0x39aeff();}});},'VoiceChannels':function(_0xd3ff6b){return new Promise(function(_0x238526,_0x41eca2){var _0x324da8=_[_0x8eae('0x5c')](_0x30e4cc[_0x8eae('0x5d')]);_0x238526({'count':_0x324da8['length'],'rows':_0x324da8});});},'VoiceChannelMixMonitor':function(_0x2e06bb){var _0x295507=this;return new Promise(function(_0x529e67,_0x40c3bb){if(ami['isConnected']()==![]){return _0x40c3bb(_0x295507[_0x8eae('0xf')](0x1f4,[config['asterisk']['ip'],config[_0x8eae('0x10')]['username'],_0x8eae('0x12')][_0x8eae('0x13')]('\x20')));}var _0x470f54=schema(properties[_0x8eae('0x5e')])[_0x8eae('0x5f')](_0x2e06bb);if(_0x470f54[_0x8eae('0x58')]>0x0){return _0x40c3bb(_0x295507[_0x8eae('0xf')](0x1f4,_[_0x8eae('0x60')](_0x470f54,_0x8eae('0x18'))[_0x8eae('0x13')](',\x20')));}var _0x328024=_['find'](_0x30e4cc['channels'],{'uniqueid':_0x2e06bb[_0x8eae('0x61')]});if(_0x328024&&_0x328024[_0x8eae('0x62')]){var _0x2657e9=util[_0x8eae('0x63')](_0x8eae('0x64'),_0x2e06bb[_0x8eae('0x65')]||_0x2e06bb['uniqueid'],_0x2e06bb[_0x8eae('0x63')]||_0x8eae('0x66'));return ami[_0x8eae('0x1d')]({'action':_0x8eae('0x67'),'channel':_0x328024[_0x8eae('0x62')],'file':_0x2657e9,'options':_0x8eae('0x68')})['then'](function(_0x14ec02){var _0x2e5560=_['find'](_0x328024[_0x8eae('0x69')],{'filename':_0x8eae('0x6a')+_0x2657e9[_0x8eae('0x6b')]()});if(_[_0x8eae('0x6c')](_0x2e5560)){_0x328024[_0x8eae('0x69')][_0x8eae('0x6d')]({'filename':'/var/spool/asterisk/monitor/'+_0x2657e9[_0x8eae('0x6b')](),'createdAt':moment()['format'](_0x8eae('0x6e')),'mixmonitorid':_0x14ec02[_0x8eae('0x6f')],'status':_0x8eae('0x70')});}else{_0x2e5560['mixmonitorid']=_0x14ec02[_0x8eae('0x6f')];_0x2e5560[_0x8eae('0x71')]=_0x8eae('0x70');}_0x529e67({'code':0xc8,'message':[_0x2e06bb[_0x8eae('0x61')],_0x8eae('0x72'),_0x14ec02[_0x8eae('0x6f')]][_0x8eae('0x13')]('\x20'),'mixmonitorid':_0x14ec02[_0x8eae('0x6f')]});})[_0x8eae('0x19')](function(_0x2d768d){_0x40c3bb(_0x295507[_0x8eae('0xf')](0x1f5,[_0x2e06bb['uniqueid'],_0x2d768d[_0x8eae('0x18')][_0x8eae('0x6b')]()][_0x8eae('0x13')]('\x20')));});}else{return _0x40c3bb(_0x295507[_0x8eae('0xf')](0x1f5,_0x8eae('0x73')));}});},'VoiceChannelStopMixMonitor':function(_0x1404df){var _0x30ff16=this;return new Promise(function(_0x1d105e,_0x60b3ea){if(ami[_0x8eae('0x1a')]()==![]){return _0x60b3ea(_0x30ff16[_0x8eae('0xf')](0x1f4,[config['asterisk']['ip'],config[_0x8eae('0x10')][_0x8eae('0x11')],_0x8eae('0x12')][_0x8eae('0x13')]('\x20')));}var _0x2ff80d=schema(properties[_0x8eae('0x5e')])['validate'](_0x1404df);if(_0x2ff80d[_0x8eae('0x58')]>0x0){return _0x60b3ea(_0x30ff16['error'](0x1f4,_[_0x8eae('0x60')](_0x2ff80d,'message')[_0x8eae('0x13')](',\x20')));}var _0x113b86=_['find'](_0x30e4cc[_0x8eae('0x5d')],{'uniqueid':_0x1404df['uniqueid']});if(_0x113b86){return BPromise['resolve']()[_0x8eae('0x17')](function(){if(_0x113b86['channel']){return ami[_0x8eae('0x1d')]({'action':'StopMixMonitor','channel':_0x113b86[_0x8eae('0x62')],'mixmonitorid':_0x1404df['mixmonitorid']})[_0x8eae('0x19')](function(_0x5740cf){});}})['then'](function(){if(_0x113b86['destinationchannel']){return ami[_0x8eae('0x1d')]({'action':_0x8eae('0x74'),'channel':_0x113b86['destinationchannel'],'mixmonitorid':_0x1404df[_0x8eae('0x6f')]})[_0x8eae('0x19')](function(_0x3501ff){});}})['then'](function(_0x257c60){var _0x503ebe=_[_0x8eae('0x59')](_0x113b86['monitors'],{'mixmonitorid':_0x1404df['mixmonitorid']});if(_0x503ebe){_0x503ebe[_0x8eae('0x71')]=_0x8eae('0x75');}})['then'](function(){var _0x3c8a31=util[_0x8eae('0x63')]('%s.%s',_0x1404df[_0x8eae('0x65')]||_0x1404df[_0x8eae('0x61')],_0x1404df[_0x8eae('0x63')]||_0x8eae('0x66'));var _0x2ae59d=_['find'](_0x113b86[_0x8eae('0x69')],{'filename':_0x8eae('0x6a')+_0x3c8a31['toLowerCase']()});if(_0x2ae59d){_0x2ae59d[_0x8eae('0x71')]=_0x8eae('0x75');}})[_0x8eae('0x17')](function(){_0x1d105e({'code':0xc8,'message':[_0x1404df[_0x8eae('0x61')],'StopMixMonitor\x20Success'][_0x8eae('0x13')]('\x20')});})[_0x8eae('0x19')](function(_0x24dfd2){_0x60b3ea(_0x30ff16[_0x8eae('0xf')](0x1f5,[_0x1404df[_0x8eae('0x61')],_0x24dfd2[_0x8eae('0x18')][_0x8eae('0x6b')]()][_0x8eae('0x13')]('\x20')));});}else{return _0x60b3ea(_0x30ff16[_0x8eae('0xf')](0x1f5,_0x8eae('0x73')));}});},'VoiceQueuesChannels':function(_0xacd8fc){return new Promise(function(_0x59ef33,_0x515840){var _0x15a043=_[_0x8eae('0x5c')](_0x30e4cc[_0x8eae('0x76')]);_0x59ef33({'count':_0x15a043[_0x8eae('0x58')],'rows':_0x15a043});});},'VoiceQueuesChannel':function(_0x7d316c){var _0x4e4111=this;return new Promise(function(_0x303563,_0x4d14e2){var _0x5dcacd=schema(properties[_0x8eae('0x77')])[_0x8eae('0x5f')](_0x7d316c);if(_0x5dcacd[_0x8eae('0x58')]>0x0){return _0x4d14e2(_0x4e4111[_0x8eae('0xf')](0x1f4,_[_0x8eae('0x60')](_0x5dcacd,_0x8eae('0x18'))[_0x8eae('0x13')](',\x20')));}var _0x1a176a=_[_0x8eae('0x59')](_0x30e4cc[_0x8eae('0x76')],{'uniqueid':_0x7d316c[_0x8eae('0x61')]});if(_0x1a176a){_0x303563(_0x1a176a);}else{return _0x4d14e2(_0x4e4111[_0x8eae('0xf')](0x1f5,'Channel\x20doesn\x27t\x20exist'));}});},'VoiceQueuesChannelHangup':function(_0x1025f8){var _0x51eb3f=this;return new Promise(function(_0x56de7b,_0x4898c5){if(ami[_0x8eae('0x1a')]()==![]){return _0x4898c5(_0x51eb3f[_0x8eae('0xf')](0x1f4,[config['asterisk']['ip'],config[_0x8eae('0x10')]['username'],'ami\x20disconnected'][_0x8eae('0x13')]('\x20')));}var _0x384021=schema(properties[_0x8eae('0x78')])[_0x8eae('0x5f')](_0x1025f8);if(_0x384021[_0x8eae('0x58')]>0x0){return _0x4898c5(_0x51eb3f[_0x8eae('0xf')](0x1f4,_[_0x8eae('0x60')](_0x384021,_0x8eae('0x18'))['join'](',\x20')));}var _0x4a457a=_[_0x8eae('0x59')](_0x30e4cc[_0x8eae('0x76')],{'uniqueid':_0x1025f8['uniqueid']});if(_0x4a457a&&_0x4a457a[_0x8eae('0x62')]){return ami['Action']({'action':'Hangup','channel':_0x4a457a['channel']})[_0x8eae('0x17')](function(_0xc0a1f3){_0x56de7b({'code':0xc8,'message':[_0x1025f8[_0x8eae('0x61')],_0xc0a1f3[_0x8eae('0x18')][_0x8eae('0x6b')]()]['join']('\x20')});})[_0x8eae('0x19')](function(_0x5092fe){_0x4898c5(_0x51eb3f['error'](0x1f5,[_0x1025f8[_0x8eae('0x61')],_0x5092fe[_0x8eae('0x18')][_0x8eae('0x6b')]()][_0x8eae('0x13')]('\x20')));});}else{return _0x4898c5(_0x51eb3f[_0x8eae('0xf')](0x1f5,'Channel\x20doesn\x27t\x20exist'));}});},'VoiceQueuesChannelRedirect':function(_0x45e44c){var _0x30287e=this;return new Promise(function(_0x1de41a,_0x3b408c){if(ami[_0x8eae('0x1a')]()==![]){return _0x3b408c(_0x30287e[_0x8eae('0xf')](0x1f4,[config['asterisk']['ip'],config[_0x8eae('0x10')]['username'],_0x8eae('0x12')][_0x8eae('0x13')]('\x20')));}var _0x366fa1=schema(properties['voicequeuechannelredirect'])[_0x8eae('0x5f')](_0x45e44c);if(_0x366fa1[_0x8eae('0x58')]>0x0){return _0x3b408c(_0x30287e[_0x8eae('0xf')](0x1f4,_['map'](_0x366fa1,_0x8eae('0x18'))[_0x8eae('0x13')](',\x20')));}var _0x520981=_[_0x8eae('0x59')](_0x30e4cc[_0x8eae('0x76')],{'uniqueid':_0x45e44c[_0x8eae('0x61')]});if(_0x520981&&_0x520981[_0x8eae('0x62')]){return ami[_0x8eae('0x1d')]({'action':_0x8eae('0x79'),'channel':_0x520981['channel'],'exten':_0x45e44c['exten'],'context':_0x45e44c[_0x8eae('0x7a')]||_0x520981[_0x8eae('0x7a')],'priority':0x1})[_0x8eae('0x17')](function(_0x29ff55){_0x1de41a({'code':0xc8,'message':[_0x45e44c[_0x8eae('0x61')],_0x29ff55[_0x8eae('0x18')][_0x8eae('0x6b')]()][_0x8eae('0x13')]('\x20')});})[_0x8eae('0x19')](function(_0x2bfe6e){_0x3b408c(_0x30287e['error'](0x1f5,[_0x45e44c[_0x8eae('0x61')],_0x2bfe6e[_0x8eae('0x18')]['toLowerCase']()]['join']('\x20')));});}else{return _0x3b408c(_0x30287e[_0x8eae('0xf')](0x1f5,_0x8eae('0x73')));}});},'Agents':function(_0x1bd1a1){return new Promise(function(_0x549547,_0x172d9b){var _0x46b27d=_[_0x8eae('0x5c')](_0x30e4cc['agents']);_0x549547({'count':_0x46b27d[_0x8eae('0x58')],'rows':_0x46b27d});});},'Telephones':function(_0x476aac){return new Promise(function(_0x2d868b,_0x4e8ecc){var _0x48b8f5=_[_0x8eae('0x5c')](_0x30e4cc[_0x8eae('0x7b')]);_0x2d868b({'count':_0x48b8f5[_0x8eae('0x58')],'rows':_0x48b8f5});});},'Trunks':function(_0x274c91){return new Promise(function(_0x3e40fb,_0x1ff60c){var _0x378ee4=_[_0x8eae('0x5c')](_0x30e4cc['trunks']);_0x3e40fb({'count':_0x378ee4[_0x8eae('0x58')],'rows':_0x378ee4});});},'OutboundChannels':function(_0x582a8d){return new Promise(function(_0x3644d9,_0x16db71){var _0x4c583b=_[_0x8eae('0x5c')](_0x30e4cc[_0x8eae('0x7c')]);_0x3644d9({'count':_0x4c583b[_0x8eae('0x58')],'rows':_0x4c583b});});},'Outbound':function(_0x11705b){return new Promise(function(_0x20635f,_0x543685){_0x20635f(_0x30e4cc[_0x8eae('0x2c')]);});},'Campaigns':function(_0x40d9d2){return new Promise(function(_0xda4dee,_0x594c64){var _0xbde2b8=_[_0x8eae('0x5c')](_0x30e4cc['campaigns']);_0xda4dee({'count':_0xbde2b8[_0x8eae('0x58')],'rows':_0xbde2b8});});},'VoiceQueuesPreview':function(_0xe98043){var _0xc5328e=this;return new Promise(function(_0x583315,_0x926831){_0x2f4010[_0x8eae('0x7d')](_0xe98043['id'])[_0x8eae('0x17')](function(_0x8fdb87){_0x583315({'code':0xc8,'message':_0x8fdb87[_0x8eae('0x18')]});})[_0x8eae('0x19')](function(_0x4cda77){_0x926831(_0xc5328e['error'](0x1f4,_0x4cda77[_0x8eae('0x18')]));});});},'EventManager':function(_0xc04b9a){var _0x4b4f4b=this;return new Promise(function(_0x260177,_0xf6fcd7){if(!_0xc04b9a[_0x8eae('0x7e')]){return _0xf6fcd7(_0x4b4f4b['error'](0x1f4,_0x8eae('0x7f')));}ami[_0x8eae('0x80')](_0x8eae('0x81')+_0xc04b9a[_0x8eae('0x7e')],_0xc04b9a['message']);_0x260177({'code':0xc8,'message':_0xc04b9a});});},'FaxAccounts':function(_0x9fe46b){return new Promise(function(_0x32f653,_0x222cb3){var _0xda11a5=_[_0x8eae('0x5c')](_0x30e4cc[_0x8eae('0x82')]);_0x32f653({'count':_0xda11a5[_0x8eae('0x58')],'rows':_0xda11a5});});},'SendFax':function(_0x248ae3){var _0xc20b44=this;return new Promise(function(_0x337d7d,_0x34e09c){_0xcc5f34[_0x8eae('0x83')](_0x248ae3)[_0x8eae('0x17')](function(_0x84fc0){_0x337d7d({'code':0xc8,'message':_0x84fc0[_0x8eae('0x18')]});})[_0x8eae('0x19')](function(_0x46000c){_0x34e09c(_0xc20b44[_0x8eae('0xf')](0x1f4,_0x46000c[_0x8eae('0x18')]));});});},'CheckAfterSend':function(_0xa86aa1){var _0x3abfbc=this;return new Promise(function(_0x55369f,_0x2b86ad){_0xcc5f34[_0x8eae('0x84')](_0xa86aa1)[_0x8eae('0x17')](function(_0x36e163){_0x55369f({'code':0xc8,'message':_0x36e163['message']});})[_0x8eae('0x19')](function(_0x59653d){_0x2b86ad(_0x3abfbc[_0x8eae('0xf')](0x1f4,_0x59653d[_0x8eae('0x18')]));});});}};var _0x596d59=jayson[_0x8eae('0x85')](_0xd2b0)[_0x8eae('0x86')]();_0x596d59['on'](_0x8eae('0xf'),function(_0x400da5){return _0x32c67f(_0x400da5);});_0x596d59['listen'](0x232a,_0x8eae('0x87'),function(){console[_0x8eae('0x88')](_0x8eae('0x89'),0x232a);return _0x123053(_0x8eae('0x8a')+0x232a);});});};
\ No newline at end of file
+var _0xafc4=['command','Command','voiceQueues','hasOwnProperty','strategy','pTalking','sumBillable','sumHoldTime','talking','abandoned','waiting','loggedInDb','type','outbound','dialActive','dialMethod','dialOriginateCallerIdName','dialOriginateCallerIdNumber','dialOriginateTimeout','dialPrefix','outboundAnswerAgiCallsDay','outboundAnswerCallsDay','outboundBlacklistCallsDay','outboundBusyCallsDay','outboundCongestionCallsDay','outboundDropCallsDayACS','outboundDropCallsDayCallersExit','outboundDropCallsDayTimeout','outboundNoAnswerCallsDay','outboundOriginateFailureCallsDay','outboundReCallsDay','outboundRejectCallsDay','predictiveIntervalAnsweredCalls','predictiveIntervalAvgHoldtime','predictiveIntervalAvgTalktime','predictiveIntervalDroppedCallsCallersExit','predictiveIntervalDroppedCallsTimeout','predictiveIntervalErlangCalls','predictiveIntervalErlangCallsDroppedCalls','predictiveIntervalHitRate','predictiveIntervalMultiplicativeFactor','predictiveIntervalPauses','predictiveIntervalAvailable','predictiveIntervalTotalCalls','originated','erlangCalls','erlangCallToSecond','erlangAbandonmentRate','erlangBusyFactor','startPredictive','startProgressive','Trunk','callerid','Interval','push','length','find','omit','undefined','values','voicechannel','uniqueid','%s.%s','filename','wav','MixMonitor','channel','ai(mixmonitorid)','monitors','/var/spool/asterisk/monitor/','toLowerCase','isNil','YYYY-MM-DD\x20HH:mm:ss','mixmonitorid','status','rec','MixMonitor\x20Success','Channel\x20doesn\x27t\x20exist','validate','map','channels','resolve','StopMixMonitor','destinationchannel','stop','queueChannels','Hangup','voicequeuechannelredirect','exten','context','telephones','outboundChannels','campaigns','run','event','Event\x20name\x20mandatory','custom:','faxAccounts','send','server','http','127.0.0.1','log','AMI\x20RPC\x20server\x20listening\x20on\x20127.0.0.1:%d!','RPC\x20listening\x20on\x20port:','lodash','jayson/promise','bluebird','moment','../../../config/environment','../properties','format','%s/%s','SIP','name','timers','updateAcw','agents','updateStatusRealtime','pause','QueuePause','error','asterisk','username','pick','module','action','Reload','Action','then','message','catch','isConnected','ami\x20disconnected','join'];(function(_0x4d955b,_0x1eb048){var _0x1c06b8=function(_0x2a4fc9){while(--_0x2a4fc9){_0x4d955b['push'](_0x4d955b['shift']());}};_0x1c06b8(++_0x1eb048);}(_0xafc4,0x69));var _0x4afc=function(_0x44de3c,_0x5b4497){_0x44de3c=_0x44de3c-0x0;var _0x3e6328=_0xafc4[_0x44de3c];return _0x3e6328;};'use strict';var _=require(_0x4afc('0x0'));var util=require('util');var jayson=require(_0x4afc('0x1'));var schema=require('validate');var BPromise=require(_0x4afc('0x2'));var moment=require(_0x4afc('0x3'));var config=require(_0x4afc('0x4'));var properties=require(_0x4afc('0x5'));var ami=require('../ami');exports['listen']=function(_0x5378e5,_0x36cb50,_0x471d45){return new BPromise(function(_0x16953b,_0x1bb281){var _0xc828d9={'QueuePause':function(_0xaf053d){return new Promise(function(_0x5e1e29,_0x31e165){var _0x1c740c=util[_0x4afc('0x6')](_0x4afc('0x7'),_0x4afc('0x8'),_0xaf053d[_0x4afc('0x9')]);if(_0x5378e5['timers']&&_0x5378e5['timers'][_0x1c740c]&&_0x5378e5[_0x4afc('0xa')][_0x1c740c]['timer']){_0x5378e5[_0x4afc('0xa')][_0x1c740c][_0x4afc('0xb')]();}if(_0x5378e5['agents'][_0x1c740c]){_0x5378e5[_0x4afc('0xc')][_0x1c740c][_0x4afc('0xd')]({'statePause':_0xaf053d[_0x4afc('0xe')]?!![]:![]});}_0x5e1e29({'code':0xc8,'message':_0x4afc('0xf')});});},'Reload':function(_0x1d8f98){var _0x2f1c59=this;return new Promise(function(_0x1ad8fd,_0x23b03e){if(ami['isConnected']()==![]){return _0x23b03e(_0x2f1c59[_0x4afc('0x10')](0x1f4,[config[_0x4afc('0x11')]['ip'],config[_0x4afc('0x11')][_0x4afc('0x12')],'ami\x20disconnected']['join']('\x20')));}_0x1d8f98=_[_0x4afc('0x13')](_0x1d8f98,_['keys'](properties[_0x4afc('0x14')]));_0x1d8f98[_0x4afc('0x15')]=_0x4afc('0x16');return ami[_0x4afc('0x17')](_0x1d8f98)[_0x4afc('0x18')](function(_0x3ebdc8){_0x1ad8fd({'code':0xc8,'message':_0x3ebdc8[_0x4afc('0x19')]});})[_0x4afc('0x1a')](function(_0x16365f){_0x23b03e(_0x2f1c59[_0x4afc('0x10')](0x1f5,_0x16365f[_0x4afc('0x19')]));});});},'Command':function(_0x543f0c){var _0x1a8f49=this;return new Promise(function(_0x25603b,_0x32865e){if(ami[_0x4afc('0x1b')]()==![]){return _0x32865e(_0x1a8f49['error'](0x1f4,[config[_0x4afc('0x11')]['ip'],config[_0x4afc('0x11')][_0x4afc('0x12')],_0x4afc('0x1c')][_0x4afc('0x1d')]('\x20')));}_0x543f0c=_[_0x4afc('0x13')](_0x543f0c,_0x4afc('0x1e'));_0x543f0c['action']=_0x4afc('0x1f');return ami[_0x4afc('0x17')](_0x543f0c)['then'](function(_0x37debf){_0x25603b({'code':0xc8,'message':_0x37debf['content']});})[_0x4afc('0x1a')](function(_0x2a0314){_0x32865e(_0x1a8f49[_0x4afc('0x10')](0x1f5,_0x2a0314[_0x4afc('0x19')]));});});},'VoiceQueues':function(_0x86dbd4){return new Promise(function(_0x28a86c,_0x40a0db){var _0x383a71=[];for(var _0x2bb837 in _0x5378e5[_0x4afc('0x20')]){if(_0x5378e5[_0x4afc('0x20')][_0x4afc('0x21')](_0x2bb837)){var _0x35f5b3=_0x5378e5['voiceQueues'][_0x2bb837];var _0xc3952e={'id':_0x35f5b3['id'],'name':_0x35f5b3[_0x4afc('0x9')],'strategy':_0x35f5b3[_0x4afc('0x22')],'answered':_0x35f5b3['answered'],'available':_0x35f5b3['available'],'loggedIn':_0x35f5b3['loggedIn'],'pTalking':_0x35f5b3[_0x4afc('0x23')],'sumBillable':_0x35f5b3[_0x4afc('0x24')],'sumDuration':_0x35f5b3['sumDuration'],'sumHoldTime':_0x35f5b3[_0x4afc('0x25')]||0x0,'talking':_0x35f5b3[_0x4afc('0x26')],'total':_0x35f5b3['total'],'type':_0x35f5b3['type'],'unmanaged':_0x35f5b3['unmanaged'],'abandoned':_0x35f5b3[_0x4afc('0x27')],'waiting':_0x35f5b3[_0x4afc('0x28')],'loggedInDb':_0x35f5b3[_0x4afc('0x29')]};if(_0x35f5b3[_0x4afc('0x2a')]===_0x4afc('0x2b')){_0xc3952e[_0x4afc('0x2c')]=_0x35f5b3['dialActive'];_0xc3952e[_0x4afc('0x2d')]=_0x35f5b3[_0x4afc('0x2d')];_0xc3952e[_0x4afc('0x2e')]=_0x35f5b3[_0x4afc('0x2e')];_0xc3952e[_0x4afc('0x2f')]=_0x35f5b3[_0x4afc('0x2f')];_0xc3952e[_0x4afc('0x30')]=_0x35f5b3[_0x4afc('0x30')];_0xc3952e['dialPrefix']=_0x35f5b3[_0x4afc('0x31')];_0xc3952e['temp']=_0x35f5b3['temp'];_0xc3952e[_0x4afc('0x32')]=_0x35f5b3[_0x4afc('0x32')];_0xc3952e[_0x4afc('0x33')]=_0x35f5b3[_0x4afc('0x33')];_0xc3952e[_0x4afc('0x34')]=_0x35f5b3[_0x4afc('0x34')];_0xc3952e['outboundBusyCallsDay']=_0x35f5b3[_0x4afc('0x35')];_0xc3952e[_0x4afc('0x36')]=_0x35f5b3[_0x4afc('0x36')];_0xc3952e[_0x4afc('0x37')]=_0x35f5b3[_0x4afc('0x37')];_0xc3952e[_0x4afc('0x38')]=_0x35f5b3['outboundDropCallsDayCallersExit'];_0xc3952e[_0x4afc('0x39')]=_0x35f5b3[_0x4afc('0x39')];_0xc3952e[_0x4afc('0x3a')]=_0x35f5b3[_0x4afc('0x3a')];_0xc3952e['outboundNoSuchCallsDay']=_0x35f5b3['outboundNoSuchCallsDay'];_0xc3952e[_0x4afc('0x3b')]=_0x35f5b3[_0x4afc('0x3b')];_0xc3952e[_0x4afc('0x3c')]=_0x35f5b3['outboundReCallsDay'];_0xc3952e['outboundRejectCallsDay']=_0x35f5b3[_0x4afc('0x3d')];_0xc3952e['outboundUnknownCallsDay']=_0x35f5b3['outboundUnknownCallsDay'];_0xc3952e[_0x4afc('0x3e')]=_0x35f5b3[_0x4afc('0x3e')];_0xc3952e[_0x4afc('0x3f')]=_0x35f5b3[_0x4afc('0x3f')];_0xc3952e[_0x4afc('0x40')]=_0x35f5b3[_0x4afc('0x40')];_0xc3952e[_0x4afc('0x41')]=_0x35f5b3[_0x4afc('0x41')];_0xc3952e[_0x4afc('0x42')]=_0x35f5b3[_0x4afc('0x42')];_0xc3952e[_0x4afc('0x43')]=_0x35f5b3[_0x4afc('0x43')];_0xc3952e[_0x4afc('0x44')]=_0x35f5b3[_0x4afc('0x44')];_0xc3952e[_0x4afc('0x45')]=_0x35f5b3['predictiveIntervalHitRate'];_0xc3952e[_0x4afc('0x46')]=_0x35f5b3[_0x4afc('0x46')];_0xc3952e[_0x4afc('0x47')]=_0x35f5b3[_0x4afc('0x47')];_0xc3952e[_0x4afc('0x48')]=_0x35f5b3[_0x4afc('0x48')];_0xc3952e[_0x4afc('0x49')]=_0x35f5b3['predictiveIntervalTotalCalls'];_0xc3952e['message']=_0x35f5b3['message'];_0xc3952e[_0x4afc('0x4a')]=_0x35f5b3[_0x4afc('0x4a')];_0xc3952e['erlangCalls']=_0x35f5b3[_0x4afc('0x4b')];_0xc3952e[_0x4afc('0x4c')]=_0x35f5b3[_0x4afc('0x4c')];_0xc3952e[_0x4afc('0x4d')]=_0x35f5b3['erlangAbandonmentRate'];_0xc3952e[_0x4afc('0x4e')]=_0x35f5b3[_0x4afc('0x4e')];_0xc3952e[_0x4afc('0x4f')]=_0x35f5b3[_0x4afc('0x4f')];_0xc3952e[_0x4afc('0x50')]=_0x35f5b3[_0x4afc('0x50')];}if(_0x35f5b3['Trunk']){_0xc3952e[_0x4afc('0x51')]={'id':_0x35f5b3['Trunk']['id'],'name':_0x35f5b3[_0x4afc('0x51')][_0x4afc('0x9')],'active':_0x35f5b3[_0x4afc('0x51')]['active'],'callerid':_0x35f5b3['Trunk'][_0x4afc('0x52')]};}if(_0x35f5b3[_0x4afc('0x53')]){_0xc3952e[_0x4afc('0x53')]={'id':_0x35f5b3[_0x4afc('0x53')]['id'],'name':_0x35f5b3[_0x4afc('0x53')][_0x4afc('0x9')]};}_0x383a71[_0x4afc('0x54')](_0xc3952e);}}_0x28a86c({'count':_0x383a71[_0x4afc('0x55')],'rows':_0x383a71});});},'UpdateVoiceQueue':function(_0x4c86f3){return new Promise(function(_0x658c5b,_0xb1e91e){var _0x4c1be5=_[_0x4afc('0x56')](_0x5378e5['voiceQueues'],{'id':parseInt(_0x4c86f3['id'])});var _0x20a2d3=_[_0x4afc('0x57')](_0x4c86f3,['id']);if(_0x4c1be5){for(var _0x16c6c4 in _0x20a2d3){if(typeof _0x20a2d3[_0x16c6c4]!=='undefined'&&typeof _0x4c1be5[_0x16c6c4]!==_0x4afc('0x58')){_0x4c1be5[_0x16c6c4]=_0x20a2d3[_0x16c6c4];}}_0x658c5b(_0x4c1be5);}else{_0xb1e91e();}});},'VoiceChannels':function(_0xe5a92){return new Promise(function(_0x1683c1,_0x12d41b){var _0x4772db=_[_0x4afc('0x59')](_0x5378e5['channels']);_0x1683c1({'count':_0x4772db['length'],'rows':_0x4772db});});},'VoiceChannelMixMonitor':function(_0x4f4e46){var _0x32f3b9=this;return new Promise(function(_0x1c5661,_0x42e274){if(ami[_0x4afc('0x1b')]()==![]){return _0x42e274(_0x32f3b9[_0x4afc('0x10')](0x1f4,[config[_0x4afc('0x11')]['ip'],config[_0x4afc('0x11')][_0x4afc('0x12')],_0x4afc('0x1c')][_0x4afc('0x1d')]('\x20')));}var _0x48dbe3=schema(properties[_0x4afc('0x5a')])['validate'](_0x4f4e46);if(_0x48dbe3['length']>0x0){return _0x42e274(_0x32f3b9[_0x4afc('0x10')](0x1f4,_['map'](_0x48dbe3,_0x4afc('0x19'))[_0x4afc('0x1d')](',\x20')));}var _0x2fe2ae=_[_0x4afc('0x56')](_0x5378e5['channels'],{'uniqueid':_0x4f4e46[_0x4afc('0x5b')]});if(_0x2fe2ae&&_0x2fe2ae['channel']){var _0x13b502=util[_0x4afc('0x6')](_0x4afc('0x5c'),_0x4f4e46[_0x4afc('0x5d')]||_0x4f4e46[_0x4afc('0x5b')],_0x4f4e46[_0x4afc('0x6')]||_0x4afc('0x5e'));return ami[_0x4afc('0x17')]({'action':_0x4afc('0x5f'),'channel':_0x2fe2ae[_0x4afc('0x60')],'file':_0x13b502,'options':_0x4afc('0x61')})[_0x4afc('0x18')](function(_0x507bfc){var _0x154fcb=_[_0x4afc('0x56')](_0x2fe2ae[_0x4afc('0x62')],{'filename':_0x4afc('0x63')+_0x13b502[_0x4afc('0x64')]()});if(_[_0x4afc('0x65')](_0x154fcb)){_0x2fe2ae[_0x4afc('0x62')][_0x4afc('0x54')]({'filename':_0x4afc('0x63')+_0x13b502[_0x4afc('0x64')](),'createdAt':moment()[_0x4afc('0x6')](_0x4afc('0x66')),'mixmonitorid':_0x507bfc[_0x4afc('0x67')],'status':'rec'});}else{_0x154fcb[_0x4afc('0x67')]=_0x507bfc['mixmonitorid'];_0x154fcb[_0x4afc('0x68')]=_0x4afc('0x69');}_0x1c5661({'code':0xc8,'message':[_0x4f4e46[_0x4afc('0x5b')],_0x4afc('0x6a'),_0x507bfc['mixmonitorid']]['join']('\x20'),'mixmonitorid':_0x507bfc[_0x4afc('0x67')]});})[_0x4afc('0x1a')](function(_0x5f16cb){_0x42e274(_0x32f3b9[_0x4afc('0x10')](0x1f5,[_0x4f4e46[_0x4afc('0x5b')],_0x5f16cb[_0x4afc('0x19')][_0x4afc('0x64')]()][_0x4afc('0x1d')]('\x20')));});}else{return _0x42e274(_0x32f3b9[_0x4afc('0x10')](0x1f5,_0x4afc('0x6b')));}});},'VoiceChannelStopMixMonitor':function(_0x13891d){var _0x24e1d3=this;return new Promise(function(_0x3369a8,_0x4295a5){if(ami[_0x4afc('0x1b')]()==![]){return _0x4295a5(_0x24e1d3[_0x4afc('0x10')](0x1f4,[config[_0x4afc('0x11')]['ip'],config['asterisk'][_0x4afc('0x12')],_0x4afc('0x1c')][_0x4afc('0x1d')]('\x20')));}var _0x19cb0b=schema(properties[_0x4afc('0x5a')])[_0x4afc('0x6c')](_0x13891d);if(_0x19cb0b[_0x4afc('0x55')]>0x0){return _0x4295a5(_0x24e1d3['error'](0x1f4,_[_0x4afc('0x6d')](_0x19cb0b,_0x4afc('0x19'))['join'](',\x20')));}var _0x4b3439=_[_0x4afc('0x56')](_0x5378e5[_0x4afc('0x6e')],{'uniqueid':_0x13891d[_0x4afc('0x5b')]});if(_0x4b3439){return BPromise[_0x4afc('0x6f')]()[_0x4afc('0x18')](function(){if(_0x4b3439[_0x4afc('0x60')]){return ami[_0x4afc('0x17')]({'action':_0x4afc('0x70'),'channel':_0x4b3439[_0x4afc('0x60')],'mixmonitorid':_0x13891d[_0x4afc('0x67')]})['catch'](function(_0x59418e){});}})[_0x4afc('0x18')](function(){if(_0x4b3439[_0x4afc('0x71')]){return ami['Action']({'action':_0x4afc('0x70'),'channel':_0x4b3439[_0x4afc('0x71')],'mixmonitorid':_0x13891d['mixmonitorid']})['catch'](function(_0x1b49cd){});}})[_0x4afc('0x18')](function(_0x576ea0){var _0x53792a=_[_0x4afc('0x56')](_0x4b3439['monitors'],{'mixmonitorid':_0x13891d['mixmonitorid']});if(_0x53792a){_0x53792a[_0x4afc('0x68')]=_0x4afc('0x72');}})[_0x4afc('0x18')](function(){var _0xdf2b=util[_0x4afc('0x6')](_0x4afc('0x5c'),_0x13891d[_0x4afc('0x5d')]||_0x13891d[_0x4afc('0x5b')],_0x13891d[_0x4afc('0x6')]||'wav');var _0x25969c=_[_0x4afc('0x56')](_0x4b3439[_0x4afc('0x62')],{'filename':'/var/spool/asterisk/monitor/'+_0xdf2b['toLowerCase']()});if(_0x25969c){_0x25969c['status']=_0x4afc('0x72');}})[_0x4afc('0x18')](function(){_0x3369a8({'code':0xc8,'message':[_0x13891d[_0x4afc('0x5b')],'StopMixMonitor\x20Success'][_0x4afc('0x1d')]('\x20')});})['catch'](function(_0x55b178){_0x4295a5(_0x24e1d3['error'](0x1f5,[_0x13891d[_0x4afc('0x5b')],_0x55b178[_0x4afc('0x19')][_0x4afc('0x64')]()]['join']('\x20')));});}else{return _0x4295a5(_0x24e1d3[_0x4afc('0x10')](0x1f5,_0x4afc('0x6b')));}});},'VoiceQueuesChannels':function(_0x18ab12){return new Promise(function(_0x5e3e9b,_0x3b161b){var _0xbb83e8=_[_0x4afc('0x59')](_0x5378e5[_0x4afc('0x73')]);_0x5e3e9b({'count':_0xbb83e8[_0x4afc('0x55')],'rows':_0xbb83e8});});},'VoiceQueuesChannel':function(_0x481263){var _0x549e31=this;return new Promise(function(_0x367224,_0x250456){var _0x25513f=schema(properties['voicequeuechannel'])[_0x4afc('0x6c')](_0x481263);if(_0x25513f[_0x4afc('0x55')]>0x0){return _0x250456(_0x549e31[_0x4afc('0x10')](0x1f4,_[_0x4afc('0x6d')](_0x25513f,_0x4afc('0x19'))['join'](',\x20')));}var _0x1ef397=_[_0x4afc('0x56')](_0x5378e5['queueChannels'],{'uniqueid':_0x481263[_0x4afc('0x5b')]});if(_0x1ef397){_0x367224(_0x1ef397);}else{return _0x250456(_0x549e31[_0x4afc('0x10')](0x1f5,_0x4afc('0x6b')));}});},'VoiceQueuesChannelHangup':function(_0x4ca3e8){var _0x13c11f=this;return new Promise(function(_0x755c8,_0x83587){if(ami[_0x4afc('0x1b')]()==![]){return _0x83587(_0x13c11f[_0x4afc('0x10')](0x1f4,[config[_0x4afc('0x11')]['ip'],config[_0x4afc('0x11')][_0x4afc('0x12')],'ami\x20disconnected'][_0x4afc('0x1d')]('\x20')));}var _0x5e3290=schema(properties['voicequeuechannelhangup'])[_0x4afc('0x6c')](_0x4ca3e8);if(_0x5e3290[_0x4afc('0x55')]>0x0){return _0x83587(_0x13c11f[_0x4afc('0x10')](0x1f4,_['map'](_0x5e3290,'message')[_0x4afc('0x1d')](',\x20')));}var _0x222e68=_[_0x4afc('0x56')](_0x5378e5[_0x4afc('0x73')],{'uniqueid':_0x4ca3e8[_0x4afc('0x5b')]});if(_0x222e68&&_0x222e68[_0x4afc('0x60')]){return ami[_0x4afc('0x17')]({'action':_0x4afc('0x74'),'channel':_0x222e68[_0x4afc('0x60')]})[_0x4afc('0x18')](function(_0x3e846f){_0x755c8({'code':0xc8,'message':[_0x4ca3e8[_0x4afc('0x5b')],_0x3e846f[_0x4afc('0x19')][_0x4afc('0x64')]()][_0x4afc('0x1d')]('\x20')});})[_0x4afc('0x1a')](function(_0x4f8b24){_0x83587(_0x13c11f[_0x4afc('0x10')](0x1f5,[_0x4ca3e8[_0x4afc('0x5b')],_0x4f8b24[_0x4afc('0x19')][_0x4afc('0x64')]()][_0x4afc('0x1d')]('\x20')));});}else{return _0x83587(_0x13c11f[_0x4afc('0x10')](0x1f5,_0x4afc('0x6b')));}});},'VoiceQueuesChannelRedirect':function(_0x158522){var _0x39c259=this;return new Promise(function(_0x4d3da7,_0x352f0c){if(ami[_0x4afc('0x1b')]()==![]){return _0x352f0c(_0x39c259[_0x4afc('0x10')](0x1f4,[config[_0x4afc('0x11')]['ip'],config['asterisk'][_0x4afc('0x12')],_0x4afc('0x1c')][_0x4afc('0x1d')]('\x20')));}var _0x4956b2=schema(properties[_0x4afc('0x75')])[_0x4afc('0x6c')](_0x158522);if(_0x4956b2[_0x4afc('0x55')]>0x0){return _0x352f0c(_0x39c259[_0x4afc('0x10')](0x1f4,_[_0x4afc('0x6d')](_0x4956b2,_0x4afc('0x19'))['join'](',\x20')));}var _0xbbcbf4=_[_0x4afc('0x56')](_0x5378e5['queueChannels'],{'uniqueid':_0x158522[_0x4afc('0x5b')]});if(_0xbbcbf4&&_0xbbcbf4[_0x4afc('0x60')]){return ami[_0x4afc('0x17')]({'action':'Redirect','channel':_0xbbcbf4[_0x4afc('0x60')],'exten':_0x158522[_0x4afc('0x76')],'context':_0x158522[_0x4afc('0x77')]||_0xbbcbf4[_0x4afc('0x77')],'priority':0x1})['then'](function(_0x1bbe21){_0x4d3da7({'code':0xc8,'message':[_0x158522[_0x4afc('0x5b')],_0x1bbe21['message'][_0x4afc('0x64')]()][_0x4afc('0x1d')]('\x20')});})[_0x4afc('0x1a')](function(_0x4dda04){_0x352f0c(_0x39c259['error'](0x1f5,[_0x158522[_0x4afc('0x5b')],_0x4dda04[_0x4afc('0x19')][_0x4afc('0x64')]()][_0x4afc('0x1d')]('\x20')));});}else{return _0x352f0c(_0x39c259[_0x4afc('0x10')](0x1f5,_0x4afc('0x6b')));}});},'Agents':function(_0x90de0b){return new Promise(function(_0x1949c6,_0x217416){var _0xbaff5f=_[_0x4afc('0x59')](_0x5378e5[_0x4afc('0xc')]);_0x1949c6({'count':_0xbaff5f[_0x4afc('0x55')],'rows':_0xbaff5f});});},'Telephones':function(_0x257d02){return new Promise(function(_0x23a491,_0x143340){var _0x5d0ae9=_[_0x4afc('0x59')](_0x5378e5[_0x4afc('0x78')]);_0x23a491({'count':_0x5d0ae9['length'],'rows':_0x5d0ae9});});},'Trunks':function(_0xd8f88a){return new Promise(function(_0x4d92e6,_0x4b93ea){var _0x6ac9ae=_['values'](_0x5378e5['trunks']);_0x4d92e6({'count':_0x6ac9ae[_0x4afc('0x55')],'rows':_0x6ac9ae});});},'OutboundChannels':function(_0x529582){return new Promise(function(_0x1ca8fb,_0x492301){var _0x313c1e=_[_0x4afc('0x59')](_0x5378e5[_0x4afc('0x79')]);_0x1ca8fb({'count':_0x313c1e[_0x4afc('0x55')],'rows':_0x313c1e});});},'Outbound':function(_0x453eef){return new Promise(function(_0x4fb4a4,_0xc437a0){_0x4fb4a4(_0x5378e5[_0x4afc('0x2b')]);});},'Campaigns':function(_0x4cb780){return new Promise(function(_0x4f97a4,_0x47038f){var _0x1b6b80=_[_0x4afc('0x59')](_0x5378e5[_0x4afc('0x7a')]);_0x4f97a4({'count':_0x1b6b80[_0x4afc('0x55')],'rows':_0x1b6b80});});},'VoiceQueuesPreview':function(_0x5dea36){var _0x995172=this;return new Promise(function(_0x2d1f15,_0x2516e4){_0x36cb50[_0x4afc('0x7b')](_0x5dea36['id'])['then'](function(_0x114e0f){_0x2d1f15({'code':0xc8,'message':_0x114e0f['message']});})[_0x4afc('0x1a')](function(_0x1f1d31){_0x2516e4(_0x995172[_0x4afc('0x10')](0x1f4,_0x1f1d31[_0x4afc('0x19')]));});});},'EventManager':function(_0xa580ad){var _0x29c8aa=this;return new Promise(function(_0x3e67ba,_0xee0744){if(!_0xa580ad[_0x4afc('0x7c')]){return _0xee0744(_0x29c8aa[_0x4afc('0x10')](0x1f4,_0x4afc('0x7d')));}ami['emit'](_0x4afc('0x7e')+_0xa580ad['event'],_0xa580ad[_0x4afc('0x19')]);_0x3e67ba({'code':0xc8,'message':_0xa580ad});});},'FaxAccounts':function(_0x4b40db){return new Promise(function(_0x50198d,_0x681c5e){var _0x5965e0=_['values'](_0x5378e5[_0x4afc('0x7f')]);_0x50198d({'count':_0x5965e0['length'],'rows':_0x5965e0});});},'SendFax':function(_0x272e36){var _0x24bf53=this;return new Promise(function(_0x5b1421,_0x1fabaa){_0x471d45[_0x4afc('0x80')](_0x272e36)['then'](function(_0x3a9836){_0x5b1421({'code':0xc8,'message':_0x3a9836[_0x4afc('0x19')]});})[_0x4afc('0x1a')](function(_0x4c900a){_0x1fabaa(_0x24bf53[_0x4afc('0x10')](0x1f4,_0x4c900a[_0x4afc('0x19')]));});});},'CheckAfterSend':function(_0x40c7c8){var _0x16eb6d=this;return new Promise(function(_0xa5dc59,_0xbdeb7d){_0x471d45['checkAfterSend'](_0x40c7c8)['then'](function(_0x217650){_0xa5dc59({'code':0xc8,'message':_0x217650[_0x4afc('0x19')]});})['catch'](function(_0x28381d){_0xbdeb7d(_0x16eb6d[_0x4afc('0x10')](0x1f4,_0x28381d['message']));});});}};var _0xad8995=jayson[_0x4afc('0x81')](_0xc828d9)[_0x4afc('0x82')]();_0xad8995['on'](_0x4afc('0x10'),function(_0x2585b3){return _0x1bb281(_0x2585b3);});_0xad8995['listen'](0x232a,_0x4afc('0x83'),function(){console[_0x4afc('0x84')](_0x4afc('0x85'),0x232a);return _0x16953b(_0x4afc('0x86')+0x232a);});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8764=['Unknown','push','user:%s','name','format','trigger:%s','toLowerCase','merge','lodash','bluebird','ioredis','util','../../../../config/environment','../../../../config/logger','trigger','../../rpc/cmContact','defaults','redis','localhost','socket.io-emitter','[CM][%s][%s]','stringify','exec','data1','data2','xmd-contactid','ListId','data3','phone','$or','map','routeId','destcalleridnum','calleridnum','firstName','lastName','mobile','fax','scheduledAt','updatedAt','resolve','getContacts','then','isEmpty','length','info','[CM][%s][%s]\x20Contact\x20found:%s','uniqueid','join','data4','[CM][%s][%s]\x20Autocreate\x20enabled','isNil','calleridname','<unknown>','destcalleridname','createContact'];(function(_0x4b118e,_0x5eec3d){var _0x1d34b1=function(_0x5cacba){while(--_0x5cacba){_0x4b118e['push'](_0x4b118e['shift']());}};_0x1d34b1(++_0x5eec3d);}(_0x8764,0x1c8));var _0x4876=function(_0x30bc3f,_0x593b7a){_0x30bc3f=_0x30bc3f-0x0;var _0x270078=_0x8764[_0x30bc3f];return _0x270078;};'use strict';var _=require(_0x4876('0x0'));var BPromise=require(_0x4876('0x1'));var Redis=require(_0x4876('0x2'));var util=require(_0x4876('0x3'));var config=require(_0x4876('0x4'));var logger=require(_0x4876('0x5'))(_0x4876('0x6'));var cmContactRpc=require(_0x4876('0x7'));config['redis']=_[_0x4876('0x8')](config[_0x4876('0x9')],{'host':_0x4876('0xa'),'port':0x18eb});var io=require(_0x4876('0xb'))(new Redis(config[_0x4876('0x9')]));function emit(_0x290509,_0x40d887,_0x3a2427,_0x41a5d9,_0x178d98){logger['info'](_0x4876('0xc'),_0x290509,_0x40d887['id'],_0x3a2427,_0x41a5d9,JSON[_0x4876('0xd')](_0x178d98));io['to'](_0x3a2427)['emit'](_0x41a5d9,_0x178d98);}exports[_0x4876('0xe')]=function(_0x119cef,_0x26ebed,_0x9a1bdb,_0x2d43f2){var _0x8d301f,_0x1e1bfb;var _0x398d61={};var _0x6a3eb0=Number(_0x9a1bdb[_0x4876('0xf')]);var _0x352aeb=_0x9a1bdb[_0x4876('0x10')]?Boolean(Number(_0x9a1bdb[_0x4876('0x10')])):![];var _0x46cb3e;if(_0x2d43f2['xmd-contactid']){_0x398d61['id']=_0x2d43f2[_0x4876('0x11')];}if(!_0x398d61['id']){_0x398d61[_0x4876('0x12')]=_0x6a3eb0;_0x46cb3e=_0x9a1bdb['data3']&&_0x9a1bdb[_0x4876('0x13')]!=='0'?_0x9a1bdb[_0x4876('0x13')]['split'](','):[_0x4876('0x14')];_0x398d61[_0x4876('0x15')]=_[_0x4876('0x16')](_0x46cb3e,function(_0x5d7333){var _0x3570ae={};_0x3570ae[_0x5d7333]=_0x2d43f2[_0x4876('0x17')]?_0x2d43f2[_0x4876('0x18')]:_0x2d43f2[_0x4876('0x19')];return _0x3570ae;});}var _0x6285e8=['id',_0x4876('0x1a'),_0x4876('0x1b'),'phone',_0x4876('0x1c'),_0x4876('0x1d'),_0x4876('0x12'),'createdAt',_0x4876('0x1e'),_0x4876('0x1f')];var _0x448ae5=_['union'](_0x6285e8,_0x46cb3e);BPromise[_0x4876('0x20')]()['then'](cmContactRpc[_0x4876('0x21')]({'attributes':_0x448ae5,'where':_0x398d61}))[_0x4876('0x22')](function(_0x584ec9){_0x1e1bfb=_0x584ec9;if(!_[_0x4876('0x23')](_0x1e1bfb)){if(_0x1e1bfb[_0x4876('0x24')]===0x1){_0x8d301f=_0x1e1bfb[0x0];logger[_0x4876('0x25')](_0x4876('0x26'),_0x2d43f2[_0x4876('0x27')],_0x26ebed['id'],_0x8d301f['id']);}else{logger[_0x4876('0x25')]('[CM][%s][%s]\x20Multiple\x20contacts\x20found:[%s]',_0x2d43f2[_0x4876('0x27')],_0x26ebed['id'],_['map'](_0x1e1bfb,'id')[_0x4876('0x28')](','));}return;}else{logger[_0x4876('0x25')]('[CM][%s][%s]\x20Contact\x20not\x20found',_0x2d43f2[_0x4876('0x27')],_0x26ebed['id']);var _0x341975={'ListId':_0x6a3eb0};var _0x30479d=_0x9a1bdb[_0x4876('0x29')]&&_0x9a1bdb[_0x4876('0x29')]!=='0'?_0x9a1bdb['data4']:'phone';if(_0x352aeb){logger[_0x4876('0x25')](_0x4876('0x2a'),_0x2d43f2[_0x4876('0x27')],_0x26ebed['id']);_0x341975[_0x30479d]=_[_0x4876('0x2b')](_0x2d43f2[_0x4876('0x17')])?_0x2d43f2['calleridnum']:_0x2d43f2[_0x4876('0x18')];if(_[_0x4876('0x2b')](_0x2d43f2[_0x4876('0x17')])){_0x341975[_0x4876('0x1a')]=_0x2d43f2[_0x4876('0x2c')]&&_0x2d43f2['calleridname']!==_0x4876('0x2d')?_0x2d43f2[_0x4876('0x2c')]:'Unknown';}else{_0x341975[_0x4876('0x1a')]=_0x2d43f2['destcalleridname']&&_0x2d43f2[_0x4876('0x2e')]!=='<unknown>'?_0x2d43f2[_0x4876('0x2e')]:'Unknown';}return BPromise['resolve']()[_0x4876('0x22')](cmContactRpc[_0x4876('0x2f')](_0x341975))[_0x4876('0x22')](function(_0x448dc2){_0x8d301f=_0x448dc2;_0x1e1bfb['push'](_0x448dc2);if(_0x8d301f){logger[_0x4876('0x25')]('[CM][%s][%s]\x20Contact\x20created:%s',_0x2d43f2[_0x4876('0x27')],_0x26ebed['id'],_0x8d301f['id']);}return;});}else{logger[_0x4876('0x25')]('[CM][%s][%s]\x20Autocreate\x20disabled',_0x2d43f2['uniqueid'],_0x26ebed['id']);_0x341975[_0x30479d]=_[_0x4876('0x2b')](_0x2d43f2['routeId'])?_0x2d43f2[_0x4876('0x19')]:_0x2d43f2[_0x4876('0x18')];if(_[_0x4876('0x2b')](_0x2d43f2[_0x4876('0x17')])){_0x341975['firstName']=_0x2d43f2[_0x4876('0x2c')]&&_0x2d43f2[_0x4876('0x2c')]!==_0x4876('0x2d')?_0x2d43f2[_0x4876('0x2c')]:'Unknown';}else{_0x341975[_0x4876('0x1a')]=_0x2d43f2[_0x4876('0x2e')]&&_0x2d43f2[_0x4876('0x2e')]!==_0x4876('0x2d')?_0x2d43f2[_0x4876('0x2e')]:_0x4876('0x30');}_0x8d301f=_0x341975;_0x1e1bfb[_0x4876('0x31')](_0x341975);return;}}})[_0x4876('0x22')](function(){if(_0x119cef){emit(_0x2d43f2[_0x4876('0x27')],_0x26ebed,util['format'](_0x4876('0x32'),_0x119cef[_0x4876('0x33')]),util[_0x4876('0x34')](_0x4876('0x35'),_0x9a1bdb['action'][_0x4876('0x36')]()),{'evt':_[_0x4876('0x37')](_0x2d43f2,{'autoCreate':_0x352aeb}),'contact':_0x8d301f===undefined?{}:_0x8d301f,'contacts':_0x1e1bfb['length']===0x0?undefined:_0x1e1bfb});}});};
\ No newline at end of file
+var _0xf18f=['xmd-contactid','data3','split','phone','$or','map','routeId','destcalleridnum','firstName','lastName','mobile','fax','createdAt','scheduledAt','updatedAt','union','getContacts','isEmpty','uniqueid','[CM][%s][%s]\x20Multiple\x20contacts\x20found:[%s]','[CM][%s][%s]\x20Contact\x20not\x20found','data4','[CM][%s][%s]\x20Autocreate\x20enabled','isNil','calleridname','Unknown','destcalleridname','<unknown>','resolve','createContact','then','push','[CM][%s][%s]\x20Contact\x20created:%s','[CM][%s][%s]\x20Autocreate\x20disabled','calleridnum','format','user:%s','name','trigger:%s','action','merge','length','bluebird','../../../../config/environment','../../../../config/logger','trigger','../../rpc/cmContact','defaults','redis','socket.io-emitter','info','[CM][%s][%s]','stringify','emit','exec','data1','data2'];(function(_0x178885,_0x31c17c){var _0x498fdc=function(_0x55ebae){while(--_0x55ebae){_0x178885['push'](_0x178885['shift']());}};_0x498fdc(++_0x31c17c);}(_0xf18f,0x1b9));var _0xff18=function(_0x4f8a33,_0xe77165){_0x4f8a33=_0x4f8a33-0x0;var _0xd76e97=_0xf18f[_0x4f8a33];return _0xd76e97;};'use strict';var _=require('lodash');var BPromise=require(_0xff18('0x0'));var Redis=require('ioredis');var util=require('util');var config=require(_0xff18('0x1'));var logger=require(_0xff18('0x2'))(_0xff18('0x3'));var cmContactRpc=require(_0xff18('0x4'));config['redis']=_[_0xff18('0x5')](config[_0xff18('0x6')],{'host':'localhost','port':0x18eb});var io=require(_0xff18('0x7'))(new Redis(config['redis']));function emit(_0x231bf7,_0x46cc9b,_0x1901d5,_0xed6197,_0x924594){logger[_0xff18('0x8')](_0xff18('0x9'),_0x231bf7,_0x46cc9b['id'],_0x1901d5,_0xed6197,JSON[_0xff18('0xa')](_0x924594));io['to'](_0x1901d5)[_0xff18('0xb')](_0xed6197,_0x924594);}exports[_0xff18('0xc')]=function(_0x217eaa,_0x93e057,_0x28cbd7,_0x293b3e){var _0x293675,_0x31aad5;var _0x2b6a6e={};var _0x16c7ac=Number(_0x28cbd7[_0xff18('0xd')]);var _0xb19d94=_0x28cbd7[_0xff18('0xe')]?Boolean(Number(_0x28cbd7[_0xff18('0xe')])):![];var _0x2ed45c;if(_0x293b3e['xmd-contactid']){_0x2b6a6e['id']=_0x293b3e[_0xff18('0xf')];}if(!_0x2b6a6e['id']){_0x2b6a6e['ListId']=_0x16c7ac;_0x2ed45c=_0x28cbd7['data3']&&_0x28cbd7[_0xff18('0x10')]!=='0'?_0x28cbd7[_0xff18('0x10')][_0xff18('0x11')](','):[_0xff18('0x12')];_0x2b6a6e[_0xff18('0x13')]=_[_0xff18('0x14')](_0x2ed45c,function(_0x5c0eaa){var _0x2c6aa5={};_0x2c6aa5[_0x5c0eaa]=_0x293b3e[_0xff18('0x15')]?_0x293b3e[_0xff18('0x16')]:_0x293b3e['calleridnum'];return _0x2c6aa5;});}var _0xe9639b=['id',_0xff18('0x17'),_0xff18('0x18'),'phone',_0xff18('0x19'),_0xff18('0x1a'),'ListId',_0xff18('0x1b'),_0xff18('0x1c'),_0xff18('0x1d')];var _0x3e9bec=_[_0xff18('0x1e')](_0xe9639b,_0x2ed45c);BPromise['resolve']()['then'](cmContactRpc[_0xff18('0x1f')]({'attributes':_0x3e9bec,'where':_0x2b6a6e}))['then'](function(_0x3e7e54){_0x31aad5=_0x3e7e54;if(!_[_0xff18('0x20')](_0x31aad5)){if(_0x31aad5['length']===0x1){_0x293675=_0x31aad5[0x0];logger[_0xff18('0x8')]('[CM][%s][%s]\x20Contact\x20found:%s',_0x293b3e[_0xff18('0x21')],_0x93e057['id'],_0x293675['id']);}else{logger[_0xff18('0x8')](_0xff18('0x22'),_0x293b3e['uniqueid'],_0x93e057['id'],_[_0xff18('0x14')](_0x31aad5,'id')['join'](','));}return;}else{logger[_0xff18('0x8')](_0xff18('0x23'),_0x293b3e[_0xff18('0x21')],_0x93e057['id']);var _0x569d35={'ListId':_0x16c7ac};var _0x5c055a=_0x28cbd7[_0xff18('0x24')]&&_0x28cbd7[_0xff18('0x24')]!=='0'?_0x28cbd7[_0xff18('0x24')]:_0xff18('0x12');if(_0xb19d94){logger['info'](_0xff18('0x25'),_0x293b3e['uniqueid'],_0x93e057['id']);_0x569d35[_0x5c055a]=_['isNil'](_0x293b3e[_0xff18('0x15')])?_0x293b3e['calleridnum']:_0x293b3e[_0xff18('0x16')];if(_[_0xff18('0x26')](_0x293b3e[_0xff18('0x15')])){_0x569d35[_0xff18('0x17')]=_0x293b3e[_0xff18('0x27')]&&_0x293b3e[_0xff18('0x27')]!=='<unknown>'?_0x293b3e[_0xff18('0x27')]:_0xff18('0x28');}else{_0x569d35[_0xff18('0x17')]=_0x293b3e[_0xff18('0x29')]&&_0x293b3e[_0xff18('0x29')]!==_0xff18('0x2a')?_0x293b3e[_0xff18('0x29')]:_0xff18('0x28');}return BPromise[_0xff18('0x2b')]()['then'](cmContactRpc[_0xff18('0x2c')](_0x569d35))[_0xff18('0x2d')](function(_0x3e95d6){_0x293675=_0x3e95d6;_0x31aad5[_0xff18('0x2e')](_0x3e95d6);if(_0x293675){logger[_0xff18('0x8')](_0xff18('0x2f'),_0x293b3e['uniqueid'],_0x93e057['id'],_0x293675['id']);}return;});}else{logger[_0xff18('0x8')](_0xff18('0x30'),_0x293b3e[_0xff18('0x21')],_0x93e057['id']);_0x569d35[_0x5c055a]=_['isNil'](_0x293b3e[_0xff18('0x15')])?_0x293b3e[_0xff18('0x31')]:_0x293b3e['destcalleridnum'];if(_[_0xff18('0x26')](_0x293b3e[_0xff18('0x15')])){_0x569d35[_0xff18('0x17')]=_0x293b3e[_0xff18('0x27')]&&_0x293b3e[_0xff18('0x27')]!==_0xff18('0x2a')?_0x293b3e[_0xff18('0x27')]:_0xff18('0x28');}else{_0x569d35[_0xff18('0x17')]=_0x293b3e['destcalleridname']&&_0x293b3e['destcalleridname']!==_0xff18('0x2a')?_0x293b3e[_0xff18('0x29')]:_0xff18('0x28');}_0x293675=_0x569d35;_0x31aad5[_0xff18('0x2e')](_0x569d35);return;}}})[_0xff18('0x2d')](function(){if(_0x217eaa){emit(_0x293b3e['uniqueid'],_0x93e057,util[_0xff18('0x32')](_0xff18('0x33'),_0x217eaa[_0xff18('0x34')]),util[_0xff18('0x32')](_0xff18('0x35'),_0x28cbd7[_0xff18('0x36')]['toLowerCase']()),{'evt':_[_0xff18('0x37')](_0x293b3e,{'autoCreate':_0xb19d94}),'contact':_0x293675===undefined?{}:_0x293675,'contacts':_0x31aad5[_0xff18('0x38')]===0x0?undefined:_0x31aad5});}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5d10=['motionbar','browser','data1','TemplateId','data2','html','render','template\x20not\x20found','uri','isNil','data3','data4','uriLocation','windowWidth','data5','800','windowHeight','data6','600','winApplication','winArguments','format','user:%s','name','trigger:%s:%s','toLowerCase','jscripty','trigger:%s','exec','integration','queue','routeId','urlforward','script','parse','query','search','replace','AllConditions','every','checkConditions','channel','AnyConditions','length','some','chat','operator','value','upperFirst','AccountId','message','event','membername','lastevent','exports','util','lodash','url','mustache','ioredis','./urlforward','./integration','./cmContact','../../../config/environment','../../../config/logger','trigger','redis','defaults','localhost','socket.io-emitter','winapp','triggers','agents','voiceQueues','templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','accounts','custom:agentcalled','bind','custom:agentringnoanswer','syncCustomEvent','custom:agentcomplete','custom:agentnosuchnumber','custom:agentnoanswer','custom:agentcongestion','custom:amd','custom:queuecallerabandon','custom:timeout','custom:dialbegin','syncAgentDial','custom:dialend','custom:newinteraction','custom:incomingmessage','custom:outgoingmessage','custom:acceptmessage','custom:rejectmessage','prototype','emit','info','stringify','clone','checkTriggers','interface','hasOwnProperty','checkTrigger','merge','Actions','action','contactmanager'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x5d10,0x125));var _0x05d1=function(_0x17a33d,_0x3cc5ba){_0x17a33d=_0x17a33d-0x0;var _0x3296a1=_0x5d10[_0x17a33d];return _0x3296a1;};'use strict';var util=require(_0x05d1('0x0'));var _=require(_0x05d1('0x1'));var url=require(_0x05d1('0x2'));var Mustache=require(_0x05d1('0x3'));var Redis=require(_0x05d1('0x4'));var urlforward=require(_0x05d1('0x5'));var integration=require(_0x05d1('0x6'));var cmContact=require(_0x05d1('0x7'));var script=require('./script');var config=require(_0x05d1('0x8'));var logger=require(_0x05d1('0x9'))(_0x05d1('0xa'));var ami=require('../ami');config[_0x05d1('0xb')]=_[_0x05d1('0xc')](config['redis'],{'host':_0x05d1('0xd'),'port':0x18eb});var io=require(_0x05d1('0xe'))(new Redis(config[_0x05d1('0xb')]));var operators={'equals':function(_0x39abcf,_0x5e689f){return _0x39abcf==_0x5e689f;},'not_equals':function(_0x4f0968,_0x4ef9b1){return _0x4f0968!=_0x4ef9b1;}};var barAndWebActions=['popup',_0x05d1('0x2'),_0x05d1('0xf')];function Trigger(_0x2c3ae4){this['triggers']=_0x2c3ae4[_0x05d1('0x10')];this[_0x05d1('0x11')]=_0x2c3ae4[_0x05d1('0x11')];this[_0x05d1('0x12')]=_0x2c3ae4['voiceQueues'];this[_0x05d1('0x13')]=_0x2c3ae4[_0x05d1('0x13')];this[_0x05d1('0x14')]=_0x2c3ae4[_0x05d1('0x14')];this[_0x05d1('0x15')]=_0x2c3ae4[_0x05d1('0x15')];this[_0x05d1('0x16')]=_0x2c3ae4[_0x05d1('0x16')];this[_0x05d1('0x17')]=_0x2c3ae4[_0x05d1('0x17')];this[_0x05d1('0x18')]=_0x2c3ae4['sugarcrmAccounts'];this[_0x05d1('0x19')]=_0x2c3ae4[_0x05d1('0x19')];this[_0x05d1('0x1a')]=_0x2c3ae4[_0x05d1('0x1a')];this[_0x05d1('0x1b')]=_0x2c3ae4[_0x05d1('0x1b')];this[_0x05d1('0x1c')]=_0x2c3ae4[_0x05d1('0x1c')];this[_0x05d1('0x1d')]=_0x2c3ae4['dynamics365Accounts'];this[_0x05d1('0x1e')]=_0x2c3ae4[_0x05d1('0x1e')];this[_0x05d1('0x1f')]={'zendesk':this[_0x05d1('0x15')],'salesforce':this[_0x05d1('0x17')],'freshdesk':this['freshdeskAccounts'],'sugarcrm':this[_0x05d1('0x18')],'zoho':this[_0x05d1('0x19')],'desk':this[_0x05d1('0x1a')],'vtiger':this['vtigerAccounts'],'dynamics365':this[_0x05d1('0x1d')],'freshsales':this[_0x05d1('0x1e')],'servicenow':this[_0x05d1('0x1c')]};ami['on'](_0x05d1('0x20'),this['syncCustomEvent']['bind'](this));ami['on']('custom:agentconnect',this['syncCustomEvent'][_0x05d1('0x21')](this));ami['on'](_0x05d1('0x22'),this[_0x05d1('0x23')][_0x05d1('0x21')](this));ami['on'](_0x05d1('0x24'),this['syncCustomEvent'][_0x05d1('0x21')](this));ami['on'](_0x05d1('0x25'),this[_0x05d1('0x23')][_0x05d1('0x21')](this));ami['on'](_0x05d1('0x26'),this[_0x05d1('0x23')][_0x05d1('0x21')](this));ami['on']('custom:agentbusy',this[_0x05d1('0x23')][_0x05d1('0x21')](this));ami['on'](_0x05d1('0x27'),this['syncCustomEvent'][_0x05d1('0x21')](this));ami['on']('custom:agentreject',this[_0x05d1('0x23')]['bind'](this));ami['on'](_0x05d1('0x28'),this[_0x05d1('0x23')][_0x05d1('0x21')](this));ami['on'](_0x05d1('0x29'),this['syncCustomEvent'][_0x05d1('0x21')](this));ami['on'](_0x05d1('0x2a'),this[_0x05d1('0x23')][_0x05d1('0x21')](this));ami['on'](_0x05d1('0x2b'),this[_0x05d1('0x2c')]['bind'](this));ami['on']('custom:dialconnect',this[_0x05d1('0x2c')]['bind'](this));ami['on'](_0x05d1('0x2d'),this[_0x05d1('0x2c')][_0x05d1('0x21')](this));ami['on'](_0x05d1('0x2e'),this[_0x05d1('0x23')]['bind'](this));ami['on']('custom:closedinteraction',this[_0x05d1('0x23')][_0x05d1('0x21')](this));ami['on'](_0x05d1('0x2f'),this['syncCustomEvent']['bind'](this));ami['on'](_0x05d1('0x30'),this[_0x05d1('0x23')][_0x05d1('0x21')](this));ami['on'](_0x05d1('0x31'),this[_0x05d1('0x23')][_0x05d1('0x21')](this));ami['on'](_0x05d1('0x32'),this[_0x05d1('0x23')]['bind'](this));}Trigger[_0x05d1('0x33')][_0x05d1('0x34')]=function(_0x443a4c,_0x355663,_0x354929){logger[_0x05d1('0x35')](_0x443a4c,_0x355663,JSON[_0x05d1('0x36')](_0x354929));io['to'](_0x443a4c)['emit'](_0x355663,_0x354929);};Trigger[_0x05d1('0x33')][_0x05d1('0x23')]=function(_0xb439cb){var _0x5aecc1=_[_0x05d1('0x37')](_0xb439cb);this[_0x05d1('0x38')](_0x5aecc1);};Trigger['prototype']['syncAgentDial']=function(_0x2b2a9f){if(this[_0x05d1('0x11')][_0x2b2a9f[_0x05d1('0x39')]]){this[_0x05d1('0x23')](_0x2b2a9f);}};Trigger[_0x05d1('0x33')][_0x05d1('0x38')]=function(_0x35aa35){var _0x5341ff;for(var _0x2f0d1b in this[_0x05d1('0x10')]){if(this[_0x05d1('0x10')][_0x05d1('0x3a')](_0x2f0d1b)){if(this['triggers'][_0x2f0d1b]['status']){_0x5341ff=this[_0x05d1('0x3b')](this[_0x05d1('0x10')][_0x2f0d1b],_0x35aa35);if(_0x5341ff){_[_0x05d1('0x3c')](_0x35aa35,_0x35aa35['variables']);for(var _0x306d4b=0x0,_0x416956,_0x233790,_0x27e431;_0x306d4b<this[_0x05d1('0x10')][_0x2f0d1b][_0x05d1('0x3d')]['length'];_0x306d4b+=0x1){_0x416956=this[_0x05d1('0x10')][_0x2f0d1b][_0x05d1('0x3d')][_0x306d4b];if(this[_0x05d1('0x11')][_0x35aa35['interface']]){switch(_0x416956[_0x05d1('0x3e')]['toLowerCase']()){case _0x05d1('0x3f'):break;case _0x05d1('0x40'):case _0x05d1('0x41'):var _0x4b13a3={};switch(barAndWebActions[_0x416956[_0x05d1('0x42')]]){case'popup':_0x4b13a3[_0x05d1('0x43')]=_0x416956[_0x05d1('0x44')];_0x4b13a3[_0x05d1('0x45')]=this[_0x05d1('0x13')][_0x416956[_0x05d1('0x44')]]?Mustache[_0x05d1('0x46')](this[_0x05d1('0x13')][_0x416956[_0x05d1('0x44')]][_0x05d1('0x45')],_0x35aa35):_0x05d1('0x47');break;case _0x05d1('0x2'):_0x4b13a3[_0x05d1('0x48')]=this['buildUri'](_0x416956[_0x05d1('0x44')],_0x35aa35,_[_0x05d1('0x49')](_0x416956[_0x05d1('0x4a')])?!![]:parseInt(_0x416956[_0x05d1('0x4a')],0xa));if(_[_0x05d1('0x49')](_0x416956[_0x05d1('0x4b')])){_0x4b13a3['location']='0';}else{_0x4b13a3[_0x05d1('0x4c')]=_0x416956['data4'];_0x4b13a3[_0x05d1('0x4d')]=_[_0x05d1('0x49')](_0x416956[_0x05d1('0x4e')])?_0x05d1('0x4f'):_0x416956[_0x05d1('0x4e')];_0x4b13a3[_0x05d1('0x50')]=_['isNil'](_0x416956[_0x05d1('0x51')])?_0x05d1('0x52'):_0x416956[_0x05d1('0x51')];}break;case'winapp':_0x4b13a3[_0x05d1('0x53')]=_0x416956[_0x05d1('0x44')]?Mustache[_0x05d1('0x46')](_0x416956[_0x05d1('0x44')],_0x35aa35):'';_0x4b13a3[_0x05d1('0x54')]=_0x416956['data3']?Mustache['render'](_0x416956[_0x05d1('0x4a')],_0x35aa35):'';break;}this[_0x05d1('0x34')](util[_0x05d1('0x55')](_0x05d1('0x56'),this[_0x05d1('0x11')][_0x35aa35['interface']][_0x05d1('0x57')]),util[_0x05d1('0x55')](_0x05d1('0x58'),_0x416956[_0x05d1('0x3e')][_0x05d1('0x59')](),barAndWebActions[_0x416956['data1']]),_['merge'](_0x4b13a3,_0x35aa35));break;case _0x05d1('0x5a'):this[_0x05d1('0x34')](util[_0x05d1('0x55')](_0x05d1('0x56'),this[_0x05d1('0x11')][_0x35aa35['interface']]['name']),util[_0x05d1('0x55')](_0x05d1('0x5b'),_0x416956[_0x05d1('0x3e')][_0x05d1('0x59')]()),_['merge']({'ProjectId':parseInt(_0x416956[_0x05d1('0x42')],0xa)},_0x35aa35));break;default:this[_0x05d1('0x34')](util[_0x05d1('0x55')](_0x05d1('0x56'),this['agents'][_0x35aa35[_0x05d1('0x39')]][_0x05d1('0x57')]),util[_0x05d1('0x55')](_0x05d1('0x5b'),_0x416956[_0x05d1('0x3e')][_0x05d1('0x59')]()),_['merge']({},_0x416956,_0x35aa35));}}switch(_0x416956[_0x05d1('0x3e')][_0x05d1('0x59')]()){case _0x05d1('0x3f'):cmContact[_0x05d1('0x5c')](this[_0x05d1('0x11')][_0x35aa35['interface']],this[_0x05d1('0x10')][_0x2f0d1b],_0x416956,_0x35aa35);break;case _0x05d1('0x5d'):integration[_0x05d1('0x5c')](_0x416956,_0x35aa35,this[_0x05d1('0x1f')],this[_0x05d1('0x11')][_0x35aa35['interface']],this[_0x05d1('0x12')][_0x35aa35[_0x05d1('0x5e')]],this[_0x05d1('0x14')][_0x35aa35[_0x05d1('0x5f')]]);break;case _0x05d1('0x60'):urlforward[_0x05d1('0x5c')](_0x416956,_0x35aa35);break;case _0x05d1('0x61'):script[_0x05d1('0x5c')](_0x416956,_0x35aa35);break;}}}}}}};Trigger['prototype']['buildUri']=function(_0x4a745d,_0x382bde,_0x584be3){var _0x4027cb=url[_0x05d1('0x62')](Mustache[_0x05d1('0x46')](_0x4a745d,_0x382bde),!![]);if(_0x584be3){_['merge'](_0x4027cb[_0x05d1('0x63')],_0x382bde);}delete _0x4027cb[_0x05d1('0x64')];var _0x4ab670=url[_0x05d1('0x55')](_0x4027cb);_0x4ab670=_0x4ab670[_0x05d1('0x65')](/\/\?/g,'?');return _0x4ab670;};Trigger['prototype']['checkTrigger']=function(_0x51941a,_0x196fc0){var _0x46d670=!![],_0x513d9d=!![];if(_0x51941a[_0x05d1('0x66')]['length']){_0x46d670=_[_0x05d1('0x67')](_0x51941a[_0x05d1('0x66')],this[_0x05d1('0x68')](_0x196fc0,_0x51941a[_0x05d1('0x69')]));}if(_0x51941a[_0x05d1('0x6a')][_0x05d1('0x6b')]){_0x513d9d=_[_0x05d1('0x6c')](_0x51941a[_0x05d1('0x6a')],this[_0x05d1('0x68')](_0x196fc0,_0x51941a[_0x05d1('0x69')]));}return _0x46d670&&_0x513d9d;};Trigger[_0x05d1('0x33')][_0x05d1('0x68')]=function(_0x2082b3,_0x4ed505){return function(_0x39ecb3){switch(_0x39ecb3['field']){case'account':if(_0x2082b3[_0x05d1('0x69')]===_0x4ed505){if(_0x4ed505===_0x05d1('0x6d')){return _0x2082b3['ChatWebsiteId']?operators[_0x39ecb3[_0x05d1('0x6e')]](Number(_0x39ecb3[_0x05d1('0x6f')]),_0x2082b3['ChatWebsiteId']):![];}else{return _0x2082b3[_[_0x05d1('0x70')](_0x4ed505)+_0x05d1('0x71')]?operators[_0x39ecb3[_0x05d1('0x6e')]](Number(_0x39ecb3[_0x05d1('0x6f')]),_0x2082b3[_[_0x05d1('0x70')](_0x4ed505)+_0x05d1('0x71')]):![];}}break;case'interaction':case _0x05d1('0x72'):if(_0x2082b3[_0x05d1('0x69')]===_0x4ed505){return _0x2082b3[_0x05d1('0x73')]?operators[_0x39ecb3['operator']](_0x39ecb3['value'],_0x2082b3[_0x05d1('0x73')]):![];}break;case _0x05d1('0x5e'):return _0x2082b3['queue']?operators[_0x39ecb3[_0x05d1('0x6e')]](_0x39ecb3[_0x05d1('0x6f')],_0x2082b3[_0x05d1('0x5e')]):![];case'agent':return _0x2082b3['membername']?operators[_0x39ecb3[_0x05d1('0x6e')]](_0x39ecb3[_0x05d1('0x6f')],_0x2082b3[_0x05d1('0x74')]):![];case _0x05d1('0x75'):return _0x2082b3['lastevent']?operators[_0x39ecb3[_0x05d1('0x6e')]](_0x39ecb3[_0x05d1('0x6f')],_0x2082b3[_0x05d1('0x75')]):![];case _0x05d1('0x5f'):return _0x2082b3[_0x05d1('0x5f')]?operators[_0x39ecb3[_0x05d1('0x6e')]](_0x39ecb3[_0x05d1('0x6f')],_0x2082b3[_0x05d1('0x5f')]):![];}return![];};};module[_0x05d1('0x76')]=Trigger;
\ No newline at end of file
+var _0x0de7=['custom:dialbegin','custom:dialconnect','syncAgentDial','custom:newinteraction','custom:closedinteraction','custom:incomingmessage','custom:outgoingmessage','custom:acceptmessage','custom:rejectmessage','prototype','emit','info','clone','motionChannel','undefined','voice','agents','interface','status','checkTrigger','merge','Actions','length','toLowerCase','motionbar','browser','data1','TemplateId','data2','html','template\x20not\x20found','buildUri','isNil','data3','data4','location','uriLocation','windowWidth','data5','800','windowHeight','data6','600','winApplication','render','winArguments','user:%s','format','trigger:%s:%s','action','jscripty','name','trigger:%s','exec','integration','queue','routeId','script','search','channel','AllConditions','every','checkConditions','AnyConditions','some','field','chat','ChatWebsiteId','operator','value','upperFirst','AccountId','interaction','message','event','agent','membername','lastevent','exports','util','mustache','./integration','./cmContact','../../../config/environment','redis','defaults','localhost','socket.io-emitter','url','winapp','triggers','voiceQueues','templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','accounts','custom:agentcalled','syncCustomEvent','custom:agentconnect','bind','custom:agentnosuchnumber','custom:agentcongestion','custom:agentreject','custom:timeout'];(function(_0x53efb2,_0x2ec708){var _0x2dd480=function(_0x50196a){while(--_0x50196a){_0x53efb2['push'](_0x53efb2['shift']());}};_0x2dd480(++_0x2ec708);}(_0x0de7,0x1a2));var _0x70de=function(_0x113042,_0x5cd03f){_0x113042=_0x113042-0x0;var _0x297d4c=_0x0de7[_0x113042];return _0x297d4c;};'use strict';var util=require(_0x70de('0x0'));var _=require('lodash');var url=require('url');var Mustache=require(_0x70de('0x1'));var Redis=require('ioredis');var urlforward=require('./urlforward');var integration=require(_0x70de('0x2'));var cmContact=require(_0x70de('0x3'));var script=require('./script');var config=require(_0x70de('0x4'));var logger=require('../../../config/logger')('trigger');var ami=require('../ami');config[_0x70de('0x5')]=_[_0x70de('0x6')](config[_0x70de('0x5')],{'host':_0x70de('0x7'),'port':0x18eb});var io=require(_0x70de('0x8'))(new Redis(config['redis']));var operators={'equals':function(_0x2f5fcc,_0x56acdb){return _0x2f5fcc==_0x56acdb;},'not_equals':function(_0x11afbb,_0x5f2ec0){return _0x11afbb!=_0x5f2ec0;}};var barAndWebActions=['popup',_0x70de('0x9'),_0x70de('0xa')];function Trigger(_0x52aba6){this[_0x70de('0xb')]=_0x52aba6['triggers'];this['agents']=_0x52aba6['agents'];this[_0x70de('0xc')]=_0x52aba6['voiceQueues'];this[_0x70de('0xd')]=_0x52aba6[_0x70de('0xd')];this[_0x70de('0xe')]=_0x52aba6[_0x70de('0xe')];this[_0x70de('0xf')]=_0x52aba6[_0x70de('0xf')];this[_0x70de('0x10')]=_0x52aba6['freshdeskAccounts'];this[_0x70de('0x11')]=_0x52aba6['salesforceAccounts'];this[_0x70de('0x12')]=_0x52aba6[_0x70de('0x12')];this[_0x70de('0x13')]=_0x52aba6[_0x70de('0x13')];this[_0x70de('0x14')]=_0x52aba6[_0x70de('0x14')];this['vtigerAccounts']=_0x52aba6[_0x70de('0x15')];this[_0x70de('0x16')]=_0x52aba6[_0x70de('0x16')];this[_0x70de('0x17')]=_0x52aba6[_0x70de('0x17')];this[_0x70de('0x18')]=_0x52aba6[_0x70de('0x18')];this[_0x70de('0x19')]={'zendesk':this[_0x70de('0xf')],'salesforce':this[_0x70de('0x11')],'freshdesk':this[_0x70de('0x10')],'sugarcrm':this[_0x70de('0x12')],'zoho':this[_0x70de('0x13')],'desk':this[_0x70de('0x14')],'vtiger':this[_0x70de('0x15')],'dynamics365':this['dynamics365Accounts'],'freshsales':this[_0x70de('0x18')],'servicenow':this[_0x70de('0x16')]};ami['on'](_0x70de('0x1a'),this[_0x70de('0x1b')]['bind'](this));ami['on'](_0x70de('0x1c'),this[_0x70de('0x1b')][_0x70de('0x1d')](this));ami['on']('custom:agentringnoanswer',this[_0x70de('0x1b')][_0x70de('0x1d')](this));ami['on']('custom:agentcomplete',this[_0x70de('0x1b')][_0x70de('0x1d')](this));ami['on'](_0x70de('0x1e'),this[_0x70de('0x1b')][_0x70de('0x1d')](this));ami['on']('custom:agentnoanswer',this[_0x70de('0x1b')]['bind'](this));ami['on']('custom:agentbusy',this[_0x70de('0x1b')]['bind'](this));ami['on'](_0x70de('0x1f'),this[_0x70de('0x1b')][_0x70de('0x1d')](this));ami['on'](_0x70de('0x20'),this[_0x70de('0x1b')]['bind'](this));ami['on']('custom:amd',this['syncCustomEvent'][_0x70de('0x1d')](this));ami['on']('custom:queuecallerabandon',this[_0x70de('0x1b')][_0x70de('0x1d')](this));ami['on'](_0x70de('0x21'),this[_0x70de('0x1b')][_0x70de('0x1d')](this));ami['on'](_0x70de('0x22'),this['syncAgentDial'][_0x70de('0x1d')](this));ami['on'](_0x70de('0x23'),this[_0x70de('0x24')][_0x70de('0x1d')](this));ami['on']('custom:dialend',this['syncAgentDial'][_0x70de('0x1d')](this));ami['on'](_0x70de('0x25'),this[_0x70de('0x1b')]['bind'](this));ami['on'](_0x70de('0x26'),this['syncCustomEvent'][_0x70de('0x1d')](this));ami['on'](_0x70de('0x27'),this[_0x70de('0x1b')][_0x70de('0x1d')](this));ami['on'](_0x70de('0x28'),this[_0x70de('0x1b')][_0x70de('0x1d')](this));ami['on'](_0x70de('0x29'),this[_0x70de('0x1b')]['bind'](this));ami['on'](_0x70de('0x2a'),this[_0x70de('0x1b')]['bind'](this));}Trigger[_0x70de('0x2b')][_0x70de('0x2c')]=function(_0x334d09,_0x5824dd,_0x34cc82){logger[_0x70de('0x2d')](_0x334d09,_0x5824dd,JSON['stringify'](_0x34cc82));io['to'](_0x334d09)[_0x70de('0x2c')](_0x5824dd,_0x34cc82);};Trigger[_0x70de('0x2b')][_0x70de('0x1b')]=function(_0x3a8f6e){var _0x5635ac=_[_0x70de('0x2e')](_0x3a8f6e);if(typeof _0x5635ac[_0x70de('0x2f')]===_0x70de('0x30')){_0x5635ac['motionChannel']=_0x70de('0x31');}this['checkTriggers'](_0x5635ac);};Trigger['prototype'][_0x70de('0x24')]=function(_0x3d5b73){if(this[_0x70de('0x32')][_0x3d5b73[_0x70de('0x33')]]){this[_0x70de('0x1b')](_0x3d5b73);}};Trigger[_0x70de('0x2b')]['checkTriggers']=function(_0x48281e){var _0x1ae975;for(var _0x4f3dc3 in this['triggers']){if(this[_0x70de('0xb')]['hasOwnProperty'](_0x4f3dc3)){if(this[_0x70de('0xb')][_0x4f3dc3][_0x70de('0x34')]){_0x1ae975=this[_0x70de('0x35')](this[_0x70de('0xb')][_0x4f3dc3],_0x48281e);if(_0x1ae975){_[_0x70de('0x36')](_0x48281e,_0x48281e['variables']);for(var _0x391a23=0x0,_0x339f73,_0x3b2bdc,_0x12d2c0;_0x391a23<this[_0x70de('0xb')][_0x4f3dc3][_0x70de('0x37')][_0x70de('0x38')];_0x391a23+=0x1){_0x339f73=this['triggers'][_0x4f3dc3][_0x70de('0x37')][_0x391a23];if(this[_0x70de('0x32')][_0x48281e['interface']]){switch(_0x339f73['action'][_0x70de('0x39')]()){case'contactmanager':break;case _0x70de('0x3a'):case _0x70de('0x3b'):var _0x3495d9={};switch(barAndWebActions[_0x339f73[_0x70de('0x3c')]]){case'popup':_0x3495d9[_0x70de('0x3d')]=_0x339f73[_0x70de('0x3e')];_0x3495d9[_0x70de('0x3f')]=this[_0x70de('0xd')][_0x339f73[_0x70de('0x3e')]]?Mustache['render'](this['templates'][_0x339f73[_0x70de('0x3e')]][_0x70de('0x3f')],_0x48281e):_0x70de('0x40');break;case'url':_0x3495d9['uri']=this[_0x70de('0x41')](_0x339f73[_0x70de('0x3e')],_0x48281e,_[_0x70de('0x42')](_0x339f73['data3'])?!![]:parseInt(_0x339f73[_0x70de('0x43')],0xa));if(_[_0x70de('0x42')](_0x339f73[_0x70de('0x44')])){_0x3495d9[_0x70de('0x45')]='0';}else{_0x3495d9[_0x70de('0x46')]=_0x339f73['data4'];_0x3495d9[_0x70de('0x47')]=_[_0x70de('0x42')](_0x339f73[_0x70de('0x48')])?_0x70de('0x49'):_0x339f73[_0x70de('0x48')];_0x3495d9[_0x70de('0x4a')]=_[_0x70de('0x42')](_0x339f73[_0x70de('0x4b')])?_0x70de('0x4c'):_0x339f73[_0x70de('0x4b')];}break;case _0x70de('0xa'):_0x3495d9[_0x70de('0x4d')]=_0x339f73[_0x70de('0x3e')]?Mustache[_0x70de('0x4e')](_0x339f73[_0x70de('0x3e')],_0x48281e):'';_0x3495d9[_0x70de('0x4f')]=_0x339f73['data3']?Mustache[_0x70de('0x4e')](_0x339f73['data3'],_0x48281e):'';break;}this[_0x70de('0x2c')](util['format'](_0x70de('0x50'),this[_0x70de('0x32')][_0x48281e[_0x70de('0x33')]]['name']),util[_0x70de('0x51')](_0x70de('0x52'),_0x339f73[_0x70de('0x53')]['toLowerCase'](),barAndWebActions[_0x339f73[_0x70de('0x3c')]]),_[_0x70de('0x36')](_0x3495d9,_0x48281e));break;case _0x70de('0x54'):this['emit'](util['format']('user:%s',this[_0x70de('0x32')][_0x48281e['interface']][_0x70de('0x55')]),util[_0x70de('0x51')]('trigger:%s',_0x339f73[_0x70de('0x53')][_0x70de('0x39')]()),_[_0x70de('0x36')]({'ProjectId':parseInt(_0x339f73[_0x70de('0x3c')],0xa)},_0x48281e));break;default:this[_0x70de('0x2c')](util[_0x70de('0x51')](_0x70de('0x50'),this[_0x70de('0x32')][_0x48281e[_0x70de('0x33')]][_0x70de('0x55')]),util['format'](_0x70de('0x56'),_0x339f73[_0x70de('0x53')]['toLowerCase']()),_[_0x70de('0x36')]({},_0x339f73,_0x48281e));}}switch(_0x339f73[_0x70de('0x53')][_0x70de('0x39')]()){case'contactmanager':cmContact[_0x70de('0x57')](this[_0x70de('0x32')][_0x48281e[_0x70de('0x33')]],this[_0x70de('0xb')][_0x4f3dc3],_0x339f73,_0x48281e);break;case _0x70de('0x58'):integration[_0x70de('0x57')](_0x339f73,_0x48281e,this[_0x70de('0x19')],this[_0x70de('0x32')][_0x48281e[_0x70de('0x33')]],this[_0x70de('0xc')][_0x48281e[_0x70de('0x59')]],this[_0x70de('0xe')][_0x48281e[_0x70de('0x5a')]]);break;case'urlforward':urlforward[_0x70de('0x57')](_0x339f73,_0x48281e);break;case _0x70de('0x5b'):script[_0x70de('0x57')](_0x339f73,_0x48281e);break;}}}}}}};Trigger[_0x70de('0x2b')][_0x70de('0x41')]=function(_0x22dbe7,_0x5186bc,_0x27839b){var _0x3c8ac9=url['parse'](Mustache[_0x70de('0x4e')](_0x22dbe7,_0x5186bc),!![]);if(_0x27839b){_[_0x70de('0x36')](_0x3c8ac9['query'],_0x5186bc);}delete _0x3c8ac9[_0x70de('0x5c')];var _0x59dfa8=url[_0x70de('0x51')](_0x3c8ac9);_0x59dfa8=_0x59dfa8['replace'](/\/\?/g,'?');return _0x59dfa8;};Trigger[_0x70de('0x2b')][_0x70de('0x35')]=function(_0xc7f434,_0xb90b06){var _0x5294df=!![];var _0x50770d=!![];var _0x57b317=![];if(_0xc7f434[_0x70de('0x5d')]===_0xb90b06['motionChannel']){_0x57b317=!![];}if(_0xc7f434[_0x70de('0x5e')][_0x70de('0x38')]){_0x5294df=_[_0x70de('0x5f')](_0xc7f434[_0x70de('0x5e')],this[_0x70de('0x60')](_0xb90b06,_0xc7f434['channel']));}if(_0xc7f434[_0x70de('0x61')]['length']){_0x50770d=_[_0x70de('0x62')](_0xc7f434['AnyConditions'],this[_0x70de('0x60')](_0xb90b06,_0xc7f434[_0x70de('0x5d')]));}return _0x57b317&&_0x5294df&&_0x50770d;};Trigger[_0x70de('0x2b')][_0x70de('0x60')]=function(_0x4a089c,_0x249eab){return function(_0x1e1bdf){switch(_0x1e1bdf[_0x70de('0x63')]){case'account':if(_0x4a089c[_0x70de('0x5d')]===_0x249eab){if(_0x249eab===_0x70de('0x64')){return _0x4a089c[_0x70de('0x65')]?operators[_0x1e1bdf[_0x70de('0x66')]](Number(_0x1e1bdf[_0x70de('0x67')]),_0x4a089c['ChatWebsiteId']):![];}else{return _0x4a089c[_[_0x70de('0x68')](_0x249eab)+_0x70de('0x69')]?operators[_0x1e1bdf['operator']](Number(_0x1e1bdf['value']),_0x4a089c[_[_0x70de('0x68')](_0x249eab)+'AccountId']):![];}}break;case _0x70de('0x6a'):case _0x70de('0x6b'):if(_0x4a089c[_0x70de('0x5d')]===_0x249eab){return _0x4a089c[_0x70de('0x6c')]?operators[_0x1e1bdf[_0x70de('0x66')]](_0x1e1bdf[_0x70de('0x67')],_0x4a089c[_0x70de('0x6c')]):![];}break;case _0x70de('0x59'):return _0x4a089c['queue']?operators[_0x1e1bdf[_0x70de('0x66')]](_0x1e1bdf[_0x70de('0x67')],_0x4a089c['queue']):![];case _0x70de('0x6d'):return _0x4a089c[_0x70de('0x6e')]?operators[_0x1e1bdf['operator']](_0x1e1bdf[_0x70de('0x67')],_0x4a089c[_0x70de('0x6e')]):![];case'lastevent':return _0x4a089c['lastevent']?operators[_0x1e1bdf[_0x70de('0x66')]](_0x1e1bdf[_0x70de('0x67')],_0x4a089c[_0x70de('0x6f')]):![];case _0x70de('0x5a'):return _0x4a089c[_0x70de('0x5a')]?operators[_0x1e1bdf[_0x70de('0x66')]](_0x1e1bdf[_0x70de('0x67')],_0x4a089c['routeId']):![];}return![];};};module[_0x70de('0x70')]=Trigger;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3e74=['customField','content','idField','custom_fields','variable','variableName','name','Variable','toLowerCase','priority','Creating\x20new\x20ticket...','getString','phone','new','xCALLY','Motion','CTI','concat','Descriptions','/api/v2/users/%d','user','Fields','%s/customers/%d/cases','stripTrailingSlash','serverUrl','recordingURL','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','Authorization','email','The\x20User\x20ID\x20is:','Ticket\x20created!','The\x20Ticket\x20ID\x20is:','integrationTab','user:%s','newTab','[QUEUE]','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...','https://xcally.desk.com/web/agent/case/%d','error','Desk\x20account\x20type\x20not\x20recognized','catch','outbound','recordingFormat','none','[OUTBOUND]','Recording\x20is\x20enabled!','destcalleridnum','The\x20Enduser\x20ID\x20is:','trigger:desk:display','trigger:browser:url','%s/agent/tickets/%s','stringify','unmanaged','monitor_format','lastevent','toUpperCase','calleridnum','lodash','md5','util','ioredis','../../../../config/logger','redis','defaults','localhost','socket.io-emitter','emit','application/json','info','Getting\x20agent\x20with\x20email','%s/users','then','find','_embedded','entries','Agent\x20found!','Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!','remoteUri','Invalid\x20email\x20format,\x20using\x20the\x20admin\x20account!','format','debug','[HTTP]','GET','authType','basic','%s:%s','username','password','token','Basic\x20%s','toString','base64','Searching\x20enduser\x20with\x20phone','total_entries','Enduser\x20found!','Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!','POST','length','forEach','includes','string','picklist','type','nameField'];(function(_0x24b1ea,_0x642a66){var _0x1eb3b0=function(_0x57c90b){while(--_0x57c90b){_0x24b1ea['push'](_0x24b1ea['shift']());}};_0x1eb3b0(++_0x642a66);}(_0x3e74,0x175));var _0x43e7=function(_0xe697c3,_0x4092fa){_0xe697c3=_0xe697c3-0x0;var _0x28b2ec=_0x3e74[_0xe697c3];return _0x28b2ec;};'use strict';var _=require(_0x43e7('0x0'));var rp=require('request-promise');var md5=require(_0x43e7('0x1'));var util=require(_0x43e7('0x2'));var Redis=require(_0x43e7('0x3'));var intUtil=require('./util');var config=require('../../../../config/environment');var logger=require(_0x43e7('0x4'))('desk');config[_0x43e7('0x5')]=_[_0x43e7('0x6')](config[_0x43e7('0x5')],{'host':_0x43e7('0x7'),'port':0x18eb});var io=require(_0x43e7('0x8'))(new Redis(config['redis']));function emit(_0x45a0d1,_0x3491d6,_0x2ede2d){io['to'](_0x45a0d1)[_0x43e7('0x9')](_0x3491d6,_0x2ede2d);}var headers={'Content-Type':_0x43e7('0xa'),'Accept':'application/json'};function getUser(_0x212c6c,_0x554d44){if(intUtil['validateEmail'](_0x554d44)===!![]){logger[_0x43e7('0xb')](_0x43e7('0xc'),_0x554d44);return request({'uri':util['format'](_0x43e7('0xd'),_0x212c6c['remoteUri'])})[_0x43e7('0xe')](function(_0x37302c){if(_0x37302c['total_entries']){return _[_0x43e7('0xf')](_0x37302c[_0x43e7('0x10')][_0x43e7('0x11')],{'email':_0x554d44});}})[_0x43e7('0xe')](function(_0x4e008c){if(_0x4e008c){logger['info'](_0x43e7('0x12'));return _0x4e008c;}else{logger[_0x43e7('0xb')](_0x43e7('0x13'));return request({'uri':util['format']('%s/users/me',_0x212c6c[_0x43e7('0x14')])});}});}else{logger[_0x43e7('0xb')](_0x43e7('0x15'));return request({'uri':util[_0x43e7('0x16')]('%s/users/me',_0x212c6c['remoteUri'])});}}function request(_0xdf16c){logger[_0x43e7('0x17')](_0x43e7('0x18'),JSON['stringify'](_0xdf16c));return rp(_['defaults'](_0xdf16c,{'method':_0x43e7('0x19'),'headers':headers,'json':!![]}));}function getAuth(_0x1ca758){var _0x9037d3;if(_0x1ca758[_0x43e7('0x1a')]===_0x43e7('0x1b')){_0x9037d3=util[_0x43e7('0x16')](_0x43e7('0x1c'),_0x1ca758[_0x43e7('0x1d')],_0x1ca758[_0x43e7('0x1e')]);}else if(_0x1ca758[_0x43e7('0x1a')]===_0x43e7('0x1f')){_0x9037d3=util[_0x43e7('0x16')]('%s/token:%s',_0x1ca758[_0x43e7('0x1d')],_0x1ca758[_0x43e7('0x1f')]);}return util['format'](_0x43e7('0x20'),new Buffer(_0x9037d3)[_0x43e7('0x21')](_0x43e7('0x22')));}function getEndUser(_0x28aacc,_0x4077fb,_0x2f4cb4){logger['info'](_0x43e7('0x23'),_0x2f4cb4);return request({'uri':util['format']('%s/customers/search',_0x28aacc[_0x43e7('0x14')]),'qs':{'phone':_0x2f4cb4}})[_0x43e7('0xe')](function(_0x4b2b9f){if(_0x4b2b9f[_0x43e7('0x24')]){logger['info'](_0x43e7('0x25'));return _0x4b2b9f['_embedded'][_0x43e7('0x11')][0x0];}else{logger[_0x43e7('0xb')](_0x43e7('0x26'));return request({'uri':util[_0x43e7('0x16')]('%s/customers',_0x28aacc['remoteUri']),'method':_0x43e7('0x27'),'body':{'first_name':_0x4077fb,'title':_0x4077fb,'phone_numbers':[{'type':'work','value':_0x2f4cb4}]}});}});}function getTags(_0x2dd5f,_0x40dc8f){var _0x3565cf=[];if(_0x2dd5f&&_0x2dd5f[_0x43e7('0x28')]>0x0){_0x3565cf=_['map'](_0x2dd5f,_0x40dc8f);}return _0x3565cf;}function getCustomFields(_0x33a1a5,_0x4690a6){var _0x45b675=[];var _0x50f9f5={'custom_fields':{}};if(_0x33a1a5[_0x43e7('0x28')]>0x0){_[_0x43e7('0x29')](_0x33a1a5,function(_0x2b85a5){if(_[_0x43e7('0x2a')]([_0x43e7('0x2b'),_0x43e7('0x2c')],_0x2b85a5[_0x43e7('0x2d')])&&_0x2b85a5[_0x43e7('0x2e')]&&!_0x2b85a5[_0x43e7('0x2f')]){_0x50f9f5[_0x2b85a5[_0x43e7('0x2e')]['toLowerCase']()]=_0x2b85a5[_0x43e7('0x30')][_0x43e7('0x21')]();}else if(_[_0x43e7('0x2a')]([_0x43e7('0x2b'),_0x43e7('0x2c')],_0x2b85a5['type'])&&_0x2b85a5[_0x43e7('0x31')]&&_0x2b85a5[_0x43e7('0x2f')]){_0x50f9f5[_0x43e7('0x32')][_0x2b85a5[_0x43e7('0x31')]]=_0x2b85a5['content']['toString']();}else if(_0x2b85a5['type']===_0x43e7('0x33')&&_0x2b85a5[_0x43e7('0x34')]&&_0x2b85a5[_0x43e7('0x31')]&&_0x2b85a5[_0x43e7('0x2f')]){_0x4690a6[_0x2b85a5[_0x43e7('0x34')]]&&(_0x50f9f5[_0x43e7('0x32')][_0x2b85a5['idField']]=_0x4690a6[_0x2b85a5['variableName']]['toString']());}else if(_0x2b85a5['type']==='customVariable'&&_0x2b85a5['Variable']&&_0x2b85a5['Variable'][_0x43e7('0x35')]&&_0x2b85a5['idField']&&_0x2b85a5[_0x43e7('0x2f')]){_0x4690a6[_0x2b85a5[_0x43e7('0x36')][_0x43e7('0x35')][_0x43e7('0x37')]()]&&(_0x50f9f5[_0x43e7('0x32')][_0x2b85a5[_0x43e7('0x31')]]=_0x4690a6[_0x2b85a5[_0x43e7('0x36')]['name']['toLowerCase']()]['toString']());}});}if(_0x50f9f5[_0x43e7('0x38')]){_0x50f9f5[_0x43e7('0x38')]=Number(_0x50f9f5[_0x43e7('0x38')]);}return _0x50f9f5;}function getTicket(_0x16cdba,_0x1b1440,_0x1ed538,_0x1d4589,_0x2ffd43){logger['info'](_0x43e7('0x39'));var _0x2b0ffe=_['merge']({'subject':intUtil[_0x43e7('0x3a')](_0x1d4589['Subjects'],_0x2ffd43,'\x20'),'type':_0x43e7('0x3b'),'status':_0x43e7('0x3c'),'labels':[_0x43e7('0x3d'),_0x43e7('0x3e'),_0x43e7('0x3f')][_0x43e7('0x40')](getTags(_0x1d4589['Tags'],'name')),'description':intUtil[_0x43e7('0x3a')](_0x1d4589[_0x43e7('0x41')],_0x2ffd43,'\x0a'),'_links':{'assigned_user':{'href':util[_0x43e7('0x16')](_0x43e7('0x42'),_0x1b1440['id']),'class':_0x43e7('0x43')}},'message':{'direction':'in','body':intUtil['getString'](_0x1d4589[_0x43e7('0x41')],_0x2ffd43,'\x0a')}},getCustomFields(_0x1d4589[_0x43e7('0x44')],_0x2ffd43));return request({'uri':util['format'](_0x43e7('0x45'),_0x16cdba['remoteUri'],_0x1ed538['id']),'method':_0x43e7('0x27'),'body':_0x2b0ffe});}exports['queue']=function(_0x3d81ae,_0x3b4235,_0x3a5807,_0x1c2c6b,_0x49b866,_0x47d6a1){var _0x103393,_0x40c509;_0x47d6a1[_0x43e7('0x14')]=intUtil[_0x43e7('0x46')](_0x47d6a1['remoteUri']);_0x47d6a1['serverUrl']=intUtil['stripTrailingSlash'](_0x47d6a1[_0x43e7('0x47')]);if(_0x49b866&&_0x49b866['monitor_format']){logger[_0x43e7('0xb')]('[QUEUE]','Recording\x20is\x20enabled!');_0x3b4235[_0x43e7('0x48')]=util['format'](_0x43e7('0x49'),_0x47d6a1[_0x43e7('0x47')],_0x3b4235[_0x43e7('0x4a')],md5(_0x3b4235[_0x43e7('0x4a')]));}else{_0x3b4235['recordingURL']='';}headers[_0x43e7('0x4b')]=getAuth(_0x47d6a1);return getUser(_0x47d6a1,_0x1c2c6b[_0x43e7('0x4c')])[_0x43e7('0xe')](function(_0x1fd277){_0x103393=_0x1fd277;logger[_0x43e7('0xb')](_0x43e7('0x4d'),_0x103393['id']);return getEndUser(_0x47d6a1,_0x3b4235['calleridname'],_0x3b4235['calleridnum']);})[_0x43e7('0xe')](function(_0x36a09e){_0x40c509=_0x36a09e;logger[_0x43e7('0xb')]('The\x20Enduser\x20ID\x20is:',_0x40c509['id']);return getTicket(_0x47d6a1,_0x103393,_0x40c509,_0x3a5807,_0x3b4235);})['then'](function(_0x56489b){if(_0x56489b){logger[_0x43e7('0xb')](_0x43e7('0x4e'));logger['info'](_0x43e7('0x4f'),_0x56489b['id']);switch(_0x47d6a1[_0x43e7('0x2d')]){case _0x43e7('0x50'):logger['info']('[QUEUE]','Displaying\x20ticket\x20to\x20agent...');emit(util['format'](_0x43e7('0x51'),_0x1c2c6b[_0x43e7('0x35')]),'trigger:desk:display',{'recordId':_0x56489b['id']});break;case _0x43e7('0x52'):logger[_0x43e7('0xb')](_0x43e7('0x53'),_0x43e7('0x54'));emit(util['format'](_0x43e7('0x51'),_0x1c2c6b['name']),'trigger:browser:url',{'uri':util[_0x43e7('0x16')](_0x43e7('0x55'),_0x56489b['id'])});break;default:logger[_0x43e7('0x56')](_0x43e7('0x53'),_0x43e7('0x57'));}}})[_0x43e7('0x58')](function(_0x1cd87c){console[_0x43e7('0x56')](_0x1cd87c);logger[_0x43e7('0x56')](_0x43e7('0x53'),JSON['stringify'](_0x1cd87c));});};exports[_0x43e7('0x59')]=function(_0x46c910,_0x499c03,_0x39e3ca,_0x4e6f6d,_0x35b799,_0x520857,_0x34e2ec){var _0x1f561f,_0xfe13fa;_0x520857['remoteUri']=intUtil['stripTrailingSlash'](_0x520857[_0x43e7('0x14')]);_0x520857[_0x43e7('0x47')]=intUtil[_0x43e7('0x46')](_0x520857[_0x43e7('0x47')]);if(_0x34e2ec&&_0x34e2ec[_0x43e7('0x5a')]&&_0x34e2ec[_0x43e7('0x5a')]!==_0x43e7('0x5b')){logger[_0x43e7('0xb')](_0x43e7('0x5c'),_0x43e7('0x5d'));_0x499c03[_0x43e7('0x48')]=util['format'](_0x43e7('0x49'),_0x520857[_0x43e7('0x47')],_0x499c03['uniqueid'],md5(_0x499c03[_0x43e7('0x4a')]));}headers[_0x43e7('0x4b')]=getAuth(_0x520857);return getUser(_0x520857,_0x4e6f6d[_0x43e7('0x4c')])['then'](function(_0x5d63c6){_0x1f561f=_0x5d63c6;logger[_0x43e7('0xb')](_0x43e7('0x4d'),_0x1f561f['id']);return getEndUser(_0x520857,_0x499c03['destcalleridname'],_0x499c03[_0x43e7('0x5e')]);})['then'](function(_0x49a6ce){_0xfe13fa=_0x49a6ce;logger[_0x43e7('0xb')](_0x43e7('0x5f'),_0xfe13fa['id']);return getTicket(_0x520857,_0x1f561f,_0xfe13fa,_0x39e3ca,_0x499c03);})[_0x43e7('0xe')](function(_0x40155c){if(_0x40155c){logger[_0x43e7('0xb')]('Ticket\x20created!');logger[_0x43e7('0xb')](_0x43e7('0x4f'),_0x40155c['id']);switch(_0x520857['type']){case _0x43e7('0x50'):logger[_0x43e7('0xb')](_0x43e7('0x53'),'Displaying\x20ticket\x20to\x20agent...');emit(util['format']('user:%s',_0x4e6f6d[_0x43e7('0x35')]),_0x43e7('0x60'),{'recordId':_0x40155c['id']});break;case _0x43e7('0x52'):logger[_0x43e7('0xb')]('[QUEUE]','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...');emit(util[_0x43e7('0x16')](_0x43e7('0x51'),_0x4e6f6d[_0x43e7('0x35')]),_0x43e7('0x61'),{'uri':util['format'](_0x43e7('0x62'),_0x520857[_0x43e7('0x14')],_0x40155c['id'])});break;default:logger[_0x43e7('0x56')](_0x43e7('0x5c'),_0x43e7('0x57'));}}})[_0x43e7('0x58')](function(_0x4665db){logger[_0x43e7('0x56')](_0x43e7('0x5c'),JSON[_0x43e7('0x63')](_0x4665db));});};exports[_0x43e7('0x64')]=function(_0x57fdfe,_0x5f3824,_0x2b0711,_0x58a3a8,_0x501616,_0x50edb2){var _0xb3e981,_0xe666b0;_0x50edb2['remoteUri']=intUtil[_0x43e7('0x46')](_0x50edb2[_0x43e7('0x14')]);_0x50edb2[_0x43e7('0x47')]=intUtil['stripTrailingSlash'](_0x50edb2[_0x43e7('0x47')]);if(_0x501616&&_0x501616[_0x43e7('0x65')]){logger[_0x43e7('0xb')]('['+_0x5f3824[_0x43e7('0x66')][_0x43e7('0x67')]()+']',_0x43e7('0x5d'));_0x5f3824[_0x43e7('0x48')]=util['format'](_0x43e7('0x49'),_0x50edb2[_0x43e7('0x47')],_0x5f3824[_0x43e7('0x4a')],md5(_0x5f3824['uniqueid']));}else{_0x5f3824['recordingURL']='';}headers[_0x43e7('0x4b')]=getAuth(_0x50edb2);return getUser(_0x50edb2)['then'](function(_0x5cb26e){_0xb3e981=_0x5cb26e;logger[_0x43e7('0xb')](_0x43e7('0x4d'),_0xb3e981['id']);return getEndUser(_0x50edb2,_0x5f3824['calleridname'],_0x5f3824[_0x43e7('0x68')]);})[_0x43e7('0xe')](function(_0x1e2fed){_0xe666b0=_0x1e2fed;logger[_0x43e7('0xb')](_0x43e7('0x5f'),_0xe666b0['id']);return getTicket(_0x50edb2,_0xb3e981,_0xe666b0,_0x2b0711,_0x5f3824);})[_0x43e7('0xe')](function(_0x398a78){if(_0x398a78){logger['info'](_0x43e7('0x4e'));logger[_0x43e7('0xb')]('The\x20Ticket\x20ID\x20is:',_0x398a78['id']);}})[_0x43e7('0x58')](function(_0x5c2c5f){logger[_0x43e7('0x56')]('['+_0x5f3824[_0x43e7('0x66')][_0x43e7('0x67')]()+']',JSON[_0x43e7('0x63')](_0x5c2c5f));});};
\ No newline at end of file
+var _0x7217=['format','%s/users','remoteUri','then','total_entries','find','entries','info','Agent\x20found!','Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!','%s/users/me','debug','stringify','GET','authType','basic','%s:%s','username','password','token','Basic\x20%s','base64','Searching\x20enduser\x20with\x20phone','%s/customers/search','Enduser\x20found!','_embedded','Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!','length','map','forEach','string','picklist','nameField','customField','content','toString','includes','idField','custom_fields','variable','variableName','type','customVariable','Variable','name','toLowerCase','priority','Creating\x20new\x20ticket...','merge','getString','new','xCALLY','Motion','CTI','Tags','Descriptions','user','%s/customers/%d/cases','queue','stripTrailingSlash','serverUrl','monitor_format','[QUEUE]','Recording\x20is\x20enabled!','recordingURL','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','Authorization','email','The\x20User\x20ID\x20is:','calleridnum','The\x20Enduser\x20ID\x20is:','Ticket\x20created!','integrationTab','Displaying\x20ticket\x20to\x20agent...','user:%s','trigger:desk:display','newTab','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...','trigger:browser:url','https://xcally.desk.com/web/agent/case/%d','error','catch','outbound','recordingFormat','none','[OUTBOUND]','uniqueid','The\x20Ticket\x20ID\x20is:','%s/agent/tickets/%s','unmanaged','lastevent','toUpperCase','calleridname','lodash','md5','util','ioredis','./util','../../../../config/environment','redis','defaults','localhost','socket.io-emitter','emit','application/json','validateEmail','Getting\x20agent\x20with\x20email'];(function(_0x40a3db,_0x2666f1){var _0x43fa54=function(_0x3b95de){while(--_0x3b95de){_0x40a3db['push'](_0x40a3db['shift']());}};_0x43fa54(++_0x2666f1);}(_0x7217,0x19e));var _0x7721=function(_0x110c3d,_0x12ee06){_0x110c3d=_0x110c3d-0x0;var _0x226d67=_0x7217[_0x110c3d];return _0x226d67;};'use strict';var _=require(_0x7721('0x0'));var rp=require('request-promise');var md5=require(_0x7721('0x1'));var util=require(_0x7721('0x2'));var Redis=require(_0x7721('0x3'));var intUtil=require(_0x7721('0x4'));var config=require(_0x7721('0x5'));var logger=require('../../../../config/logger')('desk');config[_0x7721('0x6')]=_[_0x7721('0x7')](config[_0x7721('0x6')],{'host':_0x7721('0x8'),'port':0x18eb});var io=require(_0x7721('0x9'))(new Redis(config[_0x7721('0x6')]));function emit(_0x18ab6b,_0x21f680,_0x225610){io['to'](_0x18ab6b)[_0x7721('0xa')](_0x21f680,_0x225610);}var headers={'Content-Type':_0x7721('0xb'),'Accept':_0x7721('0xb')};function getUser(_0xfa8835,_0x138740){if(intUtil[_0x7721('0xc')](_0x138740)===!![]){logger['info'](_0x7721('0xd'),_0x138740);return request({'uri':util[_0x7721('0xe')](_0x7721('0xf'),_0xfa8835[_0x7721('0x10')])})[_0x7721('0x11')](function(_0x409b37){if(_0x409b37[_0x7721('0x12')]){return _[_0x7721('0x13')](_0x409b37['_embedded'][_0x7721('0x14')],{'email':_0x138740});}})[_0x7721('0x11')](function(_0x57ff6d){if(_0x57ff6d){logger[_0x7721('0x15')](_0x7721('0x16'));return _0x57ff6d;}else{logger[_0x7721('0x15')](_0x7721('0x17'));return request({'uri':util['format'](_0x7721('0x18'),_0xfa8835[_0x7721('0x10')])});}});}else{logger['info']('Invalid\x20email\x20format,\x20using\x20the\x20admin\x20account!');return request({'uri':util['format'](_0x7721('0x18'),_0xfa8835[_0x7721('0x10')])});}}function request(_0x3cc909){logger[_0x7721('0x19')]('[HTTP]',JSON[_0x7721('0x1a')](_0x3cc909));return rp(_['defaults'](_0x3cc909,{'method':_0x7721('0x1b'),'headers':headers,'json':!![]}));}function getAuth(_0x5cb0e6){var _0xfec626;if(_0x5cb0e6[_0x7721('0x1c')]===_0x7721('0x1d')){_0xfec626=util[_0x7721('0xe')](_0x7721('0x1e'),_0x5cb0e6[_0x7721('0x1f')],_0x5cb0e6[_0x7721('0x20')]);}else if(_0x5cb0e6[_0x7721('0x1c')]===_0x7721('0x21')){_0xfec626=util[_0x7721('0xe')]('%s/token:%s',_0x5cb0e6[_0x7721('0x1f')],_0x5cb0e6[_0x7721('0x21')]);}return util[_0x7721('0xe')](_0x7721('0x22'),new Buffer(_0xfec626)['toString'](_0x7721('0x23')));}function getEndUser(_0x512f31,_0xb9e9dd,_0x288e3a){logger[_0x7721('0x15')](_0x7721('0x24'),_0x288e3a);return request({'uri':util[_0x7721('0xe')](_0x7721('0x25'),_0x512f31[_0x7721('0x10')]),'qs':{'phone':_0x288e3a}})['then'](function(_0x216f20){if(_0x216f20[_0x7721('0x12')]){logger[_0x7721('0x15')](_0x7721('0x26'));return _0x216f20[_0x7721('0x27')][_0x7721('0x14')][0x0];}else{logger[_0x7721('0x15')](_0x7721('0x28'));return request({'uri':util[_0x7721('0xe')]('%s/customers',_0x512f31[_0x7721('0x10')]),'method':'POST','body':{'first_name':_0xb9e9dd,'title':_0xb9e9dd,'phone_numbers':[{'type':'work','value':_0x288e3a}]}});}});}function getTags(_0x315202,_0x343c19){var _0x53c904=[];if(_0x315202&&_0x315202[_0x7721('0x29')]>0x0){_0x53c904=_[_0x7721('0x2a')](_0x315202,_0x343c19);}return _0x53c904;}function getCustomFields(_0x37b9f0,_0xd7d703){var _0x1da2d8=[];var _0x5c54f0={'custom_fields':{}};if(_0x37b9f0[_0x7721('0x29')]>0x0){_[_0x7721('0x2b')](_0x37b9f0,function(_0x497f9f){if(_['includes']([_0x7721('0x2c'),_0x7721('0x2d')],_0x497f9f['type'])&&_0x497f9f[_0x7721('0x2e')]&&!_0x497f9f[_0x7721('0x2f')]){_0x5c54f0[_0x497f9f[_0x7721('0x2e')]['toLowerCase']()]=_0x497f9f[_0x7721('0x30')][_0x7721('0x31')]();}else if(_[_0x7721('0x32')]([_0x7721('0x2c'),_0x7721('0x2d')],_0x497f9f['type'])&&_0x497f9f[_0x7721('0x33')]&&_0x497f9f[_0x7721('0x2f')]){_0x5c54f0[_0x7721('0x34')][_0x497f9f['idField']]=_0x497f9f[_0x7721('0x30')][_0x7721('0x31')]();}else if(_0x497f9f['type']===_0x7721('0x35')&&_0x497f9f['variableName']&&_0x497f9f[_0x7721('0x33')]&&_0x497f9f[_0x7721('0x2f')]){_0xd7d703[_0x497f9f[_0x7721('0x36')]]&&(_0x5c54f0[_0x7721('0x34')][_0x497f9f[_0x7721('0x33')]]=_0xd7d703[_0x497f9f[_0x7721('0x36')]][_0x7721('0x31')]());}else if(_0x497f9f[_0x7721('0x37')]===_0x7721('0x38')&&_0x497f9f[_0x7721('0x39')]&&_0x497f9f[_0x7721('0x39')]['name']&&_0x497f9f[_0x7721('0x33')]&&_0x497f9f['customField']){_0xd7d703[_0x497f9f[_0x7721('0x39')][_0x7721('0x3a')][_0x7721('0x3b')]()]&&(_0x5c54f0[_0x7721('0x34')][_0x497f9f[_0x7721('0x33')]]=_0xd7d703[_0x497f9f[_0x7721('0x39')]['name']['toLowerCase']()]['toString']());}});}if(_0x5c54f0['priority']){_0x5c54f0[_0x7721('0x3c')]=Number(_0x5c54f0[_0x7721('0x3c')]);}return _0x5c54f0;}function getTicket(_0x1acc72,_0x22ef35,_0x4a90ce,_0xa389fa,_0x4cf659){logger[_0x7721('0x15')](_0x7721('0x3d'));var _0x5a278e=_[_0x7721('0x3e')]({'subject':intUtil[_0x7721('0x3f')](_0xa389fa['Subjects'],_0x4cf659,'\x20'),'type':'phone','status':_0x7721('0x40'),'labels':[_0x7721('0x41'),_0x7721('0x42'),_0x7721('0x43')]['concat'](getTags(_0xa389fa[_0x7721('0x44')],_0x7721('0x3a'))),'description':intUtil[_0x7721('0x3f')](_0xa389fa[_0x7721('0x45')],_0x4cf659,'\x0a'),'_links':{'assigned_user':{'href':util[_0x7721('0xe')]('/api/v2/users/%d',_0x22ef35['id']),'class':_0x7721('0x46')}},'message':{'direction':'in','body':intUtil['getString'](_0xa389fa[_0x7721('0x45')],_0x4cf659,'\x0a')}},getCustomFields(_0xa389fa['Fields'],_0x4cf659));return request({'uri':util[_0x7721('0xe')](_0x7721('0x47'),_0x1acc72[_0x7721('0x10')],_0x4a90ce['id']),'method':'POST','body':_0x5a278e});}exports[_0x7721('0x48')]=function(_0x11d853,_0x1ad315,_0x481fa8,_0x9f7b1d,_0x754071,_0xdb3033){var _0x2d5f35,_0x135dbc;_0xdb3033[_0x7721('0x10')]=intUtil[_0x7721('0x49')](_0xdb3033['remoteUri']);_0xdb3033['serverUrl']=intUtil[_0x7721('0x49')](_0xdb3033[_0x7721('0x4a')]);if(_0x754071&&_0x754071[_0x7721('0x4b')]){logger[_0x7721('0x15')](_0x7721('0x4c'),_0x7721('0x4d'));_0x1ad315[_0x7721('0x4e')]=util[_0x7721('0xe')](_0x7721('0x4f'),_0xdb3033[_0x7721('0x4a')],_0x1ad315['uniqueid'],md5(_0x1ad315['uniqueid']));}else{_0x1ad315[_0x7721('0x4e')]='';}headers[_0x7721('0x50')]=getAuth(_0xdb3033);return getUser(_0xdb3033,_0x9f7b1d[_0x7721('0x51')])[_0x7721('0x11')](function(_0x589e95){_0x2d5f35=_0x589e95;logger[_0x7721('0x15')](_0x7721('0x52'),_0x2d5f35['id']);return getEndUser(_0xdb3033,_0x1ad315['calleridname'],_0x1ad315[_0x7721('0x53')]);})['then'](function(_0x2682b1){_0x135dbc=_0x2682b1;logger['info'](_0x7721('0x54'),_0x135dbc['id']);return getTicket(_0xdb3033,_0x2d5f35,_0x135dbc,_0x481fa8,_0x1ad315);})[_0x7721('0x11')](function(_0xf17c40){if(_0xf17c40){logger['info'](_0x7721('0x55'));logger[_0x7721('0x15')]('The\x20Ticket\x20ID\x20is:',_0xf17c40['id']);switch(_0xdb3033[_0x7721('0x37')]){case _0x7721('0x56'):logger[_0x7721('0x15')]('[QUEUE]',_0x7721('0x57'));emit(util['format'](_0x7721('0x58'),_0x9f7b1d[_0x7721('0x3a')]),_0x7721('0x59'),{'recordId':_0xf17c40['id']});break;case _0x7721('0x5a'):logger[_0x7721('0x15')](_0x7721('0x4c'),_0x7721('0x5b'));emit(util[_0x7721('0xe')](_0x7721('0x58'),_0x9f7b1d[_0x7721('0x3a')]),_0x7721('0x5c'),{'uri':util[_0x7721('0xe')](_0x7721('0x5d'),_0xf17c40['id'])});break;default:logger[_0x7721('0x5e')](_0x7721('0x4c'),'Desk\x20account\x20type\x20not\x20recognized');}}})[_0x7721('0x5f')](function(_0x2f6f30){console[_0x7721('0x5e')](_0x2f6f30);logger[_0x7721('0x5e')](_0x7721('0x4c'),JSON[_0x7721('0x1a')](_0x2f6f30));});};exports[_0x7721('0x60')]=function(_0x57484c,_0x234bee,_0x17036e,_0x134908,_0x3b7382,_0x1f1e84,_0x9c0d4){var _0x7fbd6c,_0x33287d;_0x1f1e84[_0x7721('0x10')]=intUtil[_0x7721('0x49')](_0x1f1e84[_0x7721('0x10')]);_0x1f1e84['serverUrl']=intUtil[_0x7721('0x49')](_0x1f1e84[_0x7721('0x4a')]);if(_0x9c0d4&&_0x9c0d4[_0x7721('0x61')]&&_0x9c0d4[_0x7721('0x61')]!==_0x7721('0x62')){logger[_0x7721('0x15')](_0x7721('0x63'),_0x7721('0x4d'));_0x234bee[_0x7721('0x4e')]=util[_0x7721('0xe')](_0x7721('0x4f'),_0x1f1e84[_0x7721('0x4a')],_0x234bee[_0x7721('0x64')],md5(_0x234bee[_0x7721('0x64')]));}headers[_0x7721('0x50')]=getAuth(_0x1f1e84);return getUser(_0x1f1e84,_0x134908['email'])['then'](function(_0x4e112e){_0x7fbd6c=_0x4e112e;logger[_0x7721('0x15')]('The\x20User\x20ID\x20is:',_0x7fbd6c['id']);return getEndUser(_0x1f1e84,_0x234bee['destcalleridname'],_0x234bee['destcalleridnum']);})['then'](function(_0x47925a){_0x33287d=_0x47925a;logger[_0x7721('0x15')](_0x7721('0x54'),_0x33287d['id']);return getTicket(_0x1f1e84,_0x7fbd6c,_0x33287d,_0x17036e,_0x234bee);})['then'](function(_0x5181d7){if(_0x5181d7){logger['info']('Ticket\x20created!');logger['info'](_0x7721('0x65'),_0x5181d7['id']);switch(_0x1f1e84['type']){case'integrationTab':logger['info'](_0x7721('0x4c'),_0x7721('0x57'));emit(util[_0x7721('0xe')]('user:%s',_0x134908[_0x7721('0x3a')]),_0x7721('0x59'),{'recordId':_0x5181d7['id']});break;case _0x7721('0x5a'):logger[_0x7721('0x15')](_0x7721('0x4c'),_0x7721('0x5b'));emit(util[_0x7721('0xe')](_0x7721('0x58'),_0x134908[_0x7721('0x3a')]),_0x7721('0x5c'),{'uri':util[_0x7721('0xe')](_0x7721('0x66'),_0x1f1e84[_0x7721('0x10')],_0x5181d7['id'])});break;default:logger[_0x7721('0x5e')](_0x7721('0x63'),'Desk\x20account\x20type\x20not\x20recognized');}}})[_0x7721('0x5f')](function(_0x2c93b0){logger[_0x7721('0x5e')](_0x7721('0x63'),JSON['stringify'](_0x2c93b0));});};exports[_0x7721('0x67')]=function(_0x104f05,_0x4c8284,_0x3e7df3,_0x5d37ad,_0x1f508d,_0x4bfb48){var _0x36a3a6,_0x3f9eaa;_0x4bfb48[_0x7721('0x10')]=intUtil[_0x7721('0x49')](_0x4bfb48[_0x7721('0x10')]);_0x4bfb48[_0x7721('0x4a')]=intUtil[_0x7721('0x49')](_0x4bfb48['serverUrl']);if(_0x1f508d&&_0x1f508d[_0x7721('0x4b')]){logger[_0x7721('0x15')]('['+_0x4c8284[_0x7721('0x68')][_0x7721('0x69')]()+']',_0x7721('0x4d'));_0x4c8284[_0x7721('0x4e')]=util[_0x7721('0xe')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x4bfb48[_0x7721('0x4a')],_0x4c8284[_0x7721('0x64')],md5(_0x4c8284['uniqueid']));}else{_0x4c8284[_0x7721('0x4e')]='';}headers['Authorization']=getAuth(_0x4bfb48);return getUser(_0x4bfb48)[_0x7721('0x11')](function(_0x382800){_0x36a3a6=_0x382800;logger[_0x7721('0x15')](_0x7721('0x52'),_0x36a3a6['id']);return getEndUser(_0x4bfb48,_0x4c8284[_0x7721('0x6a')],_0x4c8284[_0x7721('0x53')]);})[_0x7721('0x11')](function(_0x5dca04){_0x3f9eaa=_0x5dca04;logger[_0x7721('0x15')](_0x7721('0x54'),_0x3f9eaa['id']);return getTicket(_0x4bfb48,_0x36a3a6,_0x3f9eaa,_0x3e7df3,_0x4c8284);})[_0x7721('0x11')](function(_0x5f08cc){if(_0x5f08cc){logger['info']('Ticket\x20created!');logger['info']('The\x20Ticket\x20ID\x20is:',_0x5f08cc['id']);}})[_0x7721('0x5f')](function(_0x2645dd){logger['error']('['+_0x4c8284[_0x7721('0x68')][_0x7721('0x69')]()+']',JSON[_0x7721('0x1a')](_0x2645dd));});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7f40=['none','Recording\x20is\x20enabled!',']\x20The\x20User\x20ID\x20is:',']\x20The\x20User\x20email\x20is:',']\x20The\x20Enduser\x20phone\x20is:',']\x20The\x20%s\x20ID\x20is:\x20%s','Displaying\x20call\x20in\x20a\x20new\x20tab...','name','inspect','lodash','bluebird','request-promise','util','./util','md5','ioredis','../../../../config/logger','dynamics365','../../../../config/environment','defaults','redis','localhost','POST','clientId','username','password','clientSecret','then','catch','toUpperCase',']\x20Wrong\x20credentials!','message','GET','Bearer\x20','4.0','isNil','validateEmail','email','userEmail','internalemailaddress','isdisabled','info',']\x20Agent\x20found\x20','systemuserid','userId',']\x20Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!','length','toLowerCase','outbound','contacts','headers','odata-entityid','substring','lastIndexOf','contacts?$select=telephone1&$filter=telephone1\x20eq\x20\x27','replace','%2b','value','telephone1','enduserId','contactid',']\x20Enduser\x20created!',']\x20Enduser\x20Created!','type','nameField','customField','indexOf','content','ticketType','incidents','assign','getString','Subjects','Descriptions','/contacts(','/systemusers(','Fields','phonecalls','calleridnum','callDirection','queue','ticketId','format','%s/main.aspx?pagetype=entityrecord&etn=%s&id=%s','user:%s','emit','trigger:browser:url','remoteUri','stripTrailingSlash','serverUrl','unmanaged','%s/api/data/v9.0/','https://login.microsoftonline.com/%s/oauth2/token','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','[QUEUE]','recordingURL','recordingFormat'];(function(_0xf034a7,_0x339b0d){var _0x5b4ecc=function(_0x5a8650){while(--_0x5a8650){_0xf034a7['push'](_0xf034a7['shift']());}};_0x5b4ecc(++_0x339b0d);}(_0x7f40,0x6a));var _0x07f4=function(_0x3940a7,_0xb1d801){_0x3940a7=_0x3940a7-0x0;var _0x189290=_0x7f40[_0x3940a7];return _0x189290;};'use strict';var _=require(_0x07f4('0x0'));var BPromise=require(_0x07f4('0x1'));var rp=require(_0x07f4('0x2'));var util=require(_0x07f4('0x3'));var intUtil=require(_0x07f4('0x4'));var md5=require(_0x07f4('0x5'));var Redis=require(_0x07f4('0x6'));var logger=require(_0x07f4('0x7'))(_0x07f4('0x8'));var config=require(_0x07f4('0x9'));config['redis']=_[_0x07f4('0xa')](config[_0x07f4('0xb')],{'host':_0x07f4('0xc'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config['redis']));function getAuthToken(_0xfab44c,_0x784664,_0xaca1c1){var _0x3b24f6={'method':_0x07f4('0xd'),'uri':_0x784664,'form':{'client_id':_0xfab44c[_0x07f4('0xe')],'resource':_0xfab44c['remoteUri'],'username':_0xfab44c[_0x07f4('0xf')],'password':_0xfab44c[_0x07f4('0x10')],'grant_type':_0x07f4('0x10'),'client_secret':_0xfab44c[_0x07f4('0x11')]},'json':!![]};return rp(_0x3b24f6)[_0x07f4('0x12')](function(_0xb921e9){return _0xb921e9['access_token'];})[_0x07f4('0x13')](function(_0x108eb6){logger['error']('['+[_0xaca1c1[_0x07f4('0x14')]()]+_0x07f4('0x15'));return _0x108eb6[_0x07f4('0x16')];});}function getUser(_0x303c4e,_0x4b675b,_0x429e7c,_0x55a91c,_0x15bcd4,_0x1c0a25){return new BPromise(function(_0x19508f,_0x102253){return getAuthToken(_0x4b675b,_0x55a91c,_0x1c0a25)[_0x07f4('0x12')](function(_0x141848){var _0x5e5faf={'method':_0x07f4('0x17'),'uri':_0x15bcd4+'systemusers?$select=internalemailaddress,isdisabled,systemuserid','headers':{'Authorization':_0x07f4('0x18')+_0x141848,'OData-Version':_0x07f4('0x19')},'json':!![]};return rp(_0x5e5faf);})['then'](function(_0x4f9398){var _0x553251=_0x4f9398['value'];var _0x4bc988=![];var _0x13c4d4=null;if(!_[_0x07f4('0x1a')](_0x429e7c)){if(intUtil[_0x07f4('0x1b')](_0x429e7c[_0x07f4('0x1c')])){_0x303c4e[_0x07f4('0x1d')]=_0x429e7c[_0x07f4('0x1c')];for(_0x13c4d4=0x0;_0x13c4d4<_0x553251['length'];_0x13c4d4++){if(_0x553251[_0x13c4d4][_0x07f4('0x1e')]===_0x429e7c[_0x07f4('0x1c')]&&!_0x553251[_0x13c4d4][_0x07f4('0x1f')]){_0x4bc988=!![];logger[_0x07f4('0x20')]('['+[_0x1c0a25[_0x07f4('0x14')]()]+_0x07f4('0x21')+_0x553251[_0x13c4d4][_0x07f4('0x22')]+'!');_0x303c4e[_0x07f4('0x23')]=_0x553251[_0x13c4d4][_0x07f4('0x22')];}}}}if(!_0x4bc988){logger[_0x07f4('0x20')]('['+[_0x1c0a25[_0x07f4('0x14')]()]+_0x07f4('0x24'));_0x303c4e[_0x07f4('0x1d')]=_0x4b675b[_0x07f4('0xf')];for(_0x13c4d4=0x0;_0x13c4d4<_0x553251[_0x07f4('0x25')];_0x13c4d4++){if(_0x553251[_0x13c4d4][_0x07f4('0x1e')]===_0x4b675b[_0x07f4('0xf')]){_0x303c4e[_0x07f4('0x23')]=_0x553251[_0x13c4d4][_0x07f4('0x22')];}}}_0x19508f(_0x303c4e);})[_0x07f4('0x13')](function(_0x56f537){_0x102253(_0x56f537['message']);});});}function createEndUser(_0x491b96,_0x4fb892,_0x225ea0,_0xbdc65c,_0x54532a,_0x1cdaae){return new BPromise(function(_0x4e6bf6,_0x8accf5){return getAuthToken(_0x4fb892,_0x225ea0,_0x1cdaae)[_0x07f4('0x12')](function(_0x128c8c){var _0xb83622=_0x1cdaae[_0x07f4('0x26')]()===_0x07f4('0x27')?_0x54532a['destcalleridnum']:_0x54532a['calleridnum'];var _0xd7fe65={'method':_0x07f4('0xd'),'uri':_0xbdc65c+_0x07f4('0x28'),'body':{'telephone1':_0xb83622,'fullname':_0xb83622,'firstname':_0xb83622,'lastname':'_','mobilephone':null,'address1_telephone1':null,'ownerid@odata.bind':'/systemusers('+_0x491b96[_0x07f4('0x23')]+')'},'headers':{'Authorization':_0x07f4('0x18')+_0x128c8c,'OData-Version':_0x07f4('0x19')},'json':!![],'resolveWithFullResponse':!![]};return rp(_0xd7fe65);})['then'](function(_0x89c4b8){var _0x523344=_0x89c4b8[_0x07f4('0x29')][_0x07f4('0x2a')];var _0x527b5a=_0x523344[_0x07f4('0x2b')](_0x523344[_0x07f4('0x2c')]('(')+0x1,_0x523344[_0x07f4('0x2c')](')'));_0x491b96['enduserId']=_0x527b5a;_0x4e6bf6(_0x491b96);})['catch'](function(_0x9f2fa5){_0x8accf5(_0x9f2fa5['message']);});});}function getEndUser(_0x336fbd,_0x31afe4,_0x13549e,_0x43ca2f,_0x4dbcf1,_0x18464f){return new BPromise(function(_0x1779db,_0x44a4de){var _0xa349d4=_0x18464f['toLowerCase']()===_0x07f4('0x27')?_0x4dbcf1['destcalleridnum']:_0x4dbcf1['calleridnum'];return getAuthToken(_0x31afe4,_0x13549e,_0x18464f)[_0x07f4('0x12')](function(_0x1d647e){var _0x1a0991={'method':_0x07f4('0x17'),'uri':_0x43ca2f+_0x07f4('0x2d')+_0xa349d4[_0x07f4('0x2e')]('+',_0x07f4('0x2f'))+'\x27','headers':{'Authorization':'Bearer\x20'+_0x1d647e,'If-None-Match':null,'OData-Version':_0x07f4('0x19')},'json':!![]};return rp(_0x1a0991);})['then'](function(_0x24402c){var _0x4e0650=null;if(_0x24402c){var _0x236d8c=_0x24402c[_0x07f4('0x30')];var _0x183edd=![];for(_0x4e0650=0x0;_0x4e0650<_0x236d8c['length'];_0x4e0650++){if(_0x236d8c[_0x4e0650][_0x07f4('0x31')]===_0xa349d4){_0x183edd=!![];_0x336fbd[_0x07f4('0x32')]=_0x236d8c[_0x4e0650][_0x07f4('0x33')];}}if(_0x183edd){_0x1779db(_0x336fbd);}else{return createEndUser(_0x336fbd,_0x31afe4,_0x13549e,_0x43ca2f,_0x4dbcf1,_0x18464f)[_0x07f4('0x12')](function(_0x1f4281){logger[_0x07f4('0x20')]('['+[_0x18464f[_0x07f4('0x14')]()]+_0x07f4('0x34'),_0x1f4281['enduserId']);_0x1779db(_0x1f4281);});}}else{return createEndUser(_0x336fbd,_0x31afe4,_0x13549e,_0x43ca2f,_0x4dbcf1,_0x18464f)[_0x07f4('0x12')](function(_0x29765c){logger[_0x07f4('0x20')]('['+[_0x18464f[_0x07f4('0x14')]()]+_0x07f4('0x35'),_0x29765c[_0x07f4('0x32')]);_0x1779db(_0x29765c);});}});});}function getCustomFields(_0x29d06f,_0x456b02,_0xf17126){var _0x3797a4={};if(_0x29d06f[_0x07f4('0x25')]>0x0){_['forEach'](_0x29d06f,function(_0x2fcf04){if(_['includes'](['string','picklist'],_0x2fcf04[_0x07f4('0x36')])&&_0x2fcf04[_0x07f4('0x37')]&&!_0x2fcf04[_0x07f4('0x38')]){var _0x2cbe3c=_0x2fcf04['idField'][_0x07f4('0x26')]();var _0x40010b=_0x2cbe3c[_0x07f4('0x2b')](0x0,_0x2cbe3c[_0x07f4('0x39')]('_'));var _0x21bae9=_0x2cbe3c['substring'](_0x2cbe3c[_0x07f4('0x39')]('_')+0x1);if(_0x40010b===_0xf17126){_0x3797a4[_0x21bae9]=_0x2fcf04[_0x07f4('0x3a')];}}});}return _0x3797a4;}function getTicket(_0x4ca950,_0x50fb08,_0x5d9976,_0xb2edcc,_0xde3274,_0x3aa87c,_0x49fda4){return new BPromise(function(_0xf5139b,_0x4526ec){var _0x1d02eb;return getAuthToken(_0x50fb08,_0x5d9976,_0x49fda4)[_0x07f4('0x12')](function(_0x290993){if(_0x3aa87c[_0x07f4('0x3b')]==='incident'){_0x1d02eb={'method':'POST','uri':_0xb2edcc+_0x07f4('0x3c'),'body':Object[_0x07f4('0x3d')]({},{'title':intUtil[_0x07f4('0x3e')](_0x3aa87c[_0x07f4('0x3f')],_0xde3274,'\x20'),'description':intUtil['getString'](_0x3aa87c[_0x07f4('0x40')],_0xde3274,'\x0a'),'customerid_contact@odata.bind':_0x07f4('0x41')+_0x4ca950[_0x07f4('0x32')]+')','ownerid@odata.bind':_0x07f4('0x42')+_0x4ca950[_0x07f4('0x23')]+')','caseorigincode':'1'},getCustomFields(_0x3aa87c[_0x07f4('0x43')],_0xde3274,_0x3aa87c[_0x07f4('0x3b')])),'headers':{'Authorization':_0x07f4('0x18')+_0x290993,'OData-Version':_0x07f4('0x19')},'json':!![],'resolveWithFullResponse':!![]};}if(_0x3aa87c[_0x07f4('0x3b')]==='phonecall'){_0x1d02eb={'method':'POST','uri':_0xb2edcc+_0x07f4('0x44'),'body':Object[_0x07f4('0x3d')]({},{'subject':intUtil[_0x07f4('0x3e')](_0x3aa87c[_0x07f4('0x3f')],_0xde3274,'\x20'),'phonenumber':String(_0xde3274[_0x07f4('0x45')]),'description':intUtil['getString'](_0x3aa87c[_0x07f4('0x40')],_0xde3274,'\x0a'),'regardingobjectid_contact@odata.bind':_0x07f4('0x41')+_0x4ca950[_0x07f4('0x32')]+')','ownerid@odata.bind':'/systemusers('+_0x4ca950['userId']+')','directioncode':_0x4ca950[_0x07f4('0x46')]===_0x07f4('0x47')?![]:!![],'phonecall_activity_parties':[{'partyid_systemuser@odata.bind':_0x07f4('0x42')+_0x4ca950[_0x07f4('0x23')]+')','participationtypemask':_0x4ca950['callDirection']===_0x07f4('0x47')?0x2:0x1},{'partyid_contact@odata.bind':_0x07f4('0x41')+_0x4ca950[_0x07f4('0x32')]+')','participationtypemask':_0x4ca950['callDirection']==='queue'?0x1:0x2}]},getCustomFields(_0x3aa87c[_0x07f4('0x43')],_0xde3274,_0x3aa87c[_0x07f4('0x3b')])),'headers':{'Authorization':'Bearer\x20'+_0x290993,'OData-Version':'4.0'},'json':!![],'resolveWithFullResponse':!![]};}return rp(_0x1d02eb);})[_0x07f4('0x12')](function(_0xf36925){var _0x1f5c60=_0xf36925[_0x07f4('0x29')][_0x07f4('0x2a')];var _0x5f32bd=_0x1f5c60[_0x07f4('0x2b')](_0x1f5c60['lastIndexOf']('(')+0x1,_0x1f5c60[_0x07f4('0x2c')](')'));_0x4ca950[_0x07f4('0x48')]=_0x5f32bd;_0xf5139b(_0x4ca950);})[_0x07f4('0x13')](function(_0x1b5718){_0x4526ec(_0x1b5718['message']);});});}function emit(_0x4434a9,_0x5b52e9,_0x10db97,_0x210eff){var _0x1a0c91={'uri':util[_0x07f4('0x49')](_0x07f4('0x4a'),_0x4434a9,_0x10db97,_0x210eff)};io['to'](util[_0x07f4('0x49')](_0x07f4('0x4b'),_0x5b52e9))[_0x07f4('0x4c')](_0x07f4('0x4d'),_0x1a0c91);}exports['cs']=function(_0x1e1841,_0x332d58,_0x5a69d7,_0x43cefb,_0x592703,_0x205d31,_0x234736,_0x34e97e){var _0x5f040e={};_0x205d31[_0x07f4('0x4e')]=intUtil[_0x07f4('0x4f')](_0x205d31['remoteUri']);_0x205d31[_0x07f4('0x50')]=intUtil[_0x07f4('0x4f')](_0x205d31[_0x07f4('0x50')]);_0x5f040e['callDirection']=_0x34e97e==='queue'||_0x34e97e===_0x07f4('0x51')?_0x07f4('0x47'):_0x07f4('0x27');var _0x4fe0a3=util[_0x07f4('0x49')](_0x07f4('0x52'),_0x205d31['remoteUri']);var _0x55c440=util['format'](_0x07f4('0x53'),_0x205d31['tenantId']);var _0x46b43c=util[_0x07f4('0x49')](_0x07f4('0x54'),_0x205d31[_0x07f4('0x50')],_0x332d58['uniqueid'],md5(_0x332d58['uniqueid']));if(_0x592703&&_0x592703['monitor_format']){logger[_0x07f4('0x20')](_0x07f4('0x55'),'Recording\x20is\x20enabled!');_0x332d58[_0x07f4('0x56')]=_0x46b43c;}else if(_0x234736&&_0x234736['recordingFormat']&&_0x234736[_0x07f4('0x57')]!==_0x07f4('0x58')){logger[_0x07f4('0x20')]('[OUTBOUND]',_0x07f4('0x59'));_0x332d58[_0x07f4('0x56')]=_0x46b43c;}else{_0x332d58[_0x07f4('0x56')]='';}return getUser(_0x5f040e,_0x205d31,_0x43cefb,_0x55c440,_0x4fe0a3,_0x34e97e)[_0x07f4('0x12')](function(_0x5cbff2){logger['info']('['+_0x34e97e[_0x07f4('0x14')]()+_0x07f4('0x5a'),_0x5cbff2['userId']);logger[_0x07f4('0x20')]('['+_0x34e97e[_0x07f4('0x14')]()+_0x07f4('0x5b'),_0x5cbff2[_0x07f4('0x1d')]);return getEndUser(_0x5cbff2,_0x205d31,_0x55c440,_0x4fe0a3,_0x332d58,_0x34e97e);})[_0x07f4('0x12')](function(_0x365646){logger[_0x07f4('0x20')]('['+_0x34e97e[_0x07f4('0x14')]()+']\x20The\x20Enduser\x20ID\x20is:',_0x365646[_0x07f4('0x32')]);logger[_0x07f4('0x20')]('['+_0x34e97e[_0x07f4('0x14')]()+_0x07f4('0x5c'),_0x332d58['calleridnum']);return getTicket(_0x365646,_0x205d31,_0x55c440,_0x4fe0a3,_0x332d58,_0x5a69d7,_0x34e97e);})[_0x07f4('0x12')](function(_0x2dcd5f){logger[_0x07f4('0x20')](util[_0x07f4('0x49')]('['+_0x34e97e[_0x07f4('0x14')]()+_0x07f4('0x5d'),_0x5a69d7[_0x07f4('0x3b')],_0x2dcd5f[_0x07f4('0x48')]));logger['info'](util[_0x07f4('0x49')]('['+_0x34e97e[_0x07f4('0x14')]()+']\x20Call\x20direction:\x20%s',_0x34e97e));if(_0x34e97e!==_0x07f4('0x51')){logger['info']('['+_0x34e97e[_0x07f4('0x14')]()+']',_0x07f4('0x5e'));emit(_0x205d31['remoteUri'],_0x43cefb[_0x07f4('0x5f')],_0x5a69d7['ticketType'],_0x2dcd5f[_0x07f4('0x48')]);}})[_0x07f4('0x13')](function(_0x5e219b){logger['error']('['+_0x34e97e['toUpperCase']()+']\x20Error\x20running\x20Dynamics365\x20integration',util[_0x07f4('0x60')](_0x5e219b,{'showHidden':!![],'depth':null}));});};
\ No newline at end of file
+var _0x91c8=['error','toUpperCase',']\x20Wrong\x20credentials!','GET','systemusers?$select=internalemailaddress,isdisabled,systemuserid','Bearer\x20','4.0','value','validateEmail','email','userEmail','length','internalemailaddress','isdisabled',']\x20Agent\x20found\x20','systemuserid','userId','info','username','message','toLowerCase','outbound','destcalleridnum','calleridnum','contacts','headers','odata-entityid','substring','enduserId','contacts?$select=telephone1&$filter=telephone1\x20eq\x20\x27','%2b','telephone1','contactid',']\x20Enduser\x20created!','forEach','includes','string','picklist','type','nameField','customField','idField','indexOf','content','ticketType','incident','incidents','assign','getString','Subjects','Descriptions','/contacts(','/systemusers(','Fields','phonecall','phonecalls','callDirection','queue','lastIndexOf','ticketId','format','%s/main.aspx?pagetype=entityrecord&etn=%s&id=%s','user:%s','emit','trigger:browser:url','stripTrailingSlash','serverUrl','unmanaged','%s/api/data/v9.0/','tenantId','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','monitor_format','[QUEUE]','Recording\x20is\x20enabled!','recordingFormat','none','[OUTBOUND]','recordingURL',']\x20The\x20User\x20email\x20is:',']\x20The\x20Enduser\x20ID\x20is:',']\x20The\x20Enduser\x20phone\x20is:',']\x20Call\x20direction:\x20%s','Displaying\x20call\x20in\x20a\x20new\x20tab...','name',']\x20Error\x20running\x20Dynamics365\x20integration','inspect','lodash','bluebird','./util','md5','../../../../config/logger','dynamics365','../../../../config/environment','redis','defaults','localhost','socket.io-emitter','POST','remoteUri','password','clientSecret','then','access_token','catch'];(function(_0x166983,_0x3da258){var _0x5b6366=function(_0x2875b3){while(--_0x2875b3){_0x166983['push'](_0x166983['shift']());}};_0x5b6366(++_0x3da258);}(_0x91c8,0x129));var _0x891c=function(_0x4f840f,_0x401677){_0x4f840f=_0x4f840f-0x0;var _0xe6bba=_0x91c8[_0x4f840f];return _0xe6bba;};'use strict';var _=require(_0x891c('0x0'));var BPromise=require(_0x891c('0x1'));var rp=require('request-promise');var util=require('util');var intUtil=require(_0x891c('0x2'));var md5=require(_0x891c('0x3'));var Redis=require('ioredis');var logger=require(_0x891c('0x4'))(_0x891c('0x5'));var config=require(_0x891c('0x6'));config[_0x891c('0x7')]=_[_0x891c('0x8')](config[_0x891c('0x7')],{'host':_0x891c('0x9'),'port':0x18eb});var io=require(_0x891c('0xa'))(new Redis(config[_0x891c('0x7')]));function getAuthToken(_0x552328,_0x267fe0,_0xe4772b){var _0x130a16={'method':_0x891c('0xb'),'uri':_0x267fe0,'form':{'client_id':_0x552328['clientId'],'resource':_0x552328[_0x891c('0xc')],'username':_0x552328['username'],'password':_0x552328['password'],'grant_type':_0x891c('0xd'),'client_secret':_0x552328[_0x891c('0xe')]},'json':!![]};return rp(_0x130a16)[_0x891c('0xf')](function(_0x5ec59a){return _0x5ec59a[_0x891c('0x10')];})[_0x891c('0x11')](function(_0x1919b5){logger[_0x891c('0x12')]('['+[_0xe4772b[_0x891c('0x13')]()]+_0x891c('0x14'));return _0x1919b5['message'];});}function getUser(_0x5c1133,_0x3c6bd2,_0x2ee2bd,_0x402b6b,_0xc52b07,_0x47aeff){return new BPromise(function(_0xa7cf48,_0x172de7){return getAuthToken(_0x3c6bd2,_0x402b6b,_0x47aeff)['then'](function(_0x1814a4){var _0x2caf56={'method':_0x891c('0x15'),'uri':_0xc52b07+_0x891c('0x16'),'headers':{'Authorization':_0x891c('0x17')+_0x1814a4,'OData-Version':_0x891c('0x18')},'json':!![]};return rp(_0x2caf56);})['then'](function(_0x189e6b){var _0x4646d1=_0x189e6b[_0x891c('0x19')];var _0x2e477f=![];var _0x58e018=null;if(!_['isNil'](_0x2ee2bd)){if(intUtil[_0x891c('0x1a')](_0x2ee2bd[_0x891c('0x1b')])){_0x5c1133[_0x891c('0x1c')]=_0x2ee2bd[_0x891c('0x1b')];for(_0x58e018=0x0;_0x58e018<_0x4646d1[_0x891c('0x1d')];_0x58e018++){if(_0x4646d1[_0x58e018][_0x891c('0x1e')]===_0x2ee2bd[_0x891c('0x1b')]&&!_0x4646d1[_0x58e018][_0x891c('0x1f')]){_0x2e477f=!![];logger['info']('['+[_0x47aeff[_0x891c('0x13')]()]+_0x891c('0x20')+_0x4646d1[_0x58e018][_0x891c('0x21')]+'!');_0x5c1133[_0x891c('0x22')]=_0x4646d1[_0x58e018][_0x891c('0x21')];}}}}if(!_0x2e477f){logger[_0x891c('0x23')]('['+[_0x47aeff['toUpperCase']()]+']\x20Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!');_0x5c1133[_0x891c('0x1c')]=_0x3c6bd2[_0x891c('0x24')];for(_0x58e018=0x0;_0x58e018<_0x4646d1[_0x891c('0x1d')];_0x58e018++){if(_0x4646d1[_0x58e018][_0x891c('0x1e')]===_0x3c6bd2[_0x891c('0x24')]){_0x5c1133[_0x891c('0x22')]=_0x4646d1[_0x58e018][_0x891c('0x21')];}}}_0xa7cf48(_0x5c1133);})[_0x891c('0x11')](function(_0x371e46){_0x172de7(_0x371e46[_0x891c('0x25')]);});});}function createEndUser(_0x3dcc1d,_0x5d90c5,_0x2b74a7,_0x423e1b,_0x29e857,_0x4e31f0){return new BPromise(function(_0x39f0e0,_0x32aa06){return getAuthToken(_0x5d90c5,_0x2b74a7,_0x4e31f0)[_0x891c('0xf')](function(_0xe581a6){var _0x292041=_0x4e31f0[_0x891c('0x26')]()===_0x891c('0x27')?_0x29e857[_0x891c('0x28')]:_0x29e857[_0x891c('0x29')];var _0x2ea702={'method':_0x891c('0xb'),'uri':_0x423e1b+_0x891c('0x2a'),'body':{'telephone1':_0x292041,'fullname':_0x292041,'firstname':_0x292041,'lastname':'_','mobilephone':null,'address1_telephone1':null,'ownerid@odata.bind':'/systemusers('+_0x3dcc1d[_0x891c('0x22')]+')'},'headers':{'Authorization':_0x891c('0x17')+_0xe581a6,'OData-Version':_0x891c('0x18')},'json':!![],'resolveWithFullResponse':!![]};return rp(_0x2ea702);})[_0x891c('0xf')](function(_0x4f1afe){var _0x5b42cd=_0x4f1afe[_0x891c('0x2b')][_0x891c('0x2c')];var _0x464a07=_0x5b42cd[_0x891c('0x2d')](_0x5b42cd['lastIndexOf']('(')+0x1,_0x5b42cd['lastIndexOf'](')'));_0x3dcc1d[_0x891c('0x2e')]=_0x464a07;_0x39f0e0(_0x3dcc1d);})['catch'](function(_0x4d7f47){_0x32aa06(_0x4d7f47[_0x891c('0x25')]);});});}function getEndUser(_0x305e59,_0x5f2c2b,_0x1f37f0,_0x5d3939,_0x2e27fe,_0x20f0d){return new BPromise(function(_0x2b9145,_0x39d69e){var _0x524f7d=_0x20f0d[_0x891c('0x26')]()==='outbound'?_0x2e27fe['destcalleridnum']:_0x2e27fe['calleridnum'];return getAuthToken(_0x5f2c2b,_0x1f37f0,_0x20f0d)[_0x891c('0xf')](function(_0x23f330){var _0x32dea4={'method':_0x891c('0x15'),'uri':_0x5d3939+_0x891c('0x2f')+_0x524f7d['replace']('+',_0x891c('0x30'))+'\x27','headers':{'Authorization':'Bearer\x20'+_0x23f330,'If-None-Match':null,'OData-Version':_0x891c('0x18')},'json':!![]};return rp(_0x32dea4);})[_0x891c('0xf')](function(_0x551bf0){var _0x3b3535=null;if(_0x551bf0){var _0x2741df=_0x551bf0[_0x891c('0x19')];var _0x3459e9=![];for(_0x3b3535=0x0;_0x3b3535<_0x2741df['length'];_0x3b3535++){if(_0x2741df[_0x3b3535][_0x891c('0x31')]===_0x524f7d){_0x3459e9=!![];_0x305e59[_0x891c('0x2e')]=_0x2741df[_0x3b3535][_0x891c('0x32')];}}if(_0x3459e9){_0x2b9145(_0x305e59);}else{return createEndUser(_0x305e59,_0x5f2c2b,_0x1f37f0,_0x5d3939,_0x2e27fe,_0x20f0d)[_0x891c('0xf')](function(_0x132f21){logger[_0x891c('0x23')]('['+[_0x20f0d[_0x891c('0x13')]()]+_0x891c('0x33'),_0x132f21[_0x891c('0x2e')]);_0x2b9145(_0x132f21);});}}else{return createEndUser(_0x305e59,_0x5f2c2b,_0x1f37f0,_0x5d3939,_0x2e27fe,_0x20f0d)[_0x891c('0xf')](function(_0x127271){logger[_0x891c('0x23')]('['+[_0x20f0d[_0x891c('0x13')]()]+']\x20Enduser\x20Created!',_0x127271[_0x891c('0x2e')]);_0x2b9145(_0x127271);});}});});}function getCustomFields(_0x1c5eb6,_0x4297dd,_0x100b6e){var _0x18e945={};if(_0x1c5eb6[_0x891c('0x1d')]>0x0){_[_0x891c('0x34')](_0x1c5eb6,function(_0x492900){if(_[_0x891c('0x35')]([_0x891c('0x36'),_0x891c('0x37')],_0x492900[_0x891c('0x38')])&&_0x492900[_0x891c('0x39')]&&!_0x492900[_0x891c('0x3a')]){var _0x5018c0=_0x492900[_0x891c('0x3b')][_0x891c('0x26')]();var _0x3a3040=_0x5018c0[_0x891c('0x2d')](0x0,_0x5018c0[_0x891c('0x3c')]('_'));var _0x533494=_0x5018c0[_0x891c('0x2d')](_0x5018c0[_0x891c('0x3c')]('_')+0x1);if(_0x3a3040===_0x100b6e){_0x18e945[_0x533494]=_0x492900[_0x891c('0x3d')];}}});}return _0x18e945;}function getTicket(_0x4e5e33,_0x6d288c,_0x406242,_0x7f3da6,_0x1e0005,_0x38ae25,_0x56aaf8){return new BPromise(function(_0xd0c6bf,_0x53ad2d){var _0x9b6c4c;return getAuthToken(_0x6d288c,_0x406242,_0x56aaf8)['then'](function(_0x3d9cd9){if(_0x38ae25[_0x891c('0x3e')]===_0x891c('0x3f')){_0x9b6c4c={'method':_0x891c('0xb'),'uri':_0x7f3da6+_0x891c('0x40'),'body':Object[_0x891c('0x41')]({},{'title':intUtil[_0x891c('0x42')](_0x38ae25[_0x891c('0x43')],_0x1e0005,'\x20'),'description':intUtil[_0x891c('0x42')](_0x38ae25[_0x891c('0x44')],_0x1e0005,'\x0a'),'customerid_contact@odata.bind':_0x891c('0x45')+_0x4e5e33[_0x891c('0x2e')]+')','ownerid@odata.bind':_0x891c('0x46')+_0x4e5e33[_0x891c('0x22')]+')','caseorigincode':'1'},getCustomFields(_0x38ae25[_0x891c('0x47')],_0x1e0005,_0x38ae25[_0x891c('0x3e')])),'headers':{'Authorization':_0x891c('0x17')+_0x3d9cd9,'OData-Version':_0x891c('0x18')},'json':!![],'resolveWithFullResponse':!![]};}if(_0x38ae25[_0x891c('0x3e')]===_0x891c('0x48')){_0x9b6c4c={'method':'POST','uri':_0x7f3da6+_0x891c('0x49'),'body':Object[_0x891c('0x41')]({},{'subject':intUtil[_0x891c('0x42')](_0x38ae25[_0x891c('0x43')],_0x1e0005,'\x20'),'phonenumber':String(_0x1e0005[_0x891c('0x29')]),'description':intUtil[_0x891c('0x42')](_0x38ae25[_0x891c('0x44')],_0x1e0005,'\x0a'),'regardingobjectid_contact@odata.bind':_0x891c('0x45')+_0x4e5e33[_0x891c('0x2e')]+')','ownerid@odata.bind':_0x891c('0x46')+_0x4e5e33[_0x891c('0x22')]+')','directioncode':_0x4e5e33[_0x891c('0x4a')]===_0x891c('0x4b')?![]:!![],'phonecall_activity_parties':[{'partyid_systemuser@odata.bind':'/systemusers('+_0x4e5e33[_0x891c('0x22')]+')','participationtypemask':_0x4e5e33[_0x891c('0x4a')]===_0x891c('0x4b')?0x2:0x1},{'partyid_contact@odata.bind':_0x891c('0x45')+_0x4e5e33[_0x891c('0x2e')]+')','participationtypemask':_0x4e5e33[_0x891c('0x4a')]===_0x891c('0x4b')?0x1:0x2}]},getCustomFields(_0x38ae25[_0x891c('0x47')],_0x1e0005,_0x38ae25[_0x891c('0x3e')])),'headers':{'Authorization':'Bearer\x20'+_0x3d9cd9,'OData-Version':'4.0'},'json':!![],'resolveWithFullResponse':!![]};}return rp(_0x9b6c4c);})['then'](function(_0x3b8bb4){var _0x994127=_0x3b8bb4[_0x891c('0x2b')][_0x891c('0x2c')];var _0x19aa83=_0x994127[_0x891c('0x2d')](_0x994127[_0x891c('0x4c')]('(')+0x1,_0x994127[_0x891c('0x4c')](')'));_0x4e5e33[_0x891c('0x4d')]=_0x19aa83;_0xd0c6bf(_0x4e5e33);})[_0x891c('0x11')](function(_0x3bdc53){_0x53ad2d(_0x3bdc53[_0x891c('0x25')]);});});}function emit(_0x346fe0,_0x532b2f,_0x2c8b7b,_0x4e70c0){var _0x467bfe={'uri':util[_0x891c('0x4e')](_0x891c('0x4f'),_0x346fe0,_0x2c8b7b,_0x4e70c0)};io['to'](util['format'](_0x891c('0x50'),_0x532b2f))[_0x891c('0x51')](_0x891c('0x52'),_0x467bfe);}exports['cs']=function(_0x5c31d7,_0xc29f33,_0x342519,_0x213107,_0x9f12a5,_0x15676a,_0xfce38,_0xbdb3c0){var _0x5c1d69={};_0x15676a['remoteUri']=intUtil[_0x891c('0x53')](_0x15676a[_0x891c('0xc')]);_0x15676a[_0x891c('0x54')]=intUtil[_0x891c('0x53')](_0x15676a[_0x891c('0x54')]);_0x5c1d69[_0x891c('0x4a')]=_0xbdb3c0===_0x891c('0x4b')||_0xbdb3c0===_0x891c('0x55')?_0x891c('0x4b'):_0x891c('0x27');var _0x35d859=util[_0x891c('0x4e')](_0x891c('0x56'),_0x15676a[_0x891c('0xc')]);var _0x1bee3a=util[_0x891c('0x4e')]('https://login.microsoftonline.com/%s/oauth2/token',_0x15676a[_0x891c('0x57')]);var _0x4d44e3=util[_0x891c('0x4e')](_0x891c('0x58'),_0x15676a[_0x891c('0x54')],_0xc29f33[_0x891c('0x59')],md5(_0xc29f33[_0x891c('0x59')]));if(_0x9f12a5&&_0x9f12a5[_0x891c('0x5a')]){logger['info'](_0x891c('0x5b'),_0x891c('0x5c'));_0xc29f33['recordingURL']=_0x4d44e3;}else if(_0xfce38&&_0xfce38[_0x891c('0x5d')]&&_0xfce38['recordingFormat']!==_0x891c('0x5e')){logger[_0x891c('0x23')](_0x891c('0x5f'),'Recording\x20is\x20enabled!');_0xc29f33[_0x891c('0x60')]=_0x4d44e3;}else{_0xc29f33[_0x891c('0x60')]='';}return getUser(_0x5c1d69,_0x15676a,_0x213107,_0x1bee3a,_0x35d859,_0xbdb3c0)['then'](function(_0x34d746){logger[_0x891c('0x23')]('['+_0xbdb3c0[_0x891c('0x13')]()+']\x20The\x20User\x20ID\x20is:',_0x34d746[_0x891c('0x22')]);logger[_0x891c('0x23')]('['+_0xbdb3c0[_0x891c('0x13')]()+_0x891c('0x61'),_0x34d746[_0x891c('0x1c')]);return getEndUser(_0x34d746,_0x15676a,_0x1bee3a,_0x35d859,_0xc29f33,_0xbdb3c0);})[_0x891c('0xf')](function(_0x349fcf){logger[_0x891c('0x23')]('['+_0xbdb3c0[_0x891c('0x13')]()+_0x891c('0x62'),_0x349fcf[_0x891c('0x2e')]);logger['info']('['+_0xbdb3c0[_0x891c('0x13')]()+_0x891c('0x63'),_0xc29f33[_0x891c('0x29')]);return getTicket(_0x349fcf,_0x15676a,_0x1bee3a,_0x35d859,_0xc29f33,_0x342519,_0xbdb3c0);})[_0x891c('0xf')](function(_0x2c354f){logger['info'](util[_0x891c('0x4e')]('['+_0xbdb3c0[_0x891c('0x13')]()+']\x20The\x20%s\x20ID\x20is:\x20%s',_0x342519['ticketType'],_0x2c354f[_0x891c('0x4d')]));logger[_0x891c('0x23')](util[_0x891c('0x4e')]('['+_0xbdb3c0[_0x891c('0x13')]()+_0x891c('0x64'),_0xbdb3c0));if(_0xbdb3c0!==_0x891c('0x55')){logger[_0x891c('0x23')]('['+_0xbdb3c0[_0x891c('0x13')]()+']',_0x891c('0x65'));emit(_0x15676a[_0x891c('0xc')],_0x213107[_0x891c('0x66')],_0x342519[_0x891c('0x3e')],_0x2c354f[_0x891c('0x4d')]);}})[_0x891c('0x11')](function(_0x592c77){logger[_0x891c('0x12')]('['+_0xbdb3c0[_0x891c('0x13')]()+_0x891c('0x67'),util[_0x891c('0x68')](_0x592c77,{'showHidden':!![],'depth':null}));});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x17f4=['error','recordingFormat','Recording\x20is\x20enabled!','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','destcalleridname','destcalleridnum','[OUTBOUND]','catch','unmanaged','monitor_format','lastevent','toUpperCase','request-promise','md5','util','../../../../config/environment','../../../../config/logger','freshdesk','redis','localhost','socket.io-emitter','application/json','emit','info','Creating\x20new\x20ticket...','merge','format','calleridnum','Subjects','Descriptions','<br>','name','custom_fields','mapValues','keyBy','value','%s/api/v2/tickets','remoteUri','POST','then','validateEmail','%s/api/v2/agents','Agent\x20found!','contact','email','%s/api/v2/agents/me','Invalid\x20email\x20format,\x20using\x20the\x20admin\x20account!','Searching\x20enduser\x20with\x20phone','%s/api/v2/contacts','length','Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!','Enduser\x20created.','Basic\x20%s','toString','base64','debug','stringify','defaults','GET','map','includes','string','type','nameField','toLowerCase','content','picklist','idField','customField','push','variable','variableName','Variable','queue','stripTrailingSlash','serverUrl','[QUEUE]','recordingURL','uniqueid','The\x20User\x20ID\x20is:','calleridname','The\x20Enduser\x20ID\x20is:','Ticket\x20created!','The\x20Ticket\x20ID\x20is:','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...','user:%s','trigger:browser:url','%s/helpdesk/tickets/%d'];(function(_0x234ae1,_0x42bdd6){var _0x227ba0=function(_0x1f6531){while(--_0x1f6531){_0x234ae1['push'](_0x234ae1['shift']());}};_0x227ba0(++_0x42bdd6);}(_0x17f4,0x114));var _0x417f=function(_0x56d3a2,_0x5f191b){_0x56d3a2=_0x56d3a2-0x0;var _0x2c14d0=_0x17f4[_0x56d3a2];return _0x2c14d0;};'use strict';var _=require('lodash');var rp=require(_0x417f('0x0'));var md5=require(_0x417f('0x1'));var util=require(_0x417f('0x2'));var Redis=require('ioredis');var intUtil=require('./util');var config=require(_0x417f('0x3'));var logger=require(_0x417f('0x4'))(_0x417f('0x5'));config['redis']=_['defaults'](config[_0x417f('0x6')],{'host':_0x417f('0x7'),'port':0x18eb});var io=require(_0x417f('0x8'))(new Redis(config[_0x417f('0x6')]));var headers={'Content-Type':_0x417f('0x9'),'Accept':_0x417f('0x9')};function emit(_0x459f30,_0x5b3f60,_0x180568){io['to'](_0x459f30)[_0x417f('0xa')](_0x5b3f60,_0x180568);}function getTicket(_0x3cefc7,_0x20f6d2,_0x7ebeca,_0x45dda5,_0x24fec){logger[_0x417f('0xb')](_0x417f('0xc'));var _0x4fce9e=_[_0x417f('0xd')]({'responder_id':_0x20f6d2['id'],'requester_id':_0x7ebeca['id'],'name':util[_0x417f('0xe')]('Caller\x20-\x20%s',_0x24fec['calleridname']),'phone':_0x24fec[_0x417f('0xf')],'source':0x3,'priority':0x1,'status':0x2,'subject':intUtil['getString'](_0x45dda5[_0x417f('0x10')],_0x24fec,'\x20'),'description':intUtil['getString'](_0x45dda5[_0x417f('0x11')],_0x24fec,_0x417f('0x12')),'tags':getTags(_0x45dda5['Tags'],_0x417f('0x13'))},getCustomFields(_0x45dda5['Fields'],_0x24fec));_0x4fce9e[_0x417f('0x14')]=_[_0x417f('0x15')](_[_0x417f('0x16')](_0x4fce9e['custom_fields'],'id'),_0x417f('0x17'));return request({'uri':util['format'](_0x417f('0x18'),_0x3cefc7[_0x417f('0x19')]),'method':_0x417f('0x1a'),'body':_0x4fce9e})[_0x417f('0x1b')](function(_0xf6e47){logger['info']('Ticket\x20created!');return _0xf6e47;});}function getUser(_0xfb5a7f,_0x34de3e){if(intUtil[_0x417f('0x1c')](_0x34de3e)){return request({'uri':util[_0x417f('0xe')](_0x417f('0x1d'),_0xfb5a7f[_0x417f('0x19')]),'qs':{'email':_0x34de3e}})['then'](function(_0xadfa48){if(_0xadfa48['length']){logger['info'](_0x417f('0x1e'));return _['find'](_0xadfa48,function(_0x2c70df){return _0x2c70df[_0x417f('0x1f')][_0x417f('0x20')]===_0x34de3e;});}else{logger[_0x417f('0xb')]('Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!');return request({'uri':util[_0x417f('0xe')](_0x417f('0x21'),_0xfb5a7f[_0x417f('0x19')])})[_0x417f('0x1b')](function(_0x56d059){logger['info']('Admin\x20account\x20selected.');return _0x56d059;});}});}else{logger[_0x417f('0xb')](_0x417f('0x22'));return request({'uri':util[_0x417f('0xe')](_0x417f('0x21'),_0xfb5a7f['remoteUri'])})[_0x417f('0x1b')](function(_0x1adf2c){logger[_0x417f('0xb')]('Admin\x20account\x20selected.');return _0x1adf2c;});}}function getEndUser(_0x3c3f0b,_0x471133,_0x175390){logger[_0x417f('0xb')](_0x417f('0x23'),_0x175390);return request({'uri':util[_0x417f('0xe')](_0x417f('0x24'),_0x3c3f0b[_0x417f('0x19')]),'qs':{'phone':_0x175390}})[_0x417f('0x1b')](function(_0x54c422){if(_0x54c422[_0x417f('0x25')]){logger['info']('Enduser\x20found!');return _['find'](_0x54c422,{'phone':_0x175390});}else{logger[_0x417f('0xb')](_0x417f('0x26'));return request({'uri':util[_0x417f('0xe')](_0x417f('0x24'),_0x3c3f0b[_0x417f('0x19')]),'method':_0x417f('0x1a'),'body':{'name':_0x471133,'phone':_0x175390}})[_0x417f('0x1b')](function(_0x26c639){logger[_0x417f('0xb')](_0x417f('0x27'));return _0x26c639;});}});}function getAuth(_0x1b4d34){return util['format'](_0x417f('0x28'),new Buffer(_0x1b4d34['apiKey']+':X')[_0x417f('0x29')](_0x417f('0x2a')));}function request(_0x5156c5){logger[_0x417f('0x2b')]('[HTTP]',JSON[_0x417f('0x2c')](_0x5156c5));return rp(_[_0x417f('0x2d')](_0x5156c5,{'method':_0x417f('0x2e'),'headers':headers,'json':!![]}));}function getTags(_0x5b5a75,_0x24fe52){var _0x81b18c=[];if(_0x5b5a75&&_0x5b5a75[_0x417f('0x25')]>0x0){_0x81b18c=_[_0x417f('0x2f')](_0x5b5a75,_0x24fe52);}return _0x81b18c;}function getCustomFields(_0x2eb74e,_0x3931dc){var _0x897d8d=[];var _0x26c2f7={'custom_fields':[]};if(_0x2eb74e[_0x417f('0x25')]>0x0){_['forEach'](_0x2eb74e,function(_0x409ef9){if(_[_0x417f('0x30')]([_0x417f('0x31'),'picklist'],_0x409ef9[_0x417f('0x32')])&&_0x409ef9[_0x417f('0x33')]&&!_0x409ef9['customField']){_0x26c2f7[_0x409ef9[_0x417f('0x33')][_0x417f('0x34')]()]=_0x409ef9[_0x417f('0x35')][_0x417f('0x29')]();}else if(_[_0x417f('0x30')](['string',_0x417f('0x36')],_0x409ef9['type'])&&_0x409ef9[_0x417f('0x37')]&&_0x409ef9[_0x417f('0x38')]){_0x26c2f7[_0x417f('0x14')][_0x417f('0x39')]({'id':_0x409ef9[_0x417f('0x37')],'value':_0x409ef9[_0x417f('0x35')][_0x417f('0x29')]()});}else if(_0x409ef9[_0x417f('0x32')]===_0x417f('0x3a')&&_0x409ef9[_0x417f('0x3b')]&&_0x409ef9[_0x417f('0x37')]&&_0x409ef9[_0x417f('0x38')]){_0x3931dc[_0x409ef9[_0x417f('0x3b')]]&&_0x26c2f7[_0x417f('0x14')]['push']({'id':_0x409ef9[_0x417f('0x37')],'value':_0x3931dc[_0x409ef9[_0x417f('0x3b')]][_0x417f('0x29')]()});}else if(_0x409ef9[_0x417f('0x32')]==='customVariable'&&_0x409ef9[_0x417f('0x3c')]&&_0x409ef9['Variable']['name']&&_0x409ef9['idField']&&_0x409ef9[_0x417f('0x38')]){_0x3931dc[_0x409ef9[_0x417f('0x3c')][_0x417f('0x13')][_0x417f('0x34')]()]&&_0x26c2f7[_0x417f('0x14')][_0x417f('0x39')]({'id':_0x409ef9[_0x417f('0x37')],'value':_0x3931dc[_0x409ef9[_0x417f('0x3c')][_0x417f('0x13')][_0x417f('0x34')]()][_0x417f('0x29')]()});}});}return _0x26c2f7;}exports[_0x417f('0x3d')]=function(_0x8fd1c7,_0x385811,_0x3737b7,_0xa5a188,_0x282f94,_0x23f030){var _0x2710e4,_0x38982e;_0x23f030[_0x417f('0x19')]=intUtil[_0x417f('0x3e')](_0x23f030[_0x417f('0x19')]);_0x23f030[_0x417f('0x3f')]=intUtil[_0x417f('0x3e')](_0x23f030['serverUrl']);if(_0x282f94&&_0x282f94['monitor_format']){logger[_0x417f('0xb')](_0x417f('0x40'),'Recording\x20is\x20enabled!');_0x385811[_0x417f('0x41')]=util[_0x417f('0xe')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x23f030[_0x417f('0x3f')],_0x385811[_0x417f('0x42')],md5(_0x385811['uniqueid']));}else{_0x385811[_0x417f('0x41')]='';}headers['Authorization']=getAuth(_0x23f030);return getUser(_0x23f030,_0xa5a188[_0x417f('0x20')])[_0x417f('0x1b')](function(_0x37f2d0){_0x2710e4=_0x37f2d0;logger[_0x417f('0xb')](_0x417f('0x43'),_0x2710e4['id']);return getEndUser(_0x23f030,_0x385811[_0x417f('0x44')],_0x385811[_0x417f('0xf')]);})[_0x417f('0x1b')](function(_0x184593){_0x38982e=_0x184593;logger[_0x417f('0xb')](_0x417f('0x45'),_0x38982e['id']);return getTicket(_0x23f030,_0x2710e4,_0x38982e,_0x3737b7,_0x385811);})[_0x417f('0x1b')](function(_0x16095b){if(_0x16095b&&_0x16095b['id']){logger[_0x417f('0xb')](_0x417f('0x46'));logger[_0x417f('0xb')](_0x417f('0x47'),_0x16095b['id']);logger[_0x417f('0xb')](_0x417f('0x40'),_0x417f('0x48'));emit(util[_0x417f('0xe')](_0x417f('0x49'),_0xa5a188[_0x417f('0x13')]),_0x417f('0x4a'),{'uri':util[_0x417f('0xe')](_0x417f('0x4b'),_0x23f030['remoteUri'],_0x16095b['id'])});}})['catch'](function(_0x59cfa0){logger[_0x417f('0x4c')](_0x417f('0x40'),JSON[_0x417f('0x2c')](_0x59cfa0));});};exports['outbound']=function(_0x412415,_0xafaf4e,_0x26940f,_0x51002f,_0x21e61c,_0x1329f7,_0x3ecf34){var _0x1aa8e1,_0x290d68;_0x1329f7[_0x417f('0x19')]=intUtil[_0x417f('0x3e')](_0x1329f7[_0x417f('0x19')]);_0x1329f7[_0x417f('0x3f')]=intUtil['stripTrailingSlash'](_0x1329f7[_0x417f('0x3f')]);if(_0x3ecf34&&_0x3ecf34['recordingFormat']&&_0x3ecf34[_0x417f('0x4d')]!=='none'){logger[_0x417f('0xb')]('[OUTBOUND]',_0x417f('0x4e'));_0xafaf4e[_0x417f('0x41')]=util['format'](_0x417f('0x4f'),_0x1329f7[_0x417f('0x3f')],_0xafaf4e[_0x417f('0x42')],md5(_0xafaf4e[_0x417f('0x42')]));}headers['Authorization']=getAuth(_0x1329f7);return getUser(_0x1329f7,_0x51002f['email'])[_0x417f('0x1b')](function(_0x49d149){_0x1aa8e1=_0x49d149;logger[_0x417f('0xb')](_0x417f('0x43'),_0x1aa8e1['id']);return getEndUser(_0x1329f7,_0xafaf4e[_0x417f('0x50')],_0xafaf4e[_0x417f('0x51')]);})[_0x417f('0x1b')](function(_0x5b302d){_0x290d68=_0x5b302d;logger[_0x417f('0xb')](_0x417f('0x45'),_0x290d68['id']);return getTicket(_0x1329f7,_0x1aa8e1,_0x290d68,_0x26940f,_0xafaf4e);})[_0x417f('0x1b')](function(_0x135f07){if(_0x135f07&&_0x135f07['id']){logger[_0x417f('0xb')](_0x417f('0x46'));logger[_0x417f('0xb')](_0x417f('0x47'),_0x135f07['id']);logger[_0x417f('0xb')](_0x417f('0x52'),_0x417f('0x48'));emit(util[_0x417f('0xe')](_0x417f('0x49'),_0x51002f['name']),_0x417f('0x4a'),{'uri':util['format'](_0x417f('0x4b'),_0x1329f7[_0x417f('0x19')],_0x135f07['id'])});}})[_0x417f('0x53')](function(_0x26511a){logger[_0x417f('0x4c')]('[OUTBOUND]',JSON[_0x417f('0x2c')](_0x26511a));});};exports[_0x417f('0x54')]=function(_0x407094,_0x41b353,_0x11dcae,_0x1c000e,_0x14aecb,_0x2855d2){var _0x237058,_0x204da1;_0x2855d2['remoteUri']=intUtil[_0x417f('0x3e')](_0x2855d2[_0x417f('0x19')]);_0x2855d2[_0x417f('0x3f')]=intUtil[_0x417f('0x3e')](_0x2855d2['serverUrl']);if(_0x14aecb&&_0x14aecb[_0x417f('0x55')]){logger[_0x417f('0xb')]('['+_0x41b353[_0x417f('0x56')][_0x417f('0x57')]()+']','Recording\x20is\x20enabled!');_0x41b353[_0x417f('0x41')]=util[_0x417f('0xe')](_0x417f('0x4f'),_0x2855d2[_0x417f('0x3f')],_0x41b353[_0x417f('0x42')],md5(_0x41b353['uniqueid']));}else{_0x41b353[_0x417f('0x41')]='';}headers['Authorization']=getAuth(_0x2855d2);return getUser(_0x2855d2,'')[_0x417f('0x1b')](function(_0x336031){_0x237058=_0x336031;logger[_0x417f('0xb')]('The\x20User\x20ID\x20is:',_0x237058['id']);return getEndUser(_0x2855d2,_0x41b353[_0x417f('0x44')],_0x41b353['calleridnum']);})[_0x417f('0x1b')](function(_0x1d3b26){_0x204da1=_0x1d3b26;logger['info'](_0x417f('0x45'),_0x204da1['id']);return getTicket(_0x2855d2,_0x237058,_0x204da1,_0x11dcae,_0x41b353);})[_0x417f('0x1b')](function(_0xcadce1){if(_0xcadce1){logger[_0x417f('0xb')](_0x417f('0x46'));logger[_0x417f('0xb')](_0x417f('0x47'),_0xcadce1['id']);}})[_0x417f('0x53')](function(_0x1126b4){logger['error']('['+_0x41b353[_0x417f('0x56')]['toUpperCase']()+']',JSON[_0x417f('0x2c')](_0x1126b4));});};
\ No newline at end of file
+var _0x8ae7=['[QUEUE]','Recording\x20is\x20enabled!','recordingURL','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','Authorization','The\x20Ticket\x20ID\x20is:','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...','user:%s','trigger:browser:url','%s/helpdesk/tickets/%d','catch','error','recordingFormat','none','[OUTBOUND]','destcalleridname','destcalleridnum','The\x20Enduser\x20ID\x20is:','unmanaged','toUpperCase','The\x20User\x20ID\x20is:','lastevent','lodash','request-promise','md5','util','ioredis','../../../../config/environment','../../../../config/logger','freshdesk','redis','localhost','socket.io-emitter','application/json','emit','info','Creating\x20new\x20ticket...','format','Caller\x20-\x20%s','calleridname','calleridnum','getString','Subjects','Descriptions','Tags','name','custom_fields','keyBy','value','%s/api/v2/tickets','remoteUri','POST','then','Ticket\x20created!','%s/api/v2/agents','length','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','find','Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!','Enduser\x20created.','Basic\x20%s','apiKey','toString','base64','debug','[HTTP]','stringify','defaults','GET','map','string','picklist','type','nameField','customField','toLowerCase','idField','push','content','variable','variableName','customVariable','Variable','stripTrailingSlash','serverUrl','monitor_format'];(function(_0x31cc0e,_0x24ba4c){var _0x144862=function(_0x4d236e){while(--_0x4d236e){_0x31cc0e['push'](_0x31cc0e['shift']());}};_0x144862(++_0x24ba4c);}(_0x8ae7,0x131));var _0x78ae=function(_0x56e3d1,_0x1766f7){_0x56e3d1=_0x56e3d1-0x0;var _0x332de6=_0x8ae7[_0x56e3d1];return _0x332de6;};'use strict';var _=require(_0x78ae('0x0'));var rp=require(_0x78ae('0x1'));var md5=require(_0x78ae('0x2'));var util=require(_0x78ae('0x3'));var Redis=require(_0x78ae('0x4'));var intUtil=require('./util');var config=require(_0x78ae('0x5'));var logger=require(_0x78ae('0x6'))(_0x78ae('0x7'));config[_0x78ae('0x8')]=_['defaults'](config[_0x78ae('0x8')],{'host':_0x78ae('0x9'),'port':0x18eb});var io=require(_0x78ae('0xa'))(new Redis(config['redis']));var headers={'Content-Type':'application/json','Accept':_0x78ae('0xb')};function emit(_0x458a8b,_0x2fd894,_0x12c773){io['to'](_0x458a8b)[_0x78ae('0xc')](_0x2fd894,_0x12c773);}function getTicket(_0x470f60,_0x5f1208,_0x38b9b1,_0xa5c3a1,_0x90c2b4){logger[_0x78ae('0xd')](_0x78ae('0xe'));var _0x39cab5=_['merge']({'responder_id':_0x5f1208['id'],'requester_id':_0x38b9b1['id'],'name':util[_0x78ae('0xf')](_0x78ae('0x10'),_0x90c2b4[_0x78ae('0x11')]),'phone':_0x90c2b4[_0x78ae('0x12')],'source':0x3,'priority':0x1,'status':0x2,'subject':intUtil[_0x78ae('0x13')](_0xa5c3a1[_0x78ae('0x14')],_0x90c2b4,'\x20'),'description':intUtil[_0x78ae('0x13')](_0xa5c3a1[_0x78ae('0x15')],_0x90c2b4,'<br>'),'tags':getTags(_0xa5c3a1[_0x78ae('0x16')],_0x78ae('0x17'))},getCustomFields(_0xa5c3a1['Fields'],_0x90c2b4));_0x39cab5[_0x78ae('0x18')]=_['mapValues'](_[_0x78ae('0x19')](_0x39cab5['custom_fields'],'id'),_0x78ae('0x1a'));return request({'uri':util['format'](_0x78ae('0x1b'),_0x470f60[_0x78ae('0x1c')]),'method':_0x78ae('0x1d'),'body':_0x39cab5})[_0x78ae('0x1e')](function(_0x2f4270){logger[_0x78ae('0xd')](_0x78ae('0x1f'));return _0x2f4270;});}function getUser(_0x5744d2,_0xf4e8f4){if(intUtil['validateEmail'](_0xf4e8f4)){return request({'uri':util['format'](_0x78ae('0x20'),_0x5744d2[_0x78ae('0x1c')]),'qs':{'email':_0xf4e8f4}})[_0x78ae('0x1e')](function(_0x5842a6){if(_0x5842a6[_0x78ae('0x21')]){logger[_0x78ae('0xd')]('Agent\x20found!');return _['find'](_0x5842a6,function(_0x249e75){return _0x249e75[_0x78ae('0x22')][_0x78ae('0x23')]===_0xf4e8f4;});}else{logger[_0x78ae('0xd')](_0x78ae('0x24'));return request({'uri':util[_0x78ae('0xf')](_0x78ae('0x25'),_0x5744d2[_0x78ae('0x1c')])})[_0x78ae('0x1e')](function(_0x2593e6){logger[_0x78ae('0xd')](_0x78ae('0x26'));return _0x2593e6;});}});}else{logger[_0x78ae('0xd')](_0x78ae('0x27'));return request({'uri':util[_0x78ae('0xf')](_0x78ae('0x25'),_0x5744d2['remoteUri'])})['then'](function(_0x1edb6a){logger[_0x78ae('0xd')]('Admin\x20account\x20selected.');return _0x1edb6a;});}}function getEndUser(_0x19d2f2,_0x5683e,_0x1e7acd){logger['info'](_0x78ae('0x28'),_0x1e7acd);return request({'uri':util['format'](_0x78ae('0x29'),_0x19d2f2[_0x78ae('0x1c')]),'qs':{'phone':_0x1e7acd}})[_0x78ae('0x1e')](function(_0x50572c){if(_0x50572c[_0x78ae('0x21')]){logger['info']('Enduser\x20found!');return _[_0x78ae('0x2a')](_0x50572c,{'phone':_0x1e7acd});}else{logger[_0x78ae('0xd')](_0x78ae('0x2b'));return request({'uri':util['format'](_0x78ae('0x29'),_0x19d2f2['remoteUri']),'method':_0x78ae('0x1d'),'body':{'name':_0x5683e,'phone':_0x1e7acd}})[_0x78ae('0x1e')](function(_0x8b9bde){logger[_0x78ae('0xd')](_0x78ae('0x2c'));return _0x8b9bde;});}});}function getAuth(_0x5cc40e){return util[_0x78ae('0xf')](_0x78ae('0x2d'),new Buffer(_0x5cc40e[_0x78ae('0x2e')]+':X')[_0x78ae('0x2f')](_0x78ae('0x30')));}function request(_0x1a983e){logger[_0x78ae('0x31')](_0x78ae('0x32'),JSON[_0x78ae('0x33')](_0x1a983e));return rp(_[_0x78ae('0x34')](_0x1a983e,{'method':_0x78ae('0x35'),'headers':headers,'json':!![]}));}function getTags(_0x2feee0,_0x52d8e2){var _0x45b613=[];if(_0x2feee0&&_0x2feee0[_0x78ae('0x21')]>0x0){_0x45b613=_[_0x78ae('0x36')](_0x2feee0,_0x52d8e2);}return _0x45b613;}function getCustomFields(_0x21115c,_0x1bba4e){var _0x374a0b=[];var _0xc32dfc={'custom_fields':[]};if(_0x21115c[_0x78ae('0x21')]>0x0){_['forEach'](_0x21115c,function(_0x199ab1){if(_['includes']([_0x78ae('0x37'),_0x78ae('0x38')],_0x199ab1[_0x78ae('0x39')])&&_0x199ab1[_0x78ae('0x3a')]&&!_0x199ab1[_0x78ae('0x3b')]){_0xc32dfc[_0x199ab1[_0x78ae('0x3a')][_0x78ae('0x3c')]()]=_0x199ab1['content'][_0x78ae('0x2f')]();}else if(_['includes'](['string','picklist'],_0x199ab1[_0x78ae('0x39')])&&_0x199ab1[_0x78ae('0x3d')]&&_0x199ab1[_0x78ae('0x3b')]){_0xc32dfc[_0x78ae('0x18')][_0x78ae('0x3e')]({'id':_0x199ab1[_0x78ae('0x3d')],'value':_0x199ab1[_0x78ae('0x3f')]['toString']()});}else if(_0x199ab1[_0x78ae('0x39')]===_0x78ae('0x40')&&_0x199ab1['variableName']&&_0x199ab1['idField']&&_0x199ab1[_0x78ae('0x3b')]){_0x1bba4e[_0x199ab1[_0x78ae('0x41')]]&&_0xc32dfc[_0x78ae('0x18')]['push']({'id':_0x199ab1[_0x78ae('0x3d')],'value':_0x1bba4e[_0x199ab1[_0x78ae('0x41')]][_0x78ae('0x2f')]()});}else if(_0x199ab1[_0x78ae('0x39')]===_0x78ae('0x42')&&_0x199ab1[_0x78ae('0x43')]&&_0x199ab1[_0x78ae('0x43')]['name']&&_0x199ab1['idField']&&_0x199ab1['customField']){_0x1bba4e[_0x199ab1[_0x78ae('0x43')][_0x78ae('0x17')][_0x78ae('0x3c')]()]&&_0xc32dfc[_0x78ae('0x18')][_0x78ae('0x3e')]({'id':_0x199ab1[_0x78ae('0x3d')],'value':_0x1bba4e[_0x199ab1['Variable'][_0x78ae('0x17')]['toLowerCase']()]['toString']()});}});}return _0xc32dfc;}exports['queue']=function(_0x5054f7,_0x2d610d,_0x534996,_0x3cb825,_0x1b8d71,_0xdeb10e){var _0x41efdf,_0x3a949b;_0xdeb10e[_0x78ae('0x1c')]=intUtil[_0x78ae('0x44')](_0xdeb10e[_0x78ae('0x1c')]);_0xdeb10e['serverUrl']=intUtil['stripTrailingSlash'](_0xdeb10e[_0x78ae('0x45')]);if(_0x1b8d71&&_0x1b8d71[_0x78ae('0x46')]){logger['info'](_0x78ae('0x47'),_0x78ae('0x48'));_0x2d610d[_0x78ae('0x49')]=util[_0x78ae('0xf')](_0x78ae('0x4a'),_0xdeb10e['serverUrl'],_0x2d610d[_0x78ae('0x4b')],md5(_0x2d610d[_0x78ae('0x4b')]));}else{_0x2d610d[_0x78ae('0x49')]='';}headers[_0x78ae('0x4c')]=getAuth(_0xdeb10e);return getUser(_0xdeb10e,_0x3cb825[_0x78ae('0x23')])[_0x78ae('0x1e')](function(_0x54bb2d){_0x41efdf=_0x54bb2d;logger[_0x78ae('0xd')]('The\x20User\x20ID\x20is:',_0x41efdf['id']);return getEndUser(_0xdeb10e,_0x2d610d['calleridname'],_0x2d610d[_0x78ae('0x12')]);})[_0x78ae('0x1e')](function(_0x59ff13){_0x3a949b=_0x59ff13;logger[_0x78ae('0xd')]('The\x20Enduser\x20ID\x20is:',_0x3a949b['id']);return getTicket(_0xdeb10e,_0x41efdf,_0x3a949b,_0x534996,_0x2d610d);})[_0x78ae('0x1e')](function(_0x2cdaed){if(_0x2cdaed&&_0x2cdaed['id']){logger[_0x78ae('0xd')](_0x78ae('0x1f'));logger['info'](_0x78ae('0x4d'),_0x2cdaed['id']);logger[_0x78ae('0xd')](_0x78ae('0x47'),_0x78ae('0x4e'));emit(util[_0x78ae('0xf')](_0x78ae('0x4f'),_0x3cb825[_0x78ae('0x17')]),_0x78ae('0x50'),{'uri':util['format'](_0x78ae('0x51'),_0xdeb10e[_0x78ae('0x1c')],_0x2cdaed['id'])});}})[_0x78ae('0x52')](function(_0x561a5c){logger[_0x78ae('0x53')](_0x78ae('0x47'),JSON[_0x78ae('0x33')](_0x561a5c));});};exports['outbound']=function(_0x495ab4,_0x295551,_0xce62a8,_0x154529,_0x3e9f43,_0xa5f4b5,_0x179c90){var _0x2f4fcf,_0x41e8ee;_0xa5f4b5[_0x78ae('0x1c')]=intUtil['stripTrailingSlash'](_0xa5f4b5['remoteUri']);_0xa5f4b5[_0x78ae('0x45')]=intUtil[_0x78ae('0x44')](_0xa5f4b5[_0x78ae('0x45')]);if(_0x179c90&&_0x179c90[_0x78ae('0x54')]&&_0x179c90['recordingFormat']!==_0x78ae('0x55')){logger['info'](_0x78ae('0x56'),_0x78ae('0x48'));_0x295551['recordingURL']=util[_0x78ae('0xf')](_0x78ae('0x4a'),_0xa5f4b5[_0x78ae('0x45')],_0x295551[_0x78ae('0x4b')],md5(_0x295551[_0x78ae('0x4b')]));}headers['Authorization']=getAuth(_0xa5f4b5);return getUser(_0xa5f4b5,_0x154529['email'])['then'](function(_0x1fa4c3){_0x2f4fcf=_0x1fa4c3;logger[_0x78ae('0xd')]('The\x20User\x20ID\x20is:',_0x2f4fcf['id']);return getEndUser(_0xa5f4b5,_0x295551[_0x78ae('0x57')],_0x295551[_0x78ae('0x58')]);})[_0x78ae('0x1e')](function(_0xafcc6b){_0x41e8ee=_0xafcc6b;logger[_0x78ae('0xd')](_0x78ae('0x59'),_0x41e8ee['id']);return getTicket(_0xa5f4b5,_0x2f4fcf,_0x41e8ee,_0xce62a8,_0x295551);})[_0x78ae('0x1e')](function(_0x132ff0){if(_0x132ff0&&_0x132ff0['id']){logger[_0x78ae('0xd')](_0x78ae('0x1f'));logger[_0x78ae('0xd')](_0x78ae('0x4d'),_0x132ff0['id']);logger['info'](_0x78ae('0x56'),'Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...');emit(util[_0x78ae('0xf')]('user:%s',_0x154529[_0x78ae('0x17')]),_0x78ae('0x50'),{'uri':util[_0x78ae('0xf')]('%s/helpdesk/tickets/%d',_0xa5f4b5['remoteUri'],_0x132ff0['id'])});}})[_0x78ae('0x52')](function(_0x1de11f){logger[_0x78ae('0x53')](_0x78ae('0x56'),JSON['stringify'](_0x1de11f));});};exports[_0x78ae('0x5a')]=function(_0x399725,_0xed5015,_0xf487a1,_0x3aed98,_0x576360,_0x28b832){var _0x2e0034,_0x184248;_0x28b832[_0x78ae('0x1c')]=intUtil[_0x78ae('0x44')](_0x28b832[_0x78ae('0x1c')]);_0x28b832[_0x78ae('0x45')]=intUtil[_0x78ae('0x44')](_0x28b832['serverUrl']);if(_0x576360&&_0x576360[_0x78ae('0x46')]){logger[_0x78ae('0xd')]('['+_0xed5015['lastevent'][_0x78ae('0x5b')]()+']',_0x78ae('0x48'));_0xed5015['recordingURL']=util['format']('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x28b832['serverUrl'],_0xed5015[_0x78ae('0x4b')],md5(_0xed5015[_0x78ae('0x4b')]));}else{_0xed5015[_0x78ae('0x49')]='';}headers['Authorization']=getAuth(_0x28b832);return getUser(_0x28b832,'')[_0x78ae('0x1e')](function(_0x5aca87){_0x2e0034=_0x5aca87;logger['info'](_0x78ae('0x5c'),_0x2e0034['id']);return getEndUser(_0x28b832,_0xed5015[_0x78ae('0x11')],_0xed5015[_0x78ae('0x12')]);})[_0x78ae('0x1e')](function(_0xb2e02f){_0x184248=_0xb2e02f;logger[_0x78ae('0xd')]('The\x20Enduser\x20ID\x20is:',_0x184248['id']);return getTicket(_0x28b832,_0x2e0034,_0x184248,_0xf487a1,_0xed5015);})[_0x78ae('0x1e')](function(_0x1bd93d){if(_0x1bd93d){logger['info'](_0x78ae('0x1f'));logger[_0x78ae('0xd')](_0x78ae('0x4d'),_0x1bd93d['id']);}})[_0x78ae('0x52')](function(_0x4b4fd1){logger[_0x78ae('0x53')]('['+_0xed5015[_0x78ae('0x5d')]['toUpperCase']()+']',JSON[_0x78ae('0x33')](_0x4b4fd1));});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb4db=['../../../../config/logger','freshsales','redis','defaults','localhost','socket.io-emitter','GET','Getting\x20admin\x20information','then','length','email','adminId','Requested\x20Resource\x20not\x20Found','catch','error','toUpperCase','message','/api/selector/owners','headers','info','Getting\x20user\x20list','users','Getting\x20user\x20with\x20email','agentEmail','userEmail','userId','User\x20found:','Admin\x20selected','/api/lookup?q=','&f=','&entities=contact','contacts','Searching\x20contact\x20with\x20phone\x20%s','contactNumber','endUserId','Contact\x20found\x20mobile_number:','work_number','Contact\x20found\x20work_number:','Contact\x20created:','POST','/api/contacts','format','Contact\x20not\x20found,\x20creating\x20a\x20new\x20contact','contact','Creating\x20new\x20task','/api/tasks','getString','Subjects','Descriptions','Contact','YYYY-MM-DDTHH:mm:ss','task','Task\x20created:','ticketId','/contacts/','user:%s','emit','Token\x20token=','apiKey','stripTrailingSlash','remoteUri','serverUrl','toLowerCase','outbound','destcalleridnum','calleridnum','callDirection','unmanaged','queue','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','monitor_format','[QUEUE]','Recording\x20is\x20enabled!','recordingFormat','none','[OUTBOUND]','recordingURL','The\x20ticket\x20ID\x20is:\x20%s','name',']\x20Error\x20running\x20Freshsales\x20integration','inspect','lodash','md5','moment','bluebird','ioredis','./util','../../../../config/environment'];(function(_0x4d08a2,_0x4364f0){var _0x19f095=function(_0x223565){while(--_0x223565){_0x4d08a2['push'](_0x4d08a2['shift']());}};_0x19f095(++_0x4364f0);}(_0xb4db,0x1b1));var _0xbb4d=function(_0x2704d6,_0x283728){_0x2704d6=_0x2704d6-0x0;var _0x462c73=_0xb4db[_0x2704d6];return _0x462c73;};'use strict';var _=require(_0xbb4d('0x0'));var rp=require('request-promise');var md5=require(_0xbb4d('0x1'));var util=require('util');var moment=require(_0xbb4d('0x2'));var Promise=require(_0xbb4d('0x3'));var Redis=require(_0xbb4d('0x4'));var intUtil=require(_0xbb4d('0x5'));var config=require(_0xbb4d('0x6'));var logger=require(_0xbb4d('0x7'))(_0xbb4d('0x8'));config[_0xbb4d('0x9')]=_[_0xbb4d('0xa')](config['redis'],{'host':_0xbb4d('0xb'),'port':0x18eb});var io=require(_0xbb4d('0xc'))(new Redis(config[_0xbb4d('0x9')]));function getAdminId(_0x4be56f,_0x51760c,_0x3e954f,_0x3d7274){return new Promise(function(_0x5065fa,_0x1edb88){var _0x104c63=![];var _0x29cdab={'method':_0xbb4d('0xd'),'uri':_0x3d7274+'/api/selector/owners','json':!![]};_0x29cdab['headers']=_0x3e954f;logger['info'](_0xbb4d('0xe'));return rp(_0x29cdab)[_0xbb4d('0xf')](function(_0x1c9387){if(_0x1c9387){var _0x2690ac=_0x1c9387['users'];var _0x14f778=null;for(_0x14f778=0x0;_0x14f778<_0x2690ac[_0xbb4d('0x10')];_0x14f778++){if(_0x2690ac[_0x14f778][_0xbb4d('0x11')]===_0x4be56f['adminEmail']){_0x4be56f[_0xbb4d('0x12')]=_0x2690ac[_0x14f778]['id'];_0x104c63=!![];}}if(_0x104c63){logger['info']('Admin\x20found:',_0x4be56f['adminId']);_0x5065fa(_0x4be56f);}else{_0x1edb88({'statusCode':0x194,'message':_0xbb4d('0x13')});}}else{_0x1edb88({'statusCode':0x194,'message':_0xbb4d('0x13')});}})[_0xbb4d('0x14')](function(_0x203cbd){logger[_0xbb4d('0x15')]('['+[_0x51760c[_0xbb4d('0x16')]()]+']',_0x203cbd[_0xbb4d('0x17')]);_0x1edb88(_0x203cbd);});});}function getUser(_0xaa950a,_0x339eb5,_0xd67c8c){return function(_0x3dc23d){return new Promise(function(_0x2cf72f,_0x12b07f){var _0x135449={'method':'GET','uri':_0xd67c8c+_0xbb4d('0x18'),'json':!![]};_0x135449[_0xbb4d('0x19')]=_0x339eb5;logger[_0xbb4d('0x1a')](_0xbb4d('0x1b'));return rp(_0x135449)['then'](function(_0x3349c0){if(_0x3349c0){var _0x8b5707=_0x3349c0[_0xbb4d('0x1c')];var _0x15c18c=![];var _0x56a555=null;if(_0x3dc23d['agentEmail']!==null){logger[_0xbb4d('0x1a')](_0xbb4d('0x1d'),_0x3dc23d[_0xbb4d('0x1e')]);_0x3dc23d[_0xbb4d('0x1f')]=_0x3dc23d[_0xbb4d('0x1e')];for(_0x56a555=0x0;_0x56a555<_0x8b5707['length'];_0x56a555++){if(_0x8b5707[_0x56a555][_0xbb4d('0x11')]===_0x3dc23d[_0xbb4d('0x1e')]){_0x15c18c=!![];_0x3dc23d[_0xbb4d('0x20')]=_0x8b5707[_0x56a555]['id'];logger[_0xbb4d('0x1a')](_0xbb4d('0x21'),_0x3dc23d['userId']);}}}if(!_0x15c18c){logger['info'](_0xbb4d('0x22'));_0x3dc23d[_0xbb4d('0x1f')]=_0x3dc23d['adminEmail'];_0x3dc23d[_0xbb4d('0x20')]=_0x3dc23d[_0xbb4d('0x12')];_0x15c18c=!![];}if(_0x15c18c){_0x2cf72f(_0x3dc23d);}else{_0x12b07f({'statusCode':0x194,'message':_0xbb4d('0x13')});}}else{_0x12b07f({'statusCode':0x194,'message':_0xbb4d('0x13')});}})[_0xbb4d('0x14')](function(_0x38f951){logger['error']('['+[_0xaa950a[_0xbb4d('0x16')]()]+']',_0x38f951[_0xbb4d('0x17')]);_0x12b07f(_0x38f951);});});};}function searchContact(_0x53991e,_0x3a4805,_0xa26680,_0x599b6a){return new Promise(function(_0x138ea2,_0x324234){var _0x4088c6={'method':_0xbb4d('0xd'),'headers':_0x3a4805,'uri':_0x53991e+_0xbb4d('0x23')+_0x599b6a+_0xbb4d('0x24')+_0xa26680+_0xbb4d('0x25'),'json':!![]};rp(_0x4088c6)[_0xbb4d('0xf')](function(_0x1360d1){var _0x44b191=_['find'](_0x1360d1[_0xbb4d('0x26')][_0xbb4d('0x26')],[_0xa26680,_0x599b6a]);_0x138ea2(_0x44b191);})[_0xbb4d('0x14')](function(_0x47a66a){_0x324234(_0x47a66a);});});}function getEndUser(_0x19b0d5,_0x3b804b,_0x11ee4a){return function(_0x5e540a){return new Promise(function(_0x5b4db5,_0x3dff21){logger[_0xbb4d('0x1a')](util['format'](_0xbb4d('0x27'),_0x5e540a[_0xbb4d('0x28')]));searchContact(_0x11ee4a,_0x3b804b,'mobile_number',_0x5e540a[_0xbb4d('0x28')])[_0xbb4d('0xf')](function(_0x244465){if(_0x244465){_0x5e540a[_0xbb4d('0x29')]=_0x244465['id'];logger[_0xbb4d('0x1a')](_0xbb4d('0x2a'),_0x5e540a[_0xbb4d('0x29')]);return _0x5b4db5(_0x5e540a);}searchContact(_0x11ee4a,_0x3b804b,_0xbb4d('0x2b'),_0x5e540a[_0xbb4d('0x28')])[_0xbb4d('0xf')](function(_0x461fd0){if(_0x461fd0){_0x5e540a[_0xbb4d('0x29')]=_0x461fd0['id'];logger[_0xbb4d('0x1a')](_0xbb4d('0x2c'),_0x5e540a[_0xbb4d('0x29')]);return _0x5b4db5(_0x5e540a);}createEndUser(_0x5e540a,_0x19b0d5,_0x3b804b,_0x11ee4a)[_0xbb4d('0xf')](function(_0x222563){logger[_0xbb4d('0x1a')](_0xbb4d('0x2d'),_0x222563[_0xbb4d('0x29')]);return _0x5b4db5(_0x222563);});});})[_0xbb4d('0x14')](function(_0x5d8fe5){_0x3dff21(_0x5d8fe5);});});};}function createEndUser(_0x4eac8f,_0x46bb11,_0x54dd27,_0x1b88bf){return new Promise(function(_0x4d698a,_0x34a210){var _0x15b85b=moment();var _0x59f846={'method':_0xbb4d('0x2e'),'uri':_0x1b88bf+_0xbb4d('0x2f'),'body':{'contact':{'last_name':_0x4eac8f['contactNumber'],'work_number':_0x4eac8f[_0xbb4d('0x28')],'mobile_number':_0x4eac8f['contactNumber'],'owner_id':_0x4eac8f[_0xbb4d('0x20')],'created_at':_0x15b85b[_0xbb4d('0x30')]('YYYY-MM-DDTHH:mm:ss')}},'json':!![]};_0x59f846[_0xbb4d('0x19')]=_0x54dd27;logger[_0xbb4d('0x1a')](_0xbb4d('0x31'));return rp(_0x59f846)['then'](function(_0x32d395){_0x4eac8f[_0xbb4d('0x29')]=_0x32d395[_0xbb4d('0x32')]['id'];_0x4d698a(_0x4eac8f);})[_0xbb4d('0x14')](function(_0x3cb0d9){logger[_0xbb4d('0x15')]('['+[_0x46bb11[_0xbb4d('0x16')]()]+']',_0x3cb0d9[_0xbb4d('0x17')]);_0x34a210(_0x3cb0d9['message']);});});}function getTicket(_0x453637,_0x378d4,_0x1b8837,_0xed618a,_0x593319){return function(_0x667bb7){logger['info'](_0xbb4d('0x33'));return new Promise(function(_0x3a9733,_0x33595b){var _0x1cf4a0=moment();var _0x47e5af={'method':_0xbb4d('0x2e'),'uri':_0x1b8837+_0xbb4d('0x34'),'body':{'title':intUtil[_0xbb4d('0x35')](_0xed618a[_0xbb4d('0x36')],_0x593319,'\x20'),'description':intUtil['getString'](_0xed618a[_0xbb4d('0x37')],_0x593319,'\x0a'),'owner_id':_0x667bb7[_0xbb4d('0x20')],'creater_id':_0x667bb7['adminId'],'targetable_id':_0x667bb7[_0xbb4d('0x29')],'targetable_type':_0xbb4d('0x38'),'created_at':_0x1cf4a0['format'](_0xbb4d('0x39')),'due_date':_0x1cf4a0['add'](0x1e,'m')[_0xbb4d('0x30')](_0xbb4d('0x39'))},'json':!![]};_0x47e5af[_0xbb4d('0x19')]=_0x378d4;return rp(_0x47e5af)[_0xbb4d('0xf')](function(_0x5d6c7f){_0x667bb7['ticketId']=_0x5d6c7f[_0xbb4d('0x3a')]['id'];logger[_0xbb4d('0x1a')](_0xbb4d('0x3b'),_0x667bb7[_0xbb4d('0x3c')]);_0x3a9733(_0x667bb7);})[_0xbb4d('0x14')](function(_0x435a29){logger[_0xbb4d('0x15')]('['+[_0x453637[_0xbb4d('0x16')]()]+']',_0x435a29[_0xbb4d('0x17')]);_0x33595b(_0x435a29[_0xbb4d('0x17')]);});});};}function emit(_0x43754b,_0x24ed9a,_0x39eb63){var _0x341c4a={'uri':_0x43754b+_0xbb4d('0x3d')+_0x39eb63};io['to'](util[_0xbb4d('0x30')](_0xbb4d('0x3e'),_0x24ed9a))[_0xbb4d('0x3f')]('trigger:browser:url',_0x341c4a);}exports['cs']=function(_0x29d050,_0x550cd8,_0x4b1d35,_0x51c16b,_0xecfee8,_0x1317b6,_0xeae77c,_0x25f79){var _0x3a44d2={};var _0x4e8751={'Authorization':_0xbb4d('0x40')+_0x1317b6[_0xbb4d('0x41')]};_0x1317b6['remoteUri']=intUtil[_0xbb4d('0x42')](_0x1317b6[_0xbb4d('0x43')]);_0x1317b6[_0xbb4d('0x44')]=intUtil[_0xbb4d('0x42')](_0x1317b6[_0xbb4d('0x44')]);var _0x1f1554=_0x1317b6[_0xbb4d('0x43')];_0x3a44d2['adminEmail']=_0x1317b6['username'];_0x3a44d2[_0xbb4d('0x28')]=_0x25f79[_0xbb4d('0x45')]()===_0xbb4d('0x46')?_0x550cd8[_0xbb4d('0x47')]:_0x550cd8[_0xbb4d('0x48')];_0x3a44d2[_0xbb4d('0x49')]=_0x25f79==='queue'||_0x25f79===_0xbb4d('0x4a')?_0xbb4d('0x4b'):'outbound';if(_0x51c16b){_0x3a44d2[_0xbb4d('0x1e')]=_0x51c16b[_0xbb4d('0x11')];}var _0x571f46=util[_0xbb4d('0x30')](_0xbb4d('0x4c'),_0x1317b6[_0xbb4d('0x44')],_0x550cd8['uniqueid'],md5(_0x550cd8['uniqueid']));if(_0xecfee8&&_0xecfee8[_0xbb4d('0x4d')]){logger[_0xbb4d('0x1a')](_0xbb4d('0x4e'),_0xbb4d('0x4f'));_0x550cd8['recordingURL']=_0x571f46;}else if(_0xeae77c&&_0xeae77c[_0xbb4d('0x50')]&&_0xeae77c[_0xbb4d('0x50')]!==_0xbb4d('0x51')){logger[_0xbb4d('0x1a')](_0xbb4d('0x52'),'Recording\x20is\x20enabled!');_0x550cd8[_0xbb4d('0x53')]=_0x571f46;}else{_0x550cd8[_0xbb4d('0x53')]='';}return getAdminId(_0x3a44d2,_0x25f79,_0x4e8751,_0x1f1554)[_0xbb4d('0xf')](getUser(_0x25f79,_0x4e8751,_0x1f1554))[_0xbb4d('0xf')](getEndUser(_0x25f79,_0x4e8751,_0x1f1554))[_0xbb4d('0xf')](getTicket(_0x25f79,_0x4e8751,_0x1f1554,_0x4b1d35,_0x550cd8))[_0xbb4d('0xf')](function(_0x1c19fc){logger[_0xbb4d('0x1a')](util[_0xbb4d('0x30')](_0xbb4d('0x54'),_0x1c19fc[_0xbb4d('0x3c')]));if(_0x25f79!=='unmanaged'){logger['info']('['+[_0x25f79[_0xbb4d('0x16')]()]+']','Displaying\x20task\x20in\x20a\x20new\x20tab...');emit(_0x1f1554,_0x51c16b[_0xbb4d('0x55')],_0x1c19fc['endUserId']);}})[_0xbb4d('0x14')](function(_0x31f2eb){logger['error']('['+[_0x25f79[_0xbb4d('0x16')]()]+_0xbb4d('0x56'),util[_0xbb4d('0x57')](_0x31f2eb,{'showHidden':!![],'depth':null}));});};
\ No newline at end of file
+var _0x806c=['moment','./util','../../../../config/environment','../../../../config/logger','freshsales','redis','defaults','localhost','socket.io-emitter','GET','/api/selector/owners','headers','info','Getting\x20admin\x20information','then','email','adminId','Admin\x20found:','Requested\x20Resource\x20not\x20Found','catch','error','toUpperCase','message','users','agentEmail','Getting\x20user\x20with\x20email','length','userId','User\x20found:','userEmail','adminEmail','/api/lookup?q=','&f=','&entities=contact','find','contacts','format','Searching\x20contact\x20with\x20phone\x20%s','contactNumber','endUserId','Contact\x20found\x20mobile_number:','Contact\x20found\x20work_number:','Contact\x20created:','POST','/api/contacts','contact','Creating\x20new\x20task','/api/tasks','getString','Descriptions','Contact','YYYY-MM-DDTHH:mm:ss','add','task','Task\x20created:','ticketId','/contacts/','emit','Token\x20token=','remoteUri','serverUrl','stripTrailingSlash','username','toLowerCase','outbound','destcalleridnum','calleridnum','callDirection','queue','unmanaged','uniqueid','[QUEUE]','Recording\x20is\x20enabled!','recordingURL','recordingFormat','none','[OUTBOUND]','The\x20ticket\x20ID\x20is:\x20%s','Displaying\x20task\x20in\x20a\x20new\x20tab...','name',']\x20Error\x20running\x20Freshsales\x20integration','request-promise','md5','util'];(function(_0x278e3c,_0x1c9cfd){var _0x3e2d9b=function(_0x34d928){while(--_0x34d928){_0x278e3c['push'](_0x278e3c['shift']());}};_0x3e2d9b(++_0x1c9cfd);}(_0x806c,0x1a1));var _0xc806=function(_0x589f71,_0x212326){_0x589f71=_0x589f71-0x0;var _0x5763bd=_0x806c[_0x589f71];return _0x5763bd;};'use strict';var _=require('lodash');var rp=require(_0xc806('0x0'));var md5=require(_0xc806('0x1'));var util=require(_0xc806('0x2'));var moment=require(_0xc806('0x3'));var Promise=require('bluebird');var Redis=require('ioredis');var intUtil=require(_0xc806('0x4'));var config=require(_0xc806('0x5'));var logger=require(_0xc806('0x6'))(_0xc806('0x7'));config[_0xc806('0x8')]=_[_0xc806('0x9')](config[_0xc806('0x8')],{'host':_0xc806('0xa'),'port':0x18eb});var io=require(_0xc806('0xb'))(new Redis(config[_0xc806('0x8')]));function getAdminId(_0x4556cf,_0x1c29d1,_0x54976f,_0x1da3ad){return new Promise(function(_0x758526,_0x28d9cf){var _0x4c702a=![];var _0x4faadd={'method':_0xc806('0xc'),'uri':_0x1da3ad+_0xc806('0xd'),'json':!![]};_0x4faadd[_0xc806('0xe')]=_0x54976f;logger[_0xc806('0xf')](_0xc806('0x10'));return rp(_0x4faadd)[_0xc806('0x11')](function(_0x3dda38){if(_0x3dda38){var _0x512a63=_0x3dda38['users'];var _0x1eb070=null;for(_0x1eb070=0x0;_0x1eb070<_0x512a63['length'];_0x1eb070++){if(_0x512a63[_0x1eb070][_0xc806('0x12')]===_0x4556cf['adminEmail']){_0x4556cf[_0xc806('0x13')]=_0x512a63[_0x1eb070]['id'];_0x4c702a=!![];}}if(_0x4c702a){logger[_0xc806('0xf')](_0xc806('0x14'),_0x4556cf[_0xc806('0x13')]);_0x758526(_0x4556cf);}else{_0x28d9cf({'statusCode':0x194,'message':'Requested\x20Resource\x20not\x20Found'});}}else{_0x28d9cf({'statusCode':0x194,'message':_0xc806('0x15')});}})[_0xc806('0x16')](function(_0x1d39fb){logger[_0xc806('0x17')]('['+[_0x1c29d1[_0xc806('0x18')]()]+']',_0x1d39fb[_0xc806('0x19')]);_0x28d9cf(_0x1d39fb);});});}function getUser(_0x17293f,_0x310ce8,_0x5951f4){return function(_0x15020f){return new Promise(function(_0x42397c,_0x4f758c){var _0x486caf={'method':_0xc806('0xc'),'uri':_0x5951f4+_0xc806('0xd'),'json':!![]};_0x486caf[_0xc806('0xe')]=_0x310ce8;logger['info']('Getting\x20user\x20list');return rp(_0x486caf)[_0xc806('0x11')](function(_0x494772){if(_0x494772){var _0x279742=_0x494772[_0xc806('0x1a')];var _0x13497e=![];var _0x23326b=null;if(_0x15020f[_0xc806('0x1b')]!==null){logger[_0xc806('0xf')](_0xc806('0x1c'),_0x15020f[_0xc806('0x1b')]);_0x15020f['userEmail']=_0x15020f['agentEmail'];for(_0x23326b=0x0;_0x23326b<_0x279742[_0xc806('0x1d')];_0x23326b++){if(_0x279742[_0x23326b][_0xc806('0x12')]===_0x15020f[_0xc806('0x1b')]){_0x13497e=!![];_0x15020f[_0xc806('0x1e')]=_0x279742[_0x23326b]['id'];logger['info'](_0xc806('0x1f'),_0x15020f[_0xc806('0x1e')]);}}}if(!_0x13497e){logger[_0xc806('0xf')]('Admin\x20selected');_0x15020f[_0xc806('0x20')]=_0x15020f[_0xc806('0x21')];_0x15020f[_0xc806('0x1e')]=_0x15020f[_0xc806('0x13')];_0x13497e=!![];}if(_0x13497e){_0x42397c(_0x15020f);}else{_0x4f758c({'statusCode':0x194,'message':_0xc806('0x15')});}}else{_0x4f758c({'statusCode':0x194,'message':'Requested\x20Resource\x20not\x20Found'});}})[_0xc806('0x16')](function(_0x3e65c7){logger['error']('['+[_0x17293f['toUpperCase']()]+']',_0x3e65c7[_0xc806('0x19')]);_0x4f758c(_0x3e65c7);});});};}function searchContact(_0x4a54f4,_0x341ccc,_0x41cfe9,_0x215bac){return new Promise(function(_0x4b8ed0,_0x28210e){var _0x183049={'method':_0xc806('0xc'),'headers':_0x341ccc,'uri':_0x4a54f4+_0xc806('0x22')+_0x215bac+_0xc806('0x23')+_0x41cfe9+_0xc806('0x24'),'json':!![]};rp(_0x183049)['then'](function(_0x43140c){var _0xa67fb=_[_0xc806('0x25')](_0x43140c[_0xc806('0x26')][_0xc806('0x26')],[_0x41cfe9,_0x215bac]);_0x4b8ed0(_0xa67fb);})['catch'](function(_0x17e31c){_0x28210e(_0x17e31c);});});}function getEndUser(_0x17adfc,_0x30c267,_0x4fce34){return function(_0x48f364){return new Promise(function(_0x8c182c,_0x48f236){logger[_0xc806('0xf')](util[_0xc806('0x27')](_0xc806('0x28'),_0x48f364['contactNumber']));searchContact(_0x4fce34,_0x30c267,'mobile_number',_0x48f364[_0xc806('0x29')])[_0xc806('0x11')](function(_0x22156e){if(_0x22156e){_0x48f364[_0xc806('0x2a')]=_0x22156e['id'];logger[_0xc806('0xf')](_0xc806('0x2b'),_0x48f364[_0xc806('0x2a')]);return _0x8c182c(_0x48f364);}searchContact(_0x4fce34,_0x30c267,'work_number',_0x48f364[_0xc806('0x29')])[_0xc806('0x11')](function(_0x508e50){if(_0x508e50){_0x48f364[_0xc806('0x2a')]=_0x508e50['id'];logger[_0xc806('0xf')](_0xc806('0x2c'),_0x48f364[_0xc806('0x2a')]);return _0x8c182c(_0x48f364);}createEndUser(_0x48f364,_0x17adfc,_0x30c267,_0x4fce34)['then'](function(_0x5111b9){logger['info'](_0xc806('0x2d'),_0x5111b9['endUserId']);return _0x8c182c(_0x5111b9);});});})[_0xc806('0x16')](function(_0x3c011d){_0x48f236(_0x3c011d);});});};}function createEndUser(_0x2b8461,_0x23a532,_0x23a387,_0x527656){return new Promise(function(_0x1580fc,_0x2f18fd){var _0x29885c=moment();var _0x5d4604={'method':_0xc806('0x2e'),'uri':_0x527656+_0xc806('0x2f'),'body':{'contact':{'last_name':_0x2b8461[_0xc806('0x29')],'work_number':_0x2b8461[_0xc806('0x29')],'mobile_number':_0x2b8461[_0xc806('0x29')],'owner_id':_0x2b8461[_0xc806('0x1e')],'created_at':_0x29885c[_0xc806('0x27')]('YYYY-MM-DDTHH:mm:ss')}},'json':!![]};_0x5d4604[_0xc806('0xe')]=_0x23a387;logger['info']('Contact\x20not\x20found,\x20creating\x20a\x20new\x20contact');return rp(_0x5d4604)['then'](function(_0x17c918){_0x2b8461[_0xc806('0x2a')]=_0x17c918[_0xc806('0x30')]['id'];_0x1580fc(_0x2b8461);})[_0xc806('0x16')](function(_0x15a456){logger[_0xc806('0x17')]('['+[_0x23a532[_0xc806('0x18')]()]+']',_0x15a456[_0xc806('0x19')]);_0x2f18fd(_0x15a456['message']);});});}function getTicket(_0x507238,_0x3dc51a,_0x49f863,_0x19b58d,_0x3638af){return function(_0x228067){logger[_0xc806('0xf')](_0xc806('0x31'));return new Promise(function(_0x30cba4,_0x890863){var _0x5c5ec6=moment();var _0x316b04={'method':_0xc806('0x2e'),'uri':_0x49f863+_0xc806('0x32'),'body':{'title':intUtil[_0xc806('0x33')](_0x19b58d['Subjects'],_0x3638af,'\x20'),'description':intUtil['getString'](_0x19b58d[_0xc806('0x34')],_0x3638af,'\x0a'),'owner_id':_0x228067['userId'],'creater_id':_0x228067['adminId'],'targetable_id':_0x228067[_0xc806('0x2a')],'targetable_type':_0xc806('0x35'),'created_at':_0x5c5ec6[_0xc806('0x27')](_0xc806('0x36')),'due_date':_0x5c5ec6[_0xc806('0x37')](0x1e,'m')[_0xc806('0x27')](_0xc806('0x36'))},'json':!![]};_0x316b04[_0xc806('0xe')]=_0x3dc51a;return rp(_0x316b04)['then'](function(_0x18157d){_0x228067['ticketId']=_0x18157d[_0xc806('0x38')]['id'];logger[_0xc806('0xf')](_0xc806('0x39'),_0x228067[_0xc806('0x3a')]);_0x30cba4(_0x228067);})[_0xc806('0x16')](function(_0x48298a){logger[_0xc806('0x17')]('['+[_0x507238[_0xc806('0x18')]()]+']',_0x48298a[_0xc806('0x19')]);_0x890863(_0x48298a['message']);});});};}function emit(_0x5c18f5,_0xdb1a7,_0x19366d){var _0x522c8b={'uri':_0x5c18f5+_0xc806('0x3b')+_0x19366d};io['to'](util[_0xc806('0x27')]('user:%s',_0xdb1a7))[_0xc806('0x3c')]('trigger:browser:url',_0x522c8b);}exports['cs']=function(_0x5e5d39,_0x2d3609,_0x1b4a27,_0x53b1e0,_0x472700,_0x567699,_0x412b77,_0x34e93b){var _0x8592c4={};var _0x3577bd={'Authorization':_0xc806('0x3d')+_0x567699['apiKey']};_0x567699[_0xc806('0x3e')]=intUtil['stripTrailingSlash'](_0x567699[_0xc806('0x3e')]);_0x567699[_0xc806('0x3f')]=intUtil[_0xc806('0x40')](_0x567699[_0xc806('0x3f')]);var _0xdc81e7=_0x567699[_0xc806('0x3e')];_0x8592c4[_0xc806('0x21')]=_0x567699[_0xc806('0x41')];_0x8592c4[_0xc806('0x29')]=_0x34e93b[_0xc806('0x42')]()===_0xc806('0x43')?_0x2d3609[_0xc806('0x44')]:_0x2d3609[_0xc806('0x45')];_0x8592c4[_0xc806('0x46')]=_0x34e93b===_0xc806('0x47')||_0x34e93b===_0xc806('0x48')?_0xc806('0x47'):'outbound';if(_0x53b1e0){_0x8592c4['agentEmail']=_0x53b1e0['email'];}var _0x19fd0b=util[_0xc806('0x27')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x567699[_0xc806('0x3f')],_0x2d3609['uniqueid'],md5(_0x2d3609[_0xc806('0x49')]));if(_0x472700&&_0x472700['monitor_format']){logger['info'](_0xc806('0x4a'),_0xc806('0x4b'));_0x2d3609[_0xc806('0x4c')]=_0x19fd0b;}else if(_0x412b77&&_0x412b77[_0xc806('0x4d')]&&_0x412b77[_0xc806('0x4d')]!==_0xc806('0x4e')){logger[_0xc806('0xf')](_0xc806('0x4f'),_0xc806('0x4b'));_0x2d3609[_0xc806('0x4c')]=_0x19fd0b;}else{_0x2d3609['recordingURL']='';}return getAdminId(_0x8592c4,_0x34e93b,_0x3577bd,_0xdc81e7)[_0xc806('0x11')](getUser(_0x34e93b,_0x3577bd,_0xdc81e7))['then'](getEndUser(_0x34e93b,_0x3577bd,_0xdc81e7))[_0xc806('0x11')](getTicket(_0x34e93b,_0x3577bd,_0xdc81e7,_0x1b4a27,_0x2d3609))[_0xc806('0x11')](function(_0x556d5d){logger['info'](util[_0xc806('0x27')](_0xc806('0x50'),_0x556d5d[_0xc806('0x3a')]));if(_0x34e93b!==_0xc806('0x48')){logger[_0xc806('0xf')]('['+[_0x34e93b['toUpperCase']()]+']',_0xc806('0x51'));emit(_0xdc81e7,_0x53b1e0[_0xc806('0x52')],_0x556d5d['endUserId']);}})['catch'](function(_0x1d49f0){logger[_0xc806('0x17')]('['+[_0x34e93b[_0xc806('0x18')]()]+_0xc806('0x53'),util['inspect'](_0x1d49f0,{'showHidden':!![],'depth':null}));});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x37a2=['error','[EXEC]','format','%s\x20configuration\x20#%s\x20not\x20found','%s\x20account\x20#%s\x20not\x20found','lodash','util','./zendesk','./sugarcrm','./freshdesk','./zoho','./desk','./servicenow','./freshsales','salesforce','sugarcrm','zoho','desk','dynamics365','freshsales','servicenow','exec','includes','data1','toLowerCase','data2','data3','queue','routeId','outbound','EVENT\x20UNKNOWN','unmanaged','zendesk','freshdesk','vtiger','log','unknown\x20integration','../../../../config/logger'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0x37a2,0x181));var _0x237a=function(_0x1bdb9d,_0x25e5f3){_0x1bdb9d=_0x1bdb9d-0x0;var _0x2fa94e=_0x37a2[_0x1bdb9d];return _0x2fa94e;};'use strict';var _=require(_0x237a('0x0'));var util=require(_0x237a('0x1'));var zendesk=require(_0x237a('0x2'));var salesforce=require('./salesforce');var sugarcrm=require(_0x237a('0x3'));var freshdesk=require(_0x237a('0x4'));var zoho=require(_0x237a('0x5'));var desk=require(_0x237a('0x6'));var vtiger=require('./vtiger');var servicenow=require(_0x237a('0x7'));var dynamics365=require('./dynamics365');var freshsales=require(_0x237a('0x8'));var integrations=['zendesk',_0x237a('0x9'),_0x237a('0xa'),'freshdesk',_0x237a('0xb'),_0x237a('0xc'),'vtiger',_0x237a('0xd'),_0x237a('0xe'),_0x237a('0xf')];exports[_0x237a('0x10')]=function(_0x41c576,_0x4a15b0,_0x27a7dd,_0x1f6535,_0x13d2dc,_0x38248d){if(_0x27a7dd){if(_[_0x237a('0x11')](integrations,_0x41c576[_0x237a('0x12')][_0x237a('0x13')]())){try{var _0xcfc614=null;var _0x314018='';var _0x3be7e8=_0x27a7dd[_0x41c576['data1'][_0x237a('0x13')]()];if(_0x3be7e8){var _0x3910dc=_0x3be7e8[_0x41c576[_0x237a('0x14')]];if(_0x3910dc){var _0x46a826=_['find'](_0x3910dc['Configurations'],{'id':parseInt(_0x41c576[_0x237a('0x15')],0xa)});if(_0x46a826){if(_0x1f6535){if(_0x13d2dc&&_0x4a15b0[_0x237a('0x16')]){_0x314018='queue';}else if(_0x4a15b0[_0x237a('0x17')]){_0x314018=_0x237a('0x18');}else{console['log'](_0x237a('0x19'),_0x4a15b0);}}else{_0x314018=_0x237a('0x1a');}switch(_0x41c576[_0x237a('0x12')]['toLowerCase']()){case _0x237a('0x1b'):zendesk[_0x314018](_0x41c576,_0x4a15b0,_0x46a826,_0x1f6535,_0x13d2dc,_0x3910dc,_0x38248d);break;case _0x237a('0x9'):salesforce[_0x314018](_0x41c576,_0x4a15b0,_0x46a826,_0x1f6535,_0x13d2dc,_0x3910dc,_0x38248d);break;case _0x237a('0xa'):sugarcrm[_0x314018](_0x41c576,_0x4a15b0,_0x46a826,_0x1f6535,_0x13d2dc,_0x3910dc,_0x38248d);break;case _0x237a('0x1c'):freshdesk[_0x314018](_0x41c576,_0x4a15b0,_0x46a826,_0x1f6535,_0x13d2dc,_0x3910dc,_0x38248d);break;case'zoho':zoho[_0x314018](_0x41c576,_0x4a15b0,_0x46a826,_0x1f6535,_0x13d2dc,_0x3910dc,_0x38248d);break;case _0x237a('0xc'):desk[_0x314018](_0x41c576,_0x4a15b0,_0x46a826,_0x1f6535,_0x13d2dc,_0x3910dc,_0x38248d);break;case _0x237a('0x1d'):vtiger[_0x314018](_0x41c576,_0x4a15b0,_0x46a826,_0x1f6535,_0x13d2dc,_0x3910dc,_0x38248d);break;case _0x237a('0xe'):freshsales['cs'](_0x41c576,_0x4a15b0,_0x46a826,_0x1f6535,_0x13d2dc,_0x3910dc,_0x38248d,_0x314018);break;case _0x237a('0xf'):servicenow['cs'](_0x41c576,_0x4a15b0,_0x46a826,_0x1f6535,_0x13d2dc,_0x3910dc,_0x38248d,_0x314018);break;case _0x237a('0xd'):dynamics365['cs'](_0x41c576,_0x4a15b0,_0x46a826,_0x1f6535,_0x13d2dc,_0x3910dc,_0x38248d,_0x314018);break;default:console[_0x237a('0x1e')](_0x237a('0x1f'));}}else{_0xcfc614=require(_0x237a('0x20'))(_0x41c576[_0x237a('0x12')][_0x237a('0x13')]());_0xcfc614[_0x237a('0x21')](_0x237a('0x22'),util[_0x237a('0x23')](_0x237a('0x24'),_0x41c576[_0x237a('0x12')]['toLowerCase'](),_0x41c576[_0x237a('0x15')]));}}else{_0xcfc614=require(_0x237a('0x20'))(_0x41c576['data1'][_0x237a('0x13')]());_0xcfc614[_0x237a('0x21')](_0x237a('0x22'),util[_0x237a('0x23')](_0x237a('0x25'),_0x41c576[_0x237a('0x12')]['toLowerCase'](),_0x41c576['data2']));}}else{}}catch(_0x5030ef){console[_0x237a('0x21')](_0x5030ef);}}}};
\ No newline at end of file
+var _0x3d38=['./zendesk','./salesforce','./sugarcrm','./freshdesk','./desk','./vtiger','./servicenow','./dynamics365','./freshsales','zendesk','salesforce','sugarcrm','freshdesk','zoho','desk','freshsales','servicenow','exec','includes','data1','toLowerCase','data2','find','Configurations','data3','queue','routeId','outbound','log','EVENT\x20UNKNOWN','unmanaged','vtiger','dynamics365','../../../../config/logger','[EXEC]','format','%s\x20account\x20#%s\x20not\x20found','lodash'];(function(_0x3fd737,_0x263d58){var _0x4b9e85=function(_0x2cde35){while(--_0x2cde35){_0x3fd737['push'](_0x3fd737['shift']());}};_0x4b9e85(++_0x263d58);}(_0x3d38,0xe3));var _0x83d3=function(_0x4f1651,_0xc4ac4f){_0x4f1651=_0x4f1651-0x0;var _0x44868e=_0x3d38[_0x4f1651];return _0x44868e;};'use strict';var _=require(_0x83d3('0x0'));var util=require('util');var zendesk=require(_0x83d3('0x1'));var salesforce=require(_0x83d3('0x2'));var sugarcrm=require(_0x83d3('0x3'));var freshdesk=require(_0x83d3('0x4'));var zoho=require('./zoho');var desk=require(_0x83d3('0x5'));var vtiger=require(_0x83d3('0x6'));var servicenow=require(_0x83d3('0x7'));var dynamics365=require(_0x83d3('0x8'));var freshsales=require(_0x83d3('0x9'));var integrations=[_0x83d3('0xa'),_0x83d3('0xb'),_0x83d3('0xc'),_0x83d3('0xd'),_0x83d3('0xe'),_0x83d3('0xf'),'vtiger','dynamics365',_0x83d3('0x10'),_0x83d3('0x11')];exports[_0x83d3('0x12')]=function(_0x33413d,_0x56c09d,_0x355480,_0x45050b,_0x4bd282,_0x11c245){if(_0x355480){if(_[_0x83d3('0x13')](integrations,_0x33413d[_0x83d3('0x14')][_0x83d3('0x15')]())){try{var _0x58ea76=null;var _0x46b12a='';var _0xbabe9f=_0x355480[_0x33413d['data1'][_0x83d3('0x15')]()];if(_0xbabe9f){var _0x21702d=_0xbabe9f[_0x33413d[_0x83d3('0x16')]];if(_0x21702d){var _0x4cfd4e=_[_0x83d3('0x17')](_0x21702d[_0x83d3('0x18')],{'id':parseInt(_0x33413d[_0x83d3('0x19')],0xa)});if(_0x4cfd4e){if(_0x45050b){if(_0x4bd282&&_0x56c09d[_0x83d3('0x1a')]){_0x46b12a=_0x83d3('0x1a');}else if(_0x56c09d[_0x83d3('0x1b')]){_0x46b12a=_0x83d3('0x1c');}else{console[_0x83d3('0x1d')](_0x83d3('0x1e'),_0x56c09d);}}else{_0x46b12a=_0x83d3('0x1f');}switch(_0x33413d['data1'][_0x83d3('0x15')]()){case _0x83d3('0xa'):zendesk[_0x46b12a](_0x33413d,_0x56c09d,_0x4cfd4e,_0x45050b,_0x4bd282,_0x21702d,_0x11c245);break;case'salesforce':salesforce[_0x46b12a](_0x33413d,_0x56c09d,_0x4cfd4e,_0x45050b,_0x4bd282,_0x21702d,_0x11c245);break;case _0x83d3('0xc'):sugarcrm[_0x46b12a](_0x33413d,_0x56c09d,_0x4cfd4e,_0x45050b,_0x4bd282,_0x21702d,_0x11c245);break;case _0x83d3('0xd'):freshdesk[_0x46b12a](_0x33413d,_0x56c09d,_0x4cfd4e,_0x45050b,_0x4bd282,_0x21702d,_0x11c245);break;case _0x83d3('0xe'):zoho[_0x46b12a](_0x33413d,_0x56c09d,_0x4cfd4e,_0x45050b,_0x4bd282,_0x21702d,_0x11c245);break;case _0x83d3('0xf'):desk[_0x46b12a](_0x33413d,_0x56c09d,_0x4cfd4e,_0x45050b,_0x4bd282,_0x21702d,_0x11c245);break;case _0x83d3('0x20'):vtiger[_0x46b12a](_0x33413d,_0x56c09d,_0x4cfd4e,_0x45050b,_0x4bd282,_0x21702d,_0x11c245);break;case _0x83d3('0x10'):freshsales['cs'](_0x33413d,_0x56c09d,_0x4cfd4e,_0x45050b,_0x4bd282,_0x21702d,_0x11c245,_0x46b12a);break;case _0x83d3('0x11'):servicenow['cs'](_0x33413d,_0x56c09d,_0x4cfd4e,_0x45050b,_0x4bd282,_0x21702d,_0x11c245,_0x46b12a);break;case _0x83d3('0x21'):dynamics365['cs'](_0x33413d,_0x56c09d,_0x4cfd4e,_0x45050b,_0x4bd282,_0x21702d,_0x11c245,_0x46b12a);break;default:console[_0x83d3('0x1d')]('unknown\x20integration');}}else{_0x58ea76=require(_0x83d3('0x22'))(_0x33413d[_0x83d3('0x14')][_0x83d3('0x15')]());_0x58ea76['error'](_0x83d3('0x23'),util[_0x83d3('0x24')]('%s\x20configuration\x20#%s\x20not\x20found',_0x33413d[_0x83d3('0x14')][_0x83d3('0x15')](),_0x33413d['data3']));}}else{_0x58ea76=require('../../../../config/logger')(_0x33413d[_0x83d3('0x14')][_0x83d3('0x15')]());_0x58ea76['error'](_0x83d3('0x23'),util['format'](_0x83d3('0x25'),_0x33413d[_0x83d3('0x14')][_0x83d3('0x15')](),_0x33413d[_0x83d3('0x16')]));}}else{}}catch(_0x250803){console['error'](_0x250803);}}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xba83=['user:%s','newTab','trigger:browser:url','%s/%s/e','instanceUrl','error','[QUEUE]\x20Salesforce\x20account\x20type\x20not\x20recognized.','catch','outbound','recordingFormat','none','destcalleridnum','[OUTBOUND]\x20Ticket\x20%s\x20created.','[OUTBOUND]\x20Displaying\x20ticket\x20%s\x20to\x20agent\x20%s.\x20Integration\x20account\x20type\x20%s.','trigger:salesforce:display','[OUTBOUND]','Salesforce\x20account\x20type\x20not\x20recognized','monitor_format','lastevent','toUpperCase',']\x20Ticket\x20%s\x20created.',']\x20Integration\x20account\x20type\x20%s.','lodash','request-promise','moment','bluebird','md5','util','ioredis','./util','../../../../config/environment','../../../../config/logger','salesforce','redis','localhost','socket.io-emitter','emit','getString','Descriptions','ticketType','ActivityDate','utc','IsReminderSet','IsRecurrence','endUserType','contact','lead','WhoId','account','WhatId','AccountId','info','Association\x20between\x20Case\x20and\x20Lead\x20skipped','sobject','create','isNil','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','Searching\x20enduser\x20with\x20phone\x20%s.\x20Serching\x20method\x20used\x20%s.','cloneDeep','additionalSearchContact','merge','$or','Contact','find','additionalSearchLead','Lead','additionalSearchAccount','Account','first','Phone','attributes','toLowerCase','Enduser\x20with\x20phone\x20%s\x20not\x20found','moduleCreate','LastName','<unknown>','Caller\x20-\x20%s','format','Company','No\x20Company','Enduser\x20with\x20phone\x20%s.\x20Creating\x20method\x20used\x20%s.','string','picklist','idField','content','type','variable','variableName','toString','customVariable','Variable','name','concat','Connection','remoteUri','https://login.salesforce.com','clientId','clientSecret','Connection\x20established.','queue','serverUrl','stripTrailingSlash','[QUEUE]','Recording\x20is\x20enabled!','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','recordingURL','email','calleridname','calleridnum','Fields','[QUEUE]\x20Displaying\x20ticket\x20%s\x20to\x20agent\x20%s.\x20Integration\x20account\x20type\x20%s.'];(function(_0x36153d,_0x4fed67){var _0xfdacff=function(_0x2ad55d){while(--_0x2ad55d){_0x36153d['push'](_0x36153d['shift']());}};_0xfdacff(++_0x4fed67);}(_0xba83,0x184));var _0x3ba8=function(_0x179b53,_0x31f6fe){_0x179b53=_0x179b53-0x0;var _0x38a146=_0xba83[_0x179b53];return _0x38a146;};'use strict';var _=require(_0x3ba8('0x0'));var rp=require(_0x3ba8('0x1'));var moment=require(_0x3ba8('0x2'));var BPromise=require(_0x3ba8('0x3'));var md5=require(_0x3ba8('0x4'));var jsforce=require('jsforce');var util=require(_0x3ba8('0x5'));var Redis=require(_0x3ba8('0x6'));var intUtil=require(_0x3ba8('0x7'));var config=require(_0x3ba8('0x8'));var logger=require(_0x3ba8('0x9'))(_0x3ba8('0xa'));config[_0x3ba8('0xb')]=_['defaults'](config['redis'],{'host':_0x3ba8('0xc'),'port':0x18eb});var io=require(_0x3ba8('0xd'))(new Redis(config[_0x3ba8('0xb')]));function emit(_0x24a4af,_0x58e403,_0x44d13e){io['to'](_0x24a4af)[_0x3ba8('0xe')](_0x58e403,_0x44d13e);}function getTicket(_0x1f16d0,_0x469c17,_0x5d1943,_0x48e47b,_0x2d619e,_0x42491b,_0x4a9077,_0x33fc84){var _0x24c4cd=Object['assign']({},{'OwnerId':_0x469c17['id'],'Subject':intUtil['getString'](_0x48e47b['Subjects'],_0x2d619e,'\x20'),'Description':intUtil[_0x3ba8('0xf')](_0x48e47b[_0x3ba8('0x10')],_0x2d619e,'\x0a')},getCustomFields(_0x42491b,_0x2d619e));if(_0x5d1943){if(_0x48e47b[_0x3ba8('0x11')]==='Task'){_0x24c4cd[_0x3ba8('0x12')]=moment[_0x3ba8('0x13')]();_0x24c4cd[_0x3ba8('0x14')]=![];_0x24c4cd[_0x3ba8('0x15')]=![];if(_0x5d1943[_0x3ba8('0x16')]===_0x3ba8('0x17')||_0x5d1943['endUserType']===_0x3ba8('0x18')){_0x24c4cd[_0x3ba8('0x19')]=_0x5d1943['id'];}else if(_0x5d1943[_0x3ba8('0x16')]===_0x3ba8('0x1a')){_0x24c4cd[_0x3ba8('0x1b')]=_0x5d1943['id'];}}else if(_0x48e47b[_0x3ba8('0x11')]==='Case'){if(_0x5d1943[_0x3ba8('0x16')]===_0x3ba8('0x17')){_0x24c4cd['ContactId']=_0x5d1943['id'];}else if(_0x5d1943[_0x3ba8('0x16')]===_0x3ba8('0x1a')){_0x24c4cd[_0x3ba8('0x1c')]=_0x5d1943['id'];}else if(_0x5d1943[_0x3ba8('0x16')]===_0x3ba8('0x18')&&_0x48e47b['leadId']){_0x24c4cd[_0x48e47b['leadId']]=_0x5d1943['id'];}else{logger[_0x3ba8('0x1d')](_0x3ba8('0x1e'));}}}return _0x4a9077[_0x3ba8('0x1f')](_0x48e47b['ticketType'])[_0x3ba8('0x20')](_0x24c4cd);}function getUser(_0x1917dc,_0x1a3666,_0x566f43){if(!_[_0x3ba8('0x21')](_0x1a3666)&&intUtil['validateEmail'](_0x1a3666)){var _0x2ee46f={'Email':_0x1a3666};var _0x368889={'Id':!![],'Username':!![],'Name':!![],'Email':!![]};return _0x566f43['sobject']('User')['find'](_0x2ee46f,_0x368889)[_0x3ba8('0x22')]()[_0x3ba8('0x23')](function(_0x139804){if(_0x139804[_0x3ba8('0x24')]){var _0x1be1dd=_['find'](_0x139804,function(_0x594e57){return _0x594e57[_0x3ba8('0x25')]===_0x1a3666;});if(_0x1be1dd){logger[_0x3ba8('0x1d')](_0x3ba8('0x26'),_0x1a3666);return BPromise[_0x3ba8('0x27')]({'id':_0x1be1dd['Id'],'name':_0x1be1dd[_0x3ba8('0x28')]});}}else{logger[_0x3ba8('0x1d')](_0x3ba8('0x29'),_0x1a3666);return _0x566f43[_0x3ba8('0x2a')]()['then'](function(_0x255131){return BPromise[_0x3ba8('0x27')]({'id':_0x255131[_0x3ba8('0x2b')],'name':_0x255131[_0x3ba8('0x2c')]});});}});}else{logger[_0x3ba8('0x1d')](_0x3ba8('0x29'),_0x1a3666);return _0x566f43[_0x3ba8('0x2a')]()['then'](function(_0x5c1250){return BPromise[_0x3ba8('0x27')]({'id':_0x5c1250[_0x3ba8('0x2b')],'name':_0x5c1250[_0x3ba8('0x2c')]});});}}function getEndUser(_0x1dfc90,_0x52465f,_0x2d2b2c,_0x41fa8c,_0xe0e41b){var _0x43fd8d={'$or':{'Phone':_0x41fa8c}};var _0x57c328={'Id':!![],'Name':!![],'Phone':!![]};return BPromise[_0x3ba8('0x27')]()['then'](function(){logger['info'](_0x3ba8('0x2d'),_0x41fa8c,_0x52465f['moduleSearch']);switch(_0x52465f['moduleSearch']){case'contact_lead':var _0x272ef6=_[_0x3ba8('0x2e')](_0x43fd8d);if(_0x52465f[_0x3ba8('0x2f')]){var _0x501973={};_0x501973[_0x52465f[_0x3ba8('0x2f')]]=_0x41fa8c;_[_0x3ba8('0x30')](_0x272ef6[_0x3ba8('0x31')],_0x501973);}return _0xe0e41b[_0x3ba8('0x1f')](_0x3ba8('0x32'))[_0x3ba8('0x33')](_0x272ef6,_0x57c328)[_0x3ba8('0x22')]()[_0x3ba8('0x23')](function(_0x1689c7){if(_0x1689c7&&_0x1689c7[_0x3ba8('0x24')]){return _0x1689c7;}else{var _0x142fc5=_[_0x3ba8('0x2e')](_0x43fd8d);if(_0x52465f[_0x3ba8('0x34')]){var _0x3c4340={};_0x3c4340[_0x52465f[_0x3ba8('0x34')]]=_0x41fa8c;_[_0x3ba8('0x30')](_0x142fc5['$or'],_0x3c4340);}return _0xe0e41b[_0x3ba8('0x1f')](_0x3ba8('0x35'))['find'](_0x142fc5,_0x57c328);}});case'account_contact_lead':var _0x137296=_[_0x3ba8('0x2e')](_0x43fd8d);if(_0x52465f['additionalSearchAccount']){var _0x501973={};_0x501973[_0x52465f[_0x3ba8('0x36')]]=_0x41fa8c;_['merge'](_0x137296[_0x3ba8('0x31')],_0x501973);}return _0xe0e41b[_0x3ba8('0x1f')](_0x3ba8('0x37'))[_0x3ba8('0x33')](_0x137296,_0x57c328)[_0x3ba8('0x22')]()[_0x3ba8('0x23')](function(_0x2ebff7){if(_0x2ebff7&&_0x2ebff7['length']){return _0x2ebff7;}else{var _0x4d3976=_[_0x3ba8('0x2e')](_0x43fd8d);if(_0x52465f[_0x3ba8('0x2f')]){var _0x460f2c={};_0x460f2c[_0x52465f['additionalSearchContact']]=_0x41fa8c;_['merge'](_0x4d3976[_0x3ba8('0x31')],_0x460f2c);}return _0xe0e41b[_0x3ba8('0x1f')](_0x3ba8('0x32'))[_0x3ba8('0x33')](_0x4d3976,_0x57c328)[_0x3ba8('0x23')](function(_0x4f0e85){if(_0x4f0e85&&_0x4f0e85[_0x3ba8('0x24')]){return _0x4f0e85;}else{var _0xee2adc=_['cloneDeep'](_0x43fd8d);if(_0x52465f[_0x3ba8('0x34')]){var _0x1cfbe7={};_0x1cfbe7[_0x52465f[_0x3ba8('0x34')]]=_0x41fa8c;_[_0x3ba8('0x30')](_0xee2adc[_0x3ba8('0x31')],_0x1cfbe7);}return _0xe0e41b[_0x3ba8('0x1f')](_0x3ba8('0x35'))[_0x3ba8('0x33')](_0xee2adc,_0x57c328);}});}});case'contact':var _0x272ef6=_[_0x3ba8('0x2e')](_0x43fd8d);if(_0x52465f[_0x3ba8('0x2f')]){var _0x501973={};_0x501973[_0x52465f[_0x3ba8('0x2f')]]=_0x41fa8c;_['merge'](_0x272ef6[_0x3ba8('0x31')],_0x501973);}return _0xe0e41b['sobject'](_0x3ba8('0x32'))[_0x3ba8('0x33')](_0x272ef6,_0x57c328)[_0x3ba8('0x22')]();case _0x3ba8('0x18'):var _0x285de3=_[_0x3ba8('0x2e')](_0x43fd8d);if(_0x52465f[_0x3ba8('0x34')]){var _0x501973={};_0x501973[_0x52465f[_0x3ba8('0x34')]]=_0x41fa8c;_[_0x3ba8('0x30')](_0x285de3[_0x3ba8('0x31')],_0x501973);}return _0xe0e41b[_0x3ba8('0x1f')](_0x3ba8('0x35'))[_0x3ba8('0x33')](_0x285de3,_0x57c328);case _0x3ba8('0x1a'):var _0x137296=_['cloneDeep'](_0x43fd8d);if(_0x52465f[_0x3ba8('0x36')]){var _0x501973={};_0x501973[_0x52465f['additionalSearchAccount']]=_0x41fa8c;_[_0x3ba8('0x30')](_0x137296['$or'],_0x501973);}return _0xe0e41b[_0x3ba8('0x1f')](_0x3ba8('0x37'))[_0x3ba8('0x33')](_0x137296,_0x57c328);default:return null;}})[_0x3ba8('0x23')](function(_0x37a60b){if(_0x37a60b&&_0x37a60b[_0x3ba8('0x24')]){var _0x68bedb=_[_0x3ba8('0x38')](_0x37a60b);if(_0x68bedb){return BPromise[_0x3ba8('0x27')]({'id':_0x68bedb['Id'],'name':_0x68bedb['Name'],'phone':_0x68bedb[_0x3ba8('0x39')],'endUserType':_0x68bedb[_0x3ba8('0x3a')]['type'][_0x3ba8('0x3b')]()});}}})[_0x3ba8('0x23')](function(_0x43a556){if(_0x43a556){logger[_0x3ba8('0x1d')]('Enduser\x20(%s)\x20with\x20phone\x20%s\x20found',_0x43a556[_0x3ba8('0x16')],_0x41fa8c);return BPromise[_0x3ba8('0x27')](_0x43a556);}else{logger[_0x3ba8('0x1d')](_0x3ba8('0x3c'),_0x41fa8c);var _0x2428fa={'Phone':_0x41fa8c};if(_0x52465f[_0x3ba8('0x3d')]){if(_0x52465f['moduleCreate']===_0x3ba8('0x17')){logger[_0x3ba8('0x1d')]('Enduser\x20with\x20phone\x20%s.\x20Creating\x20method\x20used\x20%s.',_0x41fa8c,_0x52465f['moduleCreate']);_0x2428fa[_0x3ba8('0x3e')]=_0x2d2b2c!==_0x3ba8('0x3f')?_0x2d2b2c:util['format'](_0x3ba8('0x40'),_0x41fa8c);}else if(_0x52465f[_0x3ba8('0x3d')]==='lead'){logger[_0x3ba8('0x1d')]('Enduser\x20with\x20phone\x20%s.\x20Creating\x20method\x20used\x20%s.',_0x41fa8c,_0x52465f[_0x3ba8('0x3d')]);_0x2428fa['LastName']=_0x2d2b2c!==_0x3ba8('0x3f')?_0x2d2b2c:util[_0x3ba8('0x41')](_0x3ba8('0x40'),_0x41fa8c);_0x2428fa[_0x3ba8('0x42')]=_0x3ba8('0x43');}else if(_0x52465f[_0x3ba8('0x3d')]===_0x3ba8('0x1a')){logger['info'](_0x3ba8('0x44'),_0x41fa8c,_0x52465f[_0x3ba8('0x3d')]);_0x2428fa[_0x3ba8('0x28')]=_0x2d2b2c!==_0x3ba8('0x3f')?_0x2d2b2c:util['format']('Caller\x20-\x20%s',_0x41fa8c);}else{return null;}}return _0xe0e41b['sobject'](_['upperFirst'](_0x52465f[_0x3ba8('0x3d')]))[_0x3ba8('0x20')](_0x2428fa)['then'](function(_0x35294a){return BPromise[_0x3ba8('0x27')]({'id':_0x35294a['id'],'endUserType':_0x52465f[_0x3ba8('0x3d')]});});}});}function getCustomFields(_0x33538d,_0x67a766){var _0x5ee377={};if(_0x33538d[_0x3ba8('0x24')]>0x0){_['forEach'](_0x33538d,function(_0xa7a290){if(_['includes']([_0x3ba8('0x45'),_0x3ba8('0x46')],_0xa7a290['type'])&&_0xa7a290[_0x3ba8('0x47')]){_0x5ee377[_0xa7a290[_0x3ba8('0x47')]]=_0xa7a290[_0x3ba8('0x48')]['toString']();}else if(_0xa7a290[_0x3ba8('0x49')]===_0x3ba8('0x4a')&&_0xa7a290[_0x3ba8('0x4b')]&&_0xa7a290[_0x3ba8('0x47')]){_0x67a766[_0xa7a290[_0x3ba8('0x4b')]]&&(_0x5ee377[_0xa7a290[_0x3ba8('0x47')]]=_0x67a766[_0xa7a290[_0x3ba8('0x4b')]][_0x3ba8('0x4c')]());}else if(_0xa7a290['type']===_0x3ba8('0x4d')&&_0xa7a290[_0x3ba8('0x4e')]&&_0xa7a290['Variable'][_0x3ba8('0x4f')]&&_0xa7a290['idField']){_0x67a766[_0xa7a290[_0x3ba8('0x4e')][_0x3ba8('0x4f')][_0x3ba8('0x3b')]()]&&(_0x5ee377[_0xa7a290[_0x3ba8('0x47')]]=_0x67a766[_0xa7a290['Variable']['name'][_0x3ba8('0x3b')]()][_0x3ba8('0x4c')]());}});}return _0x5ee377;}function getConnection(_0x5e2134){var _0x1f60d5=_0x5e2134['password'][_0x3ba8('0x50')](_0x5e2134['securityToken']);var _0x5c04d5=new jsforce[(_0x3ba8('0x51'))]({'oauth2':{'loginUrl':_0x5e2134[_0x3ba8('0x52')]||_0x3ba8('0x53'),'clientId':_0x5e2134[_0x3ba8('0x54')],'clientSecret':_0x5e2134[_0x3ba8('0x55')]}});return _0x5c04d5['login'](_0x5e2134['username'],_0x1f60d5)[_0x3ba8('0x23')](function(){logger[_0x3ba8('0x1d')](_0x3ba8('0x56'));return _0x5c04d5;});}exports[_0x3ba8('0x57')]=function(_0x18fed5,_0x4dae66,_0x2dbfc5,_0xd90f5e,_0x32ee73,_0x1aacba){var _0x40ffbb,_0x136324,_0x25cdef,_0x503ed7;_0x1aacba[_0x3ba8('0x58')]=intUtil[_0x3ba8('0x59')](_0x1aacba[_0x3ba8('0x58')]);_0x1aacba[_0x3ba8('0x52')]=intUtil[_0x3ba8('0x59')](_0x1aacba[_0x3ba8('0x52')]);if(_0x32ee73&&_0x32ee73['monitor_format']){logger['info'](_0x3ba8('0x5a'),_0x3ba8('0x5b'));_0x4dae66['recordingURL']=util['format'](_0x3ba8('0x5c'),_0x1aacba['serverUrl'],_0x4dae66['uniqueid'],md5(_0x4dae66[_0x3ba8('0x5d')]));}else{_0x4dae66[_0x3ba8('0x5e')]='';}return getConnection(_0x1aacba)[_0x3ba8('0x23')](function(_0x13670f){_0x503ed7=_0x13670f;return getUser(_0x1aacba,_0xd90f5e[_0x3ba8('0x5f')],_0x503ed7);})[_0x3ba8('0x23')](function(_0x1322ba){_0x40ffbb=_0x1322ba;return getEndUser(_0x1aacba,_0x2dbfc5,_0x4dae66[_0x3ba8('0x60')],_0x4dae66[_0x3ba8('0x61')],_0x503ed7);})[_0x3ba8('0x23')](function(_0x3568fc){_0x136324=_0x3568fc;return getTicket(_0x1aacba,_0x40ffbb,_0x136324,_0x2dbfc5,_0x4dae66,_0x2dbfc5[_0x3ba8('0x62')],_0x503ed7,_0x3ba8('0x57'));})[_0x3ba8('0x23')](function(_0x24e447){_0x25cdef=_0x24e447;logger[_0x3ba8('0x1d')]('[QUEUE]\x20Ticket\x20%s\x20created',_0x25cdef['id']);logger[_0x3ba8('0x1d')](_0x3ba8('0x63'),_0x25cdef['id'],_0xd90f5e[_0x3ba8('0x4f')],_0x1aacba[_0x3ba8('0x49')]);switch(_0x1aacba['type']){case'integrationTab':emit(util[_0x3ba8('0x41')](_0x3ba8('0x64'),_0xd90f5e['name']),'trigger:salesforce:display',{'recordId':_0x25cdef['id']});break;case _0x3ba8('0x65'):emit(util['format'](_0x3ba8('0x64'),_0xd90f5e[_0x3ba8('0x4f')]),_0x3ba8('0x66'),{'uri':util[_0x3ba8('0x41')](_0x3ba8('0x67'),_0x503ed7[_0x3ba8('0x68')],_0x25cdef['id'])});break;default:logger[_0x3ba8('0x69')](_0x3ba8('0x6a'));}})[_0x3ba8('0x6b')](function(_0x52a58a){logger[_0x3ba8('0x69')](_0x3ba8('0x5a'),_0x52a58a);});};exports[_0x3ba8('0x6c')]=function(_0x5185b8,_0x10455a,_0x5a582e,_0x2c41c9,_0x4984bf,_0x1734a5,_0x50781a){var _0x15f7b1,_0x38932f,_0x549cc7,_0x3c28d7;_0x1734a5[_0x3ba8('0x58')]=intUtil[_0x3ba8('0x59')](_0x1734a5[_0x3ba8('0x58')]);_0x1734a5[_0x3ba8('0x52')]=intUtil['stripTrailingSlash'](_0x1734a5[_0x3ba8('0x52')]);if(_0x50781a&&_0x50781a['recordingFormat']&&_0x50781a[_0x3ba8('0x6d')]!==_0x3ba8('0x6e')){logger[_0x3ba8('0x1d')]('[OUTBOUND]','Recording\x20is\x20enabled!');_0x10455a[_0x3ba8('0x5e')]=util[_0x3ba8('0x41')](_0x3ba8('0x5c'),_0x1734a5['serverUrl'],_0x10455a[_0x3ba8('0x5d')],md5(_0x10455a['uniqueid']));}return getConnection(_0x1734a5)[_0x3ba8('0x23')](function(_0x559cba){_0x3c28d7=_0x559cba;return getUser(_0x1734a5,_0x2c41c9['email'],_0x3c28d7);})[_0x3ba8('0x23')](function(_0x4ec050){_0x15f7b1=_0x4ec050;return getEndUser(_0x1734a5,_0x5a582e,_0x10455a['destcalleridname'],_0x10455a[_0x3ba8('0x6f')],_0x3c28d7);})[_0x3ba8('0x23')](function(_0xdab820){_0x38932f=_0xdab820;return getTicket(_0x1734a5,_0x15f7b1,_0x38932f,_0x5a582e,_0x10455a,_0x5a582e[_0x3ba8('0x62')],_0x3c28d7,_0x3ba8('0x6c'));})[_0x3ba8('0x23')](function(_0x4ba15f){_0x549cc7=_0x4ba15f;logger[_0x3ba8('0x1d')](_0x3ba8('0x70'),_0x549cc7['id']);logger[_0x3ba8('0x1d')](_0x3ba8('0x71'),_0x549cc7['id'],_0x2c41c9[_0x3ba8('0x4f')],_0x1734a5[_0x3ba8('0x49')]);switch(_0x1734a5[_0x3ba8('0x49')]){case'integrationTab':emit(util[_0x3ba8('0x41')](_0x3ba8('0x64'),_0x2c41c9[_0x3ba8('0x4f')]),_0x3ba8('0x72'),{'recordId':_0x549cc7['id']});break;case _0x3ba8('0x65'):emit(util[_0x3ba8('0x41')](_0x3ba8('0x64'),_0x2c41c9[_0x3ba8('0x4f')]),_0x3ba8('0x66'),{'uri':util[_0x3ba8('0x41')](_0x3ba8('0x67'),_0x3c28d7[_0x3ba8('0x68')],_0x549cc7['id'])});break;default:logger[_0x3ba8('0x69')](_0x3ba8('0x73'),_0x3ba8('0x74'));}})[_0x3ba8('0x6b')](function(_0x4c8727){logger[_0x3ba8('0x69')](_0x3ba8('0x73'),_0x4c8727);});};exports['unmanaged']=function(_0x17a497,_0x4ffdf5,_0x51a24e,_0x5d69a8,_0x50cb22,_0x306d1d){var _0x5be11f,_0x210eef,_0x5bd0b2,_0x3aef7d;_0x306d1d[_0x3ba8('0x58')]=intUtil[_0x3ba8('0x59')](_0x306d1d[_0x3ba8('0x58')]);_0x306d1d[_0x3ba8('0x52')]=intUtil[_0x3ba8('0x59')](_0x306d1d[_0x3ba8('0x52')]);if(_0x50cb22&&_0x50cb22[_0x3ba8('0x75')]){logger['info']('['+_0x4ffdf5[_0x3ba8('0x76')][_0x3ba8('0x77')]()+']',_0x3ba8('0x5b'));_0x4ffdf5[_0x3ba8('0x5e')]=util[_0x3ba8('0x41')](_0x3ba8('0x5c'),_0x306d1d[_0x3ba8('0x58')],_0x4ffdf5['uniqueid'],md5(_0x4ffdf5[_0x3ba8('0x5d')]));}else{_0x4ffdf5[_0x3ba8('0x5e')]='';}return getConnection(_0x306d1d)[_0x3ba8('0x23')](function(_0x391fe4){_0x3aef7d=_0x391fe4;if(!_[_0x3ba8('0x21')](_0x5d69a8)){return getUser(_0x306d1d,_0x5d69a8['name'],_0x3aef7d);}else{return getUser(_0x306d1d,null,_0x3aef7d);}})[_0x3ba8('0x23')](function(_0x5e0ba4){_0x5be11f=_0x5e0ba4;return getEndUser(_0x306d1d,_0x51a24e,_0x4ffdf5[_0x3ba8('0x60')],_0x4ffdf5[_0x3ba8('0x61')],_0x3aef7d);})[_0x3ba8('0x23')](function(_0x483ade){_0x210eef=_0x483ade;return getTicket(_0x306d1d,_0x5be11f,_0x210eef,_0x51a24e,_0x4ffdf5,_0x51a24e[_0x3ba8('0x62')],_0x3aef7d);})[_0x3ba8('0x23')](function(_0x20f487){_0x5bd0b2=_0x20f487;logger[_0x3ba8('0x1d')]('['+_0x4ffdf5[_0x3ba8('0x76')][_0x3ba8('0x77')]()+_0x3ba8('0x78'),_0x5bd0b2['id']);logger[_0x3ba8('0x1d')]('['+_0x4ffdf5[_0x3ba8('0x76')][_0x3ba8('0x77')]()+_0x3ba8('0x79'),_0x306d1d[_0x3ba8('0x49')]);})[_0x3ba8('0x6b')](function(_0x9eb231){logger['error']('['+_0x4ffdf5[_0x3ba8('0x76')][_0x3ba8('0x77')]()+']',_0x9eb231);});};
\ No newline at end of file
+var _0xeac6=['length','find','Email','resolve','Name','identity','user_id','display_name','Agent\x20%s\x20not\x20found.\x20Switch\x20to\x20the\x20admin\x20account.','moduleSearch','contact_lead','additionalSearchContact','merge','Contact','additionalSearchLead','$or','Lead','cloneDeep','additionalSearchAccount','Account','execute','first','type','toLowerCase','Enduser\x20(%s)\x20with\x20phone\x20%s\x20found','moduleCreate','Enduser\x20with\x20phone\x20%s.\x20Creating\x20method\x20used\x20%s.','LastName','Caller\x20-\x20%s','<unknown>','Company','No\x20Company','format','upperFirst','forEach','includes','string','idField','content','variableName','toString','customVariable','Variable','name','concat','securityToken','Connection','remoteUri','https://login.salesforce.com','clientId','clientSecret','login','Connection\x20established.','queue','serverUrl','stripTrailingSlash','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','user:%s','trigger:salesforce:display','trigger:browser:url','%s/%s/e','instanceUrl','error','[QUEUE]\x20Salesforce\x20account\x20type\x20not\x20recognized.','catch','[QUEUE]','outbound','recordingFormat','[OUTBOUND]','[OUTBOUND]\x20Ticket\x20%s\x20created.','[OUTBOUND]\x20Displaying\x20ticket\x20%s\x20to\x20agent\x20%s.\x20Integration\x20account\x20type\x20%s.','newTab','Salesforce\x20account\x20type\x20not\x20recognized','unmanaged','monitor_format','lastevent','toUpperCase','lodash','bluebird','md5','util','ioredis','./util','../../../../config/environment','../../../../config/logger','redis','defaults','localhost','socket.io-emitter','assign','getString','Subjects','ticketType','Task','ActivityDate','utc','IsReminderSet','IsRecurrence','endUserType','contact','lead','WhoId','account','Case','AccountId','leadId','info','sobject','create','isNil','validateEmail','User','then'];(function(_0x57fda8,_0x5e80a0){var _0x11c895=function(_0xd08d0e){while(--_0xd08d0e){_0x57fda8['push'](_0x57fda8['shift']());}};_0x11c895(++_0x5e80a0);}(_0xeac6,0xd2));var _0x6eac=function(_0x394784,_0x10527f){_0x394784=_0x394784-0x0;var _0x3805e5=_0xeac6[_0x394784];return _0x3805e5;};'use strict';var _=require(_0x6eac('0x0'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x6eac('0x1'));var md5=require(_0x6eac('0x2'));var jsforce=require('jsforce');var util=require(_0x6eac('0x3'));var Redis=require(_0x6eac('0x4'));var intUtil=require(_0x6eac('0x5'));var config=require(_0x6eac('0x6'));var logger=require(_0x6eac('0x7'))('salesforce');config[_0x6eac('0x8')]=_[_0x6eac('0x9')](config[_0x6eac('0x8')],{'host':_0x6eac('0xa'),'port':0x18eb});var io=require(_0x6eac('0xb'))(new Redis(config[_0x6eac('0x8')]));function emit(_0x33e15d,_0x58b643,_0x48f632){io['to'](_0x33e15d)['emit'](_0x58b643,_0x48f632);}function getTicket(_0x412bb0,_0x496137,_0x3cd7b8,_0xcbb8da,_0x2cf024,_0x5d9078,_0xe2be46,_0x1c9153){var _0x1c9639=Object[_0x6eac('0xc')]({},{'OwnerId':_0x496137['id'],'Subject':intUtil[_0x6eac('0xd')](_0xcbb8da[_0x6eac('0xe')],_0x2cf024,'\x20'),'Description':intUtil['getString'](_0xcbb8da['Descriptions'],_0x2cf024,'\x0a')},getCustomFields(_0x5d9078,_0x2cf024));if(_0x3cd7b8){if(_0xcbb8da[_0x6eac('0xf')]===_0x6eac('0x10')){_0x1c9639[_0x6eac('0x11')]=moment[_0x6eac('0x12')]();_0x1c9639[_0x6eac('0x13')]=![];_0x1c9639[_0x6eac('0x14')]=![];if(_0x3cd7b8[_0x6eac('0x15')]===_0x6eac('0x16')||_0x3cd7b8[_0x6eac('0x15')]===_0x6eac('0x17')){_0x1c9639[_0x6eac('0x18')]=_0x3cd7b8['id'];}else if(_0x3cd7b8[_0x6eac('0x15')]===_0x6eac('0x19')){_0x1c9639['WhatId']=_0x3cd7b8['id'];}}else if(_0xcbb8da[_0x6eac('0xf')]===_0x6eac('0x1a')){if(_0x3cd7b8[_0x6eac('0x15')]==='contact'){_0x1c9639['ContactId']=_0x3cd7b8['id'];}else if(_0x3cd7b8[_0x6eac('0x15')]==='account'){_0x1c9639[_0x6eac('0x1b')]=_0x3cd7b8['id'];}else if(_0x3cd7b8['endUserType']==='lead'&&_0xcbb8da['leadId']){_0x1c9639[_0xcbb8da[_0x6eac('0x1c')]]=_0x3cd7b8['id'];}else{logger[_0x6eac('0x1d')]('Association\x20between\x20Case\x20and\x20Lead\x20skipped');}}}return _0xe2be46[_0x6eac('0x1e')](_0xcbb8da['ticketType'])[_0x6eac('0x1f')](_0x1c9639);}function getUser(_0x18c1b9,_0x295fbb,_0x5540cd){if(!_[_0x6eac('0x20')](_0x295fbb)&&intUtil[_0x6eac('0x21')](_0x295fbb)){var _0x54e39b={'Email':_0x295fbb};var _0x10e91a={'Id':!![],'Username':!![],'Name':!![],'Email':!![]};return _0x5540cd[_0x6eac('0x1e')](_0x6eac('0x22'))['find'](_0x54e39b,_0x10e91a)['execute']()[_0x6eac('0x23')](function(_0x395e50){if(_0x395e50[_0x6eac('0x24')]){var _0x44d38b=_[_0x6eac('0x25')](_0x395e50,function(_0x52baea){return _0x52baea[_0x6eac('0x26')]===_0x295fbb;});if(_0x44d38b){logger[_0x6eac('0x1d')]('Agent\x20%s\x20found.',_0x295fbb);return BPromise[_0x6eac('0x27')]({'id':_0x44d38b['Id'],'name':_0x44d38b[_0x6eac('0x28')]});}}else{logger[_0x6eac('0x1d')]('Agent\x20%s\x20not\x20found.\x20Switch\x20to\x20the\x20admin\x20account.',_0x295fbb);return _0x5540cd[_0x6eac('0x29')]()[_0x6eac('0x23')](function(_0x47815a){return BPromise[_0x6eac('0x27')]({'id':_0x47815a[_0x6eac('0x2a')],'name':_0x47815a[_0x6eac('0x2b')]});});}});}else{logger['info'](_0x6eac('0x2c'),_0x295fbb);return _0x5540cd[_0x6eac('0x29')]()[_0x6eac('0x23')](function(_0x38dd7e){return BPromise[_0x6eac('0x27')]({'id':_0x38dd7e['user_id'],'name':_0x38dd7e[_0x6eac('0x2b')]});});}}function getEndUser(_0x3f0854,_0x9acdd6,_0x4ad5f6,_0x1c2aa0,_0x124ac7){var _0x1ea64c={'$or':{'Phone':_0x1c2aa0}};var _0x4c75cd={'Id':!![],'Name':!![],'Phone':!![]};return BPromise[_0x6eac('0x27')]()[_0x6eac('0x23')](function(){logger[_0x6eac('0x1d')]('Searching\x20enduser\x20with\x20phone\x20%s.\x20Serching\x20method\x20used\x20%s.',_0x1c2aa0,_0x9acdd6[_0x6eac('0x2d')]);switch(_0x9acdd6[_0x6eac('0x2d')]){case _0x6eac('0x2e'):var _0x43560a=_['cloneDeep'](_0x1ea64c);if(_0x9acdd6[_0x6eac('0x2f')]){var _0x4fa74c={};_0x4fa74c[_0x9acdd6[_0x6eac('0x2f')]]=_0x1c2aa0;_[_0x6eac('0x30')](_0x43560a['$or'],_0x4fa74c);}return _0x124ac7[_0x6eac('0x1e')](_0x6eac('0x31'))[_0x6eac('0x25')](_0x43560a,_0x4c75cd)['execute']()['then'](function(_0x1096ff){if(_0x1096ff&&_0x1096ff[_0x6eac('0x24')]){return _0x1096ff;}else{var _0x1e2218=_['cloneDeep'](_0x1ea64c);if(_0x9acdd6[_0x6eac('0x32')]){var _0x4fdfa3={};_0x4fdfa3[_0x9acdd6[_0x6eac('0x32')]]=_0x1c2aa0;_['merge'](_0x1e2218[_0x6eac('0x33')],_0x4fdfa3);}return _0x124ac7[_0x6eac('0x1e')](_0x6eac('0x34'))[_0x6eac('0x25')](_0x1e2218,_0x4c75cd);}});case'account_contact_lead':var _0x1aea8d=_[_0x6eac('0x35')](_0x1ea64c);if(_0x9acdd6[_0x6eac('0x36')]){var _0x4fa74c={};_0x4fa74c[_0x9acdd6[_0x6eac('0x36')]]=_0x1c2aa0;_[_0x6eac('0x30')](_0x1aea8d[_0x6eac('0x33')],_0x4fa74c);}return _0x124ac7['sobject'](_0x6eac('0x37'))[_0x6eac('0x25')](_0x1aea8d,_0x4c75cd)[_0x6eac('0x38')]()[_0x6eac('0x23')](function(_0x234e34){if(_0x234e34&&_0x234e34[_0x6eac('0x24')]){return _0x234e34;}else{var _0x20a96a=_[_0x6eac('0x35')](_0x1ea64c);if(_0x9acdd6['additionalSearchContact']){var _0x50db2d={};_0x50db2d[_0x9acdd6[_0x6eac('0x2f')]]=_0x1c2aa0;_['merge'](_0x20a96a[_0x6eac('0x33')],_0x50db2d);}return _0x124ac7['sobject'](_0x6eac('0x31'))[_0x6eac('0x25')](_0x20a96a,_0x4c75cd)[_0x6eac('0x23')](function(_0x9438f9){if(_0x9438f9&&_0x9438f9[_0x6eac('0x24')]){return _0x9438f9;}else{var _0x15efbd=_[_0x6eac('0x35')](_0x1ea64c);if(_0x9acdd6[_0x6eac('0x32')]){var _0x46bcd3={};_0x46bcd3[_0x9acdd6['additionalSearchLead']]=_0x1c2aa0;_[_0x6eac('0x30')](_0x15efbd['$or'],_0x46bcd3);}return _0x124ac7[_0x6eac('0x1e')](_0x6eac('0x34'))[_0x6eac('0x25')](_0x15efbd,_0x4c75cd);}});}});case'contact':var _0x43560a=_[_0x6eac('0x35')](_0x1ea64c);if(_0x9acdd6[_0x6eac('0x2f')]){var _0x4fa74c={};_0x4fa74c[_0x9acdd6[_0x6eac('0x2f')]]=_0x1c2aa0;_['merge'](_0x43560a[_0x6eac('0x33')],_0x4fa74c);}return _0x124ac7[_0x6eac('0x1e')](_0x6eac('0x31'))[_0x6eac('0x25')](_0x43560a,_0x4c75cd)[_0x6eac('0x38')]();case _0x6eac('0x17'):var _0x20027e=_[_0x6eac('0x35')](_0x1ea64c);if(_0x9acdd6['additionalSearchLead']){var _0x4fa74c={};_0x4fa74c[_0x9acdd6[_0x6eac('0x32')]]=_0x1c2aa0;_['merge'](_0x20027e['$or'],_0x4fa74c);}return _0x124ac7['sobject'](_0x6eac('0x34'))[_0x6eac('0x25')](_0x20027e,_0x4c75cd);case _0x6eac('0x19'):var _0x1aea8d=_[_0x6eac('0x35')](_0x1ea64c);if(_0x9acdd6['additionalSearchAccount']){var _0x4fa74c={};_0x4fa74c[_0x9acdd6[_0x6eac('0x36')]]=_0x1c2aa0;_['merge'](_0x1aea8d[_0x6eac('0x33')],_0x4fa74c);}return _0x124ac7[_0x6eac('0x1e')](_0x6eac('0x37'))['find'](_0x1aea8d,_0x4c75cd);default:return null;}})[_0x6eac('0x23')](function(_0x175d02){if(_0x175d02&&_0x175d02[_0x6eac('0x24')]){var _0x1937ea=_[_0x6eac('0x39')](_0x175d02);if(_0x1937ea){return BPromise[_0x6eac('0x27')]({'id':_0x1937ea['Id'],'name':_0x1937ea[_0x6eac('0x28')],'phone':_0x1937ea['Phone'],'endUserType':_0x1937ea['attributes'][_0x6eac('0x3a')][_0x6eac('0x3b')]()});}}})[_0x6eac('0x23')](function(_0x581754){if(_0x581754){logger[_0x6eac('0x1d')](_0x6eac('0x3c'),_0x581754[_0x6eac('0x15')],_0x1c2aa0);return BPromise['resolve'](_0x581754);}else{logger['info']('Enduser\x20with\x20phone\x20%s\x20not\x20found',_0x1c2aa0);var _0x45a852={'Phone':_0x1c2aa0};if(_0x9acdd6[_0x6eac('0x3d')]){if(_0x9acdd6[_0x6eac('0x3d')]==='contact'){logger[_0x6eac('0x1d')](_0x6eac('0x3e'),_0x1c2aa0,_0x9acdd6[_0x6eac('0x3d')]);_0x45a852[_0x6eac('0x3f')]=_0x4ad5f6!=='<unknown>'?_0x4ad5f6:util['format'](_0x6eac('0x40'),_0x1c2aa0);}else if(_0x9acdd6[_0x6eac('0x3d')]===_0x6eac('0x17')){logger[_0x6eac('0x1d')](_0x6eac('0x3e'),_0x1c2aa0,_0x9acdd6[_0x6eac('0x3d')]);_0x45a852['LastName']=_0x4ad5f6!==_0x6eac('0x41')?_0x4ad5f6:util['format']('Caller\x20-\x20%s',_0x1c2aa0);_0x45a852[_0x6eac('0x42')]=_0x6eac('0x43');}else if(_0x9acdd6[_0x6eac('0x3d')]===_0x6eac('0x19')){logger[_0x6eac('0x1d')](_0x6eac('0x3e'),_0x1c2aa0,_0x9acdd6['moduleCreate']);_0x45a852[_0x6eac('0x28')]=_0x4ad5f6!=='<unknown>'?_0x4ad5f6:util[_0x6eac('0x44')](_0x6eac('0x40'),_0x1c2aa0);}else{return null;}}return _0x124ac7[_0x6eac('0x1e')](_[_0x6eac('0x45')](_0x9acdd6['moduleCreate']))['create'](_0x45a852)[_0x6eac('0x23')](function(_0x11adb3){return BPromise[_0x6eac('0x27')]({'id':_0x11adb3['id'],'endUserType':_0x9acdd6[_0x6eac('0x3d')]});});}});}function getCustomFields(_0x5026e0,_0x59537c){var _0x18de65={};if(_0x5026e0[_0x6eac('0x24')]>0x0){_[_0x6eac('0x46')](_0x5026e0,function(_0x19da3f){if(_[_0x6eac('0x47')]([_0x6eac('0x48'),'picklist'],_0x19da3f[_0x6eac('0x3a')])&&_0x19da3f['idField']){_0x18de65[_0x19da3f[_0x6eac('0x49')]]=_0x19da3f[_0x6eac('0x4a')]['toString']();}else if(_0x19da3f[_0x6eac('0x3a')]==='variable'&&_0x19da3f['variableName']&&_0x19da3f[_0x6eac('0x49')]){_0x59537c[_0x19da3f[_0x6eac('0x4b')]]&&(_0x18de65[_0x19da3f[_0x6eac('0x49')]]=_0x59537c[_0x19da3f[_0x6eac('0x4b')]][_0x6eac('0x4c')]());}else if(_0x19da3f['type']===_0x6eac('0x4d')&&_0x19da3f[_0x6eac('0x4e')]&&_0x19da3f[_0x6eac('0x4e')][_0x6eac('0x4f')]&&_0x19da3f[_0x6eac('0x49')]){_0x59537c[_0x19da3f['Variable'][_0x6eac('0x4f')][_0x6eac('0x3b')]()]&&(_0x18de65[_0x19da3f[_0x6eac('0x49')]]=_0x59537c[_0x19da3f[_0x6eac('0x4e')][_0x6eac('0x4f')][_0x6eac('0x3b')]()][_0x6eac('0x4c')]());}});}return _0x18de65;}function getConnection(_0x59f552){var _0x3a1ad3=_0x59f552['password'][_0x6eac('0x50')](_0x59f552[_0x6eac('0x51')]);var _0x5b4185=new jsforce[(_0x6eac('0x52'))]({'oauth2':{'loginUrl':_0x59f552[_0x6eac('0x53')]||_0x6eac('0x54'),'clientId':_0x59f552[_0x6eac('0x55')],'clientSecret':_0x59f552[_0x6eac('0x56')]}});return _0x5b4185[_0x6eac('0x57')](_0x59f552['username'],_0x3a1ad3)[_0x6eac('0x23')](function(){logger[_0x6eac('0x1d')](_0x6eac('0x58'));return _0x5b4185;});}exports[_0x6eac('0x59')]=function(_0x4bd314,_0x4d9c94,_0x17808b,_0x2b41b3,_0x35475a,_0x1f854){var _0x3f3d64,_0x5bfc12,_0x4dd44e,_0x2a7cb1;_0x1f854[_0x6eac('0x5a')]=intUtil[_0x6eac('0x5b')](_0x1f854[_0x6eac('0x5a')]);_0x1f854[_0x6eac('0x53')]=intUtil[_0x6eac('0x5b')](_0x1f854['remoteUri']);if(_0x35475a&&_0x35475a['monitor_format']){logger[_0x6eac('0x1d')]('[QUEUE]',_0x6eac('0x5c'));_0x4d9c94[_0x6eac('0x5d')]=util[_0x6eac('0x44')](_0x6eac('0x5e'),_0x1f854[_0x6eac('0x5a')],_0x4d9c94[_0x6eac('0x5f')],md5(_0x4d9c94[_0x6eac('0x5f')]));}else{_0x4d9c94['recordingURL']='';}return getConnection(_0x1f854)[_0x6eac('0x23')](function(_0x1b05f9){_0x2a7cb1=_0x1b05f9;return getUser(_0x1f854,_0x2b41b3[_0x6eac('0x60')],_0x2a7cb1);})['then'](function(_0x3e1082){_0x3f3d64=_0x3e1082;return getEndUser(_0x1f854,_0x17808b,_0x4d9c94[_0x6eac('0x61')],_0x4d9c94[_0x6eac('0x62')],_0x2a7cb1);})[_0x6eac('0x23')](function(_0xa1e3a2){_0x5bfc12=_0xa1e3a2;return getTicket(_0x1f854,_0x3f3d64,_0x5bfc12,_0x17808b,_0x4d9c94,_0x17808b[_0x6eac('0x63')],_0x2a7cb1,_0x6eac('0x59'));})[_0x6eac('0x23')](function(_0x1b773e){_0x4dd44e=_0x1b773e;logger[_0x6eac('0x1d')](_0x6eac('0x64'),_0x4dd44e['id']);logger[_0x6eac('0x1d')](_0x6eac('0x65'),_0x4dd44e['id'],_0x2b41b3['name'],_0x1f854[_0x6eac('0x3a')]);switch(_0x1f854[_0x6eac('0x3a')]){case _0x6eac('0x66'):emit(util['format'](_0x6eac('0x67'),_0x2b41b3['name']),_0x6eac('0x68'),{'recordId':_0x4dd44e['id']});break;case'newTab':emit(util[_0x6eac('0x44')](_0x6eac('0x67'),_0x2b41b3[_0x6eac('0x4f')]),_0x6eac('0x69'),{'uri':util[_0x6eac('0x44')](_0x6eac('0x6a'),_0x2a7cb1[_0x6eac('0x6b')],_0x4dd44e['id'])});break;default:logger[_0x6eac('0x6c')](_0x6eac('0x6d'));}})[_0x6eac('0x6e')](function(_0x39c912){logger[_0x6eac('0x6c')](_0x6eac('0x6f'),_0x39c912);});};exports[_0x6eac('0x70')]=function(_0x38061c,_0x4a70a1,_0x4d8217,_0x2b3c67,_0x5ce14,_0x5966c1,_0x2c348d){var _0x5bd996,_0x205b3c,_0x487abd,_0x49143d;_0x5966c1[_0x6eac('0x5a')]=intUtil[_0x6eac('0x5b')](_0x5966c1[_0x6eac('0x5a')]);_0x5966c1['remoteUri']=intUtil[_0x6eac('0x5b')](_0x5966c1[_0x6eac('0x53')]);if(_0x2c348d&&_0x2c348d[_0x6eac('0x71')]&&_0x2c348d[_0x6eac('0x71')]!=='none'){logger[_0x6eac('0x1d')](_0x6eac('0x72'),_0x6eac('0x5c'));_0x4a70a1[_0x6eac('0x5d')]=util['format'](_0x6eac('0x5e'),_0x5966c1[_0x6eac('0x5a')],_0x4a70a1[_0x6eac('0x5f')],md5(_0x4a70a1['uniqueid']));}return getConnection(_0x5966c1)[_0x6eac('0x23')](function(_0x513b13){_0x49143d=_0x513b13;return getUser(_0x5966c1,_0x2b3c67['email'],_0x49143d);})[_0x6eac('0x23')](function(_0x16969b){_0x5bd996=_0x16969b;return getEndUser(_0x5966c1,_0x4d8217,_0x4a70a1['destcalleridname'],_0x4a70a1['destcalleridnum'],_0x49143d);})[_0x6eac('0x23')](function(_0x5da722){_0x205b3c=_0x5da722;return getTicket(_0x5966c1,_0x5bd996,_0x205b3c,_0x4d8217,_0x4a70a1,_0x4d8217['Fields'],_0x49143d,_0x6eac('0x70'));})[_0x6eac('0x23')](function(_0x49b0cf){_0x487abd=_0x49b0cf;logger[_0x6eac('0x1d')](_0x6eac('0x73'),_0x487abd['id']);logger[_0x6eac('0x1d')](_0x6eac('0x74'),_0x487abd['id'],_0x2b3c67[_0x6eac('0x4f')],_0x5966c1[_0x6eac('0x3a')]);switch(_0x5966c1['type']){case _0x6eac('0x66'):emit(util[_0x6eac('0x44')]('user:%s',_0x2b3c67[_0x6eac('0x4f')]),_0x6eac('0x68'),{'recordId':_0x487abd['id']});break;case _0x6eac('0x75'):emit(util['format'](_0x6eac('0x67'),_0x2b3c67[_0x6eac('0x4f')]),_0x6eac('0x69'),{'uri':util['format']('%s/%s/e',_0x49143d['instanceUrl'],_0x487abd['id'])});break;default:logger[_0x6eac('0x6c')](_0x6eac('0x72'),_0x6eac('0x76'));}})[_0x6eac('0x6e')](function(_0x5866d6){logger['error'](_0x6eac('0x72'),_0x5866d6);});};exports[_0x6eac('0x77')]=function(_0x261ebe,_0x4a965e,_0x3049d1,_0xdc0e76,_0x4ee161,_0x299d93){var _0x170f11,_0x5568c8,_0x5f51b0,_0x15e4a0;_0x299d93[_0x6eac('0x5a')]=intUtil[_0x6eac('0x5b')](_0x299d93[_0x6eac('0x5a')]);_0x299d93[_0x6eac('0x53')]=intUtil[_0x6eac('0x5b')](_0x299d93['remoteUri']);if(_0x4ee161&&_0x4ee161[_0x6eac('0x78')]){logger[_0x6eac('0x1d')]('['+_0x4a965e[_0x6eac('0x79')][_0x6eac('0x7a')]()+']',_0x6eac('0x5c'));_0x4a965e['recordingURL']=util[_0x6eac('0x44')](_0x6eac('0x5e'),_0x299d93[_0x6eac('0x5a')],_0x4a965e[_0x6eac('0x5f')],md5(_0x4a965e[_0x6eac('0x5f')]));}else{_0x4a965e['recordingURL']='';}return getConnection(_0x299d93)['then'](function(_0x256288){_0x15e4a0=_0x256288;if(!_[_0x6eac('0x20')](_0xdc0e76)){return getUser(_0x299d93,_0xdc0e76['name'],_0x15e4a0);}else{return getUser(_0x299d93,null,_0x15e4a0);}})[_0x6eac('0x23')](function(_0x3155aa){_0x170f11=_0x3155aa;return getEndUser(_0x299d93,_0x3049d1,_0x4a965e[_0x6eac('0x61')],_0x4a965e[_0x6eac('0x62')],_0x15e4a0);})['then'](function(_0x4140da){_0x5568c8=_0x4140da;return getTicket(_0x299d93,_0x170f11,_0x5568c8,_0x3049d1,_0x4a965e,_0x3049d1[_0x6eac('0x63')],_0x15e4a0);})[_0x6eac('0x23')](function(_0x27b00f){_0x5f51b0=_0x27b00f;logger['info']('['+_0x4a965e[_0x6eac('0x79')][_0x6eac('0x7a')]()+']\x20Ticket\x20%s\x20created.',_0x5f51b0['id']);logger[_0x6eac('0x1d')]('['+_0x4a965e[_0x6eac('0x79')][_0x6eac('0x7a')]()+']\x20Integration\x20account\x20type\x20%s.',_0x299d93['type']);})[_0x6eac('0x6e')](function(_0x235f37){logger[_0x6eac('0x6c')]('['+_0x4a965e[_0x6eac('0x79')][_0x6eac('0x7a')]()+']',_0x235f37);});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x21ea=['error','toUpperCase','message','info','],\x20getUser\x20input\x20crm','userEmail','],\x20getUser\x20rp\x20obj','],\x20getUser\x20entity','length','active','true','userId','sys_id','adminId','adminEmail','],\x20getUser\x20crm','catch',']\x20using\x20admin\x20profile','],\x20createEndUser\x20input\x20crm','sys_user?','endUserNumber','System','],\x20EndUser\x20schema','endUserId','],\x20getEndUser\x20input\x20crm','],\x20getEndUser\x20crm','],\x20createEndUser\x20crm','forEach','includes','string','picklist','nameField','toString','idField','customField','toLowerCase','content','type','variable','variableName','customVariable','Variable','name',']\x20getTicket\x20input\x20crm','outbound','POST','incident','assign','getString','Subjects','Descriptions',']\x20POST\x20incident\x20entity\x20schema','ticketNumber','number',']\x20getTicket\x20crm','label','?sysparm_query=name%3D','label_entry','Incident\x20-\x20','all',']\x20arrayPromises:\x20IDs\x20in\x20table\x20label','push','Tags','map','%26sysparm_record_row%3D1%26sysparm_record_rows%3D39','%26sysparm_record_list%3Dactive%253Dtrue','%255EORDERBYDESCnumber','format','user:%s','emit','trigger:browser:url','username','password','sysparm_limit=1','remoteUri','stripTrailingSlash','serverUrl','isNil','email','destcalleridnum','calleridnum','callDirection','queue','unmanaged','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','[QUEUE]','recordingURL','recordingFormat','none','[OUTBOUND]','Recording\x20is\x20enabled!','The\x20ticket\x20ID\x20is:\x20%s','call\x20direction:\x20%s','Displaying\x20call\x20in\x20a\x20new\x20tab...','ticketId',']\x20Error\x20running\x20ServiceNow\x20integration','inspect','lodash','bluebird','request-promise','md5','ioredis','./util','../../../../config/environment','../../../../config/logger','servicenow','redis','defaults','socket.io-emitter','GET','then','result','],\x20getAdminUser\x20crm'];(function(_0x4b6ca6,_0x190464){var _0x31111a=function(_0x39ed80){while(--_0x39ed80){_0x4b6ca6['push'](_0x4b6ca6['shift']());}};_0x31111a(++_0x190464);}(_0x21ea,0xd4));var _0xa21e=function(_0x501510,_0x61caa9){_0x501510=_0x501510-0x0;var _0x1e6ee5=_0x21ea[_0x501510];return _0x1e6ee5;};'use strict';var _=require(_0xa21e('0x0'));var Promise=require(_0xa21e('0x1'));var rp=require(_0xa21e('0x2'));var util=require('util');var md5=require(_0xa21e('0x3'));var Redis=require(_0xa21e('0x4'));var intUtil=require(_0xa21e('0x5'));var config=require(_0xa21e('0x6'));var logger=require(_0xa21e('0x7'))(_0xa21e('0x8'));config[_0xa21e('0x9')]=_[_0xa21e('0xa')](config['redis'],{'host':'localhost','port':0x18eb});var io=require(_0xa21e('0xb'))(new Redis(config['redis']));function getAdminUser(_0x52ee7c,_0x2516c9,_0x2b8ecb,_0x366c77,_0x5c7cef,_0x5c87b7){return new Promise(function(_0x43c7c1,_0x27fa66){var _0x312b04={'method':_0xa21e('0xc'),'uri':_0x366c77+'sys_user?sysparm_query=user_name%3Dadmin'+'&'+_0x5c7cef+'&'+_0x5c87b7,'auth':_0x2516c9,'json':!![]};return rp(_0x312b04)[_0xa21e('0xd')](function(_0x895531){if(_0x895531[_0xa21e('0xe')]['length']>0x0){_0x2b8ecb['adminId']=_0x895531[_0xa21e('0xe')][0x0]['sys_id'];}logger['info']('['+[_0x52ee7c['toUpperCase']()]+_0xa21e('0xf'),_0x2b8ecb);_0x43c7c1(_0x2b8ecb);})['catch'](function(_0x46c95f){logger[_0xa21e('0x10')]('['+[_0x52ee7c[_0xa21e('0x11')]()]+']',_0x46c95f[_0xa21e('0x12')]);_0x27fa66(_0x46c95f[_0xa21e('0x12')]);});});}function getUser(_0x4622bc,_0x4a4e12,_0x3f4db3,_0x5a01b7,_0x553d95){return function(_0x3f30f0){logger[_0xa21e('0x13')]('['+[_0x4622bc[_0xa21e('0x11')]()]+_0xa21e('0x14'),_0x3f30f0);return new Promise(function(_0x3db209,_0x55904e){if(intUtil['validateEmail'](_0x3f30f0[_0xa21e('0x15')])){var _0x1187cf={'method':'GET','uri':_0x3f4db3+'sys_user?sysparm_query=email%3D'+_0x3f30f0[_0xa21e('0x15')]+'&'+_0x5a01b7+'&'+_0x553d95,'auth':_0x4a4e12,'json':!![]};logger['info']('['+[_0x4622bc[_0xa21e('0x11')]()]+_0xa21e('0x16'),_0x1187cf);return rp(_0x1187cf)[_0xa21e('0xd')](function(_0x538628){logger['info']('['+[_0x4622bc[_0xa21e('0x11')]()]+_0xa21e('0x17'),_0x538628);if(_0x538628[_0xa21e('0xe')][_0xa21e('0x18')]>0x0&&String(_0x538628['result'][0x0][_0xa21e('0x19')])===_0xa21e('0x1a')){_0x3f30f0[_0xa21e('0x1b')]=_0x538628[_0xa21e('0xe')][0x0][_0xa21e('0x1c')];}else{_0x3f30f0[_0xa21e('0x1b')]=_0x3f30f0[_0xa21e('0x1d')];_0x3f30f0[_0xa21e('0x15')]=_0x3f30f0[_0xa21e('0x1e')];}logger['info']('['+[_0x4622bc['toUpperCase']()]+_0xa21e('0x1f'),_0x3f30f0);_0x3db209(_0x3f30f0);})[_0xa21e('0x20')](function(_0x8e0720){logger[_0xa21e('0x10')]('['+[_0x4622bc[_0xa21e('0x11')]()]+']',_0x8e0720[_0xa21e('0x12')]);_0x55904e(_0x8e0720['message']);});}else{logger[_0xa21e('0x13')]('['+[_0x4622bc[_0xa21e('0x11')]()]+_0xa21e('0x21'));_0x3f30f0['userId']=_0x3f30f0[_0xa21e('0x1d')];_0x3f30f0['userEmail']=_0x3f30f0[_0xa21e('0x1e')];_0x3db209(_0x3f30f0);}});};}function createEndUser(_0x2414cd,_0x4e47cc,_0x238195,_0x1da93b,_0x5dbf34){logger['info']('['+[_0x2414cd[_0xa21e('0x11')]()]+_0xa21e('0x22'),_0x238195);return new Promise(function(_0x21ad97,_0x5067bb){var _0x571f0b={'method':'POST','uri':_0x1da93b+_0xa21e('0x23')+_0x5dbf34,'body':{'user_name':_0x238195[_0xa21e('0x24')],'roles':'user','first_name':_0x238195[_0xa21e('0x24')],'active':_0xa21e('0x1a'),'date_format':_0xa21e('0x25'),'phone':_0x238195[_0xa21e('0x24')]},'auth':_0x4e47cc,'json':!![]};return rp(_0x571f0b)[_0xa21e('0xd')](function(_0x1404fb){logger['info']('['+[_0x2414cd['toUpperCase']()]+_0xa21e('0x26'),_0x1404fb['result']);_0x238195[_0xa21e('0x27')]=_0x1404fb[_0xa21e('0xe')][_0xa21e('0x1c')];_0x21ad97(_0x238195);})[_0xa21e('0x20')](function(_0x4e031a){logger['error']('['+[_0x2414cd[_0xa21e('0x11')]()]+']',_0x4e031a[_0xa21e('0x12')]);_0x5067bb(_0x4e031a[_0xa21e('0x12')]);});});}function getEndUser(_0xa2149,_0x52a171,_0x362945,_0x5058e1,_0x596381){return function(_0x2a9f16){logger[_0xa21e('0x13')]('['+[_0xa2149['toUpperCase']()]+_0xa21e('0x28'),_0x2a9f16);return new Promise(function(_0x544e04,_0x4d84f4){var _0x2567be={'method':_0xa21e('0xc'),'uri':_0x362945+'sys_user?sysparm_query=phone%3D'+_0x2a9f16[_0xa21e('0x24')]+'&'+_0x5058e1+'&'+_0x596381,'auth':_0x52a171,'json':!![]};return rp(_0x2567be)[_0xa21e('0xd')](function(_0x5bdb4c){if(_0x5bdb4c[_0xa21e('0xe')][_0xa21e('0x18')]>0x0){_0x2a9f16['endUserId']=_0x5bdb4c[_0xa21e('0xe')][0x0][_0xa21e('0x1c')];logger[_0xa21e('0x13')]('['+[_0xa2149[_0xa21e('0x11')]()]+_0xa21e('0x29'),_0x2a9f16);_0x544e04(_0x2a9f16);}else{return createEndUser(_0xa2149,_0x52a171,_0x2a9f16,_0x362945,_0x5058e1)['then'](function(_0x5df110){logger[_0xa21e('0x13')]('['+[_0xa2149[_0xa21e('0x11')]()]+_0xa21e('0x2a'),_0x5df110);_0x544e04(_0x5df110);});}})[_0xa21e('0x20')](function(_0x2e1dfa){logger['error']('['+[_0xa2149[_0xa21e('0x11')]()]+']',_0x2e1dfa[_0xa21e('0x12')]);_0x4d84f4(_0x2e1dfa[_0xa21e('0x12')]);});});};}function getCustomFields(_0x494c4d,_0xd458ce){var _0x1829be={};if(_0x494c4d[_0xa21e('0x18')]>0x0){_[_0xa21e('0x2b')](_0x494c4d,function(_0x2aef0d){if(_[_0xa21e('0x2c')]([_0xa21e('0x2d'),_0xa21e('0x2e')],_0x2aef0d['type'])&&_0x2aef0d[_0xa21e('0x2f')]&&!_0x2aef0d['customField']){_0x1829be[_0x2aef0d[_0xa21e('0x2f')]['toLowerCase']()]=_0x2aef0d['content'][_0xa21e('0x30')]();}else if(_[_0xa21e('0x2c')]([_0xa21e('0x2d'),_0xa21e('0x2e')],_0x2aef0d['type'])&&_0x2aef0d[_0xa21e('0x31')]&&_0x2aef0d[_0xa21e('0x32')]){_0x1829be[_0x2aef0d[_0xa21e('0x31')][_0xa21e('0x33')]()]=_0x2aef0d[_0xa21e('0x34')][_0xa21e('0x30')]();}else if(_0x2aef0d[_0xa21e('0x35')]===_0xa21e('0x36')&&_0x2aef0d[_0xa21e('0x37')]&&_0x2aef0d[_0xa21e('0x31')]&&_0x2aef0d[_0xa21e('0x32')]){_0x1829be[_0x2aef0d[_0xa21e('0x31')]['toLowerCase']()]=_0xd458ce[_0x2aef0d[_0xa21e('0x37')]][_0xa21e('0x30')]();}else if(_0x2aef0d['type']===_0xa21e('0x38')&&_0x2aef0d['Variable']&&_0x2aef0d[_0xa21e('0x39')]['name']&&_0x2aef0d[_0xa21e('0x31')]&&_0x2aef0d[_0xa21e('0x32')]){_0x1829be[_0x2aef0d[_0xa21e('0x31')][_0xa21e('0x33')]()]=_0xd458ce[_0x2aef0d[_0xa21e('0x39')][_0xa21e('0x3a')][_0xa21e('0x33')]()][_0xa21e('0x30')]();}});}return _0x1829be;}function getTicket(_0x21b6fa,_0x49efb1,_0x1e6af4,_0x5a1f44,_0x551d5c,_0x44b43a){return function(_0x204ef3){logger['info']('['+[_0x21b6fa[_0xa21e('0x11')]()]+_0xa21e('0x3b'),_0x204ef3);return new Promise(function(_0x14809e,_0xa73d2b){var _0x450e8f=_0x21b6fa[_0xa21e('0x33')]()===_0xa21e('0x3c')?_0x204ef3[_0xa21e('0x1b')]:_0x204ef3[_0xa21e('0x27')];var _0x4a0a36={'method':_0xa21e('0x3d'),'uri':_0x1e6af4+_0xa21e('0x3e')+'?'+_0x44b43a,'body':Object[_0xa21e('0x3f')]({},{'active':'true','caller_id':_0x450e8f,'assigned_to':_0x204ef3[_0xa21e('0x1b')],'short_description':intUtil[_0xa21e('0x40')](_0x5a1f44[_0xa21e('0x41')],_0x551d5c,'\x20'),'description':intUtil[_0xa21e('0x40')](_0x5a1f44[_0xa21e('0x42')],_0x551d5c,'\x0a')},getCustomFields(_0x5a1f44['Fields'],_0x551d5c)),'auth':_0x49efb1,'json':!![]};return rp(_0x4a0a36)[_0xa21e('0xd')](function(_0x34fef7){logger[_0xa21e('0x13')]('['+[_0x21b6fa[_0xa21e('0x11')]()]+_0xa21e('0x43'),_0x34fef7['result']);_0x204ef3['ticketId']=_0x34fef7[_0xa21e('0xe')][_0xa21e('0x1c')];_0x204ef3[_0xa21e('0x44')]=_0x34fef7['result'][_0xa21e('0x45')];logger[_0xa21e('0x13')]('['+[_0x21b6fa['toUpperCase']()]+_0xa21e('0x46'),_0x204ef3);_0x14809e(_0x204ef3);})[_0xa21e('0x20')](function(_0x21d86a){logger[_0xa21e('0x10')]('['+[_0x21b6fa[_0xa21e('0x11')]()]+']',_0x21d86a[_0xa21e('0x12')]);_0xa73d2b(_0x21d86a[_0xa21e('0x12')]);});});};}function createRemoteTag(_0x31e243,_0x229358,_0x48f8ca,_0x2c952d){return new Promise(function(_0x2b0ff5,_0x3d1476){var _0x4f4b4d={'method':'POST','uri':_0x48f8ca+'label'+'?'+_0x2c952d,'body':{'short_description':_0x31e243,'global':!![],'active':!![],'name':_0x31e243},'auth':_0x229358,'json':!![]};return rp(_0x4f4b4d)[_0xa21e('0xd')](function(_0x3d7c60){var _0x53c9=_0x3d7c60[_0xa21e('0xe')][_0xa21e('0x1c')];_0x2b0ff5(_0x53c9);});});}function getRemoteTag(_0xc9d5cb,_0x42f001,_0x3929f7,_0x5b778e,_0x177785){return new Promise(function(_0x4d93f9,_0x1e9cd3){var _0x5b4db0={'method':_0xa21e('0xc'),'uri':_0x3929f7+_0xa21e('0x47')+_0xa21e('0x48')+_0xc9d5cb+'&'+_0x5b778e,'auth':_0x42f001,'json':!![]};return rp(_0x5b4db0)[_0xa21e('0xd')](function(_0x1af7d1){if(_0x1af7d1[_0xa21e('0xe')][_0xa21e('0x18')]>0x0){var _0x55915f=_0x1af7d1[_0xa21e('0xe')][0x0][_0xa21e('0x1c')];_0x4d93f9(_0x55915f);}else{return createRemoteTag(_0xc9d5cb,_0x42f001,_0x3929f7,_0x5b778e)[_0xa21e('0xd')](function(_0x5b6309){_0x4d93f9(_0x5b6309);});}});});}function assignTagToIncident(_0x43d7dc,_0x5bf9c6,_0x1b8f1c,_0x513083,_0x1ae634){return new Promise(function(_0x888671,_0x24dd8f){var _0x2ccb9c={'method':_0xa21e('0x3d'),'uri':_0x1b8f1c+_0xa21e('0x49')+'?'+_0x1ae634,'body':{'label':_0x43d7dc,'table':_0xa21e('0x3e'),'id_type':'Incident','table_key':_0x513083['ticketId'],'title':_0xa21e('0x4a')+_0x513083[_0xa21e('0x44')],'id_display':_0x513083[_0xa21e('0x44')]},'auth':_0x5bf9c6,'json':!![]};return rp(_0x2ccb9c)[_0xa21e('0xd')](function(_0x16378c){_0x888671();})[_0xa21e('0x20')](function(){_0x888671();});});}function manageTags(_0x482e00,_0x55122a,_0x114744,_0x5d0713,_0x33aa25,_0x1a9ee6,_0x22a079){return new Promise(function(_0x68560f,_0xf7b1c8){var _0x825a14=[];_0x55122a[_0xa21e('0x2b')](function(_0x595eff){_0x825a14['push'](getRemoteTag(_0x595eff,_0x114744,_0x5d0713,_0x1a9ee6,_0x22a079));});return Promise[_0xa21e('0x4b')](_0x825a14)[_0xa21e('0xd')](function(_0x33b1a4){if(_0x33b1a4[_0xa21e('0x18')]){logger[_0xa21e('0x13')]('['+[_0x482e00['toUpperCase']()]+_0xa21e('0x4c'),_0x33b1a4);var _0x34e5f8=[];_0x33b1a4['forEach'](function(_0x41f460){_0x34e5f8[_0xa21e('0x4d')](assignTagToIncident(_0x41f460,_0x114744,_0x5d0713,_0x33aa25,_0x1a9ee6));});return Promise[_0xa21e('0x4b')](_0x34e5f8)['then'](function(){_0x68560f();})[_0xa21e('0x20')](function(){_0x68560f();});}else{_0x68560f();}});});}function getTags(_0x5aa442,_0x3b421f,_0x82fd0f,_0x324ed6,_0x51fc6b,_0x514158){return function(_0x8e8050){return new Promise(function(_0x3b4650,_0x9f816a){var _0x1d3385=[];var _0x5ae828=_0x324ed6[_0xa21e('0x4e')];if(_0x5ae828&&_0x5ae828['length']>0x0){_0x1d3385=_[_0xa21e('0x4f')](_0x5ae828,_0xa21e('0x3a'));}if(_0x1d3385[_0xa21e('0x18')]>0x0){return manageTags(_0x5aa442,_0x1d3385,_0x3b421f,_0x82fd0f,_0x8e8050,_0x51fc6b,_0x514158)[_0xa21e('0xd')](function(){_0x3b4650(_0x8e8050);});}else{_0x3b4650(_0x8e8050);}});};}function emit(_0xeec2bd,_0x1b0669,_0x34dda0){var _0x50f80a='%26sysparm_record_target%3Dincident'+_0xa21e('0x50')+_0xa21e('0x51')+_0xa21e('0x52');var _0x5097db={'uri':_0xeec2bd+'/nav_to.do?uri=incident.do?sys_id%3D'+_0x34dda0+_0x50f80a};io['to'](util[_0xa21e('0x53')](_0xa21e('0x54'),_0x1b0669))[_0xa21e('0x55')](_0xa21e('0x56'),_0x5097db);}exports['cs']=function(_0x15a0f0,_0x141d59,_0x3e7d8c,_0x5c53af,_0x33a38c,_0xf98f8b,_0x9a8add,_0x183ede){var _0x4a58ea={};var _0x1a16b3={'user':_0xf98f8b[_0xa21e('0x57')],'pass':_0xf98f8b[_0xa21e('0x58')]};var _0xf36094=_0xa21e('0x59');var _0x1b5acd='sysparm_display_value=true';_0xf98f8b[_0xa21e('0x5a')]=intUtil[_0xa21e('0x5b')](_0xf98f8b[_0xa21e('0x5a')]);_0xf98f8b[_0xa21e('0x5c')]=intUtil[_0xa21e('0x5b')](_0xf98f8b[_0xa21e('0x5c')]);var _0x2936d3=util['format']('%s/api/now/table/',_0xf98f8b[_0xa21e('0x5a')]);_0x4a58ea[_0xa21e('0x15')]=!_[_0xa21e('0x5d')](_0x5c53af)?_0x5c53af[_0xa21e('0x5e')]:null;_0x4a58ea[_0xa21e('0x1e')]=_0xf98f8b['email'];_0x4a58ea[_0xa21e('0x24')]=_0x183ede[_0xa21e('0x33')]()===_0xa21e('0x3c')?_0x141d59[_0xa21e('0x5f')]:_0x141d59[_0xa21e('0x60')];_0x4a58ea[_0xa21e('0x61')]=_0x183ede===_0xa21e('0x62')||_0x183ede===_0xa21e('0x63')?_0xa21e('0x62'):'outbound';var _0xe8b63f=util[_0xa21e('0x53')](_0xa21e('0x64'),_0xf98f8b[_0xa21e('0x5c')],_0x141d59[_0xa21e('0x65')],md5(_0x141d59[_0xa21e('0x65')]));if(_0x33a38c&&_0x33a38c['monitor_format']){logger[_0xa21e('0x13')](_0xa21e('0x66'),'Recording\x20is\x20enabled!');_0x141d59[_0xa21e('0x67')]=_0xe8b63f;}else if(_0x9a8add&&_0x9a8add[_0xa21e('0x68')]&&_0x9a8add[_0xa21e('0x68')]!==_0xa21e('0x69')){logger[_0xa21e('0x13')](_0xa21e('0x6a'),_0xa21e('0x6b'));_0x141d59['recordingURL']=_0xe8b63f;}else{_0x141d59['recordingURL']='';}return getAdminUser(_0x183ede,_0x1a16b3,_0x4a58ea,_0x2936d3,_0x1b5acd,_0xf36094)['then'](getUser(_0x183ede,_0x1a16b3,_0x2936d3,_0x1b5acd,_0xf36094))[_0xa21e('0xd')](getEndUser(_0x183ede,_0x1a16b3,_0x2936d3,_0x1b5acd,_0xf36094))[_0xa21e('0xd')](getTicket(_0x183ede,_0x1a16b3,_0x2936d3,_0x3e7d8c,_0x141d59,_0x1b5acd))[_0xa21e('0xd')](function(_0x39521a){logger[_0xa21e('0x13')](util[_0xa21e('0x53')](_0xa21e('0x6c'),_0x39521a['ticketId']));logger[_0xa21e('0x13')](util['format'](_0xa21e('0x6d'),_0x183ede));if(_0x183ede!==_0xa21e('0x63')){logger[_0xa21e('0x13')]('['+[_0x183ede[_0xa21e('0x11')]()]+']',_0xa21e('0x6e'));emit(_0xf98f8b[_0xa21e('0x5a')],_0x5c53af['name'],_0x39521a[_0xa21e('0x6f')]);}})[_0xa21e('0x20')](function(_0x4895a3){logger[_0xa21e('0x10')]('['+[_0x183ede[_0xa21e('0x11')]()]+_0xa21e('0x70'),util[_0xa21e('0x71')](_0x4895a3,{'showHidden':!![],'depth':null}));});};
\ No newline at end of file
+var _0x6d14=['remoteUri','stripTrailingSlash','serverUrl','format','%s/api/now/table/','isNil','email','destcalleridnum','calleridnum','queue','unmanaged','uniqueid','monitor_format','Recording\x20is\x20enabled!','recordingFormat','[OUTBOUND]','recordingURL','The\x20ticket\x20ID\x20is:\x20%s','call\x20direction:\x20%s','Displaying\x20call\x20in\x20a\x20new\x20tab...',']\x20Error\x20running\x20ServiceNow\x20integration','inspect','bluebird','request-promise','util','ioredis','./util','../../../../config/environment','../../../../config/logger','servicenow','redis','defaults','localhost','socket.io-emitter','GET','then','result','length','adminId','info','toUpperCase','],\x20getAdminUser\x20crm','catch','error','message','validateEmail','sys_user?sysparm_query=email%3D','userEmail','],\x20getUser\x20entity','true','userId','sys_id','adminEmail','],\x20getUser\x20crm',']\x20using\x20admin\x20profile','],\x20createEndUser\x20input\x20crm','POST','sys_user?','endUserNumber','user','System','],\x20EndUser\x20schema','endUserId','],\x20getEndUser\x20input\x20crm','sys_user?sysparm_query=phone%3D','includes','string','type','nameField','customField','toLowerCase','toString','idField','content','variable','variableName','customVariable','Variable','name','outbound','incident','assign','getString','Descriptions','Fields','number','label','?sysparm_query=name%3D','label_entry','Incident','ticketId','Incident\x20-\x20','ticketNumber','forEach','push','all',']\x20arrayPromises:\x20IDs\x20in\x20table\x20label','Tags','%26sysparm_record_list%3Dactive%253Dtrue','%255EORDERBYDESCnumber','/nav_to.do?uri=incident.do?sys_id%3D','user:%s','emit','trigger:browser:url','username','sysparm_display_value=true'];(function(_0x102163,_0x5c3f5a){var _0x4c5a2c=function(_0x131609){while(--_0x131609){_0x102163['push'](_0x102163['shift']());}};_0x4c5a2c(++_0x5c3f5a);}(_0x6d14,0x154));var _0x46d1=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x6d14[_0x3dd15e];return _0x231fd0;};'use strict';var _=require('lodash');var Promise=require(_0x46d1('0x0'));var rp=require(_0x46d1('0x1'));var util=require(_0x46d1('0x2'));var md5=require('md5');var Redis=require(_0x46d1('0x3'));var intUtil=require(_0x46d1('0x4'));var config=require(_0x46d1('0x5'));var logger=require(_0x46d1('0x6'))(_0x46d1('0x7'));config[_0x46d1('0x8')]=_[_0x46d1('0x9')](config[_0x46d1('0x8')],{'host':_0x46d1('0xa'),'port':0x18eb});var io=require(_0x46d1('0xb'))(new Redis(config['redis']));function getAdminUser(_0x55fced,_0x2fc812,_0x43aafa,_0x3e35ee,_0x4dc338,_0x5c781a){return new Promise(function(_0x2741fa,_0x3839c8){var _0x2793a8={'method':_0x46d1('0xc'),'uri':_0x3e35ee+'sys_user?sysparm_query=user_name%3Dadmin'+'&'+_0x4dc338+'&'+_0x5c781a,'auth':_0x2fc812,'json':!![]};return rp(_0x2793a8)[_0x46d1('0xd')](function(_0x296356){if(_0x296356[_0x46d1('0xe')][_0x46d1('0xf')]>0x0){_0x43aafa[_0x46d1('0x10')]=_0x296356[_0x46d1('0xe')][0x0]['sys_id'];}logger[_0x46d1('0x11')]('['+[_0x55fced[_0x46d1('0x12')]()]+_0x46d1('0x13'),_0x43aafa);_0x2741fa(_0x43aafa);})[_0x46d1('0x14')](function(_0x2b14af){logger[_0x46d1('0x15')]('['+[_0x55fced[_0x46d1('0x12')]()]+']',_0x2b14af[_0x46d1('0x16')]);_0x3839c8(_0x2b14af[_0x46d1('0x16')]);});});}function getUser(_0x253dd0,_0x223214,_0x20aa55,_0x20508a,_0x28e52a){return function(_0x29f5a5){logger[_0x46d1('0x11')]('['+[_0x253dd0[_0x46d1('0x12')]()]+'],\x20getUser\x20input\x20crm',_0x29f5a5);return new Promise(function(_0x32c132,_0x472f02){if(intUtil[_0x46d1('0x17')](_0x29f5a5['userEmail'])){var _0x408161={'method':_0x46d1('0xc'),'uri':_0x20aa55+_0x46d1('0x18')+_0x29f5a5[_0x46d1('0x19')]+'&'+_0x20508a+'&'+_0x28e52a,'auth':_0x223214,'json':!![]};logger[_0x46d1('0x11')]('['+[_0x253dd0['toUpperCase']()]+'],\x20getUser\x20rp\x20obj',_0x408161);return rp(_0x408161)[_0x46d1('0xd')](function(_0x2eb89c){logger[_0x46d1('0x11')]('['+[_0x253dd0[_0x46d1('0x12')]()]+_0x46d1('0x1a'),_0x2eb89c);if(_0x2eb89c[_0x46d1('0xe')]['length']>0x0&&String(_0x2eb89c['result'][0x0]['active'])===_0x46d1('0x1b')){_0x29f5a5[_0x46d1('0x1c')]=_0x2eb89c[_0x46d1('0xe')][0x0][_0x46d1('0x1d')];}else{_0x29f5a5[_0x46d1('0x1c')]=_0x29f5a5[_0x46d1('0x10')];_0x29f5a5['userEmail']=_0x29f5a5[_0x46d1('0x1e')];}logger[_0x46d1('0x11')]('['+[_0x253dd0[_0x46d1('0x12')]()]+_0x46d1('0x1f'),_0x29f5a5);_0x32c132(_0x29f5a5);})[_0x46d1('0x14')](function(_0x4e4d96){logger[_0x46d1('0x15')]('['+[_0x253dd0[_0x46d1('0x12')]()]+']',_0x4e4d96[_0x46d1('0x16')]);_0x472f02(_0x4e4d96[_0x46d1('0x16')]);});}else{logger[_0x46d1('0x11')]('['+[_0x253dd0[_0x46d1('0x12')]()]+_0x46d1('0x20'));_0x29f5a5[_0x46d1('0x1c')]=_0x29f5a5[_0x46d1('0x10')];_0x29f5a5[_0x46d1('0x19')]=_0x29f5a5['adminEmail'];_0x32c132(_0x29f5a5);}});};}function createEndUser(_0x515aae,_0x192680,_0xd309ca,_0x403a7a,_0x503544){logger['info']('['+[_0x515aae['toUpperCase']()]+_0x46d1('0x21'),_0xd309ca);return new Promise(function(_0x28f639,_0x32016c){var _0x40ec0b={'method':_0x46d1('0x22'),'uri':_0x403a7a+_0x46d1('0x23')+_0x503544,'body':{'user_name':_0xd309ca[_0x46d1('0x24')],'roles':_0x46d1('0x25'),'first_name':_0xd309ca['endUserNumber'],'active':'true','date_format':_0x46d1('0x26'),'phone':_0xd309ca['endUserNumber']},'auth':_0x192680,'json':!![]};return rp(_0x40ec0b)['then'](function(_0x36d09c){logger['info']('['+[_0x515aae[_0x46d1('0x12')]()]+_0x46d1('0x27'),_0x36d09c[_0x46d1('0xe')]);_0xd309ca[_0x46d1('0x28')]=_0x36d09c[_0x46d1('0xe')][_0x46d1('0x1d')];_0x28f639(_0xd309ca);})[_0x46d1('0x14')](function(_0x361537){logger[_0x46d1('0x15')]('['+[_0x515aae[_0x46d1('0x12')]()]+']',_0x361537['message']);_0x32016c(_0x361537[_0x46d1('0x16')]);});});}function getEndUser(_0x55be2c,_0x59cb0b,_0xaacc85,_0x2764cf,_0x18e7ba){return function(_0x32fa1b){logger[_0x46d1('0x11')]('['+[_0x55be2c[_0x46d1('0x12')]()]+_0x46d1('0x29'),_0x32fa1b);return new Promise(function(_0x1317e5,_0x2a6356){var _0x275522={'method':_0x46d1('0xc'),'uri':_0xaacc85+_0x46d1('0x2a')+_0x32fa1b[_0x46d1('0x24')]+'&'+_0x2764cf+'&'+_0x18e7ba,'auth':_0x59cb0b,'json':!![]};return rp(_0x275522)['then'](function(_0x1cd808){if(_0x1cd808[_0x46d1('0xe')][_0x46d1('0xf')]>0x0){_0x32fa1b[_0x46d1('0x28')]=_0x1cd808[_0x46d1('0xe')][0x0][_0x46d1('0x1d')];logger[_0x46d1('0x11')]('['+[_0x55be2c[_0x46d1('0x12')]()]+'],\x20getEndUser\x20crm',_0x32fa1b);_0x1317e5(_0x32fa1b);}else{return createEndUser(_0x55be2c,_0x59cb0b,_0x32fa1b,_0xaacc85,_0x2764cf)[_0x46d1('0xd')](function(_0x97b6c){logger[_0x46d1('0x11')]('['+[_0x55be2c[_0x46d1('0x12')]()]+'],\x20createEndUser\x20crm',_0x97b6c);_0x1317e5(_0x97b6c);});}})[_0x46d1('0x14')](function(_0x26bf63){logger[_0x46d1('0x15')]('['+[_0x55be2c[_0x46d1('0x12')]()]+']',_0x26bf63['message']);_0x2a6356(_0x26bf63[_0x46d1('0x16')]);});});};}function getCustomFields(_0x5881ae,_0x100899){var _0xec95b5={};if(_0x5881ae[_0x46d1('0xf')]>0x0){_['forEach'](_0x5881ae,function(_0x579f12){if(_[_0x46d1('0x2b')]([_0x46d1('0x2c'),'picklist'],_0x579f12[_0x46d1('0x2d')])&&_0x579f12[_0x46d1('0x2e')]&&!_0x579f12[_0x46d1('0x2f')]){_0xec95b5[_0x579f12[_0x46d1('0x2e')][_0x46d1('0x30')]()]=_0x579f12['content'][_0x46d1('0x31')]();}else if(_['includes'](['string','picklist'],_0x579f12['type'])&&_0x579f12[_0x46d1('0x32')]&&_0x579f12[_0x46d1('0x2f')]){_0xec95b5[_0x579f12[_0x46d1('0x32')][_0x46d1('0x30')]()]=_0x579f12[_0x46d1('0x33')][_0x46d1('0x31')]();}else if(_0x579f12[_0x46d1('0x2d')]===_0x46d1('0x34')&&_0x579f12['variableName']&&_0x579f12[_0x46d1('0x32')]&&_0x579f12['customField']){_0xec95b5[_0x579f12['idField']['toLowerCase']()]=_0x100899[_0x579f12[_0x46d1('0x35')]][_0x46d1('0x31')]();}else if(_0x579f12[_0x46d1('0x2d')]===_0x46d1('0x36')&&_0x579f12['Variable']&&_0x579f12[_0x46d1('0x37')][_0x46d1('0x38')]&&_0x579f12[_0x46d1('0x32')]&&_0x579f12[_0x46d1('0x2f')]){_0xec95b5[_0x579f12[_0x46d1('0x32')][_0x46d1('0x30')]()]=_0x100899[_0x579f12[_0x46d1('0x37')][_0x46d1('0x38')][_0x46d1('0x30')]()][_0x46d1('0x31')]();}});}return _0xec95b5;}function getTicket(_0x3ab56d,_0x456608,_0x27f1b5,_0x121487,_0x17cfbd,_0x4a685c){return function(_0x4c8042){logger[_0x46d1('0x11')]('['+[_0x3ab56d[_0x46d1('0x12')]()]+']\x20getTicket\x20input\x20crm',_0x4c8042);return new Promise(function(_0x2d6540,_0x1f8506){var _0x1c8121=_0x3ab56d[_0x46d1('0x30')]()===_0x46d1('0x39')?_0x4c8042[_0x46d1('0x1c')]:_0x4c8042[_0x46d1('0x28')];var _0xeac57a={'method':_0x46d1('0x22'),'uri':_0x27f1b5+_0x46d1('0x3a')+'?'+_0x4a685c,'body':Object[_0x46d1('0x3b')]({},{'active':_0x46d1('0x1b'),'caller_id':_0x1c8121,'assigned_to':_0x4c8042['userId'],'short_description':intUtil[_0x46d1('0x3c')](_0x121487['Subjects'],_0x17cfbd,'\x20'),'description':intUtil['getString'](_0x121487[_0x46d1('0x3d')],_0x17cfbd,'\x0a')},getCustomFields(_0x121487[_0x46d1('0x3e')],_0x17cfbd)),'auth':_0x456608,'json':!![]};return rp(_0xeac57a)['then'](function(_0x2af7e4){logger['info']('['+[_0x3ab56d[_0x46d1('0x12')]()]+']\x20POST\x20incident\x20entity\x20schema',_0x2af7e4[_0x46d1('0xe')]);_0x4c8042['ticketId']=_0x2af7e4[_0x46d1('0xe')][_0x46d1('0x1d')];_0x4c8042['ticketNumber']=_0x2af7e4[_0x46d1('0xe')][_0x46d1('0x3f')];logger[_0x46d1('0x11')]('['+[_0x3ab56d[_0x46d1('0x12')]()]+']\x20getTicket\x20crm',_0x4c8042);_0x2d6540(_0x4c8042);})['catch'](function(_0x1b1d00){logger['error']('['+[_0x3ab56d[_0x46d1('0x12')]()]+']',_0x1b1d00[_0x46d1('0x16')]);_0x1f8506(_0x1b1d00[_0x46d1('0x16')]);});});};}function createRemoteTag(_0x42a217,_0x19c7ad,_0x373727,_0xcdef37){return new Promise(function(_0x27124d,_0x30880c){var _0x3ff59e={'method':_0x46d1('0x22'),'uri':_0x373727+_0x46d1('0x40')+'?'+_0xcdef37,'body':{'short_description':_0x42a217,'global':!![],'active':!![],'name':_0x42a217},'auth':_0x19c7ad,'json':!![]};return rp(_0x3ff59e)[_0x46d1('0xd')](function(_0x387352){var _0x3faeea=_0x387352[_0x46d1('0xe')][_0x46d1('0x1d')];_0x27124d(_0x3faeea);});});}function getRemoteTag(_0x3de3f7,_0x4a16a9,_0x303e1,_0x35814b,_0x407f71){return new Promise(function(_0x42877e,_0x2e4ff1){var _0x8b719a={'method':_0x46d1('0xc'),'uri':_0x303e1+_0x46d1('0x40')+_0x46d1('0x41')+_0x3de3f7+'&'+_0x35814b,'auth':_0x4a16a9,'json':!![]};return rp(_0x8b719a)[_0x46d1('0xd')](function(_0x39bed3){if(_0x39bed3[_0x46d1('0xe')][_0x46d1('0xf')]>0x0){var _0x3f34f7=_0x39bed3[_0x46d1('0xe')][0x0][_0x46d1('0x1d')];_0x42877e(_0x3f34f7);}else{return createRemoteTag(_0x3de3f7,_0x4a16a9,_0x303e1,_0x35814b)[_0x46d1('0xd')](function(_0x23cd35){_0x42877e(_0x23cd35);});}});});}function assignTagToIncident(_0x25ce66,_0x5e698d,_0x2244ab,_0x802c54,_0x2586e3){return new Promise(function(_0x39c699,_0x398eba){var _0x2acce7={'method':_0x46d1('0x22'),'uri':_0x2244ab+_0x46d1('0x42')+'?'+_0x2586e3,'body':{'label':_0x25ce66,'table':_0x46d1('0x3a'),'id_type':_0x46d1('0x43'),'table_key':_0x802c54[_0x46d1('0x44')],'title':_0x46d1('0x45')+_0x802c54[_0x46d1('0x46')],'id_display':_0x802c54[_0x46d1('0x46')]},'auth':_0x5e698d,'json':!![]};return rp(_0x2acce7)[_0x46d1('0xd')](function(_0x24e219){_0x39c699();})['catch'](function(){_0x39c699();});});}function manageTags(_0x21fbac,_0xc72c9c,_0x20dd27,_0x35e469,_0x4fae69,_0x1792e3,_0x193012){return new Promise(function(_0x455df4,_0x5eed58){var _0x321abe=[];_0xc72c9c[_0x46d1('0x47')](function(_0x2838b1){_0x321abe[_0x46d1('0x48')](getRemoteTag(_0x2838b1,_0x20dd27,_0x35e469,_0x1792e3,_0x193012));});return Promise[_0x46d1('0x49')](_0x321abe)['then'](function(_0x1cfae6){if(_0x1cfae6[_0x46d1('0xf')]){logger[_0x46d1('0x11')]('['+[_0x21fbac[_0x46d1('0x12')]()]+_0x46d1('0x4a'),_0x1cfae6);var _0x1a91bf=[];_0x1cfae6[_0x46d1('0x47')](function(_0x54d24b){_0x1a91bf['push'](assignTagToIncident(_0x54d24b,_0x20dd27,_0x35e469,_0x4fae69,_0x1792e3));});return Promise[_0x46d1('0x49')](_0x1a91bf)[_0x46d1('0xd')](function(){_0x455df4();})[_0x46d1('0x14')](function(){_0x455df4();});}else{_0x455df4();}});});}function getTags(_0x363dae,_0x47d840,_0x2d37b2,_0x3fad28,_0x778d4,_0x3a8dc){return function(_0x4ff88c){return new Promise(function(_0x6e2a10,_0x1adc82){var _0x3fea4c=[];var _0x5a99ec=_0x3fad28[_0x46d1('0x4b')];if(_0x5a99ec&&_0x5a99ec[_0x46d1('0xf')]>0x0){_0x3fea4c=_['map'](_0x5a99ec,_0x46d1('0x38'));}if(_0x3fea4c['length']>0x0){return manageTags(_0x363dae,_0x3fea4c,_0x47d840,_0x2d37b2,_0x4ff88c,_0x778d4,_0x3a8dc)[_0x46d1('0xd')](function(){_0x6e2a10(_0x4ff88c);});}else{_0x6e2a10(_0x4ff88c);}});};}function emit(_0x4eeeff,_0x2d7cab,_0x132272){var _0x21e4ec='%26sysparm_record_target%3Dincident'+'%26sysparm_record_row%3D1%26sysparm_record_rows%3D39'+_0x46d1('0x4c')+_0x46d1('0x4d');var _0x3dea23={'uri':_0x4eeeff+_0x46d1('0x4e')+_0x132272+_0x21e4ec};io['to'](util['format'](_0x46d1('0x4f'),_0x2d7cab))[_0x46d1('0x50')](_0x46d1('0x51'),_0x3dea23);}exports['cs']=function(_0x4bae04,_0x5c44f8,_0x2b395f,_0x4b57f8,_0x47d506,_0x2e4557,_0x312bcd,_0x3992f7){var _0x5e724a={};var _0x5ab0c7={'user':_0x2e4557[_0x46d1('0x52')],'pass':_0x2e4557['password']};var _0x2da2d2='sysparm_limit=1';var _0x1eba7b=_0x46d1('0x53');_0x2e4557[_0x46d1('0x54')]=intUtil[_0x46d1('0x55')](_0x2e4557[_0x46d1('0x54')]);_0x2e4557[_0x46d1('0x56')]=intUtil[_0x46d1('0x55')](_0x2e4557[_0x46d1('0x56')]);var _0x3d21dc=util[_0x46d1('0x57')](_0x46d1('0x58'),_0x2e4557[_0x46d1('0x54')]);_0x5e724a['userEmail']=!_[_0x46d1('0x59')](_0x4b57f8)?_0x4b57f8[_0x46d1('0x5a')]:null;_0x5e724a[_0x46d1('0x1e')]=_0x2e4557[_0x46d1('0x5a')];_0x5e724a[_0x46d1('0x24')]=_0x3992f7['toLowerCase']()===_0x46d1('0x39')?_0x5c44f8[_0x46d1('0x5b')]:_0x5c44f8[_0x46d1('0x5c')];_0x5e724a['callDirection']=_0x3992f7===_0x46d1('0x5d')||_0x3992f7===_0x46d1('0x5e')?'queue':'outbound';var _0x26c6de=util[_0x46d1('0x57')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x2e4557[_0x46d1('0x56')],_0x5c44f8[_0x46d1('0x5f')],md5(_0x5c44f8['uniqueid']));if(_0x47d506&&_0x47d506[_0x46d1('0x60')]){logger[_0x46d1('0x11')]('[QUEUE]',_0x46d1('0x61'));_0x5c44f8['recordingURL']=_0x26c6de;}else if(_0x312bcd&&_0x312bcd[_0x46d1('0x62')]&&_0x312bcd[_0x46d1('0x62')]!=='none'){logger[_0x46d1('0x11')](_0x46d1('0x63'),'Recording\x20is\x20enabled!');_0x5c44f8['recordingURL']=_0x26c6de;}else{_0x5c44f8[_0x46d1('0x64')]='';}return getAdminUser(_0x3992f7,_0x5ab0c7,_0x5e724a,_0x3d21dc,_0x1eba7b,_0x2da2d2)[_0x46d1('0xd')](getUser(_0x3992f7,_0x5ab0c7,_0x3d21dc,_0x1eba7b,_0x2da2d2))[_0x46d1('0xd')](getEndUser(_0x3992f7,_0x5ab0c7,_0x3d21dc,_0x1eba7b,_0x2da2d2))[_0x46d1('0xd')](getTicket(_0x3992f7,_0x5ab0c7,_0x3d21dc,_0x2b395f,_0x5c44f8,_0x1eba7b))['then'](function(_0x392c88){logger['info'](util[_0x46d1('0x57')](_0x46d1('0x65'),_0x392c88[_0x46d1('0x44')]));logger[_0x46d1('0x11')](util[_0x46d1('0x57')](_0x46d1('0x66'),_0x3992f7));if(_0x3992f7!==_0x46d1('0x5e')){logger[_0x46d1('0x11')]('['+[_0x3992f7[_0x46d1('0x12')]()]+']',_0x46d1('0x67'));emit(_0x2e4557[_0x46d1('0x54')],_0x4b57f8['name'],_0x392c88[_0x46d1('0x44')]);}})['catch'](function(_0x2595a7){logger[_0x46d1('0x15')]('['+[_0x3992f7[_0x46d1('0x12')]()]+_0x46d1('0x68'),util[_0x46d1('0x69')](_0x2595a7,{'showHidden':!![],'depth':null}));});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7b89=['recordingFormat','Recording\x20is\x20enabled!','The\x20User\x20ID\x20is:','destcalleridname','destcalleridnum','Outbound','contacts','[OUTBOUND]','user:%s','catch','unmanaged','lastevent','toUpperCase','isNil','The\x20Ticket\x20ID\x20is:','lodash','request-promise','bluebird','md5','util','ioredis','../../../../config/environment','../../../../config/logger','redis','defaults','localhost','socket.io-emitter','emit','info','Creating\x20new\x20ticket...','name','getString','Subjects','created_by','description','Descriptions','date_start','replace','duration_hours','duration_minutes','parent_type','Contacts','parent_name','direction','length','forEach','push','idField','variableName','set_entry','JSON','stringify','apiKey','base64','get_server_info','Getting\x20agent\x20with\x20name','get_entry_list','Employees','format','then','entry_list','find','name_value_list','value','resolve','user_id','user_name','contacts.phone_home\x20=\x20\x22%s\x22','phone_home','Enduser\x20found!','Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!','first_name','Enduser\x20created.','debug','[HTTP]','merge','map','type','customField','nameField','toLowerCase','content','custom_fields','variable','toString','customVariable','Variable','POST','login','username','password','PLAIN','xCALLY\x20Motion\x20integration','sessionID','Account\x20%d\x20is\x20not\x20valid','set_relationship','Calls','queue','remoteUri','serverUrl','stripTrailingSlash','uri','[QUEUE]','recordingURL','uniqueid','calleridname','calleridnum','The\x20Enduser\x20ID\x20is:','Fields','Inbound','Ticket\x20created!','users','version','charAt','%s/#bwc/index.php?module=Calls&action=EditView&record=%s','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...','trigger:browser:url','error','outbound','%s/service/v4_1/rest.php'];(function(_0x4f1d02,_0x4a4694){var _0x52fda1=function(_0x4091fe){while(--_0x4091fe){_0x4f1d02['push'](_0x4f1d02['shift']());}};_0x52fda1(++_0x4a4694);}(_0x7b89,0x87));var _0x97b8=function(_0x5ac1ff,_0x4638f6){_0x5ac1ff=_0x5ac1ff-0x0;var _0x3267f8=_0x7b89[_0x5ac1ff];return _0x3267f8;};'use strict';var _=require(_0x97b8('0x0'));var rp=require(_0x97b8('0x1'));var BPromise=require(_0x97b8('0x2'));var md5=require(_0x97b8('0x3'));var util=require(_0x97b8('0x4'));var Redis=require(_0x97b8('0x5'));var intUtil=require('./util');var config=require(_0x97b8('0x6'));var logger=require(_0x97b8('0x7'))('sugarcrm');config[_0x97b8('0x8')]=_[_0x97b8('0x9')](config[_0x97b8('0x8')],{'host':_0x97b8('0xa'),'port':0x18eb});var io=require(_0x97b8('0xb'))(new Redis(config['redis']));var def={'method':'POST','json':!![]};function emit(_0x411f1d,_0xae95,_0x5b64de){io['to'](_0x411f1d)[_0x97b8('0xc')](_0xae95,_0x5b64de);}function getTicket(_0x8b4956,_0x480b3d,_0x5ce5a8,_0x1b143f,_0x3d895f,_0x2e1822,_0x58d20e,_0xf85663){logger[_0x97b8('0xd')](_0x97b8('0xe'));var _0x442694=new Date();var _0x54900d=[{'name':_0x97b8('0xf'),'value':intUtil[_0x97b8('0x10')](_0x1b143f[_0x97b8('0x11')],_0x3d895f,'\x20')},{'name':'assigned_user_id','value':_0x480b3d['id']},{'name':_0x97b8('0x12'),'value':_0x480b3d['id']},{'name':_0x97b8('0x13'),'value':intUtil[_0x97b8('0x10')](_0x1b143f[_0x97b8('0x14')],_0x3d895f,'\x0a')},{'name':_0x97b8('0x15'),'value':_0x442694['toISOString']()['slice'](0x0,0x13)[_0x97b8('0x16')]('T','\x20')},{'name':_0x97b8('0x17'),'value':'0'},{'name':_0x97b8('0x18'),'value':'15'},{'name':'parent_id','value':_0x5ce5a8['id']},{'name':_0x97b8('0x19'),'value':_0x97b8('0x1a')},{'name':_0x97b8('0x1b'),'value':_0x5ce5a8[_0x97b8('0xf')]},{'name':_0x97b8('0x1c'),'value':_0xf85663}];if(_0x2e1822[_0x97b8('0x1d')]){_[_0x97b8('0x1e')](_0x2e1822,function(_0x5530d8){if(_0x3d895f[_0x5530d8['variableName']]){_0x54900d[_0x97b8('0x1f')]({'name':_0x5530d8[_0x97b8('0x20')],'value':_0x3d895f[_0x5530d8[_0x97b8('0x21')]]});}});}return request({'form':{'method':_0x97b8('0x22'),'input_type':_0x97b8('0x23'),'response_type':'JSON','rest_data':JSON[_0x97b8('0x24')]({'session':_0x58d20e['id'],'module_name':'Calls','name_value_list':_0x54900d})}});}function getAuth(_0x176db0){return util['format']('Basic\x20%s',new Buffer(_0x176db0[_0x97b8('0x25')]+':X')['toString'](_0x97b8('0x26')));}function getServerInfo(_0x323cfb){return request({'form':{'method':_0x97b8('0x27'),'input_type':'JSON','response_type':_0x97b8('0x23'),'rest_data':JSON[_0x97b8('0x24')]({'session':_0x323cfb['id']})}});}function getUser(_0x52cd03,_0x1a4d73,_0x15fb0e){if(!_['isNil'](_0x1a4d73)){logger[_0x97b8('0xd')](_0x97b8('0x28'),_0x1a4d73);return request({'form':{'method':_0x97b8('0x29'),'input_type':_0x97b8('0x23'),'response_type':_0x97b8('0x23'),'rest_data':JSON[_0x97b8('0x24')]({'session':_0x15fb0e['id'],'module_name':_0x97b8('0x2a'),'query':util[_0x97b8('0x2b')]('INSTR\x20(\x20users.user_name,\x20\x22%s\x22)\x20>\x200',_0x1a4d73),'order_by':'','offset':'0','select_fields':['id',_0x97b8('0xf'),'user_name'],'link_name_to_fields_array':[],'max_results':-0x1,'deleted':'0'})}})[_0x97b8('0x2c')](function(_0xf14bcb){if(_0xf14bcb[_0x97b8('0x2d')][_0x97b8('0x1d')]){var _0x24e1a2=_[_0x97b8('0x2e')](_0xf14bcb['entry_list'],function(_0x1c6e50){return _0x1c6e50[_0x97b8('0x2f')]['user_name'][_0x97b8('0x30')]===_0x1a4d73;});if(_0x24e1a2){logger['info']('Agent\x20found!');return BPromise[_0x97b8('0x31')]({'id':_0x24e1a2[_0x97b8('0x2f')]['id'][_0x97b8('0x30')],'name':_0x24e1a2[_0x97b8('0x2f')][_0x97b8('0xf')]['value']});}}logger[_0x97b8('0xd')]('Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!');return BPromise[_0x97b8('0x31')]({'id':_0x15fb0e[_0x97b8('0x2f')][_0x97b8('0x32')]['value'],'name':_0x15fb0e['name_value_list'][_0x97b8('0x33')][_0x97b8('0x30')]});});}else{logger[_0x97b8('0xd')]('Agent\x20not\x20available,\x20using\x20the\x20admin\x20account!');return BPromise['resolve']({'id':_0x15fb0e[_0x97b8('0x2f')][_0x97b8('0x32')]['value'],'name':_0x15fb0e[_0x97b8('0x2f')]['user_name'][_0x97b8('0x30')]});}}function getEndUser(_0x1c350b,_0x275a49,_0x541c7c,_0x23eeb0){logger[_0x97b8('0xd')]('Searching\x20enduser\x20with\x20phone',_0x541c7c);return request({'form':{'method':_0x97b8('0x29'),'input_type':_0x97b8('0x23'),'response_type':_0x97b8('0x23'),'rest_data':JSON[_0x97b8('0x24')]({'session':_0x23eeb0['id'],'module_name':'Contacts','query':util[_0x97b8('0x2b')](_0x97b8('0x34'),_0x541c7c),'order_by':'','offset':'0','select_fields':['id',_0x97b8('0xf'),_0x97b8('0x35')],'link_name_to_fields_array':[],'max_results':-0x1,'deleted':'0'})}})['then'](function(_0x277f91){if(_0x277f91['entry_list']['length']){var _0x8f609f=_['find'](_0x277f91['entry_list'],function(_0xd81bc2){return _0xd81bc2[_0x97b8('0x2f')][_0x97b8('0x35')]['value']===_0x541c7c;});if(_0x8f609f){logger[_0x97b8('0xd')](_0x97b8('0x36'));return BPromise[_0x97b8('0x31')]({'id':_0x8f609f['name_value_list']['id'][_0x97b8('0x30')],'name':_0x8f609f['name_value_list'][_0x97b8('0xf')][_0x97b8('0x30')],'phone':_0x8f609f['name_value_list']['phone_home'][_0x97b8('0x30')]});}}else{logger[_0x97b8('0xd')](_0x97b8('0x37'));return request({'form':{'method':_0x97b8('0x22'),'input_type':'JSON','response_type':_0x97b8('0x23'),'rest_data':JSON[_0x97b8('0x24')]({'session':_0x23eeb0['id'],'module_name':_0x97b8('0x1a'),'name_value_list':[{'name':_0x97b8('0x38'),'value':_0x275a49!=='<unknown>'?_0x275a49:util['format']('Caller\x20-\x20%s',_0x541c7c)},{'name':_0x97b8('0x35'),'value':_0x541c7c}]})}})['then'](function(_0x12288d){logger[_0x97b8('0xd')](_0x97b8('0x39'));return BPromise[_0x97b8('0x31')]({'id':_0x12288d['id'],'name':_0x12288d['entry_list'][_0x97b8('0x38')][_0x97b8('0x30')],'phone':_0x12288d[_0x97b8('0x2d')][_0x97b8('0x35')][_0x97b8('0x30')]});});}});}function request(_0x5150ac){logger[_0x97b8('0x3a')](_0x97b8('0x3b'),JSON[_0x97b8('0x24')](_0x5150ac));return rp(_[_0x97b8('0x3c')](def,_0x5150ac));}function getTags(_0xbf76a2,_0x184db2){var _0x5c44f3=[];if(_0xbf76a2&&_0xbf76a2['length']>0x0){_0x5c44f3=_[_0x97b8('0x3d')](_0xbf76a2,_0x184db2);}return _0x5c44f3;}function getCustomFields(_0x2ce13a,_0x396c81){var _0x13c05d=[];var _0x25b33a={'custom_fields':[]};if(_0x2ce13a['length']>0x0){_['forEach'](_0x2ce13a,function(_0xb8147a){if(_0xb8147a[_0x97b8('0x3e')]==='string'&&_0xb8147a['nameField']&&!_0xb8147a[_0x97b8('0x3f')]){_0x25b33a[_0xb8147a[_0x97b8('0x40')][_0x97b8('0x41')]()]=_0xb8147a[_0x97b8('0x42')]['toString']();}else if(_0xb8147a[_0x97b8('0x3e')]==='string'&&_0xb8147a[_0x97b8('0x20')]&&_0xb8147a['customField']){_0x25b33a[_0x97b8('0x43')][_0x97b8('0x1f')]({'id':_0xb8147a[_0x97b8('0x20')],'value':_0xb8147a[_0x97b8('0x42')]['toString']()});}else if(_0xb8147a[_0x97b8('0x3e')]===_0x97b8('0x44')&&_0xb8147a[_0x97b8('0x21')]&&_0xb8147a[_0x97b8('0x20')]&&_0xb8147a[_0x97b8('0x3f')]){_0x396c81[_0xb8147a[_0x97b8('0x21')]]&&_0x25b33a[_0x97b8('0x43')][_0x97b8('0x1f')]({'id':_0xb8147a[_0x97b8('0x20')],'value':_0x396c81[_0xb8147a['variableName']][_0x97b8('0x45')]()});}else if(_0xb8147a[_0x97b8('0x3e')]===_0x97b8('0x46')&&_0xb8147a[_0x97b8('0x47')]&&_0xb8147a[_0x97b8('0x47')]['name']&&_0xb8147a['idField']&&_0xb8147a[_0x97b8('0x3f')]){_0x396c81[_0xb8147a['Variable'][_0x97b8('0xf')][_0x97b8('0x41')]()]&&_0x25b33a[_0x97b8('0x43')][_0x97b8('0x1f')]({'id':_0xb8147a[_0x97b8('0x20')],'value':_0x396c81[_0xb8147a['Variable'][_0x97b8('0xf')][_0x97b8('0x41')]()][_0x97b8('0x45')]()});}});}return _0x25b33a;}function getConnection(_0x1243af){return request({'method':_0x97b8('0x48'),'form':{'method':_0x97b8('0x49'),'input_type':_0x97b8('0x23'),'response_type':_0x97b8('0x23'),'rest_data':JSON[_0x97b8('0x24')]({'user_auth':{'user_name':_0x1243af[_0x97b8('0x4a')],'password':_0x1243af[_0x97b8('0x4b')],'encryption':_0x97b8('0x4c')},'application':_0x97b8('0x4d')})}})[_0x97b8('0x2c')](function(_0x5da060){var _0x243d7d=_0x5da060;if(_0x243d7d['id']){def[_0x97b8('0x4e')]=_0x243d7d['id'];return BPromise[_0x97b8('0x31')](_0x243d7d);}else{throw new Error(util[_0x97b8('0x2b')](_0x97b8('0x4f'),_0x1243af['id']));}});}function setRelationship(_0x713328,_0x4761ff,_0x44b82f,_0x4efa08){return request({'form':{'method':_0x97b8('0x50'),'input_type':_0x97b8('0x23'),'response_type':'JSON','rest_data':JSON['stringify']({'session':_0x713328['id'],'module_name':_0x97b8('0x51'),'module_id':_0x44b82f['id'],'link_field_name':_0x4efa08,'related_ids':[_0x4761ff['id']],'name_value_list':[],'delete':0x0})}});}exports[_0x97b8('0x52')]=function(_0x2ec505,_0x6e1036,_0x24f873,_0x1fec12,_0xbf2aef,_0x24fa48){var _0x14b35c,_0x15e588,_0x19fb56,_0x46ef1c;_0x24fa48[_0x97b8('0x53')]=intUtil['stripTrailingSlash'](_0x24fa48[_0x97b8('0x53')]);_0x24fa48[_0x97b8('0x54')]=intUtil[_0x97b8('0x55')](_0x24fa48[_0x97b8('0x54')]);def[_0x97b8('0x56')]=util['format']('%s/service/v4_1/rest.php',_0x24fa48[_0x97b8('0x53')]);if(_0xbf2aef&&_0xbf2aef['monitor_format']){logger[_0x97b8('0xd')](_0x97b8('0x57'),'Recording\x20is\x20enabled!');_0x6e1036[_0x97b8('0x58')]=util[_0x97b8('0x2b')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x24fa48[_0x97b8('0x54')],_0x6e1036['uniqueid'],md5(_0x6e1036[_0x97b8('0x59')]));}else{_0x6e1036[_0x97b8('0x58')]='';}return getConnection(_0x24fa48)[_0x97b8('0x2c')](function(_0x1653a4){_0x46ef1c=_0x1653a4;return getUser(_0x24fa48,_0x1fec12[_0x97b8('0xf')],_0x46ef1c);})[_0x97b8('0x2c')](function(_0x44d6da){_0x14b35c=_0x44d6da;logger[_0x97b8('0xd')]('The\x20User\x20ID\x20is:',_0x14b35c['id']);return getEndUser(_0x24fa48,_0x6e1036[_0x97b8('0x5a')],_0x6e1036[_0x97b8('0x5b')],_0x46ef1c);})[_0x97b8('0x2c')](function(_0x11f965){_0x15e588=_0x11f965;logger[_0x97b8('0xd')](_0x97b8('0x5c'),_0x15e588['id']);return getTicket(_0x24fa48,_0x14b35c,_0x15e588,_0x24f873,_0x6e1036,_0x24f873[_0x97b8('0x5d')],_0x46ef1c,_0x97b8('0x5e'));})[_0x97b8('0x2c')](function(_0x2d5fab){_0x19fb56=_0x2d5fab;logger[_0x97b8('0xd')](_0x97b8('0x5f'));logger['info']('The\x20Ticket\x20ID\x20is:',_0x19fb56['id']);return setRelationship(_0x46ef1c,_0x14b35c,_0x19fb56,_0x97b8('0x60'));})[_0x97b8('0x2c')](function(){return setRelationship(_0x46ef1c,_0x15e588,_0x19fb56,'contacts');})[_0x97b8('0x2c')](function(){return getServerInfo(_0x46ef1c);})[_0x97b8('0x2c')](function(_0x12b71a){var _0x338554=parseInt(_0x12b71a[_0x97b8('0x61')][_0x97b8('0x62')](0x0));var _0x5e3cff=util[_0x97b8('0x2b')]('%s/index.php?action=ajaxui#ajaxUILoc=index.php%3Fmodule%3DCalls%26action%3DEditView%26record%3D%s',_0x24fa48[_0x97b8('0x53')],_0x19fb56['id']);if(_0x338554>0x6){_0x5e3cff=util['format'](_0x97b8('0x63'),_0x24fa48[_0x97b8('0x53')],_0x19fb56['id']);}logger[_0x97b8('0xd')](_0x97b8('0x57'),_0x97b8('0x64'));emit(util['format']('user:%s',_0x1fec12[_0x97b8('0xf')]),_0x97b8('0x65'),{'uri':_0x5e3cff});})['catch'](function(_0x5e94fc){logger[_0x97b8('0x66')]('[QUEUE]',JSON[_0x97b8('0x24')](_0x5e94fc));});};exports[_0x97b8('0x67')]=function(_0xd76b46,_0x51bf00,_0x3ea64c,_0x4ed0fe,_0x4cfdd4,_0x3cbf87,_0x1a9fa2){var _0x545f73,_0x4b38cb,_0x4e88a2,_0x4a02d9;_0x3cbf87[_0x97b8('0x53')]=intUtil[_0x97b8('0x55')](_0x3cbf87[_0x97b8('0x53')]);_0x3cbf87[_0x97b8('0x54')]=intUtil[_0x97b8('0x55')](_0x3cbf87[_0x97b8('0x54')]);def[_0x97b8('0x56')]=util['format'](_0x97b8('0x68'),_0x3cbf87[_0x97b8('0x53')]);if(_0x1a9fa2&&_0x1a9fa2[_0x97b8('0x69')]&&_0x1a9fa2[_0x97b8('0x69')]!=='none'){logger['info']('[OUTBOUND]',_0x97b8('0x6a'));_0x51bf00[_0x97b8('0x58')]=util[_0x97b8('0x2b')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x3cbf87[_0x97b8('0x54')],_0x51bf00['uniqueid'],md5(_0x51bf00[_0x97b8('0x59')]));}return getConnection(_0x3cbf87)[_0x97b8('0x2c')](function(_0x440c1f){_0x4a02d9=_0x440c1f;return getUser(_0x3cbf87,_0x4ed0fe[_0x97b8('0xf')],_0x4a02d9);})[_0x97b8('0x2c')](function(_0x1b3dbd){_0x545f73=_0x1b3dbd;logger[_0x97b8('0xd')](_0x97b8('0x6b'),_0x545f73['id']);return getEndUser(_0x3cbf87,_0x51bf00[_0x97b8('0x6c')],_0x51bf00[_0x97b8('0x6d')],_0x4a02d9);})[_0x97b8('0x2c')](function(_0x3c86c8){_0x4b38cb=_0x3c86c8;logger[_0x97b8('0xd')]('The\x20Enduser\x20ID\x20is:',_0x4b38cb['id']);return getTicket(_0x3cbf87,_0x545f73,_0x4b38cb,_0x3ea64c,_0x51bf00,_0x3ea64c[_0x97b8('0x5d')],_0x4a02d9,_0x97b8('0x6e'));})[_0x97b8('0x2c')](function(_0x179f7c){_0x4e88a2=_0x179f7c;logger[_0x97b8('0xd')](_0x97b8('0x5f'));logger[_0x97b8('0xd')]('The\x20Ticket\x20ID\x20is:',_0x4e88a2['id']);return setRelationship(_0x4a02d9,_0x545f73,_0x4e88a2,'users');})[_0x97b8('0x2c')](function(){return setRelationship(_0x4a02d9,_0x4b38cb,_0x4e88a2,_0x97b8('0x6f'));})['then'](function(){return getServerInfo(_0x4a02d9);})[_0x97b8('0x2c')](function(_0x58630a){var _0x2658d8=parseInt(_0x58630a[_0x97b8('0x61')]['charAt'](0x0));var _0x5c96cd=util[_0x97b8('0x2b')]('%s/index.php?action=ajaxui#ajaxUILoc=index.php%3Fmodule%3DCalls%26action%3DEditView%26record%3D%s',_0x3cbf87[_0x97b8('0x53')],_0x4e88a2['id']);if(_0x2658d8>0x6){_0x5c96cd=util[_0x97b8('0x2b')](_0x97b8('0x63'),_0x3cbf87[_0x97b8('0x53')],_0x4e88a2['id']);}logger['info'](_0x97b8('0x70'),_0x97b8('0x64'));emit(util[_0x97b8('0x2b')](_0x97b8('0x71'),_0x4ed0fe[_0x97b8('0xf')]),_0x97b8('0x65'),{'uri':_0x5c96cd});})[_0x97b8('0x72')](function(_0x16ff49){logger[_0x97b8('0x66')](_0x97b8('0x70'),JSON[_0x97b8('0x24')](_0x16ff49));});};exports[_0x97b8('0x73')]=function(_0x25a126,_0x5f0108,_0xb1171e,_0x44d46f,_0x1b963d,_0x34e2ed){var _0x235c36,_0x3039ea,_0x290a9b,_0x44f997;_0x34e2ed['remoteUri']=intUtil[_0x97b8('0x55')](_0x34e2ed[_0x97b8('0x53')]);_0x34e2ed[_0x97b8('0x54')]=intUtil[_0x97b8('0x55')](_0x34e2ed[_0x97b8('0x54')]);def['uri']=util[_0x97b8('0x2b')](_0x97b8('0x68'),_0x34e2ed[_0x97b8('0x53')]);if(_0x1b963d&&_0x1b963d['monitor_format']){logger[_0x97b8('0xd')]('['+_0x5f0108[_0x97b8('0x74')][_0x97b8('0x75')]()+']',_0x97b8('0x6a'));_0x5f0108[_0x97b8('0x58')]=util[_0x97b8('0x2b')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x34e2ed[_0x97b8('0x54')],_0x5f0108['uniqueid'],md5(_0x5f0108[_0x97b8('0x59')]));}else{_0x5f0108['recordingURL']='';}return getConnection(_0x34e2ed)[_0x97b8('0x2c')](function(_0x49fde2){_0x44f997=_0x49fde2;if(!_[_0x97b8('0x76')](_0x44d46f)){return getUser(_0x34e2ed,_0x44d46f['name'],_0x44f997);}else{return getUser(_0x34e2ed,null,_0x44f997);}})[_0x97b8('0x2c')](function(_0x139bdf){_0x235c36=_0x139bdf;logger[_0x97b8('0xd')]('The\x20User\x20ID\x20is:',_0x235c36['id']);return getEndUser(_0x34e2ed,_0x5f0108['calleridname'],_0x5f0108[_0x97b8('0x5b')],_0x44f997);})[_0x97b8('0x2c')](function(_0x101e9b){_0x3039ea=_0x101e9b;logger[_0x97b8('0xd')](_0x97b8('0x5c'),_0x3039ea['id']);return getTicket(_0x34e2ed,_0x235c36,_0x3039ea,_0xb1171e,_0x5f0108,_0xb1171e[_0x97b8('0x5d')],_0x44f997,_0x97b8('0x5e'));})[_0x97b8('0x2c')](function(_0x4a0689){_0x290a9b=_0x4a0689;logger['info'](_0x97b8('0x5f'));logger[_0x97b8('0xd')](_0x97b8('0x77'),_0x290a9b['id']);return setRelationship(_0x44f997,_0x235c36,_0x290a9b,_0x97b8('0x60'));})['then'](function(){return setRelationship(_0x44f997,_0x3039ea,_0x290a9b,_0x97b8('0x6f'));})[_0x97b8('0x2c')](function(){return getServerInfo(_0x44f997);})[_0x97b8('0x72')](function(_0x32556e){logger[_0x97b8('0x66')]('['+_0x5f0108[_0x97b8('0x74')][_0x97b8('0x75')]()+']',JSON['stringify'](_0x32556e));});};
\ No newline at end of file
+var _0xacfc=['string','customField','nameField','toLowerCase','content','custom_fields','variable','Variable','push','login','password','xCALLY\x20Motion\x20integration','sessionID','Account\x20%d\x20is\x20not\x20valid','set_relationship','queue','remoteUri','stripTrailingSlash','serverUrl','uri','%s/service/v4_1/rest.php','monitor_format','[QUEUE]','Recording\x20is\x20enabled!','uniqueid','recordingURL','The\x20User\x20ID\x20is:','calleridnum','The\x20Enduser\x20ID\x20is:','Inbound','Ticket\x20created!','users','contacts','%s/index.php?action=ajaxui#ajaxUILoc=index.php%3Fmodule%3DCalls%26action%3DEditView%26record%3D%s','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...','user:%s','trigger:browser:url','catch','error','outbound','recordingFormat','none','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','destcalleridname','destcalleridnum','Fields','Outbound','The\x20Ticket\x20ID\x20is:','version','charAt','[OUTBOUND]','unmanaged','lastevent','toUpperCase','calleridname','lodash','request-promise','bluebird','md5','util','ioredis','./util','../../../../config/logger','sugarcrm','defaults','localhost','socket.io-emitter','redis','info','Creating\x20new\x20ticket...','name','getString','description','Descriptions','date_start','slice','duration_hours','parent_id','Contacts','parent_name','direction','length','forEach','variableName','idField','set_entry','JSON','stringify','Calls','Basic\x20%s','toString','get_server_info','isNil','get_entry_list','Employees','INSTR\x20(\x20users.user_name,\x20\x22%s\x22)\x20>\x200','then','entry_list','find','name_value_list','value','Agent\x20found!','Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!','resolve','user_id','user_name','Agent\x20not\x20available,\x20using\x20the\x20admin\x20account!','Searching\x20enduser\x20with\x20phone','format','contacts.phone_home\x20=\x20\x22%s\x22','phone_home','Enduser\x20found!','Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!','first_name','<unknown>','Caller\x20-\x20%s','Enduser\x20created.','debug','merge','map','type'];(function(_0x52f9a1,_0xedca68){var _0x5327ba=function(_0x6b908d){while(--_0x6b908d){_0x52f9a1['push'](_0x52f9a1['shift']());}};_0x5327ba(++_0xedca68);}(_0xacfc,0x1a2));var _0xcacf=function(_0x2c645f,_0x35e968){_0x2c645f=_0x2c645f-0x0;var _0x14b72f=_0xacfc[_0x2c645f];return _0x14b72f;};'use strict';var _=require(_0xcacf('0x0'));var rp=require(_0xcacf('0x1'));var BPromise=require(_0xcacf('0x2'));var md5=require(_0xcacf('0x3'));var util=require(_0xcacf('0x4'));var Redis=require(_0xcacf('0x5'));var intUtil=require(_0xcacf('0x6'));var config=require('../../../../config/environment');var logger=require(_0xcacf('0x7'))(_0xcacf('0x8'));config['redis']=_[_0xcacf('0x9')](config['redis'],{'host':_0xcacf('0xa'),'port':0x18eb});var io=require(_0xcacf('0xb'))(new Redis(config[_0xcacf('0xc')]));var def={'method':'POST','json':!![]};function emit(_0x28f95d,_0x3ed010,_0x623110){io['to'](_0x28f95d)['emit'](_0x3ed010,_0x623110);}function getTicket(_0x16a7e8,_0x4291b4,_0x1e797a,_0x2d0184,_0x58215d,_0x11231a,_0x51601f,_0x5c51c8){logger[_0xcacf('0xd')](_0xcacf('0xe'));var _0xce8063=new Date();var _0x25adde=[{'name':_0xcacf('0xf'),'value':intUtil[_0xcacf('0x10')](_0x2d0184['Subjects'],_0x58215d,'\x20')},{'name':'assigned_user_id','value':_0x4291b4['id']},{'name':'created_by','value':_0x4291b4['id']},{'name':_0xcacf('0x11'),'value':intUtil['getString'](_0x2d0184[_0xcacf('0x12')],_0x58215d,'\x0a')},{'name':_0xcacf('0x13'),'value':_0xce8063['toISOString']()[_0xcacf('0x14')](0x0,0x13)['replace']('T','\x20')},{'name':_0xcacf('0x15'),'value':'0'},{'name':'duration_minutes','value':'15'},{'name':_0xcacf('0x16'),'value':_0x1e797a['id']},{'name':'parent_type','value':_0xcacf('0x17')},{'name':_0xcacf('0x18'),'value':_0x1e797a['name']},{'name':_0xcacf('0x19'),'value':_0x5c51c8}];if(_0x11231a[_0xcacf('0x1a')]){_[_0xcacf('0x1b')](_0x11231a,function(_0x5a6b2d){if(_0x58215d[_0x5a6b2d[_0xcacf('0x1c')]]){_0x25adde['push']({'name':_0x5a6b2d[_0xcacf('0x1d')],'value':_0x58215d[_0x5a6b2d[_0xcacf('0x1c')]]});}});}return request({'form':{'method':_0xcacf('0x1e'),'input_type':_0xcacf('0x1f'),'response_type':_0xcacf('0x1f'),'rest_data':JSON[_0xcacf('0x20')]({'session':_0x51601f['id'],'module_name':_0xcacf('0x21'),'name_value_list':_0x25adde})}});}function getAuth(_0x18bb36){return util['format'](_0xcacf('0x22'),new Buffer(_0x18bb36['apiKey']+':X')[_0xcacf('0x23')]('base64'));}function getServerInfo(_0x2c68cb){return request({'form':{'method':_0xcacf('0x24'),'input_type':'JSON','response_type':_0xcacf('0x1f'),'rest_data':JSON['stringify']({'session':_0x2c68cb['id']})}});}function getUser(_0x31ffc0,_0x1d8e65,_0x10f701){if(!_[_0xcacf('0x25')](_0x1d8e65)){logger[_0xcacf('0xd')]('Getting\x20agent\x20with\x20name',_0x1d8e65);return request({'form':{'method':_0xcacf('0x26'),'input_type':_0xcacf('0x1f'),'response_type':_0xcacf('0x1f'),'rest_data':JSON['stringify']({'session':_0x10f701['id'],'module_name':_0xcacf('0x27'),'query':util['format'](_0xcacf('0x28'),_0x1d8e65),'order_by':'','offset':'0','select_fields':['id',_0xcacf('0xf'),'user_name'],'link_name_to_fields_array':[],'max_results':-0x1,'deleted':'0'})}})[_0xcacf('0x29')](function(_0x393d2f){if(_0x393d2f[_0xcacf('0x2a')][_0xcacf('0x1a')]){var _0x192e6c=_[_0xcacf('0x2b')](_0x393d2f[_0xcacf('0x2a')],function(_0xef579b){return _0xef579b[_0xcacf('0x2c')]['user_name'][_0xcacf('0x2d')]===_0x1d8e65;});if(_0x192e6c){logger['info'](_0xcacf('0x2e'));return BPromise['resolve']({'id':_0x192e6c['name_value_list']['id']['value'],'name':_0x192e6c['name_value_list'][_0xcacf('0xf')][_0xcacf('0x2d')]});}}logger[_0xcacf('0xd')](_0xcacf('0x2f'));return BPromise[_0xcacf('0x30')]({'id':_0x10f701['name_value_list'][_0xcacf('0x31')]['value'],'name':_0x10f701[_0xcacf('0x2c')][_0xcacf('0x32')]['value']});});}else{logger[_0xcacf('0xd')](_0xcacf('0x33'));return BPromise[_0xcacf('0x30')]({'id':_0x10f701[_0xcacf('0x2c')][_0xcacf('0x31')][_0xcacf('0x2d')],'name':_0x10f701['name_value_list'][_0xcacf('0x32')][_0xcacf('0x2d')]});}}function getEndUser(_0x25c171,_0xd70e01,_0x400a93,_0x1113df){logger['info'](_0xcacf('0x34'),_0x400a93);return request({'form':{'method':'get_entry_list','input_type':_0xcacf('0x1f'),'response_type':_0xcacf('0x1f'),'rest_data':JSON['stringify']({'session':_0x1113df['id'],'module_name':_0xcacf('0x17'),'query':util[_0xcacf('0x35')](_0xcacf('0x36'),_0x400a93),'order_by':'','offset':'0','select_fields':['id',_0xcacf('0xf'),_0xcacf('0x37')],'link_name_to_fields_array':[],'max_results':-0x1,'deleted':'0'})}})[_0xcacf('0x29')](function(_0x322551){if(_0x322551[_0xcacf('0x2a')][_0xcacf('0x1a')]){var _0xa0f1c4=_[_0xcacf('0x2b')](_0x322551[_0xcacf('0x2a')],function(_0x439225){return _0x439225[_0xcacf('0x2c')]['phone_home'][_0xcacf('0x2d')]===_0x400a93;});if(_0xa0f1c4){logger[_0xcacf('0xd')](_0xcacf('0x38'));return BPromise['resolve']({'id':_0xa0f1c4[_0xcacf('0x2c')]['id'][_0xcacf('0x2d')],'name':_0xa0f1c4[_0xcacf('0x2c')][_0xcacf('0xf')][_0xcacf('0x2d')],'phone':_0xa0f1c4['name_value_list']['phone_home'][_0xcacf('0x2d')]});}}else{logger[_0xcacf('0xd')](_0xcacf('0x39'));return request({'form':{'method':_0xcacf('0x1e'),'input_type':_0xcacf('0x1f'),'response_type':'JSON','rest_data':JSON[_0xcacf('0x20')]({'session':_0x1113df['id'],'module_name':_0xcacf('0x17'),'name_value_list':[{'name':_0xcacf('0x3a'),'value':_0xd70e01!==_0xcacf('0x3b')?_0xd70e01:util[_0xcacf('0x35')](_0xcacf('0x3c'),_0x400a93)},{'name':_0xcacf('0x37'),'value':_0x400a93}]})}})[_0xcacf('0x29')](function(_0x300e6d){logger[_0xcacf('0xd')](_0xcacf('0x3d'));return BPromise[_0xcacf('0x30')]({'id':_0x300e6d['id'],'name':_0x300e6d[_0xcacf('0x2a')][_0xcacf('0x3a')][_0xcacf('0x2d')],'phone':_0x300e6d['entry_list'][_0xcacf('0x37')]['value']});});}});}function request(_0x2982f1){logger[_0xcacf('0x3e')]('[HTTP]',JSON['stringify'](_0x2982f1));return rp(_[_0xcacf('0x3f')](def,_0x2982f1));}function getTags(_0x36b6f4,_0x4b1b84){var _0x383988=[];if(_0x36b6f4&&_0x36b6f4[_0xcacf('0x1a')]>0x0){_0x383988=_[_0xcacf('0x40')](_0x36b6f4,_0x4b1b84);}return _0x383988;}function getCustomFields(_0x530a3b,_0x276eca){var _0x2401de=[];var _0xc134b7={'custom_fields':[]};if(_0x530a3b[_0xcacf('0x1a')]>0x0){_[_0xcacf('0x1b')](_0x530a3b,function(_0x104aba){if(_0x104aba[_0xcacf('0x41')]===_0xcacf('0x42')&&_0x104aba['nameField']&&!_0x104aba[_0xcacf('0x43')]){_0xc134b7[_0x104aba[_0xcacf('0x44')][_0xcacf('0x45')]()]=_0x104aba[_0xcacf('0x46')]['toString']();}else if(_0x104aba[_0xcacf('0x41')]===_0xcacf('0x42')&&_0x104aba[_0xcacf('0x1d')]&&_0x104aba[_0xcacf('0x43')]){_0xc134b7[_0xcacf('0x47')]['push']({'id':_0x104aba['idField'],'value':_0x104aba[_0xcacf('0x46')][_0xcacf('0x23')]()});}else if(_0x104aba[_0xcacf('0x41')]===_0xcacf('0x48')&&_0x104aba[_0xcacf('0x1c')]&&_0x104aba['idField']&&_0x104aba['customField']){_0x276eca[_0x104aba['variableName']]&&_0xc134b7[_0xcacf('0x47')]['push']({'id':_0x104aba[_0xcacf('0x1d')],'value':_0x276eca[_0x104aba[_0xcacf('0x1c')]]['toString']()});}else if(_0x104aba['type']==='customVariable'&&_0x104aba[_0xcacf('0x49')]&&_0x104aba[_0xcacf('0x49')][_0xcacf('0xf')]&&_0x104aba['idField']&&_0x104aba[_0xcacf('0x43')]){_0x276eca[_0x104aba[_0xcacf('0x49')][_0xcacf('0xf')]['toLowerCase']()]&&_0xc134b7[_0xcacf('0x47')][_0xcacf('0x4a')]({'id':_0x104aba[_0xcacf('0x1d')],'value':_0x276eca[_0x104aba['Variable'][_0xcacf('0xf')][_0xcacf('0x45')]()]['toString']()});}});}return _0xc134b7;}function getConnection(_0x4ea4dd){return request({'method':'POST','form':{'method':_0xcacf('0x4b'),'input_type':_0xcacf('0x1f'),'response_type':'JSON','rest_data':JSON[_0xcacf('0x20')]({'user_auth':{'user_name':_0x4ea4dd['username'],'password':_0x4ea4dd[_0xcacf('0x4c')],'encryption':'PLAIN'},'application':_0xcacf('0x4d')})}})[_0xcacf('0x29')](function(_0x36b77f){var _0x4edc58=_0x36b77f;if(_0x4edc58['id']){def[_0xcacf('0x4e')]=_0x4edc58['id'];return BPromise['resolve'](_0x4edc58);}else{throw new Error(util[_0xcacf('0x35')](_0xcacf('0x4f'),_0x4ea4dd['id']));}});}function setRelationship(_0x458b82,_0x9b636e,_0x398a30,_0x2585bc){return request({'form':{'method':_0xcacf('0x50'),'input_type':_0xcacf('0x1f'),'response_type':_0xcacf('0x1f'),'rest_data':JSON['stringify']({'session':_0x458b82['id'],'module_name':_0xcacf('0x21'),'module_id':_0x398a30['id'],'link_field_name':_0x2585bc,'related_ids':[_0x9b636e['id']],'name_value_list':[],'delete':0x0})}});}exports[_0xcacf('0x51')]=function(_0x12c940,_0x2e3a3d,_0x5931f8,_0x158599,_0x1794cb,_0x1c3c5c){var _0x38b860,_0x394458,_0x56db45,_0x4be162;_0x1c3c5c[_0xcacf('0x52')]=intUtil[_0xcacf('0x53')](_0x1c3c5c[_0xcacf('0x52')]);_0x1c3c5c[_0xcacf('0x54')]=intUtil[_0xcacf('0x53')](_0x1c3c5c['serverUrl']);def[_0xcacf('0x55')]=util[_0xcacf('0x35')](_0xcacf('0x56'),_0x1c3c5c[_0xcacf('0x52')]);if(_0x1794cb&&_0x1794cb[_0xcacf('0x57')]){logger[_0xcacf('0xd')](_0xcacf('0x58'),_0xcacf('0x59'));_0x2e3a3d['recordingURL']=util[_0xcacf('0x35')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x1c3c5c[_0xcacf('0x54')],_0x2e3a3d['uniqueid'],md5(_0x2e3a3d[_0xcacf('0x5a')]));}else{_0x2e3a3d[_0xcacf('0x5b')]='';}return getConnection(_0x1c3c5c)['then'](function(_0x7192c9){_0x4be162=_0x7192c9;return getUser(_0x1c3c5c,_0x158599[_0xcacf('0xf')],_0x4be162);})[_0xcacf('0x29')](function(_0x3f4906){_0x38b860=_0x3f4906;logger['info'](_0xcacf('0x5c'),_0x38b860['id']);return getEndUser(_0x1c3c5c,_0x2e3a3d['calleridname'],_0x2e3a3d[_0xcacf('0x5d')],_0x4be162);})[_0xcacf('0x29')](function(_0x307772){_0x394458=_0x307772;logger['info'](_0xcacf('0x5e'),_0x394458['id']);return getTicket(_0x1c3c5c,_0x38b860,_0x394458,_0x5931f8,_0x2e3a3d,_0x5931f8['Fields'],_0x4be162,_0xcacf('0x5f'));})[_0xcacf('0x29')](function(_0x43d2be){_0x56db45=_0x43d2be;logger[_0xcacf('0xd')](_0xcacf('0x60'));logger[_0xcacf('0xd')]('The\x20Ticket\x20ID\x20is:',_0x56db45['id']);return setRelationship(_0x4be162,_0x38b860,_0x56db45,_0xcacf('0x61'));})['then'](function(){return setRelationship(_0x4be162,_0x394458,_0x56db45,_0xcacf('0x62'));})[_0xcacf('0x29')](function(){return getServerInfo(_0x4be162);})[_0xcacf('0x29')](function(_0x2c3a99){var _0x13bf7c=parseInt(_0x2c3a99['version']['charAt'](0x0));var _0x3726ac=util['format'](_0xcacf('0x63'),_0x1c3c5c[_0xcacf('0x52')],_0x56db45['id']);if(_0x13bf7c>0x6){_0x3726ac=util['format']('%s/#bwc/index.php?module=Calls&action=EditView&record=%s',_0x1c3c5c[_0xcacf('0x52')],_0x56db45['id']);}logger[_0xcacf('0xd')]('[QUEUE]',_0xcacf('0x64'));emit(util['format'](_0xcacf('0x65'),_0x158599[_0xcacf('0xf')]),_0xcacf('0x66'),{'uri':_0x3726ac});})[_0xcacf('0x67')](function(_0x10162d){logger[_0xcacf('0x68')](_0xcacf('0x58'),JSON[_0xcacf('0x20')](_0x10162d));});};exports[_0xcacf('0x69')]=function(_0x39f82d,_0x1dc8d1,_0x4ac683,_0xd796a7,_0x336b89,_0x27e19c,_0x56cd53){var _0x1e684d,_0x4857b7,_0x591164,_0xdc1dc6;_0x27e19c[_0xcacf('0x52')]=intUtil[_0xcacf('0x53')](_0x27e19c[_0xcacf('0x52')]);_0x27e19c[_0xcacf('0x54')]=intUtil[_0xcacf('0x53')](_0x27e19c[_0xcacf('0x54')]);def['uri']=util[_0xcacf('0x35')](_0xcacf('0x56'),_0x27e19c[_0xcacf('0x52')]);if(_0x56cd53&&_0x56cd53['recordingFormat']&&_0x56cd53[_0xcacf('0x6a')]!==_0xcacf('0x6b')){logger[_0xcacf('0xd')]('[OUTBOUND]',_0xcacf('0x59'));_0x1dc8d1[_0xcacf('0x5b')]=util[_0xcacf('0x35')](_0xcacf('0x6c'),_0x27e19c['serverUrl'],_0x1dc8d1[_0xcacf('0x5a')],md5(_0x1dc8d1[_0xcacf('0x5a')]));}return getConnection(_0x27e19c)[_0xcacf('0x29')](function(_0xa5a174){_0xdc1dc6=_0xa5a174;return getUser(_0x27e19c,_0xd796a7[_0xcacf('0xf')],_0xdc1dc6);})['then'](function(_0x16c1ed){_0x1e684d=_0x16c1ed;logger['info']('The\x20User\x20ID\x20is:',_0x1e684d['id']);return getEndUser(_0x27e19c,_0x1dc8d1[_0xcacf('0x6d')],_0x1dc8d1[_0xcacf('0x6e')],_0xdc1dc6);})[_0xcacf('0x29')](function(_0x541fb4){_0x4857b7=_0x541fb4;logger[_0xcacf('0xd')](_0xcacf('0x5e'),_0x4857b7['id']);return getTicket(_0x27e19c,_0x1e684d,_0x4857b7,_0x4ac683,_0x1dc8d1,_0x4ac683[_0xcacf('0x6f')],_0xdc1dc6,_0xcacf('0x70'));})[_0xcacf('0x29')](function(_0x13d024){_0x591164=_0x13d024;logger['info']('Ticket\x20created!');logger[_0xcacf('0xd')](_0xcacf('0x71'),_0x591164['id']);return setRelationship(_0xdc1dc6,_0x1e684d,_0x591164,'users');})[_0xcacf('0x29')](function(){return setRelationship(_0xdc1dc6,_0x4857b7,_0x591164,'contacts');})['then'](function(){return getServerInfo(_0xdc1dc6);})[_0xcacf('0x29')](function(_0x171287){var _0x1253f8=parseInt(_0x171287[_0xcacf('0x72')][_0xcacf('0x73')](0x0));var _0x2003ba=util['format'](_0xcacf('0x63'),_0x27e19c[_0xcacf('0x52')],_0x591164['id']);if(_0x1253f8>0x6){_0x2003ba=util[_0xcacf('0x35')]('%s/#bwc/index.php?module=Calls&action=EditView&record=%s',_0x27e19c[_0xcacf('0x52')],_0x591164['id']);}logger[_0xcacf('0xd')](_0xcacf('0x74'),_0xcacf('0x64'));emit(util[_0xcacf('0x35')]('user:%s',_0xd796a7[_0xcacf('0xf')]),_0xcacf('0x66'),{'uri':_0x2003ba});})[_0xcacf('0x67')](function(_0x1d47bb){logger[_0xcacf('0x68')]('[OUTBOUND]',JSON[_0xcacf('0x20')](_0x1d47bb));});};exports[_0xcacf('0x75')]=function(_0x583c90,_0x2fea5b,_0x15a80a,_0x2e5d8e,_0x53f971,_0x2d0f47){var _0xeadca6,_0x5c3352,_0x26d053,_0x2ba0a5;_0x2d0f47[_0xcacf('0x52')]=intUtil[_0xcacf('0x53')](_0x2d0f47[_0xcacf('0x52')]);_0x2d0f47[_0xcacf('0x54')]=intUtil['stripTrailingSlash'](_0x2d0f47[_0xcacf('0x54')]);def[_0xcacf('0x55')]=util[_0xcacf('0x35')](_0xcacf('0x56'),_0x2d0f47[_0xcacf('0x52')]);if(_0x53f971&&_0x53f971['monitor_format']){logger[_0xcacf('0xd')]('['+_0x2fea5b[_0xcacf('0x76')][_0xcacf('0x77')]()+']','Recording\x20is\x20enabled!');_0x2fea5b[_0xcacf('0x5b')]=util[_0xcacf('0x35')](_0xcacf('0x6c'),_0x2d0f47[_0xcacf('0x54')],_0x2fea5b[_0xcacf('0x5a')],md5(_0x2fea5b[_0xcacf('0x5a')]));}else{_0x2fea5b[_0xcacf('0x5b')]='';}return getConnection(_0x2d0f47)[_0xcacf('0x29')](function(_0xd7c7f0){_0x2ba0a5=_0xd7c7f0;if(!_[_0xcacf('0x25')](_0x2e5d8e)){return getUser(_0x2d0f47,_0x2e5d8e[_0xcacf('0xf')],_0x2ba0a5);}else{return getUser(_0x2d0f47,null,_0x2ba0a5);}})['then'](function(_0x15304c){_0xeadca6=_0x15304c;logger[_0xcacf('0xd')](_0xcacf('0x5c'),_0xeadca6['id']);return getEndUser(_0x2d0f47,_0x2fea5b[_0xcacf('0x78')],_0x2fea5b[_0xcacf('0x5d')],_0x2ba0a5);})[_0xcacf('0x29')](function(_0x4f6c96){_0x5c3352=_0x4f6c96;logger[_0xcacf('0xd')](_0xcacf('0x5e'),_0x5c3352['id']);return getTicket(_0x2d0f47,_0xeadca6,_0x5c3352,_0x15a80a,_0x2fea5b,_0x15a80a[_0xcacf('0x6f')],_0x2ba0a5,_0xcacf('0x5f'));})[_0xcacf('0x29')](function(_0x2467ad){_0x26d053=_0x2467ad;logger['info'](_0xcacf('0x60'));logger[_0xcacf('0xd')](_0xcacf('0x71'),_0x26d053['id']);return setRelationship(_0x2ba0a5,_0xeadca6,_0x26d053,_0xcacf('0x61'));})['then'](function(){return setRelationship(_0x2ba0a5,_0x5c3352,_0x26d053,_0xcacf('0x62'));})[_0xcacf('0x29')](function(){return getServerInfo(_0x2ba0a5);})[_0xcacf('0x67')](function(_0x2236b1){logger[_0xcacf('0x68')]('['+_0x2fea5b['lastevent']['toUpperCase']()+']',JSON[_0xcacf('0x20')](_0x2236b1));});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x16e5=['keyContent','%s:\x20%s','format','join','stripTrailingSlash','lastIndexOf','test','lodash','sortBy','length','type','push','variable','variableName','customVariable','Variable','name','toLowerCase','toString','keyValue','string','key'];(function(_0x4154dc,_0x5c53c0){var _0x3fcb78=function(_0x5a9aa8){while(--_0x5a9aa8){_0x4154dc['push'](_0x4154dc['shift']());}};_0x3fcb78(++_0x5c53c0);}(_0x16e5,0xe3));var _0x516e=function(_0x58965a,_0x2e71db){_0x58965a=_0x58965a-0x0;var _0x254efc=_0x16e5[_0x58965a];return _0x254efc;};'use strict';var _=require(_0x516e('0x0'));var util=require('util');exports['getString']=function(_0x4646d0,_0xa934bc,_0x43d37b){var _0x2c7d4d=[];if(_0x4646d0['length']>0x0){var _0x1fea1f=_[_0x516e('0x1')](_0x4646d0,['id']);for(var _0x4ca463=0x0;_0x4ca463<_0x1fea1f[_0x516e('0x2')];_0x4ca463++){var _0x2226d5=_0x1fea1f[_0x4ca463];if(_0x2226d5[_0x516e('0x3')]==='string'){_0x2c7d4d[_0x516e('0x4')](_0x2226d5['content']);}else if(_0x2226d5['type']===_0x516e('0x5')&&_0x2226d5[_0x516e('0x6')]){_0xa934bc[_0x2226d5['variableName']]&&_0x2c7d4d[_0x516e('0x4')](_0xa934bc[_0x2226d5['variableName']]['toString']());}else if(_0x2226d5[_0x516e('0x3')]===_0x516e('0x7')&&_0x2226d5[_0x516e('0x8')]&&_0x2226d5[_0x516e('0x8')][_0x516e('0x9')]){_0xa934bc[_0x2226d5[_0x516e('0x8')][_0x516e('0x9')][_0x516e('0xa')]()]&&_0x2c7d4d[_0x516e('0x4')](_0xa934bc[_0x2226d5[_0x516e('0x8')]['name'][_0x516e('0xa')]()][_0x516e('0xb')]());}else if(_0x2226d5[_0x516e('0x3')]===_0x516e('0xc')){if(_0x2226d5['keyType']===_0x516e('0xd')&&_0x2226d5['key']){_0x2c7d4d['push'](util['format']('%s:\x20%s',_0x2226d5[_0x516e('0xe')],_0x2226d5[_0x516e('0xf')]));}else if(_0x2226d5['keyType']===_0x516e('0x5')&&_0x2226d5[_0x516e('0x6')]&&_0x2226d5[_0x516e('0xe')]){_0xa934bc[_0x2226d5[_0x516e('0x6')]]&&_0x2c7d4d[_0x516e('0x4')](util['format'](_0x516e('0x10'),_0x2226d5[_0x516e('0xe')],_0xa934bc[_0x2226d5[_0x516e('0x6')]]));}else if(_0x2226d5['keyType']==='customVariable'&&_0x2226d5['Variable']&&_0x2226d5[_0x516e('0x8')][_0x516e('0x9')]&&_0x2226d5[_0x516e('0xe')]){_0xa934bc[_0x2226d5[_0x516e('0x8')][_0x516e('0x9')][_0x516e('0xa')]()]&&_0x2c7d4d[_0x516e('0x4')](util[_0x516e('0x11')](_0x516e('0x10'),_0x2226d5[_0x516e('0xe')],_0xa934bc[_0x2226d5[_0x516e('0x8')]['name']['toLowerCase']()]));}}}}return _0x2c7d4d[_0x516e('0x12')](_0x43d37b);};exports[_0x516e('0x13')]=function(_0x2739ba){var _0x42dade=_0x2739ba['slice'](-0x1);if(_0x42dade==='/'){_0x2739ba=_0x2739ba['substring'](0x0,_0x2739ba[_0x516e('0x14')](_0x42dade));}return _0x2739ba;};exports['validateEmail']=function(_0xca5f95){if(!_['isNil'](_0xca5f95)&&_0xca5f95!==''){var _0x1cadb8=/^(([^<>()\[\]\\.,;:\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 _0x1cadb8[_0x516e('0x15')](String(_0xca5f95)[_0x516e('0xa')]());}else{return![];}};
\ No newline at end of file
+var _0x1896=['variable','variableName','toString','customVariable','Variable','toLowerCase','name','keyValue','keyType','format','key','keyContent','stripTrailingSlash','lastIndexOf','validateEmail','isNil','test','util','getString','length','sortBy','type','string','push','content'];(function(_0x158b81,_0xcb014f){var _0x4baf83=function(_0x2ff731){while(--_0x2ff731){_0x158b81['push'](_0x158b81['shift']());}};_0x4baf83(++_0xcb014f);}(_0x1896,0x1ec));var _0x6189=function(_0x3ea01f,_0x38d5be){_0x3ea01f=_0x3ea01f-0x0;var _0x527689=_0x1896[_0x3ea01f];return _0x527689;};'use strict';var _=require('lodash');var util=require(_0x6189('0x0'));exports[_0x6189('0x1')]=function(_0x53eea8,_0x5f59ab,_0x3bfe73){var _0x98826a=[];if(_0x53eea8[_0x6189('0x2')]>0x0){var _0x2c1bce=_[_0x6189('0x3')](_0x53eea8,['id']);for(var _0x2f2dfe=0x0;_0x2f2dfe<_0x2c1bce['length'];_0x2f2dfe++){var _0x68fdf7=_0x2c1bce[_0x2f2dfe];if(_0x68fdf7[_0x6189('0x4')]===_0x6189('0x5')){_0x98826a[_0x6189('0x6')](_0x68fdf7[_0x6189('0x7')]);}else if(_0x68fdf7['type']===_0x6189('0x8')&&_0x68fdf7['variableName']){_0x5f59ab[_0x68fdf7[_0x6189('0x9')]]&&_0x98826a[_0x6189('0x6')](_0x5f59ab[_0x68fdf7['variableName']][_0x6189('0xa')]());}else if(_0x68fdf7[_0x6189('0x4')]===_0x6189('0xb')&&_0x68fdf7[_0x6189('0xc')]&&_0x68fdf7[_0x6189('0xc')]['name']){_0x5f59ab[_0x68fdf7[_0x6189('0xc')]['name'][_0x6189('0xd')]()]&&_0x98826a['push'](_0x5f59ab[_0x68fdf7[_0x6189('0xc')][_0x6189('0xe')][_0x6189('0xd')]()][_0x6189('0xa')]());}else if(_0x68fdf7[_0x6189('0x4')]===_0x6189('0xf')){if(_0x68fdf7[_0x6189('0x10')]===_0x6189('0x5')&&_0x68fdf7['key']){_0x98826a[_0x6189('0x6')](util[_0x6189('0x11')]('%s:\x20%s',_0x68fdf7[_0x6189('0x12')],_0x68fdf7[_0x6189('0x13')]));}else if(_0x68fdf7['keyType']===_0x6189('0x8')&&_0x68fdf7[_0x6189('0x9')]&&_0x68fdf7[_0x6189('0x12')]){_0x5f59ab[_0x68fdf7[_0x6189('0x9')]]&&_0x98826a[_0x6189('0x6')](util[_0x6189('0x11')]('%s:\x20%s',_0x68fdf7[_0x6189('0x12')],_0x5f59ab[_0x68fdf7[_0x6189('0x9')]]));}else if(_0x68fdf7[_0x6189('0x10')]===_0x6189('0xb')&&_0x68fdf7[_0x6189('0xc')]&&_0x68fdf7[_0x6189('0xc')]['name']&&_0x68fdf7[_0x6189('0x12')]){_0x5f59ab[_0x68fdf7[_0x6189('0xc')][_0x6189('0xe')][_0x6189('0xd')]()]&&_0x98826a['push'](util[_0x6189('0x11')]('%s:\x20%s',_0x68fdf7[_0x6189('0x12')],_0x5f59ab[_0x68fdf7[_0x6189('0xc')][_0x6189('0xe')]['toLowerCase']()]));}}}}return _0x98826a['join'](_0x3bfe73);};exports[_0x6189('0x14')]=function(_0x32135a){var _0x383b48=_0x32135a['slice'](-0x1);if(_0x383b48==='/'){_0x32135a=_0x32135a['substring'](0x0,_0x32135a[_0x6189('0x15')](_0x383b48));}return _0x32135a;};exports[_0x6189('0x16')]=function(_0x556ebf){if(!_[_0x6189('0x17')](_0x556ebf)&&_0x556ebf!==''){var _0x1a5610=/^(([^<>()\[\]\\.,;:\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 _0x1a5610[_0x6189('0x18')](String(_0x556ebf)[_0x6189('0xd')]());}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(_0x465a0c,_0x19d4d5){var _0x1e202e=function(_0x27bd8a){while(--_0x27bd8a){_0x465a0c['push'](_0x465a0c['shift']());}};_0x1e202e(++_0x19d4d5);}(_0xa9e0,0x123));var _0x0a9e=function(_0x54d4fe,_0x55e869){_0x54d4fe=_0x54d4fe-0x0;var _0x1ab5bb=_0xa9e0[_0x54d4fe];return _0x1ab5bb;};'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(_0x4cd821,_0x287ae4){var _0x470ef9=function(_0x4257a4){while(--_0x4257a4){_0x4cd821['push'](_0x4cd821['shift']());}};_0x470ef9(++_0x287ae4);}(_0x9c44,0x178));var _0x49c4=function(_0x1969a7,_0x5a133a){_0x1969a7=_0x1969a7-0x0;var _0x3d665f=_0x9c44[_0x1969a7];return _0x3d665f;};'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 _0x006b=['util','ioredis','../../../../config/environment','redis','localhost','socket.io-emitter','emit','application/json','info','Creating\x20new\x20ticket...','format','%s/tickets.json','remoteUri','merge','Tags','name','getString','Subjects','Descriptions','Fields','then','ticket','Getting\x20agent\x20with\x20email','%s/search.json','count','results','agent','%s/users/me.json','user','type:user\x20role:end-user\x20phone:%s','length','filter','end-user','first','Enduser\x20found!','%s/users.json','POST','Caller\x20-\x20%s','Enduser\x20created.','authType','password','%s:%s','token','%s/token:%s','base64','[HTTP]','stringify','defaults','GET','map','forEach','includes','string','picklist','type','nameField','toLowerCase','content','idField','custom_fields','push','variable','variableName','customField','customVariable','Variable','toString','stripTrailingSlash','serverUrl','monitor_format','[QUEUE]','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','recordingURL','Authorization','email','The\x20User\x20ID\x20is:','calleridname','The\x20Enduser\x20ID\x20is:','The\x20Ticket\x20ID\x20is:','integrationTab','%s/channels/voice/agents/%d/tickets/%d/display.json','newTab','user:%s','trigger:browser:url','%s/agent/tickets/%s','replace','/api/v2','Zendesk\x20account\x20type\x20not\x20recognized','catch','error','inspect','outbound','none','[OUTBOUND]','Recording\x20is\x20enabled!','destcalleridname','destcalleridnum','Displaying\x20ticket\x20to\x20agent...','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...','[OUTBOUND]\x20Error\x20running\x20Zendesk\x20integration','unmanaged','lastevent','toUpperCase','calleridnum','lodash'];(function(_0x9ab87d,_0x42d344){var _0x5ac1b2=function(_0xec2957){while(--_0xec2957){_0x9ab87d['push'](_0x9ab87d['shift']());}};_0x5ac1b2(++_0x42d344);}(_0x006b,0x69));var _0xb006=function(_0x428521,_0x331516){_0x428521=_0x428521-0x0;var _0x1215e3=_0x006b[_0x428521];return _0x1215e3;};'use strict';var _=require(_0xb006('0x0'));var rp=require('request-promise');var md5=require('md5');var util=require(_0xb006('0x1'));var Redis=require(_0xb006('0x2'));var intUtil=require('./util');var config=require(_0xb006('0x3'));var logger=require('../../../../config/logger')('zendesk');config[_0xb006('0x4')]=_['defaults'](config[_0xb006('0x4')],{'host':_0xb006('0x5'),'port':0x18eb});var io=require(_0xb006('0x6'))(new Redis(config[_0xb006('0x4')]));function emit(_0x123e85,_0x3f53d0,_0x19cc7f){io['to'](_0x123e85)[_0xb006('0x7')](_0x3f53d0,_0x19cc7f);}var headers={'Content-Type':_0xb006('0x8'),'Accept':_0xb006('0x8')};function getTicket(_0x2482d2,_0x1d8c48,_0x132b65,_0x468512,_0x49502e){logger[_0xb006('0x9')](_0xb006('0xa'));return request({'uri':util[_0xb006('0xb')](_0xb006('0xc'),_0x2482d2[_0xb006('0xd')]),'method':'POST','body':{'ticket':_[_0xb006('0xe')]({'requester_id':_0x132b65['id'],'submitter_id':_0x1d8c48?_0x1d8c48['id']:undefined,'assignee_id':_0x1d8c48?_0x1d8c48['id']:undefined,'tags':getTags(_0x468512[_0xb006('0xf')],_0xb006('0x10')),'subject':intUtil[_0xb006('0x11')](_0x468512[_0xb006('0x12')],_0x49502e,'\x20'),'description':intUtil[_0xb006('0x11')](_0x468512[_0xb006('0x13')],_0x49502e,'\x0a'),'comment':{'public':![],'body':intUtil[_0xb006('0x11')](_0x468512['Descriptions'],_0x49502e,'\x0a')}},getCustomFields(_0x468512[_0xb006('0x14')],_0x49502e))}})[_0xb006('0x15')](function(_0x17668c){logger[_0xb006('0x9')]('Ticket\x20created!');return _0x17668c[_0xb006('0x16')];});}function getUser(_0x2e590b,_0xebb8dc){if(intUtil['validateEmail'](_0xebb8dc)){logger['info'](_0xb006('0x17'),_0xebb8dc);return request({'uri':util['format'](_0xb006('0x18'),_0x2e590b[_0xb006('0xd')]),'qs':{'query':util[_0xb006('0xb')]('type:user\x20role:agent\x20email:%s',_0xebb8dc)}})[_0xb006('0x15')](function(_0xe46ef9){if(_0xe46ef9[_0xb006('0x19')]){logger[_0xb006('0x9')]('Agent\x20found!');return _['find'](_0xe46ef9[_0xb006('0x1a')],{'email':_0xebb8dc,'role':_0xb006('0x1b')});}else{logger[_0xb006('0x9')]('Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!');return request({'uri':util[_0xb006('0xb')](_0xb006('0x1c'),_0x2e590b[_0xb006('0xd')])})[_0xb006('0x15')](function(_0x32fbee){logger[_0xb006('0x9')]('Admin\x20account\x20selected.');return _0x32fbee['user'];});}});}else{logger[_0xb006('0x9')]('Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!');return request({'uri':util[_0xb006('0xb')](_0xb006('0x1c'),_0x2e590b[_0xb006('0xd')])})[_0xb006('0x15')](function(_0x5f0981){logger[_0xb006('0x9')]('Admin\x20account\x20selected.');return _0x5f0981[_0xb006('0x1d')];});}}function getEndUser(_0x58b8bd,_0x5ad7b8,_0x2245fc){logger['info']('Searching\x20enduser\x20with\x20phone',_0x2245fc);return request({'uri':util['format']('%s/search.json',_0x58b8bd[_0xb006('0xd')]),'qs':{'query':util[_0xb006('0xb')](_0xb006('0x1e'),_0x2245fc)}})[_0xb006('0x15')](function(_0x41d4c6){var _0x345c7e;if(_0x41d4c6[_0xb006('0x1a')][_0xb006('0x1f')]){_0x41d4c6[_0xb006('0x1a')]=_[_0xb006('0x20')](_0x41d4c6[_0xb006('0x1a')],{'suspended':![],'role':_0xb006('0x21')});if(_0x41d4c6[_0xb006('0x1a')][_0xb006('0x1f')]){_0x345c7e=_[_0xb006('0x22')](_0x41d4c6[_0xb006('0x1a')]);}}if(_0x345c7e){logger[_0xb006('0x9')](_0xb006('0x23'));return _0x345c7e;}else{logger[_0xb006('0x9')]('Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!');return request({'uri':util[_0xb006('0xb')](_0xb006('0x24'),_0x58b8bd['remoteUri']),'method':_0xb006('0x25'),'body':{'user':{'role':_0xb006('0x21'),'name':util[_0xb006('0xb')](_0xb006('0x26'),_0x5ad7b8||_0x2245fc),'phone':_0x2245fc}}})[_0xb006('0x15')](function(_0x2762b7){logger['info'](_0xb006('0x27'));return _0x2762b7['user'];});}});}function getAuth(_0x22766f){var _0x411aa2;if(_0x22766f[_0xb006('0x28')]===_0xb006('0x29')){_0x411aa2=util[_0xb006('0xb')](_0xb006('0x2a'),_0x22766f['username'],_0x22766f[_0xb006('0x29')]);}else if(_0x22766f[_0xb006('0x28')]===_0xb006('0x2b')){_0x411aa2=util[_0xb006('0xb')](_0xb006('0x2c'),_0x22766f['username'],_0x22766f['token']);}return util['format']('Basic\x20%s',new Buffer(_0x411aa2)['toString'](_0xb006('0x2d')));}function request(_0x4c0989){logger['debug'](_0xb006('0x2e'),JSON[_0xb006('0x2f')](_0x4c0989));return rp(_[_0xb006('0x30')](_0x4c0989,{'method':_0xb006('0x31'),'headers':headers,'json':!![]}));}function getTags(_0x31b161,_0x476a1e){var _0x351e70=[];if(_0x31b161&&_0x31b161[_0xb006('0x1f')]>0x0){_0x351e70=_[_0xb006('0x32')](_0x31b161,_0x476a1e);}return _0x351e70;}function getCustomFields(_0x544f7d,_0x228a4b){var _0xbe2da8=[];var _0x32f900={'custom_fields':[]};if(_0x544f7d[_0xb006('0x1f')]>0x0){_[_0xb006('0x33')](_0x544f7d,function(_0xc0943){if(_[_0xb006('0x34')]([_0xb006('0x35'),_0xb006('0x36')],_0xc0943[_0xb006('0x37')])&&_0xc0943[_0xb006('0x38')]&&!_0xc0943['customField']){_0x32f900[_0xc0943[_0xb006('0x38')][_0xb006('0x39')]()]=_0xc0943[_0xb006('0x3a')]['toString']();}else if(_[_0xb006('0x34')](['string',_0xb006('0x36')],_0xc0943[_0xb006('0x37')])&&_0xc0943[_0xb006('0x3b')]&&_0xc0943['customField']){_0x32f900[_0xb006('0x3c')][_0xb006('0x3d')]({'id':_0xc0943['idField'],'value':_0xc0943[_0xb006('0x3a')]['toString']()});}else if(_0xc0943[_0xb006('0x37')]===_0xb006('0x3e')&&_0xc0943[_0xb006('0x3f')]&&_0xc0943[_0xb006('0x3b')]&&_0xc0943[_0xb006('0x40')]){_0x228a4b[_0xc0943['variableName']]&&_0x32f900[_0xb006('0x3c')][_0xb006('0x3d')]({'id':_0xc0943['idField'],'value':_0x228a4b[_0xc0943[_0xb006('0x3f')]]['toString']()});}else if(_0xc0943[_0xb006('0x37')]===_0xb006('0x41')&&_0xc0943[_0xb006('0x42')]&&_0xc0943[_0xb006('0x42')][_0xb006('0x10')]&&_0xc0943['idField']&&_0xc0943[_0xb006('0x40')]){_0x228a4b[_0xc0943[_0xb006('0x42')][_0xb006('0x10')]['toLowerCase']()]&&_0x32f900[_0xb006('0x3c')][_0xb006('0x3d')]({'id':_0xc0943[_0xb006('0x3b')],'value':_0x228a4b[_0xc0943[_0xb006('0x42')][_0xb006('0x10')][_0xb006('0x39')]()][_0xb006('0x43')]()});}});}return _0x32f900;}exports['queue']=function(_0x359901,_0x4e2f95,_0x519534,_0x2fd6c2,_0x563ca2,_0x29d092){var _0x4d2fd5,_0x44ecba;_0x29d092[_0xb006('0xd')]=intUtil[_0xb006('0x44')](_0x29d092[_0xb006('0xd')]);_0x29d092[_0xb006('0x45')]=intUtil[_0xb006('0x44')](_0x29d092[_0xb006('0x45')]);if(_0x563ca2&&_0x563ca2[_0xb006('0x46')]){logger[_0xb006('0x9')](_0xb006('0x47'),'Recording\x20is\x20enabled!');_0x4e2f95['recordingURL']=util['format'](_0xb006('0x48'),_0x29d092[_0xb006('0x45')],_0x4e2f95[_0xb006('0x49')],md5(_0x4e2f95['uniqueid']));}else{_0x4e2f95[_0xb006('0x4a')]='';}headers[_0xb006('0x4b')]=getAuth(_0x29d092);return getUser(_0x29d092,_0x2fd6c2[_0xb006('0x4c')])[_0xb006('0x15')](function(_0x20747e){_0x4d2fd5=_0x20747e;logger['info'](_0xb006('0x4d'),_0x4d2fd5['id']);return getEndUser(_0x29d092,_0x4e2f95[_0xb006('0x4e')],_0x4e2f95['calleridnum']);})['then'](function(_0x5794f7){_0x44ecba=_0x5794f7;logger['info'](_0xb006('0x4f'),_0x44ecba['id']);return getTicket(_0x29d092,_0x4d2fd5,_0x44ecba,_0x519534,_0x4e2f95);})[_0xb006('0x15')](function(_0x13a633){if(_0x13a633){logger[_0xb006('0x9')](_0xb006('0x50'),_0x13a633['id']);switch(_0x29d092['type']){case _0xb006('0x51'):logger[_0xb006('0x9')](_0xb006('0x47'),'Displaying\x20ticket\x20to\x20agent...');return request({'uri':util[_0xb006('0xb')](_0xb006('0x52'),_0x29d092[_0xb006('0xd')],_0x4d2fd5['id'],_0x13a633['id']),'method':_0xb006('0x25')});case _0xb006('0x53'):logger[_0xb006('0x9')](_0xb006('0x47'),'Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...');emit(util['format'](_0xb006('0x54'),_0x2fd6c2[_0xb006('0x10')]),_0xb006('0x55'),{'uri':util['format'](_0xb006('0x56'),_0x29d092[_0xb006('0xd')][_0xb006('0x57')](_0xb006('0x58'),''),_0x13a633['id'])});break;default:logger['error'](_0xb006('0x47'),_0xb006('0x59'));}}})[_0xb006('0x5a')](function(_0x584a70){logger[_0xb006('0x5b')]('[QUEUE]\x20Error\x20running\x20Zendesk\x20integration',util[_0xb006('0x5c')](_0x584a70,{'showHidden':!![],'depth':null}));});};exports[_0xb006('0x5d')]=function(_0x3b092c,_0x256319,_0x53a0db,_0x1e8b03,_0x2098b2,_0x2f4a3b,_0x209fe5){var _0x1459d9,_0x51efe4;_0x2f4a3b[_0xb006('0xd')]=intUtil['stripTrailingSlash'](_0x2f4a3b['remoteUri']);_0x2f4a3b[_0xb006('0x45')]=intUtil['stripTrailingSlash'](_0x2f4a3b[_0xb006('0x45')]);if(_0x209fe5&&_0x209fe5['recordingFormat']&&_0x209fe5['recordingFormat']!==_0xb006('0x5e')){logger[_0xb006('0x9')](_0xb006('0x5f'),_0xb006('0x60'));_0x256319[_0xb006('0x4a')]=util['format']('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x2f4a3b['serverUrl'],_0x256319[_0xb006('0x49')],md5(_0x256319[_0xb006('0x49')]));}headers[_0xb006('0x4b')]=getAuth(_0x2f4a3b);return getUser(_0x2f4a3b,_0x1e8b03[_0xb006('0x4c')])[_0xb006('0x15')](function(_0x260e19){_0x1459d9=_0x260e19;logger[_0xb006('0x9')]('The\x20User\x20ID\x20is:',_0x1459d9['id']);return getEndUser(_0x2f4a3b,_0x256319[_0xb006('0x61')],_0x256319[_0xb006('0x62')]);})[_0xb006('0x15')](function(_0x9c0001){_0x51efe4=_0x9c0001;logger[_0xb006('0x9')](_0xb006('0x4f'),_0x51efe4['id']);return getTicket(_0x2f4a3b,_0x1459d9,_0x51efe4,_0x53a0db,_0x256319);})[_0xb006('0x15')](function(_0x2715b9){if(_0x2715b9){logger[_0xb006('0x9')](_0xb006('0x50'),_0x2715b9['id']);switch(_0x2f4a3b[_0xb006('0x37')]){case'integrationTab':logger[_0xb006('0x9')](_0xb006('0x5f'),_0xb006('0x63'));return request({'uri':util[_0xb006('0xb')]('%s/channels/voice/agents/%d/tickets/%d/display.json',_0x2f4a3b[_0xb006('0xd')],_0x1459d9['id'],_0x2715b9['id']),'method':_0xb006('0x25')});case _0xb006('0x53'):logger[_0xb006('0x9')](_0xb006('0x5f'),_0xb006('0x64'));emit(util[_0xb006('0xb')]('user:%s',_0x1e8b03[_0xb006('0x10')]),_0xb006('0x55'),{'uri':util[_0xb006('0xb')](_0xb006('0x56'),_0x2f4a3b['remoteUri']['replace'](_0xb006('0x58'),''),_0x2715b9['id'])});break;default:logger[_0xb006('0x5b')](_0xb006('0x5f'),'Zendesk\x20account\x20type\x20not\x20recognized');}}})['catch'](function(_0x20cd76){logger['error'](_0xb006('0x65'),util['inspect'](_0x20cd76,{'showHidden':!![],'depth':null}));});};exports[_0xb006('0x66')]=function(_0xe4668b,_0x1a3dd7,_0x2bb07a,_0x21302c,_0x11e43f,_0x31a625){var _0x254ecd,_0xac7653;_0x31a625['remoteUri']=intUtil[_0xb006('0x44')](_0x31a625[_0xb006('0xd')]);_0x31a625[_0xb006('0x45')]=intUtil[_0xb006('0x44')](_0x31a625[_0xb006('0x45')]);if(_0x11e43f&&_0x11e43f[_0xb006('0x46')]){logger[_0xb006('0x9')]('['+_0x1a3dd7[_0xb006('0x67')][_0xb006('0x68')]()+']',_0xb006('0x60'));_0x1a3dd7[_0xb006('0x4a')]=util['format']('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x31a625[_0xb006('0x45')],_0x1a3dd7[_0xb006('0x49')],md5(_0x1a3dd7[_0xb006('0x49')]));}else{_0x1a3dd7[_0xb006('0x4a')]='';}headers[_0xb006('0x4b')]=getAuth(_0x31a625);return getUser(_0x31a625)[_0xb006('0x15')](function(_0xbb1cc2){_0x254ecd=_0xbb1cc2;logger['info'](_0xb006('0x4d'),_0x254ecd['id']);return getEndUser(_0x31a625,_0x1a3dd7[_0xb006('0x4e')],_0x1a3dd7[_0xb006('0x69')]);})[_0xb006('0x15')](function(_0x2d2ebd){_0xac7653=_0x2d2ebd;logger['info']('The\x20Enduser\x20ID\x20is:',_0xac7653['id']);return getTicket(_0x31a625,_0x254ecd,_0xac7653,_0x2bb07a,_0x1a3dd7);})['then'](function(_0x4e35fa){if(_0x4e35fa){logger[_0xb006('0x9')](_0xb006('0x50'),_0x4e35fa['id']);}})[_0xb006('0x5a')](function(_0x5469a6){logger[_0xb006('0x5b')]('['+_0x1a3dd7[_0xb006('0x67')][_0xb006('0x68')]()+']'+'\x20Error\x20running\x20Zendesk\x20integration',util[_0xb006('0x5c')](_0x5469a6,{'showHidden':!![],'depth':null}));});};
\ No newline at end of file
+var _0x0313=['outbound','recordingFormat','[OUTBOUND]','destcalleridname','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...','trigger:browser:url','replace','unmanaged','monitor_format','lastevent','The\x20Enduser\x20ID\x20is:','The\x20Ticket\x20ID\x20is:','\x20Error\x20running\x20Zendesk\x20integration','lodash','request-promise','util','./util','../../../../config/environment','zendesk','redis','defaults','localhost','socket.io-emitter','emit','application/json','info','Creating\x20new\x20ticket...','%s/tickets.json','remoteUri','Tags','name','Subjects','getString','Descriptions','Fields','then','Ticket\x20created!','ticket','format','%s/search.json','count','find','results','agent','Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!','%s/users/me.json','Admin\x20account\x20selected.','user','Searching\x20enduser\x20with\x20phone','type:user\x20role:end-user\x20phone:%s','length','filter','end-user','first','Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!','%s/users.json','POST','Caller\x20-\x20%s','Enduser\x20created.','authType','password','%s:%s','username','token','%s/token:%s','Basic\x20%s','toString','base64','stringify','GET','map','forEach','string','picklist','type','nameField','customField','toLowerCase','content','includes','idField','custom_fields','variable','variableName','push','Variable','stripTrailingSlash','serverUrl','[QUEUE]','Recording\x20is\x20enabled!','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','recordingURL','Authorization','email','The\x20User\x20ID\x20is:','calleridnum','integrationTab','%s/channels/voice/agents/%d/tickets/%d/display.json','newTab','user:%s','%s/agent/tickets/%s','/api/v2','error','Zendesk\x20account\x20type\x20not\x20recognized','catch','[QUEUE]\x20Error\x20running\x20Zendesk\x20integration','inspect'];(function(_0x55257d,_0x3998ec){var _0x4d296d=function(_0x522f05){while(--_0x522f05){_0x55257d['push'](_0x55257d['shift']());}};_0x4d296d(++_0x3998ec);}(_0x0313,0x1bd));var _0x3031=function(_0x365f73,_0x1d093a){_0x365f73=_0x365f73-0x0;var _0x580730=_0x0313[_0x365f73];return _0x580730;};'use strict';var _=require(_0x3031('0x0'));var rp=require(_0x3031('0x1'));var md5=require('md5');var util=require(_0x3031('0x2'));var Redis=require('ioredis');var intUtil=require(_0x3031('0x3'));var config=require(_0x3031('0x4'));var logger=require('../../../../config/logger')(_0x3031('0x5'));config[_0x3031('0x6')]=_[_0x3031('0x7')](config[_0x3031('0x6')],{'host':_0x3031('0x8'),'port':0x18eb});var io=require(_0x3031('0x9'))(new Redis(config[_0x3031('0x6')]));function emit(_0xd49b4c,_0x5e12f7,_0x20546c){io['to'](_0xd49b4c)[_0x3031('0xa')](_0x5e12f7,_0x20546c);}var headers={'Content-Type':_0x3031('0xb'),'Accept':'application/json'};function getTicket(_0xd6aa2c,_0x533a58,_0x1a52a0,_0x2c7b85,_0x1f06e8){logger[_0x3031('0xc')](_0x3031('0xd'));return request({'uri':util['format'](_0x3031('0xe'),_0xd6aa2c[_0x3031('0xf')]),'method':'POST','body':{'ticket':_['merge']({'requester_id':_0x1a52a0['id'],'submitter_id':_0x533a58?_0x533a58['id']:undefined,'assignee_id':_0x533a58?_0x533a58['id']:undefined,'tags':getTags(_0x2c7b85[_0x3031('0x10')],_0x3031('0x11')),'subject':intUtil['getString'](_0x2c7b85[_0x3031('0x12')],_0x1f06e8,'\x20'),'description':intUtil[_0x3031('0x13')](_0x2c7b85['Descriptions'],_0x1f06e8,'\x0a'),'comment':{'public':![],'body':intUtil[_0x3031('0x13')](_0x2c7b85[_0x3031('0x14')],_0x1f06e8,'\x0a')}},getCustomFields(_0x2c7b85[_0x3031('0x15')],_0x1f06e8))}})[_0x3031('0x16')](function(_0x1660ff){logger[_0x3031('0xc')](_0x3031('0x17'));return _0x1660ff[_0x3031('0x18')];});}function getUser(_0x306d9c,_0x3b0ace){if(intUtil['validateEmail'](_0x3b0ace)){logger[_0x3031('0xc')]('Getting\x20agent\x20with\x20email',_0x3b0ace);return request({'uri':util[_0x3031('0x19')](_0x3031('0x1a'),_0x306d9c[_0x3031('0xf')]),'qs':{'query':util['format']('type:user\x20role:agent\x20email:%s',_0x3b0ace)}})[_0x3031('0x16')](function(_0x52d0e2){if(_0x52d0e2[_0x3031('0x1b')]){logger['info']('Agent\x20found!');return _[_0x3031('0x1c')](_0x52d0e2[_0x3031('0x1d')],{'email':_0x3b0ace,'role':_0x3031('0x1e')});}else{logger[_0x3031('0xc')](_0x3031('0x1f'));return request({'uri':util[_0x3031('0x19')](_0x3031('0x20'),_0x306d9c[_0x3031('0xf')])})[_0x3031('0x16')](function(_0x8f7925){logger[_0x3031('0xc')](_0x3031('0x21'));return _0x8f7925[_0x3031('0x22')];});}});}else{logger[_0x3031('0xc')](_0x3031('0x1f'));return request({'uri':util[_0x3031('0x19')]('%s/users/me.json',_0x306d9c[_0x3031('0xf')])})[_0x3031('0x16')](function(_0x4ffa6f){logger[_0x3031('0xc')]('Admin\x20account\x20selected.');return _0x4ffa6f[_0x3031('0x22')];});}}function getEndUser(_0x1a51df,_0xcfd30b,_0x40b44a){logger[_0x3031('0xc')](_0x3031('0x23'),_0x40b44a);return request({'uri':util['format'](_0x3031('0x1a'),_0x1a51df['remoteUri']),'qs':{'query':util[_0x3031('0x19')](_0x3031('0x24'),_0x40b44a)}})['then'](function(_0xa1208b){var _0x31a57c;if(_0xa1208b[_0x3031('0x1d')][_0x3031('0x25')]){_0xa1208b[_0x3031('0x1d')]=_[_0x3031('0x26')](_0xa1208b[_0x3031('0x1d')],{'suspended':![],'role':_0x3031('0x27')});if(_0xa1208b[_0x3031('0x1d')][_0x3031('0x25')]){_0x31a57c=_[_0x3031('0x28')](_0xa1208b['results']);}}if(_0x31a57c){logger[_0x3031('0xc')]('Enduser\x20found!');return _0x31a57c;}else{logger[_0x3031('0xc')](_0x3031('0x29'));return request({'uri':util['format'](_0x3031('0x2a'),_0x1a51df['remoteUri']),'method':_0x3031('0x2b'),'body':{'user':{'role':'end-user','name':util[_0x3031('0x19')](_0x3031('0x2c'),_0xcfd30b||_0x40b44a),'phone':_0x40b44a}}})[_0x3031('0x16')](function(_0x435267){logger['info'](_0x3031('0x2d'));return _0x435267[_0x3031('0x22')];});}});}function getAuth(_0x3edade){var _0x1f0e2c;if(_0x3edade[_0x3031('0x2e')]===_0x3031('0x2f')){_0x1f0e2c=util[_0x3031('0x19')](_0x3031('0x30'),_0x3edade[_0x3031('0x31')],_0x3edade[_0x3031('0x2f')]);}else if(_0x3edade[_0x3031('0x2e')]===_0x3031('0x32')){_0x1f0e2c=util['format'](_0x3031('0x33'),_0x3edade['username'],_0x3edade[_0x3031('0x32')]);}return util[_0x3031('0x19')](_0x3031('0x34'),new Buffer(_0x1f0e2c)[_0x3031('0x35')](_0x3031('0x36')));}function request(_0x25daaa){logger['debug']('[HTTP]',JSON[_0x3031('0x37')](_0x25daaa));return rp(_[_0x3031('0x7')](_0x25daaa,{'method':_0x3031('0x38'),'headers':headers,'json':!![]}));}function getTags(_0x12af1c,_0x4f6510){var _0x545eed=[];if(_0x12af1c&&_0x12af1c[_0x3031('0x25')]>0x0){_0x545eed=_[_0x3031('0x39')](_0x12af1c,_0x4f6510);}return _0x545eed;}function getCustomFields(_0xb2a144,_0x499bc6){var _0x284fe2=[];var _0x2c47e4={'custom_fields':[]};if(_0xb2a144[_0x3031('0x25')]>0x0){_[_0x3031('0x3a')](_0xb2a144,function(_0x5313ce){if(_['includes']([_0x3031('0x3b'),_0x3031('0x3c')],_0x5313ce[_0x3031('0x3d')])&&_0x5313ce[_0x3031('0x3e')]&&!_0x5313ce[_0x3031('0x3f')]){_0x2c47e4[_0x5313ce[_0x3031('0x3e')][_0x3031('0x40')]()]=_0x5313ce[_0x3031('0x41')][_0x3031('0x35')]();}else if(_[_0x3031('0x42')]([_0x3031('0x3b'),_0x3031('0x3c')],_0x5313ce[_0x3031('0x3d')])&&_0x5313ce[_0x3031('0x43')]&&_0x5313ce['customField']){_0x2c47e4[_0x3031('0x44')]['push']({'id':_0x5313ce[_0x3031('0x43')],'value':_0x5313ce[_0x3031('0x41')][_0x3031('0x35')]()});}else if(_0x5313ce[_0x3031('0x3d')]===_0x3031('0x45')&&_0x5313ce[_0x3031('0x46')]&&_0x5313ce['idField']&&_0x5313ce[_0x3031('0x3f')]){_0x499bc6[_0x5313ce[_0x3031('0x46')]]&&_0x2c47e4[_0x3031('0x44')][_0x3031('0x47')]({'id':_0x5313ce['idField'],'value':_0x499bc6[_0x5313ce[_0x3031('0x46')]][_0x3031('0x35')]()});}else if(_0x5313ce[_0x3031('0x3d')]==='customVariable'&&_0x5313ce['Variable']&&_0x5313ce[_0x3031('0x48')][_0x3031('0x11')]&&_0x5313ce[_0x3031('0x43')]&&_0x5313ce[_0x3031('0x3f')]){_0x499bc6[_0x5313ce[_0x3031('0x48')]['name'][_0x3031('0x40')]()]&&_0x2c47e4[_0x3031('0x44')][_0x3031('0x47')]({'id':_0x5313ce[_0x3031('0x43')],'value':_0x499bc6[_0x5313ce[_0x3031('0x48')]['name'][_0x3031('0x40')]()][_0x3031('0x35')]()});}});}return _0x2c47e4;}exports['queue']=function(_0x4690a8,_0x521bff,_0x1c8294,_0x75f6ce,_0x55437a,_0x48b629){var _0x375ba2,_0x142a9c;_0x48b629['remoteUri']=intUtil[_0x3031('0x49')](_0x48b629[_0x3031('0xf')]);_0x48b629['serverUrl']=intUtil[_0x3031('0x49')](_0x48b629[_0x3031('0x4a')]);if(_0x55437a&&_0x55437a['monitor_format']){logger[_0x3031('0xc')](_0x3031('0x4b'),_0x3031('0x4c'));_0x521bff['recordingURL']=util[_0x3031('0x19')](_0x3031('0x4d'),_0x48b629[_0x3031('0x4a')],_0x521bff[_0x3031('0x4e')],md5(_0x521bff[_0x3031('0x4e')]));}else{_0x521bff[_0x3031('0x4f')]='';}headers[_0x3031('0x50')]=getAuth(_0x48b629);return getUser(_0x48b629,_0x75f6ce[_0x3031('0x51')])['then'](function(_0x7aff44){_0x375ba2=_0x7aff44;logger[_0x3031('0xc')](_0x3031('0x52'),_0x375ba2['id']);return getEndUser(_0x48b629,_0x521bff['calleridname'],_0x521bff[_0x3031('0x53')]);})[_0x3031('0x16')](function(_0x504f77){_0x142a9c=_0x504f77;logger[_0x3031('0xc')]('The\x20Enduser\x20ID\x20is:',_0x142a9c['id']);return getTicket(_0x48b629,_0x375ba2,_0x142a9c,_0x1c8294,_0x521bff);})[_0x3031('0x16')](function(_0xc0b8bb){if(_0xc0b8bb){logger[_0x3031('0xc')]('The\x20Ticket\x20ID\x20is:',_0xc0b8bb['id']);switch(_0x48b629[_0x3031('0x3d')]){case _0x3031('0x54'):logger['info']('[QUEUE]','Displaying\x20ticket\x20to\x20agent...');return request({'uri':util[_0x3031('0x19')](_0x3031('0x55'),_0x48b629['remoteUri'],_0x375ba2['id'],_0xc0b8bb['id']),'method':_0x3031('0x2b')});case _0x3031('0x56'):logger['info'](_0x3031('0x4b'),'Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...');emit(util['format'](_0x3031('0x57'),_0x75f6ce[_0x3031('0x11')]),'trigger:browser:url',{'uri':util['format'](_0x3031('0x58'),_0x48b629['remoteUri']['replace'](_0x3031('0x59'),''),_0xc0b8bb['id'])});break;default:logger[_0x3031('0x5a')](_0x3031('0x4b'),_0x3031('0x5b'));}}})[_0x3031('0x5c')](function(_0x13d415){logger[_0x3031('0x5a')](_0x3031('0x5d'),util[_0x3031('0x5e')](_0x13d415,{'showHidden':!![],'depth':null}));});};exports[_0x3031('0x5f')]=function(_0x43393a,_0x48278d,_0x4c0713,_0x265530,_0x1f6e7f,_0x364ce7,_0x398156){var _0x2c98c3,_0x4bde50;_0x364ce7[_0x3031('0xf')]=intUtil[_0x3031('0x49')](_0x364ce7[_0x3031('0xf')]);_0x364ce7[_0x3031('0x4a')]=intUtil[_0x3031('0x49')](_0x364ce7[_0x3031('0x4a')]);if(_0x398156&&_0x398156['recordingFormat']&&_0x398156[_0x3031('0x60')]!=='none'){logger[_0x3031('0xc')](_0x3031('0x61'),_0x3031('0x4c'));_0x48278d['recordingURL']=util[_0x3031('0x19')](_0x3031('0x4d'),_0x364ce7['serverUrl'],_0x48278d[_0x3031('0x4e')],md5(_0x48278d[_0x3031('0x4e')]));}headers[_0x3031('0x50')]=getAuth(_0x364ce7);return getUser(_0x364ce7,_0x265530[_0x3031('0x51')])[_0x3031('0x16')](function(_0x415a1a){_0x2c98c3=_0x415a1a;logger['info']('The\x20User\x20ID\x20is:',_0x2c98c3['id']);return getEndUser(_0x364ce7,_0x48278d[_0x3031('0x62')],_0x48278d['destcalleridnum']);})['then'](function(_0x4a5c46){_0x4bde50=_0x4a5c46;logger['info']('The\x20Enduser\x20ID\x20is:',_0x4bde50['id']);return getTicket(_0x364ce7,_0x2c98c3,_0x4bde50,_0x4c0713,_0x48278d);})[_0x3031('0x16')](function(_0x4c6506){if(_0x4c6506){logger[_0x3031('0xc')]('The\x20Ticket\x20ID\x20is:',_0x4c6506['id']);switch(_0x364ce7[_0x3031('0x3d')]){case _0x3031('0x54'):logger[_0x3031('0xc')](_0x3031('0x61'),'Displaying\x20ticket\x20to\x20agent...');return request({'uri':util[_0x3031('0x19')](_0x3031('0x55'),_0x364ce7['remoteUri'],_0x2c98c3['id'],_0x4c6506['id']),'method':_0x3031('0x2b')});case _0x3031('0x56'):logger[_0x3031('0xc')](_0x3031('0x61'),_0x3031('0x63'));emit(util[_0x3031('0x19')](_0x3031('0x57'),_0x265530[_0x3031('0x11')]),_0x3031('0x64'),{'uri':util[_0x3031('0x19')]('%s/agent/tickets/%s',_0x364ce7['remoteUri'][_0x3031('0x65')](_0x3031('0x59'),''),_0x4c6506['id'])});break;default:logger['error'](_0x3031('0x61'),_0x3031('0x5b'));}}})[_0x3031('0x5c')](function(_0x201ea2){logger['error']('[OUTBOUND]\x20Error\x20running\x20Zendesk\x20integration',util['inspect'](_0x201ea2,{'showHidden':!![],'depth':null}));});};exports[_0x3031('0x66')]=function(_0x31c5dd,_0x329bcf,_0x52046e,_0x161561,_0x39e337,_0x2e2b22){var _0x34b21b,_0x2f935c;_0x2e2b22[_0x3031('0xf')]=intUtil[_0x3031('0x49')](_0x2e2b22['remoteUri']);_0x2e2b22[_0x3031('0x4a')]=intUtil['stripTrailingSlash'](_0x2e2b22[_0x3031('0x4a')]);if(_0x39e337&&_0x39e337[_0x3031('0x67')]){logger['info']('['+_0x329bcf[_0x3031('0x68')]['toUpperCase']()+']',_0x3031('0x4c'));_0x329bcf[_0x3031('0x4f')]=util[_0x3031('0x19')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x2e2b22['serverUrl'],_0x329bcf[_0x3031('0x4e')],md5(_0x329bcf['uniqueid']));}else{_0x329bcf[_0x3031('0x4f')]='';}headers[_0x3031('0x50')]=getAuth(_0x2e2b22);return getUser(_0x2e2b22)[_0x3031('0x16')](function(_0x41e404){_0x34b21b=_0x41e404;logger[_0x3031('0xc')](_0x3031('0x52'),_0x34b21b['id']);return getEndUser(_0x2e2b22,_0x329bcf['calleridname'],_0x329bcf['calleridnum']);})['then'](function(_0x43b93d){_0x2f935c=_0x43b93d;logger['info'](_0x3031('0x69'),_0x2f935c['id']);return getTicket(_0x2e2b22,_0x34b21b,_0x2f935c,_0x52046e,_0x329bcf);})['then'](function(_0x1dd95e){if(_0x1dd95e){logger['info'](_0x3031('0x6a'),_0x1dd95e['id']);}})[_0x3031('0x5c')](function(_0x185b4d){logger[_0x3031('0x5a')]('['+_0x329bcf[_0x3031('0x68')]['toUpperCase']()+']'+_0x3031('0x6b'),util[_0x3031('0x5e')](_0x185b4d,{'showHidden':!![],'depth':null}));});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2180=['[HTTP]','stringify','length','forEach','includes','picklist','idField','content','toString','variable','variableName','Variable','name','toLowerCase','split','isNil','isBefore','expires_in','access_token','zone','https://accounts.zoho.com','https://accounts.zoho.com.au','https://accounts.zoho.in','https://accounts.zoho.com.cn','/oauth/v2/token','clientSecret','refresh_token','then','add','seconds','error','Failing\x20creating\x20the\x20access_token','stack','GET','format','https://www.zohoapis.%s/crm/v2/users','ActiveUsers','Zoho-oauthtoken\x20','users','isArrayLikeObject','findIndex','info','Using\x20the\x20admin\x20account!','profile','Administrator','The\x20failing\x20result\x20is','Unable\x20to\x20retrieve\x20zoho\x20account\x20users:\x20','catch','enduserType','POST','/crm/v2/','startCase','moduleCreate','role','first_name','last_name','data','SUCCESS','details','Error:\x20','log','CREATE\x20ERROR','moduleSearch','contact_lead','https://www.zohoapis.','Contacts','uri','Leads','nothing','contact','lead','/crm/v2/Leads/search?criteria=((Phone:equals:','Creating\x20new\x20call...','administrator','Subject','getString','Description','Descriptions','Who_Id','Full_Name','First_Name','Last_Name','What_Id','$se_module','utc','Call_Duration','endtime','YYYY-MM-DDTHH:mm:ss','starttime','mm:ss','lastevent','called','complete','connect','Answered','rejected','Call_Result','Rejected','abandoned','Abandoned','timeout','Call_Start_Time','outbound','agentcalledAt','merge','Fields','code','Call\x20created!','err','queue','host','stripTrailingSlash','serverUrl','[QUEUE]','recordingURL','/api/voice/recordings/','uniqueid','/downloads?type=uniqueid&token=','calleridname','Displaying\x20call\x20to\x20agent\x20in\x20a\x20new\x20tab...','user:%s','trigger:browser:url','recordingFormat','none','[OUTBOUND]','com','email','The\x20User\x20ID\x20is:','destcalleridname','Outbound','The\x20Call\x20ID\x20is:','https://crm.','toUpperCase','zoho.eu','calleridnum','lodash','request-promise','md5','util','./util','moment','ioredis','zoho','redis','defaults','socket.io-emitter','emit'];(function(_0x50eebf,_0xc133f5){var _0x390281=function(_0x5e2e3b){while(--_0x5e2e3b){_0x50eebf['push'](_0x50eebf['shift']());}};_0x390281(++_0xc133f5);}(_0x2180,0x1ad));var _0x0218=function(_0x3ee55a,_0x19aeea){_0x3ee55a=_0x3ee55a-0x0;var _0x581800=_0x2180[_0x3ee55a];return _0x581800;};'use strict';var _=require(_0x0218('0x0'));var rp=require(_0x0218('0x1'));var md5=require(_0x0218('0x2'));var util=require(_0x0218('0x3'));var intUtil=require(_0x0218('0x4'));var moment=require(_0x0218('0x5'));var Redis=require(_0x0218('0x6'));var BPromise=require('bluebird');var config=require('../../../../config/environment');var logger=require('../../../../config/logger')(_0x0218('0x7'));config[_0x0218('0x8')]=_[_0x0218('0x9')](config[_0x0218('0x8')],{'host':'localhost','port':0x18eb});var io=require(_0x0218('0xa'))(new Redis(config[_0x0218('0x8')]));function emit(_0x10f3b2,_0x2f8424,_0x1d7414){io['to'](_0x10f3b2)[_0x0218('0xb')](_0x2f8424,_0x1d7414);}function request(_0x3d7382){logger['debug'](_0x0218('0xc'),JSON[_0x0218('0xd')](_0x3d7382));return rp(_0x3d7382);}function getCustomFields(_0x579f2c,_0x8c697f){var _0x2abc01={};if(_0x579f2c[_0x0218('0xe')]>0x0){_[_0x0218('0xf')](_0x579f2c,function(_0x4b115d){if(_[_0x0218('0x10')](['string',_0x0218('0x11')],_0x4b115d['type'])&&_0x4b115d[_0x0218('0x12')]){_0x2abc01[_0x4b115d[_0x0218('0x12')]]=_0x4b115d[_0x0218('0x13')][_0x0218('0x14')]();}else if(_0x4b115d['type']===_0x0218('0x15')&&_0x4b115d[_0x0218('0x16')]&&_0x4b115d[_0x0218('0x12')]&&_0x8c697f[_0x4b115d['variableName']]){_0x2abc01[_0x4b115d[_0x0218('0x12')]]=_0x8c697f[_0x4b115d['variableName']][_0x0218('0x14')]();}else if(_0x4b115d['type']==='customVariable'&&_0x4b115d[_0x0218('0x17')]&&_0x4b115d['Variable']['name']&&_0x4b115d[_0x0218('0x12')]&&_0x8c697f[_0x4b115d[_0x0218('0x17')][_0x0218('0x18')][_0x0218('0x19')]()]){_0x2abc01[_0x4b115d['idField']]=_0x8c697f[_0x4b115d[_0x0218('0x17')][_0x0218('0x18')][_0x0218('0x19')]()][_0x0218('0x14')]();}});}return _0x2abc01;}function getName(_0x191ab6){if(_0x191ab6['indexOf']('\x20')>0x0){var _0x382341=_0x191ab6[_0x0218('0x1a')](/ (.+)/);if(_0x382341[0x1]){return _0x382341;}}return[_0x191ab6,_0x191ab6];}var accountsTokens={};function getAccessToken(_0x3211a1){return new Promise(function(_0xea94a2,_0x2fa4a6){if(!_[_0x0218('0x1b')](accountsTokens[_0x3211a1['id']])&&!_[_0x0218('0x1b')](accountsTokens[_0x3211a1['id']]['access_token'])){if(moment()[_0x0218('0x1c')](accountsTokens[_0x3211a1['id']][_0x0218('0x1d')])){_0xea94a2(accountsTokens[_0x3211a1['id']][_0x0218('0x1e')]);}}var _0x28c1ea;switch(_0x3211a1[_0x0218('0x1f')]){case'US':_0x28c1ea=_0x0218('0x20');break;case'AU':_0x28c1ea=_0x0218('0x21');break;case'EU':_0x28c1ea='https://accounts.zoho.eu';break;case'IN':_0x28c1ea=_0x0218('0x22');break;case'CN':_0x28c1ea=_0x0218('0x23');break;default:_0x28c1ea='https://accounts.zoho.eu';break;}var _0x2c3c3c={'method':'POST','uri':_0x28c1ea+_0x0218('0x24'),'qs':{'refresh_token':_0x3211a1['refreshToken'],'client_id':_0x3211a1['clientId'],'client_secret':_0x3211a1[_0x0218('0x25')],'grant_type':_0x0218('0x26')},'json':!![]};return rp(_0x2c3c3c)[_0x0218('0x27')](function(_0x499737){accountsTokens[_0x3211a1['id']]={'access_token':_0x499737[_0x0218('0x1e')],'expires_in':moment()[_0x0218('0x28')](_0x499737[_0x0218('0x1d')],_0x0218('0x29'))};_0xea94a2(_0x499737[_0x0218('0x1e')]);})['catch'](function(_0x2c4f3a){logger[_0x0218('0x2a')](_0x0218('0x2b'),_0x2c4f3a[_0x0218('0x2c')]);_0x2fa4a6(_0x2c4f3a);});});}function getUser(_0x17b5f1,_0x58992d,_0x3180f6,_0x137ed5){logger['info']('Search\x20user');return request({'method':_0x0218('0x2d'),'uri':util[_0x0218('0x2e')](_0x0218('0x2f'),_0x58992d),'qs':{'type':_0x0218('0x30')},'headers':{'Authorization':_0x0218('0x31')+_0x17b5f1},'json':!![]})[_0x0218('0x27')](function(_0x4aa2c1){if(_0x4aa2c1[_0x0218('0x32')]){var _0x5a3b5c=-0x1;if(_[_0x0218('0x33')](_0x4aa2c1[_0x0218('0x32')])){if(!_['isNil'](_0x137ed5)){_0x5a3b5c=_[_0x0218('0x34')](_0x4aa2c1[_0x0218('0x32')],function(_0x33e2c3){return _0x33e2c3['email']===_0x137ed5;});}if(_0x5a3b5c>=0x0){logger[_0x0218('0x35')]('Agent\x20found!');}else{logger['info'](_0x0218('0x36'));_0x5a3b5c=_[_0x0218('0x34')](_0x4aa2c1[_0x0218('0x32')],function(_0x1c5b3a){return _0x1c5b3a['profile']['name']==='Administrator';});}return _0x4aa2c1[_0x0218('0x32')][_0x5a3b5c];}else{if(_0x4aa2c1['user'][_0x0218('0x37')][_0x0218('0x18')]===_0x0218('0x38')){logger[_0x0218('0x35')]('Using\x20the\x20admin\x20account!');user=_0x4aa2c1['user'];return user;}else{logger['error'](_0x0218('0x39'),JSON[_0x0218('0xd')](_0x4aa2c1));throw new Error(_0x0218('0x3a')+JSON[_0x0218('0xd')](_0x4aa2c1));}}}else{logger[_0x0218('0x2a')]('The\x20failing\x20result\x20is',JSON[_0x0218('0xd')](_0x4aa2c1));throw new Error('Unable\x20to\x20retrieve\x20zoho\x20account\x20users:\x20'+JSON[_0x0218('0xd')](_0x4aa2c1));}})[_0x0218('0x3b')](function(_0x9dcea3){console[_0x0218('0x2a')](_0x9dcea3);});}function getZohoUser(_0xf9fd52,_0x7fa80d){return new BPromise(function(_0x4bf27c,_0x1dcd05){request(_0xf9fd52)[_0x0218('0x27')](function(_0x557095){var _0xda8183=null;if(_0x557095){_0xda8183=_0x557095['data'][0x0];_0xda8183[_0x0218('0x3c')]=_0x7fa80d;}_0x4bf27c(_0xda8183);})[_0x0218('0x3b')](function(_0xb97468){_0x1dcd05(_0xb97468);});});}function createEndUser(_0x252561,_0x11d0d6,_0x2a7239,_0xc42a18,_0x338b8c,_0x4b7411){var _0x2a7239=getName(_0x2a7239);return request({'method':_0x0218('0x3d'),'uri':'https://www.zohoapis.'+_0x11d0d6+_0x0218('0x3e')+_[_0x0218('0x3f')](_0x4b7411[_0x0218('0x40')])+'s','body':{'data':[{'Last_Name':_0x2a7239[0x1],'First_Name':_0x2a7239[0x0],'Phone':_0xc42a18,'Owner':{'name':!_[_0x0218('0x1b')](_0x338b8c[_0x0218('0x41')]['name'])?_0x338b8c[_0x0218('0x41')][_0x0218('0x18')]:!_['isNil'](_0x338b8c[_0x0218('0x42')])?_0x338b8c[_0x0218('0x42')]+'\x20'+_0x338b8c[_0x0218('0x43')]:_0x338b8c[_0x0218('0x43')],'id':_0x338b8c['id']}}]},'headers':{'Authorization':_0x0218('0x31')+_0x252561},'json':!![]})['then'](function(_0x4dd956){if(_0x4dd956&&_0x4dd956[_0x0218('0x44')][0x0]['code']===_0x0218('0x45')){var _0x54871d=_0x4dd956[_0x0218('0x44')][0x0][_0x0218('0x46')];_0x54871d[_0x0218('0x3c')]=_['startCase'](_0x4b7411[_0x0218('0x40')])+'s';return _0x54871d;}logger['error']('The\x20failing\x20result\x20is',JSON[_0x0218('0xd')](data));throw new Error(_0x0218('0x47')+JSON[_0x0218('0xd')](data));})['catch'](function(_0x389127){console[_0x0218('0x48')](_0x0218('0x49'),_0x389127);});}function getEndUser(_0x43bc9d,_0x3fd4f5,_0x1aa1db,_0x3190d5,_0x4f46c8,_0x1d03d2,_0x39c206){var _0x44a0a9={'method':_0x0218('0x2d'),'uri':'','headers':{'Authorization':_0x0218('0x31')+_0x43bc9d},'json':!![]};switch(_0x39c206[_0x0218('0x4a')]){case _0x0218('0x4b'):_0x44a0a9['uri']=_0x0218('0x4c')+_0x3fd4f5+'/crm/v2/Contacts/search?criteria=((Phone:equals:'+_0x4f46c8+'))';return getZohoUser(_0x44a0a9,_0x0218('0x4d'))[_0x0218('0x27')](function(_0x236d2d){if(_0x236d2d)return _0x236d2d;_0x44a0a9[_0x0218('0x4e')]=_0x0218('0x4c')+_0x3fd4f5+'/crm/v2/Leads/search?criteria=((Phone:equals:'+_0x4f46c8+'))';return getZohoUser(_0x44a0a9,_0x0218('0x4f'))[_0x0218('0x27')](function(_0x570712){if(_0x570712)return _0x570712;if(_0x39c206[_0x0218('0x40')]!=_0x0218('0x50')){return createEndUser(_0x43bc9d,_0x3fd4f5,_0x3190d5,_0x4f46c8,_0x1d03d2,_0x39c206);}else{return{};}});});break;case _0x0218('0x51'):_0x44a0a9[_0x0218('0x4e')]=_0x0218('0x4c')+_0x3fd4f5+'/crm/v2/Contacts/search?criteria=((Phone:equals:'+_0x4f46c8+'))';return getZohoUser(_0x44a0a9,_0x0218('0x4d'))[_0x0218('0x27')](function(_0x14c05c){if(_0x14c05c)return _0x14c05c;if(_0x39c206[_0x0218('0x40')]!=_0x0218('0x50')){return createEndUser(_0x43bc9d,_0x3fd4f5,_0x3190d5,_0x4f46c8,_0x1d03d2,_0x39c206);}else{return{};}});break;case _0x0218('0x52'):_0x44a0a9['uri']='https://www.zohoapis.'+_0x3fd4f5+_0x0218('0x53')+_0x4f46c8+'))';return getZohoUser(_0x44a0a9,_0x0218('0x4f'))[_0x0218('0x27')](function(_0x2e326e){if(_0x2e326e)return _0x2e326e;if(_0x39c206[_0x0218('0x40')]!=_0x0218('0x50')){return createEndUser(_0x43bc9d,_0x3fd4f5,_0x3190d5,_0x4f46c8,_0x1d03d2,_0x39c206);}else{return{};}});break;}}function getCall(_0x382373,_0x1620f5,_0x320950,_0x5eedfa,_0x28c890,_0x54195b,_0x21361c,_0x2f802b){logger[_0x0218('0x35')](_0x0218('0x54'));var _0x17d4c0={};_0x17d4c0['Owner']={'name':!_[_0x0218('0x1b')](_0x5eedfa[_0x0218('0x41')][_0x0218('0x18')])&&!_[_0x0218('0x1b')](_0x5eedfa[_0x0218('0x37')][_0x0218('0x18')])&&_0x5eedfa[_0x0218('0x37')]['name']===_0x0218('0x55')?_0x5eedfa[_0x0218('0x41')][_0x0218('0x18')]:!_[_0x0218('0x1b')](_0x5eedfa[_0x0218('0x42')])?_0x5eedfa['first_name']+'\x20'+_0x5eedfa[_0x0218('0x43')]:_0x5eedfa[_0x0218('0x43')],'id':_0x5eedfa['id']};_0x17d4c0[_0x0218('0x56')]=intUtil[_0x0218('0x57')](_0x54195b['Subjects'],_0x21361c,'\x20');_0x17d4c0[_0x0218('0x58')]=intUtil[_0x0218('0x57')](_0x54195b[_0x0218('0x59')],_0x21361c,'\x0a');if(_0x28c890[_0x0218('0x3c')]===_0x0218('0x4d')){_0x17d4c0[_0x0218('0x5a')]={'name':!_['isNil'](_0x28c890['Full_Name'])?_0x28c890[_0x0218('0x5b')]:!_[_0x0218('0x1b')](_0x28c890[_0x0218('0x5c')])?_0x28c890[_0x0218('0x5c')]+'\x20'+_0x28c890[_0x0218('0x5d')]:_0x28c890[_0x0218('0x5d')],'id':_0x28c890['id']};}if(_0x28c890[_0x0218('0x3c')]===_0x0218('0x4f')){_0x17d4c0[_0x0218('0x5e')]={'name':!_[_0x0218('0x1b')](_0x28c890['Full_Name'])?_0x28c890[_0x0218('0x5b')]:!_[_0x0218('0x1b')](_0x28c890[_0x0218('0x5c')])?_0x28c890[_0x0218('0x5c')]+'\x20'+_0x28c890[_0x0218('0x5d')]:_0x28c890['Last_Name'],'id':_0x28c890['id']};_0x17d4c0[_0x0218('0x5f')]=_[_0x0218('0x3f')](_0x28c890[_0x0218('0x3c')]);}if(_0x21361c['talktime']){_0x17d4c0['Call_Duration']=moment[_0x0218('0x60')](parseInt(_0x21361c['talktime'])*0x3e8)[_0x0218('0x2e')]('mm:ss');}else if(_0x21361c['answertime']&&_0x21361c['endtime']){_0x17d4c0[_0x0218('0x61')]=moment[_0x0218('0x60')](moment(_0x21361c[_0x0218('0x62')],_0x0218('0x63'))['diff'](moment(_0x21361c[_0x0218('0x64')],'YYYY-MM-DDTHH:mm:ss')))['format'](_0x0218('0x65'));}switch(_0x21361c[_0x0218('0x66')]){case _0x0218('0x67'):_0x17d4c0['Call_Result']='Called';break;case _0x0218('0x68'):case _0x0218('0x69'):_0x17d4c0['Call_Result']=_0x0218('0x6a');break;case _0x0218('0x6b'):_0x17d4c0[_0x0218('0x6c')]=_0x0218('0x6d');break;case _0x0218('0x6e'):_0x17d4c0[_0x0218('0x6c')]=_0x0218('0x6f');break;case _0x0218('0x70'):_0x17d4c0['Call_Result']='Timeout';default:}_0x17d4c0[_0x0218('0x71')]=(_0x2f802b===_0x0218('0x72')?moment(_0x21361c[_0x0218('0x64')])[_0x0218('0x2e')]('YYYY-MM-DDTHH:mm:ss'):moment(_0x21361c[_0x0218('0x73')])['format'](_0x0218('0x63')))||moment()['format']('YYYY-MM-DDTHH:mm:ss');_0x17d4c0['Call_Type']=_0x2f802b||'Inbound';_0x17d4c0=_[_0x0218('0x74')](_0x17d4c0,getCustomFields(_0x54195b[_0x0218('0x75')],_0x21361c));return request({'method':_0x0218('0x3d'),'uri':_0x0218('0x4c')+_0x1620f5+'/crm/v2/Calls','headers':{'Authorization':_0x0218('0x31')+_0x382373},'body':{'data':[_0x17d4c0]},'json':!![]})[_0x0218('0x27')](function(_0x5e994d){if(_0x5e994d&&_0x5e994d[_0x0218('0x44')][0x0][_0x0218('0x76')]===_0x0218('0x45')){logger[_0x0218('0x35')](_0x0218('0x77'));return{'id':_0x5e994d[_0x0218('0x44')][0x0]['details']['id']};}})[_0x0218('0x3b')](function(_0x46d7d8){logger[_0x0218('0x35')](_0x0218('0x78'),_0x46d7d8[_0x0218('0x2c')]);console['log'](_0x0218('0x78'),_0x46d7d8);});}exports[_0x0218('0x79')]=function(_0xeafc60,_0x2b4350,_0x49f6e7,_0x1ce1a3,_0x25073f,_0x43b16b){var _0x735747,_0x3221c3,_0x19ebbf;_0x43b16b[_0x0218('0x7a')]=intUtil[_0x0218('0x7b')](_0x43b16b[_0x0218('0x7a')]);_0x43b16b['serverUrl']=intUtil[_0x0218('0x7b')](_0x43b16b[_0x0218('0x7c')]);if(_0x25073f&&_0x25073f['monitor_format']){logger[_0x0218('0x35')](_0x0218('0x7d'),'Recording\x20is\x20enabled!');_0x2b4350[_0x0218('0x7e')]=_0x43b16b[_0x0218('0x7c')]+_0x0218('0x7f')+_0x2b4350[_0x0218('0x80')]+_0x0218('0x81')+md5(_0x2b4350['uniqueid']);}else{_0x2b4350[_0x0218('0x7e')]='';}var _0x4b1927=_0x43b16b[_0x0218('0x7a')]==='zoho.eu'?'eu':'com';return getAccessToken(_0x43b16b)['then'](function(_0x2728a2){_0x19ebbf=_0x2728a2;return getUser(_0x19ebbf,_0x4b1927,_0x43b16b,_0x1ce1a3['email']);})[_0x0218('0x27')](function(_0x5a37b5){_0x735747=_0x5a37b5;logger['info']('The\x20User\x20ID\x20is:',_0x735747['id']);return getEndUser(_0x19ebbf,_0x4b1927,_0x43b16b,_0x2b4350[_0x0218('0x82')],_0x2b4350['calleridnum'],_0x735747,_0x49f6e7);})[_0x0218('0x27')](function(_0x300d43){_0x3221c3=_0x300d43;return getCall(_0x19ebbf,_0x4b1927,_0x43b16b,_0x735747,_0x3221c3,_0x49f6e7,_0x2b4350,'Inbound');})[_0x0218('0x27')](function(_0x3b531c){if(_0x3b531c){logger[_0x0218('0x35')]('The\x20Call\x20ID\x20is:',_0x3b531c['id']);logger['info']('[QUEUE]',_0x0218('0x83'));emit(util[_0x0218('0x2e')](_0x0218('0x84'),_0x1ce1a3[_0x0218('0x18')]),_0x0218('0x85'),{'uri':'https://crm.'+_0x43b16b[_0x0218('0x7a')]+'/crm/EntityInfo.do?module=Calls&id='+_0x3b531c['id']});}})['catch'](function(_0x86183b){logger[_0x0218('0x2a')](_0x0218('0x7d'),JSON[_0x0218('0xd')](_0x86183b));});};exports['outbound']=function(_0x5db5e5,_0x4f781a,_0x526473,_0x542ff3,_0x20d811,_0x3e43fe,_0x5b44ad){var _0x4fd1f6,_0xffc7cb,_0x4ad026;_0x3e43fe[_0x0218('0x7a')]=intUtil[_0x0218('0x7b')](_0x3e43fe[_0x0218('0x7a')]);_0x3e43fe['serverUrl']=intUtil['stripTrailingSlash'](_0x3e43fe[_0x0218('0x7c')]);if(_0x5b44ad&&_0x5b44ad[_0x0218('0x86')]&&_0x5b44ad[_0x0218('0x86')]!==_0x0218('0x87')){logger[_0x0218('0x35')](_0x0218('0x88'),'Recording\x20is\x20enabled!');_0x4f781a['recordingURL']=_0x3e43fe[_0x0218('0x7c')]+_0x0218('0x7f')+_0x4f781a[_0x0218('0x80')]+_0x0218('0x81')+md5(_0x4f781a[_0x0218('0x80')]);}var _0x4818ec=_0x3e43fe[_0x0218('0x7a')]==='zoho.eu'?'eu':_0x0218('0x89');return getAccessToken(_0x3e43fe)[_0x0218('0x27')](function(_0x322041){_0x4ad026=_0x322041;return getUser(_0x4ad026,_0x4818ec,_0x3e43fe,_0x542ff3[_0x0218('0x8a')]);})['then'](function(_0x3324db){_0x4fd1f6=_0x3324db;logger[_0x0218('0x35')](_0x0218('0x8b'),_0x4fd1f6['id']);return getEndUser(_0x4ad026,_0x4818ec,_0x3e43fe,_0x4f781a[_0x0218('0x8c')],_0x4f781a['destcalleridnum'],_0x4fd1f6,_0x526473);})[_0x0218('0x27')](function(_0x2efa7e){_0xffc7cb=_0x2efa7e;return getCall(_0x4ad026,_0x4818ec,_0x3e43fe,_0x4fd1f6,_0xffc7cb,_0x526473,_0x4f781a,_0x0218('0x8d'));})[_0x0218('0x27')](function(_0x398786){if(_0x398786){logger['info'](_0x0218('0x8e'),_0x398786['id']);logger[_0x0218('0x35')](_0x0218('0x88'),_0x0218('0x83'));emit(util[_0x0218('0x2e')](_0x0218('0x84'),_0x542ff3[_0x0218('0x18')]),'trigger:browser:url',{'uri':_0x0218('0x8f')+_0x3e43fe['host']+'/crm/EntityInfo.do?module=Calls&id='+_0x398786['id']});}})[_0x0218('0x3b')](function(_0x465950){logger[_0x0218('0x2a')](_0x0218('0x88'),JSON['stringify'](_0x465950));});};exports['unmanaged']=function(_0x3a2ac8,_0x57c469,_0x29a84b,_0x531460,_0x3de7c2,_0x2f66a2){var _0x2fb240,_0x442c9c,_0x5b76f2;_0x2f66a2[_0x0218('0x7a')]=intUtil[_0x0218('0x7b')](_0x2f66a2[_0x0218('0x7a')]);_0x2f66a2[_0x0218('0x7c')]=intUtil[_0x0218('0x7b')](_0x2f66a2[_0x0218('0x7c')]);if(_0x3de7c2&&_0x3de7c2['monitor_format']){logger[_0x0218('0x35')]('['+_0x57c469[_0x0218('0x66')][_0x0218('0x90')]()+']','Recording\x20is\x20enabled!');_0x57c469[_0x0218('0x7e')]=_0x2f66a2[_0x0218('0x7c')]+_0x0218('0x7f')+_0x57c469['uniqueid']+_0x0218('0x81')+md5(_0x57c469[_0x0218('0x80')]);}else{_0x57c469['recordingURL']='';}var _0x56d2bd=_0x2f66a2[_0x0218('0x7a')]===_0x0218('0x91')?'eu':_0x0218('0x89');return getAccessToken(_0x2f66a2)[_0x0218('0x27')](function(_0x692684){_0x5b76f2=_0x692684;return getUser(_0x5b76f2,_0x56d2bd,_0x2f66a2);})[_0x0218('0x27')](function(_0x58f9dd){_0x2fb240=_0x58f9dd;logger[_0x0218('0x35')]('The\x20User\x20ID\x20is:',_0x2fb240['id']);return getEndUser(_0x5b76f2,_0x56d2bd,_0x2f66a2,_0x57c469[_0x0218('0x82')],_0x57c469[_0x0218('0x92')],_0x2fb240,_0x29a84b);})[_0x0218('0x27')](function(_0x20b287){_0x442c9c=_0x20b287;return getCall(_0x5b76f2,_0x56d2bd,_0x2f66a2,_0x2fb240,_0x442c9c,_0x29a84b,_0x57c469,'Inbound');})[_0x0218('0x27')](function(_0x106232){if(_0x106232){logger[_0x0218('0x35')]('The\x20Call\x20ID\x20is:',_0x106232['id']);}})['catch'](function(_0x53c6fe){logger[_0x0218('0x2a')]('['+_0x57c469[_0x0218('0x66')][_0x0218('0x90')]()+']',JSON[_0x0218('0xd')](_0x53c6fe));});};
\ No newline at end of file
+var _0x279c=['startCase','moduleCreate','role','first_name','last_name','data','code','details','enduserType','Error:\x20','log','CREATE\x20ERROR','moduleSearch','contact_lead','uri','/crm/v2/Contacts/search?criteria=((Phone:equals:','Contacts','/crm/v2/Leads/search?criteria=((Phone:equals:','Leads','nothing','contact','lead','Creating\x20new\x20call...','Owner','Subject','getString','Subjects','Description','Descriptions','Full_Name','First_Name','Last_Name','$se_module','Call_Duration','utc','talktime','format','endtime','diff','starttime','YYYY-MM-DDTHH:mm:ss','called','Call_Result','complete','connect','Answered','rejected','Rejected','timeout','Timeout','Call_Start_Time','outbound','agentcalledAt','Inbound','Fields','/crm/v2/Calls','SUCCESS','err','queue','host','stripTrailingSlash','serverUrl','monitor_format','[QUEUE]','Recording\x20is\x20enabled!','recordingURL','uniqueid','/downloads?type=uniqueid&token=','com','The\x20User\x20ID\x20is:','calleridname','calleridnum','The\x20Call\x20ID\x20is:','Displaying\x20call\x20to\x20agent\x20in\x20a\x20new\x20tab...','user:%s','https://crm.','/crm/EntityInfo.do?module=Calls&id=','recordingFormat','[OUTBOUND]','/api/voice/recordings/','zoho.eu','destcalleridname','destcalleridnum','Outbound','trigger:browser:url','lastevent','toUpperCase','lodash','request-promise','md5','util','./util','moment','ioredis','bluebird','../../../../config/environment','../../../../config/logger','zoho','redis','defaults','socket.io-emitter','emit','[HTTP]','stringify','length','forEach','includes','string','type','idField','content','variable','variableName','toString','customVariable','Variable','name','toLowerCase','split','isNil','isBefore','expires_in','access_token','https://accounts.zoho.com.au','https://accounts.zoho.in','https://accounts.zoho.com.cn','https://accounts.zoho.eu','POST','/oauth/v2/token','refreshToken','clientId','clientSecret','refresh_token','then','add','seconds','catch','error','Failing\x20creating\x20the\x20access_token','stack','Search\x20user','GET','https://www.zohoapis.%s/crm/v2/users','Zoho-oauthtoken\x20','users','isArrayLikeObject','findIndex','email','info','Agent\x20found!','Using\x20the\x20admin\x20account!','profile','user','Administrator','The\x20failing\x20result\x20is','Unable\x20to\x20retrieve\x20zoho\x20account\x20users:\x20','https://www.zohoapis.','/crm/v2/'];(function(_0x28ff8f,_0x342ed9){var _0x35a754=function(_0x5aa26c){while(--_0x5aa26c){_0x28ff8f['push'](_0x28ff8f['shift']());}};_0x35a754(++_0x342ed9);}(_0x279c,0x193));var _0xc279=function(_0xe66cf2,_0x32ba5f){_0xe66cf2=_0xe66cf2-0x0;var _0x2d84e7=_0x279c[_0xe66cf2];return _0x2d84e7;};'use strict';var _=require(_0xc279('0x0'));var rp=require(_0xc279('0x1'));var md5=require(_0xc279('0x2'));var util=require(_0xc279('0x3'));var intUtil=require(_0xc279('0x4'));var moment=require(_0xc279('0x5'));var Redis=require(_0xc279('0x6'));var BPromise=require(_0xc279('0x7'));var config=require(_0xc279('0x8'));var logger=require(_0xc279('0x9'))(_0xc279('0xa'));config[_0xc279('0xb')]=_[_0xc279('0xc')](config[_0xc279('0xb')],{'host':'localhost','port':0x18eb});var io=require(_0xc279('0xd'))(new Redis(config[_0xc279('0xb')]));function emit(_0x419d7c,_0xb80745,_0x80cd70){io['to'](_0x419d7c)[_0xc279('0xe')](_0xb80745,_0x80cd70);}function request(_0xc5b0ed){logger['debug'](_0xc279('0xf'),JSON[_0xc279('0x10')](_0xc5b0ed));return rp(_0xc5b0ed);}function getCustomFields(_0x3deec0,_0x14e36b){var _0x5472fb={};if(_0x3deec0[_0xc279('0x11')]>0x0){_[_0xc279('0x12')](_0x3deec0,function(_0x3966b9){if(_[_0xc279('0x13')]([_0xc279('0x14'),'picklist'],_0x3966b9[_0xc279('0x15')])&&_0x3966b9[_0xc279('0x16')]){_0x5472fb[_0x3966b9[_0xc279('0x16')]]=_0x3966b9[_0xc279('0x17')]['toString']();}else if(_0x3966b9['type']===_0xc279('0x18')&&_0x3966b9['variableName']&&_0x3966b9[_0xc279('0x16')]&&_0x14e36b[_0x3966b9[_0xc279('0x19')]]){_0x5472fb[_0x3966b9[_0xc279('0x16')]]=_0x14e36b[_0x3966b9[_0xc279('0x19')]][_0xc279('0x1a')]();}else if(_0x3966b9[_0xc279('0x15')]===_0xc279('0x1b')&&_0x3966b9[_0xc279('0x1c')]&&_0x3966b9[_0xc279('0x1c')]['name']&&_0x3966b9[_0xc279('0x16')]&&_0x14e36b[_0x3966b9['Variable'][_0xc279('0x1d')][_0xc279('0x1e')]()]){_0x5472fb[_0x3966b9[_0xc279('0x16')]]=_0x14e36b[_0x3966b9[_0xc279('0x1c')][_0xc279('0x1d')][_0xc279('0x1e')]()][_0xc279('0x1a')]();}});}return _0x5472fb;}function getName(_0x41de2d){if(_0x41de2d['indexOf']('\x20')>0x0){var _0xc04a46=_0x41de2d[_0xc279('0x1f')](/ (.+)/);if(_0xc04a46[0x1]){return _0xc04a46;}}return[_0x41de2d,_0x41de2d];}var accountsTokens={};function getAccessToken(_0x24a647){return new Promise(function(_0x22e845,_0x5f3108){if(!_[_0xc279('0x20')](accountsTokens[_0x24a647['id']])&&!_[_0xc279('0x20')](accountsTokens[_0x24a647['id']]['access_token'])){if(moment()[_0xc279('0x21')](accountsTokens[_0x24a647['id']][_0xc279('0x22')])){_0x22e845(accountsTokens[_0x24a647['id']][_0xc279('0x23')]);}}var _0x298a57;switch(_0x24a647['zone']){case'US':_0x298a57='https://accounts.zoho.com';break;case'AU':_0x298a57=_0xc279('0x24');break;case'EU':_0x298a57='https://accounts.zoho.eu';break;case'IN':_0x298a57=_0xc279('0x25');break;case'CN':_0x298a57=_0xc279('0x26');break;default:_0x298a57=_0xc279('0x27');break;}var _0x250a47={'method':_0xc279('0x28'),'uri':_0x298a57+_0xc279('0x29'),'qs':{'refresh_token':_0x24a647[_0xc279('0x2a')],'client_id':_0x24a647[_0xc279('0x2b')],'client_secret':_0x24a647[_0xc279('0x2c')],'grant_type':_0xc279('0x2d')},'json':!![]};return rp(_0x250a47)[_0xc279('0x2e')](function(_0x17a36e){accountsTokens[_0x24a647['id']]={'access_token':_0x17a36e[_0xc279('0x23')],'expires_in':moment()[_0xc279('0x2f')](_0x17a36e['expires_in'],_0xc279('0x30'))};_0x22e845(_0x17a36e[_0xc279('0x23')]);})[_0xc279('0x31')](function(_0x4f5f7e){logger[_0xc279('0x32')](_0xc279('0x33'),_0x4f5f7e[_0xc279('0x34')]);_0x5f3108(_0x4f5f7e);});});}function getUser(_0x11b186,_0x474038,_0x34a47a,_0x1c7004){logger['info'](_0xc279('0x35'));return request({'method':_0xc279('0x36'),'uri':util['format'](_0xc279('0x37'),_0x474038),'qs':{'type':'ActiveUsers'},'headers':{'Authorization':_0xc279('0x38')+_0x11b186},'json':!![]})[_0xc279('0x2e')](function(_0x427490){if(_0x427490[_0xc279('0x39')]){var _0x2c8337=-0x1;if(_[_0xc279('0x3a')](_0x427490['users'])){if(!_['isNil'](_0x1c7004)){_0x2c8337=_[_0xc279('0x3b')](_0x427490[_0xc279('0x39')],function(_0x33e81c){return _0x33e81c[_0xc279('0x3c')]===_0x1c7004;});}if(_0x2c8337>=0x0){logger[_0xc279('0x3d')](_0xc279('0x3e'));}else{logger[_0xc279('0x3d')](_0xc279('0x3f'));_0x2c8337=_[_0xc279('0x3b')](_0x427490['users'],function(_0x3bf989){return _0x3bf989[_0xc279('0x40')][_0xc279('0x1d')]==='Administrator';});}return _0x427490[_0xc279('0x39')][_0x2c8337];}else{if(_0x427490[_0xc279('0x41')][_0xc279('0x40')]['name']===_0xc279('0x42')){logger[_0xc279('0x3d')](_0xc279('0x3f'));user=_0x427490['user'];return user;}else{logger[_0xc279('0x32')](_0xc279('0x43'),JSON['stringify'](_0x427490));throw new Error(_0xc279('0x44')+JSON['stringify'](_0x427490));}}}else{logger['error'](_0xc279('0x43'),JSON['stringify'](_0x427490));throw new Error(_0xc279('0x44')+JSON[_0xc279('0x10')](_0x427490));}})[_0xc279('0x31')](function(_0x22bddd){console[_0xc279('0x32')](_0x22bddd);});}function getZohoUser(_0x533e65,_0x470da3){return new BPromise(function(_0x1a2813,_0x577b14){request(_0x533e65)[_0xc279('0x2e')](function(_0x47c8f1){var _0x37e400=null;if(_0x47c8f1){_0x37e400=_0x47c8f1['data'][0x0];_0x37e400['enduserType']=_0x470da3;}_0x1a2813(_0x37e400);})[_0xc279('0x31')](function(_0x2b2581){_0x577b14(_0x2b2581);});});}function createEndUser(_0x2fe8f4,_0x2f044e,_0x481cc5,_0x3653b6,_0x1d48c9,_0x33d11b){var _0x481cc5=getName(_0x481cc5);return request({'method':_0xc279('0x28'),'uri':_0xc279('0x45')+_0x2f044e+_0xc279('0x46')+_[_0xc279('0x47')](_0x33d11b[_0xc279('0x48')])+'s','body':{'data':[{'Last_Name':_0x481cc5[0x1],'First_Name':_0x481cc5[0x0],'Phone':_0x3653b6,'Owner':{'name':!_['isNil'](_0x1d48c9[_0xc279('0x49')][_0xc279('0x1d')])?_0x1d48c9[_0xc279('0x49')]['name']:!_['isNil'](_0x1d48c9[_0xc279('0x4a')])?_0x1d48c9[_0xc279('0x4a')]+'\x20'+_0x1d48c9[_0xc279('0x4b')]:_0x1d48c9[_0xc279('0x4b')],'id':_0x1d48c9['id']}}]},'headers':{'Authorization':_0xc279('0x38')+_0x2fe8f4},'json':!![]})['then'](function(_0x3758ec){if(_0x3758ec&&_0x3758ec[_0xc279('0x4c')][0x0][_0xc279('0x4d')]==='SUCCESS'){var _0xaaf1e3=_0x3758ec[_0xc279('0x4c')][0x0][_0xc279('0x4e')];_0xaaf1e3[_0xc279('0x4f')]=_['startCase'](_0x33d11b[_0xc279('0x48')])+'s';return _0xaaf1e3;}logger[_0xc279('0x32')](_0xc279('0x43'),JSON['stringify'](data));throw new Error(_0xc279('0x50')+JSON['stringify'](data));})[_0xc279('0x31')](function(_0x4e5860){console[_0xc279('0x51')](_0xc279('0x52'),_0x4e5860);});}function getEndUser(_0x164aa1,_0x2900dc,_0x447046,_0x20da92,_0x3509ee,_0x58172d,_0x101fe1){var _0x3bbd53={'method':_0xc279('0x36'),'uri':'','headers':{'Authorization':_0xc279('0x38')+_0x164aa1},'json':!![]};switch(_0x101fe1[_0xc279('0x53')]){case _0xc279('0x54'):_0x3bbd53[_0xc279('0x55')]='https://www.zohoapis.'+_0x2900dc+_0xc279('0x56')+_0x3509ee+'))';return getZohoUser(_0x3bbd53,_0xc279('0x57'))[_0xc279('0x2e')](function(_0x17258d){if(_0x17258d)return _0x17258d;_0x3bbd53[_0xc279('0x55')]=_0xc279('0x45')+_0x2900dc+_0xc279('0x58')+_0x3509ee+'))';return getZohoUser(_0x3bbd53,_0xc279('0x59'))[_0xc279('0x2e')](function(_0x221766){if(_0x221766)return _0x221766;if(_0x101fe1[_0xc279('0x48')]!=_0xc279('0x5a')){return createEndUser(_0x164aa1,_0x2900dc,_0x20da92,_0x3509ee,_0x58172d,_0x101fe1);}else{return{};}});});break;case _0xc279('0x5b'):_0x3bbd53['uri']=_0xc279('0x45')+_0x2900dc+'/crm/v2/Contacts/search?criteria=((Phone:equals:'+_0x3509ee+'))';return getZohoUser(_0x3bbd53,_0xc279('0x57'))['then'](function(_0x28fd16){if(_0x28fd16)return _0x28fd16;if(_0x101fe1[_0xc279('0x48')]!=_0xc279('0x5a')){return createEndUser(_0x164aa1,_0x2900dc,_0x20da92,_0x3509ee,_0x58172d,_0x101fe1);}else{return{};}});break;case _0xc279('0x5c'):_0x3bbd53[_0xc279('0x55')]=_0xc279('0x45')+_0x2900dc+_0xc279('0x58')+_0x3509ee+'))';return getZohoUser(_0x3bbd53,_0xc279('0x59'))[_0xc279('0x2e')](function(_0x2bcb98){if(_0x2bcb98)return _0x2bcb98;if(_0x101fe1[_0xc279('0x48')]!=_0xc279('0x5a')){return createEndUser(_0x164aa1,_0x2900dc,_0x20da92,_0x3509ee,_0x58172d,_0x101fe1);}else{return{};}});break;}}function getCall(_0x5ed441,_0x4fbaaa,_0x432aec,_0x2a4227,_0x9744c,_0x13dd7f,_0x3d3790,_0xe80e91){logger[_0xc279('0x3d')](_0xc279('0x5d'));var _0x5734d8={};_0x5734d8[_0xc279('0x5e')]={'name':!_[_0xc279('0x20')](_0x2a4227[_0xc279('0x49')][_0xc279('0x1d')])&&!_[_0xc279('0x20')](_0x2a4227['profile'][_0xc279('0x1d')])&&_0x2a4227['profile']['name']==='administrator'?_0x2a4227[_0xc279('0x49')][_0xc279('0x1d')]:!_['isNil'](_0x2a4227[_0xc279('0x4a')])?_0x2a4227[_0xc279('0x4a')]+'\x20'+_0x2a4227['last_name']:_0x2a4227[_0xc279('0x4b')],'id':_0x2a4227['id']};_0x5734d8[_0xc279('0x5f')]=intUtil[_0xc279('0x60')](_0x13dd7f[_0xc279('0x61')],_0x3d3790,'\x20');_0x5734d8[_0xc279('0x62')]=intUtil['getString'](_0x13dd7f[_0xc279('0x63')],_0x3d3790,'\x0a');if(_0x9744c[_0xc279('0x4f')]===_0xc279('0x57')){_0x5734d8['Who_Id']={'name':!_[_0xc279('0x20')](_0x9744c[_0xc279('0x64')])?_0x9744c[_0xc279('0x64')]:!_[_0xc279('0x20')](_0x9744c[_0xc279('0x65')])?_0x9744c[_0xc279('0x65')]+'\x20'+_0x9744c['Last_Name']:_0x9744c[_0xc279('0x66')],'id':_0x9744c['id']};}if(_0x9744c[_0xc279('0x4f')]===_0xc279('0x59')){_0x5734d8['What_Id']={'name':!_[_0xc279('0x20')](_0x9744c[_0xc279('0x64')])?_0x9744c['Full_Name']:!_[_0xc279('0x20')](_0x9744c[_0xc279('0x65')])?_0x9744c['First_Name']+'\x20'+_0x9744c['Last_Name']:_0x9744c[_0xc279('0x66')],'id':_0x9744c['id']};_0x5734d8[_0xc279('0x67')]=_[_0xc279('0x47')](_0x9744c[_0xc279('0x4f')]);}if(_0x3d3790['talktime']){_0x5734d8[_0xc279('0x68')]=moment[_0xc279('0x69')](parseInt(_0x3d3790[_0xc279('0x6a')])*0x3e8)[_0xc279('0x6b')]('mm:ss');}else if(_0x3d3790['answertime']&&_0x3d3790[_0xc279('0x6c')]){_0x5734d8[_0xc279('0x68')]=moment['utc'](moment(_0x3d3790[_0xc279('0x6c')],'YYYY-MM-DDTHH:mm:ss')[_0xc279('0x6d')](moment(_0x3d3790[_0xc279('0x6e')],_0xc279('0x6f'))))['format']('mm:ss');}switch(_0x3d3790['lastevent']){case _0xc279('0x70'):_0x5734d8[_0xc279('0x71')]='Called';break;case _0xc279('0x72'):case _0xc279('0x73'):_0x5734d8[_0xc279('0x71')]=_0xc279('0x74');break;case _0xc279('0x75'):_0x5734d8[_0xc279('0x71')]=_0xc279('0x76');break;case'abandoned':_0x5734d8[_0xc279('0x71')]='Abandoned';break;case _0xc279('0x77'):_0x5734d8[_0xc279('0x71')]=_0xc279('0x78');default:}_0x5734d8[_0xc279('0x79')]=(_0xe80e91===_0xc279('0x7a')?moment(_0x3d3790[_0xc279('0x6e')])['format'](_0xc279('0x6f')):moment(_0x3d3790[_0xc279('0x7b')])['format']('YYYY-MM-DDTHH:mm:ss'))||moment()['format']('YYYY-MM-DDTHH:mm:ss');_0x5734d8['Call_Type']=_0xe80e91||_0xc279('0x7c');_0x5734d8=_['merge'](_0x5734d8,getCustomFields(_0x13dd7f[_0xc279('0x7d')],_0x3d3790));return request({'method':_0xc279('0x28'),'uri':_0xc279('0x45')+_0x4fbaaa+_0xc279('0x7e'),'headers':{'Authorization':_0xc279('0x38')+_0x5ed441},'body':{'data':[_0x5734d8]},'json':!![]})[_0xc279('0x2e')](function(_0x5691fb){if(_0x5691fb&&_0x5691fb[_0xc279('0x4c')][0x0][_0xc279('0x4d')]===_0xc279('0x7f')){logger['info']('Call\x20created!');return{'id':_0x5691fb[_0xc279('0x4c')][0x0][_0xc279('0x4e')]['id']};}})['catch'](function(_0x3d3ac9){logger[_0xc279('0x3d')](_0xc279('0x80'),_0x3d3ac9['stack']);console[_0xc279('0x51')](_0xc279('0x80'),_0x3d3ac9);});}exports[_0xc279('0x81')]=function(_0x1c7725,_0x184831,_0x437eed,_0x393b39,_0x2852d1,_0x3cc23d){var _0x4a89e3,_0x10c588,_0x40c1d4;_0x3cc23d[_0xc279('0x82')]=intUtil[_0xc279('0x83')](_0x3cc23d[_0xc279('0x82')]);_0x3cc23d['serverUrl']=intUtil['stripTrailingSlash'](_0x3cc23d[_0xc279('0x84')]);if(_0x2852d1&&_0x2852d1[_0xc279('0x85')]){logger['info'](_0xc279('0x86'),_0xc279('0x87'));_0x184831[_0xc279('0x88')]=_0x3cc23d[_0xc279('0x84')]+'/api/voice/recordings/'+_0x184831[_0xc279('0x89')]+_0xc279('0x8a')+md5(_0x184831[_0xc279('0x89')]);}else{_0x184831[_0xc279('0x88')]='';}var _0x31a64e=_0x3cc23d[_0xc279('0x82')]==='zoho.eu'?'eu':_0xc279('0x8b');return getAccessToken(_0x3cc23d)[_0xc279('0x2e')](function(_0x5439da){_0x40c1d4=_0x5439da;return getUser(_0x40c1d4,_0x31a64e,_0x3cc23d,_0x393b39[_0xc279('0x3c')]);})['then'](function(_0x5b9040){_0x4a89e3=_0x5b9040;logger['info'](_0xc279('0x8c'),_0x4a89e3['id']);return getEndUser(_0x40c1d4,_0x31a64e,_0x3cc23d,_0x184831[_0xc279('0x8d')],_0x184831[_0xc279('0x8e')],_0x4a89e3,_0x437eed);})['then'](function(_0x3997aa){_0x10c588=_0x3997aa;return getCall(_0x40c1d4,_0x31a64e,_0x3cc23d,_0x4a89e3,_0x10c588,_0x437eed,_0x184831,_0xc279('0x7c'));})[_0xc279('0x2e')](function(_0x1617b1){if(_0x1617b1){logger[_0xc279('0x3d')](_0xc279('0x8f'),_0x1617b1['id']);logger[_0xc279('0x3d')](_0xc279('0x86'),_0xc279('0x90'));emit(util['format'](_0xc279('0x91'),_0x393b39[_0xc279('0x1d')]),'trigger:browser:url',{'uri':_0xc279('0x92')+_0x3cc23d[_0xc279('0x82')]+_0xc279('0x93')+_0x1617b1['id']});}})[_0xc279('0x31')](function(_0x5500b1){logger[_0xc279('0x32')](_0xc279('0x86'),JSON[_0xc279('0x10')](_0x5500b1));});};exports[_0xc279('0x7a')]=function(_0x5ee086,_0x458ea3,_0x584ffc,_0xa893fb,_0x4cb9b7,_0x5130e4,_0x4d8aca){var _0x316a5d,_0x2684a7,_0x3cf23c;_0x5130e4['host']=intUtil['stripTrailingSlash'](_0x5130e4[_0xc279('0x82')]);_0x5130e4['serverUrl']=intUtil[_0xc279('0x83')](_0x5130e4['serverUrl']);if(_0x4d8aca&&_0x4d8aca[_0xc279('0x94')]&&_0x4d8aca[_0xc279('0x94')]!=='none'){logger['info'](_0xc279('0x95'),_0xc279('0x87'));_0x458ea3[_0xc279('0x88')]=_0x5130e4[_0xc279('0x84')]+_0xc279('0x96')+_0x458ea3[_0xc279('0x89')]+_0xc279('0x8a')+md5(_0x458ea3['uniqueid']);}var _0x1cee9a=_0x5130e4['host']===_0xc279('0x97')?'eu':'com';return getAccessToken(_0x5130e4)[_0xc279('0x2e')](function(_0x1aa440){_0x3cf23c=_0x1aa440;return getUser(_0x3cf23c,_0x1cee9a,_0x5130e4,_0xa893fb[_0xc279('0x3c')]);})[_0xc279('0x2e')](function(_0x29fb0f){_0x316a5d=_0x29fb0f;logger[_0xc279('0x3d')]('The\x20User\x20ID\x20is:',_0x316a5d['id']);return getEndUser(_0x3cf23c,_0x1cee9a,_0x5130e4,_0x458ea3[_0xc279('0x98')],_0x458ea3[_0xc279('0x99')],_0x316a5d,_0x584ffc);})[_0xc279('0x2e')](function(_0x19fdd1){_0x2684a7=_0x19fdd1;return getCall(_0x3cf23c,_0x1cee9a,_0x5130e4,_0x316a5d,_0x2684a7,_0x584ffc,_0x458ea3,_0xc279('0x9a'));})['then'](function(_0x1e471c){if(_0x1e471c){logger[_0xc279('0x3d')](_0xc279('0x8f'),_0x1e471c['id']);logger['info']('[OUTBOUND]',_0xc279('0x90'));emit(util[_0xc279('0x6b')]('user:%s',_0xa893fb[_0xc279('0x1d')]),_0xc279('0x9b'),{'uri':_0xc279('0x92')+_0x5130e4[_0xc279('0x82')]+_0xc279('0x93')+_0x1e471c['id']});}})[_0xc279('0x31')](function(_0x4b7fd2){logger[_0xc279('0x32')](_0xc279('0x95'),JSON['stringify'](_0x4b7fd2));});};exports['unmanaged']=function(_0x3cd32d,_0xb2a101,_0x4abb4d,_0x180f28,_0x4952d4,_0x50eac9){var _0x9867dc,_0x583811,_0x335e62;_0x50eac9['host']=intUtil['stripTrailingSlash'](_0x50eac9[_0xc279('0x82')]);_0x50eac9[_0xc279('0x84')]=intUtil[_0xc279('0x83')](_0x50eac9['serverUrl']);if(_0x4952d4&&_0x4952d4[_0xc279('0x85')]){logger[_0xc279('0x3d')]('['+_0xb2a101[_0xc279('0x9c')][_0xc279('0x9d')]()+']',_0xc279('0x87'));_0xb2a101[_0xc279('0x88')]=_0x50eac9[_0xc279('0x84')]+_0xc279('0x96')+_0xb2a101[_0xc279('0x89')]+_0xc279('0x8a')+md5(_0xb2a101[_0xc279('0x89')]);}else{_0xb2a101['recordingURL']='';}var _0x38660f=_0x50eac9[_0xc279('0x82')]===_0xc279('0x97')?'eu':'com';return getAccessToken(_0x50eac9)['then'](function(_0x4e6875){_0x335e62=_0x4e6875;return getUser(_0x335e62,_0x38660f,_0x50eac9);})[_0xc279('0x2e')](function(_0x446696){_0x9867dc=_0x446696;logger[_0xc279('0x3d')](_0xc279('0x8c'),_0x9867dc['id']);return getEndUser(_0x335e62,_0x38660f,_0x50eac9,_0xb2a101[_0xc279('0x8d')],_0xb2a101[_0xc279('0x8e')],_0x9867dc,_0x4abb4d);})['then'](function(_0x238303){_0x583811=_0x238303;return getCall(_0x335e62,_0x38660f,_0x50eac9,_0x9867dc,_0x583811,_0x4abb4d,_0xb2a101,_0xc279('0x7c'));})['then'](function(_0xc6d4ea){if(_0xc6d4ea){logger[_0xc279('0x3d')](_0xc279('0x8f'),_0xc6d4ea['id']);}})[_0xc279('0x31')](function(_0x5e2473){logger[_0xc279('0x32')]('['+_0xb2a101[_0xc279('0x9c')][_0xc279('0x9d')]()+']',JSON[_0xc279('0x10')](_0x5e2473));});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xce36=['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','trigger','exec','data2','data3','render'];(function(_0x26ccea,_0xcb1924){var _0x5b804e=function(_0x3a7369){while(--_0x3a7369){_0x26ccea['push'](_0x26ccea['shift']());}};_0x5b804e(++_0xcb1924);}(_0xce36,0x1b4));var _0x6ce3=function(_0x2ca616,_0x384ec8){_0x2ca616=_0x2ca616-0x0;var _0x53155f=_0xce36[_0x2ca616];return _0x53155f;};'use strict';var util=require('util');var sh=require('shelljs');var Mustache=require('mustache');var logger=require('../../../../config/logger')(_0x6ce3('0x0'));exports[_0x6ce3('0x1')]=function(_0x106618,_0x4d02da){var _0x162436=_0x106618[_0x6ce3('0x2')]?_0x106618[_0x6ce3('0x2')]:'Script';var _0x3b949a=_0x106618[_0x6ce3('0x3')]?Mustache[_0x6ce3('0x4')](_0x106618[_0x6ce3('0x3')],_0x4d02da):_0x4d02da;sh[_0x6ce3('0x1')](_0x3b949a,function(_0x371b09,_0x4f135e,_0x17c5a6){if(_0x371b09!==0x0){logger['error'](util[_0x6ce3('0x5')](_0x6ce3('0x6'),_0x162436,_0x3b949a,_0x371b09,_0x17c5a6));}else{logger[_0x6ce3('0x7')](util[_0x6ce3('0x5')](_0x6ce3('0x8'),_0x162436,_0x3b949a,_0x4f135e));}});};
\ No newline at end of file
+var _0x7c47=['error','format','%s\x20\x27%s\x27\x20failed\x20with\x20code\x20%d\x20and\x20error:\x20%s','%s\x20\x27%s\x27\x20succeeded\x20with\x20output:\x20%s','shelljs','mustache','../../../../config/logger','trigger','exec','data2','render','data3'];(function(_0x59e821,_0x86c723){var _0x5333f6=function(_0x5dc2c9){while(--_0x5dc2c9){_0x59e821['push'](_0x59e821['shift']());}};_0x5333f6(++_0x86c723);}(_0x7c47,0x16c));var _0x77c4=function(_0xcc4484,_0x1d6391){_0xcc4484=_0xcc4484-0x0;var _0x3d7e03=_0x7c47[_0xcc4484];return _0x3d7e03;};'use strict';var util=require('util');var sh=require(_0x77c4('0x0'));var Mustache=require(_0x77c4('0x1'));var logger=require(_0x77c4('0x2'))(_0x77c4('0x3'));exports[_0x77c4('0x4')]=function(_0x2f2ca0,_0x3ce8e2){var _0x2422f5=_0x2f2ca0[_0x77c4('0x5')]?_0x2f2ca0[_0x77c4('0x5')]:'Script';var _0x2a4fc0=_0x2f2ca0['data3']?Mustache[_0x77c4('0x6')](_0x2f2ca0[_0x77c4('0x7')],_0x3ce8e2):_0x3ce8e2;sh[_0x77c4('0x4')](_0x2a4fc0,function(_0x4a6f9f,_0x757646,_0x4987e5){if(_0x4a6f9f!==0x0){logger[_0x77c4('0x8')](util[_0x77c4('0x9')](_0x77c4('0xa'),_0x2422f5,_0x2a4fc0,_0x4a6f9f,_0x4987e5));}else{logger['info'](util[_0x77c4('0x9')](_0x77c4('0xb'),_0x2422f5,_0x2a4fc0,_0x757646));}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9f82=['data1','then','isNil',',\x20request\x20body:\x20','object','stringify','format','statusCode','catch','%s\x20%s\x20failed\x20with\x20status:\x20%d\x20and\x20error:\x20%s\x20%s','name','request-promise','util','lodash','../../../../config/logger','trigger','data2','data5','number','headers','data6','parse','render','error','stack','toUpperCase','DELETE','POST','PUT','body','info','%s\x20%s\x20sending\x20request\x20with\x20following\x20options:\x20%s'];(function(_0x45ee67,_0x4f6d89){var _0x2e9649=function(_0x34b4db){while(--_0x34b4db){_0x45ee67['push'](_0x45ee67['shift']());}};_0x2e9649(++_0x4f6d89);}(_0x9f82,0x1cb));var _0x29f8=function(_0x56482c,_0x16118d){_0x56482c=_0x56482c-0x0;var _0x5aae7a=_0x9f82[_0x56482c];return _0x5aae7a;};'use strict';var rp=require(_0x29f8('0x0'));var util=require(_0x29f8('0x1'));var _=require(_0x29f8('0x2'));var Mustache=require('mustache');var logger=require(_0x29f8('0x3'))(_0x29f8('0x4'));exports['exec']=function(_0x1e5470,_0x3f6199){var _0x8d3848,_0x1c01be;var _0x34b8cf={'method':_0x1e5470['data1']['toUpperCase'](),'uri':Mustache['render'](_0x1e5470[_0x29f8('0x5')],_0x3f6199),'json':!![],'resolveWithFullResponse':!![],'timeout':typeof parseInt(_0x1e5470[_0x29f8('0x6')])===_0x29f8('0x7')&&parseInt(_0x1e5470[_0x29f8('0x6')])>=0x1&&parseInt(_0x1e5470[_0x29f8('0x6')])<=0xa?parseInt(_0x1e5470[_0x29f8('0x6')])*0x3e8:0x5*0x3e8};try{_0x34b8cf[_0x29f8('0x8')]=_0x1e5470[_0x29f8('0x9')]?JSON[_0x29f8('0xa')](Mustache[_0x29f8('0xb')](_0x1e5470[_0x29f8('0x9')],_0x3f6199)):{};}catch(_0x103592){logger[_0x29f8('0xc')](_0x103592[_0x29f8('0xd')]);}switch(_0x1e5470['data1'][_0x29f8('0xe')]()){case'GET':case _0x29f8('0xf'):_0x8d3848=null;_0x34b8cf['qs']=_0x3f6199;break;case _0x29f8('0x10'):case _0x29f8('0x11'):if(_0x1e5470['data7']){try{_0x8d3848=JSON['parse'](Mustache[_0x29f8('0xb')](_0x1e5470['data7'],_0x3f6199));_0x34b8cf['body']=_0x8d3848;}catch(_0x51cf52){logger[_0x29f8('0xc')](_0x51cf52[_0x29f8('0xd')]);logger['error']('body\x20has\x20been\x20passed\x20to\x20URLforward\x20in\x20a\x20wrong\x20format');}}else{_0x8d3848=_0x3f6199;_0x34b8cf[_0x29f8('0x12')]=_0x8d3848;}break;}logger[_0x29f8('0x13')](util['format'](_0x29f8('0x14'),_0x1e5470[_0x29f8('0x15')],_0x1e5470[_0x29f8('0x5')],JSON['stringify'](_0x34b8cf)));rp(_0x34b8cf)[_0x29f8('0x16')](function(_0x1cda33){_0x8d3848=!_[_0x29f8('0x17')](_0x8d3848)?_0x29f8('0x18')+_0x8d3848:'';_0x1c01be=typeof _0x1cda33[_0x29f8('0x12')]===_0x29f8('0x19')?JSON[_0x29f8('0x1a')](_0x1cda33[_0x29f8('0x12')]):_0x1cda33['body'];logger[_0x29f8('0x13')](util[_0x29f8('0x1b')]('%s\x20%s\x20succeeded\x20with\x20status:\x20%d\x20and\x20response:\x20%s',_0x1e5470['data1'],_0x1e5470[_0x29f8('0x5')],_0x1cda33[_0x29f8('0x1c')],_0x1c01be));})[_0x29f8('0x1d')](function(_0x52950d){logger[_0x29f8('0xc')](util[_0x29f8('0x1b')](_0x29f8('0x1e'),_0x1e5470['data1'],_0x1e5470[_0x29f8('0x5')],_0x52950d[_0x29f8('0x1c')],_0x52950d[_0x29f8('0x1f')],_0x52950d['message']));});};
\ No newline at end of file
+var _0x7633=['data5','number','headers','data6','parse','render','error','stack','toUpperCase','PUT','body','body\x20has\x20been\x20passed\x20to\x20URLforward\x20in\x20a\x20wrong\x20format','info','stringify','then','format','%s\x20%s\x20succeeded\x20with\x20status:\x20%d\x20and\x20response:\x20%s','statusCode','catch','%s\x20%s\x20failed\x20with\x20status:\x20%d\x20and\x20error:\x20%s\x20%s','name','util','lodash','../../../../config/logger','trigger','exec','data1','data2'];(function(_0x2cc2b0,_0x13f489){var _0x5c52c4=function(_0x597d3e){while(--_0x597d3e){_0x2cc2b0['push'](_0x2cc2b0['shift']());}};_0x5c52c4(++_0x13f489);}(_0x7633,0x19d));var _0x3763=function(_0x1ac595,_0x5d2081){_0x1ac595=_0x1ac595-0x0;var _0x455fff=_0x7633[_0x1ac595];return _0x455fff;};'use strict';var rp=require('request-promise');var util=require(_0x3763('0x0'));var _=require(_0x3763('0x1'));var Mustache=require('mustache');var logger=require(_0x3763('0x2'))(_0x3763('0x3'));exports[_0x3763('0x4')]=function(_0x4192a0,_0x3e20ec){var _0x123c72,_0x371557;var _0x4fb100={'method':_0x4192a0[_0x3763('0x5')]['toUpperCase'](),'uri':Mustache['render'](_0x4192a0[_0x3763('0x6')],_0x3e20ec),'json':!![],'resolveWithFullResponse':!![],'timeout':typeof parseInt(_0x4192a0[_0x3763('0x7')])===_0x3763('0x8')&&parseInt(_0x4192a0['data5'])>=0x1&&parseInt(_0x4192a0['data5'])<=0xa?parseInt(_0x4192a0[_0x3763('0x7')])*0x3e8:0x5*0x3e8};try{_0x4fb100[_0x3763('0x9')]=_0x4192a0[_0x3763('0xa')]?JSON[_0x3763('0xb')](Mustache[_0x3763('0xc')](_0x4192a0['data6'],_0x3e20ec)):{};}catch(_0x1edebb){logger[_0x3763('0xd')](_0x1edebb[_0x3763('0xe')]);}switch(_0x4192a0['data1'][_0x3763('0xf')]()){case'GET':case'DELETE':_0x123c72=null;_0x4fb100['qs']=_0x3e20ec;break;case'POST':case _0x3763('0x10'):if(_0x4192a0['data7']){try{_0x123c72=JSON[_0x3763('0xb')](Mustache[_0x3763('0xc')](_0x4192a0['data7'],_0x3e20ec));_0x4fb100[_0x3763('0x11')]=_0x123c72;}catch(_0x3ce4b0){logger[_0x3763('0xd')](_0x3ce4b0[_0x3763('0xe')]);logger['error'](_0x3763('0x12'));}}else{_0x123c72=_0x3e20ec;_0x4fb100['body']=_0x123c72;}break;}logger[_0x3763('0x13')](util['format']('%s\x20%s\x20sending\x20request\x20with\x20following\x20options:\x20%s',_0x4192a0['data1'],_0x4192a0[_0x3763('0x6')],JSON[_0x3763('0x14')](_0x4fb100)));rp(_0x4fb100)[_0x3763('0x15')](function(_0x5b22e4){_0x123c72=!_['isNil'](_0x123c72)?',\x20request\x20body:\x20'+_0x123c72:'';_0x371557=typeof _0x5b22e4['body']==='object'?JSON[_0x3763('0x14')](_0x5b22e4[_0x3763('0x11')]):_0x5b22e4['body'];logger['info'](util[_0x3763('0x16')](_0x3763('0x17'),_0x4192a0[_0x3763('0x5')],_0x4192a0['data2'],_0x5b22e4[_0x3763('0x18')],_0x371557));})[_0x3763('0x19')](function(_0x34e9a6){logger[_0x3763('0xd')](util[_0x3763('0x16')](_0x3763('0x1a'),_0x4192a0[_0x3763('0x5')],_0x4192a0['data2'],_0x34e9a6[_0x3763('0x18')],_0x34e9a6[_0x3763('0x1b')],_0x34e9a6['message']));});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc226=['exports','jayson/promise','bluebird','../../config/logger','routing','client','then','debug','rpc','error','message','catch'];(function(_0x444515,_0x1a5081){var _0xa8e280=function(_0x414da8){while(--_0x414da8){_0x444515['push'](_0x444515['shift']());}};_0xa8e280(++_0x1a5081);}(_0xc226,0x151));var _0x6c22=function(_0x19e35c,_0x29cd1e){_0x19e35c=_0x19e35c-0x0;var _0x3e1fe8=_0xc226[_0x19e35c];return _0x3e1fe8;};'use strict';var jayson=require(_0x6c22('0x0'));var BPromise=require(_0x6c22('0x1'));var logger=require(_0x6c22('0x2'))(_0x6c22('0x3'));var client=jayson[_0x6c22('0x4')]['http']({'port':0x2329});client['Request']=function(_0x45d568,_0x2d4d4e){return new BPromise(function(_0x187566,_0x581b6c){return client['request'](_0x45d568,_0x2d4d4e)[_0x6c22('0x5')](function(_0x391c72){logger[_0x6c22('0x6')](_0x6c22('0x7'),_0x6c22('0x3'),_0x45d568,_0x2d4d4e,_0x391c72);if(_0x391c72[_0x6c22('0x8')]){logger[_0x6c22('0x8')](_0x6c22('0x7'),'routing',_0x45d568,_0x391c72['error'][_0x6c22('0x9')],_0x2d4d4e);return _0x581b6c(_0x391c72[_0x6c22('0x8')]['message']);}else{return _0x187566(_0x391c72['result']);}})[_0x6c22('0xa')](function(_0x3f67ed){logger[_0x6c22('0x8')]('rpc',_0x6c22('0x3'),_0x45d568,_0x3f67ed,_0x2d4d4e);return _0x581b6c(_0x3f67ed);});});};module[_0x6c22('0xb')]=client;
\ No newline at end of file
+var _0xe945=['client','http','Request','request','then','debug','routing','error','rpc','message','exports','../../config/logger'];(function(_0x354b56,_0x490f12){var _0xddb5db=function(_0x1dfb6c){while(--_0x1dfb6c){_0x354b56['push'](_0x354b56['shift']());}};_0xddb5db(++_0x490f12);}(_0xe945,0x1c7));var _0x5e94=function(_0x47cd98,_0xdf22b8){_0x47cd98=_0x47cd98-0x0;var _0x4369e8=_0xe945[_0x47cd98];return _0x4369e8;};'use strict';var jayson=require('jayson/promise');var BPromise=require('bluebird');var logger=require(_0x5e94('0x0'))('routing');var client=jayson[_0x5e94('0x1')][_0x5e94('0x2')]({'port':0x2329});client[_0x5e94('0x3')]=function(_0x5d87f9,_0x456051){return new BPromise(function(_0x2c1737,_0x46d2b7){return client[_0x5e94('0x4')](_0x5d87f9,_0x456051)[_0x5e94('0x5')](function(_0x2182ac){logger[_0x5e94('0x6')]('rpc',_0x5e94('0x7'),_0x5d87f9,_0x456051,_0x2182ac);if(_0x2182ac['error']){logger[_0x5e94('0x8')](_0x5e94('0x9'),_0x5e94('0x7'),_0x5d87f9,_0x2182ac[_0x5e94('0x8')]['message'],_0x456051);return _0x46d2b7(_0x2182ac[_0x5e94('0x8')][_0x5e94('0xa')]);}else{return _0x2c1737(_0x2182ac['result']);}})['catch'](function(_0x805946){logger[_0x5e94('0x8')](_0x5e94('0x9'),'routing',_0x5d87f9,_0x805946,_0x456051);return _0x46d2b7(_0x805946);});});};module[_0x5e94('0xb')]=client;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfe79=['getSettings','loginMailFrequency','catch','log','./server','./realtime','./rpc/mailAccount','resolve','then','getMailAccounts','initMailAccounts','refresh'];(function(_0x1ed49b,_0x2e6970){var _0x3a7284=function(_0x394b66){while(--_0x394b66){_0x1ed49b['push'](_0x1ed49b['shift']());}};_0x3a7284(++_0x2e6970);}(_0xfe79,0x160));var _0x9fe7=function(_0x461c18,_0x5605b9){_0x461c18=_0x461c18-0x0;var _0x35501c=_0xfe79[_0x461c18];return _0x35501c;};'use strict';var BPromise=require('bluebird');var server=require(_0x9fe7('0x0'));var Realtime=require(_0x9fe7('0x1'));var EmailChannel=require('./lib/email');var mailAccount=require(_0x9fe7('0x2'));var setting=require('./rpc/setting');var realtime=new Realtime();var email=new EmailChannel(realtime);function initRealtime(){return BPromise[_0x9fe7('0x3')]()[_0x9fe7('0x4')](mailAccount[_0x9fe7('0x5')]())['then'](realtime[_0x9fe7('0x6')]())[_0x9fe7('0x4')](function(){email[_0x9fe7('0x7')](realtime['mailAccounts']);return realtime;});}function main(){return server['listen'](realtime,email)[_0x9fe7('0x4')](function(){return initRealtime();})[_0x9fe7('0x4')](function(){return setting[_0x9fe7('0x8')]();})[_0x9fe7('0x4')](function(_0x41e25b){return setInterval(initRealtime,_0x41e25b[_0x9fe7('0x9')]*0x3e8);})[_0x9fe7('0xa')](function(_0xc10035){console[_0x9fe7('0xb')](_0xc10035);});}main();
\ No newline at end of file
+var _0xc927=['refresh','mailAccounts','listen','getSettings','loginMailFrequency','log','bluebird','./realtime','./rpc/mailAccount','resolve','getMailAccounts','then'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0xc927,0xea));var _0x7c92=function(_0xae2aee,_0x18e031){_0xae2aee=_0xae2aee-0x0;var _0x473c61=_0xc927[_0xae2aee];return _0x473c61;};'use strict';var BPromise=require(_0x7c92('0x0'));var server=require('./server');var Realtime=require(_0x7c92('0x1'));var EmailChannel=require('./lib/email');var mailAccount=require(_0x7c92('0x2'));var setting=require('./rpc/setting');var realtime=new Realtime();var email=new EmailChannel(realtime);function initRealtime(){return BPromise[_0x7c92('0x3')]()['then'](mailAccount[_0x7c92('0x4')]())[_0x7c92('0x5')](realtime['initMailAccounts']())['then'](function(){email[_0x7c92('0x6')](realtime[_0x7c92('0x7')]);return realtime;});}function main(){return server[_0x7c92('0x8')](realtime,email)['then'](function(){return initRealtime();})[_0x7c92('0x5')](function(){return setting[_0x7c92('0x9')]();})['then'](function(_0x1d8186){return setInterval(initRealtime,_0x1d8186[_0x7c92('0xa')]*0x3e8);})['catch'](function(_0x26a843){console[_0x7c92('0xb')](_0x26a843);});}main();
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd03e=['disabled','connected','messages','handleImapEmail','info','New\x20email\x20from\x20%s\x20%s\x20%s\x20to\x20%s','firstName','lastName','from','notify','then','Mail\x20accepted\x20from\x20routing','catch','Mail\x20not\x20accepted\x20from\x20routing\x20%s','lastSync','handleImapError','sendMail','send','Smtp','verify','verified','exports','lodash','moment','bluebird','md5','ioredis','../../../config/environment','../../../config/logger','email','redis','defaults','socket.io-emitter','./imap','./smtp','../rpc/mailAccount','start\x20email\x20channel','mailAccounts','smtp','prototype','emit','name','key','active','status','messageStatus','Imap','total','isNil','stringify','mailAccount:update','refresh','hasOwnProperty','imapAccounts','box','handleImapBox','bind','end','handleImapEnd','error'];(function(_0x3303a5,_0x9cc032){var _0x3e4ab2=function(_0x28adf0){while(--_0x28adf0){_0x3303a5['push'](_0x3303a5['shift']());}};_0x3e4ab2(++_0x9cc032);}(_0xd03e,0xca));var _0xed03=function(_0x580d2d,_0xc87144){_0x580d2d=_0x580d2d-0x0;var _0x11b2ec=_0xd03e[_0x580d2d];return _0x11b2ec;};'use strict';var _=require(_0xed03('0x0'));var moment=require(_0xed03('0x1'));var BPromise=require(_0xed03('0x2'));var md5=require(_0xed03('0x3'));var Redis=require(_0xed03('0x4'));var config=require(_0xed03('0x5'));var logger=require(_0xed03('0x6'))(_0xed03('0x7'));config[_0xed03('0x8')]=_[_0xed03('0x9')](config[_0xed03('0x8')],{'host':'localhost','port':0x18eb});var io=require(_0xed03('0xa'))(new Redis(config[_0xed03('0x8')]));var EmailImap=require(_0xed03('0xb'));var EmailSmtp=require(_0xed03('0xc'));var mailAccount=require(_0xed03('0xd'));var md5Accounts={};function EmailChannel(_0x3a8e9a){logger['info'](_0xed03('0xe'));this[_0xed03('0xf')]=_0x3a8e9a[_0xed03('0xf')];this['imapAccounts']={};this[_0xed03('0x10')]=new EmailSmtp();}EmailChannel[_0xed03('0x11')][_0xed03('0x12')]=function(_0x34201c){var _0xfb3eb9=this[_0xed03('0xf')][_0x34201c];var _0x30e939={'id':_0xfb3eb9['id'],'name':_0xfb3eb9[_0xed03('0x13')],'key':_0xfb3eb9[_0xed03('0x14')],'active':_0xfb3eb9[_0xed03('0x15')],'Imap':{'status':_0xfb3eb9['Imap'][_0xed03('0x16')],'messageStatus':_0xfb3eb9['Imap'][_0xed03('0x17')],'total':_0xfb3eb9[_0xed03('0x18')][_0xed03('0x19')]}};if(_[_0xed03('0x1a')](md5Accounts[_0x34201c])){md5Accounts[_0x34201c]={};}var _0x5c02d=md5(JSON[_0xed03('0x1b')](_0x30e939));if(md5Accounts[_0x34201c][_0xed03('0x3')]!==_0x5c02d){md5Accounts[_0x34201c]['md5']=_0x5c02d;io[_0xed03('0x12')](_0xed03('0x1c'),_0x30e939);}};EmailChannel['prototype'][_0xed03('0x1d')]=function(_0x5b75ac){for(var _0x561f44 in _0x5b75ac){if(_0x5b75ac[_0xed03('0x1e')](_0x561f44)){if(_0x5b75ac[_0x561f44][_0xed03('0x18')]&&_0x5b75ac[_0x561f44]['active']){var _0x49f3a0=_0x5b75ac[_0x561f44]['Imap'];if(!this[_0xed03('0x1f')][_0xed03('0x1e')](_0x49f3a0['id'])){this[_0xed03('0x1f')][_0x49f3a0['id']]=new EmailImap(_0x49f3a0,_0x5b75ac[_0x561f44][_0xed03('0x7')]);this[_0xed03('0x1f')][_0x49f3a0['id']]['on'](_0xed03('0x20'),this[_0xed03('0x21')][_0xed03('0x22')](this,_0x561f44));this[_0xed03('0x1f')][_0x49f3a0['id']]['on'](_0xed03('0x7'),this['handleImapEmail'][_0xed03('0x22')](this,_0x561f44));this['imapAccounts'][_0x49f3a0['id']]['on'](_0xed03('0x23'),this[_0xed03('0x24')][_0xed03('0x22')](this,_0x561f44));this['imapAccounts'][_0x49f3a0['id']]['on'](_0xed03('0x25'),this['handleImapError']['bind'](this,_0x561f44));}}else{if(_[_0xed03('0x1a')](this[_0xed03('0xf')][_0x561f44]['Imap'])){this[_0xed03('0xf')][_0x561f44][_0xed03('0x18')]={};}this['mailAccounts'][_0x561f44][_0xed03('0x18')][_0xed03('0x16')]=_0xed03('0x26');this['mailAccounts'][_0x561f44][_0xed03('0x18')]['messageStatus']='';this['emit'](_0x561f44);}}}};EmailChannel[_0xed03('0x11')][_0xed03('0x21')]=function(_0x47e796,_0xcbc5bd){if(this[_0xed03('0xf')][_0x47e796]){this['mailAccounts'][_0x47e796][_0xed03('0x18')][_0xed03('0x16')]=_0xed03('0x27');this[_0xed03('0xf')][_0x47e796][_0xed03('0x18')][_0xed03('0x17')]=_0xcbc5bd[_0xed03('0x13')];if(_0xcbc5bd[_0xed03('0x28')]){this['mailAccounts'][_0x47e796][_0xed03('0x18')]['total']=_0xcbc5bd['messages'][_0xed03('0x19')];}return this[_0xed03('0x12')](_0x47e796);}};EmailChannel[_0xed03('0x11')][_0xed03('0x29')]=function(_0x5af27c,_0x7b99a6){logger[_0xed03('0x2a')](_0xed03('0x2b'),_0x7b99a6[_0xed03('0x2c')],_0x7b99a6[_0xed03('0x2d')],_0x7b99a6[_0xed03('0x2e')],_0x5af27c);if(this[_0xed03('0xf')][_0x5af27c]){return mailAccount[_0xed03('0x2f')](_0x5af27c,_0x7b99a6)[_0xed03('0x30')](function(_0xb82660){if(_0xb82660){logger['info'](_0xed03('0x31'));}})[_0xed03('0x32')](function(_0x3e286c){logger['error'](_0xed03('0x33'),JSON[_0xed03('0x1b')](_0x3e286c));});}};EmailChannel['prototype'][_0xed03('0x24')]=function(_0xc5aedf){if(this[_0xed03('0xf')][_0xc5aedf]&&this[_0xed03('0xf')][_0xc5aedf][_0xed03('0x18')]){if(this[_0xed03('0x1f')][this[_0xed03('0xf')][_0xc5aedf]['Imap']['id']]){delete this[_0xed03('0x1f')][this[_0xed03('0xf')][_0xc5aedf]['Imap']['id']];}this[_0xed03('0xf')][_0xc5aedf]['Imap'][_0xed03('0x34')]=moment();this['emit'](_0xc5aedf);}};EmailChannel['prototype'][_0xed03('0x35')]=function(_0x37e019,_0x8bb201){if(this[_0xed03('0xf')][_0x37e019]){this[_0xed03('0xf')][_0x37e019]['Imap'][_0xed03('0x16')]='error';this[_0xed03('0xf')][_0x37e019][_0xed03('0x18')][_0xed03('0x17')]=_0x8bb201;return this[_0xed03('0x12')](_0x37e019);}};EmailChannel['prototype'][_0xed03('0x36')]=function(_0x3b6885,_0x4ff967){return this[_0xed03('0x10')][_0xed03('0x37')](_0x3b6885,_0x4ff967);};EmailChannel[_0xed03('0x11')]['verifySmtp']=function(_0x218b8e){var _0x12a90f=this;if(this['mailAccounts'][_0x218b8e['id']]){if(_[_0xed03('0x1a')](this[_0xed03('0xf')][_0x218b8e['id']][_0xed03('0x38')])){this[_0xed03('0xf')][_0x218b8e['id']][_0xed03('0x38')]={};}this[_0xed03('0xf')][_0x218b8e['id']][_0xed03('0x38')]['lastSync']=moment();return new BPromise(function(_0x49a244,_0x2318f7){return _0x12a90f[_0xed03('0x10')][_0xed03('0x39')](_0x218b8e)['then'](function(_0x37b664){_0x12a90f[_0xed03('0xf')][_0x218b8e['id']][_0xed03('0x38')]['status']=_0xed03('0x3a');_0x12a90f[_0xed03('0xf')][_0x218b8e['id']][_0xed03('0x38')][_0xed03('0x17')]='';_0x12a90f[_0xed03('0x12')](_0x218b8e['id']);_0x49a244(_0x37b664);})[_0xed03('0x32')](function(_0x15e440){_0x12a90f[_0xed03('0xf')][_0x218b8e['id']][_0xed03('0x38')]['status']=_0xed03('0x25');_0x12a90f[_0xed03('0xf')][_0x218b8e['id']][_0xed03('0x38')][_0xed03('0x17')]=_0x15e440;_0x12a90f[_0xed03('0x12')](_0x218b8e['id']);_0x2318f7(_0x15e440);});});}return this['smtp'][_0xed03('0x39')](_0x218b8e);};module[_0xed03('0x3b')]=EmailChannel;
\ No newline at end of file
+var _0x1eb6=['ioredis','../../../config/environment','email','redis','defaults','localhost','socket.io-emitter','./smtp','../rpc/mailAccount','info','mailAccounts','imapAccounts','smtp','prototype','name','key','active','status','Imap','messageStatus','isNil','stringify','mailAccount:update','refresh','hasOwnProperty','box','handleImapBox','bind','handleImapEnd','error','handleImapError','disabled','emit','messages','total','handleImapEmail','New\x20email\x20from\x20%s\x20%s\x20%s\x20to\x20%s','lastName','from','notify','catch','Mail\x20not\x20accepted\x20from\x20routing\x20%s','sendMail','send','verifySmtp','Smtp','lastSync','verify','then','bluebird','md5'];(function(_0x337d22,_0x112028){var _0x38a472=function(_0x4a1122){while(--_0x4a1122){_0x337d22['push'](_0x337d22['shift']());}};_0x38a472(++_0x112028);}(_0x1eb6,0x1c9));var _0x61eb=function(_0x119b88,_0x335cf6){_0x119b88=_0x119b88-0x0;var _0x36b5f6=_0x1eb6[_0x119b88];return _0x36b5f6;};'use strict';var _=require('lodash');var moment=require('moment');var BPromise=require(_0x61eb('0x0'));var md5=require(_0x61eb('0x1'));var Redis=require(_0x61eb('0x2'));var config=require(_0x61eb('0x3'));var logger=require('../../../config/logger')(_0x61eb('0x4'));config[_0x61eb('0x5')]=_[_0x61eb('0x6')](config[_0x61eb('0x5')],{'host':_0x61eb('0x7'),'port':0x18eb});var io=require(_0x61eb('0x8'))(new Redis(config[_0x61eb('0x5')]));var EmailImap=require('./imap');var EmailSmtp=require(_0x61eb('0x9'));var mailAccount=require(_0x61eb('0xa'));var md5Accounts={};function EmailChannel(_0x2336a5){logger[_0x61eb('0xb')]('start\x20email\x20channel');this[_0x61eb('0xc')]=_0x2336a5['mailAccounts'];this[_0x61eb('0xd')]={};this[_0x61eb('0xe')]=new EmailSmtp();}EmailChannel[_0x61eb('0xf')]['emit']=function(_0x3c7783){var _0x536ce3=this[_0x61eb('0xc')][_0x3c7783];var _0x3ae1e4={'id':_0x536ce3['id'],'name':_0x536ce3[_0x61eb('0x10')],'key':_0x536ce3[_0x61eb('0x11')],'active':_0x536ce3[_0x61eb('0x12')],'Imap':{'status':_0x536ce3['Imap'][_0x61eb('0x13')],'messageStatus':_0x536ce3[_0x61eb('0x14')][_0x61eb('0x15')],'total':_0x536ce3[_0x61eb('0x14')]['total']}};if(_[_0x61eb('0x16')](md5Accounts[_0x3c7783])){md5Accounts[_0x3c7783]={};}var _0x10a36f=md5(JSON[_0x61eb('0x17')](_0x3ae1e4));if(md5Accounts[_0x3c7783]['md5']!==_0x10a36f){md5Accounts[_0x3c7783][_0x61eb('0x1')]=_0x10a36f;io['emit'](_0x61eb('0x18'),_0x3ae1e4);}};EmailChannel[_0x61eb('0xf')][_0x61eb('0x19')]=function(_0x488bc4){for(var _0x21ff4a in _0x488bc4){if(_0x488bc4['hasOwnProperty'](_0x21ff4a)){if(_0x488bc4[_0x21ff4a]['Imap']&&_0x488bc4[_0x21ff4a][_0x61eb('0x12')]){var _0x32b16f=_0x488bc4[_0x21ff4a][_0x61eb('0x14')];if(!this[_0x61eb('0xd')][_0x61eb('0x1a')](_0x32b16f['id'])){this[_0x61eb('0xd')][_0x32b16f['id']]=new EmailImap(_0x32b16f,_0x488bc4[_0x21ff4a][_0x61eb('0x4')]);this['imapAccounts'][_0x32b16f['id']]['on'](_0x61eb('0x1b'),this[_0x61eb('0x1c')][_0x61eb('0x1d')](this,_0x21ff4a));this[_0x61eb('0xd')][_0x32b16f['id']]['on'](_0x61eb('0x4'),this['handleImapEmail'][_0x61eb('0x1d')](this,_0x21ff4a));this[_0x61eb('0xd')][_0x32b16f['id']]['on']('end',this[_0x61eb('0x1e')][_0x61eb('0x1d')](this,_0x21ff4a));this[_0x61eb('0xd')][_0x32b16f['id']]['on'](_0x61eb('0x1f'),this[_0x61eb('0x20')][_0x61eb('0x1d')](this,_0x21ff4a));}}else{if(_[_0x61eb('0x16')](this[_0x61eb('0xc')][_0x21ff4a][_0x61eb('0x14')])){this['mailAccounts'][_0x21ff4a][_0x61eb('0x14')]={};}this[_0x61eb('0xc')][_0x21ff4a][_0x61eb('0x14')][_0x61eb('0x13')]=_0x61eb('0x21');this[_0x61eb('0xc')][_0x21ff4a][_0x61eb('0x14')][_0x61eb('0x15')]='';this[_0x61eb('0x22')](_0x21ff4a);}}}};EmailChannel[_0x61eb('0xf')][_0x61eb('0x1c')]=function(_0x141e59,_0x2c9d45){if(this[_0x61eb('0xc')][_0x141e59]){this['mailAccounts'][_0x141e59][_0x61eb('0x14')][_0x61eb('0x13')]='connected';this[_0x61eb('0xc')][_0x141e59][_0x61eb('0x14')][_0x61eb('0x15')]=_0x2c9d45[_0x61eb('0x10')];if(_0x2c9d45['messages']){this[_0x61eb('0xc')][_0x141e59]['Imap']['total']=_0x2c9d45[_0x61eb('0x23')][_0x61eb('0x24')];}return this[_0x61eb('0x22')](_0x141e59);}};EmailChannel[_0x61eb('0xf')][_0x61eb('0x25')]=function(_0x588890,_0x6130b5){logger['info'](_0x61eb('0x26'),_0x6130b5['firstName'],_0x6130b5[_0x61eb('0x27')],_0x6130b5[_0x61eb('0x28')],_0x588890);if(this['mailAccounts'][_0x588890]){return mailAccount[_0x61eb('0x29')](_0x588890,_0x6130b5)['then'](function(_0x4f87af){if(_0x4f87af){logger[_0x61eb('0xb')]('Mail\x20accepted\x20from\x20routing');}})[_0x61eb('0x2a')](function(_0x5ad832){logger[_0x61eb('0x1f')](_0x61eb('0x2b'),JSON[_0x61eb('0x17')](_0x5ad832));});}};EmailChannel[_0x61eb('0xf')][_0x61eb('0x1e')]=function(_0x5d043d){if(this[_0x61eb('0xc')][_0x5d043d]&&this[_0x61eb('0xc')][_0x5d043d][_0x61eb('0x14')]){if(this[_0x61eb('0xd')][this[_0x61eb('0xc')][_0x5d043d]['Imap']['id']]){delete this[_0x61eb('0xd')][this['mailAccounts'][_0x5d043d][_0x61eb('0x14')]['id']];}this[_0x61eb('0xc')][_0x5d043d]['Imap']['lastSync']=moment();this['emit'](_0x5d043d);}};EmailChannel[_0x61eb('0xf')]['handleImapError']=function(_0x3692a0,_0xa14cb){if(this['mailAccounts'][_0x3692a0]){this[_0x61eb('0xc')][_0x3692a0][_0x61eb('0x14')][_0x61eb('0x13')]=_0x61eb('0x1f');this[_0x61eb('0xc')][_0x3692a0]['Imap'][_0x61eb('0x15')]=_0xa14cb;return this[_0x61eb('0x22')](_0x3692a0);}};EmailChannel['prototype'][_0x61eb('0x2c')]=function(_0x3beff8,_0x46630b){return this[_0x61eb('0xe')][_0x61eb('0x2d')](_0x3beff8,_0x46630b);};EmailChannel[_0x61eb('0xf')][_0x61eb('0x2e')]=function(_0x4c9fc7){var _0x1ce690=this;if(this[_0x61eb('0xc')][_0x4c9fc7['id']]){if(_[_0x61eb('0x16')](this[_0x61eb('0xc')][_0x4c9fc7['id']]['Smtp'])){this['mailAccounts'][_0x4c9fc7['id']][_0x61eb('0x2f')]={};}this[_0x61eb('0xc')][_0x4c9fc7['id']][_0x61eb('0x2f')][_0x61eb('0x30')]=moment();return new BPromise(function(_0x498d5b,_0x44e1e6){return _0x1ce690[_0x61eb('0xe')][_0x61eb('0x31')](_0x4c9fc7)[_0x61eb('0x32')](function(_0x4f7fe5){_0x1ce690[_0x61eb('0xc')][_0x4c9fc7['id']][_0x61eb('0x2f')][_0x61eb('0x13')]='verified';_0x1ce690[_0x61eb('0xc')][_0x4c9fc7['id']][_0x61eb('0x2f')]['messageStatus']='';_0x1ce690[_0x61eb('0x22')](_0x4c9fc7['id']);_0x498d5b(_0x4f7fe5);})[_0x61eb('0x2a')](function(_0x1ab13d){_0x1ce690[_0x61eb('0xc')][_0x4c9fc7['id']][_0x61eb('0x2f')][_0x61eb('0x13')]=_0x61eb('0x1f');_0x1ce690['mailAccounts'][_0x4c9fc7['id']][_0x61eb('0x2f')][_0x61eb('0x15')]=_0x1ab13d;_0x1ce690[_0x61eb('0x22')](_0x4c9fc7['id']);_0x44e1e6(_0x1ab13d);});});}return this['smtp'][_0x61eb('0x31')](_0x4c9fc7);};module['exports']=EmailChannel;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5fbd=['once','end','error','handleError','connect','inherits','getAccount','connTimeout','authTimeout','service','authentication','user','host','port','tls','autotls','password','anonymous@xcally.com','openBox','handleOpenBox','prototype','emit','readUnseen','handleCloseBox','search','UNSEEN','handleReadUnseen','length','message','handleFetchMessage','handleFetchError','handleFetchEnd','closeBox','body','handleMessageBody','attributes','handleMessageAttributes','handleMessageEnd','handleSimpleParser','parser','handleEnd','stringify','textCode','upperFirst','exports','path','util','imap','lodash','randomstring','mailparser','simpleParser','iconv','Iconv','EventEmitter','./utils','../../../config/logger','email','mailbox','account','ready','handleReady','bind'];(function(_0x1d50f2,_0x3c3ec6){var _0x3769b8=function(_0x50926a){while(--_0x50926a){_0x1d50f2['push'](_0x1d50f2['shift']());}};_0x3769b8(++_0x3c3ec6);}(_0x5fbd,0xea));var _0xd5fb=function(_0x56ba90,_0x402aa2){_0x56ba90=_0x56ba90-0x0;var _0x4b56db=_0x5fbd[_0x56ba90];return _0x4b56db;};'use strict';var fs=require('fs');var path=require(_0xd5fb('0x0'));var util=require(_0xd5fb('0x1'));var Imap=require(_0xd5fb('0x2'));var _=require(_0xd5fb('0x3'));var rs=require(_0xd5fb('0x4'));var simpleParser=require(_0xd5fb('0x5'))[_0xd5fb('0x6')];var Iconv=require(_0xd5fb('0x7'))[_0xd5fb('0x8')];var EventEmitter=require('events')[_0xd5fb('0x9')];var utils=require(_0xd5fb('0xa'));var logger=require(_0xd5fb('0xb'))(_0xd5fb('0xc'));function EmailImap(_0x1f278d,_0x210c1c){this[_0xd5fb('0xd')]='INBOX';this[_0xd5fb('0xe')]=this['getAccount'](_0x1f278d,_0x210c1c);this['imap']=new Imap(this['account']);this[_0xd5fb('0x2')]['once'](_0xd5fb('0xf'),this[_0xd5fb('0x10')][_0xd5fb('0x11')](this));this[_0xd5fb('0x2')][_0xd5fb('0x12')](_0xd5fb('0x13'),this['handleEnd']['bind'](this));this[_0xd5fb('0x2')]['on'](_0xd5fb('0x14'),this[_0xd5fb('0x15')]['bind'](this));this[_0xd5fb('0x2')][_0xd5fb('0x16')]();}util[_0xd5fb('0x17')](EmailImap,EventEmitter);EmailImap['prototype'][_0xd5fb('0x18')]=function(_0x4c17c1,_0x47e25e){var _0x5797e1={'connTimeout':_0x4c17c1[_0xd5fb('0x19')]?_0x4c17c1['connTimeout']*0x3e8:0x2710,'authTimeout':_0x4c17c1[_0xd5fb('0x1a')]?_0x4c17c1[_0xd5fb('0x1a')]*0x3e8:0x1388};if(_['isNil'](_0x4c17c1[_0xd5fb('0x1b')])){if(_0x4c17c1[_0xd5fb('0x1c')]){_0x5797e1[_0xd5fb('0x1d')]=_0x4c17c1[_0xd5fb('0x1d')];_0x5797e1['password']=_0x4c17c1['password'];}_0x5797e1[_0xd5fb('0x1e')]=_0x4c17c1[_0xd5fb('0x1e')];_0x5797e1['port']=_0x4c17c1[_0xd5fb('0x1f')]||0x3e1;if(_0x4c17c1[_0xd5fb('0x20')]){_0x5797e1['tls']=!![];}else{_0x5797e1[_0xd5fb('0x20')]=![];_0x5797e1[_0xd5fb('0x21')]='required';}}else{_0x5797e1[_0xd5fb('0x1d')]=_0x4c17c1[_0xd5fb('0x1d')];_0x5797e1['password']=_0x4c17c1[_0xd5fb('0x22')];_0x5797e1[_0xd5fb('0x1e')]=utils['getHost'](_0x4c17c1[_0xd5fb('0x1b')]);_0x5797e1[_0xd5fb('0x1f')]=0x3e1;_0x5797e1['tls']=!![];}_0x5797e1[_0xd5fb('0xc')]=_0x47e25e||_0x4c17c1['user']||_0xd5fb('0x23');return _0x5797e1;};EmailImap['prototype'][_0xd5fb('0x10')]=function(){this[_0xd5fb('0x2')][_0xd5fb('0x24')](this[_0xd5fb('0xd')],![],this[_0xd5fb('0x25')][_0xd5fb('0x11')](this));};EmailImap[_0xd5fb('0x26')][_0xd5fb('0x25')]=function(_0x2b025b,_0x204850){if(_0x2b025b){this['handleError'](_0x2b025b,!![]);}else{this[_0xd5fb('0x27')]('box',_0x204850);this[_0xd5fb('0x28')]();}};EmailImap['prototype'][_0xd5fb('0x29')]=function(_0x3020c8){if(_0x3020c8){this['handleError'](_0x3020c8,!![]);}else{this[_0xd5fb('0x2')][_0xd5fb('0x13')]();}};EmailImap['prototype'][_0xd5fb('0x28')]=function(){this[_0xd5fb('0x2')][_0xd5fb('0x2a')]([_0xd5fb('0x2b')],this[_0xd5fb('0x2c')][_0xd5fb('0x11')](this));};EmailImap[_0xd5fb('0x26')][_0xd5fb('0x2c')]=function(_0x2ea294,_0x24be0f){if(_0x2ea294){this[_0xd5fb('0x15')](_0x2ea294,!![]);}else{if(_0x24be0f[_0xd5fb('0x2d')]){try{var _0x1a8c94=this[_0xd5fb('0x2')]['fetch'](_0x24be0f,{'bodies':'','markSeen':!![]});_0x1a8c94['on'](_0xd5fb('0x2e'),this[_0xd5fb('0x2f')]['bind'](this));_0x1a8c94['once']('error',this[_0xd5fb('0x30')]['bind'](this));_0x1a8c94['once'](_0xd5fb('0x13'),this[_0xd5fb('0x31')][_0xd5fb('0x11')](this));}catch(_0x1d79e4){logger[_0xd5fb('0x14')](_0x1d79e4);}}else{this['imap'][_0xd5fb('0x32')](!![],this[_0xd5fb('0x29')][_0xd5fb('0x11')](this));}}};EmailImap[_0xd5fb('0x26')][_0xd5fb('0x2f')]=function(_0x43f887,_0x3b7f4c){_0x43f887['on'](_0xd5fb('0x33'),this[_0xd5fb('0x34')][_0xd5fb('0x11')](this));_0x43f887['once'](_0xd5fb('0x35'),this[_0xd5fb('0x36')]['bind'](this));_0x43f887[_0xd5fb('0x12')]('end',this[_0xd5fb('0x37')][_0xd5fb('0x11')](this));};EmailImap['prototype'][_0xd5fb('0x34')]=function(_0x4cff2b,_0x1bca5c){simpleParser(_0x4cff2b,{'Iconv':Iconv},this['handleSimpleParser']['bind'](this));};EmailImap[_0xd5fb('0x26')][_0xd5fb('0x36')]=function(_0x1e56bc){};EmailImap[_0xd5fb('0x26')][_0xd5fb('0x37')]=function(){};EmailImap[_0xd5fb('0x26')][_0xd5fb('0x38')]=function(_0x4d9aec,_0x3bc125){if(_0x4d9aec){logger['error'](_0x4d9aec);}else{var _0x41976a=this;utils[_0xd5fb('0x39')](this[_0xd5fb('0xe')],_0x3bc125,function(_0xf6eb78){_0x41976a[_0xd5fb('0x27')](_0xd5fb('0xc'),_0xf6eb78);});}};EmailImap['prototype']['handleFetchEnd']=function(){this['imap'][_0xd5fb('0x32')](!![],this[_0xd5fb('0x29')]['bind'](this));};EmailImap[_0xd5fb('0x26')]['handleFetchError']=function(_0x5d982a){this[_0xd5fb('0x15')](_0x5d982a);this[_0xd5fb('0x2')]['closeBox'](!![],this[_0xd5fb('0x29')][_0xd5fb('0x11')](this));};EmailImap[_0xd5fb('0x26')][_0xd5fb('0x3a')]=function(){this[_0xd5fb('0x27')](_0xd5fb('0x13'));};EmailImap['prototype']['handleError']=function(_0x49a973,_0x5f4577){logger[_0xd5fb('0x14')](_0xd5fb('0x15'),this['account']['email'],JSON[_0xd5fb('0x3b')](_0x49a973));var _0x43efaa='';if(_0x49a973){if(_0x49a973[_0xd5fb('0x3c')]){_0x43efaa=_0x49a973[_0xd5fb('0x3c')];}else{for(var _0x25cf27 in _0x49a973){if(_0x49a973['hasOwnProperty'](_0x25cf27)){_0x43efaa+=_[_0xd5fb('0x3d')](_0x25cf27)+':\x20'+_0x49a973[_0x25cf27]+'\x0a';}}}}if(_0x5f4577){this[_0xd5fb('0x2')][_0xd5fb('0x13')]();}else{this['emit'](_0xd5fb('0x14'),_0x43efaa);this[_0xd5fb('0x27')](_0xd5fb('0x13'));}};module[_0xd5fb('0x3e')]=EmailImap;
\ No newline at end of file
+var _0xc8be=['exports','path','util','imap','lodash','randomstring','mailparser','iconv','Iconv','events','EventEmitter','./utils','../../../config/logger','email','INBOX','account','getAccount','once','ready','end','handleEnd','bind','error','handleError','inherits','connTimeout','authTimeout','isNil','password','host','port','tls','autotls','required','user','getHost','service','anonymous@xcally.com','prototype','handleReady','handleOpenBox','emit','readUnseen','handleCloseBox','search','handleReadUnseen','fetch','handleFetchMessage','handleFetchError','handleFetchEnd','closeBox','body','handleMessageBody','attributes','handleMessageAttributes','handleMessageEnd','textCode','upperFirst'];(function(_0x33c381,_0x4ac9dc){var _0xf71306=function(_0x96c0f5){while(--_0x96c0f5){_0x33c381['push'](_0x33c381['shift']());}};_0xf71306(++_0x4ac9dc);}(_0xc8be,0x15d));var _0xec8b=function(_0x58bf8b,_0xd03253){_0x58bf8b=_0x58bf8b-0x0;var _0x446aab=_0xc8be[_0x58bf8b];return _0x446aab;};'use strict';var fs=require('fs');var path=require(_0xec8b('0x0'));var util=require(_0xec8b('0x1'));var Imap=require(_0xec8b('0x2'));var _=require(_0xec8b('0x3'));var rs=require(_0xec8b('0x4'));var simpleParser=require(_0xec8b('0x5'))['simpleParser'];var Iconv=require(_0xec8b('0x6'))[_0xec8b('0x7')];var EventEmitter=require(_0xec8b('0x8'))[_0xec8b('0x9')];var utils=require(_0xec8b('0xa'));var logger=require(_0xec8b('0xb'))(_0xec8b('0xc'));function EmailImap(_0x5a1412,_0x3d5088){this['mailbox']=_0xec8b('0xd');this[_0xec8b('0xe')]=this[_0xec8b('0xf')](_0x5a1412,_0x3d5088);this[_0xec8b('0x2')]=new Imap(this[_0xec8b('0xe')]);this['imap'][_0xec8b('0x10')](_0xec8b('0x11'),this['handleReady']['bind'](this));this[_0xec8b('0x2')][_0xec8b('0x10')](_0xec8b('0x12'),this[_0xec8b('0x13')][_0xec8b('0x14')](this));this['imap']['on'](_0xec8b('0x15'),this[_0xec8b('0x16')][_0xec8b('0x14')](this));this[_0xec8b('0x2')]['connect']();}util[_0xec8b('0x17')](EmailImap,EventEmitter);EmailImap['prototype']['getAccount']=function(_0x55bc52,_0x720709){var _0x1240fb={'connTimeout':_0x55bc52[_0xec8b('0x18')]?_0x55bc52[_0xec8b('0x18')]*0x3e8:0x2710,'authTimeout':_0x55bc52['authTimeout']?_0x55bc52[_0xec8b('0x19')]*0x3e8:0x1388};if(_[_0xec8b('0x1a')](_0x55bc52['service'])){if(_0x55bc52['authentication']){_0x1240fb['user']=_0x55bc52['user'];_0x1240fb[_0xec8b('0x1b')]=_0x55bc52['password'];}_0x1240fb['host']=_0x55bc52[_0xec8b('0x1c')];_0x1240fb['port']=_0x55bc52[_0xec8b('0x1d')]||0x3e1;if(_0x55bc52['tls']){_0x1240fb[_0xec8b('0x1e')]=!![];}else{_0x1240fb['tls']=![];_0x1240fb[_0xec8b('0x1f')]=_0xec8b('0x20');}}else{_0x1240fb[_0xec8b('0x21')]=_0x55bc52[_0xec8b('0x21')];_0x1240fb['password']=_0x55bc52[_0xec8b('0x1b')];_0x1240fb[_0xec8b('0x1c')]=utils[_0xec8b('0x22')](_0x55bc52[_0xec8b('0x23')]);_0x1240fb[_0xec8b('0x1d')]=0x3e1;_0x1240fb['tls']=!![];}_0x1240fb[_0xec8b('0xc')]=_0x720709||_0x55bc52[_0xec8b('0x21')]||_0xec8b('0x24');return _0x1240fb;};EmailImap[_0xec8b('0x25')][_0xec8b('0x26')]=function(){this[_0xec8b('0x2')]['openBox'](this['mailbox'],![],this[_0xec8b('0x27')]['bind'](this));};EmailImap[_0xec8b('0x25')][_0xec8b('0x27')]=function(_0x1e6d89,_0x50fb57){if(_0x1e6d89){this[_0xec8b('0x16')](_0x1e6d89,!![]);}else{this[_0xec8b('0x28')]('box',_0x50fb57);this[_0xec8b('0x29')]();}};EmailImap[_0xec8b('0x25')][_0xec8b('0x2a')]=function(_0x1299f){if(_0x1299f){this[_0xec8b('0x16')](_0x1299f,!![]);}else{this[_0xec8b('0x2')][_0xec8b('0x12')]();}};EmailImap[_0xec8b('0x25')][_0xec8b('0x29')]=function(){this[_0xec8b('0x2')][_0xec8b('0x2b')](['UNSEEN'],this[_0xec8b('0x2c')][_0xec8b('0x14')](this));};EmailImap['prototype'][_0xec8b('0x2c')]=function(_0x2f078d,_0x1156ef){if(_0x2f078d){this[_0xec8b('0x16')](_0x2f078d,!![]);}else{if(_0x1156ef['length']){try{var _0x578316=this[_0xec8b('0x2')][_0xec8b('0x2d')](_0x1156ef,{'bodies':'','markSeen':!![]});_0x578316['on']('message',this[_0xec8b('0x2e')][_0xec8b('0x14')](this));_0x578316[_0xec8b('0x10')](_0xec8b('0x15'),this[_0xec8b('0x2f')][_0xec8b('0x14')](this));_0x578316[_0xec8b('0x10')](_0xec8b('0x12'),this[_0xec8b('0x30')]['bind'](this));}catch(_0x34e71a){logger[_0xec8b('0x15')](_0x34e71a);}}else{this['imap'][_0xec8b('0x31')](!![],this[_0xec8b('0x2a')][_0xec8b('0x14')](this));}}};EmailImap['prototype']['handleFetchMessage']=function(_0x39ef13,_0x31eb48){_0x39ef13['on'](_0xec8b('0x32'),this[_0xec8b('0x33')][_0xec8b('0x14')](this));_0x39ef13[_0xec8b('0x10')](_0xec8b('0x34'),this[_0xec8b('0x35')][_0xec8b('0x14')](this));_0x39ef13['once'](_0xec8b('0x12'),this[_0xec8b('0x36')]['bind'](this));};EmailImap[_0xec8b('0x25')][_0xec8b('0x33')]=function(_0x3c9446,_0x1843e7){simpleParser(_0x3c9446,{'Iconv':Iconv},this['handleSimpleParser']['bind'](this));};EmailImap[_0xec8b('0x25')]['handleMessageAttributes']=function(_0x92977c){};EmailImap[_0xec8b('0x25')][_0xec8b('0x36')]=function(){};EmailImap[_0xec8b('0x25')]['handleSimpleParser']=function(_0x254b93,_0xab8da5){if(_0x254b93){logger[_0xec8b('0x15')](_0x254b93);}else{var _0x53b56b=this;utils['parser'](this[_0xec8b('0xe')],_0xab8da5,function(_0xf14485){_0x53b56b['emit'](_0xec8b('0xc'),_0xf14485);});}};EmailImap[_0xec8b('0x25')][_0xec8b('0x30')]=function(){this[_0xec8b('0x2')][_0xec8b('0x31')](!![],this[_0xec8b('0x2a')]['bind'](this));};EmailImap['prototype'][_0xec8b('0x2f')]=function(_0x7e0cc5){this[_0xec8b('0x16')](_0x7e0cc5);this[_0xec8b('0x2')][_0xec8b('0x31')](!![],this[_0xec8b('0x2a')][_0xec8b('0x14')](this));};EmailImap[_0xec8b('0x25')][_0xec8b('0x13')]=function(){this[_0xec8b('0x28')](_0xec8b('0x12'));};EmailImap[_0xec8b('0x25')][_0xec8b('0x16')]=function(_0x5aa637,_0x1418b8){logger['error']('handleError',this[_0xec8b('0xe')][_0xec8b('0xc')],JSON['stringify'](_0x5aa637));var _0x2cb8be='';if(_0x5aa637){if(_0x5aa637['textCode']){_0x2cb8be=_0x5aa637[_0xec8b('0x37')];}else{for(var _0x26a23c in _0x5aa637){if(_0x5aa637['hasOwnProperty'](_0x26a23c)){_0x2cb8be+=_[_0xec8b('0x38')](_0x26a23c)+':\x20'+_0x5aa637[_0x26a23c]+'\x0a';}}}}if(_0x1418b8){this['imap'][_0xec8b('0x12')]();}else{this['emit']('error',_0x2cb8be);this['emit'](_0xec8b('0x12'));}};module[_0xec8b('0x39')]=EmailImap;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x87f5=['prototype','send','createTransport','use','sendMail','Not\x20verifired','exports','nodemailer','bluebird','nodemailer-plugin-inline-base64'];(function(_0x90c4ae,_0x17c1c2){var _0x3225a4=function(_0x1e0ebf){while(--_0x1e0ebf){_0x90c4ae['push'](_0x90c4ae['shift']());}};_0x3225a4(++_0x17c1c2);}(_0x87f5,0xc5));var _0x587f=function(_0x5b0144,_0x48dcce){_0x5b0144=_0x5b0144-0x0;var _0x17903f=_0x87f5[_0x5b0144];return _0x17903f;};'use strict';var nodemailer=require(_0x587f('0x0'));var BPromise=require(_0x587f('0x1'));var inlineBase64=require(_0x587f('0x2'));function EmailSmtp(){}EmailSmtp[_0x587f('0x3')][_0x587f('0x4')]=function(_0x3f648a,_0x42eb6b){return new BPromise(function(_0x5f489e,_0x282de2){var _0x527668=nodemailer[_0x587f('0x5')](_0x3f648a);_0x527668[_0x587f('0x6')]('compile',inlineBase64());_0x527668[_0x587f('0x7')](_0x42eb6b,function(_0x27d288,_0x428964){if(_0x27d288){_0x282de2(_0x27d288['toString']());}else{_0x5f489e(_0x428964);}});});};EmailSmtp[_0x587f('0x3')]['verify']=function(_0x54bc1f){return new BPromise(function(_0x19bcb3,_0x4acac6){var _0x188fcc=nodemailer[_0x587f('0x5')](_0x54bc1f);_0x188fcc['verify'](function(_0x3b64e0,_0x3e95cf){if(_0x3b64e0){_0x4acac6(_0x3b64e0['toString']());}else{if(_0x3e95cf){_0x19bcb3(_0x3e95cf);}else{_0x4acac6(_0x587f('0x8'));}}});});};module[_0x587f('0x9')]=EmailSmtp;
\ No newline at end of file
+var _0x6e37=['Not\x20verifired','exports','nodemailer','bluebird','prototype','send','createTransport','compile','toString','verify'];(function(_0x5235a6,_0x680b76){var _0x1cf37e=function(_0x31c173){while(--_0x31c173){_0x5235a6['push'](_0x5235a6['shift']());}};_0x1cf37e(++_0x680b76);}(_0x6e37,0x156));var _0x76e3=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0x6e37[_0x20a584];return _0x4b41a8;};'use strict';var nodemailer=require(_0x76e3('0x0'));var BPromise=require(_0x76e3('0x1'));var inlineBase64=require('nodemailer-plugin-inline-base64');function EmailSmtp(){}EmailSmtp[_0x76e3('0x2')][_0x76e3('0x3')]=function(_0x42d621,_0x1a5f36){return new BPromise(function(_0x2de077,_0x50fd77){var _0x28c274=nodemailer[_0x76e3('0x4')](_0x42d621);_0x28c274['use'](_0x76e3('0x5'),inlineBase64());_0x28c274['sendMail'](_0x1a5f36,function(_0x1d08c0,_0x562177){if(_0x1d08c0){_0x50fd77(_0x1d08c0[_0x76e3('0x6')]());}else{_0x2de077(_0x562177);}});});};EmailSmtp[_0x76e3('0x2')][_0x76e3('0x7')]=function(_0xac6a0d){return new BPromise(function(_0x48ae3f,_0x4d7b82){var _0x2dac82=nodemailer[_0x76e3('0x4')](_0xac6a0d);_0x2dac82['verify'](function(_0x1529fa,_0x55d412){if(_0x1529fa){_0x4d7b82(_0x1529fa[_0x76e3('0x6')]());}else{if(_0x55d412){_0x48ae3f(_0x55d412);}else{_0x4d7b82(_0x76e3('0x8'));}}});});};module[_0x76e3('0x9')]=EmailSmtp;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7524=['test','includes','<img','attachments','forEach','push','filename','replace','_IMG','body','textAsHtml','<a\x20target=\x22_blank\x22\x20','message','originTo','email','originCc','bcc','attach','type','attachment','attachment-','format','%s-%s','now','root','writeFileSync','content','headerLines','Auto-Submitted:\x20auto-replied','X-Auto-Response-Suppress:\x20All','isAutoreply','parser','from','subject','inReplyTo','date','YYYY-MM-DD\x20HH:mm:ss','filter','info','Email\x20message\x20%s\x20is\x20in\x20TNEF\x20format:\x20message\x20content\x20will\x20be\x20converted\x20by\x20the\x20system','messageId','parseBuffer','BodyHTML','<p>Empty\x20message</p>','Attachments','Title','Data','gmail','imap.gmail.com','yahoo','imap.mail.yahoo.com','hotmail','outlook365','127.0.0.1','moment','randomstring','util','node-tnef','../../../config/environment','head','value','address','generate','@xcally.com','name','substring','indexOf','split','length','slice','join','Anonymous','pop','isEmpty','anonymous','html'];(function(_0x2dafbe,_0x5d04de){var _0x58a45a=function(_0x50ac96){while(--_0x50ac96){_0x2dafbe['push'](_0x2dafbe['shift']());}};_0x58a45a(++_0x5d04de);}(_0x7524,0xce));var _0x4752=function(_0x5907cc,_0x3eebac){_0x5907cc=_0x5907cc-0x0;var _0xcfc78b=_0x7524[_0x5907cc];return _0xcfc78b;};'use strict';var _=require('lodash');var moment=require(_0x4752('0x0'));var random=require(_0x4752('0x1'));var fs=require('fs');var path=require('path');var util=require(_0x4752('0x2'));var tnef=require(_0x4752('0x3'));var logger=require('../../../config/logger')('email');var config=require(_0x4752('0x4'));function getAddress(_0x4d5e05){var _0x3884b9=_[_0x4752('0x5')](_0x4d5e05[_0x4752('0x6')]);return _0x3884b9&&_0x3884b9[_0x4752('0x7')]?_0x3884b9[_0x4752('0x7')]:'anonymous'+random[_0x4752('0x8')](0x6)+_0x4752('0x9');}function getFirstName(_0x59477c){var _0x5db15c=_[_0x4752('0x5')](_0x59477c[_0x4752('0x6')]);if(_0x5db15c&&_0x5db15c[_0x4752('0xa')]){if(_0x5db15c[_0x4752('0xa')]==_0x5db15c['address']){return _0x5db15c[_0x4752('0xa')][_0x4752('0xb')](0x0,_0x5db15c[_0x4752('0xa')][_0x4752('0xc')]('@'));}var _0xcf0104=_0x5db15c['name'][_0x4752('0xd')](/\s+/);return _0xcf0104[_0x4752('0xe')]>0x1?_0xcf0104[_0x4752('0xf')](0x0,-0x1)[_0x4752('0x10')]('\x20'):_0x5db15c[_0x4752('0xa')];}return _0x4752('0x11');}function getLastName(_0xcee47){var _0x505d48=_[_0x4752('0x5')](_0xcee47['value']);if(_0x505d48&&_0x505d48[_0x4752('0xa')]){var _0x32d837=_0x505d48[_0x4752('0xa')][_0x4752('0xd')](/\s+/);return _0x32d837[_0x4752('0xe')]>0x1?_0x32d837[_0x4752('0x12')]():'';}return'';}function getMails(_0x410f88,_0x552daf){var _0x446a37='';for(var _0x1dad7c=0x0;_0x1dad7c<_0x552daf['value'][_0x4752('0xe')];_0x1dad7c+=0x1){if(_0x552daf['value'][_0x1dad7c][_0x4752('0x7')]!==_0x410f88){if(!_[_0x4752('0x13')](_0x446a37)){_0x446a37+=',';}_0x446a37+=_0x552daf['value'][_0x1dad7c][_0x4752('0xa')]||_0x552daf['value'][_0x1dad7c]['address']||'';_0x446a37+='\x20<';_0x446a37+=_0x552daf[_0x4752('0x6')][_0x1dad7c][_0x4752('0x7')]?_0x552daf[_0x4752('0x6')][_0x1dad7c][_0x4752('0x7')]:_0x4752('0x14')+random[_0x4752('0x8')](0x6)+'@xcally.com';_0x446a37+='>';}}return _0x446a37;}function parseEmail(_0x22215f,_0x2d2f9e,_0x477050){if(_0x2d2f9e[_0x4752('0x15')]){var _0x3facf5=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi;while(_0x3facf5[_0x4752('0x16')](_0x2d2f9e['html'])){_0x2d2f9e[_0x4752('0x15')]=_0x2d2f9e[_0x4752('0x15')]['replace'](_0x3facf5,'');}if(_0x2d2f9e[_0x4752('0x15')][_0x4752('0x17')](_0x4752('0x18'))){var _0x27a93a=[];_0x2d2f9e[_0x4752('0x19')][_0x4752('0x1a')](_0x1135bf=>{_0x27a93a[_0x4752('0x1b')](_0x1135bf[_0x4752('0x1c')]);});var _0x2c259a=/<img.*? _SRC(.*?)[^>]+>/g;var _0x4a03f4=/src="data:image\/([a-zA-Z]*);base64,([^"]*)"/g;var _0x113cd5=_0x2d2f9e['html']['replace'](_0x4a03f4,'_SRC');var _0x1dcdcd=_0x113cd5[_0x4752('0x1d')](_0x2c259a,_0x4752('0x1e'));for(let _0x1cb8e7=0x0;_0x1cb8e7<_0x27a93a[_0x4752('0xe')];_0x1cb8e7++){var _0x3bf3bf=_0x1dcdcd[_0x4752('0x1d')](_0x4752('0x1e'),'<span\x20style=font-weight:bold>\x20[Attachment:\x20'+_0x27a93a[_0x1cb8e7]+'\x20]</span>');_0x1dcdcd=_0x3bf3bf;}_0x2d2f9e[_0x4752('0x15')]=_0x1dcdcd;}_0x477050[_0x4752('0x1f')]=_0x2d2f9e[_0x4752('0x15')];}else{_0x477050[_0x4752('0x1f')]=_0x2d2f9e[_0x4752('0x20')];}if(_0x477050[_0x4752('0x1f')]){_0x477050[_0x4752('0x1f')]=_0x477050[_0x4752('0x1f')][_0x4752('0x1d')](/<a\s+/gi,_0x4752('0x21'));}if(_0x2d2f9e['to']){_0x477050[_0x4752('0x22')][_0x4752('0x23')]=getMails(null,_0x2d2f9e['to']);var _0x2cc93f=getMails(_0x22215f[_0x4752('0x24')],_0x2d2f9e['to']);if(!_[_0x4752('0x13')](_0x2cc93f)){_0x477050[_0x4752('0x22')]['cc']+=_0x2cc93f;}}if(_0x2d2f9e['cc']){_0x477050['message']['originCc']=getMails(null,_0x2d2f9e['cc']);var _0x169be3=getMails(_0x22215f[_0x4752('0x24')],_0x2d2f9e['cc']);if(!_[_0x4752('0x13')](_0x169be3)){if(!_[_0x4752('0x13')](_0x477050[_0x4752('0x22')]['cc'])){_0x477050[_0x4752('0x22')]['cc']+=',';}_0x477050[_0x4752('0x22')]['cc']+=_0x169be3;}}if(!_[_0x4752('0x17')](_0x477050[_0x4752('0x22')][_0x4752('0x23')],_0x22215f['email'])&&!_[_0x4752('0x17')](_0x477050['message'][_0x4752('0x25')],_0x22215f[_0x4752('0x24')])){_0x477050[_0x4752('0x22')][_0x4752('0x26')]=_0x22215f[_0x4752('0x24')];}if(_0x2d2f9e['attachments']&&_0x2d2f9e[_0x4752('0x19')]['length']){_0x477050[_0x4752('0x22')][_0x4752('0x27')]=_0x2d2f9e[_0x4752('0x19')][_0x4752('0xe')];for(var _0xa96174=0x0,_0x659c70,_0x474304,_0x1b8819;_0xa96174<_0x2d2f9e[_0x4752('0x19')][_0x4752('0xe')];_0xa96174+=0x1){if(_0x2d2f9e['attachments'][_0xa96174][_0x4752('0x28')]===_0x4752('0x29')){_0x1b8819=_0x2d2f9e[_0x4752('0x19')][_0xa96174][_0x4752('0x1c')]||_0x4752('0x2a')+_0xa96174;_0x659c70=util[_0x4752('0x2b')](_0x4752('0x2c'),Date[_0x4752('0x2d')](),_0x1b8819);_0x474304=path['join'](config[_0x4752('0x2e')],'server/files/attachments/',_0x659c70);fs[_0x4752('0x2f')](_0x474304,_0x2d2f9e[_0x4752('0x19')][_0xa96174][_0x4752('0x30')]);_0x477050[_0x4752('0x22')]['attachments']['push']({'name':_0x1b8819,'basename':_0x659c70,'type':_0x2d2f9e['attachments'][_0xa96174]['contentType'],'filepath':_0x474304});}}}if(_0x2d2f9e[_0x4752('0x31')]&&_0x2d2f9e[_0x4752('0x31')]['length']>0x0){var _0x2614bc=[_0x4752('0x32'),_0x4752('0x33'),'Precedence:\x20auto_reply'];for(var _0xdde9a3=0x0;_0xdde9a3<_0x2d2f9e[_0x4752('0x31')][_0x4752('0xe')];_0xdde9a3++){var _0x476262=_[_0x4752('0xc')](_0x2614bc,_0x2d2f9e['headerLines'][_0xdde9a3]['line']);if(_0x476262>=0x0){_0x477050[_0x4752('0x34')]=!![];}}}return _0x477050;}exports[_0x4752('0x35')]=function(_0x828534,_0x222f82,_0x35cc01){var _0x1049f7={'from':getAddress(_0x222f82[_0x4752('0x36')]),'firstName':getFirstName(_0x222f82[_0x4752('0x36')]),'lastName':getLastName(_0x222f82[_0x4752('0x36')]),'mapKey':_0x4752('0x24'),'message':{'from':getMails(_0x828534[_0x4752('0x24')],_0x222f82[_0x4752('0x36')]),'to':_0x828534['email'],'cc':'','subject':_0x222f82[_0x4752('0x37')]||'','messageId':_0x222f82['messageId'],'inReplyTo':_0x222f82[_0x4752('0x38')],'sentAt':moment(_0x222f82[_0x4752('0x39')])['format'](_0x4752('0x3a')),'attach':![],'attachments':[]}};if(!_0x222f82[_0x4752('0x15')]&&!_0x222f82[_0x4752('0x20')]){var _0x38a74c=_[_0x4752('0x3b')](_0x222f82[_0x4752('0x19')],{'contentType':'application/ms-tnef'});if(_0x38a74c[_0x4752('0xe')]){logger[_0x4752('0x3c')](util[_0x4752('0x2b')](_0x4752('0x3d'),_0x222f82[_0x4752('0x3e')]));tnef[_0x4752('0x3f')](_['first'](_0x38a74c)[_0x4752('0x30')],function(_0x3b8ea4,_0xa03eff){if(_0xa03eff){_0x222f82[_0x4752('0x15')]=_0xa03eff[_0x4752('0x40')]||_0x4752('0x41');if(_0xa03eff['Attachments']){for(var _0x335912=0x0;_0x335912<_0xa03eff['Attachments']['length'];_0x335912++){var _0x965429=_0xa03eff[_0x4752('0x42')][_0x335912];_0x1049f7[_0x4752('0x22')]['attachments'][_0x4752('0x1b')]({'filename':_0x965429[_0x4752('0x43')],'content':Buffer['from'](_0x965429[_0x4752('0x44')])});}}}_0x35cc01(parseEmail(_0x828534,_0x222f82,_0x1049f7));});}else{_0x222f82[_0x4752('0x15')]=_0x4752('0x41');_0x35cc01(parseEmail(_0x828534,_0x222f82,_0x1049f7));}}else{_0x35cc01(parseEmail(_0x828534,_0x222f82,_0x1049f7));}};exports['getHost']=function(_0x2ba24b){switch(_0x2ba24b){case _0x4752('0x45'):return _0x4752('0x46');case _0x4752('0x47'):return _0x4752('0x48');case _0x4752('0x49'):return'imap-mail.outlook.com';case _0x4752('0x4a'):return'outlook.office365.com';}return _0x4752('0x4b');};
\ No newline at end of file
+var _0x404d=['getHost','gmail','imap.gmail.com','yahoo','hotmail','imap-mail.outlook.com','outlook365','outlook.office365.com','127.0.0.1','lodash','moment','randomstring','path','util','node-tnef','../../../config/logger','email','../../../config/environment','head','address','@xcally.com','value','name','indexOf','split','length','slice','join','Anonymous','pop','isEmpty','anonymous','generate','html','replace','includes','<img','attachments','forEach','_SRC','<span\x20style=font-weight:bold>\x20[Attachment:\x20','\x20]</span>','body','textAsHtml','message','originTo','originCc','attach','type','attachment','attachment-','format','now','root','server/files/attachments/','writeFileSync','content','push','contentType','headerLines','Auto-Submitted:\x20auto-replied','line','isAutoreply','parser','from','subject','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','messageId','parseBuffer','BodyHTML','Attachments','Title','Data','<p>Empty\x20message</p>'];(function(_0xad2972,_0x362cf7){var _0xd72857=function(_0xbfeb2e){while(--_0xbfeb2e){_0xad2972['push'](_0xad2972['shift']());}};_0xd72857(++_0x362cf7);}(_0x404d,0x1e9));var _0xd404=function(_0x3939eb,_0x34f29e){_0x3939eb=_0x3939eb-0x0;var _0x416b34=_0x404d[_0x3939eb];return _0x416b34;};'use strict';var _=require(_0xd404('0x0'));var moment=require(_0xd404('0x1'));var random=require(_0xd404('0x2'));var fs=require('fs');var path=require(_0xd404('0x3'));var util=require(_0xd404('0x4'));var tnef=require(_0xd404('0x5'));var logger=require(_0xd404('0x6'))(_0xd404('0x7'));var config=require(_0xd404('0x8'));function getAddress(_0x4b084c){var _0x10153c=_[_0xd404('0x9')](_0x4b084c['value']);return _0x10153c&&_0x10153c[_0xd404('0xa')]?_0x10153c[_0xd404('0xa')]:'anonymous'+random['generate'](0x6)+_0xd404('0xb');}function getFirstName(_0x3d7e8a){var _0x506b18=_['head'](_0x3d7e8a[_0xd404('0xc')]);if(_0x506b18&&_0x506b18[_0xd404('0xd')]){if(_0x506b18[_0xd404('0xd')]==_0x506b18[_0xd404('0xa')]){return _0x506b18['name']['substring'](0x0,_0x506b18[_0xd404('0xd')][_0xd404('0xe')]('@'));}var _0x569542=_0x506b18[_0xd404('0xd')][_0xd404('0xf')](/\s+/);return _0x569542[_0xd404('0x10')]>0x1?_0x569542[_0xd404('0x11')](0x0,-0x1)[_0xd404('0x12')]('\x20'):_0x506b18[_0xd404('0xd')];}return _0xd404('0x13');}function getLastName(_0x32f760){var _0x1b0dcd=_[_0xd404('0x9')](_0x32f760[_0xd404('0xc')]);if(_0x1b0dcd&&_0x1b0dcd[_0xd404('0xd')]){var _0x28d1e9=_0x1b0dcd[_0xd404('0xd')][_0xd404('0xf')](/\s+/);return _0x28d1e9[_0xd404('0x10')]>0x1?_0x28d1e9[_0xd404('0x14')]():'';}return'';}function getMails(_0xa4d1b2,_0xc5fe91){var _0x122813='';for(var _0x155186=0x0;_0x155186<_0xc5fe91['value'][_0xd404('0x10')];_0x155186+=0x1){if(_0xc5fe91[_0xd404('0xc')][_0x155186]['address']!==_0xa4d1b2){if(!_[_0xd404('0x15')](_0x122813)){_0x122813+=',';}_0x122813+=_0xc5fe91[_0xd404('0xc')][_0x155186]['name']||_0xc5fe91[_0xd404('0xc')][_0x155186][_0xd404('0xa')]||'';_0x122813+='\x20<';_0x122813+=_0xc5fe91[_0xd404('0xc')][_0x155186]['address']?_0xc5fe91[_0xd404('0xc')][_0x155186][_0xd404('0xa')]:_0xd404('0x16')+random[_0xd404('0x17')](0x6)+_0xd404('0xb');_0x122813+='>';}}return _0x122813;}function parseEmail(_0x3b67d4,_0x458f6e,_0x5c0264){if(_0x458f6e[_0xd404('0x18')]){var _0xcc7bf1=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi;while(_0xcc7bf1['test'](_0x458f6e[_0xd404('0x18')])){_0x458f6e['html']=_0x458f6e['html'][_0xd404('0x19')](_0xcc7bf1,'');}if(_0x458f6e[_0xd404('0x18')][_0xd404('0x1a')](_0xd404('0x1b'))){var _0x4c00de=[];_0x458f6e[_0xd404('0x1c')][_0xd404('0x1d')](_0x13af69=>{_0x4c00de['push'](_0x13af69['filename']);});var _0x3e706a=/<img.*? _SRC(.*?)[^>]+>/g;var _0xaccaa8=/src="data:image\/([a-zA-Z]*);base64,([^"]*)"/g;var _0x2d7af8=_0x458f6e[_0xd404('0x18')][_0xd404('0x19')](_0xaccaa8,_0xd404('0x1e'));var _0x256277=_0x2d7af8[_0xd404('0x19')](_0x3e706a,'_IMG');for(let _0x47d0b4=0x0;_0x47d0b4<_0x4c00de[_0xd404('0x10')];_0x47d0b4++){var _0x4a7dfc=_0x256277[_0xd404('0x19')]('_IMG',_0xd404('0x1f')+_0x4c00de[_0x47d0b4]+_0xd404('0x20'));_0x256277=_0x4a7dfc;}_0x458f6e[_0xd404('0x18')]=_0x256277;}_0x5c0264[_0xd404('0x21')]=_0x458f6e[_0xd404('0x18')];}else{_0x5c0264[_0xd404('0x21')]=_0x458f6e[_0xd404('0x22')];}if(_0x5c0264['body']){_0x5c0264['body']=_0x5c0264[_0xd404('0x21')]['replace'](/<a\s+/gi,'<a\x20target=\x22_blank\x22\x20');}if(_0x458f6e['to']){_0x5c0264[_0xd404('0x23')][_0xd404('0x24')]=getMails(null,_0x458f6e['to']);var _0x311a5a=getMails(_0x3b67d4['email'],_0x458f6e['to']);if(!_[_0xd404('0x15')](_0x311a5a)){_0x5c0264['message']['cc']+=_0x311a5a;}}if(_0x458f6e['cc']){_0x5c0264[_0xd404('0x23')][_0xd404('0x25')]=getMails(null,_0x458f6e['cc']);var _0x52a23b=getMails(_0x3b67d4[_0xd404('0x7')],_0x458f6e['cc']);if(!_[_0xd404('0x15')](_0x52a23b)){if(!_[_0xd404('0x15')](_0x5c0264[_0xd404('0x23')]['cc'])){_0x5c0264[_0xd404('0x23')]['cc']+=',';}_0x5c0264['message']['cc']+=_0x52a23b;}}if(!_[_0xd404('0x1a')](_0x5c0264[_0xd404('0x23')][_0xd404('0x24')],_0x3b67d4['email'])&&!_[_0xd404('0x1a')](_0x5c0264[_0xd404('0x23')][_0xd404('0x25')],_0x3b67d4[_0xd404('0x7')])){_0x5c0264['message']['bcc']=_0x3b67d4[_0xd404('0x7')];}if(_0x458f6e[_0xd404('0x1c')]&&_0x458f6e[_0xd404('0x1c')][_0xd404('0x10')]){_0x5c0264[_0xd404('0x23')][_0xd404('0x26')]=_0x458f6e['attachments'][_0xd404('0x10')];for(var _0xd143f3=0x0,_0x1f5675,_0x560a4f,_0xc0a080;_0xd143f3<_0x458f6e[_0xd404('0x1c')][_0xd404('0x10')];_0xd143f3+=0x1){if(_0x458f6e['attachments'][_0xd143f3][_0xd404('0x27')]===_0xd404('0x28')){_0xc0a080=_0x458f6e[_0xd404('0x1c')][_0xd143f3]['filename']||_0xd404('0x29')+_0xd143f3;_0x1f5675=util[_0xd404('0x2a')]('%s-%s',Date[_0xd404('0x2b')](),_0xc0a080);_0x560a4f=path[_0xd404('0x12')](config[_0xd404('0x2c')],_0xd404('0x2d'),_0x1f5675);fs[_0xd404('0x2e')](_0x560a4f,_0x458f6e[_0xd404('0x1c')][_0xd143f3][_0xd404('0x2f')]);_0x5c0264[_0xd404('0x23')]['attachments'][_0xd404('0x30')]({'name':_0xc0a080,'basename':_0x1f5675,'type':_0x458f6e['attachments'][_0xd143f3][_0xd404('0x31')],'filepath':_0x560a4f});}}}if(_0x458f6e[_0xd404('0x32')]&&_0x458f6e['headerLines'][_0xd404('0x10')]>0x0){var _0x539f0f=[_0xd404('0x33'),'X-Auto-Response-Suppress:\x20All','Precedence:\x20auto_reply'];for(var _0x35494f=0x0;_0x35494f<_0x458f6e[_0xd404('0x32')][_0xd404('0x10')];_0x35494f++){var _0x392afa=_['indexOf'](_0x539f0f,_0x458f6e['headerLines'][_0x35494f][_0xd404('0x34')]);if(_0x392afa>=0x0){_0x5c0264[_0xd404('0x35')]=!![];}}}return _0x5c0264;}exports[_0xd404('0x36')]=function(_0x108cc3,_0x199d66,_0x2c7fcc){var _0x1c0d91={'from':getAddress(_0x199d66['from']),'firstName':getFirstName(_0x199d66[_0xd404('0x37')]),'lastName':getLastName(_0x199d66['from']),'mapKey':_0xd404('0x7'),'message':{'from':getMails(_0x108cc3['email'],_0x199d66[_0xd404('0x37')]),'to':_0x108cc3[_0xd404('0x7')],'cc':'','subject':_0x199d66[_0xd404('0x38')]||'','messageId':_0x199d66['messageId'],'inReplyTo':_0x199d66[_0xd404('0x39')],'sentAt':moment(_0x199d66[_0xd404('0x3a')])[_0xd404('0x2a')](_0xd404('0x3b')),'attach':![],'attachments':[]}};if(!_0x199d66['html']&&!_0x199d66[_0xd404('0x22')]){var _0x1ecdda=_[_0xd404('0x3c')](_0x199d66[_0xd404('0x1c')],{'contentType':_0xd404('0x3d')});if(_0x1ecdda[_0xd404('0x10')]){logger[_0xd404('0x3e')](util[_0xd404('0x2a')](_0xd404('0x3f'),_0x199d66[_0xd404('0x40')]));tnef[_0xd404('0x41')](_['first'](_0x1ecdda)[_0xd404('0x2f')],function(_0x202bd6,_0x3c7213){if(_0x3c7213){_0x199d66[_0xd404('0x18')]=_0x3c7213[_0xd404('0x42')]||'<p>Empty\x20message</p>';if(_0x3c7213[_0xd404('0x43')]){for(var _0x30cc1c=0x0;_0x30cc1c<_0x3c7213['Attachments'][_0xd404('0x10')];_0x30cc1c++){var _0xb8bda4=_0x3c7213[_0xd404('0x43')][_0x30cc1c];_0x1c0d91[_0xd404('0x23')][_0xd404('0x1c')][_0xd404('0x30')]({'filename':_0xb8bda4[_0xd404('0x44')],'content':Buffer[_0xd404('0x37')](_0xb8bda4[_0xd404('0x45')])});}}}_0x2c7fcc(parseEmail(_0x108cc3,_0x199d66,_0x1c0d91));});}else{_0x199d66['html']=_0xd404('0x46');_0x2c7fcc(parseEmail(_0x108cc3,_0x199d66,_0x1c0d91));}}else{_0x2c7fcc(parseEmail(_0x108cc3,_0x199d66,_0x1c0d91));}};exports[_0xd404('0x47')]=function(_0x5c7c68){switch(_0x5c7c68){case _0xd404('0x48'):return _0xd404('0x49');case _0xd404('0x4a'):return'imap.mail.yahoo.com';case _0xd404('0x4b'):return _0xd404('0x4c');case _0xd404('0x4d'):return _0xd404('0x4e');}return _0xd404('0x4f');};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8e46=['Service','key','SERV','active','Smtp','exports','name'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x8e46,0x141));var _0x68e4=function(_0x158ab3,_0x4b5908){_0x158ab3=_0x158ab3-0x0;var _0x302830=_0x8e46[_0x158ab3];return _0x302830;};'use strict';var _=require('lodash');function MailAccount(_0x461cff){this['id']=_0x461cff['id']||0x0;this[_0x68e4('0x0')]=_0x461cff[_0x68e4('0x0')]||_0x68e4('0x1');this['key']=_0x461cff[_0x68e4('0x2')]||_0x68e4('0x3');this['active']=_0x461cff[_0x68e4('0x4')]||![];this['Imap']=_0x461cff['Imap']||[];this[_0x68e4('0x5')]=_0x461cff[_0x68e4('0x5')]||[];}module[_0x68e4('0x6')]=MailAccount;
\ No newline at end of file
+var _0xa4a0=['active','Imap','Smtp','exports','lodash','name','Service','key','SERV'];(function(_0x21b359,_0x4dc80e){var _0x57b8e7=function(_0x135adb){while(--_0x135adb){_0x21b359['push'](_0x21b359['shift']());}};_0x57b8e7(++_0x4dc80e);}(_0xa4a0,0x9d));var _0x0a4a=function(_0x2dabb2,_0x59afdf){_0x2dabb2=_0x2dabb2-0x0;var _0x65ac58=_0xa4a0[_0x2dabb2];return _0x65ac58;};'use strict';var _=require(_0x0a4a('0x0'));function MailAccount(_0x15ce38){this['id']=_0x15ce38['id']||0x0;this[_0x0a4a('0x1')]=_0x15ce38['name']||_0x0a4a('0x2');this[_0x0a4a('0x3')]=_0x15ce38['key']||_0x0a4a('0x4');this[_0x0a4a('0x5')]=_0x15ce38[_0x0a4a('0x5')]||![];this[_0x0a4a('0x6')]=_0x15ce38[_0x0a4a('0x6')]||[];this[_0x0a4a('0x7')]=_0x15ce38['Smtp']||[];}module[_0x0a4a('0x8')]=MailAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xea49=['exports','lodash','../model/mailAccount','mapKeys','hasOwnProperty','prototype','mergeFromDatabase','mailAccounts','isUndefined'];(function(_0x471bab,_0xceda9f){var _0x2c14c1=function(_0x2e0b28){while(--_0x2e0b28){_0x471bab['push'](_0x471bab['shift']());}};_0x2c14c1(++_0xceda9f);}(_0xea49,0x169));var _0x9ea4=function(_0x5d98cd,_0x4c4477){_0x5d98cd=_0x5d98cd-0x0;var _0x3d88c2=_0xea49[_0x5d98cd];return _0x3d88c2;};'use strict';var _=require(_0x9ea4('0x0'));var MailAccount=require(_0x9ea4('0x1'));var Realtime=function(){this['mailAccounts']={};};function freeIsNotKey(_0x5bd548,_0x3f0641,_0x5b1a15){var _0x5c9efc=_[_0x9ea4('0x2')](_0x5bd548,function(_0x38aaa4,_0x14c9b5){return _0x38aaa4[_0x5b1a15];});for(var _0x9de90a in _0x3f0641){if(_0x3f0641[_0x9ea4('0x3')](_0x9de90a)){if(!_0x5c9efc[_0x9de90a]){delete _0x3f0641[_0x9de90a];}}}}Realtime[_0x9ea4('0x4')][_0x9ea4('0x5')]=function(_0x44f348,_0x145305){for(var _0x591c85 in _0x145305){if(_0x44f348[_0x9ea4('0x3')](_0x591c85)){_0x44f348[_0x591c85]=_0x145305[_0x591c85];}}};Realtime['prototype']['initMailAccounts']=function(){var _0x171b45=this;return function(_0xe44610){if(_0xe44610){freeIsNotKey(_0xe44610,_0x171b45[_0x9ea4('0x6')],'id');for(var _0x189824=0x0,_0x4bb7e0={},_0x2e18de={};_0x189824<_0xe44610['length'];_0x189824+=0x1){_0x4bb7e0=_0xe44610[_0x189824];if(_[_0x9ea4('0x7')](_0x171b45['mailAccounts'][_0x4bb7e0['id']])){_0x171b45[_0x9ea4('0x6')][_0x4bb7e0['id']]=new MailAccount(_0x4bb7e0);}else{_['merge'](_0x171b45[_0x9ea4('0x6')][_0x4bb7e0['id']],_0x4bb7e0);}}}return _0x171b45[_0x9ea4('0x6')];};};module[_0x9ea4('0x8')]=Realtime;
\ No newline at end of file
+var _0xdd0f=['prototype','mergeFromDatabase','hasOwnProperty','initMailAccounts','merge','exports','lodash','mailAccounts'];(function(_0xcfc44,_0x179bc1){var _0x307a25=function(_0x2b64de){while(--_0x2b64de){_0xcfc44['push'](_0xcfc44['shift']());}};_0x307a25(++_0x179bc1);}(_0xdd0f,0x196));var _0xfdd0=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0xdd0f[_0x14add3];return _0x4a174f;};'use strict';var _=require(_0xfdd0('0x0'));var MailAccount=require('../model/mailAccount');var Realtime=function(){this[_0xfdd0('0x1')]={};};function freeIsNotKey(_0x4556e4,_0x3a8d95,_0x5615c5){var _0x19d830=_['mapKeys'](_0x4556e4,function(_0x1fbcc3,_0x2c93f5){return _0x1fbcc3[_0x5615c5];});for(var _0xd346d0 in _0x3a8d95){if(_0x3a8d95['hasOwnProperty'](_0xd346d0)){if(!_0x19d830[_0xd346d0]){delete _0x3a8d95[_0xd346d0];}}}}Realtime[_0xfdd0('0x2')][_0xfdd0('0x3')]=function(_0x1787e2,_0x32f0fd){for(var _0x1b558b in _0x32f0fd){if(_0x1787e2[_0xfdd0('0x4')](_0x1b558b)){_0x1787e2[_0x1b558b]=_0x32f0fd[_0x1b558b];}}};Realtime[_0xfdd0('0x2')][_0xfdd0('0x5')]=function(){var _0x44d505=this;return function(_0x58f91c){if(_0x58f91c){freeIsNotKey(_0x58f91c,_0x44d505[_0xfdd0('0x1')],'id');for(var _0x55ec6b=0x0,_0xd5efb4={},_0x40b212={};_0x55ec6b<_0x58f91c['length'];_0x55ec6b+=0x1){_0xd5efb4=_0x58f91c[_0x55ec6b];if(_['isUndefined'](_0x44d505[_0xfdd0('0x1')][_0xd5efb4['id']])){_0x44d505[_0xfdd0('0x1')][_0xd5efb4['id']]=new MailAccount(_0xd5efb4);}else{_[_0xfdd0('0x6')](_0x44d505[_0xfdd0('0x1')][_0xd5efb4['id']],_0xd5efb4);}}}return _0x44d505['mailAccounts'];};};module[_0xfdd0('0x7')]=Realtime;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7ad3=['../client','getMailAccounts','Request','GetMailAccount','service','key','Imap','MailServerOut','Smtp','getMailAccount','notify','NotifyMailAccount'];(function(_0x1f38e3,_0x3ea24e){var _0x2440a4=function(_0x1d4b35){while(--_0x1d4b35){_0x1f38e3['push'](_0x1f38e3['shift']());}};_0x2440a4(++_0x3ea24e);}(_0x7ad3,0x108));var _0x37ad=function(_0x47aa64,_0xfb8a07){_0x47aa64=_0x47aa64-0x0;var _0x549c7a=_0x7ad3[_0x47aa64];return _0x549c7a;};'use strict';var client=require(_0x37ad('0x0'));exports[_0x37ad('0x1')]=function(){return function(){return client[_0x37ad('0x2')](_0x37ad('0x3'),{'options':{'attributes':['id','name',_0x37ad('0x4'),'email','active',_0x37ad('0x5'),'ListId','TemplateId'],'raw':![],'include':[{'model':'MailServerIn','as':_0x37ad('0x6')},{'model':_0x37ad('0x7'),'as':_0x37ad('0x8')}]},'log':_0x37ad('0x9')});};};exports[_0x37ad('0xa')]=function(_0x2b361a,_0x3cb080){return client[_0x37ad('0x2')](_0x37ad('0xb'),{'account':{'id':_0x2b361a},'body':_0x3cb080,'log':'NotifyMailAccount'});};
\ No newline at end of file
+var _0x896e=['name','service','email','active','key','ListId','TemplateId','MailServerIn','MailServerOut','Smtp','getMailAccount','notify','NotifyMailAccount','../client','getMailAccounts','Request','GetMailAccount'];(function(_0x1e1965,_0x55785c){var _0x1a2e96=function(_0x27d366){while(--_0x27d366){_0x1e1965['push'](_0x1e1965['shift']());}};_0x1a2e96(++_0x55785c);}(_0x896e,0x1e9));var _0xe896=function(_0x2c3606,_0x3d61db){_0x2c3606=_0x2c3606-0x0;var _0x1f81e9=_0x896e[_0x2c3606];return _0x1f81e9;};'use strict';var client=require(_0xe896('0x0'));exports[_0xe896('0x1')]=function(){return function(){return client[_0xe896('0x2')](_0xe896('0x3'),{'options':{'attributes':['id',_0xe896('0x4'),_0xe896('0x5'),_0xe896('0x6'),_0xe896('0x7'),_0xe896('0x8'),_0xe896('0x9'),_0xe896('0xa')],'raw':![],'include':[{'model':_0xe896('0xb'),'as':'Imap'},{'model':_0xe896('0xc'),'as':_0xe896('0xd')}]},'log':_0xe896('0xe')});};};exports[_0xe896('0xf')]=function(_0x43c619,_0x5a1909){return client[_0xe896('0x2')](_0xe896('0x10'),{'account':{'id':_0x43c619},'body':_0x5a1909,'log':_0xe896('0x10')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfc74=['../client','getSettings','Request','ShowSetting','loginMailFrequency','GetSettings'];(function(_0x1b63f4,_0x122779){var _0xf58ab9=function(_0x1b6e1a){while(--_0x1b6e1a){_0x1b63f4['push'](_0x1b63f4['shift']());}};_0xf58ab9(++_0x122779);}(_0xfc74,0x78));var _0x4fc7=function(_0xcaef99,_0x6659bd){_0xcaef99=_0xcaef99-0x0;var _0x54722e=_0xfc74[_0xcaef99];return _0x54722e;};'use strict';var client=require(_0x4fc7('0x0'));exports[_0x4fc7('0x1')]=function(){return client[_0x4fc7('0x2')](_0x4fc7('0x3'),{'options':{'raw':!![],'where':{'id':0x1},'attributes':[_0x4fc7('0x4')]},'log':_0x4fc7('0x5')});};
\ No newline at end of file
+var _0x2596=['../client','ShowSetting','loginMailFrequency'];(function(_0x4e9df2,_0x36818e){var _0x9fe790=function(_0x126eb5){while(--_0x126eb5){_0x4e9df2['push'](_0x4e9df2['shift']());}};_0x9fe790(++_0x36818e);}(_0x2596,0x1ce));var _0x6259=function(_0x391875,_0x4a6520){_0x391875=_0x391875-0x0;var _0x19c0d6=_0x2596[_0x391875];return _0x19c0d6;};'use strict';var client=require(_0x6259('0x0'));exports['getSettings']=function(){return client['Request'](_0x6259('0x1'),{'options':{'raw':!![],'where':{'id':0x1},'attributes':[_0x6259('0x2')]},'log':'GetSettings'});};
\ 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(_0x4565bf,_0x5ad9d6){var _0x5610ba=function(_0x170988){while(--_0x170988){_0x4565bf['push'](_0x4565bf['shift']());}};_0x5610ba(++_0x5ad9d6);}(_0xa9e0,0x123));var _0x0a9e=function(_0x2dafbe,_0x5d04de){_0x2dafbe=_0x2dafbe-0x0;var _0x58a45a=_0xa9e0[_0x2dafbe];return _0x58a45a;};'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(_0x57b54c,_0x54ce0d){var _0x59cc19=function(_0xa33bc6){while(--_0xa33bc6){_0x57b54c['push'](_0x57b54c['shift']());}};_0x59cc19(++_0x54ce0d);}(_0xa9e0,0x123));var _0x0a9e=function(_0x481bf7,_0x437f69){_0x481bf7=_0x481bf7-0x0;var _0x461787=_0xa9e0[_0x481bf7];return _0x461787;};'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 _0xae67=['adapter','socket.io-redis','../../config/triggers','default','../../config/express','once','listening','log','Express\x20server\x20listening\x20on\x20port\x20%d!','exports','lodash','http','express','sticky-session','ioredis','createServer','timeout','listen','port','websocket','polling','redis'];(function(_0xabaa85,_0x5e8950){var _0x47b0ba=function(_0x3560a9){while(--_0x3560a9){_0xabaa85['push'](_0xabaa85['shift']());}};_0x47b0ba(++_0x5e8950);}(_0xae67,0x1ac));var _0x7ae6=function(_0x16c98a,_0x53c758){_0x16c98a=_0x16c98a-0x0;var _0x592ae6=_0xae67[_0x16c98a];return _0x592ae6;};'use strict';var _=require(_0x7ae6('0x0'));var http=require(_0x7ae6('0x1'));var express=require(_0x7ae6('0x2'));var sticky=require(_0x7ae6('0x3'));var Redis=require(_0x7ae6('0x4'));var config=require('../../config/environment');var app=express();var server=http[_0x7ae6('0x5')](app);server[_0x7ae6('0x6')]=0xdbba0;if(sticky[_0x7ae6('0x7')](server,config[_0x7ae6('0x8')])){var socketio=require('socket.io')(server,{'transports':[_0x7ae6('0x9'),_0x7ae6('0xa')]});config[_0x7ae6('0xb')]=_['defaults'](config[_0x7ae6('0xb')],{'host':'localhost','port':0x18eb});socketio[_0x7ae6('0xc')](require(_0x7ae6('0xd'))({'pubClient':new Redis(config[_0x7ae6('0xb')]),'subClient':new Redis(config['redis'])}));require(_0x7ae6('0xe'))[_0x7ae6('0xf')]();require('../../config/socketio')[_0x7ae6('0xf')](socketio);require(_0x7ae6('0x10'))[_0x7ae6('0xf')](app);require('../../routes')[_0x7ae6('0xf')](app);}else{server[_0x7ae6('0x11')](_0x7ae6('0x12'),function(){console[_0x7ae6('0x13')](_0x7ae6('0x14'),config[_0x7ae6('0x8')]);});}exports=module[_0x7ae6('0x15')]=app;
\ No newline at end of file
+var _0xf057=['websocket','polling','redis','localhost','socket.io-redis','../../config/triggers','default','../../config/socketio','../../config/express','once','listening','log','Express\x20server\x20listening\x20on\x20port\x20%d!','exports','lodash','http','express','ioredis','../../config/environment','timeout','listen','port','socket.io'];(function(_0x5d785d,_0x12b36d){var _0x35fc45=function(_0x569606){while(--_0x569606){_0x5d785d['push'](_0x5d785d['shift']());}};_0x35fc45(++_0x12b36d);}(_0xf057,0xf4));var _0x7f05=function(_0xcd2531,_0x19f73e){_0xcd2531=_0xcd2531-0x0;var _0x4b47a2=_0xf057[_0xcd2531];return _0x4b47a2;};'use strict';var _=require(_0x7f05('0x0'));var http=require(_0x7f05('0x1'));var express=require(_0x7f05('0x2'));var sticky=require('sticky-session');var Redis=require(_0x7f05('0x3'));var config=require(_0x7f05('0x4'));var app=express();var server=http['createServer'](app);server[_0x7f05('0x5')]=0xdbba0;if(sticky[_0x7f05('0x6')](server,config[_0x7f05('0x7')])){var socketio=require(_0x7f05('0x8'))(server,{'transports':[_0x7f05('0x9'),_0x7f05('0xa')]});config[_0x7f05('0xb')]=_['defaults'](config[_0x7f05('0xb')],{'host':_0x7f05('0xc'),'port':0x18eb});socketio['adapter'](require(_0x7f05('0xd'))({'pubClient':new Redis(config[_0x7f05('0xb')]),'subClient':new Redis(config[_0x7f05('0xb')])}));require(_0x7f05('0xe'))[_0x7f05('0xf')]();require(_0x7f05('0x10'))[_0x7f05('0xf')](socketio);require(_0x7f05('0x11'))[_0x7f05('0xf')](app);require('../../routes')[_0x7f05('0xf')](app);}else{server[_0x7f05('0x12')](_0x7f05('0x13'),function(){console[_0x7f05('0x14')](_0x7f05('0x15'),config[_0x7f05('0x7')]);});}exports=module[_0x7f05('0x16')]=app;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7097=['result','catch','rpc','exports','jayson/promise','../../config/logger','client','request','then','debug','routing','error','message'];(function(_0x476055,_0x21b82e){var _0x22a03d=function(_0xdc2c7d){while(--_0xdc2c7d){_0x476055['push'](_0x476055['shift']());}};_0x22a03d(++_0x21b82e);}(_0x7097,0x79));var _0x7709=function(_0x52d7b4,_0x3def0d){_0x52d7b4=_0x52d7b4-0x0;var _0xd74329=_0x7097[_0x52d7b4];return _0xd74329;};'use strict';var jayson=require(_0x7709('0x0'));var BPromise=require('bluebird');var logger=require(_0x7709('0x1'))('routing');var client=jayson[_0x7709('0x2')]['http']({'port':0x2329});client['Request']=function(_0x592c5e,_0x5c8833){return new BPromise(function(_0x1c0e46,_0x38e010){return client[_0x7709('0x3')](_0x592c5e,_0x5c8833)[_0x7709('0x4')](function(_0x227974){logger[_0x7709('0x5')]('rpc',_0x7709('0x6'),_0x592c5e,_0x5c8833,_0x227974);if(_0x227974[_0x7709('0x7')]){logger[_0x7709('0x7')]('rpc',_0x7709('0x6'),_0x592c5e,_0x227974[_0x7709('0x7')][_0x7709('0x8')],_0x5c8833);return _0x38e010(_0x227974[_0x7709('0x7')]['message']);}else{return _0x1c0e46(_0x227974[_0x7709('0x9')]);}})[_0x7709('0xa')](function(_0x445ef8){logger[_0x7709('0x7')](_0x7709('0xb'),'routing',_0x592c5e,_0x445ef8,_0x5c8833);return _0x38e010(_0x445ef8);});});};module[_0x7709('0xc')]=client;
\ No newline at end of file
+var _0xa1c8=['error','message','result','exports','jayson/promise','../../config/logger','routing','client','http','request','then','debug','rpc'];(function(_0x15a99d,_0x4486ea){var _0x2cb908=function(_0x1243c1){while(--_0x1243c1){_0x15a99d['push'](_0x15a99d['shift']());}};_0x2cb908(++_0x4486ea);}(_0xa1c8,0x170));var _0x8a1c=function(_0x17b6e3,_0x4522ed){_0x17b6e3=_0x17b6e3-0x0;var _0x3906f3=_0xa1c8[_0x17b6e3];return _0x3906f3;};'use strict';var jayson=require(_0x8a1c('0x0'));var BPromise=require('bluebird');var logger=require(_0x8a1c('0x1'))(_0x8a1c('0x2'));var client=jayson[_0x8a1c('0x3')][_0x8a1c('0x4')]({'port':0x2329});client['Request']=function(_0x61f6b8,_0x1ae90a){return new BPromise(function(_0x33ff6c,_0x3abe47){return client[_0x8a1c('0x5')](_0x61f6b8,_0x1ae90a)[_0x8a1c('0x6')](function(_0x29a157){logger[_0x8a1c('0x7')](_0x8a1c('0x8'),_0x8a1c('0x2'),_0x61f6b8,_0x1ae90a,_0x29a157);if(_0x29a157[_0x8a1c('0x9')]){logger[_0x8a1c('0x9')](_0x8a1c('0x8'),_0x8a1c('0x2'),_0x61f6b8,_0x29a157[_0x8a1c('0x9')][_0x8a1c('0xa')],_0x1ae90a);return _0x3abe47(_0x29a157[_0x8a1c('0x9')][_0x8a1c('0xa')]);}else{return _0x33ff6c(_0x29a157[_0x8a1c('0xb')]);}})['catch'](function(_0x20acab){logger[_0x8a1c('0x9')](_0x8a1c('0x8'),_0x8a1c('0x2'),_0x61f6b8,_0x20acab,_0x1ae90a);return _0x3abe47(_0x20acab);});});};module[_0x8a1c('0xc')]=client;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd77c=['./rpc/interval','./rpc/chatQueue','./rpc/smsQueue','./rpc/mailQueue','./rpc/faxQueue','resolve','then','getAgents','initAgents','getIntervals','initIntervals','getOpenchannelQueues','initOpenchannelQueues','initChatQueues','getSmsQueues','initSmsQueues','getMailQueues','getFaxQueues','getWhatsappQueues','initWhatsappQueues','log','bluebird','./server','./realtime','./rpc/user'];(function(_0x4a2a4d,_0x51fe23){var _0x377aae=function(_0xc00dbe){while(--_0xc00dbe){_0x4a2a4d['push'](_0x4a2a4d['shift']());}};_0x377aae(++_0x51fe23);}(_0xd77c,0x1a5));var _0xcd77=function(_0x1b14d9,_0x2a58b5){_0x1b14d9=_0x1b14d9-0x0;var _0x2842e0=_0xd77c[_0x1b14d9];return _0x2842e0;};'use strict';var BPromise=require(_0xcd77('0x0'));var server=require(_0xcd77('0x1'));var Realtime=require(_0xcd77('0x2'));var user=require(_0xcd77('0x3'));var interval=require(_0xcd77('0x4'));var openchannelQueue=require('./rpc/openchannelQueue');var chatQueue=require(_0xcd77('0x5'));var smsQueue=require(_0xcd77('0x6'));var mailQueue=require(_0xcd77('0x7'));var faxQueue=require(_0xcd77('0x8'));var whatsappQueue=require('./rpc/whatsappQueue');var realtime=new Realtime();function initRealtime(){return BPromise[_0xcd77('0x9')]()[_0xcd77('0xa')](user[_0xcd77('0xb')]())[_0xcd77('0xa')](realtime[_0xcd77('0xc')]())['then'](interval[_0xcd77('0xd')]())['then'](realtime[_0xcd77('0xe')]())[_0xcd77('0xa')](openchannelQueue[_0xcd77('0xf')]())['then'](realtime[_0xcd77('0x10')]())[_0xcd77('0xa')](chatQueue['getChatQueues']())[_0xcd77('0xa')](realtime[_0xcd77('0x11')]())[_0xcd77('0xa')](smsQueue[_0xcd77('0x12')]())[_0xcd77('0xa')](realtime[_0xcd77('0x13')]())['then'](mailQueue[_0xcd77('0x14')]())[_0xcd77('0xa')](realtime['initMailQueues']())[_0xcd77('0xa')](faxQueue[_0xcd77('0x15')]())[_0xcd77('0xa')](realtime['initFaxQueues']())[_0xcd77('0xa')](whatsappQueue[_0xcd77('0x16')]())[_0xcd77('0xa')](realtime[_0xcd77('0x17')]())['then'](function(){return realtime;});}function main(){return server['listen'](realtime)['then'](function(_0x183849){return initRealtime();})[_0xcd77('0xa')](function(_0x4b8ced){return setInterval(initRealtime,0x1388);})['catch'](function(_0x2c5194){console[_0xcd77('0x18')](_0x2c5194);});}main();
\ No newline at end of file
+var _0xd706=['initAgents','initIntervals','initOpenchannelQueues','getChatQueues','initChatQueues','getSmsQueues','initSmsQueues','getMailQueues','initMailQueues','getFaxQueues','initFaxQueues','initWhatsappQueues','listen','catch','log','./realtime','./rpc/openchannelQueue','./rpc/mailQueue','./rpc/faxQueue','resolve','then','getAgents'];(function(_0x465028,_0x4570ac){var _0xb783d4=function(_0x5458c5){while(--_0x5458c5){_0x465028['push'](_0x465028['shift']());}};_0xb783d4(++_0x4570ac);}(_0xd706,0x19b));var _0x6d70=function(_0x5abdfe,_0x1f316c){_0x5abdfe=_0x5abdfe-0x0;var _0x28ece2=_0xd706[_0x5abdfe];return _0x28ece2;};'use strict';var BPromise=require('bluebird');var server=require('./server');var Realtime=require(_0x6d70('0x0'));var user=require('./rpc/user');var interval=require('./rpc/interval');var openchannelQueue=require(_0x6d70('0x1'));var chatQueue=require('./rpc/chatQueue');var smsQueue=require('./rpc/smsQueue');var mailQueue=require(_0x6d70('0x2'));var faxQueue=require(_0x6d70('0x3'));var whatsappQueue=require('./rpc/whatsappQueue');var realtime=new Realtime();function initRealtime(){return BPromise[_0x6d70('0x4')]()[_0x6d70('0x5')](user[_0x6d70('0x6')]())[_0x6d70('0x5')](realtime[_0x6d70('0x7')]())['then'](interval['getIntervals']())[_0x6d70('0x5')](realtime[_0x6d70('0x8')]())[_0x6d70('0x5')](openchannelQueue['getOpenchannelQueues']())[_0x6d70('0x5')](realtime[_0x6d70('0x9')]())[_0x6d70('0x5')](chatQueue[_0x6d70('0xa')]())[_0x6d70('0x5')](realtime[_0x6d70('0xb')]())[_0x6d70('0x5')](smsQueue[_0x6d70('0xc')]())[_0x6d70('0x5')](realtime[_0x6d70('0xd')]())['then'](mailQueue[_0x6d70('0xe')]())[_0x6d70('0x5')](realtime[_0x6d70('0xf')]())[_0x6d70('0x5')](faxQueue[_0x6d70('0x10')]())[_0x6d70('0x5')](realtime[_0x6d70('0x11')]())[_0x6d70('0x5')](whatsappQueue['getWhatsappQueues']())[_0x6d70('0x5')](realtime[_0x6d70('0x12')]())[_0x6d70('0x5')](function(){return realtime;});}function main(){return server[_0x6d70('0x13')](realtime)['then'](function(_0x3c0d76){return initRealtime();})[_0x6d70('0x5')](function(_0x221ec5){return setInterval(initRealtime,0x1388);})[_0x6d70('0x14')](function(_0x296344){console[_0x6d70('0x15')](_0x296344);});}main();
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x326f=['orderBy','asc','result','clone','consequence','nextTick','push','isEqual','condition','call','matchPath','noop','matches','filter','turn','length','prioritize','findRules','priority','toJSON','map','toString','fromJSON','isString','lodash','EventEmitter','init','isNil','register','ignoreFactChanges','inherits','prototype','rules','activeRules','concat','isObject','sync'];(function(_0x454629,_0x486c3f){var _0xb6121c=function(_0x14db28){while(--_0x14db28){_0x454629['push'](_0x454629['shift']());}};_0xb6121c(++_0x486c3f);}(_0x326f,0xd1));var _0xf326=function(_0x15676c,_0x430c0b){_0x15676c=_0x15676c-0x0;var _0x472256=_0x326f[_0x15676c];return _0x472256;};'use strict';var _=require(_0xf326('0x0'));var util=require('util');var EventEmitter=require('events')[_0xf326('0x1')];function RuleEngine(_0x330ddb,_0x22aabf){this[_0xf326('0x2')]();if(!_[_0xf326('0x3')](_0x330ddb)){this[_0xf326('0x4')](_0x330ddb);}if(_0x22aabf){this[_0xf326('0x5')]=_0x22aabf[_0xf326('0x5')];}return this;}util[_0xf326('0x6')](RuleEngine,EventEmitter);RuleEngine[_0xf326('0x7')]['init']=function(_0x3c254d){this[_0xf326('0x8')]=[];this[_0xf326('0x9')]=[];};RuleEngine[_0xf326('0x7')]['register']=function(_0x4c206c){if(Array['isArray'](_0x4c206c)){this[_0xf326('0x8')]=this[_0xf326('0x8')][_0xf326('0xa')](_0x4c206c);}else if(_0x4c206c!==null&&_[_0xf326('0xb')](_0x4c206c)){this[_0xf326('0x8')]['push'](_0x4c206c);}this[_0xf326('0xc')]();};RuleEngine['prototype'][_0xf326('0xc')]=function(){this['activeRules']=this[_0xf326('0x8')]['filter'](function(_0x3162f9){if(_[_0xf326('0x3')](_0x3162f9['on'])){_0x3162f9['on']=!![];}if(_0x3162f9['on']===!![]){return _0x3162f9;}});this['activeRules']=_[_0xf326('0xd')](this[_0xf326('0x9')],['p'],[_0xf326('0xe')]);};RuleEngine[_0xf326('0x7')]['execute']=function(_0x45c1b6,_0x5204ee){var _0x54bd1a=![];_0x45c1b6[_0xf326('0xf')]=!![];var _0x11f6d2=_[_0xf326('0x10')](_0x45c1b6);var _0xa63d1a=_[_0xf326('0x10')](_0x45c1b6);var _0x287a2a=this[_0xf326('0x9')];var _0x2cf2ca=[];var _0x5a682a=this[_0xf326('0x5')];(function FnRuleLoop(_0x453100){var _0x18bee3={'rules':function(){return _0x287a2a;},'rule':function(){return _0x287a2a[_0x453100];},'when':function(_0x31ffb9){if(_0x31ffb9){var _0xcef2b5=_0x287a2a[_0x453100][_0xf326('0x11')];_0xcef2b5['ruleRef']=_0x287a2a[_0x453100]['id']||_0x287a2a[_0x453100]['name']||'index_'+_0x453100;process[_0xf326('0x12')](function(){_0x2cf2ca[_0xf326('0x13')](_0xcef2b5['ruleRef']);_0xcef2b5['call'](_0x11f6d2,_0x18bee3);});}else{process[_0xf326('0x12')](function(){_0x18bee3['next']();});}},'restart':function(){return FnRuleLoop(0x0);},'stop':function(){_0x54bd1a=!![];return FnRuleLoop(0x0);},'next':function(_0x5b6d3c){if(!_0x5a682a&&!_[_0xf326('0x14')](_0xa63d1a,_0x11f6d2)){_0xa63d1a=_[_0xf326('0x10')](_0x11f6d2);process['nextTick'](function(){_0x18bee3['restart']();});}else{process[_0xf326('0x12')](function(){if(_[_0xf326('0x3')](_0x5b6d3c)){return FnRuleLoop(_0x453100+0x1);}else{return FnRuleLoop(_0x5b6d3c);}});}}};if(_0x453100<_0x287a2a['length']&&_0x54bd1a===![]){var _0x337ed5=_0x287a2a[_0x453100][_0xf326('0x15')];_0x337ed5[_0xf326('0x16')](_0x11f6d2,_0x18bee3);}else{process[_0xf326('0x12')](function(){_0x11f6d2[_0xf326('0x17')]=_0x2cf2ca;return _0x5204ee?_0x5204ee(_0x11f6d2):_[_0xf326('0x18')]();});}}(0x0));};RuleEngine['prototype']['findRules']=function(_0x4f31f6){if(_[_0xf326('0x3')](_0x4f31f6)){return this[_0xf326('0x8')];}else{var _0x2cd45a=_[_0xf326('0x19')](_0x4f31f6);return _[_0xf326('0x1a')](this[_0xf326('0x8')],_0x2cd45a);}};RuleEngine['prototype'][_0xf326('0x1b')]=function(_0xa3c0b,_0x212d5d){var _0x581531=_0xa3c0b==='on'||_0xa3c0b==='ON'?!![]:![];var _0x1617d2=this['findRules'](_0x212d5d);for(var _0x4a9abf=0x0,_0x6a8e89=_0x1617d2[_0xf326('0x1c')];_0x4a9abf<_0x6a8e89;_0x4a9abf+=0x1){_0x1617d2[_0x4a9abf]['on']=_0x581531;}this[_0xf326('0xc')]();};RuleEngine['prototype'][_0xf326('0x1d')]=function(_0x292500,_0x55790d){_0x292500=parseInt(_0x292500,0xa);var _0x225776=this[_0xf326('0x1e')](_0x55790d);for(var _0xd77aba=0x0,_0x18d110=_0x225776[_0xf326('0x1c')];_0xd77aba<_0x18d110;_0xd77aba+=0x1){_0x225776[_0xd77aba][_0xf326('0x1f')]=_0x292500;}this[_0xf326('0xc')]();};RuleEngine[_0xf326('0x7')][_0xf326('0x20')]=function(){var _0x349a03=this['rules'];if(_0x349a03 instanceof Array){_0x349a03=_0x349a03[_0xf326('0x21')](function(_0x424104){_0x424104[_0xf326('0x15')]=_0x424104['condition'][_0xf326('0x22')]();_0x424104[_0xf326('0x11')]=_0x424104[_0xf326('0x11')]['toString']();return _0x424104;});}else if(!_['isNil'](_0x349a03)){_0x349a03[_0xf326('0x15')]=_0x349a03[_0xf326('0x15')][_0xf326('0x22')]();_0x349a03[_0xf326('0x11')]=_0x349a03[_0xf326('0x11')][_0xf326('0x22')]();}return _0x349a03;};RuleEngine[_0xf326('0x7')][_0xf326('0x23')]=function(_0x580374){this[_0xf326('0x2')]();if(_[_0xf326('0x24')](_0x580374)){_0x580374=JSON['parse'](_0x580374);}if(_0x580374 instanceof Array){_0x580374=_0x580374[_0xf326('0x21')](function(_0x4e5d7c){_0x4e5d7c[_0xf326('0x15')]=eval('('+_0x4e5d7c['condition']+')');_0x4e5d7c['consequence']=eval('('+_0x4e5d7c[_0xf326('0x11')]+')');return _0x4e5d7c;});}else if(_0x580374!==null&&typeof _0x580374=='object'){_0x580374[_0xf326('0x15')]=eval('('+_0x580374['condition']+')');_0x580374[_0xf326('0x11')]=eval('('+_0x580374[_0xf326('0x11')]+')');}this[_0xf326('0x4')](_0x580374);};module['exports']=RuleEngine;
\ No newline at end of file
+var _0x5fc3=['lodash','util','EventEmitter','init','isNil','ignoreFactChanges','inherits','activeRules','prototype','register','isArray','rules','isObject','sync','orderBy','asc','execute','clone','ruleRef','name','index_','push','call','nextTick','next','isEqual','restart','length','condition','matchPath','noop','findRules','filter','prioritize','priority','toJSON','map','consequence','toString','fromJSON','isString','parse'];(function(_0x254936,_0x1d1a75){var _0xd81b6e=function(_0x27a8d8){while(--_0x27a8d8){_0x254936['push'](_0x254936['shift']());}};_0xd81b6e(++_0x1d1a75);}(_0x5fc3,0xa8));var _0x35fc=function(_0x1064bc,_0x206f12){_0x1064bc=_0x1064bc-0x0;var _0x5edc45=_0x5fc3[_0x1064bc];return _0x5edc45;};'use strict';var _=require(_0x35fc('0x0'));var util=require(_0x35fc('0x1'));var EventEmitter=require('events')[_0x35fc('0x2')];function RuleEngine(_0x2ac6da,_0x196bc2){this[_0x35fc('0x3')]();if(!_[_0x35fc('0x4')](_0x2ac6da)){this['register'](_0x2ac6da);}if(_0x196bc2){this[_0x35fc('0x5')]=_0x196bc2[_0x35fc('0x5')];}return this;}util[_0x35fc('0x6')](RuleEngine,EventEmitter);RuleEngine['prototype']['init']=function(_0x19a0d1){this['rules']=[];this[_0x35fc('0x7')]=[];};RuleEngine[_0x35fc('0x8')][_0x35fc('0x9')]=function(_0x1e5f90){if(Array[_0x35fc('0xa')](_0x1e5f90)){this[_0x35fc('0xb')]=this[_0x35fc('0xb')]['concat'](_0x1e5f90);}else if(_0x1e5f90!==null&&_[_0x35fc('0xc')](_0x1e5f90)){this[_0x35fc('0xb')]['push'](_0x1e5f90);}this[_0x35fc('0xd')]();};RuleEngine[_0x35fc('0x8')]['sync']=function(){this[_0x35fc('0x7')]=this[_0x35fc('0xb')]['filter'](function(_0x4cbe74){if(_[_0x35fc('0x4')](_0x4cbe74['on'])){_0x4cbe74['on']=!![];}if(_0x4cbe74['on']===!![]){return _0x4cbe74;}});this['activeRules']=_[_0x35fc('0xe')](this[_0x35fc('0x7')],['p'],[_0x35fc('0xf')]);};RuleEngine[_0x35fc('0x8')][_0x35fc('0x10')]=function(_0x5cfe94,_0x59507a){var _0x5eac0f=![];_0x5cfe94['result']=!![];var _0x398b67=_[_0x35fc('0x11')](_0x5cfe94);var _0x53b898=_[_0x35fc('0x11')](_0x5cfe94);var _0x227a49=this[_0x35fc('0x7')];var _0x480851=[];var _0x26ba54=this[_0x35fc('0x5')];(function FnRuleLoop(_0x553677){var _0x41e165={'rules':function(){return _0x227a49;},'rule':function(){return _0x227a49[_0x553677];},'when':function(_0x363e47){if(_0x363e47){var _0x2e513b=_0x227a49[_0x553677]['consequence'];_0x2e513b[_0x35fc('0x12')]=_0x227a49[_0x553677]['id']||_0x227a49[_0x553677][_0x35fc('0x13')]||_0x35fc('0x14')+_0x553677;process['nextTick'](function(){_0x480851[_0x35fc('0x15')](_0x2e513b[_0x35fc('0x12')]);_0x2e513b[_0x35fc('0x16')](_0x398b67,_0x41e165);});}else{process[_0x35fc('0x17')](function(){_0x41e165[_0x35fc('0x18')]();});}},'restart':function(){return FnRuleLoop(0x0);},'stop':function(){_0x5eac0f=!![];return FnRuleLoop(0x0);},'next':function(_0x21f1a9){if(!_0x26ba54&&!_[_0x35fc('0x19')](_0x53b898,_0x398b67)){_0x53b898=_[_0x35fc('0x11')](_0x398b67);process[_0x35fc('0x17')](function(){_0x41e165[_0x35fc('0x1a')]();});}else{process['nextTick'](function(){if(_[_0x35fc('0x4')](_0x21f1a9)){return FnRuleLoop(_0x553677+0x1);}else{return FnRuleLoop(_0x21f1a9);}});}}};if(_0x553677<_0x227a49[_0x35fc('0x1b')]&&_0x5eac0f===![]){var _0x257719=_0x227a49[_0x553677][_0x35fc('0x1c')];_0x257719[_0x35fc('0x16')](_0x398b67,_0x41e165);}else{process['nextTick'](function(){_0x398b67[_0x35fc('0x1d')]=_0x480851;return _0x59507a?_0x59507a(_0x398b67):_[_0x35fc('0x1e')]();});}}(0x0));};RuleEngine['prototype'][_0x35fc('0x1f')]=function(_0x5a93df){if(_[_0x35fc('0x4')](_0x5a93df)){return this['rules'];}else{var _0x4086e9=_['matches'](_0x5a93df);return _[_0x35fc('0x20')](this[_0x35fc('0xb')],_0x4086e9);}};RuleEngine['prototype']['turn']=function(_0x47774c,_0x58edb6){var _0x274208=_0x47774c==='on'||_0x47774c==='ON'?!![]:![];var _0x1a5d92=this['findRules'](_0x58edb6);for(var _0x26b7cb=0x0,_0x645eac=_0x1a5d92[_0x35fc('0x1b')];_0x26b7cb<_0x645eac;_0x26b7cb+=0x1){_0x1a5d92[_0x26b7cb]['on']=_0x274208;}this[_0x35fc('0xd')]();};RuleEngine[_0x35fc('0x8')][_0x35fc('0x21')]=function(_0x11ccdb,_0x451f0c){_0x11ccdb=parseInt(_0x11ccdb,0xa);var _0x54aedc=this[_0x35fc('0x1f')](_0x451f0c);for(var _0x220931=0x0,_0x22af18=_0x54aedc['length'];_0x220931<_0x22af18;_0x220931+=0x1){_0x54aedc[_0x220931][_0x35fc('0x22')]=_0x11ccdb;}this[_0x35fc('0xd')]();};RuleEngine[_0x35fc('0x8')][_0x35fc('0x23')]=function(){var _0xd8a4ca=this[_0x35fc('0xb')];if(_0xd8a4ca instanceof Array){_0xd8a4ca=_0xd8a4ca[_0x35fc('0x24')](function(_0x37b435){_0x37b435[_0x35fc('0x1c')]=_0x37b435[_0x35fc('0x1c')]['toString']();_0x37b435['consequence']=_0x37b435[_0x35fc('0x25')]['toString']();return _0x37b435;});}else if(!_[_0x35fc('0x4')](_0xd8a4ca)){_0xd8a4ca[_0x35fc('0x1c')]=_0xd8a4ca[_0x35fc('0x1c')][_0x35fc('0x26')]();_0xd8a4ca[_0x35fc('0x25')]=_0xd8a4ca[_0x35fc('0x25')]['toString']();}return _0xd8a4ca;};RuleEngine[_0x35fc('0x8')][_0x35fc('0x27')]=function(_0x46b9ef){this[_0x35fc('0x3')]();if(_[_0x35fc('0x28')](_0x46b9ef)){_0x46b9ef=JSON[_0x35fc('0x29')](_0x46b9ef);}if(_0x46b9ef instanceof Array){_0x46b9ef=_0x46b9ef['map'](function(_0x2483be){_0x2483be[_0x35fc('0x1c')]=eval('('+_0x2483be[_0x35fc('0x1c')]+')');_0x2483be['consequence']=eval('('+_0x2483be[_0x35fc('0x25')]+')');return _0x2483be;});}else if(_0x46b9ef!==null&&typeof _0x46b9ef=='object'){_0x46b9ef[_0x35fc('0x1c')]=eval('('+_0x46b9ef[_0x35fc('0x1c')]+')');_0x46b9ef[_0x35fc('0x25')]=eval('('+_0x46b9ef[_0x35fc('0x25')]+')');}this['register'](_0x46b9ef);};module['exports']=RuleEngine;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9d8b=['error','message','result','catch','sendMailMessage','SendMail','jayson/promise','client','http','request','then'];(function(_0xf02e25,_0x22e2da){var _0x204887=function(_0x5dcdb5){while(--_0x5dcdb5){_0xf02e25['push'](_0xf02e25['shift']());}};_0x204887(++_0x22e2da);}(_0x9d8b,0x1ea));var _0xb9d8=function(_0x3feb8a,_0x47c784){_0x3feb8a=_0x3feb8a-0x0;var _0x4523ca=_0x9d8b[_0x3feb8a];return _0x4523ca;};'use strict';var BPromise=require('bluebird');var jayson=require(_0xb9d8('0x0'));var client=jayson[_0xb9d8('0x1')][_0xb9d8('0x2')]({'port':0x232b});function request(_0xbf1ab6,_0x1ee2d4){return new BPromise(function(_0x49d9a4,_0x376cf2){return client[_0xb9d8('0x3')](_0xbf1ab6,_0x1ee2d4)[_0xb9d8('0x4')](function(_0xfdcaaa){if(_0xfdcaaa[_0xb9d8('0x5')]){return _0x376cf2(_0xfdcaaa['error'][_0xb9d8('0x6')]);}else{return _0x49d9a4(_0xfdcaaa[_0xb9d8('0x7')]);}})[_0xb9d8('0x8')](function(_0x1ed37b){return _0x376cf2(_0x1ed37b);});});}exports[_0xb9d8('0x9')]=function(_0x394e22,_0x1ab469){return request(_0xb9d8('0xa'),{'account':_0x394e22,'message':_0x1ab469});};
\ No newline at end of file
+var _0xb702=['request','then','error','message','result','catch','sendMailMessage','SendMail','bluebird','jayson/promise','http'];(function(_0x2261ce,_0x9ed8b6){var _0x524640=function(_0x3cbb90){while(--_0x3cbb90){_0x2261ce['push'](_0x2261ce['shift']());}};_0x524640(++_0x9ed8b6);}(_0xb702,0xc3));var _0x2b70=function(_0xcfc44,_0x179bc1){_0xcfc44=_0xcfc44-0x0;var _0x307a25=_0xb702[_0xcfc44];return _0x307a25;};'use strict';var BPromise=require(_0x2b70('0x0'));var jayson=require(_0x2b70('0x1'));var client=jayson['client'][_0x2b70('0x2')]({'port':0x232b});function request(_0x8d8f2e,_0x4d885c){return new BPromise(function(_0x62613e,_0xf94179){return client[_0x2b70('0x3')](_0x8d8f2e,_0x4d885c)[_0x2b70('0x4')](function(_0x5b7081){if(_0x5b7081[_0x2b70('0x5')]){return _0xf94179(_0x5b7081['error'][_0x2b70('0x6')]);}else{return _0x62613e(_0x5b7081[_0x2b70('0x7')]);}})[_0x2b70('0x8')](function(_0x5e15dd){return _0xf94179(_0x5e15dd);});});}exports[_0x2b70('0x9')]=function(_0x1cad47,_0x4f6dc2){return request(_0x2b70('0xa'),{'account':_0x1cad47,'message':_0x4f6dc2});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9b2=['openchannelPause','chatCapacity','chatCurrentCapacity','mailStatus','unknown','mailCapacity','mailCurrentCapacity','faxStatusTime','faxCapacity','faxCurrentCapacity','smsStatus','smsCapacity','whatsappStatus','whatsappCapacity','openchannelStatus','openchannelStatusTime','openchannelCapacity','openchannelCurrentCapacity','busy','busyQueue','updateRealtime','prototype','CurrentCapacity','Capacity','maxcapacity','mail','chat','openchannel','sms','whatsapp','length','getChannelStatus','Status','StatusTime','toNumber','format','faxPause','chatStatusTime','faxStatus','smsCurrentCapacity','whatsappStatusTime','whatsappCurrentCapacity','stringify','emit','exports','lodash','md5','ioredis','../../../config/environment','redis','defaults','localhost','socket.io-emitter','name','online','voicePause','chatPause','mailPause','smsPause'];(function(_0x465507,_0x4332d7){var _0x493b44=function(_0xd857fc){while(--_0xd857fc){_0x465507['push'](_0x465507['shift']());}};_0x493b44(++_0x4332d7);}(_0xa9b2,0xde));var _0x2a9b=function(_0x3b19ea,_0x518b6b){_0x3b19ea=_0x3b19ea-0x0;var _0x40ece9=_0xa9b2[_0x3b19ea];return _0x40ece9;};'use strict';var _=require(_0x2a9b('0x0'));var moment=require('moment');var md5=require(_0x2a9b('0x1'));var Redis=require(_0x2a9b('0x2'));var config=require(_0x2a9b('0x3'));config[_0x2a9b('0x4')]=_[_0x2a9b('0x5')](config[_0x2a9b('0x4')],{'host':_0x2a9b('0x6'),'port':0x18eb});var io=require(_0x2a9b('0x7'))(new Redis(config[_0x2a9b('0x4')]));function Agent(_0x4280b8){this['id']=_0x4280b8['id']||0x0;this['name']=_0x4280b8[_0x2a9b('0x8')]||'';this[_0x2a9b('0x9')]=_0x4280b8['online']||!![];this[_0x2a9b('0xa')]=_0x4280b8[_0x2a9b('0xa')]||![];this[_0x2a9b('0xb')]=_0x4280b8[_0x2a9b('0xb')]||![];this[_0x2a9b('0xc')]=_0x4280b8['mailPause']||![];this['faxPause']=_0x4280b8['faxPause']||![];this[_0x2a9b('0xd')]=_0x4280b8[_0x2a9b('0xd')]||![];this[_0x2a9b('0xe')]=_0x4280b8[_0x2a9b('0xe')]||![];this['chatStatus']='unknown';this['chatStatusTime']=0x0;this[_0x2a9b('0xf')]=_0x4280b8[_0x2a9b('0xf')]||0x0;this[_0x2a9b('0x10')]=0x0;this[_0x2a9b('0x11')]=_0x2a9b('0x12');this['mailStatusTime']=0x0;this[_0x2a9b('0x13')]=_0x4280b8['mailCapacity']||0x0;this[_0x2a9b('0x14')]=0x0;this['faxStatus']=_0x2a9b('0x12');this[_0x2a9b('0x15')]=0x0;this[_0x2a9b('0x16')]=_0x4280b8[_0x2a9b('0x16')]||0x0;this[_0x2a9b('0x17')]=0x0;this[_0x2a9b('0x18')]='unknown';this['smsStatusTime']=0x0;this['smsCapacity']=_0x4280b8[_0x2a9b('0x19')]||0x0;this['smsCurrentCapacity']=0x0;this[_0x2a9b('0x1a')]=_0x2a9b('0x12');this['whatsappStatusTime']=0x0;this['whatsappCapacity']=_0x4280b8[_0x2a9b('0x1b')]||0x0;this['whatsappCurrentCapacity']=0x0;this[_0x2a9b('0x1c')]='unknown';this[_0x2a9b('0x1d')]=0x0;this[_0x2a9b('0x1e')]=_0x4280b8['openchannelCapacity']||0x0;this[_0x2a9b('0x1f')]=0x0;this[_0x2a9b('0x20')]=![];this[_0x2a9b('0x21')]=undefined;this[_0x2a9b('0x1')]='';this[_0x2a9b('0x22')]();}Agent[_0x2a9b('0x23')]['getChannelStatus']=function(_0x16827c){if(this[_0x16827c+_0x2a9b('0x24')]>0x0){if(this[_0x16827c+_0x2a9b('0x25')]>0x0&&this[_0x16827c+_0x2a9b('0x24')]>=this[_0x16827c+'Capacity']){return _0x2a9b('0x26');}else{return'working';}}else{return'idle';}};Agent[_0x2a9b('0x23')][_0x2a9b('0x22')]=function(){var _0x41a1f8=[_0x2a9b('0x27'),_0x2a9b('0x28'),_0x2a9b('0x29'),'fax',_0x2a9b('0x2a'),_0x2a9b('0x2b')];for(var _0x13597d=0x0;_0x13597d<_0x41a1f8[_0x2a9b('0x2c')];_0x13597d+=0x1){var _0x568911=this[_0x2a9b('0x2d')](_0x41a1f8[_0x13597d]);if(this[_0x41a1f8[_0x13597d]+_0x2a9b('0x2e')]!==_0x568911){this[_0x41a1f8[_0x13597d]+_0x2a9b('0x2f')]=_[_0x2a9b('0x30')](moment()[_0x2a9b('0x31')]('x'));}this[_0x41a1f8[_0x13597d]+_0x2a9b('0x2e')]=_0x568911;}var _0x4c8bb0={'id':this['id'],'name':this[_0x2a9b('0x8')],'online':this['online'],'voicePause':this[_0x2a9b('0xa')],'chatPause':this['chatPause'],'mailPause':this[_0x2a9b('0xc')],'smsPause':this[_0x2a9b('0xd')],'faxPause':this[_0x2a9b('0x32')],'openchannelPause':this[_0x2a9b('0xe')],'chatStatus':this['chatStatus'],'chatStatusTime':this[_0x2a9b('0x33')],'chatCapacity':this[_0x2a9b('0xf')],'chatCurrentCapacity':this[_0x2a9b('0x10')],'mailStatus':this[_0x2a9b('0x11')],'mailStatusTime':this['mailStatusTime'],'mailCapacity':this[_0x2a9b('0x13')],'mailCurrentCapacity':this[_0x2a9b('0x14')],'faxStatus':this[_0x2a9b('0x34')],'faxStatusTime':this[_0x2a9b('0x15')],'faxCapacity':this[_0x2a9b('0x16')],'faxCurrentCapacity':this[_0x2a9b('0x17')],'smsStatus':this[_0x2a9b('0x18')],'smsStatusTime':this['smsStatusTime'],'smsCapacity':this[_0x2a9b('0x19')],'smsCurrentCapacity':this[_0x2a9b('0x35')],'whatsappStatus':this['whatsappStatus'],'whatsappStatusTime':this[_0x2a9b('0x36')],'whatsappCapacity':this[_0x2a9b('0x1b')],'whatsappCurrentCapacity':this[_0x2a9b('0x37')],'openchannelStatus':this[_0x2a9b('0x1c')],'openchannelStatusTime':this[_0x2a9b('0x1d')],'openchannelCapacity':this[_0x2a9b('0x1e')],'openchannelCurrentCapacity':this[_0x2a9b('0x1f')],'busy':this['busy'],'busyQueue':this[_0x2a9b('0x21')]};var _0x14e47c=md5(JSON[_0x2a9b('0x38')](_0x4c8bb0));if(this[_0x2a9b('0x1')]!==_0x14e47c){this[_0x2a9b('0x1')]=_0x14e47c;io[_0x2a9b('0x39')]('user:save',_0x4c8bb0);}};module[_0x2a9b('0x3a')]=Agent;
\ No newline at end of file
+var _0xe31a=['CurrentCapacity','Capacity','maxcapacity','working','idle','mail','openchannel','fax','sms','length','getChannelStatus','Status','StatusTime','toNumber','mailCurrentCapacity','busy','busyQueue','stringify','emit','lodash','moment','../../../config/environment','redis','defaults','localhost','socket.io-emitter','name','online','voicePause','chatPause','mailPause','faxPause','smsPause','openchannelPause','chatStatus','unknown','chatCapacity','chatCurrentCapacity','mailStatus','mailStatusTime','mailCapacity','faxStatusTime','faxCapacity','faxCurrentCapacity','smsStatus','smsStatusTime','smsCapacity','smsCurrentCapacity','whatsappStatus','whatsappStatusTime','whatsappCapacity','whatsappCurrentCapacity','openchannelStatusTime','openchannelCapacity','openchannelCurrentCapacity','md5','updateRealtime','prototype'];(function(_0xa74f2f,_0x4accf0){var _0x39ce31=function(_0x4fb029){while(--_0x4fb029){_0xa74f2f['push'](_0xa74f2f['shift']());}};_0x39ce31(++_0x4accf0);}(_0xe31a,0x87));var _0xae31=function(_0x45d3f0,_0x4be53f){_0x45d3f0=_0x45d3f0-0x0;var _0x314b79=_0xe31a[_0x45d3f0];return _0x314b79;};'use strict';var _=require(_0xae31('0x0'));var moment=require(_0xae31('0x1'));var md5=require('md5');var Redis=require('ioredis');var config=require(_0xae31('0x2'));config[_0xae31('0x3')]=_[_0xae31('0x4')](config[_0xae31('0x3')],{'host':_0xae31('0x5'),'port':0x18eb});var io=require(_0xae31('0x6'))(new Redis(config[_0xae31('0x3')]));function Agent(_0x3f7304){this['id']=_0x3f7304['id']||0x0;this['name']=_0x3f7304[_0xae31('0x7')]||'';this[_0xae31('0x8')]=_0x3f7304[_0xae31('0x8')]||!![];this[_0xae31('0x9')]=_0x3f7304[_0xae31('0x9')]||![];this[_0xae31('0xa')]=_0x3f7304[_0xae31('0xa')]||![];this[_0xae31('0xb')]=_0x3f7304[_0xae31('0xb')]||![];this[_0xae31('0xc')]=_0x3f7304[_0xae31('0xc')]||![];this[_0xae31('0xd')]=_0x3f7304[_0xae31('0xd')]||![];this[_0xae31('0xe')]=_0x3f7304['openchannelPause']||![];this[_0xae31('0xf')]=_0xae31('0x10');this['chatStatusTime']=0x0;this['chatCapacity']=_0x3f7304[_0xae31('0x11')]||0x0;this[_0xae31('0x12')]=0x0;this[_0xae31('0x13')]=_0xae31('0x10');this[_0xae31('0x14')]=0x0;this[_0xae31('0x15')]=_0x3f7304[_0xae31('0x15')]||0x0;this['mailCurrentCapacity']=0x0;this['faxStatus']=_0xae31('0x10');this[_0xae31('0x16')]=0x0;this['faxCapacity']=_0x3f7304[_0xae31('0x17')]||0x0;this[_0xae31('0x18')]=0x0;this[_0xae31('0x19')]=_0xae31('0x10');this[_0xae31('0x1a')]=0x0;this[_0xae31('0x1b')]=_0x3f7304[_0xae31('0x1b')]||0x0;this[_0xae31('0x1c')]=0x0;this[_0xae31('0x1d')]=_0xae31('0x10');this[_0xae31('0x1e')]=0x0;this[_0xae31('0x1f')]=_0x3f7304[_0xae31('0x1f')]||0x0;this[_0xae31('0x20')]=0x0;this['openchannelStatus']='unknown';this[_0xae31('0x21')]=0x0;this[_0xae31('0x22')]=_0x3f7304[_0xae31('0x22')]||0x0;this[_0xae31('0x23')]=0x0;this['busy']=![];this['busyQueue']=undefined;this[_0xae31('0x24')]='';this[_0xae31('0x25')]();}Agent[_0xae31('0x26')]['getChannelStatus']=function(_0x11f80d){if(this[_0x11f80d+_0xae31('0x27')]>0x0){if(this[_0x11f80d+_0xae31('0x28')]>0x0&&this[_0x11f80d+_0xae31('0x27')]>=this[_0x11f80d+_0xae31('0x28')]){return _0xae31('0x29');}else{return _0xae31('0x2a');}}else{return _0xae31('0x2b');}};Agent[_0xae31('0x26')]['updateRealtime']=function(){var _0x3c8ca3=[_0xae31('0x2c'),'chat',_0xae31('0x2d'),_0xae31('0x2e'),_0xae31('0x2f'),'whatsapp'];for(var _0x637a2c=0x0;_0x637a2c<_0x3c8ca3[_0xae31('0x30')];_0x637a2c+=0x1){var _0x22a9f0=this[_0xae31('0x31')](_0x3c8ca3[_0x637a2c]);if(this[_0x3c8ca3[_0x637a2c]+_0xae31('0x32')]!==_0x22a9f0){this[_0x3c8ca3[_0x637a2c]+_0xae31('0x33')]=_[_0xae31('0x34')](moment()['format']('x'));}this[_0x3c8ca3[_0x637a2c]+'Status']=_0x22a9f0;}var _0x4fa776={'id':this['id'],'name':this[_0xae31('0x7')],'online':this[_0xae31('0x8')],'voicePause':this[_0xae31('0x9')],'chatPause':this[_0xae31('0xa')],'mailPause':this['mailPause'],'smsPause':this[_0xae31('0xd')],'faxPause':this[_0xae31('0xc')],'openchannelPause':this['openchannelPause'],'chatStatus':this[_0xae31('0xf')],'chatStatusTime':this['chatStatusTime'],'chatCapacity':this['chatCapacity'],'chatCurrentCapacity':this[_0xae31('0x12')],'mailStatus':this[_0xae31('0x13')],'mailStatusTime':this[_0xae31('0x14')],'mailCapacity':this[_0xae31('0x15')],'mailCurrentCapacity':this[_0xae31('0x35')],'faxStatus':this['faxStatus'],'faxStatusTime':this[_0xae31('0x16')],'faxCapacity':this[_0xae31('0x17')],'faxCurrentCapacity':this[_0xae31('0x18')],'smsStatus':this[_0xae31('0x19')],'smsStatusTime':this[_0xae31('0x1a')],'smsCapacity':this[_0xae31('0x1b')],'smsCurrentCapacity':this[_0xae31('0x1c')],'whatsappStatus':this[_0xae31('0x1d')],'whatsappStatusTime':this[_0xae31('0x1e')],'whatsappCapacity':this[_0xae31('0x1f')],'whatsappCurrentCapacity':this[_0xae31('0x20')],'openchannelStatus':this['openchannelStatus'],'openchannelStatusTime':this[_0xae31('0x21')],'openchannelCapacity':this[_0xae31('0x22')],'openchannelCurrentCapacity':this['openchannelCurrentCapacity'],'busy':this[_0xae31('0x36')],'busyQueue':this[_0xae31('0x37')]};var _0x3d763d=md5(JSON[_0xae31('0x38')](_0x4fa776));if(this[_0xae31('0x24')]!==_0x3d763d){this[_0xae31('0x24')]=_0x3d763d;io[_0xae31('0x39')]('user:save',_0x4fa776);}};module['exports']=Agent;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0450=['name','timeout','beepall','Agents','mapAgentsId','waiting','updateRouting','prototype','_rr','loggedIn','paused','length','available','stringify','format','chat:queue:%s','emit','chat_queue:save','exports','md5','util','ioredis','../../../config/environment','redis','localhost','socket.io-emitter'];(function(_0x5cb1af,_0x4bdc8c){var _0x8d7940=function(_0x3db70a){while(--_0x3db70a){_0x5cb1af['push'](_0x5cb1af['shift']());}};_0x8d7940(++_0x4bdc8c);}(_0x0450,0x199));var _0x0045=function(_0x181bcf,_0x566e09){_0x181bcf=_0x181bcf-0x0;var _0x29f8b2=_0x0450[_0x181bcf];return _0x29f8b2;};'use strict';var _=require('lodash');var md5=require(_0x0045('0x0'));var util=require(_0x0045('0x1'));var Redis=require(_0x0045('0x2'));var config=require(_0x0045('0x3'));config[_0x0045('0x4')]=_['defaults'](config[_0x0045('0x4')],{'host':_0x0045('0x5'),'port':0x18eb});var io=require(_0x0045('0x6'))(new Redis(config[_0x0045('0x4')]));function ChatQueue(_0x1b2858){this['id']=_0x1b2858['id']||0x0;this['name']=_0x1b2858[_0x0045('0x7')]||'';this[_0x0045('0x8')]=_0x1b2858['timeout']||0xa;this['strategy']=_0x1b2858['strategy']||_0x0045('0x9');this['Agents']=_0x1b2858[_0x0045('0xa')];this[_0x0045('0xb')]={};this[_0x0045('0xc')]=0x0;this[_0x0045('0x0')]='';this[_0x0045('0xd')]();this['updateRealtime']();}ChatQueue[_0x0045('0xe')][_0x0045('0xd')]=function(){var _0xb26b70=this[_0x0045('0xb')][_0x0045('0xf')];this[_0x0045('0xb')]=_['map'](this[_0x0045('0xa')],'id');this[_0x0045('0xb')][_0x0045('0xf')]=_0xb26b70;};ChatQueue[_0x0045('0xe')]['updateRealtime']=function(){this[_0x0045('0x10')]=0x0;this[_0x0045('0x11')]=0x0;for(var _0x281b79=0x0;_0x281b79<this[_0x0045('0xa')][_0x0045('0x12')];_0x281b79+=0x1){if(this[_0x0045('0xa')][_0x281b79]['online']){this['loggedIn']+=0x1;}if(this[_0x0045('0xa')][_0x281b79]['chatPause']){this[_0x0045('0x11')]+=0x1;}}this[_0x0045('0x13')]=this['loggedIn']-this[_0x0045('0x11')];this[_0x0045('0x13')]=this[_0x0045('0x13')]>=0x0?this[_0x0045('0x13')]:0x0;var _0x3b0b4c={'id':this['id'],'available':this[_0x0045('0x13')],'loggedIn':this[_0x0045('0x10')],'name':this['name'],'paused':this[_0x0045('0x11')],'waiting':this[_0x0045('0xc')]};var _0x23dfb2=md5(JSON[_0x0045('0x14')](_0x3b0b4c));if(this['md5']!==_0x23dfb2){this[_0x0045('0x0')]=_0x23dfb2;io['to'](util[_0x0045('0x15')](_0x0045('0x16'),_0x3b0b4c[_0x0045('0x7')]))[_0x0045('0x17')](_0x0045('0x18'),_0x3b0b4c);}};module[_0x0045('0x19')]=ChatQueue;
\ No newline at end of file
+var _0x9054=['updateRouting','prototype','map','_rr','updateRealtime','paused','loggedIn','chatPause','available','stringify','format','chat:queue:%s','emit','md5','util','ioredis','../../../config/environment','redis','defaults','localhost','name','timeout','strategy','beepall','Agents','mapAgentsId'];(function(_0x3a0575,_0x522c79){var _0x44e3de=function(_0x364693){while(--_0x364693){_0x3a0575['push'](_0x3a0575['shift']());}};_0x44e3de(++_0x522c79);}(_0x9054,0x193));var _0x4905=function(_0xded287,_0x473a1e){_0xded287=_0xded287-0x0;var _0x524590=_0x9054[_0xded287];return _0x524590;};'use strict';var _=require('lodash');var md5=require(_0x4905('0x0'));var util=require(_0x4905('0x1'));var Redis=require(_0x4905('0x2'));var config=require(_0x4905('0x3'));config[_0x4905('0x4')]=_[_0x4905('0x5')](config[_0x4905('0x4')],{'host':_0x4905('0x6'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x4905('0x4')]));function ChatQueue(_0x3584bf){this['id']=_0x3584bf['id']||0x0;this[_0x4905('0x7')]=_0x3584bf['name']||'';this[_0x4905('0x8')]=_0x3584bf['timeout']||0xa;this[_0x4905('0x9')]=_0x3584bf[_0x4905('0x9')]||_0x4905('0xa');this[_0x4905('0xb')]=_0x3584bf[_0x4905('0xb')];this[_0x4905('0xc')]={};this['waiting']=0x0;this[_0x4905('0x0')]='';this[_0x4905('0xd')]();this['updateRealtime']();}ChatQueue[_0x4905('0xe')][_0x4905('0xd')]=function(){var _0x6e7afb=this[_0x4905('0xc')]['_rr'];this[_0x4905('0xc')]=_[_0x4905('0xf')](this[_0x4905('0xb')],'id');this['mapAgentsId'][_0x4905('0x10')]=_0x6e7afb;};ChatQueue[_0x4905('0xe')][_0x4905('0x11')]=function(){this['loggedIn']=0x0;this[_0x4905('0x12')]=0x0;for(var _0x224e8a=0x0;_0x224e8a<this['Agents']['length'];_0x224e8a+=0x1){if(this[_0x4905('0xb')][_0x224e8a]['online']){this[_0x4905('0x13')]+=0x1;}if(this[_0x4905('0xb')][_0x224e8a][_0x4905('0x14')]){this[_0x4905('0x12')]+=0x1;}}this[_0x4905('0x15')]=this[_0x4905('0x13')]-this[_0x4905('0x12')];this[_0x4905('0x15')]=this[_0x4905('0x15')]>=0x0?this['available']:0x0;var _0xf10fc5={'id':this['id'],'available':this['available'],'loggedIn':this[_0x4905('0x13')],'name':this['name'],'paused':this[_0x4905('0x12')],'waiting':this['waiting']};var _0x5ea6b9=md5(JSON[_0x4905('0x16')](_0xf10fc5));if(this['md5']!==_0x5ea6b9){this[_0x4905('0x0')]=_0x5ea6b9;io['to'](util[_0x4905('0x17')](_0x4905('0x18'),_0xf10fc5[_0x4905('0x7')]))[_0x4905('0x19')]('chat_queue:save',_0xf10fc5);}};module['exports']=ChatQueue;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcd26=['localhost','socket.io-emitter','name','timeout','strategy','Agents','waiting','updateRealtime','prototype','updateRouting','mapAgentsId','_rr','map','paused','length','loggedIn','faxPause','available','format','fax:queue:%s','emit','fax_queue:save','exports','md5','util','ioredis','../../../config/environment','redis','defaults'];(function(_0x4b1032,_0x36952e){var _0x5a1d55=function(_0x282e9b){while(--_0x282e9b){_0x4b1032['push'](_0x4b1032['shift']());}};_0x5a1d55(++_0x36952e);}(_0xcd26,0x173));var _0x6cd2=function(_0x2ba9ac,_0xa1fdc4){_0x2ba9ac=_0x2ba9ac-0x0;var _0x1b0fc9=_0xcd26[_0x2ba9ac];return _0x1b0fc9;};'use strict';var _=require('lodash');var md5=require(_0x6cd2('0x0'));var util=require(_0x6cd2('0x1'));var Redis=require(_0x6cd2('0x2'));var config=require(_0x6cd2('0x3'));config[_0x6cd2('0x4')]=_[_0x6cd2('0x5')](config[_0x6cd2('0x4')],{'host':_0x6cd2('0x6'),'port':0x18eb});var io=require(_0x6cd2('0x7'))(new Redis(config[_0x6cd2('0x4')]));function FaxQueue(_0xab60d0){this['id']=_0xab60d0['id']||0x0;this[_0x6cd2('0x8')]=_0xab60d0[_0x6cd2('0x8')]||'';this[_0x6cd2('0x9')]=_0xab60d0[_0x6cd2('0x9')]||0xa;this[_0x6cd2('0xa')]=_0xab60d0[_0x6cd2('0xa')]||'beepall';this[_0x6cd2('0xb')]=_0xab60d0['Agents'];this['mapAgentsId']={};this[_0x6cd2('0xc')]=0x0;this['md5']='';this['updateRouting']();this[_0x6cd2('0xd')]();}FaxQueue[_0x6cd2('0xe')][_0x6cd2('0xf')]=function(){var _0x4ab2e7=this[_0x6cd2('0x10')][_0x6cd2('0x11')];this['mapAgentsId']=_[_0x6cd2('0x12')](this[_0x6cd2('0xb')],'id');this[_0x6cd2('0x10')][_0x6cd2('0x11')]=_0x4ab2e7;};FaxQueue[_0x6cd2('0xe')][_0x6cd2('0xd')]=function(){this['loggedIn']=0x0;this[_0x6cd2('0x13')]=0x0;for(var _0x15d2b=0x0;_0x15d2b<this[_0x6cd2('0xb')][_0x6cd2('0x14')];_0x15d2b+=0x1){if(this[_0x6cd2('0xb')][_0x15d2b]['online']){this[_0x6cd2('0x15')]+=0x1;}if(this[_0x6cd2('0xb')][_0x15d2b][_0x6cd2('0x16')]){this[_0x6cd2('0x13')]+=0x1;}}this[_0x6cd2('0x17')]=this[_0x6cd2('0x15')]-this[_0x6cd2('0x13')];this[_0x6cd2('0x17')]=this[_0x6cd2('0x17')]>=0x0?this['available']:0x0;var _0x5a3675={'id':this['id'],'available':this[_0x6cd2('0x17')],'loggedIn':this['loggedIn'],'name':this[_0x6cd2('0x8')],'paused':this[_0x6cd2('0x13')],'waiting':this[_0x6cd2('0xc')]};var _0x315ab3=md5(JSON['stringify'](_0x5a3675));if(this[_0x6cd2('0x0')]!==_0x315ab3){this[_0x6cd2('0x0')]=_0x315ab3;io['to'](util[_0x6cd2('0x18')](_0x6cd2('0x19'),_0x5a3675[_0x6cd2('0x8')]))[_0x6cd2('0x1a')](_0x6cd2('0x1b'),_0x5a3675);}};module[_0x6cd2('0x1c')]=FaxQueue;
\ No newline at end of file
+var _0x0637=['Agents','updateRouting','updateRealtime','prototype','mapAgentsId','_rr','map','loggedIn','paused','length','online','faxPause','available','stringify','format','fax:queue:%s','emit','fax_queue:save','exports','md5','util','ioredis','defaults','localhost','socket.io-emitter','redis','name','timeout','strategy'];(function(_0x22ee36,_0x2c46ef){var _0x161dba=function(_0x584210){while(--_0x584210){_0x22ee36['push'](_0x22ee36['shift']());}};_0x161dba(++_0x2c46ef);}(_0x0637,0x18c));var _0x7063=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x0637[_0x321bb2];return _0x9c12ed;};'use strict';var _=require('lodash');var md5=require(_0x7063('0x0'));var util=require(_0x7063('0x1'));var Redis=require(_0x7063('0x2'));var config=require('../../../config/environment');config['redis']=_[_0x7063('0x3')](config['redis'],{'host':_0x7063('0x4'),'port':0x18eb});var io=require(_0x7063('0x5'))(new Redis(config[_0x7063('0x6')]));function FaxQueue(_0x5c2c94){this['id']=_0x5c2c94['id']||0x0;this[_0x7063('0x7')]=_0x5c2c94['name']||'';this[_0x7063('0x8')]=_0x5c2c94[_0x7063('0x8')]||0xa;this['strategy']=_0x5c2c94[_0x7063('0x9')]||'beepall';this[_0x7063('0xa')]=_0x5c2c94[_0x7063('0xa')];this['mapAgentsId']={};this['waiting']=0x0;this['md5']='';this[_0x7063('0xb')]();this[_0x7063('0xc')]();}FaxQueue[_0x7063('0xd')][_0x7063('0xb')]=function(){var _0x586cea=this[_0x7063('0xe')][_0x7063('0xf')];this[_0x7063('0xe')]=_[_0x7063('0x10')](this['Agents'],'id');this[_0x7063('0xe')][_0x7063('0xf')]=_0x586cea;};FaxQueue[_0x7063('0xd')][_0x7063('0xc')]=function(){this[_0x7063('0x11')]=0x0;this[_0x7063('0x12')]=0x0;for(var _0x33b5a2=0x0;_0x33b5a2<this['Agents'][_0x7063('0x13')];_0x33b5a2+=0x1){if(this[_0x7063('0xa')][_0x33b5a2][_0x7063('0x14')]){this['loggedIn']+=0x1;}if(this[_0x7063('0xa')][_0x33b5a2][_0x7063('0x15')]){this[_0x7063('0x12')]+=0x1;}}this[_0x7063('0x16')]=this['loggedIn']-this['paused'];this['available']=this['available']>=0x0?this['available']:0x0;var _0x5f1a3a={'id':this['id'],'available':this[_0x7063('0x16')],'loggedIn':this[_0x7063('0x11')],'name':this[_0x7063('0x7')],'paused':this[_0x7063('0x12')],'waiting':this['waiting']};var _0x5ca484=md5(JSON[_0x7063('0x17')](_0x5f1a3a));if(this[_0x7063('0x0')]!==_0x5ca484){this[_0x7063('0x0')]=_0x5ca484;io['to'](util[_0x7063('0x18')](_0x7063('0x19'),_0x5f1a3a[_0x7063('0x7')]))[_0x7063('0x1a')](_0x7063('0x1b'),_0x5f1a3a);}};module[_0x7063('0x1c')]=FaxQueue;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfc10=['exports','name','Intervals'];(function(_0x25ee89,_0x5e365b){var _0x8f283a=function(_0x5e2607){while(--_0x5e2607){_0x25ee89['push'](_0x25ee89['shift']());}};_0x8f283a(++_0x5e365b);}(_0xfc10,0x139));var _0x0fc1=function(_0x26e5b2,_0x5a5862){_0x26e5b2=_0x26e5b2-0x0;var _0x42abf9=_0xfc10[_0x26e5b2];return _0x42abf9;};'use strict';function Interval(_0x5c20db){this['id']=_0x5c20db['id']||0x0;this[_0x0fc1('0x0')]=_0x5c20db[_0x0fc1('0x0')]||'';this[_0x0fc1('0x1')]=_0x5c20db[_0x0fc1('0x1')]||{};}module[_0x0fc1('0x2')]=Interval;
\ No newline at end of file
+var _0x2d34=['name','Intervals','exports'];(function(_0x2c9ec3,_0x4f0b97){var _0x494999=function(_0xb00926){while(--_0xb00926){_0x2c9ec3['push'](_0x2c9ec3['shift']());}};_0x494999(++_0x4f0b97);}(_0x2d34,0x15f));var _0x42d3=function(_0x5f47b0,_0x1bacfa){_0x5f47b0=_0x5f47b0-0x0;var _0x4689de=_0x2d34[_0x5f47b0];return _0x4689de;};'use strict';function Interval(_0x622e55){this['id']=_0x622e55['id']||0x0;this['name']=_0x622e55[_0x42d3('0x0')]||'';this[_0x42d3('0x1')]=_0x622e55[_0x42d3('0x1')]||{};}module[_0x42d3('0x2')]=Interval;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6887=['localhost','socket.io-emitter','name','timeout','strategy','beepall','Agents','mapAgentsId','waiting','updateRouting','_rr','map','prototype','updateRealtime','loggedIn','paused','length','mailPause','available','stringify','format','emit','mail_queue:save','lodash','md5','util','ioredis','redis','defaults'];(function(_0x33e106,_0x5893a5){var _0x4f943f=function(_0x56ca9b){while(--_0x56ca9b){_0x33e106['push'](_0x33e106['shift']());}};_0x4f943f(++_0x5893a5);}(_0x6887,0x11c));var _0x7688=function(_0x47c2f9,_0x4d8900){_0x47c2f9=_0x47c2f9-0x0;var _0x35096f=_0x6887[_0x47c2f9];return _0x35096f;};'use strict';var _=require(_0x7688('0x0'));var md5=require(_0x7688('0x1'));var util=require(_0x7688('0x2'));var Redis=require(_0x7688('0x3'));var config=require('../../../config/environment');config[_0x7688('0x4')]=_[_0x7688('0x5')](config[_0x7688('0x4')],{'host':_0x7688('0x6'),'port':0x18eb});var io=require(_0x7688('0x7'))(new Redis(config['redis']));function MailQueue(_0x4ea70d){this['id']=_0x4ea70d['id']||0x0;this[_0x7688('0x8')]=_0x4ea70d[_0x7688('0x8')]||'';this[_0x7688('0x9')]=_0x4ea70d[_0x7688('0x9')]||0xa;this['strategy']=_0x4ea70d[_0x7688('0xa')]||_0x7688('0xb');this[_0x7688('0xc')]=_0x4ea70d[_0x7688('0xc')];this[_0x7688('0xd')]={};this[_0x7688('0xe')]=0x0;this['md5']='';this[_0x7688('0xf')]();this['updateRealtime']();}MailQueue['prototype'][_0x7688('0xf')]=function(){var _0x15bd0f=this[_0x7688('0xd')][_0x7688('0x10')];this[_0x7688('0xd')]=_[_0x7688('0x11')](this[_0x7688('0xc')],'id');this[_0x7688('0xd')][_0x7688('0x10')]=_0x15bd0f;};MailQueue[_0x7688('0x12')][_0x7688('0x13')]=function(){this[_0x7688('0x14')]=0x0;this[_0x7688('0x15')]=0x0;for(var _0x1c43a5=0x0;_0x1c43a5<this[_0x7688('0xc')][_0x7688('0x16')];_0x1c43a5+=0x1){if(this[_0x7688('0xc')][_0x1c43a5]['online']){this[_0x7688('0x14')]+=0x1;}if(this[_0x7688('0xc')][_0x1c43a5][_0x7688('0x17')]){this[_0x7688('0x15')]+=0x1;}}this['available']=this[_0x7688('0x14')]-this['paused'];this[_0x7688('0x18')]=this[_0x7688('0x18')]>=0x0?this[_0x7688('0x18')]:0x0;var _0x555a78={'id':this['id'],'available':this['available'],'loggedIn':this['loggedIn'],'name':this['name'],'paused':this[_0x7688('0x15')],'waiting':this['waiting']};var _0x25ab07=md5(JSON[_0x7688('0x19')](_0x555a78));if(this['md5']!==_0x25ab07){this['md5']=_0x25ab07;io['to'](util[_0x7688('0x1a')]('mail:queue:%s',_0x555a78['name']))[_0x7688('0x1b')](_0x7688('0x1c'),_0x555a78);}};module['exports']=MailQueue;
\ No newline at end of file
+var _0x34ba=['mailPause','available','waiting','stringify','format','mail_queue:save','exports','lodash','md5','util','redis','localhost','socket.io-emitter','name','timeout','strategy','beepall','Agents','mapAgentsId','updateRealtime','prototype','updateRouting','map','_rr','loggedIn','paused','online'];(function(_0x180cd0,_0x386c6e){var _0x49fc32=function(_0x551c2c){while(--_0x551c2c){_0x180cd0['push'](_0x180cd0['shift']());}};_0x49fc32(++_0x386c6e);}(_0x34ba,0x181));var _0xa34b=function(_0x40c6ee,_0x11741c){_0x40c6ee=_0x40c6ee-0x0;var _0x4842ab=_0x34ba[_0x40c6ee];return _0x4842ab;};'use strict';var _=require(_0xa34b('0x0'));var md5=require(_0xa34b('0x1'));var util=require(_0xa34b('0x2'));var Redis=require('ioredis');var config=require('../../../config/environment');config['redis']=_['defaults'](config[_0xa34b('0x3')],{'host':_0xa34b('0x4'),'port':0x18eb});var io=require(_0xa34b('0x5'))(new Redis(config[_0xa34b('0x3')]));function MailQueue(_0x316dcf){this['id']=_0x316dcf['id']||0x0;this[_0xa34b('0x6')]=_0x316dcf[_0xa34b('0x6')]||'';this[_0xa34b('0x7')]=_0x316dcf['timeout']||0xa;this[_0xa34b('0x8')]=_0x316dcf[_0xa34b('0x8')]||_0xa34b('0x9');this[_0xa34b('0xa')]=_0x316dcf['Agents'];this[_0xa34b('0xb')]={};this['waiting']=0x0;this[_0xa34b('0x1')]='';this['updateRouting']();this[_0xa34b('0xc')]();}MailQueue[_0xa34b('0xd')][_0xa34b('0xe')]=function(){var _0x139c26=this[_0xa34b('0xb')]['_rr'];this[_0xa34b('0xb')]=_[_0xa34b('0xf')](this['Agents'],'id');this['mapAgentsId'][_0xa34b('0x10')]=_0x139c26;};MailQueue['prototype'][_0xa34b('0xc')]=function(){this[_0xa34b('0x11')]=0x0;this[_0xa34b('0x12')]=0x0;for(var _0x213922=0x0;_0x213922<this['Agents']['length'];_0x213922+=0x1){if(this['Agents'][_0x213922][_0xa34b('0x13')]){this['loggedIn']+=0x1;}if(this['Agents'][_0x213922][_0xa34b('0x14')]){this['paused']+=0x1;}}this[_0xa34b('0x15')]=this['loggedIn']-this[_0xa34b('0x12')];this[_0xa34b('0x15')]=this[_0xa34b('0x15')]>=0x0?this[_0xa34b('0x15')]:0x0;var _0x1b8ff0={'id':this['id'],'available':this[_0xa34b('0x15')],'loggedIn':this[_0xa34b('0x11')],'name':this[_0xa34b('0x6')],'paused':this[_0xa34b('0x12')],'waiting':this[_0xa34b('0x16')]};var _0x274619=md5(JSON[_0xa34b('0x17')](_0x1b8ff0));if(this[_0xa34b('0x1')]!==_0x274619){this[_0xa34b('0x1')]=_0x274619;io['to'](util[_0xa34b('0x18')]('mail:queue:%s',_0x1b8ff0[_0xa34b('0x6')]))['emit'](_0xa34b('0x19'),_0x1b8ff0);}};module[_0xa34b('0x1a')]=MailQueue;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x326f=['exports','lodash','ioredis','../../../config/environment','redis','defaults','localhost','socket.io-emitter','name','timeout','strategy','mapAgentsId','waiting','md5','updateRouting','updateRealtime','Agents','prototype','loggedIn','paused','online','openchannelPause','available','stringify','openchannel:queue:%s','openchannel_queue:save'];(function(_0x3e5086,_0x48f4a2){var _0xfeb102=function(_0x5a945f){while(--_0x5a945f){_0x3e5086['push'](_0x3e5086['shift']());}};_0xfeb102(++_0x48f4a2);}(_0x326f,0xd1));var _0xf326=function(_0x34fa40,_0x2a4e90){_0x34fa40=_0x34fa40-0x0;var _0x4a6617=_0x326f[_0x34fa40];return _0x4a6617;};'use strict';var _=require(_0xf326('0x0'));var md5=require('md5');var util=require('util');var Redis=require(_0xf326('0x1'));var config=require(_0xf326('0x2'));config[_0xf326('0x3')]=_[_0xf326('0x4')](config[_0xf326('0x3')],{'host':_0xf326('0x5'),'port':0x18eb});var io=require(_0xf326('0x6'))(new Redis(config[_0xf326('0x3')]));function OpenchannelQueue(_0x1b5a56){this['id']=_0x1b5a56['id']||0x0;this[_0xf326('0x7')]=_0x1b5a56['name']||'';this[_0xf326('0x8')]=_0x1b5a56[_0xf326('0x8')]||0xa;this[_0xf326('0x9')]=_0x1b5a56[_0xf326('0x9')]||'beepall';this['Agents']=_0x1b5a56['Agents'];this[_0xf326('0xa')]={};this[_0xf326('0xb')]=0x0;this[_0xf326('0xc')]='';this[_0xf326('0xd')]();this[_0xf326('0xe')]();}OpenchannelQueue['prototype'][_0xf326('0xd')]=function(){var _0x53cbcd=this[_0xf326('0xa')]['_rr'];this[_0xf326('0xa')]=_['map'](this[_0xf326('0xf')],'id');this[_0xf326('0xa')]['_rr']=_0x53cbcd;};OpenchannelQueue[_0xf326('0x10')][_0xf326('0xe')]=function(){this[_0xf326('0x11')]=0x0;this[_0xf326('0x12')]=0x0;for(var _0x5c8483=0x0;_0x5c8483<this[_0xf326('0xf')]['length'];_0x5c8483+=0x1){if(this['Agents'][_0x5c8483][_0xf326('0x13')]){this[_0xf326('0x11')]+=0x1;}if(this[_0xf326('0xf')][_0x5c8483][_0xf326('0x14')]){this[_0xf326('0x12')]+=0x1;}}this[_0xf326('0x15')]=this[_0xf326('0x11')]-this[_0xf326('0x12')];this['available']=this[_0xf326('0x15')]>=0x0?this[_0xf326('0x15')]:0x0;var _0x18bee3={'id':this['id'],'available':this[_0xf326('0x15')],'loggedIn':this[_0xf326('0x11')],'name':this[_0xf326('0x7')],'paused':this['paused'],'waiting':this['waiting']};var _0x56ad41=md5(JSON[_0xf326('0x16')](_0x18bee3));if(this[_0xf326('0xc')]!==_0x56ad41){this['md5']=_0x56ad41;io['to'](util['format'](_0xf326('0x17'),_0x18bee3['name']))['emit'](_0xf326('0x18'),_0x18bee3);}};module[_0xf326('0x19')]=OpenchannelQueue;
\ No newline at end of file
+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(_0x20aadb,_0x5a607a){var _0x520018=function(_0x1d258a){while(--_0x1d258a){_0x20aadb['push'](_0x20aadb['shift']());}};_0x520018(++_0x5a607a);}(_0x1261,0x144));var _0x1126=function(_0x46c1d5,_0x5ca335){_0x46c1d5=_0x46c1d5-0x0;var _0x40fe7b=_0x1261[_0x46c1d5];return _0x40fe7b;};'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
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x46fc=['prototype','updateRealtime','length','smsPause','paused','available','loggedIn','stringify','exports','lodash','md5','util','ioredis','../../../config/environment','redis','defaults','localhost','name','timeout','strategy','beepall','Agents','mapAgentsId','waiting','updateRouting'];(function(_0x15e5b7,_0x9cf121){var _0x20d8dc=function(_0x32d70d){while(--_0x32d70d){_0x15e5b7['push'](_0x15e5b7['shift']());}};_0x20d8dc(++_0x9cf121);}(_0x46fc,0x103));var _0xc46f=function(_0x54de6d,_0x25b1cf){_0x54de6d=_0x54de6d-0x0;var _0x2bdad8=_0x46fc[_0x54de6d];return _0x2bdad8;};'use strict';var _=require(_0xc46f('0x0'));var md5=require(_0xc46f('0x1'));var util=require(_0xc46f('0x2'));var Redis=require(_0xc46f('0x3'));var config=require(_0xc46f('0x4'));config[_0xc46f('0x5')]=_[_0xc46f('0x6')](config[_0xc46f('0x5')],{'host':_0xc46f('0x7'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config['redis']));function SmsQueue(_0x46315d){this['id']=_0x46315d['id']||0x0;this[_0xc46f('0x8')]=_0x46315d[_0xc46f('0x8')]||'';this[_0xc46f('0x9')]=_0x46315d[_0xc46f('0x9')]||0xa;this[_0xc46f('0xa')]=_0x46315d[_0xc46f('0xa')]||_0xc46f('0xb');this[_0xc46f('0xc')]=_0x46315d[_0xc46f('0xc')];this[_0xc46f('0xd')]={};this[_0xc46f('0xe')]=0x0;this[_0xc46f('0x1')]='';this[_0xc46f('0xf')]();this['updateRealtime']();}SmsQueue[_0xc46f('0x10')][_0xc46f('0xf')]=function(){var _0x32e9fe=this[_0xc46f('0xd')]['_rr'];this['mapAgentsId']=_['map'](this[_0xc46f('0xc')],'id');this[_0xc46f('0xd')]['_rr']=_0x32e9fe;};SmsQueue[_0xc46f('0x10')][_0xc46f('0x11')]=function(){this['loggedIn']=0x0;this['paused']=0x0;for(var _0x1e3575=0x0;_0x1e3575<this[_0xc46f('0xc')][_0xc46f('0x12')];_0x1e3575+=0x1){if(this[_0xc46f('0xc')][_0x1e3575]['online']){this['loggedIn']+=0x1;}if(this['Agents'][_0x1e3575][_0xc46f('0x13')]){this[_0xc46f('0x14')]+=0x1;}}this[_0xc46f('0x15')]=this['loggedIn']-this[_0xc46f('0x14')];this[_0xc46f('0x15')]=this['available']>=0x0?this['available']:0x0;var _0x4740b3={'id':this['id'],'available':this['available'],'loggedIn':this[_0xc46f('0x16')],'name':this[_0xc46f('0x8')],'paused':this[_0xc46f('0x14')],'waiting':this['waiting']};var _0x474af7=md5(JSON[_0xc46f('0x17')](_0x4740b3));if(this[_0xc46f('0x1')]!==_0x474af7){this[_0xc46f('0x1')]=_0x474af7;io['to'](util['format']('sms:queue:%s',_0x4740b3['name']))['emit']('sms_queue:save',_0x4740b3);}};module[_0xc46f('0x18')]=SmsQueue;
\ No newline at end of file
+var _0x0207=['emit','sms_queue:save','exports','md5','../../../config/environment','redis','defaults','localhost','socket.io-emitter','name','timeout','strategy','beepall','Agents','waiting','updateRouting','prototype','mapAgentsId','_rr','updateRealtime','paused','length','online','loggedIn','available','format','sms:queue:%s'];(function(_0x476ec5,_0x5b126f){var _0x163abb=function(_0x18305a){while(--_0x18305a){_0x476ec5['push'](_0x476ec5['shift']());}};_0x163abb(++_0x5b126f);}(_0x0207,0x162));var _0x7020=function(_0x482597,_0x1a57ee){_0x482597=_0x482597-0x0;var _0x1f1884=_0x0207[_0x482597];return _0x1f1884;};'use strict';var _=require('lodash');var md5=require(_0x7020('0x0'));var util=require('util');var Redis=require('ioredis');var config=require(_0x7020('0x1'));config[_0x7020('0x2')]=_[_0x7020('0x3')](config[_0x7020('0x2')],{'host':_0x7020('0x4'),'port':0x18eb});var io=require(_0x7020('0x5'))(new Redis(config[_0x7020('0x2')]));function SmsQueue(_0x5b7cf1){this['id']=_0x5b7cf1['id']||0x0;this['name']=_0x5b7cf1[_0x7020('0x6')]||'';this[_0x7020('0x7')]=_0x5b7cf1[_0x7020('0x7')]||0xa;this[_0x7020('0x8')]=_0x5b7cf1[_0x7020('0x8')]||_0x7020('0x9');this[_0x7020('0xa')]=_0x5b7cf1['Agents'];this['mapAgentsId']={};this[_0x7020('0xb')]=0x0;this[_0x7020('0x0')]='';this[_0x7020('0xc')]();this['updateRealtime']();}SmsQueue[_0x7020('0xd')][_0x7020('0xc')]=function(){var _0x4e16da=this[_0x7020('0xe')][_0x7020('0xf')];this[_0x7020('0xe')]=_['map'](this[_0x7020('0xa')],'id');this[_0x7020('0xe')][_0x7020('0xf')]=_0x4e16da;};SmsQueue[_0x7020('0xd')][_0x7020('0x10')]=function(){this['loggedIn']=0x0;this[_0x7020('0x11')]=0x0;for(var _0x5f5872=0x0;_0x5f5872<this[_0x7020('0xa')][_0x7020('0x12')];_0x5f5872+=0x1){if(this[_0x7020('0xa')][_0x5f5872][_0x7020('0x13')]){this[_0x7020('0x14')]+=0x1;}if(this[_0x7020('0xa')][_0x5f5872]['smsPause']){this[_0x7020('0x11')]+=0x1;}}this['available']=this[_0x7020('0x14')]-this[_0x7020('0x11')];this[_0x7020('0x15')]=this[_0x7020('0x15')]>=0x0?this['available']:0x0;var _0x3d5d25={'id':this['id'],'available':this[_0x7020('0x15')],'loggedIn':this[_0x7020('0x14')],'name':this[_0x7020('0x6')],'paused':this[_0x7020('0x11')],'waiting':this[_0x7020('0xb')]};var _0x59b5d2=md5(JSON['stringify'](_0x3d5d25));if(this[_0x7020('0x0')]!==_0x59b5d2){this[_0x7020('0x0')]=_0x59b5d2;io['to'](util[_0x7020('0x16')](_0x7020('0x17'),_0x3d5d25['name']))[_0x7020('0x18')](_0x7020('0x19'),_0x3d5d25);}};module[_0x7020('0x1a')]=SmsQueue;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6d60=['name','timeout','strategy','beepall','Agents','mapAgentsId','md5','updateRouting','updateRealtime','prototype','_rr','map','paused','length','online','loggedIn','whatsappPause','available','format','whatsapp:queue:%s','emit','exports','lodash','util','ioredis','../../../config/environment','defaults','redis'];(function(_0x25e7cb,_0x3579b7){var _0x375d92=function(_0xe8cf3b){while(--_0xe8cf3b){_0x25e7cb['push'](_0x25e7cb['shift']());}};_0x375d92(++_0x3579b7);}(_0x6d60,0x19e));var _0x06d6=function(_0x9c8b4a,_0x2387ff){_0x9c8b4a=_0x9c8b4a-0x0;var _0x198bef=_0x6d60[_0x9c8b4a];return _0x198bef;};'use strict';var _=require(_0x06d6('0x0'));var md5=require('md5');var util=require(_0x06d6('0x1'));var Redis=require(_0x06d6('0x2'));var config=require(_0x06d6('0x3'));config['redis']=_[_0x06d6('0x4')](config['redis'],{'host':'localhost','port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x06d6('0x5')]));function WhatsappQueue(_0x2acbd9){this['id']=_0x2acbd9['id']||0x0;this[_0x06d6('0x6')]=_0x2acbd9['name']||'';this[_0x06d6('0x7')]=_0x2acbd9[_0x06d6('0x7')]||0xa;this[_0x06d6('0x8')]=_0x2acbd9[_0x06d6('0x8')]||_0x06d6('0x9');this[_0x06d6('0xa')]=_0x2acbd9[_0x06d6('0xa')];this[_0x06d6('0xb')]={};this['waiting']=0x0;this[_0x06d6('0xc')]='';this[_0x06d6('0xd')]();this[_0x06d6('0xe')]();}WhatsappQueue[_0x06d6('0xf')][_0x06d6('0xd')]=function(){var _0x3bd478=this[_0x06d6('0xb')][_0x06d6('0x10')];this[_0x06d6('0xb')]=_[_0x06d6('0x11')](this[_0x06d6('0xa')],'id');this['mapAgentsId']['_rr']=_0x3bd478;};WhatsappQueue[_0x06d6('0xf')]['updateRealtime']=function(){this['loggedIn']=0x0;this[_0x06d6('0x12')]=0x0;for(var _0x191e99=0x0;_0x191e99<this['Agents'][_0x06d6('0x13')];_0x191e99+=0x1){if(this['Agents'][_0x191e99][_0x06d6('0x14')]){this[_0x06d6('0x15')]+=0x1;}if(this[_0x06d6('0xa')][_0x191e99][_0x06d6('0x16')]){this['paused']+=0x1;}}this[_0x06d6('0x17')]=this[_0x06d6('0x15')]-this[_0x06d6('0x12')];this[_0x06d6('0x17')]=this[_0x06d6('0x17')]>=0x0?this['available']:0x0;var _0x27d516={'id':this['id'],'available':this[_0x06d6('0x17')],'loggedIn':this[_0x06d6('0x15')],'name':this[_0x06d6('0x6')],'paused':this['paused'],'waiting':this['waiting']};var _0x47240c=md5(JSON['stringify'](_0x27d516));if(this[_0x06d6('0xc')]!==_0x47240c){this[_0x06d6('0xc')]=_0x47240c;io['to'](util[_0x06d6('0x18')](_0x06d6('0x19'),_0x27d516[_0x06d6('0x6')]))[_0x06d6('0x1a')]('whatsapp_queue:save',_0x27d516);}};module[_0x06d6('0x1b')]=WhatsappQueue;
\ No newline at end of file
+var _0x6749=['updateRealtime','prototype','_rr','map','loggedIn','length','whatsappPause','available','paused','stringify','format','whatsapp:queue:%s','emit','exports','md5','util','ioredis','../../../config/environment','redis','name','timeout','strategy','beepall','Agents','mapAgentsId','waiting','updateRouting'];(function(_0x33c1b1,_0x2355fb){var _0x2c2037=function(_0x1200fd){while(--_0x1200fd){_0x33c1b1['push'](_0x33c1b1['shift']());}};_0x2c2037(++_0x2355fb);}(_0x6749,0xe6));var _0x9674=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x6749[_0x3dd15e];return _0x231fd0;};'use strict';var _=require('lodash');var md5=require(_0x9674('0x0'));var util=require(_0x9674('0x1'));var Redis=require(_0x9674('0x2'));var config=require(_0x9674('0x3'));config[_0x9674('0x4')]=_['defaults'](config[_0x9674('0x4')],{'host':'localhost','port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x9674('0x4')]));function WhatsappQueue(_0x1c8956){this['id']=_0x1c8956['id']||0x0;this[_0x9674('0x5')]=_0x1c8956[_0x9674('0x5')]||'';this[_0x9674('0x6')]=_0x1c8956['timeout']||0xa;this[_0x9674('0x7')]=_0x1c8956[_0x9674('0x7')]||_0x9674('0x8');this[_0x9674('0x9')]=_0x1c8956[_0x9674('0x9')];this[_0x9674('0xa')]={};this[_0x9674('0xb')]=0x0;this[_0x9674('0x0')]='';this[_0x9674('0xc')]();this[_0x9674('0xd')]();}WhatsappQueue[_0x9674('0xe')]['updateRouting']=function(){var _0x27a44e=this[_0x9674('0xa')][_0x9674('0xf')];this[_0x9674('0xa')]=_[_0x9674('0x10')](this[_0x9674('0x9')],'id');this[_0x9674('0xa')][_0x9674('0xf')]=_0x27a44e;};WhatsappQueue['prototype'][_0x9674('0xd')]=function(){this[_0x9674('0x11')]=0x0;this['paused']=0x0;for(var _0x5dad6b=0x0;_0x5dad6b<this['Agents'][_0x9674('0x12')];_0x5dad6b+=0x1){if(this[_0x9674('0x9')][_0x5dad6b]['online']){this['loggedIn']+=0x1;}if(this[_0x9674('0x9')][_0x5dad6b][_0x9674('0x13')]){this['paused']+=0x1;}}this[_0x9674('0x14')]=this[_0x9674('0x11')]-this['paused'];this[_0x9674('0x14')]=this[_0x9674('0x14')]>=0x0?this[_0x9674('0x14')]:0x0;var _0x3432ba={'id':this['id'],'available':this[_0x9674('0x14')],'loggedIn':this['loggedIn'],'name':this[_0x9674('0x5')],'paused':this[_0x9674('0x15')],'waiting':this[_0x9674('0xb')]};var _0x518ecc=md5(JSON[_0x9674('0x16')](_0x3432ba));if(this['md5']!==_0x518ecc){this[_0x9674('0x0')]=_0x518ecc;io['to'](util[_0x9674('0x17')](_0x9674('0x18'),_0x3432ba[_0x9674('0x5')]))[_0x9674('0x19')]('whatsapp_queue:save',_0x3432ba);}};module[_0x9674('0x1a')]=WhatsappQueue;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-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(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0xa9e0,0x123));var _0x0a9e=function(_0x5ddb1c,_0x5ea4df){_0x5ddb1c=_0x5ddb1c-0x0;var _0x354adc=_0xa9e0[_0x5ddb1c];return _0x354adc;};'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
+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(_0x4e1d03,_0x786f3a){_0x4e1d03=_0x4e1d03-0x0;var _0x362d4b=_0xa9e0[_0x4e1d03];return _0x362d4b;};'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 _0x1786=['addTagsToChatInteraction','../client','UpdateChatInteraction','updateChatInteraction','addTags','Request','AddTagsToChatInteraction'];(function(_0xfe9e3d,_0x587758){var _0x33c751=function(_0x3272ee){while(--_0x3272ee){_0xfe9e3d['push'](_0xfe9e3d['shift']());}};_0x33c751(++_0x587758);}(_0x1786,0x17b));var _0x6178=function(_0x4a6a2a,_0x406148){_0x4a6a2a=_0x4a6a2a-0x0;var _0x2cdfc8=_0x1786[_0x4a6a2a];return _0x2cdfc8;};'use strict';var client=require(_0x6178('0x0'));exports['update']=function(_0x55a39c,_0x492b35){return client['Request'](_0x6178('0x1'),{'body':_0x492b35,'options':{'where':{'id':_0x55a39c}},'log':_0x6178('0x2')});};exports[_0x6178('0x3')]=function(_0x450efe,_0x4089a7){return client[_0x6178('0x4')](_0x6178('0x5'),{'body':_0x4089a7,'options':{'where':{'id':_0x450efe}},'log':_0x6178('0x6')});};
\ No newline at end of file
+var _0x7e99=['update','Request','UpdateChatInteraction','addTags','AddTagsToChatInteraction','../client'];(function(_0x2e0dc0,_0x5d7eb4){var _0x47b104=function(_0x582b45){while(--_0x582b45){_0x2e0dc0['push'](_0x2e0dc0['shift']());}};_0x47b104(++_0x5d7eb4);}(_0x7e99,0x1a3));var _0x97e9=function(_0x5b27da,_0x4a6532){_0x5b27da=_0x5b27da-0x0;var _0x3254f4=_0x7e99[_0x5b27da];return _0x3254f4;};'use strict';var client=require(_0x97e9('0x0'));exports[_0x97e9('0x1')]=function(_0xbb13c8,_0x3e0b55){return client[_0x97e9('0x2')](_0x97e9('0x3'),{'body':_0x3e0b55,'options':{'where':{'id':_0xbb13c8}},'log':'updateChatInteraction'});};exports[_0x97e9('0x4')]=function(_0x2f0f1d,_0x4b53af){return client[_0x97e9('0x2')](_0x97e9('0x5'),{'body':_0x4b53af,'options':{'where':{'id':_0x2f0f1d}},'log':'addTagsToChatInteraction'});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdeeb=['createChatMessage','../client','Request','CreateChatMessage'];(function(_0xcf22a8,_0x35d51c){var _0x1137eb=function(_0x22bdf6){while(--_0x22bdf6){_0xcf22a8['push'](_0xcf22a8['shift']());}};_0x1137eb(++_0x35d51c);}(_0xdeeb,0x105));var _0xbdee=function(_0x47fd36,_0x41535d){_0x47fd36=_0x47fd36-0x0;var _0x21a0fc=_0xdeeb[_0x47fd36];return _0x21a0fc;};'use strict';var client=require(_0xbdee('0x0'));exports['create']=function(_0x2ae8dd){return client[_0xbdee('0x1')](_0xbdee('0x2'),{'body':_0x2ae8dd,'log':_0xbdee('0x3')});};
\ No newline at end of file
+var _0x7ecd=['CreateChatMessage','../client','create','Request'];(function(_0x465a0c,_0x19d4d5){var _0x1e202e=function(_0x27bd8a){while(--_0x27bd8a){_0x465a0c['push'](_0x465a0c['shift']());}};_0x1e202e(++_0x19d4d5);}(_0x7ecd,0xc9));var _0xd7ec=function(_0xe4b4b9,_0x5a977c){_0xe4b4b9=_0xe4b4b9-0x0;var _0x8c6170=_0x7ecd[_0xe4b4b9];return _0x8c6170;};'use strict';var client=require(_0xd7ec('0x0'));exports[_0xd7ec('0x1')]=function(_0x23c9b4){return client[_0xd7ec('0x2')](_0xd7ec('0x3'),{'body':_0x23c9b4,'log':'createChatMessage'});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x54da=['Agents','name','online','../client','Request','timeout','User'];(function(_0xa9a245,_0x2a0387){var _0x2d0eaa=function(_0x2bba86){while(--_0x2bba86){_0xa9a245['push'](_0xa9a245['shift']());}};_0x2d0eaa(++_0x2a0387);}(_0x54da,0x9d));var _0xa54d=function(_0x2a0a38,_0x4a6de5){_0x2a0a38=_0x2a0a38-0x0;var _0x4a200e=_0x54da[_0x2a0a38];return _0x4a200e;};'use strict';var client=require(_0xa54d('0x0'));exports['getChatQueues']=function(){return function(){return client[_0xa54d('0x1')]('GetChatQueue',{'options':{'raw':![],'attributes':['id','name',_0xa54d('0x2'),'strategy'],'include':[{'model':_0xa54d('0x3'),'as':_0xa54d('0x4'),'attributes':['id',_0xa54d('0x5'),_0xa54d('0x6'),'chatPause']}]},'log':'getChatQueues'});};};
\ No newline at end of file
+var _0xa63f=['GetChatQueue','name','timeout','strategy','User','Agents','../client','getChatQueues','Request'];(function(_0x37be37,_0x191fc3){var _0x3f94f7=function(_0x5c2cac){while(--_0x5c2cac){_0x37be37['push'](_0x37be37['shift']());}};_0x3f94f7(++_0x191fc3);}(_0xa63f,0x1b6));var _0xfa63=function(_0x37d3f3,_0xca010f){_0x37d3f3=_0x37d3f3-0x0;var _0x185c9c=_0xa63f[_0x37d3f3];return _0x185c9c;};'use strict';var client=require(_0xfa63('0x0'));exports[_0xfa63('0x1')]=function(){return function(){return client[_0xfa63('0x2')](_0xfa63('0x3'),{'options':{'raw':![],'attributes':['id',_0xfa63('0x4'),_0xfa63('0x5'),_0xfa63('0x6')],'include':[{'model':_0xfa63('0x7'),'as':_0xfa63('0x8'),'attributes':['id',_0xfa63('0x4'),'online','chatPause']}]},'log':_0xfa63('0x1')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0e9f=['CreateChatQueueReport','UpdateChatQueueReport','DESC','../client','create'];(function(_0x3e44fa,_0x75ed2a){var _0x2a0aba=function(_0x1db6a7){while(--_0x1db6a7){_0x3e44fa['push'](_0x3e44fa['shift']());}};_0x2a0aba(++_0x75ed2a);}(_0x0e9f,0x116));var _0xf0e9=function(_0x4e060c,_0x249487){_0x4e060c=_0x4e060c-0x0;var _0x3cee97=_0x0e9f[_0x4e060c];return _0x3cee97;};'use strict';var client=require(_0xf0e9('0x0'));exports[_0xf0e9('0x1')]=function(_0x5c81a4){return client['Request'](_0xf0e9('0x2'),{'body':_0x5c81a4,'log':'CreateChatQueueReport'});};exports['update']=function(_0x2d2d99,_0x559cad){return client['Request'](_0xf0e9('0x3'),{'body':_0x559cad,'options':{'where':{'uniqueid':_0x2d2d99},'order':[['id',_0xf0e9('0x4')]],'limit':0x1},'log':'UpdateChatQueueReport'});};
\ No newline at end of file
+var _0x92f0=['CreateChatQueueReport','Request','UpdateChatQueueReport','DESC','create'];(function(_0x4154a6,_0x2c0b8e){var _0x3b2786=function(_0x2f5936){while(--_0x2f5936){_0x4154a6['push'](_0x4154a6['shift']());}};_0x3b2786(++_0x2c0b8e);}(_0x92f0,0x10d));var _0x092f=function(_0x17823f,_0xffd807){_0x17823f=_0x17823f-0x0;var _0x51fc21=_0x92f0[_0x17823f];return _0x51fc21;};'use strict';var client=require('../client');exports[_0x092f('0x0')]=function(_0x209c83){return client['Request'](_0x092f('0x1'),{'body':_0x209c83,'log':_0x092f('0x1')});};exports['update']=function(_0x47f54d,_0x16bf0b){return client[_0x092f('0x2')](_0x092f('0x3'),{'body':_0x16bf0b,'options':{'where':{'uniqueid':_0x47f54d},'order':[['id',_0x092f('0x4')]],'limit':0x1},'log':_0x092f('0x3')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9957=['Request','AddTagsToFaxInteraction','addTagsToFaxInteraction','../client','update','UpdateFaxInteraction','updateFaxInteraction','addTags'];(function(_0x4b0e62,_0x1dbe6f){var _0x48343c=function(_0x80db4f){while(--_0x80db4f){_0x4b0e62['push'](_0x4b0e62['shift']());}};_0x48343c(++_0x1dbe6f);}(_0x9957,0x93));var _0x7995=function(_0x19e35c,_0x29cd1e){_0x19e35c=_0x19e35c-0x0;var _0x3e1fe8=_0x9957[_0x19e35c];return _0x3e1fe8;};'use strict';var client=require(_0x7995('0x0'));exports[_0x7995('0x1')]=function(_0x2722a3,_0x10a05d){return client['Request'](_0x7995('0x2'),{'body':_0x10a05d,'options':{'where':{'id':_0x2722a3}},'log':_0x7995('0x3')});};exports[_0x7995('0x4')]=function(_0x462a03,_0x576d89){return client[_0x7995('0x5')](_0x7995('0x6'),{'body':_0x576d89,'options':{'where':{'id':_0x462a03}},'log':_0x7995('0x7')});};
\ No newline at end of file
+var _0x7a54=['Request','UpdateFaxInteraction','addTags','AddTagsToFaxInteraction','../client','update'];(function(_0xa2b098,_0x461a08){var _0x29502e=function(_0x43291a){while(--_0x43291a){_0xa2b098['push'](_0xa2b098['shift']());}};_0x29502e(++_0x461a08);}(_0x7a54,0x106));var _0x47a5=function(_0x4407ff,_0x1678d5){_0x4407ff=_0x4407ff-0x0;var _0x44db18=_0x7a54[_0x4407ff];return _0x44db18;};'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 _0x1361=['create','Request','CreateFaxMessage'];(function(_0x4dc324,_0x2901b1){var _0x32b68b=function(_0x3f2a0b){while(--_0x3f2a0b){_0x4dc324['push'](_0x4dc324['shift']());}};_0x32b68b(++_0x2901b1);}(_0x1361,0x75));var _0x1136=function(_0x117b1e,_0x1d385a){_0x117b1e=_0x117b1e-0x0;var _0x31ec2f=_0x1361[_0x117b1e];return _0x31ec2f;};'use strict';var client=require('../client');exports[_0x1136('0x0')]=function(_0x17bf4a){return client[_0x1136('0x1')](_0x1136('0x2'),{'body':_0x17bf4a,'log':'createFaxMessage'});};
\ No newline at end of file
+var _0xd0c2=['createFaxMessage','../client','Request'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xd0c2,0x187));var _0x2d0c=function(_0x2343b2,_0x375387){_0x2343b2=_0x2343b2-0x0;var _0x4d843d=_0xd0c2[_0x2343b2];return _0x4d843d;};'use strict';var client=require(_0x2d0c('0x0'));exports['create']=function(_0x3e071d){return client[_0x2d0c('0x1')]('CreateFaxMessage',{'body':_0x3e071d,'log':_0x2d0c('0x2')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9e7d=['User','Agents','online','faxPause','../client','getFaxQueues','name','timeout','strategy'];(function(_0x3de9d7,_0x231dcd){var _0x511165=function(_0x3eeb74){while(--_0x3eeb74){_0x3de9d7['push'](_0x3de9d7['shift']());}};_0x511165(++_0x231dcd);}(_0x9e7d,0x100));var _0xd9e7=function(_0x5bce6d,_0x3d3b72){_0x5bce6d=_0x5bce6d-0x0;var _0x4ee73c=_0x9e7d[_0x5bce6d];return _0x4ee73c;};'use strict';var client=require(_0xd9e7('0x0'));exports[_0xd9e7('0x1')]=function(){return function(){return client['Request']('GetFaxQueue',{'options':{'raw':![],'attributes':['id',_0xd9e7('0x2'),_0xd9e7('0x3'),_0xd9e7('0x4')],'include':[{'model':_0xd9e7('0x5'),'as':_0xd9e7('0x6'),'attributes':['id',_0xd9e7('0x2'),_0xd9e7('0x7'),_0xd9e7('0x8')]}]},'log':'getFaxQueues'});};};
\ No newline at end of file
+var _0x91d5=['Request','GetFaxQueue','timeout','User','Agents','name','online','faxPause','../client'];(function(_0x51b6bb,_0x4e52a5){var _0x1b477f=function(_0x146643){while(--_0x146643){_0x51b6bb['push'](_0x51b6bb['shift']());}};_0x1b477f(++_0x4e52a5);}(_0x91d5,0x1c1));var _0x591d=function(_0x53fc6d,_0x5f0e87){_0x53fc6d=_0x53fc6d-0x0;var _0x41b6bd=_0x91d5[_0x53fc6d];return _0x41b6bd;};'use strict';var client=require(_0x591d('0x0'));exports['getFaxQueues']=function(){return function(){return client[_0x591d('0x1')](_0x591d('0x2'),{'options':{'raw':![],'attributes':['id','name',_0x591d('0x3'),'strategy'],'include':[{'model':_0x591d('0x4'),'as':_0x591d('0x5'),'attributes':['id',_0x591d('0x6'),_0x591d('0x7'),_0x591d('0x8')]}]},'log':'getFaxQueues'});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc460=['UpdateFaxQueueReport','DESC','../client','create','Request','CreateFaxQueueReport'];(function(_0x376b45,_0x5964fb){var _0x2341b3=function(_0x5a7f01){while(--_0x5a7f01){_0x376b45['push'](_0x376b45['shift']());}};_0x2341b3(++_0x5964fb);}(_0xc460,0x14c));var _0x0c46=function(_0x35c8db,_0x3f3166){_0x35c8db=_0x35c8db-0x0;var _0x464437=_0xc460[_0x35c8db];return _0x464437;};'use strict';var client=require(_0x0c46('0x0'));exports[_0x0c46('0x1')]=function(_0x2842df){return client[_0x0c46('0x2')](_0x0c46('0x3'),{'body':_0x2842df,'log':_0x0c46('0x3')});};exports['update']=function(_0x3e746b,_0x585c95){return client[_0x0c46('0x2')](_0x0c46('0x4'),{'body':_0x585c95,'options':{'where':{'uniqueid':_0x3e746b},'order':[['id',_0x0c46('0x5')]],'limit':0x1},'log':_0x0c46('0x4')});};
\ No newline at end of file
+var _0xb85c=['UpdateFaxQueueReport','create','Request','CreateFaxQueueReport','update','DESC'];(function(_0x12d20a,_0x476390){var _0x2cb413=function(_0xcb2192){while(--_0xcb2192){_0x12d20a['push'](_0x12d20a['shift']());}};_0x2cb413(++_0x476390);}(_0xb85c,0x1db));var _0xcb85=function(_0x3ea913,_0x255df2){_0x3ea913=_0x3ea913-0x0;var _0x2b4f28=_0xb85c[_0x3ea913];return _0x2b4f28;};'use strict';var client=require('../client');exports[_0xcb85('0x0')]=function(_0x15fb24){return client[_0xcb85('0x1')](_0xcb85('0x2'),{'body':_0x15fb24,'log':_0xcb85('0x2')});};exports[_0xcb85('0x3')]=function(_0x33d51c,_0x268a10){return client['Request']('UpdateFaxQueueReport',{'body':_0x268a10,'options':{'where':{'uniqueid':_0x33d51c},'order':[['id',_0xcb85('0x4')]],'limit':0x1},'log':_0xcb85('0x5')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0d24=['Request','GetInterval','name','Interval','Intervals','interval','getIntervals','../client'];(function(_0x3f6fb6,_0x2c5a6f){var _0x440c87=function(_0x2389c4){while(--_0x2389c4){_0x3f6fb6['push'](_0x3f6fb6['shift']());}};_0x440c87(++_0x2c5a6f);}(_0x0d24,0x1b7));var _0x40d2=function(_0x20c225,_0x2d8e24){_0x20c225=_0x20c225-0x0;var _0x203296=_0x0d24[_0x20c225];return _0x203296;};'use strict';var client=require(_0x40d2('0x0'));exports['getIntervals']=function(){return function(){return client[_0x40d2('0x1')](_0x40d2('0x2'),{'options':{'raw':![],'where':{'IntervalId':null},'attributes':['id',_0x40d2('0x3')],'include':[{'model':_0x40d2('0x4'),'as':_0x40d2('0x5'),'attributes':['id','name',_0x40d2('0x6')]}]},'log':_0x40d2('0x7')});};};
\ No newline at end of file
+var _0x0682=['Intervals','interval','../client','getIntervals','GetInterval','name','Interval'];(function(_0x2c1b3e,_0x4ecbdf){var _0x444a0c=function(_0x4d1ad8){while(--_0x4d1ad8){_0x2c1b3e['push'](_0x2c1b3e['shift']());}};_0x444a0c(++_0x4ecbdf);}(_0x0682,0x8e));var _0x2068=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x0682[_0x3dd15e];return _0x231fd0;};'use strict';var client=require(_0x2068('0x0'));exports[_0x2068('0x1')]=function(){return function(){return client['Request'](_0x2068('0x2'),{'options':{'raw':![],'where':{'IntervalId':null},'attributes':['id',_0x2068('0x3')],'include':[{'model':_0x2068('0x4'),'as':_0x2068('0x5'),'attributes':['id',_0x2068('0x3'),_0x2068('0x6')]}]},'log':_0x2068('0x1')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x958a=['../client','update','Request','UpdateMailInteraction','updateMailInteraction','addTags','AddTagsToMailInteraction','addTagsToChatInteraction'];(function(_0x585252,_0x34b633){var _0x10c229=function(_0x578042){while(--_0x578042){_0x585252['push'](_0x585252['shift']());}};_0x10c229(++_0x34b633);}(_0x958a,0x128));var _0xa958=function(_0x4bf165,_0xb73b61){_0x4bf165=_0x4bf165-0x0;var _0x3c8426=_0x958a[_0x4bf165];return _0x3c8426;};'use strict';var client=require(_0xa958('0x0'));exports[_0xa958('0x1')]=function(_0x519e66,_0x44a925){return client[_0xa958('0x2')](_0xa958('0x3'),{'body':_0x44a925,'options':{'where':{'id':_0x519e66}},'log':_0xa958('0x4')});};exports[_0xa958('0x5')]=function(_0x5194f8,_0x3424b0){return client['Request'](_0xa958('0x6'),{'body':_0x3424b0,'options':{'where':{'id':_0x5194f8}},'log':_0xa958('0x7')});};
\ No newline at end of file
+var _0x1399=['UpdateMailInteraction','updateMailInteraction','addTags','Request','../client','update'];(function(_0x3a0595,_0x1fc441){var _0x374f04=function(_0x1e93c9){while(--_0x1e93c9){_0x3a0595['push'](_0x3a0595['shift']());}};_0x374f04(++_0x1fc441);}(_0x1399,0x16c));var _0x9139=function(_0x305db9,_0x18812a){_0x305db9=_0x305db9-0x0;var _0x1c927d=_0x1399[_0x305db9];return _0x1c927d;};'use strict';var client=require(_0x9139('0x0'));exports[_0x9139('0x1')]=function(_0x5740a9,_0x474911){return client['Request'](_0x9139('0x2'),{'body':_0x474911,'options':{'where':{'id':_0x5740a9}},'log':_0x9139('0x3')});};exports[_0x9139('0x4')]=function(_0x28f155,_0x251798){return client[_0x9139('0x5')]('AddTagsToMailInteraction',{'body':_0x251798,'options':{'where':{'id':_0x28f155}},'log':'addTagsToChatInteraction'});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa4ad=['createMailMessage','../client','create'];(function(_0x3fb43f,_0x1b2ee7){var _0x59d17f=function(_0x53eccd){while(--_0x53eccd){_0x3fb43f['push'](_0x3fb43f['shift']());}};_0x59d17f(++_0x1b2ee7);}(_0xa4ad,0xb8));var _0xda4a=function(_0x46428c,_0x20ab75){_0x46428c=_0x46428c-0x0;var _0x16a677=_0xa4ad[_0x46428c];return _0x16a677;};'use strict';var client=require(_0xda4a('0x0'));exports[_0xda4a('0x1')]=function(_0x269919){return client['Request']('CreateMailMessage',{'body':_0x269919,'log':_0xda4a('0x2')});};
\ No newline at end of file
+var _0xcbf2=['Request','CreateMailMessage','createMailMessage'];(function(_0x3732ac,_0x1ff4d2){var _0x50aae6=function(_0x5179b2){while(--_0x5179b2){_0x3732ac['push'](_0x3732ac['shift']());}};_0x50aae6(++_0x1ff4d2);}(_0xcbf2,0x1c8));var _0x2cbf=function(_0x45bd8e,_0x379cfb){_0x45bd8e=_0x45bd8e-0x0;var _0x58b7d6=_0xcbf2[_0x45bd8e];return _0x58b7d6;};'use strict';var client=require('../client');exports['create']=function(_0x556a8c){return client[_0x2cbf('0x0')](_0x2cbf('0x1'),{'body':_0x556a8c,'log':_0x2cbf('0x2')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x626d=['name','online','getMailQueues','../client','timeout','Agents'];(function(_0x3757bb,_0x388cbb){var _0x526c53=function(_0x9378a6){while(--_0x9378a6){_0x3757bb['push'](_0x3757bb['shift']());}};_0x526c53(++_0x388cbb);}(_0x626d,0x15f));var _0xd626=function(_0x331f5f,_0x3dcf97){_0x331f5f=_0x331f5f-0x0;var _0x5dbc4b=_0x626d[_0x331f5f];return _0x5dbc4b;};'use strict';var client=require(_0xd626('0x0'));exports['getMailQueues']=function(){return function(){return client['Request']('GetMailQueue',{'options':{'raw':![],'attributes':['id','name',_0xd626('0x1'),'strategy'],'include':[{'model':'User','as':_0xd626('0x2'),'attributes':['id',_0xd626('0x3'),_0xd626('0x4'),'mailPause']}]},'log':_0xd626('0x5')});};};
\ No newline at end of file
+var _0xcb0f=['online','mailPause','../client','getMailQueues','GetMailQueue','name','timeout','User','Agents'];(function(_0x1d4c7c,_0x362f9b){var _0x3f73f8=function(_0x393832){while(--_0x393832){_0x1d4c7c['push'](_0x1d4c7c['shift']());}};_0x3f73f8(++_0x362f9b);}(_0xcb0f,0x9b));var _0xfcb0=function(_0x1d292b,_0x55c638){_0x1d292b=_0x1d292b-0x0;var _0x6e8a54=_0xcb0f[_0x1d292b];return _0x6e8a54;};'use strict';var client=require(_0xfcb0('0x0'));exports[_0xfcb0('0x1')]=function(){return function(){return client['Request'](_0xfcb0('0x2'),{'options':{'raw':![],'attributes':['id',_0xfcb0('0x3'),_0xfcb0('0x4'),'strategy'],'include':[{'model':_0xfcb0('0x5'),'as':_0xfcb0('0x6'),'attributes':['id',_0xfcb0('0x3'),_0xfcb0('0x7'),_0xfcb0('0x8')]}]},'log':_0xfcb0('0x1')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb9e8=['Request','UpdateMailQueueReport','DESC','CreateMailQueueReport'];(function(_0x404be0,_0x27d5f7){var _0x1d9265=function(_0xe8b7a8){while(--_0xe8b7a8){_0x404be0['push'](_0x404be0['shift']());}};_0x1d9265(++_0x27d5f7);}(_0xb9e8,0xbb));var _0x8b9e=function(_0xd307d9,_0x50e8e0){_0xd307d9=_0xd307d9-0x0;var _0x209bf8=_0xb9e8[_0xd307d9];return _0x209bf8;};'use strict';var client=require('../client');exports['create']=function(_0x5bbdf5){return client['Request'](_0x8b9e('0x0'),{'body':_0x5bbdf5,'log':'CreateMailQueueReport'});};exports['update']=function(_0x35375f,_0x5a5033){return client[_0x8b9e('0x1')](_0x8b9e('0x2'),{'body':_0x5a5033,'options':{'where':{'uniqueid':_0x35375f},'order':[['id',_0x8b9e('0x3')]],'limit':0x1},'log':_0x8b9e('0x2')});};
\ No newline at end of file
+var _0x47d7=['Request','DESC','UpdateMailQueueReport','../client','CreateMailQueueReport','update'];(function(_0x40f352,_0x199b59){var _0x4d49b0=function(_0x1aa6ac){while(--_0x1aa6ac){_0x40f352['push'](_0x40f352['shift']());}};_0x4d49b0(++_0x199b59);}(_0x47d7,0xed));var _0x747d=function(_0x84c5c5,_0x45ce4e){_0x84c5c5=_0x84c5c5-0x0;var _0x515f35=_0x47d7[_0x84c5c5];return _0x515f35;};'use strict';var client=require(_0x747d('0x0'));exports['create']=function(_0x5eabb6){return client['Request'](_0x747d('0x1'),{'body':_0x5eabb6,'log':_0x747d('0x1')});};exports[_0x747d('0x2')]=function(_0x3417cb,_0x391a2c){return client[_0x747d('0x3')]('UpdateMailQueueReport',{'body':_0x391a2c,'options':{'where':{'uniqueid':_0x3417cb},'order':[['id',_0x747d('0x4')]],'limit':0x1},'log':_0x747d('0x5')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xafdc=['AddTagsToOpenchannelInteraction','../client','update','Request','UpdateOpenchannelInteraction','updateOpenchannelInteraction','addTags'];(function(_0x44d744,_0x5ac82b){var _0x47d404=function(_0x3366a7){while(--_0x3366a7){_0x44d744['push'](_0x44d744['shift']());}};_0x47d404(++_0x5ac82b);}(_0xafdc,0xc5));var _0xcafd=function(_0x48c84d,_0x217c48){_0x48c84d=_0x48c84d-0x0;var _0x46e9ab=_0xafdc[_0x48c84d];return _0x46e9ab;};'use strict';var client=require(_0xcafd('0x0'));exports[_0xcafd('0x1')]=function(_0x73b226,_0x90959b){return client[_0xcafd('0x2')](_0xcafd('0x3'),{'body':_0x90959b,'options':{'where':{'id':_0x73b226}},'log':_0xcafd('0x4')});};exports[_0xcafd('0x5')]=function(_0x9a2976,_0xdc70b0){return client[_0xcafd('0x2')](_0xcafd('0x6'),{'body':_0xdc70b0,'options':{'where':{'id':_0x9a2976}},'log':'addTagsToChatInteraction'});};
\ No newline at end of file
+var _0x4d79=['../client','update','Request','UpdateOpenchannelInteraction','updateOpenchannelInteraction','addTags','AddTagsToOpenchannelInteraction','addTagsToChatInteraction'];(function(_0x33637d,_0x337ba8){var _0x28f6d4=function(_0x198a39){while(--_0x198a39){_0x33637d['push'](_0x33637d['shift']());}};_0x28f6d4(++_0x337ba8);}(_0x4d79,0x138));var _0x94d7=function(_0x524ce0,_0x3670b2){_0x524ce0=_0x524ce0-0x0;var _0x38299f=_0x4d79[_0x524ce0];return _0x38299f;};'use strict';var client=require(_0x94d7('0x0'));exports[_0x94d7('0x1')]=function(_0x12b9f3,_0x4f19fd){return client[_0x94d7('0x2')](_0x94d7('0x3'),{'body':_0x4f19fd,'options':{'where':{'id':_0x12b9f3}},'log':_0x94d7('0x4')});};exports[_0x94d7('0x5')]=function(_0x47ffb1,_0xdd8afe){return client[_0x94d7('0x2')](_0x94d7('0x6'),{'body':_0xdd8afe,'options':{'where':{'id':_0x47ffb1}},'log':_0x94d7('0x7')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc6c6=['../client','CreateOpenchannelMessage'];(function(_0x245dbc,_0x33b2f9){var _0x17a640=function(_0x17d734){while(--_0x17d734){_0x245dbc['push'](_0x245dbc['shift']());}};_0x17a640(++_0x33b2f9);}(_0xc6c6,0x102));var _0x6c6c=function(_0x115d5b,_0x26aff2){_0x115d5b=_0x115d5b-0x0;var _0x6cfc50=_0xc6c6[_0x115d5b];return _0x6cfc50;};'use strict';var client=require(_0x6c6c('0x0'));exports['create']=function(_0x283a9b){return client['Request'](_0x6c6c('0x1'),{'body':_0x283a9b,'log':'createOpenchannelMessage'});};
\ No newline at end of file
+var _0x0d0b=['Request','createOpenchannelMessage'];(function(_0x3cb613,_0x1c436b){var _0x4e134a=function(_0x352e0f){while(--_0x352e0f){_0x3cb613['push'](_0x3cb613['shift']());}};_0x4e134a(++_0x1c436b);}(_0x0d0b,0x120));var _0xb0d0=function(_0x5bf181,_0x50c830){_0x5bf181=_0x5bf181-0x0;var _0x5b99ed=_0x0d0b[_0x5bf181];return _0x5b99ed;};'use strict';var client=require('../client');exports['create']=function(_0x1573a4){return client[_0xb0d0('0x0')]('CreateOpenchannelMessage',{'body':_0x1573a4,'log':_0xb0d0('0x1')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2098=['Agents','online','getOpenchannelQueues','Request','name','strategy'];(function(_0x4c0280,_0x4f9a28){var _0x110b86=function(_0x1a7a96){while(--_0x1a7a96){_0x4c0280['push'](_0x4c0280['shift']());}};_0x110b86(++_0x4f9a28);}(_0x2098,0x146));var _0x8209=function(_0x28dfc5,_0x5702fb){_0x28dfc5=_0x28dfc5-0x0;var _0xc0e76=_0x2098[_0x28dfc5];return _0xc0e76;};'use strict';var client=require('../client');exports[_0x8209('0x0')]=function(){return function(){return client[_0x8209('0x1')]('GetOpenchannelQueue',{'options':{'raw':![],'attributes':['id',_0x8209('0x2'),'timeout',_0x8209('0x3')],'include':[{'model':'User','as':_0x8209('0x4'),'attributes':['id',_0x8209('0x2'),_0x8209('0x5'),'openchannelPause']}]},'log':_0x8209('0x0')});};};
\ No newline at end of file
+var _0x8add=['openchannelPause','getOpenchannelQueues','Request','GetOpenchannelQueue','name','timeout'];(function(_0x77f48e,_0xda04c){var _0x1d8cd2=function(_0x490ac8){while(--_0x490ac8){_0x77f48e['push'](_0x77f48e['shift']());}};_0x1d8cd2(++_0xda04c);}(_0x8add,0xd9));var _0xd8ad=function(_0x2a3815,_0x1c6323){_0x2a3815=_0x2a3815-0x0;var _0x46e7db=_0x8add[_0x2a3815];return _0x46e7db;};'use strict';var client=require('../client');exports[_0xd8ad('0x0')]=function(){return function(){return client[_0xd8ad('0x1')](_0xd8ad('0x2'),{'options':{'raw':![],'attributes':['id',_0xd8ad('0x3'),_0xd8ad('0x4'),'strategy'],'include':[{'model':'User','as':'Agents','attributes':['id',_0xd8ad('0x3'),'online',_0xd8ad('0x5')]}]},'log':_0xd8ad('0x0')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7fff=['UpdateOpenchannelQueueReport','DESC','../client','create','Request','CreateOpenchannelQueueReport','update'];(function(_0x647ae3,_0x274772){var _0x231f37=function(_0x1234a2){while(--_0x1234a2){_0x647ae3['push'](_0x647ae3['shift']());}};_0x231f37(++_0x274772);}(_0x7fff,0x1a6));var _0xf7ff=function(_0x3dfcd7,_0x205ec4){_0x3dfcd7=_0x3dfcd7-0x0;var _0x39b1d2=_0x7fff[_0x3dfcd7];return _0x39b1d2;};'use strict';var client=require(_0xf7ff('0x0'));exports[_0xf7ff('0x1')]=function(_0x568f44){return client[_0xf7ff('0x2')](_0xf7ff('0x3'),{'body':_0x568f44,'log':_0xf7ff('0x3')});};exports[_0xf7ff('0x4')]=function(_0x5c9036,_0x383f70){return client[_0xf7ff('0x2')](_0xf7ff('0x5'),{'body':_0x383f70,'options':{'where':{'uniqueid':_0x5c9036},'order':[['id',_0xf7ff('0x6')]],'limit':0x1},'log':'UpdateOpenchannelQueueReport'});};
\ No newline at end of file
+var _0xda11=['DESC','Request','CreateOpenchannelQueueReport','UpdateOpenchannelQueueReport'];(function(_0x438be6,_0x36b48e){var _0x29466e=function(_0x344164){while(--_0x344164){_0x438be6['push'](_0x438be6['shift']());}};_0x29466e(++_0x36b48e);}(_0xda11,0x185));var _0x1da1=function(_0x4ee292,_0x434dde){_0x4ee292=_0x4ee292-0x0;var _0x237782=_0xda11[_0x4ee292];return _0x237782;};'use strict';var client=require('../client');exports['create']=function(_0x1d87a8){return client[_0x1da1('0x0')](_0x1da1('0x1'),{'body':_0x1d87a8,'log':_0x1da1('0x1')});};exports['update']=function(_0x21d91a,_0xc6e60a){return client['Request'](_0x1da1('0x2'),{'body':_0xc6e60a,'options':{'where':{'uniqueid':_0x21d91a},'order':[['id',_0x1da1('0x3')]],'limit':0x1},'log':_0x1da1('0x2')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd04b=['addTags','AddTagsToSmsInteraction','addTagsToSmsInteraction','../client','update','Request','updateSmsInteraction'];(function(_0x379e62,_0x2a8642){var _0x2f8b20=function(_0x2fec08){while(--_0x2fec08){_0x379e62['push'](_0x379e62['shift']());}};_0x2f8b20(++_0x2a8642);}(_0xd04b,0x145));var _0xbd04=function(_0x565ee7,_0x432199){_0x565ee7=_0x565ee7-0x0;var _0x33a9c1=_0xd04b[_0x565ee7];return _0x33a9c1;};'use strict';var client=require(_0xbd04('0x0'));exports[_0xbd04('0x1')]=function(_0x4775e2,_0x5186f0){return client[_0xbd04('0x2')]('UpdateSmsInteraction',{'body':_0x5186f0,'options':{'where':{'id':_0x4775e2}},'log':_0xbd04('0x3')});};exports[_0xbd04('0x4')]=function(_0xc1c02f,_0xe948b3){return client[_0xbd04('0x2')](_0xbd04('0x5'),{'body':_0xe948b3,'options':{'where':{'id':_0xc1c02f}},'log':_0xbd04('0x6')});};
\ No newline at end of file
+var _0xf842=['update','UpdateSmsInteraction','updateSmsInteraction','addTags','AddTagsToSmsInteraction','addTagsToSmsInteraction','../client'];(function(_0x23a1db,_0x33dde3){var _0xf13e61=function(_0xcd00e2){while(--_0xcd00e2){_0x23a1db['push'](_0x23a1db['shift']());}};_0xf13e61(++_0x33dde3);}(_0xf842,0x172));var _0x2f84=function(_0x119705,_0xba9427){_0x119705=_0x119705-0x0;var _0x2affc2=_0xf842[_0x119705];return _0x2affc2;};'use strict';var client=require(_0x2f84('0x0'));exports[_0x2f84('0x1')]=function(_0x321f83,_0x1d6d4a){return client['Request'](_0x2f84('0x2'),{'body':_0x1d6d4a,'options':{'where':{'id':_0x321f83}},'log':_0x2f84('0x3')});};exports[_0x2f84('0x4')]=function(_0x7a421d,_0x2bba5b){return client['Request'](_0x2f84('0x5'),{'body':_0x2bba5b,'options':{'where':{'id':_0x7a421d}},'log':_0x2f84('0x6')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc59f=['Request','createSmsMessage','create'];(function(_0x12ac2b,_0x48f8e9){var _0x3ccde0=function(_0x20a362){while(--_0x20a362){_0x12ac2b['push'](_0x12ac2b['shift']());}};_0x3ccde0(++_0x48f8e9);}(_0xc59f,0xda));var _0xfc59=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xc59f[_0x3dd15e];return _0x231fd0;};'use strict';var client=require('../client');exports[_0xfc59('0x0')]=function(_0x531598){return client[_0xfc59('0x1')]('CreateSmsMessage',{'body':_0x531598,'log':_0xfc59('0x2')});};
\ No newline at end of file
+var _0x9a83=['../client','create','Request','CreateSmsMessage','createSmsMessage'];(function(_0x263a74,_0xc31414){var _0x2aa86c=function(_0x382896){while(--_0x382896){_0x263a74['push'](_0x263a74['shift']());}};_0x2aa86c(++_0xc31414);}(_0x9a83,0x168));var _0x39a8=function(_0x233cb1,_0x8ca9a2){_0x233cb1=_0x233cb1-0x0;var _0x29ee7e=_0x9a83[_0x233cb1];return _0x29ee7e;};'use strict';var client=require(_0x39a8('0x0'));exports[_0x39a8('0x1')]=function(_0x2643c4){return client[_0x39a8('0x2')](_0x39a8('0x3'),{'body':_0x2643c4,'log':_0x39a8('0x4')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcb91=['smsPause','Request','GetSmsQueue','name','timeout','User','Agents','online'];(function(_0x5d7387,_0x88ca34){var _0x5904bc=function(_0x51eb6f){while(--_0x51eb6f){_0x5d7387['push'](_0x5d7387['shift']());}};_0x5904bc(++_0x88ca34);}(_0xcb91,0x1a9));var _0x1cb9=function(_0x19e928,_0x26a0e4){_0x19e928=_0x19e928-0x0;var _0x4e941f=_0xcb91[_0x19e928];return _0x4e941f;};'use strict';var client=require('../client');exports['getSmsQueues']=function(){return function(){return client[_0x1cb9('0x0')](_0x1cb9('0x1'),{'options':{'raw':![],'attributes':['id',_0x1cb9('0x2'),_0x1cb9('0x3'),'strategy'],'include':[{'model':_0x1cb9('0x4'),'as':_0x1cb9('0x5'),'attributes':['id','name',_0x1cb9('0x6'),_0x1cb9('0x7')]}]},'log':'getSmsQueues'});};};
\ No newline at end of file
+var _0x0713=['getSmsQueues','Request','GetSmsQueue','name','timeout','strategy','Agents','online','smsPause'];(function(_0x1203f,_0x554bbc){var _0x365f0a=function(_0x3531d0){while(--_0x3531d0){_0x1203f['push'](_0x1203f['shift']());}};_0x365f0a(++_0x554bbc);}(_0x0713,0x1ba));var _0x3071=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x0713[_0x3dd15e];return _0x231fd0;};'use strict';var client=require('../client');exports['getSmsQueues']=function(){return function(){return client[_0x3071('0x0')](_0x3071('0x1'),{'options':{'raw':![],'attributes':['id',_0x3071('0x2'),_0x3071('0x3'),_0x3071('0x4')],'include':[{'model':'User','as':_0x3071('0x5'),'attributes':['id',_0x3071('0x2'),_0x3071('0x6'),_0x3071('0x7')]}]},'log':_0x3071('0x8')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3e74=['CreateSmsQueueReport','UpdateSmsQueueReport','DESC','../client','Request'];(function(_0x4c829a,_0x26b26a){var _0x21280b=function(_0xeaae4){while(--_0xeaae4){_0x4c829a['push'](_0x4c829a['shift']());}};_0x21280b(++_0x26b26a);}(_0x3e74,0x175));var _0x43e7=function(_0x286f40,_0x30152b){_0x286f40=_0x286f40-0x0;var _0x4f3857=_0x3e74[_0x286f40];return _0x4f3857;};'use strict';var client=require(_0x43e7('0x0'));exports['create']=function(_0x349480){return client[_0x43e7('0x1')](_0x43e7('0x2'),{'body':_0x349480,'log':'CreateSmsQueueReport'});};exports['update']=function(_0xc58479,_0x4f9bbe){return client[_0x43e7('0x1')](_0x43e7('0x3'),{'body':_0x4f9bbe,'options':{'where':{'uniqueid':_0xc58479},'order':[['id',_0x43e7('0x4')]],'limit':0x1},'log':_0x43e7('0x3')});};
\ No newline at end of file
+var _0xedd9=['create','Request','CreateSmsQueueReport','update','UpdateSmsQueueReport','DESC'];(function(_0x5d61b4,_0x4f7b91){var _0x183fc5=function(_0x5ecf92){while(--_0x5ecf92){_0x5d61b4['push'](_0x5d61b4['shift']());}};_0x183fc5(++_0x4f7b91);}(_0xedd9,0xfc));var _0x9edd=function(_0x3e8576,_0x19c36f){_0x3e8576=_0x3e8576-0x0;var _0x1b3e0e=_0xedd9[_0x3e8576];return _0x1b3e0e;};'use strict';var client=require('../client');exports[_0x9edd('0x0')]=function(_0x2d7989){return client[_0x9edd('0x1')](_0x9edd('0x2'),{'body':_0x2d7989,'log':_0x9edd('0x2')});};exports[_0x9edd('0x3')]=function(_0x3e6d3a,_0x36b53f){return client['Request'](_0x9edd('0x4'),{'body':_0x36b53f,'options':{'where':{'uniqueid':_0x3e6d3a},'order':[['id',_0x9edd('0x5')]],'limit':0x1},'log':_0x9edd('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(_0x17cab8,_0x42e109){var _0x2b4eb7=function(_0x5ad5a1){while(--_0x5ad5a1){_0x17cab8['push'](_0x17cab8['shift']());}};_0x2b4eb7(++_0x42e109);}(_0xa9e0,0x123));var _0x0a9e=function(_0x5c351c,_0x2046d8){_0x5c351c=_0x5c351c-0x0;var _0x26f3b3=_0xa9e0[_0x5c351c];return _0x26f3b3;};'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(_0x2606e7,_0xcbe32c){var _0x56d2b6=function(_0x1836f4){while(--_0x1836f4){_0x2606e7['push'](_0x2606e7['shift']());}};_0x56d2b6(++_0xcbe32c);}(_0xa9e0,0x123));var _0x0a9e=function(_0x102e37,_0x14a181){_0x102e37=_0x102e37-0x0;var _0x35a07c=_0xa9e0[_0x102e37];return _0x35a07c;};'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 _0x3024=['../client','update','Request','addTags','addTagsToWhatsappInteraction'];(function(_0x26f025,_0x1cd7f5){var _0x317b99=function(_0x4d52d4){while(--_0x4d52d4){_0x26f025['push'](_0x26f025['shift']());}};_0x317b99(++_0x1cd7f5);}(_0x3024,0x64));var _0x4302=function(_0x51bba8,_0x1be4a2){_0x51bba8=_0x51bba8-0x0;var _0x2b6e0c=_0x3024[_0x51bba8];return _0x2b6e0c;};'use strict';var client=require(_0x4302('0x0'));exports[_0x4302('0x1')]=function(_0x56b9ec,_0x290d9f){return client[_0x4302('0x2')]('UpdateWhatsappInteraction',{'body':_0x290d9f,'options':{'where':{'id':_0x56b9ec}},'log':'updateWhatsappInteraction'});};exports[_0x4302('0x3')]=function(_0x4ba02d,_0x2d3e1d){return client[_0x4302('0x2')]('AddTagsToWhatsappInteraction',{'body':_0x2d3e1d,'options':{'where':{'id':_0x4ba02d}},'log':_0x4302('0x4')});};
\ No newline at end of file
+var _0x4351=['UpdateWhatsappInteraction','updateWhatsappInteraction','addTags','AddTagsToWhatsappInteraction','addTagsToWhatsappInteraction','../client','update','Request'];(function(_0x3f13b6,_0x3fc4bc){var _0x413638=function(_0x53c477){while(--_0x53c477){_0x3f13b6['push'](_0x3f13b6['shift']());}};_0x413638(++_0x3fc4bc);}(_0x4351,0x1b5));var _0x1435=function(_0x5b644e,_0x2e5e07){_0x5b644e=_0x5b644e-0x0;var _0x49c6bf=_0x4351[_0x5b644e];return _0x49c6bf;};'use strict';var client=require(_0x1435('0x0'));exports[_0x1435('0x1')]=function(_0x2fb163,_0x449f8c){return client[_0x1435('0x2')](_0x1435('0x3'),{'body':_0x449f8c,'options':{'where':{'id':_0x2fb163}},'log':_0x1435('0x4')});};exports[_0x1435('0x5')]=function(_0x2fc1f2,_0x2fa227){return client[_0x1435('0x2')](_0x1435('0x6'),{'body':_0x2fa227,'options':{'where':{'id':_0x2fc1f2}},'log':_0x1435('0x7')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x99cf=['../client','create','Request'];(function(_0x13f8e1,_0x4953fd){var _0x38ff3c=function(_0x3d98b2){while(--_0x3d98b2){_0x13f8e1['push'](_0x13f8e1['shift']());}};_0x38ff3c(++_0x4953fd);}(_0x99cf,0x165));var _0xf99c=function(_0x388644,_0x49415b){_0x388644=_0x388644-0x0;var _0x3dc15e=_0x99cf[_0x388644];return _0x3dc15e;};'use strict';var client=require(_0xf99c('0x0'));exports[_0xf99c('0x1')]=function(_0x165c26){return client[_0xf99c('0x2')]('CreateWhatsappMessage',{'body':_0x165c26,'log':'createWhatsappMessage'});};
\ No newline at end of file
+var _0x9c64=['CreateWhatsappMessage','create','Request'];(function(_0x312931,_0x22e92b){var _0xdf26e5=function(_0x5be735){while(--_0x5be735){_0x312931['push'](_0x312931['shift']());}};_0xdf26e5(++_0x22e92b);}(_0x9c64,0x15a));var _0x49c6=function(_0x24e796,_0x3e618d){_0x24e796=_0x24e796-0x0;var _0x4fe60d=_0x9c64[_0x24e796];return _0x4fe60d;};'use strict';var client=require('../client');exports[_0x49c6('0x0')]=function(_0xb86422){return client[_0x49c6('0x1')](_0x49c6('0x2'),{'body':_0xb86422,'log':'createWhatsappMessage'});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb098=['strategy','User','Agents','online','whatsappPause','getWhatsappQueues','GetWhatsappQueue','name'];(function(_0x1f1fdb,_0x93fb68){var _0x442044=function(_0x36e151){while(--_0x36e151){_0x1f1fdb['push'](_0x1f1fdb['shift']());}};_0x442044(++_0x93fb68);}(_0xb098,0x14d));var _0x8b09=function(_0x20a62d,_0xcccc9c){_0x20a62d=_0x20a62d-0x0;var _0x51b3da=_0xb098[_0x20a62d];return _0x51b3da;};'use strict';var client=require('../client');exports[_0x8b09('0x0')]=function(){return function(){return client['Request'](_0x8b09('0x1'),{'options':{'raw':![],'attributes':['id',_0x8b09('0x2'),'timeout',_0x8b09('0x3')],'include':[{'model':_0x8b09('0x4'),'as':_0x8b09('0x5'),'attributes':['id',_0x8b09('0x2'),_0x8b09('0x6'),_0x8b09('0x7')]}]},'log':_0x8b09('0x0')});};};
\ No newline at end of file
+var _0x8078=['online','whatsappPause','../client','getWhatsappQueues','Request','GetWhatsappQueue','name','timeout','strategy','Agents'];(function(_0x9507e2,_0x1714c0){var _0x33dfc7=function(_0x715aed){while(--_0x715aed){_0x9507e2['push'](_0x9507e2['shift']());}};_0x33dfc7(++_0x1714c0);}(_0x8078,0xfc));var _0x8807=function(_0x254710,_0x394ac8){_0x254710=_0x254710-0x0;var _0x3f7c86=_0x8078[_0x254710];return _0x3f7c86;};'use strict';var client=require(_0x8807('0x0'));exports[_0x8807('0x1')]=function(){return function(){return client[_0x8807('0x2')](_0x8807('0x3'),{'options':{'raw':![],'attributes':['id',_0x8807('0x4'),_0x8807('0x5'),_0x8807('0x6')],'include':[{'model':'User','as':_0x8807('0x7'),'attributes':['id','name',_0x8807('0x8'),_0x8807('0x9')]}]},'log':'getWhatsappQueues'});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4405=['UpdateWhatsappQueueReport','DESC','../client','create','Request','CreateWhatsappQueueReport','update'];(function(_0x4e7335,_0x4a8f4e){var _0x54820a=function(_0x8836ce){while(--_0x8836ce){_0x4e7335['push'](_0x4e7335['shift']());}};_0x54820a(++_0x4a8f4e);}(_0x4405,0x18a));var _0x5440=function(_0x595c5e,_0x2e61e3){_0x595c5e=_0x595c5e-0x0;var _0x77c10f=_0x4405[_0x595c5e];return _0x77c10f;};'use strict';var client=require(_0x5440('0x0'));exports[_0x5440('0x1')]=function(_0x4342fd){return client[_0x5440('0x2')]('CreateWhatsappQueueReport',{'body':_0x4342fd,'log':_0x5440('0x3')});};exports[_0x5440('0x4')]=function(_0x563a65,_0x401273){return client[_0x5440('0x2')](_0x5440('0x5'),{'body':_0x401273,'options':{'where':{'uniqueid':_0x563a65},'order':[['id',_0x5440('0x6')]],'limit':0x1},'log':_0x5440('0x5')});};
\ No newline at end of file
+var _0xa767=['../client','create','Request','CreateWhatsappQueueReport','update','UpdateWhatsappQueueReport'];(function(_0x4782e3,_0x3bf0fa){var _0x3c6362=function(_0x4a6332){while(--_0x4a6332){_0x4782e3['push'](_0x4782e3['shift']());}};_0x3c6362(++_0x3bf0fa);}(_0xa767,0x78));var _0x7a76=function(_0x33ca01,_0x329bcb){_0x33ca01=_0x33ca01-0x0;var _0x4a9d4d=_0xa767[_0x33ca01];return _0x4a9d4d;};'use strict';var client=require(_0x7a76('0x0'));exports[_0x7a76('0x1')]=function(_0xd939f2){return client[_0x7a76('0x2')](_0x7a76('0x3'),{'body':_0xd939f2,'log':_0x7a76('0x3')});};exports[_0x7a76('0x4')]=function(_0x3c749e,_0x57a9f0){return client[_0x7a76('0x2')](_0x7a76('0x5'),{'body':_0x57a9f0,'options':{'where':{'uniqueid':_0x3c749e},'order':[['id','DESC']],'limit':0x1},'log':_0x7a76('0x5')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe3fe=['channel','START:%s','[%s][AGENT]\x20ROUTING\x20STOPPED','close','rules','complete','[%s][AGENT]\x20ROUTING\x20END','next','agent','log','validate','lodash','../../../../config/logger','name\x20is\x20a\x20string\x20and\x20it\x20is\x20required','number','info','format','[%s][AGENT][NAME:%s][STATUS:%s]','name','toLowerCase','consequence','error','[%s][AGENT]\x20%s','map','message','stop','find','timeout','createQueue','atimeout'];(function(_0x4731d5,_0x86ba73){var _0x14237f=function(_0xf49520){while(--_0xf49520){_0x4731d5['push'](_0x4731d5['shift']());}};_0x14237f(++_0x86ba73);}(_0xe3fe,0xbe));var _0xee3f=function(_0x3c4b7e,_0x45bcf4){_0x3c4b7e=_0x3c4b7e-0x0;var _0x5b7b3b=_0xe3fe[_0x3c4b7e];return _0x5b7b3b;};'use strict';var schema=require(_0xee3f('0x0'));var _=require(_0xee3f('0x1'));var util=require('util');var seqqueue=require('seq-queue');var logger=require(_0xee3f('0x2'))('routing');var strategy=require('./strategy');var queue=schema({'name':{'type':'string','required':!![],'message':_0xee3f('0x3')},'timeout':{'type':_0xee3f('0x4'),'message':'timeout\x20is\x20a\x20number'}});function writeLog(_0x4fda78,_0x2536a9,_0x475c31){return logger[_0xee3f('0x5')](util[_0xee3f('0x6')](_0xee3f('0x7'),_0x4fda78,_0x2536a9[_0xee3f('0x8')],_0x475c31));}function handleFindAgent(_0x1b8a3c){return function(_0x25f2e9){return _0x25f2e9[_0xee3f('0x8')][_0xee3f('0x9')]()===_0x1b8a3c[_0xee3f('0x9')]();};}exports[_0xee3f('0xa')]=function(_0x5b928d,_0x29eca9,_0x135b6b,_0x14b292){return function(_0x6eb921){try{var _0x13254d={'name':_0x29eca9[0x0],'timeout':_0x29eca9[0x1]};var _0x334537=queue['validate'](_0x13254d,{'typecast':!![]});if(_0x334537['length']){logger[_0xee3f('0xb')](_0xee3f('0xc'),_0x5b928d,_[_0xee3f('0xd')](_0x334537,_0xee3f('0xe'))['join'](',\x20'));_0x6eb921[_0xee3f('0xf')]();}else{var _0x565351=_[_0xee3f('0x10')](_0x135b6b['agents'],handleFindAgent(_0x13254d[_0xee3f('0x8')]));if(_0x565351){var _0x16bd44=(_0x13254d[_0xee3f('0x11')]||0xa)*0x3e8;var _0xb8925c,_0x5576a2;var _0x4931ac=seqqueue[_0xee3f('0x12')](_0x16bd44);_0x4931ac['id']=_0x5b928d;_0x4931ac[_0xee3f('0x13')]=_0x16bd44;_0x4931ac[_0xee3f('0x14')]=_0x14b292[_0xee3f('0x14')];writeLog(_0x5b928d,_0x565351,util[_0xee3f('0x6')](_0xee3f('0x15'),_0x16bd44));_0x135b6b['rules'][_0x5b928d]['on']('end',function(){logger['info'](_0xee3f('0x16'),_0x5b928d);clearTimeout(_0x5576a2);_0x5576a2=undefined;_0x4931ac[_0xee3f('0x17')]();if(_0x135b6b[_0xee3f('0x18')][_0x5b928d]){delete _0x135b6b['rules'][_0x5b928d];}_0x6eb921[_0xee3f('0xf')]();});_0x135b6b[_0xee3f('0x18')][_0x5b928d]['on'](_0xee3f('0x19'),function(){if(_0x135b6b[_0xee3f('0x18')][_0x5b928d]){delete _0x135b6b[_0xee3f('0x18')][_0x5b928d];}});_0x5576a2=setTimeout(function(){logger[_0xee3f('0x5')](_0xee3f('0x1a'),_0x5b928d);clearTimeout(_0x5576a2);_0x4931ac[_0xee3f('0x17')]();_0x6eb921[_0xee3f('0x1b')]();},_0x16bd44);strategy[_0xee3f('0x1c')](_0x4931ac,_0x565351,_0x135b6b,_0x14b292);}else{logger[_0xee3f('0xb')]('[%s][AGENT]\x20agent\x20not\x20found\x20%s',_0x5b928d,_0x13254d['name']);_0x6eb921['stop']();}}}catch(_0x1c7b98){console[_0xee3f('0x1d')](_0x1c7b98);logger[_0xee3f('0xb')]('[%s][QUEUE]\x20%s',_0x5b928d,_0x1c7b98['stack']);_0x6eb921[_0xee3f('0xf')]();}};};
\ No newline at end of file
+var _0xd834=['timeout','createQueue','atimeout','channel','START:%s','rules','end','[%s][AGENT]\x20ROUTING\x20STOPPED','close','stop','[%s][AGENT]\x20ROUTING\x20END','next','agent','log','[%s][QUEUE]\x20%s','util','../../../../config/logger','routing','string','name\x20is\x20a\x20string\x20and\x20it\x20is\x20required','timeout\x20is\x20a\x20number','info','format','name','toLowerCase','validate','error','[%s][AGENT]\x20%s','map','join','find','agents'];(function(_0x2cd8d3,_0x2f7c0b){var _0x4da652=function(_0x4fe0d8){while(--_0x4fe0d8){_0x2cd8d3['push'](_0x2cd8d3['shift']());}};_0x4da652(++_0x2f7c0b);}(_0xd834,0xef));var _0x4d83=function(_0x465a0c,_0x19d4d5){_0x465a0c=_0x465a0c-0x0;var _0x1e202e=_0xd834[_0x465a0c];return _0x1e202e;};'use strict';var schema=require('validate');var _=require('lodash');var util=require(_0x4d83('0x0'));var seqqueue=require('seq-queue');var logger=require(_0x4d83('0x1'))(_0x4d83('0x2'));var strategy=require('./strategy');var queue=schema({'name':{'type':_0x4d83('0x3'),'required':!![],'message':_0x4d83('0x4')},'timeout':{'type':'number','message':_0x4d83('0x5')}});function writeLog(_0x3e5207,_0x4ae334,_0x3f3240){return logger[_0x4d83('0x6')](util[_0x4d83('0x7')]('[%s][AGENT][NAME:%s][STATUS:%s]',_0x3e5207,_0x4ae334[_0x4d83('0x8')],_0x3f3240));}function handleFindAgent(_0x49f43f){return function(_0x4b97c7){return _0x4b97c7[_0x4d83('0x8')][_0x4d83('0x9')]()===_0x49f43f[_0x4d83('0x9')]();};}exports['consequence']=function(_0x19bb28,_0x4dd45f,_0x21a067,_0x318d42){return function(_0x33f276){try{var _0x3c1fa8={'name':_0x4dd45f[0x0],'timeout':_0x4dd45f[0x1]};var _0x57d068=queue[_0x4d83('0xa')](_0x3c1fa8,{'typecast':!![]});if(_0x57d068['length']){logger[_0x4d83('0xb')](_0x4d83('0xc'),_0x19bb28,_[_0x4d83('0xd')](_0x57d068,'message')[_0x4d83('0xe')](',\x20'));_0x33f276['stop']();}else{var _0x1d3d95=_[_0x4d83('0xf')](_0x21a067[_0x4d83('0x10')],handleFindAgent(_0x3c1fa8[_0x4d83('0x8')]));if(_0x1d3d95){var _0x2b627a=(_0x3c1fa8[_0x4d83('0x11')]||0xa)*0x3e8;var _0x48c930,_0x4affac;var _0x2251b0=seqqueue[_0x4d83('0x12')](_0x2b627a);_0x2251b0['id']=_0x19bb28;_0x2251b0[_0x4d83('0x13')]=_0x2b627a;_0x2251b0[_0x4d83('0x14')]=_0x318d42[_0x4d83('0x14')];writeLog(_0x19bb28,_0x1d3d95,util['format'](_0x4d83('0x15'),_0x2b627a));_0x21a067[_0x4d83('0x16')][_0x19bb28]['on'](_0x4d83('0x17'),function(){logger[_0x4d83('0x6')](_0x4d83('0x18'),_0x19bb28);clearTimeout(_0x4affac);_0x4affac=undefined;_0x2251b0[_0x4d83('0x19')]();if(_0x21a067[_0x4d83('0x16')][_0x19bb28]){delete _0x21a067[_0x4d83('0x16')][_0x19bb28];}_0x33f276[_0x4d83('0x1a')]();});_0x21a067[_0x4d83('0x16')][_0x19bb28]['on']('complete',function(){if(_0x21a067[_0x4d83('0x16')][_0x19bb28]){delete _0x21a067[_0x4d83('0x16')][_0x19bb28];}});_0x4affac=setTimeout(function(){logger[_0x4d83('0x6')](_0x4d83('0x1b'),_0x19bb28);clearTimeout(_0x4affac);_0x2251b0['close']();_0x33f276[_0x4d83('0x1c')]();},_0x2b627a);strategy[_0x4d83('0x1d')](_0x2251b0,_0x1d3d95,_0x21a067,_0x318d42);}else{logger[_0x4d83('0xb')]('[%s][AGENT]\x20agent\x20not\x20found\x20%s',_0x19bb28,_0x3c1fa8[_0x4d83('0x8')]);_0x33f276[_0x4d83('0x1a')]();}}}catch(_0x4767df){console[_0x4d83('0x1e')](_0x4767df);logger[_0x4d83('0xb')](_0x4d83('0x1f'),_0x19bb28,_0x4767df['stack']);_0x33f276['stop']();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xaf89=['format','out','channel','sms','whatsapp','phone','interaction','ChatWebsiteId','account','upperFirst','AccountId','InteractionId','created','isEmpty','getMustacheRender','Message','then','body','catch','[%s][AMAZONLEX]\x20Welcome\x20Message\x20has\x20been\x20sent!','stop','LexRuntime','$LATEST','postText','error','message','amazonlex','providerResponse','stringify','dialogState','Failed','next','moment','aws-sdk','./utils','routing','../../rpc/chatMessage','../../rpc/mailMessage','../../rpc/smsMessage','../../rpc/faxMessage','consequence','isNil','info','[%s][AMAZONLEX]\x20%s','contact'];(function(_0x580576,_0x2f107d){var _0x3f55a0=function(_0x2e180b){while(--_0x2e180b){_0x580576['push'](_0x580576['shift']());}};_0x3f55a0(++_0x2f107d);}(_0xaf89,0x1b5));var _0x9af8=function(_0x139a3c,_0x4fc883){_0x139a3c=_0x139a3c-0x0;var _0x2b375b=_0xaf89[_0x139a3c];return _0x2b375b;};'use strict';var _=require('lodash');var moment=require(_0x9af8('0x0'));var AWS=require(_0x9af8('0x1'));var utils=require(_0x9af8('0x2'));var logger=require('../../../../config/logger')(_0x9af8('0x3'));var rpc={'chatMessage':require(_0x9af8('0x4')),'openchannelMessage':require('../../rpc/openchannelMessage'),'mailMessage':require(_0x9af8('0x5')),'smsMessage':require(_0x9af8('0x6')),'faxMessage':require(_0x9af8('0x7')),'whatsappMessage':require('../../rpc/whatsappMessage')};exports[_0x9af8('0x8')]=function(_0x65bd11,_0xe6a409){return function(_0x2247aa){try{if(!_[_0x9af8('0x9')](this['interaction']['UserId'])){logger[_0x9af8('0xa')](_0x9af8('0xb'),_0x65bd11,'Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.');return _0x2247aa['next']();}var _0x22a845={'ContactId':this[_0x9af8('0xc')]['id'],'sentAt':moment()[_0x9af8('0xd')]('YYYY-MM-DD\x20HH:mm:ss'),'direction':_0x9af8('0xe')};if(this[_0x9af8('0xf')]===_0x9af8('0x10')||this[_0x9af8('0xf')]===_0x9af8('0x11')){_0x22a845[_0x9af8('0x12')]=this[_0x9af8('0x13')]['phone'];}var _0x2e2268=this['channel'];if(_0x2e2268==='chat'){_0x22a845[_0x9af8('0x14')]=this[_0x9af8('0x15')]['id'];}else{_0x22a845[_[_0x9af8('0x16')](_0x2e2268)+_0x9af8('0x17')]=this[_0x9af8('0x15')]['id'];}_0x22a845[_[_0x9af8('0x16')](_0x2e2268)+_0x9af8('0x18')]=this['interaction']['id'];if(this[_0x9af8('0x13')][_0x9af8('0x19')]){var _0x5bbea4=_0xe6a409[0x4];if(!_[_0x9af8('0x1a')](_0x5bbea4)){_0x22a845['body']=utils[_0x9af8('0x1b')](_0x5bbea4,this);return rpc[_0x2e2268+_0x9af8('0x1c')]['create'](_0x22a845)[_0x9af8('0x1d')](function(_0x5a4e7b){logger[_0x9af8('0xa')]('[%s][AMAZONLEX]\x20%s',_0x65bd11,_0x22a845[_0x9af8('0x1e')]);})[_0x9af8('0x1f')](function(_0x3bf988){logger['error']('[%s][AMAZONLEX]\x20%s',_0x65bd11,JSON['stringify'](_0x3bf988));})['finally'](function(){logger[_0x9af8('0xa')](_0x9af8('0x20'),_0x65bd11);_0x2247aa[_0x9af8('0x21')]();});}else{logger['info']('[%s][AMAZONLEX]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!',_0x65bd11);_0x2247aa[_0x9af8('0x21')]();}}else{var _0x4b1262=this;var _0x2130f4=new AWS[(_0x9af8('0x22'))]({'accessKeyId':_0xe6a409[0x0],'secretAccessKey':_0xe6a409[0x1],'region':_0xe6a409[0x2]});var _0x7b577d={'botAlias':_0x9af8('0x23'),'botName':_0xe6a409[0x3],'inputText':this['message'][_0x9af8('0x1e')],'userId':this['channel']+':'+this[_0x9af8('0x13')]['id']['toString']()};_0x2130f4[_0x9af8('0x24')](_0x7b577d,function(_0x46ae14,_0xb904a){if(_0x46ae14){logger[_0x9af8('0x25')](_0x9af8('0xb'),_0x65bd11,_0x46ae14['message']);_0x2247aa['next']();}else if(_0xb904a&&_0xb904a[_0x9af8('0x26')]){_0x4b1262['body'][_0x9af8('0x27')]=_0xb904a;_0x22a845['body']=_0xb904a['message'];_0x22a845['providerName']=_0x9af8('0x27');_0x22a845[_0x9af8('0x28')]=JSON[_0x9af8('0x29')](_0xb904a);return rpc[_0x2e2268+'Message']['create'](_0x22a845)[_0x9af8('0x1d')](function(_0x1d9656){logger[_0x9af8('0xa')](_0x9af8('0xb'),_0x65bd11,_0x22a845[_0x9af8('0x1e')]);if(_0xb904a[_0x9af8('0x2a')]==_0x9af8('0x2b')){_0x2247aa[_0x9af8('0x2c')]();}else{_0x2247aa[_0x9af8('0x21')]();}})[_0x9af8('0x1f')](function(_0x3057a9){logger[_0x9af8('0x25')](_0x9af8('0xb'),_0x65bd11,JSON[_0x9af8('0x29')](_0x3057a9));_0x2247aa[_0x9af8('0x2c')]();});}else{_0x2247aa['next']();}});}}catch(_0xb6a4e8){logger[_0x9af8('0x25')](_0x9af8('0xb'),_0x65bd11,JSON[_0x9af8('0x29')](_0xb6a4e8));_0x2247aa[_0x9af8('0x21')]();}};};
\ No newline at end of file
+var _0xf708=['providerResponse','dialogState','catch','lodash','aws-sdk','../../../../config/logger','../../rpc/chatMessage','../../rpc/mailMessage','../../rpc/smsMessage','consequence','isNil','interaction','UserId','Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.','next','format','YYYY-MM-DD\x20HH:mm:ss','out','sms','whatsapp','phone','channel','chat','account','upperFirst','AccountId','InteractionId','created','isEmpty','body','getMustacheRender','create','then','info','[%s][AMAZONLEX]\x20%s','error','stringify','finally','[%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','postText','providerName','amazonlex'];(function(_0x17883e,_0x31359a){var _0x43e325=function(_0x26e19d){while(--_0x26e19d){_0x17883e['push'](_0x17883e['shift']());}};_0x43e325(++_0x31359a);}(_0xf708,0xf3));var _0x8f70=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xf708[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0x8f70('0x0'));var moment=require('moment');var AWS=require(_0x8f70('0x1'));var utils=require('./utils');var logger=require(_0x8f70('0x2'))('routing');var rpc={'chatMessage':require(_0x8f70('0x3')),'openchannelMessage':require('../../rpc/openchannelMessage'),'mailMessage':require(_0x8f70('0x4')),'smsMessage':require(_0x8f70('0x5')),'faxMessage':require('../../rpc/faxMessage'),'whatsappMessage':require('../../rpc/whatsappMessage')};exports[_0x8f70('0x6')]=function(_0x29450a,_0x41c431){return function(_0x4b11b5){try{if(!_[_0x8f70('0x7')](this[_0x8f70('0x8')][_0x8f70('0x9')])){logger['info']('[%s][AMAZONLEX]\x20%s',_0x29450a,_0x8f70('0xa'));return _0x4b11b5[_0x8f70('0xb')]();}var _0x339428={'ContactId':this['contact']['id'],'sentAt':moment()[_0x8f70('0xc')](_0x8f70('0xd')),'direction':_0x8f70('0xe')};if(this['channel']===_0x8f70('0xf')||this['channel']===_0x8f70('0x10')){_0x339428['phone']=this[_0x8f70('0x8')][_0x8f70('0x11')];}var _0x338ca9=this[_0x8f70('0x12')];if(_0x338ca9===_0x8f70('0x13')){_0x339428['ChatWebsiteId']=this[_0x8f70('0x14')]['id'];}else{_0x339428[_[_0x8f70('0x15')](_0x338ca9)+_0x8f70('0x16')]=this[_0x8f70('0x14')]['id'];}_0x339428[_[_0x8f70('0x15')](_0x338ca9)+_0x8f70('0x17')]=this['interaction']['id'];if(this[_0x8f70('0x8')][_0x8f70('0x18')]){var _0x2dc279=_0x41c431[0x4];if(!_[_0x8f70('0x19')](_0x2dc279)){_0x339428[_0x8f70('0x1a')]=utils[_0x8f70('0x1b')](_0x2dc279,this);return rpc[_0x338ca9+'Message'][_0x8f70('0x1c')](_0x339428)[_0x8f70('0x1d')](function(_0x1aa539){logger[_0x8f70('0x1e')](_0x8f70('0x1f'),_0x29450a,_0x339428[_0x8f70('0x1a')]);})['catch'](function(_0x3ad0a9){logger[_0x8f70('0x20')](_0x8f70('0x1f'),_0x29450a,JSON[_0x8f70('0x21')](_0x3ad0a9));})[_0x8f70('0x22')](function(){logger[_0x8f70('0x1e')](_0x8f70('0x23'),_0x29450a);_0x4b11b5[_0x8f70('0x24')]();});}else{logger[_0x8f70('0x1e')](_0x8f70('0x25'),_0x29450a);_0x4b11b5[_0x8f70('0x24')]();}}else{var _0x5dedfb=this;var _0x4ba5c6=new AWS[(_0x8f70('0x26'))]({'accessKeyId':_0x41c431[0x0],'secretAccessKey':_0x41c431[0x1],'region':_0x41c431[0x2]});var _0x2c195c={'botAlias':_0x8f70('0x27'),'botName':_0x41c431[0x3],'inputText':this[_0x8f70('0x28')][_0x8f70('0x1a')],'userId':this[_0x8f70('0x12')]+':'+this[_0x8f70('0x8')]['id'][_0x8f70('0x29')]()};_0x4ba5c6[_0x8f70('0x2a')](_0x2c195c,function(_0x1515ec,_0x38b21f){if(_0x1515ec){logger[_0x8f70('0x20')](_0x8f70('0x1f'),_0x29450a,_0x1515ec[_0x8f70('0x28')]);_0x4b11b5[_0x8f70('0xb')]();}else if(_0x38b21f&&_0x38b21f[_0x8f70('0x28')]){_0x5dedfb[_0x8f70('0x1a')]['amazonlex']=_0x38b21f;_0x339428[_0x8f70('0x1a')]=_0x38b21f[_0x8f70('0x28')];_0x339428[_0x8f70('0x2b')]=_0x8f70('0x2c');_0x339428[_0x8f70('0x2d')]=JSON['stringify'](_0x38b21f);return rpc[_0x338ca9+'Message'][_0x8f70('0x1c')](_0x339428)[_0x8f70('0x1d')](function(_0x51df91){logger[_0x8f70('0x1e')](_0x8f70('0x1f'),_0x29450a,_0x339428[_0x8f70('0x1a')]);if(_0x38b21f[_0x8f70('0x2e')]=='Failed'){_0x4b11b5[_0x8f70('0xb')]();}else{_0x4b11b5[_0x8f70('0x24')]();}})[_0x8f70('0x2f')](function(_0x50224f){logger[_0x8f70('0x20')](_0x8f70('0x1f'),_0x29450a,JSON['stringify'](_0x50224f));_0x4b11b5[_0x8f70('0xb')]();});}else{_0x4b11b5[_0x8f70('0xb')]();}});}}catch(_0x4ae9b5){logger[_0x8f70('0x20')](_0x8f70('0x1f'),_0x29450a,JSON[_0x8f70('0x21')](_0x4ae9b5));_0x4b11b5[_0x8f70('0x24')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8df3=['Re:\x20','chat','ChatWebsiteId','account','upperFirst','AccountId','Smtp','service','host','secure','authentication','auth','user','pass','inReplyTo','messageId','html','<div\x20id=\x22xm-mail-content\x22>','replace','<div','</div>','headers','auto-replied','All','auto_reply','sendMailMessage','then','Message','create','catch','error','[RPC][%s][AUTOREPLY]\x20%s','stringify','finally','resolve','update','[RPC][%s][AUTOREPLY][autoreplyExecuted]\x20%s','moment','./utils','../../../../config/logger','routing','../../rpc/chatMessage','../../rpc/openchannelMessage','../../rpc/mailMessage','../../rpc/smsMessage','../../rpc/faxMessage','../../rpc/whatsappMessage','../../rpc/openchannelInteraction','../../rpc/faxInteraction','../../rpc/whatsappInteraction','../../mailRpc','consequence','mail','isAutoreply','info','isNil','interaction','created','[%s][AUTOREPLY]\x20%s','next','autoreplyExecuted','[%s][AUTOREPLY][autoreplyExecuted]\x20%s','One\x20Time\x20already\x20sent','contact','YYYY-MM-DD\x20HH:mm:ss','channel','body','getMustacheRender','message','from','phone','read','subject','startsWith','Re:'];(function(_0x35381a,_0x3e40f4){var _0x44602d=function(_0x32be09){while(--_0x32be09){_0x35381a['push'](_0x35381a['shift']());}};_0x44602d(++_0x3e40f4);}(_0x8df3,0x1e7));var _0x38df=function(_0x4b87a3,_0x3a698c){_0x4b87a3=_0x4b87a3-0x0;var _0x334112=_0x8df3[_0x4b87a3];return _0x334112;};'use strict';var _=require('lodash');var moment=require(_0x38df('0x0'));var utils=require(_0x38df('0x1'));var logger=require(_0x38df('0x2'))(_0x38df('0x3'));var rpc={'chatMessage':require(_0x38df('0x4')),'openchannelMessage':require(_0x38df('0x5')),'mailMessage':require(_0x38df('0x6')),'smsMessage':require(_0x38df('0x7')),'faxMessage':require(_0x38df('0x8')),'whatsappMessage':require(_0x38df('0x9')),'chatInteraction':require('../../rpc/chatInteraction'),'openchannelInteraction':require(_0x38df('0xa')),'mailInteraction':require('../../rpc/mailInteraction'),'smsInteraction':require('../../rpc/smsInteraction'),'faxInteraction':require(_0x38df('0xb')),'whatsappInteraction':require(_0x38df('0xc'))};var mailRpc=require(_0x38df('0xd'));exports[_0x38df('0xe')]=function(_0x2ca157,_0x3ede08,_0x17a6e4,_0x149ad3){return function(_0x1e3a18){try{var _0x4f1451=this['channel'];if(_0x4f1451===_0x38df('0xf')&&_0x149ad3['body'][_0x38df('0x10')]){logger[_0x38df('0x11')]('[%s][AUTOREPLY]\x20%s',_0x2ca157,'Autoreply\x20not\x20executed\x20(message\x20is\x20autoreply)');return _0x1e3a18['next']();}if(_0x3ede08[0x0]==='1'&&(_[_0x38df('0x12')](this[_0x38df('0x13')][_0x38df('0x14')])||!this['interaction'][_0x38df('0x14')])){logger['info'](_0x38df('0x15'),_0x2ca157,'Autoreply\x20already\x20sent');return _0x1e3a18[_0x38df('0x16')]();}if(_0x3ede08[0x0]==='2'&&this['interaction'][_0x38df('0x17')]){logger['info'](_0x38df('0x18'),_0x2ca157,_0x38df('0x19'));return _0x1e3a18[_0x38df('0x16')]();}var _0x445662={'ContactId':this[_0x38df('0x1a')]['id'],'sentAt':moment()['format'](_0x38df('0x1b')),'direction':'out'};if(this[_0x38df('0x1c')]===_0x38df('0xf')){_0x445662[_0x38df('0x1d')]=utils[_0x38df('0x1e')](_0x3ede08[0x2],this);}else{_0x445662[_0x38df('0x1d')]=utils[_0x38df('0x1e')](_0x3ede08[0x1],this);}if(this['message']){_0x445662['to']=this[_0x38df('0x1f')][_0x38df('0x20')]||'';if(this[_0x38df('0x1c')]===_0x38df('0xf')&&_0x3ede08[0x1]==='1'){_0x445662['cc']=this[_0x38df('0x1f')]['cc']||'';}_0x445662[_0x38df('0x20')]=this['message']['to']||'';_0x445662[_0x38df('0x21')]=this[_0x38df('0x1f')][_0x38df('0x21')]||'';_0x445662[_0x38df('0x22')]=!![];if(this[_0x38df('0x1f')]['subject']){_0x445662[_0x38df('0x23')]='';_0x445662[_0x38df('0x23')]+=_[_0x38df('0x24')](this[_0x38df('0x1f')]['subject'],_0x38df('0x25'))?'':_0x38df('0x26');_0x445662['subject']+=this[_0x38df('0x1f')][_0x38df('0x23')];}}if(this[_0x38df('0x1c')]===_0x38df('0x27')){_0x445662[_0x38df('0x28')]=this[_0x38df('0x29')]['id'];}else{_0x445662[_[_0x38df('0x2a')](this['channel'])+_0x38df('0x2b')]=this['account']['id'];}_0x445662[_[_0x38df('0x2a')](this['channel'])+'InteractionId']=this[_0x38df('0x13')]['id'];var _0xf06860=this[_0x38df('0x13')];if(rpc[this['channel']+'Message']){if(this[_0x38df('0x1c')]==='mail'){var _0x245cd1={'tls':{'rejectUnauthorized':![]}};if(this[_0x38df('0x29')][_0x38df('0x2c')]['service']){_0x245cd1[_0x38df('0x2d')]=this[_0x38df('0x29')][_0x38df('0x2c')]['service'];}else{_0x245cd1['host']=this[_0x38df('0x29')][_0x38df('0x2c')][_0x38df('0x2e')];_0x245cd1['port']=this[_0x38df('0x29')][_0x38df('0x2c')]['port'];_0x245cd1[_0x38df('0x2f')]=this['account']['Smtp']['secure'];}if(this[_0x38df('0x29')][_0x38df('0x2c')][_0x38df('0x30')]){_0x245cd1[_0x38df('0x31')]={'user':this[_0x38df('0x29')][_0x38df('0x2c')][_0x38df('0x32')],'pass':this[_0x38df('0x29')][_0x38df('0x2c')][_0x38df('0x33')]};}_0x445662[_0x38df('0x34')]=this[_0x38df('0x1f')][_0x38df('0x35')];_0x445662[_0x38df('0x36')]=_0x38df('0x37')+_[_0x38df('0x38')](_0x445662[_0x38df('0x1d')],'<div\x20id=\x22xm-mail-content\x22',_0x38df('0x39'))+_0x38df('0x3a');_0x445662[_0x38df('0x3b')]={'Auto-Submitted':_0x38df('0x3c'),'X-Auto-Response-Suppress':_0x38df('0x3d'),'Precedence':_0x38df('0x3e')};return mailRpc[_0x38df('0x3f')](_0x245cd1,_0x445662)[_0x38df('0x40')](function(_0x11b241){logger[_0x38df('0x11')]('[%s][AUTOREPLY]\x20SMTP\x20SENT',_0x2ca157);_0x445662[_0x38df('0x35')]=_0x11b241[_0x38df('0x1f')][_0x38df('0x35')];return rpc[_0x4f1451+_0x38df('0x41')][_0x38df('0x42')](_0x445662);})[_0x38df('0x40')](function(_0x2bc8a2){logger[_0x38df('0x11')](_0x38df('0x15'),_0x2ca157,JSON['stringify'](_0x2bc8a2));})[_0x38df('0x43')](function(_0x38fc9c){logger[_0x38df('0x44')](_0x38df('0x45'),_0x2ca157,JSON[_0x38df('0x46')](_0x38fc9c));})[_0x38df('0x47')](function(){Promise[_0x38df('0x48')]()[_0x38df('0x40')](function(){if(_0x3ede08[0x0]!=='2'||_0xf06860[_0x38df('0x17')])return;return rpc[_0x4f1451+'Interaction'][_0x38df('0x49')](_0xf06860['id'],{'autoreplyExecuted':!![]})[_0x38df('0x40')](function(_0x54fb20){logger[_0x38df('0x11')](_0x38df('0x18'),_0x2ca157,JSON[_0x38df('0x46')](_0x54fb20));})[_0x38df('0x43')](function(_0x59f056){logger[_0x38df('0x44')](_0x38df('0x4a'),_0x2ca157,JSON[_0x38df('0x46')](_0x59f056));});})[_0x38df('0x40')](function(){_0x1e3a18[_0x38df('0x16')]();});});}else{return rpc[this[_0x38df('0x1c')]+'Message']['create'](_0x445662)[_0x38df('0x40')](function(_0x2a118c){logger[_0x38df('0x11')](_0x38df('0x15'),_0x2ca157,_0x445662[_0x38df('0x1d')]);})['catch'](function(_0xe18e23){logger[_0x38df('0x44')](_0x38df('0x15'),_0x2ca157,JSON[_0x38df('0x46')](_0xe18e23));})['finally'](function(){Promise['resolve']()[_0x38df('0x40')](function(){if(_0x3ede08[0x0]!=='2'||_0xf06860[_0x38df('0x17')])return;return rpc[_0x4f1451+'Interaction'][_0x38df('0x49')](_0xf06860['id'],{'autoreplyExecuted':!![]})[_0x38df('0x40')](function(_0x234eb1){logger['info'](_0x38df('0x18'),_0x2ca157,JSON[_0x38df('0x46')](_0x234eb1));})['catch'](function(_0x225cb7){logger[_0x38df('0x44')](_0x38df('0x4a'),_0x2ca157,JSON[_0x38df('0x46')](_0x225cb7));});})[_0x38df('0x40')](function(){_0x1e3a18[_0x38df('0x16')]();});});}}}catch(_0x4c910b){logger['error'](_0x38df('0x15'),_0x2ca157,JSON[_0x38df('0x46')](_0x4c910b));_0x1e3a18['stop']();}};};
\ No newline at end of file
+var _0x1ca2=['message','from','phone','read','subject','startsWith','Re:','Re:\x20','chat','ChatWebsiteId','account','upperFirst','interaction','Message','Smtp','service','host','port','secure','authentication','auth','user','inReplyTo','messageId','html','<div\x20id=\x22xm-mail-content\x22>','replace','</div>','headers','auto-replied','auto_reply','sendMailMessage','then','[%s][AUTOREPLY]\x20SMTP\x20SENT','create','stringify','catch','finally','resolve','Interaction','[%s][AUTOREPLY][autoreplyExecuted]\x20%s','error','[RPC][%s][AUTOREPLY][autoreplyExecuted]\x20%s','update','stop','lodash','moment','./utils','../../../../config/logger','routing','../../rpc/chatMessage','../../rpc/mailMessage','../../rpc/smsMessage','../../rpc/chatInteraction','../../rpc/mailInteraction','../../rpc/smsInteraction','../../rpc/whatsappInteraction','../../mailRpc','channel','body','isAutoreply','[%s][AUTOREPLY]\x20%s','Autoreply\x20not\x20executed\x20(message\x20is\x20autoreply)','next','isNil','created','Autoreply\x20already\x20sent','autoreplyExecuted','info','One\x20Time\x20already\x20sent','contact','format','YYYY-MM-DD\x20HH:mm:ss','out','mail','getMustacheRender'];(function(_0x280e95,_0x47066b){var _0x55bd92=function(_0x59a41d){while(--_0x59a41d){_0x280e95['push'](_0x280e95['shift']());}};_0x55bd92(++_0x47066b);}(_0x1ca2,0x79));var _0x21ca=function(_0x4b2b2c,_0x17cbcc){_0x4b2b2c=_0x4b2b2c-0x0;var _0x47c263=_0x1ca2[_0x4b2b2c];return _0x47c263;};'use strict';var _=require(_0x21ca('0x0'));var moment=require(_0x21ca('0x1'));var utils=require(_0x21ca('0x2'));var logger=require(_0x21ca('0x3'))(_0x21ca('0x4'));var rpc={'chatMessage':require(_0x21ca('0x5')),'openchannelMessage':require('../../rpc/openchannelMessage'),'mailMessage':require(_0x21ca('0x6')),'smsMessage':require(_0x21ca('0x7')),'faxMessage':require('../../rpc/faxMessage'),'whatsappMessage':require('../../rpc/whatsappMessage'),'chatInteraction':require(_0x21ca('0x8')),'openchannelInteraction':require('../../rpc/openchannelInteraction'),'mailInteraction':require(_0x21ca('0x9')),'smsInteraction':require(_0x21ca('0xa')),'faxInteraction':require('../../rpc/faxInteraction'),'whatsappInteraction':require(_0x21ca('0xb'))};var mailRpc=require(_0x21ca('0xc'));exports['consequence']=function(_0x250222,_0x3edd67,_0x180f7f,_0x1882cc){return function(_0x30dba7){try{var _0x7e1cb5=this[_0x21ca('0xd')];if(_0x7e1cb5==='mail'&&_0x1882cc[_0x21ca('0xe')][_0x21ca('0xf')]){logger['info'](_0x21ca('0x10'),_0x250222,_0x21ca('0x11'));return _0x30dba7[_0x21ca('0x12')]();}if(_0x3edd67[0x0]==='1'&&(_[_0x21ca('0x13')](this['interaction'][_0x21ca('0x14')])||!this['interaction'][_0x21ca('0x14')])){logger['info'](_0x21ca('0x10'),_0x250222,_0x21ca('0x15'));return _0x30dba7[_0x21ca('0x12')]();}if(_0x3edd67[0x0]==='2'&&this['interaction'][_0x21ca('0x16')]){logger[_0x21ca('0x17')]('[%s][AUTOREPLY][autoreplyExecuted]\x20%s',_0x250222,_0x21ca('0x18'));return _0x30dba7[_0x21ca('0x12')]();}var _0x5e5006={'ContactId':this[_0x21ca('0x19')]['id'],'sentAt':moment()[_0x21ca('0x1a')](_0x21ca('0x1b')),'direction':_0x21ca('0x1c')};if(this[_0x21ca('0xd')]===_0x21ca('0x1d')){_0x5e5006[_0x21ca('0xe')]=utils[_0x21ca('0x1e')](_0x3edd67[0x2],this);}else{_0x5e5006[_0x21ca('0xe')]=utils['getMustacheRender'](_0x3edd67[0x1],this);}if(this[_0x21ca('0x1f')]){_0x5e5006['to']=this[_0x21ca('0x1f')][_0x21ca('0x20')]||'';if(this[_0x21ca('0xd')]===_0x21ca('0x1d')&&_0x3edd67[0x1]==='1'){_0x5e5006['cc']=this[_0x21ca('0x1f')]['cc']||'';}_0x5e5006[_0x21ca('0x20')]=this[_0x21ca('0x1f')]['to']||'';_0x5e5006[_0x21ca('0x21')]=this['message']['phone']||'';_0x5e5006[_0x21ca('0x22')]=!![];if(this[_0x21ca('0x1f')][_0x21ca('0x23')]){_0x5e5006[_0x21ca('0x23')]='';_0x5e5006[_0x21ca('0x23')]+=_[_0x21ca('0x24')](this[_0x21ca('0x1f')][_0x21ca('0x23')],_0x21ca('0x25'))?'':_0x21ca('0x26');_0x5e5006[_0x21ca('0x23')]+=this[_0x21ca('0x1f')][_0x21ca('0x23')];}}if(this[_0x21ca('0xd')]===_0x21ca('0x27')){_0x5e5006[_0x21ca('0x28')]=this[_0x21ca('0x29')]['id'];}else{_0x5e5006[_[_0x21ca('0x2a')](this[_0x21ca('0xd')])+'AccountId']=this[_0x21ca('0x29')]['id'];}_0x5e5006[_[_0x21ca('0x2a')](this[_0x21ca('0xd')])+'InteractionId']=this[_0x21ca('0x2b')]['id'];var _0x3eb416=this[_0x21ca('0x2b')];if(rpc[this[_0x21ca('0xd')]+_0x21ca('0x2c')]){if(this[_0x21ca('0xd')]===_0x21ca('0x1d')){var _0xfd7ab3={'tls':{'rejectUnauthorized':![]}};if(this['account'][_0x21ca('0x2d')][_0x21ca('0x2e')]){_0xfd7ab3['service']=this[_0x21ca('0x29')][_0x21ca('0x2d')][_0x21ca('0x2e')];}else{_0xfd7ab3['host']=this[_0x21ca('0x29')]['Smtp'][_0x21ca('0x2f')];_0xfd7ab3[_0x21ca('0x30')]=this[_0x21ca('0x29')][_0x21ca('0x2d')][_0x21ca('0x30')];_0xfd7ab3[_0x21ca('0x31')]=this['account'][_0x21ca('0x2d')][_0x21ca('0x31')];}if(this[_0x21ca('0x29')][_0x21ca('0x2d')][_0x21ca('0x32')]){_0xfd7ab3[_0x21ca('0x33')]={'user':this[_0x21ca('0x29')][_0x21ca('0x2d')][_0x21ca('0x34')],'pass':this['account'][_0x21ca('0x2d')]['pass']};}_0x5e5006[_0x21ca('0x35')]=this[_0x21ca('0x1f')][_0x21ca('0x36')];_0x5e5006[_0x21ca('0x37')]=_0x21ca('0x38')+_[_0x21ca('0x39')](_0x5e5006[_0x21ca('0xe')],'<div\x20id=\x22xm-mail-content\x22','<div')+_0x21ca('0x3a');_0x5e5006[_0x21ca('0x3b')]={'Auto-Submitted':_0x21ca('0x3c'),'X-Auto-Response-Suppress':'All','Precedence':_0x21ca('0x3d')};return mailRpc[_0x21ca('0x3e')](_0xfd7ab3,_0x5e5006)[_0x21ca('0x3f')](function(_0x10896f){logger['info'](_0x21ca('0x40'),_0x250222);_0x5e5006['messageId']=_0x10896f[_0x21ca('0x1f')]['messageId'];return rpc[_0x7e1cb5+_0x21ca('0x2c')][_0x21ca('0x41')](_0x5e5006);})[_0x21ca('0x3f')](function(_0x3fdadf){logger['info'](_0x21ca('0x10'),_0x250222,JSON[_0x21ca('0x42')](_0x3fdadf));})[_0x21ca('0x43')](function(_0x117ebc){logger['error']('[RPC][%s][AUTOREPLY]\x20%s',_0x250222,JSON['stringify'](_0x117ebc));})[_0x21ca('0x44')](function(){Promise[_0x21ca('0x45')]()[_0x21ca('0x3f')](function(){if(_0x3edd67[0x0]!=='2'||_0x3eb416[_0x21ca('0x16')])return;return rpc[_0x7e1cb5+_0x21ca('0x46')]['update'](_0x3eb416['id'],{'autoreplyExecuted':!![]})[_0x21ca('0x3f')](function(_0x12e082){logger[_0x21ca('0x17')](_0x21ca('0x47'),_0x250222,JSON[_0x21ca('0x42')](_0x12e082));})[_0x21ca('0x43')](function(_0x3df152){logger[_0x21ca('0x48')](_0x21ca('0x49'),_0x250222,JSON[_0x21ca('0x42')](_0x3df152));});})[_0x21ca('0x3f')](function(){_0x30dba7[_0x21ca('0x12')]();});});}else{return rpc[this[_0x21ca('0xd')]+_0x21ca('0x2c')][_0x21ca('0x41')](_0x5e5006)[_0x21ca('0x3f')](function(_0x388e98){logger[_0x21ca('0x17')](_0x21ca('0x10'),_0x250222,_0x5e5006[_0x21ca('0xe')]);})[_0x21ca('0x43')](function(_0x500142){logger[_0x21ca('0x48')](_0x21ca('0x10'),_0x250222,JSON['stringify'](_0x500142));})[_0x21ca('0x44')](function(){Promise[_0x21ca('0x45')]()[_0x21ca('0x3f')](function(){if(_0x3edd67[0x0]!=='2'||_0x3eb416['autoreplyExecuted'])return;return rpc[_0x7e1cb5+'Interaction'][_0x21ca('0x4a')](_0x3eb416['id'],{'autoreplyExecuted':!![]})[_0x21ca('0x3f')](function(_0x23a1ec){logger['info'](_0x21ca('0x47'),_0x250222,JSON[_0x21ca('0x42')](_0x23a1ec));})[_0x21ca('0x43')](function(_0x1c3fca){logger[_0x21ca('0x48')](_0x21ca('0x49'),_0x250222,JSON[_0x21ca('0x42')](_0x1c3fca));});})['then'](function(){_0x30dba7[_0x21ca('0x12')]();});});}}}catch(_0x58f30f){logger[_0x21ca('0x48')]('[%s][AUTOREPLY]\x20%s',_0x250222,JSON[_0x21ca('0x42')](_0x58f30f));_0x30dba7[_0x21ca('0x4b')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xad67=['finally','stop','stringify','moment','../../../../config/logger','routing','../../rpc/chatInteraction','../../rpc/openchannelInteraction','../../rpc/smsInteraction','../../rpc/mailInteraction','../../rpc/faxInteraction','../../rpc/whatsappInteraction','consequence','info','[%s][CLOSE]\x20reason\x20%s','YYYY-MM-DD\x20HH:mm:ss','system','channel','Interaction','update','then','[%s][CLOSE]\x20interaction\x20%s\x20has\x20been\x20closed!','interaction','catch','error'];(function(_0x42dec3,_0x5b6e0e){var _0x28dc5c=function(_0xf0c07f){while(--_0xf0c07f){_0x42dec3['push'](_0x42dec3['shift']());}};_0x28dc5c(++_0x5b6e0e);}(_0xad67,0x1de));var _0x7ad6=function(_0x49944a,_0x1a3723){_0x49944a=_0x49944a-0x0;var _0x2567fc=_0xad67[_0x49944a];return _0x2567fc;};'use strict';var moment=require(_0x7ad6('0x0'));var logger=require(_0x7ad6('0x1'))(_0x7ad6('0x2'));var rpc={'chatInteraction':require(_0x7ad6('0x3')),'openchannelInteraction':require(_0x7ad6('0x4')),'smsInteraction':require(_0x7ad6('0x5')),'mailInteraction':require(_0x7ad6('0x6')),'faxInteraction':require(_0x7ad6('0x7')),'whatsappInteraction':require(_0x7ad6('0x8'))};exports[_0x7ad6('0x9')]=function(_0x550c78,_0x100d4c,_0x598d58,_0x26ab15){return function(_0x10162d){try{logger[_0x7ad6('0xa')](_0x7ad6('0xb'),_0x550c78,_0x100d4c[0x0]);var _0x4765e9={'closed':0x1,'closedAt':moment()['format'](_0x7ad6('0xc')),'closeReason':_0x7ad6('0xd'),'disposition':_0x100d4c[0x0]};if(rpc[_0x26ab15[_0x7ad6('0xe')]+_0x7ad6('0xf')]){rpc[_0x26ab15[_0x7ad6('0xe')]+_0x7ad6('0xf')][_0x7ad6('0x10')](_0x26ab15['interaction']['id'],_0x4765e9)[_0x7ad6('0x11')](function(_0x266950){logger[_0x7ad6('0xa')](_0x7ad6('0x12'),_0x550c78,_0x26ab15[_0x7ad6('0x13')]['id']);})[_0x7ad6('0x14')](function(_0x1228ba){logger[_0x7ad6('0x15')]('[%s][CLOSE]\x20%s',_0x550c78,JSON['stringify'](_0x1228ba));})[_0x7ad6('0x16')](function(){_0x10162d[_0x7ad6('0x17')]();});}}catch(_0x3e11a6){logger[_0x7ad6('0x15')]('[%s][CLOSE]\x20%s',_0x550c78,JSON[_0x7ad6('0x18')](_0x3e11a6));_0x10162d['stop']();}};};
\ No newline at end of file
+var _0x79c0=['catch','error','stop','[%s][CLOSE]\x20%s','stringify','moment','../../../../config/logger','../../rpc/openchannelInteraction','../../rpc/mailInteraction','../../rpc/faxInteraction','../../rpc/whatsappInteraction','consequence','info','format','system','channel','Interaction','update','interaction','then'];(function(_0xa464c9,_0x7c86d8){var _0x3d73c4=function(_0x5c2056){while(--_0x5c2056){_0xa464c9['push'](_0xa464c9['shift']());}};_0x3d73c4(++_0x7c86d8);}(_0x79c0,0x195));var _0x079c=function(_0x476428,_0x571706){_0x476428=_0x476428-0x0;var _0x2ff216=_0x79c0[_0x476428];return _0x2ff216;};'use strict';var moment=require(_0x079c('0x0'));var logger=require(_0x079c('0x1'))('routing');var rpc={'chatInteraction':require('../../rpc/chatInteraction'),'openchannelInteraction':require(_0x079c('0x2')),'smsInteraction':require('../../rpc/smsInteraction'),'mailInteraction':require(_0x079c('0x3')),'faxInteraction':require(_0x079c('0x4')),'whatsappInteraction':require(_0x079c('0x5'))};exports[_0x079c('0x6')]=function(_0x2b8ae0,_0x364230,_0x171b51,_0x2bd0cb){return function(_0x150d8a){try{logger[_0x079c('0x7')]('[%s][CLOSE]\x20reason\x20%s',_0x2b8ae0,_0x364230[0x0]);var _0x4267a4={'closed':0x1,'closedAt':moment()[_0x079c('0x8')]('YYYY-MM-DD\x20HH:mm:ss'),'closeReason':_0x079c('0x9'),'disposition':_0x364230[0x0]};if(rpc[_0x2bd0cb[_0x079c('0xa')]+_0x079c('0xb')]){rpc[_0x2bd0cb[_0x079c('0xa')]+_0x079c('0xb')][_0x079c('0xc')](_0x2bd0cb[_0x079c('0xd')]['id'],_0x4267a4)[_0x079c('0xe')](function(_0x3e6d2b){logger['info']('[%s][CLOSE]\x20interaction\x20%s\x20has\x20been\x20closed!',_0x2b8ae0,_0x2bd0cb['interaction']['id']);})[_0x079c('0xf')](function(_0x3490ff){logger[_0x079c('0x10')]('[%s][CLOSE]\x20%s',_0x2b8ae0,JSON['stringify'](_0x3490ff));})['finally'](function(){_0x150d8a[_0x079c('0x11')]();});}}catch(_0x1b2792){logger[_0x079c('0x10')](_0x079c('0x12'),_0x2b8ae0,JSON[_0x079c('0x13')](_0x1b2792));_0x150d8a[_0x079c('0x11')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x53ec=['[%s][DIALOGFLOW]\x20Welcome\x20Message\x20has\x20been\x20sent!','stop','[%s][DIALOGFLOW]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!','message','fulfillment','speech','providerName','dialogflow','providerResponse','metadata','lodash','moment','apiai-promise','md5','./utils','../../../../config/logger','../../rpc/chatMessage','../../rpc/mailMessage','../../rpc/smsMessage','../../rpc/whatsappMessage','isNil','interaction','UserId','info','[%s][DIALOGFLOW]\x20%s','Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.','next','contact','out','channel','whatsapp','phone','chat','ChatWebsiteId','account','upperFirst','AccountId','InteractionId','created','isEmpty','body','getMustacheRender','Message','create','then','catch','error','stringify','finally'];(function(_0x770cfa,_0x182ece){var _0x35bd05=function(_0x211815){while(--_0x211815){_0x770cfa['push'](_0x770cfa['shift']());}};_0x35bd05(++_0x182ece);}(_0x53ec,0x192));var _0xc53e=function(_0x40b66c,_0x5c1d58){_0x40b66c=_0x40b66c-0x0;var _0x159671=_0x53ec[_0x40b66c];return _0x159671;};'use strict';var _=require(_0xc53e('0x0'));var moment=require(_0xc53e('0x1'));var apiai=require(_0xc53e('0x2'));var md5=require(_0xc53e('0x3'));var utils=require(_0xc53e('0x4'));var logger=require(_0xc53e('0x5'))('routing');var rpc={'chatMessage':require(_0xc53e('0x6')),'openchannelMessage':require('../../rpc/openchannelMessage'),'mailMessage':require(_0xc53e('0x7')),'smsMessage':require(_0xc53e('0x8')),'faxMessage':require('../../rpc/faxMessage'),'whatsappMessage':require(_0xc53e('0x9'))};exports['consequence']=function(_0x41a9e8,_0x2de88b){return function(_0x5d3b28){try{if(!_[_0xc53e('0xa')](this[_0xc53e('0xb')][_0xc53e('0xc')])){logger[_0xc53e('0xd')](_0xc53e('0xe'),_0x41a9e8,_0xc53e('0xf'));return _0x5d3b28[_0xc53e('0x10')]();}var _0x361e9d={'ContactId':this[_0xc53e('0x11')]['id'],'sentAt':moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'direction':_0xc53e('0x12')};if(this['channel']==='sms'||this[_0xc53e('0x13')]===_0xc53e('0x14')){_0x361e9d[_0xc53e('0x15')]=this[_0xc53e('0xb')]['phone'];}var _0x4e74c9=this[_0xc53e('0x13')];if(_0x4e74c9===_0xc53e('0x16')){_0x361e9d[_0xc53e('0x17')]=this[_0xc53e('0x18')]['id'];}else{_0x361e9d[_[_0xc53e('0x19')](_0x4e74c9)+_0xc53e('0x1a')]=this[_0xc53e('0x18')]['id'];}_0x361e9d[_[_0xc53e('0x19')](_0x4e74c9)+_0xc53e('0x1b')]=this[_0xc53e('0xb')]['id'];if(this['interaction'][_0xc53e('0x1c')]){var _0x191567=_0x2de88b[0x2];if(!_[_0xc53e('0x1d')](_0x191567)){_0x361e9d[_0xc53e('0x1e')]=utils[_0xc53e('0x1f')](_0x191567,this);return rpc[_0x4e74c9+_0xc53e('0x20')][_0xc53e('0x21')](_0x361e9d)[_0xc53e('0x22')](function(_0x3b550e){logger['info']('[%s][DIALOGFLOW]\x20%s',_0x41a9e8,_0x361e9d[_0xc53e('0x1e')]);})[_0xc53e('0x23')](function(_0x421641){logger[_0xc53e('0x24')](_0xc53e('0xe'),_0x41a9e8,JSON[_0xc53e('0x25')](_0x421641));})[_0xc53e('0x26')](function(){logger[_0xc53e('0xd')](_0xc53e('0x27'),_0x41a9e8);_0x5d3b28[_0xc53e('0x28')]();});}else{logger[_0xc53e('0xd')](_0xc53e('0x29'),_0x41a9e8);_0x5d3b28[_0xc53e('0x28')]();}}else{var _0x4fb695=this;var _0x47cfdd=apiai(_0x2de88b[0x0],{'language':_0x2de88b[0x1]||'en'});return _0x47cfdd['textRequest'](this[_0xc53e('0x2a')][_0xc53e('0x1e')],{'sessionId':md5(this[_0xc53e('0xb')]['id'])})[_0xc53e('0x22')](function(_0x180811){_0x4fb695['body']['dialogflow']=_0x180811;_0x361e9d[_0xc53e('0x1e')]=_0x180811['result'][_0xc53e('0x2b')][_0xc53e('0x2c')];_0x361e9d[_0xc53e('0x2d')]=_0xc53e('0x2e');_0x361e9d[_0xc53e('0x2f')]=JSON['stringify'](_0x180811);return rpc[_0x4e74c9+_0xc53e('0x20')]['create'](_0x361e9d)['then'](function(_0x5c65d3){logger[_0xc53e('0xd')]('[%s][DIALOGFLOW]\x20%s',_0x41a9e8,_0x361e9d[_0xc53e('0x1e')]);if(_0x180811['result'][_0xc53e('0x30')]['endConversation']){_0x5d3b28['next']();}else{_0x5d3b28[_0xc53e('0x28')]();}})[_0xc53e('0x23')](function(_0x42dec1){logger[_0xc53e('0x24')](_0xc53e('0xe'),_0x41a9e8,JSON[_0xc53e('0x25')](_0x42dec1));_0x5d3b28[_0xc53e('0x10')]();});})[_0xc53e('0x23')](function(_0x4ace0b){logger[_0xc53e('0x24')](_0xc53e('0xe'),_0x41a9e8,_0x4ace0b[_0xc53e('0x2a')]);_0x5d3b28['next']();});}}catch(_0x4057f9){logger['error'](_0xc53e('0xe'),_0x41a9e8,JSON[_0xc53e('0x25')](_0x4057f9));_0x5d3b28['stop']();}};};
\ No newline at end of file
+var _0xe953=['body','then','dialogflow','result','fulfillment','speech','providerName','metadata','endConversation','lodash','moment','apiai-promise','./utils','../../../../config/logger','routing','../../rpc/chatMessage','../../rpc/openchannelMessage','../../rpc/mailMessage','../../rpc/smsMessage','consequence','isNil','interaction','[%s][DIALOGFLOW]\x20%s','next','format','YYYY-MM-DD\x20HH:mm:ss','out','sms','channel','whatsapp','phone','chat','account','upperFirst','AccountId','InteractionId','created','isEmpty','getMustacheRender','Message','create','info','catch','error','stringify','stop','[%s][DIALOGFLOW]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!','message'];(function(_0x5aa10b,_0x64fe00){var _0x5ba8e7=function(_0x4ae6d0){while(--_0x4ae6d0){_0x5aa10b['push'](_0x5aa10b['shift']());}};_0x5ba8e7(++_0x64fe00);}(_0xe953,0xf9));var _0x3e95=function(_0x5c3ae9,_0x450f9a){_0x5c3ae9=_0x5c3ae9-0x0;var _0x3f5950=_0xe953[_0x5c3ae9];return _0x3f5950;};'use strict';var _=require(_0x3e95('0x0'));var moment=require(_0x3e95('0x1'));var apiai=require(_0x3e95('0x2'));var md5=require('md5');var utils=require(_0x3e95('0x3'));var logger=require(_0x3e95('0x4'))(_0x3e95('0x5'));var rpc={'chatMessage':require(_0x3e95('0x6')),'openchannelMessage':require(_0x3e95('0x7')),'mailMessage':require(_0x3e95('0x8')),'smsMessage':require(_0x3e95('0x9')),'faxMessage':require('../../rpc/faxMessage'),'whatsappMessage':require('../../rpc/whatsappMessage')};exports[_0x3e95('0xa')]=function(_0x5704fb,_0x457ca6){return function(_0x5f0bc9){try{if(!_[_0x3e95('0xb')](this[_0x3e95('0xc')]['UserId'])){logger['info'](_0x3e95('0xd'),_0x5704fb,'Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.');return _0x5f0bc9[_0x3e95('0xe')]();}var _0x478d4d={'ContactId':this['contact']['id'],'sentAt':moment()[_0x3e95('0xf')](_0x3e95('0x10')),'direction':_0x3e95('0x11')};if(this['channel']===_0x3e95('0x12')||this[_0x3e95('0x13')]===_0x3e95('0x14')){_0x478d4d[_0x3e95('0x15')]=this[_0x3e95('0xc')]['phone'];}var _0x26bde3=this[_0x3e95('0x13')];if(_0x26bde3===_0x3e95('0x16')){_0x478d4d['ChatWebsiteId']=this[_0x3e95('0x17')]['id'];}else{_0x478d4d[_[_0x3e95('0x18')](_0x26bde3)+_0x3e95('0x19')]=this[_0x3e95('0x17')]['id'];}_0x478d4d[_[_0x3e95('0x18')](_0x26bde3)+_0x3e95('0x1a')]=this[_0x3e95('0xc')]['id'];if(this['interaction'][_0x3e95('0x1b')]){var _0x109055=_0x457ca6[0x2];if(!_[_0x3e95('0x1c')](_0x109055)){_0x478d4d['body']=utils[_0x3e95('0x1d')](_0x109055,this);return rpc[_0x26bde3+_0x3e95('0x1e')][_0x3e95('0x1f')](_0x478d4d)['then'](function(_0x557d0a){logger[_0x3e95('0x20')]('[%s][DIALOGFLOW]\x20%s',_0x5704fb,_0x478d4d['body']);})[_0x3e95('0x21')](function(_0x563060){logger[_0x3e95('0x22')](_0x3e95('0xd'),_0x5704fb,JSON[_0x3e95('0x23')](_0x563060));})['finally'](function(){logger[_0x3e95('0x20')]('[%s][DIALOGFLOW]\x20Welcome\x20Message\x20has\x20been\x20sent!',_0x5704fb);_0x5f0bc9[_0x3e95('0x24')]();});}else{logger[_0x3e95('0x20')](_0x3e95('0x25'),_0x5704fb);_0x5f0bc9['stop']();}}else{var _0x4c6181=this;var _0x13c2c5=apiai(_0x457ca6[0x0],{'language':_0x457ca6[0x1]||'en'});return _0x13c2c5['textRequest'](this[_0x3e95('0x26')][_0x3e95('0x27')],{'sessionId':md5(this['interaction']['id'])})[_0x3e95('0x28')](function(_0x51b673){_0x4c6181[_0x3e95('0x27')][_0x3e95('0x29')]=_0x51b673;_0x478d4d[_0x3e95('0x27')]=_0x51b673[_0x3e95('0x2a')][_0x3e95('0x2b')][_0x3e95('0x2c')];_0x478d4d[_0x3e95('0x2d')]=_0x3e95('0x29');_0x478d4d['providerResponse']=JSON['stringify'](_0x51b673);return rpc[_0x26bde3+_0x3e95('0x1e')][_0x3e95('0x1f')](_0x478d4d)['then'](function(_0x19e583){logger[_0x3e95('0x20')](_0x3e95('0xd'),_0x5704fb,_0x478d4d[_0x3e95('0x27')]);if(_0x51b673[_0x3e95('0x2a')][_0x3e95('0x2e')][_0x3e95('0x2f')]){_0x5f0bc9[_0x3e95('0xe')]();}else{_0x5f0bc9[_0x3e95('0x24')]();}})[_0x3e95('0x21')](function(_0x3c0968){logger[_0x3e95('0x22')](_0x3e95('0xd'),_0x5704fb,JSON[_0x3e95('0x23')](_0x3c0968));_0x5f0bc9[_0x3e95('0xe')]();});})[_0x3e95('0x21')](function(_0xeb20){logger['error'](_0x3e95('0xd'),_0x5704fb,_0xeb20['message']);_0x5f0bc9[_0x3e95('0xe')]();});}}catch(_0xeedeaa){logger[_0x3e95('0x22')]('[%s][DIALOGFLOW]\x20%s',_0x5704fb,JSON['stringify'](_0xeedeaa));_0x5f0bc9[_0x3e95('0x24')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0db5=['[%s][DIALOGFLOWV2]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!','stop','replace','sessionPath','detectIntent','length','diagnosticInfo','queryResult','fields','end_conversation','boolValue','DIALOGFLOWV2_ACTION','DIALOGFLOWV2_ALLREQUIREDPARAMSPRESENT','allRequiredParamsPresent','DIALOGFLOWV2_ENDCONVERSATION','DIALOGFLOWV2_INTENTNAME','name','intent','displayName','DIALOGFLOWV2_ISFALLBACKINTENT','DIALOGFLOWV2_QUERYTEXT','queryText','DIALOGFLOWV2_SCORE','providerResponse','fulfillmentText','push','all','message','lodash','dialogflow','moment','bluebird','../../../../config/logger','routing','./utils','../../rpc/chatMessage','../../rpc/openchannelMessage','../../rpc/mailMessage','../../rpc/smsMessage','../../rpc/faxMessage','../../rpc/whatsappMessage','clone','body','Message','create','then','info','[%s][DIALOGFLOWV2]\x20%s','catch','error','stringify','consequence','isNil','interaction','UserId','next','contact','format','YYYY-MM-DD\x20HH:mm:ss','out','sms','phone','channel','chat','ChatWebsiteId','AccountId','account','upperFirst','created','isEmpty','getMustacheRender','finally','[%s][DIALOGFLOWV2]\x20Welcome\x20Message\x20has\x20been\x20sent!'];(function(_0x201747,_0x380e40){var _0x187e2c=function(_0x813e45){while(--_0x813e45){_0x201747['push'](_0x201747['shift']());}};_0x187e2c(++_0x380e40);}(_0x0db5,0xae));var _0x50db=function(_0x116518,_0x33d09d){_0x116518=_0x116518-0x0;var _0x5416b5=_0x0db5[_0x116518];return _0x5416b5;};'use strict';var _=require(_0x50db('0x0'));var dialogflow=require(_0x50db('0x1'));var md5=require('md5');var moment=require(_0x50db('0x2'));var Promise=require(_0x50db('0x3'));var logger=require(_0x50db('0x4'))(_0x50db('0x5'));var utils=require(_0x50db('0x6'));var rpc={'chatMessage':require(_0x50db('0x7')),'openchannelMessage':require(_0x50db('0x8')),'mailMessage':require(_0x50db('0x9')),'smsMessage':require(_0x50db('0xa')),'faxMessage':require(_0x50db('0xb')),'whatsappMessage':require(_0x50db('0xc'))};function createMessage(_0xbf807,_0x2aab96,_0x4362c8,_0x3faa98){return new Promise(function(_0x132ee3,_0x81ec61){var _0x573cce=_[_0x50db('0xd')](_0x4362c8);_0x573cce[_0x50db('0xe')]=_0x3faa98;return rpc[_0x2aab96+_0x50db('0xf')][_0x50db('0x10')](_0x573cce)[_0x50db('0x11')](function(){logger[_0x50db('0x12')](_0x50db('0x13'),_0xbf807,_0x573cce[_0x50db('0xe')]);_0x132ee3();})[_0x50db('0x14')](function(_0xc1dcd3){logger[_0x50db('0x15')]('[%s][DIALOGFLOWV2]\x20%s',_0xbf807,JSON[_0x50db('0x16')](_0xc1dcd3));_0x81ec61(_0xc1dcd3);});});}exports[_0x50db('0x17')]=function(_0x4c801f,_0x51fe2e){return function(_0xe110ec){try{if(!_[_0x50db('0x18')](this[_0x50db('0x19')][_0x50db('0x1a')])){logger[_0x50db('0x12')](_0x50db('0x13'),_0x4c801f,'Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.');return _0xe110ec[_0x50db('0x1b')]();}var _0x185993={'ContactId':this[_0x50db('0x1c')]['id'],'sentAt':moment()[_0x50db('0x1d')](_0x50db('0x1e')),'direction':_0x50db('0x1f')};if(this['channel']===_0x50db('0x20')||this['channel']==='whatsapp'){_0x185993[_0x50db('0x21')]=this['interaction'][_0x50db('0x21')];}var _0x5a26b5=this[_0x50db('0x22')];if(_0x5a26b5===_0x50db('0x23')){_0x185993[_0x50db('0x24')]=this['account']['id'];}else{_0x185993[_['upperFirst'](_0x5a26b5)+_0x50db('0x25')]=this[_0x50db('0x26')]['id'];}_0x185993[_[_0x50db('0x27')](_0x5a26b5)+'InteractionId']=this['interaction']['id'];if(this[_0x50db('0x19')][_0x50db('0x28')]){var _0x31be22=_0x51fe2e[0x4];if(!_[_0x50db('0x29')](_0x31be22)){_0x185993[_0x50db('0xe')]=utils[_0x50db('0x2a')](_0x31be22,this);return rpc[_0x5a26b5+_0x50db('0xf')][_0x50db('0x10')](_0x185993)[_0x50db('0x11')](function(_0x40bc68){logger['info'](_0x50db('0x13'),_0x4c801f,_0x185993[_0x50db('0xe')]);})['catch'](function(_0x4518b1){logger[_0x50db('0x15')]('[%s][DIALOGFLOWV2]\x20%s',_0x4c801f,JSON[_0x50db('0x16')](_0x4518b1));})[_0x50db('0x2b')](function(){logger[_0x50db('0x12')](_0x50db('0x2c'),_0x4c801f);_0xe110ec['stop']();});}else{logger[_0x50db('0x12')](_0x50db('0x2d'),_0x4c801f);_0xe110ec[_0x50db('0x2e')]();}}else{var _0x1c0b8c=this;var _0x5ba163=_0x51fe2e[0x2][_0x50db('0x2f')](/\\n/g,'\x0a');var _0x1186af={'credentials':{'private_key':_0x5ba163,'client_email':_0x51fe2e[0x1]}};var _0x36b5dc=new dialogflow['SessionsClient'](_0x1186af);var _0x32b022=_0x36b5dc[_0x50db('0x30')](_0x51fe2e[0x0],md5(_0x1c0b8c[_0x50db('0x19')]['id']));var _0x31431={'session':_0x32b022,'queryInput':{'text':{'text':_0x1c0b8c['message'][_0x50db('0xe')],'languageCode':_0x51fe2e[0x3]||'en'}}};return _0x36b5dc[_0x50db('0x31')](_0x31431)['then'](function(_0x1a396a){if(_0x1a396a&&_0x1a396a[_0x50db('0x32')]){_0x1c0b8c[_0x50db('0xe')]['dialogflowV2']=_0x1a396a;var _0x15e763=_0x1a396a[0x0];var _0x5a9a0e=_0x15e763['queryResult'][_0x50db('0x33')]&&_0x15e763[_0x50db('0x34')][_0x50db('0x33')][_0x50db('0x35')]?_0x15e763[_0x50db('0x34')]['diagnosticInfo'][_0x50db('0x35')][_0x50db('0x36')][_0x50db('0x37')]:![];_0x1c0b8c[_0x50db('0xe')][_0x50db('0x38')]=_0x15e763[_0x50db('0x34')]['action'];_0x1c0b8c[_0x50db('0xe')][_0x50db('0x39')]=_0x15e763[_0x50db('0x34')][_0x50db('0x3a')];_0x1c0b8c[_0x50db('0xe')][_0x50db('0x3b')]=_0x15e763[_0x50db('0x34')]['diagnosticInfo']&&_0x15e763[_0x50db('0x34')]['diagnosticInfo']['fields']?_0x15e763[_0x50db('0x34')][_0x50db('0x33')][_0x50db('0x35')]['end_conversation'][_0x50db('0x37')]:![];_0x1c0b8c[_0x50db('0xe')][_0x50db('0x3c')]=_0x15e763[_0x50db('0x34')]['intent'][_0x50db('0x3d')];_0x1c0b8c[_0x50db('0xe')]['DIALOGFLOWV2_INTENTDISPLAYNAME']=_0x15e763[_0x50db('0x34')][_0x50db('0x3e')][_0x50db('0x3f')];_0x1c0b8c[_0x50db('0xe')][_0x50db('0x40')]=_0x15e763[_0x50db('0x34')][_0x50db('0x3e')]['isFallback'];_0x1c0b8c['body']['DIALOGFLOWV2_LANGUAGECODE']=_0x15e763[_0x50db('0x34')]['languageCode'];_0x1c0b8c[_0x50db('0xe')][_0x50db('0x41')]=_0x15e763['queryResult'][_0x50db('0x42')];_0x1c0b8c[_0x50db('0xe')][_0x50db('0x43')]=_0x15e763[_0x50db('0x34')]['intentDetectionConfidence'];_0x185993['providerName']='dialogflowV2';_0x185993[_0x50db('0x44')]=JSON[_0x50db('0x16')](_0x1a396a);var _0x26e795=[];for(var _0x51c147=0x0;_0x51c147<_0x1a396a[_0x50db('0x32')];_0x51c147++){var _0x4c7b7c=_0x1a396a[_0x51c147];if(_0x4c7b7c&&_0x4c7b7c[_0x50db('0x34')]&&_0x4c7b7c[_0x50db('0x34')][_0x50db('0x45')]){_0x26e795[_0x50db('0x46')](createMessage(_0x4c801f,_0x5a26b5,_0x185993,_0x4c7b7c[_0x50db('0x34')][_0x50db('0x45')]));}}return Promise[_0x50db('0x47')](_0x26e795)[_0x50db('0x11')](function(){if(_0x5a9a0e){_0xe110ec[_0x50db('0x1b')]();}else{_0xe110ec[_0x50db('0x2e')]();}})['catch'](function(_0x6c6554){logger[_0x50db('0x15')]('[%s][DIALOGFLOWV2]\x20%s',_0x4c801f,JSON['stringify'](_0x6c6554));_0xe110ec[_0x50db('0x1b')]();});}})[_0x50db('0x14')](function(_0x41176a){logger[_0x50db('0x15')]('[%s][DIALOGFLOWV2]\x20%s',_0x4c801f,_0x41176a[_0x50db('0x48')]);_0xe110ec[_0x50db('0x1b')]();});}}catch(_0x28f696){logger[_0x50db('0x15')](_0x50db('0x13'),_0x4c801f,JSON[_0x50db('0x16')](_0x28f696));_0xe110ec[_0x50db('0x2e')]();}};};
\ No newline at end of file
+var _0xf015=['DIALOGFLOWV2_LANGUAGECODE','DIALOGFLOWV2_QUERYTEXT','DIALOGFLOWV2_SCORE','intentDetectionConfidence','providerName','dialogflowV2','providerResponse','fulfillmentText','push','all','md5','../../../../config/logger','./utils','../../rpc/openchannelMessage','../../rpc/mailMessage','../../rpc/smsMessage','../../rpc/faxMessage','../../rpc/whatsappMessage','body','create','catch','error','[%s][DIALOGFLOWV2]\x20%s','stringify','isNil','interaction','UserId','info','Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.','next','contact','format','YYYY-MM-DD\x20HH:mm:ss','out','channel','phone','upperFirst','AccountId','created','getMustacheRender','Message','stop','SessionsClient','message','detectIntent','then','length','diagnosticInfo','queryResult','fields','boolValue','DIALOGFLOWV2_ACTION','action','DIALOGFLOWV2_ALLREQUIREDPARAMSPRESENT','allRequiredParamsPresent','DIALOGFLOWV2_ENDCONVERSATION','intent','DIALOGFLOWV2_INTENTDISPLAYNAME','displayName','DIALOGFLOWV2_ISFALLBACKINTENT','isFallback'];(function(_0x45955c,_0x17d6ef){var _0x35d69a=function(_0x1b2387){while(--_0x1b2387){_0x45955c['push'](_0x45955c['shift']());}};_0x35d69a(++_0x17d6ef);}(_0xf015,0x13b));var _0x5f01=function(_0x5d5eeb,_0x4c7ae0){_0x5d5eeb=_0x5d5eeb-0x0;var _0x2b9cb5=_0xf015[_0x5d5eeb];return _0x2b9cb5;};'use strict';var _=require('lodash');var dialogflow=require('dialogflow');var md5=require(_0x5f01('0x0'));var moment=require('moment');var Promise=require('bluebird');var logger=require(_0x5f01('0x1'))('routing');var utils=require(_0x5f01('0x2'));var rpc={'chatMessage':require('../../rpc/chatMessage'),'openchannelMessage':require(_0x5f01('0x3')),'mailMessage':require(_0x5f01('0x4')),'smsMessage':require(_0x5f01('0x5')),'faxMessage':require(_0x5f01('0x6')),'whatsappMessage':require(_0x5f01('0x7'))};function createMessage(_0x5bc7a3,_0x412067,_0x3d35da,_0xb5cfef){return new Promise(function(_0x4c67b3,_0x522ef4){var _0x4d3eb7=_['clone'](_0x3d35da);_0x4d3eb7[_0x5f01('0x8')]=_0xb5cfef;return rpc[_0x412067+'Message'][_0x5f01('0x9')](_0x4d3eb7)['then'](function(){logger['info']('[%s][DIALOGFLOWV2]\x20%s',_0x5bc7a3,_0x4d3eb7[_0x5f01('0x8')]);_0x4c67b3();})[_0x5f01('0xa')](function(_0x42491b){logger[_0x5f01('0xb')](_0x5f01('0xc'),_0x5bc7a3,JSON[_0x5f01('0xd')](_0x42491b));_0x522ef4(_0x42491b);});});}exports['consequence']=function(_0x50b23c,_0x222263){return function(_0x2dc70f){try{if(!_[_0x5f01('0xe')](this[_0x5f01('0xf')][_0x5f01('0x10')])){logger[_0x5f01('0x11')](_0x5f01('0xc'),_0x50b23c,_0x5f01('0x12'));return _0x2dc70f[_0x5f01('0x13')]();}var _0x1f5e88={'ContactId':this[_0x5f01('0x14')]['id'],'sentAt':moment()[_0x5f01('0x15')](_0x5f01('0x16')),'direction':_0x5f01('0x17')};if(this[_0x5f01('0x18')]==='sms'||this['channel']==='whatsapp'){_0x1f5e88[_0x5f01('0x19')]=this[_0x5f01('0xf')][_0x5f01('0x19')];}var _0x3eb02d=this[_0x5f01('0x18')];if(_0x3eb02d==='chat'){_0x1f5e88['ChatWebsiteId']=this['account']['id'];}else{_0x1f5e88[_[_0x5f01('0x1a')](_0x3eb02d)+_0x5f01('0x1b')]=this['account']['id'];}_0x1f5e88[_[_0x5f01('0x1a')](_0x3eb02d)+'InteractionId']=this[_0x5f01('0xf')]['id'];if(this[_0x5f01('0xf')][_0x5f01('0x1c')]){var _0x278eb0=_0x222263[0x4];if(!_['isEmpty'](_0x278eb0)){_0x1f5e88[_0x5f01('0x8')]=utils[_0x5f01('0x1d')](_0x278eb0,this);return rpc[_0x3eb02d+_0x5f01('0x1e')]['create'](_0x1f5e88)['then'](function(_0x121e39){logger[_0x5f01('0x11')]('[%s][DIALOGFLOWV2]\x20%s',_0x50b23c,_0x1f5e88[_0x5f01('0x8')]);})[_0x5f01('0xa')](function(_0x1cb7c1){logger['error'](_0x5f01('0xc'),_0x50b23c,JSON[_0x5f01('0xd')](_0x1cb7c1));})['finally'](function(){logger[_0x5f01('0x11')]('[%s][DIALOGFLOWV2]\x20Welcome\x20Message\x20has\x20been\x20sent!',_0x50b23c);_0x2dc70f[_0x5f01('0x1f')]();});}else{logger['info']('[%s][DIALOGFLOWV2]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!',_0x50b23c);_0x2dc70f['stop']();}}else{var _0x6276f6=this;var _0x20ad9c=_0x222263[0x2]['replace'](/\\n/g,'\x0a');var _0x33c3a4={'credentials':{'private_key':_0x20ad9c,'client_email':_0x222263[0x1]}};var _0x1c7fa8=new dialogflow[(_0x5f01('0x20'))](_0x33c3a4);var _0x312ffc=_0x1c7fa8['sessionPath'](_0x222263[0x0],md5(_0x6276f6[_0x5f01('0xf')]['id']));var _0x392e51={'session':_0x312ffc,'queryInput':{'text':{'text':_0x6276f6[_0x5f01('0x21')][_0x5f01('0x8')],'languageCode':_0x222263[0x3]||'en'}}};return _0x1c7fa8[_0x5f01('0x22')](_0x392e51)[_0x5f01('0x23')](function(_0x1666fb){if(_0x1666fb&&_0x1666fb[_0x5f01('0x24')]){_0x6276f6[_0x5f01('0x8')]['dialogflowV2']=_0x1666fb;var _0x489f27=_0x1666fb[0x0];var _0x59fe68=_0x489f27['queryResult'][_0x5f01('0x25')]&&_0x489f27[_0x5f01('0x26')][_0x5f01('0x25')][_0x5f01('0x27')]?_0x489f27[_0x5f01('0x26')][_0x5f01('0x25')][_0x5f01('0x27')]['end_conversation'][_0x5f01('0x28')]:![];_0x6276f6[_0x5f01('0x8')][_0x5f01('0x29')]=_0x489f27[_0x5f01('0x26')][_0x5f01('0x2a')];_0x6276f6[_0x5f01('0x8')][_0x5f01('0x2b')]=_0x489f27[_0x5f01('0x26')][_0x5f01('0x2c')];_0x6276f6[_0x5f01('0x8')][_0x5f01('0x2d')]=_0x489f27[_0x5f01('0x26')][_0x5f01('0x25')]&&_0x489f27[_0x5f01('0x26')][_0x5f01('0x25')][_0x5f01('0x27')]?_0x489f27[_0x5f01('0x26')][_0x5f01('0x25')][_0x5f01('0x27')]['end_conversation'][_0x5f01('0x28')]:![];_0x6276f6['body']['DIALOGFLOWV2_INTENTNAME']=_0x489f27[_0x5f01('0x26')][_0x5f01('0x2e')]['name'];_0x6276f6['body'][_0x5f01('0x2f')]=_0x489f27[_0x5f01('0x26')]['intent'][_0x5f01('0x30')];_0x6276f6[_0x5f01('0x8')][_0x5f01('0x31')]=_0x489f27[_0x5f01('0x26')]['intent'][_0x5f01('0x32')];_0x6276f6[_0x5f01('0x8')][_0x5f01('0x33')]=_0x489f27[_0x5f01('0x26')]['languageCode'];_0x6276f6[_0x5f01('0x8')][_0x5f01('0x34')]=_0x489f27[_0x5f01('0x26')]['queryText'];_0x6276f6['body'][_0x5f01('0x35')]=_0x489f27[_0x5f01('0x26')][_0x5f01('0x36')];_0x1f5e88[_0x5f01('0x37')]=_0x5f01('0x38');_0x1f5e88[_0x5f01('0x39')]=JSON[_0x5f01('0xd')](_0x1666fb);var _0x8fdb8b=[];for(var _0x377565=0x0;_0x377565<_0x1666fb[_0x5f01('0x24')];_0x377565++){var _0x33839e=_0x1666fb[_0x377565];if(_0x33839e&&_0x33839e[_0x5f01('0x26')]&&_0x33839e[_0x5f01('0x26')][_0x5f01('0x3a')]){_0x8fdb8b[_0x5f01('0x3b')](createMessage(_0x50b23c,_0x3eb02d,_0x1f5e88,_0x33839e['queryResult'][_0x5f01('0x3a')]));}}return Promise[_0x5f01('0x3c')](_0x8fdb8b)[_0x5f01('0x23')](function(){if(_0x59fe68){_0x2dc70f[_0x5f01('0x13')]();}else{_0x2dc70f[_0x5f01('0x1f')]();}})[_0x5f01('0xa')](function(_0x3f4776){logger[_0x5f01('0xb')](_0x5f01('0xc'),_0x50b23c,JSON['stringify'](_0x3f4776));_0x2dc70f[_0x5f01('0x13')]();});}})[_0x5f01('0xa')](function(_0x1325ee){logger[_0x5f01('0xb')]('[%s][DIALOGFLOWV2]\x20%s',_0x50b23c,_0x1325ee[_0x5f01('0x21')]);_0x2dc70f[_0x5f01('0x13')]();});}}catch(_0x3f9dd9){logger[_0x5f01('0xb')](_0x5f01('0xc'),_0x50b23c,JSON[_0x5f01('0xd')](_0x3f9dd9));_0x2dc70f['stop']();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6a73=['priority\x20false\x20is\x20a\x20number','fromString','getMustacheRender','length','[%s][GOTOIF]\x20%s','map','message','join','stop','priorityTrue','priorityFalse','info','condition','next','[%s][GOTOIF]\x20priority\x20%s\x20found\x20at\x20index:\x20%s','error','[%s][GOTOIF]\x20eval\x20error:\x20%s','stringify','validate','lodash','html-to-text','./utils','routing','string','number','priority\x20true\x20is\x20a\x20number'];(function(_0x57b1af,_0x20c2d4){var _0x5073d3=function(_0x16343e){while(--_0x16343e){_0x57b1af['push'](_0x57b1af['shift']());}};_0x5073d3(++_0x20c2d4);}(_0x6a73,0x198));var _0x36a7=function(_0x4de877,_0x340170){_0x4de877=_0x4de877-0x0;var _0xb2cfeb=_0x6a73[_0x4de877];return _0xb2cfeb;};'use strict';var schema=require(_0x36a7('0x0'));var _=require(_0x36a7('0x1'));var htmlToText=require(_0x36a7('0x2'));var utils=require(_0x36a7('0x3'));var logger=require('../../../../config/logger')(_0x36a7('0x4'));var gotoif=schema({'condition':{'type':_0x36a7('0x5'),'required':!![],'message':'condition\x20is\x20a\x20string\x20and\x20it\x20is\x20required'},'priorityTrue':{'type':_0x36a7('0x6'),'message':_0x36a7('0x7')},'priorityFalse':{'type':'number','message':_0x36a7('0x8')}});exports['consequence']=function(_0x5157e4,_0x24f51e){return function(_0x3d341d){try{var _0x5640a5={'condition':htmlToText[_0x36a7('0x9')](utils[_0x36a7('0xa')](_0x24f51e[0x0],this),{'wordwrap':![]})['replace'](/<\/?[^>]+(>|$)/g,''),'priorityTrue':_0x24f51e[0x1],'priorityFalse':_0x24f51e[0x2]};var _0x141485=gotoif[_0x36a7('0x0')](_0x5640a5,{'typecast':!![]});if(_0x141485[_0x36a7('0xb')]){logger['error'](_0x36a7('0xc'),_0x5157e4,_[_0x36a7('0xd')](_0x141485,_0x36a7('0xe'))[_0x36a7('0xf')](',\x20'));_0x3d341d[_0x36a7('0x10')]();}else{try{var _0x3eb196=eval('('+_0x5640a5['condition']+')');var _0x3b841f=_0x3eb196?_0x5640a5[_0x36a7('0x11')]:_0x5640a5[_0x36a7('0x12')];logger[_0x36a7('0x13')]('[%s][GOTOIF]\x20condition\x20%s\x20is\x20%s\x20try\x20goto\x20priority\x20%s',_0x5157e4,_0x5640a5[_0x36a7('0x14')],_0x3eb196,_0x3b841f||_0x36a7('0x15'));if(_0x3b841f){var _0x2f2c63=_['findIndex'](_0x3d341d['rules'](),{'p':_0x3b841f});if(_0x2f2c63>=0x0){logger[_0x36a7('0x13')](_0x36a7('0x16'),_0x5157e4,_0x3b841f||_0x36a7('0x15'),_0x2f2c63);_0x3d341d[_0x36a7('0x15')](_0x2f2c63);}else{logger['info']('[%s][GOTOIF]\x20priority\x20%s\x20not\x20found',_0x5157e4,_0x3b841f||_0x36a7('0x15'));_0x3d341d['stop']();}}else{_0x3d341d['next']();}}catch(_0x4e4b62){logger[_0x36a7('0x17')](_0x36a7('0x18'),_0x5157e4,_0x4e4b62[_0x36a7('0xe')]);_0x3d341d[_0x36a7('0x10')]();}}}catch(_0x179e84){logger[_0x36a7('0x17')](_0x36a7('0xc'),_0x5157e4,JSON[_0x36a7('0x19')](_0x179e84));_0x3d341d[_0x36a7('0x10')]();}};};
\ No newline at end of file
+var _0xa399=['routing','condition\x20is\x20a\x20string\x20and\x20it\x20is\x20required','number','priority\x20true\x20is\x20a\x20number','priority\x20false\x20is\x20a\x20number','consequence','fromString','getMustacheRender','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','[%s][GOTOIF]\x20priority\x20%s\x20found\x20at\x20index:\x20%s','[%s][GOTOIF]\x20priority\x20%s\x20not\x20found','validate','lodash','html-to-text','./utils','../../../../config/logger'];(function(_0x3da254,_0x39a7a8){var _0x1e7ef9=function(_0x4cc41a){while(--_0x4cc41a){_0x3da254['push'](_0x3da254['shift']());}};_0x1e7ef9(++_0x39a7a8);}(_0xa399,0x1f3));var _0x9a39=function(_0x1d24eb,_0x12295b){_0x1d24eb=_0x1d24eb-0x0;var _0x1dc576=_0xa399[_0x1d24eb];return _0x1dc576;};'use strict';var schema=require(_0x9a39('0x0'));var _=require(_0x9a39('0x1'));var htmlToText=require(_0x9a39('0x2'));var utils=require(_0x9a39('0x3'));var logger=require(_0x9a39('0x4'))(_0x9a39('0x5'));var gotoif=schema({'condition':{'type':'string','required':!![],'message':_0x9a39('0x6')},'priorityTrue':{'type':_0x9a39('0x7'),'message':_0x9a39('0x8')},'priorityFalse':{'type':_0x9a39('0x7'),'message':_0x9a39('0x9')}});exports[_0x9a39('0xa')]=function(_0x57267a,_0x13f057){return function(_0x4e72c0){try{var _0x4547d0={'condition':htmlToText[_0x9a39('0xb')](utils[_0x9a39('0xc')](_0x13f057[0x0],this),{'wordwrap':![]})['replace'](/<\/?[^>]+(>|$)/g,''),'priorityTrue':_0x13f057[0x1],'priorityFalse':_0x13f057[0x2]};var _0x228c2d=gotoif[_0x9a39('0x0')](_0x4547d0,{'typecast':!![]});if(_0x228c2d['length']){logger[_0x9a39('0xd')](_0x9a39('0xe'),_0x57267a,_[_0x9a39('0xf')](_0x228c2d,_0x9a39('0x10'))[_0x9a39('0x11')](',\x20'));_0x4e72c0[_0x9a39('0x12')]();}else{try{var _0x57336f=eval('('+_0x4547d0[_0x9a39('0x13')]+')');var _0xdc8d5d=_0x57336f?_0x4547d0[_0x9a39('0x14')]:_0x4547d0[_0x9a39('0x15')];logger[_0x9a39('0x16')](_0x9a39('0x17'),_0x57267a,_0x4547d0['condition'],_0x57336f,_0xdc8d5d||_0x9a39('0x18'));if(_0xdc8d5d){var _0x444ac1=_[_0x9a39('0x19')](_0x4e72c0['rules'](),{'p':_0xdc8d5d});if(_0x444ac1>=0x0){logger[_0x9a39('0x16')](_0x9a39('0x1a'),_0x57267a,_0xdc8d5d||_0x9a39('0x18'),_0x444ac1);_0x4e72c0[_0x9a39('0x18')](_0x444ac1);}else{logger[_0x9a39('0x16')](_0x9a39('0x1b'),_0x57267a,_0xdc8d5d||_0x9a39('0x18'));_0x4e72c0['stop']();}}else{_0x4e72c0['next']();}}catch(_0x1c658c){logger[_0x9a39('0xd')]('[%s][GOTOIF]\x20eval\x20error:\x20%s',_0x57267a,_0x1c658c['message']);_0x4e72c0['stop']();}}}catch(_0x33fdca){logger[_0x9a39('0xd')](_0x9a39('0xe'),_0x57267a,JSON['stringify'](_0x33fdca));_0x4e72c0[_0x9a39('0x12')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1a65=['findIndex','rules','[%s][GOTOP]\x20priority\x20%s\x20found\x20at\x20index:\x20%s','next','[%s][GOTOP]\x20priority\x20%s\x20not\x20found','[%s][GOTOP]\x20%s','stringify','validate','../../../../config/logger','number','priority\x20is\x20a\x20number\x20and\x20it\x20is\x20required','consequence','length','error','join','stop','info','[%s][GOTOP]\x20priority\x20%s','priority'];(function(_0x4e0cbb,_0x13d28c){var _0x36515f=function(_0x158a52){while(--_0x158a52){_0x4e0cbb['push'](_0x4e0cbb['shift']());}};_0x36515f(++_0x13d28c);}(_0x1a65,0x79));var _0x51a6=function(_0x5c5bd3,_0x374247){_0x5c5bd3=_0x5c5bd3-0x0;var _0x5b043e=_0x1a65[_0x5c5bd3];return _0x5b043e;};'use strict';var schema=require(_0x51a6('0x0'));var _=require('lodash');var logger=require(_0x51a6('0x1'))('routing');var gotop=schema({'priority':{'type':_0x51a6('0x2'),'required':!![],'message':_0x51a6('0x3')}});exports[_0x51a6('0x4')]=function(_0x489b69,_0x595c5c){return function(_0x333a99){try{var _0x1107a3={'priority':_0x595c5c[0x0]};var _0x225983=gotop['validate'](_0x1107a3,{'typecast':!![]});if(_0x225983[_0x51a6('0x5')]){logger[_0x51a6('0x6')]('[%s][GOTOP]\x20%s',_0x489b69,_['map'](_0x225983,'message')[_0x51a6('0x7')](',\x20'));_0x333a99[_0x51a6('0x8')]();}else{logger[_0x51a6('0x9')](_0x51a6('0xa'),_0x489b69,_0x1107a3['priority']);if(_0x1107a3[_0x51a6('0xb')]){var _0x1e3bbb=_[_0x51a6('0xc')](_0x333a99[_0x51a6('0xd')](),{'p':_0x1107a3[_0x51a6('0xb')]});if(_0x1e3bbb>=0x0){logger['info'](_0x51a6('0xe'),_0x489b69,_0x1107a3['priority']||'next',_0x1e3bbb);_0x333a99[_0x51a6('0xf')](_0x1e3bbb);}else{logger[_0x51a6('0x9')](_0x51a6('0x10'),_0x489b69,_0x1107a3['priority']||_0x51a6('0xf'));_0x333a99['stop']();}}else{_0x333a99[_0x51a6('0xf')]();}}}catch(_0x229839){logger[_0x51a6('0x6')](_0x51a6('0x11'),_0x489b69,JSON[_0x51a6('0x12')](_0x229839));_0x333a99[_0x51a6('0x8')]();}};};
\ No newline at end of file
+var _0xf840=['routing','priority\x20is\x20a\x20number\x20and\x20it\x20is\x20required','consequence','length','map','message','join','info','[%s][GOTOP]\x20priority\x20%s','priority','findIndex','rules','[%s][GOTOP]\x20priority\x20%s\x20found\x20at\x20index:\x20%s','next','[%s][GOTOP]\x20priority\x20%s\x20not\x20found','stop','[%s][GOTOP]\x20%s','validate','../../../../config/logger'];(function(_0x3ce6be,_0x3ae742){var _0x489d2b=function(_0x23a526){while(--_0x23a526){_0x3ce6be['push'](_0x3ce6be['shift']());}};_0x489d2b(++_0x3ae742);}(_0xf840,0x108));var _0x0f84=function(_0x3ff2f9,_0x544ba1){_0x3ff2f9=_0x3ff2f9-0x0;var _0x3b0913=_0xf840[_0x3ff2f9];return _0x3b0913;};'use strict';var schema=require(_0x0f84('0x0'));var _=require('lodash');var logger=require(_0x0f84('0x1'))(_0x0f84('0x2'));var gotop=schema({'priority':{'type':'number','required':!![],'message':_0x0f84('0x3')}});exports[_0x0f84('0x4')]=function(_0x137142,_0x47e145){return function(_0x1abcec){try{var _0x549bee={'priority':_0x47e145[0x0]};var _0xda1ac8=gotop[_0x0f84('0x0')](_0x549bee,{'typecast':!![]});if(_0xda1ac8[_0x0f84('0x5')]){logger['error']('[%s][GOTOP]\x20%s',_0x137142,_[_0x0f84('0x6')](_0xda1ac8,_0x0f84('0x7'))[_0x0f84('0x8')](',\x20'));_0x1abcec['stop']();}else{logger[_0x0f84('0x9')](_0x0f84('0xa'),_0x137142,_0x549bee['priority']);if(_0x549bee[_0x0f84('0xb')]){var _0x588adc=_[_0x0f84('0xc')](_0x1abcec[_0x0f84('0xd')](),{'p':_0x549bee[_0x0f84('0xb')]});if(_0x588adc>=0x0){logger[_0x0f84('0x9')](_0x0f84('0xe'),_0x137142,_0x549bee[_0x0f84('0xb')]||_0x0f84('0xf'),_0x588adc);_0x1abcec[_0x0f84('0xf')](_0x588adc);}else{logger[_0x0f84('0x9')](_0x0f84('0x10'),_0x137142,_0x549bee['priority']||_0x0f84('0xf'));_0x1abcec[_0x0f84('0x11')]();}}else{_0x1abcec[_0x0f84('0xf')]();}}}catch(_0x5a398f){logger['error'](_0x0f84('0x12'),_0x137142,JSON['stringify'](_0x5a398f));_0x1abcec[_0x0f84('0x11')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x263f=['then','info','[%s][MESSAGE]\x20%s','body','next','stringify','stop','error','lodash','./utils','../../../../config/logger','routing','../../rpc/chatMessage','../../rpc/openchannelMessage','../../rpc/smsMessage','../../rpc/faxMessage','../../rpc/whatsappMessage','getMustacheRender','contact','channel','chat','account','upperFirst','AccountId','interaction','Message','create'];(function(_0x40e9b5,_0x5aeb74){var _0x278e85=function(_0x4f96c6){while(--_0x4f96c6){_0x40e9b5['push'](_0x40e9b5['shift']());}};_0x278e85(++_0x5aeb74);}(_0x263f,0x182));var _0xf263=function(_0x45977b,_0x2d3f70){_0x45977b=_0x45977b-0x0;var _0x31f399=_0x263f[_0x45977b];return _0x31f399;};'use strict';var _=require(_0xf263('0x0'));var utils=require(_0xf263('0x1'));var logger=require(_0xf263('0x2'))(_0xf263('0x3'));var rpc={'chatMessage':require(_0xf263('0x4')),'openchannelMessage':require(_0xf263('0x5')),'mailMessage':require('../../rpc/mailMessage'),'smsMessage':require(_0xf263('0x6')),'faxMessage':require(_0xf263('0x7')),'whatsappMessage':require(_0xf263('0x8'))};exports['consequence']=function(_0xbd1369,_0xdb2fc1){return function(_0x4c7ab2){try{var _0x4fded6={'body':utils[_0xf263('0x9')](_0xdb2fc1[0x0],this),'ContactId':this[_0xf263('0xa')]['id']};if(this[_0xf263('0xb')]===_0xf263('0xc')){_0x4fded6['ChatWebsiteId']=this[_0xf263('0xd')]['id'];}else{_0x4fded6[_[_0xf263('0xe')](this[_0xf263('0xb')])+_0xf263('0xf')]=this[_0xf263('0xd')]['id'];}_0x4fded6[_[_0xf263('0xe')](this[_0xf263('0xb')])+'InteractionId']=this[_0xf263('0x10')]['id'];if(rpc[this['channel']+_0xf263('0x11')]){return rpc[this['channel']+'Message'][_0xf263('0x12')](_0x4fded6)[_0xf263('0x13')](function(_0x17471d){logger[_0xf263('0x14')](_0xf263('0x15'),_0xbd1369,_0x4fded6[_0xf263('0x16')]);_0x4c7ab2[_0xf263('0x17')]();})['catch'](function(_0x2f40d8){logger['error'](_0xf263('0x15'),_0xbd1369,JSON[_0xf263('0x18')](_0x2f40d8));_0x4c7ab2[_0xf263('0x19')]();});}}catch(_0x402739){logger[_0xf263('0x1a')](_0xf263('0x15'),_0xbd1369,JSON[_0xf263('0x18')](_0x402739));_0x4c7ab2['stop']();}};};
\ No newline at end of file
+var _0xc2e9=['channel','chat','upperFirst','AccountId','account','InteractionId','interaction','Message','then','info','body','next','catch','error','[%s][MESSAGE]\x20%s','stop','stringify','lodash','./utils','../../../../config/logger','routing','../../rpc/chatMessage','../../rpc/openchannelMessage','../../rpc/smsMessage','../../rpc/faxMessage','consequence','contact'];(function(_0x18f36f,_0x226f0c){var _0x4d1084=function(_0x3d11eb){while(--_0x3d11eb){_0x18f36f['push'](_0x18f36f['shift']());}};_0x4d1084(++_0x226f0c);}(_0xc2e9,0xce));var _0x9c2e=function(_0x1df7c6,_0x368c98){_0x1df7c6=_0x1df7c6-0x0;var _0x2eb3ae=_0xc2e9[_0x1df7c6];return _0x2eb3ae;};'use strict';var _=require(_0x9c2e('0x0'));var utils=require(_0x9c2e('0x1'));var logger=require(_0x9c2e('0x2'))(_0x9c2e('0x3'));var rpc={'chatMessage':require(_0x9c2e('0x4')),'openchannelMessage':require(_0x9c2e('0x5')),'mailMessage':require('../../rpc/mailMessage'),'smsMessage':require(_0x9c2e('0x6')),'faxMessage':require(_0x9c2e('0x7')),'whatsappMessage':require('../../rpc/whatsappMessage')};exports[_0x9c2e('0x8')]=function(_0x2e2ebb,_0x46615d){return function(_0x3a5686){try{var _0x3b3425={'body':utils['getMustacheRender'](_0x46615d[0x0],this),'ContactId':this[_0x9c2e('0x9')]['id']};if(this[_0x9c2e('0xa')]===_0x9c2e('0xb')){_0x3b3425['ChatWebsiteId']=this['account']['id'];}else{_0x3b3425[_[_0x9c2e('0xc')](this[_0x9c2e('0xa')])+_0x9c2e('0xd')]=this[_0x9c2e('0xe')]['id'];}_0x3b3425[_[_0x9c2e('0xc')](this[_0x9c2e('0xa')])+_0x9c2e('0xf')]=this[_0x9c2e('0x10')]['id'];if(rpc[this[_0x9c2e('0xa')]+_0x9c2e('0x11')]){return rpc[this[_0x9c2e('0xa')]+'Message']['create'](_0x3b3425)[_0x9c2e('0x12')](function(_0x30e767){logger[_0x9c2e('0x13')]('[%s][MESSAGE]\x20%s',_0x2e2ebb,_0x3b3425[_0x9c2e('0x14')]);_0x3a5686[_0x9c2e('0x15')]();})[_0x9c2e('0x16')](function(_0x495f50){logger[_0x9c2e('0x17')](_0x9c2e('0x18'),_0x2e2ebb,JSON['stringify'](_0x495f50));_0x3a5686[_0x9c2e('0x19')]();});}}catch(_0x31de59){logger[_0x9c2e('0x17')](_0x9c2e('0x18'),_0x2e2ebb,JSON[_0x9c2e('0x1a')](_0x31de59));_0x3a5686[_0x9c2e('0x19')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8b20=['[%s][NOOP]\x20%s','getMustacheRender','error','stop','./utils','../../../../config/logger','routing','info'];(function(_0x4b416c,_0x53ef9e){var _0x2037fa=function(_0x5d9816){while(--_0x5d9816){_0x4b416c['push'](_0x4b416c['shift']());}};_0x2037fa(++_0x53ef9e);}(_0x8b20,0x8c));var _0x08b2=function(_0x5254e6,_0x551a55){_0x5254e6=_0x5254e6-0x0;var _0x483606=_0x8b20[_0x5254e6];return _0x483606;};'use strict';var utils=require(_0x08b2('0x0'));var logger=require(_0x08b2('0x1'))(_0x08b2('0x2'));exports['consequence']=function(_0x2cad51,_0x48b020){return function(_0x3b9e83){try{logger[_0x08b2('0x3')](_0x08b2('0x4'),_0x2cad51,utils[_0x08b2('0x5')](_0x48b020[0x0],this));_0x3b9e83['next']();}catch(_0x1b9333){logger[_0x08b2('0x6')](_0x08b2('0x4'),_0x2cad51,JSON['stringify'](_0x1b9333));_0x3b9e83[_0x08b2('0x7')]();}};};
\ No newline at end of file
+var _0x09cb=['../../../../config/logger','routing','consequence','info','[%s][NOOP]\x20%s','getMustacheRender','next','error','stop'];(function(_0x5c2353,_0x2fce65){var _0x1c2736=function(_0x3a12b3){while(--_0x3a12b3){_0x5c2353['push'](_0x5c2353['shift']());}};_0x1c2736(++_0x2fce65);}(_0x09cb,0x18c));var _0xb09c=function(_0x5c650f,_0x2bc4f4){_0x5c650f=_0x5c650f-0x0;var _0x4a1eb6=_0x09cb[_0x5c650f];return _0x4a1eb6;};'use strict';var utils=require('./utils');var logger=require(_0xb09c('0x0'))(_0xb09c('0x1'));exports[_0xb09c('0x2')]=function(_0x3aea0a,_0x3d3460){return function(_0x44fbbc){try{logger[_0xb09c('0x3')](_0xb09c('0x4'),_0x3aea0a,utils[_0xb09c('0x5')](_0x3d3460[0x0],this));_0x44fbbc[_0xb09c('0x6')]();}catch(_0x61c245){logger[_0xb09c('0x7')]('[%s][NOOP]\x20%s',_0x3aea0a,JSON['stringify'](_0x61c245));_0x44fbbc[_0xb09c('0x8')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1760=['list','channel','QueueId','upperFirst','InteractionId','interaction','MessageId','message','chat','AccountId','account','info','[%s][START:QUEUE][NAME:%s]','name','QueueReport','create','catch','create\x20queue\x20report','accepted','[%s][STOP:QUEUE][NAME:%s]','update','error','update\x20queue\x20report','[%s][END:QUEUE][NAME:%s]','toLowerCase','consequence','length','join','stop','find','Queues','timeout','atimeout','qtimeout','rules','end','close','complete','[%s][QUEUE]\x20APPLICATION\x20END','strategy','beepall','log','[%s][QUEUE]\x20%s','stack','validate','lodash','util','seq-queue','moment','ioredis','../../../../config/environment','../../../../config/logger','routing','./strategy','redis','defaults','localhost','socket.io-emitter','queue_id','queue','joinAt','clone','format','%sQueuesWaitingInteractions','%s:queue:%s','%s_queue_waiting_interaction:%s','save','pick','../../rpc/openchannelQueueReport','../../rpc/mailQueueReport','../../rpc/chatQueueReport','../../rpc/smsQueueReport','../../rpc/faxQueueReport','string','name\x20is\x20a\x20string\x20and\x20it\x20is\x20required','number','timeout\x20is\x20a\x20number','waiting','body','from','YYYY-MM-DD\x20HH:mm:ss','contact'];(function(_0x44a196,_0x5b376a){var _0x515888=function(_0x3377b6){while(--_0x3377b6){_0x44a196['push'](_0x44a196['shift']());}};_0x515888(++_0x5b376a);}(_0x1760,0xd0));var _0x0176=function(_0xfa934a,_0x1838c3){_0xfa934a=_0xfa934a-0x0;var _0x355853=_0x1760[_0xfa934a];return _0x355853;};'use strict';var schema=require(_0x0176('0x0'));var _=require(_0x0176('0x1'));var util=require(_0x0176('0x2'));var seqqueue=require(_0x0176('0x3'));var moment=require(_0x0176('0x4'));var Redis=require(_0x0176('0x5'));var config=require(_0x0176('0x6'));var logger=require(_0x0176('0x7'))(_0x0176('0x8'));var strategy=require(_0x0176('0x9'));config[_0x0176('0xa')]=_[_0x0176('0xb')](config['redis'],{'host':_0x0176('0xc'),'port':0x18eb});var io=require(_0x0176('0xd'))(new Redis(config[_0x0176('0xa')]));var attributes=['id',_0x0176('0xe'),'account',_0x0176('0xf'),'from',_0x0176('0x10')];function emit(_0x1eee69,_0x5dd239,_0x4a9e72){io['to'](_0x1eee69)['emit'](_0x5dd239,_0x4a9e72);}function emitChannelQueueInteraction(_0x1edc05,_0x5c5c9f,_0x5698c7,_0x5edc55,_0x2e1c27,_0x378bc1,_0xaf636f,_0xf3ac9){var _0x4faf58=_[_0x0176('0x11')](_0x5698c7);_0x4faf58[_0x0176('0xe')]=_0xf3ac9;_0x4faf58['queue']=_0x5c5c9f;_0x4faf58['account']=_0x5edc55;_0x4faf58['id']=_0x2e1c27;if(_0x378bc1){_0xaf636f[util[_0x0176('0x12')](_0x0176('0x13'),_0x1edc05)][_0x2e1c27]=_['pick'](_0x4faf58,attributes);}else{delete _0xaf636f[util['format'](_0x0176('0x13'),_0x1edc05)][_0x2e1c27];}emit(util[_0x0176('0x12')](_0x0176('0x14'),_0x1edc05,_0x5c5c9f),util['format'](_0x0176('0x15'),_0x1edc05,_0x378bc1?_0x0176('0x16'):'remove'),_[_0x0176('0x17')](_0x4faf58,attributes));}var rpc={'openchannelQueueReport':require(_0x0176('0x18')),'mailQueueReport':require(_0x0176('0x19')),'chatQueueReport':require(_0x0176('0x1a')),'smsQueueReport':require(_0x0176('0x1b')),'faxQueueReport':require(_0x0176('0x1c')),'whatsappQueueReport':require('../../rpc/whatsappQueueReport')};var queue=schema({'name':{'type':_0x0176('0x1d'),'required':!![],'message':_0x0176('0x1e')},'timeout':{'type':_0x0176('0x1f'),'message':_0x0176('0x20')}});function startRouting(_0x2300b1,_0x1004d3,_0xe07dac,_0x224006){if(_0x2300b1&&_0x1004d3&&_0xe07dac){_0x1004d3[_0x0176('0x21')]+=0x1;var _0x50baef={'uniqueid':_0x2300b1,'from':_0xe07dac[_0x0176('0x22')]?_0xe07dac[_0x0176('0x22')][_0x0176('0x23')]:'','joinAt':moment()['format'](_0x0176('0x24')),'ContactId':_0xe07dac['contact']?_0xe07dac[_0x0176('0x25')]['id']:null,'ListId':_0xe07dac['list']?_0xe07dac[_0x0176('0x26')]['id']:null};_0x50baef[_['upperFirst'](_0xe07dac[_0x0176('0x27')])+_0x0176('0x28')]=_0x1004d3['id']||null;_0x50baef[_[_0x0176('0x29')](_0xe07dac[_0x0176('0x27')])+_0x0176('0x2a')]=_0xe07dac[_0x0176('0x2b')]?_0xe07dac[_0x0176('0x2b')]['id']:null;_0x50baef[_[_0x0176('0x29')](_0xe07dac[_0x0176('0x27')])+_0x0176('0x2c')]=_0xe07dac[_0x0176('0x2d')]?_0xe07dac['message']['id']:null;_0x50baef[_[_0x0176('0x29')](_0xe07dac[_0x0176('0x27')])+(_0xe07dac[_0x0176('0x27')]!==_0x0176('0x2e')?_0x0176('0x2f'):'WebsiteId')]=_0xe07dac[_0x0176('0x30')]?_0xe07dac[_0x0176('0x30')]['id']:null;logger[_0x0176('0x31')](util[_0x0176('0x12')](_0x0176('0x32'),_0x2300b1,_0x1004d3[_0x0176('0x33')]));emitChannelQueueInteraction(_0xe07dac['channel'],_0x1004d3['name'],_0x50baef,_0xe07dac[_0x0176('0x30')]['name'],_0xe07dac['message']['id'],!![],_0x224006,_0x1004d3['id']);if(rpc[_0xe07dac['channel']+_0x0176('0x34')]){return rpc[_0xe07dac[_0x0176('0x27')]+_0x0176('0x34')][_0x0176('0x35')](_0x50baef)[_0x0176('0x36')](function(_0x27d5de){logger['error'](_0x0176('0x37'));});}}}function stopRouting(_0xf70432,_0x137d5b,_0x493d71,_0x5f5d95){if(_0xf70432&&_0x137d5b){_0x137d5b[_0x0176('0x21')]-=0x1;var _0x242169={'leaveAt':moment()[_0x0176('0x12')](_0x0176('0x24')),'acceptAt':moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'reason':_0x0176('0x38')};logger['info'](util[_0x0176('0x12')](_0x0176('0x39'),_0xf70432,_0x137d5b['name']));emitChannelQueueInteraction(_0x493d71[_0x0176('0x27')],_0x137d5b[_0x0176('0x33')],_0x493d71[_0x0176('0x22')],_0x493d71[_0x0176('0x30')][_0x0176('0x33')],_0x493d71[_0x0176('0x2d')]['id'],![],_0x5f5d95,_0x137d5b['id']);if(rpc[_0x493d71[_0x0176('0x27')]+_0x0176('0x34')]){return rpc[_0x493d71[_0x0176('0x27')]+_0x0176('0x34')][_0x0176('0x3a')](_0xf70432,_0x242169)[_0x0176('0x36')](function(_0x5cad86){logger[_0x0176('0x3b')](_0x0176('0x3c'));});}}}function endRouting(_0x4bcd45,_0x15ed82,_0x45e34e,_0x528b1a){if(_0x4bcd45&&_0x15ed82){_0x15ed82[_0x0176('0x21')]-=0x1;var _0x3f91b6={'leaveAt':moment()[_0x0176('0x12')]('YYYY-MM-DD\x20HH:mm:ss'),'exitAt':moment()['format'](_0x0176('0x24')),'reason':'timeout'};logger[_0x0176('0x31')](util[_0x0176('0x12')](_0x0176('0x3d'),_0x4bcd45,_0x15ed82[_0x0176('0x33')]));emitChannelQueueInteraction(_0x45e34e[_0x0176('0x27')],_0x15ed82['name'],_0x45e34e['body'],_0x45e34e[_0x0176('0x30')]['name'],_0x45e34e[_0x0176('0x2d')]['id'],![],_0x528b1a);if(rpc[_0x45e34e[_0x0176('0x27')]+'QueueReport']){return rpc[_0x45e34e['channel']+_0x0176('0x34')]['update'](_0x4bcd45,_0x3f91b6)[_0x0176('0x36')](function(_0xa59b5c){logger[_0x0176('0x3b')]('update\x20queue\x20report');});}}}function handleFindQueue(_0x4595ce){return function(_0x16352e){return _0x16352e[_0x0176('0x33')][_0x0176('0x3e')]()===_0x4595ce[_0x0176('0x3e')]();};}exports[_0x0176('0x3f')]=function(_0x15bd31,_0x55a138,_0x253d9d,_0x2c46a5){return function(_0x5401ea){try{var _0x99b8c0={'name':_0x55a138[0x0],'timeout':_0x55a138[0x1]};var _0x5e9050=queue['validate'](_0x99b8c0,{'typecast':!![]});if(_0x5e9050[_0x0176('0x40')]){logger[_0x0176('0x3b')]('[%s][QUEUE]\x20%s',_0x15bd31,_['map'](_0x5e9050,_0x0176('0x2d'))[_0x0176('0x41')](',\x20'));_0x5401ea[_0x0176('0x42')]();}else{var _0x4cd81b=_[_0x0176('0x43')](_0x253d9d[_0x2c46a5[_0x0176('0x27')]+_0x0176('0x44')],handleFindQueue(_0x99b8c0[_0x0176('0x33')]));if(_0x4cd81b){startRouting(_0x15bd31,_0x4cd81b,_0x2c46a5,_0x253d9d);var _0x280cbc=(_0x4cd81b['timeout']||0xa)*0x3e8;var _0x2f29c2=(_0x99b8c0[_0x0176('0x45')]||0x14)*0x3e8;var _0x1912b3,_0x18abbe;if(_0x280cbc>_0x2f29c2){_0x2f29c2=_0x280cbc;}var _0x1d7035=seqqueue['createQueue'](_0x280cbc);_0x1d7035['id']=_0x15bd31;_0x1d7035[_0x0176('0x46')]=_0x280cbc;_0x1d7035[_0x0176('0x47')]=_0x2f29c2;_0x1d7035[_0x0176('0x27')]=_0x2c46a5[_0x0176('0x27')];_0x253d9d[_0x0176('0x48')][_0x15bd31]['on'](_0x0176('0x49'),function(){logger[_0x0176('0x31')]('[%s][QUEUE]\x20ROUTING\x20STOPPED',_0x15bd31);stopRouting(_0x15bd31,_0x4cd81b,_0x2c46a5,_0x253d9d);clearTimeout(_0x1912b3);_0x1912b3=undefined;_0x1d7035[_0x0176('0x4a')](!![]);if(_0x253d9d[_0x0176('0x48')][_0x15bd31]){delete _0x253d9d[_0x0176('0x48')][_0x15bd31];}_0x5401ea[_0x0176('0x42')]();});_0x253d9d[_0x0176('0x48')][_0x15bd31]['on'](_0x0176('0x4b'),function(){if(_0x253d9d[_0x0176('0x48')][_0x15bd31]){delete _0x253d9d[_0x0176('0x48')][_0x15bd31];}});_0x1912b3=setTimeout(function(){logger['info'](_0x0176('0x4c'),_0x15bd31);endRouting(_0x15bd31,_0x4cd81b,_0x2c46a5,_0x253d9d);clearTimeout(_0x1912b3);_0x1d7035[_0x0176('0x4a')](!![]);_0x5401ea['next']();},_0x2f29c2);switch(_0x4cd81b[_0x0176('0x4d')]){case'rrmemory':strategy['rrmemory'](_0x1d7035,_0x4cd81b,_0x253d9d,_0x2c46a5);break;default:strategy[_0x0176('0x4e')](_0x1d7035,_0x4cd81b,_0x253d9d,_0x2c46a5);}}else{logger[_0x0176('0x3b')]('[%s][QUEUE]\x20queue\x20not\x20found\x20%s',_0x15bd31,_0x99b8c0['name']);_0x5401ea[_0x0176('0x42')]();}}}catch(_0x162478){console[_0x0176('0x4f')](_0x162478);logger[_0x0176('0x3b')](_0x0176('0x50'),_0x15bd31,_0x162478[_0x0176('0x51')]);_0x5401ea[_0x0176('0x42')]();}};};
\ No newline at end of file
+var _0xe801=['queue_id','queue','from','emit','clone','%sQueuesWaitingInteractions','format','remove','pick','../../rpc/openchannelQueueReport','../../rpc/mailQueueReport','../../rpc/chatQueueReport','../../rpc/smsQueueReport','../../rpc/faxQueueReport','../../rpc/whatsappQueueReport','string','name\x20is\x20a\x20string\x20and\x20it\x20is\x20required','timeout\x20is\x20a\x20number','body','YYYY-MM-DD\x20HH:mm:ss','contact','list','upperFirst','QueueId','channel','InteractionId','interaction','MessageId','message','chat','WebsiteId','account','info','[%s][START:QUEUE][NAME:%s]','name','QueueReport','error','create\x20queue\x20report','waiting','[%s][STOP:QUEUE][NAME:%s]','update','update\x20queue\x20report','timeout','[%s][END:QUEUE][NAME:%s]','catch','toLowerCase','length','[%s][QUEUE]\x20%s','map','join','stop','find','Queues','createQueue','atimeout','qtimeout','rules','end','[%s][QUEUE]\x20ROUTING\x20STOPPED','[%s][QUEUE]\x20APPLICATION\x20END','next','strategy','rrmemory','beepall','log','stack','validate','lodash','ioredis','../../../../config/environment','../../../../config/logger','routing','./strategy','redis','defaults'];(function(_0xb8fada,_0x3e4b55){var _0x1522de=function(_0x546953){while(--_0x546953){_0xb8fada['push'](_0xb8fada['shift']());}};_0x1522de(++_0x3e4b55);}(_0xe801,0x123));var _0x1e80=function(_0x1bb2fe,_0x102e25){_0x1bb2fe=_0x1bb2fe-0x0;var _0x32d119=_0xe801[_0x1bb2fe];return _0x32d119;};'use strict';var schema=require(_0x1e80('0x0'));var _=require(_0x1e80('0x1'));var util=require('util');var seqqueue=require('seq-queue');var moment=require('moment');var Redis=require(_0x1e80('0x2'));var config=require(_0x1e80('0x3'));var logger=require(_0x1e80('0x4'))(_0x1e80('0x5'));var strategy=require(_0x1e80('0x6'));config[_0x1e80('0x7')]=_[_0x1e80('0x8')](config[_0x1e80('0x7')],{'host':'localhost','port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x1e80('0x7')]));var attributes=['id',_0x1e80('0x9'),'account',_0x1e80('0xa'),_0x1e80('0xb'),'joinAt'];function emit(_0x1fa0ae,_0xf34f5d,_0x415327){io['to'](_0x1fa0ae)[_0x1e80('0xc')](_0xf34f5d,_0x415327);}function emitChannelQueueInteraction(_0x1c4411,_0x183ddd,_0x75f130,_0x2e88ab,_0x451430,_0x960aae,_0x292240,_0x5128cf){var _0x3b5860=_[_0x1e80('0xd')](_0x75f130);_0x3b5860[_0x1e80('0x9')]=_0x5128cf;_0x3b5860[_0x1e80('0xa')]=_0x183ddd;_0x3b5860['account']=_0x2e88ab;_0x3b5860['id']=_0x451430;if(_0x960aae){_0x292240[util['format'](_0x1e80('0xe'),_0x1c4411)][_0x451430]=_['pick'](_0x3b5860,attributes);}else{delete _0x292240[util[_0x1e80('0xf')](_0x1e80('0xe'),_0x1c4411)][_0x451430];}emit(util[_0x1e80('0xf')]('%s:queue:%s',_0x1c4411,_0x183ddd),util[_0x1e80('0xf')]('%s_queue_waiting_interaction:%s',_0x1c4411,_0x960aae?'save':_0x1e80('0x10')),_[_0x1e80('0x11')](_0x3b5860,attributes));}var rpc={'openchannelQueueReport':require(_0x1e80('0x12')),'mailQueueReport':require(_0x1e80('0x13')),'chatQueueReport':require(_0x1e80('0x14')),'smsQueueReport':require(_0x1e80('0x15')),'faxQueueReport':require(_0x1e80('0x16')),'whatsappQueueReport':require(_0x1e80('0x17'))};var queue=schema({'name':{'type':_0x1e80('0x18'),'required':!![],'message':_0x1e80('0x19')},'timeout':{'type':'number','message':_0x1e80('0x1a')}});function startRouting(_0x415a60,_0x46c5b3,_0x28116a,_0x26b5b6){if(_0x415a60&&_0x46c5b3&&_0x28116a){_0x46c5b3['waiting']+=0x1;var _0x5eb2ca={'uniqueid':_0x415a60,'from':_0x28116a[_0x1e80('0x1b')]?_0x28116a[_0x1e80('0x1b')][_0x1e80('0xb')]:'','joinAt':moment()[_0x1e80('0xf')](_0x1e80('0x1c')),'ContactId':_0x28116a[_0x1e80('0x1d')]?_0x28116a['contact']['id']:null,'ListId':_0x28116a['list']?_0x28116a[_0x1e80('0x1e')]['id']:null};_0x5eb2ca[_[_0x1e80('0x1f')](_0x28116a['channel'])+_0x1e80('0x20')]=_0x46c5b3['id']||null;_0x5eb2ca[_[_0x1e80('0x1f')](_0x28116a[_0x1e80('0x21')])+_0x1e80('0x22')]=_0x28116a[_0x1e80('0x23')]?_0x28116a[_0x1e80('0x23')]['id']:null;_0x5eb2ca[_[_0x1e80('0x1f')](_0x28116a[_0x1e80('0x21')])+_0x1e80('0x24')]=_0x28116a[_0x1e80('0x25')]?_0x28116a[_0x1e80('0x25')]['id']:null;_0x5eb2ca[_['upperFirst'](_0x28116a[_0x1e80('0x21')])+(_0x28116a[_0x1e80('0x21')]!==_0x1e80('0x26')?'AccountId':_0x1e80('0x27'))]=_0x28116a['account']?_0x28116a[_0x1e80('0x28')]['id']:null;logger[_0x1e80('0x29')](util[_0x1e80('0xf')](_0x1e80('0x2a'),_0x415a60,_0x46c5b3['name']));emitChannelQueueInteraction(_0x28116a[_0x1e80('0x21')],_0x46c5b3[_0x1e80('0x2b')],_0x5eb2ca,_0x28116a['account'][_0x1e80('0x2b')],_0x28116a[_0x1e80('0x25')]['id'],!![],_0x26b5b6,_0x46c5b3['id']);if(rpc[_0x28116a[_0x1e80('0x21')]+_0x1e80('0x2c')]){return rpc[_0x28116a[_0x1e80('0x21')]+'QueueReport']['create'](_0x5eb2ca)['catch'](function(_0x3cc731){logger[_0x1e80('0x2d')](_0x1e80('0x2e'));});}}}function stopRouting(_0x15cb5c,_0x7c699d,_0x3b89ee,_0x4e29c7){if(_0x15cb5c&&_0x7c699d){_0x7c699d[_0x1e80('0x2f')]-=0x1;var _0x57b07d={'leaveAt':moment()[_0x1e80('0xf')](_0x1e80('0x1c')),'acceptAt':moment()['format'](_0x1e80('0x1c')),'reason':'accepted'};logger['info'](util[_0x1e80('0xf')](_0x1e80('0x30'),_0x15cb5c,_0x7c699d[_0x1e80('0x2b')]));emitChannelQueueInteraction(_0x3b89ee[_0x1e80('0x21')],_0x7c699d[_0x1e80('0x2b')],_0x3b89ee[_0x1e80('0x1b')],_0x3b89ee[_0x1e80('0x28')][_0x1e80('0x2b')],_0x3b89ee[_0x1e80('0x25')]['id'],![],_0x4e29c7,_0x7c699d['id']);if(rpc[_0x3b89ee[_0x1e80('0x21')]+'QueueReport']){return rpc[_0x3b89ee[_0x1e80('0x21')]+_0x1e80('0x2c')][_0x1e80('0x31')](_0x15cb5c,_0x57b07d)['catch'](function(_0x5c9f74){logger['error'](_0x1e80('0x32'));});}}}function endRouting(_0x50acd4,_0x82c8e7,_0x192b90,_0x4a9c04){if(_0x50acd4&&_0x82c8e7){_0x82c8e7[_0x1e80('0x2f')]-=0x1;var _0x3d24c6={'leaveAt':moment()[_0x1e80('0xf')](_0x1e80('0x1c')),'exitAt':moment()['format'](_0x1e80('0x1c')),'reason':_0x1e80('0x33')};logger[_0x1e80('0x29')](util[_0x1e80('0xf')](_0x1e80('0x34'),_0x50acd4,_0x82c8e7[_0x1e80('0x2b')]));emitChannelQueueInteraction(_0x192b90[_0x1e80('0x21')],_0x82c8e7[_0x1e80('0x2b')],_0x192b90[_0x1e80('0x1b')],_0x192b90[_0x1e80('0x28')]['name'],_0x192b90[_0x1e80('0x25')]['id'],![],_0x4a9c04);if(rpc[_0x192b90['channel']+_0x1e80('0x2c')]){return rpc[_0x192b90[_0x1e80('0x21')]+_0x1e80('0x2c')][_0x1e80('0x31')](_0x50acd4,_0x3d24c6)[_0x1e80('0x35')](function(_0x30f002){logger[_0x1e80('0x2d')](_0x1e80('0x32'));});}}}function handleFindQueue(_0x33a0f6){return function(_0x2a3b59){return _0x2a3b59[_0x1e80('0x2b')][_0x1e80('0x36')]()===_0x33a0f6[_0x1e80('0x36')]();};}exports['consequence']=function(_0x5cd4bf,_0x500ef2,_0x1911cb,_0x2eb13c){return function(_0x461485){try{var _0x28164b={'name':_0x500ef2[0x0],'timeout':_0x500ef2[0x1]};var _0x2176ac=queue[_0x1e80('0x0')](_0x28164b,{'typecast':!![]});if(_0x2176ac[_0x1e80('0x37')]){logger[_0x1e80('0x2d')](_0x1e80('0x38'),_0x5cd4bf,_[_0x1e80('0x39')](_0x2176ac,_0x1e80('0x25'))[_0x1e80('0x3a')](',\x20'));_0x461485[_0x1e80('0x3b')]();}else{var _0x33b63b=_[_0x1e80('0x3c')](_0x1911cb[_0x2eb13c[_0x1e80('0x21')]+_0x1e80('0x3d')],handleFindQueue(_0x28164b[_0x1e80('0x2b')]));if(_0x33b63b){startRouting(_0x5cd4bf,_0x33b63b,_0x2eb13c,_0x1911cb);var _0x132da0=(_0x33b63b[_0x1e80('0x33')]||0xa)*0x3e8;var _0x514cc1=(_0x28164b[_0x1e80('0x33')]||0x14)*0x3e8;var _0x226f2c,_0x158461;if(_0x132da0>_0x514cc1){_0x514cc1=_0x132da0;}var _0x14b20a=seqqueue[_0x1e80('0x3e')](_0x132da0);_0x14b20a['id']=_0x5cd4bf;_0x14b20a[_0x1e80('0x3f')]=_0x132da0;_0x14b20a[_0x1e80('0x40')]=_0x514cc1;_0x14b20a[_0x1e80('0x21')]=_0x2eb13c['channel'];_0x1911cb[_0x1e80('0x41')][_0x5cd4bf]['on'](_0x1e80('0x42'),function(){logger['info'](_0x1e80('0x43'),_0x5cd4bf);stopRouting(_0x5cd4bf,_0x33b63b,_0x2eb13c,_0x1911cb);clearTimeout(_0x226f2c);_0x226f2c=undefined;_0x14b20a['close'](!![]);if(_0x1911cb[_0x1e80('0x41')][_0x5cd4bf]){delete _0x1911cb[_0x1e80('0x41')][_0x5cd4bf];}_0x461485[_0x1e80('0x3b')]();});_0x1911cb[_0x1e80('0x41')][_0x5cd4bf]['on']('complete',function(){if(_0x1911cb['rules'][_0x5cd4bf]){delete _0x1911cb[_0x1e80('0x41')][_0x5cd4bf];}});_0x226f2c=setTimeout(function(){logger[_0x1e80('0x29')](_0x1e80('0x44'),_0x5cd4bf);endRouting(_0x5cd4bf,_0x33b63b,_0x2eb13c,_0x1911cb);clearTimeout(_0x226f2c);_0x14b20a['close'](!![]);_0x461485[_0x1e80('0x45')]();},_0x514cc1);switch(_0x33b63b[_0x1e80('0x46')]){case _0x1e80('0x47'):strategy[_0x1e80('0x47')](_0x14b20a,_0x33b63b,_0x1911cb,_0x2eb13c);break;default:strategy[_0x1e80('0x48')](_0x14b20a,_0x33b63b,_0x1911cb,_0x2eb13c);}}else{logger[_0x1e80('0x2d')]('[%s][QUEUE]\x20queue\x20not\x20found\x20%s',_0x5cd4bf,_0x28164b[_0x1e80('0x2b')]);_0x461485[_0x1e80('0x3b')]();}}}catch(_0x20caf7){console[_0x1e80('0x49')](_0x20caf7);logger[_0x1e80('0x2d')](_0x1e80('0x38'),_0x5cd4bf,_0x20caf7[_0x1e80('0x4a')]);_0x461485[_0x1e80('0x3b')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc2e3=['routing','squeue','realtime','handleRun','bind','handleTimeout','timeout','drained','handleDrained','prototype','push','info','agent','isNil','agents','[%s][AGENT]\x20agent\x20skipped,\x20unknown\x20id\x20%s','forcedOwnership','isAgentAvailable','busyQueue','writeLog','RINGING',':FORCED','[%s][AGENT]\x20timeout\x20with\x20%s','hideNotification','notificationId','busy','STOP','lodash','uuid','./util','../../../../../config/logger'];(function(_0x35d136,_0x3090f3){var _0x3183d5=function(_0x579815){while(--_0x579815){_0x35d136['push'](_0x35d136['shift']());}};_0x3183d5(++_0x3090f3);}(_0xc2e3,0xb6));var _0x3c2e=function(_0x2c375c,_0x84d55b){_0x2c375c=_0x2c375c-0x0;var _0x49ee68=_0xc2e3[_0x2c375c];return _0x49ee68;};'use strict';var _=require(_0x3c2e('0x0'));var uuid=require(_0x3c2e('0x1'));var util=require(_0x3c2e('0x2'));var logger=require(_0x3c2e('0x3'))(_0x3c2e('0x4'));var Agent=function(_0x3c3e32,_0x2b62ab,_0x125e12,_0x52d4ee){this['notificationId']=uuid['v4']();this[_0x3c2e('0x5')]=_0x3c3e32;this['agent']=_0x2b62ab;this[_0x3c2e('0x6')]=_0x125e12;this[_0x3c2e('0x4')]=_0x52d4ee;this[_0x3c2e('0x5')]['push'](this[_0x3c2e('0x7')][_0x3c2e('0x8')](this),this[_0x3c2e('0x9')][_0x3c2e('0x8')](this));this[_0x3c2e('0x5')]['on'](_0x3c2e('0xa'),this[_0x3c2e('0x9')][_0x3c2e('0x8')](this));this[_0x3c2e('0x5')]['on'](_0x3c2e('0xb'),this[_0x3c2e('0xc')][_0x3c2e('0x8')](this));};Agent[_0x3c2e('0xd')][_0x3c2e('0xe')]=function(){this[_0x3c2e('0x5')][_0x3c2e('0xe')](this['handleRun'][_0x3c2e('0x8')](this),this[_0x3c2e('0x9')][_0x3c2e('0x8')](this));};Agent[_0x3c2e('0xd')][_0x3c2e('0xc')]=function(){this[_0x3c2e('0x9')](!![]);};Agent[_0x3c2e('0xd')][_0x3c2e('0x7')]=function(_0x335d90){logger[_0x3c2e('0xf')]('[%s][AGENT]\x20try\x20with\x20%s',this[_0x3c2e('0x5')]['id'],this[_0x3c2e('0x10')]['id']);if(_[_0x3c2e('0x11')](this['realtime'][_0x3c2e('0x12')][this[_0x3c2e('0x10')]['id']])){logger[_0x3c2e('0xf')](_0x3c2e('0x13'),this[_0x3c2e('0x5')]['id'],this[_0x3c2e('0x10')]['id']);setTimeout(this[_0x3c2e('0xe')][_0x3c2e('0x8')](this),0x3e8);}else{if(this[_0x3c2e('0x4')][_0x3c2e('0x14')]||util[_0x3c2e('0x15')](this[_0x3c2e('0x5')]['id'],this[_0x3c2e('0x6')][_0x3c2e('0x12')][this[_0x3c2e('0x10')]['id']],this[_0x3c2e('0x5')]['channel'],![])){this[_0x3c2e('0x6')][_0x3c2e('0x12')][this[_0x3c2e('0x10')]['id']]['busy']=!![];this[_0x3c2e('0x6')][_0x3c2e('0x12')][this['agent']['id']][_0x3c2e('0x16')]=undefined;util['showNotification'](this['notificationId'],this['squeue']['id'],this[_0x3c2e('0x6')]['agents'][this[_0x3c2e('0x10')]['id']],null,this[_0x3c2e('0x4')]);util[_0x3c2e('0x17')](this[_0x3c2e('0x5')]['id'],this['realtime'][_0x3c2e('0x12')][this[_0x3c2e('0x10')]['id']],_0x3c2e('0x18')+(this[_0x3c2e('0x4')][_0x3c2e('0x14')]?_0x3c2e('0x19'):''));}else{logger[_0x3c2e('0xf')]('[%s][AGENT]\x20agent\x20%s\x20is\x20not\x20available',this[_0x3c2e('0x5')]['id'],this['agent']['id']);setTimeout(this[_0x3c2e('0xe')][_0x3c2e('0x8')](this),0x3e8);}}};Agent[_0x3c2e('0xd')][_0x3c2e('0x9')]=function(_0x458ce5){if(_['isNil'](this['realtime'][_0x3c2e('0x12')][this[_0x3c2e('0x10')]['id']])){return logger['info'](_0x3c2e('0x13'),this[_0x3c2e('0x5')]['id'],this[_0x3c2e('0x10')]['id']);}else{logger[_0x3c2e('0xf')](_0x3c2e('0x1a'),this['squeue']['id'],this[_0x3c2e('0x10')]['id']);util[_0x3c2e('0x1b')](this[_0x3c2e('0x1c')],this[_0x3c2e('0x5')]['id'],this[_0x3c2e('0x6')][_0x3c2e('0x12')][this[_0x3c2e('0x10')]['id']],null,this['routing']);this[_0x3c2e('0x6')][_0x3c2e('0x12')][this[_0x3c2e('0x10')]['id']][_0x3c2e('0x1d')]=![];this[_0x3c2e('0x6')][_0x3c2e('0x12')][this[_0x3c2e('0x10')]['id']]['busyQueue']=undefined;util[_0x3c2e('0x17')](this[_0x3c2e('0x5')]['id'],this['realtime'][_0x3c2e('0x12')][this[_0x3c2e('0x10')]['id']],_0x458ce5?_0x3c2e('0x1e'):'TIMEOUT');}if(!_0x458ce5){setTimeout(this[_0x3c2e('0xe')][_0x3c2e('0x8')](this),0x3e8);}};function agent(_0x328af8,_0x289773,_0x2f2fe6,_0x4e0df4){return new Agent(_0x328af8,_0x289773,_0x2f2fe6,_0x4e0df4);}module['exports']=agent;
\ No newline at end of file
+var _0x4fde=['forcedOwnership','isAgentAvailable','busy','busyQueue','writeLog','RINGING','[%s][AGENT]\x20agent\x20%s\x20is\x20not\x20available','[%s][AGENT]\x20timeout\x20with\x20%s','hideNotification','STOP','TIMEOUT','exports','lodash','routing','notificationId','agent','squeue','push','handleRun','bind','handleTimeout','timeout','drained','prototype','handleDrained','info','[%s][AGENT]\x20try\x20with\x20%s','isNil','realtime','agents','[%s][AGENT]\x20agent\x20skipped,\x20unknown\x20id\x20%s'];(function(_0xc2b9ae,_0x515445){var _0x31deda=function(_0xb2a584){while(--_0xb2a584){_0xc2b9ae['push'](_0xc2b9ae['shift']());}};_0x31deda(++_0x515445);}(_0x4fde,0xa7));var _0xe4fd=function(_0x4d1ee9,_0x394a78){_0x4d1ee9=_0x4d1ee9-0x0;var _0x9a5456=_0x4fde[_0x4d1ee9];return _0x9a5456;};'use strict';var _=require(_0xe4fd('0x0'));var uuid=require('uuid');var util=require('./util');var logger=require('../../../../../config/logger')(_0xe4fd('0x1'));var Agent=function(_0x5efd74,_0x22b972,_0xc5dc9a,_0xbd66ff){this[_0xe4fd('0x2')]=uuid['v4']();this['squeue']=_0x5efd74;this[_0xe4fd('0x3')]=_0x22b972;this['realtime']=_0xc5dc9a;this['routing']=_0xbd66ff;this[_0xe4fd('0x4')][_0xe4fd('0x5')](this[_0xe4fd('0x6')][_0xe4fd('0x7')](this),this[_0xe4fd('0x8')][_0xe4fd('0x7')](this));this[_0xe4fd('0x4')]['on'](_0xe4fd('0x9'),this[_0xe4fd('0x8')][_0xe4fd('0x7')](this));this[_0xe4fd('0x4')]['on'](_0xe4fd('0xa'),this['handleDrained']['bind'](this));};Agent['prototype'][_0xe4fd('0x5')]=function(){this[_0xe4fd('0x4')][_0xe4fd('0x5')](this['handleRun'][_0xe4fd('0x7')](this),this[_0xe4fd('0x8')]['bind'](this));};Agent[_0xe4fd('0xb')][_0xe4fd('0xc')]=function(){this['handleTimeout'](!![]);};Agent['prototype'][_0xe4fd('0x6')]=function(_0x4378b7){logger[_0xe4fd('0xd')](_0xe4fd('0xe'),this['squeue']['id'],this[_0xe4fd('0x3')]['id']);if(_[_0xe4fd('0xf')](this[_0xe4fd('0x10')][_0xe4fd('0x11')][this['agent']['id']])){logger['info'](_0xe4fd('0x12'),this[_0xe4fd('0x4')]['id'],this[_0xe4fd('0x3')]['id']);setTimeout(this[_0xe4fd('0x5')][_0xe4fd('0x7')](this),0x3e8);}else{if(this['routing'][_0xe4fd('0x13')]||util[_0xe4fd('0x14')](this[_0xe4fd('0x4')]['id'],this['realtime'][_0xe4fd('0x11')][this[_0xe4fd('0x3')]['id']],this['squeue']['channel'],![])){this[_0xe4fd('0x10')]['agents'][this[_0xe4fd('0x3')]['id']][_0xe4fd('0x15')]=!![];this[_0xe4fd('0x10')][_0xe4fd('0x11')][this[_0xe4fd('0x3')]['id']][_0xe4fd('0x16')]=undefined;util['showNotification'](this['notificationId'],this[_0xe4fd('0x4')]['id'],this[_0xe4fd('0x10')][_0xe4fd('0x11')][this['agent']['id']],null,this[_0xe4fd('0x1')]);util[_0xe4fd('0x17')](this[_0xe4fd('0x4')]['id'],this[_0xe4fd('0x10')][_0xe4fd('0x11')][this[_0xe4fd('0x3')]['id']],_0xe4fd('0x18')+(this['routing'][_0xe4fd('0x13')]?':FORCED':''));}else{logger[_0xe4fd('0xd')](_0xe4fd('0x19'),this[_0xe4fd('0x4')]['id'],this[_0xe4fd('0x3')]['id']);setTimeout(this[_0xe4fd('0x5')][_0xe4fd('0x7')](this),0x3e8);}}};Agent[_0xe4fd('0xb')][_0xe4fd('0x8')]=function(_0x4be7ac){if(_[_0xe4fd('0xf')](this[_0xe4fd('0x10')][_0xe4fd('0x11')][this[_0xe4fd('0x3')]['id']])){return logger[_0xe4fd('0xd')](_0xe4fd('0x12'),this['squeue']['id'],this[_0xe4fd('0x3')]['id']);}else{logger[_0xe4fd('0xd')](_0xe4fd('0x1a'),this[_0xe4fd('0x4')]['id'],this[_0xe4fd('0x3')]['id']);util[_0xe4fd('0x1b')](this[_0xe4fd('0x2')],this[_0xe4fd('0x4')]['id'],this['realtime']['agents'][this[_0xe4fd('0x3')]['id']],null,this['routing']);this['realtime'][_0xe4fd('0x11')][this[_0xe4fd('0x3')]['id']][_0xe4fd('0x15')]=![];this[_0xe4fd('0x10')][_0xe4fd('0x11')][this[_0xe4fd('0x3')]['id']]['busyQueue']=undefined;util[_0xe4fd('0x17')](this['squeue']['id'],this[_0xe4fd('0x10')][_0xe4fd('0x11')][this[_0xe4fd('0x3')]['id']],_0x4be7ac?_0xe4fd('0x1c'):_0xe4fd('0x1d'));}if(!_0x4be7ac){setTimeout(this[_0xe4fd('0x5')][_0xe4fd('0x7')](this),0x3e8);}};function agent(_0x5f3172,_0x41eba2,_0x5255da,_0x44878b){return new Agent(_0x5f3172,_0x41eba2,_0x5255da,_0x44878b);}module[_0xe4fd('0x1e')]=agent;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc43c=['timeout','drained','handleDrained','prototype','isNil','Agents','length','[%s][QUEUE]\x20agent\x20skipped,\x20unknown\x20id\x20%s','isAgentAvailable','agents','channel','writeLog','RINGING','busy','busyQueue','name','showNotification','info','[%s][QUEUE]\x20ALL\x20AGENTS\x20ARE\x20BUSY','hideNotification','notificationId','TIMEOUT','exports','lodash','uuid','./util','../../../../../config/logger','routing','squeue','queue','realtime','push','handleRun','bind','handleTimeout'];(function(_0x2326ea,_0x1c7d7c){var _0x55ec0c=function(_0x3a3c0c){while(--_0x3a3c0c){_0x2326ea['push'](_0x2326ea['shift']());}};_0x55ec0c(++_0x1c7d7c);}(_0xc43c,0x152));var _0xcc43=function(_0x5ebb45,_0x423bab){_0x5ebb45=_0x5ebb45-0x0;var _0x2e741d=_0xc43c[_0x5ebb45];return _0x2e741d;};'use strict';var _=require(_0xcc43('0x0'));var uuid=require(_0xcc43('0x1'));var util=require(_0xcc43('0x2'));var logger=require(_0xcc43('0x3'))(_0xcc43('0x4'));var Beepall=function(_0x275c81,_0x53ef5e,_0x162a11,_0x258c7e){this['notificationId']=uuid['v4']();this[_0xcc43('0x5')]=_0x275c81;this[_0xcc43('0x6')]=_0x53ef5e;this[_0xcc43('0x7')]=_0x162a11;this[_0xcc43('0x4')]=_0x258c7e;this[_0xcc43('0x5')][_0xcc43('0x8')](this[_0xcc43('0x9')][_0xcc43('0xa')](this),this[_0xcc43('0xb')][_0xcc43('0xa')](this));this['squeue']['on'](_0xcc43('0xc'),this[_0xcc43('0xb')][_0xcc43('0xa')](this));this[_0xcc43('0x5')]['on'](_0xcc43('0xd'),this[_0xcc43('0xe')]['bind'](this));};Beepall[_0xcc43('0xf')][_0xcc43('0x8')]=function(){this[_0xcc43('0x5')][_0xcc43('0x8')](this[_0xcc43('0x9')][_0xcc43('0xa')](this),this['handleTimeout'][_0xcc43('0xa')](this));};Beepall['prototype'][_0xcc43('0xe')]=function(_0x18bb3b){this['handleTimeout'](!![]);};Beepall['prototype'][_0xcc43('0x9')]=function(_0x20401f){var _0x289990=!![];if(!_[_0xcc43('0x10')](this[_0xcc43('0x6')])&&!_[_0xcc43('0x10')](this['queue']['Agents'])&&this[_0xcc43('0x6')][_0xcc43('0x11')][_0xcc43('0x12')]>0x0){for(var _0x2e053d=0x0,_0x4f2f44;_0x2e053d<this[_0xcc43('0x6')][_0xcc43('0x11')][_0xcc43('0x12')];_0x2e053d+=0x1){_0x4f2f44=this['queue']['Agents'][_0x2e053d]['id'];if(_[_0xcc43('0x10')](this[_0xcc43('0x7')]['agents'][_0x4f2f44])){logger['info'](_0xcc43('0x13'),this[_0xcc43('0x5')]['id'],_0x4f2f44);}else{if(util[_0xcc43('0x14')](this[_0xcc43('0x5')]['id'],this[_0xcc43('0x7')][_0xcc43('0x15')][_0x4f2f44],this[_0xcc43('0x5')][_0xcc43('0x16')],!![])){_0x289990=![];util[_0xcc43('0x17')](this[_0xcc43('0x5')]['id'],this['realtime'][_0xcc43('0x15')][_0x4f2f44],_0xcc43('0x18'));this[_0xcc43('0x7')][_0xcc43('0x15')][_0x4f2f44][_0xcc43('0x19')]=!![];this['realtime'][_0xcc43('0x15')][_0x4f2f44][_0xcc43('0x1a')]=this[_0xcc43('0x6')][_0xcc43('0x1b')];util[_0xcc43('0x1c')](this['notificationId'],this[_0xcc43('0x5')]['id'],this[_0xcc43('0x7')][_0xcc43('0x15')][_0x4f2f44],this[_0xcc43('0x6')],this[_0xcc43('0x4')]);}}}if(_0x289990){logger[_0xcc43('0x1d')](_0xcc43('0x1e'),this[_0xcc43('0x5')]['id']);setTimeout(this[_0xcc43('0x8')][_0xcc43('0xa')](this),0x3e8);}}else{logger['info']('[%s][QUEUE]\x20EMPTY',this[_0xcc43('0x5')]['id']);setTimeout(this[_0xcc43('0x8')][_0xcc43('0xa')](this),0x3e8);}};Beepall[_0xcc43('0xf')][_0xcc43('0xb')]=function(_0x38c47e){if(!_[_0xcc43('0x10')](this[_0xcc43('0x6')])&&!_['isNil'](this[_0xcc43('0x6')][_0xcc43('0x11')])){for(var _0x1d6dc7=0x0,_0x467652;_0x1d6dc7<this[_0xcc43('0x6')][_0xcc43('0x11')][_0xcc43('0x12')];_0x1d6dc7+=0x1){_0x467652=this[_0xcc43('0x6')][_0xcc43('0x11')][_0x1d6dc7]['id'];if(_['isNil'](this[_0xcc43('0x7')][_0xcc43('0x15')][_0x467652])){logger['info'](_0xcc43('0x13'),this[_0xcc43('0x5')]['id'],_0x467652);}else{util[_0xcc43('0x1f')](this[_0xcc43('0x20')],this[_0xcc43('0x5')]['id'],this[_0xcc43('0x7')]['agents'][_0x467652],this[_0xcc43('0x6')],this[_0xcc43('0x4')]);util[_0xcc43('0x17')](this['squeue']['id'],this['realtime'][_0xcc43('0x15')][_0x467652],_0x38c47e?'STOP':_0xcc43('0x21'));this['realtime'][_0xcc43('0x15')][_0x467652]['busy']=![];this[_0xcc43('0x7')]['agents'][_0x467652][_0xcc43('0x1a')]=undefined;}}}if(!_0x38c47e){setTimeout(this['push'][_0xcc43('0xa')](this),0x3e8);}};function beepall(_0x566bce,_0x21fdea,_0x887d9c,_0x65b2dd){return new Beepall(_0x566bce,_0x21fdea,_0x887d9c,_0x65b2dd);}module[_0xcc43('0x22')]=beepall;
\ No newline at end of file
+var _0xe3c5=['channel','writeLog','busy','busyQueue','showNotification','[%s][QUEUE]\x20EMPTY','[%s][QUEUE]\x20agent\x20skipped,\x20unknown\x20id\x20%s','hideNotification','STOP','lodash','uuid','./util','../../../../../config/logger','routing','notificationId','squeue','queue','realtime','push','handleRun','bind','handleTimeout','timeout','drained','prototype','handleDrained','isNil','Agents','length','agents','info'];(function(_0x556481,_0x102733){var _0xc6403f=function(_0x15ae9b){while(--_0x15ae9b){_0x556481['push'](_0x556481['shift']());}};_0xc6403f(++_0x102733);}(_0xe3c5,0x17d));var _0x5e3c=function(_0x27638d,_0x4094db){_0x27638d=_0x27638d-0x0;var _0x35da35=_0xe3c5[_0x27638d];return _0x35da35;};'use strict';var _=require(_0x5e3c('0x0'));var uuid=require(_0x5e3c('0x1'));var util=require(_0x5e3c('0x2'));var logger=require(_0x5e3c('0x3'))(_0x5e3c('0x4'));var Beepall=function(_0x383d11,_0x5b8a04,_0x46e129,_0x2ef6cd){this[_0x5e3c('0x5')]=uuid['v4']();this[_0x5e3c('0x6')]=_0x383d11;this[_0x5e3c('0x7')]=_0x5b8a04;this[_0x5e3c('0x8')]=_0x46e129;this[_0x5e3c('0x4')]=_0x2ef6cd;this[_0x5e3c('0x6')][_0x5e3c('0x9')](this[_0x5e3c('0xa')][_0x5e3c('0xb')](this),this[_0x5e3c('0xc')]['bind'](this));this['squeue']['on'](_0x5e3c('0xd'),this[_0x5e3c('0xc')][_0x5e3c('0xb')](this));this[_0x5e3c('0x6')]['on'](_0x5e3c('0xe'),this['handleDrained'][_0x5e3c('0xb')](this));};Beepall[_0x5e3c('0xf')]['push']=function(){this[_0x5e3c('0x6')]['push'](this['handleRun'][_0x5e3c('0xb')](this),this[_0x5e3c('0xc')][_0x5e3c('0xb')](this));};Beepall[_0x5e3c('0xf')][_0x5e3c('0x10')]=function(_0x30bc22){this[_0x5e3c('0xc')](!![]);};Beepall[_0x5e3c('0xf')]['handleRun']=function(_0x54937f){var _0x34d23c=!![];if(!_[_0x5e3c('0x11')](this[_0x5e3c('0x7')])&&!_['isNil'](this['queue'][_0x5e3c('0x12')])&&this[_0x5e3c('0x7')][_0x5e3c('0x12')][_0x5e3c('0x13')]>0x0){for(var _0x523a91=0x0,_0x54039a;_0x523a91<this[_0x5e3c('0x7')]['Agents']['length'];_0x523a91+=0x1){_0x54039a=this[_0x5e3c('0x7')]['Agents'][_0x523a91]['id'];if(_['isNil'](this['realtime'][_0x5e3c('0x14')][_0x54039a])){logger[_0x5e3c('0x15')]('[%s][QUEUE]\x20agent\x20skipped,\x20unknown\x20id\x20%s',this[_0x5e3c('0x6')]['id'],_0x54039a);}else{if(util['isAgentAvailable'](this[_0x5e3c('0x6')]['id'],this[_0x5e3c('0x8')][_0x5e3c('0x14')][_0x54039a],this[_0x5e3c('0x6')][_0x5e3c('0x16')],!![])){_0x34d23c=![];util[_0x5e3c('0x17')](this[_0x5e3c('0x6')]['id'],this['realtime']['agents'][_0x54039a],'RINGING');this['realtime'][_0x5e3c('0x14')][_0x54039a][_0x5e3c('0x18')]=!![];this[_0x5e3c('0x8')][_0x5e3c('0x14')][_0x54039a][_0x5e3c('0x19')]=this[_0x5e3c('0x7')]['name'];util[_0x5e3c('0x1a')](this[_0x5e3c('0x5')],this[_0x5e3c('0x6')]['id'],this[_0x5e3c('0x8')]['agents'][_0x54039a],this['queue'],this[_0x5e3c('0x4')]);}}}if(_0x34d23c){logger[_0x5e3c('0x15')]('[%s][QUEUE]\x20ALL\x20AGENTS\x20ARE\x20BUSY',this[_0x5e3c('0x6')]['id']);setTimeout(this[_0x5e3c('0x9')][_0x5e3c('0xb')](this),0x3e8);}}else{logger[_0x5e3c('0x15')](_0x5e3c('0x1b'),this['squeue']['id']);setTimeout(this[_0x5e3c('0x9')]['bind'](this),0x3e8);}};Beepall['prototype'][_0x5e3c('0xc')]=function(_0x2d7cf0){if(!_[_0x5e3c('0x11')](this[_0x5e3c('0x7')])&&!_['isNil'](this[_0x5e3c('0x7')][_0x5e3c('0x12')])){for(var _0x27e591=0x0,_0xaea068;_0x27e591<this['queue']['Agents'][_0x5e3c('0x13')];_0x27e591+=0x1){_0xaea068=this[_0x5e3c('0x7')][_0x5e3c('0x12')][_0x27e591]['id'];if(_[_0x5e3c('0x11')](this['realtime'][_0x5e3c('0x14')][_0xaea068])){logger[_0x5e3c('0x15')](_0x5e3c('0x1c'),this['squeue']['id'],_0xaea068);}else{util[_0x5e3c('0x1d')](this['notificationId'],this[_0x5e3c('0x6')]['id'],this[_0x5e3c('0x8')][_0x5e3c('0x14')][_0xaea068],this['queue'],this[_0x5e3c('0x4')]);util['writeLog'](this[_0x5e3c('0x6')]['id'],this[_0x5e3c('0x8')][_0x5e3c('0x14')][_0xaea068],_0x2d7cf0?_0x5e3c('0x1e'):'TIMEOUT');this[_0x5e3c('0x8')][_0x5e3c('0x14')][_0xaea068][_0x5e3c('0x18')]=![];this[_0x5e3c('0x8')][_0x5e3c('0x14')][_0xaea068][_0x5e3c('0x19')]=undefined;}}}if(!_0x2d7cf0){setTimeout(this[_0x5e3c('0x9')][_0x5e3c('0xb')](this),0x3e8);}};function beepall(_0x551cf5,_0x254097,_0xbc7a8,_0x4ffb8f){return new Beepall(_0x551cf5,_0x254097,_0xbc7a8,_0x4ffb8f);}module['exports']=beepall;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb5eb=['./agent','exports','./rrmemory'];(function(_0x286e51,_0x25ba9d){var _0x5cf65b=function(_0x47ce9c){while(--_0x47ce9c){_0x286e51['push'](_0x286e51['shift']());}};_0x5cf65b(++_0x25ba9d);}(_0xb5eb,0x6d));var _0xbb5e=function(_0x5dc465,_0x4aab35){_0x5dc465=_0x5dc465-0x0;var _0x57a66=_0xb5eb[_0x5dc465];return _0x57a66;};'use strict';module[_0xbb5e('0x0')]={'rrmemory':require(_0xbb5e('0x1')),'beepall':require('./beepall'),'agent':require(_0xbb5e('0x2'))};
\ No newline at end of file
+var _0xe1f3=['./agent','exports'];(function(_0x4798fc,_0x4e44f3){var _0x45bf52=function(_0x1f300b){while(--_0x1f300b){_0x4798fc['push'](_0x4798fc['shift']());}};_0x45bf52(++_0x4e44f3);}(_0xe1f3,0x6b));var _0x3e1f=function(_0x4575c4,_0x5bfa3a){_0x4575c4=_0x4575c4-0x0;var _0xbe4299=_0xe1f3[_0x4575c4];return _0xbe4299;};'use strict';module[_0x3e1f('0x0')]={'rrmemory':require('./rrmemory'),'beepall':require('./beepall'),'agent':require(_0x3e1f('0x1'))};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x50ab=['handleCheckReject','isAgentAvailable','agents','agentId','channel','info','done','mapAgentsId','[%s][QUEUE]\x20agent\x20skipped,\x20unknown\x20id\x20%s','busy','busyQueue','name','showNotification','writeLog','RINGING','[%s][QUEUE]\x20agent\x20skipped,\x20not\x20available\x20id\x20%s','[%s][QUEUE]\x20timeout\x20with\x20%s','isNil','hideNotification','lodash','uuid','./util','../../../../../config/logger','routing','notificationId','queue','realtime','intervals','squeue','push','handleRun','bind','handleTimeout','module','timeout','drained','handleDrained','prototype'];(function(_0x1030ce,_0xbe3f74){var _0x3367fd=function(_0x387153){while(--_0x387153){_0x1030ce['push'](_0x1030ce['shift']());}};_0x3367fd(++_0xbe3f74);}(_0x50ab,0xab));var _0xb50a=function(_0x328c4c,_0x112c76){_0x328c4c=_0x328c4c-0x0;var _0x5d65de=_0x50ab[_0x328c4c];return _0x5d65de;};'use strict';var rr=require('rr');var _=require(_0xb50a('0x0'));var uuid=require(_0xb50a('0x1'));var util=require(_0xb50a('0x2'));var logger=require(_0xb50a('0x3'))(_0xb50a('0x4'));var RRMemory=function(_0x39dc02,_0x4a9367,_0x49ecb8,_0x380baf){this[_0xb50a('0x5')]=uuid['v4']();this['squeue']=_0x39dc02;this[_0xb50a('0x6')]=_0x4a9367;this[_0xb50a('0x7')]=_0x49ecb8;this['routing']=_0x380baf;this[_0xb50a('0x8')]={};this[_0xb50a('0x9')][_0xb50a('0xa')](this[_0xb50a('0xb')][_0xb50a('0xc')](this),this[_0xb50a('0xd')]['bind'](this),this[_0xb50a('0xe')]);this[_0xb50a('0x9')]['on'](_0xb50a('0xf'),this[_0xb50a('0xd')][_0xb50a('0xc')](this));this[_0xb50a('0x9')]['on'](_0xb50a('0x10'),this[_0xb50a('0x11')][_0xb50a('0xc')](this));};RRMemory[_0xb50a('0x12')][_0xb50a('0xa')]=function(){this[_0xb50a('0x9')][_0xb50a('0xa')](this[_0xb50a('0xb')]['bind'](this),this['handleTimeout'][_0xb50a('0xc')](this));};RRMemory[_0xb50a('0x12')][_0xb50a('0x11')]=function(_0x49cbdb){this[_0xb50a('0xd')](!![]);};RRMemory['prototype'][_0xb50a('0x13')]=function(_0x3382c5){if(util[_0xb50a('0x14')](this[_0xb50a('0x9')]['id'],this['realtime'][_0xb50a('0x15')][this[_0xb50a('0x16')]],this[_0xb50a('0x9')][_0xb50a('0x17')],!![])){logger[_0xb50a('0x18')]('[%s][QUEUE]\x20available\x20again\x20%s',this[_0xb50a('0x9')]['id'],this['agentId']);clearInterval(this['intervals'][this[_0xb50a('0x16')]]);_0x3382c5[_0xb50a('0x19')]();setTimeout(this[_0xb50a('0xa')][_0xb50a('0xc')](this),0x3e8);}};RRMemory[_0xb50a('0x12')][_0xb50a('0xb')]=function(_0x21107a){this[_0xb50a('0x16')]=rr(this['queue'][_0xb50a('0x1a')]);logger[_0xb50a('0x18')]('[%s][QUEUE]\x20try\x20with\x20%s',this[_0xb50a('0x9')]['id'],this['agentId']);if(_['isNil'](this[_0xb50a('0x7')][_0xb50a('0x15')][this['agentId']])){logger[_0xb50a('0x18')](_0xb50a('0x1b'),this[_0xb50a('0x9')]['id'],this[_0xb50a('0x16')]);_0x21107a[_0xb50a('0x19')]();setTimeout(this[_0xb50a('0xa')][_0xb50a('0xc')](this),0x3e8);}else{if(util[_0xb50a('0x14')](this[_0xb50a('0x9')]['id'],this[_0xb50a('0x7')]['agents'][this[_0xb50a('0x16')]],this[_0xb50a('0x9')][_0xb50a('0x17')],!![])){this[_0xb50a('0x7')][_0xb50a('0x15')][this[_0xb50a('0x16')]][_0xb50a('0x1c')]=!![];this[_0xb50a('0x7')][_0xb50a('0x15')][this['agentId']][_0xb50a('0x1d')]=this[_0xb50a('0x6')][_0xb50a('0x1e')];util[_0xb50a('0x1f')](this[_0xb50a('0x5')],this[_0xb50a('0x9')]['id'],this['realtime'][_0xb50a('0x15')][this['agentId']],this[_0xb50a('0x6')],this[_0xb50a('0x4')]);util[_0xb50a('0x20')](this[_0xb50a('0x9')]['id'],this['realtime'][_0xb50a('0x15')][this[_0xb50a('0x16')]],_0xb50a('0x21'));this[_0xb50a('0x8')][this[_0xb50a('0x16')]]=setInterval(this[_0xb50a('0x13')]['bind'](this,_0x21107a),0x3e8);}else{logger[_0xb50a('0x18')](_0xb50a('0x22'),this['squeue']['id'],this[_0xb50a('0x16')]);_0x21107a['done']();setTimeout(this['push']['bind'](this),0x3e8);}}};RRMemory[_0xb50a('0x12')]['handleTimeout']=function(_0x4d0209){logger[_0xb50a('0x18')](_0xb50a('0x23'),this[_0xb50a('0x9')]['id'],this[_0xb50a('0x16')]);if(_[_0xb50a('0x24')](this[_0xb50a('0x7')]['agents'][this[_0xb50a('0x16')]])){logger[_0xb50a('0x18')](_0xb50a('0x1b'),this[_0xb50a('0x9')]['id'],this[_0xb50a('0x16')]);}else{clearInterval(this[_0xb50a('0x8')][this[_0xb50a('0x16')]]);util[_0xb50a('0x25')](this[_0xb50a('0x5')],this[_0xb50a('0x9')]['id'],this[_0xb50a('0x7')][_0xb50a('0x15')][this[_0xb50a('0x16')]],this['queue'],this[_0xb50a('0x4')]);util[_0xb50a('0x20')](this['squeue']['id'],this[_0xb50a('0x7')][_0xb50a('0x15')][this[_0xb50a('0x16')]],'TIMEOUT');this['realtime'][_0xb50a('0x15')][this[_0xb50a('0x16')]]['busy']=![];this['realtime'][_0xb50a('0x15')][this['agentId']][_0xb50a('0x1d')]=undefined;}if(!_0x4d0209){setTimeout(this[_0xb50a('0xa')][_0xb50a('0xc')](this),0x3e8);}};function rrmemory(_0x2d2652,_0x477028,_0x132995,_0x27c70d){return new RRMemory(_0x2d2652,_0x477028,_0x132995,_0x27c70d);}module['exports']=rrmemory;
\ No newline at end of file
+var _0xa970=['./util','../../../../../config/logger','routing','notificationId','squeue','intervals','push','handleRun','handleTimeout','module','timeout','bind','drained','prototype','handleDrained','handleCheckReject','realtime','agentId','channel','info','[%s][QUEUE]\x20available\x20again\x20%s','mapAgentsId','[%s][QUEUE]\x20try\x20with\x20%s','isNil','agents','[%s][QUEUE]\x20agent\x20skipped,\x20unknown\x20id\x20%s','done','isAgentAvailable','busy','queue','showNotification','writeLog','RINGING','[%s][QUEUE]\x20timeout\x20with\x20%s','hideNotification','TIMEOUT','busyQueue','exports','lodash','uuid'];(function(_0x501bfd,_0x36d196){var _0x3cb897=function(_0x140a93){while(--_0x140a93){_0x501bfd['push'](_0x501bfd['shift']());}};_0x3cb897(++_0x36d196);}(_0xa970,0x13e));var _0x0a97=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xa970[_0x3dd15e];return _0x231fd0;};'use strict';var rr=require('rr');var _=require(_0x0a97('0x0'));var uuid=require(_0x0a97('0x1'));var util=require(_0x0a97('0x2'));var logger=require(_0x0a97('0x3'))(_0x0a97('0x4'));var RRMemory=function(_0xa9181e,_0x47f14e,_0x31cdb4,_0x43a9cd){this[_0x0a97('0x5')]=uuid['v4']();this[_0x0a97('0x6')]=_0xa9181e;this['queue']=_0x47f14e;this['realtime']=_0x31cdb4;this[_0x0a97('0x4')]=_0x43a9cd;this[_0x0a97('0x7')]={};this['squeue'][_0x0a97('0x8')](this[_0x0a97('0x9')]['bind'](this),this[_0x0a97('0xa')]['bind'](this),this[_0x0a97('0xb')]);this[_0x0a97('0x6')]['on'](_0x0a97('0xc'),this[_0x0a97('0xa')][_0x0a97('0xd')](this));this[_0x0a97('0x6')]['on'](_0x0a97('0xe'),this['handleDrained'][_0x0a97('0xd')](this));};RRMemory[_0x0a97('0xf')][_0x0a97('0x8')]=function(){this[_0x0a97('0x6')][_0x0a97('0x8')](this[_0x0a97('0x9')]['bind'](this),this[_0x0a97('0xa')][_0x0a97('0xd')](this));};RRMemory['prototype'][_0x0a97('0x10')]=function(_0x217a25){this[_0x0a97('0xa')](!![]);};RRMemory[_0x0a97('0xf')][_0x0a97('0x11')]=function(_0xb02f17){if(util['isAgentAvailable'](this[_0x0a97('0x6')]['id'],this[_0x0a97('0x12')]['agents'][this[_0x0a97('0x13')]],this['squeue'][_0x0a97('0x14')],!![])){logger[_0x0a97('0x15')](_0x0a97('0x16'),this[_0x0a97('0x6')]['id'],this['agentId']);clearInterval(this['intervals'][this[_0x0a97('0x13')]]);_0xb02f17['done']();setTimeout(this['push']['bind'](this),0x3e8);}};RRMemory[_0x0a97('0xf')][_0x0a97('0x9')]=function(_0xc5f85a){this[_0x0a97('0x13')]=rr(this['queue'][_0x0a97('0x17')]);logger['info'](_0x0a97('0x18'),this['squeue']['id'],this[_0x0a97('0x13')]);if(_[_0x0a97('0x19')](this[_0x0a97('0x12')][_0x0a97('0x1a')][this['agentId']])){logger['info'](_0x0a97('0x1b'),this[_0x0a97('0x6')]['id'],this[_0x0a97('0x13')]);_0xc5f85a[_0x0a97('0x1c')]();setTimeout(this[_0x0a97('0x8')]['bind'](this),0x3e8);}else{if(util[_0x0a97('0x1d')](this[_0x0a97('0x6')]['id'],this[_0x0a97('0x12')][_0x0a97('0x1a')][this['agentId']],this[_0x0a97('0x6')][_0x0a97('0x14')],!![])){this[_0x0a97('0x12')]['agents'][this['agentId']][_0x0a97('0x1e')]=!![];this['realtime'][_0x0a97('0x1a')][this[_0x0a97('0x13')]]['busyQueue']=this[_0x0a97('0x1f')]['name'];util[_0x0a97('0x20')](this[_0x0a97('0x5')],this[_0x0a97('0x6')]['id'],this['realtime']['agents'][this[_0x0a97('0x13')]],this[_0x0a97('0x1f')],this[_0x0a97('0x4')]);util[_0x0a97('0x21')](this[_0x0a97('0x6')]['id'],this[_0x0a97('0x12')]['agents'][this[_0x0a97('0x13')]],_0x0a97('0x22'));this[_0x0a97('0x7')][this[_0x0a97('0x13')]]=setInterval(this[_0x0a97('0x11')][_0x0a97('0xd')](this,_0xc5f85a),0x3e8);}else{logger[_0x0a97('0x15')]('[%s][QUEUE]\x20agent\x20skipped,\x20not\x20available\x20id\x20%s',this['squeue']['id'],this[_0x0a97('0x13')]);_0xc5f85a[_0x0a97('0x1c')]();setTimeout(this[_0x0a97('0x8')]['bind'](this),0x3e8);}}};RRMemory['prototype'][_0x0a97('0xa')]=function(_0x5ed021){logger[_0x0a97('0x15')](_0x0a97('0x23'),this[_0x0a97('0x6')]['id'],this[_0x0a97('0x13')]);if(_[_0x0a97('0x19')](this['realtime'][_0x0a97('0x1a')][this[_0x0a97('0x13')]])){logger[_0x0a97('0x15')](_0x0a97('0x1b'),this[_0x0a97('0x6')]['id'],this[_0x0a97('0x13')]);}else{clearInterval(this[_0x0a97('0x7')][this[_0x0a97('0x13')]]);util[_0x0a97('0x24')](this[_0x0a97('0x5')],this[_0x0a97('0x6')]['id'],this[_0x0a97('0x12')][_0x0a97('0x1a')][this['agentId']],this[_0x0a97('0x1f')],this[_0x0a97('0x4')]);util[_0x0a97('0x21')](this[_0x0a97('0x6')]['id'],this[_0x0a97('0x12')][_0x0a97('0x1a')][this[_0x0a97('0x13')]],_0x0a97('0x25'));this[_0x0a97('0x12')][_0x0a97('0x1a')][this[_0x0a97('0x13')]][_0x0a97('0x1e')]=![];this[_0x0a97('0x12')][_0x0a97('0x1a')][this[_0x0a97('0x13')]][_0x0a97('0x26')]=undefined;}if(!_0x5ed021){setTimeout(this[_0x0a97('0x8')][_0x0a97('0xd')](this),0x3e8);}};function rrmemory(_0x4efde0,_0xf3a1bf,_0x347ce8,_0x5bb715){return new RRMemory(_0x4efde0,_0xf3a1bf,_0x347ce8,_0x5bb715);}module[_0x0a97('0x27')]=rrmemory;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7c09=['[%s][QUEUE]\x20%s','message','user:%s','notification:%s','[%s][QUEUE][AGENT:%s][STATUS:%s]','isAgentAvailable','busy','BUSY','online','OFFLINE','PAUSE','hasOwnProperty','CurrentCapacity','Capacity','\x20MAXCAPACITY','showNotification','hideNotification','writeLog','util','../utils','ioredis','../../../../../config/environment','../../../../../config/logger','routing','redis','defaults','emit','name','user:save','split','\x20interaction','account','notificationSound','notificationShake','body','queue','msg','getMustacheRender','error','format'];(function(_0x1b4609,_0x4284b4){var _0x2219cc=function(_0x3b3c6c){while(--_0x3b3c6c){_0x1b4609['push'](_0x1b4609['shift']());}};_0x2219cc(++_0x4284b4);}(_0x7c09,0x102));var _0x97c0=function(_0x2f1319,_0x12905d){_0x2f1319=_0x2f1319-0x0;var _0x438683=_0x7c09[_0x2f1319];return _0x438683;};'use strict';var _=require('lodash');var util=require(_0x97c0('0x0'));var utils=require(_0x97c0('0x1'));var Mustache=require('mustache');var Redis=require(_0x97c0('0x2'));var config=require(_0x97c0('0x3'));var logger=require(_0x97c0('0x4'))(_0x97c0('0x5'));config[_0x97c0('0x6')]=_[_0x97c0('0x7')](config[_0x97c0('0x6')],{'host':'localhost','port':0x18eb});var io=require('socket.io-emitter')(new Redis(config['redis']));function emit(_0x46fdd9,_0x42c6c7,_0x2c19fa){io['to'](_0x46fdd9)[_0x97c0('0x8')](_0x42c6c7,_0x2c19fa);}function sendNotification(_0x293785,_0x57661a,_0x205520,_0x4ac5f1,_0x2d5507,_0x28cac4){io['to'](util['format']('user:%s',_0x4ac5f1[_0x97c0('0x9')]))[_0x97c0('0x8')](_0x97c0('0xa'),_0x4ac5f1);var _0x238ed9=_0x28cac4||{};var _0x346e34=_0x205520[_0x97c0('0xb')]('.');var _0x7fc93={'uniqueid':_0x57661a,'channel':_0x346e34[0x0],'id':_0x346e34[0x1],'title':_0x346e34[0x0]+_0x97c0('0xc'),'interactionId':_0x346e34[0x2],'queue':_0x2d5507?_0x2d5507[_0x97c0('0x9')]:null,'sound':_0x238ed9[_0x97c0('0xd')][_0x97c0('0xe')],'shake':_0x238ed9[_0x97c0('0xd')][_0x97c0('0xf')]};try{if(!_0x238ed9['body']){_0x238ed9[_0x97c0('0x10')]={};}if(_0x2d5507){_0x238ed9[_0x97c0('0x10')][_0x97c0('0x11')]=_0x2d5507;}else if(_0x238ed9['body'][_0x97c0('0x11')]){delete _0x238ed9[_0x97c0('0x10')][_0x97c0('0x11')];}_0x7fc93[_0x97c0('0x12')]=utils[_0x97c0('0x13')](_0x238ed9[_0x97c0('0xd')]['notificationTemplate'],_0x238ed9);}catch(_0x16fea6){_0x7fc93[_0x97c0('0x12')]='I\x20can\x27t\x20render\x20your\x20template';logger[_0x97c0('0x14')](util[_0x97c0('0x15')](_0x97c0('0x16'),_0x57661a,_0x16fea6[_0x97c0('0x17')]));}io['to'](util[_0x97c0('0x15')](_0x97c0('0x18'),_0x4ac5f1[_0x97c0('0x9')]))[_0x97c0('0x8')](util[_0x97c0('0x15')](_0x97c0('0x19'),_0x293785?'save':'remove'),_0x7fc93);}function writeLog(_0x2b74a2,_0xa3f59d,_0x169f19){return logger['info'](util[_0x97c0('0x15')](_0x97c0('0x1a'),_0x2b74a2,_0xa3f59d[_0x97c0('0x9')],_0x169f19));}exports[_0x97c0('0x1b')]=function(_0x30fba2,_0x3a0bfb,_0x9dff60,_0x5ac457){if(_0x3a0bfb[_0x97c0('0x1c')]){writeLog(_0x30fba2,_0x3a0bfb,_0x97c0('0x1d'));return![];}if(!_0x3a0bfb[_0x97c0('0x1e')]){writeLog(_0x30fba2,_0x3a0bfb,_0x97c0('0x1f'));return![];}if(_0x3a0bfb[_0x9dff60+'Pause']){writeLog(_0x30fba2,_0x3a0bfb,_0x97c0('0x20'));return![];}if(_0x5ac457&&_0x3a0bfb[_0x97c0('0x21')](_0x9dff60+'Capacity')&&_0x3a0bfb[_0x97c0('0x21')](_0x9dff60+_0x97c0('0x22'))){if(_0x3a0bfb[_0x9dff60+_0x97c0('0x23')]>0x0&&_0x3a0bfb[_0x9dff60+'CurrentCapacity']>=_0x3a0bfb[_0x9dff60+'Capacity']){writeLog(_0x30fba2,_0x3a0bfb,_0x9dff60['toUpperCase']()+_0x97c0('0x24'));return![];}}return!![];};exports[_0x97c0('0x25')]=function(_0x3a744c,_0x225e43,_0x26939e,_0x153b14,_0x4a3645){return sendNotification(!![],_0x3a744c,_0x225e43,_0x26939e,_0x153b14,_0x4a3645);};exports[_0x97c0('0x26')]=function(_0x1c183f,_0x325090,_0x4ad645,_0x14617c,_0x148e95){return sendNotification(![],_0x1c183f,_0x325090,_0x4ad645,_0x14617c,_0x148e95);};exports[_0x97c0('0x27')]=writeLog;
\ No newline at end of file
+var _0x2da6=['toUpperCase','\x20MAXCAPACITY','hideNotification','writeLog','lodash','util','../utils','mustache','ioredis','../../../../../config/environment','../../../../../config/logger','routing','redis','localhost','socket.io-emitter','emit','user:%s','name','user:save','split','\x20interaction','account','notificationShake','body','queue','msg','getMustacheRender','notificationTemplate','error','[%s][QUEUE]\x20%s','message','format','notification:%s','save','remove','info','isAgentAvailable','busy','Pause','PAUSE','hasOwnProperty','Capacity','CurrentCapacity'];(function(_0x2d385f,_0x2c0dd7){var _0x47c00d=function(_0x16f7f5){while(--_0x16f7f5){_0x2d385f['push'](_0x2d385f['shift']());}};_0x47c00d(++_0x2c0dd7);}(_0x2da6,0x1dd));var _0x62da=function(_0x2e1d25,_0x28fece){_0x2e1d25=_0x2e1d25-0x0;var _0x25a55f=_0x2da6[_0x2e1d25];return _0x25a55f;};'use strict';var _=require(_0x62da('0x0'));var util=require(_0x62da('0x1'));var utils=require(_0x62da('0x2'));var Mustache=require(_0x62da('0x3'));var Redis=require(_0x62da('0x4'));var config=require(_0x62da('0x5'));var logger=require(_0x62da('0x6'))(_0x62da('0x7'));config['redis']=_['defaults'](config[_0x62da('0x8')],{'host':_0x62da('0x9'),'port':0x18eb});var io=require(_0x62da('0xa'))(new Redis(config[_0x62da('0x8')]));function emit(_0x100e73,_0x9d9139,_0x310c15){io['to'](_0x100e73)[_0x62da('0xb')](_0x9d9139,_0x310c15);}function sendNotification(_0xbfd2b0,_0x4cfc5d,_0x19b866,_0x2a3937,_0x2a3d7c,_0x1b68f8){io['to'](util['format'](_0x62da('0xc'),_0x2a3937[_0x62da('0xd')]))[_0x62da('0xb')](_0x62da('0xe'),_0x2a3937);var _0x23be32=_0x1b68f8||{};var _0x5c990c=_0x19b866[_0x62da('0xf')]('.');var _0x199b89={'uniqueid':_0x4cfc5d,'channel':_0x5c990c[0x0],'id':_0x5c990c[0x1],'title':_0x5c990c[0x0]+_0x62da('0x10'),'interactionId':_0x5c990c[0x2],'queue':_0x2a3d7c?_0x2a3d7c[_0x62da('0xd')]:null,'sound':_0x23be32[_0x62da('0x11')]['notificationSound'],'shake':_0x23be32['account'][_0x62da('0x12')]};try{if(!_0x23be32[_0x62da('0x13')]){_0x23be32[_0x62da('0x13')]={};}if(_0x2a3d7c){_0x23be32[_0x62da('0x13')][_0x62da('0x14')]=_0x2a3d7c;}else if(_0x23be32[_0x62da('0x13')][_0x62da('0x14')]){delete _0x23be32[_0x62da('0x13')][_0x62da('0x14')];}_0x199b89[_0x62da('0x15')]=utils[_0x62da('0x16')](_0x23be32[_0x62da('0x11')][_0x62da('0x17')],_0x23be32);}catch(_0x1aa4f3){_0x199b89['msg']='I\x20can\x27t\x20render\x20your\x20template';logger[_0x62da('0x18')](util['format'](_0x62da('0x19'),_0x4cfc5d,_0x1aa4f3[_0x62da('0x1a')]));}io['to'](util[_0x62da('0x1b')]('user:%s',_0x2a3937[_0x62da('0xd')]))['emit'](util[_0x62da('0x1b')](_0x62da('0x1c'),_0xbfd2b0?_0x62da('0x1d'):_0x62da('0x1e')),_0x199b89);}function writeLog(_0x3d015f,_0x267cef,_0x183033){return logger[_0x62da('0x1f')](util[_0x62da('0x1b')]('[%s][QUEUE][AGENT:%s][STATUS:%s]',_0x3d015f,_0x267cef[_0x62da('0xd')],_0x183033));}exports[_0x62da('0x20')]=function(_0x2fd925,_0x1f6f96,_0x35f687,_0x54b936){if(_0x1f6f96[_0x62da('0x21')]){writeLog(_0x2fd925,_0x1f6f96,'BUSY');return![];}if(!_0x1f6f96['online']){writeLog(_0x2fd925,_0x1f6f96,'OFFLINE');return![];}if(_0x1f6f96[_0x35f687+_0x62da('0x22')]){writeLog(_0x2fd925,_0x1f6f96,_0x62da('0x23'));return![];}if(_0x54b936&&_0x1f6f96[_0x62da('0x24')](_0x35f687+_0x62da('0x25'))&&_0x1f6f96['hasOwnProperty'](_0x35f687+_0x62da('0x26'))){if(_0x1f6f96[_0x35f687+_0x62da('0x25')]>0x0&&_0x1f6f96[_0x35f687+'CurrentCapacity']>=_0x1f6f96[_0x35f687+_0x62da('0x25')]){writeLog(_0x2fd925,_0x1f6f96,_0x35f687[_0x62da('0x27')]()+_0x62da('0x28'));return![];}}return!![];};exports['showNotification']=function(_0x41de3a,_0x87f92b,_0x438aa5,_0x54da45,_0x4f5657){return sendNotification(!![],_0x41de3a,_0x87f92b,_0x438aa5,_0x54da45,_0x4f5657);};exports[_0x62da('0x29')]=function(_0x301e3d,_0x220ffc,_0x594c5a,_0x45f67a,_0x2a4681){return sendNotification(![],_0x301e3d,_0x220ffc,_0x594c5a,_0x45f67a,_0x2a4681);};exports[_0x62da('0x2a')]=writeLog;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9446=['message','join','info','next','[%s][SYSTEM]\x20commnad:\x20%s','exec','trim','[%s][SYSTEM]\x20result\x20code:\x20%s','replace','isNil','isEmpty','[%s][SYSTEM]\x20no\x20variable','body','[%s][SYSTEM]\x20set\x20variable\x20%s:\x20%s','isObject','stringify','[%s][SYSTEM]\x20no\x20command\x20executed,\x20force\x20next','validate','shelljs','lodash','../../../../config/logger','routing','string','command\x20is\x20a\x20string\x20and\x20it\x20is\x20required','consequence','error','[%s][SYSTEM]\x20%s'];(function(_0xfae23b,_0x2be4ba){var _0x200640=function(_0x4ae258){while(--_0x4ae258){_0xfae23b['push'](_0xfae23b['shift']());}};_0x200640(++_0x2be4ba);}(_0x9446,0x170));var _0x6944=function(_0x13d875,_0xc32036){_0x13d875=_0x13d875-0x0;var _0xbdc953=_0x9446[_0x13d875];return _0xbdc953;};'use strict';var schema=require(_0x6944('0x0'));var sh=require(_0x6944('0x1'));var _=require(_0x6944('0x2'));var utils=require('./utils');var logger=require(_0x6944('0x3'))(_0x6944('0x4'));var system=schema({'command':{'type':_0x6944('0x5'),'required':!![],'message':_0x6944('0x6')}});exports[_0x6944('0x7')]=function(_0x450565,_0x428ccc){return function(_0x35f33b){try{var _0x501cab={'command':_0x428ccc[0x0]};var _0x56057d=system[_0x6944('0x0')](_0x501cab,{'typecast':!![]});if(_0x56057d['length']){logger[_0x6944('0x8')](_0x6944('0x9'),_0x450565,_['map'](_0x56057d,_0x6944('0xa'))[_0x6944('0xb')](',\x20'));logger[_0x6944('0xc')]('[%s][SYSTEM]\x20no\x20command\x20executed,\x20force\x20next',_0x450565);_0x35f33b[_0x6944('0xd')]();}else{var _0x37490d=this;var _0x3cb175=utils['getMustacheRender'](_0x428ccc[0x0],this);logger['info'](_0x6944('0xe'),_0x450565,_0x3cb175);sh[_0x6944('0xf')](_[_0x6944('0x10')](_0x3cb175),function(_0x281c75,_0x320d44){logger['info'](_0x6944('0x11'),_0x450565,_0x281c75);if(_0x281c75==0x0){var _0x3694d8=_0x320d44[_0x6944('0x12')](/(\r\n|\n|\r)/gm,'');if(_[_0x6944('0x13')](_0x428ccc[0x1])||_[_0x6944('0x14')](_0x428ccc[0x1])){logger[_0x6944('0xc')](_0x6944('0x15'),_0x450565);_0x37490d[_0x6944('0x16')][_0x428ccc[0x1]]=_0x3694d8;}else{logger[_0x6944('0xc')](_0x6944('0x17'),_0x450565,_0x428ccc[0x1],_0x3694d8);_0x37490d[_0x6944('0x16')][_0x428ccc[0x1]]=_0x3694d8;}}_0x35f33b[_0x6944('0xd')]();});}}catch(_0x26409a){logger[_0x6944('0x8')]('[%s][SYSTEM]\x20%s',_0x450565,_[_0x6944('0x18')](_0x26409a)?JSON[_0x6944('0x19')](_0x26409a):_0x26409a);logger[_0x6944('0xc')](_0x6944('0x1a'),_0x450565);_0x35f33b[_0x6944('0xd')]();}};};
\ No newline at end of file
+var _0xb01a=['shelljs','lodash','./utils','../../../../config/logger','routing','string','command\x20is\x20a\x20string\x20and\x20it\x20is\x20required','consequence','error','[%s][SYSTEM]\x20%s','map','message','join','[%s][SYSTEM]\x20no\x20command\x20executed,\x20force\x20next','next','getMustacheRender','info','exec','[%s][SYSTEM]\x20result\x20code:\x20%s','replace','isNil','[%s][SYSTEM]\x20set\x20variable\x20%s:\x20%s','body','isObject','validate'];(function(_0x10d670,_0x178996){var _0x20d6f8=function(_0x4a4b87){while(--_0x4a4b87){_0x10d670['push'](_0x10d670['shift']());}};_0x20d6f8(++_0x178996);}(_0xb01a,0xe0));var _0xab01=function(_0x56aca3,_0x4c01d1){_0x56aca3=_0x56aca3-0x0;var _0x54d207=_0xb01a[_0x56aca3];return _0x54d207;};'use strict';var schema=require(_0xab01('0x0'));var sh=require(_0xab01('0x1'));var _=require(_0xab01('0x2'));var utils=require(_0xab01('0x3'));var logger=require(_0xab01('0x4'))(_0xab01('0x5'));var system=schema({'command':{'type':_0xab01('0x6'),'required':!![],'message':_0xab01('0x7')}});exports[_0xab01('0x8')]=function(_0x2f01ba,_0x2ad548){return function(_0x5a0e5b){try{var _0x502e33={'command':_0x2ad548[0x0]};var _0x4ff501=system[_0xab01('0x0')](_0x502e33,{'typecast':!![]});if(_0x4ff501['length']){logger[_0xab01('0x9')](_0xab01('0xa'),_0x2f01ba,_[_0xab01('0xb')](_0x4ff501,_0xab01('0xc'))[_0xab01('0xd')](',\x20'));logger['info'](_0xab01('0xe'),_0x2f01ba);_0x5a0e5b[_0xab01('0xf')]();}else{var _0x428412=this;var _0x355c13=utils[_0xab01('0x10')](_0x2ad548[0x0],this);logger[_0xab01('0x11')]('[%s][SYSTEM]\x20commnad:\x20%s',_0x2f01ba,_0x355c13);sh[_0xab01('0x12')](_['trim'](_0x355c13),function(_0x128454,_0x46db48){logger[_0xab01('0x11')](_0xab01('0x13'),_0x2f01ba,_0x128454);if(_0x128454==0x0){var _0x2dad8c=_0x46db48[_0xab01('0x14')](/(\r\n|\n|\r)/gm,'');if(_[_0xab01('0x15')](_0x2ad548[0x1])||_['isEmpty'](_0x2ad548[0x1])){logger[_0xab01('0x11')]('[%s][SYSTEM]\x20no\x20variable',_0x2f01ba);_0x428412['body'][_0x2ad548[0x1]]=_0x2dad8c;}else{logger[_0xab01('0x11')](_0xab01('0x16'),_0x2f01ba,_0x2ad548[0x1],_0x2dad8c);_0x428412[_0xab01('0x17')][_0x2ad548[0x1]]=_0x2dad8c;}}_0x5a0e5b['next']();});}}catch(_0x468309){logger[_0xab01('0x9')]('[%s][SYSTEM]\x20%s',_0x2f01ba,_[_0xab01('0x18')](_0x468309)?JSON['stringify'](_0x468309):_0x468309);logger[_0xab01('0x11')]('[%s][SYSTEM]\x20no\x20command\x20executed,\x20force\x20next',_0x2f01ba);_0x5a0e5b[_0xab01('0xf')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xff49=['next','isObject','lodash','../../rpc/chatInteraction','../../rpc/openchannelInteraction','../../rpc/mailInteraction','../../rpc/faxInteraction','../../../../config/logger','routing','number','TagId\x20is\x20a\x20string\x20and\x20it\x20is\x20required','consequence','validate','length','error','[%s][TAG]\x20%s','map','message','info','addTags','interaction','then','channel','[%s][TAG]\x20no\x20tags\x20saved,\x20force\x20next','finally'];(function(_0x46e2f5,_0x1209d9){var _0x53eb0e=function(_0x5945d1){while(--_0x5945d1){_0x46e2f5['push'](_0x46e2f5['shift']());}};_0x53eb0e(++_0x1209d9);}(_0xff49,0xe3));var _0x9ff4=function(_0x510b98,_0x4c4cbb){_0x510b98=_0x510b98-0x0;var _0x45e775=_0xff49[_0x510b98];return _0x45e775;};'use strict';var schema=require('validate');var _=require(_0x9ff4('0x0'));var rpc={'chatInteraction':require(_0x9ff4('0x1')),'openchannelInteraction':require(_0x9ff4('0x2')),'smsInteraction':require('../../rpc/smsInteraction'),'mailInteraction':require(_0x9ff4('0x3')),'faxInteraction':require(_0x9ff4('0x4')),'whatsappInteraction':require('../../rpc/whatsappInteraction')};var logger=require(_0x9ff4('0x5'))(_0x9ff4('0x6'));var tag=schema({'tag':{'type':_0x9ff4('0x7'),'required':!![],'message':_0x9ff4('0x8')}});exports[_0x9ff4('0x9')]=function(_0x32bf7c,_0x4b7814,_0x536053,_0x19d72c){return function(_0x153a90){try{var _0xf1c5f={'tag':_0x4b7814[0x0]};var _0x5f28a7=tag[_0x9ff4('0xa')](_0xf1c5f,{'typecast':!![]});if(_0x5f28a7[_0x9ff4('0xb')]){logger[_0x9ff4('0xc')](_0x9ff4('0xd'),_0x32bf7c,_[_0x9ff4('0xe')](_0x5f28a7,_0x9ff4('0xf'))['join'](',\x20'));logger[_0x9ff4('0x10')]('[%s][TAG]\x20no\x20tags\x20saved,\x20force\x20next',_0x32bf7c);_0x153a90['next']();}else{var _0x14e654={'ids':[_0x4b7814[0x0]]};if(rpc[_0x19d72c['channel']+'Interaction']){rpc[_0x19d72c['channel']+'Interaction'][_0x9ff4('0x11')](_0x19d72c[_0x9ff4('0x12')]['id'],_0x14e654)[_0x9ff4('0x13')](function(_0xa76f99){logger[_0x9ff4('0x10')]('[%s][TAG]\x20tag\x20\x22%s\x22\x20added\x20to\x20%s\x20interaction\x20%s',_0x32bf7c,_0x4b7814[0x1],_0x19d72c[_0x9ff4('0x14')],_0x19d72c[_0x9ff4('0x12')]['id']);})['catch'](function(_0x4f3e9d){logger[_0x9ff4('0xc')](_0x9ff4('0xd'),_0x32bf7c,JSON['stringify'](_0x4f3e9d));logger['info'](_0x9ff4('0x15'),_0x32bf7c);})[_0x9ff4('0x16')](function(){_0x153a90[_0x9ff4('0x17')]();});}}}catch(_0x1e5fd3){logger[_0x9ff4('0xc')](_0x9ff4('0xd'),_0x32bf7c,_[_0x9ff4('0x18')](_0x1e5fd3)?JSON['stringify'](_0x1e5fd3):_0x1e5fd3);logger[_0x9ff4('0x10')]('[%s][TAG]\x20no\x20tags\x20saved,\x20force\x20next',_0x32bf7c);_0x153a90[_0x9ff4('0x17')]();}};};
\ No newline at end of file
+var _0x6790=['number','TagId\x20is\x20a\x20string\x20and\x20it\x20is\x20required','consequence','length','error','map','message','join','info','channel','Interaction','addTags','then','[%s][TAG]\x20tag\x20\x22%s\x22\x20added\x20to\x20%s\x20interaction\x20%s','interaction','catch','[%s][TAG]\x20%s','stringify','[%s][TAG]\x20no\x20tags\x20saved,\x20force\x20next','finally','next','isObject','validate','../../rpc/chatInteraction','../../rpc/openchannelInteraction','../../rpc/smsInteraction','../../rpc/mailInteraction','../../rpc/faxInteraction','../../rpc/whatsappInteraction','../../../../config/logger','routing'];(function(_0x1992f1,_0x5c61f0){var _0x413dfe=function(_0x2136e5){while(--_0x2136e5){_0x1992f1['push'](_0x1992f1['shift']());}};_0x413dfe(++_0x5c61f0);}(_0x6790,0xef));var _0x0679=function(_0x36749a,_0x34ed38){_0x36749a=_0x36749a-0x0;var _0x44d679=_0x6790[_0x36749a];return _0x44d679;};'use strict';var schema=require(_0x0679('0x0'));var _=require('lodash');var rpc={'chatInteraction':require(_0x0679('0x1')),'openchannelInteraction':require(_0x0679('0x2')),'smsInteraction':require(_0x0679('0x3')),'mailInteraction':require(_0x0679('0x4')),'faxInteraction':require(_0x0679('0x5')),'whatsappInteraction':require(_0x0679('0x6'))};var logger=require(_0x0679('0x7'))(_0x0679('0x8'));var tag=schema({'tag':{'type':_0x0679('0x9'),'required':!![],'message':_0x0679('0xa')}});exports[_0x0679('0xb')]=function(_0x493f6b,_0xeb9ba7,_0x47c6e1,_0x5a20f3){return function(_0x328b2a){try{var _0x33a975={'tag':_0xeb9ba7[0x0]};var _0xa66749=tag[_0x0679('0x0')](_0x33a975,{'typecast':!![]});if(_0xa66749[_0x0679('0xc')]){logger[_0x0679('0xd')]('[%s][TAG]\x20%s',_0x493f6b,_[_0x0679('0xe')](_0xa66749,_0x0679('0xf'))[_0x0679('0x10')](',\x20'));logger[_0x0679('0x11')]('[%s][TAG]\x20no\x20tags\x20saved,\x20force\x20next',_0x493f6b);_0x328b2a['next']();}else{var _0x2f7843={'ids':[_0xeb9ba7[0x0]]};if(rpc[_0x5a20f3[_0x0679('0x12')]+_0x0679('0x13')]){rpc[_0x5a20f3[_0x0679('0x12')]+_0x0679('0x13')][_0x0679('0x14')](_0x5a20f3['interaction']['id'],_0x2f7843)[_0x0679('0x15')](function(_0xb594a){logger['info'](_0x0679('0x16'),_0x493f6b,_0xeb9ba7[0x1],_0x5a20f3[_0x0679('0x12')],_0x5a20f3[_0x0679('0x17')]['id']);})[_0x0679('0x18')](function(_0x3afb22){logger[_0x0679('0xd')](_0x0679('0x19'),_0x493f6b,JSON[_0x0679('0x1a')](_0x3afb22));logger[_0x0679('0x11')](_0x0679('0x1b'),_0x493f6b);})[_0x0679('0x1c')](function(){_0x328b2a[_0x0679('0x1d')]();});}}}catch(_0x5eb39d){logger[_0x0679('0xd')](_0x0679('0x19'),_0x493f6b,_[_0x0679('0x1e')](_0x5eb39d)?JSON[_0x0679('0x1a')](_0x5eb39d):_0x5eb39d);logger[_0x0679('0x11')](_0x0679('0x1b'),_0x493f6b);_0x328b2a[_0x0679('0x1d')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd8b0=['merge','body','contact','message','list','mustache','lodash','render'];(function(_0x8a8349,_0x1140d5){var _0x45ea05=function(_0x26a5a7){while(--_0x26a5a7){_0x8a8349['push'](_0x8a8349['shift']());}};_0x45ea05(++_0x1140d5);}(_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
+var _0xd8b0=['merge','body','contact','message','list','mustache','lodash','render'];(function(_0x35c2fa,_0x2919cd){var _0x4aea95=function(_0x54ae4b){while(--_0x54ae4b){_0x35c2fa['push'](_0x35c2fa['shift']());}};_0x4aea95(++_0x2919cd);}(_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 _0x47e4=['mailQueuesWaitingInteractions','openchannelQueuesWaitingInteractions','smsQueuesWaitingInteractions','faxQueuesWaitingInteractions','server','http','127.0.0.1','log','Routing\x20RPC\x20server\x20listening\x20on\x20127.0.0.1:%d!','RPC\x20listening\x20on\x20port:','lodash','util','path','jayson/promise','bluebird','uuid','../../../config/environment','../../../config/logger','../rpc/openchannelQueueReport','../rpc/mailQueueReport','../rpc/chatQueueReport','../rpc/faxQueueReport','../rpc/whatsappQueueReport','../lib/rule-engine','format','%s.%s.%s','isNil','IntervalId','Intervals','map','interval','listen','rules','channel','message','interaction','applications','length','existsSync','app','toLowerCase','autoreply','split','mail','push','slice','join','dialogflow','appdata','dialogflowv2','amazonlex','TagId','%s:%s:%s','condition','intervals','./applications/','consequence','priority','info','Push\x20new\x20rule','on\x20interval','\x20|\x20','error','Please\x20create\x20a\x20new\x20file\x20under','.js','execute','Applications\x20executed','stringify','matchPath','No\x20applications\x20to\x20execute','stack','routing\x20is\x20empty','agent','agents','busyQueue','emit','end','QueueReport','update','UserId','error\x20update\x20queue\x20report','message\x20is\x20empty','busy','hasOwnProperty','capacity','CurrentCapacity','updateRealtime','agent\x20not\x20found','values','chatQueues','loggedIn','name','paused','waiting','mailQueues','available','openchannelQueues','smsQueues','faxQueues','whatsappQueues','chatQueuesWaitingInteractions'];(function(_0x4f84eb,_0x1bc6bd){var _0x296a6d=function(_0x1d3842){while(--_0x1d3842){_0x4f84eb['push'](_0x4f84eb['shift']());}};_0x296a6d(++_0x1bc6bd);}(_0x47e4,0xd4));var _0x447e=function(_0x520ce8,_0x445e56){_0x520ce8=_0x520ce8-0x0;var _0x64369e=_0x47e4[_0x520ce8];return _0x64369e;};'use strict';var _=require(_0x447e('0x0'));var util=require(_0x447e('0x1'));var path=require(_0x447e('0x2'));var fs=require('fs');var jayson=require(_0x447e('0x3'));var BPromise=require(_0x447e('0x4'));var uuid=require(_0x447e('0x5'));var config=require(_0x447e('0x6'));var logger=require(_0x447e('0x7'))('routing');var rpc={'openchannelQueueReport':require(_0x447e('0x8')),'mailQueueReport':require(_0x447e('0x9')),'chatQueueReport':require(_0x447e('0xa')),'smsQueueReport':require('../rpc/smsQueueReport'),'faxQueueReport':require(_0x447e('0xb')),'whatsappQueueReport':require(_0x447e('0xc'))};var RuleEngine=require(_0x447e('0xd'));function getId(_0x596cea,_0x26ff0b,_0x412884){return util[_0x447e('0xe')](_0x447e('0xf'),_0x596cea,_0x26ff0b||0x0,_0x412884||0x0);}function getIntervals(_0x2f8861,_0x34620e){var _0xc68f5a=[];if(!_[_0x447e('0x10')](_0x34620e[_0x447e('0x11')])&&!_['isNil'](_0x2f8861[_0x34620e['IntervalId']])&&!_[_0x447e('0x10')](_0x2f8861[_0x34620e[_0x447e('0x11')]][_0x447e('0x12')])){_0xc68f5a=_[_0x447e('0x13')](_0x2f8861[_0x34620e[_0x447e('0x11')]][_0x447e('0x12')],_0x447e('0x14'));}else if(!_[_0x447e('0x10')](_0x34620e[_0x447e('0x14')])){_0xc68f5a=[_0x34620e[_0x447e('0x14')]];}return _0xc68f5a;}exports[_0x447e('0x15')]=function(_0x2e0aa4){_0x2e0aa4[_0x447e('0x16')]={};return new BPromise(function(_0xc43250,_0x2b5e05){var _0x23e0e0={'Start':function(_0x145722){var _0x2043d5=this;return new Promise(function(_0x1a2ebd,_0x5133c7){if(_0x145722){try{var _0x4a673e=[];var _0x1ea9c6=getId(_0x145722[_0x447e('0x17')],_0x145722[_0x447e('0x18')]?_0x145722[_0x447e('0x18')]['id']:0x0,_0x145722['interaction']?_0x145722[_0x447e('0x19')]['id']:0x0);if(_0x145722[_0x447e('0x1a')]&&_['isArray'](_0x145722[_0x447e('0x1a')])&&_0x145722[_0x447e('0x1a')][_0x447e('0x1b')]){for(var _0x1b0a66=0x0;_0x1b0a66<_0x145722[_0x447e('0x1a')][_0x447e('0x1b')];_0x1b0a66+=0x1){var _0x59be74=_0x145722[_0x447e('0x1a')][_0x1b0a66];if(fs[_0x447e('0x1c')](path['join'](__dirname,_0x447e('0x1a'),_0x59be74[_0x447e('0x1d')]+'.js'))){var _0xe41b6f=[];switch(_0x59be74[_0x447e('0x1d')][_0x447e('0x1e')]()){case _0x447e('0x1f'):var _0x3387da=_0x59be74['appdata'][_0x447e('0x20')](',');if(_0x145722[_0x447e('0x17')]===_0x447e('0x21')){_0xe41b6f[_0x447e('0x22')](_0x3387da[0x0]);_0xe41b6f[_0x447e('0x22')](_0x3387da[0x1]);_0xe41b6f[_0x447e('0x22')](_0x3387da[_0x447e('0x23')](0x2,_0x3387da['length'])['join'](','));}else{_0xe41b6f[_0x447e('0x22')](_0x3387da[0x0]);_0xe41b6f[_0x447e('0x22')](_0x3387da[_0x447e('0x23')](0x1,_0x3387da[_0x447e('0x1b')])[_0x447e('0x24')](','));}break;case _0x447e('0x25'):var _0x5d12b8=_0x59be74[_0x447e('0x26')][_0x447e('0x20')](',');_0xe41b6f[_0x447e('0x22')](_0x5d12b8[0x0]);_0xe41b6f['push'](_0x5d12b8[0x1]);_0xe41b6f[_0x447e('0x22')](_0x5d12b8[_0x447e('0x23')](0x2,_0x5d12b8[_0x447e('0x1b')])[_0x447e('0x24')](','));break;case _0x447e('0x27'):var _0x29d345=_0x59be74[_0x447e('0x26')][_0x447e('0x20')](',');_0xe41b6f[_0x447e('0x22')](_0x29d345[0x0]);_0xe41b6f[_0x447e('0x22')](_0x29d345[0x1]);_0xe41b6f[_0x447e('0x22')](_0x29d345[0x2]);_0xe41b6f[_0x447e('0x22')](_0x29d345[0x3]);_0xe41b6f['push'](_0x29d345[_0x447e('0x23')](0x4,_0x29d345['length'])['join'](','));break;case _0x447e('0x28'):var _0x22dbc7=_0x59be74[_0x447e('0x26')]['split'](',');_0xe41b6f['push'](_0x22dbc7[0x0]);_0xe41b6f['push'](_0x22dbc7[0x1]);_0xe41b6f[_0x447e('0x22')](_0x22dbc7[0x2]);_0xe41b6f[_0x447e('0x22')](_0x22dbc7[0x3]);_0xe41b6f[_0x447e('0x22')](_0x22dbc7[_0x447e('0x23')](0x4,_0x22dbc7[_0x447e('0x1b')])['join'](','));break;case _0x447e('0x18'):_0xe41b6f['push'](_0x59be74['appdata']);break;case'tag':_0xe41b6f[_0x447e('0x22')](_0x59be74[_0x447e('0x29')]);_0xe41b6f[_0x447e('0x22')](_0x59be74[_0x447e('0x26')]);break;default:_0xe41b6f=_[_0x447e('0x10')](_0x59be74[_0x447e('0x26')])?[]:_0x59be74[_0x447e('0x26')]['split'](',');}var _0x2f9069={'id':util['format'](_0x447e('0x2a'),_0x1ea9c6,_0x59be74['id'],_0x59be74['app']),'condition':require('./interval')[_0x447e('0x2b')](_0x1ea9c6,getIntervals(_0x2e0aa4[_0x447e('0x2c')],_0x59be74),_0x2e0aa4),'consequence':require(_0x447e('0x2d')+_0x59be74['app'])[_0x447e('0x2e')](_0x1ea9c6,_0xe41b6f,_0x2e0aa4,_0x145722),'p':_0x59be74[_0x447e('0x2f')]||0x0};logger[_0x447e('0x30')](_0x447e('0x31'),_0x2f9069['id'],_0x447e('0x32'),getIntervals(_0x2e0aa4['intervals'],_0x59be74)['join'](_0x447e('0x33')));_0x4a673e['push'](_0x2f9069);}else{logger[_0x447e('0x34')](_0x447e('0x35'),path[_0x447e('0x24')](__dirname,'applications',_0x59be74[_0x447e('0x1d')]+_0x447e('0x36')));}}_0x2e0aa4[_0x447e('0x16')][_0x1ea9c6]=new RuleEngine(_0x4a673e);_0x2e0aa4['rules'][_0x1ea9c6][_0x447e('0x37')](_0x145722,function(_0x248839){logger[_0x447e('0x30')](_0x447e('0x38'),JSON[_0x447e('0x39')](_0x248839[_0x447e('0x3a')]));if(_0x2e0aa4['rules'][_0x1ea9c6]){_0x2e0aa4[_0x447e('0x16')][_0x1ea9c6]['emit']('complete');}});return _0x1a2ebd({'code':0xc8,'message':_0x145722});}else{logger[_0x447e('0x30')](_0x447e('0x3b'));return _0x1a2ebd({'code':0xc8,'message':_0x145722});}}catch(_0x56e4cb){logger[_0x447e('0x34')](_0x56e4cb[_0x447e('0x3c')]);return _0x5133c7(_0x2043d5[_0x447e('0x34')](0x1f4,_0x56e4cb));}}return _0x5133c7(_0x447e('0x3d'));});},'AcceptMessage':function(_0xb53106){var _0x24cf48=this;return new Promise(function(_0x2e32e7,_0x3875cf){if(_0xb53106[_0x447e('0x3e')]&&_0xb53106['agent']['id']){if(_0x2e0aa4['agents'][_0xb53106['agent']['id']]){_0x2e0aa4[_0x447e('0x3f')][_0xb53106[_0x447e('0x3e')]['id']]['busy']=![];_0x2e0aa4[_0x447e('0x3f')][_0xb53106[_0x447e('0x3e')]['id']][_0x447e('0x40')]=undefined;}}if(_0xb53106[_0x447e('0x18')]&&_0xb53106[_0x447e('0x18')]['id']){try{var _0x206f71=getId(_0xb53106[_0x447e('0x17')],_0xb53106[_0x447e('0x18')]?_0xb53106[_0x447e('0x18')]['id']:0x0,_0xb53106['interaction']?_0xb53106[_0x447e('0x19')]['id']:0x0);if(_0x2e0aa4[_0x447e('0x16')][_0x206f71]){_0x2e0aa4[_0x447e('0x16')][_0x206f71][_0x447e('0x41')](_0x447e('0x42'));if(rpc[_0xb53106[_0x447e('0x17')]+_0x447e('0x43')]){rpc[_0xb53106[_0x447e('0x17')]+_0x447e('0x43')][_0x447e('0x44')](_0x206f71,{'UserId':_0xb53106['message'][_0x447e('0x45')]})['catch'](function(_0x28eab2){logger['error'](_0x447e('0x46'));});}}return _0x2e32e7({'code':0xc8,'message':_0xb53106});}catch(_0x540517){logger[_0x447e('0x34')](_0x540517[_0x447e('0x3c')]);return _0x3875cf(_0x24cf48[_0x447e('0x34')](0x1f4,_0x540517));}}logger['error'](_0x447e('0x47'));return _0x3875cf(_0x24cf48[_0x447e('0x34')](0x1f4,_0x447e('0x47')));});},'RejectMessage':function(_0x97639e){var _0x47f2ac=this;return new Promise(function(_0x32bc44,_0x3fca02){if(_0x97639e[_0x447e('0x3e')]&&_0x97639e['agent']['id']){try{if(_0x2e0aa4[_0x447e('0x3f')][_0x97639e['agent']['id']]){_0x2e0aa4[_0x447e('0x3f')][_0x97639e['agent']['id']][_0x447e('0x48')]=![];_0x2e0aa4[_0x447e('0x3f')][_0x97639e[_0x447e('0x3e')]['id']][_0x447e('0x40')]=undefined;}return _0x32bc44({'code':0xc8,'message':_0x97639e});}catch(_0x3d8fad){logger[_0x447e('0x34')](_0x3d8fad['stack']);return _0x3fca02(_0x47f2ac[_0x447e('0x34')](0x1f4,_0x3d8fad));}}logger['error'](_0x447e('0x47'));return _0x3fca02(_0x47f2ac['error'](0x1f4,_0x447e('0x47')));});},'AbandonInteraction':function(_0x58b70b){var _0x4ea6b3=this;return new Promise(function(_0x45872d,_0x1e8479){if(_0x58b70b[_0x447e('0x17')]&&_0x58b70b['interaction']&&_0x58b70b['interaction']['id']){try{var _0x2a21c7=getId(_0x58b70b['channel'],_0x58b70b[_0x447e('0x18')]?_0x58b70b[_0x447e('0x18')]['id']:0x0,_0x58b70b[_0x447e('0x19')]?_0x58b70b['interaction']['id']:0x0);if(_0x2e0aa4[_0x447e('0x16')][_0x2a21c7]){_0x2e0aa4[_0x447e('0x16')][_0x2a21c7]['emit']('end');}return _0x45872d({'code':0xc8,'message':_0x58b70b});}catch(_0x18305a){logger[_0x447e('0x34')](_0x18305a['stack']);return _0x1e8479(_0x4ea6b3['error'](0x1f4,_0x18305a));}}logger[_0x447e('0x34')]('message\x20is\x20empty');return _0x1e8479(_0x4ea6b3[_0x447e('0x34')](0x1f4,_0x447e('0x47')));});},'AgentCapacity':function(_0x1fd5e7){var _0x3c2520=this;return new Promise(function(_0x49b0aa,_0xac82f2){if(_0x2e0aa4[_0x447e('0x3f')][_0x447e('0x49')](_0x1fd5e7['id'])){for(var _0x27f6ec in _0x1fd5e7[_0x447e('0x4a')]){if(_0x1fd5e7[_0x447e('0x4a')][_0x447e('0x49')](_0x27f6ec)){if(_0x2e0aa4[_0x447e('0x3f')][_0x1fd5e7['id']]['hasOwnProperty'](_0x27f6ec+_0x447e('0x4b'))){_0x2e0aa4[_0x447e('0x3f')][_0x1fd5e7['id']][_0x27f6ec+_0x447e('0x4b')]=parseInt(_0x1fd5e7['capacity'][_0x27f6ec],0xa);}}}_0x2e0aa4['agents'][_0x1fd5e7['id']][_0x447e('0x4c')]();return _0x49b0aa({'code':0xc8,'message':_0x2e0aa4[_0x447e('0x3f')][_0x1fd5e7['id']]});}else{return _0xac82f2(_0x3c2520[_0x447e('0x34')](0x1f4,_0x447e('0x4d')));}});},'Agents':function(_0x49080e){return new Promise(function(_0x30a91b,_0x1be20e){var _0x5001d8=_[_0x447e('0x4e')](_0x2e0aa4['agents']);_0x30a91b({'count':_0x5001d8[_0x447e('0x1b')],'rows':_0x5001d8});});},'ChatQueues':function(_0x2ac55d){return new Promise(function(_0x3865c3,_0x1ba7e7){var _0x1112c4=[];for(var _0x5eb81d in _0x2e0aa4[_0x447e('0x4f')]){if(_0x2e0aa4['chatQueues'][_0x447e('0x49')](_0x5eb81d)){var _0x2dbe33=_0x2e0aa4['chatQueues'][_0x5eb81d];var _0x3c32c3={'id':_0x2dbe33['id'],'available':_0x2dbe33['available'],'loggedIn':_0x2dbe33[_0x447e('0x50')],'name':_0x2dbe33[_0x447e('0x51')],'paused':_0x2dbe33[_0x447e('0x52')],'waiting':_0x2dbe33[_0x447e('0x53')]};_0x1112c4[_0x447e('0x22')](_0x3c32c3);}}_0x3865c3({'count':_0x1112c4['length'],'rows':_0x1112c4});});},'MailQueues':function(_0x10731a){return new Promise(function(_0x1ec036,_0x400e78){var _0x378b33=[];for(var _0x4f12f3 in _0x2e0aa4['mailQueues']){if(_0x2e0aa4[_0x447e('0x54')][_0x447e('0x49')](_0x4f12f3)){var _0x5563c1=_0x2e0aa4['mailQueues'][_0x4f12f3];var _0xc03699={'id':_0x5563c1['id'],'available':_0x5563c1[_0x447e('0x55')],'loggedIn':_0x5563c1[_0x447e('0x50')],'name':_0x5563c1['name'],'paused':_0x5563c1['paused'],'waiting':_0x5563c1['waiting']};_0x378b33[_0x447e('0x22')](_0xc03699);}}_0x1ec036({'count':_0x378b33['length'],'rows':_0x378b33});});},'OpenchannelQueues':function(_0x1ff5a5){return new Promise(function(_0x2a88ef,_0x39719c){var _0x494e69=[];for(var _0x3aaa94 in _0x2e0aa4[_0x447e('0x56')]){if(_0x2e0aa4[_0x447e('0x56')]['hasOwnProperty'](_0x3aaa94)){var _0x3705b6=_0x2e0aa4[_0x447e('0x56')][_0x3aaa94];var _0x4a5606={'id':_0x3705b6['id'],'available':_0x3705b6[_0x447e('0x55')],'loggedIn':_0x3705b6['loggedIn'],'name':_0x3705b6[_0x447e('0x51')],'paused':_0x3705b6[_0x447e('0x52')],'waiting':_0x3705b6[_0x447e('0x53')]};_0x494e69[_0x447e('0x22')](_0x4a5606);}}_0x2a88ef({'count':_0x494e69[_0x447e('0x1b')],'rows':_0x494e69});});},'SmsQueues':function(_0x5c56b6){return new Promise(function(_0x55e29,_0x275df0){var _0x46f187=[];for(var _0x4507da in _0x2e0aa4[_0x447e('0x57')]){if(_0x2e0aa4[_0x447e('0x57')][_0x447e('0x49')](_0x4507da)){var _0x1340e7=_0x2e0aa4[_0x447e('0x57')][_0x4507da];var _0x201a44={'id':_0x1340e7['id'],'available':_0x1340e7[_0x447e('0x55')],'loggedIn':_0x1340e7[_0x447e('0x50')],'name':_0x1340e7[_0x447e('0x51')],'paused':_0x1340e7['paused'],'waiting':_0x1340e7['waiting']};_0x46f187[_0x447e('0x22')](_0x201a44);}}_0x55e29({'count':_0x46f187[_0x447e('0x1b')],'rows':_0x46f187});});},'FaxQueues':function(_0x187b54){return new Promise(function(_0x4af627,_0x26d693){var _0x1b0dc3=[];for(var _0x301e0c in _0x2e0aa4[_0x447e('0x58')]){if(_0x2e0aa4[_0x447e('0x58')][_0x447e('0x49')](_0x301e0c)){var _0x4ca146=_0x2e0aa4[_0x447e('0x58')][_0x301e0c];var _0x8f4365={'id':_0x4ca146['id'],'available':_0x4ca146[_0x447e('0x55')],'loggedIn':_0x4ca146[_0x447e('0x50')],'name':_0x4ca146['name'],'paused':_0x4ca146[_0x447e('0x52')],'waiting':_0x4ca146[_0x447e('0x53')]};_0x1b0dc3[_0x447e('0x22')](_0x8f4365);}}_0x4af627({'count':_0x1b0dc3['length'],'rows':_0x1b0dc3});});},'WhatsappQueues':function(_0x401085){return new Promise(function(_0x5d44fc,_0x31aafe){var _0x5c7132=[];for(var _0x49b385 in _0x2e0aa4[_0x447e('0x59')]){if(_0x2e0aa4[_0x447e('0x59')][_0x447e('0x49')](_0x49b385)){var _0x374f55=_0x2e0aa4['whatsappQueues'][_0x49b385];var _0x1969e6={'id':_0x374f55['id'],'available':_0x374f55[_0x447e('0x55')],'loggedIn':_0x374f55['loggedIn'],'name':_0x374f55[_0x447e('0x51')],'paused':_0x374f55[_0x447e('0x52')],'waiting':_0x374f55[_0x447e('0x53')]};_0x5c7132[_0x447e('0x22')](_0x1969e6);}}_0x5d44fc({'count':_0x5c7132[_0x447e('0x1b')],'rows':_0x5c7132});});},'ChatQueuesWaitingInteractions':function(_0x471122){return new Promise(function(_0x538139,_0x1e1cbc){var _0x35fe35=_[_0x447e('0x4e')](_0x2e0aa4[_0x447e('0x5a')]);_0x538139({'count':_0x35fe35['length'],'rows':_0x35fe35});});},'MailQueuesWaitingInteractions':function(_0x27b5e2){return new Promise(function(_0x276b86,_0x136c61){var _0x3320d3=_[_0x447e('0x4e')](_0x2e0aa4[_0x447e('0x5b')]);_0x276b86({'count':_0x3320d3[_0x447e('0x1b')],'rows':_0x3320d3});});},'OpenchannelQueuesWaitingInteractions':function(_0x368252){return new Promise(function(_0x4db7bd,_0x1d5bd0){var _0xe753e5=_[_0x447e('0x4e')](_0x2e0aa4[_0x447e('0x5c')]);_0x4db7bd({'count':_0xe753e5[_0x447e('0x1b')],'rows':_0xe753e5});});},'SmsQueuesWaitingInteractions':function(_0x21ba9d){return new Promise(function(_0x36ea15,_0x193a91){var _0x45661c=_[_0x447e('0x4e')](_0x2e0aa4[_0x447e('0x5d')]);_0x36ea15({'count':_0x45661c['length'],'rows':_0x45661c});});},'FaxQueuesWaitingInteractions':function(_0x3c30c9){return new Promise(function(_0x585205,_0x47f4d2){var _0x589698=_[_0x447e('0x4e')](_0x2e0aa4[_0x447e('0x5e')]);_0x585205({'count':_0x589698[_0x447e('0x1b')],'rows':_0x589698});});},'WhatsappQueuesWaitingInteractions':function(_0x3b28f9){return new Promise(function(_0x2bb84e,_0x2f468b){var _0x1b88f3=_[_0x447e('0x4e')](_0x2e0aa4['whatsappQueuesWaitingInteractions']);_0x2bb84e({'count':_0x1b88f3[_0x447e('0x1b')],'rows':_0x1b88f3});});}};var _0x55b18e=jayson[_0x447e('0x5f')](_0x23e0e0)[_0x447e('0x60')]();_0x55b18e['on'](_0x447e('0x34'),function(_0x275f3c){logger[_0x447e('0x34')](JSON[_0x447e('0x39')](_0x275f3c));return _0x2b5e05(_0x275f3c);});_0x55b18e[_0x447e('0x15')](0x232c,_0x447e('0x61'),function(){console[_0x447e('0x62')](_0x447e('0x63'),0x232c);return _0xc43250(_0x447e('0x64')+0x232c);});});};
\ No newline at end of file
+var _0xa3ef=['split','mail','push','slice','dialogflow','appdata','amazonlex','tag','%s:%s:%s','./interval','condition','intervals','./applications/','consequence','info','Push\x20new\x20rule','\x20|\x20','error','Please\x20create\x20a\x20new\x20file\x20under','Applications\x20executed','stringify','matchPath','emit','complete','No\x20applications\x20to\x20execute','routing\x20is\x20empty','agent','agents','busyQueue','end','QueueReport','update','catch','stack','message\x20is\x20empty','busy','capacity','hasOwnProperty','CurrentCapacity','agent\x20not\x20found','chatQueues','available','loggedIn','name','paused','waiting','mailQueues','openchannelQueues','smsQueues','faxQueues','whatsappQueues','values','chatQueuesWaitingInteractions','smsQueuesWaitingInteractions','faxQueuesWaitingInteractions','whatsappQueuesWaitingInteractions','server','http','127.0.0.1','log','Routing\x20RPC\x20server\x20listening\x20on\x20127.0.0.1:%d!','RPC\x20listening\x20on\x20port:','lodash','util','path','bluebird','uuid','../../../config/environment','../../../config/logger','routing','../rpc/mailQueueReport','../rpc/chatQueueReport','../rpc/smsQueueReport','../rpc/faxQueueReport','../rpc/whatsappQueueReport','../lib/rule-engine','format','%s.%s.%s','isNil','IntervalId','map','interval','listen','rules','channel','message','interaction','applications','length','existsSync','join','app','.js','toLowerCase','autoreply'];(function(_0x2f1176,_0x5bce57){var _0x4872f4=function(_0x399104){while(--_0x399104){_0x2f1176['push'](_0x2f1176['shift']());}};_0x4872f4(++_0x5bce57);}(_0xa3ef,0xfc));var _0xfa3e=function(_0x57cf2c,_0x4efdfa){_0x57cf2c=_0x57cf2c-0x0;var _0x4a5159=_0xa3ef[_0x57cf2c];return _0x4a5159;};'use strict';var _=require(_0xfa3e('0x0'));var util=require(_0xfa3e('0x1'));var path=require(_0xfa3e('0x2'));var fs=require('fs');var jayson=require('jayson/promise');var BPromise=require(_0xfa3e('0x3'));var uuid=require(_0xfa3e('0x4'));var config=require(_0xfa3e('0x5'));var logger=require(_0xfa3e('0x6'))(_0xfa3e('0x7'));var rpc={'openchannelQueueReport':require('../rpc/openchannelQueueReport'),'mailQueueReport':require(_0xfa3e('0x8')),'chatQueueReport':require(_0xfa3e('0x9')),'smsQueueReport':require(_0xfa3e('0xa')),'faxQueueReport':require(_0xfa3e('0xb')),'whatsappQueueReport':require(_0xfa3e('0xc'))};var RuleEngine=require(_0xfa3e('0xd'));function getId(_0x118406,_0x2478a6,_0x1078fd){return util[_0xfa3e('0xe')](_0xfa3e('0xf'),_0x118406,_0x2478a6||0x0,_0x1078fd||0x0);}function getIntervals(_0x578b2f,_0x8153a1){var _0x4ce8b4=[];if(!_[_0xfa3e('0x10')](_0x8153a1[_0xfa3e('0x11')])&&!_[_0xfa3e('0x10')](_0x578b2f[_0x8153a1[_0xfa3e('0x11')]])&&!_[_0xfa3e('0x10')](_0x578b2f[_0x8153a1['IntervalId']]['Intervals'])){_0x4ce8b4=_[_0xfa3e('0x12')](_0x578b2f[_0x8153a1[_0xfa3e('0x11')]]['Intervals'],'interval');}else if(!_[_0xfa3e('0x10')](_0x8153a1['interval'])){_0x4ce8b4=[_0x8153a1[_0xfa3e('0x13')]];}return _0x4ce8b4;}exports[_0xfa3e('0x14')]=function(_0x324e75){_0x324e75[_0xfa3e('0x15')]={};return new BPromise(function(_0x599316,_0x273858){var _0x100425={'Start':function(_0x166e9e){var _0x499107=this;return new Promise(function(_0x12ab2f,_0x48ca9c){if(_0x166e9e){try{var _0x291b04=[];var _0x1941de=getId(_0x166e9e[_0xfa3e('0x16')],_0x166e9e[_0xfa3e('0x17')]?_0x166e9e[_0xfa3e('0x17')]['id']:0x0,_0x166e9e[_0xfa3e('0x18')]?_0x166e9e['interaction']['id']:0x0);if(_0x166e9e['applications']&&_['isArray'](_0x166e9e[_0xfa3e('0x19')])&&_0x166e9e[_0xfa3e('0x19')][_0xfa3e('0x1a')]){for(var _0x18167d=0x0;_0x18167d<_0x166e9e[_0xfa3e('0x19')][_0xfa3e('0x1a')];_0x18167d+=0x1){var _0x307fc2=_0x166e9e[_0xfa3e('0x19')][_0x18167d];if(fs[_0xfa3e('0x1b')](path[_0xfa3e('0x1c')](__dirname,'applications',_0x307fc2[_0xfa3e('0x1d')]+_0xfa3e('0x1e')))){var _0x582ecc=[];switch(_0x307fc2[_0xfa3e('0x1d')][_0xfa3e('0x1f')]()){case _0xfa3e('0x20'):var _0x36a942=_0x307fc2['appdata'][_0xfa3e('0x21')](',');if(_0x166e9e[_0xfa3e('0x16')]===_0xfa3e('0x22')){_0x582ecc[_0xfa3e('0x23')](_0x36a942[0x0]);_0x582ecc[_0xfa3e('0x23')](_0x36a942[0x1]);_0x582ecc['push'](_0x36a942[_0xfa3e('0x24')](0x2,_0x36a942[_0xfa3e('0x1a')])[_0xfa3e('0x1c')](','));}else{_0x582ecc[_0xfa3e('0x23')](_0x36a942[0x0]);_0x582ecc['push'](_0x36a942['slice'](0x1,_0x36a942[_0xfa3e('0x1a')])[_0xfa3e('0x1c')](','));}break;case _0xfa3e('0x25'):var _0x4bad32=_0x307fc2[_0xfa3e('0x26')][_0xfa3e('0x21')](',');_0x582ecc[_0xfa3e('0x23')](_0x4bad32[0x0]);_0x582ecc[_0xfa3e('0x23')](_0x4bad32[0x1]);_0x582ecc['push'](_0x4bad32[_0xfa3e('0x24')](0x2,_0x4bad32[_0xfa3e('0x1a')])['join'](','));break;case'dialogflowv2':var _0x46b141=_0x307fc2[_0xfa3e('0x26')][_0xfa3e('0x21')](',');_0x582ecc[_0xfa3e('0x23')](_0x46b141[0x0]);_0x582ecc['push'](_0x46b141[0x1]);_0x582ecc[_0xfa3e('0x23')](_0x46b141[0x2]);_0x582ecc['push'](_0x46b141[0x3]);_0x582ecc[_0xfa3e('0x23')](_0x46b141['slice'](0x4,_0x46b141['length'])['join'](','));break;case _0xfa3e('0x27'):var _0x36336e=_0x307fc2[_0xfa3e('0x26')][_0xfa3e('0x21')](',');_0x582ecc[_0xfa3e('0x23')](_0x36336e[0x0]);_0x582ecc['push'](_0x36336e[0x1]);_0x582ecc['push'](_0x36336e[0x2]);_0x582ecc[_0xfa3e('0x23')](_0x36336e[0x3]);_0x582ecc[_0xfa3e('0x23')](_0x36336e['slice'](0x4,_0x36336e[_0xfa3e('0x1a')])[_0xfa3e('0x1c')](','));break;case _0xfa3e('0x17'):_0x582ecc[_0xfa3e('0x23')](_0x307fc2['appdata']);break;case _0xfa3e('0x28'):_0x582ecc['push'](_0x307fc2['TagId']);_0x582ecc[_0xfa3e('0x23')](_0x307fc2['appdata']);break;default:_0x582ecc=_[_0xfa3e('0x10')](_0x307fc2[_0xfa3e('0x26')])?[]:_0x307fc2[_0xfa3e('0x26')][_0xfa3e('0x21')](',');}var _0x42650b={'id':util[_0xfa3e('0xe')](_0xfa3e('0x29'),_0x1941de,_0x307fc2['id'],_0x307fc2['app']),'condition':require(_0xfa3e('0x2a'))[_0xfa3e('0x2b')](_0x1941de,getIntervals(_0x324e75[_0xfa3e('0x2c')],_0x307fc2),_0x324e75),'consequence':require(_0xfa3e('0x2d')+_0x307fc2['app'])[_0xfa3e('0x2e')](_0x1941de,_0x582ecc,_0x324e75,_0x166e9e),'p':_0x307fc2['priority']||0x0};logger[_0xfa3e('0x2f')](_0xfa3e('0x30'),_0x42650b['id'],'on\x20interval',getIntervals(_0x324e75[_0xfa3e('0x2c')],_0x307fc2)[_0xfa3e('0x1c')](_0xfa3e('0x31')));_0x291b04[_0xfa3e('0x23')](_0x42650b);}else{logger[_0xfa3e('0x32')](_0xfa3e('0x33'),path[_0xfa3e('0x1c')](__dirname,'applications',_0x307fc2[_0xfa3e('0x1d')]+_0xfa3e('0x1e')));}}_0x324e75[_0xfa3e('0x15')][_0x1941de]=new RuleEngine(_0x291b04);_0x324e75[_0xfa3e('0x15')][_0x1941de]['execute'](_0x166e9e,function(_0x20c134){logger[_0xfa3e('0x2f')](_0xfa3e('0x34'),JSON[_0xfa3e('0x35')](_0x20c134[_0xfa3e('0x36')]));if(_0x324e75['rules'][_0x1941de]){_0x324e75[_0xfa3e('0x15')][_0x1941de][_0xfa3e('0x37')](_0xfa3e('0x38'));}});return _0x12ab2f({'code':0xc8,'message':_0x166e9e});}else{logger[_0xfa3e('0x2f')](_0xfa3e('0x39'));return _0x12ab2f({'code':0xc8,'message':_0x166e9e});}}catch(_0x428a66){logger[_0xfa3e('0x32')](_0x428a66['stack']);return _0x48ca9c(_0x499107[_0xfa3e('0x32')](0x1f4,_0x428a66));}}return _0x48ca9c(_0xfa3e('0x3a'));});},'AcceptMessage':function(_0x6c7186){var _0x4cd633=this;return new Promise(function(_0x54f47a,_0x33c7e0){if(_0x6c7186[_0xfa3e('0x3b')]&&_0x6c7186[_0xfa3e('0x3b')]['id']){if(_0x324e75[_0xfa3e('0x3c')][_0x6c7186['agent']['id']]){_0x324e75[_0xfa3e('0x3c')][_0x6c7186['agent']['id']]['busy']=![];_0x324e75[_0xfa3e('0x3c')][_0x6c7186['agent']['id']][_0xfa3e('0x3d')]=undefined;}}if(_0x6c7186['message']&&_0x6c7186[_0xfa3e('0x17')]['id']){try{var _0x551d3a=getId(_0x6c7186[_0xfa3e('0x16')],_0x6c7186[_0xfa3e('0x17')]?_0x6c7186[_0xfa3e('0x17')]['id']:0x0,_0x6c7186[_0xfa3e('0x18')]?_0x6c7186[_0xfa3e('0x18')]['id']:0x0);if(_0x324e75['rules'][_0x551d3a]){_0x324e75[_0xfa3e('0x15')][_0x551d3a]['emit'](_0xfa3e('0x3e'));if(rpc[_0x6c7186['channel']+_0xfa3e('0x3f')]){rpc[_0x6c7186[_0xfa3e('0x16')]+_0xfa3e('0x3f')][_0xfa3e('0x40')](_0x551d3a,{'UserId':_0x6c7186[_0xfa3e('0x17')]['UserId']})[_0xfa3e('0x41')](function(_0x3651df){logger[_0xfa3e('0x32')]('error\x20update\x20queue\x20report');});}}return _0x54f47a({'code':0xc8,'message':_0x6c7186});}catch(_0x5b4bc1){logger[_0xfa3e('0x32')](_0x5b4bc1[_0xfa3e('0x42')]);return _0x33c7e0(_0x4cd633[_0xfa3e('0x32')](0x1f4,_0x5b4bc1));}}logger[_0xfa3e('0x32')](_0xfa3e('0x43'));return _0x33c7e0(_0x4cd633[_0xfa3e('0x32')](0x1f4,_0xfa3e('0x43')));});},'RejectMessage':function(_0x3987b6){var _0x21f127=this;return new Promise(function(_0x4d37df,_0x313daf){if(_0x3987b6[_0xfa3e('0x3b')]&&_0x3987b6['agent']['id']){try{if(_0x324e75[_0xfa3e('0x3c')][_0x3987b6[_0xfa3e('0x3b')]['id']]){_0x324e75['agents'][_0x3987b6['agent']['id']][_0xfa3e('0x44')]=![];_0x324e75[_0xfa3e('0x3c')][_0x3987b6[_0xfa3e('0x3b')]['id']][_0xfa3e('0x3d')]=undefined;}return _0x4d37df({'code':0xc8,'message':_0x3987b6});}catch(_0x115ffe){logger[_0xfa3e('0x32')](_0x115ffe[_0xfa3e('0x42')]);return _0x313daf(_0x21f127[_0xfa3e('0x32')](0x1f4,_0x115ffe));}}logger[_0xfa3e('0x32')](_0xfa3e('0x43'));return _0x313daf(_0x21f127[_0xfa3e('0x32')](0x1f4,_0xfa3e('0x43')));});},'AbandonInteraction':function(_0x2ced9e){var _0x339ccf=this;return new Promise(function(_0x4020a8,_0x1e4107){if(_0x2ced9e[_0xfa3e('0x16')]&&_0x2ced9e[_0xfa3e('0x18')]&&_0x2ced9e['interaction']['id']){try{var _0x39f79e=getId(_0x2ced9e['channel'],_0x2ced9e[_0xfa3e('0x17')]?_0x2ced9e[_0xfa3e('0x17')]['id']:0x0,_0x2ced9e[_0xfa3e('0x18')]?_0x2ced9e[_0xfa3e('0x18')]['id']:0x0);if(_0x324e75[_0xfa3e('0x15')][_0x39f79e]){_0x324e75[_0xfa3e('0x15')][_0x39f79e]['emit'](_0xfa3e('0x3e'));}return _0x4020a8({'code':0xc8,'message':_0x2ced9e});}catch(_0x42d6b2){logger[_0xfa3e('0x32')](_0x42d6b2[_0xfa3e('0x42')]);return _0x1e4107(_0x339ccf[_0xfa3e('0x32')](0x1f4,_0x42d6b2));}}logger[_0xfa3e('0x32')]('message\x20is\x20empty');return _0x1e4107(_0x339ccf['error'](0x1f4,'message\x20is\x20empty'));});},'AgentCapacity':function(_0x1701f7){var _0x350fc6=this;return new Promise(function(_0x5ac3f3,_0x2717c0){if(_0x324e75[_0xfa3e('0x3c')]['hasOwnProperty'](_0x1701f7['id'])){for(var _0x53377a in _0x1701f7[_0xfa3e('0x45')]){if(_0x1701f7[_0xfa3e('0x45')]['hasOwnProperty'](_0x53377a)){if(_0x324e75['agents'][_0x1701f7['id']][_0xfa3e('0x46')](_0x53377a+_0xfa3e('0x47'))){_0x324e75[_0xfa3e('0x3c')][_0x1701f7['id']][_0x53377a+_0xfa3e('0x47')]=parseInt(_0x1701f7['capacity'][_0x53377a],0xa);}}}_0x324e75[_0xfa3e('0x3c')][_0x1701f7['id']]['updateRealtime']();return _0x5ac3f3({'code':0xc8,'message':_0x324e75[_0xfa3e('0x3c')][_0x1701f7['id']]});}else{return _0x2717c0(_0x350fc6[_0xfa3e('0x32')](0x1f4,_0xfa3e('0x48')));}});},'Agents':function(_0x2c5d47){return new Promise(function(_0x11b2aa,_0x1be231){var _0x5dbaf0=_['values'](_0x324e75[_0xfa3e('0x3c')]);_0x11b2aa({'count':_0x5dbaf0[_0xfa3e('0x1a')],'rows':_0x5dbaf0});});},'ChatQueues':function(_0x229eaa){return new Promise(function(_0x2bccd0,_0xc05d71){var _0x3739eb=[];for(var _0x59918d in _0x324e75['chatQueues']){if(_0x324e75['chatQueues'][_0xfa3e('0x46')](_0x59918d)){var _0xa586d2=_0x324e75[_0xfa3e('0x49')][_0x59918d];var _0x5adccd={'id':_0xa586d2['id'],'available':_0xa586d2[_0xfa3e('0x4a')],'loggedIn':_0xa586d2[_0xfa3e('0x4b')],'name':_0xa586d2[_0xfa3e('0x4c')],'paused':_0xa586d2[_0xfa3e('0x4d')],'waiting':_0xa586d2[_0xfa3e('0x4e')]};_0x3739eb['push'](_0x5adccd);}}_0x2bccd0({'count':_0x3739eb[_0xfa3e('0x1a')],'rows':_0x3739eb});});},'MailQueues':function(_0x14faa0){return new Promise(function(_0x3726b7,_0x574c13){var _0x5d5205=[];for(var _0x34cbcf in _0x324e75[_0xfa3e('0x4f')]){if(_0x324e75[_0xfa3e('0x4f')][_0xfa3e('0x46')](_0x34cbcf)){var _0x2eeb0e=_0x324e75[_0xfa3e('0x4f')][_0x34cbcf];var _0x572f98={'id':_0x2eeb0e['id'],'available':_0x2eeb0e[_0xfa3e('0x4a')],'loggedIn':_0x2eeb0e[_0xfa3e('0x4b')],'name':_0x2eeb0e['name'],'paused':_0x2eeb0e[_0xfa3e('0x4d')],'waiting':_0x2eeb0e[_0xfa3e('0x4e')]};_0x5d5205['push'](_0x572f98);}}_0x3726b7({'count':_0x5d5205[_0xfa3e('0x1a')],'rows':_0x5d5205});});},'OpenchannelQueues':function(_0xc3cdf9){return new Promise(function(_0x51a4d1,_0x2d0dc7){var _0x3a7fd5=[];for(var _0x1c4484 in _0x324e75[_0xfa3e('0x50')]){if(_0x324e75['openchannelQueues'][_0xfa3e('0x46')](_0x1c4484)){var _0x1f51d4=_0x324e75[_0xfa3e('0x50')][_0x1c4484];var _0x5f3287={'id':_0x1f51d4['id'],'available':_0x1f51d4[_0xfa3e('0x4a')],'loggedIn':_0x1f51d4[_0xfa3e('0x4b')],'name':_0x1f51d4[_0xfa3e('0x4c')],'paused':_0x1f51d4[_0xfa3e('0x4d')],'waiting':_0x1f51d4[_0xfa3e('0x4e')]};_0x3a7fd5[_0xfa3e('0x23')](_0x5f3287);}}_0x51a4d1({'count':_0x3a7fd5[_0xfa3e('0x1a')],'rows':_0x3a7fd5});});},'SmsQueues':function(_0x42a749){return new Promise(function(_0x3db0c,_0x293886){var _0x543a2b=[];for(var _0x18d885 in _0x324e75[_0xfa3e('0x51')]){if(_0x324e75[_0xfa3e('0x51')][_0xfa3e('0x46')](_0x18d885)){var _0x354d99=_0x324e75['smsQueues'][_0x18d885];var _0x4b617e={'id':_0x354d99['id'],'available':_0x354d99['available'],'loggedIn':_0x354d99[_0xfa3e('0x4b')],'name':_0x354d99[_0xfa3e('0x4c')],'paused':_0x354d99[_0xfa3e('0x4d')],'waiting':_0x354d99['waiting']};_0x543a2b[_0xfa3e('0x23')](_0x4b617e);}}_0x3db0c({'count':_0x543a2b[_0xfa3e('0x1a')],'rows':_0x543a2b});});},'FaxQueues':function(_0x8260e0){return new Promise(function(_0x3c603e,_0x1882c8){var _0x2b125d=[];for(var _0x1dfced in _0x324e75[_0xfa3e('0x52')]){if(_0x324e75[_0xfa3e('0x52')][_0xfa3e('0x46')](_0x1dfced)){var _0x14a28f=_0x324e75[_0xfa3e('0x52')][_0x1dfced];var _0x128100={'id':_0x14a28f['id'],'available':_0x14a28f[_0xfa3e('0x4a')],'loggedIn':_0x14a28f[_0xfa3e('0x4b')],'name':_0x14a28f[_0xfa3e('0x4c')],'paused':_0x14a28f[_0xfa3e('0x4d')],'waiting':_0x14a28f[_0xfa3e('0x4e')]};_0x2b125d[_0xfa3e('0x23')](_0x128100);}}_0x3c603e({'count':_0x2b125d[_0xfa3e('0x1a')],'rows':_0x2b125d});});},'WhatsappQueues':function(_0x2cb95a){return new Promise(function(_0x491540,_0x5009e5){var _0x35cb12=[];for(var _0x3e7356 in _0x324e75['whatsappQueues']){if(_0x324e75['whatsappQueues'][_0xfa3e('0x46')](_0x3e7356)){var _0x4ed2f1=_0x324e75[_0xfa3e('0x53')][_0x3e7356];var _0x3a84c9={'id':_0x4ed2f1['id'],'available':_0x4ed2f1[_0xfa3e('0x4a')],'loggedIn':_0x4ed2f1[_0xfa3e('0x4b')],'name':_0x4ed2f1[_0xfa3e('0x4c')],'paused':_0x4ed2f1[_0xfa3e('0x4d')],'waiting':_0x4ed2f1[_0xfa3e('0x4e')]};_0x35cb12[_0xfa3e('0x23')](_0x3a84c9);}}_0x491540({'count':_0x35cb12[_0xfa3e('0x1a')],'rows':_0x35cb12});});},'ChatQueuesWaitingInteractions':function(_0x104230){return new Promise(function(_0x4dbb6f,_0xe0ae){var _0x54fde0=_[_0xfa3e('0x54')](_0x324e75[_0xfa3e('0x55')]);_0x4dbb6f({'count':_0x54fde0['length'],'rows':_0x54fde0});});},'MailQueuesWaitingInteractions':function(_0x4cb195){return new Promise(function(_0x2bcd38,_0x36be4){var _0x33ee6f=_[_0xfa3e('0x54')](_0x324e75['mailQueuesWaitingInteractions']);_0x2bcd38({'count':_0x33ee6f['length'],'rows':_0x33ee6f});});},'OpenchannelQueuesWaitingInteractions':function(_0x26d162){return new Promise(function(_0x3c7cfc,_0x23193f){var _0xea2a7f=_[_0xfa3e('0x54')](_0x324e75['openchannelQueuesWaitingInteractions']);_0x3c7cfc({'count':_0xea2a7f[_0xfa3e('0x1a')],'rows':_0xea2a7f});});},'SmsQueuesWaitingInteractions':function(_0x222ce3){return new Promise(function(_0xceab53,_0x517b14){var _0x1ab48f=_[_0xfa3e('0x54')](_0x324e75[_0xfa3e('0x56')]);_0xceab53({'count':_0x1ab48f[_0xfa3e('0x1a')],'rows':_0x1ab48f});});},'FaxQueuesWaitingInteractions':function(_0x2a9efb){return new Promise(function(_0x3ba32b,_0x1b3786){var _0x563970=_[_0xfa3e('0x54')](_0x324e75[_0xfa3e('0x57')]);_0x3ba32b({'count':_0x563970['length'],'rows':_0x563970});});},'WhatsappQueuesWaitingInteractions':function(_0x2323c7){return new Promise(function(_0x35a5b9,_0x6a6a6e){var _0x282e8a=_['values'](_0x324e75[_0xfa3e('0x58')]);_0x35a5b9({'count':_0x282e8a[_0xfa3e('0x1a')],'rows':_0x282e8a});});}};var _0x28332c=jayson[_0xfa3e('0x59')](_0x100425)[_0xfa3e('0x5a')]();_0x28332c['on']('error',function(_0xa2cdd8){logger[_0xfa3e('0x32')](JSON['stringify'](_0xa2cdd8));return _0x273858(_0xa2cdd8);});_0x28332c[_0xfa3e('0x14')](0x232c,_0xfa3e('0x5b'),function(){console[_0xfa3e('0x5c')](_0xfa3e('0x5d'),0x232c);return _0x599316(_0xfa3e('0x5e')+0x232c);});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc16a=['true','[%s][INTERVAL]\x20%s','info','join','\x20|\x20','when','log','[%s][INTERVAL]\x20%s\x20%s','stack','jayson/promise','lodash','../../../config/logger','routing','client','request','then','error','catch','condition','rules','[%s][INTERVAL]\x20ROUTING\x20STOPPED','stop','length','push','Command','format','iftime\x20%s','message'];(function(_0x2dafbe,_0x5d04de){var _0x58a45a=function(_0x50ac96){while(--_0x50ac96){_0x2dafbe['push'](_0x2dafbe['shift']());}};_0x58a45a(++_0x5d04de);}(_0xc16a,0xe9));var _0xac16=function(_0x251760,_0x31c3e3){_0x251760=_0x251760-0x0;var _0x365330=_0xc16a[_0x251760];return _0x365330;};'use strict';var util=require('util');var BPromise=require('bluebird');var jayson=require(_0xac16('0x0'));var _=require(_0xac16('0x1'));var logger=require(_0xac16('0x2'))(_0xac16('0x3'));var client=jayson[_0xac16('0x4')]['http']({'port':0x232a});function request(_0x29ea16,_0x5c90d5){return new BPromise(function(_0x15d195,_0x1d3b81){return client[_0xac16('0x5')](_0x29ea16,_0x5c90d5)[_0xac16('0x6')](function(_0x1c21a9){if(_0x1c21a9[_0xac16('0x7')]){return _0x1d3b81(_0x1c21a9[_0xac16('0x7')]['message']);}else{return _0x15d195(_0x1c21a9['result']);}})[_0xac16('0x8')](function(_0x1031bf){return _0x1d3b81(_0x1031bf);});});}exports[_0xac16('0x9')]=function(_0x4239f3,_0x3d0b41,_0x80d4dc){return function(_0x2fcb21){if(_0x80d4dc[_0xac16('0xa')]&&!_0x80d4dc[_0xac16('0xa')][_0x4239f3]){logger['info'](_0xac16('0xb'),_0x4239f3);return _0x2fcb21[_0xac16('0xc')]();}var _0x1e6868=[];for(var _0x3f6da3=0x0;_0x3f6da3<_0x3d0b41[_0xac16('0xd')];_0x3f6da3+=0x1){_0x1e6868[_0xac16('0xe')](request(_0xac16('0xf'),{'command':util[_0xac16('0x10')](_0xac16('0x11'),_0x3d0b41[_0x3f6da3])})[_0xac16('0x6')](function(_0xc5fd17){return _0xc5fd17&&_0xc5fd17[_0xac16('0x12')]&&_0xc5fd17[_0xac16('0x12')]['indexOf'](_0xac16('0x13'))>=0x0?!![]:![];})['catch'](function(_0x16048b){logger[_0xac16('0x7')](_0xac16('0x14'),_0x4239f3,_0x3d0b41[_0x3f6da3]);}));}BPromise['all'](_0x1e6868)[_0xac16('0x6')](function(_0x225cc8){var _0x2c1210=_['some'](_0x225cc8);logger[_0xac16('0x15')]('[%s][INTERVAL]\x20%s\x20%s',_0x4239f3,_0x3d0b41[_0xac16('0x16')](_0xac16('0x17')),_0x2c1210);_0x2fcb21[_0xac16('0x18')](_0x2c1210);})[_0xac16('0x8')](function(_0x4838e3){console[_0xac16('0x19')](_0x4838e3);logger[_0xac16('0x7')](_0xac16('0x1a'),_0x4239f3,_0x3d0b41['join'](_0xac16('0x17')),_0x4838e3[_0xac16('0x1b')]);_0x2fcb21[_0xac16('0xc')]();});};};
\ No newline at end of file
+var _0x7ae8=['rules','[%s][INTERVAL]\x20ROUTING\x20STOPPED','length','push','Command','format','iftime\x20%s','indexOf','true','[%s][INTERVAL]\x20%s','some','info','[%s][INTERVAL]\x20%s\x20%s','when','join','stack','util','bluebird','jayson/promise','lodash','../../../config/logger','client','http','then','error','message','result','catch','condition'];(function(_0x6cf5ec,_0x194d2e){var _0x271c4f=function(_0x206fee){while(--_0x206fee){_0x6cf5ec['push'](_0x6cf5ec['shift']());}};_0x271c4f(++_0x194d2e);}(_0x7ae8,0x132));var _0x87ae=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0x7ae8[_0x20a584];return _0x4b41a8;};'use strict';var util=require(_0x87ae('0x0'));var BPromise=require(_0x87ae('0x1'));var jayson=require(_0x87ae('0x2'));var _=require(_0x87ae('0x3'));var logger=require(_0x87ae('0x4'))('routing');var client=jayson[_0x87ae('0x5')][_0x87ae('0x6')]({'port':0x232a});function request(_0x36b725,_0x1813d7){return new BPromise(function(_0x5c92d0,_0x447a75){return client['request'](_0x36b725,_0x1813d7)[_0x87ae('0x7')](function(_0xdf2c12){if(_0xdf2c12['error']){return _0x447a75(_0xdf2c12[_0x87ae('0x8')][_0x87ae('0x9')]);}else{return _0x5c92d0(_0xdf2c12[_0x87ae('0xa')]);}})[_0x87ae('0xb')](function(_0x3aa22c){return _0x447a75(_0x3aa22c);});});}exports[_0x87ae('0xc')]=function(_0x1cb18e,_0xb4b238,_0x256863){return function(_0x3d4c69){if(_0x256863[_0x87ae('0xd')]&&!_0x256863[_0x87ae('0xd')][_0x1cb18e]){logger['info'](_0x87ae('0xe'),_0x1cb18e);return _0x3d4c69['stop']();}var _0x5cce87=[];for(var _0x50e709=0x0;_0x50e709<_0xb4b238[_0x87ae('0xf')];_0x50e709+=0x1){_0x5cce87[_0x87ae('0x10')](request(_0x87ae('0x11'),{'command':util[_0x87ae('0x12')](_0x87ae('0x13'),_0xb4b238[_0x50e709])})['then'](function(_0x797509){return _0x797509&&_0x797509[_0x87ae('0x9')]&&_0x797509[_0x87ae('0x9')][_0x87ae('0x14')](_0x87ae('0x15'))>=0x0?!![]:![];})[_0x87ae('0xb')](function(_0x52e5a7){logger['error'](_0x87ae('0x16'),_0x1cb18e,_0xb4b238[_0x50e709]);}));}BPromise['all'](_0x5cce87)[_0x87ae('0x7')](function(_0x3c4a3b){var _0x29470c=_[_0x87ae('0x17')](_0x3c4a3b);logger[_0x87ae('0x18')](_0x87ae('0x19'),_0x1cb18e,_0xb4b238['join']('\x20|\x20'),_0x29470c);_0x3d4c69[_0x87ae('0x1a')](_0x29470c);})[_0x87ae('0xb')](function(_0x4c8b73){console['log'](_0x4c8b73);logger[_0x87ae('0x8')](_0x87ae('0x19'),_0x1cb18e,_0xb4b238[_0x87ae('0x1b')]('\x20|\x20'),_0x4c8b73[_0x87ae('0x1c')]);_0x3d4c69['stop']();});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2750=['calleridnum','connectedlinenum','lastevent','then','agentacw','acw','acwtime','acwTimeout','request','CreateVoiceAgentReport','debug','[%s][agents][agentcalled]','destuniqueid','agentcalledAt','now','called','error','agentringnoanswer','[%s][agents][agentringnoanswer]','[%s][agents][agentringnoanswer]\x20agent:%s\x20destuniqueid:%s\x20lastevent:timeout','timeout','reason','holdtime','ringtime','push','queuecallerabandon','includes','[%s][agents][queuecallerabandon]\x20agent:%s\x20destuniqueid:%s\x20lastevent:abandoned','abandoned','[%s][agents][queuecallerabandon]','[%s][agents][agentconnect]','[%s][agents][agentconnect]\x20agent:%s\x20destuniqueid:%s\x20lastevent:connect','agentconnectAt','connectedlinename','connect','forIn','talktime','agentringnoanswerAt','answered_elsewhere','answeredelsewheredestinationuniqueid','isNil','[%s][agents][agentcomplete]','agentcomplete','agentcompleteAt','complete','blindtransfer','transfereruniqueid','[%s][agents][blindtransfer]','[%s][agents][blindtransfer]\x20agent:%s\x20transferuniqueid:%s','transfer','transfertype','blind','transferexten','attendedtransfer','origtransfereruniqueid','secondtransfereruniqueid','[%s][agents][attendedtransfer]\x20agent:%s','ATTENDED','origtransfererexten','transferuniqueid','transfereeuniqueid','agententerreason','clone','calleridname','secondtransfererlinkedid','secondtransfererexten','transfertargetuniqueid','rejected','[%s][agents][hangup]\x20agent:%s\x20reason:%s\x20lastevent:%s','indexOf','agent','[%s][agents][hangup]','lodash','./utils','info','format','[%s][agents][writeDB]\x20channel:%s\x20queue:%s\x20agent:%s\x20interface:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20lastevent:%s','uniqueid','channel','queue','membername'];(function(_0x5565a6,_0x200b6d){var _0x324fbf=function(_0x2a7a9c){while(--_0x2a7a9c){_0x5565a6['push'](_0x5565a6['shift']());}};_0x324fbf(++_0x200b6d);}(_0x2750,0x13b));var _0x0275=function(_0xc17f4d,_0x501b87){_0xc17f4d=_0xc17f4d-0x0;var _0x2d7ad7=_0x2750[_0xc17f4d];return _0x2d7ad7;};'use strict';var _=require(_0x0275('0x0'));var util=require('util');var utils=require(_0x0275('0x1'));var agents={};var transfers={};var unanswered=[];function writeDB(_0xf2ae71,_0x372744){utils[_0x0275('0x2')](util[_0x0275('0x3')](_0x0275('0x4'),_0xf2ae71[_0x0275('0x5')],_0xf2ae71[_0x0275('0x6')],_0xf2ae71[_0x0275('0x7')],_0xf2ae71[_0x0275('0x8')],_0xf2ae71['interface'],_0xf2ae71[_0x0275('0x9')],_0xf2ae71[_0x0275('0xa')],_0xf2ae71[_0x0275('0xb')]));if(_0xf2ae71[_0x0275('0x7')]){utils['getVoiceQueueByName'](_0xf2ae71[_0x0275('0x7')])[_0x0275('0xc')](function(_0x42ae73){if(_0x42ae73){_0xf2ae71['type']=_0x42ae73['type'];_0xf2ae71[_0x0275('0xd')]=_0xf2ae71['agentcomplete']?_0x42ae73[_0x0275('0xe')]:![];_0xf2ae71[_0x0275('0xf')]=_0xf2ae71[_0x0275('0xd')]?_0x42ae73[_0x0275('0x10')]:0x0;}utils[_0x0275('0x11')]('CreateVoiceAgentReport',_0xf2ae71);});}else{utils[_0x0275('0x11')](_0x0275('0x12'),_0xf2ae71);}if(_0x372744){delete transfers[_0xf2ae71[_0x0275('0x5')]];}else{delete agents[_0xf2ae71['destuniqueid']];}}exports['agentcalled']=function(_0x292f93){try{utils[_0x0275('0x13')](util[_0x0275('0x3')](_0x0275('0x14'),_0x292f93[_0x0275('0x5')]),_0x292f93);agents[_0x292f93[_0x0275('0x15')]]=_0x292f93;agents[_0x292f93['destuniqueid']][_0x0275('0x16')]=utils[_0x0275('0x17')]();agents[_0x292f93['destuniqueid']][_0x0275('0xb')]=_0x0275('0x18');agents[_0x292f93['destuniqueid']][_0x0275('0xa')]=null;agents[_0x292f93[_0x0275('0x15')]]['connectedlinename']=null;utils['info'](util['format']('[%s][agents][agentcalled]\x20agent:%s\x20destuniqueid:%s\x20lastevent:called',_0x292f93['uniqueid'],agents[_0x292f93[_0x0275('0x15')]][_0x0275('0x8')],_0x292f93[_0x0275('0x15')]));}catch(_0x5b2a4c){utils[_0x0275('0x19')](util[_0x0275('0x3')](_0x0275('0x14'),_0x292f93['uniqueid']),_0x5b2a4c);}};exports[_0x0275('0x1a')]=function(_0x402f0d){try{if(!_['isNil'](agents[_0x402f0d['destuniqueid']])){utils[_0x0275('0x13')](util[_0x0275('0x3')](_0x0275('0x1b'),_0x402f0d['uniqueid']),_0x402f0d);utils[_0x0275('0x2')](util['format'](_0x0275('0x1c'),_0x402f0d['uniqueid'],agents[_0x402f0d[_0x0275('0x15')]][_0x0275('0x8')],_0x402f0d['destuniqueid']));agents[_0x402f0d[_0x0275('0x15')]][_0x0275('0x1a')]=!![];agents[_0x402f0d[_0x0275('0x15')]]['agentringnoanswerAt']=utils[_0x0275('0x17')]();agents[_0x402f0d[_0x0275('0x15')]][_0x0275('0xb')]=_0x0275('0x1d');agents[_0x402f0d[_0x0275('0x15')]][_0x0275('0x1e')]='timeout';agents[_0x402f0d[_0x0275('0x15')]][_0x0275('0x1f')]=_0x402f0d[_0x0275('0x20')]?parseInt(_0x402f0d[_0x0275('0x20')])/0x3e8:0x0;agents[_0x402f0d[_0x0275('0x15')]]['talktime']=0x0;unanswered[_0x0275('0x21')](_0x402f0d[_0x0275('0x15')]);}}catch(_0x3246ea){utils[_0x0275('0x19')](util[_0x0275('0x3')]('[%s][agents][agentringnoanswer]',_0x402f0d[_0x0275('0x5')]),_0x3246ea);}};exports[_0x0275('0x22')]=function(_0x127bbd){try{_['forIn'](agents,function(_0x5e2e22,_0x3cb2d7){if(_0x5e2e22[_0x0275('0x5')]==_0x127bbd['uniqueid']&&!_[_0x0275('0x23')](unanswered,_0x5e2e22[_0x0275('0x15')])){utils[_0x0275('0x13')](util[_0x0275('0x3')]('[%s][agents][queuecallerabandon]',_0x127bbd[_0x0275('0x5')]),_0x127bbd);utils[_0x0275('0x2')](util[_0x0275('0x3')](_0x0275('0x24'),_0x127bbd['uniqueid'],_0x5e2e22[_0x0275('0x8')],_0x5e2e22['destuniqueid']));_0x5e2e22[_0x0275('0x1a')]=!![];_0x5e2e22['agentringnoanswerAt']=utils[_0x0275('0x17')]();_0x5e2e22[_0x0275('0xb')]='abandoned';_0x5e2e22[_0x0275('0x1e')]=_0x0275('0x25');_0x5e2e22[_0x0275('0x1f')]=_0x127bbd[_0x0275('0x1f')];_0x5e2e22['talktime']=0x0;writeDB(_0x5e2e22);}});}catch(_0x5040de){utils[_0x0275('0x19')](util[_0x0275('0x3')](_0x0275('0x26'),_0x127bbd[_0x0275('0x5')]),_0x5040de);}};exports['agentconnect']=function(_0x2a18c3){try{if(agents[_0x2a18c3[_0x0275('0x15')]]){utils[_0x0275('0x13')](util[_0x0275('0x3')](_0x0275('0x27'),_0x2a18c3[_0x0275('0x5')]),_0x2a18c3);utils[_0x0275('0x2')](util[_0x0275('0x3')](_0x0275('0x28'),_0x2a18c3[_0x0275('0x5')],agents[_0x2a18c3[_0x0275('0x15')]]['membername'],_0x2a18c3[_0x0275('0x15')]));agents[_0x2a18c3[_0x0275('0x15')]][_0x0275('0x29')]=utils[_0x0275('0x17')]();agents[_0x2a18c3[_0x0275('0x15')]][_0x0275('0xa')]=_0x2a18c3[_0x0275('0xa')];agents[_0x2a18c3[_0x0275('0x15')]][_0x0275('0x2a')]=_0x2a18c3[_0x0275('0x2a')];agents[_0x2a18c3[_0x0275('0x15')]][_0x0275('0x1f')]=_0x2a18c3[_0x0275('0x20')];agents[_0x2a18c3[_0x0275('0x15')]]['lastevent']=_0x0275('0x2b');_[_0x0275('0x2c')](agents,function(_0x4d2d59,_0x31d0ab){if(_0x4d2d59[_0x0275('0x15')]!=_0x2a18c3[_0x0275('0x15')]&&_0x4d2d59[_0x0275('0x5')]==_0x2a18c3[_0x0275('0x5')]){_0x4d2d59[_0x0275('0x2d')]=0x0;_0x4d2d59[_0x0275('0x1f')]=_0x2a18c3['ringtime'];_0x4d2d59[_0x0275('0x1a')]=!![];_0x4d2d59[_0x0275('0x2e')]=utils[_0x0275('0x17')]();_0x4d2d59[_0x0275('0xb')]='answered_elsewhere';_0x4d2d59[_0x0275('0x1e')]=_0x0275('0x2f');_0x4d2d59[_0x0275('0x30')]=_0x2a18c3[_0x0275('0x15')];_0x4d2d59['answeredelsewheremembername']=_0x2a18c3[_0x0275('0x8')];writeDB(_0x4d2d59);}});}}catch(_0x52f69c){utils[_0x0275('0x19')](util[_0x0275('0x3')](_0x0275('0x27'),_0x2a18c3[_0x0275('0x5')]),_0x52f69c);}};exports['agentcomplete']=function(_0x13c651){try{if(!_[_0x0275('0x31')](agents[_0x13c651['destuniqueid']])){utils[_0x0275('0x13')](util[_0x0275('0x3')](_0x0275('0x32'),_0x13c651['uniqueid']),_0x13c651);utils[_0x0275('0x2')](util[_0x0275('0x3')]('[%s][agents][agentcomplete]\x20agent:%s\x20destuniqueid:%s\x20lastevent:complete',_0x13c651[_0x0275('0x5')],agents[_0x13c651[_0x0275('0x15')]][_0x0275('0x8')],_0x13c651[_0x0275('0x15')]));agents[_0x13c651[_0x0275('0x15')]][_0x0275('0x33')]=!![];agents[_0x13c651[_0x0275('0x15')]][_0x0275('0x34')]=utils[_0x0275('0x17')]();agents[_0x13c651[_0x0275('0x15')]][_0x0275('0x2d')]=utils['diffTime'](agents[_0x13c651[_0x0275('0x15')]][_0x0275('0x34')],agents[_0x13c651[_0x0275('0x15')]][_0x0275('0x29')]);agents[_0x13c651[_0x0275('0x15')]][_0x0275('0x1e')]=_0x13c651[_0x0275('0x1e')];agents[_0x13c651[_0x0275('0x15')]][_0x0275('0xb')]=_0x0275('0x35');writeDB(agents[_0x13c651[_0x0275('0x15')]]);}}catch(_0x598d15){utils['error'](util[_0x0275('0x3')](_0x0275('0x32'),_0x13c651[_0x0275('0x5')]),_0x598d15);}};exports[_0x0275('0x36')]=function(_0x310c6b){try{if(!_['isNil'](agents[_0x310c6b[_0x0275('0x37')]])){utils['debug'](util[_0x0275('0x3')](_0x0275('0x38'),_0x310c6b[_0x0275('0x5')]),_0x310c6b);utils[_0x0275('0x2')](util['format'](_0x0275('0x39'),_0x310c6b['uniqueid'],agents[_0x310c6b['transfereruniqueid']]['membername'],agents[_0x310c6b[_0x0275('0x37')]]['uniqueid']));agents[_0x310c6b[_0x0275('0x37')]][_0x0275('0x3a')]=!![];agents[_0x310c6b[_0x0275('0x37')]][_0x0275('0x3b')]=_0x0275('0x3c');agents[_0x310c6b[_0x0275('0x37')]][_0x0275('0x3d')]=_0x310c6b['extension'];agents[_0x310c6b[_0x0275('0x37')]]['transferuniqueid']=agents[_0x310c6b[_0x0275('0x37')]][_0x0275('0x5')];}}catch(_0x119301){utils[_0x0275('0x19')](util[_0x0275('0x3')](_0x0275('0x38'),_0x310c6b[_0x0275('0x5')]),_0x119301);}};exports[_0x0275('0x3e')]=function(_0x41429d){try{utils[_0x0275('0x13')](util['format']('[%s][agents][attendedtransfer]',_0x41429d[_0x0275('0x3f')]),_0x41429d);if(_0x41429d['origtransfereruniqueid']==_0x41429d['origtransfererlinkedid']){if(!_[_0x0275('0x31')](agents[_0x41429d[_0x0275('0x40')]])){utils[_0x0275('0x2')](util[_0x0275('0x3')](_0x0275('0x41'),_0x41429d[_0x0275('0x3f')],agents[_0x41429d['secondtransfereruniqueid']][_0x0275('0x8')]));agents[_0x41429d[_0x0275('0x40')]][_0x0275('0x3a')]=!![];agents[_0x41429d[_0x0275('0x40')]][_0x0275('0x3b')]=_0x0275('0x42');agents[_0x41429d['secondtransfereruniqueid']][_0x0275('0x3d')]=_0x41429d[_0x0275('0x43')];agents[_0x41429d['secondtransfereruniqueid']][_0x0275('0x44')]=_0x41429d['origtransfereruniqueid'];}if(_0x41429d[_0x0275('0x45')]&&agents[_0x41429d[_0x0275('0x45')]]){agents[_0x41429d[_0x0275('0x45')]][_0x0275('0x46')]=0x1;transfers[_0x41429d[_0x0275('0x45')]]=_[_0x0275('0x47')](agents[_0x41429d[_0x0275('0x45')]]);transfers[_0x41429d[_0x0275('0x45')]][_0x0275('0x9')]=agents[_0x41429d[_0x0275('0x40')]][_0x0275('0x9')];transfers[_0x41429d['transfereeuniqueid']][_0x0275('0x48')]=agents[_0x41429d[_0x0275('0x40')]][_0x0275('0x48')];transfers[_0x41429d['transfereeuniqueid']][_0x0275('0x16')]=utils[_0x0275('0x17')]();transfers[_0x41429d['transfereeuniqueid']][_0x0275('0x29')]=utils['now']();transfers[_0x41429d[_0x0275('0x45')]][_0x0275('0x1f')]=0x0;transfers[_0x41429d[_0x0275('0x45')]][_0x0275('0x46')]=0x2;}}else if(_0x41429d['secondtransfereruniqueid']==_0x41429d[_0x0275('0x49')]){if(!_[_0x0275('0x31')](agents[_0x41429d[_0x0275('0x3f')]])){utils[_0x0275('0x2')](util['format'](_0x0275('0x41'),_0x41429d[_0x0275('0x3f')],agents[_0x41429d['origtransfereruniqueid']][_0x0275('0x8')]));agents[_0x41429d[_0x0275('0x3f')]]['transfer']=!![];agents[_0x41429d['origtransfereruniqueid']][_0x0275('0x3b')]=_0x0275('0x42');agents[_0x41429d['origtransfereruniqueid']]['transferexten']=_0x41429d[_0x0275('0x4a')];agents[_0x41429d[_0x0275('0x3f')]][_0x0275('0x44')]=_0x41429d[_0x0275('0x40')];}if(_0x41429d[_0x0275('0x4b')]&&agents[_0x41429d[_0x0275('0x4b')]]){agents[_0x41429d[_0x0275('0x4b')]][_0x0275('0x46')]=0x1;transfers[_0x41429d['transfertargetuniqueid']]=_[_0x0275('0x47')](agents[_0x41429d[_0x0275('0x4b')]]);transfers[_0x41429d[_0x0275('0x4b')]][_0x0275('0x9')]=agents[_0x41429d[_0x0275('0x3f')]][_0x0275('0x9')];transfers[_0x41429d['transfertargetuniqueid']][_0x0275('0x48')]=agents[_0x41429d['origtransfereruniqueid']][_0x0275('0x48')];transfers[_0x41429d[_0x0275('0x4b')]][_0x0275('0x16')]=utils[_0x0275('0x17')]();transfers[_0x41429d['transfertargetuniqueid']][_0x0275('0x29')]=utils[_0x0275('0x17')]();transfers[_0x41429d[_0x0275('0x4b')]][_0x0275('0x1f')]=0x0;transfers[_0x41429d[_0x0275('0x4b')]][_0x0275('0x46')]=0x2;}}}catch(_0x3c7845){utils[_0x0275('0x19')](util[_0x0275('0x3')]('[%s][agents][attendedtransfer]',_0x41429d['origtransfereruniqueid']),_0x3c7845);}};exports['hangup']=function(_0x1dcaa6){try{utils[_0x0275('0x13')](util[_0x0275('0x3')]('[%s][agents][hangup]',_0x1dcaa6[_0x0275('0x5')]),_0x1dcaa6);if(agents[_0x1dcaa6[_0x0275('0x5')]]&&agents[_0x1dcaa6[_0x0275('0x5')]][_0x0275('0x1e')]===_0x0275('0x1d')){if(_0x1dcaa6['cause']==='21'){agents[_0x1dcaa6[_0x0275('0x5')]]['reason']=_0x0275('0x4c');agents[_0x1dcaa6[_0x0275('0x5')]][_0x0275('0xb')]=_0x0275('0x4c');}utils['info'](util[_0x0275('0x3')](_0x0275('0x4d'),_0x1dcaa6[_0x0275('0x5')],agents[_0x1dcaa6['uniqueid']][_0x0275('0x8')],agents[_0x1dcaa6[_0x0275('0x5')]][_0x0275('0x1e')],agents[_0x1dcaa6[_0x0275('0x5')]][_0x0275('0xb')]));writeDB(agents[_0x1dcaa6[_0x0275('0x5')]]);var _0x3a9898=unanswered[_0x0275('0x4e')](_0x1dcaa6['uniqueid']);if(_0x3a9898>-0x1){unanswered['splice'](_0x3a9898,0x1);}}if(transfers[_0x1dcaa6['uniqueid']]){transfers[_0x1dcaa6[_0x0275('0x5')]][_0x0275('0x33')]=!![];transfers[_0x1dcaa6[_0x0275('0x5')]][_0x0275('0x34')]=utils[_0x0275('0x17')]();transfers[_0x1dcaa6['uniqueid']][_0x0275('0x2d')]=utils['diffTime'](transfers[_0x1dcaa6['uniqueid']][_0x0275('0x34')],transfers[_0x1dcaa6['uniqueid']][_0x0275('0x29')]);transfers[_0x1dcaa6[_0x0275('0x5')]][_0x0275('0x1e')]=_0x0275('0x4f');transfers[_0x1dcaa6[_0x0275('0x5')]][_0x0275('0xb')]=_0x0275('0x35');utils[_0x0275('0x2')](util[_0x0275('0x3')](_0x0275('0x4d'),_0x1dcaa6[_0x0275('0x5')],transfers[_0x1dcaa6[_0x0275('0x5')]][_0x0275('0x8')],transfers[_0x1dcaa6[_0x0275('0x5')]][_0x0275('0x1e')],transfers[_0x1dcaa6[_0x0275('0x5')]][_0x0275('0xb')]));writeDB(transfers[_0x1dcaa6[_0x0275('0x5')]],!![]);}if(agents[_0x1dcaa6[_0x0275('0x5')]]&&agents[_0x1dcaa6[_0x0275('0x5')]][_0x0275('0x29')]){agents[_0x1dcaa6['uniqueid']][_0x0275('0x33')]=!![];agents[_0x1dcaa6[_0x0275('0x5')]][_0x0275('0x34')]=utils[_0x0275('0x17')]();agents[_0x1dcaa6[_0x0275('0x5')]][_0x0275('0x2d')]=utils['diffTime'](agents[_0x1dcaa6[_0x0275('0x5')]][_0x0275('0x34')],agents[_0x1dcaa6['uniqueid']][_0x0275('0x29')]);agents[_0x1dcaa6[_0x0275('0x5')]][_0x0275('0x1e')]=agents[_0x1dcaa6[_0x0275('0x5')]]['transfer']?_0x0275('0x3a'):_0x0275('0x4f');agents[_0x1dcaa6['uniqueid']][_0x0275('0xb')]='complete';utils[_0x0275('0x2')](util[_0x0275('0x3')]('[%s][agents][hangup]\x20agent:%s\x20reason:%s\x20lastevent:%s',_0x1dcaa6[_0x0275('0x5')],agents[_0x1dcaa6[_0x0275('0x5')]][_0x0275('0x8')],agents[_0x1dcaa6[_0x0275('0x5')]][_0x0275('0x1e')],agents[_0x1dcaa6[_0x0275('0x5')]][_0x0275('0xb')]));writeDB(agents[_0x1dcaa6['uniqueid']]);}}catch(_0x12476c){utils[_0x0275('0x19')](util['format'](_0x0275('0x50'),_0x1dcaa6['uniqueid']),_0x12476c);}};
\ No newline at end of file
+var _0x087b=['calleridname','secondtransfererlinkedid','secondtransfererexten','transfertargetuniqueid','[%s][agents][hangup]','cause','rejected','[%s][agents][hangup]\x20agent:%s\x20reason:%s\x20lastevent:%s','indexOf','splice','agent','diffTime','lodash','util','format','[%s][agents][writeDB]\x20channel:%s\x20queue:%s\x20agent:%s\x20interface:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20lastevent:%s','uniqueid','channel','queue','membername','interface','calleridnum','connectedlinenum','lastevent','getVoiceQueueByName','then','type','agentcomplete','acw','acwtime','agentacw','acwTimeout','request','CreateVoiceAgentReport','destuniqueid','debug','[%s][agents][agentcalled]','agentcalledAt','now','called','connectedlinename','info','[%s][agents][agentcalled]\x20agent:%s\x20destuniqueid:%s\x20lastevent:called','error','[%s][agents][agentringnoanswer]','agentringnoanswerAt','reason','timeout','holdtime','ringtime','talktime','push','queuecallerabandon','forIn','includes','[%s][agents][queuecallerabandon]','[%s][agents][queuecallerabandon]\x20agent:%s\x20destuniqueid:%s\x20lastevent:abandoned','agentringnoanswer','abandoned','agentconnect','[%s][agents][agentconnect]','[%s][agents][agentconnect]\x20agent:%s\x20destuniqueid:%s\x20lastevent:connect','agentconnectAt','answeredelsewheredestinationuniqueid','[%s][agents][agentcomplete]','[%s][agents][agentcomplete]\x20agent:%s\x20destuniqueid:%s\x20lastevent:complete','agentcompleteAt','complete','blindtransfer','transfereruniqueid','[%s][agents][blindtransfer]','[%s][agents][blindtransfer]\x20agent:%s\x20transferuniqueid:%s','transfer','transfertype','blind','transferexten','extension','transferuniqueid','attendedtransfer','[%s][agents][attendedtransfer]','origtransfereruniqueid','origtransfererlinkedid','isNil','secondtransfereruniqueid','[%s][agents][attendedtransfer]\x20agent:%s','ATTENDED','origtransfererexten','transfereeuniqueid','agententerreason','clone'];(function(_0x3ab0ce,_0x1d2066){var _0xe9da32=function(_0x58a92f){while(--_0x58a92f){_0x3ab0ce['push'](_0x3ab0ce['shift']());}};_0xe9da32(++_0x1d2066);}(_0x087b,0x11a));var _0xb087=function(_0x5834bc,_0x3d4801){_0x5834bc=_0x5834bc-0x0;var _0x3e183a=_0x087b[_0x5834bc];return _0x3e183a;};'use strict';var _=require(_0xb087('0x0'));var util=require(_0xb087('0x1'));var utils=require('./utils');var agents={};var transfers={};var unanswered=[];function writeDB(_0x5f3606,_0x40e6d6){utils['info'](util[_0xb087('0x2')](_0xb087('0x3'),_0x5f3606[_0xb087('0x4')],_0x5f3606[_0xb087('0x5')],_0x5f3606[_0xb087('0x6')],_0x5f3606[_0xb087('0x7')],_0x5f3606[_0xb087('0x8')],_0x5f3606[_0xb087('0x9')],_0x5f3606[_0xb087('0xa')],_0x5f3606[_0xb087('0xb')]));if(_0x5f3606[_0xb087('0x6')]){utils[_0xb087('0xc')](_0x5f3606[_0xb087('0x6')])[_0xb087('0xd')](function(_0x2f14bc){if(_0x2f14bc){_0x5f3606[_0xb087('0xe')]=_0x2f14bc[_0xb087('0xe')];_0x5f3606['agentacw']=_0x5f3606[_0xb087('0xf')]?_0x2f14bc[_0xb087('0x10')]:![];_0x5f3606[_0xb087('0x11')]=_0x5f3606[_0xb087('0x12')]?_0x2f14bc[_0xb087('0x13')]:0x0;}utils[_0xb087('0x14')](_0xb087('0x15'),_0x5f3606);});}else{utils['request'](_0xb087('0x15'),_0x5f3606);}if(_0x40e6d6){delete transfers[_0x5f3606[_0xb087('0x4')]];}else{delete agents[_0x5f3606[_0xb087('0x16')]];}}exports['agentcalled']=function(_0x3001e3){try{utils[_0xb087('0x17')](util[_0xb087('0x2')](_0xb087('0x18'),_0x3001e3[_0xb087('0x4')]),_0x3001e3);agents[_0x3001e3[_0xb087('0x16')]]=_0x3001e3;agents[_0x3001e3[_0xb087('0x16')]][_0xb087('0x19')]=utils[_0xb087('0x1a')]();agents[_0x3001e3[_0xb087('0x16')]]['lastevent']=_0xb087('0x1b');agents[_0x3001e3[_0xb087('0x16')]]['connectedlinenum']=null;agents[_0x3001e3[_0xb087('0x16')]][_0xb087('0x1c')]=null;utils[_0xb087('0x1d')](util['format'](_0xb087('0x1e'),_0x3001e3[_0xb087('0x4')],agents[_0x3001e3[_0xb087('0x16')]][_0xb087('0x7')],_0x3001e3['destuniqueid']));}catch(_0x13d534){utils[_0xb087('0x1f')](util[_0xb087('0x2')](_0xb087('0x18'),_0x3001e3['uniqueid']),_0x13d534);}};exports['agentringnoanswer']=function(_0x5ea3dc){try{if(!_['isNil'](agents[_0x5ea3dc[_0xb087('0x16')]])){utils[_0xb087('0x17')](util[_0xb087('0x2')](_0xb087('0x20'),_0x5ea3dc[_0xb087('0x4')]),_0x5ea3dc);utils[_0xb087('0x1d')](util[_0xb087('0x2')]('[%s][agents][agentringnoanswer]\x20agent:%s\x20destuniqueid:%s\x20lastevent:timeout',_0x5ea3dc[_0xb087('0x4')],agents[_0x5ea3dc[_0xb087('0x16')]][_0xb087('0x7')],_0x5ea3dc[_0xb087('0x16')]));agents[_0x5ea3dc[_0xb087('0x16')]]['agentringnoanswer']=!![];agents[_0x5ea3dc[_0xb087('0x16')]][_0xb087('0x21')]=utils['now']();agents[_0x5ea3dc['destuniqueid']]['lastevent']='timeout';agents[_0x5ea3dc['destuniqueid']][_0xb087('0x22')]=_0xb087('0x23');agents[_0x5ea3dc[_0xb087('0x16')]][_0xb087('0x24')]=_0x5ea3dc[_0xb087('0x25')]?parseInt(_0x5ea3dc[_0xb087('0x25')])/0x3e8:0x0;agents[_0x5ea3dc[_0xb087('0x16')]][_0xb087('0x26')]=0x0;unanswered[_0xb087('0x27')](_0x5ea3dc[_0xb087('0x16')]);}}catch(_0x18058c){utils[_0xb087('0x1f')](util[_0xb087('0x2')](_0xb087('0x20'),_0x5ea3dc['uniqueid']),_0x18058c);}};exports[_0xb087('0x28')]=function(_0x1335d9){try{_[_0xb087('0x29')](agents,function(_0x15c9ac,_0x22d441){if(_0x15c9ac[_0xb087('0x4')]==_0x1335d9[_0xb087('0x4')]&&!_[_0xb087('0x2a')](unanswered,_0x15c9ac['destuniqueid'])){utils['debug'](util[_0xb087('0x2')](_0xb087('0x2b'),_0x1335d9['uniqueid']),_0x1335d9);utils[_0xb087('0x1d')](util[_0xb087('0x2')](_0xb087('0x2c'),_0x1335d9[_0xb087('0x4')],_0x15c9ac[_0xb087('0x7')],_0x15c9ac[_0xb087('0x16')]));_0x15c9ac[_0xb087('0x2d')]=!![];_0x15c9ac[_0xb087('0x21')]=utils[_0xb087('0x1a')]();_0x15c9ac[_0xb087('0xb')]=_0xb087('0x2e');_0x15c9ac[_0xb087('0x22')]='abandoned';_0x15c9ac[_0xb087('0x24')]=_0x1335d9['holdtime'];_0x15c9ac[_0xb087('0x26')]=0x0;writeDB(_0x15c9ac);}});}catch(_0x296e9b){utils[_0xb087('0x1f')](util[_0xb087('0x2')](_0xb087('0x2b'),_0x1335d9[_0xb087('0x4')]),_0x296e9b);}};exports[_0xb087('0x2f')]=function(_0x29df58){try{if(agents[_0x29df58[_0xb087('0x16')]]){utils['debug'](util['format'](_0xb087('0x30'),_0x29df58[_0xb087('0x4')]),_0x29df58);utils[_0xb087('0x1d')](util[_0xb087('0x2')](_0xb087('0x31'),_0x29df58['uniqueid'],agents[_0x29df58[_0xb087('0x16')]][_0xb087('0x7')],_0x29df58['destuniqueid']));agents[_0x29df58['destuniqueid']][_0xb087('0x32')]=utils[_0xb087('0x1a')]();agents[_0x29df58[_0xb087('0x16')]]['connectedlinenum']=_0x29df58[_0xb087('0xa')];agents[_0x29df58[_0xb087('0x16')]][_0xb087('0x1c')]=_0x29df58[_0xb087('0x1c')];agents[_0x29df58[_0xb087('0x16')]]['holdtime']=_0x29df58[_0xb087('0x25')];agents[_0x29df58['destuniqueid']][_0xb087('0xb')]='connect';_[_0xb087('0x29')](agents,function(_0xc9f9e9,_0x513332){if(_0xc9f9e9[_0xb087('0x16')]!=_0x29df58['destuniqueid']&&_0xc9f9e9[_0xb087('0x4')]==_0x29df58['uniqueid']){_0xc9f9e9[_0xb087('0x26')]=0x0;_0xc9f9e9[_0xb087('0x24')]=_0x29df58[_0xb087('0x25')];_0xc9f9e9[_0xb087('0x2d')]=!![];_0xc9f9e9[_0xb087('0x21')]=utils[_0xb087('0x1a')]();_0xc9f9e9[_0xb087('0xb')]='answered_elsewhere';_0xc9f9e9[_0xb087('0x22')]='answered_elsewhere';_0xc9f9e9[_0xb087('0x33')]=_0x29df58[_0xb087('0x16')];_0xc9f9e9['answeredelsewheremembername']=_0x29df58[_0xb087('0x7')];writeDB(_0xc9f9e9);}});}}catch(_0x45dc6f){utils[_0xb087('0x1f')](util['format'](_0xb087('0x30'),_0x29df58['uniqueid']),_0x45dc6f);}};exports[_0xb087('0xf')]=function(_0x32b9d3){try{if(!_['isNil'](agents[_0x32b9d3[_0xb087('0x16')]])){utils[_0xb087('0x17')](util['format'](_0xb087('0x34'),_0x32b9d3[_0xb087('0x4')]),_0x32b9d3);utils['info'](util[_0xb087('0x2')](_0xb087('0x35'),_0x32b9d3[_0xb087('0x4')],agents[_0x32b9d3[_0xb087('0x16')]]['membername'],_0x32b9d3['destuniqueid']));agents[_0x32b9d3[_0xb087('0x16')]][_0xb087('0xf')]=!![];agents[_0x32b9d3[_0xb087('0x16')]][_0xb087('0x36')]=utils[_0xb087('0x1a')]();agents[_0x32b9d3[_0xb087('0x16')]]['talktime']=utils['diffTime'](agents[_0x32b9d3[_0xb087('0x16')]]['agentcompleteAt'],agents[_0x32b9d3[_0xb087('0x16')]][_0xb087('0x32')]);agents[_0x32b9d3[_0xb087('0x16')]][_0xb087('0x22')]=_0x32b9d3['reason'];agents[_0x32b9d3[_0xb087('0x16')]]['lastevent']=_0xb087('0x37');writeDB(agents[_0x32b9d3[_0xb087('0x16')]]);}}catch(_0xcb56c7){utils[_0xb087('0x1f')](util[_0xb087('0x2')]('[%s][agents][agentcomplete]',_0x32b9d3[_0xb087('0x4')]),_0xcb56c7);}};exports[_0xb087('0x38')]=function(_0x588d96){try{if(!_['isNil'](agents[_0x588d96[_0xb087('0x39')]])){utils['debug'](util['format'](_0xb087('0x3a'),_0x588d96[_0xb087('0x4')]),_0x588d96);utils['info'](util[_0xb087('0x2')](_0xb087('0x3b'),_0x588d96[_0xb087('0x4')],agents[_0x588d96['transfereruniqueid']]['membername'],agents[_0x588d96[_0xb087('0x39')]]['uniqueid']));agents[_0x588d96['transfereruniqueid']][_0xb087('0x3c')]=!![];agents[_0x588d96[_0xb087('0x39')]][_0xb087('0x3d')]=_0xb087('0x3e');agents[_0x588d96[_0xb087('0x39')]][_0xb087('0x3f')]=_0x588d96[_0xb087('0x40')];agents[_0x588d96[_0xb087('0x39')]][_0xb087('0x41')]=agents[_0x588d96[_0xb087('0x39')]][_0xb087('0x4')];}}catch(_0x2cfc44){utils['error'](util[_0xb087('0x2')](_0xb087('0x3a'),_0x588d96['uniqueid']),_0x2cfc44);}};exports[_0xb087('0x42')]=function(_0x458301){try{utils[_0xb087('0x17')](util[_0xb087('0x2')](_0xb087('0x43'),_0x458301[_0xb087('0x44')]),_0x458301);if(_0x458301[_0xb087('0x44')]==_0x458301[_0xb087('0x45')]){if(!_[_0xb087('0x46')](agents[_0x458301[_0xb087('0x47')]])){utils[_0xb087('0x1d')](util['format'](_0xb087('0x48'),_0x458301['origtransfereruniqueid'],agents[_0x458301[_0xb087('0x47')]]['membername']));agents[_0x458301[_0xb087('0x47')]][_0xb087('0x3c')]=!![];agents[_0x458301[_0xb087('0x47')]][_0xb087('0x3d')]=_0xb087('0x49');agents[_0x458301[_0xb087('0x47')]][_0xb087('0x3f')]=_0x458301[_0xb087('0x4a')];agents[_0x458301[_0xb087('0x47')]][_0xb087('0x41')]=_0x458301[_0xb087('0x44')];}if(_0x458301[_0xb087('0x4b')]&&agents[_0x458301[_0xb087('0x4b')]]){agents[_0x458301[_0xb087('0x4b')]][_0xb087('0x4c')]=0x1;transfers[_0x458301[_0xb087('0x4b')]]=_[_0xb087('0x4d')](agents[_0x458301[_0xb087('0x4b')]]);transfers[_0x458301[_0xb087('0x4b')]][_0xb087('0x9')]=agents[_0x458301[_0xb087('0x47')]][_0xb087('0x9')];transfers[_0x458301['transfereeuniqueid']][_0xb087('0x4e')]=agents[_0x458301[_0xb087('0x47')]][_0xb087('0x4e')];transfers[_0x458301['transfereeuniqueid']][_0xb087('0x19')]=utils[_0xb087('0x1a')]();transfers[_0x458301['transfereeuniqueid']][_0xb087('0x32')]=utils[_0xb087('0x1a')]();transfers[_0x458301[_0xb087('0x4b')]]['holdtime']=0x0;transfers[_0x458301[_0xb087('0x4b')]][_0xb087('0x4c')]=0x2;}}else if(_0x458301[_0xb087('0x47')]==_0x458301[_0xb087('0x4f')]){if(!_[_0xb087('0x46')](agents[_0x458301[_0xb087('0x44')]])){utils[_0xb087('0x1d')](util[_0xb087('0x2')]('[%s][agents][attendedtransfer]\x20agent:%s',_0x458301[_0xb087('0x44')],agents[_0x458301[_0xb087('0x44')]][_0xb087('0x7')]));agents[_0x458301['origtransfereruniqueid']][_0xb087('0x3c')]=!![];agents[_0x458301['origtransfereruniqueid']]['transfertype']=_0xb087('0x49');agents[_0x458301[_0xb087('0x44')]]['transferexten']=_0x458301[_0xb087('0x50')];agents[_0x458301['origtransfereruniqueid']][_0xb087('0x41')]=_0x458301[_0xb087('0x47')];}if(_0x458301['transfertargetuniqueid']&&agents[_0x458301['transfertargetuniqueid']]){agents[_0x458301[_0xb087('0x51')]]['agententerreason']=0x1;transfers[_0x458301['transfertargetuniqueid']]=_[_0xb087('0x4d')](agents[_0x458301['transfertargetuniqueid']]);transfers[_0x458301[_0xb087('0x51')]]['calleridnum']=agents[_0x458301[_0xb087('0x44')]][_0xb087('0x9')];transfers[_0x458301[_0xb087('0x51')]][_0xb087('0x4e')]=agents[_0x458301[_0xb087('0x44')]][_0xb087('0x4e')];transfers[_0x458301['transfertargetuniqueid']][_0xb087('0x19')]=utils['now']();transfers[_0x458301[_0xb087('0x51')]][_0xb087('0x32')]=utils[_0xb087('0x1a')]();transfers[_0x458301['transfertargetuniqueid']][_0xb087('0x24')]=0x0;transfers[_0x458301['transfertargetuniqueid']][_0xb087('0x4c')]=0x2;}}}catch(_0x3784f7){utils[_0xb087('0x1f')](util[_0xb087('0x2')](_0xb087('0x43'),_0x458301[_0xb087('0x44')]),_0x3784f7);}};exports['hangup']=function(_0x245d68){try{utils[_0xb087('0x17')](util['format'](_0xb087('0x52'),_0x245d68['uniqueid']),_0x245d68);if(agents[_0x245d68[_0xb087('0x4')]]&&agents[_0x245d68[_0xb087('0x4')]][_0xb087('0x22')]===_0xb087('0x23')){if(_0x245d68[_0xb087('0x53')]==='21'){agents[_0x245d68[_0xb087('0x4')]][_0xb087('0x22')]=_0xb087('0x54');agents[_0x245d68['uniqueid']]['lastevent']='rejected';}utils[_0xb087('0x1d')](util['format'](_0xb087('0x55'),_0x245d68['uniqueid'],agents[_0x245d68[_0xb087('0x4')]][_0xb087('0x7')],agents[_0x245d68[_0xb087('0x4')]][_0xb087('0x22')],agents[_0x245d68['uniqueid']][_0xb087('0xb')]));writeDB(agents[_0x245d68['uniqueid']]);var _0x185102=unanswered[_0xb087('0x56')](_0x245d68[_0xb087('0x4')]);if(_0x185102>-0x1){unanswered[_0xb087('0x57')](_0x185102,0x1);}}if(transfers[_0x245d68['uniqueid']]){transfers[_0x245d68['uniqueid']][_0xb087('0xf')]=!![];transfers[_0x245d68['uniqueid']][_0xb087('0x36')]=utils[_0xb087('0x1a')]();transfers[_0x245d68[_0xb087('0x4')]][_0xb087('0x26')]=utils['diffTime'](transfers[_0x245d68['uniqueid']][_0xb087('0x36')],transfers[_0x245d68['uniqueid']][_0xb087('0x32')]);transfers[_0x245d68[_0xb087('0x4')]][_0xb087('0x22')]=_0xb087('0x58');transfers[_0x245d68[_0xb087('0x4')]]['lastevent']=_0xb087('0x37');utils[_0xb087('0x1d')](util['format']('[%s][agents][hangup]\x20agent:%s\x20reason:%s\x20lastevent:%s',_0x245d68['uniqueid'],transfers[_0x245d68[_0xb087('0x4')]][_0xb087('0x7')],transfers[_0x245d68[_0xb087('0x4')]][_0xb087('0x22')],transfers[_0x245d68[_0xb087('0x4')]][_0xb087('0xb')]));writeDB(transfers[_0x245d68['uniqueid']],!![]);}if(agents[_0x245d68[_0xb087('0x4')]]&&agents[_0x245d68[_0xb087('0x4')]][_0xb087('0x32')]){agents[_0x245d68[_0xb087('0x4')]][_0xb087('0xf')]=!![];agents[_0x245d68[_0xb087('0x4')]][_0xb087('0x36')]=utils['now']();agents[_0x245d68[_0xb087('0x4')]][_0xb087('0x26')]=utils[_0xb087('0x59')](agents[_0x245d68['uniqueid']][_0xb087('0x36')],agents[_0x245d68['uniqueid']][_0xb087('0x32')]);agents[_0x245d68[_0xb087('0x4')]][_0xb087('0x22')]=agents[_0x245d68[_0xb087('0x4')]][_0xb087('0x3c')]?_0xb087('0x3c'):'agent';agents[_0x245d68['uniqueid']][_0xb087('0xb')]=_0xb087('0x37');utils['info'](util[_0xb087('0x2')](_0xb087('0x55'),_0x245d68[_0xb087('0x4')],agents[_0x245d68[_0xb087('0x4')]][_0xb087('0x7')],agents[_0x245d68[_0xb087('0x4')]]['reason'],agents[_0x245d68[_0xb087('0x4')]][_0xb087('0xb')]));writeDB(agents[_0x245d68[_0xb087('0x4')]]);}}catch(_0x3114ce){utils[_0xb087('0x1f')](util[_0xb087('0x2')](_0xb087('0x52'),_0x245d68[_0xb087('0x4')]),_0x3114ce);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x20db=['error','newstate','[%s][calls][newstate]','isNil','[%s][calls][newstate]\x20context:%s\x20channel:%s','systemanswertime','channelstate','[%s][calls][newstate]\x20linkedid:%s\x20context:%s\x20channel:%s','answertime','disposition','hangup','callerid','calleridname','[%s][calls][hangup]\x20callerid:%s\x20reason:%s','cause-txt','endtime','duration','diffTime','[%s][calls][hangup]','attendedtransfer','localtwolinkedid','origtransfereruniqueid','transfereechannel','[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s','secondtransfererchannel','destinationchannel','userfield','_attended','origtransfererchannel','[%s][calls][attendedtransfer]','musiconholdstart','musiconholdstartAt','[%s][calls][musiconholdstart]\x20musiconholdstartAt:%s','[%s][calls][musiconholdstart]','musiconholdstop','[%s][calls][musiconholdstop]','mohtime','variable','xmd-originatecalleridnum','[%s][calls][varset]\x20variable:xmd-originatecalleridnum\x20value:%s','source','[%s][calls][varset]\x20variable:xmd-phone\x20value:%s','value','destination','xmd-callerid-preview','xmd-callerid','[%s][calls][varset]\x20variable:%s\x20value:%s','xmd-queue','xmcs-queue','lastapplication','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]','application','appdata','set','startsWith','toLowerCase','cdr','split','substring','lastIndexOf','includes','execif','lodash','util','./transfers.controller','NO\x20ANSWER','FAILED','ANSWERED','blinds','uniqueid','transfereeuniqueid','info','format','[%s][calls][writeDB]\x20channel:%s\x20queue:%s\x20agent:%s\x20interface:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20lastevent:%s','channel','interface','connectedlinenum','lastevent','accountcode','getUserByInternal','then','request','CreateVoiceCallReport','newchannel','debug','[%s][calls][newchannel]','linkedid','OutgoingSpoolFailed','context','calleridnum','exten','now'];(function(_0x39109f,_0x121bac){var _0x2e8fc2=function(_0x3deba9){while(--_0x3deba9){_0x39109f['push'](_0x39109f['shift']());}};_0x2e8fc2(++_0x121bac);}(_0x20db,0x120));var _0xb20d=function(_0x2c9534,_0x239d36){_0x2c9534=_0x2c9534-0x0;var _0x2b03db=_0x20db[_0x2c9534];return _0x2b03db;};'use strict';var _=require(_0xb20d('0x0'));var util=require(_0xb20d('0x1'));var utils=require('./utils');var transfers=require(_0xb20d('0x2'));var dispositions=[_0xb20d('0x3'),_0xb20d('0x4'),_0xb20d('0x4'),'NO\x20ANSWER',_0xb20d('0x3'),'NO\x20ANSWER',_0xb20d('0x5'),'BUSY',_0xb20d('0x4'),_0xb20d('0x4'),_0xb20d('0x4')];var channels={};function writeDB(_0x2e540e){var _0x5ddf6c;if(transfers[_0xb20d('0x6')][_0x2e540e['uniqueid']]){_0x5ddf6c=_0x2e540e[_0xb20d('0x7')];_0x2e540e['uniqueid']=transfers[_0xb20d('0x6')][_0x2e540e['uniqueid']][_0xb20d('0x8')];}utils[_0xb20d('0x9')](util[_0xb20d('0xa')](_0xb20d('0xb'),_0x2e540e['uniqueid'],_0x2e540e[_0xb20d('0xc')],_0x2e540e['queue'],_0x2e540e['membername'],_0x2e540e[_0xb20d('0xd')],_0x2e540e['calleridnum'],_0x2e540e[_0xb20d('0xe')],_0x2e540e[_0xb20d('0xf')]));if(_0x2e540e[_0xb20d('0x10')]){utils[_0xb20d('0x11')](_0x2e540e[_0xb20d('0x10')])[_0xb20d('0x12')](function(_0x424a31){if(_0x424a31){_0x2e540e['UserId']=_0x424a31['id'];}utils[_0xb20d('0x13')](_0xb20d('0x14'),_0x2e540e);});}else{utils[_0xb20d('0x13')](_0xb20d('0x14'),_0x2e540e);}if(channels[_0x2e540e[_0xb20d('0x7')]]){delete channels[_0x2e540e[_0xb20d('0x7')]];}else if(_0x5ddf6c&&channels[_0x5ddf6c]){delete transfers[_0xb20d('0x6')][_0x5ddf6c];delete channels[_0x5ddf6c];}}exports[_0xb20d('0x15')]=function(_0x2b58c8){try{utils[_0xb20d('0x16')](util[_0xb20d('0xa')](_0xb20d('0x17'),_0x2b58c8['uniqueid']),_0x2b58c8);if(_0x2b58c8[_0xb20d('0x7')]==_0x2b58c8[_0xb20d('0x18')]&&_0x2b58c8[_0xb20d('0xc')]!=_0xb20d('0x19')){utils[_0xb20d('0x9')](util[_0xb20d('0xa')]('[%s][calls][newchannel]\x20context:%s\x20exten:%s',_0x2b58c8[_0xb20d('0x7')],_0x2b58c8[_0xb20d('0x1a')],_0x2b58c8['exten']));channels[_0x2b58c8['uniqueid']]={'uniqueid':_0x2b58c8[_0xb20d('0x7')],'accountcode':_0x2b58c8['accountcode'],'source':_0x2b58c8[_0xb20d('0x1b')],'destination':_0x2b58c8[_0xb20d('0x1c')],'destinationcontext':_0x2b58c8[_0xb20d('0x1a')],'channel':_0x2b58c8['channel'],'starttime':utils[_0xb20d('0x1d')](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':_0xb20d('0x3'),'amaflags':'DOCUMENTATION'};}}catch(_0xac6904){utils[_0xb20d('0x1e')](util[_0xb20d('0xa')](_0xb20d('0x17'),_0x2b58c8[_0xb20d('0x7')]),_0xac6904);}};exports[_0xb20d('0x1f')]=function(_0x16e021){try{utils[_0xb20d('0x16')](util[_0xb20d('0xa')](_0xb20d('0x20'),_0x16e021[_0xb20d('0x7')]),_0x16e021);if(!_[_0xb20d('0x21')](channels[_0x16e021[_0xb20d('0x7')]])&&_0x16e021['channelstate']==0x6){utils['info'](util[_0xb20d('0xa')](_0xb20d('0x22'),_0x16e021[_0xb20d('0x7')],_0x16e021['context'],_0x16e021[_0xb20d('0xc')]));if(_[_0xb20d('0x21')](channels[_0x16e021['uniqueid']][_0xb20d('0x23')])){channels[_0x16e021[_0xb20d('0x7')]][_0xb20d('0x23')]=utils[_0xb20d('0x1d')]();}}else if(!_[_0xb20d('0x21')](channels[_0x16e021[_0xb20d('0x18')]])&&_0x16e021[_0xb20d('0x24')]==0x6&&_0x16e021[_0xb20d('0x1a')]!='transfer'){utils[_0xb20d('0x9')](util[_0xb20d('0xa')](_0xb20d('0x25'),_0x16e021[_0xb20d('0x7')],_0x16e021['linkedid'],_0x16e021[_0xb20d('0x1a')],_0x16e021['channel']));channels[_0x16e021[_0xb20d('0x18')]][_0xb20d('0x10')]=_0x16e021['accountcode'];channels[_0x16e021['linkedid']]['destinationchannel']=_0x16e021[_0xb20d('0xc')];if(_[_0xb20d('0x21')](channels[_0x16e021[_0xb20d('0x18')]][_0xb20d('0x26')])){channels[_0x16e021['linkedid']]['answertime']=utils[_0xb20d('0x1d')]();}channels[_0x16e021['linkedid']][_0xb20d('0x27')]=dispositions[_['toNumber'](_0x16e021[_0xb20d('0x24')])]||_0xb20d('0x5');}}catch(_0x40881d){utils[_0xb20d('0x1e')](util[_0xb20d('0xa')](_0xb20d('0x20'),_0x16e021['uniqueid']),_0x40881d);}};exports[_0xb20d('0x28')]=function(_0x18fa32){try{if(!_[_0xb20d('0x21')](channels[_0x18fa32[_0xb20d('0x7')]])){utils[_0xb20d('0x16')](util[_0xb20d('0xa')]('[%s][calls][hangup]',_0x18fa32[_0xb20d('0x7')]),_0x18fa32);if(_['isNil'](channels[_0x18fa32[_0xb20d('0x7')]][_0xb20d('0x29')])){channels[_0x18fa32[_0xb20d('0x7')]][_0xb20d('0x29')]=_0x18fa32[_0xb20d('0x2a')]+'\x20<'+_0x18fa32[_0xb20d('0x1b')]+'>';}utils[_0xb20d('0x9')](util[_0xb20d('0xa')](_0xb20d('0x2b'),_0x18fa32[_0xb20d('0x7')],channels[_0x18fa32[_0xb20d('0x7')]][_0xb20d('0x29')],_0x18fa32[_0xb20d('0x2c')]));channels[_0x18fa32[_0xb20d('0x7')]][_0xb20d('0x2d')]=utils[_0xb20d('0x1d')]();channels[_0x18fa32['uniqueid']][_0xb20d('0x2e')]=utils[_0xb20d('0x2f')](channels[_0x18fa32[_0xb20d('0x7')]]['endtime'],channels[_0x18fa32[_0xb20d('0x7')]]['starttime']);channels[_0x18fa32['uniqueid']]['billableseconds']=channels[_0x18fa32[_0xb20d('0x7')]][_0xb20d('0x26')]?utils['diffTime'](channels[_0x18fa32[_0xb20d('0x7')]]['endtime'],channels[_0x18fa32[_0xb20d('0x7')]][_0xb20d('0x26')]):0x0;writeDB(channels[_0x18fa32[_0xb20d('0x7')]]);}}catch(_0x45c781){utils[_0xb20d('0x1e')](util['format'](_0xb20d('0x30'),_0x18fa32[_0xb20d('0x7')]),_0x45c781);}};exports[_0xb20d('0x31')]=function(_0x68526){try{if(!_[_0xb20d('0x21')](channels[_0x68526[_0xb20d('0x32')]])){utils['debug'](util['format']('[%s][calls][attendedtransfer]',_0x68526[_0xb20d('0x33')]),_0x68526);if(channels[_0x68526[_0xb20d('0x32')]][_0xb20d('0xc')]==_0x68526[_0xb20d('0x34')]){utils[_0xb20d('0x9')](util[_0xb20d('0xa')](_0xb20d('0x35'),_0x68526[_0xb20d('0x33')],_0x68526['localtwolinkedid'],_0x68526[_0xb20d('0x36')]));channels[_0x68526['localtwolinkedid']][_0xb20d('0x37')]=_0x68526[_0xb20d('0x36')];channels[_0x68526[_0xb20d('0x32')]][_0xb20d('0x38')]=_0xb20d('0x39');}else if(channels[_0x68526[_0xb20d('0x32')]][_0xb20d('0xc')]=_0x68526['transfertargetchannel']){utils[_0xb20d('0x9')](util[_0xb20d('0xa')](_0xb20d('0x35'),_0x68526[_0xb20d('0x33')],_0x68526['localtwolinkedid'],_0x68526[_0xb20d('0x3a')]));channels[_0x68526[_0xb20d('0x32')]][_0xb20d('0x37')]=_0x68526[_0xb20d('0x3a')];channels[_0x68526[_0xb20d('0x32')]][_0xb20d('0x38')]=_0xb20d('0x39');}}}catch(_0x406a92){utils[_0xb20d('0x1e')](util[_0xb20d('0xa')](_0xb20d('0x3b'),_0x68526[_0xb20d('0x33')]),_0x406a92);}};exports[_0xb20d('0x3c')]=function(_0x198349){try{if(!_[_0xb20d('0x21')](channels[_0x198349[_0xb20d('0x7')]])){utils['debug'](util[_0xb20d('0xa')]('[%s][calls][musiconholdstart]',_0x198349[_0xb20d('0x7')]),_0x198349);channels[_0x198349['uniqueid']][_0xb20d('0x3d')]=utils[_0xb20d('0x1d')]();utils['info'](util[_0xb20d('0xa')](_0xb20d('0x3e'),_0x198349['uniqueid'],channels[_0x198349[_0xb20d('0x7')]]['musiconholdstartAt']));}}catch(_0x5ea67e){utils['error'](util[_0xb20d('0xa')](_0xb20d('0x3f'),_0x198349['uniqueid']),_0x5ea67e);}};exports[_0xb20d('0x40')]=function(_0x423003){try{if(!_[_0xb20d('0x21')](channels[_0x423003['uniqueid']])){utils['debug'](util[_0xb20d('0xa')](_0xb20d('0x41'),_0x423003[_0xb20d('0x7')]),_0x423003);if(!_['isNil'](channels[_0x423003[_0xb20d('0x7')]][_0xb20d('0x3d')])){channels[_0x423003[_0xb20d('0x7')]][_0xb20d('0x42')]+=utils['diffTime'](utils[_0xb20d('0x1d')](),channels[_0x423003[_0xb20d('0x7')]][_0xb20d('0x3d')]);utils['info'](util[_0xb20d('0xa')]('[%s][calls][musiconholdstop]\x20mohtime:%s',_0x423003[_0xb20d('0x7')],channels[_0x423003[_0xb20d('0x7')]][_0xb20d('0x42')]));delete channels[_0x423003[_0xb20d('0x7')]][_0xb20d('0x3d')];}}}catch(_0x44b10b){utils[_0xb20d('0x1e')](util[_0xb20d('0xa')](_0xb20d('0x41'),_0x423003[_0xb20d('0x7')]),_0x44b10b);}};exports['varset']=function(_0x33ea2f){try{if(!_[_0xb20d('0x21')](channels[_0x33ea2f[_0xb20d('0x7')]])){utils[_0xb20d('0x16')](util['format']('[%s][calls][varset]',_0x33ea2f[_0xb20d('0x7')]),_0x33ea2f);if(!_['isNil'](_0x33ea2f[_0xb20d('0x43')][_0xb20d('0x44')])){utils[_0xb20d('0x9')](util[_0xb20d('0xa')](_0xb20d('0x45'),_0x33ea2f['uniqueid'],_0x33ea2f['value']));channels[_0x33ea2f[_0xb20d('0x7')]][_0xb20d('0x46')]=_0x33ea2f['value'];}if(!_[_0xb20d('0x21')](_0x33ea2f[_0xb20d('0x43')]['xmd-phone'])){utils[_0xb20d('0x9')](util['format'](_0xb20d('0x47'),_0x33ea2f['uniqueid'],_0x33ea2f[_0xb20d('0x48')]));channels[_0x33ea2f[_0xb20d('0x7')]][_0xb20d('0x49')]=_0x33ea2f[_0xb20d('0x48')];channels[_0x33ea2f[_0xb20d('0x7')]]['callerid']='\x22'+_0x33ea2f[_0xb20d('0x48')]+'\x22\x20<'+_0x33ea2f[_0xb20d('0x48')]+'>';}if(!_[_0xb20d('0x21')](_0x33ea2f['variable'][_0xb20d('0x4a')])||!_['isNil'](_0x33ea2f['variable'][_0xb20d('0x4b')])){utils[_0xb20d('0x9')](util[_0xb20d('0xa')](_0xb20d('0x4c'),_0x33ea2f['uniqueid'],!_[_0xb20d('0x21')](_0x33ea2f[_0xb20d('0x43')][_0xb20d('0x4a')])?_0xb20d('0x4a'):'xmd-callerid',_0x33ea2f['value']));channels[_0x33ea2f[_0xb20d('0x7')]][_0xb20d('0x29')]=_0x33ea2f[_0xb20d('0x48')];}if(!_['isNil'](_0x33ea2f[_0xb20d('0x43')][_0xb20d('0x4d')])||!_[_0xb20d('0x21')](_0x33ea2f[_0xb20d('0x43')][_0xb20d('0x4e')])){utils[_0xb20d('0x9')](util[_0xb20d('0xa')](_0xb20d('0x4c'),_0x33ea2f[_0xb20d('0x7')],!_[_0xb20d('0x21')](_0x33ea2f[_0xb20d('0x43')][_0xb20d('0x4d')])?_0xb20d('0x4d'):_0xb20d('0x4e'),_0x33ea2f[_0xb20d('0x48')]));channels[_0x33ea2f['uniqueid']][_0xb20d('0x4f')]='Queue';channels[_0x33ea2f['uniqueid']][_0xb20d('0x50')]=_0x33ea2f[_0xb20d('0x48')];channels[_0x33ea2f['uniqueid']][_0xb20d('0x51')]=!![];}if(!_['isNil'](_0x33ea2f['variable'][_0xb20d('0x52')])){utils[_0xb20d('0x9')](util['format'](_0xb20d('0x53'),_0x33ea2f[_0xb20d('0x7')],_0x33ea2f[_0xb20d('0x48')]));channels[_0x33ea2f['uniqueid']][_0xb20d('0x54')]=_0x33ea2f[_0xb20d('0x48')];}if(!_[_0xb20d('0x21')](_0x33ea2f[_0xb20d('0x43')][_0xb20d('0x55')])){utils[_0xb20d('0x9')](util[_0xb20d('0xa')](_0xb20d('0x56'),_0x33ea2f[_0xb20d('0x7')],_0x33ea2f[_0xb20d('0x48')]));channels[_0x33ea2f['uniqueid']][_0xb20d('0x57')]=_0x33ea2f[_0xb20d('0x48')];}if(!_['isNil'](_0x33ea2f[_0xb20d('0x43')][_0xb20d('0x58')])){utils[_0xb20d('0x9')](util[_0xb20d('0xa')](_0xb20d('0x59'),_0x33ea2f['uniqueid'],_0x33ea2f[_0xb20d('0x48')]));channels[_0x33ea2f[_0xb20d('0x7')]][_0xb20d('0x5a')]=_0x33ea2f[_0xb20d('0x48')];}if(!_[_0xb20d('0x21')](_0x33ea2f[_0xb20d('0x43')][_0xb20d('0x5b')])){utils[_0xb20d('0x9')](util[_0xb20d('0xa')](_0xb20d('0x5c'),_0x33ea2f[_0xb20d('0x7')],_0x33ea2f['value']));channels[_0x33ea2f[_0xb20d('0x7')]][_0xb20d('0x5b')]=_0x33ea2f[_0xb20d('0x48')];}}}catch(_0x402e4d){utils['error'](util[_0xb20d('0xa')]('[%s][calls][varset]',_0x33ea2f['uniqueid']),_0x402e4d);}};exports[_0xb20d('0x5d')]=function(_0x38e180){try{if(!_['isNil'](channels[_0x38e180[_0xb20d('0x7')]])){utils[_0xb20d('0x16')](util[_0xb20d('0xa')](_0xb20d('0x5e'),_0x38e180[_0xb20d('0x7')]),_0x38e180);utils['info'](util['format']('[%s][calls][newexten]\x20application:%s\x20appdata:%s',_0x38e180['uniqueid'],_0x38e180[_0xb20d('0x5f')],_0x38e180[_0xb20d('0x60')]));if(_0x38e180['application']['toLowerCase']()==_0xb20d('0x61')&&_[_0xb20d('0x62')](_0x38e180[_0xb20d('0x60')][_0xb20d('0x63')](),_0xb20d('0x64'))){var _0x3740a2=_0x38e180['appdata'][_0xb20d('0x65')]('=');var _0x2b4c1a=_0x3740a2[0x0][_0xb20d('0x66')](_0x3740a2[0x0]['lastIndexOf']('(')+0x1,_0x3740a2[0x0][_0xb20d('0x67')](')'));var _0x282611=_0x3740a2[0x1];channels[_0x38e180[_0xb20d('0x7')]][_0x2b4c1a]=_0x282611;}if(!_[_0xb20d('0x68')]([_0xb20d('0x28'),'noop',_0xb20d('0x69'),_0xb20d('0x61'),'gotoif'],_0x38e180[_0xb20d('0x5f')]['toLowerCase']())){channels[_0x38e180[_0xb20d('0x7')]]['lastapplication']=_0x38e180[_0xb20d('0x5f')];channels[_0x38e180[_0xb20d('0x7')]][_0xb20d('0x50')]=_0x38e180[_0xb20d('0x60')];}}}catch(_0x1b961c){utils[_0xb20d('0x1e')](util['format'](_0xb20d('0x5e'),_0x38e180[_0xb20d('0x7')]),_0x1b961c);}};
\ No newline at end of file
+var _0x34d5=['linkedid','OutgoingSpoolFailed','context','exten','now','DOCUMENTATION','newstate','[%s][calls][newstate]','channelstate','[%s][calls][newstate]\x20context:%s\x20channel:%s','isNil','systemanswertime','transfer','[%s][calls][newstate]\x20linkedid:%s\x20context:%s\x20channel:%s','destinationchannel','answertime','disposition','toNumber','error','hangup','callerid','calleridnum','[%s][calls][hangup]\x20callerid:%s\x20reason:%s','endtime','duration','diffTime','starttime','billableseconds','attendedtransfer','localtwolinkedid','origtransfereruniqueid','transfereechannel','[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s','secondtransfererchannel','userfield','origtransfererchannel','[%s][calls][attendedtransfer]','musiconholdstart','[%s][calls][musiconholdstart]','musiconholdstartAt','[%s][calls][musiconholdstop]','[%s][calls][musiconholdstop]\x20mohtime:%s','varset','[%s][calls][varset]','[%s][calls][varset]\x20variable:xmd-originatecalleridnum\x20value:%s','value','xmd-phone','[%s][calls][varset]\x20variable:xmd-phone\x20value:%s','destination','variable','xmd-callerid','[%s][calls][varset]\x20variable:%s\x20value:%s','xmd-callerid-preview','xmd-queue','xmcs-queue','lastapplication','Queue','lastdata','[%s][calls][varset]\x20variable:xmd-contactid\x20value:%s','ContactId','[%s][calls][varset]\x20variable:xmd-cdrtype\x20value:%s','type','outboundrouteid','[%s][calls][varset]\x20variable:outboundrouteid\x20value:%s','[%s][calls][varset]\x20variable:sipcallid\x20value:%s','sipcallid','newexten','[%s][calls][newexten]','[%s][calls][newexten]\x20application:%s\x20appdata:%s','application','appdata','startsWith','toLowerCase','split','substring','lastIndexOf','noop','execif','gotoif','lodash','util','./transfers.controller','NO\x20ANSWER','FAILED','ANSWERED','BUSY','blinds','uniqueid','transfereeuniqueid','info','format','channel','queue','membername','interface','connectedlinenum','lastevent','accountcode','getUserByInternal','then','UserId','request','CreateVoiceCallReport','debug'];(function(_0x51215d,_0x48b97d){var _0x7d9e3=function(_0x169e8c){while(--_0x169e8c){_0x51215d['push'](_0x51215d['shift']());}};_0x7d9e3(++_0x48b97d);}(_0x34d5,0x11f));var _0x534d=function(_0x57b54c,_0x54ce0d){_0x57b54c=_0x57b54c-0x0;var _0x59cc19=_0x34d5[_0x57b54c];return _0x59cc19;};'use strict';var _=require(_0x534d('0x0'));var util=require(_0x534d('0x1'));var utils=require('./utils');var transfers=require(_0x534d('0x2'));var dispositions=[_0x534d('0x3'),_0x534d('0x4'),_0x534d('0x4'),'NO\x20ANSWER',_0x534d('0x3'),_0x534d('0x3'),_0x534d('0x5'),_0x534d('0x6'),_0x534d('0x4'),_0x534d('0x4'),_0x534d('0x4')];var channels={};function writeDB(_0x559e67){var _0x1ce867;if(transfers[_0x534d('0x7')][_0x559e67[_0x534d('0x8')]]){_0x1ce867=_0x559e67[_0x534d('0x8')];_0x559e67['uniqueid']=transfers[_0x534d('0x7')][_0x559e67[_0x534d('0x8')]][_0x534d('0x9')];}utils[_0x534d('0xa')](util[_0x534d('0xb')]('[%s][calls][writeDB]\x20channel:%s\x20queue:%s\x20agent:%s\x20interface:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20lastevent:%s',_0x559e67[_0x534d('0x8')],_0x559e67[_0x534d('0xc')],_0x559e67[_0x534d('0xd')],_0x559e67[_0x534d('0xe')],_0x559e67[_0x534d('0xf')],_0x559e67['calleridnum'],_0x559e67[_0x534d('0x10')],_0x559e67[_0x534d('0x11')]));if(_0x559e67[_0x534d('0x12')]){utils[_0x534d('0x13')](_0x559e67[_0x534d('0x12')])[_0x534d('0x14')](function(_0x98d283){if(_0x98d283){_0x559e67[_0x534d('0x15')]=_0x98d283['id'];}utils[_0x534d('0x16')]('CreateVoiceCallReport',_0x559e67);});}else{utils[_0x534d('0x16')](_0x534d('0x17'),_0x559e67);}if(channels[_0x559e67[_0x534d('0x8')]]){delete channels[_0x559e67[_0x534d('0x8')]];}else if(_0x1ce867&&channels[_0x1ce867]){delete transfers['blinds'][_0x1ce867];delete channels[_0x1ce867];}}exports['newchannel']=function(_0x30433c){try{utils[_0x534d('0x18')](util[_0x534d('0xb')]('[%s][calls][newchannel]',_0x30433c[_0x534d('0x8')]),_0x30433c);if(_0x30433c[_0x534d('0x8')]==_0x30433c[_0x534d('0x19')]&&_0x30433c[_0x534d('0xc')]!=_0x534d('0x1a')){utils[_0x534d('0xa')](util[_0x534d('0xb')]('[%s][calls][newchannel]\x20context:%s\x20exten:%s',_0x30433c['uniqueid'],_0x30433c[_0x534d('0x1b')],_0x30433c['exten']));channels[_0x30433c[_0x534d('0x8')]]={'uniqueid':_0x30433c[_0x534d('0x8')],'accountcode':_0x30433c[_0x534d('0x12')],'source':_0x30433c['calleridnum'],'destination':_0x30433c[_0x534d('0x1c')],'destinationcontext':_0x30433c[_0x534d('0x1b')],'channel':_0x30433c['channel'],'starttime':utils[_0x534d('0x1d')](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':_0x534d('0x3'),'amaflags':_0x534d('0x1e')};}}catch(_0x2a2df0){utils['error'](util['format']('[%s][calls][newchannel]',_0x30433c[_0x534d('0x8')]),_0x2a2df0);}};exports[_0x534d('0x1f')]=function(_0x30a765){try{utils[_0x534d('0x18')](util[_0x534d('0xb')](_0x534d('0x20'),_0x30a765['uniqueid']),_0x30a765);if(!_['isNil'](channels[_0x30a765['uniqueid']])&&_0x30a765[_0x534d('0x21')]==0x6){utils[_0x534d('0xa')](util[_0x534d('0xb')](_0x534d('0x22'),_0x30a765[_0x534d('0x8')],_0x30a765['context'],_0x30a765['channel']));if(_[_0x534d('0x23')](channels[_0x30a765['uniqueid']]['systemanswertime'])){channels[_0x30a765[_0x534d('0x8')]][_0x534d('0x24')]=utils[_0x534d('0x1d')]();}}else if(!_[_0x534d('0x23')](channels[_0x30a765[_0x534d('0x19')]])&&_0x30a765[_0x534d('0x21')]==0x6&&_0x30a765['context']!=_0x534d('0x25')){utils[_0x534d('0xa')](util[_0x534d('0xb')](_0x534d('0x26'),_0x30a765['uniqueid'],_0x30a765[_0x534d('0x19')],_0x30a765[_0x534d('0x1b')],_0x30a765[_0x534d('0xc')]));channels[_0x30a765[_0x534d('0x19')]]['accountcode']=_0x30a765['accountcode'];channels[_0x30a765[_0x534d('0x19')]][_0x534d('0x27')]=_0x30a765[_0x534d('0xc')];if(_[_0x534d('0x23')](channels[_0x30a765[_0x534d('0x19')]][_0x534d('0x28')])){channels[_0x30a765[_0x534d('0x19')]]['answertime']=utils[_0x534d('0x1d')]();}channels[_0x30a765['linkedid']][_0x534d('0x29')]=dispositions[_[_0x534d('0x2a')](_0x30a765[_0x534d('0x21')])]||_0x534d('0x5');}}catch(_0x129e67){utils[_0x534d('0x2b')](util[_0x534d('0xb')]('[%s][calls][newstate]',_0x30a765['uniqueid']),_0x129e67);}};exports[_0x534d('0x2c')]=function(_0x1393d8){try{if(!_[_0x534d('0x23')](channels[_0x1393d8[_0x534d('0x8')]])){utils[_0x534d('0x18')](util[_0x534d('0xb')]('[%s][calls][hangup]',_0x1393d8[_0x534d('0x8')]),_0x1393d8);if(_[_0x534d('0x23')](channels[_0x1393d8[_0x534d('0x8')]][_0x534d('0x2d')])){channels[_0x1393d8['uniqueid']][_0x534d('0x2d')]=_0x1393d8['calleridname']+'\x20<'+_0x1393d8[_0x534d('0x2e')]+'>';}utils[_0x534d('0xa')](util['format'](_0x534d('0x2f'),_0x1393d8[_0x534d('0x8')],channels[_0x1393d8[_0x534d('0x8')]][_0x534d('0x2d')],_0x1393d8['cause-txt']));channels[_0x1393d8[_0x534d('0x8')]][_0x534d('0x30')]=utils[_0x534d('0x1d')]();channels[_0x1393d8[_0x534d('0x8')]][_0x534d('0x31')]=utils[_0x534d('0x32')](channels[_0x1393d8['uniqueid']][_0x534d('0x30')],channels[_0x1393d8[_0x534d('0x8')]][_0x534d('0x33')]);channels[_0x1393d8[_0x534d('0x8')]][_0x534d('0x34')]=channels[_0x1393d8[_0x534d('0x8')]][_0x534d('0x28')]?utils[_0x534d('0x32')](channels[_0x1393d8[_0x534d('0x8')]][_0x534d('0x30')],channels[_0x1393d8[_0x534d('0x8')]]['answertime']):0x0;writeDB(channels[_0x1393d8[_0x534d('0x8')]]);}}catch(_0x4458d4){utils[_0x534d('0x2b')](util[_0x534d('0xb')]('[%s][calls][hangup]',_0x1393d8[_0x534d('0x8')]),_0x4458d4);}};exports[_0x534d('0x35')]=function(_0x28d808){try{if(!_[_0x534d('0x23')](channels[_0x28d808[_0x534d('0x36')]])){utils[_0x534d('0x18')](util[_0x534d('0xb')]('[%s][calls][attendedtransfer]',_0x28d808[_0x534d('0x37')]),_0x28d808);if(channels[_0x28d808[_0x534d('0x36')]][_0x534d('0xc')]==_0x28d808[_0x534d('0x38')]){utils['info'](util[_0x534d('0xb')](_0x534d('0x39'),_0x28d808['origtransfereruniqueid'],_0x28d808['localtwolinkedid'],_0x28d808[_0x534d('0x3a')]));channels[_0x28d808[_0x534d('0x36')]][_0x534d('0x27')]=_0x28d808[_0x534d('0x3a')];channels[_0x28d808[_0x534d('0x36')]][_0x534d('0x3b')]='_attended';}else if(channels[_0x28d808[_0x534d('0x36')]][_0x534d('0xc')]=_0x28d808['transfertargetchannel']){utils[_0x534d('0xa')](util[_0x534d('0xb')](_0x534d('0x39'),_0x28d808[_0x534d('0x37')],_0x28d808[_0x534d('0x36')],_0x28d808[_0x534d('0x3c')]));channels[_0x28d808['localtwolinkedid']][_0x534d('0x27')]=_0x28d808[_0x534d('0x3c')];channels[_0x28d808[_0x534d('0x36')]]['userfield']='_attended';}}}catch(_0x2198bf){utils[_0x534d('0x2b')](util[_0x534d('0xb')](_0x534d('0x3d'),_0x28d808[_0x534d('0x37')]),_0x2198bf);}};exports[_0x534d('0x3e')]=function(_0x5dd52c){try{if(!_[_0x534d('0x23')](channels[_0x5dd52c[_0x534d('0x8')]])){utils[_0x534d('0x18')](util['format'](_0x534d('0x3f'),_0x5dd52c['uniqueid']),_0x5dd52c);channels[_0x5dd52c['uniqueid']]['musiconholdstartAt']=utils[_0x534d('0x1d')]();utils[_0x534d('0xa')](util[_0x534d('0xb')]('[%s][calls][musiconholdstart]\x20musiconholdstartAt:%s',_0x5dd52c[_0x534d('0x8')],channels[_0x5dd52c[_0x534d('0x8')]][_0x534d('0x40')]));}}catch(_0x2ff8a6){utils[_0x534d('0x2b')](util[_0x534d('0xb')](_0x534d('0x3f'),_0x5dd52c[_0x534d('0x8')]),_0x2ff8a6);}};exports['musiconholdstop']=function(_0xdf1864){try{if(!_[_0x534d('0x23')](channels[_0xdf1864[_0x534d('0x8')]])){utils[_0x534d('0x18')](util['format'](_0x534d('0x41'),_0xdf1864['uniqueid']),_0xdf1864);if(!_[_0x534d('0x23')](channels[_0xdf1864[_0x534d('0x8')]][_0x534d('0x40')])){channels[_0xdf1864[_0x534d('0x8')]]['mohtime']+=utils[_0x534d('0x32')](utils[_0x534d('0x1d')](),channels[_0xdf1864[_0x534d('0x8')]][_0x534d('0x40')]);utils[_0x534d('0xa')](util[_0x534d('0xb')](_0x534d('0x42'),_0xdf1864[_0x534d('0x8')],channels[_0xdf1864[_0x534d('0x8')]]['mohtime']));delete channels[_0xdf1864[_0x534d('0x8')]][_0x534d('0x40')];}}}catch(_0x365b23){utils[_0x534d('0x2b')](util['format'](_0x534d('0x41'),_0xdf1864[_0x534d('0x8')]),_0x365b23);}};exports[_0x534d('0x43')]=function(_0x4a53ac){try{if(!_['isNil'](channels[_0x4a53ac['uniqueid']])){utils[_0x534d('0x18')](util['format'](_0x534d('0x44'),_0x4a53ac[_0x534d('0x8')]),_0x4a53ac);if(!_['isNil'](_0x4a53ac['variable']['xmd-originatecalleridnum'])){utils[_0x534d('0xa')](util[_0x534d('0xb')](_0x534d('0x45'),_0x4a53ac[_0x534d('0x8')],_0x4a53ac[_0x534d('0x46')]));channels[_0x4a53ac[_0x534d('0x8')]]['source']=_0x4a53ac[_0x534d('0x46')];}if(!_[_0x534d('0x23')](_0x4a53ac['variable'][_0x534d('0x47')])){utils[_0x534d('0xa')](util['format'](_0x534d('0x48'),_0x4a53ac['uniqueid'],_0x4a53ac['value']));channels[_0x4a53ac[_0x534d('0x8')]][_0x534d('0x49')]=_0x4a53ac[_0x534d('0x46')];channels[_0x4a53ac['uniqueid']][_0x534d('0x2d')]='\x22'+_0x4a53ac[_0x534d('0x46')]+'\x22\x20<'+_0x4a53ac[_0x534d('0x46')]+'>';}if(!_['isNil'](_0x4a53ac[_0x534d('0x4a')]['xmd-callerid-preview'])||!_[_0x534d('0x23')](_0x4a53ac[_0x534d('0x4a')][_0x534d('0x4b')])){utils[_0x534d('0xa')](util[_0x534d('0xb')](_0x534d('0x4c'),_0x4a53ac[_0x534d('0x8')],!_[_0x534d('0x23')](_0x4a53ac[_0x534d('0x4a')]['xmd-callerid-preview'])?_0x534d('0x4d'):_0x534d('0x4b'),_0x4a53ac[_0x534d('0x46')]));channels[_0x4a53ac[_0x534d('0x8')]][_0x534d('0x2d')]=_0x4a53ac[_0x534d('0x46')];}if(!_['isNil'](_0x4a53ac[_0x534d('0x4a')][_0x534d('0x4e')])||!_[_0x534d('0x23')](_0x4a53ac['variable'][_0x534d('0x4f')])){utils['info'](util[_0x534d('0xb')](_0x534d('0x4c'),_0x4a53ac['uniqueid'],!_[_0x534d('0x23')](_0x4a53ac[_0x534d('0x4a')][_0x534d('0x4e')])?_0x534d('0x4e'):_0x534d('0x4f'),_0x4a53ac[_0x534d('0x46')]));channels[_0x4a53ac[_0x534d('0x8')]][_0x534d('0x50')]=_0x534d('0x51');channels[_0x4a53ac['uniqueid']][_0x534d('0x52')]=_0x4a53ac[_0x534d('0x46')];channels[_0x4a53ac['uniqueid']]['queue']=!![];}if(!_['isNil'](_0x4a53ac[_0x534d('0x4a')]['xmd-contactid'])){utils[_0x534d('0xa')](util['format'](_0x534d('0x53'),_0x4a53ac[_0x534d('0x8')],_0x4a53ac['value']));channels[_0x4a53ac['uniqueid']][_0x534d('0x54')]=_0x4a53ac[_0x534d('0x46')];}if(!_[_0x534d('0x23')](_0x4a53ac[_0x534d('0x4a')]['xmd-cdrtype'])){utils[_0x534d('0xa')](util[_0x534d('0xb')](_0x534d('0x55'),_0x4a53ac[_0x534d('0x8')],_0x4a53ac[_0x534d('0x46')]));channels[_0x4a53ac[_0x534d('0x8')]][_0x534d('0x56')]=_0x4a53ac[_0x534d('0x46')];}if(!_[_0x534d('0x23')](_0x4a53ac[_0x534d('0x4a')][_0x534d('0x57')])){utils[_0x534d('0xa')](util[_0x534d('0xb')](_0x534d('0x58'),_0x4a53ac[_0x534d('0x8')],_0x4a53ac[_0x534d('0x46')]));channels[_0x4a53ac['uniqueid']]['routeid']=_0x4a53ac['value'];}if(!_[_0x534d('0x23')](_0x4a53ac[_0x534d('0x4a')]['sipcallid'])){utils['info'](util[_0x534d('0xb')](_0x534d('0x59'),_0x4a53ac[_0x534d('0x8')],_0x4a53ac['value']));channels[_0x4a53ac[_0x534d('0x8')]][_0x534d('0x5a')]=_0x4a53ac[_0x534d('0x46')];}}}catch(_0x35ad78){utils[_0x534d('0x2b')](util[_0x534d('0xb')](_0x534d('0x44'),_0x4a53ac[_0x534d('0x8')]),_0x35ad78);}};exports[_0x534d('0x5b')]=function(_0x465ffb){try{if(!_['isNil'](channels[_0x465ffb['uniqueid']])){utils['debug'](util['format'](_0x534d('0x5c'),_0x465ffb[_0x534d('0x8')]),_0x465ffb);utils[_0x534d('0xa')](util[_0x534d('0xb')](_0x534d('0x5d'),_0x465ffb[_0x534d('0x8')],_0x465ffb[_0x534d('0x5e')],_0x465ffb[_0x534d('0x5f')]));if(_0x465ffb['application']['toLowerCase']()=='set'&&_[_0x534d('0x60')](_0x465ffb[_0x534d('0x5f')][_0x534d('0x61')](),'cdr')){var _0xbd77ae=_0x465ffb[_0x534d('0x5f')][_0x534d('0x62')]('=');var _0x3a6eab=_0xbd77ae[0x0][_0x534d('0x63')](_0xbd77ae[0x0][_0x534d('0x64')]('(')+0x1,_0xbd77ae[0x0][_0x534d('0x64')](')'));var _0x57dfe8=_0xbd77ae[0x1];channels[_0x465ffb['uniqueid']][_0x3a6eab]=_0x57dfe8;}if(!_['includes']([_0x534d('0x2c'),_0x534d('0x65'),_0x534d('0x66'),'set',_0x534d('0x67')],_0x465ffb['application']['toLowerCase']())){channels[_0x465ffb[_0x534d('0x8')]]['lastapplication']=_0x465ffb['application'];channels[_0x465ffb['uniqueid']][_0x534d('0x52')]=_0x465ffb[_0x534d('0x5f')];}}}catch(_0x187a9a){utils[_0x534d('0x2b')](util[_0x534d('0xb')](_0x534d('0x5c'),_0x465ffb[_0x534d('0x8')]),_0x187a9a);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4093=['close','./utils','connect','info','[core]\x20connected','[core]\x20shutdown','[core]\x20fullybooted','error','[core]\x20error'];(function(_0x219ffe,_0x68db11){var _0x5edf57=function(_0x2c3316){while(--_0x2c3316){_0x219ffe['push'](_0x219ffe['shift']());}};_0x5edf57(++_0x68db11);}(_0x4093,0x18d));var _0x3409=function(_0x455269,_0x584949){_0x455269=_0x455269-0x0;var _0x21c504=_0x4093[_0x455269];return _0x21c504;};'use strict';var utils=require(_0x3409('0x0'));exports[_0x3409('0x1')]=function(){utils[_0x3409('0x2')](_0x3409('0x3'));};exports['shutdown']=function(){utils[_0x3409('0x2')](_0x3409('0x4'));};exports['fullybooted']=function(){utils[_0x3409('0x2')](_0x3409('0x5'));};exports[_0x3409('0x6')]=function(_0x26646c){utils[_0x3409('0x6')](_0x3409('0x7'),_0x26646c);};exports[_0x3409('0x8')]=function(){utils[_0x3409('0x2')]('[core]\x20close');};exports['managerevent']=function(_0x218d6b){};
\ No newline at end of file
+var _0x30ea=['shutdown','[core]\x20shutdown','[core]\x20fullybooted','[core]\x20error','close','[core]\x20close','managerevent','./utils','connect','info'];(function(_0x207811,_0x3420a6){var _0x170d56=function(_0x4340b7){while(--_0x4340b7){_0x207811['push'](_0x207811['shift']());}};_0x170d56(++_0x3420a6);}(_0x30ea,0x1c9));var _0xa30e=function(_0x17bafa,_0x44a873){_0x17bafa=_0x17bafa-0x0;var _0x152b32=_0x30ea[_0x17bafa];return _0x152b32;};'use strict';var utils=require(_0xa30e('0x0'));exports[_0xa30e('0x1')]=function(){utils[_0xa30e('0x2')]('[core]\x20connected');};exports[_0xa30e('0x3')]=function(){utils['info'](_0xa30e('0x4'));};exports['fullybooted']=function(){utils['info'](_0xa30e('0x5'));};exports['error']=function(_0x3cb252){utils['error'](_0xa30e('0x6'),_0x3cb252);};exports[_0xa30e('0x7')]=function(){utils[_0xa30e('0x2')](_0xa30e('0x8'));};exports[_0xa30e('0x9')]=function(_0x34e053){};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3070=['[%s][dials][hangup]\x20calleridnum:%s\x20calleridname:%s\x20lastevent:complete\x20reason:%s','calleridname','cause-txt','complete','duration','diffTime','endtime','holdtime','billableseconds','util','info','format','calleridnum','request','uniqueid','debug','[%s][dials][newexten]','application','appdata','toLowerCase','set','cdr(routeid)','split','error','varset','[%s][dials][varset]','isNil','variable','outboundrouteid','[%s][dials][varset]\x20variable:outboundrouteid\x20value:%s','value','[%s][dials][dialbegin]','starttime','now','lastevent','called','dialend','dialstatus','ANSWER','assign','connect','[%s][dials][dialend]\x20dialstatus:%s\x20answertime:%s\x20lastevent:connect','answertime','[%s][dials][dialend]','hangup','[%s][dials][hangup]'];(function(_0x46a3ed,_0x227062){var _0x10d62b=function(_0x18dc47){while(--_0x18dc47){_0x46a3ed['push'](_0x46a3ed['shift']());}};_0x10d62b(++_0x227062);}(_0x3070,0xc1));var _0x0307=function(_0x2a27e9,_0x571b34){_0x2a27e9=_0x2a27e9-0x0;var _0x36a65b=_0x3070[_0x2a27e9];return _0x36a65b;};'use strict';var _=require('lodash');var util=require(_0x0307('0x0'));var utils=require('./utils');var dials={};function writeDB(_0x246854){utils[_0x0307('0x1')](util[_0x0307('0x2')]('[%s][dials][writeDB]\x20channel:%s\x20dialstring:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20dialstatus:%s',_0x246854['uniqueid'],_0x246854['channel'],_0x246854['dialstring'],_0x246854[_0x0307('0x3')],_0x246854['connectedlinenum'],_0x246854['dialstatus']));utils[_0x0307('0x4')]('CreateVoiceDialReport',_0x246854);delete dials[_0x246854[_0x0307('0x5')]];}exports['newexten']=function(_0x62854){try{utils[_0x0307('0x6')](util[_0x0307('0x2')](_0x0307('0x7'),_0x62854[_0x0307('0x5')]),_0x62854);utils[_0x0307('0x1')](util[_0x0307('0x2')]('[%s][dials][newexten]\x20application:%s\x20appdata:%s',_0x62854[_0x0307('0x5')],_0x62854[_0x0307('0x8')],_0x62854[_0x0307('0x9')]));if(_0x62854['application'][_0x0307('0xa')]()==_0x0307('0xb')&&_['startsWith'](_0x62854[_0x0307('0x9')]['toLowerCase'](),_0x0307('0xc'))){var _0x3b3bd7=_0x62854[_0x0307('0x9')][_0x0307('0xd')]('=');dials[_0x62854['uniqueid']]={'routeId':_0x3b3bd7[0x1]};}}catch(_0x5d11d9){utils[_0x0307('0xe')](util['format'](_0x0307('0x7'),_0x62854['uniqueid']),_0x5d11d9);}};exports[_0x0307('0xf')]=function(_0x449894){try{utils[_0x0307('0x6')](util[_0x0307('0x2')](_0x0307('0x10'),_0x449894[_0x0307('0x5')]),_0x449894);if(!_[_0x0307('0x11')](_0x449894[_0x0307('0x12')][_0x0307('0x13')])){utils[_0x0307('0x1')](util[_0x0307('0x2')](_0x0307('0x14'),_0x449894[_0x0307('0x5')],_0x449894[_0x0307('0x15')]));dials[_0x449894['uniqueid']]={'routeId':_0x449894[_0x0307('0x15')]};}}catch(_0x546bc1){utils[_0x0307('0xe')](util['format']('[%s][dials][varset]',_0x449894[_0x0307('0x5')]),_0x546bc1);}};exports['dialbegin']=function(_0x93c761){try{if(!_[_0x0307('0x11')](dials[_0x93c761['uniqueid']])){utils[_0x0307('0x6')](util[_0x0307('0x2')](_0x0307('0x16'),_0x93c761[_0x0307('0x5')]),_0x93c761);dials[_0x93c761[_0x0307('0x5')]]=_['assign'](dials[_0x93c761[_0x0307('0x5')]],_0x93c761);dials[_0x93c761[_0x0307('0x5')]][_0x0307('0x17')]=utils[_0x0307('0x18')]();dials[_0x93c761['uniqueid']][_0x0307('0x19')]=_0x0307('0x1a');utils[_0x0307('0x1')](util['format']('[%s][dials][hangup]\x20starttime:%s\x20lastevent:called',_0x93c761[_0x0307('0x5')],dials[_0x93c761['uniqueid']]['starttime']));}}catch(_0x7eaaf9){utils['error'](util['format'](_0x0307('0x16'),_0x93c761['uniqueid']),_0x7eaaf9);}};exports[_0x0307('0x1b')]=function(_0x1d08bd){try{if(!_[_0x0307('0x11')](dials[_0x1d08bd['uniqueid']])){utils[_0x0307('0x6')](util[_0x0307('0x2')]('[%s][dials][dialend]',_0x1d08bd['uniqueid']),_0x1d08bd);dials[_0x1d08bd['uniqueid']][_0x0307('0x1c')]=_0x1d08bd['dialstatus'];if(_0x1d08bd[_0x0307('0x1c')]==_0x0307('0x1d')){dials[_0x1d08bd[_0x0307('0x5')]]=_[_0x0307('0x1e')](dials[_0x1d08bd[_0x0307('0x5')]],_0x1d08bd);dials[_0x1d08bd[_0x0307('0x5')]]['answertime']=utils[_0x0307('0x18')]();dials[_0x1d08bd['uniqueid']][_0x0307('0x19')]=_0x0307('0x1f');utils[_0x0307('0x1')](util['format'](_0x0307('0x20'),_0x1d08bd[_0x0307('0x5')],_0x1d08bd[_0x0307('0x1c')],dials[_0x1d08bd[_0x0307('0x5')]][_0x0307('0x21')]));}else{utils[_0x0307('0x1')](util[_0x0307('0x2')]('[%s][dials][dialend]\x20dialstatus:%s',_0x1d08bd[_0x0307('0x5')],_0x1d08bd[_0x0307('0x1c')]));}}}catch(_0x5a48a1){utils['error'](util[_0x0307('0x2')](_0x0307('0x22'),_0x1d08bd[_0x0307('0x5')]),_0x5a48a1);}};exports[_0x0307('0x23')]=function(_0x3ac39e){try{if(!_['isNil'](dials[_0x3ac39e[_0x0307('0x5')]])){utils[_0x0307('0x6')](util[_0x0307('0x2')](_0x0307('0x24'),_0x3ac39e[_0x0307('0x5')]),_0x3ac39e);utils[_0x0307('0x1')](util[_0x0307('0x2')](_0x0307('0x25'),_0x3ac39e[_0x0307('0x5')],_0x3ac39e[_0x0307('0x3')],_0x3ac39e[_0x0307('0x26')],_0x3ac39e[_0x0307('0x27')]));dials[_0x3ac39e[_0x0307('0x5')]]=_['assign'](dials[_0x3ac39e[_0x0307('0x5')]],{'endtime':utils[_0x0307('0x18')](),'lastevent':_0x0307('0x28')});dials[_0x3ac39e[_0x0307('0x5')]][_0x0307('0x29')]=utils[_0x0307('0x2a')](dials[_0x3ac39e[_0x0307('0x5')]][_0x0307('0x2b')],dials[_0x3ac39e[_0x0307('0x5')]][_0x0307('0x17')]);dials[_0x3ac39e[_0x0307('0x5')]][_0x0307('0x2c')]=utils[_0x0307('0x2a')](dials[_0x3ac39e[_0x0307('0x5')]]['answertime']||dials[_0x3ac39e['uniqueid']][_0x0307('0x2b')],dials[_0x3ac39e[_0x0307('0x5')]]['starttime']);dials[_0x3ac39e[_0x0307('0x5')]][_0x0307('0x2d')]=dials[_0x3ac39e[_0x0307('0x5')]][_0x0307('0x21')]?utils[_0x0307('0x2a')](dials[_0x3ac39e[_0x0307('0x5')]][_0x0307('0x2b')],dials[_0x3ac39e[_0x0307('0x5')]][_0x0307('0x21')]):0x0;writeDB(dials[_0x3ac39e['uniqueid']]);}}catch(_0x5dd179){utils[_0x0307('0xe')](util[_0x0307('0x2')](_0x0307('0x24'),_0x3ac39e[_0x0307('0x5')]),_0x5dd179);}};
\ No newline at end of file
+var _0xc007=['connect','hangup','[%s][dials][hangup]','[%s][dials][hangup]\x20calleridnum:%s\x20calleridname:%s\x20lastevent:complete\x20reason:%s','complete','duration','diffTime','holdtime','endtime','billableseconds','util','./utils','format','[%s][dials][writeDB]\x20channel:%s\x20dialstring:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20dialstatus:%s','uniqueid','channel','calleridnum','dialstatus','request','CreateVoiceDialReport','newexten','debug','[%s][dials][newexten]','application','appdata','toLowerCase','set','startsWith','varset','isNil','variable','outboundrouteid','info','value','error','[%s][dials][varset]','dialbegin','assign','starttime','lastevent','called','[%s][dials][dialbegin]','dialend','[%s][dials][dialend]','ANSWER','answertime','now'];(function(_0x4e1a49,_0x4da738){var _0x136aae=function(_0x3ffd93){while(--_0x3ffd93){_0x4e1a49['push'](_0x4e1a49['shift']());}};_0x136aae(++_0x4da738);}(_0xc007,0x124));var _0x7c00=function(_0x5eb68a,_0x523f07){_0x5eb68a=_0x5eb68a-0x0;var _0x59d777=_0xc007[_0x5eb68a];return _0x59d777;};'use strict';var _=require('lodash');var util=require(_0x7c00('0x0'));var utils=require(_0x7c00('0x1'));var dials={};function writeDB(_0x17b829){utils['info'](util[_0x7c00('0x2')](_0x7c00('0x3'),_0x17b829[_0x7c00('0x4')],_0x17b829[_0x7c00('0x5')],_0x17b829['dialstring'],_0x17b829[_0x7c00('0x6')],_0x17b829['connectedlinenum'],_0x17b829[_0x7c00('0x7')]));utils[_0x7c00('0x8')](_0x7c00('0x9'),_0x17b829);delete dials[_0x17b829[_0x7c00('0x4')]];}exports[_0x7c00('0xa')]=function(_0x5669c5){try{utils[_0x7c00('0xb')](util[_0x7c00('0x2')](_0x7c00('0xc'),_0x5669c5[_0x7c00('0x4')]),_0x5669c5);utils['info'](util['format']('[%s][dials][newexten]\x20application:%s\x20appdata:%s',_0x5669c5[_0x7c00('0x4')],_0x5669c5[_0x7c00('0xd')],_0x5669c5[_0x7c00('0xe')]));if(_0x5669c5[_0x7c00('0xd')][_0x7c00('0xf')]()==_0x7c00('0x10')&&_[_0x7c00('0x11')](_0x5669c5[_0x7c00('0xe')][_0x7c00('0xf')](),'cdr(routeid)')){var _0x1d2dc8=_0x5669c5[_0x7c00('0xe')]['split']('=');dials[_0x5669c5[_0x7c00('0x4')]]={'routeId':_0x1d2dc8[0x1]};}}catch(_0x383429){utils['error'](util[_0x7c00('0x2')](_0x7c00('0xc'),_0x5669c5[_0x7c00('0x4')]),_0x383429);}};exports[_0x7c00('0x12')]=function(_0x379054){try{utils[_0x7c00('0xb')](util[_0x7c00('0x2')]('[%s][dials][varset]',_0x379054[_0x7c00('0x4')]),_0x379054);if(!_[_0x7c00('0x13')](_0x379054[_0x7c00('0x14')][_0x7c00('0x15')])){utils[_0x7c00('0x16')](util[_0x7c00('0x2')]('[%s][dials][varset]\x20variable:outboundrouteid\x20value:%s',_0x379054['uniqueid'],_0x379054[_0x7c00('0x17')]));dials[_0x379054['uniqueid']]={'routeId':_0x379054[_0x7c00('0x17')]};}}catch(_0x42eff8){utils[_0x7c00('0x18')](util['format'](_0x7c00('0x19'),_0x379054['uniqueid']),_0x42eff8);}};exports[_0x7c00('0x1a')]=function(_0x2f0a2e){try{if(!_[_0x7c00('0x13')](dials[_0x2f0a2e['uniqueid']])){utils[_0x7c00('0xb')](util['format']('[%s][dials][dialbegin]',_0x2f0a2e['uniqueid']),_0x2f0a2e);dials[_0x2f0a2e[_0x7c00('0x4')]]=_[_0x7c00('0x1b')](dials[_0x2f0a2e['uniqueid']],_0x2f0a2e);dials[_0x2f0a2e[_0x7c00('0x4')]][_0x7c00('0x1c')]=utils['now']();dials[_0x2f0a2e[_0x7c00('0x4')]][_0x7c00('0x1d')]=_0x7c00('0x1e');utils[_0x7c00('0x16')](util[_0x7c00('0x2')]('[%s][dials][hangup]\x20starttime:%s\x20lastevent:called',_0x2f0a2e[_0x7c00('0x4')],dials[_0x2f0a2e[_0x7c00('0x4')]][_0x7c00('0x1c')]));}}catch(_0x32f55a){utils[_0x7c00('0x18')](util[_0x7c00('0x2')](_0x7c00('0x1f'),_0x2f0a2e[_0x7c00('0x4')]),_0x32f55a);}};exports[_0x7c00('0x20')]=function(_0x3bdaf6){try{if(!_[_0x7c00('0x13')](dials[_0x3bdaf6[_0x7c00('0x4')]])){utils[_0x7c00('0xb')](util[_0x7c00('0x2')](_0x7c00('0x21'),_0x3bdaf6['uniqueid']),_0x3bdaf6);dials[_0x3bdaf6[_0x7c00('0x4')]]['dialstatus']=_0x3bdaf6['dialstatus'];if(_0x3bdaf6[_0x7c00('0x7')]==_0x7c00('0x22')){dials[_0x3bdaf6[_0x7c00('0x4')]]=_['assign'](dials[_0x3bdaf6[_0x7c00('0x4')]],_0x3bdaf6);dials[_0x3bdaf6[_0x7c00('0x4')]][_0x7c00('0x23')]=utils[_0x7c00('0x24')]();dials[_0x3bdaf6[_0x7c00('0x4')]][_0x7c00('0x1d')]=_0x7c00('0x25');utils['info'](util[_0x7c00('0x2')]('[%s][dials][dialend]\x20dialstatus:%s\x20answertime:%s\x20lastevent:connect',_0x3bdaf6['uniqueid'],_0x3bdaf6[_0x7c00('0x7')],dials[_0x3bdaf6['uniqueid']][_0x7c00('0x23')]));}else{utils[_0x7c00('0x16')](util[_0x7c00('0x2')]('[%s][dials][dialend]\x20dialstatus:%s',_0x3bdaf6[_0x7c00('0x4')],_0x3bdaf6[_0x7c00('0x7')]));}}}catch(_0x23c442){utils[_0x7c00('0x18')](util['format'](_0x7c00('0x21'),_0x3bdaf6[_0x7c00('0x4')]),_0x23c442);}};exports[_0x7c00('0x26')]=function(_0x23a7cf){try{if(!_[_0x7c00('0x13')](dials[_0x23a7cf['uniqueid']])){utils[_0x7c00('0xb')](util[_0x7c00('0x2')](_0x7c00('0x27'),_0x23a7cf[_0x7c00('0x4')]),_0x23a7cf);utils[_0x7c00('0x16')](util[_0x7c00('0x2')](_0x7c00('0x28'),_0x23a7cf[_0x7c00('0x4')],_0x23a7cf[_0x7c00('0x6')],_0x23a7cf['calleridname'],_0x23a7cf['cause-txt']));dials[_0x23a7cf[_0x7c00('0x4')]]=_['assign'](dials[_0x23a7cf['uniqueid']],{'endtime':utils['now'](),'lastevent':_0x7c00('0x29')});dials[_0x23a7cf[_0x7c00('0x4')]][_0x7c00('0x2a')]=utils[_0x7c00('0x2b')](dials[_0x23a7cf[_0x7c00('0x4')]]['endtime'],dials[_0x23a7cf[_0x7c00('0x4')]][_0x7c00('0x1c')]);dials[_0x23a7cf[_0x7c00('0x4')]][_0x7c00('0x2c')]=utils['diffTime'](dials[_0x23a7cf['uniqueid']][_0x7c00('0x23')]||dials[_0x23a7cf['uniqueid']][_0x7c00('0x2d')],dials[_0x23a7cf[_0x7c00('0x4')]][_0x7c00('0x1c')]);dials[_0x23a7cf['uniqueid']][_0x7c00('0x2e')]=dials[_0x23a7cf[_0x7c00('0x4')]][_0x7c00('0x23')]?utils[_0x7c00('0x2b')](dials[_0x23a7cf[_0x7c00('0x4')]][_0x7c00('0x2d')],dials[_0x23a7cf['uniqueid']][_0x7c00('0x23')]):0x0;writeDB(dials[_0x23a7cf['uniqueid']]);}}catch(_0x516b13){utils[_0x7c00('0x18')](util['format'](_0x7c00('0x27'),_0x23a7cf['uniqueid']),_0x516b13);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6a3c=['managerevent','devicestatechange','debug','format','[%s][index][devicestatechange]','device','agentcalled','[%s][index][agentcalled]','uniqueid','[%s][index][agentringnoanswer]','agentringnoanswer','agentconnect','[%s][index][agentconnect]','agentcomplete','queuecallerabandon','[%s][index][queuecallerabandon]','queuecallerjoin','queuecallerleave','[%s][index][queuecallerleave]','musiconholdstart','musiconholdstop','[%s][index][musiconholdstop]','newstate','[%s][index][newstate]','[%s][index][hangup]','hangup','cdr','[%s][index][cdr]','blindtransfer','[%s][index][blindtransfer]','[%s][index][attendedtransfer]','attendedtransfer','origtransfereruniqueid','varset','[%s][index][varset]','newexten','[%s][index][newexten]','[%s][index][newchannel]','newchannel','dialbegin','[%s][index][dialbegin]','[%s]dialbegin','dialend','asterisk-manager','../../config/environment','asterisk','port','username','password','keepConnected','xdr','disabled','info','XDR\x20DISABLED','./agents.controller','./calls.controller','./queues.controller','./members.controller','./dials.controller','./core.controller','connect','shutdown','fullybooted','error','close'];(function(_0xf523d6,_0x106f89){var _0x50713e=function(_0x260358){while(--_0x260358){_0xf523d6['push'](_0xf523d6['shift']());}};_0x50713e(++_0x106f89);}(_0x6a3c,0x1b1));var _0xc6a3=function(_0x4bf633,_0x3e8065){_0x4bf633=_0x4bf633-0x0;var _0x15f675=_0x6a3c[_0x4bf633];return _0x15f675;};var AsteriskManager=require(_0xc6a3('0x0'));var config=require(_0xc6a3('0x1'));var utils=require('./utils');var util=require('util');var ami=new AsteriskManager(config[_0xc6a3('0x2')][_0xc6a3('0x3')],config['asterisk']['ip'],config[_0xc6a3('0x2')][_0xc6a3('0x4')],config[_0xc6a3('0x2')][_0xc6a3('0x5')],!![]);ami[_0xc6a3('0x6')]();if(config[_0xc6a3('0x7')]&&config[_0xc6a3('0x7')][_0xc6a3('0x8')]){utils[_0xc6a3('0x9')](_0xc6a3('0xa'));}else{var agents=require(_0xc6a3('0xb'));var calls=require(_0xc6a3('0xc'));var queues=require(_0xc6a3('0xd'));var recordings=require('./recordings.controller');var members=require(_0xc6a3('0xe'));var dials=require(_0xc6a3('0xf'));var transfers=require('./transfers.controller');var core=require(_0xc6a3('0x10'));ami['on']('connect',core[_0xc6a3('0x11')]);ami['on'](_0xc6a3('0x12'),core[_0xc6a3('0x12')]);ami['on'](_0xc6a3('0x13'),core[_0xc6a3('0x13')]);ami['on'](_0xc6a3('0x14'),core['error']);ami['on']('close',core[_0xc6a3('0x15')]);ami['on'](_0xc6a3('0x16'),core[_0xc6a3('0x16')]);ami['on'](_0xc6a3('0x17'),function(_0x36d815){try{utils[_0xc6a3('0x18')](util[_0xc6a3('0x19')](_0xc6a3('0x1a'),_0x36d815['device']),_0x36d815);members[_0xc6a3('0x17')](_0x36d815);}catch(_0x5160c9){utils[_0xc6a3('0x14')](util[_0xc6a3('0x19')](_0xc6a3('0x1a'),_0x36d815[_0xc6a3('0x1b')]),_0x5160c9);}});ami['on'](_0xc6a3('0x1c'),function(_0xf6412){try{utils[_0xc6a3('0x18')](util[_0xc6a3('0x19')](_0xc6a3('0x1d'),_0xf6412['uniqueid']),_0xf6412);agents[_0xc6a3('0x1c')](_0xf6412);}catch(_0x4b0012){utils[_0xc6a3('0x14')](util['format']('[%s][index][agentcalled]',_0xf6412[_0xc6a3('0x1e')]),_0x4b0012);}});ami['on']('agentringnoanswer',function(_0x4b2032){try{utils[_0xc6a3('0x18')](util[_0xc6a3('0x19')](_0xc6a3('0x1f'),_0x4b2032[_0xc6a3('0x1e')]),_0x4b2032);agents[_0xc6a3('0x20')](_0x4b2032);}catch(_0x3f1549){utils[_0xc6a3('0x14')](util[_0xc6a3('0x19')]('[%s][index][agentringnoanswer]',_0x4b2032[_0xc6a3('0x1e')]),_0x3f1549);}});ami['on'](_0xc6a3('0x21'),function(_0x2f3fc3){try{utils[_0xc6a3('0x18')](util[_0xc6a3('0x19')](_0xc6a3('0x22'),_0x2f3fc3[_0xc6a3('0x1e')]),_0x2f3fc3);agents[_0xc6a3('0x21')](_0x2f3fc3);queues['agentconnect'](_0x2f3fc3);}catch(_0x1c78df){utils[_0xc6a3('0x14')](util[_0xc6a3('0x19')]('[%s][index][agentconnect]',_0x2f3fc3[_0xc6a3('0x1e')]),_0x1c78df);}});ami['on']('agentcomplete',function(_0x594b75){try{utils['debug'](util[_0xc6a3('0x19')]('[%s][index][agentcomplete]',_0x594b75[_0xc6a3('0x1e')]),_0x594b75);agents[_0xc6a3('0x23')](_0x594b75);queues[_0xc6a3('0x23')](_0x594b75);members['agentcomplete'](_0x594b75);}catch(_0x43d9f3){utils['error'](util[_0xc6a3('0x19')]('[%s][index][agentcomplete]',_0x594b75[_0xc6a3('0x1e')]),_0x43d9f3);}});ami['on'](_0xc6a3('0x24'),function(_0x411e67){try{utils['debug'](util['format'](_0xc6a3('0x25'),_0x411e67[_0xc6a3('0x1e')]),_0x411e67);agents[_0xc6a3('0x24')](_0x411e67);queues[_0xc6a3('0x24')](_0x411e67);}catch(_0x58ff9b){utils[_0xc6a3('0x14')](util[_0xc6a3('0x19')](_0xc6a3('0x25'),_0x411e67[_0xc6a3('0x1e')]),_0x58ff9b);}});ami['on']('queuecallerjoin',function(_0x3e2cea){try{utils[_0xc6a3('0x18')](util[_0xc6a3('0x19')]('[%s][index][queuecallerjoin]',_0x3e2cea[_0xc6a3('0x1e')]),_0x3e2cea);queues[_0xc6a3('0x26')](_0x3e2cea);recordings[_0xc6a3('0x26')](_0x3e2cea);}catch(_0x3945a6){utils[_0xc6a3('0x14')](util[_0xc6a3('0x19')]('[%s][index][queuecallerjoin]',_0x3e2cea[_0xc6a3('0x1e')]),_0x3945a6);}});ami['on'](_0xc6a3('0x27'),function(_0x400200){try{utils[_0xc6a3('0x18')](util[_0xc6a3('0x19')]('[%s][index][queuecallerleave]',_0x400200[_0xc6a3('0x1e')]),_0x400200);queues[_0xc6a3('0x27')](_0x400200);}catch(_0x8fc681){utils[_0xc6a3('0x14')](util[_0xc6a3('0x19')](_0xc6a3('0x28'),_0x400200[_0xc6a3('0x1e')]),_0x8fc681);}});ami['on'](_0xc6a3('0x29'),function(_0x466271){try{utils[_0xc6a3('0x18')](util['format']('[%s][index][musiconholdstart]',_0x466271[_0xc6a3('0x1e')]),_0x466271);queues[_0xc6a3('0x29')](_0x466271);calls[_0xc6a3('0x29')](_0x466271);}catch(_0x37fc83){utils[_0xc6a3('0x14')](util[_0xc6a3('0x19')]('[%s][index][musiconholdstart]',_0x466271[_0xc6a3('0x1e')]),_0x37fc83);}});ami['on'](_0xc6a3('0x2a'),function(_0xf444f){try{utils[_0xc6a3('0x18')](util[_0xc6a3('0x19')]('[%s][index][musiconholdstop]',_0xf444f[_0xc6a3('0x1e')]),_0xf444f);queues[_0xc6a3('0x2a')](_0xf444f);calls['musiconholdstop'](_0xf444f);}catch(_0x50b2a3){utils['error'](util[_0xc6a3('0x19')](_0xc6a3('0x2b'),_0xf444f[_0xc6a3('0x1e')]),_0x50b2a3);}});ami['on'](_0xc6a3('0x2c'),function(_0x2c9add){try{utils[_0xc6a3('0x18')](util['format']('[%s][index][newstate]',_0x2c9add[_0xc6a3('0x1e')]),_0x2c9add);calls[_0xc6a3('0x2c')](_0x2c9add);recordings[_0xc6a3('0x2c')](_0x2c9add);}catch(_0x164f3f){utils[_0xc6a3('0x14')](util['format'](_0xc6a3('0x2d'),_0x2c9add['uniqueid']),_0x164f3f);}});ami['on']('hangup',function(_0x30de79){try{utils['debug'](util[_0xc6a3('0x19')](_0xc6a3('0x2e'),_0x30de79[_0xc6a3('0x1e')]),_0x30de79);calls[_0xc6a3('0x2f')](_0x30de79);recordings[_0xc6a3('0x2f')](_0x30de79);dials[_0xc6a3('0x2f')](_0x30de79);agents['hangup'](_0x30de79);queues[_0xc6a3('0x2f')](_0x30de79);}catch(_0x52fd34){utils[_0xc6a3('0x14')](util['format'](_0xc6a3('0x2e'),_0x30de79[_0xc6a3('0x1e')]),_0x52fd34);}});ami['on'](_0xc6a3('0x30'),function(_0x16c999){try{utils['debug'](util[_0xc6a3('0x19')](_0xc6a3('0x31'),_0x16c999['uniqueid']),_0x16c999);members[_0xc6a3('0x30')](_0x16c999);}catch(_0x55b04f){utils[_0xc6a3('0x14')](util[_0xc6a3('0x19')](_0xc6a3('0x31'),_0x16c999[_0xc6a3('0x1e')]),_0x55b04f);}});ami['on'](_0xc6a3('0x32'),function(_0x54bdf2){try{utils['debug'](util[_0xc6a3('0x19')]('[%s][index][blindtransfer]',_0x54bdf2[_0xc6a3('0x1e')]),_0x54bdf2);queues[_0xc6a3('0x32')](_0x54bdf2);agents[_0xc6a3('0x32')](_0x54bdf2);transfers[_0xc6a3('0x32')](_0x54bdf2);}catch(_0x179b3c){utils[_0xc6a3('0x14')](util[_0xc6a3('0x19')](_0xc6a3('0x33'),_0x54bdf2[_0xc6a3('0x1e')]),_0x179b3c);}});ami['on']('attendedtransfer',function(_0x5bb0ac){try{utils[_0xc6a3('0x18')](util['format'](_0xc6a3('0x34'),_0x5bb0ac['origtransfereruniqueid']),_0x5bb0ac);queues['attendedtransfer'](_0x5bb0ac);transfers['attendedtransfer'](_0x5bb0ac);agents[_0xc6a3('0x35')](_0x5bb0ac);calls[_0xc6a3('0x35')](_0x5bb0ac);}catch(_0x1f22c8){utils[_0xc6a3('0x14')](util['format']('[%s][index][attendedtransfer]',_0x5bb0ac[_0xc6a3('0x36')]),_0x1f22c8);}});ami['on'](_0xc6a3('0x37'),function(_0x8a2789){try{utils[_0xc6a3('0x18')](util[_0xc6a3('0x19')](_0xc6a3('0x38'),_0x8a2789[_0xc6a3('0x1e')]),_0x8a2789);queues[_0xc6a3('0x37')](_0x8a2789);recordings[_0xc6a3('0x37')](_0x8a2789);calls[_0xc6a3('0x37')](_0x8a2789);dials[_0xc6a3('0x37')](_0x8a2789);}catch(_0x15b228){utils[_0xc6a3('0x14')](util[_0xc6a3('0x19')]('[%s][index][varset]',_0x8a2789[_0xc6a3('0x1e')]),_0x15b228);}});ami['on'](_0xc6a3('0x39'),function(_0x27de34){try{utils['debug'](util[_0xc6a3('0x19')](_0xc6a3('0x3a'),_0x27de34[_0xc6a3('0x1e')]),_0x27de34);calls[_0xc6a3('0x39')](_0x27de34);recordings['newexten'](_0x27de34);dials[_0xc6a3('0x39')](_0x27de34);}catch(_0x27e722){utils[_0xc6a3('0x14')](util[_0xc6a3('0x19')](_0xc6a3('0x3a'),_0x27de34['uniqueid']),_0x27e722);}});ami['on']('newchannel',function(_0x515b08){try{utils[_0xc6a3('0x18')](util['format'](_0xc6a3('0x3b'),_0x515b08[_0xc6a3('0x1e')]),_0x515b08);calls['newchannel'](_0x515b08);recordings[_0xc6a3('0x3c')](_0x515b08);}catch(_0x5dddcc){utils[_0xc6a3('0x14')](util[_0xc6a3('0x19')](_0xc6a3('0x3b'),_0x515b08['uniqueid']),_0x5dddcc);}});ami['on'](_0xc6a3('0x3d'),function(_0x16c002){try{utils[_0xc6a3('0x18')](util[_0xc6a3('0x19')](_0xc6a3('0x3e'),_0x16c002['uniqueid']),_0x16c002);dials[_0xc6a3('0x3d')](_0x16c002);}catch(_0x40f1c8){utils[_0xc6a3('0x14')](util[_0xc6a3('0x19')](_0xc6a3('0x3f'),_0x16c002['uniqueid']),_0x40f1c8);}});ami['on']('dialend',function(_0x28fb87){try{utils[_0xc6a3('0x18')](util[_0xc6a3('0x19')]('[%s][index][dialend]',_0x28fb87[_0xc6a3('0x1e')]),_0x28fb87);dials[_0xc6a3('0x40')](_0x28fb87);}catch(_0xc8ee7){utils['error'](util[_0xc6a3('0x19')]('[%s][index][dialend]',_0x28fb87[_0xc6a3('0x1e')]),_0xc8ee7);}});}
\ No newline at end of file
+var _0x67d4=['[%s][index][hangup]','hangup','cdr','[%s][index][cdr]','blindtransfer','[%s][index][blindtransfer]','attendedtransfer','[%s][index][attendedtransfer]','origtransfereruniqueid','[%s][index][varset]','varset','newexten','[%s][index][newexten]','[%s][index][newchannel]','newchannel','[%s][index][dialbegin]','dialbegin','[%s]dialbegin','dialend','[%s][index][dialend]','asterisk-manager','../../config/environment','./utils','util','asterisk','username','password','keepConnected','xdr','XDR\x20DISABLED','./agents.controller','./calls.controller','./queues.controller','./members.controller','./dials.controller','./transfers.controller','./core.controller','connect','shutdown','fullybooted','error','close','managerevent','devicestatechange','debug','format','device','[%s][index][devicestatechange]','agentcalled','[%s][index][agentcalled]','uniqueid','agentringnoanswer','[%s][index][agentringnoanswer]','agentconnect','[%s][index][agentconnect]','[%s][index][agentcomplete]','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(_0x2b10c6,_0x185590){var _0x3789d2=function(_0x272987){while(--_0x272987){_0x2b10c6['push'](_0x2b10c6['shift']());}};_0x3789d2(++_0x185590);}(_0x67d4,0x168));var _0x467d=function(_0x13ad33,_0x12aac9){_0x13ad33=_0x13ad33-0x0;var _0x341dce=_0x67d4[_0x13ad33];return _0x341dce;};var AsteriskManager=require(_0x467d('0x0'));var config=require(_0x467d('0x1'));var utils=require(_0x467d('0x2'));var util=require(_0x467d('0x3'));var ami=new AsteriskManager(config[_0x467d('0x4')]['port'],config[_0x467d('0x4')]['ip'],config[_0x467d('0x4')][_0x467d('0x5')],config['asterisk'][_0x467d('0x6')],!![]);ami[_0x467d('0x7')]();if(config[_0x467d('0x8')]&&config['xdr']['disabled']){utils['info'](_0x467d('0x9'));}else{var agents=require(_0x467d('0xa'));var calls=require(_0x467d('0xb'));var queues=require(_0x467d('0xc'));var recordings=require('./recordings.controller');var members=require(_0x467d('0xd'));var dials=require(_0x467d('0xe'));var transfers=require(_0x467d('0xf'));var core=require(_0x467d('0x10'));ami['on'](_0x467d('0x11'),core[_0x467d('0x11')]);ami['on'](_0x467d('0x12'),core[_0x467d('0x12')]);ami['on']('fullybooted',core[_0x467d('0x13')]);ami['on'](_0x467d('0x14'),core['error']);ami['on'](_0x467d('0x15'),core['close']);ami['on'](_0x467d('0x16'),core[_0x467d('0x16')]);ami['on'](_0x467d('0x17'),function(_0x3eb203){try{utils[_0x467d('0x18')](util[_0x467d('0x19')]('[%s][index][devicestatechange]',_0x3eb203[_0x467d('0x1a')]),_0x3eb203);members[_0x467d('0x17')](_0x3eb203);}catch(_0x4b06a0){utils[_0x467d('0x14')](util['format'](_0x467d('0x1b'),_0x3eb203[_0x467d('0x1a')]),_0x4b06a0);}});ami['on'](_0x467d('0x1c'),function(_0x418e5b){try{utils['debug'](util[_0x467d('0x19')](_0x467d('0x1d'),_0x418e5b[_0x467d('0x1e')]),_0x418e5b);agents[_0x467d('0x1c')](_0x418e5b);}catch(_0x1a1d7e){utils['error'](util[_0x467d('0x19')](_0x467d('0x1d'),_0x418e5b[_0x467d('0x1e')]),_0x1a1d7e);}});ami['on'](_0x467d('0x1f'),function(_0x2745f){try{utils[_0x467d('0x18')](util[_0x467d('0x19')]('[%s][index][agentringnoanswer]',_0x2745f[_0x467d('0x1e')]),_0x2745f);agents[_0x467d('0x1f')](_0x2745f);}catch(_0x15cd25){utils[_0x467d('0x14')](util[_0x467d('0x19')](_0x467d('0x20'),_0x2745f[_0x467d('0x1e')]),_0x15cd25);}});ami['on'](_0x467d('0x21'),function(_0x39c813){try{utils[_0x467d('0x18')](util[_0x467d('0x19')](_0x467d('0x22'),_0x39c813[_0x467d('0x1e')]),_0x39c813);agents[_0x467d('0x21')](_0x39c813);queues['agentconnect'](_0x39c813);}catch(_0x333291){utils['error'](util[_0x467d('0x19')](_0x467d('0x22'),_0x39c813[_0x467d('0x1e')]),_0x333291);}});ami['on']('agentcomplete',function(_0x5bfec8){try{utils[_0x467d('0x18')](util['format'](_0x467d('0x23'),_0x5bfec8[_0x467d('0x1e')]),_0x5bfec8);agents['agentcomplete'](_0x5bfec8);queues['agentcomplete'](_0x5bfec8);members[_0x467d('0x24')](_0x5bfec8);}catch(_0x319079){utils[_0x467d('0x14')](util['format'](_0x467d('0x23'),_0x5bfec8[_0x467d('0x1e')]),_0x319079);}});ami['on'](_0x467d('0x25'),function(_0x202df9){try{utils[_0x467d('0x18')](util[_0x467d('0x19')]('[%s][index][queuecallerabandon]',_0x202df9[_0x467d('0x1e')]),_0x202df9);agents[_0x467d('0x25')](_0x202df9);queues[_0x467d('0x25')](_0x202df9);}catch(_0x5002cb){utils[_0x467d('0x14')](util['format'](_0x467d('0x26'),_0x202df9[_0x467d('0x1e')]),_0x5002cb);}});ami['on'](_0x467d('0x27'),function(_0x24530d){try{utils[_0x467d('0x18')](util[_0x467d('0x19')](_0x467d('0x28'),_0x24530d[_0x467d('0x1e')]),_0x24530d);queues['queuecallerjoin'](_0x24530d);recordings[_0x467d('0x27')](_0x24530d);}catch(_0x4f355a){utils[_0x467d('0x14')](util[_0x467d('0x19')](_0x467d('0x28'),_0x24530d[_0x467d('0x1e')]),_0x4f355a);}});ami['on'](_0x467d('0x29'),function(_0xc2ad3b){try{utils[_0x467d('0x18')](util[_0x467d('0x19')](_0x467d('0x2a'),_0xc2ad3b[_0x467d('0x1e')]),_0xc2ad3b);queues['queuecallerleave'](_0xc2ad3b);}catch(_0xe6e7c9){utils[_0x467d('0x14')](util['format']('[%s][index][queuecallerleave]',_0xc2ad3b[_0x467d('0x1e')]),_0xe6e7c9);}});ami['on'](_0x467d('0x2b'),function(_0x57a9aa){try{utils[_0x467d('0x18')](util[_0x467d('0x19')](_0x467d('0x2c'),_0x57a9aa['uniqueid']),_0x57a9aa);queues[_0x467d('0x2b')](_0x57a9aa);calls[_0x467d('0x2b')](_0x57a9aa);}catch(_0x2571be){utils[_0x467d('0x14')](util[_0x467d('0x19')](_0x467d('0x2c'),_0x57a9aa[_0x467d('0x1e')]),_0x2571be);}});ami['on'](_0x467d('0x2d'),function(_0x24d6d7){try{utils[_0x467d('0x18')](util[_0x467d('0x19')](_0x467d('0x2e'),_0x24d6d7['uniqueid']),_0x24d6d7);queues[_0x467d('0x2d')](_0x24d6d7);calls[_0x467d('0x2d')](_0x24d6d7);}catch(_0x4be948){utils[_0x467d('0x14')](util[_0x467d('0x19')]('[%s][index][musiconholdstop]',_0x24d6d7['uniqueid']),_0x4be948);}});ami['on']('newstate',function(_0x5d19ef){try{utils[_0x467d('0x18')](util['format'](_0x467d('0x2f'),_0x5d19ef['uniqueid']),_0x5d19ef);calls['newstate'](_0x5d19ef);recordings['newstate'](_0x5d19ef);}catch(_0x54d9cd){utils[_0x467d('0x14')](util[_0x467d('0x19')](_0x467d('0x2f'),_0x5d19ef[_0x467d('0x1e')]),_0x54d9cd);}});ami['on']('hangup',function(_0x5ca1d4){try{utils['debug'](util[_0x467d('0x19')](_0x467d('0x30'),_0x5ca1d4['uniqueid']),_0x5ca1d4);calls[_0x467d('0x31')](_0x5ca1d4);recordings[_0x467d('0x31')](_0x5ca1d4);dials[_0x467d('0x31')](_0x5ca1d4);agents[_0x467d('0x31')](_0x5ca1d4);queues[_0x467d('0x31')](_0x5ca1d4);}catch(_0x4559e4){utils[_0x467d('0x14')](util[_0x467d('0x19')](_0x467d('0x30'),_0x5ca1d4[_0x467d('0x1e')]),_0x4559e4);}});ami['on'](_0x467d('0x32'),function(_0x75764e){try{utils[_0x467d('0x18')](util[_0x467d('0x19')](_0x467d('0x33'),_0x75764e['uniqueid']),_0x75764e);members[_0x467d('0x32')](_0x75764e);}catch(_0x4d5e1b){utils['error'](util[_0x467d('0x19')](_0x467d('0x33'),_0x75764e[_0x467d('0x1e')]),_0x4d5e1b);}});ami['on'](_0x467d('0x34'),function(_0x24739d){try{utils[_0x467d('0x18')](util[_0x467d('0x19')](_0x467d('0x35'),_0x24739d[_0x467d('0x1e')]),_0x24739d);queues['blindtransfer'](_0x24739d);agents['blindtransfer'](_0x24739d);transfers[_0x467d('0x34')](_0x24739d);}catch(_0x5c4a49){utils[_0x467d('0x14')](util['format'](_0x467d('0x35'),_0x24739d[_0x467d('0x1e')]),_0x5c4a49);}});ami['on'](_0x467d('0x36'),function(_0x598772){try{utils[_0x467d('0x18')](util[_0x467d('0x19')](_0x467d('0x37'),_0x598772[_0x467d('0x38')]),_0x598772);queues[_0x467d('0x36')](_0x598772);transfers['attendedtransfer'](_0x598772);agents[_0x467d('0x36')](_0x598772);calls[_0x467d('0x36')](_0x598772);}catch(_0x1f8875){utils[_0x467d('0x14')](util['format'](_0x467d('0x37'),_0x598772[_0x467d('0x38')]),_0x1f8875);}});ami['on']('varset',function(_0x5e8c08){try{utils[_0x467d('0x18')](util[_0x467d('0x19')](_0x467d('0x39'),_0x5e8c08[_0x467d('0x1e')]),_0x5e8c08);queues[_0x467d('0x3a')](_0x5e8c08);recordings[_0x467d('0x3a')](_0x5e8c08);calls['varset'](_0x5e8c08);dials[_0x467d('0x3a')](_0x5e8c08);}catch(_0x16e607){utils[_0x467d('0x14')](util[_0x467d('0x19')](_0x467d('0x39'),_0x5e8c08['uniqueid']),_0x16e607);}});ami['on'](_0x467d('0x3b'),function(_0x40cd3b){try{utils[_0x467d('0x18')](util['format'](_0x467d('0x3c'),_0x40cd3b[_0x467d('0x1e')]),_0x40cd3b);calls[_0x467d('0x3b')](_0x40cd3b);recordings[_0x467d('0x3b')](_0x40cd3b);dials[_0x467d('0x3b')](_0x40cd3b);}catch(_0x4ecafc){utils[_0x467d('0x14')](util[_0x467d('0x19')](_0x467d('0x3c'),_0x40cd3b[_0x467d('0x1e')]),_0x4ecafc);}});ami['on']('newchannel',function(_0x1387fa){try{utils[_0x467d('0x18')](util[_0x467d('0x19')](_0x467d('0x3d'),_0x1387fa['uniqueid']),_0x1387fa);calls[_0x467d('0x3e')](_0x1387fa);recordings[_0x467d('0x3e')](_0x1387fa);}catch(_0x102c8){utils[_0x467d('0x14')](util[_0x467d('0x19')](_0x467d('0x3d'),_0x1387fa['uniqueid']),_0x102c8);}});ami['on']('dialbegin',function(_0x1f1844){try{utils[_0x467d('0x18')](util['format'](_0x467d('0x3f'),_0x1f1844['uniqueid']),_0x1f1844);dials[_0x467d('0x40')](_0x1f1844);}catch(_0x56edda){utils[_0x467d('0x14')](util['format'](_0x467d('0x41'),_0x1f1844['uniqueid']),_0x56edda);}});ami['on']('dialend',function(_0x20957b){try{utils[_0x467d('0x18')](util[_0x467d('0x19')]('[%s][index][dialend]',_0x20957b['uniqueid']),_0x20957b);dials[_0x467d('0x42')](_0x20957b);}catch(_0x4d0296){utils['error'](util['format'](_0x467d('0x43'),_0x20957b[_0x467d('0x1e')]),_0x4d0296);}});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc2cc=['state','BUSY','voice','now','NOT_INUSE','exitAt','duration','diffTime','agentcomplete','isNil','[%s][members][agentcomplete]','[%s][members][agentcomplete]\x20interface:%s\x20queue:%s','assign','cdr','[%s][members][cdr]','data1','data2','destination','data3','destinationchannel','source','[%s][members][cdr]\x20type:%s\x20source:%s\x20destination:%s','util','./utils','Local/_attended@transfer','format','uniqueid','channel','type','getUserByInterface','then','name','internal','request','CreateMemberReport','getUserByName','interface','split','error','some','startsWith','debug','device','info','[%s][members][devicestatechange]\x20state:%s\x20interface:%s'];(function(_0x214765,_0xd2bea3){var _0x2d4fd5=function(_0x57e160){while(--_0x57e160){_0x214765['push'](_0x214765['shift']());}};_0x2d4fd5(++_0xd2bea3);}(_0xc2cc,0x70));var _0xcc2c=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xc2cc[_0x20a584];return _0x4b41a8;};'use strict';var _=require('lodash');var util=require(_0xcc2c('0x0'));var utils=require(_0xcc2c('0x1'));var members={};var exclude=[_0xcc2c('0x2'),'Queue:'];function writeDB(_0x2a1a4a){utils['info'](util[_0xcc2c('0x3')]('[%s][members][writeDB]\x20interface:%s\x20channel:%s\x20data2:%s\x20agent:%s\x20type:%s',_0x2a1a4a[_0xcc2c('0x4')],_0x2a1a4a['interface'],_0x2a1a4a[_0xcc2c('0x5')],_0x2a1a4a['data2'],_0x2a1a4a['membername'],_0x2a1a4a[_0xcc2c('0x6')]));if(_0x2a1a4a['interface']){utils[_0xcc2c('0x7')](_0x2a1a4a['interface'])[_0xcc2c('0x8')](function(_0x58c80c){if(_0x58c80c){_0x2a1a4a['membername']=_0x58c80c[_0xcc2c('0x9')];_0x2a1a4a[_0xcc2c('0xa')]=_0x58c80c[_0xcc2c('0xa')];utils[_0xcc2c('0xb')](_0xcc2c('0xc'),_0x2a1a4a);}else{utils[_0xcc2c('0xd')](_0x2a1a4a[_0xcc2c('0xe')][_0xcc2c('0xf')]('/')[0x1])['then'](function(_0x358306){if(_0x358306){_0x2a1a4a['membername']=_0x358306[_0xcc2c('0x9')];_0x2a1a4a[_0xcc2c('0xa')]=_0x358306[_0xcc2c('0xa')];utils[_0xcc2c('0xb')]('CreateMemberReport',_0x2a1a4a);}});}})['catch'](function(_0x4d52fe){utils[_0xcc2c('0x10')](util[_0xcc2c('0x3')]('[%s][members][writeDB]',_0x2a1a4a['uniqueid']),_0x4d52fe);});}delete members[_0x2a1a4a[_0xcc2c('0xe')]];}function startsWith(_0x494f3d,_0x18a774){return _[_0xcc2c('0x11')](_0x494f3d,function(_0x10a651){return _[_0xcc2c('0x12')](_0x18a774,_0x10a651);});}exports['devicestatechange']=function(_0x5d6189){try{utils[_0xcc2c('0x13')](util[_0xcc2c('0x3')]('[%s][members][devicestatechange]',members[_0x5d6189[_0xcc2c('0x14')]]?members[_0x5d6189[_0xcc2c('0x14')]][_0xcc2c('0x4')]:_0x5d6189[_0xcc2c('0x14')]),_0x5d6189);utils[_0xcc2c('0x15')](util[_0xcc2c('0x3')](_0xcc2c('0x16'),members[_0x5d6189['device']]?members[_0x5d6189[_0xcc2c('0x14')]][_0xcc2c('0x4')]:_0x5d6189['device'],_0x5d6189['state'],_0x5d6189['device']));switch(_0x5d6189[_0xcc2c('0x17')]){case'INUSE':case _0xcc2c('0x18'):if(!startsWith(exclude,_0x5d6189[_0xcc2c('0x14')])){members[_0x5d6189['device']]={'channel':_0xcc2c('0x19'),'interface':_0x5d6189[_0xcc2c('0x14')],'type':'TALKING','enterAt':utils[_0xcc2c('0x1a')](),'role':'agent'};}break;case _0xcc2c('0x1b'):if(!_['isNil'](members[_0x5d6189['device']])){members[_0x5d6189[_0xcc2c('0x14')]][_0xcc2c('0x1c')]=utils['now']();members[_0x5d6189[_0xcc2c('0x14')]][_0xcc2c('0x1d')]=utils[_0xcc2c('0x1e')](members[_0x5d6189[_0xcc2c('0x14')]][_0xcc2c('0x1c')],members[_0x5d6189[_0xcc2c('0x14')]]['enterAt']);if(members[_0x5d6189[_0xcc2c('0x14')]][_0xcc2c('0x4')]){writeDB(members[_0x5d6189[_0xcc2c('0x14')]]);}}break;default:break;}}catch(_0xfd6b4b){utils[_0xcc2c('0x10')](util['format']('[%s][members][devicestatechange]',members[_0x5d6189['device']]?members[_0x5d6189['device']][_0xcc2c('0x4')]:_0x5d6189[_0xcc2c('0x14')]),_0xfd6b4b);}};exports[_0xcc2c('0x1f')]=function(_0x2c4ce9){try{if(!_[_0xcc2c('0x20')](members[_0x2c4ce9[_0xcc2c('0xe')]])){utils[_0xcc2c('0x13')](util[_0xcc2c('0x3')](_0xcc2c('0x21'),_0x2c4ce9[_0xcc2c('0x4')]),_0x2c4ce9);utils[_0xcc2c('0x15')](util['format'](_0xcc2c('0x22'),_0x2c4ce9['uniqueid'],_0x2c4ce9['interface'],_0x2c4ce9['queue']));members[_0x2c4ce9[_0xcc2c('0xe')]]=_[_0xcc2c('0x23')](members[_0x2c4ce9['interface']],{'data4':_0x2c4ce9['queue'],'uniqueid':_0x2c4ce9[_0xcc2c('0x4')]});}}catch(_0x4e4265){utils[_0xcc2c('0x10')](util[_0xcc2c('0x3')](_0xcc2c('0x21'),_0x2c4ce9[_0xcc2c('0x4')]),_0x4e4265);}};exports[_0xcc2c('0x24')]=function(_0x565b97){try{utils['debug'](util[_0xcc2c('0x3')](_0xcc2c('0x25'),_0x565b97[_0xcc2c('0x4')]),_0x565b97);if(_0x565b97[_0xcc2c('0x5')]){var _0x23da34=_0x565b97['channel'][_0xcc2c('0xf')]('-')[0x0];if(!_['isNil'](members[_0x23da34])){members[_0x23da34]=_[_0xcc2c('0x23')](members[_0x23da34],{'data1':members[_0x23da34][_0xcc2c('0x26')]||_0x565b97['type'],'data2':members[_0x23da34][_0xcc2c('0x27')]||_0x565b97['source'],'data3':members[_0x23da34]['data3']||_0x565b97[_0xcc2c('0x28')],'uniqueid':members[_0x23da34]['uniqueid']||_0x565b97[_0xcc2c('0x4')]});utils[_0xcc2c('0x15')](util[_0xcc2c('0x3')]('[%s][members][cdr]\x20type:%s\x20source:%s\x20destination:%s',_0x565b97[_0xcc2c('0x4')],members[_0x23da34][_0xcc2c('0x26')],members[_0x23da34]['data2'],members[_0x23da34][_0xcc2c('0x29')]));if(members[_0x23da34]['exitAt']){writeDB(members[_0x23da34]);}}}if(_0x565b97[_0xcc2c('0x2a')]){var _0x4cb5de=_0x565b97[_0xcc2c('0x2a')][_0xcc2c('0xf')]('-')[0x0];if(!_[_0xcc2c('0x20')](members[_0x4cb5de])){members[_0x4cb5de]=_['assign'](members[_0x4cb5de],{'data1':members[_0x4cb5de][_0xcc2c('0x26')]||_0x565b97[_0xcc2c('0x6')],'data2':members[_0x4cb5de][_0xcc2c('0x27')]||_0x565b97[_0xcc2c('0x2b')],'data3':members[_0x4cb5de][_0xcc2c('0x29')]||_0x565b97[_0xcc2c('0x28')],'uniqueid':members[_0x4cb5de]['uniqueid']||_0x565b97[_0xcc2c('0x4')]});utils[_0xcc2c('0x15')](util[_0xcc2c('0x3')](_0xcc2c('0x2c'),_0x565b97['uniqueid'],members[_0x4cb5de][_0xcc2c('0x26')],members[_0x4cb5de][_0xcc2c('0x27')],members[_0x4cb5de][_0xcc2c('0x29')]));if(members[_0x4cb5de][_0xcc2c('0x1c')]){writeDB(members[_0x4cb5de]);}}}}catch(_0x21834b){utils[_0xcc2c('0x10')](util[_0xcc2c('0x3')](_0xcc2c('0x25'),_0x565b97[_0xcc2c('0x4')]),_0x21834b);}};
\ No newline at end of file
+var _0x47f4=['CreateMemberReport','getUserByName','split','request','catch','[%s][members][writeDB]','some','debug','[%s][members][devicestatechange]','device','[%s][members][devicestatechange]\x20state:%s\x20interface:%s','BUSY','voice','TALKING','now','agent','NOT_INUSE','isNil','exitAt','duration','enterAt','[%s][members][agentcomplete]','[%s][members][agentcomplete]\x20interface:%s\x20queue:%s','assign','queue','cdr','[%s][members][cdr]','data1','source','data3','destination','[%s][members][cdr]\x20type:%s\x20source:%s\x20destination:%s','destinationchannel','error','util','./utils','Local/_attended@transfer','info','format','[%s][members][writeDB]\x20interface:%s\x20channel:%s\x20data2:%s\x20agent:%s\x20type:%s','uniqueid','channel','data2','type','interface','getUserByInterface','then','membername','name','internal'];(function(_0x213508,_0x5f3ff0){var _0x1b0363=function(_0x19bb1f){while(--_0x19bb1f){_0x213508['push'](_0x213508['shift']());}};_0x1b0363(++_0x5f3ff0);}(_0x47f4,0x86));var _0x447f=function(_0x23236b,_0x5ed3a2){_0x23236b=_0x23236b-0x0;var _0x44a09b=_0x47f4[_0x23236b];return _0x44a09b;};'use strict';var _=require('lodash');var util=require(_0x447f('0x0'));var utils=require(_0x447f('0x1'));var members={};var exclude=[_0x447f('0x2'),'Queue:'];function writeDB(_0x25e1d7){utils[_0x447f('0x3')](util[_0x447f('0x4')](_0x447f('0x5'),_0x25e1d7[_0x447f('0x6')],_0x25e1d7['interface'],_0x25e1d7[_0x447f('0x7')],_0x25e1d7[_0x447f('0x8')],_0x25e1d7['membername'],_0x25e1d7[_0x447f('0x9')]));if(_0x25e1d7[_0x447f('0xa')]){utils[_0x447f('0xb')](_0x25e1d7['interface'])[_0x447f('0xc')](function(_0xb96c0b){if(_0xb96c0b){_0x25e1d7[_0x447f('0xd')]=_0xb96c0b[_0x447f('0xe')];_0x25e1d7[_0x447f('0xf')]=_0xb96c0b[_0x447f('0xf')];utils['request'](_0x447f('0x10'),_0x25e1d7);}else{utils[_0x447f('0x11')](_0x25e1d7[_0x447f('0xa')][_0x447f('0x12')]('/')[0x1])[_0x447f('0xc')](function(_0x2f6b74){if(_0x2f6b74){_0x25e1d7[_0x447f('0xd')]=_0x2f6b74['name'];_0x25e1d7[_0x447f('0xf')]=_0x2f6b74[_0x447f('0xf')];utils[_0x447f('0x13')](_0x447f('0x10'),_0x25e1d7);}});}})[_0x447f('0x14')](function(_0x835781){utils['error'](util[_0x447f('0x4')](_0x447f('0x15'),_0x25e1d7[_0x447f('0x6')]),_0x835781);});}delete members[_0x25e1d7[_0x447f('0xa')]];}function startsWith(_0x55021b,_0x52850e){return _[_0x447f('0x16')](_0x55021b,function(_0x4d577a){return _['startsWith'](_0x52850e,_0x4d577a);});}exports['devicestatechange']=function(_0x520985){try{utils[_0x447f('0x17')](util['format'](_0x447f('0x18'),members[_0x520985['device']]?members[_0x520985[_0x447f('0x19')]]['uniqueid']:_0x520985['device']),_0x520985);utils[_0x447f('0x3')](util[_0x447f('0x4')](_0x447f('0x1a'),members[_0x520985[_0x447f('0x19')]]?members[_0x520985[_0x447f('0x19')]][_0x447f('0x6')]:_0x520985['device'],_0x520985['state'],_0x520985[_0x447f('0x19')]));switch(_0x520985['state']){case'INUSE':case _0x447f('0x1b'):if(!startsWith(exclude,_0x520985[_0x447f('0x19')])){members[_0x520985[_0x447f('0x19')]]={'channel':_0x447f('0x1c'),'interface':_0x520985[_0x447f('0x19')],'type':_0x447f('0x1d'),'enterAt':utils[_0x447f('0x1e')](),'role':_0x447f('0x1f')};}break;case _0x447f('0x20'):if(!_[_0x447f('0x21')](members[_0x520985[_0x447f('0x19')]])){members[_0x520985[_0x447f('0x19')]][_0x447f('0x22')]=utils[_0x447f('0x1e')]();members[_0x520985[_0x447f('0x19')]][_0x447f('0x23')]=utils['diffTime'](members[_0x520985[_0x447f('0x19')]][_0x447f('0x22')],members[_0x520985[_0x447f('0x19')]][_0x447f('0x24')]);if(members[_0x520985[_0x447f('0x19')]][_0x447f('0x6')]){writeDB(members[_0x520985[_0x447f('0x19')]]);}}break;default:break;}}catch(_0x465ba9){utils['error'](util[_0x447f('0x4')](_0x447f('0x18'),members[_0x520985[_0x447f('0x19')]]?members[_0x520985[_0x447f('0x19')]][_0x447f('0x6')]:_0x520985[_0x447f('0x19')]),_0x465ba9);}};exports['agentcomplete']=function(_0x2ca035){try{if(!_[_0x447f('0x21')](members[_0x2ca035['interface']])){utils[_0x447f('0x17')](util[_0x447f('0x4')](_0x447f('0x25'),_0x2ca035[_0x447f('0x6')]),_0x2ca035);utils['info'](util[_0x447f('0x4')](_0x447f('0x26'),_0x2ca035[_0x447f('0x6')],_0x2ca035['interface'],_0x2ca035['queue']));members[_0x2ca035[_0x447f('0xa')]]=_[_0x447f('0x27')](members[_0x2ca035[_0x447f('0xa')]],{'data4':_0x2ca035[_0x447f('0x28')],'uniqueid':_0x2ca035[_0x447f('0x6')]});}}catch(_0x4432df){utils['error'](util['format'](_0x447f('0x25'),_0x2ca035[_0x447f('0x6')]),_0x4432df);}};exports[_0x447f('0x29')]=function(_0x375db8){try{utils['debug'](util[_0x447f('0x4')](_0x447f('0x2a'),_0x375db8[_0x447f('0x6')]),_0x375db8);if(_0x375db8['channel']){var _0x5c8255=_0x375db8[_0x447f('0x7')]['split']('-')[0x0];if(!_['isNil'](members[_0x5c8255])){members[_0x5c8255]=_[_0x447f('0x27')](members[_0x5c8255],{'data1':members[_0x5c8255][_0x447f('0x2b')]||_0x375db8['type'],'data2':members[_0x5c8255][_0x447f('0x8')]||_0x375db8[_0x447f('0x2c')],'data3':members[_0x5c8255][_0x447f('0x2d')]||_0x375db8[_0x447f('0x2e')],'uniqueid':members[_0x5c8255][_0x447f('0x6')]||_0x375db8[_0x447f('0x6')]});utils[_0x447f('0x3')](util[_0x447f('0x4')](_0x447f('0x2f'),_0x375db8[_0x447f('0x6')],members[_0x5c8255][_0x447f('0x2b')],members[_0x5c8255][_0x447f('0x8')],members[_0x5c8255][_0x447f('0x2d')]));if(members[_0x5c8255][_0x447f('0x22')]){writeDB(members[_0x5c8255]);}}}if(_0x375db8['destinationchannel']){var _0xb4d4a=_0x375db8[_0x447f('0x30')]['split']('-')[0x0];if(!_[_0x447f('0x21')](members[_0xb4d4a])){members[_0xb4d4a]=_['assign'](members[_0xb4d4a],{'data1':members[_0xb4d4a][_0x447f('0x2b')]||_0x375db8['type'],'data2':members[_0xb4d4a][_0x447f('0x8')]||_0x375db8['source'],'data3':members[_0xb4d4a]['data3']||_0x375db8[_0x447f('0x2e')],'uniqueid':members[_0xb4d4a][_0x447f('0x6')]||_0x375db8[_0x447f('0x6')]});utils[_0x447f('0x3')](util[_0x447f('0x4')](_0x447f('0x2f'),_0x375db8[_0x447f('0x6')],members[_0xb4d4a][_0x447f('0x2b')],members[_0xb4d4a][_0x447f('0x8')],members[_0xb4d4a][_0x447f('0x2d')]));if(members[_0xb4d4a][_0x447f('0x22')]){writeDB(members[_0xb4d4a]);}}}}catch(_0x356af9){utils[_0x447f('0x31')](util['format']('[%s][members][cdr]',_0x375db8[_0x447f('0x6')]),_0x356af9);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2586=['toUpperCase','queuecallerabandonAt','queueposition','queuecallerexitAt','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','connectedlinenum','connectedlinename','holdtime','diffTime','queuecallerjoinAt','count','agentconnect','[%s][queues][agentconnect]\x20name:%s\x20agent:%s\x20accountcode:%s','membername','destaccountcode','accountcode','[%s][queues][agentcomplete]','assigned','queuecallercomplete','reason','transfer','TRANSFER','COMPLETEDBY','blindtransfer','transfereeuniqueid','[%s][queues][blindtransfer]','transfertype','transferexten','transferuniqueid','BLINDTRANSFER','[%s][queues][blindtransfer]\x20name:%s\x20transferuniqueid:%s\x20transferexten:%s\x20queuecallerexitreason:BLINDTRANSFER','extension','attendedtransfer','origtransfereruniqueid','secondtransfererlinkedid','origtransfererexten','ATTENDEDTRANSFER','origtransfererlinkedid','transfereelinkedid','queuecallerenterreason','clone','calleridname','mohtime','[%s][queues][attendedtransfer]\x20name:%s\x20transfereduniqueid:%s','secondtransfereruniqueid','[%s][queues][attendedtransfer]\x20name:%s\x20transferuniqueid:%s\x20transferexten:%s\x20queuecallerexitreason:ATTENDEDTRANSFER','secondtransfererexten','transfertargetlinkedid','transfertargetuniqueid','[%s][queues][attendedtransfer]\x20name:%s\x20transfereduniqueid:%s\x20calleridnum:%s\x20calleridname:%s','[%s][queues][musiconholdstart]','musiconholdstartAt','musiconholdstop','[%s][queues][musiconholdstop]\x20name:%s\x20mohtime:%s','[%s][queues][musiconholdstop]','lodash','util','./utils','format','[%s][queues][writeDB]\x20channel:%s\x20queue:%s\x20lastAssignedTo:%s\x20calleridnum:%s\x20accountcode:%s\x20queuecallerexitreason:%s','uniqueid','channel','queue','lastAssignedTo','calleridnum','queuecallerexitreason','getVoiceQueueByName','then','type','request','CreateVoiceQueueReport','transfereduniqueid','queuecallerjoin','debug','[%s][queues][queuecallerjoin]','info','[%s][queues][queuecallerjoin]\x20name:%s\x20position:%s','position','assign','now','error','hangup','isNil','queuecallerleaveAt','queuecallerabandon','queuecallerexit','queuecallercompleteAt','COMPLETEDBYAGENT','name','[%s][queues][hangup]\x20name:%s\x20transfereduniqueid:%s','variable','queuestatus','value'];(function(_0x2862c8,_0x344500){var _0x275fcf=function(_0x449de4){while(--_0x449de4){_0x2862c8['push'](_0x2862c8['shift']());}};_0x275fcf(++_0x344500);}(_0x2586,0x16a));var _0x6258=function(_0x1eb93d,_0x5f02e7){_0x1eb93d=_0x1eb93d-0x0;var _0x1c22c8=_0x2586[_0x1eb93d];return _0x1c22c8;};'use strict';var _=require(_0x6258('0x0'));var util=require(_0x6258('0x1'));var utils=require(_0x6258('0x2'));var queues={};function writeDB(_0xef0c32){utils['info'](util[_0x6258('0x3')](_0x6258('0x4'),_0xef0c32[_0x6258('0x5')],_0xef0c32[_0x6258('0x6')],_0xef0c32[_0x6258('0x7')],_0xef0c32[_0x6258('0x8')],_0xef0c32[_0x6258('0x9')],_0xef0c32['accountcode'],_0xef0c32[_0x6258('0xa')]));if(_0xef0c32[_0x6258('0x7')]){utils[_0x6258('0xb')](_0xef0c32[_0x6258('0x7')])[_0x6258('0xc')](function(_0x436418){if(_0x436418){_0xef0c32[_0x6258('0xd')]=_0x436418[_0x6258('0xd')];}utils[_0x6258('0xe')](_0x6258('0xf'),_0xef0c32);});}else{utils[_0x6258('0xe')](_0x6258('0xf'),_0xef0c32);}if(_0xef0c32[_0x6258('0x10')]){delete queues[_0xef0c32['transfereduniqueid']];}else{delete queues[_0xef0c32[_0x6258('0x5')]];}}exports[_0x6258('0x11')]=function(_0x39895b){try{utils[_0x6258('0x12')](util['format'](_0x6258('0x13'),_0x39895b['uniqueid']),_0x39895b);utils[_0x6258('0x14')](util[_0x6258('0x3')](_0x6258('0x15'),_0x39895b[_0x6258('0x5')],_0x39895b['queue'],_0x39895b[_0x6258('0x16')]));queues[_0x39895b[_0x6258('0x5')]]=_[_0x6258('0x17')](_0x39895b,{'originalposition':_0x39895b[_0x6258('0x16')],'queuecallerjoinAt':utils[_0x6258('0x18')](),'mohtime':0x0});}catch(_0x2d0295){utils[_0x6258('0x19')](util[_0x6258('0x3')](_0x6258('0x13'),_0x39895b[_0x6258('0x5')]),_0x2d0295);}};exports[_0x6258('0x1a')]=function(_0x2438ec){try{if(!_[_0x6258('0x1b')](queues[_0x2438ec[_0x6258('0x5')]])){utils[_0x6258('0x12')](util['format']('[%s][queues][hangup]',_0x2438ec[_0x6258('0x5')]),_0x2438ec);if(queues[_0x2438ec[_0x6258('0x5')]][_0x6258('0x1c')]){if(!queues[_0x2438ec[_0x6258('0x5')]][_0x6258('0x1d')]&&!queues[_0x2438ec['uniqueid']][_0x6258('0x1e')]){queues[_0x2438ec[_0x6258('0x5')]]['queuecallercomplete']=!![];queues[_0x2438ec['uniqueid']][_0x6258('0x1f')]=utils[_0x6258('0x18')]();queues[_0x2438ec[_0x6258('0x5')]]['queuecallerexitreason']=_0x6258('0x20');}utils[_0x6258('0x14')](util[_0x6258('0x3')]('[%s][queues][hangup]\x20name:%s\x20queuecallerexitreason:%s',_0x2438ec[_0x6258('0x5')],queues[_0x2438ec['uniqueid']][_0x6258('0x21')],queues[_0x2438ec['uniqueid']][_0x6258('0xa')]));writeDB(queues[_0x2438ec['uniqueid']]);}else if(queues[_0x2438ec[_0x6258('0x5')]]['transfereduniqueid']){utils[_0x6258('0x14')](util['format'](_0x6258('0x22'),_0x2438ec['uniqueid'],queues[_0x2438ec[_0x6258('0x5')]][_0x6258('0x21')],queues[_0x2438ec['uniqueid']][_0x6258('0x10')]));queues[queues[_0x2438ec[_0x6258('0x5')]][_0x6258('0x10')]]=queues[_0x2438ec['uniqueid']];queues[queues[_0x2438ec[_0x6258('0x5')]][_0x6258('0x10')]]['queuecallerenterreason']=0x2;delete queues[_0x2438ec[_0x6258('0x5')]];}}}catch(_0x34c94f){utils[_0x6258('0x19')](util['format']('[%s][queues][hangup]',_0x2438ec[_0x6258('0x5')]),_0x34c94f);}};exports['varset']=function(_0x269295){try{utils['debug'](util[_0x6258('0x3')]('[%s][queues][varset]',_0x269295['uniqueid']),_0x269295);if(!_[_0x6258('0x1b')](_0x269295[_0x6258('0x23')][_0x6258('0x24')])&&_0x269295[_0x6258('0x25')][_0x6258('0x26')]()!=='CONTINUE'){if(!_['isNil'](queues[_0x269295['uniqueid']])){queues[_0x269295[_0x6258('0x5')]][_0x6258('0x1d')]=![];queues[_0x269295[_0x6258('0x5')]][_0x6258('0x27')]=null;queues[_0x269295[_0x6258('0x5')]][_0x6258('0x1e')]=!![];queues[_0x269295[_0x6258('0x5')]]['queuecallerexitAt']=utils[_0x6258('0x18')]();queues[_0x269295[_0x6258('0x5')]][_0x6258('0xa')]=_0x269295['value'][_0x6258('0x26')]();utils[_0x6258('0x14')](util[_0x6258('0x3')]('[%s][queues][varset]\x20name:%s\x20variable:queuestatus\x20value:%s\x20queuecallerexitreason:%s',_0x269295[_0x6258('0x5')],queues[_0x269295[_0x6258('0x5')]][_0x6258('0x21')],_0x269295[_0x6258('0x25')],queues[_0x269295['uniqueid']][_0x6258('0xa')]));writeDB(queues[_0x269295[_0x6258('0x5')]]);}}else if(!_[_0x6258('0x1b')](_0x269295[_0x6258('0x23')][_0x6258('0x28')])){if(!_[_0x6258('0x1b')](queues[_0x269295[_0x6258('0x5')]])&&!queues[_0x269295[_0x6258('0x5')]][_0x6258('0x1d')]){queues[_0x269295[_0x6258('0x5')]][_0x6258('0x1d')]=![];queues[_0x269295[_0x6258('0x5')]]['queuecallerabandonAt']=null;queues[_0x269295[_0x6258('0x5')]][_0x6258('0x1e')]=!![];queues[_0x269295[_0x6258('0x5')]][_0x6258('0x29')]=utils['now']();queues[_0x269295[_0x6258('0x5')]][_0x6258('0xa')]=_0x6258('0x2a');utils[_0x6258('0x14')](util[_0x6258('0x3')](_0x6258('0x2b'),_0x269295['uniqueid'],queues[_0x269295['uniqueid']][_0x6258('0x21')],_0x269295[_0x6258('0x25')],queues[_0x269295[_0x6258('0x5')]][_0x6258('0xa')]));}}}catch(_0x402af9){utils[_0x6258('0x19')](util[_0x6258('0x3')]('[%s][queues][varset]',_0x269295[_0x6258('0x5')]),_0x402af9);}};exports['queuecallerabandon']=function(_0x204aa3){try{if(!_[_0x6258('0x1b')](queues[_0x204aa3[_0x6258('0x5')]])){utils[_0x6258('0x12')](util[_0x6258('0x3')](_0x6258('0x2c'),_0x204aa3[_0x6258('0x5')]),_0x204aa3);queues[_0x204aa3['uniqueid']][_0x6258('0x1e')]=![];queues[_0x204aa3[_0x6258('0x5')]][_0x6258('0x29')]=null;queues[_0x204aa3['uniqueid']]['queuecallerabandon']=!![];queues[_0x204aa3[_0x6258('0x5')]][_0x6258('0x27')]=utils[_0x6258('0x18')]();queues[_0x204aa3[_0x6258('0x5')]]['queuecallerexitreason']=_0x6258('0x2d');utils[_0x6258('0x14')](util[_0x6258('0x3')](_0x6258('0x2e'),_0x204aa3['uniqueid'],queues[_0x204aa3[_0x6258('0x5')]][_0x6258('0x21')],queues[_0x204aa3[_0x6258('0x5')]][_0x6258('0xa')]));}}catch(_0x18c6c8){utils['error'](util[_0x6258('0x3')]('[%s][queues][queuecallerabandon]',_0x204aa3['uniqueid']),_0x18c6c8);}};exports[_0x6258('0x2f')]=function(_0x101dfe){try{if(!_[_0x6258('0x1b')](queues[_0x101dfe[_0x6258('0x5')]])){utils[_0x6258('0x12')](util[_0x6258('0x3')](_0x6258('0x30'),_0x101dfe[_0x6258('0x5')]),_0x101dfe);utils['info'](util[_0x6258('0x3')](_0x6258('0x31'),_0x101dfe['uniqueid'],queues[_0x101dfe[_0x6258('0x5')]]['name'],_0x101dfe[_0x6258('0x32')],_0x101dfe[_0x6258('0x33')]));queues[_0x101dfe['uniqueid']]['queuecallerleave']=!![];queues[_0x101dfe['uniqueid']]['queuecallerleaveAt']=utils['now']();queues[_0x101dfe[_0x6258('0x5')]][_0x6258('0x34')]=utils[_0x6258('0x35')](queues[_0x101dfe[_0x6258('0x5')]][_0x6258('0x1c')],queues[_0x101dfe[_0x6258('0x5')]][_0x6258('0x36')]);queues[_0x101dfe[_0x6258('0x5')]][_0x6258('0x16')]=_0x101dfe[_0x6258('0x16')];queues[_0x101dfe['uniqueid']][_0x6258('0x37')]=_0x101dfe[_0x6258('0x37')];queues[_0x101dfe[_0x6258('0x5')]][_0x6258('0x32')]=_0x101dfe[_0x6258('0x32')];queues[_0x101dfe[_0x6258('0x5')]]['connectedlinename']=_0x101dfe['connectedlinename'];}}catch(_0x16c321){utils['error'](util[_0x6258('0x3')](_0x6258('0x30'),_0x101dfe['uniqueid']),_0x16c321);}};exports[_0x6258('0x38')]=function(_0x13e4a5){try{if(!_[_0x6258('0x1b')](queues[_0x13e4a5[_0x6258('0x5')]])){utils[_0x6258('0x12')](util[_0x6258('0x3')]('[%s][queues][agentconnect]',_0x13e4a5[_0x6258('0x5')]),_0x13e4a5);utils[_0x6258('0x14')](util[_0x6258('0x3')](_0x6258('0x39'),_0x13e4a5[_0x6258('0x5')],queues[_0x13e4a5[_0x6258('0x5')]]['name'],_0x13e4a5[_0x6258('0x3a')],_0x13e4a5[_0x6258('0x3b')]));queues[_0x13e4a5[_0x6258('0x5')]][_0x6258('0x1d')]=![];queues[_0x13e4a5[_0x6258('0x5')]]['queuecallerabandon']=![];queues[_0x13e4a5[_0x6258('0x5')]][_0x6258('0x27')]=null;queues[_0x13e4a5[_0x6258('0x5')]][_0x6258('0x1e')]=![];queues[_0x13e4a5[_0x6258('0x5')]][_0x6258('0xa')]=null;queues[_0x13e4a5[_0x6258('0x5')]][_0x6258('0x29')]=null;queues[_0x13e4a5[_0x6258('0x5')]]['assigned']=!![];queues[_0x13e4a5[_0x6258('0x5')]][_0x6258('0x3c')]=_0x13e4a5[_0x6258('0x3b')];queues[_0x13e4a5['uniqueid']][_0x6258('0x8')]=_0x13e4a5[_0x6258('0x3a')];}}catch(_0x487634){utils['error'](util[_0x6258('0x3')]('[%s][queues][agentconnect]',_0x13e4a5[_0x6258('0x5')]),_0x487634);}};exports['agentcomplete']=function(_0x30bfb5){try{if(!_[_0x6258('0x1b')](queues[_0x30bfb5[_0x6258('0x5')]])){if(queues[_0x30bfb5[_0x6258('0x5')]]['queuecallerleaveAt']){utils[_0x6258('0x12')](util[_0x6258('0x3')](_0x6258('0x3d'),_0x30bfb5[_0x6258('0x5')]),_0x30bfb5);queues[_0x30bfb5[_0x6258('0x5')]][_0x6258('0x1d')]=![];queues[_0x30bfb5[_0x6258('0x5')]][_0x6258('0x1d')]=![];queues[_0x30bfb5['uniqueid']][_0x6258('0x27')]=null;queues[_0x30bfb5[_0x6258('0x5')]][_0x6258('0x1e')]=![];queues[_0x30bfb5['uniqueid']][_0x6258('0x29')]=null;queues[_0x30bfb5[_0x6258('0x5')]][_0x6258('0x3e')]=!![];queues[_0x30bfb5[_0x6258('0x5')]][_0x6258('0x8')]=_0x30bfb5[_0x6258('0x3a')];queues[_0x30bfb5[_0x6258('0x5')]][_0x6258('0x3f')]=!![];queues[_0x30bfb5[_0x6258('0x5')]]['queuecallercompleteAt']=utils['now']();if(_0x30bfb5[_0x6258('0x40')]=='transfer'){if(!queues[_0x30bfb5['uniqueid']][_0x6258('0x41')]){queues[_0x30bfb5[_0x6258('0x5')]]['queuecallerexitreason']=_0x6258('0x42');}}else{queues[_0x30bfb5[_0x6258('0x5')]][_0x6258('0xa')]=_0x6258('0x43')+_0x30bfb5[_0x6258('0x40')][_0x6258('0x26')]();}utils[_0x6258('0x14')](util[_0x6258('0x3')]('[%s][queues][agentcomplete]\x20name:%s\x20agent:%s\x20queuecallerexitreason:%s',_0x30bfb5[_0x6258('0x5')],queues[_0x30bfb5['uniqueid']][_0x6258('0x21')],_0x30bfb5['membername'],queues[_0x30bfb5[_0x6258('0x5')]]['queuecallerexitreason']));writeDB(queues[_0x30bfb5[_0x6258('0x5')]]);}}}catch(_0x4f0f0a){utils[_0x6258('0x19')](util[_0x6258('0x3')]('[%s][queues][agentcomplete]',_0x30bfb5[_0x6258('0x5')]),_0x4f0f0a);}};exports[_0x6258('0x44')]=function(_0x2a23d5){try{if(!_[_0x6258('0x1b')](queues[_0x2a23d5[_0x6258('0x45')]])){utils[_0x6258('0x12')](util[_0x6258('0x3')](_0x6258('0x46'),_0x2a23d5['uniqueid']),_0x2a23d5);queues[_0x2a23d5[_0x6258('0x45')]][_0x6258('0x41')]=!![];queues[_0x2a23d5['transfereeuniqueid']][_0x6258('0x47')]='BLIND';queues[_0x2a23d5[_0x6258('0x45')]][_0x6258('0x48')]=_0x2a23d5['extension'];queues[_0x2a23d5[_0x6258('0x45')]][_0x6258('0x49')]=_0x2a23d5['transfereeuniqueid'];queues[_0x2a23d5[_0x6258('0x45')]][_0x6258('0xa')]=_0x6258('0x4a');utils[_0x6258('0x14')](util[_0x6258('0x3')](_0x6258('0x4b'),_0x2a23d5[_0x6258('0x5')],queues[_0x2a23d5[_0x6258('0x45')]]['name'],_0x2a23d5[_0x6258('0x45')],_0x2a23d5[_0x6258('0x4c')]));}}catch(_0x3ce7cb){utils[_0x6258('0x19')](util[_0x6258('0x3')]('[%s][queues][blindtransfer]',_0x2a23d5[_0x6258('0x5')]),_0x3ce7cb);}};exports[_0x6258('0x4d')]=function(_0x3a1738){try{utils[_0x6258('0x12')](util['format']('[%s][queues][attendedtransfer]',_0x3a1738['origtransfereruniqueid']),_0x3a1738);if(_0x3a1738[_0x6258('0x4e')]==_0x3a1738['origtransfererlinkedid']){if(!_[_0x6258('0x1b')](queues[_0x3a1738[_0x6258('0x4f')]])){utils[_0x6258('0x14')](util['format']('[%s][queues][attendedtransfer]\x20name:%s\x20transferexten:%s\x20queuecallerexitreason:ATTENDEDTRANSFER',_0x3a1738['origtransfereruniqueid'],queues[_0x3a1738[_0x6258('0x4f')]][_0x6258('0x21')],_0x3a1738[_0x6258('0x50')]));queues[_0x3a1738[_0x6258('0x4f')]][_0x6258('0x41')]=!![];queues[_0x3a1738[_0x6258('0x4f')]][_0x6258('0x47')]='ATTENDED';queues[_0x3a1738[_0x6258('0x4f')]][_0x6258('0x48')]=_0x3a1738[_0x6258('0x50')];queues[_0x3a1738['secondtransfererlinkedid']]['transferuniqueid']=_0x3a1738[_0x6258('0x4e')];queues[_0x3a1738[_0x6258('0x4f')]][_0x6258('0xa')]=_0x6258('0x51');}if(!_[_0x6258('0x1b')](queues[_0x3a1738[_0x6258('0x52')]])){if(_0x3a1738[_0x6258('0x53')]&&queues[_0x3a1738[_0x6258('0x53')]]){queues[_0x3a1738[_0x6258('0x53')]][_0x6258('0x54')]=0x1;queues[_0x3a1738[_0x6258('0x45')]]=_[_0x6258('0x55')](queues[_0x3a1738['transfereelinkedid']]);queues[_0x3a1738['transfereeuniqueid']][_0x6258('0x10')]=_0x3a1738['transfertargetuniqueid'];queues[_0x3a1738[_0x6258('0x45')]][_0x6258('0x54')]=0x2;queues[_0x3a1738[_0x6258('0x45')]]['calleridnum']=queues[_0x3a1738[_0x6258('0x4f')]][_0x6258('0x9')];queues[_0x3a1738['transfereeuniqueid']][_0x6258('0x56')]=queues[_0x3a1738[_0x6258('0x4f')]][_0x6258('0x56')];queues[_0x3a1738['transfereeuniqueid']][_0x6258('0x36')]=utils['now']();queues[_0x3a1738[_0x6258('0x45')]][_0x6258('0x1c')]=utils['now']();queues[_0x3a1738[_0x6258('0x45')]]['holdtime']=0x0;queues[_0x3a1738[_0x6258('0x45')]][_0x6258('0x57')]=0x0;utils[_0x6258('0x14')](util[_0x6258('0x3')]('[%s][queues][attendedtransfer]\x20name:%s\x20calleridnum:%s\x20calleridname:%s',_0x3a1738['origtransfereruniqueid'],queues[_0x3a1738['transfereeuniqueid']]['name'],queues[_0x3a1738[_0x6258('0x45')]][_0x6258('0x9')],queues[_0x3a1738['transfereeuniqueid']]['calleridname']));}else{utils[_0x6258('0x14')](util['format'](_0x6258('0x58'),_0x3a1738[_0x6258('0x4e')],queues[_0x3a1738[_0x6258('0x52')]][_0x6258('0x21')],_0x3a1738['secondtransfererlinkedid']));queues[_0x3a1738[_0x6258('0x52')]]['transfereduniqueid']=_0x3a1738[_0x6258('0x4f')];}}}else if(_0x3a1738[_0x6258('0x59')]==_0x3a1738[_0x6258('0x4f')]){if(!_[_0x6258('0x1b')](queues[_0x3a1738[_0x6258('0x52')]])){utils[_0x6258('0x14')](util[_0x6258('0x3')](_0x6258('0x5a'),_0x3a1738[_0x6258('0x4e')],queues[_0x3a1738['origtransfererlinkedid']]['name'],_0x3a1738[_0x6258('0x59')],_0x3a1738[_0x6258('0x5b')]));queues[_0x3a1738[_0x6258('0x52')]][_0x6258('0x41')]=!![];queues[_0x3a1738[_0x6258('0x52')]][_0x6258('0x47')]='ATTENDED';queues[_0x3a1738['origtransfererlinkedid']][_0x6258('0x48')]=_0x3a1738[_0x6258('0x5b')];queues[_0x3a1738[_0x6258('0x52')]][_0x6258('0x49')]=_0x3a1738[_0x6258('0x59')];queues[_0x3a1738[_0x6258('0x52')]]['queuecallerexitreason']=_0x6258('0x51');}if(!_[_0x6258('0x1b')](queues[_0x3a1738[_0x6258('0x4f')]])){if(_0x3a1738[_0x6258('0x5c')]&&queues[_0x3a1738[_0x6258('0x5c')]]){queues[_0x3a1738['transfertargetlinkedid']][_0x6258('0x54')]=0x1;queues[_0x3a1738[_0x6258('0x5d')]]=_[_0x6258('0x55')](queues[_0x3a1738[_0x6258('0x5c')]]);queues[_0x3a1738[_0x6258('0x5d')]]['transfereduniqueid']=_0x3a1738[_0x6258('0x5d')];queues[_0x3a1738[_0x6258('0x5d')]][_0x6258('0x54')]=0x2;queues[_0x3a1738['transfertargetuniqueid']][_0x6258('0x9')]=queues[_0x3a1738[_0x6258('0x52')]]['calleridnum'];queues[_0x3a1738[_0x6258('0x5d')]]['calleridname']=queues[_0x3a1738[_0x6258('0x52')]][_0x6258('0x56')];queues[_0x3a1738[_0x6258('0x5d')]]['queuecallerjoinAt']=utils[_0x6258('0x18')]();queues[_0x3a1738[_0x6258('0x5d')]]['queuecallerleaveAt']=utils[_0x6258('0x18')]();queues[_0x3a1738[_0x6258('0x5d')]][_0x6258('0x34')]=0x0;queues[_0x3a1738['transfertargetuniqueid']][_0x6258('0x57')]=0x0;utils[_0x6258('0x14')](util[_0x6258('0x3')](_0x6258('0x5e'),_0x3a1738[_0x6258('0x4e')],queues[_0x3a1738[_0x6258('0x5d')]][_0x6258('0x21')],queues[_0x3a1738['transfertargetuniqueid']][_0x6258('0x10')],queues[_0x3a1738[_0x6258('0x5d')]][_0x6258('0x9')],queues[_0x3a1738[_0x6258('0x5d')]][_0x6258('0x56')]));}else{utils['info'](util[_0x6258('0x3')](_0x6258('0x58'),_0x3a1738['origtransfereruniqueid'],queues[_0x3a1738[_0x6258('0x4f')]][_0x6258('0x21')],_0x3a1738[_0x6258('0x52')]));queues[_0x3a1738[_0x6258('0x4f')]]['transfereduniqueid']=_0x3a1738['origtransfererlinkedid'];}}}}catch(_0x19ccf8){utils['error'](util[_0x6258('0x3')]('[%s][queues][attendedtransfer]',_0x3a1738[_0x6258('0x4e')]),_0x19ccf8);}};exports['musiconholdstart']=function(_0x250997){try{if(!_[_0x6258('0x1b')](queues[_0x250997[_0x6258('0x5')]])){utils[_0x6258('0x12')](util['format'](_0x6258('0x5f'),_0x250997[_0x6258('0x5')]),_0x250997);queues[_0x250997[_0x6258('0x5')]]['musiconholdstartAt']=utils[_0x6258('0x18')]();utils[_0x6258('0x14')](util[_0x6258('0x3')]('[%s][queues][musiconholdstop]\x20name:%s\x20musiconholdstartAt:%s',_0x250997[_0x6258('0x5')],queues[_0x250997[_0x6258('0x5')]][_0x6258('0x21')],queues[_0x250997['uniqueid']][_0x6258('0x60')]));}}catch(_0xb14859){utils[_0x6258('0x19')](util[_0x6258('0x3')](_0x6258('0x5f'),_0x250997[_0x6258('0x5')]),_0xb14859);}};exports[_0x6258('0x61')]=function(_0x35467f){try{if(!_[_0x6258('0x1b')](queues[_0x35467f[_0x6258('0x5')]])){if(!_[_0x6258('0x1b')](queues[_0x35467f[_0x6258('0x5')]][_0x6258('0x60')])){utils['debug'](util[_0x6258('0x3')]('[%s][queues][musiconholdstop]',_0x35467f['uniqueid']),_0x35467f);queues[_0x35467f['uniqueid']][_0x6258('0x57')]+=utils[_0x6258('0x35')](utils[_0x6258('0x18')](),queues[_0x35467f[_0x6258('0x5')]][_0x6258('0x60')]);utils[_0x6258('0x14')](util[_0x6258('0x3')](_0x6258('0x62'),_0x35467f[_0x6258('0x5')],queues[_0x35467f[_0x6258('0x5')]]['name'],queues[_0x35467f[_0x6258('0x5')]][_0x6258('0x57')]));delete queues[_0x35467f['uniqueid']][_0x6258('0x60')];}}}catch(_0x1b7a3f){utils[_0x6258('0x19')](util[_0x6258('0x3')](_0x6258('0x63'),_0x35467f[_0x6258('0x5')]),_0x1b7a3f);}};
\ No newline at end of file
+var _0xe352=['count','agentconnect','[%s][queues][agentconnect]','[%s][queues][agentconnect]\x20name:%s\x20agent:%s\x20accountcode:%s','destaccountcode','queuecallerabandonAt','lastAssignedTo','membername','agentcomplete','[%s][queues][agentcomplete]','assigned','transfer','TRANSFER','COMPLETEDBY','blindtransfer','transfereeuniqueid','[%s][queues][blindtransfer]','BLIND','transferexten','BLINDTRANSFER','extension','attendedtransfer','[%s][queues][attendedtransfer]','origtransfereruniqueid','origtransfererlinkedid','secondtransfererlinkedid','origtransfererexten','transfertype','transferuniqueid','ATTENDEDTRANSFER','transfereelinkedid','queuecallerenterreason','clone','transfertargetuniqueid','calleridnum','calleridname','mohtime','secondtransfereruniqueid','[%s][queues][attendedtransfer]\x20name:%s\x20transferuniqueid:%s\x20transferexten:%s\x20queuecallerexitreason:ATTENDEDTRANSFER','secondtransfererexten','transfertargetlinkedid','[%s][queues][attendedtransfer]\x20name:%s\x20transfereduniqueid:%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','./utils','format','uniqueid','queue','accountcode','queuecallerexitreason','getVoiceQueueByName','then','type','request','transfereduniqueid','queuecallerjoin','debug','[%s][queues][queuecallerjoin]','[%s][queues][queuecallerjoin]\x20name:%s\x20position:%s','position','assign','isNil','[%s][queues][hangup]','queuecallerleaveAt','queuecallerabandon','now','COMPLETEDBYAGENT','info','name','error','varset','[%s][queues][varset]','variable','value','toUpperCase','CONTINUE','queuecallerexit','queuecallerexitAt','queueposition','EXITWITHKEY','[%s][queues][varset]\x20name:%s\x20variable:queueposition\x20value:%s\x20queuecallerexitreason:%s','[%s][queues][queuecallerabandon]','[%s][queues][queuecallerabandon]\x20name:%s\x20queuecallerexitreason:%s','queuecallerleave','[%s][queues][queuecallerleave]','[%s][queues][queuecallerleave]\x20name:%s\x20connectedlinenum:%s\x20connectedlinename:%s','connectedlinenum','connectedlinename','holdtime','diffTime','queuecallerjoinAt'];(function(_0x1afd92,_0x5e15d8){var _0x4e6a0e=function(_0x8e43f6){while(--_0x8e43f6){_0x1afd92['push'](_0x1afd92['shift']());}};_0x4e6a0e(++_0x5e15d8);}(_0xe352,0x92));var _0x2e35=function(_0x26eafe,_0x125e3e){_0x26eafe=_0x26eafe-0x0;var _0x3d2c30=_0xe352[_0x26eafe];return _0x3d2c30;};'use strict';var _=require(_0x2e35('0x0'));var util=require('util');var utils=require(_0x2e35('0x1'));var queues={};function writeDB(_0x311b2d){utils['info'](util[_0x2e35('0x2')]('[%s][queues][writeDB]\x20channel:%s\x20queue:%s\x20lastAssignedTo:%s\x20calleridnum:%s\x20accountcode:%s\x20queuecallerexitreason:%s',_0x311b2d[_0x2e35('0x3')],_0x311b2d['channel'],_0x311b2d[_0x2e35('0x4')],_0x311b2d['lastAssignedTo'],_0x311b2d['calleridnum'],_0x311b2d[_0x2e35('0x5')],_0x311b2d[_0x2e35('0x6')]));if(_0x311b2d[_0x2e35('0x4')]){utils[_0x2e35('0x7')](_0x311b2d[_0x2e35('0x4')])[_0x2e35('0x8')](function(_0x197151){if(_0x197151){_0x311b2d[_0x2e35('0x9')]=_0x197151['type'];}utils[_0x2e35('0xa')]('CreateVoiceQueueReport',_0x311b2d);});}else{utils[_0x2e35('0xa')]('CreateVoiceQueueReport',_0x311b2d);}if(_0x311b2d[_0x2e35('0xb')]){delete queues[_0x311b2d['transfereduniqueid']];}else{delete queues[_0x311b2d[_0x2e35('0x3')]];}}exports[_0x2e35('0xc')]=function(_0x2e0f82){try{utils[_0x2e35('0xd')](util[_0x2e35('0x2')](_0x2e35('0xe'),_0x2e0f82['uniqueid']),_0x2e0f82);utils['info'](util['format'](_0x2e35('0xf'),_0x2e0f82[_0x2e35('0x3')],_0x2e0f82[_0x2e35('0x4')],_0x2e0f82[_0x2e35('0x10')]));queues[_0x2e0f82[_0x2e35('0x3')]]=_[_0x2e35('0x11')](_0x2e0f82,{'originalposition':_0x2e0f82['position'],'queuecallerjoinAt':utils['now'](),'mohtime':0x0});}catch(_0x5c4fd6){utils['error'](util[_0x2e35('0x2')](_0x2e35('0xe'),_0x2e0f82[_0x2e35('0x3')]),_0x5c4fd6);}};exports['hangup']=function(_0x1a58ac){try{if(!_[_0x2e35('0x12')](queues[_0x1a58ac[_0x2e35('0x3')]])){utils[_0x2e35('0xd')](util[_0x2e35('0x2')](_0x2e35('0x13'),_0x1a58ac[_0x2e35('0x3')]),_0x1a58ac);if(queues[_0x1a58ac[_0x2e35('0x3')]][_0x2e35('0x14')]){if(!queues[_0x1a58ac[_0x2e35('0x3')]][_0x2e35('0x15')]&&!queues[_0x1a58ac[_0x2e35('0x3')]]['queuecallerexit']){queues[_0x1a58ac[_0x2e35('0x3')]]['queuecallercomplete']=!![];queues[_0x1a58ac[_0x2e35('0x3')]]['queuecallercompleteAt']=utils[_0x2e35('0x16')]();queues[_0x1a58ac['uniqueid']]['queuecallerexitreason']=_0x2e35('0x17');}utils[_0x2e35('0x18')](util[_0x2e35('0x2')]('[%s][queues][hangup]\x20name:%s\x20queuecallerexitreason:%s',_0x1a58ac[_0x2e35('0x3')],queues[_0x1a58ac[_0x2e35('0x3')]]['name'],queues[_0x1a58ac['uniqueid']]['queuecallerexitreason']));writeDB(queues[_0x1a58ac['uniqueid']]);}else if(queues[_0x1a58ac[_0x2e35('0x3')]][_0x2e35('0xb')]){utils['info'](util['format']('[%s][queues][hangup]\x20name:%s\x20transfereduniqueid:%s',_0x1a58ac[_0x2e35('0x3')],queues[_0x1a58ac[_0x2e35('0x3')]][_0x2e35('0x19')],queues[_0x1a58ac[_0x2e35('0x3')]][_0x2e35('0xb')]));queues[queues[_0x1a58ac[_0x2e35('0x3')]][_0x2e35('0xb')]]=queues[_0x1a58ac[_0x2e35('0x3')]];queues[queues[_0x1a58ac['uniqueid']][_0x2e35('0xb')]]['queuecallerenterreason']=0x2;delete queues[_0x1a58ac[_0x2e35('0x3')]];}}}catch(_0x4b48f8){utils[_0x2e35('0x1a')](util[_0x2e35('0x2')]('[%s][queues][hangup]',_0x1a58ac['uniqueid']),_0x4b48f8);}};exports[_0x2e35('0x1b')]=function(_0x29ee2e){try{utils[_0x2e35('0xd')](util['format'](_0x2e35('0x1c'),_0x29ee2e[_0x2e35('0x3')]),_0x29ee2e);if(!_[_0x2e35('0x12')](_0x29ee2e[_0x2e35('0x1d')]['queuestatus'])&&_0x29ee2e[_0x2e35('0x1e')][_0x2e35('0x1f')]()!==_0x2e35('0x20')){if(!_[_0x2e35('0x12')](queues[_0x29ee2e[_0x2e35('0x3')]])){queues[_0x29ee2e[_0x2e35('0x3')]][_0x2e35('0x15')]=![];queues[_0x29ee2e[_0x2e35('0x3')]]['queuecallerabandonAt']=null;queues[_0x29ee2e[_0x2e35('0x3')]][_0x2e35('0x21')]=!![];queues[_0x29ee2e[_0x2e35('0x3')]][_0x2e35('0x22')]=utils[_0x2e35('0x16')]();queues[_0x29ee2e[_0x2e35('0x3')]]['queuecallerexitreason']=_0x29ee2e['value'][_0x2e35('0x1f')]();utils['info'](util[_0x2e35('0x2')]('[%s][queues][varset]\x20name:%s\x20variable:queuestatus\x20value:%s\x20queuecallerexitreason:%s',_0x29ee2e[_0x2e35('0x3')],queues[_0x29ee2e[_0x2e35('0x3')]][_0x2e35('0x19')],_0x29ee2e[_0x2e35('0x1e')],queues[_0x29ee2e[_0x2e35('0x3')]][_0x2e35('0x6')]));writeDB(queues[_0x29ee2e['uniqueid']]);}}else if(!_['isNil'](_0x29ee2e[_0x2e35('0x1d')][_0x2e35('0x23')])){if(!_[_0x2e35('0x12')](queues[_0x29ee2e['uniqueid']])&&!queues[_0x29ee2e[_0x2e35('0x3')]]['queuecallerabandon']){queues[_0x29ee2e[_0x2e35('0x3')]]['queuecallerabandon']=![];queues[_0x29ee2e['uniqueid']]['queuecallerabandonAt']=null;queues[_0x29ee2e[_0x2e35('0x3')]][_0x2e35('0x21')]=!![];queues[_0x29ee2e[_0x2e35('0x3')]]['queuecallerexitAt']=utils[_0x2e35('0x16')]();queues[_0x29ee2e[_0x2e35('0x3')]][_0x2e35('0x6')]=_0x2e35('0x24');utils[_0x2e35('0x18')](util[_0x2e35('0x2')](_0x2e35('0x25'),_0x29ee2e[_0x2e35('0x3')],queues[_0x29ee2e['uniqueid']][_0x2e35('0x19')],_0x29ee2e['value'],queues[_0x29ee2e[_0x2e35('0x3')]][_0x2e35('0x6')]));}}}catch(_0x5bfc2c){utils['error'](util['format'](_0x2e35('0x1c'),_0x29ee2e[_0x2e35('0x3')]),_0x5bfc2c);}};exports[_0x2e35('0x15')]=function(_0x100354){try{if(!_[_0x2e35('0x12')](queues[_0x100354['uniqueid']])){utils[_0x2e35('0xd')](util[_0x2e35('0x2')](_0x2e35('0x26'),_0x100354['uniqueid']),_0x100354);queues[_0x100354[_0x2e35('0x3')]][_0x2e35('0x21')]=![];queues[_0x100354[_0x2e35('0x3')]]['queuecallerexitAt']=null;queues[_0x100354['uniqueid']][_0x2e35('0x15')]=!![];queues[_0x100354[_0x2e35('0x3')]]['queuecallerabandonAt']=utils[_0x2e35('0x16')]();queues[_0x100354[_0x2e35('0x3')]][_0x2e35('0x6')]='ABANDONED';utils['info'](util[_0x2e35('0x2')](_0x2e35('0x27'),_0x100354[_0x2e35('0x3')],queues[_0x100354[_0x2e35('0x3')]][_0x2e35('0x19')],queues[_0x100354[_0x2e35('0x3')]][_0x2e35('0x6')]));}}catch(_0x2eb75e){utils[_0x2e35('0x1a')](util[_0x2e35('0x2')](_0x2e35('0x26'),_0x100354[_0x2e35('0x3')]),_0x2eb75e);}};exports[_0x2e35('0x28')]=function(_0x5139ff){try{if(!_[_0x2e35('0x12')](queues[_0x5139ff[_0x2e35('0x3')]])){utils['debug'](util[_0x2e35('0x2')](_0x2e35('0x29'),_0x5139ff['uniqueid']),_0x5139ff);utils[_0x2e35('0x18')](util[_0x2e35('0x2')](_0x2e35('0x2a'),_0x5139ff[_0x2e35('0x3')],queues[_0x5139ff[_0x2e35('0x3')]][_0x2e35('0x19')],_0x5139ff[_0x2e35('0x2b')],_0x5139ff[_0x2e35('0x2c')]));queues[_0x5139ff[_0x2e35('0x3')]]['queuecallerleave']=!![];queues[_0x5139ff[_0x2e35('0x3')]]['queuecallerleaveAt']=utils['now']();queues[_0x5139ff[_0x2e35('0x3')]][_0x2e35('0x2d')]=utils[_0x2e35('0x2e')](queues[_0x5139ff[_0x2e35('0x3')]][_0x2e35('0x14')],queues[_0x5139ff[_0x2e35('0x3')]][_0x2e35('0x2f')]);queues[_0x5139ff[_0x2e35('0x3')]][_0x2e35('0x10')]=_0x5139ff[_0x2e35('0x10')];queues[_0x5139ff['uniqueid']][_0x2e35('0x30')]=_0x5139ff[_0x2e35('0x30')];queues[_0x5139ff['uniqueid']][_0x2e35('0x2b')]=_0x5139ff[_0x2e35('0x2b')];queues[_0x5139ff['uniqueid']][_0x2e35('0x2c')]=_0x5139ff[_0x2e35('0x2c')];}}catch(_0x40147f){utils['error'](util[_0x2e35('0x2')](_0x2e35('0x29'),_0x5139ff[_0x2e35('0x3')]),_0x40147f);}};exports[_0x2e35('0x31')]=function(_0x3c8f41){try{if(!_['isNil'](queues[_0x3c8f41[_0x2e35('0x3')]])){utils[_0x2e35('0xd')](util[_0x2e35('0x2')](_0x2e35('0x32'),_0x3c8f41[_0x2e35('0x3')]),_0x3c8f41);utils[_0x2e35('0x18')](util[_0x2e35('0x2')](_0x2e35('0x33'),_0x3c8f41[_0x2e35('0x3')],queues[_0x3c8f41[_0x2e35('0x3')]][_0x2e35('0x19')],_0x3c8f41['membername'],_0x3c8f41[_0x2e35('0x34')]));queues[_0x3c8f41[_0x2e35('0x3')]][_0x2e35('0x15')]=![];queues[_0x3c8f41[_0x2e35('0x3')]][_0x2e35('0x15')]=![];queues[_0x3c8f41[_0x2e35('0x3')]][_0x2e35('0x35')]=null;queues[_0x3c8f41['uniqueid']][_0x2e35('0x21')]=![];queues[_0x3c8f41[_0x2e35('0x3')]]['queuecallerexitreason']=null;queues[_0x3c8f41['uniqueid']]['queuecallerexitAt']=null;queues[_0x3c8f41[_0x2e35('0x3')]]['assigned']=!![];queues[_0x3c8f41[_0x2e35('0x3')]][_0x2e35('0x5')]=_0x3c8f41[_0x2e35('0x34')];queues[_0x3c8f41[_0x2e35('0x3')]][_0x2e35('0x36')]=_0x3c8f41[_0x2e35('0x37')];}}catch(_0x42b6d4){utils['error'](util[_0x2e35('0x2')](_0x2e35('0x32'),_0x3c8f41[_0x2e35('0x3')]),_0x42b6d4);}};exports[_0x2e35('0x38')]=function(_0x1c1427){try{if(!_[_0x2e35('0x12')](queues[_0x1c1427[_0x2e35('0x3')]])){if(queues[_0x1c1427[_0x2e35('0x3')]]['queuecallerleaveAt']){utils['debug'](util[_0x2e35('0x2')](_0x2e35('0x39'),_0x1c1427['uniqueid']),_0x1c1427);queues[_0x1c1427[_0x2e35('0x3')]]['queuecallerabandon']=![];queues[_0x1c1427[_0x2e35('0x3')]][_0x2e35('0x15')]=![];queues[_0x1c1427['uniqueid']][_0x2e35('0x35')]=null;queues[_0x1c1427[_0x2e35('0x3')]]['queuecallerexit']=![];queues[_0x1c1427[_0x2e35('0x3')]][_0x2e35('0x22')]=null;queues[_0x1c1427[_0x2e35('0x3')]][_0x2e35('0x3a')]=!![];queues[_0x1c1427['uniqueid']][_0x2e35('0x36')]=_0x1c1427[_0x2e35('0x37')];queues[_0x1c1427['uniqueid']]['queuecallercomplete']=!![];queues[_0x1c1427['uniqueid']]['queuecallercompleteAt']=utils['now']();if(_0x1c1427['reason']=='transfer'){if(!queues[_0x1c1427[_0x2e35('0x3')]][_0x2e35('0x3b')]){queues[_0x1c1427[_0x2e35('0x3')]]['queuecallerexitreason']=_0x2e35('0x3c');}}else{queues[_0x1c1427['uniqueid']][_0x2e35('0x6')]=_0x2e35('0x3d')+_0x1c1427['reason'][_0x2e35('0x1f')]();}utils[_0x2e35('0x18')](util[_0x2e35('0x2')]('[%s][queues][agentcomplete]\x20name:%s\x20agent:%s\x20queuecallerexitreason:%s',_0x1c1427[_0x2e35('0x3')],queues[_0x1c1427[_0x2e35('0x3')]]['name'],_0x1c1427['membername'],queues[_0x1c1427[_0x2e35('0x3')]]['queuecallerexitreason']));writeDB(queues[_0x1c1427[_0x2e35('0x3')]]);}}}catch(_0x21ee98){utils['error'](util[_0x2e35('0x2')]('[%s][queues][agentcomplete]',_0x1c1427[_0x2e35('0x3')]),_0x21ee98);}};exports[_0x2e35('0x3e')]=function(_0x59f8e8){try{if(!_['isNil'](queues[_0x59f8e8[_0x2e35('0x3f')]])){utils[_0x2e35('0xd')](util[_0x2e35('0x2')](_0x2e35('0x40'),_0x59f8e8[_0x2e35('0x3')]),_0x59f8e8);queues[_0x59f8e8['transfereeuniqueid']][_0x2e35('0x3b')]=!![];queues[_0x59f8e8[_0x2e35('0x3f')]]['transfertype']=_0x2e35('0x41');queues[_0x59f8e8['transfereeuniqueid']][_0x2e35('0x42')]=_0x59f8e8['extension'];queues[_0x59f8e8[_0x2e35('0x3f')]]['transferuniqueid']=_0x59f8e8['transfereeuniqueid'];queues[_0x59f8e8[_0x2e35('0x3f')]][_0x2e35('0x6')]=_0x2e35('0x43');utils[_0x2e35('0x18')](util[_0x2e35('0x2')]('[%s][queues][blindtransfer]\x20name:%s\x20transferuniqueid:%s\x20transferexten:%s\x20queuecallerexitreason:BLINDTRANSFER',_0x59f8e8[_0x2e35('0x3')],queues[_0x59f8e8[_0x2e35('0x3f')]][_0x2e35('0x19')],_0x59f8e8['transfereeuniqueid'],_0x59f8e8[_0x2e35('0x44')]));}}catch(_0x3ddefe){utils[_0x2e35('0x1a')](util[_0x2e35('0x2')](_0x2e35('0x40'),_0x59f8e8[_0x2e35('0x3')]),_0x3ddefe);}};exports[_0x2e35('0x45')]=function(_0x58ae36){try{utils[_0x2e35('0xd')](util[_0x2e35('0x2')](_0x2e35('0x46'),_0x58ae36[_0x2e35('0x47')]),_0x58ae36);if(_0x58ae36['origtransfereruniqueid']==_0x58ae36[_0x2e35('0x48')]){if(!_[_0x2e35('0x12')](queues[_0x58ae36[_0x2e35('0x49')]])){utils[_0x2e35('0x18')](util['format']('[%s][queues][attendedtransfer]\x20name:%s\x20transferexten:%s\x20queuecallerexitreason:ATTENDEDTRANSFER',_0x58ae36['origtransfereruniqueid'],queues[_0x58ae36[_0x2e35('0x49')]][_0x2e35('0x19')],_0x58ae36[_0x2e35('0x4a')]));queues[_0x58ae36[_0x2e35('0x49')]][_0x2e35('0x3b')]=!![];queues[_0x58ae36[_0x2e35('0x49')]][_0x2e35('0x4b')]='ATTENDED';queues[_0x58ae36[_0x2e35('0x49')]][_0x2e35('0x42')]=_0x58ae36[_0x2e35('0x4a')];queues[_0x58ae36[_0x2e35('0x49')]][_0x2e35('0x4c')]=_0x58ae36[_0x2e35('0x47')];queues[_0x58ae36[_0x2e35('0x49')]][_0x2e35('0x6')]=_0x2e35('0x4d');}if(!_['isNil'](queues[_0x58ae36[_0x2e35('0x48')]])){if(_0x58ae36['transfereelinkedid']&&queues[_0x58ae36[_0x2e35('0x4e')]]){queues[_0x58ae36[_0x2e35('0x4e')]][_0x2e35('0x4f')]=0x1;queues[_0x58ae36[_0x2e35('0x3f')]]=_[_0x2e35('0x50')](queues[_0x58ae36[_0x2e35('0x4e')]]);queues[_0x58ae36[_0x2e35('0x3f')]][_0x2e35('0xb')]=_0x58ae36[_0x2e35('0x51')];queues[_0x58ae36[_0x2e35('0x3f')]][_0x2e35('0x4f')]=0x2;queues[_0x58ae36[_0x2e35('0x3f')]][_0x2e35('0x52')]=queues[_0x58ae36[_0x2e35('0x49')]][_0x2e35('0x52')];queues[_0x58ae36[_0x2e35('0x3f')]][_0x2e35('0x53')]=queues[_0x58ae36['secondtransfererlinkedid']][_0x2e35('0x53')];queues[_0x58ae36[_0x2e35('0x3f')]][_0x2e35('0x2f')]=utils[_0x2e35('0x16')]();queues[_0x58ae36[_0x2e35('0x3f')]][_0x2e35('0x14')]=utils[_0x2e35('0x16')]();queues[_0x58ae36['transfereeuniqueid']]['holdtime']=0x0;queues[_0x58ae36[_0x2e35('0x3f')]][_0x2e35('0x54')]=0x0;utils['info'](util[_0x2e35('0x2')]('[%s][queues][attendedtransfer]\x20name:%s\x20calleridnum:%s\x20calleridname:%s',_0x58ae36[_0x2e35('0x47')],queues[_0x58ae36[_0x2e35('0x3f')]][_0x2e35('0x19')],queues[_0x58ae36[_0x2e35('0x3f')]][_0x2e35('0x52')],queues[_0x58ae36['transfereeuniqueid']]['calleridname']));}else{utils[_0x2e35('0x18')](util['format']('[%s][queues][attendedtransfer]\x20name:%s\x20transfereduniqueid:%s',_0x58ae36[_0x2e35('0x47')],queues[_0x58ae36[_0x2e35('0x48')]][_0x2e35('0x19')],_0x58ae36['secondtransfererlinkedid']));queues[_0x58ae36[_0x2e35('0x48')]][_0x2e35('0xb')]=_0x58ae36[_0x2e35('0x49')];}}}else if(_0x58ae36[_0x2e35('0x55')]==_0x58ae36[_0x2e35('0x49')]){if(!_['isNil'](queues[_0x58ae36[_0x2e35('0x48')]])){utils[_0x2e35('0x18')](util[_0x2e35('0x2')](_0x2e35('0x56'),_0x58ae36[_0x2e35('0x47')],queues[_0x58ae36[_0x2e35('0x48')]][_0x2e35('0x19')],_0x58ae36[_0x2e35('0x55')],_0x58ae36[_0x2e35('0x57')]));queues[_0x58ae36[_0x2e35('0x48')]]['transfer']=!![];queues[_0x58ae36[_0x2e35('0x48')]][_0x2e35('0x4b')]='ATTENDED';queues[_0x58ae36[_0x2e35('0x48')]][_0x2e35('0x42')]=_0x58ae36['secondtransfererexten'];queues[_0x58ae36[_0x2e35('0x48')]][_0x2e35('0x4c')]=_0x58ae36['secondtransfereruniqueid'];queues[_0x58ae36[_0x2e35('0x48')]][_0x2e35('0x6')]=_0x2e35('0x4d');}if(!_[_0x2e35('0x12')](queues[_0x58ae36['secondtransfererlinkedid']])){if(_0x58ae36[_0x2e35('0x58')]&&queues[_0x58ae36[_0x2e35('0x58')]]){queues[_0x58ae36['transfertargetlinkedid']]['queuecallerenterreason']=0x1;queues[_0x58ae36[_0x2e35('0x51')]]=_['clone'](queues[_0x58ae36[_0x2e35('0x58')]]);queues[_0x58ae36[_0x2e35('0x51')]][_0x2e35('0xb')]=_0x58ae36['transfertargetuniqueid'];queues[_0x58ae36[_0x2e35('0x51')]][_0x2e35('0x4f')]=0x2;queues[_0x58ae36[_0x2e35('0x51')]][_0x2e35('0x52')]=queues[_0x58ae36[_0x2e35('0x48')]][_0x2e35('0x52')];queues[_0x58ae36[_0x2e35('0x51')]][_0x2e35('0x53')]=queues[_0x58ae36[_0x2e35('0x48')]]['calleridname'];queues[_0x58ae36[_0x2e35('0x51')]]['queuecallerjoinAt']=utils[_0x2e35('0x16')]();queues[_0x58ae36[_0x2e35('0x51')]]['queuecallerleaveAt']=utils[_0x2e35('0x16')]();queues[_0x58ae36[_0x2e35('0x51')]][_0x2e35('0x2d')]=0x0;queues[_0x58ae36[_0x2e35('0x51')]]['mohtime']=0x0;utils[_0x2e35('0x18')](util[_0x2e35('0x2')]('[%s][queues][attendedtransfer]\x20name:%s\x20transfereduniqueid:%s\x20calleridnum:%s\x20calleridname:%s',_0x58ae36[_0x2e35('0x47')],queues[_0x58ae36[_0x2e35('0x51')]][_0x2e35('0x19')],queues[_0x58ae36['transfertargetuniqueid']][_0x2e35('0xb')],queues[_0x58ae36['transfertargetuniqueid']][_0x2e35('0x52')],queues[_0x58ae36[_0x2e35('0x51')]]['calleridname']));}else{utils['info'](util[_0x2e35('0x2')](_0x2e35('0x59'),_0x58ae36[_0x2e35('0x47')],queues[_0x58ae36['secondtransfererlinkedid']]['name'],_0x58ae36[_0x2e35('0x48')]));queues[_0x58ae36['secondtransfererlinkedid']]['transfereduniqueid']=_0x58ae36[_0x2e35('0x48')];}}}}catch(_0x2b9740){utils[_0x2e35('0x1a')](util[_0x2e35('0x2')]('[%s][queues][attendedtransfer]',_0x58ae36[_0x2e35('0x47')]),_0x2b9740);}};exports[_0x2e35('0x5a')]=function(_0x45ca6f){try{if(!_[_0x2e35('0x12')](queues[_0x45ca6f[_0x2e35('0x3')]])){utils['debug'](util[_0x2e35('0x2')](_0x2e35('0x5b'),_0x45ca6f[_0x2e35('0x3')]),_0x45ca6f);queues[_0x45ca6f[_0x2e35('0x3')]]['musiconholdstartAt']=utils[_0x2e35('0x16')]();utils[_0x2e35('0x18')](util[_0x2e35('0x2')](_0x2e35('0x5c'),_0x45ca6f['uniqueid'],queues[_0x45ca6f[_0x2e35('0x3')]]['name'],queues[_0x45ca6f[_0x2e35('0x3')]][_0x2e35('0x5d')]));}}catch(_0x35de35){utils[_0x2e35('0x1a')](util[_0x2e35('0x2')](_0x2e35('0x5b'),_0x45ca6f[_0x2e35('0x3')]),_0x35de35);}};exports[_0x2e35('0x5e')]=function(_0x470406){try{if(!_[_0x2e35('0x12')](queues[_0x470406[_0x2e35('0x3')]])){if(!_[_0x2e35('0x12')](queues[_0x470406[_0x2e35('0x3')]][_0x2e35('0x5d')])){utils[_0x2e35('0xd')](util['format']('[%s][queues][musiconholdstop]',_0x470406[_0x2e35('0x3')]),_0x470406);queues[_0x470406[_0x2e35('0x3')]][_0x2e35('0x54')]+=utils['diffTime'](utils[_0x2e35('0x16')](),queues[_0x470406[_0x2e35('0x3')]][_0x2e35('0x5d')]);utils[_0x2e35('0x18')](util[_0x2e35('0x2')](_0x2e35('0x5f'),_0x470406['uniqueid'],queues[_0x470406[_0x2e35('0x3')]][_0x2e35('0x19')],queues[_0x470406[_0x2e35('0x3')]]['mohtime']));delete queues[_0x470406['uniqueid']][_0x2e35('0x5d')];}}}catch(_0x22251f){utils[_0x2e35('0x1a')](util[_0x2e35('0x2')](_0x2e35('0x60'),_0x470406[_0x2e35('0x3')]),_0x22251f);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7186=['[%s][recordings][queuecallerjoin]','util','./utils','format','[%s][recordings][writeDB]','uniqueid','getUserByInternal','accountcode','membername','name','UserId','request','CreateVoiceRecording','debug','[%s][recordings][newchannel]','info','[%s][recordings][newchannel]\x20context:%s\x20exten:%s','context','exten','channel','error','channelstate','[%s][recordings][newstate]\x20context:%s\x20channel:%s','isNil','transfer','[%s][recordings][newstate]\x20linkedid:%s\x20context:%s\x20channel:%s','linkedid','[%s][recordings][newstate]','variable','mixmonitor_filename','[%s][recordings][varset]','[%s][recordings][varset]\x20variable:%s\x20value:%s','value','endsWith','replace','.wav49','.WAV','monitors','push','[%s][recordings][hangup]','[%s][recordings][hangup]\x20calleridnum:%s\x20calleridname:%s\x20reason:%s','calleridnum','calleridname','cause-txt','connectedlinenum','connectedlinename','outbound','forEach','clone','newexten','[%s][recordings][newexten]','[%s][recordings][newexten]\x20application:%s\x20appdata:%s','application','set','startsWith','appdata','toLowerCase','cdr','lastIndexOf','queuecallerjoin','[%s][recordings][queuecallerjoin]\x20queue:%s','queue'];(function(_0x28099d,_0x1f06e7){var _0x53ebe4=function(_0x2bf231){while(--_0x2bf231){_0x28099d['push'](_0x28099d['shift']());}};_0x53ebe4(++_0x1f06e7);}(_0x7186,0x1f1));var _0x6718=function(_0x1434cd,_0x1ffc9b){_0x1434cd=_0x1434cd-0x0;var _0x47b1c2=_0x7186[_0x1434cd];return _0x47b1c2;};'use strict';var _=require('lodash');var util=require(_0x6718('0x0'));var utils=require(_0x6718('0x1'));var recordings={};function writeDB(_0x113744){utils['info'](util[_0x6718('0x2')](_0x6718('0x3'),_0x113744[_0x6718('0x4')]));if(_0x113744['accountcode']){utils[_0x6718('0x5')](_0x113744[_0x6718('0x6')])['then'](function(_0xd66e88){if(_0xd66e88){_0x113744[_0x6718('0x7')]=_0xd66e88[_0x6718('0x8')];_0x113744[_0x6718('0x9')]=_0xd66e88['id'];}utils[_0x6718('0xa')](_0x6718('0xb'),_0x113744);});}else{utils[_0x6718('0xa')]('CreateVoiceRecording',_0x113744);}}exports['newchannel']=function(_0x4c5427){try{utils[_0x6718('0xc')](util[_0x6718('0x2')](_0x6718('0xd'),_0x4c5427[_0x6718('0x4')]),_0x4c5427);if(_0x4c5427[_0x6718('0x4')]==_0x4c5427['linkedid']){utils[_0x6718('0xe')](util[_0x6718('0x2')](_0x6718('0xf'),_0x4c5427[_0x6718('0x4')],_0x4c5427[_0x6718('0x10')],_0x4c5427[_0x6718('0x11')]));recordings[_0x4c5427[_0x6718('0x4')]]={'uniqueid':_0x4c5427[_0x6718('0x4')],'accountcode':_0x4c5427[_0x6718('0x6')],'exten':_0x4c5427[_0x6718('0x11')],'context':_0x4c5427[_0x6718('0x10')],'channel':_0x4c5427[_0x6718('0x12')],'monitors':[]};}}catch(_0x592bb0){utils[_0x6718('0x13')](util[_0x6718('0x2')](_0x6718('0xd'),_0x4c5427[_0x6718('0x4')]),_0x592bb0);}};exports['newstate']=function(_0x36c9d5){try{utils[_0x6718('0xc')](util[_0x6718('0x2')]('[%s][recordings][newstate]',_0x36c9d5[_0x6718('0x4')]),_0x36c9d5);if(!_['isNil'](recordings[_0x36c9d5[_0x6718('0x4')]])&&_0x36c9d5[_0x6718('0x14')]==0x6){utils['info'](util[_0x6718('0x2')](_0x6718('0x15'),_0x36c9d5[_0x6718('0x4')],_0x36c9d5[_0x6718('0x10')],_0x36c9d5[_0x6718('0x12')]));}else if(!_[_0x6718('0x16')](recordings[_0x36c9d5['linkedid']])&&_0x36c9d5[_0x6718('0x14')]==0x6&&_0x36c9d5[_0x6718('0x10')]!=_0x6718('0x17')){utils[_0x6718('0xe')](util[_0x6718('0x2')](_0x6718('0x18'),_0x36c9d5['uniqueid'],_0x36c9d5[_0x6718('0x19')],_0x36c9d5[_0x6718('0x10')],_0x36c9d5['channel']));recordings[_0x36c9d5[_0x6718('0x19')]]['accountcode']=_0x36c9d5[_0x6718('0x6')];}}catch(_0x538904){utils[_0x6718('0x13')](util['format'](_0x6718('0x1a'),_0x36c9d5[_0x6718('0x4')]),_0x538904);}};exports['varset']=function(_0x261679){try{if(!_[_0x6718('0x16')](_0x261679[_0x6718('0x1b')])&&!_['isNil'](_0x261679['variable'][_0x6718('0x1c')])){utils[_0x6718('0xc')](util[_0x6718('0x2')](_0x6718('0x1d'),_0x261679[_0x6718('0x4')]),_0x261679);utils[_0x6718('0xe')](util['format'](_0x6718('0x1e'),_0x261679[_0x6718('0x4')],_0x261679['variable'],_0x261679[_0x6718('0x1f')]));if(_[_0x6718('0x20')](_0x261679[_0x6718('0x1f')],'.wav49')){_0x261679[_0x6718('0x1f')]=_0x261679[_0x6718('0x1f')][_0x6718('0x21')](_0x6718('0x22'),_0x6718('0x23'));}if(recordings[_0x261679[_0x6718('0x19')]]){var _0x5710fb=_['find'](recordings[_0x261679[_0x6718('0x19')]][_0x6718('0x24')],{'value':_0x261679[_0x6718('0x1f')]});if(_['isNil'](_0x5710fb)){recordings[_0x261679[_0x6718('0x19')]][_0x6718('0x24')][_0x6718('0x25')]({'value':_0x261679[_0x6718('0x1f')]});}}}}catch(_0x34463c){utils[_0x6718('0x13')](util['format'](_0x6718('0x1d'),_0x261679['uniqueid']),_0x34463c);}};exports['hangup']=function(_0x5a52df){try{if(!_[_0x6718('0x16')](recordings[_0x5a52df[_0x6718('0x4')]])){utils[_0x6718('0xc')](util[_0x6718('0x2')](_0x6718('0x26'),_0x5a52df[_0x6718('0x4')]),_0x5a52df);utils[_0x6718('0xe')](util['format'](_0x6718('0x27'),_0x5a52df[_0x6718('0x4')],_0x5a52df[_0x6718('0x28')],_0x5a52df[_0x6718('0x29')],_0x5a52df[_0x6718('0x2a')]));recordings[_0x5a52df[_0x6718('0x4')]]['calleridnum']=_0x5a52df['calleridnum'];recordings[_0x5a52df[_0x6718('0x4')]][_0x6718('0x29')]=_0x5a52df[_0x6718('0x29')];recordings[_0x5a52df[_0x6718('0x4')]]['connectedlinenum']=_0x5a52df[_0x6718('0x2b')];recordings[_0x5a52df['uniqueid']][_0x6718('0x2c')]=_0x5a52df[_0x6718('0x2c')];if(recordings[_0x5a52df[_0x6718('0x4')]]['type']==_0x6718('0x2d')&&recordings[_0x5a52df[_0x6718('0x4')]][_0x6718('0x6')]){recordings[_0x5a52df[_0x6718('0x4')]][_0x6718('0x2b')]=recordings[_0x5a52df[_0x6718('0x4')]]['accountcode'];recordings[_0x5a52df['uniqueid']][_0x6718('0x2c')]='';}recordings[_0x5a52df[_0x6718('0x4')]][_0x6718('0x24')][_0x6718('0x2e')](function(_0x497423){var _0x3c752a=_[_0x6718('0x2f')](recordings[_0x5a52df[_0x6718('0x4')]]);_0x3c752a['value']=_0x497423[_0x6718('0x1f')];writeDB(_0x3c752a);});delete recordings[_0x5a52df[_0x6718('0x4')]];}}catch(_0x44999a){utils['error'](util['format'](_0x6718('0x26'),_0x5a52df['uniqueid']),_0x44999a);}};exports[_0x6718('0x30')]=function(_0x384cb6){try{if(!_['isNil'](recordings[_0x384cb6[_0x6718('0x4')]])){utils[_0x6718('0xc')](util[_0x6718('0x2')](_0x6718('0x31'),_0x384cb6[_0x6718('0x4')]),_0x384cb6);utils[_0x6718('0xe')](util[_0x6718('0x2')](_0x6718('0x32'),_0x384cb6[_0x6718('0x4')],_0x384cb6['application'],_0x384cb6['appdata']));if(_0x384cb6[_0x6718('0x33')]['toLowerCase']()==_0x6718('0x34')&&_[_0x6718('0x35')](_0x384cb6[_0x6718('0x36')][_0x6718('0x37')](),_0x6718('0x38'))){var _0x38844c=_0x384cb6['appdata']['split']('=');var _0x4704c2=_0x38844c[0x0]['substring'](_0x38844c[0x0]['lastIndexOf']('(')+0x1,_0x38844c[0x0][_0x6718('0x39')](')'));var _0x3996de=_0x38844c[0x1];recordings[_0x384cb6['uniqueid']][_0x4704c2]=_0x3996de;}}}catch(_0x4dbfcb){utils[_0x6718('0x13')](util[_0x6718('0x2')]('[%s][recordings][newexten]',_0x384cb6[_0x6718('0x4')]),_0x4dbfcb);}};exports[_0x6718('0x3a')]=function(_0x1b6fe3){try{if(!_[_0x6718('0x16')](recordings[_0x1b6fe3['uniqueid']])){utils[_0x6718('0xc')](util[_0x6718('0x2')]('[%s][recordings][queuecallerjoin]',_0x1b6fe3[_0x6718('0x4')]),_0x1b6fe3);utils[_0x6718('0xe')](util['format'](_0x6718('0x3b'),_0x1b6fe3[_0x6718('0x4')],_0x1b6fe3['queue']));recordings[_0x1b6fe3[_0x6718('0x4')]][_0x6718('0x3c')]=_0x1b6fe3[_0x6718('0x3c')];}}catch(_0x364382){utils['error'](util[_0x6718('0x2')](_0x6718('0x3d'),_0x1b6fe3[_0x6718('0x4')]),_0x364382);}};
\ No newline at end of file
+var _0x5d43=['lodash','./utils','info','[%s][recordings][writeDB]','uniqueid','accountcode','getUserByInternal','then','membername','UserId','CreateVoiceRecording','request','[%s][recordings][newchannel]','linkedid','format','[%s][recordings][newchannel]\x20context:%s\x20exten:%s','context','error','newstate','[%s][recordings][newstate]','isNil','[%s][recordings][newstate]\x20context:%s\x20channel:%s','channel','[%s][recordings][newstate]\x20linkedid:%s\x20context:%s\x20channel:%s','varset','variable','mixmonitor_filename','debug','[%s][recordings][varset]\x20variable:%s\x20value:%s','value','.wav49','replace','.WAV','find','monitors','[%s][recordings][varset]','[%s][recordings][hangup]','[%s][recordings][hangup]\x20calleridnum:%s\x20calleridname:%s\x20reason:%s','calleridnum','calleridname','cause-txt','connectedlinenum','connectedlinename','type','outbound','forEach','clone','newexten','[%s][recordings][newexten]\x20application:%s\x20appdata:%s','application','appdata','set','startsWith','cdr','split','lastIndexOf','[%s][recordings][queuecallerjoin]','queue'];(function(_0x32d600,_0x35b3a2){var _0x25e5e8=function(_0x475535){while(--_0x475535){_0x32d600['push'](_0x32d600['shift']());}};_0x25e5e8(++_0x35b3a2);}(_0x5d43,0x74));var _0x35d4=function(_0x14bdd1,_0x41518f){_0x14bdd1=_0x14bdd1-0x0;var _0x406581=_0x5d43[_0x14bdd1];return _0x406581;};'use strict';var _=require(_0x35d4('0x0'));var util=require('util');var utils=require(_0x35d4('0x1'));var recordings={};function writeDB(_0x37355){utils[_0x35d4('0x2')](util['format'](_0x35d4('0x3'),_0x37355[_0x35d4('0x4')]));if(_0x37355[_0x35d4('0x5')]){utils[_0x35d4('0x6')](_0x37355[_0x35d4('0x5')])[_0x35d4('0x7')](function(_0x5af40d){if(_0x5af40d){_0x37355[_0x35d4('0x8')]=_0x5af40d['name'];_0x37355[_0x35d4('0x9')]=_0x5af40d['id'];}utils['request'](_0x35d4('0xa'),_0x37355);});}else{utils[_0x35d4('0xb')](_0x35d4('0xa'),_0x37355);}}exports['newchannel']=function(_0x18cd97){try{utils['debug'](util['format'](_0x35d4('0xc'),_0x18cd97[_0x35d4('0x4')]),_0x18cd97);if(_0x18cd97[_0x35d4('0x4')]==_0x18cd97[_0x35d4('0xd')]){utils[_0x35d4('0x2')](util[_0x35d4('0xe')](_0x35d4('0xf'),_0x18cd97[_0x35d4('0x4')],_0x18cd97[_0x35d4('0x10')],_0x18cd97['exten']));recordings[_0x18cd97[_0x35d4('0x4')]]={'uniqueid':_0x18cd97['uniqueid'],'accountcode':_0x18cd97['accountcode'],'exten':_0x18cd97['exten'],'context':_0x18cd97['context'],'channel':_0x18cd97['channel'],'monitors':[]};}}catch(_0xaab9c7){utils[_0x35d4('0x11')](util['format'](_0x35d4('0xc'),_0x18cd97[_0x35d4('0x4')]),_0xaab9c7);}};exports[_0x35d4('0x12')]=function(_0x2ba16a){try{utils['debug'](util[_0x35d4('0xe')](_0x35d4('0x13'),_0x2ba16a[_0x35d4('0x4')]),_0x2ba16a);if(!_[_0x35d4('0x14')](recordings[_0x2ba16a[_0x35d4('0x4')]])&&_0x2ba16a['channelstate']==0x6){utils[_0x35d4('0x2')](util[_0x35d4('0xe')](_0x35d4('0x15'),_0x2ba16a[_0x35d4('0x4')],_0x2ba16a[_0x35d4('0x10')],_0x2ba16a[_0x35d4('0x16')]));}else if(!_[_0x35d4('0x14')](recordings[_0x2ba16a[_0x35d4('0xd')]])&&_0x2ba16a['channelstate']==0x6&&_0x2ba16a['context']!='transfer'){utils[_0x35d4('0x2')](util[_0x35d4('0xe')](_0x35d4('0x17'),_0x2ba16a[_0x35d4('0x4')],_0x2ba16a[_0x35d4('0xd')],_0x2ba16a[_0x35d4('0x10')],_0x2ba16a[_0x35d4('0x16')]));recordings[_0x2ba16a[_0x35d4('0xd')]][_0x35d4('0x5')]=_0x2ba16a[_0x35d4('0x5')];}}catch(_0x3f5adc){utils[_0x35d4('0x11')](util[_0x35d4('0xe')]('[%s][recordings][newstate]',_0x2ba16a[_0x35d4('0x4')]),_0x3f5adc);}};exports[_0x35d4('0x18')]=function(_0x2a42b3){try{if(!_[_0x35d4('0x14')](_0x2a42b3[_0x35d4('0x19')])&&!_[_0x35d4('0x14')](_0x2a42b3[_0x35d4('0x19')][_0x35d4('0x1a')])){utils[_0x35d4('0x1b')](util[_0x35d4('0xe')]('[%s][recordings][varset]',_0x2a42b3[_0x35d4('0x4')]),_0x2a42b3);utils[_0x35d4('0x2')](util['format'](_0x35d4('0x1c'),_0x2a42b3[_0x35d4('0x4')],_0x2a42b3[_0x35d4('0x19')],_0x2a42b3['value']));if(_['endsWith'](_0x2a42b3[_0x35d4('0x1d')],_0x35d4('0x1e'))){_0x2a42b3[_0x35d4('0x1d')]=_0x2a42b3['value'][_0x35d4('0x1f')](_0x35d4('0x1e'),_0x35d4('0x20'));}if(recordings[_0x2a42b3[_0x35d4('0xd')]]){var _0x4a4fb7=_[_0x35d4('0x21')](recordings[_0x2a42b3[_0x35d4('0xd')]][_0x35d4('0x22')],{'value':_0x2a42b3['value']});if(_[_0x35d4('0x14')](_0x4a4fb7)){recordings[_0x2a42b3[_0x35d4('0xd')]]['monitors']['push']({'value':_0x2a42b3[_0x35d4('0x1d')]});}}}}catch(_0x5df146){utils[_0x35d4('0x11')](util[_0x35d4('0xe')](_0x35d4('0x23'),_0x2a42b3['uniqueid']),_0x5df146);}};exports['hangup']=function(_0x43249d){try{if(!_[_0x35d4('0x14')](recordings[_0x43249d[_0x35d4('0x4')]])){utils[_0x35d4('0x1b')](util[_0x35d4('0xe')](_0x35d4('0x24'),_0x43249d[_0x35d4('0x4')]),_0x43249d);utils[_0x35d4('0x2')](util[_0x35d4('0xe')](_0x35d4('0x25'),_0x43249d[_0x35d4('0x4')],_0x43249d[_0x35d4('0x26')],_0x43249d[_0x35d4('0x27')],_0x43249d[_0x35d4('0x28')]));recordings[_0x43249d[_0x35d4('0x4')]][_0x35d4('0x26')]=_0x43249d[_0x35d4('0x26')];recordings[_0x43249d[_0x35d4('0x4')]][_0x35d4('0x27')]=_0x43249d[_0x35d4('0x27')];recordings[_0x43249d[_0x35d4('0x4')]][_0x35d4('0x29')]=_0x43249d[_0x35d4('0x29')];recordings[_0x43249d[_0x35d4('0x4')]][_0x35d4('0x2a')]=_0x43249d[_0x35d4('0x2a')];if(recordings[_0x43249d['uniqueid']][_0x35d4('0x2b')]==_0x35d4('0x2c')&&recordings[_0x43249d['uniqueid']][_0x35d4('0x5')]){recordings[_0x43249d[_0x35d4('0x4')]][_0x35d4('0x29')]=recordings[_0x43249d[_0x35d4('0x4')]][_0x35d4('0x5')];recordings[_0x43249d[_0x35d4('0x4')]][_0x35d4('0x2a')]='';}recordings[_0x43249d[_0x35d4('0x4')]]['monitors'][_0x35d4('0x2d')](function(_0x5d8371){var _0x105b95=_[_0x35d4('0x2e')](recordings[_0x43249d[_0x35d4('0x4')]]);_0x105b95[_0x35d4('0x1d')]=_0x5d8371['value'];writeDB(_0x105b95);});delete recordings[_0x43249d[_0x35d4('0x4')]];}}catch(_0x461a98){utils[_0x35d4('0x11')](util[_0x35d4('0xe')](_0x35d4('0x24'),_0x43249d[_0x35d4('0x4')]),_0x461a98);}};exports[_0x35d4('0x2f')]=function(_0x4a1d39){try{if(!_[_0x35d4('0x14')](recordings[_0x4a1d39[_0x35d4('0x4')]])){utils[_0x35d4('0x1b')](util['format']('[%s][recordings][newexten]',_0x4a1d39[_0x35d4('0x4')]),_0x4a1d39);utils['info'](util[_0x35d4('0xe')](_0x35d4('0x30'),_0x4a1d39[_0x35d4('0x4')],_0x4a1d39[_0x35d4('0x31')],_0x4a1d39[_0x35d4('0x32')]));if(_0x4a1d39[_0x35d4('0x31')]['toLowerCase']()==_0x35d4('0x33')&&_[_0x35d4('0x34')](_0x4a1d39['appdata']['toLowerCase'](),_0x35d4('0x35'))){var _0x5e6c7a=_0x4a1d39[_0x35d4('0x32')][_0x35d4('0x36')]('=');var _0x2f8c5a=_0x5e6c7a[0x0]['substring'](_0x5e6c7a[0x0][_0x35d4('0x37')]('(')+0x1,_0x5e6c7a[0x0][_0x35d4('0x37')](')'));var _0x146c2e=_0x5e6c7a[0x1];recordings[_0x4a1d39[_0x35d4('0x4')]][_0x2f8c5a]=_0x146c2e;}}}catch(_0x5e89f4){utils[_0x35d4('0x11')](util['format']('[%s][recordings][newexten]',_0x4a1d39[_0x35d4('0x4')]),_0x5e89f4);}};exports['queuecallerjoin']=function(_0x4a50b0){try{if(!_[_0x35d4('0x14')](recordings[_0x4a50b0[_0x35d4('0x4')]])){utils[_0x35d4('0x1b')](util[_0x35d4('0xe')](_0x35d4('0x38'),_0x4a50b0['uniqueid']),_0x4a50b0);utils[_0x35d4('0x2')](util[_0x35d4('0xe')]('[%s][recordings][queuecallerjoin]\x20queue:%s',_0x4a50b0[_0x35d4('0x4')],_0x4a50b0[_0x35d4('0x39')]));recordings[_0x4a50b0[_0x35d4('0x4')]][_0x35d4('0x39')]=_0x4a50b0['queue'];}}catch(_0x1d7f0e){utils[_0x35d4('0x11')](util['format']('[%s][recordings][queuecallerjoin]',_0x4a50b0[_0x35d4('0x4')]),_0x1d7f0e);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe8eb=['type','request','blinds','blindtransfer','debug','[%s][transfers][blindtransfer]\x20transferercalleridnum:%s\x20transferercalleridname:%s\x20transfereecalleridnum:%s\x20transfereecalleridname:%s','transferercalleridname','transfereecalleridnum','error','[%s][transfers][blindtransfer]','[%s][transfers][attendedtransfer]','[%s][transfers][attendedtransfer]\x20transferercalleridnum:%s\x20transferercalleridname:%s\x20transfereecalleridnum:%s\x20transfereecalleridname:%s','origtransferercalleridnum','origtransferercalleridname','assign','origtransfererchannel','secondtransfererconnectedlinenum','origtransfereraccountcode','secondtransferercontext','secondtransfererexten','origtransfererlinkedid','origtransferercontext','isNil','transfertargetchannel','transfertargetcalleridname','transfertargetconnectedlinenum','transfertargetaccountcode','transfertargetcontext','transfertargetexten','transfertargetlinkedid','lodash','util','./utils','info','format','[%s][transfers][writeDB]\x20type:%s','attended','origtransfereruniqueid','uniqueid'];(function(_0x45a6b6,_0x4a489b){var _0x27a5fe=function(_0x53fd3d){while(--_0x53fd3d){_0x45a6b6['push'](_0x45a6b6['shift']());}};_0x27a5fe(++_0x4a489b);}(_0xe8eb,0x6c));var _0xbe8e=function(_0x35c4d8,_0x2f1d54){_0x35c4d8=_0x35c4d8-0x0;var _0x8df8cd=_0xe8eb[_0x35c4d8];return _0x8df8cd;};'use strict';var _=require(_0xbe8e('0x0'));var util=require(_0xbe8e('0x1'));var utils=require(_0xbe8e('0x2'));function writeDB(_0xfbd85e){utils[_0xbe8e('0x3')](util[_0xbe8e('0x4')](_0xbe8e('0x5'),_0xfbd85e['type']===_0xbe8e('0x6')?_0xfbd85e[_0xbe8e('0x7')]:_0xfbd85e[_0xbe8e('0x8')],_0xfbd85e[_0xbe8e('0x9')]));utils[_0xbe8e('0xa')]('CreateVoiceTransferReport',_0xfbd85e);}exports[_0xbe8e('0xb')]={};exports[_0xbe8e('0xc')]=function(_0x31fa95){try{utils[_0xbe8e('0xd')](util[_0xbe8e('0x4')]('[%s][transfers][blindtransfer]',_0x31fa95['uniqueid']),_0x31fa95);utils[_0xbe8e('0x3')](util['format'](_0xbe8e('0xe'),_0x31fa95[_0xbe8e('0x8')],_0x31fa95['transferercalleridnum'],_0x31fa95[_0xbe8e('0xf')],_0x31fa95[_0xbe8e('0x10')],_0x31fa95['transfereecalleridname']));_0x31fa95[_0xbe8e('0x9')]='blind';exports[_0xbe8e('0xb')][_0x31fa95['transfereruniqueid']]=_0x31fa95;writeDB(_0x31fa95);}catch(_0x8a0afe){utils[_0xbe8e('0x11')](util['format'](_0xbe8e('0x12'),_0x31fa95[_0xbe8e('0x8')]),_0x8a0afe);}};exports['attendedtransfer']=function(_0x1665ba){try{utils[_0xbe8e('0xd')](util[_0xbe8e('0x4')](_0xbe8e('0x13'),_0x1665ba[_0xbe8e('0x7')]),_0x1665ba);utils[_0xbe8e('0x3')](util[_0xbe8e('0x4')](_0xbe8e('0x14'),_0x1665ba['origtransfereruniqueid'],_0x1665ba[_0xbe8e('0x15')],_0x1665ba[_0xbe8e('0x16')],_0x1665ba['transfertargetcalleridnum'],_0x1665ba['transfertargetcalleridname']));_0x1665ba=_[_0xbe8e('0x17')](_0x1665ba,{'transfererchannel':_0x1665ba[_0xbe8e('0x18')],'transferercalleridnum':_0x1665ba[_0xbe8e('0x15')],'transferercalleridname':_0x1665ba['origtransferercalleridname'],'transfererconnectedlinenum':_0x1665ba[_0xbe8e('0x19')],'transfererconnectedlinename':_0x1665ba['secondtransfererconnectedlinename'],'transfereraccountcode':_0x1665ba[_0xbe8e('0x1a')],'transferercontext':_0x1665ba[_0xbe8e('0x1b')],'transfererexten':_0x1665ba[_0xbe8e('0x1c')],'transfererlinkedid':_0x1665ba[_0xbe8e('0x1d')],'context':_0x1665ba[_0xbe8e('0x1e')],'extension':_0x1665ba['origtransfererexten'],'type':_0xbe8e('0x6')});if(_[_0xbe8e('0x1f')](_0x1665ba['transfereechannel'])){_0x1665ba=_[_0xbe8e('0x17')](_0x1665ba,{'transfereechannel':_0x1665ba[_0xbe8e('0x20')],'transfereecalleridnum':_0x1665ba['transfertargetcalleridnum'],'transfereecalleridname':_0x1665ba[_0xbe8e('0x21')],'transfereeconnectedlinenum':_0x1665ba[_0xbe8e('0x22')],'transfereeconnectedlinename':_0x1665ba['transfertargetconnectedlinename'],'transfereeaccountcode':_0x1665ba[_0xbe8e('0x23')],'transfereecontext':_0x1665ba[_0xbe8e('0x24')],'transfereeexten':_0x1665ba[_0xbe8e('0x25')],'transfereelinkedid':_0x1665ba[_0xbe8e('0x26')]});}writeDB(_0x1665ba);}catch(_0x52e6f3){utils[_0xbe8e('0x11')](util[_0xbe8e('0x4')](_0xbe8e('0x13'),_0x1665ba[_0xbe8e('0x7')]),_0x52e6f3);}};
\ No newline at end of file
+var _0xd60a=['transfertargetlinkedid','lodash','util','./utils','info','type','attended','origtransfereruniqueid','uniqueid','request','CreateVoiceTransferReport','blindtransfer','debug','[%s][transfers][blindtransfer]','[%s][transfers][blindtransfer]\x20transferercalleridnum:%s\x20transferercalleridname:%s\x20transfereecalleridnum:%s\x20transfereecalleridname:%s','transferercalleridnum','transferercalleridname','transfereecalleridnum','blind','blinds','transfereruniqueid','error','attendedtransfer','[%s][transfers][attendedtransfer]','format','[%s][transfers][attendedtransfer]\x20transferercalleridnum:%s\x20transferercalleridname:%s\x20transfereecalleridnum:%s\x20transfereecalleridname:%s','origtransferercalleridnum','origtransferercalleridname','transfertargetcalleridnum','transfertargetcalleridname','secondtransfererconnectedlinenum','origtransfereraccountcode','secondtransferercontext','secondtransfererexten','origtransfererlinkedid','origtransfererexten','isNil','transfereechannel','transfertargetchannel','transfertargetconnectedlinename','transfertargetaccountcode','transfertargetcontext','transfertargetexten'];(function(_0x59eacf,_0x56ec4a){var _0x5d74f2=function(_0x5476ed){while(--_0x5476ed){_0x59eacf['push'](_0x59eacf['shift']());}};_0x5d74f2(++_0x56ec4a);}(_0xd60a,0x12e));var _0xad60=function(_0x428df9,_0x3caf49){_0x428df9=_0x428df9-0x0;var _0x44154a=_0xd60a[_0x428df9];return _0x44154a;};'use strict';var _=require(_0xad60('0x0'));var util=require(_0xad60('0x1'));var utils=require(_0xad60('0x2'));function writeDB(_0x3c4775){utils[_0xad60('0x3')](util['format']('[%s][transfers][writeDB]\x20type:%s',_0x3c4775[_0xad60('0x4')]===_0xad60('0x5')?_0x3c4775[_0xad60('0x6')]:_0x3c4775[_0xad60('0x7')],_0x3c4775[_0xad60('0x4')]));utils[_0xad60('0x8')](_0xad60('0x9'),_0x3c4775);}exports['blinds']={};exports[_0xad60('0xa')]=function(_0x44ec45){try{utils[_0xad60('0xb')](util['format'](_0xad60('0xc'),_0x44ec45['uniqueid']),_0x44ec45);utils[_0xad60('0x3')](util['format'](_0xad60('0xd'),_0x44ec45[_0xad60('0x7')],_0x44ec45[_0xad60('0xe')],_0x44ec45[_0xad60('0xf')],_0x44ec45[_0xad60('0x10')],_0x44ec45['transfereecalleridname']));_0x44ec45[_0xad60('0x4')]=_0xad60('0x11');exports[_0xad60('0x12')][_0x44ec45[_0xad60('0x13')]]=_0x44ec45;writeDB(_0x44ec45);}catch(_0x2779f3){utils[_0xad60('0x14')](util['format'](_0xad60('0xc'),_0x44ec45[_0xad60('0x7')]),_0x2779f3);}};exports[_0xad60('0x15')]=function(_0x6bf2f8){try{utils['debug'](util['format'](_0xad60('0x16'),_0x6bf2f8[_0xad60('0x6')]),_0x6bf2f8);utils[_0xad60('0x3')](util[_0xad60('0x17')](_0xad60('0x18'),_0x6bf2f8[_0xad60('0x6')],_0x6bf2f8[_0xad60('0x19')],_0x6bf2f8[_0xad60('0x1a')],_0x6bf2f8[_0xad60('0x1b')],_0x6bf2f8[_0xad60('0x1c')]));_0x6bf2f8=_['assign'](_0x6bf2f8,{'transfererchannel':_0x6bf2f8['origtransfererchannel'],'transferercalleridnum':_0x6bf2f8[_0xad60('0x19')],'transferercalleridname':_0x6bf2f8[_0xad60('0x1a')],'transfererconnectedlinenum':_0x6bf2f8[_0xad60('0x1d')],'transfererconnectedlinename':_0x6bf2f8['secondtransfererconnectedlinename'],'transfereraccountcode':_0x6bf2f8[_0xad60('0x1e')],'transferercontext':_0x6bf2f8[_0xad60('0x1f')],'transfererexten':_0x6bf2f8[_0xad60('0x20')],'transfererlinkedid':_0x6bf2f8[_0xad60('0x21')],'context':_0x6bf2f8['origtransferercontext'],'extension':_0x6bf2f8[_0xad60('0x22')],'type':_0xad60('0x5')});if(_[_0xad60('0x23')](_0x6bf2f8[_0xad60('0x24')])){_0x6bf2f8=_['assign'](_0x6bf2f8,{'transfereechannel':_0x6bf2f8[_0xad60('0x25')],'transfereecalleridnum':_0x6bf2f8[_0xad60('0x1b')],'transfereecalleridname':_0x6bf2f8[_0xad60('0x1c')],'transfereeconnectedlinenum':_0x6bf2f8['transfertargetconnectedlinenum'],'transfereeconnectedlinename':_0x6bf2f8[_0xad60('0x26')],'transfereeaccountcode':_0x6bf2f8[_0xad60('0x27')],'transfereecontext':_0x6bf2f8[_0xad60('0x28')],'transfereeexten':_0x6bf2f8[_0xad60('0x29')],'transfereelinkedid':_0x6bf2f8[_0xad60('0x2a')]});}writeDB(_0x6bf2f8);}catch(_0x2ca4b4){utils[_0xad60('0x14')](util['format'](_0xad60('0x16'),_0x6bf2f8[_0xad60('0x6')]),_0x2ca4b4);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2e43=['moment','client','../../config/logger','info','inspect','debug','error','request','then','catch','[utils][request]\x20name:%s','GetUser','internal','name','interface','[utils][getUser]\x20where:%s','stringify','result','getUserByInternal','[utils][getUserByInternal]\x20internal:%s\x20%s','found','notfound','[utils][getUserByInternal]','[utils][getUserByInterface]\x20interface:%s\x20%s','[utils][getUserByInterface]','getUserByName','[utils][getUserByName]','acw','acwTimeout','[utils][getVoiceQueueByName]\x20name:%s','[utils][getVoiceQueueByName]\x20name:%s\x20%s','length','addTime','add','seconds','format','YYYY-MM-DD\x20HH:mm:ss','subtractTime','sumTime','now','isAfter','isBefore','bluebird','jayson/promise'];(function(_0x9c2427,_0x17c865){var _0x51984f=function(_0x177af6){while(--_0x177af6){_0x9c2427['push'](_0x9c2427['shift']());}};_0x51984f(++_0x17c865);}(_0x2e43,0x15e));var _0x32e4=function(_0x56d5fc,_0x3af400){_0x56d5fc=_0x56d5fc-0x0;var _0x4c075a=_0x2e43[_0x56d5fc];return _0x4c075a;};'use strict';var BPromise=require(_0x32e4('0x0'));var jayson=require(_0x32e4('0x1'));var moment=require(_0x32e4('0x2'));var util=require('util');var client=jayson[_0x32e4('0x3')]['http']({'port':0x2329});var logger=require(_0x32e4('0x4'))('xdr');exports[_0x32e4('0x5')]=function(_0x102957,_0x3ee84e){logger[_0x32e4('0x5')](_0x102957,_0x3ee84e?util[_0x32e4('0x6')](_0x3ee84e,{'showHidden':![],'depth':null}):'');};exports[_0x32e4('0x7')]=function(_0x136615,_0x5b53a6){logger[_0x32e4('0x7')](_0x136615,_0x5b53a6?util['inspect'](_0x5b53a6,{'showHidden':![],'depth':null}):'');};exports[_0x32e4('0x8')]=function(_0x4d36b4,_0x3c1d16){logger[_0x32e4('0x8')](_0x4d36b4,_0x3c1d16?util[_0x32e4('0x6')](_0x3c1d16,{'showHidden':![],'depth':null}):'');};exports[_0x32e4('0x9')]=function(_0x4a16e7,_0x50c261){return client[_0x32e4('0x9')](_0x4a16e7,{'body':_0x50c261})[_0x32e4('0xa')](function(_0x11fff2){logger['debug']('[utils][request]\x20name:%s',_0x4a16e7,_0x11fff2?util[_0x32e4('0x6')](_0x11fff2,{'showHidden':![],'depth':null}):'');})[_0x32e4('0xb')](function(_0x2179fa){logger[_0x32e4('0x8')](_0x32e4('0xc'),_0x4a16e7,_0x2179fa?util[_0x32e4('0x6')](_0x2179fa,{'showHidden':![],'depth':null}):'');});};function getUser(_0x3ef881){return client['request'](_0x32e4('0xd'),{'options':{'raw':!![],'attributes':['id',_0x32e4('0xe'),_0x32e4('0xf'),_0x32e4('0x10')],'where':_0x3ef881,'limit':0x1}})[_0x32e4('0xa')](function(_0x30d569){logger['debug'](_0x32e4('0x11'),JSON[_0x32e4('0x12')](_0x3ef881),_0x30d569?util['inspect'](_0x30d569,{'showHidden':![],'depth':null}):'');return _0x30d569['result']['length']?_0x30d569[_0x32e4('0x13')][0x0]:null;});}exports[_0x32e4('0x14')]=function(_0x4e4009){return new BPromise(function(_0x1c33de,_0x59686b){if(_0x4e4009){return getUser({'internal':_0x4e4009})[_0x32e4('0xa')](function(_0x508404){logger[_0x32e4('0x5')](_0x32e4('0x15'),_0x4e4009,_0x508404?_0x32e4('0x16'):_0x32e4('0x17'));return _0x1c33de(_0x508404);})[_0x32e4('0xb')](function(_0x2f937c){logger[_0x32e4('0x8')](_0x32e4('0x18'),_0x2f937c?util[_0x32e4('0x6')](_0x2f937c,{'showHidden':![],'depth':null}):'');return _0x1c33de(null);});}return _0x1c33de(null);});};exports['getUserByInterface']=function(_0x17694c){return new BPromise(function(_0x5a752b,_0x582aba){if(_0x17694c){return getUser({'interface':_0x17694c})[_0x32e4('0xa')](function(_0x2070e6){logger[_0x32e4('0x5')](_0x32e4('0x19'),_0x17694c,_0x2070e6?_0x32e4('0x16'):_0x32e4('0x17'));return _0x5a752b(_0x2070e6);})['catch'](function(_0x3f5e24){logger['error'](_0x32e4('0x1a'),_0x3f5e24?util['inspect'](_0x3f5e24,{'showHidden':![],'depth':null}):'');return _0x5a752b(null);});}return _0x5a752b(null);});};exports[_0x32e4('0x1b')]=function(_0x3428e7){return new BPromise(function(_0x3c9ee6,_0x3f8623){if(_0x3428e7){return getUser({'name':_0x3428e7})['then'](function(_0x15fe20){logger[_0x32e4('0x5')]('[utils][getUserByName]\x20name:%s\x20%s',_0x3428e7,_0x15fe20?_0x32e4('0x16'):'notfound');return _0x3c9ee6(_0x15fe20);})[_0x32e4('0xb')](function(_0x2bf5c9){logger['error'](_0x32e4('0x1c'),_0x2bf5c9?util[_0x32e4('0x6')](_0x2bf5c9,{'showHidden':![],'depth':null}):'');return _0x3c9ee6(null);});}return _0x3c9ee6(null);});};exports['getVoiceQueueByName']=function(_0x4cac0b){return new BPromise(function(_0x170e4c,_0xfda6da){if(_0x4cac0b){return client[_0x32e4('0x9')]('GetVoiceQueue',{'options':{'raw':!![],'attributes':['id',_0x32e4('0xf'),'type',_0x32e4('0x1d'),_0x32e4('0x1e')],'where':{'name':_0x4cac0b},'limit':0x1}})[_0x32e4('0xa')](function(_0x3892be){logger[_0x32e4('0x7')](_0x32e4('0x1f'),_0x4cac0b,_0x3892be?util[_0x32e4('0x6')](_0x3892be,{'showHidden':![],'depth':null}):'');logger['info'](_0x32e4('0x20'),_0x4cac0b,_0x3892be?_0x32e4('0x16'):_0x32e4('0x17'));return _0x170e4c(_0x3892be[_0x32e4('0x13')][_0x32e4('0x21')]?_0x3892be[_0x32e4('0x13')][0x0]:null);})[_0x32e4('0xb')](function(_0x2c5e44){logger[_0x32e4('0x8')]('[utils][getVoiceQueueByName]',_0x2c5e44?util['inspect'](_0x2c5e44,{'showHidden':![],'depth':null}):'');return _0x170e4c(null);});}return _0x170e4c(null);});};exports[_0x32e4('0x22')]=function(_0x2af507,_0x35bc5a){return moment(_0x2af507)[_0x32e4('0x23')](_0x35bc5a,_0x32e4('0x24'))[_0x32e4('0x25')](_0x32e4('0x26'));};exports[_0x32e4('0x27')]=function(_0x55bac4,_0x2cb6f2){return moment(_0x55bac4)['subtract'](_0x2cb6f2,_0x32e4('0x24'))[_0x32e4('0x25')](_0x32e4('0x26'));};exports['diffTime']=function(_0x3b127d,_0x509c75){return moment(_0x3b127d)['diff'](moment(_0x509c75),'seconds');};exports[_0x32e4('0x28')]=function(_0x44fff1,_0x3cacb3){return parseInt(_0x44fff1,0xa)+parseInt(_0x3cacb3,0xa);};exports[_0x32e4('0x29')]=function(){return moment()[_0x32e4('0x25')]('YYYY-MM-DD\x20HH:mm:ss');};exports[_0x32e4('0x2a')]=function(_0x5b5548,_0x46ee92){if(_0x46ee92){return moment(_0x5b5548)[_0x32e4('0x2a')](_0x46ee92);}return!![];};exports[_0x32e4('0x2b')]=function(_0xa4359e,_0x332a5c){if(_0x332a5c){return moment(_0xa4359e)[_0x32e4('0x2b')](_0x332a5c);}else if(_0xa4359e){return!![];}return![];};
\ No newline at end of file
+var _0x310b=['[utils][getUser]\x20where:%s','stringify','result','length','notfound','getUserByInterface','[utils][getUserByInterface]\x20interface:%s\x20%s','found','getUserByName','[utils][getUserByName]\x20name:%s\x20%s','getVoiceQueueByName','GetVoiceQueue','type','acw','[utils][getVoiceQueueByName]\x20name:%s','[utils][getVoiceQueueByName]','add','format','YYYY-MM-DD\x20HH:mm:ss','subtractTime','subtract','diffTime','seconds','sumTime','now','isAfter','isBefore','bluebird','moment','util','client','info','inspect','debug','error','request','[utils][request]\x20name:%s','catch','GetUser','internal','name','interface','then'];(function(_0x55cc72,_0x1e335c){var _0x2d65b3=function(_0x3c9e0f){while(--_0x3c9e0f){_0x55cc72['push'](_0x55cc72['shift']());}};_0x2d65b3(++_0x1e335c);}(_0x310b,0x19e));var _0xb310=function(_0x4f9b18,_0x2cb5ca){_0x4f9b18=_0x4f9b18-0x0;var _0x29f20c=_0x310b[_0x4f9b18];return _0x29f20c;};'use strict';var BPromise=require(_0xb310('0x0'));var jayson=require('jayson/promise');var moment=require(_0xb310('0x1'));var util=require(_0xb310('0x2'));var client=jayson[_0xb310('0x3')]['http']({'port':0x2329});var logger=require('../../config/logger')('xdr');exports[_0xb310('0x4')]=function(_0xcc19a3,_0x4a5ba4){logger['info'](_0xcc19a3,_0x4a5ba4?util[_0xb310('0x5')](_0x4a5ba4,{'showHidden':![],'depth':null}):'');};exports[_0xb310('0x6')]=function(_0x2f638c,_0x59b871){logger['debug'](_0x2f638c,_0x59b871?util[_0xb310('0x5')](_0x59b871,{'showHidden':![],'depth':null}):'');};exports[_0xb310('0x7')]=function(_0x3d7cd7,_0x922829){logger[_0xb310('0x7')](_0x3d7cd7,_0x922829?util[_0xb310('0x5')](_0x922829,{'showHidden':![],'depth':null}):'');};exports[_0xb310('0x8')]=function(_0x4f961e,_0x1cd305){return client[_0xb310('0x8')](_0x4f961e,{'body':_0x1cd305})['then'](function(_0x464c21){logger['debug'](_0xb310('0x9'),_0x4f961e,_0x464c21?util['inspect'](_0x464c21,{'showHidden':![],'depth':null}):'');})[_0xb310('0xa')](function(_0x20dee7){logger['error'](_0xb310('0x9'),_0x4f961e,_0x20dee7?util[_0xb310('0x5')](_0x20dee7,{'showHidden':![],'depth':null}):'');});};function getUser(_0x13ccdc){return client[_0xb310('0x8')](_0xb310('0xb'),{'options':{'raw':!![],'attributes':['id',_0xb310('0xc'),_0xb310('0xd'),_0xb310('0xe')],'where':_0x13ccdc,'limit':0x1}})[_0xb310('0xf')](function(_0xa6714c){logger['debug'](_0xb310('0x10'),JSON[_0xb310('0x11')](_0x13ccdc),_0xa6714c?util[_0xb310('0x5')](_0xa6714c,{'showHidden':![],'depth':null}):'');return _0xa6714c[_0xb310('0x12')][_0xb310('0x13')]?_0xa6714c[_0xb310('0x12')][0x0]:null;});}exports['getUserByInternal']=function(_0x59504c){return new BPromise(function(_0x3a2493,_0x48b2db){if(_0x59504c){return getUser({'internal':_0x59504c})[_0xb310('0xf')](function(_0x16be9a){logger[_0xb310('0x4')]('[utils][getUserByInternal]\x20internal:%s\x20%s',_0x59504c,_0x16be9a?'found':_0xb310('0x14'));return _0x3a2493(_0x16be9a);})[_0xb310('0xa')](function(_0x4ebb97){logger[_0xb310('0x7')]('[utils][getUserByInternal]',_0x4ebb97?util[_0xb310('0x5')](_0x4ebb97,{'showHidden':![],'depth':null}):'');return _0x3a2493(null);});}return _0x3a2493(null);});};exports[_0xb310('0x15')]=function(_0x35881c){return new BPromise(function(_0x2c1fcc,_0x32a00a){if(_0x35881c){return getUser({'interface':_0x35881c})[_0xb310('0xf')](function(_0x45b9c4){logger[_0xb310('0x4')](_0xb310('0x16'),_0x35881c,_0x45b9c4?_0xb310('0x17'):_0xb310('0x14'));return _0x2c1fcc(_0x45b9c4);})[_0xb310('0xa')](function(_0x59530a){logger[_0xb310('0x7')]('[utils][getUserByInterface]',_0x59530a?util[_0xb310('0x5')](_0x59530a,{'showHidden':![],'depth':null}):'');return _0x2c1fcc(null);});}return _0x2c1fcc(null);});};exports[_0xb310('0x18')]=function(_0x33d8fe){return new BPromise(function(_0x2b6d81,_0x1173ee){if(_0x33d8fe){return getUser({'name':_0x33d8fe})['then'](function(_0xf113d4){logger[_0xb310('0x4')](_0xb310('0x19'),_0x33d8fe,_0xf113d4?_0xb310('0x17'):_0xb310('0x14'));return _0x2b6d81(_0xf113d4);})[_0xb310('0xa')](function(_0x51ee33){logger[_0xb310('0x7')]('[utils][getUserByName]',_0x51ee33?util[_0xb310('0x5')](_0x51ee33,{'showHidden':![],'depth':null}):'');return _0x2b6d81(null);});}return _0x2b6d81(null);});};exports[_0xb310('0x1a')]=function(_0x1ff16e){return new BPromise(function(_0x71670b,_0x268996){if(_0x1ff16e){return client[_0xb310('0x8')](_0xb310('0x1b'),{'options':{'raw':!![],'attributes':['id',_0xb310('0xd'),_0xb310('0x1c'),_0xb310('0x1d'),'acwTimeout'],'where':{'name':_0x1ff16e},'limit':0x1}})['then'](function(_0x3fe98d){logger[_0xb310('0x6')](_0xb310('0x1e'),_0x1ff16e,_0x3fe98d?util[_0xb310('0x5')](_0x3fe98d,{'showHidden':![],'depth':null}):'');logger[_0xb310('0x4')]('[utils][getVoiceQueueByName]\x20name:%s\x20%s',_0x1ff16e,_0x3fe98d?_0xb310('0x17'):_0xb310('0x14'));return _0x71670b(_0x3fe98d[_0xb310('0x12')]['length']?_0x3fe98d['result'][0x0]:null);})['catch'](function(_0x147900){logger['error'](_0xb310('0x1f'),_0x147900?util[_0xb310('0x5')](_0x147900,{'showHidden':![],'depth':null}):'');return _0x71670b(null);});}return _0x71670b(null);});};exports['addTime']=function(_0x2ccb6e,_0x27bd57){return moment(_0x2ccb6e)[_0xb310('0x20')](_0x27bd57,'seconds')[_0xb310('0x21')](_0xb310('0x22'));};exports[_0xb310('0x23')]=function(_0x399aea,_0x194c75){return moment(_0x399aea)[_0xb310('0x24')](_0x194c75,'seconds')[_0xb310('0x21')](_0xb310('0x22'));};exports[_0xb310('0x25')]=function(_0x32025b,_0x4198af){return moment(_0x32025b)['diff'](moment(_0x4198af),_0xb310('0x26'));};exports[_0xb310('0x27')]=function(_0x2c2400,_0xc65d6f){return parseInt(_0x2c2400,0xa)+parseInt(_0xc65d6f,0xa);};exports[_0xb310('0x28')]=function(){return moment()[_0xb310('0x21')](_0xb310('0x22'));};exports[_0xb310('0x29')]=function(_0x56209f,_0x5cc891){if(_0x5cc891){return moment(_0x56209f)[_0xb310('0x29')](_0x5cc891);}return!![];};exports[_0xb310('0x2a')]=function(_0x121f05,_0x487107){if(_0x487107){return moment(_0x121f05)[_0xb310('0x2a')](_0x487107);}else if(_0x121f05){return!![];}return![];};
\ No newline at end of file